@catmint/cli 0.0.0-prealpha.2 → 0.0.0-prealpha.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/commands/build.d.ts.map +1 -1
- package/dist/commands/build.js +247 -109
- package/dist/commands/build.js.map +1 -1
- package/dist/commands/dev.d.ts.map +1 -1
- package/dist/commands/dev.js +104 -23
- package/dist/commands/dev.js.map +1 -1
- package/dist/commands/start.d.ts.map +1 -1
- package/dist/commands/start.js +374 -7
- package/dist/commands/start.js.map +1 -1
- package/dist/route-analysis.d.ts +41 -0
- package/dist/route-analysis.d.ts.map +1 -0
- package/dist/route-analysis.js +177 -0
- package/dist/route-analysis.js.map +1 -0
- package/package.json +5 -4
package/dist/commands/start.js
CHANGED
|
@@ -12,8 +12,10 @@ import { existsSync, readFileSync, statSync, createReadStream } from "node:fs";
|
|
|
12
12
|
import { createServer, } from "node:http";
|
|
13
13
|
import { networkInterfaces } from "node:os";
|
|
14
14
|
import { pathToFileURL } from "node:url";
|
|
15
|
+
import { createHash } from "node:crypto";
|
|
15
16
|
import { errorPageHtml } from "@catmint/vite";
|
|
16
17
|
import { shouldAutoPreflight, buildPreflightHeaders } from "../cors-utils.js";
|
|
18
|
+
import pc from "picocolors";
|
|
17
19
|
function parseFlags(args) {
|
|
18
20
|
const flags = {};
|
|
19
21
|
for (let i = 0; i < args.length; i++) {
|
|
@@ -25,6 +27,119 @@ function parseFlags(args) {
|
|
|
25
27
|
}
|
|
26
28
|
return flags;
|
|
27
29
|
}
|
|
30
|
+
/**
|
|
31
|
+
* Rendering mode symbols and colors.
|
|
32
|
+
*/
|
|
33
|
+
const MODE_SYMBOL = {
|
|
34
|
+
static: "○",
|
|
35
|
+
cached: "●",
|
|
36
|
+
dynamic: "λ",
|
|
37
|
+
};
|
|
38
|
+
const MODE_COLOR = {
|
|
39
|
+
static: pc.white,
|
|
40
|
+
cached: pc.green,
|
|
41
|
+
dynamic: pc.cyan,
|
|
42
|
+
};
|
|
43
|
+
/**
|
|
44
|
+
* Color a HTTP method string.
|
|
45
|
+
*/
|
|
46
|
+
function colorMethod(method) {
|
|
47
|
+
switch (method) {
|
|
48
|
+
case "GET":
|
|
49
|
+
return pc.green(method);
|
|
50
|
+
case "POST":
|
|
51
|
+
return pc.yellow(method);
|
|
52
|
+
case "PUT":
|
|
53
|
+
return pc.blue(method);
|
|
54
|
+
case "DELETE":
|
|
55
|
+
return pc.red(method);
|
|
56
|
+
case "PATCH":
|
|
57
|
+
return pc.magenta(method);
|
|
58
|
+
default:
|
|
59
|
+
return pc.white(method);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
function padEnd(str, len) {
|
|
63
|
+
return str.length >= len ? str + " " : str + " ".repeat(len - str.length + 1);
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Derive the rendering mode from a manifest route entry.
|
|
67
|
+
*
|
|
68
|
+
* - Has explicit `renderMode` → use it directly
|
|
69
|
+
* - Has `cache` options → `"cached"` (ISR)
|
|
70
|
+
* - Endpoint → `"dynamic"`
|
|
71
|
+
* - Page without cache → `"dynamic"`
|
|
72
|
+
*/
|
|
73
|
+
function manifestRouteMode(route) {
|
|
74
|
+
if (route.renderMode)
|
|
75
|
+
return route.renderMode;
|
|
76
|
+
if (route.type === "endpoint")
|
|
77
|
+
return "dynamic";
|
|
78
|
+
if (route.cache)
|
|
79
|
+
return "cached";
|
|
80
|
+
return "dynamic";
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Build a formatted route table from manifest data for production display.
|
|
84
|
+
*/
|
|
85
|
+
function formatManifestRouteTable(manifest) {
|
|
86
|
+
const allRoutes = [...manifest.routes, ...manifest.endpoints];
|
|
87
|
+
const entries = [];
|
|
88
|
+
for (const route of allRoutes) {
|
|
89
|
+
const source = route.source.split("/").pop() ?? route.source;
|
|
90
|
+
const mode = manifestRouteMode(route);
|
|
91
|
+
const symbol = MODE_COLOR[mode](MODE_SYMBOL[mode]);
|
|
92
|
+
if (route.type === "page") {
|
|
93
|
+
const plain = ` ${MODE_SYMBOL[mode]} ${padEnd("GET", 6)}${padEnd(route.path, 20)} → ${source}`;
|
|
94
|
+
const display = ` ${symbol} ${padEnd(colorMethod("GET"), 6 + (colorMethod("GET").length - 3))}${padEnd(route.path, 20)} → ${source}`;
|
|
95
|
+
entries.push({ display, plain });
|
|
96
|
+
}
|
|
97
|
+
else if (route.methods && route.methods.length > 0) {
|
|
98
|
+
for (const method of route.methods) {
|
|
99
|
+
const m = method === "default" ? "ALL" : method;
|
|
100
|
+
const plain = ` ${MODE_SYMBOL[mode]} ${padEnd(m, 6)}${padEnd(route.path, 20)} → ${source}`;
|
|
101
|
+
const display = ` ${symbol} ${padEnd(colorMethod(m), 6 + (colorMethod(m).length - m.length))}${padEnd(route.path, 20)} → ${source}`;
|
|
102
|
+
entries.push({ display, plain });
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
else {
|
|
106
|
+
const plain = ` ${MODE_SYMBOL[mode]} ${padEnd("ALL", 6)}${padEnd(route.path, 20)} → ${source}`;
|
|
107
|
+
const display = ` ${symbol} ${padEnd(colorMethod("ALL"), 6 + (colorMethod("ALL").length - 3))}${padEnd(route.path, 20)} → ${source}`;
|
|
108
|
+
entries.push({ display, plain });
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
if (entries.length === 0) {
|
|
112
|
+
const noRoutes = " (no routes found)";
|
|
113
|
+
entries.push({ display: noRoutes, plain: noRoutes });
|
|
114
|
+
}
|
|
115
|
+
const maxLen = Math.max(...entries.map((e) => e.plain.length), 20);
|
|
116
|
+
const boxWidth = maxLen + 4;
|
|
117
|
+
const top = ` ┌${"─".repeat(boxWidth)}┐`;
|
|
118
|
+
const bottom = ` └${"─".repeat(boxWidth)}┘`;
|
|
119
|
+
const header = ` │ Routes:${" ".repeat(boxWidth - 10)} │`;
|
|
120
|
+
const boxedLines = entries.map((e) => {
|
|
121
|
+
const pad = boxWidth - e.plain.length;
|
|
122
|
+
return ` │${e.display}${" ".repeat(pad)}│`;
|
|
123
|
+
});
|
|
124
|
+
// Route count summary
|
|
125
|
+
const pageCount = manifest.routes.length;
|
|
126
|
+
const endpointCount = manifest.endpoints.length;
|
|
127
|
+
const totalCount = pageCount + endpointCount;
|
|
128
|
+
const parts = [];
|
|
129
|
+
if (pageCount > 0)
|
|
130
|
+
parts.push(`${pageCount} page${pageCount !== 1 ? "s" : ""}`);
|
|
131
|
+
if (endpointCount > 0)
|
|
132
|
+
parts.push(`${endpointCount} endpoint${endpointCount !== 1 ? "s" : ""}`);
|
|
133
|
+
const countLine = parts.length > 0
|
|
134
|
+
? ` ${pc.dim(`${totalCount} route${totalCount !== 1 ? "s" : ""} (${parts.join(", ")})`)}`
|
|
135
|
+
: "";
|
|
136
|
+
const legend = ` ${MODE_COLOR.static(MODE_SYMBOL.static)} Static ${MODE_COLOR.cached(MODE_SYMBOL.cached)} Cached ${MODE_COLOR.dynamic(MODE_SYMBOL.dynamic)} Dynamic`;
|
|
137
|
+
const result = [top, header, ...boxedLines, bottom];
|
|
138
|
+
if (countLine)
|
|
139
|
+
result.push(countLine);
|
|
140
|
+
result.push(legend);
|
|
141
|
+
return result.join("\n");
|
|
142
|
+
}
|
|
28
143
|
/**
|
|
29
144
|
* Common MIME types for static file serving.
|
|
30
145
|
*/
|
|
@@ -123,6 +238,57 @@ async function pipeWebStreamToResponse(webStream, res) {
|
|
|
123
238
|
res.end();
|
|
124
239
|
}
|
|
125
240
|
}
|
|
241
|
+
/**
|
|
242
|
+
* Convert a Node.js IncomingMessage to a Web Request object.
|
|
243
|
+
* Used for middleware execution which operates on Web standards.
|
|
244
|
+
*/
|
|
245
|
+
function nodeReqToWebRequest(req) {
|
|
246
|
+
const protocol = "http";
|
|
247
|
+
const host = req.headers.host ?? "localhost";
|
|
248
|
+
const url = new URL(req.url ?? "/", `${protocol}://${host}`);
|
|
249
|
+
const headers = new Headers();
|
|
250
|
+
for (const [key, value] of Object.entries(req.headers)) {
|
|
251
|
+
if (value) {
|
|
252
|
+
if (Array.isArray(value)) {
|
|
253
|
+
for (const v of value) {
|
|
254
|
+
headers.append(key, v);
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
else {
|
|
258
|
+
headers.set(key, value);
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
return new Request(url.href, {
|
|
263
|
+
method: req.method ?? "GET",
|
|
264
|
+
headers,
|
|
265
|
+
});
|
|
266
|
+
}
|
|
267
|
+
// ─── Server function error helpers ──────────────────────────────────────────
|
|
268
|
+
function isClientSafeErrorLike(err) {
|
|
269
|
+
return (err != null &&
|
|
270
|
+
typeof err === "object" &&
|
|
271
|
+
err.constructor?.name ===
|
|
272
|
+
"ClientSafeError" &&
|
|
273
|
+
typeof err.statusCode === "number");
|
|
274
|
+
}
|
|
275
|
+
function isRedirectErrorLike(err) {
|
|
276
|
+
return (err != null &&
|
|
277
|
+
typeof err === "object" &&
|
|
278
|
+
err.constructor?.name ===
|
|
279
|
+
"RedirectError" &&
|
|
280
|
+
typeof err.url === "string" &&
|
|
281
|
+
typeof err.status === "number");
|
|
282
|
+
}
|
|
283
|
+
function errorRef(err) {
|
|
284
|
+
const msg = err != null && typeof err === "object" && err.message
|
|
285
|
+
? String(err.message)
|
|
286
|
+
: "unknown";
|
|
287
|
+
return createHash("sha256")
|
|
288
|
+
.update(msg + Date.now())
|
|
289
|
+
.digest("hex")
|
|
290
|
+
.slice(0, 8);
|
|
291
|
+
}
|
|
126
292
|
/**
|
|
127
293
|
* Start the Catmint production server.
|
|
128
294
|
*
|
|
@@ -158,13 +324,15 @@ export async function start(args) {
|
|
|
158
324
|
console.error(" Error: Failed to parse app_manifest.json:", err);
|
|
159
325
|
process.exit(1);
|
|
160
326
|
}
|
|
161
|
-
// Apply port/host from manifest config, then override with CLI flags
|
|
327
|
+
// Apply port/host/maxBodySize from manifest config, then override with CLI flags
|
|
162
328
|
if (manifest.config?.server?.port) {
|
|
163
329
|
port = manifest.config.server.port;
|
|
164
330
|
}
|
|
165
331
|
if (manifest.config?.server?.host) {
|
|
166
332
|
host = manifest.config.server.host;
|
|
167
333
|
}
|
|
334
|
+
const maxBodySize = manifest.config?.server?.maxBodySize ?? 1_048_576;
|
|
335
|
+
const headerPreset = manifest.config?.security?.headerPreset ?? "baseline";
|
|
168
336
|
if (portFlag !== undefined) {
|
|
169
337
|
port = portFlag;
|
|
170
338
|
}
|
|
@@ -175,6 +343,7 @@ export async function start(args) {
|
|
|
175
343
|
const rscDir = join(distDir, "rsc");
|
|
176
344
|
const ssrDir = join(distDir, "ssr");
|
|
177
345
|
const staticDir = join(distDir, "static");
|
|
346
|
+
const prerenderedDir = join(distDir, "prerendered");
|
|
178
347
|
// 3. Load RSC entry — renders pages to RSC flight streams
|
|
179
348
|
let rscEntry;
|
|
180
349
|
const rscEntryPath = join(rscDir, "index.js");
|
|
@@ -248,6 +417,12 @@ export async function start(args) {
|
|
|
248
417
|
}
|
|
249
418
|
// 5. Create HTTP server
|
|
250
419
|
const server = createServer(async (req, res) => {
|
|
420
|
+
// Baseline security headers (configurable via security.headerPreset)
|
|
421
|
+
if (headerPreset === "baseline") {
|
|
422
|
+
res.setHeader("X-Content-Type-Options", "nosniff");
|
|
423
|
+
res.setHeader("Referrer-Policy", "strict-origin-when-cross-origin");
|
|
424
|
+
res.setHeader("X-Frame-Options", "SAMEORIGIN");
|
|
425
|
+
}
|
|
251
426
|
const url = new URL(req.url ?? "/", `http://${req.headers.host ?? "localhost"}`);
|
|
252
427
|
const urlPath = url.pathname;
|
|
253
428
|
// Client assets (dist/client/) have hashed filenames and never conflict
|
|
@@ -255,14 +430,125 @@ export async function start(args) {
|
|
|
255
430
|
if (tryServeStatic(req, res, urlPath, clientDir, true)) {
|
|
256
431
|
return;
|
|
257
432
|
}
|
|
433
|
+
// Pre-rendered static pages WITHOUT middleware: serve directly from
|
|
434
|
+
// dist/static/ as a fast path — no middleware execution needed.
|
|
435
|
+
if (req.method === "GET") {
|
|
436
|
+
let staticHtmlPath = urlPath;
|
|
437
|
+
if (!extname(staticHtmlPath)) {
|
|
438
|
+
staticHtmlPath = staticHtmlPath.endsWith("/")
|
|
439
|
+
? staticHtmlPath + "index.html"
|
|
440
|
+
: staticHtmlPath + ".html";
|
|
441
|
+
}
|
|
442
|
+
if (tryServeStatic(req, res, staticHtmlPath, staticDir, false)) {
|
|
443
|
+
return;
|
|
444
|
+
}
|
|
445
|
+
}
|
|
446
|
+
// --- Middleware execution ---
|
|
447
|
+
// For all remaining routes (server functions, endpoints, prerendered
|
|
448
|
+
// pages with middleware, RSC-rendered pages), execute the middleware
|
|
449
|
+
// chain first. If middleware short-circuits, return its response.
|
|
450
|
+
// For RSC flight requests, run middleware against the TARGET page path
|
|
451
|
+
// (from ?path= query param), not the literal /__catmint/rsc pathname.
|
|
452
|
+
let middlewareHeaders;
|
|
453
|
+
if (ssrEntry?.executeMiddleware) {
|
|
454
|
+
try {
|
|
455
|
+
let middlewarePath = urlPath;
|
|
456
|
+
if (urlPath === "/__catmint/rsc") {
|
|
457
|
+
const parsedUrl = new URL(req.url ?? "/", `http://${req.headers.host ?? "localhost"}`);
|
|
458
|
+
const rscTargetPath = parsedUrl.searchParams.get("path");
|
|
459
|
+
if (rscTargetPath)
|
|
460
|
+
middlewarePath = rscTargetPath;
|
|
461
|
+
}
|
|
462
|
+
const webRequest = nodeReqToWebRequest(req);
|
|
463
|
+
const mwResult = await ssrEntry.executeMiddleware(middlewarePath, webRequest);
|
|
464
|
+
if (mwResult.shortCircuit) {
|
|
465
|
+
// Middleware short-circuited — return its response directly
|
|
466
|
+
res.statusCode = mwResult.shortCircuit.status;
|
|
467
|
+
mwResult.shortCircuit.headers.forEach((value, key) => {
|
|
468
|
+
res.setHeader(key, value);
|
|
469
|
+
});
|
|
470
|
+
const body = await mwResult.shortCircuit.text();
|
|
471
|
+
res.end(body);
|
|
472
|
+
return;
|
|
473
|
+
}
|
|
474
|
+
// Middleware passed — capture headers to merge into final response
|
|
475
|
+
if (mwResult.headers &&
|
|
476
|
+
typeof mwResult.headers.forEach === "function") {
|
|
477
|
+
middlewareHeaders = mwResult.headers;
|
|
478
|
+
}
|
|
479
|
+
}
|
|
480
|
+
catch (err) {
|
|
481
|
+
console.error(" Middleware error:", err);
|
|
482
|
+
if (!res.headersSent) {
|
|
483
|
+
res.statusCode = 500;
|
|
484
|
+
res.end("Internal Server Error");
|
|
485
|
+
}
|
|
486
|
+
return;
|
|
487
|
+
}
|
|
488
|
+
}
|
|
489
|
+
/**
|
|
490
|
+
* Helper: merge middleware headers into the response before sending.
|
|
491
|
+
*/
|
|
492
|
+
function applyMiddlewareHeaders() {
|
|
493
|
+
if (middlewareHeaders) {
|
|
494
|
+
middlewareHeaders.forEach((value, key) => {
|
|
495
|
+
res.setHeader(key, value);
|
|
496
|
+
});
|
|
497
|
+
}
|
|
498
|
+
}
|
|
258
499
|
// Server function RPC handling (/__catmint/fn/<basePath>/<hash>)
|
|
500
|
+
// NOTE: No built-in rate limiting is applied here. For production
|
|
501
|
+
// deployments, configure rate limiting at the edge/WAF/reverse-proxy
|
|
502
|
+
// layer or use a framework middleware hook.
|
|
259
503
|
const SERVER_FN_PREFIX = "/__catmint/fn/";
|
|
260
504
|
if (urlPath.startsWith(SERVER_FN_PREFIX) && ssrEntry?.handleServerFn) {
|
|
261
505
|
try {
|
|
262
|
-
|
|
506
|
+
const reqMethod = (req.method ?? "GET").toUpperCase();
|
|
507
|
+
// Enforce POST method for server function calls
|
|
508
|
+
if (reqMethod !== "POST") {
|
|
509
|
+
res.statusCode = 405;
|
|
510
|
+
res.setHeader("Content-Type", "application/json");
|
|
511
|
+
res.end(JSON.stringify({
|
|
512
|
+
error: `Method ${reqMethod} not allowed, expected POST`,
|
|
513
|
+
}));
|
|
514
|
+
return;
|
|
515
|
+
}
|
|
516
|
+
// Enforce Content-Type: application/json
|
|
517
|
+
const ct = (req.headers["content-type"] ?? "").toLowerCase();
|
|
518
|
+
if (ct && !ct.startsWith("application/json")) {
|
|
519
|
+
res.statusCode = 415;
|
|
520
|
+
res.setHeader("Content-Type", "application/json");
|
|
521
|
+
res.end(JSON.stringify({
|
|
522
|
+
error: "Unsupported Content-Type, expected application/json",
|
|
523
|
+
}));
|
|
524
|
+
return;
|
|
525
|
+
}
|
|
526
|
+
// Validate Origin header to mitigate cross-site invocation
|
|
527
|
+
const origin = req.headers["origin"];
|
|
528
|
+
if (origin) {
|
|
529
|
+
const expectedHost = req.headers.host ?? "localhost";
|
|
530
|
+
if (origin !== `http://${expectedHost}` &&
|
|
531
|
+
origin !== `https://${expectedHost}`) {
|
|
532
|
+
res.statusCode = 403;
|
|
533
|
+
res.setHeader("Content-Type", "application/json");
|
|
534
|
+
res.end(JSON.stringify({ error: "Origin not allowed" }));
|
|
535
|
+
return;
|
|
536
|
+
}
|
|
537
|
+
}
|
|
538
|
+
// Read request body with size limit
|
|
539
|
+
const MAX_BODY_SIZE = maxBodySize;
|
|
263
540
|
const chunks = [];
|
|
541
|
+
let totalLength = 0;
|
|
264
542
|
await new Promise((resolve, reject) => {
|
|
265
|
-
req.on("data", (chunk) =>
|
|
543
|
+
req.on("data", (chunk) => {
|
|
544
|
+
totalLength += chunk.length;
|
|
545
|
+
if (totalLength > MAX_BODY_SIZE) {
|
|
546
|
+
req.destroy();
|
|
547
|
+
reject(new Error("Request body too large"));
|
|
548
|
+
return;
|
|
549
|
+
}
|
|
550
|
+
chunks.push(chunk);
|
|
551
|
+
});
|
|
266
552
|
req.on("end", () => resolve());
|
|
267
553
|
req.on("error", reject);
|
|
268
554
|
});
|
|
@@ -280,6 +566,20 @@ export async function start(args) {
|
|
|
280
566
|
}
|
|
281
567
|
const result = await ssrEntry.handleServerFn(urlPath, body);
|
|
282
568
|
if (result) {
|
|
569
|
+
// Check if the result IS a ClientSafeError (returned, not thrown)
|
|
570
|
+
if (isClientSafeErrorLike(result.result)) {
|
|
571
|
+
applyMiddlewareHeaders();
|
|
572
|
+
res.statusCode = 200;
|
|
573
|
+
res.setHeader("Content-Type", "application/json");
|
|
574
|
+
res.end(JSON.stringify({
|
|
575
|
+
__clientSafeError: true,
|
|
576
|
+
error: result.result.message,
|
|
577
|
+
statusCode: result.result.statusCode,
|
|
578
|
+
data: result.result.data,
|
|
579
|
+
}));
|
|
580
|
+
return;
|
|
581
|
+
}
|
|
582
|
+
applyMiddlewareHeaders();
|
|
283
583
|
res.statusCode = 200;
|
|
284
584
|
res.setHeader("Content-Type", "application/json");
|
|
285
585
|
res.end(JSON.stringify(result.result));
|
|
@@ -292,12 +592,34 @@ export async function start(args) {
|
|
|
292
592
|
return;
|
|
293
593
|
}
|
|
294
594
|
catch (err) {
|
|
295
|
-
|
|
595
|
+
// Always log full error server-side
|
|
596
|
+
console.error("[catmint] Server function error:", err);
|
|
296
597
|
if (!res.headersSent) {
|
|
598
|
+
// RedirectError — send redirect envelope
|
|
599
|
+
if (isRedirectErrorLike(err)) {
|
|
600
|
+
res.statusCode = 200;
|
|
601
|
+
res.setHeader("Content-Type", "application/json");
|
|
602
|
+
res.end(JSON.stringify({
|
|
603
|
+
__redirect: true,
|
|
604
|
+
url: err.url,
|
|
605
|
+
status: err.status,
|
|
606
|
+
}));
|
|
607
|
+
return;
|
|
608
|
+
}
|
|
609
|
+
// ClientSafeError — developer opted in, expose to client
|
|
610
|
+
if (isClientSafeErrorLike(err)) {
|
|
611
|
+
res.statusCode = err.statusCode;
|
|
612
|
+
res.setHeader("Content-Type", "application/json");
|
|
613
|
+
res.end(JSON.stringify({ error: err.message, data: err.data }));
|
|
614
|
+
return;
|
|
615
|
+
}
|
|
616
|
+
// Default: sanitize — generic message with correlation hash
|
|
617
|
+
const ref = errorRef(err);
|
|
618
|
+
console.error(`[catmint] Error reference [ref: ${ref}] — see above for full error`);
|
|
297
619
|
res.statusCode = 500;
|
|
298
620
|
res.setHeader("Content-Type", "application/json");
|
|
299
621
|
res.end(JSON.stringify({
|
|
300
|
-
error:
|
|
622
|
+
error: `Internal Server Error [ref: ${ref}]`,
|
|
301
623
|
}));
|
|
302
624
|
}
|
|
303
625
|
return;
|
|
@@ -321,8 +643,17 @@ export async function start(args) {
|
|
|
321
643
|
// Attach body for methods that have one
|
|
322
644
|
if (method !== "GET" && method !== "HEAD") {
|
|
323
645
|
const chunks = [];
|
|
646
|
+
let totalLength = 0;
|
|
324
647
|
await new Promise((resolve, reject) => {
|
|
325
|
-
req.on("data", (chunk) =>
|
|
648
|
+
req.on("data", (chunk) => {
|
|
649
|
+
totalLength += chunk.length;
|
|
650
|
+
if (totalLength > maxBodySize) {
|
|
651
|
+
req.destroy();
|
|
652
|
+
reject(new Error("Request body too large"));
|
|
653
|
+
return;
|
|
654
|
+
}
|
|
655
|
+
chunks.push(chunk);
|
|
656
|
+
});
|
|
326
657
|
req.on("end", () => resolve());
|
|
327
658
|
req.on("error", reject);
|
|
328
659
|
});
|
|
@@ -337,6 +668,8 @@ export async function start(args) {
|
|
|
337
668
|
result.response.headers.forEach((value, key) => {
|
|
338
669
|
res.setHeader(key, value);
|
|
339
670
|
});
|
|
671
|
+
// Merge middleware headers
|
|
672
|
+
applyMiddlewareHeaders();
|
|
340
673
|
// Stream the response body
|
|
341
674
|
if (result.response.body) {
|
|
342
675
|
await pipeWebStreamToResponse(result.response.body, res);
|
|
@@ -371,6 +704,13 @@ export async function start(args) {
|
|
|
371
704
|
}
|
|
372
705
|
}
|
|
373
706
|
catch (err) {
|
|
707
|
+
// redirect() throws a RedirectError — convert to a real HTTP redirect
|
|
708
|
+
if (isRedirectErrorLike(err)) {
|
|
709
|
+
res.statusCode = err.status;
|
|
710
|
+
res.setHeader("Location", err.url);
|
|
711
|
+
res.end();
|
|
712
|
+
return;
|
|
713
|
+
}
|
|
374
714
|
console.error(" Endpoint error:", err);
|
|
375
715
|
if (!res.headersSent) {
|
|
376
716
|
await sendStatusPage(res, 500, urlPath);
|
|
@@ -378,6 +718,31 @@ export async function start(args) {
|
|
|
378
718
|
return;
|
|
379
719
|
}
|
|
380
720
|
}
|
|
721
|
+
// Pre-rendered pages WITH middleware: serve from dist/prerendered/
|
|
722
|
+
// These are static routes that have middleware ancestors — their HTML
|
|
723
|
+
// was pre-rendered but they must go through the middleware pipeline.
|
|
724
|
+
if (req.method === "GET" && existsSync(prerenderedDir)) {
|
|
725
|
+
let prerenderedHtmlPath = urlPath;
|
|
726
|
+
if (!extname(prerenderedHtmlPath)) {
|
|
727
|
+
prerenderedHtmlPath = prerenderedHtmlPath.endsWith("/")
|
|
728
|
+
? prerenderedHtmlPath + "index.html"
|
|
729
|
+
: prerenderedHtmlPath + ".html";
|
|
730
|
+
}
|
|
731
|
+
// Serve the prerendered HTML with middleware headers applied
|
|
732
|
+
const safePath = prerenderedHtmlPath
|
|
733
|
+
.replace(/\.\./g, "")
|
|
734
|
+
.replace(/\/+/g, "/");
|
|
735
|
+
const filePath = join(prerenderedDir, safePath);
|
|
736
|
+
if (filePath.startsWith(prerenderedDir) &&
|
|
737
|
+
existsSync(filePath) &&
|
|
738
|
+
statSync(filePath).isFile()) {
|
|
739
|
+
applyMiddlewareHeaders();
|
|
740
|
+
res.statusCode = 200;
|
|
741
|
+
res.setHeader("Content-Type", "text/html; charset=utf-8");
|
|
742
|
+
createReadStream(filePath).pipe(res);
|
|
743
|
+
return;
|
|
744
|
+
}
|
|
745
|
+
}
|
|
381
746
|
// RSC → SSR: render the page using the two-phase pipeline
|
|
382
747
|
// 1. RSC entry renders the page to a flight stream
|
|
383
748
|
// 2. SSR entry converts flight stream to HTML with embedded RSC payload
|
|
@@ -389,6 +754,7 @@ export async function start(args) {
|
|
|
389
754
|
const result = await rscEntry.render(urlPath);
|
|
390
755
|
if (result) {
|
|
391
756
|
const htmlStream = await ssrEntry.renderToHtml(result.stream, result.headConfig);
|
|
757
|
+
applyMiddlewareHeaders();
|
|
392
758
|
res.statusCode = 200;
|
|
393
759
|
res.setHeader("Content-Type", "text/html; charset=utf-8");
|
|
394
760
|
await pipeWebStreamToResponse(htmlStream, res);
|
|
@@ -418,7 +784,8 @@ export async function start(args) {
|
|
|
418
784
|
console.log(" catmint production server");
|
|
419
785
|
console.log();
|
|
420
786
|
console.log(` Build ID: ${manifest.buildId}`);
|
|
421
|
-
console.log(
|
|
787
|
+
console.log();
|
|
788
|
+
console.log(formatManifestRouteTable(manifest));
|
|
422
789
|
if (hasRscPipeline) {
|
|
423
790
|
console.log(` Mode: RSC`);
|
|
424
791
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"start.js","sourceRoot":"","sources":["../../src/commands/start.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"start.js","sourceRoot":"","sources":["../../src/commands/start.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The rendering mode of a route.
|
|
3
|
+
*
|
|
4
|
+
* - `"static"`: Pre-rendered at build time via `staticRoute()`
|
|
5
|
+
* - `"cached"`: ISR with revalidation via `cachedRoute()`
|
|
6
|
+
* - `"dynamic"`: Rendered on every request (default)
|
|
7
|
+
*/
|
|
8
|
+
export type RouteRenderMode = "static" | "cached" | "dynamic";
|
|
9
|
+
/**
|
|
10
|
+
* Cache options extracted from a `cachedRoute()` call.
|
|
11
|
+
*/
|
|
12
|
+
export interface CacheOptions {
|
|
13
|
+
revalidate?: number;
|
|
14
|
+
tags?: string[];
|
|
15
|
+
staleWhileRevalidate?: boolean;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Detect the rendering mode of a page file using SWC AST analysis.
|
|
19
|
+
*
|
|
20
|
+
* Parses the file and inspects the default export:
|
|
21
|
+
* - `export default staticRoute(...)` → `"static"`
|
|
22
|
+
* - `export default cachedRoute(...)` → `"cached"`
|
|
23
|
+
* - anything else → `"dynamic"`
|
|
24
|
+
*
|
|
25
|
+
* Endpoints are always `"dynamic"`.
|
|
26
|
+
*/
|
|
27
|
+
export declare function detectRouteMode(filePath: string, routeType: "page" | "endpoint"): RouteRenderMode;
|
|
28
|
+
/**
|
|
29
|
+
* Extract `cachedRoute()` options from a page source file using SWC AST analysis.
|
|
30
|
+
*
|
|
31
|
+
* Parses the file with SWC and walks the AST to find the default export.
|
|
32
|
+
* If it's a `cachedRoute(handler, options)` call, extracts the options object
|
|
33
|
+
* (revalidate, tag, staleWhileRevalidate) from the second argument.
|
|
34
|
+
*
|
|
35
|
+
* This approach is robust against code examples in string literals, JSX content,
|
|
36
|
+
* and unusual formatting — unlike regex-based extraction.
|
|
37
|
+
*
|
|
38
|
+
* Returns null if the file doesn't use cachedRoute as its default export.
|
|
39
|
+
*/
|
|
40
|
+
export declare function extractCacheOptions(filePath: string): CacheOptions | null;
|
|
41
|
+
//# sourceMappingURL=route-analysis.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"route-analysis.d.ts","sourceRoot":"","sources":["../src/route-analysis.ts"],"names":[],"mappings":"AAQA;;;;;;GAMG;AACH,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE9D;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC;AAED;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,GAAG,UAAU,GAC7B,eAAe,CAqBjB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CAsCzE"}
|