@timber-js/app 0.1.0
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/bin/timber.mjs +5 -0
- package/dist/_chunks/error-boundary-dj-WO5uq.js +121 -0
- package/dist/_chunks/error-boundary-dj-WO5uq.js.map +1 -0
- package/dist/_chunks/format-DNt20Kt8.js +163 -0
- package/dist/_chunks/format-DNt20Kt8.js.map +1 -0
- package/dist/_chunks/interception-DIaZN1bF.js +669 -0
- package/dist/_chunks/interception-DIaZN1bF.js.map +1 -0
- package/dist/_chunks/metadata-routes-BDnswgRO.js +141 -0
- package/dist/_chunks/metadata-routes-BDnswgRO.js.map +1 -0
- package/dist/_chunks/registry-DUIpYD_x.js +20 -0
- package/dist/_chunks/registry-DUIpYD_x.js.map +1 -0
- package/dist/_chunks/request-context-D6XHINkR.js +330 -0
- package/dist/_chunks/request-context-D6XHINkR.js.map +1 -0
- package/dist/_chunks/tracing-BtOwb8O6.js +174 -0
- package/dist/_chunks/tracing-BtOwb8O6.js.map +1 -0
- package/dist/_chunks/use-cookie-8ZlA0rr3.js +125 -0
- package/dist/_chunks/use-cookie-8ZlA0rr3.js.map +1 -0
- package/dist/adapters/cloudflare.d.ts +92 -0
- package/dist/adapters/cloudflare.d.ts.map +1 -0
- package/dist/adapters/cloudflare.js +188 -0
- package/dist/adapters/cloudflare.js.map +1 -0
- package/dist/adapters/nitro.d.ts +72 -0
- package/dist/adapters/nitro.d.ts.map +1 -0
- package/dist/adapters/nitro.js +217 -0
- package/dist/adapters/nitro.js.map +1 -0
- package/dist/adapters/types.d.ts +53 -0
- package/dist/adapters/types.d.ts.map +1 -0
- package/dist/cache/index.d.ts +52 -0
- package/dist/cache/index.d.ts.map +1 -0
- package/dist/cache/index.js +283 -0
- package/dist/cache/index.js.map +1 -0
- package/dist/cache/redis-handler.d.ts +45 -0
- package/dist/cache/redis-handler.d.ts.map +1 -0
- package/dist/cache/register-cached-function.d.ts +17 -0
- package/dist/cache/register-cached-function.d.ts.map +1 -0
- package/dist/cache/singleflight.d.ts +11 -0
- package/dist/cache/singleflight.d.ts.map +1 -0
- package/dist/cache/stable-stringify.d.ts +7 -0
- package/dist/cache/stable-stringify.d.ts.map +1 -0
- package/dist/cache/timber-cache.d.ts +21 -0
- package/dist/cache/timber-cache.d.ts.map +1 -0
- package/dist/cli.d.ts +44 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +135 -0
- package/dist/cli.js.map +1 -0
- package/dist/client/browser-entry.d.ts +22 -0
- package/dist/client/browser-entry.d.ts.map +1 -0
- package/dist/client/error-boundary.d.ts +42 -0
- package/dist/client/error-boundary.d.ts.map +1 -0
- package/dist/client/form.d.ts +115 -0
- package/dist/client/form.d.ts.map +1 -0
- package/dist/client/head.d.ts +16 -0
- package/dist/client/head.d.ts.map +1 -0
- package/dist/client/history.d.ts +29 -0
- package/dist/client/history.d.ts.map +1 -0
- package/dist/client/index.d.ts +32 -0
- package/dist/client/index.d.ts.map +1 -0
- package/dist/client/index.js +1218 -0
- package/dist/client/index.js.map +1 -0
- package/dist/client/link-navigate-interceptor.d.ts +28 -0
- package/dist/client/link-navigate-interceptor.d.ts.map +1 -0
- package/dist/client/link-status-provider.d.ts +11 -0
- package/dist/client/link-status-provider.d.ts.map +1 -0
- package/dist/client/link.d.ts +119 -0
- package/dist/client/link.d.ts.map +1 -0
- package/dist/client/nuqs-adapter.d.ts +11 -0
- package/dist/client/nuqs-adapter.d.ts.map +1 -0
- package/dist/client/router-ref.d.ts +11 -0
- package/dist/client/router-ref.d.ts.map +1 -0
- package/dist/client/router.d.ts +85 -0
- package/dist/client/router.d.ts.map +1 -0
- package/dist/client/segment-cache.d.ts +88 -0
- package/dist/client/segment-cache.d.ts.map +1 -0
- package/dist/client/segment-context.d.ts +32 -0
- package/dist/client/segment-context.d.ts.map +1 -0
- package/dist/client/ssr-data.d.ts +64 -0
- package/dist/client/ssr-data.d.ts.map +1 -0
- package/dist/client/types.d.ts +5 -0
- package/dist/client/types.d.ts.map +1 -0
- package/dist/client/unload-guard.d.ts +18 -0
- package/dist/client/unload-guard.d.ts.map +1 -0
- package/dist/client/use-cookie.d.ts +37 -0
- package/dist/client/use-cookie.d.ts.map +1 -0
- package/dist/client/use-link-status.d.ts +35 -0
- package/dist/client/use-link-status.d.ts.map +1 -0
- package/dist/client/use-navigation-pending.d.ts +26 -0
- package/dist/client/use-navigation-pending.d.ts.map +1 -0
- package/dist/client/use-params.d.ts +50 -0
- package/dist/client/use-params.d.ts.map +1 -0
- package/dist/client/use-pathname.d.ts +20 -0
- package/dist/client/use-pathname.d.ts.map +1 -0
- package/dist/client/use-query-states.d.ts +36 -0
- package/dist/client/use-query-states.d.ts.map +1 -0
- package/dist/client/use-router.d.ts +39 -0
- package/dist/client/use-router.d.ts.map +1 -0
- package/dist/client/use-search-params.d.ts +24 -0
- package/dist/client/use-search-params.d.ts.map +1 -0
- package/dist/client/use-selected-layout-segment.d.ts +68 -0
- package/dist/client/use-selected-layout-segment.d.ts.map +1 -0
- package/dist/content/index.d.ts +11 -0
- package/dist/content/index.d.ts.map +1 -0
- package/dist/content/index.js +2 -0
- package/dist/cookies/define-cookie.d.ts +61 -0
- package/dist/cookies/define-cookie.d.ts.map +1 -0
- package/dist/cookies/index.d.ts +3 -0
- package/dist/cookies/index.d.ts.map +1 -0
- package/dist/cookies/index.js +82 -0
- package/dist/cookies/index.js.map +1 -0
- package/dist/fonts/ast.d.ts +38 -0
- package/dist/fonts/ast.d.ts.map +1 -0
- package/dist/fonts/css.d.ts +43 -0
- package/dist/fonts/css.d.ts.map +1 -0
- package/dist/fonts/fallbacks.d.ts +36 -0
- package/dist/fonts/fallbacks.d.ts.map +1 -0
- package/dist/fonts/google.d.ts +122 -0
- package/dist/fonts/google.d.ts.map +1 -0
- package/dist/fonts/local.d.ts +76 -0
- package/dist/fonts/local.d.ts.map +1 -0
- package/dist/fonts/types.d.ts +85 -0
- package/dist/fonts/types.d.ts.map +1 -0
- package/dist/index.d.ts +150 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +14701 -0
- package/dist/index.js.map +1 -0
- package/dist/plugins/adapter-build.d.ts +18 -0
- package/dist/plugins/adapter-build.d.ts.map +1 -0
- package/dist/plugins/build-manifest.d.ts +79 -0
- package/dist/plugins/build-manifest.d.ts.map +1 -0
- package/dist/plugins/build-report.d.ts +63 -0
- package/dist/plugins/build-report.d.ts.map +1 -0
- package/dist/plugins/cache-transform.d.ts +36 -0
- package/dist/plugins/cache-transform.d.ts.map +1 -0
- package/dist/plugins/chunks.d.ts +45 -0
- package/dist/plugins/chunks.d.ts.map +1 -0
- package/dist/plugins/content.d.ts +19 -0
- package/dist/plugins/content.d.ts.map +1 -0
- package/dist/plugins/dev-error-overlay.d.ts +60 -0
- package/dist/plugins/dev-error-overlay.d.ts.map +1 -0
- package/dist/plugins/dev-logs.d.ts +46 -0
- package/dist/plugins/dev-logs.d.ts.map +1 -0
- package/dist/plugins/dev-server.d.ts +22 -0
- package/dist/plugins/dev-server.d.ts.map +1 -0
- package/dist/plugins/dynamic-transform.d.ts +72 -0
- package/dist/plugins/dynamic-transform.d.ts.map +1 -0
- package/dist/plugins/entries.d.ts +21 -0
- package/dist/plugins/entries.d.ts.map +1 -0
- package/dist/plugins/fonts.d.ts +77 -0
- package/dist/plugins/fonts.d.ts.map +1 -0
- package/dist/plugins/mdx.d.ts +21 -0
- package/dist/plugins/mdx.d.ts.map +1 -0
- package/dist/plugins/react-prod.d.ts +18 -0
- package/dist/plugins/react-prod.d.ts.map +1 -0
- package/dist/plugins/routing.d.ts +13 -0
- package/dist/plugins/routing.d.ts.map +1 -0
- package/dist/plugins/server-action-exports.d.ts +26 -0
- package/dist/plugins/server-action-exports.d.ts.map +1 -0
- package/dist/plugins/server-bundle.d.ts +15 -0
- package/dist/plugins/server-bundle.d.ts.map +1 -0
- package/dist/plugins/shims.d.ts +18 -0
- package/dist/plugins/shims.d.ts.map +1 -0
- package/dist/plugins/static-build.d.ts +55 -0
- package/dist/plugins/static-build.d.ts.map +1 -0
- package/dist/routing/codegen.d.ts +29 -0
- package/dist/routing/codegen.d.ts.map +1 -0
- package/dist/routing/index.d.ts +8 -0
- package/dist/routing/index.d.ts.map +1 -0
- package/dist/routing/index.js +2 -0
- package/dist/routing/interception.d.ts +46 -0
- package/dist/routing/interception.d.ts.map +1 -0
- package/dist/routing/scanner.d.ts +28 -0
- package/dist/routing/scanner.d.ts.map +1 -0
- package/dist/routing/status-file-lint.d.ts +33 -0
- package/dist/routing/status-file-lint.d.ts.map +1 -0
- package/dist/routing/types.d.ts +81 -0
- package/dist/routing/types.d.ts.map +1 -0
- package/dist/search-params/analyze.d.ts +54 -0
- package/dist/search-params/analyze.d.ts.map +1 -0
- package/dist/search-params/codecs.d.ts +53 -0
- package/dist/search-params/codecs.d.ts.map +1 -0
- package/dist/search-params/create.d.ts +106 -0
- package/dist/search-params/create.d.ts.map +1 -0
- package/dist/search-params/index.d.ts +7 -0
- package/dist/search-params/index.d.ts.map +1 -0
- package/dist/search-params/index.js +300 -0
- package/dist/search-params/index.js.map +1 -0
- package/dist/search-params/registry.d.ts +20 -0
- package/dist/search-params/registry.d.ts.map +1 -0
- package/dist/server/access-gate.d.ts +42 -0
- package/dist/server/access-gate.d.ts.map +1 -0
- package/dist/server/action-client.d.ts +190 -0
- package/dist/server/action-client.d.ts.map +1 -0
- package/dist/server/action-handler.d.ts +48 -0
- package/dist/server/action-handler.d.ts.map +1 -0
- package/dist/server/actions.d.ts +108 -0
- package/dist/server/actions.d.ts.map +1 -0
- package/dist/server/asset-headers.d.ts +42 -0
- package/dist/server/asset-headers.d.ts.map +1 -0
- package/dist/server/body-limits.d.ts +30 -0
- package/dist/server/body-limits.d.ts.map +1 -0
- package/dist/server/build-manifest.d.ts +120 -0
- package/dist/server/build-manifest.d.ts.map +1 -0
- package/dist/server/canonicalize.d.ts +30 -0
- package/dist/server/canonicalize.d.ts.map +1 -0
- package/dist/server/client-module-map.d.ts +47 -0
- package/dist/server/client-module-map.d.ts.map +1 -0
- package/dist/server/csrf.d.ts +34 -0
- package/dist/server/csrf.d.ts.map +1 -0
- package/dist/server/deny-renderer.d.ts +49 -0
- package/dist/server/deny-renderer.d.ts.map +1 -0
- package/dist/server/dev-logger.d.ts +44 -0
- package/dist/server/dev-logger.d.ts.map +1 -0
- package/dist/server/dev-span-processor.d.ts +29 -0
- package/dist/server/dev-span-processor.d.ts.map +1 -0
- package/dist/server/dev-warnings.d.ts +129 -0
- package/dist/server/dev-warnings.d.ts.map +1 -0
- package/dist/server/early-hints-sender.d.ts +38 -0
- package/dist/server/early-hints-sender.d.ts.map +1 -0
- package/dist/server/early-hints.d.ts +83 -0
- package/dist/server/early-hints.d.ts.map +1 -0
- package/dist/server/error-boundary-wrapper.d.ts +17 -0
- package/dist/server/error-boundary-wrapper.d.ts.map +1 -0
- package/dist/server/error-formatter.d.ts +17 -0
- package/dist/server/error-formatter.d.ts.map +1 -0
- package/dist/server/flush.d.ts +74 -0
- package/dist/server/flush.d.ts.map +1 -0
- package/dist/server/form-data.d.ts +60 -0
- package/dist/server/form-data.d.ts.map +1 -0
- package/dist/server/form-flash.d.ts +78 -0
- package/dist/server/form-flash.d.ts.map +1 -0
- package/dist/server/html-injectors.d.ts +101 -0
- package/dist/server/html-injectors.d.ts.map +1 -0
- package/dist/server/index.d.ts +54 -0
- package/dist/server/index.d.ts.map +1 -0
- package/dist/server/index.js +2925 -0
- package/dist/server/index.js.map +1 -0
- package/dist/server/instrumentation.d.ts +61 -0
- package/dist/server/instrumentation.d.ts.map +1 -0
- package/dist/server/logger.d.ts +83 -0
- package/dist/server/logger.d.ts.map +1 -0
- package/dist/server/manifest-status-resolver.d.ts +58 -0
- package/dist/server/manifest-status-resolver.d.ts.map +1 -0
- package/dist/server/metadata-render.d.ts +20 -0
- package/dist/server/metadata-render.d.ts.map +1 -0
- package/dist/server/metadata-routes.d.ts +67 -0
- package/dist/server/metadata-routes.d.ts.map +1 -0
- package/dist/server/metadata.d.ts +67 -0
- package/dist/server/metadata.d.ts.map +1 -0
- package/dist/server/middleware-runner.d.ts +21 -0
- package/dist/server/middleware-runner.d.ts.map +1 -0
- package/dist/server/nuqs-ssr-provider.d.ts +28 -0
- package/dist/server/nuqs-ssr-provider.d.ts.map +1 -0
- package/dist/server/pipeline.d.ts +81 -0
- package/dist/server/pipeline.d.ts.map +1 -0
- package/dist/server/prerender.d.ts +77 -0
- package/dist/server/prerender.d.ts.map +1 -0
- package/dist/server/primitives.d.ts +131 -0
- package/dist/server/primitives.d.ts.map +1 -0
- package/dist/server/proxy.d.ts +23 -0
- package/dist/server/proxy.d.ts.map +1 -0
- package/dist/server/request-context.d.ts +175 -0
- package/dist/server/request-context.d.ts.map +1 -0
- package/dist/server/route-element-builder.d.ts +66 -0
- package/dist/server/route-element-builder.d.ts.map +1 -0
- package/dist/server/route-handler.d.ts +35 -0
- package/dist/server/route-handler.d.ts.map +1 -0
- package/dist/server/route-matcher.d.ts +78 -0
- package/dist/server/route-matcher.d.ts.map +1 -0
- package/dist/server/rsc-entry/api-handler.d.ts +11 -0
- package/dist/server/rsc-entry/api-handler.d.ts.map +1 -0
- package/dist/server/rsc-entry/error-renderer.d.ts +30 -0
- package/dist/server/rsc-entry/error-renderer.d.ts.map +1 -0
- package/dist/server/rsc-entry/helpers.d.ts +73 -0
- package/dist/server/rsc-entry/helpers.d.ts.map +1 -0
- package/dist/server/rsc-entry/index.d.ts +11 -0
- package/dist/server/rsc-entry/index.d.ts.map +1 -0
- package/dist/server/rsc-entry/ssr-bridge.d.ts +6 -0
- package/dist/server/rsc-entry/ssr-bridge.d.ts.map +1 -0
- package/dist/server/slot-resolver.d.ts +34 -0
- package/dist/server/slot-resolver.d.ts.map +1 -0
- package/dist/server/ssr-entry.d.ts +73 -0
- package/dist/server/ssr-entry.d.ts.map +1 -0
- package/dist/server/ssr-render.d.ts +67 -0
- package/dist/server/ssr-render.d.ts.map +1 -0
- package/dist/server/status-code-resolver.d.ts +77 -0
- package/dist/server/status-code-resolver.d.ts.map +1 -0
- package/dist/server/tracing.d.ts +99 -0
- package/dist/server/tracing.d.ts.map +1 -0
- package/dist/server/tree-builder.d.ts +116 -0
- package/dist/server/tree-builder.d.ts.map +1 -0
- package/dist/server/types.d.ts +231 -0
- package/dist/server/types.d.ts.map +1 -0
- package/dist/shims/font-google.d.ts +41 -0
- package/dist/shims/font-google.d.ts.map +1 -0
- package/dist/shims/headers.d.ts +11 -0
- package/dist/shims/headers.d.ts.map +1 -0
- package/dist/shims/image.d.ts +328 -0
- package/dist/shims/image.d.ts.map +1 -0
- package/dist/shims/link.d.ts +9 -0
- package/dist/shims/link.d.ts.map +1 -0
- package/dist/shims/navigation-client.d.ts +25 -0
- package/dist/shims/navigation-client.d.ts.map +1 -0
- package/dist/shims/navigation.d.ts +25 -0
- package/dist/shims/navigation.d.ts.map +1 -0
- package/dist/utils/directive-parser.d.ts +70 -0
- package/dist/utils/directive-parser.d.ts.map +1 -0
- package/dist/utils/format.d.ts +6 -0
- package/dist/utils/format.d.ts.map +1 -0
- package/dist/utils/startup-timer.d.ts +34 -0
- package/dist/utils/startup-timer.d.ts.map +1 -0
- package/package.json +140 -0
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Instrumentation — loads and runs the user's instrumentation.ts file.
|
|
3
|
+
*
|
|
4
|
+
* instrumentation.ts is a file convention at the project root that exports:
|
|
5
|
+
* - register() — called once at server startup, before the first request
|
|
6
|
+
* - onRequestError() — called for every unhandled server error
|
|
7
|
+
* - logger — any object with info/warn/error/debug methods
|
|
8
|
+
*
|
|
9
|
+
* See design/17-logging.md §"instrumentation.ts — The Entry Point"
|
|
10
|
+
*/
|
|
11
|
+
import { type TimberLogger } from './logger.js';
|
|
12
|
+
export type InstrumentationOnRequestError = (error: unknown, request: InstrumentationRequestInfo, context: InstrumentationErrorContext) => void | Promise<void>;
|
|
13
|
+
export interface InstrumentationRequestInfo {
|
|
14
|
+
/** HTTP method: 'GET', 'POST', etc. */
|
|
15
|
+
method: string;
|
|
16
|
+
/** Request path: '/dashboard/projects/123' */
|
|
17
|
+
path: string;
|
|
18
|
+
/** Request headers as a plain object. */
|
|
19
|
+
headers: Record<string, string>;
|
|
20
|
+
}
|
|
21
|
+
export interface InstrumentationErrorContext {
|
|
22
|
+
/** Which pipeline phase the error occurred in. */
|
|
23
|
+
phase: 'proxy' | 'handler' | 'render' | 'action' | 'route';
|
|
24
|
+
/** The route pattern: '/dashboard/projects/[id]' */
|
|
25
|
+
routePath: string;
|
|
26
|
+
/** Type of route that was matched. */
|
|
27
|
+
routeType: 'page' | 'route' | 'action';
|
|
28
|
+
/** Always set — OTEL trace ID or UUID fallback. */
|
|
29
|
+
traceId: string;
|
|
30
|
+
}
|
|
31
|
+
interface InstrumentationModule {
|
|
32
|
+
register?: () => void | Promise<void>;
|
|
33
|
+
onRequestError?: InstrumentationOnRequestError;
|
|
34
|
+
logger?: TimberLogger;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Load and initialize the user's instrumentation.ts module.
|
|
38
|
+
*
|
|
39
|
+
* - Awaits register() before returning (server blocks on this).
|
|
40
|
+
* - Picks up the logger export and wires it into the framework logger.
|
|
41
|
+
* - Stores onRequestError for later invocation.
|
|
42
|
+
*
|
|
43
|
+
* @param loader - Function that dynamically imports the user's instrumentation module.
|
|
44
|
+
* Returns null if no instrumentation.ts exists.
|
|
45
|
+
*/
|
|
46
|
+
export declare function loadInstrumentation(loader: () => Promise<InstrumentationModule | null>): Promise<void>;
|
|
47
|
+
/**
|
|
48
|
+
* Call the user's onRequestError hook. Catches and logs any errors thrown
|
|
49
|
+
* by the hook itself — it must not affect the response.
|
|
50
|
+
*/
|
|
51
|
+
export declare function callOnRequestError(error: unknown, request: InstrumentationRequestInfo, context: InstrumentationErrorContext): Promise<void>;
|
|
52
|
+
/**
|
|
53
|
+
* Check if onRequestError is registered.
|
|
54
|
+
*/
|
|
55
|
+
export declare function hasOnRequestError(): boolean;
|
|
56
|
+
/**
|
|
57
|
+
* Reset instrumentation state. Test-only.
|
|
58
|
+
*/
|
|
59
|
+
export declare function resetInstrumentation(): void;
|
|
60
|
+
export {};
|
|
61
|
+
//# sourceMappingURL=instrumentation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"instrumentation.d.ts","sourceRoot":"","sources":["../../src/server/instrumentation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAa,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAI3D,MAAM,MAAM,6BAA6B,GAAG,CAC1C,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,0BAA0B,EACnC,OAAO,EAAE,2BAA2B,KACjC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAE1B,MAAM,WAAW,0BAA0B;IACzC,uCAAuC;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,8CAA8C;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb,yCAAyC;IACzC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACjC;AAED,MAAM,WAAW,2BAA2B;IAC1C,kDAAkD;IAClD,KAAK,EAAE,OAAO,GAAG,SAAS,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC;IAC3D,oDAAoD;IACpD,SAAS,EAAE,MAAM,CAAC;IAClB,sCAAsC;IACtC,SAAS,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;IACvC,mDAAmD;IACnD,OAAO,EAAE,MAAM,CAAC;CACjB;AAID,UAAU,qBAAqB;IAC7B,QAAQ,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,cAAc,CAAC,EAAE,6BAA6B,CAAC;IAC/C,MAAM,CAAC,EAAE,YAAY,CAAC;CACvB;AAWD;;;;;;;;;GASG;AACH,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,MAAM,OAAO,CAAC,qBAAqB,GAAG,IAAI,CAAC,GAClD,OAAO,CAAC,IAAI,CAAC,CAiCf;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,0BAA0B,EACnC,OAAO,EAAE,2BAA2B,GACnC,OAAO,CAAC,IAAI,CAAC,CAOf;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,OAAO,CAE3C;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,IAAI,CAG3C"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Logger — structured logging with environment-aware formatting.
|
|
3
|
+
*
|
|
4
|
+
* timber.js does not ship a logger. Users export any object with
|
|
5
|
+
* info/warn/error/debug methods from instrumentation.ts and the framework
|
|
6
|
+
* picks it up. Silent if no logger export is present.
|
|
7
|
+
*
|
|
8
|
+
* See design/17-logging.md §"Production Logging"
|
|
9
|
+
*/
|
|
10
|
+
/** Any object with standard log methods satisfies this — pino, winston, consola, console. */
|
|
11
|
+
export interface TimberLogger {
|
|
12
|
+
info(msg: string, data?: Record<string, unknown>): void;
|
|
13
|
+
warn(msg: string, data?: Record<string, unknown>): void;
|
|
14
|
+
error(msg: string, data?: Record<string, unknown>): void;
|
|
15
|
+
debug(msg: string, data?: Record<string, unknown>): void;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Set the user-provided logger. Called by the instrumentation loader
|
|
19
|
+
* when it finds a `logger` export in instrumentation.ts.
|
|
20
|
+
*/
|
|
21
|
+
export declare function setLogger(logger: TimberLogger): void;
|
|
22
|
+
/**
|
|
23
|
+
* Get the current logger, or null if none configured.
|
|
24
|
+
* Framework-internal — used at framework event points to emit structured logs.
|
|
25
|
+
*/
|
|
26
|
+
export declare function getLogger(): TimberLogger | null;
|
|
27
|
+
/** Log a completed request. Level: info. */
|
|
28
|
+
export declare function logRequestCompleted(data: {
|
|
29
|
+
method: string;
|
|
30
|
+
path: string;
|
|
31
|
+
status: number;
|
|
32
|
+
durationMs: number;
|
|
33
|
+
}): void;
|
|
34
|
+
/** Log request received. Level: debug. */
|
|
35
|
+
export declare function logRequestReceived(data: {
|
|
36
|
+
method: string;
|
|
37
|
+
path: string;
|
|
38
|
+
}): void;
|
|
39
|
+
/** Log a slow request warning. Level: warn. */
|
|
40
|
+
export declare function logSlowRequest(data: {
|
|
41
|
+
method: string;
|
|
42
|
+
path: string;
|
|
43
|
+
durationMs: number;
|
|
44
|
+
threshold: number;
|
|
45
|
+
}): void;
|
|
46
|
+
/** Log middleware short-circuit. Level: debug. */
|
|
47
|
+
export declare function logMiddlewareShortCircuit(data: {
|
|
48
|
+
method: string;
|
|
49
|
+
path: string;
|
|
50
|
+
status: number;
|
|
51
|
+
}): void;
|
|
52
|
+
/** Log unhandled error in middleware phase. Level: error. */
|
|
53
|
+
export declare function logMiddlewareError(data: {
|
|
54
|
+
method: string;
|
|
55
|
+
path: string;
|
|
56
|
+
error: unknown;
|
|
57
|
+
}): void;
|
|
58
|
+
/** Log unhandled render-phase error. Level: error. */
|
|
59
|
+
export declare function logRenderError(data: {
|
|
60
|
+
method: string;
|
|
61
|
+
path: string;
|
|
62
|
+
error: unknown;
|
|
63
|
+
}): void;
|
|
64
|
+
/** Log proxy.ts uncaught error. Level: error. */
|
|
65
|
+
export declare function logProxyError(data: {
|
|
66
|
+
error: unknown;
|
|
67
|
+
}): void;
|
|
68
|
+
/** Log waitUntil() adapter missing (once at startup). Level: warn. */
|
|
69
|
+
export declare function logWaitUntilUnsupported(): void;
|
|
70
|
+
/** Log waitUntil() promise rejection. Level: warn. */
|
|
71
|
+
export declare function logWaitUntilRejected(data: {
|
|
72
|
+
error: unknown;
|
|
73
|
+
}): void;
|
|
74
|
+
/** Log staleWhileRevalidate refetch failure. Level: warn. */
|
|
75
|
+
export declare function logSwrRefetchFailed(data: {
|
|
76
|
+
cacheKey: string;
|
|
77
|
+
error: unknown;
|
|
78
|
+
}): void;
|
|
79
|
+
/** Log cache miss. Level: debug. */
|
|
80
|
+
export declare function logCacheMiss(data: {
|
|
81
|
+
cacheKey: string;
|
|
82
|
+
}): void;
|
|
83
|
+
//# sourceMappingURL=logger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/server/logger.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAOH,6FAA6F;AAC7F,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACxD,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACxD,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACzD,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;CAC1D;AAMD;;;GAGG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAEpD;AAED;;;GAGG;AACH,wBAAgB,SAAS,IAAI,YAAY,GAAG,IAAI,CAE/C;AAsBD,4CAA4C;AAC5C,wBAAgB,mBAAmB,CAAC,IAAI,EAAE;IACxC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACpB,GAAG,IAAI,CAEP;AAED,0CAA0C;AAC1C,wBAAgB,kBAAkB,CAAC,IAAI,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAE/E;AAED,+CAA+C;AAC/C,wBAAgB,cAAc,CAAC,IAAI,EAAE;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB,GAAG,IAAI,CAEP;AAED,kDAAkD;AAClD,wBAAgB,yBAAyB,CAAC,IAAI,EAAE;IAC9C,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB,GAAG,IAAI,CAEP;AAED,6DAA6D;AAC7D,wBAAgB,kBAAkB,CAAC,IAAI,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,CAM/F;AAED,sDAAsD;AACtD,wBAAgB,cAAc,CAAC,IAAI,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,CAQ3F;AAED,iDAAiD;AACjD,wBAAgB,aAAa,CAAC,IAAI,EAAE;IAAE,KAAK,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,CAM5D;AAED,sEAAsE;AACtE,wBAAgB,uBAAuB,IAAI,IAAI,CAE9C;AAED,sDAAsD;AACtD,wBAAgB,oBAAoB,CAAC,IAAI,EAAE;IAAE,KAAK,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,CAEnE;AAED,6DAA6D;AAC7D,wBAAgB,mBAAmB,CAAC,IAAI,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,CAEpF;AAED,oCAAoC;AACpC,wBAAgB,YAAY,CAAC,IAAI,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAE7D"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Manifest-compatible status-code file resolver.
|
|
3
|
+
*
|
|
4
|
+
* The existing status-code-resolver.ts works with SegmentNode (Map-based).
|
|
5
|
+
* This module works with ManifestSegmentNode (object-based) for use at
|
|
6
|
+
* runtime in the RSC/SSR entries, where the route manifest provides
|
|
7
|
+
* plain objects instead of Maps.
|
|
8
|
+
*
|
|
9
|
+
* Supports two format families:
|
|
10
|
+
* - 'component' (default): .tsx/.jsx/.mdx status files → React rendering pipeline
|
|
11
|
+
* - 'json': .json status files → raw JSON response, no React
|
|
12
|
+
*
|
|
13
|
+
* Follows the same fallback chains as status-code-resolver.ts:
|
|
14
|
+
*
|
|
15
|
+
* **Component chain (4xx):**
|
|
16
|
+
* Pass 1 — status files (leaf → root): {status}.tsx → 4xx.tsx
|
|
17
|
+
* Pass 2 — legacy compat (leaf → root): not-found.tsx / forbidden.tsx / unauthorized.tsx
|
|
18
|
+
* Pass 3 — error.tsx (leaf → root)
|
|
19
|
+
* Pass 4 — framework default (returns null)
|
|
20
|
+
*
|
|
21
|
+
* **JSON chain (4xx):**
|
|
22
|
+
* Pass 1 — json status files (leaf → root): {status}.json → 4xx.json
|
|
23
|
+
* Pass 2 — framework default JSON (returns null, caller provides bare JSON)
|
|
24
|
+
*
|
|
25
|
+
* See design/10-error-handling.md §"Status-Code Files"
|
|
26
|
+
*/
|
|
27
|
+
import type { ManifestSegmentNode } from './route-matcher.js';
|
|
28
|
+
/** A file reference in the manifest (lazy import + path). */
|
|
29
|
+
interface ManifestFile {
|
|
30
|
+
load: () => Promise<unknown>;
|
|
31
|
+
filePath: string;
|
|
32
|
+
}
|
|
33
|
+
/** How the status-code file was matched. */
|
|
34
|
+
export type ManifestStatusFileKind = 'exact' | 'category' | 'legacy' | 'error';
|
|
35
|
+
/** Response format family for status-code resolution. */
|
|
36
|
+
export type ManifestStatusFileFormat = 'component' | 'json';
|
|
37
|
+
/** Result of resolving a status-code file from manifest segments. */
|
|
38
|
+
export interface ManifestStatusFileResolution {
|
|
39
|
+
/** The matched manifest file (has load() and filePath). */
|
|
40
|
+
file: ManifestFile;
|
|
41
|
+
/** The HTTP status code (always the original status, not the file's code). */
|
|
42
|
+
status: number;
|
|
43
|
+
/** How the file was matched. */
|
|
44
|
+
kind: ManifestStatusFileKind;
|
|
45
|
+
/** Index into the segments array where the file was found. */
|
|
46
|
+
segmentIndex: number;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Resolve the status-code file to render for a given HTTP status code,
|
|
50
|
+
* using manifest segment nodes (plain objects, not Maps).
|
|
51
|
+
*
|
|
52
|
+
* @param status - The HTTP status code (4xx or 5xx).
|
|
53
|
+
* @param segments - The matched segment chain from root (index 0) to leaf (last).
|
|
54
|
+
* @param format - The response format family ('component' or 'json'). Defaults to 'component'.
|
|
55
|
+
*/
|
|
56
|
+
export declare function resolveManifestStatusFile(status: number, segments: ReadonlyArray<ManifestSegmentNode>, format?: ManifestStatusFileFormat): ManifestStatusFileResolution | null;
|
|
57
|
+
export {};
|
|
58
|
+
//# sourceMappingURL=manifest-status-resolver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manifest-status-resolver.d.ts","sourceRoot":"","sources":["../../src/server/manifest-status-resolver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAI9D,6DAA6D;AAC7D,UAAU,YAAY;IACpB,IAAI,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7B,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,4CAA4C;AAC5C,MAAM,MAAM,sBAAsB,GAC9B,OAAO,GACP,UAAU,GACV,QAAQ,GACR,OAAO,CAAC;AAEZ,yDAAyD;AACzD,MAAM,MAAM,wBAAwB,GAAG,WAAW,GAAG,MAAM,CAAC;AAE5D,qEAAqE;AACrE,MAAM,WAAW,4BAA4B;IAC3C,2DAA2D;IAC3D,IAAI,EAAE,YAAY,CAAC;IACnB,8EAA8E;IAC9E,MAAM,EAAE,MAAM,CAAC;IACf,gCAAgC;IAChC,IAAI,EAAE,sBAAsB,CAAC;IAC7B,8DAA8D;IAC9D,YAAY,EAAE,MAAM,CAAC;CACtB;AAYD;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,aAAa,CAAC,mBAAmB,CAAC,EAC5C,MAAM,GAAE,wBAAsC,GAC7C,4BAA4B,GAAG,IAAI,CAcrC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Metadata rendering — converts resolved Metadata into HeadElement descriptors.
|
|
3
|
+
*
|
|
4
|
+
* Extracted from metadata.ts to keep files under 500 lines.
|
|
5
|
+
*
|
|
6
|
+
* See design/16-metadata.md
|
|
7
|
+
*/
|
|
8
|
+
import type { Metadata } from './types.js';
|
|
9
|
+
import type { HeadElement } from './metadata.js';
|
|
10
|
+
/**
|
|
11
|
+
* Convert resolved metadata into an array of head element descriptors.
|
|
12
|
+
*
|
|
13
|
+
* Each descriptor has a `tag` ('title', 'meta', 'link') and either
|
|
14
|
+
* `content` (for <title>) or `attrs` (for <meta>/<link>).
|
|
15
|
+
*
|
|
16
|
+
* The framework's MetadataResolver component consumes these descriptors
|
|
17
|
+
* and renders them into the <head>.
|
|
18
|
+
*/
|
|
19
|
+
export declare function renderMetadataToElements(metadata: Metadata): HeadElement[];
|
|
20
|
+
//# sourceMappingURL=metadata-render.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metadata-render.d.ts","sourceRoot":"","sources":["../../src/server/metadata-render.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAIjD;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,QAAQ,GAAG,WAAW,EAAE,CAkI1E"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Metadata route classification for timber.js.
|
|
3
|
+
*
|
|
4
|
+
* Metadata routes are file-based endpoints that generate well-known URLs for
|
|
5
|
+
* crawlers and browsers (sitemap.xml, robots.txt, OG images, etc.).
|
|
6
|
+
*
|
|
7
|
+
* These routes run through proxy.ts but NOT through middleware.ts or access.ts —
|
|
8
|
+
* they are public endpoints by nature.
|
|
9
|
+
*
|
|
10
|
+
* See design/16-metadata.md §"Metadata Routes"
|
|
11
|
+
*/
|
|
12
|
+
/** Classification of a metadata route file. */
|
|
13
|
+
export interface MetadataRouteInfo {
|
|
14
|
+
/** The metadata route type. */
|
|
15
|
+
type: MetadataRouteType;
|
|
16
|
+
/** The content type to serve this route with. */
|
|
17
|
+
contentType: string;
|
|
18
|
+
/** Whether this route can appear in nested segments (not just app root). */
|
|
19
|
+
nestable: boolean;
|
|
20
|
+
}
|
|
21
|
+
export type MetadataRouteType = 'sitemap' | 'robots' | 'manifest' | 'favicon' | 'icon' | 'opengraph-image' | 'twitter-image' | 'apple-icon';
|
|
22
|
+
/**
|
|
23
|
+
* All recognized metadata route file conventions.
|
|
24
|
+
*
|
|
25
|
+
* Each entry maps a base file name (without extension) to its route info.
|
|
26
|
+
* The extensions determine whether the file is static or dynamic.
|
|
27
|
+
*
|
|
28
|
+
* Static extensions: .xml, .txt, .json, .png, .jpg, .ico, .svg
|
|
29
|
+
* Dynamic extensions: .ts, .tsx
|
|
30
|
+
*/
|
|
31
|
+
export declare const METADATA_ROUTE_CONVENTIONS: Record<string, {
|
|
32
|
+
type: MetadataRouteType;
|
|
33
|
+
contentType: string;
|
|
34
|
+
nestable: boolean;
|
|
35
|
+
staticExtensions: string[];
|
|
36
|
+
dynamicExtensions: string[];
|
|
37
|
+
/** The URL path this file serves at (relative to segment). */
|
|
38
|
+
servePath: string;
|
|
39
|
+
}>;
|
|
40
|
+
/**
|
|
41
|
+
* Classify a file name as a metadata route, or return null if it's not one.
|
|
42
|
+
*
|
|
43
|
+
* @param fileName - The full file name including extension (e.g. "sitemap.xml", "icon.tsx")
|
|
44
|
+
* @returns Classification info, or null if not a metadata route
|
|
45
|
+
*/
|
|
46
|
+
export declare function classifyMetadataRoute(fileName: string): MetadataRouteInfo | null;
|
|
47
|
+
/**
|
|
48
|
+
* Get the serve path for a metadata route type.
|
|
49
|
+
*
|
|
50
|
+
* @param type - The metadata route type
|
|
51
|
+
* @returns The URL path fragment this route serves at
|
|
52
|
+
*/
|
|
53
|
+
export declare function getMetadataRouteServePath(type: MetadataRouteType): string;
|
|
54
|
+
/**
|
|
55
|
+
* Get the auto-link tags to inject into <head> for metadata route files
|
|
56
|
+
* discovered in a segment.
|
|
57
|
+
*
|
|
58
|
+
* @param type - The metadata route type
|
|
59
|
+
* @param href - The resolved URL path to the metadata route
|
|
60
|
+
* @returns An object with tag/attrs for the <head>, or null if no auto-link
|
|
61
|
+
*/
|
|
62
|
+
export declare function getMetadataRouteAutoLink(type: MetadataRouteType, href: string): {
|
|
63
|
+
rel: string;
|
|
64
|
+
href: string;
|
|
65
|
+
type?: string;
|
|
66
|
+
} | null;
|
|
67
|
+
//# sourceMappingURL=metadata-routes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metadata-routes.d.ts","sourceRoot":"","sources":["../../src/server/metadata-routes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,+CAA+C;AAC/C,MAAM,WAAW,iBAAiB;IAChC,+BAA+B;IAC/B,IAAI,EAAE,iBAAiB,CAAC;IACxB,iDAAiD;IACjD,WAAW,EAAE,MAAM,CAAC;IACpB,4EAA4E;IAC5E,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,MAAM,iBAAiB,GACzB,SAAS,GACT,QAAQ,GACR,UAAU,GACV,SAAS,GACT,MAAM,GACN,iBAAiB,GACjB,eAAe,GACf,YAAY,CAAC;AAIjB;;;;;;;;GAQG;AACH,eAAO,MAAM,0BAA0B,EAAE,MAAM,CAC7C,MAAM,EACN;IACE,IAAI,EAAE,iBAAiB,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,8DAA8D;IAC9D,SAAS,EAAE,MAAM,CAAC;CACnB,CAkEF,CAAC;AAIF;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,iBAAiB,GAAG,IAAI,CAoBhF;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,iBAAiB,GAAG,MAAM,CAKzE;AAED;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,iBAAiB,EACvB,IAAI,EAAE,MAAM,GACX;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAWrD"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Metadata resolution for timber.js.
|
|
3
|
+
*
|
|
4
|
+
* Resolves metadata from a segment chain (layouts + page), applies title
|
|
5
|
+
* templates, shallow-merges entries, and produces head element descriptors.
|
|
6
|
+
*
|
|
7
|
+
* Resolution happens inside the render pass — React.cache is active,
|
|
8
|
+
* metadata is outside Suspense, and the flush point guarantees completeness.
|
|
9
|
+
*
|
|
10
|
+
* Rendering (Metadata → HeadElement[]) is in metadata-render.ts.
|
|
11
|
+
*
|
|
12
|
+
* See design/16-metadata.md
|
|
13
|
+
*/
|
|
14
|
+
import type { Metadata } from './types.js';
|
|
15
|
+
export { renderMetadataToElements } from './metadata-render.js';
|
|
16
|
+
/** A single metadata entry from a layout or page module. */
|
|
17
|
+
export interface SegmentMetadataEntry {
|
|
18
|
+
/** The resolved metadata object (from static or async `metadata` export). */
|
|
19
|
+
metadata: Metadata;
|
|
20
|
+
/** Whether this entry is from the page (leaf) module. */
|
|
21
|
+
isPage: boolean;
|
|
22
|
+
}
|
|
23
|
+
/** Options for resolveMetadata. */
|
|
24
|
+
export interface ResolveMetadataOptions {
|
|
25
|
+
/**
|
|
26
|
+
* When true, the page's metadata is discarded (simulating a render error)
|
|
27
|
+
* and `<meta name="robots" content="noindex">` is injected.
|
|
28
|
+
*/
|
|
29
|
+
errorState?: boolean;
|
|
30
|
+
}
|
|
31
|
+
/** A rendered head element descriptor. */
|
|
32
|
+
export interface HeadElement {
|
|
33
|
+
tag: 'title' | 'meta' | 'link';
|
|
34
|
+
content?: string;
|
|
35
|
+
attrs?: Record<string, string>;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Resolve a title value with an optional template.
|
|
39
|
+
*
|
|
40
|
+
* - string → apply template if present
|
|
41
|
+
* - { absolute: '...' } → use as-is, skip template
|
|
42
|
+
* - { default: '...' } → use as fallback (no template applied)
|
|
43
|
+
* - undefined → undefined
|
|
44
|
+
*/
|
|
45
|
+
export declare function resolveTitle(title: Metadata['title'], template: string | undefined): string | undefined;
|
|
46
|
+
/**
|
|
47
|
+
* Resolve metadata from a segment chain.
|
|
48
|
+
*
|
|
49
|
+
* Processes entries from root layout to page (in segment order).
|
|
50
|
+
* The merge algorithm:
|
|
51
|
+
* 1. Shallow-merge all keys except title (later wins)
|
|
52
|
+
* 2. Track the most recent title template
|
|
53
|
+
* 3. Resolve the final title using the template
|
|
54
|
+
*
|
|
55
|
+
* In error state, the page entry is dropped and noindex is injected.
|
|
56
|
+
*
|
|
57
|
+
* See design/16-metadata.md §"Merge Algorithm"
|
|
58
|
+
*/
|
|
59
|
+
export declare function resolveMetadata(entries: SegmentMetadataEntry[], options?: ResolveMetadataOptions): Metadata;
|
|
60
|
+
/**
|
|
61
|
+
* Resolve relative URLs in metadata fields against metadataBase.
|
|
62
|
+
*
|
|
63
|
+
* Returns a new metadata object with URLs resolved. Absolute URLs are not modified.
|
|
64
|
+
* If metadataBase is not set, returns the metadata unchanged.
|
|
65
|
+
*/
|
|
66
|
+
export declare function resolveMetadataUrls(metadata: Metadata): Metadata;
|
|
67
|
+
//# sourceMappingURL=metadata.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metadata.d.ts","sourceRoot":"","sources":["../../src/server/metadata.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAI3C,OAAO,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAIhE,4DAA4D;AAC5D,MAAM,WAAW,oBAAoB;IACnC,6EAA6E;IAC7E,QAAQ,EAAE,QAAQ,CAAC;IACnB,yDAAyD;IACzD,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,mCAAmC;AACnC,MAAM,WAAW,sBAAsB;IACrC;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,0CAA0C;AAC1C,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAChC;AAID;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAC1B,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,EACxB,QAAQ,EAAE,MAAM,GAAG,SAAS,GAC3B,MAAM,GAAG,SAAS,CAmBpB;AAID;;;;;;;;;;;;GAYG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,oBAAoB,EAAE,EAC/B,OAAO,GAAE,sBAA2B,GACnC,QAAQ,CAwDV;AAmBD;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,GAAG,QAAQ,CAmFhE"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Middleware runner — executes a route's middleware.ts before rendering.
|
|
3
|
+
*
|
|
4
|
+
* Only the leaf route's middleware runs. There is no middleware chain.
|
|
5
|
+
* Middleware does NOT have next() — it either short-circuits with a Response
|
|
6
|
+
* or returns void to continue to access checks + render.
|
|
7
|
+
*
|
|
8
|
+
* See design/07-routing.md §"middleware.ts"
|
|
9
|
+
*/
|
|
10
|
+
import type { MiddlewareContext } from './types.js';
|
|
11
|
+
/** Signature of a middleware.ts default export. */
|
|
12
|
+
export type MiddlewareFn = (ctx: MiddlewareContext) => Response | void | Promise<Response | void>;
|
|
13
|
+
/**
|
|
14
|
+
* Run a route's middleware function.
|
|
15
|
+
*
|
|
16
|
+
* @param middlewareFn - The default export from the route's middleware.ts
|
|
17
|
+
* @param ctx - The middleware context (req, params, headers, requestHeaders, searchParams)
|
|
18
|
+
* @returns A Response if middleware short-circuited, or undefined to continue
|
|
19
|
+
*/
|
|
20
|
+
export declare function runMiddleware(middlewareFn: MiddlewareFn, ctx: MiddlewareContext): Promise<Response | undefined>;
|
|
21
|
+
//# sourceMappingURL=middleware-runner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"middleware-runner.d.ts","sourceRoot":"","sources":["../../src/server/middleware-runner.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEpD,mDAAmD;AACnD,MAAM,MAAM,YAAY,GAAG,CAAC,GAAG,EAAE,iBAAiB,KAAK,QAAQ,GAAG,IAAI,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC;AAElG;;;;;;GAMG;AACH,wBAAsB,aAAa,CACjC,YAAY,EAAE,YAAY,EAC1B,GAAG,EAAE,iBAAiB,GACrB,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC,CAM/B"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Server-side nuqs adapter provider for SSR rendering.
|
|
3
|
+
*
|
|
4
|
+
* During SSR, `'use client'` components that call nuqs hooks (useQueryStates,
|
|
5
|
+
* useQueryState) need the nuqs adapter context. The client adapter
|
|
6
|
+
* (TimberNuqsAdapter) relies on `window` and React hooks that are
|
|
7
|
+
* client-only. This provider supplies a static, SSR-safe adapter
|
|
8
|
+
* that feeds the current request's search params into the nuqs context.
|
|
9
|
+
*
|
|
10
|
+
* The returned component wraps the React tree so that nuqs hooks render
|
|
11
|
+
* the correct initial values during server-side rendering. On the client,
|
|
12
|
+
* TimberNuqsAdapter (injected by browser-entry.ts) takes over.
|
|
13
|
+
*
|
|
14
|
+
* Design doc: design/23-search-params.md §"Custom Adapter"
|
|
15
|
+
*/
|
|
16
|
+
import { type ReactNode } from 'react';
|
|
17
|
+
/**
|
|
18
|
+
* Wrap the SSR element tree with a nuqs adapter context.
|
|
19
|
+
*
|
|
20
|
+
* Called by ssr-entry.ts before passing the element to renderSsrStream.
|
|
21
|
+
* Takes the NavContext search params and provides them to nuqs hooks
|
|
22
|
+
* running during SSR so they render with the correct initial values.
|
|
23
|
+
*
|
|
24
|
+
* @param searchParamsRecord - The request's search params as a plain record
|
|
25
|
+
* @param children - The React element tree to wrap
|
|
26
|
+
*/
|
|
27
|
+
export declare function withNuqsSsrAdapter(searchParamsRecord: Record<string, string>, children: ReactNode): ReactNode;
|
|
28
|
+
//# sourceMappingURL=nuqs-ssr-provider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nuqs-ssr-provider.d.ts","sourceRoot":"","sources":["../../src/server/nuqs-ssr-provider.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAiB,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AA2BtD;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAChC,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC1C,QAAQ,EAAE,SAAS,GAClB,SAAS,CAMX"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Request pipeline — the central dispatch for all timber.js requests.
|
|
3
|
+
*
|
|
4
|
+
* Pipeline stages (in order):
|
|
5
|
+
* proxy.ts → canonicalize → route match → 103 Early Hints → middleware.ts → render
|
|
6
|
+
*
|
|
7
|
+
* Each stage is a pure function or returns a Response to short-circuit.
|
|
8
|
+
* Each request gets a trace ID, structured logging, and OTEL spans.
|
|
9
|
+
*
|
|
10
|
+
* See design/07-routing.md §"Request Lifecycle", design/02-rendering-pipeline.md §"Request Flow",
|
|
11
|
+
* and design/17-logging.md §"Production Logging"
|
|
12
|
+
*/
|
|
13
|
+
import { type ProxyExport } from './proxy.js';
|
|
14
|
+
import { type MiddlewareFn } from './middleware-runner.js';
|
|
15
|
+
import type { SegmentNode } from '#/routing/types.js';
|
|
16
|
+
/** Result of matching a canonical pathname against the route tree. */
|
|
17
|
+
export interface RouteMatch {
|
|
18
|
+
/** The matched segment chain from root to leaf. */
|
|
19
|
+
segments: SegmentNode[];
|
|
20
|
+
/** Extracted route params (catch-all segments produce string[]). */
|
|
21
|
+
params: Record<string, string | string[]>;
|
|
22
|
+
/** The leaf segment's middleware.ts export, if any. */
|
|
23
|
+
middleware?: MiddlewareFn;
|
|
24
|
+
}
|
|
25
|
+
/** Function that matches a canonical pathname to a route. */
|
|
26
|
+
export type RouteMatcher = (pathname: string) => RouteMatch | null;
|
|
27
|
+
/** Function that matches a canonical pathname to a metadata route. */
|
|
28
|
+
export type MetadataRouteMatcher = (pathname: string) => import('./route-matcher.js').MetadataRouteMatch | null;
|
|
29
|
+
/** Context for intercepting route resolution (modal pattern). */
|
|
30
|
+
export interface InterceptionContext {
|
|
31
|
+
/** The URL the user is navigating TO (the intercepted route). */
|
|
32
|
+
targetPathname: string;
|
|
33
|
+
}
|
|
34
|
+
/** Function that renders a matched route into a Response. */
|
|
35
|
+
export type RouteRenderer = (req: Request, match: RouteMatch, responseHeaders: Headers, requestHeaderOverlay: Headers, interception?: InterceptionContext) => Response | Promise<Response>;
|
|
36
|
+
/** Function that sends 103 Early Hints for a matched route. */
|
|
37
|
+
export type EarlyHintsEmitter = (match: RouteMatch, req: Request, responseHeaders: Headers) => void | Promise<void>;
|
|
38
|
+
export interface PipelineConfig {
|
|
39
|
+
/** The proxy.ts default export (function or array). Undefined if no proxy.ts. */
|
|
40
|
+
proxy?: ProxyExport;
|
|
41
|
+
/** Lazy loader for proxy.ts — called per-request so HMR updates take effect. */
|
|
42
|
+
proxyLoader?: () => Promise<{
|
|
43
|
+
default: ProxyExport;
|
|
44
|
+
}>;
|
|
45
|
+
/** Route matcher — resolves a canonical pathname to a RouteMatch. */
|
|
46
|
+
matchRoute: RouteMatcher;
|
|
47
|
+
/** Metadata route matcher — resolves metadata route pathnames (sitemap.xml, robots.txt, etc.) */
|
|
48
|
+
matchMetadataRoute?: MetadataRouteMatcher;
|
|
49
|
+
/** Renderer — produces the final Response for a matched route. */
|
|
50
|
+
render: RouteRenderer;
|
|
51
|
+
/** Renderer for no-match 404 — renders 404.tsx in root layout. */
|
|
52
|
+
renderNoMatch?: (req: Request, responseHeaders: Headers) => Response | Promise<Response>;
|
|
53
|
+
/** Early hints emitter — fires 103 hints after route match, before middleware. */
|
|
54
|
+
earlyHints?: EarlyHintsEmitter;
|
|
55
|
+
/** Whether to strip trailing slashes during canonicalization. Default: true. */
|
|
56
|
+
stripTrailingSlash?: boolean;
|
|
57
|
+
/** Slow request threshold in ms. Requests exceeding this emit a warning. 0 to disable. Default: 3000. */
|
|
58
|
+
slowRequestMs?: number;
|
|
59
|
+
/**
|
|
60
|
+
* Interception rewrites — conditional routes for the modal pattern.
|
|
61
|
+
* Generated at build time from intercepting route directories.
|
|
62
|
+
* See design/07-routing.md §"Intercepting Routes"
|
|
63
|
+
*/
|
|
64
|
+
interceptionRewrites?: import('#/routing/interception.js').InterceptionRewrite[];
|
|
65
|
+
/**
|
|
66
|
+
* Dev pipeline error callback — called when a pipeline phase (proxy,
|
|
67
|
+
* middleware, render) catches an unhandled error. Used to wire the error
|
|
68
|
+
* into the Vite browser error overlay in dev mode.
|
|
69
|
+
*
|
|
70
|
+
* Undefined in production — zero overhead.
|
|
71
|
+
*/
|
|
72
|
+
onPipelineError?: (error: Error, phase: string) => void;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Create the request handler from a pipeline configuration.
|
|
76
|
+
*
|
|
77
|
+
* Returns a function that processes an incoming Request through all pipeline stages
|
|
78
|
+
* and produces a Response. This is the top-level entry point for the server.
|
|
79
|
+
*/
|
|
80
|
+
export declare function createPipeline(config: PipelineConfig): (req: Request) => Promise<Response>;
|
|
81
|
+
//# sourceMappingURL=pipeline.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../../src/server/pipeline.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,EAAY,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,EAAiB,KAAK,YAAY,EAAE,MAAM,wBAAwB,CAAC;AA6B1E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAItD,sEAAsE;AACtE,MAAM,WAAW,UAAU;IACzB,mDAAmD;IACnD,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,oEAAoE;IACpE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC;IAC1C,uDAAuD;IACvD,UAAU,CAAC,EAAE,YAAY,CAAC;CAC3B;AAED,6DAA6D;AAC7D,MAAM,MAAM,YAAY,GAAG,CAAC,QAAQ,EAAE,MAAM,KAAK,UAAU,GAAG,IAAI,CAAC;AAEnE,sEAAsE;AACtE,MAAM,MAAM,oBAAoB,GAAG,CACjC,QAAQ,EAAE,MAAM,KACb,OAAO,oBAAoB,EAAE,kBAAkB,GAAG,IAAI,CAAC;AAE5D,iEAAiE;AACjE,MAAM,WAAW,mBAAmB;IAClC,iEAAiE;IACjE,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,6DAA6D;AAC7D,MAAM,MAAM,aAAa,GAAG,CAC1B,GAAG,EAAE,OAAO,EACZ,KAAK,EAAE,UAAU,EACjB,eAAe,EAAE,OAAO,EACxB,oBAAoB,EAAE,OAAO,EAC7B,YAAY,CAAC,EAAE,mBAAmB,KAC/B,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;AAElC,+DAA+D;AAC/D,MAAM,MAAM,iBAAiB,GAAG,CAC9B,KAAK,EAAE,UAAU,EACjB,GAAG,EAAE,OAAO,EACZ,eAAe,EAAE,OAAO,KACrB,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAI1B,MAAM,WAAW,cAAc;IAC7B,iFAAiF;IACjF,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,gFAAgF;IAChF,WAAW,CAAC,EAAE,MAAM,OAAO,CAAC;QAAE,OAAO,EAAE,WAAW,CAAA;KAAE,CAAC,CAAC;IACtD,qEAAqE;IACrE,UAAU,EAAE,YAAY,CAAC;IACzB,iGAAiG;IACjG,kBAAkB,CAAC,EAAE,oBAAoB,CAAC;IAC1C,kEAAkE;IAClE,MAAM,EAAE,aAAa,CAAC;IACtB,kEAAkE;IAClE,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,eAAe,EAAE,OAAO,KAAK,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IACzF,kFAAkF;IAClF,UAAU,CAAC,EAAE,iBAAiB,CAAC;IAC/B,gFAAgF;IAChF,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,yGAAyG;IACzG,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;OAIG;IACH,oBAAoB,CAAC,EAAE,OAAO,2BAA2B,EAAE,mBAAmB,EAAE,CAAC;IACjF;;;;;;OAMG;IACH,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACzD;AAID;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,cAAc,GAAG,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAmR1F"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pre-rendering types and utilities.
|
|
3
|
+
*
|
|
4
|
+
* A `prerender.ts` file in a route segment signals the framework to
|
|
5
|
+
* pre-render the route's shell at build time. This module defines the
|
|
6
|
+
* types that a user exports from `prerender.ts` and utilities for
|
|
7
|
+
* loading and validating those exports.
|
|
8
|
+
*
|
|
9
|
+
* Design doc: design/15-future-prerendering.md
|
|
10
|
+
*/
|
|
11
|
+
/**
|
|
12
|
+
* The shape of a prerender.ts module's exports.
|
|
13
|
+
*
|
|
14
|
+
* ```ts
|
|
15
|
+
* // app/docs/[slug]/prerender.ts
|
|
16
|
+
* export async function generateParams() {
|
|
17
|
+
* return docs.map(d => ({ slug: d.slug }))
|
|
18
|
+
* }
|
|
19
|
+
* export const ttl = '1h'
|
|
20
|
+
* export const tags = ['docs']
|
|
21
|
+
* ```
|
|
22
|
+
*/
|
|
23
|
+
export interface PrerenderConfig {
|
|
24
|
+
/**
|
|
25
|
+
* Generate the set of params to pre-render at build time.
|
|
26
|
+
* Required for dynamic segments (`[param]`).
|
|
27
|
+
* Optional for static segments (the single URL is pre-rendered automatically).
|
|
28
|
+
*/
|
|
29
|
+
generateParams?: () => Promise<Record<string, string>[]> | Record<string, string>[];
|
|
30
|
+
/**
|
|
31
|
+
* How long the pre-rendered shell is considered fresh.
|
|
32
|
+
* Accepts duration strings ('30s', '5m', '1h', '2d', '1w') or seconds as a number.
|
|
33
|
+
* Default: Infinity (cache until explicit invalidation).
|
|
34
|
+
*/
|
|
35
|
+
ttl?: string | number;
|
|
36
|
+
/**
|
|
37
|
+
* Invalidation tags. Calling `revalidateTag('docs')` purges all
|
|
38
|
+
* pre-rendered shells with that tag.
|
|
39
|
+
*/
|
|
40
|
+
tags?: string[];
|
|
41
|
+
/**
|
|
42
|
+
* Fallback strategy for dynamic routes without `generateParams`.
|
|
43
|
+
* Only valid in `output: 'static'` mode.
|
|
44
|
+
* - `'shell'`: emit a single pre-rendered shell that serves as client-side fallback
|
|
45
|
+
*/
|
|
46
|
+
fallback?: 'shell';
|
|
47
|
+
}
|
|
48
|
+
export interface ResolvedPrerenderConfig {
|
|
49
|
+
/** TTL in seconds. Infinity if not set. */
|
|
50
|
+
ttlSeconds: number;
|
|
51
|
+
/** Invalidation tags */
|
|
52
|
+
tags: string[];
|
|
53
|
+
/** The generateParams function, if provided */
|
|
54
|
+
generateParams?: () => Promise<Record<string, string>[]> | Record<string, string>[];
|
|
55
|
+
/** Fallback strategy */
|
|
56
|
+
fallback?: 'shell';
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Resolve raw prerender.ts exports into a normalized config.
|
|
60
|
+
*
|
|
61
|
+
* Validates:
|
|
62
|
+
* - `ttl` is a valid duration string or number
|
|
63
|
+
* - `tags` is an array of strings
|
|
64
|
+
* - `fallback` is 'shell' or undefined
|
|
65
|
+
*/
|
|
66
|
+
export declare function resolvePrerenderConfig(raw: PrerenderConfig): ResolvedPrerenderConfig;
|
|
67
|
+
export interface PrerenderDiagnostic {
|
|
68
|
+
type: 'DYNAMIC_SEGMENT_NO_PARAMS';
|
|
69
|
+
segmentPath: string;
|
|
70
|
+
message: string;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Check if a dynamic segment has `generateParams` when prerender.ts is present.
|
|
74
|
+
* If not, emit a diagnostic — the route falls back to SSR.
|
|
75
|
+
*/
|
|
76
|
+
export declare function checkDynamicSegmentParams(segmentPath: string, isDynamic: boolean, hasGenerateParams: boolean, fallback?: 'shell'): PrerenderDiagnostic | null;
|
|
77
|
+
//# sourceMappingURL=prerender.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prerender.d.ts","sourceRoot":"","sources":["../../src/server/prerender.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAQH;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,eAAe;IAC9B;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;IAEpF;;;;OAIG;IACH,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAEtB;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAEhB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAMD,MAAM,WAAW,uBAAuB;IACtC,2CAA2C;IAC3C,UAAU,EAAE,MAAM,CAAC;IACnB,wBAAwB;IACxB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,+CAA+C;IAC/C,cAAc,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;IACpF,wBAAwB;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,eAAe,GAAG,uBAAuB,CAsBpF;AAMD,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,2BAA2B,CAAC;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,OAAO,EAClB,iBAAiB,EAAE,OAAO,EAC1B,QAAQ,CAAC,EAAE,OAAO,GACjB,mBAAmB,GAAG,IAAI,CAc5B"}
|