@nexus_js/server 0.9.29 → 0.9.30

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.
Files changed (80) hide show
  1. package/dist/actions.d.ts +71 -11
  2. package/dist/actions.d.ts.map +1 -1
  3. package/dist/actions.js +442 -51
  4. package/dist/actions.js.map +1 -1
  5. package/dist/build-id.d.ts +14 -0
  6. package/dist/build-id.d.ts.map +1 -0
  7. package/dist/build-id.js +40 -0
  8. package/dist/build-id.js.map +1 -0
  9. package/dist/context.d.ts +38 -4
  10. package/dist/context.d.ts.map +1 -1
  11. package/dist/context.js +13 -3
  12. package/dist/context.js.map +1 -1
  13. package/dist/csrf.d.ts +16 -2
  14. package/dist/csrf.d.ts.map +1 -1
  15. package/dist/csrf.js +68 -30
  16. package/dist/csrf.js.map +1 -1
  17. package/dist/dev-assets.d.ts +31 -0
  18. package/dist/dev-assets.d.ts.map +1 -1
  19. package/dist/dev-assets.js +372 -38
  20. package/dist/dev-assets.js.map +1 -1
  21. package/dist/dev-assets.test.d.ts +2 -0
  22. package/dist/dev-assets.test.d.ts.map +1 -0
  23. package/dist/dev-error-html.d.ts.map +1 -1
  24. package/dist/dev-error-html.js +24 -0
  25. package/dist/dev-error-html.js.map +1 -1
  26. package/dist/devradar.d.ts +1 -1
  27. package/dist/devradar.d.ts.map +1 -1
  28. package/dist/devradar.js.map +1 -1
  29. package/dist/head-renderer.test.d.ts +2 -0
  30. package/dist/head-renderer.test.d.ts.map +1 -0
  31. package/dist/head-renderer.test.js +78 -0
  32. package/dist/head-renderer.test.js.map +1 -0
  33. package/dist/index.d.ts +97 -2
  34. package/dist/index.d.ts.map +1 -1
  35. package/dist/index.js +442 -47
  36. package/dist/index.js.map +1 -1
  37. package/dist/legacy-wrapper.d.ts +88 -0
  38. package/dist/legacy-wrapper.d.ts.map +1 -0
  39. package/dist/legacy-wrapper.js +104 -0
  40. package/dist/legacy-wrapper.js.map +1 -0
  41. package/dist/lib-assets.d.ts +5 -0
  42. package/dist/lib-assets.d.ts.map +1 -0
  43. package/dist/lib-assets.js +95 -0
  44. package/dist/lib-assets.js.map +1 -0
  45. package/dist/load-module.d.ts +6 -0
  46. package/dist/load-module.d.ts.map +1 -1
  47. package/dist/load-module.js +40 -53
  48. package/dist/load-module.js.map +1 -1
  49. package/dist/metadata.d.ts +95 -0
  50. package/dist/metadata.d.ts.map +1 -0
  51. package/dist/metadata.js +132 -0
  52. package/dist/metadata.js.map +1 -0
  53. package/dist/navigate.d.ts +0 -5
  54. package/dist/navigate.d.ts.map +1 -1
  55. package/dist/navigate.js +0 -1
  56. package/dist/navigate.js.map +1 -1
  57. package/dist/rate-limit.d.ts.map +1 -1
  58. package/dist/rate-limit.js +27 -14
  59. package/dist/rate-limit.js.map +1 -1
  60. package/dist/renderer.d.ts +27 -7
  61. package/dist/renderer.d.ts.map +1 -1
  62. package/dist/renderer.js +152 -25
  63. package/dist/renderer.js.map +1 -1
  64. package/dist/renderer.test.d.ts +2 -0
  65. package/dist/renderer.test.d.ts.map +1 -0
  66. package/dist/renderer.test.js +251 -0
  67. package/dist/renderer.test.js.map +1 -0
  68. package/dist/streaming.d.ts +3 -3
  69. package/dist/streaming.d.ts.map +1 -1
  70. package/dist/streaming.js +33 -13
  71. package/dist/streaming.js.map +1 -1
  72. package/dist/tenancy.d.ts +17 -0
  73. package/dist/tenancy.d.ts.map +1 -0
  74. package/dist/tenancy.js +132 -0
  75. package/dist/tenancy.js.map +1 -0
  76. package/dist/tenancy.test.d.ts +2 -0
  77. package/dist/tenancy.test.d.ts.map +1 -0
  78. package/dist/tenancy.test.js +38 -0
  79. package/dist/tenancy.test.js.map +1 -0
  80. package/package.json +26 -8
@@ -1,15 +1,197 @@
1
1
  /**
2
2
  * Dev / Node server assets: /@nexus_js/runtime ESM mirror + aggregated scoped CSS from .nx files.
3
3
  */
4
- import { compile } from '@nexus_js/compiler';
4
+ import { compile, formatCompileError, CompileError } from '@nexus_js/compiler';
5
+ import { createHash } from 'node:crypto';
5
6
  import { existsSync } from 'node:fs';
