@akashjs/compiler 0.1.12 → 0.1.13

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 CHANGED
@@ -1,4 +1,4 @@
1
- 'use strict';var crypto=require('crypto');function v(e){return {script:w(e,"script",(t,n,r,i)=>({content:t,lang:Z(n,"lang")??"ts",start:r,end:i})),template:w(e,"template",(t,n,r,i)=>({content:t,start:r,end:i})),style:w(e,"style",(t,n,r,i)=>({content:t,scoped:n.includes("scoped"),start:r,end:i}))}}function w(e,t,n){let r=new RegExp(`<${t}(\\b[^>]*)>`,"i"),i=new RegExp(`</${t}>`,"i"),s=r.exec(e);if(!s)return null;let o=s[1]??"",l=s.index+s[0].length,p=i.exec(e.slice(l));if(!p)return null;let u=l+p.index,c=e.slice(l,u);return n(c.trim(),o,l,u)}function Z(e,t){return new RegExp(`${t}=["']([^"']+)["']`).exec(e)?.[1]??null}function h(e){let t=[],n=0;for(;n<e.length;){if(e[n]==="<"){if(e[n+1]==="/")break;let s=K(e,n);if(s){t.push(s.node),n=s.end;continue}}if(e[n]==="{"){let s=Q(e,n);if(s){t.push(s.node),n=s.end;continue}}let r=X(e,n),i=e.slice(n,r).trim();i&&t.push({type:"text",content:i}),n=r;}return t}function K(e,t){let n=/^<([a-zA-Z][a-zA-Z0-9-]*)/.exec(e.slice(t));if(!n)return null;let r=n[1],i=t+n[0].length,s=[],o=[];for(;i<e.length;){let g=/^\s+/.exec(e.slice(i));if(g&&(i+=g[0].length),e[i]===">"||e.slice(i,i+2)==="/>")break;let f=q(e,i);f?(f.attr.name.startsWith("bind:")?o.push({name:"bind",arg:f.attr.name.slice(5),value:f.attr.value}):f.attr.name.startsWith(":")?o.push({name:f.attr.name.slice(1),value:f.attr.value}):s.push(f.attr),i=f.end):i++;}let l=r[0]===r[0].toUpperCase();if(e.slice(i,i+2)==="/>")return {node:{type:l?"component":"element",tag:r,attrs:s,directives:o.length>0?o:void 0,children:[]},end:i+2};i++;let p=h(e.slice(i));e.slice(i);let c=`</${r}>`,a=Y(e,i,r);if(a===-1)return {node:{type:l?"component":"element",tag:r,attrs:s,directives:o.length>0?o:void 0,children:p},end:e.length};let m=e.slice(i,a),d=h(m);return {node:{type:l?"component":"element",tag:r,attrs:s,directives:o.length>0?o:void 0,children:d},end:a+c.length}}function q(e,t){let n=/^(?:bind:|[:a-zA-Z_])[\w:.-]*/.exec(e.slice(t));if(!n)return null;let r=n[0],i=t+r.length;if(e[i]!=="=")return {attr:{name:r,value:"true",dynamic:false},end:i};if(i++,e[i]==="{"){let o=M(e,i);if(o)return {attr:{name:r,value:o.content,dynamic:true},end:o.end}}let s=e[i];if(s==='"'||s==="'"){let o=e.indexOf(s,i+1);return o===-1?null:{attr:{name:r,value:e.slice(i+1,o),dynamic:false},end:o+1}}return null}function Q(e,t){let n=M(e,t);return n?{node:{type:"expression",content:n.content},end:n.end}:null}function M(e,t){if(e[t]!=="{")return null;let n=1,r=t+1;for(;r<e.length&&n>0;){let i=e[r];if(i==='"'||i==="'"||i==="`"){r=G(e,r)+1;continue}i==="{"?n++:i==="}"&&n--,r++;}return {content:e.slice(t+1,r-1).trim(),end:r}}function G(e,t){let n=e[t],r=t+1;for(;r<e.length;){if(e[r]==="\\"){r+=2;continue}if(e[r]===n)return r;r++;}return r}function X(e,t){let n=t;for(;n<e.length;){if(e[n]==="<"||e[n]==="{")return n;n++;}return n}function Y(e,t,n){let r=`</${n}>`,i=1,s=t,o=e.length*2,l=0;for(;s<e.length&&l++<o;){let p=e.indexOf(`<${n}`,s),u=e.indexOf(r,s);if(u===-1)return -1;if(p!==-1&&p<u){let c=ee(e,p);c!==-1&&e[c-1]==="/"?s=c+1:c!==-1?(i++,s=c+1):s=p+1;}else {if(i--,i===0)return u;s=u+1;}}return -1}function ee(e,t){let n=t,r=0;for(;n<e.length;){let i=e[n];if(i==="{")r++;else if(i==="}")r--;else if(i===">"&&r===0)return n;n++;}return -1}function N(e){return `data-a-${crypto.createHash("md5").update(e).digest("hex").slice(0,6)}`}function R(e,t){return P(e,t)}function P(e,t,n){let r="",i=0;for(;i<e.length;){let s=/^\s+/.exec(e.slice(i));if(s&&(r+=s[0],i+=s[0].length,i>=e.length))break;if(e.slice(i,i+2)==="/*"){let m=e.indexOf("*/",i+2);if(m===-1){r+=e.slice(i);break}r+=e.slice(i,m+2),i=m+2;continue}if(e[i]==="}"){r+="}",i++;continue}let o=e.indexOf("{",i);if(o===-1){r+=e.slice(i);break}let l=e.slice(i,o),p=l.trim(),u=o+1,c=ne(e,o),a=e.slice(u,c);if(p.startsWith("@")){let m=p.split(/\s/)[0];m==="@keyframes"||m==="@-webkit-keyframes"||m==="@font-face"?r+=l+"{"+a+"}":r+=l+"{"+P(a,t)+"}";}else {let m=re(p,t);r+=l.replace(p,m)+"{"+a+"}";}i=c+1;}return r}function ne(e,t){let n=1,r=t+1;for(;r<e.length&&n>0;)e[r]==="{"?n++:e[r]==="}"&&n--,n>0&&r++;return r}function re(e,t){return e.split(",").map(n=>{let r=n.trim();return !r||r===":root"||r===":host"||r.includes(t)?n:ie(r,t)}).join(",")}function ie(e,t){let n=e.split(/(\s*[>+~]\s*|\s+)/);for(let r=n.length-1;r>=0;r--){let i=n[r].trim();if(i&&!se(i)){if(i.includes("::")){let[s,o]=i.split("::");n[r]=n[r].replace(i,`${s}[${t}]::${o}`);}else if(i.includes(":")){let s=i.indexOf(":"),o=i.slice(0,s),l=i.slice(s);n[r]=n[r].replace(i,`${o}[${t}]${l}`);}else n[r]=n[r].replace(i,`${i}[${t}]`);break}}return n.join("")}function se(e){return e===">"||e==="+"||e==="~"}function O(e,t={}){let n=t.scopeId??(t.filename?N(t.filename):void 0),i=new Set;i.add("defineComponent");let s=e.script?.content??"",o=e.template?.content??"";le(s,o,i);let l=t.mode==="server",p="";if(e.template){let b=h(e.template.content);l?p=fe(b,i,n):p=pe(b,i,n);}let u="";i.size>0&&(u+=`import { ${[...i].join(", ")} } from '@akashjs/runtime';
1
+ 'use strict';var crypto=require('crypto');function v(e){return {script:w(e,"script",(t,n,r,i)=>({content:t,lang:Z(n,"lang")??"ts",start:r,end:i})),template:w(e,"template",(t,n,r,i)=>({content:t,start:r,end:i})),style:w(e,"style",(t,n,r,i)=>({content:t,scoped:n.includes("scoped"),start:r,end:i}))}}function w(e,t,n){let r=new RegExp(`<${t}(\\b[^>]*)>`,"i"),i=new RegExp(`</${t}>`,"i"),s=r.exec(e);if(!s)return null;let o=s[1]??"",l=s.index+s[0].length,p=i.exec(e.slice(l));if(!p)return null;let u=l+p.index,c=e.slice(l,u);return n(c.trim(),o,l,u)}function Z(e,t){return new RegExp(`${t}=["']([^"']+)["']`).exec(e)?.[1]??null}function h(e){let t=[],n=0;for(;n<e.length;){if(e[n]==="<"){if(e[n+1]==="/")break;let s=K(e,n);if(s){t.push(s.node),n=s.end;continue}}if(e[n]==="{"){let s=Q(e,n);if(s){t.push(s.node),n=s.end;continue}}let r=X(e,n+1),i=e.slice(n,r).trim();i&&t.push({type:"text",content:i}),n=r;}return t}function K(e,t){let n=/^<([a-zA-Z][a-zA-Z0-9-]*)/.exec(e.slice(t));if(!n)return null;let r=n[1],i=t+n[0].length,s=[],o=[];for(;i<e.length;){let g=/^\s+/.exec(e.slice(i));if(g&&(i+=g[0].length),e[i]===">"||e.slice(i,i+2)==="/>")break;let f=q(e,i);f?(f.attr.name.startsWith("bind:")?o.push({name:"bind",arg:f.attr.name.slice(5),value:f.attr.value}):f.attr.name.startsWith(":")?o.push({name:f.attr.name.slice(1),value:f.attr.value}):s.push(f.attr),i=f.end):i++;}let l=r[0]===r[0].toUpperCase();if(e.slice(i,i+2)==="/>")return {node:{type:l?"component":"element",tag:r,attrs:s,directives:o.length>0?o:void 0,children:[]},end:i+2};i++;let p=h(e.slice(i));e.slice(i);let c=`</${r}>`,a=Y(e,i,r);if(a===-1)return {node:{type:l?"component":"element",tag:r,attrs:s,directives:o.length>0?o:void 0,children:p},end:e.length};let m=e.slice(i,a),d=h(m);return {node:{type:l?"component":"element",tag:r,attrs:s,directives:o.length>0?o:void 0,children:d},end:a+c.length}}function q(e,t){let n=/^(?:bind:|[:a-zA-Z_])[\w:.-]*/.exec(e.slice(t));if(!n)return null;let r=n[0],i=t+r.length;if(e[i]!=="=")return {attr:{name:r,value:"true",dynamic:false},end:i};if(i++,e[i]==="{"){let o=M(e,i);if(o)return {attr:{name:r,value:o.content,dynamic:true},end:o.end}}let s=e[i];if(s==='"'||s==="'"){let o=e.indexOf(s,i+1);return o===-1?null:{attr:{name:r,value:e.slice(i+1,o),dynamic:false},end:o+1}}return null}function Q(e,t){let n=M(e,t);return n?{node:{type:"expression",content:n.content},end:n.end}:null}function M(e,t){if(e[t]!=="{")return null;let n=1,r=t+1;for(;r<e.length&&n>0;){let i=e[r];if(i==='"'||i==="'"||i==="`"){r=G(e,r)+1;continue}i==="{"?n++:i==="}"&&n--,r++;}return {content:e.slice(t+1,r-1).trim(),end:r}}function G(e,t){let n=e[t],r=t+1;for(;r<e.length;){if(e[r]==="\\"){r+=2;continue}if(e[r]===n)return r;r++;}return r}function X(e,t){let n=t;for(;n<e.length;){if(e[n]==="<"||e[n]==="{")return n;n++;}return n}function Y(e,t,n){let r=`</${n}>`,i=1,s=t,o=e.length*2,l=0;for(;s<e.length&&l++<o;){let p=e.indexOf(`<${n}`,s),u=e.indexOf(r,s);if(u===-1)return -1;if(p!==-1&&p<u){let c=ee(e,p);c!==-1&&e[c-1]==="/"?s=c+1:c!==-1?(i++,s=c+1):s=p+1;}else {if(i--,i===0)return u;s=u+1;}}return -1}function ee(e,t){let n=t,r=0;for(;n<e.length;){let i=e[n];if(i==="{")r++;else if(i==="}")r--;else if(i===">"&&r===0)return n;n++;}return -1}function N(e){return `data-a-${crypto.createHash("md5").update(e).digest("hex").slice(0,6)}`}function R(e,t){return P(e,t)}function P(e,t,n){let r="",i=0;for(;i<e.length;){let s=/^\s+/.exec(e.slice(i));if(s&&(r+=s[0],i+=s[0].length,i>=e.length))break;if(e.slice(i,i+2)==="/*"){let m=e.indexOf("*/",i+2);if(m===-1){r+=e.slice(i);break}r+=e.slice(i,m+2),i=m+2;continue}if(e[i]==="}"){r+="}",i++;continue}let o=e.indexOf("{",i);if(o===-1){r+=e.slice(i);break}let l=e.slice(i,o),p=l.trim(),u=o+1,c=ne(e,o),a=e.slice(u,c);if(p.startsWith("@")){let m=p.split(/\s/)[0];m==="@keyframes"||m==="@-webkit-keyframes"||m==="@font-face"?r+=l+"{"+a+"}":r+=l+"{"+P(a,t)+"}";}else {let m=re(p,t);r+=l.replace(p,m)+"{"+a+"}";}i=c+1;}return r}function ne(e,t){let n=1,r=t+1;for(;r<e.length&&n>0;)e[r]==="{"?n++:e[r]==="}"&&n--,n>0&&r++;return r}function re(e,t){return e.split(",").map(n=>{let r=n.trim();return !r||r===":root"||r===":host"||r.includes(t)?n:ie(r,t)}).join(",")}function ie(e,t){let n=e.split(/(\s*[>+~]\s*|\s+)/);for(let r=n.length-1;r>=0;r--){let i=n[r].trim();if(i&&!se(i)){if(i.includes("::")){let[s,o]=i.split("::");n[r]=n[r].replace(i,`${s}[${t}]::${o}`);}else if(i.includes(":")){let s=i.indexOf(":"),o=i.slice(0,s),l=i.slice(s);n[r]=n[r].replace(i,`${o}[${t}]${l}`);}else n[r]=n[r].replace(i,`${i}[${t}]`);break}}return n.join("")}function se(e){return e===">"||e==="+"||e==="~"}function O(e,t={}){let n=t.scopeId??(t.filename?N(t.filename):void 0),i=new Set;i.add("defineComponent");let s=e.script?.content??"",o=e.template?.content??"";le(s,o,i);let l=t.mode==="server",p="";if(e.template){let b=h(e.template.content);l?p=fe(b,i,n):p=pe(b,i,n);}let u="";i.size>0&&(u+=`import { ${[...i].join(", ")} } from '@akashjs/runtime';
2
2
  `);let{cleanScript:c,propsInterface:a}=ue(s),{userImports:m,bodyScript:d}=ce(c);m.length>0&&(u+=m.join(`
3
3
  `)+`
4
4
  `);let g=a?`<${a}>`:"";if(u+=`