@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.
- package/dist/actions.d.ts +71 -11
- package/dist/actions.d.ts.map +1 -1
- package/dist/actions.js +442 -51
- package/dist/actions.js.map +1 -1
- package/dist/build-id.d.ts +14 -0
- package/dist/build-id.d.ts.map +1 -0
- package/dist/build-id.js +40 -0
- package/dist/build-id.js.map +1 -0
- package/dist/context.d.ts +38 -4
- package/dist/context.d.ts.map +1 -1
- package/dist/context.js +13 -3
- package/dist/context.js.map +1 -1
- package/dist/csrf.d.ts +16 -2
- package/dist/csrf.d.ts.map +1 -1
- package/dist/csrf.js +68 -30
- package/dist/csrf.js.map +1 -1
- package/dist/dev-assets.d.ts +31 -0
- package/dist/dev-assets.d.ts.map +1 -1
- package/dist/dev-assets.js +372 -38
- package/dist/dev-assets.js.map +1 -1
- package/dist/dev-assets.test.d.ts +2 -0
- package/dist/dev-assets.test.d.ts.map +1 -0
- package/dist/dev-error-html.d.ts.map +1 -1
- package/dist/dev-error-html.js +24 -0
- package/dist/dev-error-html.js.map +1 -1
- package/dist/devradar.d.ts +1 -1
- package/dist/devradar.d.ts.map +1 -1
- package/dist/devradar.js.map +1 -1
- package/dist/head-renderer.test.d.ts +2 -0
- package/dist/head-renderer.test.d.ts.map +1 -0
- package/dist/head-renderer.test.js +78 -0
- package/dist/head-renderer.test.js.map +1 -0
- package/dist/index.d.ts +97 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +442 -47
- package/dist/index.js.map +1 -1
- package/dist/legacy-wrapper.d.ts +88 -0
- package/dist/legacy-wrapper.d.ts.map +1 -0
- package/dist/legacy-wrapper.js +104 -0
- package/dist/legacy-wrapper.js.map +1 -0
- package/dist/lib-assets.d.ts +5 -0
- package/dist/lib-assets.d.ts.map +1 -0
- package/dist/lib-assets.js +95 -0
- package/dist/lib-assets.js.map +1 -0
- package/dist/load-module.d.ts +6 -0
- package/dist/load-module.d.ts.map +1 -1
- package/dist/load-module.js +40 -53
- package/dist/load-module.js.map +1 -1
- package/dist/metadata.d.ts +95 -0
- package/dist/metadata.d.ts.map +1 -0
- package/dist/metadata.js +132 -0
- package/dist/metadata.js.map +1 -0
- package/dist/navigate.d.ts +0 -5
- package/dist/navigate.d.ts.map +1 -1
- package/dist/navigate.js +0 -1
- package/dist/navigate.js.map +1 -1
- package/dist/rate-limit.d.ts.map +1 -1
- package/dist/rate-limit.js +27 -14
- package/dist/rate-limit.js.map +1 -1
- package/dist/renderer.d.ts +27 -7
- package/dist/renderer.d.ts.map +1 -1
- package/dist/renderer.js +152 -25
- package/dist/renderer.js.map +1 -1
- package/dist/renderer.test.d.ts +2 -0
- package/dist/renderer.test.d.ts.map +1 -0
- package/dist/renderer.test.js +251 -0
- package/dist/renderer.test.js.map +1 -0
- package/dist/streaming.d.ts +3 -3
- package/dist/streaming.d.ts.map +1 -1
- package/dist/streaming.js +33 -13
- package/dist/streaming.js.map +1 -1
- package/dist/tenancy.d.ts +17 -0
- package/dist/tenancy.d.ts.map +1 -0
- package/dist/tenancy.js +132 -0
- package/dist/tenancy.js.map +1 -0
- package/dist/tenancy.test.d.ts +2 -0
- package/dist/tenancy.test.d.ts.map +1 -0
- package/dist/tenancy.test.js +38 -0
- package/dist/tenancy.test.js.map +1 -0
- package/package.json +26 -8
package/dist/dev-assets.js
CHANGED
|
@@ -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
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
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
|
|
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
|
|
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
|
|
379
|
+
return jsError('Island request: invalid abs path', 400);
|
|
140
380
|
}
|
|
141
381
|
nxPath = abs;
|
|
142
382
|
}
|
|
143
383
|
else {
|
|
144
|
-
return
|
|
384
|
+
return jsError('Island request: missing path or abs query', 400);
|
|
145
385
|
}
|
|
146
386
|
if (!nxPath.endsWith('.nx')) {
|
|
147
|
-
return
|
|
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
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
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') {
|
package/dist/dev-assets.js.map
CHANGED
|
@@ -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 @@
|
|
|
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;
|
|
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"}
|
package/dist/dev-error-html.js
CHANGED
|
@@ -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, '&')
|
|
@@ -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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"}
|
package/dist/devradar.d.ts
CHANGED
|
@@ -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
|
}
|
package/dist/devradar.d.ts.map
CHANGED
|
@@ -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":"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"}
|
package/dist/devradar.js.map
CHANGED
|
@@ -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;
|
|
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 @@
|
|
|
1
|
+
{"version":3,"file":"head-renderer.test.d.ts","sourceRoot":"","sources":["../src/head-renderer.test.ts"],"names":[],"mappings":""}
|