vzcode 0.72.0 → 0.73.0

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.
@@ -276,7 +276,7 @@ Did you specify these with the most recent transformation maps first?`);let I=C(
276
276
  `)+1)),R1(o)&&(o=o.substring(0,o.lastIndexOf(`
277
277
  `)),o.charAt(o.length-1)==="\r"&&(o=o.substring(0,o.length-1)))),o}function Jqe(e){return e.type==="Text"}function zqe(e,r){var n;const a=((n=r.attributes)!==null&&n!==void 0?n:[]).find(o=>o.name===e);return a&&a.value}function g9(e,r){const n=zqe(e,r);if(n!=null&&typeof n=="object"){const i=n.find(Jqe);if(i)return i.data}return null}function sh(e){const r=g9("lang",e)||g9("type",e);return r!=null?r.replace(/^text\//,""):null}function sG(e){const r=sh(e);return!(r&&jqe.includes(r))}function Hqe(e){const r=sh(e)||"";return["typescript","ts"].includes(r)}function Vqe(e){const r=sh(e)||"";return r.endsWith("json")||r.endsWith("importmap")}function Wqe(e){const r=sh(e)||"";return["less"].includes(r)}function Kqe(e){const r=sh(e)||"";return["sass","scss"].includes(r)}function Gqe(e){return e.type==="Element"&&e.name==="template"&&sh(e)==="pug"}function fT(e){return e!==!0&&e.length===1&&e[0].type==="MustacheTag"}function Xqe(e){return e!==!0&&e.length===1&&e[0].type==="AttributeShorthand"}function oG(e){if(Xqe(e.value))return!0;if(fT(e.value)){const r=e.value[0].expression;return r.type==="Identifier"&&r.name===e.name}return!1}function zs(e){return e.raw||e.data}function O1(e,r=1){return e.type==="Text"&&B1(zs(e),r)}function B1(e,r=1){return new RegExp(`^([\\t\\f\\r ]*\\n){${r}}`).test(e)}function b9(e,r=1){return e.type==="Text"&&R1(zs(e),r)}function R1(e,r=1){return new RegExp(`(\\n[\\t\\f\\r ]*){${r}}$`).test(e)}function L1(e){return e.type==="Text"&&/^\s/.test(zs(e))}function oh(e){return e.type==="Text"&&/\s$/.test(zs(e))}function M1(e){e.raw=e.raw&&e.raw.trimRight(),e.data=e.data&&e.data.trimRight()}function $1(e){e.raw=e.raw&&e.raw.trimLeft(),e.data=e.data&&e.data.trimLeft()}function Yqe(e,r){let n=e.findIndex(a=>!da(a)&&!N1(a,r));n=n===-1?e.length-1:n;let i=ZK((a,o)=>!da(a)&&(o===e.length-1&&a.type!=="Comment"||!N1(a,r)),e);i=i===-1?0:i;for(let a=0;a<=n;a++){const o=e[a];o.type==="Text"&&$1(o)}for(let a=e.length-1;a>=i;a--){const o=e[a];o.type==="Text"&&M1(o)}}function Qqe(e,r,n){if(!r)return!0;if(hu(e,n)||!P1(e))return!1;const i=e.children;if(i.length===0)return!0;if(n.htmlWhitespaceSensitivity==="ignore")return!1;const a=i[0];return!L1(a)}function Zqe(e,r,n){if(!r)return!0;if(hu(e,n)||!P1(e))return!1;const i=e.children;if(i.length===0)return!0;if(n.htmlWhitespaceSensitivity==="ignore")return!1;const a=i[i.length-1];return!oh(a)}function eUe(e,r){if(!nG(e)||!P1(e))return"none";const n=e.children;if(n.length===0)return"none";const i=n[0];if(O1(i))return"line";if(L1(i))return"space";const a=r.originalText.lastIndexOf("}",i.start);if(a>0&&i.start>a+1){const o=r.originalText.substring(a+1,i.start);if(o.trim()==="")return B1(o)?"line":"space"}return"none"}function tUe(e,r){if(!nG(e)||!P1(e))return"none";const n=e.children;if(n.length===0)return"none";const i=n[n.length-1];if(b9(i))return"line";if(oh(i))return"space";const a=r.originalText.indexOf("{",i.end);if(a>0&&i.end<a){const o=r.originalText.substring(i.end,a);if(o.trim()==="")return R1(o)?"line":"space"}return"none"}function rUe(e,r){return e.stack.some(i=>i.type==="Attribute"&&(!fT(i.value)||r.svelteStrictMode))}function uG(e,r,n){return pT(n)&&(!nUe(e,n)||iUe(r,n))}function nUe(e,r){return e.end===r.originalText.length?!1:!r.originalText.substring(e.end).match(/^\s/)}function iUe(e,r){const n=e.getParentNode();if(!n||!hu(n,r))return!1;const i=_T(n);return i[i.length-1]===e.getNode()}function aUe(e){e.module&&(e.module.comments=v9(e,e.module)),e.instance&&(e.instance.comments=v9(e,e.instance)),e.css&&(e.css.comments=v9(e,e.css))}function v9(e,r){const n=_T(e.html),i=[],a=[];if(!n.length)return[];let o=r,u=n.find(c=>c.end===o.start);for(;u;){if(u.type==="Comment"&&!dT(u)&&!I1(u))i.push(u),i.length!==a.length&&a.push({type:"Text",data:"",raw:"",start:-1,end:-1});else if(da(u))a.push(u);else break;o=u,u=n.find(c=>c.end===o.start)}a.length=i.length;for(const c of i)n.splice(n.indexOf(c),1);for(const c of a)n.splice(n.indexOf(c),1);return i.map((c,b)=>({comment:c,emptyLineAfter:zs(a[b]).split(`
278
278
  `).length>2})).reverse()}const{join:uh,line:Hs,group:Br,indent:mu,dedent:j1,softline:ol,hardline:Oi,fill:sUe,breakParent:q1,literalline:x9}=t_.builders;function D9(e){return/^\s*<!--\s*@(format|prettier)\W/.test(e)}let U1=!1,hT=!1,lh;function oUe(e,r,n){var i,a;const o=pT(r),u=e.getValue();if(!u)return"";if(_9(u))return uUe(u,r,e,n);const[c,b]=r.svelteStrictMode?['"{','}"']:["{","}"],h=()=>[c,Ia(e,n,"expression"),b],d=u;if((U1||hT&&!I1(d))&&(d.type!=="Text"||!da(d)))return U1&&(U1=!1),QK(r.originalText.slice(r.locStart(d),r.locEnd(d)).split(`
279
- `).map((g,D)=>D==0?[g]:[x9,g]));switch(d.type){case"Fragment":const g=d.children;if(g.length===0||g.every(da))return"";if(Zl(e))return Br(e.map(n,"children"));{Yqe(d.children,e);const C=d9([mT(e,n,r)],S=>k1(S)||typeof S=="string"&&S.trim()===""||S===q1);return C.every(S=>M_(S))?"":Br([...C,Oi])}case"Text":if(Zl(e)){let C=zs(d);const S=e.getParentNode();return S.type==="Attribute"?(S.name==="class"&&e.getParentNode(1).type==="Element"&&(C=C.replace(/([^ \t\n])(([ \t]+$)|([ \t]+(\r?\n))|[ \t]+)/g,(P,N,_,k,M,I)=>k?P:N+(M?I:" ")),C=C.replace(/([^ \t\n])[ \t]+$/,S.value.indexOf(d)===S.value.length-1?"$1":"$1 ")),Rqe(C,x9)):C}else{if(da(d)){const C=zs(d).trim().length<zs(d).length,S=/\n/.test(zs(d));return/\n\r?\s*\n\r?/.test(zs(d))?[Oi,Oi]:S?Oi:C?Hs:""}return sUe(pUe(d))}case"Element":case"InlineComponent":case"Slot":case"SlotTemplate":case"Window":case"Head":case"Title":{const C=!(d.name==="template"&&!sG(d)),S=d.children.every(ae=>da(ae)),P=d.name.toUpperCase()==="!DOCTYPE",N=r.originalText[d.end-2]==="/",_=S&&((d.type==="Element"&&!r.svelteStrictMode||d.type==="Head"||d.type==="InlineComponent"||d.type==="SlotTemplate"||d.type==="Title")&&N||d.type==="Slot"||d.type==="Window"||Eqe.indexOf(d.name)!==-1||P),k=e.map(w1(d,r,n),"attributes"),M=eG(d,r),I=d.type==="InlineComponent"&&d.expression?[M,"this=",...h()]:d.type==="Element"&&d.tag?[M,"this=",...typeof d.tag=="string"?[`"${d.tag}"`]:[c,Ia(e,n,"tag"),b]]:"";if(_)return Br(["<",d.name,mu(Br([I,...k,o||P?"":j1(Hs)])),o&&!P?" ":"",`${P?"":"/"}>`]);const L=d.children,U=L[0],J=L[L.length-1];let z;const Y=Qqe(d,C,r),j=Zqe(d,C,r);S?z=ec(e,r,d)&&d.children.length&&L1(d.children[0])&&!Zl(e)?()=>Hs:()=>o?ol:"":Zl(e)?z=()=>lUe(d,r.originalText,e,n):C?ec(e,r,d)&&!Zl(e)?z=()=>mT(e,n,r):z=()=>mT(e,n,r):z=()=>aG(d,r.originalText,!0);const re=["<",d.name,mu(Br([I,...k,Y&&!S?"":!o&&!Zl(e)?j1(ol):""]))];if(!C&&!S)return Br([...re,">",Br([Oi,z(),Oi]),`</${d.name}>`]);if(Y&&j){const ae=[ol,Br([">",z(),`</${d.name}`])],xe=S&&!o||uG(d,e,r);return Br([...re,Br(S?ae:mu(ae)),xe?"":ol,">"])}let se=ol,le=ol;if(Zl(e))se="",le="";else{let ae=!1;!Y&&U&&U.type==="Text"&&(O1(U)&&U!==J&&(!ec(e,r,d)||oh(J))?(se=Oi,le=Oi,ae=!0):ec(e,r,d)&&(se=Hs),$1(U)),!j&&J&&J.type==="Text"&&(ec(e,r,d)&&!ae&&(le=Hs),M1(J))}return Br(Y?[...re,mu([ol,Br([">",z()])]),le,`</${d.name}>`]:j?[...re,">",mu([se,Br([z(),`</${d.name}`])]),uG(d,e,r)?"":ol,">"]:S?[...re,">",z(),`</${d.name}>`]:[...re,">",mu([se,z()]),le,`</${d.name}>`])}case"Options":if(r.svelteSortOrder!=="none")throw new Error("Options tags should have been handled by prepareChildren");case"Body":case"Document":return Br(["<",d.name,mu(Br([...e.map(w1(d,r,n),"attributes"),o?"":j1(Hs)])),o?" ":"","/>"]);case"Document":return Br(["<",d.name,mu(Br([...e.map(w1(d,r,n),"attributes"),o?"":j1(Hs)])),o?" ":"","/>"]);case"Identifier":return d.name;case"AttributeShorthand":return d.expression.name;case"Attribute":{if(oG(d))return r.svelteAllowShorthand?["{",d.name,"}"]:r.svelteStrictMode?[d.name,'="{',d.name,'}"']:[d.name,"={",d.name,"}"];{if(d.value===!0)return[d.name];const C=!fT(d.value)||((i=r.svelteStrictMode)!==null&&i!==void 0?i:!1),S=lG(e,n,C,d);return C?[d.name,"=",'"',S,'"']:[d.name,"=",S]}}case"MustacheTag":return["{",Ia(e,n,"expression"),"}"];case"IfBlock":{const C=["{#if ",Ia(e,n,"expression"),"}",$_(e,n,r)];return d.else&&C.push(e.call(n,"else")),C.push("{/if}"),Br([C,q1])}case"ElseBlock":{const C=e.getParentNode();if(d.children.length===1&&d.children[0].type==="IfBlock"&&C.type!=="EachBlock"){const S=d.children[0],P=["{:else if ",e.map(N=>Ia(N,n,"expression"),"children")[0],"}",e.map(N=>$_(N,n,r),"children")[0]];return S.else&&P.push(e.map(N=>N.call(n,"else"),"children")[0]),P}return["{:else}",$_(e,n,r)]}case"EachBlock":{const C=["{#each ",Ia(e,n,"expression")," as",J1(d.context,r.originalText)];return d.index&&C.push(", ",d.index),d.key&&C.push(" (",Ia(e,n,"key"),")"),C.push("}",$_(e,n,r)),d.else&&C.push(e.call(n,"else")),C.push("{/each}"),Br([C,q1])}case"AwaitBlock":{const C=d.pending.children.some(_=>!da(_)),S=d.then.children.some(_=>!da(_)),P=d.catch.children.some(_=>!da(_));let N=[];return!C&&S?N.push(Br(["{#await ",Ia(e,n,"expression")," then",J1(d.value,r.originalText),"}"]),e.call(n,"then")):!C&&P?N.push(Br(["{#await ",Ia(e,n,"expression")," catch",J1(d.error,r.originalText),"}"]),e.call(n,"catch")):(N.push(Br(["{#await ",Ia(e,n,"expression"),"}"])),C&&N.push(e.call(n,"pending")),S&&N.push(Br(["{:then",J1(d.value,r.originalText),"}"]),e.call(n,"then"))),(C||S)&&P&&N.push(Br(["{:catch",J1(d.error,r.originalText),"}"]),e.call(n,"catch")),N.push("{/await}"),Br(N)}case"KeyBlock":{const C=["{#key ",Ia(e,n,"expression"),"}",$_(e,n,r)];return C.push("{/key}"),Br([C,q1])}case"ThenBlock":case"PendingBlock":case"CatchBlock":return $_(e,n,r);case"SnippetBlock":{const C=["{#snippet ",Ia(e,n,"expression")];return C.push("}",$_(e,n,r),"{/snippet}"),C}case"EventHandler":return["on:",d.name,d.modifiers&&d.modifiers.length?["|",uh("|",d.modifiers)]:"",d.expression?["=",...h()]:""];case"Binding":return["bind:",d.name,d.expression.type==="Identifier"&&d.expression.name===d.name&&r.svelteAllowShorthand?"":["=",...h()]];case"Class":return["class:",d.name,d.expression.type==="Identifier"&&d.expression.name===d.name&&r.svelteAllowShorthand?"":["=",...h()]];case"StyleDirective":const D=["style:",d.name,d.modifiers&&d.modifiers.length?["|",uh("|",d.modifiers)]:""];if(oG(d)||d.value===!0)return r.svelteAllowShorthand?[...D]:r.svelteStrictMode?[...D,'="{',d.name,'}"']:[...D,"={",d.name,"}"];{const C=!fT(d.value)||((a=r.svelteStrictMode)!==null&&a!==void 0?a:!1),S=lG(e,n,C,d);return C?[...D,"=",'"',S,'"']:[...D,"=",S]}case"Let":return["let:",d.name,!d.expression||d.expression.type==="Identifier"&&d.expression.name===d.name?"":["=",...h()]];case"DebugTag":return["{@debug",d.identifiers.length>0?[" ",uh(", ",e.map(n,"identifiers"))]:"","}"];case"Ref":return["ref:",d.name];case"Comment":{const C=qqe(e);if(dT(d)&&y9(d,e))hT=!0;else if(I1(d)&&y9(d,e))hT=!1;else{if(N1(d,e)||da(C)&&N1(C,e))return"";iG(d)&&(U1=!0)}return cG(d)}case"Transition":return[d.intro&&d.outro?"transition":d.intro?"in":"out",":",d.name,d.modifiers&&d.modifiers.length?["|",uh("|",d.modifiers)]:"",d.expression?["=",...h()]:""];case"Action":return["use:",d.name,d.expression?["=",...h()]:""];case"Animation":return["animate:",d.name,d.expression?["=",...h()]:""];case"RawMustacheTag":return["{@html ",Ia(e,n,"expression"),"}"];case"RenderTag":return["{@render ",Ia(e,n,"expression"),"}"];case"Spread":return["{...",Ia(e,n,"expression"),"}"];case"ConstTag":return["{@const ",Ia(e,n,"expression"),"}"]}throw console.error(JSON.stringify(d,null,4)),new Error("unknown node type: "+d.type)}function uUe(e,r,n,i){if(r.svelteSortOrder==="none"){const c={};e.module&&(c[e.module.end]=e.module),e.instance&&(c[e.instance.end]=e.instance),e.css&&(c[e.css.end]=e.css);const b=_T(e.html);for(let d=0;d<b.length;d++){const g=b[d];c[g.start]&&(b.splice(d,0,c[g.start]),delete c[g.start])}const h=n.call(i,"html");return r.insertPragma&&!D9(r.originalText)?["<!-- @format -->",Oi,h]:h}const a={options:[],scripts:[],markup:[],styles:[]};e.module&&a.scripts.push(n.call(i,"module")),e.instance&&a.scripts.push(n.call(i,"instance")),e.css&&a.styles.push(n.call(i,"css"));const o=n.call(i,"html");o&&a.markup.push(o),lh&&a.options.push(lh);const u=QK(Bqe(r.svelteSortOrder).map(c=>a[c]));if(U1=!1,hT=!1,lh=void 0,r.parentParser==="markdown"){const c=u[u.length-1];F1([c],k1)}return r.insertPragma&&!D9(r.originalText)?["<!-- @format -->",Oi,Br(u)]:Br([uh(Oi,u)])}function lG(e,r,n,i){const a=e.map(o=>o.call(r),"value");return!n||!KK.includes(i.name)?a:mu(Br(d9(a,k1)))}function $_(e,r,n){const i=e.getValue(),a=i.children;if(!a||a.length===0)return"";const o=eUe(i,n),u=tUe(i,n),c=o==="none"?"":u==="line"||o==="line"?Oi:Hs,b=u==="none"?"":u==="line"||o==="line"?Oi:Hs,h=a[0],d=a[a.length-1];return L1(h)&&$1(h),oh(d)&&M1(d),[mu([c,Br(mT(e,r,n))]),b]}function lUe(e,r,n,i){const a=[],o=e.children.length;for(let u=0;u<o;u++){const c=e.children[u];c.type==="Text"?r.substring(c.start,c.end).split(/\r?\n/).forEach((h,d)=>{d>0&&a.push(x9),a.push(h)}):a.push(n.call(i,"children",u))}return a}function mT(e,r,n){if(Zl(e))return e.map(r,"children");const i=cUe(e.getValue().children,e,r,n);if(e.getValue().children=i,i.length===0)return"";const a=[];let o=!1;for(let g=0;g<i.length;g++){const D=i[g];D.type==="Text"?d(g,D):hu(D,n)?h(g):ec(e,n,D)?b(g):(a.push(c(g)),o=!1)}return i.length>1&&i.some(g=>hu(g,n))&&a.push(q1),a;function c(g){return e.call(r,"children",g)}function b(g){o?a.push(Br([Hs,c(g)])):a.push(c(g)),o=!1}function h(g){const D=i[g-1];D&&!hu(D,n)&&(D.type!=="Text"||o||!oh(D))&&a.push(ol),a.push(c(g));const E=i[g+1];E&&(E.type!=="Text"||(!da(E)||i[g+2]&&ec(e,n,i[g+2]))&&!O1(E))&&a.push(ol),o=!1}function d(g,D){if(o=!1,g===0||g===i.length-1){a.push(c(g));return}const E=i[g-1],C=i[g+1];if(L1(D)&&!da(D)){if(ec(e,n,E)&&!O1(D)){$1(D);const S=a.pop();a.push(Br([S,Hs]))}hu(E,n)&&!O1(D)&&$1(D)}oh(D)&&(ec(e,n,C)&&!b9(D)&&(o=!E||!hu(E,n),M1(D)),hu(C,n)&&!b9(D,2)&&(o=!E||!hu(E,n),M1(D))),a.push(c(g))}}function cUe(e,r,n,i){let a;const o=[],u=pT(i);for(let d=0;d<e.length;d++){const g=e[d];if(!(g.type==="Text"&&zs(g)==="")&&!(da(g)&&N1(g,r))){if(i.svelteSortOrder!=="none"){if(h(g,d)){a=cG(g);const D=e[d+1];d+=D&&da(D)?1:0;continue}if(g.type==="Options"){b(g,d,r,n);continue}}o.push(g)}}const c=[];for(let d=0;d<o.length;d++){const g=o[d],D=o[d+1];g.type==="Text"&&D&&D.type==="Text"&&(g.raw+=D.raw,g.data+=D.data,d++),c.push(g)}return c;function b(d,g,D,E){lh=Br([["<",d.name,mu(Br([...D.map(w1(d,i,E),"children",g,"attributes"),u?"":j1(Hs)])),u?" ":"","/>"],Oi]),a&&(lh=Br([a,Oi,lh]))}function h(d,g){if(d.type!=="Comment"||I1(d)||dT(d))return!1;const D=e[g+1];if(D){if(da(D)){const E=e[g+2];return E&&E.type==="Options"}return D.type==="Options"}return!1}}function pUe(e){const r=zs(e),n=r.split(/[\t\n\f\r ]+/);let i=uh(Hs,n).filter(a=>a!=="");return B1(r)&&(i[0]=Oi),B1(r,2)&&(i=[Oi,...i]),R1(r)&&(i[i.length-1]=Oi),R1(r,2)&&(i=[...i,Oi]),i}function Ia(e,r,n){return e.call(r,n)}function J1(e,r){let n=ul(e);return e!=null&&e.typeAnnotation&&(n+=": "+r.slice(e.typeAnnotation.start,e.typeAnnotation.end)),n}function ul(e,r){if(e===null)return"";if(typeof e=="string")return" "+e;switch(e.type){case"ArrayExpression":case"ArrayPattern":return" ["+e.elements.map(ul).join(",").slice(1)+"]";case"AssignmentPattern":return ul(e.left)+" ="+ul(e.right);case"Identifier":return" "+e.name;case"Literal":return" "+e.raw;case"ObjectExpression":return" {"+e.properties.map(n=>ul(n,e)).join(",")+" }";case"ObjectPattern":return" {"+e.properties.map(ul).join(",")+" }";case"Property":return e.value.type==="ObjectPattern"||e.value.type==="ArrayPattern"?" "+e.key.name+":"+ul(e.value):e.value.type==="Identifier"&&e.key.name!==e.value.name||r&&r.type==="ObjectExpression"?ul(e.key)+":"+ul(e.value):ul(e.value);case"RestElement":return" ..."+e.argument.name}throw console.error(JSON.stringify(e,null,4)),new Error("unknown node type: "+e.type)}function cG(e){let r=e.data;return XK(r)&&(r=YK(r)),Br(["<!--",r,"-->"])}function yT(e,r,n,i){function a(o){return o instanceof n?o:new n(function(u){u(o)})}return new(n||(n=Promise))(function(o,u){function c(d){try{h(i.next(d))}catch(g){u(g)}}function b(d){try{h(i.throw(d))}catch(g){u(g)}}function h(d){d.done?o(d.value):a(d.value).then(c,b)}h((i=i.apply(e,r||[])).next())})}typeof SuppressedError=="function"&&SuppressedError;function gT(e,r,n=!1){const i=e.leadingComments,a=r.originalText.slice(r.locStart(i&&i[0]||e),r.locEnd(e));return!n||!XK(a)?a:YK(a)}const _Ue=/<[a-z]+((?:\s+[^=>'"\/]+=(?:"[^"]*"|'[^']*'|[^>\s]+)|\s+[^=>'"\/]+)*\s*)>/im,dUe=/([^\s=]+)(?:=(?:(?:("|')([\s\S]*?)\2)|(?:([^>\s]+?)(?:\s|>|$))))?/gim;function pG(e){const[,r]=e.match(_Ue),n=[];let i;for(;i=dUe.exec(r);){const[a,o,u,c,b]=i,h=c||b,d=i.index;let g;if(!h)g=!0;else{let D=d+o.length;u&&(D+=2),g=[{type:"Text",data:h,start:D,end:D+h.length}]}n.push({type:"Attribute",name:o,value:g,start:d,end:d+a.length})}return n}const{builders:{group:C9,hardline:pp,softline:fUe,indent:_G,dedent:hUe,literalline:mUe},utils:{removeLines:yUe}}=t_,gUe=new Set(["Script","Style","Identifier","MemberExpression","CallExpression","ArrowFunctionExpression"]),bUe=new Set(["start","end","type"]);function vUe(e,r){return Object.keys(e).filter(n=>!r.has(n)&&!gUe.has(e.type)&&!bUe.has(n))}function xUe(e,r){var n,i,a,o,u,c,b,h,d,g,D;const E=e.getNode(),C=r;if(!C.locStart||!C.locEnd||!C.originalText)throw new Error("Missing required options");if(_9(E))return aUe(E),E.module&&(E.module.type="Script",E.module.attributes=pG(gT(E.module,C))),E.instance&&(E.instance.type="Script",E.instance.attributes=pG(gT(E.instance,C))),E.css&&(E.css.type="Style",E.css.content.type="StyleProgram"),null;const S=e.getParentNode(),P=()=>{var L;return S.expression?_p(S,(L=C.svelteStrictMode)!==null&&L!==void 0?L:!1,!1,!1,"expression"):void 0},N=L=>_p(S,!1,!0,!1,L);switch(S.type){case"IfBlock":case"ElseBlock":case"AwaitBlock":case"KeyBlock":N("expression");break;case"EachBlock":N("expression"),N("key");break;case"SnippetBlock":E===S.expression&&(S.expression.end=C.originalText.indexOf(")",(u=(i=(n=S.context)===null||n===void 0?void 0:n.end)!==null&&i!==void 0?i:(o=(a=S.parameters)===null||a===void 0?void 0:a[S.parameters.length-1])===null||o===void 0?void 0:o.end)!==null&&u!==void 0?u:S.expression.end)+1,S.context=null,S.parameters=null,E.isJS=!0,E.asFunction=!0);break;case"Element":_p(S,(c=C.svelteStrictMode)!==null&&c!==void 0?c:!1,!1,!1,"tag");break;case"MustacheTag":_p(S,rUe(e,C),!1,!1,"expression");break;case"RawMustacheTag":_p(S,!1,!1,!1,"expression");break;case"Spread":_p(S,!1,!1,!1,"expression");break;case"ConstTag":_p(S,!1,!1,!0,"expression");break;case"RenderTag":E===S.expression&&(S.expression.end=C.originalText.indexOf(")",(D=(h=(b=S.argument)===null||b===void 0?void 0:b.end)!==null&&h!==void 0?h:(g=(d=S.arguments)===null||d===void 0?void 0:d[S.arguments.length-1])===null||g===void 0?void 0:g.end)!==null&&D!==void 0?D:S.expression.end)+1,S.argument=null,_p(S,!1,!1,!1,"expression"));break;case"EventHandler":case"Binding":case"Class":case"Let":case"Transition":case"Action":case"Animation":case"InlineComponent":P();break}if(E.isJS)return L=>yT(this,void 0,void 0,function*(){try{const U={parser:"svelteExpressionParser",singleQuote:E.forceSingleQuote?!0:C.singleQuote,_svelte_asFunction:E.asFunction},J=gT(E,C,!0);let z=yield L(E.asFunction?CUe(J):DUe(J),U);if(E.forceSingleLine&&(z=yUe(z)),E.removeParentheses&&(z=$qe(z)),E.asFunction)if(Array.isArray(z)&&typeof z[0]=="string")z[0]=z[0].replace("function ",""),z.splice(-1,1);else throw new Error("Prettier AST changed, asFunction logic needs to change");return z}catch{return gT(E,C,!0)}});const _=(L,U,J)=>(z,Y)=>yT(this,void 0,void 0,function*(){return EUe(L,C.originalText,e,j=>TUe(j,U,z,C),Y,J,C)}),k=L=>_("script",Hqe(E)?"typescript":Vqe(E)?"json":"babel-ts",L),M=L=>_("style",Wqe(E)?"less":Kqe(E)?"scss":"css",L),I=()=>_("template","pug",!1);switch(E.type){case"Script":return k(!0);case"Style":return M(!0);case"Element":{if(E.name==="script")return k(!1);if(E.name==="style")return M(!1);if(Gqe(E))return I()}}return null}function DUe(e){return`(${e}
279
+ `).map((g,D)=>D==0?[g]:[x9,g]));switch(d.type){case"Fragment":const g=d.children;if(g.length===0||g.every(da))return"";if(Zl(e))return Br(e.map(n,"children"));{Yqe(d.children,e);const C=d9([mT(e,n,r)],S=>k1(S)||typeof S=="string"&&S.trim()===""||S===q1);return C.every(S=>M_(S))?"":Br([...C,Oi])}case"Text":if(Zl(e)){let C=zs(d);const S=e.getParentNode();return S.type==="Attribute"?(S.name==="class"&&e.getParentNode(1).type==="Element"&&(C=C.replace(/([^ \t\n])(([ \t]+$)|([ \t]+(\r?\n))|[ \t]+)/g,(P,N,_,k,M,I)=>k?P:N+(M?I:" ")),C=C.replace(/([^ \t\n])[ \t]+$/,S.value.indexOf(d)===S.value.length-1?"$1":"$1 ")),Rqe(C,x9)):C}else{if(da(d)){const C=zs(d).trim().length<zs(d).length,S=/\n/.test(zs(d));return/\n\r?\s*\n\r?/.test(zs(d))?[Oi,Oi]:S?Oi:C?Hs:""}return sUe(pUe(d))}case"Element":case"InlineComponent":case"Slot":case"SlotTemplate":case"Window":case"Head":case"Title":{const C=!(d.name==="template"&&!sG(d)),S=d.children.every(ae=>da(ae)),P=d.name.toUpperCase()==="!DOCTYPE",N=r.originalText[d.end-2]==="/",_=S&&((d.type==="Element"&&!r.svelteStrictMode||d.type==="Head"||d.type==="InlineComponent"||d.type==="SlotTemplate"||d.type==="Title")&&N||d.type==="Slot"||d.type==="Window"||Eqe.indexOf(d.name)!==-1||P),k=e.map(w1(d,r,n),"attributes"),M=eG(d,r),I=d.type==="InlineComponent"&&d.expression?[M,"this=",...h()]:d.type==="Element"&&d.tag?[M,"this=",...typeof d.tag=="string"?[`"${d.tag}"`]:[c,Ia(e,n,"tag"),b]]:"";if(_)return Br(["<",d.name,mu(Br([I,...k,o||P?"":j1(Hs)])),o&&!P?" ":"",`${P?"":"/"}>`]);const L=d.children,U=L[0],J=L[L.length-1];let z;const Y=Qqe(d,C,r),j=Zqe(d,C,r);S?z=ec(e,r,d)&&d.children.length&&L1(d.children[0])&&!Zl(e)?()=>Hs:()=>o?ol:"":Zl(e)?z=()=>lUe(d,r.originalText,e,n):C?ec(e,r,d)&&!Zl(e)?z=()=>mT(e,n,r):z=()=>mT(e,n,r):z=()=>aG(d,r.originalText,!0);const re=["<",d.name,mu(Br([I,...k,Y&&!S?"":!o&&!Zl(e)?j1(ol):""]))];if(!C&&!S)return Br([...re,">",Br([Oi,z(),Oi]),`</${d.name}>`]);if(Y&&j){const ae=[ol,Br([">",z(),`</${d.name}`])],xe=S&&!o||uG(d,e,r);return Br([...re,Br(S?ae:mu(ae)),xe?"":ol,">"])}let se=ol,le=ol;if(Zl(e))se="",le="";else{let ae=!1;!Y&&U&&U.type==="Text"&&(O1(U)&&U!==J&&(!ec(e,r,d)||oh(J))?(se=Oi,le=Oi,ae=!0):ec(e,r,d)&&(se=Hs),$1(U)),!j&&J&&J.type==="Text"&&(ec(e,r,d)&&!ae&&(le=Hs),M1(J))}return Br(Y?[...re,mu([ol,Br([">",z()])]),le,`</${d.name}>`]:j?[...re,">",mu([se,Br([z(),`</${d.name}`])]),uG(d,e,r)?"":ol,">"]:S?[...re,">",z(),`</${d.name}>`]:[...re,">",mu([se,z()]),le,`</${d.name}>`])}case"Options":if(r.svelteSortOrder!=="none")throw new Error("Options tags should have been handled by prepareChildren");case"Body":case"Document":return Br(["<",d.name,mu(Br([...e.map(w1(d,r,n),"attributes"),o?"":j1(Hs)])),o?" ":"","/>"]);case"Document":return Br(["<",d.name,mu(Br([...e.map(w1(d,r,n),"attributes"),o?"":j1(Hs)])),o?" ":"","/>"]);case"Identifier":return d.name;case"AttributeShorthand":return d.expression.name;case"Attribute":{if(oG(d))return r.svelteAllowShorthand?["{",d.name,"}"]:r.svelteStrictMode?[d.name,'="{',d.name,'}"']:[d.name,"={",d.name,"}"];{if(d.value===!0)return[d.name];const C=!fT(d.value)||((i=r.svelteStrictMode)!==null&&i!==void 0?i:!1),S=lG(e,n,C,d);return C?[d.name,"=",'"',S,'"']:[d.name,"=",S]}}case"MustacheTag":return["{",Ia(e,n,"expression"),"}"];case"IfBlock":{const C=["{#if ",Ia(e,n,"expression"),"}",$_(e,n,r)];return d.else&&C.push(e.call(n,"else")),C.push("{/if}"),Br([C,q1])}case"ElseBlock":{const C=e.getParentNode();if(d.children.length===1&&d.children[0].type==="IfBlock"&&C.type!=="EachBlock"){const S=d.children[0],P=["{:else if ",e.map(N=>Ia(N,n,"expression"),"children")[0],"}",e.map(N=>$_(N,n,r),"children")[0]];return S.else&&P.push(e.map(N=>N.call(n,"else"),"children")[0]),P}return["{:else}",$_(e,n,r)]}case"EachBlock":{const C=["{#each ",Ia(e,n,"expression")," as",J1(d.context,r.originalText)];return d.index&&C.push(", ",d.index),d.key&&C.push(" (",Ia(e,n,"key"),")"),C.push("}",$_(e,n,r)),d.else&&C.push(e.call(n,"else")),C.push("{/each}"),Br([C,q1])}case"AwaitBlock":{const C=d.pending.children.some(_=>!da(_)),S=d.then.children.some(_=>!da(_)),P=d.catch.children.some(_=>!da(_));let N=[];return!C&&S?N.push(Br(["{#await ",Ia(e,n,"expression")," then",J1(d.value,r.originalText),"}"]),e.call(n,"then")):!C&&P?N.push(Br(["{#await ",Ia(e,n,"expression")," catch",J1(d.error,r.originalText),"}"]),e.call(n,"catch")):(N.push(Br(["{#await ",Ia(e,n,"expression"),"}"])),C&&N.push(e.call(n,"pending")),S&&N.push(Br(["{:then",J1(d.value,r.originalText),"}"]),e.call(n,"then"))),(C||S)&&P&&N.push(Br(["{:catch",J1(d.error,r.originalText),"}"]),e.call(n,"catch")),N.push("{/await}"),Br(N)}case"KeyBlock":{const C=["{#key ",Ia(e,n,"expression"),"}",$_(e,n,r)];return C.push("{/key}"),Br([C,q1])}case"ThenBlock":case"PendingBlock":case"CatchBlock":return $_(e,n,r);case"SnippetBlock":{const C=["{#snippet ",Ia(e,n,"expression")];return C.push("}",$_(e,n,r),"{/snippet}"),C}case"EventHandler":return["on:",d.name,d.modifiers&&d.modifiers.length?["|",uh("|",d.modifiers)]:"",d.expression?["=",...h()]:""];case"Binding":return["bind:",d.name,d.expression.type==="Identifier"&&d.expression.name===d.name&&r.svelteAllowShorthand?"":["=",...h()]];case"Class":return["class:",d.name,d.expression.type==="Identifier"&&d.expression.name===d.name&&r.svelteAllowShorthand?"":["=",...h()]];case"StyleDirective":const D=["style:",d.name,d.modifiers&&d.modifiers.length?["|",uh("|",d.modifiers)]:""];if(oG(d)||d.value===!0)return r.svelteAllowShorthand?[...D]:r.svelteStrictMode?[...D,'="{',d.name,'}"']:[...D,"={",d.name,"}"];{const C=!fT(d.value)||((a=r.svelteStrictMode)!==null&&a!==void 0?a:!1),S=lG(e,n,C,d);return C?[...D,"=",'"',S,'"']:[...D,"=",S]}case"Let":return["let:",d.name,!d.expression||d.expression.type==="Identifier"&&d.expression.name===d.name?"":["=",...h()]];case"DebugTag":return["{@debug",d.identifiers.length>0?[" ",uh(", ",e.map(n,"identifiers"))]:"","}"];case"Ref":return["ref:",d.name];case"Comment":{const C=qqe(e);if(dT(d)&&y9(d,e))hT=!0;else if(I1(d)&&y9(d,e))hT=!1;else{if(N1(d,e)||da(C)&&N1(C,e))return"";iG(d)&&(U1=!0)}return cG(d)}case"Transition":return[d.intro&&d.outro?"transition":d.intro?"in":"out",":",d.name,d.modifiers&&d.modifiers.length?["|",uh("|",d.modifiers)]:"",d.expression?["=",...h()]:""];case"Action":return["use:",d.name,d.expression?["=",...h()]:""];case"Animation":return["animate:",d.name,d.expression?["=",...h()]:""];case"RawMustacheTag":return["{@html ",Ia(e,n,"expression"),"}"];case"RenderTag":return["{@render ",Ia(e,n,"expression"),"}"];case"Spread":return["{...",Ia(e,n,"expression"),"}"];case"ConstTag":return["{@const ",Ia(e,n,"expression"),"}"]}throw console.error(JSON.stringify(d,null,4)),new Error("unknown node type: "+d.type)}function uUe(e,r,n,i){if(r.svelteSortOrder==="none"){const c={};e.module&&(c[e.module.end]=e.module),e.instance&&(c[e.instance.end]=e.instance),e.css&&(c[e.css.end]=e.css);const b=_T(e.html);for(let d=0;d<b.length;d++){const g=b[d];c[g.start]&&(b.splice(d,0,c[g.start]),delete c[g.start])}const h=n.call(i,"html");return r.insertPragma&&!D9(r.originalText)?["<!-- @format -->",Oi,h]:h}const a={options:[],scripts:[],markup:[],styles:[]};e.module&&a.scripts.push(n.call(i,"module")),e.instance&&a.scripts.push(n.call(i,"instance")),e.css&&a.styles.push(n.call(i,"css"));const o=n.call(i,"html");o&&a.markup.push(o),lh&&a.options.push(lh);const u=QK(Bqe(r.svelteSortOrder).map(c=>a[c]));if(U1=!1,hT=!1,lh=void 0,r.parentParser==="markdown"){const c=u[u.length-1];F1([c],k1)}return r.insertPragma&&!D9(r.originalText)?["<!-- @format -->",Oi,Br(u)]:Br([uh(Oi,u)])}function lG(e,r,n,i){const a=e.map(o=>o.call(r),"value");return!n||!KK.includes(i.name)?a:mu(Br(d9(a,k1)))}function $_(e,r,n){const i=e.getValue(),a=i.children;if(!a||a.length===0)return"";const o=eUe(i,n),u=tUe(i,n),c=o==="none"?"":u==="line"||o==="line"?Oi:Hs,b=u==="none"?"":u==="line"||o==="line"?Oi:Hs,h=a[0],d=a[a.length-1];return L1(h)&&$1(h),oh(d)&&M1(d),[mu([c,Br(mT(e,r,n))]),b]}function lUe(e,r,n,i){const a=[],o=e.children.length;for(let u=0;u<o;u++){const c=e.children[u];c.type==="Text"?r.substring(c.start,c.end).split(/\r?\n/).forEach((h,d)=>{d>0&&a.push(x9),a.push(h)}):a.push(n.call(i,"children",u))}return a}function mT(e,r,n){if(Zl(e))return e.map(r,"children");const i=cUe(e.getValue().children,e,r,n);if(e.getValue().children=i,i.length===0)return"";const a=[];let o=!1;for(let g=0;g<i.length;g++){const D=i[g];D.type==="Text"?d(g,D):hu(D,n)?h(g):ec(e,n,D)?b(g):(a.push(c(g)),o=!1)}return i.length>1&&i.some(g=>hu(g,n))&&a.push(q1),a;function c(g){return e.call(r,"children",g)}function b(g){o?a.push(Br([Hs,c(g)])):a.push(c(g)),o=!1}function h(g){const D=i[g-1];D&&!hu(D,n)&&(D.type!=="Text"||o||!oh(D))&&a.push(ol),a.push(c(g));const E=i[g+1];E&&(E.type!=="Text"||(!da(E)||i[g+2]&&ec(e,n,i[g+2]))&&!O1(E))&&a.push(ol),o=!1}function d(g,D){if(o=!1,g===0||g===i.length-1){a.push(c(g));return}const E=i[g-1],C=i[g+1];if(L1(D)&&!da(D)){if(ec(e,n,E)&&!O1(D)){$1(D);const S=a.pop();a.push(Br([S,Hs]))}hu(E,n)&&!O1(D)&&$1(D)}oh(D)&&(ec(e,n,C)&&!b9(D)&&(o=!E||!hu(E,n),M1(D)),hu(C,n)&&!b9(D,2)&&(o=!E||!hu(E,n),M1(D))),a.push(c(g))}}function cUe(e,r,n,i){let a;const o=[],u=pT(i);for(let d=0;d<e.length;d++){const g=e[d];if(!(g.type==="Text"&&zs(g)==="")&&!(da(g)&&N1(g,r))){if(i.svelteSortOrder!=="none"){if(h(g,d)){a=cG(g);const D=e[d+1];d+=D&&da(D)?1:0;continue}if(g.type==="Options"){b(g,d,r,n);continue}}o.push(g)}}const c=[];for(let d=0;d<o.length;d++){const g=o[d],D=o[d+1];g.type==="Text"&&D&&D.type==="Text"&&(g.raw+=D.raw,g.data+=D.data,d++),c.push(g)}return c;function b(d,g,D,E){lh=Br([["<",d.name,mu(Br([...D.map(w1(d,i,E),"children",g,"attributes"),u?"":j1(Hs)])),u?" ":"","/>"],Oi]),a&&(lh=Br([a,Oi,lh]))}function h(d,g){if(d.type!=="Comment"||I1(d)||dT(d))return!1;const D=e[g+1];if(D){if(da(D)){const E=e[g+2];return E&&E.type==="Options"}return D.type==="Options"}return!1}}function pUe(e){const r=zs(e),n=r.split(/[\t\n\f\r ]+/);let i=uh(Hs,n).filter(a=>a!=="");return B1(r)&&(i[0]=Oi),B1(r,2)&&(i=[Oi,...i]),R1(r)&&(i[i.length-1]=Oi),R1(r,2)&&(i=[...i,Oi]),i}function Ia(e,r,n){return e.call(r,n)}function J1(e,r){let n=ul(e);return e!=null&&e.typeAnnotation&&(n+=": "+r.slice(e.typeAnnotation.start,e.typeAnnotation.end)),n}function ul(e,r){if(e===null)return"";if(typeof e=="string")return" "+e;switch(e.type){case"ArrayExpression":case"ArrayPattern":return" ["+e.elements.map(ul).join(",").slice(1)+"]";case"AssignmentPattern":return ul(e.left)+" ="+ul(e.right);case"Identifier":return" "+e.name;case"Literal":return" "+e.raw;case"ObjectExpression":return" {"+e.properties.map(n=>ul(n,e)).join(",")+" }";case"ObjectPattern":return" {"+e.properties.map(ul).join(",")+" }";case"Property":return e.value.type==="ObjectPattern"||e.value.type==="ArrayPattern"?" "+e.key.name+":"+ul(e.value):e.value.type==="Identifier"&&e.key.name!==e.value.name||r&&r.type==="ObjectExpression"?ul(e.key)+":"+ul(e.value):ul(e.value);case"RestElement":return" ..."+e.argument.name}throw console.error(JSON.stringify(e,null,4)),new Error("unknown node type: "+e.type)}function cG(e){let r=e.data;return XK(r)&&(r=YK(r)),Br(["<!--",r,"-->"])}function yT(e,r,n,i){function a(o){return o instanceof n?o:new n(function(u){u(o)})}return new(n||(n=Promise))(function(o,u){function c(d){try{h(i.next(d))}catch(g){u(g)}}function b(d){try{h(i.throw(d))}catch(g){u(g)}}function h(d){d.done?o(d.value):a(d.value).then(c,b)}h((i=i.apply(e,r||[])).next())})}typeof SuppressedError=="function"&&SuppressedError;function gT(e,r,n=!1){const i=e.leadingComments,a=r.originalText.slice(r.locStart(i&&i[0]||e),r.locEnd(e));return!n||!XK(a)?a:YK(a)}const _Ue=/<[a-z]+((?:\s+[^=>'"\/]+=(?:"[^"]*"|'[^']*'|[^>\s]+)|\s+[^=>'"\/]+)*\s*)>/im,dUe=/([^\s=]+)(?:=(?:(?:("|')([\s\S]*?)\2)|(?:([^>\s]+?)(?:\s|>|$))))?/gim;function pG(e){const[,r]=e.match(_Ue),n=[];let i;for(;i=dUe.exec(r);){const[a,o,u,c,b]=i,h=c||b,d=i.index;let g;if(!h)g=!0;else{let D=d+o.length;u&&(D+=2),g=[{type:"Text",data:h,start:D,end:D+h.length}]}n.push({type:"Attribute",name:o,value:g,start:d,end:d+a.length})}return n}const{builders:{group:C9,hardline:pp,softline:fUe,indent:_G,dedent:hUe,literalline:mUe},utils:{removeLines:yUe}}=t_,gUe=new Set(["Script","Style","Identifier","MemberExpression","CallExpression","ArrowFunctionExpression"]),bUe=new Set(["start","end","type"]);function vUe(e,r){return Object.keys(e).filter(n=>!r.has(n)&&!gUe.has(e.type)&&!bUe.has(n))}function xUe(e,r){var n,i,a,o,u,c,b,h,d,g,D;const E=e.getNode(),C=r;if(!C.locStart||!C.locEnd||!C.originalText)throw new Error("Missing required options");if(_9(E))return aUe(E),E.module&&(E.module.type="Script",E.module.attributes=pG(gT(E.module,C))),E.instance&&(E.instance.type="Script",E.instance.attributes=pG(gT(E.instance,C))),E.css&&(E.css.type="Style",E.css.content.type="StyleProgram"),null;const S=e.getParentNode(),P=()=>{var L;return S.expression?_p(S,(L=C.svelteStrictMode)!==null&&L!==void 0?L:!1,!1,!1,"expression"):void 0},N=L=>_p(S,!1,!0,!1,L);switch(S.type){case"IfBlock":case"ElseBlock":case"AwaitBlock":case"KeyBlock":N("expression");break;case"EachBlock":N("expression"),N("key");break;case"SnippetBlock":E===S.expression&&(S.expression.end=C.originalText.indexOf(")",(u=(i=(n=S.context)===null||n===void 0?void 0:n.end)!==null&&i!==void 0?i:(o=(a=S.parameters)===null||a===void 0?void 0:a[S.parameters.length-1])===null||o===void 0?void 0:o.end)!==null&&u!==void 0?u:S.expression.end)+1,S.context=null,S.parameters=null,E.isJS=!0,E.asFunction=!0);break;case"Element":_p(S,(c=C.svelteStrictMode)!==null&&c!==void 0?c:!1,!1,!1,"tag");break;case"MustacheTag":_p(S,rUe(e,C),!1,!1,"expression");break;case"RawMustacheTag":_p(S,!1,!1,!1,"expression");break;case"Spread":_p(S,!1,!1,!1,"expression");break;case"ConstTag":_p(S,!1,!1,!0,"expression");break;case"RenderTag":E===S.expression&&(("argument"in S||"arguments"in S)&&(S.expression.end=C.originalText.indexOf(")",(D=(h=(b=S.argument)===null||b===void 0?void 0:b.end)!==null&&h!==void 0?h:(g=(d=S.arguments)===null||d===void 0?void 0:d[S.arguments.length-1])===null||g===void 0?void 0:g.end)!==null&&D!==void 0?D:S.expression.end)+1,S.argument=null,S.arguments=null),_p(S,!1,!1,!1,"expression"));break;case"EventHandler":case"Binding":case"Class":case"Let":case"Transition":case"Action":case"Animation":case"InlineComponent":P();break}if(E.isJS)return L=>yT(this,void 0,void 0,function*(){try{const U={parser:"svelteExpressionParser",singleQuote:E.forceSingleQuote?!0:C.singleQuote,_svelte_asFunction:E.asFunction},J=gT(E,C,!0);let z=yield L(E.asFunction?CUe(J):DUe(J),U);if(E.forceSingleLine&&(z=yUe(z)),E.removeParentheses&&(z=$qe(z)),E.asFunction)if(Array.isArray(z)&&typeof z[0]=="string")z[0]=z[0].replace("function ",""),z.splice(-1,1);else throw new Error("Prettier AST changed, asFunction logic needs to change");return z}catch{return gT(E,C,!0)}});const _=(L,U,J)=>(z,Y)=>yT(this,void 0,void 0,function*(){return EUe(L,C.originalText,e,j=>TUe(j,U,z,C),Y,J,C)}),k=L=>_("script",Hqe(E)?"typescript":Vqe(E)?"json":"babel-ts",L),M=L=>_("style",Wqe(E)?"less":Kqe(E)?"scss":"css",L),I=()=>_("template","pug",!1);switch(E.type){case"Script":return k(!0);case"Style":return M(!0);case"Element":{if(E.name==="script")return k(!1);if(E.name==="style")return M(!1);if(Gqe(E))return I()}}return null}function DUe(e){return`(${e}
280
280
  )`}function CUe(e){return`function ${e} {}`}function dG(e){if(!e)return"";const r=/^[\t\f\r ]*\n/,n=/\n[\t\f\r ]*$/;return[mUe,e.replace(r,"").replace(n,""),pp]}function SUe(e){const r=g9(A1,e);return r?GK(r):""}function TUe(e,r,n,i){return yT(this,void 0,void 0,function*(){try{const a=yield n(e,{parser:r});if(r==="pug"&&typeof a=="string"){const u=i.useTabs?" ":" ".repeat(i.pugTabWidth&&i.pugTabWidth>0?i.pugTabWidth:i.tabWidth),c=a.split(`
281
281
  `).map(b=>b&&u+b).join(`
282
282
  `);return[pp,c]}const o=u=>i.svelteIndentScriptAndStyle?_G(u):u;return F1([a],k1),[o([pp,a]),pp]}catch(a){if(Tqe.PRETTIER_DEBUG)throw a;return console.error(a),dG(e)}})}function EUe(e,r,n,i,a,o,u){var c;return yT(this,void 0,void 0,function*(){const b=n.getNode(),h=e==="template"?aG(b,r):SUe(b),d=b.type==="Script"||b.type==="Style"?b.comments:[Uqe(n)].filter(Boolean).map(P=>({comment:P,emptyLineAfter:!1})),D=sG(b)&&!iG((c=d[d.length-1])===null||c===void 0?void 0:c.comment)&&(e!=="template"||u.plugins.some(P=>typeof P!="string"&&P.parsers&&P.parsers.pug))?h.trim()!==""?yield i(h):h===""?"":pp:dG(h),E=C9(["<",e,_G(C9([...n.map(w1(b,u,a),"attributes"),pT(u)?"":hUe(fUe)])),">"]);let C=C9([E,D,"</",e,">"]);const S=[];for(const P of d)S.push("<!--",P.comment.data,"-->"),S.push(pp),P.emptyLineAfter&&S.push(pp);return o&&u.svelteSortOrder!=="none"?[...S,C,pp]:o&&S.length?[...S,C]:C})}function _p(e,r,n,i,a){const o=e[a];!o||typeof o!="object"||(o.isJS=!0,o.forceSingleQuote=r,o.forceSingleLine=n,o.removeParentheses=i)}const fG=v8.babel;function AUe(e){return e.start}function wUe(e){return e.end}const kUe=[{name:"svelte",parsers:["svelte"],extensions:[".svelte"],vscodeLanguageIds:["svelte"]}],FUe={svelte:{hasPragma:D9,parse:e=>{try{return Object.assign(Object.assign({},W8e(e)),{__isRoot:!0})}catch(r){throw r.start!=null&&r.end!=null&&(r.loc={start:r.start,end:r.end}),r}},preprocess:(e,r)=>(e=Pqe(e),e=e.trim(),r.originalText=e,e),locStart:AUe,locEnd:wUe,astFormat:"svelte-ast"},svelteExpressionParser:Object.assign(Object.assign({},fG),{parse:(e,r)=>{const n=fG.parse(e,r);let i=n.program.body[0];return r._svelte_asFunction||(i=i.expression),Object.assign(Object.assign({},n),{program:i})}})};var PUe=Object.freeze({__proto__:null,languages:kUe,options:Iqe,parsers:FUe,printers:{"svelte-ast":{print:oUe,embed:xUe,getVisitorKeys:vUe}}});const hG={js:"babel",jsx:"babel",mjs:"babel",cjs:"babel",ts:"typescript",tsx:"typescript",css:"css",html:"html",json:"json",json5:"json5",md:"markdown",markdown:"markdown"};hG.svelte="svelte";const mG=[Zse,V_e,jme,xge,gDe,txe];mG.push(PUe),onmessage=async({data:e})=>{const{fileExtension:r,fileText:n,fileId:i}=e,a=hG[r];if(a)try{const o=await p8(n,{parser:a,plugins:mG,proseWrap:"always",singleQuote:!0,printWidth:60});postMessage({fileId:i,fileTextPrettified:o})}catch(o){console.error(o),postMessage({fileId:i,error:o.toString()})}}})();
package/dist/index.html CHANGED
@@ -20,7 +20,7 @@
20
20
  href="https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700&display=swap"
21
21
  rel="stylesheet"
22
22
  />
23
- <script type="module" crossorigin src="/assets/index-BfS1mzJK.js"></script>
23
+ <script type="module" crossorigin src="/assets/index-DGGHVX25.js"></script>
24
24
  <link rel="stylesheet" crossorigin href="/assets/index-CpIQ8AoQ.css">
25
25
  </head>
26
26
  <body>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vzcode",
3
- "version": "0.72.0",
3
+ "version": "0.73.0",
4
4
  "description": "Multiplayer code editor system",
5
5
  "main": "src/index.ts",
6
6
  "type": "module",
@@ -63,7 +63,7 @@
63
63
  },
64
64
  "homepage": "https://github.com/vizhub-core/vzcode#readme",
65
65
  "dependencies": {
66
- "@codemirror/autocomplete": "^6.12.0",
66
+ "@codemirror/autocomplete": "^6.13.0",
67
67
  "@codemirror/lang-css": "^6.2.1",
68
68
  "@codemirror/lang-html": "^6.4.8",
69
69
  "@codemirror/lang-javascript": "^6.2.2",
@@ -71,7 +71,7 @@
71
71
  "@codemirror/lang-markdown": "^6.2.4",
72
72
  "@codemirror/state": "^6.4.1",
73
73
  "@codemirror/theme-one-dark": "^6.1.2",
74
- "@codemirror/view": "^6.24.1",
74
+ "@codemirror/view": "^6.25.1",
75
75
  "@lezer/highlight": "^1.2.0",
76
76
  "@replit/codemirror-indentation-markers": "^6.5.0",
77
77
  "@replit/codemirror-interact": "^6.3.0",
@@ -95,31 +95,31 @@
95
95
  "d3-array": "^3.2.4",
96
96
  "diff-match-patch": "^1.0.5",
97
97
  "dotenv": "^16.4.5",
98
- "express": "^4.18.2",
98
+ "express": "^4.18.3",
99
99
  "ignore": "^5.3.1",
100
100
  "json0-ot-diff": "^1.1.2",
101
101
  "ngrok": "^4.3.3",
102
- "open": "^10.0.4",
103
- "openai": "^4.28.0",
104
- "prettier-plugin-svelte": "^3.2.1",
102
+ "open": "^10.1.0",
103
+ "openai": "^4.28.4",
104
+ "prettier-plugin-svelte": "^3.2.2",
105
105
  "react": "^18.2.0",
106
106
  "react-bootstrap": "^2.10.1",
107
107
  "react-dom": "^18.2.0",
108
- "react-router-dom": "^6.22.1",
108
+ "react-router-dom": "^6.22.3",
109
109
  "sharedb": "^4.1.2",
110
110
  "sharedb-client-browser": "^4.4.0",
111
111
  "vizhub-ui": "^3.21.0",
112
112
  "ws": "^8.16.0"
113
113
  },
114
114
  "devDependencies": {
115
- "@types/react": "^18.2.60",
116
- "@types/react-dom": "^18.2.19",
115
+ "@types/react": "^18.2.64",
116
+ "@types/react-dom": "^18.2.21",
117
117
  "@vitejs/plugin-react": "^4.2.1",
118
118
  "concurrently": "^8.2.2",
119
119
  "prettier": "^3.2.5",
120
120
  "sass": "^1.71.1",
121
- "typescript": "^5.3.3",
122
- "vite": "^5.1.4",
121
+ "typescript": "^5.4.2",
122
+ "vite": "^5.1.5",
123
123
  "vitest": "^1.3.1"
124
124
  }
125
125
  }
@@ -55,6 +55,11 @@ export type VZCodeContextValue = {
55
55
  createFile: (fileName: string) => void;
56
56
  renameFile: (fileId: string, fileName: string) => void;
57
57
  deleteFile: (fileId: string) => void;
58
+ renameDirectory: (
59
+ directoryId: string,
60
+ directoryOldName: string,
61
+ directoryName: string,
62
+ ) => void;
58
63
  deleteDirectory: (directoryId: string) => void;
59
64
 
60
65
  activeFileId: string | null;
@@ -227,6 +232,7 @@ export const VZCodeProvider = ({
227
232
  createFile,
228
233
  renameFile,
229
234
  deleteFile,
235
+ renameDirectory,
230
236
  deleteDirectory,
231
237
  } = useFileCRUD({
232
238
  submitOperation,
@@ -281,6 +287,7 @@ export const VZCodeProvider = ({
281
287
  createFile,
282
288
  renameFile,
283
289
  deleteFile,
290
+ renameDirectory,
284
291
  deleteDirectory,
285
292
 
286
293
  activeFileId,
@@ -14,6 +14,7 @@ export const DirectoryListing = ({
14
14
  children,
15
15
  renameFile,
16
16
  deleteFile,
17
+ renameDirectory,
17
18
  deleteDirectory,
18
19
  handleFileClick,
19
20
  handleFileDoubleClick,
@@ -26,6 +27,11 @@ export const DirectoryListing = ({
26
27
  children: Array<FileTree | FileTreeFile>;
27
28
  renameFile: (fileId: string, newName: string) => void;
28
29
  deleteFile: (fileId: string) => void;
30
+ renameDirectory: (
31
+ path: FileTreePath,
32
+ oldName: string,
33
+ newName: string,
34
+ ) => void;
29
35
  deleteDirectory: (path: FileTreePath) => void;
30
36
  handleFileClick: (fileId: string) => void;
31
37
  handleFileDoubleClick: (fileId: string) => void;
@@ -41,10 +47,12 @@ export const DirectoryListing = ({
41
47
  deleteDirectory(path);
42
48
  }, [deleteDirectory, path]);
43
49
 
44
- const handleRenameClick = useCallback(() => {
45
- // https://github.com/vizhub-core/vzcode/issues/103
46
- console.log('TODO handleRenameDirectoryClick');
47
- }, []);
50
+ const handleRenameClick = useCallback(
51
+ (newName: string) => {
52
+ renameDirectory(path, name, newName);
53
+ },
54
+ [renameDirectory, path, name],
55
+ );
48
56
 
49
57
  const isOpen = useMemo(
50
58
  () => isDirectoryOpen(path),
@@ -81,6 +89,7 @@ export const DirectoryListing = ({
81
89
  key={fileId || path}
82
90
  renameFile={renameFile}
83
91
  deleteFile={deleteFile}
92
+ renameDirectory={renameDirectory}
84
93
  deleteDirectory={deleteDirectory}
85
94
  handleFileClick={handleFileClick}
86
95
  handleFileDoubleClick={
@@ -13,7 +13,7 @@ import { DeleteConfirmationModal } from './DeleteConfirmationModal';
13
13
 
14
14
  // TODO support renaming directories
15
15
  // See https://github.com/vizhub-core/vzcode/issues/103
16
- const enableRenameDirectory = false;
16
+ const enableRenameDirectory = true;
17
17
 
18
18
  // A file or directory in the sidebar.
19
19
  export const Item = ({
@@ -25,7 +25,9 @@ export const Item = ({
25
25
  handleDeleteClick,
26
26
  isDirectory = false,
27
27
  isActive = false,
28
- renameFileTooltipText = 'Rename File',
28
+ renameFileTooltipText = isDirectory
29
+ ? 'Rename Directory'
30
+ : 'Rename File',
29
31
  deleteFileTooltipText = isDirectory
30
32
  ? 'Delete Directory'
31
33
  : 'Delete File',
@@ -13,6 +13,7 @@ export const Listing = ({
13
13
  entity,
14
14
  renameFile,
15
15
  deleteFile,
16
+ renameDirectory,
16
17
  deleteDirectory,
17
18
  handleFileClick,
18
19
  handleFileDoubleClick,
@@ -23,6 +24,11 @@ export const Listing = ({
23
24
  entity: FileTree | FileTreeFile;
24
25
  renameFile: (fileId: FileId, newName: string) => void;
25
26
  deleteFile: (fileId: FileId) => void;
27
+ renameDirectory: (
28
+ path: FileTreePath,
29
+ oldName: string,
30
+ newName: string,
31
+ ) => void;
26
32
  deleteDirectory: (path: FileTreePath) => void;
27
33
  handleFileClick: (fileId: FileId) => void;
28
34
  handleFileDoubleClick: (fileId: FileId) => void;
@@ -49,6 +55,7 @@ export const Listing = ({
49
55
  children={children}
50
56
  renameFile={renameFile}
51
57
  deleteFile={deleteFile}
58
+ renameDirectory={renameDirectory}
52
59
  deleteDirectory={deleteDirectory}
53
60
  handleFileClick={handleFileClick}
54
61
  handleFileDoubleClick={handleFileDoubleClick}
@@ -1,4 +1,9 @@
1
- import { useCallback, useContext, useMemo } from 'react';
1
+ import {
2
+ useCallback,
3
+ useContext,
4
+ useEffect,
5
+ useMemo,
6
+ } from 'react';
2
7
  import {
3
8
  FileId,
4
9
  FileTree,
@@ -32,6 +37,7 @@ export const VZSidebar = ({
32
37
  files,
33
38
  renameFile,
34
39
  deleteFile,
40
+ renameDirectory,
35
41
  deleteDirectory,
36
42
  activeFileId,
37
43
  openTab,
@@ -151,6 +157,7 @@ export const VZSidebar = ({
151
157
  entity={entity}
152
158
  renameFile={renameFile}
153
159
  deleteFile={deleteFile}
160
+ renameDirectory={renameDirectory}
154
161
  deleteDirectory={deleteDirectory}
155
162
  handleFileClick={handleFileClick}
156
163
  handleFileDoubleClick={
@@ -54,7 +54,13 @@ export const useFileCRUD = ({
54
54
  ...document.files,
55
55
  [fileId]: {
56
56
  ...document.files[fileId],
57
- name: newName,
57
+ name:
58
+ document.files[fileId].name.substring(
59
+ 0,
60
+ document.files[fileId].name.lastIndexOf(
61
+ '/',
62
+ ) + 1,
63
+ ) + newName,
58
64
  },
59
65
  },
60
66
  }));
@@ -62,6 +68,40 @@ export const useFileCRUD = ({
62
68
  [submitOperation],
63
69
  );
64
70
 
71
+ // Renames a directory
72
+ const renameDirectory = useCallback(
73
+ (
74
+ path: FileTreePath,
75
+ oldName: string,
76
+ newName: string,
77
+ ) => {
78
+ submitOperation((document: VZCodeContent) => {
79
+ const updatedFiles = Object.keys(
80
+ document.files,
81
+ ).reduce((acc, key) => {
82
+ const file = document.files[key];
83
+ const fileName = file.name;
84
+ if (fileName.includes(path)) {
85
+ const oldNamePos = fileName.indexOf(oldName);
86
+ const fileNewName =
87
+ fileName.substring(0, oldNamePos) +
88
+ newName +
89
+ fileName.substring(
90
+ oldNamePos + oldName.length,
91
+ );
92
+ acc[key] = { ...file, name: fileNewName };
93
+ } else {
94
+ acc[key] = file;
95
+ }
96
+ return acc;
97
+ }, {});
98
+
99
+ return { ...document, files: updatedFiles };
100
+ });
101
+ },
102
+ [submitOperation],
103
+ );
104
+
65
105
  // Deletes a file
66
106
  const deleteFile = useCallback(
67
107
  (fileId: FileId) => {
@@ -98,6 +138,7 @@ export const useFileCRUD = ({
98
138
  createFile,
99
139
  renameFile,
100
140
  deleteFile,
141
+ renameDirectory,
101
142
  deleteDirectory,
102
143
  };
103
144
  };
@@ -16,7 +16,7 @@ const debug = false;
16
16
  // to support TypeScript completions on non-TS files.
17
17
  const getTSFileName = (fileName: string) => {
18
18
  if (fileName.endsWith('.js')) {
19
- return fileName.replace('.js', '.ts');
19
+ return fileName.replace('.js', '.tsx');
20
20
  }
21
21
  if (fileName.endsWith('.jsx')) {
22
22
  return fileName.replace('.jsx', '.tsx');
@@ -38,6 +38,21 @@ const initializeFileSystem = async () => {
38
38
  }
39
39
  const compilerOptions: ts.CompilerOptions = {
40
40
  lib: ['dom', 'esnext'],
41
+
42
+ // Disable warnings around "Any type".
43
+ noImplicitAny: false,
44
+
45
+ // Disable warnings around "Implicit any in parameter".
46
+ noImplicitThis: false,
47
+
48
+ // Allow JavaScript files to be processed
49
+ allowJs: true,
50
+
51
+ // Disable type checking for JavaScript files
52
+ // checkJs: false,
53
+
54
+ // Skip type checking of declaration files
55
+ skipLibCheck: true,
41
56
  };
42
57
 
43
58
  // `true` breaks in a Web Worker because
@@ -219,46 +234,46 @@ onmessage = async ({ data }) => {
219
234
 
220
235
  // Be less aggressive for non-TS files,
221
236
  // e.g. files that end in .js or .jsx.
222
- if (!isTS(fileName)) {
223
- // This code is for errors like:
224
- // "Binding element 'data' implicitly has an 'any' type."
225
- const LINT_ERROR_CODE_ANY = 7031;
226
-
227
- // This code is for errors like:
228
- // "Parameter 'selection' implicitly has an 'any' type.""
229
- const LINT_ERROR_CODE_ANY_PARAM = 7006;
230
-
231
- // This code is for errors like:
232
- // "Cannot find module 'd3' or its corresponding type declarations."
233
- const LINT_ERROR_CODE_IMPORT = 2307;
234
-
235
- // This code is for errors like:
236
- // "Variable 'mic' implicitly has type 'any' in some locations where its type cannot be determined."
237
- const LINT_ERROR_CODE_ANY_TYPE = 7034;
238
-
239
- // "Element implicitly has an 'any' type because expression
240
- // of type '"test"' can't be used to index type '{}'."
241
- const LINT_ERROR_CODE_ANY_TYPE_KEYS = 7053;
242
-
243
- // "Property 'id' does not exist on type { ... }"
244
- // Happens on objects with dynamic keys.
245
- // Not valid in TypeScript, but common in JavaScript.
246
- const LINT_ERROR_CODE_NON_EXISTENT_PROPERTY = 2339;
247
-
248
- if (debug) {
249
- console.log(tsErrors);
250
- }
251
- tsErrors = tsErrors.filter(
252
- (error: { code: number }) =>
253
- error.code !== LINT_ERROR_CODE_ANY &&
254
- error.code !== LINT_ERROR_CODE_IMPORT &&
255
- error.code !== LINT_ERROR_CODE_ANY_PARAM &&
256
- error.code !== LINT_ERROR_CODE_ANY_TYPE &&
257
- error.code !== LINT_ERROR_CODE_ANY_TYPE_KEYS &&
258
- error.code !==
259
- LINT_ERROR_CODE_NON_EXISTENT_PROPERTY,
260
- );
237
+ // if (!isTS(fileName)) {
238
+ // This code is for errors like:
239
+ // "Binding element 'data' implicitly has an 'any' type."
240
+ const LINT_ERROR_CODE_ANY = 7031;
241
+
242
+ // This code is for errors like:
243
+ // "Parameter 'selection' implicitly has an 'any' type.""
244
+ const LINT_ERROR_CODE_ANY_PARAM = 7006;
245
+
246
+ // This code is for errors like:
247
+ // "Cannot find module 'd3' or its corresponding type declarations."
248
+ const LINT_ERROR_CODE_IMPORT = 2307;
249
+
250
+ // This code is for errors like:
251
+ // "Variable 'mic' implicitly has type 'any' in some locations where its type cannot be determined."
252
+ const LINT_ERROR_CODE_ANY_TYPE = 7034;
253
+
254
+ // "Element implicitly has an 'any' type because expression
255
+ // of type '"test"' can't be used to index type '{}'."
256
+ const LINT_ERROR_CODE_ANY_TYPE_KEYS = 7053;
257
+
258
+ // "Property 'id' does not exist on type { ... }"
259
+ // Happens on objects with dynamic keys.
260
+ // Not valid in TypeScript, but common in JavaScript.
261
+ const LINT_ERROR_CODE_NON_EXISTENT_PROPERTY = 2339;
262
+
263
+ if (debug) {
264
+ console.log(tsErrors);
261
265
  }
266
+ tsErrors = tsErrors.filter(
267
+ (error: { code: number }) =>
268
+ error.code !== LINT_ERROR_CODE_ANY &&
269
+ error.code !== LINT_ERROR_CODE_IMPORT &&
270
+ error.code !== LINT_ERROR_CODE_ANY_PARAM &&
271
+ error.code !== LINT_ERROR_CODE_ANY_TYPE &&
272
+ error.code !== LINT_ERROR_CODE_ANY_TYPE_KEYS &&
273
+ error.code !==
274
+ LINT_ERROR_CODE_NON_EXISTENT_PROPERTY,
275
+ );
276
+ // }
262
277
  tsErrors = convertToCodeMirrorDiagnostic(tsErrors);
263
278
  }
264
279