@timber-js/app 0.2.0-alpha.97 → 0.2.0-alpha.99
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-CQ8Z8VGL.js +1061 -0
- package/dist/_chunks/actions-CQ8Z8VGL.js.map +1 -0
- package/dist/_chunks/build-output-helper-DXnW0qjz.js +61 -0
- package/dist/_chunks/build-output-helper-DXnW0qjz.js.map +1 -0
- package/dist/_chunks/{define-Itxvcd7F.js → define-B-Q_UMOD.js} +19 -23
- package/dist/_chunks/define-B-Q_UMOD.js.map +1 -0
- package/dist/_chunks/{define-C77ScO0m.js → define-CfBPoJb0.js} +24 -7
- package/dist/_chunks/define-CfBPoJb0.js.map +1 -0
- package/dist/_chunks/define-cookie-BjpIt4UC.js +194 -0
- package/dist/_chunks/define-cookie-BjpIt4UC.js.map +1 -0
- package/dist/_chunks/{format-CYBGxKtc.js → format-Bcn-Iv1x.js} +1 -1
- package/dist/_chunks/{format-CYBGxKtc.js.map → format-Bcn-Iv1x.js.map} +1 -1
- package/dist/_chunks/handler-store-B-lqaGyh.js +54 -0
- package/dist/_chunks/handler-store-B-lqaGyh.js.map +1 -0
- package/dist/_chunks/logger-0m8MsKdc.js +291 -0
- package/dist/_chunks/logger-0m8MsKdc.js.map +1 -0
- package/dist/_chunks/merge-search-params-BphMdht_.js +122 -0
- package/dist/_chunks/merge-search-params-BphMdht_.js.map +1 -0
- package/dist/_chunks/{metadata-routes-DS3eKNmf.js → metadata-routes-BU684ls2.js} +1 -1
- package/dist/_chunks/{metadata-routes-DS3eKNmf.js.map → metadata-routes-BU684ls2.js.map} +1 -1
- package/dist/_chunks/navigation-root-BCYczjml.js +96 -0
- package/dist/_chunks/navigation-root-BCYczjml.js.map +1 -0
- package/dist/_chunks/registry-I2ss-lvy.js +20 -0
- package/dist/_chunks/registry-I2ss-lvy.js.map +1 -0
- package/dist/_chunks/router-ref-h3-UaCQv.js +28 -0
- package/dist/_chunks/router-ref-h3-UaCQv.js.map +1 -0
- package/dist/_chunks/{schema-bridge-C3xl_vfb.js → schema-bridge-Cxu4l-7p.js} +1 -1
- package/dist/_chunks/{schema-bridge-C3xl_vfb.js.map → schema-bridge-Cxu4l-7p.js.map} +1 -1
- package/dist/_chunks/segment-classify-BjfuctV2.js +137 -0
- package/dist/_chunks/segment-classify-BjfuctV2.js.map +1 -0
- package/dist/_chunks/{segment-context-fHFLF1PE.js → segment-context-Dx_OizxD.js} +1 -1
- package/dist/_chunks/{segment-context-fHFLF1PE.js.map → segment-context-Dx_OizxD.js.map} +1 -1
- package/dist/_chunks/{router-ref-C8OCm7g7.js → ssr-data-B4CdH7rE.js} +2 -26
- package/dist/_chunks/ssr-data-B4CdH7rE.js.map +1 -0
- package/dist/_chunks/{stale-reload-BX5gL1r-.js → stale-reload-Bab885FO.js} +1 -1
- package/dist/_chunks/{stale-reload-BX5gL1r-.js.map → stale-reload-Bab885FO.js.map} +1 -1
- package/dist/_chunks/tracing-C8V-YGsP.js +329 -0
- package/dist/_chunks/tracing-C8V-YGsP.js.map +1 -0
- package/dist/_chunks/{use-query-states-BiV5GJgm.js → use-query-states-B2XTqxDR.js} +3 -19
- package/dist/_chunks/use-query-states-B2XTqxDR.js.map +1 -0
- package/dist/_chunks/{use-params-IOPu7E8t.js → use-segment-params-BkpKAQ7D.js} +9 -95
- package/dist/_chunks/use-segment-params-BkpKAQ7D.js.map +1 -0
- package/dist/_chunks/{interception-BbqMCVXa.js → walkers-Tg0Alwcg.js} +66 -87
- package/dist/_chunks/walkers-Tg0Alwcg.js.map +1 -0
- package/dist/_chunks/{dev-warnings-DpGRGoDi.js → warnings-Cg47l5sk.js} +3 -3
- package/dist/_chunks/warnings-Cg47l5sk.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.d.ts.map +1 -1
- package/dist/adapters/cloudflare.js +8 -28
- package/dist/adapters/cloudflare.js.map +1 -1
- package/dist/adapters/nitro.d.ts.map +1 -1
- package/dist/adapters/nitro.js +63 -31
- 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/index.js +9 -2
- package/dist/cache/index.js.map +1 -1
- package/dist/cache/timber-cache.d.ts.map +1 -1
- package/dist/client/error-boundary.js +2 -1
- package/dist/client/error-boundary.js.map +1 -1
- package/dist/client/form.d.ts +10 -24
- package/dist/client/form.d.ts.map +1 -1
- package/dist/client/index.d.ts +1 -5
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +41 -91
- package/dist/client/index.js.map +1 -1
- package/dist/client/internal.d.ts +2 -1
- package/dist/client/internal.d.ts.map +1 -1
- package/dist/client/internal.js +81 -7
- package/dist/client/internal.js.map +1 -1
- package/dist/client/rsc-fetch.d.ts.map +1 -1
- package/dist/client/state.d.ts +1 -1
- package/dist/client/use-cookie.d.ts +8 -0
- package/dist/client/use-cookie.d.ts.map +1 -1
- package/dist/client/{use-params.d.ts → use-segment-params.d.ts} +1 -1
- package/dist/client/use-segment-params.d.ts.map +1 -0
- package/dist/codec.d.ts +1 -1
- package/dist/codec.d.ts.map +1 -1
- package/dist/codec.js +2 -2
- package/dist/config-types.d.ts +28 -0
- package/dist/config-types.d.ts.map +1 -1
- package/dist/cookies/define-cookie.d.ts +87 -35
- 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 +48 -2
- package/dist/cookies/index.js.map +1 -0
- 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/{plugins/dev-404-page.d.ts → dev-tools/404-page.d.ts} +9 -19
- package/dist/dev-tools/404-page.d.ts.map +1 -0
- package/dist/{plugins/dev-browser-logs.d.ts → dev-tools/browser-logs.d.ts} +1 -1
- package/dist/dev-tools/browser-logs.d.ts.map +1 -0
- package/dist/{plugins/dev-error-page.d.ts → dev-tools/error-page.d.ts} +2 -2
- package/dist/dev-tools/error-page.d.ts.map +1 -0
- package/dist/{server/dev-holding-server.d.ts → dev-tools/holding-server.d.ts} +5 -3
- 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} +1 -1
- package/dist/dev-tools/logs.d.ts.map +1 -0
- package/dist/{plugins/dev-error-overlay.d.ts → dev-tools/overlay.d.ts} +3 -12
- 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/{plugins/dev-terminal-error.d.ts → dev-tools/terminal.d.ts} +2 -2
- package/dist/dev-tools/terminal.d.ts.map +1 -0
- package/dist/{server/dev-warnings.d.ts → dev-tools/warnings.d.ts} +1 -1
- package/dist/dev-tools/warnings.d.ts.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +285 -133
- package/dist/index.js.map +1 -1
- package/dist/plugin-context.d.ts +1 -1
- package/dist/plugin-context.d.ts.map +1 -1
- package/dist/plugins/adapter-build.d.ts.map +1 -1
- package/dist/plugins/build-report.d.ts +6 -4
- package/dist/plugins/build-report.d.ts.map +1 -1
- package/dist/routing/convention-lint.d.ts.map +1 -1
- package/dist/routing/index.d.ts +5 -3
- package/dist/routing/index.d.ts.map +1 -1
- package/dist/routing/index.js +3 -3
- package/dist/routing/scanner.d.ts +1 -10
- package/dist/routing/scanner.d.ts.map +1 -1
- package/dist/routing/segment-classify.d.ts +37 -8
- package/dist/routing/segment-classify.d.ts.map +1 -1
- package/dist/routing/status-file-lint.d.ts.map +1 -1
- package/dist/routing/types.d.ts +63 -23
- 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/search-params/define.d.ts +25 -7
- package/dist/search-params/define.d.ts.map +1 -1
- package/dist/search-params/index.js +5 -3
- package/dist/search-params/index.js.map +1 -1
- package/dist/search-params/wrappers.d.ts +2 -2
- package/dist/search-params/wrappers.d.ts.map +1 -1
- package/dist/segment-params/define.d.ts +23 -6
- package/dist/segment-params/define.d.ts.map +1 -1
- package/dist/segment-params/index.js +1 -1
- package/dist/server/access-gate.d.ts +4 -3
- package/dist/server/access-gate.d.ts.map +1 -1
- package/dist/server/action-handler.d.ts +15 -6
- package/dist/server/action-handler.d.ts.map +1 -1
- package/dist/server/als-registry.d.ts +5 -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/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/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/early-hints-sender.d.ts.map +1 -1
- package/dist/server/html-injector-core.d.ts +212 -0
- package/dist/server/html-injector-core.d.ts.map +1 -0
- package/dist/server/html-injectors.d.ts +59 -59
- package/dist/server/html-injectors.d.ts.map +1 -1
- package/dist/server/index.d.ts +5 -4
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +4 -149
- package/dist/server/index.js.map +1 -1
- package/dist/server/internal.d.ts +6 -4
- package/dist/server/internal.d.ts.map +1 -1
- package/dist/server/internal.js +852 -852
- package/dist/server/internal.js.map +1 -1
- package/dist/server/logger.d.ts +14 -0
- package/dist/server/logger.d.ts.map +1 -1
- package/dist/server/middleware-runner.d.ts +17 -0
- package/dist/server/middleware-runner.d.ts.map +1 -1
- package/dist/server/node-stream-transforms.d.ts +46 -49
- package/dist/server/node-stream-transforms.d.ts.map +1 -1
- package/dist/server/param-coercion.d.ts +26 -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-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 +51 -32
- 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/request-context.d.ts +22 -159
- package/dist/server/request-context.d.ts.map +1 -1
- package/dist/server/route-element-builder.d.ts.map +1 -1
- package/dist/server/route-matcher.d.ts +20 -47
- 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/helpers.d.ts +1 -1
- package/dist/server/rsc-entry/helpers.d.ts.map +1 -1
- 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/wrap-action-dispatch.d.ts +119 -0
- package/dist/server/rsc-entry/wrap-action-dispatch.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/tracing.d.ts +1 -1
- package/dist/server/tracing.d.ts.map +1 -1
- package/dist/server/tree-builder.d.ts +45 -16
- package/dist/server/tree-builder.d.ts.map +1 -1
- package/dist/server/types.d.ts +48 -0
- 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/shims/headers.d.ts +2 -2
- 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 +9 -4
- package/dist/shims/navigation.d.ts.map +1 -1
- package/dist/utils/directive-parser.d.ts +0 -45
- package/dist/utils/directive-parser.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/adapters/build-output-helper.ts +77 -0
- package/src/adapters/cloudflare.ts +10 -50
- package/src/adapters/nitro.ts +66 -50
- package/src/adapters/shared.ts +40 -0
- package/src/cache/timber-cache.ts +3 -2
- package/src/client/form.tsx +17 -25
- package/src/client/index.ts +16 -9
- package/src/client/internal.ts +3 -2
- package/src/client/router.ts +1 -1
- package/src/client/rsc-fetch.ts +15 -0
- package/src/client/state.ts +2 -2
- package/src/client/use-cookie.ts +29 -0
- package/src/codec.ts +3 -7
- package/src/config-types.ts +28 -0
- package/src/cookies/define-cookie.ts +271 -78
- package/src/cookies/index.ts +11 -8
- package/src/cookies/json-cookie.ts +105 -0
- package/src/cookies/validation.ts +134 -0
- package/src/{plugins/dev-404-page.ts → dev-tools/404-page.ts} +17 -48
- package/src/{plugins/dev-error-page.ts → dev-tools/error-page.ts} +5 -32
- package/src/{server/dev-holding-server.ts → dev-tools/holding-server.ts} +4 -2
- 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} +2 -2
- package/src/{plugins/dev-error-overlay.ts → dev-tools/overlay.ts} +5 -23
- package/src/dev-tools/stack-classifier.ts +75 -0
- package/src/{plugins/dev-terminal-error.ts → dev-tools/terminal.ts} +4 -38
- package/src/{server/dev-warnings.ts → dev-tools/warnings.ts} +1 -1
- package/src/index.ts +95 -34
- package/src/plugin-context.ts +1 -1
- package/src/plugins/adapter-build.ts +3 -1
- package/src/plugins/build-report.ts +13 -22
- package/src/plugins/dev-server.ts +3 -3
- package/src/plugins/routing.ts +14 -12
- package/src/plugins/shims.ts +1 -1
- package/src/plugins/static-build.ts +1 -1
- package/src/routing/codegen.ts +1 -1
- package/src/routing/convention-lint.ts +9 -8
- package/src/routing/index.ts +5 -3
- package/src/routing/interception.ts +1 -1
- package/src/routing/scanner.ts +22 -95
- package/src/routing/segment-classify.ts +107 -8
- package/src/routing/status-file-lint.ts +7 -5
- package/src/routing/types.ts +63 -23
- package/src/routing/walkers.ts +90 -0
- package/src/search-params/define.ts +71 -15
- package/src/search-params/wrappers.ts +9 -2
- package/src/segment-params/define.ts +66 -13
- package/src/server/access-gate.tsx +9 -8
- package/src/server/action-handler.ts +34 -38
- package/src/server/als-registry.ts +5 -5
- package/src/server/asset-headers.ts +8 -34
- package/src/server/cookie-context.ts +468 -0
- package/src/server/cookie-parsing.ts +135 -0
- package/src/server/{deny-page-resolver.ts → deny-boundary.ts} +78 -14
- package/src/server/deny-renderer.ts +7 -12
- package/src/server/early-hints-sender.ts +3 -2
- package/src/server/fallback-error.ts +2 -2
- package/src/server/html-injector-core.ts +403 -0
- package/src/server/html-injectors.ts +158 -297
- package/src/server/index.ts +13 -14
- package/src/server/internal.ts +10 -3
- package/src/server/logger.ts +23 -0
- package/src/server/middleware-runner.ts +44 -0
- package/src/server/node-stream-transforms.ts +108 -248
- package/src/server/param-coercion.ts +76 -0
- package/src/server/pipeline-helpers.ts +204 -0
- package/src/server/pipeline-outcome.ts +167 -0
- package/src/server/pipeline-phases.ts +409 -0
- package/src/server/pipeline.ts +70 -540
- package/src/server/port-resolution.ts +215 -0
- package/src/server/request-context.ts +46 -451
- package/src/server/route-element-builder.ts +8 -4
- package/src/server/route-matcher.ts +28 -60
- package/src/server/rsc-entry/action-middleware-runner.ts +167 -0
- package/src/server/rsc-entry/api-handler.ts +2 -2
- package/src/server/rsc-entry/error-renderer.ts +2 -2
- package/src/server/rsc-entry/helpers.ts +2 -7
- package/src/server/rsc-entry/index.ts +81 -366
- package/src/server/rsc-entry/render-route.ts +304 -0
- package/src/server/rsc-entry/rsc-payload.ts +1 -1
- package/src/server/rsc-entry/ssr-renderer.ts +2 -2
- package/src/server/rsc-entry/wrap-action-dispatch.ts +449 -0
- package/src/server/sitemap-generator.ts +1 -1
- package/src/server/slot-resolver.ts +1 -1
- package/src/server/ssr-entry.ts +1 -1
- package/src/server/state-tree-diff.ts +4 -1
- package/src/server/status-code-resolver.ts +112 -128
- package/src/server/tracing.ts +3 -3
- package/src/server/tree-builder.ts +134 -56
- package/src/server/types.ts +52 -0
- package/src/server/utils/escape-html.ts +20 -0
- package/src/shims/headers.ts +3 -3
- package/src/shims/navigation-client.ts +4 -3
- package/src/shims/navigation.ts +9 -7
- package/src/utils/directive-parser.ts +0 -392
- package/dist/_chunks/actions-DLnUaR65.js +0 -421
- package/dist/_chunks/actions-DLnUaR65.js.map +0 -1
- package/dist/_chunks/als-registry-HS0LGUl2.js +0 -41
- package/dist/_chunks/als-registry-HS0LGUl2.js.map +0 -1
- package/dist/_chunks/debug-ECi_61pb.js +0 -108
- package/dist/_chunks/debug-ECi_61pb.js.map +0 -1
- package/dist/_chunks/define-C77ScO0m.js.map +0 -1
- package/dist/_chunks/define-Itxvcd7F.js.map +0 -1
- package/dist/_chunks/define-cookie-BowvzoP0.js +0 -94
- package/dist/_chunks/define-cookie-BowvzoP0.js.map +0 -1
- package/dist/_chunks/dev-warnings-DpGRGoDi.js.map +0 -1
- package/dist/_chunks/interception-BbqMCVXa.js.map +0 -1
- package/dist/_chunks/merge-search-params-Cm_KIWDX.js +0 -41
- package/dist/_chunks/merge-search-params-Cm_KIWDX.js.map +0 -1
- package/dist/_chunks/request-context-CK5tZqIP.js +0 -478
- package/dist/_chunks/request-context-CK5tZqIP.js.map +0 -1
- package/dist/_chunks/router-ref-C8OCm7g7.js.map +0 -1
- package/dist/_chunks/segment-classify-BDNn6EzD.js +0 -65
- package/dist/_chunks/segment-classify-BDNn6EzD.js.map +0 -1
- package/dist/_chunks/tracing-CCYbKn5n.js +0 -238
- package/dist/_chunks/tracing-CCYbKn5n.js.map +0 -1
- package/dist/_chunks/use-params-IOPu7E8t.js.map +0 -1
- package/dist/_chunks/use-query-states-BiV5GJgm.js.map +0 -1
- package/dist/client/use-params.d.ts.map +0 -1
- package/dist/plugins/dev-404-page.d.ts.map +0 -1
- package/dist/plugins/dev-browser-logs.d.ts.map +0 -1
- package/dist/plugins/dev-error-overlay.d.ts.map +0 -1
- package/dist/plugins/dev-error-page.d.ts.map +0 -1
- package/dist/plugins/dev-logs.d.ts.map +0 -1
- package/dist/plugins/dev-terminal-error.d.ts.map +0 -1
- package/dist/server/deny-page-resolver.d.ts +0 -52
- package/dist/server/deny-page-resolver.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-holding-server.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/page-deny-boundary.d.ts +0 -31
- package/dist/server/page-deny-boundary.d.ts.map +0 -1
- 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/page-deny-boundary.tsx +0 -56
- /package/src/client/{use-params.ts → use-segment-params.ts} +0 -0
- /package/src/{plugins/dev-browser-logs.ts → dev-tools/browser-logs.ts} +0 -0
- /package/src/{server/dev-logger.ts → dev-tools/logger.ts} +0 -0
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { r as defineSegmentParams } from "../_chunks/define-CfBPoJb0.js";
|
|
2
2
|
export { defineSegmentParams };
|
|
@@ -12,7 +12,8 @@
|
|
|
12
12
|
*
|
|
13
13
|
* See design/04-authorization.md and design/02-rendering-pipeline.md §"AccessGate"
|
|
14
14
|
*/
|
|
15
|
-
import type { AccessGateProps, SlotAccessGateProps
|
|
15
|
+
import type { AccessGateProps, SlotAccessGateProps } from './tree-builder.js';
|
|
16
|
+
import type { ReactNode } from 'react';
|
|
16
17
|
/**
|
|
17
18
|
* Framework-injected access gate for segments.
|
|
18
19
|
*
|
|
@@ -27,7 +28,7 @@ import type { AccessGateProps, SlotAccessGateProps, ReactElement } from './tree-
|
|
|
27
28
|
* access.ts is a pure gate — return values are discarded. The layout below
|
|
28
29
|
* gets the same data by calling the same cached functions (React.cache dedup).
|
|
29
30
|
*/
|
|
30
|
-
export declare function AccessGate(props: AccessGateProps):
|
|
31
|
+
export declare function AccessGate(props: AccessGateProps): ReactNode | Promise<ReactNode>;
|
|
31
32
|
/**
|
|
32
33
|
* Framework-injected access gate for parallel slots.
|
|
33
34
|
*
|
|
@@ -42,5 +43,5 @@ export declare function AccessGate(props: AccessGateProps): ReactElement | Promi
|
|
|
42
43
|
* redirect() in slot access.ts is a dev-mode error — redirecting from a
|
|
43
44
|
* slot doesn't make architectural sense.
|
|
44
45
|
*/
|
|
45
|
-
export declare function SlotAccessGate(props: SlotAccessGateProps): Promise<
|
|
46
|
+
export declare function SlotAccessGate(props: SlotAccessGateProps): Promise<ReactNode>;
|
|
46
47
|
//# sourceMappingURL=access-gate.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"access-gate.d.ts","sourceRoot":"","sources":["../../src/server/access-gate.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,KAAK,EAAE,eAAe,EAAE,mBAAmB,EAAE,
|
|
1
|
+
{"version":3,"file":"access-gate.d.ts","sourceRoot":"","sources":["../../src/server/access-gate.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,KAAK,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAK9E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAIvC;;;;;;;;;;;;;GAaG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,CAejF;AAiDD;;;;;;;;;;;;;GAaG;AACH,wBAAsB,cAAc,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,SAAS,CAAC,CAkDnF"}
|
|
@@ -39,6 +39,12 @@ export interface ActionDispatchConfig {
|
|
|
39
39
|
* - With JS: POST with `x-rsc-action` header (client callServer dispatch)
|
|
40
40
|
* - Without JS: POST with form data containing `$ACTION_REF` or `$ACTION_KEY`
|
|
41
41
|
* (React's progressive enhancement hidden fields)
|
|
42
|
+
*
|
|
43
|
+
* **Important:** This function returns true for ANY POST with a form
|
|
44
|
+
* Content-Type, including non-action POSTs to route.ts API handlers.
|
|
45
|
+
* The caller (wrap-action-dispatch.ts) MUST check the matched route type
|
|
46
|
+
* before entering the action path — route.ts matches skip action detection
|
|
47
|
+
* entirely so their body is not pre-parsed. See TIM-870.
|
|
42
48
|
*/
|
|
43
49
|
export declare function isActionRequest(req: Request): boolean;
|
|
44
50
|
/**
|
|
@@ -52,16 +58,19 @@ export declare function isActionRequest(req: Request): boolean;
|
|
|
52
58
|
* final HTML response. Without this, cookies set inside the action are
|
|
53
59
|
* silently dropped from the response. See TIM-836 (LOCAL-740).
|
|
54
60
|
*
|
|
55
|
-
* - `
|
|
56
|
-
*
|
|
57
|
-
*
|
|
58
|
-
*
|
|
59
|
-
*
|
|
61
|
+
* - `cookies`: the post-action read-your-own-writes view of the cookie
|
|
62
|
+
* jar, as the same `Map<string, string>` shape used by the request
|
|
63
|
+
* context's `parsedCookies`. The rerender dispatcher seeds this map
|
|
64
|
+
* directly into the rerender request context via `seedRequestCookies`,
|
|
65
|
+
* bypassing any string round-trip through a `Cookie:` header. The
|
|
66
|
+
* direct-Map seed eliminates the value-smuggling primitive that the
|
|
67
|
+
* previous `cookieHeader: string` shape carried — see
|
|
68
|
+
* ONGOING_SECURITY.md H-3 (TIM-868) and TIM-837.
|
|
60
69
|
*/
|
|
61
70
|
export interface FormRerender {
|
|
62
71
|
rerender: FormFlashData;
|
|
63
72
|
setCookieHeaders: string[];
|
|
64
|
-
|
|
73
|
+
cookies: Map<string, string>;
|
|
65
74
|
}
|
|
66
75
|
/**
|
|
67
76
|
* Handle a server action request.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"action-handler.d.ts","sourceRoot":"","sources":["../../src/server/action-handler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AASH,OAAO,EAAgB,KAAK,UAAU,EAAE,MAAM,WAAW,CAAC;AAC1D,OAAO,EAAiB,KAAK,kBAAkB,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"action-handler.d.ts","sourceRoot":"","sources":["../../src/server/action-handler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AASH,OAAO,EAAgB,KAAK,UAAU,EAAE,MAAM,WAAW,CAAC;AAC1D,OAAO,EAAiB,KAAK,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAItE,OAAO,EAAwC,KAAK,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAE/F,OAAO,EAIL,KAAK,qBAAqB,EAC3B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAMrD,4CAA4C;AAC5C,MAAM,WAAW,oBAAoB;IACnC,0BAA0B;IAC1B,IAAI,EAAE,UAAU,CAAC;IACjB,kEAAkE;IAClE,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACxC,gDAAgD;IAChD,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B;;;;OAIG;IACH,eAAe,CAAC,EAAE,qBAAqB,CAAC;CACzC;AAQD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAarD;AAID;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,aAAa,CAAC;IACxB,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9B;AAED;;;;;GAKG;AACH,wBAAsB,mBAAmB,CACvC,GAAG,EAAE,OAAO,EACZ,MAAM,EAAE,oBAAoB,GAC3B,OAAO,CAAC,QAAQ,GAAG,YAAY,GAAG,IAAI,CAAC,CA6EzC"}
|
|
@@ -33,25 +33,25 @@ export interface RequestContextStore {
|
|
|
33
33
|
/** Original (pre-overlay) frozen headers, kept for overlay merging. */
|
|
34
34
|
originalHeaders: Headers;
|
|
35
35
|
/**
|
|
36
|
-
*
|
|
36
|
+
* Raw URLSearchParams for the current request.
|
|
37
37
|
* To get typed parsed params, import a search params definition and
|
|
38
38
|
* call `.parse(searchParams())`.
|
|
39
39
|
*/
|
|
40
|
-
|
|
40
|
+
searchParams: URLSearchParams;
|
|
41
41
|
/**
|
|
42
42
|
* Raw search string from the request URL (e.g. "?foo=bar&baz=1").
|
|
43
43
|
* Available synchronously for use in `redirect()` with `preserveSearchParams`.
|
|
44
44
|
*/
|
|
45
45
|
searchString: string;
|
|
46
46
|
/**
|
|
47
|
-
*
|
|
47
|
+
* Coerced segment params for the current request.
|
|
48
48
|
* Set by the pipeline after route matching and param coercion, before
|
|
49
49
|
* middleware and rendering. Pages and layouts read params via
|
|
50
50
|
* `getSegmentParams()` instead of receiving them as a prop.
|
|
51
51
|
*
|
|
52
52
|
* See design/07-routing.md §"params.ts — Convention File for Typed Params"
|
|
53
53
|
*/
|
|
54
|
-
|
|
54
|
+
segmentParams?: Record<string, string | string[]>;
|
|
55
55
|
/** Outgoing Set-Cookie entries (name → serialized value + options). Last write wins. */
|
|
56
56
|
cookieJar: Map<string, CookieEntry>;
|
|
57
57
|
/** Whether the response has flushed (headers committed). */
|
|
@@ -76,7 +76,7 @@ export interface RequestContextStore {
|
|
|
76
76
|
export interface CookieEntry {
|
|
77
77
|
name: string;
|
|
78
78
|
value: string;
|
|
79
|
-
options: import('./
|
|
79
|
+
options: import('./cookie-context.js').CookieOptions;
|
|
80
80
|
}
|
|
81
81
|
export interface TraceStore {
|
|
82
82
|
/** 32-char lowercase hex trace ID (OTEL or UUID fallback). */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"als-registry.d.ts","sourceRoot":"","sources":["../../src/server/als-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAMlE,2DAA2D;AAC3D,eAAO,MAAM,iBAAiB,wCAA+C,CAAC;AAE9E,MAAM,WAAW,mBAAmB;IAClC,iDAAiD;IACjD,OAAO,EAAE,OAAO,CAAC;IACjB,0EAA0E;IAC1E,YAAY,EAAE,MAAM,CAAC;IACrB,8EAA8E;IAC9E,aAAa,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,uEAAuE;IACvE,eAAe,EAAE,OAAO,CAAC;IACzB;;;;OAIG;IACH,
|
|
1
|
+
{"version":3,"file":"als-registry.d.ts","sourceRoot":"","sources":["../../src/server/als-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAMlE,2DAA2D;AAC3D,eAAO,MAAM,iBAAiB,wCAA+C,CAAC;AAE9E,MAAM,WAAW,mBAAmB;IAClC,iDAAiD;IACjD,OAAO,EAAE,OAAO,CAAC;IACjB,0EAA0E;IAC1E,YAAY,EAAE,MAAM,CAAC;IACrB,8EAA8E;IAC9E,aAAa,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,uEAAuE;IACvE,eAAe,EAAE,OAAO,CAAC;IACzB;;;;OAIG;IACH,YAAY,EAAE,eAAe,CAAC;IAC9B;;;OAGG;IACH,YAAY,EAAE,MAAM,CAAC;IACrB;;;;;;;OAOG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC;IAClD,wFAAwF;IACxF,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACpC,4DAA4D;IAC5D,OAAO,EAAE,OAAO,CAAC;IACjB,0DAA0D;IAC1D,cAAc,EAAE,OAAO,CAAC;IACxB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;OAIG;IACH,qBAAqB,CAAC,EAAE,MAAM,mBAAmB,EAAE,CAAC;CACrD;AAED,wDAAwD;AACxD,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,OAAO,qBAAqB,EAAE,aAAa,CAAC;CACtD;AAMD,MAAM,WAAW,UAAU;IACzB,8DAA8D;IAC9D,OAAO,EAAE,MAAM,CAAC;IAChB,sDAAsD;IACtD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,mDAAmD;AACnD,eAAO,MAAM,QAAQ,+BAAsC,CAAC;AAM5D,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,OAAO,oBAAoB,EAAE,WAAW,EAAE,CAAC;CACrD;AAED,yDAAyD;AACzD,eAAO,MAAM,SAAS,gCAAuC,CAAC;AAM9D,MAAM,WAAW,iBAAiB;IAChC,8DAA8D;IAC9D,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,6DAA6D;IAC7D,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAED,mDAAmD;AACnD,eAAO,MAAM,eAAe,sCAA6C,CAAC;AAM1E,sDAAsD;AACtD,eAAO,MAAM,YAAY,4DAAmE,CAAC;AAM7F,4EAA4E;AAC5E,MAAM,MAAM,kBAAkB,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;AAE3D,8DAA8D;AAC9D,eAAO,MAAM,mBAAmB,uCAA8C,CAAC;AAM/E,6EAA6E;AAC7E,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC;AAE9D,4DAA4D;AAC5D,eAAO,MAAM,YAAY,gCAAuC,CAAC"}
|
|
@@ -14,10 +14,7 @@
|
|
|
14
14
|
*
|
|
15
15
|
* Design docs: 18-build-system.md, 06-caching.md
|
|
16
16
|
*/
|
|
17
|
-
|
|
18
|
-
export declare const IMMUTABLE_CACHE = "public, max-age=31536000, immutable";
|
|
19
|
-
/** Cache-Control value for unhashed static assets. */
|
|
20
|
-
export declare const STATIC_CACHE = "public, max-age=3600, must-revalidate";
|
|
17
|
+
export { IMMUTABLE_CACHE, STATIC_CACHE, generateHeadersFile } from '../adapters/shared.js';
|
|
21
18
|
/**
|
|
22
19
|
* Check if a URL path looks like a hashed asset.
|
|
23
20
|
*/
|
|
@@ -28,15 +25,4 @@ export declare function isHashedAsset(pathname: string): boolean;
|
|
|
28
25
|
* Returns `immutable` for hashed assets, short-lived for unhashed.
|
|
29
26
|
*/
|
|
30
27
|
export declare function getAssetCacheControl(pathname: string): string;
|
|
31
|
-
/**
|
|
32
|
-
* Generate a `_headers` file for static asset cache control.
|
|
33
|
-
*
|
|
34
|
-
* The `_headers` file is a platform convention supported by Cloudflare Workers
|
|
35
|
-
* Static Assets, Cloudflare Pages, and Netlify. It maps URL patterns to
|
|
36
|
-
* HTTP response headers.
|
|
37
|
-
*
|
|
38
|
-
* Vite places all hashed chunks under `/assets/` — these get immutable caching.
|
|
39
|
-
* Everything else (favicon.ico, robots.txt, etc.) gets a shorter cache.
|
|
40
|
-
*/
|
|
41
|
-
export declare function generateHeadersFile(): string;
|
|
42
28
|
//# sourceMappingURL=asset-headers.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"asset-headers.d.ts","sourceRoot":"","sources":["../../src/server/asset-headers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;
|
|
1
|
+
{"version":3,"file":"asset-headers.d.ts","sourceRoot":"","sources":["../../src/server/asset-headers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAQH,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAiB3F;;GAEG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEvD;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAE7D"}
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cookie Context — per-request cookie API and on-the-wire helpers.
|
|
3
|
+
*
|
|
4
|
+
* Split out of `request-context.ts` (TIM-853) so the cookie subsystem
|
|
5
|
+
* — encoding contract, options grammar, parser, serializer, RYW map,
|
|
6
|
+
* and rerender seed — lives in one file. The headers/scope/params APIs
|
|
7
|
+
* stay in `request-context.ts` and call into this module via the
|
|
8
|
+
* exported helpers.
|
|
9
|
+
*
|
|
10
|
+
* See design/29-cookies.md for the encoding contract and read-your-own-
|
|
11
|
+
* writes semantics. See ONGOING_SECURITY.md H-3 (TIM-868) for the
|
|
12
|
+
* smuggling primitive that the encoding contract closes.
|
|
13
|
+
*/
|
|
14
|
+
import { assertValidCookieName, assertValidCookieValue } from '../cookies/validation.js';
|
|
15
|
+
export { assertValidCookieName, assertValidCookieValue };
|
|
16
|
+
/**
|
|
17
|
+
* Returns a cookie accessor for the current request.
|
|
18
|
+
*
|
|
19
|
+
* Available in middleware, access checks, server components, and server actions.
|
|
20
|
+
* Throws if called outside a request context (security principle #2: no global fallback).
|
|
21
|
+
*
|
|
22
|
+
* Read methods (.get, .has, .getAll) are always available and reflect
|
|
23
|
+
* read-your-own-writes from .set() calls in the same request.
|
|
24
|
+
*
|
|
25
|
+
* Mutation methods (.set, .delete, .clear) are only available in mutable
|
|
26
|
+
* contexts (middleware.ts, server actions, route.ts handlers). Calling them
|
|
27
|
+
* in read-only contexts (access.ts, server components) throws.
|
|
28
|
+
*
|
|
29
|
+
* This is the escape hatch for direct cookie jar operations. For typed
|
|
30
|
+
* cookie access, use `defineCookie()` instead.
|
|
31
|
+
*
|
|
32
|
+
* See design/29-cookies.md
|
|
33
|
+
*/
|
|
34
|
+
export declare function getCookieJar(): RequestCookies;
|
|
35
|
+
/**
|
|
36
|
+
* Returns the value of a single cookie, or undefined if absent.
|
|
37
|
+
*
|
|
38
|
+
* @internal — not part of the public API. Use `defineCookie().get()` or `getCookieJar().get()` instead.
|
|
39
|
+
*/
|
|
40
|
+
export declare function getCookie(name: string): string | undefined;
|
|
41
|
+
/**
|
|
42
|
+
* Per-call options for `getCookies().set()`. Extends the persistent
|
|
43
|
+
* `CookieOptions` (HTTP cookie attributes) with framework-only flags
|
|
44
|
+
* that are NOT serialized into the Set-Cookie header.
|
|
45
|
+
*
|
|
46
|
+
* The `raw` flag is the escape hatch for the auto-encoding contract.
|
|
47
|
+
* See design/29-cookies.md §"Encoding Contract".
|
|
48
|
+
*/
|
|
49
|
+
export interface SetCookieOptions extends CookieOptions {
|
|
50
|
+
/**
|
|
51
|
+
* Skip the framework's `encodeURIComponent` pass and store the value
|
|
52
|
+
* verbatim. The value is then validated against the strict RFC 6265
|
|
53
|
+
* §4.1.1 `cookie-octet` grammar — the H-3 smuggling primitive cannot
|
|
54
|
+
* sneak in via this opt-out.
|
|
55
|
+
*
|
|
56
|
+
* Use this when forwarding a cookie value that is already in its
|
|
57
|
+
* intended on-the-wire form (e.g. mirroring an upstream service's
|
|
58
|
+
* Set-Cookie). Default: `false` (auto-encode).
|
|
59
|
+
*/
|
|
60
|
+
raw?: boolean;
|
|
61
|
+
}
|
|
62
|
+
/** Options for setting a cookie. See design/29-cookies.md. */
|
|
63
|
+
export interface CookieOptions {
|
|
64
|
+
/** Domain scope. Default: omitted (current domain only). */
|
|
65
|
+
domain?: string;
|
|
66
|
+
/** URL path scope. Default: '/'. */
|
|
67
|
+
path?: string;
|
|
68
|
+
/** Expiration date. Mutually exclusive with maxAge. */
|
|
69
|
+
expires?: Date;
|
|
70
|
+
/** Max age in seconds. Mutually exclusive with expires. */
|
|
71
|
+
maxAge?: number;
|
|
72
|
+
/** Prevent client-side JS access. Default: true. */
|
|
73
|
+
httpOnly?: boolean;
|
|
74
|
+
/** Only send over HTTPS. Default: true. */
|
|
75
|
+
secure?: boolean;
|
|
76
|
+
/** Cross-site request policy. Default: 'lax'. */
|
|
77
|
+
sameSite?: 'strict' | 'lax' | 'none';
|
|
78
|
+
/** Partitioned (CHIPS) — isolate cookie per top-level site. Default: false. */
|
|
79
|
+
partitioned?: boolean;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Cookie accessor returned by `getCookies()`.
|
|
83
|
+
*
|
|
84
|
+
* Read methods are always available. Mutation methods throw in read-only
|
|
85
|
+
* contexts (access.ts, server components).
|
|
86
|
+
*/
|
|
87
|
+
export interface RequestCookies {
|
|
88
|
+
/** Get a cookie value by name. Returns undefined if not present. */
|
|
89
|
+
get(name: string): string | undefined;
|
|
90
|
+
/** Check if a cookie exists. */
|
|
91
|
+
has(name: string): boolean;
|
|
92
|
+
/** Get all cookies as an array of { name, value } pairs. */
|
|
93
|
+
getAll(): Array<{
|
|
94
|
+
name: string;
|
|
95
|
+
value: string;
|
|
96
|
+
}>;
|
|
97
|
+
/** Number of cookies. */
|
|
98
|
+
readonly size: number;
|
|
99
|
+
/**
|
|
100
|
+
* Set a cookie. Only available in mutable contexts (middleware, actions,
|
|
101
|
+
* route handlers).
|
|
102
|
+
*
|
|
103
|
+
* The value is auto-encoded with `encodeURIComponent` so the on-the-wire
|
|
104
|
+
* bytes always satisfy RFC 6265 §4.1.1 cookie-octet — `cookies().get()`
|
|
105
|
+
* returns the same logical value the developer wrote. Pass `{ raw: true }`
|
|
106
|
+
* to skip the encoder; the raw path validates against the strict
|
|
107
|
+
* cookie-octet grammar instead. See design/29-cookies.md §"Encoding
|
|
108
|
+
* Contract" and ONGOING_SECURITY.md H-3 (TIM-868).
|
|
109
|
+
*/
|
|
110
|
+
set(name: string, value: string, options?: SetCookieOptions): void;
|
|
111
|
+
/**
|
|
112
|
+
* Copy all `Set-Cookie` headers from a `Headers` object.
|
|
113
|
+
* Parses each header and forwards name, value, and all attributes
|
|
114
|
+
* (path, domain, max-age, expires, sameSite, secure, httpOnly, partitioned).
|
|
115
|
+
*
|
|
116
|
+
* Useful when forwarding cookies from an internal `fetch()` or auth handler:
|
|
117
|
+
* ```ts
|
|
118
|
+
* const response = await auth.handler(req);
|
|
119
|
+
* getCookies().then(c => c.setFromHeaders(response.headers));
|
|
120
|
+
* ```
|
|
121
|
+
*/
|
|
122
|
+
setFromHeaders(headers: Headers): void;
|
|
123
|
+
/** Delete a cookie. Only available in mutable contexts. */
|
|
124
|
+
delete(name: string, options?: Pick<CookieOptions, 'path' | 'domain'>): void;
|
|
125
|
+
/** Delete all cookies. Only available in mutable contexts. */
|
|
126
|
+
clear(): void;
|
|
127
|
+
/** Serialize cookies as a Cookie header string. */
|
|
128
|
+
toString(): string;
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Register a pre-parsed cookie map to use as the request context seed for
|
|
132
|
+
* the next `runWithRequestContext(req, …)` call with this exact `req`.
|
|
133
|
+
*
|
|
134
|
+
* Used by the no-JS form-rerender dispatcher in
|
|
135
|
+
* `rsc-entry/wrap-action-dispatch.ts` to thread the action's post-mutation
|
|
136
|
+
* cookie state into the rerender scope without serializing back through a
|
|
137
|
+
* `Cookie:` header. See TIM-868 / TIM-837.
|
|
138
|
+
*
|
|
139
|
+
* @internal — framework use only.
|
|
140
|
+
*/
|
|
141
|
+
export declare function seedRequestCookies(req: Request, cookies: Map<string, string>): void;
|
|
142
|
+
/**
|
|
143
|
+
* Pop the seed (if any) for `req` and return it. Called from
|
|
144
|
+
* `runWithRequestContext` exactly once per request — the seed is consumed
|
|
145
|
+
* eagerly so it cannot leak into a hypothetical future re-use of the same
|
|
146
|
+
* Request reference.
|
|
147
|
+
*
|
|
148
|
+
* @internal — framework use only.
|
|
149
|
+
*/
|
|
150
|
+
export declare function consumeSeededCookies(req: Request): Map<string, string> | undefined;
|
|
151
|
+
/**
|
|
152
|
+
* Build a Map of cookie name → value reflecting the current request's
|
|
153
|
+
* read-your-own-writes state. Includes incoming cookies plus any
|
|
154
|
+
* mutations from getCookies().set() / getCookies().delete() in the same request.
|
|
155
|
+
*
|
|
156
|
+
* Used by SSR renderers to populate NavContext.cookies so that
|
|
157
|
+
* useCookie()'s server snapshot matches the actual response state.
|
|
158
|
+
*
|
|
159
|
+
* See design/29-cookies.md §"Read-Your-Own-Writes"
|
|
160
|
+
* See design/triage/TIM-441-cookie-api-triage.md §4
|
|
161
|
+
*/
|
|
162
|
+
export declare function getCookiesForSsr(): Map<string, string>;
|
|
163
|
+
/**
|
|
164
|
+
* Collect all Set-Cookie headers from the cookie jar.
|
|
165
|
+
* Called by the framework at flush time to apply cookies to the response.
|
|
166
|
+
*
|
|
167
|
+
* Returns an array of serialized Set-Cookie header values.
|
|
168
|
+
*/
|
|
169
|
+
export declare function getSetCookieHeaders(): string[];
|
|
170
|
+
//# sourceMappingURL=cookie-context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cookie-context.d.ts","sourceRoot":"","sources":["../../src/server/cookie-context.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAazF,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,CAAC;AAIzD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,YAAY,IAAI,cAAc,CA0K7C;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAG1D;AAID;;;;;;;GAOG;AACH,MAAM,WAAW,gBAAiB,SAAQ,aAAa;IACrD;;;;;;;;;OASG;IACH,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED,8DAA8D;AAC9D,MAAM,WAAW,aAAa;IAC5B,4DAA4D;IAC5D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oCAAoC;IACpC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,uDAAuD;IACvD,OAAO,CAAC,EAAE,IAAI,CAAC;IACf,2DAA2D;IAC3D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oDAAoD;IACpD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,2CAA2C;IAC3C,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,iDAAiD;IACjD,QAAQ,CAAC,EAAE,QAAQ,GAAG,KAAK,GAAG,MAAM,CAAC;IACrC,+EAA+E;IAC/E,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC7B,oEAAoE;IACpE,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IACtC,gCAAgC;IAChC,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IAC3B,4DAA4D;IAC5D,MAAM,IAAI,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACjD,yBAAyB;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB;;;;;;;;;;OAUG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACnE;;;;;;;;;;OAUG;IACH,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACvC,2DAA2D;IAC3D,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,aAAa,EAAE,MAAM,GAAG,QAAQ,CAAC,GAAG,IAAI,CAAC;IAC7E,8DAA8D;IAC9D,KAAK,IAAI,IAAI,CAAC;IACd,mDAAmD;IACnD,QAAQ,IAAI,MAAM,CAAC;CACpB;AAyBD;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAKnF;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAIlF;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAgBtD;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,EAAE,CAI9C"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cookie parsing and serialization helpers — pure string ↔ structure
|
|
3
|
+
* functions with no ALS dependency. Split out of `cookie-context.ts`
|
|
4
|
+
* (TIM-853) so the API surface and the wire-format codecs can each be
|
|
5
|
+
* read on their own.
|
|
6
|
+
*
|
|
7
|
+
* The functions in this module are total over arbitrary input. They
|
|
8
|
+
* never throw and never call `assertValid*` (the security validators
|
|
9
|
+
* live in the API surface — `cookie-context.ts` invokes them at every
|
|
10
|
+
* jar entry point so the smuggling-primitive invariant from TIM-868
|
|
11
|
+
* is enforced regardless of which path produced the bytes).
|
|
12
|
+
*/
|
|
13
|
+
import type { CookieEntry } from './als-registry.js';
|
|
14
|
+
import type { CookieOptions } from './cookie-context.js';
|
|
15
|
+
/**
|
|
16
|
+
* Parse a Cookie header string into a Map of name → value pairs.
|
|
17
|
+
* Follows RFC 6265 §4.2.1: cookies are semicolon-separated key=value pairs.
|
|
18
|
+
*
|
|
19
|
+
* Values are auto-decoded with `decodeURIComponent` so they round-trip
|
|
20
|
+
* losslessly with `getCookies().set()` (which auto-encodes). Malformed
|
|
21
|
+
* `%`-escapes from third-party cookies fall back to the raw byte sequence
|
|
22
|
+
* — the parser must be total over arbitrary inbound headers, including
|
|
23
|
+
* non-conforming values from other servers, browser extensions, etc.
|
|
24
|
+
*/
|
|
25
|
+
export declare function parseCookieHeader(header: string): Map<string, string>;
|
|
26
|
+
/**
|
|
27
|
+
* Decode a single cookie value with `decodeURIComponent`, falling back to
|
|
28
|
+
* the raw byte sequence if the input contains a malformed `%`-escape.
|
|
29
|
+
*
|
|
30
|
+
* Used by both `parseCookieHeader` (incoming Cookie: header) and the
|
|
31
|
+
* `setRaw` forwarding path (outgoing Set-Cookie from upstream services).
|
|
32
|
+
* Total — never throws.
|
|
33
|
+
*/
|
|
34
|
+
export declare function safeDecodeCookieValue(raw: string): string;
|
|
35
|
+
/** Serialize a CookieEntry into a Set-Cookie header value. */
|
|
36
|
+
export declare function serializeCookieEntry(entry: CookieEntry): string;
|
|
37
|
+
/**
|
|
38
|
+
* Parse a raw `Set-Cookie` header string into name, value, and options.
|
|
39
|
+
* Handles all standard attributes: Path, Domain, Max-Age, Expires,
|
|
40
|
+
* SameSite, Secure, HttpOnly, Partitioned.
|
|
41
|
+
*
|
|
42
|
+
* Does NOT apply DEFAULT_COOKIE_OPTIONS — the caller decides whether
|
|
43
|
+
* to merge defaults (e.g. `set()` does, but `setRaw()` should preserve
|
|
44
|
+
* the original header's intent).
|
|
45
|
+
*/
|
|
46
|
+
export declare function parseSetCookie(header: string): {
|
|
47
|
+
name: string;
|
|
48
|
+
value: string;
|
|
49
|
+
options: CookieOptions;
|
|
50
|
+
} | null;
|
|
51
|
+
//# sourceMappingURL=cookie-parsing.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cookie-parsing.d.ts","sourceRoot":"","sources":["../../src/server/cookie-parsing.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzD;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAerE;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAMzD;AAED,8DAA8D;AAC9D,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM,CAgB/D;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,MAAM,GACb;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,aAAa,CAAA;CAAE,GAAG,IAAI,CA6ChE"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Deny boundary subsystem — the in-tree DenySignal flow.
|
|
3
|
+
*
|
|
4
|
+
* Three things live together here because they form a single flow:
|
|
5
|
+
*
|
|
6
|
+
* 1. **Chain construction** (`buildDenyPageChain`) — walks the matched
|
|
7
|
+
* segment chain at element-tree build time and produces a list of
|
|
8
|
+
* `DenyPageEntry` records ordered by specificity (specific status →
|
|
9
|
+
* category catch-all → `error.tsx`).
|
|
10
|
+
*
|
|
11
|
+
* 2. **Runtime matching** (`renderMatchingDenyPage`) — picks the first
|
|
12
|
+
* chain entry whose status filter matches the thrown DenySignal and
|
|
13
|
+
* returns a React element for the matching component. Used by
|
|
14
|
+
* `AccessGate` and `PageDenyBoundary` when they catch a deny.
|
|
15
|
+
*
|
|
16
|
+
* 3. **The page boundary itself** (`PageDenyBoundary`) — the async server
|
|
17
|
+
* component that wraps a server-component page, calls it, and catches
|
|
18
|
+
* `DenySignal` so the deny page renders in-tree (no throw reaches
|
|
19
|
+
* React Flight, single render pass).
|
|
20
|
+
*
|
|
21
|
+
* Plus the ALS helpers (`setDenyStatus` / `getDenyStatus`) the boundary
|
|
22
|
+
* uses to thread the matched status code back to the pipeline so the
|
|
23
|
+
* HTTP status reflects the deny.
|
|
24
|
+
*
|
|
25
|
+
* Folded into one module from the former `deny-page-resolver.ts` and
|
|
26
|
+
* `page-deny-boundary.tsx` (TIM-853) — the names were misleading and the
|
|
27
|
+
* three pieces only made sense together.
|
|
28
|
+
*
|
|
29
|
+
* See design/04-authorization.md, design/10-error-handling.md, TIM-666.
|
|
30
|
+
*/
|
|
31
|
+
import type { ManifestSegmentNode } from './route-matcher.js';
|
|
32
|
+
/** A single entry in the deny page fallback chain. */
|
|
33
|
+
export interface DenyPageEntry {
|
|
34
|
+
/** Status code filter: specific (403), category (400 = any 4xx), or null (catch-all). */
|
|
35
|
+
status: number | null;
|
|
36
|
+
/** The component to render (server or client — both work). */
|
|
37
|
+
component: (...args: unknown[]) => unknown;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Build the deny page fallback chain from the segment chain.
|
|
41
|
+
*
|
|
42
|
+
* Walks segments from `startIndex` outward (toward root) and collects
|
|
43
|
+
* status-code file components in fallback order:
|
|
44
|
+
* 1. Specific status files (403.tsx, 404.tsx) — exact match
|
|
45
|
+
* 2. Category catch-alls (4xx.tsx) — matches any 4xx
|
|
46
|
+
* 3. error.tsx — catches everything
|
|
47
|
+
*
|
|
48
|
+
* Each segment is checked in this order. The chain is ordered so the
|
|
49
|
+
* FIRST match wins at catch time.
|
|
50
|
+
*/
|
|
51
|
+
export declare function buildDenyPageChain(segments: ManifestSegmentNode[], startIndex: number): Promise<DenyPageEntry[]>;
|
|
52
|
+
/**
|
|
53
|
+
* Find the first deny page in the chain that matches the given status code.
|
|
54
|
+
* Returns a React element for the matching component, or null if no match.
|
|
55
|
+
*/
|
|
56
|
+
export declare function renderMatchingDenyPage(chain: DenyPageEntry[], status: number, data: unknown): React.ReactElement | null;
|
|
57
|
+
/**
|
|
58
|
+
* Async server component that wraps a page call with DenySignal catching.
|
|
59
|
+
*
|
|
60
|
+
* Calls the page component as an async function (the same thing React
|
|
61
|
+
* Flight does internally), awaits it, and catches DenySignal. On catch,
|
|
62
|
+
* renders the matching deny page in-tree. On success, returns the page's
|
|
63
|
+
* rendered output normally.
|
|
64
|
+
*
|
|
65
|
+
* Client component pages ('use client') are NOT wrapped — they can't call
|
|
66
|
+
* deny() (server-only API) and must go through createElement normally.
|
|
67
|
+
*
|
|
68
|
+
* No error reaches React Flight — the Flight stream is clean, SSR succeeds,
|
|
69
|
+
* and the entire request uses a single renderToReadableStream call.
|
|
70
|
+
*/
|
|
71
|
+
export declare function PageDenyBoundary({ Page, route, denyPages, }: {
|
|
72
|
+
/** The page server component function. */
|
|
73
|
+
Page: (...args: unknown[]) => unknown;
|
|
74
|
+
/** Route path for OTEL tracing. */
|
|
75
|
+
route: string;
|
|
76
|
+
/** Deny page fallback chain from the segment chain. */
|
|
77
|
+
denyPages: DenyPageEntry[];
|
|
78
|
+
}): Promise<React.ReactElement>;
|
|
79
|
+
/**
|
|
80
|
+
* Set the deny status in the request context ALS.
|
|
81
|
+
* Called from AccessGate / PageDenyBoundary when a DenySignal is caught.
|
|
82
|
+
* The pipeline reads this after render to set the HTTP status code.
|
|
83
|
+
*/
|
|
84
|
+
export declare function setDenyStatus(status: number): void;
|
|
85
|
+
/**
|
|
86
|
+
* Read the deny status from the request context ALS.
|
|
87
|
+
* Returns undefined if no deny was caught during render.
|
|
88
|
+
*/
|
|
89
|
+
export declare function getDenyStatus(): number | undefined;
|
|
90
|
+
//# sourceMappingURL=deny-boundary.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deny-boundary.d.ts","sourceRoot":"","sources":["../../src/server/deny-boundary.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAQH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAI9D,sDAAsD;AACtD,MAAM,WAAW,aAAa;IAC5B,yFAAyF;IACzF,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,8DAA8D;IAC9D,SAAS,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC;CAC5C;AAID;;;;;;;;;;;GAWG;AACH,wBAAsB,kBAAkB,CACtC,QAAQ,EAAE,mBAAmB,EAAE,EAC/B,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,aAAa,EAAE,CAAC,CAqD1B;AAID;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,aAAa,EAAE,EACtB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,OAAO,GACZ,KAAK,CAAC,YAAY,GAAG,IAAI,CAkB3B;AAID;;;;;;;;;;;;;GAaG;AACH,wBAAsB,gBAAgB,CAAC,EACrC,IAAI,EACJ,KAAK,EACL,SAAS,GACV,EAAE;IACD,0CAA0C;IAC1C,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC;IACtC,mCAAmC;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,uDAAuD;IACvD,SAAS,EAAE,aAAa,EAAE,CAAC;CAC5B,GAAG,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAiB9B;AAID;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAKlD;AAED;;;GAGG;AACH,wBAAgB,aAAa,IAAI,MAAM,GAAG,SAAS,CAElD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deny-renderer.d.ts","sourceRoot":"","sources":["../../src/server/deny-renderer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAKH,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"deny-renderer.d.ts","sourceRoot":"","sources":["../../src/server/deny-renderer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAKH,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAO7C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAEjD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAOjE,qDAAqD;AACrD,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC;IAC3C,OAAO,EAAE,mBAAmB,CAAC;CAC9B;AAED,iEAAiE;AACjE,MAAM,MAAM,mBAAmB,GAAG,MAAM;IACtC,QAAQ,EAAE,cAAc,CAAC;IACzB,QAAQ,EAAE,cAAc,CAAC;CAC1B,CAAC;AAEF,6DAA6D;AAC7D,MAAM,MAAM,SAAS,GAAG,CACtB,SAAS,EAAE,cAAc,CAAC,UAAU,CAAC,EACrC,UAAU,EAAE,UAAU,KACnB,OAAO,CAAC,QAAQ,CAAC,CAAC;AAUvB;;;;;;GAMG;AACH,wBAAsB,cAAc,CAClC,IAAI,EAAE,UAAU,EAChB,QAAQ,EAAE,mBAAmB,EAAE,EAC/B,gBAAgB,EAAE,WAAW,EAAE,EAC/B,GAAG,EAAE,OAAO,EACZ,KAAK,EAAE,UAAU,EACjB,eAAe,EAAE,OAAO,EACxB,eAAe,EAAE,qBAAqB,EACtC,sBAAsB,EAAE,mBAAmB,EAC3C,OAAO,EAAE,SAAS,GACjB,OAAO,CAAC,QAAQ,CAAC,CAiGnB;AAED;;;;;GAKG;AACH,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,UAAU,EAChB,QAAQ,EAAE,mBAAmB,EAAE,EAC/B,gBAAgB,EAAE,WAAW,EAAE,EAC/B,eAAe,EAAE,OAAO,EACxB,sBAAsB,EAAE,mBAAmB,GAC1C,OAAO,CAAC,QAAQ,CAAC,CA2CnB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"early-hints-sender.d.ts","sourceRoot":"","sources":["../../src/server/early-hints-sender.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;
|
|
1
|
+
{"version":3,"file":"early-hints-sender.d.ts","sourceRoot":"","sources":["../../src/server/early-hints-sender.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAKH,4EAA4E;AAC5E,MAAM,MAAM,kBAAkB,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;AAE3D;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,CAAC,EAAE,MAAM,EAAE,kBAAkB,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CAErF;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CASvD"}
|