7
+ import { createRequire } from 'node:module';
6
8
  import { readdir, readFile, stat } from 'node:fs/promises';
7
9
  import { join, relative, resolve, normalize, sep } from 'node:path';
10
+ import { fileURLToPath } from 'node:url';
11
+ const require = createRequire(import.meta.url);
8
12
  const RT_PREFIX = '/_nexus/rt/';
9
13
  const LAYER_DECL = '@layer nexus.scoped, nexus.global;\n';
10
14
  let aggregatedCssCache = null;
15
+ /**
16
+ * SHA-1 ETag for the current aggregated CSS. Quoted per RFC 7232 so it can
17
+ * be used directly in `ETag` / `If-None-Match` headers without extra quoting.
18
+ * Reset to null whenever the cache is busted.
19
+ */
20
+ let aggregatedCssETag = null;
21
+ /**
22
+ * In-flight deduplication: when multiple requests arrive simultaneously after
23
+ * `bustAggregatedStylesCache()` clears the cache, they all await the same
24
+ * promise instead of each launching a parallel compile sweep.
25
+ */
26
+ let aggregatedCssBuildInFlight = null;
27
+ /**
28
+ * Generation counter — incremented by every `bustAggregatedStylesCache()` call.
29
+ * A build that completes after a bust compares its snapshot against the current
30
+ * generation and skips writing to the cache if they differ, preventing a stale
31
+ * build from overwriting a fresher one that started after the bust.
32
+ */
33
+ let aggregatedCssBuildGeneration = 0;
11
34
  export function bustAggregatedStylesCache() {
12
35
  aggregatedCssCache = null;
36
+ aggregatedCssETag = null;
37
+ aggregatedCssBuildInFlight = null;
38
+ aggregatedCssBuildGeneration++;
39
+ }
40
+ // ── Global CSS (dev) ─────────────────────────────────────────────────────────
41
+ // Processes src/app.css | src/global.css | src/index.css | src/styles.css
42
+ // with optional PostCSS/Tailwind support so global stylesheets survive SSR.
43
+ let globalCssCache = null;
44
+ let globalCssETag = null;
45
+ let globalCssBuildInFlight = null;
46
+ let globalCssBuildGeneration = 0;
47
+ let globalCssEntryPath = null;
48
+ export function bustGlobalStylesCache() {
49
+ globalCssCache = null;
50
+ globalCssETag = null;
51
+ globalCssBuildInFlight = null;
52
+ globalCssBuildGeneration++;
53
+ globalCssEntryPath = null;
54
+ }
55
+ export function getGlobalCssETag() {
56
+ return globalCssETag;
57
+ }
58
+ function isUnderAppRoot(appRoot, target) {
59
+ const rel = relative(resolve(appRoot), resolve(target));
60
+ if (rel === '..')
61
+ return false;
62
+ if (rel.startsWith(`..${sep}`))
63
+ return false;
64
+ return true;
65
+ }
66
+ function findGlobalCssEntry(appRoot, customEntry) {
67
+ if (customEntry) {
68
+ const p = join(appRoot, customEntry);
69
+ // Guard against path-traversal via malicious config (e.g. entry: '../../../etc/passwd')
70
+ if (!isUnderAppRoot(appRoot, p)) {
71
+ process.stdout.write(`\x1b[33m[Nexus] CSS entry escapes app root and was ignored: ${customEntry}\x1b[0m\n`);
72
+ return null;
73
+ }
74
+ if (existsSync(p))
75
+ return p;
76
+ return null;
77
+ }
78
+ const candidates = [
79
+ join(appRoot, 'src', 'app.css'),
80
+ join(appRoot, 'src', 'global.css'),
81
+ join(appRoot, 'src', 'index.css'),
82
+ join(appRoot, 'src', 'styles.css'),
83
+ ];
84
+ for (const p of candidates) {
85
+ if (existsSync(p))
86
+ return p;
87
+ }
88
+ return null;
89
+ }
90
+ export async function buildGlobalStylesheet(appRoot, customEntry) {
91
+ const entry = findGlobalCssEntry(appRoot, customEntry);
92
+ if (!entry)
93
+ return null;
94
+ if (globalCssCache !== null && globalCssEntryPath === entry)
95
+ return globalCssCache;
96
+ if (globalCssBuildInFlight !== null)
97
+ return globalCssBuildInFlight;
98
+ const myGeneration = globalCssBuildGeneration;
99
+ let promise;
100
+ promise = (async () => {
101
+ try {
102
+ const raw = await readFile(entry, 'utf-8');
103
+ let css = raw;
104
+ // Optional PostCSS processing (Tailwind, Autoprefixer, etc.)
105
+ try {
106
+ // Resolve postcss from the app's node_modules, not from @nexus_js/server
107
+ const appRequire = createRequire(join(appRoot, 'package.json'));
108
+ const postcssPath = appRequire.resolve('postcss');
109
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
110
+ // @ts-ignore
111
+ const postcssMod = await import(postcssPath);
112
+ // Safe: postcss can export as default (ESM) or as the module itself (CJS).
113
+ const postcss = postcssMod.default ?? postcssMod;
114
+ const plugins = [];
115
+ // Attempt to load postcss.config.{mjs,cjs,js}
116
+ try {
117
+ for (const cfgName of ['postcss.config.mjs', 'postcss.config.cjs', 'postcss.config.js']) {
118
+ const cfgPath = join(appRoot, cfgName);
119
+ if (existsSync(cfgPath)) {
120
+ const mod = await import(cfgPath);
121
+ const cfg = mod.default ?? mod;
122
+ if (Array.isArray(cfg.plugins)) {
123
+ for (const plug of cfg.plugins)
124
+ plugins.push(plug);
125
+ }
126
+ else if (cfg.plugins && typeof cfg.plugins === 'object') {
127
+ // Handle { 'plugin-name': options } format (common in PostCSS configs)
128
+ for (const [name, options] of Object.entries(cfg.plugins)) {
129
+ if (typeof name === 'string') {
130
+ try {
131
+ // Resolve plugin from app's node_modules
132
+ const plugPath = appRequire.resolve(name);
133
+ const plugMod = await import(plugPath);
134
+ const plugFn = plugMod.default ?? plugMod;
135
+ if (typeof plugFn === 'function') {
136
+ // Options can be undefined, null, or an object
137
+ plugins.push(plugFn(options === undefined || options === null ? undefined : options));
138
+ }
139
+ else {
140
+ plugins.push(plugFn);
141
+ }
142
+ }
143
+ catch {
144
+ // If import fails, push the raw value and let PostCSS error surface
145
+ plugins.push(options);
146
+ }
147
+ }
148
+ else {
149
+ plugins.push(options);
150
+ }
151
+ }
152
+ }
153
+ break;
154
+ }
155
+ }
156
+ }
157
+ catch {
158
+ /* no PostCSS config found */
159
+ }
160
+ const result = await postcss(plugins).process(css, { from: entry, to: entry });
161
+ css = result.css;
162
+ }
163
+ catch {
164
+ // PostCSS not installed or failed — serve raw CSS so the user at least
165
+ // sees plain CSS classes even if @tailwind directives are unprocessed.
166
+ }
167
+ if (globalCssBuildGeneration === myGeneration) {
168
+ globalCssCache = css;
169
+ globalCssETag = `"${createHash('sha1').update(css).digest('hex').slice(0, 16)}"`;
170
+ globalCssEntryPath = entry;
171
+ }
172
+ return css;
173
+ }
174
+ catch (err) {
175
+ const msg = err instanceof Error ? err.message : String(err);
176
+ process.stdout.write(`\x1b[33m[Nexus] Global CSS build failed: ${msg}\x1b[0m\n`);
177
+ return null;
178
+ }
179
+ finally {
180
+ if (globalCssBuildInFlight === promise) {
181
+ globalCssBuildInFlight = null;
182
+ }
183
+ }
184
+ })();
185
+ globalCssBuildInFlight = promise;
186
+ return promise;
187
+ }
188
+ /**
189
+ * Return the ETag for the most-recently compiled aggregated stylesheet, or
190
+ * null when no compiled result is available yet. Called by the request
191
+ * handler to implement conditional-GET / 304 responses.
192
+ */
193
+ export function getAggregatedCssETag() {
194
+ return aggregatedCssETag;
13
195
  }
