@salty-css/vite 0.0.1-alpha.210 → 0.0.1-alpha.211
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 +27 -27
- package/index.js +366 -319
- 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
|
2
|
-
`);if(!p.trim())return Array.from(o);const
|
1
|
+
"use strict";var Tt=Object.defineProperty;var Dt=(e,t,s)=>t in e?Tt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[t]=s;var tt=(e,t,s)=>Dt(e,typeof t!="symbol"?t+"":t,s);Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const Et=require("esbuild"),Ot=require("child_process"),l=require("path"),d=require("fs"),st=require("fs/promises"),G=require("winston");var it=typeof document<"u"?document.currentScript:null;function Mt(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 gt=Mt(Et),mt=e=>String.fromCharCode(e+(e>25?39:97)),Rt=(e,t)=>{let s="",n;for(n=Math.abs(e);n>52;n=n/52|0)s=mt(n%52)+s;return s=mt(n%52)+s,s.length<t?s=s.padStart(t,"a"):s.length>t&&(s=s.slice(-t)),s},Vt=(e,t)=>{let s=t.length;for(;s;)e=e*33^t.charCodeAt(--s);return e},v=(e,t=5)=>{const s=Vt(5381,JSON.stringify(e))>>>0;return Rt(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 At=e=>t=>{if(typeof t!="string"||!e)return;let s=t;const n=[];return Object.values(e).forEach(o=>{const{pattern:r,transform:i}=o;s=s.replace(r,w=>{const{value:$,css:f}=i(w);return f&&n.push(f),$})}),{transformed:s,additionalCss:n}},wt=e=>t=>typeof t!="string"||!/\{[^{}]+\}/g.test(t)?void 0:{transformed:t.replace(/\{([^{}]+)\}/g,(...o)=>`var(--${V(o[1].replaceAll(".","-"))})`)},Jt=wt(),vt=["top","right","bottom","left","min-width",/.*width.*/,/^[^line]*height.*/,/padding.*/,/margin.*/,/border.*/,/inset.*/,/.*radius.*/,/.*spacing.*/,/.*gap.*/,/.*indent.*/,/.*offset.*/,/.*size.*/,/.*thickness.*/,/.*font-size.*/],zt=(e,t,s)=>vt.some(o=>typeof o=="string"?o===e:o.test(e))?`${t}px`:`${t}`,Wt=["Webkit","Moz","ms","O"],It=e=>e.startsWith("-")?e:Wt.some(t=>e.startsWith(t))?`-${V(e)}`:V(e),et=async(e,t="",s,n=!1)=>{if(!e)throw new Error("No styles provided to parseStyles function!");const o=new Set,i=Object.entries(e).map(async([y,a])=>{const m=y.trim(),x=It(m),P=(N,M=";")=>`${x}:${N}${M}`;if(typeof a=="function"&&(a=a({scope:t,config:s})),a instanceof Promise&&(a=await a),typeof a=="object"){if(!a)return;if(a.isColor)return P(a.toString());if(m==="defaultVariants")return;if(m==="variants"){const j=Object.entries(a);for(const[D,c]of j){if(!c)return;const h=Object.entries(c);for(const[F,u]of h){if(!u)return;const S=`${t}.${D}-${F}`;(await et(u,S,s)).forEach(E=>o.add(E))}}return}if(m==="compoundVariants"){for(const j of a){const{css:D,...c}=j,h=Object.entries(c).reduce((u,[S,k])=>`${u}.${S}-${k}`,t);(await et(D,h,s)).forEach(u=>o.add(u))}return}if(m.startsWith("@")){const j=m,D=await K(a,t,s),c=`${j} { ${D} }`;o.add(c);return}const N=y.includes("&")?m.replace("&",t):m.startsWith(":")?`${t}${m}`:`${t} ${m}`;(await et(a,N,s)).forEach(j=>o.add(j));return}if(typeof a=="number"){const N=zt(x,a);return P(N)}if(typeof a!="string")if("toString"in a)a=a.toString();else throw new Error(`Invalid value type for property ${x}`);return P(a)}),{modifiers:w}={},$=[wt(),At(w)],p=(await Promise.all(i).then(y=>Promise.all(y.map(a=>$.reduce(async(m,x)=>{const P=await m;if(!P)return P;const R=await x(P);if(!R)return P;const{transformed:N,additionalCss:M}=R;let j="";if(M)for(const D of M)j+=await K(D,"");return`${j}${N}`},Promise.resolve(a)))))).filter(y=>y!==void 0).join(`
|
2
|
+
`);if(!p.trim())return Array.from(o);const b=t?`${t} {
|
3
3
|
${p}
|
4
|
-
}`:p;return o.has(
|
5
|
-
`)
|
6
|
-
`)},
|
4
|
+
}`:p;return o.has(b)?Array.from(o):[b,...o]},K=async(e,t,s,n=!1)=>(await et(e,t,s,n)).join(`
|
5
|
+
`),$t=async(e,t=[])=>{if(!e)return"";const s=[],n={};for(const[o,r]of Object.entries(e))if(typeof r!="function")if(r&&typeof r=="object"){const i=o.trim(),w=await $t(r,[...t,i]);s.push(w)}else n[o]=r;if(Object.keys(n).length){const o=t.map(V).join("-"),r="t_"+v(o,4),i=await K(n,`.${o}, .${r}`);s.push(i)}return s.join(`
|
6
|
+
`)},Zt=e=>e?Object.entries(e).reduce((t,[s,n])=>(typeof n=="function"?t[s]="any":typeof n=="object"&&(t[s]=bt(n).map(o=>`"${o}"`).join(" | ")),t),{}):{},bt=(e,t="",s=new Set)=>e?(Object.entries(e).forEach(([n,o])=>{const r=t?`${t}.${n}`:n;return typeof o=="object"?bt(o,r,s):s.add(t)}),[...s]):[],St=e=>{if(!e||e==="/")throw new Error("Could not find package.json file");const t=l.join(e,"package.json");return d.existsSync(t)?t:St(l.join(e,".."))},qt=async e=>{const t=St(e);return await st.readFile(t,"utf-8").then(JSON.parse).catch(()=>{})},Ht=async e=>{const t=await qt(e);if(t)return t.type};let W;const jt=async e=>{if(W)return W;const t=await Ht(e);return t==="module"?W="esm":(t==="commonjs"||(typeof document>"u"?require("url").pathToFileURL(__filename).href:it&&it.tagName.toUpperCase()==="SCRIPT"&&it.src||new URL("index.cjs",document.baseURI).href).endsWith(".cjs"))&&(W="cjs"),W||"esm"},at=G.createLogger({level:"debug",format:G.format.combine(G.format.colorize(),G.format.cli()),transports:[new G.transports.Console({})]});function Ft(e){return e?typeof e!="string"?Ft(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 Lt={"*, *::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"}},I=(...e)=>e.flat().reduce((t,s)=>s!=null&&s._current?{...t,...s._current}:{...t,...s},{}),Bt=(...e)=>e.flat().reduce((t,s)=>({...t,...s._children}),{});class Gt{constructor(t){tt(this,"_path");this.params=t}get _current(){return this.params.template}get isDefineTemplate(){return!0}_setPath(t){return this._path=t,this}}class Kt{constructor(t){tt(this,"_path");tt(this,"templates",[]);this.params=t,Object.entries(t).forEach(([s,n])=>{this.templates.push(new Gt({name:s,template:n}))})}get _current(){return this.params}get _children(){return Object.fromEntries(this.templates.map(t=>[t.params.name,t]))}get isDefineTemplates(){return!0}_setPath(t){return this._path=t,this.templates.forEach(s=>s._setPath(t)),this}}const Ut=e=>new Kt(e),J={externalModules:[],rcFile:void 0,destDir:void 0},Ct=e=>{if(J.externalModules.length>0)return J.externalModules;const s=d.readFileSync(e,"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 e=>{if(J.destDir)return J.destDir;const t=await ct(e),s=l.join(e,(t==null?void 0:t.saltygenDir)||"saltygen");return J.destDir=s,s},Pt=["salty","css","styles","styled"],Qt=(e=[])=>new RegExp(`\\.(${[...Pt,...e].join("|")})\\.`),Z=(e,t=[])=>Qt(t).test(e),_t=async e=>{if(J.rcFile)return J.rcFile;if(e==="/")throw new Error("Could not find .saltyrc.json file");const t=l.join(e,".saltyrc.json"),s=await st.readFile(t,"utf-8").then(JSON.parse).catch(()=>{});return s?(J.rcFile=s,s):_t(l.join(e,".."))},ct=async e=>{var n,o;const t=await _t(e),s=(n=t.projects)==null?void 0:n.find(r=>e.endsWith(r.dir||""));return s||((o=t.projects)==null?void 0:o.find(r=>r.dir===t.defaultProject))},Xt=async e=>{const t=await ct(e),s=await z(e),n=l.join(e,(t==null?void 0:t.configDir)||"","salty.config.ts"),o=l.join(s,"salty.config.js"),r=await jt(e),i=Ct(n);await gt.build({entryPoints:[n],minify:!0,treeShaking:!0,bundle:!0,outfile:o,format:r,external:i});const w=Date.now(),{config:$}=await import(`${o}?t=${w}`);return{config:$,path:o}},Yt=async(e,t)=>{var ut,dt;const s=await z(e),n={mediaQueries:[],globalStyles:[],variables:[],templates:[]};await Promise.all([...t].map(async C=>{const{contents:_,outputFilePath:A}=await nt(e,C,s);Object.entries(_).forEach(([T,O])=>{O.isMedia?n.mediaQueries.push([T,O]):O.isGlobalDefine?n.globalStyles.push(O):O.isDefineVariables?n.variables.push(O):O.isDefineTemplates&&n.templates.push(O._setPath(`${T};;${A}`))})}));const{config:o,path:r}=await Xt(e),i={...o},w=new Set,$=(C,_=[])=>C?Object.entries(C).flatMap(([A,T])=>{if(!T)return;if(typeof T=="object")return $(T,[..._,A]);const O=Ft(A),ot=V(A),rt=[..._,O].join(".");w.add(`"${rt}"`);const Y=[..._.map(V),ot].join("-"),pt=Jt(T);return pt?`--${Y}: ${pt.transformed};`:`--${Y}: ${T};`}):[],f=C=>C?Object.entries(C).flatMap(([_,A])=>{const T=$(A);return _==="base"?T.join(""):`${_} { ${T.join("")} }`}):[],p=C=>C?Object.entries(C).flatMap(([_,A])=>Object.entries(A).flatMap(([T,O])=>{const ot=$(O,[_]),rt=`.${_}-${T}, [data-${_}="${T}"]`,Y=ot.join("");return`${rt} { ${Y} }`})):[],b=C=>({...C,responsive:void 0,conditional:void 0}),g=C=>n.variables.map(_=>C==="static"?b(_._current):_._current[C]),y=I(b(o.variables),g("static")),a=$(y),m=I((ut=o.variables)==null?void 0:ut.responsive,g("responsive")),x=f(m),P=I((dt=o.variables)==null?void 0:dt.conditional,g("conditional")),R=p(P),N=l.join(s,"css/_variables.css"),M=`:root { ${a.join("")} ${x.join("")} } ${R.join("")}`;d.writeFileSync(N,M),i.staticVariables=y;const j=l.join(s,"css/_global.css"),D=I(o.global,n.globalStyles),c=await K(D,"");d.writeFileSync(j,`@layer global { ${c} }`);const h=l.join(s,"css/_reset.css"),u=o.reset==="none"?{}:typeof o.reset=="object"?o.reset:Lt,S=await K(u,"");d.writeFileSync(h,`@layer reset { ${S} }`);const k=l.join(s,"css/_templates.css"),E=I(o.templates,n.templates),q=await $t(E),H=Zt(E);d.writeFileSync(k,`@layer templates { ${q} }`),i.templates=E;const L=o.templates?[Ut(o.templates)._setPath(`config;;${r}`)]:[],U=Bt(n.templates,L);i.templatePaths=Object.fromEntries(Object.entries(U).map(([C,_])=>[C,_._path]));const{mediaQueries:Q}=n;i.mediaQueries=Object.fromEntries(Q.map(([C,_])=>[`@${C}`,_]));const B=Q.map(([C])=>`'@${C}'`).join(" | "),X=l.join(s,"types/css-tokens.d.ts"),Nt=`
|
7
7
|
// Variable types
|
8
|
-
type VariableTokens = ${[...
|
8
|
+
type VariableTokens = ${[...w].join("|")};
|
9
9
|
type PropertyValueToken = \`{\${VariableTokens}}\`;
|
10
10
|
|
11
11
|
// Template types
|
12
12
|
type TemplateTokens = {
|
13
|
-
${Object.entries(H).map(([
|
13
|
+
${Object.entries(H).map(([C,_])=>`${C}?: ${_}`).join(`
|
14
14
|
`)}
|
15
15
|
}
|
16
16
|
|
17
17
|
// Media query types
|
18
|
-
type MediaQueryKeys = ${
|
19
|
-
`;d.writeFileSync(
|
18
|
+
type MediaQueryKeys = ${B||"''"};
|
19
|
+
`;d.writeFileSync(X,Nt);const kt=l.join(s,"cache/config-cache.json");d.writeFileSync(kt,JSON.stringify(i,null,2))},yt=e=>e.replace(/styled\(([^"'`{,]+),/g,(t,s)=>{if(/^['"`]/.test(s))return t;const o=new RegExp(`import[^;]*${s}[,\\s{][^;]*from\\s?([^{};]+);`);if(!o.test(e))return t;const i=o.exec(e);if(i){const w=i.at(1);if(Pt.some(f=>w==null?void 0:w.includes(f)))return t}return"styled('div',"}),te=(e,t)=>{try{const s=d.readFileSync(l.join(t,"saltygen/cache/config-cache.json"),"utf8");return s?`globalThis.saltyConfig = ${s};
|
20
20
|
|
21
|
-
${
|
21
|
+
${e}`:`globalThis.saltyConfig = {};
|
22
22
|
|
23
|
-
${
|
24
|
-
`),u=v(c,6),S=l.parse(c),
|
25
|
-
`);let
|
23
|
+
${e}`}catch{return e}},nt=async(e,t,s)=>{const n=v(t),o=l.join(s,"./temp");d.existsSync(o)||d.mkdirSync(o);const r=l.parse(t);let i=d.readFileSync(t,"utf8");i=yt(i),i=te(i,e);const w=l.join(s,"js",n+".js"),$=await ct(e),f=l.join(e,($==null?void 0:$.configDir)||"","salty.config.ts"),p=Ct(f),b=await jt(e);await gt.build({stdin:{contents:i,sourcefile:r.base,resolveDir:r.dir,loader:"tsx"},minify:!1,treeShaking:!0,bundle:!0,outfile:w,format:b,target:["node20"],keepNames:!0,external:p,packages:"external",plugins:[{name:"test",setup:a=>{a.onLoad({filter:/.*\.css|salty|styles|styled\.ts/},m=>{const x=d.readFileSync(m.path,"utf8");return{contents:yt(x),loader:"ts"}})}}]});const g=Date.now();return{contents:await import(`${w}?t=${g}`),outputFilePath:w}},ee=async e=>{const t=await z(e),s=l.join(t,"cache/config-cache.json"),n=d.readFileSync(s,"utf8");if(!n)throw new Error("Could not find config cache file");return JSON.parse(n)},lt=async e=>{const t=await ee(e),s=await z(e),n=l.join(s,"salty.config.js"),o=Date.now(),{config:r}=await import(`${n}?t=${o}`);return I(r,t)},ft=()=>{try{return process.env.NODE_ENV==="production"}catch{return!1}},se=async(e,t=ft(),s=!0)=>{try{const n=Date.now();t?at.info("Generating CSS in production mode! 🔥"):at.info("Generating CSS in development mode! 🚀");const o=[],r=[],i=await z(e),w=l.join(i,"index.css");s&&(()=>{d.existsSync(i)&&Ot.execSync("rm -rf "+i),d.mkdirSync(i,{recursive:!0}),d.mkdirSync(l.join(i,"css")),d.mkdirSync(l.join(i,"types")),d.mkdirSync(l.join(i,"js")),d.mkdirSync(l.join(i,"cache"))})();const f=new Set,p=new Set;async function b(c){const h=["node_modules","saltygen"],F=d.statSync(c);if(F.isDirectory()){const u=d.readdirSync(c);if(h.some(k=>c.includes(k)))return;await Promise.all(u.map(k=>b(l.join(c,k))))}else if(F.isFile()&&Z(c)){f.add(c);const S=d.readFileSync(c,"utf8");/define[\w\d]+\(/.test(S)&&p.add(c)}}await b(e),await Yt(e,p);const g={keyframes:[],components:[],classNames:[]};await Promise.all([...f].map(async c=>{const{contents:h}=await nt(e,c,i);Object.entries(h).forEach(([F,u])=>{u.isKeyframes?g.keyframes.push({value:u,src:c,name:F}):u.isClassName?g.classNames.push({...u,src:c,name:F}):u.generator&&g.components.push({...u,src:c,name:F})})}));const y=await lt(e);for(const c of g.keyframes){const{value:h}=c,F=`a_${h.animationName}.css`,u=`css/${F}`,S=l.join(i,u);o.push(F),d.writeFileSync(S,h.css)}const a={};for(const c of g.components){const{src:h,name:F}=c;a[h]||(a[h]=[]);const u=c.generator._withBuildContext({callerName:F,isProduction:t,config:y});r[u.priority]||(r[u.priority]=[]);const S=await u.css;if(!S)continue;r[u.priority].push(u.cssFileName);const k=`css/${u.cssFileName}`,E=l.join(i,k);d.writeFileSync(E,S),y.importStrategy==="component"&&a[h].push(u.cssFileName)}for(const c of g.classNames){const{src:h,name:F}=c;a[h]||(a[h]=[]);const u=c.generator._withBuildContext({callerName:F,isProduction:t,config:y}),S=await u.css;if(!S)continue;r[0].push(u.cssFileName);const k=`css/${u.cssFileName}`,E=l.join(i,k);d.writeFileSync(E,S),y.importStrategy==="component"&&a[h].push(u.cssFileName)}y.importStrategy==="component"&&Object.entries(a).forEach(([c,h])=>{const F=h.map(q=>`@import url('./${q}');`).join(`
|
24
|
+
`),u=v(c,6),S=l.parse(c),k=V(S.name),E=l.join(i,`css/f_${k}-${u}.css`);d.writeFileSync(E,F||"/* Empty file */")});const m=o.map(c=>`@import url('./css/${c}');`).join(`
|
25
|
+
`);let N=`@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(l.join(
|
27
|
+
${["_variables.css","_reset.css","_global.css","_templates.css"].filter(c=>{try{return d.readFileSync(l.join(i,"css",c),"utf8").length>0}catch{return!1}}).map(c=>`@import url('./css/${c}');`).join(`
|
28
28
|
`)}
|
29
|
-
${
|
30
|
-
/*start:${
|
31
|
-
${
|
32
|
-
/*end:${
|
33
|
-
`},""),
|
34
|
-
}`;return d.writeFileSync(
|
35
|
-
@import url('./css/${
|
29
|
+
${m}`;if(y.importStrategy!=="component"){const c=r.reduce((h,F,u)=>{const S=F.reduce((H,L)=>{var X;const U=l.join(i,"css",L),Q=d.readFileSync(U,"utf8"),B=((X=/.*-([^-]+)-\d+.css/.exec(L))==null?void 0:X.at(1))||v(U,6);return H.includes(B)?H:`${H}
|
30
|
+
/*start:${B}-${L}*/
|
31
|
+
${Q}
|
32
|
+
/*end:${B}*/
|
33
|
+
`},""),k=`l_${u}.css`,E=l.join(i,"css",k),q=`@layer l${u} { ${S}
|
34
|
+
}`;return d.writeFileSync(E,q),`${h}
|
35
|
+
@import url('./css/${k}');`},"");N+=c}d.writeFileSync(w,N);const j=Date.now()-n,D=j<200?"🔥":j<500?"🚀":j<1e3?"🎉":j<2e3?"🚗":j<5e3?"🤔":"🥴";at.info(`Generated CSS in ${j}ms! ${D}`)}catch(n){console.error(n)}},ne=async(e,t,s=ft())=>{try{const n=await z(e);if(Z(t)){const r=[],i=await lt(e),{contents:w}=await nt(e,t,n);for(const[$,f]of Object.entries(w)){if(f.isKeyframes&&f.css){const m=`css/${`a_${f.animationName}.css`}`,x=l.join(n,m);d.writeFileSync(x,await f.css);return}if(f.isClassName){const a=f.generator._withBuildContext({callerName:$,isProduction:s,config:i}),m=await a.css;if(!m)continue;r[0].push(a.cssFileName);const x=`css/${a.cssFileName}`,P=l.join(n,x);d.writeFileSync(P,m)}if(!f.generator)return;const p=f.generator._withBuildContext({callerName:$,isProduction:s,config:i}),b=await p.css;if(!b)continue;const g=`css/${p.cssFileName}`,y=l.join(n,g);d.writeFileSync(y,b),r[p.priority]||(r[p.priority]=[]),r[p.priority].push(p.cssFileName)}if(i.importStrategy!=="component")r.forEach(($,f)=>{const p=`l_${f}.css`,b=l.join(n,"css",p);let g=d.readFileSync(b,"utf8");$.forEach(y=>{var P;const a=l.join(n,"css",y),m=((P=/.*-([^-]+)-\d+.css/.exec(y))==null?void 0:P.at(1))||v(a,6);if(!g.includes(m)){const R=d.readFileSync(a,"utf8"),N=`/*start:${m}-${y}*/
|
36
36
|
${R}
|
37
|
-
/*end:${
|
38
|
-
|
39
|
-
${
|
40
|
-
}`}}),d.writeFileSync(
|
41
|
-
`),f=v(
|
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)}},
|
37
|
+
/*end:${m}*/
|
38
|
+
`;g=`${g.replace(/\}$/,"")}
|
39
|
+
${N}
|
40
|
+
}`}}),d.writeFileSync(b,g)});else{const $=r.flat().map(y=>`@import url('./${y}');`).join(`
|
41
|
+
`),f=v(t,6),p=l.parse(t),b=V(p.name),g=l.join(n,`css/f_${b}-${f}.css`);d.writeFileSync(g,$||"/* Empty file */")}}}catch(n){console.error(n)}},oe=async(e,t,s=ft())=>{try{const n=await z(e);if(Z(t)){const r=d.readFileSync(t,"utf8");r.replace(/^(?!export\s)const\s.*/gm,p=>`export ${p}`)!==r&&await st.writeFile(t,r);const w=await lt(e),{contents:$}=await nt(e,t,n);let f=r;if(Object.entries($).forEach(([p,b])=>{var u;if(b.isKeyframes||!b.generator)return;const g=b.generator._withBuildContext({callerName:p,isProduction:s,config:w}),y=new RegExp(`\\s${p}[=\\s]+[^()]+styled\\(([^,]+),`,"g").exec(r);if(!y)return console.error("Could not find the original declaration");const a=(u=y.at(1))==null?void 0:u.trim(),m=new RegExp(`\\s${p}[=\\s]+styled\\(`,"g").exec(f);if(!m)return console.error("Could not find the original declaration");const{index:x}=m;let P=!1;const R=setTimeout(()=>P=!0,5e3);let N=0,M=!1,j=0;for(;!M&&!P;){const S=f[x+N];S==="("&&j++,S===")"&&j--,j===0&&S===")"&&(M=!0),N>f.length&&(P=!0),N++}if(!P)clearTimeout(R);else throw new Error("Failed to find the end of the styled call and timed out");const D=x+N,c=f.slice(x,D),h=f,F=` ${p} = styled(${a}, "${g.classNames}", ${JSON.stringify(g.clientProps)});`;f=f.replace(c,F),h===f&&console.error("Minimize file failed to change content",{name:p,tagName:a})}),w.importStrategy==="component"){const p=v(t,6),b=l.parse(t);f=`import '../../saltygen/css/${`f_${V(b.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)}},ht=async e=>{if(!e||e.includes("node_modules")||e.includes("saltygen"))return!1;if(e.includes("salty.config"))return!0;if(!Z(e))return!1;const n=await st.readFile(e,"utf-8");return!!/.+define[A-Z]\w+/.test(n)},xt=e=>({name:"stylegen",buildStart:()=>se(e),load:async t=>{if(Z(t))return await oe(e,t)},handleHotUpdate:async({file:t,server:s})=>{await ht(t)&&await s.restart()},watchChange:{handler:async t=>{Z(t)&&(await ht(t)||await ne(e,t))}}});exports.default=xt;exports.saltyPlugin=xt;
|
package/index.js
CHANGED
@@ -1,36 +1,39 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
import
|
5
|
-
import {
|
6
|
-
import {
|
7
|
-
|
1
|
+
var Tt = Object.defineProperty;
|
2
|
+
var Ot = (e, t, s) => t in e ? Tt(e, t, { enumerable: !0, configurable: !0, writable: !0, value: s }) : e[t] = s;
|
3
|
+
var et = (e, t, s) => Ot(e, typeof t != "symbol" ? t + "" : t, s);
|
4
|
+
import * as bt from "esbuild";
|
5
|
+
import { execSync as Vt } from "child_process";
|
6
|
+
import { join as u, parse as nt } from "path";
|
7
|
+
import { existsSync as lt, mkdirSync as H, statSync as Mt, readdirSync as Rt, readFileSync as M, writeFileSync as k } from "fs";
|
8
|
+
import { readFile as ft, writeFile as At } from "fs/promises";
|
9
|
+
import { createLogger as Jt, format as at, transports as Wt } from "winston";
|
10
|
+
const yt = (e) => String.fromCharCode(e + (e > 25 ? 39 : 97)), zt = (e, t) => {
|
8
11
|
let s = "", n;
|
9
|
-
for (n = Math.abs(
|
10
|
-
return s = yt(n % 52) + s, s.length <
|
11
|
-
},
|
12
|
-
let s =
|
13
|
-
for (; s; )
|
14
|
-
return
|
15
|
-
}, z = (
|
16
|
-
const s =
|
17
|
-
return
|
12
|
+
for (n = Math.abs(e); n > 52; n = n / 52 | 0) s = yt(n % 52) + s;
|
13
|
+
return s = yt(n % 52) + s, s.length < t ? s = s.padStart(t, "a") : s.length > t && (s = s.slice(-t)), s;
|
14
|
+
}, vt = (e, t) => {
|
15
|
+
let s = t.length;
|
16
|
+
for (; s; ) e = e * 33 ^ t.charCodeAt(--s);
|
17
|
+
return e;
|
18
|
+
}, z = (e, t = 5) => {
|
19
|
+
const s = vt(5381, JSON.stringify(e)) >>> 0;
|
20
|
+
return zt(s, t);
|
18
21
|
};
|
19
|
-
function A(
|
20
|
-
return
|
22
|
+
function A(e) {
|
23
|
+
return e ? typeof e != "string" ? A(String(e)) : e.replace(/[\s.]/g, "-").replace(/[A-Z](?:(?=[^A-Z])|[A-Z]*(?=[A-Z][^A-Z]|$))/g, (t, s) => (s > 0 ? "-" : "") + t.toLowerCase()) : "";
|
21
24
|
}
|
22
|
-
const
|
23
|
-
if (typeof
|
24
|
-
let s =
|
25
|
+
const Zt = (e) => (t) => {
|
26
|
+
if (typeof t != "string" || !e) return;
|
27
|
+
let s = t;
|
25
28
|
const n = [];
|
26
|
-
return Object.values(
|
27
|
-
const { pattern: r, transform:
|
28
|
-
s = s.replace(r, (
|
29
|
-
const { value:
|
30
|
-
return l && n.push(l),
|
29
|
+
return Object.values(e).forEach((o) => {
|
30
|
+
const { pattern: r, transform: i } = o;
|
31
|
+
s = s.replace(r, (y) => {
|
32
|
+
const { value: $, css: l } = i(y);
|
33
|
+
return l && n.push(l), $;
|
31
34
|
});
|
32
35
|
}), { transformed: s, additionalCss: n };
|
33
|
-
},
|
36
|
+
}, Ct = (e) => (t) => typeof t != "string" || !/\{[^{}]+\}/g.test(t) ? void 0 : { transformed: t.replace(/\{([^{}]+)\}/g, (...o) => `var(--${A(o[1].replaceAll(".", "-"))})`) }, Ht = Ct(), It = [
|
34
37
|
"top",
|
35
38
|
"right",
|
36
39
|
"bottom",
|
@@ -51,117 +54,117 @@ const Jt = (t) => (e) => {
|
|
51
54
|
/.*size.*/,
|
52
55
|
/.*thickness.*/,
|
53
56
|
/.*font-size.*/
|
54
|
-
],
|
55
|
-
if (!
|
56
|
-
const o = /* @__PURE__ */ new Set(),
|
57
|
-
const p = m.trim(),
|
58
|
-
if (typeof
|
59
|
-
if (!
|
60
|
-
if (
|
57
|
+
], Bt = (e, t, s) => It.some((o) => typeof o == "string" ? o === e : o.test(e)) ? `${t}px` : `${t}`, Gt = ["Webkit", "Moz", "ms", "O"], Kt = (e) => e.startsWith("-") ? e : Gt.some((t) => e.startsWith(t)) ? `-${A(e)}` : A(e), st = async (e, t = "", s, n = !1) => {
|
58
|
+
if (!e) throw new Error("No styles provided to parseStyles function!");
|
59
|
+
const o = /* @__PURE__ */ new Set(), i = Object.entries(e).map(async ([m, a]) => {
|
60
|
+
const p = m.trim(), x = Kt(p), F = (N, V = ";") => `${x}:${N}${V}`;
|
61
|
+
if (typeof a == "function" && (a = a({ scope: t, config: s })), a instanceof Promise && (a = await a), typeof a == "object") {
|
62
|
+
if (!a) return;
|
63
|
+
if (a.isColor) return F(a.toString());
|
61
64
|
if (p === "defaultVariants") return;
|
62
65
|
if (p === "variants") {
|
63
|
-
const C = Object.entries(
|
66
|
+
const C = Object.entries(a);
|
64
67
|
for (const [E, c] of C) {
|
65
68
|
if (!c) return;
|
66
|
-
const
|
67
|
-
for (const [
|
69
|
+
const h = Object.entries(c);
|
70
|
+
for (const [S, f] of h) {
|
68
71
|
if (!f) return;
|
69
|
-
const b = `${
|
70
|
-
(await
|
72
|
+
const b = `${t}.${E}-${S}`;
|
73
|
+
(await st(f, b, s)).forEach((T) => o.add(T));
|
71
74
|
}
|
72
75
|
}
|
73
76
|
return;
|
74
77
|
}
|
75
78
|
if (p === "compoundVariants") {
|
76
|
-
for (const C of
|
77
|
-
const { css: E, ...c } = C,
|
78
|
-
(await
|
79
|
+
for (const C of a) {
|
80
|
+
const { css: E, ...c } = C, h = Object.entries(c).reduce((f, [b, _]) => `${f}.${b}-${_}`, t);
|
81
|
+
(await st(E, h, s)).forEach((f) => o.add(f));
|
79
82
|
}
|
80
83
|
return;
|
81
84
|
}
|
82
85
|
if (p.startsWith("@")) {
|
83
|
-
const C = p, E = await
|
86
|
+
const C = p, E = await U(a, t, s), c = `${C} { ${E} }`;
|
84
87
|
o.add(c);
|
85
88
|
return;
|
86
89
|
}
|
87
|
-
const
|
88
|
-
(await
|
90
|
+
const N = m.includes("&") ? p.replace("&", t) : p.startsWith(":") ? `${t}${p}` : `${t} ${p}`;
|
91
|
+
(await st(a, N, s)).forEach((C) => o.add(C));
|
89
92
|
return;
|
90
93
|
}
|
91
|
-
if (typeof
|
92
|
-
const
|
93
|
-
return F(
|
94
|
+
if (typeof a == "number") {
|
95
|
+
const N = Bt(x, a);
|
96
|
+
return F(N);
|
94
97
|
}
|
95
|
-
if (typeof
|
96
|
-
if ("toString" in
|
97
|
-
else throw new Error(`Invalid value type for property ${
|
98
|
-
return F(
|
99
|
-
}), { modifiers:
|
100
|
-
m.map((
|
98
|
+
if (typeof a != "string")
|
99
|
+
if ("toString" in a) a = a.toString();
|
100
|
+
else throw new Error(`Invalid value type for property ${x}`);
|
101
|
+
return F(a);
|
102
|
+
}), { modifiers: y } = {}, $ = [Ct(), Zt(y)], d = (await Promise.all(i).then((m) => Promise.all(
|
103
|
+
m.map((a) => $.reduce(async (p, x) => {
|
101
104
|
const F = await p;
|
102
105
|
if (!F) return F;
|
103
|
-
const R = await
|
106
|
+
const R = await x(F);
|
104
107
|
if (!R) return F;
|
105
|
-
const { transformed:
|
108
|
+
const { transformed: N, additionalCss: V } = R;
|
106
109
|
let C = "";
|
107
|
-
if (
|
108
|
-
for (const E of
|
109
|
-
C += await
|
110
|
-
return `${C}${
|
111
|
-
}, Promise.resolve(
|
110
|
+
if (V)
|
111
|
+
for (const E of V)
|
112
|
+
C += await U(E, "");
|
113
|
+
return `${C}${N}`;
|
114
|
+
}, Promise.resolve(a)))
|
112
115
|
))).filter((m) => m !== void 0).join(`
|
113
116
|
`);
|
114
117
|
if (!d.trim()) return Array.from(o);
|
115
|
-
const
|
118
|
+
const w = t ? `${t} {
|
116
119
|
${d}
|
117
120
|
}` : d;
|
118
|
-
return o.has(
|
119
|
-
},
|
120
|
-
`),
|
121
|
-
if (!
|
121
|
+
return o.has(w) ? Array.from(o) : [w, ...o];
|
122
|
+
}, U = async (e, t, s, n = !1) => (await st(e, t, s, n)).join(`
|
123
|
+
`), St = async (e, t = []) => {
|
124
|
+
if (!e) return "";
|
122
125
|
const s = [], n = {};
|
123
|
-
for (const [o, r] of Object.entries(
|
126
|
+
for (const [o, r] of Object.entries(e))
|
124
127
|
if (typeof r != "function") if (r && typeof r == "object") {
|
125
|
-
const
|
126
|
-
s.push(
|
128
|
+
const i = o.trim(), y = await St(r, [...t, i]);
|
129
|
+
s.push(y);
|
127
130
|
} else
|
128
131
|
n[o] = r;
|
129
132
|
if (Object.keys(n).length) {
|
130
|
-
const o =
|
131
|
-
s.push(
|
133
|
+
const o = t.map(A).join("-"), r = "t_" + z(o, 4), i = await U(n, `.${o}, .${r}`);
|
134
|
+
s.push(i);
|
132
135
|
}
|
133
136
|
return s.join(`
|
134
137
|
`);
|
135
|
-
},
|
136
|
-
const r =
|
137
|
-
return typeof o == "object" ?
|
138
|
-
}), [...s]) : [],
|
139
|
-
if (!
|
140
|
-
const
|
141
|
-
return
|
142
|
-
},
|
143
|
-
const
|
144
|
-
return await
|
138
|
+
}, Lt = (e) => e ? Object.entries(e).reduce((t, [s, n]) => (typeof n == "function" ? t[s] = "any" : typeof n == "object" && (t[s] = jt(n).map((o) => `"${o}"`).join(" | ")), t), {}) : {}, jt = (e, t = "", s = /* @__PURE__ */ new Set()) => e ? (Object.entries(e).forEach(([n, o]) => {
|
139
|
+
const r = t ? `${t}.${n}` : n;
|
140
|
+
return typeof o == "object" ? jt(o, r, s) : s.add(t);
|
141
|
+
}), [...s]) : [], Ft = (e) => {
|
142
|
+
if (!e || e === "/") throw new Error("Could not find package.json file");
|
143
|
+
const t = u(e, "package.json");
|
144
|
+
return lt(t) ? t : Ft(u(e, ".."));
|
145
|
+
}, Qt = async (e) => {
|
146
|
+
const t = Ft(e);
|
147
|
+
return await ft(t, "utf-8").then(JSON.parse).catch(() => {
|
145
148
|
});
|
146
|
-
},
|
147
|
-
const
|
148
|
-
if (
|
149
|
-
return
|
149
|
+
}, Ut = async (e) => {
|
150
|
+
const t = await Qt(e);
|
151
|
+
if (t)
|
152
|
+
return t.type;
|
150
153
|
};
|
151
|
-
let
|
152
|
-
const
|
153
|
-
if (
|
154
|
-
const
|
155
|
-
return
|
156
|
-
},
|
154
|
+
let Z;
|
155
|
+
const Pt = async (e) => {
|
156
|
+
if (Z) return Z;
|
157
|
+
const t = await Ut(e);
|
158
|
+
return t === "module" ? Z = "esm" : (t === "commonjs" || import.meta.url.endsWith(".cjs")) && (Z = "cjs"), Z || "esm";
|
159
|
+
}, ct = Jt({
|
157
160
|
level: "debug",
|
158
|
-
format:
|
159
|
-
transports: [new
|
161
|
+
format: at.combine(at.colorize(), at.cli()),
|
162
|
+
transports: [new Wt.Console({})]
|
160
163
|
});
|
161
|
-
function xt(
|
162
|
-
return
|
164
|
+
function xt(e) {
|
165
|
+
return e ? typeof e != "string" ? xt(String(e)) : e.replace(/[\s-]/g, ".").replace(/[A-Z](?:(?=[^A-Z])|[A-Z]*(?=[A-Z][^A-Z]|$))/g, (t, s) => (s > 0 ? "." : "") + t.toLowerCase()) : "";
|
163
166
|
}
|
164
|
-
const
|
167
|
+
const qt = {
|
165
168
|
/** Set box model to border-box */
|
166
169
|
"*, *::before, *::after": {
|
167
170
|
boxSizing: "border-box"
|
@@ -207,132 +210,176 @@ const Kt = {
|
|
207
210
|
fontSize: "100%",
|
208
211
|
lineHeight: "1.15em"
|
209
212
|
}
|
210
|
-
},
|
213
|
+
}, I = (...e) => e.flat().reduce((t, s) => s != null && s._current ? { ...t, ...s._current } : { ...t, ...s }, {}), Xt = (...e) => e.flat().reduce((t, s) => ({ ...t, ...s._children }), {});
|
214
|
+
class Yt {
|
215
|
+
constructor(t) {
|
216
|
+
et(this, "_path");
|
217
|
+
this.params = t;
|
218
|
+
}
|
219
|
+
get _current() {
|
220
|
+
return this.params.template;
|
221
|
+
}
|
222
|
+
get isDefineTemplate() {
|
223
|
+
return !0;
|
224
|
+
}
|
225
|
+
_setPath(t) {
|
226
|
+
return this._path = t, this;
|
227
|
+
}
|
228
|
+
}
|
229
|
+
class te {
|
230
|
+
constructor(t) {
|
231
|
+
et(this, "_path");
|
232
|
+
et(this, "templates", []);
|
233
|
+
this.params = t, Object.entries(t).forEach(([s, n]) => {
|
234
|
+
this.templates.push(
|
235
|
+
new Yt({
|
236
|
+
name: s,
|
237
|
+
template: n
|
238
|
+
})
|
239
|
+
);
|
240
|
+
});
|
241
|
+
}
|
242
|
+
get _current() {
|
243
|
+
return this.params;
|
244
|
+
}
|
245
|
+
get _children() {
|
246
|
+
return Object.fromEntries(
|
247
|
+
this.templates.map((t) => [t.params.name, t])
|
248
|
+
);
|
249
|
+
}
|
250
|
+
get isDefineTemplates() {
|
251
|
+
return !0;
|
252
|
+
}
|
253
|
+
_setPath(t) {
|
254
|
+
return this._path = t, this.templates.forEach((s) => s._setPath(t)), this;
|
255
|
+
}
|
256
|
+
}
|
257
|
+
const ee = (e) => new te(e), W = {
|
211
258
|
externalModules: [],
|
212
259
|
rcFile: void 0,
|
213
260
|
destDir: void 0
|
214
|
-
}, Nt = (
|
261
|
+
}, Nt = (e) => {
|
215
262
|
if (W.externalModules.length > 0) return W.externalModules;
|
216
|
-
const s = M(
|
263
|
+
const s = M(e, "utf8").match(/externalModules:\s?\[(.*)\]/);
|
217
264
|
if (!s) return [];
|
218
265
|
const n = s[1].split(",").map((o) => o.replace(/['"`]/g, "").trim());
|
219
266
|
return W.externalModules = n, n;
|
220
|
-
}, v = async (
|
267
|
+
}, v = async (e) => {
|
221
268
|
if (W.destDir) return W.destDir;
|
222
|
-
const
|
269
|
+
const t = await ut(e), s = u(e, (t == null ? void 0 : t.saltygenDir) || "saltygen");
|
223
270
|
return W.destDir = s, s;
|
224
|
-
},
|
271
|
+
}, _t = ["salty", "css", "styles", "styled"], se = (e = []) => new RegExp(`\\.(${[..._t, ...e].join("|")})\\.`), B = (e, t = []) => se(t).test(e), kt = async (e) => {
|
225
272
|
if (W.rcFile) return W.rcFile;
|
226
|
-
if (
|
227
|
-
const
|
273
|
+
if (e === "/") throw new Error("Could not find .saltyrc.json file");
|
274
|
+
const t = u(e, ".saltyrc.json"), s = await ft(t, "utf-8").then(JSON.parse).catch(() => {
|
228
275
|
});
|
229
|
-
return s ? (W.rcFile = s, s) : kt(u(
|
230
|
-
},
|
276
|
+
return s ? (W.rcFile = s, s) : kt(u(e, ".."));
|
277
|
+
}, ut = async (e) => {
|
231
278
|
var n, o;
|
232
|
-
const
|
233
|
-
return s || ((o =
|
234
|
-
},
|
235
|
-
const
|
236
|
-
await
|
279
|
+
const t = await kt(e), s = (n = t.projects) == null ? void 0 : n.find((r) => e.endsWith(r.dir || ""));
|
280
|
+
return s || ((o = t.projects) == null ? void 0 : o.find((r) => r.dir === t.defaultProject));
|
281
|
+
}, ne = async (e) => {
|
282
|
+
const t = await ut(e), s = await v(e), n = u(e, (t == null ? void 0 : t.configDir) || "", "salty.config.ts"), o = u(s, "salty.config.js"), r = await Pt(e), i = Nt(n);
|
283
|
+
await bt.build({
|
237
284
|
entryPoints: [n],
|
238
285
|
minify: !0,
|
239
286
|
treeShaking: !0,
|
240
287
|
bundle: !0,
|
241
288
|
outfile: o,
|
242
289
|
format: r,
|
243
|
-
external:
|
290
|
+
external: i
|
244
291
|
});
|
245
|
-
const
|
246
|
-
return
|
247
|
-
},
|
248
|
-
var
|
249
|
-
const s = await v(
|
292
|
+
const y = Date.now(), { config: $ } = await import(`${o}?t=${y}`);
|
293
|
+
return { config: $, path: o };
|
294
|
+
}, oe = async (e, t) => {
|
295
|
+
var mt, ht;
|
296
|
+
const s = await v(e), n = {
|
250
297
|
mediaQueries: [],
|
251
298
|
globalStyles: [],
|
252
299
|
variables: [],
|
253
300
|
templates: []
|
254
301
|
};
|
255
302
|
await Promise.all(
|
256
|
-
[...
|
257
|
-
const { contents:
|
258
|
-
Object.entries(
|
259
|
-
|
303
|
+
[...t].map(async (j) => {
|
304
|
+
const { contents: P, outputFilePath: J } = await ot(e, j, s);
|
305
|
+
Object.entries(P).forEach(([D, O]) => {
|
306
|
+
O.isMedia ? n.mediaQueries.push([D, O]) : O.isGlobalDefine ? n.globalStyles.push(O) : O.isDefineVariables ? n.variables.push(O) : O.isDefineTemplates && n.templates.push(O._setPath(`${D};;${J}`));
|
260
307
|
});
|
261
308
|
})
|
262
309
|
);
|
263
|
-
const o = await
|
264
|
-
if (!
|
265
|
-
if (typeof
|
266
|
-
const
|
267
|
-
|
268
|
-
const
|
269
|
-
return
|
270
|
-
}) : [],
|
271
|
-
const
|
272
|
-
return
|
273
|
-
}) : [],
|
274
|
-
const
|
275
|
-
return `${
|
276
|
-
})) : [],
|
277
|
-
|
278
|
-
const
|
279
|
-
|
280
|
-
const
|
281
|
-
|
282
|
-
const
|
283
|
-
|
284
|
-
const L =
|
285
|
-
|
286
|
-
const { mediaQueries:
|
287
|
-
|
288
|
-
const
|
310
|
+
const { config: o, path: r } = await ne(e), i = { ...o }, y = /* @__PURE__ */ new Set(), $ = (j, P = []) => j ? Object.entries(j).flatMap(([J, D]) => {
|
311
|
+
if (!D) return;
|
312
|
+
if (typeof D == "object") return $(D, [...P, J]);
|
313
|
+
const O = xt(J), rt = A(J), it = [...P, O].join(".");
|
314
|
+
y.add(`"${it}"`);
|
315
|
+
const tt = [...P.map(A), rt].join("-"), gt = Ht(D);
|
316
|
+
return gt ? `--${tt}: ${gt.transformed};` : `--${tt}: ${D};`;
|
317
|
+
}) : [], l = (j) => j ? Object.entries(j).flatMap(([P, J]) => {
|
318
|
+
const D = $(J);
|
319
|
+
return P === "base" ? D.join("") : `${P} { ${D.join("")} }`;
|
320
|
+
}) : [], d = (j) => j ? Object.entries(j).flatMap(([P, J]) => Object.entries(J).flatMap(([D, O]) => {
|
321
|
+
const rt = $(O, [P]), it = `.${P}-${D}, [data-${P}="${D}"]`, tt = rt.join("");
|
322
|
+
return `${it} { ${tt} }`;
|
323
|
+
})) : [], w = (j) => ({ ...j, responsive: void 0, conditional: void 0 }), g = (j) => n.variables.map((P) => j === "static" ? w(P._current) : P._current[j]), m = I(w(o.variables), g("static")), a = $(m), p = I((mt = o.variables) == null ? void 0 : mt.responsive, g("responsive")), x = l(p), F = I((ht = o.variables) == null ? void 0 : ht.conditional, g("conditional")), R = d(F), N = u(s, "css/_variables.css"), V = `:root { ${a.join("")} ${x.join("")} } ${R.join("")}`;
|
324
|
+
k(N, V), i.staticVariables = m;
|
325
|
+
const C = u(s, "css/_global.css"), E = I(o.global, n.globalStyles), c = await U(E, "");
|
326
|
+
k(C, `@layer global { ${c} }`);
|
327
|
+
const h = u(s, "css/_reset.css"), f = o.reset === "none" ? {} : typeof o.reset == "object" ? o.reset : qt, b = await U(f, "");
|
328
|
+
k(h, `@layer reset { ${b} }`);
|
329
|
+
const _ = u(s, "css/_templates.css"), T = I(o.templates, n.templates), G = await St(T), K = Lt(T);
|
330
|
+
k(_, `@layer templates { ${G} }`), i.templates = T;
|
331
|
+
const L = o.templates ? [ee(o.templates)._setPath(`config;;${r}`)] : [], q = Xt(n.templates, L);
|
332
|
+
i.templatePaths = Object.fromEntries(Object.entries(q).map(([j, P]) => [j, P._path]));
|
333
|
+
const { mediaQueries: X } = n;
|
334
|
+
i.mediaQueries = Object.fromEntries(X.map(([j, P]) => [`@${j}`, P]));
|
335
|
+
const Q = X.map(([j]) => `'@${j}'`).join(" | "), Y = u(s, "types/css-tokens.d.ts"), Dt = `
|
289
336
|
// Variable types
|
290
|
-
type VariableTokens = ${[...
|
337
|
+
type VariableTokens = ${[...y].join("|")};
|
291
338
|
type PropertyValueToken = \`{\${VariableTokens}}\`;
|
292
339
|
|
293
340
|
// Template types
|
294
341
|
type TemplateTokens = {
|
295
|
-
${Object.entries(K).map(([
|
342
|
+
${Object.entries(K).map(([j, P]) => `${j}?: ${P}`).join(`
|
296
343
|
`)}
|
297
344
|
}
|
298
345
|
|
299
346
|
// Media query types
|
300
|
-
type MediaQueryKeys = ${
|
347
|
+
type MediaQueryKeys = ${Q || "''"};
|
301
348
|
`;
|
302
|
-
|
303
|
-
const
|
304
|
-
|
305
|
-
},
|
306
|
-
if (/^['"`]/.test(s)) return
|
349
|
+
k(Y, Dt);
|
350
|
+
const Et = u(s, "cache/config-cache.json");
|
351
|
+
k(Et, JSON.stringify(i, null, 2));
|
352
|
+
}, $t = (e) => e.replace(/styled\(([^"'`{,]+),/g, (t, s) => {
|
353
|
+
if (/^['"`]/.test(s)) return t;
|
307
354
|
const o = new RegExp(`import[^;]*${s}[,\\s{][^;]*from\\s?([^{};]+);`);
|
308
|
-
if (!o.test(
|
309
|
-
const
|
310
|
-
if (
|
311
|
-
const
|
312
|
-
if (
|
355
|
+
if (!o.test(e)) return t;
|
356
|
+
const i = o.exec(e);
|
357
|
+
if (i) {
|
358
|
+
const y = i.at(1);
|
359
|
+
if (_t.some((l) => y == null ? void 0 : y.includes(l))) return t;
|
313
360
|
}
|
314
361
|
return "styled('div',";
|
315
|
-
}),
|
362
|
+
}), re = (e, t) => {
|
316
363
|
try {
|
317
|
-
const s = M(u(
|
364
|
+
const s = M(u(t, "saltygen/cache/config-cache.json"), "utf8");
|
318
365
|
return s ? `globalThis.saltyConfig = ${s};
|
319
366
|
|
320
|
-
${
|
367
|
+
${e}` : `globalThis.saltyConfig = {};
|
321
368
|
|
322
|
-
${
|
369
|
+
${e}`;
|
323
370
|
} catch {
|
324
|
-
return
|
371
|
+
return e;
|
325
372
|
}
|
326
|
-
},
|
327
|
-
const n = z(
|
328
|
-
|
329
|
-
const r =
|
330
|
-
let
|
331
|
-
|
332
|
-
const
|
333
|
-
await
|
373
|
+
}, ot = async (e, t, s) => {
|
374
|
+
const n = z(t), o = u(s, "./temp");
|
375
|
+
lt(o) || H(o);
|
376
|
+
const r = nt(t);
|
377
|
+
let i = M(t, "utf8");
|
378
|
+
i = $t(i), i = re(i, e);
|
379
|
+
const y = u(s, "js", n + ".js"), $ = await ut(e), l = u(e, ($ == null ? void 0 : $.configDir) || "", "salty.config.ts"), d = Nt(l), w = await Pt(e);
|
380
|
+
await bt.build({
|
334
381
|
stdin: {
|
335
|
-
contents:
|
382
|
+
contents: i,
|
336
383
|
sourcefile: r.base,
|
337
384
|
resolveDir: r.dir,
|
338
385
|
loader: "tsx"
|
@@ -340,8 +387,8 @@ ${t}`;
|
|
340
387
|
minify: !1,
|
341
388
|
treeShaking: !0,
|
342
389
|
bundle: !0,
|
343
|
-
outfile:
|
344
|
-
format:
|
390
|
+
outfile: y,
|
391
|
+
format: w,
|
345
392
|
target: ["node20"],
|
346
393
|
keepNames: !0,
|
347
394
|
external: d,
|
@@ -349,123 +396,123 @@ ${t}`;
|
|
349
396
|
plugins: [
|
350
397
|
{
|
351
398
|
name: "test",
|
352
|
-
setup: (
|
353
|
-
|
354
|
-
const
|
355
|
-
return { contents:
|
399
|
+
setup: (a) => {
|
400
|
+
a.onLoad({ filter: /.*\.css|salty|styles|styled\.ts/ }, (p) => {
|
401
|
+
const x = M(p.path, "utf8");
|
402
|
+
return { contents: $t(x), loader: "ts" };
|
356
403
|
});
|
357
404
|
}
|
358
405
|
}
|
359
406
|
]
|
360
407
|
});
|
361
|
-
const
|
362
|
-
return { contents: await import(`${
|
363
|
-
},
|
364
|
-
const
|
408
|
+
const g = Date.now();
|
409
|
+
return { contents: await import(`${y}?t=${g}`), outputFilePath: y };
|
410
|
+
}, ie = async (e) => {
|
411
|
+
const t = await v(e), s = u(t, "cache/config-cache.json"), n = M(s, "utf8");
|
365
412
|
if (!n) throw new Error("Could not find config cache file");
|
366
413
|
return JSON.parse(n);
|
367
|
-
},
|
368
|
-
const
|
369
|
-
return
|
370
|
-
},
|
414
|
+
}, dt = async (e) => {
|
415
|
+
const t = await ie(e), s = await v(e), n = u(s, "salty.config.js"), o = Date.now(), { config: r } = await import(`${n}?t=${o}`);
|
416
|
+
return I(r, t);
|
417
|
+
}, pt = () => {
|
371
418
|
try {
|
372
419
|
return process.env.NODE_ENV === "production";
|
373
420
|
} catch {
|
374
421
|
return !1;
|
375
422
|
}
|
376
|
-
},
|
423
|
+
}, ae = async (e, t = pt(), s = !0) => {
|
377
424
|
try {
|
378
425
|
const n = Date.now();
|
379
|
-
|
380
|
-
const o = [], r = [],
|
426
|
+
t ? ct.info("Generating CSS in production mode! 🔥") : ct.info("Generating CSS in development mode! 🚀");
|
427
|
+
const o = [], r = [], i = await v(e), y = u(i, "index.css");
|
381
428
|
s && (() => {
|
382
|
-
|
429
|
+
lt(i) && Vt("rm -rf " + i), H(i, { recursive: !0 }), H(u(i, "css")), H(u(i, "types")), H(u(i, "js")), H(u(i, "cache"));
|
383
430
|
})();
|
384
431
|
const l = /* @__PURE__ */ new Set(), d = /* @__PURE__ */ new Set();
|
385
|
-
async function
|
386
|
-
const
|
387
|
-
if (
|
388
|
-
const f =
|
389
|
-
if (
|
390
|
-
await Promise.all(f.map((
|
391
|
-
} else if (
|
432
|
+
async function w(c) {
|
433
|
+
const h = ["node_modules", "saltygen"], S = Mt(c);
|
434
|
+
if (S.isDirectory()) {
|
435
|
+
const f = Rt(c);
|
436
|
+
if (h.some((_) => c.includes(_))) return;
|
437
|
+
await Promise.all(f.map((_) => w(u(c, _))));
|
438
|
+
} else if (S.isFile() && B(c)) {
|
392
439
|
l.add(c);
|
393
440
|
const b = M(c, "utf8");
|
394
441
|
/define[\w\d]+\(/.test(b) && d.add(c);
|
395
442
|
}
|
396
443
|
}
|
397
|
-
await
|
398
|
-
const
|
444
|
+
await w(e), await oe(e, d);
|
445
|
+
const g = {
|
399
446
|
keyframes: [],
|
400
447
|
components: [],
|
401
448
|
classNames: []
|
402
449
|
};
|
403
450
|
await Promise.all(
|
404
451
|
[...l].map(async (c) => {
|
405
|
-
const { contents:
|
406
|
-
Object.entries(
|
407
|
-
f.isKeyframes ?
|
452
|
+
const { contents: h } = await ot(e, c, i);
|
453
|
+
Object.entries(h).forEach(([S, f]) => {
|
454
|
+
f.isKeyframes ? g.keyframes.push({
|
408
455
|
value: f,
|
409
456
|
src: c,
|
410
|
-
name:
|
411
|
-
}) : f.isClassName ?
|
457
|
+
name: S
|
458
|
+
}) : f.isClassName ? g.classNames.push({
|
412
459
|
...f,
|
413
460
|
src: c,
|
414
|
-
name:
|
415
|
-
}) : f.generator &&
|
461
|
+
name: S
|
462
|
+
}) : f.generator && g.components.push({
|
416
463
|
...f,
|
417
464
|
src: c,
|
418
|
-
name:
|
465
|
+
name: S
|
419
466
|
});
|
420
467
|
});
|
421
468
|
})
|
422
469
|
);
|
423
|
-
const m = await
|
424
|
-
for (const c of
|
425
|
-
const { value:
|
426
|
-
o.push(
|
470
|
+
const m = await dt(e);
|
471
|
+
for (const c of g.keyframes) {
|
472
|
+
const { value: h } = c, S = `a_${h.animationName}.css`, f = `css/${S}`, b = u(i, f);
|
473
|
+
o.push(S), k(b, h.css);
|
427
474
|
}
|
428
|
-
const
|
429
|
-
for (const c of
|
430
|
-
const { src:
|
431
|
-
|
475
|
+
const a = {};
|
476
|
+
for (const c of g.components) {
|
477
|
+
const { src: h, name: S } = c;
|
478
|
+
a[h] || (a[h] = []);
|
432
479
|
const f = c.generator._withBuildContext({
|
433
|
-
callerName:
|
434
|
-
isProduction:
|
480
|
+
callerName: S,
|
481
|
+
isProduction: t,
|
435
482
|
config: m
|
436
483
|
});
|
437
484
|
r[f.priority] || (r[f.priority] = []);
|
438
485
|
const b = await f.css;
|
439
486
|
if (!b) continue;
|
440
487
|
r[f.priority].push(f.cssFileName);
|
441
|
-
const
|
442
|
-
|
488
|
+
const _ = `css/${f.cssFileName}`, T = u(i, _);
|
489
|
+
k(T, b), m.importStrategy === "component" && a[h].push(f.cssFileName);
|
443
490
|
}
|
444
|
-
for (const c of
|
445
|
-
const { src:
|
446
|
-
|
491
|
+
for (const c of g.classNames) {
|
492
|
+
const { src: h, name: S } = c;
|
493
|
+
a[h] || (a[h] = []);
|
447
494
|
const f = c.generator._withBuildContext({
|
448
|
-
callerName:
|
449
|
-
isProduction:
|
495
|
+
callerName: S,
|
496
|
+
isProduction: t,
|
450
497
|
config: m
|
451
498
|
}), b = await f.css;
|
452
499
|
if (!b) continue;
|
453
500
|
r[0].push(f.cssFileName);
|
454
|
-
const
|
455
|
-
|
501
|
+
const _ = `css/${f.cssFileName}`, T = u(i, _);
|
502
|
+
k(T, b), m.importStrategy === "component" && a[h].push(f.cssFileName);
|
456
503
|
}
|
457
|
-
m.importStrategy === "component" && Object.entries(
|
458
|
-
const
|
459
|
-
`), f = z(c, 6), b =
|
460
|
-
|
504
|
+
m.importStrategy === "component" && Object.entries(a).forEach(([c, h]) => {
|
505
|
+
const S = h.map((G) => `@import url('./${G}');`).join(`
|
506
|
+
`), f = z(c, 6), b = nt(c), _ = A(b.name), T = u(i, `css/f_${_}-${f}.css`);
|
507
|
+
k(T, S || "/* Empty file */");
|
461
508
|
});
|
462
509
|
const p = o.map((c) => `@import url('./css/${c}');`).join(`
|
463
510
|
`);
|
464
|
-
let
|
511
|
+
let N = `@layer reset, global, templates, l0, l1, l2, l3, l4, l5, l6, l7, l8;
|
465
512
|
|
466
513
|
${["_variables.css", "_reset.css", "_global.css", "_templates.css"].filter((c) => {
|
467
514
|
try {
|
468
|
-
return M(u(
|
515
|
+
return M(u(i, "css", c), "utf8").length > 0;
|
469
516
|
} catch {
|
470
517
|
return !1;
|
471
518
|
}
|
@@ -473,121 +520,121 @@ ${["_variables.css", "_reset.css", "_global.css", "_templates.css"].filter((c) =
|
|
473
520
|
`)}
|
474
521
|
${p}`;
|
475
522
|
if (m.importStrategy !== "component") {
|
476
|
-
const c = r.reduce((
|
477
|
-
const b =
|
478
|
-
var
|
479
|
-
const
|
480
|
-
return
|
481
|
-
/*start:${
|
482
|
-
${
|
483
|
-
/*end:${
|
523
|
+
const c = r.reduce((h, S, f) => {
|
524
|
+
const b = S.reduce((K, L) => {
|
525
|
+
var Y;
|
526
|
+
const q = u(i, "css", L), X = M(q, "utf8"), Q = ((Y = /.*-([^-]+)-\d+.css/.exec(L)) == null ? void 0 : Y.at(1)) || z(q, 6);
|
527
|
+
return K.includes(Q) ? K : `${K}
|
528
|
+
/*start:${Q}-${L}*/
|
529
|
+
${X}
|
530
|
+
/*end:${Q}*/
|
484
531
|
`;
|
485
|
-
}, ""),
|
532
|
+
}, ""), _ = `l_${f}.css`, T = u(i, "css", _), G = `@layer l${f} { ${b}
|
486
533
|
}`;
|
487
|
-
return
|
488
|
-
@import url('./css/${
|
534
|
+
return k(T, G), `${h}
|
535
|
+
@import url('./css/${_}');`;
|
489
536
|
}, "");
|
490
|
-
|
537
|
+
N += c;
|
491
538
|
}
|
492
|
-
|
539
|
+
k(y, N);
|
493
540
|
const C = Date.now() - n, E = C < 200 ? "🔥" : C < 500 ? "🚀" : C < 1e3 ? "🎉" : C < 2e3 ? "🚗" : C < 5e3 ? "🤔" : "🥴";
|
494
|
-
|
541
|
+
ct.info(`Generated CSS in ${C}ms! ${E}`);
|
495
542
|
} catch (n) {
|
496
543
|
console.error(n);
|
497
544
|
}
|
498
|
-
},
|
545
|
+
}, ce = async (e, t, s = pt()) => {
|
499
546
|
try {
|
500
|
-
const n = await v(
|
501
|
-
if (
|
502
|
-
const r = [],
|
503
|
-
for (const [
|
547
|
+
const n = await v(e);
|
548
|
+
if (B(t)) {
|
549
|
+
const r = [], i = await dt(e), { contents: y } = await ot(e, t, n);
|
550
|
+
for (const [$, l] of Object.entries(y)) {
|
504
551
|
if (l.isKeyframes && l.css) {
|
505
|
-
const p = `css/${`a_${l.animationName}.css`}`,
|
506
|
-
|
552
|
+
const p = `css/${`a_${l.animationName}.css`}`, x = u(n, p);
|
553
|
+
k(x, await l.css);
|
507
554
|
return;
|
508
555
|
}
|
509
556
|
if (l.isClassName) {
|
510
|
-
const
|
511
|
-
callerName:
|
557
|
+
const a = l.generator._withBuildContext({
|
558
|
+
callerName: $,
|
512
559
|
isProduction: s,
|
513
|
-
config:
|
514
|
-
}), p = await
|
560
|
+
config: i
|
561
|
+
}), p = await a.css;
|
515
562
|
if (!p) continue;
|
516
|
-
r[0].push(
|
517
|
-
const
|
518
|
-
|
563
|
+
r[0].push(a.cssFileName);
|
564
|
+
const x = `css/${a.cssFileName}`, F = u(n, x);
|
565
|
+
k(F, p);
|
519
566
|
}
|
520
567
|
if (!l.generator) return;
|
521
568
|
const d = l.generator._withBuildContext({
|
522
|
-
callerName:
|
569
|
+
callerName: $,
|
523
570
|
isProduction: s,
|
524
|
-
config:
|
525
|
-
}),
|
526
|
-
if (!
|
527
|
-
const
|
528
|
-
|
571
|
+
config: i
|
572
|
+
}), w = await d.css;
|
573
|
+
if (!w) continue;
|
574
|
+
const g = `css/${d.cssFileName}`, m = u(n, g);
|
575
|
+
k(m, w), r[d.priority] || (r[d.priority] = []), r[d.priority].push(d.cssFileName);
|
529
576
|
}
|
530
|
-
if (
|
531
|
-
r.forEach((
|
532
|
-
const d = `l_${l}.css`,
|
533
|
-
let
|
534
|
-
|
577
|
+
if (i.importStrategy !== "component")
|
578
|
+
r.forEach(($, l) => {
|
579
|
+
const d = `l_${l}.css`, w = u(n, "css", d);
|
580
|
+
let g = M(w, "utf8");
|
581
|
+
$.forEach((m) => {
|
535
582
|
var F;
|
536
|
-
const
|
537
|
-
if (
|
538
|
-
const R = M(
|
583
|
+
const a = u(n, "css", m), p = ((F = /.*-([^-]+)-\d+.css/.exec(m)) == null ? void 0 : F.at(1)) || z(a, 6);
|
584
|
+
if (!g.includes(p)) {
|
585
|
+
const R = M(a, "utf8"), N = `/*start:${p}-${m}*/
|
539
586
|
${R}
|
540
587
|
/*end:${p}*/
|
541
588
|
`;
|
542
|
-
|
543
|
-
${
|
589
|
+
g = `${g.replace(/\}$/, "")}
|
590
|
+
${N}
|
544
591
|
}`;
|
545
592
|
}
|
546
|
-
}),
|
593
|
+
}), k(w, g);
|
547
594
|
});
|
548
595
|
else {
|
549
|
-
const
|
550
|
-
`), l = z(
|
551
|
-
|
596
|
+
const $ = r.flat().map((m) => `@import url('./${m}');`).join(`
|
597
|
+
`), l = z(t, 6), d = nt(t), w = A(d.name), g = u(n, `css/f_${w}-${l}.css`);
|
598
|
+
k(g, $ || "/* Empty file */");
|
552
599
|
}
|
553
600
|
}
|
554
601
|
} catch (n) {
|
555
602
|
console.error(n);
|
556
603
|
}
|
557
|
-
},
|
604
|
+
}, le = async (e, t, s = pt()) => {
|
558
605
|
try {
|
559
|
-
const n = await v(
|
560
|
-
if (
|
561
|
-
const r = M(
|
562
|
-
r.replace(/^(?!export\s)const\s.*/gm, (d) => `export ${d}`) !== r && await
|
563
|
-
const
|
606
|
+
const n = await v(e);
|
607
|
+
if (B(t)) {
|
608
|
+
const r = M(t, "utf8");
|
609
|
+
r.replace(/^(?!export\s)const\s.*/gm, (d) => `export ${d}`) !== r && await At(t, r);
|
610
|
+
const y = await dt(e), { contents: $ } = await ot(e, t, n);
|
564
611
|
let l = r;
|
565
|
-
if (Object.entries(
|
612
|
+
if (Object.entries($).forEach(([d, w]) => {
|
566
613
|
var f;
|
567
|
-
if (
|
568
|
-
const
|
614
|
+
if (w.isKeyframes || !w.generator) return;
|
615
|
+
const g = w.generator._withBuildContext({
|
569
616
|
callerName: d,
|
570
617
|
isProduction: s,
|
571
|
-
config:
|
618
|
+
config: y
|
572
619
|
}), m = new RegExp(`\\s${d}[=\\s]+[^()]+styled\\(([^,]+),`, "g").exec(r);
|
573
620
|
if (!m) return console.error("Could not find the original declaration");
|
574
|
-
const
|
621
|
+
const a = (f = m.at(1)) == null ? void 0 : f.trim(), p = new RegExp(`\\s${d}[=\\s]+styled\\(`, "g").exec(l);
|
575
622
|
if (!p) return console.error("Could not find the original declaration");
|
576
|
-
const { index:
|
623
|
+
const { index: x } = p;
|
577
624
|
let F = !1;
|
578
625
|
const R = setTimeout(() => F = !0, 5e3);
|
579
|
-
let
|
580
|
-
for (; !
|
581
|
-
const b = l[
|
582
|
-
b === "(" && C++, b === ")" && C--, C === 0 && b === ")" && (
|
626
|
+
let N = 0, V = !1, C = 0;
|
627
|
+
for (; !V && !F; ) {
|
628
|
+
const b = l[x + N];
|
629
|
+
b === "(" && C++, b === ")" && C--, C === 0 && b === ")" && (V = !0), N > l.length && (F = !0), N++;
|
583
630
|
}
|
584
631
|
if (!F) clearTimeout(R);
|
585
632
|
else throw new Error("Failed to find the end of the styled call and timed out");
|
586
|
-
const E =
|
587
|
-
l = l.replace(c,
|
588
|
-
}),
|
589
|
-
const d = z(
|
590
|
-
l = `import '../../saltygen/css/${`f_${A(
|
633
|
+
const E = x + N, c = l.slice(x, E), h = l, S = ` ${d} = styled(${a}, "${g.classNames}", ${JSON.stringify(g.clientProps)});`;
|
634
|
+
l = l.replace(c, S), h === l && console.error("Minimize file failed to change content", { name: d, tagName: a });
|
635
|
+
}), y.importStrategy === "component") {
|
636
|
+
const d = z(t, 6), w = nt(t);
|
637
|
+
l = `import '../../saltygen/css/${`f_${A(w.name)}-${d}.css`}';
|
591
638
|
${l}`;
|
592
639
|
}
|
593
640
|
return l = l.replace("{ styled }", "{ styledClient as styled }"), l = l.replace("@salty-css/react/styled", "@salty-css/react/styled-client"), l;
|
@@ -595,29 +642,29 @@ ${l}`;
|
|
595
642
|
} catch (n) {
|
596
643
|
console.error("Error in minimizeFile:", n);
|
597
644
|
}
|
598
|
-
},
|
599
|
-
if (!
|
600
|
-
if (
|
601
|
-
if (!
|
602
|
-
const n = await
|
645
|
+
}, wt = async (e) => {
|
646
|
+
if (!e || e.includes("node_modules") || e.includes("saltygen")) return !1;
|
647
|
+
if (e.includes("salty.config")) return !0;
|
648
|
+
if (!B(e)) return !1;
|
649
|
+
const n = await ft(e, "utf-8");
|
603
650
|
return !!/.+define[A-Z]\w+/.test(n);
|
604
|
-
},
|
651
|
+
}, ye = (e) => ({
|
605
652
|
name: "stylegen",
|
606
|
-
buildStart: () =>
|
607
|
-
load: async (
|
608
|
-
if (
|
609
|
-
return await
|
653
|
+
buildStart: () => ae(e),
|
654
|
+
load: async (t) => {
|
655
|
+
if (B(t))
|
656
|
+
return await le(e, t);
|
610
657
|
},
|
611
|
-
handleHotUpdate: async ({ file:
|
612
|
-
await
|
658
|
+
handleHotUpdate: async ({ file: t, server: s }) => {
|
659
|
+
await wt(t) && await s.restart();
|
613
660
|
},
|
614
661
|
watchChange: {
|
615
|
-
handler: async (
|
616
|
-
|
662
|
+
handler: async (t) => {
|
663
|
+
B(t) && (await wt(t) || await ce(e, t));
|
617
664
|
}
|
618
665
|
}
|
619
666
|
});
|
620
667
|
export {
|
621
|
-
|
622
|
-
|
668
|
+
ye as default,
|
669
|
+
ye as saltyPlugin
|
623
670
|
};
|
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.211",
|
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.211"
|
38
38
|
}
|
39
39
|
}
|