@master/css-extractor
Advanced tools
Comparing version 2.0.0-beta.206 to 2.0.0-beta.207
@@ -1,1 +0,1 @@ | ||
var W=Object.create;var k=Object.defineProperty;var M=Object.getOwnPropertyDescriptor;var G=Object.getOwnPropertyNames;var j=Object.getPrototypeOf,z=Object.prototype.hasOwnProperty;var L=(s,r,t,e)=>{if(r&&typeof r=="object"||typeof r=="function")for(let i of G(r))!z.call(s,i)&&i!==t&&k(s,i,{get:()=>r[i],enumerable:!(e=M(r,i))||e.enumerable});return s};var p=(s,r,t)=>(t=s!=null?W(j(s)):{},L(r||!s||!s.__esModule?k(t,"default",{value:s,enumerable:!0}):t,s));var N={verbose:1,module:".virtual/master.css",config:"master.css.*",sources:[],include:["**/*.{html,js,jsx,ts,tsx,svelte,astro,vue,md,mdx,pug,php}"],exclude:["**/*.css","**/*.d.ts","**/*.test.*","**/*test.{js,cjs,mjs,ts}","**/*.options.*","**/*master.css.*","**/*master.css-extractor.*","**/*master.css-renderer.*","**/*README.md","**/dist/**","**/out/**","**/styles/**","**/public/**","**/node_modules/webpack*/**","**/node_modules/events/**","**/node_modules/html-entities/**","**/node_modules/ansi-html-community/**","**/node_modules/util/**","**/node_modules/react/**","**/node_modules/react-dom/**","**/node_modules/vue/**","**/node_modules/next/**","**/node_modules/astro/**","**/node_modules/svelte/**","**/node_modules/svelte-hmr/**","**/node_modules/@swc/**","**/node_modules/@sveltejs/**","**/node_modules/@angular/**","**/node_modules/.cache/**","**/node_modules/.vite/**"],classes:{fixed:[],ignored:[]}},S=N;var R=p(require("@master/css"));function C(s){s=D(s);let r=s.match(/\S+/g)??[],t=new Set;for(let e of r){for(let o of _(e))t.add(y(o));let i=O(e);if(i.size)for(let o of i)for(let a of _(o))t.add(y(a))}return Array.from(t).filter(e=>e&&!B(e))}var _=s=>b(s,t=>(t.match(/[^"'`]+/g)??[]).join("SPLIT_BY_THIS")).split("SPLIT_BY_THIS"),y=s=>{let r=s;return s=b(s,t=>t.replace(/^[^:@~(]*(?<!@>?)=/,"").replace(/[([{\\:#=.]+$/,"")),r===s||!s?s:y(s)},F=s=>s?.match(/((?<!\\)["'`])(?:\\\1|(?:(?!\1))[\S\s])*(?<!\\)\1/g),A=(s,r)=>(r?.forEach((t,e)=>{s=s.replace(t,`COMPLETE-STRING--${e}--`)}),s),b=(s,r)=>{let t=F(s);return s=A(s,t),s=r(s),t?.forEach((e,i)=>{s=s.replace(`COMPLETE-STRING--${i}--`,e)}),s},O=s=>{let r=new Set,t=/((?<!\\)["'`])((?:\\\1|(?:(?!\1))[\S\s])*)((?<!\\)\1)/g,e;for(;(e=t.exec(s))!==null;){e.index===t.lastIndex&&t.lastIndex++,r.add(e[2]);let i=O(e[2]);if(i.size)for(let o of i)r.add(o)}return r},D=s=>b(s,r=>r.replace(/\/\*(?:(?!\*\/)[\S\s])*\*\//g,"").replace(/<!--(?:(?!-->)[\S\s])*-->/g,"").replace(/\/\/.*/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,"")),B=s=>{let r=F(s),t=A(s,r),e=/{(.*)}/,i;for(;(i=e.exec(t))!==null;)return i[1].split(";").find(a=>$(a))!==void 0;return $(t)||U(s)},$=s=>!s||!s.match(/(?:\S*\{\S*\})|(?:^[\w\-()]+:\S+)|(?:^[\w-]+\(\S+\))|(?:^[@~]\S+$)|(?:^[\w-]+)/)&&!s.match(/center-content/)&&!s.match(/^(?:calc\(.*\)|\d+(?:%|cm|mm|q|in|pt|pc|px|em|rem|ex|rex|cap|rcap|ch|rch|ic|ric|lh|rlh|vw|svw|lvw|dvw|vh|svh|lvh|dvh|vi|svi|lvi|dvi|vb|svb|lvb|dvb|vmin|svmin|lvmin|dvmin|vmax|svmax|lvmax|dvmax|cqw|cqh|cqi|cqb|cqmin|cqmax|deg|grad|rad|turn|s|ms|hz|khz|dpi|dpcm|dppx|x|fr|db|st)?)x(?:calc\(.*\)|\d+(?:%|cm|mm|q|in|pt|pc|px|em|rem|ex|rex|cap|rcap|ch|rch|ic|ric|lh|rlh|vw|svw|lvw|dvw|vh|svh|lvh|dvh|vi|svi|lvi|dvi|vb|svb|lvb|dvb|vmin|svmin|lvmin|dvmin|vmax|svmax|lvmax|dvmax|cqw|cqh|cqi|cqb|cqmin|cqmax|deg|grad|rad|turn|s|ms|hz|khz|dpi|dpcm|dppx|x|fr|db|st)?)$/)||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(/^\$\(.*/)||s.match(/^COMPLETE-STRING--/),U=s=>{let r=[],t;for(let e=0;e<s.length;e++)switch(s[e]){case"(":case"[":case"{":r.push(s[e]);break;case")":case"]":case"}":if(t=r.pop(),s[e]===")"&&t!=="("||s[e]==="]"&&t!=="["||s[e]==="}"&&t!=="{")return!0;break}return r.length>0};var f=p(require("fs")),v=require("minimatch"),c=p(require("@techor/log")),x=require("@techor/extend"),E=p(require("explore-config")),q=require("@master/css-validator"),T=p(require("chokidar")),I=require("node:events");function P(s){if(typeof CSS<"u")return CSS.escape(s);if(arguments.length==0)throw new TypeError("`CSS.escape` requires an argument.");let r=String(s),t=r.length,e=-1,i="",o,a=r.charCodeAt(0);if(t==1&&a==45)return"\\"+r;for(;++e<t;){if(o=r.charCodeAt(e),o==0){i+="\uFFFD";continue}if(o>=1&&o<=31||o==127||e==0&&o>=48&&o<=57||e==1&&o>=48&&o<=57&&a==45){i+="\\"+o.toString(16)+" ";continue}if(o>=128||o==45||o==95||o>=48&&o<=57||o>=65&&o<=90||o>=97&&o<=122){i+=r.charAt(e);continue}i+="\\"+r.charAt(e)}return i}var m=require("@techor/glob"),d=p(require("path")),w=class extends I.EventEmitter{constructor(t="master.css-extractor.*",e=process.cwd()){super();this.customOptions=t;this.cwd=e}css;latentClasses=new Set;validClasses=new Set;invalidClasses=new Set;options;watching=!1;watchers=[];init(t=this.customOptions){return typeof t=="string"||Array.isArray(t)?this.options=(0,x.extend)(S,(0,E.default)(t,{on:{found:e=>c.default.ok`**${e}** file found`,notFound:()=>c.default.i`No **${t}** file found`},cwd:this.cwd}),t):this.options=(0,x.extend)(S,t),this.options.verbose>1&&(c.default.ok`**options**`,c.default.tree(this.options),c.default``),this.css=new R.default(typeof this.options.config=="object"?this.options.config:(0,E.default)(this.options.config,{cwd:this.cwd})||{}),this.emit("init",this.options,this.config),this}async reset(t=this.customOptions){return this.watching&&await this.disableWatch(),this.latentClasses.clear(),this.validClasses.clear(),this.invalidClasses.clear(),this.init(t),await this.prepare(),this.watching&&await this.initWatch(),this.emit("reset"),this}async destroy(){return this.latentClasses.clear(),this.validClasses.clear(),this.invalidClasses.clear(),this.removeAllListeners(),await this.closeWatch(),this.emit("destroy"),this}async prepare(){if(this.options.classes?.fixed?.length){for(let t of this.options.classes.fixed)this.css.add(t);this.options.verbose&&c.default.ok`${this.options.classes.fixed.length} fixed classes inserted ${this.options.classes.fixed}`}await this.insertFiles(this.fixedSourcePaths)}extract(t,e){if(!t||!e||!this.isSourceAllowed(t))return[];let i=[];for(let o of C(e))this.latentClasses.has(o)||(this.latentClasses.add(o),i.push(o));return i}async insert(t,e){if(!e)return!1;let i=this.extract(t,e);if(!i.length)return!1;this.invalidClasses.size&&(i=i.filter(n=>!this.invalidClasses.has(n))),this.validClasses.size&&(i=i.filter(n=>!this.validClasses.has(n))),this.options.classes?.ignored?.length&&(i=i.filter(n=>{for(let h of this.options.classes.ignored)if(typeof h=="string"){if(h===n)return!1}else if(h.test(n))return!1;return!0}));let o=process.hrtime(),a=[];await Promise.all(i.map(async n=>{let h=(0,q.createValidRules)(n,{css:this.css});h.length?(this.css.insert(h),a.push(n),this.validClasses.add(n)):this.invalidClasses.add(n)})),o=process.hrtime(o);let u=Math.round((o[0]*1e9+o[1])/1e6*10)/10;return this.css.rules.length&&a.length&&(this.options.verbose&&c.default.ok`**${d.default.relative(this.cwd,t)}** ${a.length} classes inserted ${c.chalk.gray("in")} ${u}ms ${this.options.verbose>1?a:""}`,this.emit("change")),!0}insertFile(t){return this.insert(t,f.default.readFileSync(d.default.resolve(this.cwd,t),{encoding:"utf-8"}).toString())}insertFiles(t){return Promise.all(t.map(e=>this.insertFile(e)))}export(t=this.options.module){let e=d.default.resolve(this.cwd,t),i=d.default.dirname(e);f.default.existsSync(i)||f.default.mkdirSync(i,{recursive:!0}),f.default.writeFileSync(e,this.css.text),this.options.verbose&&c.default.success`${this.css.rules.length} rules exported ${c.chalk.gray("in")} **${t}**`,this.emit("export",t,e)}async watchSource(t,e){await this.watch("add change",t,i=>this.insertFile(i),e)}async watch(t,e,i,o){o=(0,x.extend)({ignoreInitial:!0,cwd:this.cwd},o);let a=T.default.watch(e,o);this.watchers.push(a),t.split(" ").forEach(u=>a.on(u,i)),await new Promise(u=>{a.once("ready",u)})}async initWatch(){let t=this.resolvedConfigPath,e=this.resolvedOptionsPath;this.options.sources?.length&&await this.watchSource(this.options.sources),t&&await this.watch("add change unlink",t,async()=>{this.options.verbose&&(c.default``,c.default.t`[change] **${this.configPath}**`),await this.reset(),this.emit("configChange")}),e&&await this.watch("add change unlink",e,async()=>{this.options.verbose&&(c.default``,c.default.t`[change] **${this.customOptions}**`),await this.reset(),this.emit("optionsChange")})}async disableWatch(){this.watchers.length&&(await Promise.all(this.watchers.map(t=>t.removeAllListeners())),this.watchers.length=0)}async startWatch(){this.watching||(await this.initWatch(),this.watching=!0,this.emit("watchStart"))}async closeWatch(){this.watching&&(this.watchers.length&&(await Promise.all(this.watchers.map(t=>t.close())),this.watchers.length=0),this.watching=!1,this.emit("watchClose"))}get fixedSourcePaths(){let{sources:t}=this.options;return t?.length?(0,m.explorePathsSync)(t,{cwd:this.cwd}).filter(e=>!!e):[]}get resolvedFixedSourcePaths(){return this.fixedSourcePaths.map(t=>d.default.resolve(this.cwd,t))}get allowedSourcePaths(){let{include:t,exclude:e}=this.options;return t?.length?(0,m.explorePathsSync)(t,{cwd:this.cwd,ignore:e}).filter(i=>!!i):[]}get resolvedAllowedSourcePaths(){return this.allowedSourcePaths.map(t=>d.default.resolve(this.cwd,t))}isSourceAllowed(t){t.includes("?")&&(t=t.split("?")[0]);let{include:e,exclude:i,sources:o}=this.options;for(let a of o)if((0,v.minimatch)(t,a,{dot:!0}))return!0;for(let a of e)if(!(0,v.minimatch)(t,a,{dot:!0}))return!1;for(let a of i)if((0,v.minimatch)(t,a,{dot:!0}))return!1;return!0}get config(){return this.css.config}get configPath(){if(typeof this.options.config=="string"||Array.isArray(this.options.config))return(0,m.explorePathSync)(this.options.config,{cwd:this.cwd})}get resolvedConfigPath(){let t=this.configPath;if(t)return d.default.resolve(this.cwd,t)}get optionsPath(){if(typeof this.customOptions=="string"||Array.isArray(this.customOptions))return(0,m.explorePathSync)(this.customOptions,{cwd:this.cwd})}get resolvedOptionsPath(){let t=this.optionsPath;if(t)return d.default.resolve(this.cwd,t)}get resolvedVirtualModuleId(){return"\0"+this.options.module}get slotCSSRule(){return"#"+P(this.options.module)+"{--slot:0}"}};var g=p(require("@techor/log"));module.exports=async function(r,t){let{watch:e,output:i,verbose:o,cwd:a,options:u}=t,n=new w(u,a);n.on("init",l=>{r?.length?(l.include=[],l.exclude=[]):(l.exclude.includes("**/node_modules/**")||l.exclude.push("**/node_modules/**"),l.exclude.includes("node_modules")||l.exclude.push("node_modules")),l.output=i,l.verbose=+o||l.verbose}),n.init();let h=async()=>{r?.length?await n.insertFiles(r):await n.insertFiles(n.allowedSourcePaths)};if(e){let l=async()=>{await h(),r?.length||await n.watchSource(n.options.include,{ignored:n.options.exclude})};n.on("watchStart",async()=>{await n.prepare(),await l(),g.default``,g.default.t`Start watching source changes`}).on("reset",async()=>{await l(),g.default``,g.default.t`Restart watching source changes`}).on("change",()=>{n.export()}).on("watchClose",()=>{g.default``,g.default.t`Stop watching source changes`}),await n.startWatch()}else await n.prepare(),await h(),n.export();return n}; | ||
"use strict";var W=Object.create;var k=Object.defineProperty;var M=Object.getOwnPropertyDescriptor;var G=Object.getOwnPropertyNames;var j=Object.getPrototypeOf,z=Object.prototype.hasOwnProperty;var L=(s,n,t,e)=>{if(n&&typeof n=="object"||typeof n=="function")for(let i of G(n))!z.call(s,i)&&i!==t&&k(s,i,{get:()=>n[i],enumerable:!(e=M(n,i))||e.enumerable});return s};var p=(s,n,t)=>(t=s!=null?W(j(s)):{},L(n||!s||!s.__esModule?k(t,"default",{value:s,enumerable:!0}):t,s));var N={verbose:1,module:".virtual/master.css",config:"master.css.*",sources:[],include:["**/*.{html,js,jsx,ts,tsx,svelte,astro,vue,md,mdx,pug,php}"],exclude:["**/*.css","**/*.d.ts","**/*.test.*","**/*test.{js,cjs,mjs,ts}","**/*.options.*","**/*master.css.*","**/*master.css-extractor.*","**/*master.css-renderer.*","**/*README.md","**/dist/**","**/out/**","**/styles/**","**/public/**","**/node_modules/webpack*/**","**/node_modules/events/**","**/node_modules/html-entities/**","**/node_modules/ansi-html-community/**","**/node_modules/util/**","**/node_modules/react/**","**/node_modules/react-dom/**","**/node_modules/vue/**","**/node_modules/next/**","**/node_modules/astro/**","**/node_modules/svelte/**","**/node_modules/svelte-hmr/**","**/node_modules/@swc/**","**/node_modules/@sveltejs/**","**/node_modules/@angular/**","**/node_modules/.cache/**","**/node_modules/.vite/**"],classes:{fixed:[],ignored:[]}},S=N;var R=p(require("@master/css"));function C(s){s=D(s);let n=s.match(/\S+/g)??[],t=new Set;for(let e of n){for(let r of _(e))t.add(y(r));let i=O(e);if(i.size)for(let r of i)for(let a of _(r))t.add(y(a))}return Array.from(t).filter(e=>e&&!B(e))}var _=s=>b(s,t=>(t.match(/[^"'`]+/g)??[]).join("SPLIT_BY_THIS")).split("SPLIT_BY_THIS"),y=s=>{let n=s;return s=b(s,t=>t.replace(/^[^:@~(]*(?<!@>?)=/,"").replace(/[([{\\:#=.]+$/,"")),n===s||!s?s:y(s)},F=s=>s?.match(/((?<!\\)["'`])(?:\\\1|(?:(?!\1))[\S\s])*(?<!\\)\1/g),A=(s,n)=>(n?.forEach((t,e)=>{s=s.replace(t,`COMPLETE-STRING--${e}--`)}),s),b=(s,n)=>{let t=F(s);return s=A(s,t),s=n(s),t?.forEach((e,i)=>{s=s.replace(`COMPLETE-STRING--${i}--`,e)}),s},O=s=>{let n=new Set,t=/((?<!\\)["'`])((?:\\\1|(?:(?!\1))[\S\s])*)((?<!\\)\1)/g,e;for(;(e=t.exec(s))!==null;){e.index===t.lastIndex&&t.lastIndex++,n.add(e[2]);let i=O(e[2]);if(i.size)for(let r of i)n.add(r)}return n},D=s=>b(s,n=>n.replace(/\/\*(?:(?!\*\/)[\S\s])*\*\//g,"").replace(/<!--(?:(?!-->)[\S\s])*-->/g,"").replace(/\/\/.*/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,"")),B=s=>{let n=F(s),t=A(s,n),e=/{(.*)}/,i;for(;(i=e.exec(t))!==null;)return i[1].split(";").find(a=>$(a))!==void 0;return $(t)||U(s)},$=s=>!s||!s.match(/(?:\S*\{\S*\})|(?:^[\w\-()]+:\S+)|(?:^[\w-]+\(\S+\))|(?:^[@~]\S+$)|(?:^[\w-]+)/)&&!s.match(/center-content/)&&!s.match(/^(?:calc\(.*\)|\d+(?:%|cm|mm|q|in|pt|pc|px|em|rem|ex|rex|cap|rcap|ch|rch|ic|ric|lh|rlh|vw|svw|lvw|dvw|vh|svh|lvh|dvh|vi|svi|lvi|dvi|vb|svb|lvb|dvb|vmin|svmin|lvmin|dvmin|vmax|svmax|lvmax|dvmax|cqw|cqh|cqi|cqb|cqmin|cqmax|deg|grad|rad|turn|s|ms|hz|khz|dpi|dpcm|dppx|x|fr|db|st)?)x(?:calc\(.*\)|\d+(?:%|cm|mm|q|in|pt|pc|px|em|rem|ex|rex|cap|rcap|ch|rch|ic|ric|lh|rlh|vw|svw|lvw|dvw|vh|svh|lvh|dvh|vi|svi|lvi|dvi|vb|svb|lvb|dvb|vmin|svmin|lvmin|dvmin|vmax|svmax|lvmax|dvmax|cqw|cqh|cqi|cqb|cqmin|cqmax|deg|grad|rad|turn|s|ms|hz|khz|dpi|dpcm|dppx|x|fr|db|st)?)$/)||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(/^\$\(.*/)||s.match(/^COMPLETE-STRING--/),U=s=>{let n=[],t;for(let e=0;e<s.length;e++)switch(s[e]){case"(":case"[":case"{":n.push(s[e]);break;case")":case"]":case"}":if(t=n.pop(),s[e]===")"&&t!=="("||s[e]==="]"&&t!=="["||s[e]==="}"&&t!=="{")return!0;break}return n.length>0};var m=p(require("fs")),v=require("minimatch"),c=p(require("@techor/log")),x=require("@techor/extend"),E=p(require("explore-config")),q=require("@master/css-validator"),T=p(require("chokidar")),I=require("node:events");function P(s){if(typeof CSS<"u")return CSS.escape(s);if(arguments.length==0)throw new TypeError("`CSS.escape` requires an argument.");let n=String(s),t=n.length,e=-1,i="",r,a=n.charCodeAt(0);if(t==1&&a==45)return"\\"+n;for(;++e<t;){if(r=n.charCodeAt(e),r==0){i+="\uFFFD";continue}if(r>=1&&r<=31||r==127||e==0&&r>=48&&r<=57||e==1&&r>=48&&r<=57&&a==45){i+="\\"+r.toString(16)+" ";continue}if(r>=128||r==45||r==95||r>=48&&r<=57||r>=65&&r<=90||r>=97&&r<=122){i+=n.charAt(e);continue}i+="\\"+n.charAt(e)}return i}var f=require("@techor/glob"),d=p(require("path")),w=class extends I.EventEmitter{constructor(t="master.css-extractor.*",e=process.cwd()){super();this.customOptions=t;this.cwd=e}latentClasses=new Set;validClasses=new Set;invalidClasses=new Set;watching=!1;watchers=[];init(t=this.customOptions){return typeof t=="string"||Array.isArray(t)?this.options=(0,x.extend)(S,(0,E.default)(t,{on:{found:e=>c.default.ok`**${e}** file found`,notFound:()=>c.default.i`No **${t}** file found`},cwd:this.cwd}),t):this.options=(0,x.extend)(S,t),this.options.verbose&&this.options.verbose>1&&(c.default.ok`**options**`,c.default.tree(this.options),c.default``),this.css=new R.default(typeof this.options.config=="object"?this.options.config:(0,E.default)(this.options.config,{cwd:this.cwd})||{}),this.emit("init",this.options,this.config),this}async reset(t=this.customOptions){return this.watching&&await this.disableWatch(),this.latentClasses.clear(),this.validClasses.clear(),this.invalidClasses.clear(),this.init(t),await this.prepare(),this.watching&&await this.initWatch(),this.emit("reset"),this}async destroy(){return this.latentClasses.clear(),this.validClasses.clear(),this.invalidClasses.clear(),this.removeAllListeners(),await this.closeWatch(),this.emit("destroy"),this}async prepare(){if(this.options.classes?.fixed?.length){for(let t of this.options.classes.fixed)this.css.add(t);this.options.verbose&&c.default.ok`${this.options.classes.fixed.length} fixed classes inserted ${this.options.classes.fixed}`}await this.insertFiles(this.fixedSourcePaths)}extract(t,e){if(!t||!e||!this.isSourceAllowed(t))return[];let i=[];for(let r of C(e))this.latentClasses.has(r)||(this.latentClasses.add(r),i.push(r));return i}async insert(t,e){if(!e)return!1;let i=this.extract(t,e);if(!i.length)return!1;this.invalidClasses.size&&(i=i.filter(o=>!this.invalidClasses.has(o))),this.validClasses.size&&(i=i.filter(o=>!this.validClasses.has(o))),this.options.classes?.ignored?.length&&(i=i.filter(o=>{if(this.options.classes?.ignored){for(let h of this.options.classes.ignored)if(typeof h=="string"){if(h===o)return!1}else if(h.test(o))return!1}return!0}));let r=process.hrtime(),a=[];await Promise.all(i.map(async o=>{let h=(0,q.createValidRules)(o,{css:this.css});h.length?(this.css.insert(h),a.push(o),this.validClasses.add(o)):this.invalidClasses.add(o)})),r=process.hrtime(r);let u=Math.round((r[0]*1e9+r[1])/1e6*10)/10;return this.css.rules.length&&a.length&&(this.options.verbose&&c.default.ok`**${d.default.relative(this.cwd,t)}** ${a.length} classes inserted ${c.chalk.gray("in")} ${u}ms ${this.options.verbose>1?a:""}`,this.emit("change")),!0}insertFile(t){return this.insert(t,m.default.readFileSync(d.default.resolve(this.cwd,t),{encoding:"utf-8"}).toString())}insertFiles(t){return Promise.all(t.map(e=>this.insertFile(e)))}export(t=this.options.module){let e=d.default.resolve(this.cwd,t),i=d.default.dirname(e);m.default.existsSync(i)||m.default.mkdirSync(i,{recursive:!0}),m.default.writeFileSync(e,this.css.text),this.options.verbose&&c.default.success`${this.css.rules.length} rules exported ${c.chalk.gray("in")} **${t}**`,this.emit("export",t,e)}async watchSource(t,e){await this.watch("add change",t,i=>this.insertFile(i),e)}async watch(t,e,i,r){r=(0,x.extend)({ignoreInitial:!0,cwd:this.cwd},r);let a=T.default.watch(e,r);this.watchers.push(a),t.split(" ").forEach(u=>a.on(u,i)),await new Promise(u=>{a.once("ready",u)})}async initWatch(){let t=this.resolvedConfigPath,e=this.resolvedOptionsPath;this.options.sources?.length&&await this.watchSource(this.options.sources),t&&await this.watch("add change unlink",t,async()=>{this.options.verbose&&(c.default``,c.default.t`[change] **${this.configPath}**`),await this.reset(),this.emit("configChange")}),e&&await this.watch("add change unlink",e,async()=>{this.options.verbose&&(c.default``,c.default.t`[change] **${this.customOptions}**`),await this.reset(),this.emit("optionsChange")})}async disableWatch(){this.watchers.length&&(await Promise.all(this.watchers.map(t=>t.removeAllListeners())),this.watchers.length=0)}async startWatch(){this.watching||(await this.initWatch(),this.watching=!0,this.emit("watchStart"))}async closeWatch(){this.watching&&(this.watchers.length&&(await Promise.all(this.watchers.map(t=>t.close())),this.watchers.length=0),this.watching=!1,this.emit("watchClose"))}get fixedSourcePaths(){let{sources:t}=this.options;return t?.length?(0,f.explorePathsSync)(t,{cwd:this.cwd}).filter(e=>!!e):[]}get resolvedFixedSourcePaths(){return this.fixedSourcePaths.map(t=>d.default.resolve(this.cwd,t))}get allowedSourcePaths(){let{include:t,exclude:e}=this.options;return t?.length?(0,f.explorePathsSync)(t,{cwd:this.cwd,ignore:e}).filter(i=>!!i):[]}get resolvedAllowedSourcePaths(){return this.allowedSourcePaths.map(t=>d.default.resolve(this.cwd,t))}isSourceAllowed(t){t.includes("?")&&(t=t.split("?")[0]);let{include:e,exclude:i,sources:r}=this.options;if(r){for(let a of r)if((0,v.minimatch)(t,a,{dot:!0}))return!0}if(e){for(let a of e)if(!(0,v.minimatch)(t,a,{dot:!0}))return!1}if(i){for(let a of i)if((0,v.minimatch)(t,a,{dot:!0}))return!1}return!0}get config(){return this.css.config}get configPath(){if(typeof this.options.config=="string"||Array.isArray(this.options.config))return(0,f.explorePathSync)(this.options.config,{cwd:this.cwd})}get resolvedConfigPath(){let t=this.configPath;if(t)return d.default.resolve(this.cwd,t)}get optionsPath(){if(typeof this.customOptions=="string"||Array.isArray(this.customOptions))return(0,f.explorePathSync)(this.customOptions,{cwd:this.cwd})}get resolvedOptionsPath(){let t=this.optionsPath;if(t)return d.default.resolve(this.cwd,t)}get resolvedVirtualModuleId(){return"\0"+this.options.module}get slotCSSRule(){return"#"+P(this.options.module)+"{--slot:0}"}};var g=p(require("@techor/log"));module.exports=async function(n,t){let{watch:e,output:i,verbose:r,cwd:a,options:u}=t||{},o=new w(u,a);o.on("init",l=>{n?.length?(l.include=[],l.exclude=[]):(l.exclude?.includes("**/node_modules/**")||l.exclude?.push("**/node_modules/**"),l.exclude?.includes("node_modules")||l.exclude?.push("node_modules")),l.output=i,l.verbose=+(r||0)||l.verbose}),o.init();let h=async()=>{n?.length?await o.insertFiles(n):await o.insertFiles(o.allowedSourcePaths)};if(e){let l=async()=>{await h(),!n?.length&&o.options.include&&await o.watchSource(o.options.include,{ignored:o.options.exclude})};o.on("watchStart",async()=>{await o.prepare(),await l(),g.default``,g.default.t`Start watching source changes`}).on("reset",async()=>{await l(),g.default``,g.default.t`Restart watching source changes`}).on("change",()=>{o.export()}).on("watchClose",()=>{g.default``,g.default.t`Stop watching source changes`}),await o.startWatch()}else await o.prepare(),await h(),o.export();return o}; |
@@ -12,7 +12,5 @@ /// <reference types="node" /> | ||
cwd: string; | ||
css: MasterCSS; | ||
latentClasses: Set<string>; | ||
validClasses: Set<string>; | ||
invalidClasses: Set<string>; | ||
options: Options; | ||
watching: boolean; | ||
@@ -72,17 +70,21 @@ watchers: chokidar.FSWatcher[]; | ||
*/ | ||
get configPath(): string; | ||
get configPath(): string | undefined; | ||
/** | ||
* computed from string `options.config` | ||
*/ | ||
get resolvedConfigPath(): string; | ||
get resolvedConfigPath(): string | undefined; | ||
/** | ||
* computed from string `customOptions` | ||
*/ | ||
get optionsPath(): string; | ||
get optionsPath(): string | undefined; | ||
/** | ||
* computed from string `customOptions` | ||
*/ | ||
get resolvedOptionsPath(): string; | ||
get resolvedOptionsPath(): string | undefined; | ||
get resolvedVirtualModuleId(): string; | ||
get slotCSSRule(): string; | ||
} | ||
export default interface CSSExtractor { | ||
css: MasterCSS; | ||
options: Options; | ||
} |
@@ -1,2 +0,2 @@ | ||
var q=Object.create;var v=Object.defineProperty;var M=Object.getOwnPropertyDescriptor;var W=Object.getOwnPropertyNames;var G=Object.getPrototypeOf,L=Object.prototype.hasOwnProperty;var j=(t,r)=>{for(var s in r)v(t,s,{get:r[s],enumerable:!0})},E=(t,r,s,e)=>{if(r&&typeof r=="object"||typeof r=="function")for(let i of W(r))!L.call(t,i)&&i!==s&&v(t,i,{get:()=>r[i],enumerable:!(e=M(r,i))||e.enumerable});return t};var d=(t,r,s)=>(s=t!=null?q(G(t)):{},E(r||!t||!t.__esModule?v(s,"default",{value:t,enumerable:!0}):s,t)),z=t=>E(v({},"__esModule",{value:!0}),t);var X={};j(X,{CSSExtractor:()=>f,OPTIONS_ESM_TEXT:()=>B,OPTIONS_TEXT:()=>D,default:()=>f,extractLatentClasses:()=>g,options:()=>u});module.exports=z(X);var N={verbose:1,module:".virtual/master.css",config:"master.css.*",sources:[],include:["**/*.{html,js,jsx,ts,tsx,svelte,astro,vue,md,mdx,pug,php}"],exclude:["**/*.css","**/*.d.ts","**/*.test.*","**/*test.{js,cjs,mjs,ts}","**/*.options.*","**/*master.css.*","**/*master.css-extractor.*","**/*master.css-renderer.*","**/*README.md","**/dist/**","**/out/**","**/styles/**","**/public/**","**/node_modules/webpack*/**","**/node_modules/events/**","**/node_modules/html-entities/**","**/node_modules/ansi-html-community/**","**/node_modules/util/**","**/node_modules/react/**","**/node_modules/react-dom/**","**/node_modules/vue/**","**/node_modules/next/**","**/node_modules/astro/**","**/node_modules/svelte/**","**/node_modules/svelte-hmr/**","**/node_modules/@swc/**","**/node_modules/@sveltejs/**","**/node_modules/@angular/**","**/node_modules/.cache/**","**/node_modules/.vite/**"],classes:{fixed:[],ignored:[]}},u=N;var D=`/** @type {import('@master/css-extractor').Options} */ | ||
"use strict";var q=Object.create;var v=Object.defineProperty;var M=Object.getOwnPropertyDescriptor;var W=Object.getOwnPropertyNames;var G=Object.getPrototypeOf,L=Object.prototype.hasOwnProperty;var j=(t,o)=>{for(var s in o)v(t,s,{get:o[s],enumerable:!0})},E=(t,o,s,e)=>{if(o&&typeof o=="object"||typeof o=="function")for(let i of W(o))!L.call(t,i)&&i!==s&&v(t,i,{get:()=>o[i],enumerable:!(e=M(o,i))||e.enumerable});return t};var d=(t,o,s)=>(s=t!=null?q(G(t)):{},E(o||!t||!t.__esModule?v(s,"default",{value:t,enumerable:!0}):s,t)),z=t=>E(v({},"__esModule",{value:!0}),t);var X={};j(X,{CSSExtractor:()=>f,OPTIONS_ESM_TEXT:()=>B,OPTIONS_TEXT:()=>D,default:()=>f,extractLatentClasses:()=>m,options:()=>g});module.exports=z(X);var N={verbose:1,module:".virtual/master.css",config:"master.css.*",sources:[],include:["**/*.{html,js,jsx,ts,tsx,svelte,astro,vue,md,mdx,pug,php}"],exclude:["**/*.css","**/*.d.ts","**/*.test.*","**/*test.{js,cjs,mjs,ts}","**/*.options.*","**/*master.css.*","**/*master.css-extractor.*","**/*master.css-renderer.*","**/*README.md","**/dist/**","**/out/**","**/styles/**","**/public/**","**/node_modules/webpack*/**","**/node_modules/events/**","**/node_modules/html-entities/**","**/node_modules/ansi-html-community/**","**/node_modules/util/**","**/node_modules/react/**","**/node_modules/react-dom/**","**/node_modules/vue/**","**/node_modules/next/**","**/node_modules/astro/**","**/node_modules/svelte/**","**/node_modules/svelte-hmr/**","**/node_modules/@swc/**","**/node_modules/@sveltejs/**","**/node_modules/@angular/**","**/node_modules/.cache/**","**/node_modules/.vite/**"],classes:{fixed:[],ignored:[]}},g=N;var D=`/** @type {import('@master/css-extractor').Options} */ | ||
module.exports = { | ||
@@ -17,2 +17,2 @@ sources: [], | ||
} | ||
`;var F=d(require("@master/css"));function g(t){t=U(t);let r=t.match(/\S+/g)??[],s=new Set;for(let e of r){for(let o of k(e))s.add(C(o));let i=T(e);if(i.size)for(let o of i)for(let n of k(o))s.add(C(n))}return Array.from(s).filter(e=>e&&!H(e))}var k=t=>y(t,s=>(s.match(/[^"'`]+/g)??[]).join("SPLIT_BY_THIS")).split("SPLIT_BY_THIS"),C=t=>{let r=t;return t=y(t,s=>s.replace(/^[^:@~(]*(?<!@>?)=/,"").replace(/[([{\\:#=.]+$/,"")),r===t||!t?t:C(t)},$=t=>t?.match(/((?<!\\)["'`])(?:\\\1|(?:(?!\1))[\S\s])*(?<!\\)\1/g),A=(t,r)=>(r?.forEach((s,e)=>{t=t.replace(s,`COMPLETE-STRING--${e}--`)}),t),y=(t,r)=>{let s=$(t);return t=A(t,s),t=r(t),s?.forEach((e,i)=>{t=t.replace(`COMPLETE-STRING--${i}--`,e)}),t},T=t=>{let r=new Set,s=/((?<!\\)["'`])((?:\\\1|(?:(?!\1))[\S\s])*)((?<!\\)\1)/g,e;for(;(e=s.exec(t))!==null;){e.index===s.lastIndex&&s.lastIndex++,r.add(e[2]);let i=T(e[2]);if(i.size)for(let o of i)r.add(o)}return r},U=t=>y(t,r=>r.replace(/\/\*(?:(?!\*\/)[\S\s])*\*\//g,"").replace(/<!--(?:(?!-->)[\S\s])*-->/g,"").replace(/\/\/.*/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,"")),H=t=>{let r=$(t),s=A(t,r),e=/{(.*)}/,i;for(;(i=e.exec(s))!==null;)return i[1].split(";").find(n=>_(n))!==void 0;return _(s)||V(t)},_=t=>!t||!t.match(/(?:\S*\{\S*\})|(?:^[\w\-()]+:\S+)|(?:^[\w-]+\(\S+\))|(?:^[@~]\S+$)|(?:^[\w-]+)/)&&!t.match(/center-content/)&&!t.match(/^(?:calc\(.*\)|\d+(?:%|cm|mm|q|in|pt|pc|px|em|rem|ex|rex|cap|rcap|ch|rch|ic|ric|lh|rlh|vw|svw|lvw|dvw|vh|svh|lvh|dvh|vi|svi|lvi|dvi|vb|svb|lvb|dvb|vmin|svmin|lvmin|dvmin|vmax|svmax|lvmax|dvmax|cqw|cqh|cqi|cqb|cqmin|cqmax|deg|grad|rad|turn|s|ms|hz|khz|dpi|dpcm|dppx|x|fr|db|st)?)x(?:calc\(.*\)|\d+(?:%|cm|mm|q|in|pt|pc|px|em|rem|ex|rex|cap|rcap|ch|rch|ic|ric|lh|rlh|vw|svw|lvw|dvw|vh|svh|lvh|dvh|vi|svi|lvi|dvi|vb|svb|lvb|dvb|vmin|svmin|lvmin|dvmin|vmax|svmax|lvmax|dvmax|cqw|cqh|cqi|cqb|cqmin|cqmax|deg|grad|rad|turn|s|ms|hz|khz|dpi|dpcm|dppx|x|fr|db|st)?)$/)||t.match(/\*\*/)||t.match(/:\[/)||t.match(/\$\{/)||t.match(/\{\{/)||t.match(/\(\{[^}]*\}/)||t.match(/<\w+>|<\/\w+>/)||t.match(/;$/)||t.match(/^\w+:\/\//)||t.match(/^@(?:ts-[^\s]+|charset|import|namespace|media|supports|document|page|font-face|keyframes|counter-style|font-feature-values|property|layer|[^/]+\/.*)$/)||t.match(/^~\/.+.\w+$/)||t.match(/function\(|\(.*\)=>/)||t.match(/^\$\(.*/)||t.match(/^COMPLETE-STRING--/),V=t=>{let r=[],s;for(let e=0;e<t.length;e++)switch(t[e]){case"(":case"[":case"{":r.push(t[e]);break;case")":case"]":case"}":if(s=r.pop(),t[e]===")"&&s!=="("||t[e]==="]"&&s!=="["||t[e]==="}"&&s!=="{")return!0;break}return r.length>0};var x=d(require("fs")),w=require("minimatch"),a=d(require("@techor/log")),S=require("@techor/extend"),b=d(require("explore-config")),O=require("@master/css-validator"),R=d(require("chokidar")),I=require("node:events");function P(t){if(typeof CSS<"u")return CSS.escape(t);if(arguments.length==0)throw new TypeError("`CSS.escape` requires an argument.");let r=String(t),s=r.length,e=-1,i="",o,n=r.charCodeAt(0);if(s==1&&n==45)return"\\"+r;for(;++e<s;){if(o=r.charCodeAt(e),o==0){i+="\uFFFD";continue}if(o>=1&&o<=31||o==127||e==0&&o>=48&&o<=57||e==1&&o>=48&&o<=57&&n==45){i+="\\"+o.toString(16)+" ";continue}if(o>=128||o==45||o==95||o>=48&&o<=57||o>=65&&o<=90||o>=97&&o<=122){i+=r.charAt(e);continue}i+="\\"+r.charAt(e)}return i}var p=require("@techor/glob"),l=d(require("path")),f=class extends I.EventEmitter{constructor(s="master.css-extractor.*",e=process.cwd()){super();this.customOptions=s;this.cwd=e}css;latentClasses=new Set;validClasses=new Set;invalidClasses=new Set;options;watching=!1;watchers=[];init(s=this.customOptions){return typeof s=="string"||Array.isArray(s)?this.options=(0,S.extend)(u,(0,b.default)(s,{on:{found:e=>a.default.ok`**${e}** file found`,notFound:()=>a.default.i`No **${s}** file found`},cwd:this.cwd}),s):this.options=(0,S.extend)(u,s),this.options.verbose>1&&(a.default.ok`**options**`,a.default.tree(this.options),a.default``),this.css=new F.default(typeof this.options.config=="object"?this.options.config:(0,b.default)(this.options.config,{cwd:this.cwd})||{}),this.emit("init",this.options,this.config),this}async reset(s=this.customOptions){return this.watching&&await this.disableWatch(),this.latentClasses.clear(),this.validClasses.clear(),this.invalidClasses.clear(),this.init(s),await this.prepare(),this.watching&&await this.initWatch(),this.emit("reset"),this}async destroy(){return this.latentClasses.clear(),this.validClasses.clear(),this.invalidClasses.clear(),this.removeAllListeners(),await this.closeWatch(),this.emit("destroy"),this}async prepare(){if(this.options.classes?.fixed?.length){for(let s of this.options.classes.fixed)this.css.add(s);this.options.verbose&&a.default.ok`${this.options.classes.fixed.length} fixed classes inserted ${this.options.classes.fixed}`}await this.insertFiles(this.fixedSourcePaths)}extract(s,e){if(!s||!e||!this.isSourceAllowed(s))return[];let i=[];for(let o of g(e))this.latentClasses.has(o)||(this.latentClasses.add(o),i.push(o));return i}async insert(s,e){if(!e)return!1;let i=this.extract(s,e);if(!i.length)return!1;this.invalidClasses.size&&(i=i.filter(c=>!this.invalidClasses.has(c))),this.validClasses.size&&(i=i.filter(c=>!this.validClasses.has(c))),this.options.classes?.ignored?.length&&(i=i.filter(c=>{for(let h of this.options.classes.ignored)if(typeof h=="string"){if(h===c)return!1}else if(h.test(c))return!1;return!0}));let o=process.hrtime(),n=[];await Promise.all(i.map(async c=>{let h=(0,O.createValidRules)(c,{css:this.css});h.length?(this.css.insert(h),n.push(c),this.validClasses.add(c)):this.invalidClasses.add(c)})),o=process.hrtime(o);let m=Math.round((o[0]*1e9+o[1])/1e6*10)/10;return this.css.rules.length&&n.length&&(this.options.verbose&&a.default.ok`**${l.default.relative(this.cwd,s)}** ${n.length} classes inserted ${a.chalk.gray("in")} ${m}ms ${this.options.verbose>1?n:""}`,this.emit("change")),!0}insertFile(s){return this.insert(s,x.default.readFileSync(l.default.resolve(this.cwd,s),{encoding:"utf-8"}).toString())}insertFiles(s){return Promise.all(s.map(e=>this.insertFile(e)))}export(s=this.options.module){let e=l.default.resolve(this.cwd,s),i=l.default.dirname(e);x.default.existsSync(i)||x.default.mkdirSync(i,{recursive:!0}),x.default.writeFileSync(e,this.css.text),this.options.verbose&&a.default.success`${this.css.rules.length} rules exported ${a.chalk.gray("in")} **${s}**`,this.emit("export",s,e)}async watchSource(s,e){await this.watch("add change",s,i=>this.insertFile(i),e)}async watch(s,e,i,o){o=(0,S.extend)({ignoreInitial:!0,cwd:this.cwd},o);let n=R.default.watch(e,o);this.watchers.push(n),s.split(" ").forEach(m=>n.on(m,i)),await new Promise(m=>{n.once("ready",m)})}async initWatch(){let s=this.resolvedConfigPath,e=this.resolvedOptionsPath;this.options.sources?.length&&await this.watchSource(this.options.sources),s&&await this.watch("add change unlink",s,async()=>{this.options.verbose&&(a.default``,a.default.t`[change] **${this.configPath}**`),await this.reset(),this.emit("configChange")}),e&&await this.watch("add change unlink",e,async()=>{this.options.verbose&&(a.default``,a.default.t`[change] **${this.customOptions}**`),await this.reset(),this.emit("optionsChange")})}async disableWatch(){this.watchers.length&&(await Promise.all(this.watchers.map(s=>s.removeAllListeners())),this.watchers.length=0)}async startWatch(){this.watching||(await this.initWatch(),this.watching=!0,this.emit("watchStart"))}async closeWatch(){this.watching&&(this.watchers.length&&(await Promise.all(this.watchers.map(s=>s.close())),this.watchers.length=0),this.watching=!1,this.emit("watchClose"))}get fixedSourcePaths(){let{sources:s}=this.options;return s?.length?(0,p.explorePathsSync)(s,{cwd:this.cwd}).filter(e=>!!e):[]}get resolvedFixedSourcePaths(){return this.fixedSourcePaths.map(s=>l.default.resolve(this.cwd,s))}get allowedSourcePaths(){let{include:s,exclude:e}=this.options;return s?.length?(0,p.explorePathsSync)(s,{cwd:this.cwd,ignore:e}).filter(i=>!!i):[]}get resolvedAllowedSourcePaths(){return this.allowedSourcePaths.map(s=>l.default.resolve(this.cwd,s))}isSourceAllowed(s){s.includes("?")&&(s=s.split("?")[0]);let{include:e,exclude:i,sources:o}=this.options;for(let n of o)if((0,w.minimatch)(s,n,{dot:!0}))return!0;for(let n of e)if(!(0,w.minimatch)(s,n,{dot:!0}))return!1;for(let n of i)if((0,w.minimatch)(s,n,{dot:!0}))return!1;return!0}get config(){return this.css.config}get configPath(){if(typeof this.options.config=="string"||Array.isArray(this.options.config))return(0,p.explorePathSync)(this.options.config,{cwd:this.cwd})}get resolvedConfigPath(){let s=this.configPath;if(s)return l.default.resolve(this.cwd,s)}get optionsPath(){if(typeof this.customOptions=="string"||Array.isArray(this.customOptions))return(0,p.explorePathSync)(this.customOptions,{cwd:this.cwd})}get resolvedOptionsPath(){let s=this.optionsPath;if(s)return l.default.resolve(this.cwd,s)}get resolvedVirtualModuleId(){return"\0"+this.options.module}get slotCSSRule(){return"#"+P(this.options.module)+"{--slot:0}"}};0&&(module.exports={CSSExtractor,OPTIONS_ESM_TEXT,OPTIONS_TEXT,extractLatentClasses,options}); | ||
`;var F=d(require("@master/css"));function m(t){t=U(t);let o=t.match(/\S+/g)??[],s=new Set;for(let e of o){for(let r of k(e))s.add(C(r));let i=T(e);if(i.size)for(let r of i)for(let n of k(r))s.add(C(n))}return Array.from(s).filter(e=>e&&!H(e))}var k=t=>y(t,s=>(s.match(/[^"'`]+/g)??[]).join("SPLIT_BY_THIS")).split("SPLIT_BY_THIS"),C=t=>{let o=t;return t=y(t,s=>s.replace(/^[^:@~(]*(?<!@>?)=/,"").replace(/[([{\\:#=.]+$/,"")),o===t||!t?t:C(t)},$=t=>t?.match(/((?<!\\)["'`])(?:\\\1|(?:(?!\1))[\S\s])*(?<!\\)\1/g),A=(t,o)=>(o?.forEach((s,e)=>{t=t.replace(s,`COMPLETE-STRING--${e}--`)}),t),y=(t,o)=>{let s=$(t);return t=A(t,s),t=o(t),s?.forEach((e,i)=>{t=t.replace(`COMPLETE-STRING--${i}--`,e)}),t},T=t=>{let o=new Set,s=/((?<!\\)["'`])((?:\\\1|(?:(?!\1))[\S\s])*)((?<!\\)\1)/g,e;for(;(e=s.exec(t))!==null;){e.index===s.lastIndex&&s.lastIndex++,o.add(e[2]);let i=T(e[2]);if(i.size)for(let r of i)o.add(r)}return o},U=t=>y(t,o=>o.replace(/\/\*(?:(?!\*\/)[\S\s])*\*\//g,"").replace(/<!--(?:(?!-->)[\S\s])*-->/g,"").replace(/\/\/.*/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,"")),H=t=>{let o=$(t),s=A(t,o),e=/{(.*)}/,i;for(;(i=e.exec(s))!==null;)return i[1].split(";").find(n=>_(n))!==void 0;return _(s)||V(t)},_=t=>!t||!t.match(/(?:\S*\{\S*\})|(?:^[\w\-()]+:\S+)|(?:^[\w-]+\(\S+\))|(?:^[@~]\S+$)|(?:^[\w-]+)/)&&!t.match(/center-content/)&&!t.match(/^(?:calc\(.*\)|\d+(?:%|cm|mm|q|in|pt|pc|px|em|rem|ex|rex|cap|rcap|ch|rch|ic|ric|lh|rlh|vw|svw|lvw|dvw|vh|svh|lvh|dvh|vi|svi|lvi|dvi|vb|svb|lvb|dvb|vmin|svmin|lvmin|dvmin|vmax|svmax|lvmax|dvmax|cqw|cqh|cqi|cqb|cqmin|cqmax|deg|grad|rad|turn|s|ms|hz|khz|dpi|dpcm|dppx|x|fr|db|st)?)x(?:calc\(.*\)|\d+(?:%|cm|mm|q|in|pt|pc|px|em|rem|ex|rex|cap|rcap|ch|rch|ic|ric|lh|rlh|vw|svw|lvw|dvw|vh|svh|lvh|dvh|vi|svi|lvi|dvi|vb|svb|lvb|dvb|vmin|svmin|lvmin|dvmin|vmax|svmax|lvmax|dvmax|cqw|cqh|cqi|cqb|cqmin|cqmax|deg|grad|rad|turn|s|ms|hz|khz|dpi|dpcm|dppx|x|fr|db|st)?)$/)||t.match(/\*\*/)||t.match(/:\[/)||t.match(/\$\{/)||t.match(/\{\{/)||t.match(/\(\{[^}]*\}/)||t.match(/<\w+>|<\/\w+>/)||t.match(/;$/)||t.match(/^\w+:\/\//)||t.match(/^@(?:ts-[^\s]+|charset|import|namespace|media|supports|document|page|font-face|keyframes|counter-style|font-feature-values|property|layer|[^/]+\/.*)$/)||t.match(/^~\/.+.\w+$/)||t.match(/function\(|\(.*\)=>/)||t.match(/^\$\(.*/)||t.match(/^COMPLETE-STRING--/),V=t=>{let o=[],s;for(let e=0;e<t.length;e++)switch(t[e]){case"(":case"[":case"{":o.push(t[e]);break;case")":case"]":case"}":if(s=o.pop(),t[e]===")"&&s!=="("||t[e]==="]"&&s!=="["||t[e]==="}"&&s!=="{")return!0;break}return o.length>0};var x=d(require("fs")),w=require("minimatch"),a=d(require("@techor/log")),S=require("@techor/extend"),b=d(require("explore-config")),O=require("@master/css-validator"),R=d(require("chokidar")),I=require("node:events");function P(t){if(typeof CSS<"u")return CSS.escape(t);if(arguments.length==0)throw new TypeError("`CSS.escape` requires an argument.");let o=String(t),s=o.length,e=-1,i="",r,n=o.charCodeAt(0);if(s==1&&n==45)return"\\"+o;for(;++e<s;){if(r=o.charCodeAt(e),r==0){i+="\uFFFD";continue}if(r>=1&&r<=31||r==127||e==0&&r>=48&&r<=57||e==1&&r>=48&&r<=57&&n==45){i+="\\"+r.toString(16)+" ";continue}if(r>=128||r==45||r==95||r>=48&&r<=57||r>=65&&r<=90||r>=97&&r<=122){i+=o.charAt(e);continue}i+="\\"+o.charAt(e)}return i}var p=require("@techor/glob"),l=d(require("path")),f=class extends I.EventEmitter{constructor(s="master.css-extractor.*",e=process.cwd()){super();this.customOptions=s;this.cwd=e}latentClasses=new Set;validClasses=new Set;invalidClasses=new Set;watching=!1;watchers=[];init(s=this.customOptions){return typeof s=="string"||Array.isArray(s)?this.options=(0,S.extend)(g,(0,b.default)(s,{on:{found:e=>a.default.ok`**${e}** file found`,notFound:()=>a.default.i`No **${s}** file found`},cwd:this.cwd}),s):this.options=(0,S.extend)(g,s),this.options.verbose&&this.options.verbose>1&&(a.default.ok`**options**`,a.default.tree(this.options),a.default``),this.css=new F.default(typeof this.options.config=="object"?this.options.config:(0,b.default)(this.options.config,{cwd:this.cwd})||{}),this.emit("init",this.options,this.config),this}async reset(s=this.customOptions){return this.watching&&await this.disableWatch(),this.latentClasses.clear(),this.validClasses.clear(),this.invalidClasses.clear(),this.init(s),await this.prepare(),this.watching&&await this.initWatch(),this.emit("reset"),this}async destroy(){return this.latentClasses.clear(),this.validClasses.clear(),this.invalidClasses.clear(),this.removeAllListeners(),await this.closeWatch(),this.emit("destroy"),this}async prepare(){if(this.options.classes?.fixed?.length){for(let s of this.options.classes.fixed)this.css.add(s);this.options.verbose&&a.default.ok`${this.options.classes.fixed.length} fixed classes inserted ${this.options.classes.fixed}`}await this.insertFiles(this.fixedSourcePaths)}extract(s,e){if(!s||!e||!this.isSourceAllowed(s))return[];let i=[];for(let r of m(e))this.latentClasses.has(r)||(this.latentClasses.add(r),i.push(r));return i}async insert(s,e){if(!e)return!1;let i=this.extract(s,e);if(!i.length)return!1;this.invalidClasses.size&&(i=i.filter(c=>!this.invalidClasses.has(c))),this.validClasses.size&&(i=i.filter(c=>!this.validClasses.has(c))),this.options.classes?.ignored?.length&&(i=i.filter(c=>{if(this.options.classes?.ignored){for(let h of this.options.classes.ignored)if(typeof h=="string"){if(h===c)return!1}else if(h.test(c))return!1}return!0}));let r=process.hrtime(),n=[];await Promise.all(i.map(async c=>{let h=(0,O.createValidRules)(c,{css:this.css});h.length?(this.css.insert(h),n.push(c),this.validClasses.add(c)):this.invalidClasses.add(c)})),r=process.hrtime(r);let u=Math.round((r[0]*1e9+r[1])/1e6*10)/10;return this.css.rules.length&&n.length&&(this.options.verbose&&a.default.ok`**${l.default.relative(this.cwd,s)}** ${n.length} classes inserted ${a.chalk.gray("in")} ${u}ms ${this.options.verbose>1?n:""}`,this.emit("change")),!0}insertFile(s){return this.insert(s,x.default.readFileSync(l.default.resolve(this.cwd,s),{encoding:"utf-8"}).toString())}insertFiles(s){return Promise.all(s.map(e=>this.insertFile(e)))}export(s=this.options.module){let e=l.default.resolve(this.cwd,s),i=l.default.dirname(e);x.default.existsSync(i)||x.default.mkdirSync(i,{recursive:!0}),x.default.writeFileSync(e,this.css.text),this.options.verbose&&a.default.success`${this.css.rules.length} rules exported ${a.chalk.gray("in")} **${s}**`,this.emit("export",s,e)}async watchSource(s,e){await this.watch("add change",s,i=>this.insertFile(i),e)}async watch(s,e,i,r){r=(0,S.extend)({ignoreInitial:!0,cwd:this.cwd},r);let n=R.default.watch(e,r);this.watchers.push(n),s.split(" ").forEach(u=>n.on(u,i)),await new Promise(u=>{n.once("ready",u)})}async initWatch(){let s=this.resolvedConfigPath,e=this.resolvedOptionsPath;this.options.sources?.length&&await this.watchSource(this.options.sources),s&&await this.watch("add change unlink",s,async()=>{this.options.verbose&&(a.default``,a.default.t`[change] **${this.configPath}**`),await this.reset(),this.emit("configChange")}),e&&await this.watch("add change unlink",e,async()=>{this.options.verbose&&(a.default``,a.default.t`[change] **${this.customOptions}**`),await this.reset(),this.emit("optionsChange")})}async disableWatch(){this.watchers.length&&(await Promise.all(this.watchers.map(s=>s.removeAllListeners())),this.watchers.length=0)}async startWatch(){this.watching||(await this.initWatch(),this.watching=!0,this.emit("watchStart"))}async closeWatch(){this.watching&&(this.watchers.length&&(await Promise.all(this.watchers.map(s=>s.close())),this.watchers.length=0),this.watching=!1,this.emit("watchClose"))}get fixedSourcePaths(){let{sources:s}=this.options;return s?.length?(0,p.explorePathsSync)(s,{cwd:this.cwd}).filter(e=>!!e):[]}get resolvedFixedSourcePaths(){return this.fixedSourcePaths.map(s=>l.default.resolve(this.cwd,s))}get allowedSourcePaths(){let{include:s,exclude:e}=this.options;return s?.length?(0,p.explorePathsSync)(s,{cwd:this.cwd,ignore:e}).filter(i=>!!i):[]}get resolvedAllowedSourcePaths(){return this.allowedSourcePaths.map(s=>l.default.resolve(this.cwd,s))}isSourceAllowed(s){s.includes("?")&&(s=s.split("?")[0]);let{include:e,exclude:i,sources:r}=this.options;if(r){for(let n of r)if((0,w.minimatch)(s,n,{dot:!0}))return!0}if(e){for(let n of e)if(!(0,w.minimatch)(s,n,{dot:!0}))return!1}if(i){for(let n of i)if((0,w.minimatch)(s,n,{dot:!0}))return!1}return!0}get config(){return this.css.config}get configPath(){if(typeof this.options.config=="string"||Array.isArray(this.options.config))return(0,p.explorePathSync)(this.options.config,{cwd:this.cwd})}get resolvedConfigPath(){let s=this.configPath;if(s)return l.default.resolve(this.cwd,s)}get optionsPath(){if(typeof this.customOptions=="string"||Array.isArray(this.customOptions))return(0,p.explorePathSync)(this.customOptions,{cwd:this.cwd})}get resolvedOptionsPath(){let s=this.optionsPath;if(s)return l.default.resolve(this.cwd,s)}get resolvedVirtualModuleId(){return"\0"+this.options.module}get slotCSSRule(){return"#"+P(this.options.module)+"{--slot:0}"}};0&&(module.exports={CSSExtractor,OPTIONS_ESM_TEXT,OPTIONS_TEXT,extractLatentClasses,options}); |
@@ -1,1 +0,1 @@ | ||
var d=Object.defineProperty;var r=Object.getOwnPropertyDescriptor;var l=Object.getOwnPropertyNames;var m=Object.prototype.hasOwnProperty;var u=(s,e)=>{for(var o in e)d(s,o,{get:e[o],enumerable:!0})},a=(s,e,o,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of l(e))!m.call(s,t)&&t!==o&&d(s,t,{get:()=>e[t],enumerable:!(n=r(e,t))||n.enumerable});return s};var i=s=>a(d({},"__esModule",{value:!0}),s);var _={};u(_,{default:()=>p});module.exports=i(_);var c={verbose:1,module:".virtual/master.css",config:"master.css.*",sources:[],include:["**/*.{html,js,jsx,ts,tsx,svelte,astro,vue,md,mdx,pug,php}"],exclude:["**/*.css","**/*.d.ts","**/*.test.*","**/*test.{js,cjs,mjs,ts}","**/*.options.*","**/*master.css.*","**/*master.css-extractor.*","**/*master.css-renderer.*","**/*README.md","**/dist/**","**/out/**","**/styles/**","**/public/**","**/node_modules/webpack*/**","**/node_modules/events/**","**/node_modules/html-entities/**","**/node_modules/ansi-html-community/**","**/node_modules/util/**","**/node_modules/react/**","**/node_modules/react-dom/**","**/node_modules/vue/**","**/node_modules/next/**","**/node_modules/astro/**","**/node_modules/svelte/**","**/node_modules/svelte-hmr/**","**/node_modules/@swc/**","**/node_modules/@sveltejs/**","**/node_modules/@angular/**","**/node_modules/.cache/**","**/node_modules/.vite/**"],classes:{fixed:[],ignored:[]}},p=c; | ||
"use strict";var d=Object.defineProperty;var r=Object.getOwnPropertyDescriptor;var l=Object.getOwnPropertyNames;var m=Object.prototype.hasOwnProperty;var u=(s,e)=>{for(var o in e)d(s,o,{get:e[o],enumerable:!0})},a=(s,e,o,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of l(e))!m.call(s,t)&&t!==o&&d(s,t,{get:()=>e[t],enumerable:!(n=r(e,t))||n.enumerable});return s};var i=s=>a(d({},"__esModule",{value:!0}),s);var _={};u(_,{default:()=>p});module.exports=i(_);var c={verbose:1,module:".virtual/master.css",config:"master.css.*",sources:[],include:["**/*.{html,js,jsx,ts,tsx,svelte,astro,vue,md,mdx,pug,php}"],exclude:["**/*.css","**/*.d.ts","**/*.test.*","**/*test.{js,cjs,mjs,ts}","**/*.options.*","**/*master.css.*","**/*master.css-extractor.*","**/*master.css-renderer.*","**/*README.md","**/dist/**","**/out/**","**/styles/**","**/public/**","**/node_modules/webpack*/**","**/node_modules/events/**","**/node_modules/html-entities/**","**/node_modules/ansi-html-community/**","**/node_modules/util/**","**/node_modules/react/**","**/node_modules/react-dom/**","**/node_modules/vue/**","**/node_modules/next/**","**/node_modules/astro/**","**/node_modules/svelte/**","**/node_modules/svelte-hmr/**","**/node_modules/@swc/**","**/node_modules/@sveltejs/**","**/node_modules/@angular/**","**/node_modules/.cache/**","**/node_modules/.vite/**"],classes:{fixed:[],ignored:[]}},p=c; |
@@ -1,1 +0,1 @@ | ||
{"name":"@master/css-extractor","scripts":{"build":"techor pack --platform node","dev":"pnpm run build --watch --no-declare","lint":"eslint ./src","type-check":"tsc --noEmit","test":"jest --workerThreads"},"license":"MIT","description":"Master CSS static extractor for various raw text","author":"Aoyue Design LLC.","funding":"https://css.master.co/docs/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/extractor"},"keywords":["plugin","integration","extractor","static","build tools","css","mastercss"],"sideEffects":false,"main":"./dist/index.bundle.js","module":"./dist/index.bundle.mjs","jsnext:main":"./dist/index.bundle.mjs","esnext":"./dist/index.bundle.mjs","types":"./dist/index.d.ts","exports":{".":{"import":"./dist/index.bundle.mjs","require":"./dist/index.bundle.js","types":"./dist/index.d.ts"},"./options":{"import":"./dist/options/index.bundle.mjs","require":"./dist/options/index.bundle.js","types":"./dist/options/index.d.ts"},"./actions/main":"./dist/actions/main.bundle.js"},"typesVersions":{"*":{".":["./dist/index.d.js"],"./options":["./dist/options/index.d.ts"]}},"files":["dist"],"publishConfig":{"access":"public"},"dependencies":{"@master/css":"^2.0.0-beta.206","@master/css-validator":"^2.0.0-beta.206","@techor/extend":"^2.5.19","@techor/glob":"^2.5.19","@techor/log":"^2.5.19","chokidar":"^3.5.3","explore-config":"^2.5.19","minimatch":"^9.0.1"},"devDependencies":{"ts-jest":"^29.0.5"},"version":"2.0.0-beta.206"} | ||
{"name":"@master/css-extractor","scripts":{"build":"techor pack --platform node","dev":"pnpm run build --watch --no-declare","lint":"eslint ./src","type-check":"tsc --noEmit","test":"jest --workerThreads"},"license":"MIT","description":"Master CSS static extractor for various raw text","author":"Aoyue Design LLC.","funding":"https://css.master.co/docs/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/extractor"},"keywords":["plugin","integration","extractor","static","build tools","css","mastercss"],"sideEffects":false,"main":"./dist/index.bundle.js","module":"./dist/index.bundle.mjs","jsnext:main":"./dist/index.bundle.mjs","esnext":"./dist/index.bundle.mjs","types":"./dist/index.d.ts","exports":{".":{"import":"./dist/index.bundle.mjs","require":"./dist/index.bundle.js","types":"./dist/index.d.ts"},"./options":{"import":"./dist/options/index.bundle.mjs","require":"./dist/options/index.bundle.js","types":"./dist/options/index.d.ts"},"./actions/main":"./dist/actions/main.bundle.js"},"typesVersions":{"*":{".":["./dist/index.d.js"],"./options":["./dist/options/index.d.ts"]}},"files":["dist"],"publishConfig":{"access":"public"},"dependencies":{"@master/css":"^2.0.0-beta.207","@master/css-validator":"^2.0.0-beta.207","@techor/extend":"^2.5.19","@techor/glob":"^2.5.19","@techor/log":"^2.5.19","chokidar":"^3.5.3","explore-config":"^2.5.19","minimatch":"^9.0.1"},"devDependencies":{"ts-jest":"^29.0.5"},"version":"2.0.0-beta.207"} |
Sorry, the diff of this file is not supported yet
46017
291