@helfy/helfy 0.0.4 → 0.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ts-plugin/index.js +12 -10
- package/package.json +1 -1
package/dist/ts-plugin/index.js
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
|
-
var H=Object.defineProperty,N=Object.defineProperties;var ee=Object.getOwnPropertyDescriptors;var D=Object.getOwnPropertySymbols;var te=Object.prototype.hasOwnProperty,ne=Object.prototype.propertyIsEnumerable;var z=(t,i,e)=>i in t?H(t,i,{enumerable:!0,configurable:!0,writable:!0,value:e}):t[i]=e,A=(t,i)=>{for(var e in i||(i={}))te.call(i,e)&&z(t,e,i[e]);if(D)for(var e of D(i))ne.call(i,e)&&z(t,e,i[e]);return t},P=(t,i)=>N(t,ee(i));var W=/@[A-Za-z_$][\w$]*/,re=/^\s*@(if|for)\b/,se=/^\s*@(elseif|else|empty)\b/,q=/^\s*@slot(?::|\.)[A-Za-z_$][\w$]*/,y=".__helfy__.ts",E=new Map;function ie(t,i){var n,l;if(!t||t.__helfyHostWrapped||!i)return;t.__helfyHostWrapped=!0,t.__helfyOriginalCache=E;let e=(n=t.getScriptSnapshot)==null?void 0:n.bind(t),s=(l=t.readFile)==null?void 0:l.bind(t);e&&(t.getScriptSnapshot=c=>{let o=e(c);if(!o||typeof c!="string"||!c.endsWith(".tsx"))return o;let d=o.getText(0,o.getLength());if(!d.includes("@bind")&&!d.includes("@ref(")&&!d.includes("@field("))return o;let u=Z(d);return E.set(c,{original:d,transformed:u}),i.ScriptSnapshot.fromString(u)}),s&&(t.readFile=(c,o)=>{let d=s(c,o);if(!d||typeof c!="string"||!c.endsWith(".tsx")||!d.includes("@bind")&&!d.includes("@ref(")&&!d.includes("@field("))return d;let u=Z(d);return E.set(c,{original:d,transformed:u}),u})}function F(t,i){let e=E.get(t);return e?Q(e.original).origToTrans(i):i}function k(t,i,e){let s=E.get(t);if(!s)return{start:i,length:e};let n=Q(s.original),l=n.transToOrig(i),c=n.transToOrig(i+e);return{start:l,length:Math.max(0,c-l)}}function Q(t){let i=[],e=0,s=/@ref\s*\(\s*this\s*\.\s*([A-Za-z_$][\w$]*)\s*\)/g,n;for(;(n=s.exec(t))!==null;){let f=n[1],r=n[0],a=`ref={(el: typeof this.${f})=>this.${f}=el}`;i.push({start:n.index,end:n.index+r.length,newLen:a.length,exprStart:n.index+5,exprEnd:n.index+r.length-1,newExprStart:14})}let l=/@bind:([A-Za-z_$][\w$]*)\s*\(/g;for(;(n=l.exec(t))!==null;){let f=1,r=n.index+n[0].length;for(;r<t.length&&f>0;){let $=t[r];if($==="(")f++;else if($===")"){if(f--,f===0){r++;break}}else if($==="'"||$==='"'||$==="`"){let S=$;for(r++;r<t.length&&t[r]!==S;)t[r]==="\\"&&r++,r++;r++;continue}r++}let a=n.index+n[0].length,h=r-1,x=t.slice(a,h).trim(),p=`$_bind_${n[1]}={${x}}`,g=7+n[1].length+2;i.push({start:n.index,end:r,newLen:p.length,exprStart:a,exprEnd:h,newExprStart:g})}let c=/@bind\s*\(/g;for(;(n=c.exec(t))!==null;){let f=n.index,r=1,a=n.index+n[0].length;for(;a<t.length&&r>0;){let w=t[a];if(w==="(")r++;else if(w===")"){if(r--,r===0){a++;break}}else if(w==="'"||w==='"'||w==="`"){let v=w;for(a++;a<t.length&&t[a]!==v;)t[a]==="\\"&&a++,a++;a++;continue}a++}let h=n.index+n[0].length,x=a-1,p=t.slice(h,x).trim(),$=G(t,f)?"onInput":"oninput",S=`value={${p}} ${$}={(e: Event & { target: { value: string } })=>${p}=e.target.value as typeof ${p}}`;i.push({start:f,end:a,newLen:S.length,exprStart:h,exprEnd:x,newExprStart:7})}let o=/@field\s*\(/g;for(;(n=o.exec(t))!==null;){let f=n.index,r=1,a=n.index+n[0].length;for(;a<t.length&&r>0;){let T=t[a];if(T==="(")r++;else if(T===")"){if(r--,r===0){a++;break}}else if(T==="'"||T==='"'||T==="`"){let Y=T;for(a++;a<t.length&&t[a]!==Y;)t[a]==="\\"&&a++,a++;a++;continue}a++}let h=n.index+n[0].length,x=a-1,p=t.slice(h,x).trim();if(!M(p))continue;let g=R(t,f);if(!g)continue;let $=U(t,f),S=$?K($.content,t,$.start):null,w=S?`[${S.expr}, ${p}?.isTouched && ${p}?.error && 'input-error'].filter(Boolean).join(' ')`:`${p}?.isTouched && ${p}?.error ? 'input-error' : undefined`;S&&i.push({start:S.start,end:S.end,newLen:0,exprStart:S.start,exprEnd:S.end,newExprStart:0});let v=p+".value",C=p+".value",m=`() => { ${p}.isTouched = true; }`,b=`${p}?.isTouched && ${p}?.error ? "true" : "false"`,L;if(g.isComponent)L=`value={${v}} onInput={(e: Event & { target: HTMLInputElement })=>${C}=e.target.value} onBlur={${m}} class={${w}} aria-invalid={${b}}`;else if(g.tag==="input"&&(g.type==="checkbox"||g.type==="radio"))L=`checked={${v}} onchange={(e: Event & { target: HTMLInputElement })=>${C}=e.target.checked} onblur={${m}} class={${w}} aria-invalid={${b}}`;else if(g.tag==="select")L=`value={${v}} onchange={(e: Event & { target: HTMLSelectElement })=>${C}=e.target.value} onblur={${m}} class={${w}} aria-invalid={${b}}`;else{let T=g.tag==="textarea"?"HTMLTextAreaElement":"HTMLInputElement";L=`value={${v}} oninput={(e: Event & { target: ${T} })=>${C}=e.target.value} onblur={${m}} class={${w}} aria-invalid={${b}}`}i.push({start:f,end:a,newLen:L.length,exprStart:h,exprEnd:x,newExprStart:7})}return i.sort((f,r)=>f.start-r.start),{origToTrans:f=>{let r=0,a=0;for(let h of i){let x=h.start-a;if(a+x>f)return r+(f-a);r+=x,a=h.start;let p=h.end-h.start;if(f<h.end)return f>=h.exprStart&&f<h.exprEnd?r+h.newExprStart+(f-h.exprStart):r;r+=h.newLen,a=h.end}return r+(f-a)},transToOrig:f=>{let r=0,a=0;for(let h of i){let x=h.start-a;if(r+x>f)return a+(f-r);r+=x,a=h.start;let p=h.newLen;if(r+p>f){let g=f-r,$=h.exprEnd-h.exprStart;return g>=h.newExprStart&&g<h.newExprStart+$?h.exprStart+(g-h.newExprStart):h.start}r+=p,a=h.end}return a+(f-r)}}}function Z(t){let i=le(t);return i=O(i),i=oe(i),i}function le(t){let i=t,e=/@ref\s*\(\s*this\s*\.\s*([A-Za-z_$][\w$]*)\s*\)/g,s,n=[];for(;(s=e.exec(t))!==null;){let l=s[0],c=s[1];n.push({start:s.index,end:s.index+l.length,code:`ref={(el: typeof this.${c})=>this.${c}=el}`})}for(let l=n.length-1;l>=0;l--){let{start:c,end:o,code:d}=n[l];i=i.slice(0,c)+d+i.slice(o)}return i}function O(t){let i=t,e=/@bind:([A-Za-z_$][\w$]*)\s*\(/g,s,n=[];for(;(s=e.exec(i))!==null;){let o=s[1],d=1,u=s.index+s[0].length;for(;u<i.length&&d>0;){let a=i[u];if(a==="(")d++;else if(a===")"){if(d--,d===0){u++;break}}else if(a==="'"||a==='"'||a==="`"){let h=a;for(u++;u<i.length&&i[u]!==h;)i[u]==="\\"&&u++,u++;u++;continue}u++}let f=i.slice(s.index+s[0].length,u-1).trim(),r=`$_bind_${o}={${f}}`;n.push({start:s.index,end:u,code:r})}for(let o=n.length-1;o>=0;o--){let{start:d,end:u,code:f}=n[o];i=i.slice(0,d)+f+i.slice(u)}let l=/@bind\s*\(/g,c=[];for(;(s=l.exec(i))!==null;){let o=s.index,d=1,u=s.index+s[0].length;for(;u<i.length&&d>0;){let g=i[u];if(g==="(")d++;else if(g===")"){if(d--,d===0){u++;break}}else if(g==="'"||g==='"'||g==="`"){let $=g;for(u++;u<i.length&&i[u]!==$;)i[u]==="\\"&&u++,u++;u++;continue}u++}let f=i.slice(s.index+s[0].length,u-1).trim(),r=R(i,o),a=M(f),h=a?f+".value":f,x=a?f+".value":f,p;if(r&&r.tag==="input"&&(r.type==="checkbox"||r.type==="radio"))p=`checked={${h}} onchange={(e)=>${x}=e.target.checked}`;else{let $=G(i,o)?"onInput":"oninput";p=`value={${h}} ${$}={(e: Event & { target: { value: string } })=>${x}=e.target.value}`}c.push({start:o,end:u,code:p})}for(let o=c.length-1;o>=0;o--){let{start:d,end:u,code:f}=c[o];i=i.slice(0,d)+f+i.slice(u)}return i}function ce(t,i){if(t[i]!=="{")return-1;let e=1,s=i+1;for(;s<t.length&&e>0;){let n=t[s];if(n==="{")e++;else if(n==="}")e--;else if(n==="'"||n==='"'||n==="`"){let l=n;for(s++;s<t.length&&t[s]!==l;)t[s]==="\\"&&s++,s++;s++;continue}e>0&&s++}return e===0?s:-1}function U(t,i){let e=i-1;for(;e>=0;){let s=t[e];if(s==="'"||s==='"'||s==="`"){for(e--;e>=0&&t[e]!==s;)e--;e--;continue}if(s==="<"){let n=e,l=e+1;for(;l<t.length;){let c=t[l];if(c==="'"||c==='"'||c==="`"){for(l++;l<t.length&&t[l]!==c;)t[l]==="\\"&&l++,l++;l++;continue}if(c===">")return{start:n,end:l+1,content:t.slice(n,l+1)};if(c==="/"&&t[l+1]===">")return{start:n,end:l+2,content:t.slice(n,l+2)};l++}return null}e--}return null}function K(t,i,e){let n=/\bclass\s*=\s*(\{|"[^"]*"|'[^']*')/g.exec(t);if(!n)return null;let l=e+n.index,c,o;if(n[1]==="{"){let d=l+n[0].length-1,u=ce(i,d);if(u<0)return null;c=i.slice(d+1,u).trim(),o=u+1}else c=n[1],o=l+n[0].length;return{expr:c,start:l,end:o}}function oe(t){let i=t,e=/@field\s*\(/g,s,n=[];for(;(s=e.exec(t))!==null;){let l=s.index,c=1,o=s.index+s[0].length;for(;o<t.length&&c>0;){let S=t[o];if(S==="(")c++;else if(S===")"){if(c--,c===0){o++;break}}else if(S==="'"||S==='"'||S==="`"){let w=S;for(o++;o<t.length&&t[o]!==w;)t[o]==="\\"&&o++,o++;o++;continue}o++}let d=t.slice(s.index+s[0].length,o-1).trim();if(!M(d))continue;let u=R(t,l);if(!u)continue;let f=U(t,l),r=f?K(f.content,t,f.start):null,a=r?`[${r.expr}, ${d}?.isTouched && ${d}?.error && 'input-error'].filter(Boolean).join(' ')`:`${d}?.isTouched && ${d}?.error ? 'input-error' : undefined`;r&&n.push({start:r.start,end:r.end,code:""});let h=d+".value",x=d+".value",p=`() => { ${d}.isTouched = true; }`,g=`${d}?.isTouched && ${d}?.error ? "true" : "false"`,$;if(u.isComponent)$=`value={${h}} onInput={(e: Event & { target: HTMLInputElement })=>${x}=e.target.value} onBlur={${p}} class={${a}} aria-invalid={${g}}`;else if(u.tag==="input"&&(u.type==="checkbox"||u.type==="radio"))$=`checked={${h}} onchange={(e: Event & { target: HTMLInputElement })=>${x}=e.target.checked} onblur={${p}} class={${a}} aria-invalid={${g}}`;else if(u.tag==="select")$=`value={${h}} onchange={(e: Event & { target: HTMLSelectElement })=>${x}=e.target.value} onblur={${p}} class={${a}} aria-invalid={${g}}`;else{let S=u.tag==="textarea"?"HTMLTextAreaElement":"HTMLInputElement";$=`value={${h}} oninput={(e: Event & { target: ${S} })=>${x}=e.target.value} onblur={${p}} class={${a}} aria-invalid={${g}}`}n.push({start:l,end:o,code:$})}n.sort((l,c)=>c.start-l.start);for(let l of n)i=i.slice(0,l.start)+l.code+i.slice(l.end);return i}function G(t,i){let s=t.slice(Math.max(0,i-200),i).match(new RegExp("<([A-Za-z][A-Za-z0-9]*)\\s[^>]*$","s"));return s?s[1][0]===s[1][0].toUpperCase()&&s[1].length>1:!1}function M(t){return/^this\.([A-Za-z_$][\w$]*\.)+[A-Za-z_$][\w$]*$/.test(t.trim())}function R(t,i){let e=i-1;for(;e>=0;){let s=t[e];if(s==="'"||s==='"'||s==="`"){for(e--;e>=0&&t[e]!==s;)e--;e--;continue}if(s==="<"){for(e++;e<t.length&&/\s/.test(t[e]);)e++;let n=t.slice(e).match(/^([A-Za-z][A-Za-z0-9]*)/);if(!n)return null;let l=n[1],c=l.toLowerCase(),d=t.slice(e,i+200).match(/type\s*=\s*["'](checkbox|radio|text|email|password|search|tel|url)["']/);return{tag:c,type:d?d[1].toLowerCase():c==="input"?"text":void 0,isComponent:l[0]===l[0].toUpperCase()&&l.length>1}}e--}return null}function ae(t){let i=t.match(/^\s*/)[0],e=t.slice(i.length),s="",n=0;for(;n<e.length;)if(e[n]==="<")for(s+=" ",n++;n<e.length;)if(e[n]==="{"){let l=0,c=n;for(;c<e.length;){if(e[c]==="{")l++;else if(e[c]==="}"&&(l--,l===0)){c++;break}c++}s+=e.slice(n,c),n=c}else if(e[n]===">"){s+=" ",n++;break}else if(e.startsWith("@bind:",n)){let l=e.slice(n).match(/^@bind:([A-Za-z_$][\w$]*)\s*\(/);if(l){let c=l[1],o=n+l[0].length,d=1;for(;o<e.length&&d>0;){if(e[o]==="(")d++;else if(e[o]===")"){if(d--,d===0){o++;break}}else if(e[o]==="'"||e[o]==='"'||e[o]==="`"){let f=e[o];for(o++;o<e.length&&e[o]!==f;)e[o]==="\\"&&o++,o++;o++;continue}o++}let u=e.slice(n+l[0].length,o-1).trim();s+="$_bind_"+c+"={"+u+"}",n=o}else s+=" ",n++}else if(e.slice(n).match(/^@bind\s*\(/)){let l=e.slice(n).match(/^@bind\s*\(/);if(l){let c=n+l[0].length,o=1;for(;c<e.length&&o>0;){if(e[c]==="(")o++;else if(e[c]===")"){if(o--,o===0){c++;break}}else if(e[c]==="'"||e[c]==='"'||e[c]==="`"){let u=e[c];for(c++;c<e.length&&e[c]!==u;)e[c]==="\\"&&c++,c++;c++;continue}c++}let d=e.slice(n+l[0].length,c-1);s+="value={"+d+"}",n=c}else s+=" ",n++}else if(e.slice(n).match(/^@field\s*\(/)){let l=e.slice(n).match(/^@field\s*\(/);if(l){let c=n+l[0].length,o=1;for(;c<e.length&&o>0;){if(e[c]==="(")o++;else if(e[c]===")"){if(o--,o===0){c++;break}}else if(e[c]==="'"||e[c]==='"'||e[c]==="`"){let u=e[c];for(c++;c<e.length&&e[c]!==u;)e[c]==="\\"&&c++,c++;c++;continue}c++}let d=e.slice(n+l[0].length,c-1).trim();s+="value={"+d+".value}",n=c}else s+=" ",n++}else if(e.startsWith("@ref(",n)){let l=n+5,c=l,o=1;for(;l<e.length&&o>0;){if(e[l]==="(")o++;else if(e[l]===")"){if(o--,o===0){l++;break}}else if(e[l]==="'"||e[l]==='"'||e[l]==="`"){let d=e[l];for(l++;l<e.length&&e[l]!==d;)e[l]==="\\"&&l++,l++;l++;continue}l++}s+=" ",s+=e.slice(c,l-1),s+=" ",n=l}else s+=" ",n++;else if(e[n]==="{"){let l=0,c=n;for(;c<e.length;){if(e[c]==="{")l++;else if(e[c]==="}"&&(l--,l===0)){c++;break}c++}s+=e.slice(n,c),n=c}else s+=" ",n++;return i+s}function V(t){let i=t.split(`
|
|
2
|
-
`),e=[],
|
|
3
|
-
`)}function
|
|
4
|
-
`);
|
|
5
|
-
`
|
|
6
|
-
`)
|
|
7
|
-
`))
|
|
8
|
-
`)
|
|
9
|
-
`)
|
|
10
|
-
`)
|
|
1
|
+
"use strict";var xe=Object.defineProperty,me=Object.defineProperties;var we=Object.getOwnPropertyDescriptors;var Y=Object.getOwnPropertySymbols;var be=Object.prototype.hasOwnProperty,ve=Object.prototype.propertyIsEnumerable;var H=(t,s,e)=>s in t?xe(t,s,{enumerable:!0,configurable:!0,writable:!0,value:e}):t[s]=e,L=(t,s)=>{for(var e in s||(s={}))be.call(s,e)&&H(t,e,s[e]);if(Y)for(var e of Y(s))ve.call(s,e)&&H(t,e,s[e]);return t},A=(t,s)=>me(t,we(s));var k=(t,s)=>()=>(s||t((s={exports:{}}).exports,s),s.exports);var R=k((st,N)=>{"use strict";var _e=/@[A-Za-z_$][\w$]*/,Ee=/^\s*@(if|for)\b/,ye=/^\s*@(elseif|else|empty)\b/,Te=/^\s*@slot(?::|\.)[A-Za-z_$][\w$]*/,Ce=".__helfy__.ts";N.exports={DIRECTIVE_RE:_e,CHAIN_START_RE:Ee,CHAIN_CONT_RE:ye,SLOT_USAGE_RE:Te,VIRTUAL_SUFFIX:Ce}});var j=k((it,ie)=>{"use strict";function Le(t){let s=Fe(t);return s=Pe(s),s=Ie(s),s=ee(s),s}function Ae(t){let s=[],e=/@ref\s*\(\s*this\s*\.\s*([A-Za-z_$][\w$]*)\s*\)/g,n;for(;(n=e.exec(t))!==null;){let a=n[1],f=`ref={(el: typeof this.${a})=>this.${a}=el}`;s.push({start:n.index,end:n.index+n[0].length,newLen:f.length,exprStart:n.index+5,exprEnd:n.index+n[0].length-1,newExprStart:14})}let i=/@bind:([A-Za-z_$][\w$]*)\s*\(/g;for(;(n=i.exec(t))!==null;){let a=1,f=n.index+n[0].length;f=P(t,f);let h=n.index+n[0].length,p=f-1,c=t.slice(h,p).trim(),d=`$_bind_${n[1]}={${c}}`;s.push({start:n.index,end:f,newLen:d.length,exprStart:h,exprEnd:p,newExprStart:7+n[1].length+2})}let r=/@bind\s*\(/g;for(;(n=r.exec(t))!==null;){let a=n.index,f=P(t,n.index+n[0].length),h=n.index+n[0].length,p=f-1,c=t.slice(h,p).trim(),$=Z(t,a)?"onInput":"oninput",S=`value={${c}} ${$}={(e: Event & { target: { value: string } })=>${c}=e.target.value as typeof ${c}}`;s.push({start:a,end:f,newLen:S.length,exprStart:h,exprEnd:p,newExprStart:7})}let l=/@field\s*\(/g;for(;(n=l.exec(t))!==null;){let a=n.index,f=P(t,n.index+n[0].length),h=n.index+n[0].length,p=f-1,c=t.slice(h,p).trim();if(!O(c))continue;let d=M(t,a);if(!d)continue;let $=te(t,a),S=$?ne($.content,t,$.start):null,x=S?`[${S.expr}, ${c}?.isTouched && ${c}?.error && 'input-error'].filter(Boolean).join(' ')`:`${c}?.isTouched && ${c}?.error ? 'input-error' : undefined`;S&&s.push({start:S.start,end:S.end,newLen:0,exprStart:S.start,exprEnd:S.end,newExprStart:0});let m=c+".value",b=`() => { ${c}.isTouched = true; }`,T=`${c}?.isTouched && ${c}?.error ? "true" : "false"`,_;if(d.isComponent)_=`value={${m}} onInput={(e: Event & { target: HTMLInputElement })=>${m}=e.target.value} onBlur={${b}} class={${x}} aria-invalid={${T}}`;else if(d.tag==="input"&&(d.type==="checkbox"||d.type==="radio"))_=`checked={${m}} onchange={(e: Event & { target: HTMLInputElement })=>${m}=e.target.checked} onblur={${b}} class={${x}} aria-invalid={${T}}`;else if(d.tag==="select")_=`value={${m}} onchange={(e: Event & { target: HTMLSelectElement })=>${m}=e.target.value} onblur={${b}} class={${x}} aria-invalid={${T}}`;else{let C=d.tag==="textarea"?"HTMLTextAreaElement":"HTMLInputElement";_=`value={${m}} oninput={(e: Event & { target: ${C} })=>${m}=e.target.value} onblur={${b}} class={${x}} aria-invalid={${T}}`}s.push({start:a,end:f,newLen:_.length,exprStart:h,exprEnd:p,newExprStart:7})}let o=/@slot\.([A-Za-z_$][\w$]*)\s*\(/g;for(;(n=o.exec(t))!==null;){let a=n.index,f=a+6+n[1].length;if(f=D(t,f),t[f]!=="(")continue;let h=re(t,f);if(h<0)continue;let p=t.slice(f+1,h).trim()||"_";p.includes(":")&&(p=p.split(/\s*:\s*[\[{(]/)[0].trim()||"_");let c=D(t,h+1);if(t[c]!=="{")continue;let d=se(t,c);if(d<0)continue;let $=t.slice(c+1,d),S=`{ ((${p}: any) => (${$}))(null as any) }`,x=4+p.length+11;s.push({start:a,end:d+1,newLen:S.length,exprStart:c+1,exprEnd:d,newExprStart:x})}return s.sort((a,f)=>a.start-f.start),{origToTrans:a=>{let f=0,h=0;for(let p of s){let c=p.start-h;if(h+c>a)return f+(a-h);if(f+=c,h=p.start,a<p.end)return a>=p.exprStart&&a<p.exprEnd?f+p.newExprStart+(a-p.exprStart):f;f+=p.newLen,h=p.end}return f+(a-h)},transToOrig:a=>{let f=0,h=0;for(let p of s){let c=p.start-h;if(f+c>a)return h+(a-f);if(f+=c,h=p.start,f+p.newLen>a){let d=a-f,$=p.exprEnd-p.exprStart;return d>=p.newExprStart&&d<p.newExprStart+$?p.exprStart+(d-p.newExprStart):p.start}f+=p.newLen,h=p.end}return h+(a-f)}}}function Fe(t){let s=/@ref\s*\(\s*this\s*\.\s*([A-Za-z_$][\w$]*)\s*\)/g,e,n=[];for(;(e=s.exec(t))!==null;){let i=e[1];n.push({start:e.index,end:e.index+e[0].length,code:`ref={(el: typeof this.${i})=>this.${i}=el}`})}return z(t,n)}function Pe(t){let s=t,e=/@bind:([A-Za-z_$][\w$]*)\s*\(/g,n,i=[];for(;(n=e.exec(s))!==null;){let o=P(s,n.index+n[0].length),g=s.slice(n.index+n[0].length,o-1).trim();i.push({start:n.index,end:o,code:`$_bind_${n[1]}={${g}}`})}s=z(s,i);let r=/@bind\s*\(/g,l=[];for(;(n=r.exec(s))!==null;){let o=n.index,g=P(s,n.index+n[0].length),u=s.slice(n.index+n[0].length,g-1).trim(),a=M(s,o),f=O(u),h=f?u+".value":u,p=f?u+".value":u,c;if(a&&a.tag==="input"&&(a.type==="checkbox"||a.type==="radio"))c=`checked={${h}} onchange={(e)=>${p}=e.target.checked}`;else{let d=Z(s,o)?"onInput":"oninput";c=`value={${h}} ${d}={(e: Event & { target: { value: string } })=>${p}=e.target.value}`}l.push({start:o,end:g,code:c})}return s=z(s,l),s}function Ie(t){let s=/@field\s*\(/g,e,n=[];for(;(e=s.exec(t))!==null;){let r=e.index,l=P(t,e.index+e[0].length),o=t.slice(e.index+e[0].length,l-1).trim();if(!O(o))continue;let g=M(t,r);if(!g)continue;let u=te(t,r),a=u?ne(u.content,t,u.start):null,f=a?`[${a.expr}, ${o}?.isTouched && ${o}?.error && 'input-error'].filter(Boolean).join(' ')`:`${o}?.isTouched && ${o}?.error ? 'input-error' : undefined`;a&&n.push({start:a.start,end:a.end,code:""});let h=o+".value",p=`() => { ${o}.isTouched = true; }`,c=`${o}?.isTouched && ${o}?.error ? "true" : "false"`,d;if(g.isComponent)d=`value={${h}} onInput={(e: Event & { target: HTMLInputElement })=>${h}=e.target.value} onBlur={${p}} class={${f}} aria-invalid={${c}}`;else if(g.tag==="input"&&(g.type==="checkbox"||g.type==="radio"))d=`checked={${h}} onchange={(e: Event & { target: HTMLInputElement })=>${h}=e.target.checked} onblur={${p}} class={${f}} aria-invalid={${c}}`;else if(g.tag==="select")d=`value={${h}} onchange={(e: Event & { target: HTMLSelectElement })=>${h}=e.target.value} onblur={${p}} class={${f}} aria-invalid={${c}}`;else{let $=g.tag==="textarea"?"HTMLTextAreaElement":"HTMLInputElement";d=`value={${h}} oninput={(e: Event & { target: ${$} })=>${h}=e.target.value} onblur={${p}} class={${f}} aria-invalid={${c}}`}n.push({start:r,end:l,code:d})}n.sort((r,l)=>l.start-r.start);let i=t;for(let r of n)i=i.slice(0,r.start)+r.code+i.slice(r.end);return i}function ee(t){let s="",e=0,n=/@slot\.([A-Za-z_$][\w$]*)\s*\(/g,i;for(;(i=n.exec(t))!==null;){s+=t.slice(e,i.index),e=i.index;let r=i.index+6+i[1].length;if(r=D(t,r),t[r]!=="("){s+=t[e],e++,n.lastIndex=e;continue}let l=re(t,r);if(l<0){s+=t[e],e++,n.lastIndex=e;continue}let o=t.slice(r+1,l).trim()||"_";o.includes(":")&&(o=o.split(/\s*:\s*[\[{(]/)[0].trim()||"_");let g=D(t,l+1);if(t[g]!=="{"){s+=t[e],e++,n.lastIndex=e;continue}let u=se(t,g);if(u<0){s+=t[e],e++,n.lastIndex=e;continue}let a=t.slice(g+1,u);s+=`{ ((${o}: any) => (${a}))(null as any) }`,e=u+1}return s+=t.slice(e),s}function Z(t,s){let n=t.slice(Math.max(0,s-200),s).match(new RegExp("<([A-Za-z][A-Za-z0-9]*)\\s[^>]*$","s"));return n?n[1][0]===n[1][0].toUpperCase()&&n[1].length>1:!1}function O(t){return/^this\.([A-Za-z_$][\w$]*\.)+[A-Za-z_$][\w$]*$/.test(t.trim())}function M(t,s){let e=s-1;for(;e>=0;){let n=t[e];if(n==="'"||n==='"'||n==="`"){for(e--;e>=0&&t[e]!==n;)e--;e--;continue}if(n==="<"){for(e++;e<t.length&&/\s/.test(t[e]);)e++;let i=t.slice(e).match(/^([A-Za-z][A-Za-z0-9]*)/);if(!i)return null;let r=i[1],o=t.slice(e,s+200).match(/type\s*=\s*["'](checkbox|radio|text|email|password|search|tel|url)["']/);return{tag:r.toLowerCase(),type:o?o[1].toLowerCase():r.toLowerCase()==="input"?"text":void 0,isComponent:r[0]===r[0].toUpperCase()&&r.length>1}}e--}return null}function te(t,s){let e=s-1;for(;e>=0;){let n=t[e];if(n==="'"||n==='"'||n==="`"){for(e--;e>=0&&t[e]!==n;)e--;e--;continue}if(n==="<"){let i=e,r=e+1;for(;r<t.length;){let l=t[r];if(l==="'"||l==='"'||l==="`"){for(r++;r<t.length&&t[r]!==l;)t[r]==="\\"&&r++,r++;r++;continue}if(l===">")return{start:i,end:r+1,content:t.slice(i,r+1)};if(l==="/"&&t[r+1]===">")return{start:i,end:r+2,content:t.slice(i,r+2)};r++}return null}e--}return null}function ne(t,s,e){let i=/\bclass\s*=\s*(\{|"[^"]*"|'[^']*')/g.exec(t);if(!i)return null;let r=e+i.index,l,o;if(i[1]==="{"){let g=r+i[0].length-1,u=ke(s,g);if(u<0)return null;l=s.slice(g+1,u).trim(),o=u+1}else l=i[1],o=r+i[0].length;return{expr:l,start:r,end:o}}function D(t,s){for(;s<t.length&&/\s/.test(t[s]);)s++;return s}function P(t,s){let e=1,n=s;for(;n<t.length&&e>0;){let i=t[n];if(i==="(")e++;else if(i===")"){if(e--,e===0){n++;break}}else if(i==="'"||i==='"'||i==="`"){n=V(t,n);continue}n++}return n}function re(t,s){let e=1,n=s+1;for(;n<t.length&&e>0;){let i=t[n];if(i==="(")e++;else if(i===")"){if(e--,e===0)return n}else if(i==="'"||i==='"'||i==="`"){n=V(t,n);continue}n++}return-1}function se(t,s){let e=1,n=s+1;for(;n<t.length&&e>0;){let i=t[n];if(i==="{")e++;else if(i==="}"){if(e--,e===0)return n}else if(i==="'"||i==='"'||i==="`"){n=V(t,n);continue}n++}return-1}function ke(t,s){if(t[s]!=="{")return-1;let e=1,n=s+1;for(;n<t.length&&e>0;){let i=t[n];if(i==="{")e++;else if(i==="}")e--;else if(i==="'"||i==='"'||i==="`"){let r=i;for(n++;n<t.length&&t[n]!==r;)t[n]==="\\"&&n++,n++;n++;continue}e>0&&n++}return e===0?n:-1}function V(t,s){let e=t[s],n=s+1;for(;n<t.length;){if(t[n]==="\\"){n+=2;continue}if(t[n]===e)return n+1;if(e==="`"&&t[n]==="$"&&t[n+1]==="{"){n+=2;let i=1;for(;n<t.length&&i>0;)t[n]==="{"?i++:t[n]==="}"&&i--,n++;continue}n++}return n}function z(t,s){let e=t;for(let n=s.length-1;n>=0;n--){let{start:i,end:r,code:l}=s[n];e=e.slice(0,i)+l+e.slice(r)}return e}ie.exports={stripHelfyDirectivesForParse:Le,stripSlotConsumerForParse:ee,buildHelfyPositionMap:Ae,isComponentTagBefore:Z,isFieldStatePath:O,findTagBefore:M}});var ae=k((ot,oe)=>{"use strict";var{CHAIN_START_RE:lt,CHAIN_CONT_RE:ct,SLOT_USAGE_RE:Re,VIRTUAL_SUFFIX:W}=R(),{stripHelfyDirectivesForParse:le}=j();function q(t){let s=t.split(`
|
|
2
|
+
`),e=[],n=!1,i=0,r=!1;for(let l=0;l<s.length;l++){let o=s[l];if(!n){/\brender\s*\(\s*\)\s*\{/.test(o)&&(n=!0,i=1),e.push(o.replace(/@(if|elseif|else|for|empty)\b/g," $1"));continue}if(i+=Ve(o),i<=0){n=!1,r=!1,e.push(o);continue}if(!r){if(/^\s*return\s*\(\s*$/.test(o)){r=!0,e.push(o.replace(/return\s*\(/,g=>"{"+" ".repeat(g.length-1)));continue}e.push(o.replace(/@(if|elseif|else|for|empty)\b/g," $1"));continue}if(/^\s*\)\s*$/.test(o)){r=!1,e.push(o.replace(")","}"));continue}if(Re.test(o)){e.push(ze(o));continue}if(/@(if|elseif|else|for|empty)\b/.test(o)){e.push(/@for\b/.test(o)?je(o):o.replace(/@(if|elseif|else|for|empty)\b/g," $1"));continue}if(/^\s*</.test(o)){e.push(Me(o));continue}e.push(o)}return e.join(`
|
|
3
|
+
`)}function De(t,s){var i,r,l,o,g;function e(u){return typeof u=="string"&&u.endsWith(W)}function n(u){return e(u)?u.slice(0,-W.length):u}return{getCompilationSettings(){return A(L({},t.getCompilationSettings()),{plugins:[]})},getNewLine:()=>{var u;return((u=t.getNewLine)==null?void 0:u.call(t))||`
|
|
4
|
+
`},getProjectVersion:()=>{var u;return((u=t.getProjectVersion)==null?void 0:u.call(t))||"0"},getScriptFileNames(){let u=t.getScriptFileNames(),a=u.filter(f=>f.endsWith(".tsx")).map(f=>f+W);return[...u,...a]},getScriptKind(u){var a,f;return e(u)?s.ScriptKind.TS:(f=(a=t.getScriptKind)==null?void 0:a.call(t,u))!=null?f:s.ScriptKind.Unknown},getScriptVersion(u){let a=t.getScriptVersion(n(u));return e(u)?a+"-v":a},getScriptSnapshot(u){let a=t.getScriptSnapshot(n(u));if(!a)return a;let f=a.getText(0,a.getLength());return e(u)?s.ScriptSnapshot.fromString(q(f)):u.endsWith(".tsx")&&ce(f)?s.ScriptSnapshot.fromString(le(f)):a},getCurrentDirectory:()=>t.getCurrentDirectory(),getDefaultLibFileName:u=>t.getDefaultLibFileName(u),fileExists(u){var a,f,h,p;if(e(u)){let c=n(u);return(f=(a=t.fileExists)==null?void 0:a.call(t,c))!=null?f:!!t.getScriptSnapshot(c)}return(p=(h=t.fileExists)==null?void 0:h.call(t,u))!=null?p:!1},readFile(u,a){var h;let f=(h=t.readFile)==null?void 0:h.call(t,n(u),a);return f==null?f:e(u)?q(f):u.endsWith(".tsx")&&ce(f)?le(f):f},resolveModuleNames:t.resolveModuleNames?(u,a,...f)=>t.resolveModuleNames(u,n(a),...f):void 0,resolveTypeReferenceDirectives:(i=t.resolveTypeReferenceDirectives)==null?void 0:i.bind(t),getResolvedModuleWithFailedLookupLocationsFromCache:(r=t.getResolvedModuleWithFailedLookupLocationsFromCache)==null?void 0:r.bind(t),readDirectory:(l=t.readDirectory)==null?void 0:l.bind(t),directoryExists:(o=t.directoryExists)==null?void 0:o.bind(t),getDirectories:(g=t.getDirectories)==null?void 0:g.bind(t),useCaseSensitiveFileNames:()=>{var u,a;return(a=(u=t.useCaseSensitiveFileNames)==null?void 0:u.call(t))!=null?a:!1}}}function Oe(t,s){let{line:e,character:n}=t.getLineAndCharacterOfPosition(s),i=t.getFullText().split(`
|
|
5
|
+
`);if(!/@for\b/.test(i[e]))return null;let r=Ze(i[e]);if(!r)return null;let{indentLen:l,el:o,idx:g,iterTrimmed:u,elOrig:a,idxOrig:f,iterOrig:h,trackElOrig:p,elVirt:c,iterVirt:d,idxVirt:$}=r,S=n-l,x;if(S>=a&&S<a+o.length)x=c+(S-a);else if(g&&f>=0&&S>=f&&S<f+g.length)x=$+(S-f);else if(S>=h&&S<h+u.length)x=d+(S-h);else if(p>=0&&S>=p&&S<p+o.length)x=c+(S-p);else return null;return t.getPositionOfLineAndCharacter(e,l+x)}function ce(t){return t.includes("@bind")||t.includes("@ref(")||t.includes("@field(")||t.includes("@slot.")}function Me(t){let s=t.match(/^\s*/)[0],e=t.slice(s.length),n="",i=0;for(;i<e.length;)if(e[i]==="<")for(n+=" ",i++;i<e.length;)if(e[i]==="{"){let r=0,l=i;for(;l<e.length;){if(e[l]==="{")r++;else if(e[l]==="}"&&(r--,r===0)){l++;break}l++}n+=e.slice(i,l),i=l}else if(e[i]===">"){n+=" ",i++;break}else if(e.startsWith("@bind:",i)){let r=e.slice(i).match(/^@bind:([A-Za-z_$][\w$]*)\s*\(/);if(r){let l=i+r[0].length,o=1;for(;l<e.length&&o>0;)if(e[l]==="(")o++;else if(e[l]===")"){if(o--,o===0){l++;break}}else if(e[l]==="'"||e[l]==='"'||e[l]==="`"){let g=e[l];for(l++;l<e.length&&e[l]!==g;)e[l]==="\\"&&l++,l++;l++}else l++;n+="$_bind_"+r[1]+"={"+e.slice(i+r[0].length,l-1).trim()+"}",i=l}else n+=" ",i++}else if(e.slice(i).match(/^@bind\s*\(/)){let r=e.slice(i).match(/^@bind\s*\(/),l=i+r[0].length,o=1;for(;l<e.length&&o>0;)if(e[l]==="(")o++;else if(e[l]===")"){if(o--,o===0){l++;break}}else if(e[l]==="'"||e[l]==='"'||e[l]==="`"){let g=e[l];for(l++;l<e.length&&e[l]!==g;)e[l]==="\\"&&l++,l++;l++}else l++;n+="value={"+e.slice(i+r[0].length,l-1)+"}",i=l}else if(e.slice(i).match(/^@field\s*\(/)){let r=e.slice(i).match(/^@field\s*\(/),l=i+r[0].length,o=1;for(;l<e.length&&o>0;)if(e[l]==="(")o++;else if(e[l]===")"){if(o--,o===0){l++;break}}else if(e[l]==="'"||e[l]==='"'||e[l]==="`"){let g=e[l];for(l++;l<e.length&&e[l]!==g;)e[l]==="\\"&&l++,l++;l++}else l++;n+="value={"+e.slice(i+r[0].length,l-1).trim()+".value}",i=l}else if(e.startsWith("@ref(",i)){let r=i+5,l=1,o=r;for(;r<e.length&&l>0;)if(e[r]==="(")l++;else if(e[r]===")"){if(l--,l===0){r++;break}}else if(e[r]==="'"||e[r]==='"'||e[r]==="`"){let g=e[r];for(r++;r<e.length&&e[r]!==g;)e[r]==="\\"&&r++,r++;r++}else r++;n+=" "+e.slice(o,r-1)+" ",i=r}else n+=" ",i++;else if(e[i]==="{"){let r=0,l=i;for(;l<e.length;){if(e[l]==="{")r++;else if(e[l]==="}"&&(r--,r===0)){l++;break}l++}n+=e.slice(i,l),i=l}else n+=" ",i++;return s+n}function je(t){let s=t.match(/^(\s*)@for\s*\((.+)\)\s*\{\s*$/);if(!s)return t.replace("@for"," for");let[,e,n]=s,i=n.indexOf(";"),l=(i>=0?n.slice(0,i):n).trim().match(/^(\w+)(?:\s*,\s*(\w+))?\s+of\s+(.+)$/);if(!l)return t.replace("@for"," for");let[,o,g,u]=l,a=t.length-e.length,f;if(g)f=`for (const ${o} of ${u.trim()}) {let ${g}=0;`;else{let h=`for (const ${o} of ${u.trim()})`;f=h+" ".repeat(Math.max(1,a-h.length-1))+"{"}return f.length<a?f+=" ".repeat(a-f.length):f.length>a&&(f=f.slice(0,a)),e+f}function ze(t){let s=t.match(/^(\s*)(.+)$/);if(!s)return t;let[,e,n]=s,i=n.length,l=/^@[A-Za-z_$][\w$]*\s*\([^)]*\)\s*\{\s*$/.test(n)||/^@slot(?::|\.)[A-Za-z_$][\w$]*\s*\([^)]*\)\s*(?:fallback\s*)?\{\s*$/.test(n)?"{":";";return l.length<i?l+=" ".repeat(i-l.length):l.length>i&&(l=l.slice(0,i)),e+l}function Ze(t){let s=t.match(/^(\s*)@for\s*\((.+)\)\s*\{\s*$/);if(!s)return null;let[,e,n]=s,i=n.indexOf(";"),l=(i>=0?n.slice(0,i):n).trim().match(/^(\w+)(?:\s*,\s*(\w+))?\s+of\s+(.+)$/);if(!l)return null;let[,o,g,u]=l,a=u.trim(),f=e.length,h=6,p=g?h+o.length+2:-1,c=h+o.length+(g?2+g.length+4:4),d=-1;if(i>=0){let m=n.slice(i),b=m.match(/;\s*track\s+(\w+)/);b&&(d=6+i+m.indexOf(b[1]))}let $=11,S=$+o.length+4,x=g?$+o.length+4+a.length+7:-1;return{indentLen:f,el:o,idx:g,iterTrimmed:a,elOrig:h,idxOrig:p,iterOrig:c,trackElOrig:d,elVirt:$,iterVirt:S,idxVirt:x}}function Ve(t){let s=0,e=!1,n="";for(let i=0;i<t.length;i++){let r=t[i];if(e){if(r==="\\"){i++;continue}r===n&&(e=!1);continue}if(r==="'"||r==='"'||r==="`"){e=!0,n=r;continue}r==="{"&&s++,r==="}"&&s--}return s}oe.exports={makeVirtual:q,createVirtualHost:De,remapForPosition:Oe}});var pe=k((ut,he)=>{"use strict";var{DIRECTIVE_RE:We,CHAIN_START_RE:qe,CHAIN_CONT_RE:Be,SLOT_USAGE_RE:Ue}=R(),{buildHelfyPositionMap:Qe}=j(),B=new Map;function fe(t){var r;let s=B.get(t);if(s!==void 0)return s;let e=require("fs"),n=l=>{try{return e.readFileSync(l,"utf8")}catch(o){return null}},i=(r=n(t.replace(/\//g,"\\")))!=null?r:n(t.replace(/\\/g,"/"));return B.set(t,i),setTimeout(()=>B.delete(t),0),i}function Ge(t,s,e){if(!e.length||!s.endsWith(".tsx"))return e;let n=fe(s);if(!n||!We.test(n))return e;let i=de(n.split(`
|
|
6
|
+
`)),r=t.getProgram(),l=r&&r.getSourceFile(s);if(!l&&r){let h=s.replace(/\\/g,"/").toLowerCase();for(let p of r.getSourceFiles()){let c=p.fileName.replace(/\\/g,"/").toLowerCase();if(c===h||c.endsWith(h.replace(/^[a-z]:/,""))||h.endsWith(c.replace(/^[a-z]:/,""))){l=p;break}}}let o=l?l.getFullText():n,g=U(o.split(`
|
|
7
|
+
`)),u=n.split(`
|
|
8
|
+
`),a=U(u),f=u.map((h,p)=>a.has(p)?h:"").join(`
|
|
9
|
+
`);return e.filter(h=>{if(h.start==null)return!0;if(l){let p=l.getLineAndCharacterOfPosition(h.start).line;if(g.has(p))return!1}if(h.code===1109&&i.size>0)return!1;if(h.code===6198||h.code===6133||h.code===2304){let p=o.slice(h.start,h.start+(h.length||0)).trim(),c=(p.match(/^[a-zA-Z_$][a-zA-Z0-9_$]*/)||[p])[0];if(!c)return!0;let d=c.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");if(i.has(c)||new RegExp("\\b"+d+"\\b").test(f)||h.code===2304&&new RegExp("@slot\\.\\w+\\s*\\(\\s*\\{[^}]*\\b"+d+"\\b").test(n))return!1}return!0})}function Ke(t,s,e){if(!e||!e.has(t)||!s.length)return s;let n=e.get(t),i=Qe(n.original);return s.map(r=>{var g;if(r.start==null)return r;let l=i.transToOrig(r.start),o=i.transToOrig(r.start+((g=r.length)!=null?g:0));return A(L({},r),{start:l,length:Math.max(0,o-l)})})}function U(t){let s=new Set,e=0;for(;e<t.length;)if(qe.test(t[e])){let n=ue(t,e);for(let i=e;i<=n;i++)s.add(i);e=n+1}else if(Xe(t[e]))if(/\{\s*\r?$/.test(t[e])){let i=ue(t,e);for(let r=e;r<=i;r++)s.add(r);e=i+1}else s.add(e++);else if(/@ref\s*\(/.test(t[e])){e>0&&/<\s*[A-Za-z_]/.test(t[e-1])&&!/>\s*$/.test(t[e-1].trim())&&s.add(e-1),s.add(e);let n=e+1;for(;n<t.length&&!/\/>/.test(t[n]);)s.add(n++);n<t.length&&s.add(n),e=n+1<t.length&&/^\s*\)\s*;?\s*$/.test(t[n+1])?(s.add(n+1),n+2):n+1}else if(/@bind\s*\(/.test(t[e])||/@bind:[A-Za-z_$][\w$]*\s*\(/.test(t[e])||/@field\s*\(/.test(t[e])){e>0&&/<\s*[A-Za-z_]/.test(t[e-1])&&!/>\s*$/.test(t[e-1].trim())&&s.add(e-1),s.add(e);let n=e+1;for(;n<t.length&&!/\/>/.test(t[n]);)s.add(n++);n<t.length&&s.add(n),e=n+1<t.length&&/^\s*\)\s*;?\s*$/.test(t[n+1])?(s.add(n+1),n+2):n+1}else e++;return s}function de(t){let s=new Set;for(let e of t){let n=e.match(/@slot\.\w+\s*\(\s*\{([^}]*)\}\s*\)\s*\{/);if(n)for(let i of n[1].split(",")){let r=i.split(":")[0].trim();/^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test(r)&&s.add(r)}}return s}function Xe(t){return Ue.test(t)}function ue(t,s){let e=0;for(let n=s;n<t.length;n++)if(e+=Je(t[n]),e<=0){let i=Ye(t,n+1);if(i!==-1&&Be.test(t[i])){e=0,n=i-1;continue}return n}return t.length-1}function Je(t){let s=0,e=!1,n="";for(let i=0;i<t.length;i++){let r=t[i];if(e){if(r==="\\"){i++;continue}r===n&&(e=!1);continue}if(r==="'"||r==='"'||r==="`"){e=!0,n=r;continue}r==="{"&&s++,r==="}"&&s--}return s}function Ye(t,s){for(let e=s;e<t.length;e++)if(t[e].trim())return e;return-1}he.exports={readFileFromDisk:fe,filterDiagnostics:Ge,mapDiagnosticSpans:Ke,buildSuppressedSet:U,extractSlotParamNames:de}});var{DIRECTIVE_RE:He,VIRTUAL_SUFFIX:I}=R(),{stripHelfyDirectivesForParse:ge,buildHelfyPositionMap:Se}=j(),{createVirtualHost:Ne,remapForPosition:Q}=ae(),{readFileFromDisk:et,filterDiagnostics:G,mapDiagnosticSpans:K,buildSuppressedSet:tt}=pe(),y=new Map,v=null;function $e(t,s){var r,l;if(!t||t.__helfyHostWrapped||!s)return;t.__helfyHostWrapped=!0;let e=(r=t.getScriptSnapshot)==null?void 0:r.bind(t),n=(l=t.readFile)==null?void 0:l.bind(t),i=(o,g)=>{if(!g||typeof o!="string"||!o.endsWith(".tsx"))return g;let u=g.getText(0,g.getLength());if(!u.includes("@bind")&&!u.includes("@ref(")&&!u.includes("@field(")&&!u.includes("@slot."))return g;let a=ge(u);return y.set(o,{original:u,transformed:a}),s.ScriptSnapshot.fromString(a)};if(e){let o=g=>i(g,e(g));try{Object.defineProperty(t,"getScriptSnapshot",{value:o,configurable:!0,writable:!0})}catch(g){t.getScriptSnapshot=o}}n&&(t.readFile=(o,g)=>{let u=n(o,g);if(!u||typeof o!="string"||!o.endsWith(".tsx")||!u.includes("@bind")&&!u.includes("@ref(")&&!u.includes("@field(")&&!u.includes("@slot."))return u;let a=ge(u);return y.set(o,{original:u,transformed:a}),a})}function X(t,s){let e=y.get(t);return e?Se(e.original).origToTrans(s):s}function J(t,s,e){let n=y.get(t);if(!n)return{start:s,length:e};let i=Se(n.original),r=i.transToOrig(s),l=i.transToOrig(s+e);return{start:r,length:Math.max(0,l-r)}}function nt(t){let s=t==null?void 0:t.typescript;function e(n){var h,p;v=n.project.projectService.logger,v.info("[helfy-ts-plugin] Loaded"),$e(n.languageServiceHost,s);let i=(p=(h=n.project).getCompilerHost)==null?void 0:p.call(h);i&&i!==n.languageServiceHost&&$e(i,s);let r=n.languageService,l=Object.create(null);for(let c of Object.keys(r)){let d=r[c];l[c]=typeof d=="function"?(...$)=>d.apply(r,$):d}l.getSyntacticDiagnostics=c=>K(c,G(r,c,r.getSyntacticDiagnostics(c)),y),l.getSuggestionDiagnostics=c=>K(c,G(r,c,r.getSuggestionDiagnostics(c)),y);let o=null;if(s)try{o=s.createLanguageService(Ne(n.languageServiceHost,s)),v.info("[helfy-ts-plugin] Virtual LS created")}catch(c){v.info("[helfy-ts-plugin] Virtual LS error: "+c)}l.getSemanticDiagnostics=c=>{if(v&&v.info(`[helfy-ts-plugin] getSemanticDiagnostics: ${c.split(/[\\/]/).pop()}`),o&&c.endsWith(".tsx"))try{let d=et(c);if(d&&(d.includes("@slot.")||d.includes("@bind")||d.includes("@ref(")||d.includes("@field("))){let m=o.getSemanticDiagnostics(c);return v&&v.info(`[helfy-ts-plugin] virtualLS diags for ${c.split(/[\\/]/).pop()}: ${m.length} (codes: ${m.map(b=>b.code).join(",")||"none"})`),m}let S=n.languageServiceHost.getScriptSnapshot(c),x=S?S.getText(0,S.getLength()):"";if(x.includes("@slot.")||x.includes("@bind")||x.includes("@ref(")||x.includes("@field(")){let m=o.getSemanticDiagnostics(c);return v&&v.info(`[helfy-ts-plugin] virtualLS(snap) diags for ${c.split(/[\\/]/).pop()}: ${m.length}`),m}}catch(d){v&&v.info(`[helfy-ts-plugin] virtualLS error: ${d}`)}return K(c,G(r,c,r.getSemanticDiagnostics(c)),y)};let g=null;function u(c,d){var S;let $=(S=c.version)!=null?S:c.fileName;return(!g||g.ver!==$)&&(g={ver:$,set:tt(c.getFullText().split(`
|
|
10
|
+
`))}),g.set.has(d)}function a(c,d){var x;if(!o||!c.endsWith(".tsx"))return!1;let $=(x=r.getProgram())==null?void 0:x.getSourceFile(c);if(!$||!He.test($.getFullText()))return!1;let{line:S}=$.getLineAndCharacterOfPosition(d);return u($,S)}function f(c,d){var S,x;let $=(S=r.getProgram())==null?void 0:S.getSourceFile(c);return $&&(x=Q($,d))!=null?x:d}return l.getCompletionsAtPosition=(c,d,$)=>{var _,C,w;let S=y.has(c),x=S?X(c,d):d;if(!a(c,d)){let E=r.getCompletionsAtPosition(c,x,$);return S&&(E!=null&&E.entries)&&(E.entries=E.entries.map(F=>F.replacementSpan?A(L({},F),{replacementSpan:J(c,F.replacementSpan.start,F.replacementSpan.length)}):F)),E}let m=(_=r.getProgram())==null?void 0:_.getSourceFile(c),b=(C=m==null?void 0:m.getFullText().split(`
|
|
11
|
+
`))!=null?C:[],{line:T}=m?m.getLineAndCharacterOfPosition(d):{line:-1};if(/@for\b/.test((w=b[T])!=null?w:"")){let E=m?Q(m,d):null;if(E===null)return r.getCompletionsAtPosition(c,d,$);try{return o.getCompletionsAtPosition(c+I,E,$)||r.getCompletionsAtPosition(c,d,$)}catch(F){return r.getCompletionsAtPosition(c,d,$)}}try{return o.getCompletionsAtPosition(c+I,d,$)||r.getCompletionsAtPosition(c,d,$)}catch(E){return r.getCompletionsAtPosition(c,d,$)}},l.getSignatureHelpItems=(c,d,$)=>{let S=y.has(c),x=S?X(c,d):d;if(!a(c,d)){let m=r.getSignatureHelpItems(c,x,$);return S&&(m!=null&&m.applicableSpan)&&(m.applicableSpan=J(c,m.applicableSpan.start,m.applicableSpan.length)),m}try{return o.getSignatureHelpItems(c+I,f(c,d),$)||r.getSignatureHelpItems(c,d,$)}catch(m){return r.getSignatureHelpItems(c,d,$)}},l.getQuickInfoAtPosition=(c,d)=>{var T,_,C;let $=y.has(c),S=$?X(c,d):d;if(!a(c,d)){let w=r.getQuickInfoAtPosition(c,S);return $&&(w!=null&&w.textSpan)?A(L({},w),{textSpan:J(c,w.textSpan.start,w.textSpan.length)}):w}let x=(T=r.getProgram())==null?void 0:T.getSourceFile(c),m=(_=x==null?void 0:x.getFullText().split(`
|
|
12
|
+
`))!=null?_:[],{line:b}=x?x.getLineAndCharacterOfPosition(d):{line:-1};if(/@for\b/.test((C=m[b])!=null?C:"")){let w=x?Q(x,d):null;if(w===null)return r.getQuickInfoAtPosition(c,d);try{return o.getQuickInfoAtPosition(c+I,w)||r.getQuickInfoAtPosition(c,d)}catch(E){return r.getQuickInfoAtPosition(c,d)}}try{return o.getQuickInfoAtPosition(c+I,d)||r.getQuickInfoAtPosition(c,d)}catch(w){return r.getQuickInfoAtPosition(c,d)}},l}return{create:e}}module.exports=nt;
|