@timber-js/app 0.2.0-alpha.12 → 0.2.0-alpha.120
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/actions-Cw-7NfJJ.js +1101 -0
- package/dist/_chunks/actions-Cw-7NfJJ.js.map +1 -0
- package/dist/_chunks/build-output-helper-DhxiT18k.js +61 -0
- package/dist/_chunks/build-output-helper-DhxiT18k.js.map +1 -0
- package/dist/_chunks/cli-schema-sync-XV0I47Gj.js +2 -0
- package/dist/_chunks/cli-schema-sync-q2wB0DyJ.js +358 -0
- package/dist/_chunks/cli-schema-sync-q2wB0DyJ.js.map +1 -0
- package/dist/_chunks/codec-registry-V7ARyeLN.js +21 -0
- package/dist/_chunks/codec-registry-V7ARyeLN.js.map +1 -0
- package/dist/_chunks/define-8zQ8Vm7x.js +195 -0
- package/dist/_chunks/define-8zQ8Vm7x.js.map +1 -0
- package/dist/_chunks/define-zQX6e1tN.js +124 -0
- package/dist/_chunks/define-zQX6e1tN.js.map +1 -0
- package/dist/_chunks/format-CR6v1pWE.js +14 -0
- package/dist/_chunks/format-CR6v1pWE.js.map +1 -0
- package/dist/_chunks/handler-store-iqnt2ghN.js +54 -0
- package/dist/_chunks/handler-store-iqnt2ghN.js.map +1 -0
- package/dist/_chunks/logger-DDmK5skc.js +291 -0
- package/dist/_chunks/logger-DDmK5skc.js.map +1 -0
- package/dist/_chunks/merge-search-params-CwxJzBLS.js +41 -0
- package/dist/_chunks/merge-search-params-CwxJzBLS.js.map +1 -0
- package/dist/_chunks/navigation-root-DKsJ5Di7.js +96 -0
- package/dist/_chunks/navigation-root-DKsJ5Di7.js.map +1 -0
- package/dist/_chunks/registry-Dp_hJL4s.js +20 -0
- package/dist/_chunks/registry-Dp_hJL4s.js.map +1 -0
- package/dist/_chunks/resolve-schema-23Mc8aLi.js +65 -0
- package/dist/_chunks/resolve-schema-23Mc8aLi.js.map +1 -0
- package/dist/_chunks/router-ref-sektkr-t.js +28 -0
- package/dist/_chunks/router-ref-sektkr-t.js.map +1 -0
- package/dist/_chunks/scanner-DmfoB7iK.js +336 -0
- package/dist/_chunks/scanner-DmfoB7iK.js.map +1 -0
- package/dist/_chunks/schema-bridge-eL5vQDSA.js +86 -0
- package/dist/_chunks/schema-bridge-eL5vQDSA.js.map +1 -0
- package/dist/_chunks/segment-classify-CnfLLvir.js +137 -0
- package/dist/_chunks/segment-classify-CnfLLvir.js.map +1 -0
- package/dist/_chunks/segment-context-Bg0pFbLT.js +34 -0
- package/dist/_chunks/segment-context-Bg0pFbLT.js.map +1 -0
- package/dist/_chunks/{ssr-data-MjmprTmO.js → ssr-data-BO5OvEvg.js} +1 -1
- package/dist/_chunks/ssr-data-BO5OvEvg.js.map +1 -0
- package/dist/_chunks/stale-reload-BCPRG0Cv.js +64 -0
- package/dist/_chunks/stale-reload-BCPRG0Cv.js.map +1 -0
- package/dist/_chunks/tracing-DvKLzCFa.js +329 -0
- package/dist/_chunks/tracing-DvKLzCFa.js.map +1 -0
- package/dist/_chunks/{use-query-states-D5KaffOK.js → use-query-states-D9SBlAfp.js} +7 -20
- package/dist/_chunks/use-query-states-D9SBlAfp.js.map +1 -0
- package/dist/_chunks/use-segment-params-CskiK-59.js +185 -0
- package/dist/_chunks/use-segment-params-CskiK-59.js.map +1 -0
- package/dist/_chunks/validation-Bm3Je-09.js +84 -0
- package/dist/_chunks/validation-Bm3Je-09.js.map +1 -0
- package/dist/_chunks/walkers-DgOXkTts.js +609 -0
- package/dist/_chunks/walkers-DgOXkTts.js.map +1 -0
- package/dist/_chunks/{format-DviM89f0.js → warnings-B30wpfaS.js} +6 -45
- package/dist/_chunks/warnings-B30wpfaS.js.map +1 -0
- package/dist/adapters/build-output-helper.d.ts +28 -0
- package/dist/adapters/build-output-helper.d.ts.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 +142 -38
- 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 +143 -45
- package/dist/adapters/nitro.js.map +1 -1
- package/dist/adapters/shared.d.ts +16 -0
- package/dist/adapters/shared.d.ts.map +1 -0
- 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 +151 -81
- 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-schema-sync.d.ts +37 -0
- package/dist/cli-schema-sync.d.ts.map +1 -0
- package/dist/cli.d.ts +14 -2
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +42 -6
- package/dist/cli.js.map +1 -1
- package/dist/client/browser-dev.d.ts +34 -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 +29 -6
- 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 +16 -27
- 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 +9 -24
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +172 -1100
- package/dist/client/index.js.map +1 -1
- package/dist/client/internal.d.ts +19 -0
- package/dist/client/internal.d.ts.map +1 -0
- package/dist/client/internal.js +964 -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 +62 -55
- 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/state.d.ts +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-cookie.d.ts +12 -0
- package/dist/client/use-cookie.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-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/client/{use-params.d.ts → use-segment-params.d.ts} +8 -6
- package/dist/client/use-segment-params.d.ts.map +1 -0
- package/dist/codec.d.ts +51 -0
- package/dist/codec.d.ts.map +1 -0
- package/dist/codec.js +46 -0
- package/dist/codec.js.map +1 -0
- package/dist/config-types.d.ts +294 -0
- package/dist/config-types.d.ts.map +1 -0
- package/dist/config-validation.d.ts +51 -0
- package/dist/config-validation.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 +58 -25
- package/dist/cookies/define-cookie.d.ts.map +1 -1
- package/dist/cookies/index.d.ts +2 -1
- package/dist/cookies/index.d.ts.map +1 -1
- package/dist/cookies/index.js +251 -36
- package/dist/cookies/index.js.map +1 -1
- package/dist/cookies/json-cookie.d.ts +64 -0
- package/dist/cookies/json-cookie.d.ts.map +1 -0
- package/dist/cookies/validation.d.ts +46 -0
- package/dist/cookies/validation.d.ts.map +1 -0
- package/dist/dev-tools/404-page.d.ts +46 -0
- package/dist/dev-tools/404-page.d.ts.map +1 -0
- package/dist/dev-tools/browser-logs.d.ts +84 -0
- package/dist/dev-tools/browser-logs.d.ts.map +1 -0
- package/dist/dev-tools/error-page.d.ts +58 -0
- package/dist/dev-tools/error-page.d.ts.map +1 -0
- package/dist/dev-tools/holding-server.d.ts +54 -0
- package/dist/dev-tools/holding-server.d.ts.map +1 -0
- package/dist/dev-tools/index.d.ts +31 -0
- package/dist/dev-tools/index.d.ts.map +1 -0
- package/dist/{server/dev-span-processor.d.ts → dev-tools/instrumentation.d.ts} +26 -6
- package/dist/dev-tools/instrumentation.d.ts.map +1 -0
- package/dist/{server/dev-logger.d.ts → dev-tools/logger.d.ts} +1 -1
- package/dist/dev-tools/logger.d.ts.map +1 -0
- package/dist/{plugins/dev-logs.d.ts → dev-tools/logs.d.ts} +2 -2
- package/dist/dev-tools/logs.d.ts.map +1 -0
- package/dist/dev-tools/overlay.d.ts +91 -0
- package/dist/dev-tools/overlay.d.ts.map +1 -0
- package/dist/dev-tools/stack-classifier.d.ts +34 -0
- package/dist/dev-tools/stack-classifier.d.ts.map +1 -0
- package/dist/dev-tools/terminal.d.ts +28 -0
- package/dist/dev-tools/terminal.d.ts.map +1 -0
- package/dist/{server/dev-warnings.d.ts → dev-tools/warnings.d.ts} +2 -22
- package/dist/dev-tools/warnings.d.ts.map +1 -0
- package/dist/fonts/ast.d.ts +98 -6
- package/dist/fonts/ast.d.ts.map +1 -1
- package/dist/fonts/bundle.d.ts +48 -0
- package/dist/fonts/bundle.d.ts.map +1 -0
- package/dist/fonts/dev-middleware.d.ts +22 -0
- package/dist/fonts/dev-middleware.d.ts.map +1 -0
- package/dist/fonts/local.d.ts +1 -1
- package/dist/fonts/pipeline.d.ts +167 -0
- package/dist/fonts/pipeline.d.ts.map +1 -0
- package/dist/fonts/transform.d.ts +78 -0
- package/dist/fonts/transform.d.ts.map +1 -0
- package/dist/fonts/types.d.ts +45 -1
- package/dist/fonts/types.d.ts.map +1 -1
- package/dist/fonts/virtual-modules.d.ts +94 -0
- package/dist/fonts/virtual-modules.d.ts.map +1 -0
- package/dist/index.d.ts +46 -190
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4799 -12730
- package/dist/index.js.map +1 -1
- package/dist/params/codec-registry.d.ts +26 -0
- package/dist/params/codec-registry.d.ts.map +1 -0
- package/dist/params/define-schema.d.ts +53 -0
- package/dist/params/define-schema.d.ts.map +1 -0
- package/dist/params/index.d.ts +5 -0
- package/dist/params/index.d.ts.map +1 -0
- package/dist/params/index.js +34 -0
- package/dist/params/index.js.map +1 -0
- package/dist/params/resolve-schema.d.ts +34 -0
- package/dist/params/resolve-schema.d.ts.map +1 -0
- 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 +9 -7
- 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-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 +17 -73
- 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 +5 -26
- package/dist/plugins/static-build.d.ts.map +1 -1
- package/dist/routing/codegen-shared.d.ts +63 -0
- package/dist/routing/codegen-shared.d.ts.map +1 -0
- package/dist/routing/codegen-types.d.ts +60 -0
- package/dist/routing/codegen-types.d.ts.map +1 -0
- package/dist/routing/codegen.d.ts +7 -2
- package/dist/routing/codegen.d.ts.map +1 -1
- package/dist/routing/convention-lint.d.ts +41 -0
- package/dist/routing/convention-lint.d.ts.map +1 -0
- package/dist/routing/index.d.ts +5 -1
- package/dist/routing/index.d.ts.map +1 -1
- package/dist/routing/index.js +4 -2
- package/dist/routing/link-codegen.d.ts +90 -0
- package/dist/routing/link-codegen.d.ts.map +1 -0
- package/dist/routing/scanner.d.ts +1 -10
- package/dist/routing/scanner.d.ts.map +1 -1
- package/dist/routing/segment-classify.d.ts +75 -0
- package/dist/routing/segment-classify.d.ts.map +1 -0
- package/dist/routing/segment-codegen.d.ts +38 -0
- package/dist/routing/segment-codegen.d.ts.map +1 -0
- package/dist/routing/types.d.ts +77 -25
- package/dist/routing/types.d.ts.map +1 -1
- package/dist/routing/walkers.d.ts +51 -0
- package/dist/routing/walkers.d.ts.map +1 -0
- 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 +157 -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 +34 -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 +95 -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 +8 -3
- package/dist/server/access-gate.d.ts.map +1 -1
- package/dist/server/action-client.d.ts +41 -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 +35 -1
- 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 +53 -5
- package/dist/server/als-registry.d.ts.map +1 -1
- package/dist/server/asset-headers.d.ts +1 -15
- package/dist/server/asset-headers.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/coalesce-tick.d.ts +40 -0
- package/dist/server/coalesce-tick.d.ts.map +1 -0
- package/dist/server/cookie-context.d.ts +170 -0
- package/dist/server/cookie-context.d.ts.map +1 -0
- package/dist/server/cookie-parsing.d.ts +51 -0
- package/dist/server/cookie-parsing.d.ts.map +1 -0
- 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-boundary.d.ts +90 -0
- package/dist/server/deny-boundary.d.ts.map +1 -0
- package/dist/server/deny-renderer.d.ts.map +1 -1
- package/dist/server/dev-source-map.d.ts +22 -0
- package/dist/server/dev-source-map.d.ts.map +1 -0
- package/dist/server/early-hints-sender.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 +12 -7
- 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-injector-core.d.ts +213 -0
- package/dist/server/html-injector-core.d.ts.map +1 -0
- package/dist/server/html-injectors.d.ts +81 -41
- package/dist/server/html-injectors.d.ts.map +1 -1
- package/dist/server/index.d.ts +10 -46
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +155 -2905
- package/dist/server/index.js.map +1 -1
- package/dist/server/internal.d.ts +48 -0
- package/dist/server/internal.d.ts.map +1 -0
- package/dist/server/internal.js +2947 -0
- package/dist/server/internal.js.map +1 -0
- package/dist/server/logger.d.ts +39 -7
- package/dist/server/logger.d.ts.map +1 -1
- package/dist/server/middleware-runner.d.ts +36 -4
- package/dist/server/middleware-runner.d.ts.map +1 -1
- package/dist/server/node-stream-transforms.d.ts +112 -0
- package/dist/server/node-stream-transforms.d.ts.map +1 -0
- package/dist/server/param-coercion.d.ts +54 -0
- package/dist/server/param-coercion.d.ts.map +1 -0
- package/dist/server/pipeline-helpers.d.ts +95 -0
- package/dist/server/pipeline-helpers.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-outcome.d.ts +49 -0
- package/dist/server/pipeline-outcome.d.ts.map +1 -0
- package/dist/server/pipeline-phases.d.ts +52 -0
- package/dist/server/pipeline-phases.d.ts.map +1 -0
- package/dist/server/pipeline.d.ts +118 -23
- package/dist/server/pipeline.d.ts.map +1 -1
- package/dist/server/port-resolution.d.ts +117 -0
- package/dist/server/port-resolution.d.ts.map +1 -0
- 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 +62 -107
- 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 +21 -34
- package/dist/server/route-matcher.d.ts.map +1 -1
- package/dist/server/rsc-entry/action-middleware-runner.d.ts +66 -0
- package/dist/server/rsc-entry/action-middleware-runner.d.ts.map +1 -0
- 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 +49 -6
- package/dist/server/rsc-entry/helpers.d.ts.map +1 -1
- package/dist/server/rsc-entry/index.d.ts +19 -8
- package/dist/server/rsc-entry/index.d.ts.map +1 -1
- package/dist/server/rsc-entry/render-route.d.ts +50 -0
- package/dist/server/rsc-entry/render-route.d.ts.map +1 -0
- 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 +17 -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/rsc-entry/wrap-action-dispatch.d.ts +119 -0
- package/dist/server/rsc-entry/wrap-action-dispatch.d.ts.map +1 -0
- package/dist/server/safe-load.d.ts +46 -0
- package/dist/server/safe-load.d.ts.map +1 -0
- package/dist/server/sensitive-fields.d.ts +74 -0
- package/dist/server/sensitive-fields.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 +30 -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/state-tree-diff.d.ts.map +1 -1
- package/dist/server/status-code-resolver.d.ts +16 -11
- 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 +5 -5
- package/dist/server/tracing.d.ts.map +1 -1
- package/dist/server/tree-builder.d.ts +62 -30
- package/dist/server/tree-builder.d.ts.map +1 -1
- package/dist/server/tree-match.d.ts +41 -0
- package/dist/server/tree-match.d.ts.map +1 -0
- package/dist/server/types.d.ts +49 -4
- package/dist/server/types.d.ts.map +1 -1
- package/dist/server/utils/escape-html.d.ts +14 -0
- package/dist/server/utils/escape-html.d.ts.map +1 -0
- 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 +3 -1
- package/dist/shims/navigation-client.d.ts.map +1 -1
- package/dist/shims/navigation.d.ts +11 -5
- package/dist/shims/navigation.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 -16
- package/src/adapters/build-output-helper.ts +77 -0
- package/src/adapters/cloudflare-dev.ts +177 -0
- package/src/adapters/cloudflare-kv-cache.ts +142 -0
- package/src/adapters/cloudflare.ts +350 -76
- package/src/adapters/compress-module.ts +24 -4
- package/src/adapters/nitro.ts +142 -59
- package/src/adapters/shared.ts +40 -0
- 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 +33 -0
- package/src/cache/timber-cache.ts +25 -20
- package/src/cli-schema-sync.ts +207 -0
- package/src/cli.ts +65 -8
- package/src/client/browser-dev.ts +153 -1
- package/src/client/browser-entry/action-dispatch.ts +126 -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 +149 -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 +99 -22
- package/src/client/error-reconstituter.tsx +65 -0
- package/src/client/form.tsx +31 -32
- package/src/client/history.ts +26 -4
- package/src/client/index.ts +69 -44
- package/src/client/internal.ts +58 -0
- package/src/client/link-pending-store.ts +111 -0
- package/src/client/link.tsx +366 -113
- 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 +300 -73
- package/src/client/rsc-fetch.ts +112 -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/state.ts +2 -2
- package/src/client/top-loader.tsx +18 -6
- package/src/client/use-cookie.ts +31 -2
- package/src/client/use-link-status.ts +7 -7
- package/src/client/{use-navigation-pending.ts → use-pending-navigation.ts} +6 -6
- package/src/client/use-query-states.ts +9 -3
- package/src/client/use-router.ts +1 -1
- package/src/client/{use-params.ts → use-segment-params.ts} +8 -6
- package/src/codec.ts +97 -0
- package/src/config-types.ts +292 -0
- package/src/config-validation.ts +303 -0
- package/src/content/index.ts +5 -13
- package/src/cookies/define-cookie.ts +233 -53
- package/src/cookies/index.ts +12 -1
- package/src/cookies/json-cookie.ts +105 -0
- package/src/cookies/validation.ts +134 -0
- package/src/dev-tools/404-page.ts +387 -0
- package/src/dev-tools/browser-logs.ts +291 -0
- package/src/dev-tools/error-page.ts +506 -0
- package/src/dev-tools/holding-server.ts +187 -0
- package/src/dev-tools/index.ts +90 -0
- package/src/dev-tools/instrumentation.ts +176 -0
- package/src/{plugins/dev-logs.ts → dev-tools/logs.ts} +9 -5
- package/src/dev-tools/overlay.ts +469 -0
- package/src/dev-tools/stack-classifier.ts +75 -0
- package/src/dev-tools/terminal.ts +183 -0
- package/src/{server/dev-warnings.ts → dev-tools/warnings.ts} +5 -50
- package/src/fonts/ast.ts +525 -16
- package/src/fonts/bundle.ts +142 -0
- package/src/fonts/dev-middleware.ts +74 -0
- package/src/fonts/local.ts +1 -1
- package/src/fonts/pipeline.ts +314 -0
- package/src/fonts/transform.ts +317 -0
- package/src/fonts/types.ts +50 -1
- package/src/fonts/virtual-modules.ts +233 -0
- package/src/index.ts +409 -357
- package/src/params/codec-registry.ts +34 -0
- package/src/params/define-schema.ts +73 -0
- package/src/params/index.ts +11 -0
- package/src/params/resolve-schema.ts +88 -0
- package/src/plugin-context.ts +240 -0
- package/src/plugins/adapter-build.ts +12 -4
- package/src/plugins/build-manifest.ts +13 -2
- package/src/plugins/build-report.ts +16 -25
- package/src/plugins/client-chunks.ts +65 -0
- package/src/plugins/content.ts +1 -1
- package/src/plugins/dev-server.ts +175 -35
- package/src/plugins/entries.ts +111 -9
- package/src/plugins/fonts.ts +157 -654
- package/src/plugins/mdx.ts +47 -10
- package/src/plugins/routing.ts +374 -45
- package/src/plugins/server-bundle.ts +32 -1
- package/src/plugins/shims.ts +136 -35
- package/src/plugins/static-build.ts +15 -89
- package/src/routing/codegen-shared.ts +109 -0
- package/src/routing/codegen-types.ts +61 -0
- package/src/routing/codegen.ts +269 -179
- package/src/routing/convention-lint.ts +357 -0
- package/src/routing/index.ts +5 -1
- package/src/routing/interception.ts +1 -1
- package/src/routing/link-codegen.ts +308 -0
- package/src/routing/scanner.ts +107 -110
- package/src/routing/segment-classify.ts +188 -0
- package/src/routing/segment-codegen.ts +98 -0
- package/src/routing/types.ts +78 -25
- package/src/routing/walkers.ts +90 -0
- 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 +538 -0
- package/src/search-params/index.ts +14 -20
- package/src/search-params/registry.ts +2 -2
- package/src/search-params/wrappers.ts +92 -0
- package/src/segment-params/define.ts +336 -0
- package/src/segment-params/index.ts +9 -0
- package/src/server/access-gate.tsx +76 -34
- package/src/server/action-client.ts +88 -15
- package/src/server/action-encryption.ts +144 -0
- package/src/server/action-handler.ts +112 -14
- package/src/server/actions.ts +10 -9
- package/src/server/als-registry.ts +55 -7
- package/src/server/asset-headers.ts +8 -34
- package/src/server/build-manifest.ts +10 -4
- package/src/server/coalesce-tick.ts +75 -0
- package/src/server/compress.ts +25 -7
- package/src/server/cookie-context.ts +468 -0
- package/src/server/cookie-parsing.ts +135 -0
- package/src/server/debug.ts +1 -1
- package/src/server/default-logger.ts +99 -0
- package/src/server/deny-boundary.ts +218 -0
- package/src/server/deny-renderer.ts +31 -50
- package/src/server/dev-source-map.ts +31 -0
- package/src/server/early-hints-sender.ts +3 -2
- package/src/server/early-hints.ts +36 -15
- package/src/server/error-boundary-wrapper.ts +74 -22
- package/src/server/fallback-error.ts +74 -102
- 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-injector-core.ts +417 -0
- package/src/server/html-injectors.ts +235 -223
- package/src/server/index.ts +29 -183
- package/src/server/internal.ts +176 -0
- package/src/server/logger.ts +67 -36
- package/src/server/middleware-runner.ts +75 -4
- package/src/server/node-stream-transforms.ts +361 -0
- package/src/server/param-coercion.ts +206 -0
- package/src/server/pipeline-helpers.ts +204 -0
- package/src/server/pipeline-interception.ts +17 -16
- package/src/server/pipeline-metadata.ts +13 -0
- package/src/server/pipeline-outcome.ts +176 -0
- package/src/server/pipeline-phases.ts +460 -0
- package/src/server/pipeline.ts +154 -394
- package/src/server/port-resolution.ts +215 -0
- package/src/server/primitives.ts +111 -28
- package/src/server/render-timeout.ts +108 -0
- package/src/server/request-context.ts +168 -333
- package/src/server/route-element-builder.ts +309 -195
- package/src/server/route-handler.ts +24 -4
- package/src/server/route-matcher.ts +50 -231
- package/src/server/rsc-entry/action-middleware-runner.ts +167 -0
- package/src/server/rsc-entry/api-handler.ts +16 -17
- package/src/server/rsc-entry/error-renderer.ts +305 -89
- package/src/server/rsc-entry/helpers.ts +137 -12
- package/src/server/rsc-entry/index.ts +316 -352
- package/src/server/rsc-entry/render-route.ts +307 -0
- package/src/server/rsc-entry/rsc-payload.ts +65 -18
- package/src/server/rsc-entry/rsc-stream.ts +85 -13
- package/src/server/rsc-entry/ssr-bridge.ts +14 -5
- package/src/server/rsc-entry/ssr-renderer.ts +187 -38
- package/src/server/rsc-entry/wrap-action-dispatch.ts +449 -0
- package/src/server/safe-load.ts +60 -0
- package/src/server/sensitive-fields.ts +230 -0
- package/src/server/sitemap-generator.ts +338 -0
- package/src/server/sitemap-handler.ts +126 -0
- package/src/server/slot-resolver.ts +228 -246
- package/src/server/ssr-entry.ts +229 -32
- package/src/server/ssr-render.ts +289 -67
- package/src/server/ssr-wrappers.tsx +139 -0
- package/src/server/state-tree-diff.ts +4 -1
- package/src/server/status-code-resolver.ts +112 -128
- package/src/server/stream-utils.ts +213 -0
- package/src/server/tracing.ts +21 -10
- package/src/server/tree-builder.ts +202 -90
- package/src/server/tree-match.ts +198 -0
- package/src/server/types.ts +55 -6
- package/src/server/utils/escape-html.ts +20 -0
- 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 +4 -3
- package/src/shims/navigation.ts +14 -7
- package/src/utils/state-machine.ts +111 -0
- package/dist/_chunks/als-registry-B7DbZ2hS.js +0 -41
- package/dist/_chunks/als-registry-B7DbZ2hS.js.map +0 -1
- package/dist/_chunks/debug-gwlJkDuf.js +0 -108
- package/dist/_chunks/debug-gwlJkDuf.js.map +0 -1
- package/dist/_chunks/format-DviM89f0.js.map +0 -1
- package/dist/_chunks/interception-BOoWmLUA.js +0 -676
- 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/ssr-data-MjmprTmO.js.map +0 -1
- package/dist/_chunks/tracing-CemImE6h.js +0 -187
- 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/client/use-params.d.ts.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/dev-error-overlay.d.ts +0 -60
- package/dist/plugins/dev-error-overlay.d.ts.map +0 -1
- package/dist/plugins/dev-logs.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/plugins/server-action-exports.d.ts +0 -26
- package/dist/plugins/server-action-exports.d.ts.map +0 -1
- package/dist/routing/status-file-lint.d.ts +0 -33
- package/dist/routing/status-file-lint.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/dev-fetch-instrumentation.d.ts +0 -22
- package/dist/server/dev-fetch-instrumentation.d.ts.map +0 -1
- package/dist/server/dev-logger.d.ts.map +0 -1
- package/dist/server/dev-span-processor.d.ts.map +0 -1
- package/dist/server/dev-warnings.d.ts.map +0 -1
- package/dist/server/manifest-status-resolver.d.ts +0 -58
- package/dist/server/manifest-status-resolver.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/dist/utils/directive-parser.d.ts +0 -70
- package/dist/utils/directive-parser.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/dev-error-overlay.ts +0 -230
- package/src/plugins/dynamic-transform.ts +0 -161
- package/src/plugins/server-action-exports.ts +0 -220
- package/src/routing/status-file-lint.ts +0 -112
- 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/dev-fetch-instrumentation.ts +0 -96
- package/src/server/dev-span-processor.ts +0 -78
- package/src/server/manifest-status-resolver.ts +0 -215
- package/src/server/prerender.ts +0 -139
- package/src/server/response-cache.ts +0 -410
- package/src/utils/directive-parser.ts +0 -529
- /package/src/{server/dev-logger.ts → dev-tools/logger.ts} +0 -0
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* jsonCookieCodec — Codec helper for storing JSON-serializable values in
|
|
3
|
+
* cookies.
|
|
4
|
+
*
|
|
5
|
+
* The codec is intentionally minimal: `JSON.stringify` on serialize,
|
|
6
|
+
* `JSON.parse` on parse. The framework handles the URL encoding /
|
|
7
|
+
* decoding around it (see design/29-cookies.md §"Encoding Contract"):
|
|
8
|
+
*
|
|
9
|
+
* defineCookie.setCookie(value)
|
|
10
|
+
* → codec.serialize: JSON.stringify → '{"a":1}'
|
|
11
|
+
* → cookies().set: encodeURIComponent → '%7B%22a%22%3A1%7D'
|
|
12
|
+
* → wire: Set-Cookie: prefs=%7B%22a%22%3A1%7D
|
|
13
|
+
*
|
|
14
|
+
* defineCookie.getCookie()
|
|
15
|
+
* → wire: Cookie: prefs=%7B%22a%22%3A1%7D
|
|
16
|
+
* → parseCookieHeader: decodeURIComponent → '{"a":1}'
|
|
17
|
+
* → codec.parse: JSON.parse → { a: 1 }
|
|
18
|
+
*
|
|
19
|
+
* The same chain works on the client: `useCookie` auto-encodes on writes
|
|
20
|
+
* and auto-decodes on reads, so `jsonCookieCodec` composes with both the
|
|
21
|
+
* server `defineCookie` methods and the client `useCookie` hook with no
|
|
22
|
+
* environment-specific branches.
|
|
23
|
+
*
|
|
24
|
+
* Parsing is total: any non-JSON value (or `undefined`) returns the
|
|
25
|
+
* supplied default. This matches the "never crash on user-controlled
|
|
26
|
+
* cookie input" semantics that `fromSchema` uses for typed search params.
|
|
27
|
+
*
|
|
28
|
+
* ```ts
|
|
29
|
+
* import { defineCookie, jsonCookieCodec } from '@timber-js/app/cookies';
|
|
30
|
+
*
|
|
31
|
+
* interface Prefs { lang: string; fontSize: number }
|
|
32
|
+
*
|
|
33
|
+
* export const prefsCookie = defineCookie('prefs', {
|
|
34
|
+
* codec: jsonCookieCodec<Prefs>({ lang: 'en', fontSize: 16 }),
|
|
35
|
+
* httpOnly: false,
|
|
36
|
+
* maxAge: 60 * 60 * 24 * 365,
|
|
37
|
+
* });
|
|
38
|
+
*
|
|
39
|
+
* await prefsCookie.setCookie({ lang: 'fr', fontSize: 18 });
|
|
40
|
+
* ```
|
|
41
|
+
*/
|
|
42
|
+
import type { Codec } from '../codec.js';
|
|
43
|
+
/**
|
|
44
|
+
* Build a CookieCodec that JSON-encodes the value. The framework's
|
|
45
|
+
* cookie write path then URL-encodes the JSON string into a valid
|
|
46
|
+
* `cookie-octet` form, and the read path reverses both transforms.
|
|
47
|
+
*
|
|
48
|
+
* @param defaultValue - Returned by `parse` when the cookie is missing
|
|
49
|
+
* or the stored value cannot be JSON-parsed. Optional — if omitted,
|
|
50
|
+
* `parse` returns `undefined` on missing/malformed input.
|
|
51
|
+
*
|
|
52
|
+
* The default is **deep-cloned** on every fallback return via
|
|
53
|
+
* `structuredClone`, so mutating the parsed result in one request
|
|
54
|
+
* cannot leak into later requests that fall back to the same
|
|
55
|
+
* default. This matters for long-lived server processes where a
|
|
56
|
+
* codec is defined once at module load and shared across all
|
|
57
|
+
* requests — without the clone, a user doing
|
|
58
|
+
* `const prefs = prefsCookie.get(); prefs.lang = 'fr'` on a missing
|
|
59
|
+
* cookie would mutate the module-level default and poison every
|
|
60
|
+
* later fallback. See the "shared mutable default" regression test
|
|
61
|
+
* in `tests/define-cookie.test.ts`.
|
|
62
|
+
*/
|
|
63
|
+
export declare function jsonCookieCodec<T>(defaultValue?: T): Codec<T>;
|
|
64
|
+
//# sourceMappingURL=json-cookie.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json-cookie.d.ts","sourceRoot":"","sources":["../../src/cookies/json-cookie.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEzC;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,YAAY,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAwC7D"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cookie name and value validation per RFC 6265 §4.1.1.
|
|
3
|
+
*
|
|
4
|
+
* This module is pure — no server or client imports — so it can be loaded
|
|
5
|
+
* by both `server/request-context.ts` (which guards `getCookies().set()`)
|
|
6
|
+
* and `client/use-cookie.ts` (which guards `useCookie()`'s setter). The
|
|
7
|
+
* shared validator gives both sides identical encoding contracts:
|
|
8
|
+
* **the framework never silently encodes — callers emit `cookie-octet`
|
|
9
|
+
* bytes or get a developer-facing error.**
|
|
10
|
+
*
|
|
11
|
+
* Why this matters: see ONGOING_SECURITY.md H-3 (TIM-868) and
|
|
12
|
+
* design/29-cookies.md §"Cookie Name and Value Validation".
|
|
13
|
+
*/
|
|
14
|
+
/**
|
|
15
|
+
* Validate a cookie name against RFC 6265 §4.1.1 / RFC 7230 token rules.
|
|
16
|
+
* Throws a developer-facing error naming the offending byte and its index.
|
|
17
|
+
*/
|
|
18
|
+
export declare function assertValidCookieName(name: string): void;
|
|
19
|
+
/**
|
|
20
|
+
* Validate a cookie value against the RFC 6265 §4.1.1 `cookie-value`
|
|
21
|
+
* production:
|
|
22
|
+
*
|
|
23
|
+
* cookie-value = *cookie-octet / ( DQUOTE *cookie-octet DQUOTE )
|
|
24
|
+
* cookie-octet = %x21 / %x23-2B / %x2D-3A / %x3C-5B / %x5D-7E
|
|
25
|
+
*
|
|
26
|
+
* Both the bare `*cookie-octet` form and the DQUOTE-wrapped form are
|
|
27
|
+
* valid. The wrapped form is common in upstream `Set-Cookie` headers
|
|
28
|
+
* (e.g. `sid="abc"; Path=/`) and must be forwardable through
|
|
29
|
+
* `setFromHeaders` verbatim — stripping or rejecting the surrounding
|
|
30
|
+
* quotes would corrupt the on-the-wire bytes and break value semantics
|
|
31
|
+
* for the upstream service.
|
|
32
|
+
*
|
|
33
|
+
* Excluded bytes (in either form): CTL, whitespace (CR/LF/TAB/SP),
|
|
34
|
+
* interior DQUOTE, comma, semicolon, backslash, DEL, and anything
|
|
35
|
+
* non-ASCII. The smuggling primitive (`;`) is rejected regardless of
|
|
36
|
+
* wrapping.
|
|
37
|
+
*
|
|
38
|
+
* Throws a developer-facing error naming the offending byte and its
|
|
39
|
+
* index. Callers passing user-controlled data through the default
|
|
40
|
+
* `set()` path don't need to call this — `set()` auto-encodes via
|
|
41
|
+
* `encodeURIComponent`, whose output is always valid cookie-octet.
|
|
42
|
+
* This validator is for the `{ raw: true }` opt-out and for
|
|
43
|
+
* `setFromHeaders` forwarding.
|
|
44
|
+
*/
|
|
45
|
+
export declare function assertValidCookieValue(name: string, value: string): void;
|
|
46
|
+
//# sourceMappingURL=validation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/cookies/validation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AA+BH;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAoBxD;AAaD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CA2BxE"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Dev 404 page — self-contained HTML page for dev-mode route misses.
|
|
3
|
+
*
|
|
4
|
+
* When no route matches and the user has no 404.tsx, this page shows:
|
|
5
|
+
* - The requested path
|
|
6
|
+
* - All registered routes in the app
|
|
7
|
+
* - "Did you mean?" suggestions based on string similarity
|
|
8
|
+
* - Setup instructions for new projects with no routes
|
|
9
|
+
*
|
|
10
|
+
* Dev-only: this module is only imported in dev mode. It is never
|
|
11
|
+
* included in production builds.
|
|
12
|
+
*
|
|
13
|
+
* Design doc: 21-dev-server.md, 07-routing.md
|
|
14
|
+
*/
|
|
15
|
+
import type { SegmentNode } from '../routing/types.js';
|
|
16
|
+
interface RouteInfo {
|
|
17
|
+
/** URL path pattern (e.g., "/dashboard/[id]") */
|
|
18
|
+
path: string;
|
|
19
|
+
/** Whether this is a page route or API route handler */
|
|
20
|
+
type: 'page' | 'route';
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Collect all routable paths from a route tree (build-time scanner output
|
|
24
|
+
* or runtime route manifest).
|
|
25
|
+
*
|
|
26
|
+
* Wraps the shared `collectLeafRoutes` walker (TIM-848). Includes parallel
|
|
27
|
+
* slots so the dev 404 page can list slot pages too — they aren't
|
|
28
|
+
* separately addressable, but they're still useful to know about when
|
|
29
|
+
* debugging a missing route.
|
|
30
|
+
*/
|
|
31
|
+
export declare function collectRoutes<TFile>(root: SegmentNode<TFile>): RouteInfo[];
|
|
32
|
+
/**
|
|
33
|
+
* Find routes similar to the requested path.
|
|
34
|
+
*
|
|
35
|
+
* Returns up to 3 suggestions, sorted by similarity.
|
|
36
|
+
* Only includes routes with distance ≤ 40% of the longer string.
|
|
37
|
+
*/
|
|
38
|
+
export declare function findSimilarRoutes(requestedPath: string, routes: RouteInfo[]): RouteInfo[];
|
|
39
|
+
/**
|
|
40
|
+
* Generate a dev-mode 404 page with route listing and suggestions.
|
|
41
|
+
*
|
|
42
|
+
* Returns an HTML string for a self-contained error page.
|
|
43
|
+
*/
|
|
44
|
+
export declare function generateDev404Page(requestedPath: string, routes: RouteInfo[]): string;
|
|
45
|
+
export {};
|
|
46
|
+
//# sourceMappingURL=404-page.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"404-page.d.ts","sourceRoot":"","sources":["../../src/dev-tools/404-page.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAMvD,UAAU,SAAS;IACjB,iDAAiD;IACjD,IAAI,EAAE,MAAM,CAAC;IACb,wDAAwD;IACxD,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAID;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,IAAI,EAAE,WAAW,CAAC,KAAK,CAAC,GAAG,SAAS,EAAE,CAQ1E;AAmCD;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,SAAS,EAAE,CAezF;AAQD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAiFrF"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* timber-dev-browser-logs — Forwards browser console output to the server terminal.
|
|
3
|
+
*
|
|
4
|
+
* Injects a small inline script in dev mode that intercepts browser
|
|
5
|
+
* `console.error`, `console.warn`, and `console.info`, then forwards
|
|
6
|
+
* messages to the server via Vite's HMR WebSocket.
|
|
7
|
+
*
|
|
8
|
+
* The server-side listener formats and prints the messages with color-coded
|
|
9
|
+
* prefixes: [browser:error], [browser:warn], [browser:info].
|
|
10
|
+
*
|
|
11
|
+
* Dev-only: this plugin only runs during `vite dev`.
|
|
12
|
+
* No runtime overhead in production.
|
|
13
|
+
*
|
|
14
|
+
* See TIM-513 for design context.
|
|
15
|
+
* See design/18-build-system.md §"Dev Server" for sub-plugin architecture.
|
|
16
|
+
*/
|
|
17
|
+
import type { Plugin } from 'vite';
|
|
18
|
+
import type { PluginContext } from '../plugin-context.js';
|
|
19
|
+
/** Log levels forwarded from the browser. */
|
|
20
|
+
export type BrowserLogLevel = 'error' | 'warn' | 'info';
|
|
21
|
+
/** Configuration value for devBrowserLogs in timber.config.ts. */
|
|
22
|
+
export type DevBrowserLogsConfig = BrowserLogLevel | 'none' | undefined;
|
|
23
|
+
/**
|
|
24
|
+
* Payload sent from browser to server via Vite's HMR WebSocket.
|
|
25
|
+
* Kept small — truncated before sending.
|
|
26
|
+
*/
|
|
27
|
+
export interface BrowserLogPayload {
|
|
28
|
+
level: BrowserLogLevel;
|
|
29
|
+
/** Serialized message string. */
|
|
30
|
+
message: string;
|
|
31
|
+
/** Error stack trace, if the first argument was an Error. */
|
|
32
|
+
stack: string | null;
|
|
33
|
+
/** Source URL and line number, if available. */
|
|
34
|
+
source: string | null;
|
|
35
|
+
/** Timestamp in ms (Date.now()) from the browser. */
|
|
36
|
+
timestamp: number;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Format a browser log payload for server terminal output.
|
|
40
|
+
*
|
|
41
|
+
* Produces color-coded output like:
|
|
42
|
+
* [browser:error] Uncaught TypeError: x is not a function
|
|
43
|
+
* at App (app.tsx:10:5)
|
|
44
|
+
* [browser:warn] Deprecation warning (app/page.tsx:42:12)
|
|
45
|
+
*/
|
|
46
|
+
export declare function formatBrowserLog(payload: BrowserLogPayload): string;
|
|
47
|
+
/**
|
|
48
|
+
* Check if a log at `level` should be forwarded given the configured threshold.
|
|
49
|
+
*
|
|
50
|
+
* The threshold acts as a minimum severity:
|
|
51
|
+
* - 'error' → only errors
|
|
52
|
+
* - 'warn' → errors + warnings
|
|
53
|
+
* - 'info' → errors + warnings + info
|
|
54
|
+
* - 'none' → nothing
|
|
55
|
+
*/
|
|
56
|
+
export declare function shouldForwardLevel(level: BrowserLogLevel, threshold: BrowserLogLevel | 'none'): boolean;
|
|
57
|
+
/**
|
|
58
|
+
* Truncate a message to `maxBytes` to avoid flooding the terminal.
|
|
59
|
+
* Appends a suffix indicating how many bytes were dropped.
|
|
60
|
+
*/
|
|
61
|
+
export declare function truncateMessage(message: string, maxBytes: number): string;
|
|
62
|
+
/**
|
|
63
|
+
* Generate the inline script injected into the browser in dev mode.
|
|
64
|
+
*
|
|
65
|
+
* This script:
|
|
66
|
+
* 1. Saves references to the original console methods
|
|
67
|
+
* 2. Wraps `console.error`, `console.warn`, `console.info`
|
|
68
|
+
* 3. Calls the original first (browser devtools still work)
|
|
69
|
+
* 4. Serializes and forwards via `import.meta.hot.send()`
|
|
70
|
+
* 5. Truncates messages to MAX_MESSAGE_BYTES
|
|
71
|
+
*
|
|
72
|
+
* The script is minimal and self-contained — no imports, no dependencies.
|
|
73
|
+
*/
|
|
74
|
+
export declare function generateClientScript(threshold: BrowserLogLevel | 'none'): string;
|
|
75
|
+
/**
|
|
76
|
+
* Create the timber-dev-browser-logs Vite plugin.
|
|
77
|
+
*
|
|
78
|
+
* - `configureServer`: Listens for HMR messages and prints them to the terminal
|
|
79
|
+
* - `transformIndexHtml`: Injects the client-side interception script
|
|
80
|
+
*
|
|
81
|
+
* Only active during `vite dev` (apply: 'serve').
|
|
82
|
+
*/
|
|
83
|
+
export declare function timberDevBrowserLogs(ctx: PluginContext): Plugin;
|
|
84
|
+
//# sourceMappingURL=browser-logs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"browser-logs.d.ts","sourceRoot":"","sources":["../../src/dev-tools/browser-logs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAiB,MAAM,MAAM,CAAC;AAClD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAI1D,6CAA6C;AAC7C,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;AAExD,kEAAkE;AAClE,MAAM,MAAM,oBAAoB,GAAG,eAAe,GAAG,MAAM,GAAG,SAAS,CAAC;AAExE;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,eAAe,CAAC;IACvB,iCAAiC;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,6DAA6D;IAC7D,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,gDAAgD;IAChD,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,qDAAqD;IACrD,SAAS,EAAE,MAAM,CAAC;CACnB;AA6BD;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,iBAAiB,GAAG,MAAM,CAsBnE;AAID;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,eAAe,EACtB,SAAS,EAAE,eAAe,GAAG,MAAM,GAClC,OAAO,CAGT;AAID;;;GAGG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAMzE;AAID;;;;;;;;;;;GAWG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,eAAe,GAAG,MAAM,GAAG,MAAM,CAgEhF;AAID;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,aAAa,GAAG,MAAM,CAgE/D"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Dev error page — self-contained HTML error page for dev server 500s.
|
|
3
|
+
*
|
|
4
|
+
* Generates a styled, self-contained HTML page when the RSC pipeline fails
|
|
5
|
+
* and the Vite error overlay can't fire (e.g., first page load before HMR
|
|
6
|
+
* WebSocket connects, RSC entry module crash, early pipeline errors).
|
|
7
|
+
*
|
|
8
|
+
* This is NOT a replacement for Vite's error overlay — it's the fallback
|
|
9
|
+
* for when the overlay's transport (WebSocket) isn't available yet.
|
|
10
|
+
*
|
|
11
|
+
* Dev-only: this module is only imported by dev-server.ts (apply: 'serve').
|
|
12
|
+
* It is never included in production builds.
|
|
13
|
+
*
|
|
14
|
+
* Design doc: 21-dev-server.md §"Error Overlay"
|
|
15
|
+
*/
|
|
16
|
+
import { type ErrorPhase } from './overlay.js';
|
|
17
|
+
/**
|
|
18
|
+
* HMR connection options for the dev error page auto-reload WebSocket.
|
|
19
|
+
* Derived from Vite's resolved server config so the error page can
|
|
20
|
+
* connect to the correct HMR endpoint (TIM-789).
|
|
21
|
+
*/
|
|
22
|
+
export interface DevErrorHmrOptions {
|
|
23
|
+
protocol?: string;
|
|
24
|
+
host?: string;
|
|
25
|
+
port?: number;
|
|
26
|
+
path?: string;
|
|
27
|
+
token?: string;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Extract HMR connection options from a Vite resolved config.
|
|
31
|
+
* Used by the dev server to pass HMR config to the error page generator
|
|
32
|
+
* so the auto-reload WebSocket connects to the correct endpoint.
|
|
33
|
+
*/
|
|
34
|
+
export declare function extractHmrOptions(config: {
|
|
35
|
+
server?: {
|
|
36
|
+
hmr?: {
|
|
37
|
+
protocol?: string;
|
|
38
|
+
host?: string;
|
|
39
|
+
port?: number;
|
|
40
|
+
path?: string;
|
|
41
|
+
} | boolean;
|
|
42
|
+
};
|
|
43
|
+
webSocketToken?: string;
|
|
44
|
+
}): DevErrorHmrOptions | undefined;
|
|
45
|
+
/**
|
|
46
|
+
* Generate a self-contained HTML error page for dev server 500 responses.
|
|
47
|
+
*
|
|
48
|
+
* The page includes:
|
|
49
|
+
* - Error message and phase label
|
|
50
|
+
* - Source code context around the first app frame (if readable)
|
|
51
|
+
* - Component stack (for React render errors)
|
|
52
|
+
* - Classified stack trace (app frames highlighted, internals collapsed)
|
|
53
|
+
* - Copy button for the full error
|
|
54
|
+
* - Dark/light mode via prefers-color-scheme
|
|
55
|
+
* - Auto-reconnect script that watches for Vite HMR and reloads
|
|
56
|
+
*/
|
|
57
|
+
export declare function generateDevErrorPage(error: Error, phase: ErrorPhase, projectRoot: string, hmrOptions?: DevErrorHmrOptions): string;
|
|
58
|
+
//# sourceMappingURL=error-page.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error-page.d.ts","sourceRoot":"","sources":["../../src/dev-tools/error-page.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAA6C,KAAK,UAAU,EAAE,MAAM,cAAc,CAAC;AA+E1F;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAeD;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE;IACxC,MAAM,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE;YAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;YAAC,IAAI,CAAC,EAAE,MAAM,CAAC;YAAC,IAAI,CAAC,EAAE,MAAM,CAAC;YAAC,IAAI,CAAC,EAAE,MAAM,CAAA;SAAE,GAAG,OAAO,CAAA;KAAE,CAAC;IAChG,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,GAAG,kBAAkB,GAAG,SAAS,CAkBjC;AAID;;;;;;;;;;;GAWG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,UAAU,EACjB,WAAW,EAAE,MAAM,EACnB,UAAU,CAAC,EAAE,kBAAkB,GAC9B,MAAM,CAoIR"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Dev holding server — serves a loading page while Vite initializes.
|
|
3
|
+
*
|
|
4
|
+
* When `timber dev` (or `vite dev`) starts, Vite takes several seconds
|
|
5
|
+
* to initialize all plugins, scan routes, and boot the RSC environment.
|
|
6
|
+
* During this window, the port is unbound and browsers get
|
|
7
|
+
* ERR_CONNECTION_REFUSED.
|
|
8
|
+
*
|
|
9
|
+
* This module creates a lightweight HTTP server that binds the port
|
|
10
|
+
* immediately and serves a branded holding page with auto-refresh.
|
|
11
|
+
* Once Vite is ready, the holding server is closed and Vite's server
|
|
12
|
+
* takes over the port.
|
|
13
|
+
*
|
|
14
|
+
* The holding server is started in rootSync's config() hook (the
|
|
15
|
+
* earliest Vite plugin lifecycle point where we know the port) and
|
|
16
|
+
* closed in timber-dev-server's configureServer() hook (the last
|
|
17
|
+
* plugin, right before Vite calls server.listen()).
|
|
18
|
+
*
|
|
19
|
+
* Browser requests (Accept: text/html) get the HTML holding page.
|
|
20
|
+
* API requests (Accept: application/json) get a 503 JSON response.
|
|
21
|
+
* All responses include Retry-After: 1.
|
|
22
|
+
*
|
|
23
|
+
* See design/21-dev-server.md, TIM-665.
|
|
24
|
+
*/
|
|
25
|
+
export interface HoldingServer {
|
|
26
|
+
/**
|
|
27
|
+
* Start listening on the given port.
|
|
28
|
+
* Returns the actual bound port (useful when port is 0 for OS assignment).
|
|
29
|
+
*/
|
|
30
|
+
listen(port: number): Promise<number>;
|
|
31
|
+
/** Gracefully close the server and stop accepting connections. */
|
|
32
|
+
close(): Promise<void>;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Create a holding HTTP server that serves a loading page during startup.
|
|
36
|
+
*
|
|
37
|
+
* Usage (inside Vite plugin):
|
|
38
|
+
* ```ts
|
|
39
|
+
* // In config() hook — earliest point where port is known.
|
|
40
|
+
* // Use bindWithBump() to honor the default-3000 + auto-bump policy
|
|
41
|
+
* // (see ../server/port-resolution.ts and TIM-842).
|
|
42
|
+
* const holding = createHoldingServer();
|
|
43
|
+
* await bindWithBump((p) => holding.listen(p), { startPort: 3000, autoBump: true });
|
|
44
|
+
*
|
|
45
|
+
* // In last plugin's configureServer() — wrap listen for seamless handoff
|
|
46
|
+
* const originalListen = server.listen.bind(server);
|
|
47
|
+
* server.listen = async (...args) => {
|
|
48
|
+
* await holding.close();
|
|
49
|
+
* return originalListen(...args);
|
|
50
|
+
* };
|
|
51
|
+
* ```
|
|
52
|
+
*/
|
|
53
|
+
export declare function createHoldingServer(): HoldingServer;
|
|
54
|
+
//# sourceMappingURL=holding-server.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"holding-server.d.ts","sourceRoot":"","sources":["../../src/dev-tools/holding-server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAMH,MAAM,WAAW,aAAa;IAC5B;;;OAGG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAEtC,kEAAkE;IAClE,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AA8ED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,mBAAmB,IAAI,aAAa,CAmDnD"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Dev tools barrel — re-exports all dev-only modules.
|
|
3
|
+
*
|
|
4
|
+
* Organized by concern, not by Vite plugin vs server module:
|
|
5
|
+
* - stack-classifier: frame classification for error display
|
|
6
|
+
* - overlay: Vite browser error overlay integration
|
|
7
|
+
* - error-page: self-contained HTML 500 page
|
|
8
|
+
* - 404-page: self-contained HTML 404 page
|
|
9
|
+
* - terminal: boxed terminal error output
|
|
10
|
+
* - logger: structured request tree logger
|
|
11
|
+
* - warnings: dev-mode footgun warnings
|
|
12
|
+
* - browser-logs: forward browser console to server
|
|
13
|
+
* - logs: forward server console to browser
|
|
14
|
+
* - holding-server: startup holding server
|
|
15
|
+
* - instrumentation: fetch tracing + OTEL span processor
|
|
16
|
+
*
|
|
17
|
+
* Dev-only: all modules in this subtree are only active during `vite dev`.
|
|
18
|
+
* They are never included in production builds.
|
|
19
|
+
*/
|
|
20
|
+
export { classifyFrame, classifyStack, type FrameType, type ClassifiedFrame, } from './stack-classifier.js';
|
|
21
|
+
export { sendErrorToOverlay, fixErrorStacktrace, classifyErrorPhase, extractComponentStack, parseFirstAppFrame, calculateModuleRunnerOffset, formatRscDebugContext, formatTerminalError, PHASE_LABELS, type ErrorPhase, type RscDebugComponentInfo, } from './overlay.js';
|
|
22
|
+
export { generateDevErrorPage, extractHmrOptions, type DevErrorHmrOptions } from './error-page.js';
|
|
23
|
+
export { generateDev404Page, collectRoutes, findSimilarRoutes } from './404-page.js';
|
|
24
|
+
export { formatTerminalError as formatTerminalErrorDirect } from './terminal.js';
|
|
25
|
+
export { formatSpanTree, formatSpanSummary, formatJson, resolveLogMode, type DevLogMode, type DevLoggerConfig, } from './logger.js';
|
|
26
|
+
export { warnSuspenseWrappingChildren, warnDenyInSuspense, warnRedirectInSuspense, warnRedirectInAccess, warnStaticRequestApi, warnSlowSlotWithoutSuspense, setViteServer, WarningId, type DevWarningConfig, _resetWarnings, _getEmitted, } from './warnings.js';
|
|
27
|
+
export { timberDevBrowserLogs, type BrowserLogLevel, type DevBrowserLogsConfig, } from './browser-logs.js';
|
|
28
|
+
export { timberDevLogs } from './logs.js';
|
|
29
|
+
export { createHoldingServer, type HoldingServer } from './holding-server.js';
|
|
30
|
+
export { instrumentDevFetch, DevSpanProcessor, type DevFetchCleanup } from './instrumentation.js';
|
|
31
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/dev-tools/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAGH,OAAO,EACL,aAAa,EACb,aAAa,EACb,KAAK,SAAS,EACd,KAAK,eAAe,GACrB,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAClB,qBAAqB,EACrB,kBAAkB,EAClB,2BAA2B,EAC3B,qBAAqB,EACrB,mBAAmB,EACnB,YAAY,EACZ,KAAK,UAAU,EACf,KAAK,qBAAqB,GAC3B,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,KAAK,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACnG,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAGrF,OAAO,EAAE,mBAAmB,IAAI,yBAAyB,EAAE,MAAM,eAAe,CAAC;AAGjF,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,UAAU,EACV,cAAc,EACd,KAAK,UAAU,EACf,KAAK,eAAe,GACrB,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,4BAA4B,EAC5B,kBAAkB,EAClB,sBAAsB,EACtB,oBAAoB,EACpB,oBAAoB,EACpB,2BAA2B,EAC3B,aAAa,EACb,SAAS,EACT,KAAK,gBAAgB,EACrB,cAAc,EACd,WAAW,GACZ,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,oBAAoB,EACpB,KAAK,eAAe,EACpB,KAAK,oBAAoB,GAC1B,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAG1C,OAAO,EAAE,mBAAmB,EAAE,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAG9E,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,KAAK,eAAe,EAAE,MAAM,sBAAsB,CAAC"}
|
|
@@ -1,3 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Dev-mode OTEL instrumentation — fetch tracing and span processing.
|
|
3
|
+
*
|
|
4
|
+
* Combines two concerns:
|
|
5
|
+
* 1. Fetch instrumentation: patches globalThis.fetch to create OTEL spans
|
|
6
|
+
* for every fetch call, giving visibility into async data fetching in
|
|
7
|
+
* the dev request log tree.
|
|
8
|
+
* 2. Span processing: collects completed spans per-request and drives
|
|
9
|
+
* dev log output when the root span ends.
|
|
10
|
+
*
|
|
11
|
+
* Only activated in dev mode — zero overhead in production.
|
|
12
|
+
*
|
|
13
|
+
* Design ref: 17-logging.md §"Dev Logging", 21-dev-server.md §"Dev Logging"
|
|
14
|
+
*/
|
|
15
|
+
import type { SpanProcessor, ReadableSpan } from '@opentelemetry/sdk-trace-base';
|
|
16
|
+
import type { Span, Context } from '@opentelemetry/api';
|
|
17
|
+
import { type DevLoggerConfig } from './logger.js';
|
|
18
|
+
export type DevFetchCleanup = () => void;
|
|
19
|
+
/**
|
|
20
|
+
* Patch globalThis.fetch to wrap every call in an OTEL span.
|
|
21
|
+
*
|
|
22
|
+
* Returns a cleanup function that restores the original fetch.
|
|
23
|
+
* Only call this in dev mode.
|
|
24
|
+
*/
|
|
25
|
+
export declare function instrumentDevFetch(): DevFetchCleanup;
|
|
1
26
|
/**
|
|
2
27
|
* DevSpanProcessor — Custom OTEL SpanProcessor that drives dev log output.
|
|
3
28
|
*
|
|
@@ -9,12 +34,7 @@
|
|
|
9
34
|
* This replaces the old DevLogEmitter/DevLogEvents system. OTEL spans are
|
|
10
35
|
* now the single source of truth for dev logging — no more parallel event
|
|
11
36
|
* systems that can drift.
|
|
12
|
-
*
|
|
13
|
-
* Design doc: 17-logging.md §"Dev Logging", 21-dev-server.md §"Dev Logging"
|
|
14
37
|
*/
|
|
15
|
-
import type { SpanProcessor, ReadableSpan } from '@opentelemetry/sdk-trace-base';
|
|
16
|
-
import type { Span, Context } from '@opentelemetry/api';
|
|
17
|
-
import { type DevLoggerConfig } from './dev-logger.js';
|
|
18
38
|
export declare class DevSpanProcessor implements SpanProcessor {
|
|
19
39
|
private spansByTrace;
|
|
20
40
|
private mode;
|
|
@@ -26,4 +46,4 @@ export declare class DevSpanProcessor implements SpanProcessor {
|
|
|
26
46
|
shutdown(): Promise<void>;
|
|
27
47
|
forceFlush(): Promise<void>;
|
|
28
48
|
}
|
|
29
|
-
//# sourceMappingURL=
|
|
49
|
+
//# sourceMappingURL=instrumentation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"instrumentation.d.ts","sourceRoot":"","sources":["../../src/dev-tools/instrumentation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AACjF,OAAO,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAKL,KAAK,eAAe,EACrB,MAAM,aAAa,CAAC;AAIrB,MAAM,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC;AAEzC;;;;;GAKG;AACH,wBAAgB,kBAAkB,IAAI,eAAe,CA+CpD;AA4BD;;;;;;;;;;;GAWG;AACH,qBAAa,gBAAiB,YAAW,aAAa;IACpD,OAAO,CAAC,YAAY,CAAqC;IACzD,OAAO,CAAC,IAAI,CAAa;IACzB,OAAO,CAAC,MAAM,CAAkB;gBAEpB,MAAM,EAAE,eAAe;IAKnC,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,GAAG,IAAI;IAI7C,KAAK,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI;IAqB/B,OAAO,CAAC,MAAM;IAUR,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAIzB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;CAGlC"}
|
|
@@ -41,4 +41,4 @@ export declare function formatSpanSummary(spans: ReadableSpan[], _config?: DevLo
|
|
|
41
41
|
* to jq or feeding into external trace analysis tools.
|
|
42
42
|
*/
|
|
43
43
|
export declare function formatJson(spans: ReadableSpan[]): string;
|
|
44
|
-
//# sourceMappingURL=
|
|
44
|
+
//# sourceMappingURL=logger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/dev-tools/logger.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAIlE,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,CAAC;AAE3E,MAAM,WAAW,eAAe;IAC9B,qCAAqC;IACrC,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,8DAA8D;IAC9D,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAmMD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,MAAM,CAAC,EAAE,eAAe,GAAG,UAAU,CAMnE;AAID;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,YAAY,EAAE,EAAE,MAAM,CAAC,EAAE,eAAe,GAAG,MAAM,CAgDtF;AAyGD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,YAAY,EAAE,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,MAAM,CAc1F;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG,MAAM,CA6BxD"}
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
* Design docs: 18-build-system.md §"Dev Server", 02-rendering-pipeline.md
|
|
13
13
|
*/
|
|
14
14
|
import type { Plugin } from 'vite';
|
|
15
|
-
import type { PluginContext } from '
|
|
15
|
+
import type { PluginContext } from '../plugin-context.js';
|
|
16
16
|
/** Log levels that are patched and forwarded. */
|
|
17
17
|
export type ServerLogLevel = 'log' | 'warn' | 'error' | 'debug' | 'info';
|
|
18
18
|
/** Payload sent over Vite's HMR WebSocket. */
|
|
@@ -43,4 +43,4 @@ export declare function isFrameworkInternalCaller(): boolean;
|
|
|
43
43
|
* when the server closes. Only active during `vite dev`.
|
|
44
44
|
*/
|
|
45
45
|
export declare function timberDevLogs(_ctx: PluginContext): Plugin;
|
|
46
|
-
//# sourceMappingURL=
|
|
46
|
+
//# sourceMappingURL=logs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logs.d.ts","sourceRoot":"","sources":["../../src/dev-tools/logs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAiB,MAAM,MAAM,CAAC;AAClD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAI1D,iDAAiD;AACjD,MAAM,MAAM,cAAc,GAAG,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,CAAC;AAIzE,8CAA8C;AAC9C,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,cAAc,CAAC;IACtB,IAAI,EAAE,OAAO,EAAE,CAAC;IAChB,gEAAgE;IAChE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,mCAAmC;IACnC,SAAS,EAAE,MAAM,CAAC;CACnB;AA2ID;;;;;;;;;;GAUG;AACH,wBAAgB,yBAAyB,IAAI,OAAO,CAsBnD;AAwDD;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,aAAa,GAAG,MAAM,CAiBzD"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Dev error overlay — formats and sends errors to Vite's browser overlay and stderr.
|
|
3
|
+
*
|
|
4
|
+
* Integrates with Vite's built-in error overlay (`server.hot.send`) rather
|
|
5
|
+
* than implementing a custom overlay.
|
|
6
|
+
*
|
|
7
|
+
* Stack trace source-mapping uses the correct Vite environment module graph:
|
|
8
|
+
* RSC errors use `server.environments.rsc.moduleGraph`, SSR/other errors use
|
|
9
|
+
* `server.environments.ssr.moduleGraph`. `server.ssrFixStacktrace()` is NOT
|
|
10
|
+
* used because it hardcodes the SSR module graph, which doesn't contain
|
|
11
|
+
* source maps for RSC modules (separate Vite environment with its own
|
|
12
|
+
* module graph). This caused RSC errors to show transpiled line numbers
|
|
13
|
+
* instead of original source positions.
|
|
14
|
+
*
|
|
15
|
+
* Design doc: 21-dev-server.md §"Error Overlay"
|
|
16
|
+
*/
|
|
17
|
+
import type { ViteDevServer } from 'vite';
|
|
18
|
+
/** The phase of the pipeline where the error occurred. */
|
|
19
|
+
export type ErrorPhase = 'module-transform' | 'proxy' | 'middleware' | 'access' | 'render' | 'handler';
|
|
20
|
+
/** Labels for terminal output. */
|
|
21
|
+
export declare const PHASE_LABELS: Record<ErrorPhase, string>;
|
|
22
|
+
export { classifyFrame, classifyStack, type FrameType, type ClassifiedFrame, } from './stack-classifier.js';
|
|
23
|
+
/**
|
|
24
|
+
* Extract the React component stack from an error, if present.
|
|
25
|
+
* React attaches this as `componentStack` during renderToReadableStream errors.
|
|
26
|
+
*/
|
|
27
|
+
export declare function extractComponentStack(error: unknown): string | null;
|
|
28
|
+
interface SourceLocation {
|
|
29
|
+
file: string;
|
|
30
|
+
line: number;
|
|
31
|
+
column: number;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Parse the first application frame from a stack trace.
|
|
35
|
+
* Returns file/line/column for the overlay's `loc` field.
|
|
36
|
+
*/
|
|
37
|
+
export declare function parseFirstAppFrame(stack: string, projectRoot: string): SourceLocation | null;
|
|
38
|
+
/**
|
|
39
|
+
* Classify the error phase by inspecting the error's stack trace.
|
|
40
|
+
* Falls back to 'render' if no specific phase can be determined.
|
|
41
|
+
*/
|
|
42
|
+
export declare function classifyErrorPhase(error: Error, projectRoot: string): ErrorPhase;
|
|
43
|
+
import { formatTerminalError as _formatTerminalError } from './terminal.js';
|
|
44
|
+
export declare const formatTerminalError: typeof _formatTerminalError;
|
|
45
|
+
/**
|
|
46
|
+
* Component info extracted from the RSC debug channel.
|
|
47
|
+
* Contains only names, environments, and stack frames — never source code.
|
|
48
|
+
*/
|
|
49
|
+
export interface RscDebugComponentInfo {
|
|
50
|
+
name: string;
|
|
51
|
+
env: string | null;
|
|
52
|
+
stack: unknown[] | null;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Format RSC debug component info into a readable string for the overlay.
|
|
56
|
+
*
|
|
57
|
+
* Renders the server component tree that was active when an error occurred,
|
|
58
|
+
* including component names and source locations from stack frames. This
|
|
59
|
+
* gives developers visibility into which server components were rendering
|
|
60
|
+
* without exposing source code.
|
|
61
|
+
*
|
|
62
|
+
* Returns an empty string if no components are provided.
|
|
63
|
+
*/
|
|
64
|
+
export declare function formatRscDebugContext(components: RscDebugComponentInfo[]): string;
|
|
65
|
+
export declare function calculateModuleRunnerOffset(): number;
|
|
66
|
+
/**
|
|
67
|
+
* Source-map an error's stack trace using the Vite dev server's module graph.
|
|
68
|
+
*
|
|
69
|
+
* Exported so that the fallback error renderer (fallback-error.ts) can
|
|
70
|
+
* source-map errors before rendering the dev error page. Without this,
|
|
71
|
+
* the dev error page shows transpiled positions (e.g. page.tsx:1:1 instead
|
|
72
|
+
* of page.tsx:4:9).
|
|
73
|
+
*
|
|
74
|
+
* See TIM-811.
|
|
75
|
+
*/
|
|
76
|
+
export declare function fixErrorStacktrace(server: ViteDevServer, error: Error, phase?: ErrorPhase): void;
|
|
77
|
+
/**
|
|
78
|
+
* Send an error to Vite's browser overlay and log it to stderr.
|
|
79
|
+
*
|
|
80
|
+
* Uses `server.ssrFixStacktrace()` to map stack traces back to source,
|
|
81
|
+
* then sends the error via `server.hot.send()` for the browser overlay.
|
|
82
|
+
*
|
|
83
|
+
* When `rscDebugComponents` is provided (dev mode only), the server
|
|
84
|
+
* component tree context is appended to the error message. This helps
|
|
85
|
+
* developers identify which server component caused the error without
|
|
86
|
+
* exposing source code.
|
|
87
|
+
*
|
|
88
|
+
* The dev server remains running — errors are handled, not fatal.
|
|
89
|
+
*/
|
|
90
|
+
export declare function sendErrorToOverlay(server: ViteDevServer, error: Error, phase: ErrorPhase, projectRoot: string, rscDebugComponents?: RscDebugComponentInfo[]): void;
|
|
91
|
+
//# sourceMappingURL=overlay.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"overlay.d.ts","sourceRoot":"","sources":["../../src/dev-tools/overlay.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAkB,MAAM,MAAM,CAAC;AAqC1D,0DAA0D;AAC1D,MAAM,MAAM,UAAU,GAClB,kBAAkB,GAClB,OAAO,GACP,YAAY,GACZ,QAAQ,GACR,QAAQ,GACR,SAAS,CAAC;AAEd,kCAAkC;AAClC,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAOnD,CAAC;AAIF,OAAO,EACL,aAAa,EACb,aAAa,EACb,KAAK,SAAS,EACd,KAAK,eAAe,GACrB,MAAM,uBAAuB,CAAC;AAI/B;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAUnE;AAID,UAAU,cAAc;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI,CAqB5F;AAID;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,GAAG,UAAU,CAehF;AAOD,OAAO,EAAE,mBAAmB,IAAI,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAC5E,eAAO,MAAM,mBAAmB,6BAAuB,CAAC;AAIxD;;;GAGG;AACH,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,KAAK,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;CACzB;AAED;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,qBAAqB,EAAE,GAAG,MAAM,CAiCjF;AAkBD,wBAAgB,2BAA2B,IAAI,MAAM,CA6BpD;AAuHD;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,UAAU,GAAG,IAAI,CAMhG;AAID;;;;;;;;;;;;GAYG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,aAAa,EACrB,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,UAAU,EACjB,WAAW,EAAE,MAAM,EACnB,kBAAkB,CAAC,EAAE,qBAAqB,EAAE,GAC3C,IAAI,CA0CN"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Stack trace frame classifier — categorizes stack frames by origin.
|
|
3
|
+
*
|
|
4
|
+
* Provides `classifyFrame` (single frame) and `classifyStack` (full stack
|
|
5
|
+
* string) as the shared primitives used by the error page, terminal
|
|
6
|
+
* formatter, and overlay.
|
|
7
|
+
*
|
|
8
|
+
* Dev-only: this module is only imported by other dev-tools modules.
|
|
9
|
+
*/
|
|
10
|
+
export type FrameType = 'app' | 'framework' | 'internal';
|
|
11
|
+
export interface ClassifiedFrame {
|
|
12
|
+
raw: string;
|
|
13
|
+
type: FrameType;
|
|
14
|
+
file?: string;
|
|
15
|
+
line?: number;
|
|
16
|
+
col?: number;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Classify a single stack frame line by origin.
|
|
20
|
+
*
|
|
21
|
+
* - 'app': user application code (in project root, not node_modules)
|
|
22
|
+
* - 'framework': timber-app internal code
|
|
23
|
+
* - 'internal': node_modules, Node.js internals
|
|
24
|
+
*/
|
|
25
|
+
export declare function classifyFrame(frameLine: string, projectRoot: string): FrameType;
|
|
26
|
+
/**
|
|
27
|
+
* Classify all frames in a full stack trace string.
|
|
28
|
+
*
|
|
29
|
+
* Parses the stack, skips the first line (error message), filters to
|
|
30
|
+
* lines starting with "at ", and returns classified frames with optional
|
|
31
|
+
* file/line/col metadata.
|
|
32
|
+
*/
|
|
33
|
+
export declare function classifyStack(stack: string, projectRoot: string): ClassifiedFrame[];
|
|
34
|
+
//# sourceMappingURL=stack-classifier.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stack-classifier.d.ts","sourceRoot":"","sources":["../../src/dev-tools/stack-classifier.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,MAAM,MAAM,SAAS,GAAG,KAAK,GAAG,WAAW,GAAG,UAAU,CAAC;AAEzD,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,SAAS,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAmBD;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,SAAS,CAS/E;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,eAAe,EAAE,CAUnF"}
|