@tailwindcss/cli 4.0.15 → 4.0.16
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 +4 -4
- package/package.json +4 -4
package/dist/index.mjs
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
var
|
|
2
|
+
var rt=(t,e)=>(e=Symbol[t])?e:Symbol.for("Symbol."+t),ot=t=>{throw TypeError(t)};var q=(t,e,n)=>{if(e!=null){typeof e!="object"&&typeof e!="function"&&ot("Object expected");var i,r;n&&(i=e[rt("asyncDispose")]),i===void 0&&(i=e[rt("dispose")],n&&(r=i)),typeof i!="function"&&ot("Object not disposable"),r&&(i=function(){try{r.call(this)}catch(o){return Promise.reject(o)}}),t.push([n,i,e])}else n&&t.push([n]);return e},K=(t,e,n)=>{var i=typeof SuppressedError=="function"?SuppressedError:function(a,s,l,u){return u=Error(l),u.name="SuppressedError",u.error=a,u.suppressed=s,u},r=a=>e=n?new i(a,e,"An error was suppressed during disposal"):(n=!0,a),o=a=>{for(;a=t.pop();)try{var s=a[1]&&a[1].call(a[2]);if(a[0])return Promise.resolve(s).then(o,l=>(r(l),o()))}catch(l){r(l)}if(n)throw e};return o()};import vt from"mri";function lt(t,e=process.argv.slice(2)){for(let[r,o]of e.entries())o==="-"&&(e[r]="__IO_DEFAULT_VALUE__");let n=vt(e);for(let r in n)n[r]==="__IO_DEFAULT_VALUE__"&&(n[r]="-");let i={_:n._};for(let[r,{type:o,alias:a,default:s=o==="boolean"?!1:null}]of Object.entries(t)){if(i[r]=s,a){let l=a.slice(1);n[l]!==void 0&&(i[r]=st(n[l],o))}{let l=r.slice(2);n[l]!==void 0&&(i[r]=st(n[l],o))}}return i}function st(t,e){switch(e){case"string":return D(t);case"boolean":return O(t);case"number":return B(t);case"boolean | string":return O(t)??D(t);case"number | string":return B(t)??D(t);case"boolean | number":return O(t)??B(t);case"boolean | number | string":return O(t)??B(t)??D(t);default:throw new Error(`Unhandled type: ${e}`)}}function O(t){if(t===!0||t===!1)return t;if(t==="true")return!0;if(t==="false")return!1}function B(t){if(typeof t=="number")return t;{let e=Number(t);if(!Number.isNaN(e))return e}}function D(t){return`${t}`}import Nt from"@parcel/watcher";import{compile as zt,env as Lt,Instrumentation as dt}from"@tailwindcss/node";import{clearRequireCache as Ut}from"@tailwindcss/node/require-cache";import{Scanner as Wt}from"@tailwindcss/oxide";import{Features as U,transform as It}from"lightningcss";import{existsSync as Et}from"node:fs";import Y from"node:fs/promises";import A from"node:path";var F=class{#t=new Set([]);queueMacrotask(e){let n=setTimeout(e,0);return this.add(()=>{clearTimeout(n)})}add(e){return this.#t.add(e),()=>{this.#t.delete(e),e()}}async dispose(){for(let e of this.#t)await e();this.#t.clear()}};import Rt from"node:fs";import ct from"node:path";import{stripVTControlCharacters as Ot}from"node:util";import y from"picocolors";import at from"enhanced-resolve";import At from"node:fs";import{createRequire as Ft}from"node:module";var kt=Ft(import.meta.url).resolve;function ut(t){if(typeof globalThis.__tw_resolve=="function"){let e=globalThis.__tw_resolve(t);if(e)return e}return kt(t)}var Yt=at.ResolverFactory.createResolver({fileSystem:new at.CachedInputFileSystem(At,4e3),useSyncFileSystemCalls:!0,extensions:[".css"],mainFields:["style"],conditionNames:["style"]});function pt(t){let e=typeof t=="number"?BigInt(t):t;return e<1000n?`${e}ns`:(e/=1000n,e<1000n?`${e}\xB5s`:(e/=1000n,e<1000n?`${e}ms`:(e/=1000n,e<60n?`${e}s`:(e/=60n,e<60n?`${e}m`:(e/=60n,e<24n?`${e}h`:(e/=24n,`${e}d`))))))}var N={indent:2};function C(){return`${y.italic(y.bold(y.blue("\u2248")))} tailwindcss ${y.blue(`v${Bt()}`)}`}function v(t){return`${y.dim(y.blue("`"))}${y.blue(t)}${y.dim(y.blue("`"))}`}function z(t,e=process.cwd(),{preferAbsoluteIfShorter:n=!0}={}){let i=ct.relative(e,t);return i.startsWith("..")||(i=`.${ct.sep}${i}`),n&&i.length>t.length?t:i}function G(t,e){let n=t.split(" "),i=[],r="",o=0;for(let a of n){let s=Ot(a).length;o+s+1>e&&(i.push(r),r="",o=0),r+=(o?" ":"")+a,o+=s+(o?1:0)}return o&&i.push(r),i}function L(t){let e=pt(t);return t<=50*1e6?y.green(e):t<=300*1e6?y.blue(e):t<=1e3*1e6?y.yellow(e):y.red(e)}function k(t,e=0){return`${" ".repeat(e+N.indent)}${t}`}function h(t=""){process.stderr.write(`${t}
|
|
3
3
|
`)}function d(t=""){process.stdout.write(`${t}
|
|
4
|
-
`)}function Bt(){if(typeof globalThis.__tw_version=="string")return globalThis.__tw_version;let{version:t}=JSON.parse(Rt.readFileSync(
|
|
4
|
+
`)}function Bt(){if(typeof globalThis.__tw_version=="string")return globalThis.__tw_version;let{version:t}=JSON.parse(Rt.readFileSync(ut("tailwindcss/package.json"),"utf-8"));return t}import J from"node:fs/promises";import Dt from"node:path";function Q(){return new Promise((t,e)=>{let n="";process.stdin.on("data",i=>{n+=i}),process.stdin.on("end",()=>t(n)),process.stdin.on("error",i=>e(i))})}async function ft(t,e){try{if(await J.readFile(t,"utf8")===e)return}catch{}await J.mkdir(Dt.dirname(t),{recursive:!0}),await J.writeFile(t,e,"utf8")}var mt=String.raw,p=Lt.DEBUG;function W(){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",alias:"-w"},"--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:"."}}}async function ht(t){try{return await t()}catch(e){e instanceof Error&&h(e.toString()),process.exit(1)}}async function bt(t){var tt=[];try{let e=q(tt,new dt);p&&e.start("[@tailwindcss/cli] (initial build)");let n=A.resolve(t["--cwd"]);t["--output"]&&t["--output"]!=="-"&&(t["--output"]=A.resolve(n,t["--output"]));t["--input"]&&t["--input"]!=="-"&&(t["--input"]=A.resolve(n,t["--input"]),Et(t["--input"])||(h(C()),h(),h(`Specified input file ${v(z(t["--input"]))} does not exist.`),process.exit(1)));t["--input"]===t["--output"]&&t["--input"]!=="-"&&(h(C()),h(),h(`Specified input file ${v(z(t["--input"]))} and output file ${v(z(t["--output"]))} are identical.`),process.exit(1));let i=process.hrtime.bigint();let r=t["--input"]?t["--input"]==="-"?await Q():await Y.readFile(t["--input"],"utf-8"):mt`
|
|
5
5
|
@import 'tailwindcss';
|
|
6
|
-
`;let o={css:"",optimizedCss:""};async function a(S,
|
|
6
|
+
`;let o={css:"",optimizedCss:""};async function a(S,w,m){let x=S;if(w["--minify"]||w["--optimize"])if(S!==o.css){p&&m.start("Optimize CSS");let _=Pt(S,{file:w["--input"]??"input.css",minify:w["--minify"]??!1});p&&m.end("Optimize CSS"),o.css=S,o.optimizedCss=_,x=_}else x=o.optimizedCss;p&&m.start("Write output"),w["--output"]&&w["--output"]!=="-"?await ft(w["--output"],x):d(x),p&&m.end("Write output")}let s=t["--input"]&&t["--input"]!=="-"?A.resolve(t["--input"]):null;let l=s?A.dirname(s):process.cwd();let u=s?[s]:[];async function f(S,w){p&&w.start("Setup compiler");let m=await zt(S,{base:l,onDependency(P){u.push(P)}}),x=(m.root==="none"?[]:m.root===null?[{base:n,pattern:"**/*"}]:[m.root]).concat(m.globs),_=new Wt({sources:x});return p&&w.end("Setup compiler"),[m,_]}let[b,g]=await ht(()=>f(r,e));if(t["--watch"]){let S=await yt(gt(g),async function w(m){try{var x=[];try{if(m.length===1&&m[0]===t["--output"])return;let c=q(x,new dt);p&&c.start("[@tailwindcss/cli] (watcher)");let et=process.hrtime.bigint();let nt=[];let j="incremental";let it=u;for(let $ of m){if(it.includes($)){j="full";break}nt.push({file:$,extension:A.extname($).slice(1)})}let M="";if(j==="full"){let $=t["--input"]?t["--input"]==="-"?await Q():await Y.readFile(t["--input"],"utf-8"):mt`
|
|
7
7
|
@import 'tailwindcss';
|
|
8
|
-
`;Ut(
|
|
8
|
+
`;Ut(it),u=s?[s]:[],[b,g]=await f($,c),p&&c.start("Scan for candidates");let V=g.scan();p&&c.end("Scan for candidates"),p&&c.start("Setup new watchers");let Ct=await yt(gt(g),w);p&&c.end("Setup new watchers"),p&&c.start("Cleanup old watchers"),await S(),p&&c.end("Cleanup old watchers"),S=Ct,p&&c.start("Build CSS"),M=b.build(V),p&&c.end("Build CSS")}else if(j==="incremental"){p&&c.start("Scan for candidates");let $=g.scanFiles(nt);if(p&&c.end("Scan for candidates"),$.length<=0){let V=process.hrtime.bigint();h(`Done in ${L(V-et)}`);return}p&&c.start("Build CSS"),M=b.build($),p&&c.end("Build CSS")}await a(M,t,c);let _t=process.hrtime.bigint();h(`Done in ${L(_t-et)}`)}catch(_){var P=_,Tt=!0}finally{K(x,P,Tt)}}catch(c){c instanceof Error&&h(c.toString())}});t["--watch"]!=="always"&&process.stdin.on("end",()=>{S().then(()=>process.exit(0),()=>process.exit(1))}),process.stdin.resume()}p&&e.start("Scan for candidates");let I=g.scan();p&&e.end("Scan for candidates");p&&e.start("Build CSS");let R=await ht(()=>b.build(I));p&&e.end("Build CSS");await a(R,t,e);let E=process.hrtime.bigint();h(C());h();h(`Done in ${L(E-i)}`)}catch(St){var xt=St,$t=!0}finally{K(tt,xt,$t)}}function gt(t){return t.globs.flatMap(e=>e.pattern[0]==="!"?[]:e.pattern===""?[]:e.base)}async function yt(t,e){t=t.sort((s,l)=>s.length-l.length);let n=[];for(let s=0;s<t.length;++s)for(let l=0;l<s;++l)t[s].startsWith(`${t[l]}/`)&&n.push(t[s]);t=t.filter(s=>!n.includes(s));let i=new F,r=new Set,o=new F;async function a(){await o.dispose(),o.queueMacrotask(()=>{e(Array.from(r)),r.clear()})}for(let s of t){let{unsubscribe:l}=await Nt.subscribe(s,async(u,f)=>{if(u){console.error(u);return}await Promise.all(f.map(async b=>{if(b.type==="delete")return;let g=null;try{g=await Y.lstat(b.path)}catch{}!g?.isFile()&&!g?.isSymbolicLink()||r.add(b.path)})),await a()});i.add(l)}return async()=>{await i.dispose(),await o.dispose()}}function Pt(t,{file:e="input.css",minify:n=!1}={}){function i(r){return It({filename:e,code:r,minify:n,sourceMap:!1,drafts:{customMedia:!0},nonStandard:{deepSelectorCombinator:!0},include:U.Nesting,exclude:U.LogicalProperties|U.DirSelector|U.LightDark,targets:{safari:16<<16|1024,ios_saf:16<<16|1024,firefox:8388608,chrome:7274496},errorRecovery:!0}).code}return i(i(Buffer.from(t))).toString()}import T from"picocolors";function H({invalid:t,usage:e,options:n}){let i=process.stdout.columns;if(d(C()),t&&(d(),d(`${T.dim("Invalid command:")} ${t}`)),e&&e.length>0){d(),d(T.dim("Usage:"));for(let[r,o]of e.entries()){let a=o.slice(0,o.indexOf("[")),s=o.slice(o.indexOf("["));s=s.replace(/\[.*?\]/g,f=>T.dim(f));let u=G(s,i-N.indent-a.length-1);u.length>1&&r!==0&&d(),d(k(`${a}${u.shift()}`));for(let f of u)d(k(f,a.length))}}if(n){let r=0;for(let{alias:l}of Object.values(n))l&&(r=Math.max(r,l.length));let o=[],a=0;for(let[l,{alias:u}]of Object.entries(n)){let f=[u&&`${u.padStart(r)}`,u?l:" ".repeat(r+2)+l].filter(Boolean).join(", ");o.push(f),a=Math.max(a,f.length)}d(),d(T.dim("Options:"));let s=8;for(let{description:l,default:u=null}of Object.values(n)){let f=o.shift(),b=s+(a-f.length),g=2,I=i-f.length-b-g-N.indent,R=G(u!==null?`${l} ${T.dim(`[default:\u202F${v(`${u}`)}]`)}`:l,I);d(k(`${T.blue(f)} ${T.dim(T.gray("\xB7")).repeat(b)} ${R.shift()}`));for(let E of R)d(k(`${" ".repeat(f.length+b+g)}${E}`))}}}var X={"--help":{type:"boolean",description:"Display usage information",alias:"-h"}},Z=lt({...W(),...X}),wt=Z._[0];wt&&(H({invalid:wt,usage:["tailwindcss [options]"],options:{...W(),...X}}),process.exit(1));(process.stdout.isTTY&&process.argv[2]===void 0||Z["--help"])&&(H({usage:["tailwindcss [--input input.css] [--output output.css] [--watch] [options\u2026]"],options:{...W(),...X}}),process.exit(0));bt(Z);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tailwindcss/cli",
|
|
3
|
-
"version": "4.0.
|
|
3
|
+
"version": "4.0.16",
|
|
4
4
|
"description": "A utility-first CSS framework for rapidly building custom user interfaces.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -29,9 +29,9 @@
|
|
|
29
29
|
"lightningcss": "1.29.2",
|
|
30
30
|
"mri": "^1.2.0",
|
|
31
31
|
"picocolors": "^1.1.1",
|
|
32
|
-
"@tailwindcss/node": "4.0.
|
|
33
|
-
"@tailwindcss/oxide": "4.0.
|
|
34
|
-
"tailwindcss": "4.0.
|
|
32
|
+
"@tailwindcss/node": "4.0.16",
|
|
33
|
+
"@tailwindcss/oxide": "4.0.16",
|
|
34
|
+
"tailwindcss": "4.0.16"
|
|
35
35
|
},
|
|
36
36
|
"scripts": {
|
|
37
37
|
"lint": "tsc --noEmit",
|