@reckona/mreact-router 0.0.97 → 0.0.98
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 +4 -0
- package/dist/actions.d.ts +7 -0
- package/dist/actions.d.ts.map +1 -1
- package/dist/actions.js +26 -2
- package/dist/actions.js.map +1 -1
- package/dist/adapters/aws-lambda.d.ts.map +1 -1
- package/dist/adapters/aws-lambda.js +10 -7
- package/dist/adapters/aws-lambda.js.map +1 -1
- package/dist/build.d.ts +38 -1
- package/dist/build.d.ts.map +1 -1
- package/dist/build.js +1087 -304
- package/dist/build.js.map +1 -1
- package/dist/bundle-pipeline.d.ts +7 -0
- package/dist/bundle-pipeline.d.ts.map +1 -1
- package/dist/bundle-pipeline.js +121 -87
- package/dist/bundle-pipeline.js.map +1 -1
- package/dist/cache.d.ts.map +1 -1
- package/dist/cache.js +10 -8
- package/dist/cache.js.map +1 -1
- package/dist/cli-options.d.ts +1 -0
- package/dist/cli-options.d.ts.map +1 -1
- package/dist/cli-options.js +16 -0
- package/dist/cli-options.js.map +1 -1
- package/dist/cli.js +1 -0
- package/dist/cli.js.map +1 -1
- package/dist/client.d.ts +6 -1
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +113 -8
- package/dist/client.js.map +1 -1
- package/dist/csrf.d.ts.map +1 -1
- package/dist/csrf.js +7 -3
- package/dist/csrf.js.map +1 -1
- package/dist/http.d.ts.map +1 -1
- package/dist/http.js +18 -1
- package/dist/http.js.map +1 -1
- package/dist/import-policy.d.ts.map +1 -1
- package/dist/import-policy.js +7 -3
- package/dist/import-policy.js.map +1 -1
- package/dist/index.d.ts +4 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/link.d.ts +5 -3
- package/dist/link.d.ts.map +1 -1
- package/dist/link.js +92 -3
- package/dist/link.js.map +1 -1
- package/dist/logger.d.ts +7 -1
- package/dist/logger.d.ts.map +1 -1
- package/dist/logger.js.map +1 -1
- package/dist/module-runner.d.ts +2 -0
- package/dist/module-runner.d.ts.map +1 -1
- package/dist/module-runner.js +1 -0
- package/dist/module-runner.js.map +1 -1
- package/dist/native-route-matcher.d.ts +2 -1
- package/dist/native-route-matcher.d.ts.map +1 -1
- package/dist/native-route-matcher.js +13 -2
- package/dist/native-route-matcher.js.map +1 -1
- package/dist/render.d.ts.map +1 -1
- package/dist/render.js +117 -2
- package/dist/render.js.map +1 -1
- package/dist/route-source.d.ts +4 -4
- package/dist/route-source.d.ts.map +1 -1
- package/dist/route-source.js +8 -8
- package/dist/route-source.js.map +1 -1
- package/dist/route-styles.d.ts +6 -0
- package/dist/route-styles.d.ts.map +1 -1
- package/dist/route-styles.js +10 -1
- package/dist/route-styles.js.map +1 -1
- package/dist/serve.d.ts +5 -0
- package/dist/serve.d.ts.map +1 -1
- package/dist/serve.js +7 -4
- package/dist/serve.js.map +1 -1
- package/package.json +11 -11
- package/src/actions.ts +42 -2
- package/src/adapters/aws-lambda.ts +33 -16
- package/src/build.ts +1578 -397
- package/src/bundle-pipeline.ts +136 -88
- package/src/cache.ts +13 -8
- package/src/cli-options.ts +20 -0
- package/src/cli.ts +1 -0
- package/src/client.ts +145 -14
- package/src/csrf.ts +8 -3
- package/src/http.ts +21 -1
- package/src/import-policy.ts +8 -3
- package/src/index.ts +5 -0
- package/src/link.ts +135 -8
- package/src/logger.ts +9 -1
- package/src/module-runner.ts +4 -0
- package/src/native-route-matcher.ts +13 -2
- package/src/render.ts +177 -2
- package/src/route-source.ts +8 -8
- package/src/route-styles.ts +17 -1
- package/src/serve.ts +11 -6
|
@@ -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\nexport type { RouterInstrumentation } from \"../trace.js\";\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\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\nexport interface AwsLambdaHttpResultV2 {\n body: string;\n cookies?: string[] | undefined;\n headers?: Record<string, string> | undefined;\n isBase64Encoded: boolean;\n statusCode: number;\n}\n\nexport interface AwsLambdaStreamingResponseMetadata {\n cookies?: string[] | undefined;\n headers: Record<string, string>;\n statusCode: number;\n}\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\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\nexport type AwsLambdaImportPolicy =\n | AppRouterImportPolicy\n | \"generated\"\n | { fromManifest: true };\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\nexport type AwsLambdaRequestHandler = (\n event: AwsLambdaHttpEventV2,\n) => Promise<AwsLambdaHttpResultV2>;\n\nexport type AwsLambdaStreamingRequestHandler<TContext = unknown> = (\n event: AwsLambdaHttpEventV2,\n responseStream: AwsLambdaStreamingResponseStream,\n context: TContext,\n) => Promise<void>;\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\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\n return {\n body: payload.body,\n headers: {\n \"content-type\": \"text/plain; charset=utf-8\",\n ...payload.headers,\n },\n isBase64Encoded: false,\n statusCode: payload.status,\n };\n }\n };\n}\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\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 = new Response(payload.body, {\n headers: {\n \"content-type\": \"text/plain; charset=utf-8\",\n ...payload.headers,\n },\n status: payload.status,\n });\n\n await streamResponseToLambda(response, responseStream, runtime, phases);\n }\n });\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\nexport type { RouterInstrumentation } from \"../trace.js\";\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\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\nexport interface AwsLambdaHttpResultV2 {\n body: string;\n cookies?: string[] | undefined;\n headers?: Record<string, string> | undefined;\n isBase64Encoded: boolean;\n statusCode: number;\n}\n\nexport interface AwsLambdaStreamingResponseMetadata {\n cookies?: string[] | undefined;\n headers: Record<string, string>;\n statusCode: number;\n}\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\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\nexport type AwsLambdaImportPolicy =\n | AppRouterImportPolicy\n | \"generated\"\n | { fromManifest: true };\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\nexport type AwsLambdaRequestHandler = (\n event: AwsLambdaHttpEventV2,\n) => Promise<AwsLambdaHttpResultV2>;\n\nexport type AwsLambdaStreamingRequestHandler<TContext = unknown> = (\n event: AwsLambdaHttpEventV2,\n responseStream: AwsLambdaStreamingResponseStream,\n context: TContext,\n) => Promise<void>;\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\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\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\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"]}
|
package/dist/build.d.ts
CHANGED
|
@@ -2,12 +2,19 @@ import type { AppRoute } from "./routes.js";
|
|
|
2
2
|
import { type AppRouterProjectOptions, type AppRouterBuildTarget } from "./config.js";
|
|
3
3
|
import type { ModuleMetadata } from "@reckona/mreact-compiler";
|
|
4
4
|
import type { RouteCachePolicy } from "./cache.js";
|
|
5
|
-
import type
|
|
5
|
+
import { type AppRouterImportPolicy } from "./import-policy.js";
|
|
6
|
+
import type { PluginOption, UserConfig } from "vite";
|
|
6
7
|
export interface BuildAppOptions extends AppRouterProjectOptions {
|
|
8
|
+
onBuildPhaseTiming?: ((timing: BuildAppPhaseTiming) => void) | undefined;
|
|
7
9
|
outDir: string;
|
|
8
10
|
targets?: readonly AppRouterBuildTarget[] | undefined;
|
|
9
11
|
viteConfig?: Pick<UserConfig, "plugins"> | undefined;
|
|
10
12
|
}
|
|
13
|
+
export type BuildAppPhase = "scan" | "collectFiles" | "analyzeSources" | "validate" | "prepareOutput" | "publicAssets" | "serverActionManifest" | "serverModules" | "importPolicy" | "serverModuleArtifacts" | "clientBundles" | "navigationRuntime" | "prerender" | "cloudflare" | "writeManifests" | "adapterArtifacts";
|
|
14
|
+
export interface BuildAppPhaseTiming {
|
|
15
|
+
ms: number;
|
|
16
|
+
phase: BuildAppPhase;
|
|
17
|
+
}
|
|
11
18
|
export interface BuildAppResult {
|
|
12
19
|
routes: AppRoute[];
|
|
13
20
|
}
|
|
@@ -38,6 +45,7 @@ export interface CloudflarePagesArtifactManifest {
|
|
|
38
45
|
}
|
|
39
46
|
export interface PackageAwsLambdaArtifactOptions {
|
|
40
47
|
fromDir: string;
|
|
48
|
+
handlerEntry?: string | undefined;
|
|
41
49
|
outDir: string;
|
|
42
50
|
skipRuntimeDependencyCheck?: boolean | undefined;
|
|
43
51
|
}
|
|
@@ -110,6 +118,35 @@ export interface BuiltPrerenderedRoute {
|
|
|
110
118
|
status: number;
|
|
111
119
|
}
|
|
112
120
|
export declare function buildApp(options: BuildAppOptions): Promise<BuildAppResult>;
|
|
121
|
+
export declare function __mapWithBuildConcurrencyForTests<T, R>(items: readonly T[], map: (item: T, index: number) => Promise<R>, concurrency?: number): Promise<R[]>;
|
|
122
|
+
export declare function __writeServerModuleArtifactFilesForTests(serverDir: string, serverModules: Record<string, BuiltServerModuleArtifact>): Promise<{
|
|
123
|
+
files: Record<string, string>;
|
|
124
|
+
renderFiles: Record<string, string>;
|
|
125
|
+
requestFiles: Record<string, string>;
|
|
126
|
+
}>;
|
|
127
|
+
export declare function __bundleRouteRequestModuleBatchForTests(options: {
|
|
128
|
+
appDir: string;
|
|
129
|
+
cacheDir?: string | undefined;
|
|
130
|
+
entries: readonly RouteRequestModuleBatchEntry[];
|
|
131
|
+
importPolicy?: AppRouterImportPolicy | undefined;
|
|
132
|
+
vitePlugins?: readonly PluginOption[] | undefined;
|
|
133
|
+
}): Promise<Record<string, string>>;
|
|
134
|
+
interface RouteRequestModuleBatchEntry {
|
|
135
|
+
code: string;
|
|
136
|
+
filename: string;
|
|
137
|
+
key: string;
|
|
138
|
+
label: "Loader" | "Metadata";
|
|
139
|
+
}
|
|
140
|
+
export declare function __buildCloudflareRouteLoaderModuleBatchForTests(options: {
|
|
141
|
+
cacheDir?: string | undefined;
|
|
142
|
+
projectRoot: string;
|
|
143
|
+
routes: readonly {
|
|
144
|
+
filename: string;
|
|
145
|
+
routeId: string;
|
|
146
|
+
}[];
|
|
147
|
+
vitePlugins?: readonly PluginOption[] | undefined;
|
|
148
|
+
}): Promise<Record<string, string>>;
|
|
113
149
|
export declare function packageAwsLambdaArtifact(options: PackageAwsLambdaArtifactOptions): Promise<AwsLambdaArtifactManifest>;
|
|
114
150
|
export declare function packageCloudflarePagesArtifact(options: PackageCloudflarePagesArtifactOptions): Promise<CloudflarePagesArtifactManifest>;
|
|
151
|
+
export {};
|
|
115
152
|
//# sourceMappingURL=build.d.ts.map
|
package/dist/build.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../src/build.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../src/build.ts"],"names":[],"mappings":"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"}
|