@akashjs/compiler 0.1.19 → 0.1.21
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/index.cjs +2 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
'use strict';var crypto=require('crypto');function y(e){return {script:N(e,"script",(t,n,i,r)=>({content:t,lang:G(n,"lang")??"ts",start:i,end:r})),template:N(e,"template",(t,n,i,r)=>({content:t,start:i,end:r})),style:N(e,"style",(t,n,i,r)=>({content:t,scoped:n.includes("scoped"),start:i,end:r}))}}function N(e,t,n){let i=new RegExp(`<${t}(\\b[^>]*)>`,"i"),r=new RegExp(`</${t}>`,"i"),s=i.exec(e);if(!s)return null;let o=s[1]??"",a=s.index+s[0].length,u=r.exec(e.slice(a));if(!u)return null;let p=a+u.index,l=e.slice(a,p);return n(l.trim(),o,a,p)}function G(e,t){return new RegExp(`${t}=["']([^"']+)["']`).exec(e)?.[1]??null}function b(e){let t=[],n=0;for(;n<e.length;){if(e[n]==="<"){if(e[n+1]==="/")break;let s=X(e,n);if(s){t.push(s.node),n=s.end;continue}}if(e[n]==="{"){let s=ee(e,n);if(s){t.push(s.node),n=s.end;continue}}let i=ne(e,n+1),r=e.slice(n,i).trim();r&&t.push({type:"text",content:r}),n=i;}return t}function X(e,t){let n=/^<([a-zA-Z][a-zA-Z0-9-]*)/.exec(e.slice(t));if(!n)return null;let i=n[1],r=t+n[0].length,s=[],o=[];for(;r<e.length;){let h=/^\s+/.exec(e.slice(r));if(h&&(r+=h[0].length),e[r]===">"||e.slice(r,r+2)==="/>")break;let c=Y(e,r);c?(c.attr.name.startsWith("bind:")?o.push({name:"bind",arg:c.attr.name.slice(5),value:c.attr.value}):c.attr.name.startsWith(":")?o.push({name:c.attr.name.slice(1),value:c.attr.value}):s.push(c.attr),r=c.end):r++;}let a=i[0]===i[0].toUpperCase();if(e.slice(r,r+2)==="/>")return {node:{type:a?"component":"element",tag:i,attrs:s,directives:o.length>0?o:void 0,children:[]},end:r+2};r++;let u=b(e.slice(r));e.slice(r);let l=`</${i}>`,f=re(e,r,i);if(f===-1)return {node:{type:a?"component":"element",tag:i,attrs:s,directives:o.length>0?o:void 0,children:u},end:e.length};let d=e.slice(r,f),$=b(d);return {node:{type:a?"component":"element",tag:i,attrs:s,directives:o.length>0?o:void 0,children:$},end:f+l.length}}function Y(e,t){let n=/^(?:bind:|[:a-zA-Z_])[\w:.-]*/.exec(e.slice(t));if(!n)return null;let i=n[0],r=t+i.length;if(e[r]!=="=")return {attr:{name:i,value:"true",dynamic:false},end:r};if(r++,e[r]==="{"){let o=z(e,r);if(o)return {attr:{name:i,value:o.content,dynamic:true},end:o.end}}let s=e[r];if(s==='"'||s==="'"){let o=e.indexOf(s,r+1);return o===-1?null:{attr:{name:i,value:e.slice(r+1,o),dynamic:false},end:o+1}}return null}function ee(e,t){let n=z(e,t);return n?{node:{type:"expression",content:n.content},end:n.end}:null}function z(e,t){if(e[t]!=="{")return null;let n=1,i=t+1;for(;i<e.length&&n>0;){let r=e[i];if(r==='"'||r==="'"||r==="`"){i=te(e,i)+1;continue}r==="{"?n++:r==="}"&&n--,i++;}return {content:e.slice(t+1,i-1).trim(),end:i}}function te(e,t){let n=e[t],i=t+1;for(;i<e.length;){if(e[i]==="\\"){i+=2;continue}if(e[i]===n)return i;i++;}return i}function ne(e,t){let n=t;for(;n<e.length;){if(e[n]==="<"||e[n]==="{")return n;n++;}return n}function re(e,t,n){let i=`</${n}>`,r=1,s=t,o=e.length*2,a=0;for(;s<e.length&&a++<o;){let u=e.indexOf(`<${n}`,s),p=e.indexOf(i,s);if(p===-1)return -1;if(u!==-1&&u<p){let l=ie(e,u);l!==-1&&e[l-1]==="/"?s=l+1:l!==-1?(r++,s=l+1):s=u+1;}else {if(r--,r===0)return p;s=p+1;}}return -1}function ie(e,t){let n=t,i=0;for(;n<e.length;){let r=e[n];if(r==="{")i++;else if(r==="}")i--;else if(r===">"&&i===0)return n;n++;}return -1}function A(e){return `data-a-${crypto.createHash("md5").update(e).digest("hex").slice(0,6)}`}function D(e,t){return B(e,t)}function B(e,t,n){let i="",r=0;for(;r<e.length;){let s=/^\s+/.exec(e.slice(r));if(s&&(i+=s[0],r+=s[0].length,r>=e.length))break;if(e.slice(r,r+2)==="/*"){let d=e.indexOf("*/",r+2);if(d===-1){i+=e.slice(r);break}i+=e.slice(r,d+2),r=d+2;continue}if(e[r]==="}"){i+="}",r++;continue}let o=e.indexOf("{",r);if(o===-1){i+=e.slice(r);break}let a=e.slice(r,o),u=a.trim(),p=o+1,l=oe(e,o),f=e.slice(p,l);if(u.startsWith("@")){let d=u.split(/\s/)[0];d==="@keyframes"||d==="@-webkit-keyframes"||d==="@font-face"?i+=a+"{"+f+"}":i+=a+"{"+B(f,t)+"}";}else {let d=ae(u,t);i+=a.replace(u,d)+"{"+f+"}";}r=l+1;}return i}function oe(e,t){let n=1,i=t+1;for(;i<e.length&&n>0;)e[i]==="{"?n++:e[i]==="}"&&n--,n>0&&i++;return i}function ae(e,t){return e.split(",").map(n=>{let i=n.trim();return !i||i===":root"||i===":host"||i.includes(t)?n:le(i,t)}).join(",")}function le(e,t){let n=e.split(/(\s*[>+~]\s*|\s+)/);for(let i=n.length-1;i>=0;i--){let r=n[i].trim();if(r&&!ce(r)){if(r.includes("::")){let[s,o]=r.split("::");n[i]=n[i].replace(r,`${s}[${t}]::${o}`);}else if(r.includes(":")){let s=r.indexOf(":"),o=r.slice(0,s),a=r.slice(s);n[i]=n[i].replace(r,`${o}[${t}]${a}`);}else n[i]=n[i].replace(r,`${r}[${t}]`);break}}return n.join("")}function ce(e){return e===">"||e==="+"||e==="~"}function I(e,t={}){let n=t.scopeId??(t.filename?A(t.filename):void 0),r=new Set;r.add("defineComponent");let s=e.script?.content??"",o=e.template?.content??"";fe(s,o,r);let a=t.mode==="server",u="";if(e.template){let m=b(e.template.content);a?u=be(m,r,n):u=ge(m,r,n);}let p="";r.size>0&&(p+=`import { ${[...r].join(", ")} } from '@akashjs/runtime';
|
|
1
|
+
'use strict';var crypto=require('crypto');function y(e){return {script:N(e,"script",(t,n,i,r)=>({content:t,lang:G(n,"lang")??"ts",start:i,end:r})),template:N(e,"template",(t,n,i,r)=>({content:t,start:i,end:r})),style:N(e,"style",(t,n,i,r)=>({content:t,scoped:n.includes("scoped"),start:i,end:r}))}}function N(e,t,n){let i=new RegExp(`<${t}(\\b[^>]*)>`,"i"),r=new RegExp(`</${t}>`,"i"),s=i.exec(e);if(!s)return null;let o=s[1]??"",a=s.index+s[0].length,u=r.exec(e.slice(a));if(!u)return null;let p=a+u.index,l=e.slice(a,p);return n(l.trim(),o,a,p)}function G(e,t){return new RegExp(`${t}=["']([^"']+)["']`).exec(e)?.[1]??null}function b(e){let t=[],n=0;for(;n<e.length;){if(e[n]==="<"){if(e.slice(n,n+4)==="<!--"){let o=e.indexOf("-->",n+4);n=o===-1?e.length:o+3;continue}if(e[n+1]==="/")break;let s=X(e,n);if(s){t.push(s.node),n=s.end;continue}}if(e[n]==="{"){let s=ee(e,n);if(s){t.push(s.node),n=s.end;continue}}let i=ne(e,n+1),r=e.slice(n,i).trim();r&&t.push({type:"text",content:r}),n=i;}return t}function X(e,t){let n=/^<([a-zA-Z][a-zA-Z0-9-]*)/.exec(e.slice(t));if(!n)return null;let i=n[1],r=t+n[0].length,s=[],o=[];for(;r<e.length;){let h=/^\s+/.exec(e.slice(r));if(h&&(r+=h[0].length),e[r]===">"||e.slice(r,r+2)==="/>")break;let c=Y(e,r);c?(c.attr.name.startsWith("bind:")?o.push({name:"bind",arg:c.attr.name.slice(5),value:c.attr.value}):c.attr.name.startsWith(":")?o.push({name:c.attr.name.slice(1),value:c.attr.value}):s.push(c.attr),r=c.end):r++;}let a=i[0]===i[0].toUpperCase();if(e.slice(r,r+2)==="/>")return {node:{type:a?"component":"element",tag:i,attrs:s,directives:o.length>0?o:void 0,children:[]},end:r+2};r++;let u=b(e.slice(r));e.slice(r);let l=`</${i}>`,f=re(e,r,i);if(f===-1)return {node:{type:a?"component":"element",tag:i,attrs:s,directives:o.length>0?o:void 0,children:u},end:e.length};let d=e.slice(r,f),$=b(d);return {node:{type:a?"component":"element",tag:i,attrs:s,directives:o.length>0?o:void 0,children:$},end:f+l.length}}function Y(e,t){let n=/^(?:bind:|[:a-zA-Z_])[\w:.-]*/.exec(e.slice(t));if(!n)return null;let i=n[0],r=t+i.length;if(e[r]!=="=")return {attr:{name:i,value:"true",dynamic:false},end:r};if(r++,e[r]==="{"){let o=z(e,r);if(o)return {attr:{name:i,value:o.content,dynamic:true},end:o.end}}let s=e[r];if(s==='"'||s==="'"){let o=e.indexOf(s,r+1);return o===-1?null:{attr:{name:i,value:e.slice(r+1,o),dynamic:false},end:o+1}}return null}function ee(e,t){let n=z(e,t);return n?{node:{type:"expression",content:n.content},end:n.end}:null}function z(e,t){if(e[t]!=="{")return null;let n=1,i=t+1;for(;i<e.length&&n>0;){let r=e[i];if(r==='"'||r==="'"||r==="`"){i=te(e,i)+1;continue}r==="{"?n++:r==="}"&&n--,i++;}return {content:e.slice(t+1,i-1).trim(),end:i}}function te(e,t){let n=e[t],i=t+1;for(;i<e.length;){if(e[i]==="\\"){i+=2;continue}if(e[i]===n)return i;i++;}return i}function ne(e,t){let n=t;for(;n<e.length;){if(e[n]==="<"||e[n]==="{")return n;n++;}return n}function re(e,t,n){let i=`</${n}>`,r=1,s=t,o=e.length*2,a=0;for(;s<e.length&&a++<o;){let u=e.indexOf(`<${n}`,s),p=e.indexOf(i,s);if(p===-1)return -1;if(u!==-1&&u<p){let l=ie(e,u);l!==-1&&e[l-1]==="/"?s=l+1:l!==-1?(r++,s=l+1):s=u+1;}else {if(r--,r===0)return p;s=p+1;}}return -1}function ie(e,t){let n=t,i=0;for(;n<e.length;){let r=e[n];if(r==="{")i++;else if(r==="}")i--;else if(r===">"&&i===0)return n;n++;}return -1}function A(e){return `data-a-${crypto.createHash("md5").update(e).digest("hex").slice(0,6)}`}function D(e,t){return B(e,t)}function B(e,t,n){let i="",r=0;for(;r<e.length;){let s=/^\s+/.exec(e.slice(r));if(s&&(i+=s[0],r+=s[0].length,r>=e.length))break;if(e.slice(r,r+2)==="/*"){let d=e.indexOf("*/",r+2);if(d===-1){i+=e.slice(r);break}i+=e.slice(r,d+2),r=d+2;continue}if(e[r]==="}"){i+="}",r++;continue}let o=e.indexOf("{",r);if(o===-1){i+=e.slice(r);break}let a=e.slice(r,o),u=a.trim(),p=o+1,l=oe(e,o),f=e.slice(p,l);if(u.startsWith("@")){let d=u.split(/\s/)[0];d==="@keyframes"||d==="@-webkit-keyframes"||d==="@font-face"?i+=a+"{"+f+"}":i+=a+"{"+B(f,t)+"}";}else {let d=ae(u,t);i+=a.replace(u,d)+"{"+f+"}";}r=l+1;}return i}function oe(e,t){let n=1,i=t+1;for(;i<e.length&&n>0;)e[i]==="{"?n++:e[i]==="}"&&n--,n>0&&i++;return i}function ae(e,t){return e.split(",").map(n=>{let i=n.trim();return !i||i===":root"||i===":host"||i.includes(t)?n:le(i,t)}).join(",")}function le(e,t){let n=e.split(/(\s*[>+~]\s*|\s+)/);for(let i=n.length-1;i>=0;i--){let r=n[i].trim();if(r&&!ce(r)){if(r.includes("::")){let[s,o]=r.split("::");n[i]=n[i].replace(r,`${s}[${t}]::${o}`);}else if(r.includes(":")){let s=r.indexOf(":"),o=r.slice(0,s),a=r.slice(s);n[i]=n[i].replace(r,`${o}[${t}]${a}`);}else n[i]=n[i].replace(r,`${r}[${t}]`);break}}return n.join("")}function ce(e){return e===">"||e==="+"||e==="~"}function I(e,t={}){let n=t.scopeId??(t.filename?A(t.filename):void 0),r=new Set;r.add("defineComponent");let s=e.script?.content??"",o=e.template?.content??"";fe(s,o,r);let a=t.mode==="server",u="";if(e.template){let m=b(e.template.content);a?u=be(m,r,n):u=ge(m,r,n);}let p="";r.size>0&&(p+=`import { ${[...r].join(", ")} } from '@akashjs/runtime';
|
|
2
2
|
`);let{cleanScript:l,propsInterface:f}=me(s),{userImports:d,bodyScript:$}=de(l);d.length>0&&(p+=d.join(`
|
|
3
3
|
`)+`
|
|
4
4
|
`);let h=f?`<${f}>`:"";if(p+=`
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
`,p+=` return () => {
|
|
12
12
|
`,p+=u,p+=` };
|
|
13
13
|
`,p+=`});
|
|
14
|
-
`;let c;return e.style&&(c=e.style.scoped&&n?D(e.style.content,n):e.style.content),{code:p,css:c}}function ue(e){let t=e.trim();return !!(/^(?:\([^)]*\)|[a-zA-Z_$]\w*)\s*=>/.test(t)||/^function[\s(]/.test(t))}function pe(e){let t=e.trim();return /^\[/.test(t)&&!t.includes("(")||/^\{/.test(t)&&!t.includes("(")||/^["'`]/.test(t)||/^\d/.test(t)||t==="true"||t==="false"||t==="null"||t==="undefined"||t.startsWith("`")&&!t.includes("(")?false:/\w\(/.test(t)?true:!(/^[a-zA-Z_$][\w$.]*$/.test(t)||!t.includes("("))}function fe(e,t,n){let i=["signal","computed","effect","batch","untrack","onMount","onUnmount","onError","ref","createContext","provide","inject","Show","For"];for(let s of i){let o=new RegExp(`\\b${s}\\b`),a=new RegExp(`import\\s+.*\\b${s}\\b.*from`);o.test(e)&&!a.test(e)&&n.add(s);}let r=["Show","For"];for(let s of r)new RegExp(`<${s}[\\s/>]`).test(t)&&!n.has(s)&&n.add(s);}function de(e){let t=e.split(`
|
|
14
|
+
`;let c;return e.style&&(c=e.style.scoped&&n?D(e.style.content,n):e.style.content),{code:p,css:c}}function ue(e){let t=e.trim();return !!(/^(?:\([^)]*\)|[a-zA-Z_$]\w*)\s*=>/.test(t)||/^function[\s(]/.test(t))}function pe(e){let t=e.trim();return /^\[/.test(t)&&!t.includes("(")||/^\{/.test(t)&&!t.includes("(")||/^["'`]/.test(t)||/^\d/.test(t)||t==="true"||t==="false"||t==="null"||t==="undefined"||t.startsWith("`")&&!t.includes("(")?false:/\w\(/.test(t)||/\bprops\./.test(t)?true:!(/^[a-zA-Z_$][\w$.]*$/.test(t)||!t.includes("("))}function fe(e,t,n){let i=["signal","computed","effect","batch","untrack","onMount","onUnmount","onError","ref","createContext","provide","inject","Show","For"];for(let s of i){let o=new RegExp(`\\b${s}\\b`),a=new RegExp(`import\\s+.*\\b${s}\\b.*from`);o.test(e)&&!a.test(e)&&n.add(s);}let r=["Show","For"];for(let s of r)new RegExp(`<${s}[\\s/>]`).test(t)&&!n.has(s)&&n.add(s);}function de(e){let t=e.split(`
|
|
15
15
|
`),n=[],i=[],r=false,s=false;for(let o of t){if(r){n[n.length-1]+=`
|
|
16
16
|
`+o,(o.includes("from ")||o.trimEnd().endsWith(";"))&&(r=false);continue}if(s){n[n.length-1]+=`
|
|
17
17
|
`+o,(o.trimEnd().endsWith("}")||o.trimEnd().endsWith("};"))&&(s=false);continue}let a=o.trim();/^import\s/.test(a)?(n.push(o.trim()),!a.includes("from ")&&!a.endsWith(";")&&(r=true)):/^export\s+(interface|type|enum)\s/.test(a)?(n.push(o.trim()),!a.endsWith("}")&&!a.endsWith("};")&&!a.endsWith(";")&&(s=true)):/^export\s+(const|let|var|function|class)\s/.test(a)?i.push(o.replace(/\bexport\s+/,"")):/^declare\s/.test(a)?(n.push(o.trim()),!a.endsWith("}")&&!a.endsWith("};")&&!a.endsWith(";")&&(s=true)):i.push(o);}return {userImports:n,bodyScript:i.join(`
|