@salty-css/vite 0.0.1-alpha.60 → 0.0.1-alpha.62
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 +13 -13
- package/index.js +161 -153
- package/package.json +2 -2
package/index.cjs
CHANGED
@@ -1,18 +1,18 @@
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const Y=require("esbuild"),Q=require("child_process"),y=require("path"),g=require("fs"),v=require("fs/promises");var V=typeof document<"u"?document.currentScript:null;function tt(t){const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const s in t)if(s!=="default"){const n=Object.getOwnPropertyDescriptor(t,s);Object.defineProperty(e,s,n.get?n:{enumerable:!0,get:()=>t[s]})}}return e.default=t,Object.freeze(e)}const B=tt(Y),W=t=>String.fromCharCode(t+(t>25?39:97)),et=(t,e)=>{let s="",n;for(n=Math.abs(t);n>52;n=n/52|0)s=W(n%52)+s;return s=W(n%52)+s,s.length<e?s=s.padStart(e,"a"):s.length>e&&(s=s.slice(-e)),s},st=(t,e)=>{let s=e.length;for(;s;)t=t*33^e.charCodeAt(--s);return t},R=(t,e=3)=>{const s=st(5381,JSON.stringify(t))>>>0;return et(s,e)};function D(t){return t?typeof t!="string"?D(String(t)):t.replace(/\s/g,"-").replace(/[A-Z](?:(?=[^A-Z])|[A-Z]*(?=[A-Z][^A-Z]|$))/g,(e,s)=>(s>0?"-":"")+e.toLowerCase()):""}const nt=(t,e)=>{if(typeof t!="string")return{result:t};if(!e)return{result:t};const s=[];return Object.values(e).forEach(n=>{const{pattern:o,transform:p}=n;t=t.replace(o,d=>{const{value:a,css:c}=p(d);return c&&s.push(c),a})}),{result:t,additionalCss:s}},Z=t=>typeof t!="string"?{result:t}:/\{[^{}]+\}/g.test(t)?{result:t.replace(/\{([^{}]+)\}/g,(...n)=>`var(--${D(n[1].replaceAll(".","-"))})`)}:{result:t},P=(t,e,s,n)=>{if(!t)return"";const o=[],p=Object.entries(t).reduce((a,[c,r])=>{const u=c.trim();if(typeof r=="function"&&(r=r()),typeof r=="object"){if(!r)return a;if(u==="variants")return Object.entries(r).forEach(([i,f])=>{f&&Object.entries(f).forEach(([$,h])=>{if(!h)return;const F=`${e}.${i}-${$}`,j=P(h,F);o.push(j)})}),a;if(u==="defaultVariants")return a;if(u==="compoundVariants")return r.forEach(i=>{const{css:f,...$}=i,h=Object.entries($).reduce((j,[w,O])=>`${j}.${w}-${O}`,e),F=P(f,h);o.push(F)}),a;if(u.startsWith("@")){const i=P(r,e),f=`${u} {
|
2
2
|
${i.replace(`
|
3
3
|
`,`
|
4
4
|
`)}
|
5
|
-
}`;return o.push(f),
|
6
|
-
`);if(!e)return
|
7
|
-
`)},
|
8
|
-
`)},
|
9
|
-
`),$=
|
10
|
-
`);let
|
5
|
+
}`;return o.push(f),a}const m=c.includes("&")?u.replace("&",e):u.startsWith(":")?`${e}${u}`:`${e} ${u}`,C=P(r,m);return o.push(C),a}const k=u.startsWith("-")?u:D(u),b=(m,C=";")=>a=`${a}${m}${C}`,l=m=>b(`${k}:${m}`);if(typeof r=="number")return l(r);if(typeof r!="string")if("toString"in r)r=r.toString();else return a;const{modifiers:S}={},x=function*(){yield Z(r),yield nt(r,S)}();for(const{result:m,additionalCss:C=[]}of x)r=m,C.forEach(i=>{const f=P(i,"");b(f,"")});return l(r)},"");if(!p)return o.join(`
|
6
|
+
`);if(!e)return p;let d="";return d=`${e} { ${p} }`,[d,...o].join(`
|
7
|
+
`)},z=(t,e=[])=>{if(!t)return"";const s=[],n={};if(Object.entries(t).forEach(([o,p])=>{if(typeof p=="object"){if(!p)return;const d=o.trim(),a=z(p,[...e,d]);s.push(a)}else n[o]=p}),Object.keys(n).length){const o=e.map(D).join("-"),p=P(n,`.${o}`);s.push(p)}return s.join(`
|
8
|
+
`)},U=()=>(typeof document>"u"?require("url").pathToFileURL(__filename).href:V&&V.tagName.toUpperCase()==="SCRIPT"&&V.src||new URL("index.cjs",document.baseURI).href).endsWith(".cjs")?"cjs":"esm",_={externalModules:[]},H=t=>{if(_.externalModules.length>0)return _.externalModules;const e=y.join(t,"salty.config.ts"),n=g.readFileSync(e,"utf8").match(/externalModules:\s?\[(.*)\]/);if(!n)return[];const o=n[1].split(",").map(p=>p.replace(/['"`]/g,"").trim());return _.externalModules=o,o},E=t=>y.join(t,"./saltygen"),ot=["salty","css","styles","styled"],rt=(t=[])=>new RegExp(`\\.(${[...ot,...t].join("|")})\\.`),N=(t,e=[])=>rt(e).test(t),it=async t=>{const e=E(t),s=y.join(t,"salty.config.ts"),n=y.join(e,"salty.config.js"),o=U(),p=H(t);await B.build({entryPoints:[s],minify:!0,treeShaking:!0,bundle:!0,outfile:n,format:o,external:p});const d=Date.now(),{config:a}=await import(`${n}?t=${d}`);return a},L=async t=>{const e=await it(t),s=new Set,n=(i,f=[])=>i?Object.entries(i).flatMap(([$,h])=>{if(!h)return;if(typeof h=="object")return n(h,[...f,$]);const F=[...f,$].join(".");s.add(`"${F}"`);const j=[...f.map(D),D($)].join("-"),{result:w}=Z(h);return`--${j}: ${w};`}):[],o=i=>i?Object.entries(i).flatMap(([f,$])=>{const h=n($);return f==="base"?h.join(""):`${f} { ${h.join("")} }`}):[],p=i=>i?Object.entries(i).flatMap(([f,$])=>Object.entries($).flatMap(([h,F])=>{const j=n(F,[f]),w=`.${f}-${h}, [data-${f}="${h}"]`,O=j.join("");return`${w} { ${O} }`})):[],d=n(e.variables),a=o(e.responsiveVariables),c=p(e.conditionalVariables),r=E(t),u=y.join(r,"css/variables.css"),k=`:root { ${d.join("")} ${a.join("")} } ${c.join("")}`;g.writeFileSync(u,k);const b=y.join(r,"types/css-tokens.d.ts"),S=`type VariableTokens = ${[...s].join("|")||'""'}; type PropertyValueToken = \`{\${VariableTokens}}\``;g.writeFileSync(b,S);const T=y.join(r,"css/global.css"),x=P(e.global,"");g.writeFileSync(T,x);const m=y.join(r,"css/templates.css"),C=z(e.templates);g.writeFileSync(m,C)},A=async(t,e,s)=>{const n=R(e),o=y.join(s,"js",n+".js"),p=U(),d=H(t);await B.build({entryPoints:[e],minify:!0,treeShaking:!0,bundle:!0,outfile:o,format:p,target:["es2022"],keepNames:!0,external:d});const a=Date.now();return await import(`${o}?t=${a}`)},q=async t=>{const e=E(t),s=y.join(e,"salty.config.js"),{config:n}=await import(s);return n},ct=async t=>{try{const e=[],s=[],n=E(t),o=y.join(n,"index.css");(()=>{g.existsSync(n)&&Q.execSync("rm -rf "+n),g.mkdirSync(n),g.mkdirSync(y.join(n,"css")),g.mkdirSync(y.join(n,"types"))})(),await L(t);const d=await q(t);async function a(l,S){const T=["node_modules","saltygen"],x=g.statSync(l);if(x.isDirectory()){const m=g.readdirSync(l);if(T.some(i=>l.includes(i)))return;await Promise.all(m.map(i=>a(y.join(l,i),y.join(S,i))))}else if(x.isFile()&&N(l)){const C=await A(t,l,n),i=[];Object.entries(C).forEach(([F,j])=>{if(j.isKeyframes&&j.css){const I=`${j.animationName}.css`,G=`css/${I}`,X=y.join(n,G);e.push(I),g.writeFileSync(X,j.css);return}if(!j.generator)return;const w=j.generator._withBuildContext({name:F,config:d}),O=`${w.hash}-${w.priority}.css`;s[w.priority]||(s[w.priority]=[]),s[w.priority].push(O),i.push(O);const M=`css/${O}`,K=y.join(n,M);g.writeFileSync(K,w.css)});const f=i.map(F=>`@import url('./${F}');`).join(`
|
9
|
+
`),$=R(l,6),h=y.join(n,`css/${$}.css`);g.writeFileSync(h,f)}}await a(t,n);const c=e.map(l=>`@import url('./css/${l}');`).join(`
|
10
|
+
`);let b=`@layer l0, l1, l2, l3, l4, l5, l6, l7, l8;
|
11
11
|
|
12
|
-
${["variables.css","global.css","templates.css"].filter(
|
12
|
+
${["variables.css","global.css","templates.css"].filter(l=>{try{return g.readFileSync(y.join(n,"css",l),"utf8").length>0}catch{return!1}}).map(l=>`@import url('./css/${l}');`).join(`
|
13
13
|
`)}
|
14
|
-
${c}`;if(d.importStrategy!=="component"){const
|
15
|
-
`);
|
16
|
-
`),r=s.map(
|
17
|
-
`);
|
18
|
-
${c}`),c=c.replace("{ styled }","{ styledClient as styled }"),c=c.replace("@salty-css/react/styled","@salty-css/react/styled-client"),c}}catch(s){console.error("Error in minimizeFile:",s)}},
|
14
|
+
${c}`;if(d.importStrategy!=="component"){const l=s.flat().map(S=>`@import url('./css/${S}');`).join(`
|
15
|
+
`);b+=l}g.writeFileSync(o,b)}catch(e){console.error(e)}},at=async(t,e)=>{try{const s=[],n=y.join(t,"./saltygen"),o=y.join(n,"index.css");if(N(e)){const d=await q(t),a=await A(t,e,n);Object.entries(a).forEach(([b,l])=>{if(!l.generator)return;const S=l.generator._withBuildContext({name:b,config:d}),T=`${S.hash}-${S.priority}.css`,x=`css/${T}`,m=y.join(n,x);s.push(T),g.writeFileSync(m,S.css)});const c=g.readFileSync(o,"utf8").split(`
|
16
|
+
`),r=s.map(b=>`@import url('../saltygen/css/${b}');`),k=[...new Set([...c,...r])].join(`
|
17
|
+
`);g.writeFileSync(o,k)}}catch(s){console.error(s)}},lt=async(t,e)=>{try{const s=y.join(t,"./saltygen");if(N(e)){const o=g.readFileSync(e,"utf8");o.replace(/^(?!export\s)const\s.*/gm,u=>`export ${u}`)!==o&&await v.writeFile(e,o);const d=await q(t),a=await A(t,e,s);let c=o;Object.entries(a).forEach(([u,k])=>{var O;if(k.isKeyframes||!k.generator)return;const b=k.generator._withBuildContext({name:u,config:d}),l=new RegExp(`\\s${u}[=\\s]+[^()]+styled\\(([^,]+),`,"g").exec(o);if(!l)return console.error("Could not find the original declaration");const S=(O=l.at(1))==null?void 0:O.trim(),T=new RegExp(`\\s${u}[=\\s]+styled\\(`,"g").exec(c);if(!T)return console.error("Could not find the original declaration");const{index:x}=T;let m=!1;const C=setTimeout(()=>m=!0,5e3);let i=0,f=!1,$=0;for(;!f&&!m;){const M=c[x+i];M==="("&&$++,M===")"&&$--,$===0&&M===")"&&(f=!0),i>c.length&&(m=!0),i++}if(!m)clearTimeout(C);else throw new Error("Failed to find the end of the styled call and timed out");const h=x+i,F=c.slice(x,h),j=c,w=` ${u} = styled(${S}, "${b.classNames}", "${b._callerName}", ${JSON.stringify(b.props)});`;c=c.replace(F,w),j===c&&console.error("Minimize file failed to change content",{name:u,tagName:S})});const r=R(e,6);return d.importStrategy==="component"&&(c=`import '../../saltygen/css/${r}.css';
|
18
|
+
${c}`),c=c.replace("{ styled }","{ styledClient as styled }"),c=c.replace("@salty-css/react/styled","@salty-css/react/styled-client"),c}}catch(s){console.error("Error in minimizeFile:",s)}},J=t=>({name:"stylegen",buildStart:()=>ct(t),load:async e=>{if(N(e))return await lt(t,e)},watchChange:{handler:async e=>{N(e)&&await at(t,e),e.includes("salty.config")&&await L(t)}}});exports.default=J;exports.saltyPlugin=J;
|
package/index.js
CHANGED
@@ -1,175 +1,183 @@
|
|
1
|
-
import * as
|
2
|
-
import { execSync as
|
3
|
-
import { join as
|
4
|
-
import { writeFileSync as T, existsSync as
|
5
|
-
import { writeFile as
|
6
|
-
const
|
1
|
+
import * as z from "esbuild";
|
2
|
+
import { execSync as Y } from "child_process";
|
3
|
+
import { join as y } from "path";
|
4
|
+
import { writeFileSync as T, existsSync as Q, mkdirSync as A, statSync as v, readdirSync as tt, readFileSync as O } from "fs";
|
5
|
+
import { writeFile as st } from "fs/promises";
|
6
|
+
const Z = (t) => String.fromCharCode(t + (t > 25 ? 39 : 97)), et = (t, s) => {
|
7
7
|
let e = "", n;
|
8
|
-
for (n = Math.abs(t); n > 52; n = n / 52 | 0) e =
|
9
|
-
return e =
|
10
|
-
},
|
8
|
+
for (n = Math.abs(t); n > 52; n = n / 52 | 0) e = Z(n % 52) + e;
|
9
|
+
return e = Z(n % 52) + e, e.length < s ? e = e.padStart(s, "a") : e.length > s && (e = e.slice(-s)), e;
|
10
|
+
}, nt = (t, s) => {
|
11
11
|
let e = s.length;
|
12
12
|
for (; e; ) t = t * 33 ^ s.charCodeAt(--e);
|
13
13
|
return t;
|
14
|
-
},
|
15
|
-
const e =
|
16
|
-
return
|
14
|
+
}, _ = (t, s = 3) => {
|
15
|
+
const e = nt(5381, JSON.stringify(t)) >>> 0;
|
16
|
+
return et(e, s);
|
17
17
|
};
|
18
|
-
function
|
19
|
-
return t ? typeof t != "string" ?
|
18
|
+
function M(t) {
|
19
|
+
return t ? typeof t != "string" ? M(String(t)) : t.replace(/\s/g, "-").replace(/[A-Z](?:(?=[^A-Z])|[A-Z]*(?=[A-Z][^A-Z]|$))/g, (s, e) => (e > 0 ? "-" : "") + s.toLowerCase()) : "";
|
20
20
|
}
|
21
|
-
const
|
21
|
+
const ot = (t, s) => {
|
22
22
|
if (typeof t != "string") return { result: t };
|
23
23
|
if (!s) return { result: t };
|
24
24
|
const e = [];
|
25
25
|
return Object.values(s).forEach((n) => {
|
26
|
-
const { pattern: o, transform:
|
26
|
+
const { pattern: o, transform: p } = n;
|
27
27
|
t = t.replace(o, (g) => {
|
28
|
-
const { value:
|
29
|
-
return c && e.push(c),
|
28
|
+
const { value: a, css: c } = p(g);
|
29
|
+
return c && e.push(c), a;
|
30
30
|
});
|
31
31
|
}), { result: t, additionalCss: e };
|
32
|
-
},
|
32
|
+
}, H = (t) => typeof t != "string" ? { result: t } : /\{[^{}]+\}/g.test(t) ? { result: t.replace(/\{([^{}]+)\}/g, (...n) => `var(--${M(n[1].replaceAll(".", "-"))})`) } : { result: t }, E = (t, s, e, n) => {
|
33
33
|
if (!t) return "";
|
34
|
-
const o = [],
|
35
|
-
const
|
34
|
+
const o = [], p = Object.entries(t).reduce((a, [c, r]) => {
|
35
|
+
const f = c.trim();
|
36
36
|
if (typeof r == "function" && (r = r()), typeof r == "object") {
|
37
|
-
if (!r) return
|
38
|
-
if (
|
39
|
-
return Object.entries(r).forEach(([i,
|
40
|
-
|
37
|
+
if (!r) return a;
|
38
|
+
if (f === "variants")
|
39
|
+
return Object.entries(r).forEach(([i, u]) => {
|
40
|
+
u && Object.entries(u).forEach(([h, m]) => {
|
41
41
|
if (!m) return;
|
42
42
|
const S = `${s}.${i}-${h}`, $ = E(m, S);
|
43
43
|
o.push($);
|
44
44
|
});
|
45
|
-
}),
|
46
|
-
if (
|
47
|
-
return
|
48
|
-
if (
|
45
|
+
}), a;
|
46
|
+
if (f === "defaultVariants")
|
47
|
+
return a;
|
48
|
+
if (f === "compoundVariants")
|
49
49
|
return r.forEach((i) => {
|
50
|
-
const { css:
|
50
|
+
const { css: u, ...h } = i, m = Object.entries(h).reduce(($, [w, D]) => `${$}.${w}-${D}`, s), S = E(u, m);
|
51
51
|
o.push(S);
|
52
|
-
}),
|
53
|
-
if (
|
54
|
-
const i = E(r, s),
|
52
|
+
}), a;
|
53
|
+
if (f.startsWith("@")) {
|
54
|
+
const i = E(r, s), u = `${f} {
|
55
55
|
${i.replace(`
|
56
56
|
`, `
|
57
57
|
`)}
|
58
58
|
}`;
|
59
|
-
return o.push(
|
59
|
+
return o.push(u), a;
|
60
60
|
}
|
61
|
-
const d = c.includes("&") ?
|
62
|
-
return o.push(
|
61
|
+
const d = c.includes("&") ? f.replace("&", s) : f.startsWith(":") ? `${s}${f}` : `${s} ${f}`, x = E(r, d);
|
62
|
+
return o.push(x), a;
|
63
63
|
}
|
64
|
-
const
|
65
|
-
if (typeof r == "number") return
|
64
|
+
const C = f.startsWith("-") ? f : M(f), b = (d, x = ";") => a = `${a}${d}${x}`, l = (d) => b(`${C}:${d}`);
|
65
|
+
if (typeof r == "number") return l(r);
|
66
66
|
if (typeof r != "string")
|
67
67
|
if ("toString" in r) r = r.toString();
|
68
|
-
else return
|
68
|
+
else return a;
|
69
69
|
const { modifiers: j } = {}, F = function* () {
|
70
|
-
yield
|
70
|
+
yield H(r), yield ot(r, j);
|
71
71
|
}();
|
72
|
-
for (const { result: d, additionalCss:
|
73
|
-
r = d,
|
74
|
-
const
|
75
|
-
b(
|
72
|
+
for (const { result: d, additionalCss: x = [] } of F)
|
73
|
+
r = d, x.forEach((i) => {
|
74
|
+
const u = E(i, "");
|
75
|
+
b(u, "");
|
76
76
|
});
|
77
|
-
return
|
77
|
+
return l(r);
|
78
78
|
}, "");
|
79
|
-
if (!
|
79
|
+
if (!p) return o.join(`
|
80
80
|
`);
|
81
|
-
if (!s) return
|
81
|
+
if (!s) return p;
|
82
82
|
let g = "";
|
83
|
-
return g = `${s} { ${
|
83
|
+
return g = `${s} { ${p} }`, [g, ...o].join(`
|
84
84
|
`);
|
85
|
-
},
|
85
|
+
}, J = (t, s = []) => {
|
86
86
|
if (!t) return "";
|
87
87
|
const e = [], n = {};
|
88
|
-
if (Object.entries(t).forEach(([o,
|
89
|
-
if (typeof
|
90
|
-
if (!
|
91
|
-
const g = o.trim(),
|
92
|
-
e.push(
|
88
|
+
if (Object.entries(t).forEach(([o, p]) => {
|
89
|
+
if (typeof p == "object") {
|
90
|
+
if (!p) return;
|
91
|
+
const g = o.trim(), a = J(p, [...s, g]);
|
92
|
+
e.push(a);
|
93
93
|
} else
|
94
|
-
n[o] =
|
94
|
+
n[o] = p;
|
95
95
|
}), Object.keys(n).length) {
|
96
|
-
const o = s.map(
|
97
|
-
e.push(
|
96
|
+
const o = s.map(M).join("-"), p = E(n, `.${o}`);
|
97
|
+
e.push(p);
|
98
98
|
}
|
99
99
|
return e.join(`
|
100
100
|
`);
|
101
|
-
},
|
102
|
-
|
103
|
-
|
101
|
+
}, K = () => import.meta.url.endsWith(".cjs") ? "cjs" : "esm", R = {
|
102
|
+
externalModules: []
|
103
|
+
}, q = (t) => {
|
104
|
+
if (R.externalModules.length > 0) return R.externalModules;
|
105
|
+
const s = y(t, "salty.config.ts"), n = O(s, "utf8").match(/externalModules:\s?\[(.*)\]/);
|
106
|
+
if (!n) return [];
|
107
|
+
const o = n[1].split(",").map((p) => p.replace(/['"`]/g, "").trim());
|
108
|
+
return R.externalModules = o, o;
|
109
|
+
}, V = (t) => y(t, "./saltygen"), rt = ["salty", "css", "styles", "styled"], it = (t = []) => new RegExp(`\\.(${[...rt, ...t].join("|")})\\.`), P = (t, s = []) => it(s).test(t), ct = async (t) => {
|
110
|
+
const s = V(t), e = y(t, "salty.config.ts"), n = y(s, "salty.config.js"), o = K(), p = q(t);
|
111
|
+
await z.build({
|
104
112
|
entryPoints: [e],
|
105
113
|
minify: !0,
|
106
114
|
treeShaking: !0,
|
107
115
|
bundle: !0,
|
108
116
|
outfile: n,
|
109
117
|
format: o,
|
110
|
-
external:
|
118
|
+
external: p
|
111
119
|
});
|
112
|
-
const
|
113
|
-
return
|
114
|
-
},
|
115
|
-
const s = await
|
120
|
+
const g = Date.now(), { config: a } = await import(`${n}?t=${g}`);
|
121
|
+
return a;
|
122
|
+
}, G = async (t) => {
|
123
|
+
const s = await ct(t), e = /* @__PURE__ */ new Set(), n = (i, u = []) => i ? Object.entries(i).flatMap(([h, m]) => {
|
116
124
|
if (!m) return;
|
117
|
-
if (typeof m == "object") return n(m, [...
|
118
|
-
const S = [...
|
125
|
+
if (typeof m == "object") return n(m, [...u, h]);
|
126
|
+
const S = [...u, h].join(".");
|
119
127
|
e.add(`"${S}"`);
|
120
|
-
const $ = [...
|
128
|
+
const $ = [...u.map(M), M(h)].join("-"), { result: w } = H(m);
|
121
129
|
return `--${$}: ${w};`;
|
122
|
-
}) : [], o = (i) => i ? Object.entries(i).flatMap(([
|
130
|
+
}) : [], o = (i) => i ? Object.entries(i).flatMap(([u, h]) => {
|
123
131
|
const m = n(h);
|
124
|
-
return
|
125
|
-
}) : [],
|
126
|
-
const $ = n(S, [
|
132
|
+
return u === "base" ? m.join("") : `${u} { ${m.join("")} }`;
|
133
|
+
}) : [], p = (i) => i ? Object.entries(i).flatMap(([u, h]) => Object.entries(h).flatMap(([m, S]) => {
|
134
|
+
const $ = n(S, [u]), w = `.${u}-${m}, [data-${u}="${m}"]`, D = $.join("");
|
127
135
|
return `${w} { ${D} }`;
|
128
|
-
})) : [], g = n(s.variables),
|
129
|
-
T(
|
130
|
-
const b =
|
136
|
+
})) : [], g = n(s.variables), a = o(s.responsiveVariables), c = p(s.conditionalVariables), r = V(t), f = y(r, "css/variables.css"), C = `:root { ${g.join("")} ${a.join("")} } ${c.join("")}`;
|
137
|
+
T(f, C);
|
138
|
+
const b = y(r, "types/css-tokens.d.ts"), j = `type VariableTokens = ${[...e].join("|") || '""'}; type PropertyValueToken = \`{\${VariableTokens}}\``;
|
131
139
|
T(b, j);
|
132
|
-
const k =
|
140
|
+
const k = y(r, "css/global.css"), F = E(s.global, "");
|
133
141
|
T(k, F);
|
134
|
-
const d =
|
135
|
-
T(d,
|
136
|
-
},
|
137
|
-
const
|
138
|
-
|
139
|
-
entryPoints: [
|
142
|
+
const d = y(r, "css/templates.css"), x = J(s.templates);
|
143
|
+
T(d, x);
|
144
|
+
}, W = async (t, s, e) => {
|
145
|
+
const n = _(s), o = y(e, "js", n + ".js"), p = K(), g = q(t);
|
146
|
+
await z.build({
|
147
|
+
entryPoints: [s],
|
140
148
|
minify: !0,
|
141
149
|
treeShaking: !0,
|
142
150
|
bundle: !0,
|
143
|
-
outfile:
|
144
|
-
format:
|
151
|
+
outfile: o,
|
152
|
+
format: p,
|
145
153
|
target: ["es2022"],
|
146
154
|
keepNames: !0,
|
147
|
-
external:
|
155
|
+
external: g
|
148
156
|
});
|
149
|
-
const
|
150
|
-
return await import(`${
|
151
|
-
},
|
152
|
-
const s = V(t), e =
|
157
|
+
const a = Date.now();
|
158
|
+
return await import(`${o}?t=${a}`);
|
159
|
+
}, B = async (t) => {
|
160
|
+
const s = V(t), e = y(s, "salty.config.js"), { config: n } = await import(e);
|
153
161
|
return n;
|
154
|
-
},
|
162
|
+
}, at = async (t) => {
|
155
163
|
try {
|
156
|
-
const s = [], e = [], n = V(t), o =
|
164
|
+
const s = [], e = [], n = V(t), o = y(n, "index.css");
|
157
165
|
(() => {
|
158
|
-
|
159
|
-
})(), await
|
160
|
-
const g = await
|
161
|
-
async function
|
162
|
-
const k = ["node_modules", "saltygen"], F =
|
166
|
+
Q(n) && Y("rm -rf " + n), A(n), A(y(n, "css")), A(y(n, "types"));
|
167
|
+
})(), await G(t);
|
168
|
+
const g = await B(t);
|
169
|
+
async function a(l, j) {
|
170
|
+
const k = ["node_modules", "saltygen"], F = v(l);
|
163
171
|
if (F.isDirectory()) {
|
164
|
-
const d =
|
165
|
-
if (k.some((i) =>
|
166
|
-
await Promise.all(d.map((i) =>
|
167
|
-
} else if (F.isFile() && P(
|
168
|
-
const
|
169
|
-
Object.entries(
|
172
|
+
const d = tt(l);
|
173
|
+
if (k.some((i) => l.includes(i))) return;
|
174
|
+
await Promise.all(d.map((i) => a(y(l, i), y(j, i))));
|
175
|
+
} else if (F.isFile() && P(l)) {
|
176
|
+
const x = await W(t, l, n), i = [];
|
177
|
+
Object.entries(x).forEach(([S, $]) => {
|
170
178
|
if ($.isKeyframes && $.css) {
|
171
|
-
const
|
172
|
-
s.push(
|
179
|
+
const I = `${$.animationName}.css`, U = `css/${I}`, X = y(n, U);
|
180
|
+
s.push(I), T(X, $.css);
|
173
181
|
return;
|
174
182
|
}
|
175
183
|
if (!$.generator) return;
|
@@ -178,110 +186,110 @@ const et = (t, s) => {
|
|
178
186
|
config: g
|
179
187
|
}), D = `${w.hash}-${w.priority}.css`;
|
180
188
|
e[w.priority] || (e[w.priority] = []), e[w.priority].push(D), i.push(D);
|
181
|
-
const
|
182
|
-
T(
|
189
|
+
const N = `css/${D}`, L = y(n, N);
|
190
|
+
T(L, w.css);
|
183
191
|
});
|
184
|
-
const
|
185
|
-
`), h =
|
186
|
-
T(m,
|
192
|
+
const u = i.map((S) => `@import url('./${S}');`).join(`
|
193
|
+
`), h = _(l, 6), m = y(n, `css/${h}.css`);
|
194
|
+
T(m, u);
|
187
195
|
}
|
188
196
|
}
|
189
|
-
await
|
190
|
-
const c = s.map((
|
197
|
+
await a(t, n);
|
198
|
+
const c = s.map((l) => `@import url('./css/${l}');`).join(`
|
191
199
|
`);
|
192
200
|
let b = `@layer l0, l1, l2, l3, l4, l5, l6, l7, l8;
|
193
201
|
|
194
|
-
${["variables.css", "global.css", "templates.css"].filter((
|
202
|
+
${["variables.css", "global.css", "templates.css"].filter((l) => {
|
195
203
|
try {
|
196
|
-
return
|
204
|
+
return O(y(n, "css", l), "utf8").length > 0;
|
197
205
|
} catch {
|
198
206
|
return !1;
|
199
207
|
}
|
200
|
-
}).map((
|
208
|
+
}).map((l) => `@import url('./css/${l}');`).join(`
|
201
209
|
`)}
|
202
210
|
${c}`;
|
203
211
|
if (g.importStrategy !== "component") {
|
204
|
-
const
|
212
|
+
const l = e.flat().map((j) => `@import url('./css/${j}');`).join(`
|
205
213
|
`);
|
206
|
-
b +=
|
214
|
+
b += l;
|
207
215
|
}
|
208
216
|
T(o, b);
|
209
217
|
} catch (s) {
|
210
218
|
console.error(s);
|
211
219
|
}
|
212
|
-
},
|
220
|
+
}, lt = async (t, s) => {
|
213
221
|
try {
|
214
|
-
const e = [], n =
|
222
|
+
const e = [], n = y(t, "./saltygen"), o = y(n, "index.css");
|
215
223
|
if (P(s)) {
|
216
|
-
const g = await
|
217
|
-
Object.entries(
|
218
|
-
if (!
|
219
|
-
const j =
|
224
|
+
const g = await B(t), a = await W(t, s, n);
|
225
|
+
Object.entries(a).forEach(([b, l]) => {
|
226
|
+
if (!l.generator) return;
|
227
|
+
const j = l.generator._withBuildContext({
|
220
228
|
name: b,
|
221
229
|
config: g
|
222
|
-
}), k = `${j.hash}-${j.priority}.css`, F = `css/${k}`, d =
|
230
|
+
}), k = `${j.hash}-${j.priority}.css`, F = `css/${k}`, d = y(n, F);
|
223
231
|
e.push(k), T(d, j.css);
|
224
232
|
});
|
225
|
-
const c =
|
226
|
-
`), r = e.map((b) => `@import url('../saltygen/css/${b}');`),
|
233
|
+
const c = O(o, "utf8").split(`
|
234
|
+
`), r = e.map((b) => `@import url('../saltygen/css/${b}');`), C = [.../* @__PURE__ */ new Set([...c, ...r])].join(`
|
227
235
|
`);
|
228
|
-
T(o,
|
236
|
+
T(o, C);
|
229
237
|
}
|
230
238
|
} catch (e) {
|
231
239
|
console.error(e);
|
232
240
|
}
|
233
|
-
},
|
241
|
+
}, ft = async (t, s) => {
|
234
242
|
try {
|
235
|
-
const e =
|
243
|
+
const e = y(t, "./saltygen");
|
236
244
|
if (P(s)) {
|
237
|
-
const o =
|
238
|
-
o.replace(/^(?!export\s)const\s.*/gm, (
|
239
|
-
const g = await
|
245
|
+
const o = O(s, "utf8");
|
246
|
+
o.replace(/^(?!export\s)const\s.*/gm, (f) => `export ${f}`) !== o && await st(s, o);
|
247
|
+
const g = await B(t), a = await W(t, s, e);
|
240
248
|
let c = o;
|
241
|
-
Object.entries(
|
249
|
+
Object.entries(a).forEach(([f, C]) => {
|
242
250
|
var D;
|
243
|
-
if (
|
244
|
-
const b =
|
245
|
-
name:
|
251
|
+
if (C.isKeyframes || !C.generator) return;
|
252
|
+
const b = C.generator._withBuildContext({
|
253
|
+
name: f,
|
246
254
|
config: g
|
247
|
-
}),
|
248
|
-
if (!
|
249
|
-
const j = (D =
|
255
|
+
}), l = new RegExp(`\\s${f}[=\\s]+[^()]+styled\\(([^,]+),`, "g").exec(o);
|
256
|
+
if (!l) return console.error("Could not find the original declaration");
|
257
|
+
const j = (D = l.at(1)) == null ? void 0 : D.trim(), k = new RegExp(`\\s${f}[=\\s]+styled\\(`, "g").exec(c);
|
250
258
|
if (!k) return console.error("Could not find the original declaration");
|
251
259
|
const { index: F } = k;
|
252
260
|
let d = !1;
|
253
|
-
const
|
254
|
-
let i = 0,
|
255
|
-
for (; !
|
256
|
-
const
|
257
|
-
|
261
|
+
const x = setTimeout(() => d = !0, 5e3);
|
262
|
+
let i = 0, u = !1, h = 0;
|
263
|
+
for (; !u && !d; ) {
|
264
|
+
const N = c[F + i];
|
265
|
+
N === "(" && h++, N === ")" && h--, h === 0 && N === ")" && (u = !0), i > c.length && (d = !0), i++;
|
258
266
|
}
|
259
|
-
if (!d) clearTimeout(
|
267
|
+
if (!d) clearTimeout(x);
|
260
268
|
else throw new Error("Failed to find the end of the styled call and timed out");
|
261
|
-
const m = F + i, S = c.slice(F, m), $ = c, w = ` ${
|
262
|
-
c = c.replace(S, w), $ === c && console.error("Minimize file failed to change content", { name:
|
269
|
+
const m = F + i, S = c.slice(F, m), $ = c, w = ` ${f} = styled(${j}, "${b.classNames}", "${b._callerName}", ${JSON.stringify(b.props)});`;
|
270
|
+
c = c.replace(S, w), $ === c && console.error("Minimize file failed to change content", { name: f, tagName: j });
|
263
271
|
});
|
264
|
-
const r =
|
272
|
+
const r = _(s, 6);
|
265
273
|
return g.importStrategy === "component" && (c = `import '../../saltygen/css/${r}.css';
|
266
274
|
${c}`), c = c.replace("{ styled }", "{ styledClient as styled }"), c = c.replace("@salty-css/react/styled", "@salty-css/react/styled-client"), c;
|
267
275
|
}
|
268
276
|
} catch (e) {
|
269
277
|
console.error("Error in minimizeFile:", e);
|
270
278
|
}
|
271
|
-
},
|
279
|
+
}, dt = (t) => ({
|
272
280
|
name: "stylegen",
|
273
|
-
buildStart: () =>
|
281
|
+
buildStart: () => at(t),
|
274
282
|
load: async (s) => {
|
275
283
|
if (P(s))
|
276
|
-
return await
|
284
|
+
return await ft(t, s);
|
277
285
|
},
|
278
286
|
watchChange: {
|
279
287
|
handler: async (s) => {
|
280
|
-
P(s) && await
|
288
|
+
P(s) && await lt(t, s), s.includes("salty.config") && await G(t);
|
281
289
|
}
|
282
290
|
}
|
283
291
|
});
|
284
292
|
export {
|
285
|
-
|
286
|
-
|
293
|
+
dt as default,
|
294
|
+
dt as saltyPlugin
|
287
295
|
};
|
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.62",
|
4
4
|
"main": "./dist/index.js",
|
5
5
|
"module": "./dist/index.mjs",
|
6
6
|
"typings": "./dist/index.d.ts",
|
@@ -29,6 +29,6 @@
|
|
29
29
|
}
|
30
30
|
},
|
31
31
|
"dependencies": {
|
32
|
-
"@salty-css/core": "^0.0.1-alpha.
|
32
|
+
"@salty-css/core": "^0.0.1-alpha.62"
|
33
33
|
}
|
34
34
|
}
|