@salty-css/vite 0.0.1-alpha.208 → 0.0.1-alpha.209
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/index.cjs +12 -12
- package/index.js +114 -110
- package/package.json +2 -2
package/index.cjs
CHANGED
@@ -1,42 +1,42 @@
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const kt=require("esbuild"),_t=require("child_process"),
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const kt=require("esbuild"),_t=require("child_process"),l=require("path"),d=require("fs"),tt=require("fs/promises"),B=require("winston");var rt=typeof document<"u"?document.currentScript:null;function Dt(t){const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const s in t)if(s!=="default"){const n=Object.getOwnPropertyDescriptor(t,s);Object.defineProperty(e,s,n.get?n:{enumerable:!0,get:()=>t[s]})}}return e.default=t,Object.freeze(e)}const gt=Dt(kt),pt=t=>String.fromCharCode(t+(t>25?39:97)),Ot=(t,e)=>{let s="",n;for(n=Math.abs(t);n>52;n=n/52|0)s=pt(n%52)+s;return s=pt(n%52)+s,s.length<e?s=s.padStart(e,"a"):s.length>e&&(s=s.slice(-e)),s},Et=(t,e)=>{let s=e.length;for(;s;)t=t*33^e.charCodeAt(--s);return t},v=(t,e=5)=>{const s=Et(5381,JSON.stringify(t))>>>0;return Ot(s,e)};function V(t){return t?typeof t!="string"?V(String(t)):t.replace(/[\s.]/g,"-").replace(/[A-Z](?:(?=[^A-Z])|[A-Z]*(?=[A-Z][^A-Z]|$))/g,(e,s)=>(s>0?"-":"")+e.toLowerCase()):""}const Tt=t=>e=>{if(typeof e!="string"||!t)return;let s=e;const n=[];return Object.values(t).forEach(o=>{const{pattern:r,transform:a}=o;s=s.replace(r,g=>{const{value:C,css:f}=a(g);return f&&n.push(f),C})}),{transformed:s,additionalCss:n}},ht=t=>e=>typeof e!="string"||!/\{[^{}]+\}/g.test(e)?void 0:{transformed:e.replace(/\{([^{}]+)\}/g,(...o)=>`var(--${V(o[1].replaceAll(".","-"))})`)},Mt=ht(),Rt=["top","right","bottom","left","min-width",/.*width.*/,/^[^line]*height.*/,/padding.*/,/margin.*/,/border.*/,/inset.*/,/.*radius.*/,/.*spacing.*/,/.*gap.*/,/.*indent.*/,/.*offset.*/,/.*size.*/,/.*thickness.*/,/.*font-size.*/],Vt=(t,e,s)=>Rt.some(o=>typeof o=="string"?o===t:o.test(t))?`${e}px`:`${e}`,At=["Webkit","Moz","ms","O"],Jt=t=>t.startsWith("-")?t:At.some(e=>t.startsWith(e))?`-${V(t)}`:V(t),Y=async(t,e="",s,n=!1)=>{if(!t)throw new Error("No styles provided to parseStyles function!");const o=new Set,a=Object.entries(t).map(async([m,i])=>{const y=m.trim(),k=Jt(y),P=(_,T=";")=>`${k}:${_}${T}`;if(typeof i=="function"&&(i=i({scope:e,config:s})),i instanceof Promise&&(i=await i),typeof i=="object"){if(!i)return;if(i.isColor)return P(i.toString());if(y==="defaultVariants")return;if(y==="variants"){const j=Object.entries(i);for(const[D,c]of j){if(!c)return;const h=Object.entries(c);for(const[b,u]of h){if(!u)return;const S=`${e}.${D}-${b}`;(await Y(u,S,s)).forEach(M=>o.add(M))}}return}if(y==="compoundVariants"){for(const j of i){const{css:D,...c}=j,h=Object.entries(c).reduce((u,[S,N])=>`${u}.${S}-${N}`,e);(await Y(D,h,s)).forEach(u=>o.add(u))}return}if(y.startsWith("@")){const j=y,D=await G(i,e,s),c=`${j} { ${D} }`;o.add(c);return}const _=m.includes("&")?y.replace("&",e):y.startsWith(":")?`${e}${y}`:`${e} ${y}`;(await Y(i,_,s)).forEach(j=>o.add(j));return}if(typeof i=="number"){const _=Vt(k,i);return P(_)}if(typeof i!="string")if("toString"in i)i=i.toString();else throw new Error(`Invalid value type for property ${k}`);return P(i)}),{modifiers:g}={},C=[ht(),Tt(g)],p=(await Promise.all(a).then(m=>Promise.all(m.map(i=>C.reduce(async(y,k)=>{const P=await y;if(!P)return P;const R=await k(P);if(!R)return P;const{transformed:_,additionalCss:T}=R;let j="";if(T)for(const D of T)j+=await G(D,"");return`${j}${_}`},Promise.resolve(i)))))).filter(m=>m!==void 0).join(`
|
2
2
|
`);if(!p.trim())return Array.from(o);const w=e?`${e} {
|
3
3
|
${p}
|
4
4
|
}`:p;return o.has(w)?Array.from(o):[w,...o]},G=async(t,e,s,n=!1)=>(await Y(t,e,s,n)).join(`
|
5
5
|
`),wt=async(t,e=[])=>{if(!t)return"";const s=[],n={};for(const[o,r]of Object.entries(t))if(typeof r!="function")if(r&&typeof r=="object"){const a=o.trim(),g=await wt(r,[...e,a]);s.push(g)}else n[o]=r;if(Object.keys(n).length){const o=e.map(V).join("-"),r="t_"+v(o,4),a=await G(n,`.${o}, .${r}`);s.push(a)}return s.join(`
|
6
|
-
`)},vt=t=>t?Object.entries(t).reduce((e,[s,n])=>(typeof n=="function"?e[s]="any":typeof n=="object"&&(e[s]=$t(n).map(o=>`"${o}"`).join(" | ")),e),{}):{},$t=(t,e="",s=new Set)=>t?(Object.entries(t).forEach(([n,o])=>{const r=e?`${e}.${n}`:n;return typeof o=="object"?$t(o,r,s):s.add(e)}),[...s]):[],bt=t=>{if(!t||t==="/")throw new Error("Could not find package.json file");const e=
|
6
|
+
`)},vt=t=>t?Object.entries(t).reduce((e,[s,n])=>(typeof n=="function"?e[s]="any":typeof n=="object"&&(e[s]=$t(n).map(o=>`"${o}"`).join(" | ")),e),{}):{},$t=(t,e="",s=new Set)=>t?(Object.entries(t).forEach(([n,o])=>{const r=e?`${e}.${n}`:n;return typeof o=="object"?$t(o,r,s):s.add(e)}),[...s]):[],bt=t=>{if(!t||t==="/")throw new Error("Could not find package.json file");const e=l.join(t,"package.json");return d.existsSync(e)?e:bt(l.join(t,".."))},zt=async t=>{const e=bt(t);return await tt.readFile(e,"utf-8").then(JSON.parse).catch(()=>{})},Wt=async t=>{const e=await zt(t);if(e)return e.type};let I;const St=async t=>{if(I)return I;const e=await Wt(t);return e==="module"?I="esm":(e==="commonjs"||(typeof document>"u"?require("url").pathToFileURL(__filename).href:rt&&rt.tagName.toUpperCase()==="SCRIPT"&&rt.src||new URL("index.cjs",document.baseURI).href).endsWith(".cjs"))&&(I="cjs"),I||"esm"},it=B.createLogger({level:"debug",format:B.format.combine(B.format.colorize(),B.format.cli()),transports:[new B.transports.Console({})]});function jt(t){return t?typeof t!="string"?jt(String(t)):t.replace(/[\s-]/g,".").replace(/[A-Z](?:(?=[^A-Z])|[A-Z]*(?=[A-Z][^A-Z]|$))/g,(e,s)=>(s>0?".":"")+e.toLowerCase()):""}const It={"*, *::before, *::after":{boxSizing:"border-box"},"*":{margin:0},html:{lineHeight:1.15,textSizeAdjust:"100%",WebkitFontSmoothing:"antialiased"},"img, picture, video, canvas, svg":{display:"block",maxWidth:"100%"},"p, h1, h2, h3, h4, h5, h6":{overflowWrap:"break-word"},p:{textWrap:"pretty"},"h1, h2, h3, h4, h5, h6":{textWrap:"balance"},a:{color:"currentColor"},button:{lineHeight:"1em",color:"currentColor"},"input, optgroup, select, textarea":{fontFamily:"inherit",fontSize:"100%",lineHeight:"1.15em"}},Z=(...t)=>t.flat().reduce((e,s)=>s!=null&&s._current?{...e,...s._current}:{...e,...s},{}),Zt=(...t)=>t.flat().reduce((e,s)=>({...e,...s._children}),{}),J={externalModules:[],rcFile:void 0,destDir:void 0},Ft=t=>{if(J.externalModules.length>0)return J.externalModules;const s=d.readFileSync(t,"utf8").match(/externalModules:\s?\[(.*)\]/);if(!s)return[];const n=s[1].split(",").map(o=>o.replace(/['"`]/g,"").trim());return J.externalModules=n,n},z=async t=>{if(J.destDir)return J.destDir;const e=await at(t),s=l.join(t,(e==null?void 0:e.saltygenDir)||"saltygen");return J.destDir=s,s},Ct=["salty","css","styles","styled"],qt=(t=[])=>new RegExp(`\\.(${[...Ct,...t].join("|")})\\.`),q=(t,e=[])=>qt(e).test(t),Pt=async t=>{if(J.rcFile)return J.rcFile;if(t==="/")throw new Error("Could not find .saltyrc.json file");const e=l.join(t,".saltyrc.json"),s=await tt.readFile(e,"utf-8").then(JSON.parse).catch(()=>{});return s?(J.rcFile=s,s):Pt(l.join(t,".."))},at=async t=>{var n,o;const e=await Pt(t),s=(n=e.projects)==null?void 0:n.find(r=>t.endsWith(r.dir||""));return s||((o=e.projects)==null?void 0:o.find(r=>r.dir===e.defaultProject))},Ht=async t=>{const e=await at(t),s=await z(t),n=l.join(t,(e==null?void 0:e.configDir)||"","salty.config.ts"),o=l.join(s,"salty.config.js"),r=await St(t),a=Ft(n);await gt.build({entryPoints:[n],minify:!0,treeShaking:!0,bundle:!0,outfile:o,format:r,external:a});const g=Date.now(),{config:C}=await import(`${o}?t=${g}`);return C},Lt=async(t,e)=>{var ft,ut;const s=await z(t),n={mediaQueries:[],globalStyles:[],variables:[],templates:[]};await Promise.all([...e].map(async F=>{const{contents:x,outputFilePath:A}=await et(t,F,s);Object.entries(x).forEach(([O,E])=>{E.isMedia?n.mediaQueries.push([O,E]):E.isGlobalDefine?n.globalStyles.push(E):E.isDefineVariables?n.variables.push(E):E.isDefineTemplates&&n.templates.push(E._setPath(A))})}));const o=await Ht(t),r={...o},a=new Set,g=(F,x=[])=>F?Object.entries(F).flatMap(([A,O])=>{if(!O)return;if(typeof O=="object")return g(O,[...x,A]);const E=jt(A),nt=V(A),ot=[...x,E].join(".");a.add(`"${ot}"`);const X=[...x.map(V),nt].join("-"),dt=Mt(O);return dt?`--${X}: ${dt.transformed};`:`--${X}: ${O};`}):[],C=F=>F?Object.entries(F).flatMap(([x,A])=>{const O=g(A);return x==="base"?O.join(""):`${x} { ${O.join("")} }`}):[],f=F=>F?Object.entries(F).flatMap(([x,A])=>Object.entries(A).flatMap(([O,E])=>{const nt=g(E,[x]),ot=`.${x}-${O}, [data-${x}="${O}"]`,X=nt.join("");return`${ot} { ${X} }`})):[],p=F=>({...F,responsive:void 0,conditional:void 0}),w=F=>n.variables.map(x=>F==="static"?p(x._current):x._current[F]),$=Z(p(o.variables),w("static")),m=g($),i=Z((ft=o.variables)==null?void 0:ft.responsive,w("responsive")),y=C(i),k=Z((ut=o.variables)==null?void 0:ut.conditional,w("conditional")),P=f(k),R=l.join(s,"css/_variables.css"),_=`:root { ${m.join("")} ${y.join("")} } ${P.join("")}`;d.writeFileSync(R,_),r.staticVariables=$;const T=l.join(s,"css/_global.css"),j=Z(o.global,n.globalStyles),D=await G(j,"");d.writeFileSync(T,`@layer global { ${D} }`);const c=l.join(s,"css/_reset.css"),b=o.reset==="none"?{}:typeof o.reset=="object"?o.reset:It,u=await G(b,"");d.writeFileSync(c,`@layer reset { ${u} }`);const S=l.join(s,"css/_templates.css"),N=Z(o.templates,n.templates),M=await wt(N),H=vt(N);d.writeFileSync(S,`@layer templates { ${M} }`),r.templates=N;const L=Zt(n.templates);r.templatePaths=Object.fromEntries(Object.entries(L).map(([F,x])=>[F,x._path]));const{mediaQueries:W}=n;r.mediaQueries=Object.fromEntries(W.map(([F,x])=>[`@${F}`,x]));const K=W.map(([F])=>`'@${F}'`).join(" | "),st=l.join(s,"types/css-tokens.d.ts"),Q=`
|
7
7
|
// Variable types
|
8
8
|
type VariableTokens = ${[...a].join("|")};
|
9
9
|
type PropertyValueToken = \`{\${VariableTokens}}\`;
|
10
10
|
|
11
11
|
// Template types
|
12
12
|
type TemplateTokens = {
|
13
|
-
${Object.entries(H).map(([F,
|
13
|
+
${Object.entries(H).map(([F,x])=>`${F}?: ${x}`).join(`
|
14
14
|
`)}
|
15
15
|
}
|
16
16
|
|
17
17
|
// Media query types
|
18
18
|
type MediaQueryKeys = ${K||"''"};
|
19
|
-
`;d.writeFileSync(st,Q);const
|
19
|
+
`;d.writeFileSync(st,Q);const Nt=l.join(s,"cache/config-cache.json");d.writeFileSync(Nt,JSON.stringify(r,null,2))},yt=t=>t.replace(/styled\(([^"'`{,]+),/g,(e,s)=>{if(/^['"`]/.test(s))return e;const o=new RegExp(`import[^;]*${s}[,\\s{][^;]*from\\s?([^{};]+);`);if(!o.test(t))return e;const a=o.exec(t);if(a){const g=a.at(1);if(Ct.some(f=>g==null?void 0:g.includes(f)))return e}return"styled('div',"}),Bt=(t,e)=>{try{const s=d.readFileSync(l.join(e,"saltygen/cache/config-cache.json"),"utf8");return s?`globalThis.saltyConfig = ${s};
|
20
20
|
|
21
21
|
${t}`:`globalThis.saltyConfig = {};
|
22
22
|
|
23
|
-
${t}`}catch{return t}},et=async(t,e,s)=>{const n=v(e),o=
|
24
|
-
`),
|
23
|
+
${t}`}catch{return t}},et=async(t,e,s)=>{const n=v(e),o=l.join(s,"./temp");d.existsSync(o)||d.mkdirSync(o);const r=l.parse(e);let a=d.readFileSync(e,"utf8");a=yt(a),a=Bt(a,t);const g=l.join(s,"js",n+".js"),C=await at(t),f=l.join(t,(C==null?void 0:C.configDir)||"","salty.config.ts"),p=Ft(f),w=await St(t);await gt.build({stdin:{contents:a,sourcefile:r.base,resolveDir:r.dir,loader:"tsx"},minify:!1,treeShaking:!0,bundle:!0,outfile:g,format:w,target:["node20"],keepNames:!0,external:p,packages:"external",plugins:[{name:"test",setup:i=>{i.onLoad({filter:/.*\.css|salty|styles|styled\.ts/},y=>{const k=d.readFileSync(y.path,"utf8");return{contents:yt(k),loader:"ts"}})}}]});const $=Date.now();return{contents:await import(`${g}?t=${$}`),outputFilePath:g}},Gt=async t=>{const e=await z(t),s=l.join(e,"cache/config-cache.json"),n=d.readFileSync(s,"utf8");if(!n)throw new Error("Could not find config cache file");return JSON.parse(n)},ct=async t=>{const e=await Gt(t),s=await z(t),n=l.join(s,"salty.config.js"),o=Date.now(),{config:r}=await import(`${n}?t=${o}`);return Z(r,e)},lt=()=>{try{return process.env.NODE_ENV==="production"}catch{return!1}},Kt=async(t,e=lt(),s=!0)=>{try{const n=Date.now();e?it.info("Generating CSS in production mode! 🔥"):it.info("Generating CSS in development mode! 🚀");const o=[],r=[],a=await z(t),g=l.join(a,"index.css");s&&(()=>{d.existsSync(a)&&_t.execSync("rm -rf "+a),d.mkdirSync(a,{recursive:!0}),d.mkdirSync(l.join(a,"css")),d.mkdirSync(l.join(a,"types")),d.mkdirSync(l.join(a,"js")),d.mkdirSync(l.join(a,"cache"))})();const f=new Set,p=new Set;async function w(c){const h=["node_modules","saltygen"],b=d.statSync(c);if(b.isDirectory()){const u=d.readdirSync(c);if(h.some(N=>c.includes(N)))return;await Promise.all(u.map(N=>w(l.join(c,N))))}else if(b.isFile()&&q(c)){f.add(c);const S=d.readFileSync(c,"utf8");/define[\w\d]+\(/.test(S)&&p.add(c)}}await w(t),await Lt(t,p);const $={keyframes:[],components:[],classNames:[]};await Promise.all([...f].map(async c=>{const{contents:h}=await et(t,c,a);Object.entries(h).forEach(([b,u])=>{u.isKeyframes?$.keyframes.push({value:u,src:c,name:b}):u.isClassName?$.classNames.push({...u,src:c,name:b}):u.generator&&$.components.push({...u,src:c,name:b})})}));const m=await ct(t);for(const c of $.keyframes){const{value:h}=c,b=`a_${h.animationName}.css`,u=`css/${b}`,S=l.join(a,u);o.push(b),d.writeFileSync(S,h.css)}const i={};for(const c of $.components){const{src:h,name:b}=c;i[h]||(i[h]=[]);const u=c.generator._withBuildContext({callerName:b,isProduction:e,config:m});r[u.priority]||(r[u.priority]=[]);const S=await u.css;if(!S)continue;r[u.priority].push(u.cssFileName);const N=`css/${u.cssFileName}`,M=l.join(a,N);d.writeFileSync(M,S),m.importStrategy==="component"&&i[h].push(u.cssFileName)}for(const c of $.classNames){const{src:h,name:b}=c;i[h]||(i[h]=[]);const u=c.generator._withBuildContext({callerName:b,isProduction:e,config:m}),S=await u.css;if(!S)continue;r[0].push(u.cssFileName);const N=`css/${u.cssFileName}`,M=l.join(a,N);d.writeFileSync(M,S),m.importStrategy==="component"&&i[h].push(u.cssFileName)}m.importStrategy==="component"&&Object.entries(i).forEach(([c,h])=>{const b=h.map(H=>`@import url('./${H}');`).join(`
|
24
|
+
`),u=v(c,6),S=l.parse(c),N=V(S.name),M=l.join(a,`css/f_${N}-${u}.css`);d.writeFileSync(M,b||"/* Empty file */")});const y=o.map(c=>`@import url('./css/${c}');`).join(`
|
25
25
|
`);let _=`@layer reset, global, templates, l0, l1, l2, l3, l4, l5, l6, l7, l8;
|
26
26
|
|
27
|
-
${["_variables.css","_reset.css","_global.css","_templates.css"].filter(c=>{try{return d.readFileSync(
|
27
|
+
${["_variables.css","_reset.css","_global.css","_templates.css"].filter(c=>{try{return d.readFileSync(l.join(a,"css",c),"utf8").length>0}catch{return!1}}).map(c=>`@import url('./css/${c}');`).join(`
|
28
28
|
`)}
|
29
|
-
${y}`;if(m.importStrategy!=="component"){const c=r.reduce((h,b,
|
29
|
+
${y}`;if(m.importStrategy!=="component"){const c=r.reduce((h,b,u)=>{const S=b.reduce((L,W)=>{var Q;const K=l.join(a,"css",W),st=d.readFileSync(K,"utf8"),U=((Q=/.*-([^-]+)-\d+.css/.exec(W))==null?void 0:Q.at(1))||v(K,6);return L.includes(U)?L:`${L}
|
30
30
|
/*start:${U}-${W}*/
|
31
31
|
${st}
|
32
32
|
/*end:${U}*/
|
33
|
-
`},""),
|
33
|
+
`},""),N=`l_${u}.css`,M=l.join(a,"css",N),H=`@layer l${u} { ${S}
|
34
34
|
}`;return d.writeFileSync(M,H),`${h}
|
35
|
-
@import url('./css/${
|
35
|
+
@import url('./css/${N}');`},"");_+=c}d.writeFileSync(g,_);const j=Date.now()-n,D=j<200?"🔥":j<500?"🚀":j<1e3?"🎉":j<2e3?"🚗":j<5e3?"🤔":"🥴";it.info(`Generated CSS in ${j}ms! ${D}`)}catch(n){console.error(n)}},Ut=async(t,e,s=lt())=>{try{const n=await z(t);if(q(e)){const r=[],a=await ct(t),{contents:g}=await et(t,e,n);for(const[C,f]of Object.entries(g)){if(f.isKeyframes&&f.css){const y=`css/${`a_${f.animationName}.css`}`,k=l.join(n,y);d.writeFileSync(k,await f.css);return}if(f.isClassName){const i=f.generator._withBuildContext({callerName:C,isProduction:s,config:a}),y=await i.css;if(!y)continue;r[0].push(i.cssFileName);const k=`css/${i.cssFileName}`,P=l.join(n,k);d.writeFileSync(P,y)}if(!f.generator)return;const p=f.generator._withBuildContext({callerName:C,isProduction:s,config:a}),w=await p.css;if(!w)continue;const $=`css/${p.cssFileName}`,m=l.join(n,$);d.writeFileSync(m,w),r[p.priority]||(r[p.priority]=[]),r[p.priority].push(p.cssFileName)}if(a.importStrategy!=="component")r.forEach((C,f)=>{const p=`l_${f}.css`,w=l.join(n,"css",p);let $=d.readFileSync(w,"utf8");C.forEach(m=>{var P;const i=l.join(n,"css",m),y=((P=/.*-([^-]+)-\d+.css/.exec(m))==null?void 0:P.at(1))||v(i,6);if(!$.includes(y)){const R=d.readFileSync(i,"utf8"),_=`/*start:${y}-${m}*/
|
36
36
|
${R}
|
37
37
|
/*end:${y}*/
|
38
38
|
`;$=`${$.replace(/\}$/,"")}
|
39
39
|
${_}
|
40
40
|
}`}}),d.writeFileSync(w,$)});else{const C=r.flat().map(m=>`@import url('./${m}');`).join(`
|
41
|
-
`),
|
42
|
-
${
|
41
|
+
`),f=v(e,6),p=l.parse(e),w=V(p.name),$=l.join(n,`css/f_${w}-${f}.css`);d.writeFileSync($,C||"/* Empty file */")}}}catch(n){console.error(n)}},Qt=async(t,e,s=lt())=>{try{const n=await z(t);if(q(e)){const r=d.readFileSync(e,"utf8");r.replace(/^(?!export\s)const\s.*/gm,p=>`export ${p}`)!==r&&await tt.writeFile(e,r);const g=await ct(t),{contents:C}=await et(t,e,n);let f=r;if(Object.entries(C).forEach(([p,w])=>{var u;if(w.isKeyframes||!w.generator)return;const $=w.generator._withBuildContext({callerName:p,isProduction:s,config:g}),m=new RegExp(`\\s${p}[=\\s]+[^()]+styled\\(([^,]+),`,"g").exec(r);if(!m)return console.error("Could not find the original declaration");const i=(u=m.at(1))==null?void 0:u.trim(),y=new RegExp(`\\s${p}[=\\s]+styled\\(`,"g").exec(f);if(!y)return console.error("Could not find the original declaration");const{index:k}=y;let P=!1;const R=setTimeout(()=>P=!0,5e3);let _=0,T=!1,j=0;for(;!T&&!P;){const S=f[k+_];S==="("&&j++,S===")"&&j--,j===0&&S===")"&&(T=!0),_>f.length&&(P=!0),_++}if(!P)clearTimeout(R);else throw new Error("Failed to find the end of the styled call and timed out");const D=k+_,c=f.slice(k,D),h=f,b=` ${p} = styled(${i}, "${$.classNames}", ${JSON.stringify($.clientProps)});`;f=f.replace(c,b),h===f&&console.error("Minimize file failed to change content",{name:p,tagName:i})}),g.importStrategy==="component"){const p=v(e,6),w=l.parse(e);f=`import '../../saltygen/css/${`f_${V(w.name)}-${p}.css`}';
|
42
|
+
${f}`}return f=f.replace("{ styled }","{ styledClient as styled }"),f=f.replace("@salty-css/react/styled","@salty-css/react/styled-client"),f}}catch(n){console.error("Error in minimizeFile:",n)}},mt=async t=>{if(!t||t.includes("node_modules")||t.includes("saltygen"))return!1;if(t.includes("salty.config"))return!0;if(!q(t))return!1;const n=await tt.readFile(t,"utf-8");return!!/.+define[A-Z]\w+/.test(n)},xt=t=>({name:"stylegen",buildStart:()=>Kt(t),load:async e=>{if(q(e))return await Qt(t,e)},handleHotUpdate:async({file:e,server:s})=>{await mt(e)&&await s.restart()},watchChange:{handler:async e=>{q(e)&&(await mt(e)||await Ut(t,e))}}});exports.default=xt;exports.saltyPlugin=xt;
|
package/index.js
CHANGED
@@ -4,10 +4,10 @@ import { join as u, parse as et } from "path";
|
|
4
4
|
import { existsSync as ct, mkdirSync as I, statSync as Et, readdirSync as Tt, readFileSync as M, writeFileSync as D } from "fs";
|
5
5
|
import { readFile as lt, writeFile as Ot } from "fs/promises";
|
6
6
|
import { createLogger as Vt, format as it, transports as Mt } from "winston";
|
7
|
-
const
|
7
|
+
const yt = (t) => String.fromCharCode(t + (t > 25 ? 39 : 97)), Rt = (t, e) => {
|
8
8
|
let s = "", n;
|
9
|
-
for (n = Math.abs(t); n > 52; n = n / 52 | 0) s =
|
10
|
-
return s =
|
9
|
+
for (n = Math.abs(t); n > 52; n = n / 52 | 0) s = yt(n % 52) + s;
|
10
|
+
return s = yt(n % 52) + s, s.length < e ? s = s.padStart(e, "a") : s.length > e && (s = s.slice(-e)), s;
|
11
11
|
}, At = (t, e) => {
|
12
12
|
let s = e.length;
|
13
13
|
for (; s; ) t = t * 33 ^ e.charCodeAt(--s);
|
@@ -26,8 +26,8 @@ const Jt = (t) => (e) => {
|
|
26
26
|
return Object.values(t).forEach((o) => {
|
27
27
|
const { pattern: r, transform: a } = o;
|
28
28
|
s = s.replace(r, (h) => {
|
29
|
-
const { value: j, css:
|
30
|
-
return
|
29
|
+
const { value: j, css: l } = a(h);
|
30
|
+
return l && n.push(l), j;
|
31
31
|
});
|
32
32
|
}), { transformed: s, additionalCss: n };
|
33
33
|
}, bt = (t) => (e) => typeof e != "string" || !/\{[^{}]+\}/g.test(e) ? void 0 : { transformed: e.replace(/\{([^{}]+)\}/g, (...o) => `var(--${A(o[1].replaceAll(".", "-"))})`) }, Wt = bt(), zt = [
|
@@ -63,19 +63,19 @@ const Jt = (t) => (e) => {
|
|
63
63
|
const C = Object.entries(i);
|
64
64
|
for (const [_, c] of C) {
|
65
65
|
if (!c) return;
|
66
|
-
const
|
67
|
-
for (const [w,
|
68
|
-
if (!
|
66
|
+
const y = Object.entries(c);
|
67
|
+
for (const [w, f] of y) {
|
68
|
+
if (!f) return;
|
69
69
|
const b = `${e}.${_}-${w}`;
|
70
|
-
(await tt(
|
70
|
+
(await tt(f, b, s)).forEach((V) => o.add(V));
|
71
71
|
}
|
72
72
|
}
|
73
73
|
return;
|
74
74
|
}
|
75
75
|
if (p === "compoundVariants") {
|
76
76
|
for (const C of i) {
|
77
|
-
const { css: _, ...c } = C,
|
78
|
-
(await tt(_,
|
77
|
+
const { css: _, ...c } = C, y = Object.entries(c).reduce((f, [b, N]) => `${f}.${b}-${N}`, e);
|
78
|
+
(await tt(_, y, s)).forEach((f) => o.add(f));
|
79
79
|
}
|
80
80
|
return;
|
81
81
|
}
|
@@ -112,10 +112,10 @@ const Jt = (t) => (e) => {
|
|
112
112
|
))).filter((m) => m !== void 0).join(`
|
113
113
|
`);
|
114
114
|
if (!d.trim()) return Array.from(o);
|
115
|
-
const
|
115
|
+
const g = e ? `${e} {
|
116
116
|
${d}
|
117
117
|
}` : d;
|
118
|
-
return o.has(
|
118
|
+
return o.has(g) ? Array.from(o) : [g, ...o];
|
119
119
|
}, Q = async (t, e, s, n = !1) => (await tt(t, e, s, n)).join(`
|
120
120
|
`), Ct = async (t, e = []) => {
|
121
121
|
if (!t) return "";
|
@@ -158,8 +158,8 @@ const Ft = async (t) => {
|
|
158
158
|
format: it.combine(it.colorize(), it.cli()),
|
159
159
|
transports: [new Mt.Console({})]
|
160
160
|
});
|
161
|
-
function
|
162
|
-
return t ? typeof t != "string" ?
|
161
|
+
function xt(t) {
|
162
|
+
return t ? typeof t != "string" ? xt(String(t)) : t.replace(/[\s-]/g, ".").replace(/[A-Z](?:(?=[^A-Z])|[A-Z]*(?=[A-Z][^A-Z]|$))/g, (e, s) => (s > 0 ? "." : "") + e.toLowerCase()) : "";
|
163
163
|
}
|
164
164
|
const Kt = {
|
165
165
|
/** Set box model to border-box */
|
@@ -211,7 +211,7 @@ const Kt = {
|
|
211
211
|
externalModules: [],
|
212
212
|
rcFile: void 0,
|
213
213
|
destDir: void 0
|
214
|
-
},
|
214
|
+
}, Nt = (t) => {
|
215
215
|
if (W.externalModules.length > 0) return W.externalModules;
|
216
216
|
const s = M(t, "utf8").match(/externalModules:\s?\[(.*)\]/);
|
217
217
|
if (!s) return [];
|
@@ -232,7 +232,7 @@ const Kt = {
|
|
232
232
|
const e = await kt(t), s = (n = e.projects) == null ? void 0 : n.find((r) => t.endsWith(r.dir || ""));
|
233
233
|
return s || ((o = e.projects) == null ? void 0 : o.find((r) => r.dir === e.defaultProject));
|
234
234
|
}, Ut = async (t) => {
|
235
|
-
const e = await ft(t), s = await v(t), n = u(t, (e == null ? void 0 : e.configDir) || "", "salty.config.ts"), o = u(s, "salty.config.js"), r = await Ft(t), a =
|
235
|
+
const e = await ft(t), s = await v(t), n = u(t, (e == null ? void 0 : e.configDir) || "", "salty.config.ts"), o = u(s, "salty.config.js"), r = await Ft(t), a = Nt(n);
|
236
236
|
await wt.build({
|
237
237
|
entryPoints: [n],
|
238
238
|
minify: !0,
|
@@ -254,37 +254,37 @@ const Kt = {
|
|
254
254
|
};
|
255
255
|
await Promise.all(
|
256
256
|
[...e].map(async (S) => {
|
257
|
-
const { contents:
|
258
|
-
Object.entries(
|
257
|
+
const { contents: x, outputFilePath: J } = await st(t, S, s);
|
258
|
+
Object.entries(x).forEach(([E, T]) => {
|
259
259
|
T.isMedia ? n.mediaQueries.push([E, T]) : T.isGlobalDefine ? n.globalStyles.push(T) : T.isDefineVariables ? n.variables.push(T) : T.isDefineTemplates && n.templates.push(T._setPath(J));
|
260
260
|
});
|
261
261
|
})
|
262
262
|
);
|
263
|
-
const o = await Ut(t), r = { ...o }, a = /* @__PURE__ */ new Set(), h = (S,
|
263
|
+
const o = await Ut(t), r = { ...o }, a = /* @__PURE__ */ new Set(), h = (S, x = []) => S ? Object.entries(S).flatMap(([J, E]) => {
|
264
264
|
if (!E) return;
|
265
|
-
if (typeof E == "object") return h(E, [...
|
266
|
-
const T =
|
265
|
+
if (typeof E == "object") return h(E, [...x, J]);
|
266
|
+
const T = xt(J), ot = A(J), rt = [...x, T].join(".");
|
267
267
|
a.add(`"${rt}"`);
|
268
|
-
const Y = [...
|
268
|
+
const Y = [...x.map(A), ot].join("-"), ht = Wt(E);
|
269
269
|
return ht ? `--${Y}: ${ht.transformed};` : `--${Y}: ${E};`;
|
270
|
-
}) : [], j = (S) => S ? Object.entries(S).flatMap(([
|
270
|
+
}) : [], j = (S) => S ? Object.entries(S).flatMap(([x, J]) => {
|
271
271
|
const E = h(J);
|
272
|
-
return
|
273
|
-
}) : [],
|
274
|
-
const ot = h(T, [
|
272
|
+
return x === "base" ? E.join("") : `${x} { ${E.join("")} }`;
|
273
|
+
}) : [], l = (S) => S ? Object.entries(S).flatMap(([x, J]) => Object.entries(J).flatMap(([E, T]) => {
|
274
|
+
const ot = h(T, [x]), rt = `.${x}-${E}, [data-${x}="${E}"]`, Y = ot.join("");
|
275
275
|
return `${rt} { ${Y} }`;
|
276
|
-
})) : [], d = (S) => ({ ...S, responsive: void 0, conditional: void 0 }),
|
276
|
+
})) : [], d = (S) => ({ ...S, responsive: void 0, conditional: void 0 }), g = (S) => n.variables.map((x) => S === "static" ? d(x._current) : x._current[S]), $ = B(d(o.variables), g("static")), m = h($), i = B((pt = o.variables) == null ? void 0 : pt.responsive, g("responsive")), p = j(i), P = B((mt = o.variables) == null ? void 0 : mt.conditional, g("conditional")), F = l(P), R = u(s, "css/_variables.css"), k = `:root { ${m.join("")} ${p.join("")} } ${F.join("")}`;
|
277
277
|
D(R, k), r.staticVariables = $;
|
278
278
|
const O = u(s, "css/_global.css"), C = B(o.global, n.globalStyles), _ = await Q(C, "");
|
279
279
|
D(O, `@layer global { ${_} }`);
|
280
|
-
const c = u(s, "css/_reset.css"), w = o.reset === "none" ? {} : typeof o.reset == "object" ? o.reset : Kt,
|
281
|
-
D(c, `@layer reset { ${
|
282
|
-
const b = u(s, "css/_templates.css"),
|
283
|
-
D(b, `@layer templates { ${V} }`), r.templates =
|
280
|
+
const c = u(s, "css/_reset.css"), w = o.reset === "none" ? {} : typeof o.reset == "object" ? o.reset : Kt, f = await Q(w, "");
|
281
|
+
D(c, `@layer reset { ${f} }`);
|
282
|
+
const b = u(s, "css/_templates.css"), N = B(o.templates, n.templates), V = await Ct(N), K = It(N);
|
283
|
+
D(b, `@layer templates { ${V} }`), r.templates = N;
|
284
284
|
const L = Lt(n.templates);
|
285
|
-
r.templatePaths = Object.fromEntries(Object.entries(L).map(([S,
|
285
|
+
r.templatePaths = Object.fromEntries(Object.entries(L).map(([S, x]) => [S, x._path]));
|
286
286
|
const { mediaQueries: Z } = n;
|
287
|
-
r.mediaQueries = Object.fromEntries(Z.map(([S,
|
287
|
+
r.mediaQueries = Object.fromEntries(Z.map(([S, x]) => [`@${S}`, x]));
|
288
288
|
const U = Z.map(([S]) => `'@${S}'`).join(" | "), nt = u(s, "types/css-tokens.d.ts"), X = `
|
289
289
|
// Variable types
|
290
290
|
type VariableTokens = ${[...a].join("|")};
|
@@ -292,7 +292,7 @@ const Kt = {
|
|
292
292
|
|
293
293
|
// Template types
|
294
294
|
type TemplateTokens = {
|
295
|
-
${Object.entries(K).map(([S,
|
295
|
+
${Object.entries(K).map(([S, x]) => `${S}?: ${x}`).join(`
|
296
296
|
`)}
|
297
297
|
}
|
298
298
|
|
@@ -302,14 +302,14 @@ const Kt = {
|
|
302
302
|
D(nt, X);
|
303
303
|
const Dt = u(s, "cache/config-cache.json");
|
304
304
|
D(Dt, JSON.stringify(r, null, 2));
|
305
|
-
},
|
305
|
+
}, gt = (t) => t.replace(/styled\(([^"'`{,]+),/g, (e, s) => {
|
306
306
|
if (/^['"`]/.test(s)) return e;
|
307
307
|
const o = new RegExp(`import[^;]*${s}[,\\s{][^;]*from\\s?([^{};]+);`);
|
308
308
|
if (!o.test(t)) return e;
|
309
309
|
const a = o.exec(t);
|
310
310
|
if (a) {
|
311
311
|
const h = a.at(1);
|
312
|
-
if (Pt.some((
|
312
|
+
if (Pt.some((l) => h == null ? void 0 : h.includes(l))) return e;
|
313
313
|
}
|
314
314
|
return "styled('div',";
|
315
315
|
}), Xt = (t, e) => {
|
@@ -328,8 +328,8 @@ ${t}`;
|
|
328
328
|
ct(o) || I(o);
|
329
329
|
const r = et(e);
|
330
330
|
let a = M(e, "utf8");
|
331
|
-
a =
|
332
|
-
const h = u(s, "js", n + ".js"), j = await ft(t),
|
331
|
+
a = gt(a), a = Xt(a, t);
|
332
|
+
const h = u(s, "js", n + ".js"), j = await ft(t), l = u(t, (j == null ? void 0 : j.configDir) || "", "salty.config.ts"), d = Nt(l), g = await Ft(t);
|
333
333
|
await wt.build({
|
334
334
|
stdin: {
|
335
335
|
contents: a,
|
@@ -341,7 +341,7 @@ ${t}`;
|
|
341
341
|
treeShaking: !0,
|
342
342
|
bundle: !0,
|
343
343
|
outfile: h,
|
344
|
-
format:
|
344
|
+
format: g,
|
345
345
|
target: ["node20"],
|
346
346
|
keepNames: !0,
|
347
347
|
external: d,
|
@@ -352,7 +352,7 @@ ${t}`;
|
|
352
352
|
setup: (i) => {
|
353
353
|
i.onLoad({ filter: /.*\.css|salty|styles|styled\.ts/ }, (p) => {
|
354
354
|
const P = M(p.path, "utf8");
|
355
|
-
return { contents:
|
355
|
+
return { contents: gt(P), loader: "ts" };
|
356
356
|
});
|
357
357
|
}
|
358
358
|
}
|
@@ -381,39 +381,39 @@ ${t}`;
|
|
381
381
|
s && (() => {
|
382
382
|
ct(a) && _t("rm -rf " + a), I(a, { recursive: !0 }), I(u(a, "css")), I(u(a, "types")), I(u(a, "js")), I(u(a, "cache"));
|
383
383
|
})();
|
384
|
-
const
|
385
|
-
async function
|
386
|
-
const
|
384
|
+
const l = /* @__PURE__ */ new Set(), d = /* @__PURE__ */ new Set();
|
385
|
+
async function g(c) {
|
386
|
+
const y = ["node_modules", "saltygen"], w = Et(c);
|
387
387
|
if (w.isDirectory()) {
|
388
|
-
const
|
389
|
-
if (
|
390
|
-
await Promise.all(
|
388
|
+
const f = Tt(c);
|
389
|
+
if (y.some((N) => c.includes(N))) return;
|
390
|
+
await Promise.all(f.map((N) => g(u(c, N))));
|
391
391
|
} else if (w.isFile() && G(c)) {
|
392
|
-
|
392
|
+
l.add(c);
|
393
393
|
const b = M(c, "utf8");
|
394
394
|
/define[\w\d]+\(/.test(b) && d.add(c);
|
395
395
|
}
|
396
396
|
}
|
397
|
-
await
|
397
|
+
await g(t), await qt(t, d);
|
398
398
|
const $ = {
|
399
399
|
keyframes: [],
|
400
400
|
components: [],
|
401
401
|
classNames: []
|
402
402
|
};
|
403
403
|
await Promise.all(
|
404
|
-
[...
|
405
|
-
const { contents:
|
406
|
-
Object.entries(
|
407
|
-
|
408
|
-
value:
|
404
|
+
[...l].map(async (c) => {
|
405
|
+
const { contents: y } = await st(t, c, a);
|
406
|
+
Object.entries(y).forEach(([w, f]) => {
|
407
|
+
f.isKeyframes ? $.keyframes.push({
|
408
|
+
value: f,
|
409
409
|
src: c,
|
410
410
|
name: w
|
411
|
-
}) :
|
412
|
-
...
|
411
|
+
}) : f.isClassName ? $.classNames.push({
|
412
|
+
...f,
|
413
413
|
src: c,
|
414
414
|
name: w
|
415
|
-
}) :
|
416
|
-
...
|
415
|
+
}) : f.generator && $.components.push({
|
416
|
+
...f,
|
417
417
|
src: c,
|
418
418
|
name: w
|
419
419
|
});
|
@@ -422,38 +422,42 @@ ${t}`;
|
|
422
422
|
);
|
423
423
|
const m = await ut(t);
|
424
424
|
for (const c of $.keyframes) {
|
425
|
-
const { value:
|
426
|
-
o.push(w), D(b,
|
425
|
+
const { value: y } = c, w = `a_${y.animationName}.css`, f = `css/${w}`, b = u(a, f);
|
426
|
+
o.push(w), D(b, y.css);
|
427
427
|
}
|
428
428
|
const i = {};
|
429
429
|
for (const c of $.components) {
|
430
|
-
const { src:
|
430
|
+
const { src: y, name: w } = c;
|
431
|
+
i[y] || (i[y] = []);
|
432
|
+
const f = c.generator._withBuildContext({
|
431
433
|
callerName: w,
|
432
434
|
isProduction: e,
|
433
435
|
config: m
|
434
436
|
});
|
435
|
-
r[
|
436
|
-
const b = await
|
437
|
+
r[f.priority] || (r[f.priority] = []);
|
438
|
+
const b = await f.css;
|
437
439
|
if (!b) continue;
|
438
|
-
r[
|
439
|
-
const
|
440
|
-
D(V, b), m.importStrategy === "component" &&
|
440
|
+
r[f.priority].push(f.cssFileName);
|
441
|
+
const N = `css/${f.cssFileName}`, V = u(a, N);
|
442
|
+
D(V, b), m.importStrategy === "component" && i[y].push(f.cssFileName);
|
441
443
|
}
|
442
444
|
for (const c of $.classNames) {
|
443
|
-
const { src:
|
445
|
+
const { src: y, name: w } = c;
|
446
|
+
i[y] || (i[y] = []);
|
447
|
+
const f = c.generator._withBuildContext({
|
444
448
|
callerName: w,
|
445
449
|
isProduction: e,
|
446
450
|
config: m
|
447
|
-
}), b = await
|
451
|
+
}), b = await f.css;
|
448
452
|
if (!b) continue;
|
449
|
-
r[0].push(
|
450
|
-
const
|
451
|
-
D(V, b), m.importStrategy === "component" &&
|
453
|
+
r[0].push(f.cssFileName);
|
454
|
+
const N = `css/${f.cssFileName}`, V = u(a, N);
|
455
|
+
D(V, b), m.importStrategy === "component" && i[y].push(f.cssFileName);
|
452
456
|
}
|
453
|
-
m.importStrategy === "component" && Object.entries(i).forEach(([c,
|
454
|
-
const w =
|
455
|
-
`),
|
456
|
-
D(V, w);
|
457
|
+
m.importStrategy === "component" && Object.entries(i).forEach(([c, y]) => {
|
458
|
+
const w = y.map((K) => `@import url('./${K}');`).join(`
|
459
|
+
`), f = z(c, 6), b = et(c), N = A(b.name), V = u(a, `css/f_${N}-${f}.css`);
|
460
|
+
D(V, w || "/* Empty file */");
|
457
461
|
});
|
458
462
|
const p = o.map((c) => `@import url('./css/${c}');`).join(`
|
459
463
|
`);
|
@@ -469,7 +473,7 @@ ${["_variables.css", "_reset.css", "_global.css", "_templates.css"].filter((c) =
|
|
469
473
|
`)}
|
470
474
|
${p}`;
|
471
475
|
if (m.importStrategy !== "component") {
|
472
|
-
const c = r.reduce((
|
476
|
+
const c = r.reduce((y, w, f) => {
|
473
477
|
const b = w.reduce((L, Z) => {
|
474
478
|
var X;
|
475
479
|
const U = u(a, "css", Z), nt = M(U, "utf8"), q = ((X = /.*-([^-]+)-\d+.css/.exec(Z)) == null ? void 0 : X.at(1)) || z(U, 6);
|
@@ -478,10 +482,10 @@ ${p}`;
|
|
478
482
|
${nt}
|
479
483
|
/*end:${q}*/
|
480
484
|
`;
|
481
|
-
}, ""),
|
485
|
+
}, ""), N = `l_${f}.css`, V = u(a, "css", N), K = `@layer l${f} { ${b}
|
482
486
|
}`;
|
483
|
-
return D(V, K), `${
|
484
|
-
@import url('./css/${
|
487
|
+
return D(V, K), `${y}
|
488
|
+
@import url('./css/${N}');`;
|
485
489
|
}, "");
|
486
490
|
k += c;
|
487
491
|
}
|
@@ -496,14 +500,14 @@ ${nt}
|
|
496
500
|
const n = await v(t);
|
497
501
|
if (G(e)) {
|
498
502
|
const r = [], a = await ut(t), { contents: h } = await st(t, e, n);
|
499
|
-
for (const [j,
|
500
|
-
if (
|
501
|
-
const p = `css/${`a_${
|
502
|
-
D(P, await
|
503
|
+
for (const [j, l] of Object.entries(h)) {
|
504
|
+
if (l.isKeyframes && l.css) {
|
505
|
+
const p = `css/${`a_${l.animationName}.css`}`, P = u(n, p);
|
506
|
+
D(P, await l.css);
|
503
507
|
return;
|
504
508
|
}
|
505
|
-
if (
|
506
|
-
const i =
|
509
|
+
if (l.isClassName) {
|
510
|
+
const i = l.generator._withBuildContext({
|
507
511
|
callerName: j,
|
508
512
|
isProduction: s,
|
509
513
|
config: a
|
@@ -513,20 +517,20 @@ ${nt}
|
|
513
517
|
const P = `css/${i.cssFileName}`, F = u(n, P);
|
514
518
|
D(F, p);
|
515
519
|
}
|
516
|
-
if (!
|
517
|
-
const d =
|
520
|
+
if (!l.generator) return;
|
521
|
+
const d = l.generator._withBuildContext({
|
518
522
|
callerName: j,
|
519
523
|
isProduction: s,
|
520
524
|
config: a
|
521
|
-
}),
|
522
|
-
if (!
|
525
|
+
}), g = await d.css;
|
526
|
+
if (!g) continue;
|
523
527
|
const $ = `css/${d.cssFileName}`, m = u(n, $);
|
524
|
-
D(m,
|
528
|
+
D(m, g), r[d.priority] || (r[d.priority] = []), r[d.priority].push(d.cssFileName);
|
525
529
|
}
|
526
530
|
if (a.importStrategy !== "component")
|
527
|
-
r.forEach((j,
|
528
|
-
const d = `l_${
|
529
|
-
let $ = M(
|
531
|
+
r.forEach((j, l) => {
|
532
|
+
const d = `l_${l}.css`, g = u(n, "css", d);
|
533
|
+
let $ = M(g, "utf8");
|
530
534
|
j.forEach((m) => {
|
531
535
|
var F;
|
532
536
|
const i = u(n, "css", m), p = ((F = /.*-([^-]+)-\d+.css/.exec(m)) == null ? void 0 : F.at(1)) || z(i, 6);
|
@@ -539,12 +543,12 @@ ${R}
|
|
539
543
|
${k}
|
540
544
|
}`;
|
541
545
|
}
|
542
|
-
}), D(
|
546
|
+
}), D(g, $);
|
543
547
|
});
|
544
548
|
else {
|
545
549
|
const j = r.flat().map((m) => `@import url('./${m}');`).join(`
|
546
|
-
`),
|
547
|
-
D($, j);
|
550
|
+
`), l = z(e, 6), d = et(e), g = A(d.name), $ = u(n, `css/f_${g}-${l}.css`);
|
551
|
+
D($, j || "/* Empty file */");
|
548
552
|
}
|
549
553
|
}
|
550
554
|
} catch (n) {
|
@@ -557,36 +561,36 @@ ${k}
|
|
557
561
|
const r = M(e, "utf8");
|
558
562
|
r.replace(/^(?!export\s)const\s.*/gm, (d) => `export ${d}`) !== r && await Ot(e, r);
|
559
563
|
const h = await ut(t), { contents: j } = await st(t, e, n);
|
560
|
-
let
|
561
|
-
if (Object.entries(j).forEach(([d,
|
562
|
-
var
|
563
|
-
if (
|
564
|
-
const $ =
|
564
|
+
let l = r;
|
565
|
+
if (Object.entries(j).forEach(([d, g]) => {
|
566
|
+
var f;
|
567
|
+
if (g.isKeyframes || !g.generator) return;
|
568
|
+
const $ = g.generator._withBuildContext({
|
565
569
|
callerName: d,
|
566
570
|
isProduction: s,
|
567
571
|
config: h
|
568
572
|
}), m = new RegExp(`\\s${d}[=\\s]+[^()]+styled\\(([^,]+),`, "g").exec(r);
|
569
573
|
if (!m) return console.error("Could not find the original declaration");
|
570
|
-
const i = (
|
574
|
+
const i = (f = m.at(1)) == null ? void 0 : f.trim(), p = new RegExp(`\\s${d}[=\\s]+styled\\(`, "g").exec(l);
|
571
575
|
if (!p) return console.error("Could not find the original declaration");
|
572
576
|
const { index: P } = p;
|
573
577
|
let F = !1;
|
574
578
|
const R = setTimeout(() => F = !0, 5e3);
|
575
579
|
let k = 0, O = !1, C = 0;
|
576
580
|
for (; !O && !F; ) {
|
577
|
-
const b =
|
578
|
-
b === "(" && C++, b === ")" && C--, C === 0 && b === ")" && (O = !0), k >
|
581
|
+
const b = l[P + k];
|
582
|
+
b === "(" && C++, b === ")" && C--, C === 0 && b === ")" && (O = !0), k > l.length && (F = !0), k++;
|
579
583
|
}
|
580
584
|
if (!F) clearTimeout(R);
|
581
585
|
else throw new Error("Failed to find the end of the styled call and timed out");
|
582
|
-
const _ = P + k, c =
|
583
|
-
|
586
|
+
const _ = P + k, c = l.slice(P, _), y = l, w = ` ${d} = styled(${i}, "${$.classNames}", ${JSON.stringify($.clientProps)});`;
|
587
|
+
l = l.replace(c, w), y === l && console.error("Minimize file failed to change content", { name: d, tagName: i });
|
584
588
|
}), h.importStrategy === "component") {
|
585
|
-
const d = z(e, 6),
|
586
|
-
|
587
|
-
${
|
589
|
+
const d = z(e, 6), g = et(e);
|
590
|
+
l = `import '../../saltygen/css/${`f_${A(g.name)}-${d}.css`}';
|
591
|
+
${l}`;
|
588
592
|
}
|
589
|
-
return
|
593
|
+
return l = l.replace("{ styled }", "{ styledClient as styled }"), l = l.replace("@salty-css/react/styled", "@salty-css/react/styled-client"), l;
|
590
594
|
}
|
591
595
|
} catch (n) {
|
592
596
|
console.error("Error in minimizeFile:", n);
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@salty-css/vite",
|
3
|
-
"version": "0.0.1-alpha.
|
3
|
+
"version": "0.0.1-alpha.209",
|
4
4
|
"main": "./dist/index.js",
|
5
5
|
"module": "./dist/index.mjs",
|
6
6
|
"typings": "./dist/index.d.ts",
|
@@ -34,6 +34,6 @@
|
|
34
34
|
}
|
35
35
|
},
|
36
36
|
"dependencies": {
|
37
|
-
"@salty-css/core": "^0.0.1-alpha.
|
37
|
+
"@salty-css/core": "^0.0.1-alpha.209"
|
38
38
|
}
|
39
39
|
}
|