@master/css-compiler 2.0.0-beta.17 → 2.0.0-beta.18

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.
@@ -1,12 +1,12 @@
1
- import { MasterCSSCompilerOptions, MasterCSSCompilerSource } from './options';
1
+ import { CompilerOptions, CompilerSource } from './options';
2
2
  import MasterCSS from '@master/css';
3
3
  export default class MasterCSSCompiler {
4
- options?: MasterCSSCompilerOptions;
5
- constructor(options?: MasterCSSCompilerOptions);
4
+ options?: CompilerOptions;
5
+ constructor(options?: CompilerOptions);
6
6
  initializing: Promise<any>;
7
7
  css: MasterCSS;
8
8
  extractions: Set<string>;
9
- extract({ name, content }: MasterCSSCompilerSource): string[];
9
+ extract({ name, content }: CompilerSource): string[];
10
10
  insert(extractions: any): void;
11
11
  log(name: any, content: any): void;
12
12
  }
package/dist/index.cjs CHANGED
@@ -1,2 +1,2 @@
1
- var N=Object.create;var k=Object.defineProperty;var _=Object.getOwnPropertyDescriptor;var W=Object.getOwnPropertyNames;var U=Object.getPrototypeOf,B=Object.prototype.hasOwnProperty;var G=(t,e)=>{for(var s in e)k(t,s,{get:e[s],enumerable:!0})},P=(t,e,s,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of W(e))!B.call(t,i)&&i!==s&&k(t,i,{get:()=>e[i],enumerable:!(r=_(e,i))||r.enumerable});return t};var h=(t,e,s)=>(s=t!=null?N(U(t)):{},P(e||!t||!t.__esModule?k(s,"default",{value:t,enumerable:!0}):s,t)),V=t=>P(k({},"__esModule",{value:!0}),t);var K={};G(K,{MasterCSSCompiler:()=>m,MasterCSSVitePlugin:()=>z,MasterCSSWebpackPlugin:()=>x});module.exports=V(K);var b=h(require("path")),p=h(require("chalk"));var j=require("@master/css");function R({content:t},e){let s=t.match(/[^\s]+/g)??[],r=new Set;for(let i of s){let n=D(i);if(n.size)for(let S of n)r.add(S);else r.add(T(i))}return[...r].filter(i=>i&&!J(i,e))}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)},D=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 i=D(r[2]);if(i.size)for(let n of i)e.add(n);else e.add(T(r[2]))}return e},J=(t,e)=>!t||!t.match(/(?:^[\w-]+:[\w$#]+)|(?:^[@~][\w-]+$)/)&&!Object.keys(e.config.semantics??j.defaultSemantics).includes(t)||t.match(/\*\*/)||t.match(/:\[/)||t.match(/\$\{/)||t.match(/\{\{/)||t.match(/\(\{[^}]*\}/)||t.match(/<\w+>|<\/\w+>/);var L={config:"./master.css.js",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},H=L;var $=h(require("@master/css")),E=require("perf_hooks"),m=class{constructor(e){this.options=e;this.options=(0,$.extend)(H,e),(async()=>{let s;try{s=(await import(b.default.resolve(process.cwd(),this.options.config))).default}catch{}this.css=new $.default({config:s})})()}initializing;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 i of this.options.extract({content:s,name:e},this.css))this.extractions.has(i)||(this.extractions.add(i),r.push(i));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),i=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(i.length)} total valid classes: ${p.default.blue(i.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 C="MasterCSSWebpackPlugin",x=class extends m{async apply(e){await this.initializing;let{webpack:s}=e,{Template:r,RuntimeGlobals:i,RuntimeModule:n}=s,{RawSource:S}=s.sources,{Compilation:w}=s,{options:o}=this,l=F.default.join(o.output.dir||"",o.output.name),M=l.replace(/\\/g,"/");e.hooks.thisCompilation.tap(C,a=>{let u=new WeakSet,f=(d,c)=>{u.has(d)||(u.add(d),c.add(i.publicPath),a.addRuntimeModule(d,new O(c)))};a.hooks.runtimeRequirementInTree.for(i.ensureChunkHandlers).tap(C,f),a.hooks.runtimeRequirementInTree.for(i.hmrDownloadUpdateHandlers).tap(C,f);class O extends n{runtimeRequirements;constructor(c){super("master-css-loading",10),this.runtimeRequirements=c}generate(){let{runtimeRequirements:c}=this;return c.has(i.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(C,a=>{a.hooks.finishModules.tap(C,u=>{let{modifiedFiles:f,watching:O}=e,d=[];for(let c of u){let g=c.resource,y=c._source?.source();O&&f?.size&&!f.has(g)||d.push(...this.extract({name:g,content:y}))}if(d.length){let c=this.css.text;this.insert(d);let g=this.css.text;if(g!==c){let y=new S(g);a.getAsset(l)?a.updateAsset(l,y):a.emitAsset(l,y)}}}),a.hooks.processAssets.tap({name:C,stage:w.PROCESS_ASSETS_STAGE_ADDITIONS},()=>{a.chunks.forEach(u=>{u.files.add(l)})})})}};var I=h(require("path"));var v=h(require("fs")),q=h(require("path"));function A(t,e,s){let r=q.default.dirname(t);v.default.existsSync(r)||v.default.mkdirSync(r,{recursive:!0}),v.default.writeFileSync(t,e,s)}async function z(t){let e=new m(t);await e.initializing;let s=I.default.join(e.options.output.dir||"",e.options.output.name),r,i,n,S=!1,w=(o,l)=>{let M=e.extract({name:o,content:l});if(M.length){let a=e.css.text;e.insert(M);let u=e.css.text;if(u!==a&&r){A(i,u);let f=()=>{r.ws.send({type:"update",updates:[{path:n,timestamp:Date.now()}]})};S?f():(setTimeout(f,500),S=!0)}}};return{name:"vite-plugin-master-css",enforce:"pre",configureServer(o){r=o},buildStart(){i=I.default.resolve(r?.config.cacheDir??process.cwd(),s),r&&(A(i,""),n=(r.config.cacheDir.slice(process.cwd().length)+"/"+s).replace(/\\/g,"/"))},resolveId(o){if(o.endsWith("master.css?direct"))return"\0"+o},transform(o,l){w(l,o)},transformIndexHtml(o){return o.replace(/(<head>)/,`$1<link rel="stylesheet" href="${n}">`)},async handleHotUpdate(o){w(o.file,await o.read())},generateBundle(){let o=this.emitFile({type:"asset",name:s,source:e.css.text});n="/"+this.getFileName(o)}}}0&&(module.exports={MasterCSSCompiler,MasterCSSVitePlugin,MasterCSSWebpackPlugin});
1
+ var N=Object.create;var b=Object.defineProperty;var _=Object.getOwnPropertyDescriptor;var W=Object.getOwnPropertyNames;var U=Object.getPrototypeOf,B=Object.prototype.hasOwnProperty;var G=(t,e)=>{for(var s in e)b(t,s,{get:e[s],enumerable:!0})},P=(t,e,s,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of W(e))!B.call(t,i)&&i!==s&&b(t,i,{get:()=>e[i],enumerable:!(r=_(e,i))||r.enumerable});return t};var h=(t,e,s)=>(s=t!=null?N(U(t)):{},P(e||!t||!t.__esModule?b(s,"default",{value:t,enumerable:!0}):s,t)),V=t=>P(b({},"__esModule",{value:!0}),t);var K={};G(K,{MasterCSSCompiler:()=>m,MasterCSSVitePlugin:()=>z,MasterCSSWebpackPlugin:()=>w});module.exports=V(K);var M=h(require("path")),u=h(require("chalk"));var j=require("@master/css");function T({content:t},e){let s=t.match(/[^\s]+/g)??[],r=new Set;for(let i of s){let n=D(i);if(n.size)for(let g of n)r.add(g);else r.add(E(i))}return[...r].filter(i=>i&&!J(i,e))}var E=t=>{let e=t;return t=t.replace(/^([\w={[(\\]*["'`])/,""),t.match(/^content:((?<!\\)["'`])((?:\\\1|(?:(?!\1))[\S\s])*)((?<!\\)\1)$/)||(t=t.replace(/(\.*|[([{\\:#]*|["'`].*)$/,"")),e===t?t:E(t)},D=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 i=D(r[2]);if(i.size)for(let n of i)e.add(n);else e.add(E(r[2]))}return e},J=(t,e)=>!t||!t.match(/(?:^[\w-]+:[\w$#]+)|(?:^[@~][\w-]+$)/)&&!Object.keys(e.config.semantics??j.semantics).includes(t)||t.match(/\*\*/)||t.match(/:\[/)||t.match(/\$\{/)||t.match(/\{\{/)||t.match(/\(\{[^}]*\}/)||t.match(/<\w+>|<\/\w+>/);var L={config:"./master.css.js",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:T},H=L;var $=h(require("@master/css")),O=require("perf_hooks"),m=class{constructor(e){this.options=e;this.options=(0,$.extend)(H,e),(async()=>{let s;try{s=(await import(M.default.resolve(process.cwd(),this.options.config))).default}catch{}this.css=new $.default({config:s})})()}initializing;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 ${M.default.relative(process.cwd(),e)}`);for(let i of this.options.extract({content:s,name:e},this.css))this.extractions.has(i)||(this.extractions.add(i),r.push(i));return r}insert(e){let s=O.performance.now();for(let n of e)this.css.findAndInsert(n);let r=Math.round((O.performance.now()-s)*1e3),i=this.css.rules.map(n=>n.className);console.log(`[Master CSS] process ${u.default.green(e.length)} extractions in ${u.default.green(r)} \xB5s [${u.default.green(this.css.rules.length)} rules in ${u.default.green(M.default.join(this.options.output.dir,this.options.output.name))}]`),this.log("extractions",` \u2192 ${u.default.green(e.length)} extractions: ${u.default.blue(e.join(" "))}`),this.log("validClasses",` \u2192 ${u.default.green(i.length)} total valid classes: ${u.default.blue(i.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 x="MasterCSSWebpackPlugin",w=class extends m{async apply(e){await this.initializing;let{webpack:s}=e,{Template:r,RuntimeGlobals:i,RuntimeModule:n}=s,{RawSource:g}=s.sources,{Compilation:C}=s,{options:o}=this,l=F.default.join(o.output.dir||"",o.output.name),y=l.replace(/\\/g,"/");e.hooks.thisCompilation.tap(x,a=>{let p=new WeakSet,f=(d,c)=>{p.has(d)||(p.add(d),c.add(i.publicPath),a.addRuntimeModule(d,new R(c)))};a.hooks.runtimeRequirementInTree.for(i.ensureChunkHandlers).tap(x,f),a.hooks.runtimeRequirementInTree.for(i.hmrDownloadUpdateHandlers).tap(x,f);class R extends n{runtimeRequirements;constructor(c){super("master-css-loading",10),this.runtimeRequirements=c}generate(){let{runtimeRequirements:c}=this;return c.has(i.hmrDownloadUpdateHandlers)?r.asString([Date.now().toString(),`const link = document.querySelector('[href*=\\'${y}\\'][rel=stylesheet]')`,"if (link) {",r.indent(["link.href = link.href.replace(/ts=[0-9]+/, 'ts=' + Date.now())"]),"}"]):""}}}),e.hooks.compilation.tap(x,a=>{a.hooks.finishModules.tap(x,p=>{let{modifiedFiles:f,watching:R}=e,d=[];for(let c of p){let S=c.resource,k=c._source?.source();R&&f?.size&&!f.has(S)||d.push(...this.extract({name:S,content:k}))}if(d.length){let c=this.css.text;this.insert(d);let S=this.css.text;if(S!==c){let k=new g(S);a.getAsset(l)?a.updateAsset(l,k):a.emitAsset(l,k)}}}),a.hooks.processAssets.tap({name:x,stage:C.PROCESS_ASSETS_STAGE_ADDITIONS},()=>{a.chunks.forEach(p=>{p.files.add(l)})})})}};var I=h(require("path"));var v=h(require("fs")),q=h(require("path"));function A(t,e,s){let r=q.default.dirname(t);v.default.existsSync(r)||v.default.mkdirSync(r,{recursive:!0}),v.default.writeFileSync(t,e,s)}async function z(t){let e=new m(t);await e.initializing;let s=I.default.join(e.options.output.dir||"",e.options.output.name),r,i,n,g=!1,C=(o,l)=>{let y=e.extract({name:o,content:l});if(y.length){let a=e.css.text;e.insert(y);let p=e.css.text;if(p!==a&&r){A(i,p);let f=()=>{r.ws.send({type:"update",updates:[{path:n,timestamp:Date.now()}]})};g?f():(setTimeout(f,500),g=!0)}}};return{name:"vite-plugin-master-css",enforce:"pre",configureServer(o){r=o},buildStart(){i=I.default.resolve(r?.config.cacheDir??process.cwd(),s),r&&(A(i,""),n=(r.config.cacheDir.slice(process.cwd().length)+"/"+s).replace(/\\/g,"/"))},resolveId(o){if(o.endsWith("master.css?direct"))return"\0"+o},transform(o,l){C(l,o)},transformIndexHtml(o){return o.replace(/(<head>)/,`$1<link rel="stylesheet" href="${n}">`)},async handleHotUpdate(o){C(o.file,await o.read())},generateBundle(){let o=this.emitFile({type:"asset",name:s,source:e.css.text});n="/"+this.getFileName(o)}}}0&&(module.exports={MasterCSSCompiler,MasterCSSVitePlugin,MasterCSSWebpackPlugin});
2
2
  //# sourceMappingURL=index.cjs.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
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 (async () => {\n let userConfig: MasterCSSConfig\n try {\n userConfig = (await import(path.resolve(process.cwd(), this.options.config))).default\n // eslint-disable-next-line no-empty\n } catch (err) { }\n this.css = new MasterCSS({ config: userConfig })\n })()\n }\n\n initializing: Promise<any>\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 }, this.css)) {\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 MasterCSS, { defaultSemantics } from '@master/css'\nimport type { MasterCSSCompilerSource } from './index'\n\nexport default function extract({ content }: MasterCSSCompilerSource, masterCss: MasterCSS) {\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, masterCss))\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, masterCss:MasterCSS) => {\n return !content\n || (!content.match(/(?:^[\\w-]+:[\\w$#]+)|(?:^[@~][\\w-]+$)/) && !Object.keys(masterCss.config.semantics ?? 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 MasterCSS from '@master/css'\nimport extract from './extract'\n\nconst defaultOptions: MasterCSSCompilerOptions = {\n config: './master.css.js',\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, masterCss: MasterCSS) => 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 async apply(compiler: Compiler) {\n await this.initializing\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 { Plugin } from 'vite'\n\nexport default async function (options?: MasterCSSCompilerOptions): Promise<Plugin> {\n const compiler = new MasterCSSCompiler(options)\n await compiler.initializing\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 }\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", "masterCss", "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"]
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 { default as defaultOptions, CompilerOptions, CompilerSource } from './options'\nimport MasterCSS, { extend } from '@master/css'\nimport { performance } from 'perf_hooks'\nimport type { Config } from '@master/css'\n\nexport default class MasterCSSCompiler {\n\n constructor(\n public options?: CompilerOptions\n ) {\n this.options = extend(defaultOptions, options);\n (async () => {\n let userConfig: Config\n try {\n userConfig = (await import(path.resolve(process.cwd(), this.options.config))).default\n // eslint-disable-next-line no-empty\n } catch (err) { }\n this.css = new MasterCSS({ config: userConfig })\n })()\n }\n\n initializing: Promise<any>\n css: MasterCSS\n extractions = new Set<string>()\n\n extract({ name, content }: CompilerSource) {\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 }, this.css)) {\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 MasterCSS, { semantics } from '@master/css'\nimport type { CompilerSource } from './index'\n\nexport default function extract({ content }: CompilerSource, masterCss: MasterCSS) {\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, masterCss))\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, css: MasterCSS) => {\n return !content\n || (!content.match(/(?:^[\\w-]+:[\\w$#]+)|(?:^[@~][\\w-]+$)/) && !Object.keys(css.config.semantics ?? semantics).includes(content))\n || content.match(/\\*\\*/)\n || content.match(/:\\[/)\n || content.match(/\\$\\{/)\n || content.match(/\\{\\{/)\n || content.match(/\\(\\{[^}]*\\}/)\n || content.match(/<\\w+>|<\\/\\w+>/)\n}", "import MasterCSS from '@master/css'\nimport extract from './extract'\n\nconst options: CompilerOptions = {\n config: './master.css.js',\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 CompilerSource = {\n name: string\n content: string\n}\n\nexport interface CompilerOptions {\n output?: {\n name: string\n dir: string\n },\n accept?: (source: CompilerSource) => boolean\n extract?: (source: CompilerSource, css: MasterCSS) => string[]\n config?: string\n debug?: string[] | boolean\n}\n\nexport default options", "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 async apply(compiler: Compiler) {\n await this.initializing\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 { CompilerOptions } from './options'\nimport type { Plugin } from 'vite'\n\nexport default async function (options?: CompilerOptions): Promise<Plugin> {\n const compiler = new MasterCSSCompiler(options)\n await compiler.initializing\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 }\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", "masterCss", "blocks", "strings", "block", "result", "peelString", "string", "trimString", "x", "checkToExclude", "originContent", "stringRegx", "m", "css", "options", "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
7
  }
package/dist/index.mjs CHANGED
@@ -1,2 +1,2 @@
1
- import v from"path";import f from"chalk";import{defaultSemantics as I}from"@master/css";function b({content:t},e){let r=t.match(/[^\s]+/g)??[],s=new Set;for(let i of r){let n=O(i);if(n.size)for(let h of n)s.add(h);else s.add($(i))}return[...s].filter(i=>i&&!P(i,e))}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)},O=t=>{let e=new Set,r=/((?<!\\)["'`])((?:\\\1|(?:(?!\1))[\S\s])*)((?<!\\)\1)/g,s;for(;(s=r.exec(t))!==null;){s.index===r.lastIndex&&r.lastIndex++;let i=O(s[2]);if(i.size)for(let n of i)e.add(n);else e.add($(s[2]))}return e},P=(t,e)=>!t||!t.match(/(?:^[\w-]+:[\w$#]+)|(?:^[@~][\w-]+$)/)&&!Object.keys(e.config.semantics??I).includes(t)||t.match(/\*\*/)||t.match(/:\[/)||t.match(/\$\{/)||t.match(/\{\{/)||t.match(/\(\{[^}]*\}/)||t.match(/<\w+>|<\/\w+>/);var j={config:"./master.css.js",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},R=j;import D,{extend as H}from"@master/css";import{performance as T}from"perf_hooks";var d=class{constructor(e){this.options=e;this.options=H(R,e),(async()=>{let r;try{r=(await import(v.resolve(process.cwd(),this.options.config))).default}catch{}this.css=new D({config:r})})()}initializing;css;extractions=new Set;extract({name:e,content:r}){if(!e||!r||!this.options.accept?.({content:r,name:e}))return[];let s=[];this.log("accepts",` \u2192 ${v.relative(process.cwd(),e)}`);for(let i of this.options.extract({content:r,name:e},this.css))this.extractions.has(i)||(this.extractions.add(i),s.push(i));return s}insert(e){let r=T.now();for(let n of e)this.css.findAndInsert(n);let s=Math.round((T.now()-r)*1e3),i=this.css.rules.map(n=>n.className);console.log(`[Master CSS] process ${f.green(e.length)} extractions in ${f.green(s)} \xB5s [${f.green(this.css.rules.length)} rules in ${f.green(v.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(i.length)} total valid classes: ${f.blue(i.join(" "))}`)}log(e,r){(this.options.debug===!0||Array.isArray(this.options.debug)&&this.options.debug.includes(e))&&console.log(r)}};import F from"path";var g="MasterCSSWebpackPlugin",M=class extends d{async apply(e){await this.initializing;let{webpack:r}=e,{Template:s,RuntimeGlobals:i,RuntimeModule:n}=r,{RawSource:h}=r.sources,{Compilation:C}=r,{options:o}=this,l=F.join(o.output.dir||"",o.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(i.publicPath),a.addRuntimeModule(m,new k(c)))};a.hooks.runtimeRequirementInTree.for(i.ensureChunkHandlers).tap(g,p),a.hooks.runtimeRequirementInTree.for(i.hmrDownloadUpdateHandlers).tap(g,p);class k extends n{runtimeRequirements;constructor(c){super("master-css-loading",10),this.runtimeRequirements=c}generate(){let{runtimeRequirements:c}=this;return c.has(i.hmrDownloadUpdateHandlers)?s.asString([Date.now().toString(),`const link = document.querySelector('[href*=\\'${x}\\'][rel=stylesheet]')`,"if (link) {",s.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:k}=e,m=[];for(let c of u){let S=c.resource,w=c._source?.source();k&&p?.size&&!p.has(S)||m.push(...this.extract({name:S,content:w}))}if(m.length){let c=this.css.text;this.insert(m);let S=this.css.text;if(S!==c){let w=new h(S);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 E from"path";import A from"fs";import q from"path";function y(t,e,r){let s=q.dirname(t);A.existsSync(s)||A.mkdirSync(s,{recursive:!0}),A.writeFileSync(t,e,r)}async function z(t){let e=new d(t);await e.initializing;let r=E.join(e.options.output.dir||"",e.options.output.name),s,i,n,h=!1,C=(o,l)=>{let x=e.extract({name:o,content:l});if(x.length){let a=e.css.text;e.insert(x);let u=e.css.text;if(u!==a&&s){y(i,u);let p=()=>{s.ws.send({type:"update",updates:[{path:n,timestamp:Date.now()}]})};h?p():(setTimeout(p,500),h=!0)}}};return{name:"vite-plugin-master-css",enforce:"pre",configureServer(o){s=o},buildStart(){i=E.resolve(s?.config.cacheDir??process.cwd(),r),s&&(y(i,""),n=(s.config.cacheDir.slice(process.cwd().length)+"/"+r).replace(/\\/g,"/"))},resolveId(o){if(o.endsWith("master.css?direct"))return"\0"+o},transform(o,l){C(l,o)},transformIndexHtml(o){return o.replace(/(<head>)/,`$1<link rel="stylesheet" href="${n}">`)},async handleHotUpdate(o){C(o.file,await o.read())},generateBundle(){let o=this.emitFile({type:"asset",name:r,source:e.css.text});n="/"+this.getFileName(o)}}}export{d as MasterCSSCompiler,z as MasterCSSVitePlugin,M as MasterCSSWebpackPlugin};
1
+ import v from"path";import f from"chalk";import{semantics as I}from"@master/css";function M({content:t},e){let r=t.match(/[^\s]+/g)??[],s=new Set;for(let i of r){let n=R(i);if(n.size)for(let h of n)s.add(h);else s.add($(i))}return[...s].filter(i=>i&&!P(i,e))}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,r=/((?<!\\)["'`])((?:\\\1|(?:(?!\1))[\S\s])*)((?<!\\)\1)/g,s;for(;(s=r.exec(t))!==null;){s.index===r.lastIndex&&r.lastIndex++;let i=R(s[2]);if(i.size)for(let n of i)e.add(n);else e.add($(s[2]))}return e},P=(t,e)=>!t||!t.match(/(?:^[\w-]+:[\w$#]+)|(?:^[@~][\w-]+$)/)&&!Object.keys(e.config.semantics??I).includes(t)||t.match(/\*\*/)||t.match(/:\[/)||t.match(/\$\{/)||t.match(/\{\{/)||t.match(/\(\{[^}]*\}/)||t.match(/<\w+>|<\/\w+>/);var j={config:"./master.css.js",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:M},T=j;import D,{extend as H}from"@master/css";import{performance as E}from"perf_hooks";var d=class{constructor(e){this.options=e;this.options=H(T,e),(async()=>{let r;try{r=(await import(v.resolve(process.cwd(),this.options.config))).default}catch{}this.css=new D({config:r})})()}initializing;css;extractions=new Set;extract({name:e,content:r}){if(!e||!r||!this.options.accept?.({content:r,name:e}))return[];let s=[];this.log("accepts",` \u2192 ${v.relative(process.cwd(),e)}`);for(let i of this.options.extract({content:r,name:e},this.css))this.extractions.has(i)||(this.extractions.add(i),s.push(i));return s}insert(e){let r=E.now();for(let n of e)this.css.findAndInsert(n);let s=Math.round((E.now()-r)*1e3),i=this.css.rules.map(n=>n.className);console.log(`[Master CSS] process ${f.green(e.length)} extractions in ${f.green(s)} \xB5s [${f.green(this.css.rules.length)} rules in ${f.green(v.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(i.length)} total valid classes: ${f.blue(i.join(" "))}`)}log(e,r){(this.options.debug===!0||Array.isArray(this.options.debug)&&this.options.debug.includes(e))&&console.log(r)}};import F from"path";var S="MasterCSSWebpackPlugin",y=class extends d{async apply(e){await this.initializing;let{webpack:r}=e,{Template:s,RuntimeGlobals:i,RuntimeModule:n}=r,{RawSource:h}=r.sources,{Compilation:x}=r,{options:o}=this,l=F.join(o.output.dir||"",o.output.name),w=l.replace(/\\/g,"/");e.hooks.thisCompilation.tap(S,a=>{let p=new WeakSet,u=(m,c)=>{p.has(m)||(p.add(m),c.add(i.publicPath),a.addRuntimeModule(m,new b(c)))};a.hooks.runtimeRequirementInTree.for(i.ensureChunkHandlers).tap(S,u),a.hooks.runtimeRequirementInTree.for(i.hmrDownloadUpdateHandlers).tap(S,u);class b extends n{runtimeRequirements;constructor(c){super("master-css-loading",10),this.runtimeRequirements=c}generate(){let{runtimeRequirements:c}=this;return c.has(i.hmrDownloadUpdateHandlers)?s.asString([Date.now().toString(),`const link = document.querySelector('[href*=\\'${w}\\'][rel=stylesheet]')`,"if (link) {",s.indent(["link.href = link.href.replace(/ts=[0-9]+/, 'ts=' + Date.now())"]),"}"]):""}}}),e.hooks.compilation.tap(S,a=>{a.hooks.finishModules.tap(S,p=>{let{modifiedFiles:u,watching:b}=e,m=[];for(let c of p){let g=c.resource,C=c._source?.source();b&&u?.size&&!u.has(g)||m.push(...this.extract({name:g,content:C}))}if(m.length){let c=this.css.text;this.insert(m);let g=this.css.text;if(g!==c){let C=new h(g);a.getAsset(l)?a.updateAsset(l,C):a.emitAsset(l,C)}}}),a.hooks.processAssets.tap({name:S,stage:x.PROCESS_ASSETS_STAGE_ADDITIONS},()=>{a.chunks.forEach(p=>{p.files.add(l)})})})}};import O from"path";import A from"fs";import q from"path";function k(t,e,r){let s=q.dirname(t);A.existsSync(s)||A.mkdirSync(s,{recursive:!0}),A.writeFileSync(t,e,r)}async function z(t){let e=new d(t);await e.initializing;let r=O.join(e.options.output.dir||"",e.options.output.name),s,i,n,h=!1,x=(o,l)=>{let w=e.extract({name:o,content:l});if(w.length){let a=e.css.text;e.insert(w);let p=e.css.text;if(p!==a&&s){k(i,p);let u=()=>{s.ws.send({type:"update",updates:[{path:n,timestamp:Date.now()}]})};h?u():(setTimeout(u,500),h=!0)}}};return{name:"vite-plugin-master-css",enforce:"pre",configureServer(o){s=o},buildStart(){i=O.resolve(s?.config.cacheDir??process.cwd(),r),s&&(k(i,""),n=(s.config.cacheDir.slice(process.cwd().length)+"/"+r).replace(/\\/g,"/"))},resolveId(o){if(o.endsWith("master.css?direct"))return"\0"+o},transform(o,l){x(l,o)},transformIndexHtml(o){return o.replace(/(<head>)/,`$1<link rel="stylesheet" href="${n}">`)},async handleHotUpdate(o){x(o.file,await o.read())},generateBundle(){let o=this.emitFile({type:"asset",name:r,source:e.css.text});n="/"+this.getFileName(o)}}}export{d as MasterCSSCompiler,z as MasterCSSVitePlugin,y as MasterCSSWebpackPlugin};
2
2
  //# sourceMappingURL=index.mjs.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
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 (async () => {\n let userConfig: MasterCSSConfig\n try {\n userConfig = (await import(path.resolve(process.cwd(), this.options.config))).default\n // eslint-disable-next-line no-empty\n } catch (err) { }\n this.css = new MasterCSS({ config: userConfig })\n })()\n }\n\n initializing: Promise<any>\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 }, this.css)) {\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 MasterCSS, { defaultSemantics } from '@master/css'\nimport type { MasterCSSCompilerSource } from './index'\n\nexport default function extract({ content }: MasterCSSCompilerSource, masterCss: MasterCSS) {\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, masterCss))\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, masterCss:MasterCSS) => {\n return !content\n || (!content.match(/(?:^[\\w-]+:[\\w$#]+)|(?:^[@~][\\w-]+$)/) && !Object.keys(masterCss.config.semantics ?? 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 MasterCSS from '@master/css'\nimport extract from './extract'\n\nconst defaultOptions: MasterCSSCompilerOptions = {\n config: './master.css.js',\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, masterCss: MasterCSS) => 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 async apply(compiler: Compiler) {\n await this.initializing\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 { Plugin } from 'vite'\n\nexport default async function (options?: MasterCSSCompilerOptions): Promise<Plugin> {\n const compiler = new MasterCSSCompiler(options)\n await compiler.initializing\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 }\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", "masterCss", "blocks", "strings", "block", "result", "peelString", "string", "trimString", "x", "checkToExclude", "originContent", "stringRegx", "m", "defaultOptions", "name", "extract", "options_default", "MasterCSS", "extend", "performance", "MasterCSSCompiler", "options", "options_default", "userConfig", "path", "name", "content", "eachExtractions", "eachNewExtraction", "extractions", "p1", "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"]
4
+ "sourcesContent": ["import path from 'path'\nimport chalk from 'chalk'\nimport { default as defaultOptions, CompilerOptions, CompilerSource } from './options'\nimport MasterCSS, { extend } from '@master/css'\nimport { performance } from 'perf_hooks'\nimport type { Config } from '@master/css'\n\nexport default class MasterCSSCompiler {\n\n constructor(\n public options?: CompilerOptions\n ) {\n this.options = extend(defaultOptions, options);\n (async () => {\n let userConfig: Config\n try {\n userConfig = (await import(path.resolve(process.cwd(), this.options.config))).default\n // eslint-disable-next-line no-empty\n } catch (err) { }\n this.css = new MasterCSS({ config: userConfig })\n })()\n }\n\n initializing: Promise<any>\n css: MasterCSS\n extractions = new Set<string>()\n\n extract({ name, content }: CompilerSource) {\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 }, this.css)) {\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 MasterCSS, { semantics } from '@master/css'\nimport type { CompilerSource } from './index'\n\nexport default function extract({ content }: CompilerSource, masterCss: MasterCSS) {\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, masterCss))\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, css: MasterCSS) => {\n return !content\n || (!content.match(/(?:^[\\w-]+:[\\w$#]+)|(?:^[@~][\\w-]+$)/) && !Object.keys(css.config.semantics ?? semantics).includes(content))\n || content.match(/\\*\\*/)\n || content.match(/:\\[/)\n || content.match(/\\$\\{/)\n || content.match(/\\{\\{/)\n || content.match(/\\(\\{[^}]*\\}/)\n || content.match(/<\\w+>|<\\/\\w+>/)\n}", "import MasterCSS from '@master/css'\nimport extract from './extract'\n\nconst options: CompilerOptions = {\n config: './master.css.js',\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 CompilerSource = {\n name: string\n content: string\n}\n\nexport interface CompilerOptions {\n output?: {\n name: string\n dir: string\n },\n accept?: (source: CompilerSource) => boolean\n extract?: (source: CompilerSource, css: MasterCSS) => string[]\n config?: string\n debug?: string[] | boolean\n}\n\nexport default options", "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 async apply(compiler: Compiler) {\n await this.initializing\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 { CompilerOptions } from './options'\nimport type { Plugin } from 'vite'\n\nexport default async function (options?: CompilerOptions): Promise<Plugin> {\n const compiler = new MasterCSSCompiler(options)\n await compiler.initializing\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 }\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", "semantics", "extract", "content", "masterCss", "blocks", "strings", "block", "result", "peelString", "string", "trimString", "x", "checkToExclude", "originContent", "stringRegx", "m", "css", "options", "name", "extract", "options_default", "MasterCSS", "extend", "performance", "MasterCSSCompiler", "options", "options_default", "userConfig", "path", "name", "content", "eachExtractions", "eachNewExtraction", "extractions", "p1", "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
7
  }
@@ -1,3 +1,3 @@
1
1
  import MasterCSS from '@master/css';
2
- import type { MasterCSSCompilerSource } from './index';
3
- export default function extract({ content }: MasterCSSCompilerSource, masterCss: MasterCSS): string[];
2
+ import type { CompilerSource } from './index';
3
+ export default function extract({ content }: CompilerSource, masterCss: MasterCSS): string[];
@@ -1,17 +1,17 @@
1
1
  import MasterCSS from '@master/css';
2
- declare const defaultOptions: MasterCSSCompilerOptions;
3
- export declare type MasterCSSCompilerSource = {
2
+ declare const options: CompilerOptions;
3
+ export declare type CompilerSource = {
4
4
  name: string;
5
5
  content: string;
6
6
  };
7
- export interface MasterCSSCompilerOptions {
7
+ export interface CompilerOptions {
8
8
  output?: {
9
9
  name: string;
10
10
  dir: string;
11
11
  };
12
- accept?: (source: MasterCSSCompilerSource) => boolean;
13
- extract?: (source: MasterCSSCompilerSource, masterCss: MasterCSS) => string[];
12
+ accept?: (source: CompilerSource) => boolean;
13
+ extract?: (source: CompilerSource, css: MasterCSS) => string[];
14
14
  config?: string;
15
15
  debug?: string[] | boolean;
16
16
  }
17
- export default defaultOptions;
17
+ export default options;
package/dist/vite.d.ts CHANGED
@@ -1,3 +1,3 @@
1
- import type { MasterCSSCompilerOptions } from './options';
1
+ import type { CompilerOptions } from './options';
2
2
  import type { Plugin } from 'vite';
3
- export default function (options?: MasterCSSCompilerOptions): Promise<Plugin>;
3
+ export default function (options?: CompilerOptions): Promise<Plugin>;
package/package.json CHANGED
@@ -138,10 +138,10 @@
138
138
  "vite": "^3.1.8"
139
139
  },
140
140
  "peerDependencies": {
141
- "@master/css": "^2.0.0-beta.22"
141
+ "@master/css": "^2.0.0-beta.37"
142
142
  },
143
143
  "dependencies": {
144
144
  "chalk": "^4.0.0"
145
145
  },
146
- "version": "2.0.0-beta.17"
146
+ "version": "2.0.0-beta.18"
147
147
  }