@reckona/mreact-router 0.0.188 → 0.0.190
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/README.md +16 -3
- package/bin/mreact-router.js +23 -0
- package/dist/adapters/aws-lambda.d.ts +33 -13
- package/dist/adapters/aws-lambda.d.ts.map +1 -1
- package/dist/adapters/aws-lambda.js +128 -20
- package/dist/adapters/aws-lambda.js.map +1 -1
- package/dist/adapters/cloudflare.d.ts +18 -0
- package/dist/adapters/cloudflare.d.ts.map +1 -1
- package/dist/adapters/cloudflare.js.map +1 -1
- package/dist/adapters/edge.d.ts +2 -0
- package/dist/adapters/edge.d.ts.map +1 -1
- package/dist/adapters/edge.js.map +1 -1
- package/dist/adapters/node.d.ts +16 -2
- package/dist/adapters/node.d.ts.map +1 -1
- package/dist/adapters/node.js.map +1 -1
- package/dist/cache.d.ts +8 -0
- package/dist/cache.d.ts.map +1 -1
- package/dist/cache.js +34 -13
- package/dist/cache.js.map +1 -1
- package/dist/cli-options.d.ts +1 -1
- package/dist/cli-options.d.ts.map +1 -1
- package/dist/cli-options.js +21 -3
- package/dist/cli-options.js.map +1 -1
- package/dist/cli.js +0 -0
- package/dist/client.d.ts +1 -1
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +1 -0
- package/dist/client.js.map +1 -1
- package/dist/config.d.ts +4 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +6 -2
- package/dist/config.js.map +1 -1
- package/dist/index.d.ts +19 -16
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +15 -5
- package/dist/index.js.map +1 -1
- package/dist/link.d.ts +22 -1
- package/dist/link.d.ts.map +1 -1
- package/dist/link.js +130 -5
- package/dist/link.js.map +1 -1
- package/dist/render.d.ts.map +1 -1
- package/dist/render.js +514 -517
- package/dist/render.js.map +1 -1
- package/dist/request.d.ts +10 -0
- package/dist/request.d.ts.map +1 -0
- package/dist/request.js +6 -0
- package/dist/request.js.map +1 -0
- package/dist/typed-routes.d.ts +4 -5
- package/dist/typed-routes.d.ts.map +1 -1
- package/dist/typed-routes.js.map +1 -1
- package/dist/vite.d.ts +6 -0
- package/dist/vite.d.ts.map +1 -1
- package/dist/vite.js +4 -1
- package/dist/vite.js.map +1 -1
- package/package.json +19 -13
- package/src/adapters/aws-lambda.ts +227 -56
- package/src/adapters/cloudflare.ts +59 -0
- package/src/adapters/edge.ts +14 -0
- package/src/adapters/node.ts +44 -2
- package/src/cache.ts +39 -17
- package/src/cli-options.ts +28 -6
- package/src/client.ts +2 -1
- package/src/config.ts +10 -2
- package/src/index.ts +56 -10
- package/src/link.ts +205 -10
- package/src/render.ts +5 -7
- package/src/request.ts +35 -0
- package/src/typed-routes.ts +4 -4
- package/src/vite.ts +30 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aws-lambda.js","sourceRoot":"","sources":["../../src/adapters/aws-lambda.ts"],"names":[],"mappings":"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","sourcesContent":["import { Buffer } from \"node:buffer\";\nimport { createHash } from \"node:crypto\";\nimport { access, lstat, mkdir, readFile, readlink, symlink } from \"node:fs/promises\";\nimport { tmpdir } from \"node:os\";\nimport { dirname, join } from \"node:path\";\nimport type { AppRouterServerActionOptions } from \"../actions.js\";\nimport type { AppRouterCache } from \"../cache.js\";\nimport type { AppRouterImportPolicy } from \"../import-policy.js\";\nimport {\n normalizeBuiltAppRuntimePreloadStrategy,\n type NormalizedBuiltAppRuntimePreloadStrategy,\n} from \"../preload-policy.js\";\nimport {\n emitRouterLog,\n logDurationMs,\n logError,\n logNow,\n requestLogFields,\n type AppRouterLogger,\n type RouterRequestLogFields,\n} from \"../logger.js\";\nimport type { AppRouterResponseHook } from \"../render.js\";\nimport type { RouterInstrumentation } from \"../trace.js\";\n\n/** Re-exports router instrumentation hooks for AWS Lambda handlers. */\nexport type { RouterInstrumentation } from \"../trace.js\";\n/** Re-exports app-router import policy controls for AWS Lambda handlers. */\nexport type { AppRouterImportPolicy } from \"../import-policy.js\";\nimport {\n createBuiltRequestRuntime,\n preloadBuiltAppRuntime,\n resolveRequestHost,\n warnIfImplicitHostTrust,\n type AppRouterPrerenderStore,\n type RequestHostPolicy,\n type ResponseSinkStrategy,\n} from \"../serve.js\";\n\n/**\n * Represents the AWS API Gateway HTTP API v2 event consumed by buffered handlers.\n */\nexport interface AwsLambdaHttpEventV2 {\n body?: string | undefined;\n cookies?: string[] | undefined;\n headers?: Record<string, string | undefined> | undefined;\n isBase64Encoded?: boolean | undefined;\n rawPath?: string | undefined;\n rawQueryString?: string | undefined;\n requestContext?: {\n http?: {\n method?: string | undefined;\n protocol?: string | undefined;\n } | undefined;\n } | undefined;\n version?: \"2.0\" | string | undefined;\n}\n\n/**\n * Represents the AWS API Gateway HTTP API v2 result returned by buffered handlers.\n */\nexport interface AwsLambdaHttpResultV2 {\n body: string;\n cookies?: string[] | undefined;\n headers?: Record<string, string> | undefined;\n isBase64Encoded: boolean;\n statusCode: number;\n}\n\n/**\n * Describes response metadata passed to Lambda streaming response helpers.\n */\nexport interface AwsLambdaStreamingResponseMetadata {\n cookies?: string[] | undefined;\n headers: Record<string, string>;\n statusCode: number;\n}\n\n/**\n * Defines the writable stream interface used by Lambda streaming handlers.\n */\nexport interface AwsLambdaStreamingResponseStream {\n destroy?: ((error?: unknown) => void) | undefined;\n end(): void;\n once?: ((event: \"drain\", listener: () => void) => unknown) | undefined;\n write(chunk: string | Uint8Array): boolean;\n}\n\n/**\n * Configures AWS Lambda request handlers for built app-router output.\n */\nexport interface AwsLambdaRequestHandlerOptions {\n allowedHosts?: readonly string[] | undefined;\n errorHandler?:\n | ((error: unknown) => {\n body: string;\n headers?: Record<string, string>;\n status: number;\n })\n | undefined;\n hostPolicy?: RequestHostPolicy | undefined;\n hostname?: string | undefined;\n importPolicy?: AwsLambdaImportPolicy | undefined;\n instrumentation?: RouterInstrumentation | undefined;\n logger?: AppRouterLogger | undefined;\n onResponse?: AppRouterResponseHook | undefined;\n outDir: string;\n preload?: AwsLambdaPreloadStrategy | undefined;\n prerenderStore?: AppRouterPrerenderStore | undefined;\n routeCache?: AppRouterCache | undefined;\n runtimeDir?: string | undefined;\n serverActions?: AppRouterServerActionOptions | undefined;\n sinkStrategy?: ResponseSinkStrategy | undefined;\n timings?: boolean | undefined;\n trustForwardedProto?: boolean | undefined;\n}\n\n/**\n * Selects how an AWS Lambda handler resolves its app-router import policy.\n */\nexport type AwsLambdaImportPolicy =\n | AppRouterImportPolicy\n | \"generated\"\n | { fromManifest: true };\n\n/**\n * Configures preload behavior for built app-router modules in AWS Lambda.\n */\nexport type AwsLambdaPreloadStrategy =\n | \"all\"\n | \"hot-route-requests\"\n | \"middleware\"\n | \"none\"\n | {\n mode: \"all\" | \"hot-route-requests\" | \"hot-routes\" | \"middleware\" | \"none\";\n routes?: readonly string[] | undefined;\n wait?: \"background\" | \"before-render\" | \"first-request\" | undefined;\n };\n\ntype NormalizedAwsLambdaPreloadStrategy = NormalizedBuiltAppRuntimePreloadStrategy;\n\ntype AwsLambdaDefaultPreloadMode = \"all\" | \"middleware\";\n\n/**\n * Handles one AWS API Gateway HTTP API v2 event with a buffered response.\n */\nexport type AwsLambdaRequestHandler = (\n event: AwsLambdaHttpEventV2,\n) => Promise<AwsLambdaHttpResultV2>;\n\n/**\n * Handles one AWS API Gateway HTTP API v2 event with a Lambda response stream.\n */\nexport type AwsLambdaStreamingRequestHandler<TContext = unknown> = (\n event: AwsLambdaHttpEventV2,\n responseStream: AwsLambdaStreamingResponseStream,\n context: TContext,\n) => Promise<void>;\n\n/**\n * Creates a buffered AWS Lambda HTTP API v2 handler for built app-router output.\n *\n * The handler materializes runtime files under `/tmp` by default, starts middleware-focused background preload, applies the generated import policy when requested, and returns API Gateway v2 response objects.\n */\nexport function createAwsLambdaRequestHandler(\n options: AwsLambdaRequestHandlerOptions,\n): AwsLambdaRequestHandler {\n warnIfImplicitHostTrust(options);\n const runtimeDirPromise = prepareAwsLambdaRuntimeDir(options);\n const runtimePreloadPromise = startAwsLambdaRuntimePreload(\n options,\n runtimeDirPromise,\n \"middleware\",\n );\n void runtimePreloadPromise?.catch(() => {});\n\n return createAwsLambdaRequestHandlerFromRuntime(\n options,\n runtimeDirPromise,\n runtimePreloadPromise,\n \"middleware\",\n );\n}\n\n/**\n * Creates a buffered AWS Lambda handler after eagerly preparing and preloading the built runtime.\n *\n * Use this when startup code can await preload work before the first request instead of letting the first invocation share that cost.\n */\nexport async function createPreloadedAwsLambdaRequestHandler(\n options: AwsLambdaRequestHandlerOptions,\n): Promise<AwsLambdaRequestHandler> {\n warnIfImplicitHostTrust(options);\n const runtimeDir = await prepareAwsLambdaRuntimeDir(options);\n await preloadAwsLambdaRuntime(options, runtimeDir);\n\n return createAwsLambdaRequestHandlerFromRuntime(options, Promise.resolve(runtimeDir));\n}\n\nfunction createAwsLambdaRequestHandlerFromRuntime(\n options: AwsLambdaRequestHandlerOptions,\n runtimeDirPromise: Promise<string>,\n runtimePreloadPromise?: Promise<void> | undefined,\n defaultPreloadMode: AwsLambdaDefaultPreloadMode = \"all\",\n): AwsLambdaRequestHandler {\n return async (event) => {\n const startedAt = logNow();\n const phases = createAwsLambdaTimingPhases(options);\n const eventToRequestStartedAt = phaseStartedAt(phases);\n const request = eventToRequest(event, options);\n finishPhase(phases, eventToRequestStartedAt, \"eventToRequestMs\");\n const logFields = requestLogFields(request, \"aws-lambda\");\n emitRouterLog(options.logger, \"info\", {\n ...logFields,\n type: \"router:request:start\",\n });\n\n try {\n const runtimeDirStartedAt = phaseStartedAt(phases);\n const runtimeDir = await runtimeDirPromise;\n finishPhase(phases, runtimeDirStartedAt, \"runtimeDirMs\");\n await waitForAwsLambdaRuntimePreload(\n options,\n runtimePreloadPromise,\n phases,\n defaultPreloadMode,\n );\n const importPolicy = await resolveAwsLambdaImportPolicy(options);\n const renderStartedAt = phaseStartedAt(phases);\n const builtRuntime = await createBuiltRequestRuntime({\n immutableRuntime: true,\n importPolicy,\n outDir: options.outDir,\n runtimeDir,\n });\n const preload = awsLambdaRenderPreload(\n options,\n runtimePreloadPromise,\n defaultPreloadMode,\n );\n const response = await builtRuntime.render(request, {\n instrumentation: options.instrumentation,\n logger: awsLambdaRenderLogger(options),\n onResponse: options.onResponse,\n ...(preload === undefined ? {} : { preload }),\n prerenderStore: options.prerenderStore,\n routeCache: options.routeCache,\n serverActions: options.serverActions,\n ...(options.sinkStrategy === undefined ? {} : { sinkStrategy: options.sinkStrategy }),\n });\n finishPhase(phases, renderStartedAt, \"renderMs\");\n const responseSerializationStartedAt = phaseStartedAt(phases);\n const result = await responseToLambdaResult(response, phases);\n finishPhase(phases, responseSerializationStartedAt, \"responseSerializationMs\");\n emitRouterLog(options.logger, \"info\", {\n ...logFields,\n durationMs: logDurationMs(startedAt),\n status: result.statusCode,\n type: \"router:request:end\",\n });\n emitAwsLambdaTiming(options, logFields, result.statusCode, startedAt, phases);\n\n return result;\n } catch (error) {\n emitRouterLog(options.logger, \"error\", {\n ...logFields,\n durationMs: logDurationMs(startedAt),\n error: logError(error),\n type: \"router:request:error\",\n });\n\n const payload = options.errorHandler\n ? options.errorHandler(error)\n : { body: \"Internal Server Error\", status: 500 };\n const response = await applyAwsLambdaResponseHook(\n new Response(payload.body, {\n headers: {\n \"content-type\": \"text/plain; charset=utf-8\",\n ...payload.headers,\n },\n status: payload.status,\n }),\n options,\n request,\n );\n\n return await responseToLambdaResult(response, phases);\n }\n };\n}\n\n/**\n * Creates an AWS Lambda streaming response handler for built app-router output.\n *\n * Use this with Lambda response streaming runtimes when HTML or route responses should be written progressively instead of buffered into an API Gateway result.\n */\nexport function createAwsLambdaStreamingRequestHandler<TContext = unknown>(\n options: AwsLambdaRequestHandlerOptions,\n): AwsLambdaStreamingRequestHandler<TContext> {\n warnIfImplicitHostTrust(options);\n const runtime = awsLambdaRuntime();\n const runtimeDirPromise = prepareAwsLambdaRuntimeDir(options);\n const runtimePreloadPromise = startAwsLambdaRuntimePreload(\n options,\n runtimeDirPromise,\n \"middleware\",\n );\n void runtimePreloadPromise?.catch(() => {});\n\n return createAwsLambdaStreamingRequestHandlerFromRuntime(\n options,\n runtime,\n runtimeDirPromise,\n runtimePreloadPromise,\n \"middleware\",\n );\n}\n\n/**\n * Creates a streaming AWS Lambda handler after eagerly preparing and preloading the built runtime.\n */\nexport async function createPreloadedAwsLambdaStreamingRequestHandler<TContext = unknown>(\n options: AwsLambdaRequestHandlerOptions,\n): Promise<AwsLambdaStreamingRequestHandler<TContext>> {\n warnIfImplicitHostTrust(options);\n const runtime = awsLambdaRuntime();\n const runtimeDir = await prepareAwsLambdaRuntimeDir(options);\n await preloadAwsLambdaRuntime(options, runtimeDir);\n\n return createAwsLambdaStreamingRequestHandlerFromRuntime<TContext>(\n options,\n runtime,\n Promise.resolve(runtimeDir),\n );\n}\n\nfunction startAwsLambdaRuntimePreload(\n options: AwsLambdaRequestHandlerOptions,\n runtimeDirPromise: Promise<string>,\n defaultMode: AwsLambdaDefaultPreloadMode = \"all\",\n): Promise<void> | undefined {\n const preload = normalizeAwsLambdaPreload(options.preload, defaultMode);\n if (preload.mode === \"none\") {\n return undefined;\n }\n\n return runtimeDirPromise.then((runtimeDir) =>\n preloadAwsLambdaRuntime(options, runtimeDir, defaultMode),\n );\n}\n\nasync function preloadAwsLambdaRuntime(\n options: AwsLambdaRequestHandlerOptions,\n runtimeDir: string,\n defaultMode: AwsLambdaDefaultPreloadMode = \"all\",\n): Promise<void> {\n const preload = normalizeAwsLambdaPreload(options.preload, defaultMode);\n if (preload.mode === \"none\") {\n return;\n }\n\n const importPolicy = await resolveAwsLambdaImportPolicy(options);\n await preloadBuiltAppRuntime({\n importPolicy,\n outDir: options.outDir,\n preload,\n runtimeDir,\n });\n}\n\nasync function waitForAwsLambdaRuntimePreload(\n options: AwsLambdaRequestHandlerOptions,\n runtimePreloadPromise: Promise<void> | undefined,\n phases: Record<string, number> | undefined,\n defaultMode: AwsLambdaDefaultPreloadMode,\n): Promise<void> {\n const preload = normalizeAwsLambdaPreload(options.preload, defaultMode);\n if (preload.wait !== \"first-request\" || runtimePreloadPromise === undefined) {\n return;\n }\n\n const preloadWaitStartedAt = phaseStartedAt(phases);\n try {\n await runtimePreloadPromise;\n } finally {\n finishPhase(phases, preloadWaitStartedAt, \"preloadWaitMs\");\n }\n}\n\nfunction awsLambdaRenderPreload(\n options: AwsLambdaRequestHandlerOptions,\n runtimePreloadPromise: Promise<void> | undefined,\n defaultMode: AwsLambdaDefaultPreloadMode,\n): { promise: Promise<void>; wait: \"before-render\" } | undefined {\n if (\n runtimePreloadPromise === undefined ||\n normalizeAwsLambdaPreload(options.preload, defaultMode).wait !== \"before-render\"\n ) {\n return undefined;\n }\n\n return {\n promise: runtimePreloadPromise,\n wait: \"before-render\",\n };\n}\n\nconst generatedImportPolicyCache = new Map<string, Promise<AppRouterImportPolicy>>();\n\nasync function resolveAwsLambdaImportPolicy(\n options: AwsLambdaRequestHandlerOptions,\n): Promise<AppRouterImportPolicy | undefined> {\n const policy = options.importPolicy;\n\n if (policy === undefined) {\n return undefined;\n }\n\n if (policy === \"generated\") {\n return await readGeneratedAwsLambdaImportPolicy(options.outDir);\n }\n\n if (isGeneratedAwsLambdaImportPolicyReference(policy) && policy.fromManifest === true) {\n return await readGeneratedAwsLambdaImportPolicy(options.outDir);\n }\n\n const configuredPolicy = policy as AppRouterImportPolicy;\n return {\n ...(configuredPolicy.allowedPackages === undefined\n ? {}\n : { allowedPackages: configuredPolicy.allowedPackages }),\n ...(configuredPolicy.allowedSourceDirs === undefined\n ? {}\n : { allowedSourceDirs: configuredPolicy.allowedSourceDirs }),\n ...(configuredPolicy.projectRoot === undefined\n ? {}\n : { projectRoot: configuredPolicy.projectRoot }),\n };\n}\n\nfunction isGeneratedAwsLambdaImportPolicyReference(\n policy: AwsLambdaImportPolicy,\n): policy is { fromManifest: true } {\n return typeof policy === \"object\" && policy !== null && \"fromManifest\" in policy;\n}\n\nasync function readGeneratedAwsLambdaImportPolicy(outDir: string): Promise<AppRouterImportPolicy> {\n const cached = generatedImportPolicyCache.get(outDir);\n if (cached !== undefined) {\n return await cached;\n }\n\n const promise = readGeneratedAwsLambdaImportPolicyInner(outDir);\n generatedImportPolicyCache.set(outDir, promise);\n\n return await promise;\n}\n\nasync function readGeneratedAwsLambdaImportPolicyInner(outDir: string): Promise<AppRouterImportPolicy> {\n const policy = JSON.parse(await readFile(join(outDir, \"server\", \"import-policy.json\"), \"utf8\")) as {\n runtimePackages?: readonly string[] | undefined;\n };\n\n return {\n allowedPackages: policy.runtimePackages ?? [],\n };\n}\n\nfunction normalizeAwsLambdaPreload(\n strategy: AwsLambdaPreloadStrategy | undefined,\n defaultMode: AwsLambdaDefaultPreloadMode = \"all\",\n): NormalizedAwsLambdaPreloadStrategy {\n return normalizeBuiltAppRuntimePreloadStrategy(strategy, defaultMode);\n}\n\nfunction createAwsLambdaStreamingRequestHandlerFromRuntime<TContext = unknown>(\n options: AwsLambdaRequestHandlerOptions,\n runtime: AwsLambdaRuntime,\n runtimeDirPromise: Promise<string>,\n runtimePreloadPromise?: Promise<void> | undefined,\n defaultPreloadMode: AwsLambdaDefaultPreloadMode = \"all\",\n): AwsLambdaStreamingRequestHandler<TContext> {\n return runtime.streamifyResponse(async (event, responseStream, _context) => {\n const startedAt = logNow();\n const phases = createAwsLambdaTimingPhases(options);\n const eventToRequestStartedAt = phaseStartedAt(phases);\n const request = eventToRequest(event, options);\n finishPhase(phases, eventToRequestStartedAt, \"eventToRequestMs\");\n const logFields = requestLogFields(request, \"aws-lambda\");\n emitRouterLog(options.logger, \"info\", {\n ...logFields,\n type: \"router:request:start\",\n });\n\n try {\n const runtimeDirStartedAt = phaseStartedAt(phases);\n const runtimeDir = await runtimeDirPromise;\n finishPhase(phases, runtimeDirStartedAt, \"runtimeDirMs\");\n await waitForAwsLambdaRuntimePreload(\n options,\n runtimePreloadPromise,\n phases,\n defaultPreloadMode,\n );\n const importPolicy = await resolveAwsLambdaImportPolicy(options);\n const renderStartedAt = phaseStartedAt(phases);\n const builtRuntime = await createBuiltRequestRuntime({\n immutableRuntime: true,\n importPolicy,\n outDir: options.outDir,\n runtimeDir,\n });\n const preload = awsLambdaRenderPreload(\n options,\n runtimePreloadPromise,\n defaultPreloadMode,\n );\n const response = await builtRuntime.render(request, {\n instrumentation: options.instrumentation,\n logger: awsLambdaRenderLogger(options),\n onResponse: options.onResponse,\n ...(preload === undefined ? {} : { preload }),\n prerenderStore: options.prerenderStore,\n routeCache: options.routeCache,\n serverActions: options.serverActions,\n ...(options.sinkStrategy === undefined ? {} : { sinkStrategy: options.sinkStrategy }),\n });\n finishPhase(phases, renderStartedAt, \"renderMs\");\n const responseStreamingStartedAt = phaseStartedAt(phases);\n await streamResponseToLambda(response, responseStream, runtime, phases);\n finishPhase(phases, responseStreamingStartedAt, \"responseStreamingMs\");\n emitRouterLog(options.logger, \"info\", {\n ...logFields,\n durationMs: logDurationMs(startedAt),\n status: response.status,\n type: \"router:request:end\",\n });\n emitAwsLambdaTiming(options, logFields, response.status, startedAt, phases);\n } catch (error) {\n emitRouterLog(options.logger, \"error\", {\n ...logFields,\n durationMs: logDurationMs(startedAt),\n error: logError(error),\n type: \"router:request:error\",\n });\n\n const payload = options.errorHandler\n ? options.errorHandler(error)\n : { body: \"Internal Server Error\", status: 500 };\n const response = await applyAwsLambdaResponseHook(\n new Response(payload.body, {\n headers: {\n \"content-type\": \"text/plain; charset=utf-8\",\n ...payload.headers,\n },\n status: payload.status,\n }),\n options,\n request,\n );\n\n await streamResponseToLambda(response, responseStream, runtime, phases);\n }\n });\n}\n\nasync function applyAwsLambdaResponseHook(\n response: Response,\n options: Pick<AwsLambdaRequestHandlerOptions, \"onResponse\">,\n request: Request,\n): Promise<Response> {\n const hooked = await options.onResponse?.(response, { request });\n\n return hooked instanceof Response ? hooked : response;\n}\n\nasync function prepareAwsLambdaRuntimeDir(options: {\n outDir: string;\n runtimeDir?: string | undefined;\n}): Promise<string> {\n const runtimeDir = options.runtimeDir ?? defaultAwsLambdaRuntimeDir(options.outDir);\n\n await mkdir(runtimeDir, { recursive: true });\n await linkAwsLambdaNodeModules({\n outDir: options.outDir,\n runtimeDir,\n });\n\n return runtimeDir;\n}\n\nasync function linkAwsLambdaNodeModules(options: {\n outDir: string;\n runtimeDir: string;\n}): Promise<void> {\n const source = join(dirname(options.outDir), \"node_modules\");\n const target = join(options.runtimeDir, \"node_modules\");\n\n try {\n await access(source);\n } catch {\n return;\n }\n\n try {\n const stats = await lstat(target);\n\n if (!stats.isSymbolicLink()) {\n return;\n }\n\n if ((await readlink(target)) === source) {\n return;\n }\n\n return;\n } catch {\n // Missing target: create it below.\n }\n\n try {\n await symlink(source, target, \"dir\");\n } catch (error) {\n if (!isNodeErrorCode(error, \"EEXIST\")) {\n throw error;\n }\n }\n}\n\nfunction defaultAwsLambdaRuntimeDir(outDir: string): string {\n return join(tmpdir(), \"mreact-router\", hashText(outDir), \"runtime\");\n}\n\nfunction hashText(value: string): string {\n return createHash(\"sha256\").update(value).digest(\"hex\").slice(0, 16);\n}\n\nfunction isNodeErrorCode(error: unknown, code: string): boolean {\n return (\n typeof error === \"object\" &&\n error !== null &&\n \"code\" in error &&\n (error as { code?: unknown }).code === code\n );\n}\n\nfunction eventToRequest(\n event: AwsLambdaHttpEventV2,\n options: AwsLambdaRequestHandlerOptions,\n): Request {\n const headers = eventHeaders(event);\n const rawHost = lambdaRequestHost(headers, options);\n const host = resolveRequestHost({\n allowedHosts: options.allowedHosts,\n fallbackHost: options.hostname ?? \"lambda.local\",\n hostPolicy: lambdaHostPolicy(options),\n rawHost: rawHost ?? undefined,\n });\n const protocol = lambdaRequestProtocol(event, headers, options);\n const rawPath = event.rawPath === undefined || event.rawPath === \"\" ? \"/\" : event.rawPath;\n const rawQueryString =\n event.rawQueryString === undefined || event.rawQueryString === \"\"\n ? \"\"\n : `?${event.rawQueryString}`;\n const method = event.requestContext?.http?.method ?? \"GET\";\n const init: RequestInit = {\n headers,\n method,\n };\n\n if (method !== \"GET\" && method !== \"HEAD\" && event.body !== undefined) {\n init.body =\n event.isBase64Encoded === true ? Buffer.from(event.body, \"base64\") : event.body;\n }\n\n return new Request(`${protocol}://${host}${rawPath}${rawQueryString}`, init);\n}\n\nfunction lambdaRequestHost(\n headers: Headers,\n options: AwsLambdaRequestHandlerOptions,\n): string | null {\n if (options.hostPolicy === \"trusted-proxy\") {\n return firstForwardedValue(headers.get(\"x-forwarded-host\")) ?? headers.get(\"host\");\n }\n\n return headers.get(\"host\");\n}\n\nfunction lambdaHostPolicy(\n options: AwsLambdaRequestHandlerOptions,\n): RequestHostPolicy | undefined {\n return options.hostPolicy ?? (process.env.NODE_ENV === \"production\" ? \"strict\" : undefined);\n}\n\nfunction lambdaRequestProtocol(\n event: AwsLambdaHttpEventV2,\n headers: Headers,\n options: AwsLambdaRequestHandlerOptions,\n): \"http\" | \"https\" {\n if (options.trustForwardedProto === true) {\n return normalizeRequestProtocol(firstForwardedValue(headers.get(\"x-forwarded-proto\")));\n }\n\n return normalizeRequestProtocol(event.requestContext?.http?.protocol);\n}\n\nfunction normalizeRequestProtocol(value: string | undefined): \"http\" | \"https\" {\n if (value === undefined || value === \"\") {\n return \"https\";\n }\n\n const normalized = value.toLowerCase();\n return normalized === \"http\" || normalized.startsWith(\"http/\") ? \"http\" : \"https\";\n}\n\nfunction eventHeaders(event: AwsLambdaHttpEventV2): Headers {\n const headers = new Headers();\n\n for (const [name, value] of Object.entries(event.headers ?? {})) {\n if (value !== undefined) {\n headers.set(name, value);\n }\n }\n\n if (event.cookies !== undefined && event.cookies.length > 0 && !headers.has(\"cookie\")) {\n headers.set(\"cookie\", event.cookies.join(\"; \"));\n }\n\n return headers;\n}\n\nasync function responseToLambdaResult(\n response: Response,\n phases?: Record<string, number> | undefined,\n): Promise<AwsLambdaHttpResultV2> {\n const headers: Record<string, string> = {};\n response.headers.forEach((value, key) => {\n if (key !== \"set-cookie\") {\n headers[key] = value;\n }\n });\n\n const cookies = responseCookies(response.headers);\n\n if (response.body === null) {\n return {\n body: \"\",\n ...(cookies.length === 0 ? {} : { cookies }),\n headers,\n isBase64Encoded: false,\n statusCode: response.status,\n };\n }\n\n const streamDrainStartedAt = phaseStartedAt(phases);\n const bytes = await drainBufferedResponseBody(response.body, phases);\n addPhaseDuration(phases, streamDrainStartedAt, \"streamDrainMs\");\n\n const bodyEncodeStartedAt = phaseStartedAt(phases);\n const contentType = response.headers.get(\"content-type\");\n const text = isTextContentType(contentType);\n const result = {\n body: text ? bytes.toString(\"utf8\") : bytes.toString(\"base64\"),\n ...(cookies.length === 0 ? {} : { cookies }),\n headers,\n isBase64Encoded: !text,\n statusCode: response.status,\n };\n addPhaseDuration(phases, bodyEncodeStartedAt, \"bodyEncodeMs\");\n\n return result;\n}\n\nasync function drainBufferedResponseBody(\n body: ReadableStream<Uint8Array>,\n phases?: Record<string, number> | undefined,\n): Promise<Buffer> {\n const reader = body.getReader();\n const chunks: Uint8Array[] = [];\n let byteLength = 0;\n\n while (true) {\n const readStartedAt = phaseStartedAt(phases);\n const result = await reader.read();\n addPhaseDuration(phases, readStartedAt, \"streamReadMs\");\n\n if (result.done) {\n break;\n }\n\n chunks.push(result.value);\n byteLength += result.value.byteLength;\n }\n\n const concatStartedAt = phaseStartedAt(phases);\n const bytes = concatUint8ArrayChunks(chunks, byteLength);\n addPhaseDuration(phases, concatStartedAt, \"streamConcatMs\");\n\n return bytes;\n}\n\nfunction concatUint8ArrayChunks(chunks: readonly Uint8Array[], byteLength: number): Buffer {\n if (chunks.length === 0 || byteLength === 0) {\n return Buffer.alloc(0);\n }\n\n if (chunks.length === 1) {\n const [chunk] = chunks;\n if (chunk === undefined) {\n return Buffer.alloc(0);\n }\n return Buffer.from(chunk.buffer, chunk.byteOffset, chunk.byteLength);\n }\n\n const bytes = Buffer.allocUnsafe(byteLength);\n let offset = 0;\n\n for (const chunk of chunks) {\n bytes.set(chunk, offset);\n offset += chunk.byteLength;\n }\n\n return bytes;\n}\n\nfunction createAwsLambdaTimingPhases(\n options: AwsLambdaRequestHandlerOptions,\n): Record<string, number> | undefined {\n return options.timings === true ? {} : undefined;\n}\n\nfunction awsLambdaRenderLogger(\n options: AwsLambdaRequestHandlerOptions,\n): AppRouterLogger | undefined {\n return options.timings === true ? options.logger : undefined;\n}\n\nfunction phaseStartedAt(phases: Record<string, number> | undefined): number | undefined {\n return phases === undefined ? undefined : logNow();\n}\n\nfunction finishPhase(\n phases: Record<string, number> | undefined,\n startedAt: number | undefined,\n name: string,\n): void {\n if (phases !== undefined && startedAt !== undefined) {\n phases[name] = logDurationMs(startedAt);\n }\n}\n\nfunction addPhaseDuration(\n phases: Record<string, number> | undefined,\n startedAt: number | undefined,\n name: string,\n): void {\n if (phases !== undefined && startedAt !== undefined) {\n phases[name] = (phases[name] ?? 0) + logDurationMs(startedAt);\n }\n}\n\nfunction emitAwsLambdaTiming(\n options: AwsLambdaRequestHandlerOptions,\n logFields: RouterRequestLogFields,\n status: number,\n startedAt: number,\n phases: Record<string, number> | undefined,\n): void {\n if (phases === undefined) {\n return;\n }\n\n emitRouterLog(options.logger, \"debug\", {\n ...logFields,\n durationMs: logDurationMs(startedAt),\n phases,\n status,\n type: \"router:request:timing\",\n });\n}\n\nasync function streamResponseToLambda(\n response: Response,\n responseStream: AwsLambdaStreamingResponseStream,\n runtime: AwsLambdaRuntime,\n phases?: Record<string, number> | undefined,\n): Promise<void> {\n const stream = runtime.HttpResponseStream.from(\n responseStream,\n responseStreamingMetadata(response),\n );\n\n try {\n if (response.body === null) {\n stream.end();\n return;\n }\n\n const reader = response.body.getReader();\n\n while (true) {\n const streamWaitStartedAt = phaseStartedAt(phases);\n const result = await reader.read();\n addPhaseDuration(phases, streamWaitStartedAt, \"streamWaitMs\");\n\n if (result.done) {\n break;\n }\n\n const streamWriteStartedAt = phaseStartedAt(phases);\n await writeStreamingChunk(stream, result.value);\n addPhaseDuration(phases, streamWriteStartedAt, \"streamWriteMs\");\n }\n\n stream.end();\n } catch (error) {\n if (typeof stream.destroy === \"function\") {\n stream.destroy(error);\n return;\n }\n\n throw error;\n }\n}\n\nfunction responseStreamingMetadata(\n response: Response,\n): AwsLambdaStreamingResponseMetadata {\n const headers: Record<string, string> = {};\n response.headers.forEach((value, key) => {\n if (key !== \"set-cookie\") {\n headers[key] = value;\n }\n });\n\n const cookies = responseCookies(response.headers);\n\n return {\n ...(cookies.length === 0 ? {} : { cookies }),\n headers,\n statusCode: response.status,\n };\n}\n\nasync function writeStreamingChunk(\n stream: AwsLambdaStreamingResponseStream,\n chunk: Uint8Array,\n): Promise<void> {\n if (stream.write(chunk) !== false) {\n return;\n }\n\n if (typeof stream.once !== \"function\") {\n return;\n }\n\n await new Promise<void>((resolve) => {\n stream.once?.(\"drain\", resolve);\n });\n}\n\ninterface AwsLambdaRuntime {\n HttpResponseStream: {\n from(\n responseStream: AwsLambdaStreamingResponseStream,\n metadata: AwsLambdaStreamingResponseMetadata,\n ): AwsLambdaStreamingResponseStream;\n };\n streamifyResponse<TContext>(\n handler: AwsLambdaStreamingRequestHandler<TContext>,\n ): AwsLambdaStreamingRequestHandler<TContext>;\n}\n\nfunction awsLambdaRuntime(): AwsLambdaRuntime {\n const runtime = (globalThis as { awslambda?: Partial<AwsLambdaRuntime> | undefined })\n .awslambda;\n\n if (\n typeof runtime?.streamifyResponse !== \"function\" ||\n typeof runtime.HttpResponseStream?.from !== \"function\"\n ) {\n throw new Error(\n \"AWS Lambda response streaming requires the Node.js Lambda runtime awslambda.streamifyResponse() and awslambda.HttpResponseStream.from().\",\n );\n }\n\n return runtime as AwsLambdaRuntime;\n}\n\nfunction firstForwardedValue(value: string | null): string | undefined {\n const first = value?.split(\",\")[0]?.trim();\n return first === undefined || first === \"\" ? undefined : first;\n}\n\nfunction responseCookies(headers: Headers): string[] {\n const maybeHeaders = headers as Headers & { getSetCookie?: () => string[] };\n if (typeof maybeHeaders.getSetCookie === \"function\") {\n return maybeHeaders.getSetCookie();\n }\n\n const raw = headers.get(\"set-cookie\");\n return raw === null ? [] : splitSetCookieHeader(raw);\n}\n\nfunction splitSetCookieHeader(header: string): string[] {\n const cookies: string[] = [];\n let start = 0;\n let inExpires = false;\n\n for (let index = 0; index < header.length; index += 1) {\n const remaining = header.slice(index).toLowerCase();\n if (remaining.startsWith(\"expires=\")) {\n inExpires = true;\n index += \"expires=\".length - 1;\n continue;\n }\n\n const char = header[index];\n if (char === \";\") {\n inExpires = false;\n continue;\n }\n\n if (char === \",\" && !inExpires) {\n cookies.push(header.slice(start, index).trim());\n start = index + 1;\n }\n }\n\n cookies.push(header.slice(start).trim());\n return cookies.filter((cookie) => cookie.length > 0);\n}\n\nfunction isTextContentType(contentType: string | null): boolean {\n if (contentType === null) {\n return true;\n }\n\n const type = contentType.toLowerCase().split(\";\")[0]?.trim() ?? \"\";\n return (\n type.startsWith(\"text/\") ||\n type === \"application/json\" ||\n type === \"application/javascript\" ||\n type === \"application/x-javascript\" ||\n type === \"application/xml\" ||\n type === \"application/x-www-form-urlencoded\" ||\n type.endsWith(\"+json\") ||\n type.endsWith(\"+xml\")\n );\n}\n"]}
|
|
1
|
+
{"version":3,"file":"aws-lambda.js","sourceRoot":"","sources":["../../src/adapters/aws-lambda.ts"],"names":[],"mappings":"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","sourcesContent":["import { Buffer } from \"node:buffer\";\nimport { createHash } from \"node:crypto\";\nimport { access, lstat, mkdir, readFile, readlink, symlink } from \"node:fs/promises\";\nimport { tmpdir } from \"node:os\";\nimport { dirname, join } from \"node:path\";\nimport type { AppRouterServerActionOptions } from \"../actions.js\";\nimport type { AppRouterCache } from \"../cache.js\";\nimport type { AppRouterImportPolicy } from \"../import-policy.js\";\nimport {\n normalizeBuiltAppRuntimePreloadStrategy,\n type NormalizedBuiltAppRuntimePreloadStrategy,\n} from \"../preload-policy.js\";\nimport {\n emitRouterLog,\n logDurationMs,\n logError,\n logNow,\n requestLogFields,\n type AppRouterLogger,\n type RouterRequestLogFields,\n} from \"../logger.js\";\nimport type { AppRouterResponseHook } from \"../render.js\";\nimport type { RouterInstrumentation } from \"../trace.js\";\n\n/** Re-exports cache contracts used by AWS Lambda handlers. */\nexport type { AppRouterCache, AppRouterCacheEntry } from \"../cache.js\";\n/** Re-exports server action contracts used by AWS Lambda handlers. */\nexport type {\n AppRouterAllowedServerAction,\n AppRouterServerActionOptions,\n} from \"../actions.js\";\n/** Re-exports logger contracts used by AWS Lambda handlers. */\nexport type {\n AppRouterCspInlineNonceWarningLogEvent,\n AppRouterLogger,\n AppRouterLogError,\n AppRouterLogEvent,\n AppRouterRenderTimingLogEvent,\n AppRouterRequestEndLogEvent,\n AppRouterRequestErrorLogEvent,\n AppRouterRequestStartLogEvent,\n AppRouterRequestTimingLogEvent,\n AppRouterRuntime,\n} from \"../logger.js\";\n/** Re-exports response hook contracts used by AWS Lambda handlers. */\nexport type { AppRouterResponseHook, AppRouterResponseHookContext } from \"../render.js\";\n/** Re-exports build contracts referenced by AWS Lambda handler options. */\nexport type { BuiltPrerenderedRoute } from \"../build.js\";\n/** Re-exports router instrumentation hooks and events for AWS Lambda handlers. */\nexport type {\n RouterInstrumentation,\n RouterMiddlewareEndInstrumentationEvent,\n RouterMiddlewareInstrumentationEvent,\n RouterRequestEndInstrumentationEvent,\n RouterRequestInstrumentationEvent,\n RouterRouteEndInstrumentationEvent,\n RouterRouteInstrumentationEvent,\n RouterTraceContext,\n} from \"../trace.js\";\n/** Re-exports app-router import policy controls for AWS Lambda handlers. */\nexport type { AppRouterImportPolicy } from \"../import-policy.js\";\nimport {\n createBuiltRequestRuntime,\n preloadBuiltAppRuntime,\n resolveRequestHost,\n warnIfImplicitHostTrust,\n type AppRouterPrerenderStore,\n type RequestHostPolicy,\n type ResponseSinkStrategy,\n} from \"../serve.js\";\n\n/** Re-exports request and rendering contracts used by AWS Lambda handlers. */\nexport type {\n AppRouterPrerenderStore,\n RequestHostPolicy,\n ResponseSinkStrategy,\n} from \"../serve.js\";\n\n/**\n * Represents the AWS API Gateway HTTP API v2 event consumed by buffered handlers.\n */\nexport interface AwsLambdaHttpEventV2 {\n body?: string | undefined;\n cookies?: string[] | undefined;\n headers?: Record<string, string | undefined> | undefined;\n isBase64Encoded?: boolean | undefined;\n rawPath: string;\n rawQueryString: string;\n requestContext: {\n http: {\n method: string;\n protocol?: string | undefined;\n };\n };\n version: \"2.0\";\n}\n\n/**\n * Represents the AWS API Gateway HTTP API v2 result returned by buffered handlers.\n */\nexport interface AwsLambdaHttpResultV2 {\n body: string;\n cookies?: string[] | undefined;\n headers?: Record<string, string> | undefined;\n isBase64Encoded: boolean;\n statusCode: number;\n}\n\n/**\n * Describes response metadata passed to Lambda streaming response helpers.\n */\nexport interface AwsLambdaStreamingResponseMetadata {\n cookies?: string[] | undefined;\n headers: Record<string, string>;\n statusCode: number;\n}\n\n/**\n * Defines the writable stream interface used by Lambda streaming handlers.\n */\nexport interface AwsLambdaStreamingResponseStream {\n destroy?: ((error?: unknown) => void) | undefined;\n end(): void;\n once?: ((event: \"drain\", listener: () => void) => unknown) | undefined;\n write(chunk: string | Uint8Array): boolean;\n}\n\n/**\n * Configures AWS Lambda request handlers for built app-router output.\n */\nexport interface AwsLambdaRequestHandlerOptions {\n allowedHosts?: readonly string[] | undefined;\n errorHandler?:\n | ((error: unknown) => {\n body: string;\n headers?: Record<string, string>;\n status: number;\n })\n | undefined;\n hostPolicy?: RequestHostPolicy | undefined;\n hostname?: string | undefined;\n importPolicy?: AwsLambdaImportPolicy | undefined;\n instrumentation?: RouterInstrumentation | undefined;\n logger?: AppRouterLogger | undefined;\n onResponse?: AppRouterResponseHook | undefined;\n outDir: string;\n preload?: AwsLambdaPreloadStrategy | undefined;\n prerenderStore?: AppRouterPrerenderStore | undefined;\n routeCache?: AppRouterCache | undefined;\n runtimeDir?: string | undefined;\n serverActions?: AppRouterServerActionOptions | undefined;\n sinkStrategy?: ResponseSinkStrategy | undefined;\n timings?: boolean | undefined;\n trustForwardedProto?: boolean | undefined;\n}\n\n/**\n * Selects how an AWS Lambda handler resolves its app-router import policy.\n */\nexport type AwsLambdaImportPolicy =\n | AppRouterImportPolicy\n | \"generated\"\n | { fromManifest: true };\n\n/**\n * Configures preload behavior for built app-router modules in AWS Lambda.\n */\nexport type AwsLambdaPreloadStrategy =\n | \"all\"\n | \"hot-route-requests\"\n | \"middleware\"\n | \"none\"\n | {\n mode: \"all\" | \"hot-route-requests\" | \"hot-routes\" | \"middleware\" | \"none\";\n routes?: readonly string[] | undefined;\n wait?: \"background\" | \"before-render\" | \"first-request\" | undefined;\n };\n\ntype NormalizedAwsLambdaPreloadStrategy = NormalizedBuiltAppRuntimePreloadStrategy;\n\ntype AwsLambdaDefaultPreloadMode = \"all\" | \"middleware\";\n\n/**\n * Handles one AWS API Gateway HTTP API v2 event with a buffered response.\n */\nexport type AwsLambdaRequestHandler = (\n event: AwsLambdaHttpEventV2,\n) => Promise<AwsLambdaHttpResultV2>;\n\n/**\n * Handles one AWS API Gateway HTTP API v2 event with a Lambda response stream.\n */\nexport type AwsLambdaStreamingRequestHandler<TContext = unknown> = (\n event: AwsLambdaHttpEventV2,\n responseStream: AwsLambdaStreamingResponseStream,\n context: TContext,\n) => Promise<void>;\n\nconst invalidAwsLambdaHttpEventV2Diagnostic =\n 'Expected an AWS Lambda HTTP API payload format 2.0 event with rawPath and requestContext.http.method.';\n\nfunction invalidAwsLambdaHttpEventV2Result(): AwsLambdaHttpResultV2 {\n return {\n body: invalidAwsLambdaHttpEventV2Diagnostic,\n headers: { \"content-type\": \"text/plain; charset=utf-8\" },\n isBase64Encoded: false,\n statusCode: 400,\n };\n}\n\nfunction invalidAwsLambdaHttpEventV2Response(): Response {\n return new Response(invalidAwsLambdaHttpEventV2Diagnostic, {\n headers: { \"content-type\": \"text/plain; charset=utf-8\" },\n status: 400,\n });\n}\n\n/**\n * Creates a buffered AWS Lambda HTTP API v2 handler for built app-router output.\n *\n * The handler materializes runtime files under `/tmp` by default, starts middleware-focused background preload, applies the generated import policy when requested, and returns API Gateway v2 response objects.\n */\nexport function createAwsLambdaRequestHandler(\n options: AwsLambdaRequestHandlerOptions,\n): AwsLambdaRequestHandler {\n warnIfImplicitHostTrust(options);\n let handler: AwsLambdaRequestHandler | undefined;\n\n return async (event) => {\n try {\n validateAwsLambdaHttpEventV2(event);\n } catch {\n return invalidAwsLambdaHttpEventV2Result();\n }\n\n handler ??= (() => {\n const runtimeDirPromise = prepareAwsLambdaRuntimeDir(options);\n const runtimePreloadPromise = startAwsLambdaRuntimePreload(options, runtimeDirPromise, \"middleware\");\n void runtimePreloadPromise?.catch(() => {});\n return createAwsLambdaRequestHandlerFromRuntime(\n options,\n runtimeDirPromise,\n runtimePreloadPromise,\n \"middleware\",\n );\n })();\n\n return await handler(event);\n };\n}\n\n/**\n * Creates a buffered AWS Lambda handler that starts full runtime preparation after the first valid event.\n *\n * Invalid events are rejected before runtime materialization or preload work begins.\n */\nexport async function createPreloadedAwsLambdaRequestHandler(\n options: AwsLambdaRequestHandlerOptions,\n): Promise<AwsLambdaRequestHandler> {\n warnIfImplicitHostTrust(options);\n let handler: AwsLambdaRequestHandler | undefined;\n\n return async (event) => {\n try {\n validateAwsLambdaHttpEventV2(event);\n } catch {\n return invalidAwsLambdaHttpEventV2Result();\n }\n\n handler ??= (() => {\n const runtimeDirPromise = prepareAwsLambdaRuntimeDir(options);\n const runtimePreloadPromise = startAwsLambdaRuntimePreload(options, runtimeDirPromise, \"all\");\n void runtimePreloadPromise?.catch(() => {});\n return createAwsLambdaRequestHandlerFromRuntime(\n options,\n runtimeDirPromise,\n runtimePreloadPromise,\n );\n })();\n\n return await handler(event);\n };\n}\n\n/**\n * Explicitly materializes and preloads a built Lambda runtime before request handling.\n *\n * Call this during controlled Lambda initialization only when the extra startup work is preferable to first-valid-request latency. Request handlers always validate events before they start runtime work.\n */\nexport async function warmAwsLambdaRuntime(\n options: AwsLambdaRequestHandlerOptions,\n): Promise<void> {\n warnIfImplicitHostTrust(options);\n const runtimeDir = await prepareAwsLambdaRuntimeDir(options);\n await preloadAwsLambdaRuntime(options, runtimeDir);\n}\n\nfunction createAwsLambdaRequestHandlerFromRuntime(\n options: AwsLambdaRequestHandlerOptions,\n runtimeDirPromise: Promise<string>,\n runtimePreloadPromise?: Promise<void> | undefined,\n defaultPreloadMode: AwsLambdaDefaultPreloadMode = \"all\",\n): AwsLambdaRequestHandler {\n return async (event) => {\n try {\n validateAwsLambdaHttpEventV2(event);\n } catch {\n return invalidAwsLambdaHttpEventV2Result();\n }\n\n const startedAt = logNow();\n const phases = createAwsLambdaTimingPhases(options);\n const eventToRequestStartedAt = phaseStartedAt(phases);\n const request = eventToRequest(event, options);\n finishPhase(phases, eventToRequestStartedAt, \"eventToRequestMs\");\n const logFields = requestLogFields(request, \"aws-lambda\");\n emitRouterLog(options.logger, \"info\", {\n ...logFields,\n type: \"router:request:start\",\n });\n\n try {\n const runtimeDirStartedAt = phaseStartedAt(phases);\n const runtimeDir = await runtimeDirPromise;\n finishPhase(phases, runtimeDirStartedAt, \"runtimeDirMs\");\n await waitForAwsLambdaRuntimePreload(\n options,\n runtimePreloadPromise,\n phases,\n defaultPreloadMode,\n );\n const importPolicy = await resolveAwsLambdaImportPolicy(options);\n const renderStartedAt = phaseStartedAt(phases);\n const builtRuntime = await createBuiltRequestRuntime({\n immutableRuntime: true,\n importPolicy,\n outDir: options.outDir,\n runtimeDir,\n });\n const preload = awsLambdaRenderPreload(\n options,\n runtimePreloadPromise,\n defaultPreloadMode,\n );\n const response = await builtRuntime.render(request, {\n instrumentation: options.instrumentation,\n logger: awsLambdaRenderLogger(options),\n onResponse: options.onResponse,\n ...(preload === undefined ? {} : { preload }),\n prerenderStore: options.prerenderStore,\n routeCache: options.routeCache,\n serverActions: options.serverActions,\n ...(options.sinkStrategy === undefined ? {} : { sinkStrategy: options.sinkStrategy }),\n });\n finishPhase(phases, renderStartedAt, \"renderMs\");\n const responseSerializationStartedAt = phaseStartedAt(phases);\n const result = await responseToLambdaResult(response, phases);\n finishPhase(phases, responseSerializationStartedAt, \"responseSerializationMs\");\n emitRouterLog(options.logger, \"info\", {\n ...logFields,\n durationMs: logDurationMs(startedAt),\n status: result.statusCode,\n type: \"router:request:end\",\n });\n emitAwsLambdaTiming(options, logFields, result.statusCode, startedAt, phases);\n\n return result;\n } catch (error) {\n emitRouterLog(options.logger, \"error\", {\n ...logFields,\n durationMs: logDurationMs(startedAt),\n error: logError(error),\n type: \"router:request:error\",\n });\n\n const payload = options.errorHandler\n ? options.errorHandler(error)\n : { body: \"Internal Server Error\", status: 500 };\n const response = await applyAwsLambdaResponseHook(\n new Response(payload.body, {\n headers: {\n \"content-type\": \"text/plain; charset=utf-8\",\n ...payload.headers,\n },\n status: payload.status,\n }),\n options,\n request,\n );\n\n return await responseToLambdaResult(response, phases);\n }\n };\n}\n\n/**\n * Creates an AWS Lambda streaming response handler for built app-router output.\n *\n * Use this with Lambda response streaming runtimes when HTML or route responses should be written progressively instead of buffered into an API Gateway result.\n */\nexport function createAwsLambdaStreamingRequestHandler<TContext = unknown>(\n options: AwsLambdaRequestHandlerOptions,\n): AwsLambdaStreamingRequestHandler<TContext> {\n warnIfImplicitHostTrust(options);\n const runtime = awsLambdaRuntime();\n let handler: AwsLambdaStreamingRequestHandler<TContext> | undefined;\n\n return runtime.streamifyResponse(async (event, responseStream, context) => {\n try {\n validateAwsLambdaHttpEventV2(event);\n } catch {\n await streamResponseToLambda(\n invalidAwsLambdaHttpEventV2Response(),\n responseStream,\n runtime,\n );\n return;\n }\n\n handler ??= (() => {\n const runtimeDirPromise = prepareAwsLambdaRuntimeDir(options);\n const runtimePreloadPromise = startAwsLambdaRuntimePreload(options, runtimeDirPromise, \"middleware\");\n void runtimePreloadPromise?.catch(() => {});\n return createAwsLambdaStreamingRequestHandlerFromRuntime(\n options,\n runtime,\n runtimeDirPromise,\n runtimePreloadPromise,\n \"middleware\",\n );\n })();\n\n await handler(event, responseStream, context);\n });\n}\n\n/**\n * Creates a streaming AWS Lambda handler that starts full runtime preparation after the first valid event.\n *\n * Invalid events are rejected before runtime materialization or preload work begins.\n */\nexport async function createPreloadedAwsLambdaStreamingRequestHandler<TContext = unknown>(\n options: AwsLambdaRequestHandlerOptions,\n): Promise<AwsLambdaStreamingRequestHandler<TContext>> {\n warnIfImplicitHostTrust(options);\n const runtime = awsLambdaRuntime();\n let handler: AwsLambdaStreamingRequestHandler<TContext> | undefined;\n\n return runtime.streamifyResponse(async (event, responseStream, context) => {\n try {\n validateAwsLambdaHttpEventV2(event);\n } catch {\n await streamResponseToLambda(\n invalidAwsLambdaHttpEventV2Response(),\n responseStream,\n runtime,\n );\n return;\n }\n\n handler ??= (() => {\n const runtimeDirPromise = prepareAwsLambdaRuntimeDir(options);\n const runtimePreloadPromise = startAwsLambdaRuntimePreload(options, runtimeDirPromise, \"all\");\n void runtimePreloadPromise?.catch(() => {});\n return createAwsLambdaStreamingRequestHandlerFromRuntime<TContext>(\n options,\n runtime,\n runtimeDirPromise,\n runtimePreloadPromise,\n );\n })();\n\n await handler(event, responseStream, context);\n });\n}\n\nfunction startAwsLambdaRuntimePreload(\n options: AwsLambdaRequestHandlerOptions,\n runtimeDirPromise: Promise<string>,\n defaultMode: AwsLambdaDefaultPreloadMode = \"all\",\n): Promise<void> | undefined {\n const preload = normalizeAwsLambdaPreload(options.preload, defaultMode);\n if (preload.mode === \"none\") {\n return undefined;\n }\n\n return runtimeDirPromise.then((runtimeDir) =>\n preloadAwsLambdaRuntime(options, runtimeDir, defaultMode),\n );\n}\n\nasync function preloadAwsLambdaRuntime(\n options: AwsLambdaRequestHandlerOptions,\n runtimeDir: string,\n defaultMode: AwsLambdaDefaultPreloadMode = \"all\",\n): Promise<void> {\n const preload = normalizeAwsLambdaPreload(options.preload, defaultMode);\n if (preload.mode === \"none\") {\n return;\n }\n\n const importPolicy = await resolveAwsLambdaImportPolicy(options);\n await preloadBuiltAppRuntime({\n importPolicy,\n outDir: options.outDir,\n preload,\n runtimeDir,\n });\n}\n\nasync function waitForAwsLambdaRuntimePreload(\n options: AwsLambdaRequestHandlerOptions,\n runtimePreloadPromise: Promise<void> | undefined,\n phases: Record<string, number> | undefined,\n defaultMode: AwsLambdaDefaultPreloadMode,\n): Promise<void> {\n const preload = normalizeAwsLambdaPreload(options.preload, defaultMode);\n if (preload.wait !== \"first-request\" || runtimePreloadPromise === undefined) {\n return;\n }\n\n const preloadWaitStartedAt = phaseStartedAt(phases);\n try {\n await runtimePreloadPromise;\n } finally {\n finishPhase(phases, preloadWaitStartedAt, \"preloadWaitMs\");\n }\n}\n\nfunction awsLambdaRenderPreload(\n options: AwsLambdaRequestHandlerOptions,\n runtimePreloadPromise: Promise<void> | undefined,\n defaultMode: AwsLambdaDefaultPreloadMode,\n): { promise: Promise<void>; wait: \"before-render\" } | undefined {\n if (\n runtimePreloadPromise === undefined ||\n normalizeAwsLambdaPreload(options.preload, defaultMode).wait !== \"before-render\"\n ) {\n return undefined;\n }\n\n return {\n promise: runtimePreloadPromise,\n wait: \"before-render\",\n };\n}\n\nconst generatedImportPolicyCache = new Map<string, Promise<AppRouterImportPolicy>>();\n\nasync function resolveAwsLambdaImportPolicy(\n options: AwsLambdaRequestHandlerOptions,\n): Promise<AppRouterImportPolicy | undefined> {\n const policy = options.importPolicy;\n\n if (policy === undefined) {\n return undefined;\n }\n\n if (policy === \"generated\") {\n return await readGeneratedAwsLambdaImportPolicy(options.outDir);\n }\n\n if (isGeneratedAwsLambdaImportPolicyReference(policy) && policy.fromManifest === true) {\n return await readGeneratedAwsLambdaImportPolicy(options.outDir);\n }\n\n const configuredPolicy = policy as AppRouterImportPolicy;\n return {\n ...(configuredPolicy.allowedPackages === undefined\n ? {}\n : { allowedPackages: configuredPolicy.allowedPackages }),\n ...(configuredPolicy.allowedSourceDirs === undefined\n ? {}\n : { allowedSourceDirs: configuredPolicy.allowedSourceDirs }),\n ...(configuredPolicy.projectRoot === undefined\n ? {}\n : { projectRoot: configuredPolicy.projectRoot }),\n };\n}\n\nfunction isGeneratedAwsLambdaImportPolicyReference(\n policy: AwsLambdaImportPolicy,\n): policy is { fromManifest: true } {\n return typeof policy === \"object\" && policy !== null && \"fromManifest\" in policy;\n}\n\nasync function readGeneratedAwsLambdaImportPolicy(outDir: string): Promise<AppRouterImportPolicy> {\n const cached = generatedImportPolicyCache.get(outDir);\n if (cached !== undefined) {\n return await cached;\n }\n\n const promise = readGeneratedAwsLambdaImportPolicyInner(outDir);\n generatedImportPolicyCache.set(outDir, promise);\n\n return await promise;\n}\n\nasync function readGeneratedAwsLambdaImportPolicyInner(outDir: string): Promise<AppRouterImportPolicy> {\n const policy = JSON.parse(await readFile(join(outDir, \"server\", \"import-policy.json\"), \"utf8\")) as {\n runtimePackages?: readonly string[] | undefined;\n };\n\n return {\n allowedPackages: policy.runtimePackages ?? [],\n };\n}\n\nfunction normalizeAwsLambdaPreload(\n strategy: AwsLambdaPreloadStrategy | undefined,\n defaultMode: AwsLambdaDefaultPreloadMode = \"all\",\n): NormalizedAwsLambdaPreloadStrategy {\n return normalizeBuiltAppRuntimePreloadStrategy(strategy, defaultMode);\n}\n\nfunction createAwsLambdaStreamingRequestHandlerFromRuntime<TContext = unknown>(\n options: AwsLambdaRequestHandlerOptions,\n runtime: AwsLambdaRuntime,\n runtimeDirPromise: Promise<string>,\n runtimePreloadPromise?: Promise<void> | undefined,\n defaultPreloadMode: AwsLambdaDefaultPreloadMode = \"all\",\n): AwsLambdaStreamingRequestHandler<TContext> {\n return runtime.streamifyResponse(async (event, responseStream, _context) => {\n try {\n validateAwsLambdaHttpEventV2(event);\n } catch {\n await streamResponseToLambda(\n invalidAwsLambdaHttpEventV2Response(),\n responseStream,\n runtime,\n );\n return;\n }\n\n const startedAt = logNow();\n const phases = createAwsLambdaTimingPhases(options);\n const eventToRequestStartedAt = phaseStartedAt(phases);\n const request = eventToRequest(event, options);\n finishPhase(phases, eventToRequestStartedAt, \"eventToRequestMs\");\n const logFields = requestLogFields(request, \"aws-lambda\");\n emitRouterLog(options.logger, \"info\", {\n ...logFields,\n type: \"router:request:start\",\n });\n\n try {\n const runtimeDirStartedAt = phaseStartedAt(phases);\n const runtimeDir = await runtimeDirPromise;\n finishPhase(phases, runtimeDirStartedAt, \"runtimeDirMs\");\n await waitForAwsLambdaRuntimePreload(\n options,\n runtimePreloadPromise,\n phases,\n defaultPreloadMode,\n );\n const importPolicy = await resolveAwsLambdaImportPolicy(options);\n const renderStartedAt = phaseStartedAt(phases);\n const builtRuntime = await createBuiltRequestRuntime({\n immutableRuntime: true,\n importPolicy,\n outDir: options.outDir,\n runtimeDir,\n });\n const preload = awsLambdaRenderPreload(\n options,\n runtimePreloadPromise,\n defaultPreloadMode,\n );\n const response = await builtRuntime.render(request, {\n instrumentation: options.instrumentation,\n logger: awsLambdaRenderLogger(options),\n onResponse: options.onResponse,\n ...(preload === undefined ? {} : { preload }),\n prerenderStore: options.prerenderStore,\n routeCache: options.routeCache,\n serverActions: options.serverActions,\n ...(options.sinkStrategy === undefined ? {} : { sinkStrategy: options.sinkStrategy }),\n });\n finishPhase(phases, renderStartedAt, \"renderMs\");\n const responseStreamingStartedAt = phaseStartedAt(phases);\n await streamResponseToLambda(response, responseStream, runtime, phases);\n finishPhase(phases, responseStreamingStartedAt, \"responseStreamingMs\");\n emitRouterLog(options.logger, \"info\", {\n ...logFields,\n durationMs: logDurationMs(startedAt),\n status: response.status,\n type: \"router:request:end\",\n });\n emitAwsLambdaTiming(options, logFields, response.status, startedAt, phases);\n } catch (error) {\n emitRouterLog(options.logger, \"error\", {\n ...logFields,\n durationMs: logDurationMs(startedAt),\n error: logError(error),\n type: \"router:request:error\",\n });\n\n const payload = options.errorHandler\n ? options.errorHandler(error)\n : { body: \"Internal Server Error\", status: 500 };\n const response = await applyAwsLambdaResponseHook(\n new Response(payload.body, {\n headers: {\n \"content-type\": \"text/plain; charset=utf-8\",\n ...payload.headers,\n },\n status: payload.status,\n }),\n options,\n request,\n );\n\n await streamResponseToLambda(response, responseStream, runtime, phases);\n }\n });\n}\n\nasync function applyAwsLambdaResponseHook(\n response: Response,\n options: Pick<AwsLambdaRequestHandlerOptions, \"onResponse\">,\n request: Request,\n): Promise<Response> {\n const hooked = await options.onResponse?.(response, { request });\n\n return hooked instanceof Response ? hooked : response;\n}\n\nasync function prepareAwsLambdaRuntimeDir(options: {\n outDir: string;\n runtimeDir?: string | undefined;\n}): Promise<string> {\n const runtimeDir = options.runtimeDir ?? defaultAwsLambdaRuntimeDir(options.outDir);\n\n await mkdir(runtimeDir, { recursive: true });\n await linkAwsLambdaNodeModules({\n outDir: options.outDir,\n runtimeDir,\n });\n\n return runtimeDir;\n}\n\nasync function linkAwsLambdaNodeModules(options: {\n outDir: string;\n runtimeDir: string;\n}): Promise<void> {\n const source = join(dirname(options.outDir), \"node_modules\");\n const target = join(options.runtimeDir, \"node_modules\");\n\n try {\n await access(source);\n } catch {\n return;\n }\n\n try {\n const stats = await lstat(target);\n\n if (!stats.isSymbolicLink()) {\n return;\n }\n\n if ((await readlink(target)) === source) {\n return;\n }\n\n return;\n } catch {\n // Missing target: create it below.\n }\n\n try {\n await symlink(source, target, \"dir\");\n } catch (error) {\n if (!isNodeErrorCode(error, \"EEXIST\")) {\n throw error;\n }\n }\n}\n\nfunction defaultAwsLambdaRuntimeDir(outDir: string): string {\n return join(tmpdir(), \"mreact-router\", hashText(outDir), \"runtime\");\n}\n\nfunction hashText(value: string): string {\n return createHash(\"sha256\").update(value).digest(\"hex\").slice(0, 16);\n}\n\nfunction isNodeErrorCode(error: unknown, code: string): boolean {\n return (\n typeof error === \"object\" &&\n error !== null &&\n \"code\" in error &&\n (error as { code?: unknown }).code === code\n );\n}\n\nfunction eventToRequest(\n event: AwsLambdaHttpEventV2,\n options: AwsLambdaRequestHandlerOptions,\n): Request {\n validateAwsLambdaHttpEventV2(event);\n const headers = eventHeaders(event);\n const rawHost = lambdaRequestHost(headers, options);\n const host = resolveRequestHost({\n allowedHosts: options.allowedHosts,\n fallbackHost: options.hostname ?? \"lambda.local\",\n hostPolicy: lambdaHostPolicy(options),\n rawHost: rawHost ?? undefined,\n });\n const protocol = lambdaRequestProtocol(event, headers, options);\n const rawPath = event.rawPath;\n const rawQueryString = event.rawQueryString === \"\" ? \"\" : `?${event.rawQueryString}`;\n const method = event.requestContext.http.method;\n const init: RequestInit = {\n headers,\n method,\n };\n\n if (method !== \"GET\" && method !== \"HEAD\" && event.body !== undefined) {\n init.body =\n event.isBase64Encoded === true ? Buffer.from(event.body, \"base64\") : event.body;\n }\n\n return new Request(`${protocol}://${host}${rawPath}${rawQueryString}`, init);\n}\n\nfunction validateAwsLambdaHttpEventV2(event: AwsLambdaHttpEventV2): void {\n const candidate = event as unknown;\n\n if (\n typeof candidate !== \"object\" ||\n candidate === null ||\n (candidate as { version?: unknown }).version !== \"2.0\" ||\n typeof (candidate as { rawPath?: unknown }).rawPath !== \"string\" ||\n !(candidate as { rawPath: string }).rawPath.startsWith(\"/\") ||\n typeof (candidate as { rawQueryString?: unknown }).rawQueryString !== \"string\" ||\n typeof (candidate as { requestContext?: unknown }).requestContext !== \"object\" ||\n (candidate as { requestContext?: unknown }).requestContext === null ||\n typeof ((candidate as { requestContext: { http?: unknown } }).requestContext.http) !== \"object\" ||\n (candidate as { requestContext: { http?: unknown } }).requestContext.http === null ||\n typeof ((candidate as { requestContext: { http: { method?: unknown } } }).requestContext.http.method) !== \"string\" ||\n (candidate as { requestContext: { http: { method: string } } }).requestContext.http.method === \"\"\n ) {\n throw new Error(invalidAwsLambdaHttpEventV2Diagnostic);\n }\n}\n\nfunction lambdaRequestHost(\n headers: Headers,\n options: AwsLambdaRequestHandlerOptions,\n): string | null {\n if (options.hostPolicy === \"trusted-proxy\") {\n return firstForwardedValue(headers.get(\"x-forwarded-host\")) ?? headers.get(\"host\");\n }\n\n return headers.get(\"host\");\n}\n\nfunction lambdaHostPolicy(\n options: AwsLambdaRequestHandlerOptions,\n): RequestHostPolicy | undefined {\n return options.hostPolicy ?? (process.env.NODE_ENV === \"production\" ? \"strict\" : undefined);\n}\n\nfunction lambdaRequestProtocol(\n event: AwsLambdaHttpEventV2,\n headers: Headers,\n options: AwsLambdaRequestHandlerOptions,\n): \"http\" | \"https\" {\n if (options.trustForwardedProto === true) {\n return normalizeRequestProtocol(firstForwardedValue(headers.get(\"x-forwarded-proto\")));\n }\n\n return normalizeRequestProtocol(event.requestContext?.http?.protocol);\n}\n\nfunction normalizeRequestProtocol(value: string | undefined): \"http\" | \"https\" {\n if (value === undefined || value === \"\") {\n return \"https\";\n }\n\n const normalized = value.toLowerCase();\n return normalized === \"http\" || normalized.startsWith(\"http/\") ? \"http\" : \"https\";\n}\n\nfunction eventHeaders(event: AwsLambdaHttpEventV2): Headers {\n const headers = new Headers();\n\n for (const [name, value] of Object.entries(event.headers ?? {})) {\n if (value !== undefined) {\n headers.set(name, value);\n }\n }\n\n if (event.cookies !== undefined && event.cookies.length > 0 && !headers.has(\"cookie\")) {\n headers.set(\"cookie\", event.cookies.join(\"; \"));\n }\n\n return headers;\n}\n\nasync function responseToLambdaResult(\n response: Response,\n phases?: Record<string, number> | undefined,\n): Promise<AwsLambdaHttpResultV2> {\n const headers: Record<string, string> = {};\n response.headers.forEach((value, key) => {\n if (key !== \"set-cookie\") {\n headers[key] = value;\n }\n });\n\n const cookies = responseCookies(response.headers);\n\n if (response.body === null) {\n return {\n body: \"\",\n ...(cookies.length === 0 ? {} : { cookies }),\n headers,\n isBase64Encoded: false,\n statusCode: response.status,\n };\n }\n\n const streamDrainStartedAt = phaseStartedAt(phases);\n const bytes = await drainBufferedResponseBody(response.body, phases);\n addPhaseDuration(phases, streamDrainStartedAt, \"streamDrainMs\");\n\n const bodyEncodeStartedAt = phaseStartedAt(phases);\n const contentType = response.headers.get(\"content-type\");\n const text = isTextContentType(contentType);\n const result = {\n body: text ? bytes.toString(\"utf8\") : bytes.toString(\"base64\"),\n ...(cookies.length === 0 ? {} : { cookies }),\n headers,\n isBase64Encoded: !text,\n statusCode: response.status,\n };\n addPhaseDuration(phases, bodyEncodeStartedAt, \"bodyEncodeMs\");\n\n return result;\n}\n\nasync function drainBufferedResponseBody(\n body: ReadableStream<Uint8Array>,\n phases?: Record<string, number> | undefined,\n): Promise<Buffer> {\n const reader = body.getReader();\n const chunks: Uint8Array[] = [];\n let byteLength = 0;\n\n while (true) {\n const readStartedAt = phaseStartedAt(phases);\n const result = await reader.read();\n addPhaseDuration(phases, readStartedAt, \"streamReadMs\");\n\n if (result.done) {\n break;\n }\n\n chunks.push(result.value);\n byteLength += result.value.byteLength;\n }\n\n const concatStartedAt = phaseStartedAt(phases);\n const bytes = concatUint8ArrayChunks(chunks, byteLength);\n addPhaseDuration(phases, concatStartedAt, \"streamConcatMs\");\n\n return bytes;\n}\n\nfunction concatUint8ArrayChunks(chunks: readonly Uint8Array[], byteLength: number): Buffer {\n if (chunks.length === 0 || byteLength === 0) {\n return Buffer.alloc(0);\n }\n\n if (chunks.length === 1) {\n const [chunk] = chunks;\n if (chunk === undefined) {\n return Buffer.alloc(0);\n }\n return Buffer.from(chunk.buffer, chunk.byteOffset, chunk.byteLength);\n }\n\n const bytes = Buffer.allocUnsafe(byteLength);\n let offset = 0;\n\n for (const chunk of chunks) {\n bytes.set(chunk, offset);\n offset += chunk.byteLength;\n }\n\n return bytes;\n}\n\nfunction createAwsLambdaTimingPhases(\n options: AwsLambdaRequestHandlerOptions,\n): Record<string, number> | undefined {\n return options.timings === true ? {} : undefined;\n}\n\nfunction awsLambdaRenderLogger(\n options: AwsLambdaRequestHandlerOptions,\n): AppRouterLogger | undefined {\n return options.timings === true ? options.logger : undefined;\n}\n\nfunction phaseStartedAt(phases: Record<string, number> | undefined): number | undefined {\n return phases === undefined ? undefined : logNow();\n}\n\nfunction finishPhase(\n phases: Record<string, number> | undefined,\n startedAt: number | undefined,\n name: string,\n): void {\n if (phases !== undefined && startedAt !== undefined) {\n phases[name] = logDurationMs(startedAt);\n }\n}\n\nfunction addPhaseDuration(\n phases: Record<string, number> | undefined,\n startedAt: number | undefined,\n name: string,\n): void {\n if (phases !== undefined && startedAt !== undefined) {\n phases[name] = (phases[name] ?? 0) + logDurationMs(startedAt);\n }\n}\n\nfunction emitAwsLambdaTiming(\n options: AwsLambdaRequestHandlerOptions,\n logFields: RouterRequestLogFields,\n status: number,\n startedAt: number,\n phases: Record<string, number> | undefined,\n): void {\n if (phases === undefined) {\n return;\n }\n\n emitRouterLog(options.logger, \"debug\", {\n ...logFields,\n durationMs: logDurationMs(startedAt),\n phases,\n status,\n type: \"router:request:timing\",\n });\n}\n\nasync function streamResponseToLambda(\n response: Response,\n responseStream: AwsLambdaStreamingResponseStream,\n runtime: AwsLambdaRuntime,\n phases?: Record<string, number> | undefined,\n): Promise<void> {\n const stream = runtime.HttpResponseStream.from(\n responseStream,\n responseStreamingMetadata(response),\n );\n\n try {\n if (response.body === null) {\n stream.end();\n return;\n }\n\n const reader = response.body.getReader();\n\n while (true) {\n const streamWaitStartedAt = phaseStartedAt(phases);\n const result = await reader.read();\n addPhaseDuration(phases, streamWaitStartedAt, \"streamWaitMs\");\n\n if (result.done) {\n break;\n }\n\n const streamWriteStartedAt = phaseStartedAt(phases);\n await writeStreamingChunk(stream, result.value);\n addPhaseDuration(phases, streamWriteStartedAt, \"streamWriteMs\");\n }\n\n stream.end();\n } catch (error) {\n if (typeof stream.destroy === \"function\") {\n stream.destroy(error);\n return;\n }\n\n throw error;\n }\n}\n\nfunction responseStreamingMetadata(\n response: Response,\n): AwsLambdaStreamingResponseMetadata {\n const headers: Record<string, string> = {};\n response.headers.forEach((value, key) => {\n if (key !== \"set-cookie\") {\n headers[key] = value;\n }\n });\n\n const cookies = responseCookies(response.headers);\n\n return {\n ...(cookies.length === 0 ? {} : { cookies }),\n headers,\n statusCode: response.status,\n };\n}\n\nasync function writeStreamingChunk(\n stream: AwsLambdaStreamingResponseStream,\n chunk: Uint8Array,\n): Promise<void> {\n if (stream.write(chunk) !== false) {\n return;\n }\n\n if (typeof stream.once !== \"function\") {\n return;\n }\n\n await new Promise<void>((resolve) => {\n stream.once?.(\"drain\", resolve);\n });\n}\n\ninterface AwsLambdaRuntime {\n HttpResponseStream: {\n from(\n responseStream: AwsLambdaStreamingResponseStream,\n metadata: AwsLambdaStreamingResponseMetadata,\n ): AwsLambdaStreamingResponseStream;\n };\n streamifyResponse<TContext>(\n handler: AwsLambdaStreamingRequestHandler<TContext>,\n ): AwsLambdaStreamingRequestHandler<TContext>;\n}\n\nfunction awsLambdaRuntime(): AwsLambdaRuntime {\n const runtime = (globalThis as { awslambda?: Partial<AwsLambdaRuntime> | undefined })\n .awslambda;\n\n if (\n typeof runtime?.streamifyResponse !== \"function\" ||\n typeof runtime.HttpResponseStream?.from !== \"function\"\n ) {\n throw new Error(\n \"AWS Lambda response streaming requires the Node.js Lambda runtime awslambda.streamifyResponse() and awslambda.HttpResponseStream.from().\",\n );\n }\n\n return runtime as AwsLambdaRuntime;\n}\n\nfunction firstForwardedValue(value: string | null): string | undefined {\n const first = value?.split(\",\")[0]?.trim();\n return first === undefined || first === \"\" ? undefined : first;\n}\n\nfunction responseCookies(headers: Headers): string[] {\n const maybeHeaders = headers as Headers & { getSetCookie?: () => string[] };\n if (typeof maybeHeaders.getSetCookie === \"function\") {\n return maybeHeaders.getSetCookie();\n }\n\n const raw = headers.get(\"set-cookie\");\n return raw === null ? [] : splitSetCookieHeader(raw);\n}\n\nfunction splitSetCookieHeader(header: string): string[] {\n const cookies: string[] = [];\n let start = 0;\n let inExpires = false;\n\n for (let index = 0; index < header.length; index += 1) {\n const remaining = header.slice(index).toLowerCase();\n if (remaining.startsWith(\"expires=\")) {\n inExpires = true;\n index += \"expires=\".length - 1;\n continue;\n }\n\n const char = header[index];\n if (char === \";\") {\n inExpires = false;\n continue;\n }\n\n if (char === \",\" && !inExpires) {\n cookies.push(header.slice(start, index).trim());\n start = index + 1;\n }\n }\n\n cookies.push(header.slice(start).trim());\n return cookies.filter((cookie) => cookie.length > 0);\n}\n\nfunction isTextContentType(contentType: string | null): boolean {\n if (contentType === null) {\n return true;\n }\n\n const type = contentType.toLowerCase().split(\";\")[0]?.trim() ?? \"\";\n return (\n type.startsWith(\"text/\") ||\n type === \"application/json\" ||\n type === \"application/javascript\" ||\n type === \"application/x-javascript\" ||\n type === \"application/xml\" ||\n type === \"application/x-www-form-urlencoded\" ||\n type.endsWith(\"+json\") ||\n type.endsWith(\"+xml\")\n );\n}\n"]}
|
|
@@ -6,6 +6,24 @@ import type { GenerateMetadataContext, RouteMetadata } from "../types.js";
|
|
|
6
6
|
import { type AppRouterLogger } from "../logger.js";
|
|
7
7
|
import type { AppRoute } from "../routes.js";
|
|
8
8
|
import type { AppRouterPrerenderStore } from "../serve.js";
|
|
9
|
+
/** Re-exports build manifest contracts used by Cloudflare handlers. */
|
|
10
|
+
export type { BuiltPrerenderedRoute, BuiltRouteSourceAnalysisSummary, BuiltServerActionExpressionReference, BuiltServerActionReference, BuiltServerManifest, BuiltServerModuleArtifact, BuiltServerModuleOutput, } from "../build.js";
|
|
11
|
+
/** Re-exports client manifest contracts used by Cloudflare handlers. */
|
|
12
|
+
export type { ClientRouteManifestEntry } from "../client.js";
|
|
13
|
+
/** Re-exports route cache policy contracts used by route manifests. */
|
|
14
|
+
export type { RouteCachePolicy } from "../cache.js";
|
|
15
|
+
/** Re-exports logger contracts used by Cloudflare handlers. */
|
|
16
|
+
export type { AppRouterCspInlineNonceWarningLogEvent, AppRouterLogger, AppRouterLogError, AppRouterLogEvent, AppRouterRenderTimingLogEvent, AppRouterRequestEndLogEvent, AppRouterRequestErrorLogEvent, AppRouterRequestStartLogEvent, AppRouterRequestTimingLogEvent, AppRouterRuntime, } from "../logger.js";
|
|
17
|
+
/** Re-exports response hook contracts used by Cloudflare handlers. */
|
|
18
|
+
export type { AppRouterResponseHook, AppRouterResponseHookContext } from "../render.js";
|
|
19
|
+
/** Re-exports route contracts used by Cloudflare handlers. */
|
|
20
|
+
export type { AppAssetRoute, AppMetadataRoute, AppRoute, CompiledRouteMatcherEntry, CompiledRouteMatcherArtifact, CompiledRouteMatcherSegment, PageRoute, ServerRoute, RouteSegment, } from "../routes.js";
|
|
21
|
+
/** Re-exports prerender store contracts used by Cloudflare handlers. */
|
|
22
|
+
export type { AppRouterPrerenderStore } from "../serve.js";
|
|
23
|
+
/** Re-exports metadata contracts used by Cloudflare route modules. */
|
|
24
|
+
export type { GenerateMetadataContext, MetadataImage, MetadataScalar, MetadataThemeColor, MetadataViewport, RouteHeadDescriptor, RouteMetadata, RouteParams, RouteSecurityHeaders, RouteStrictTransportSecurity, } from "../types.js";
|
|
25
|
+
/** Re-exports file convention contracts used by Cloudflare route manifests. */
|
|
26
|
+
export type { AppFileConvention } from "../file-conventions.js";
|
|
9
27
|
/**
|
|
10
28
|
* Represents the Cloudflare Worker execution context used by router handlers.
|
|
11
29
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cloudflare.d.ts","sourceRoot":"","sources":["../../src/adapters/cloudflare.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cloudflare.d.ts","sourceRoot":"","sources":["../../src/adapters/cloudflare.ts"],"names":[],"mappings":"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"}
|