@reckona/mreact-router 0.0.201 → 0.0.203
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 +6 -3
- package/dist/actions.d.ts +2 -3
- package/dist/actions.d.ts.map +1 -1
- package/dist/actions.js +61 -41
- package/dist/actions.js.map +1 -1
- package/dist/adapters/cloudflare.d.ts +3 -1
- package/dist/adapters/cloudflare.d.ts.map +1 -1
- package/dist/adapters/cloudflare.js +74 -11
- package/dist/adapters/cloudflare.js.map +1 -1
- package/dist/adapters/node.d.ts +7 -0
- package/dist/adapters/node.d.ts.map +1 -1
- package/dist/adapters/node.js +7 -1
- package/dist/adapters/node.js.map +1 -1
- package/dist/adapters/static.d.ts.map +1 -1
- package/dist/adapters/static.js +14 -3
- package/dist/adapters/static.js.map +1 -1
- package/dist/build.d.ts +5 -0
- package/dist/build.d.ts.map +1 -1
- package/dist/build.js +137 -14
- package/dist/build.js.map +1 -1
- package/dist/built-runtime.d.ts +4 -1
- package/dist/built-runtime.d.ts.map +1 -1
- package/dist/built-runtime.js.map +1 -1
- package/dist/cache.d.ts +27 -1
- package/dist/cache.d.ts.map +1 -1
- package/dist/cache.js +83 -16
- package/dist/cache.js.map +1 -1
- package/dist/cli-options.d.ts +7 -0
- package/dist/cli-options.d.ts.map +1 -1
- package/dist/cli-options.js +27 -2
- package/dist/cli-options.js.map +1 -1
- package/dist/cli.js +3 -2
- package/dist/cli.js.map +1 -1
- package/dist/client.d.ts +5 -0
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +11 -2
- package/dist/client.js.map +1 -1
- package/dist/navigation-marker.d.ts +2 -0
- package/dist/navigation-marker.d.ts.map +1 -0
- package/dist/navigation-marker.js +294 -0
- package/dist/navigation-marker.js.map +1 -0
- package/dist/navigation-runtime.d.ts +1 -1
- package/dist/navigation-runtime.d.ts.map +1 -1
- package/dist/navigation-runtime.js +1 -1
- package/dist/navigation-runtime.js.map +1 -1
- package/dist/node-server.d.ts +6 -0
- package/dist/node-server.d.ts.map +1 -1
- package/dist/node-server.js +19 -1
- package/dist/node-server.js.map +1 -1
- package/dist/prerender-entry.d.ts +7 -0
- package/dist/prerender-entry.d.ts.map +1 -0
- package/dist/prerender-entry.js +99 -0
- package/dist/prerender-entry.js.map +1 -0
- package/dist/render.d.ts +20 -1
- package/dist/render.d.ts.map +1 -1
- package/dist/render.js +190 -110
- package/dist/render.js.map +1 -1
- package/dist/request-header-tracking.d.ts +44 -0
- package/dist/request-header-tracking.d.ts.map +1 -0
- package/dist/request-header-tracking.js +116 -0
- package/dist/request-header-tracking.js.map +1 -0
- package/dist/route-source.d.ts +16 -0
- package/dist/route-source.d.ts.map +1 -1
- package/dist/route-source.js +55 -1
- package/dist/route-source.js.map +1 -1
- package/dist/security-headers.d.ts +16 -0
- package/dist/security-headers.d.ts.map +1 -1
- package/dist/security-headers.js +37 -0
- package/dist/security-headers.js.map +1 -1
- package/dist/serve.d.ts +10 -0
- package/dist/serve.d.ts.map +1 -1
- package/dist/serve.js +132 -42
- package/dist/serve.js.map +1 -1
- package/package.json +11 -11
- package/src/actions.ts +72 -56
- package/src/adapters/cloudflare.ts +118 -16
- package/src/adapters/node.ts +14 -1
- package/src/adapters/static.ts +18 -5
- package/src/build.ts +176 -12
- package/src/built-runtime.ts +2 -2
- package/src/cache.ts +127 -15
- package/src/cli-options.ts +39 -2
- package/src/cli.ts +7 -1
- package/src/client.ts +15 -2
- package/src/navigation-marker.ts +353 -0
- package/src/navigation-runtime.ts +1 -0
- package/src/node-server.ts +27 -1
- package/src/prerender-entry.ts +129 -0
- package/src/render.ts +267 -121
- package/src/request-header-tracking.ts +161 -0
- package/src/route-source.ts +71 -0
- package/src/security-headers.ts +41 -0
- package/src/serve.ts +188 -48
package/dist/cli-options.js
CHANGED
|
@@ -58,6 +58,13 @@ export function parseCliArguments(argv) {
|
|
|
58
58
|
index += 1;
|
|
59
59
|
continue;
|
|
60
60
|
}
|
|
61
|
+
if (value === "--trust-forwarded-proto") {
|
|
62
|
+
if (command !== "start") {
|
|
63
|
+
throw new Error("--trust-forwarded-proto is only supported by the start command");
|
|
64
|
+
}
|
|
65
|
+
parsed.trustForwardedProto = true;
|
|
66
|
+
continue;
|
|
67
|
+
}
|
|
61
68
|
if (value.startsWith("--allowed-hosts=")) {
|
|
62
69
|
parsed.allowedHosts = parseCliAllowedHosts(value.slice("--allowed-hosts=".length));
|
|
63
70
|
continue;
|
|
@@ -240,10 +247,13 @@ export function formatCliHelp(command) {
|
|
|
240
247
|
"",
|
|
241
248
|
"Options:",
|
|
242
249
|
" --host <host> Bind address. Default: 127.0.0.1. Use 0.0.0.0 inside containers behind explicit port publishing or a reverse proxy.",
|
|
250
|
+
" --port <port> TCP port. Overrides PORT. Default: 3001.",
|
|
243
251
|
" --host-policy=strict|trusted-proxy",
|
|
244
252
|
" Control Host header trust for request origin reconstruction.",
|
|
245
253
|
" --allowed-hosts <host[,host...]>",
|
|
246
254
|
" Exact Host header allow-list for public deployments.",
|
|
255
|
+
" --trust-forwarded-proto",
|
|
256
|
+
" Trust the first X-Forwarded-Proto value. Enable only when a trusted proxy overwrites the header and the Node port is not publicly reachable.",
|
|
247
257
|
" --log=requests Print request summaries.",
|
|
248
258
|
" -h, --help Show this help message.",
|
|
249
259
|
"",
|
|
@@ -253,6 +263,8 @@ export function formatCliHelp(command) {
|
|
|
253
263
|
" Host header trust policy when --host-policy is not set.",
|
|
254
264
|
" MREACT_ROUTER_ALLOWED_HOSTS",
|
|
255
265
|
" Comma-separated Host header allow-list when --allowed-hosts is not set.",
|
|
266
|
+
" MREACT_ROUTER_TRUST_FORWARDED_PROTO",
|
|
267
|
+
" Set to 1 to trust X-Forwarded-Proto when the flag is not set.",
|
|
256
268
|
" PORT TCP port. Default: 3001.",
|
|
257
269
|
].join("\n");
|
|
258
270
|
}
|
|
@@ -345,6 +357,13 @@ export function resolveCliDevPort(flagValue, env, viteConfigPort) {
|
|
|
345
357
|
const envValue = env.PORT;
|
|
346
358
|
return envValue === undefined || envValue === "" ? viteConfigPort : parseCliPort(envValue);
|
|
347
359
|
}
|
|
360
|
+
export function resolveCliStartPort(flagValue, env) {
|
|
361
|
+
if (flagValue !== undefined) {
|
|
362
|
+
return flagValue;
|
|
363
|
+
}
|
|
364
|
+
const envValue = env.PORT;
|
|
365
|
+
return envValue === undefined || envValue === "" ? 3001 : parseCliPort(envValue, "PORT");
|
|
366
|
+
}
|
|
348
367
|
export function resolveCliHostPolicy(flagValue, env) {
|
|
349
368
|
if (flagValue !== undefined) {
|
|
350
369
|
return flagValue;
|
|
@@ -359,6 +378,12 @@ export function resolveCliAllowedHosts(flagValue, env) {
|
|
|
359
378
|
const envValue = env.MREACT_ROUTER_ALLOWED_HOSTS;
|
|
360
379
|
return envValue === undefined || envValue === "" ? undefined : parseCliAllowedHosts(envValue);
|
|
361
380
|
}
|
|
381
|
+
export function resolveCliTrustForwardedProto(flagValue, env) {
|
|
382
|
+
if (flagValue !== undefined) {
|
|
383
|
+
return flagValue;
|
|
384
|
+
}
|
|
385
|
+
return env.MREACT_ROUTER_TRUST_FORWARDED_PROTO === "1";
|
|
386
|
+
}
|
|
362
387
|
export function createCliRequestLogger() {
|
|
363
388
|
return {
|
|
364
389
|
error(event) {
|
|
@@ -379,12 +404,12 @@ function parseCliRequestLogMode(value) {
|
|
|
379
404
|
}
|
|
380
405
|
throw new Error(`Unsupported log mode ${JSON.stringify(value)}. Expected "requests".`);
|
|
381
406
|
}
|
|
382
|
-
function parseCliPort(value) {
|
|
407
|
+
function parseCliPort(value, source = "port") {
|
|
383
408
|
const port = Number(value);
|
|
384
409
|
if (Number.isInteger(port) && port >= 0 && port <= 65535) {
|
|
385
410
|
return port;
|
|
386
411
|
}
|
|
387
|
-
throw new Error(`Unsupported
|
|
412
|
+
throw new Error(`Unsupported ${source} ${JSON.stringify(value)}. Expected an integer from 0 to 65535.`);
|
|
388
413
|
}
|
|
389
414
|
function parseCliHostPolicy(value) {
|
|
390
415
|
if (value === "strict" || value === "trusted-proxy") {
|
package/dist/cli-options.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-options.js","sourceRoot":"","sources":["../src/cli-options.ts"],"names":[],"mappings":"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","sourcesContent":["import type { AppRouterLogger, AppRouterLogEvent } from \"./logger.js\";\nimport {\n appRouterBuildTargetMetadata,\n type AppRouterBuildTarget,\n type AppRouterClientSourceMapMode,\n} from \"./config.js\";\nimport type { RequestHostPolicy } from \"./serve.js\";\nimport type { AwsLambdaGeneratedHandlerPreloadMode } from \"./build.js\";\n\nexport type CliRequestLogMode = \"requests\";\nexport type CliBuildTarget = AppRouterBuildTarget | \"all\";\n\nexport interface ParsedCliArguments {\n awsLambdaPreload?: AwsLambdaGeneratedHandlerPreloadMode | undefined;\n awsLambdaPreloadRoutes?: readonly string[] | undefined;\n clientSourceMaps?: AppRouterClientSourceMapMode | undefined;\n command: string;\n allowedHosts?: readonly string[] | undefined;\n from?: string | undefined;\n handler?: string | undefined;\n help?: boolean | undefined;\n host?: string | undefined;\n hostPolicy?: RequestHostPolicy | undefined;\n json?: boolean | undefined;\n log?: CliRequestLogMode | undefined;\n out?: string | undefined;\n port?: number | undefined;\n routeArg?: string | undefined;\n skipRuntimeDependencyCheck?: boolean | undefined;\n target?: CliBuildTarget | undefined;\n worker?: string | undefined;\n}\n\nexport function parseCliArguments(argv: readonly string[]): ParsedCliArguments {\n const first = argv[0];\n const rootHelp = first === \"--help\" || first === \"-h\";\n const command = rootHelp ? \"help\" : first === undefined || first.startsWith(\"-\") ? \"dev\" : first;\n const parsed: ParsedCliArguments = rootHelp ? { command, help: true } : { command };\n const startIndex = rootHelp || command === first ? 1 : 0;\n\n for (let index = startIndex; index < argv.length; index += 1) {\n const value = argv[index];\n\n if (value === undefined) {\n continue;\n }\n\n if (value === \"--help\" || value === \"-h\") {\n parsed.help = true;\n continue;\n }\n\n if (value === \"--json\") {\n if (command !== \"boundaries\") {\n throw new Error(\"--json is only supported by the boundaries command\");\n }\n parsed.json = true;\n continue;\n }\n\n if (value === \"--log\") {\n parsed.log = parseCliRequestLogMode(readOptionValue(argv, index, \"log\"));\n index += 1;\n continue;\n }\n\n if (value === \"--port\") {\n parsed.port = parseCliPort(readOptionValue(argv, index, \"port\"));\n index += 1;\n continue;\n }\n\n if (value.startsWith(\"--port=\")) {\n parsed.port = parseCliPort(value.slice(\"--port=\".length));\n continue;\n }\n\n if (value === \"--host\") {\n parsed.host = readOptionValue(argv, index, \"host\");\n index += 1;\n continue;\n }\n\n if (value.startsWith(\"--host=\")) {\n parsed.host = value.slice(\"--host=\".length);\n continue;\n }\n\n if (value === \"--host-policy\") {\n parsed.hostPolicy = parseCliHostPolicy(readOptionValue(argv, index, \"host-policy\"));\n index += 1;\n continue;\n }\n\n if (value.startsWith(\"--host-policy=\")) {\n parsed.hostPolicy = parseCliHostPolicy(value.slice(\"--host-policy=\".length));\n continue;\n }\n\n if (value === \"--allowed-hosts\") {\n parsed.allowedHosts = parseCliAllowedHosts(readOptionValue(argv, index, \"allowed-hosts\"));\n index += 1;\n continue;\n }\n\n if (value.startsWith(\"--allowed-hosts=\")) {\n parsed.allowedHosts = parseCliAllowedHosts(value.slice(\"--allowed-hosts=\".length));\n continue;\n }\n\n if (value === \"--from\") {\n parsed.from = readOptionValue(argv, index, \"from\");\n index += 1;\n continue;\n }\n\n if (value.startsWith(\"--from=\")) {\n parsed.from = value.slice(\"--from=\".length);\n continue;\n }\n\n if (value === \"--out\") {\n parsed.out = readOptionValue(argv, index, \"out\");\n index += 1;\n continue;\n }\n\n if (value.startsWith(\"--out=\")) {\n parsed.out = value.slice(\"--out=\".length);\n continue;\n }\n\n if (value === \"--skip-runtime-dependency-check\") {\n parsed.skipRuntimeDependencyCheck = true;\n continue;\n }\n\n if (value === \"--handler\") {\n parsed.handler = readOptionValue(argv, index, \"handler\");\n index += 1;\n continue;\n }\n\n if (value.startsWith(\"--handler=\")) {\n parsed.handler = value.slice(\"--handler=\".length);\n continue;\n }\n\n if (value === \"--worker\") {\n parsed.worker = readOptionValue(argv, index, \"worker\");\n index += 1;\n continue;\n }\n\n if (value.startsWith(\"--worker=\")) {\n parsed.worker = value.slice(\"--worker=\".length);\n continue;\n }\n\n if (value.startsWith(\"--log=\")) {\n parsed.log = parseCliRequestLogMode(value.slice(\"--log=\".length));\n continue;\n }\n\n if (value === \"--target\") {\n parsed.target = parseCliBuildTarget(readOptionValue(argv, index, \"target\"));\n index += 1;\n continue;\n }\n\n if (value.startsWith(\"--target=\")) {\n parsed.target = parseCliBuildTarget(value.slice(\"--target=\".length));\n continue;\n }\n\n if (value === \"--client-source-maps\") {\n parsed.clientSourceMaps = parseCliClientSourceMapMode(\n readOptionValue(argv, index, \"client-source-maps\"),\n );\n index += 1;\n continue;\n }\n\n if (value === \"--aws-lambda-preload\") {\n parsed.awsLambdaPreload = parseCliAwsLambdaPreloadMode(\n readOptionValue(argv, index, \"aws-lambda-preload\"),\n );\n index += 1;\n continue;\n }\n\n if (value.startsWith(\"--aws-lambda-preload=\")) {\n parsed.awsLambdaPreload = parseCliAwsLambdaPreloadMode(\n value.slice(\"--aws-lambda-preload=\".length),\n );\n continue;\n }\n\n if (value === \"--aws-lambda-preload-routes\") {\n parsed.awsLambdaPreloadRoutes = parseCliAwsLambdaPreloadRoutes(\n readOptionValue(argv, index, \"aws-lambda-preload-routes\"),\n );\n index += 1;\n continue;\n }\n\n if (value.startsWith(\"--aws-lambda-preload-routes=\")) {\n parsed.awsLambdaPreloadRoutes = parseCliAwsLambdaPreloadRoutes(\n value.slice(\"--aws-lambda-preload-routes=\".length),\n );\n continue;\n }\n\n if (value.startsWith(\"--client-source-maps=\")) {\n parsed.clientSourceMaps = parseCliClientSourceMapMode(\n value.slice(\"--client-source-maps=\".length),\n );\n continue;\n }\n\n if (value.startsWith(\"-\")) {\n throw new Error(`Unknown option ${value}`);\n }\n\n if (parsed.routeArg !== undefined) {\n throw new Error(`Unexpected argument ${value}`);\n }\n\n parsed.routeArg = value;\n }\n\n return parsed;\n}\n\nexport function formatCliHelp(command?: string | undefined): string {\n const defaultTargetLabel = formatBuildTargetDisplayList(\n appRouterBuildTargetMetadata.defaultTargets,\n );\n const allTargetValues = formatBuildTargetValueList(appRouterBuildTargetMetadata.allTargets);\n\n if (command === \"build\") {\n return [\n \"Usage: mreact-router build [appDir] [options]\",\n \"\",\n \"Build an mreact app router project.\",\n \"\",\n \"Options:\",\n \" --target=node|cloudflare|aws-lambda|all\",\n ` Select build artifacts. Defaults to ${defaultTargetLabel.toLowerCase()}. all selects ${allTargetValues}. aws-lambda writes .mreact/aws-lambda/mreact-handler.mjs and .mreact/server/import-policy.json.`,\n \" --client-source-maps=none|hidden\",\n \" Control production client source map output.\",\n \" --aws-lambda-preload=middleware|hot-route-requests|all|none\",\n \" Select generated Lambda initialization preload. Defaults to middleware.\",\n \" --aws-lambda-preload-routes=/,/login\",\n \" Select routes for hot-route-requests initialization preload.\",\n \" -h, --help\",\n \" Show this help message.\",\n \"\",\n \"Examples:\",\n \" mreact-router build --target=node\",\n \" mreact-router build --target=cloudflare\",\n \" mreact-router build --target=aws-lambda\",\n \" mreact-router build --target=all\",\n ].join(\"\\n\");\n }\n\n if (command === \"boundaries\") {\n return [\n \"Usage: mreact-router boundaries [appDir] [options]\",\n \"\",\n \"Inspect server and client component boundaries for every route without building.\",\n \"\",\n \"Project resolution:\",\n \" Without appDir, load the same Vite project configuration as build.\",\n \" With appDir, inspect that directory directly.\",\n \"\",\n \"Classifications:\",\n \" server-render, client-boundary, client-route, server-only, shared, unknown\",\n \"\",\n \"Options:\",\n \" --json Print a machine-readable versioned report.\",\n \" -h, --help Show this help message.\",\n \"\",\n \"Examples:\",\n \" mreact-router boundaries\",\n \" mreact-router boundaries src/app --json\",\n ].join(\"\\n\");\n }\n\n if (command === \"package\") {\n return [\n \"Usage: mreact-router package <target> [options]\",\n \"\",\n \"Package generated build output into a deployable artifact directory.\",\n \"\",\n \"Targets:\",\n \" aws-lambda Minimal AWS Lambda asset directory.\",\n \" cloudflare-pages Cloudflare Pages advanced mode output with _worker.js.\",\n \"\",\n \"Options:\",\n \" --from <dir> Build output directory. Default: .mreact\",\n \" --out <dir> Output directory. Defaults to .lambda for aws-lambda and .mreact/pages for cloudflare-pages.\",\n \" --skip-runtime-dependency-check\",\n \" For aws-lambda only, skip the production node_modules check when a later deploy step installs dependencies into the package directory.\",\n \" --handler <entry>\",\n \" For aws-lambda only, bundle a custom handler entry into mreact-handler.mjs. App-local extensionless TypeScript imports are bundled; package imports stay external.\",\n \" --worker <entry>\",\n \" For cloudflare-pages only, bundle a custom Worker entry into _worker.js.\",\n \" --aws-lambda-preload=middleware|hot-route-requests|all|none\",\n \" Override generated Lambda initialization preload. Omission preserves the build policy; legacy output without policy metadata falls back to middleware.\",\n \" --aws-lambda-preload-routes=/,/login\",\n \" Select routes for hot-route-requests initialization preload.\",\n \" -h, --help Show this help message.\",\n \"\",\n \"Examples:\",\n \" mreact-router package aws-lambda --from .mreact --out .lambda\",\n \" mreact-router package cloudflare-pages --from .mreact --out .mreact/pages\",\n ].join(\"\\n\");\n }\n\n if (command === \"start\") {\n return [\n \"Usage: mreact-router start [outDir] [options]\",\n \"\",\n \"Serve built mreact app router output with the Node adapter.\",\n \"\",\n \"Options:\",\n \" --host <host> Bind address. Default: 127.0.0.1. Use 0.0.0.0 inside containers behind explicit port publishing or a reverse proxy.\",\n \" --host-policy=strict|trusted-proxy\",\n \" Control Host header trust for request origin reconstruction.\",\n \" --allowed-hosts <host[,host...]>\",\n \" Exact Host header allow-list for public deployments.\",\n \" --log=requests Print request summaries.\",\n \" -h, --help Show this help message.\",\n \"\",\n \"Environment:\",\n \" HOST Bind address when --host is not set.\",\n \" MREACT_ROUTER_HOST_POLICY\",\n \" Host header trust policy when --host-policy is not set.\",\n \" MREACT_ROUTER_ALLOWED_HOSTS\",\n \" Comma-separated Host header allow-list when --allowed-hosts is not set.\",\n \" PORT TCP port. Default: 3001.\",\n ].join(\"\\n\");\n }\n\n if (command === \"dev\") {\n return [\n \"Usage: mreact-router dev [appDir] [options]\",\n \"\",\n \"Start the mreact app router development server.\",\n \"\",\n \"Options:\",\n \" --host <host> Bind address. Default: 127.0.0.1. Use 0.0.0.0 for LAN or device testing.\",\n \" --port <port> TCP port. Overrides PORT and vite.config.ts server.port.\",\n \" --log=requests Print request summaries.\",\n \" -h, --help Show this help message.\",\n \"\",\n \"Environment:\",\n \" HOST Bind address when --host is not set.\",\n \" PORT TCP port when --port is not set.\",\n ].join(\"\\n\");\n }\n\n return [\n \"Usage: mreact-router <command> [options]\",\n \"\",\n \"Commands:\",\n \" dev [appDir] Start the development server.\",\n ` build [appDir] Build ${defaultTargetLabel} artifacts by default.`,\n \" boundaries [appDir] Inspect route and component boundaries.\",\n \" build --target=aws-lambda Build Lambda artifacts including generated handler and import policy.\",\n \" start [outDir] Serve built Node output.\",\n \" package aws-lambda --from .mreact --out .lambda\",\n \" Package a minimal AWS Lambda asset directory.\",\n \" package aws-lambda --handler lambda/mreact-handler.ts\",\n \" Bundle a custom Lambda handler with app-local server imports.\",\n \" package cloudflare-pages --from .mreact --out .mreact/pages\",\n \" Package Cloudflare Pages advanced mode output.\",\n \" help [command] Show help.\",\n \"\",\n \"Options:\",\n \" -h, --help Show this help message.\",\n \" --log=requests Print request summaries for dev/start.\",\n \"\",\n \"Examples:\",\n \" mreact-router build --target=cloudflare\",\n \" mreact-router build --target=aws-lambda\",\n \" mreact-router build --target=all\",\n \" mreact-router package aws-lambda --from .mreact --out .lambda\",\n \" mreact-router build --help\",\n ].join(\"\\n\");\n}\n\nexport function buildTargetsFromCliTarget(\n target: CliBuildTarget | undefined,\n): readonly AppRouterBuildTarget[] | undefined {\n if (target === undefined) {\n return undefined;\n }\n\n return target === \"all\" ? appRouterBuildTargetMetadata.allTargets : [target];\n}\n\nfunction formatBuildTargetDisplayList(targets: readonly AppRouterBuildTarget[]): string {\n return targets.map(formatBuildTargetDisplayName).join(\", \");\n}\n\nfunction formatBuildTargetDisplayName(target: AppRouterBuildTarget): string {\n if (target === \"aws-lambda\") return \"AWS Lambda\";\n return target[0]?.toUpperCase() + target.slice(1);\n}\n\nfunction formatBuildTargetValueList(targets: readonly AppRouterBuildTarget[]): string {\n if (targets.length < 2) return targets[0] ?? \"\";\n return `${targets.slice(0, -1).join(\", \")}, and ${targets.at(-1)}`;\n}\n\nexport function resolveCliRequestLogMode(\n flagValue: CliRequestLogMode | undefined,\n env: { MREACT_ROUTER_LOG?: string | undefined },\n): CliRequestLogMode | undefined {\n if (flagValue !== undefined) {\n return flagValue;\n }\n\n const envValue = env.MREACT_ROUTER_LOG;\n if (envValue === undefined || envValue === \"\") {\n return undefined;\n }\n\n return parseCliRequestLogMode(envValue);\n}\n\nexport function resolveCliHost(\n flagValue: string | undefined,\n env: { HOST?: string | undefined },\n): string {\n if (flagValue !== undefined && flagValue !== \"\") {\n return flagValue;\n }\n\n const envValue = env.HOST;\n return envValue === undefined || envValue === \"\" ? \"127.0.0.1\" : envValue;\n}\n\nexport function resolveCliDevPort(\n flagValue: number | undefined,\n env: { PORT?: string | undefined },\n viteConfigPort: number | undefined,\n): number | undefined {\n if (flagValue !== undefined) {\n return flagValue;\n }\n\n const envValue = env.PORT;\n return envValue === undefined || envValue === \"\" ? viteConfigPort : parseCliPort(envValue);\n}\n\nexport function resolveCliHostPolicy(\n flagValue: RequestHostPolicy | undefined,\n env: { MREACT_ROUTER_HOST_POLICY?: string | undefined },\n): RequestHostPolicy | undefined {\n if (flagValue !== undefined) {\n return flagValue;\n }\n\n const envValue = env.MREACT_ROUTER_HOST_POLICY;\n return envValue === undefined || envValue === \"\" ? undefined : parseCliHostPolicy(envValue);\n}\n\nexport function resolveCliAllowedHosts(\n flagValue: readonly string[] | undefined,\n env: { MREACT_ROUTER_ALLOWED_HOSTS?: string | undefined },\n): readonly string[] | undefined {\n if (flagValue !== undefined) {\n return flagValue;\n }\n\n const envValue = env.MREACT_ROUTER_ALLOWED_HOSTS;\n return envValue === undefined || envValue === \"\" ? undefined : parseCliAllowedHosts(envValue);\n}\n\nexport function createCliRequestLogger(): AppRouterLogger {\n return {\n error(event) {\n if (event.type === \"router:request:error\") {\n console.error(formatCliRequestLogEvent(event));\n }\n },\n info(event) {\n if (event.type === \"router:request:end\") {\n console.log(formatCliRequestLogEvent(event));\n }\n },\n };\n}\n\nfunction parseCliRequestLogMode(value: string): CliRequestLogMode {\n if (value === \"requests\") {\n return value;\n }\n\n throw new Error(`Unsupported log mode ${JSON.stringify(value)}. Expected \"requests\".`);\n}\n\nfunction parseCliPort(value: string): number {\n const port = Number(value);\n\n if (Number.isInteger(port) && port >= 0 && port <= 65535) {\n return port;\n }\n\n throw new Error(\n `Unsupported port ${JSON.stringify(value)}. Expected an integer from 0 to 65535.`,\n );\n}\n\nfunction parseCliHostPolicy(value: string): RequestHostPolicy {\n if (value === \"strict\" || value === \"trusted-proxy\") {\n return value;\n }\n\n throw new Error(\n `Unsupported host policy ${JSON.stringify(value)}. Expected \"strict\" or \"trusted-proxy\".`,\n );\n}\n\nfunction parseCliAllowedHosts(value: string): readonly string[] {\n return value\n .split(\",\")\n .map((entry) => entry.trim())\n .filter((entry) => entry !== \"\");\n}\n\nfunction parseCliBuildTarget(value: string): CliBuildTarget {\n if (value === \"node\" || value === \"cloudflare\" || value === \"aws-lambda\" || value === \"all\") {\n return value;\n }\n\n throw new Error(\n `Unsupported build target ${JSON.stringify(value)}. Expected \"node\", \"cloudflare\", \"aws-lambda\", or \"all\".`,\n );\n}\n\nfunction parseCliClientSourceMapMode(value: string): AppRouterClientSourceMapMode {\n if (value === \"none\" || value === \"hidden\" || value === \"linked\") {\n return value;\n }\n\n throw new Error(\n `Unsupported client source map mode ${JSON.stringify(value)} for --client-source-maps. Expected \"none\", \"hidden\", or \"linked\".`,\n );\n}\n\nfunction parseCliAwsLambdaPreloadMode(value: string): AwsLambdaGeneratedHandlerPreloadMode {\n if (\n value === \"all\" ||\n value === \"hot-route-requests\" ||\n value === \"middleware\" ||\n value === \"none\"\n ) {\n return value;\n }\n\n throw new Error(\n `Unsupported aws-lambda-preload ${JSON.stringify(value)}. Expected \"middleware\", \"hot-route-requests\", \"all\", or \"none\".`,\n );\n}\n\nfunction parseCliAwsLambdaPreloadRoutes(value: string): readonly string[] {\n const routes = value.split(\",\").filter((route) => route.startsWith(\"/\"));\n if (routes.length === 0 || routes.join(\",\") !== value) {\n throw new Error(\"aws-lambda-preload-routes must be a comma-separated list of absolute routes.\");\n }\n return routes;\n}\n\nfunction readOptionValue(values: readonly string[], index: number, name: string): string {\n const value = values[index + 1];\n\n if (value === undefined || value.startsWith(\"-\")) {\n throw new Error(`Missing value for --${name}`);\n }\n\n return value;\n}\n\nfunction formatCliRequestLogEvent(event: AppRouterLogEvent): string {\n if (event.type === \"router:request:error\") {\n return `[mreact] ${event.method} ${event.path} error ${event.durationMs}ms ${event.runtime} ${event.error.name}: ${event.error.message}`;\n }\n\n if (event.type === \"router:request:end\") {\n return `[mreact] ${event.method} ${event.path} ${event.status} ${event.durationMs}ms ${event.runtime}`;\n }\n\n if (event.type === \"router:request:timing\") {\n return `[mreact] ${event.method} ${event.path} ${event.status} ${event.durationMs}ms ${event.runtime}`;\n }\n\n if (event.type === \"router:render:timing\") {\n return `[mreact] ${event.method} ${event.path} ${event.status} render timing`;\n }\n\n if (event.type === \"router:csp:inline-nonce-warning\") {\n return `[mreact] ${event.path} CSP ${event.directive} will block inline <${event.tag}> without a matching nonce`;\n }\n\n return `[mreact] ${event.method} ${event.path} ${event.runtime}`;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"cli-options.js","sourceRoot":"","sources":["../src/cli-options.ts"],"names":[],"mappings":"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","sourcesContent":["import type { AppRouterLogger, AppRouterLogEvent } from \"./logger.js\";\nimport {\n appRouterBuildTargetMetadata,\n type AppRouterBuildTarget,\n type AppRouterClientSourceMapMode,\n} from \"./config.js\";\nimport type { RequestHostPolicy } from \"./serve.js\";\nimport type { AwsLambdaGeneratedHandlerPreloadMode } from \"./build.js\";\n\nexport type CliRequestLogMode = \"requests\";\nexport type CliBuildTarget = AppRouterBuildTarget | \"all\";\n\nexport interface ParsedCliArguments {\n awsLambdaPreload?: AwsLambdaGeneratedHandlerPreloadMode | undefined;\n awsLambdaPreloadRoutes?: readonly string[] | undefined;\n clientSourceMaps?: AppRouterClientSourceMapMode | undefined;\n command: string;\n allowedHosts?: readonly string[] | undefined;\n from?: string | undefined;\n handler?: string | undefined;\n help?: boolean | undefined;\n host?: string | undefined;\n hostPolicy?: RequestHostPolicy | undefined;\n json?: boolean | undefined;\n log?: CliRequestLogMode | undefined;\n out?: string | undefined;\n port?: number | undefined;\n routeArg?: string | undefined;\n skipRuntimeDependencyCheck?: boolean | undefined;\n target?: CliBuildTarget | undefined;\n trustForwardedProto?: boolean | undefined;\n worker?: string | undefined;\n}\n\nexport function parseCliArguments(argv: readonly string[]): ParsedCliArguments {\n const first = argv[0];\n const rootHelp = first === \"--help\" || first === \"-h\";\n const command = rootHelp ? \"help\" : first === undefined || first.startsWith(\"-\") ? \"dev\" : first;\n const parsed: ParsedCliArguments = rootHelp ? { command, help: true } : { command };\n const startIndex = rootHelp || command === first ? 1 : 0;\n\n for (let index = startIndex; index < argv.length; index += 1) {\n const value = argv[index];\n\n if (value === undefined) {\n continue;\n }\n\n if (value === \"--help\" || value === \"-h\") {\n parsed.help = true;\n continue;\n }\n\n if (value === \"--json\") {\n if (command !== \"boundaries\") {\n throw new Error(\"--json is only supported by the boundaries command\");\n }\n parsed.json = true;\n continue;\n }\n\n if (value === \"--log\") {\n parsed.log = parseCliRequestLogMode(readOptionValue(argv, index, \"log\"));\n index += 1;\n continue;\n }\n\n if (value === \"--port\") {\n parsed.port = parseCliPort(readOptionValue(argv, index, \"port\"));\n index += 1;\n continue;\n }\n\n if (value.startsWith(\"--port=\")) {\n parsed.port = parseCliPort(value.slice(\"--port=\".length));\n continue;\n }\n\n if (value === \"--host\") {\n parsed.host = readOptionValue(argv, index, \"host\");\n index += 1;\n continue;\n }\n\n if (value.startsWith(\"--host=\")) {\n parsed.host = value.slice(\"--host=\".length);\n continue;\n }\n\n if (value === \"--host-policy\") {\n parsed.hostPolicy = parseCliHostPolicy(readOptionValue(argv, index, \"host-policy\"));\n index += 1;\n continue;\n }\n\n if (value.startsWith(\"--host-policy=\")) {\n parsed.hostPolicy = parseCliHostPolicy(value.slice(\"--host-policy=\".length));\n continue;\n }\n\n if (value === \"--allowed-hosts\") {\n parsed.allowedHosts = parseCliAllowedHosts(readOptionValue(argv, index, \"allowed-hosts\"));\n index += 1;\n continue;\n }\n\n if (value === \"--trust-forwarded-proto\") {\n if (command !== \"start\") {\n throw new Error(\"--trust-forwarded-proto is only supported by the start command\");\n }\n parsed.trustForwardedProto = true;\n continue;\n }\n\n if (value.startsWith(\"--allowed-hosts=\")) {\n parsed.allowedHosts = parseCliAllowedHosts(value.slice(\"--allowed-hosts=\".length));\n continue;\n }\n\n if (value === \"--from\") {\n parsed.from = readOptionValue(argv, index, \"from\");\n index += 1;\n continue;\n }\n\n if (value.startsWith(\"--from=\")) {\n parsed.from = value.slice(\"--from=\".length);\n continue;\n }\n\n if (value === \"--out\") {\n parsed.out = readOptionValue(argv, index, \"out\");\n index += 1;\n continue;\n }\n\n if (value.startsWith(\"--out=\")) {\n parsed.out = value.slice(\"--out=\".length);\n continue;\n }\n\n if (value === \"--skip-runtime-dependency-check\") {\n parsed.skipRuntimeDependencyCheck = true;\n continue;\n }\n\n if (value === \"--handler\") {\n parsed.handler = readOptionValue(argv, index, \"handler\");\n index += 1;\n continue;\n }\n\n if (value.startsWith(\"--handler=\")) {\n parsed.handler = value.slice(\"--handler=\".length);\n continue;\n }\n\n if (value === \"--worker\") {\n parsed.worker = readOptionValue(argv, index, \"worker\");\n index += 1;\n continue;\n }\n\n if (value.startsWith(\"--worker=\")) {\n parsed.worker = value.slice(\"--worker=\".length);\n continue;\n }\n\n if (value.startsWith(\"--log=\")) {\n parsed.log = parseCliRequestLogMode(value.slice(\"--log=\".length));\n continue;\n }\n\n if (value === \"--target\") {\n parsed.target = parseCliBuildTarget(readOptionValue(argv, index, \"target\"));\n index += 1;\n continue;\n }\n\n if (value.startsWith(\"--target=\")) {\n parsed.target = parseCliBuildTarget(value.slice(\"--target=\".length));\n continue;\n }\n\n if (value === \"--client-source-maps\") {\n parsed.clientSourceMaps = parseCliClientSourceMapMode(\n readOptionValue(argv, index, \"client-source-maps\"),\n );\n index += 1;\n continue;\n }\n\n if (value === \"--aws-lambda-preload\") {\n parsed.awsLambdaPreload = parseCliAwsLambdaPreloadMode(\n readOptionValue(argv, index, \"aws-lambda-preload\"),\n );\n index += 1;\n continue;\n }\n\n if (value.startsWith(\"--aws-lambda-preload=\")) {\n parsed.awsLambdaPreload = parseCliAwsLambdaPreloadMode(\n value.slice(\"--aws-lambda-preload=\".length),\n );\n continue;\n }\n\n if (value === \"--aws-lambda-preload-routes\") {\n parsed.awsLambdaPreloadRoutes = parseCliAwsLambdaPreloadRoutes(\n readOptionValue(argv, index, \"aws-lambda-preload-routes\"),\n );\n index += 1;\n continue;\n }\n\n if (value.startsWith(\"--aws-lambda-preload-routes=\")) {\n parsed.awsLambdaPreloadRoutes = parseCliAwsLambdaPreloadRoutes(\n value.slice(\"--aws-lambda-preload-routes=\".length),\n );\n continue;\n }\n\n if (value.startsWith(\"--client-source-maps=\")) {\n parsed.clientSourceMaps = parseCliClientSourceMapMode(\n value.slice(\"--client-source-maps=\".length),\n );\n continue;\n }\n\n if (value.startsWith(\"-\")) {\n throw new Error(`Unknown option ${value}`);\n }\n\n if (parsed.routeArg !== undefined) {\n throw new Error(`Unexpected argument ${value}`);\n }\n\n parsed.routeArg = value;\n }\n\n return parsed;\n}\n\nexport function formatCliHelp(command?: string | undefined): string {\n const defaultTargetLabel = formatBuildTargetDisplayList(\n appRouterBuildTargetMetadata.defaultTargets,\n );\n const allTargetValues = formatBuildTargetValueList(appRouterBuildTargetMetadata.allTargets);\n\n if (command === \"build\") {\n return [\n \"Usage: mreact-router build [appDir] [options]\",\n \"\",\n \"Build an mreact app router project.\",\n \"\",\n \"Options:\",\n \" --target=node|cloudflare|aws-lambda|all\",\n ` Select build artifacts. Defaults to ${defaultTargetLabel.toLowerCase()}. all selects ${allTargetValues}. aws-lambda writes .mreact/aws-lambda/mreact-handler.mjs and .mreact/server/import-policy.json.`,\n \" --client-source-maps=none|hidden\",\n \" Control production client source map output.\",\n \" --aws-lambda-preload=middleware|hot-route-requests|all|none\",\n \" Select generated Lambda initialization preload. Defaults to middleware.\",\n \" --aws-lambda-preload-routes=/,/login\",\n \" Select routes for hot-route-requests initialization preload.\",\n \" -h, --help\",\n \" Show this help message.\",\n \"\",\n \"Examples:\",\n \" mreact-router build --target=node\",\n \" mreact-router build --target=cloudflare\",\n \" mreact-router build --target=aws-lambda\",\n \" mreact-router build --target=all\",\n ].join(\"\\n\");\n }\n\n if (command === \"boundaries\") {\n return [\n \"Usage: mreact-router boundaries [appDir] [options]\",\n \"\",\n \"Inspect server and client component boundaries for every route without building.\",\n \"\",\n \"Project resolution:\",\n \" Without appDir, load the same Vite project configuration as build.\",\n \" With appDir, inspect that directory directly.\",\n \"\",\n \"Classifications:\",\n \" server-render, client-boundary, client-route, server-only, shared, unknown\",\n \"\",\n \"Options:\",\n \" --json Print a machine-readable versioned report.\",\n \" -h, --help Show this help message.\",\n \"\",\n \"Examples:\",\n \" mreact-router boundaries\",\n \" mreact-router boundaries src/app --json\",\n ].join(\"\\n\");\n }\n\n if (command === \"package\") {\n return [\n \"Usage: mreact-router package <target> [options]\",\n \"\",\n \"Package generated build output into a deployable artifact directory.\",\n \"\",\n \"Targets:\",\n \" aws-lambda Minimal AWS Lambda asset directory.\",\n \" cloudflare-pages Cloudflare Pages advanced mode output with _worker.js.\",\n \"\",\n \"Options:\",\n \" --from <dir> Build output directory. Default: .mreact\",\n \" --out <dir> Output directory. Defaults to .lambda for aws-lambda and .mreact/pages for cloudflare-pages.\",\n \" --skip-runtime-dependency-check\",\n \" For aws-lambda only, skip the production node_modules check when a later deploy step installs dependencies into the package directory.\",\n \" --handler <entry>\",\n \" For aws-lambda only, bundle a custom handler entry into mreact-handler.mjs. App-local extensionless TypeScript imports are bundled; package imports stay external.\",\n \" --worker <entry>\",\n \" For cloudflare-pages only, bundle a custom Worker entry into _worker.js.\",\n \" --aws-lambda-preload=middleware|hot-route-requests|all|none\",\n \" Override generated Lambda initialization preload. Omission preserves the build policy; legacy output without policy metadata falls back to middleware.\",\n \" --aws-lambda-preload-routes=/,/login\",\n \" Select routes for hot-route-requests initialization preload.\",\n \" -h, --help Show this help message.\",\n \"\",\n \"Examples:\",\n \" mreact-router package aws-lambda --from .mreact --out .lambda\",\n \" mreact-router package cloudflare-pages --from .mreact --out .mreact/pages\",\n ].join(\"\\n\");\n }\n\n if (command === \"start\") {\n return [\n \"Usage: mreact-router start [outDir] [options]\",\n \"\",\n \"Serve built mreact app router output with the Node adapter.\",\n \"\",\n \"Options:\",\n \" --host <host> Bind address. Default: 127.0.0.1. Use 0.0.0.0 inside containers behind explicit port publishing or a reverse proxy.\",\n \" --port <port> TCP port. Overrides PORT. Default: 3001.\",\n \" --host-policy=strict|trusted-proxy\",\n \" Control Host header trust for request origin reconstruction.\",\n \" --allowed-hosts <host[,host...]>\",\n \" Exact Host header allow-list for public deployments.\",\n \" --trust-forwarded-proto\",\n \" Trust the first X-Forwarded-Proto value. Enable only when a trusted proxy overwrites the header and the Node port is not publicly reachable.\",\n \" --log=requests Print request summaries.\",\n \" -h, --help Show this help message.\",\n \"\",\n \"Environment:\",\n \" HOST Bind address when --host is not set.\",\n \" MREACT_ROUTER_HOST_POLICY\",\n \" Host header trust policy when --host-policy is not set.\",\n \" MREACT_ROUTER_ALLOWED_HOSTS\",\n \" Comma-separated Host header allow-list when --allowed-hosts is not set.\",\n \" MREACT_ROUTER_TRUST_FORWARDED_PROTO\",\n \" Set to 1 to trust X-Forwarded-Proto when the flag is not set.\",\n \" PORT TCP port. Default: 3001.\",\n ].join(\"\\n\");\n }\n\n if (command === \"dev\") {\n return [\n \"Usage: mreact-router dev [appDir] [options]\",\n \"\",\n \"Start the mreact app router development server.\",\n \"\",\n \"Options:\",\n \" --host <host> Bind address. Default: 127.0.0.1. Use 0.0.0.0 for LAN or device testing.\",\n \" --port <port> TCP port. Overrides PORT and vite.config.ts server.port.\",\n \" --log=requests Print request summaries.\",\n \" -h, --help Show this help message.\",\n \"\",\n \"Environment:\",\n \" HOST Bind address when --host is not set.\",\n \" PORT TCP port when --port is not set.\",\n ].join(\"\\n\");\n }\n\n return [\n \"Usage: mreact-router <command> [options]\",\n \"\",\n \"Commands:\",\n \" dev [appDir] Start the development server.\",\n ` build [appDir] Build ${defaultTargetLabel} artifacts by default.`,\n \" boundaries [appDir] Inspect route and component boundaries.\",\n \" build --target=aws-lambda Build Lambda artifacts including generated handler and import policy.\",\n \" start [outDir] Serve built Node output.\",\n \" package aws-lambda --from .mreact --out .lambda\",\n \" Package a minimal AWS Lambda asset directory.\",\n \" package aws-lambda --handler lambda/mreact-handler.ts\",\n \" Bundle a custom Lambda handler with app-local server imports.\",\n \" package cloudflare-pages --from .mreact --out .mreact/pages\",\n \" Package Cloudflare Pages advanced mode output.\",\n \" help [command] Show help.\",\n \"\",\n \"Options:\",\n \" -h, --help Show this help message.\",\n \" --log=requests Print request summaries for dev/start.\",\n \"\",\n \"Examples:\",\n \" mreact-router build --target=cloudflare\",\n \" mreact-router build --target=aws-lambda\",\n \" mreact-router build --target=all\",\n \" mreact-router package aws-lambda --from .mreact --out .lambda\",\n \" mreact-router build --help\",\n ].join(\"\\n\");\n}\n\nexport function buildTargetsFromCliTarget(\n target: CliBuildTarget | undefined,\n): readonly AppRouterBuildTarget[] | undefined {\n if (target === undefined) {\n return undefined;\n }\n\n return target === \"all\" ? appRouterBuildTargetMetadata.allTargets : [target];\n}\n\nfunction formatBuildTargetDisplayList(targets: readonly AppRouterBuildTarget[]): string {\n return targets.map(formatBuildTargetDisplayName).join(\", \");\n}\n\nfunction formatBuildTargetDisplayName(target: AppRouterBuildTarget): string {\n if (target === \"aws-lambda\") return \"AWS Lambda\";\n return target[0]?.toUpperCase() + target.slice(1);\n}\n\nfunction formatBuildTargetValueList(targets: readonly AppRouterBuildTarget[]): string {\n if (targets.length < 2) return targets[0] ?? \"\";\n return `${targets.slice(0, -1).join(\", \")}, and ${targets.at(-1)}`;\n}\n\nexport function resolveCliRequestLogMode(\n flagValue: CliRequestLogMode | undefined,\n env: { MREACT_ROUTER_LOG?: string | undefined },\n): CliRequestLogMode | undefined {\n if (flagValue !== undefined) {\n return flagValue;\n }\n\n const envValue = env.MREACT_ROUTER_LOG;\n if (envValue === undefined || envValue === \"\") {\n return undefined;\n }\n\n return parseCliRequestLogMode(envValue);\n}\n\nexport function resolveCliHost(\n flagValue: string | undefined,\n env: { HOST?: string | undefined },\n): string {\n if (flagValue !== undefined && flagValue !== \"\") {\n return flagValue;\n }\n\n const envValue = env.HOST;\n return envValue === undefined || envValue === \"\" ? \"127.0.0.1\" : envValue;\n}\n\nexport function resolveCliDevPort(\n flagValue: number | undefined,\n env: { PORT?: string | undefined },\n viteConfigPort: number | undefined,\n): number | undefined {\n if (flagValue !== undefined) {\n return flagValue;\n }\n\n const envValue = env.PORT;\n return envValue === undefined || envValue === \"\" ? viteConfigPort : parseCliPort(envValue);\n}\n\nexport function resolveCliStartPort(\n flagValue: number | undefined,\n env: { PORT?: string | undefined },\n): number {\n if (flagValue !== undefined) {\n return flagValue;\n }\n\n const envValue = env.PORT;\n return envValue === undefined || envValue === \"\" ? 3001 : parseCliPort(envValue, \"PORT\");\n}\n\nexport function resolveCliHostPolicy(\n flagValue: RequestHostPolicy | undefined,\n env: { MREACT_ROUTER_HOST_POLICY?: string | undefined },\n): RequestHostPolicy | undefined {\n if (flagValue !== undefined) {\n return flagValue;\n }\n\n const envValue = env.MREACT_ROUTER_HOST_POLICY;\n return envValue === undefined || envValue === \"\" ? undefined : parseCliHostPolicy(envValue);\n}\n\nexport function resolveCliAllowedHosts(\n flagValue: readonly string[] | undefined,\n env: { MREACT_ROUTER_ALLOWED_HOSTS?: string | undefined },\n): readonly string[] | undefined {\n if (flagValue !== undefined) {\n return flagValue;\n }\n\n const envValue = env.MREACT_ROUTER_ALLOWED_HOSTS;\n return envValue === undefined || envValue === \"\" ? undefined : parseCliAllowedHosts(envValue);\n}\n\nexport function resolveCliTrustForwardedProto(\n flagValue: boolean | undefined,\n env: { MREACT_ROUTER_TRUST_FORWARDED_PROTO?: string | undefined },\n): boolean {\n if (flagValue !== undefined) {\n return flagValue;\n }\n\n return env.MREACT_ROUTER_TRUST_FORWARDED_PROTO === \"1\";\n}\n\nexport function createCliRequestLogger(): AppRouterLogger {\n return {\n error(event) {\n if (event.type === \"router:request:error\") {\n console.error(formatCliRequestLogEvent(event));\n }\n },\n info(event) {\n if (event.type === \"router:request:end\") {\n console.log(formatCliRequestLogEvent(event));\n }\n },\n };\n}\n\nfunction parseCliRequestLogMode(value: string): CliRequestLogMode {\n if (value === \"requests\") {\n return value;\n }\n\n throw new Error(`Unsupported log mode ${JSON.stringify(value)}. Expected \"requests\".`);\n}\n\nfunction parseCliPort(value: string, source = \"port\"): number {\n const port = Number(value);\n\n if (Number.isInteger(port) && port >= 0 && port <= 65535) {\n return port;\n }\n\n throw new Error(\n `Unsupported ${source} ${JSON.stringify(value)}. Expected an integer from 0 to 65535.`,\n );\n}\n\nfunction parseCliHostPolicy(value: string): RequestHostPolicy {\n if (value === \"strict\" || value === \"trusted-proxy\") {\n return value;\n }\n\n throw new Error(\n `Unsupported host policy ${JSON.stringify(value)}. Expected \"strict\" or \"trusted-proxy\".`,\n );\n}\n\nfunction parseCliAllowedHosts(value: string): readonly string[] {\n return value\n .split(\",\")\n .map((entry) => entry.trim())\n .filter((entry) => entry !== \"\");\n}\n\nfunction parseCliBuildTarget(value: string): CliBuildTarget {\n if (value === \"node\" || value === \"cloudflare\" || value === \"aws-lambda\" || value === \"all\") {\n return value;\n }\n\n throw new Error(\n `Unsupported build target ${JSON.stringify(value)}. Expected \"node\", \"cloudflare\", \"aws-lambda\", or \"all\".`,\n );\n}\n\nfunction parseCliClientSourceMapMode(value: string): AppRouterClientSourceMapMode {\n if (value === \"none\" || value === \"hidden\" || value === \"linked\") {\n return value;\n }\n\n throw new Error(\n `Unsupported client source map mode ${JSON.stringify(value)} for --client-source-maps. Expected \"none\", \"hidden\", or \"linked\".`,\n );\n}\n\nfunction parseCliAwsLambdaPreloadMode(value: string): AwsLambdaGeneratedHandlerPreloadMode {\n if (\n value === \"all\" ||\n value === \"hot-route-requests\" ||\n value === \"middleware\" ||\n value === \"none\"\n ) {\n return value;\n }\n\n throw new Error(\n `Unsupported aws-lambda-preload ${JSON.stringify(value)}. Expected \"middleware\", \"hot-route-requests\", \"all\", or \"none\".`,\n );\n}\n\nfunction parseCliAwsLambdaPreloadRoutes(value: string): readonly string[] {\n const routes = value.split(\",\").filter((route) => route.startsWith(\"/\"));\n if (routes.length === 0 || routes.join(\",\") !== value) {\n throw new Error(\"aws-lambda-preload-routes must be a comma-separated list of absolute routes.\");\n }\n return routes;\n}\n\nfunction readOptionValue(values: readonly string[], index: number, name: string): string {\n const value = values[index + 1];\n\n if (value === undefined || value.startsWith(\"-\")) {\n throw new Error(`Missing value for --${name}`);\n }\n\n return value;\n}\n\nfunction formatCliRequestLogEvent(event: AppRouterLogEvent): string {\n if (event.type === \"router:request:error\") {\n return `[mreact] ${event.method} ${event.path} error ${event.durationMs}ms ${event.runtime} ${event.error.name}: ${event.error.message}`;\n }\n\n if (event.type === \"router:request:end\") {\n return `[mreact] ${event.method} ${event.path} ${event.status} ${event.durationMs}ms ${event.runtime}`;\n }\n\n if (event.type === \"router:request:timing\") {\n return `[mreact] ${event.method} ${event.path} ${event.status} ${event.durationMs}ms ${event.runtime}`;\n }\n\n if (event.type === \"router:render:timing\") {\n return `[mreact] ${event.method} ${event.path} ${event.status} render timing`;\n }\n\n if (event.type === \"router:csp:inline-nonce-warning\") {\n return `[mreact] ${event.path} CSP ${event.directive} will block inline <${event.tag}> without a matching nonce`;\n }\n\n return `[mreact] ${event.method} ${event.path} ${event.runtime}`;\n}\n"]}
|
package/dist/cli.js
CHANGED
|
@@ -3,7 +3,7 @@ import { readFile } from "node:fs/promises";
|
|
|
3
3
|
import { resolve } from "node:path";
|
|
4
4
|
import { buildApp, packageAwsLambdaArtifact, packageCloudflarePagesArtifact, } from "./build.js";
|
|
5
5
|
import { analyzeAppBoundaries, formatBoundaryReport, formatBoundaryReportJson, } from "./boundaries.js";
|
|
6
|
-
import { buildTargetsFromCliTarget, createCliRequestLogger, formatCliHelp, parseCliArguments, resolveCliAllowedHosts, resolveCliDevPort, resolveCliHost, resolveCliHostPolicy, resolveCliRequestLogMode, } from "./cli-options.js";
|
|
6
|
+
import { buildTargetsFromCliTarget, createCliRequestLogger, formatCliHelp, parseCliArguments, resolveCliAllowedHosts, resolveCliDevPort, resolveCliHost, resolveCliHostPolicy, resolveCliRequestLogMode, resolveCliStartPort, resolveCliTrustForwardedProto, } from "./cli-options.js";
|
|
7
7
|
import { startDevServer } from "./dev-server.js";
|
|
8
8
|
import { startServer } from "./serve.js";
|
|
9
9
|
import { loadMreactRouterViteConfigDetails } from "./vite-config.js";
|
|
@@ -131,7 +131,8 @@ if (parsed !== undefined) {
|
|
|
131
131
|
hostname: resolveCliHost(parsed.host, process.env),
|
|
132
132
|
logger,
|
|
133
133
|
outDir: resolve(routeArg ?? ".mreact"),
|
|
134
|
-
port:
|
|
134
|
+
port: resolveCliStartPort(parsed.port, process.env),
|
|
135
|
+
trustForwardedProto: resolveCliTrustForwardedProto(parsed.trustForwardedProto, process.env),
|
|
135
136
|
});
|
|
136
137
|
console.log(`mreact app router serving built output at ${server.url}`);
|
|
137
138
|
}
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EACL,QAAQ,EACR,wBAAwB,EACxB,8BAA8B,GAG/B,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,wBAAwB,GACzB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,yBAAyB,EACzB,sBAAsB,EAEtB,aAAa,EACb,iBAAiB,EACjB,sBAAsB,EACtB,iBAAiB,EACjB,cAAc,EACd,oBAAoB,EACpB,wBAAwB,GACzB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,iCAAiC,EAAE,MAAM,kBAAkB,CAAC;AAErE,IAAI,MAAM,CAAC;AAEX,IAAI,CAAC;IACH,MAAM,GAAG,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACpD,CAAC;AAAC,OAAO,KAAK,EAAE,CAAC;IACf,OAAO,CAAC,KAAK,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IACtE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;AACvB,CAAC;AAED,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;IACzB,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;IAC/B,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;IAEjC,IAAI,CAAC;QACH,IAAI,MAAM,CAAC,IAAI,KAAK,IAAI,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;YAC/C,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;QACtE,CAAC;aAAM,CAAC;YACN,MAAM,MAAM,GACV,wBAAwB,CAAC,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,KAAK,UAAU;gBAC9D,CAAC,CAAC,sBAAsB,EAAE;gBAC1B,CAAC,CAAC,SAAS,CAAC;YAEhB,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;gBACxB,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;gBACpC,IAAI,gBAA2C,CAAC;gBAChD,OAAO,CAAC,GAAG,CAAC,wBAAwB,MAAM,oBAAoB,EAAE,EAAE,CAAC,CAAC;gBACpE,OAAO,CAAC,GAAG,CAAC,WAAW,oBAAoB,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBAC9D,OAAO,CAAC,GAAG,CAAC,SAAS,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;gBACtC,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;gBAClC,MAAM,MAAM,GACV,QAAQ,KAAK,SAAS;oBACpB,CAAC,CAAC,MAAM,iCAAiC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC;oBACnF,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC;gBACxE,IAAI,CAAC;oBACH,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC;wBAC5B,GAAG,MAAM,CAAC,OAAO;wBACjB,GAAG,CAAC,MAAM,CAAC,gBAAgB,KAAK,SAAS;4BACvC,CAAC,CAAC,EAAE;4BACJ,CAAC,CAAC,EAAE,gBAAgB,EAAE,MAAM,CAAC,gBAAgB,EAAE,CAAC;wBAClD,GAAG,CAAC,MAAM,CAAC,sBAAsB,KAAK,SAAS;4BAC7C,CAAC,CAAC,EAAE;4BACJ,CAAC,CAAC,EAAE,sBAAsB,EAAE,MAAM,CAAC,sBAAsB,EAAE,CAAC;wBAC9D,GAAG,CAAC,MAAM,CAAC,gBAAgB,KAAK,SAAS;4BACvC,CAAC,CAAC,EAAE;4BACJ,CAAC,CAAC,EAAE,gBAAgB,EAAE,MAAM,CAAC,gBAAgB,EAAE,CAAC;wBAClD,gBAAgB,CAAC,MAAM;4BACrB,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;wBACtD,CAAC;wBACD,eAAe,CAAC,KAAK;4BACnB,gBAAgB,GAAG,sBAAsB,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;wBACrE,CAAC;wBACD,MAAM,EAAE,OAAO,CAAC,SAAS,CAAC;wBAC1B,OAAO,EAAE,yBAAyB,CAAC,MAAM,CAAC,MAAM,CAAC;wBACjD,UAAU,EAAE,MAAM,CAAC,UAAU;qBAC9B,CAAC,CAAC;oBACH,OAAO,CAAC,GAAG,CACT,SAAS,MAAM,CAAC,MAAM,CAAC,MAAM,cAAc,qBAAqB,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,GAAG,CACnG,CAAC;gBACJ,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,IAAI,gBAAgB,KAAK,SAAS,EAAE,CAAC;wBACnC,MAAM,IAAI,KAAK,CACb,uBAAuB,4BAA4B,CAAC,gBAAgB,CAAC,KACnE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CACvD,EAAE,CACH,CAAC;oBACJ,CAAC;oBACD,MAAM,KAAK,CAAC;gBACd,CAAC;YACH,CAAC;iBAAM,IAAI,OAAO,KAAK,YAAY,EAAE,CAAC;gBACpC,MAAM,MAAM,GACV,QAAQ,KAAK,SAAS;oBACpB,CAAC,CAAC,MAAM,iCAAiC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC;oBACnF,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC;gBACxE,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC;oBACxC,GAAG,MAAM,CAAC,OAAO;oBACjB,UAAU,EAAE,MAAM,CAAC,UAAU;iBAC9B,CAAC,CAAC;gBACH,OAAO,CAAC,GAAG,CACT,CAAC,MAAM,CAAC,IAAI,KAAK,IAAI;oBACnB,CAAC,CAAC,wBAAwB,CAAC,MAAM,CAAC;oBAClC,CAAC,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAC/B,CAAC,OAAO,EAAE,CACZ,CAAC;YACJ,CAAC;iBAAM,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBACjC,IAAI,QAAQ,KAAK,YAAY,EAAE,CAAC;oBAC9B,MAAM,QAAQ,GAAG,MAAM,wBAAwB,CAAC;wBAC9C,GAAG,CAAC,MAAM,CAAC,gBAAgB,KAAK,SAAS;4BACvC,CAAC,CAAC,EAAE;4BACJ,CAAC,CAAC,EAAE,gBAAgB,EAAE,MAAM,CAAC,gBAAgB,EAAE,CAAC;wBAClD,GAAG,CAAC,MAAM,CAAC,sBAAsB,KAAK,SAAS;4BAC7C,CAAC,CAAC,EAAE;4BACJ,CAAC,CAAC,EAAE,sBAAsB,EAAE,MAAM,CAAC,sBAAsB,EAAE,CAAC;wBAC9D,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,IAAI,SAAS,CAAC;wBAC1C,GAAG,CAAC,MAAM,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;wBAClF,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI,SAAS,CAAC;wBACxC,0BAA0B,EAAE,MAAM,CAAC,0BAA0B;qBAC9D,CAAC,CAAC;oBACH,OAAO,CAAC,GAAG,CACT,qCAAqC,QAAQ,CAAC,KAAK,CAAC,MAAM,WAAW,QAAQ,CAAC,UAAU,UAAU,CACnG,CAAC;gBACJ,CAAC;qBAAM,IAAI,QAAQ,KAAK,kBAAkB,EAAE,CAAC;oBAC3C,MAAM,QAAQ,GAAG,MAAM,8BAA8B,CAAC;wBACpD,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,IAAI,SAAS,CAAC;wBAC1C,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI,eAAe,CAAC;wBAC9C,GAAG,CAAC,MAAM,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;qBAChF,CAAC,CAAC;oBACH,OAAO,CAAC,GAAG,CACT,2CAA2C,QAAQ,CAAC,KAAK,CAAC,MAAM,WAAW,QAAQ,CAAC,UAAU,UAAU,CACzG,CAAC;gBACJ,CAAC;qBAAM,CAAC;oBACN,MAAM,IAAI,KAAK,CACb,8BAA8B,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,gDAAgD,CACvG,CAAC;gBACJ,CAAC;YACH,CAAC;iBAAM,IAAI,OAAO,KAAK,KAAK,EAAE,CAAC;gBAC7B,MAAM,MAAM,GACV,QAAQ,KAAK,SAAS;oBACpB,CAAC,CAAC,MAAM,iCAAiC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC;oBACnF,CAAC,CAAC;wBACE,OAAO,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE;wBACtC,UAAU,EAAE,SAAS;wBACrB,UAAU,EAAE,SAAS;qBACtB,CAAC;gBACR,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC;oBAClC,GAAG,MAAM,CAAC,OAAO;oBACjB,QAAQ,EAAE,cAAc,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC;oBAClD,MAAM;oBACN,IAAI,EAAE,iBAAiB,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;oBACpE,UAAU,EAAE,MAAM,CAAC,UAAU;iBAC9B,CAAC,CAAC;gBACH,OAAO,CAAC,GAAG,CAAC,8BAA8B,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;YAC1D,CAAC;iBAAM,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;gBAC/B,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC;oBAC/B,YAAY,EAAE,sBAAsB,CAAC,MAAM,CAAC,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC;oBACtE,UAAU,EAAE,oBAAoB,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC;oBAChE,QAAQ,EAAE,cAAc,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC;oBAClD,MAAM;oBACN,MAAM,EAAE,OAAO,CAAC,QAAQ,IAAI,SAAS,CAAC;oBACtC,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC;iBACvC,CAAC,CAAC;gBACH,OAAO,CAAC,GAAG,CAAC,6CAA6C,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;YACzE,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,KAAK,CAAC,oBAAoB,OAAO,EAAE,CAAC,CAAC;gBAC7C,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACvB,CAAC;QACH,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACtE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACvB,CAAC;AACH,CAAC;AAED,KAAK,UAAU,oBAAoB;IACjC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,GAAG,CAAC,iBAAiB,EAAE,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC;QACnF,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAA0B,CAAC;QAEzD,OAAO,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;IACrE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,SAAS,oBAAoB,CAAC,MAAkC;IAC9D,OAAO,MAAM,IAAI,SAAS,CAAC;AAC7B,CAAC;AAED,SAAS,sBAAsB,CAC7B,KAA4B,EAC5B,WAAsC;IAEtC,IAAI,KAAK,CAAC,IAAI,KAAK,mBAAmB,EAAE,CAAC;QACvC,OAAO,CAAC,GAAG,CAAC,WAAW,KAAK,CAAC,KAAK,aAAa,CAAC,CAAC;QACjD,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;QACjC,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,MAAM,OAAO,GAAG,yBAAyB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACvD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACvB,CAAC;IAED,OAAO,KAAK,CAAC,KAAK,CAAC;AACrB,CAAC;AAED,SAAS,yBAAyB,CAAC,KAAoB;IACrD,QAAQ,KAAK,EAAE,CAAC;QACd,KAAK,MAAM;YACT,OAAO,wBAAwB,CAAC;QAClC,KAAK,eAAe;YAClB,OAAO,qBAAqB,CAAC;QAC/B,KAAK,eAAe;YAClB,OAAO,qBAAqB,CAAC;QAC/B,KAAK,gBAAgB;YACnB,OAAO,uBAAuB,CAAC;QACjC;YACE,OAAO,SAAS,CAAC;IACrB,CAAC;AACH,CAAC;AAED,SAAS,4BAA4B,CAAC,KAAoB;IACxD,QAAQ,KAAK,EAAE,CAAC;QACd,KAAK,MAAM;YACT,OAAO,iBAAiB,CAAC;QAC3B,KAAK,cAAc;YACjB,OAAO,wBAAwB,CAAC;QAClC,KAAK,gBAAgB;YACnB,OAAO,iBAAiB,CAAC;QAC3B,KAAK,UAAU;YACb,OAAO,6BAA6B,CAAC;QACvC,KAAK,eAAe;YAClB,OAAO,oBAAoB,CAAC;QAC9B,KAAK,cAAc;YACjB,OAAO,yBAAyB,CAAC;QACnC,KAAK,sBAAsB;YACzB,OAAO,mCAAmC,CAAC;QAC7C,KAAK,eAAe;YAClB,OAAO,qBAAqB,CAAC;QAC/B,KAAK,cAAc;YACjB,OAAO,0BAA0B,CAAC;QACpC,KAAK,uBAAuB;YAC1B,OAAO,yBAAyB,CAAC;QACnC,KAAK,eAAe;YAClB,OAAO,qBAAqB,CAAC;QAC/B,KAAK,mBAAmB;YACtB,OAAO,0BAA0B,CAAC;QACpC,KAAK,WAAW;YACd,OAAO,kBAAkB,CAAC;QAC5B,KAAK,YAAY;YACf,OAAO,gCAAgC,CAAC;QAC1C,KAAK,gBAAgB;YACnB,OAAO,kBAAkB,CAAC;QAC5B,KAAK,kBAAkB;YACrB,OAAO,0BAA0B,CAAC;IACtC,CAAC;AACH,CAAC;AAED,SAAS,qBAAqB,CAAC,EAAU;IACvC,MAAM,OAAO,GAAG,EAAE,GAAG,IAAI,CAAC;IAE1B,IAAI,OAAO,GAAG,EAAE,EAAE,CAAC;QACjB,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC;IAC7C,CAAC;IAED,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;AACnC,CAAC","sourcesContent":["#!/usr/bin/env node\n\nimport { readFile } from \"node:fs/promises\";\nimport { resolve } from \"node:path\";\nimport {\n buildApp,\n packageAwsLambdaArtifact,\n packageCloudflarePagesArtifact,\n type BuildAppPhase,\n type BuildAppProgressEvent,\n} from \"./build.js\";\nimport {\n analyzeAppBoundaries,\n formatBoundaryReport,\n formatBoundaryReportJson,\n} from \"./boundaries.js\";\nimport {\n buildTargetsFromCliTarget,\n createCliRequestLogger,\n type CliBuildTarget,\n formatCliHelp,\n parseCliArguments,\n resolveCliAllowedHosts,\n resolveCliDevPort,\n resolveCliHost,\n resolveCliHostPolicy,\n resolveCliRequestLogMode,\n} from \"./cli-options.js\";\nimport { startDevServer } from \"./dev-server.js\";\nimport { startServer } from \"./serve.js\";\nimport { loadMreactRouterViteConfigDetails } from \"./vite-config.js\";\n\nlet parsed;\n\ntry {\n parsed = parseCliArguments(process.argv.slice(2));\n} catch (error) {\n console.error(error instanceof Error ? error.message : String(error));\n process.exitCode = 1;\n}\n\nif (parsed !== undefined) {\n const command = parsed.command;\n const routeArg = parsed.routeArg;\n\n try {\n if (parsed.help === true || command === \"help\") {\n console.log(formatCliHelp(command === \"help\" ? routeArg : command));\n } else {\n const logger =\n resolveCliRequestLogMode(parsed.log, process.env) === \"requests\"\n ? createCliRequestLogger()\n : undefined;\n\n if (command === \"build\") {\n const startedAt = performance.now();\n let activeBuildPhase: BuildAppPhase | undefined;\n console.log(`mreact-router build v${await readRouterCliVersion()}`);\n console.log(`Target: ${formatCliBuildTarget(parsed.target)}`);\n console.log(`Root: ${process.cwd()}`);\n console.log(\"Config: loading...\");\n const loaded =\n routeArg === undefined\n ? await loadMreactRouterViteConfigDetails({ command: \"build\", cwd: process.cwd() })\n : { project: { appDir: resolve(routeArg) }, viteConfig: undefined };\n try {\n const result = await buildApp({\n ...loaded.project,\n ...(parsed.awsLambdaPreload === undefined\n ? {}\n : { awsLambdaPreload: parsed.awsLambdaPreload }),\n ...(parsed.awsLambdaPreloadRoutes === undefined\n ? {}\n : { awsLambdaPreloadRoutes: parsed.awsLambdaPreloadRoutes }),\n ...(parsed.clientSourceMaps === undefined\n ? {}\n : { clientSourceMaps: parsed.clientSourceMaps }),\n onBoundaryReport(report) {\n console.log(formatBoundaryReport(report).trimEnd());\n },\n onBuildProgress(event) {\n activeBuildPhase = updateBuildProgressLog(event, activeBuildPhase);\n },\n outDir: resolve(\".mreact\"),\n targets: buildTargetsFromCliTarget(parsed.target),\n viteConfig: loaded.viteConfig,\n });\n console.log(\n `Built ${result.routes.length} routes in ${formatDurationSeconds(performance.now() - startedAt)}.`,\n );\n } catch (error) {\n if (activeBuildPhase !== undefined) {\n throw new Error(\n `Build failed during ${formatBuildPhaseFailureLabel(activeBuildPhase)}: ${\n error instanceof Error ? error.message : String(error)\n }`,\n );\n }\n throw error;\n }\n } else if (command === \"boundaries\") {\n const loaded =\n routeArg === undefined\n ? await loadMreactRouterViteConfigDetails({ command: \"build\", cwd: process.cwd() })\n : { project: { appDir: resolve(routeArg) }, viteConfig: undefined };\n const report = await analyzeAppBoundaries({\n ...loaded.project,\n viteConfig: loaded.viteConfig,\n });\n console.log(\n (parsed.json === true\n ? formatBoundaryReportJson(report)\n : formatBoundaryReport(report)\n ).trimEnd(),\n );\n } else if (command === \"package\") {\n if (routeArg === \"aws-lambda\") {\n const manifest = await packageAwsLambdaArtifact({\n ...(parsed.awsLambdaPreload === undefined\n ? {}\n : { awsLambdaPreload: parsed.awsLambdaPreload }),\n ...(parsed.awsLambdaPreloadRoutes === undefined\n ? {}\n : { awsLambdaPreloadRoutes: parsed.awsLambdaPreloadRoutes }),\n fromDir: resolve(parsed.from ?? \".mreact\"),\n ...(parsed.handler === undefined ? {} : { handlerEntry: resolve(parsed.handler) }),\n outDir: resolve(parsed.out ?? \".lambda\"),\n skipRuntimeDependencyCheck: parsed.skipRuntimeDependencyCheck,\n });\n console.log(\n `Packaged AWS Lambda artifact with ${manifest.files.length} files (${manifest.totalBytes} bytes).`,\n );\n } else if (routeArg === \"cloudflare-pages\") {\n const manifest = await packageCloudflarePagesArtifact({\n fromDir: resolve(parsed.from ?? \".mreact\"),\n outDir: resolve(parsed.out ?? \".mreact/pages\"),\n ...(parsed.worker === undefined ? {} : { workerEntry: resolve(parsed.worker) }),\n });\n console.log(\n `Packaged Cloudflare Pages artifact with ${manifest.files.length} files (${manifest.totalBytes} bytes).`,\n );\n } else {\n throw new Error(\n `Unsupported package target ${JSON.stringify(routeArg)}. Expected \"aws-lambda\" or \"cloudflare-pages\".`,\n );\n }\n } else if (command === \"dev\") {\n const loaded =\n routeArg === undefined\n ? await loadMreactRouterViteConfigDetails({ command: \"serve\", cwd: process.cwd() })\n : {\n project: { appDir: resolve(routeArg) },\n serverPort: undefined,\n viteConfig: undefined,\n };\n const server = await startDevServer({\n ...loaded.project,\n hostname: resolveCliHost(parsed.host, process.env),\n logger,\n port: resolveCliDevPort(parsed.port, process.env, loaded.serverPort),\n viteConfig: loaded.viteConfig,\n });\n console.log(`mreact app router ready at ${server.url}`);\n } else if (command === \"start\") {\n const server = await startServer({\n allowedHosts: resolveCliAllowedHosts(parsed.allowedHosts, process.env),\n hostPolicy: resolveCliHostPolicy(parsed.hostPolicy, process.env),\n hostname: resolveCliHost(parsed.host, process.env),\n logger,\n outDir: resolve(routeArg ?? \".mreact\"),\n port: Number(process.env.PORT ?? 3001),\n });\n console.log(`mreact app router serving built output at ${server.url}`);\n } else {\n console.error(`Unknown command: ${command}`);\n process.exitCode = 1;\n }\n }\n } catch (error) {\n console.error(error instanceof Error ? error.message : String(error));\n process.exitCode = 1;\n }\n}\n\nasync function readRouterCliVersion(): Promise<string> {\n try {\n const source = await readFile(new URL(\"../package.json\", import.meta.url), \"utf8\");\n const json = JSON.parse(source) as { version?: unknown };\n\n return typeof json.version === \"string\" ? json.version : \"unknown\";\n } catch {\n return \"unknown\";\n }\n}\n\nfunction formatCliBuildTarget(target: CliBuildTarget | undefined): string {\n return target ?? \"default\";\n}\n\nfunction updateBuildProgressLog(\n event: BuildAppProgressEvent,\n activePhase: BuildAppPhase | undefined,\n): BuildAppPhase | undefined {\n if (event.kind === \"routes-discovered\") {\n console.log(`Routes: ${event.count} discovered`);\n return activePhase;\n }\n\n if (event.kind !== \"phase-start\") {\n return activePhase;\n }\n\n const message = buildPhaseProgressMessage(event.phase);\n if (message !== undefined) {\n console.log(message);\n }\n\n return event.phase;\n}\n\nfunction buildPhaseProgressMessage(phase: BuildAppPhase): string | undefined {\n switch (phase) {\n case \"scan\":\n return \"Routes: discovering...\";\n case \"serverModules\":\n return \"Server: building...\";\n case \"clientBundles\":\n return \"Client: building...\";\n case \"writeManifests\":\n return \"Artifacts: writing...\";\n default:\n return undefined;\n }\n}\n\nfunction formatBuildPhaseFailureLabel(phase: BuildAppPhase): string {\n switch (phase) {\n case \"scan\":\n return \"route discovery\";\n case \"collectFiles\":\n return \"source file collection\";\n case \"analyzeSources\":\n return \"source analysis\";\n case \"validate\":\n return \"production route validation\";\n case \"prepareOutput\":\n return \"output preparation\";\n case \"publicAssets\":\n return \"public asset collection\";\n case \"serverActionManifest\":\n return \"server action manifest generation\";\n case \"serverModules\":\n return \"server output build\";\n case \"importPolicy\":\n return \"import policy generation\";\n case \"serverModuleArtifacts\":\n return \"server artifact writing\";\n case \"clientBundles\":\n return \"client output build\";\n case \"navigationRuntime\":\n return \"navigation runtime build\";\n case \"prerender\":\n return \"static prerender\";\n case \"cloudflare\":\n return \"Cloudflare artifact generation\";\n case \"writeManifests\":\n return \"manifest writing\";\n case \"adapterArtifacts\":\n return \"adapter artifact writing\";\n }\n}\n\nfunction formatDurationSeconds(ms: number): string {\n const seconds = ms / 1000;\n\n if (seconds < 10) {\n return `${Math.round(seconds * 10) / 10}s`;\n }\n\n return `${Math.round(seconds)}s`;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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","sourcesContent":["#!/usr/bin/env node\n\nimport { readFile } from \"node:fs/promises\";\nimport { resolve } from \"node:path\";\nimport {\n buildApp,\n packageAwsLambdaArtifact,\n packageCloudflarePagesArtifact,\n type BuildAppPhase,\n type BuildAppProgressEvent,\n} from \"./build.js\";\nimport {\n analyzeAppBoundaries,\n formatBoundaryReport,\n formatBoundaryReportJson,\n} from \"./boundaries.js\";\nimport {\n buildTargetsFromCliTarget,\n createCliRequestLogger,\n type CliBuildTarget,\n formatCliHelp,\n parseCliArguments,\n resolveCliAllowedHosts,\n resolveCliDevPort,\n resolveCliHost,\n resolveCliHostPolicy,\n resolveCliRequestLogMode,\n resolveCliStartPort,\n resolveCliTrustForwardedProto,\n} from \"./cli-options.js\";\nimport { startDevServer } from \"./dev-server.js\";\nimport { startServer } from \"./serve.js\";\nimport { loadMreactRouterViteConfigDetails } from \"./vite-config.js\";\n\nlet parsed;\n\ntry {\n parsed = parseCliArguments(process.argv.slice(2));\n} catch (error) {\n console.error(error instanceof Error ? error.message : String(error));\n process.exitCode = 1;\n}\n\nif (parsed !== undefined) {\n const command = parsed.command;\n const routeArg = parsed.routeArg;\n\n try {\n if (parsed.help === true || command === \"help\") {\n console.log(formatCliHelp(command === \"help\" ? routeArg : command));\n } else {\n const logger =\n resolveCliRequestLogMode(parsed.log, process.env) === \"requests\"\n ? createCliRequestLogger()\n : undefined;\n\n if (command === \"build\") {\n const startedAt = performance.now();\n let activeBuildPhase: BuildAppPhase | undefined;\n console.log(`mreact-router build v${await readRouterCliVersion()}`);\n console.log(`Target: ${formatCliBuildTarget(parsed.target)}`);\n console.log(`Root: ${process.cwd()}`);\n console.log(\"Config: loading...\");\n const loaded =\n routeArg === undefined\n ? await loadMreactRouterViteConfigDetails({ command: \"build\", cwd: process.cwd() })\n : { project: { appDir: resolve(routeArg) }, viteConfig: undefined };\n try {\n const result = await buildApp({\n ...loaded.project,\n ...(parsed.awsLambdaPreload === undefined\n ? {}\n : { awsLambdaPreload: parsed.awsLambdaPreload }),\n ...(parsed.awsLambdaPreloadRoutes === undefined\n ? {}\n : { awsLambdaPreloadRoutes: parsed.awsLambdaPreloadRoutes }),\n ...(parsed.clientSourceMaps === undefined\n ? {}\n : { clientSourceMaps: parsed.clientSourceMaps }),\n onBoundaryReport(report) {\n console.log(formatBoundaryReport(report).trimEnd());\n },\n onBuildProgress(event) {\n activeBuildPhase = updateBuildProgressLog(event, activeBuildPhase);\n },\n outDir: resolve(\".mreact\"),\n targets: buildTargetsFromCliTarget(parsed.target),\n viteConfig: loaded.viteConfig,\n });\n console.log(\n `Built ${result.routes.length} routes in ${formatDurationSeconds(performance.now() - startedAt)}.`,\n );\n } catch (error) {\n if (activeBuildPhase !== undefined) {\n throw new Error(\n `Build failed during ${formatBuildPhaseFailureLabel(activeBuildPhase)}: ${\n error instanceof Error ? error.message : String(error)\n }`,\n );\n }\n throw error;\n }\n } else if (command === \"boundaries\") {\n const loaded =\n routeArg === undefined\n ? await loadMreactRouterViteConfigDetails({ command: \"build\", cwd: process.cwd() })\n : { project: { appDir: resolve(routeArg) }, viteConfig: undefined };\n const report = await analyzeAppBoundaries({\n ...loaded.project,\n viteConfig: loaded.viteConfig,\n });\n console.log(\n (parsed.json === true\n ? formatBoundaryReportJson(report)\n : formatBoundaryReport(report)\n ).trimEnd(),\n );\n } else if (command === \"package\") {\n if (routeArg === \"aws-lambda\") {\n const manifest = await packageAwsLambdaArtifact({\n ...(parsed.awsLambdaPreload === undefined\n ? {}\n : { awsLambdaPreload: parsed.awsLambdaPreload }),\n ...(parsed.awsLambdaPreloadRoutes === undefined\n ? {}\n : { awsLambdaPreloadRoutes: parsed.awsLambdaPreloadRoutes }),\n fromDir: resolve(parsed.from ?? \".mreact\"),\n ...(parsed.handler === undefined ? {} : { handlerEntry: resolve(parsed.handler) }),\n outDir: resolve(parsed.out ?? \".lambda\"),\n skipRuntimeDependencyCheck: parsed.skipRuntimeDependencyCheck,\n });\n console.log(\n `Packaged AWS Lambda artifact with ${manifest.files.length} files (${manifest.totalBytes} bytes).`,\n );\n } else if (routeArg === \"cloudflare-pages\") {\n const manifest = await packageCloudflarePagesArtifact({\n fromDir: resolve(parsed.from ?? \".mreact\"),\n outDir: resolve(parsed.out ?? \".mreact/pages\"),\n ...(parsed.worker === undefined ? {} : { workerEntry: resolve(parsed.worker) }),\n });\n console.log(\n `Packaged Cloudflare Pages artifact with ${manifest.files.length} files (${manifest.totalBytes} bytes).`,\n );\n } else {\n throw new Error(\n `Unsupported package target ${JSON.stringify(routeArg)}. Expected \"aws-lambda\" or \"cloudflare-pages\".`,\n );\n }\n } else if (command === \"dev\") {\n const loaded =\n routeArg === undefined\n ? await loadMreactRouterViteConfigDetails({ command: \"serve\", cwd: process.cwd() })\n : {\n project: { appDir: resolve(routeArg) },\n serverPort: undefined,\n viteConfig: undefined,\n };\n const server = await startDevServer({\n ...loaded.project,\n hostname: resolveCliHost(parsed.host, process.env),\n logger,\n port: resolveCliDevPort(parsed.port, process.env, loaded.serverPort),\n viteConfig: loaded.viteConfig,\n });\n console.log(`mreact app router ready at ${server.url}`);\n } else if (command === \"start\") {\n const server = await startServer({\n allowedHosts: resolveCliAllowedHosts(parsed.allowedHosts, process.env),\n hostPolicy: resolveCliHostPolicy(parsed.hostPolicy, process.env),\n hostname: resolveCliHost(parsed.host, process.env),\n logger,\n outDir: resolve(routeArg ?? \".mreact\"),\n port: resolveCliStartPort(parsed.port, process.env),\n trustForwardedProto: resolveCliTrustForwardedProto(\n parsed.trustForwardedProto,\n process.env,\n ),\n });\n console.log(`mreact app router serving built output at ${server.url}`);\n } else {\n console.error(`Unknown command: ${command}`);\n process.exitCode = 1;\n }\n }\n } catch (error) {\n console.error(error instanceof Error ? error.message : String(error));\n process.exitCode = 1;\n }\n}\n\nasync function readRouterCliVersion(): Promise<string> {\n try {\n const source = await readFile(new URL(\"../package.json\", import.meta.url), \"utf8\");\n const json = JSON.parse(source) as { version?: unknown };\n\n return typeof json.version === \"string\" ? json.version : \"unknown\";\n } catch {\n return \"unknown\";\n }\n}\n\nfunction formatCliBuildTarget(target: CliBuildTarget | undefined): string {\n return target ?? \"default\";\n}\n\nfunction updateBuildProgressLog(\n event: BuildAppProgressEvent,\n activePhase: BuildAppPhase | undefined,\n): BuildAppPhase | undefined {\n if (event.kind === \"routes-discovered\") {\n console.log(`Routes: ${event.count} discovered`);\n return activePhase;\n }\n\n if (event.kind !== \"phase-start\") {\n return activePhase;\n }\n\n const message = buildPhaseProgressMessage(event.phase);\n if (message !== undefined) {\n console.log(message);\n }\n\n return event.phase;\n}\n\nfunction buildPhaseProgressMessage(phase: BuildAppPhase): string | undefined {\n switch (phase) {\n case \"scan\":\n return \"Routes: discovering...\";\n case \"serverModules\":\n return \"Server: building...\";\n case \"clientBundles\":\n return \"Client: building...\";\n case \"writeManifests\":\n return \"Artifacts: writing...\";\n default:\n return undefined;\n }\n}\n\nfunction formatBuildPhaseFailureLabel(phase: BuildAppPhase): string {\n switch (phase) {\n case \"scan\":\n return \"route discovery\";\n case \"collectFiles\":\n return \"source file collection\";\n case \"analyzeSources\":\n return \"source analysis\";\n case \"validate\":\n return \"production route validation\";\n case \"prepareOutput\":\n return \"output preparation\";\n case \"publicAssets\":\n return \"public asset collection\";\n case \"serverActionManifest\":\n return \"server action manifest generation\";\n case \"serverModules\":\n return \"server output build\";\n case \"importPolicy\":\n return \"import policy generation\";\n case \"serverModuleArtifacts\":\n return \"server artifact writing\";\n case \"clientBundles\":\n return \"client output build\";\n case \"navigationRuntime\":\n return \"navigation runtime build\";\n case \"prerender\":\n return \"static prerender\";\n case \"cloudflare\":\n return \"Cloudflare artifact generation\";\n case \"writeManifests\":\n return \"manifest writing\";\n case \"adapterArtifacts\":\n return \"adapter artifact writing\";\n }\n}\n\nfunction formatDurationSeconds(ms: number): string {\n const seconds = ms / 1000;\n\n if (seconds < 10) {\n return `${Math.round(seconds * 10) / 10}s`;\n }\n\n return `${Math.round(seconds)}s`;\n}\n"]}
|
package/dist/client.d.ts
CHANGED
|
@@ -32,6 +32,7 @@ export interface BuildClientRouteOutputOptions {
|
|
|
32
32
|
filename: string;
|
|
33
33
|
minify?: boolean | undefined;
|
|
34
34
|
routePath: string;
|
|
35
|
+
restoreRequestUrl?: boolean | undefined;
|
|
35
36
|
sourceMap?: boolean | undefined;
|
|
36
37
|
vitePlugins?: readonly PluginOption[] | undefined;
|
|
37
38
|
clientNavigation?: boolean | undefined;
|
|
@@ -157,6 +158,10 @@ export declare function withRouteMarkers(options: {
|
|
|
157
158
|
html: string;
|
|
158
159
|
routePath: string;
|
|
159
160
|
}): string;
|
|
161
|
+
export declare function routeMarkerParts(routePath: string): {
|
|
162
|
+
prefix: string;
|
|
163
|
+
suffix: string;
|
|
164
|
+
};
|
|
160
165
|
export declare function hydrationMarkerParts(options: {
|
|
161
166
|
assetBaseUrl?: string | undefined;
|
|
162
167
|
clientReferenceManifest?: readonly ClientReferenceMetadata[] | undefined;
|
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/client.js
CHANGED
|
@@ -1661,8 +1661,15 @@ export function withHydrationMarkers(options) {
|
|
|
1661
1661
|
return `${marker.prefix}${options.html}${marker.suffix}`;
|
|
1662
1662
|
}
|
|
1663
1663
|
export function withRouteMarkers(options) {
|
|
1664
|
-
const
|
|
1665
|
-
return
|
|
1664
|
+
const marker = routeMarkerParts(options.routePath);
|
|
1665
|
+
return `${marker.prefix}${options.html}${marker.suffix}`;
|
|
1666
|
+
}
|
|
1667
|
+
export function routeMarkerParts(routePath) {
|
|
1668
|
+
const routeId = routeIdForPath(routePath);
|
|
1669
|
+
return {
|
|
1670
|
+
prefix: `<div ${routeHydrationContract.routeMarkerAttribute}="${escapeHtmlAttribute(routeId)}">`,
|
|
1671
|
+
suffix: "</div>",
|
|
1672
|
+
};
|
|
1666
1673
|
}
|
|
1667
1674
|
export function hydrationMarkerParts(options) {
|
|
1668
1675
|
const routeId = routeIdForPath(options.routePath);
|
|
@@ -1828,6 +1835,7 @@ export async function buildClientRouteEntrySource(options) {
|
|
|
1828
1835
|
const clientReferenceRegistry = emitClientReferenceRegistry(clientReferenceManifest, options.clientReferenceImports ?? [], compatClientReferenceNames);
|
|
1829
1836
|
const routeComponentExpression = routeComponentExpressionForComponents(compiled.metadata.components);
|
|
1830
1837
|
const routeId = routeIdForPath(options.routePath);
|
|
1838
|
+
const restoreRequestUrl = options.restoreRequestUrl ?? (options.debugLabels === true || /\brequest\b/.test(options.code));
|
|
1831
1839
|
const routeUsesCells = detectRouteCellStateHint(compiled.code);
|
|
1832
1840
|
const routeUsesReactiveEffect = detectRouteReactiveEffectHint(compiled.code);
|
|
1833
1841
|
const routeUsesDomRefs = compiled.metadata.imports.some((entry) => entry.source === "@reckona/mreact-reactive-dom" && entry.specifiers.includes("bindDomRef"));
|
|
@@ -2345,6 +2353,7 @@ ${routeOutOfOrderFragmentHydration} const __mreactMarker = document.querySelect
|
|
|
2345
2353
|
const __mreactProps = __mreactPropsText === undefined
|
|
2346
2354
|
? {}
|
|
2347
2355
|
: JSON.parse(__mreactPropsText);
|
|
2356
|
+
${restoreRequestUrl ? " if (__mreactProps.request) __mreactProps.request.url = document.URL;\n" : ""}
|
|
2348
2357
|
const __mreactClientReferences = __mreactClientReferencesElement?.textContent === undefined
|
|
2349
2358
|
? []
|
|
2350
2359
|
: JSON.parse(__mreactClientReferencesElement.textContent);
|