@master/css-compiler 2.0.0-beta.14 → 2.0.0-beta.140

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
@@ -1,80 +1 @@
1
- <br><br>
2
- <div align="center">
3
-
4
- <p align="center">
5
- <img src="https://raw.githubusercontent.com/master-co/package/document/images/logo-and-text.svg" alt="logo" width="142">
6
- </p>
7
- <p align="center">
8
- <b><!-- name -->CSS Compiler<!----></b>
9
- </p>
10
- <p align="center"><!-- package.description -->Compile Master CSS ahead of time with zero-configuration integration with build tools<!----></p>
11
-
12
- [![MIT License](https://flat.badgen.net/github/license/master-co/css?color=yellow)](https://github.com/master-co/css-compiler/blob/main/LICENSE)
13
- [![Latest Release](https://flat.badgen.net/npm/v/@master/css-compiler?icon=npm&label&color=yellow)](https://www.npmjs.com/package/@master/css-compiler)
14
- [![Documentation](https://flat.badgen.net/badge/icon/Documentation?icon=awesome&label&color=yellow)](https://css.master.co)
15
- [![Github](https://flat.badgen.net/badge/icon/master-co%2Fcss-compiler?icon=github&label&color=yellow)](https://github.com/master-co/css)
16
- [![Discord](https://flat.badgen.net/badge/icon/discord?icon=discord&label&color=yellow)](https://discord.gg/sZNKpAAAw6)
17
- [![CI](https://flat.badgen.net/github/status/master-co/css-compiler/main/ci/circleci?icon=circleci)](https://circleci.com/gh/master-co/workflows/css-compiler/tree/main)
18
-
19
- </div>
20
-
21
- ##### On this page
22
-
23
- - [Usage](#usage)
24
- - [`webpack.config.js`](#webpackconfigjs)
25
- - [`vite.config.js`](#viteconfigjs)
26
- - [`next.config.js`](#nextconfigjs)
27
- - [Related](#related)
28
-
29
- ---
30
-
31
- # Usage
32
-
33
- ## `webpack.config.js`
34
- ```js
35
- const { MasterCSSWebpackPlugin } = require('@master/css-compiler')
36
-
37
- module.exports = {
38
- plugins: [
39
- new MasterCSSWebpackPlugin()
40
- ]
41
- };
42
- ```
43
-
44
- ## `vite.config.js`
45
- ```js
46
- import { MasterCSSVitePlugin } from '@master/css-compiler'
47
-
48
- export default defineConfig({
49
- plugins: [
50
- MasterCSSVitePlugin()
51
- ]
52
- })
53
- ```
54
-
55
- ## `next.config.js`
56
- ```js
57
- const { MasterCSSWebpackPlugin } = require('@master/css-compiler')
58
-
59
- const nextConfig = {
60
- ...,
61
- webpack: (config) => {
62
- config.plugins.push(
63
- new MasterCSSWebpackPlugin({
64
- output: {
65
- path: 'static/css'
66
- }
67
- })
68
- )
69
- return config
70
- }
71
- }
72
-
73
- module.exports = nextConfig
74
- ```
75
-
76
- ---
77
-
78
- # Related
79
- - [@master/css](https://github.com/master-co/css) - A Virtual CSS language with enhanced syntax. ( ~13KB )
80
- - [@master/css.react](https://github.com/master-co/css.react) - React hooks for Master CSS
1
+ Check out the [official documentation](https://beta.css.master.co/docs/compiler).
@@ -1,11 +1,24 @@
1
- import { MasterCSSCompilerOptions, MasterCSSCompilerSource } from './options';
2
- import MasterCSS from '@master/css';
3
- export default class MasterCSSCompiler {
4
- options?: MasterCSSCompilerOptions;
5
- constructor(options?: MasterCSSCompilerOptions);
1
+ import { Options } from './options';
2
+ import MasterCSS, { Rule } from '@master/css';
3
+ import type { Config } from '@master/css';
4
+ import Techor from 'techor';
5
+ export declare class MasterCSSCompiler extends Techor<Options, Config> {
6
+ protected customOptions?: Options;
6
7
  css: MasterCSS;
7
8
  extractions: Set<string>;
8
- extract({ name, content }: MasterCSSCompilerSource): string[];
9
- insert(extractions: any): void;
10
- log(name: any, content: any): void;
9
+ validExtractions: Set<string>;
10
+ invalidExtractions: Set<string>;
11
+ logConfigFound: (configPath: string) => void;
12
+ logConfigNotFound: (configPath: string) => void;
13
+ get resolvedModuleId(): string;
14
+ get moduleHMREvent(): string;
15
+ constructor(customOptions?: Options);
16
+ refresh(): Promise<this>;
17
+ compile(): Promise<this>;
18
+ extract(name: string, content: string): string[];
19
+ insert(name: string, content: string): Promise<boolean>;
20
+ createRules(extraction: string): Promise<Rule[]>;
21
+ get sources(): string[];
22
+ checkSourcePath(name: string): boolean;
23
+ get config(): Config;
11
24
  }
@@ -0,0 +1,3 @@
1
+ import MasterCSS from '@master/css';
2
+ import type { Source } from './options';
3
+ export default function extract({ content }: Source, { config, classes }: MasterCSS): string[];
package/dist/index.d.ts CHANGED
@@ -1,3 +1,3 @@
1
- export { default as MasterCSSCompiler } from './compiler';
2
- export { default as MasterCSSWebpackPlugin } from './webpack';
3
- export { default as MasterCSSVitePlugin } from './vite';
1
+ export { default as options } from './options';
2
+ export type { Options, Source } from './options';
3
+ export { MasterCSSCompiler as default, MasterCSSCompiler } from './compiler';
package/dist/index.js ADDED
@@ -0,0 +1,11 @@
1
+ var Oe=Object.create;var G=Object.defineProperty;var $e=Object.getOwnPropertyDescriptor;var Ce=Object.getOwnPropertyNames;var Me=Object.getPrototypeOf,Ee=Object.prototype.hasOwnProperty;var je=(s,c)=>{for(var o in c)G(s,o,{get:c[o],enumerable:!0})},ee=(s,c,o,h)=>{if(c&&typeof c=="object"||typeof c=="function")for(let i of Ce(c))!Ee.call(s,i)&&i!==o&&G(s,i,{get:()=>c[i],enumerable:!(h=$e(c,i))||h.enumerable});return s};var N=(s,c,o)=>(o=s!=null?Oe(Me(s)):{},ee(c||!s||!s.__esModule?G(o,"default",{value:s,enumerable:!0}):o,s)),Se=s=>ee(G({},"__esModule",{value:!0}),s);var bt={};je(bt,{MasterCSSCompiler:()=>q,default:()=>q,options:()=>_});module.exports=Se(bt);var Re={module:"master.css",config:"master.css.*",sources:[],include:["**/*.{html,js,jsx,ts,tsx,svelte,astro,vue,md,mdx,pug,php}"],exclude:["**/node_modules/**","**/*.d.ts","**/*.test.*","**/*.config.*","node_modules","master.css.*","dist","out","styles","public","README.md"],classes:{fixed:[],ignored:[]}},_=Re;var K=N(require("upath"));var Z=N(require("@master/css"));var re=require("@master/css");function U({content:s},{config:c,classes:o}){s=Be(s);let h=[...new Set(Object.keys(c.semantics??re.semantics).concat(Object.keys(o)))],i=s.match(/\S+/g)??[],d=new Set;for(let e of i){d.add(z(e,h));let l=oe(e);if(l.size)for(let t of l)d.add(z(t,h))}return[...d].filter(e=>e&&!Ne(e,h))}var z=(s,c)=>{let o=s,h=s.match(/(?:calc\(.*\)|\d+(?:%|ch|cm|em|ex|in|mm|pc|pt|px|rem|vh|vmax|vmin|vw|deg|grad|rad|turn|s)?)x(?:calc\(.*\)|\d+(?:%|ch|cm|em|ex|in|mm|pc|pt|px|rem|vh|vmax|vmin|vw|deg|grad|rad|turn|s)?)/g);return(h?.length?c.concat(h):c).find(i=>o.startsWith(i))?s=W(s,i=>i.replace(/^[^:@~(]*(?<!@>?)=/,"").replace(/(?:[([{\\:#=.]+|["'`].*)$/,"")):s=W(s,i=>i.replace(/^[^:@~(]*(?:["'`]|(?<!@>?)=)/,"").replace(/(?:[([{\\:#=.]+|["'`].*)$/,"")),o===s||!s?s:z(s,c)},ne=s=>s.match(/((?<!\\)["'`])(?:\\\1|(?:(?!\1))[\S\s])*(?<!\\)\1/g),le=(s,c)=>(c?.forEach((o,h)=>{s=s.replace(o,`COMPLETE-STRING--${h}--`)}),s),W=(s,c)=>{let o=ne(s);return s=le(s,o),s=c(s),o?.forEach((h,i)=>{s=s.replace(`COMPLETE-STRING--${i}--`,h)}),s},oe=s=>{let c=new Set,o=/((?<!\\)["'`])((?:\\\1|(?:(?!\1))[\S\s])*)((?<!\\)\1)/g,h;for(;(h=o.exec(s))!==null;){h.index===o.lastIndex&&o.lastIndex++,c.add(h[2]);let i=oe(h[2]);if(i.size)for(let d of i)c.add(d)}return c},Be=s=>W(s,c=>c.replace(/\/\*(?:(?!\*\/)[\S\s])*\*\//g,"").replace(/<!--(?:(?!-->)[\S\s])*-->/g,"").replace(/<style[^>]*>(?:(?!<\/style>)[\S\s])*<\/style>/g,"").replace(/import.*from\s*COMPLETE-STRING--\d+--/g,"").replace(/import\s*(?:COMPLETE-STRING--\d+--|\([^;\s]*\))/g,"").replace(/(?:require|import)\([^;\s]*\)/g,"").replace(/(?:@.*\n)+(?:export|function|class)/g,"")),Ne=(s,c)=>{let o=ne(s),h=le(s,o),i=/{(.*)}/,d;for(;(d=i.exec(h))!==null;)return d[1].split(";").find(l=>te(l,c))!==void 0;return te(h,c)||Pe(s)},te=(s,c)=>!s||!s.match(/(?:\S*\{\S*\})|(?:^[\w\-()]+:\S+)|(?:^[\w-]+\(\S+\))|(?:^[@~]\S+$)/)&&!s.match(/^(?:calc\(.*\)|\d+(?:%|ch|cm|em|ex|in|mm|pc|pt|px|rem|vh|vmax|vmin|vw|deg|grad|rad|turn|s)?)x(?:calc\(.*\)|\d+(?:%|ch|cm|em|ex|in|mm|pc|pt|px|rem|vh|vmax|vmin|vw|deg|grad|rad|turn|s)?)$/)&&!c.find(o=>s.startsWith(o))||s.match(/\*\*/)||s.match(/:\[/)||s.match(/\$\{/)||s.match(/\{\{/)||s.match(/\(\{[^}]*\}/)||s.match(/<\w+>|<\/\w+>/)||s.match(/;$/)||s.match(/^\w+:\/\//)||s.match(/^@(?:ts-[^\s]+|charset|import|namespace|media|supports|document|page|font-face|keyframes|counter-style|font-feature-values|property|layer|[^/]+\/.*)$/)||s.match(/^~\/.+.\w+$/)||s.match(/function\(|\(.*\)=>/)||s.match(/^\$\(.*/),Pe=s=>{let c=[],o;for(let h=0;h<s.length;h++)switch(s[h]){case"(":case"[":case"{":c.push(s[h]);break;case")":case"]":case"}":if(o=c.pop(),s[h]===")"&&o!=="("||s[h]==="]"&&o!=="["||s[h]==="}"&&o!=="{")return!0;break}return c.length>0};var we=N(require("fs")),Q=N(require("fast-glob")),L=N(require("minimatch")),xe=N(require("techor"));var Ae=Object.create,de=Object.defineProperty,Ie=Object.getOwnPropertyDescriptor,Te=Object.getOwnPropertyNames,Fe=Object.getPrototypeOf,_e=Object.prototype.hasOwnProperty,se=(s=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(s,{get:(c,o)=>(typeof require<"u"?require:c)[o]}):s)(function(s){if(typeof require<"u")return require.apply(this,arguments);throw new Error('Dynamic require of "'+s+'" is not supported')}),j=(s,c)=>()=>(c||s((c={exports:{}}).exports,c),c.exports),qe=(s,c,o,h)=>{if(c&&typeof c=="object"||typeof c=="function")for(let i of Te(c))!_e.call(s,i)&&i!==o&&de(s,i,{get:()=>c[i],enumerable:!(h=Ie(c,i))||h.enumerable});return s},$=(s,c,o)=>(o=s!=null?Ae(Fe(s)):{},qe(c||!s||!s.s?de(o,"default",{value:s,enumerable:!0}):o,s)),Ge=j((s,c)=>{"use strict";c.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}}),pe=j((s,c)=>{var o=Ge(),h={};for(let e of Object.keys(o))h[o[e]]=e;var i={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};c.exports=i;for(let e of Object.keys(i)){if(!("channels"in i[e]))throw new Error("missing channels property: "+e);if(!("labels"in i[e]))throw new Error("missing channel labels property: "+e);if(i[e].labels.length!==i[e].channels)throw new Error("channel and label counts mismatch: "+e);let{channels:l,labels:t}=i[e];delete i[e].channels,delete i[e].labels,Object.defineProperty(i[e],"channels",{value:l}),Object.defineProperty(i[e],"labels",{value:t})}i.rgb.hsl=function(e){let l=e[0]/255,t=e[1]/255,r=e[2]/255,n=Math.min(l,t,r),a=Math.max(l,t,r),u=a-n,g,f;a===n?g=0:l===a?g=(t-r)/u:t===a?g=2+(r-l)/u:r===a&&(g=4+(l-t)/u),g=Math.min(g*60,360),g<0&&(g+=360);let p=(n+a)/2;return a===n?f=0:p<=.5?f=u/(a+n):f=u/(2-a-n),[g,f*100,p*100]},i.rgb.hsv=function(e){let l,t,r,n,a,u=e[0]/255,g=e[1]/255,f=e[2]/255,p=Math.max(u,g,f),b=p-Math.min(u,g,f),w=function(S){return(p-S)/6/b+1/2};return b===0?(n=0,a=0):(a=b/p,l=w(u),t=w(g),r=w(f),u===p?n=r-t:g===p?n=1/3+l-r:f===p&&(n=2/3+t-l),n<0?n+=1:n>1&&(n-=1)),[n*360,a*100,p*100]},i.rgb.hwb=function(e){let l=e[0],t=e[1],r=e[2],n=i.rgb.hsl(e)[0],a=1/255*Math.min(l,Math.min(t,r));return r=1-1/255*Math.max(l,Math.max(t,r)),[n,a*100,r*100]},i.rgb.cmyk=function(e){let l=e[0]/255,t=e[1]/255,r=e[2]/255,n=Math.min(1-l,1-t,1-r),a=(1-l-n)/(1-n)||0,u=(1-t-n)/(1-n)||0,g=(1-r-n)/(1-n)||0;return[a*100,u*100,g*100,n*100]};function d(e,l){return(e[0]-l[0])**2+(e[1]-l[1])**2+(e[2]-l[2])**2}i.rgb.keyword=function(e){let l=h[e];if(l)return l;let t=1/0,r;for(let n of Object.keys(o)){let a=o[n],u=d(e,a);u<t&&(t=u,r=n)}return r},i.keyword.rgb=function(e){return o[e]},i.rgb.xyz=function(e){let l=e[0]/255,t=e[1]/255,r=e[2]/255;l=l>.04045?((l+.055)/1.055)**2.4:l/12.92,t=t>.04045?((t+.055)/1.055)**2.4:t/12.92,r=r>.04045?((r+.055)/1.055)**2.4:r/12.92;let n=l*.4124+t*.3576+r*.1805,a=l*.2126+t*.7152+r*.0722,u=l*.0193+t*.1192+r*.9505;return[n*100,a*100,u*100]},i.rgb.lab=function(e){let l=i.rgb.xyz(e),t=l[0],r=l[1],n=l[2];t/=95.047,r/=100,n/=108.883,t=t>.008856?t**(1/3):7.787*t+16/116,r=r>.008856?r**(1/3):7.787*r+16/116,n=n>.008856?n**(1/3):7.787*n+16/116;let a=116*r-16,u=500*(t-r),g=200*(r-n);return[a,u,g]},i.hsl.rgb=function(e){let l=e[0]/360,t=e[1]/100,r=e[2]/100,n,a,u;if(t===0)return u=r*255,[u,u,u];r<.5?n=r*(1+t):n=r+t-r*t;let g=2*r-n,f=[0,0,0];for(let p=0;p<3;p++)a=l+1/3*-(p-1),a<0&&a++,a>1&&a--,6*a<1?u=g+(n-g)*6*a:2*a<1?u=n:3*a<2?u=g+(n-g)*(2/3-a)*6:u=g,f[p]=u*255;return f},i.hsl.hsv=function(e){let l=e[0],t=e[1]/100,r=e[2]/100,n=t,a=Math.max(r,.01);r*=2,t*=r<=1?r:2-r,n*=a<=1?a:2-a;let u=(r+t)/2,g=r===0?2*n/(a+n):2*t/(r+t);return[l,g*100,u*100]},i.hsv.rgb=function(e){let l=e[0]/60,t=e[1]/100,r=e[2]/100,n=Math.floor(l)%6,a=l-Math.floor(l),u=255*r*(1-t),g=255*r*(1-t*a),f=255*r*(1-t*(1-a));switch(r*=255,n){case 0:return[r,f,u];case 1:return[g,r,u];case 2:return[u,r,f];case 3:return[u,g,r];case 4:return[f,u,r];case 5:return[r,u,g]}},i.hsv.hsl=function(e){let l=e[0],t=e[1]/100,r=e[2]/100,n=Math.max(r,.01),a,u;u=(2-t)*r;let g=(2-t)*n;return a=t*n,a/=g<=1?g:2-g,a=a||0,u/=2,[l,a*100,u*100]},i.hwb.rgb=function(e){let l=e[0]/360,t=e[1]/100,r=e[2]/100,n=t+r,a;n>1&&(t/=n,r/=n);let u=Math.floor(6*l),g=1-r;a=6*l-u,u&1&&(a=1-a);let f=t+a*(g-t),p,b,w;switch(u){default:case 6:case 0:p=g,b=f,w=t;break;case 1:p=f,b=g,w=t;break;case 2:p=t,b=g,w=f;break;case 3:p=t,b=f,w=g;break;case 4:p=f,b=t,w=g;break;case 5:p=g,b=t,w=f;break}return[p*255,b*255,w*255]},i.cmyk.rgb=function(e){let l=e[0]/100,t=e[1]/100,r=e[2]/100,n=e[3]/100,a=1-Math.min(1,l*(1-n)+n),u=1-Math.min(1,t*(1-n)+n),g=1-Math.min(1,r*(1-n)+n);return[a*255,u*255,g*255]},i.xyz.rgb=function(e){let l=e[0]/100,t=e[1]/100,r=e[2]/100,n,a,u;return n=l*3.2406+t*-1.5372+r*-.4986,a=l*-.9689+t*1.8758+r*.0415,u=l*.0557+t*-.204+r*1.057,n=n>.0031308?1.055*n**(1/2.4)-.055:n*12.92,a=a>.0031308?1.055*a**(1/2.4)-.055:a*12.92,u=u>.0031308?1.055*u**(1/2.4)-.055:u*12.92,n=Math.min(Math.max(0,n),1),a=Math.min(Math.max(0,a),1),u=Math.min(Math.max(0,u),1),[n*255,a*255,u*255]},i.xyz.lab=function(e){let l=e[0],t=e[1],r=e[2];l/=95.047,t/=100,r/=108.883,l=l>.008856?l**(1/3):7.787*l+16/116,t=t>.008856?t**(1/3):7.787*t+16/116,r=r>.008856?r**(1/3):7.787*r+16/116;let n=116*t-16,a=500*(l-t),u=200*(t-r);return[n,a,u]},i.lab.xyz=function(e){let l=e[0],t=e[1],r=e[2],n,a,u;a=(l+16)/116,n=t/500+a,u=a-r/200;let g=a**3,f=n**3,p=u**3;return a=g>.008856?g:(a-16/116)/7.787,n=f>.008856?f:(n-16/116)/7.787,u=p>.008856?p:(u-16/116)/7.787,n*=95.047,a*=100,u*=108.883,[n,a,u]},i.lab.lch=function(e){let l=e[0],t=e[1],r=e[2],n;n=Math.atan2(r,t)*360/2/Math.PI,n<0&&(n+=360);let a=Math.sqrt(t*t+r*r);return[l,a,n]},i.lch.lab=function(e){let l=e[0],t=e[1],r=e[2]/360*2*Math.PI,n=t*Math.cos(r),a=t*Math.sin(r);return[l,n,a]},i.rgb.ansi16=function(e,l=null){let[t,r,n]=e,a=l===null?i.rgb.hsv(e)[2]:l;if(a=Math.round(a/50),a===0)return 30;let u=30+(Math.round(n/255)<<2|Math.round(r/255)<<1|Math.round(t/255));return a===2&&(u+=60),u},i.hsv.ansi16=function(e){return i.rgb.ansi16(i.hsv.rgb(e),e[2])},i.rgb.ansi256=function(e){let l=e[0],t=e[1],r=e[2];return l===t&&t===r?l<8?16:l>248?231:Math.round((l-8)/247*24)+232:16+36*Math.round(l/255*5)+6*Math.round(t/255*5)+Math.round(r/255*5)},i.ansi16.rgb=function(e){let l=e%10;if(l===0||l===7)return e>50&&(l+=3.5),l=l/10.5*255,[l,l,l];let t=(~~(e>50)+1)*.5,r=(l&1)*t*255,n=(l>>1&1)*t*255,a=(l>>2&1)*t*255;return[r,n,a]},i.ansi256.rgb=function(e){if(e>=232){let a=(e-232)*10+8;return[a,a,a]}e-=16;let l,t=Math.floor(e/36)/5*255,r=Math.floor((l=e%36)/6)/5*255,n=l%6/5*255;return[t,r,n]},i.rgb.hex=function(e){let l=(((Math.round(e[0])&255)<<16)+((Math.round(e[1])&255)<<8)+(Math.round(e[2])&255)).toString(16).toUpperCase();return"000000".substring(l.length)+l},i.hex.rgb=function(e){let l=e.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!l)return[0,0,0];let t=l[0];l[0].length===3&&(t=t.split("").map(g=>g+g).join(""));let r=parseInt(t,16),n=r>>16&255,a=r>>8&255,u=r&255;return[n,a,u]},i.rgb.hcg=function(e){let l=e[0]/255,t=e[1]/255,r=e[2]/255,n=Math.max(Math.max(l,t),r),a=Math.min(Math.min(l,t),r),u=n-a,g,f;return u<1?g=a/(1-u):g=0,u<=0?f=0:n===l?f=(t-r)/u%6:n===t?f=2+(r-l)/u:f=4+(l-t)/u,f/=6,f%=1,[f*360,u*100,g*100]},i.hsl.hcg=function(e){let l=e[1]/100,t=e[2]/100,r=t<.5?2*l*t:2*l*(1-t),n=0;return r<1&&(n=(t-.5*r)/(1-r)),[e[0],r*100,n*100]},i.hsv.hcg=function(e){let l=e[1]/100,t=e[2]/100,r=l*t,n=0;return r<1&&(n=(t-r)/(1-r)),[e[0],r*100,n*100]},i.hcg.rgb=function(e){let l=e[0]/360,t=e[1]/100,r=e[2]/100;if(t===0)return[r*255,r*255,r*255];let n=[0,0,0],a=l%1*6,u=a%1,g=1-u,f=0;switch(Math.floor(a)){case 0:n[0]=1,n[1]=u,n[2]=0;break;case 1:n[0]=g,n[1]=1,n[2]=0;break;case 2:n[0]=0,n[1]=1,n[2]=u;break;case 3:n[0]=0,n[1]=g,n[2]=1;break;case 4:n[0]=u,n[1]=0,n[2]=1;break;default:n[0]=1,n[1]=0,n[2]=g}return f=(1-t)*r,[(t*n[0]+f)*255,(t*n[1]+f)*255,(t*n[2]+f)*255]},i.hcg.hsv=function(e){let l=e[1]/100,t=e[2]/100,r=l+t*(1-l),n=0;return r>0&&(n=l/r),[e[0],n*100,r*100]},i.hcg.hsl=function(e){let l=e[1]/100,t=e[2]/100*(1-l)+.5*l,r=0;return t>0&&t<.5?r=l/(2*t):t>=.5&&t<1&&(r=l/(2*(1-t))),[e[0],r*100,t*100]},i.hcg.hwb=function(e){let l=e[1]/100,t=e[2]/100,r=l+t*(1-l);return[e[0],(r-l)*100,(1-r)*100]},i.hwb.hcg=function(e){let l=e[1]/100,t=1-e[2]/100,r=t-l,n=0;return r<1&&(n=(t-r)/(1-r)),[e[0],r*100,n*100]},i.apple.rgb=function(e){return[e[0]/65535*255,e[1]/65535*255,e[2]/65535*255]},i.rgb.apple=function(e){return[e[0]/255*65535,e[1]/255*65535,e[2]/255*65535]},i.gray.rgb=function(e){return[e[0]/100*255,e[0]/100*255,e[0]/100*255]},i.gray.hsl=function(e){return[0,0,e[0]]},i.gray.hsv=i.gray.hsl,i.gray.hwb=function(e){return[0,100,e[0]]},i.gray.cmyk=function(e){return[0,0,0,e[0]]},i.gray.lab=function(e){return[e[0],0,0]},i.gray.hex=function(e){let l=Math.round(e[0]/100*255)&255,t=((l<<16)+(l<<8)+l).toString(16).toUpperCase();return"000000".substring(t.length)+t},i.rgb.gray=function(e){return[(e[0]+e[1]+e[2])/3/255*100]}}),Le=j((s,c)=>{var o=pe();function h(){let l={},t=Object.keys(o);for(let r=t.length,n=0;n<r;n++)l[t[n]]={distance:-1,parent:null};return l}function i(l){let t=h(),r=[l];for(t[l].distance=0;r.length;){let n=r.pop(),a=Object.keys(o[n]);for(let u=a.length,g=0;g<u;g++){let f=a[g],p=t[f];p.distance===-1&&(p.distance=t[n].distance+1,p.parent=n,r.unshift(f))}}return t}function d(l,t){return function(r){return t(l(r))}}function e(l,t){let r=[t[l].parent,l],n=o[t[l].parent][l],a=t[l].parent;for(;t[a].parent;)r.unshift(t[a].parent),n=d(o[t[a].parent][a],n),a=t[a].parent;return n.conversion=r,n}c.exports=function(l){let t=i(l),r={},n=Object.keys(t);for(let a=n.length,u=0;u<a;u++){let g=n[u];t[g].parent!==null&&(r[g]=e(g,t))}return r}}),ze=j((s,c)=>{var o=pe(),h=Le(),i={},d=Object.keys(o);function e(t){let r=function(...n){let a=n[0];return a==null?a:(a.length>1&&(n=a),t(n))};return"conversion"in t&&(r.conversion=t.conversion),r}function l(t){let r=function(...n){let a=n[0];if(a==null)return a;a.length>1&&(n=a);let u=t(n);if(typeof u=="object")for(let g=u.length,f=0;f<g;f++)u[f]=Math.round(u[f]);return u};return"conversion"in t&&(r.conversion=t.conversion),r}d.forEach(t=>{i[t]={},Object.defineProperty(i[t],"channels",{value:o[t].channels}),Object.defineProperty(i[t],"labels",{value:o[t].labels});let r=h(t);Object.keys(r).forEach(n=>{let a=r[n];i[t][n]=l(a),i[t][n].raw=e(a)})}),c.exports=i}),We=j((s,c)=>{"use strict";var o=(a,u)=>(...g)=>`\x1B[${a(...g)+u}m`,h=(a,u)=>(...g)=>{let f=a(...g);return`\x1B[${38+u};5;${f}m`},i=(a,u)=>(...g)=>{let f=a(...g);return`\x1B[${38+u};2;${f[0]};${f[1]};${f[2]}m`},d=a=>a,e=(a,u,g)=>[a,u,g],l=(a,u,g)=>{Object.defineProperty(a,u,{get:()=>{let f=g();return Object.defineProperty(a,u,{value:f,enumerable:!0,configurable:!0}),f},enumerable:!0,configurable:!0})},t,r=(a,u,g,f)=>{t===void 0&&(t=ze());let p=f?10:0,b={};for(let[w,S]of Object.entries(t)){let E=w==="ansi16"?"ansi":w;w===u?b[E]=a(g,p):typeof S=="object"&&(b[E]=a(S[u],p))}return b};function n(){let a=new Map,u={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};u.color.gray=u.color.blackBright,u.bgColor.bgGray=u.bgColor.bgBlackBright,u.color.grey=u.color.blackBright,u.bgColor.bgGrey=u.bgColor.bgBlackBright;for(let[g,f]of Object.entries(u)){for(let[p,b]of Object.entries(f))u[p]={open:`\x1B[${b[0]}m`,close:`\x1B[${b[1]}m`},f[p]=u[p],a.set(b[0],b[1]);Object.defineProperty(u,g,{value:f,enumerable:!1})}return Object.defineProperty(u,"codes",{value:a,enumerable:!1}),u.color.close="\x1B[39m",u.bgColor.close="\x1B[49m",l(u.color,"ansi",()=>r(o,"ansi16",d,!1)),l(u.color,"ansi256",()=>r(h,"ansi256",d,!1)),l(u.color,"ansi16m",()=>r(i,"rgb",e,!1)),l(u.bgColor,"ansi",()=>r(o,"ansi16",d,!0)),l(u.bgColor,"ansi256",()=>r(h,"ansi256",d,!0)),l(u.bgColor,"ansi16m",()=>r(i,"rgb",e,!0)),u}Object.defineProperty(c,"exports",{enumerable:!0,get:n})}),Ue=j((s,c)=>{"use strict";c.exports=(o,h=process.argv)=>{let i=o.startsWith("-")?"":o.length===1?"-":"--",d=h.indexOf(i+o),e=h.indexOf("--");return d!==-1&&(e===-1||d<e)}}),De=j((s,c)=>{"use strict";var o=se("os"),h=se("tty"),i=Ue(),{env:d}=process,e;i("no-color")||i("no-colors")||i("color=false")||i("color=never")?e=0:(i("color")||i("colors")||i("color=true")||i("color=always"))&&(e=1),"FORCE_COLOR"in d&&(d.FORCE_COLOR==="true"?e=1:d.FORCE_COLOR==="false"?e=0:e=d.FORCE_COLOR.length===0?1:Math.min(parseInt(d.FORCE_COLOR,10),3));function l(n){return n===0?!1:{level:n,hasBasic:!0,has256:n>=2,has16m:n>=3}}function t(n,a){if(e===0)return 0;if(i("color=16m")||i("color=full")||i("color=truecolor"))return 3;if(i("color=256"))return 2;if(n&&!a&&e===void 0)return 0;let u=e||0;if(d.TERM==="dumb")return u;if(process.platform==="win32"){let g=o.release().split(".");return Number(g[0])>=10&&Number(g[2])>=10586?Number(g[2])>=14931?3:2:1}if("CI"in d)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI","GITHUB_ACTIONS","BUILDKITE"].some(g=>g in d)||d.CI_NAME==="codeship"?1:u;if("TEAMCITY_VERSION"in d)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(d.TEAMCITY_VERSION)?1:0;if(d.COLORTERM==="truecolor")return 3;if("TERM_PROGRAM"in d){let g=parseInt((d.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(d.TERM_PROGRAM){case"iTerm.app":return g>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(d.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(d.TERM)||"COLORTERM"in d?1:u}function r(n){let a=t(n,n&&n.isTTY);return l(a)}c.exports={supportsColor:r,stdout:l(t(!0,h.isatty(1))),stderr:l(t(!0,h.isatty(2)))}}),Ye=j((s,c)=>{"use strict";var o=(i,d,e)=>{let l=i.indexOf(d);if(l===-1)return i;let t=d.length,r=0,n="";do n+=i.substr(r,l-r)+d+e,r=l+t,l=i.indexOf(d,r);while(l!==-1);return n+=i.substr(r),n},h=(i,d,e,l)=>{let t=0,r="";do{let n=i[l-1]==="\r";r+=i.substr(t,(n?l-1:l)-t)+d+(n?`\r
2
+ `:`
3
+ `)+e,t=l+1,l=i.indexOf(`
4
+ `,t)}while(l!==-1);return r+=i.substr(t),r};c.exports={stringReplaceAll:o,stringEncaseCRLFWithFirstIndex:h}}),Ve=j((s,c)=>{"use strict";var o=/(?:\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi,h=/(?:^|\.)(\w+)(?:\(([^)]*)\))?/g,i=/^(['"])((?:\\.|(?!\1)[^\\])*)\1$/,d=/\\(u(?:[a-f\d]{4}|{[a-f\d]{1,6}})|x[a-f\d]{2}|.)|([^\\])/gi,e=new Map([["n",`
5
+ `],["r","\r"],["t"," "],["b","\b"],["f","\f"],["v","\v"],["0","\0"],["\\","\\"],["e","\x1B"],["a","\x07"]]);function l(a){let u=a[0]==="u",g=a[1]==="{";return u&&!g&&a.length===5||a[0]==="x"&&a.length===3?String.fromCharCode(parseInt(a.slice(1),16)):u&&g?String.fromCodePoint(parseInt(a.slice(2,-1),16)):e.get(a)||a}function t(a,u){let g=[],f=u.trim().split(/\s*,\s*/g),p;for(let b of f){let w=Number(b);if(!Number.isNaN(w))g.push(w);else if(p=b.match(i))g.push(p[2].replace(d,(S,E,I)=>E?l(E):I));else throw new Error(`Invalid Chalk template style argument: ${b} (in style '${a}')`)}return g}function r(a){h.lastIndex=0;let u=[],g;for(;(g=h.exec(a))!==null;){let f=g[1];if(g[2]){let p=t(f,g[2]);u.push([f].concat(p))}else u.push([f])}return u}function n(a,u){let g={};for(let p of u)for(let b of p.styles)g[b[0]]=p.inverse?null:b.slice(1);let f=a;for(let[p,b]of Object.entries(g))if(Array.isArray(b)){if(!(p in f))throw new Error(`Unknown Chalk style: ${p}`);f=b.length>0?f[p](...b):f[p]}return f}c.exports=(a,u)=>{let g=[],f=[],p=[];if(u.replace(o,(b,w,S,E,I,T)=>{if(w)p.push(l(w));else if(E){let v=p.join("");p=[],f.push(g.length===0?v:n(a,g)(v)),g.push({inverse:S,styles:r(E)})}else if(I){if(g.length===0)throw new Error("Found extraneous } in Chalk template literal");f.push(n(a,g)(p.join(""))),p=[],g.pop()}else p.push(T)}),f.push(p.join("")),g.length>0){let b=`Chalk template literal is missing ${g.length} closing bracket${g.length===1?"":"s"} (\`}\`)`;throw new Error(b)}return f.join("")}}),C=j((s,c)=>{"use strict";var o=We(),{stdout:h,stderr:i}=De(),{stringReplaceAll:d,stringEncaseCRLFWithFirstIndex:e}=Ye(),{isArray:l}=Array,t=["ansi","ansi","ansi256","ansi16m"],r=Object.create(null),n=(v,m={})=>{if(m.level&&!(Number.isInteger(m.level)&&m.level>=0&&m.level<=3))throw new Error("The `level` option should be an integer from 0 to 3");let y=h?h.level:0;v.level=m.level===void 0?y:m.level},a=class{constructor(v){return u(v)}},u=v=>{let m={};return n(m,v),m.template=(...y)=>I(m.template,...y),Object.setPrototypeOf(m,g.prototype),Object.setPrototypeOf(m.template,m),m.template.constructor=()=>{throw new Error("`chalk.constructor()` is deprecated. Use `new chalk.Instance()` instead.")},m.template.Instance=a,m.template};function g(v){return u(v)}for(let[v,m]of Object.entries(o))r[v]={get(){let y=w(this,b(m.open,m.close,this.r),this.n);return Object.defineProperty(this,v,{value:y}),y}};r.visible={get(){let v=w(this,this.r,!0);return Object.defineProperty(this,"visible",{value:v}),v}};var f=["rgb","hex","keyword","hsl","hsv","hwb","ansi","ansi256"];for(let v of f)r[v]={get(){let{level:m}=this;return function(...y){let k=b(o.color[t[m]][v](...y),o.color.close,this.r);return w(this,k,this.n)}}};for(let v of f){let m="bg"+v[0].toUpperCase()+v.slice(1);r[m]={get(){let{level:y}=this;return function(...k){let O=b(o.bgColor[t[y]][v](...k),o.bgColor.close,this.r);return w(this,O,this.n)}}}}var p=Object.defineProperties(()=>{},{...r,level:{enumerable:!0,get(){return this.l.level},set(v){this.l.level=v}}}),b=(v,m,y)=>{let k,O;return y===void 0?(k=v,O=m):(k=y.openAll+v,O=m+y.closeAll),{open:v,close:m,openAll:k,closeAll:O,parent:y}},w=(v,m,y)=>{let k=(...O)=>l(O[0])&&l(O[0].raw)?S(k,I(k,...O)):S(k,O.length===1?""+O[0]:O.join(" "));return Object.setPrototypeOf(k,p),k.l=v,k.r=m,k.n=y,k},S=(v,m)=>{if(v.level<=0||!m)return v.n?"":m;let y=v.r;if(y===void 0)return m;let{openAll:k,closeAll:O}=y;if(m.indexOf("\x1B")!==-1)for(;y!==void 0;)m=d(m,y.close,y.open),y=y.parent;let A=m.indexOf(`
6
+ `);return A!==-1&&(m=e(m,O,k,A)),k+m+O},E,I=(v,...m)=>{let[y]=m;if(!l(y)||!l(y.raw))return m.join(" ");let k=m.slice(1),O=[y.raw[0]];for(let A=1;A<y.length;A++)O.push(String(k[A-1]).replace(/[{}\\]/g,"\\$&"),String(y.raw[A]));return E===void 0&&(E=Ve()),E(v,O.join(""))};Object.defineProperties(g.prototype,r);var T=g();T.supportsColor=h,T.stderr=g({level:i?i.level:0}),T.stderr.supportsColor=i,c.exports=T}),He=j((s,c)=>{"use strict";function o(h){var i=void 0;typeof h=="string"?i=[h]:i=h.raw;for(var d="",e=0;e<i.length;e++)d+=i[e].replace(/\\\n[ \t]*/g,"").replace(/\\`/g,"`"),e<(arguments.length<=1?0:arguments.length-1)&&(d+=arguments.length<=e+1?void 0:arguments[e+1]);var l=d.split(`
7
+ `),t=null;return l.forEach(function(r){var n=r.match(/^(\s+)\S+/);if(n){var a=n[1].length;t?t=Math.min(t,a):t=a}}),t!==null&&(d=l.map(function(r){return r[0]===" "?r.slice(t):r}).join(`
8
+ `)),d=d.trim(),d.replace(/\\n/g,`
9
+ `)}typeof c<"u"&&(c.exports=o)}),R=(s,c)=>{if(!s)throw new Error(c)},Je=s=>{let c={joined:!0,spacerNoNeighbour:" ",spacerNeighbour:"\u2502 ",keyNoNeighbour:"\u2514\u2500 ",keyNeighbour:"\u251C\u2500 ",separator:": ",renderFn:o=>["boolean","string","number"].includes(typeof o)?o:void 0,sortFn:null,breakCircularWith:" (circular ref.)",...s};return R(Object.keys(c).length===9,"Unexpected Option(s) provided"),R(typeof c.joined=="boolean",'Option "joined" has invalid format'),R(typeof c.spacerNoNeighbour=="string",'Option "spacerNoNeighbour" has invalid format'),R(typeof c.spacerNeighbour=="string",'Option "spacerNeighbour" has invalid format'),R(typeof c.keyNoNeighbour=="string",'Option "keyNoNeighbour" has invalid format'),R(typeof c.keyNeighbour=="string",'Option "keyNeighbour" has invalid format'),R(typeof c.separator=="string",'Option "separator" has invalid format'),R(typeof c.renderFn=="function",'Option "renderFn" has invalid format'),R(typeof c.sortFn=="function"||c.sortFn===null,'Option "sortFn" has invalid format'),R(typeof c.breakCircularWith=="string"||c.breakCircularWith===null,'Option "breakCircularWith" has invalid format'),c},me=(s,c={})=>{let o=Je(c),h=[],i=o.renderFn(s);i!==void 0&&h.push(String(i));let d=r=>o.sortFn===null?r.reverse():r.sort((n,a)=>o.sortFn(a,n)),e=[],l=d(Object.keys(s)).map(r=>[r]),t=[s];for(;l.length!==0;){let r=l.pop(),n=t[r.length-1][r[r.length-1]],a=o.breakCircularWith!==null&&t.includes(n);e[r.length-1]=l.length!==0&&l[l.length-1].length===r.length;let u=o.renderFn(n);h.push([e.slice(0,r.length-1).map(g=>g?o.spacerNeighbour:o.spacerNoNeighbour).join(""),e[r.length-1]?o.keyNeighbour:o.keyNoNeighbour,r[r.length-1],u===void 0?"":`${o.separator}${n}`,a?o.breakCircularWith:""].join("")),n instanceof Object&&!Array.isArray(n)&&!a&&(l.push(...d(Object.keys(n)).map(g=>r.concat(g))),t[r.length]=n)}return o.joined===!0?h.join(`
10
+ `):h},Ke=$(C()),D=$(C()),x=$(C());function B(s){return s.split(" ").map(c=>c.replace(/^(\d*\.?\d*)$/g,`${x.default.blue("$1")}`).replace(/^(\d*\.?\d*)(YB|ZB|EB|PB|TB|GB|MB|KB|B|mb|kb|kB|bit|zs|as|fs|ps|ns|µs|ms|s|m|h|d|m|y)$/g,`${x.default.cyan("$1")}${x.default.magenta("$2")}`).replace(/^((?:[0-1]?[0-9]|[2][0-3]):[0-5][0-9]:[0-5][0-9] (?:AM|PM)?)$/g,`${x.default.dim("$1")}`).replace(/^\[(.*?)\]$/g,`${x.default.dim("[")}${x.default.magenta("$1")}${x.default.dim("]")}`).replace(/^`(.*?)`$/g,`${x.default.dim("`")}$1${x.default.dim("`")}`).replace(/^\((.*?)\)$/g,`${x.default.dim("(")}$1${x.default.dim(")")}`).replace(/^<(.*?)>$/g,`${x.default.dim("<")}${x.default.gray("$1")}${x.default.dim(">")}`).replace(/->/g,x.default.dim("\u2192")).replace(/<-/g,x.default.dim("\u2190")).replace(/^\$t$/g,`${x.default.dim(new Date().toLocaleTimeString())}`).replace(/^\*\*(.*?)\*\*$/g,`${x.default.bold.white("$1")}`).replace(/^~~(.*?)~~$/g,`${x.default.strikethrough("$1")}`).replace(/^__(.*?)__$/g,`${x.default.underline("$1")}`).replace(/^\.\.(.*?)\.\.$/g,`${x.default.dim("$1")}`).replace(/^!!(.*?)!!$/g,`${x.default.yellow("$1")}`).replace(/^\*(.*?)\*$/g,`${x.default.italic("$1")}`).replace(/^_(.*?)_$/g,`${x.default.italic("$1")}`).replace(/^\+(.*?)\+$/g,`${x.default.green("$1")}`).replace(/^-(.*?)-$/g,`${x.default.red("$1")}`)).join(" ")}function M(s,c){let o="";if(Array.isArray(s))for(let h=0;h<s.length;h++)o+=Y(s[h])+Y(c[h]);else o=[s,...c].map(h=>Y(h)).join(" ");return B(o)}var Y=s=>s?Array.isArray(s)?s.map(c=>{switch(typeof c){case"string":return`'${D.default.yellow(c)}'`;case"number":case"boolean":return D.default.blue(c);default:return c}}).join(D.default.gray(", ")):s:"",ae=(s,...c)=>{let o=Ke.default.green("+")+" "+M(s,c);return console.log(o),o},Ze=$(C()),ie=(s,...c)=>{let o=Ze.default.bgRed.bold.white(" \u{1D5EB} ERROR ")+" "+M(s,c);return console.log(o),o},ue=$(C()),Qe=(s,...c)=>{let o=ue.default.bgYellow.bold.white(" \u26A0\uFE0F CONFLICT ")+" "+ue.default.yellow(M(s,c));return console.log(o),o},Xe=$(C()),et=(s,...c)=>{let o=Xe.default.green("\u2713 ")+M(s,c);return console.log(o),o},tt=$(C()),V=(s,...c)=>{let o=tt.default.red("-")+" "+M(s,c);return console.log(o),o},rt=$(C()),ce=(s,...c)=>{let o=rt.default.green("\u25CB ")+M(s,c);return console.log(o),o},nt=$(C()),ge=(s,...c)=>{let o=nt.default.red("\u2717 ")+M(s,c);return console.log(o),o},lt=$(C()),he=(s,...c)=>{let o=lt.default.cyan("\u{1D4F2}")+" "+M(s,c);return console.log(o),o},ot=$(C()),st=(s,...c)=>{let o=ot.default.green("\u23FA Success ")+M(s,c);return console.log(o),o},at=$(C()),it=(s,...c)=>{let o=at.default.yellow("\u23FA Warn ")+M(s,c);return console.log(o),o},ut=$(C()),ct=(s,...c)=>{let o=ut.default.bgGreen.bold.white(" \u2713 PASS ")+" "+M(s,c);return console.log(o),o},gt=s=>{let c=me(ve(be(JSON.parse(JSON.stringify(s)))),{spacerNeighbour:B("..\u2502..")+" ",keyNoNeighbour:B("..\u2514\u2500..")+" ",keyNeighbour:B("..\u251C\u2500..")+" ",separator:B("..:..")+" "});return console.log(c),c};function be(s){for(let c in s){let o=s[c];typeof o=="object"?o!==null&&!Object.keys(o).length?delete s[c]:s[c]=be(o):o===void 0&&delete s[c]}return s}function ve(s){for(let c in s){let o=s[c];Array.isArray(o)?s[c]=o.map(h=>B(`**${h}**`)).join(B("..,..")):typeof o=="object"?ve(o):s[c]=B(`**${o}**`)}return s}var ht=$(C()),ft=(s,...c)=>{let o=ht.default.red("\u23FA Fail ")+M(s,c);return console.log(o),o},fe=(s,...c)=>{let o=B("$t ")+M(s,c);return console.log(o),o},dt=$(He()),H=$(C());function pt(s){let{message:c,stack:o}=typeof s=="string"?new Error(s):s,h={};return(0,dt.default)(o.replace(c,"").replace(/^Error: /,"")).split(`
11
+ `).forEach(i=>{h[i.split(" ").map(d=>d.replace(/^\((.+)\)$/,`${H.default.cyan("$1")}`).replace(/\./g,`${H.default.dim(".")}`).replace(/^at$/,e=>H.default.dim(e))).join(" ")]=null}),{message:c.trim().replace(/Error: /g,""),stackTree:h}}var F=$(C()),ye=(s,...c)=>{if(s instanceof Error){let{message:o,stackTree:h}=pt(s);return console.log(""),console.log(F.default.bgRed.bold.white(" \u{1D5EB} ERROR ")+" "+F.default.bold.red(o)),console.log(me(h,{spacerNeighbour:F.default.redBright.dim("\u2502\u2000\u2000"),keyNoNeighbour:F.default.redBright.dim("\u2514\u2500\u2000"),keyNeighbour:F.default.redBright.dim("\u251C\u2500 "),separator:F.default.redBright.dim(":\u2000")})),console.log(""),o}else{let o=M(s,c);return console.log(o),o}};Object.assign(ye,{a:ae,add:ae,d:V,del:V,delete:V,o:ce,valid:ce,x:ge,invalid:ge,i:he,info:he,e:ie,error:ie,t:fe,timestamp:fe,success:st,fail:ft,warn:it,pass:ct,conflict:Qe,ok:et,tree:gt,paint:B});var mt=$(C()),P=ye,J=mt.default;var ke=N(require("stylelint")),X=N(require("@techor/extend")),q=class extends xe.default{constructor(o){super(_,o);this.customOptions=o;let h=this.readConfig(null);this.options=(0,X.default)(this.options,h?.compilerOptions,o),this.css=h?.css??new Z.default(typeof o?.config=="object"?o.config:h?.config)}css;extractions=new Set;validExtractions=new Set;invalidExtractions=new Set;logConfigFound=o=>P.ok`**${o}** definition file found`;logConfigNotFound=o=>P.i`No **${o}** definition file found`;get resolvedModuleId(){return"\0"+this.options.module}get moduleHMREvent(){return`HMR:${this.options.module}`}async refresh(){this.extractions.clear(),this.validExtractions.clear(),this.invalidExtractions.clear(),console.log("");let o=this.readConfig(null);return this.css=new Z.default(o?.config),this.options=(0,X.default)({cwd:this.options.cwd},_,o?.compilerOptions,this.customOptions),await this.compile(),this}async compile(){if(this.options.classes?.fixed?.length)for(let o of this.options.classes.fixed)this.css.insert(o);return await Promise.all(this.sources.map(async o=>{let h=we.default.readFileSync(K.default.resolve(this.options.cwd,o),{encoding:"utf-8"}).toString();await this.insert(o,h)})),this}extract(o,h){if(!o||!h||!this.checkSourcePath(o))return[];let i=[];for(let d of U({content:h,name:o},this.css))this.extractions.has(d)||(this.extractions.add(d),i.push(d));return i}async insert(o,h){let i=this.extract(o,h);if(!i.length)return!1;this.invalidExtractions.size&&(i=i.filter(t=>!this.invalidExtractions.has(t))),this.validExtractions.size&&(i=i.filter(t=>!this.validExtractions.has(t))),this.options.classes?.ignored?.length&&(i=i.filter(t=>{for(let r of this.options.classes.ignored)if(typeof r=="string"){if(r===t)return!1}else if(r.test(t))return!1;return!0}));let d=process.hrtime(),e=[];await Promise.all(i.map(async t=>{let r=await this.createRules(t);r.length?(this.css.insertRules(r),e.push(t),this.validExtractions.add(t)):this.invalidExtractions.add(t)})),d=process.hrtime(d);let l=Math.round((d[0]*1e9+d[1])/1e6*10)/10;if(i.length&&(console.log(""),P`**${K.default.relative(this.options.cwd,o)}**`,P`[extract] ${i.length} potential`),this.css.rules.length){let t=e.filter(r=>!i.includes(r));t.length&&P`[exclude] ${t.length} unknown ${t}`,P`[compile] +${e.length}+ valid inserted ${J.gray("in")} ${l}ms ${e}`,P`[virtual] ${this.css.rules.length} total ${J.gray("in")} ${this.options.module}`}return!0}async createRules(o){return(await Promise.all(this.css.create(o).map(async i=>(await ke.default.lint({code:i.text,cache:!1,config:{rules:{"color-no-invalid-hex":!0,"named-grid-areas-no-invalid":!0,"at-rule-no-unknown":!0,"function-no-unknown":!0,"media-feature-name-no-unknown":!0,"property-no-unknown":!0,"selector-pseudo-class-no-unknown":!0,"selector-pseudo-element-no-unknown":!0,"selector-type-no-unknown":!0,"unit-no-unknown":!0}}})).errored?null:i))).filter(i=>i)}get sources(){let{include:o,exclude:h,sources:i}=this.options,d=Q.default.sync(o,{cwd:this.options.cwd,ignore:h});return i?.length&&d.push(...Q.default.sync(i,{cwd:this.options.cwd})),d}checkSourcePath(o){let{include:h,exclude:i,sources:d}=this.options;for(let e of d)if((0,L.default)(o,e))return!0;for(let e of h)if(!(0,L.default)(o,e))return!1;for(let e of i)if((0,L.default)(o,e))return!1;return!0}get config(){return this.css.config}};0&&(module.exports={MasterCSSCompiler,options});
package/dist/index.mjs CHANGED
@@ -1,2 +1,11 @@
1
- var A=(t=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(t,{get:(e,s)=>(typeof require<"u"?require:e)[s]}):t)(function(t){if(typeof require<"u")return require.apply(this,arguments);throw new Error('Dynamic require of "'+t+'" is not supported')});import O from"path";import f from"chalk";import{defaultSemantics as j}from"@master/css";function b({content:t}){let e=t.match(/[^\s]+/g)??[],s=new Set;for(let r of e){let o=R(r);if(o.size)for(let n of o)s.add(n);else s.add($(r))}return[...s].filter(r=>r&&!D(r))}var $=t=>{let e=t;return t=t.replace(/^([\w={[(\\]*["'`])/,""),t.match(/^content:((?<!\\)["'`])((?:\\\1|(?:(?!\1))[\S\s])*)((?<!\\)\1)$/)||(t=t.replace(/(\.*|[([{\\:#]*|["'`].*)$/,"")),e===t?t:$(t)},R=t=>{let e=new Set,s=/((?<!\\)["'`])((?:\\\1|(?:(?!\1))[\S\s])*)((?<!\\)\1)/g,r;for(;(r=s.exec(t))!==null;){r.index===s.lastIndex&&s.lastIndex++;let o=R(r[2]);if(o.size)for(let n of o)e.add(n);else e.add($(r[2]))}return e},D=t=>!t||!t.match(/(?:^[\w-]+:[\w$#]+)|(?:^[@~][\w-]+$)/)&&!Object.keys(j).includes(t)||t.match(/\*\*/)||t.match(/:\[/)||t.match(/\$\{/)||t.match(/\{\{/)||t.match(/\(\{[^}]*\}/)||t.match(/<\w+>|<\/\w+>/);var H={output:{name:"master.css",dir:""},accept({name:t}){if(t.match(/[\\/]node_modules[\\/]/))return!1;if(t.match(/\.(html|js|jsx|ts|tsx|svelte|astro|vue)$/i))return!0},extract:b},T=H;import P,{extend as F}from"@master/css";import{performance as E}from"perf_hooks";var d=class{constructor(e){this.options=e;this.options=F(T,e);let s;try{s=A(O.resolve(process.cwd(),e.config||"./master.css.js"))}catch{}this.css=new P({config:s})}css;extractions=new Set;extract({name:e,content:s}){if(!e||!s||!this.options.accept?.({content:s,name:e}))return[];let r=[];this.log("accepts",` \u2192 ${O.relative(process.cwd(),e)}`);for(let o of this.options.extract({content:s,name:e}))this.extractions.has(o)||(this.extractions.add(o),r.push(o));return r}insert(e){let s=E.now();for(let n of e)this.css.findAndInsert(n);let r=Math.round((E.now()-s)*1e3),o=this.css.rules.map(n=>n.className);console.log(`[Master CSS] process ${f.green(e.length)} extractions in ${f.green(r)} \xB5s [${f.green(this.css.rules.length)} rules in ${f.green(O.join(this.options.output.dir,this.options.output.name))}]`),this.log("extractions",` \u2192 ${f.green(e.length)} extractions: ${f.blue(e.join(" "))}`),this.log("validClasses",` \u2192 ${f.green(o.length)} total valid classes: ${f.blue(o.join(" "))}`)}log(e,s){(this.options.debug===!0||Array.isArray(this.options.debug)&&this.options.debug.includes(e))&&console.log(s)}};import q from"path";var g="MasterCSSWebpackPlugin",M=class extends d{apply(e){let{webpack:s}=e,{Template:r,RuntimeGlobals:o,RuntimeModule:n}=s,{RawSource:S}=s.sources,{Compilation:C}=s,{options:i}=this,l=q.join(i.output.dir||"",i.output.name),x=l.replace(/\\/g,"/");e.hooks.thisCompilation.tap(g,a=>{let u=new WeakSet,p=(m,c)=>{u.has(m)||(u.add(m),c.add(o.publicPath),a.addRuntimeModule(m,new y(c)))};a.hooks.runtimeRequirementInTree.for(o.ensureChunkHandlers).tap(g,p),a.hooks.runtimeRequirementInTree.for(o.hmrDownloadUpdateHandlers).tap(g,p);class y extends n{runtimeRequirements;constructor(c){super("master-css-loading",10),this.runtimeRequirements=c}generate(){let{runtimeRequirements:c}=this;return c.has(o.hmrDownloadUpdateHandlers)?r.asString([Date.now().toString(),`const link = document.querySelector('[href*=\\'${x}\\'][rel=stylesheet]')`,"if (link) {",r.indent(["link.href = link.href.replace(/ts=[0-9]+/, 'ts=' + Date.now())"]),"}"]):""}}}),e.hooks.compilation.tap(g,a=>{a.hooks.finishModules.tap(g,u=>{let{modifiedFiles:p,watching:y}=e,m=[];for(let c of u){let h=c.resource,w=c._source?.source();y&&p?.size&&!p.has(h)||m.push(...this.extract({name:h,content:w}))}if(m.length){let c=this.css.text;this.insert(m);let h=this.css.text;if(h!==c){let w=new S(h);a.getAsset(l)?a.updateAsset(l,w):a.emitAsset(l,w)}}}),a.hooks.processAssets.tap({name:g,stage:C.PROCESS_ASSETS_STAGE_ADDITIONS},()=>{a.chunks.forEach(u=>{u.files.add(l)})})})}};import I from"path";import v from"fs";import N from"path";function k(t,e,s){let r=N.dirname(t);v.existsSync(r)||v.mkdirSync(r,{recursive:!0}),v.writeFileSync(t,e,s)}function _(t){let e=new d(t),s=I.join(e.options.output.dir||"",e.options.output.name),r,o,n,S=!1,C=(i,l)=>{let x=e.extract({name:i,content:l});if(x.length){let a=e.css.text;e.insert(x);let u=e.css.text;if(u!==a&&r){k(o,u);let p=()=>{r.ws.send({type:"update",updates:[{path:n,timestamp:Date.now()}]})};S?p():(setTimeout(p,500),S=!0)}}};return{name:"vite-plugin-master-css",enforce:"pre",configureServer(i){r=i},buildStart(){o=I.resolve(r?.config.cacheDir??process.cwd(),s),r&&(k(o,""),n=(r.config.cacheDir.slice(process.cwd().length)+"/"+s).replace(/\\/g,"/"))},resolveId(i){if(i.endsWith("master.css?direct"))return"\0"+i},transform(i,l){C(l,i)},transformIndexHtml(i){return i.replace(/(<head>)/,`$1<link rel="stylesheet" href="${n}">`)},async handleHotUpdate(i){C(i.file,await i.read())},generateBundle(){let i=this.emitFile({type:"asset",name:s,source:e.css.text});n="/"+this.getFileName(i)}}}export{d as MasterCSSCompiler,_ as MasterCSSVitePlugin,M as MasterCSSWebpackPlugin};
2
- //# sourceMappingURL=index.mjs.map
1
+ var A=(a=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(a,{get:(c,o)=>(typeof require<"u"?require:c)[o]}):a)(function(a){if(typeof require<"u")return require.apply(this,arguments);throw new Error('Dynamic require of "'+a+'" is not supported')});var be={module:"master.css",config:"master.css.*",sources:[],include:["**/*.{html,js,jsx,ts,tsx,svelte,astro,vue,md,mdx,pug,php}"],exclude:["**/node_modules/**","**/*.d.ts","**/*.test.*","**/*.config.*","node_modules","master.css.*","dist","out","styles","public","README.md"],classes:{fixed:[],ignored:[]}},_=be;import fe from"upath";import de from"@master/css";import{semantics as ve}from"@master/css";function z({content:a},{config:c,classes:o}){a=ye(a);let h=[...new Set(Object.keys(c.semantics??ve).concat(Object.keys(o)))],i=a.match(/\S+/g)??[],d=new Set;for(let e of i){d.add(G(e,h));let l=Q(e);if(l.size)for(let t of l)d.add(G(t,h))}return[...d].filter(e=>e&&!we(e,h))}var G=(a,c)=>{let o=a,h=a.match(/(?:calc\(.*\)|\d+(?:%|ch|cm|em|ex|in|mm|pc|pt|px|rem|vh|vmax|vmin|vw|deg|grad|rad|turn|s)?)x(?:calc\(.*\)|\d+(?:%|ch|cm|em|ex|in|mm|pc|pt|px|rem|vh|vmax|vmin|vw|deg|grad|rad|turn|s)?)/g);return(h?.length?c.concat(h):c).find(i=>o.startsWith(i))?a=L(a,i=>i.replace(/^[^:@~(]*(?<!@>?)=/,"").replace(/(?:[([{\\:#=.]+|["'`].*)$/,"")):a=L(a,i=>i.replace(/^[^:@~(]*(?:["'`]|(?<!@>?)=)/,"").replace(/(?:[([{\\:#=.]+|["'`].*)$/,"")),o===a||!a?a:G(a,c)},K=a=>a.match(/((?<!\\)["'`])(?:\\\1|(?:(?!\1))[\S\s])*(?<!\\)\1/g),Z=(a,c)=>(c?.forEach((o,h)=>{a=a.replace(o,`COMPLETE-STRING--${h}--`)}),a),L=(a,c)=>{let o=K(a);return a=Z(a,o),a=c(a),o?.forEach((h,i)=>{a=a.replace(`COMPLETE-STRING--${i}--`,h)}),a},Q=a=>{let c=new Set,o=/((?<!\\)["'`])((?:\\\1|(?:(?!\1))[\S\s])*)((?<!\\)\1)/g,h;for(;(h=o.exec(a))!==null;){h.index===o.lastIndex&&o.lastIndex++,c.add(h[2]);let i=Q(h[2]);if(i.size)for(let d of i)c.add(d)}return c},ye=a=>L(a,c=>c.replace(/\/\*(?:(?!\*\/)[\S\s])*\*\//g,"").replace(/<!--(?:(?!-->)[\S\s])*-->/g,"").replace(/<style[^>]*>(?:(?!<\/style>)[\S\s])*<\/style>/g,"").replace(/import.*from\s*COMPLETE-STRING--\d+--/g,"").replace(/import\s*(?:COMPLETE-STRING--\d+--|\([^;\s]*\))/g,"").replace(/(?:require|import)\([^;\s]*\)/g,"").replace(/(?:@.*\n)+(?:export|function|class)/g,"")),we=(a,c)=>{let o=K(a),h=Z(a,o),i=/{(.*)}/,d;for(;(d=i.exec(h))!==null;)return d[1].split(";").find(l=>J(l,c))!==void 0;return J(h,c)||xe(a)},J=(a,c)=>!a||!a.match(/(?:\S*\{\S*\})|(?:^[\w\-()]+:\S+)|(?:^[\w-]+\(\S+\))|(?:^[@~]\S+$)/)&&!a.match(/^(?:calc\(.*\)|\d+(?:%|ch|cm|em|ex|in|mm|pc|pt|px|rem|vh|vmax|vmin|vw|deg|grad|rad|turn|s)?)x(?:calc\(.*\)|\d+(?:%|ch|cm|em|ex|in|mm|pc|pt|px|rem|vh|vmax|vmin|vw|deg|grad|rad|turn|s)?)$/)&&!c.find(o=>a.startsWith(o))||a.match(/\*\*/)||a.match(/:\[/)||a.match(/\$\{/)||a.match(/\{\{/)||a.match(/\(\{[^}]*\}/)||a.match(/<\w+>|<\/\w+>/)||a.match(/;$/)||a.match(/^\w+:\/\//)||a.match(/^@(?:ts-[^\s]+|charset|import|namespace|media|supports|document|page|font-face|keyframes|counter-style|font-feature-values|property|layer|[^/]+\/.*)$/)||a.match(/^~\/.+.\w+$/)||a.match(/function\(|\(.*\)=>/)||a.match(/^\$\(.*/),xe=a=>{let c=[],o;for(let h=0;h<a.length;h++)switch(a[h]){case"(":case"[":case"{":c.push(a[h]);break;case")":case"]":case"}":if(o=c.pop(),a[h]===")"&&o!=="("||a[h]==="]"&&o!=="["||a[h]==="}"&&o!=="{")return!0;break}return c.length>0};import ot from"fs";import pe from"fast-glob";import H from"minimatch";import st from"techor";var ke=Object.create,ae=Object.defineProperty,Oe=Object.getOwnPropertyDescriptor,$e=Object.getOwnPropertyNames,Ce=Object.getPrototypeOf,Me=Object.prototype.hasOwnProperty,X=(a=>typeof A<"u"?A:typeof Proxy<"u"?new Proxy(a,{get:(c,o)=>(typeof A<"u"?A:c)[o]}):a)(function(a){if(typeof A<"u")return A.apply(this,arguments);throw new Error('Dynamic require of "'+a+'" is not supported')}),j=(a,c)=>()=>(c||a((c={exports:{}}).exports,c),c.exports),Ee=(a,c,o,h)=>{if(c&&typeof c=="object"||typeof c=="function")for(let i of $e(c))!Me.call(a,i)&&i!==o&&ae(a,i,{get:()=>c[i],enumerable:!(h=Oe(c,i))||h.enumerable});return a},$=(a,c,o)=>(o=a!=null?ke(Ce(a)):{},Ee(c||!a||!a.s?ae(o,"default",{value:a,enumerable:!0}):o,a)),je=j((a,c)=>{"use strict";c.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}}),ie=j((a,c)=>{var o=je(),h={};for(let e of Object.keys(o))h[o[e]]=e;var i={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};c.exports=i;for(let e of Object.keys(i)){if(!("channels"in i[e]))throw new Error("missing channels property: "+e);if(!("labels"in i[e]))throw new Error("missing channel labels property: "+e);if(i[e].labels.length!==i[e].channels)throw new Error("channel and label counts mismatch: "+e);let{channels:l,labels:t}=i[e];delete i[e].channels,delete i[e].labels,Object.defineProperty(i[e],"channels",{value:l}),Object.defineProperty(i[e],"labels",{value:t})}i.rgb.hsl=function(e){let l=e[0]/255,t=e[1]/255,r=e[2]/255,n=Math.min(l,t,r),s=Math.max(l,t,r),u=s-n,g,f;s===n?g=0:l===s?g=(t-r)/u:t===s?g=2+(r-l)/u:r===s&&(g=4+(l-t)/u),g=Math.min(g*60,360),g<0&&(g+=360);let p=(n+s)/2;return s===n?f=0:p<=.5?f=u/(s+n):f=u/(2-s-n),[g,f*100,p*100]},i.rgb.hsv=function(e){let l,t,r,n,s,u=e[0]/255,g=e[1]/255,f=e[2]/255,p=Math.max(u,g,f),b=p-Math.min(u,g,f),w=function(S){return(p-S)/6/b+1/2};return b===0?(n=0,s=0):(s=b/p,l=w(u),t=w(g),r=w(f),u===p?n=r-t:g===p?n=1/3+l-r:f===p&&(n=2/3+t-l),n<0?n+=1:n>1&&(n-=1)),[n*360,s*100,p*100]},i.rgb.hwb=function(e){let l=e[0],t=e[1],r=e[2],n=i.rgb.hsl(e)[0],s=1/255*Math.min(l,Math.min(t,r));return r=1-1/255*Math.max(l,Math.max(t,r)),[n,s*100,r*100]},i.rgb.cmyk=function(e){let l=e[0]/255,t=e[1]/255,r=e[2]/255,n=Math.min(1-l,1-t,1-r),s=(1-l-n)/(1-n)||0,u=(1-t-n)/(1-n)||0,g=(1-r-n)/(1-n)||0;return[s*100,u*100,g*100,n*100]};function d(e,l){return(e[0]-l[0])**2+(e[1]-l[1])**2+(e[2]-l[2])**2}i.rgb.keyword=function(e){let l=h[e];if(l)return l;let t=1/0,r;for(let n of Object.keys(o)){let s=o[n],u=d(e,s);u<t&&(t=u,r=n)}return r},i.keyword.rgb=function(e){return o[e]},i.rgb.xyz=function(e){let l=e[0]/255,t=e[1]/255,r=e[2]/255;l=l>.04045?((l+.055)/1.055)**2.4:l/12.92,t=t>.04045?((t+.055)/1.055)**2.4:t/12.92,r=r>.04045?((r+.055)/1.055)**2.4:r/12.92;let n=l*.4124+t*.3576+r*.1805,s=l*.2126+t*.7152+r*.0722,u=l*.0193+t*.1192+r*.9505;return[n*100,s*100,u*100]},i.rgb.lab=function(e){let l=i.rgb.xyz(e),t=l[0],r=l[1],n=l[2];t/=95.047,r/=100,n/=108.883,t=t>.008856?t**(1/3):7.787*t+16/116,r=r>.008856?r**(1/3):7.787*r+16/116,n=n>.008856?n**(1/3):7.787*n+16/116;let s=116*r-16,u=500*(t-r),g=200*(r-n);return[s,u,g]},i.hsl.rgb=function(e){let l=e[0]/360,t=e[1]/100,r=e[2]/100,n,s,u;if(t===0)return u=r*255,[u,u,u];r<.5?n=r*(1+t):n=r+t-r*t;let g=2*r-n,f=[0,0,0];for(let p=0;p<3;p++)s=l+1/3*-(p-1),s<0&&s++,s>1&&s--,6*s<1?u=g+(n-g)*6*s:2*s<1?u=n:3*s<2?u=g+(n-g)*(2/3-s)*6:u=g,f[p]=u*255;return f},i.hsl.hsv=function(e){let l=e[0],t=e[1]/100,r=e[2]/100,n=t,s=Math.max(r,.01);r*=2,t*=r<=1?r:2-r,n*=s<=1?s:2-s;let u=(r+t)/2,g=r===0?2*n/(s+n):2*t/(r+t);return[l,g*100,u*100]},i.hsv.rgb=function(e){let l=e[0]/60,t=e[1]/100,r=e[2]/100,n=Math.floor(l)%6,s=l-Math.floor(l),u=255*r*(1-t),g=255*r*(1-t*s),f=255*r*(1-t*(1-s));switch(r*=255,n){case 0:return[r,f,u];case 1:return[g,r,u];case 2:return[u,r,f];case 3:return[u,g,r];case 4:return[f,u,r];case 5:return[r,u,g]}},i.hsv.hsl=function(e){let l=e[0],t=e[1]/100,r=e[2]/100,n=Math.max(r,.01),s,u;u=(2-t)*r;let g=(2-t)*n;return s=t*n,s/=g<=1?g:2-g,s=s||0,u/=2,[l,s*100,u*100]},i.hwb.rgb=function(e){let l=e[0]/360,t=e[1]/100,r=e[2]/100,n=t+r,s;n>1&&(t/=n,r/=n);let u=Math.floor(6*l),g=1-r;s=6*l-u,u&1&&(s=1-s);let f=t+s*(g-t),p,b,w;switch(u){default:case 6:case 0:p=g,b=f,w=t;break;case 1:p=f,b=g,w=t;break;case 2:p=t,b=g,w=f;break;case 3:p=t,b=f,w=g;break;case 4:p=f,b=t,w=g;break;case 5:p=g,b=t,w=f;break}return[p*255,b*255,w*255]},i.cmyk.rgb=function(e){let l=e[0]/100,t=e[1]/100,r=e[2]/100,n=e[3]/100,s=1-Math.min(1,l*(1-n)+n),u=1-Math.min(1,t*(1-n)+n),g=1-Math.min(1,r*(1-n)+n);return[s*255,u*255,g*255]},i.xyz.rgb=function(e){let l=e[0]/100,t=e[1]/100,r=e[2]/100,n,s,u;return n=l*3.2406+t*-1.5372+r*-.4986,s=l*-.9689+t*1.8758+r*.0415,u=l*.0557+t*-.204+r*1.057,n=n>.0031308?1.055*n**(1/2.4)-.055:n*12.92,s=s>.0031308?1.055*s**(1/2.4)-.055:s*12.92,u=u>.0031308?1.055*u**(1/2.4)-.055:u*12.92,n=Math.min(Math.max(0,n),1),s=Math.min(Math.max(0,s),1),u=Math.min(Math.max(0,u),1),[n*255,s*255,u*255]},i.xyz.lab=function(e){let l=e[0],t=e[1],r=e[2];l/=95.047,t/=100,r/=108.883,l=l>.008856?l**(1/3):7.787*l+16/116,t=t>.008856?t**(1/3):7.787*t+16/116,r=r>.008856?r**(1/3):7.787*r+16/116;let n=116*t-16,s=500*(l-t),u=200*(t-r);return[n,s,u]},i.lab.xyz=function(e){let l=e[0],t=e[1],r=e[2],n,s,u;s=(l+16)/116,n=t/500+s,u=s-r/200;let g=s**3,f=n**3,p=u**3;return s=g>.008856?g:(s-16/116)/7.787,n=f>.008856?f:(n-16/116)/7.787,u=p>.008856?p:(u-16/116)/7.787,n*=95.047,s*=100,u*=108.883,[n,s,u]},i.lab.lch=function(e){let l=e[0],t=e[1],r=e[2],n;n=Math.atan2(r,t)*360/2/Math.PI,n<0&&(n+=360);let s=Math.sqrt(t*t+r*r);return[l,s,n]},i.lch.lab=function(e){let l=e[0],t=e[1],r=e[2]/360*2*Math.PI,n=t*Math.cos(r),s=t*Math.sin(r);return[l,n,s]},i.rgb.ansi16=function(e,l=null){let[t,r,n]=e,s=l===null?i.rgb.hsv(e)[2]:l;if(s=Math.round(s/50),s===0)return 30;let u=30+(Math.round(n/255)<<2|Math.round(r/255)<<1|Math.round(t/255));return s===2&&(u+=60),u},i.hsv.ansi16=function(e){return i.rgb.ansi16(i.hsv.rgb(e),e[2])},i.rgb.ansi256=function(e){let l=e[0],t=e[1],r=e[2];return l===t&&t===r?l<8?16:l>248?231:Math.round((l-8)/247*24)+232:16+36*Math.round(l/255*5)+6*Math.round(t/255*5)+Math.round(r/255*5)},i.ansi16.rgb=function(e){let l=e%10;if(l===0||l===7)return e>50&&(l+=3.5),l=l/10.5*255,[l,l,l];let t=(~~(e>50)+1)*.5,r=(l&1)*t*255,n=(l>>1&1)*t*255,s=(l>>2&1)*t*255;return[r,n,s]},i.ansi256.rgb=function(e){if(e>=232){let s=(e-232)*10+8;return[s,s,s]}e-=16;let l,t=Math.floor(e/36)/5*255,r=Math.floor((l=e%36)/6)/5*255,n=l%6/5*255;return[t,r,n]},i.rgb.hex=function(e){let l=(((Math.round(e[0])&255)<<16)+((Math.round(e[1])&255)<<8)+(Math.round(e[2])&255)).toString(16).toUpperCase();return"000000".substring(l.length)+l},i.hex.rgb=function(e){let l=e.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!l)return[0,0,0];let t=l[0];l[0].length===3&&(t=t.split("").map(g=>g+g).join(""));let r=parseInt(t,16),n=r>>16&255,s=r>>8&255,u=r&255;return[n,s,u]},i.rgb.hcg=function(e){let l=e[0]/255,t=e[1]/255,r=e[2]/255,n=Math.max(Math.max(l,t),r),s=Math.min(Math.min(l,t),r),u=n-s,g,f;return u<1?g=s/(1-u):g=0,u<=0?f=0:n===l?f=(t-r)/u%6:n===t?f=2+(r-l)/u:f=4+(l-t)/u,f/=6,f%=1,[f*360,u*100,g*100]},i.hsl.hcg=function(e){let l=e[1]/100,t=e[2]/100,r=t<.5?2*l*t:2*l*(1-t),n=0;return r<1&&(n=(t-.5*r)/(1-r)),[e[0],r*100,n*100]},i.hsv.hcg=function(e){let l=e[1]/100,t=e[2]/100,r=l*t,n=0;return r<1&&(n=(t-r)/(1-r)),[e[0],r*100,n*100]},i.hcg.rgb=function(e){let l=e[0]/360,t=e[1]/100,r=e[2]/100;if(t===0)return[r*255,r*255,r*255];let n=[0,0,0],s=l%1*6,u=s%1,g=1-u,f=0;switch(Math.floor(s)){case 0:n[0]=1,n[1]=u,n[2]=0;break;case 1:n[0]=g,n[1]=1,n[2]=0;break;case 2:n[0]=0,n[1]=1,n[2]=u;break;case 3:n[0]=0,n[1]=g,n[2]=1;break;case 4:n[0]=u,n[1]=0,n[2]=1;break;default:n[0]=1,n[1]=0,n[2]=g}return f=(1-t)*r,[(t*n[0]+f)*255,(t*n[1]+f)*255,(t*n[2]+f)*255]},i.hcg.hsv=function(e){let l=e[1]/100,t=e[2]/100,r=l+t*(1-l),n=0;return r>0&&(n=l/r),[e[0],n*100,r*100]},i.hcg.hsl=function(e){let l=e[1]/100,t=e[2]/100*(1-l)+.5*l,r=0;return t>0&&t<.5?r=l/(2*t):t>=.5&&t<1&&(r=l/(2*(1-t))),[e[0],r*100,t*100]},i.hcg.hwb=function(e){let l=e[1]/100,t=e[2]/100,r=l+t*(1-l);return[e[0],(r-l)*100,(1-r)*100]},i.hwb.hcg=function(e){let l=e[1]/100,t=1-e[2]/100,r=t-l,n=0;return r<1&&(n=(t-r)/(1-r)),[e[0],r*100,n*100]},i.apple.rgb=function(e){return[e[0]/65535*255,e[1]/65535*255,e[2]/65535*255]},i.rgb.apple=function(e){return[e[0]/255*65535,e[1]/255*65535,e[2]/255*65535]},i.gray.rgb=function(e){return[e[0]/100*255,e[0]/100*255,e[0]/100*255]},i.gray.hsl=function(e){return[0,0,e[0]]},i.gray.hsv=i.gray.hsl,i.gray.hwb=function(e){return[0,100,e[0]]},i.gray.cmyk=function(e){return[0,0,0,e[0]]},i.gray.lab=function(e){return[e[0],0,0]},i.gray.hex=function(e){let l=Math.round(e[0]/100*255)&255,t=((l<<16)+(l<<8)+l).toString(16).toUpperCase();return"000000".substring(t.length)+t},i.rgb.gray=function(e){return[(e[0]+e[1]+e[2])/3/255*100]}}),Se=j((a,c)=>{var o=ie();function h(){let l={},t=Object.keys(o);for(let r=t.length,n=0;n<r;n++)l[t[n]]={distance:-1,parent:null};return l}function i(l){let t=h(),r=[l];for(t[l].distance=0;r.length;){let n=r.pop(),s=Object.keys(o[n]);for(let u=s.length,g=0;g<u;g++){let f=s[g],p=t[f];p.distance===-1&&(p.distance=t[n].distance+1,p.parent=n,r.unshift(f))}}return t}function d(l,t){return function(r){return t(l(r))}}function e(l,t){let r=[t[l].parent,l],n=o[t[l].parent][l],s=t[l].parent;for(;t[s].parent;)r.unshift(t[s].parent),n=d(o[t[s].parent][s],n),s=t[s].parent;return n.conversion=r,n}c.exports=function(l){let t=i(l),r={},n=Object.keys(t);for(let s=n.length,u=0;u<s;u++){let g=n[u];t[g].parent!==null&&(r[g]=e(g,t))}return r}}),Re=j((a,c)=>{var o=ie(),h=Se(),i={},d=Object.keys(o);function e(t){let r=function(...n){let s=n[0];return s==null?s:(s.length>1&&(n=s),t(n))};return"conversion"in t&&(r.conversion=t.conversion),r}function l(t){let r=function(...n){let s=n[0];if(s==null)return s;s.length>1&&(n=s);let u=t(n);if(typeof u=="object")for(let g=u.length,f=0;f<g;f++)u[f]=Math.round(u[f]);return u};return"conversion"in t&&(r.conversion=t.conversion),r}d.forEach(t=>{i[t]={},Object.defineProperty(i[t],"channels",{value:o[t].channels}),Object.defineProperty(i[t],"labels",{value:o[t].labels});let r=h(t);Object.keys(r).forEach(n=>{let s=r[n];i[t][n]=l(s),i[t][n].raw=e(s)})}),c.exports=i}),Be=j((a,c)=>{"use strict";var o=(s,u)=>(...g)=>`\x1B[${s(...g)+u}m`,h=(s,u)=>(...g)=>{let f=s(...g);return`\x1B[${38+u};5;${f}m`},i=(s,u)=>(...g)=>{let f=s(...g);return`\x1B[${38+u};2;${f[0]};${f[1]};${f[2]}m`},d=s=>s,e=(s,u,g)=>[s,u,g],l=(s,u,g)=>{Object.defineProperty(s,u,{get:()=>{let f=g();return Object.defineProperty(s,u,{value:f,enumerable:!0,configurable:!0}),f},enumerable:!0,configurable:!0})},t,r=(s,u,g,f)=>{t===void 0&&(t=Re());let p=f?10:0,b={};for(let[w,S]of Object.entries(t)){let E=w==="ansi16"?"ansi":w;w===u?b[E]=s(g,p):typeof S=="object"&&(b[E]=s(S[u],p))}return b};function n(){let s=new Map,u={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};u.color.gray=u.color.blackBright,u.bgColor.bgGray=u.bgColor.bgBlackBright,u.color.grey=u.color.blackBright,u.bgColor.bgGrey=u.bgColor.bgBlackBright;for(let[g,f]of Object.entries(u)){for(let[p,b]of Object.entries(f))u[p]={open:`\x1B[${b[0]}m`,close:`\x1B[${b[1]}m`},f[p]=u[p],s.set(b[0],b[1]);Object.defineProperty(u,g,{value:f,enumerable:!1})}return Object.defineProperty(u,"codes",{value:s,enumerable:!1}),u.color.close="\x1B[39m",u.bgColor.close="\x1B[49m",l(u.color,"ansi",()=>r(o,"ansi16",d,!1)),l(u.color,"ansi256",()=>r(h,"ansi256",d,!1)),l(u.color,"ansi16m",()=>r(i,"rgb",e,!1)),l(u.bgColor,"ansi",()=>r(o,"ansi16",d,!0)),l(u.bgColor,"ansi256",()=>r(h,"ansi256",d,!0)),l(u.bgColor,"ansi16m",()=>r(i,"rgb",e,!0)),u}Object.defineProperty(c,"exports",{enumerable:!0,get:n})}),Ne=j((a,c)=>{"use strict";c.exports=(o,h=process.argv)=>{let i=o.startsWith("-")?"":o.length===1?"-":"--",d=h.indexOf(i+o),e=h.indexOf("--");return d!==-1&&(e===-1||d<e)}}),Pe=j((a,c)=>{"use strict";var o=X("os"),h=X("tty"),i=Ne(),{env:d}=process,e;i("no-color")||i("no-colors")||i("color=false")||i("color=never")?e=0:(i("color")||i("colors")||i("color=true")||i("color=always"))&&(e=1),"FORCE_COLOR"in d&&(d.FORCE_COLOR==="true"?e=1:d.FORCE_COLOR==="false"?e=0:e=d.FORCE_COLOR.length===0?1:Math.min(parseInt(d.FORCE_COLOR,10),3));function l(n){return n===0?!1:{level:n,hasBasic:!0,has256:n>=2,has16m:n>=3}}function t(n,s){if(e===0)return 0;if(i("color=16m")||i("color=full")||i("color=truecolor"))return 3;if(i("color=256"))return 2;if(n&&!s&&e===void 0)return 0;let u=e||0;if(d.TERM==="dumb")return u;if(process.platform==="win32"){let g=o.release().split(".");return Number(g[0])>=10&&Number(g[2])>=10586?Number(g[2])>=14931?3:2:1}if("CI"in d)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI","GITHUB_ACTIONS","BUILDKITE"].some(g=>g in d)||d.CI_NAME==="codeship"?1:u;if("TEAMCITY_VERSION"in d)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(d.TEAMCITY_VERSION)?1:0;if(d.COLORTERM==="truecolor")return 3;if("TERM_PROGRAM"in d){let g=parseInt((d.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(d.TERM_PROGRAM){case"iTerm.app":return g>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(d.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(d.TERM)||"COLORTERM"in d?1:u}function r(n){let s=t(n,n&&n.isTTY);return l(s)}c.exports={supportsColor:r,stdout:l(t(!0,h.isatty(1))),stderr:l(t(!0,h.isatty(2)))}}),Ae=j((a,c)=>{"use strict";var o=(i,d,e)=>{let l=i.indexOf(d);if(l===-1)return i;let t=d.length,r=0,n="";do n+=i.substr(r,l-r)+d+e,r=l+t,l=i.indexOf(d,r);while(l!==-1);return n+=i.substr(r),n},h=(i,d,e,l)=>{let t=0,r="";do{let n=i[l-1]==="\r";r+=i.substr(t,(n?l-1:l)-t)+d+(n?`\r
2
+ `:`
3
+ `)+e,t=l+1,l=i.indexOf(`
4
+ `,t)}while(l!==-1);return r+=i.substr(t),r};c.exports={stringReplaceAll:o,stringEncaseCRLFWithFirstIndex:h}}),Ie=j((a,c)=>{"use strict";var o=/(?:\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi,h=/(?:^|\.)(\w+)(?:\(([^)]*)\))?/g,i=/^(['"])((?:\\.|(?!\1)[^\\])*)\1$/,d=/\\(u(?:[a-f\d]{4}|{[a-f\d]{1,6}})|x[a-f\d]{2}|.)|([^\\])/gi,e=new Map([["n",`
5
+ `],["r","\r"],["t"," "],["b","\b"],["f","\f"],["v","\v"],["0","\0"],["\\","\\"],["e","\x1B"],["a","\x07"]]);function l(s){let u=s[0]==="u",g=s[1]==="{";return u&&!g&&s.length===5||s[0]==="x"&&s.length===3?String.fromCharCode(parseInt(s.slice(1),16)):u&&g?String.fromCodePoint(parseInt(s.slice(2,-1),16)):e.get(s)||s}function t(s,u){let g=[],f=u.trim().split(/\s*,\s*/g),p;for(let b of f){let w=Number(b);if(!Number.isNaN(w))g.push(w);else if(p=b.match(i))g.push(p[2].replace(d,(S,E,I)=>E?l(E):I));else throw new Error(`Invalid Chalk template style argument: ${b} (in style '${s}')`)}return g}function r(s){h.lastIndex=0;let u=[],g;for(;(g=h.exec(s))!==null;){let f=g[1];if(g[2]){let p=t(f,g[2]);u.push([f].concat(p))}else u.push([f])}return u}function n(s,u){let g={};for(let p of u)for(let b of p.styles)g[b[0]]=p.inverse?null:b.slice(1);let f=s;for(let[p,b]of Object.entries(g))if(Array.isArray(b)){if(!(p in f))throw new Error(`Unknown Chalk style: ${p}`);f=b.length>0?f[p](...b):f[p]}return f}c.exports=(s,u)=>{let g=[],f=[],p=[];if(u.replace(o,(b,w,S,E,I,T)=>{if(w)p.push(l(w));else if(E){let v=p.join("");p=[],f.push(g.length===0?v:n(s,g)(v)),g.push({inverse:S,styles:r(E)})}else if(I){if(g.length===0)throw new Error("Found extraneous } in Chalk template literal");f.push(n(s,g)(p.join(""))),p=[],g.pop()}else p.push(T)}),f.push(p.join("")),g.length>0){let b=`Chalk template literal is missing ${g.length} closing bracket${g.length===1?"":"s"} (\`}\`)`;throw new Error(b)}return f.join("")}}),C=j((a,c)=>{"use strict";var o=Be(),{stdout:h,stderr:i}=Pe(),{stringReplaceAll:d,stringEncaseCRLFWithFirstIndex:e}=Ae(),{isArray:l}=Array,t=["ansi","ansi","ansi256","ansi16m"],r=Object.create(null),n=(v,m={})=>{if(m.level&&!(Number.isInteger(m.level)&&m.level>=0&&m.level<=3))throw new Error("The `level` option should be an integer from 0 to 3");let y=h?h.level:0;v.level=m.level===void 0?y:m.level},s=class{constructor(v){return u(v)}},u=v=>{let m={};return n(m,v),m.template=(...y)=>I(m.template,...y),Object.setPrototypeOf(m,g.prototype),Object.setPrototypeOf(m.template,m),m.template.constructor=()=>{throw new Error("`chalk.constructor()` is deprecated. Use `new chalk.Instance()` instead.")},m.template.Instance=s,m.template};function g(v){return u(v)}for(let[v,m]of Object.entries(o))r[v]={get(){let y=w(this,b(m.open,m.close,this.r),this.n);return Object.defineProperty(this,v,{value:y}),y}};r.visible={get(){let v=w(this,this.r,!0);return Object.defineProperty(this,"visible",{value:v}),v}};var f=["rgb","hex","keyword","hsl","hsv","hwb","ansi","ansi256"];for(let v of f)r[v]={get(){let{level:m}=this;return function(...y){let k=b(o.color[t[m]][v](...y),o.color.close,this.r);return w(this,k,this.n)}}};for(let v of f){let m="bg"+v[0].toUpperCase()+v.slice(1);r[m]={get(){let{level:y}=this;return function(...k){let O=b(o.bgColor[t[y]][v](...k),o.bgColor.close,this.r);return w(this,O,this.n)}}}}var p=Object.defineProperties(()=>{},{...r,level:{enumerable:!0,get(){return this.l.level},set(v){this.l.level=v}}}),b=(v,m,y)=>{let k,O;return y===void 0?(k=v,O=m):(k=y.openAll+v,O=m+y.closeAll),{open:v,close:m,openAll:k,closeAll:O,parent:y}},w=(v,m,y)=>{let k=(...O)=>l(O[0])&&l(O[0].raw)?S(k,I(k,...O)):S(k,O.length===1?""+O[0]:O.join(" "));return Object.setPrototypeOf(k,p),k.l=v,k.r=m,k.n=y,k},S=(v,m)=>{if(v.level<=0||!m)return v.n?"":m;let y=v.r;if(y===void 0)return m;let{openAll:k,closeAll:O}=y;if(m.indexOf("\x1B")!==-1)for(;y!==void 0;)m=d(m,y.close,y.open),y=y.parent;let P=m.indexOf(`
6
+ `);return P!==-1&&(m=e(m,O,k,P)),k+m+O},E,I=(v,...m)=>{let[y]=m;if(!l(y)||!l(y.raw))return m.join(" ");let k=m.slice(1),O=[y.raw[0]];for(let P=1;P<y.length;P++)O.push(String(k[P-1]).replace(/[{}\\]/g,"\\$&"),String(y.raw[P]));return E===void 0&&(E=Ie()),E(v,O.join(""))};Object.defineProperties(g.prototype,r);var T=g();T.supportsColor=h,T.stderr=g({level:i?i.level:0}),T.stderr.supportsColor=i,c.exports=T}),Te=j((a,c)=>{"use strict";function o(h){var i=void 0;typeof h=="string"?i=[h]:i=h.raw;for(var d="",e=0;e<i.length;e++)d+=i[e].replace(/\\\n[ \t]*/g,"").replace(/\\`/g,"`"),e<(arguments.length<=1?0:arguments.length-1)&&(d+=arguments.length<=e+1?void 0:arguments[e+1]);var l=d.split(`
7
+ `),t=null;return l.forEach(function(r){var n=r.match(/^(\s+)\S+/);if(n){var s=n[1].length;t?t=Math.min(t,s):t=s}}),t!==null&&(d=l.map(function(r){return r[0]===" "?r.slice(t):r}).join(`
8
+ `)),d=d.trim(),d.replace(/\\n/g,`
9
+ `)}typeof c<"u"&&(c.exports=o)}),R=(a,c)=>{if(!a)throw new Error(c)},Fe=a=>{let c={joined:!0,spacerNoNeighbour:" ",spacerNeighbour:"\u2502 ",keyNoNeighbour:"\u2514\u2500 ",keyNeighbour:"\u251C\u2500 ",separator:": ",renderFn:o=>["boolean","string","number"].includes(typeof o)?o:void 0,sortFn:null,breakCircularWith:" (circular ref.)",...a};return R(Object.keys(c).length===9,"Unexpected Option(s) provided"),R(typeof c.joined=="boolean",'Option "joined" has invalid format'),R(typeof c.spacerNoNeighbour=="string",'Option "spacerNoNeighbour" has invalid format'),R(typeof c.spacerNeighbour=="string",'Option "spacerNeighbour" has invalid format'),R(typeof c.keyNoNeighbour=="string",'Option "keyNoNeighbour" has invalid format'),R(typeof c.keyNeighbour=="string",'Option "keyNeighbour" has invalid format'),R(typeof c.separator=="string",'Option "separator" has invalid format'),R(typeof c.renderFn=="function",'Option "renderFn" has invalid format'),R(typeof c.sortFn=="function"||c.sortFn===null,'Option "sortFn" has invalid format'),R(typeof c.breakCircularWith=="string"||c.breakCircularWith===null,'Option "breakCircularWith" has invalid format'),c},ue=(a,c={})=>{let o=Fe(c),h=[],i=o.renderFn(a);i!==void 0&&h.push(String(i));let d=r=>o.sortFn===null?r.reverse():r.sort((n,s)=>o.sortFn(s,n)),e=[],l=d(Object.keys(a)).map(r=>[r]),t=[a];for(;l.length!==0;){let r=l.pop(),n=t[r.length-1][r[r.length-1]],s=o.breakCircularWith!==null&&t.includes(n);e[r.length-1]=l.length!==0&&l[l.length-1].length===r.length;let u=o.renderFn(n);h.push([e.slice(0,r.length-1).map(g=>g?o.spacerNeighbour:o.spacerNoNeighbour).join(""),e[r.length-1]?o.keyNeighbour:o.keyNoNeighbour,r[r.length-1],u===void 0?"":`${o.separator}${n}`,s?o.breakCircularWith:""].join("")),n instanceof Object&&!Array.isArray(n)&&!s&&(l.push(...d(Object.keys(n)).map(g=>r.concat(g))),t[r.length]=n)}return o.joined===!0?h.join(`
10
+ `):h},_e=$(C()),W=$(C()),x=$(C());function B(a){return a.split(" ").map(c=>c.replace(/^(\d*\.?\d*)$/g,`${x.default.blue("$1")}`).replace(/^(\d*\.?\d*)(YB|ZB|EB|PB|TB|GB|MB|KB|B|mb|kb|kB|bit|zs|as|fs|ps|ns|µs|ms|s|m|h|d|m|y)$/g,`${x.default.cyan("$1")}${x.default.magenta("$2")}`).replace(/^((?:[0-1]?[0-9]|[2][0-3]):[0-5][0-9]:[0-5][0-9] (?:AM|PM)?)$/g,`${x.default.dim("$1")}`).replace(/^\[(.*?)\]$/g,`${x.default.dim("[")}${x.default.magenta("$1")}${x.default.dim("]")}`).replace(/^`(.*?)`$/g,`${x.default.dim("`")}$1${x.default.dim("`")}`).replace(/^\((.*?)\)$/g,`${x.default.dim("(")}$1${x.default.dim(")")}`).replace(/^<(.*?)>$/g,`${x.default.dim("<")}${x.default.gray("$1")}${x.default.dim(">")}`).replace(/->/g,x.default.dim("\u2192")).replace(/<-/g,x.default.dim("\u2190")).replace(/^\$t$/g,`${x.default.dim(new Date().toLocaleTimeString())}`).replace(/^\*\*(.*?)\*\*$/g,`${x.default.bold.white("$1")}`).replace(/^~~(.*?)~~$/g,`${x.default.strikethrough("$1")}`).replace(/^__(.*?)__$/g,`${x.default.underline("$1")}`).replace(/^\.\.(.*?)\.\.$/g,`${x.default.dim("$1")}`).replace(/^!!(.*?)!!$/g,`${x.default.yellow("$1")}`).replace(/^\*(.*?)\*$/g,`${x.default.italic("$1")}`).replace(/^_(.*?)_$/g,`${x.default.italic("$1")}`).replace(/^\+(.*?)\+$/g,`${x.default.green("$1")}`).replace(/^-(.*?)-$/g,`${x.default.red("$1")}`)).join(" ")}function M(a,c){let o="";if(Array.isArray(a))for(let h=0;h<a.length;h++)o+=U(a[h])+U(c[h]);else o=[a,...c].map(h=>U(h)).join(" ");return B(o)}var U=a=>a?Array.isArray(a)?a.map(c=>{switch(typeof c){case"string":return`'${W.default.yellow(c)}'`;case"number":case"boolean":return W.default.blue(c);default:return c}}).join(W.default.gray(", ")):a:"",ee=(a,...c)=>{let o=_e.default.green("+")+" "+M(a,c);return console.log(o),o},qe=$(C()),te=(a,...c)=>{let o=qe.default.bgRed.bold.white(" \u{1D5EB} ERROR ")+" "+M(a,c);return console.log(o),o},re=$(C()),Ge=(a,...c)=>{let o=re.default.bgYellow.bold.white(" \u26A0\uFE0F CONFLICT ")+" "+re.default.yellow(M(a,c));return console.log(o),o},Le=$(C()),ze=(a,...c)=>{let o=Le.default.green("\u2713 ")+M(a,c);return console.log(o),o},We=$(C()),D=(a,...c)=>{let o=We.default.red("-")+" "+M(a,c);return console.log(o),o},Ue=$(C()),ne=(a,...c)=>{let o=Ue.default.green("\u25CB ")+M(a,c);return console.log(o),o},De=$(C()),le=(a,...c)=>{let o=De.default.red("\u2717 ")+M(a,c);return console.log(o),o},Ye=$(C()),oe=(a,...c)=>{let o=Ye.default.cyan("\u{1D4F2}")+" "+M(a,c);return console.log(o),o},Ve=$(C()),He=(a,...c)=>{let o=Ve.default.green("\u23FA Success ")+M(a,c);return console.log(o),o},Je=$(C()),Ke=(a,...c)=>{let o=Je.default.yellow("\u23FA Warn ")+M(a,c);return console.log(o),o},Ze=$(C()),Qe=(a,...c)=>{let o=Ze.default.bgGreen.bold.white(" \u2713 PASS ")+" "+M(a,c);return console.log(o),o},Xe=a=>{let c=ue(ge(ce(JSON.parse(JSON.stringify(a)))),{spacerNeighbour:B("..\u2502..")+" ",keyNoNeighbour:B("..\u2514\u2500..")+" ",keyNeighbour:B("..\u251C\u2500..")+" ",separator:B("..:..")+" "});return console.log(c),c};function ce(a){for(let c in a){let o=a[c];typeof o=="object"?o!==null&&!Object.keys(o).length?delete a[c]:a[c]=ce(o):o===void 0&&delete a[c]}return a}function ge(a){for(let c in a){let o=a[c];Array.isArray(o)?a[c]=o.map(h=>B(`**${h}**`)).join(B("..,..")):typeof o=="object"?ge(o):a[c]=B(`**${o}**`)}return a}var et=$(C()),tt=(a,...c)=>{let o=et.default.red("\u23FA Fail ")+M(a,c);return console.log(o),o},se=(a,...c)=>{let o=B("$t ")+M(a,c);return console.log(o),o},rt=$(Te()),Y=$(C());function nt(a){let{message:c,stack:o}=typeof a=="string"?new Error(a):a,h={};return(0,rt.default)(o.replace(c,"").replace(/^Error: /,"")).split(`
11
+ `).forEach(i=>{h[i.split(" ").map(d=>d.replace(/^\((.+)\)$/,`${Y.default.cyan("$1")}`).replace(/\./g,`${Y.default.dim(".")}`).replace(/^at$/,e=>Y.default.dim(e))).join(" ")]=null}),{message:c.trim().replace(/Error: /g,""),stackTree:h}}var F=$(C()),he=(a,...c)=>{if(a instanceof Error){let{message:o,stackTree:h}=nt(a);return console.log(""),console.log(F.default.bgRed.bold.white(" \u{1D5EB} ERROR ")+" "+F.default.bold.red(o)),console.log(ue(h,{spacerNeighbour:F.default.redBright.dim("\u2502\u2000\u2000"),keyNoNeighbour:F.default.redBright.dim("\u2514\u2500\u2000"),keyNeighbour:F.default.redBright.dim("\u251C\u2500 "),separator:F.default.redBright.dim(":\u2000")})),console.log(""),o}else{let o=M(a,c);return console.log(o),o}};Object.assign(he,{a:ee,add:ee,d:D,del:D,delete:D,o:ne,valid:ne,x:le,invalid:le,i:oe,info:oe,e:te,error:te,t:se,timestamp:se,success:He,fail:tt,warn:Ke,pass:Qe,conflict:Ge,ok:ze,tree:Xe,paint:B});var lt=$(C()),N=he,V=lt.default;import at from"stylelint";import me from"@techor/extend";var q=class extends st{constructor(o){super(_,o);this.customOptions=o;let h=this.readConfig(null);this.options=me(this.options,h?.compilerOptions,o),this.css=h?.css??new de(typeof o?.config=="object"?o.config:h?.config)}css;extractions=new Set;validExtractions=new Set;invalidExtractions=new Set;logConfigFound=o=>N.ok`**${o}** definition file found`;logConfigNotFound=o=>N.i`No **${o}** definition file found`;get resolvedModuleId(){return"\0"+this.options.module}get moduleHMREvent(){return`HMR:${this.options.module}`}async refresh(){this.extractions.clear(),this.validExtractions.clear(),this.invalidExtractions.clear(),console.log("");let o=this.readConfig(null);return this.css=new de(o?.config),this.options=me({cwd:this.options.cwd},_,o?.compilerOptions,this.customOptions),await this.compile(),this}async compile(){if(this.options.classes?.fixed?.length)for(let o of this.options.classes.fixed)this.css.insert(o);return await Promise.all(this.sources.map(async o=>{let h=ot.readFileSync(fe.resolve(this.options.cwd,o),{encoding:"utf-8"}).toString();await this.insert(o,h)})),this}extract(o,h){if(!o||!h||!this.checkSourcePath(o))return[];let i=[];for(let d of z({content:h,name:o},this.css))this.extractions.has(d)||(this.extractions.add(d),i.push(d));return i}async insert(o,h){let i=this.extract(o,h);if(!i.length)return!1;this.invalidExtractions.size&&(i=i.filter(t=>!this.invalidExtractions.has(t))),this.validExtractions.size&&(i=i.filter(t=>!this.validExtractions.has(t))),this.options.classes?.ignored?.length&&(i=i.filter(t=>{for(let r of this.options.classes.ignored)if(typeof r=="string"){if(r===t)return!1}else if(r.test(t))return!1;return!0}));let d=process.hrtime(),e=[];await Promise.all(i.map(async t=>{let r=await this.createRules(t);r.length?(this.css.insertRules(r),e.push(t),this.validExtractions.add(t)):this.invalidExtractions.add(t)})),d=process.hrtime(d);let l=Math.round((d[0]*1e9+d[1])/1e6*10)/10;if(i.length&&(console.log(""),N`**${fe.relative(this.options.cwd,o)}**`,N`[extract] ${i.length} potential`),this.css.rules.length){let t=e.filter(r=>!i.includes(r));t.length&&N`[exclude] ${t.length} unknown ${t}`,N`[compile] +${e.length}+ valid inserted ${V.gray("in")} ${l}ms ${e}`,N`[virtual] ${this.css.rules.length} total ${V.gray("in")} ${this.options.module}`}return!0}async createRules(o){return(await Promise.all(this.css.create(o).map(async i=>(await at.lint({code:i.text,cache:!1,config:{rules:{"color-no-invalid-hex":!0,"named-grid-areas-no-invalid":!0,"at-rule-no-unknown":!0,"function-no-unknown":!0,"media-feature-name-no-unknown":!0,"property-no-unknown":!0,"selector-pseudo-class-no-unknown":!0,"selector-pseudo-element-no-unknown":!0,"selector-type-no-unknown":!0,"unit-no-unknown":!0}}})).errored?null:i))).filter(i=>i)}get sources(){let{include:o,exclude:h,sources:i}=this.options,d=pe.sync(o,{cwd:this.options.cwd,ignore:h});return i?.length&&d.push(...pe.sync(i,{cwd:this.options.cwd})),d}checkSourcePath(o){let{include:h,exclude:i,sources:d}=this.options;for(let e of d)if(H(o,e))return!0;for(let e of h)if(!H(o,e))return!1;for(let e of i)if(H(o,e))return!1;return!0}get config(){return this.css.config}};export{q as MasterCSSCompiler,q as default,_ as options};
@@ -1,16 +1,20 @@
1
- declare const defaultOptions: MasterCSSCompilerOptions;
2
- export declare type MasterCSSCompilerSource = {
1
+ import { Config } from '@master/css';
2
+ import type { Pattern as FastGlobPattern } from 'fast-glob';
3
+ import type { Options as TechorOptions } from 'techor';
4
+ declare const options: Options;
5
+ export declare type Source = {
3
6
  name: string;
4
7
  content: string;
5
8
  };
6
- export interface MasterCSSCompilerOptions {
7
- output?: {
8
- name: string;
9
- dir: string;
9
+ export interface Options extends TechorOptions<Config> {
10
+ output?: string;
11
+ module?: string;
12
+ sources?: FastGlobPattern[];
13
+ include?: FastGlobPattern[];
14
+ exclude?: FastGlobPattern[];
15
+ classes?: {
16
+ fixed?: string[];
17
+ ignored?: string[] | RegExp[];
10
18
  };
11
- accept?: (source: MasterCSSCompilerSource) => boolean;
12
- extract?: (source: MasterCSSCompilerSource) => string[];
13
- config?: string;
14
- debug?: string[] | boolean;
15
19
  }
16
- export default defaultOptions;
20
+ export default options;
@@ -0,0 +1 @@
1
+ var r=Object.defineProperty;var i=Object.getOwnPropertyDescriptor;var a=Object.getOwnPropertyNames;var c=Object.prototype.hasOwnProperty;var d=(e,t)=>{for(var o in t)r(e,o,{get:t[o],enumerable:!0})},l=(e,t,o,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of a(t))!c.call(e,s)&&s!==o&&r(e,s,{get:()=>t[s],enumerable:!(n=i(t,s))||n.enumerable});return e};var p=e=>l(r({},"__esModule",{value:!0}),e);var g={};d(g,{default:()=>u});module.exports=p(g);var m={module:"master.css",config:"master.css.*",sources:[],include:["**/*.{html,js,jsx,ts,tsx,svelte,astro,vue,md,mdx,pug,php}"],exclude:["**/node_modules/**","**/*.d.ts","**/*.test.*","**/*.config.*","node_modules","master.css.*","dist","out","styles","public","README.md"],classes:{fixed:[],ignored:[]}},u=m;
@@ -0,0 +1 @@
1
+ var t={module:"master.css",config:"master.css.*",sources:[],include:["**/*.{html,js,jsx,ts,tsx,svelte,astro,vue,md,mdx,pug,php}"],exclude:["**/node_modules/**","**/*.d.ts","**/*.test.*","**/*.config.*","node_modules","master.css.*","dist","out","styles","public","README.md"],classes:{fixed:[],ignored:[]}},e=t;export{e as default};
package/package.json CHANGED
@@ -1,147 +1 @@
1
- {
2
- "name": "@master/css-compiler",
3
- "license": "MIT",
4
- "description": "Compile Master CSS ahead of time with zero-configuration integration with build tools",
5
- "author": "Aoyue Design LLC.",
6
- "funding": "https://docs.master.co/css/donate",
7
- "homepage": "https://css.master.co",
8
- "repository": {
9
- "type": "git",
10
- "url": "https://github.com/master-co/css-compiler.git"
11
- },
12
- "keywords": [
13
- "webpack",
14
- "plugin",
15
- "integration",
16
- "vite",
17
- "parcel",
18
- "build tools",
19
- "css",
20
- "mastercss",
21
- "vite-plugin"
22
- ],
23
- "sideEffects": false,
24
- "scripts": {
25
- "build:cjs": "esbuild src/index.ts --bundle --outfile=dist/index.cjs --format=cjs --platform=node --external:@master/css --external:chalk",
26
- "build:esm": "esbuild src/index.ts --bundle --outfile=dist/index.mjs --format=esm --platform=node --external:@master/css --external:chalk",
27
- "dev:cjs": "npm run build:cjs -- --watch",
28
- "dev:esm": "npm run build:esm -- --watch",
29
- "prod": "rm -rf dist && npm run build:cjs -- --minify --sourcemap && npm run build:esm -- --minify --sourcemap && tsc --emitDeclarationOnly",
30
- "test": "jest",
31
- "lint": "eslint ./src"
32
- },
33
- "main": "./dist/index.cjs",
34
- "jsnext:main": "./dist/index.mjs",
35
- "browser": "./dist/index.browser.js",
36
- "esnext": "./dist/index.mjs",
37
- "module": "./dist/index.mjs",
38
- "types": "./dist/index.d.ts",
39
- "exports": {
40
- ".": {
41
- "require": "./dist/index.cjs",
42
- "import": "./dist/index.mjs",
43
- "types": "./dist/index.d.ts"
44
- }
45
- },
46
- "jest": {
47
- "testEnvironment": "node",
48
- "transform": {
49
- "^.+\\.(t|j)sx?$": "@swc/jest"
50
- },
51
- "testMatch": [
52
- "<rootDir>/tests/*.ts",
53
- "<rootDir>/src/**/*.test.ts"
54
- ]
55
- },
56
- "private": false,
57
- "publishConfig": {
58
- "access": "public"
59
- },
60
- "engines": {
61
- "node": ">=14"
62
- },
63
- "release": {
64
- "plugins": [
65
- [
66
- "@semantic-release/commit-analyzer",
67
- {
68
- "preset": "angular",
69
- "releaseRules": [
70
- {
71
- "type": "docs",
72
- "scope": "README",
73
- "release": "patch"
74
- },
75
- {
76
- "type": "refactor",
77
- "release": "patch"
78
- },
79
- {
80
- "type": "style",
81
- "release": "patch"
82
- }
83
- ],
84
- "parserOpts": {
85
- "noteKeywords": [
86
- "BREAKING CHANGE",
87
- "BREAKING CHANGES"
88
- ]
89
- }
90
- }
91
- ],
92
- "@semantic-release/release-notes-generator",
93
- [
94
- "@semantic-release/exec",
95
- {
96
- "prepareCmd": "npm run prod"
97
- }
98
- ],
99
- [
100
- "@semantic-release/github"
101
- ],
102
- [
103
- "@semantic-release/npm"
104
- ]
105
- ],
106
- "branches": [
107
- "+([0-9])?(.{+([0-9]),x}).x",
108
- "main",
109
- "next",
110
- "next-major",
111
- {
112
- "name": "beta",
113
- "prerelease": true
114
- },
115
- {
116
- "name": "alpha",
117
- "prerelease": true
118
- }
119
- ]
120
- },
121
- "files": [
122
- "dist"
123
- ],
124
- "devDependencies": {
125
- "@semantic-release/exec": "^6.0.3",
126
- "@swc/core": "^1.3.9",
127
- "@swc/jest": "^0.2.23",
128
- "@types/jest": "^29.2.0",
129
- "@types/node": "^18.11.0",
130
- "@types/webpack": "^5.28.0",
131
- "@typescript-eslint/eslint-plugin": "^5.40.1",
132
- "@typescript-eslint/parser": "^5.40.1",
133
- "esbuild": "^0.15.10",
134
- "eslint": "^8.25.0",
135
- "jest": "^29.2.2",
136
- "semantic-release": "^19.0.5",
137
- "typescript": "^4.8.4",
138
- "vite": "^3.1.8"
139
- },
140
- "peerDependencies": {
141
- "@master/css": "^2.0.0-beta.14"
142
- },
143
- "dependencies": {
144
- "chalk": "^4.0.0"
145
- },
146
- "version": "2.0.0-beta.14"
147
- }
1
+ {"name":"@master/css-compiler","scripts":{"build":"techor pack --platform node","dev":"npm run build -- --watch","lint":"eslint ./src","test":"jest"},"license":"MIT","description":"The ahead-of-time compiler of Master CSS","author":"Aoyue Design LLC.","funding":"https://docs.master.co/css/donate","homepage":"https://css.master.co","bugs":{"url":"https://github.com/master-co/css/issues"},"repository":{"type":"git","url":"https://github.com/master-co/css.git","directory":"packages/compiler"},"keywords":["webpack","plugin","integration","vite","parcel","build tools","css","mastercss","vite-plugin"],"sideEffects":false,"main":"./dist/index.js","jsnext:main":"./dist/index.mjs","esnext":"./dist/index.mjs","module":"./dist/index.mjs","types":"./dist/index.d.ts","exports":{".":{"require":"./dist/index.js","import":"./dist/index.mjs","types":"./dist/index.d.ts"},"./options":{"require":"./dist/options/index.js","import":"./dist/options/index.mjs","types":"./dist/options/index.d.ts"}},"typesVersions":{"*":{"*":["./dist/index.d.ts"],"options":["./dist/options/index.d.ts"]}},"files":["dist"],"publishConfig":{"access":"public"},"dependencies":{"@master/css":"^2.0.0-beta.140","@techor/extend":"^2.1.4","fast-glob":"^3.2.12","minimatch":"^5.1.1","stylelint":"^15.2.0","techor":"^2.1.4","upath":"^2.0.1"},"devDependencies":{"ts-jest":"^29.0.5"},"version":"2.0.0-beta.140"}
package/LICENSE DELETED
@@ -1,21 +0,0 @@
1
- The MIT License
2
-
3
- Copyright (c) Aoyue Design LLC.
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in
13
- all copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
- THE SOFTWARE.
package/dist/index.cjs DELETED
@@ -1,2 +0,0 @@
1
- var _=Object.create;var y=Object.defineProperty;var W=Object.getOwnPropertyDescriptor;var z=Object.getOwnPropertyNames;var U=Object.getPrototypeOf,B=Object.prototype.hasOwnProperty;var G=(t,e)=>{for(var s in e)y(t,s,{get:e[s],enumerable:!0})},j=(t,e,s,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of z(e))!B.call(t,o)&&o!==s&&y(t,o,{get:()=>e[o],enumerable:!(r=W(e,o))||r.enumerable});return t};var h=(t,e,s)=>(s=t!=null?_(U(t)):{},j(e||!t||!t.__esModule?y(s,"default",{value:t,enumerable:!0}):s,t)),V=t=>j(y({},"__esModule",{value:!0}),t);var K={};G(K,{MasterCSSCompiler:()=>m,MasterCSSVitePlugin:()=>N,MasterCSSWebpackPlugin:()=>C});module.exports=V(K);var b=h(require("path")),p=h(require("chalk"));var D=require("@master/css");function R({content:t}){let e=t.match(/[^\s]+/g)??[],s=new Set;for(let r of e){let o=H(r);if(o.size)for(let n of o)s.add(n);else s.add(T(r))}return[...s].filter(r=>r&&!J(r))}var T=t=>{let e=t;return t=t.replace(/^([\w={[(\\]*["'`])/,""),t.match(/^content:((?<!\\)["'`])((?:\\\1|(?:(?!\1))[\S\s])*)((?<!\\)\1)$/)||(t=t.replace(/(\.*|[([{\\:#]*|["'`].*)$/,"")),e===t?t:T(t)},H=t=>{let e=new Set,s=/((?<!\\)["'`])((?:\\\1|(?:(?!\1))[\S\s])*)((?<!\\)\1)/g,r;for(;(r=s.exec(t))!==null;){r.index===s.lastIndex&&s.lastIndex++;let o=H(r[2]);if(o.size)for(let n of o)e.add(n);else e.add(T(r[2]))}return e},J=t=>!t||!t.match(/(?:^[\w-]+:[\w$#]+)|(?:^[@~][\w-]+$)/)&&!Object.keys(D.defaultSemantics).includes(t)||t.match(/\*\*/)||t.match(/:\[/)||t.match(/\$\{/)||t.match(/\{\{/)||t.match(/\(\{[^}]*\}/)||t.match(/<\w+>|<\/\w+>/);var L={output:{name:"master.css",dir:""},accept({name:t}){if(t.match(/[\\/]node_modules[\\/]/))return!1;if(t.match(/\.(html|js|jsx|ts|tsx|svelte|astro|vue)$/i))return!0},extract:R},P=L;var $=h(require("@master/css")),E=require("perf_hooks"),m=class{constructor(e){this.options=e;this.options=(0,$.extend)(P,e);let s;try{s=require(b.default.resolve(process.cwd(),e.config||"./master.css.js"))}catch{}this.css=new $.default({config:s})}css;extractions=new Set;extract({name:e,content:s}){if(!e||!s||!this.options.accept?.({content:s,name:e}))return[];let r=[];this.log("accepts",` \u2192 ${b.default.relative(process.cwd(),e)}`);for(let o of this.options.extract({content:s,name:e}))this.extractions.has(o)||(this.extractions.add(o),r.push(o));return r}insert(e){let s=E.performance.now();for(let n of e)this.css.findAndInsert(n);let r=Math.round((E.performance.now()-s)*1e3),o=this.css.rules.map(n=>n.className);console.log(`[Master CSS] process ${p.default.green(e.length)} extractions in ${p.default.green(r)} \xB5s [${p.default.green(this.css.rules.length)} rules in ${p.default.green(b.default.join(this.options.output.dir,this.options.output.name))}]`),this.log("extractions",` \u2192 ${p.default.green(e.length)} extractions: ${p.default.blue(e.join(" "))}`),this.log("validClasses",` \u2192 ${p.default.green(o.length)} total valid classes: ${p.default.blue(o.join(" "))}`)}log(e,s){(this.options.debug===!0||Array.isArray(this.options.debug)&&this.options.debug.includes(e))&&console.log(s)}};var F=h(require("path"));var S="MasterCSSWebpackPlugin",C=class extends m{apply(e){let{webpack:s}=e,{Template:r,RuntimeGlobals:o,RuntimeModule:n}=s,{RawSource:x}=s.sources,{Compilation:w}=s,{options:i}=this,l=F.default.join(i.output.dir||"",i.output.name),M=l.replace(/\\/g,"/");e.hooks.thisCompilation.tap(S,a=>{let u=new WeakSet,f=(d,c)=>{u.has(d)||(u.add(d),c.add(o.publicPath),a.addRuntimeModule(d,new A(c)))};a.hooks.runtimeRequirementInTree.for(o.ensureChunkHandlers).tap(S,f),a.hooks.runtimeRequirementInTree.for(o.hmrDownloadUpdateHandlers).tap(S,f);class A extends n{runtimeRequirements;constructor(c){super("master-css-loading",10),this.runtimeRequirements=c}generate(){let{runtimeRequirements:c}=this;return c.has(o.hmrDownloadUpdateHandlers)?r.asString([Date.now().toString(),`const link = document.querySelector('[href*=\\'${M}\\'][rel=stylesheet]')`,"if (link) {",r.indent(["link.href = link.href.replace(/ts=[0-9]+/, 'ts=' + Date.now())"]),"}"]):""}}}),e.hooks.compilation.tap(S,a=>{a.hooks.finishModules.tap(S,u=>{let{modifiedFiles:f,watching:A}=e,d=[];for(let c of u){let g=c.resource,k=c._source?.source();A&&f?.size&&!f.has(g)||d.push(...this.extract({name:g,content:k}))}if(d.length){let c=this.css.text;this.insert(d);let g=this.css.text;if(g!==c){let k=new x(g);a.getAsset(l)?a.updateAsset(l,k):a.emitAsset(l,k)}}}),a.hooks.processAssets.tap({name:S,stage:w.PROCESS_ASSETS_STAGE_ADDITIONS},()=>{a.chunks.forEach(u=>{u.files.add(l)})})})}};var I=h(require("path"));var O=h(require("fs")),q=h(require("path"));function v(t,e,s){let r=q.default.dirname(t);O.default.existsSync(r)||O.default.mkdirSync(r,{recursive:!0}),O.default.writeFileSync(t,e,s)}function N(t){let e=new m(t),s=I.default.join(e.options.output.dir||"",e.options.output.name),r,o,n,x=!1,w=(i,l)=>{let M=e.extract({name:i,content:l});if(M.length){let a=e.css.text;e.insert(M);let u=e.css.text;if(u!==a&&r){v(o,u);let f=()=>{r.ws.send({type:"update",updates:[{path:n,timestamp:Date.now()}]})};x?f():(setTimeout(f,500),x=!0)}}};return{name:"vite-plugin-master-css",enforce:"pre",configureServer(i){r=i},buildStart(){o=I.default.resolve(r?.config.cacheDir??process.cwd(),s),r&&(v(o,""),n=(r.config.cacheDir.slice(process.cwd().length)+"/"+s).replace(/\\/g,"/"))},resolveId(i){if(i.endsWith("master.css?direct"))return"\0"+i},transform(i,l){w(l,i)},transformIndexHtml(i){return i.replace(/(<head>)/,`$1<link rel="stylesheet" href="${n}">`)},async handleHotUpdate(i){w(i.file,await i.read())},generateBundle(){let i=this.emitFile({type:"asset",name:s,source:e.css.text});n="/"+this.getFileName(i)}}}0&&(module.exports={MasterCSSCompiler,MasterCSSVitePlugin,MasterCSSWebpackPlugin});
2
- //# sourceMappingURL=index.cjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../src/index.ts", "../src/compiler.ts", "../src/options/extract.ts", "../src/options/index.ts", "../src/webpack.ts", "../src/vite.ts", "../src/utils/write-file.ts"],
4
- "sourcesContent": ["\nexport { default as MasterCSSCompiler } from './compiler'\nexport { default as MasterCSSWebpackPlugin } from './webpack'\nexport { default as MasterCSSVitePlugin } from './vite'\n", "import path from 'path'\nimport chalk from 'chalk'\nimport defaultOptions, { MasterCSSCompilerOptions, MasterCSSCompilerSource } from './options'\nimport MasterCSS, { extend } from '@master/css'\nimport { performance } from 'perf_hooks'\nimport type { MasterCSSConfig } from '@master/css'\n\nexport default class MasterCSSCompiler {\n\n constructor(\n public options?: MasterCSSCompilerOptions\n ) {\n this.options = extend(defaultOptions, options)\n let userConfig: MasterCSSConfig\n try {\n userConfig = require(path.resolve(process.cwd(), options.config || './master.css.js'))\n // eslint-disable-next-line no-empty\n } catch (err) { }\n this.css = new MasterCSS({ config: userConfig })\n }\n\n css: MasterCSS\n extractions = new Set<string>()\n\n extract({ name, content }: MasterCSSCompilerSource) {\n if (\n !name || !content\n || !this.options.accept?.({ content, name })\n ) {\n return []\n }\n const eachExtractions: string[] = []\n\n this.log('accepts', ` \u2192 ${path.relative(process.cwd(), name)}`)\n\n for (const eachNewExtraction of this.options.extract({ content, name })) {\n if (this.extractions.has(eachNewExtraction)) {\n continue\n } else {\n this.extractions.add(eachNewExtraction)\n eachExtractions.push(eachNewExtraction)\n }\n }\n return eachExtractions\n }\n\n insert(extractions) {\n const p1 = performance.now()\n\n /* \u6839\u64DA\u985E\u540D\u5C0B\u627E\u4E26\u63D2\u5165\u898F\u5247 ( MasterCSS \u672C\u8EAB\u5E36\u6709\u5FEB\u53D6\u6A5F\u5236\uFF0C\u91CD\u8907\u7684\u985E\u540D\u4E0D\u6703\u518D\u7DE8\u8B6F\u53CA\u7522\u751F ) */\n for (const eachExtraction of extractions) {\n this.css.findAndInsert(eachExtraction)\n }\n\n const spent = Math.round((performance.now() - p1) * 1000)\n const validClasses = this.css.rules.map((rule) => rule.className)\n\n /* \u5370\u51FA Master CSS \u7DE8\u8B6F\u6642\u9593 */\n console.log(`[Master CSS] process ${chalk.green(extractions.length)} extractions in ${chalk.green(spent)} \u00B5s [${chalk.green(this.css.rules.length)} rules in ${chalk.green(path.join(this.options.output.dir, this.options.output.name))}]`)\n\n this.log('extractions', ` \u2192 ${chalk.green(extractions.length)} extractions: ${chalk.blue(extractions.join(' '))}`)\n this.log('validClasses', ` \u2192 ${chalk.green(validClasses.length)} total valid classes: ${chalk.blue(validClasses.join(' '))}`)\n }\n\n log(name, content) {\n if (this.options.debug === true || Array.isArray(this.options.debug) && this.options.debug.includes(name)) {\n console.log(content)\n }\n }\n}", "import { defaultSemantics } from '@master/css'\nimport type { MasterCSSCompilerSource } from './index'\n\nexport default function extract({ content }: MasterCSSCompilerSource) {\n const blocks = content.match(/[^\\s]+/g) ?? []\n const strings = new Set<string>()\n for (const block of blocks) {\n const result = peelString(block)\n if (result.size) {\n for (const string of result) {\n strings.add(string)\n }\n } else {\n strings.add(trimString(block))\n }\n }\n return [...strings].filter(x => x && !checkToExclude(x))\n}\n\nconst trimString = (content) => {\n const originContent = content\n content = content.replace(/^([\\w={[(\\\\]*[\"'`])/, '')\n if (!content.match(/^content:((?<!\\\\)[\"'`])((?:\\\\\\1|(?:(?!\\1))[\\S\\s])*)((?<!\\\\)\\1)$/)) {\n content = content.replace(/(\\.*|[([{\\\\:#]*|[\"'`].*)$/, '')\n }\n if (originContent === content) {\n return content\n } else {\n return trimString(content)\n }\n}\n\nconst peelString = (content) => {\n const strings = new Set<string>()\n const stringRegx = /((?<!\\\\)[\"'`])((?:\\\\\\1|(?:(?!\\1))[\\S\\s])*)((?<!\\\\)\\1)/g\n let m\n while ((m = stringRegx.exec(content)) !== null) {\n if (m.index === stringRegx.lastIndex) {\n stringRegx.lastIndex++\n }\n const result = peelString(m[2])\n if (result.size) {\n for (const string of result) {\n strings.add(string)\n }\n } else {\n strings.add(trimString(m[2]))\n }\n }\n return strings\n}\n\nconst checkToExclude = (content) => {\n return !content\n || (!content.match(/(?:^[\\w-]+:[\\w$#]+)|(?:^[@~][\\w-]+$)/) && !Object.keys(defaultSemantics).includes(content))\n || content.match(/\\*\\*/)\n || content.match(/:\\[/)\n || content.match(/\\$\\{/)\n || content.match(/\\{\\{/)\n || content.match(/\\(\\{[^}]*\\}/)\n || content.match(/<\\w+>|<\\/\\w+>/)\n}", "import extract from './extract'\n\nconst defaultOptions: MasterCSSCompilerOptions = {\n output: {\n name: 'master.css',\n dir: ''\n },\n accept({ name }) {\n if (name.match(/[\\\\/]node_modules[\\\\/]/)) {\n return false\n }\n if (name.match(/\\.(html|js|jsx|ts|tsx|svelte|astro|vue)$/i)) {\n return true\n }\n },\n extract\n}\n\nexport declare type MasterCSSCompilerSource = {\n name: string\n content: string\n}\n\nexport interface MasterCSSCompilerOptions {\n output?: {\n name: string\n dir: string\n },\n accept?: (source: MasterCSSCompilerSource) => boolean\n extract?: (source: MasterCSSCompilerSource) => string[]\n config?: string\n debug?: string[] | boolean\n}\n\nexport default defaultOptions", "import path from 'path'\nimport MasterCSSCompiler from './compiler'\nimport type { Compiler } from 'webpack'\n\nconst NAME = 'MasterCSSWebpackPlugin'\n\nexport default class MasterCSSWebpackPlugin extends MasterCSSCompiler {\n\n apply(compiler: Compiler) {\n const { webpack } = compiler\n const { Template, RuntimeGlobals, RuntimeModule } = webpack\n const { RawSource } = webpack.sources\n const { Compilation } = webpack\n const { options } = this\n const outputPath = path.join(options.output.dir || '', options.output.name)\n const linkHref = outputPath.replace(/\\\\/g, '/')\n\n compiler.hooks.thisCompilation.tap(NAME, (compilation) => {\n\n const enabledChunks = new WeakSet()\n\n const handler = (chunk, set) => {\n if (enabledChunks.has(chunk))\n return\n\n enabledChunks.add(chunk)\n\n set.add(RuntimeGlobals.publicPath)\n\n compilation.addRuntimeModule(chunk, new CssLoadingRuntimeModule(set))\n }\n\n compilation.hooks.runtimeRequirementInTree\n .for(RuntimeGlobals.ensureChunkHandlers)\n .tap(NAME, handler)\n compilation.hooks.runtimeRequirementInTree\n .for(RuntimeGlobals.hmrDownloadUpdateHandlers)\n .tap(NAME, handler)\n\n class CssLoadingRuntimeModule extends RuntimeModule {\n\n runtimeRequirements: Set<string>\n\n constructor(runtimeRequirements: Set<string>) {\n super('master-css-loading', 10)\n\n this.runtimeRequirements = runtimeRequirements\n }\n\n generate() {\n const { runtimeRequirements } = this\n const withHmr = runtimeRequirements.has(RuntimeGlobals.hmrDownloadUpdateHandlers)\n if (!withHmr)\n return ''\n\n return Template.asString([\n Date.now().toString(),\n `const link = document.querySelector('[href*=\\\\'${linkHref}\\\\'][rel=stylesheet]')`,\n 'if (link) {',\n Template.indent([\n 'link.href = link.href.replace(/ts=[0-9]+/, \\'ts=\\' + Date.now())'\n ]),\n '}'\n ])\n }\n }\n })\n\n compiler.hooks.compilation.tap(NAME, (compilation) => {\n // \u589E\u52A0\u984D\u5916\u7684 `master.css` assets\n compilation.hooks.finishModules.tap(NAME, (modules) => {\n const { modifiedFiles, watching } = compiler\n const eachExtractions: string[] = []\n\n for (const eachModule of modules) {\n const name = eachModule['resource']\n // \u5F9E\u8A18\u61B6\u9AD4\u6216\u5FEB\u53D6\u53D6\u5F97\u7576\u524D module \u7684\u539F\u59CB\u78BC\n const content = eachModule['_source']?.source()\n // \u5728 watch \u6A21\u5F0F\u4E0B\u50C5\u8655\u7406\u7576\u4E0B\u8B8A\u66F4\u7684\u6A94\u6848\n if (watching && modifiedFiles?.size && !modifiedFiles.has(name)) { continue }\n eachExtractions.push(...this.extract({ name, content }))\n }\n\n if (eachExtractions.length) {\n const originalCssText = this.css.text\n /* \u6BD4\u5C0D\u63D0\u53D6\u7269\u4E26\u63D2\u5165 CSS \u898F\u5247 */\n this.insert(eachExtractions)\n /* \u6839\u64DA cssText \u751F\u6210 `master.css` \u4E26\u52A0\u5165\u5230 Webpack \u7684 assets \u4E2D */\n const cssText = this.css.text\n if (cssText !== originalCssText) {\n const newSource = new RawSource(cssText)\n if (compilation.getAsset(outputPath)) {\n compilation.updateAsset(outputPath, newSource)\n } else {\n compilation.emitAsset(outputPath, newSource)\n }\n }\n }\n })\n\n compilation.hooks.processAssets.tap({\n name: NAME,\n stage: Compilation.PROCESS_ASSETS_STAGE_ADDITIONS,\n }, () => {\n compilation.chunks.forEach((chunk) => {\n chunk.files.add(outputPath)\n })\n })\n })\n }\n}\n", "import MasterCSSCompiler from './compiler'\nimport path from 'path'\nimport writeFile from './utils/write-file'\nimport type { MasterCSSCompilerOptions } from './options'\nimport type { PluginOption } from 'vite'\n\nexport default function (options?: MasterCSSCompilerOptions): PluginOption {\n const compiler = new MasterCSSCompiler(options)\n const outputPath = path.join(compiler.options.output.dir || '', compiler.options.output.name)\n\n let server\n let outputFilePath: string\n let linkHref: string\n let rendered = false\n\n const extract = (name, content) => {\n const eachExtractions = compiler.extract({ name, content })\n if (eachExtractions.length) {\n const originalCssText = compiler.css.text\n /* \u6BD4\u5C0D\u63D0\u53D6\u7269\u4E26\u63D2\u5165 CSS \u898F\u5247 */\n compiler.insert(eachExtractions)\n /* \u6839\u64DA cssText \u751F\u6210 `master.css` \u4E26\u52A0\u5165\u5230 Webpack \u7684 assets \u4E2D */\n const cssText = compiler.css.text\n if (cssText !== originalCssText) {\n if (server) {\n writeFile(outputFilePath, cssText)\n\n const notify = () => {\n server.ws.send({\n type: 'update',\n updates: [{\n path: linkHref,\n timestamp: Date.now()\n }]\n })\n }\n\n if (rendered) {\n notify()\n } else {\n setTimeout(notify, 500)\n\n rendered = true\n }\n }\n }\n }\n }\n\n return {\n name: 'vite-plugin-master-css',\n enforce: 'pre',\n configureServer(_server) {\n server = _server\n },\n buildStart() {\n outputFilePath = path.resolve(server?.config.cacheDir ?? process.cwd(), outputPath)\n if (server) {\n writeFile(outputFilePath, '')\n\n linkHref = (server.config.cacheDir.slice(process.cwd().length) + '/' + outputPath).replace(/\\\\/g, '/')\n }\n },\n resolveId(source) {\n if (source.endsWith('master.css?direct'))\n return '\\0' + source\n },\n transform(code, id) {\n extract(id, code)\n },\n transformIndexHtml(html) {\n return html.replace(\n /(<head>)/,\n `$1<link rel=\"stylesheet\" href=\"${linkHref}\">`\n )\n },\n async handleHotUpdate(hmrContext) {\n extract(hmrContext.file, await hmrContext.read())\n },\n generateBundle() {\n const referenceId = this.emitFile({\n type: 'asset',\n name: outputPath,\n source: compiler.css.text\n })\n linkHref = '/' + this.getFileName(referenceId)\n }\n } as PluginOption\n}", "import fs from 'fs'\nimport path from 'path'\n\nexport default function writeFile(filePath: string, data: string | NodeJS.ArrayBufferView, options?: fs.WriteFileOptions) {\n const dirname = path.dirname(filePath)\n if (!fs.existsSync(dirname)) {\n fs.mkdirSync(dirname, { recursive: true })\n }\n fs.writeFileSync(filePath, data, options)\n\n}\n"],
5
- "mappings": "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",
6
- "names": ["src_exports", "__export", "MasterCSSCompiler", "vite_default", "MasterCSSWebpackPlugin", "__toCommonJS", "import_path", "import_chalk", "import_css", "extract", "content", "blocks", "strings", "block", "result", "peelString", "string", "trimString", "x", "checkToExclude", "originContent", "stringRegx", "m", "defaultOptions", "name", "extract", "options_default", "import_css", "import_perf_hooks", "MasterCSSCompiler", "options", "options_default", "userConfig", "path", "MasterCSS", "name", "content", "eachExtractions", "eachNewExtraction", "extractions", "p1", "eachExtraction", "spent", "validClasses", "rule", "chalk", "import_path", "NAME", "MasterCSSWebpackPlugin", "MasterCSSCompiler", "compiler", "webpack", "Template", "RuntimeGlobals", "RuntimeModule", "RawSource", "Compilation", "options", "outputPath", "path", "linkHref", "compilation", "enabledChunks", "handler", "chunk", "set", "CssLoadingRuntimeModule", "runtimeRequirements", "modules", "modifiedFiles", "watching", "eachExtractions", "eachModule", "name", "content", "originalCssText", "cssText", "newSource", "import_path", "import_fs", "import_path", "writeFile", "filePath", "data", "options", "dirname", "path", "fs", "vite_default", "options", "compiler", "MasterCSSCompiler", "outputPath", "path", "server", "outputFilePath", "linkHref", "rendered", "extract", "name", "content", "eachExtractions", "originalCssText", "cssText", "writeFile", "notify", "_server", "source", "code", "id", "html", "hmrContext", "referenceId"]
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../src/compiler.ts", "../src/options/extract.ts", "../src/options/index.ts", "../src/webpack.ts", "../src/vite.ts", "../src/utils/write-file.ts"],
4
- "sourcesContent": ["import path from 'path'\nimport chalk from 'chalk'\nimport defaultOptions, { MasterCSSCompilerOptions, MasterCSSCompilerSource } from './options'\nimport MasterCSS, { extend } from '@master/css'\nimport { performance } from 'perf_hooks'\nimport type { MasterCSSConfig } from '@master/css'\n\nexport default class MasterCSSCompiler {\n\n constructor(\n public options?: MasterCSSCompilerOptions\n ) {\n this.options = extend(defaultOptions, options)\n let userConfig: MasterCSSConfig\n try {\n userConfig = require(path.resolve(process.cwd(), options.config || './master.css.js'))\n // eslint-disable-next-line no-empty\n } catch (err) { }\n this.css = new MasterCSS({ config: userConfig })\n }\n\n css: MasterCSS\n extractions = new Set<string>()\n\n extract({ name, content }: MasterCSSCompilerSource) {\n if (\n !name || !content\n || !this.options.accept?.({ content, name })\n ) {\n return []\n }\n const eachExtractions: string[] = []\n\n this.log('accepts', ` \u2192 ${path.relative(process.cwd(), name)}`)\n\n for (const eachNewExtraction of this.options.extract({ content, name })) {\n if (this.extractions.has(eachNewExtraction)) {\n continue\n } else {\n this.extractions.add(eachNewExtraction)\n eachExtractions.push(eachNewExtraction)\n }\n }\n return eachExtractions\n }\n\n insert(extractions) {\n const p1 = performance.now()\n\n /* \u6839\u64DA\u985E\u540D\u5C0B\u627E\u4E26\u63D2\u5165\u898F\u5247 ( MasterCSS \u672C\u8EAB\u5E36\u6709\u5FEB\u53D6\u6A5F\u5236\uFF0C\u91CD\u8907\u7684\u985E\u540D\u4E0D\u6703\u518D\u7DE8\u8B6F\u53CA\u7522\u751F ) */\n for (const eachExtraction of extractions) {\n this.css.findAndInsert(eachExtraction)\n }\n\n const spent = Math.round((performance.now() - p1) * 1000)\n const validClasses = this.css.rules.map((rule) => rule.className)\n\n /* \u5370\u51FA Master CSS \u7DE8\u8B6F\u6642\u9593 */\n console.log(`[Master CSS] process ${chalk.green(extractions.length)} extractions in ${chalk.green(spent)} \u00B5s [${chalk.green(this.css.rules.length)} rules in ${chalk.green(path.join(this.options.output.dir, this.options.output.name))}]`)\n\n this.log('extractions', ` \u2192 ${chalk.green(extractions.length)} extractions: ${chalk.blue(extractions.join(' '))}`)\n this.log('validClasses', ` \u2192 ${chalk.green(validClasses.length)} total valid classes: ${chalk.blue(validClasses.join(' '))}`)\n }\n\n log(name, content) {\n if (this.options.debug === true || Array.isArray(this.options.debug) && this.options.debug.includes(name)) {\n console.log(content)\n }\n }\n}", "import { defaultSemantics } from '@master/css'\nimport type { MasterCSSCompilerSource } from './index'\n\nexport default function extract({ content }: MasterCSSCompilerSource) {\n const blocks = content.match(/[^\\s]+/g) ?? []\n const strings = new Set<string>()\n for (const block of blocks) {\n const result = peelString(block)\n if (result.size) {\n for (const string of result) {\n strings.add(string)\n }\n } else {\n strings.add(trimString(block))\n }\n }\n return [...strings].filter(x => x && !checkToExclude(x))\n}\n\nconst trimString = (content) => {\n const originContent = content\n content = content.replace(/^([\\w={[(\\\\]*[\"'`])/, '')\n if (!content.match(/^content:((?<!\\\\)[\"'`])((?:\\\\\\1|(?:(?!\\1))[\\S\\s])*)((?<!\\\\)\\1)$/)) {\n content = content.replace(/(\\.*|[([{\\\\:#]*|[\"'`].*)$/, '')\n }\n if (originContent === content) {\n return content\n } else {\n return trimString(content)\n }\n}\n\nconst peelString = (content) => {\n const strings = new Set<string>()\n const stringRegx = /((?<!\\\\)[\"'`])((?:\\\\\\1|(?:(?!\\1))[\\S\\s])*)((?<!\\\\)\\1)/g\n let m\n while ((m = stringRegx.exec(content)) !== null) {\n if (m.index === stringRegx.lastIndex) {\n stringRegx.lastIndex++\n }\n const result = peelString(m[2])\n if (result.size) {\n for (const string of result) {\n strings.add(string)\n }\n } else {\n strings.add(trimString(m[2]))\n }\n }\n return strings\n}\n\nconst checkToExclude = (content) => {\n return !content\n || (!content.match(/(?:^[\\w-]+:[\\w$#]+)|(?:^[@~][\\w-]+$)/) && !Object.keys(defaultSemantics).includes(content))\n || content.match(/\\*\\*/)\n || content.match(/:\\[/)\n || content.match(/\\$\\{/)\n || content.match(/\\{\\{/)\n || content.match(/\\(\\{[^}]*\\}/)\n || content.match(/<\\w+>|<\\/\\w+>/)\n}", "import extract from './extract'\n\nconst defaultOptions: MasterCSSCompilerOptions = {\n output: {\n name: 'master.css',\n dir: ''\n },\n accept({ name }) {\n if (name.match(/[\\\\/]node_modules[\\\\/]/)) {\n return false\n }\n if (name.match(/\\.(html|js|jsx|ts|tsx|svelte|astro|vue)$/i)) {\n return true\n }\n },\n extract\n}\n\nexport declare type MasterCSSCompilerSource = {\n name: string\n content: string\n}\n\nexport interface MasterCSSCompilerOptions {\n output?: {\n name: string\n dir: string\n },\n accept?: (source: MasterCSSCompilerSource) => boolean\n extract?: (source: MasterCSSCompilerSource) => string[]\n config?: string\n debug?: string[] | boolean\n}\n\nexport default defaultOptions", "import path from 'path'\nimport MasterCSSCompiler from './compiler'\nimport type { Compiler } from 'webpack'\n\nconst NAME = 'MasterCSSWebpackPlugin'\n\nexport default class MasterCSSWebpackPlugin extends MasterCSSCompiler {\n\n apply(compiler: Compiler) {\n const { webpack } = compiler\n const { Template, RuntimeGlobals, RuntimeModule } = webpack\n const { RawSource } = webpack.sources\n const { Compilation } = webpack\n const { options } = this\n const outputPath = path.join(options.output.dir || '', options.output.name)\n const linkHref = outputPath.replace(/\\\\/g, '/')\n\n compiler.hooks.thisCompilation.tap(NAME, (compilation) => {\n\n const enabledChunks = new WeakSet()\n\n const handler = (chunk, set) => {\n if (enabledChunks.has(chunk))\n return\n\n enabledChunks.add(chunk)\n\n set.add(RuntimeGlobals.publicPath)\n\n compilation.addRuntimeModule(chunk, new CssLoadingRuntimeModule(set))\n }\n\n compilation.hooks.runtimeRequirementInTree\n .for(RuntimeGlobals.ensureChunkHandlers)\n .tap(NAME, handler)\n compilation.hooks.runtimeRequirementInTree\n .for(RuntimeGlobals.hmrDownloadUpdateHandlers)\n .tap(NAME, handler)\n\n class CssLoadingRuntimeModule extends RuntimeModule {\n\n runtimeRequirements: Set<string>\n\n constructor(runtimeRequirements: Set<string>) {\n super('master-css-loading', 10)\n\n this.runtimeRequirements = runtimeRequirements\n }\n\n generate() {\n const { runtimeRequirements } = this\n const withHmr = runtimeRequirements.has(RuntimeGlobals.hmrDownloadUpdateHandlers)\n if (!withHmr)\n return ''\n\n return Template.asString([\n Date.now().toString(),\n `const link = document.querySelector('[href*=\\\\'${linkHref}\\\\'][rel=stylesheet]')`,\n 'if (link) {',\n Template.indent([\n 'link.href = link.href.replace(/ts=[0-9]+/, \\'ts=\\' + Date.now())'\n ]),\n '}'\n ])\n }\n }\n })\n\n compiler.hooks.compilation.tap(NAME, (compilation) => {\n // \u589E\u52A0\u984D\u5916\u7684 `master.css` assets\n compilation.hooks.finishModules.tap(NAME, (modules) => {\n const { modifiedFiles, watching } = compiler\n const eachExtractions: string[] = []\n\n for (const eachModule of modules) {\n const name = eachModule['resource']\n // \u5F9E\u8A18\u61B6\u9AD4\u6216\u5FEB\u53D6\u53D6\u5F97\u7576\u524D module \u7684\u539F\u59CB\u78BC\n const content = eachModule['_source']?.source()\n // \u5728 watch \u6A21\u5F0F\u4E0B\u50C5\u8655\u7406\u7576\u4E0B\u8B8A\u66F4\u7684\u6A94\u6848\n if (watching && modifiedFiles?.size && !modifiedFiles.has(name)) { continue }\n eachExtractions.push(...this.extract({ name, content }))\n }\n\n if (eachExtractions.length) {\n const originalCssText = this.css.text\n /* \u6BD4\u5C0D\u63D0\u53D6\u7269\u4E26\u63D2\u5165 CSS \u898F\u5247 */\n this.insert(eachExtractions)\n /* \u6839\u64DA cssText \u751F\u6210 `master.css` \u4E26\u52A0\u5165\u5230 Webpack \u7684 assets \u4E2D */\n const cssText = this.css.text\n if (cssText !== originalCssText) {\n const newSource = new RawSource(cssText)\n if (compilation.getAsset(outputPath)) {\n compilation.updateAsset(outputPath, newSource)\n } else {\n compilation.emitAsset(outputPath, newSource)\n }\n }\n }\n })\n\n compilation.hooks.processAssets.tap({\n name: NAME,\n stage: Compilation.PROCESS_ASSETS_STAGE_ADDITIONS,\n }, () => {\n compilation.chunks.forEach((chunk) => {\n chunk.files.add(outputPath)\n })\n })\n })\n }\n}\n", "import MasterCSSCompiler from './compiler'\nimport path from 'path'\nimport writeFile from './utils/write-file'\nimport type { MasterCSSCompilerOptions } from './options'\nimport type { PluginOption } from 'vite'\n\nexport default function (options?: MasterCSSCompilerOptions): PluginOption {\n const compiler = new MasterCSSCompiler(options)\n const outputPath = path.join(compiler.options.output.dir || '', compiler.options.output.name)\n\n let server\n let outputFilePath: string\n let linkHref: string\n let rendered = false\n\n const extract = (name, content) => {\n const eachExtractions = compiler.extract({ name, content })\n if (eachExtractions.length) {\n const originalCssText = compiler.css.text\n /* \u6BD4\u5C0D\u63D0\u53D6\u7269\u4E26\u63D2\u5165 CSS \u898F\u5247 */\n compiler.insert(eachExtractions)\n /* \u6839\u64DA cssText \u751F\u6210 `master.css` \u4E26\u52A0\u5165\u5230 Webpack \u7684 assets \u4E2D */\n const cssText = compiler.css.text\n if (cssText !== originalCssText) {\n if (server) {\n writeFile(outputFilePath, cssText)\n\n const notify = () => {\n server.ws.send({\n type: 'update',\n updates: [{\n path: linkHref,\n timestamp: Date.now()\n }]\n })\n }\n\n if (rendered) {\n notify()\n } else {\n setTimeout(notify, 500)\n\n rendered = true\n }\n }\n }\n }\n }\n\n return {\n name: 'vite-plugin-master-css',\n enforce: 'pre',\n configureServer(_server) {\n server = _server\n },\n buildStart() {\n outputFilePath = path.resolve(server?.config.cacheDir ?? process.cwd(), outputPath)\n if (server) {\n writeFile(outputFilePath, '')\n\n linkHref = (server.config.cacheDir.slice(process.cwd().length) + '/' + outputPath).replace(/\\\\/g, '/')\n }\n },\n resolveId(source) {\n if (source.endsWith('master.css?direct'))\n return '\\0' + source\n },\n transform(code, id) {\n extract(id, code)\n },\n transformIndexHtml(html) {\n return html.replace(\n /(<head>)/,\n `$1<link rel=\"stylesheet\" href=\"${linkHref}\">`\n )\n },\n async handleHotUpdate(hmrContext) {\n extract(hmrContext.file, await hmrContext.read())\n },\n generateBundle() {\n const referenceId = this.emitFile({\n type: 'asset',\n name: outputPath,\n source: compiler.css.text\n })\n linkHref = '/' + this.getFileName(referenceId)\n }\n } as PluginOption\n}", "import fs from 'fs'\nimport path from 'path'\n\nexport default function writeFile(filePath: string, data: string | NodeJS.ArrayBufferView, options?: fs.WriteFileOptions) {\n const dirname = path.dirname(filePath)\n if (!fs.existsSync(dirname)) {\n fs.mkdirSync(dirname, { recursive: true })\n }\n fs.writeFileSync(filePath, data, options)\n\n}\n"],
5
- "mappings": "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",
6
- "names": ["path", "chalk", "defaultSemantics", "extract", "content", "blocks", "strings", "block", "result", "peelString", "string", "trimString", "x", "checkToExclude", "originContent", "stringRegx", "m", "defaultOptions", "name", "extract", "options_default", "MasterCSS", "extend", "performance", "MasterCSSCompiler", "options", "extend", "options_default", "userConfig", "__require", "path", "MasterCSS", "name", "content", "eachExtractions", "eachNewExtraction", "extractions", "p1", "performance", "eachExtraction", "spent", "validClasses", "rule", "chalk", "path", "NAME", "MasterCSSWebpackPlugin", "MasterCSSCompiler", "compiler", "webpack", "Template", "RuntimeGlobals", "RuntimeModule", "RawSource", "Compilation", "options", "outputPath", "path", "linkHref", "compilation", "enabledChunks", "handler", "chunk", "set", "CssLoadingRuntimeModule", "runtimeRequirements", "modules", "modifiedFiles", "watching", "eachExtractions", "eachModule", "name", "content", "originalCssText", "cssText", "newSource", "path", "fs", "path", "writeFile", "filePath", "data", "options", "dirname", "vite_default", "options", "compiler", "MasterCSSCompiler", "outputPath", "path", "server", "outputFilePath", "linkHref", "rendered", "extract", "name", "content", "eachExtractions", "originalCssText", "cssText", "writeFile", "notify", "_server", "source", "code", "id", "html", "hmrContext", "referenceId"]
7
- }
@@ -1,2 +0,0 @@
1
- import type { MasterCSSCompilerSource } from './index';
2
- export default function extract({ content }: MasterCSSCompilerSource): string[];
@@ -1,4 +0,0 @@
1
- /// <reference types="node" />
2
- /// <reference types="node" />
3
- import fs from 'fs';
4
- export default function writeFile(filePath: string, data: string | NodeJS.ArrayBufferView, options?: fs.WriteFileOptions): void;
package/dist/vite.d.ts DELETED
@@ -1,3 +0,0 @@
1
- import type { MasterCSSCompilerOptions } from './options';
2
- import type { PluginOption } from 'vite';
3
- export default function (options?: MasterCSSCompilerOptions): PluginOption;
package/dist/webpack.d.ts DELETED
@@ -1,5 +0,0 @@
1
- import MasterCSSCompiler from './compiler';
2
- import type { Compiler } from 'webpack';
3
- export default class MasterCSSWebpackPlugin extends MasterCSSCompiler {
4
- apply(compiler: Compiler): void;
5
- }
package/readme.md DELETED
@@ -1,80 +0,0 @@
1
- <br><br>
2
- <div align="center">
3
-
4
- <p align="center">
5
- <img src="https://raw.githubusercontent.com/master-co/package/document/images/logo-and-text.svg" alt="logo" width="142">
6
- </p>
7
- <p align="center">
8
- <b><!-- name -->CSS Compiler<!----></b>
9
- </p>
10
- <p align="center"><!-- package.description -->Compile Master CSS ahead of time with zero-configuration integration with build tools<!----></p>
11
-
12
- [![MIT License](https://flat.badgen.net/github/license/master-co/css?color=yellow)](https://github.com/master-co/css-compiler/blob/main/LICENSE)
13
- [![Latest Release](https://flat.badgen.net/npm/v/@master/css-compiler?icon=npm&label&color=yellow)](https://www.npmjs.com/package/@master/css-compiler)
14
- [![Documentation](https://flat.badgen.net/badge/icon/Documentation?icon=awesome&label&color=yellow)](https://css.master.co)
15
- [![Github](https://flat.badgen.net/badge/icon/master-co%2Fcss-compiler?icon=github&label&color=yellow)](https://github.com/master-co/css)
16
- [![Discord](https://flat.badgen.net/badge/icon/discord?icon=discord&label&color=yellow)](https://discord.gg/sZNKpAAAw6)
17
- [![CI](https://flat.badgen.net/github/status/master-co/css-compiler/main/ci/circleci?icon=circleci)](https://circleci.com/gh/master-co/workflows/css-compiler/tree/main)
18
-
19
- </div>
20
-
21
- ##### On this page
22
-
23
- - [Usage](#usage)
24
- - [`webpack.config.js`](#webpackconfigjs)
25
- - [`vite.config.js`](#viteconfigjs)
26
- - [`next.config.js`](#nextconfigjs)
27
- - [Related](#related)
28
-
29
- ---
30
-
31
- # Usage
32
-
33
- ## `webpack.config.js`
34
- ```js
35
- const { MasterCSSWebpackPlugin } = require('@master/css-compiler')
36
-
37
- module.exports = {
38
- plugins: [
39
- new MasterCSSWebpackPlugin()
40
- ]
41
- };
42
- ```
43
-
44
- ## `vite.config.js`
45
- ```js
46
- import { MasterCSSVitePlugin } from '@master/css-compiler'
47
-
48
- export default defineConfig({
49
- plugins: [
50
- MasterCSSVitePlugin()
51
- ]
52
- })
53
- ```
54
-
55
- ## `next.config.js`
56
- ```js
57
- const { MasterCSSWebpackPlugin } = require('@master/css-compiler')
58
-
59
- const nextConfig = {
60
- ...,
61
- webpack: (config) => {
62
- config.plugins.push(
63
- new MasterCSSWebpackPlugin({
64
- output: {
65
- path: 'static/css'
66
- }
67
- })
68
- )
69
- return config
70
- }
71
- }
72
-
73
- module.exports = nextConfig
74
- ```
75
-
76
- ---
77
-
78
- # Related
79
- - [@master/css](https://github.com/master-co/css) - A Virtual CSS language with enhanced syntax. ( ~13KB )
80
- - [@master/css.react](https://github.com/master-co/css.react) - React hooks for Master CSS