@tailwindcss/cli 0.0.0-insiders.91c0d56 → 0.0.0-insiders.92172d3
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/README.md +6 -10
- package/dist/index.mjs +25 -5
- package/package.json +6 -7
package/README.md
CHANGED
|
@@ -13,10 +13,10 @@
|
|
|
13
13
|
</p>
|
|
14
14
|
|
|
15
15
|
<p align="center">
|
|
16
|
-
<a href="https://github.com/tailwindlabs/tailwindcss/actions"><img src="https://img.shields.io/github/actions/workflow/status/tailwindlabs/tailwindcss/ci.yml?branch=
|
|
16
|
+
<a href="https://github.com/tailwindlabs/tailwindcss/actions"><img src="https://img.shields.io/github/actions/workflow/status/tailwindlabs/tailwindcss/ci.yml?branch=main" alt="Build Status"></a>
|
|
17
17
|
<a href="https://www.npmjs.com/package/tailwindcss"><img src="https://img.shields.io/npm/dt/tailwindcss.svg" alt="Total Downloads"></a>
|
|
18
|
-
<a href="https://github.com/
|
|
19
|
-
<a href="https://github.com/
|
|
18
|
+
<a href="https://github.com/tailwindlabs/tailwindcss/releases"><img src="https://img.shields.io/npm/v/tailwindcss.svg" alt="Latest Release"></a>
|
|
19
|
+
<a href="https://github.com/tailwindlabs/tailwindcss/blob/main/LICENSE"><img src="https://img.shields.io/npm/l/tailwindcss.svg" alt="License"></a>
|
|
20
20
|
</p>
|
|
21
21
|
|
|
22
22
|
---
|
|
@@ -27,14 +27,10 @@ For full documentation, visit [tailwindcss.com](https://tailwindcss.com).
|
|
|
27
27
|
|
|
28
28
|
## Community
|
|
29
29
|
|
|
30
|
-
For help, discussion about best practices, or
|
|
30
|
+
For help, discussion about best practices, or feature ideas:
|
|
31
31
|
|
|
32
|
-
[Discuss Tailwind CSS on GitHub](https://github.com/
|
|
33
|
-
|
|
34
|
-
For chatting with others using the framework:
|
|
35
|
-
|
|
36
|
-
[Join the Tailwind CSS Discord Server](https://discord.gg/7NF8GNe)
|
|
32
|
+
[Discuss Tailwind CSS on GitHub](https://github.com/tailwindlabs/tailwindcss/discussions)
|
|
37
33
|
|
|
38
34
|
## Contributing
|
|
39
35
|
|
|
40
|
-
If you're interested in contributing to Tailwind CSS, please read our [contributing docs](https://github.com/
|
|
36
|
+
If you're interested in contributing to Tailwind CSS, please read our [contributing docs](https://github.com/tailwindlabs/tailwindcss/blob/main/.github/CONTRIBUTING.md) **before submitting a pull request**.
|
package/dist/index.mjs
CHANGED
|
@@ -1,8 +1,28 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
var
|
|
3
|
-
`)}function
|
|
4
|
-
`)}function
|
|
2
|
+
var ye=(e,t)=>(t=Symbol[e])?t:Symbol.for("Symbol."+e),Se=e=>{throw TypeError(e)};var J=(e,t,n)=>{if(t!=null){typeof t!="object"&&typeof t!="function"&&Se("Object expected");var i,r;n&&(i=t[ye("asyncDispose")]),i===void 0&&(i=t[ye("dispose")],n&&(r=i)),typeof i!="function"&&Se("Object not disposable"),r&&(i=function(){try{r.call(this)}catch(s){return Promise.reject(s)}}),e.push([n,i,t])}else n&&e.push([n]);return t},Q=(e,t,n)=>{var i=typeof SuppressedError=="function"?SuppressedError:function(o,a,l,c){return c=Error(l),c.name="SuppressedError",c.error=o,c.suppressed=a,c},r=o=>t=n?new i(o,t,"An error was suppressed during disposal"):(n=!0,o),s=o=>{for(;o=e.pop();)try{var a=o[1]&&o[1].call(o[2]);if(o[0])return Promise.resolve(a).then(s,l=>(r(l),s()))}catch(l){r(l)}if(n)throw t};return s()};import Je from"mri";function k(e,t=process.argv.slice(2)){for(let[r,s]of t.entries())s==="-"&&(t[r]="__IO_DEFAULT_VALUE__");let n=Je(t);for(let r in n){let s=n[r];r!=="_"&&Array.isArray(s)&&(s=s[s.length-1]),s==="__IO_DEFAULT_VALUE__"&&(s="-"),n[r]=s}let i={_:n._};for(let[r,{type:s,alias:o,default:a=s==="boolean"?!1:null}]of Object.entries(e)){if(i[r]=a,o){let l=o.slice(1);n[l]!==void 0&&(i[r]=Ce(n[l],s))}{let l=r.slice(2);n[l]!==void 0&&(i[r]=Ce(n[l],s))}}return i}function Ce(e,t){switch(t){case"string":return X(e);case"boolean":return H(e);case"number":return Z(e);case"boolean | string":return H(e)??X(e);case"number | string":return Z(e)??X(e);case"boolean | number":return H(e)??Z(e);case"boolean | number | string":return H(e)??Z(e)??X(e);default:throw new Error(`Unhandled type: ${t}`)}}function H(e){if(e===!0||e===!1)return e;if(e==="true")return!0;if(e==="false")return!1}function Z(e){if(typeof e=="number")return e;{let t=Number(e);if(!Number.isNaN(t))return t}}function X(e){return`${e}`}import{compile as it,env as rt,Instrumentation as pe,optimize as st,toSourceMap as M}from"@tailwindcss/node";import{clearRequireCache as Ee}from"@tailwindcss/node/require-cache";import{Scanner as ot}from"@tailwindcss/oxide";import{existsSync as lt}from"fs";import j from"fs/promises";import C from"path";var I=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 Xe from"fs";import $e from"path";import{stripVTControlCharacters as et}from"util";import $ from"picocolors";import xe from"enhanced-resolve";import Qe from"fs";import{createRequire as He}from"module";var Ze=He(import.meta.url).resolve;function Te(e){if(typeof globalThis.__tw_resolve=="function"){let t=globalThis.__tw_resolve(e);if(t)return t}return Ze(e)}var Wt=xe.ResolverFactory.createResolver({fileSystem:new xe.CachedInputFileSystem(Qe,4e3),useSyncFileSystemCalls:!0,extensions:[".css"],mainFields:["style"],conditionNames:["style"]});function _e(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 ee={indent:2};function te(){return`${$.italic($.bold($.blue("\u2248")))} tailwindcss ${$.blue(`v${tt()}`)}`}function F(e){return`${$.dim($.blue("`"))}${$.blue(e)}${$.dim($.blue("`"))}`}function ne(e,t=process.cwd(),{preferAbsoluteIfShorter:n=!0}={}){let i=$e.relative(t,e);return i.startsWith("..")||(i=`.${$e.sep}${i}`),n&&i.length>e.length?e:i}function z(e,t){let n=e.split(" "),i=[],r="",s=0;for(let o of n){let a=et(o).length;s>0&&s+a+1>t&&(i.push(r),r="",s=0),r+=(s?" ":"")+o,s+=a+(s?1:0)}return s&&i.push(r),i}function O(e){let t=_e(e);return e<=50*1e6?$.green(t):e<=300*1e6?$.blue(t):e<=1e3*1e6?$.yellow(t):$.red(t)}function W(e,t=0){return`${" ".repeat(t+ee.indent)}${e}`}function T(e=""){process.stderr.write(`${e}
|
|
3
|
+
`)}function ie(e=""){process.stdout.write(`${e}
|
|
4
|
+
`)}function tt(){if(typeof globalThis.__tw_version=="string")return globalThis.__tw_version;let{version:e}=JSON.parse(Xe.readFileSync(Te("tailwindcss/package.json"),"utf-8"));return e}import re from"fs/promises";import nt from"path";function se(){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 ce(e,t){if(!await re.stat(e).then(i=>i.isCharacterDevice()||i.isFIFO()).catch(()=>!1))try{if(await re.readFile(e,"utf8")===t)return}catch{}await re.mkdir(nt.dirname(e),{recursive:!0}),await re.writeFile(e,t,"utf8")}var de=String.raw,u=rt.DEBUG,at=250;function U(){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"]},"--poll":{type:"boolean | number",description:"Use polling instead of filesystem events when watching",default:!1,values:["ms"]},"--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"}}}function fe(e){let t=new Set;function n(i,r){let s=" ".repeat(r),o=(process.stderr.columns??1/0)-2*(r+1),a=[`${s}${ct(r===0?"Error:":"Caused by:")}`,`${s}${G("\u250C")}`];for(let l of`${i}`.split(`
|
|
5
|
+
`)){let c=z(l,o);c.length===0&&(c=[""]);for(let m of c)a.push(`${s}${G("\u2502")} ${m}`)}return a.push(`${s}${G("\u2514")}`),typeof i=="object"&&i!==null&&"cause"in i&&i.cause!=null&&(t.add(i).has(i.cause)||a.push(...n(i.cause,r+1))),a}return n(e,0).join(`
|
|
6
|
+
`)}async function oe(e){try{return await e()}catch(t){T(fe(t)),process.exit(1)}}async function me(e){var be=[];try{e["--silent"]||T(te());e["--silent"]||T();let t=J(be,new pe);u&&t.start("[@tailwindcss/cli] (initial build)");let n=C.resolve(e["--cwd"]);e["--output"]&&e["--output"]!=="-"&&(e["--output"]=C.resolve(n,e["--output"]));e["--input"]&&e["--input"]!=="-"&&(e["--input"]=C.resolve(n,e["--input"]),lt(e["--input"])||(T(`Specified input file ${F(ne(e["--input"]))} does not exist.`),process.exit(1)));e["--input"]===e["--output"]&&e["--input"]!=="-"&&(T(`Specified input file ${F(ne(e["--input"]))} and output file ${F(ne(e["--output"]))} are identical.`),process.exit(1));e["--map"]==="-"&&(T("Use --map without a value to inline the source map."),process.exit(1));e["--poll"]===void 0&&(T("Use --poll with a non-zero value in milliseconds."),process.exit(1));let i=e["--poll"]===!0?at:e["--poll"];i!==!1&&i<=0&&(T("Specified polling interval must be a positive number."),process.exit(1));e["--map"]&&e["--map"]!==!0&&(e["--map"]=C.resolve(n,e["--map"]));let r=process.hrtime.bigint();let s=e["--input"]?e["--input"]==="-"?await se():await j.readFile(e["--input"],"utf-8"):de`
|
|
5
7
|
@import 'tailwindcss';
|
|
6
|
-
`;let o={css:"",optimizedCss:""};async function a(S,
|
|
8
|
+
`;let o={css:"",optimizedCss:"",output:null};async function a(_,S,g,d){let h=_;if(g["--minify"]||g["--optimize"])if(_!==o.css){u&&d.start("Optimize CSS");let p=st(_,{file:g["--input"]??"input.css",minify:g["--minify"]??!1,map:S?.raw??void 0});u&&d.end("Optimize CSS"),o.css=_,o.optimizedCss=p.code,p.map&&(S=M(p.map)),h=p.code}else h=o.optimizedCss;if(S){if(g["--map"]===!0)h+=`
|
|
9
|
+
`,h+=S.inline;else if(typeof g["--map"]=="string"){let p=g["--output"]&&g["--output"]!=="-"?C.dirname(C.resolve(g["--output"])):process.cwd(),E=C.resolve(g["--map"]),B=C.relative(p,E);h+=`
|
|
10
|
+
`,h+=S.comment(B),u&&d.start("Write source map"),await ce(g["--map"],S.raw),u&&d.end("Write source map")}}let x=h!==o.output;return u&&d.start("Write output"),g["--output"]&&g["--output"]!=="-"?await ce(g["--output"],h):x&&ie(h),u&&d.end("Write output"),o.output=h,x}let l=e["--input"]&&e["--input"]!=="-"?C.resolve(e["--input"]):null;let c=l?C.dirname(l):process.cwd();let m=l?[l]:[];let b=m;async function w(_,S){u&&S.start("Setup compiler");let g=await it(_,{from:e["--output"]?l??"stdin.css":void 0,base:c,onDependency(x){m.push(x)}}),d=(g.root==="none"?[]:g.root===null?[{base:n,pattern:"**/*",negated:!1}]:[{...g.root,negated:!1}]).concat(g.sources);d.push({base:C.dirname(process.execPath),pattern:C.basename(process.execPath),negated:!0}),l!==null&&d.push({base:C.dirname(l),pattern:C.basename(l),negated:!1});let h=new ot({sources:d});return u&&S.end("Setup compiler"),[g,h]}let[f,y]=await oe(()=>w(s,t));let R=[];e["--watch"]&&i===!1&&(await oe(()=>Ae()),R.push(await Re(await Oe(y),async function _(S){try{var g=[];try{if(S.length===1&&S[0]===e["--output"])return;let p=J(g,new pe);u&&p.start("[@tailwindcss/cli] (watcher)");let E=process.hrtime.bigint();let B=m;let P=ve(S,B);let N="";let D=null;if(P.kind==="full"){let L=e["--input"]?e["--input"]==="-"?await se():await j.readFile(e["--input"],"utf-8"):de`
|
|
7
11
|
@import 'tailwindcss';
|
|
8
|
-
`;
|
|
12
|
+
`;Ee(B),b=m.slice(),m=l?[l]:[],[f,y]=await w(L,p),b=m.slice(),u&&p.start("Scan for candidates");let v=y.scan();u&&p.end("Scan for candidates"),u&&p.start("Setup new watchers");let Ve=await Re(await Oe(y),_);u&&p.end("Setup new watchers"),u&&p.start("Cleanup old watchers"),await Promise.all(R.splice(0).map(qe=>qe())),u&&p.end("Cleanup old watchers"),R.push(Ve),u&&p.start("Build CSS"),N=f.build(v),u&&p.end("Build CSS"),e["--map"]&&(u&&p.start("Build Source Map"),D=M(f.buildSourceMap()),u&&p.end("Build Source Map"))}else if(P.kind==="incremental"){u&&p.start("Scan for candidates");let L=y.scanFiles(P.changedFiles);if(u&&p.end("Scan for candidates"),L.length<=0){let v=process.hrtime.bigint();e["--silent"]||T(`Done in ${O(v-E)}`);return}u&&p.start("Build CSS"),N=f.build(L),u&&p.end("Build CSS"),e["--map"]&&(u&&p.start("Build Source Map"),D=M(f.buildSourceMap()),u&&p.end("Build Source Map"))}await a(N,D,e,p);let ue=process.hrtime.bigint();e["--silent"]||T(`Done in ${O(ue-E)}`)}catch(d){var h=d,x=!0}finally{Q(g,h,x)}}catch(p){m=b,T(fe(p));let E=process.hrtime.bigint();e["--silent"]||T(`Done in ${O(E-r)}`)}})),e["--watch"]!=="always"&&process.stdin.on("end",()=>{Promise.all(R.map(_=>_())).then(()=>process.exit(0),()=>process.exit(1))}),process.stdin.resume());u&&t.start("Scan for candidates");let ae=y.scan();u&&t.end("Scan for candidates");u&&t.start("Build CSS");let V=await oe(()=>f.build(ae));u&&t.end("Build CSS");let q=null;e["--map"]&&(u&&t.start("Build Source Map"),q=await oe(()=>M(f.buildSourceMap())),u&&t.end("Build Source Map"));await a(V,q,e,t);let We=process.hrtime.bigint();e["--silent"]||T(`Done in ${O(We-r)}`);if(e["--watch"]&&i!==!1){let S=function(d){e["--silent"]||process.stderr.write("\r\x1B[2K"),T(d),e["--silent"]||process.stderr.write(`\r\x1B[2K${G("Polling for changes\u2026")}`)};var Pt=S;let _=()=>{};async function g(d){Ee(m),b=m.slice(),m=l?[l]:[];let h=e["--input"]?e["--input"]==="-"?await se():await j.readFile(e["--input"],"utf-8"):de`
|
|
13
|
+
@import 'tailwindcss';
|
|
14
|
+
`;[f,y]=await w(h,d),b=m.slice(),u&&d.start("Scan for candidates");let x=y.scan();u&&d.end("Scan for candidates"),u&&d.start("Build CSS");let p=f.build(x);u&&d.end("Build CSS");let E=null;e["--map"]&&(u&&d.start("Build Source Map"),E=M(f.buildSourceMap()),u&&d.end("Build Source Map")),await a(p,E,e,d)}if(!e["--silent"]){let h=function(){d||(d=!0,process.stderr.write("\r\x1B[2K\x1B[?25h"),process.off("exit",h),process.off("SIGINT",x),process.off("SIGTERM",p))},x=function(){h(),process.exit(130)},p=function(){h(),process.exit(143)};var Nt=h,Lt=x,kt=p;let d=!1;process.stderr.write("\x1B[?25l"),process.on("exit",h),process.on("SIGINT",x),process.on("SIGTERM",p),_=h,R.push(async()=>_())}R.push(ut(async()=>{var N=[];try{let d=J(N,new pe);u&&d.start("Scan for candidates");let h=y.scan();u&&d.end("Scan for candidates");let x=y.scannedFiles.filter(v=>v!==e["--output"]&&v!==e["--map"]);if(x.length<=0)return;let p=process.hrtime.bigint();let E=ve(x,m);if(E.kind==="full"){try{await g(d)}catch(v){m=b,S(fe(v))}e["--silent"]||S(`Done in ${O(process.hrtime.bigint()-p)}`);return}if(h.length<=0){e["--silent"]||S(`Done in ${O(process.hrtime.bigint()-p)}`);return}u&&d.start("Build CSS");let B=f.build(h);u&&d.end("Build CSS");let P=null;e["--map"]&&(u&&d.start("Build Source Map"),P=M(f.buildSourceMap()),u&&d.end("Build Source Map"));await a(B,P,e,d);e["--silent"]||S(`Done in ${O(process.hrtime.bigint()-p)}`)}catch(D){var ue=D,L=!0}finally{Q(N,ue,L)}},i)),e["--watch"]!=="always"&&process.stdin.on("end",()=>{Promise.all(R.map(d=>d())).then(()=>process.exit(0),()=>process.exit(1))}),process.stdin.resume(),e["--silent"]||process.stderr.write(`\r\x1B[2K${G("Polling for changes\u2026")}`)}}catch(Ge){var Ke=Ge,Ye=!0}finally{Q(be,Ke,Ye)}}async function Ae(){try{return(await import("@parcel/watcher")).default}catch(e){throw new Error("Failed to load the file watcher. Your platform may not be supported by `@parcel/watcher`. As a workaround, you can use polling instead by passing the `--watch --poll` flags.",{cause:e})}}async function Re(e,t){let n=await Ae();e=e.sort((l,c)=>l.length-c.length);let i=[];for(let l=0;l<e.length;++l)for(let c=0;c<l;++c)e[l].startsWith(`${e[c]}/`)&&i.push(e[l]);e=e.filter(l=>!i.includes(l));let r=new I,s=new Set,o=new I;async function a(){await o.dispose(),o.queueMacrotask(()=>{t(Array.from(s)),s.clear()})}for(let l of e){let{unsubscribe:c}=await n.subscribe(l,async(m,b)=>{if(m){console.error(m);return}await Promise.all(b.map(async w=>{if(w.type==="delete"){s.add(w.path);return}let f=null;try{f=await j.lstat(w.path)}catch{}!f?.isFile()&&!f?.isSymbolicLink()||s.add(w.path)})),await a()});r.add(c)}return async()=>{await r.dispose(),await o.dispose()}}function ve(e,t){let n=[];for(let i of e){if(t.includes(i))return{kind:"full"};n.push({file:i,extension:C.extname(i).slice(1)})}return{kind:"incremental",changedFiles:n}}function ut(e,t){let n=!1,i=null;async function r(){if(!n)try{await e()}catch(s){console.error(s)}finally{n||(i=setTimeout(r,t))}}return i=setTimeout(r,t),async()=>{n=!0,i&&clearTimeout(i)}}async function Oe(e){let t=(await Promise.all(e.normalizedSources.map(async n=>{let i=C.resolve(n.base),r=await j.realpath(i).catch(()=>i);return j.stat(r).then(s=>s.isDirectory()?[r]:[]).catch(()=>[])}))).flat(1);return Array.from(new Set(t))}function G(e){return`\x1B[2m${e}\x1B[22m`}function ct(e){return`\x1B[31m${e}\x1B[39m`}import{__unstable__loadDesignSystem as Pe}from"@tailwindcss/node";import{Console as dt}from"console";import ft from"fs/promises";import Ne from"path";import{createInterface as mt}from"readline";function he(e,t){let n=e.length,i=t.length,r=n<i?n:i;for(let s=0;s<r;s++){let o=e.charCodeAt(s),a=t.charCodeAt(s);if(o>=48&&o<=57&&a>=48&&a<=57){let l=s,c=s+1,m=s,b=s+1;for(o=e.charCodeAt(c);o>=48&&o<=57;)o=e.charCodeAt(++c);for(a=t.charCodeAt(b);a>=48&&a<=57;)a=t.charCodeAt(++b);let w=e.slice(l,c),f=t.slice(m,b),y=Number(w)-Number(f);if(y)return y;if(w<f)return-1;if(w>f)return 1;continue}if(o!==a)return o-a}return e.length-t.length}var le=new Uint8Array(256);function Be(e,t){let n=0,i=[],r=0,s=e.length,o=t.charCodeAt(0);for(let a=0;a<s;a++){let l=e.charCodeAt(a);if(n===0&&l===o){i.push(e.slice(r,a)),r=a+1;continue}switch(l){case 92:a+=1;break;case 39:case 34:for(;++a<s;){let c=e.charCodeAt(a);if(c===92){a+=1;continue}if(c===l)break}break;case 40:le[n]=41,n++;break;case 91:le[n]=93,n++;break;case 123:le[n]=125,n++;break;case 93:case 125:case 41:n>0&&l===le[n-1]&&n--;break}}return i.push(e.slice(r)),i}import A from"picocolors";function K({render:e=!0,invalid:t,usage:n,options:i}){let r=process.stdout.columns??80,s=[],o=e?ie:(a="")=>{s.push(a)};if(o(te()),t&&(o(),o(`${A.dim("Invalid command:")} ${t}`)),n&&n.length>0){o(),o(A.dim("Usage:"));for(let[a,l]of n.entries()){let c=l.slice(0,l.indexOf("[")),m=l.slice(l.indexOf("["));m=m.replace(/\[.*?\]/g,f=>A.dim(f));let w=z(m,r-ee.indent-c.length-1);w.length>1&&a!==0&&o(),o(W(`${c}${w.shift()}`));for(let f of w)o(W(f,c.length))}}if(i){let a=0;for(let{alias:b}of Object.values(i))b&&(a=Math.max(a,b.length));let l=[],c=0;for(let[b,{alias:w,values:f}]of Object.entries(i)){f?.length&&(b+=`[=${f.join(", ")}]`);let y=[w&&`${w.padStart(a)}`,w?b:" ".repeat(a+2)+b].filter(Boolean).join(", ");l.push(y),c=Math.max(c,y.length)}o(),o(A.dim("Options:"));let m=8;for(let{description:b,default:w=null}of Object.values(i)){let f=l.shift(),y=m+(c-f.length),R=2,ae=r-f.length-y-R-ee.indent,V=z(w!==null?`${b} ${A.dim(`[default:\u202F${F(`${w}`)}]`)}`:b,ae);o(W(`${A.blue(f)} ${A.dim(A.gray("\xB7")).repeat(y)} ${V.shift()}`));for(let q of V)o(W(`${" ".repeat(f.length+y+R)}${q}`))}}if(!e)return s.join(`
|
|
15
|
+
`)}var ht=String.raw;function ge(){return"tailwindcss canonicalize [classes...]"}function gt(){return"tailwindcss canonicalize --css input.css [classes...]"}function wt(){return"tailwindcss canonicalize --stream [--css input.css]"}function Fe(){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 Me={"--help":{type:"boolean",description:"Display usage information",alias:"-h",default:!1}};async function je({argv:e=process.argv.slice(2),cwd:t=process.cwd(),stdin:n=null,stdinIsTTY:i=process.stdin.isTTY,stdoutIsTTY:r=process.stdout.isTTY}={}){try{let s=k({...Fe(),...Me},e),o=Tt(s["--format"]??"text");if(r&&e.length===0||s["--help"])return{exitCode:0,stdout:Ue()??"",stderr:""};if(s["--stream"])return await Le(()=>bt({css:s["--css"],cwd:t,format:o,input:process.stdin,output:process.stdout})),{exitCode:0,stdout:"",stderr:""};let a=s._.length>0?s._:await yt({stdin:n,stdinIsTTY:i});if(a.length===0)return _t("No candidate groups provided");let l=await Le(()=>Ct({css:s["--css"],cwd:t,inputs:a}));return{exitCode:0,stdout:xt(l,o),stderr:""}}catch(s){return{exitCode:1,stdout:"",stderr:s instanceof Error?s.message:String(s)}}}async function bt({css:e,cwd:t,format:n,input:i,output:r}){let s=await De(e,t),o=mt({input:i}),a=!0;n==="json"&&r.write("[");for await(let l of o){let c=Ie(s,l);switch(n){case"text":{r.write(c.output+`
|
|
16
|
+
`);break}case"jsonl":{r.write(JSON.stringify(c)+`
|
|
17
|
+
`);break}case"json":{a?r.write(`
|
|
18
|
+
`):r.write(`,
|
|
19
|
+
`),r.write(Rt(JSON.stringify(c,null,2),2)),a=!1;break}}}n==="json"&&r.write(a?"]":`
|
|
20
|
+
]`)}function yt({stdin:e,stdinIsTTY:t}){return e!==null?Promise.resolve(ke(e)):t?Promise.resolve([]):St().then(ke)}async function St(){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 Ct({css:e,cwd:t=process.cwd(),inputs:n}){let i=await De(e,t);return n.map(r=>Ie(i,r))}function xt(e,t){switch(t){case"json":return JSON.stringify(e,null,2);case"jsonl":return e.map(n=>JSON.stringify(n)).join(`
|
|
21
|
+
`);case"text":return e.map(n=>n.output).join(`
|
|
22
|
+
`)}}function Ue(){return K({render:!1,usage:[ge(),gt(),wt()],options:{...Fe(),...Me}})}async function De(e,t){if(e===null)return Pe(ht`
|
|
23
|
+
@import 'tailwindcss';
|
|
24
|
+
`,{base:t});let n=Ne.resolve(t,e),i=await ft.readFile(n,"utf8");return Pe(i,{base:Ne.dirname(n)})}async function Le(e){let t=globalThis.console;globalThis.console=new dt({stdout:process.stderr,stderr:process.stderr});try{return await e()}finally{globalThis.console=t}}function ke(e){return e.split(/\r?\n/g).map(t=>t.trim()).filter(t=>t.length>0)}function Tt(e){if(e==="text"||e==="json"||e==="jsonl")return e;throw new Error(`Invalid value for --format: ${e}`)}function _t(e){return{exitCode:1,stdout:Ue()??"",stderr:e}}function $t(e){let t=e.trim();return t.length===0?[]:Be(t," ").map(n=>n.trim()).filter(n=>n.length>0)}function Et(e,t){let n=$t(t);return n=e.canonicalizeCandidates(n,{collapse:!0,logicalToPhysical:!0}),vt(e.getClassOrder(n)).join(" ")}function Ie(e,t){let n=Et(e,t);return{input:t,output:n,changed:n!==t}}function Rt(e,t){let n=" ".repeat(t);return e.split(`
|
|
25
|
+
`).map(i=>n+i).join(`
|
|
26
|
+
`)}function vt(e){return e.slice().sort(([t,n],[i,r])=>n===r?he(t,i):n===null?-1:r===null?1:Ot(n-r)||he(t,i)).map(([t])=>t)}function Ot(e){return e>0n?1:e===0n?0:-1}var Y={"--help":{type:"boolean",description:"Display usage information",alias:"-h"}};function we(e="tailwindcss"){return`${e} [--input input.css] [--output output.css] [--watch] [--poll=ms] [options\u2026]`}function ze({invalid:e}={}){K({invalid:e,usage:[we("tailwindcss"),we("tailwindcss build"),ge()],commands:{build:"Build your CSS",canonicalize:"Canonicalize candidate lists"},options:{...U(),...Y}})}async function Bt(){let e=process.argv.slice(2),t=e[0],n=k({...U(),...Y},e);if(t==="build"){let r=k({...U(),...Y},e.slice(1));(process.stdout.isTTY&&e.length===1||r["--help"])&&(K({usage:[we("tailwindcss build")],options:{...U(),...Y}}),process.exit(0)),await me(r);return}if(t==="canonicalize"){let r=await je({argv:e.slice(1)});r.stdout.length>0&&process.stdout.write(`${r.stdout}
|
|
27
|
+
`),r.stderr.length>0&&process.stderr.write(`${r.stderr}
|
|
28
|
+
`),process.exitCode=r.exitCode;return}(process.stdout.isTTY&&t===void 0||n["--help"])&&(ze(),process.exit(0)),t&&!t.startsWith("-")&&(ze({invalid:t}),process.exit(1));let i=k({...U(),...Y});await me(i)}await Bt();
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tailwindcss/cli",
|
|
3
|
-
"version": "0.0.0-insiders.
|
|
3
|
+
"version": "0.0.0-insiders.92172d3",
|
|
4
4
|
"description": "A utility-first CSS framework for rapidly building custom user interfaces.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -24,14 +24,13 @@
|
|
|
24
24
|
"access": "public"
|
|
25
25
|
},
|
|
26
26
|
"dependencies": {
|
|
27
|
-
"@parcel/watcher": "
|
|
28
|
-
"enhanced-resolve": "^5.
|
|
29
|
-
"lightningcss": "1.29.2",
|
|
27
|
+
"@parcel/watcher": "2.6.0",
|
|
28
|
+
"enhanced-resolve": "^5.24.5",
|
|
30
29
|
"mri": "^1.2.0",
|
|
31
30
|
"picocolors": "^1.1.1",
|
|
32
|
-
"@tailwindcss/
|
|
33
|
-
"
|
|
34
|
-
"tailwindcss": "0.0.0-insiders.
|
|
31
|
+
"@tailwindcss/node": "0.0.0-insiders.92172d3",
|
|
32
|
+
"tailwindcss": "0.0.0-insiders.92172d3",
|
|
33
|
+
"@tailwindcss/oxide": "0.0.0-insiders.92172d3"
|
|
35
34
|
},
|
|
36
35
|
"scripts": {
|
|
37
36
|
"lint": "tsc --noEmit",
|