Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion cli/csstools-cli/dist/cli.cjs

Large diffs are not rendered by default.

432 changes: 227 additions & 205 deletions package-lock.json

Large diffs are not rendered by default.

8 changes: 4 additions & 4 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@
"devDependencies": {
"@babel/core": "^7.28.4",
"@babel/preset-env": "^7.28.0",
"@eslint/js": "^9.35.0",
"@eslint/js": "^9.36.0",
"@microsoft/api-documenter": "^7.26.34",
"@microsoft/api-extractor": "^7.52.13",
"@rollup/plugin-babel": "^6.0.3",
Expand All @@ -37,13 +37,13 @@
"@rollup/plugin-terser": "^0.4.3",
"@rollup/plugin-typescript": "^12.1.4",
"@stryker-mutator/core": "^9.1.1",
"eslint": "^9.35.0",
"eslint": "^9.36.0",
"globals": "^16.4.0",
"knip": "^5.63.1",
"rollup": "^4.50.1",
"rollup": "^4.52.0",
"tslib": "^2.8.0",
"typescript": "^5.8.3",
"typescript-eslint": "^8.43.0"
"typescript-eslint": "^8.44.0"
},
"scripts": {
"everything": "npm run lint && npm run knip && npm run build && npm run docs && npm run test",
Expand Down
2 changes: 1 addition & 1 deletion packages/base-cli/dist/index.cjs
Original file line number Diff line number Diff line change
@@ -1 +1 @@
"use strict";var t,e=require("postcss"),n=require("node:path"),s=require("node:fs/promises");function parseArguments(e,n,s){const o=e.map(t=>t.trim()).filter(t=>!!t),i={stdin:!1,stdout:!1,output:void 0,outputDir:void 0,inputs:[],inlineMap:!0,externalMap:!1,replace:!1,pluginOptions:{},debug:!1};let r,a=!1;for(let e=0;e<o.length;e++){const n=o[e];switch(n){case"-o":case"--output":i.output=o[e+1],e++,a=!0;break;case"-m":case"--map":i.externalMap=!0,i.inlineMap=!1,a=!0;break;case"--no-map":i.externalMap=!1,i.inlineMap=!1,a=!0;break;case"-r":case"--replace":i.replace=!0,a=!0;break;case"--debug":i.debug=!0,a=!0;break;case"-d":case"--dir":i.outputDir=o[e+1],e++,a=!0;break;case"-p":case"--plugin-options":r=o[e+1],e++,a=!0;break;default:if(0===n.indexOf("-"))return console.warn(`[error] unknown argument : ${n}\n`),s(),t.InvalidArguments;if(!a){i.inputs.push(n);break}return s(),t.InvalidArguments}}if(i.replace&&(i.output=void 0,i.outputDir=void 0),i.outputDir&&(i.output=void 0),i.inputs.length>1&&i.output)return console.warn('[error] omit "--output" when processing multiple inputs\n'),s(),t.InvalidArguments;0===i.inputs.length&&(i.stdin=!0),i.output||i.outputDir||i.replace||(i.stdout=!0),i.stdout&&(i.externalMap=!1);let p={};if(r)try{p=JSON.parse(r)}catch{return console.warn("[error] plugin options must be valid JSON\n"),s(),t.InvalidArguments}for(const e in p){const o=p[e];if(!n.includes(e))return console.warn(`[error] unknown plugin option: ${e}\n`),s(),t.InvalidArguments;i.pluginOptions[e]=o}return i}async function getStdin(){return new Promise(t=>{let e="",n=!1;if(setTimeout(()=>{n=!0,t("")},1e4),process.stdin.isTTY){if(n)return;t(e)}else process.stdin.setEncoding("utf8"),process.stdin.on("readable",()=>{let t="";for(;t=process.stdin.read();)e+=t??""}),process.stdin.on("end",()=>{n||t(e)})})}async function stdinToStdout(t,n,s){let o="";try{const i=await getStdin();i||(s(),process.exit(1));const r=await e([t]).process(i,{from:"stdin",to:"stdout",map:!!n.inlineMap&&{inline:!0}});r.warnings().forEach(t=>{console.warn(t.toString())}),o=r.css}catch(t){t instanceof Error?console.error(n.debug?t:t.message):console.error(t),process.exit(1)}process.stdout.write(o+(n.inlineMap?"\n":"")),process.exit(0)}async function stdinToFs(t,o,i){let r=o.output;!r&&o.outputDir&&(r=n.join(o.outputDir,"output.css")),r||process.exit(0);try{const n=await getStdin();n||(i(),process.exit(1));const a=await e([t]).process(n,{from:"stdin",to:r,map:!(!o.inlineMap&&!o.externalMap)&&{inline:o.inlineMap}});a.warnings().forEach(t=>{console.warn(t.toString())}),o.externalMap&&a.map?await Promise.all([await s.writeFile(r,a.css+(o.inlineMap?"\n":"")),await s.writeFile(`${r}.map`,a.map.toString())]):await s.writeFile(r,a.css+(o.inlineMap?"\n":""))}catch(t){t instanceof Error?console.error(o.debug?t:t.message):console.error(t),process.exit(1)}console.log(`CSS was written to "${n.normalize(r)}"`),process.exit(0)}async function fsToStdout(t,n){let o=[];try{o=await Promise.all(n.inputs.map(async n=>{const o=await s.readFile(n),i=await e([t]).process(o,{from:n,to:"stdout",map:!1});return i.warnings().forEach(t=>{console.warn(t.toString())}),i.css}))}catch(t){t instanceof Error?console.error(n.debug?t:t.message):console.error(t),process.exit(1)}for(const t of o)process.stdout.write(t);process.exit(0)}async function fsToFs(t,o){try{await Promise.all(o.inputs.map(async i=>{let r=o.output;o.outputDir&&(r=n.join(o.outputDir,n.basename(i))),o.replace&&(r=i),r||process.exit(0);const a=await s.readFile(i),p=await e([t]).process(a,{from:i,to:r,map:!(!o.inlineMap&&!o.externalMap)&&{inline:o.inlineMap}});p.warnings().forEach(t=>{console.warn(t.toString())}),o.externalMap&&p.map?await Promise.all([await s.writeFile(r,p.css+(o.inlineMap?"\n":"")),await s.writeFile(`${r}.map`,p.map.toString())]):await s.writeFile(r,p.css+(o.inlineMap?"\n":"")),console.log(`CSS was written to "${n.normalize(r)}"`)}))}catch(t){t instanceof Error?console.error(o.debug?t:t.message):console.error(t),process.exit(1)}process.exit(0)}!function(t){t.InvalidArguments="INVALID_ARGUMENTS"}(t||(t={})),exports.cli=async function cli(e,n,s,o=!0){const i=parseArguments(process.argv.slice(o?2:3),n,s);i===t.InvalidArguments&&process.exit(1);const r=e(i.pluginOptions);i.stdin&&i.stdout?await stdinToStdout(r,i,s):i.stdin?await stdinToFs(r,i,s):i.stdout?await fsToStdout(r,i):await fsToFs(r,i)},exports.helpTextLogger=function helpTextLogger(t,e,n,s=null){let o=[];if(s){const t=Math.max(...Object.keys(s).map(t=>t.length)),e=new Array(t).fill(" ").join("");e.length&&(o=["\nPlugin Options:",...Object.keys(s).map(t=>` ${(t+e).slice(0,e.length)} ${typeof s[t]}`)],o.push(`\n ${JSON.stringify(s,null,2).split("\n").join("\n ")}`))}const i=[`${e}\n`,` ${n}\n`,"Usage:",` ${t} [input.css] [OPTIONS] [-o|--output output.css]`,` ${t} <input.css>... [OPTIONS] --dir <output-directory>`,` ${t} <input.css>... [OPTIONS] --replace`,"\nOptions:"," -o, --output Output file"," -d, --dir Output directory"," -r, --replace Replace (overwrite) the input file"," -m, --map Create an external sourcemap"," --no-map Disable the default inline sourcemaps"," -p, --plugin-options Stringified JSON object with plugin options"];return o.length>0&&i.push(...o),()=>{console.warn(i.join("\n"))}},exports.parseArguments=parseArguments;
"use strict";var t,e=require("postcss"),n=require("node:path"),s=require("node:fs/promises");function parseArguments(e,n,s){const o=e.map(t=>t.trim()).filter(t=>!!t),r={stdin:!1,stdout:!1,output:void 0,outputDir:void 0,inputs:[],inlineMap:!0,externalMap:!1,replace:!1,pluginOptions:{},debug:!1};let i,a=!1;for(let e=0;e<o.length;e++){const n=o[e];switch(n){case"-o":case"--output":r.output=o[e+1],e++,a=!0;break;case"-m":case"--map":r.externalMap=!0,r.inlineMap=!1,a=!0;break;case"--no-map":r.externalMap=!1,r.inlineMap=!1,a=!0;break;case"-r":case"--replace":r.replace=!0,a=!0;break;case"--debug":r.debug=!0,a=!0;break;case"-d":case"--dir":r.outputDir=o[e+1],e++,a=!0;break;case"-p":case"--plugin-options":i=o[e+1],e++,a=!0;break;default:if(0===n.indexOf("-"))return console.warn(`[error] unknown argument : ${n}\n`),s(),t.InvalidArguments;if(!a){r.inputs.push(n);break}return s(),t.InvalidArguments}}if(r.replace&&(r.output=void 0,r.outputDir=void 0),r.outputDir&&(r.output=void 0),r.inputs.length>1&&r.output)return console.warn('[error] omit "--output" when processing multiple inputs\n'),s(),t.InvalidArguments;0===r.inputs.length&&(r.stdin=!0),r.output||r.outputDir||r.replace||(r.stdout=!0),r.stdout&&(r.externalMap=!1);let p={};if(i)try{p=JSON.parse(i)}catch{return console.warn("[error] plugin options must be valid JSON\n"),s(),t.InvalidArguments}for(const e in p){const o=p[e];if(!n.includes(e))return console.warn(`[error] unknown plugin option: ${e}\n`),s(),t.InvalidArguments;r.pluginOptions[e]=o}return r}async function getStdin(){return new Promise(t=>{let e="",n=!1;if(setTimeout(()=>{n=!0,t("")},1e4),process.stdin.isTTY){if(n)return;t(e)}else process.stdin.setEncoding("utf8"),process.stdin.on("readable",()=>{let t="";for(;t=process.stdin.read();)e+=t??""}),process.stdin.on("end",()=>{n||t(e)})})}async function stdinToStdout(t,n,s){let o="";try{const r=await getStdin();r||(s(),process.exit(1));const i=await e([t]).process(r,{from:"stdin",to:"stdout",map:!!n.inlineMap&&{inline:!0}});i.warnings().forEach(t=>{console.warn(t.toString())}),o=i.css}catch(t){t instanceof Error?console.error(n.debug?t:t.message):console.error(t),process.exit(1)}process.stdout.write(o+(n.inlineMap?"\n":"")),process.exit(0)}async function stdinToFs(t,o,r){let i=o.output;!i&&o.outputDir&&(i=n.join(o.outputDir,"output.css")),i||process.exit(0);try{const n=await getStdin();n||(r(),process.exit(1));const a=await e([t]).process(n,{from:"stdin",to:i,map:!(!o.inlineMap&&!o.externalMap)&&{inline:o.inlineMap}});a.warnings().forEach(t=>{console.warn(t.toString())}),o.externalMap&&a.map?await Promise.all([s.writeFile(i,a.css+(o.inlineMap?"\n":"")),s.writeFile(`${i}.map`,a.map.toString())]):await s.writeFile(i,a.css+(o.inlineMap?"\n":""))}catch(t){t instanceof Error?console.error(o.debug?t:t.message):console.error(t),process.exit(1)}console.log(`CSS was written to "${n.normalize(i)}"`),process.exit(0)}async function fsToStdout(t,n){let o=[];try{o=await Promise.all(n.inputs.map(async n=>{const o=await s.readFile(n),r=await e([t]).process(o,{from:n,to:"stdout",map:!1});return r.warnings().forEach(t=>{console.warn(t.toString())}),r.css}))}catch(t){t instanceof Error?console.error(n.debug?t:t.message):console.error(t),process.exit(1)}for(const t of o)process.stdout.write(t);process.exit(0)}async function fsToFs(t,o){try{await Promise.all(o.inputs.map(async r=>{let i=o.output;o.outputDir&&(i=n.join(o.outputDir,n.basename(r))),o.replace&&(i=r),i||process.exit(0);const a=await s.readFile(r),p=await e([t]).process(a,{from:r,to:i,map:!(!o.inlineMap&&!o.externalMap)&&{inline:o.inlineMap}});p.warnings().forEach(t=>{console.warn(t.toString())}),o.externalMap&&p.map?await Promise.all([s.writeFile(i,p.css+(o.inlineMap?"\n":"")),s.writeFile(`${i}.map`,p.map.toString())]):await s.writeFile(i,p.css+(o.inlineMap?"\n":"")),console.log(`CSS was written to "${n.normalize(i)}"`)}))}catch(t){t instanceof Error?console.error(o.debug?t:t.message):console.error(t),process.exit(1)}process.exit(0)}!function(t){t.InvalidArguments="INVALID_ARGUMENTS"}(t||(t={})),exports.cli=async function cli(e,n,s,o=!0){const r=parseArguments(process.argv.slice(o?2:3),n,s);r===t.InvalidArguments&&process.exit(1);const i=e(r.pluginOptions);r.stdin&&r.stdout?await stdinToStdout(i,r,s):r.stdin?await stdinToFs(i,r,s):r.stdout?await fsToStdout(i,r):await fsToFs(i,r)},exports.helpTextLogger=function helpTextLogger(t,e,n,s=null){let o=[];if(s){const t=Math.max(...Object.keys(s).map(t=>t.length)),e=new Array(t).fill(" ").join("");e.length&&(o=["\nPlugin Options:",...Object.keys(s).map(t=>` ${(t+e).slice(0,e.length)} ${typeof s[t]}`)],o.push(`\n ${JSON.stringify(s,null,2).split("\n").join("\n ")}`))}const r=[`${e}\n`,` ${n}\n`,"Usage:",` ${t} [input.css] [OPTIONS] [-o|--output output.css]`,` ${t} <input.css>... [OPTIONS] --dir <output-directory>`,` ${t} <input.css>... [OPTIONS] --replace`,"\nOptions:"," -o, --output Output file"," -d, --dir Output directory"," -r, --replace Replace (overwrite) the input file"," -m, --map Create an external sourcemap"," --no-map Disable the default inline sourcemaps"," -p, --plugin-options Stringified JSON object with plugin options"];return o.length>0&&r.push(...o),()=>{console.warn(r.join("\n"))}},exports.parseArguments=parseArguments;
Loading
Loading