@salty-css/webpack 0.0.1-alpha.191 → 0.0.1-alpha.193
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-LHz82WN_.cjs → index-BIUzTm7X.cjs} +9 -9
- package/{index-BthpPBL_.js → index-CVhswdhV.js} +110 -109
- package/index.cjs +1 -1
- package/index.js +1 -1
- package/loader.cjs +1 -1
- package/loader.js +1 -1
- package/package.json +2 -2
@@ -1,11 +1,11 @@
|
|
1
|
-
"use strict";const $e=require("esbuild"),je=require("child_process"),l=require("path"),u=require("fs"),ee=require("fs/promises"),q=require("winston");var Y=typeof document<"u"?document.currentScript:null;function be(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const s in e)if(s!=="default"){const n=Object.getOwnPropertyDescriptor(e,s);Object.defineProperty(t,s,n.get?n:{enumerable:!0,get:()=>e[s]})}}return t.default=e,Object.freeze(t)}const ie=be($e),oe=e=>String.fromCharCode(e+(e>25?39:97)),we=(e,t)=>{let s="",n;for(n=Math.abs(e);n>52;n=n/52|0)s=oe(n%52)+s;return s=oe(n%52)+s,s.length<t?s=s.padStart(t,"a"):s.length>t&&(s=s.slice(-t)),s},Fe=(e,t)=>{let s=t.length;for(;s;)e=e*33^t.charCodeAt(--s);return e},W=(e,t=5)=>{const s=Fe(5381,JSON.stringify(e))>>>0;return we(s,t)};function V(e){return e?typeof e!="string"?V(String(e)):e.replace(/[\s.]/g,"-").replace(/[A-Z](?:(?=[^A-Z])|[A-Z]*(?=[A-Z][^A-Z]|$))/g,(t,s)=>(s>0?"-":"")+t.toLowerCase()):""}const Ce=(e,t)=>{if(typeof e!="string")return{result:e};if(!t)return{result:e};const s=[];return Object.values(t).forEach(n=>{const{pattern:i,transform:a}=n;e=e.replace(i,c=>{const{value:d,css:r}=a(c);return r&&s.push(r),d})}),{result:e,additionalCss:s}},ce=e=>typeof e!="string"?{result:e}:/\{[^{}]+\}/g.test(e)?{result:e.replace(/\{([^{}]+)\}/g,(...n)=>`var(--${V(n[1].replaceAll(".","-"))})`)}:{result:e},M=(e,t,s)=>{if(!e)return"";const n=[],i=Object.entries(e).reduce((c,[d,r])=>{const o=d.trim();if(typeof r=="function"&&(r=r()),typeof r=="object"){if(!r)return c;if(o==="variants")return Object.entries(r).forEach(([D,j])=>{j&&Object.entries(j).forEach(([E,f])=>{if(!f)return;const h=`${t}.${D}-${E}`,b=M(f,h);n.push(b)})}),c;if(o==="defaultVariants")return c;if(o==="compoundVariants")return r.forEach(D=>{const{css:j,...E}=D,f=Object.entries(E).reduce((b,[p,x])=>`${b}.${p}-${x}`,t),h=M(j,f);n.push(h)}),c;if(o.startsWith("@")){const D=M(r,t),j=`${o} {
|
1
|
+
"use strict";const $e=require("esbuild"),je=require("child_process"),l=require("path"),u=require("fs"),ee=require("fs/promises"),q=require("winston");var Y=typeof document<"u"?document.currentScript:null;function be(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const s in e)if(s!=="default"){const n=Object.getOwnPropertyDescriptor(e,s);Object.defineProperty(t,s,n.get?n:{enumerable:!0,get:()=>e[s]})}}return t.default=e,Object.freeze(t)}const ie=be($e),oe=e=>String.fromCharCode(e+(e>25?39:97)),we=(e,t)=>{let s="",n;for(n=Math.abs(e);n>52;n=n/52|0)s=oe(n%52)+s;return s=oe(n%52)+s,s.length<t?s=s.padStart(t,"a"):s.length>t&&(s=s.slice(-t)),s},Fe=(e,t)=>{let s=t.length;for(;s;)e=e*33^t.charCodeAt(--s);return e},W=(e,t=5)=>{const s=Fe(5381,JSON.stringify(e))>>>0;return we(s,t)};function V(e){return e?typeof e!="string"?V(String(e)):e.replace(/[\s.]/g,"-").replace(/[A-Z](?:(?=[^A-Z])|[A-Z]*(?=[A-Z][^A-Z]|$))/g,(t,s)=>(s>0?"-":"")+t.toLowerCase()):""}const Ce=(e,t)=>{if(typeof e!="string")return{result:e};if(!t)return{result:e};const s=[];return Object.values(t).forEach(n=>{const{pattern:i,transform:a}=n;e=e.replace(i,c=>{const{value:d,css:r}=a(c);return r&&s.push(r),d})}),{result:e,additionalCss:s}},ce=e=>typeof e!="string"?{result:e}:/\{[^{}]+\}/g.test(e)?{result:e.replace(/\{([^{}]+)\}/g,(...n)=>`var(--${V(n[1].replaceAll(".","-"))})`)}:{result:e},M=(e,t,s)=>{if(!e)return"";const n=[],i=Object.entries(e).reduce((c,[d,r])=>{const o=d.trim(),m=o.startsWith("-")?o:V(o),g=(F,N=";")=>c=`${c}${F}${N}`,y=F=>g(`${m}:${F}`);if(typeof r=="function"&&(r=r()),typeof r=="object"){if(!r)return c;if(r.isColor)return y(r.toString()),c;if(o==="variants")return Object.entries(r).forEach(([D,j])=>{j&&Object.entries(j).forEach(([E,f])=>{if(!f)return;const h=`${t}.${D}-${E}`,b=M(f,h);n.push(b)})}),c;if(o==="defaultVariants")return c;if(o==="compoundVariants")return r.forEach(D=>{const{css:j,...E}=D,f=Object.entries(E).reduce((b,[p,x])=>`${b}.${p}-${x}`,t),h=M(j,f);n.push(h)}),c;if(o.startsWith("@")){const D=M(r,t),j=`${o} {
|
2
2
|
${D.replace(`
|
3
3
|
`,`
|
4
4
|
`)}
|
5
|
-
}`;return n.push(j),c}const F=d.includes("&")?o.replace("&",t):o.startsWith(":")?`${t}${o}`:`${t} ${o}`,N=M(r,F);return n.push(N),c}
|
5
|
+
}`;return n.push(j),c}const F=d.includes("&")?o.replace("&",t):o.startsWith(":")?`${t}${o}`:`${t} ${o}`,N=M(r,F);return n.push(N),c}if(typeof r=="number")return y(r);if(typeof r!="string")if("toString"in r)r=r.toString();else return c;const{modifiers:$}={},_=function*(){yield ce(r),yield Ce(r,$)}();for(const{result:F,additionalCss:N=[]}of _)r=F,N.forEach(D=>{const j=M(D,"");g(j,"")});return y(r)},"");return i?t?[`${t} { ${i} }`,...n].join(`
|
6
6
|
`):i:n.join(`
|
7
7
|
`)},ae=(e,t=[])=>{if(!e)return"";const s=[],n={};if(Object.entries(e).forEach(([i,a])=>{if(typeof a=="object"){if(!a)return;const c=i.trim(),d=ae(a,[...t,c]);s.push(d)}else n[i]=a}),Object.keys(n).length){const i=t.map(V).join("-"),a=M(n,`.${i}`);s.push(a)}return s.join(`
|
8
|
-
`)},Ne=e=>e?Object.entries(e).reduce((t,[s,n])=>(typeof n=="object"&&(t[s]=le(n).map(i=>`"${i}"`).join(" | ")),t),{}):{},le=(e,t="",s=new Set)=>e?(Object.entries(e).forEach(([n,i])=>{const a=t?`${t}.${n}`:n;return typeof i=="object"?le(i,a,s):s.add(t)}),[...s]):[],fe=e=>{if(!e||e==="/")throw new Error("Could not find package.json file");const t=l.join(e,"package.json");return u.existsSync(t)?t:fe(l.join(e,".."))},xe=async e=>{const t=fe(e);return await ee.readFile(t,"utf-8").then(JSON.parse).catch(()=>{})},ke=async e=>{const t=await xe(e);if(t)return t.type};let z;const ue=async e=>{if(z)return z;const t=await ke(e);return t==="module"?z="esm":(t==="commonjs"||(typeof document>"u"?require("url").pathToFileURL(__filename).href:Y&&Y.tagName.toUpperCase()==="SCRIPT"&&Y.src||new URL("index-
|
8
|
+
`)},Ne=e=>e?Object.entries(e).reduce((t,[s,n])=>(typeof n=="object"&&(t[s]=le(n).map(i=>`"${i}"`).join(" | ")),t),{}):{},le=(e,t="",s=new Set)=>e?(Object.entries(e).forEach(([n,i])=>{const a=t?`${t}.${n}`:n;return typeof i=="object"?le(i,a,s):s.add(t)}),[...s]):[],fe=e=>{if(!e||e==="/")throw new Error("Could not find package.json file");const t=l.join(e,"package.json");return u.existsSync(t)?t:fe(l.join(e,".."))},xe=async e=>{const t=fe(e);return await ee.readFile(t,"utf-8").then(JSON.parse).catch(()=>{})},ke=async e=>{const t=await xe(e);if(t)return t.type};let z;const ue=async e=>{if(z)return z;const t=await ke(e);return t==="module"?z="esm":(t==="commonjs"||(typeof document>"u"?require("url").pathToFileURL(__filename).href:Y&&Y.tagName.toUpperCase()==="SCRIPT"&&Y.src||new URL("index-BIUzTm7X.cjs",document.baseURI).href).endsWith(".cjs"))&&(z="cjs"),z||"esm"},v=q.createLogger({level:"debug",format:q.format.combine(q.format.colorize(),q.format.cli()),transports:[new q.transports.Console({})]});function pe(e){return e?typeof e!="string"?pe(String(e)):e.replace(/[\s-]/g,".").replace(/[A-Z](?:(?=[^A-Z])|[A-Z]*(?=[A-Z][^A-Z]|$))/g,(t,s)=>(s>0?".":"")+t.toLowerCase()):""}const Pe={"*, *::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"}},A=(...e)=>e.flat().reduce((t,s)=>s!=null&&s._current?{...t,...s._current}:{...t,...s},{}),O={externalModules:[],rcFile:void 0,destDir:void 0},de=e=>{if(O.externalModules.length>0)return O.externalModules;const s=u.readFileSync(e,"utf8").match(/externalModules:\s?\[(.*)\]/);if(!s)return[];const n=s[1].split(",").map(i=>i.replace(/['"`]/g,"").trim());return O.externalModules=n,n},J=async e=>{if(O.destDir)return O.destDir;const t=await te(e),s=l.join(e,(t==null?void 0:t.saltygenDir)||"saltygen");return O.destDir=s,s},ye=["salty","css","styles","styled"],ge=(e=[])=>new RegExp(`\\.(${[...ye,...e].join("|")})\\.`),G=(e,t=[])=>ge(t).test(e),me=async e=>{if(O.rcFile)return O.rcFile;if(e==="/")throw new Error("Could not find .saltyrc.json file");const t=l.join(e,".saltyrc.json"),s=await ee.readFile(t,"utf-8").then(JSON.parse).catch(()=>{});return s?(O.rcFile=s,s):me(l.join(e,".."))},te=async e=>{var n,i;const t=await me(e),s=(n=t.projects)==null?void 0:n.find(a=>e.endsWith(a.dir||""));return s||((i=t.projects)==null?void 0:i.find(a=>a.dir===t.defaultProject))},De=async e=>{const t=await te(e),s=await J(e),n=l.join(e,(t==null?void 0:t.configDir)||"","salty.config.ts"),i=l.join(s,"salty.config.js"),a=await ue(e),c=de(n);await ie.build({entryPoints:[n],minify:!0,treeShaking:!0,bundle:!0,outfile:i,format:a,external:c});const d=Date.now(),{config:r}=await import(`${i}?t=${d}`);return r},_e=async(e,t)=>{var Z,B;const s=await De(e),n={...s},i=new Set,a=(C,k=[])=>C?Object.entries(C).flatMap(([R,T])=>{if(!T)return;if(typeof T=="object")return a(T,[...k,R]);const K=pe(R),U=V(R),Q=[...k,K].join(".");i.add(`"${Q}"`);const X=[...k.map(V),U].join("-"),{result:Se}=ce(T);return`--${X}: ${Se};`}):[],c=C=>C?Object.entries(C).flatMap(([k,R])=>{const T=a(R);return k==="base"?T.join(""):`${k} { ${T.join("")} }`}):[],d=C=>C?Object.entries(C).flatMap(([k,R])=>Object.entries(R).flatMap(([T,K])=>{const U=a(K,[k]),Q=`.${k}-${T}, [data-${k}="${T}"]`,X=U.join("");return`${Q} { ${X} }`})):[],r=C=>({...C,responsive:void 0,conditional:void 0}),o=C=>t.variables.map(k=>C==="static"?r(k._current):k._current[C]),m=a(A(r(s.variables),o("static"))),g=c(A((Z=s.variables)==null?void 0:Z.responsive,o("responsive"))),y=d(A((B=s.variables)==null?void 0:B.conditional,o("conditional"))),$=await J(e),P=l.join($,"css/_variables.css"),_=`:root { ${m.join("")} ${g.join("")} } ${y.join("")}`;u.writeFileSync(P,_);const F=l.join($,"css/_global.css"),N=A(s.global,t.globalStyles),D=M(N,"");u.writeFileSync(F,`@layer global { ${D} }`);const j=l.join($,"css/_reset.css"),f=s.reset==="none"?{}:typeof s.reset=="object"?s.reset:Pe,h=M(f,"");u.writeFileSync(j,`@layer reset { ${h} }`);const b=l.join($,"css/_templates.css"),p=A(s.templates,t.templates),x=ae(p),w=Ne(p);u.writeFileSync(b,x),n.templates=p;const S=l.join($,"types/css-tokens.d.ts"),I=`
|
9
9
|
// Variable types
|
10
10
|
type VariableTokens = ${[...i].join("|")};
|
11
11
|
type PropertyValueToken = \`{\${VariableTokens}}\`;
|
@@ -15,23 +15,23 @@
|
|
15
15
|
${Object.entries(w).map(([C,k])=>`${C}?: ${k}`).join(`
|
16
16
|
`)}
|
17
17
|
}
|
18
|
-
`;u.writeFileSync(S,I);const L=l.join($,"cache/config-cache.json");u.writeFileSync(L,JSON.stringify(n,null,2))},re=e=>e.replace(/styled\(([^"'`{,]+),/g,(t,s)=>{if(/^['"`]/.test(s))return t;const i=new RegExp(`import[^;]*${s}[,\\s{][^;]*from\\s?([^{};]+);`);if(!i.test(e))return t;const c=i.exec(e);if(c){const d=c.at(1);if(ye.some(o=>d==null?void 0:d.includes(o)))return t}return"styled('div',"}),se=async(e,t,s)=>{const n=W(t),i=l.join(s,"./temp");u.existsSync(i)||u.mkdirSync(i);const a=l.parse(t);let c=u.readFileSync(t,"utf8");c=re(c);const d=l.join(s,"js",n+".js"),r=await te(e),o=l.join(e,(r==null?void 0:r.configDir)||"","salty.config.ts"),m=de(o),
|
18
|
+
`;u.writeFileSync(S,I);const L=l.join($,"cache/config-cache.json");u.writeFileSync(L,JSON.stringify(n,null,2))},re=e=>e.replace(/styled\(([^"'`{,]+),/g,(t,s)=>{if(/^['"`]/.test(s))return t;const i=new RegExp(`import[^;]*${s}[,\\s{][^;]*from\\s?([^{};]+);`);if(!i.test(e))return t;const c=i.exec(e);if(c){const d=c.at(1);if(ye.some(o=>d==null?void 0:d.includes(o)))return t}return"styled('div',"}),se=async(e,t,s)=>{const n=W(t),i=l.join(s,"./temp");u.existsSync(i)||u.mkdirSync(i);const a=l.parse(t);let c=u.readFileSync(t,"utf8");c=re(c);const d=l.join(s,"js",n+".js"),r=await te(e),o=l.join(e,(r==null?void 0:r.configDir)||"","salty.config.ts"),m=de(o),g=await ue(e);await ie.build({stdin:{contents:c,sourcefile:a.base,resolveDir:a.dir,loader:"tsx"},minify:!1,treeShaking:!0,bundle:!0,outfile:d,format:g,target:["node20"],keepNames:!0,external:m,packages:"external",plugins:[{name:"test",setup:P=>{P.onLoad({filter:/.*\.css|salty|styles|styled\.ts/},_=>{const F=u.readFileSync(_.path,"utf8");return{contents:re(F),loader:"ts"}})}}]});const y=Date.now();return await import(`${d}?t=${y}`)},Te=async e=>{const t=await J(e),s=l.join(t,"cache/config-cache.json"),n=u.readFileSync(s,"utf8");if(!n)throw new Error("Could not find config cache file");return JSON.parse(n)},ne=async e=>{const t=await Te(e),s=await J(e),n=l.join(s,"salty.config.js"),i=Date.now(),{config:a}=await import(`${n}?t=${i}`);return A(a,t)},he=()=>{try{return process.env.NODE_ENV==="production"}catch{return!1}},Ee=async(e,t=he(),s=!0)=>{try{const n=Date.now();t?v.info("Generating CSS in production mode! 🔥"):v.info("Generating CSS in development mode! 🚀");const i=[],a=[],c=await J(e),d=l.join(c,"index.css");s&&(()=>{u.existsSync(c)&&je.execSync("rm -rf "+c),u.mkdirSync(c,{recursive:!0}),u.mkdirSync(l.join(c,"css")),u.mkdirSync(l.join(c,"types")),u.mkdirSync(l.join(c,"js")),u.mkdirSync(l.join(c,"cache"))})();const o={keyframes:[],mediaQueries:[],globalStyles:[],variables:[],templates:[],components:[],classNames:[]};async function m(f){const h=["node_modules","saltygen"],b=u.statSync(f);if(b.isDirectory()){const p=u.readdirSync(f);if(h.some(w=>f.includes(w)))return;await Promise.all(p.map(w=>m(l.join(f,w))))}else if(b.isFile()&&G(f)){const x=await se(e,f,c);Object.entries(x).forEach(([w,S])=>{S.isKeyframes?o.keyframes.push({value:S,src:f,name:w}):S.isMedia?o.mediaQueries.push(S):S.isGlobalDefine?o.globalStyles.push(S):S.isDefineVariables?o.variables.push(S):S.isDefineTemplates?o.templates.push(S):S.isClassName?o.classNames.push({...S,src:f,name:w}):S.generator&&o.components.push({...S,src:f,name:w})})}}await m(e),await _e(e,o);const g=await ne(e);for(const f of o.keyframes){const{value:h}=f,b=`a_${h.animationName}.css`,p=`css/${b}`,x=l.join(c,p);i.push(b),u.writeFileSync(x,h.css)}const y={};for(const f of o.components){const{src:h,name:b}=f,p=f.generator._withBuildContext({callerName:b,isProduction:t,config:g});a[p.priority]||(a[p.priority]=[]),a[p.priority].push(p.cssFileName);const x=`css/${p.cssFileName}`,w=l.join(c,x);u.writeFileSync(w,p.css),g.importStrategy==="component"&&(y[h]?y[h].push(p.cssFileName):y[h]=[p.cssFileName])}for(const f of o.classNames){const{src:h,name:b}=f,p=f.generator._withBuildContext({callerName:b,isProduction:t,config:g});a[0].push(p.cssFileName);const x=`css/${p.cssFileName}`,w=l.join(c,x);u.writeFileSync(w,p.css),g.importStrategy==="component"&&(y[h]?y[h].push(p.cssFileName):y[h]=[p.cssFileName])}g.importStrategy==="component"&&Object.entries(y).forEach(([f,h])=>{const b=h.map(H=>`@import url('./${H}');`).join(`
|
19
19
|
`),p=W(f,6),x=l.parse(f),w=V(x.name),S=l.join(c,`css/f_${w}-${p}.css`);u.writeFileSync(S,b)});const $=i.map(f=>`@import url('./css/${f}');`).join(`
|
20
20
|
`);let N=`@layer reset, global, l0, l1, l2, l3, l4, l5, l6, l7, l8;
|
21
21
|
|
22
22
|
${["_variables.css","_reset.css","_global.css","_templates.css"].filter(f=>{try{return u.readFileSync(l.join(c,"css",f),"utf8").length>0}catch{return!1}}).map(f=>`@import url('./css/${f}');`).join(`
|
23
23
|
`)}
|
24
|
-
${$}`;if(
|
24
|
+
${$}`;if(g.importStrategy!=="component"){const f=a.reduce((h,b,p)=>{const x=b.reduce((I,L)=>{var k;const Z=l.join(c,"css",L),B=u.readFileSync(Z,"utf8"),C=((k=/.*-([^-]+)-\d+.css/.exec(L))==null?void 0:k.at(1))||W(Z,6);return I.includes(C)?I:`${I}
|
25
25
|
/*start:${C}*/
|
26
26
|
${B}
|
27
27
|
/*end:${C}*/
|
28
28
|
`},""),w=`l_${p}.css`,S=l.join(c,"css",w),H=`@layer l${p} { ${x}
|
29
29
|
}`;return u.writeFileSync(S,H),`${h}
|
30
|
-
@import url('./css/${w}');`},"");N+=f}u.writeFileSync(d,N);const j=Date.now()-n,E=j<200?"🔥":j<500?"🚀":j<1e3?"🎉":j<2e3?"🚗":j<5e3?"🤔":"🥴";v.info(`Generated CSS in ${j}ms! ${E}`)}catch(n){console.error(n)}},Oe=async(e,t)=>{try{const s=await J(e);if(G(t)){const i=[],a=await ne(e),c=await se(e,t,s);if(Object.entries(c).forEach(([d,r])=>{if(r.isKeyframes&&r.css){const $=`css/${`a_${r.animationName}.css`}`,P=l.join(s,$);u.writeFileSync(P,r.css);return}if(r.isClassName){const
|
30
|
+
@import url('./css/${w}');`},"");N+=f}u.writeFileSync(d,N);const j=Date.now()-n,E=j<200?"🔥":j<500?"🚀":j<1e3?"🎉":j<2e3?"🚗":j<5e3?"🤔":"🥴";v.info(`Generated CSS in ${j}ms! ${E}`)}catch(n){console.error(n)}},Oe=async(e,t)=>{try{const s=await J(e);if(G(t)){const i=[],a=await ne(e),c=await se(e,t,s);if(Object.entries(c).forEach(([d,r])=>{if(r.isKeyframes&&r.css){const $=`css/${`a_${r.animationName}.css`}`,P=l.join(s,$);u.writeFileSync(P,r.css);return}if(r.isClassName){const y=r.factory._withBuildContext({name:d});i[0].push(y.cssFileName);const $=`css/${y.cssFileName}`,P=l.join(s,$);u.writeFileSync(P,y.css)}if(!r.generator)return;const o=r.generator._withBuildContext({name:d,config:a}),m=`css/${o.cssFileName}`,g=l.join(s,m);u.writeFileSync(g,o.css),i[o.priority]||(i[o.priority]=[]),i[o.priority].push(o.cssFileName)}),a.importStrategy!=="component")i.forEach((d,r)=>{const o=`l_${r}.css`,m=l.join(s,"css",o);let g=u.readFileSync(m,"utf8");d.forEach(y=>{var F;const $=l.join(s,"css",y),P=((F=/.*-([^-]+)-\d+.css/.exec(y))==null?void 0:F.at(1))||W($,6);if(!g.includes(P)){const N=u.readFileSync($,"utf8"),D=`/*start:${P}*/
|
31
31
|
${N}
|
32
32
|
/*end:${P}*/
|
33
|
-
`;
|
33
|
+
`;g=`${g.replace(/\}$/,"")}
|
34
34
|
${D}
|
35
|
-
}`}}),u.writeFileSync(m,
|
36
|
-
`),r=W(t,6),o=l.parse(t),m=V(o.name),
|
35
|
+
}`}}),u.writeFileSync(m,g)});else{const d=i.flat().map(y=>`@import url('./${y}');`).join(`
|
36
|
+
`),r=W(t,6),o=l.parse(t),m=V(o.name),g=l.join(s,`css/f_${m}-${r}.css`);u.writeFileSync(g,d)}}}catch(s){console.error(s)}},Ve=async(e,t,s=he())=>{try{const n=await J(e);if(G(t)){const a=u.readFileSync(t,"utf8");a.replace(/^(?!export\s)const\s.*/gm,m=>`export ${m}`)!==a&&await ee.writeFile(t,a);const d=await ne(e),r=await se(e,t,n);let o=a;if(Object.entries(r).forEach(([m,g])=>{var w;if(g.isKeyframes||!g.generator)return;const y=g.generator._withBuildContext({name:m,config:d,prod:s}),$=new RegExp(`\\s${m}[=\\s]+[^()]+styled\\(([^,]+),`,"g").exec(a);if(!$)return console.error("Could not find the original declaration");const P=(w=$.at(1))==null?void 0:w.trim(),_=new RegExp(`\\s${m}[=\\s]+styled\\(`,"g").exec(o);if(!_)return console.error("Could not find the original declaration");const{index:F}=_;let N=!1;const D=setTimeout(()=>N=!0,5e3);let j=0,E=!1,f=0;for(;!E&&!N;){const S=o[F+j];S==="("&&f++,S===")"&&f--,f===0&&S===")"&&(E=!0),j>o.length&&(N=!0),j++}if(!N)clearTimeout(D);else throw new Error("Failed to find the end of the styled call and timed out");const h=F+j,b=o.slice(F,h),p=o,x=` ${m} = styled(${P}, "${y.classNames}", ${JSON.stringify(y.clientProps)});`;o=o.replace(b,x),p===o&&console.error("Minimize file failed to change content",{name:m,tagName:P})}),d.importStrategy==="component"){const m=W(t,6),g=l.parse(t);o=`import '../../saltygen/css/${`f_${V(g.name)}-${m}.css`}';
|
37
37
|
${o}`}return o=o.replace("{ styled }","{ styledClient as styled }"),o=o.replace("@salty-css/react/styled","@salty-css/react/styled-client"),o}}catch(n){console.error("Error in minimizeFile:",n)}};exports.generateCss=Ee;exports.generateFile=Oe;exports.isSaltyFile=G;exports.minimizeFile=Ve;exports.saltyFileRegExp=ge;
|
@@ -1,7 +1,7 @@
|
|
1
1
|
import * as at from "esbuild";
|
2
2
|
import { execSync as wt } from "child_process";
|
3
3
|
import { join as f, parse as q } from "path";
|
4
|
-
import { existsSync as et, writeFileSync as k, readFileSync as V, mkdirSync as z, statSync as
|
4
|
+
import { existsSync as et, writeFileSync as k, readFileSync as V, mkdirSync as z, statSync as Ct, readdirSync as jt } from "fs";
|
5
5
|
import { readFile as lt, writeFile as Ft } from "fs/promises";
|
6
6
|
import { createLogger as Nt, format as v, transports as xt } from "winston";
|
7
7
|
const it = (t) => String.fromCharCode(t + (t > 25 ? 39 : 97)), kt = (t, e) => {
|
@@ -26,16 +26,18 @@ const Dt = (t, e) => {
|
|
26
26
|
return Object.values(e).forEach((o) => {
|
27
27
|
const { pattern: i, transform: a } = o;
|
28
28
|
t = t.replace(i, (c) => {
|
29
|
-
const { value:
|
30
|
-
return r && s.push(r),
|
29
|
+
const { value: u, css: r } = a(c);
|
30
|
+
return r && s.push(r), u;
|
31
31
|
});
|
32
32
|
}), { result: t, additionalCss: s };
|
33
33
|
}, ft = (t) => typeof t != "string" ? { result: t } : /\{[^{}]+\}/g.test(t) ? { result: t.replace(/\{([^{}]+)\}/g, (...o) => `var(--${M(o[1].replaceAll(".", "-"))})`) } : { result: t }, J = (t, e, s) => {
|
34
34
|
if (!t) return "";
|
35
|
-
const o = [], i = Object.entries(t).reduce((c, [
|
36
|
-
const n =
|
35
|
+
const o = [], i = Object.entries(t).reduce((c, [u, r]) => {
|
36
|
+
const n = u.trim(), m = n.startsWith("-") ? n : M(n), g = (C, F = ";") => c = `${c}${C}${F}`, d = (C) => g(`${m}:${C}`);
|
37
37
|
if (typeof r == "function" && (r = r()), typeof r == "object") {
|
38
38
|
if (!r) return c;
|
39
|
+
if (r.isColor)
|
40
|
+
return d(r.toString()), c;
|
39
41
|
if (n === "variants")
|
40
42
|
return Object.entries(r).forEach(([D, b]) => {
|
41
43
|
b && Object.entries(b).forEach(([_, l]) => {
|
@@ -48,7 +50,7 @@ const Dt = (t, e) => {
|
|
48
50
|
return c;
|
49
51
|
if (n === "compoundVariants")
|
50
52
|
return r.forEach((D) => {
|
51
|
-
const { css: b, ..._ } = D, l = Object.entries(_).reduce((S, [
|
53
|
+
const { css: b, ..._ } = D, l = Object.entries(_).reduce((S, [p, N]) => `${S}.${p}-${N}`, e), h = J(b, l);
|
52
54
|
o.push(h);
|
53
55
|
}), c;
|
54
56
|
if (n.startsWith("@")) {
|
@@ -59,35 +61,34 @@ const Dt = (t, e) => {
|
|
59
61
|
}`;
|
60
62
|
return o.push(b), c;
|
61
63
|
}
|
62
|
-
const
|
64
|
+
const C = u.includes("&") ? n.replace("&", e) : n.startsWith(":") ? `${e}${n}` : `${e} ${n}`, F = J(r, C);
|
63
65
|
return o.push(F), c;
|
64
66
|
}
|
65
|
-
|
66
|
-
if (typeof r == "number") return m(r);
|
67
|
+
if (typeof r == "number") return d(r);
|
67
68
|
if (typeof r != "string")
|
68
69
|
if ("toString" in r) r = r.toString();
|
69
70
|
else return c;
|
70
71
|
const { modifiers: $ } = {}, E = function* () {
|
71
72
|
yield ft(r), yield Dt(r, $);
|
72
73
|
}();
|
73
|
-
for (const { result:
|
74
|
-
r =
|
74
|
+
for (const { result: C, additionalCss: F = [] } of E)
|
75
|
+
r = C, F.forEach((D) => {
|
75
76
|
const b = J(D, "");
|
76
|
-
|
77
|
+
g(b, "");
|
77
78
|
});
|
78
|
-
return
|
79
|
+
return d(r);
|
79
80
|
}, "");
|
80
81
|
return i ? e ? [`${e} { ${i} }`, ...o].join(`
|
81
82
|
`) : i : o.join(`
|
82
83
|
`);
|
83
|
-
},
|
84
|
+
}, pt = (t, e = []) => {
|
84
85
|
if (!t) return "";
|
85
86
|
const s = [], o = {};
|
86
87
|
if (Object.entries(t).forEach(([i, a]) => {
|
87
88
|
if (typeof a == "object") {
|
88
89
|
if (!a) return;
|
89
|
-
const c = i.trim(),
|
90
|
-
s.push(
|
90
|
+
const c = i.trim(), u = pt(a, [...e, c]);
|
91
|
+
s.push(u);
|
91
92
|
} else
|
92
93
|
o[i] = a;
|
93
94
|
}), Object.keys(o).length) {
|
@@ -96,9 +97,9 @@ const Dt = (t, e) => {
|
|
96
97
|
}
|
97
98
|
return s.join(`
|
98
99
|
`);
|
99
|
-
}, Et = (t) => t ? Object.entries(t).reduce((e, [s, o]) => (typeof o == "object" && (e[s] =
|
100
|
+
}, Et = (t) => t ? Object.entries(t).reduce((e, [s, o]) => (typeof o == "object" && (e[s] = ut(o).map((i) => `"${i}"`).join(" | ")), e), {}) : {}, ut = (t, e = "", s = /* @__PURE__ */ new Set()) => t ? (Object.entries(t).forEach(([o, i]) => {
|
100
101
|
const a = e ? `${e}.${o}` : o;
|
101
|
-
return typeof i == "object" ?
|
102
|
+
return typeof i == "object" ? ut(i, a, s) : s.add(e);
|
102
103
|
}), [...s]) : [], dt = (t) => {
|
103
104
|
if (!t || t === "/") throw new Error("Could not find package.json file");
|
104
105
|
const e = f(t, "package.json");
|
@@ -113,7 +114,7 @@ const Dt = (t, e) => {
|
|
113
114
|
return e.type;
|
114
115
|
};
|
115
116
|
let W;
|
116
|
-
const
|
117
|
+
const gt = async (t) => {
|
117
118
|
if (W) return W;
|
118
119
|
const e = await _t(t);
|
119
120
|
return e === "module" ? W = "esm" : (e === "commonjs" || import.meta.url.endsWith(".cjs")) && (W = "cjs"), W || "esm";
|
@@ -122,8 +123,8 @@ const mt = async (t) => {
|
|
122
123
|
format: v.combine(v.colorize(), v.cli()),
|
123
124
|
transports: [new xt.Console({})]
|
124
125
|
});
|
125
|
-
function
|
126
|
-
return t ? typeof t != "string" ?
|
126
|
+
function mt(t) {
|
127
|
+
return t ? typeof t != "string" ? mt(String(t)) : t.replace(/[\s-]/g, ".").replace(/[A-Z](?:(?=[^A-Z])|[A-Z]*(?=[A-Z][^A-Z]|$))/g, (e, s) => (s > 0 ? "." : "") + e.toLowerCase()) : "";
|
127
128
|
}
|
128
129
|
const Ot = {
|
129
130
|
/** Set box model to border-box */
|
@@ -196,7 +197,7 @@ const Ot = {
|
|
196
197
|
const e = await $t(t), s = (o = e.projects) == null ? void 0 : o.find((a) => t.endsWith(a.dir || ""));
|
197
198
|
return s || ((i = e.projects) == null ? void 0 : i.find((a) => a.dir === e.defaultProject));
|
198
199
|
}, Mt = async (t) => {
|
199
|
-
const e = await nt(t), s = await A(t), o = f(t, (e == null ? void 0 : e.configDir) || "", "salty.config.ts"), i = f(s, "salty.config.js"), a = await
|
200
|
+
const e = await nt(t), s = await A(t), o = f(t, (e == null ? void 0 : e.configDir) || "", "salty.config.ts"), i = f(s, "salty.config.js"), a = await gt(t), c = ht(o);
|
200
201
|
await at.build({
|
201
202
|
entryPoints: [o],
|
202
203
|
minify: !0,
|
@@ -206,31 +207,31 @@ const Ot = {
|
|
206
207
|
format: a,
|
207
208
|
external: c
|
208
209
|
});
|
209
|
-
const
|
210
|
+
const u = Date.now(), { config: r } = await import(`${i}?t=${u}`);
|
210
211
|
return r;
|
211
212
|
}, Jt = async (t, e) => {
|
212
213
|
var B, K;
|
213
|
-
const s = await Mt(t), o = { ...s }, i = /* @__PURE__ */ new Set(), a = (
|
214
|
+
const s = await Mt(t), o = { ...s }, i = /* @__PURE__ */ new Set(), a = (j, x = []) => j ? Object.entries(j).flatMap(([R, T]) => {
|
214
215
|
if (!T) return;
|
215
216
|
if (typeof T == "object") return a(T, [...x, R]);
|
216
|
-
const Q =
|
217
|
+
const Q = mt(R), U = M(R), X = [...x, Q].join(".");
|
217
218
|
i.add(`"${X}"`);
|
218
219
|
const Y = [...x.map(M), U].join("-"), { result: St } = ft(T);
|
219
220
|
return `--${Y}: ${St};`;
|
220
|
-
}) : [], c = (
|
221
|
+
}) : [], c = (j) => j ? Object.entries(j).flatMap(([x, R]) => {
|
221
222
|
const T = a(R);
|
222
223
|
return x === "base" ? T.join("") : `${x} { ${T.join("")} }`;
|
223
|
-
}) : [],
|
224
|
+
}) : [], u = (j) => j ? Object.entries(j).flatMap(([x, R]) => Object.entries(R).flatMap(([T, Q]) => {
|
224
225
|
const U = a(Q, [x]), X = `.${x}-${T}, [data-${x}="${T}"]`, Y = U.join("");
|
225
226
|
return `${X} { ${Y} }`;
|
226
|
-
})) : [], r = (
|
227
|
+
})) : [], r = (j) => ({ ...j, responsive: void 0, conditional: void 0 }), n = (j) => e.variables.map((x) => j === "static" ? r(x._current) : x._current[j]), m = a(Z(r(s.variables), n("static"))), g = c(Z((B = s.variables) == null ? void 0 : B.responsive, n("responsive"))), d = u(Z((K = s.variables) == null ? void 0 : K.conditional, n("conditional"))), $ = await A(t), P = f($, "css/_variables.css"), E = `:root { ${m.join("")} ${g.join("")} } ${d.join("")}`;
|
227
228
|
k(P, E);
|
228
|
-
const
|
229
|
-
k(
|
229
|
+
const C = f($, "css/_global.css"), F = Z(s.global, e.globalStyles), D = J(F, "");
|
230
|
+
k(C, `@layer global { ${D} }`);
|
230
231
|
const b = f($, "css/_reset.css"), l = s.reset === "none" ? {} : typeof s.reset == "object" ? s.reset : Ot, h = J(l, "");
|
231
232
|
k(b, `@layer reset { ${h} }`);
|
232
|
-
const S = f($, "css/_templates.css"),
|
233
|
-
k(S, N), o.templates =
|
233
|
+
const S = f($, "css/_templates.css"), p = Z(s.templates, e.templates), N = pt(p), w = Et(p);
|
234
|
+
k(S, N), o.templates = p;
|
234
235
|
const y = f($, "types/css-tokens.d.ts"), I = `
|
235
236
|
// Variable types
|
236
237
|
type VariableTokens = ${[...i].join("|")};
|
@@ -238,7 +239,7 @@ const Ot = {
|
|
238
239
|
|
239
240
|
// Template types
|
240
241
|
type TemplateTokens = {
|
241
|
-
${Object.entries(w).map(([
|
242
|
+
${Object.entries(w).map(([j, x]) => `${j}?: ${x}`).join(`
|
242
243
|
`)}
|
243
244
|
}
|
244
245
|
`;
|
@@ -251,8 +252,8 @@ const Ot = {
|
|
251
252
|
if (!i.test(t)) return e;
|
252
253
|
const c = i.exec(t);
|
253
254
|
if (c) {
|
254
|
-
const
|
255
|
-
if (yt.some((n) =>
|
255
|
+
const u = c.at(1);
|
256
|
+
if (yt.some((n) => u == null ? void 0 : u.includes(n))) return e;
|
256
257
|
}
|
257
258
|
return "styled('div',";
|
258
259
|
}), ot = async (t, e, s) => {
|
@@ -261,7 +262,7 @@ const Ot = {
|
|
261
262
|
const a = q(e);
|
262
263
|
let c = V(e, "utf8");
|
263
264
|
c = ct(c);
|
264
|
-
const
|
265
|
+
const u = f(s, "js", o + ".js"), r = await nt(t), n = f(t, (r == null ? void 0 : r.configDir) || "", "salty.config.ts"), m = ht(n), g = await gt(t);
|
265
266
|
await at.build({
|
266
267
|
stdin: {
|
267
268
|
contents: c,
|
@@ -272,26 +273,26 @@ const Ot = {
|
|
272
273
|
minify: !1,
|
273
274
|
treeShaking: !0,
|
274
275
|
bundle: !0,
|
275
|
-
outfile:
|
276
|
-
format:
|
276
|
+
outfile: u,
|
277
|
+
format: g,
|
277
278
|
target: ["node20"],
|
278
279
|
keepNames: !0,
|
279
|
-
external:
|
280
|
+
external: m,
|
280
281
|
packages: "external",
|
281
282
|
plugins: [
|
282
283
|
{
|
283
284
|
name: "test",
|
284
285
|
setup: (P) => {
|
285
286
|
P.onLoad({ filter: /.*\.css|salty|styles|styled\.ts/ }, (E) => {
|
286
|
-
const
|
287
|
-
return { contents: ct(
|
287
|
+
const C = V(E.path, "utf8");
|
288
|
+
return { contents: ct(C), loader: "ts" };
|
288
289
|
});
|
289
290
|
}
|
290
291
|
}
|
291
292
|
]
|
292
293
|
});
|
293
|
-
const
|
294
|
-
return await import(`${
|
294
|
+
const d = Date.now();
|
295
|
+
return await import(`${u}?t=${d}`);
|
295
296
|
}, Rt = async (t) => {
|
296
297
|
const e = await A(t), s = f(e, "cache/config-cache.json"), o = V(s, "utf8");
|
297
298
|
if (!o) throw new Error("Could not find config cache file");
|
@@ -309,7 +310,7 @@ const Ot = {
|
|
309
310
|
try {
|
310
311
|
const o = Date.now();
|
311
312
|
e ? tt.info("Generating CSS in production mode! 🔥") : tt.info("Generating CSS in development mode! 🚀");
|
312
|
-
const i = [], a = [], c = await A(t),
|
313
|
+
const i = [], a = [], c = await A(t), u = f(c, "index.css");
|
313
314
|
s && (() => {
|
314
315
|
et(c) && wt("rm -rf " + c), z(c, { recursive: !0 }), z(f(c, "css")), z(f(c, "types")), z(f(c, "js")), z(f(c, "cache"));
|
315
316
|
})();
|
@@ -322,12 +323,12 @@ const Ot = {
|
|
322
323
|
components: [],
|
323
324
|
classNames: []
|
324
325
|
};
|
325
|
-
async function
|
326
|
-
const h = ["node_modules", "saltygen"], S =
|
326
|
+
async function m(l) {
|
327
|
+
const h = ["node_modules", "saltygen"], S = Ct(l);
|
327
328
|
if (S.isDirectory()) {
|
328
|
-
const
|
329
|
+
const p = jt(l);
|
329
330
|
if (h.some((w) => l.includes(w))) return;
|
330
|
-
await Promise.all(
|
331
|
+
await Promise.all(p.map((w) => m(f(l, w))));
|
331
332
|
} else if (S.isFile() && st(l)) {
|
332
333
|
const N = await ot(t, l, c);
|
333
334
|
Object.entries(N).forEach(([w, y]) => {
|
@@ -347,36 +348,36 @@ const Ot = {
|
|
347
348
|
});
|
348
349
|
}
|
349
350
|
}
|
350
|
-
await
|
351
|
-
const
|
351
|
+
await m(t), await Jt(t, n);
|
352
|
+
const g = await rt(t);
|
352
353
|
for (const l of n.keyframes) {
|
353
|
-
const { value: h } = l, S = `a_${h.animationName}.css`,
|
354
|
+
const { value: h } = l, S = `a_${h.animationName}.css`, p = `css/${S}`, N = f(c, p);
|
354
355
|
i.push(S), k(N, h.css);
|
355
356
|
}
|
356
|
-
const
|
357
|
+
const d = {};
|
357
358
|
for (const l of n.components) {
|
358
|
-
const { src: h, name: S } = l,
|
359
|
+
const { src: h, name: S } = l, p = l.generator._withBuildContext({
|
359
360
|
callerName: S,
|
360
361
|
isProduction: e,
|
361
|
-
config:
|
362
|
+
config: g
|
362
363
|
});
|
363
|
-
a[
|
364
|
-
const N = `css/${
|
365
|
-
k(w,
|
364
|
+
a[p.priority] || (a[p.priority] = []), a[p.priority].push(p.cssFileName);
|
365
|
+
const N = `css/${p.cssFileName}`, w = f(c, N);
|
366
|
+
k(w, p.css), g.importStrategy === "component" && (d[h] ? d[h].push(p.cssFileName) : d[h] = [p.cssFileName]);
|
366
367
|
}
|
367
368
|
for (const l of n.classNames) {
|
368
|
-
const { src: h, name: S } = l,
|
369
|
+
const { src: h, name: S } = l, p = l.generator._withBuildContext({
|
369
370
|
callerName: S,
|
370
371
|
isProduction: e,
|
371
|
-
config:
|
372
|
+
config: g
|
372
373
|
});
|
373
|
-
a[0].push(
|
374
|
-
const N = `css/${
|
375
|
-
k(w,
|
374
|
+
a[0].push(p.cssFileName);
|
375
|
+
const N = `css/${p.cssFileName}`, w = f(c, N);
|
376
|
+
k(w, p.css), g.importStrategy === "component" && (d[h] ? d[h].push(p.cssFileName) : d[h] = [p.cssFileName]);
|
376
377
|
}
|
377
|
-
|
378
|
+
g.importStrategy === "component" && Object.entries(d).forEach(([l, h]) => {
|
378
379
|
const S = h.map((G) => `@import url('./${G}');`).join(`
|
379
|
-
`),
|
380
|
+
`), p = H(l, 6), N = q(l), w = M(N.name), y = f(c, `css/f_${w}-${p}.css`);
|
380
381
|
k(y, S);
|
381
382
|
});
|
382
383
|
const $ = i.map((l) => `@import url('./css/${l}');`).join(`
|
@@ -392,24 +393,24 @@ ${["_variables.css", "_reset.css", "_global.css", "_templates.css"].filter((l) =
|
|
392
393
|
}).map((l) => `@import url('./css/${l}');`).join(`
|
393
394
|
`)}
|
394
395
|
${$}`;
|
395
|
-
if (
|
396
|
-
const l = a.reduce((h, S,
|
396
|
+
if (g.importStrategy !== "component") {
|
397
|
+
const l = a.reduce((h, S, p) => {
|
397
398
|
const N = S.reduce((I, L) => {
|
398
399
|
var x;
|
399
|
-
const B = f(c, "css", L), K = V(B, "utf8"),
|
400
|
-
return I.includes(
|
401
|
-
/*start:${
|
400
|
+
const B = f(c, "css", L), K = V(B, "utf8"), j = ((x = /.*-([^-]+)-\d+.css/.exec(L)) == null ? void 0 : x.at(1)) || H(B, 6);
|
401
|
+
return I.includes(j) ? I : `${I}
|
402
|
+
/*start:${j}*/
|
402
403
|
${K}
|
403
|
-
/*end:${
|
404
|
+
/*end:${j}*/
|
404
405
|
`;
|
405
|
-
}, ""), w = `l_${
|
406
|
+
}, ""), w = `l_${p}.css`, y = f(c, "css", w), G = `@layer l${p} { ${N}
|
406
407
|
}`;
|
407
408
|
return k(y, G), `${h}
|
408
409
|
@import url('./css/${w}');`;
|
409
410
|
}, "");
|
410
411
|
F += l;
|
411
412
|
}
|
412
|
-
k(
|
413
|
+
k(u, F);
|
413
414
|
const b = Date.now() - o, _ = b < 200 ? "🔥" : b < 500 ? "🚀" : b < 1e3 ? "🎉" : b < 2e3 ? "🚗" : b < 5e3 ? "🤔" : "🥴";
|
414
415
|
tt.info(`Generated CSS in ${b}ms! ${_}`);
|
415
416
|
} catch (o) {
|
@@ -420,48 +421,48 @@ ${K}
|
|
420
421
|
const s = await A(t);
|
421
422
|
if (st(e)) {
|
422
423
|
const i = [], a = await rt(t), c = await ot(t, e, s);
|
423
|
-
if (Object.entries(c).forEach(([
|
424
|
+
if (Object.entries(c).forEach(([u, r]) => {
|
424
425
|
if (r.isKeyframes && r.css) {
|
425
426
|
const $ = `css/${`a_${r.animationName}.css`}`, P = f(s, $);
|
426
427
|
k(P, r.css);
|
427
428
|
return;
|
428
429
|
}
|
429
430
|
if (r.isClassName) {
|
430
|
-
const
|
431
|
-
name:
|
431
|
+
const d = r.factory._withBuildContext({
|
432
|
+
name: u
|
432
433
|
});
|
433
|
-
i[0].push(
|
434
|
-
const $ = `css/${
|
435
|
-
k(P,
|
434
|
+
i[0].push(d.cssFileName);
|
435
|
+
const $ = `css/${d.cssFileName}`, P = f(s, $);
|
436
|
+
k(P, d.css);
|
436
437
|
}
|
437
438
|
if (!r.generator) return;
|
438
439
|
const n = r.generator._withBuildContext({
|
439
|
-
name:
|
440
|
+
name: u,
|
440
441
|
config: a
|
441
|
-
}),
|
442
|
-
k(
|
442
|
+
}), m = `css/${n.cssFileName}`, g = f(s, m);
|
443
|
+
k(g, n.css), i[n.priority] || (i[n.priority] = []), i[n.priority].push(n.cssFileName);
|
443
444
|
}), a.importStrategy !== "component")
|
444
|
-
i.forEach((
|
445
|
-
const n = `l_${r}.css`,
|
446
|
-
let
|
447
|
-
|
448
|
-
var
|
449
|
-
const $ = f(s, "css",
|
450
|
-
if (!
|
445
|
+
i.forEach((u, r) => {
|
446
|
+
const n = `l_${r}.css`, m = f(s, "css", n);
|
447
|
+
let g = V(m, "utf8");
|
448
|
+
u.forEach((d) => {
|
449
|
+
var C;
|
450
|
+
const $ = f(s, "css", d), P = ((C = /.*-([^-]+)-\d+.css/.exec(d)) == null ? void 0 : C.at(1)) || H($, 6);
|
451
|
+
if (!g.includes(P)) {
|
451
452
|
const F = V($, "utf8"), D = `/*start:${P}*/
|
452
453
|
${F}
|
453
454
|
/*end:${P}*/
|
454
455
|
`;
|
455
|
-
|
456
|
+
g = `${g.replace(/\}$/, "")}
|
456
457
|
${D}
|
457
458
|
}`;
|
458
459
|
}
|
459
|
-
}), k(
|
460
|
+
}), k(m, g);
|
460
461
|
});
|
461
462
|
else {
|
462
|
-
const
|
463
|
-
`), r = H(e, 6), n = q(e),
|
464
|
-
k(
|
463
|
+
const u = i.flat().map((d) => `@import url('./${d}');`).join(`
|
464
|
+
`), r = H(e, 6), n = q(e), m = M(n.name), g = f(s, `css/f_${m}-${r}.css`);
|
465
|
+
k(g, u);
|
465
466
|
}
|
466
467
|
}
|
467
468
|
} catch (s) {
|
@@ -472,35 +473,35 @@ ${D}
|
|
472
473
|
const o = await A(t);
|
473
474
|
if (st(e)) {
|
474
475
|
const a = V(e, "utf8");
|
475
|
-
a.replace(/^(?!export\s)const\s.*/gm, (
|
476
|
-
const
|
476
|
+
a.replace(/^(?!export\s)const\s.*/gm, (m) => `export ${m}`) !== a && await Ft(e, a);
|
477
|
+
const u = await rt(t), r = await ot(t, e, o);
|
477
478
|
let n = a;
|
478
|
-
if (Object.entries(r).forEach(([
|
479
|
+
if (Object.entries(r).forEach(([m, g]) => {
|
479
480
|
var w;
|
480
|
-
if (
|
481
|
-
const
|
482
|
-
name:
|
483
|
-
config:
|
481
|
+
if (g.isKeyframes || !g.generator) return;
|
482
|
+
const d = g.generator._withBuildContext({
|
483
|
+
name: m,
|
484
|
+
config: u,
|
484
485
|
prod: s
|
485
|
-
}), $ = new RegExp(`\\s${
|
486
|
+
}), $ = new RegExp(`\\s${m}[=\\s]+[^()]+styled\\(([^,]+),`, "g").exec(a);
|
486
487
|
if (!$) return console.error("Could not find the original declaration");
|
487
|
-
const P = (w = $.at(1)) == null ? void 0 : w.trim(), E = new RegExp(`\\s${
|
488
|
+
const P = (w = $.at(1)) == null ? void 0 : w.trim(), E = new RegExp(`\\s${m}[=\\s]+styled\\(`, "g").exec(n);
|
488
489
|
if (!E) return console.error("Could not find the original declaration");
|
489
|
-
const { index:
|
490
|
+
const { index: C } = E;
|
490
491
|
let F = !1;
|
491
492
|
const D = setTimeout(() => F = !0, 5e3);
|
492
493
|
let b = 0, _ = !1, l = 0;
|
493
494
|
for (; !_ && !F; ) {
|
494
|
-
const y = n[
|
495
|
+
const y = n[C + b];
|
495
496
|
y === "(" && l++, y === ")" && l--, l === 0 && y === ")" && (_ = !0), b > n.length && (F = !0), b++;
|
496
497
|
}
|
497
498
|
if (!F) clearTimeout(D);
|
498
499
|
else throw new Error("Failed to find the end of the styled call and timed out");
|
499
|
-
const h =
|
500
|
-
n = n.replace(S, N),
|
501
|
-
}),
|
502
|
-
const
|
503
|
-
n = `import '../../saltygen/css/${`f_${M(
|
500
|
+
const h = C + b, S = n.slice(C, h), p = n, N = ` ${m} = styled(${P}, "${d.classNames}", ${JSON.stringify(d.clientProps)});`;
|
501
|
+
n = n.replace(S, N), p === n && console.error("Minimize file failed to change content", { name: m, tagName: P });
|
502
|
+
}), u.importStrategy === "component") {
|
503
|
+
const m = H(e, 6), g = q(e);
|
504
|
+
n = `import '../../saltygen/css/${`f_${M(g.name)}-${m}.css`}';
|
504
505
|
${n}`;
|
505
506
|
}
|
506
507
|
return n = n.replace("{ styled }", "{ styledClient as styled }"), n = n.replace("@salty-css/react/styled", "@salty-css/react/styled-client"), n;
|
package/index.cjs
CHANGED
@@ -1 +1 @@
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const d=require("path"),t=require("./index-
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const d=require("path"),t=require("./index-BIUzTm7X.cjs"),y=require("fs/promises"),g=require("fs"),p=async e=>{if(!e||e.includes("node_modules")||e.includes("saltygen"))return!1;if(e.includes("salty.config"))return!0;if(!t.isSaltyFile(e))return!1;const a=await y.readFile(e,"utf-8");return!!/.+define[A-Z]\w+/.test(a)},c=(e,s,l=!1,a=!1)=>{var n,u,i;(u=(n=e.module)==null?void 0:n.rules)==null||u.push({test:t.saltyFileRegExp(),use:[{loader:d.resolve(__dirname,a?"./loader.cjs":"./loader.js"),options:{dir:s}}]}),l||(i=e.plugins)==null||i.push({apply:f=>{let o=!1;f.hooks.watchRun.tapPromise({name:"generateCss"},async()=>{o||(o=!0,await t.generateCss(s),g.watch(s,{recursive:!0},async(h,r)=>{await p(r)?await t.generateCss(s,!1,!1):t.isSaltyFile(r)&&await t.generateFile(s,r)}))})}})};exports.default=c;exports.saltyPlugin=c;
|
package/index.js
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
import { resolve as d } from "path";
|
2
|
-
import { i as f, s as p, g as u, a as y } from "./index-
|
2
|
+
import { i as f, s as p, g as u, a as y } from "./index-CVhswdhV.js";
|
3
3
|
import { readFile as g } from "fs/promises";
|
4
4
|
import { watch as m } from "fs";
|
5
5
|
const w = async (s) => {
|
package/loader.cjs
CHANGED
@@ -1 +1 @@
|
|
1
|
-
"use strict";const i=require("./index-
|
1
|
+
"use strict";const i=require("./index-BIUzTm7X.cjs");async function n(){const{dir:e}=this.getOptions(),{resourcePath:t}=this;return await i.generateFile(e,t),await i.minimizeFile(e,t)}module.exports=n;
|
package/loader.js
CHANGED
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@salty-css/webpack",
|
3
|
-
"version": "0.0.1-alpha.
|
3
|
+
"version": "0.0.1-alpha.193",
|
4
4
|
"main": "./dist/index.js",
|
5
5
|
"module": "./dist/index.mjs",
|
6
6
|
"typings": "./dist/index.d.ts",
|
@@ -34,7 +34,7 @@
|
|
34
34
|
}
|
35
35
|
},
|
36
36
|
"dependencies": {
|
37
|
-
"@salty-css/core": "^0.0.1-alpha.
|
37
|
+
"@salty-css/core": "^0.0.1-alpha.193",
|
38
38
|
"webpack": ">=5.x"
|
39
39
|
}
|
40
40
|
}
|