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