@catmint/cli 0.0.0-prealpha.1 → 0.0.0-prealpha.11
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 +52 -0
- package/dist/commands/build.d.ts.map +1 -1
- package/dist/commands/build.js +269 -108
- package/dist/commands/build.js.map +1 -1
- package/dist/commands/dev.d.ts.map +1 -1
- package/dist/commands/dev.js +103 -23
- package/dist/commands/dev.js.map +1 -1
- package/dist/commands/start.d.ts.map +1 -1
- package/dist/commands/start.js +368 -8
- 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 +4 -3
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
|
*
|
|
@@ -133,7 +299,7 @@ export async function start(args) {
|
|
|
133
299
|
const flags = parseFlags(args);
|
|
134
300
|
const rootDir = process.cwd();
|
|
135
301
|
// Read port/host from manifest config first, then CLI flags override
|
|
136
|
-
let port =
|
|
302
|
+
let port = 6468;
|
|
137
303
|
let host = "0.0.0.0";
|
|
138
304
|
// We'll read these from the manifest after loading it, but CLI flags take precedence
|
|
139
305
|
const portFlag = typeof flags.port === "string" ? parseInt(flags.port, 10) : undefined;
|
|
@@ -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);
|
|
@@ -378,6 +711,31 @@ export async function start(args) {
|
|
|
378
711
|
return;
|
|
379
712
|
}
|
|
380
713
|
}
|
|
714
|
+
// Pre-rendered pages WITH middleware: serve from dist/prerendered/
|
|
715
|
+
// These are static routes that have middleware ancestors — their HTML
|
|
716
|
+
// was pre-rendered but they must go through the middleware pipeline.
|
|
717
|
+
if (req.method === "GET" && existsSync(prerenderedDir)) {
|
|
718
|
+
let prerenderedHtmlPath = urlPath;
|
|
719
|
+
if (!extname(prerenderedHtmlPath)) {
|
|
720
|
+
prerenderedHtmlPath = prerenderedHtmlPath.endsWith("/")
|
|
721
|
+
? prerenderedHtmlPath + "index.html"
|
|
722
|
+
: prerenderedHtmlPath + ".html";
|
|
723
|
+
}
|
|
724
|
+
// Serve the prerendered HTML with middleware headers applied
|
|
725
|
+
const safePath = prerenderedHtmlPath
|
|
726
|
+
.replace(/\.\./g, "")
|
|
727
|
+
.replace(/\/+/g, "/");
|
|
728
|
+
const filePath = join(prerenderedDir, safePath);
|
|
729
|
+
if (filePath.startsWith(prerenderedDir) &&
|
|
730
|
+
existsSync(filePath) &&
|
|
731
|
+
statSync(filePath).isFile()) {
|
|
732
|
+
applyMiddlewareHeaders();
|
|
733
|
+
res.statusCode = 200;
|
|
734
|
+
res.setHeader("Content-Type", "text/html; charset=utf-8");
|
|
735
|
+
createReadStream(filePath).pipe(res);
|
|
736
|
+
return;
|
|
737
|
+
}
|
|
738
|
+
}
|
|
381
739
|
// RSC → SSR: render the page using the two-phase pipeline
|
|
382
740
|
// 1. RSC entry renders the page to a flight stream
|
|
383
741
|
// 2. SSR entry converts flight stream to HTML with embedded RSC payload
|
|
@@ -389,6 +747,7 @@ export async function start(args) {
|
|
|
389
747
|
const result = await rscEntry.render(urlPath);
|
|
390
748
|
if (result) {
|
|
391
749
|
const htmlStream = await ssrEntry.renderToHtml(result.stream, result.headConfig);
|
|
750
|
+
applyMiddlewareHeaders();
|
|
392
751
|
res.statusCode = 200;
|
|
393
752
|
res.setHeader("Content-Type", "text/html; charset=utf-8");
|
|
394
753
|
await pipeWebStreamToResponse(htmlStream, res);
|
|
@@ -418,7 +777,8 @@ export async function start(args) {
|
|
|
418
777
|
console.log(" catmint production server");
|
|
419
778
|
console.log();
|
|
420
779
|
console.log(` Build ID: ${manifest.buildId}`);
|
|
421
|
-
console.log(
|
|
780
|
+
console.log();
|
|
781
|
+
console.log(formatManifestRouteTable(manifest));
|
|
422
782
|
if (hasRscPipeline) {
|
|
423
783
|
console.log(` Mode: RSC`);
|
|
424
784
|
}
|
|
@@ -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"}
|