vite-plugin-compression2
Advanced tools
+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]},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,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 f="FORCE_COLOR",d={false:0,0:0,1:1,2:2,3:3}[c[f]]??-1,h=f in c&&d||o(/^--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||o(/^--(no-color|color=(false|never))$/)?0:s.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 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},b=function(e=h){let t={Ansis:b,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)=>y(this,r(...e))}}:{get(){let e=y(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(d(f(r,i,n))+e,t),w=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=w(E),O=w(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)},w=new b;return c.exports=w,w.default=w,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:b,reset:w,inverse:v,hidden:O,visible:E,bold:j,dim:x,italic:P,underline:C,strikethrough:_,black:T,red:R,green:A,yellow:S,blue:z,magenta:$,cyan:q,white:M,gray:I,redBright:k,greenBright:B,yellowBright:D,blueBright:F,magentaBright:N,cyanBright:L,whiteBright:U,bgBlack:Z,bgRed:H,bgGreen:Y,bgYellow:Q,bgBlue:X,bgMagenta:G,bgCyan:V,bgWhite:W,bgGray:J,bgRedBright:K,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 ef(){}function ed(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:{params:{[u.constants.ZSTD_c_compressionLevel]:22}}};function eg(e,t){var r,i,n,o;return"function"!=typeof e&&("zstandard"===e?(null!=(i=null==t||null==(r=t.params)?void 0:r[u.constants.ZSTD_c_compressionLevel])?i:3)>=20:"brotliCompress"===e&&(null!=(o=null==t||null==(n=t.params)?void 0:n[u.constants.BROTLI_PARAM_QUALITY])?o:11)>=10)}function ey(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}class eb{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){ey(this,"maxConcurrent",void 0),ey(this,"queue",void 0),ey(this,"running",void 0),ey(this,"errors",void 0),this.maxConcurrent=e,this.queue=[],this.errors=[],this.running=0}}const ew="native:manifest",ev="vite-plugin-compression",eO=(()=>{let e=o.cpus()||{length:1};return 1===e.length?10:Math.max(1,e.length-1)})();function eE(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 ej(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 ex(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 eP(e,t){let r=e.generateBundle;if("object"==typeof r&&r.handler){let e=r.handler;r.handler=async function(...r){await e.apply(this,r),await t.apply(this,r)}}"function"==typeof r&&(e.generateBundle=async function(...e){await r.apply(this,e),await t.apply(this,e)})}function eC(e={}){var t,o;let a,{include:c=/\.(html|xml|css|json|js|mjs|svg|yaml|yml|toml)$/,exclude:f,threshold:d=0,algorithms:h=["gzip","brotliCompress"],filename:m,deleteOriginalAssets:g=!1,skipIfLargerOrEqual:y=!0,logLevel:b="info",scheduler:w}=e,v=[];h.forEach(e=>{"string"==typeof e?v.push(e_(e)):"object"==typeof e&&Array.isArray(e)&&v.push(e)});let O=r.createFilter(c,f),E=[],j=[],{msgs:x,cleanup:P}=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}}(),C=process.cwd(),_=null!=(t=null==w?void 0:w.isHighMemory)?t:eg,T=v.map(([e,t])=>{let r="string"==typeof e?ed(e):e;return{algorithm:r,algorithmFunction:"string"==typeof r?function(e){let t=ed(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!=m?m:"brotliCompress"===r?"[path][base].br":"zstandard"===r?"[path][base].zst":"[path][base].gz",highMemory:!!w&&_(r,t)}}),R=new eb(eO),A=w?new eb(null!=(o=w.limit)?o:1):null,S=async()=>{let e=[R.wait()];A&&e.push(A.wait()),await Promise.all(e)},z=e=>e.highMemory&&A?A:R,$=async function(e,t){for(let e in t){if(!O(e))continue;let r=t[e],i=ep("asset"===r.type?r.source:r.code),n=es(i);if(!(n<d))for(let r=0;r<T.length;r++){let o=T[r],s=r===T.length-1;z(o).enqueue(async()=>{let r=ea(e,o.filename,{options:o.options,algorithm:o.algorithm}),a=await eh(i,o.algorithmFunction,o.options);y&&es(a)>=n||(s&&(g||e===r)&&Reflect.deleteProperty(t,e),this.emitFile({type:"asset",fileName:r,source:a}))})}}await S().catch(e=>{"silent"!==b&&this.error(ex(e,"bundle compression"))})},q={resolve:ef},M={staticOutputs:new Set,done:new Promise(e=>{q.resolve=e})},I=new Intl.NumberFormat("en",{maximumFractionDigits:2,minimumFractionDigits:2}),k=e=>`${I.format(e/1e3)} kB`;return{name:ev,apply:"build",enforce:"post",api:M,async configResolved(e){j.push(...eE(e)),await ej(e,e=>{E.push(e)});let t=!1;this&&this.meta&&"rolldownVersion"in this.meta&&(t=!0);let r=function(e,t){if(e.build.manifest){let r=t?ew:"vite:manifest";return e.plugins.find(e=>e.name===r)}return e.plugins.find(e=>"vite:build-import-analysis"===e.name)}(e,t);if(!r)throw Error("[vite-plugin-compression] Can't be work in versions lower than vite at 2.0.0");if(t&&r.name===ew){var i,n;i=r.applyToEnvironment,n=e=>{if(Array.isArray(e)){let t=e.filter(e=>"object"==typeof e&&"name"in e).find(e=>"native:manifest-compatible"===e.name);t&&eP(t,$)}return e},r.applyToEnvironment=(...e)=>{let t=i(...e);return t instanceof Promise?t.then(n):n(t)}}else eP(r,$);a=e.logger,C=e.root},async closeBundle(){let t=[],r=async(e,r,i,o)=>{let a=s.join(e,r);if(!O(a)&&!M.staticOutputs.has(r))return void M.staticOutputs.add(r);let{size:l}=await n.stat(a);if(l<d){M.staticOutputs.has(r)||M.staticOutputs.add(r);return}let u=await n.readFile(a),c=ea(r,i.filename,{options:i.options,algorithm:i.algorithm}),p=await eh(u,i.algorithmFunction,i.options);if(y&&es(p)>=l){M.staticOutputs.has(r)||M.staticOutputs.add(r);return}M.staticOutputs.has(c)||M.staticOutputs.add(c);let f=s.join(e,c);o&&g&&f!==a&&await n.rm(a,{recursive:!0,force:!0}),await n.writeFile(f,p),t.push({dest:s.relative(C,e)+"/",file:c,size:es(p)})};if(e.artifacts&&"function"==typeof e.artifacts){let t=e.artifacts();for(let e of j)for(let r of t)if(i.existsSync(r.src)){let t=s.basename(r.src),n=r.replace?r.replace(e,t):s.join(e,t);i.cpSync(r.src,n,{recursive:!0}),E.push(el(s.relative(e,n)))}}for(let e of j)for(let t of E)for(let i=0;i<T.length;i++){let n=T[i],o=i===T.length-1;z(n).enqueue(()=>r(e,t,n,o))}if(await S().catch(e=>e),q.resolve(),P(),"silent"!==b&&a){let e=t.reduce((e,t)=>Math.max(e,(t.dest+t.file).length),0);for(let{dest:r,file:i,size:n}of t){let t=i.padEnd(e);a.info(p.dim(r)+p.green(t)+p.bold(p.dim(k(n))))}}for(let e of x)console.info(e)}}}function e_(e,t){if("string"==typeof e){let r=ed(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||{}]}eC.getPluginAPI=e=>{var t;return null==(t=e.find(e=>e.name===ev))?void 0:t.api},exports.compression=eC,exports.default=eC,exports.defineAlgorithm=e_,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}}}(),f=new eb(eO);return{name:"vite-plugin-tarball",enforce:"post",async configResolved(e){l.push(...eE(e)),c=e.root,u=r?[r]:l,(t=eC.getPluginAPI(e.plugins))||await ej(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)f.enqueue(async()=>{let r=s.join(e,t),i=await n.readFile(r);p.add({filename:t,content:i})});await f.wait().catch(e=>{this.error(ex(e,"tarball creation"))}),await p.done()}}}; | ||
| "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e,t,r=require("@rollup/pluginutils"),n=require("fs"),i=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,n,{defineProperty:i,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,n=parseInt(6^r?3^r?"0":t[0]+t[0]+t[1]+t[1]+t[2]+t[2]:t,16);return[n>>16&255,n>>8&255,255&n]},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,n,i,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,n=o%6/5):t=r=n=(10*(e-232)+8)/255,(i=2*u(t,r,n))?30+(l(n)<<2|l(r)<<1|l(t))+(2^i?0:60):30)},m=(()=>{let t,n,i,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 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||(t=c,n=!!c.PM2_HOME||c.NEXT_RUNTIME?.includes("edge")||!!l.stdout?.isTTY,i="win32"===l.platform,r=t.TERM,p=({"24bit":3,truecolor:3,ansi256:2,ansi:1})[t.COLORTERM]||(t.CI?/,GITHUB/.test(e)?3:1:n&&"dumb"!==r?i?3:/-256/.test(r)?2:1:0)),!d||c.NO_COLOR||o(/^--(no-color|color=(false|never))$/)?0:s.window?.chrome||m&&!p?3:p})(),h={open:"",close:""},g={},y=({p:e},{open:t,close:r})=>{let i=(e,...n)=>{if(!e){if(t&&t===r)return t;if((e??"")==="")return""}let o,s=e.raw?String.raw({raw:e},...n):""+e,a=i.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,n="",i=0;if(r)for(;~(o=s.indexOf(t,i));i=o+r)n+=s.slice(i,o)+e;s=n+s.slice(i)}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(i,n),i.p={open:t,close:r,o:s,c:a,p:e},i.open=s,i.close=a,i},w=function(e=m){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],n=(typeof r)[0],o="s"===n?v(...p(r)):r;g[t]="f"===n?{get(){return(...e)=>y(this,r(...e))}}:{get(){let e=y(this,o);return i(this,t,{value:e}),e}}}return o(t,n=s({},g)),t}},r=e>0,a=(e,t)=>r?{open:`[${e}m`,close:`[${t}m`}:h,l=e=>t=>e(...p(t)),u=(e,t)=>(r,n,i)=>a(`${e}8;2;${r};${n};${i}`,t),c=(e,t)=>(r,n,i)=>a(d(f(r,n,i))+e,t),b=e=>(t,r,n)=>e(f(t,r,n)),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: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)},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:m,rgb:h,bgRgb:g,hex:y,bgHex:w,reset:b,inverse:v,hidden:O,visible:E,bold:j,dim:x,italic:P,underline:C,strikethrough:_,black:T,red:A,green:R,yellow:S,blue:z,magenta:M,cyan:$,white:q,gray:I,redBright:k,greenBright:B,yellowBright:D,blueBright:F,magentaBright:N,cyanBright:L,whiteBright:U,bgBlack:Z,bgRed:H,bgGreen:Y,bgYellow:Q,bgBlue:X,bgMagenta:G,bgCyan:V,bgWhite:W,bgGray:J,bgRedBright:K,bgGreenBright:ee,bgYellowBright:et,bgBlueBright:er,bgMagentaBright:en,bgCyanBright:ei,bgWhiteBright:eo}=p;function es(e){return e.length}function ea(e,t,r){let n="function"==typeof t?t(e,r):t,{dir:i,base:o}=s.parse(e);return n.replace(/\[path\]/,i?i+"/":"").replace(/\[base\]/,o)}function el(e){return/^\\\\\?\\/.test(e)?e:e.replace(/\\/g,"/")}async function eu(e){let t=await Promise.all((await i.readdir(e)).map(t=>s.join(e,t))),r=0,n=[];for(;r!==es(t);){let e=t[r],o=await i.stat(e);if(o.isDirectory()){let r=await i.readdir(e);t.push(...r.map(t=>s.join(e,t)))}o.isFile()&&n.push(e),r++}return n}const ec=new TextEncoder;function ep(e){return"string"==typeof e?ec.encode(e):e}function ef(){}function ed(e){return"gz"===e?"gzip":"brotli"===e||"br"===e?"brotliCompress":"zstd"===e?"zstandard":e}async function em(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:{params:{[u.constants.ZSTD_c_compressionLevel]:19}}};function eg(e,t){var r,n,i,o;return"function"!=typeof e&&("zstandard"===e?(null!=(n=null==t||null==(r=t.params)?void 0:r[u.constants.ZSTD_c_compressionLevel])?n:3)>=20:"brotliCompress"===e&&(null!=(o=null==t||null==(i=t.params)?void 0:i[u.constants.BROTLI_PARAM_QUALITY])?o:11)>=10)}function ey(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){ey(this,"maxConcurrent",void 0),ey(this,"queue",void 0),ey(this,"running",void 0),ey(this,"errors",void 0),this.maxConcurrent=e,this.queue=[],this.errors=[],this.running=0}}const eb="native:manifest",ev="vite-plugin-compression",eO=(()=>{let e=o.cpus()||{length:1};return 1===e.length?10:Math.max(1,e.length-1)})();function eE(e){return new Set((e.environments?Object.values({client:e.environments.client}).map(e=>e.build):[e.build]).flatMap(t=>Array.from(function(e,t){var r;let n=new Set,i=(e,t)=>el(s.resolve(e,t));return(null==(r=t.rollupOptions)?void 0:r.output)?(Array.isArray(t.rollupOptions.output)?t.rollupOptions.output:[t.rollupOptions.output]).forEach(r=>{("object"!=typeof r||es(Object.keys(r)))&&n.add(i(e,r.dir||t.outDir))}):n.add(i(e,t.outDir)),n}(e.root,t))))}async function ej(e,t){let r=!("copyPublicDir"in e.build)||e.build.copyPublicDir;if(e.publicDir&&r&&n.existsSync(e.publicDir)){let r=await eu(e.publicDir),n=s.join(e.root,s.relative(e.root,e.publicDir));r.forEach(e=>{t(el(s.relative(n,e)),e)})}}function ex(e,t){if("AggregateError"!==e.name||!("errors"in e))return e;let r=e.errors.length,n=e.errors.map((e,t)=>{let r=e.message||"Unknown error";return`[${t+1}] ${r}`}),i=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):`,"",...n].join("\n"),s=Error(o);return s.name="CompressionError",s.stack=[`CompressionError: ${o}`,"","Combined stack traces:",...i].join("\n"),s.cause=e.errors,s}function eP(e,t){let r=e.generateBundle;if("object"==typeof r&&r.handler){let e=r.handler;r.handler=async function(...r){await e.apply(this,r),await t.apply(this,r)}}"function"==typeof r&&(e.generateBundle=async function(...e){await r.apply(this,e),await t.apply(this,e)})}function eC(e={}){var t,o;let a,{include:c=/\.(html|xml|css|json|js|mjs|svg|yaml|yml|toml)$/,exclude:f,threshold:d=0,algorithms:m=["gzip","brotliCompress"],filename:h,deleteOriginalAssets:g=!1,skipIfLargerOrEqual:y=!0,logLevel:w="info",scheduler:b}=e,v=[];m.forEach(e=>{"string"==typeof e?v.push(e_(e)):"object"==typeof e&&Array.isArray(e)&&v.push(e)});let O=r.createFilter(c,f),E=[],j=[],{msgs:x,cleanup:P}=function(){let e=[],t=process.stdout.write.bind(process.stdout);return process.stdout.write=function(...r){let[n]=r,i="string"==typeof n?n:n.toString();return i.includes("built in")?(e.push(i),!1):t.apply(this,r)},{cleanup:()=>process.stdout.write=t,msgs:e}}(),C=process.cwd(),_=null!=(t=null==b?void 0:b.isHighMemory)?t:eg,T=v.map(([e,t])=>{let r="string"==typeof e?ed(e):e;return{algorithm:r,algorithmFunction:"string"==typeof r?function(e){let t=ed(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!=h?h:"brotliCompress"===r?"[path][base].br":"zstandard"===r?"[path][base].zst":"[path][base].gz",highMemory:!!b&&_(r,t)}}),A=new ew(eO),R=b?new ew(null!=(o=b.limit)?o:1):null,S=async()=>{let e=[A.wait()];R&&e.push(R.wait()),await Promise.all(e)},z=e=>e.highMemory&&R?R:A,M=async function(e,t){for(let e in t){if(!O(e))continue;let r=t[e],n=ep("asset"===r.type?r.source:r.code),i=es(n);if(!(i<d))for(let r=0;r<T.length;r++){let o=T[r],s=r===T.length-1;z(o).enqueue(async()=>{let r=ea(e,o.filename,{options:o.options,algorithm:o.algorithm}),a=await em(n,o.algorithmFunction,o.options);y&&es(a)>=i||(s&&(g||e===r)&&Reflect.deleteProperty(t,e),this.emitFile({type:"asset",fileName:r,source:a}))})}}await S().catch(e=>{"silent"!==w&&this.error(ex(e,"bundle compression"))})},$={resolve:ef},q={staticOutputs:new Set,done:new Promise(e=>{$.resolve=e})},I=new Intl.NumberFormat("en",{maximumFractionDigits:2,minimumFractionDigits:2}),k=e=>`${I.format(e/1e3)} kB`;return{name:ev,apply:"build",enforce:"post",api:q,async configResolved(e){j.push(...eE(e)),console.log(j),await ej(e,e=>{E.push(e)});let t=!1;this&&this.meta&&"rolldownVersion"in this.meta&&(t=!0);let r=function(e,t){if(e.build.manifest){let r=t?eb:"vite:manifest";return e.plugins.find(e=>e.name===r)}return e.plugins.find(e=>"vite:build-import-analysis"===e.name)}(e,t);if(!r)throw Error("[vite-plugin-compression] Can't be work in versions lower than vite at 2.0.0");if(t&&r.name===eb){var n,i;n=r.applyToEnvironment,i=e=>{if(Array.isArray(e)){let t=e.filter(e=>"object"==typeof e&&"name"in e).find(e=>"native:manifest-compatible"===e.name);t&&eP(t,M)}return e},r.applyToEnvironment=(...e)=>{let t=n(...e);return t instanceof Promise?t.then(i):i(t)}}else eP(r,M);a=e.logger,C=e.root},async closeBundle(){let t=[],r=async(e,r,n,o)=>{let a=s.join(e,r);if(!O(a)&&!q.staticOutputs.has(r))return void q.staticOutputs.add(r);let l=await i.stat(a);if(!l)return;let{size:u}=l;if(u<d){q.staticOutputs.has(r)||q.staticOutputs.add(r);return}let c=await i.readFile(a),p=ea(r,n.filename,{options:n.options,algorithm:n.algorithm}),f=await em(c,n.algorithmFunction,n.options);if(y&&es(f)>=u){q.staticOutputs.has(r)||q.staticOutputs.add(r);return}q.staticOutputs.has(p)||q.staticOutputs.add(p);let m=s.join(e,p);o&&g&&m!==a&&await i.rm(a,{recursive:!0,force:!0}),await i.writeFile(m,f),t.push({dest:s.relative(C,e)+"/",file:p,size:es(f)})};if(e.artifacts&&"function"==typeof e.artifacts){let t=e.artifacts();for(let e of j)for(let r of t)if(n.existsSync(r.src)){let t=s.basename(r.src),i=r.replace?r.replace(e,t):s.join(e,t);n.cpSync(r.src,i,{recursive:!0}),E.push(el(s.relative(e,i)))}}for(let e of j)for(let t of E)for(let n=0;n<T.length;n++){let i=T[n],o=n===T.length-1;z(i).enqueue(()=>r(e,t,i,o))}if(await S().catch(e=>e),$.resolve(),P(),"silent"!==w&&a){let e=t.reduce((e,t)=>Math.max(e,(t.dest+t.file).length),0);for(let{dest:r,file:n,size:i}of t){let t=n.padEnd(e);a.info(p.dim(r)+p.green(t)+p.bold(p.dim(k(i))))}}for(let e of x)console.info(e)}}}function e_(e,t){if("string"==typeof e){let r=ed(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||{}]}eC.getPluginAPI=e=>{var t;return null==(t=e.find(e=>e.name===ev))?void 0:t.api},exports.compression=eC,exports.default=eC,exports.defineAlgorithm=e_,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 i=el(s.resolve(r.root,e+".tar")),o=el(s.dirname(i));el(r.root)!==o&&n.mkdirSync(o,{recursive:!0});let a=n.createWriteStream(i);t.push(a)})},done:async()=>{e.done(),await Promise.all(t.map(t=>new Promise((r,n)=>{t.on("error",n),t.on("finish",r),e.receiver.pipe(t)}))),t.length=0}}}(),f=new ew(eO);return{name:"vite-plugin-tarball",enforce:"post",async configResolved(e){l.push(...eE(e)),c=e.root,u=r?[r]:l,(t=eC.getPluginAPI(e.plugins))||await ej(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)f.enqueue(async()=>{let r=s.join(e,t),n=await i.readFile(r);p.add({filename:t,content:n})});await f.wait().catch(e=>{this.error(ex(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={},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},b=function(t=m){let e={Ansis:b,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),w=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=w(E),O=w(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 P,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)},x="Bright";return"black,red,green,yellow,blue,magenta,cyan,white,gray".split(",").map((t,e)=>{P="bg"+t[0].toUpperCase()+t.slice(1),8>e?(C[t+x]=a(90+e,39),C[P+x]=a(100+e,49)):e=60,C[t]=a(30+e,39),C[P]=a(40+e,49)}),e.extend(C)},w=new b;return c.exports=w,w.default=w,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:b,reset:w,inverse:v,hidden:O,visible:E,bold:j,dim:P,italic:C,underline:x,strikethrough:T,black:R,red:_,green:A,yellow:S,blue:z,magenta:$,cyan:M,white:I,gray:B,redBright:k,greenBright:D,yellowBright:F,blueBright:N,magentaBright:q,cyanBright:L,whiteBright:U,bgBlack:Z,bgRed:H,bgGreen:Y,bgYellow:Q,bgBlue:X,bgMagenta:G,bgCyan:V,bgWhite:W,bgGray:J,bgRedBright:K,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:{params:{[a.constants.ZSTD_c_compressionLevel]:22}}};function tg(t,e){var r,i,n,o;return"function"!=typeof t&&("zstandard"===t?(null!=(i=null==e||null==(r=e.params)?void 0:r[a.constants.ZSTD_c_compressionLevel])?i:3)>=20:"brotliCompress"===t&&(null!=(o=null==e||null==(n=e.params)?void 0:n[a.constants.BROTLI_PARAM_QUALITY])?o:11)>=10)}function ty(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}class tb{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){ty(this,"maxConcurrent",void 0),ty(this,"queue",void 0),ty(this,"running",void 0),ty(this,"errors",void 0),this.maxConcurrent=t,this.queue=[],this.errors=[],this.running=0}}let tw="native:manifest",tv="vite-plugin-compression",tO=(()=>{let t=i.cpus()||{length:1};return 1===t.length?10:Math.max(1,t.length-1)})();function tE(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 tj(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 tP(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 tC(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 tb(tO);return{name:"vite-plugin-tarball",enforce:"post",async configResolved(t){l.push(...tE(t)),c=t.root,u=s?[s]:l,(i=tT.getPluginAPI(t.plugins))||await tj(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(tP(t,"tarball creation"))}),await p.done()}}}function tx(t,e){let r=t.generateBundle;if("object"==typeof r&&r.handler){let t=r.handler;r.handler=async function(...r){await t.apply(this,r),await e.apply(this,r)}}"function"==typeof r&&(t.generateBundle=async function(...t){await r.apply(this,t),await e.apply(this,t)})}function tT(i={}){var o,l;let u,{include:c=/\.(html|xml|css|json|js|mjs|svg|yaml|yml|toml)$/,exclude:f,threshold:d=0,algorithms:m=["gzip","brotliCompress"],filename:h,deleteOriginalAssets:g=!1,skipIfLargerOrEqual:y=!0,logLevel:b="info",scheduler:w}=i,v=[];m.forEach(t=>{"string"==typeof t?v.push(tR(t)):"object"==typeof t&&Array.isArray(t)&&v.push(t)});let O=t(c,f),E=[],j=[],{msgs:P,cleanup:C}=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}}(),x=process.cwd(),T=null!=(o=null==w?void 0:w.isHighMemory)?o:tg,R=v.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!=h?h:"brotliCompress"===r?"[path][base].br":"zstandard"===r?"[path][base].zst":"[path][base].gz",highMemory:!!w&&T(r,e)}}),_=new tb(tO),A=w?new tb(null!=(l=w.limit)?l:1):null,S=async()=>{let t=[_.wait()];A&&t.push(A.wait()),await Promise.all(t)},z=t=>t.highMemory&&A?A:_,$=async function(t,e){for(let t in e){if(!O(t))continue;let r=e[t],i=tp("asset"===r.type?r.source:r.code),n=ts(i);if(!(n<d))for(let r=0;r<R.length;r++){let o=R[r],s=r===R.length-1;z(o).enqueue(async()=>{let r=ta(t,o.filename,{options:o.options,algorithm:o.algorithm}),a=await tm(i,o.algorithmFunction,o.options);y&&ts(a)>=n||(s&&(g||t===r)&&Reflect.deleteProperty(e,t),this.emitFile({type:"asset",fileName:r,source:a}))})}}await S().catch(t=>{"silent"!==b&&this.error(tP(t,"bundle compression"))})},M={resolve:tf},I={staticOutputs:new Set,done:new Promise(t=>{M.resolve=t})},B=new Intl.NumberFormat("en",{maximumFractionDigits:2,minimumFractionDigits:2}),k=t=>`${B.format(t/1e3)} kB`;return{name:tv,apply:"build",enforce:"post",api:I,async configResolved(t){j.push(...tE(t)),await tj(t,t=>{E.push(t)});let e=!1;this&&this.meta&&"rolldownVersion"in this.meta&&(e=!0);let r=function(t,e){if(t.build.manifest){let r=e?tw:"vite:manifest";return t.plugins.find(t=>t.name===r)}return t.plugins.find(t=>"vite:build-import-analysis"===t.name)}(t,e);if(!r)throw Error("[vite-plugin-compression] Can't be work in versions lower than vite at 2.0.0");if(e&&r.name===tw){var i,n;i=r.applyToEnvironment,n=t=>{if(Array.isArray(t)){let e=t.filter(t=>"object"==typeof t&&"name"in t).find(t=>"native:manifest-compatible"===t.name);e&&tx(e,$)}return t},r.applyToEnvironment=(...t)=>{let e=i(...t);return e instanceof Promise?e.then(n):n(e)}}else tx(r,$);u=t.logger,x=t.root},async closeBundle(){let t=[],o=async(e,i,o,s)=>{let a=n.join(e,i);if(!O(a)&&!I.staticOutputs.has(i))return void I.staticOutputs.add(i);let{size:l}=await r.stat(a);if(l<d){I.staticOutputs.has(i)||I.staticOutputs.add(i);return}let u=await r.readFile(a),c=ta(i,o.filename,{options:o.options,algorithm:o.algorithm}),p=await tm(u,o.algorithmFunction,o.options);if(y&&ts(p)>=l){I.staticOutputs.has(i)||I.staticOutputs.add(i);return}I.staticOutputs.has(c)||I.staticOutputs.add(c);let f=n.join(e,c);s&&g&&f!==a&&await r.rm(a,{recursive:!0,force:!0}),await r.writeFile(f,p),t.push({dest:n.relative(x,e)+"/",file:c,size:ts(p)})};if(i.artifacts&&"function"==typeof i.artifacts){let t=i.artifacts();for(let r of j)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}),E.push(tl(n.relative(r,o)))}}for(let t of j)for(let e of E)for(let r=0;r<R.length;r++){let i=R[r],n=r===R.length-1;z(i).enqueue(()=>o(t,e,i,n))}if(await S().catch(t=>t),M.resolve(),C(),"silent"!==b&&u){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);u.info(p.dim(r)+p.green(t)+p.bold(p.dim(k(n))))}}for(let t of P)console.info(t)}}}function tR(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||{}]}tT.getPluginAPI=t=>{var e;return null==(e=t.find(t=>t.name===tv))?void 0:e.api};export{tT as compression,tT as default,tR as defineAlgorithm,tC as tarball}; | ||
| import{createFilter as e}from"@rollup/pluginutils";import t 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 e,t,r,{defineProperty:i,setPrototypeOf:n,create:o,keys:s}=Object,{round:a,max:l}=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*a(e/51)+6*a(t/51)+a(r/51):8>e?16:e>248?231:a(24*(e-8)/247)+232,m=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*l(t,r,i))?30+(a(i)<<2|a(r)<<1|a(t))+(2^n?0:60):30)},d=(()=>{let r,i,n,o=e=>u.some(t=>e.test(t)),a=globalThis,l=a.process??{},u=l.argv??[],c=l.env??{},p=-1;try{e=","+s(c).join(",")}catch(e){c={},p=0}let f="FORCE_COLOR",m={false:0,0:0,1:1,2:2,3:3}[c[f]]??-1,d=f in c&&m||o(/^--color=?(true|always)?$/);return d&&(p=m),~p||(r=c,i=!!c.PM2_HOME||c.NEXT_RUNTIME?.includes("edge")||!!l.stdout?.isTTY,n="win32"===l.platform,t=r.TERM,p=({"24bit":3,truecolor:3,ansi256:2,ansi:1})[r.COLORTERM]||(r.CI?/,GITHUB/.test(e)?3:1:i&&"dumb"!==t?n?3:/-256/.test(t)?2:1:0)),!m||c.NO_COLOR||o(/^--(no-color|color=(false|never))$/)?0:a.window?.chrome||d&&!p?3:p})(),h={open:"",close:""},g={},y=({p:e},{open:t,close:i})=>{let o=(e,...r)=>{if(!e){if(t&&t===i)return t;if((e??"")==="")return""}let n,s=e.raw?String.raw({raw:e},...r):""+e,a=o.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="",o=0;if(r)for(;~(n=s.indexOf(t,o));o=n+r)i+=s.slice(o,n)+e;s=i+s.slice(o)}return l+(s.includes("\n")?s.replace(/(\r?\n)/g,u+"$1"+l):s)+u},s=t,a=i;return e&&(s=e.o+t,a=i+e.c),n(o,r),o.p={open:t,close:i,o:s,c:a,p:e},o.open=s,o.close=a,o},w=function(e=d){let t={Ansis:w,isSupported:()=>s,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],n=(typeof r)[0],o="s"===n?v(...p(r)):r;g[t]="f"===n?{get(){return(...e)=>y(this,r(...e))}}:{get(){let e=y(this,o);return i(this,t,{value:e}),e}}}return n(t,r=o({},g)),t}},s=e>0,a=(e,t)=>s?{open:`[${e}m`,close:`[${t}m`}:h,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(m(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(m(e),39),j=e=>a(m(e)+10,49));let P,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)},x="Bright";return"black,red,green,yellow,blue,magenta,cyan,white,gray".split(",").map((e,t)=>{P="bg"+e[0].toUpperCase()+e.slice(1),8>t?(C[e+x]=a(90+t,39),C[P+x]=a(100+t,49)):t=60,C[e]=a(30+t,39),C[P]=a(40+t,49)}),t.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:m,bg:d,rgb:h,bgRgb:g,hex:y,bgHex:w,reset:b,inverse:v,hidden:O,visible:E,bold:j,dim:P,italic:C,underline:x,strikethrough:T,black:A,red:R,green:S,yellow:_,blue:z,magenta:$,cyan:M,white:I,gray:B,redBright:k,greenBright:D,yellowBright:F,blueBright:N,magentaBright:q,cyanBright:L,whiteBright:U,bgBlack:Z,bgRed:H,bgGreen:Y,bgYellow:Q,bgBlue:X,bgMagenta:G,bgCyan:V,bgWhite:W,bgGray:J,bgRedBright:K,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:o,base:s}=n.parse(e);return i.replace(/\[path\]/,o?o+"/":"").replace(/\[base\]/,s)}function el(e){return/^\\\\\?\\/.test(e)?e:e.replace(/\\/g,"/")}async function eu(e){let t=await Promise.all((await r.readdir(e)).map(t=>n.join(e,t))),i=0,o=[];for(;i!==es(t);){let e=t[i],s=await r.stat(e);if(s.isDirectory()){let i=await r.readdir(e);t.push(...i.map(t=>n.join(e,t)))}s.isFile()&&o.push(e),i++}return o}let ec=new TextEncoder;function ep(e){return"string"==typeof e?ec.encode(e):e}function ef(){}function em(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)}}let eh={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:{params:{[a.constants.ZSTD_c_compressionLevel]:19}}};function eg(e,t){var r,i,n,o;return"function"!=typeof e&&("zstandard"===e?(null!=(i=null==t||null==(r=t.params)?void 0:r[a.constants.ZSTD_c_compressionLevel])?i:3)>=20:"brotliCompress"===e&&(null!=(o=null==t||null==(n=t.params)?void 0:n[a.constants.BROTLI_PARAM_QUALITY])?o:11)>=10)}function ey(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){ey(this,"maxConcurrent",void 0),ey(this,"queue",void 0),ey(this,"running",void 0),ey(this,"errors",void 0),this.maxConcurrent=e,this.queue=[],this.errors=[],this.running=0}}let eb="native:manifest",ev="vite-plugin-compression",eO=(()=>{let e=i.cpus()||{length:1};return 1===e.length?10:Math.max(1,e.length-1)})();function eE(e){return new Set((e.environments?Object.values({client:e.environments.client}).map(e=>e.build):[e.build]).flatMap(t=>Array.from(function(e,t){var r;let i=new Set,o=(e,t)=>el(n.resolve(e,t));return(null==(r=t.rollupOptions)?void 0:r.output)?(Array.isArray(t.rollupOptions.output)?t.rollupOptions.output:[t.rollupOptions.output]).forEach(r=>{("object"!=typeof r||es(Object.keys(r)))&&i.add(o(e,r.dir||t.outDir))}):i.add(o(e,t.outDir)),i}(e.root,t))))}async function ej(e,r){let i=!("copyPublicDir"in e.build)||e.build.copyPublicDir;if(e.publicDir&&i&&t.existsSync(e.publicDir)){let t=await eu(e.publicDir),i=n.join(e.root,n.relative(e.root,e.publicDir));t.forEach(e=>{r(el(n.relative(i,e)),e)})}}function eP(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 eC(e={}){let i,{dest:s}=e,a=[],l=[],u=[],c=process.cwd(),p=function(){let e=o(),r=[],i={dests:[],root:""};return{add:t=>{e.add(ep(t.content),{filename:t.filename})},setup:e=>{Object.assign(i,e),i.dests.forEach(e=>{let o=el(n.resolve(i.root,e+".tar")),s=el(n.dirname(o));el(i.root)!==s&&t.mkdirSync(s,{recursive:!0});let a=t.createWriteStream(o);r.push(a)})},done:async()=>{e.done(),await Promise.all(r.map(t=>new Promise((r,i)=>{t.on("error",i),t.on("finish",r),e.receiver.pipe(t)}))),r.length=0}}}(),f=new ew(eO);return{name:"vite-plugin-tarball",enforce:"post",async configResolved(e){l.push(...eE(e)),c=e.root,u=s?[s]:l,(i=eT.getPluginAPI(e.plugins))||await ej(e,e=>{a.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(i&&await i.done,!a.length&&i&&i.staticOutputs.size&&a.push(...i.staticOutputs),l))for(let t of a)f.enqueue(async()=>{let i=n.join(e,t),o=await r.readFile(i);p.add({filename:t,content:o})});await f.wait().catch(e=>{this.error(eP(e,"tarball creation"))}),await p.done()}}}function ex(e,t){let r=e.generateBundle;if("object"==typeof r&&r.handler){let e=r.handler;r.handler=async function(...r){await e.apply(this,r),await t.apply(this,r)}}"function"==typeof r&&(e.generateBundle=async function(...e){await r.apply(this,e),await t.apply(this,e)})}function eT(i={}){var o,l;let u,{include:c=/\.(html|xml|css|json|js|mjs|svg|yaml|yml|toml)$/,exclude:f,threshold:m=0,algorithms:d=["gzip","brotliCompress"],filename:h,deleteOriginalAssets:g=!1,skipIfLargerOrEqual:y=!0,logLevel:w="info",scheduler:b}=i,v=[];d.forEach(e=>{"string"==typeof e?v.push(eA(e)):"object"==typeof e&&Array.isArray(e)&&v.push(e)});let O=e(c,f),E=[],j=[],{msgs:P,cleanup:C}=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}}(),x=process.cwd(),T=null!=(o=null==b?void 0:b.isHighMemory)?o:eg,A=v.map(([e,t])=>{let r="string"==typeof e?em(e):e;return{algorithm:r,algorithmFunction:"string"==typeof r?function(e){let t=em(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(!a.zstdCompress)throw Error("zstd compression is not available in this Node.js build");return{algorithm:s.promisify(a.zstdCompress)}}let r=t in a?t:"gzip";return{algorithm:s.promisify(a[r])}}(r).algorithm:r,options:t,filename:null!=h?h:"brotliCompress"===r?"[path][base].br":"zstandard"===r?"[path][base].zst":"[path][base].gz",highMemory:!!b&&T(r,t)}}),R=new ew(eO),S=b?new ew(null!=(l=b.limit)?l:1):null,_=async()=>{let e=[R.wait()];S&&e.push(S.wait()),await Promise.all(e)},z=e=>e.highMemory&&S?S:R,$=async function(e,t){for(let e in t){if(!O(e))continue;let r=t[e],i=ep("asset"===r.type?r.source:r.code),n=es(i);if(!(n<m))for(let r=0;r<A.length;r++){let o=A[r],s=r===A.length-1;z(o).enqueue(async()=>{let r=ea(e,o.filename,{options:o.options,algorithm:o.algorithm}),a=await ed(i,o.algorithmFunction,o.options);y&&es(a)>=n||(s&&(g||e===r)&&Reflect.deleteProperty(t,e),this.emitFile({type:"asset",fileName:r,source:a}))})}}await _().catch(e=>{"silent"!==w&&this.error(eP(e,"bundle compression"))})},M={resolve:ef},I={staticOutputs:new Set,done:new Promise(e=>{M.resolve=e})},B=new Intl.NumberFormat("en",{maximumFractionDigits:2,minimumFractionDigits:2}),k=e=>`${B.format(e/1e3)} kB`;return{name:ev,apply:"build",enforce:"post",api:I,async configResolved(e){j.push(...eE(e)),console.log(j),await ej(e,e=>{E.push(e)});let t=!1;this&&this.meta&&"rolldownVersion"in this.meta&&(t=!0);let r=function(e,t){if(e.build.manifest){let r=t?eb:"vite:manifest";return e.plugins.find(e=>e.name===r)}return e.plugins.find(e=>"vite:build-import-analysis"===e.name)}(e,t);if(!r)throw Error("[vite-plugin-compression] Can't be work in versions lower than vite at 2.0.0");if(t&&r.name===eb){var i,n;i=r.applyToEnvironment,n=e=>{if(Array.isArray(e)){let t=e.filter(e=>"object"==typeof e&&"name"in e).find(e=>"native:manifest-compatible"===e.name);t&&ex(t,$)}return e},r.applyToEnvironment=(...e)=>{let t=i(...e);return t instanceof Promise?t.then(n):n(t)}}else ex(r,$);u=e.logger,x=e.root},async closeBundle(){let e=[],o=async(t,i,o,s)=>{let a=n.join(t,i);if(!O(a)&&!I.staticOutputs.has(i))return void I.staticOutputs.add(i);let l=await r.stat(a);if(!l)return;let{size:u}=l;if(u<m){I.staticOutputs.has(i)||I.staticOutputs.add(i);return}let c=await r.readFile(a),p=ea(i,o.filename,{options:o.options,algorithm:o.algorithm}),f=await ed(c,o.algorithmFunction,o.options);if(y&&es(f)>=u){I.staticOutputs.has(i)||I.staticOutputs.add(i);return}I.staticOutputs.has(p)||I.staticOutputs.add(p);let d=n.join(t,p);s&&g&&d!==a&&await r.rm(a,{recursive:!0,force:!0}),await r.writeFile(d,f),e.push({dest:n.relative(x,t)+"/",file:p,size:es(f)})};if(i.artifacts&&"function"==typeof i.artifacts){let e=i.artifacts();for(let r of j)for(let i of e)if(t.existsSync(i.src)){let e=n.basename(i.src),o=i.replace?i.replace(r,e):n.join(r,e);t.cpSync(i.src,o,{recursive:!0}),E.push(el(n.relative(r,o)))}}for(let e of j)for(let t of E)for(let r=0;r<A.length;r++){let i=A[r],n=r===A.length-1;z(i).enqueue(()=>o(e,t,i,n))}if(await _().catch(e=>e),M.resolve(),C(),"silent"!==w&&u){let t=e.reduce((e,t)=>Math.max(e,(t.dest+t.file).length),0);for(let{dest:r,file:i,size:n}of e){let e=i.padEnd(t);u.info(p.dim(r)+p.green(e)+p.bold(p.dim(k(n))))}}for(let e of P)console.info(e)}}}function eA(e,t){if("string"==typeof e){let r=em(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||{}]}eT.getPluginAPI=e=>{var t;return null==(t=e.find(e=>e.name===ev))?void 0:t.api};export{eT as compression,eT as default,eA as defineAlgorithm,eC as tarball}; |
+1
-1
| { | ||
| "name": "vite-plugin-compression2", | ||
| "version": "2.5.0", | ||
| "version": "2.5.1", | ||
| "packageManager": "pnpm@10.12.1+sha512.f0dda8580f0ee9481c5c79a1d927b9164f2c478e90992ad268bbb2465a736984391d6333d2c327913578b2804af33474ca554ba29c04a8b13060a717675ae3ac", | ||
@@ -5,0 +5,0 @@ "description": "a fast vite compression plugin", |
+0
-92
@@ -312,94 +312,2 @@ <p align="center"> | ||
| ## Framework Integration | ||
| ### Next.js | ||
| For Next.js projects, add the plugin to your Vite configuration if using the App Router with custom server: | ||
| ```js | ||
| // vite.config.js (for custom Next.js setups) | ||
| import { defineConfig } from 'vite' | ||
| import { compression } from 'vite-plugin-compression2' | ||
| export default defineConfig({ | ||
| plugins: [ | ||
| compression({ | ||
| algorithms: ['gzip', 'brotliCompress'], | ||
| threshold: 1024 | ||
| }) | ||
| ] | ||
| }) | ||
| ``` | ||
| For standard Next.js builds, configure in `next.config.js`: | ||
| ```js | ||
| // next.config.js | ||
| /** @type {import('next').NextConfig} */ | ||
| const nextConfig = { | ||
| // Next.js handles compression differently | ||
| // Use this plugin with custom server or static export | ||
| output: 'export', // For static export | ||
| compress: false // Disable Next.js built-in compression to use pre-compressed files | ||
| } | ||
| module.exports = nextConfig | ||
| ``` | ||
| ### Nuxt 3 | ||
| ```js | ||
| // nuxt.config.ts | ||
| import { compression } from 'vite-plugin-compression2' | ||
| export default defineNuxtConfig({ | ||
| vite: { | ||
| plugins: [ | ||
| compression({ | ||
| algorithms: ['gzip', 'brotliCompress'], | ||
| threshold: 1024, | ||
| exclude: [/\.map$/, /stats\.html$/] | ||
| }) | ||
| ] | ||
| } | ||
| }) | ||
| ``` | ||
| ### SvelteKit | ||
| ```js | ||
| // vite.config.js | ||
| import { sveltekit } from '@sveltejs/kit/vite' | ||
| import { defineConfig } from 'vite' | ||
| import { compression } from 'vite-plugin-compression2' | ||
| export default defineConfig({ | ||
| plugins: [ | ||
| sveltekit(), | ||
| compression({ | ||
| algorithms: ['gzip', 'brotliCompress'], | ||
| threshold: 1024 | ||
| }) | ||
| ] | ||
| }) | ||
| ``` | ||
| ### Astro | ||
| ```js | ||
| // astro.config.mjs | ||
| import { defineConfig } from 'astro/config' | ||
| import { compression } from 'vite-plugin-compression2' | ||
| export default defineConfig({ | ||
| vite: { | ||
| plugins: [ | ||
| compression({ | ||
| algorithms: ['gzip', 'brotliCompress'] | ||
| }) | ||
| ] | ||
| } | ||
| }) | ||
| ``` | ||
| ## Performance Tips | ||
@@ -406,0 +314,0 @@ |
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
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
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
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
199
1.02%51209
-2.86%442
-17.23%