14
196
  /**
15
197
  * Locate `@nexus_js/runtime/dist` without `require.resolve` (pnpm "exports" blocks package.json / bare resolve from apps).
@@ -35,6 +217,16 @@ export function resolveRuntimeDistDir(appRoot) {
35
217
  * Locate `@nexus_js/serialize/dist` — served to the browser at `/_nexus/rt/serialize.js`.
36
218
  */
37
219
  export function resolveSerializeDistFile(appRoot) {
220
+ try {
221
+ // @nexus_js/serialize is ESM-only; use import.meta.resolve instead of require.resolve
222
+ const resolvedUrl = import.meta.resolve('@nexus_js/serialize');
223
+ const fromResolve = fileURLToPath(resolvedUrl);
224
+ if (existsSync(fromResolve))
225
+ return fromResolve;
226
+ }
227
+ catch {
228
+ /* not resolvable from server package graph */
229
+ }
38
230
  const candidates = [
39
231
  join(appRoot, 'node_modules', '@nexus_js', 'serialize', 'dist', 'index.js'),
40
232
  join(appRoot, '..', 'node_modules', '@nexus_js', 'serialize', 'dist', 'index.js'),
@@ -83,27 +275,67 @@ async function collectNxFiles(dir) {
83
275
  }
84
276
  /**
85
277
  * Concatenate scoped CSS from every .nx under src/ (routes + components).
278
+ *
279
+ * Concurrent callers share a single in-flight build promise so a burst of
280
+ * requests after `bustAggregatedStylesCache()` does not launch N parallel
281
+ * compile sweeps. A generation counter prevents a stale in-flight build from
282
+ * overwriting a cache that was reset while the build was running.
86
283
  */
87
284
  export async function buildAggregatedNxStylesheet(appRoot) {
88
285
  if (aggregatedCssCache !== null)
89
286
  return aggregatedCssCache;
90
- const srcDir = join(appRoot, 'src');
91
- const files = await collectNxFiles(srcDir);
92
- const parts = [LAYER_DECL];
93
- for (const filepath of files) {
94
- const source = await readFile(filepath, 'utf-8');
95
- const result = compile(source, filepath, {
96
- mode: 'server',
97
- dev: true,
98
- ssr: true,
99
- emitIslandManifest: false,
100
- target: 'node',
101
- });
102
- if (result.css)
103
- parts.push(`/* ${relative(appRoot, filepath)} */\n${result.css}`);
104
- }
105
- aggregatedCssCache = parts.join('\n');
106
- return aggregatedCssCache;
287
+ if (aggregatedCssBuildInFlight !== null)
288
+ return aggregatedCssBuildInFlight;
289
+ // Snapshot the generation at build-start so we can detect an intervening bust.
290
+ const myGeneration = aggregatedCssBuildGeneration;
291
+ let promise;
292
+ promise = (async () => {
293
+ try {
294
+ const srcDir = join(appRoot, 'src');
295
+ const files = await collectNxFiles(srcDir);
296
+ const parts = [LAYER_DECL];
297
+ for (const filepath of files) {
298
+ // Per-file isolation: a single .nx component with a temporary syntax
299
+ // error (e.g. editor mid-save) must not abort the entire CSS build.
300
+ // Skip the failing file with a console warning and keep going.
301
+ try {
302
+ const source = await readFile(filepath, 'utf-8');
303
+ const result = compile(source, filepath, {
304
+ mode: 'server',
305
+ dev: true,
306
+ ssr: true,
307
+ emitIslandManifest: false,
308
+ target: 'node',
309
+ });
310
+ if (result.css)
311
+ parts.push(`/* ${relative(appRoot, filepath)} */\n${result.css}`);
312
+ }
313
+ catch (fileErr) {
314
+ const msg = fileErr instanceof Error ? fileErr.message : String(fileErr);
315
+ process.stdout.write(`\x1b[33m[Nexus] CSS: skipping ${relative(appRoot, filepath)}: ${msg}\x1b[0m\n`);
316
+ }
317
+ }
318
+ const css = parts.join('\n');
319
+ // Only populate the cache when no bust happened while we were building.
320
+ // If the generation advanced, leave the cache empty so the next request
321
+ // triggers a fresh build against up-to-date sources.
322
+ if (aggregatedCssBuildGeneration === myGeneration) {
323
+ aggregatedCssCache = css;
324
+ aggregatedCssETag = `"${createHash('sha1').update(css).digest('hex').slice(0, 16)}"`;
325
+ }
326
+ return css;
327
+ }
328
+ finally {
329
+ // Always clear the in-flight promise (success OR failure) when it still
330
+ // points to this exact build. Identity check avoids clobbering a newer
331
+ // in-flight build started after a cache bust.
332
+ if (aggregatedCssBuildInFlight === promise) {
333
+ aggregatedCssBuildInFlight = null;
334
+ }
335
+ }
336
+ })();
337
+ aggregatedCssBuildInFlight = promise;
338
+ return promise;
107
339
  }
108
340
  const ISLAND_CLIENT_PATH = '/_nexus/islands/client.mjs';
109
341
  /**
@@ -121,14 +353,22 @@ export async function compileIslandClientBundle(appRoot, url) {
121
353
  return false;
122
354
  return true;
123
355
  }
356
+ // All error bodies in this function must be syntactically valid JavaScript.
357
+ // The response always carries content-type: application/javascript so the
358
+ // browser will attempt to parse it as a module. Plain English strings like
359
+ // "Source not found" would parse as bare identifiers and produce confusing
360
+ // SyntaxErrors in the console. `throw new Error(...)` is always valid.
361
+ function jsError(msg, status) {
362
+ return { body: `throw new Error(${JSON.stringify(`[Nexus] ${msg}`)});`, status };
363
+ }
124
364
  let nxPath = null;
125
365
  if (pathParam) {
126
366
  if (pathParam.includes('..') || pathParam.startsWith('/')) {
127
- return { body: 'Invalid path', status: 400 };
367
+ return jsError('Island request: invalid path', 400);
128
368
  }
129
369
  const joined = resolve(join(rootReal, normalize(pathParam)));
130
370
  if (!isUnderRoot(joined)) {
131
- return { body: 'Path escapes app root', status: 400 };
371
+ return jsError('Island request: path escapes app root', 400);
132
372
  }
133
373
  nxPath = joined;
134
374
  }
@@ -136,39 +376,133 @@ export async function compileIslandClientBundle(appRoot, url) {
136
376
  const decoded = decodeURIComponent(absParam);
137
377
  const abs = resolve(decoded);
138
378
  if (!isUnderRoot(abs)) {
139
- return { body: 'Invalid abs path', status: 400 };
379
+ return jsError('Island request: invalid abs path', 400);
140
380
  }
141
381
  nxPath = abs;
142
382
  }
143
383
  else {
144
- return { body: 'Missing path or abs query', status: 400 };
384
+ return jsError('Island request: missing path or abs query', 400);
145
385
  }
146
386
  if (!nxPath.endsWith('.nx')) {
147
- return { body: 'Not an .nx source', status: 400 };
387
+ return jsError('Island request: not an .nx source', 400);
148
388
  }
149
389
  try {
150
390
  await stat(nxPath);
151
391
  }
152
392
  catch {
153
- return { body: 'Source not found', status: 404 };
154
- }
155
- const source = await readFile(nxPath, 'utf-8');
156
- const result = compile(source, nxPath, {
157
- mode: 'server',
158
- dev: true,
159
- ssr: true,
160
- emitIslandManifest: false,
161
- target: 'node',
162
- appRoot: rootReal,
163
- });
164
- if (!result.clientCode) {
165
- return { body: 'No client island for this module', status: 404 };
166
- }
167
- return { body: result.clientCode, status: 200 };
393
+ return jsError(`Island source not found: ${nxPath}`, 404);
394
+ }
395
+ // `readFile` and `compile` are both fallible — a file that is mid-write
396
+ // during hot-reload can produce a read error or a parse error in the
397
+ // compiler. Without a try/catch the exception propagates to the generic
398
+ // request-handler catch block which sends `content-type: text/html`, causing
399
+ // the browser to see HTML at a URL it is trying to `import()` as a module,
400
+ // producing misleading `SyntaxError: Unexpected token '<'` (or similar).
401
+ let source;
402
+ try {
403
+ source = await readFile(nxPath, 'utf-8');
404
+ }
405
+ catch (err) {
406
+ const msg = err instanceof Error ? err.message : String(err);
407
+ return jsError(`Island source could not be read: ${msg}`, 500);
408
+ }
409
+ let clientCode;
410
+ try {
411
+ const result = compile(source, nxPath, {
412
+ mode: 'server',
413
+ dev: true,
414
+ ssr: true,
415
+ emitIslandManifest: false,
416
+ target: 'node',
417
+ appRoot: rootReal,
418
+ });
419
+ clientCode = result.clientCode;
420
+ }
421
+ catch (err) {
422
+ if (err instanceof CompileError) {
423
+ console.error(`\n${formatCompileError(err, source)}\n`);
424
+ const msg = formatCompileError(err, source).replace(/\x1b\[[0-9;]*m/g, ''); // strip ANSI for response
425
+ return jsError(`Island compile error:\n${msg}`, 500);
426
+ }
427
+ const msg = err instanceof Error ? err.message : String(err);
428
+ return jsError(`Island compile error: ${msg}`, 500);
429
+ }
430
+ if (!clientCode) {
431
+ return jsError(`No client island in ${nxPath}`, 404);
432
+ }
433
+ return { body: clientCode, status: 200 };
168
434
  }
169
435
  export function isIslandClientRequest(pathname) {
170
436
  return pathname === ISLAND_CLIENT_PATH;
171
437
  }
438
+ const LIB_PREFIX = '/_nexus/lib/';
439
+ const LIB_EXTENSIONS = ['.js', '.mjs', '.ts', '.tsx', '.mts'];
440
+ /**
441
+ * Serves `$lib/…` files for client islands.
442
+ *
443
+ * Candidate order for JS files (first match wins):
444
+ * 1. `.nexus/output/lib/` — minified static files written by `nexus build` (production)
445
+ * 2. `.nexus/lib/` — plain-transpiled output of `compileLib` (build fallback)
446
+ * 3. `src/lib/` — TypeScript source (dev, served with tsx/strip-types)
447
+ *
448
+ * Source maps (`.js.map`): served exclusively from `.nexus/output/lib/` — they
449
+ * are only generated by the production build step and have no dev equivalent.
450
+ *
451
+ * Returns null when the path doesn't match `/_nexus/lib/`.
452
+ */
453
+ export async function tryServeLibAsset(pathname, appRoot,
454
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
455
+ _dev) {
456
+ if (!pathname.startsWith(LIB_PREFIX))
457
+ return null;
458
+ const rel = pathname.slice(LIB_PREFIX.length);
459
+ // Prevent path traversal
460
+ if (rel.includes('..') || rel.startsWith('/'))
461
+ return null;
462
+ const root = resolve(appRoot);
463
+ // Source-map files are only written by `nexus build` — serve from output/lib/ only.
464
+ if (rel.endsWith('.map')) {
465
+ const mapPath = join(root, '.nexus', 'output', 'lib', rel);
466
+ try {
467
+ const s = await stat(mapPath);
468
+ if (s.isFile()) {
469
+ const body = await readFile(mapPath);
470
+ return { body, contentType: 'application/json; charset=utf-8' };
471
+ }
472
+ }
473
+ catch { /* not found */ }
474
+ return null;
475
+ }
476
+ const hasKnownExt = /\.(js|mjs|cjs|ts|tsx|mts)$/.test(rel);
477
+ // Strip content hash (e.g. `utils/date.a1b2c3d4.js` → `utils/date.js`) so that
478
+ // dev-server fallbacks (.nexus/lib, src/lib) can be found without hashed names.
479
+ const unhashedRel = rel.replace(/\.([0-9a-f]{8})\.js$/u, '.js');
480
+ const candidates = [];
481
+ const outputLibBase = join(root, '.nexus', 'output', 'lib', rel);
482
+ const nexusLibBase = join(root, '.nexus', 'lib', unhashedRel);
483
+ const srcLibBase = join(root, 'src', 'lib', unhashedRel);
484
+ if (hasKnownExt) {
485
+ candidates.push(outputLibBase, nexusLibBase, srcLibBase);
486
+ }
487
+ else {
488
+ for (const ext of LIB_EXTENSIONS) {
489
+ candidates.push(outputLibBase + ext, nexusLibBase + ext, srcLibBase + ext);
490
+ }
491
+ }
492
+ for (const candidate of candidates) {
493
+ try {
494
+ const s = await stat(candidate);
495
+ if (!s.isFile())
496
+ continue;
497
+ const body = await readFile(candidate);
498
+ return { body, contentType: 'application/javascript; charset=utf-8' };
499
+ }
500
+ catch {
501
+ // try next candidate
502
+ }
503
+ }
504
+ return null;
505
+ }
172
506
  export async function tryServeRuntimeAsset(pathname, appRoot) {
173
507
  // Special alias: /_nexus/rt/serialize.js → @nexus_js/serialize/dist/index.js
174
508
  if (pathname === '/_nexus/rt/serialize.js') {
@@ -1 +1 @@
1
- {"version":3,"file":"dev-assets.js","sourceRoot":"","sources":["../src/dev-assets.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dev-assets.js","sourceRoot":"","sources":["../src/dev-assets.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=dev-assets.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dev-assets.test.d.ts","sourceRoot":"","sources":["../src/dev-assets.test.ts"],"names":[],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"dev-error-html.d.ts","sourceRoot":"","sources":["../src/dev-error-html.ts"],"names":[],"mappings":"AAAA;;GAEG;AAYH,wEAAwE;AACxE,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,OAAO,GAAG;IACjD,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACf,CAwCA;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,OAAO,CAAC;IAAC,GAAG,EAAE,OAAO,CAAA;CAAE,GAAG,MAAM,CAiD9F"}
1
+ {"version":3,"file":"dev-error-html.d.ts","sourceRoot":"","sources":["../src/dev-error-html.ts"],"names":[],"mappings":"AAAA;;GAEG;AAiBH,wEAAwE;AACxE,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,OAAO,GAAG;IACjD,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACf,CAwCA;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,OAAO,CAAC;IAAC,GAAG,EAAE,OAAO,CAAA;CAAE,GAAG,MAAM,CAsE9F"}
@@ -2,6 +2,10 @@
2
2
  * Rich HTML error pages for `dev` mode (stack, Error.cause chain, non-Error serialization).
3
3
  */
4
4
  const DOCTYPE = '<!DOCTYPE html>';
5
+ /** Special rendering for CompileError from @nexus_js/compiler for excellent DX. */
6
+ function isCompileError(e) {
7
+ return !!e && typeof e === 'object' && 'name' in e && e.name === 'CompileError' && 'code' in e;
8
+ }
5
9
  function escapeHtml(s) {
6
10
  return s
7
11
  .replace(/&/g, '&amp;')
@@ -66,6 +70,26 @@ export function devErrorHtmlPage(opts) {
66
70
  `</body></html>`);
67
71
  }
68
72
  const d = collectErrorDetails(opts.err);
73
+ if (opts.dev && isCompileError(opts.err)) {
74
+ const ce = opts.err;
75
+ const locStr = ce.loc ? `${ce.file}:${ce.loc.line}:${ce.loc.column}` : ce.file;
76
+ const frameHtml = ce.frame
77
+ ? `<pre style="font-size:0.72rem;color:#94a3b8;overflow:auto;max-height:min(52vh,28rem);white-space:pre-wrap;line-height:1.4;margin:0.5rem 0 0;padding:0.75rem;background:#0d0d1a;border-radius:8px;border:1px solid #1e293b">${escapeHtml(ce.frame)}</pre>`
78
+ : '';
79
+ const hintBlock = ce.hint ? `<p style="color:#67e8f9;font-size:0.85rem;margin:0.5rem 0 0">Hint: ${escapeHtml(ce.hint)}</p>` : '';
80
+ return `${DOCTYPE}<html lang="en"><head>
81
+ <meta charset="utf-8">
82
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
83
+ <title>Nexus — ${escapeHtml(opts.context)}</title>
84
+ </head><body style="font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,monospace;padding:1.25rem 1.5rem;max-width:56rem;margin:0 auto;background:#0a0a0f;color:#e8e8f0;line-height:1.45">
85
+ <h1 style="margin:0 0 0.5rem;font-size:1.05rem;font-weight:600;color:#f87171">◆ Nexus — ${escapeHtml(opts.context)}</h1>
86
+ <p style="color:#f87171;font-size:0.92rem;margin:0 0 0.5rem">${escapeHtml(ce.code)} ${escapeHtml(ce.message)}</p>
87
+ <p style="color:#64748b;font-size:0.8rem;margin:0 0 0.5rem">${escapeHtml(locStr)}</p>
88
+ ${frameHtml}
89
+ ${hintBlock}
90
+ <p style="margin-top:1rem;font-size:0.72rem;color:#475569">Development mode: .nx compile error. Fix the source and reload.</p>
91
+ </body></html>`;
92
+ }
69
93
  const causeBlock = d.causes.length > 0
70
94
  ? `<section style="margin:0 0 1rem">
71
95
  <h2 style="font-size:0.75rem;font-weight:600;color:#94a3b8;text-transform:uppercase;letter-spacing:0.06em;margin:0 0 0.5rem">Cause chain</h2>
@@ -1 +1 @@
1
- {"version":3,"file":"dev-error-html.js","sourceRoot":"","sources":["../src/dev-error-html.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dev-error-html.js","sourceRoot":"","sources":["../src/dev-error-html.ts"],"names":[],"mappings":"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"}
@@ -67,7 +67,7 @@ export interface PretextProfilePayload {
67
67
  parallelCount: number;
68
68
  }
69
69
  export interface SecurityAuditPayload {
70
- kind: 'csrf_blocked' | 'rate_limited' | 'replay' | 'ghost_wall' | 'shield_action' | 'vault_updated' | 'custom';
70
+ kind: 'csrf_blocked' | 'rate_limited' | 'replay' | 'ghost_wall' | 'shield_action' | 'vault_updated' | 'build_mismatch' | 'custom';
71
71
  message: string;
72
72
  action?: string;
73
73
  }
@@ -1 +1 @@
1
- {"version":3,"file":"devradar.d.ts","sourceRoot":"","sources":["../src/devradar.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"devradar.d.ts","sourceRoot":"","sources":["../src/devradar.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,+GAA+G;AAC/G,MAAM,MAAM,aAAa,GACrB;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,OAAO,EAAE,iBAAiB,CAAA;CAAE,GACnD;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,OAAO,EAAE,mBAAmB,CAAA;CAAE,GACvD;IAAE,IAAI,EAAE,iBAAiB,CAAC;IAAC,OAAO,EAAE,qBAAqB,CAAA;CAAE,GAC3D;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,OAAO,EAAE,kBAAkB,CAAA;CAAE,GACrD;IAAE,IAAI,EAAE,kBAAkB,CAAC;IAAC,OAAO,EAAE,qBAAqB,CAAA;CAAE,GAC5D;IAAE,IAAI,EAAE,gBAAgB,CAAC;IAAC,OAAO,EAAE,oBAAoB,CAAA;CAAE,GACzD;IAAE,IAAI,EAAE,iBAAiB,CAAC;IAAC,OAAO,EAAE,qBAAqB,CAAA;CAAE,GAC3D;IAAE,IAAI,EAAE,gBAAgB,CAAC;IAAC,OAAO,EAAE,oBAAoB,CAAA;CAAE,CAAC;AAE9D,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,OAAO,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,qBAAqB;IACpC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,qBAAqB;IACpC,yCAAyC;IACzC,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,2DAA2D;IAC3D,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EACA,cAAc,GACd,cAAc,GACd,QAAQ,GACR,YAAY,GACZ,eAAe,GACf,eAAe,GACf,gBAAgB,GAChB,QAAQ,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wFAAwF;AACxF,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;CAClC;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,mBAAmB,EAAE,CAAC;CAC/B;AAED,kFAAkF;AAClF,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB,EAAE,MAAM,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAID,6EAA6E;AAC7E,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,GAAG,MAAM,IAAI,CAKnF;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,CAOvD;AAID,oEAAoE;AACpE,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,SAAI,GAAG,OAAO,CA8BzE;AAED,wBAAgB,UAAU,IAAI,MAAM,CAEnC"}
@@ -1 +1 @@
1
- {"version":3,"file":"devradar.js","sourceRoot":"","sources":["../src/devradar.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAsFzC,IAAI,IAAI,GAA4C,IAAI,CAAC;AAEzD,6EAA6E;AAC7E,MAAM,UAAU,oBAAoB,CAAC,EAAkC;IACrE,IAAI,GAAG,EAAE,CAAC;IACV,OAAO,GAAG,EAAE;QACV,IAAI,GAAG,IAAI,CAAC;IACd,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,KAAoB;IAC/C,IAAI,CAAC,IAAI;QAAE,OAAO;IAClB,IAAI,CAAC;QACH,IAAI,CAAC,KAAK,CAAC,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,6BAA6B;IAC/B,CAAC;AACH,CAAC;AAED,MAAM,UAAU,GAAG,+EAA+E,CAAC;AAEnG,oEAAoE;AACpE,MAAM,UAAU,sBAAsB,CAAC,KAAc,EAAE,KAAK,GAAG,CAAC;IAC9D,IAAI,KAAK,GAAG,CAAC;QAAE,OAAO,aAAa,CAAC;IACpC,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IACxD,MAAM,CAAC,GAAG,OAAO,KAAK,CAAC;IACvB,IAAI,CAAC,KAAK,QAAQ,EAAE,CAAC;QACnB,MAAM,CAAC,GAAG,KAAe,CAAC;QAC1B,OAAO,CAAC,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACpD,CAAC;IACD,IAAI,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IACpD,IAAI,CAAC,KAAK,QAAQ;QAAE,OAAO,GAAG,KAAK,GAAG,CAAC;IACvC,IAAI,KAAK,YAAY,IAAI;QAAE,OAAO,KAAK,CAAC,WAAW,EAAE,CAAC;IACtD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC/B,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,sBAAsB,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;IAC9D,CAAC;IACD,IAAI,CAAC,KAAK,QAAQ,EAAE,CAAC;QACnB,MAAM,CAAC,GAAG,KAAgC,CAAC;QAC3C,MAAM,GAAG,GAA4B,EAAE,CAAC;QACxC,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YACvC,IAAI,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC;gBACb,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,EAAE,YAAY,CAAC;gBACrD,MAAM;YACR,CAAC;YACD,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;gBAAE,GAAG,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC;;gBACzC,GAAG,CAAC,CAAC,CAAC,GAAG,sBAAsB,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;QACrD,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IACD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;AACvB,CAAC;AAED,MAAM,UAAU,UAAU;IACxB,OAAO,UAAU,EAAE,CAAC;AACtB,CAAC"}
1
+ {"version":3,"file":"devradar.js","sourceRoot":"","sources":["../src/devradar.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAuFzC,IAAI,IAAI,GAA4C,IAAI,CAAC;AAEzD,6EAA6E;AAC7E,MAAM,UAAU,oBAAoB,CAAC,EAAkC;IACrE,IAAI,GAAG,EAAE,CAAC;IACV,OAAO,GAAG,EAAE;QACV,IAAI,GAAG,IAAI,CAAC;IACd,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,KAAoB;IAC/C,IAAI,CAAC,IAAI;QAAE,OAAO;IAClB,IAAI,CAAC;QACH,IAAI,CAAC,KAAK,CAAC,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,6BAA6B;IAC/B,CAAC;AACH,CAAC;AAED,MAAM,UAAU,GAAG,+EAA+E,CAAC;AAEnG,oEAAoE;AACpE,MAAM,UAAU,sBAAsB,CAAC,KAAc,EAAE,KAAK,GAAG,CAAC;IAC9D,IAAI,KAAK,GAAG,CAAC;QAAE,OAAO,aAAa,CAAC;IACpC,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IACxD,MAAM,CAAC,GAAG,OAAO,KAAK,CAAC;IACvB,IAAI,CAAC,KAAK,QAAQ,EAAE,CAAC;QACnB,MAAM,CAAC,GAAG,KAAe,CAAC;QAC1B,OAAO,CAAC,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACpD,CAAC;IACD,IAAI,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IACpD,IAAI,CAAC,KAAK,QAAQ;QAAE,OAAO,GAAG,KAAK,GAAG,CAAC;IACvC,IAAI,KAAK,YAAY,IAAI;QAAE,OAAO,KAAK,CAAC,WAAW,EAAE,CAAC;IACtD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC/B,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,sBAAsB,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;IAC9D,CAAC;IACD,IAAI,CAAC,KAAK,QAAQ,EAAE,CAAC;QACnB,MAAM,CAAC,GAAG,KAAgC,CAAC;QAC3C,MAAM,GAAG,GAA4B,EAAE,CAAC;QACxC,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YACvC,IAAI,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC;gBACb,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,EAAE,YAAY,CAAC;gBACrD,MAAM;YACR,CAAC;YACD,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;gBAAE,GAAG,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC;;gBACzC,GAAG,CAAC,CAAC,CAAC,GAAG,sBAAsB,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;QACrD,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IACD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;AACvB,CAAC;AAED,MAAM,UAAU,UAAU;IACxB,OAAO,UAAU,EAAE,CAAC;AACtB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=head-renderer.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"head-renderer.test.d.ts","sourceRoot":"","sources":["../src/head-renderer.test.ts"],"names":[],"mappings":""}