@nasti-toolchain/nasti 2.0.0 → 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli.cjs +64 -21
- package/dist/cli.cjs.map +1 -1
- package/dist/cli.js +64 -21
- package/dist/cli.js.map +1 -1
- package/dist/index.cjs +62 -19
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +62 -19
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -2871,7 +2871,7 @@ async function build(inlineConfig = {}) {
|
|
|
2871
2871
|
const startTime = performance.now();
|
|
2872
2872
|
logger.info(
|
|
2873
2873
|
import_picocolors4.default.cyan(`
|
|
2874
|
-
nasti v${"2.0.
|
|
2874
|
+
nasti v${"2.0.1"} `) + import_picocolors4.default.green(`building for ${config.mode}...`)
|
|
2875
2875
|
);
|
|
2876
2876
|
debug4?.(`root: ${config.root}`);
|
|
2877
2877
|
const buildableNames = Object.keys(config.environments).filter(
|
|
@@ -3254,6 +3254,28 @@ async function transformRequest(url, ctx) {
|
|
|
3254
3254
|
if (cleanReqUrl === "/@react-refresh") {
|
|
3255
3255
|
return { code: getReactRefreshRuntimeEsm() };
|
|
3256
3256
|
}
|
|
3257
|
+
if (cleanReqUrl.startsWith("/@modules/") && url.includes("?")) {
|
|
3258
|
+
const idParam = new URLSearchParams(url.slice(url.indexOf("?") + 1)).get("id");
|
|
3259
|
+
let realId = null;
|
|
3260
|
+
let realIdValid = false;
|
|
3261
|
+
try {
|
|
3262
|
+
if (idParam) {
|
|
3263
|
+
realId = import_node_fs8.default.realpathSync(idParam);
|
|
3264
|
+
realIdValid = import_node_fs8.default.statSync(realId).isFile() && (realId.includes(`${import_node_path11.default.sep}node_modules${import_node_path11.default.sep}`) || isUnderRoot(realId, config.root));
|
|
3265
|
+
}
|
|
3266
|
+
} catch {
|
|
3267
|
+
realId = null;
|
|
3268
|
+
realIdValid = false;
|
|
3269
|
+
}
|
|
3270
|
+
if (realId && realIdValid) {
|
|
3271
|
+
const mod2 = await moduleGraph.ensureEntryFromUrl(url);
|
|
3272
|
+
moduleGraph.registerModule(mod2, realId);
|
|
3273
|
+
const code2 = await bundlePackageAsEsm(realId, config.root);
|
|
3274
|
+
const transformResult2 = { code: code2 };
|
|
3275
|
+
mod2.transformResult = transformResult2;
|
|
3276
|
+
return transformResult2;
|
|
3277
|
+
}
|
|
3278
|
+
}
|
|
3257
3279
|
if (cleanReqUrl.startsWith("/@modules/")) {
|
|
3258
3280
|
const spec = cleanReqUrl.slice("/@modules/".length);
|
|
3259
3281
|
const virtual = await loadVirtualModule(spec, ctx);
|
|
@@ -3291,7 +3313,7 @@ async function transformRequest(url, ctx) {
|
|
|
3291
3313
|
const mod = await moduleGraph.ensureEntryFromUrl(url);
|
|
3292
3314
|
moduleGraph.registerModule(mod, filePath);
|
|
3293
3315
|
if (cleanReqUrl.startsWith("/@modules/")) {
|
|
3294
|
-
const code2 = await bundlePackageAsEsm(filePath);
|
|
3316
|
+
const code2 = await bundlePackageAsEsm(filePath, config.root);
|
|
3295
3317
|
const transformResult2 = { code: code2 };
|
|
3296
3318
|
mod.transformResult = transformResult2;
|
|
3297
3319
|
return transformResult2;
|
|
@@ -3354,14 +3376,14 @@ async function loadVirtualModule(spec, ctx) {
|
|
|
3354
3376
|
code = rewriteImports(code, config, anchor);
|
|
3355
3377
|
return { id: resolvedId, result: { code } };
|
|
3356
3378
|
}
|
|
3357
|
-
async function bundlePackageAsEsm(entryFile) {
|
|
3379
|
+
async function bundlePackageAsEsm(entryFile, root) {
|
|
3358
3380
|
if (!esmBundleCache.has(entryFile)) {
|
|
3359
|
-
esmBundleCache.set(entryFile, doBundlePackage(entryFile));
|
|
3381
|
+
esmBundleCache.set(entryFile, doBundlePackage(entryFile, root));
|
|
3360
3382
|
}
|
|
3361
3383
|
return esmBundleCache.get(entryFile);
|
|
3362
3384
|
}
|
|
3363
|
-
async function doBundlePackage(entryFile) {
|
|
3364
|
-
const shim = await tryGenerateSubpathShim(entryFile);
|
|
3385
|
+
async function doBundlePackage(entryFile, root) {
|
|
3386
|
+
const shim = await tryGenerateSubpathShim(entryFile, root);
|
|
3365
3387
|
if (shim != null) return shim;
|
|
3366
3388
|
const { rolldown: rolldown4 } = await import("rolldown");
|
|
3367
3389
|
const bundle2 = await rolldown4({
|
|
@@ -3376,23 +3398,24 @@ async function doBundlePackage(entryFile) {
|
|
|
3376
3398
|
await bundle2.close();
|
|
3377
3399
|
let code = result.output[0].code;
|
|
3378
3400
|
code = code.replace(/process\.env\.NODE_ENV/g, '"development"');
|
|
3401
|
+
const externalBaseDir = import_node_path11.default.dirname(entryFile);
|
|
3379
3402
|
code = code.replace(
|
|
3380
3403
|
/^(import\b[^;'"]*?\bfrom\s+)(['"])([^'"./][^'"]*)(\2)/gm,
|
|
3381
|
-
(_, prefix, q, spec) => `${prefix}${q}
|
|
3404
|
+
(_, prefix, q, spec) => `${prefix}${q}${externalSpecToModuleUrl(spec, externalBaseDir)}${q}`
|
|
3382
3405
|
).replace(
|
|
3383
3406
|
/^(export\b[^;'"]*?\bfrom\s+)(['"])([^'"./][^'"]*)(\2)/gm,
|
|
3384
|
-
(_, prefix, q, spec) => `${prefix}${q}
|
|
3407
|
+
(_, prefix, q, spec) => `${prefix}${q}${externalSpecToModuleUrl(spec, externalBaseDir)}${q}`
|
|
3385
3408
|
).replace(
|
|
3386
3409
|
/^(import\s+)(['"])([^'"./][^'"]*)(\2)/gm,
|
|
3387
|
-
(_, prefix, q, spec) => `${prefix}${q}
|
|
3410
|
+
(_, prefix, q, spec) => `${prefix}${q}${externalSpecToModuleUrl(spec, externalBaseDir)}${q}`
|
|
3388
3411
|
);
|
|
3389
|
-
code = rewriteExternalRequires(code);
|
|
3412
|
+
code = rewriteExternalRequires(code, externalBaseDir);
|
|
3390
3413
|
if (code.includes("__commonJSMin")) {
|
|
3391
3414
|
code = await injectCjsNamedExports(code, entryFile);
|
|
3392
3415
|
}
|
|
3393
3416
|
return code;
|
|
3394
3417
|
}
|
|
3395
|
-
async function tryGenerateSubpathShim(entryFile) {
|
|
3418
|
+
async function tryGenerateSubpathShim(entryFile, root) {
|
|
3396
3419
|
const NM = `${import_node_path11.default.sep}node_modules${import_node_path11.default.sep}`;
|
|
3397
3420
|
if (!entryFile.includes(NM)) return null;
|
|
3398
3421
|
let pkgDir = null;
|
|
@@ -3443,9 +3466,11 @@ async function tryGenerateSubpathShim(entryFile) {
|
|
|
3443
3466
|
if (!("default" in mainNs)) return null;
|
|
3444
3467
|
if (mainNs["default"] !== subNs["default"]) return null;
|
|
3445
3468
|
}
|
|
3469
|
+
const rootMain = resolveNodeModule(root, pkgName);
|
|
3470
|
+
const mainEntryUrl = rootMain && rootMain.startsWith(pkgDir + import_node_path11.default.sep) ? `/@modules/${pkgName}` : `/@modules/${pkgName}?id=${encodeURIComponent(mainEntry)}`;
|
|
3446
3471
|
const lines = [
|
|
3447
3472
|
`// Nasti subpath shim \u2192 ${pkgName} (avoid duplicate bundling)`,
|
|
3448
|
-
`import * as __pkg from "
|
|
3473
|
+
`import * as __pkg from "${mainEntryUrl}";`
|
|
3449
3474
|
];
|
|
3450
3475
|
for (const k of subKeys) {
|
|
3451
3476
|
lines.push(`export const ${k} = __pkg[${JSON.stringify(k)}];`);
|
|
@@ -3489,7 +3514,7 @@ function pickMainEntryByExtension(pkgDir, preferredExt) {
|
|
|
3489
3514
|
}
|
|
3490
3515
|
return null;
|
|
3491
3516
|
}
|
|
3492
|
-
function rewriteExternalRequires(code) {
|
|
3517
|
+
function rewriteExternalRequires(code, baseDir) {
|
|
3493
3518
|
const pkgs = /* @__PURE__ */ new Set();
|
|
3494
3519
|
const re = /__require\(["']([^"']+)["']\)/g;
|
|
3495
3520
|
let m;
|
|
@@ -3501,7 +3526,7 @@ function rewriteExternalRequires(code) {
|
|
|
3501
3526
|
const imports = [];
|
|
3502
3527
|
for (const pkg of pkgs) {
|
|
3503
3528
|
const safe = pkg.replace(/[^a-zA-Z0-9_$]/g, "_");
|
|
3504
|
-
imports.push(`import * as __ns_${safe} from "
|
|
3529
|
+
imports.push(`import * as __ns_${safe} from "${externalSpecToModuleUrl(pkg, baseDir)}";`);
|
|
3505
3530
|
imports.push(`var __req_${safe} = "default" in __ns_${safe} ? __ns_${safe}["default"] : __ns_${safe};`);
|
|
3506
3531
|
result = result.replaceAll(`__require("${pkg}")`, `__req_${safe}`);
|
|
3507
3532
|
result = result.replaceAll(`__require('${pkg}')`, `__req_${safe}`);
|
|
@@ -3598,7 +3623,20 @@ function isUnderRoot(abs, root) {
|
|
|
3598
3623
|
const rel = import_node_path11.default.relative(root, abs);
|
|
3599
3624
|
return !!rel && !rel.startsWith("..") && !import_node_path11.default.isAbsolute(rel);
|
|
3600
3625
|
}
|
|
3601
|
-
function
|
|
3626
|
+
function externalSpecToModuleUrl(spec, baseDir) {
|
|
3627
|
+
const resolved = resolveNodeModule(baseDir, spec);
|
|
3628
|
+
return resolved ? `/@modules/${spec}?id=${encodeURIComponent(resolved)}` : `/@modules/${spec}`;
|
|
3629
|
+
}
|
|
3630
|
+
function resolveNodeModule(baseDir, moduleName) {
|
|
3631
|
+
const resolved = resolveNodeModuleEntry(baseDir, moduleName);
|
|
3632
|
+
if (!resolved) return null;
|
|
3633
|
+
try {
|
|
3634
|
+
return import_node_fs8.default.realpathSync(resolved);
|
|
3635
|
+
} catch {
|
|
3636
|
+
return resolved;
|
|
3637
|
+
}
|
|
3638
|
+
}
|
|
3639
|
+
function resolveNodeModuleEntry(root, moduleName) {
|
|
3602
3640
|
let pkgName;
|
|
3603
3641
|
let subpath;
|
|
3604
3642
|
if (moduleName.startsWith("@")) {
|
|
@@ -3668,7 +3706,12 @@ function resolvePackageExports(exports2, key, pkgDir) {
|
|
|
3668
3706
|
return key === "." ? import_node_path11.default.join(pkgDir, exports2) : null;
|
|
3669
3707
|
}
|
|
3670
3708
|
const entry = exports2[key];
|
|
3671
|
-
if (entry === void 0)
|
|
3709
|
+
if (entry === void 0) {
|
|
3710
|
+
if (key === "." && typeof exports2 === "object" && !Object.keys(exports2).some((k) => k.startsWith("."))) {
|
|
3711
|
+
return resolveExportValue(exports2, pkgDir);
|
|
3712
|
+
}
|
|
3713
|
+
return null;
|
|
3714
|
+
}
|
|
3672
3715
|
return resolveExportValue(entry, pkgDir);
|
|
3673
3716
|
}
|
|
3674
3717
|
function resolveExportValue(value, pkgDir) {
|
|
@@ -4707,7 +4750,7 @@ async function createServer(inlineConfig = {}) {
|
|
|
4707
4750
|
const readyIn = Math.ceil(performance.now() - startTime);
|
|
4708
4751
|
logger.info(
|
|
4709
4752
|
`
|
|
4710
|
-
${import_picocolors9.default.cyan(import_picocolors9.default.bold("NASTI"))} ${import_picocolors9.default.cyan(`v${"2.0.
|
|
4753
|
+
${import_picocolors9.default.cyan(import_picocolors9.default.bold("NASTI"))} ${import_picocolors9.default.cyan(`v${"2.0.1"}`)} ${import_picocolors9.default.dim("ready in")} ${import_picocolors9.default.bold(readyIn)} ${import_picocolors9.default.dim("ms")}
|
|
4711
4754
|
`
|
|
4712
4755
|
);
|
|
4713
4756
|
printServerUrls(
|
|
@@ -4866,7 +4909,7 @@ async function buildElectron(inlineConfig = {}) {
|
|
|
4866
4909
|
const config = await resolveConfig({ ...inlineConfig, target: "electron" }, "build");
|
|
4867
4910
|
const startTime = performance.now();
|
|
4868
4911
|
assertElectronVersion(config);
|
|
4869
|
-
console.log(import_picocolors5.default.cyan("\n\u26A1 nasti build (electron)") + import_picocolors5.default.dim(` v${"2.0.
|
|
4912
|
+
console.log(import_picocolors5.default.cyan("\n\u26A1 nasti build (electron)") + import_picocolors5.default.dim(` v${"2.0.1"}`));
|
|
4870
4913
|
console.log(import_picocolors5.default.dim(` root: ${config.root}`));
|
|
4871
4914
|
console.log(import_picocolors5.default.dim(` mode: ${config.mode}`));
|
|
4872
4915
|
console.log(import_picocolors5.default.dim(` target: electron (\u2265 ${config.electron.minVersion})`));
|
|
@@ -5017,7 +5060,7 @@ async function startElectronDev(inlineConfig = {}) {
|
|
|
5017
5060
|
const { noSpawn, ...rest } = inlineConfig;
|
|
5018
5061
|
const config = await resolveConfig({ ...rest, target: "electron" }, "serve");
|
|
5019
5062
|
warnElectronVersion(config);
|
|
5020
|
-
console.log(import_picocolors10.default.cyan("\n\u26A1 nasti electron dev") + import_picocolors10.default.dim(` v${"2.0.
|
|
5063
|
+
console.log(import_picocolors10.default.cyan("\n\u26A1 nasti electron dev") + import_picocolors10.default.dim(` v${"2.0.1"}`));
|
|
5021
5064
|
const { createServer: createServer2 } = await Promise.resolve().then(() => (init_server(), server_exports));
|
|
5022
5065
|
const server = await createServer2({ ...rest, target: "electron" });
|
|
5023
5066
|
await server.listen();
|