@vesk/vesk-cli 0.2.50-canary.10 → 0.2.50-canary.11
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 +268 -48
- package/package.json +5 -5
package/dist/cli.js
CHANGED
|
@@ -25890,8 +25890,8 @@ function isPublicMarkdownPath(v) {
|
|
|
25890
25890
|
const c = s.charCodeAt(i);
|
|
25891
25891
|
if (c === 63 || c === 35 || c === 92) return false;
|
|
25892
25892
|
}
|
|
25893
|
-
const
|
|
25894
|
-
return stringEndsWith(
|
|
25893
|
+
const lower2 = s.toLowerCase();
|
|
25894
|
+
return stringEndsWith(lower2, ".md") || stringEndsWith(lower2, ".markdown");
|
|
25895
25895
|
}
|
|
25896
25896
|
function getMdPathCell(path) {
|
|
25897
25897
|
let cell = mdPathCells.get(path);
|
|
@@ -26563,9 +26563,9 @@ function toDomNode(value) {
|
|
|
26563
26563
|
}
|
|
26564
26564
|
if (typeof value !== "string") return value;
|
|
26565
26565
|
if (value === "") return document.createDocumentFragment();
|
|
26566
|
-
const
|
|
26567
|
-
|
|
26568
|
-
const { content } =
|
|
26566
|
+
const template2 = document.createElement("template");
|
|
26567
|
+
template2.innerHTML = value;
|
|
26568
|
+
const { content } = template2;
|
|
26569
26569
|
if (content.childNodes.length === 1) {
|
|
26570
26570
|
const only = content.firstChild;
|
|
26571
26571
|
content.removeChild(only);
|
|
@@ -26758,7 +26758,7 @@ function resolveTitle(meta, child) {
|
|
|
26758
26758
|
}
|
|
26759
26759
|
function mergeMetadata(...sources) {
|
|
26760
26760
|
const out = {};
|
|
26761
|
-
let
|
|
26761
|
+
let template2;
|
|
26762
26762
|
let sawTemplate = false;
|
|
26763
26763
|
for (const source of sources) {
|
|
26764
26764
|
if (!source) continue;
|
|
@@ -26771,7 +26771,7 @@ function mergeMetadata(...sources) {
|
|
|
26771
26771
|
if (key === "title") {
|
|
26772
26772
|
if (value && typeof value === "object" && value.template) {
|
|
26773
26773
|
sawTemplate = true;
|
|
26774
|
-
|
|
26774
|
+
template2 = value.template || template2;
|
|
26775
26775
|
}
|
|
26776
26776
|
out.title = value;
|
|
26777
26777
|
continue;
|
|
@@ -26783,9 +26783,9 @@ function mergeMetadata(...sources) {
|
|
|
26783
26783
|
const own = out.title;
|
|
26784
26784
|
if (typeof own === "string") out.title = { absolute: own };
|
|
26785
26785
|
else if (own && typeof own === "object" && own.template) {
|
|
26786
|
-
out.title = { default: own.default, template: own.template ||
|
|
26786
|
+
out.title = { default: own.default, template: own.template || template2 };
|
|
26787
26787
|
} else if (own && typeof own === "object") {
|
|
26788
|
-
out.title = { ...own, template };
|
|
26788
|
+
out.title = { ...own, template: template2 };
|
|
26789
26789
|
}
|
|
26790
26790
|
}
|
|
26791
26791
|
return out;
|
|
@@ -29289,8 +29289,8 @@ function looksLikeMarkdownPath(value) {
|
|
|
29289
29289
|
const v = value.trim();
|
|
29290
29290
|
if (v.length === 0 || v.length > 4096) return false;
|
|
29291
29291
|
if (v.includes("\n") || v.includes("\r")) return false;
|
|
29292
|
-
const
|
|
29293
|
-
return
|
|
29292
|
+
const lower2 = v.toLowerCase();
|
|
29293
|
+
return lower2.endsWith(MD_EXT_MARKER) || lower2.endsWith(".markdown");
|
|
29294
29294
|
}
|
|
29295
29295
|
function isRelativeSpecifier(v) {
|
|
29296
29296
|
return v.startsWith("./") || v.startsWith("../");
|
|
@@ -31863,7 +31863,202 @@ var init_server_head = __esm({
|
|
|
31863
31863
|
}
|
|
31864
31864
|
});
|
|
31865
31865
|
|
|
31866
|
+
// ../compiler/src/server-jsx-lowering.ts
|
|
31867
|
+
function containsJsx2(node, depth = 0) {
|
|
31868
|
+
if (!node || typeof node !== "object" || depth > 40) return false;
|
|
31869
|
+
if (Array.isArray(node)) {
|
|
31870
|
+
for (const item of node) if (containsJsx2(item, depth + 1)) return true;
|
|
31871
|
+
return false;
|
|
31872
|
+
}
|
|
31873
|
+
const type = node.type;
|
|
31874
|
+
if (type === "JSXElement" || type === "JSXFragment") return true;
|
|
31875
|
+
for (const key of Object.keys(node)) {
|
|
31876
|
+
const value = node[key];
|
|
31877
|
+
if (value && typeof value === "object" && containsJsx2(value, depth + 1)) return true;
|
|
31878
|
+
}
|
|
31879
|
+
return false;
|
|
31880
|
+
}
|
|
31881
|
+
function normalizeJsxText(value) {
|
|
31882
|
+
const lines = value.split(/\r\n|\n|\r/);
|
|
31883
|
+
let lastNonEmpty = -1;
|
|
31884
|
+
for (let i = 0; i < lines.length; i++) {
|
|
31885
|
+
if (/[^ \t]/.test(lines[i])) lastNonEmpty = i;
|
|
31886
|
+
}
|
|
31887
|
+
let out = "";
|
|
31888
|
+
for (let i = 0; i < lines.length; i++) {
|
|
31889
|
+
let line = lines[i].replace(/\t/g, " ");
|
|
31890
|
+
if (i !== 0) line = line.replace(/^ +/, "");
|
|
31891
|
+
if (i !== lines.length - 1) line = line.replace(/ +$/, "");
|
|
31892
|
+
if (line) {
|
|
31893
|
+
if (i !== lastNonEmpty) line += " ";
|
|
31894
|
+
out += line;
|
|
31895
|
+
}
|
|
31896
|
+
}
|
|
31897
|
+
return out;
|
|
31898
|
+
}
|
|
31899
|
+
function lower(node, ctx2) {
|
|
31900
|
+
if (Array.isArray(node)) return node.map((n2) => lower(n2, ctx2));
|
|
31901
|
+
if (!node || typeof node !== "object") return node;
|
|
31902
|
+
const n = node;
|
|
31903
|
+
if (n.type === "JSXElement") {
|
|
31904
|
+
const opening = n.openingElement;
|
|
31905
|
+
const name = jsxTagName(opening.name);
|
|
31906
|
+
const attrs = lowerAttributes(opening.attributes, ctx2);
|
|
31907
|
+
const children = lowerChildren(n.children, ctx2);
|
|
31908
|
+
const statics = [`<${name}`, ...attrs.statics.slice(1)];
|
|
31909
|
+
statics[statics.length - 1] += ">";
|
|
31910
|
+
const quasis = [...statics, `</${name}>`];
|
|
31911
|
+
const expressions = [...attrs.exprs, ...children];
|
|
31912
|
+
return template(quasis, expressions);
|
|
31913
|
+
}
|
|
31914
|
+
if (n.type === "JSXFragment") {
|
|
31915
|
+
return template(["", ""], lowerChildren(n.children, ctx2));
|
|
31916
|
+
}
|
|
31917
|
+
const out = {};
|
|
31918
|
+
for (const key of Object.keys(n)) {
|
|
31919
|
+
if (key === "type" || key === "start" || key === "end" || key === "loc" || key === "range") {
|
|
31920
|
+
out[key] = n[key];
|
|
31921
|
+
continue;
|
|
31922
|
+
}
|
|
31923
|
+
const value = n[key];
|
|
31924
|
+
out[key] = value && typeof value === "object" ? lower(value, ctx2) : value;
|
|
31925
|
+
}
|
|
31926
|
+
return out;
|
|
31927
|
+
}
|
|
31928
|
+
function jsxTagName(nameNode) {
|
|
31929
|
+
const n = nameNode;
|
|
31930
|
+
if (!n) return "div";
|
|
31931
|
+
if (n.type === "JSXIdentifier") return String(n.name);
|
|
31932
|
+
if (n.type === "JSXMemberExpression") {
|
|
31933
|
+
const object = jsxTagName(n.object);
|
|
31934
|
+
const property = n.property;
|
|
31935
|
+
return `${object}.${String(property?.name)}`;
|
|
31936
|
+
}
|
|
31937
|
+
if (n.type === "JSXNamespacedName") {
|
|
31938
|
+
const ns = n.namespace;
|
|
31939
|
+
const name = n.name;
|
|
31940
|
+
return `${String(ns?.name)}:${String(name?.name)}`;
|
|
31941
|
+
}
|
|
31942
|
+
return "div";
|
|
31943
|
+
}
|
|
31944
|
+
function lowerAttributes(attrs, ctx2) {
|
|
31945
|
+
const statics = [""];
|
|
31946
|
+
const exprs = [];
|
|
31947
|
+
const push = (text, expr) => {
|
|
31948
|
+
if (expr === void 0) {
|
|
31949
|
+
statics[statics.length - 1] += text;
|
|
31950
|
+
return;
|
|
31951
|
+
}
|
|
31952
|
+
statics[statics.length - 1] += text;
|
|
31953
|
+
statics.push("");
|
|
31954
|
+
exprs.push(expr);
|
|
31955
|
+
};
|
|
31956
|
+
for (const attr of attrs || []) {
|
|
31957
|
+
const a = attr;
|
|
31958
|
+
if (a.type === "JSXSpreadAttribute") {
|
|
31959
|
+
console.error("[vesk] a spread attribute in a JSX expression is not supported yet (dropped):", String(a.argument ?? "").slice(0, 60));
|
|
31960
|
+
continue;
|
|
31961
|
+
}
|
|
31962
|
+
const name = jsxAttrName(a.name);
|
|
31963
|
+
const value = a.value;
|
|
31964
|
+
if (value === null || value === void 0) {
|
|
31965
|
+
push(` ${name}`);
|
|
31966
|
+
continue;
|
|
31967
|
+
}
|
|
31968
|
+
if (value.type === "StringLiteral") {
|
|
31969
|
+
push(` ${name}="${escapeAttrText(String(value.value))}"`);
|
|
31970
|
+
continue;
|
|
31971
|
+
}
|
|
31972
|
+
if (value.type === "JSXExpressionContainer") {
|
|
31973
|
+
const inner = value.expression;
|
|
31974
|
+
if (!inner || inner.type === "JSXEmptyExpression") {
|
|
31975
|
+
push(` ${name}="true"`);
|
|
31976
|
+
continue;
|
|
31977
|
+
}
|
|
31978
|
+
push(` ${name}="`, callNode(ATTR, [literal3(name), coerceString(lower(inner, ctx2))]));
|
|
31979
|
+
push('"');
|
|
31980
|
+
continue;
|
|
31981
|
+
}
|
|
31982
|
+
push(` ${name}="`, callNode(ATTR, [literal3(name), coerceString(lower(value, ctx2))]));
|
|
31983
|
+
push('"');
|
|
31984
|
+
}
|
|
31985
|
+
return { statics, exprs };
|
|
31986
|
+
}
|
|
31987
|
+
function jsxAttrName(nameNode) {
|
|
31988
|
+
const n = nameNode;
|
|
31989
|
+
if (!n) return "data";
|
|
31990
|
+
if (n.type === "JSXIdentifier") return String(n.name);
|
|
31991
|
+
return jsxTagName(n);
|
|
31992
|
+
}
|
|
31993
|
+
function lowerChildren(children, ctx2) {
|
|
31994
|
+
const out = [];
|
|
31995
|
+
for (const child of children || []) {
|
|
31996
|
+
const c = child;
|
|
31997
|
+
if (c.type === "JSXText") {
|
|
31998
|
+
const text = normalizeJsxText(String(c.value ?? ""));
|
|
31999
|
+
if (text) out.push(literal3(text));
|
|
32000
|
+
continue;
|
|
32001
|
+
}
|
|
32002
|
+
if (c.type === "JSXExpressionContainer") {
|
|
32003
|
+
const inner = c.expression;
|
|
32004
|
+
if (!inner || inner.type === "JSXEmptyExpression") continue;
|
|
32005
|
+
const lowered2 = lower(inner, ctx2);
|
|
32006
|
+
out.push(coerceString(lowered2));
|
|
32007
|
+
continue;
|
|
32008
|
+
}
|
|
32009
|
+
const lowered = lower(c, ctx2);
|
|
32010
|
+
out.push(coerceString(lowered));
|
|
32011
|
+
}
|
|
32012
|
+
return out;
|
|
32013
|
+
}
|
|
32014
|
+
function coerceString(node) {
|
|
32015
|
+
if (!node || typeof node !== "object") return callNode(ESCAPE, [literal3(String(node))]);
|
|
32016
|
+
const n = node;
|
|
32017
|
+
if (n.type === "TemplateLiteral") return n;
|
|
32018
|
+
if (n.type === "Literal" || n.type === "StringLiteral") return callNode(ESCAPE, [node]);
|
|
32019
|
+
return callNode(ESCAPE, [callNode("String", [node])]);
|
|
32020
|
+
}
|
|
32021
|
+
function template(statics, expressions) {
|
|
32022
|
+
const quasis = statics.map((raw2, i) => ({
|
|
32023
|
+
type: "TemplateElement",
|
|
32024
|
+
value: { raw: raw2 },
|
|
32025
|
+
tail: i === statics.length - 1
|
|
32026
|
+
}));
|
|
32027
|
+
return { type: "TemplateLiteral", quasis, expressions };
|
|
32028
|
+
}
|
|
32029
|
+
function literal3(value) {
|
|
32030
|
+
return { type: "Literal", value };
|
|
32031
|
+
}
|
|
32032
|
+
function callNode(callee, args2) {
|
|
32033
|
+
return {
|
|
32034
|
+
type: "CallExpression",
|
|
32035
|
+
callee: { type: "Identifier", name: callee },
|
|
32036
|
+
arguments: args2,
|
|
32037
|
+
optional: false
|
|
32038
|
+
};
|
|
32039
|
+
}
|
|
32040
|
+
function escapeAttrText(value) {
|
|
32041
|
+
return value.split("&").join("&").split("<").join("<").split(">").join(">").split('"').join(""");
|
|
32042
|
+
}
|
|
32043
|
+
function lowerJsxInExpression(ast) {
|
|
32044
|
+
if (!containsJsx2(ast)) return ast;
|
|
32045
|
+
return lower(ast, { track: false });
|
|
32046
|
+
}
|
|
32047
|
+
var ESCAPE, ATTR;
|
|
32048
|
+
var init_server_jsx_lowering = __esm({
|
|
32049
|
+
"../compiler/src/server-jsx-lowering.ts"() {
|
|
32050
|
+
"use strict";
|
|
32051
|
+
ESCAPE = "__escape";
|
|
32052
|
+
ATTR = "__attr";
|
|
32053
|
+
}
|
|
32054
|
+
});
|
|
32055
|
+
|
|
31866
32056
|
// ../compiler/src/server-jsgen.ts
|
|
32057
|
+
import { print as print6 } from "esrap";
|
|
32058
|
+
import tsPrinter from "esrap/languages/ts";
|
|
32059
|
+
function printLoweredTs(ast) {
|
|
32060
|
+
return print6(ast, tsPrinter()).code;
|
|
32061
|
+
}
|
|
31867
32062
|
function sanitizeMarkerName(name) {
|
|
31868
32063
|
return String(name).split("--").join("-").split("<").join("").split(">").join("");
|
|
31869
32064
|
}
|
|
@@ -31914,7 +32109,19 @@ function irNodeToJS(node, importedNames, isAsync = false, tracked2) {
|
|
|
31914
32109
|
`})();`
|
|
31915
32110
|
].join("\n");
|
|
31916
32111
|
}
|
|
31917
|
-
if (node instanceof RuntimeStatement)
|
|
32112
|
+
if (node instanceof RuntimeStatement) {
|
|
32113
|
+
const stmt = node;
|
|
32114
|
+
const lowered = stmt.ast ? lowerJsxInExpression(stmt.ast) : null;
|
|
32115
|
+
if (lowered && lowered !== stmt.ast && (tracked2?.size ?? 0) === 0) {
|
|
32116
|
+
return semicolonizeStatement(printLoweredTs(lowered));
|
|
32117
|
+
}
|
|
32118
|
+
if (lowered && lowered !== stmt.ast) {
|
|
32119
|
+
return semicolonizeStatement(
|
|
32120
|
+
transformTracked({ ...node, ast: lowered }, tracked2 || /* @__PURE__ */ new Map())
|
|
32121
|
+
);
|
|
32122
|
+
}
|
|
32123
|
+
return semicolonizeStatement(transformTracked(node, tracked2 || /* @__PURE__ */ new Map()));
|
|
32124
|
+
}
|
|
31918
32125
|
if (node instanceof SlotNode) {
|
|
31919
32126
|
if (__vskMarkerless) return `__out.push(props.children || '');`;
|
|
31920
32127
|
const sid = `s${nextVskId()}`;
|
|
@@ -31931,7 +32138,12 @@ function isEvent(target) {
|
|
|
31931
32138
|
return !!target && target.startsWith("on") && target.length > 2;
|
|
31932
32139
|
}
|
|
31933
32140
|
function exprJSX(node, tracked2) {
|
|
31934
|
-
|
|
32141
|
+
const lowered = node.ast ? lowerJsxInExpression(node.ast) : null;
|
|
32142
|
+
const didLower = lowered !== node.ast;
|
|
32143
|
+
if (didLower && (tracked2?.size ?? 0) === 0) {
|
|
32144
|
+
return exprJS(printLoweredTs(lowered));
|
|
32145
|
+
}
|
|
32146
|
+
return exprJS(transformTracked({ ...node, ast: lowered }, tracked2 || /* @__PURE__ */ new Map()));
|
|
31935
32147
|
}
|
|
31936
32148
|
function staticNodeToJS(node, isAsync = false, tracked2) {
|
|
31937
32149
|
const lines = [];
|
|
@@ -32079,13 +32291,13 @@ function mapRegionToJS(node, isAsync = false, tracked2) {
|
|
|
32079
32291
|
}
|
|
32080
32292
|
function keyedItemTemplate(node) {
|
|
32081
32293
|
if (!node.keyExpr) return node.bodyTemplate;
|
|
32082
|
-
const
|
|
32083
|
-
const idx =
|
|
32084
|
-
if (idx === -1) return
|
|
32085
|
-
const root3 =
|
|
32294
|
+
const template2 = node.bodyTemplate;
|
|
32295
|
+
const idx = template2.findIndex((n) => n instanceof StaticNode);
|
|
32296
|
+
if (idx === -1) return template2;
|
|
32297
|
+
const root3 = template2[idx];
|
|
32086
32298
|
const copy = new StaticNode(root3.tag, root3.attributes, [...root3.children, new DynamicBinding(node.keyExpr, "attribute", "data-vsk-key")], root3.keyExpr);
|
|
32087
32299
|
copy.selfClosing = root3.selfClosing;
|
|
32088
|
-
const out =
|
|
32300
|
+
const out = template2.slice();
|
|
32089
32301
|
out[idx] = copy;
|
|
32090
32302
|
return out;
|
|
32091
32303
|
}
|
|
@@ -32197,18 +32409,24 @@ function componentCallToJS(node, importedNames, isAsync = false, tracked2) {
|
|
|
32197
32409
|
}
|
|
32198
32410
|
}
|
|
32199
32411
|
if (regularChildren.length > 0) {
|
|
32200
|
-
const
|
|
32201
|
-
|
|
32202
|
-
|
|
32203
|
-
|
|
32204
|
-
}
|
|
32205
|
-
|
|
32206
|
-
const
|
|
32207
|
-
|
|
32208
|
-
|
|
32209
|
-
|
|
32210
|
-
|
|
32211
|
-
|
|
32412
|
+
const fnType = regularChildren.length === 1 && regularChildren[0] instanceof DynamicBinding && regularChildren[0].kind === "text" ? regularChildren[0].expression.ast?.type : null;
|
|
32413
|
+
const isFnChild = fnType === "ArrowFunctionExpression" || fnType === "FunctionExpression" || fnType === "Identifier" || fnType === "MemberExpression";
|
|
32414
|
+
if (isFnChild) {
|
|
32415
|
+
propsEntries.push(`children: ${exprJSX(regularChildren[0].expression, tracked2)}`);
|
|
32416
|
+
} else {
|
|
32417
|
+
const childLines = [];
|
|
32418
|
+
for (const child of regularChildren) {
|
|
32419
|
+
const code = irNodeToJS(child, importedNames, isAsync, tracked2);
|
|
32420
|
+
if (code) childLines.push(code);
|
|
32421
|
+
}
|
|
32422
|
+
if (childLines.length > 0) {
|
|
32423
|
+
const childrenVar = `__ch${nextVskId()}`;
|
|
32424
|
+
propsEntries.push(`children: ${childrenVar}`);
|
|
32425
|
+
lines.push(`const ${childrenVar} = ${isAsync ? "await (async " : "("}() => {`);
|
|
32426
|
+
lines.push(`const __out = [];`);
|
|
32427
|
+
lines.push(indent(childLines.join("\n")));
|
|
32428
|
+
lines.push(`return __out.join(''); })();`);
|
|
32429
|
+
}
|
|
32212
32430
|
}
|
|
32213
32431
|
}
|
|
32214
32432
|
const propsObj = `{ ${propsEntries.join(", ")} }`;
|
|
@@ -32225,9 +32443,9 @@ function componentCallToJS(node, importedNames, isAsync = false, tracked2) {
|
|
|
32225
32443
|
}
|
|
32226
32444
|
const callExpr3 = `${awaitKw}${calleeVar}(${propsObj}, __registry, (${calleeVar}.__veskScope || __vesk))`;
|
|
32227
32445
|
if (__vskHydrate && !__vskMarkerless) {
|
|
32228
|
-
lines.push(`__out.push(${JSON.stringify(componentMarker(compName))} + (${callExpr3}
|
|
32446
|
+
lines.push(`__out.push(${JSON.stringify(componentMarker(compName))} + __flat(${callExpr3}));`);
|
|
32229
32447
|
} else {
|
|
32230
|
-
lines.push(`__out.push(${callExpr3}
|
|
32448
|
+
lines.push(`__out.push(__flat(${callExpr3}));`);
|
|
32231
32449
|
}
|
|
32232
32450
|
return lines.join("\n");
|
|
32233
32451
|
}
|
|
@@ -32245,6 +32463,7 @@ function generateFunctionBody(comp, importedNames) {
|
|
|
32245
32463
|
lines.push(`const __styleText = (v) => { if (typeof v === 'string') return v; if (v && typeof v === 'object') { let s = ''; for (const k in v) { const x = v[k]; if (x == null || x === false) continue; s += k.replace(/[A-Z]/g, (m) => '-' + m.toLowerCase()) + ':' + x + ';'; } return s; } return String(v); };`);
|
|
32246
32464
|
lines.push(`const __attr = (n, v) => (v == null || v === false) ? '' : ' ' + n + '="' + __escape(n === 'style' ? __styleText(v) : String(v)) + '"';`);
|
|
32247
32465
|
lines.push(`const raw = (s) => s == null ? '' : String(s);`);
|
|
32466
|
+
lines.push(`const __flat = (v) => Array.isArray(v) ? v.join('') : (v == null ? '' : String(v));`);
|
|
32248
32467
|
lines.push(`const __tk = globalThis.__vsk_ssr_token || '';`);
|
|
32249
32468
|
if (asyncMode) {
|
|
32250
32469
|
lines.push(`const __pk = __tk ? '__vsk_ssr_promises_' + __tk : '__vsk_ssr_promises';`);
|
|
@@ -32390,6 +32609,7 @@ var init_server_jsgen = __esm({
|
|
|
32390
32609
|
init_scan();
|
|
32391
32610
|
init_server_utils();
|
|
32392
32611
|
init_module_imports();
|
|
32612
|
+
init_server_jsx_lowering();
|
|
32393
32613
|
init_vsk_imports();
|
|
32394
32614
|
__currentCompName = "";
|
|
32395
32615
|
}
|
|
@@ -33154,8 +33374,8 @@ function installMdReadHook(publicDirs) {
|
|
|
33154
33374
|
while (rel.length > 0 && rel.charCodeAt(0) === 47) rel = rel.slice(1);
|
|
33155
33375
|
const abs = resolveWithin(dir, rel);
|
|
33156
33376
|
if (!abs) continue;
|
|
33157
|
-
const
|
|
33158
|
-
if (!
|
|
33377
|
+
const lower2 = abs.toLowerCase();
|
|
33378
|
+
if (!lower2.endsWith(".md") && !lower2.endsWith(".markdown")) continue;
|
|
33159
33379
|
if (existsSync12(abs) && statSync4(abs).isFile()) return readFileSync12(abs, "utf8");
|
|
33160
33380
|
} catch {
|
|
33161
33381
|
}
|
|
@@ -37582,8 +37802,8 @@ function isPublicMarkdownPath2(v) {
|
|
|
37582
37802
|
if (c === 63 || c === 35 || c === 92)
|
|
37583
37803
|
return false;
|
|
37584
37804
|
}
|
|
37585
|
-
const
|
|
37586
|
-
return stringEndsWith2(
|
|
37805
|
+
const lower2 = s.toLowerCase();
|
|
37806
|
+
return stringEndsWith2(lower2, ".md") || stringEndsWith2(lower2, ".markdown");
|
|
37587
37807
|
}
|
|
37588
37808
|
function getMdPathCell2(path) {
|
|
37589
37809
|
let cell = mdPathCells2.get(path);
|
|
@@ -50155,7 +50375,7 @@ import { WebSocketServer as WebSocketServer2 } from "ws";
|
|
|
50155
50375
|
// ../compiler/dist/strip-ts.js
|
|
50156
50376
|
init_parser();
|
|
50157
50377
|
import { walk as walk6 } from "zimmerframe";
|
|
50158
|
-
import { print as
|
|
50378
|
+
import { print as print7 } from "esrap";
|
|
50159
50379
|
import ts6 from "esrap/languages/ts";
|
|
50160
50380
|
var TS_NODE_TYPES2 = /* @__PURE__ */ new Set([
|
|
50161
50381
|
"TSAsExpression",
|
|
@@ -50352,7 +50572,7 @@ function stripCodeTypes2(code) {
|
|
|
50352
50572
|
stripped.body = stripped.body.filter((n) => !isTypeOnlyStatement2(n));
|
|
50353
50573
|
}
|
|
50354
50574
|
try {
|
|
50355
|
-
return
|
|
50575
|
+
return print7(stripped, ts6()).code;
|
|
50356
50576
|
} catch {
|
|
50357
50577
|
return code;
|
|
50358
50578
|
}
|
|
@@ -50491,7 +50711,7 @@ init_vsk_imports();
|
|
|
50491
50711
|
init_md_inline();
|
|
50492
50712
|
init_strip_ts();
|
|
50493
50713
|
import { walk as walk7 } from "zimmerframe";
|
|
50494
|
-
import { print as
|
|
50714
|
+
import { print as print8 } from "esrap";
|
|
50495
50715
|
import ts7 from "esrap/languages/ts";
|
|
50496
50716
|
import tsx2 from "esrap/languages/tsx";
|
|
50497
50717
|
function callExpr2(callee, args2 = []) {
|
|
@@ -50558,12 +50778,12 @@ function semicolonizeStatement2(code) {
|
|
|
50558
50778
|
return code;
|
|
50559
50779
|
return code + ";";
|
|
50560
50780
|
}
|
|
50561
|
-
function
|
|
50781
|
+
function containsJsx3(node, depth = 0) {
|
|
50562
50782
|
if (!node || typeof node !== "object" || depth > 40)
|
|
50563
50783
|
return false;
|
|
50564
50784
|
if (Array.isArray(node)) {
|
|
50565
50785
|
for (const item of node) {
|
|
50566
|
-
if (
|
|
50786
|
+
if (containsJsx3(item, depth + 1))
|
|
50567
50787
|
return true;
|
|
50568
50788
|
}
|
|
50569
50789
|
return false;
|
|
@@ -50572,13 +50792,13 @@ function containsJsx2(node, depth = 0) {
|
|
|
50572
50792
|
return true;
|
|
50573
50793
|
for (const key of Object.keys(node)) {
|
|
50574
50794
|
const v = node[key];
|
|
50575
|
-
if (v && typeof v === "object" &&
|
|
50795
|
+
if (v && typeof v === "object" && containsJsx3(v, depth + 1))
|
|
50576
50796
|
return true;
|
|
50577
50797
|
}
|
|
50578
50798
|
return false;
|
|
50579
50799
|
}
|
|
50580
50800
|
function printAst2(ast) {
|
|
50581
|
-
return
|
|
50801
|
+
return print8(ast, containsJsx3(ast) ? tsx2() : ts7()).code;
|
|
50582
50802
|
}
|
|
50583
50803
|
function effectBlockToHandlerExpr2(eff) {
|
|
50584
50804
|
try {
|
|
@@ -50699,7 +50919,7 @@ function transformTracked2(irNode, tracked2) {
|
|
|
50699
50919
|
return context.next();
|
|
50700
50920
|
}
|
|
50701
50921
|
});
|
|
50702
|
-
return
|
|
50922
|
+
return print8(transformed, containsJsx3(transformed) ? tsx2() : ts7()).code;
|
|
50703
50923
|
}
|
|
50704
50924
|
function collectTrackedNames2(body) {
|
|
50705
50925
|
const names = /* @__PURE__ */ new Map();
|
|
@@ -53834,8 +54054,8 @@ function looksLikeMarkdownPath2(value) {
|
|
|
53834
54054
|
return false;
|
|
53835
54055
|
if (v.includes("\n") || v.includes("\r"))
|
|
53836
54056
|
return false;
|
|
53837
|
-
const
|
|
53838
|
-
return
|
|
54057
|
+
const lower2 = v.toLowerCase();
|
|
54058
|
+
return lower2.endsWith(MD_EXT_MARKER2) || lower2.endsWith(".markdown");
|
|
53839
54059
|
}
|
|
53840
54060
|
function isRelativeSpecifier2(v) {
|
|
53841
54061
|
return v.startsWith("./") || v.startsWith("../");
|
|
@@ -55041,8 +55261,8 @@ function installMdReadHook2(publicDirs) {
|
|
|
55041
55261
|
const abs = resolveWithin2(dir, rel);
|
|
55042
55262
|
if (!abs)
|
|
55043
55263
|
continue;
|
|
55044
|
-
const
|
|
55045
|
-
if (!
|
|
55264
|
+
const lower2 = abs.toLowerCase();
|
|
55265
|
+
if (!lower2.endsWith(".md") && !lower2.endsWith(".markdown"))
|
|
55046
55266
|
continue;
|
|
55047
55267
|
if (existsSync29(abs) && statSync15(abs).isFile())
|
|
55048
55268
|
return readFileSync25(abs, "utf8");
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vesk/vesk-cli",
|
|
3
|
-
"version": "0.2.50-canary.
|
|
3
|
+
"version": "0.2.50-canary.11",
|
|
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.50-canary.
|
|
12
|
-
"@vesk/compiler": "^0.2.50-canary.
|
|
13
|
-
"@vesk/plugin-tailwind": "^0.2.50-canary.
|
|
14
|
-
"@vesk/runtime": "^0.2.50-canary.
|
|
11
|
+
"@vesk/adapter": "^0.2.50-canary.11",
|
|
12
|
+
"@vesk/compiler": "^0.2.50-canary.11",
|
|
13
|
+
"@vesk/plugin-tailwind": "^0.2.50-canary.11",
|
|
14
|
+
"@vesk/runtime": "^0.2.50-canary.11",
|
|
15
15
|
"esrap": "^2.3.0",
|
|
16
16
|
"typescript": "^5.8.0",
|
|
17
17
|
"ws": "^8.18.0",
|