@zeus-js/compiler 0.1.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,19 @@
1
+ /**
2
+ * compiler vundefined
3
+ * (c) 2025 baicie
4
+ * Released under the MIT License.
5
+ **/import*as e from"@babel/plugin-syntax-jsx";import*as t from"@babel/types";import{addNamed as n}from"@babel/helper-module-imports";import{decode as s}from"html-entities";import{parseFragment as r,parse as i,serialize as a}from"parse5";let l=["area","base","br","col","embed","hr","img","input","keygen","link","menuitem","meta","param","source","track","wbr"],o=new Set(["class","on","oncapture","style","use","prop","attr","bool"]),p=new Set(["class","style","use","prop","attr","bool"]);function m(e){var t,n;return null!=(n=null==(t=e.hub.file)?void 0:t.metadata.config)?n:{}}let u=(e,t)=>{var n,s;let r=m(e);return null!=(s=null==(n=null==r?void 0:r.renderers)?void 0:n.find(e=>e.name===t))?s:r};function d(e,s,r){let i=e.scope.getProgramParent(),a=i.data.imports||(i.data.imports=new Map);r=r||m(e).moduleName;let l=`${r}:${s}`;if(a.has(l)){let e=a.get(l);return t.cloneNode(e)}{let t=n(e,s,r,{nameHint:`_$${s}`});return a.set(l,t),t}}function c(e){return function e(n){return t.isJSXMemberExpression(n)?`${e(n.object)}.${n.property.name}`:t.isJSXIdentifier(n)||t.isIdentifier(n)?n.name:`${n.namespace.name}:${n.name.name}`}(e.openingElement.name)}function x(e){return e[0]&&e[0].toLowerCase()!==e[0]||e.includes(".")||/[^a-zA-Z]/.test(e[0])}function g(e,{checkMember:n,checkTags:s,checkCallExpressions:r=!0,native:i}){let a,l=m(e);"ssr"===l.generate&&i&&(n=!1,r=!1);let o=e.node;if(t.isFunction(o)||o.leadingComments&&o.leadingComments[0]&&o.leadingComments[0].value.trim()===l.staticMarker)return!1;if(r&&(t.isCallExpression(o)||t.isOptionalCallExpression(o)||t.isTaggedTemplateExpression(o)))return!0;if(n&&t.isMemberExpression(o)){let a=e.get("object").node;if(t.isIdentifier(a)&&(!o.computed||!g(e.get("property"),{checkMember:n,checkTags:s,checkCallExpressions:r,native:i}))){let t=e.scope.getBinding(a.name);if(t&&t.path.isImportNamespaceSpecifier())return!1}return!0}return!!(n&&(t.isOptionalMemberExpression(o)||t.isSpreadElement(o)||t.isBinaryExpression(o)&&"in"===o.operator)||s&&(t.isJSXElement(o)||t.isJSXFragment(o)&&o.children.length))||(e.traverse({Function(e){t.isObjectMethod(e.node)&&e.node.computed&&(a=g(e.get("key"),{checkMember:n,checkTags:s,checkCallExpressions:r,native:i})),e.skip()},CallExpression(e){r&&(a=!0)&&e.stop()},OptionalCallExpression(e){r&&(a=!0)&&e.stop()},MemberExpression(e){n&&(a=!0)&&e.stop()},OptionalMemberExpression(e){n&&(a=!0)&&e.stop()},SpreadElement(e){n&&(a=!0)&&e.stop()},BinaryExpression(e){n&&"in"===e.node.operator&&(a=!0)&&e.stop()},JSXElement(e){s?(a=!0,e.stop()):e.skip()},JSXFragment(e){s&&e.node.children.length?(a=!0,e.stop()):e.skip()}}),a)}function f(e){let n,s,r=e.node;return t.isJSXExpressionContainer(r)&&t.isJSXElement(e.parent)&&!x(c(e.parent))&&!t.isSequenceExpression(r.expression)&&void 0!==(n=e.get("expression").evaluate().value)&&("string"==(s=typeof n)||"number"===s)&&n}function h(e){return e.filter(({node:e})=>!(t.isJSXExpressionContainer(e)&&t.isJSXEmptyExpression(e.expression))&&(!t.isJSXText(e)||!/^[\r\n]\s*$/.test(e.extra.raw)))}function E(e){let n=0;return e.forEach(e=>{let s=e.node;!(t.isJSXExpressionContainer(s)&&t.isJSXEmptyExpression(s.expression))&&(!t.isJSXText(s)||!/^\s*$/.test(s.extra.raw)||/^ *$/.test(s.extra.raw))&&n++}),n>1}function b(e){return e=e.replace(/\r/g,""),/\n/g.test(e)&&(e=e.split(`
6
+ `).map((e,t)=>t?e.replace(/^\s*/g,""):e).filter(e=>!/^\s*$/.test(e)).join(" ")),e.replace(/\s+/g," ")}function v(e,n,s){let r,i,a=m(e),l=e.node,o=d(e,a.memoWrapper),p=!1;if(t.isConditionalExpression(l)&&(g(e.get("consequent"),{checkTags:!0,checkMember:!0})||g(e.get("alternate"),{checkTags:!0,checkMember:!0})))(p=g(e.get("test"),{checkMember:!0}))&&(r=l.test,t.isBinaryExpression(r)||(r=t.unaryExpression("!",t.unaryExpression("!",r,!0),!0)),i=n?t.callExpression(o,[t.arrowFunctionExpression([],r)]):e.scope.generateUidIdentifier("_c$"),l.test=t.callExpression(i,[]),(t.isConditionalExpression(l.consequent)||t.isLogicalExpression(l.consequent))&&(l.consequent=v(e.get("consequent"),!0,!0)),(t.isConditionalExpression(l.alternate)||t.isLogicalExpression(l.alternate))&&(l.alternate=v(e.get("alternate"),!0,!0)));else if(t.isLogicalExpression(l)){let s=e;for(;"&&"!==s.node.operator&&t.isLogicalExpression(s.node.left);)s=s.get("left");"&&"===s.node.operator&&g(s.get("right"),{checkTags:!0,checkMember:!0})&&(p=g(s.get("left"),{checkMember:!0}))&&(r=s.node.left,t.isBinaryExpression(r)||(r=t.unaryExpression("!",t.unaryExpression("!",r,!0),!0)),i=n?t.callExpression(o,[t.arrowFunctionExpression([],r)]):e.scope.generateUidIdentifier("_c$"),s.node.left=t.callExpression(i,[]))}if(p&&!n&&r&&i){let e=[t.variableDeclaration("var",[t.variableDeclarator(i,a.memoWrapper?t.callExpression(o,[t.arrowFunctionExpression([],r)]):t.arrowFunctionExpression([],r))]),t.expressionStatement(t.arrowFunctionExpression([],l))];return s?t.callExpression(t.arrowFunctionExpression([],t.blockStatement([e[0],t.returnStatement(e[1].expression)])),[]):e}return s?l:t.arrowFunctionExpression([],l)}function y(e,t){if("string"!=typeof e)return e;let n=t?'"':"<",s=t?"&quot;":"&lt;",r=e.indexOf(n),i=e.indexOf("&");if(r<0&&i<0)return e;let a=0,l="";for(;r>=0&&i>=0;)r<i?(a<r&&(l+=e.substring(a,r)),l+=s,a=r+1,r=e.indexOf(n,a)):(a<i&&(l+=e.substring(a,i)),l+="&amp;",a=i+1,i=e.indexOf("&",a));if(r>=0)do a<r&&(l+=e.substring(a,r)),l+=s,a=r+1,r=e.indexOf(n,a);while(r>=0);else for(;i>=0;)a<i&&(l+=e.substring(a,i)),l+="&amp;",a=i+1,i=e.indexOf("&",a);return a<e.length?l+e.substring(a):l}function S(e){if(t.isJSXIdentifier(e))if(!t.isValidIdentifier(e.name))return t.stringLiteral(e.name);else e.type="Identifier";else if(t.isJSXMemberExpression(e))return t.memberExpression(S(e.object),S(e.property));else if(t.isJSXNamespacedName(e))return t.stringLiteral(`${e.namespace.name}:${e.name.name}`);return e}function C(e,{checkNameSpaces:t}={}){return!(t&&e.includes(":")&&p.has(e.split(":")[0]))&&"ref"!==e}let L="etaoinshrdlucwmfygpbTAOISWCBvkxjqzPHFMDRELNGUKVYJQZX_$",w=L.length;function N(e){let t="";do{let n=e%w;e=Math.floor(e/w),t=L[n]+t}while(0!==e);return t}function k(e){return e.replace(/[{\\`\n\t\b\f\v\r\u2028\u2029]/g,e=>$.get(e))}let $=new Map([["{","\\{"],["`","\\`"],["\\","\\\\"],[`
7
+ `,"\\n"],[" ","\\t"],["\b","\\b"],["\f","\\f"],["\v","\\v"],["\r","\\r"],["\u2028","\\u2028"],["\u2029","\\u2029"]]),I=["allowfullscreen","async","alpha","autofocus","autoplay","checked","controls","default","disabled","formnovalidate","hidden","indeterminate","inert","ismap","loop","multiple","muted","nomodule","novalidate","open","playsinline","readonly","required","reversed","seamless","selected","adauctionheaders","browsingtopics","credentialless","defaultchecked","defaultmuted","defaultselected","defer","disablepictureinpicture","disableremoteplayback","preservespitch","shadowrootclonable","shadowrootcustomelementregistry","shadowrootdelegatesfocus","shadowrootserializable","sharedstoragewritable"],X=["a","abbr","acronym","b","bdi","bdo","big","br","button","canvas","cite","code","data","datalist","del","dfn","em","embed","i","iframe","img","input","ins","kbd","label","map","mark","meter","noscript","object","output","picture","progress","q","ruby","s","samp","script","select","slot","small","span","strong","sub","sup","svg","template","textarea","time","u","tt","var","video"],J=["address","article","aside","blockquote","dd","details","dialog","div","dl","dt","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","hr","li","main","menu","nav","ol","p","pre","section","table","ul"],j=new Set(I),T=Object.assign(Object.create(null),{className:"class",htmlFor:"for"}),M=new Set(["innerHTML","textContent","innerText","children"]),F=new Set(["beforeinput","click","dblclick","contextmenu","focusin","focusout","input","keydown","keyup","mousedown","mousemove","mouseout","mouseover","mouseup","pointerdown","pointermove","pointerout","pointerover","pointerup","touchend","touchmove","touchstart"]),P=new Set(["className","value","readOnly","noValidate","formNoValidate","isMap","noModule","playsInline","adAuctionHeaders","allowFullscreen","browsingTopics","defaultChecked","defaultMuted","defaultSelected","disablePictureInPicture","disableRemotePlayback","preservesPitch","shadowRootClonable","shadowRootCustomElementRegistry","shadowRootDelegatesFocus","shadowRootSerializable","sharedStorageWritable",...I]),O=new Set(["altGlyph","altGlyphDef","altGlyphItem","animate","animateColor","animateMotion","animateTransform","circle","clipPath","color-profile","cursor","defs","desc","ellipse","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence","filter","font","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","foreignObject","g","glyph","glyphRef","hkern","image","line","linearGradient","marker","mask","metadata","missing-glyph","mpath","path","pattern","polygon","polyline","radialGradient","rect","set","stop","svg","switch","symbol","text","textPath","tref","tspan","use","view","vkern"]),A={xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace"},W=Object.assign(Object.create(null),{class:"className",novalidate:{$:"noValidate",FORM:1},formnovalidate:{$:"formNoValidate",BUTTON:1,INPUT:1},ismap:{$:"isMap",IMG:1},nomodule:{$:"noModule",SCRIPT:1},playsinline:{$:"playsInline",VIDEO:1},readonly:{$:"readOnly",INPUT:1,TEXTAREA:1},adauctionheaders:{$:"adAuctionHeaders",IFRAME:1},allowfullscreen:{$:"allowFullscreen",IFRAME:1},browsingtopics:{$:"browsingTopics",IMG:1},defaultchecked:{$:"defaultChecked",INPUT:1},defaultmuted:{$:"defaultMuted",AUDIO:1,VIDEO:1},defaultselected:{$:"defaultSelected",OPTION:1},disablepictureinpicture:{$:"disablePictureInPicture",VIDEO:1},disableremoteplayback:{$:"disableRemotePlayback",AUDIO:1,VIDEO:1},preservespitch:{$:"preservesPitch",AUDIO:1,VIDEO:1},shadowrootclonable:{$:"shadowRootClonable",TEMPLATE:1},shadowrootdelegatesfocus:{$:"shadowRootDelegatesFocus",TEMPLATE:1},shadowrootserializable:{$:"shadowRootSerializable",TEMPLATE:1},sharedstoragewritable:{$:"sharedStorageWritable",IFRAME:1,IMG:1}}),D=["title","style","a","strong","small","b","u","i","em","s","code","object","table","button","textarea","select","iframe","script","noscript","template","fieldset"];function V(e,n,s,r,{isSVG:i=!1,dynamic:a=!1,prevId:l,isCE:p=!1,tagName:c}){let x,g,f=m(e);if((x=s.split(":"))&&x[1]&&o.has(x[0])&&(s=x[1],g=x[0]),"style"===g){let i=d(e,"setStyleProperty",u(e,"dom").moduleName);return t.callExpression(i,[n,t.stringLiteral(s),t.isAssignmentExpression(r)&&t.isIdentifier(r.left)?r.right:r])}if("class"===g)return t.callExpression(t.memberExpression(t.memberExpression(n,t.identifier("classList")),t.identifier("toggle")),[t.stringLiteral(s),a?r:t.unaryExpression("!",t.unaryExpression("!",r))]);if("style"===s)return t.callExpression(d(e,"style",u(e,"dom").moduleName),l?[n,r,l]:[n,r]);if(!i&&"class"===s)return t.callExpression(d(e,"className",u(e,"dom").moduleName),[n,r]);if("classList"===s)return t.callExpression(d(e,"classList",u(e,"dom").moduleName),l?[n,r,l]:[n,r]);if(a&&"textContent"===s)return f.hydratable?t.callExpression(d(e,"setProperty"),[n,t.stringLiteral("data"),r]):t.assignmentExpression("=",t.memberExpression(n,t.identifier("data")),r);if("bool"===g)return t.callExpression(d(e,"setBoolAttribute",u(e,"dom").moduleName),[n,t.stringLiteral(s),r]);let h=M.has(s),E=P.has(s),b=function(e,t){let n=W[e];return"object"==typeof n?n[t]?n.$:void 0:n}(s,c.toUpperCase());if("attr"!==g&&(h||!i&&E||p||"prop"===g))return(!p||h||E||"prop"===g||(s=s.toLowerCase().replace(/-([a-z])/g,(e,t)=>t.toUpperCase())),f.hydratable&&"prop"!==g)?t.callExpression(d(e,"setProperty"),[n,t.stringLiteral(b||s),r]):t.assignmentExpression("=",t.memberExpression(n,t.identifier(b||s)),r);let v=s.indexOf(":")>-1;s=T[s]||s,i||(s=s.toLowerCase());let y=v&&A[s.split(":")[0]];return y?t.callExpression(d(e,"setAttributeNS",u(e,"dom").moduleName),[n,t.stringLiteral(y),t.stringLiteral(s),r]):t.callExpression(d(e,"setAttribute",u(e,"dom").moduleName),[n,t.stringLiteral(s),r])}function B(e,n){for(;t.isIdentifier(n);){let s=e.scope.getBinding(n.name);if(!s)return!1;if(t.isVariableDeclarator(s.path.node))n=s.path.node.init;else if(t.isFunctionDeclaration(s.path.node))return!0;else return!1}return t.isFunction(n)}function U(e,n,s,r,i){var a,l;let o,p=e.scope.generateUidIdentifier("el$"),c=m(e);return n.template+=`<!${i}>`,n.templateWithClosingTags+=`<!${i}>`,c.hydratable&&"/"===i?(o=e.scope.generateUidIdentifier("co$"),null==(a=n.declarations)||a.push(t.variableDeclarator(t.arrayPattern([p,o]),t.callExpression(d(e,"getNextMarker",u(e,"dom").moduleName),[t.memberExpression(t.identifier(s),t.identifier("nextSibling"))])))):null==(l=n.declarations)||l.push(t.variableDeclarator(p,t.memberExpression(t.identifier(s),t.identifier(0===r?"firstChild":"nextSibling")))),[p,o]}function H(e,n,s){var r,i,a;let l=m(e);return n.id?(function(e,n){var s;let r,{hydratable:i}=m(e);if(n.template.length){let s,a;if(!n.skipTemplate){let t=e.scope.getProgramParent().data.templates||(e.scope.getProgramParent().data.templates=[]);(s=t.find(e=>e.template===n.template))?a=s.id:(a=e.scope.generateUidIdentifier("tmpl$"),t.push({id:a,template:n.template,templateWithClosingTags:n.templateWithClosingTags,isSVG:n.isSVG,isCE:n.hasCustomElement,isImportNode:n.isImportNode,renderer:"dom"}))}r=t.variableDeclarator(n.id,i?t.callExpression(d(e,"getNextElement",u(e,"dom").moduleName),a?[a]:[]):t.callExpression(a,[]))}null==(s=n.declarations)||s.unshift(r),n.decl=t.variableDeclaration("var",n.declarations)}(e,n),n.exprs.length||(null==(r=n.dynamics)?void 0:r.length)||(null==(i=n.postExprs)?void 0:i.length)||(null==(a=n.decl)?void 0:a.declarations.length)!==1)?t.callExpression(t.arrowFunctionExpression([],t.blockStatement([n.decl,...n.exprs.concat(function(e,n){if(!(null==n?void 0:n.length))return;let s=m(e),r=d(e,s.effectWrapper);if(1===n.length){let s,i="classList"===n[0].key||"style"===n[0].key||(s=n[0].key.startsWith("style:"))?t.identifier("_$p"):void 0;return s?n[0].value=t.assignmentExpression("=",i,n[0].value):!n[0].key.startsWith("class:")||t.isBooleanLiteral(n[0].value)||t.isUnaryExpression(n[0].value)||(n[0].value=t.unaryExpression("!",t.unaryExpression("!",n[0].value))),t.expressionStatement(t.callExpression(r,[t.arrowFunctionExpression(i?[i]:[],V(e,n[0].elem,n[0].key,n[0].value,{isSVG:n[0].isSVG,isCE:n[0].isCE,tagName:n[0].tagName,dynamic:!0,prevId:i}))]))}let i=t.identifier("_p$"),a=[],l=[],o=[];return n.forEach(({elem:n,key:s,value:r,isSVG:p,isCE:m,tagName:u},d)=>{let c=e.scope.generateUidIdentifier("v$"),x=t.identifier(N(d)),g=t.memberExpression(i,x);if(!s.startsWith("class:")||t.isBooleanLiteral(r)||t.isUnaryExpression(r)||(r=t.unaryExpression("!",t.unaryExpression("!",r))),o.push(x),a.push(t.variableDeclarator(c,r)),"classList"===s||"style"===s)l.push(t.expressionStatement(t.assignmentExpression("=",g,V(e,n,s,c,{isSVG:p,isCE:m,tagName:u,dynamic:!0,prevId:g}))));else{let r=s.startsWith("style:")?c:void 0;l.push(t.expressionStatement(t.logicalExpression("&&",t.binaryExpression("!==",c,g),V(e,n,s,t.assignmentExpression("=",g,c),{isSVG:p,isCE:m,tagName:u,dynamic:!0,prevId:r}))))}}),t.expressionStatement(t.callExpression(r,[t.arrowFunctionExpression([i],t.blockStatement([t.variableDeclaration("var",a),...l,t.returnStatement(i)])),t.objectExpression(o.map(e=>t.objectProperty(e,t.identifier("undefined"))))]))}(e,n.dynamics)||[],n.postExprs||[]),t.returnStatement(n.id)])),[]):n.decl.declarations[0].init:s&&n.dynamic&&l.memoWrapper?t.callExpression(d(e,l.memoWrapper),[n.exprs[0]]):n.exprs[0]}function _(e,n){var s,r,i,a,l,o;let p,m;if(!n.template)return n.exprs[0];if(Array.isArray(n.template))if(1===n.template.length)p=t.stringLiteral(n.template[0]);else{let e=n.template.map(e=>t.stringLiteral(e));p=t.arrayExpression(e)}else p=t.stringLiteral(n.template);let u=e.scope.getProgramParent().data.templates||(e.scope.getProgramParent().data.templates=[]),c=u.find(e=>t.isArrayExpression(e.template)&&t.isArrayExpression(p)?e.template.elements.every((e,t)=>p.elements[t]&&e.value===p.elements[t].value):e.template.value===p.value);if(c?m=c.id:(m=e.scope.generateUidIdentifier("tmpl$"),u.push({id:m,template:p,templateWithClosingTags:p,renderer:"ssr"})),n.wontEscape){if(!Array.isArray(n.template)||1===n.template.length)return m;else if(Array.isArray(n.template)&&2===n.template.length&&(null==(r=null==(s=n.templateValues)?void 0:s[0])?void 0:r.type)==="CallExpression"&&(null==(l=null==(a=null==(i=n.templateValues)?void 0:i[0])?void 0:a.callee)?void 0:l.name)==="_$ssrHydrationKey")return t.binaryExpression("+",t.binaryExpression("+",t.memberExpression(m,t.numericLiteral(0),!0),n.templateValues[0]),t.memberExpression(m,t.numericLiteral(1),!0))}return t.callExpression(d(e,"ssr"),Array.isArray(n.template)&&n.template.length>1?[m,...null!=(o=n.templateValues)?o:[]]:[m])}var R=Object.defineProperty,G=Object.defineProperties,q=Object.getOwnPropertyDescriptors,z=Object.getOwnPropertySymbols,K=Object.prototype.hasOwnProperty,Q=Object.prototype.propertyIsEnumerable,Y=(e,t,n)=>t in e?R(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Z=(e,t)=>{for(var n in t||(t={}))K.call(t,n)&&Y(e,n,t[n]);if(z)for(var n of z(t))Q.call(t,n)&&Y(e,n,t[n]);return e};function ee(e,t){let n;Array.isArray(t)&&([t,...n]=t),e[e.length-1]+=t,n&&n.length&&e.push.apply(e,n)}function et(e,t){return e=T[e]||e,t||(e=e.toLowerCase()),e}function en(e,n,s,r){if(t.isStringLiteral(n)||t.isNumericLiteral(n)||t.isTemplateLiteral(n)&&0===n.expressions.length){if(r){if(t.isStringLiteral(n))return t.stringLiteral(y(n.value,s));else if(t.isTemplateLiteral(n))return t.stringLiteral(y(n.quasis[0].value.raw,s))}return n}if(t.isFunction(n))return t.isBlockStatement(n.body)?n.body.body=n.body.body.map(n=>(t.isReturnStatement(n)&&(n.argument=en(e,n.argument,s,r)),n)):n.body=en(e,n.body,s,r),n;if(t.isTemplateLiteral(n))return n.expressions=n.expressions.map(t=>en(e,t,s,r)),n;if(t.isUnaryExpression(n))return n;if(t.isBinaryExpression(n))return n.left=en(e,n.left,s,r),n.right=en(e,n.right,s,r),n;else if(t.isConditionalExpression(n))return n.consequent=en(e,n.consequent,s,r),n.alternate=en(e,n.alternate,s,r),n;else if(t.isLogicalExpression(n))return n.right=en(e,n.right,s,r),"&&"!==n.operator&&(n.left=en(e,n.left,s,r)),n;else if(t.isCallExpression(n)&&t.isFunction(n.callee))return t.isBlockStatement(n.callee.body)?n.callee.body.body=n.callee.body.body.map(n=>(t.isReturnStatement(n)&&(n.argument=en(e,n.argument,s,r)),n)):n.callee.body=en(e,n.callee.body,s,r),n;else if(t.isJSXElement(n)&&!x(c(n)))return n.wontEscape=!0,n;return t.callExpression(d(e,"escape"),[n].concat(s?[t.booleanLiteral(!0)]:[]))}function es(e,n,s){let r=[],i=n.find(t=>t.node.name.name===e);for(let e=0;e<s.length;e++){let a=s[e].node,l=!t.isValidIdentifier(a.name.name.name);l||(a.name.name.type="Identifier"),r.push(t.objectProperty(l?t.stringLiteral(a.name.name.name):a.name.name,t.isJSXExpressionContainer(a.value)?a.value.expression:a.value)),(i||e)&&n.splice(s[e].key,1)}i&&t.isJSXExpressionContainer(i.node.value)&&t.isObjectExpression(i.node.value.expression)?i.node.value.expression.properties.push(...r):s[0].node=t.jsxAttribute(t.jsxIdentifier(e),t.jsxExpressionContainer(t.objectExpression(r)))}function er(e){let n=e.get("openingElement").get("attributes"),s=n.filter(e=>t.isJSXNamespacedName(e.node.name)&&"style"===e.node.name.namespace.name),r=n.filter(e=>t.isJSXNamespacedName(e.node.name)&&"class"===e.node.name.namespace.name);r.length&&es("classList",n,r);let i=n.filter(e=>e.node.name&&("class"===e.node.name.name||"className"===e.node.name.name||"classList"===e.node.name.name));if(i.length>1){let s=i[0].node,r=[],a=[t.templateElement({raw:""})];for(let s=0;s<i.length;s++){let l=i[s].node,o=s===i.length-1;if(t.isJSXExpressionContainer(l.value)){let p=l.value.expression;if("classList"===l.name.name){if(t.isObjectExpression(p)&&!p.properties.some(e=>t.isSpreadElement(e))){ei(e,p,r,a),o||(a[a.length-1].value.raw+=" "),s&&n.splice(n.indexOf(i[s]),1);continue}p=t.callExpression(d(e,"ssrClassList"),[p])}r.push(t.logicalExpression("||",p,t.stringLiteral(""))),a.push(t.templateElement({raw:o?"":" "}))}else{let e=a.pop();a.push(t.templateElement({raw:(e?e.value.raw:"")+`${l.value.value}`+(o?"":" ")}))}s&&n.splice(n.indexOf(i[s]),1)}s.name=t.jsxIdentifier("class"),s.value=t.jsxExpressionContainer(t.templateLiteral(a,r))}return s.length&&es("style",n,s),n}function ei(e,n,s,r){n.properties.forEach((i,a)=>{let l=n.properties.length-1===a,o=i.key;if(o=t.isIdentifier(i.key)&&!i.computed?t.stringLiteral(o.name):i.computed?t.callExpression(d(e,"escape"),[i.key,t.booleanLiteral(!0)]):t.stringLiteral(y(i.key.value)),t.isBooleanLiteral(i.value)){if(!0===i.value.value)if(i.computed)s.push(o),r.push(t.templateElement({raw:l?"":" "}));else{let e=r.pop();r.push(t.templateElement({raw:(e?e.value.raw:"")+(a?" ":"")+`${o.value}`+(l?"":" ")}))}}else s.push(t.conditionalExpression(i.value,o,t.stringLiteral(""))),r.push(t.templateElement({raw:l?"":" "}))})}function ea(e,n,s,r,{prevId:i}={}){return r||(r=t.booleanLiteral(!0)),t.callExpression(d(e,"setProp",u(e,"universal").moduleName),i?[n,t.stringLiteral(s),r,i]:[n,t.stringLiteral(s),r])}function el(e,n,s){var r,i;let a=m(e);return n.id?(n.decl=t.variableDeclaration("var",n.declarations),n.exprs.length||(null==(r=n.dynamics)?void 0:r.length)||(null==(i=n.postExprs)?void 0:i.length)||1!==n.decl.declarations.length)?t.callExpression(t.arrowFunctionExpression([],t.blockStatement([n.decl,...n.exprs.concat(function(e,n){if(!n.length)return;let s=m(e),r=d(e,s.effectWrapper);if(1===n.length){let s=t.identifier("_$p"),i=n[0];return t.expressionStatement(t.callExpression(r,[t.arrowFunctionExpression([s],ea(e,i.elem,i.key,i.value,{prevId:s}))]))}let i=t.identifier("_p$"),a=[],l=[],o=[];return n.forEach(({elem:n,key:s,value:r},p)=>{let m=e.scope.generateUidIdentifier("v$"),u=t.identifier(N(p)),d=t.memberExpression(i,u);o.push(u),a.push(t.variableDeclarator(m,r)),l.push(t.expressionStatement(t.logicalExpression("&&",t.binaryExpression("!==",m,d),t.assignmentExpression("=",d,ea(e,n,s,m,{prevId:d})))))}),t.expressionStatement(t.callExpression(r,[t.arrowFunctionExpression([i],t.blockStatement([t.variableDeclaration("var",a),...l,t.returnStatement(i)])),t.objectExpression(o.map(e=>t.objectProperty(e,t.identifier("undefined"))))]))}(e,n.dynamics)||[],n.postExprs||[]),t.returnStatement(n.id)])),[]):n.decl.declarations[0].init:s&&n.dynamic&&a.memoWrapper?t.callExpression(d(e,a.memoWrapper),[n.exprs[0]]):n.exprs[0]}function eo(e,n){if(n.skip)return;let r=m(e),i=function(e){let n,s=e.scope.getFunctionParent();return e.traverse({ThisExpression(e){ep(e,s)===s&&(n||(n=e.scope.generateUidIdentifier("self$")),e.replaceWith(n))},JSXElement(e){let r=e.get("openingElement").get("name");for(;r.isJSXMemberExpression();)r=r.get("object");r.isJSXIdentifier()&&"this"===r.node.name&&ep(e,s)===s&&(n||(n=e.scope.generateUidIdentifier("self$")),r.replaceWith(t.jsxIdentifier(n.name)),e.node.closingElement&&(e.node.closingElement.name=e.node.openingElement.name))}}),r=>{if(n)if(s&&"ClassMethod"!==s.block.type)s.push({id:n,init:t.thisExpression(),kind:"const"});else{let i=t.variableDeclaration("const",[t.variableDeclarator(n,t.thisExpression())]);if(!s)return t.callExpression(t.arrowFunctionExpression([],t.blockStatement([i,t.returnStatement(r)])),[]);{let t=e.getStatementParent();null==t||t.insertBefore(i)}}return r}}(e),a=function e(n,r={}){let i,a=m(n),p=n.node;if(t.isJSXElement(p)&&t.isJSXElement(n.node))return function(n,r,i={}){var a,p;let L,w,N=c(r.node);if(x(N))return function(n){let r=[],i=m(n),a=function e(n){if(t.isJSXIdentifier(n)){if("this"===n.name)return t.thisExpression();if(!t.isValidIdentifier(n.name))return t.stringLiteral(n.name);n.type="Identifier"}else if(t.isJSXMemberExpression(n)){let s=e(n.property),r=t.isStringLiteral(s);return t.memberExpression(e(n.object),s,r)}return n}(n.node.openingElement.name),l=[],o=[],p=!1,u=n.node.children.length>0;if(i.builtIns.indexOf(a.name)>-1&&!n.scope.hasBinding(a.name)){let e=d(n,a.name);a.name=e.name}n.get("openingElement").get("attributes").forEach(e=>{let s=e.node;if(t.isJSXSpreadAttribute(s))o.length&&(l.push(t.objectExpression(o)),o=[]),l.push(g(e.get("argument"),{checkMember:!0})&&(p=!0)?!t.isCallExpression(s.argument)||s.argument.arguments.length||t.isCallExpression(s.argument.callee)||t.isMemberExpression(s.argument.callee)?t.arrowFunctionExpression([],s.argument):s.argument.callee:s.argument);else{let r=(t.isStringLiteral(s.value)?t.stringLiteral(s.value.value):s.value)||t.booleanLiteral(!0),a=S(s.name),l=a.name;if(u&&"children"===l)return;if(t.isJSXExpressionContainer(r))if("ref"===l){if("ssr"===i.generate)return;for(;t.isTSNonNullExpression(r.expression)||t.isTSAsExpression(r.expression)||t.isTSSatisfiesExpression(r.expression);)r.expression=r.expression.expression;let e,s=t.isIdentifier(r.expression)&&(e=n.scope.getBinding(r.expression.name))&&("const"===e.kind||"module"===e.kind);if(!s&&t.isLVal(r.expression)){let e=n.scope.generateUidIdentifier("_ref$");o.push(t.objectMethod("method",t.identifier("ref"),[t.identifier("r$")],t.blockStatement([t.variableDeclaration("var",[t.variableDeclarator(e,r.expression)]),t.expressionStatement(t.conditionalExpression(t.binaryExpression("===",t.unaryExpression("typeof",e),t.stringLiteral("function")),t.callExpression(e,[t.identifier("r$")]),t.assignmentExpression("=",r.expression,t.identifier("r$"))))])))}else if(!s&&t.isOptionalMemberExpression(r.expression)&&t.isIdentifier(r.expression.object)&&t.isIdentifier(r.expression.property)){let e=n.scope.generateUidIdentifier("_ref$");o.push(t.objectMethod("method",t.identifier("ref"),[t.identifier("r$")],t.blockStatement([t.variableDeclaration("var",[t.variableDeclarator(e,r.expression)]),t.expressionStatement(t.conditionalExpression(t.binaryExpression("===",t.unaryExpression("typeof",e),t.stringLiteral("function")),t.callExpression(e,[t.identifier("r$")]),t.logicalExpression("&&",t.unaryExpression("!",t.unaryExpression("!",t.identifier(r.expression.object.name))),t.assignmentExpression("=",t.memberExpression(t.identifier(r.expression.object.name),t.identifier(r.expression.property.name)),t.identifier("r$")))))])))}else if(s||t.isFunction(r.expression))o.push(t.objectProperty(t.identifier("ref"),r.expression));else if(t.isCallExpression(r.expression)){let e=n.scope.generateUidIdentifier("_ref$");o.push(t.objectMethod("method",t.identifier("ref"),[t.identifier("r$")],t.blockStatement([t.variableDeclaration("var",[t.variableDeclarator(e,r.expression)]),t.expressionStatement(t.logicalExpression("&&",t.binaryExpression("===",t.unaryExpression("typeof",e),t.stringLiteral("function")),t.callExpression(e,[t.identifier("r$")])))])))}}else if(g(e.get("value").get("expression"),{checkMember:!0,checkTags:!0}))if(i.wrapConditionals&&"ssr"!==i.generate&&(t.isLogicalExpression(r.expression)||t.isConditionalExpression(r.expression))){let n=v(e.get("value").get("expression"),!0);o.push(t.objectMethod("get",a,[],t.blockStatement([t.returnStatement(n.body)]),!t.isValidIdentifier(l)))}else if(t.isCallExpression(r.expression)&&t.isArrowFunctionExpression(r.expression.callee)&&0===r.expression.callee.params.length){let e=r.expression.callee,n=t.isBlockStatement(e.body)?e.body:t.blockStatement([t.returnStatement(e.body)]);o.push(t.objectMethod("get",a,[],n,!t.isValidIdentifier(l)))}else o.push(t.objectMethod("get",a,[],t.blockStatement([t.returnStatement(r.expression)]),!t.isValidIdentifier(l)));else o.push(t.objectProperty(a,r.expression));else o.push(t.objectProperty(a,r))}});let c=function(n,r){let i=h(n);if(!i.length)return;let a=!1,l=[],o=i.reduce((n,o)=>{if(t.isJSXText(o.node)){let e=s(b(o.node.extra.raw));e.length&&(l.push(o.node),n.push(t.stringLiteral(e)))}else{let s=e(o,{topLevel:!0,componentChild:!0,lastElement:!0});a=a||(null==s?void 0:s.dynamic)||!1,"ssr"===r.generate&&i.length>1&&(null==s?void 0:s.dynamic)&&t.isFunction(null==s?void 0:s.exprs[0])&&(s.exprs[0]=s.exprs[0].body),l.push(o.node),n.push(em(r,o,s)(o,s,i.length>1))}return n},[]);return 1===o.length?(o=o[0],t.isJSXExpressionContainer(l[0])||t.isJSXSpreadChild(l[0])||t.isJSXText(l[0])||(o=!t.isCallExpression(o)||o.arguments.length||t.isIdentifier(o.callee)?t.arrowFunctionExpression([],o):o.callee,a=!0)):(o=t.arrowFunctionExpression([],t.arrayExpression(o)),a=!0),[o,a]}(n.get("children"),i);if(c&&c[0])if(c[1]){let e=t.isCallExpression(c[0])&&t.isFunction(c[0].arguments[0])?c[0].arguments[0].body:c[0].body?c[0].body:c[0];o.push(t.objectMethod("get",t.identifier("children"),[],t.isExpression(e)?t.blockStatement([t.returnStatement(e)]):e))}else o.push(t.objectProperty(t.identifier("children"),c[0]));(o.length||!l.length)&&l.push(t.objectExpression(o)),(l.length>1||p)&&(l=[t.callExpression(d(n,"mergeProps"),l)]);let x=[a,l[0]];if(r.push(t.callExpression(d(n,"createComponent"),x)),r.length>1){let e=r.pop();r=[t.callExpression(t.arrowFunctionExpression([],t.blockStatement([...r,t.returnStatement(e)])),[])]}return{exprs:r,template:"",component:!0}}(r);let $=(null!=(a=n.renderers)?a:[]).find(e=>e.elements.includes(N));return(null==$?void 0:$.name)==="dom"||"dom"===m(r).generate?function(n,s){var r,i,a;let p=c(n.node),L=m(n),w=s.topLevel&&"svg"!=p&&O.has(p),N=l.indexOf(p)>-1,k=p.indexOf("-")>-1||n.get("openingElement").get("attributes").some(e=>{var n,s,r;return t.isJSXAttribute(e.node)&&(null==(s=null==(n=e.node)?void 0:n.name)?void 0:s.name)==="is"||(null==(r=e.name)?void 0:r.name)==="is"}),$=("img"===p||"iframe"===p)&&n.get("openingElement").get("attributes").some(e=>{var n;return t.isJSXAttribute(e.node)&&(null==(n=e.node.name)?void 0:n.name)==="loading"}),I={template:`<${p}`,templateWithClosingTags:`<${p}`,declarations:[],exprs:[],dynamics:[],postExprs:[],isSVG:w,hasCustomElement:k,isImportNode:$,tagName:p,renderer:"dom",skipTemplate:!1};if(n.get("openingElement").get("attributes").some(e=>{var s,r,i;if(t.isJSXAttribute(e.node)&&(null==(s=e.node.name)?void 0:s.name)==="data-hk"){e.remove();let t="";try{t=(null==(i=null==(r=n.scope.getProgramParent().path.hub.file)?void 0:r.opts)?void 0:i.filename)||""}catch(e){}console.log(`
8
+ `+n.buildCodeFrameError(`"data-hk" attribute found in template, which could potentially cause hydration miss-matches. Usually happens when copying and pasting Solid SSRed code into JSX. Please remove the attribute from the JSX.
9
+
10
+ ${t}
11
+ `).toString())}}),L.hydratable&&("html"===p||"head"===p||"body"===p)&&(I.skipTemplate=!0,"head"===p&&s.topLevel)){let e=d(n,"createComponent",u(n,"dom").moduleName),s=d(n,"NoHydration",u(n,"dom").moduleName);return I.exprs.push(t.expressionStatement(t.callExpression(e,[s,t.objectExpression([])]))),I}if(w&&(I.template="<svg>"+I.template,I.templateWithClosingTags="<svg>"+I.templateWithClosingTags),s.skipId||(I.id=n.scope.generateUidIdentifier("el$")),function(e,n){let s=n.id,r=!1,i,a,l=e.get("openingElement").get("attributes"),p=c(e.node),x=O.has(p),f=p.includes("-")||l.some(e=>{var n;return t.isJSXAttribute(e.node)&&(null==(n=e.node.name)?void 0:n.name)==="is"}),h=e.node.children.length>0,E=m(e);l.some(e=>t.isJSXSpreadAttribute(e.node))&&([l,a]=function(e,n,{elem:s,isSVG:r,hasChildren:i,wrapConditionals:a}){let l=m(e),o=[],p=[],c=[],x=!1,f=!1;n.forEach(e=>{let n=e.node,s=!t.isJSXSpreadAttribute(n)&&(t.isJSXNamespacedName(n.name)?`${n.name.namespace.name}:${n.name.name.name}`:n.name.name);if(t.isJSXSpreadAttribute(n)){let s=n.innerComments&&n.innerComments[0]&&n.innerComments[0].value.trim()===l.staticMarker;f=!0,c.length&&(p.push(t.objectExpression(c)),c=[]);let r=g(e.get("argument"),{checkMember:!0})&&(x=!0)?!t.isCallExpression(n.argument)||n.argument.arguments.length||t.isCallExpression(n.argument.callee)||t.isMemberExpression(n.argument.callee)?t.arrowFunctionExpression([],n.argument):n.argument.callee:n.argument;p.push(s?t.objectExpression([t.spreadElement(r)]):r)}else if((f||t.isJSXExpressionContainer(n.value)&&g(e.get("value").get("expression"),{checkMember:!0}))&&C(s,{checkNameSpaces:!0})){let r=t.isJSXExpressionContainer(n.value);if(r&&g(e.get("value").get("expression"),{checkMember:!0})){let r=S(n.name),i=a&&(t.isLogicalExpression(n.value.expression)||t.isConditionalExpression(n.value.expression))?v(e.get("value").get("expression"),!0):t.arrowFunctionExpression([],n.value.expression);c.push(t.objectMethod("get",r,[],t.blockStatement([t.returnStatement(i.body)]),!t.isValidIdentifier(s)))}else c.push(t.objectProperty(t.stringLiteral(s),r?n.value.expression:n.value||(P.has(s)?t.booleanLiteral(!0):t.stringLiteral(""))))}else o.push(e)}),c.length&&p.push(t.objectExpression(c));let h=1!==p.length||x?t.callExpression(d(e,"mergeProps"),p):p[0];return[o,t.expressionStatement(t.callExpression(d(e,"spread",u(e,"dom").moduleName),[s,h,t.booleanLiteral(r),t.booleanLiteral(i)]))]}(e,l,{elem:s,isSVG:x,hasChildren:h,wrapConditionals:E.wrapConditionals}),e.get("openingElement").set("attributes",l.map(e=>e.node)),r=!0);let L=(l=e.get("openingElement").get("attributes")).filter(e=>e.node.name&&"style"===e.node.name.name);if(L.length>0){let n="";for(let e=0;e<L.length;e++){let s=L[e],r=s.node.value;if(t.isJSXExpressionContainer(r)&&(r=r.expression),t.isStringLiteral(r))n+=`${r.value.replace(/;$/,"")};`,s.remove();else if(t.isObjectExpression(r)){let e=r.properties,i=[];for(let s of e)t.isObjectProperty(s)&&(t.isStringLiteral(s.key)&&(t.isStringLiteral(s.value)||t.isNumericLiteral(s.value))?(n+=`${s.key.value}:${s.value.value};`,i.push(s)):(t.isIdentifier(s.value)&&"undefined"===s.value.name||t.isNullLiteral(s.value))&&i.push(s));for(let e of i)r.properties.splice(r.properties.indexOf(e),1);0===r.properties.length&&s.remove()}}if(""!==n){let s=t.jsxAttribute(t.jsxIdentifier("style"),t.stringLiteral(n.replace(/;$/,"")));e.get("openingElement").node.attributes.push(s)}}let w=e.get("openingElement").get("attributes").find(e=>t.isJSXAttribute(e.node)&&"style"===e.node.name.name&&t.isJSXExpressionContainer(e.node.value)&&t.isObjectExpression(e.node.value.expression)&&!e.node.value.expression.properties.some(e=>t.isSpreadElement(e)));if(w){let n=0,s=w.node.value.expression.leadingComments(w.node).value.expression.properties.slice().forEach((r,i)=>{r.computed||(s&&(r.value.leadingComments=s),e.get("openingElement").node.attributes.splice(w.key+ ++n,0,t.jsxAttribute(t.jsxNamespacedName(t.jsxIdentifier("style"),t.jsxIdentifier(t.isIdentifier(r.key)?r.key.name:r.key.value)),t.jsxExpressionContainer(r.value))),w.node.value.expression.properties.splice(i-n-1,1))});w.node.value.expression.properties.length||e.get("openingElement").node.attributes.splice(w.key,1)}let N=(l=e.get("openingElement").get("attributes")).find(e=>t.isJSXAttribute(e.node)&&"classList"===e.node.name.name&&t.isJSXExpressionContainer(e.node.value)&&t.isObjectExpression(e.node.value.expression)&&!e.node.value.expression.properties.some(e=>t.isSpreadElement(e)||e.computed||t.isStringLiteral(e.key)&&(e.key.value.includes(" ")||e.key.value.includes(":"))));if(N){let n=0,s=N.node.value.expression.leadingComments,r=N.get("value").get("expression").get("properties");r.slice().forEach((i,a)=>{let l=i.node,{confident:o,value:p}=i.get("value").evaluate();s&&(l.value.leadingComments=s),o?p&&e.get("openingElement").node.attributes.splice(N.key+ ++n,0,t.jsxAttribute(t.jsxIdentifier("class"),t.stringLiteral(t.isIdentifier(l.key)?l.key.name:l.key.value))):e.get("openingElement").node.attributes.splice(N.key+ ++n,0,t.jsxAttribute(t.jsxNamespacedName(t.jsxIdentifier("class"),t.jsxIdentifier(t.isIdentifier(l.key)?l.key.name:l.key.value)),t.jsxExpressionContainer(l.value))),r.splice(a-n-1,1)}),r.length||e.get("openingElement").node.attributes.splice(N.key,1)}let k=(l=e.get("openingElement").get("attributes")).filter(e=>t.isJSXAttribute(e.node)&&("class"===e.node.name.name||"className"===e.node.name.name));if(k.length>1){let e=k[0].node,n=[],s=[t.templateElement({raw:""})];for(let e=0;e<k.length;e++){let r=k[e].node,i=e===k.length-1;if(t.isJSXExpressionContainer(r.value))n.push(t.logicalExpression("||",r.value.expression,t.stringLiteral(""))),s.push(t.templateElement({raw:i?"":" "}));else{let e=s.pop();s.push(t.templateElement({raw:(e?e.value.raw:"")+`${r.value.value}`+(i?"":" ")}))}e&&l.splice(l.indexOf(k[e]),1)}n.length?e.value=t.jsxExpressionContainer(t.templateLiteral(s,n)):e.value=t.stringLiteral(s[0].value.raw)}e.get("openingElement").set("attributes",l.map(e=>e.node));let $=!0;function I(e,t,n,s){if(e||(t=t.toLowerCase()),n.template+=`${$?" ":""}${t}`,!s){$=!0;return}let r=s.value;"number"==typeof r&&(r=String(r));let i=!E.omitQuotes;if(("style"===t||"class"===t)&&(r=b(r),"style"===t&&(r=r.replace(/; /g,";").replace(/: /g,":"))),!r.length){$=!0,n.template+="";return}for(let e=0,t=r.length;e<t;e++){let t=r[e];("'"===t||'"'===t||" "===t||" "===t||`
12
+ `===t||"\r"===t||"`"===t||"="===t||"<"===t||">"===t)&&(i=!0)}i?($=!1,n.template+=`="${y(r,!0)}"`):($=!0,n.template+=`=${y(r,!0)}`)}e.get("openingElement").get("attributes").forEach(a=>{var l,c,h;let b=a.node,v=b.value,y=t.isJSXNamespacedName(b.name)?`${b.name.namespace.name}:${b.name.name.name}`:b.name.name,S=t.isJSXNamespacedName(b.name)&&o.has(b.name.namespace.name);if(t.isJSXExpressionContainer(v)&&!y.startsWith("use:")){let e,n=a.get("value").get("expression").evaluate().value;void 0!==n&&("string"==(e=typeof n)||"number"===e)&&(v="number"===e&&(P.has(y)||y.startsWith("prop:"))?t.jsxExpressionContainer(t.numericLiteral(n)):t.stringLiteral(String(n)))}if(t.isJSXNamespacedName(b.name)&&S&&!t.isJSXExpressionContainer(v)&&(b.value=v=t.jsxExpressionContainer(v||t.jsxEmptyExpression())),t.isJSXExpressionContainer(v)&&(S||!(t.isStringLiteral(v.expression)||t.isNumericLiteral(v.expression))))if("ref"===y){for(;t.isTSNonNullExpression(v.expression)||t.isTSAsExpression(v.expression);)v.expression=v.expression.expression;let r,i=t.isIdentifier(v.expression)&&(r=e.scope.getBinding(v.expression.name))&&("const"===r.kind||"module"===r.kind);if(!i&&t.isLVal(v.expression)){let r=e.scope.generateUidIdentifier("_ref$");n.exprs.unshift(t.variableDeclaration("var",[t.variableDeclarator(r,v.expression)]),t.expressionStatement(t.conditionalExpression(t.binaryExpression("===",t.unaryExpression("typeof",r),t.stringLiteral("function")),t.callExpression(d(e,"use",u(e,"dom").moduleName),[r,s]),t.assignmentExpression("=",v.expression,s))))}else if(i||t.isFunction(v.expression))n.exprs.unshift(t.expressionStatement(t.callExpression(d(e,"use",u(e,"dom").moduleName),[v.expression,s])));else{let r=e.scope.generateUidIdentifier("_ref$");n.exprs.unshift(t.variableDeclaration("var",[t.variableDeclarator(r,v.expression)]),t.expressionStatement(t.logicalExpression("&&",t.binaryExpression("===",t.unaryExpression("typeof",r),t.stringLiteral("function")),t.callExpression(d(e,"use",u(e,"dom").moduleName),[r,s]))))}}else if(y.startsWith("use:"))b.name.name.type="Identifier",n.exprs.unshift(t.expressionStatement(t.callExpression(d(e,"use",u(e,"dom").moduleName),[b.name.name,s,t.arrowFunctionExpression([],t.isJSXEmptyExpression(v.expression)?t.booleanLiteral(!0):v.expression)])));else if("children"===y)i=v;else if(y.startsWith("on")){let i=y.slice(2).toLowerCase();if(y.startsWith("on:")){let r=[s,t.stringLiteral(y.split(":")[1]),v.expression];n.exprs.unshift(t.expressionStatement(t.callExpression(d(e,"addEventListener",u(e,"dom").moduleName),r)))}else if(y.startsWith("oncapture:")){let e=[t.stringLiteral(y.split(":")[1]),v.expression,t.booleanLiteral(!0)];n.exprs.push(t.expressionStatement(t.callExpression(t.memberExpression(s,t.identifier("addEventListener")),e)))}else if(E.delegateEvents&&(F.has(i)||-1!==E.delegatedEvents.indexOf(i))){r=!0,(a.scope.getProgramParent().data.events||(a.scope.getProgramParent().data.events=new Set)).add(i);let l=v.expression,o=B(a,l);t.isArrayExpression(l)?(l.elements.length>1&&n.exprs.unshift(t.expressionStatement(t.assignmentExpression("=",t.memberExpression(s,t.identifier(`$$${i}Data`)),l.elements[1]))),l=l.elements[0],n.exprs.unshift(t.expressionStatement(t.assignmentExpression("=",t.memberExpression(s,t.identifier(`$$${i}`)),l)))):t.isFunction(l)||o?n.exprs.unshift(t.expressionStatement(t.assignmentExpression("=",t.memberExpression(s,t.identifier(`$$${i}`)),l))):n.exprs.unshift(t.expressionStatement(t.callExpression(d(e,"addEventListener",u(e,"dom").moduleName),[s,t.stringLiteral(i),l,t.booleanLiteral(!0)])))}else{let r=v.expression,l=B(a,r);t.isArrayExpression(r)?(r=r.elements.length>1?t.arrowFunctionExpression([t.identifier("e")],t.callExpression(r.elements[0],[r.elements[1],t.identifier("e")])):r.elements[0],n.exprs.unshift(t.expressionStatement(t.callExpression(t.memberExpression(s,t.identifier("addEventListener")),[t.stringLiteral(i),r])))):t.isFunction(r)||l?n.exprs.unshift(t.expressionStatement(t.callExpression(t.memberExpression(s,t.identifier("addEventListener")),[t.stringLiteral(i),r]))):n.exprs.unshift(t.expressionStatement(t.callExpression(d(e,"addEventListener",u(e,"dom").moduleName),[s,t.stringLiteral(i),r])))}}else if(E.effectWrapper&&(g(a.get("value").get("expression"),{checkMember:!0})||("classList"===y||"style"===y)&&!a.get("value").get("expression").evaluate().confident&&!function e(t,n){return!!t&&(!!t.leadingComments&&!!t.leadingComments[0]&&t.leadingComments[0].value.trim()===m(n).staticMarker||(t.expression?e(t.expression,n):void 0))}(v,e))){let r=s;if("value"===y||"checked"===y){let r=d(e,E.effectWrapper);null==(l=n.postExprs)||l.push(t.expressionStatement(t.callExpression(r,[t.arrowFunctionExpression([],V(e,s,y,v.expression,{tagName:p,isSVG:x,isCE:f}))])));return}"textContent"===y&&(r=a.scope.generateUidIdentifier("el$"),(i=t.jsxText(" ")).extra={raw:" ",rawValue:" "},null==(c=n.declarations)||c.push(t.variableDeclarator(r,t.memberExpression(s,t.identifier("firstChild"))))),null==(h=n.dynamics)||h.push({elem:r,key:y,value:v.expression,isSVG:x,isCE:f,tagName:p})}else if("attr:"===y.slice(0,5))t.isJSXExpressionContainer(v)&&(v=v.expression),t.isStringLiteral(v)||t.isNumericLiteral(v)?I(x,y.slice(5),n,v):n.exprs.push(t.expressionStatement(V(a,s,y,v,{isSVG:x,isCE:f,tagName:p})));else if("bool:"===y.slice(0,5)){let e=function(){n.template+=`${$?" ":""}${y.slice(5)}`,$=!0},r=v;switch(t.isJSXExpressionContainer(r)&&(r=r.expression),r.type){case"StringLiteral":r.value.length&&"0"!==r.value&&e();return;case"NullLiteral":return;case"BooleanLiteral":r.value&&e();return;case"Identifier":if("undefined"===r.name)return}n.exprs.push(t.expressionStatement(V(a,s,y,t.isJSXExpressionContainer(v)?v.expression:v,{isSVG:x,isCE:f,tagName:p})))}else n.exprs.push(t.expressionStatement(V(a,s,y,v.expression,{isSVG:x,isCE:f,tagName:p})));else{if(E.hydratable&&"$ServerOnly"===y){n.skipTemplate=!0;return}t.isJSXExpressionContainer(v)&&(v=v.expression),y=T[y]||y,v&&M.has(y)?n.exprs.push(t.expressionStatement(V(a,s,y,v,{isSVG:x,isCE:f,tagName:p}))):I(x,y,n,v)}}),!h&&i&&e.node.children.push(i),a&&n.exprs.push(a),n.hasHydratableEvent=n.hasHydratableEvent||r}(n,I),L.contextToCustomElements&&("slot"===p||k)&&(i=n,(a=I).exprs.push(t.expressionStatement(t.assignmentExpression("=",t.memberExpression(a.id,t.identifier("_$owner")),t.callExpression(d(i,"getOwner",u(i,"dom").moduleName),[]))))),I.template+=">",I.templateWithClosingTags+=">",!N){let r=!s.lastElement||!L.omitLastClosingTag||s.toBeClosed&&(!L.omitNestedClosingTags||s.toBeClosed.has(p));r?(I.toBeClosed=new Set(s.toBeClosed||D),I.toBeClosed.add(p),X.includes(p)&&J.forEach(e=>{var t;return null==(t=I.toBeClosed)?void 0:t.add(e)})):I.toBeClosed=s.toBeClosed,"noscript"!==p&&function(n,s,r){var i;let a=s.id&&s.id.name,l=c(n.node),o,p=[],m=0,g=h(n.get("children")),b=function(e,n){let s=-1,r;for(let i=e.length-1;i>=0;i--){let a=e[i].node;if(n||t.isJSXText(a)||!1!==f(e[i])||t.isJSXElement(a)&&(r=c(a))&&!x(r)){s=i;break}}return s}(g,r.hydratable),v=g.reduce((n,i,a)=>{if(i.isJSXFragment())throw Error(`Fragments can only be used top level in JSX. Not used under a <${l}>.`);let o=e(i,{toBeClosed:s.toBeClosed,lastElement:a===b,skipId:!s.id||!function e(n,s,r){if(n[s-1]){let e,r=n[s-1].node;if(t.isJSXExpressionContainer(r)&&!t.isJSXEmptyExpression(r.expression)&&!1===f(n[s-1])||t.isJSXElement(r)&&(e=c(r))&&x(e))return!0}for(let i=s;i<n.length;i++){let s=n[i].node;if(t.isJSXExpressionContainer(s)){if(!t.isJSXEmptyExpression(s.expression)&&!1===f(n[i]))return!0}else if(t.isJSXElement(s)){let a=c(s);if(x(a)||r.contextToCustomElements&&("slot"===a||a.indexOf("-")>-1||s.openingElement.attributes.some(e=>{var t;return(null==(t=e.name)?void 0:t.name)==="is"}))||s.openingElement.attributes.some(e=>t.isJSXSpreadAttribute(e)||["textContent","innerHTML","innerText"].includes(e.name.name)||e.name.namespace&&("use"===e.name.namespace.name||"prop"===e.name.namespace.name)||t.isJSXExpressionContainer(e.value)&&!(t.isStringLiteral(e.value.expression)||t.isNumericLiteral(e.value.expression))))return!0;let l=h(n[i].get("children"));if(l.length&&e(l,0,r))return!0}}}(g,a,r)});if(!o)return n;let p=n.length;return o.text&&p&&n[p-1].text?n[p-1].template+=o.template(n[p-1]).templateWithClosingTags+=o.templateWithClosingTags||o.template:n.push(o),n},[]);v.forEach((e,i)=>{var c,x,f;if(e){if(e.tagName&&"dom"!==e.renderer)throw Error(`<${e.tagName}> is not supported in <${l}>.
13
+ Wrap the usage with a component that would render this element, eg. Canvas`);if(s.template+=e.template,s.templateWithClosingTags+=e.templateWithClosingTags||e.template,s.isImportNode=s.isImportNode||e.isImportNode,e.id){let i;if("head"===e.tagName){if(r.hydratable){let e=d(n,"createComponent",u(n,"dom").moduleName),r=d(n,"NoHydration",u(n,"dom").moduleName);s.exprs.push(t.expressionStatement(t.callExpression(e,[r,t.objectExpression([])])))}return}r.hydratable&&"html"===l&&(i=d(n,"getNextMatch",u(n,"dom").moduleName));let g=t.memberExpression(t.identifier(a),t.identifier(0===m?"firstChild":"nextSibling"));null==(c=s.declarations)||c.push(t.variableDeclarator(e.id,r.hydratable&&"html"===l?t.callExpression(i,[g,t.stringLiteral(e.tagName)]):g)),null==(x=s.declarations)||x.push(...e.declarations),s.exprs.push(...e.exprs),null==(f=s.dynamics)||f.push(...e.dynamics),p.push(...e.postExprs),s.hasHydratableEvent=s.hasHydratableEvent||e.hasHydratableEvent,s.hasCustomElement=s.hasCustomElement||e.hasCustomElement,s.isImportNode=s.isImportNode||e.isImportNode,a=e.id.name,o=null,m++}else if(e.exprs.length){let l=d(n,"insert",u(n,"dom").moduleName),p=E(g),c=r.hydratable&&p;if(c||function(e,t){let n=t,s;for(;--n>=0;){let t=e[n];if(t){if(t.text){s=!0;break}if(t.id)return!1}}if(!s)return!1;for(n=t;++n<e.length;){let t=e[n];if(t){if(t.text)return!0;if(t.id)break}}return!1}(v,i)){let r,i;c&&(a=U(n,s,a,m++,"$")[0].name),o?r=o:[r,i]=U(n,s,a,m++,c?"/":""),c||(o=r),s.exprs.push(t.expressionStatement(t.callExpression(l,i?[s.id,e.exprs[0],r,i]:[s.id,e.exprs[0],r]))),a=r.name}else p?s.exprs.push(t.expressionStatement(t.callExpression(l,[s.id,e.exprs[0],function e(t,n){return t[n+1]&&(t[n+1].id||e(t,n+1))}(v,i)||t.nullLiteral()]))):s.exprs.push(t.expressionStatement(t.callExpression(l,[s.id,e.exprs[0]])))}else o=null}}),null==(i=s.postExprs)||i.unshift(...p)}(n,I,L),r&&(I.template+=`</${p}>`),I.templateWithClosingTags+=`</${p}>`}if(s.topLevel&&L.hydratable&&I.hasHydratableEvent){let e=d(n,"runHydrationEvents",u(n,"dom").moduleName);null==(r=I.postExprs)||r.push(t.expressionStatement(t.callExpression(e,[])))}return w&&(I.template+="</svg>",I.templateWithClosingTags+="</svg>"),I}(r,i):"ssr"===m(r).generate?function n(r,i){var a,p;let u=m(r),x=c(r.node);if(("script"===x||"style"===x)&&(r.doNotEscape=!0),r.node.openingElement.attributes.some(e=>t.isJSXSpreadAttribute(e)))return function(n,{topLevel:r,hydratable:i}){let a,l=c(n.node),o=m(n),p=er(n),u=n.doNotEscape,x=h(n.get("children")),f=E(x),v=i&&f,y=x.reduce((n,r)=>{var i;if(t.isJSXText(r.node)){let e=s(b(null==(i=r.node.extra)?void 0:i.raw));e.length&&n.push(t.stringLiteral(e))}else{let s=e(r);v&&s.exprs.length&&!s.spreadElement&&n.push(t.stringLiteral("\x3c!--$--\x3e")),!s.exprs.length||u||s.spreadElement||(s.exprs[0]=en(r,s.exprs[0])),n.push(em(o,r,s)(r,s,!0)),v&&s.exprs.length&&!s.spreadElement&&n.push(t.stringLiteral("\x3c!--/--\x3e"))}return n},[]);if(1===p.length)a=[p[0].node.argument];else{a=[];let e=[],s=!1,r=n.node.children.length>0;p.forEach(n=>{let i=n.node;if(t.isJSXSpreadAttribute(i))e.length&&(a.push(t.objectExpression(e)),e=[]),a.push(g(n.get("argument"),{checkMember:!0})&&(s=!0)?!t.isCallExpression(i.argument)||i.argument.arguments.length||t.isCallExpression(i.argument.callee)||t.isMemberExpression(i.argument.callee)?t.arrowFunctionExpression([],i.argument):i.argument.callee:i.argument);else{let s=i.value||t.booleanLiteral(!0),a=S(i.name),l=t.isJSXNamespacedName(i.name)?`${i.name.namespace.name}:${i.name.name.name}`:i.name.name;if(r&&"children"===l||"ref"===l||l.startsWith("use:")||l.startsWith("prop:")||l.startsWith("on"))return;if(t.isJSXExpressionContainer(s))if(g(n.get("value").get("expression"),{checkMember:!0,checkTags:!0})){let n=t.arrowFunctionExpression([],s.expression);e.push(t.objectMethod("get",a,[],t.blockStatement([t.returnStatement(n.body)]),!t.isValidIdentifier(l)))}else e.push(t.objectProperty(a,s.expression));else e.push(t.objectProperty(a,s))}}),(e.length||!a.length)&&a.push(t.objectExpression(e)),(a.length>1||s)&&(a=[t.callExpression(d(n,"mergeProps"),a)])}return{exprs:[t.callExpression(d(n,"ssrElement"),[t.stringLiteral(l),a[0],y.length?i?t.arrowFunctionExpression([],1===y.length?y[0]:t.arrayExpression(y)):1===y.length?y[0]:t.arrayExpression(y):t.identifier("undefined"),t.booleanLiteral(!!(r&&o.hydratable))])],template:"",spreadElement:!0}}(r,Z(Z({},i),u));let f=l.indexOf(x)>-1,v={template:[`<${x}`],templateValues:[],declarations:[],exprs:[],dynamics:[],tagName:x,wontEscape:r.node.wontEscape,renderer:"ssr"};if(i.topLevel&&u.hydratable){if("head"===x){d(r,"NoHydration"),d(r,"createComponent");let e=n(r,G(Z({},i),q({topLevel:!1})));return v.template="",v.templateWithClosingTags="",v.exprs.push(t.callExpression(t.identifier("_$createComponent"),[t.identifier("_$NoHydration"),t.objectExpression([t.objectMethod("get",t.identifier("children"),[],t.blockStatement([t.returnStatement(_(r,e))]))])])),v}null==(a=v.template)||a.push(""),null==(p=v.templateValues)||p.push(t.callExpression(d(r,"ssrHydrationKey"),[]))}return function(e,n,s){let r,i=c(e.node),a=O.has(i),l=e.node.children.length>0;er(e).forEach(i=>{var l,p;let m=i.node,u=m.value,c=t.isJSXNamespacedName(m.name)?`${m.name.namespace.name}:${m.name.name.name}`:m.name.name,x=t.isJSXNamespacedName(m.name)&&o.has(m.name.namespace.name);if((t.isJSXNamespacedName(m.name)&&x||M.has(c))&&!t.isJSXExpressionContainer(u)&&(m.value=u=t.jsxExpressionContainer(u||t.jsxEmptyExpression())),t.isJSXExpressionContainer(u)&&(x||M.has(c)||!(t.isStringLiteral(u.expression)||t.isNumericLiteral(u.expression)||t.isBooleanLiteral(u.expression))))if("ref"===c||c.startsWith("use:")||c.startsWith("prop:")||c.startsWith("on"))return;else if(M.has(c))s.hydratable&&"textContent"===c&&u&&u.expression&&(u.expression=t.logicalExpression("||",u.expression,t.stringLiteral(" "))),"innerHTML"===c&&(e.doNotEscape=!0),r=u;else{let s=!0;if(c.startsWith("attr:")&&(c=c.replace("attr:","")),j.has(c)){n.template.push("");let e=t.callExpression(d(i,"ssrAttribute"),[t.stringLiteral(c),u.expression,t.booleanLiteral(!0)]);null==(l=n.templateValues)||l.push(e);return}if("style"===c){if(t.isJSXExpressionContainer(u)&&t.isObjectExpression(u.expression)&&!u.expression.properties.some(e=>t.isSpreadElement(e))){let n=u.expression.properties.map((n,s)=>t.callExpression(d(e,"ssrStyleProperty"),[t.stringLiteral((s?";":"")+(t.isIdentifier(n.key)?n.key.name:n.key.value)+":"),en(e,n.value,!0,!0)])),s=n[0];for(let e=1;e<n.length;e++)s=t.binaryExpression("+",s,n[e]);u.expression=s}else u.expression=t.callExpression(d(e,"ssrStyle"),[u.expression]);s=!1}if("classList"===c){if(t.isObjectExpression(u.expression)&&!u.expression.properties.some(e=>t.isSpreadElement(e))){let n=[],s=[t.templateElement({raw:""})];ei(e,u.expression,n,s),n.length?1!==n.length||s[0].value.raw||s[1].value.raw?u.expression=t.templateLiteral(s,n):u.expression=n[0]:u.expression=t.stringLiteral(s[0].value.raw)}else u.expression=t.callExpression(d(e,"ssrClassList"),[u.expression]);c="class",s=!1}s&&(u.expression=en(e,u.expression,!0)),!s||t.isLiteral(u.expression)?(c=et(c,a),ee(n.template,` ${c}="`),n.template.push('"'),null==(p=n.templateValues)||p.push(u.expression)):function(e,n,s,r,i){var a,l,p;let m;(m=s.split(":"))&&m[1]&&o.has(m[0])&&(s=m[1]),s=et(s,i);let u=t.callExpression(d(e,"ssrAttribute"),[t.stringLiteral(s),r,t.booleanLiteral(!1)]);if(n.template[n.template.length-1].length)null==(a=n.template)||a.push(""),null==(l=n.templateValues)||l.push(u);else{let e=n.templateValues.length-1;n.templateValues[e]=t.binaryExpression("+",null==(p=n.templateValues)?void 0:p[e],u)}}(i,n,c,u.expression,a)}else{if("$ServerOnly"===c)return;t.isJSXExpressionContainer(u)&&(u=u.expression),c=et(c,a);let e=j.has(c);if(e&&u&&""!==u.value&&!u.value||(ee(n.template,` ${c}`),!u))return;let s=e?"":u.value;("style"===c||"class"===c)&&(s=b(String(s)),"style"===c&&(s=s.replace(/; /g,";").replace(/: /g,":"))),ee(n.template,""===String(s)?"":`="${y(s,!0)}"`)}}),!l&&r&&e.node.children.push(r)}(r,v,Z(Z({},u),i)),ee(v.template,">"),f||(function(n,s,{hydratable:r}){let i=n.doNotEscape,a=h(n.get("children")),l=E(a),o=r&&l;a.forEach(r=>{var a,l,p,m;if(t.isJSXElement(r.node)&&"head"===c(r.node)){let l=e(r,{doNotEscape:i,hydratable:!1});d(n,"NoHydration"),d(n,"createComponent"),s.template.push(""),null==(a=s.templateValues)||a.push(t.callExpression(t.identifier("_$createComponent"),[t.identifier("_$NoHydration"),t.objectExpression([t.objectMethod("get",t.identifier("children"),[],t.blockStatement([t.returnStatement(_(n,l))]))])]));return}let u=e(r,{doNotEscape:i});u&&(ee(s.template,u.template),null==(l=s.templateValues)||l.push.apply(s.templateValues,u.templateValues||[]),u.exprs.length&&(i||u.spreadElement||(u.exprs[0]=en(n,u.exprs[0])),o&&!u.spreadElement?(ee(s.template,"\x3c!--$--\x3e"),s.template.push(""),null==(p=s.templateValues)||p.push(u.exprs[0]),ee(s.template,"\x3c!--/--\x3e")):(s.template.push(""),null==(m=s.templateValues)||m.push(u.exprs[0]))))})}(r,v,Z(Z({},u),i)),ee(v.template,`</${x}>`)),v}(r,i):(L=c(r.node),null==(p=(w={id:r.scope.generateUidIdentifier("el$"),declarations:[],exprs:[],dynamics:[],postExprs:[],tagName:L,renderer:"universal",template:""}).declarations)||p.push(t.variableDeclarator(w.id,t.callExpression(d(r,"createElement",u(r,"universal").moduleName),[t.stringLiteral(L)]))),function(e,n){let s,r,i=e.get("openingElement").get("attributes"),a=n.id,l=e.node.children.length>0,o=m(e);i.some(e=>t.isJSXSpreadAttribute(e.node))&&([i,r]=function(e,n,{elem:s,hasChildren:r,wrapConditionals:i}){let a=[],l=[],o=[],p=!1,m=!1;n.forEach(e=>{let n=e.node,s=!t.isJSXSpreadAttribute(n)&&(t.isJSXNamespacedName(n.name)?`${n.name.namespace.name}:${n.name.name.name}`:n.name.name);if(t.isJSXSpreadAttribute(n))m=!0,o.length&&(l.push(t.objectExpression(o)),o=[]),l.push(g(e.get("argument"),{checkMember:!0})&&(p=!0)?!t.isCallExpression(n.argument)||n.argument.arguments.length||t.isCallExpression(n.argument.callee)||t.isMemberExpression(n.argument.callee)?t.arrowFunctionExpression([],n.argument):n.argument.callee:n.argument);else if((m||t.isJSXExpressionContainer(n.value)&&g(e.get("value").get("expression"),{checkMember:!0}))&&C(s,{checkNameSpaces:!0})){let r=t.isJSXExpressionContainer(n.value);if(r&&g(e.get("value").get("expression"),{checkMember:!0})){let r=S(n.name),a=i&&(t.isLogicalExpression(n.value.expression)||t.isConditionalExpression(n.value.expression))?v(e.get("value").get("expression"),!0):t.arrowFunctionExpression([],n.value.expression);o.push(t.objectMethod("get",r,[],t.blockStatement([t.returnStatement(a.body)]),!t.isValidIdentifier(s)))}else o.push(t.objectProperty(t.stringLiteral(s),r?n.value.expression:n.value||t.booleanLiteral(!0)))}else a.push(e)}),o.length&&l.push(t.objectExpression(o));let c=1!==l.length||p?t.callExpression(d(e,"mergeProps"),l):l[0];return[a,t.expressionStatement(t.callExpression(d(e,"spread",u(e,"universal").moduleName),[s,c,t.booleanLiteral(r)]))]}(e,i,{elem:a,hasChildren:l,wrapConditionals:o.wrapConditionals}),e.get("openingElement").set("attributes",i.map(e=>e.node))),e.get("openingElement").get("attributes").forEach(r=>{var i;let l=r.node,p=l.value,m=t.isJSXNamespacedName(l.name)?`${l.name.namespace.name}:${l.name.name.name}`:l.name.name,c=t.isJSXNamespacedName(l.name)&&"use"===l.name.namespace.name;if(t.isJSXNamespacedName(l.name)&&c&&!t.isJSXExpressionContainer(p)&&(l.value=p=t.jsxExpressionContainer(p||t.jsxEmptyExpression())),t.isJSXExpressionContainer(p))if("ref"===m){for(;t.isTSNonNullExpression(p.expression)||t.isTSAsExpression(p.expression);)p.expression=p.expression.expression;let s,r=t.isIdentifier(p.expression)&&(s=e.scope.getBinding(p.expression.name))&&("const"===s.kind||"module"===s.kind);if(!r&&t.isLVal(p.expression)){let s=e.scope.generateUidIdentifier("_ref$");n.exprs.unshift(t.variableDeclaration("var",[t.variableDeclarator(s,p.expression)]),t.expressionStatement(t.conditionalExpression(t.binaryExpression("===",t.unaryExpression("typeof",s),t.stringLiteral("function")),t.callExpression(d(e,"use",u(e,"universal").moduleName),[s,a]),t.assignmentExpression("=",p.expression,a))))}else if(r||t.isFunction(p.expression))n.exprs.unshift(t.expressionStatement(t.callExpression(d(e,"use",u(e,"universal").moduleName),[p.expression,a])));else{let s=e.scope.generateUidIdentifier("_ref$");n.exprs.unshift(t.variableDeclaration("var",[t.variableDeclarator(s,p.expression)]),t.expressionStatement(t.logicalExpression("&&",t.binaryExpression("===",t.unaryExpression("typeof",s),t.stringLiteral("function")),t.callExpression(d(e,"use",u(e,"universal").moduleName),[s,a]))))}}else m.startsWith("use:")?(l.name.name.type="Identifier",n.exprs.unshift(t.expressionStatement(t.callExpression(d(e,"use",u(e,"universal").moduleName),[l.name.name,a,t.arrowFunctionExpression([],t.isJSXEmptyExpression(p.expression)?t.booleanLiteral(!0):p.expression)])))):"children"===m?s=p:o.effectWrapper&&g(r.get("value").get("expression"),{checkMember:!0})?null==(i=n.dynamics)||i.push({elem:a,key:m,value:p.expression}):n.exprs.push(t.expressionStatement(ea(r,a,m,p.expression)));else n.exprs.push(t.expressionStatement(ea(r,a,m,p)))}),r&&n.exprs.push(r),!l&&s&&e.node.children.push(s)}(r,w),function(n,s){let r=h(n.get("children")),i=E(r),a=r.map(e).reduce((e,t)=>{if(!t)return e;let n=e.length;return t.text&&n&&e[n-1].text?(e[n-1].template+=t.template,e[n-1].templateWithClosingTags+=t.templateWithClosingTags||t.template):e.push(t),e},[]),l=[];a.forEach((e,r)=>{var o,p,m;if(e){if(e.tagName&&"universal"!==e.renderer)throw Error(`<${e.tagName}> is not supported in <${c(n.node)}>.
14
+ Wrap the usage with a component that would render this element, eg. Canvas`);if(e.id){let r=d(n,"insertNode",u(n,"universal").moduleName),a=e.id;if(e.text){let r=d(n,"createTextNode",u(n,"universal").moduleName);i?null==(o=s.declarations)||o.push(t.variableDeclarator(e.id,t.callExpression(r,[t.templateLiteral([t.templateElement({raw:k(e.template)})],[])]))):a=t.callExpression(r,[t.templateLiteral([t.templateElement({raw:k(e.template)})],[])])}l.push(t.expressionStatement(t.callExpression(r,[s.id,a]))),null==(p=s.declarations)||p.push(...e.declarations),s.exprs.push(...e.exprs),null==(m=s.dynamics)||m.push(...e.dynamics)}else if(e.exprs.length){let l=d(n,"insert",u(n,"universal").moduleName);i?s.exprs.push(t.expressionStatement(t.callExpression(l,[s.id,e.exprs[0],function e(t,n){return t[n+1]&&(t[n+1].id||e(t,n+1))}(a,r)||t.nullLiteral()]))):s.exprs.push(t.expressionStatement(t.callExpression(l,[s.id,e.exprs[0]])))}}}),s.exprs.unshift(...l)}(r,w),w)}(a,n,r);if(t.isJSXFragment(p)){let r={template:"",declarations:[],exprs:[],dynamics:[]},i=h(n.get("children")).reduce((n,r)=>{if(t.isJSXText(r.node)){let e=s(b(r.node.extra.raw));e.length&&n.push(t.stringLiteral(e))}else{let t=e(r,{topLevel:!0,fragmentChild:!0,lastElement:!0});n.push(em(a,r,t)(r,t,!0))}return n},[]);return r.exprs.push(1===i.length?i[0]:t.arrayExpression(i)),r}if(t.isJSXText(p)||!1!==(i=f(n))){let e=void 0!==i?r.doNotEscape?i.toString():y(i.toString()):b(p.extra.raw);if(!e.length)return null;let t={template:e,declarations:[],exprs:[],dynamics:[],postExprs:[],text:!0};return r.skipId||"ssr"===a.generate||(t.id=n.scope.generateUidIdentifier("el$")),t}if(t.isJSXExpressionContainer(p)){if(t.isJSXEmptyExpression(p.expression))return null;if(!g(n.get("expression"),{checkMember:!0,checkTags:!!r.componentChild,native:!r.componentChild}))return{exprs:[p.expression],template:""};let e=a.wrapConditionals&&"ssr"!==a.generate&&(t.isLogicalExpression(p.expression)||t.isConditionalExpression(p.expression))?v(n.get("expression"),r.componentChild||r.fragmentChild):!r.componentChild&&("ssr"!==a.generate||r.fragmentChild)&&t.isCallExpression(p.expression)&&!t.isCallExpression(p.expression.callee)&&!t.isMemberExpression(p.expression.callee)&&0===p.expression.arguments.length?p.expression.callee:t.arrowFunctionExpression([],p.expression);return{exprs:Array.isArray(e)?[t.callExpression(t.arrowFunctionExpression([],t.blockStatement([e[0],t.returnStatement(e[1])])),[])]:[e],template:"",dynamic:!0}}if(t.isJSXSpreadChild(p))return g(n.get("expression"),{checkMember:!0,native:!r.componentChild})?{exprs:[t.arrowFunctionExpression([],p.expression)],template:"",dynamic:!0}:{exprs:[p.expression],template:""}}(e,t.isJSXFragment(e.node)?{}:{topLevel:!0,lastElement:!0}),p=em(r,e,a);e.replaceWith(i(p(e,a,!1))),e.traverse({enter(e){e.node.leadingComments&&e.node.leadingComments[0]&&e.node.leadingComments[0].value.trim()===r.staticMarker&&e.node.leadingComments.shift()}})}function ep(e,t){let n=e.scope.getFunctionParent();for(;n!==t&&(null==n?void 0:n.path.isArrowFunctionExpression());)n=n.path.parentPath.scope.getFunctionParent();return n}function em(e,t,n){return n.tagName&&"dom"===n.renderer||"dom"===e.generate?H:"ssr"===n.renderer||"ssr"===e.generate?_:el}let eu=i("<!DOCTYPE html><html><head></head><body></body></html>").childNodes[1].childNodes[1];var ed=(e,n)=>{var s,i;if(!n.skip&&(e.scope.data.events&&t.isProgram(e.node)&&e.node.body.push(t.expressionStatement(t.callExpression(d(e,"delegateEvents",u(e,"dom").moduleName),[t.arrayExpression(Array.from(e.scope.data.events).map(e=>t.stringLiteral(e)))]))),null==(s=e.scope.data.templates)?void 0:s.length)){if(null==(i=e.hub.file)?void 0:i.metadata.config.validate)for(let t of e.scope.data.templates){let e=t.templateWithClosingTags;if("string"==typeof e){let t=function(e){switch(e=e.replace(/<!>/g,"\x3c!----\x3e").replace(/<!\$>/g,"\x3c!--$--\x3e").replace(/<!\/>/g,"\x3c!--/--\x3e").replace(/^[^<]+/,"#text").replace(/[^>]+$/,"#text").replace(/>[^<]+</gi,">#text<").replace(/&lt;([^>]+)>/gi,"&lt;$1&gt;"),/^<(td|th)>/.test(e)&&(e=`<table><tbody><tr>${e}</tr></tbody></table>`),/^<tr>/.test(e)&&(e=`<table><tbody>${e}</tbody></table>`),/^<col>/.test(e)&&(e=`<table><colgroup>${e}</colgroup></table>`),/^<(thead|tbody|tfoot|colgroup|caption)>/.test(e)&&(e=`<table>${e}</table>`),e){case"<table></table>":case"<table><thead></thead></table>":case"<table><tbody></tbody></table>":case"<table><thead></thead><tbody></tbody></table>":return}let t=a(r(eu,e));if(e.toLowerCase()!==t.toLowerCase())return{html:e,browser:t}}(e);t&&(console.warn(`
15
+ The HTML provided is malformed and will yield unexpected output when evaluated by a browser.
16
+ `),console.warn(`User HTML:
17
+ `,t.html),console.warn(`Browser HTML:
18
+ `,t.browser),console.warn(`Original HTML:
19
+ `,e))}}let n=e.scope.data.templates.filter(e=>"dom"===e.renderer),s=e.scope.data.templates.filter(e=>"ssr"===e.renderer);n.length>0&&function(e,n){let s=n.map(n=>{let s={cooked:n.template,raw:k(n.template)},r=n.isCE||n.isImportNode,i=/^<(math|annotation|annotation-xml|maction|math|merror|mfrac|mi|mmultiscripts|mn|mo|mover|mpadded|mphantom|mprescripts|mroot|mrow|ms|mspace|msqrt|mstyle|msub|msubsup|msup|mtable|mtd|mtext|mtr|munder|munderover|semantics|menclose|mfenced)(\s|>)/.test(n.template);return t.variableDeclarator(n.id,t.addComment(t.callExpression(d(e,"template",u(e,"dom").moduleName),[t.templateLiteral([t.templateElement(s,!0)],[])].concat(n.isSVG||r||i?[t.booleanLiteral(!!r),t.booleanLiteral(n.isSVG),t.booleanLiteral(i)]:[])),"leading","#__PURE__"))});e.node.body.unshift(t.variableDeclaration("var",s))}(e,n),s.length>0&&function(e,n){let s=n.map(e=>t.variableDeclarator(e.id,e.template));e.node.body.unshift(t.variableDeclaration("var",s))}(e,s)}};let ec={moduleName:"dom",generate:"dom",hydratable:!1,delegateEvents:!0,delegatedEvents:[],builtIns:[],requireImportSource:!1,wrapConditionals:!0,omitNestedClosingTags:!1,omitLastClosingTag:!0,omitQuotes:!0,contextToCustomElements:!1,staticMarker:"@once",effectWrapper:"effect",memoWrapper:"memo",validate:!0};var ex=(e,t)=>{var n,s;let r=(e.hub.file.metadata.config=Object.assign({},ec,t.opts)).requireImportSource;if(r){let i=null!=(s=null==(n=e.hub.file)?void 0:n.ast.comments)?s:[],a=!1;for(let e=0;e<i.length;e++){let t=i[e].value.split("@jsxImportSource");if(2===t.length&&t[1].trim()===r){a=!0;break}}if(!a){t.skip=!0;return}}},eg=()=>({name:"@zeus-js/compiler",inherits:e.default,visitor:{JSXElement:eo,JSXFragment:eo,Program:{enter:ex,exit:ed}}});export{eg as default};