@tailwindcss/cli 4.2.4 → 4.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.mjs +22 -18
- package/package.json +6 -6
package/dist/index.mjs
CHANGED
|
@@ -1,24 +1,28 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
var
|
|
3
|
-
`)}function
|
|
4
|
-
`)}function
|
|
2
|
+
var ge=(e,t)=>(t=Symbol[e])?t:Symbol.for("Symbol."+e),be=e=>{throw TypeError(e)};var re=(e,t,n)=>{if(t!=null){typeof t!="object"&&typeof t!="function"&&be("Object expected");var i,s;n&&(i=t[ge("asyncDispose")]),i===void 0&&(i=t[ge("dispose")],n&&(s=i)),typeof i!="function"&&be("Object not disposable"),s&&(i=function(){try{s.call(this)}catch(r){return Promise.reject(r)}}),e.push([n,i,t])}else n&&e.push([n]);return t},se=(e,t,n)=>{var i=typeof SuppressedError=="function"?SuppressedError:function(a,o,l,u){return u=Error(l),u.name="SuppressedError",u.error=a,u.suppressed=o,u},s=a=>t=n?new i(a,t,"An error was suppressed during disposal"):(n=!0,a),r=a=>{for(;a=e.pop();)try{var o=a[1]&&a[1].call(a[2]);if(a[0])return Promise.resolve(o).then(r,l=>(s(l),r()))}catch(l){s(l)}if(n)throw t};return r()};import Ke from"mri";function R(e,t=process.argv.slice(2)){for(let[s,r]of t.entries())r==="-"&&(t[s]="__IO_DEFAULT_VALUE__");let n=Ke(t);for(let s in n){let r=n[s];s!=="_"&&Array.isArray(r)&&(r=r[r.length-1]),r==="__IO_DEFAULT_VALUE__"&&(r="-"),n[s]=r}let i={_:n._};for(let[s,{type:r,alias:a,default:o=r==="boolean"?!1:null}]of Object.entries(e)){if(i[s]=o,a){let l=a.slice(1);n[l]!==void 0&&(i[s]=we(n[l],r))}{let l=s.slice(2);n[l]!==void 0&&(i[s]=we(n[l],r))}}return i}function we(e,t){switch(t){case"string":return K(e);case"boolean":return W(e);case"number":return G(e);case"boolean | string":return W(e)??K(e);case"number | string":return G(e)??K(e);case"boolean | number":return W(e)??G(e);case"boolean | number | string":return W(e)??G(e)??K(e);default:throw new Error(`Unhandled type: ${t}`)}}function W(e){if(e===!0||e===!1)return e;if(e==="true")return!0;if(e==="false")return!1}function G(e){if(typeof e=="number")return e;{let t=Number(e);if(!Number.isNaN(t))return t}}function K(e){return`${e}`}import Xe from"@parcel/watcher";import{compile as et,env as tt,Instrumentation as _e,optimize as nt,toSourceMap as H}from"@tailwindcss/node";import{clearRequireCache as it}from"@tailwindcss/node/require-cache";import{Scanner as rt}from"@tailwindcss/oxide";import{existsSync as st}from"fs";import ce from"fs/promises";import y from"path";var L=class{#e=new Set([]);queueMacrotask(t){let n=setTimeout(t,0);return this.add(()=>{clearTimeout(n)})}add(t){return this.#e.add(t),()=>{this.#e.delete(t),t()}}async dispose(){for(let t of this.#e)await t();this.#e.clear()}};import Je from"fs";import xe from"path";import{stripVTControlCharacters as Qe}from"util";import w from"picocolors";import ye from"enhanced-resolve";import Ye from"fs";import{createRequire as Ve}from"module";var qe=Ve(import.meta.url).resolve;function Se(e){if(typeof globalThis.__tw_resolve=="function"){let t=globalThis.__tw_resolve(e);if(t)return t}return qe(e)}var Pt=ye.ResolverFactory.createResolver({fileSystem:new ye.CachedInputFileSystem(Ye,4e3),useSyncFileSystemCalls:!0,extensions:[".css"],mainFields:["style"],conditionNames:["style"]});function Ce(e){let t=typeof e=="number"?BigInt(e):e;return t<1000n?`${t}ns`:(t/=1000n,t<1000n?`${t}\xB5s`:(t/=1000n,t<1000n?`${t}ms`:(t/=1000n,t<60n?`${t}s`:(t/=60n,t<60n?`${t}m`:(t/=60n,t<24n?`${t}h`:(t/=24n,`${t}d`))))))}var Y={indent:2};function V(){return`${w.italic(w.bold(w.blue("\u2248")))} tailwindcss ${w.blue(`v${He()}`)}`}function v(e){return`${w.dim(w.blue("`"))}${w.blue(e)}${w.dim(w.blue("`"))}`}function q(e,t=process.cwd(),{preferAbsoluteIfShorter:n=!0}={}){let i=xe.relative(t,e);return i.startsWith("..")||(i=`.${xe.sep}${i}`),n&&i.length>e.length?e:i}function oe(e,t){let n=e.split(" "),i=[],s="",r=0;for(let a of n){let o=Qe(a).length;r+o+1>t&&(i.push(s),s="",r=0),s+=(r?" ":"")+a,r+=o+(r?1:0)}return r&&i.push(s),i}function P(e){let t=Ce(e);return e<=50*1e6?w.green(t):e<=300*1e6?w.blue(t):e<=1e3*1e6?w.yellow(t):w.red(t)}function B(e,t=0){return`${" ".repeat(t+Y.indent)}${e}`}function x(e=""){process.stderr.write(`${e}
|
|
3
|
+
`)}function J(e=""){process.stdout.write(`${e}
|
|
4
|
+
`)}function He(){if(typeof globalThis.__tw_version=="string")return globalThis.__tw_version;let{version:e}=JSON.parse(Je.readFileSync(Se("tailwindcss/package.json"),"utf-8"));return e}import Q from"fs/promises";import Ze from"path";function ae(){return new Promise((e,t)=>{let n="";process.stdin.on("data",i=>{n+=i}),process.stdin.on("end",()=>e(n)),process.stdin.on("error",i=>t(i))})}async function le(e,t){if(!await Q.stat(e).then(i=>i.isCharacterDevice()||i.isFIFO()).catch(()=>!1))try{if(await Q.readFile(e,"utf8")===t)return}catch{}await Q.mkdir(Ze.dirname(e),{recursive:!0}),await Q.writeFile(e,t,"utf8")}var Te=String.raw,c=tt.DEBUG;function N(){return{"--input":{type:"string",description:"Input file",alias:"-i"},"--output":{type:"string",description:"Output file",alias:"-o",default:"-"},"--watch":{type:"boolean | string",description:"Watch for changes and rebuild as needed, and use `always` to keep watching when stdin is closed",alias:"-w",values:["always"]},"--minify":{type:"boolean",description:"Optimize and minify the output",alias:"-m"},"--optimize":{type:"boolean",description:"Optimize the output without minifying"},"--cwd":{type:"string",description:"The current working directory",default:"."},"--map":{type:"boolean | string",description:"Generate a source map",default:!1},"--silent":{type:"boolean",description:"Suppress non-error output"}}}async function ue(e){try{return await e()}catch(t){x([Oe("Error:"),A("\u250C")].concat(`${t}`.split(`
|
|
5
|
+
`).map(n=>`${A("\u2502")} ${n}`)).concat(A("\u2514")).join(`
|
|
6
|
+
`)),process.exit(1)}}async function pe(e){var I=[];try{e["--silent"]||x(V());e["--silent"]||x();let t=re(I,new _e);c&&t.start("[@tailwindcss/cli] (initial build)");let n=y.resolve(e["--cwd"]);e["--output"]&&e["--output"]!=="-"&&(e["--output"]=y.resolve(n,e["--output"]));e["--input"]&&e["--input"]!=="-"&&(e["--input"]=y.resolve(n,e["--input"]),st(e["--input"])||(x(`Specified input file ${v(q(e["--input"]))} does not exist.`),process.exit(1)));e["--input"]===e["--output"]&&e["--input"]!=="-"&&(x(`Specified input file ${v(q(e["--input"]))} and output file ${v(q(e["--output"]))} are identical.`),process.exit(1));e["--map"]==="-"&&(x("Use --map without a value to inline the source map"),process.exit(1));e["--map"]&&e["--map"]!==!0&&(e["--map"]=y.resolve(n,e["--map"]));let i=process.hrtime.bigint();let s=e["--input"]?e["--input"]==="-"?await ae():await ce.readFile(e["--input"],"utf-8"):Te`
|
|
5
7
|
@import 'tailwindcss';
|
|
6
|
-
`;let r={css:"",optimizedCss:""};async function a(
|
|
7
|
-
`,
|
|
8
|
-
`,
|
|
8
|
+
`;let r={css:"",optimizedCss:""};async function a(T,b,d,S){let C=T;if(d["--minify"]||d["--optimize"])if(T!==r.css){c&&S.start("Optimize CSS");let E=nt(T,{file:d["--input"]??"input.css",minify:d["--minify"]??!1,map:b?.raw??void 0});c&&S.end("Optimize CSS"),r.css=T,r.optimizedCss=E.code,E.map&&(b=H(E.map)),C=E.code}else C=r.optimizedCss;if(b){if(d["--map"]===!0)C+=`
|
|
9
|
+
`,C+=b.inline;else if(typeof d["--map"]=="string"){let E=d["--output"]&&d["--output"]!=="-"?y.dirname(y.resolve(d["--output"])):process.cwd(),X=y.resolve(d["--map"]),f=y.relative(E,X);C+=`
|
|
10
|
+
`,C+=b.comment(f),c&&S.start("Write source map"),await le(d["--map"],b.raw),c&&S.end("Write source map")}}c&&S.start("Write output"),d["--output"]&&d["--output"]!=="-"?await le(d["--output"],C):J(C),c&&S.end("Write output")}let o=e["--input"]&&e["--input"]!=="-"?y.resolve(e["--input"]):null;let l=o?y.dirname(o):process.cwd();let u=o?[o]:[];let g=u;async function m(T,b){c&&b.start("Setup compiler");let d=await et(T,{from:e["--output"]?o??"stdin.css":void 0,base:l,onDependency(E){u.push(E)}}),S=(d.root==="none"?[]:d.root===null?[{base:n,pattern:"**/*",negated:!1}]:[{...d.root,negated:!1}]).concat(d.sources);S.push({base:y.dirname(process.execPath),pattern:y.basename(process.execPath),negated:!0});let C=new rt({sources:S});return c&&b.end("Setup compiler"),[d,C]}let[p,h]=await ue(()=>m(s,t));if(e["--watch"]){let T=[];T.push(await Ee($e(h),async function b(d){try{var S=[];try{if(d.length===1&&d[0]===e["--output"])return;let f=re(S,new _e);c&&f.start("[@tailwindcss/cli] (watcher)");let D=process.hrtime.bigint();let M=[];let ee="incremental";let he=u;for(let $ of d){if(he.includes($)){ee="full";break}M.push({file:$,extension:y.extname($).slice(1)})}let te="";let ne=null;if(ee==="full"){let $=e["--input"]?e["--input"]==="-"?await ae():await ce.readFile(e["--input"],"utf-8"):Te`
|
|
9
11
|
@import 'tailwindcss';
|
|
10
|
-
`;
|
|
11
|
-
`)
|
|
12
|
-
`);break}case"
|
|
13
|
-
`);
|
|
14
|
-
`):
|
|
15
|
-
`)
|
|
16
|
-
|
|
12
|
+
`;it(he),g=u.slice(),u=o?[o]:[],[p,h]=await m($,f),g=u.slice(),c&&f.start("Scan for candidates");let ie=h.scan();c&&f.end("Scan for candidates"),c&&f.start("Setup new watchers");let We=await Ee($e(h),b);c&&f.end("Setup new watchers"),c&&f.start("Cleanup old watchers"),await Promise.all(T.splice(0).map(Ge=>Ge())),c&&f.end("Cleanup old watchers"),T.push(We),c&&f.start("Build CSS"),te=p.build(ie),c&&f.end("Build CSS"),e["--map"]&&(c&&f.start("Build Source Map"),ne=H(p.buildSourceMap()),c&&f.end("Build Source Map"))}else if(ee==="incremental"){c&&f.start("Scan for candidates");let $=h.scanFiles(M);if(c&&f.end("Scan for candidates"),$.length<=0){let ie=process.hrtime.bigint();e["--silent"]||x(`Done in ${P(ie-D)}`);return}c&&f.start("Build CSS"),te=p.build($),c&&f.end("Build CSS"),e["--map"]&&(c&&f.start("Build Source Map"),ne=H(p.buildSourceMap()),c&&f.end("Build Source Map"))}await a(te,ne,e,f);let Me=process.hrtime.bigint();e["--silent"]||x(`Done in ${P(Me-D)}`)}catch(C){var E=C,X=!0}finally{se(S,E,X)}}catch(f){u=g,x([Oe("Error:"),A("\u250C")].concat(`${f}`.split(`
|
|
13
|
+
`).map(M=>`${A("\u2502")} ${M}`)).concat(A("\u2514")).join(`
|
|
14
|
+
`));let D=process.hrtime.bigint();e["--silent"]||x(`Done in ${P(D-i)}`)}})),e["--watch"]!=="always"&&process.stdin.on("end",()=>{Promise.all(T.map(b=>b())).then(()=>process.exit(0),()=>process.exit(1))}),process.stdin.resume()}c&&t.start("Scan for candidates");let _=h.scan();c&&t.end("Scan for candidates");c&&t.start("Build CSS");let j=await ue(()=>p.build(_));c&&t.end("Build CSS");let U=null;e["--map"]&&(c&&t.start("Build Source Map"),U=await ue(()=>H(p.buildSourceMap())),c&&t.end("Build Source Map"));await a(j,U,e,t);let z=process.hrtime.bigint();e["--silent"]||x(`Done in ${P(z-i)}`)}catch(ze){var Ie=ze,De=!0}finally{se(I,Ie,De)}}async function Ee(e,t){e=e.sort((o,l)=>o.length-l.length);let n=[];for(let o=0;o<e.length;++o)for(let l=0;l<o;++l)e[o].startsWith(`${e[l]}/`)&&n.push(e[o]);e=e.filter(o=>!n.includes(o));let i=new L,s=new Set,r=new L;async function a(){await r.dispose(),r.queueMacrotask(()=>{t(Array.from(s)),s.clear()})}for(let o of e){let{unsubscribe:l}=await Xe.subscribe(o,async(u,g)=>{if(u){console.error(u);return}await Promise.all(g.map(async m=>{if(m.type==="delete"){s.add(m.path);return}let p=null;try{p=await ce.lstat(m.path)}catch{}!p?.isFile()&&!p?.isSymbolicLink()||s.add(m.path)})),await a()});i.add(l)}return async()=>{await i.dispose(),await r.dispose()}}function $e(e){return[...new Set(e.normalizedSources.flatMap(t=>t.base))]}function A(e){return`\x1B[2m${e}\x1B[22m`}function Oe(e){return`\x1B[31m${e}\x1B[39m`}import{__unstable__loadDesignSystem as ve}from"@tailwindcss/node";import at from"fs/promises";import Ae from"path";import{createInterface as lt}from"readline";function de(e,t){let n=e.length,i=t.length,s=n<i?n:i;for(let r=0;r<s;r++){let a=e.charCodeAt(r),o=t.charCodeAt(r);if(a>=48&&a<=57&&o>=48&&o<=57){let l=r,u=r+1,g=r,m=r+1;for(a=e.charCodeAt(u);a>=48&&a<=57;)a=e.charCodeAt(++u);for(o=t.charCodeAt(m);o>=48&&o<=57;)o=t.charCodeAt(++m);let p=e.slice(l,u),h=t.slice(g,m),_=Number(p)-Number(h);if(_)return _;if(p<h)return-1;if(p>h)return 1;continue}if(a!==o)return a-o}return e.length-t.length}var Z=new Uint8Array(256);function Re(e,t){let n=0,i=[],s=0,r=e.length,a=t.charCodeAt(0);for(let o=0;o<r;o++){let l=e.charCodeAt(o);if(n===0&&l===a){i.push(e.slice(s,o)),s=o+1;continue}switch(l){case 92:o+=1;break;case 39:case 34:for(;++o<r;){let u=e.charCodeAt(o);if(u===92){o+=1;continue}if(u===l)break}break;case 40:Z[n]=41,n++;break;case 91:Z[n]=93,n++;break;case 123:Z[n]=125,n++;break;case 93:case 125:case 41:n>0&&l===Z[n-1]&&n--;break}}return i.push(e.slice(s)),i}import O from"picocolors";function k({render:e=!0,invalid:t,usage:n,options:i}){let s=process.stdout.columns??80,r=[],a=e?J:(o="")=>{r.push(o)};if(a(V()),t&&(a(),a(`${O.dim("Invalid command:")} ${t}`)),n&&n.length>0){a(),a(O.dim("Usage:"));for(let[o,l]of n.entries()){let u=l.slice(0,l.indexOf("[")),g=l.slice(l.indexOf("["));g=g.replace(/\[.*?\]/g,h=>O.dim(h));let p=oe(g,s-Y.indent-u.length-1);p.length>1&&o!==0&&a(),a(B(`${u}${p.shift()}`));for(let h of p)a(B(h,u.length))}}if(i){let o=0;for(let{alias:m}of Object.values(i))m&&(o=Math.max(o,m.length));let l=[],u=0;for(let[m,{alias:p,values:h}]of Object.entries(i)){h?.length&&(m+=`[=${h.join(", ")}]`);let _=[p&&`${p.padStart(o)}`,p?m:" ".repeat(o+2)+m].filter(Boolean).join(", ");l.push(_),u=Math.max(u,_.length)}a(),a(O.dim("Options:"));let g=8;for(let{description:m,default:p=null}of Object.values(i)){let h=l.shift(),_=g+(u-h.length),j=2,U=s-h.length-_-j-Y.indent,z=oe(p!==null?`${m} ${O.dim(`[default:\u202F${v(`${p}`)}]`)}`:m,U);a(B(`${O.blue(h)} ${O.dim(O.gray("\xB7")).repeat(_)} ${z.shift()}`));for(let I of z)a(B(`${" ".repeat(h.length+_+j)}${I}`))}}if(!e)return r.join(`
|
|
15
|
+
`)}var ut=String.raw;function fe(){return"tailwindcss canonicalize [classes...]"}function ct(){return"tailwindcss canonicalize --css input.css [classes...]"}function pt(){return"tailwindcss canonicalize --stream [--css input.css]"}function Le(){return{"--css":{type:"string",description:'CSS entry file used to load the Tailwind design system (defaults to `@import "tailwindcss";`)'},"--format":{type:"string",description:"Output format",default:"text",values:["text","json","jsonl"]},"--stream":{type:"boolean",description:"Read candidate groups from stdin line by line and write results to stdout",default:!1}}}var Pe={"--help":{type:"boolean",description:"Display usage information",alias:"-h",default:!1}};async function Be({argv:e=process.argv.slice(2),cwd:t=process.cwd(),stdin:n=null,stdinIsTTY:i=process.stdin.isTTY,stdoutIsTTY:s=process.stdout.isTTY}={}){try{let r=R({...Le(),...Pe},e),a=bt(r["--format"]??"text");if(s&&e.length===0||r["--help"])return{exitCode:0,stdout:ke()??"",stderr:""};if(r["--stream"])return await dt({css:r["--css"],cwd:t,format:a,input:process.stdin,output:process.stdout}),{exitCode:0,stdout:"",stderr:""};let o=r._.length>0?r._:await ft({stdin:n,stdinIsTTY:i});if(o.length===0)return wt("No candidate groups provided");let l=await ht({css:r["--css"],cwd:t,inputs:o});return{exitCode:0,stdout:gt(l,a),stderr:""}}catch(r){return{exitCode:1,stdout:"",stderr:r instanceof Error?r.message:String(r)}}}async function dt({css:e,cwd:t,format:n,input:i,output:s}){let r=await Fe(e,t),a=lt({input:i}),o=!0;n==="json"&&s.write("[");for await(let l of a){let u=je(r,l);switch(n){case"text":{s.write(u.output+`
|
|
16
|
+
`);break}case"jsonl":{s.write(JSON.stringify(u)+`
|
|
17
|
+
`);break}case"json":{o?s.write(`
|
|
18
|
+
`):s.write(`,
|
|
19
|
+
`),s.write(Ct(JSON.stringify(u,null,2),2)),o=!1;break}}}n==="json"&&s.write(o?"]":`
|
|
20
|
+
]`)}function ft({stdin:e,stdinIsTTY:t}){return e!==null?Promise.resolve(Ne(e)):t?Promise.resolve([]):mt().then(Ne)}async function mt(){return new Promise((e,t)=>{let n="";process.stdin.on("data",i=>{n+=i}),process.stdin.on("end",()=>e(n)),process.stdin.on("error",i=>t(i))})}async function ht({css:e,cwd:t=process.cwd(),inputs:n}){let i=await Fe(e,t);return n.map(s=>je(i,s))}function gt(e,t){switch(t){case"json":return JSON.stringify(e,null,2);case"jsonl":return e.map(n=>JSON.stringify(n)).join(`
|
|
17
21
|
`);case"text":return e.map(n=>n.output).join(`
|
|
18
|
-
`)}}function ke(){return
|
|
22
|
+
`)}}function ke(){return k({render:!1,usage:[fe(),ct(),pt()],options:{...Le(),...Pe}})}async function Fe(e,t){if(e===null)return ve(ut`
|
|
19
23
|
@import 'tailwindcss';
|
|
20
|
-
`,{base:t});let n=
|
|
24
|
+
`,{base:t});let n=Ae.resolve(t,e),i=await at.readFile(n,"utf8");return ve(i,{base:Ae.dirname(n)})}function Ne(e){return e.split(/\r?\n/g).map(t=>t.trim()).filter(t=>t.length>0)}function bt(e){if(e==="text"||e==="json"||e==="jsonl")return e;throw new Error(`Invalid value for --format: ${e}`)}function wt(e){return{exitCode:1,stdout:ke()??"",stderr:e}}function yt(e){let t=e.trim();return t.length===0?[]:Re(t," ").map(n=>n.trim()).filter(n=>n.length>0)}function St(e,t){let n=yt(t);return n=e.canonicalizeCandidates(n,{collapse:!0,logicalToPhysical:!0}),xt(e.getClassOrder(n)).join(" ")}function je(e,t){let n=St(e,t);return{input:t,output:n,changed:n!==t}}function Ct(e,t){let n=" ".repeat(t);return e.split(`
|
|
21
25
|
`).map(i=>n+i).join(`
|
|
22
|
-
`)}function
|
|
23
|
-
`),
|
|
24
|
-
`),process.exitCode=
|
|
26
|
+
`)}function xt(e){return e.slice().sort(([t,n],[i,s])=>n===s?de(t,i):n===null?-1:s===null?1:_t(n-s)||de(t,i)).map(([t])=>t)}function _t(e){return e>0n?1:e===0n?0:-1}var F={"--help":{type:"boolean",description:"Display usage information",alias:"-h"}};function me(e="tailwindcss"){return`${e} [--input input.css] [--output output.css] [--watch] [options\u2026]`}function Ue({invalid:e}={}){k({invalid:e,usage:[me("tailwindcss"),me("tailwindcss build"),fe()],commands:{build:"Build your CSS",canonicalize:"Canonicalize candidate lists"},options:{...N(),...F}})}async function Et(){let e=process.argv.slice(2),t=e[0],n=R({...N(),...F},e);if(t==="build"){let s=R({...N(),...F},e.slice(1));(process.stdout.isTTY&&e.length===1||s["--help"])&&(k({usage:[me("tailwindcss build")],options:{...N(),...F}}),process.exit(0)),await pe(s);return}if(t==="canonicalize"){let s=await Be({argv:e.slice(1)});s.stdout.length>0&&process.stdout.write(`${s.stdout}
|
|
27
|
+
`),s.stderr.length>0&&process.stderr.write(`${s.stderr}
|
|
28
|
+
`),process.exitCode=s.exitCode;return}(process.stdout.isTTY&&t===void 0||n["--help"])&&(Ue(),process.exit(0)),t&&!t.startsWith("-")&&(Ue({invalid:t}),process.exit(1));let i=R({...N(),...F});await pe(i)}await Et();
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tailwindcss/cli",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.3.1",
|
|
4
4
|
"description": "A utility-first CSS framework for rapidly building custom user interfaces.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -24,13 +24,13 @@
|
|
|
24
24
|
"access": "public"
|
|
25
25
|
},
|
|
26
26
|
"dependencies": {
|
|
27
|
-
"@parcel/watcher": "
|
|
28
|
-
"enhanced-resolve": "
|
|
27
|
+
"@parcel/watcher": "2.5.1",
|
|
28
|
+
"enhanced-resolve": "5.21.6",
|
|
29
29
|
"mri": "^1.2.0",
|
|
30
30
|
"picocolors": "^1.1.1",
|
|
31
|
-
"@tailwindcss/
|
|
32
|
-
"@tailwindcss/
|
|
33
|
-
"tailwindcss": "4.
|
|
31
|
+
"@tailwindcss/oxide": "4.3.1",
|
|
32
|
+
"@tailwindcss/node": "4.3.1",
|
|
33
|
+
"tailwindcss": "4.3.1"
|
|
34
34
|
},
|
|
35
35
|
"scripts": {
|
|
36
36
|
"lint": "tsc --noEmit",
|