🚀 Socket Launch Week Day 5:Introducing Repository Access Permissions and Custom Roles.Learn more
Sign In

@nexus_js/compiler

Package Overview
Dependencies
Maintainers
1
Versions
39
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@nexus_js/compiler - npm Package Compare versions

Comparing version
0.9.28
to
0.9.29
+1
-1
dist/codegen.d.ts.map

@@ -1,1 +0,1 @@

{"version":3,"file":"codegen.d.ts","sourceRoot":"","sources":["../src/codegen.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,cAAc,EACd,aAAa,EAKd,MAAM,YAAY,CAAC;AAwJpB,kEAAkE;AAClE,wBAAgB,QAAQ,CACtB,MAAM,EAAE,eAAe,EACvB,IAAI,EAAE,cAAc,GACnB,aAAa,CAkEf"}
{"version":3,"file":"codegen.d.ts","sourceRoot":"","sources":["../src/codegen.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,cAAc,EACd,aAAa,EAKd,MAAM,YAAY,CAAC;AA+FpB,kEAAkE;AAClE,wBAAgB,QAAQ,CACtB,MAAM,EAAE,eAAe,EACvB,IAAI,EAAE,cAAc,GACnB,aAAa,CAiEf"}

@@ -1,3 +0,1 @@

import { CompileError } from './types.js';
import { offsetToLineColumn } from './parser.js';
import { existsSync } from 'node:fs';

@@ -17,5 +15,3 @@ import { basename, join, normalize, relative } from 'node:path';

}
/** Extension preference for dev (source-first) and prod (compiled-first). */
const LIB_IMPORT_EXT_DEV = ['.ts', '.tsx', '.mts', '.js', '.mjs', '.cjs'];
const LIB_IMPORT_EXT_PROD = ['.js', '.mjs', '.cjs', '.ts', '.tsx', '.mts'];
const LIB_IMPORT_EXT_ORDER = ['.ts', '.tsx', '.mts', '.js', '.mjs', '.cjs'];
function escapeRegExp(s) {

@@ -51,40 +47,15 @@ return s.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');

const seg = p === '/' ? 'index' : p.replace(/^\//u, '');
const full = seg || basename(filepath).replace(/\.nx$/u, '');
// The sidecar is ADJACENT to the server module, so use only the last path segment.
// e.g. pattern "/auth/login" → server: ".nexus/output/auth/login.js"
// → sidecar: ".nexus/output/auth/login.actions.js"
// → import: "./login.js" (not "./auth/login.js")
return `${basename(full)}.js`;
const base = seg || basename(filepath).replace(/\.nx$/u, '');
return `${base}.js`;
}
/**
* Resolve `$lib/…` to an on-disk path so Node ESM can load it.
*
* Production (`!dev`): checks `.nexus/lib/` (compiled JS output) first so Node
* never tries to execute raw `.ts` source files. Falls back to `src/lib/` with
* JS-first extension order for apps that ship pre-compiled lib files.
*
* Dev: prefers the TypeScript source (works with tsx / Node --experimental-strip-types).
*/
function resolveDollarLibFilePath(appRoot, rel, dev) {
/** Resolve `$lib/…` to an on-disk path so Node ESM can load it (extension required). */
function resolveDollarLibFilePath(appRoot, rel) {
const root = normalize(appRoot);
const hasKnownExt = /\.(ts|tsx|mts|js|mjs|cjs)$/u.test(rel);
// Production: prefer the pre-compiled .nexus/lib/ output emitted by `nexus build`.
if (!dev) {
const nexusLibBase = join(root, '.nexus', 'lib', rel);
// Check with .ts → .js substitution first.
const nexusLibJs = hasKnownExt
? nexusLibBase.replace(/\.(ts|tsx|mts)$/u, '.js')
: nexusLibBase + '.js';
if (existsSync(nexusLibJs))
return nexusLibJs;
if (existsSync(nexusLibBase))
return nexusLibBase;
}
const abs = join(root, 'src/lib', rel);
if (existsSync(abs))
return abs;
const hasKnownExt = /\.(ts|tsx|mts|js|mjs|cjs)$/u.test(rel);
if (hasKnownExt)
return abs;
const order = dev ? LIB_IMPORT_EXT_DEV : LIB_IMPORT_EXT_PROD;
for (const ext of order) {
for (const ext of LIB_IMPORT_EXT_ORDER) {
const candidate = abs + ext;

@@ -94,31 +65,4 @@ if (existsSync(candidate))

}
// Fallback: .ts in dev (needs tsx), .js in prod (will warn at runtime if missing).
return abs + (dev ? '.ts' : '.js');
return abs + '.ts';
}
/**
* Resolve `$lib/…` in client island scripts to `/_nexus/lib/…` browser URLs.
*
* When `libManifest` is provided (production build with content-hashed bundles),
* the canonical rel is looked up in the manifest and the hashed filename is used
* directly — e.g. `$lib/utils/date.ts` → `/_nexus/lib/utils/date.a1b2c3d4.js`.
* Without a manifest the original specifier is preserved as-is.
*/
function rewriteDollarLibImportsForClient(code, libManifest) {
if (!code.includes('$lib/'))
return code;
const toUrl = (rel) => {
if (libManifest) {
const jsRel = rel.replace(/\.(ts|tsx|mts)$/u, '.js');
const hashed = libManifest.get(jsRel) ?? libManifest.get(`${rel}.js`) ?? libManifest.get(rel);
if (hashed)
return `/_nexus/lib/${hashed}`;
}
return `/_nexus/lib/${rel}`;
};
let out = code;
out = out.replace(/\bfrom\s*(['"])\$lib\/([^'"\n]+)\1/gu, (_m, q, rel) => `from ${q}${toUrl(rel)}${q}`);
out = out.replace(/\bimport\s*(['"])\$lib\/([^'"\n]+)\1/gu, (_m, q, rel) => `import ${q}${toUrl(rel)}${q}`);
out = out.replace(/\bimport\s*\(\s*(['"])\$lib\/([^'"\n]+)\1\s*\)/gu, (_m, q, rel) => `import(${q}${toUrl(rel)}${q})`);
return out;
}
/** Resolve `$lib/…` in server frontmatter to absolute file URLs for Node ESM. */

@@ -137,3 +81,3 @@ function rewriteDollarLibImports(code, opts) {

return code.replace(/from\s*['"]\$lib\/([^'"]+)['"]/gu, (_, rel) => {
const abs = resolveDollarLibFilePath(root, rel, !!opts.dev);
const abs = resolveDollarLibFilePath(root, rel);
const href = pathToFileURL(abs).href + libBust;

@@ -167,4 +111,3 @@ return `from ${JSON.stringify(href)}`;

(parsed.script?.content ?? '').includes('$state');
const clientCodeRaw = needsClientIsland ? generateClientIsland(parsed, opts, islandWrap) : null;
const clientCode = clientCodeRaw ? rewriteDollarLibImportsForClient(clientCodeRaw) : null;
const clientCode = needsClientIsland ? generateClientIsland(parsed, opts, islandWrap) : null;
// ── Island manifest ────────────────────────────────────────────────────────

@@ -221,19 +164,2 @@ const islandManifest = opts.emitIslandManifest && parsed.islandDirectives.length > 0

}
// ── "use server" action exports ────────────────────────────────────────────
// Export each inline action as a named function so the sidecar can import it.
// This keeps the $lib imports in scope (they live in the same module) and
// avoids duplicating imports or inlining bodies into the sidecar.
const inlineActions = parsed.serverActions.filter((a) => !a.createActionSource);
for (const action of inlineActions) {
lines.push(`// ── Server Action export: ${action.name} ──`);
lines.push(`export async function __nexus_action_${action.name}(${action.params.join(', ')}) {`);
for (const line of action.body.split('\n')) {
const t = line.trim();
if (!t)
continue;
lines.push(` ${t}`);
}
lines.push('}');
lines.push('');
}
// Runes from the client script — SSR must define matching locals whenever the template interpolates them.

@@ -266,3 +192,3 @@ const runes = extractRuneDeclarations(parsed.script?.content ?? '');

const actionNamesForSsr = new Set(parsed.serverActions.map((a) => a.name));
lines.push(' return ' + '`' + templateToSSR(processedTemplate, parsed.filepath, actionNamesForSsr) + '`;');
lines.push(' return ' + '`' + templateToSSR(processedTemplate, actionNamesForSsr) + '`;');
lines.push('}');

@@ -291,3 +217,3 @@ return lines.join('\n');

for (const frag of fragments) {
const { processed, exprLines } = processTemplateForClientIsland(frag, bindingNames, actionNamesForClient, parsed.filepath);
const { processed, exprLines } = processTemplateForClientIsland(frag, bindingNames, actionNamesForClient);
processedFragments.push(processed);

@@ -317,3 +243,3 @@ exprFnBlocks.push(exprLines);

lines.push('// ── Reactive State (Runes) ──');
lines.push(rewriteDollarLibImportsForClient(transformRunesForClientRuntime(scriptSrc), _opts.libManifest));
lines.push(transformRunesForClientRuntime(scriptSrc));
lines.push('');

@@ -354,16 +280,4 @@ }

// ─────────────────────────────────────────────────────────────────────────────
// Server Actions module: imports handlers from server module + registers them
// Server Actions module: type-safe RPC stubs
// ─────────────────────────────────────────────────────────────────────────────
/**
* Generates the sidecar `*.actions.{mjs,js}` file.
*
* All action implementations are imported from the co-located server module
* (which has the $lib imports in scope):
* - `createAction` bindings → imported by their original name
* - `"use server"` functions → imported as `__nexus_action_<name>` (exported
* by the server module via `generateServerModule`)
*
* This design means the sidecar never needs its own $lib imports — the server
* module already has everything in scope, and the handler runs there.
*/
function generateActionsModule(actions, filepath, opts) {

@@ -376,17 +290,23 @@ const lines = [];

lines.push('');
// Build the import specifier list: createAction → original name, "use server" → __nexus_action_*
const importSpecifiers = [];
for (const action of actions) {
importSpecifiers.push(action.createActionSource ? action.name : `__nexus_action_${action.name}`);
const createActionImports = actions.filter((a) => a.createActionSource);
if (createActionImports.length > 0) {
const names = createActionImports.map((a) => a.name).join(', ');
const serverFile = actionsServerImportFilename(opts, filepath);
lines.push(`import { ${names} } from ${JSON.stringify('./' + serverFile)};`);
lines.push('');
}
const serverFile = actionsServerImportFilename(opts, filepath);
lines.push(`import { ${importSpecifiers.join(', ')} } from ${JSON.stringify('./' + serverFile)};`);
lines.push('');
for (const action of actions) {
lines.push(`/** @nexus-action "${action.name}" */`);
if (action.createActionSource) {
lines.push(`registerAction(${JSON.stringify(action.name)}, ${action.name});`);
lines.push(`registerAction(${JSON.stringify(action.name)}, ${action.name}, { csrf: false });`);
}
else {
lines.push(`registerAction(${JSON.stringify(action.name)}, __nexus_action_${action.name});`);
lines.push(`registerAction(${JSON.stringify(action.name)}, async (${action.params.join(', ')}) => {`);
for (const line of action.body.split('\n')) {
const t = line.trim();
if (!t)
continue;
lines.push(` ${t}`);
}
lines.push(`}, { csrf: false });`);
}

@@ -467,6 +387,6 @@ lines.push('');

/** Strip client event handlers and replace `{expr}` with `__NX_i__` + parallel expr functions. */
function processTemplateForClientIsland(html, bindingNames, actionNames, filepath) {
function processTemplateForClientIsland(html, bindingNames, actionNames) {
const cleaned = html.replace(/\s+on[a-zA-Z][a-zA-Z0-9-]*\s*=\s*\{[^}]+\}/g, '');
const withActions = rewriteServerActionHtmlActionAttr(cleaned, actionNames);
const controlFlowExpanded = expandEachBlocks(expandIfBlocks(withActions, filepath ?? ''), filepath ?? '');
const controlFlowExpanded = expandEachBlocks(expandIfBlocks(withActions));
const exprLines = [];

@@ -757,3 +677,3 @@ const processed = interpolateClientIslandPlaceholders(controlFlowExpanded, bindingNames, exprLines);

*/
function expandIfBlocks(template, filepath) {
function expandIfBlocks(template) {
if (!template.includes(IF_OPEN))

@@ -763,19 +683,11 @@ return template;

const parsed = parseTopLevelIfBlock(template, open);
if (!parsed) {
const loc = offsetToLineColumn(template, open);
throw new CompileError({
code: 'NX-101',
message: `Unclosed or malformed {#if} block`,
file: filepath,
loc,
hint: `Ensure every {#if} has a matching {/if}. Check for nested blocks that aren't properly closed.`,
});
}
if (!parsed)
return template;
const expandedBranches = parsed.branches.map(({ cond, body }) => ({
cond,
body: expandIfBlocks(body.trim(), filepath),
body: expandIfBlocks(body.trim()),
}));
const piece = buildIfTernary(expandedBranches);
const next = template.slice(0, open) + piece + template.slice(parsed.closeEnd);
return expandIfBlocks(next, filepath);
return expandIfBlocks(next);
}

@@ -786,3 +698,3 @@ /**

*/
function expandEachBlocks(template, filepath) {
function expandEachBlocks(template) {
let t = template;

@@ -792,24 +704,8 @@ while (t.includes(EACH_OPEN)) {

const closeHeader = findBlockTagExprEnd(t, start + EACH_OPEN.length);
if (closeHeader < 0) {
const loc = offsetToLineColumn(t, start);
throw new CompileError({
code: 'NX-102',
message: `Malformed {#each} block — could not find the end of the header expression`,
file: filepath,
loc,
hint: `Syntax: {#each items as item}...{/each}. Make sure the expression is valid and braces are balanced.`,
});
}
if (closeHeader < 0)
return t;
const header = t.slice(start + EACH_OPEN.length, closeHeader);
const hm = /^(.+?)\s+as\s+(\w+)\s*$/.exec(header.trim());
if (!hm || !hm[1] || !hm[2]) {
const loc = offsetToLineColumn(t, start);
throw new CompileError({
code: 'NX-103',
message: `Invalid {#each} syntax: expected "{#each list as item}"`,
file: filepath,
loc,
hint: `Use the format {#each items as item}. The list expression and alias are required.`,
});
}
if (!hm || !hm[1] || !hm[2])
return t;
const listExpr = hm[1].trim();

@@ -823,25 +719,9 @@ const alias = hm[2];

const subEnd = t.indexOf('{/each}', pos);
if (subEnd === -1) {
const loc = offsetToLineColumn(t, start);
throw new CompileError({
code: 'NX-104',
message: `Unclosed {#each} block — missing {/each}`,
file: filepath,
loc,
hint: `Every {#each} must have a matching {/each}. Check for typos or missing closing tags.`,
});
}
if (subEnd === -1)
return t;
if (subEach !== -1 && subEach < subEnd) {
depth++;
const innerHdrEnd = findBlockTagExprEnd(t, subEach + EACH_OPEN.length);
if (innerHdrEnd < 0) {
const loc = offsetToLineColumn(t, subEach);
throw new CompileError({
code: 'NX-105',
message: `Malformed nested {#each} block`,
file: filepath,
loc,
hint: `Nested {#each} blocks must also have valid syntax: {#each list as item}...{/each}`,
});
}
if (innerHdrEnd < 0)
return t;
pos = innerHdrEnd + 1;

@@ -857,14 +737,6 @@ }

}
if (closeIdx === -1) {
const loc = offsetToLineColumn(t, start);
throw new CompileError({
code: 'NX-104',
message: `Unclosed {#each} block — missing {/each}`,
file: filepath,
loc,
hint: `Every {#each} must have a matching {/each}. Check for typos or missing closing tags.`,
});
}
if (closeIdx === -1)
return t;
const body = t.slice(closeHeader + 1, closeIdx).trim();
const bodyExpanded = expandEachBlocks(body, filepath);
const bodyExpanded = expandEachBlocks(body);
const inner = interpolateExpressionsForSSR(bodyExpanded);

@@ -879,3 +751,2 @@ const replacement = '${' + listExpr + '.map((' + alias + ') => `' + inner + '`).join(\'\')}';

* Skips `<style>` / `<script>` regions so CSS `{ ... }` and JS blocks are not treated as expressions.
* But DOES interpolate expressions inside attributes (like `nonce="{pretext.cspNonce}"`).
*/

@@ -905,20 +776,16 @@ function interpolateExpressionsForSSR(s) {

}
// Interpolate the opening <script> or <style> tag (for attributes like nonce="{pretext.cspNonce}")
out += interp(s.slice(i, skipFrom));
const gt = s.indexOf('>', skipFrom);
if (gt === -1) {
out += interp(s.slice(i));
out += s.slice(skipFrom);
break;
}
const openTag = s.slice(skipFrom, gt + 1);
out += interp(s.slice(i, skipFrom)) + interp(openTag);
const closeTag = isStyle ? '</style>' : '</script>';
const closeIdx = s.toLowerCase().indexOf(closeTag, gt + 1);
if (closeIdx === -1) {
// If no closing tag, just append the rest without interpolation (treat as code)
out += s.slice(gt + 1);
out += s.slice(skipFrom);
break;
}
// Content between <script>...</script> or <style>...</style> is NOT interpolated
const blockEnd = closeIdx + closeTag.length;
out += s.slice(gt + 1, blockEnd);
out += s.slice(skipFrom, blockEnd);
i = blockEnd;

@@ -928,6 +795,6 @@ }

}
function templateToSSR(template, filepath, actionNames) {
function templateToSSR(template, actionNames) {
const attrSafe = transformDynamicAttributesForSSR(template, actionNames);
const ifExpanded = expandIfBlocks(attrSafe, filepath);
const expanded = expandEachBlocks(ifExpanded, filepath);
const ifExpanded = expandIfBlocks(attrSafe);
const expanded = expandEachBlocks(ifExpanded);
return interpolateExpressionsForSSR(expanded);

@@ -949,9 +816,5 @@ }

* `onsubmit=${fn}` (function `toString()` injects `{}` into the document).
* Event handlers with JS expressions are omitted; client islands attach them on hydrate.
* BUT we preserve string literal handlers for Progressive Enhancement (e.g. onsubmit="return handleFn(event)").
* Event handlers are omitted here; the client island attaches them on hydrate.
*/
function transformDynamicAttributesForSSR(html, actionNames) {
// Remove event handlers that reference JS functions/expressions (e.g. onclick={() => foo++})
// but KEEP string literal handlers (e.g. onsubmit="return handleFn(event)")
// The { } syntax in Nexus means it's a JS expression, so we remove those
let s = html.replace(/\s+on[a-zA-Z][a-zA-Z0-9-]*\s*=\s*\{[^}]+\}/g, '');

@@ -958,0 +821,0 @@ s = rewriteServerActionHtmlActionAttr(s, actionNames);

@@ -1,1 +0,1 @@

{"version":3,"file":"codegen.js","sourceRoot":"","sources":["../src/codegen.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"codegen.js","sourceRoot":"","sources":["../src/codegen.ts"],"names":[],"mappings":"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"}

@@ -243,10 +243,2 @@ /**

const atEnd = block.indexOf('{', i);
const semiEnd = block.indexOf(';', i);
// At-rules that end with ; and have no block: @import, @charset, @namespace
if (semiEnd !== -1 && (atEnd === -1 || semiEnd < atEnd)) {
const atRule = block.slice(i, semiEnd + 1).trim();
result.push(atRule);
i = semiEnd + 1;
continue;
}
if (atEnd === -1) {

@@ -318,32 +310,20 @@ i = len;

function scopeSingleSelector(sel, attr) {
const trimmed = sel.trim();
// Global selectors that should never be scoped (:root targets <html> which
// never receives data-nx; html/body/* are global by nature).
if (/^:(root|host)$/.test(trimmed) || /^(html|body|\*)$/.test(trimmed)) {
return trimmed;
}
// :global(...) escape hatch — strip :global() wrapper, don't scope
if (/^:global\(/.test(trimmed)) {
return trimmed.replace(/:global\(([^)]+)\)/g, '$1');
if (/^:global\(/.test(sel)) {
return sel.replace(/:global\(([^)]+)\)/g, '$1');
}
// Partial :global(...) inside selector — unwrap only the :global(...) parts
// but keep the rest scoped.
if (trimmed.includes(':global(')) {
const unwrapped = trimmed.replace(/:global\(([^)]+)\)/g, '$1');
// After unwrapping, if it's now a purely global selector, return as-is
if (/^:(root|host)$/.test(unwrapped) || /^(html|body|\*)$/.test(unwrapped)) {
return unwrapped;
}
return `${attr} ${unwrapped}, ${attr}${unwrapped}`;
// Handle :global inside a selector
if (sel.includes(':global(')) {
return sel.replace(/:global\(([^)]+)\)/g, '$1');
}
// Skip already-scoped or bare combinators
if (trimmed.startsWith(attr))
return trimmed;
// Default: prepend the scope attribute as ancestor, AND as attribute on
// the first compound selector. scopeTemplate() injects data-nx directly
// onto every root element, so we need both forms:
// [data-nx] .card → matches when data-nx is on a parent
// [data-nx].card → matches when data-nx is on the element itself
return `${attr} ${trimmed}, ${attr}${trimmed}`;
if (sel.startsWith(attr))
return sel;
// For :root, :host — insert attr before
if (/^:(root|host)/.test(sel)) {
return `${attr}${sel}`;
}
// Default: prepend the scope attribute
return `${attr} ${sel}`;
}
//# sourceMappingURL=css-scope.js.map

@@ -1,1 +0,1 @@

{"version":3,"file":"css-scope.js","sourceRoot":"","sources":["../src/css-scope.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"css-scope.js","sourceRoot":"","sources":["../src/css-scope.ts"],"names":[],"mappings":"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"}
export { componentHash, NEXUS_LAYER_DECLARATION } from './css-scope.js';
export { scanIslandSecurity } from './client-security-scan.js';
export { parse, offsetToLineColumn } from './parser.js';
export { parse } from './parser.js';
export { generate } from './codegen.js';
export { extractServerActionsFromSource } from './server-actions-extract.js';
export { splitPretext, transformPretextExport } from './pretext-extract.js';
export { compileLib } from './compile-lib.js';
export { bundleIslandLib, extractLibImports, applyLibManifestToClientCode } from './bundle-island-lib.js';
export { guard, formatGuardResult } from './guard.js';
export { formatCompileError, formatCompileWarning, formatWarnings, extractFrame } from './error-formatter.js';
export type { ParsedComponent, CompileOptions, CompileResult, NexusBlock, IslandDirective, IslandHydration, ServerAction, IslandManifest, IslandEntry, RouteManifest, RouteEntry, CompileWarning, SourceLocation, } from './types.js';
export { CompileError } from './types.js';
export type { ParsedComponent, CompileOptions, CompileResult, NexusBlock, IslandDirective, IslandHydration, ServerAction, IslandManifest, IslandEntry, RouteManifest, RouteEntry, CompileWarning, } from './types.js';
import type { CompileOptions, CompileResult } from './types.js';
/** High-level API: compile a .nx source string end-to-end.
* Runs the security guard automatically and includes its findings in warnings.
*/
/** High-level API: compile a .nx source string end-to-end */
export declare function compile(source: string, filepath: string, opts?: Partial<CompileOptions>): CompileResult;
//# sourceMappingURL=index.d.ts.map

@@ -1,1 +0,1 @@

{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AACxE,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,8BAA8B,EAAE,MAAM,6BAA6B,CAAC;AAC7E,OAAO,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC5E,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,4BAA4B,EAAE,MAAM,wBAAwB,CAAC;AAC1G,OAAO,EAAE,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAC9G,YAAY,EACV,eAAe,EACf,cAAc,EACd,aAAa,EACb,UAAU,EACV,eAAe,EACf,eAAe,EACf,YAAY,EACZ,cAAc,EACd,WAAW,EACX,aAAa,EACb,UAAU,EACV,cAAc,EACd,cAAc,GACf,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAK1C,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAkB,MAAM,YAAY,CAAC;AAEhF;;GAEG;AACH,wBAAgB,OAAO,CACrB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,IAAI,GAAE,OAAO,CAAC,cAAc,CAAM,GACjC,aAAa,CAoCf"}
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AACxE,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,8BAA8B,EAAE,MAAM,6BAA6B,CAAC;AAC7E,OAAO,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC5E,YAAY,EACV,eAAe,EACf,cAAc,EACd,aAAa,EACb,UAAU,EACV,eAAe,EACf,eAAe,EACf,YAAY,EACZ,cAAc,EACd,WAAW,EACX,aAAa,EACb,UAAU,EACV,cAAc,GACf,MAAM,YAAY,CAAC;AAIpB,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhE,6DAA6D;AAC7D,wBAAgB,OAAO,CACrB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,IAAI,GAAE,OAAO,CAAC,cAAc,CAAM,GACjC,aAAa,CAcf"}
export { componentHash, NEXUS_LAYER_DECLARATION } from './css-scope.js';
export { scanIslandSecurity } from './client-security-scan.js';
export { parse, offsetToLineColumn } from './parser.js';
export { parse } from './parser.js';
export { generate } from './codegen.js';
export { extractServerActionsFromSource } from './server-actions-extract.js';
export { splitPretext, transformPretextExport } from './pretext-extract.js';
export { compileLib } from './compile-lib.js';
export { bundleIslandLib, extractLibImports, applyLibManifestToClientCode } from './bundle-island-lib.js';
export { guard, formatGuardResult } from './guard.js';
export { formatCompileError, formatCompileWarning, formatWarnings, extractFrame } from './error-formatter.js';
export { CompileError } from './types.js';
import { parse } from './parser.js';
import { generate } from './codegen.js';
import { guard } from './guard.js';
/** High-level API: compile a .nx source string end-to-end.
* Runs the security guard automatically and includes its findings in warnings.
*/
/** High-level API: compile a .nx source string end-to-end */
export function compile(source, filepath, opts = {}) {

@@ -30,23 +22,4 @@ const options = {

const parsed = parse(source, filepath);
// Run security guard and merge findings as structured warnings
const guardResult = guard(source, filepath);
const guardWarnings = guardResult.leaks.map((leak) => ({
code: `NX-GUARD-${leak.type.toUpperCase()}`,
severity: leak.severity,
message: leak.message,
hint: leak.hint,
loc: { line: leak.line, column: leak.column },
}));
const result = generate(parsed, options);
// Merge parser warnings + guard warnings, deduplicate by message+line
const seen = new Set();
const allWarnings = [...parsed.warnings, ...guardWarnings, ...result.warnings].filter((w) => {
const key = `${w.message}:${w.loc?.line ?? 0}`;
if (seen.has(key))
return false;
seen.add(key);
return true;
});
return { ...result, warnings: allWarnings };
return generate(parsed, options);
}
//# sourceMappingURL=index.js.map

@@ -1,1 +0,1 @@

{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AACxE,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,8BAA8B,EAAE,MAAM,6BAA6B,CAAC;AAC7E,OAAO,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAgB5E,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAGxC,6DAA6D;AAC7D,MAAM,UAAU,OAAO,CACrB,MAAc,EACd,QAAgB,EAChB,OAAgC,EAAE;IAElC,MAAM,OAAO,GAAmB;QAC9B,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,QAAQ;QAC3B,GAAG,EAAE,IAAI,CAAC,GAAG,IAAI,KAAK;QACtB,GAAG,EAAE,IAAI,CAAC,GAAG,IAAI,IAAI;QACrB,kBAAkB,EAAE,IAAI,CAAC,kBAAkB,IAAI,IAAI;QACnD,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,MAAM;QAC7B,GAAG,CAAC,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAChE,GAAG,CAAC,IAAI,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/E,GAAG,CAAC,IAAI,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAChF,CAAC;IAEF,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACvC,OAAO,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AACnC,CAAC"}

@@ -82,24 +82,2 @@ import { describe, expect, it } from 'vitest';

});
it('rewrites $lib imports in client bundle to /_nexus/lib/', () => {
const src = `---
---
<script>
import { x } from '$lib/utils';
let count = $state(0);
</script>
<div client:load>{count}</div>
`;
const r = compile(src, '/app/src/routes/p/+page.nx', {
mode: 'server',
dev: false,
ssr: true,
emitIslandManifest: false,
target: 'node',
appRoot: '/app',
});
expect(r.clientCode).toBeTruthy();
const c = r.clientCode;
expect(c).not.toContain("'$lib/");
expect(c).toContain("'/_nexus/lib/");
});
it('rewrites $state assignments in handlers to .value (const-safe)', () => {

@@ -106,0 +84,0 @@ const src = `---

@@ -1,1 +0,1 @@

{"version":3,"file":"island-codegen.test.js","sourceRoot":"","sources":["../src/island-codegen.test.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"island-codegen.test.js","sourceRoot":"","sources":["../src/island-codegen.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAErC,wGAAwG;AACxG,MAAM,OAAO,GAAG;;;;;;;;;;;;CAYf,CAAC;AAEF,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;IACrC,EAAE,CAAC,+EAA+E,EAAE,GAAG,EAAE;QACvF,MAAM,CAAC,GAAG,OAAO,CACf;;;WAGK,EACL,0BAA0B,EAC1B;YACE,IAAI,EAAE,QAAQ;YACd,GAAG,EAAE,IAAI;YACT,GAAG,EAAE,IAAI;YACT,kBAAkB,EAAE,KAAK;YACzB,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,MAAM;SAChB,CACF,CAAC;QACF,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,mCAAmC,CAAC,CAAC;QACpE,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,6CAA6C,CAAC,CAAC;IAChF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iFAAiF,EAAE,GAAG,EAAE;QACzF,MAAM,CAAC,GAAG,OAAO,CAAC,OAAO,EAAE,0BAA0B,EAAE;YACrD,IAAI,EAAE,QAAQ;YACd,GAAG,EAAE,IAAI;YACT,GAAG,EAAE,IAAI;YACT,kBAAkB,EAAE,KAAK;YACzB,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,MAAM;SAChB,CAAC,CAAC;QACH,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,UAAU,EAAE,CAAC;QAClC,MAAM,CAAC,GAAG,CAAC,CAAC,UAAW,CAAC;QACxB,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,wCAAwC,CAAC,CAAC;QAC9D,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC;QACzC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAChC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAChC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC;QAC3C,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,uBAAuB,CAAC,CAAC;QAC7C,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,mCAAmC,CAAC,CAAC;QACzD,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,wBAAwB,CAAC,CAAC;QAC9C,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAC9B,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uEAAuE,EAAE,GAAG,EAAE;QAC/E,MAAM,GAAG,GAAG;;;;;;;;;;CAUf,CAAC;QACE,MAAM,CAAC,GAAG,OAAO,CAAC,GAAG,EAAE,mCAAmC,EAAE;YAC1D,IAAI,EAAE,QAAQ;YACd,GAAG,EAAE,IAAI;YACT,GAAG,EAAE,IAAI;YACT,kBAAkB,EAAE,KAAK;YACzB,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,MAAM;SAChB,CAAC,CAAC;QACH,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,UAAU,EAAE,CAAC;QAClC,MAAM,CAAC,GAAG,CAAC,CAAC,UAAW,CAAC;QACxB,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC;QAC3C,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,uBAAuB,CAAC,CAAC;QAC7C,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,wBAAwB,CAAC,CAAC;QAC9C,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,uBAAuB,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gEAAgE,EAAE,GAAG,EAAE;QACxE,MAAM,GAAG,GAAG;;;;;;;;;;CAUf,CAAC;QACE,MAAM,CAAC,GAAG,OAAO,CAAC,GAAG,EAAE,mCAAmC,EAAE;YAC1D,IAAI,EAAE,QAAQ;YACd,GAAG,EAAE,IAAI;YACT,GAAG,EAAE,IAAI;YACT,kBAAkB,EAAE,KAAK;YACzB,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,MAAM;SAChB,CAAC,CAAC;QACH,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,UAAU,EAAE,CAAC;QAClC,MAAM,CAAC,GAAG,CAAC,CAAC,UAAW,CAAC;QACxB,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;QACnC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,8CAA8C;IACvF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yDAAyD,EAAE,GAAG,EAAE;QACjE,MAAM,GAAG,GAAG;;;;;;;;;;;CAWf,CAAC;QACE,MAAM,CAAC,GAAG,OAAO,CAAC,GAAG,EAAE,8BAA8B,EAAE;YACrD,IAAI,EAAE,QAAQ;YACd,GAAG,EAAE,IAAI;YACT,GAAG,EAAE,IAAI;YACT,kBAAkB,EAAE,KAAK;YACzB,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,MAAM;SAChB,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACxD,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;QAC9C,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oFAAoF,EAAE,GAAG,EAAE;QAC5F,MAAM,GAAG,GAAG;;;;;;;;;;;;;CAaf,CAAC;QACE,MAAM,CAAC,GAAG,OAAO,CAAC,GAAG,EAAE,4BAA4B,EAAE;YACnD,IAAI,EAAE,QAAQ;YACd,GAAG,EAAE,IAAI;YACT,GAAG,EAAE,IAAI;YACT,kBAAkB,EAAE,KAAK;YACzB,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,MAAM;SAChB,CAAC,CAAC;QACH,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,yBAAyB,CAAC,CAAC;QAC1D,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}

@@ -1,1 +0,1 @@

{"version":3,"file":"island-wrap.d.ts","sourceRoot":"","sources":["../src/island-wrap.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AA4DH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,0EAA0E;IAC1E,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,2EAA2E;IAC3E,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE,MAAM,GACf,gBAAgB,CAqHlB"}
{"version":3,"file":"island-wrap.d.ts","sourceRoot":"","sources":["../src/island-wrap.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AA4DH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,0EAA0E;IAC1E,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,2EAA2E;IAC3E,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE,MAAM,GACf,gBAAgB,CAyElB"}

@@ -6,3 +6,3 @@ /**

*/
import { relative, resolve } from 'node:path';
import { relative } from 'node:path';
const CLIENT_DIR_RE = /\sclient:(load|idle|visible|media)(?:=["']([^"']*)["'])?/;

@@ -95,5 +95,3 @@ /**

if (!balanced) {
const snippet = t.slice(openMatchStart, openMatchStart + 120).replace(/\n/g, ' ');
throw new Error(`[Nexus Compiler] Unclosed island tag <${tag}> starting at:\n ${snippet}${snippet.length >= 120 ? '…' : ''}\n` +
`Every client:* island must have a matching closing tag </${tag}>. Check for typos or self-closing tags without />`);
break;
}

@@ -103,3 +101,5 @@ inner = balanced.inner;

}
const islandIdx = fragments.length;
const clientTemplate = innerRootOpen + inner + innerRootClose;
fragments.push(clientTemplate);
const islandIdx = fragments.length - 1;
const islandId = `island_${idBase}_${islandIdx}`.toLowerCase();

@@ -109,39 +109,2 @@ const dataStrategy = strategy === 'media' && mediaQuery

: `data-nexus-strategy="client:${strategy}"`;
// ── Manual external island: <nexus-island client:load src="$lib/…"> ──
const srcMatch = /\bsrc\s*=\s*"([^"]+)"/.exec(fullAttrs);
if (tag === 'nexus-island' && srcMatch) {
const rawSrc = srcMatch[1];
let resolvedComponent;
if (rawSrc.startsWith('$lib/')) {
// $lib/foo.ts → /_nexus/lib/foo.js (served by dev-assets or bundled for prod)
resolvedComponent = rawSrc.replace('$lib/', '/_nexus/lib/').replace(/\.ts$/u, '.js');
}
else if (rawSrc.startsWith('/')) {
resolvedComponent = rawSrc.replace(/\.ts$/u, '.js');
}
else if (rawSrc.startsWith('./') || rawSrc.startsWith('../')) {
const resolved = resolve(absFilePath, '..', rawSrc).replace(/\\/g, '/');
resolvedComponent = resolved.replace(/\.ts$/u, '.js');
}
else {
throw new Error(`[Nexus Compiler] External island src must start with "$lib/", "/", "./", or "../". Got: "${rawSrc}"`);
}
const cleanAttrs = stripClientDirective(fullAttrs)
.replace(/\bsrc\s*=\s*"[^"]*"/, ' ')
.replace(/\s*\/\s*$/u, '')
.trim();
const replacement = t.slice(0, openMatchStart) +
`<nexus-island
data-nexus-island="${islandId}"
data-nexus-island-index="${islandIdx}"
data-nexus-component="${resolvedComponent}"
${dataStrategy}${cleanAttrs ? '\n ' + cleanAttrs : ''}
>${inner}</nexus-island>` +
t.slice(closeEnd);
t = replacement;
fragments.push(''); // placeholder to keep inline island indices aligned
continue;
}
const clientTemplate = innerRootOpen + inner + innerRootClose;
fragments.push(clientTemplate);
const wrapped = t.slice(0, openMatchStart) +

@@ -148,0 +111,0 @@ `<nexus-island

@@ -1,1 +0,1 @@

{"version":3,"file":"island-wrap.js","sourceRoot":"","sources":["../src/island-wrap.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"island-wrap.js","sourceRoot":"","sources":["../src/island-wrap.ts"],"names":[],"mappings":"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"}

@@ -21,23 +21,3 @@ import { describe, expect, it } from 'vitest';

});
it('throws on unclosed island tags', () => {
const t = `<div client:load><span>hi</span>`;
expect(() => wrapSelfClientIslandMarkers(t, '/app/src/routes/+page.nx', '/app')).toThrow(/Unclosed island tag/);
});
it('handles manual <nexus-island src="$lib/…"> as external island', () => {
const t = `<nexus-island client:load src="$lib/islands/menu.ts"><button>Menu</button></nexus-island>`;
const r = wrapSelfClientIslandMarkers(t, '/app/src/routes/+page.nx', '/app');
expect(r.didWrap).toBe(true);
expect(r.template).toContain('data-nexus-component="/_nexus/lib/islands/menu.js"');
expect(r.template).toContain('data-nexus-island-index="0"');
expect(r.template).toContain('data-nexus-strategy="client:load"');
expect(r.template).not.toMatch(/<nexus-island[^>]*\sclient:load/);
expect(r.template).not.toContain('src=');
expect(r.template).toContain('<button>Menu</button>');
expect(r.clientFragments[0]).toBe(''); // placeholder for index alignment
});
it('rejects external island src with unsupported prefix', () => {
const t = `<nexus-island client:load src="http://example.com/menu.ts"></nexus-island>`;
expect(() => wrapSelfClientIslandMarkers(t, '/app/src/routes/+page.nx', '/app')).toThrow(/External island src must start with/);
});
});
//# sourceMappingURL=island-wrap.test.js.map

@@ -1,1 +0,1 @@

{"version":3,"file":"island-wrap.test.js","sourceRoot":"","sources":["../src/island-wrap.test.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"island-wrap.test.js","sourceRoot":"","sources":["../src/island-wrap.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,2BAA2B,EAAE,MAAM,kBAAkB,CAAC;AAE/D,QAAQ,CAAC,6BAA6B,EAAE,GAAG,EAAE;IAC3C,EAAE,CAAC,2DAA2D,EAAE,GAAG,EAAE;QACnE,MAAM,CAAC,GAAG,4DAA4D,CAAC;QACvE,MAAM,CAAC,GAAG,2BAA2B,CAAC,CAAC,EAAE,0BAA0B,EAAE,MAAM,CAAC,CAAC;QAC7E,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7B,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;QAC9C,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,6BAA6B,CAAC,CAAC;QAC5D,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,+CAA+C,CAAC,CAAC;QAC9E,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,uBAAuB,CAAC,CAAC;QAC1D,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACnD,MAAM,CAAC,GAAG,wCAAwC,CAAC;QACnD,MAAM,CAAC,GAAG,2BAA2B,CAAC,CAAC,EAAE,0BAA0B,EAAE,MAAM,CAAC,CAAC;QAC7E,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7B,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;QAC9C,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}

@@ -1,4 +0,2 @@

import type { ParsedComponent, CompileWarning, SourceLocation } from './types.js';
/** Convert a character offset into 1-based line and 0-based column numbers. */
export declare function offsetToLineColumn(source: string, offset: number): SourceLocation;
import type { ParsedComponent } from './types.js';
/**

@@ -29,6 +27,3 @@ * Parses a .nx source file into its constituent blocks.

*/
export interface ParseResult extends ParsedComponent {
warnings: CompileWarning[];
}
export declare function parse(source: string, filepath: string): ParseResult;
export declare function parse(source: string, filepath: string): ParsedComponent;
//# sourceMappingURL=parser.d.ts.map

@@ -1,1 +0,1 @@

{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,eAAe,EAIf,cAAc,EACd,cAAc,EACf,MAAM,YAAY,CAAC;AAIpB,+EAA+E;AAC/E,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,cAAc,CAYjF;AAeD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,WAAW,WAAY,SAAQ,eAAe;IAClD,QAAQ,EAAE,cAAc,EAAE,CAAC;CAC5B;AAED,wBAAgB,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,WAAW,CAmHnE"}
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,eAAe,EAIhB,MAAM,YAAY,CAAC;AAiBpB;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,eAAe,CA2FvE"}
import { extractServerActionsFromSource } from './server-actions-extract.js';
import { splitPretext } from './pretext-extract.js';
/** Convert a character offset into 1-based line and 0-based column numbers. */
export function offsetToLineColumn(source, offset) {
let line = 1;
let column = 0;
for (let i = 0; i < offset && i < source.length; i++) {
if (source[i] === '\n') {
line++;
column = 0;
}
else {
column++;
}
}
return { line, column };
}
/** Regex patterns for parsing .nx files */
const FRONTMATTER_RE = /^---\n([\s\S]*?)\n---/;
const SCRIPT_BLOCK_RE = /<script(?:\s[^>]*)?>([\s\S]*?)<\/script>/g;
const STYLE_BLOCK_RE = /<style(?:\s[^>]*)?>([\s\S]*?)<\/style>/g;
const SCRIPT_BLOCK_RE = /<script(?:\s[^>]*)?>(\n[\s\S]*?)<\/script>/;
const STYLE_BLOCK_RE = /<style(?:\s[^>]*)?>(\n[\s\S]*?)<\/style>/;
const ISLAND_DIRECTIVES = [

@@ -29,2 +14,27 @@ 'client:load',

];
/**
* Parses a .nx source file into its constituent blocks.
* A .nx file has the structure:
*
* ```
* ---
* // Server-only frontmatter (Astro-style)
* import { db } from '$lib/db';
* const user = await db.user.findFirst();
* ---
*
* <script>
* // Svelte 5 Runes-style reactive script
* let count = $state(0);
* let doubled = $derived(count * 2);
* </script>
*
* <h1>Hello {user.name}</h1>
* <button onclick={() => count++}>Clicked {count}</button>
*
* <style>
* h1 { color: red; }
* </style>
* ```
*/
export function parse(source, filepath) {

@@ -50,50 +60,32 @@ const warnings = [];

}
// --- Script blocks (collect ALL) ---
const scriptMatches = Array.from(remaining.matchAll(SCRIPT_BLOCK_RE));
const scriptContents = [];
let scriptStart = -1;
let scriptEnd = -1;
for (const m of scriptMatches) {
scriptContents.push(m[1] ?? '');
const absStart = (frontmatter?.end ?? 0) + (m.index ?? 0);
const absEnd = absStart + m[0].length;
if (scriptStart === -1)
scriptStart = absStart;
scriptEnd = Math.max(scriptEnd, absEnd);
}
const script = scriptContents.length > 0
? {
// --- Script block ---
const scriptMatch = SCRIPT_BLOCK_RE.exec(remaining);
let script = null;
if (scriptMatch) {
const absStart = (frontmatter?.end ?? 0) + (scriptMatch.index ?? 0);
script = {
type: 'script',
content: scriptContents.join('\n\n'),
start: scriptStart,
end: scriptEnd,
}
: null;
// --- Style blocks (collect ALL) ---
const styleMatches = Array.from(remaining.matchAll(STYLE_BLOCK_RE));
const styleContents = [];
let styleStart = -1;
let styleEnd = -1;
for (const m of styleMatches) {
styleContents.push(m[1] ?? '');
const absStart = (frontmatter?.end ?? 0) + (m.index ?? 0);
const absEnd = absStart + m[0].length;
if (styleStart === -1)
styleStart = absStart;
styleEnd = Math.max(styleEnd, absEnd);
content: scriptMatch[1] ?? '',
start: absStart,
end: absStart + scriptMatch[0].length,
};
}
const style = styleContents.length > 0
? {
// --- Style block ---
const styleMatch = STYLE_BLOCK_RE.exec(remaining);
let style = null;
if (styleMatch) {
const absStart = (frontmatter?.end ?? 0) + (styleMatch.index ?? 0);
style = {
type: 'style',
content: styleContents.join('\n\n'),
start: styleStart,
end: styleEnd,
}
: null;
content: styleMatch[1] ?? '',
start: absStart,
end: absStart + styleMatch[0].length,
};
}
// --- Template: everything except frontmatter, script, style ---
let templateContent = remaining;
for (const m of scriptMatches)
templateContent = templateContent.replace(m[0], '');
for (const m of styleMatches)
templateContent = templateContent.replace(m[0], '');
if (scriptMatch)
templateContent = templateContent.replace(scriptMatch[0], '');
if (styleMatch)
templateContent = templateContent.replace(styleMatch[0], '');
templateContent = templateContent.trim();

@@ -115,10 +107,3 @@ const template = {

if (serverActions.length > 0 && !source.includes('use server')) {
const loc = offsetToLineColumn(source, source.indexOf(serverActions[0].name) || 0);
warnings.push({
code: 'NX-001',
severity: 'warning',
message: `Found server action patterns without "use server" directive`,
hint: `Add "use server" at the top of your server action function, or use createAction() from @nexus_js/server.`,
loc,
});
warnings.push(`Found server action patterns without "use server" directive in ${filepath}`);
}

@@ -135,3 +120,2 @@ return {

serverActions,
warnings,
};

@@ -141,28 +125,14 @@ }

const directives = [];
// Scan opening tags one-by-one, then parse individual attributes so we never
// match a directive that lives inside an attribute value
// (e.g. data-tip="use client:load for interactivity").
const tagRe = /<([a-zA-Z][\w-]*)([^>]*)>/g;
let m;
while ((m = tagRe.exec(template)) !== null) {
const tagName = m[1];
const attrs = m[2];
// Extract attribute names and optional values one-by-one
const attrRe = /\s([a-zA-Z][\w:-]*)(?:="([^"]*)")?(?:='([^']*)')?/g;
let am;
while ((am = attrRe.exec(attrs)) !== null) {
const attrName = am[1];
if (ISLAND_DIRECTIVES.includes(attrName)) {
const entry = {
directive: attrName,
componentName: tagName,
};
if (entry.directive === 'client:media') {
const val = am[2] ?? am[3];
if (val !== undefined)
entry.mediaQuery = val;
}
directives.push(entry);
break; // a tag can carry at most one island directive
for (const directive of ISLAND_DIRECTIVES) {
const re = new RegExp(`<(\\w+)[^>]*\\s${directive}(?:=["']([^"']*)["'])?[^>]*>`, 'g');
let match;
while ((match = re.exec(template)) !== null) {
const entry = {
directive,
componentName: match[1] ?? 'Unknown',
};
if (directive === 'client:media' && match[2] !== undefined) {
entry.mediaQuery = match[2];
}
directives.push(entry);
}

@@ -169,0 +139,0 @@ }

@@ -1,1 +0,1 @@

{"version":3,"file":"parser.js","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,8BAA8B,EAAE,MAAM,6BAA6B,CAAC;AAC7E,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEpD,+EAA+E;AAC/E,MAAM,UAAU,kBAAkB,CAAC,MAAc,EAAE,MAAc;IAC/D,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrD,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YACvB,IAAI,EAAE,CAAC;YACP,MAAM,GAAG,CAAC,CAAC;QACb,CAAC;aAAM,CAAC;YACN,MAAM,EAAE,CAAC;QACX,CAAC;IACH,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AAC1B,CAAC;AAED,2CAA2C;AAC3C,MAAM,cAAc,GAAG,uBAAuB,CAAC;AAC/C,MAAM,eAAe,GAAG,2CAA2C,CAAC;AACpE,MAAM,cAAc,GAAG,yCAAyC,CAAC;AAEjE,MAAM,iBAAiB,GAAsB;IAC3C,aAAa;IACb,aAAa;IACb,gBAAgB;IAChB,cAAc;IACd,aAAa;CACd,CAAC;AA+BF,MAAM,UAAU,KAAK,CAAC,MAAc,EAAE,QAAgB;IACpD,MAAM,QAAQ,GAAqB,EAAE,CAAC;IAEtC,sBAAsB;IACtB,MAAM,OAAO,GAAG,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC5C,IAAI,WAAW,GAAsB,IAAI,CAAC;IAC1C,IAAI,SAAS,GAAG,MAAM,CAAC;IACvB,IAAI,OAAO,GAAkB,IAAI,CAAC;IAElC,IAAI,OAAO,IAAI,OAAO,CAAC,KAAK,KAAK,CAAC,EAAE,CAAC;QACnC,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC/B,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;QAClC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;QACxB,MAAM,YAAY,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAChF,WAAW,GAAG;YACZ,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,YAAY;YACrB,KAAK,EAAE,CAAC;YACR,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM;SACvB,CAAC;QACF,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IAC9C,CAAC;IAED,sCAAsC;IACtC,MAAM,aAAa,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC;IACtE,MAAM,cAAc,GAAa,EAAE,CAAC;IACpC,IAAI,WAAW,GAAG,CAAC,CAAC,CAAC;IACrB,IAAI,SAAS,GAAG,CAAC,CAAC,CAAC;IACnB,KAAK,MAAM,CAAC,IAAI,aAAa,EAAE,CAAC;QAC9B,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QAChC,MAAM,QAAQ,GAAG,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC;QAC1D,MAAM,MAAM,GAAG,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QACtC,IAAI,WAAW,KAAK,CAAC,CAAC;YAAE,WAAW,GAAG,QAAQ,CAAC;QAC/C,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAC1C,CAAC;IACD,MAAM,MAAM,GACV,cAAc,CAAC,MAAM,GAAG,CAAC;QACvB,CAAC,CAAC;YACE,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC;YACpC,KAAK,EAAE,WAAW;YAClB,GAAG,EAAE,SAAS;SACf;QACH,CAAC,CAAC,IAAI,CAAC;IAEX,qCAAqC;IACrC,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC;IACpE,MAAM,aAAa,GAAa,EAAE,CAAC;IACnC,IAAI,UAAU,GAAG,CAAC,CAAC,CAAC;IACpB,IAAI,QAAQ,GAAG,CAAC,CAAC,CAAC;IAClB,KAAK,MAAM,CAAC,IAAI,YAAY,EAAE,CAAC;QAC7B,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QAC/B,MAAM,QAAQ,GAAG,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC;QAC1D,MAAM,MAAM,GAAG,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QACtC,IAAI,UAAU,KAAK,CAAC,CAAC;YAAE,UAAU,GAAG,QAAQ,CAAC;QAC7C,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACxC,CAAC;IACD,MAAM,KAAK,GACT,aAAa,CAAC,MAAM,GAAG,CAAC;QACtB,CAAC,CAAC;YACE,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC;YACnC,KAAK,EAAE,UAAU;YACjB,GAAG,EAAE,QAAQ;SACd;QACH,CAAC,CAAC,IAAI,CAAC;IAEX,iEAAiE;IACjE,IAAI,eAAe,GAAG,SAAS,CAAC;IAChC,KAAK,MAAM,CAAC,IAAI,aAAa;QAAE,eAAe,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACnF,KAAK,MAAM,CAAC,IAAI,YAAY;QAAE,eAAe,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAClF,eAAe,GAAG,eAAe,CAAC,IAAI,EAAE,CAAC;IAEzC,MAAM,QAAQ,GAAe;QAC3B,IAAI,EAAE,UAAU;QAChB,OAAO,EAAE,eAAe;QACxB,KAAK,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;QAC5B,GAAG,EAAE,MAAM,CAAC,MAAM;KACnB,CAAC;IAEF,4BAA4B;IAC5B,MAAM,gBAAgB,GAAG,uBAAuB,CAAC,eAAe,CAAC,CAAC;IAElE,yBAAyB;IACzB,gHAAgH;IAChH,MAAM,aAAa,GAAG,MAAM,EAAE,OAAO,IAAI,EAAE,CAAC;IAC5C,MAAM,kBAAkB,GAAG,WAAW,EAAE,OAAO,IAAI,EAAE,CAAC;IACtD,MAAM,cAAc,GAAG,OAAO,IAAI,EAAE,CAAC;IACrC,MAAM,aAAa,GAAG,8BAA8B,CAClD,aAAa,GAAG,IAAI,GAAG,kBAAkB,GAAG,IAAI,GAAG,cAAc,CAClE,CAAC;IAEF,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;QAC/D,MAAM,GAAG,GAAG,kBAAkB,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACpF,QAAQ,CAAC,IAAI,CAAC;YACZ,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,SAAS;YACnB,OAAO,EAAE,6DAA6D;YACtE,IAAI,EAAE,0GAA0G;YAChH,GAAG;SACJ,CAAC,CAAC;IACL,CAAC;IAED,OAAO;QACL,MAAM;QACN,QAAQ;QACR,WAAW;QACX,OAAO,EAAE,OAAO,IAAI,IAAI;QACxB,MAAM;QACN,QAAQ;QACR,KAAK;QACL,gBAAgB;QAChB,aAAa;QACb,QAAQ;KACT,CAAC;AACJ,CAAC;AAED,SAAS,uBAAuB,CAAC,QAAgB;IAC/C,MAAM,UAAU,GAAsB,EAAE,CAAC;IAEzC,6EAA6E;IAC7E,yDAAyD;IACzD,uDAAuD;IACvD,MAAM,KAAK,GAAG,4BAA4B,CAAC;IAC3C,IAAI,CAAyB,CAAC;IAC9B,OAAO,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QAC3C,MAAM,OAAO,GAAG,CAAC,CAAC,CAAC,CAAE,CAAC;QACtB,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,CAAE,CAAC;QAEpB,yDAAyD;QACzD,MAAM,MAAM,GAAG,oDAAoD,CAAC;QACpE,IAAI,EAA0B,CAAC;QAC/B,OAAO,CAAC,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YAC1C,MAAM,QAAQ,GAAG,EAAE,CAAC,CAAC,CAAE,CAAC;YACxB,IAAI,iBAAiB,CAAC,QAAQ,CAAC,QAA2B,CAAC,EAAE,CAAC;gBAC5D,MAAM,KAAK,GAAoB;oBAC7B,SAAS,EAAE,QAA2B;oBACtC,aAAa,EAAE,OAAO;iBACvB,CAAC;gBACF,IAAI,KAAK,CAAC,SAAS,KAAK,cAAc,EAAE,CAAC;oBACvC,MAAM,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;oBAC3B,IAAI,GAAG,KAAK,SAAS;wBAAE,KAAK,CAAC,UAAU,GAAG,GAAG,CAAC;gBAChD,CAAC;gBACD,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACvB,MAAM,CAAC,+CAA+C;YACxD,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC"}
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"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"}
/**
* Splits `.nx` server frontmatter into pretext data-loader region and other server code.
* Splits `.nx` server frontmatter into optional `// nexus:pretext` … `// nexus:server` regions.
*
* The simple form (recommended, no marker needed):
* ```
* ---
* import { db } from '$lib/db';
* // nexus:pretext
* export async function load(ctx) {
* return { flow: await db.flows.findFirst() };
* }
* ---
* ```
*
* Explicit marker form (when you also need top-level server-only code):
* ```
* ---
* import { db } from '$lib/db';
* // nexus:pretext
* export async function load(ctx) { ... }
* // nexus:server

@@ -21,0 +12,0 @@ * defineHead({ title: '…' });

@@ -1,1 +0,1 @@

{"version":3,"file":"pretext-extract.d.ts","sourceRoot":"","sources":["../src/pretext-extract.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,MAAM,WAAW,kBAAkB;IACjC,mFAAmF;IACnF,OAAO,EAAE,MAAM,CAAC;IAChB,2DAA2D;IAC3D,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,8EAA8E;IAC9E,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,kBAAkB,CAoEpE;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAMlE"}
{"version":3,"file":"pretext-extract.d.ts","sourceRoot":"","sources":["../src/pretext-extract.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,MAAM,WAAW,kBAAkB;IACjC,mFAAmF;IACnF,OAAO,EAAE,MAAM,CAAC;IAChB,2DAA2D;IAC3D,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,8EAA8E;IAC9E,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,kBAAkB,CA0BpE;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAMlE"}
/**
* Splits `.nx` server frontmatter into pretext data-loader region and other server code.
* Splits `.nx` server frontmatter into optional `// nexus:pretext` … `// nexus:server` regions.
*
* The simple form (recommended, no marker needed):
* ```
* ---
* import { db } from '$lib/db';
* // nexus:pretext
* export async function load(ctx) {
* return { flow: await db.flows.findFirst() };
* }
* ---
* ```
*
* Explicit marker form (when you also need top-level server-only code):
* ```
* ---
* import { db } from '$lib/db';
* // nexus:pretext
* export async function load(ctx) { ... }
* // nexus:server

@@ -29,38 +20,2 @@ * defineHead({ title: '…' });

if (markerIdx === -1) {
// Ergonomic auto-detect: support the common documented pattern of just writing
// `export async function load(ctx) { ... }` (or const load = async ...) without
// requiring the // nexus:pretext marker.
//
// This resolves the major incongruencia between the quickstart/README examples
// (and paylinks-saas demo) vs the actual pretext machinery.
//
// Strategy:
// - Find the first `load` export declaration.
// - Everything before it becomes `leading` (imports + shared top-level server code).
// - The load declaration (and following lines until a logical split) becomes the pretext.
// - Remaining code after the load block becomes `server` (top-level).
//
// Users who need explicit separation between data-loading and other server module code
// can still use the // nexus:pretext + // nexus:server markers (see PRETEXT.md).
let loadStart = -1;
const loadRe = /^\s*export\s+(async\s+)?(function\s+load\b|const\s+load\s*=|default\s+async\s+function\s+load\b)/;
for (let i = 0; i < lines.length; i++) {
const line = lines[i] ?? '';
if (loadRe.test(line)) {
loadStart = i;
break;
}
}
if (loadStart !== -1) {
const leading = lines.slice(0, loadStart).join('\n').trim();
// Take from the load line to the end as pretext for the common case.
// If there is obvious server-only code after (e.g. another export or top level statement
// that is not part of load), advanced users should use the marker for clarity.
const pretextBody = lines.slice(loadStart).join('\n').trim();
return {
leading,
pretext: pretextBody || null,
server: '',
};
}
return { leading: '', pretext: null, server: frontmatter.trim() };

@@ -67,0 +22,0 @@ }

@@ -1,1 +0,1 @@

{"version":3,"file":"pretext-extract.js","sourceRoot":"","sources":["../src/pretext-extract.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"pretext-extract.js","sourceRoot":"","sources":["../src/pretext-extract.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAWH,MAAM,UAAU,YAAY,CAAC,WAAmB;IAC9C,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACtC,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,+BAA+B,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAClF,IAAI,SAAS,KAAK,CAAC,CAAC,EAAE,CAAC;QACrB,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,IAAI,EAAE,EAAE,CAAC;IACpE,CAAC;IAED,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;IAC5D,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1D,MAAM,WAAW,GAAG,WAAW,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;IAEtE,IAAI,WAAmB,CAAC;IACxB,IAAI,UAAkB,CAAC;IACvB,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QACpD,WAAW,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC;QACjC,UAAU,GAAG,EAAE,CAAC;IAClB,CAAC;SAAM,CAAC;QACN,WAAW,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;QAC7D,UAAU,GAAG,WAAW,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;IACnF,CAAC;IAED,OAAO;QACL,OAAO;QACP,OAAO,EAAE,WAAW,IAAI,IAAI;QAC5B,MAAM,EAAE,UAAU;KACnB,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,sBAAsB,CAAC,WAAmB;IACxD,IAAI,CAAC,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC;IAC3B,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,yCAAyC,EAAE,kCAAkC,CAAC,CAAC;IAC7F,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,wCAAwC,EAAE,iCAAiC,CAAC,CAAC;IAC3F,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,0CAA0C,EAAE,kCAAkC,CAAC,CAAC;IAC9F,OAAO,CAAC,CAAC;AACX,CAAC"}
import { describe, expect, it } from 'vitest';
import { splitPretext, transformPretextExport } from './pretext-extract.js';
describe('splitPretext', () => {
it('returns full frontmatter as server when no marker and no load', () => {
it('returns full frontmatter as server when no marker', () => {
const fm = `import { x } from 'y';\nconst a = 1;`;

@@ -11,13 +11,2 @@ const r = splitPretext(fm);

});
it('auto-detects plain load export as pretext (no marker required)', () => {
const fm = `import { db } from './db';
export async function load(ctx) {
return { flow: await db.flows.findFirst() };
}`;
const r = splitPretext(fm);
expect(r.leading.trim()).toContain("import { db }");
expect(r.pretext).toContain('export async function load');
expect(r.pretext).not.toContain('nexus:pretext');
expect(r.server).toBe('');
});
it('splits pretext and server regions', () => {

@@ -24,0 +13,0 @@ const fm = `import { db } from './db';

@@ -1,1 +0,1 @@

{"version":3,"file":"pretext-extract.test.js","sourceRoot":"","sources":["../src/pretext-extract.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAE5E,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;IAC5B,EAAE,CAAC,+DAA+D,EAAE,GAAG,EAAE;QACvE,MAAM,EAAE,GAAG,sCAAsC,CAAC;QAClD,MAAM,CAAC,GAAG,YAAY,CAAC,EAAE,CAAC,CAAC;QAC3B,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC7B,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC1B,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gEAAgE,EAAE,GAAG,EAAE;QACxE,MAAM,EAAE,GAAG;;;EAGb,CAAC;QACC,MAAM,CAAC,GAAG,YAAY,CAAC,EAAE,CAAC,CAAC;QAC3B,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;QACpD,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,4BAA4B,CAAC,CAAC;QAC1D,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;QACjD,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC5B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;QAC3C,MAAM,EAAE,GAAG;;;;;;4BAMa,CAAC;QACzB,MAAM,CAAC,GAAG,YAAY,CAAC,EAAE,CAAC,CAAC;QAC3B,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;QACpD,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,4BAA4B,CAAC,CAAC;QAC1D,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;QAC9C,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;IACtC,EAAE,CAAC,2BAA2B,EAAE,GAAG,EAAE;QACnC,MAAM,GAAG,GAAG,sBAAsB,CAAC,oDAAoD,CAAC,CAAC;QACzF,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,kCAAkC,CAAC,CAAC;QAC1D,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
{"version":3,"file":"pretext-extract.test.js","sourceRoot":"","sources":["../src/pretext-extract.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAE5E,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;IAC5B,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;QAC3D,MAAM,EAAE,GAAG,sCAAsC,CAAC;QAClD,MAAM,CAAC,GAAG,YAAY,CAAC,EAAE,CAAC,CAAC;QAC3B,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC7B,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC1B,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;QAC3C,MAAM,EAAE,GAAG;;;;;;4BAMa,CAAC;QACzB,MAAM,CAAC,GAAG,YAAY,CAAC,EAAE,CAAC,CAAC;QAC3B,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;QACpD,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,4BAA4B,CAAC,CAAC;QAC1D,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;QAC9C,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;IACtC,EAAE,CAAC,2BAA2B,EAAE,GAAG,EAAE;QACnC,MAAM,GAAG,GAAG,sBAAsB,CAAC,oDAAoD,CAAC,CAAC;QACzF,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,kCAAkC,CAAC,CAAC;QAC1D,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}

@@ -70,9 +70,2 @@ /** A parsed block extracted from a .nx file */

libDepsMtime?: number;
/**
* Production only: content-hash manifest produced by `bundleIslandLib`.
* Maps canonical lib rel paths (`utils/date.js`) to hashed filenames
* (`utils/date.a1b2c3d4.js`). When present, `rewriteDollarLibImportsForClient`
* emits `/_nexus/lib/<hashed>` URLs directly.
*/
libManifest?: ReadonlyMap<string, string>;
}

@@ -104,34 +97,7 @@ export interface CompileResult {

}
export interface SourceLocation {
/** 1-based line number */
line: number;
/** 0-based column number */
column: number;
}
export interface CompileWarning {
message: string;
code?: string;
severity?: 'warning' | 'error';
/** Actionable fix suggestion */
hint?: string;
start?: number;
end?: number;
loc?: SourceLocation;
}
/** Structured compiler error thrown when a .nx file cannot be compiled. */
export declare class CompileError extends Error {
readonly code: string;
readonly file: string;
readonly loc: SourceLocation | undefined;
readonly hint: string | undefined;
readonly frame: string | undefined;
constructor(opts: {
message: string;
code: string;
file: string;
loc?: SourceLocation | undefined;
hint?: string | undefined;
frame?: string | undefined;
});
}
export interface RouteManifest {

@@ -138,0 +104,0 @@ routes: RouteEntry[];

@@ -1,1 +0,1 @@

{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAC/C,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,UAAU,GAAG,OAAO,CAAC;IACjD,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CACb;AAED,oDAAoD;AACpD,MAAM,WAAW,eAAe;IAC9B,sBAAsB;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,uBAAuB;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,4DAA4D;IAC5D,WAAW,EAAE,UAAU,GAAG,IAAI,CAAC;IAC/B;;;OAGG;IACH,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,6DAA6D;IAC7D,MAAM,EAAE,UAAU,GAAG,IAAI,CAAC;IAC1B,0BAA0B;IAC1B,QAAQ,EAAE,UAAU,GAAG,IAAI,CAAC;IAC5B,kBAAkB;IAClB,KAAK,EAAE,UAAU,GAAG,IAAI,CAAC;IACzB,kEAAkE;IAClE,gBAAgB,EAAE,eAAe,EAAE,CAAC;IACpC,uDAAuD;IACvD,aAAa,EAAE,YAAY,EAAE,CAAC;CAC/B;AAED,MAAM,MAAM,eAAe,GACvB,aAAa,GACb,aAAa,GACb,gBAAgB,GAChB,cAAc,GACd,aAAa,CAAC;AAElB,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,eAAe,CAAC;IAC3B,aAAa,EAAE,MAAM,CAAC;IACtB,0CAA0C;IAC1C,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,sCAAsC;IACtC,UAAU,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;IACrC,GAAG,EAAE,OAAO,CAAC;IACb,GAAG,EAAE,OAAO,CAAC;IACb,uDAAuD;IACvD,kBAAkB,EAAE,OAAO,CAAC;IAC5B,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IACpC,iFAAiF;IACjF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;;OAKG;IACH,WAAW,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC3C;AAED,MAAM,WAAW,aAAa;IAC5B,sDAAsD;IACtD,UAAU,EAAE,MAAM,CAAC;IACnB,iEAAiE;IACjE,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,iBAAiB;IACjB,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,4CAA4C;IAC5C,cAAc,EAAE,cAAc,GAAG,IAAI,CAAC;IACtC,kDAAkD;IAClD,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,kBAAkB;IAClB,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,QAAQ,EAAE,cAAc,EAAE,CAAC;CAC5B;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,WAAW,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,eAAe,CAAC;IAC3B,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,cAAc;IAC7B,0BAA0B;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,4BAA4B;IAC5B,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC;IAC/B,gCAAgC;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,cAAc,CAAC;CACtB;AAED,2EAA2E;AAC3E,qBAAa,YAAa,SAAQ,KAAK;IACrC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,EAAE,cAAc,GAAG,SAAS,CAAC;IACzC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;gBAEvB,IAAI,EAAE;QAChB,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,GAAG,CAAC,EAAE,cAAc,GAAG,SAAS,CAAC;QACjC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAC1B,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;KAC5B;CASF;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,UAAU,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,EAAE,CAAC;CACzB"}
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}

@@ -1,18 +0,2 @@

/** Structured compiler error thrown when a .nx file cannot be compiled. */
export class CompileError extends Error {
code;
file;
loc;
hint;
frame;
constructor(opts) {
super(opts.message);
this.name = 'CompileError';
this.code = opts.code;
this.file = opts.file;
this.loc = opts.loc;
this.hint = opts.hint;
this.frame = opts.frame;
}
}
export {};
//# sourceMappingURL=types.js.map

@@ -1,1 +0,1 @@

{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAsIA,2EAA2E;AAC3E,MAAM,OAAO,YAAa,SAAQ,KAAK;IAC5B,IAAI,CAAS;IACb,IAAI,CAAS;IACb,GAAG,CAA6B;IAChC,IAAI,CAAqB;IACzB,KAAK,CAAqB;IAEnC,YAAY,IAOX;QACC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACpB,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;QAC3B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACtB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACtB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;QACpB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACtB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;IAC1B,CAAC;CACF"}
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
{
"name": "@nexus_js/compiler",
"version": "0.9.28",
"version": "0.9.29",
"description": "Nexus compiler — transforms .nx files into optimized server/client bundles",

@@ -15,3 +15,2 @@ "type": "module",

"dependencies": {
"esbuild": "^0.28.0",
"magic-string": "^0.30.0",

@@ -22,3 +21,3 @@ "typescript": "^5.5.0"

"typescript": "^5.5.0",
"vitest": "^4.0.0"
"vitest": "^2.0.0"
},

@@ -35,6 +34,2 @@ "license": "MIT",

},
"funding": {
"type": "individual",
"url": "https://buymeacoffee.com/bierfor084"
},
"keywords": [

@@ -61,6 +56,5 @@ "nexus",

"dev": "tsc -p tsconfig.json --watch",
"typecheck": "tsc --noEmit -p tsconfig.json",
"test": "vitest run",
"test": "vitest run --passWithNoTests",
"clean": "rm -rf dist"
}
}
/**
* Bundle $lib dependencies for client islands into .nexus/output/lib/.
*
* Content-hashing strategy
* ────────────────────────
* Each bundled lib file is content-hashed (SHA-1, 8 hex chars) and written as
* `<name>.<hash>.js` (e.g. `utils/date.a1b2c3d4.js`). A manifest that maps
* canonical rel paths to their hashed counterparts is returned so that callers
* can rewrite island import URLs after the fact.
*
* Two-pass build flow (bin.ts)
* ────────────────────────────
* 1. compile() produces island codes with plain `/_nexus/lib/utils/date.js` URLs.
* 2. bundleIslandLib() hashes every lib file → returns manifest.
* 3. applyLibManifestToClientCode() rewrites `/_nexus/lib/…` specifiers in route
* `.client.js` files and in the emitted `output/lib/*.js` bundles (cross-chunk
* imports must use the same content-hashed filenames as the manifest).
*
* Tree-shaking strategy
* ─────────────────────
* esbuild `build()` is run once per lib file with a synthetic re-export entry
* that names only the symbols actually imported by islands. Unused exports and
* dead internal helpers are eliminated before hashing.
*/
/** Extract all `/_nexus/lib/…` specifiers from generated island client code. */
export declare function extractLibImports(code: string): string[];
/**
* Rewrite `/_nexus/lib/X.js` → `/_nexus/lib/X.<hash>.js` using the manifest
* from `bundleIslandLib`. Covers `from`, `import()`, and side-effect `import ""`.
* Used for route `.client.js` and for the emitted `output/lib/*.js` chunks so
* cross-chunk /_nexus/lib URLs match hashed filenames.
*/
export declare function applyLibManifestToClientCode(code: string, manifest: ReadonlyMap<string, string>): string;
export interface BundleIslandLibResult {
/** Number of lib files written to `<outDir>/lib/`. */
files: number;
/**
* Maps canonical rel path → hashed rel path.
* e.g. `'utils/date.js'` → `'utils/date.a1b2c3d4.js'`
*/
manifest: Map<string, string>;
}
/**
* Bundle all `$lib` files imported by island client scripts into
* `<outDir>/lib/`, tree-shaking unused exports and content-hashing each file.
*/
export declare function bundleIslandLib(appRoot: string, outDir: string, clientCodes: string[]): Promise<BundleIslandLibResult>;
//# sourceMappingURL=bundle-island-lib.d.ts.map
{"version":3,"file":"bundle-island-lib.d.ts","sourceRoot":"","sources":["../src/bundle-island-lib.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAuBH,gFAAgF;AAChF,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAQxD;AA8PD;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAC1C,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,GACpC,MAAM,CAkCR;AAkCD,MAAM,WAAW,qBAAqB;IACpC,sDAAsD;IACtD,KAAK,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC/B;AAED;;;GAGG;AACH,wBAAsB,eAAe,CACnC,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,EAAE,GACpB,OAAO,CAAC,qBAAqB,CAAC,CA+GhC"}
/**
* Bundle $lib dependencies for client islands into .nexus/output/lib/.
*
* Content-hashing strategy
* ────────────────────────
* Each bundled lib file is content-hashed (SHA-1, 8 hex chars) and written as
* `<name>.<hash>.js` (e.g. `utils/date.a1b2c3d4.js`). A manifest that maps
* canonical rel paths to their hashed counterparts is returned so that callers
* can rewrite island import URLs after the fact.
*
* Two-pass build flow (bin.ts)
* ────────────────────────────
* 1. compile() produces island codes with plain `/_nexus/lib/utils/date.js` URLs.
* 2. bundleIslandLib() hashes every lib file → returns manifest.
* 3. applyLibManifestToClientCode() rewrites `/_nexus/lib/…` specifiers in route
* `.client.js` files and in the emitted `output/lib/*.js` bundles (cross-chunk
* imports must use the same content-hashed filenames as the manifest).
*
* Tree-shaking strategy
* ─────────────────────
* esbuild `build()` is run once per lib file with a synthetic re-export entry
* that names only the symbols actually imported by islands. Unused exports and
* dead internal helpers are eliminated before hashing.
*/
import { createHash } from 'node:crypto';
import { statSync } from 'node:fs';
import { mkdir, readFile, readdir, writeFile } from 'node:fs/promises';
import { basename, dirname, join, normalize, relative, resolve as pathResolve } from 'node:path';
const LIB_URL_PREFIX = '/_nexus/lib/';
const PROBE_SUFFIXES = [
'',
'.js',
'/index.js',
'.ts',
'/index.ts',
'.tsx',
'/index.tsx',
'.mts',
'/index.mts',
];
// ─── Resolution helpers ───────────────────────────────────────────────────────
/** Extract all `/_nexus/lib/…` specifiers from generated island client code. */
export function extractLibImports(code) {
const results = [];
const re = /from\s*['"](\/_nexus\/lib\/[^'"]+)['"]/gu;
let m;
while ((m = re.exec(code)) !== null) {
if (m[1])
results.push(m[1]);
}
return results;
}
/**
* Resolve a relative path to an actual file inside `nexusLibDir`.
* Uses `statSync` to confirm the candidate is a file (not a directory),
* probing `.js`, `/index.js`, `.ts`, `/index.ts` etc.
*/
function resolveInNexusLib(nexusLibDir, rel) {
const base = join(nexusLibDir, rel);
const baseNoTs = base.replace(/\.(ts|tsx|mts)$/u, '');
const probeBase = baseNoTs !== base ? baseNoTs : base;
const seen = new Set();
for (const suffix of PROBE_SUFFIXES) {
const candidate = suffix === '' ? base : probeBase + suffix;
if (seen.has(candidate))
continue;
seen.add(candidate);
try {
if (statSync(candidate).isFile())
return candidate;
}
catch { /* not found or not a file */ }
}
return null;
}
/**
* Stable deduplication key: path relative to nexusLibDir, always `.js`.
* `'utils/date'`, `'utils/date.ts'`, `'utils/date.js'` all map to the same key.
*/
function canonicalRel(nexusLibDir, absFile) {
return relative(nexusLibDir, absFile).replace(/\.(ts|tsx|mts)$/u, '.js');
}
// ─── Content hashing ─────────────────────────────────────────────────────────
function contentHash(text) {
return createHash('sha1').update(text).digest('hex').slice(0, 8);
}
/** `'utils/date.js'` + hash → `'utils/date.a1b2c3d4.js'` */
function insertHash(canonRel, hash) {
return canonRel.replace(/\.js$/u, `.${hash}.js`);
}
/**
* `import` … `from '…$lib…'` in generated island code must be resolved **per
* import statement**. A single regex like
* `import([\\s\\S]*?)from '…lib…'` can span from the *first* `import` on the
* file to the *last* `from` before `/_nexus/lib/`, accidentally swallowing
* the island runtime import (`import { createIsland, … } from
* '/_nexus/rt/island.js'`) and attributing `createIsland` to `auth-client.js`.
* We anchor each $lib `from` to the nearest preceding statement and take only
* the binding that belongs to a real `import` (not `export … from`).
*/
function collectLibUsage(codes, nexusLibDir) {
const result = new Map();
function getOrCreate(canon) {
let u = result.get(canon);
if (!u) {
u = { named: new Set(), hasDefault: false, hasNamespace: false };
result.set(canon, u);
}
return u;
}
function addClauseToUsage(usage, clause) {
if (clause.includes('*')) {
usage.hasNamespace = true;
return;
}
const braceMatch = /\{([^}]*)\}/.exec(clause);
if (braceMatch) {
const body = braceMatch[1];
if (body) {
for (const part of body.split(',')) {
const trimmed = part.trim();
if (!trimmed || trimmed.startsWith('type '))
continue;
const first = trimmed.split(/\s+as\s+/u)[0];
const name = first ? first.trim() : '';
if (name && /^[a-zA-Z_$]/.test(name))
usage.named.add(name);
}
}
}
const beforeBrace = clause.replace(/\{[^}]*\}/u, '').trim();
if (beforeBrace && /^[a-zA-Z_$][\w$]*$/.test(beforeBrace))
usage.hasDefault = true;
}
for (const code of codes) {
// Every `from` that loads `/_nexus/lib/…` (string may be in static import or
// re-export — we only keep real `import` statements for island client code).
const fromRe = /from\s*['"]\/_nexus\/lib\/[^'"]+['"]/g;
let m;
while ((m = fromRe.exec(code)) !== null) {
const fromIdx = m.index;
const mUrl = m[0].match(/['"](\/_nexus\/lib\/[^'"]+)['"]/u);
const spec = mUrl?.[1];
if (!spec)
continue;
const semi = code.lastIndexOf(';', fromIdx);
const stmt0 = semi < 0 ? 0 : semi + 1;
const preFrom = code.slice(stmt0, fromIdx);
if (!/^\s*import\b/.test(preFrom))
continue;
if (/^\s*import\s+type\s+/.test(preFrom))
continue;
const im = /^\s*import\s+([\s\S]+?)\s*$/m.exec(preFrom);
if (!im)
continue;
const clause = im[1] ?? '';
// Another `import` or ` from '` inside the binding = straddled a prior
// `import … from '…'`, e.g. island runtime + $lib in one bogus span.
if (/\bimport\s/.test(clause))
continue;
if (/\bfrom\s*['"]/.test(clause))
continue;
if (clause.includes(';'))
continue;
if (/^type\s/.test(clause.trim()))
continue;
const rel = spec.slice(LIB_URL_PREFIX.length);
const resolved = resolveInNexusLib(nexusLibDir, rel);
if (!resolved)
continue;
const canon = canonicalRel(nexusLibDir, resolved);
const usage = getOrCreate(canon);
addClauseToUsage(usage, clause);
}
}
return result;
}
/**
* BFS: island code only lists direct $lib imports; .nexus/lib files can import
* other lib modules ($lib/… or relative). Those modules must be included in
* the esbuild list (and built with a permissive re-export) or chunk graphs break.
*/
/** `foo.abcd1234.js` -> `foo.js` (content-hashed nexus lib names). */
function stripNexusLibContentHashInPath(rel) {
return rel
.replace(/\.[a-f0-9]{8}\.js$/iu, '.js')
.replace(/\.(ts|tsx|mts)$/u, '.js');
}
function nexusUrlImportToRelative(spec) {
if (spec.startsWith(LIB_URL_PREFIX)) {
return stripNexusLibContentHashInPath(spec.slice(LIB_URL_PREFIX.length));
}
return null;
}
function extractLocalLibSpecifiersFromSource(source) {
const out = [];
const reFrom = /\bfrom\s*['"]((?:\$lib\/[^'"]+)|(?:\.\.?\/?[^'"]*))['"]/gu;
const reExp = /export\s*(?:\*\s*|\{[^}]*\})\s*from\s*['"]((?:\$lib\/[^'"]+)|(?:\.\.?\/?[^'"]*))['"]/gu;
const reDyn = /\bimport\s*\(\s*['"]((?:\$lib\/[^'"]+)|(?:\.\.?\/?[^'"]*))['"]\s*\)/gu;
const reNex = /['"]((\/_nexus\/lib\/[^'"]+))['"]/gu; // from / import() / import "" / export … from
for (const re of [reFrom, reExp, reDyn, reNex]) {
re.lastIndex = 0;
let m;
while ((m = re.exec(source)) !== null) {
const s = m[1];
if (s) {
if (s.startsWith(LIB_URL_PREFIX)) {
out.push(nexusUrlImportToRelative(s) ?? s);
}
else {
out.push(s);
}
}
}
}
return [...new Set(out)];
}
function specToCanonicalKey(nexusLibDir, fromDir, spec) {
if (spec.startsWith('$lib/')) {
const abs = resolveInNexusLib(nexusLibDir, spec.slice(5));
return abs ? canonicalRel(nexusLibDir, abs) : null;
}
if (spec.startsWith('.')) {
const abs = pathResolve(fromDir, spec);
const n = relative(nexusLibDir, abs);
if (n.startsWith('..') || n === '')
return null;
const nSlash = n.replace(/\\/g, '/');
const absProbe = resolveInNexusLib(nexusLibDir, nSlash) ?? resolveInNexusLib(nexusLibDir, nSlash.replace(/\.(ts|tsx|mts|js|mjs)$/u, ''));
return absProbe ? canonicalRel(nexusLibDir, absProbe) : null;
}
if (spec.startsWith(LIB_URL_PREFIX)) {
const rel = nexusUrlImportToRelative(spec);
if (!rel)
return null;
const abs = resolveInNexusLib(nexusLibDir, rel);
return abs ? canonicalRel(nexusLibDir, abs) : null;
}
// Strips from `from '/_nexus/lib/foo.js'`, e.g. `auth/client.js`
{
const abs = resolveInNexusLib(nexusLibDir, spec);
return abs ? canonicalRel(nexusLibDir, abs) : null;
}
}
async function expandLibUsageWithTransitiveDeps(nexusLibDir, initial) {
const out = new Map(initial);
const queue = [...out.keys()];
while (queue.length > 0) {
const canon = queue.shift();
const abs = resolveInNexusLib(nexusLibDir, canon);
if (!abs)
continue;
let source;
try {
source = await readFile(abs, 'utf-8');
}
catch {
continue;
}
const fromDir = dirname(abs);
for (const spec of extractLocalLibSpecifiersFromSource(source)) {
const key = specToCanonicalKey(nexusLibDir, fromDir, spec);
if (!key)
continue;
if (out.has(key))
continue;
out.set(key, { named: new Set(), hasDefault: false, hasNamespace: true });
queue.push(key);
}
}
return out;
}
function buildSyntheticEntry(actualFile, usage) {
const path = JSON.stringify(actualFile);
if (usage.hasNamespace) {
const lines = [`export * from ${path};`];
if (usage.hasDefault)
lines.push(`export { default } from ${path};`);
return lines.join('\n');
}
const reExports = [...usage.named];
if (usage.hasDefault)
reExports.unshift('default');
if (reExports.length === 0)
return null;
return `export { ${reExports.join(', ')} } from ${path};`;
}
// ─── Post-processing helper ───────────────────────────────────────────────────
/**
* Rewrite `/_nexus/lib/X.js` → `/_nexus/lib/X.<hash>.js` using the manifest
* from `bundleIslandLib`. Covers `from`, `import()`, and side-effect `import ""`.
* Used for route `.client.js` and for the emitted `output/lib/*.js` chunks so
* cross-chunk /_nexus/lib URLs match hashed filenames.
*/
export function applyLibManifestToClientCode(code, manifest) {
if (manifest.size === 0)
return code;
const toHashed = (spec) => {
if (!spec.startsWith(LIB_URL_PREFIX))
return null;
const rel = spec.slice(LIB_URL_PREFIX.length);
const jsRel = rel.replace(/\.(ts|tsx|mts)$/u, '.js');
const hashed = manifest.get(jsRel) ?? manifest.get(`${rel}.js`) ?? manifest.get(rel);
return hashed ? `${LIB_URL_PREFIX}${hashed}` : null;
};
let out = code;
out = out.replace(/from\s*['"](\/_nexus\/lib\/[^'"]+)['"]/gu, (full, spec) => {
const h = toHashed(spec);
return h && h !== spec ? `from ${JSON.stringify(h)}` : full;
});
out = out.replace(/import\s*\(\s*['"](\/_nexus\/lib\/[^'"]+)['"]\s*\)/gu, (full, spec) => {
const h = toHashed(spec);
return h && h !== spec ? `import(${JSON.stringify(h)})` : full;
});
out = out.replace(/import\s*['"](\/_nexus\/lib\/[^'"]+)['"]/gu, (full, spec) => {
const h = toHashed(spec);
return h && h !== spec ? `import ${JSON.stringify(h)}` : full;
});
return out;
}
async function applyLibManifestToAllLibOutputFiles(libOutDir, manifest) {
if (manifest.size === 0)
return;
async function walk(dir) {
const out = [];
const es = await readdir(dir, { withFileTypes: true });
for (const e of es) {
const p = join(dir, e.name);
if (e.isDirectory()) {
out.push(...(await walk(p)));
}
else if (e.isFile() && e.name.endsWith('.js') && !e.name.endsWith('.map')) {
out.push(p);
}
}
return out;
}
const files = await walk(libOutDir);
for (const f of files) {
const t = await readFile(f, 'utf-8');
const nxt = applyLibManifestToClientCode(t, manifest);
if (nxt !== t) {
await writeFile(f, nxt, 'utf-8');
}
}
}
/**
* Bundle all `$lib` files imported by island client scripts into
* `<outDir>/lib/`, tree-shaking unused exports and content-hashing each file.
*/
export async function bundleIslandLib(appRoot, outDir, clientCodes) {
if (clientCodes.length === 0)
return { files: 0, manifest: new Map() };
const root = normalize(appRoot);
const nexusLibDir = join(root, '.nexus', 'lib');
const libOutDir = join(outDir, 'lib');
const collected = collectLibUsage(clientCodes, nexusLibDir);
if (collected.size === 0)
return { files: 0, manifest: new Map() };
const usageMap = await expandLibUsageWithTransitiveDeps(nexusLibDir, collected);
let esbuildBuild = null;
try {
const mod = await import('esbuild');
esbuildBuild = mod.build;
}
catch { /* esbuild not available — use fallback */ }
if (!esbuildBuild) {
return bundleIslandLibFallback(nexusLibDir, libOutDir, usageMap);
}
const build = esbuildBuild;
const manifest = new Map();
const tasks = [...usageMap.entries()].map(async ([canon, usage]) => {
const actualFile = resolveInNexusLib(nexusLibDir, canon);
if (!actualFile)
return false;
const syntheticEntry = buildSyntheticEntry(actualFile, usage);
if (!syntheticEntry)
return false;
// Use a deterministic outfile path for esbuild to name the .map file.
// We use write:false to capture content before writing hashed filenames.
const tmpOutPath = join(libOutDir, canon);
await mkdir(dirname(tmpOutPath), { recursive: true });
let outputFiles;
try {
const result = await build({
stdin: {
contents: syntheticEntry,
resolveDir: dirname(actualFile),
loader: 'js',
},
bundle: true,
treeShaking: true,
minify: true,
sourcemap: true,
format: 'esm',
outfile: tmpOutPath,
write: false,
plugins: [
{
name: 'nexus-lib-resolver',
setup(b) {
b.onResolve({ filter: /^\$lib\// }, args => {
const rel = args.path.slice('$lib/'.length);
const resolved = resolveInNexusLib(nexusLibDir, rel);
return resolved
? { path: resolved }
: { path: args.path, external: true };
});
b.onResolve({ filter: /^\/_nexus\// }, args => ({
path: args.path,
external: true,
}));
},
},
],
});
outputFiles = result.outputFiles;
}
catch {
return false;
}
const jsFile = outputFiles.find(f => !f.path.endsWith('.map'));
const mapFile = outputFiles.find(f => f.path.endsWith('.map'));
if (!jsFile)
return false;
// Hash the JS content to produce the versioned filename.
const hash = contentHash(jsFile.text);
const hashedCanon = insertHash(canon, hash);
const hashedPath = join(libOutDir, hashedCanon);
// Fix the sourceMappingURL comment: `date.js.map` → `date.<hash>.js.map`.
const jsText = jsFile.text.replace(/\/\/# sourceMappingURL=.+$/mu, `//# sourceMappingURL=${basename(hashedCanon)}.map`);
await writeFile(hashedPath, jsText, 'utf-8');
if (mapFile) {
// Update the `"file"` field inside the source map JSON.
let mapText = mapFile.text;
try {
const mapJson = JSON.parse(mapText);
mapJson.file = basename(hashedCanon);
mapText = JSON.stringify(mapJson);
}
catch { /* leave unchanged if not valid JSON */ }
await writeFile(`${hashedPath}.map`, mapText, 'utf-8');
}
manifest.set(canon, hashedCanon);
return true;
});
const results = await Promise.all(tasks);
await applyLibManifestToAllLibOutputFiles(libOutDir, manifest);
return { files: results.filter(Boolean).length, manifest };
}
// ─── Fallback (no esbuild) ────────────────────────────────────────────────────
async function bundleIslandLibFallback(nexusLibDir, libOutDir, usageMap) {
const { readFile } = await import('node:fs/promises');
const { resolve } = await import('node:path');
const TRANSITIVE_RE = /from\s*['"](\$lib\/[^'"]+|\.\.?\/[^'"]+)['"]/gu;
const queue = [...usageMap.keys()];
const visited = new Set(queue);
const manifest = new Map();
let written = 0;
while (queue.length > 0) {
const canon = queue.pop();
const srcFile = resolveInNexusLib(nexusLibDir, canon);
if (!srcFile)
continue;
const raw = await readFile(srcFile, 'utf-8');
const fileDir = dirname(srcFile);
const rewritten = raw.replace(TRANSITIVE_RE, (full, spec) => {
let targetFile = null;
if (spec.startsWith('$lib/')) {
targetFile = resolveInNexusLib(nexusLibDir, spec.slice('$lib/'.length));
}
else {
const abs = resolve(fileDir, spec);
const relAbs = relative(nexusLibDir, abs);
if (!relAbs.startsWith('..'))
targetFile = resolveInNexusLib(nexusLibDir, relAbs);
}
if (!targetFile)
return full;
const depCanon = canonicalRel(nexusLibDir, targetFile);
if (!visited.has(depCanon)) {
visited.add(depCanon);
queue.push(depCanon);
}
return `from "${LIB_URL_PREFIX}${depCanon}"`;
});
const hash = contentHash(rewritten);
const hashedCanon = insertHash(canon, hash);
const outPath = join(libOutDir, hashedCanon);
await mkdir(dirname(outPath), { recursive: true });
await writeFile(outPath, rewritten, 'utf-8');
manifest.set(canon, hashedCanon);
written++;
}
await applyLibManifestToAllLibOutputFiles(libOutDir, manifest);
return { files: written, manifest };
}
//# sourceMappingURL=bundle-island-lib.js.map
{"version":3,"file":"bundle-island-lib.js","sourceRoot":"","sources":["../src/bundle-island-lib.ts"],"names":[],"mappings":"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"}
export {};
//# sourceMappingURL=bundle-island-lib.test.d.ts.map
{"version":3,"file":"bundle-island-lib.test.d.ts","sourceRoot":"","sources":["../src/bundle-island-lib.test.ts"],"names":[],"mappings":""}
import { mkdtemp, rm, writeFile, mkdir, readFile } from 'node:fs/promises';
import { join } from 'node:path';
import { tmpdir } from 'node:os';
import { afterEach, beforeEach, describe, expect, it } from 'vitest';
import { applyLibManifestToClientCode, bundleIslandLib } from './bundle-island-lib.js';
describe('applyLibManifestToClientCode', () => {
it('rewrites from, import(), and side-effect import to hashed /_nexus/lib URLs', () => {
const manifest = new Map([
['a.js', 'a.01020304.js'],
]);
const src = `
import { x } from '/_nexus/lib/a.js';
import('/_nexus/lib/a.js');
import '/_nexus/lib/a.js';
`;
const out = applyLibManifestToClientCode(src, manifest);
expect(out).toContain('from "/_nexus/lib/a.01020304.js"');
expect(out).toContain('import("/_nexus/lib/a.01020304.js")');
expect(out).toContain('import "/_nexus/lib/a.01020304.js"');
});
});
describe('bundleIslandLib (integration)', () => {
let root;
beforeEach(async () => {
root = await mkdtemp(join(tmpdir(), 'nexus-bil-'));
});
afterEach(async () => {
await rm(root, { recursive: true, force: true });
});
it('discovers transitive $lib/relative deps and rewrites unhashed /_nexus/lib refs in per-chunk output', async () => {
const nexusLib = join(root, '.nexus', 'lib');
const outDir = join(root, '.nexus', 'output');
await mkdir(nexusLib, { recursive: true });
await writeFile(join(nexusLib, 'dep.js'), 'export const z = 1;\n', 'utf-8');
await writeFile(join(nexusLib, 'entry.js'), "import { z } from '/_nexus/lib/dep.js';\nexport const a = z;\n", 'utf-8');
const island = "import { a } from '/_nexus/lib/entry.js';\nconsole.log(a);\n";
const { manifest, files } = await bundleIslandLib(root, outDir, [island]);
expect(files).toBeGreaterThanOrEqual(2);
expect(manifest.has('dep.js')).toBe(true);
expect(manifest.has('entry.js')).toBe(true);
const entryHashed = manifest.get('entry.js');
const depHashed = manifest.get('dep.js');
expect(entryHashed).toBeDefined();
expect(depHashed).toBeDefined();
const entryPath = join(outDir, 'lib', entryHashed);
const text = await readFile(entryPath, 'utf-8');
// Post-pass: internal ref to dep must use the hashed dep filename, not raw dep.js
expect(text).toContain(`/_nexus/lib/${depHashed ?? ''}`);
expect(text).not.toMatch(/['"]\/_nexus\/lib\/dep\.js['"]/);
});
it('does not attribute /_nexus/rt/island.js bindings to a $lib file (0.9.11 collectLibUsage)', async () => {
const nexusLib = join(root, '.nexus', 'lib');
const outDir = join(root, '.nexus', 'output');
await mkdir(nexusLib, { recursive: true });
await writeFile(join(nexusLib, 'auth-client.js'), 'export const AUTH_KEY = 1; export const readStoredAuth = () => null; export const AUTH_CHANGED = "e";\n', 'utf-8');
const island = `import { createIsland, $state, $derived, $effect, $pretext } from '/_nexus/rt/island.js';
import { readStoredAuth, AUTH_KEY } from '/_nexus/lib/auth-client.js';
export function mount() { return 0; }
`;
const { files } = await bundleIslandLib(root, outDir, [island]);
expect(files).toBe(1);
});
});
//# sourceMappingURL=bundle-island-lib.test.js.map
{"version":3,"file":"bundle-island-lib.test.js","sourceRoot":"","sources":["../src/bundle-island-lib.test.ts"],"names":[],"mappings":"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"}
/**
* Compile `src/lib/**\/*.ts` → `.nexus/lib/**\/*.js` for production deployment.
*
* `nexus build` calls this before writing route server modules so that the
* absolute `file://…/.nexus/lib/*.js` URLs embedded in those modules resolve at
* runtime without a TypeScript loader.
*
* Uses TypeScript's `transpileModule` (no type-checking, pure syntax transform)
* so it is fast and needs no tsconfig in the user's project.
*/
/**
* Transpile every `.ts` / `.tsx` / `.mts` file under `<appRoot>/src/lib/` to
* ESM JavaScript and write the output to `<appRoot>/.nexus/lib/`.
*
* Returns the number of files compiled.
*/
export declare function compileLib(appRoot: string): Promise<{
files: number;
}>;
//# sourceMappingURL=compile-lib.d.ts.map
{"version":3,"file":"compile-lib.d.ts","sourceRoot":"","sources":["../src/compile-lib.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AA4BH;;;;;GAKG;AACH,wBAAsB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAsC5E"}
/**
* Compile `src/lib/**\/*.ts` → `.nexus/lib/**\/*.js` for production deployment.
*
* `nexus build` calls this before writing route server modules so that the
* absolute `file://…/.nexus/lib/*.js` URLs embedded in those modules resolve at
* runtime without a TypeScript loader.
*
* Uses TypeScript's `transpileModule` (no type-checking, pure syntax transform)
* so it is fast and needs no tsconfig in the user's project.
*/
import ts from 'typescript';
import { existsSync } from 'node:fs';
import { mkdir, readdir, readFile, writeFile } from 'node:fs/promises';
import { dirname, join, relative } from 'node:path';
const TS_SOURCE_RE = /\.(ts|tsx|mts)$/u;
async function walkTsFiles(dir) {
const out = [];
let entries;
try {
entries = await readdir(dir, { withFileTypes: true });
}
catch {
return out;
}
for (const e of entries) {
const p = join(dir, e.name);
if (e.isDirectory()) {
out.push(...(await walkTsFiles(p)));
}
else if (TS_SOURCE_RE.test(e.name) && !e.name.endsWith('.d.ts')) {
out.push(p);
}
}
return out;
}
/**
* Transpile every `.ts` / `.tsx` / `.mts` file under `<appRoot>/src/lib/` to
* ESM JavaScript and write the output to `<appRoot>/.nexus/lib/`.
*
* Returns the number of files compiled.
*/
export async function compileLib(appRoot) {
const libDir = join(appRoot, 'src', 'lib');
if (!existsSync(libDir))
return { files: 0 };
const outDir = join(appRoot, '.nexus', 'lib');
await mkdir(outDir, { recursive: true });
const tsFiles = await walkTsFiles(libDir);
if (tsFiles.length === 0)
return { files: 0 };
const compilerOptions = {
target: ts.ScriptTarget.ESNext,
module: ts.ModuleKind.ESNext,
moduleResolution: ts.ModuleResolutionKind.Bundler,
experimentalDecorators: true,
useDefineForClassFields: true,
verbatimModuleSyntax: false,
// No type-checking — pure syntax transform for speed.
isolatedModules: true,
// Don't emit `.d.ts` — these are runtime files only.
declaration: false,
};
for (const tsFile of tsFiles) {
const source = await readFile(tsFile, 'utf-8');
const result = ts.transpileModule(source, { compilerOptions });
let js = result.outputText;
// transpileModule with Bundler resolution keeps .ts extensions in relative
// imports. Rewrite them to .js so browsers can resolve them at runtime.
js = js.replace(/from\s+(['"])\.([^'"]+)\.tsx?\1/g, 'from $1.$2.js$1');
js = js.replace(/import\s+(['"])\.([^'"]+)\.tsx?\1/g, 'import $1.$2.js$1');
const relPath = relative(libDir, tsFile);
const outPath = join(outDir, relPath.replace(TS_SOURCE_RE, '.js'));
await mkdir(dirname(outPath), { recursive: true });
await writeFile(outPath, js, 'utf-8');
}
return { files: tsFiles.length };
}
//# sourceMappingURL=compile-lib.js.map
{"version":3,"file":"compile-lib.js","sourceRoot":"","sources":["../src/compile-lib.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACvE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAEpD,MAAM,YAAY,GAAG,kBAAkB,CAAC;AAExC,KAAK,UAAU,WAAW,CAAC,GAAW;IACpC,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,IAAI,OAAO,CAAC;IACZ,IAAI,CAAC;QACH,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IACxD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,GAAG,CAAC;IACb,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;QAC5B,IAAI,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;YACpB,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACtC,CAAC;aAAM,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YAClE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACd,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,OAAe;IAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IAC3C,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;QAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;IAE7C,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC9C,MAAM,KAAK,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAEzC,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,MAAM,CAAC,CAAC;IAC1C,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;IAE9C,MAAM,eAAe,GAAuB;QAC1C,MAAM,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM;QAC9B,MAAM,EAAE,EAAE,CAAC,UAAU,CAAC,MAAM;QAC5B,gBAAgB,EAAE,EAAE,CAAC,oBAAoB,CAAC,OAAO;QACjD,sBAAsB,EAAE,IAAI;QAC5B,uBAAuB,EAAE,IAAI;QAC7B,oBAAoB,EAAE,KAAK;QAC3B,sDAAsD;QACtD,eAAe,EAAE,IAAI;QACrB,qDAAqD;QACrD,WAAW,EAAE,KAAK;KACnB,CAAC;IAEF,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC/C,MAAM,MAAM,GAAG,EAAE,CAAC,eAAe,CAAC,MAAM,EAAE,EAAE,eAAe,EAAE,CAAC,CAAC;QAC/D,IAAI,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC;QAC3B,2EAA2E;QAC3E,wEAAwE;QACxE,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,kCAAkC,EAAE,iBAAiB,CAAC,CAAC;QACvE,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,oCAAoC,EAAE,mBAAmB,CAAC,CAAC;QAC3E,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACzC,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC,CAAC;QACnE,MAAM,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACnD,MAAM,SAAS,CAAC,OAAO,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;IACxC,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;AACnC,CAAC"}
export {};
//# sourceMappingURL=css-scope.test.d.ts.map
{"version":3,"file":"css-scope.test.d.ts","sourceRoot":"","sources":["../src/css-scope.test.ts"],"names":[],"mappings":""}
import { describe, expect, it } from 'vitest';
import { scopeCSS, scopeTemplate, componentHash } from './css-scope.js';
describe('componentHash', () => {
it('produces a stable 6-char hex hash', () => {
const h1 = componentHash('/src/routes/+layout.nx');
const h2 = componentHash('/src/routes/+layout.nx');
expect(h1).toBe(h2);
expect(h1).toMatch(/^[0-9a-f]{6}$/);
});
});
describe('scopeCSS', () => {
it('scopes regular class selectors', () => {
const result = scopeCSS('.card { color: red; }', '/src/test.nx');
expect(result.css).toContain(`[data-nx="${result.hash}"] .card, [data-nx="${result.hash}"].card`);
expect(result.css).toContain('color: red');
expect(result.css).toContain('@layer nexus.scoped');
expect(result.classes.has('card')).toBe(true);
});
it('does not scope :root', () => {
const result = scopeCSS(':root { --x: 1; }', '/src/test.nx');
expect(result.css).toContain(':root { --x: 1; }');
expect(result.css).not.toContain(`[data-nx="${result.hash}"]:root`);
});
it('does not scope html, body, or *', () => {
const result = scopeCSS('html { font-size: 16px; }\nbody { margin: 0; }\n* { box-sizing: border-box; }', '/src/test.nx');
expect(result.css).toContain('html { font-size: 16px; }');
expect(result.css).toContain('body { margin: 0; }');
expect(result.css).toContain('* { box-sizing: border-box; }');
expect(result.css).not.toContain(`[data-nx="${result.hash}"] html`);
expect(result.css).not.toContain(`[data-nx="${result.hash}"] body`);
expect(result.css).not.toContain(`[data-nx="${result.hash}"] *`);
});
it('passes through @import rules', () => {
const result = scopeCSS("@import url('fonts.css');\n.card { color: red; }", '/src/test.nx');
expect(result.css).toContain("@import url('fonts.css');");
expect(result.css).toContain(`[data-nx="${result.hash}"] .card, [data-nx="${result.hash}"].card`);
});
it('passes through @charset and @namespace', () => {
const result = scopeCSS('@charset "UTF-8";\n@namespace svg url(http://www.w3.org/2000/svg);\n.card {}', '/src/test.nx');
expect(result.css).toContain('@charset "UTF-8";');
expect(result.css).toContain('@namespace svg url(http://www.w3.org/2000/svg);');
});
it('unwraps full :global(...) selectors without scoping', () => {
const result = scopeCSS(':global(.external) { color: blue; }', '/src/test.nx');
expect(result.css).toContain('.external { color: blue; }');
expect(result.css).not.toContain('[data-nx=');
});
it('unwraps partial :global(...) while scoping the rest', () => {
const result = scopeCSS('.card :global(.external) { color: blue; }', '/src/test.nx');
expect(result.css).toContain(`[data-nx="${result.hash}"] .card .external, [data-nx="${result.hash}"].card .external`);
expect(result.css).not.toContain(':global(');
});
it('does not scope @keyframes', () => {
const result = scopeCSS('@keyframes fade { from { opacity: 0; } to { opacity: 1; } }', '/src/test.nx');
expect(result.css).toContain('@keyframes fade {');
expect(result.css).not.toContain('[data-nx=');
});
it('scopes inside @media', () => {
const result = scopeCSS('@media (max-width: 600px) { .card { color: red; } }', '/src/test.nx');
expect(result.css).toContain('@media (max-width: 600px) {');
expect(result.css).toContain(`[data-nx="${result.hash}"] .card`);
});
});
describe('scopeTemplate', () => {
it('injects data-nx into root elements', () => {
const html = '<div class="card">Hello</div>';
const out = scopeTemplate(html, 'a1b2c3');
expect(out).toContain('data-nx="a1b2c3"');
});
it('skips html, head, body but scopes inner elements', () => {
const html = '<html><head></head><body><div>Hello</div></body></html>';
const out = scopeTemplate(html, 'a1b2c3');
expect(out).not.toContain('<html data-nx=');
expect(out).not.toContain('<body data-nx=');
expect(out).toContain('<div data-nx="a1b2c3">Hello</div>');
});
it('handles self-closing tags', () => {
const html = '<img src="x.jpg" />';
const out = scopeTemplate(html, 'a1b2c3');
expect(out).toContain('data-nx="a1b2c3"');
});
});
//# sourceMappingURL=css-scope.test.js.map
{"version":3,"file":"css-scope.test.js","sourceRoot":"","sources":["../src/css-scope.test.ts"],"names":[],"mappings":"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"}
import type { CompileError, CompileWarning, SourceLocation } from './types.js';
/** Extract a source snippet around a given line for framing. */
export declare function extractFrame(source: string, loc: SourceLocation, padding?: number): string;
/** Pretty-print a CompileError for terminal output. */
export declare function formatCompileError(err: CompileError, source?: string): string;
/** Pretty-print a CompileWarning for terminal output. */
export declare function formatCompileWarning(warn: CompileWarning, file: string, source?: string): string;
/** Format an array of warnings into a single string. */
export declare function formatWarnings(warnings: CompileWarning[], file: string, source?: string): string;
//# sourceMappingURL=error-formatter.d.ts.map
{"version":3,"file":"error-formatter.d.ts","sourceRoot":"","sources":["../src/error-formatter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAa/E,gEAAgE;AAChE,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,cAAc,EAAE,OAAO,SAAI,GAAG,MAAM,CAkBrF;AAED,uDAAuD;AACvD,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,YAAY,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAiB7E;AAED,yDAAyD;AACzD,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAkBhG;AAED,wDAAwD;AACxD,wBAAgB,cAAc,CAAC,QAAQ,EAAE,cAAc,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAEhG"}
const c = {
reset: '\x1b[0m',
bold: '\x1b[1m',
dim: '\x1b[2m',
red: '\x1b[31m',
green: '\x1b[32m',
yellow: '\x1b[33m',
cyan: '\x1b[36m',
gray: '\x1b[90m',
};
/** Extract a source snippet around a given line for framing. */
export function extractFrame(source, loc, padding = 2) {
const lines = source.split('\n');
const start = Math.max(0, loc.line - 1 - padding);
const end = Math.min(lines.length, loc.line + padding);
const out = [];
const gutterWidth = String(end).length;
for (let i = start; i < end; i++) {
const lineNum = i + 1;
const isTarget = lineNum === loc.line;
const gutter = `${isTarget ? c.red : c.gray}${String(lineNum).padStart(gutterWidth)}${c.reset}`;
out.push(` ${gutter} ${c.dim}|${c.reset} ${lines[i] ?? ''}`);
if (isTarget) {
const caret = ' '.repeat(loc.column) + c.red + '^' + c.reset;
out.push(` ${' '.repeat(gutterWidth)} ${c.dim}|${c.reset} ${caret}`);
}
}
return out.join('\n');
}
/** Pretty-print a CompileError for terminal output. */
export function formatCompileError(err, source) {
const lines = [
` ${c.red}${c.bold}✖ ${err.code}${c.reset} ${err.message}`,
` ${c.gray}${err.file}${err.loc ? `:${err.loc.line}:${err.loc.column}` : ''}${c.reset}`,
];
if (err.frame) {
lines.push('', err.frame);
}
else if (source && err.loc) {
lines.push('', extractFrame(source, err.loc));
}
if (err.hint) {
lines.push('', ` ${c.cyan}Hint: ${err.hint}${c.reset}`);
}
return lines.join('\n');
}
/** Pretty-print a CompileWarning for terminal output. */
export function formatCompileWarning(warn, file, source) {
const isError = warn.severity === 'error';
const color = isError ? c.red : c.yellow;
const prefix = isError ? '✖' : '⚠';
const lines = [
` ${color}${prefix} ${warn.code ?? 'NX-WARN'}${c.reset} ${warn.message}`,
` ${c.gray}${file}${warn.loc ? `:${warn.loc.line}:${warn.loc.column}` : ''}${c.reset}`,
];
if (source && warn.loc) {
lines.push('', extractFrame(source, warn.loc, 1));
}
if (warn.hint) {
lines.push(` ${c.cyan}Hint: ${warn.hint}${c.reset}`);
}
return lines.join('\n');
}
/** Format an array of warnings into a single string. */
export function formatWarnings(warnings, file, source) {
return warnings.map((w) => formatCompileWarning(w, file, source)).join('\n\n');
}
//# sourceMappingURL=error-formatter.js.map
{"version":3,"file":"error-formatter.js","sourceRoot":"","sources":["../src/error-formatter.ts"],"names":[],"mappings":"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"}
export {};
//# sourceMappingURL=index.test.d.ts.map
{"version":3,"file":"index.test.d.ts","sourceRoot":"","sources":["../src/index.test.ts"],"names":[],"mappings":""}
import { describe, it, expect } from 'vitest';
import { compile, formatCompileError, formatCompileWarning, extractFrame, offsetToLineColumn } from './index.js';
import { CompileError } from './types.js';
describe('compile() integration', () => {
it('returns compiled result for valid .nx', () => {
const source = `---\nconst title = 'Hello';\n---\n<h1>{title}</h1>`;
const result = compile(source, 'src/routes/+page.nx');
expect(result.serverCode).toContain('export async function render(ctx)');
expect(result.css).toBeNull();
});
it('includes parser warnings with line:col locations', () => {
const source = `---\nconst x = createAction(async () => {})\n---\n<p>hi</p>`;
const result = compile(source, 'src/routes/+page.nx');
const warn = result.warnings.find((w) => w.code === 'NX-001');
expect(warn).toBeDefined();
expect(warn.message).toContain('use server');
expect(warn.loc).toBeDefined();
expect(warn.loc.line).toBeGreaterThanOrEqual(1);
});
it('includes guard warnings for secrets in client scripts', () => {
const source = `<script>\n const key = process.env.API_KEY;\n</script>\n<p>hi</p>`;
const result = compile(source, 'src/routes/+page.nx');
const guardWarn = result.warnings.find((w) => w.code?.startsWith('NX-GUARD'));
expect(guardWarn).toBeDefined();
expect(guardWarn.severity).toBe('error');
expect(guardWarn.loc).toBeDefined();
});
it('deduplicates overlapping warnings', () => {
const source = `<script>\n const key = process.env.API_KEY;\n</script>\n<p>hi</p>`;
const result = compile(source, 'src/routes/+page.nx');
const codes = result.warnings.map((w) => `${w.code}:${w.loc?.line ?? 0}`);
expect(new Set(codes).size).toBe(codes.length);
});
it('throws CompileError for unclosed {#if}', () => {
const source = `{#if true}\n <p>hello</p>`;
expect(() => compile(source, 'src/routes/+page.nx')).toThrow(CompileError);
try {
compile(source, 'src/routes/+page.nx');
}
catch (err) {
expect(err).toBeInstanceOf(CompileError);
expect(err.code).toBe('NX-101');
expect(err.file).toBe('src/routes/+page.nx');
expect(err.loc).toBeDefined();
expect(err.hint).toContain('matching');
}
});
it('throws CompileError for unclosed {#each}', () => {
const source = `{#each items as item}\n <p>{item}</p>`;
expect(() => compile(source, 'src/routes/+page.nx')).toThrow(CompileError);
try {
compile(source, 'src/routes/+page.nx');
}
catch (err) {
expect(err).toBeInstanceOf(CompileError);
expect(err.code).toBe('NX-104');
}
});
it('throws CompileError for malformed {#each} syntax', () => {
const source = `{#each items}\n <p>no alias</p>\n{/each}`;
expect(() => compile(source, 'src/routes/+page.nx')).toThrow(CompileError);
try {
compile(source, 'src/routes/+page.nx');
}
catch (err) {
expect(err).toBeInstanceOf(CompileError);
expect(err.code).toBe('NX-103');
expect(err.hint).toContain('as item');
}
});
});
describe('offsetToLineColumn', () => {
it('returns line 1 col 0 for offset 0', () => {
expect(offsetToLineColumn('abc', 0)).toEqual({ line: 1, column: 0 });
});
it('counts newlines correctly', () => {
const source = 'line1\nline2\nline3';
expect(offsetToLineColumn(source, 6)).toEqual({ line: 2, column: 0 });
expect(offsetToLineColumn(source, 12)).toEqual({ line: 3, column: 0 });
});
it('handles empty string', () => {
expect(offsetToLineColumn('', 0)).toEqual({ line: 1, column: 0 });
});
});
describe('extractFrame', () => {
it('shows source snippet with caret', () => {
const source = 'line1\nline2\nline3';
const frame = extractFrame(source, { line: 2, column: 1 }, 1);
expect(frame).toContain('line2');
expect(frame).toContain('^');
});
});
describe('formatCompileError', () => {
it('includes code, message, file, and hint', () => {
const err = new CompileError({
code: 'NX-999',
message: 'Something broke',
file: 'src/routes/+page.nx',
loc: { line: 5, column: 10 },
hint: 'Try fixing it',
});
const formatted = formatCompileError(err);
expect(formatted).toContain('NX-999');
expect(formatted).toContain('Something broke');
expect(formatted).toContain('src/routes/+page.nx:5:10');
expect(formatted).toContain('Try fixing it');
// ANSI colors for DX
expect(formatted).toMatch(/\x1b\[[0-9;]*m/);
});
});
describe('compile() with external islands', () => {
it('preserves external island markup and emits correct data-nexus-component', () => {
const source = `<nexus-island client:load src="$lib/islands/menu.ts"><button>Menu</button></nexus-island>`;
const result = compile(source, 'src/routes/+page.nx', { appRoot: '/app' });
expect(result.serverCode).toContain('data-nexus-component="/_nexus/lib/islands/menu.js"');
expect(result.serverCode).toContain('<button>Menu</button>');
expect(result.serverCode).not.toMatch(/<nexus-island[^>]*\sclient:load/);
});
});
describe('formatCompileWarning', () => {
it('formats warnings with source frame', () => {
const warn = {
code: 'NX-WARN',
severity: 'warning',
message: 'Deprecated pattern',
loc: { line: 2, column: 0 },
hint: 'Use new syntax',
};
const source = 'line1\nold\nline3';
const formatted = formatCompileWarning(warn, 'src/routes/+page.nx', source);
expect(formatted).toContain('Deprecated pattern');
expect(formatted).toContain('Use new syntax');
expect(formatted).toContain('old');
// ANSI colors
expect(formatted).toMatch(/\x1b\[[0-9;]*m/);
});
});
//# sourceMappingURL=index.test.js.map
{"version":3,"file":"index.test.js","sourceRoot":"","sources":["../src/index.test.ts"],"names":[],"mappings":"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"}
export {};
//# sourceMappingURL=parser.test.d.ts.map
{"version":3,"file":"parser.test.d.ts","sourceRoot":"","sources":["../src/parser.test.ts"],"names":[],"mappings":""}
import { describe, expect, it } from 'vitest';
import { parse } from './parser.js';
describe('parse', () => {
it('parses a basic .nx file', () => {
const source = `---
const x = 1;
---
<script>
let count = 0;
</script>
<h1>Hello</h1>
<style>
h1 { color: red; }
</style>
`;
const result = parse(source, '/src/test.nx');
expect(result.frontmatter?.content).toContain('const x = 1;');
expect(result.script?.content).toContain('let count = 0;');
expect(result.style?.content).toContain('h1 { color: red; }');
expect(result.template.content).toContain('<h1>Hello</h1>');
expect(result.template.content).not.toContain('<script>');
expect(result.template.content).not.toContain('<style>');
});
it('parses multiple <script> blocks', () => {
const source = `<script>
let a = 1;
</script>
<div>A</div>
<script>
let b = 2;
</script>
`;
const result = parse(source, '/src/test.nx');
expect(result.script?.content).toContain('let a = 1;');
expect(result.script?.content).toContain('let b = 2;');
});
it('parses multiple <style> blocks', () => {
const source = `<style>
.a { color: red; }
</style>
<div>A</div>
<style>
.b { color: blue; }
</style>
`;
const result = parse(source, '/src/test.nx');
expect(result.style?.content).toContain('.a { color: red; }');
expect(result.style?.content).toContain('.b { color: blue; }');
});
it('parses <style> without a leading newline', () => {
const source = `<style>.x { color: red; }</style>
<div>Hello</div>
`;
const result = parse(source, '/src/test.nx');
expect(result.style?.content).toContain('.x { color: red; }');
});
it('parses <script> without a leading newline', () => {
const source = `<script>let x = 1;</script>
<div>Hello</div>
`;
const result = parse(source, '/src/test.nx');
expect(result.script?.content).toContain('let x = 1;');
});
it('removes all script and style blocks from template', () => {
const source = `<script>let a = 1;</script>
<div>A</div>
<style>.a {}</style>
<script>let b = 2;</script>
<div>B</div>
<style>.b {}</style>
`;
const result = parse(source, '/src/test.nx');
expect(result.template.content).toContain('<div>A</div>');
expect(result.template.content).toContain('<div>B</div>');
expect(result.template.content).not.toContain('<script>');
expect(result.template.content).not.toContain('<style>');
});
it('detects island directives on real tags', () => {
const source = `<div client:load>hello</div>`;
const result = parse(source, '/src/test.nx');
expect(result.islandDirectives).toHaveLength(1);
expect(result.islandDirectives[0]).toMatchObject({ directive: 'client:load', componentName: 'div' });
});
it('ignores client: inside attribute values (false-positive guard)', () => {
const source = `<div data-tip="use client:load for interactivity">hello</div>`;
const result = parse(source, '/src/test.nx');
expect(result.islandDirectives).toHaveLength(0);
});
it('detects client:media with query', () => {
const source = `<div client:media="(max-width: 600px)">hello</div>`;
const result = parse(source, '/src/test.nx');
expect(result.islandDirectives).toHaveLength(1);
expect(result.islandDirectives[0]).toMatchObject({
directive: 'client:media',
componentName: 'div',
mediaQuery: '(max-width: 600px)',
});
});
});
//# sourceMappingURL=parser.test.js.map
{"version":3,"file":"parser.test.js","sourceRoot":"","sources":["../src/parser.test.ts"],"names":[],"mappings":"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"}