vite-plugin-compression2
Advanced tools
+5
-0
@@ -18,2 +18,6 @@ import { Plugin } from 'vite'; | ||
| type LogLevel = 'info' | 'silent'; | ||
| type ArtifactsFunction = () => Array<{ | ||
| src: string; | ||
| replace?: (dest: string, fileName: string) => string; | ||
| }>; | ||
| interface BaseCompressionPluginOptions { | ||
@@ -27,2 +31,3 @@ include?: FilterPattern; | ||
| logLevel?: LogLevel; | ||
| artifacts?: ArtifactsFunction; | ||
| } | ||
@@ -29,0 +34,0 @@ interface AlgorithmToZlib { |
+5
-0
@@ -18,2 +18,6 @@ import { Plugin } from 'vite'; | ||
| type LogLevel = 'info' | 'silent'; | ||
| type ArtifactsFunction = () => Array<{ | ||
| src: string; | ||
| replace?: (dest: string, fileName: string) => string; | ||
| }>; | ||
| interface BaseCompressionPluginOptions { | ||
@@ -27,2 +31,3 @@ include?: FilterPattern; | ||
| logLevel?: LogLevel; | ||
| artifacts?: ArtifactsFunction; | ||
| } | ||
@@ -29,0 +34,0 @@ interface AlgorithmToZlib { |
+2
-2
@@ -1,2 +0,2 @@ | ||
| "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e,t,r=require("@rollup/pluginutils"),i=require("fs"),n=require("node:fs/promises"),o=require("os"),s=require("path"),a=require("tar-mini"),l=require("util"),u=require("zlib"),c={exports:{}},p=(e=function(){if(t)return c.exports;t=1;let e,r,i,{defineProperty:n,setPrototypeOf:o,create:s,keys:a}=Object,{round:l,max:u}=Math,p=e=>{let t=/([a-f\d]{3,6})/i.exec(e)?.[1],r=t?.length,i=parseInt(6^r?3^r?"0":t[0]+t[0]+t[1]+t[1]+t[2]+t[2]:t,16);return[i>>16&255,i>>8&255,255&i]},d=(e,t,r)=>e^t||t^r?16+36*l(e/51)+6*l(t/51)+l(r/51):8>e?16:e>248?231:l(24*(e-8)/247)+232,f=e=>{let t,r,i,n,o;return 8>e?30+e:16>e?e-8+90:(232>e?(o=(e-=16)%36,t=(e/36|0)/5,r=(o/6|0)/5,i=o%6/5):t=r=i=(10*(e-232)+8)/255,(n=2*u(t,r,i))?30+(l(i)<<2|l(r)<<1|l(t))+(2^n?0:60):30)},h=(()=>{let t,i,n,o=e=>u.some(t=>e.test(t)),s=globalThis,l=s.process??{},u=l.argv??[],c=l.env??{},p=-1;try{e=","+a(c).join(",")}catch(e){c={},p=0}let d="FORCE_COLOR",f={false:0,0:0,1:1,2:2,3:3}[c[d]]??-1,h=d in c&&f||o(/^--color=?(true|always)?$/);return h&&(p=f),~p||(t=c,i=!!c.PM2_HOME||c.NEXT_RUNTIME?.includes("edge")||!!l.stdout?.isTTY,n="win32"===l.platform,r=t.TERM,p=({"24bit":3,truecolor:3,ansi256:2,ansi:1})[t.COLORTERM]||(t.CI?/,GITHUB/.test(e)?3:1:i&&"dumb"!==r?n?3:/-256/.test(r)?2:1:0)),!f||c.NO_COLOR||o(/^--(no-color|color=(false|never))$/)?0:s.window?.chrome||h&&!p?3:p})(),m={open:"",close:""},g={},w=({p:e},{open:t,close:r})=>{let n=(e,...i)=>{if(!e){if(t&&t===r)return t;if((e??"")==="")return""}let o,s=e.raw?String.raw({raw:e},...i):""+e,a=n.p,l=a.o,u=a.c;if(s.includes("\x1b"))for(;a;a=a.p){let{open:e,close:t}=a,r=t.length,i="",n=0;if(r)for(;~(o=s.indexOf(t,n));n=o+r)i+=s.slice(n,o)+e;s=i+s.slice(n)}return l+(s.includes("\n")?s.replace(/(\r?\n)/g,u+"$1"+l):s)+u},s=t,a=r;return e&&(s=e.o+t,a=r+e.c),o(n,i),n.p={open:t,close:r,o:s,c:a,p:e},n.open=s,n.close=a,n},y=function(e=h){let t={Ansis:y,isSupported:()=>r,strip:e=>e.replace(/[][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g,""),extend(e){for(let t in e){let r=e[t],i=(typeof r)[0],o="s"===i?v(...p(r)):r;g[t]="f"===i?{get(){return(...e)=>w(this,r(...e))}}:{get(){let e=w(this,o);return n(this,t,{value:e}),e}}}return o(t,i=s({},g)),t}},r=e>0,a=(e,t)=>r?{open:`[${e}m`,close:`[${t}m`}:m,l=e=>t=>e(...p(t)),u=(e,t)=>(r,i,n)=>a(`${e}8;2;${r};${i};${n}`,t),c=(e,t)=>(r,i,n)=>a(f(d(r,i,n))+e,t),b=e=>(t,r,i)=>e(d(t,r,i)),v=u(3,39),O=u(4,49),E=e=>a("38;5;"+e,39),j=e=>a("48;5;"+e,49);2===e?(v=b(E),O=b(j)):1===e&&(v=c(0,39),O=c(10,49),E=e=>a(f(e),39),j=e=>a(f(e)+10,49));let x,P={fg:E,bg:j,rgb:v,bgRgb:O,hex:l(v),bgHex:l(O),visible:m,reset:a(0,0),bold:a(1,22),dim:a(2,22),italic:a(3,23),underline:a(4,24),inverse:a(7,27),hidden:a(8,28),strikethrough:a(9,29)},C="Bright";return"black,red,green,yellow,blue,magenta,cyan,white,gray".split(",").map((e,t)=>{x="bg"+e[0].toUpperCase()+e.slice(1),8>t?(P[e+C]=a(90+t,39),P[x+C]=a(100+t,49)):t=60,P[e]=a(30+t,39),P[x]=a(40+t,49)}),t.extend(P)},b=new y;return c.exports=b,b.default=b,c.exports}())&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e;const{Ansis:d,fg:f,bg:h,rgb:m,bgRgb:g,hex:w,bgHex:y,reset:b,inverse:v,hidden:O,visible:E,bold:j,dim:x,italic:P,underline:C,strikethrough:R,black:$,red:q,green:z,yellow:_,blue:S,magenta:T,cyan:A,white:M,gray:k,redBright:I,greenBright:B,yellowBright:F,blueBright:N,magentaBright:D,cyanBright:L,whiteBright:U,bgBlack:Z,bgRed:H,bgGreen:Y,bgYellow:Q,bgBlue:X,bgMagenta:G,bgCyan:W,bgWhite:J,bgGray:K,bgRedBright:V,bgGreenBright:ee,bgYellowBright:et,bgBlueBright:er,bgMagentaBright:ei,bgCyanBright:en,bgWhiteBright:eo}=p;function es(e){return e.length}function ea(e,t,r){let i="function"==typeof t?t(e,r):t,{dir:n,base:o}=s.parse(e);return i.replace(/\[path\]/,n?n+"/":"").replace(/\[base\]/,o)}function el(e){return/^\\\\\?\\/.test(e)?e:e.replace(/\\/g,"/")}async function eu(e){let t=await Promise.all((await n.readdir(e)).map(t=>s.join(e,t))),r=0,i=[];for(;r!==es(t);){let e=t[r],o=await n.stat(e);if(o.isDirectory()){let r=await n.readdir(e);t.push(...r.map(t=>s.join(e,t)))}o.isFile()&&i.push(e),r++}return i}const ec=new TextEncoder;function ep(e){return"string"==typeof e?ec.encode(e):e}function ed(){}function ef(e){return"gz"===e?"gzip":"brotli"===e||"br"===e?"brotliCompress":"zstd"===e?"zstandard":e}async function eh(e,t,r){try{return await t(e,r)}catch(e){return Promise.reject(e)}}const em={gzip:{level:u.constants.Z_BEST_COMPRESSION},brotliCompress:{params:{[u.constants.BROTLI_PARAM_QUALITY]:u.constants.BROTLI_MAX_QUALITY}},deflate:{level:u.constants.Z_BEST_COMPRESSION},deflateRaw:{level:u.constants.Z_BEST_COMPRESSION},zstandard:{}};function eg(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}class ew{enqueue(e){this.queue.push(e),this.run()}async run(){for(;this.running<this.maxConcurrent&&this.queue.length;){let e=this.queue.shift();this.running++;try{await e()}catch(e){this.errors.push(e)}finally{this.running--,this.run()}}}async wait(){for(;this.running;)await new Promise(e=>setTimeout(e,0));if(es(this.errors))throw AggregateError(this.errors,"task failed")}constructor(e){eg(this,"maxConcurrent",void 0),eg(this,"queue",void 0),eg(this,"running",void 0),eg(this,"errors",void 0),this.maxConcurrent=e,this.queue=[],this.errors=[],this.running=0}}const ey="vite-plugin-compression",eb=(()=>{let e=o.cpus()||{length:1};return 1===e.length?10:Math.max(1,e.length-1)})();function ev(e){var t;let r=new Set,i=(e,t)=>el(s.resolve(e,t));return(null==(t=e.build.rollupOptions)?void 0:t.output)?(Array.isArray(e.build.rollupOptions.output)?e.build.rollupOptions.output:[e.build.rollupOptions.output]).forEach(t=>{("object"!=typeof t||es(Object.keys(t)))&&r.add(i(e.root,t.dir||e.build.outDir))}):r.add(i(e.root,e.build.outDir)),r}async function eO(e,t){let r=!("copyPublicDir"in e.build)||e.build.copyPublicDir;if(e.publicDir&&r&&i.existsSync(e.publicDir)){let r=await eu(e.publicDir),i=s.join(e.root,s.relative(e.root,e.publicDir));r.forEach(e=>{t(el(s.relative(i,e)),e)})}}function eE(e,t){if("AggregateError"!==e.name||!("errors"in e))return e;let r=e.errors.length,i=e.errors.map((e,t)=>{let r=e.message||"Unknown error";return`[${t+1}] ${r}`}),n=e.errors.map((e,t)=>{let r=e.stack||e.message||"No stack trace available";return`--- Error ${t+1} --- | ||
| ${r}`}),o=[`Compression failed in ${t} with ${r} error(s):`,"",...i].join("\n"),s=Error(o);return s.name="CompressionError",s.stack=[`CompressionError: ${o}`,"","Combined stack traces:",...n].join("\n"),s.cause=e.errors,s}function ej(e={}){let t,{include:i=/\.(html|xml|css|json|js|mjs|svg|yaml|yml|toml)$/,exclude:o,threshold:a=0,algorithms:c=["gzip","brotliCompress"],filename:d,deleteOriginalAssets:f=!1,skipIfLargerOrEqual:h=!0,logLevel:m="info"}=e,g=[];c.forEach(e=>{"string"==typeof e?g.push(ex(e)):"object"==typeof e&&Array.isArray(e)&&g.push(e)});let w=r.createFilter(i,o),y=[],b=[],{msgs:v,cleanup:O}=function(){let e=[],t=process.stdout.write.bind(process.stdout);return process.stdout.write=function(...r){let[i]=r,n="string"==typeof i?i:i.toString();return n.includes("built in")?(e.push(n),!1):t.apply(this,r)},{cleanup:()=>process.stdout.write=t,msgs:e}}(),E=process.cwd(),j=g.map(([e,t])=>{let r="string"==typeof e?ef(e):e;return{algorithm:r,algorithmFunction:"string"==typeof r?function(e){let t=ef(e);if("zstandard"===t){let[e,t]=process.versions.node.split(".").map(e=>+e);if(!(e>23||23===e&&t>=8||22===e&&t>=15))throw Error(`Node.js ${process.versions.node} does not support zstd compression. Requires Node.js >= 22.15.0 or >= 23.8.0`);if(!u.zstdCompress)throw Error("zstd compression is not available in this Node.js build");return{algorithm:l.promisify(u.zstdCompress)}}let r=t in u?t:"gzip";return{algorithm:l.promisify(u[r])}}(r).algorithm:r,options:t,filename:null!=d?d:"brotliCompress"===r?"[path][base].br":"zstandard"===r?"[path][base].zst":"[path][base].gz"}}),x=new ew(eb),P=async function(e,t){for(let e in t){if(!w(e))continue;let r=t[e],i=ep("asset"===r.type?r.source:r.code),n=es(i);n<a||x.enqueue(async()=>{for(let r=0;r<j.length;r++){let o=j[r],s=r===j.length-1,a=ea(e,o.filename,{options:o.options,algorithm:o.algorithm}),l=await eh(i,o.algorithmFunction,o.options);if(h&&es(l)>=n)return;s&&(f||e===a)&&Reflect.deleteProperty(t,e),this.emitFile({type:"asset",fileName:a,source:l})}})}await x.wait().catch(e=>{"silent"!==m&&this.error(eE(e,"bundle compression"))})},C={resolve:ed},R={staticOutputs:new Set,done:new Promise(e=>{C.resolve=e})},$=new Intl.NumberFormat("en",{maximumFractionDigits:2,minimumFractionDigits:2}),q=e=>`${$.format(e/1e3)} kB`;return{name:ey,apply:"build",enforce:"post",api:R,async configResolved(e){b.push(...ev(e)),await eO(e,e=>{y.push(e)});let r=e.plugins.find(e=>"vite:build-import-analysis"===e.name);if(!r)throw Error("[vite-plugin-compression] Can't be work in versions lower than vite at 2.0.0");let i=r.generateBundle;if("object"==typeof i&&i.handler){let e=i.handler;i.handler=async function(...t){await e.apply(this,t),await P.apply(this,t)}}"function"==typeof i&&(r.generateBundle=async function(...e){await i.apply(this,e),await P.apply(this,e)}),t=e.logger,E=e.root},async closeBundle(){let e=[],r=async(t,r,i)=>{let o=await n.readFile(t);for(let a=0;a<j.length;a++){let l=j[a],u=a===j.length-1,c=await eh(o,l.algorithmFunction,l.options);if(h&&es(c)>=es(o)){R.staticOutputs.has(r)||R.staticOutputs.add(r);return}let p=ea(r,l.filename,{options:l.options,algorithm:l.algorithm});R.staticOutputs.has(p)||R.staticOutputs.add(p);let d=s.join(i,p);u&&f&&d!==t&&await n.rm(t,{recursive:!0,force:!0}),await n.writeFile(d,c),e.push({dest:s.relative(E,i)+"/",file:p,size:es(c)})}},i=async(e,t)=>{let i=s.join(e,t);if(!w(i)&&!R.staticOutputs.has(t))return void R.staticOutputs.add(t);let{size:o}=await n.stat(i);if(o<a){R.staticOutputs.has(t)||R.staticOutputs.add(t);return}await r(i,t,e)};for(let e of b)for(let t of y)x.enqueue(()=>i(e,t));if(await x.wait().catch(e=>e),C.resolve(),O(),"silent"!==m&&t){let r=e.reduce((e,t)=>Math.max(e,(t.dest+t.file).length),0);for(let{dest:i,file:n,size:o}of e){let e=n.padEnd(r);t.info(p.dim(i)+p.green(e)+p.bold(p.dim(q(o))))}}for(let e of v)console.info(e)}}}function ex(e,t){if("string"==typeof e){let r=ef(e);if(r in em){let e={...em[r]};return t&&Object.assign(e,t),[r,e]}throw Error(`[vite-plugin-compression] Unsupported algorithm: ${e}`)}return[e,t||{}]}ej.getPluginAPI=e=>{var t;return null==(t=e.find(e=>e.name===ey))?void 0:t.api},exports.compression=ej,exports.default=ej,exports.defineAlgorithm=ex,exports.tarball=function(e={}){let t,{dest:r}=e,o=[],l=[],u=[],c=process.cwd(),p=function(){let e=a.createPack(),t=[],r={dests:[],root:""};return{add:t=>{e.add(ep(t.content),{filename:t.filename})},setup:e=>{Object.assign(r,e),r.dests.forEach(e=>{let n=el(s.resolve(r.root,e+".tar")),o=el(s.dirname(n));el(r.root)!==o&&i.mkdirSync(o,{recursive:!0});let a=i.createWriteStream(n);t.push(a)})},done:async()=>{e.done(),await Promise.all(t.map(t=>new Promise((r,i)=>{t.on("error",i),t.on("finish",r),e.receiver.pipe(t)}))),t.length=0}}}(),d=new ew(eb);return{name:"vite-plugin-tarball",enforce:"post",async configResolved(e){l.push(...ev(e)),c=e.root,u=r?[r]:l,(t=ej.getPluginAPI(e.plugins))||await eO(e,e=>{o.push(e)}),p.setup({dests:u,root:c})},writeBundle(e,t){for(let e in t){let r=t[e];p.add({filename:e,content:"asset"===r.type?r.source:r.code})}},async closeBundle(){for(let e of(t&&await t.done,!o.length&&t&&t.staticOutputs.size&&o.push(...t.staticOutputs),l))for(let t of o)d.enqueue(async()=>{let r=s.join(e,t),i=await n.readFile(r);p.add({filename:t,content:i})});await d.wait().catch(e=>{this.error(eE(e,"tarball creation"))}),await p.done()}}}; | ||
| "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e,t,r=require("@rollup/pluginutils"),i=require("fs"),n=require("node:fs/promises"),s=require("os"),o=require("path"),a=require("tar-mini"),l=require("util"),u=require("zlib"),c={exports:{}},p=(e=function(){if(t)return c.exports;t=1;let e,r,i,{defineProperty:n,setPrototypeOf:s,create:o,keys:a}=Object,{round:l,max:u}=Math,p=e=>{let t=/([a-f\d]{3,6})/i.exec(e)?.[1],r=t?.length,i=parseInt(6^r?3^r?"0":t[0]+t[0]+t[1]+t[1]+t[2]+t[2]:t,16);return[i>>16&255,i>>8&255,255&i]},f=(e,t,r)=>e^t||t^r?16+36*l(e/51)+6*l(t/51)+l(r/51):8>e?16:e>248?231:l(24*(e-8)/247)+232,d=e=>{let t,r,i,n,s;return 8>e?30+e:16>e?e-8+90:(232>e?(s=(e-=16)%36,t=(e/36|0)/5,r=(s/6|0)/5,i=s%6/5):t=r=i=(10*(e-232)+8)/255,(n=2*u(t,r,i))?30+(l(i)<<2|l(r)<<1|l(t))+(2^n?0:60):30)},h=(()=>{let t,i,n,s=e=>u.some(t=>e.test(t)),o=globalThis,l=o.process??{},u=l.argv??[],c=l.env??{},p=-1;try{e=","+a(c).join(",")}catch(e){c={},p=0}let f="FORCE_COLOR",d={false:0,0:0,1:1,2:2,3:3}[c[f]]??-1,h=f in c&&d||s(/^--color=?(true|always)?$/);return h&&(p=d),~p||(t=c,i=!!c.PM2_HOME||c.NEXT_RUNTIME?.includes("edge")||!!l.stdout?.isTTY,n="win32"===l.platform,r=t.TERM,p=({"24bit":3,truecolor:3,ansi256:2,ansi:1})[t.COLORTERM]||(t.CI?/,GITHUB/.test(e)?3:1:i&&"dumb"!==r?n?3:/-256/.test(r)?2:1:0)),!d||c.NO_COLOR||s(/^--(no-color|color=(false|never))$/)?0:o.window?.chrome||h&&!p?3:p})(),m={open:"",close:""},g={},y=({p:e},{open:t,close:r})=>{let n=(e,...i)=>{if(!e){if(t&&t===r)return t;if((e??"")==="")return""}let s,o=e.raw?String.raw({raw:e},...i):""+e,a=n.p,l=a.o,u=a.c;if(o.includes("\x1b"))for(;a;a=a.p){let{open:e,close:t}=a,r=t.length,i="",n=0;if(r)for(;~(s=o.indexOf(t,n));n=s+r)i+=o.slice(n,s)+e;o=i+o.slice(n)}return l+(o.includes("\n")?o.replace(/(\r?\n)/g,u+"$1"+l):o)+u},o=t,a=r;return e&&(o=e.o+t,a=r+e.c),s(n,i),n.p={open:t,close:r,o:o,c:a,p:e},n.open=o,n.close=a,n},w=function(e=h){let t={Ansis:w,isSupported:()=>r,strip:e=>e.replace(/[][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g,""),extend(e){for(let t in e){let r=e[t],i=(typeof r)[0],s="s"===i?v(...p(r)):r;g[t]="f"===i?{get(){return(...e)=>y(this,r(...e))}}:{get(){let e=y(this,s);return n(this,t,{value:e}),e}}}return s(t,i=o({},g)),t}},r=e>0,a=(e,t)=>r?{open:`[${e}m`,close:`[${t}m`}:m,l=e=>t=>e(...p(t)),u=(e,t)=>(r,i,n)=>a(`${e}8;2;${r};${i};${n}`,t),c=(e,t)=>(r,i,n)=>a(d(f(r,i,n))+e,t),b=e=>(t,r,i)=>e(f(t,r,i)),v=u(3,39),O=u(4,49),E=e=>a("38;5;"+e,39),j=e=>a("48;5;"+e,49);2===e?(v=b(E),O=b(j)):1===e&&(v=c(0,39),O=c(10,49),E=e=>a(d(e),39),j=e=>a(d(e)+10,49));let x,P={fg:E,bg:j,rgb:v,bgRgb:O,hex:l(v),bgHex:l(O),visible:m,reset:a(0,0),bold:a(1,22),dim:a(2,22),italic:a(3,23),underline:a(4,24),inverse:a(7,27),hidden:a(8,28),strikethrough:a(9,29)},C="Bright";return"black,red,green,yellow,blue,magenta,cyan,white,gray".split(",").map((e,t)=>{x="bg"+e[0].toUpperCase()+e.slice(1),8>t?(P[e+C]=a(90+t,39),P[x+C]=a(100+t,49)):t=60,P[e]=a(30+t,39),P[x]=a(40+t,49)}),t.extend(P)},b=new w;return c.exports=b,b.default=b,c.exports}())&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e;const{Ansis:f,fg:d,bg:h,rgb:m,bgRgb:g,hex:y,bgHex:w,reset:b,inverse:v,hidden:O,visible:E,bold:j,dim:x,italic:P,underline:C,strikethrough:R,black:$,red:q,green:z,yellow:S,blue:_,magenta:k,cyan:T,white:A,gray:M,redBright:I,greenBright:B,yellowBright:F,blueBright:N,magentaBright:D,cyanBright:L,whiteBright:U,bgBlack:Z,bgRed:H,bgGreen:Y,bgYellow:Q,bgBlue:X,bgMagenta:G,bgCyan:W,bgWhite:J,bgGray:K,bgRedBright:V,bgGreenBright:ee,bgYellowBright:et,bgBlueBright:er,bgMagentaBright:ei,bgCyanBright:en,bgWhiteBright:es}=p;function eo(e){return e.length}function ea(e){return/^\\\\\?\\/.test(e)?e:e.replace(/\\/g,"/")}async function el(e){let t=await Promise.all((await n.readdir(e)).map(t=>o.join(e,t))),r=0,i=[];for(;r!==eo(t);){let e=t[r],s=await n.stat(e);if(s.isDirectory()){let r=await n.readdir(e);t.push(...r.map(t=>o.join(e,t)))}s.isFile()&&i.push(e),r++}return i}const eu=new TextEncoder;function ec(e){return"string"==typeof e?eu.encode(e):e}function ep(){}function ef(e){return"gz"===e?"gzip":"brotli"===e||"br"===e?"brotliCompress":"zstd"===e?"zstandard":e}async function ed(e,t,r){try{return await t(e,r)}catch(e){return Promise.reject(e)}}const eh={gzip:{level:u.constants.Z_BEST_COMPRESSION},brotliCompress:{params:{[u.constants.BROTLI_PARAM_QUALITY]:u.constants.BROTLI_MAX_QUALITY}},deflate:{level:u.constants.Z_BEST_COMPRESSION},deflateRaw:{level:u.constants.Z_BEST_COMPRESSION},zstandard:{}};function em(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}class eg{enqueue(e){this.queue.push(e),this.run()}async run(){for(;this.running<this.maxConcurrent&&this.queue.length;){let e=this.queue.shift();this.running++;try{await e()}catch(e){this.errors.push(e)}finally{this.running--,this.run()}}}async wait(){for(;this.running;)await new Promise(e=>setTimeout(e,0));if(eo(this.errors))throw AggregateError(this.errors,"task failed")}constructor(e){em(this,"maxConcurrent",void 0),em(this,"queue",void 0),em(this,"running",void 0),em(this,"errors",void 0),this.maxConcurrent=e,this.queue=[],this.errors=[],this.running=0}}const ey="vite-plugin-compression",ew=(()=>{let e=s.cpus()||{length:1};return 1===e.length?10:Math.max(1,e.length-1)})();function eb(e){var t;let r=new Set,i=(e,t)=>ea(o.resolve(e,t));return(null==(t=e.build.rollupOptions)?void 0:t.output)?(Array.isArray(e.build.rollupOptions.output)?e.build.rollupOptions.output:[e.build.rollupOptions.output]).forEach(t=>{("object"!=typeof t||eo(Object.keys(t)))&&r.add(i(e.root,t.dir||e.build.outDir))}):r.add(i(e.root,e.build.outDir)),r}async function ev(e,t){let r=!("copyPublicDir"in e.build)||e.build.copyPublicDir;if(e.publicDir&&r&&i.existsSync(e.publicDir)){let r=await el(e.publicDir),i=o.join(e.root,o.relative(e.root,e.publicDir));r.forEach(e=>{t(ea(o.relative(i,e)),e)})}}function eO(e,t){if("AggregateError"!==e.name||!("errors"in e))return e;let r=e.errors.length,i=e.errors.map((e,t)=>{let r=e.message||"Unknown error";return`[${t+1}] ${r}`}),n=e.errors.map((e,t)=>{let r=e.stack||e.message||"No stack trace available";return`--- Error ${t+1} --- | ||
| ${r}`}),s=[`Compression failed in ${t} with ${r} error(s):`,"",...i].join("\n"),o=Error(s);return o.name="CompressionError",o.stack=[`CompressionError: ${s}`,"","Combined stack traces:",...n].join("\n"),o.cause=e.errors,o}function eE(e={}){let t,{include:s=/\.(html|xml|css|json|js|mjs|svg|yaml|yml|toml)$/,exclude:a,threshold:c=0,algorithms:f=["gzip","brotliCompress"],filename:d,deleteOriginalAssets:h=!1,skipIfLargerOrEqual:m=!0,logLevel:g="info"}=e,y=[];f.forEach(e=>{"string"==typeof e?y.push(ej(e)):"object"==typeof e&&Array.isArray(e)&&y.push(e)});let w=r.createFilter(s,a),b=[],v=[],{msgs:O,cleanup:E}=function(){let e=[],t=process.stdout.write.bind(process.stdout);return process.stdout.write=function(...r){let[i]=r,n="string"==typeof i?i:i.toString();return n.includes("built in")?(e.push(n),!1):t.apply(this,r)},{cleanup:()=>process.stdout.write=t,msgs:e}}(),j=process.cwd(),x=y.map(([e,t])=>{let r="string"==typeof e?ef(e):e;return{algorithm:r,algorithmFunction:"string"==typeof r?function(e){let t=ef(e);if("zstandard"===t){let[e,t]=process.versions.node.split(".").map(e=>+e);if(!(e>23||23===e&&t>=8||22===e&&t>=15))throw Error(`Node.js ${process.versions.node} does not support zstd compression. Requires Node.js >= 22.15.0 or >= 23.8.0`);if(!u.zstdCompress)throw Error("zstd compression is not available in this Node.js build");return{algorithm:l.promisify(u.zstdCompress)}}let r=t in u?t:"gzip";return{algorithm:l.promisify(u[r])}}(r).algorithm:r,options:t,filename:null!=d?d:"brotliCompress"===r?"[path][base].br":"zstandard"===r?"[path][base].zst":"[path][base].gz"}}),P=async(e,t,r)=>{let i=eo(e);for(let n=0;n<x.length;n++){let s=x[n],a=n===x.length-1,l=function(e,t,r){let i="function"==typeof t?t(e,r):t,{dir:n,base:s}=o.parse(e);return i.replace(/\[path\]/,n?n+"/":"").replace(/\[base\]/,s)}(t,s.filename,{options:s.options,algorithm:s.algorithm}),u=await ed(e,s.algorithmFunction,s.options);if(m&&eo(u)>=i){r.skip(t);continue}await r.pass(l,a,u)}},C=new eg(ew),R=async function(e,t){for(let e in t){if(!w(e))continue;let r=t[e],i=ec("asset"===r.type?r.source:r.code);eo(i)<c||C.enqueue(async()=>{await P(i,e,{skip:ep,pass:(r,i,n)=>{i&&(h||e===r)&&Reflect.deleteProperty(t,e),this.emitFile({type:"asset",fileName:r,source:n})}})})}await C.wait().catch(e=>{"silent"!==g&&this.error(eO(e,"bundle compression"))})},$={resolve:ep},q={staticOutputs:new Set,done:new Promise(e=>{$.resolve=e})},z=new Intl.NumberFormat("en",{maximumFractionDigits:2,minimumFractionDigits:2}),S=e=>`${z.format(e/1e3)} kB`;return{name:ey,apply:"build",enforce:"post",api:q,async configResolved(e){v.push(...eb(e)),await ev(e,e=>{b.push(e)});let r=e.plugins.find(e=>"vite:build-import-analysis"===e.name);if(!r)throw Error("[vite-plugin-compression] Can't be work in versions lower than vite at 2.0.0");let i=r.generateBundle;if("object"==typeof i&&i.handler){let e=i.handler;i.handler=async function(...t){await e.apply(this,t),await R.apply(this,t)}}"function"==typeof i&&(r.generateBundle=async function(...e){await i.apply(this,e),await R.apply(this,e)}),t=e.logger,j=e.root},async closeBundle(){let r=[],s=async(e,t)=>{let i=o.join(e,t);if(!w(i)&&!q.staticOutputs.has(t))return void q.staticOutputs.add(t);let{size:s}=await n.stat(i);if(s<c){q.staticOutputs.has(t)||q.staticOutputs.add(t);return}let a=await n.readFile(i);await P(a,t,{skip:e=>{q.staticOutputs.has(e)||q.staticOutputs.add(e)},pass:async(t,s,a)=>{q.staticOutputs.has(t)||q.staticOutputs.add(t);let l=o.join(e,t);s&&h&&l!==i&&await n.rm(i,{recursive:!0,force:!0}),await n.writeFile(l,a),r.push({dest:o.relative(j,e)+"/",file:t,size:eo(a)})}})};if(e.artifacts&&"function"==typeof e.artifacts){let t=e.artifacts();for(let e of v)for(let r of t)if(i.existsSync(r.src)){let t=o.basename(r.src),n=r.replace?r.replace(e,t):o.join(e,t);i.cpSync(r.src,n,{recursive:!0}),b.push(ea(o.relative(e,n)))}}for(let e of v)for(let t of b)C.enqueue(()=>s(e,t));if(await C.wait().catch(e=>e),$.resolve(),E(),"silent"!==g&&t){let e=r.reduce((e,t)=>Math.max(e,(t.dest+t.file).length),0);for(let{dest:i,file:n,size:s}of r){let r=n.padEnd(e);t.info(p.dim(i)+p.green(r)+p.bold(p.dim(S(s))))}}for(let e of O)console.info(e)}}}function ej(e,t){if("string"==typeof e){let r=ef(e);if(r in eh){let e={...eh[r]};return t&&Object.assign(e,t),[r,e]}throw Error(`[vite-plugin-compression] Unsupported algorithm: ${e}`)}return[e,t||{}]}eE.getPluginAPI=e=>{var t;return null==(t=e.find(e=>e.name===ey))?void 0:t.api},exports.compression=eE,exports.default=eE,exports.defineAlgorithm=ej,exports.tarball=function(e={}){let t,{dest:r}=e,s=[],l=[],u=[],c=process.cwd(),p=function(){let e=a.createPack(),t=[],r={dests:[],root:""};return{add:t=>{e.add(ec(t.content),{filename:t.filename})},setup:e=>{Object.assign(r,e),r.dests.forEach(e=>{let n=ea(o.resolve(r.root,e+".tar")),s=ea(o.dirname(n));ea(r.root)!==s&&i.mkdirSync(s,{recursive:!0});let a=i.createWriteStream(n);t.push(a)})},done:async()=>{e.done(),await Promise.all(t.map(t=>new Promise((r,i)=>{t.on("error",i),t.on("finish",r),e.receiver.pipe(t)}))),t.length=0}}}(),f=new eg(ew);return{name:"vite-plugin-tarball",enforce:"post",async configResolved(e){l.push(...eb(e)),c=e.root,u=r?[r]:l,(t=eE.getPluginAPI(e.plugins))||await ev(e,e=>{s.push(e)}),p.setup({dests:u,root:c})},writeBundle(e,t){for(let e in t){let r=t[e];p.add({filename:e,content:"asset"===r.type?r.source:r.code})}},async closeBundle(){for(let e of(t&&await t.done,!s.length&&t&&t.staticOutputs.size&&s.push(...t.staticOutputs),l))for(let t of s)f.enqueue(async()=>{let r=o.join(e,t),i=await n.readFile(r);p.add({filename:t,content:i})});await f.wait().catch(e=>{this.error(eO(e,"tarball creation"))}),await p.done()}}}; |
+2
-2
@@ -1,2 +0,2 @@ | ||
| import{createFilter as t}from"@rollup/pluginutils";import e from"fs";import r from"node:fs/promises";import i from"os";import n from"path";import{createPack as o}from"tar-mini";import s from"util";import a from"zlib";var l,u,c={exports:{}},p=(l=function(){if(u)return c.exports;u=1;let t,e,r,{defineProperty:i,setPrototypeOf:n,create:o,keys:s}=Object,{round:a,max:l}=Math,p=t=>{let e=/([a-f\d]{3,6})/i.exec(t)?.[1],r=e?.length,i=parseInt(6^r?3^r?"0":e[0]+e[0]+e[1]+e[1]+e[2]+e[2]:e,16);return[i>>16&255,i>>8&255,255&i]},f=(t,e,r)=>t^e||e^r?16+36*a(t/51)+6*a(e/51)+a(r/51):8>t?16:t>248?231:a(24*(t-8)/247)+232,d=t=>{let e,r,i,n,o;return 8>t?30+t:16>t?t-8+90:(232>t?(o=(t-=16)%36,e=(t/36|0)/5,r=(o/6|0)/5,i=o%6/5):e=r=i=(10*(t-232)+8)/255,(n=2*l(e,r,i))?30+(a(i)<<2|a(r)<<1|a(e))+(2^n?0:60):30)},m=(()=>{let r,i,n,o=t=>u.some(e=>t.test(e)),a=globalThis,l=a.process??{},u=l.argv??[],c=l.env??{},p=-1;try{t=","+s(c).join(",")}catch(t){c={},p=0}let f="FORCE_COLOR",d={false:0,0:0,1:1,2:2,3:3}[c[f]]??-1,m=f in c&&d||o(/^--color=?(true|always)?$/);return m&&(p=d),~p||(r=c,i=!!c.PM2_HOME||c.NEXT_RUNTIME?.includes("edge")||!!l.stdout?.isTTY,n="win32"===l.platform,e=r.TERM,p=({"24bit":3,truecolor:3,ansi256:2,ansi:1})[r.COLORTERM]||(r.CI?/,GITHUB/.test(t)?3:1:i&&"dumb"!==e?n?3:/-256/.test(e)?2:1:0)),!d||c.NO_COLOR||o(/^--(no-color|color=(false|never))$/)?0:a.window?.chrome||m&&!p?3:p})(),h={open:"",close:""},g={},w=({p:t},{open:e,close:i})=>{let o=(t,...r)=>{if(!t){if(e&&e===i)return e;if((t??"")==="")return""}let n,s=t.raw?String.raw({raw:t},...r):""+t,a=o.p,l=a.o,u=a.c;if(s.includes("\x1b"))for(;a;a=a.p){let{open:t,close:e}=a,r=e.length,i="",o=0;if(r)for(;~(n=s.indexOf(e,o));o=n+r)i+=s.slice(o,n)+t;s=i+s.slice(o)}return l+(s.includes("\n")?s.replace(/(\r?\n)/g,u+"$1"+l):s)+u},s=e,a=i;return t&&(s=t.o+e,a=i+t.c),n(o,r),o.p={open:e,close:i,o:s,c:a,p:t},o.open=s,o.close=a,o},y=function(t=m){let e={Ansis:y,isSupported:()=>s,strip:t=>t.replace(/[][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g,""),extend(t){for(let e in t){let r=t[e],n=(typeof r)[0],o="s"===n?v(...p(r)):r;g[e]="f"===n?{get(){return(...t)=>w(this,r(...t))}}:{get(){let t=w(this,o);return i(this,e,{value:t}),t}}}return n(e,r=o({},g)),e}},s=t>0,a=(t,e)=>s?{open:`[${t}m`,close:`[${e}m`}:h,l=t=>e=>t(...p(e)),u=(t,e)=>(r,i,n)=>a(`${t}8;2;${r};${i};${n}`,e),c=(t,e)=>(r,i,n)=>a(d(f(r,i,n))+t,e),b=t=>(e,r,i)=>t(f(e,r,i)),v=u(3,39),O=u(4,49),E=t=>a("38;5;"+t,39),j=t=>a("48;5;"+t,49);2===t?(v=b(E),O=b(j)):1===t&&(v=c(0,39),O=c(10,49),E=t=>a(d(t),39),j=t=>a(d(t)+10,49));let C,x={fg:E,bg:j,rgb:v,bgRgb:O,hex:l(v),bgHex:l(O),visible:h,reset:a(0,0),bold:a(1,22),dim:a(2,22),italic:a(3,23),underline:a(4,24),inverse:a(7,27),hidden:a(8,28),strikethrough:a(9,29)},P="Bright";return"black,red,green,yellow,blue,magenta,cyan,white,gray".split(",").map((t,e)=>{C="bg"+t[0].toUpperCase()+t.slice(1),8>e?(x[t+P]=a(90+e,39),x[C+P]=a(100+e,49)):e=60,x[t]=a(30+e,39),x[C]=a(40+e,49)}),e.extend(x)},b=new y;return c.exports=b,b.default=b,c.exports}())&&l.__esModule&&Object.prototype.hasOwnProperty.call(l,"default")?l.default:l;let{Ansis:f,fg:d,bg:m,rgb:h,bgRgb:g,hex:w,bgHex:y,reset:b,inverse:v,hidden:O,visible:E,bold:j,dim:C,italic:x,underline:P,strikethrough:R,black:$,red:z,green:S,yellow:T,blue:A,magenta:_,cyan:I,white:M,gray:k,redBright:B,greenBright:F,yellowBright:N,blueBright:q,magentaBright:D,cyanBright:L,whiteBright:U,bgBlack:Z,bgRed:H,bgGreen:Y,bgYellow:Q,bgBlue:X,bgMagenta:G,bgCyan:W,bgWhite:J,bgGray:K,bgRedBright:V,bgGreenBright:tt,bgYellowBright:te,bgBlueBright:tr,bgMagentaBright:ti,bgCyanBright:tn,bgWhiteBright:to}=p;function ts(t){return t.length}function ta(t,e,r){let i="function"==typeof e?e(t,r):e,{dir:o,base:s}=n.parse(t);return i.replace(/\[path\]/,o?o+"/":"").replace(/\[base\]/,s)}function tl(t){return/^\\\\\?\\/.test(t)?t:t.replace(/\\/g,"/")}async function tu(t){let e=await Promise.all((await r.readdir(t)).map(e=>n.join(t,e))),i=0,o=[];for(;i!==ts(e);){let t=e[i],s=await r.stat(t);if(s.isDirectory()){let i=await r.readdir(t);e.push(...i.map(e=>n.join(t,e)))}s.isFile()&&o.push(t),i++}return o}let tc=new TextEncoder;function tp(t){return"string"==typeof t?tc.encode(t):t}function tf(){}function td(t){return"gz"===t?"gzip":"brotli"===t||"br"===t?"brotliCompress":"zstd"===t?"zstandard":t}async function tm(t,e,r){try{return await e(t,r)}catch(t){return Promise.reject(t)}}let th={gzip:{level:a.constants.Z_BEST_COMPRESSION},brotliCompress:{params:{[a.constants.BROTLI_PARAM_QUALITY]:a.constants.BROTLI_MAX_QUALITY}},deflate:{level:a.constants.Z_BEST_COMPRESSION},deflateRaw:{level:a.constants.Z_BEST_COMPRESSION},zstandard:{}};function tg(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}class tw{enqueue(t){this.queue.push(t),this.run()}async run(){for(;this.running<this.maxConcurrent&&this.queue.length;){let t=this.queue.shift();this.running++;try{await t()}catch(t){this.errors.push(t)}finally{this.running--,this.run()}}}async wait(){for(;this.running;)await new Promise(t=>setTimeout(t,0));if(ts(this.errors))throw AggregateError(this.errors,"task failed")}constructor(t){tg(this,"maxConcurrent",void 0),tg(this,"queue",void 0),tg(this,"running",void 0),tg(this,"errors",void 0),this.maxConcurrent=t,this.queue=[],this.errors=[],this.running=0}}let ty="vite-plugin-compression",tb=(()=>{let t=i.cpus()||{length:1};return 1===t.length?10:Math.max(1,t.length-1)})();function tv(t){var e;let r=new Set,i=(t,e)=>tl(n.resolve(t,e));return(null==(e=t.build.rollupOptions)?void 0:e.output)?(Array.isArray(t.build.rollupOptions.output)?t.build.rollupOptions.output:[t.build.rollupOptions.output]).forEach(e=>{("object"!=typeof e||ts(Object.keys(e)))&&r.add(i(t.root,e.dir||t.build.outDir))}):r.add(i(t.root,t.build.outDir)),r}async function tO(t,r){let i=!("copyPublicDir"in t.build)||t.build.copyPublicDir;if(t.publicDir&&i&&e.existsSync(t.publicDir)){let e=await tu(t.publicDir),i=n.join(t.root,n.relative(t.root,t.publicDir));e.forEach(t=>{r(tl(n.relative(i,t)),t)})}}function tE(t,e){if("AggregateError"!==t.name||!("errors"in t))return t;let r=t.errors.length,i=t.errors.map((t,e)=>{let r=t.message||"Unknown error";return`[${e+1}] ${r}`}),n=t.errors.map((t,e)=>{let r=t.stack||t.message||"No stack trace available";return`--- Error ${e+1} --- | ||
| ${r}`}),o=[`Compression failed in ${e} with ${r} error(s):`,"",...i].join("\n"),s=Error(o);return s.name="CompressionError",s.stack=[`CompressionError: ${o}`,"","Combined stack traces:",...n].join("\n"),s.cause=t.errors,s}function tj(t={}){let i,{dest:s}=t,a=[],l=[],u=[],c=process.cwd(),p=function(){let t=o(),r=[],i={dests:[],root:""};return{add:e=>{t.add(tp(e.content),{filename:e.filename})},setup:t=>{Object.assign(i,t),i.dests.forEach(t=>{let o=tl(n.resolve(i.root,t+".tar")),s=tl(n.dirname(o));tl(i.root)!==s&&e.mkdirSync(s,{recursive:!0});let a=e.createWriteStream(o);r.push(a)})},done:async()=>{t.done(),await Promise.all(r.map(e=>new Promise((r,i)=>{e.on("error",i),e.on("finish",r),t.receiver.pipe(e)}))),r.length=0}}}(),f=new tw(tb);return{name:"vite-plugin-tarball",enforce:"post",async configResolved(t){l.push(...tv(t)),c=t.root,u=s?[s]:l,(i=tC.getPluginAPI(t.plugins))||await tO(t,t=>{a.push(t)}),p.setup({dests:u,root:c})},writeBundle(t,e){for(let t in e){let r=e[t];p.add({filename:t,content:"asset"===r.type?r.source:r.code})}},async closeBundle(){for(let t of(i&&await i.done,!a.length&&i&&i.staticOutputs.size&&a.push(...i.staticOutputs),l))for(let e of a)f.enqueue(async()=>{let i=n.join(t,e),o=await r.readFile(i);p.add({filename:e,content:o})});await f.wait().catch(t=>{this.error(tE(t,"tarball creation"))}),await p.done()}}}function tC(e={}){let i,{include:o=/\.(html|xml|css|json|js|mjs|svg|yaml|yml|toml)$/,exclude:l,threshold:u=0,algorithms:c=["gzip","brotliCompress"],filename:f,deleteOriginalAssets:d=!1,skipIfLargerOrEqual:m=!0,logLevel:h="info"}=e,g=[];c.forEach(t=>{"string"==typeof t?g.push(tx(t)):"object"==typeof t&&Array.isArray(t)&&g.push(t)});let w=t(o,l),y=[],b=[],{msgs:v,cleanup:O}=function(){let t=[],e=process.stdout.write.bind(process.stdout);return process.stdout.write=function(...r){let[i]=r,n="string"==typeof i?i:i.toString();return n.includes("built in")?(t.push(n),!1):e.apply(this,r)},{cleanup:()=>process.stdout.write=e,msgs:t}}(),E=process.cwd(),j=g.map(([t,e])=>{let r="string"==typeof t?td(t):t;return{algorithm:r,algorithmFunction:"string"==typeof r?function(t){let e=td(t);if("zstandard"===e){let[t,e]=process.versions.node.split(".").map(t=>+t);if(!(t>23||23===t&&e>=8||22===t&&e>=15))throw Error(`Node.js ${process.versions.node} does not support zstd compression. Requires Node.js >= 22.15.0 or >= 23.8.0`);if(!a.zstdCompress)throw Error("zstd compression is not available in this Node.js build");return{algorithm:s.promisify(a.zstdCompress)}}let r=e in a?e:"gzip";return{algorithm:s.promisify(a[r])}}(r).algorithm:r,options:e,filename:null!=f?f:"brotliCompress"===r?"[path][base].br":"zstandard"===r?"[path][base].zst":"[path][base].gz"}}),C=new tw(tb),x=async function(t,e){for(let t in e){if(!w(t))continue;let r=e[t],i=tp("asset"===r.type?r.source:r.code),n=ts(i);n<u||C.enqueue(async()=>{for(let r=0;r<j.length;r++){let o=j[r],s=r===j.length-1,a=ta(t,o.filename,{options:o.options,algorithm:o.algorithm}),l=await tm(i,o.algorithmFunction,o.options);if(m&&ts(l)>=n)return;s&&(d||t===a)&&Reflect.deleteProperty(e,t),this.emitFile({type:"asset",fileName:a,source:l})}})}await C.wait().catch(t=>{"silent"!==h&&this.error(tE(t,"bundle compression"))})},P={resolve:tf},R={staticOutputs:new Set,done:new Promise(t=>{P.resolve=t})},$=new Intl.NumberFormat("en",{maximumFractionDigits:2,minimumFractionDigits:2}),z=t=>`${$.format(t/1e3)} kB`;return{name:ty,apply:"build",enforce:"post",api:R,async configResolved(t){b.push(...tv(t)),await tO(t,t=>{y.push(t)});let e=t.plugins.find(t=>"vite:build-import-analysis"===t.name);if(!e)throw Error("[vite-plugin-compression] Can't be work in versions lower than vite at 2.0.0");let r=e.generateBundle;if("object"==typeof r&&r.handler){let t=r.handler;r.handler=async function(...e){await t.apply(this,e),await x.apply(this,e)}}"function"==typeof r&&(e.generateBundle=async function(...t){await r.apply(this,t),await x.apply(this,t)}),i=t.logger,E=t.root},async closeBundle(){let t=[],e=async(e,i,o)=>{let s=await r.readFile(e);for(let a=0;a<j.length;a++){let l=j[a],u=a===j.length-1,c=await tm(s,l.algorithmFunction,l.options);if(m&&ts(c)>=ts(s)){R.staticOutputs.has(i)||R.staticOutputs.add(i);return}let p=ta(i,l.filename,{options:l.options,algorithm:l.algorithm});R.staticOutputs.has(p)||R.staticOutputs.add(p);let f=n.join(o,p);u&&d&&f!==e&&await r.rm(e,{recursive:!0,force:!0}),await r.writeFile(f,c),t.push({dest:n.relative(E,o)+"/",file:p,size:ts(c)})}},o=async(t,i)=>{let o=n.join(t,i);if(!w(o)&&!R.staticOutputs.has(i))return void R.staticOutputs.add(i);let{size:s}=await r.stat(o);if(s<u){R.staticOutputs.has(i)||R.staticOutputs.add(i);return}await e(o,i,t)};for(let t of b)for(let e of y)C.enqueue(()=>o(t,e));if(await C.wait().catch(t=>t),P.resolve(),O(),"silent"!==h&&i){let e=t.reduce((t,e)=>Math.max(t,(e.dest+e.file).length),0);for(let{dest:r,file:n,size:o}of t){let t=n.padEnd(e);i.info(p.dim(r)+p.green(t)+p.bold(p.dim(z(o))))}}for(let t of v)console.info(t)}}}function tx(t,e){if("string"==typeof t){let r=td(t);if(r in th){let t={...th[r]};return e&&Object.assign(t,e),[r,t]}throw Error(`[vite-plugin-compression] Unsupported algorithm: ${t}`)}return[t,e||{}]}tC.getPluginAPI=t=>{var e;return null==(e=t.find(t=>t.name===ty))?void 0:e.api};export{tC as compression,tC as default,tx as defineAlgorithm,tj as tarball}; | ||
| import{createFilter as t}from"@rollup/pluginutils";import e from"fs";import r from"node:fs/promises";import i from"os";import n from"path";import{createPack as o}from"tar-mini";import s from"util";import a from"zlib";var l,u,c={exports:{}},p=(l=function(){if(u)return c.exports;u=1;let t,e,r,{defineProperty:i,setPrototypeOf:n,create:o,keys:s}=Object,{round:a,max:l}=Math,p=t=>{let e=/([a-f\d]{3,6})/i.exec(t)?.[1],r=e?.length,i=parseInt(6^r?3^r?"0":e[0]+e[0]+e[1]+e[1]+e[2]+e[2]:e,16);return[i>>16&255,i>>8&255,255&i]},f=(t,e,r)=>t^e||e^r?16+36*a(t/51)+6*a(e/51)+a(r/51):8>t?16:t>248?231:a(24*(t-8)/247)+232,d=t=>{let e,r,i,n,o;return 8>t?30+t:16>t?t-8+90:(232>t?(o=(t-=16)%36,e=(t/36|0)/5,r=(o/6|0)/5,i=o%6/5):e=r=i=(10*(t-232)+8)/255,(n=2*l(e,r,i))?30+(a(i)<<2|a(r)<<1|a(e))+(2^n?0:60):30)},m=(()=>{let r,i,n,o=t=>u.some(e=>t.test(e)),a=globalThis,l=a.process??{},u=l.argv??[],c=l.env??{},p=-1;try{t=","+s(c).join(",")}catch(t){c={},p=0}let f="FORCE_COLOR",d={false:0,0:0,1:1,2:2,3:3}[c[f]]??-1,m=f in c&&d||o(/^--color=?(true|always)?$/);return m&&(p=d),~p||(r=c,i=!!c.PM2_HOME||c.NEXT_RUNTIME?.includes("edge")||!!l.stdout?.isTTY,n="win32"===l.platform,e=r.TERM,p=({"24bit":3,truecolor:3,ansi256:2,ansi:1})[r.COLORTERM]||(r.CI?/,GITHUB/.test(t)?3:1:i&&"dumb"!==e?n?3:/-256/.test(e)?2:1:0)),!d||c.NO_COLOR||o(/^--(no-color|color=(false|never))$/)?0:a.window?.chrome||m&&!p?3:p})(),h={open:"",close:""},g={},y=({p:t},{open:e,close:i})=>{let o=(t,...r)=>{if(!t){if(e&&e===i)return e;if((t??"")==="")return""}let n,s=t.raw?String.raw({raw:t},...r):""+t,a=o.p,l=a.o,u=a.c;if(s.includes("\x1b"))for(;a;a=a.p){let{open:t,close:e}=a,r=e.length,i="",o=0;if(r)for(;~(n=s.indexOf(e,o));o=n+r)i+=s.slice(o,n)+t;s=i+s.slice(o)}return l+(s.includes("\n")?s.replace(/(\r?\n)/g,u+"$1"+l):s)+u},s=e,a=i;return t&&(s=t.o+e,a=i+t.c),n(o,r),o.p={open:e,close:i,o:s,c:a,p:t},o.open=s,o.close=a,o},w=function(t=m){let e={Ansis:w,isSupported:()=>s,strip:t=>t.replace(/[][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g,""),extend(t){for(let e in t){let r=t[e],n=(typeof r)[0],o="s"===n?v(...p(r)):r;g[e]="f"===n?{get(){return(...t)=>y(this,r(...t))}}:{get(){let t=y(this,o);return i(this,e,{value:t}),t}}}return n(e,r=o({},g)),e}},s=t>0,a=(t,e)=>s?{open:`[${t}m`,close:`[${e}m`}:h,l=t=>e=>t(...p(e)),u=(t,e)=>(r,i,n)=>a(`${t}8;2;${r};${i};${n}`,e),c=(t,e)=>(r,i,n)=>a(d(f(r,i,n))+t,e),b=t=>(e,r,i)=>t(f(e,r,i)),v=u(3,39),O=u(4,49),E=t=>a("38;5;"+t,39),j=t=>a("48;5;"+t,49);2===t?(v=b(E),O=b(j)):1===t&&(v=c(0,39),O=c(10,49),E=t=>a(d(t),39),j=t=>a(d(t)+10,49));let x,C={fg:E,bg:j,rgb:v,bgRgb:O,hex:l(v),bgHex:l(O),visible:h,reset:a(0,0),bold:a(1,22),dim:a(2,22),italic:a(3,23),underline:a(4,24),inverse:a(7,27),hidden:a(8,28),strikethrough:a(9,29)},P="Bright";return"black,red,green,yellow,blue,magenta,cyan,white,gray".split(",").map((t,e)=>{x="bg"+t[0].toUpperCase()+t.slice(1),8>e?(C[t+P]=a(90+e,39),C[x+P]=a(100+e,49)):e=60,C[t]=a(30+e,39),C[x]=a(40+e,49)}),e.extend(C)},b=new w;return c.exports=b,b.default=b,c.exports}())&&l.__esModule&&Object.prototype.hasOwnProperty.call(l,"default")?l.default:l;let{Ansis:f,fg:d,bg:m,rgb:h,bgRgb:g,hex:y,bgHex:w,reset:b,inverse:v,hidden:O,visible:E,bold:j,dim:x,italic:C,underline:P,strikethrough:R,black:$,red:z,green:S,yellow:T,blue:k,magenta:A,cyan:_,white:I,gray:M,redBright:B,greenBright:N,yellowBright:q,blueBright:D,magentaBright:F,cyanBright:L,whiteBright:U,bgBlack:Z,bgRed:H,bgGreen:Y,bgYellow:Q,bgBlue:X,bgMagenta:G,bgCyan:W,bgWhite:J,bgGray:K,bgRedBright:V,bgGreenBright:tt,bgYellowBright:te,bgBlueBright:tr,bgMagentaBright:ti,bgCyanBright:tn,bgWhiteBright:to}=p;function ts(t){return t.length}function ta(t){return/^\\\\\?\\/.test(t)?t:t.replace(/\\/g,"/")}async function tl(t){let e=await Promise.all((await r.readdir(t)).map(e=>n.join(t,e))),i=0,o=[];for(;i!==ts(e);){let t=e[i],s=await r.stat(t);if(s.isDirectory()){let i=await r.readdir(t);e.push(...i.map(e=>n.join(t,e)))}s.isFile()&&o.push(t),i++}return o}let tu=new TextEncoder;function tc(t){return"string"==typeof t?tu.encode(t):t}function tp(){}function tf(t){return"gz"===t?"gzip":"brotli"===t||"br"===t?"brotliCompress":"zstd"===t?"zstandard":t}async function td(t,e,r){try{return await e(t,r)}catch(t){return Promise.reject(t)}}let tm={gzip:{level:a.constants.Z_BEST_COMPRESSION},brotliCompress:{params:{[a.constants.BROTLI_PARAM_QUALITY]:a.constants.BROTLI_MAX_QUALITY}},deflate:{level:a.constants.Z_BEST_COMPRESSION},deflateRaw:{level:a.constants.Z_BEST_COMPRESSION},zstandard:{}};function th(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}class tg{enqueue(t){this.queue.push(t),this.run()}async run(){for(;this.running<this.maxConcurrent&&this.queue.length;){let t=this.queue.shift();this.running++;try{await t()}catch(t){this.errors.push(t)}finally{this.running--,this.run()}}}async wait(){for(;this.running;)await new Promise(t=>setTimeout(t,0));if(ts(this.errors))throw AggregateError(this.errors,"task failed")}constructor(t){th(this,"maxConcurrent",void 0),th(this,"queue",void 0),th(this,"running",void 0),th(this,"errors",void 0),this.maxConcurrent=t,this.queue=[],this.errors=[],this.running=0}}let ty="vite-plugin-compression",tw=(()=>{let t=i.cpus()||{length:1};return 1===t.length?10:Math.max(1,t.length-1)})();function tb(t){var e;let r=new Set,i=(t,e)=>ta(n.resolve(t,e));return(null==(e=t.build.rollupOptions)?void 0:e.output)?(Array.isArray(t.build.rollupOptions.output)?t.build.rollupOptions.output:[t.build.rollupOptions.output]).forEach(e=>{("object"!=typeof e||ts(Object.keys(e)))&&r.add(i(t.root,e.dir||t.build.outDir))}):r.add(i(t.root,t.build.outDir)),r}async function tv(t,r){let i=!("copyPublicDir"in t.build)||t.build.copyPublicDir;if(t.publicDir&&i&&e.existsSync(t.publicDir)){let e=await tl(t.publicDir),i=n.join(t.root,n.relative(t.root,t.publicDir));e.forEach(t=>{r(ta(n.relative(i,t)),t)})}}function tO(t,e){if("AggregateError"!==t.name||!("errors"in t))return t;let r=t.errors.length,i=t.errors.map((t,e)=>{let r=t.message||"Unknown error";return`[${e+1}] ${r}`}),n=t.errors.map((t,e)=>{let r=t.stack||t.message||"No stack trace available";return`--- Error ${e+1} --- | ||
| ${r}`}),o=[`Compression failed in ${e} with ${r} error(s):`,"",...i].join("\n"),s=Error(o);return s.name="CompressionError",s.stack=[`CompressionError: ${o}`,"","Combined stack traces:",...n].join("\n"),s.cause=t.errors,s}function tE(t={}){let i,{dest:s}=t,a=[],l=[],u=[],c=process.cwd(),p=function(){let t=o(),r=[],i={dests:[],root:""};return{add:e=>{t.add(tc(e.content),{filename:e.filename})},setup:t=>{Object.assign(i,t),i.dests.forEach(t=>{let o=ta(n.resolve(i.root,t+".tar")),s=ta(n.dirname(o));ta(i.root)!==s&&e.mkdirSync(s,{recursive:!0});let a=e.createWriteStream(o);r.push(a)})},done:async()=>{t.done(),await Promise.all(r.map(e=>new Promise((r,i)=>{e.on("error",i),e.on("finish",r),t.receiver.pipe(e)}))),r.length=0}}}(),f=new tg(tw);return{name:"vite-plugin-tarball",enforce:"post",async configResolved(t){l.push(...tb(t)),c=t.root,u=s?[s]:l,(i=tj.getPluginAPI(t.plugins))||await tv(t,t=>{a.push(t)}),p.setup({dests:u,root:c})},writeBundle(t,e){for(let t in e){let r=e[t];p.add({filename:t,content:"asset"===r.type?r.source:r.code})}},async closeBundle(){for(let t of(i&&await i.done,!a.length&&i&&i.staticOutputs.size&&a.push(...i.staticOutputs),l))for(let e of a)f.enqueue(async()=>{let i=n.join(t,e),o=await r.readFile(i);p.add({filename:e,content:o})});await f.wait().catch(t=>{this.error(tO(t,"tarball creation"))}),await p.done()}}}function tj(i={}){let o,{include:l=/\.(html|xml|css|json|js|mjs|svg|yaml|yml|toml)$/,exclude:u,threshold:c=0,algorithms:f=["gzip","brotliCompress"],filename:d,deleteOriginalAssets:m=!1,skipIfLargerOrEqual:h=!0,logLevel:g="info"}=i,y=[];f.forEach(t=>{"string"==typeof t?y.push(tx(t)):"object"==typeof t&&Array.isArray(t)&&y.push(t)});let w=t(l,u),b=[],v=[],{msgs:O,cleanup:E}=function(){let t=[],e=process.stdout.write.bind(process.stdout);return process.stdout.write=function(...r){let[i]=r,n="string"==typeof i?i:i.toString();return n.includes("built in")?(t.push(n),!1):e.apply(this,r)},{cleanup:()=>process.stdout.write=e,msgs:t}}(),j=process.cwd(),x=y.map(([t,e])=>{let r="string"==typeof t?tf(t):t;return{algorithm:r,algorithmFunction:"string"==typeof r?function(t){let e=tf(t);if("zstandard"===e){let[t,e]=process.versions.node.split(".").map(t=>+t);if(!(t>23||23===t&&e>=8||22===t&&e>=15))throw Error(`Node.js ${process.versions.node} does not support zstd compression. Requires Node.js >= 22.15.0 or >= 23.8.0`);if(!a.zstdCompress)throw Error("zstd compression is not available in this Node.js build");return{algorithm:s.promisify(a.zstdCompress)}}let r=e in a?e:"gzip";return{algorithm:s.promisify(a[r])}}(r).algorithm:r,options:e,filename:null!=d?d:"brotliCompress"===r?"[path][base].br":"zstandard"===r?"[path][base].zst":"[path][base].gz"}}),C=async(t,e,r)=>{let i=ts(t);for(let o=0;o<x.length;o++){let s=x[o],a=o===x.length-1,l=function(t,e,r){let i="function"==typeof e?e(t,r):e,{dir:o,base:s}=n.parse(t);return i.replace(/\[path\]/,o?o+"/":"").replace(/\[base\]/,s)}(e,s.filename,{options:s.options,algorithm:s.algorithm}),u=await td(t,s.algorithmFunction,s.options);if(h&&ts(u)>=i){r.skip(e);continue}await r.pass(l,a,u)}},P=new tg(tw),R=async function(t,e){for(let t in e){if(!w(t))continue;let r=e[t],i=tc("asset"===r.type?r.source:r.code);ts(i)<c||P.enqueue(async()=>{await C(i,t,{skip:tp,pass:(r,i,n)=>{i&&(m||t===r)&&Reflect.deleteProperty(e,t),this.emitFile({type:"asset",fileName:r,source:n})}})})}await P.wait().catch(t=>{"silent"!==g&&this.error(tO(t,"bundle compression"))})},$={resolve:tp},z={staticOutputs:new Set,done:new Promise(t=>{$.resolve=t})},S=new Intl.NumberFormat("en",{maximumFractionDigits:2,minimumFractionDigits:2}),T=t=>`${S.format(t/1e3)} kB`;return{name:ty,apply:"build",enforce:"post",api:z,async configResolved(t){v.push(...tb(t)),await tv(t,t=>{b.push(t)});let e=t.plugins.find(t=>"vite:build-import-analysis"===t.name);if(!e)throw Error("[vite-plugin-compression] Can't be work in versions lower than vite at 2.0.0");let r=e.generateBundle;if("object"==typeof r&&r.handler){let t=r.handler;r.handler=async function(...e){await t.apply(this,e),await R.apply(this,e)}}"function"==typeof r&&(e.generateBundle=async function(...t){await r.apply(this,t),await R.apply(this,t)}),o=t.logger,j=t.root},async closeBundle(){let t=[],s=async(e,i)=>{let o=n.join(e,i);if(!w(o)&&!z.staticOutputs.has(i))return void z.staticOutputs.add(i);let{size:s}=await r.stat(o);if(s<c){z.staticOutputs.has(i)||z.staticOutputs.add(i);return}let a=await r.readFile(o);await C(a,i,{skip:t=>{z.staticOutputs.has(t)||z.staticOutputs.add(t)},pass:async(i,s,a)=>{z.staticOutputs.has(i)||z.staticOutputs.add(i);let l=n.join(e,i);s&&m&&l!==o&&await r.rm(o,{recursive:!0,force:!0}),await r.writeFile(l,a),t.push({dest:n.relative(j,e)+"/",file:i,size:ts(a)})}})};if(i.artifacts&&"function"==typeof i.artifacts){let t=i.artifacts();for(let r of v)for(let i of t)if(e.existsSync(i.src)){let t=n.basename(i.src),o=i.replace?i.replace(r,t):n.join(r,t);e.cpSync(i.src,o,{recursive:!0}),b.push(ta(n.relative(r,o)))}}for(let t of v)for(let e of b)P.enqueue(()=>s(t,e));if(await P.wait().catch(t=>t),$.resolve(),E(),"silent"!==g&&o){let e=t.reduce((t,e)=>Math.max(t,(e.dest+e.file).length),0);for(let{dest:r,file:i,size:n}of t){let t=i.padEnd(e);o.info(p.dim(r)+p.green(t)+p.bold(p.dim(T(n))))}}for(let t of O)console.info(t)}}}function tx(t,e){if("string"==typeof t){let r=tf(t);if(r in tm){let t={...tm[r]};return e&&Object.assign(t,e),[r,t]}throw Error(`[vite-plugin-compression] Unsupported algorithm: ${t}`)}return[t,e||{}]}tj.getPluginAPI=t=>{var e;return null==(e=t.find(t=>t.name===ty))?void 0:e.api};export{tj as compression,tj as default,tx as defineAlgorithm,tE as tarball}; |
+1
-1
| { | ||
| "name": "vite-plugin-compression2", | ||
| "version": "2.2.1", | ||
| "version": "2.3.0", | ||
| "packageManager": "pnpm@10.12.1+sha512.f0dda8580f0ee9481c5c79a1d927b9164f2c478e90992ad268bbb2465a736984391d6333d2c327913578b2804af33474ca554ba29c04a8b13060a717675ae3ac", | ||
@@ -5,0 +5,0 @@ "description": "a fast vite compression plugin", |
+1
-0
@@ -101,2 +101,3 @@ <p align="center"> | ||
| | `logLevel` | `string` | `info` | Control sdout info | | ||
| | `artifacts` | `function` | `undefined` | Sometimes you need to copy something to the final output. This option may help you. | | ||
@@ -103,0 +104,0 @@ ### Tarball Plugin Options |
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
Found 1 instance in 1 package
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
Found 1 instance in 1 package
42635
2.12%180
2.86%262
0.38%