@vesk/vesk-cli 0.2.40 → 0.2.41
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.js +64 -12
- package/package.json +5 -5
package/dist/cli.js
CHANGED
|
@@ -32694,6 +32694,7 @@ __export(image_pipeline_exports, {
|
|
|
32694
32694
|
optimizeImages: () => optimizeImages
|
|
32695
32695
|
});
|
|
32696
32696
|
import { mkdirSync as mkdirSync8, writeFileSync as writeFileSync9, readFileSync as readFileSync18, existsSync as existsSync18, readdirSync as readdirSync4, statSync as statSync9 } from "node:fs";
|
|
32697
|
+
import { spawnSync } from "node:child_process";
|
|
32697
32698
|
import { resolve as resolve16, extname as extname5, dirname as dirname12 } from "node:path";
|
|
32698
32699
|
async function processImage(srcPath, outDir, baseName) {
|
|
32699
32700
|
const image = sharpFn ? sharpFn(srcPath) : null;
|
|
@@ -32808,8 +32809,17 @@ var init_image_pipeline = __esm({
|
|
|
32808
32809
|
FORMATS = ["webp", "avif"];
|
|
32809
32810
|
sharpFn = null;
|
|
32810
32811
|
try {
|
|
32811
|
-
const
|
|
32812
|
-
|
|
32812
|
+
const probe = spawnSync(process.execPath, [
|
|
32813
|
+
"--input-type=module",
|
|
32814
|
+
"-e",
|
|
32815
|
+
"import sharp from 'sharp'; await sharp({ create: { width: 2, height: 2, channels: 3, background: 'red' } }).png().toBuffer();"
|
|
32816
|
+
], { stdio: "ignore" });
|
|
32817
|
+
if (probe.status === 0) {
|
|
32818
|
+
const mod = await import("sharp");
|
|
32819
|
+
sharpFn = mod.default;
|
|
32820
|
+
} else {
|
|
32821
|
+
console.warn("vesk images: sharp native probe failed; using copy-only image pipeline");
|
|
32822
|
+
}
|
|
32813
32823
|
} catch {
|
|
32814
32824
|
}
|
|
32815
32825
|
}
|
|
@@ -37917,9 +37927,6 @@ function compileVskCodegen(source, opts = {}) {
|
|
|
37917
37927
|
}
|
|
37918
37928
|
return { code, mappings: g2.mappings, styleRegions: g2.styleRegions, errors: [] };
|
|
37919
37929
|
}
|
|
37920
|
-
function vskToTsx(source) {
|
|
37921
|
-
return compileVskCodegen(source).code;
|
|
37922
|
-
}
|
|
37923
37930
|
function isTypeDecl(stmt) {
|
|
37924
37931
|
return stmt.type === "TSInterfaceDeclaration" || stmt.type === "TSTypeAliasDeclaration" || stmt.type === "ExportNamedDeclaration" && (stmt.declaration?.type === "TSInterfaceDeclaration" || stmt.declaration?.type === "TSTypeAliasDeclaration");
|
|
37925
37932
|
}
|
|
@@ -38120,7 +38127,7 @@ function createTypecheckHost(projectRoot, appDir, vskFiles) {
|
|
|
38120
38127
|
} else if (file.endsWith(".css.d.ts")) {
|
|
38121
38128
|
content = "";
|
|
38122
38129
|
} else if (vskFiles.has(file)) {
|
|
38123
|
-
content =
|
|
38130
|
+
content = compileVskCodegen(vskFiles.get(file)).code;
|
|
38124
38131
|
} else if (ts8.sys.fileExists(file)) {
|
|
38125
38132
|
content = ts8.sys.readFile(file);
|
|
38126
38133
|
}
|
|
@@ -38161,7 +38168,7 @@ function createTypecheckHost(projectRoot, appDir, vskFiles) {
|
|
|
38161
38168
|
if (file.endsWith(".css.d.ts"))
|
|
38162
38169
|
return "";
|
|
38163
38170
|
if (vskFiles.has(file))
|
|
38164
|
-
return
|
|
38171
|
+
return compileVskCodegen(vskFiles.get(file)).code;
|
|
38165
38172
|
return ts8.sys.readFile(file);
|
|
38166
38173
|
},
|
|
38167
38174
|
writeFile: () => {
|
|
@@ -38211,6 +38218,35 @@ function createTypecheckHost(projectRoot, appDir, vskFiles) {
|
|
|
38211
38218
|
};
|
|
38212
38219
|
return host;
|
|
38213
38220
|
}
|
|
38221
|
+
function mapGeneratedOffset(mappings, generatedOffset) {
|
|
38222
|
+
let nearest = null;
|
|
38223
|
+
for (const mapping of mappings) {
|
|
38224
|
+
for (let i = 0; i < mapping.generatedOffsets.length; i++) {
|
|
38225
|
+
const generated = mapping.generatedOffsets[i];
|
|
38226
|
+
const length = mapping.lengths[i] ?? 0;
|
|
38227
|
+
const source = mapping.sourceOffsets[i];
|
|
38228
|
+
if (generated <= generatedOffset && generated + length >= generatedOffset) {
|
|
38229
|
+
return source + (generatedOffset - generated);
|
|
38230
|
+
}
|
|
38231
|
+
if (generated <= generatedOffset && (!nearest || generated > nearest.generated)) {
|
|
38232
|
+
nearest = { source, generated, length };
|
|
38233
|
+
}
|
|
38234
|
+
}
|
|
38235
|
+
}
|
|
38236
|
+
return nearest ? nearest.source + Math.min(nearest.length, Math.max(0, generatedOffset - nearest.generated)) : null;
|
|
38237
|
+
}
|
|
38238
|
+
function sourcePosition(source, offset2) {
|
|
38239
|
+
const bounded = Math.max(0, Math.min(offset2, source.length));
|
|
38240
|
+
let line = 1;
|
|
38241
|
+
let lineStart = 0;
|
|
38242
|
+
for (let i = 0; i < bounded; i++) {
|
|
38243
|
+
if (source.charCodeAt(i) === 10) {
|
|
38244
|
+
line++;
|
|
38245
|
+
lineStart = i + 1;
|
|
38246
|
+
}
|
|
38247
|
+
}
|
|
38248
|
+
return { line, character: bounded - lineStart + 1 };
|
|
38249
|
+
}
|
|
38214
38250
|
function typecheckProject(projectRoot, opts = {}) {
|
|
38215
38251
|
const appDir = opts.appDir ?? join25(projectRoot, "app");
|
|
38216
38252
|
const vskFiles = /* @__PURE__ */ new Map();
|
|
@@ -38291,12 +38327,28 @@ function typecheckProject(projectRoot, opts = {}) {
|
|
|
38291
38327
|
}
|
|
38292
38328
|
if (!rootSet.has(filePath) && !vskSet.has(filePath))
|
|
38293
38329
|
continue;
|
|
38294
|
-
|
|
38330
|
+
let sourceOffset = diag.start ?? 0;
|
|
38331
|
+
let line;
|
|
38332
|
+
let column;
|
|
38333
|
+
if (vskFiles.has(filePath)) {
|
|
38334
|
+
const source = vskFiles.get(filePath);
|
|
38335
|
+
const generated = compileVskCodegen(source);
|
|
38336
|
+
const mapped = mapGeneratedOffset(generated.mappings, sourceOffset);
|
|
38337
|
+
if (mapped !== null)
|
|
38338
|
+
sourceOffset = mapped;
|
|
38339
|
+
const pos = sourcePosition(source, sourceOffset);
|
|
38340
|
+
line = pos.line;
|
|
38341
|
+
column = pos.character;
|
|
38342
|
+
} else {
|
|
38343
|
+
const pos = file.getLineAndCharacterOfPosition(diag.start ?? 0);
|
|
38344
|
+
line = pos.line + 1;
|
|
38345
|
+
column = pos.character + 1;
|
|
38346
|
+
}
|
|
38295
38347
|
const code = typeof diag.code === "number" ? `TS${diag.code}` : String(diag.code);
|
|
38296
38348
|
errors.push({
|
|
38297
38349
|
file: relative8(projectRoot, filePath),
|
|
38298
|
-
line
|
|
38299
|
-
column
|
|
38350
|
+
line,
|
|
38351
|
+
column,
|
|
38300
38352
|
code,
|
|
38301
38353
|
message: ts8.flattenDiagnosticMessageText(diag.messageText, "\n")
|
|
38302
38354
|
});
|
|
@@ -52839,7 +52891,7 @@ function renderDevErrorPage(payload, opts) {
|
|
|
52839
52891
|
}
|
|
52840
52892
|
|
|
52841
52893
|
// src/build-packages.ts
|
|
52842
|
-
import { spawnSync } from "node:child_process";
|
|
52894
|
+
import { spawnSync as spawnSync2 } from "node:child_process";
|
|
52843
52895
|
import { cpSync as cpSync2, existsSync as existsSync40, mkdirSync as mkdirSync18, readFileSync as readFileSync36, readdirSync as readdirSync11, statSync as statSync20, writeFileSync as writeFileSync20 } from "node:fs";
|
|
52844
52896
|
import { createRequire as createRequire6 } from "node:module";
|
|
52845
52897
|
import { dirname as dirname25, join as join23, resolve as resolve36 } from "node:path";
|
|
@@ -52914,7 +52966,7 @@ function buildPackages(force = false) {
|
|
|
52914
52966
|
if (!force && !distStale(pkgDir, cfg.entry)) continue;
|
|
52915
52967
|
console.log(`[build] ${cfg.name} -> tsc`);
|
|
52916
52968
|
const tscBin = require2.resolve("typescript/bin/tsc");
|
|
52917
|
-
const result =
|
|
52969
|
+
const result = spawnSync2(process.execPath, [tscBin, "-p", join23(pkgDir, "tsconfig.build.json")], {
|
|
52918
52970
|
stdio: "inherit"
|
|
52919
52971
|
});
|
|
52920
52972
|
if (result.status !== 0) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vesk/vesk-cli",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.41",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Vesk — compiler-first framework for the post-VDOM web. vesk dev, vesk build.",
|
|
6
6
|
"bin": {
|
|
@@ -8,10 +8,10 @@
|
|
|
8
8
|
},
|
|
9
9
|
"main": "./dist/cli.js",
|
|
10
10
|
"dependencies": {
|
|
11
|
-
"@vesk/adapter": "^0.2.
|
|
12
|
-
"@vesk/compiler": "^0.2.
|
|
13
|
-
"@vesk/plugin-tailwind": "^0.2.
|
|
14
|
-
"@vesk/runtime": "^0.2.
|
|
11
|
+
"@vesk/adapter": "^0.2.41",
|
|
12
|
+
"@vesk/compiler": "^0.2.41",
|
|
13
|
+
"@vesk/plugin-tailwind": "^0.2.41",
|
|
14
|
+
"@vesk/runtime": "^0.2.41",
|
|
15
15
|
"esrap": "^2.3.0",
|
|
16
16
|
"typescript": "^5.8.0",
|
|
17
17
|
"ws": "^8.18.0",
|