@cmj/juice 0.6.1 → 0.6.2
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/compiler/diagnostics.d.ts +63 -0
- package/dist/compiler/diagnostics.d.ts.map +1 -0
- package/dist/compiler/diagnostics.js +142 -0
- package/dist/compiler/diagnostics.js.map +1 -0
- package/dist/compiler/plugin.d.ts.map +1 -1
- package/dist/compiler/plugin.js +116 -4
- package/dist/compiler/plugin.js.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Route entry shape accepted by diagnostics.
|
|
3
|
+
* Wider than DiscoveredRoute to accept readonly layouts from plugin.ts.
|
|
4
|
+
* @internal
|
|
5
|
+
*/
|
|
6
|
+
interface DiagnosticRouteEntry {
|
|
7
|
+
readonly moduleId: string;
|
|
8
|
+
readonly layouts?: readonly string[];
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* A diagnostic warning about a likely route file naming mistake.
|
|
12
|
+
* @internal
|
|
13
|
+
*/
|
|
14
|
+
export interface RouteDiagnostic {
|
|
15
|
+
/** Relative path to the route file (e.g. 'product.tsx') */
|
|
16
|
+
readonly file: string;
|
|
17
|
+
/** Current URL pattern (static) */
|
|
18
|
+
readonly currentPattern: string;
|
|
19
|
+
/** Suggested URL pattern (dynamic) */
|
|
20
|
+
readonly suggestedPattern: string;
|
|
21
|
+
/** Suggested filename with brackets */
|
|
22
|
+
readonly suggestedFile: string;
|
|
23
|
+
/** Param names referenced in the component source */
|
|
24
|
+
readonly referencedParams: readonly string[];
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Scan a route module's source code for references to dynamic params.
|
|
28
|
+
*
|
|
29
|
+
* Uses lightweight regex analysis — not a full AST parse. This is
|
|
30
|
+
* intentional: we're looking for *likely* param usage to emit helpful
|
|
31
|
+
* diagnostics, not enforcing correctness.
|
|
32
|
+
*
|
|
33
|
+
* @param source - The source code of the route module.
|
|
34
|
+
* @returns Array of unique param names referenced (e.g. `['id', 'slug']`).
|
|
35
|
+
*
|
|
36
|
+
* @internal
|
|
37
|
+
*/
|
|
38
|
+
export declare function _scanParamsUsage(source: string): string[];
|
|
39
|
+
/**
|
|
40
|
+
* Cross-reference discovered routes with their source code to find
|
|
41
|
+
* files that reference dynamic params but use static filenames.
|
|
42
|
+
*
|
|
43
|
+
* For each static route (no `:param` segments), reads the source file
|
|
44
|
+
* and checks for `params.xxx` usage. If found, emits a diagnostic
|
|
45
|
+
* suggesting the correct filename with `[param]` brackets.
|
|
46
|
+
*
|
|
47
|
+
* @param routes - The discovered route map from `_discoverRoutes`.
|
|
48
|
+
* @param projectRoot - Absolute path to the project root.
|
|
49
|
+
* @returns Array of diagnostics (empty if no mismatches found).
|
|
50
|
+
*
|
|
51
|
+
* @internal
|
|
52
|
+
*/
|
|
53
|
+
export declare function _diagnoseRouteMismatches(routes: Record<string, DiagnosticRouteEntry>, projectRoot: string): RouteDiagnostic[];
|
|
54
|
+
/**
|
|
55
|
+
* Format a diagnostic into a human-readable warning string.
|
|
56
|
+
*
|
|
57
|
+
* Follows the Juice error convention: WHAT, WHY, HOW TO FIX.
|
|
58
|
+
*
|
|
59
|
+
* @internal
|
|
60
|
+
*/
|
|
61
|
+
export declare function _formatDiagnostic(diag: RouteDiagnostic): string;
|
|
62
|
+
export {};
|
|
63
|
+
//# sourceMappingURL=diagnostics.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diagnostics.d.ts","sourceRoot":"","sources":["../../src/compiler/diagnostics.ts"],"names":[],"mappings":"AAWA;;;;GAIG;AACH,UAAU,oBAAoB;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACtC;AAED;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,2DAA2D;IAC3D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,mCAAmC;IACnC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,sCAAsC;IACtC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,uCAAuC;IACvC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,qDAAqD;IACrD,QAAQ,CAAC,gBAAgB,EAAE,SAAS,MAAM,EAAE,CAAC;CAC9C;AA6BD;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAyBzD;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,EAC5C,WAAW,EAAE,MAAM,GAClB,eAAe,EAAE,CA8CnB;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,eAAe,GAAG,MAAM,CAW/D"}
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
// ─────────────────────────────────────────────────────────────────
|
|
2
|
+
// @cmj/juice — Route Diagnostics
|
|
3
|
+
//
|
|
4
|
+
// Detects common file-naming mistakes in route discovery and emits
|
|
5
|
+
// empathic warnings with WHAT, WHY, and HOW TO FIX.
|
|
6
|
+
//
|
|
7
|
+
// This module is pure — no side effects, deterministic output.
|
|
8
|
+
// ─────────────────────────────────────────────────────────────────
|
|
9
|
+
import { readFileSync } from 'node:fs';
|
|
10
|
+
import { join, basename, dirname } from 'node:path';
|
|
11
|
+
// ── Regex patterns for params usage detection ──────────────────
|
|
12
|
+
/**
|
|
13
|
+
* Matches `params.xxx` dot-access patterns.
|
|
14
|
+
* Captures the param name after the dot.
|
|
15
|
+
*
|
|
16
|
+
* Examples:
|
|
17
|
+
* params.id → 'id'
|
|
18
|
+
* params.slug → 'slug'
|
|
19
|
+
* params?.id → 'id'
|
|
20
|
+
*
|
|
21
|
+
* @internal
|
|
22
|
+
*/
|
|
23
|
+
const PARAMS_DOT_ACCESS = /params\??\.(\w+)/g;
|
|
24
|
+
/**
|
|
25
|
+
* Matches destructuring from `params` on a single line:
|
|
26
|
+
* const { id } = params
|
|
27
|
+
* const { id, slug } = params
|
|
28
|
+
* let { id } = params
|
|
29
|
+
*
|
|
30
|
+
* Created fresh for each line to avoid lastIndex issues.
|
|
31
|
+
*
|
|
32
|
+
* @internal
|
|
33
|
+
*/
|
|
34
|
+
const PARAMS_DESTRUCTURE_LINE = /\{\s*([^}]+)\}\s*=\s*params\b/;
|
|
35
|
+
/**
|
|
36
|
+
* Scan a route module's source code for references to dynamic params.
|
|
37
|
+
*
|
|
38
|
+
* Uses lightweight regex analysis — not a full AST parse. This is
|
|
39
|
+
* intentional: we're looking for *likely* param usage to emit helpful
|
|
40
|
+
* diagnostics, not enforcing correctness.
|
|
41
|
+
*
|
|
42
|
+
* @param source - The source code of the route module.
|
|
43
|
+
* @returns Array of unique param names referenced (e.g. `['id', 'slug']`).
|
|
44
|
+
*
|
|
45
|
+
* @internal
|
|
46
|
+
*/
|
|
47
|
+
export function _scanParamsUsage(source) {
|
|
48
|
+
const found = new Set();
|
|
49
|
+
// 1. Dot-access: params.id, params?.slug
|
|
50
|
+
for (const match of source.matchAll(PARAMS_DOT_ACCESS)) {
|
|
51
|
+
if (match[1])
|
|
52
|
+
found.add(match[1]);
|
|
53
|
+
}
|
|
54
|
+
// 2. Destructuring: const { id, slug } = params
|
|
55
|
+
// Process line-by-line to prevent cross-line false positives
|
|
56
|
+
// (e.g., `function Page({ params }) {` merging with later lines)
|
|
57
|
+
for (const line of source.split('\n')) {
|
|
58
|
+
const match = PARAMS_DESTRUCTURE_LINE.exec(line);
|
|
59
|
+
if (match?.[1]) {
|
|
60
|
+
for (const part of match[1].split(',')) {
|
|
61
|
+
const trimmed = part.trim();
|
|
62
|
+
const propName = trimmed.split(':')[0].trim();
|
|
63
|
+
if (propName && /^\w+$/.test(propName)) {
|
|
64
|
+
found.add(propName);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
return [...found];
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Cross-reference discovered routes with their source code to find
|
|
73
|
+
* files that reference dynamic params but use static filenames.
|
|
74
|
+
*
|
|
75
|
+
* For each static route (no `:param` segments), reads the source file
|
|
76
|
+
* and checks for `params.xxx` usage. If found, emits a diagnostic
|
|
77
|
+
* suggesting the correct filename with `[param]` brackets.
|
|
78
|
+
*
|
|
79
|
+
* @param routes - The discovered route map from `_discoverRoutes`.
|
|
80
|
+
* @param projectRoot - Absolute path to the project root.
|
|
81
|
+
* @returns Array of diagnostics (empty if no mismatches found).
|
|
82
|
+
*
|
|
83
|
+
* @internal
|
|
84
|
+
*/
|
|
85
|
+
export function _diagnoseRouteMismatches(routes, projectRoot) {
|
|
86
|
+
const diagnostics = [];
|
|
87
|
+
for (const [pattern, entry] of Object.entries(routes)) {
|
|
88
|
+
// Skip routes that already have dynamic segments — they're fine
|
|
89
|
+
if (pattern.includes(':'))
|
|
90
|
+
continue;
|
|
91
|
+
// Resolve the module path and read source
|
|
92
|
+
const modulePath = entry.moduleId.replace(/^\.\//, '');
|
|
93
|
+
const absolutePath = join(projectRoot, modulePath);
|
|
94
|
+
let source;
|
|
95
|
+
try {
|
|
96
|
+
source = readFileSync(absolutePath, 'utf-8');
|
|
97
|
+
}
|
|
98
|
+
catch {
|
|
99
|
+
continue; // File unreadable — skip silently
|
|
100
|
+
}
|
|
101
|
+
const referencedParams = _scanParamsUsage(source);
|
|
102
|
+
if (referencedParams.length === 0)
|
|
103
|
+
continue;
|
|
104
|
+
// Build the suggested filename with [param] brackets
|
|
105
|
+
const fileName = basename(modulePath);
|
|
106
|
+
const ext = fileName.match(/\.[jt]sx?$/)?.[0] ?? '.tsx';
|
|
107
|
+
const baseName = fileName.replace(/\.[jt]sx?$/, '');
|
|
108
|
+
const dir = dirname(modulePath);
|
|
109
|
+
// Build suggested filename: product → product.[id]
|
|
110
|
+
const paramBrackets = referencedParams.map(p => `[${p}]`).join('.');
|
|
111
|
+
const suggestedBaseName = `${baseName}.${paramBrackets}`;
|
|
112
|
+
const suggestedFile = `${dir}/${suggestedBaseName}${ext}`;
|
|
113
|
+
// Build suggested URL pattern: /product → /product/:id
|
|
114
|
+
const paramSegments = referencedParams.map(p => `:${p}`).join('/');
|
|
115
|
+
const suggestedPattern = `${pattern}/${paramSegments}`;
|
|
116
|
+
diagnostics.push({
|
|
117
|
+
file: modulePath,
|
|
118
|
+
currentPattern: pattern,
|
|
119
|
+
suggestedPattern,
|
|
120
|
+
suggestedFile,
|
|
121
|
+
referencedParams,
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
return diagnostics;
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Format a diagnostic into a human-readable warning string.
|
|
128
|
+
*
|
|
129
|
+
* Follows the Juice error convention: WHAT, WHY, HOW TO FIX.
|
|
130
|
+
*
|
|
131
|
+
* @internal
|
|
132
|
+
*/
|
|
133
|
+
export function _formatDiagnostic(diag) {
|
|
134
|
+
const paramList = diag.referencedParams.join(', ');
|
|
135
|
+
const paramRefs = diag.referencedParams.map(p => `params.${p}`).join(', ');
|
|
136
|
+
return (`[juice] ⚠ Route "${basename(diag.file)}" maps to "${diag.currentPattern}" (static).\n` +
|
|
137
|
+
` Your component references ${paramRefs} which suggests a dynamic route.\n` +
|
|
138
|
+
` Did you mean: ${basename(diag.suggestedFile)} → ${diag.suggestedPattern}\n` +
|
|
139
|
+
` Rename the file to enable dynamic params:\n` +
|
|
140
|
+
` mv ${diag.file} ${diag.suggestedFile}`);
|
|
141
|
+
}
|
|
142
|
+
//# sourceMappingURL=diagnostics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diagnostics.js","sourceRoot":"","sources":["../../src/compiler/diagnostics.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../src/compiler/plugin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAKH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../src/compiler/plugin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAKH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AA2BrD;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,OAAO,UAAU,KAAK,CAAC,OAAO,CAAC,EAAE,kBAAkB,GAAG,GAAG,CA0gB/D"}
|
package/dist/compiler/plugin.js
CHANGED
|
@@ -33,6 +33,7 @@ import { ClientModuleRegistry } from './registry.js';
|
|
|
33
33
|
import { ServerActionRegistry } from './server-action-registry.js';
|
|
34
34
|
import { _discoverRoutes } from './discover.js';
|
|
35
35
|
import { _generateRouteTypes } from './dts.js';
|
|
36
|
+
import { _diagnoseRouteMismatches, _formatDiagnostic } from './diagnostics.js';
|
|
36
37
|
/**
|
|
37
38
|
* Virtual module prefix used to serve proxy modules for `'use client'`
|
|
38
39
|
* components during the server build.
|
|
@@ -112,6 +113,10 @@ export default function juice(options) {
|
|
|
112
113
|
routes = discovered;
|
|
113
114
|
}
|
|
114
115
|
}
|
|
116
|
+
// Emit empathic warnings for likely misnamed route files
|
|
117
|
+
if (routes) {
|
|
118
|
+
_emitRouteDiagnostics(config.root, routes);
|
|
119
|
+
}
|
|
115
120
|
// Emit typed route params — juice-env.d.ts
|
|
116
121
|
if (routes) {
|
|
117
122
|
_emitRouteTypes(config.root, routes);
|
|
@@ -131,6 +136,7 @@ export default function juice(options) {
|
|
|
131
136
|
if (discovered) {
|
|
132
137
|
routes = discovered;
|
|
133
138
|
_emitRouteTypes(config.root, routes);
|
|
139
|
+
_emitRouteDiagnostics(config.root, routes);
|
|
134
140
|
}
|
|
135
141
|
}
|
|
136
142
|
});
|
|
@@ -140,6 +146,7 @@ export default function juice(options) {
|
|
|
140
146
|
if (discovered) {
|
|
141
147
|
routes = discovered;
|
|
142
148
|
_emitRouteTypes(config.root, routes);
|
|
149
|
+
_emitRouteDiagnostics(config.root, routes);
|
|
143
150
|
}
|
|
144
151
|
}
|
|
145
152
|
});
|
|
@@ -216,8 +223,47 @@ export default function juice(options) {
|
|
|
216
223
|
}
|
|
217
224
|
}
|
|
218
225
|
}
|
|
219
|
-
// Render
|
|
220
|
-
|
|
226
|
+
// ── Render with onError callback (matches render.ts) ────
|
|
227
|
+
// Track thrown Response objects from React's onError callback.
|
|
228
|
+
// React's onError fires asynchronously during streaming — we
|
|
229
|
+
// store the thrown Response and check after awaiting the stream.
|
|
230
|
+
let thrownResponse = null;
|
|
231
|
+
const stream = await ReactDOM.renderToReadableStream(element, {
|
|
232
|
+
onError(error) {
|
|
233
|
+
// React calls this for errors during streaming.
|
|
234
|
+
// If it's a thrown Response, capture it — don't log.
|
|
235
|
+
if (error instanceof Response) {
|
|
236
|
+
thrownResponse = error;
|
|
237
|
+
return;
|
|
238
|
+
}
|
|
239
|
+
// Real errors — log for the developer
|
|
240
|
+
console.error('[juice/dev]', error);
|
|
241
|
+
},
|
|
242
|
+
});
|
|
243
|
+
// Wait for ALL Suspense boundaries to resolve. This ensures
|
|
244
|
+
// thrown Responses from async components are caught before we
|
|
245
|
+
// commit to a status code. Matches render.ts production behavior.
|
|
246
|
+
await stream.allReady;
|
|
247
|
+
// ── Check for thrown Response ──────────────────────────────
|
|
248
|
+
// If a component threw `new Response(body, { status: 404 })`,
|
|
249
|
+
// the onError callback captured it. Forward it to the client
|
|
250
|
+
// with proper status code and empathic logging.
|
|
251
|
+
if (thrownResponse) {
|
|
252
|
+
const status = thrownResponse.status;
|
|
253
|
+
const body = await thrownResponse.text().catch(() => '');
|
|
254
|
+
console.warn(`[juice/dev] Route "${matchedEntry.moduleId}" threw Response(${status}) for ${pathname}` +
|
|
255
|
+
(body ? `\n Body: ${body.slice(0, 200)}` : ''));
|
|
256
|
+
res.statusCode = status;
|
|
257
|
+
res.setHeader('Content-Type', 'text/html; charset=utf-8');
|
|
258
|
+
res.end(`<!DOCTYPE html><html><head><title>${status}</title>` +
|
|
259
|
+
`<script type="module" src="/@vite/client"></script></head>` +
|
|
260
|
+
`<body style="font-family:system-ui;padding:2rem;background:#1a1a2e;color:#e0e0e0">` +
|
|
261
|
+
`<h1 style="color:#ff6b6b">${status}</h1>` +
|
|
262
|
+
`${body ? `<p>${_escapeHtml(body)}</p>` : '<p>The route component threw a Response with no body.</p>'}` +
|
|
263
|
+
`<p style="color:#888;margin-top:1rem">Route: <code>${_escapeHtml(matchedEntry.moduleId)}</code></p>` +
|
|
264
|
+
`</body></html>`);
|
|
265
|
+
return;
|
|
266
|
+
}
|
|
221
267
|
// Collect the full HTML so we can inject the Vite HMR client
|
|
222
268
|
const reader = stream.getReader();
|
|
223
269
|
const decoder = new TextDecoder();
|
|
@@ -241,8 +287,47 @@ export default function juice(options) {
|
|
|
241
287
|
res.end(html);
|
|
242
288
|
}
|
|
243
289
|
catch (e) {
|
|
244
|
-
|
|
245
|
-
|
|
290
|
+
// ── Handle `throw new Response()` from route components ──
|
|
291
|
+
// This is a legitimate control flow pattern (e.g., 404 not found).
|
|
292
|
+
// Forward the Response status/body directly to the client.
|
|
293
|
+
if (e instanceof Response) {
|
|
294
|
+
const status = e.status;
|
|
295
|
+
const body = await e.text().catch(() => '');
|
|
296
|
+
console.warn(`[juice/dev] Route "${matchedEntry.moduleId}" threw Response(${status}) for ${pathname}` +
|
|
297
|
+
(body ? `\n Body: ${body.slice(0, 200)}` : ''));
|
|
298
|
+
res.statusCode = status;
|
|
299
|
+
res.setHeader('Content-Type', 'text/html; charset=utf-8');
|
|
300
|
+
res.end(`<!DOCTYPE html><html><head><title>${status}</title>` +
|
|
301
|
+
`<script type="module" src="/@vite/client"></script></head>` +
|
|
302
|
+
`<body><h1>${status}</h1>${body ? `<p>${_escapeHtml(body)}</p>` : ''}</body></html>`);
|
|
303
|
+
return;
|
|
304
|
+
}
|
|
305
|
+
// ── Handle real errors with empathic diagnostics ──────────
|
|
306
|
+
const err = e instanceof Error ? e : new Error(String(e));
|
|
307
|
+
server.ssrFixStacktrace(err);
|
|
308
|
+
const moduleId = matchedEntry.moduleId;
|
|
309
|
+
const message = err.message || String(e);
|
|
310
|
+
// Log empathic error: WHAT, WHY, HOW TO FIX
|
|
311
|
+
console.error(`[juice/dev] ❌ SSR render failed for ${pathname}\n` +
|
|
312
|
+
` Route: ${moduleId}\n` +
|
|
313
|
+
` Error: ${message}\n` +
|
|
314
|
+
(err.stack ? ` Stack: ${err.stack.split('\n').slice(1, 4).join('\n ')}\n` : '') +
|
|
315
|
+
`\n Try:\n` +
|
|
316
|
+
` • Check that "${moduleId}" exists and exports a default component.\n` +
|
|
317
|
+
` • If the file uses bracket params (e.g., [id]), ensure Vite can resolve it.\n` +
|
|
318
|
+
` • Check the component for runtime errors (null access, missing imports).`);
|
|
319
|
+
// Return a visible error page instead of a silent empty 404
|
|
320
|
+
res.statusCode = 500;
|
|
321
|
+
res.setHeader('Content-Type', 'text/html; charset=utf-8');
|
|
322
|
+
res.end(`<!DOCTYPE html><html><head><title>SSR Error</title>` +
|
|
323
|
+
`<script type="module" src="/@vite/client"></script></head>` +
|
|
324
|
+
`<body style="font-family:system-ui;padding:2rem;background:#1a1a2e;color:#e0e0e0">` +
|
|
325
|
+
`<h1 style="color:#ff6b6b">❌ SSR Render Error</h1>` +
|
|
326
|
+
`<p><strong>Route:</strong> <code>${_escapeHtml(moduleId)}</code></p>` +
|
|
327
|
+
`<p><strong>URL:</strong> <code>${_escapeHtml(pathname)}</code></p>` +
|
|
328
|
+
`<pre style="background:#16213e;padding:1rem;border-radius:8px;overflow-x:auto;color:#ff6b6b">${_escapeHtml(message)}</pre>` +
|
|
329
|
+
`<p style="color:#888">Check your terminal for the full stack trace.</p>` +
|
|
330
|
+
`</body></html>`);
|
|
246
331
|
}
|
|
247
332
|
});
|
|
248
333
|
},
|
|
@@ -436,4 +521,31 @@ function _emitRouteTypes(projectRoot, routes) {
|
|
|
436
521
|
// Non-fatal — don't break the build if DTS generation fails
|
|
437
522
|
}
|
|
438
523
|
}
|
|
524
|
+
/**
|
|
525
|
+
* Run route diagnostics and emit empathic warnings for likely misnamed files.
|
|
526
|
+
* Non-fatal — never breaks the build or dev server.
|
|
527
|
+
* @internal
|
|
528
|
+
*/
|
|
529
|
+
function _emitRouteDiagnostics(projectRoot, routes) {
|
|
530
|
+
try {
|
|
531
|
+
const diagnostics = _diagnoseRouteMismatches(routes, projectRoot);
|
|
532
|
+
for (const diag of diagnostics) {
|
|
533
|
+
console.warn(_formatDiagnostic(diag));
|
|
534
|
+
}
|
|
535
|
+
}
|
|
536
|
+
catch {
|
|
537
|
+
// Non-fatal — diagnostics should never crash the dev server
|
|
538
|
+
}
|
|
539
|
+
}
|
|
540
|
+
/**
|
|
541
|
+
* Escape HTML special characters to prevent XSS in error pages.
|
|
542
|
+
* @internal
|
|
543
|
+
*/
|
|
544
|
+
function _escapeHtml(str) {
|
|
545
|
+
return str
|
|
546
|
+
.replace(/&/g, '&')
|
|
547
|
+
.replace(/</g, '<')
|
|
548
|
+
.replace(/>/g, '>')
|
|
549
|
+
.replace(/"/g, '"');
|
|
550
|
+
}
|
|
439
551
|
//# sourceMappingURL=plugin.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../src/compiler/plugin.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../src/compiler/plugin.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cmj/juice",
|
|
3
|
-
"version": "0.6.
|
|
3
|
+
"version": "0.6.2",
|
|
4
4
|
"description": "Zero-bloat React 19 RSC framework — streaming SSR, server actions, zero config.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"keywords": [
|
|
@@ -107,4 +107,4 @@
|
|
|
107
107
|
"vite": "^6.0.0",
|
|
108
108
|
"vitest": "^3.0.0"
|
|
109
109
|
}
|
|
110
|
-
}
|
|
110
|
+
}
|