@tailwindcss/cli 0.0.0-insiders.01d1e98 → 0.0.0-insiders.04588b1

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