what-compiler 0.11.7 → 0.11.8

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.
@@ -1,5 +1,5 @@
1
- import q from"path";import{transformSync as Ue}from"@babel/core";var Me=new Set(["preventDefault","stopPropagation","once","capture","passive","self"]),Pe=new Set(["once","capture","passive"]),Ne=new Set(["area","base","br","col","embed","hr","img","input","link","meta","param","source","track","wbr"]),Oe=new Set(["click","input","change","keydown","keyup","submit","focusin","focusout","mousedown","mouseup"]),K=new Set(["Math","Number","String","Boolean","parseInt","parseFloat","isNaN","isFinite","encodeURIComponent","decodeURIComponent","encodeURI","decodeURI","JSON","Date","Array","Object","console","RegExp"]),de=new Set(["useSignal","signal","computed","useComputed","useState","useReducer","createResource","useSWR","useQuery","useInfiniteQuery"]),Te=new Set(["what-framework/server","what-server","what-server/actions"]);function je(e){let u=0xcbf29ce484222325n;for(let x=0;x<e.length;x++)u^=BigInt(e.charCodeAt(x)),u=BigInt.asUintN(64,u*0x100000001b3n);return u.toString(36)}function De(e,u){let x=String(e||"<unknown>").replace(/\\/g,"/").replace(/[?#].*$/,""),k=String(u||"").replace(/\\/g,"/").replace(/\/+$/,"");return k&&x.startsWith(`${k}/`)?x.slice(k.length+1):x.replace(/^\.\//,"")}function W(e){if(!/[\r\n]/.test(e))return e.replace(/\t/g," ");let u=e.split(/\r\n|\n|\r/),x=-1;for(let _=0;_<u.length;_++)/[^ \t]/.test(u[_])&&(x=_);if(x===-1)return"";let k="";for(let _=0;_<u.length;_++){let C=u[_].replace(/\t/g," "),F=_===0,A=_===u.length-1;F||(C=C.replace(/^ +/,"")),A||(C=C.replace(/ +$/,"")),C&&(_!==x&&(C+=" "),k+=C)}return k}function oe({types:e}){let u=new Set,x=new Set;function k(i,n){return!(!i.includes("__")||!i.startsWith("on")||i.split("__").slice(1).filter(t=>t!=="").length===0)}function _(i){let n=i.includes("|")?"|":"__",r=i.split(n),o=r[0],t=r.slice(1).filter(s=>Me.has(s));return{eventName:o,modifiers:t}}function C(i){return i.startsWith("bind:")}function F(i){return i.slice(5)}function A(i){return/^[A-Z]/.test(i)}function N(i){return Ne.has(String(i).toLowerCase())}function w(i){return i?e.isJSXExpressionContainer(i)?i.expression:e.isStringLiteral(i)?i:e.stringLiteral(i.value||""):e.booleanLiteral(!0)}function v(i){return i==="className"?"class":i==="htmlFor"?"for":i}function I(i){return e.isJSXNamespacedName(i.name)?`${i.name.namespace.name}:${i.name.name.name}`:typeof i.name.name=="string"?i.name.name:String(i.name.name)}function L(i,n){if(n.length===0)return i;let r=i;for(let o of n)switch(o){case"preventDefault":r=e.arrowFunctionExpression([e.identifier("e")],e.blockStatement([e.expressionStatement(e.callExpression(e.memberExpression(e.identifier("e"),e.identifier("preventDefault")),[])),e.expressionStatement(e.callExpression(r,[e.identifier("e")]))]));break;case"stopPropagation":r=e.arrowFunctionExpression([e.identifier("e")],e.blockStatement([e.expressionStatement(e.callExpression(e.memberExpression(e.identifier("e"),e.identifier("stopPropagation")),[])),e.expressionStatement(e.callExpression(r,[e.identifier("e")]))]));break;case"self":r=e.arrowFunctionExpression([e.identifier("e")],e.blockStatement([e.ifStatement(e.binaryExpression("===",e.memberExpression(e.identifier("e"),e.identifier("target")),e.memberExpression(e.identifier("e"),e.identifier("currentTarget"))),e.expressionStatement(e.callExpression(r,[e.identifier("e")])))]));break;case"once":case"capture":case"passive":break}return r}function M(i,n){return n.has(i)}function T(i){let n=new Set;function r(t){let s=t.init;if(!s||!e.isCallExpression(s))return;let a=s.callee,p="";if(e.isIdentifier(a)?p=a.name:e.isMemberExpression(a)&&e.isIdentifier(a.property)&&(p=a.property.name),de.has(p)){let c=t.id;if(e.isIdentifier(c))n.add(c.name);else if(e.isArrayPattern(c))for(let f of c.elements)e.isIdentifier(f)&&n.add(f.name);else if(e.isObjectPattern(c))for(let f of c.properties)e.isObjectProperty(f)&&e.isIdentifier(f.value)&&n.add(f.value.name)}}let o=i.scope;for(;o;){for(let s of Object.values(o.bindings))s.path.isVariableDeclarator()&&r(s.path.node);let t=o.path&&o.path.node;if(t&&t.params){for(let s of t.params)if(e.isObjectPattern(s))for(let a of s.properties)e.isObjectProperty(a)&&e.isIdentifier(a.value)?n.add(a.value.name):e.isRestElement(a)&&e.isIdentifier(a.argument)&&n.add(a.argument.name)}o=o.parent}return n}function R(i){return T(i)}function y(i){if(!e.isCallExpression(i))return!1;let n=i.callee;return e.isMemberExpression(n)&&e.isIdentifier(n.object)?K.has(n.object.name):e.isIdentifier(n)?K.has(n.name):!1}function $(i,n,r){if(!n)return!1;if(e.isCallExpression(i)){if(e.isIdentifier(i.callee)&&M(i.callee.name,n)||r&&e.isIdentifier(i.callee)&&r.has(i.callee.name)&&!K.has(i.callee.name)||e.isMemberExpression(i.callee)&&e.isIdentifier(i.callee.object)&&M(i.callee.object.name,n)||y(i))return!1;if(i.arguments.some(o=>S(o,n,r)))return!0}return!1}function S(i,n,r){return n||(n=new Set),e.isCallExpression(i)?e.isIdentifier(i.callee)&&M(i.callee.name,n)||r&&e.isIdentifier(i.callee)&&r.has(i.callee.name)&&!K.has(i.callee.name)||e.isMemberExpression(i.callee)&&e.isIdentifier(i.callee.object)&&M(i.callee.object.name,n)?!0:y(i)?i.arguments.some(o=>S(o,n,r)):e.isIdentifier(i.callee)?i.arguments.some(o=>S(o,n,r)):S(i.callee,n,r)||i.arguments.some(o=>S(o,n,r)):e.isIdentifier(i)?M(i.name,n)||r&&r.has(i.name):e.isMemberExpression(i)?S(i.object,n,r):e.isConditionalExpression(i)?S(i.test,n,r)||S(i.consequent,n,r)||S(i.alternate,n,r):e.isBinaryExpression(i)||e.isLogicalExpression(i)?S(i.left,n,r)||S(i.right,n,r):e.isUnaryExpression(i)?S(i.argument,n,r):e.isTemplateLiteral(i)?i.expressions.some(o=>S(o,n,r)):e.isObjectExpression(i)?i.properties.some(o=>e.isObjectProperty(o)&&S(o.value,n,r)):e.isArrayExpression(i)?i.elements.some(o=>o&&S(o,n,r)):(e.isArrowFunctionExpression(i)||e.isFunctionExpression(i),!1)}function H(i,n){let r=i,o=!1;if(e.isArrowFunctionExpression(i)&&i.params.length===0&&(r=i.body,o=!0),e.isConditionalExpression(r)){let s=D(r.consequent,n),a=D(r.alternate,n);if(s||a){let p=e.conditionalExpression(r.test,s||r.consequent,a||r.alternate);return o?e.arrowFunctionExpression([],p):p}return null}if(e.isLogicalExpression(r)&&(r.operator==="&&"||r.operator==="||")){let s=D(r.right,n);if(s){let a=e.logicalExpression(r.operator,r.left,s);return o?e.arrowFunctionExpression([],a):a}return null}return D(r,n)}function D(i,n){if(!e.isCallExpression(i)||!e.isMemberExpression(i.callee)||!e.isIdentifier(i.callee.property,{name:"map"})||i.arguments.length<1)return null;let r=i.arguments[0];if(!e.isArrowFunctionExpression(r)&&!e.isFunctionExpression(r))return null;let o=null;if(e.isArrowFunctionExpression(r)){if(e.isExpression(r.body))o=r.body;else if(e.isBlockStatement(r.body)){let l=r.body.body.find(m=>e.isReturnStatement(m));l&&(o=l.argument)}}else if(e.isFunctionExpression(r)){let l=r.body.body.find(m=>e.isReturnStatement(m));l&&(o=l.argument)}if(!o||!e.isJSXElement(o))return null;let t=o.openingElement.attributes,s=null;for(let l of t)if(e.isJSXAttribute(l)&&I(l)==="key"){s=l;break}if(!s)return null;let a=w(s.value);if(!a)return null;o.openingElement.attributes=t.filter(l=>l!==s);let p=i.callee.object,c=e.arrowFunctionExpression([],p),f=r.params[0]?e.cloneNode(r.params[0],!0):e.identifier("_item"),d=e.arrowFunctionExpression([f],e.cloneNode(a,!0));return e.callExpression(e.identifier("_$mapArray"),[c,r,e.objectExpression([e.objectProperty(e.identifier("key"),d),e.objectProperty(e.identifier("raw"),e.booleanLiteral(!0))])])}function z(i){if(e.isJSXText(i))return!0;if(e.isJSXExpressionContainer(i))return!1;if(e.isJSXElement(i)){let n=i.openingElement,r=n.name.name;if(A(r))return!1;for(let o of n.attributes){if(e.isJSXSpreadAttribute(o))return!1;let t=o.value;if(e.isJSXExpressionContainer(t))return!1}return i.children.every(z)}return!1}function P(i){return e.isJSXSpreadAttribute(i)?!0:i.value?e.isJSXExpressionContainer(i.value):!1}function V(i){if(e.isJSXText(i)){let s=W(i.value);return s?ee(s):""}if(e.isJSXExpressionContainer(i))return e.isJSXEmptyExpression(i.expression)?"":"<!--$-->";if(!e.isJSXElement(i))return"";let n=i.openingElement,r=n.name.name;if(A(r))return"";let o=`<${r}`;for(let s of n.attributes){if(e.isJSXSpreadAttribute(s))continue;let a=I(s);if(a==="key"||a.startsWith("on")||a.startsWith("bind:")||a.includes("|"))continue;let p=a;if(a==="className"&&(p="class"),a==="htmlFor"&&(p="for"),!s.value)o+=` ${p}`;else if(e.isStringLiteral(s.value))o+=` ${p}="${be(s.value.value)}"`;else if(e.isJSXExpressionContainer(s.value))continue}let t=i.openingElement.selfClosing;if(t&&N(r))return o+=">",o;if(t)return o+=`></${r}>`,o;o+=">";for(let s of i.children)if(e.isJSXText(s)){let a=W(s.value);a&&(o+=ee(a))}else e.isJSXExpressionContainer(s)?e.isJSXEmptyExpression(s.expression)||(o+="<!--$-->"):e.isJSXElement(s)&&(A(s.openingElement.name.name)?o+="<!--$-->":o+=V(s));return o+=`</${r}>`,o}function ee(i){return i.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function be(i){return i.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function B(i,n){let{node:r}=i,o=r.openingElement,t=o.name.name;if(t==="For")return we(i,n);if(t==="Show")return _e(i,n);if(A(t))return ve(i,n);let s=o.attributes,a=r.children,p=a.every(z),c=s.every(g=>!P(g)),f=s.every(g=>{if(e.isJSXSpreadAttribute(g))return!1;let E=I(g);return!E?.startsWith("on")&&!E?.startsWith("bind:")});if(p&&c&&f){let g=V(r);if(g){let E=fe(n,g);return n.needsTemplate=!0,e.callExpression(e.identifier(E),[])}}let d=V(r);if(!d){let g=r.loc,E=n.filename||n.file?.opts?.filename||"<unknown>",b=g?`:${g.start.line}:${g.start.column}`:"";return console.warn(`[what-compiler] Could not extract template for <${t}> at ${E}${b}. Falling back to h() for this element. This element could not be statically analyzed. Consider simplifying the JSX.`),n.needsH=!0,ne(i,n)}let l=fe(n,d);n.needsTemplate=!0;let m=n.nextVarId(),h=[e.variableDeclaration("const",[e.variableDeclarator(e.identifier(m),e.callExpression(e.identifier(l),[]))])];return le(h,m,s,n,t),ce(h,m,a,r,n),n._pendingSetup||(n._pendingSetup=[]),n._pendingSetup.push(...h),e.identifier(m)}function ne(i,n){let{node:r}=i,o=r.openingElement,t=o.name.name,s=o.attributes,a=r.children,p=[];for(let d of s){if(e.isJSXSpreadAttribute(d))continue;let l=I(d),m=w(d.value),h=v(l);p.push(e.objectProperty(/^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test(h)?e.identifier(h):e.stringLiteral(h),m))}let c=[];for(let d of a)if(e.isJSXText(d)){let l=W(d.value);l&&c.push(e.stringLiteral(l))}else e.isJSXExpressionContainer(d)?e.isJSXEmptyExpression(d.expression)||c.push(d.expression):e.isJSXElement(d)?c.push(B({node:d},n)):e.isJSXFragment(d)&&c.push(Z({node:d},n));let f=p.length>0?e.objectExpression(p):e.nullLiteral();return e.callExpression(e.identifier("h"),[e.stringLiteral(t),f,...c])}let Se=new Set(["input","textarea","select","option"]);function le(i,n,r,o,t){function s(c,f){return c==="class"?(o.needsSetClass=!0,e.callExpression(e.identifier("_$setClass"),[e.identifier(n),f])):c==="style"?(o.needsSetStyle=!0,e.callExpression(e.identifier("_$setStyle"),[e.identifier(n),f])):c==="value"&&t&&Se.has(t)?(o.needsSetValue=!0,e.callExpression(e.identifier("_$setValue"),[e.identifier(n),f])):c==="checked"&&t==="input"?(o.needsSetChecked=!0,e.callExpression(e.identifier("_$setChecked"),[e.identifier(n),f])):c.startsWith("data-")||c.startsWith("aria-")?(o.needsSetAttr=!0,e.callExpression(e.identifier("_$setAttr"),[e.identifier(n),e.stringLiteral(c),f])):(o.needsSetProp=!0,e.callExpression(e.identifier("_$setProp"),[e.identifier(n),e.stringLiteral(c),f]))}let a=!1;function p(){a||(a=!0,i.push(e.expressionStatement(e.callExpression(e.identifier("_$delegate$"),[]))))}for(let c of r){if(e.isJSXSpreadAttribute(c)){o.needsSpread=!0,i.push(e.expressionStatement(e.callExpression(e.identifier("_$spread"),[e.identifier(n),c.argument])));continue}let f=I(c);if(f!=="key"){if(f==="ref"){let d=w(c.value);i.push(e.expressionStatement(e.conditionalExpression(e.binaryExpression("===",e.unaryExpression("typeof",d),e.stringLiteral("function")),e.callExpression(e.cloneNode(d),[e.identifier(n)]),e.assignmentExpression("=",e.memberExpression(e.cloneNode(d),e.identifier("current")),e.identifier(n)))));continue}if(f.startsWith("on")&&!f.includes("|")&&!k(f,o)){let d=f.slice(2).toLowerCase(),l=w(c.value);Oe.has(d)?(o.needsDelegation=!0,o.delegatedEvents||(o.delegatedEvents=new Set),o.delegatedEvents.add(d),p(),i.push(e.expressionStatement(e.assignmentExpression("=",e.memberExpression(e.identifier(n),e.identifier(`$$${d}`)),l)))):i.push(e.expressionStatement(e.callExpression(e.memberExpression(e.identifier(n),e.identifier("addEventListener")),[e.stringLiteral(d),l])));continue}if(f.startsWith("on")&&(f.includes("|")||k(f,o))){let{eventName:d,modifiers:l}=_(f),m=w(c.value),h=L(m,l),g=d.slice(2).toLowerCase(),E=l.filter(O=>Pe.has(O)),b=[e.stringLiteral(g),h];if(E.length>0){let O=E.map(j=>e.objectProperty(e.identifier(j),e.booleanLiteral(!0)));b.push(e.objectExpression(O))}i.push(e.expressionStatement(e.callExpression(e.memberExpression(e.identifier(n),e.identifier("addEventListener")),b)));continue}if(C(f)){let d=F(f),l=c.value.expression;o.needsEffect=!0,d==="value"?(i.push(e.expressionStatement(e.callExpression(e.identifier("_$effect"),[e.arrowFunctionExpression([],e.assignmentExpression("=",e.memberExpression(e.identifier(n),e.identifier("value")),e.callExpression(e.cloneNode(l),[])))]))),i.push(e.expressionStatement(e.callExpression(e.memberExpression(e.identifier(n),e.identifier("addEventListener")),[e.stringLiteral("input"),e.arrowFunctionExpression([e.identifier("e")],e.callExpression(e.memberExpression(e.cloneNode(l),e.identifier("set")),[e.memberExpression(e.memberExpression(e.identifier("e"),e.identifier("target")),e.identifier("value"))]))])))):d==="checked"&&(o.needsEffect=!0,i.push(e.expressionStatement(e.callExpression(e.identifier("_$effect"),[e.arrowFunctionExpression([],e.assignmentExpression("=",e.memberExpression(e.identifier(n),e.identifier("checked")),e.callExpression(e.cloneNode(l),[])))]))),i.push(e.expressionStatement(e.callExpression(e.memberExpression(e.identifier(n),e.identifier("addEventListener")),[e.stringLiteral("change"),e.arrowFunctionExpression([e.identifier("e")],e.callExpression(e.memberExpression(e.cloneNode(l),e.identifier("set")),[e.memberExpression(e.memberExpression(e.identifier("e"),e.identifier("target")),e.identifier("checked"))]))]))));continue}if(e.isJSXExpressionContainer(c.value)){let d=c.value.expression,l=v(f);if(S(d,o.signalNames,o.importedIdentifiers)){o.needsEffect=!0;let m=e.isIdentifier(d)&&(M(d.name,o.signalNames)||o.importedIdentifiers&&o.importedIdentifiers.has(d.name))?e.callExpression(d,[]):d,h=e.callExpression(e.identifier("_$effect"),[e.arrowFunctionExpression([],s(l,m))]);$(d,o.signalNames,o.importedIdentifiers)&&e.addComment(h,"leading"," @what-dev: effect wrapping may be unnecessary \u2014 expression contains a non-signal function call with reactive args ",!1),i.push(e.expressionStatement(h))}else i.push(e.expressionStatement(s(l,d)))}}}}function ie(i){if(!i||typeof i!="object")return!1;if(Array.isArray(i))return i.some(ie);if(i.type==="JSXElement"||i.type==="JSXFragment"||i.type==="CallExpression"&&i.callee&&i.callee.type==="Identifier"&&(i.callee.name==="_$mapArray"||i.callee.name==="mapArray"))return!0;for(let n of Object.keys(i)){if(n==="loc"||n==="start"||n==="end"||n==="leadingComments"||n==="trailingComments"||n==="innerComments")continue;let r=i[n];if(r&&typeof r=="object"&&ie(r))return!0}return!1}function X(i,n,r){let o=null,t=!1;if(e.isConditionalExpression(i))o=i.test,t=!0;else if(e.isLogicalExpression(i)&&(i.operator==="&&"||i.operator==="||"))o=i.left;else return i;if(!S(o,r.signalNames,r.importedIdentifiers)||!(t?[i.consequent,i.alternate]:[i.right]).some(ie))return i;let a=r.nextMemoId();r.needsMemo=!0;let p=t?e.unaryExpression("!",e.unaryExpression("!",o)):o;n.push(e.variableDeclaration("const",[e.variableDeclarator(e.identifier(a),e.callExpression(e.identifier("_$memo"),[e.arrowFunctionExpression([],p)]))]));let c=e.callExpression(e.identifier(a),[]);return t?e.conditionalExpression(c,i.consequent,i.alternate):e.logicalExpression(i.operator,c,i.right)}function ce(i,n,r,o,t){let s=[],a=0;for(let l of r){if(e.isJSXText(l)){W(l.value)&&a++;continue}if(e.isJSXExpressionContainer(l)){if(e.isJSXEmptyExpression(l.expression))continue;s.push({type:"expression",child:l,childIndex:a}),a++;continue}if(e.isJSXElement(l)){let m=l.openingElement.name.name;if(A(m)||m==="For"||m==="Show")s.push({type:"component",child:l,childIndex:a}),a++;else{let h=l.openingElement.attributes.some(P)||l.openingElement.attributes.some(g=>!e.isJSXSpreadAttribute(g)&&I(g)?.startsWith("on"))||!l.children.every(z);s.push({type:"static",child:l,childIndex:a,hasAnythingDynamic:h}),a++}continue}e.isJSXFragment(l)&&s.push({type:"fragment",child:l})}let p=s.filter(l=>l.type==="expression"||l.type==="component"||l.type==="static"&&l.hasAnythingDynamic),c=p.length>=2,f=new Map;if(c){let l=null,m=0;for(let h of p){let g=h.childIndex,E=t.nextVarId();f.set(g,E);let b;if(l===null)b=re(n,g);else{b=e.identifier(l);for(let O=m;O<g;O++)b=e.memberExpression(b,e.identifier("nextSibling"))}i.push(e.variableDeclaration("const",[e.variableDeclarator(e.identifier(E),b)])),l=E,m=g}}function d(l){return f.has(l)?e.identifier(f.get(l)):re(n,l)}for(let l of s){if(l.type==="expression"){let m=l.child.expression,h=d(l.childIndex);t.needsInsert=!0;let g=H(m,t);if(g){t.needsMapArray=!0;let b=e.isCallExpression(g)&&e.isIdentifier(g.callee)&&(g.callee.name==="_$mapArray"||g.callee.name==="mapArray"),O=e.isArrowFunctionExpression(g);O&&e.isExpression(g.body)?g.body=X(g.body,i,t):!b&&!O&&(g=X(g,i,t));let j=b||O?g:e.arrowFunctionExpression([],g);i.push(e.expressionStatement(e.callExpression(e.identifier("_$insert"),[e.identifier(n),j,h])));continue}if(e.isCallExpression(m)&&e.isIdentifier(m.callee)&&(m.callee.name==="mapArray"||m.callee.name==="_$mapArray")){t.needsMapArray=!0,m.callee.name==="mapArray"&&(m.callee.name="_$mapArray"),i.push(e.expressionStatement(e.callExpression(e.identifier("_$insert"),[e.identifier(n),m,h])));continue}if(S(m,t.signalNames,t.importedIdentifiers)){m=X(m,i,t);let b=e.callExpression(e.identifier("_$insert"),[e.identifier(n),e.arrowFunctionExpression([],m),h]);$(m,t.signalNames,t.importedIdentifiers)&&e.addComment(b,"leading"," @what-dev: reactive wrapping may be unnecessary \u2014 expression contains a non-signal function call with reactive args ",!1),i.push(e.expressionStatement(b))}else i.push(e.expressionStatement(e.callExpression(e.identifier("_$insert"),[e.identifier(n),m,h])));continue}if(l.type==="component"){let m=B({node:l.child},t),h=d(l.childIndex);t.needsInsert=!0,i.push(e.expressionStatement(e.callExpression(e.identifier("_$insert"),[e.identifier(n),m,h])));continue}if(l.type==="static"&&l.hasAnythingDynamic){let m;f.has(l.childIndex)?m=f.get(l.childIndex):(m=t.nextVarId(),i.push(e.variableDeclaration("const",[e.variableDeclarator(e.identifier(m),re(n,l.childIndex))]))),le(i,m,l.child.openingElement.attributes,t,l.child.openingElement.name.name),ce(i,m,l.child.children,l.child,t);continue}if(l.type==="fragment"){for(let m of l.child.children)if(e.isJSXExpressionContainer(m)&&!e.isJSXEmptyExpression(m.expression)){t.needsInsert=!0;let h=m.expression;S(h,t.signalNames,t.importedIdentifiers)?(h=X(h,i,t),i.push(e.expressionStatement(e.callExpression(e.identifier("_$insert"),[e.identifier(n),e.arrowFunctionExpression([],h)])))):i.push(e.expressionStatement(e.callExpression(e.identifier("_$insert"),[e.identifier(n),h])))}}}}function re(i,n){if(n===0)return e.memberExpression(e.identifier(i),e.identifier("firstChild"));let r=e.memberExpression(e.identifier(i),e.identifier("firstChild"));for(let o=0;o<n;o++)r=e.memberExpression(r,e.identifier("nextSibling"));return r}function ve(i,n){let{node:r}=i,o=r.openingElement,t=o.name.name,s=o.attributes,a=r.children,p=null,c=[];for(let E of s){if(e.isJSXAttribute(E)){let b;if(e.isJSXNamespacedName(E.name)?b=`${E.name.namespace.name}:${E.name.name.name}`:b=E.name.name,b&&typeof b=="string"&&b.startsWith("client:")){let O=b.slice(7);E.value?p={type:O,value:E.value.value}:p={type:O};continue}}c.push(E)}if(p){n.needsCreateComponent=!0,n.needsIsland=!0;let E=[e.objectProperty(e.identifier("component"),e.identifier(t)),e.objectProperty(e.identifier("mode"),e.stringLiteral(p.type))];p.value&&E.push(e.objectProperty(e.identifier("mediaQuery"),e.stringLiteral(p.value)));for(let b of c){if(e.isJSXSpreadAttribute(b))continue;let O=I(b),j=w(b.value);E.push(e.objectProperty(e.identifier(O),j))}return e.callExpression(e.identifier("_$createComponent"),[e.identifier("Island"),e.objectExpression(E),e.arrayExpression([])])}n.needsCreateComponent=!0;let f=[],d=!1,l=null;for(let E of c){if(e.isJSXSpreadAttribute(E)){d=!0,l=E.argument;continue}let b=I(E);if(b==="key")continue;if(C(b)){let j=F(b),U=E.value.expression;j==="value"?(f.push(e.objectProperty(e.identifier("value"),e.callExpression(e.cloneNode(U),[]))),f.push(e.objectProperty(e.identifier("onInput"),e.arrowFunctionExpression([e.identifier("e")],e.callExpression(e.memberExpression(e.cloneNode(U),e.identifier("set")),[e.memberExpression(e.memberExpression(e.identifier("e"),e.identifier("target")),e.identifier("value"))]))))):j==="checked"&&(f.push(e.objectProperty(e.identifier("checked"),e.callExpression(e.cloneNode(U),[]))),f.push(e.objectProperty(e.identifier("onChange"),e.arrowFunctionExpression([e.identifier("e")],e.callExpression(e.memberExpression(e.cloneNode(U),e.identifier("set")),[e.memberExpression(e.memberExpression(e.identifier("e"),e.identifier("target")),e.identifier("checked"))])))));continue}if(b.startsWith("on")&&(b.includes("|")||k(b,n))){let{eventName:j,modifiers:U}=_(b),Le=w(E.value),Fe=L(Le,U);f.push(e.objectProperty(e.identifier(j),Fe));continue}let O=w(E.value);f.push(e.objectProperty(/^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test(b)?e.identifier(b):e.stringLiteral(b),O))}let m=[];for(let E of a)if(e.isJSXText(E)){let b=W(E.value);b&&m.push(e.stringLiteral(b))}else e.isJSXExpressionContainer(E)?e.isJSXEmptyExpression(E.expression)||m.push(E.expression):e.isJSXElement(E)?m.push(B({node:E},n)):e.isJSXFragment(E)&&m.push(Z({node:E},n));let h;d?f.length>0?h=e.callExpression(e.memberExpression(e.identifier("Object"),e.identifier("assign")),[e.objectExpression([]),l,e.objectExpression(f)]):h=l:f.length>0?h=e.objectExpression(f):h=e.nullLiteral();let g=m.length>0?e.arrayExpression(m):e.arrayExpression([]);return e.callExpression(e.identifier("_$createComponent"),[e.identifier(t),h,g])}function we(i,n){let{node:r}=i,o=r.openingElement.attributes,t=r.children,s=null,a=null;for(let f of o)if(e.isJSXAttribute(f)){let d=I(f);d==="each"?s=w(f.value):d==="key"&&(a=w(f.value))}if(!s)return console.warn('[what-compiler] <For> element missing "each" attribute.'),n.needsH=!0,ne(i,n);let p=null;for(let f of t)if(e.isJSXExpressionContainer(f)&&!e.isJSXEmptyExpression(f.expression)){p=f.expression;break}if(!p)return console.warn("[what-compiler] <For> element missing render function child."),n.needsH=!0,ne(i,n);n.needsMapArray=!0;let c=[s,p];return a&&c.push(e.objectExpression([e.objectProperty(e.identifier("key"),a)])),e.callExpression(e.identifier("_$mapArray"),c)}function _e(i,n){let{node:r}=i,o=r.openingElement.attributes,t=r.children,s=null,a=null;for(let h of o)if(e.isJSXAttribute(h)){let g=I(h);g==="when"?s=w(h.value):g==="fallback"&&(a=w(h.value))}if(!s)throw i.buildCodeFrameError('<Show> requires a "when" prop. Example: <Show when={isOpen} fallback={null}>...</Show>');let p=null;for(let h of t)if(e.isJSXExpressionContainer(h)&&!e.isJSXEmptyExpression(h.expression)){p=h.expression;break}if(!p){let h=[];for(let g of t)if(e.isJSXText(g)){let E=W(g.value);E&&h.push(e.stringLiteral(E))}else e.isJSXElement(g)&&h.push(B({node:g},n));h.length===1?p=h[0]:h.length>1?p=e.arrayExpression(h):p=e.nullLiteral()}let c;e.isCallExpression(s)?c=s:e.isArrowFunctionExpression(s)&&e.isExpression(s.body)?c=s.body:e.isIdentifier(s)&&(n.signalNames&&M(s.name,n.signalNames)||n.importedIdentifiers&&n.importedIdentifiers.has(s.name))?c=e.callExpression(s,[]):c=s;let f=i.scope?i.scope.generateUidIdentifier("v"):e.identifier("_v"),d=e.isFunction(p),l=d?e.callExpression(p,[e.cloneNode(f)]):p,m=a||e.nullLiteral();if(S(c,n.signalNames,n.importedIdentifiers)){let h=n.nextMemoId();n.needsMemo=!0;let g=d?c:e.unaryExpression("!",e.unaryExpression("!",c));n._pendingSetup||(n._pendingSetup=[]),n._pendingSetup.push(e.variableDeclaration("const",[e.variableDeclarator(e.identifier(h),e.callExpression(e.identifier("_$memo"),[e.arrowFunctionExpression([],g)]))])),c=e.callExpression(e.identifier(h),[])}return e.arrowFunctionExpression([],e.blockStatement([e.variableDeclaration("const",[e.variableDeclarator(f,c)]),e.returnStatement(e.conditionalExpression(e.cloneNode(f),l,m))]))}function $e(i,n){n._pendingSetup||(n._pendingSetup=[]);let r=n._pendingSetup,o=H(i,n);if(o){n.needsMapArray=!0;let s=e.isCallExpression(o)&&e.isIdentifier(o.callee)&&(o.callee.name==="_$mapArray"||o.callee.name==="mapArray");if(e.isArrowFunctionExpression(o)&&e.isExpression(o.body))return o.body=X(o.body,r,n),o;if(s)return o;let p=X(o,r,n);return e.arrowFunctionExpression([],p)}return e.isCallExpression(i)&&e.isIdentifier(i.callee)&&(i.callee.name==="mapArray"||i.callee.name==="_$mapArray")?(n.needsMapArray=!0,i.callee.name==="mapArray"&&(i.callee.name="_$mapArray"),i):S(i,n.signalNames,n.importedIdentifiers)?(i=X(i,r,n),e.arrowFunctionExpression([],i)):i}function Z(i,n){let{node:r}=i,o=r.children,t=[];for(let s of o)if(e.isJSXText(s)){let a=W(s.value);a&&t.push(e.stringLiteral(a))}else e.isJSXExpressionContainer(s)?e.isJSXEmptyExpression(s.expression)||t.push($e(s.expression,n)):e.isJSXElement(s)?t.push(B({node:s},n)):e.isJSXFragment(s)&&t.push(Z({node:s},n));return t.length===1?t[0]:e.arrayExpression(t)}function fe(i,n){if(i.templateMap.has(n))return i.templateMap.get(n);let r=`_tmpl$${i.templateCount++}`;return i.templateMap.set(n,r),i.templates.push({id:r,html:n}),r}function pe(i,n,r){let o=i.scope,t=n._signalNamesCache;t||(t=n._signalNamesCache=new WeakMap);let s=t.get(o);s||(s=T(i),t.set(o,s)),n.signalNames=s,n._pendingSetup=[];let a=r(i,n),p=n._pendingSetup;if(n._pendingSetup=[],p.length>0){let c=i,f=!1;for(;c&&!c.isStatement();)(c.isArrowFunctionExpression()||c.isFunctionExpression())&&(f=!0),c=c.parentPath;c&&c.isStatement()&&(c.listKey==="body"||c.listKey==="consequent")&&Array.isArray(c.container)&&!f?(c.insertBefore(p),i.replaceWith(a)):(p.push(e.returnStatement(a)),i.replaceWith(e.callExpression(e.arrowFunctionExpression([],e.blockStatement(p)),[])))}else i.replaceWith(a)}function Ce(i){let n=i.parentPath;if(n?.isVariableDeclarator()&&e.isIdentifier(n.node.id))return n.node.id.name;if(n?.isAssignmentExpression()&&e.isIdentifier(n.node.left))return n.node.left.name;if(n?.isExportDefaultDeclaration())return"default";if(n?.isObjectProperty()&&!n.node.computed){if(e.isIdentifier(n.node.key))return n.node.key.name;if(e.isStringLiteral(n.node.key))return n.node.key.value}return null}function ke(i,n){let r=i.node.callee;return e.isIdentifier(r)?n.serverActionBindings.has(r.name):e.isMemberExpression(r)&&!r.computed&&e.isIdentifier(r.object)&&e.isIdentifier(r.property,{name:"action"})&&n.serverActionNamespaces.has(r.object.name)}function Ae(i){if(!e.isObjectExpression(i))return{property:null,value:null};for(let n of i.properties)if(!(!e.isObjectProperty(n)||(e.isIdentifier(n.key)&&!n.computed?n.key.name:e.isStringLiteral(n.key)?n.key.value:null)!=="id"))return e.isStringLiteral(n.value)?{property:n,value:n.value.value}:e.isTemplateLiteral(n.value)&&n.value.expressions.length===0?{property:n,value:n.value.quasis[0]?.value.cooked||""}:{property:n,value:null};return{property:null,value:null}}function ue(i,n,r,o,t){let s=i.node.loc?.start||{line:0,column:0},a=`${t}:${s.line}:${s.column+1}`,p=`${t}#${o}`,c=n.serverActionIds.get(r);if(c)throw i.buildCodeFrameError(`Duplicate server action ID "${r}". First declared by "${c.bindingName}" at ${c.source}; conflicts with "${o}" at ${a}.`);let f={id:r,key:p,bindingName:o,filename:t,source:a,loc:s};if(n.serverActionIds.set(r,f),typeof n.opts?.onActionId=="function")try{n.opts.onActionId(f)}catch(d){throw i.buildCodeFrameError(d instanceof Error?d.message:String(d))}}function Ie(i,n){if(!ke(i,n))return;let r=Ce(i);if(!r){n.opts?.production||console.warn(`[what-compiler] Could not derive a stable server action ID at ${n.serverActionFilename}:${i.node.loc?.start.line||0}. Assign action(...) to a named local or export, or pass { id } explicitly.`);return}let o=i.node.arguments[1],t=Ae(o);if(t.property){t.value!==null&&ue(i,n,t.value,r,n.serverActionFilename);return}let s=`wa1_${je(`${n.serverActionFilename}#${r}`)}`;ue(i,n,s,r,n.serverActionFilename);let a=e.objectProperty(e.identifier("id"),e.stringLiteral(s));o?e.isObjectExpression(o)?o.properties.unshift(a):i.node.arguments[1]=e.objectExpression([a,e.spreadElement(o)]):i.node.arguments.push(e.objectExpression([a]))}return{name:"what-jsx-transform",visitor:{Program:{enter(i,n){n.needsTemplate=!1,n.needsInsert=!1,n.needsEffect=!1,n.needsMapArray=!1,n.needsSpread=!1,n.needsSetProp=!1,n.needsMemo=!1,n.needsSetClass=!1,n.needsSetStyle=!1,n.needsSetAttr=!1,n.needsSetValue=!1,n.needsSetChecked=!1,n.needsH=!1,n.needsCreateComponent=!1,n.needsFragment=!1,n.needsIsland=!1,n.needsDelegation=!1,n.delegatedEvents=new Set,n.templates=[],n.templateMap=new Map,n.templateCount=0,n._varCounter=0,n._memoCounter=0,n._pendingSetup=[],n.nextVarId=()=>`_el$${n._varCounter++}`,n.nextMemoId=()=>`_c$${n._memoCounter++}`,n.serverActionBindings=new Set,n.serverActionNamespaces=new Set,n.serverActionIds=new Map,n.serverActionFilename=De(n.file?.opts?.filename,n.opts?.projectRoot||n.file?.opts?.cwd),n.signalNames=new Set,n.importedIdentifiers=new Set;for(let r of i.node.body)if(e.isImportDeclaration(r)){let o=r.source.value,t=o==="what-framework"||o.startsWith("what-framework/")||o==="what-core"||o.startsWith("what-core/")||o.startsWith("./")||o.startsWith("../");for(let s of r.specifiers){let a=null;(e.isImportSpecifier(s)&&e.isIdentifier(s.local)||e.isImportDefaultSpecifier(s)&&e.isIdentifier(s.local)||e.isImportNamespaceSpecifier(s)&&e.isIdentifier(s.local))&&(a=s.local.name),a&&(t||/^(use|create)[A-Z]/.test(a))&&n.importedIdentifiers.add(a),Te.has(o)&&(e.isImportSpecifier(s)&&e.isIdentifier(s.imported,{name:"action"})&&e.isIdentifier(s.local)?n.serverActionBindings.add(s.local.name):e.isImportNamespaceSpecifier(s)&&e.isIdentifier(s.local)&&n.serverActionNamespaces.add(s.local.name))}}i.traverse({CallExpression(r){Ie(r,n)},VariableDeclarator(r){let o=r.node.init;if(!o||!e.isCallExpression(o))return;let t=o.callee,s="";if(e.isIdentifier(t)?s=t.name:e.isMemberExpression(t)&&e.isIdentifier(t.property)&&(s=t.property.name),de.has(s)){let a=r.node.id;if(e.isIdentifier(a))n.signalNames.add(a.name);else if(e.isArrayPattern(a))for(let p of a.elements)e.isIdentifier(p)&&n.signalNames.add(p.name);else if(e.isObjectPattern(a))for(let p of a.properties)e.isObjectProperty(p)&&e.isIdentifier(p.value)&&n.signalNames.add(p.value.name)}}})},exit(i,n){for(let t of n.templates.reverse()){let s=e.callExpression(e.identifier("_$template"),[e.stringLiteral(t.html)]);e.addComment(s,"leading"," @__PURE__ "),i.unshiftContainer("body",e.variableDeclaration("const",[e.variableDeclarator(e.identifier(t.id),s)]))}let r=[];n.needsTemplate&&r.push(e.importSpecifier(e.identifier("_$template"),e.identifier("_$template"))),n.needsInsert&&r.push(e.importSpecifier(e.identifier("_$insert"),e.identifier("insert"))),n.needsEffect&&r.push(e.importSpecifier(e.identifier("_$effect"),e.identifier("effect"))),n.needsMapArray&&r.push(e.importSpecifier(e.identifier("_$mapArray"),e.identifier("mapArray"))),n.needsSpread&&r.push(e.importSpecifier(e.identifier("_$spread"),e.identifier("spread"))),n.needsSetProp&&r.push(e.importSpecifier(e.identifier("_$setProp"),e.identifier("setProp"))),n.needsMemo&&r.push(e.importSpecifier(e.identifier("_$memo"),e.identifier("memo"))),n.needsSetClass&&r.push(e.importSpecifier(e.identifier("_$setClass"),e.identifier("setClass"))),n.needsSetStyle&&r.push(e.importSpecifier(e.identifier("_$setStyle"),e.identifier("setStyle"))),n.needsSetAttr&&r.push(e.importSpecifier(e.identifier("_$setAttr"),e.identifier("setAttr"))),n.needsSetValue&&r.push(e.importSpecifier(e.identifier("_$setValue"),e.identifier("setValue"))),n.needsSetChecked&&r.push(e.importSpecifier(e.identifier("_$setChecked"),e.identifier("setChecked"))),n.needsCreateComponent&&r.push(e.importSpecifier(e.identifier("_$createComponent"),e.identifier("_$createComponent"))),n.needsDelegation&&r.push(e.importSpecifier(e.identifier("_$delegateEvents"),e.identifier("delegateEvents")));let o=[];if(n.needsH&&o.push(e.importSpecifier(e.identifier("h"),e.identifier("h"))),n.needsFragment&&o.push(e.importSpecifier(e.identifier("Fragment"),e.identifier("Fragment"))),n.needsIsland&&o.push(e.importSpecifier(e.identifier("Island"),e.identifier("Island"))),r.length>0){let t=null;for(let s of i.node.body)if(e.isImportDeclaration(s)&&(s.source.value==="what-framework/render"||s.source.value==="what-core/render")){t=s;break}if(t){let s=new Set(t.specifiers.filter(a=>e.isImportSpecifier(a)).map(a=>a.imported.name));for(let a of r)s.has(a.imported.name)||t.specifiers.push(a)}else i.unshiftContainer("body",e.importDeclaration(r,e.stringLiteral("what-framework/render")))}if(o.length>0&&Je(i,e,o),n.needsDelegation&&n.delegatedEvents&&n.delegatedEvents.size>0){let t=e.arrayExpression([...n.delegatedEvents].map(a=>e.stringLiteral(a))),s=e.functionDeclaration(e.identifier("_$delegate$"),[],e.blockStatement([e.ifStatement(e.identifier("_$delegated$"),e.returnStatement()),e.expressionStatement(e.assignmentExpression("=",e.identifier("_$delegated$"),e.booleanLiteral(!0))),e.expressionStatement(e.callExpression(e.identifier("_$delegateEvents"),[t]))]));i.unshiftContainer("body",[e.variableDeclaration("let",[e.variableDeclarator(e.identifier("_$delegated$"),e.booleanLiteral(!1))]),s])}}},JSXElement(i,n){pe(i,n,B)},JSXFragment(i,n){pe(i,n,Z)}}}}function Je(e,u,x){let k=null;for(let _ of e.node.body)if(u.isImportDeclaration(_)&&(_.source.value==="what-core"||_.source.value==="what-framework")){k=_;break}if(k){let _=new Set(k.specifiers.filter(C=>u.isImportSpecifier(C)).map(C=>C.imported.name));for(let C of x)_.has(C.imported.name)||k.specifiers.push(C)}else{let _=u.importDeclaration(x,u.stringLiteral("what-framework"));e.unshiftContainer("body",_)}}import G from"fs";import J from"path";var me=new Set([".jsx",".tsx",".js",".ts"]),Re=new Set(["_layout","_error","_loading","_404"]);function Xe(e){let u=[],x=[],k=[];function _(F,A=""){if(!G.existsSync(F))return;let N=G.readdirSync(F,{withFileTypes:!0});for(let w of N){let v=J.join(F,w.name);if(w.isDirectory()){if(w.name.match(/^\((.+)\)$/)){_(v,A);continue}if(w.name==="api"&&A===""){C(v,"/api");continue}_(v,A+"/"+Y(w.name));continue}let I=J.extname(w.name);if(!me.has(I))continue;let L=J.basename(w.name,I);if(L==="_layout"){x.push({filePath:v,urlPrefix:A||"/"});continue}if(Re.has(L))continue;let M=Y(L),T=L==="index"?A||"/":A+"/"+M;u.push({filePath:v,routePath:he(T),isDynamic:T.includes(":")||T.includes("*")})}}function C(F,A){if(!G.existsSync(F))return;let N=G.readdirSync(F,{withFileTypes:!0});for(let w of N){let v=J.join(F,w.name);if(w.isDirectory()){C(v,A+"/"+Y(w.name));continue}let I=J.extname(w.name);if(!me.has(I))continue;let L=J.basename(w.name,I),M=Y(L),T=L==="index"?A:A+"/"+M;k.push({filePath:v,routePath:he(T)})}}return _(e),u.sort((F,A)=>{let N=ge(F.routePath),w=ge(A.routePath);return N-w}),{pages:u,layouts:x,apiRoutes:k}}function Y(e){let u=e.match(/^\[\.\.\.(\w+)\]$/);if(u)return"*"+u[1];let x=e.match(/^\[(\w+)\]$/);return x?":"+x[1]:e.toLowerCase()}function he(e){let u=e.replace(/\/+/g,"/");return u.length>1&&u.endsWith("/")&&(u=u.slice(0,-1)),u||"/"}function ge(e){return e.includes("*")?100:e.includes(":")?10:0}function We(e){let u=e.match(/export\s+const\s+page\s*=\s*(\{[^}]*\})/s);if(!u)return{mode:"client"};try{let x=u[1].replace(/'/g,'"').replace(/(\w+)\s*:/g,'"$1":').replace(/,\s*}/g,"}").replace(/\/\/[^\n]*/g,"");return{mode:"client",...JSON.parse(x)}}catch{return{mode:"client"}}}function He(e){return{hasLoader:/export\s+(?:async\s+)?(?:const|let|var|function)\s+loader\b/.test(e),hasGetStaticPaths:/export\s+(?:async\s+)?(?:const|let|var|function)\s+getStaticPaths\b/.test(e),hasPageConfig:/export\s+const\s+page\b/.test(e)}}function Ee(e,u){let{pages:x,layouts:k,apiRoutes:_}=Xe(e),C=[],F=[],A=new Map;k.forEach((v,I)=>{let L=`_layout${I}`,M=se(v.filePath,u);C.push(`import ${L} from '${M}';`),A.set(v.urlPrefix,L)}),x.forEach((v,I)=>{let L=`_page${I}`,M=se(v.filePath,u);C.push(`import ${L} from '${M}';`);let T={mode:"client"},R={hasLoader:!1,hasGetStaticPaths:!1,hasPageConfig:!1};try{let S=G.readFileSync(v.filePath,"utf-8");T=We(S),R=He(S)}catch{}let y=Ve(v.routePath,A),$={path:v.routePath,component:L,mode:T.mode||"client",layout:y||null,hasLoader:R.hasLoader};F.push($)});let N=[];return _.forEach((v,I)=>{let L=`_api${I}`,M=se(v.filePath,u);C.push(`import * as ${L} from '${M}';`),N.push({path:v.routePath,handlers:L})}),["// Auto-generated by What Framework file router","// Do not edit \u2014 changes will be overwritten","",...C,"","export const routes = [",...F.map(v=>` { path: '${v.path}', component: ${v.component}, mode: '${v.mode}'${v.layout?`, layout: ${v.layout}`:""}${v.hasLoader?", hasLoader: true":""} },`),"];","","export const apiRoutes = [",...N.map(v=>` { path: '${v.path}', handlers: ${v.handlers} },`),"];","","export const pageModes = {",...F.map(v=>` '${v.path}': '${v.mode}',`),"};"].join(`
2
- `)}function se(e,u){return"/"+J.relative(u,e).split(J.sep).join("/")}function Ve(e,u){let x=e.split("/").filter(Boolean);for(;x.length>0;){let k="/"+x.join("/");if(u.has(k))return u.get(k);x.pop()}return u.has("/")?u.get("/"):null}var Be=`
1
+ import Y from"path";import{transformSync as tn}from"@babel/core";var Ve=new Set(["preventDefault","stopPropagation","once","capture","passive","self"]),Be=new Set(["once","capture","passive"]),Ue=new Set(["area","base","br","col","embed","hr","img","input","link","meta","param","source","track","wbr"]),ze=new Set(["click","input","change","keydown","keyup","submit","focusin","focusout","mousedown","mouseup"]),ne=new Set(["Math","Number","String","Boolean","parseInt","parseFloat","isNaN","isFinite","encodeURIComponent","decodeURIComponent","encodeURI","decodeURI","JSON","Date","Array","Object","console","RegExp"]),_e=new Set(["useSignal","signal","computed","useComputed","useState","useReducer","createResource","useSWR","useQuery","useInfiniteQuery"]),Ge=new Set(["For","Show","Switch","Match"]),qe=new Set(["what-framework/server","what-server","what-server/actions"]);function Ze(e){let m=0xcbf29ce484222325n;for(let x=0;x<e.length;x++)m^=BigInt(e.charCodeAt(x)),m=BigInt.asUintN(64,m*0x100000001b3n);return m.toString(36)}function Ke(e,m){let x=String(e||"<unknown>").replace(/\\/g,"/").replace(/[?#].*$/,""),C=String(m||"").replace(/\\/g,"/").replace(/\/+$/,"");return C&&x.startsWith(`${C}/`)?x.slice(C.length+1):x.replace(/^\.\//,"")}function W(e){if(!/[\r\n]/.test(e))return e.replace(/\t/g," ");let m=e.split(/\r\n|\n|\r/),x=-1;for(let _=0;_<m.length;_++)/[^ \t]/.test(m[_])&&(x=_);if(x===-1)return"";let C="";for(let _=0;_<m.length;_++){let $=m[_].replace(/\t/g," "),F=_===0,P=_===m.length-1;F||($=$.replace(/^ +/,"")),P||($=$.replace(/ +$/,"")),$&&(_!==x&&($+=" "),C+=$)}return C}function fe({types:e}){let m=new Set,x=new Set;function C(i,n){return!(!i.includes("__")||!i.startsWith("on")||i.split("__").slice(1).filter(t=>t!=="").length===0)}function _(i){let n=i.includes("|")?"|":"__",r=i.split(n),o=r[0],t=r.slice(1).filter(a=>Ve.has(a));return{eventName:o,modifiers:t}}function $(i){return i.startsWith("bind:")}function F(i){return i.slice(5)}function P(i){return/^[A-Z]/.test(i)}function L(i){let n=i.openingElement?i.openingElement.name:i.name;return e.isJSXMemberExpression(n)?!0:e.isJSXIdentifier(n)&&P(n.name)}function k(i,n){return!!(n.foreignImports&&n.foreignImports.has(i))}function S(i,n){return!!(n.whatImports&&n.whatImports.has(i))}function T(i){return i.children.some(n=>e.isJSXElement(n)&&e.isJSXIdentifier(n.openingElement.name,{name:"Match"}))}function A(i){return e.isJSXMemberExpression(i)?e.memberExpression(A(i.object),e.identifier(i.property.name)):e.identifier(i.name)}function X(i){let n=i.node.params;if(n.length!==1||!e.isObjectPattern(n[0]))return;let r=n[0],o=-1;for(let c=0;c<r.properties.length;c++){let p=r.properties[c];if(e.isRestElement(p))return;if(e.isObjectProperty(p)&&!p.computed&&e.isIdentifier(p.key,{name:"children"})){if(o!==-1||!e.isIdentifier(p.value))return;o=c}}if(o===-1)return;let t=i.scope.getBinding(r.properties[o].value.name);if(!t||t.constantViolations.length>0||t.referencePaths.length===0||!t.referencePaths.every(c=>{let p=c.parentPath;if(!p||!p.isJSXExpressionContainer())return!1;let d=p.parentPath;if(!d||!d.isJSXElement()||!L(d.node))return!1;let l=d.node.openingElement.name;return!(e.isJSXIdentifier(l)&&Ge.has(l.name))}))return;let s=i.scope.generateUidIdentifier("props");r.typeAnnotation&&(s.typeAnnotation=r.typeAnnotation),n[0]=s;let u=r.properties.filter((c,p)=>p!==o);if(u.length>0){e.isBlockStatement(i.node.body)||(i.node.body=e.blockStatement([e.returnStatement(i.node.body)]));let c=e.objectPattern(u);i.node.body.body.unshift(e.variableDeclaration("const",[e.variableDeclarator(c,e.cloneNode(s))])),i.node._whatMovedProps=c}for(let c of t.referencePaths)c.replaceWith(e.memberExpression(e.cloneNode(s),e.identifier("children")));i.scope.crawl()}function j(i){return Ue.has(String(i).toLowerCase())}function N(i){return i?e.isJSXExpressionContainer(i)?i.expression:e.isStringLiteral(i)?i:e.stringLiteral(i.value||""):e.booleanLiteral(!0)}function b(i){return i==="className"?"class":i==="htmlFor"?"for":i}function y(i){return e.isJSXNamespacedName(i.name)?`${i.name.namespace.name}:${i.name.name.name}`:typeof i.name.name=="string"?i.name.name:String(i.name.name)}function J(i){return!!i&&i.length>2&&/^on/i.test(i)}function U(i,n){if(n.length===0)return i;let r=i;for(let o of n)switch(o){case"preventDefault":r=e.arrowFunctionExpression([e.identifier("e")],e.blockStatement([e.expressionStatement(e.callExpression(e.memberExpression(e.identifier("e"),e.identifier("preventDefault")),[])),e.expressionStatement(e.callExpression(r,[e.identifier("e")]))]));break;case"stopPropagation":r=e.arrowFunctionExpression([e.identifier("e")],e.blockStatement([e.expressionStatement(e.callExpression(e.memberExpression(e.identifier("e"),e.identifier("stopPropagation")),[])),e.expressionStatement(e.callExpression(r,[e.identifier("e")]))]));break;case"self":r=e.arrowFunctionExpression([e.identifier("e")],e.blockStatement([e.ifStatement(e.binaryExpression("===",e.memberExpression(e.identifier("e"),e.identifier("target")),e.memberExpression(e.identifier("e"),e.identifier("currentTarget"))),e.expressionStatement(e.callExpression(r,[e.identifier("e")])))]));break;case"once":case"capture":case"passive":break}return r}function D(i,n){return n.has(i)}function Q(i){let n=new Set;function r(a){let s=a.init;if(!s||!e.isCallExpression(s))return;let u=s.callee,c="";if(e.isIdentifier(u)?c=u.name:e.isMemberExpression(u)&&e.isIdentifier(u.property)&&(c=u.property.name),_e.has(c)){let p=a.id;if(e.isIdentifier(p))n.add(p.name);else if(e.isArrayPattern(p))for(let d of p.elements)e.isIdentifier(d)&&n.add(d.name);else if(e.isObjectPattern(p))for(let d of p.properties)e.isObjectProperty(d)&&e.isIdentifier(d.value)&&n.add(d.value.name)}}function o(a){if(e.isObjectPattern(a))for(let s of a.properties)e.isObjectProperty(s)&&e.isIdentifier(s.value)?n.add(s.value.name):e.isRestElement(s)&&e.isIdentifier(s.argument)&&n.add(s.argument.name)}let t=i.scope;for(;t;){for(let s of Object.values(t.bindings))s.path.isVariableDeclarator()&&r(s.path.node);let a=t.path&&t.path.node;if(a){if(a.params)for(let s of a.params)o(s);a._whatMovedProps&&o(a._whatMovedProps)}t=t.parent}return n}function O(i){return Q(i)}function q(i){if(!e.isCallExpression(i))return!1;let n=i.callee;return e.isMemberExpression(n)&&e.isIdentifier(n.object)?ne.has(n.object.name):e.isIdentifier(n)?ne.has(n.name):!1}function oe(i,n,r){if(!n)return!1;if(e.isCallExpression(i)){if(e.isIdentifier(i.callee)&&D(i.callee.name,n)||r&&e.isIdentifier(i.callee)&&r.has(i.callee.name)&&!ne.has(i.callee.name)||e.isMemberExpression(i.callee)&&e.isIdentifier(i.callee.object)&&D(i.callee.object.name,n)||q(i))return!1;if(i.arguments.some(o=>M(o,n,r)))return!0}return!1}function M(i,n,r){return n||(n=new Set),e.isCallExpression(i)?e.isIdentifier(i.callee)&&D(i.callee.name,n)||r&&e.isIdentifier(i.callee)&&r.has(i.callee.name)&&!ne.has(i.callee.name)||e.isMemberExpression(i.callee)&&e.isIdentifier(i.callee.object)&&D(i.callee.object.name,n)?!0:q(i)?i.arguments.some(o=>M(o,n,r)):e.isIdentifier(i.callee)?i.arguments.some(o=>M(o,n,r)):M(i.callee,n,r)||i.arguments.some(o=>M(o,n,r)):e.isIdentifier(i)?D(i.name,n)||r&&r.has(i.name):e.isMemberExpression(i)?M(i.object,n,r):e.isConditionalExpression(i)?M(i.test,n,r)||M(i.consequent,n,r)||M(i.alternate,n,r):e.isBinaryExpression(i)||e.isLogicalExpression(i)?M(i.left,n,r)||M(i.right,n,r):e.isUnaryExpression(i)?M(i.argument,n,r):e.isTemplateLiteral(i)?i.expressions.some(o=>M(o,n,r)):e.isObjectExpression(i)?i.properties.some(o=>e.isObjectProperty(o)&&M(o.value,n,r)):e.isArrayExpression(i)?i.elements.some(o=>o&&M(o,n,r)):(e.isArrowFunctionExpression(i)||e.isFunctionExpression(i),!1)}function me(i,n){let r=i,o=!1;if(e.isArrowFunctionExpression(i)&&i.params.length===0&&(r=i.body,o=!0),e.isConditionalExpression(r)){let a=ee(r.consequent,n),s=ee(r.alternate,n);if(a||s){let u=e.conditionalExpression(r.test,a||r.consequent,s||r.alternate);return o?e.arrowFunctionExpression([],u):u}return null}if(e.isLogicalExpression(r)&&(r.operator==="&&"||r.operator==="||")){let a=ee(r.right,n);if(a){let s=e.logicalExpression(r.operator,r.left,a);return o?e.arrowFunctionExpression([],s):s}return null}return ee(r,n)}function ee(i,n){if(!e.isCallExpression(i)||!e.isMemberExpression(i.callee)||!e.isIdentifier(i.callee.property,{name:"map"})||i.arguments.length<1)return null;let r=i.arguments[0];if(!e.isArrowFunctionExpression(r)&&!e.isFunctionExpression(r))return null;let o=null;if(e.isArrowFunctionExpression(r)){if(e.isExpression(r.body))o=r.body;else if(e.isBlockStatement(r.body)){let l=r.body.body.find(g=>e.isReturnStatement(g));l&&(o=l.argument)}}else if(e.isFunctionExpression(r)){let l=r.body.body.find(g=>e.isReturnStatement(g));l&&(o=l.argument)}if(!o||!e.isJSXElement(o))return null;let t=o.openingElement.attributes,a=null;for(let l of t)if(e.isJSXAttribute(l)&&y(l)==="key"){a=l;break}if(!a)return null;let s=N(a.value);if(!s)return null;o.openingElement.attributes=t.filter(l=>l!==a);let u=i.callee.object,c=e.arrowFunctionExpression([],u),p=r.params[0]?e.cloneNode(r.params[0],!0):e.identifier("_item"),d=e.arrowFunctionExpression([p],e.cloneNode(s,!0));return e.callExpression(e.identifier("_$mapArray"),[c,r,e.objectExpression([e.objectProperty(e.identifier("key"),d),e.objectProperty(e.identifier("raw"),e.booleanLiteral(!0))])])}function se(i){if(e.isJSXText(i))return!0;if(e.isJSXExpressionContainer(i))return!1;if(e.isJSXElement(i)){let n=i.openingElement;if(L(i))return!1;for(let r of n.attributes){if(e.isJSXSpreadAttribute(r))return!1;let o=r.value;if(e.isJSXExpressionContainer(o))return!1}return i.children.every(se)}return!1}function he(i){return e.isJSXSpreadAttribute(i)?!0:i.value?e.isJSXExpressionContainer(i.value):!1}function te(i){if(e.isJSXText(i)){let a=W(i.value);return a?ge(a):""}if(e.isJSXExpressionContainer(i))return e.isJSXEmptyExpression(i.expression)?"":"<!--$-->";if(!e.isJSXElement(i))return"";let n=i.openingElement,r=n.name.name;if(L(i))return"";let o=`<${r}`;for(let a of n.attributes){if(e.isJSXSpreadAttribute(a))continue;let s=y(a);if(s==="key"||J(s)||s.startsWith("bind:")||s.includes("|"))continue;let u=s;if(s==="className"&&(u="class"),s==="htmlFor"&&(u="for"),!a.value)o+=` ${u}`;else if(e.isStringLiteral(a.value))o+=` ${u}="${Me(a.value.value)}"`;else if(e.isJSXExpressionContainer(a.value))continue}let t=i.openingElement.selfClosing;if(t&&j(r))return o+=">",o;if(t)return o+=`></${r}>`,o;o+=">";for(let a of i.children)if(e.isJSXText(a)){let s=W(a.value);s&&(o+=ge(s))}else e.isJSXExpressionContainer(a)?e.isJSXEmptyExpression(a.expression)||(o+="<!--$-->"):e.isJSXElement(a)&&(L(a)?o+="<!--$-->":o+=te(a));return o+=`</${r}>`,o}function ge(i){return i.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function Me(i){return i.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function V(i,n){let{node:r}=i,o=r.openingElement,t=o.name.name;if(!k(t,n)){if(t==="For")return Pe(i,n);if(t==="Show")return Ne(i,n)}if(t==="Switch"&&(!k(t,n)||T(r)))return Te(i,n);if(L(r))return be(i,n);let a=o.attributes,s=r.children,u=s.every(se),c=a.every(f=>!he(f)),p=a.every(f=>{if(e.isJSXSpreadAttribute(f))return!1;let w=y(f);return!w?.startsWith("on")&&!w?.startsWith("bind:")});if(u&&c&&p){let f=te(r);if(f){let w=Se(n,f);return n.needsTemplate=!0,e.callExpression(e.identifier(w),[])}}let d=te(r);if(!d){let f=r.loc,w=n.filename||n.file?.opts?.filename||"<unknown>",I=f?`:${f.start.line}:${f.start.column}`:"";return console.warn(`[what-compiler] Could not extract template for <${t}> at ${w}${I}. Falling back to h() for this element. This element could not be statically analyzed. Consider simplifying the JSX.`),n.needsH=!0,ae(i,n)}let l=Se(n,d);n.needsTemplate=!0;let g=n.nextVarId(),h=[e.variableDeclaration("const",[e.variableDeclarator(e.identifier(g),e.callExpression(e.identifier(l),[]))])];return Ee(h,g,a,n,t),xe(h,g,s,r,n),n._pendingSetup||(n._pendingSetup=[]),n._pendingSetup.push(...h),e.identifier(g)}function ae(i,n){let{node:r}=i,o=r.openingElement,t=o.name.name,a=o.attributes,s=r.children,u=[];for(let d of a){if(e.isJSXSpreadAttribute(d))continue;let l=y(d),g=N(d.value),h=b(l);u.push(e.objectProperty(/^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test(h)?e.identifier(h):e.stringLiteral(h),g))}let c=[];for(let d of s)if(e.isJSXText(d)){let l=W(d.value);l&&c.push(e.stringLiteral(l))}else e.isJSXExpressionContainer(d)?e.isJSXEmptyExpression(d.expression)||c.push(d.expression):e.isJSXElement(d)?c.push(V({node:d},n)):e.isJSXFragment(d)&&c.push(Z({node:d},n));let p=u.length>0?e.objectExpression(u):e.nullLiteral();return e.callExpression(e.identifier("h"),[e.stringLiteral(t),p,...c])}let Fe=new Set(["input","textarea","select","option"]);function Ee(i,n,r,o,t){function a(c,p){return c==="class"?(o.needsSetClass=!0,e.callExpression(e.identifier("_$setClass"),[e.identifier(n),p])):c==="style"?(o.needsSetStyle=!0,e.callExpression(e.identifier("_$setStyle"),[e.identifier(n),p])):c==="value"&&t&&Fe.has(t)?(o.needsSetValue=!0,e.callExpression(e.identifier("_$setValue"),[e.identifier(n),p])):c==="checked"&&t==="input"?(o.needsSetChecked=!0,e.callExpression(e.identifier("_$setChecked"),[e.identifier(n),p])):c.startsWith("data-")||c.startsWith("aria-")?(o.needsSetAttr=!0,e.callExpression(e.identifier("_$setAttr"),[e.identifier(n),e.stringLiteral(c),p])):(o.needsSetProp=!0,e.callExpression(e.identifier("_$setProp"),[e.identifier(n),e.stringLiteral(c),p]))}let s=!1;function u(){s||(s=!0,i.push(e.expressionStatement(e.callExpression(e.identifier("_$delegate$"),[]))))}for(let c of r){if(e.isJSXSpreadAttribute(c)){o.needsSpread=!0,i.push(e.expressionStatement(e.callExpression(e.identifier("_$spread"),[e.identifier(n),c.argument])));continue}let p=y(c);if(p!=="key"){if(p==="ref"){let d=N(c.value);i.push(e.expressionStatement(e.conditionalExpression(e.binaryExpression("===",e.unaryExpression("typeof",d),e.stringLiteral("function")),e.callExpression(e.cloneNode(d),[e.identifier(n)]),e.assignmentExpression("=",e.memberExpression(e.cloneNode(d),e.identifier("current")),e.identifier(n)))));continue}if(p.startsWith("on")&&!p.includes("|")&&!C(p,o)){let d=p.slice(2).toLowerCase(),l=N(c.value);ze.has(d)?(o.needsDelegation=!0,o.delegatedEvents||(o.delegatedEvents=new Set),o.delegatedEvents.add(d),u(),i.push(e.expressionStatement(e.assignmentExpression("=",e.memberExpression(e.identifier(n),e.identifier(`$$${d}`)),l)))):i.push(e.expressionStatement(e.callExpression(e.memberExpression(e.identifier(n),e.identifier("addEventListener")),[e.stringLiteral(d),l])));continue}if(p.startsWith("on")&&(p.includes("|")||C(p,o))){let{eventName:d,modifiers:l}=_(p),g=N(c.value),h=U(g,l),f=d.slice(2).toLowerCase(),w=l.filter(E=>Be.has(E)),I=[e.stringLiteral(f),h];if(w.length>0){let E=w.map(v=>e.objectProperty(e.identifier(v),e.booleanLiteral(!0)));I.push(e.objectExpression(E))}i.push(e.expressionStatement(e.callExpression(e.memberExpression(e.identifier(n),e.identifier("addEventListener")),I)));continue}if($(p)){let d=F(p),l=c.value.expression;o.needsEffect=!0,d==="value"?(i.push(e.expressionStatement(e.callExpression(e.identifier("_$effect"),[e.arrowFunctionExpression([],e.assignmentExpression("=",e.memberExpression(e.identifier(n),e.identifier("value")),e.callExpression(e.cloneNode(l),[])))]))),i.push(e.expressionStatement(e.callExpression(e.memberExpression(e.identifier(n),e.identifier("addEventListener")),[e.stringLiteral("input"),e.arrowFunctionExpression([e.identifier("e")],e.callExpression(e.memberExpression(e.cloneNode(l),e.identifier("set")),[e.memberExpression(e.memberExpression(e.identifier("e"),e.identifier("target")),e.identifier("value"))]))])))):d==="checked"&&(o.needsEffect=!0,i.push(e.expressionStatement(e.callExpression(e.identifier("_$effect"),[e.arrowFunctionExpression([],e.assignmentExpression("=",e.memberExpression(e.identifier(n),e.identifier("checked")),e.callExpression(e.cloneNode(l),[])))]))),i.push(e.expressionStatement(e.callExpression(e.memberExpression(e.identifier(n),e.identifier("addEventListener")),[e.stringLiteral("change"),e.arrowFunctionExpression([e.identifier("e")],e.callExpression(e.memberExpression(e.cloneNode(l),e.identifier("set")),[e.memberExpression(e.memberExpression(e.identifier("e"),e.identifier("target")),e.identifier("checked"))]))]))));continue}if(e.isJSXExpressionContainer(c.value)){let d=c.value.expression,l=b(p);if(M(d,o.signalNames,o.importedIdentifiers)){o.needsEffect=!0;let g=e.isIdentifier(d)&&(D(d.name,o.signalNames)||o.importedIdentifiers&&o.importedIdentifiers.has(d.name))?e.callExpression(d,[]):d,h=e.callExpression(e.identifier("_$effect"),[e.arrowFunctionExpression([],a(l,g))]);oe(d,o.signalNames,o.importedIdentifiers)&&e.addComment(h,"leading"," @what-dev: effect wrapping may be unnecessary \u2014 expression contains a non-signal function call with reactive args ",!1),i.push(e.expressionStatement(h))}else i.push(e.expressionStatement(a(l,d)))}}}}function le(i){if(!i||typeof i!="object")return!1;if(Array.isArray(i))return i.some(le);if(i.type==="JSXElement"||i.type==="JSXFragment"||i.type==="CallExpression"&&i.callee&&i.callee.type==="Identifier"&&(i.callee.name==="_$mapArray"||i.callee.name==="mapArray"))return!0;for(let n of Object.keys(i)){if(n==="loc"||n==="start"||n==="end"||n==="leadingComments"||n==="trailingComments"||n==="innerComments")continue;let r=i[n];if(r&&typeof r=="object"&&le(r))return!0}return!1}function B(i,n,r){let o=null,t=!1;if(e.isConditionalExpression(i))o=i.test,t=!0;else if(e.isLogicalExpression(i)&&(i.operator==="&&"||i.operator==="||"))o=i.left;else return i;if(!M(o,r.signalNames,r.importedIdentifiers)||!(t?[i.consequent,i.alternate]:[i.right]).some(le))return i;let s=r.nextMemoId();r.needsMemo=!0;let u=t?e.unaryExpression("!",e.unaryExpression("!",o)):o;n.push(e.variableDeclaration("const",[e.variableDeclarator(e.identifier(s),e.callExpression(e.identifier("_$memo"),[e.arrowFunctionExpression([],u)]))]));let c=e.callExpression(e.identifier(s),[]);return t?e.conditionalExpression(c,i.consequent,i.alternate):e.logicalExpression(i.operator,c,i.right)}function xe(i,n,r,o,t){let a=[],s=0;for(let l of r){if(e.isJSXText(l)){W(l.value)&&s++;continue}if(e.isJSXExpressionContainer(l)){if(e.isJSXEmptyExpression(l.expression))continue;a.push({type:"expression",child:l,childIndex:s}),s++;continue}if(e.isJSXElement(l)){let g=l.openingElement.name.name;if(L(l)||g==="For"||g==="Show")a.push({type:"component",child:l,childIndex:s}),s++;else{let h=l.openingElement.attributes.some(he)||l.openingElement.attributes.some(f=>!e.isJSXSpreadAttribute(f)&&y(f)?.startsWith("on"))||!l.children.every(se);a.push({type:"static",child:l,childIndex:s,hasAnythingDynamic:h}),s++}continue}e.isJSXFragment(l)&&a.push({type:"fragment",child:l})}let u=a.filter(l=>l.type==="expression"||l.type==="component"||l.type==="static"&&l.hasAnythingDynamic),c=u.length>=2,p=new Map;if(c){let l=null,g=0;for(let h of u){let f=h.childIndex,w=t.nextVarId();p.set(f,w);let I;if(l===null)I=ce(n,f);else{I=e.identifier(l);for(let E=g;E<f;E++)I=e.memberExpression(I,e.identifier("nextSibling"))}i.push(e.variableDeclaration("const",[e.variableDeclarator(e.identifier(w),I)])),l=w,g=f}}function d(l){return p.has(l)?e.identifier(p.get(l)):ce(n,l)}for(let l of a){if(l.type==="expression"){let g=l.child.expression,h=d(l.childIndex);t.needsInsert=!0;let f=me(g,t);if(f){t.needsMapArray=!0;let I=e.isCallExpression(f)&&e.isIdentifier(f.callee)&&(f.callee.name==="_$mapArray"||f.callee.name==="mapArray"),E=e.isArrowFunctionExpression(f);E&&e.isExpression(f.body)?f.body=B(f.body,i,t):!I&&!E&&(f=B(f,i,t));let v=I||E?f:e.arrowFunctionExpression([],f);i.push(e.expressionStatement(e.callExpression(e.identifier("_$insert"),[e.identifier(n),v,h])));continue}if(e.isCallExpression(g)&&e.isIdentifier(g.callee)&&(g.callee.name==="mapArray"||g.callee.name==="_$mapArray")){t.needsMapArray=!0,g.callee.name==="mapArray"&&(g.callee.name="_$mapArray"),i.push(e.expressionStatement(e.callExpression(e.identifier("_$insert"),[e.identifier(n),g,h])));continue}if(M(g,t.signalNames,t.importedIdentifiers)){g=B(g,i,t);let I=e.callExpression(e.identifier("_$insert"),[e.identifier(n),e.arrowFunctionExpression([],g),h]);oe(g,t.signalNames,t.importedIdentifiers)&&e.addComment(I,"leading"," @what-dev: reactive wrapping may be unnecessary \u2014 expression contains a non-signal function call with reactive args ",!1),i.push(e.expressionStatement(I))}else i.push(e.expressionStatement(e.callExpression(e.identifier("_$insert"),[e.identifier(n),g,h])));continue}if(l.type==="component"){let g=V({node:l.child},t),h=d(l.childIndex);t.needsInsert=!0,i.push(e.expressionStatement(e.callExpression(e.identifier("_$insert"),[e.identifier(n),g,h])));continue}if(l.type==="static"&&l.hasAnythingDynamic){let g;p.has(l.childIndex)?g=p.get(l.childIndex):(g=t.nextVarId(),i.push(e.variableDeclaration("const",[e.variableDeclarator(e.identifier(g),ce(n,l.childIndex))]))),Ee(i,g,l.child.openingElement.attributes,t,l.child.openingElement.name.name),xe(i,g,l.child.children,l.child,t);continue}if(l.type==="fragment"){for(let g of l.child.children)if(e.isJSXExpressionContainer(g)&&!e.isJSXEmptyExpression(g.expression)){t.needsInsert=!0;let h=g.expression;M(h,t.signalNames,t.importedIdentifiers)?(h=B(h,i,t),i.push(e.expressionStatement(e.callExpression(e.identifier("_$insert"),[e.identifier(n),e.arrowFunctionExpression([],h)])))):i.push(e.expressionStatement(e.callExpression(e.identifier("_$insert"),[e.identifier(n),h])))}}}}function ce(i,n){if(n===0)return e.memberExpression(e.identifier(i),e.identifier("firstChild"));let r=e.memberExpression(e.identifier(i),e.identifier("firstChild"));for(let o=0;o<n;o++)r=e.memberExpression(r,e.identifier("nextSibling"));return r}function be(i,n){let{node:r}=i,o=r.openingElement,t=A(o.name),a=o.attributes,s=r.children,u=null,c=[];for(let E of a){if(e.isJSXAttribute(E)){let v;if(e.isJSXNamespacedName(E.name)?v=`${E.name.namespace.name}:${E.name.name.name}`:v=E.name.name,v&&typeof v=="string"&&v.startsWith("client:")){let R=v.slice(7);E.value?u={type:R,value:E.value.value}:u={type:R};continue}}c.push(E)}if(u){n.needsCreateComponent=!0,n.needsIsland=!0;let E=[e.objectProperty(e.identifier("component"),t),e.objectProperty(e.identifier("mode"),e.stringLiteral(u.type))];u.value&&E.push(e.objectProperty(e.identifier("mediaQuery"),e.stringLiteral(u.value)));for(let v of c){if(e.isJSXSpreadAttribute(v))continue;let R=y(v),z=N(v.value);E.push(e.objectProperty(e.identifier(R),z))}return e.callExpression(e.identifier("_$createComponent"),[e.identifier("Island"),e.objectExpression(E),e.arrayExpression([])])}n.needsCreateComponent=!0;let p=[],d=!1,l=null;for(let E of c){if(e.isJSXSpreadAttribute(E)){d=!0,l=E.argument;continue}let v=y(E);if(v==="key")continue;if($(v)){let z=F(v),G=E.value.expression;z==="value"?(p.push(e.objectProperty(e.identifier("value"),e.callExpression(e.cloneNode(G),[]))),p.push(e.objectProperty(e.identifier("onInput"),e.arrowFunctionExpression([e.identifier("e")],e.callExpression(e.memberExpression(e.cloneNode(G),e.identifier("set")),[e.memberExpression(e.memberExpression(e.identifier("e"),e.identifier("target")),e.identifier("value"))]))))):z==="checked"&&(p.push(e.objectProperty(e.identifier("checked"),e.callExpression(e.cloneNode(G),[]))),p.push(e.objectProperty(e.identifier("onChange"),e.arrowFunctionExpression([e.identifier("e")],e.callExpression(e.memberExpression(e.cloneNode(G),e.identifier("set")),[e.memberExpression(e.memberExpression(e.identifier("e"),e.identifier("target")),e.identifier("checked"))])))));continue}if(v.startsWith("on")&&(v.includes("|")||C(v,n))){let{eventName:z,modifiers:G}=_(v),We=N(E.value),He=U(We,G);p.push(e.objectProperty(e.identifier(z),He));continue}let R=N(E.value);p.push(e.objectProperty(/^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test(v)?e.identifier(v):e.stringLiteral(v),R))}let g=n._pendingSetup?n._pendingSetup.length:0,h=[],f=!1;for(let E of s)if(e.isJSXText(E)){let v=W(E.value);v&&h.push(e.stringLiteral(v))}else if(e.isJSXExpressionContainer(E))e.isJSXEmptyExpression(E.expression)||(f=!0,h.push(E.expression));else if(e.isJSXElement(E)){let v=E.openingElement.name.name;v!=="For"&&v!=="Show"&&v!=="Switch"&&(f=!0),h.push(V({node:E},n))}else e.isJSXFragment(E)&&(f=!0,h.push(Z({node:E},n)));let w;d?p.length>0?w=e.callExpression(e.memberExpression(e.identifier("Object"),e.identifier("assign")),[e.objectExpression([]),l,e.objectExpression(p)]):w=l:p.length>0?w=e.objectExpression(p):w=e.nullLiteral();let I=e.arrayExpression(h);if(f){let E=n._pendingSetup?n._pendingSetup.splice(g):[];I=e.arrowFunctionExpression([],E.length>0?e.blockStatement([...E,e.returnStatement(I)]):I)}return e.callExpression(e.identifier("_$createComponent"),[t,w,I])}function Pe(i,n){let{node:r}=i,o=r.openingElement.attributes,t=r.children,a=null,s=null;for(let p of o)if(e.isJSXAttribute(p)){let d=y(p);d==="each"?a=N(p.value):d==="key"&&(s=N(p.value))}if(!a)return console.warn('[what-compiler] <For> element missing "each" attribute.'),n.needsH=!0,ae(i,n);let u=null;for(let p of t)if(e.isJSXExpressionContainer(p)&&!e.isJSXEmptyExpression(p.expression)){u=p.expression;break}if(!u)return console.warn("[what-compiler] <For> element missing render function child."),n.needsH=!0,ae(i,n);n.needsMapArray=!0;let c=[a,u];return s&&c.push(e.objectExpression([e.objectProperty(e.identifier("key"),s)])),e.callExpression(e.identifier("_$mapArray"),c)}function Ne(i,n){let{node:r}=i,o=r.openingElement.attributes,t=r.children,a=null,s=null;for(let h of o)if(e.isJSXAttribute(h)){let f=y(h);f==="when"?a=N(h.value):f==="fallback"&&(s=N(h.value))}if(!a)throw i.buildCodeFrameError('<Show> requires a "when" prop. Example: <Show when={isOpen} fallback={null}>...</Show>');let u=null;for(let h of t)if(e.isJSXExpressionContainer(h)&&!e.isJSXEmptyExpression(h.expression)){u=h.expression;break}if(!u){let h=[];for(let f of t)if(e.isJSXText(f)){let w=W(f.value);w&&h.push(e.stringLiteral(w))}else e.isJSXElement(f)&&h.push(V({node:f},n));h.length===1?u=h[0]:h.length>1?u=e.arrayExpression(h):u=e.nullLiteral()}let c=ye(a,n),p=i.scope?i.scope.generateUidIdentifier("v"):e.identifier("_v"),d=e.isFunction(u),l=d?e.callExpression(u,[e.cloneNode(p)]):u,g=s||e.nullLiteral();if(M(c,n.signalNames,n.importedIdentifiers)){let h=n.nextMemoId();n.needsMemo=!0;let f=d?c:e.unaryExpression("!",e.unaryExpression("!",c));n._pendingSetup||(n._pendingSetup=[]),n._pendingSetup.push(e.variableDeclaration("const",[e.variableDeclarator(e.identifier(h),e.callExpression(e.identifier("_$memo"),[e.arrowFunctionExpression([],f)]))])),c=e.callExpression(e.identifier(h),[])}return e.arrowFunctionExpression([],e.blockStatement([e.variableDeclaration("const",[e.variableDeclarator(p,c)]),e.returnStatement(e.conditionalExpression(e.cloneNode(p),l,g))]))}function ye(i,n){return e.isCallExpression(i)?i:e.isArrowFunctionExpression(i)&&e.isExpression(i.body)?i.body:e.isIdentifier(i)&&(n.signalNames&&D(i.name,n.signalNames)||n.importedIdentifiers&&n.importedIdentifiers.has(i.name))?e.callExpression(i,[]):i}function Je(i,n){let r=[];for(let o of i)if(e.isJSXText(o)){let t=W(o.value);t&&r.push(e.stringLiteral(t))}else e.isJSXExpressionContainer(o)?e.isJSXEmptyExpression(o.expression)||r.push(o.expression):e.isJSXElement(o)?r.push(V({node:o},n)):e.isJSXFragment(o)&&r.push(Z({node:o},n));return r.length===0?e.nullLiteral():r.length===1?r[0]:e.arrayExpression(r)}function Te(i,n){let{node:r}=i,o=k(r.openingElement.name.name,n),t=f=>e.isJSXElement(f)&&e.isJSXIdentifier(f.openingElement.name,{name:"Match"})&&(o||!k("Match",n));if(!r.children.some(t)&&!S(r.openingElement.name.name,n))return be(i,n);let a=f=>{let w=`<Switch> ${f}. The compiler needs to read its arms statically. Write them out: <Switch fallback={...}><Match when={a}>\u2026</Match><Match when={b}>\u2026</Match></Switch>`;throw i.buildCodeFrameError?i.buildCodeFrameError(w):new Error(`[what-compiler] ${w}`)},s=null;for(let f of r.openingElement.attributes)e.isJSXSpreadAttribute(f)&&a("cannot take a spread attribute"),y(f)==="fallback"&&(s=N(f.value));let u=[];for(let f of r.children){if(e.isJSXText(f)){W(f.value)&&a("cannot mix text with its <Match> arms");continue}if(e.isJSXExpressionContainer(f)){if(e.isJSXEmptyExpression(f.expression))continue;a("cannot read its arms from an expression child")}t(f)||a("cannot mix other elements with its <Match> arms"),u.push(f)}u.length===0&&a("has no <Match> arms"),n._pendingSetup||(n._pendingSetup=[]);let c=[];for(let f of u){let w=null;for(let R of f.openingElement.attributes)e.isJSXAttribute(R)&&y(R)==="when"&&(w=N(R.value));w||a('has a <Match> with no "when" prop');let I=n._pendingSetup.length,E=Je(f.children,n),v=n._pendingSetup.splice(I);v.length>0&&(E=e.callExpression(e.arrowFunctionExpression([],e.blockStatement([...v,e.returnStatement(E)])),[])),c.push([ye(w,n),E])}let p=c.some(([f])=>M(f,n.signalNames,n.importedIdentifiers)),d=s||e.nullLiteral();if(!p){let f=d;for(let w=c.length-1;w>=0;w--)f=e.conditionalExpression(c[w][0],c[w][1],f);return e.arrowFunctionExpression([],f)}let l=e.numericLiteral(-1);for(let f=c.length-1;f>=0;f--)l=e.conditionalExpression(c[f][0],e.numericLiteral(f),l);let g=n.nextMemoId();n.needsMemo=!0,n._pendingSetup.push(e.variableDeclaration("const",[e.variableDeclarator(e.identifier(g),e.callExpression(e.identifier("_$memo"),[e.arrowFunctionExpression([],l)]))]));let h=d;for(let f=c.length-1;f>=0;f--)h=e.conditionalExpression(e.binaryExpression("===",e.callExpression(e.identifier(g),[]),e.numericLiteral(f)),c[f][1],h);return e.arrowFunctionExpression([],h)}function Oe(i,n){n._pendingSetup||(n._pendingSetup=[]);let r=n._pendingSetup,o=me(i,n);if(o){n.needsMapArray=!0;let a=e.isCallExpression(o)&&e.isIdentifier(o.callee)&&(o.callee.name==="_$mapArray"||o.callee.name==="mapArray");if(e.isArrowFunctionExpression(o)&&e.isExpression(o.body))return o.body=B(o.body,r,n),o;if(a)return o;let u=B(o,r,n);return e.arrowFunctionExpression([],u)}return e.isCallExpression(i)&&e.isIdentifier(i.callee)&&(i.callee.name==="mapArray"||i.callee.name==="_$mapArray")?(n.needsMapArray=!0,i.callee.name==="mapArray"&&(i.callee.name="_$mapArray"),i):M(i,n.signalNames,n.importedIdentifiers)?(i=B(i,r,n),e.arrowFunctionExpression([],i)):i}function Z(i,n){let{node:r}=i,o=r.children,t=[];for(let a of o)if(e.isJSXText(a)){let s=W(a.value);s&&t.push(e.stringLiteral(s))}else e.isJSXExpressionContainer(a)?e.isJSXEmptyExpression(a.expression)||t.push(Oe(a.expression,n)):e.isJSXElement(a)?t.push(V({node:a},n)):e.isJSXFragment(a)&&t.push(Z({node:a},n));return t.length===1?t[0]:e.arrayExpression(t)}function Se(i,n){if(i.templateMap.has(n))return i.templateMap.get(n);let r=`_tmpl$${i.templateCount++}`;return i.templateMap.set(n,r),i.templates.push({id:r,html:n}),r}function we(i,n,r){let o=i.scope,t=n._signalNamesCache;t||(t=n._signalNamesCache=new WeakMap);let a=t.get(o);a||(a=Q(i),t.set(o,a)),n.signalNames=a,n._pendingSetup=[];let s=r(i,n),u=n._pendingSetup;if(n._pendingSetup=[],u.length>0){let c=i,p=!1;for(;c&&!c.isStatement();)(c.isArrowFunctionExpression()||c.isFunctionExpression())&&(p=!0),c=c.parentPath;c&&c.isStatement()&&(c.listKey==="body"||c.listKey==="consequent")&&Array.isArray(c.container)&&!p?(c.insertBefore(u),i.replaceWith(s)):(u.push(e.returnStatement(s)),i.replaceWith(e.callExpression(e.arrowFunctionExpression([],e.blockStatement(u)),[])))}else i.replaceWith(s)}function Xe(i){let n=i.parentPath;if(n?.isVariableDeclarator()&&e.isIdentifier(n.node.id))return n.node.id.name;if(n?.isAssignmentExpression()&&e.isIdentifier(n.node.left))return n.node.left.name;if(n?.isExportDefaultDeclaration())return"default";if(n?.isObjectProperty()&&!n.node.computed){if(e.isIdentifier(n.node.key))return n.node.key.name;if(e.isStringLiteral(n.node.key))return n.node.key.value}return null}function je(i,n){let r=i.node.callee;return e.isIdentifier(r)?n.serverActionBindings.has(r.name):e.isMemberExpression(r)&&!r.computed&&e.isIdentifier(r.object)&&e.isIdentifier(r.property,{name:"action"})&&n.serverActionNamespaces.has(r.object.name)}function De(i){if(!e.isObjectExpression(i))return{property:null,value:null};for(let n of i.properties)if(!(!e.isObjectProperty(n)||(e.isIdentifier(n.key)&&!n.computed?n.key.name:e.isStringLiteral(n.key)?n.key.value:null)!=="id"))return e.isStringLiteral(n.value)?{property:n,value:n.value.value}:e.isTemplateLiteral(n.value)&&n.value.expressions.length===0?{property:n,value:n.value.quasis[0]?.value.cooked||""}:{property:n,value:null};return{property:null,value:null}}function ve(i,n,r,o,t){let a=i.node.loc?.start||{line:0,column:0},s=`${t}:${a.line}:${a.column+1}`,u=`${t}#${o}`,c=n.serverActionIds.get(r);if(c)throw i.buildCodeFrameError(`Duplicate server action ID "${r}". First declared by "${c.bindingName}" at ${c.source}; conflicts with "${o}" at ${s}.`);let p={id:r,key:u,bindingName:o,filename:t,source:s,loc:a};if(n.serverActionIds.set(r,p),typeof n.opts?.onActionId=="function")try{n.opts.onActionId(p)}catch(d){throw i.buildCodeFrameError(d instanceof Error?d.message:String(d))}}function Re(i,n){if(!je(i,n))return;let r=Xe(i);if(!r){n.opts?.production||console.warn(`[what-compiler] Could not derive a stable server action ID at ${n.serverActionFilename}:${i.node.loc?.start.line||0}. Assign action(...) to a named local or export, or pass { id } explicitly.`);return}let o=i.node.arguments[1],t=De(o);if(t.property){t.value!==null&&ve(i,n,t.value,r,n.serverActionFilename);return}let a=`wa1_${Ze(`${n.serverActionFilename}#${r}`)}`;ve(i,n,a,r,n.serverActionFilename);let s=e.objectProperty(e.identifier("id"),e.stringLiteral(a));o?e.isObjectExpression(o)?o.properties.unshift(s):i.node.arguments[1]=e.objectExpression([s,e.spreadElement(o)]):i.node.arguments.push(e.objectExpression([s]))}return{name:"what-jsx-transform",visitor:{Program:{enter(i,n){n.needsTemplate=!1,n.needsInsert=!1,n.needsEffect=!1,n.needsMapArray=!1,n.needsSpread=!1,n.needsSetProp=!1,n.needsMemo=!1,n.needsSetClass=!1,n.needsSetStyle=!1,n.needsSetAttr=!1,n.needsSetValue=!1,n.needsSetChecked=!1,n.needsH=!1,n.needsCreateComponent=!1,n.needsFragment=!1,n.needsIsland=!1,n.needsDelegation=!1,n.delegatedEvents=new Set,n.templates=[],n.templateMap=new Map,n.templateCount=0,n._varCounter=0,n._memoCounter=0,n._pendingSetup=[],n.nextVarId=()=>`_el$${n._varCounter++}`,n.nextMemoId=()=>`_c$${n._memoCounter++}`,n.serverActionBindings=new Set,n.serverActionNamespaces=new Set,n.serverActionIds=new Map,n.serverActionFilename=Ke(n.file?.opts?.filename,n.opts?.projectRoot||n.file?.opts?.cwd),n.signalNames=new Set,n.importedIdentifiers=new Set,n.whatImports=new Set,n.foreignImports=new Set;for(let r of i.node.body)if(e.isImportDeclaration(r)){let o=r.source.value,t=o==="what-framework"||o.startsWith("what-framework/")||o==="what-core"||o.startsWith("what-core/"),a=t||o.startsWith("./")||o.startsWith("../");for(let s of r.specifiers){let u=null;(e.isImportSpecifier(s)&&e.isIdentifier(s.local)||e.isImportDefaultSpecifier(s)&&e.isIdentifier(s.local)||e.isImportNamespaceSpecifier(s)&&e.isIdentifier(s.local))&&(u=s.local.name),u&&((a||/^(use|create)[A-Z]/.test(u))&&n.importedIdentifiers.add(u),t?n.whatImports.add(u):o.startsWith(".")||n.foreignImports.add(u)),qe.has(o)&&(e.isImportSpecifier(s)&&e.isIdentifier(s.imported,{name:"action"})&&e.isIdentifier(s.local)?n.serverActionBindings.add(s.local.name):e.isImportNamespaceSpecifier(s)&&e.isIdentifier(s.local)&&n.serverActionNamespaces.add(s.local.name))}}i.traverse({Function(r){X(r)},CallExpression(r){Re(r,n)},VariableDeclarator(r){let o=r.node.init;if(!o||!e.isCallExpression(o))return;let t=o.callee,a="";if(e.isIdentifier(t)?a=t.name:e.isMemberExpression(t)&&e.isIdentifier(t.property)&&(a=t.property.name),_e.has(a)){let s=r.node.id;if(e.isIdentifier(s))n.signalNames.add(s.name);else if(e.isArrayPattern(s))for(let u of s.elements)e.isIdentifier(u)&&n.signalNames.add(u.name);else if(e.isObjectPattern(s))for(let u of s.properties)e.isObjectProperty(u)&&e.isIdentifier(u.value)&&n.signalNames.add(u.value.name)}}})},exit(i,n){for(let t of n.templates.reverse()){let a=e.callExpression(e.identifier("_$template"),[e.stringLiteral(t.html)]);e.addComment(a,"leading"," @__PURE__ "),i.unshiftContainer("body",e.variableDeclaration("const",[e.variableDeclarator(e.identifier(t.id),a)]))}let r=[];n.needsTemplate&&r.push(e.importSpecifier(e.identifier("_$template"),e.identifier("_$template"))),n.needsInsert&&r.push(e.importSpecifier(e.identifier("_$insert"),e.identifier("insert"))),n.needsEffect&&r.push(e.importSpecifier(e.identifier("_$effect"),e.identifier("effect"))),n.needsMapArray&&r.push(e.importSpecifier(e.identifier("_$mapArray"),e.identifier("mapArray"))),n.needsSpread&&r.push(e.importSpecifier(e.identifier("_$spread"),e.identifier("spread"))),n.needsSetProp&&r.push(e.importSpecifier(e.identifier("_$setProp"),e.identifier("setProp"))),n.needsMemo&&r.push(e.importSpecifier(e.identifier("_$memo"),e.identifier("memo"))),n.needsSetClass&&r.push(e.importSpecifier(e.identifier("_$setClass"),e.identifier("setClass"))),n.needsSetStyle&&r.push(e.importSpecifier(e.identifier("_$setStyle"),e.identifier("setStyle"))),n.needsSetAttr&&r.push(e.importSpecifier(e.identifier("_$setAttr"),e.identifier("setAttr"))),n.needsSetValue&&r.push(e.importSpecifier(e.identifier("_$setValue"),e.identifier("setValue"))),n.needsSetChecked&&r.push(e.importSpecifier(e.identifier("_$setChecked"),e.identifier("setChecked"))),n.needsCreateComponent&&r.push(e.importSpecifier(e.identifier("_$createComponent"),e.identifier("_$createComponent"))),n.needsDelegation&&r.push(e.importSpecifier(e.identifier("_$delegateEvents"),e.identifier("delegateEvents")));let o=[];if(n.needsH&&o.push(e.importSpecifier(e.identifier("h"),e.identifier("h"))),n.needsFragment&&o.push(e.importSpecifier(e.identifier("Fragment"),e.identifier("Fragment"))),n.needsIsland&&o.push(e.importSpecifier(e.identifier("Island"),e.identifier("Island"))),r.length>0){let t=null;for(let a of i.node.body)if(e.isImportDeclaration(a)&&(a.source.value==="what-framework/render"||a.source.value==="what-core/render")){t=a;break}if(t){let a=new Set(t.specifiers.filter(s=>e.isImportSpecifier(s)).map(s=>s.imported.name));for(let s of r)a.has(s.imported.name)||t.specifiers.push(s)}else i.unshiftContainer("body",e.importDeclaration(r,e.stringLiteral("what-framework/render")))}if(o.length>0&&Ye(i,e,o),n.needsDelegation&&n.delegatedEvents&&n.delegatedEvents.size>0){let t=e.arrayExpression([...n.delegatedEvents].map(s=>e.stringLiteral(s))),a=e.functionDeclaration(e.identifier("_$delegate$"),[],e.blockStatement([e.ifStatement(e.identifier("_$delegated$"),e.returnStatement()),e.expressionStatement(e.assignmentExpression("=",e.identifier("_$delegated$"),e.booleanLiteral(!0))),e.expressionStatement(e.callExpression(e.identifier("_$delegateEvents"),[t]))]));i.unshiftContainer("body",[e.variableDeclaration("let",[e.variableDeclarator(e.identifier("_$delegated$"),e.booleanLiteral(!1))]),a])}}},JSXElement(i,n){we(i,n,V)},JSXFragment(i,n){we(i,n,Z)}}}}function Ye(e,m,x){let C=null;for(let _ of e.node.body)if(m.isImportDeclaration(_)&&(_.source.value==="what-core"||_.source.value==="what-framework")){C=_;break}if(C){let _=new Set(C.specifiers.filter($=>m.isImportSpecifier($)).map($=>$.imported.name));for(let $ of x)_.has($.imported.name)||C.specifiers.push($)}else{let _=m.importDeclaration(x,m.stringLiteral("what-framework"));e.unshiftContainer("body",_)}}import K from"fs";import H from"path";var $e=new Set([".jsx",".tsx",".js",".ts"]),Qe=new Set(["_layout","_error","_loading","_404"]);function en(e){let m=[],x=[],C=[];function _(F,P=""){if(!K.existsSync(F))return;let L=K.readdirSync(F,{withFileTypes:!0});for(let k of L){let S=H.join(F,k.name);if(k.isDirectory()){if(k.name.match(/^\((.+)\)$/)){_(S,P);continue}if(k.name==="api"&&P===""){$(S,"/api");continue}_(S,P+"/"+ie(k.name));continue}let T=H.extname(k.name);if(!$e.has(T))continue;let A=H.basename(k.name,T);if(A==="_layout"){x.push({filePath:S,urlPrefix:P||"/"});continue}if(Qe.has(A))continue;let X=ie(A),j=A==="index"?P||"/":P+"/"+X;m.push({filePath:S,routePath:Ce(j),isDynamic:j.includes(":")||j.includes("*")})}}function $(F,P){if(!K.existsSync(F))return;let L=K.readdirSync(F,{withFileTypes:!0});for(let k of L){let S=H.join(F,k.name);if(k.isDirectory()){$(S,P+"/"+ie(k.name));continue}let T=H.extname(k.name);if(!$e.has(T))continue;let A=H.basename(k.name,T),X=ie(A),j=A==="index"?P:P+"/"+X;C.push({filePath:S,routePath:Ce(j)})}}return _(e),m.sort((F,P)=>{let L=ke(F.routePath),k=ke(P.routePath);return L-k}),{pages:m,layouts:x,apiRoutes:C}}function ie(e){let m=e.match(/^\[\.\.\.(\w+)\]$/);if(m)return"*"+m[1];let x=e.match(/^\[(\w+)\]$/);return x?":"+x[1]:e.toLowerCase()}function Ce(e){let m=e.replace(/\/+/g,"/");return m.length>1&&m.endsWith("/")&&(m=m.slice(0,-1)),m||"/"}function ke(e){return e.includes("*")?100:e.includes(":")?10:0}function nn(e){let m=e.match(/export\s+const\s+page\s*=\s*(\{[^}]*\})/s);if(!m)return{mode:"client"};try{let x=m[1].replace(/'/g,'"').replace(/(\w+)\s*:/g,'"$1":').replace(/,\s*}/g,"}").replace(/\/\/[^\n]*/g,"");return{mode:"client",...JSON.parse(x)}}catch{return{mode:"client"}}}function rn(e){return{hasLoader:/export\s+(?:async\s+)?(?:const|let|var|function)\s+loader\b/.test(e),hasGetStaticPaths:/export\s+(?:async\s+)?(?:const|let|var|function)\s+getStaticPaths\b/.test(e),hasPageConfig:/export\s+const\s+page\b/.test(e)}}function Ae(e,m){let{pages:x,layouts:C,apiRoutes:_}=en(e),$=[],F=[],P=new Map;C.forEach((S,T)=>{let A=`_layout${T}`,X=pe(S.filePath,m);$.push(`import ${A} from '${X}';`),P.set(S.urlPrefix,A)}),x.forEach((S,T)=>{let A=`_page${T}`,X=pe(S.filePath,m);$.push(`import ${A} from '${X}';`);let j={mode:"client"},N={hasLoader:!1,hasGetStaticPaths:!1,hasPageConfig:!1};try{let J=K.readFileSync(S.filePath,"utf-8");j=nn(J),N=rn(J)}catch{}let b=on(S.routePath,P),y={path:S.routePath,component:A,mode:j.mode||"client",layout:b||null,hasLoader:N.hasLoader};F.push(y)});let L=[];return _.forEach((S,T)=>{let A=`_api${T}`,X=pe(S.filePath,m);$.push(`import * as ${A} from '${X}';`),L.push({path:S.routePath,handlers:A})}),["// Auto-generated by What Framework file router","// Do not edit \u2014 changes will be overwritten","",...$,"","export const routes = [",...F.map(S=>` { path: '${S.path}', component: ${S.component}, mode: '${S.mode}'${S.layout?`, layout: ${S.layout}`:""}${S.hasLoader?", hasLoader: true":""} },`),"];","","export const apiRoutes = [",...L.map(S=>` { path: '${S.path}', handlers: ${S.handlers} },`),"];","","export const pageModes = {",...F.map(S=>` '${S.path}': '${S.mode}',`),"};"].join(`
2
+ `)}function pe(e,m){return"/"+H.relative(m,e).split(H.sep).join("/")}function on(e,m){let x=e.split("/").filter(Boolean);for(;x.length>0;){let C="/"+x.join("/");if(m.has(C))return m.get(C);x.pop()}return m.has("/")?m.get("/"):null}var sn=`
3
3
  :host {
4
4
  position: fixed;
5
5
  inset: 0;
@@ -185,12 +185,12 @@ import q from"path";import{transformSync as Ue}from"@babel/core";var Me=new Set(
185
185
  white-space: pre-wrap;
186
186
  line-height: 1.5;
187
187
  }
188
- `,ln=`
188
+ `,Sn=`
189
189
  class WhatErrorOverlay extends HTMLElement {
190
190
  constructor(err) {
191
191
  super();
192
192
  this.root = this.attachShadow({ mode: 'open' });
193
- this.root.innerHTML = '<style>${Be}</style>';
193
+ this.root.innerHTML = '<style>${sn}</style>';
194
194
  this._err = err;
195
195
  this.show(err);
196
196
  }
@@ -380,7 +380,7 @@ class WhatErrorOverlay extends HTMLElement {
380
380
  if (!customElements.get('what-error-overlay')) {
381
381
  customElements.define('what-error-overlay', WhatErrorOverlay);
382
382
  }
383
- `;function xe(e){let u=e.ws.send.bind(e.ws);e.ws.send=function(x){return x?.type==="error"&&x.err?.plugin==="vite-plugin-what"&&(x.err._isCompilerError=!0),u(x)}}var ye="virtual:what-routes",Q="\0"+ye,ze=/(?:from\s*['"](?:what-framework\/server|what-server(?:\/actions)?)['"]|import\s*['"](?:what-framework\/server|what-server(?:\/actions)?)['"])/,Ge=/\.[cm]?[jt]sx?$/;function ae(e,u){return e?Array.isArray(e)?e.some(x=>ae(x,u)):e instanceof RegExp?(e.lastIndex=0,e.test(u)):typeof e=="function"?e(u):!1:!1}function qe({rolldownVersion:e,viteVersion:u}={}){let x=parseInt(String(u??""),10);return!!e||Number.isFinite(x)&&x>=8?{oxc:{jsx:"preserve"}}:{esbuild:{jsx:"preserve"}}}var te=null;function Ze(){return te||(te=import("vite").then(e=>e.version||"").catch(()=>"")),te}var Ke=/export\s+(?:default\s+)?function\s+([A-Z]\w*)/,Ye=/(?:store|signal|state|context|util|helper|lib|config)\b/i;function Qe(e={}){let{include:u=/\.[jt]sx$/,exclude:x=/node_modules/,sourceMaps:k=!0,production:_=!0,pages:C="src/pages",hot:F=!_,prodBundles:A=!0}=e,N="",w="",v=null,I=!1,L=new Map;function M(y){let $=L.get(y.id);if($&&$.key!==y.key)throw new Error(`Duplicate server action ID "${y.id}". First declared by "${$.bindingName}" at ${$.source}; conflicts with "${y.bindingName}" at ${y.source}.`);L.set(y.id,y)}function T(y){for(let[$,S]of L)S.filename===y&&L.delete($)}function R(y){let $=y.replace(/[?#].*$/,"");return N?q.relative(N,$).split(q.sep).join("/"):$}return{name:"vite-plugin-what",configResolved(y){N=y.root,w=q.resolve(N,C),I=y.command==="serve"},configureServer(y){v=y,xe(y),y.watcher.on("add",$=>{if($.startsWith(w)){let S=y.moduleGraph.getModuleById(Q);S&&(y.moduleGraph.invalidateModule(S),y.ws.send({type:"full-reload"}))}}),y.watcher.on("unlink",$=>{if(T(R($)),$.startsWith(w)){let S=y.moduleGraph.getModuleById(Q);S&&(y.moduleGraph.invalidateModule(S),y.ws.send({type:"full-reload"}))}})},resolveId(y){if(y===ye)return Q},load(y){if(y===Q)return Ee(w,N)},transform(y,$){let S=$.replace(/[?#].*$/,""),H=ae(u,S),D=Ge.test(S),z=D&&ze.test(y);if(x&&ae(x,S)||(D&&T(R(S)),!H&&!z))return null;try{let P=Ue(y,{filename:$,sourceMaps:k,configFile:!1,babelrc:!1,plugins:[[oe,{production:_,projectRoot:N||process.cwd(),onActionId:M}]],parserOpts:{plugins:["jsx","typescript"]}});if(!P||!P.code)return null;let V=P.code;return F&&I&&!_&&en(y,$)&&(V+=rn($)),{code:V,map:P.map}}catch(P){throw P.plugin="vite-plugin-what",P.id||(P.id=$),P.loc===void 0&&P._loc&&(P.loc={file:$,line:P._loc.line,column:P._loc.column}),console.error(`[what] Error transforming ${$}:`,P.message),P}},handleHotUpdate({file:y,server:$,modules:S}){if(F&&u.test(y)&&!(x&&x.test(y))&&nn(y))return $.ws.send({type:"full-reload"}),[]},async config(y,{mode:$,command:S}){let H=S==="build"&&$==="production"&&A,D=qe({rolldownVersion:this?.meta?.rolldownVersion,viteVersion:await Ze()});return{...H?{resolve:{conditions:["production"]}}:{},...D,optimizeDeps:{exclude:["what-framework","what-core","what-compiler","what-router"]}}}}}function en(e,u){return!!(Ke.test(e)||u.includes("/pages/")||u.includes("\\pages\\"))}function nn(e){let u=q.basename(e,q.extname(e));return Ye.test(u)}function rn(e){return`
383
+ `;function Ie(e){let m=e.ws.send.bind(e.ws);e.ws.send=function(x){return x?.type==="error"&&x.err?.plugin==="vite-plugin-what"&&(x.err._isCompilerError=!0),m(x)}}var Le="virtual:what-routes",re="\0"+Le,an=/(?:from\s*['"](?:what-framework\/server|what-server(?:\/actions)?)['"]|import\s*['"](?:what-framework\/server|what-server(?:\/actions)?)['"])/,ln=/\.[cm]?[jt]sx?$/;function de(e,m){return e?Array.isArray(e)?e.some(x=>de(x,m)):e instanceof RegExp?(e.lastIndex=0,e.test(m)):typeof e=="function"?e(m):!1:!1}function cn({rolldownVersion:e,viteVersion:m}={}){let x=parseInt(String(m??""),10);return!!e||Number.isFinite(x)&&x>=8?{oxc:{jsx:"preserve"}}:{esbuild:{jsx:"preserve"}}}var ue=null;function fn(){return ue||(ue=import("vite").then(e=>e.version||"").catch(()=>"")),ue}var pn=/export\s+(?:default\s+)?function\s+([A-Z]\w*)/,un=/(?:store|signal|state|context|util|helper|lib|config)\b/i;function dn(e={}){let{include:m=/\.[jt]sx$/,exclude:x=/node_modules/,sourceMaps:C=!0,production:_=!0,pages:$="src/pages",hot:F=!_,prodBundles:P=!0}=e,L="",k="",S=null,T=!1,A=new Map;function X(b){let y=A.get(b.id);if(y&&y.key!==b.key)throw new Error(`Duplicate server action ID "${b.id}". First declared by "${y.bindingName}" at ${y.source}; conflicts with "${b.bindingName}" at ${b.source}.`);A.set(b.id,b)}function j(b){for(let[y,J]of A)J.filename===b&&A.delete(y)}function N(b){let y=b.replace(/[?#].*$/,"");return L?Y.relative(L,y).split(Y.sep).join("/"):y}return{name:"vite-plugin-what",configResolved(b){L=b.root,k=Y.resolve(L,$),T=b.command==="serve"},configureServer(b){S=b,Ie(b),b.watcher.on("add",y=>{if(y.startsWith(k)){let J=b.moduleGraph.getModuleById(re);J&&(b.moduleGraph.invalidateModule(J),b.ws.send({type:"full-reload"}))}}),b.watcher.on("unlink",y=>{if(j(N(y)),y.startsWith(k)){let J=b.moduleGraph.getModuleById(re);J&&(b.moduleGraph.invalidateModule(J),b.ws.send({type:"full-reload"}))}})},resolveId(b){if(b===Le)return re},load(b){if(b===re)return Ae(k,L)},transform(b,y){let J=y.replace(/[?#].*$/,""),U=de(m,J),D=ln.test(J),Q=D&&an.test(b);if(x&&de(x,J)||(D&&j(N(J)),!U&&!Q))return null;try{let O=tn(b,{filename:y,sourceMaps:C,configFile:!1,babelrc:!1,plugins:[[fe,{production:_,projectRoot:L||process.cwd(),onActionId:X}]],parserOpts:{plugins:["jsx","typescript"]}});if(!O||!O.code)return null;let q=O.code;return F&&T&&!_&&mn(b,y)&&(q+=gn(y)),{code:q,map:O.map}}catch(O){throw O.plugin="vite-plugin-what",O.id||(O.id=y),O.loc===void 0&&O._loc&&(O.loc={file:y,line:O._loc.line,column:O._loc.column}),console.error(`[what] Error transforming ${y}:`,O.message),O}},handleHotUpdate({file:b,server:y,modules:J}){if(F&&m.test(b)&&!(x&&x.test(b))&&hn(b))return y.ws.send({type:"full-reload"}),[]},async config(b,{mode:y,command:J}){let U=J==="build"&&y==="production"&&P,D=cn({rolldownVersion:this?.meta?.rolldownVersion,viteVersion:await fn()});return{...U?{resolve:{conditions:["production"]}}:{},...D,optimizeDeps:{exclude:["what-framework","what-core","what-compiler","what-router"]}}}}}function mn(e,m){return!!(pn.test(e)||m.includes("/pages/")||m.includes("\\pages\\"))}function hn(e){let m=Y.basename(e,Y.extname(e));return un.test(m)}function gn(e){return`
384
384
 
385
385
  // --- What Framework HMR Boundary ---
386
386
  if (import.meta.hot) {
@@ -393,4 +393,4 @@ if (import.meta.hot) {
393
393
  }
394
394
  });
395
395
  }
396
- `}export{Qe as default,qe as jsxPreserveConfig,Qe as what};
396
+ `}export{dn as default,cn as jsxPreserveConfig,dn as what};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "what-compiler",
3
- "version": "0.11.7",
3
+ "version": "0.11.8",
4
4
  "description": "JSX compiler for What Framework - transforms JSX to optimized DOM operations",
5
5
  "main": "src/index.js",
6
6
  "types": "index.d.ts",
@@ -49,7 +49,7 @@
49
49
  "license": "MIT",
50
50
  "peerDependencies": {
51
51
  "@babel/core": "^7.0.0",
52
- "what-core": "^0.11.7"
52
+ "what-core": "^0.11.8"
53
53
  },
54
54
  "files": [
55
55
  "src",