@timber-js/app 0.2.0-alpha.8 → 0.2.0-alpha.81
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/LICENSE +8 -0
- package/dist/_chunks/actions-Dg-ANYHb.js +421 -0
- package/dist/_chunks/actions-Dg-ANYHb.js.map +1 -0
- package/dist/_chunks/{als-registry-B7DbZ2hS.js → als-registry-HS0LGUl2.js} +1 -1
- package/dist/_chunks/als-registry-HS0LGUl2.js.map +1 -0
- package/dist/_chunks/chunk-DYhsFzuS.js +33 -0
- package/dist/_chunks/{debug-gwlJkDuf.js → debug-ECi_61pb.js} +2 -2
- package/dist/_chunks/debug-ECi_61pb.js.map +1 -0
- package/dist/_chunks/define-C77ScO0m.js +106 -0
- package/dist/_chunks/define-C77ScO0m.js.map +1 -0
- package/dist/_chunks/define-CZqDwhSu.js +199 -0
- package/dist/_chunks/define-CZqDwhSu.js.map +1 -0
- package/dist/_chunks/define-cookie-C2IkoFGN.js +94 -0
- package/dist/_chunks/define-cookie-C2IkoFGN.js.map +1 -0
- package/dist/_chunks/{format-DviM89f0.js → dev-warnings-DpGRGoDi.js} +5 -44
- package/dist/_chunks/dev-warnings-DpGRGoDi.js.map +1 -0
- package/dist/_chunks/format-CYBGxKtc.js +14 -0
- package/dist/_chunks/format-CYBGxKtc.js.map +1 -0
- package/dist/_chunks/{interception-BOoWmLUA.js → interception-Dpn_UfAD.js} +171 -97
- package/dist/_chunks/interception-Dpn_UfAD.js.map +1 -0
- package/dist/_chunks/merge-search-params-Cm_KIWDX.js +41 -0
- package/dist/_chunks/merge-search-params-Cm_KIWDX.js.map +1 -0
- package/dist/_chunks/{metadata-routes-Cjmvi3rQ.js → metadata-routes-DS3eKNmf.js} +1 -1
- package/dist/_chunks/{metadata-routes-Cjmvi3rQ.js.map → metadata-routes-DS3eKNmf.js.map} +1 -1
- package/dist/_chunks/request-context-qMsWgy9C.js +478 -0
- package/dist/_chunks/request-context-qMsWgy9C.js.map +1 -0
- package/dist/_chunks/schema-bridge-C3xl_vfb.js +86 -0
- package/dist/_chunks/schema-bridge-C3xl_vfb.js.map +1 -0
- package/dist/_chunks/segment-classify-BDNn6EzD.js +65 -0
- package/dist/_chunks/segment-classify-BDNn6EzD.js.map +1 -0
- package/dist/_chunks/segment-context-fHFLF1PE.js +34 -0
- package/dist/_chunks/segment-context-fHFLF1PE.js.map +1 -0
- package/dist/_chunks/{ssr-data-MjmprTmO.js → ssr-data-DzuI0bIV.js} +1 -1
- package/dist/_chunks/{ssr-data-MjmprTmO.js.map → ssr-data-DzuI0bIV.js.map} +1 -1
- package/dist/_chunks/stale-reload-BX5gL1r-.js +64 -0
- package/dist/_chunks/stale-reload-BX5gL1r-.js.map +1 -0
- package/dist/_chunks/{tracing-CemImE6h.js → tracing-CCYbKn5n.js} +60 -9
- package/dist/_chunks/tracing-CCYbKn5n.js.map +1 -0
- package/dist/_chunks/use-params-Br9YSUFV.js +295 -0
- package/dist/_chunks/use-params-Br9YSUFV.js.map +1 -0
- package/dist/_chunks/{use-query-states-D5KaffOK.js → use-query-states-Lo_s_pw2.js} +4 -4
- package/dist/_chunks/use-query-states-Lo_s_pw2.js.map +1 -0
- package/dist/adapters/cloudflare-dev.d.ts +109 -0
- package/dist/adapters/cloudflare-dev.d.ts.map +1 -0
- package/dist/adapters/cloudflare-dev.js +73 -0
- package/dist/adapters/cloudflare-dev.js.map +1 -0
- package/dist/adapters/cloudflare-kv-cache.d.ts +64 -0
- package/dist/adapters/cloudflare-kv-cache.d.ts.map +1 -0
- package/dist/adapters/cloudflare-kv-cache.js +95 -0
- package/dist/adapters/cloudflare-kv-cache.js.map +1 -0
- package/dist/adapters/cloudflare.d.ts +148 -12
- package/dist/adapters/cloudflare.d.ts.map +1 -1
- package/dist/adapters/cloudflare.js +135 -11
- package/dist/adapters/cloudflare.js.map +1 -1
- package/dist/adapters/compress-module.d.ts.map +1 -1
- package/dist/adapters/nitro.d.ts +17 -1
- package/dist/adapters/nitro.d.ts.map +1 -1
- package/dist/adapters/nitro.js +56 -13
- package/dist/adapters/nitro.js.map +1 -1
- package/dist/cache/cache-api.d.ts +24 -0
- package/dist/cache/cache-api.d.ts.map +1 -0
- package/dist/cache/handler-store.d.ts +31 -0
- package/dist/cache/handler-store.d.ts.map +1 -0
- package/dist/cache/index.d.ts +23 -7
- package/dist/cache/index.d.ts.map +1 -1
- package/dist/cache/index.js +142 -80
- package/dist/cache/index.js.map +1 -1
- package/dist/cache/singleflight.d.ts +18 -1
- package/dist/cache/singleflight.d.ts.map +1 -1
- package/dist/cache/sizeof.d.ts +22 -0
- package/dist/cache/sizeof.d.ts.map +1 -0
- package/dist/cache/timber-cache.d.ts +1 -1
- package/dist/cache/timber-cache.d.ts.map +1 -1
- package/dist/cli.d.ts +6 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +8 -3
- package/dist/cli.js.map +1 -1
- package/dist/client/browser-dev.d.ts +27 -1
- package/dist/client/browser-dev.d.ts.map +1 -1
- package/dist/client/browser-entry/action-dispatch.d.ts +17 -0
- package/dist/client/browser-entry/action-dispatch.d.ts.map +1 -0
- package/dist/client/browser-entry/hmr.d.ts +21 -0
- package/dist/client/browser-entry/hmr.d.ts.map +1 -0
- package/dist/client/browser-entry/hydrate.d.ts +46 -0
- package/dist/client/browser-entry/hydrate.d.ts.map +1 -0
- package/dist/client/browser-entry/index.d.ts +30 -0
- package/dist/client/browser-entry/index.d.ts.map +1 -0
- package/dist/client/browser-entry/post-hydration.d.ts +26 -0
- package/dist/client/browser-entry/post-hydration.d.ts.map +1 -0
- package/dist/client/browser-entry/router-init.d.ts +23 -0
- package/dist/client/browser-entry/router-init.d.ts.map +1 -0
- package/dist/client/browser-entry/rsc-stream.d.ts +24 -0
- package/dist/client/browser-entry/rsc-stream.d.ts.map +1 -0
- package/dist/client/browser-entry/scroll.d.ts +19 -0
- package/dist/client/browser-entry/scroll.d.ts.map +1 -0
- package/dist/client/error-boundary.d.ts +12 -5
- package/dist/client/error-boundary.d.ts.map +1 -1
- package/dist/client/error-boundary.js +10 -4
- package/dist/client/error-boundary.js.map +1 -1
- package/dist/client/error-reconstituter.d.ts +54 -0
- package/dist/client/error-reconstituter.d.ts.map +1 -0
- package/dist/client/form.d.ts +3 -3
- package/dist/client/form.d.ts.map +1 -1
- package/dist/client/history.d.ts +19 -4
- package/dist/client/history.d.ts.map +1 -1
- package/dist/client/index.d.ts +7 -21
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +210 -1017
- package/dist/client/index.js.map +1 -1
- package/dist/client/internal.d.ts +18 -0
- package/dist/client/internal.d.ts.map +1 -0
- package/dist/client/internal.js +890 -0
- package/dist/client/internal.js.map +1 -0
- package/dist/client/link-pending-store.d.ts +63 -0
- package/dist/client/link-pending-store.d.ts.map +1 -0
- package/dist/client/link.d.ts +90 -32
- package/dist/client/link.d.ts.map +1 -1
- package/dist/client/nav-link-store.d.ts +36 -0
- package/dist/client/nav-link-store.d.ts.map +1 -0
- package/dist/client/navigation-api-types.d.ts +90 -0
- package/dist/client/navigation-api-types.d.ts.map +1 -0
- package/dist/client/navigation-api.d.ts +115 -0
- package/dist/client/navigation-api.d.ts.map +1 -0
- package/dist/client/navigation-context.d.ts +13 -2
- package/dist/client/navigation-context.d.ts.map +1 -1
- package/dist/client/{transition-root.d.ts → navigation-root.d.ts} +42 -8
- package/dist/client/navigation-root.d.ts.map +1 -0
- package/dist/client/nuqs-adapter.d.ts.map +1 -1
- package/dist/client/router-ref.d.ts +1 -1
- package/dist/client/router.d.ts +70 -4
- package/dist/client/router.d.ts.map +1 -1
- package/dist/client/rsc-fetch.d.ts +38 -3
- package/dist/client/rsc-fetch.d.ts.map +1 -1
- package/dist/client/segment-cache.d.ts +1 -1
- package/dist/client/segment-cache.d.ts.map +1 -1
- package/dist/client/segment-outlet.d.ts +63 -0
- package/dist/client/segment-outlet.d.ts.map +1 -0
- package/dist/client/ssr-data.d.ts +13 -4
- package/dist/client/ssr-data.d.ts.map +1 -1
- package/dist/client/stale-reload.d.ts +15 -0
- package/dist/client/stale-reload.d.ts.map +1 -1
- package/dist/client/top-loader.d.ts +5 -5
- package/dist/client/top-loader.d.ts.map +1 -1
- package/dist/client/use-link-status.d.ts +5 -5
- package/dist/client/use-link-status.d.ts.map +1 -1
- package/dist/client/use-params.d.ts +6 -4
- package/dist/client/use-params.d.ts.map +1 -1
- package/dist/client/{use-navigation-pending.d.ts → use-pending-navigation.d.ts} +4 -4
- package/dist/client/use-pending-navigation.d.ts.map +1 -0
- package/dist/client/use-query-states.d.ts +1 -1
- package/dist/client/use-query-states.d.ts.map +1 -1
- package/dist/client/use-router.d.ts +1 -1
- package/dist/codec.d.ts +33 -0
- package/dist/codec.d.ts.map +1 -0
- package/dist/codec.js +2 -0
- package/dist/config-types.d.ts +227 -0
- package/dist/config-types.d.ts.map +1 -0
- package/dist/content/index.d.ts +1 -10
- package/dist/content/index.d.ts.map +1 -1
- package/dist/content/index.js +0 -2
- package/dist/cookies/define-cookie.d.ts +35 -14
- package/dist/cookies/define-cookie.d.ts.map +1 -1
- package/dist/cookies/index.js +1 -83
- package/dist/fonts/css.d.ts +1 -0
- package/dist/fonts/css.d.ts.map +1 -1
- package/dist/index.d.ts +45 -192
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +12357 -11925
- package/dist/index.js.map +1 -1
- package/dist/plugin-context.d.ts +107 -0
- package/dist/plugin-context.d.ts.map +1 -0
- package/dist/plugins/adapter-build.d.ts +1 -1
- package/dist/plugins/adapter-build.d.ts.map +1 -1
- package/dist/plugins/build-manifest.d.ts +2 -2
- package/dist/plugins/build-manifest.d.ts.map +1 -1
- package/dist/plugins/build-report.d.ts +3 -3
- package/dist/plugins/build-report.d.ts.map +1 -1
- package/dist/plugins/client-chunks.d.ts +32 -0
- package/dist/plugins/client-chunks.d.ts.map +1 -0
- package/dist/plugins/content.d.ts +1 -1
- package/dist/plugins/content.d.ts.map +1 -1
- package/dist/plugins/dev-browser-logs.d.ts +84 -0
- package/dist/plugins/dev-browser-logs.d.ts.map +1 -0
- package/dist/plugins/dev-error-overlay.d.ts +26 -1
- package/dist/plugins/dev-error-overlay.d.ts.map +1 -1
- package/dist/plugins/dev-logs.d.ts +1 -1
- package/dist/plugins/dev-logs.d.ts.map +1 -1
- 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/entries.d.ts.map +1 -1
- package/dist/plugins/fonts.d.ts +19 -5
- package/dist/plugins/fonts.d.ts.map +1 -1
- package/dist/plugins/mdx.d.ts +1 -1
- package/dist/plugins/mdx.d.ts.map +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 +6 -5
- package/dist/plugins/shims.d.ts.map +1 -1
- package/dist/plugins/static-build.d.ts +4 -4
- package/dist/plugins/static-build.d.ts.map +1 -1
- package/dist/routing/codegen.d.ts +2 -2
- package/dist/routing/codegen.d.ts.map +1 -1
- package/dist/routing/index.d.ts +2 -0
- package/dist/routing/index.d.ts.map +1 -1
- package/dist/routing/index.js +3 -2
- package/dist/routing/scanner.d.ts.map +1 -1
- package/dist/routing/segment-classify.d.ts +46 -0
- package/dist/routing/segment-classify.d.ts.map +1 -0
- package/dist/routing/status-file-lint.d.ts +2 -1
- package/dist/routing/status-file-lint.d.ts.map +1 -1
- package/dist/routing/types.d.ts +16 -4
- package/dist/routing/types.d.ts.map +1 -1
- package/dist/rsc-runtime/rsc.d.ts +1 -1
- package/dist/rsc-runtime/rsc.d.ts.map +1 -1
- package/dist/rsc-runtime/ssr.d.ts +12 -0
- package/dist/rsc-runtime/ssr.d.ts.map +1 -1
- package/dist/schema-bridge.d.ts +76 -0
- package/dist/schema-bridge.d.ts.map +1 -0
- package/dist/search-params/define.d.ts +139 -0
- package/dist/search-params/define.d.ts.map +1 -0
- package/dist/search-params/index.d.ts +4 -7
- package/dist/search-params/index.d.ts.map +1 -1
- package/dist/search-params/index.js +32 -441
- package/dist/search-params/index.js.map +1 -1
- package/dist/search-params/registry.d.ts +2 -2
- package/dist/search-params/registry.d.ts.map +1 -1
- package/dist/search-params/wrappers.d.ts +53 -0
- package/dist/search-params/wrappers.d.ts.map +1 -0
- package/dist/segment-params/define.d.ts +78 -0
- package/dist/segment-params/define.d.ts.map +1 -0
- package/dist/segment-params/index.d.ts +3 -0
- package/dist/segment-params/index.d.ts.map +1 -0
- package/dist/segment-params/index.js +2 -0
- package/dist/server/access-gate.d.ts +4 -0
- package/dist/server/access-gate.d.ts.map +1 -1
- package/dist/server/action-client.d.ts +25 -6
- package/dist/server/action-client.d.ts.map +1 -1
- package/dist/server/action-encryption.d.ts +76 -0
- package/dist/server/action-encryption.d.ts.map +1 -0
- package/dist/server/action-handler.d.ts.map +1 -1
- package/dist/server/actions.d.ts +3 -6
- package/dist/server/actions.d.ts.map +1 -1
- package/dist/server/als-registry.d.ts +32 -4
- package/dist/server/als-registry.d.ts.map +1 -1
- package/dist/server/build-manifest.d.ts +2 -2
- package/dist/server/build-manifest.d.ts.map +1 -1
- package/dist/server/debug.d.ts +1 -1
- package/dist/server/default-logger.d.ts +22 -0
- package/dist/server/default-logger.d.ts.map +1 -0
- package/dist/server/deny-page-resolver.d.ts +52 -0
- package/dist/server/deny-page-resolver.d.ts.map +1 -0
- package/dist/server/deny-renderer.d.ts.map +1 -1
- package/dist/server/dev-holding-server.d.ts +52 -0
- package/dist/server/dev-holding-server.d.ts.map +1 -0
- package/dist/server/dev-warnings.d.ts +1 -21
- package/dist/server/dev-warnings.d.ts.map +1 -1
- package/dist/server/early-hints.d.ts +13 -5
- package/dist/server/early-hints.d.ts.map +1 -1
- package/dist/server/error-boundary-wrapper.d.ts +7 -1
- package/dist/server/error-boundary-wrapper.d.ts.map +1 -1
- package/dist/server/fallback-error.d.ts +4 -3
- package/dist/server/fallback-error.d.ts.map +1 -1
- package/dist/server/flight-injection-state.d.ts +66 -0
- package/dist/server/flight-injection-state.d.ts.map +1 -0
- package/dist/server/flight-scripts.d.ts +42 -0
- package/dist/server/flight-scripts.d.ts.map +1 -0
- package/dist/server/flush.d.ts.map +1 -1
- package/dist/server/form-data.d.ts +29 -0
- package/dist/server/form-data.d.ts.map +1 -1
- package/dist/server/html-injectors.d.ts +51 -11
- package/dist/server/html-injectors.d.ts.map +1 -1
- package/dist/server/index.d.ts +5 -43
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +37 -2798
- package/dist/server/index.js.map +1 -1
- package/dist/server/internal.d.ts +46 -0
- package/dist/server/internal.d.ts.map +1 -0
- package/dist/server/internal.js +2883 -0
- package/dist/server/internal.js.map +1 -0
- package/dist/server/logger.d.ts +25 -7
- package/dist/server/logger.d.ts.map +1 -1
- package/dist/server/middleware-runner.d.ts +19 -4
- package/dist/server/middleware-runner.d.ts.map +1 -1
- package/dist/server/node-stream-transforms.d.ts +113 -0
- package/dist/server/node-stream-transforms.d.ts.map +1 -0
- package/dist/server/page-deny-boundary.d.ts +31 -0
- package/dist/server/page-deny-boundary.d.ts.map +1 -0
- package/dist/server/pipeline-interception.d.ts +1 -1
- package/dist/server/pipeline-interception.d.ts.map +1 -1
- package/dist/server/pipeline-metadata.d.ts +6 -0
- package/dist/server/pipeline-metadata.d.ts.map +1 -1
- package/dist/server/pipeline.d.ts +42 -10
- package/dist/server/pipeline.d.ts.map +1 -1
- package/dist/server/primitives.d.ts +69 -18
- package/dist/server/primitives.d.ts.map +1 -1
- package/dist/server/render-timeout.d.ts +51 -0
- package/dist/server/render-timeout.d.ts.map +1 -0
- package/dist/server/request-context.d.ts +112 -43
- package/dist/server/request-context.d.ts.map +1 -1
- package/dist/server/route-element-builder.d.ts +27 -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 +9 -2
- package/dist/server/route-matcher.d.ts.map +1 -1
- package/dist/server/rsc-entry/api-handler.d.ts +2 -2
- package/dist/server/rsc-entry/api-handler.d.ts.map +1 -1
- package/dist/server/rsc-entry/error-renderer.d.ts +26 -13
- package/dist/server/rsc-entry/error-renderer.d.ts.map +1 -1
- package/dist/server/rsc-entry/helpers.d.ts +48 -5
- package/dist/server/rsc-entry/helpers.d.ts.map +1 -1
- package/dist/server/rsc-entry/index.d.ts +8 -3
- package/dist/server/rsc-entry/index.d.ts.map +1 -1
- package/dist/server/rsc-entry/rsc-payload.d.ts +3 -3
- package/dist/server/rsc-entry/rsc-payload.d.ts.map +1 -1
- package/dist/server/rsc-entry/rsc-stream.d.ts +4 -1
- package/dist/server/rsc-entry/rsc-stream.d.ts.map +1 -1
- package/dist/server/rsc-entry/ssr-bridge.d.ts +1 -1
- package/dist/server/rsc-entry/ssr-bridge.d.ts.map +1 -1
- package/dist/server/rsc-entry/ssr-renderer.d.ts +19 -4
- package/dist/server/rsc-entry/ssr-renderer.d.ts.map +1 -1
- package/dist/server/safe-load.d.ts +46 -0
- package/dist/server/safe-load.d.ts.map +1 -0
- package/dist/server/sitemap-generator.d.ts +129 -0
- package/dist/server/sitemap-generator.d.ts.map +1 -0
- package/dist/server/sitemap-handler.d.ts +22 -0
- package/dist/server/sitemap-handler.d.ts.map +1 -0
- package/dist/server/slot-resolver.d.ts +1 -1
- package/dist/server/slot-resolver.d.ts.map +1 -1
- package/dist/server/ssr-entry.d.ts +22 -0
- package/dist/server/ssr-entry.d.ts.map +1 -1
- package/dist/server/ssr-render.d.ts +39 -21
- package/dist/server/ssr-render.d.ts.map +1 -1
- package/dist/server/ssr-wrappers.d.ts +50 -0
- package/dist/server/ssr-wrappers.d.ts.map +1 -0
- package/dist/server/status-code-resolver.d.ts +1 -1
- package/dist/server/status-code-resolver.d.ts.map +1 -1
- package/dist/server/stream-utils.d.ts +36 -0
- package/dist/server/stream-utils.d.ts.map +1 -0
- package/dist/server/tracing.d.ts +4 -4
- package/dist/server/tracing.d.ts.map +1 -1
- package/dist/server/tree-builder.d.ts +22 -19
- package/dist/server/tree-builder.d.ts.map +1 -1
- package/dist/server/types.d.ts +1 -4
- package/dist/server/types.d.ts.map +1 -1
- package/dist/server/version-skew.d.ts +61 -0
- package/dist/server/version-skew.d.ts.map +1 -0
- package/dist/shared/merge-search-params.d.ts +22 -0
- package/dist/shared/merge-search-params.d.ts.map +1 -0
- package/dist/shims/font-google.d.ts +1 -1
- package/dist/shims/font-google.d.ts.map +1 -1
- package/dist/shims/font-google.js +42 -0
- package/dist/shims/font-google.js.map +1 -0
- package/dist/shims/font-local.d.ts +26 -0
- package/dist/shims/font-local.d.ts.map +1 -0
- package/dist/shims/font-local.js +20 -0
- package/dist/shims/font-local.js.map +1 -0
- package/dist/shims/headers.d.ts +2 -1
- package/dist/shims/headers.d.ts.map +1 -1
- package/dist/shims/navigation-client.d.ts +1 -1
- package/dist/shims/navigation-client.d.ts.map +1 -1
- package/dist/shims/navigation.d.ts +3 -2
- package/dist/shims/navigation.d.ts.map +1 -1
- package/dist/utils/directive-parser.d.ts +5 -2
- package/dist/utils/directive-parser.d.ts.map +1 -1
- package/dist/utils/state-machine.d.ts +80 -0
- package/dist/utils/state-machine.d.ts.map +1 -0
- package/package.json +56 -22
- package/src/adapters/cloudflare-dev.ts +177 -0
- package/src/adapters/cloudflare-kv-cache.ts +142 -0
- package/src/adapters/cloudflare.ts +342 -28
- package/src/adapters/compress-module.ts +24 -4
- package/src/adapters/nitro.ts +52 -8
- package/src/adapters/wrangler.d.ts +7 -0
- package/src/cache/cache-api.ts +38 -0
- package/src/cache/handler-store.ts +68 -0
- package/src/cache/index.ts +81 -18
- package/src/cache/singleflight.ts +62 -4
- package/src/cache/sizeof.ts +31 -0
- package/src/cache/timber-cache.ts +24 -20
- package/src/cli.ts +16 -6
- package/src/client/browser-dev.ts +128 -1
- package/src/client/browser-entry/action-dispatch.ts +116 -0
- package/src/client/browser-entry/hmr.ts +81 -0
- package/src/client/browser-entry/hydrate.ts +145 -0
- package/src/client/browser-entry/index.ts +138 -0
- package/src/client/browser-entry/post-hydration.ts +119 -0
- package/src/client/browser-entry/router-init.ts +193 -0
- package/src/client/browser-entry/rsc-stream.ts +157 -0
- package/src/client/browser-entry/scroll.ts +27 -0
- package/src/client/error-boundary.tsx +48 -16
- package/src/client/error-reconstituter.tsx +65 -0
- package/src/client/form.tsx +9 -7
- package/src/client/history.ts +26 -4
- package/src/client/index.ts +19 -38
- package/src/client/internal.ts +57 -0
- package/src/client/link-pending-store.ts +111 -0
- package/src/client/link.tsx +329 -97
- package/src/client/nav-link-store.ts +47 -0
- package/src/client/navigation-api-types.ts +112 -0
- package/src/client/navigation-api.ts +332 -0
- package/src/client/navigation-context.ts +31 -6
- package/src/client/navigation-root.tsx +342 -0
- package/src/client/nuqs-adapter.tsx +16 -3
- package/src/client/router-ref.ts +1 -1
- package/src/client/router.ts +299 -72
- package/src/client/rsc-fetch.ts +97 -8
- package/src/client/segment-cache.ts +1 -1
- package/src/client/segment-outlet.tsx +86 -0
- package/src/client/ssr-data.ts +13 -5
- package/src/client/stale-reload.ts +72 -3
- package/src/client/top-loader.tsx +16 -8
- package/src/client/use-link-status.ts +7 -7
- package/src/client/use-params.ts +7 -5
- package/src/client/{use-navigation-pending.ts → use-pending-navigation.ts} +6 -6
- package/src/client/use-query-states.ts +3 -3
- package/src/client/use-router.ts +1 -1
- package/src/codec.ts +49 -0
- package/src/config-types.ts +225 -0
- package/src/content/index.ts +5 -13
- package/src/cookies/define-cookie.ts +78 -25
- package/src/cookies/index.ts +8 -0
- package/src/fonts/css.ts +2 -1
- package/src/index.ts +295 -354
- package/src/plugin-context.ts +240 -0
- package/src/plugins/adapter-build.ts +9 -3
- package/src/plugins/build-manifest.ts +13 -2
- package/src/plugins/build-report.ts +3 -3
- package/src/plugins/client-chunks.ts +65 -0
- package/src/plugins/content.ts +1 -1
- package/src/plugins/dev-browser-logs.ts +288 -0
- package/src/plugins/dev-error-overlay.ts +70 -1
- package/src/plugins/dev-logs.ts +1 -1
- package/src/plugins/dev-server.ts +70 -9
- package/src/plugins/entries.ts +71 -10
- package/src/plugins/fonts.ts +168 -61
- package/src/plugins/mdx.ts +1 -1
- package/src/plugins/routing.ts +57 -17
- package/src/plugins/server-action-exports.ts +1 -1
- package/src/plugins/server-bundle.ts +32 -1
- package/src/plugins/shims.ts +135 -35
- package/src/plugins/static-build.ts +17 -11
- package/src/routing/codegen.ts +165 -105
- package/src/routing/index.ts +2 -0
- package/src/routing/scanner.ts +93 -23
- package/src/routing/segment-classify.ts +89 -0
- package/src/routing/status-file-lint.ts +3 -2
- package/src/routing/types.ts +17 -4
- package/src/rsc-runtime/rsc.ts +2 -0
- package/src/rsc-runtime/ssr.ts +50 -0
- package/src/rsc-runtime/vendor-types.d.ts +7 -0
- package/src/{search-params/codecs.ts → schema-bridge.ts} +57 -20
- package/src/search-params/define.ts +482 -0
- package/src/search-params/index.ts +14 -20
- package/src/search-params/registry.ts +2 -2
- package/src/search-params/wrappers.ts +85 -0
- package/src/segment-params/define.ts +279 -0
- package/src/segment-params/index.ts +9 -0
- package/src/server/access-gate.tsx +70 -29
- package/src/server/action-client.ts +46 -11
- package/src/server/action-encryption.ts +144 -0
- package/src/server/action-handler.ts +21 -4
- package/src/server/actions.ts +10 -9
- package/src/server/als-registry.ts +34 -6
- package/src/server/build-manifest.ts +10 -4
- package/src/server/compress.ts +25 -7
- package/src/server/debug.ts +1 -1
- package/src/server/default-logger.ts +99 -0
- package/src/server/deny-page-resolver.ts +154 -0
- package/src/server/deny-renderer.ts +24 -38
- package/src/server/dev-holding-server.ts +185 -0
- package/src/server/dev-warnings.ts +4 -49
- package/src/server/early-hints.ts +36 -15
- package/src/server/error-boundary-wrapper.ts +74 -22
- package/src/server/fallback-error.ts +31 -15
- package/src/server/flight-injection-state.ts +113 -0
- package/src/server/flight-scripts.ts +62 -0
- package/src/server/flush.ts +2 -1
- package/src/server/form-data.ts +76 -0
- package/src/server/html-injectors.ts +280 -120
- package/src/server/index.ts +25 -177
- package/src/server/internal.ts +169 -0
- package/src/server/logger.ts +44 -36
- package/src/server/middleware-runner.ts +31 -4
- package/src/server/node-stream-transforms.ts +509 -0
- package/src/server/page-deny-boundary.tsx +56 -0
- package/src/server/pipeline-interception.ts +17 -16
- package/src/server/pipeline-metadata.ts +13 -0
- package/src/server/pipeline.ts +227 -62
- package/src/server/primitives.ts +111 -28
- package/src/server/render-timeout.ts +108 -0
- package/src/server/request-context.ts +293 -132
- package/src/server/route-element-builder.ts +283 -191
- package/src/server/route-handler.ts +24 -4
- package/src/server/route-matcher.ts +24 -20
- package/src/server/rsc-entry/api-handler.ts +15 -16
- package/src/server/rsc-entry/error-renderer.ts +300 -89
- package/src/server/rsc-entry/helpers.ts +134 -5
- package/src/server/rsc-entry/index.ts +200 -112
- package/src/server/rsc-entry/rsc-payload.ts +65 -18
- package/src/server/rsc-entry/rsc-stream.ts +65 -13
- package/src/server/rsc-entry/ssr-bridge.ts +14 -5
- package/src/server/rsc-entry/ssr-renderer.ts +168 -38
- package/src/server/safe-load.ts +60 -0
- package/src/server/sitemap-generator.ts +338 -0
- package/src/server/sitemap-handler.ts +126 -0
- package/src/server/slot-resolver.ts +244 -229
- package/src/server/ssr-entry.ts +211 -32
- package/src/server/ssr-render.ts +289 -67
- package/src/server/ssr-wrappers.tsx +139 -0
- package/src/server/status-code-resolver.ts +1 -1
- package/src/server/stream-utils.ts +213 -0
- package/src/server/tracing.ts +20 -9
- package/src/server/tree-builder.ts +92 -58
- package/src/server/types.ts +3 -6
- package/src/server/version-skew.ts +104 -0
- package/src/shared/merge-search-params.ts +55 -0
- package/src/shims/font-google.ts +1 -1
- package/src/shims/font-local.ts +34 -0
- package/src/shims/headers.ts +5 -1
- package/src/shims/navigation-client.ts +1 -1
- package/src/shims/navigation.ts +7 -2
- package/src/utils/directive-parser.ts +5 -2
- package/src/utils/state-machine.ts +111 -0
- package/dist/_chunks/als-registry-B7DbZ2hS.js.map +0 -1
- package/dist/_chunks/debug-gwlJkDuf.js.map +0 -1
- package/dist/_chunks/format-DviM89f0.js.map +0 -1
- package/dist/_chunks/interception-BOoWmLUA.js.map +0 -1
- package/dist/_chunks/request-context-DIkVh_jG.js +0 -330
- package/dist/_chunks/request-context-DIkVh_jG.js.map +0 -1
- package/dist/_chunks/tracing-CemImE6h.js.map +0 -1
- package/dist/_chunks/use-cookie-DX-l1_5E.js +0 -91
- package/dist/_chunks/use-cookie-DX-l1_5E.js.map +0 -1
- package/dist/_chunks/use-query-states-D5KaffOK.js.map +0 -1
- package/dist/cache/register-cached-function.d.ts +0 -17
- package/dist/cache/register-cached-function.d.ts.map +0 -1
- package/dist/client/browser-entry.d.ts +0 -21
- package/dist/client/browser-entry.d.ts.map +0 -1
- package/dist/client/link-status-provider.d.ts +0 -11
- package/dist/client/link-status-provider.d.ts.map +0 -1
- package/dist/client/transition-root.d.ts.map +0 -1
- package/dist/client/use-navigation-pending.d.ts.map +0 -1
- package/dist/cookies/index.js.map +0 -1
- package/dist/plugins/cache-transform.d.ts +0 -36
- package/dist/plugins/cache-transform.d.ts.map +0 -1
- package/dist/plugins/dynamic-transform.d.ts +0 -72
- package/dist/plugins/dynamic-transform.d.ts.map +0 -1
- package/dist/search-params/analyze.d.ts +0 -54
- package/dist/search-params/analyze.d.ts.map +0 -1
- package/dist/search-params/builtin-codecs.d.ts +0 -105
- package/dist/search-params/builtin-codecs.d.ts.map +0 -1
- package/dist/search-params/codecs.d.ts +0 -53
- package/dist/search-params/codecs.d.ts.map +0 -1
- package/dist/search-params/create.d.ts +0 -106
- package/dist/search-params/create.d.ts.map +0 -1
- package/dist/server/prerender.d.ts +0 -77
- package/dist/server/prerender.d.ts.map +0 -1
- package/dist/server/response-cache.d.ts +0 -54
- package/dist/server/response-cache.d.ts.map +0 -1
- package/src/cache/register-cached-function.ts +0 -103
- package/src/client/browser-entry.ts +0 -678
- package/src/client/link-status-provider.tsx +0 -30
- package/src/client/transition-root.tsx +0 -166
- package/src/plugins/cache-transform.ts +0 -199
- package/src/plugins/dynamic-transform.ts +0 -161
- package/src/search-params/analyze.ts +0 -192
- package/src/search-params/builtin-codecs.ts +0 -228
- package/src/search-params/create.ts +0 -321
- package/src/server/prerender.ts +0 -139
- package/src/server/response-cache.ts +0 -410
package/src/server/index.ts
CHANGED
|
@@ -1,129 +1,45 @@
|
|
|
1
1
|
// @timber-js/app/server — Server-side primitives
|
|
2
2
|
// These are the primary imports for server components, middleware, and access files.
|
|
3
|
+
//
|
|
4
|
+
// Framework-internal pipeline plumbing is in #server-internal (Node package import).
|
|
5
|
+
// Design doc: design/triage/api-naming-spike.md §8.5
|
|
3
6
|
|
|
4
7
|
export type { AccessContext } from './types';
|
|
5
8
|
export type { MiddlewareContext } from './types';
|
|
6
9
|
export type { RouteContext } from './types';
|
|
7
10
|
export type { Metadata, MetadataRoute } from './types';
|
|
8
11
|
|
|
9
|
-
// Request Context — ALS-backed
|
|
12
|
+
// Request Context — ALS-backed getHeaders(), getCookies(), and getSearchParams()
|
|
10
13
|
// Design doc: design/04-authorization.md §"AccessContext does not include cookies or headers"
|
|
11
14
|
// Design doc: design/23-search-params.md §"Server Integration"
|
|
12
15
|
export {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
markResponseFlushed,
|
|
20
|
-
getSetCookieHeaders,
|
|
21
|
-
setCookieSecrets,
|
|
16
|
+
getHeaders,
|
|
17
|
+
getHeader,
|
|
18
|
+
getCookies,
|
|
19
|
+
getCookie,
|
|
20
|
+
getSearchParams,
|
|
21
|
+
getSegmentParams,
|
|
22
22
|
} from './request-context';
|
|
23
23
|
export type { ReadonlyHeaders, RequestCookies, CookieOptions } from './request-context';
|
|
24
24
|
|
|
25
25
|
// Runtime primitives
|
|
26
26
|
export {
|
|
27
27
|
deny,
|
|
28
|
-
notFound,
|
|
29
28
|
redirect,
|
|
30
|
-
permanentRedirect,
|
|
31
29
|
redirectExternal,
|
|
32
30
|
RedirectType,
|
|
33
|
-
RenderError,
|
|
34
31
|
waitUntil,
|
|
35
|
-
|
|
36
|
-
|
|
32
|
+
type DenyOptions,
|
|
33
|
+
type RedirectOptions,
|
|
37
34
|
} from './primitives';
|
|
35
|
+
// RenderError removed from public exports per TIM-724.
|
|
36
|
+
// Use deny({ status: 500, data: ... }) instead. RenderError stays in
|
|
37
|
+
// #server-internal for pipeline catch logic.
|
|
38
38
|
export type { RenderErrorDigest, WaitUntilAdapter } from './primitives';
|
|
39
|
-
|
|
39
|
+
// JsonSerializable moved to @timber-js/app/codec as the single canonical path.
|
|
40
|
+
// Re-export removed per TIM-721.
|
|
40
41
|
|
|
41
|
-
//
|
|
42
|
-
export { createPipeline } from './pipeline';
|
|
43
|
-
export type {
|
|
44
|
-
PipelineConfig,
|
|
45
|
-
RouteMatch,
|
|
46
|
-
RouteMatcher,
|
|
47
|
-
RouteRenderer,
|
|
48
|
-
EarlyHintsEmitter,
|
|
49
|
-
} from './pipeline';
|
|
50
|
-
|
|
51
|
-
// Early Hints
|
|
52
|
-
export { collectEarlyHintHeaders, formatLinkHeader } from './early-hints';
|
|
53
|
-
export type { EarlyHint } from './early-hints';
|
|
54
|
-
|
|
55
|
-
// Early Hints 103 Sender — ALS bridge for platform adapters
|
|
56
|
-
export { runWithEarlyHintsSender, sendEarlyHints103 } from './early-hints-sender';
|
|
57
|
-
export type { EarlyHintsSenderFn } from './early-hints-sender';
|
|
58
|
-
|
|
59
|
-
// Canonicalization
|
|
60
|
-
export { canonicalize } from './canonicalize';
|
|
61
|
-
export type { CanonicalizeResult } from './canonicalize';
|
|
62
|
-
|
|
63
|
-
// Proxy
|
|
64
|
-
export { runProxy } from './proxy';
|
|
65
|
-
export type { ProxyFn, ProxyExport } from './proxy';
|
|
66
|
-
|
|
67
|
-
// Middleware
|
|
68
|
-
export { runMiddleware } from './middleware-runner';
|
|
69
|
-
export type { MiddlewareFn } from './middleware-runner';
|
|
70
|
-
|
|
71
|
-
// Tree Builder
|
|
72
|
-
export { buildElementTree } from './tree-builder';
|
|
73
|
-
export type {
|
|
74
|
-
TreeBuilderConfig,
|
|
75
|
-
TreeBuildResult,
|
|
76
|
-
LoadedModule,
|
|
77
|
-
ModuleLoader,
|
|
78
|
-
AccessGateProps,
|
|
79
|
-
SlotAccessGateProps,
|
|
80
|
-
ErrorBoundaryProps,
|
|
81
|
-
} from './tree-builder';
|
|
82
|
-
|
|
83
|
-
// Access Gates
|
|
84
|
-
export { AccessGate, SlotAccessGate } from './access-gate';
|
|
85
|
-
|
|
86
|
-
// Status-Code Resolver
|
|
87
|
-
export { resolveStatusFile, resolveSlotDenied } from './status-code-resolver';
|
|
88
|
-
export type {
|
|
89
|
-
StatusFileResolution,
|
|
90
|
-
StatusFileKind,
|
|
91
|
-
StatusFileFormat,
|
|
92
|
-
SlotDeniedResolution,
|
|
93
|
-
SlotDeniedKind,
|
|
94
|
-
} from './status-code-resolver';
|
|
95
|
-
|
|
96
|
-
// Flush Controller
|
|
97
|
-
export { flushResponse } from './flush';
|
|
98
|
-
export type { FlushOptions, FlushResult, RenderFn, RenderResult } from './flush';
|
|
99
|
-
|
|
100
|
-
// CSRF Protection
|
|
101
|
-
export { validateCsrf } from './csrf';
|
|
102
|
-
export type { CsrfConfig, CsrfResult } from './csrf';
|
|
103
|
-
|
|
104
|
-
// Body Limits
|
|
105
|
-
export { parseBodySize, enforceBodyLimits, DEFAULT_LIMITS } from './body-limits';
|
|
106
|
-
export type { BodyLimitsConfig, BodyLimitResult, BodyKind } from './body-limits';
|
|
107
|
-
|
|
108
|
-
// Metadata
|
|
109
|
-
export {
|
|
110
|
-
resolveMetadata,
|
|
111
|
-
resolveTitle,
|
|
112
|
-
resolveMetadataUrls,
|
|
113
|
-
renderMetadataToElements,
|
|
114
|
-
} from './metadata';
|
|
115
|
-
export type { SegmentMetadataEntry, ResolveMetadataOptions, HeadElement } from './metadata';
|
|
116
|
-
|
|
117
|
-
// Metadata Routes
|
|
118
|
-
export {
|
|
119
|
-
classifyMetadataRoute,
|
|
120
|
-
getMetadataRouteServePath,
|
|
121
|
-
getMetadataRouteAutoLink,
|
|
122
|
-
METADATA_ROUTE_CONVENTIONS,
|
|
123
|
-
} from './metadata-routes';
|
|
124
|
-
export type { MetadataRouteInfo, MetadataRouteType } from './metadata-routes';
|
|
125
|
-
|
|
126
|
-
// Server Actions
|
|
42
|
+
// Server Actions — user-facing action client and validation
|
|
127
43
|
export { createActionClient, ActionError, validated } from './action-client';
|
|
128
44
|
export type {
|
|
129
45
|
ActionResult,
|
|
@@ -143,81 +59,13 @@ export { parseFormData, coerce } from './form-data';
|
|
|
143
59
|
export { getFormFlash } from './form-flash';
|
|
144
60
|
export type { FormFlashData } from './form-flash';
|
|
145
61
|
|
|
146
|
-
// Revalidation
|
|
147
|
-
export {
|
|
148
|
-
revalidatePath,
|
|
149
|
-
revalidateTag,
|
|
150
|
-
executeAction,
|
|
151
|
-
buildNoJsResponse,
|
|
152
|
-
isRscActionRequest,
|
|
153
|
-
} from './actions';
|
|
154
|
-
export type {
|
|
155
|
-
RevalidateRenderer,
|
|
156
|
-
RevalidationState,
|
|
157
|
-
ActionHandlerConfig,
|
|
158
|
-
ActionHandlerResult,
|
|
159
|
-
} from './actions';
|
|
62
|
+
// Revalidation — user-facing revalidation APIs
|
|
63
|
+
export { revalidatePath, revalidateTag } from './actions';
|
|
160
64
|
|
|
161
|
-
// Tracing — per-request trace ID via ALS
|
|
65
|
+
// Tracing — per-request trace ID via ALS (user-facing accessors)
|
|
162
66
|
// Design doc: design/17-logging.md §"trace_id is Always Set"
|
|
163
|
-
export {
|
|
164
|
-
traceId,
|
|
165
|
-
spanId,
|
|
166
|
-
generateTraceId,
|
|
167
|
-
runWithTraceId,
|
|
168
|
-
replaceTraceId,
|
|
169
|
-
withSpan,
|
|
170
|
-
addSpanEvent,
|
|
171
|
-
} from './tracing';
|
|
172
|
-
export type { TraceStore } from './tracing';
|
|
173
|
-
|
|
174
|
-
// Logger — structured logging
|
|
175
|
-
// Design doc: design/17-logging.md §"Production Logging"
|
|
176
|
-
export { setLogger, getLogger } from './logger';
|
|
177
|
-
export {
|
|
178
|
-
logRequestCompleted,
|
|
179
|
-
logRequestReceived,
|
|
180
|
-
logSlowRequest,
|
|
181
|
-
logMiddlewareShortCircuit,
|
|
182
|
-
logMiddlewareError,
|
|
183
|
-
logRenderError,
|
|
184
|
-
logProxyError,
|
|
185
|
-
logWaitUntilUnsupported,
|
|
186
|
-
logWaitUntilRejected,
|
|
187
|
-
logSwrRefetchFailed,
|
|
188
|
-
logCacheMiss,
|
|
189
|
-
} from './logger';
|
|
190
|
-
export type { TimberLogger } from './logger';
|
|
191
|
-
|
|
192
|
-
// Instrumentation — instrumentation.ts file convention
|
|
193
|
-
// Design doc: design/17-logging.md §"instrumentation.ts"
|
|
194
|
-
export { loadInstrumentation, callOnRequestError, hasOnRequestError } from './instrumentation';
|
|
195
|
-
export type {
|
|
196
|
-
InstrumentationOnRequestError,
|
|
197
|
-
InstrumentationRequestInfo,
|
|
198
|
-
InstrumentationErrorContext,
|
|
199
|
-
} from './instrumentation';
|
|
200
|
-
|
|
201
|
-
// Dev Warnings — dev-mode misuse detection
|
|
202
|
-
// Design doc: design/21-dev-server.md §"Dev-Mode Warnings", design/11-platform.md §"Dev Mode"
|
|
203
|
-
export {
|
|
204
|
-
warnSuspenseWrappingChildren,
|
|
205
|
-
warnDenyInSuspense,
|
|
206
|
-
warnRedirectInSuspense,
|
|
207
|
-
warnRedirectInAccess,
|
|
208
|
-
warnStaticRequestApi,
|
|
209
|
-
warnCacheRequestProps,
|
|
210
|
-
warnSlowSlotWithoutSuspense,
|
|
211
|
-
setViteServer,
|
|
212
|
-
WarningId,
|
|
213
|
-
// Legacy aliases
|
|
214
|
-
warnDynamicApiInStaticBuild,
|
|
215
|
-
warnRedirectInSlotAccess,
|
|
216
|
-
warnDenyAfterFlush,
|
|
217
|
-
} from './dev-warnings';
|
|
218
|
-
export type { DevWarningConfig } from './dev-warnings';
|
|
67
|
+
export { getTraceId, getSpanId, withSpan, addSpanEvent } from './tracing';
|
|
219
68
|
|
|
220
|
-
//
|
|
221
|
-
//
|
|
222
|
-
export {
|
|
223
|
-
export type { RouteModule, RouteHandler, HttpMethod } from './route-handler';
|
|
69
|
+
// Segment params types — re-exported for convenience.
|
|
70
|
+
// defineSegmentParams itself lives at @timber-js/app/segment-params.
|
|
71
|
+
export type { ParamsDefinition, InferParamField, ParamField } from '../segment-params/define.js';
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
// #server-internal — Framework-internal server exports
|
|
2
|
+
//
|
|
3
|
+
// This module is a Node package import (#server-internal in package.json
|
|
4
|
+
// "imports" field). It is only resolvable from within @timber-js/app —
|
|
5
|
+
// external consumers cannot import it.
|
|
6
|
+
//
|
|
7
|
+
// These exports are consumed by entry modules (rsc-entry, ssr-entry),
|
|
8
|
+
// adapters, dev server plugins, and build plugins. They are NOT part of
|
|
9
|
+
// the user-facing API and should not appear in documentation or autocomplete
|
|
10
|
+
// for application developers.
|
|
11
|
+
//
|
|
12
|
+
// Design doc: design/triage/api-naming-spike.md §8.5
|
|
13
|
+
|
|
14
|
+
// ── Request Context internals ────────────────────────────────────────────
|
|
15
|
+
export {
|
|
16
|
+
setSegmentParams,
|
|
17
|
+
runWithRequestContext,
|
|
18
|
+
setMutableCookieContext,
|
|
19
|
+
markResponseFlushed,
|
|
20
|
+
getSetCookieHeaders,
|
|
21
|
+
} from './request-context.js';
|
|
22
|
+
|
|
23
|
+
// ── Signal classes (instanceof targets for pipeline catch logic) ──────────
|
|
24
|
+
export { DenySignal, RedirectSignal, RenderError } from './primitives.js';
|
|
25
|
+
export type { RenderErrorDigest } from './primitives.js';
|
|
26
|
+
|
|
27
|
+
// ── Pipeline ─────────────────────────────────────────────────────────────
|
|
28
|
+
export { createPipeline } from './pipeline.js';
|
|
29
|
+
export type {
|
|
30
|
+
PipelineConfig,
|
|
31
|
+
RouteMatch,
|
|
32
|
+
RouteMatcher,
|
|
33
|
+
RouteRenderer,
|
|
34
|
+
EarlyHintsEmitter,
|
|
35
|
+
} from './pipeline.js';
|
|
36
|
+
|
|
37
|
+
// ── Early Hints ──────────────────────────────────────────────────────────
|
|
38
|
+
export { collectEarlyHintHeaders, formatLinkHeader } from './early-hints.js';
|
|
39
|
+
export type { EarlyHint } from './early-hints.js';
|
|
40
|
+
|
|
41
|
+
// ── Early Hints 103 Sender — ALS bridge for platform adapters ────────────
|
|
42
|
+
export { runWithEarlyHintsSender, sendEarlyHints103 } from './early-hints-sender.js';
|
|
43
|
+
export type { EarlyHintsSenderFn } from './early-hints-sender.js';
|
|
44
|
+
|
|
45
|
+
// ── Canonicalization ─────────────────────────────────────────────────────
|
|
46
|
+
export { canonicalize } from './canonicalize.js';
|
|
47
|
+
export type { CanonicalizeResult } from './canonicalize.js';
|
|
48
|
+
|
|
49
|
+
// ── Proxy ────────────────────────────────────────────────────────────────
|
|
50
|
+
export { runProxy } from './proxy.js';
|
|
51
|
+
export type { ProxyFn, ProxyExport } from './proxy.js';
|
|
52
|
+
|
|
53
|
+
// ── Middleware ────────────────────────────────────────────────────────────
|
|
54
|
+
export { runMiddleware } from './middleware-runner.js';
|
|
55
|
+
export type { MiddlewareFn } from './middleware-runner.js';
|
|
56
|
+
|
|
57
|
+
// ── Tree Builder ─────────────────────────────────────────────────────────
|
|
58
|
+
export { buildElementTree } from './tree-builder.js';
|
|
59
|
+
export type {
|
|
60
|
+
TreeBuilderConfig,
|
|
61
|
+
TreeBuildResult,
|
|
62
|
+
LoadedModule,
|
|
63
|
+
ModuleLoader,
|
|
64
|
+
AccessGateProps,
|
|
65
|
+
SlotAccessGateProps,
|
|
66
|
+
ErrorBoundaryProps,
|
|
67
|
+
} from './tree-builder.js';
|
|
68
|
+
|
|
69
|
+
// ── Access Gates ─────────────────────────────────────────────────────────
|
|
70
|
+
export { AccessGate, SlotAccessGate } from './access-gate.js';
|
|
71
|
+
|
|
72
|
+
// ── Status-Code Resolver ─────────────────────────────────────────────────
|
|
73
|
+
export { resolveStatusFile, resolveSlotDenied } from './status-code-resolver.js';
|
|
74
|
+
export type {
|
|
75
|
+
StatusFileResolution,
|
|
76
|
+
StatusFileKind,
|
|
77
|
+
StatusFileFormat,
|
|
78
|
+
SlotDeniedResolution,
|
|
79
|
+
SlotDeniedKind,
|
|
80
|
+
} from './status-code-resolver.js';
|
|
81
|
+
|
|
82
|
+
// ── Flush Controller ─────────────────────────────────────────────────────
|
|
83
|
+
export { flushResponse } from './flush.js';
|
|
84
|
+
export type { FlushOptions, FlushResult, RenderFn, RenderResult } from './flush.js';
|
|
85
|
+
|
|
86
|
+
// ── CSRF Protection ──────────────────────────────────────────────────────
|
|
87
|
+
export { validateCsrf } from './csrf.js';
|
|
88
|
+
export type { CsrfConfig, CsrfResult } from './csrf.js';
|
|
89
|
+
|
|
90
|
+
// ── Body Limits ──────────────────────────────────────────────────────────
|
|
91
|
+
export { parseBodySize, enforceBodyLimits, DEFAULT_LIMITS } from './body-limits.js';
|
|
92
|
+
export type { BodyLimitsConfig, BodyLimitResult, BodyKind } from './body-limits.js';
|
|
93
|
+
|
|
94
|
+
// ── Metadata ─────────────────────────────────────────────────────────────
|
|
95
|
+
export {
|
|
96
|
+
resolveMetadata,
|
|
97
|
+
resolveTitle,
|
|
98
|
+
resolveMetadataUrls,
|
|
99
|
+
renderMetadataToElements,
|
|
100
|
+
} from './metadata.js';
|
|
101
|
+
export type { SegmentMetadataEntry, ResolveMetadataOptions, HeadElement } from './metadata.js';
|
|
102
|
+
|
|
103
|
+
// ── Metadata Routes ──────────────────────────────────────────────────────
|
|
104
|
+
export {
|
|
105
|
+
classifyMetadataRoute,
|
|
106
|
+
getMetadataRouteServePath,
|
|
107
|
+
getMetadataRouteAutoLink,
|
|
108
|
+
METADATA_ROUTE_CONVENTIONS,
|
|
109
|
+
} from './metadata-routes.js';
|
|
110
|
+
export type { MetadataRouteInfo, MetadataRouteType } from './metadata-routes.js';
|
|
111
|
+
|
|
112
|
+
// ── Server Actions (pipeline internals) ──────────────────────────────────
|
|
113
|
+
export { executeAction, buildNoJsResponse, isRscActionRequest } from './actions.js';
|
|
114
|
+
export type {
|
|
115
|
+
RevalidateRenderer,
|
|
116
|
+
RevalidationState,
|
|
117
|
+
ActionHandlerConfig,
|
|
118
|
+
ActionHandlerResult,
|
|
119
|
+
} from './actions.js';
|
|
120
|
+
|
|
121
|
+
// ── Tracing internals ────────────────────────────────────────────────────
|
|
122
|
+
export { runWithTraceId, replaceTraceId, generateTraceId } from './tracing.js';
|
|
123
|
+
export type { TraceStore } from './tracing.js';
|
|
124
|
+
|
|
125
|
+
// ── Logger ───────────────────────────────────────────────────────────────
|
|
126
|
+
export { setLogger, getLogger } from './logger.js';
|
|
127
|
+
export {
|
|
128
|
+
logRequestCompleted,
|
|
129
|
+
logRequestReceived,
|
|
130
|
+
logSlowRequest,
|
|
131
|
+
logMiddlewareShortCircuit,
|
|
132
|
+
logMiddlewareError,
|
|
133
|
+
logRenderError,
|
|
134
|
+
logProxyError,
|
|
135
|
+
logWaitUntilUnsupported,
|
|
136
|
+
logWaitUntilRejected,
|
|
137
|
+
logSwrRefetchFailed,
|
|
138
|
+
logCacheMiss,
|
|
139
|
+
} from './logger.js';
|
|
140
|
+
export type { TimberLogger } from './logger.js';
|
|
141
|
+
|
|
142
|
+
// ── Instrumentation ──────────────────────────────────────────────────────
|
|
143
|
+
export { loadInstrumentation, callOnRequestError, hasOnRequestError } from './instrumentation.js';
|
|
144
|
+
export type {
|
|
145
|
+
InstrumentationOnRequestError,
|
|
146
|
+
InstrumentationRequestInfo,
|
|
147
|
+
InstrumentationErrorContext,
|
|
148
|
+
} from './instrumentation.js';
|
|
149
|
+
|
|
150
|
+
// ── Dev Warnings ─────────────────────────────────────────────────────────
|
|
151
|
+
export {
|
|
152
|
+
warnSuspenseWrappingChildren,
|
|
153
|
+
warnDenyInSuspense,
|
|
154
|
+
warnRedirectInSuspense,
|
|
155
|
+
warnRedirectInAccess,
|
|
156
|
+
warnStaticRequestApi,
|
|
157
|
+
warnSlowSlotWithoutSuspense,
|
|
158
|
+
setViteServer,
|
|
159
|
+
WarningId,
|
|
160
|
+
} from './dev-warnings.js';
|
|
161
|
+
export type { DevWarningConfig } from './dev-warnings.js';
|
|
162
|
+
|
|
163
|
+
// ── Route Handler ────────────────────────────────────────────────────────
|
|
164
|
+
export { handleRouteRequest, resolveAllowedMethods } from './route-handler.js';
|
|
165
|
+
export type { RouteModule, RouteHandler, HttpMethod } from './route-handler.js';
|
|
166
|
+
|
|
167
|
+
// ── Render Timeout ───────────────────────────────────────────────────────
|
|
168
|
+
export { RenderTimeoutError } from './render-timeout.js';
|
|
169
|
+
export type { RenderTimeout } from './render-timeout.js';
|
package/src/server/logger.ts
CHANGED
|
@@ -1,16 +1,15 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Logger — structured logging with environment-aware formatting.
|
|
3
3
|
*
|
|
4
|
-
* timber.js
|
|
5
|
-
*
|
|
6
|
-
*
|
|
4
|
+
* timber.js ships a DefaultLogger that writes human-readable lines to stderr
|
|
5
|
+
* in production. Users can export a custom logger from instrumentation.ts to
|
|
6
|
+
* replace it with pino, winston, or any TimberLogger-compatible object.
|
|
7
7
|
*
|
|
8
8
|
* See design/17-logging.md §"Production Logging"
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
11
|
import { getTraceStore } from './tracing.js';
|
|
12
|
-
import {
|
|
13
|
-
import { isDebug } from './debug.js';
|
|
12
|
+
import { createDefaultLogger } from './default-logger.js';
|
|
14
13
|
|
|
15
14
|
// ─── Logger Interface ─────────────────────────────────────────────────────
|
|
16
15
|
|
|
@@ -24,21 +23,24 @@ export interface TimberLogger {
|
|
|
24
23
|
|
|
25
24
|
// ─── Logger Registry ──────────────────────────────────────────────────────
|
|
26
25
|
|
|
27
|
-
|
|
26
|
+
// Initialize with DefaultLogger so production errors are never silent.
|
|
27
|
+
// Replaced when setLogger() is called from instrumentation.ts.
|
|
28
|
+
let _logger: TimberLogger = createDefaultLogger();
|
|
28
29
|
|
|
29
30
|
/**
|
|
30
31
|
* Set the user-provided logger. Called by the instrumentation loader
|
|
31
|
-
* when it finds a `logger` export in instrumentation.ts.
|
|
32
|
+
* when it finds a `logger` export in instrumentation.ts. Replaces
|
|
33
|
+
* the DefaultLogger entirely.
|
|
32
34
|
*/
|
|
33
35
|
export function setLogger(logger: TimberLogger): void {
|
|
34
36
|
_logger = logger;
|
|
35
37
|
}
|
|
36
38
|
|
|
37
39
|
/**
|
|
38
|
-
* Get the current logger
|
|
39
|
-
*
|
|
40
|
+
* Get the current logger. Always non-null — returns DefaultLogger when
|
|
41
|
+
* no custom logger is configured.
|
|
40
42
|
*/
|
|
41
|
-
export function getLogger(): TimberLogger
|
|
43
|
+
export function getLogger(): TimberLogger {
|
|
42
44
|
return _logger;
|
|
43
45
|
}
|
|
44
46
|
|
|
@@ -71,12 +73,12 @@ export function logRequestCompleted(data: {
|
|
|
71
73
|
/** Number of concurrent in-flight requests (including this one) at completion time. */
|
|
72
74
|
concurrency?: number;
|
|
73
75
|
}): void {
|
|
74
|
-
_logger
|
|
76
|
+
_logger.info('request completed', withTraceContext(data));
|
|
75
77
|
}
|
|
76
78
|
|
|
77
79
|
/** Log request received. Level: debug. */
|
|
78
80
|
export function logRequestReceived(data: { method: string; path: string }): void {
|
|
79
|
-
_logger
|
|
81
|
+
_logger.debug('request received', withTraceContext(data));
|
|
80
82
|
}
|
|
81
83
|
|
|
82
84
|
/** Log a slow request warning. Level: warn. */
|
|
@@ -88,7 +90,7 @@ export function logSlowRequest(data: {
|
|
|
88
90
|
/** Number of concurrent in-flight requests at the time the slow request completed. */
|
|
89
91
|
concurrency?: number;
|
|
90
92
|
}): void {
|
|
91
|
-
_logger
|
|
93
|
+
_logger.warn('slow request exceeded threshold', withTraceContext(data));
|
|
92
94
|
}
|
|
93
95
|
|
|
94
96
|
/** Log middleware short-circuit. Level: debug. */
|
|
@@ -97,54 +99,60 @@ export function logMiddlewareShortCircuit(data: {
|
|
|
97
99
|
path: string;
|
|
98
100
|
status: number;
|
|
99
101
|
}): void {
|
|
100
|
-
_logger
|
|
102
|
+
_logger.debug('middleware short-circuited', withTraceContext(data));
|
|
101
103
|
}
|
|
102
104
|
|
|
103
105
|
/** Log unhandled error in middleware phase. Level: error. */
|
|
104
106
|
export function logMiddlewareError(data: { method: string; path: string; error: unknown }): void {
|
|
105
|
-
|
|
106
|
-
_logger.error('unhandled error in middleware phase', withTraceContext(data));
|
|
107
|
-
} else if (isDebug()) {
|
|
108
|
-
console.error('[timber] middleware error', data.error);
|
|
109
|
-
}
|
|
107
|
+
_logger.error('unhandled error in middleware phase', withTraceContext(data));
|
|
110
108
|
}
|
|
111
109
|
|
|
112
110
|
/** Log unhandled render-phase error. Level: error. */
|
|
113
|
-
export function logRenderError(data: {
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
}
|
|
111
|
+
export function logRenderError(data: {
|
|
112
|
+
method: string;
|
|
113
|
+
path: string;
|
|
114
|
+
error: unknown;
|
|
115
|
+
errorId?: string;
|
|
116
|
+
}): void {
|
|
117
|
+
_logger.error('unhandled render-phase error', withTraceContext(data));
|
|
121
118
|
}
|
|
122
119
|
|
|
123
120
|
/** Log proxy.ts uncaught error. Level: error. */
|
|
124
121
|
export function logProxyError(data: { error: unknown }): void {
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
122
|
+
_logger.error('proxy.ts threw uncaught error', withTraceContext(data));
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
/** Log unhandled error in server action. Level: error. */
|
|
126
|
+
export function logActionError(data: { method: string; path: string; error: unknown }): void {
|
|
127
|
+
_logger.error('unhandled server action error', withTraceContext(data));
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
/** Log unhandled error in route handler. Level: error. */
|
|
131
|
+
export function logRouteError(data: { method: string; path: string; error: unknown }): void {
|
|
132
|
+
_logger.error('unhandled route handler error', withTraceContext(data));
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
/** Log SSR streaming error (post-shell). Level: error. */
|
|
136
|
+
export function logStreamingError(data: { error: unknown }): void {
|
|
137
|
+
_logger.error('SSR streaming error (post-shell)', withTraceContext(data));
|
|
130
138
|
}
|
|
131
139
|
|
|
132
140
|
/** Log waitUntil() adapter missing (once at startup). Level: warn. */
|
|
133
141
|
export function logWaitUntilUnsupported(): void {
|
|
134
|
-
_logger
|
|
142
|
+
_logger.warn('adapter does not support waitUntil()');
|
|
135
143
|
}
|
|
136
144
|
|
|
137
145
|
/** Log waitUntil() promise rejection. Level: warn. */
|
|
138
146
|
export function logWaitUntilRejected(data: { error: unknown }): void {
|
|
139
|
-
_logger
|
|
147
|
+
_logger.warn('waitUntil() promise rejected', withTraceContext(data));
|
|
140
148
|
}
|
|
141
149
|
|
|
142
150
|
/** Log staleWhileRevalidate refetch failure. Level: warn. */
|
|
143
151
|
export function logSwrRefetchFailed(data: { cacheKey: string; error: unknown }): void {
|
|
144
|
-
_logger
|
|
152
|
+
_logger.warn('staleWhileRevalidate refetch failed', withTraceContext(data));
|
|
145
153
|
}
|
|
146
154
|
|
|
147
155
|
/** Log cache miss. Level: debug. */
|
|
148
156
|
export function logCacheMiss(data: { cacheKey: string }): void {
|
|
149
|
-
_logger
|
|
157
|
+
_logger.debug('timber.cache MISS', withTraceContext(data));
|
|
150
158
|
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Middleware runner — executes a route's middleware.ts before rendering.
|
|
2
|
+
* Middleware runner — executes a route's middleware.ts chain before rendering.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
4
|
+
* All middleware.ts files in the segment chain run, root to leaf (top-down).
|
|
5
|
+
* The first middleware that returns a Response short-circuits the chain.
|
|
6
|
+
* There is no next() — each middleware is independent.
|
|
7
7
|
*
|
|
8
8
|
* See design/07-routing.md §"middleware.ts"
|
|
9
9
|
*/
|
|
@@ -30,3 +30,30 @@ export async function runMiddleware(
|
|
|
30
30
|
}
|
|
31
31
|
return undefined;
|
|
32
32
|
}
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Run all middleware functions in the segment chain, root to leaf.
|
|
36
|
+
*
|
|
37
|
+
* Execution is top-down: root middleware runs first, leaf middleware runs last.
|
|
38
|
+
* All middleware share the same MiddlewareContext — a parent that sets
|
|
39
|
+
* ctx.requestHeaders makes it visible to child middleware and downstream components.
|
|
40
|
+
*
|
|
41
|
+
* Short-circuits on the first middleware that returns a Response.
|
|
42
|
+
* Remaining middleware in the chain do not execute.
|
|
43
|
+
*
|
|
44
|
+
* @param chain - Middleware functions ordered root-to-leaf
|
|
45
|
+
* @param ctx - Shared middleware context
|
|
46
|
+
* @returns A Response if any middleware short-circuited, or undefined to continue
|
|
47
|
+
*/
|
|
48
|
+
export async function runMiddlewareChain(
|
|
49
|
+
chain: MiddlewareFn[],
|
|
50
|
+
ctx: MiddlewareContext
|
|
51
|
+
): Promise<Response | undefined> {
|
|
52
|
+
for (const fn of chain) {
|
|
53
|
+
const result = await fn(ctx);
|
|
54
|
+
if (result instanceof Response) {
|
|
55
|
+
return result;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
return undefined;
|
|
59
|
+
}
|