UNPKG

plasmo

Version:

The Plasmo Framework CLI

80 lines (59 loc) 135 kB
#!/usr/bin/env node import { createRequire } from 'module';const require = createRequire(import.meta.url); var $l=Object.create;var fn=Object.defineProperty;var Rl=Object.getOwnPropertyDescriptor;var Bl=Object.getOwnPropertyNames;var jl=Object.getPrototypeOf,Ul=Object.prototype.hasOwnProperty;var v=(t=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(t,{get:(e,r)=>(typeof require<"u"?require:e)[r]}):t)(function(t){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+t+'" is not supported')});var y=(t,e)=>()=>(t&&(e=t(t=0)),e);var x=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),Xe=(t,e)=>{for(var r in e)fn(t,r,{get:e[r],enumerable:!0})},ql=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Bl(e))!Ul.call(t,i)&&i!==r&&fn(t,i,{get:()=>e[i],enumerable:!(n=Rl(e,i))||n.enumerable});return t};var $=(t,e,r)=>(r=t!=null?$l(jl(t)):{},ql(e||!t||!t.__esModule?fn(r,"default",{value:t,enumerable:!0}):r,t));var ot,rr,nr=y(()=>{ot=globalThis.process?.argv||[],rr=(t=ot[2])=>ot.filter(e=>!e.startsWith("--")).slice(ot.indexOf(t)+1)});var un,Wl,Fi,pn=y(()=>{un=()=>globalThis.process?.env||{},Wl=/\$([\w+]+)/gm,Fi=(t,e=un(),r=Wl)=>t.replace(r,(n,i)=>e[i]||n)});var Vl,R,Hl,G,gg,Nt,Ai,he=y(()=>{nr();pn();Vl=new Set(ot),R=t=>Vl.has(t),Hl=ot.filter(t=>t.startsWith("--")&&t.includes("=")).map(t=>t.split("=")).reduce((t,[e,r])=>(t[e]=r,t),{}),G=t=>Hl[t],gg=R("--dry-run"),Nt=()=>R("--verbose")||un().VERBOSE==="true",Ai=Nt()});var $e,$i,Re,le,N,j,Gl,d,k=y(()=>{he();$e=(t="",...e)=>console.log(t.padEnd(9),"|",...e),$i=(...t)=>$e("",...t),Re=(...t)=>$e("\u{1F7E2} DONE",...t),le=(...t)=>console.error("\u{1F534} ERROR".padEnd(9),"|",...t),N=(...t)=>$e("\u{1F535} INFO",...t),j=(...t)=>$e("\u{1F7E0} WARN",...t),Gl=0,d=(...t)=>Nt()&&$e(`\u{1F7E1} ${Gl++}`,...t)});import{kebabCase as Jl}from"change-case";var Be,Ri,Bi,at=y(()=>{he();Be=()=>{let t=G("--src-path")||process.env.PLASMO_SRC_PATH||"src",e=G("--build-path")||process.env.PLASMO_BUILD_PATH||"build",r=G("--tag")||process.env.PLASMO_TAG||(process.env.NODE_ENV==="production"?"prod":"dev"),n=Jl(G("--target")||process.env.PLASMO_TARGET||"chrome-mv3"),[i,s]=n.split("-"),o=G("--entry")||"popup",a=G("--env");return{browser:i,manifestVersion:s,tag:r,srcPath:t,buildPath:e,target:n,entry:o,envPath:a}},Ri=` --target=[string] set the target (default: chrome-mv3) --tag=[string] set the build tag (default: dev or prod depending on NODE_ENV) --src-path=[path] set the source path relative to project root (default: src) --build-path=[path] set the build path relative to project root (default: build) --entry=[name] entry point name (default: popup) --env=[path] relative path to top-level env file --no-cs-reload disable content script auto reloading`,Bi=` init --entry=[name] entry files (default: popup) --with-<name> use an example template dev ${Ri} build ${Ri} --zip zip the build output `});var fe,ir,Ze=y(()=>{k();dn();at();fe=()=>{console.log("\u{1F7E3} Plasmo v0.90.5"),console.log("\u{1F534} The Browser Extension Framework")},ir=()=>{$e("\u{1F7E0} CMDS",mn.join(" | ")),$e("\u{1F7E1} OPTS",Bi)}});var ji={};Xe(ji,{default:()=>Yl});async function zl(){fe(),ir()}var Yl,Ui=y(()=>{Ze();Yl=zl});var qi={};Xe(qi,{default:()=>Xl});async function Kl(){N("Start the extension development...")}var Xl,Wi=y(()=>{k();Xl=Kl});import{constants as hn}from"fs";import{access as Zl,mkdir as Ql,readdir as ef,stat as Vi}from"fs/promises";async function gn(t,e){try{return await Zl(t,e),!0}catch{return!1}}async function sr(t){return gn(t,hn.W_OK)}async function or(t){return gn(t,hn.R_OK)}async function A(t){return gn(t,hn.F_OK)}async function Hi(t){try{return(await Vi(t)).isDirectory()}catch{return!1}}async function ar(t){try{return(await Vi(t)).isFile()}catch{return!1}}async function rf(t){let e=(await ef(t,{withFileTypes:!0})).filter(r=>!tf.has(r.name)).filter(r=>!/\.iml$/.test(r.name));if(e.length>0){d(`Found conflicting contents in ${t}`);let r=e.reduce((n,i)=>`${n} ${i.name}${i.isDirectory()?"/":""}`,"");return d(r),!1}return!0}async function Gi(t){if(!await sr(t))d("Directory does not exist, creating..."),await Ql(t);else{if(d("Directory exists, checking if it is empty..."),!await rf(t))throw new Error(`Directory ${t} is not empty.`);if(d("Checking if directory is writable..."),!await sr(t))throw new Error(`Directory ${t} is not accesible.`)}}var tf,X=y(()=>{k();tf=new Set([".DS_Store",".git",".gitattributes",".gitignore",".gitlab-ci.yml",".hg",".hgcheck",".hgignore",".idea",".npmignore",".travis.yml","LICENSE","Thumbs.db","docs","mkdocs.yml","npm-debug.log","yarn-debug.log","yarn-error.log",".pnpm-debug.log"])});import{existsSync as nf}from"fs";import{basename as sf,resolve as se}from"path";import{cwd as of}from"process";var ct,cr=y(()=>{at();ct=(t=of())=>{let e=Be();process.env.PLASMO_PROJECT_DIR=t;let r=sf(t);process.env.PLASMO_SRC_PATH=e.srcPath;let n=se(t,e.srcPath);process.env.PLASMO_SRC_DIR=nf(n)?n:t,process.env.PLASMO_BUILD_PATH=e.buildPath;let i=se(t,e.buildPath);process.env.PLASMO_BUILD_DIR=i;let s=`${e.target}-${e.tag}`,o=se(i,s),a=se(t,".plasmo"),l=se(a,"cache");return{packageName:r,projectDirectory:t,buildDirectory:i,distDirectory:o,distDirectoryName:s,sourceDirectory:process.env.PLASMO_SRC_DIR,packageFilePath:se(t,"package.json"),gitIgnorePath:se(t,".gitignore"),assetsDirectory:se(t,"assets"),parcelConfig:se(t,".parcelrc"),dotPlasmoDirectory:a,cacheDirectory:l,plasmoVersionFilePath:se(l,"plasmo.version.json"),staticDirectory:se(a,"static"),genAssetsDirectory:se(a,"gen-assets"),entryManifestPath:se(a,`${e.target}.plasmo.manifest.json`)}}});import af from"@expo/spawn-async";import cf from"semver";async function yn(t){let e=await af(t,["--version"]),r=cf.valid(e.stdout.trim())||void 0;return{name:t,version:r}}async function lt(){try{let t=process.env.npm_config_user_agent;if(t){if(t.startsWith("yarn"))return{name:"yarn"};if(t.startsWith("pnpm"))return{name:"pnpm"}}try{return await yn("pnpm")}catch{return await yn("yarn")}}catch{return await yn("npm")}}var lr=y(()=>{});var q=x(_n=>{"use strict";_n.fromCallback=function(t){return Object.defineProperty(function(...e){if(typeof e[e.length-1]=="function")t.apply(this,e);else return new Promise((r,n)=>{t.call(this,...e,(i,s)=>i!=null?n(i):r(s))})},"name",{value:t.name})};_n.fromPromise=function(t){return Object.defineProperty(function(...e){let r=e[e.length-1];if(typeof r!="function")return t.apply(this,e);t.apply(this,e.slice(0,-1)).then(n=>r(null,n),r)},"name",{value:t.name})}});var zi=x((qg,Ji)=>{var je=v("constants"),lf=process.cwd,fr=null,ff=process.env.GRACEFUL_FS_PLATFORM||process.platform;process.cwd=function(){return fr||(fr=lf.call(process)),fr};try{process.cwd()}catch{}typeof process.chdir=="function"&&(wn=process.chdir,process.chdir=function(t){fr=null,wn.call(process,t)},Object.setPrototypeOf&&Object.setPrototypeOf(process.chdir,wn));var wn;Ji.exports=uf;function uf(t){je.hasOwnProperty("O_SYMLINK")&&process.version.match(/^v0\.6\.[0-2]|^v0\.5\./)&&e(t),t.lutimes||r(t),t.chown=s(t.chown),t.fchown=s(t.fchown),t.lchown=s(t.lchown),t.chmod=n(t.chmod),t.fchmod=n(t.fchmod),t.lchmod=n(t.lchmod),t.chownSync=o(t.chownSync),t.fchownSync=o(t.fchownSync),t.lchownSync=o(t.lchownSync),t.chmodSync=i(t.chmodSync),t.fchmodSync=i(t.fchmodSync),t.lchmodSync=i(t.lchmodSync),t.stat=a(t.stat),t.fstat=a(t.fstat),t.lstat=a(t.lstat),t.statSync=l(t.statSync),t.fstatSync=l(t.fstatSync),t.lstatSync=l(t.lstatSync),t.chmod&&!t.lchmod&&(t.lchmod=function(c,u,p){p&&process.nextTick(p)},t.lchmodSync=function(){}),t.chown&&!t.lchown&&(t.lchown=function(c,u,p,m){m&&process.nextTick(m)},t.lchownSync=function(){}),ff==="win32"&&(t.rename=typeof t.rename!="function"?t.rename:function(c){function u(p,m,h){var g=Date.now(),_=0;c(p,m,function S(C){if(C&&(C.code==="EACCES"||C.code==="EPERM"||C.code==="EBUSY")&&Date.now()-g<6e4){setTimeout(function(){t.stat(m,function(T,Y){T&&T.code==="ENOENT"?c(p,m,S):h(C)})},_),_<100&&(_+=10);return}h&&h(C)})}return Object.setPrototypeOf&&Object.setPrototypeOf(u,c),u}(t.rename)),t.read=typeof t.read!="function"?t.read:function(c){function u(p,m,h,g,_,S){var C;if(S&&typeof S=="function"){var T=0;C=function(Y,de,Fe){if(Y&&Y.code==="EAGAIN"&&T<10)return T++,c.call(t,p,m,h,g,_,C);S.apply(this,arguments)}}return c.call(t,p,m,h,g,_,C)}return Object.setPrototypeOf&&Object.setPrototypeOf(u,c),u}(t.read),t.readSync=typeof t.readSync!="function"?t.readSync:function(c){return function(u,p,m,h,g){for(var _=0;;)try{return c.call(t,u,p,m,h,g)}catch(S){if(S.code==="EAGAIN"&&_<10){_++;continue}throw S}}}(t.readSync);function e(c){c.lchmod=function(u,p,m){c.open(u,je.O_WRONLY|je.O_SYMLINK,p,function(h,g){if(h){m&&m(h);return}c.fchmod(g,p,function(_){c.close(g,function(S){m&&m(_||S)})})})},c.lchmodSync=function(u,p){var m=c.openSync(u,je.O_WRONLY|je.O_SYMLINK,p),h=!0,g;try{g=c.fchmodSync(m,p),h=!1}finally{if(h)try{c.closeSync(m)}catch{}else c.closeSync(m)}return g}}function r(c){je.hasOwnProperty("O_SYMLINK")&&c.futimes?(c.lutimes=function(u,p,m,h){c.open(u,je.O_SYMLINK,function(g,_){if(g){h&&h(g);return}c.futimes(_,p,m,function(S){c.close(_,function(C){h&&h(S||C)})})})},c.lutimesSync=function(u,p,m){var h=c.openSync(u,je.O_SYMLINK),g,_=!0;try{g=c.futimesSync(h,p,m),_=!1}finally{if(_)try{c.closeSync(h)}catch{}else c.closeSync(h)}return g}):c.futimes&&(c.lutimes=function(u,p,m,h){h&&process.nextTick(h)},c.lutimesSync=function(){})}function n(c){return c&&function(u,p,m){return c.call(t,u,p,function(h){f(h)&&(h=null),m&&m.apply(this,arguments)})}}function i(c){return c&&function(u,p){try{return c.call(t,u,p)}catch(m){if(!f(m))throw m}}}function s(c){return c&&function(u,p,m,h){return c.call(t,u,p,m,function(g){f(g)&&(g=null),h&&h.apply(this,arguments)})}}function o(c){return c&&function(u,p,m){try{return c.call(t,u,p,m)}catch(h){if(!f(h))throw h}}}function a(c){return c&&function(u,p,m){typeof p=="function"&&(m=p,p=null);function h(g,_){_&&(_.uid<0&&(_.uid+=4294967296),_.gid<0&&(_.gid+=4294967296)),m&&m.apply(this,arguments)}return p?c.call(t,u,p,h):c.call(t,u,h)}}function l(c){return c&&function(u,p){var m=p?c.call(t,u,p):c.call(t,u);return m&&(m.uid<0&&(m.uid+=4294967296),m.gid<0&&(m.gid+=4294967296)),m}}function f(c){if(!c||c.code==="ENOSYS")return!0;var u=!process.getuid||process.getuid()!==0;return!!(u&&(c.code==="EINVAL"||c.code==="EPERM"))}}});var Xi=x((Wg,Ki)=>{var Yi=v("stream").Stream;Ki.exports=pf;function pf(t){return{ReadStream:e,WriteStream:r};function e(n,i){if(!(this instanceof e))return new e(n,i);Yi.call(this);var s=this;this.path=n,this.fd=null,this.readable=!0,this.paused=!1,this.flags="r",this.mode=438,this.bufferSize=64*1024,i=i||{};for(var o=Object.keys(i),a=0,l=o.length;a<l;a++){var f=o[a];this[f]=i[f]}if(this.encoding&&this.setEncoding(this.encoding),this.start!==void 0){if(typeof this.start!="number")throw TypeError("start must be a Number");if(this.end===void 0)this.end=1/0;else if(typeof this.end!="number")throw TypeError("end must be a Number");if(this.start>this.end)throw new Error("start must be <= end");this.pos=this.start}if(this.fd!==null){process.nextTick(function(){s._read()});return}t.open(this.path,this.flags,this.mode,function(c,u){if(c){s.emit("error",c),s.readable=!1;return}s.fd=u,s.emit("open",u),s._read()})}function r(n,i){if(!(this instanceof r))return new r(n,i);Yi.call(this),this.path=n,this.fd=null,this.writable=!0,this.flags="w",this.encoding="binary",this.mode=438,this.bytesWritten=0,i=i||{};for(var s=Object.keys(i),o=0,a=s.length;o<a;o++){var l=s[o];this[l]=i[l]}if(this.start!==void 0){if(typeof this.start!="number")throw TypeError("start must be a Number");if(this.start<0)throw new Error("start must be >= zero");this.pos=this.start}this.busy=!1,this._queue=[],this.fd===null&&(this._open=t.open,this._queue.push([this._open,this.path,this.flags,this.mode,void 0]),this.flush())}}});var Qi=x((Vg,Zi)=>{"use strict";Zi.exports=df;var mf=Object.getPrototypeOf||function(t){return t.__proto__};function df(t){if(t===null||typeof t!="object")return t;if(t instanceof Object)var e={__proto__:mf(t)};else var e=Object.create(null);return Object.getOwnPropertyNames(t).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}),e}});var ut=x((Hg,Sn)=>{var F=v("fs"),hf=zi(),gf=Xi(),yf=Qi(),ur=v("util"),J,mr;typeof Symbol=="function"&&typeof Symbol.for=="function"?(J=Symbol.for("graceful-fs.queue"),mr=Symbol.for("graceful-fs.previous")):(J="___graceful-fs.queue",mr="___graceful-fs.previous");function _f(){}function rs(t,e){Object.defineProperty(t,J,{get:function(){return e}})}var Qe=_f;ur.debuglog?Qe=ur.debuglog("gfs4"):/\bgfs4\b/i.test(process.env.NODE_DEBUG||"")&&(Qe=function(){var t=ur.format.apply(ur,arguments);t="GFS4: "+t.split(/\n/).join(` GFS4: `),console.error(t)});F[J]||(es=global[J]||[],rs(F,es),F.close=function(t){function e(r,n){return t.call(F,r,function(i){i||ts(),typeof n=="function"&&n.apply(this,arguments)})}return Object.defineProperty(e,mr,{value:t}),e}(F.close),F.closeSync=function(t){function e(r){t.apply(F,arguments),ts()}return Object.defineProperty(e,mr,{value:t}),e}(F.closeSync),/\bgfs4\b/i.test(process.env.NODE_DEBUG||"")&&process.on("exit",function(){Qe(F[J]),v("assert").equal(F[J].length,0)}));var es;global[J]||rs(global,F[J]);Sn.exports=xn(yf(F));process.env.TEST_GRACEFUL_FS_GLOBAL_PATCH&&!F.__patched&&(Sn.exports=xn(F),F.__patched=!0);function xn(t){hf(t),t.gracefulify=xn,t.createReadStream=de,t.createWriteStream=Fe;var e=t.readFile;t.readFile=r;function r(w,b,E){return typeof b=="function"&&(E=b,b=null),B(w,b,E);function B(U,P,O,L){return e(U,P,function(I){I&&(I.code==="EMFILE"||I.code==="ENFILE")?ft([B,[U,P,O],I,L||Date.now(),Date.now()]):typeof O=="function"&&O.apply(this,arguments)})}}var n=t.writeFile;t.writeFile=i;function i(w,b,E,B){return typeof E=="function"&&(B=E,E=null),U(w,b,E,B);function U(P,O,L,I,H){return n(P,O,L,function(M){M&&(M.code==="EMFILE"||M.code==="ENFILE")?ft([U,[P,O,L,I],M,H||Date.now(),Date.now()]):typeof I=="function"&&I.apply(this,arguments)})}}var s=t.appendFile;s&&(t.appendFile=o);function o(w,b,E,B){return typeof E=="function"&&(B=E,E=null),U(w,b,E,B);function U(P,O,L,I,H){return s(P,O,L,function(M){M&&(M.code==="EMFILE"||M.code==="ENFILE")?ft([U,[P,O,L,I],M,H||Date.now(),Date.now()]):typeof I=="function"&&I.apply(this,arguments)})}}var a=t.copyFile;a&&(t.copyFile=l);function l(w,b,E,B){return typeof E=="function"&&(B=E,E=0),U(w,b,E,B);function U(P,O,L,I,H){return a(P,O,L,function(M){M&&(M.code==="EMFILE"||M.code==="ENFILE")?ft([U,[P,O,L,I],M,H||Date.now(),Date.now()]):typeof I=="function"&&I.apply(this,arguments)})}}var f=t.readdir;t.readdir=u;var c=/^v[0-5]\./;function u(w,b,E){typeof b=="function"&&(E=b,b=null);var B=c.test(process.version)?function(O,L,I,H){return f(O,U(O,L,I,H))}:function(O,L,I,H){return f(O,L,U(O,L,I,H))};return B(w,b,E);function U(P,O,L,I){return function(H,M){H&&(H.code==="EMFILE"||H.code==="ENFILE")?ft([B,[P,O,L],H,I||Date.now(),Date.now()]):(M&&M.sort&&M.sort(),typeof L=="function"&&L.call(this,H,M))}}}if(process.version.substr(0,4)==="v0.8"){var p=gf(t);S=p.ReadStream,T=p.WriteStream}var m=t.ReadStream;m&&(S.prototype=Object.create(m.prototype),S.prototype.open=C);var h=t.WriteStream;h&&(T.prototype=Object.create(h.prototype),T.prototype.open=Y),Object.defineProperty(t,"ReadStream",{get:function(){return S},set:function(w){S=w},enumerable:!0,configurable:!0}),Object.defineProperty(t,"WriteStream",{get:function(){return T},set:function(w){T=w},enumerable:!0,configurable:!0});var g=S;Object.defineProperty(t,"FileReadStream",{get:function(){return g},set:function(w){g=w},enumerable:!0,configurable:!0});var _=T;Object.defineProperty(t,"FileWriteStream",{get:function(){return _},set:function(w){_=w},enumerable:!0,configurable:!0});function S(w,b){return this instanceof S?(m.apply(this,arguments),this):S.apply(Object.create(S.prototype),arguments)}function C(){var w=this;ke(w.path,w.flags,w.mode,function(b,E){b?(w.autoClose&&w.destroy(),w.emit("error",b)):(w.fd=E,w.emit("open",E),w.read())})}function T(w,b){return this instanceof T?(h.apply(this,arguments),this):T.apply(Object.create(T.prototype),arguments)}function Y(){var w=this;ke(w.path,w.flags,w.mode,function(b,E){b?(w.destroy(),w.emit("error",b)):(w.fd=E,w.emit("open",E))})}function de(w,b){return new t.ReadStream(w,b)}function Fe(w,b){return new t.WriteStream(w,b)}var Ae=t.open;t.open=ke;function ke(w,b,E,B){return typeof E=="function"&&(B=E,E=null),U(w,b,E,B);function U(P,O,L,I,H){return Ae(P,O,L,function(M,lg){M&&(M.code==="EMFILE"||M.code==="ENFILE")?ft([U,[P,O,L,I],M,H||Date.now(),Date.now()]):typeof I=="function"&&I.apply(this,arguments)})}}return t}function ft(t){Qe("ENQUEUE",t[0].name,t[1]),F[J].push(t),vn()}var pr;function ts(){for(var t=Date.now(),e=0;e<F[J].length;++e)F[J][e].length>2&&(F[J][e][3]=t,F[J][e][4]=t);vn()}function vn(){if(clearTimeout(pr),pr=void 0,F[J].length!==0){var t=F[J].shift(),e=t[0],r=t[1],n=t[2],i=t[3],s=t[4];if(i===void 0)Qe("RETRY",e.name,r),e.apply(null,r);else if(Date.now()-i>=6e4){Qe("TIMEOUT",e.name,r);var o=r.pop();typeof o=="function"&&o.call(null,n)}else{var a=Date.now()-s,l=Math.max(s-i,1),f=Math.min(l*1.2,100);a>=f?(Qe("RETRY",e.name,r),e.apply(null,r.concat([i]))):F[J].push(t)}pr===void 0&&(pr=setTimeout(vn,0))}}});var Q=x(Ce=>{"use strict";var ns=q().fromCallback,Z=ut(),wf=["access","appendFile","chmod","chown","close","copyFile","cp","fchmod","fchown","fdatasync","fstat","fsync","ftruncate","futimes","glob","lchmod","lchown","lutimes","link","lstat","mkdir","mkdtemp","open","opendir","readdir","readFile","readlink","realpath","rename","rm","rmdir","stat","statfs","symlink","truncate","unlink","utimes","writeFile"].filter(t=>typeof Z[t]=="function");Object.assign(Ce,Z);wf.forEach(t=>{Ce[t]=ns(Z[t])});Ce.exists=function(t,e){return typeof e=="function"?Z.exists(t,e):new Promise(r=>Z.exists(t,r))};Ce.read=function(t,e,r,n,i,s){return typeof s=="function"?Z.read(t,e,r,n,i,s):new Promise((o,a)=>{Z.read(t,e,r,n,i,(l,f,c)=>{if(l)return a(l);o({bytesRead:f,buffer:c})})})};Ce.write=function(t,e,...r){return typeof r[r.length-1]=="function"?Z.write(t,e,...r):new Promise((n,i)=>{Z.write(t,e,...r,(s,o,a)=>{if(s)return i(s);n({bytesWritten:o,buffer:a})})})};Ce.readv=function(t,e,...r){return typeof r[r.length-1]=="function"?Z.readv(t,e,...r):new Promise((n,i)=>{Z.readv(t,e,...r,(s,o,a)=>{if(s)return i(s);n({bytesRead:o,buffers:a})})})};Ce.writev=function(t,e,...r){return typeof r[r.length-1]=="function"?Z.writev(t,e,...r):new Promise((n,i)=>{Z.writev(t,e,...r,(s,o,a)=>{if(s)return i(s);n({bytesWritten:o,buffers:a})})})};typeof Z.realpath.native=="function"?Ce.realpath.native=ns(Z.realpath.native):process.emitWarning("fs.realpath.native is not a function. Is fs being monkey-patched?","Warning","fs-extra-WARN0003")});var ss=x((Jg,is)=>{"use strict";var xf=v("path");is.exports.checkPath=function(e){if(process.platform==="win32"&&/[<>:"|?*]/.test(e.replace(xf.parse(e).root,""))){let n=new Error(`Path contains invalid characters: ${e}`);throw n.code="EINVAL",n}}});var ls=x((zg,bn)=>{"use strict";var os=Q(),{checkPath:as}=ss(),cs=t=>{let e={mode:511};return typeof t=="number"?t:{...e,...t}.mode};bn.exports.makeDir=async(t,e)=>(as(t),os.mkdir(t,{mode:cs(e),recursive:!0}));bn.exports.makeDirSync=(t,e)=>(as(t),os.mkdirSync(t,{mode:cs(e),recursive:!0}))});var ge=x((Yg,fs)=>{"use strict";var vf=q().fromPromise,{makeDir:Sf,makeDirSync:En}=ls(),Pn=vf(Sf);fs.exports={mkdirs:Pn,mkdirsSync:En,mkdirp:Pn,mkdirpSync:En,ensureDir:Pn,ensureDirSync:En}});var Ue=x((Kg,ps)=>{"use strict";var bf=q().fromPromise,us=Q();function Ef(t){return us.access(t).then(()=>!0).catch(()=>!1)}ps.exports={pathExists:bf(Ef),pathExistsSync:us.existsSync}});var kn=x((Xg,ms)=>{"use strict";var pt=Q(),Pf=q().fromPromise;async function kf(t,e,r){let n=await pt.open(t,"r+"),i=null;try{await pt.futimes(n,e,r)}finally{try{await pt.close(n)}catch(s){i=s}}if(i)throw i}function Cf(t,e,r){let n=pt.openSync(t,"r+");return pt.futimesSync(n,e,r),pt.closeSync(n)}ms.exports={utimesMillis:Pf(kf),utimesMillisSync:Cf}});var et=x((Zg,ys)=>{"use strict";var mt=Q(),W=v("path"),ds=q().fromPromise;function Of(t,e,r){let n=r.dereference?i=>mt.stat(i,{bigint:!0}):i=>mt.lstat(i,{bigint:!0});return Promise.all([n(t),n(e).catch(i=>{if(i.code==="ENOENT")return null;throw i})]).then(([i,s])=>({srcStat:i,destStat:s}))}function Lf(t,e,r){let n,i=r.dereference?o=>mt.statSync(o,{bigint:!0}):o=>mt.lstatSync(o,{bigint:!0}),s=i(t);try{n=i(e)}catch(o){if(o.code==="ENOENT")return{srcStat:s,destStat:null};throw o}return{srcStat:s,destStat:n}}async function Nf(t,e,r,n){let{srcStat:i,destStat:s}=await Of(t,e,n);if(s){if(Tt(i,s)){let o=W.basename(t),a=W.basename(e);if(r==="move"&&o!==a&&o.toLowerCase()===a.toLowerCase())return{srcStat:i,destStat:s,isChangingCase:!0};throw new Error("Source and destination must not be the same.")}if(i.isDirectory()&&!s.isDirectory())throw new Error(`Cannot overwrite non-directory '${e}' with directory '${t}'.`);if(!i.isDirectory()&&s.isDirectory())throw new Error(`Cannot overwrite directory '${e}' with non-directory '${t}'.`)}if(i.isDirectory()&&Cn(t,e))throw new Error(dr(t,e,r));return{srcStat:i,destStat:s}}function Tf(t,e,r,n){let{srcStat:i,destStat:s}=Lf(t,e,n);if(s){if(Tt(i,s)){let o=W.basename(t),a=W.basename(e);if(r==="move"&&o!==a&&o.toLowerCase()===a.toLowerCase())return{srcStat:i,destStat:s,isChangingCase:!0};throw new Error("Source and destination must not be the same.")}if(i.isDirectory()&&!s.isDirectory())throw new Error(`Cannot overwrite non-directory '${e}' with directory '${t}'.`);if(!i.isDirectory()&&s.isDirectory())throw new Error(`Cannot overwrite directory '${e}' with non-directory '${t}'.`)}if(i.isDirectory()&&Cn(t,e))throw new Error(dr(t,e,r));return{srcStat:i,destStat:s}}async function hs(t,e,r,n){let i=W.resolve(W.dirname(t)),s=W.resolve(W.dirname(r));if(s===i||s===W.parse(s).root)return;let o;try{o=await mt.stat(s,{bigint:!0})}catch(a){if(a.code==="ENOENT")return;throw a}if(Tt(e,o))throw new Error(dr(t,r,n));return hs(t,e,s,n)}function gs(t,e,r,n){let i=W.resolve(W.dirname(t)),s=W.resolve(W.dirname(r));if(s===i||s===W.parse(s).root)return;let o;try{o=mt.statSync(s,{bigint:!0})}catch(a){if(a.code==="ENOENT")return;throw a}if(Tt(e,o))throw new Error(dr(t,r,n));return gs(t,e,s,n)}function Tt(t,e){return e.ino&&e.dev&&e.ino===t.ino&&e.dev===t.dev}function Cn(t,e){let r=W.resolve(t).split(W.sep).filter(i=>i),n=W.resolve(e).split(W.sep).filter(i=>i);return r.every((i,s)=>n[s]===i)}function dr(t,e,r){return`Cannot ${r} '${t}' to a subdirectory of itself, '${e}'.`}ys.exports={checkPaths:ds(Nf),checkPathsSync:Tf,checkParentPaths:ds(hs),checkParentPathsSync:gs,isSrcSubdir:Cn,areIdentical:Tt}});var Ss=x((Qg,vs)=>{"use strict";var K=Q(),It=v("path"),{mkdirs:If}=ge(),{pathExists:Mf}=Ue(),{utimesMillis:Df}=kn(),Mt=et();async function Ff(t,e,r={}){typeof r=="function"&&(r={filter:r}),r.clobber="clobber"in r?!!r.clobber:!0,r.overwrite="overwrite"in r?!!r.overwrite:r.clobber,r.preserveTimestamps&&process.arch==="ia32"&&process.emitWarning(`Using the preserveTimestamps option in 32-bit node is not recommended; see https://github.com/jprichardson/node-fs-extra/issues/269`,"Warning","fs-extra-WARN0001");let{srcStat:n,destStat:i}=await Mt.checkPaths(t,e,"copy",r);if(await Mt.checkParentPaths(t,n,e,"copy"),!await ws(t,e,r))return;let o=It.dirname(e);await Mf(o)||await If(o),await xs(i,t,e,r)}async function ws(t,e,r){return r.filter?r.filter(t,e):!0}async function xs(t,e,r,n){let s=await(n.dereference?K.stat:K.lstat)(e);if(s.isDirectory())return Bf(s,t,e,r,n);if(s.isFile()||s.isCharacterDevice()||s.isBlockDevice())return Af(s,t,e,r,n);if(s.isSymbolicLink())return jf(t,e,r,n);throw s.isSocket()?new Error(`Cannot copy a socket file: ${e}`):s.isFIFO()?new Error(`Cannot copy a FIFO pipe: ${e}`):new Error(`Unknown file: ${e}`)}async function Af(t,e,r,n,i){if(!e)return _s(t,r,n,i);if(i.overwrite)return await K.unlink(n),_s(t,r,n,i);if(i.errorOnExist)throw new Error(`'${n}' already exists`)}async function _s(t,e,r,n){if(await K.copyFile(e,r),n.preserveTimestamps){$f(t.mode)&&await Rf(r,t.mode);let i=await K.stat(e);await Df(r,i.atime,i.mtime)}return K.chmod(r,t.mode)}function $f(t){return(t&128)===0}function Rf(t,e){return K.chmod(t,e|128)}async function Bf(t,e,r,n,i){e||await K.mkdir(n);let s=[];for await(let o of await K.opendir(r)){let a=It.join(r,o.name),l=It.join(n,o.name);s.push(ws(a,l,i).then(f=>{if(f)return Mt.checkPaths(a,l,"copy",i).then(({destStat:c})=>xs(c,a,l,i))}))}await Promise.all(s),e||await K.chmod(n,t.mode)}async function jf(t,e,r,n){let i=await K.readlink(e);if(n.dereference&&(i=It.resolve(process.cwd(),i)),!t)return K.symlink(i,r);let s=null;try{s=await K.readlink(r)}catch(o){if(o.code==="EINVAL"||o.code==="UNKNOWN")return K.symlink(i,r);throw o}if(n.dereference&&(s=It.resolve(process.cwd(),s)),Mt.isSrcSubdir(i,s))throw new Error(`Cannot copy '${i}' to a subdirectory of itself, '${s}'.`);if(Mt.isSrcSubdir(s,i))throw new Error(`Cannot overwrite '${s}' with '${i}'.`);return await K.unlink(r),K.symlink(i,r)}vs.exports=Ff});var Cs=x((ey,ks)=>{"use strict";var ee=ut(),Dt=v("path"),Uf=ge().mkdirsSync,qf=kn().utimesMillisSync,Ft=et();function Wf(t,e,r){typeof r=="function"&&(r={filter:r}),r=r||{},r.clobber="clobber"in r?!!r.clobber:!0,r.overwrite="overwrite"in r?!!r.overwrite:r.clobber,r.preserveTimestamps&&process.arch==="ia32"&&process.emitWarning(`Using the preserveTimestamps option in 32-bit node is not recommended; see https://github.com/jprichardson/node-fs-extra/issues/269`,"Warning","fs-extra-WARN0002");let{srcStat:n,destStat:i}=Ft.checkPathsSync(t,e,"copy",r);if(Ft.checkParentPathsSync(t,n,e,"copy"),r.filter&&!r.filter(t,e))return;let s=Dt.dirname(e);return ee.existsSync(s)||Uf(s),bs(i,t,e,r)}function bs(t,e,r,n){let s=(n.dereference?ee.statSync:ee.lstatSync)(e);if(s.isDirectory())return Kf(s,t,e,r,n);if(s.isFile()||s.isCharacterDevice()||s.isBlockDevice())return Vf(s,t,e,r,n);if(s.isSymbolicLink())return Qf(t,e,r,n);throw s.isSocket()?new Error(`Cannot copy a socket file: ${e}`):s.isFIFO()?new Error(`Cannot copy a FIFO pipe: ${e}`):new Error(`Unknown file: ${e}`)}function Vf(t,e,r,n,i){return e?Hf(t,r,n,i):Es(t,r,n,i)}function Hf(t,e,r,n){if(n.overwrite)return ee.unlinkSync(r),Es(t,e,r,n);if(n.errorOnExist)throw new Error(`'${r}' already exists`)}function Es(t,e,r,n){return ee.copyFileSync(e,r),n.preserveTimestamps&&Gf(t.mode,e,r),On(r,t.mode)}function Gf(t,e,r){return Jf(t)&&zf(r,t),Yf(e,r)}function Jf(t){return(t&128)===0}function zf(t,e){return On(t,e|128)}function On(t,e){return ee.chmodSync(t,e)}function Yf(t,e){let r=ee.statSync(t);return qf(e,r.atime,r.mtime)}function Kf(t,e,r,n,i){return e?Ps(r,n,i):Xf(t.mode,r,n,i)}function Xf(t,e,r,n){return ee.mkdirSync(r),Ps(e,r,n),On(r,t)}function Ps(t,e,r){let n=ee.opendirSync(t);try{let i;for(;(i=n.readSync())!==null;)Zf(i.name,t,e,r)}finally{n.closeSync()}}function Zf(t,e,r,n){let i=Dt.join(e,t),s=Dt.join(r,t);if(n.filter&&!n.filter(i,s))return;let{destStat:o}=Ft.checkPathsSync(i,s,"copy",n);return bs(o,i,s,n)}function Qf(t,e,r,n){let i=ee.readlinkSync(e);if(n.dereference&&(i=Dt.resolve(process.cwd(),i)),t){let s;try{s=ee.readlinkSync(r)}catch(o){if(o.code==="EINVAL"||o.code==="UNKNOWN")return ee.symlinkSync(i,r);throw o}if(n.dereference&&(s=Dt.resolve(process.cwd(),s)),Ft.isSrcSubdir(i,s))throw new Error(`Cannot copy '${i}' to a subdirectory of itself, '${s}'.`);if(Ft.isSrcSubdir(s,i))throw new Error(`Cannot overwrite '${s}' with '${i}'.`);return eu(i,r)}else return ee.symlinkSync(i,r)}function eu(t,e){return ee.unlinkSync(e),ee.symlinkSync(t,e)}ks.exports=Wf});var hr=x((ty,Os)=>{"use strict";var tu=q().fromPromise;Os.exports={copy:tu(Ss()),copySync:Cs()}});var At=x((ry,Ns)=>{"use strict";var Ls=ut(),ru=q().fromCallback;function nu(t,e){Ls.rm(t,{recursive:!0,force:!0},e)}function iu(t){Ls.rmSync(t,{recursive:!0,force:!0})}Ns.exports={remove:ru(nu),removeSync:iu}});var Rs=x((ny,$s)=>{"use strict";var su=q().fromPromise,Ms=Q(),Ds=v("path"),Fs=ge(),As=At(),Ts=su(async function(e){let r;try{r=await Ms.readdir(e)}catch{return Fs.mkdirs(e)}return Promise.all(r.map(n=>As.remove(Ds.join(e,n))))});function Is(t){let e;try{e=Ms.readdirSync(t)}catch{return Fs.mkdirsSync(t)}e.forEach(r=>{r=Ds.join(t,r),As.removeSync(r)})}$s.exports={emptyDirSync:Is,emptydirSync:Is,emptyDir:Ts,emptydir:Ts}});var qs=x((iy,Us)=>{"use strict";var ou=q().fromPromise,Bs=v("path"),Oe=Q(),js=ge();async function au(t){let e;try{e=await Oe.stat(t)}catch{}if(e&&e.isFile())return;let r=Bs.dirname(t),n=null;try{n=await Oe.stat(r)}catch(i){if(i.code==="ENOENT"){await js.mkdirs(r),await Oe.writeFile(t,"");return}else throw i}n.isDirectory()?await Oe.writeFile(t,""):await Oe.readdir(r)}function cu(t){let e;try{e=Oe.statSync(t)}catch{}if(e&&e.isFile())return;let r=Bs.dirname(t);try{Oe.statSync(r).isDirectory()||Oe.readdirSync(r)}catch(n){if(n&&n.code==="ENOENT")js.mkdirsSync(r);else throw n}Oe.writeFileSync(t,"")}Us.exports={createFile:ou(au),createFileSync:cu}});var Js=x((sy,Gs)=>{"use strict";var lu=q().fromPromise,Ws=v("path"),qe=Q(),Vs=ge(),{pathExists:fu}=Ue(),{areIdentical:Hs}=et();async function uu(t,e){let r;try{r=await qe.lstat(e)}catch{}let n;try{n=await qe.lstat(t)}catch(o){throw o.message=o.message.replace("lstat","ensureLink"),o}if(r&&Hs(n,r))return;let i=Ws.dirname(e);await fu(i)||await Vs.mkdirs(i),await qe.link(t,e)}function pu(t,e){let r;try{r=qe.lstatSync(e)}catch{}try{let s=qe.lstatSync(t);if(r&&Hs(s,r))return}catch(s){throw s.message=s.message.replace("lstat","ensureLink"),s}let n=Ws.dirname(e);return qe.existsSync(n)||Vs.mkdirsSync(n),qe.linkSync(t,e)}Gs.exports={createLink:lu(uu),createLinkSync:pu}});var Ys=x((oy,zs)=>{"use strict";var We=v("path"),$t=Q(),{pathExists:mu}=Ue(),du=q().fromPromise;async function hu(t,e){if(We.isAbsolute(t)){try{await $t.lstat(t)}catch(s){throw s.message=s.message.replace("lstat","ensureSymlink"),s}return{toCwd:t,toDst:t}}let r=We.dirname(e),n=We.join(r,t);if(await mu(n))return{toCwd:n,toDst:t};try{await $t.lstat(t)}catch(s){throw s.message=s.message.replace("lstat","ensureSymlink"),s}return{toCwd:t,toDst:We.relative(r,t)}}function gu(t,e){if(We.isAbsolute(t)){if(!$t.existsSync(t))throw new Error("absolute srcpath does not exist");return{toCwd:t,toDst:t}}let r=We.dirname(e),n=We.join(r,t);if($t.existsSync(n))return{toCwd:n,toDst:t};if(!$t.existsSync(t))throw new Error("relative srcpath does not exist");return{toCwd:t,toDst:We.relative(r,t)}}zs.exports={symlinkPaths:du(hu),symlinkPathsSync:gu}});var Zs=x((ay,Xs)=>{"use strict";var Ks=Q(),yu=q().fromPromise;async function _u(t,e){if(e)return e;let r;try{r=await Ks.lstat(t)}catch{return"file"}return r&&r.isDirectory()?"dir":"file"}function wu(t,e){if(e)return e;let r;try{r=Ks.lstatSync(t)}catch{return"file"}return r&&r.isDirectory()?"dir":"file"}Xs.exports={symlinkType:yu(_u),symlinkTypeSync:wu}});var ro=x((cy,to)=>{"use strict";var xu=q().fromPromise,Qs=v("path"),Se=Q(),{mkdirs:vu,mkdirsSync:Su}=ge(),{symlinkPaths:bu,symlinkPathsSync:Eu}=Ys(),{symlinkType:Pu,symlinkTypeSync:ku}=Zs(),{pathExists:Cu}=Ue(),{areIdentical:eo}=et();async function Ou(t,e,r){let n;try{n=await Se.lstat(e)}catch{}if(n&&n.isSymbolicLink()){let[a,l]=await Promise.all([Se.stat(t),Se.stat(e)]);if(eo(a,l))return}let i=await bu(t,e);t=i.toDst;let s=await Pu(i.toCwd,r),o=Qs.dirname(e);return await Cu(o)||await vu(o),Se.symlink(t,e,s)}function Lu(t,e,r){let n;try{n=Se.lstatSync(e)}catch{}if(n&&n.isSymbolicLink()){let a=Se.statSync(t),l=Se.statSync(e);if(eo(a,l))return}let i=Eu(t,e);t=i.toDst,r=ku(i.toCwd,r);let s=Qs.dirname(e);return Se.existsSync(s)||Su(s),Se.symlinkSync(t,e,r)}to.exports={createSymlink:xu(Ou),createSymlinkSync:Lu}});var fo=x((ly,lo)=>{"use strict";var{createFile:no,createFileSync:io}=qs(),{createLink:so,createLinkSync:oo}=Js(),{createSymlink:ao,createSymlinkSync:co}=ro();lo.exports={createFile:no,createFileSync:io,ensureFile:no,ensureFileSync:io,createLink:so,createLinkSync:oo,ensureLink:so,ensureLinkSync:oo,createSymlink:ao,createSymlinkSync:co,ensureSymlink:ao,ensureSymlinkSync:co}});var gr=x((fy,uo)=>{function Nu(t,{EOL:e=` `,finalEOL:r=!0,replacer:n=null,spaces:i}={}){let s=r?e:"";return JSON.stringify(t,n,i).replace(/\n/g,e)+s}function Tu(t){return Buffer.isBuffer(t)&&(t=t.toString("utf8")),t.replace(/^\uFEFF/,"")}uo.exports={stringify:Nu,stripBom:Tu}});var go=x((uy,ho)=>{var dt;try{dt=ut()}catch{dt=v("fs")}var yr=q(),{stringify:po,stripBom:mo}=gr();async function Iu(t,e={}){typeof e=="string"&&(e={encoding:e});let r=e.fs||dt,n="throws"in e?e.throws:!0,i=await yr.fromCallback(r.readFile)(t,e);i=mo(i);let s;try{s=JSON.parse(i,e?e.reviver:null)}catch(o){if(n)throw o.message=`${t}: ${o.message}`,o;return null}return s}var Mu=yr.fromPromise(Iu);function Du(t,e={}){typeof e=="string"&&(e={encoding:e});let r=e.fs||dt,n="throws"in e?e.throws:!0;try{let i=r.readFileSync(t,e);return i=mo(i),JSON.parse(i,e.reviver)}catch(i){if(n)throw i.message=`${t}: ${i.message}`,i;return null}}async function Fu(t,e,r={}){let n=r.fs||dt,i=po(e,r);await yr.fromCallback(n.writeFile)(t,i,r)}var Au=yr.fromPromise(Fu);function $u(t,e,r={}){let n=r.fs||dt,i=po(e,r);return n.writeFileSync(t,i,r)}var Ru={readFile:Mu,readFileSync:Du,writeFile:Au,writeFileSync:$u};ho.exports=Ru});var _o=x((py,yo)=>{"use strict";var _r=go();yo.exports={readJson:_r.readFile,readJsonSync:_r.readFileSync,writeJson:_r.writeFile,writeJsonSync:_r.writeFileSync}});var wr=x((my,vo)=>{"use strict";var Bu=q().fromPromise,Ln=Q(),wo=v("path"),xo=ge(),ju=Ue().pathExists;async function Uu(t,e,r="utf-8"){let n=wo.dirname(t);return await ju(n)||await xo.mkdirs(n),Ln.writeFile(t,e,r)}function qu(t,...e){let r=wo.dirname(t);Ln.existsSync(r)||xo.mkdirsSync(r),Ln.writeFileSync(t,...e)}vo.exports={outputFile:Bu(Uu),outputFileSync:qu}});var bo=x((dy,So)=>{"use strict";var{stringify:Wu}=gr(),{outputFile:Vu}=wr();async function Hu(t,e,r={}){let n=Wu(e,r);await Vu(t,n,r)}So.exports=Hu});var Po=x((hy,Eo)=>{"use strict";var{stringify:Gu}=gr(),{outputFileSync:Ju}=wr();function zu(t,e,r){let n=Gu(e,r);Ju(t,n,r)}Eo.exports=zu});var Co=x((gy,ko)=>{"use strict";var Yu=q().fromPromise,te=_o();te.outputJson=Yu(bo());te.outputJsonSync=Po();te.outputJSON=te.outputJson;te.outputJSONSync=te.outputJsonSync;te.writeJSON=te.writeJson;te.writeJSONSync=te.writeJsonSync;te.readJSON=te.readJson;te.readJSONSync=te.readJsonSync;ko.exports=te});var Io=x((yy,To)=>{"use strict";var Ku=Q(),Oo=v("path"),{copy:Xu}=hr(),{remove:No}=At(),{mkdirp:Zu}=ge(),{pathExists:Qu}=Ue(),Lo=et();async function ep(t,e,r={}){let n=r.overwrite||r.clobber||!1,{srcStat:i,isChangingCase:s=!1}=await Lo.checkPaths(t,e,"move",r);await Lo.checkParentPaths(t,i,e,"move");let o=Oo.dirname(e);return Oo.parse(o).root!==o&&await Zu(o),tp(t,e,n,s)}async function tp(t,e,r,n){if(!n){if(r)await No(e);else if(await Qu(e))throw new Error("dest already exists.")}try{await Ku.rename(t,e)}catch(i){if(i.code!=="EXDEV")throw i;await rp(t,e,r)}}async function rp(t,e,r){return await Xu(t,e,{overwrite:r,errorOnExist:!0,preserveTimestamps:!0}),No(t)}To.exports=ep});var $o=x((_y,Ao)=>{"use strict";var Do=ut(),Tn=v("path"),np=hr().copySync,Fo=At().removeSync,ip=ge().mkdirpSync,Mo=et();function sp(t,e,r){r=r||{};let n=r.overwrite||r.clobber||!1,{srcStat:i,isChangingCase:s=!1}=Mo.checkPathsSync(t,e,"move",r);return Mo.checkParentPathsSync(t,i,e,"move"),op(e)||ip(Tn.dirname(e)),ap(t,e,n,s)}function op(t){let e=Tn.dirname(t);return Tn.parse(e).root===e}function ap(t,e,r,n){if(n)return Nn(t,e,r);if(r)return Fo(e),Nn(t,e,r);if(Do.existsSync(e))throw new Error("dest already exists.");return Nn(t,e,r)}function Nn(t,e,r){try{Do.renameSync(t,e)}catch(n){if(n.code!=="EXDEV")throw n;return cp(t,e,r)}}function cp(t,e,r){return np(t,e,{overwrite:r,errorOnExist:!0,preserveTimestamps:!0}),Fo(t)}Ao.exports=sp});var Bo=x((wy,Ro)=>{"use strict";var lp=q().fromPromise;Ro.exports={move:lp(Io()),moveSync:$o()}});var z=x((xy,jo)=>{"use strict";jo.exports={...Q(),...hr(),...Rs(),...fo(),...Co(),...ge(),...Bo(),...wr(),...Ue(),...At()}});var Uo,qo=y(()=>{Uo=()=>` # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. # dependencies /node_modules /.pnp .pnp.js # testing /coverage #cache .turbo .next .vercel # misc .DS_Store *.pem # debug npm-debug.log* yarn-debug.log* yarn-error.log* .pnpm-debug.log* # local env files .env* out/ build/ dist/ # plasmo - https://www.plasmo.com .plasmo # bpp - https://github.com/marketplace/actions/browser-platform-publisher keys.json # typescript .tsbuildinfo `});import{userInfo as fp}from"os";import{sentenceCase as up}from"change-case";import pp from"package-json";var mp,Wo,In,Mn=y(()=>{mp=async({name:t="plasmo-extension",version:e="0.0.1",packageManager:r={}})=>{let n={name:t,displayName:up(t),version:e,description:"A basic Plasmo extension.",author:fp().username,packageManager:void 0,scripts:{dev:"plasmo dev",build:"plasmo build",package:"plasmo package"},dependencies:{plasmo:"workspace:*",react:"*","react-dom":"*"},devDependencies:{"@types/chrome":"*","@types/node":"*","@types/react":"*","@types/react-dom":"*",prettier:"*",typescript:"*"},manifest:{host_permissions:["https://*/*"]}};return!r||!r.version?delete n.packageManager:n.packageManager=`${r.name}@${r.version}`,n},Wo=async t=>await mp(t),In=async t=>{let e={};return await Promise.all(Object.entries(t).map(async([r,n])=>{if(r==="plasmo")e[r]="0.90.5";else if(n==="workspace:*")try{let i=await pp(r,{version:"latest"});e[r]=i.version}catch{e[r]=n}else e[r]=n})),e}});import{dirname as dp,resolve as ht}from"path";import{fileURLToPath as hp}from"url";var xr,Dn=y(()=>{xr=()=>{let t=dp(hp(import.meta.url)),e=ht(t,"..","templates"),r=ht(e,"static"),n=ht(v.resolve("@plasmohq/init"),".."),i=ht(n,"templates"),s=ht(n,"entries"),o=ht(n,"bpp.yml");return{templatePath:e,initTemplatePath:i,initEntryPath:s,staticTemplatePath:r,bppYaml:o}}});import gp from"inquirer";var gt,Fn=y(()=>{gt=async(t="",e="")=>{let{data:r}=await gp.prompt({name:"data",prefix:"\u{1F7E1}",message:t,default:e});return r}});import{readFile as yp}from"fs/promises";import{extname as _p}from"path";import{strFromU8 as wp,unzipSync as xp}from"fflate";async function vp(t,e,r){if(t.content_security_policy&&(d("Convert content_security_policy"),e.manifest.content_security_policy={extension_pages:t.content_security_policy}),t.web_accessible_resources&&(d("Convert web_accessible_resources"),e.manifest.web_accessible_resources=[{matches:["https://*/*"],resources:t.web_accessible_resources}]),t.permissions){d("Convert permissions"),e.manifest.permissions=[],e.manifest.host_permissions=[];for(let n of t.permissions)n.startsWith("http")||n==="<all_urls>"?e.manifest.host_permissions.push(n):e.manifest.permissions.push(n)}t.browser_action&&(d("Convert browser_action"),e.manifest.action={default_title:t.browser_action.default_title}),t.background&&d("Convert background")}async function Sp(t,e,r){t.content_security_policy&&(d("Convert content_security_policy"),e.manifest.content_security_policy={...t.content_security_policy}),t.web_accessible_resources&&(d("Convert web_accessible_resources"),e.manifest.web_accessible_resources=[...t.web_accessible_resources]),t.permissions&&(d("Transfer permissions"),e.manifest.permissions=[...t.permissions]),t.host_permissions&&(d("Transfer host_permissions"),e.manifest.host_permissions=[...t.host_permissions]),t.action&&(d("Convert browser_action"),e.manifest.action={default_title:t.action.default_title}),t.background&&d("Convert background")}var Vo,Ho,Go,Jo=y(()=>{Vo=$(z(),1);k();Mn();Ho=async t=>{let e={unzipped:{},isZip:!1,manifestData:{}},r=_p(t);if(r===".zip"){let n=await yp(t);e.unzipped=xp(n),e.isZip=!0,e.manifestData=JSON.parse(wp(e.unzipped["manifest.json"]))}else if(r===".json")e.manifestData=await(0,Vo.readJson)(t);else return null;return e},Go=async(t,e,{manifestData:r})=>{let n=await Wo({name:t.packageName,packageManager:e});switch(n.version=r.version,n.displayName=r.name,n.description=r.description,r?.author&&(n.author=r.author),r.homepage_url&&(n.homepage=r.homepage_url),r.version_name&&(n.manifest.version_name=r.version_name),r.browser_specific_settings&&(n.manifest.browser_specific_settings=r.browser_specific_settings),r.default_locale&&d("Convert locale"),r.options_ui&&d("Convert options_ui"),r.chrome_url_overrides&&d("Convert chrome_url_overrides"),r.icons&&d("Convert icons"),r.content_scripts&&d("Convert content_scripts"),r.manifest_version){case 2:await vp(r,n,t);break;case 3:await Sp(r,n,t);break;default:throw new Error("Unknown manifest version")}return n}});import{existsSync as zo}from"fs";import{lstat as bp,readFile as Ep,writeFile as Pp}from"fs/promises";import{isAbsolute as kp,join as Cp,relative as Op,resolve as Rt}from"path";import Lp from"@expo/spawn-async";import{sentenceCase as Np}from"change-case";import Tp from"ignore";import{temporaryDirectory as Ip}from"tempy";var ye,Mp,vr,Yo=y(()=>{ye=$(z(),1);he();X();k();qo();Mn();Dn();Fn();Jo();Mp=/(?:^--with-)(?:\w+-?)+(?:[^-]$)/,vr=class{constructor(e,r,n=!1){this.commonPath=e;this.packageManager=r;this.isExample=n}templatePath=xr();async create(){return await this.createFrom()||await this.createWith()||await this.createBlank()}async createFrom(){let e=G("--from");if(!e)return!1;let r=kp(e)?e:Rt(e),n=await bp(r);return n.isFile()?await this.createFromManifest(r):n.isDirectory()?await this.createFromLocalTemplate(r):!1}async createFromLocalTemplate(e){let r=Tp().add(["node_modules",".git",".env*"]),n=Cp(e,".gitignore");if(await A(n)){let o=await Ep(n,"utf-8");r.add(o)}await(0,ye.copy)(e,this.commonPath.projectDirectory,{filter:o=>o===e||!r.ignores(Op(e,o))});let s=await(0,ye.readJson)(this.commonPath.packageFilePath);return await this.outputPackageData(s),N(`Creating new project from ${e}`),!0}async createFromManifest(e){let r=await Ho(e);if(r===null)return!1;await this.copyBlankInitFiles();let n=await Go(this.commonPath,this.packageManager,r);return await this.outputPackageData(n,{resolveWorkspaceRefs:!0}),!0}async createWith(){let e=process.argv.find(r=>Mp.test(r));return e===void 0?!1:this.createWithExample(e.substring(2))}async createWithExample(e){let r=Ip();d(`Download examples to temporary directory: ${r}`);try{await Lp("git",["clone","--depth","1","https://github.com/PlasmoHQ/examples.git","."],{cwd:r,ignoreStdio:!0})}catch(s){if(s.code==="ENOENT")throw new Error("Unable to clone example repo. `git` is not in PATH.")}let n=Rt(r,e);if(!zo(n))throw new Error(`Example ${e} not found. You may file an example request at: https://docs.plasmo.com/exp`);d("Copy example to project directory"),await Promise.all([(0,ye.copy)(n,this.commonPath.projectDirectory),this.copyBppWorkflow()]);let i=await(0,ye.readJson)(this.commonPath.packageFilePath);return await this.outputPackageData(i,{resolveWorkspaceRefs:!0}),N(`Creating new project ${e.split("-").join(" ")}`),!0}async createBlank(){return await this.createWithExample("with-popup"),!0}async outputPackageData(e,{resolveWorkspaceRefs:r=!1}={}){let{packageName:n,packageFilePath:i}=this.commonPath;if(e.name=n,e.displayName=Np(n),e.description=await gt("Extension description:",e.description),this.isExample)delete e.packageManager,e.contributors=[await gt("Contributor name:",e.author)],e.author="Plasmo Corp. <foss@plasmo.com>";else if(delete e.contributors,e.author=await gt("Author name:",e.author),r){d("Replace workspace refs with the latest package version from npm registry");let s=await Promise.all([In(e.dependencies),In(e.devDependencies)]);e.dependencies=s[0],e.devDependencies=s[1]}await(0,ye.outputJson)(i,e,{spaces:2})}async copyBlankInitFiles(){let r=(G("--entry")||"popup").split(new RegExp(",|\\s")).flatMap(n=>[`${n}.ts`,`${n}.tsx`]).map(n=>[Rt(this.templatePath.initEntryPath,n),Rt(this.commonPath.projectDirectory,n)]).filter(([n])=>zo(n));d("Using the following entry files: ",r),await Promise.all([(0,ye.copy)(this.templatePath.initTemplatePath,this.commonPath.projectDirectory),this.copyBppWorkflow(),Pp(this.commonPath.gitIgnorePath,Uo())]),await Promise.all(r.map(([n,i])=>(0,ye.copy)(n,i)))}async copyBppWorkflow(){if(this.isExample||R("--no-bpp"))return;d("Copying BPP workflow...");let e=Rt(this.commonPath.projectDirectory,".github","workflows","submit.yml");return(0,ye.copy)(this.templatePath.bppYaml,e)}}});import{createQuestId as Dp}from"mnemonic-id";var Ko,Xo=y(()=>{nr();k();Fn();Ko=async()=>{let[t]=rr("init");return t?(d("Using user-provided name:",t),t):(d("Prompting for the extension name"),await gt("Extension name:",Dp()))}});import Sr from"@expo/spawn-async";async function Zo(t,e){if(!await A(t.gitIgnorePath))return!1;try{return await Fp(e)}catch(r){return j(r.message),!1}}var Fp,Qo=y(()=>{X();k();Fp=async t=>{let{default:e}=await import("chalk"),r={cwd:t,ignoreStdio:!0};try{return d("Checking if the root is a git repository"),await Sr("git",["rev-parse","--is-inside-work-tree"],r),d(`${t} is a git repository, bailing ${e.bold("git init")}`),!1}catch(n){if(n.code==="ENOENT")throw new Error("Unable to initialize git repo. `git` not in PATH.")}return N("Initializing git project..."),await Sr("git",["init"],r),await Sr("git",["add","--all"],r),await Sr("git",["commit","-m","Created a new Plasmo extension"],r),d("Added all files to git and created the initial commit."),!0}});import Ap from"@expo/spawn-async";var ea,ta=y(()=>{k();ea=async(t,e)=>{try{N("Installing dependencies..."),await Ap(e.name,["install"],{cwd:t,stdio:"inherit"})}catch(r){j(r.message)}}});var ra,na=y(()=>{k();ra=async(t,e,r,n)=>{let{default:i}=await import("chalk");Re("Your extension is ready in: ",i.yellowBright(t),` To start hacking, run: `,t===e?"":` cd ${r.packageName} `,` ${n.name} ${n.name==="npm"?"run dev":"dev"} `,` Visit https://docs.plasmo.com for documentation and more examples.`)}});var ia={};Xe(ia,{default:()=>Up});import{resolve as $p}from"path";import{cwd as Rp}from"process";import{kebabCase as Bp}from"change-case";async function jp(){fe();let t=R("--exp"),e=await Ko(),r=Rp(),n=$p(r,Bp(e)||e);d("Project directory:",n);let i=ct(n);if(d("Package name:",i.packageName),t&&!i.packageName.startsWith("with-"))throw new Error("Example extensions must have the `with-` prefix");await Gi(n);let s=await lt();d(`Using package manager: ${s.name} ${s?.version}`),await new vr(i,s,t).create(),await ea(n,s),await Zo(i,n),await ra(n,r,i,s)}var Up,sa=y(()=>{he();X();k();cr();lr();Ze();Yo();Xo();Qo();ta();na();Up=jp});var Le=x((O_,ca)=>{"use strict";var oa=["nodebuffer","arraybuffer","fragments"],aa=typeof Blob<"u";aa&&oa.push("blob");ca.exports={BINARY_TYPES:oa,EMPTY_BUFFER:Buffer.alloc(0),GUID:"258EAFA5-E914-47DA-95CA-C5AB0DC85B11",hasBlob:aa,kForOnEventAttribute:Symbol("kIsForOnEventAttribute"),kListener:Symbol("kListener"),kStatusCode:Symbol("status-code"),kWebSocket:Symbol("websocket"),NOOP:()=>{}}});var Bt=x((L_,br)=>{"use strict";var{EMPTY_BUFFER:qp}=Le(),An=Buffer[Symbol.species];function Wp(t,e){if(t.length===0)return qp;if(t.length===1)return t[0];let r=Buffer.allocUnsafe(e),n=0;for(let i=0;i<t.length;i++){let s=t[i];r.set(s,n),n+=s.length}return n<e?new An(r.buffer,r.byteOffset,n):r}function la(t,e,r,n,i){for(let s=0;s<i;s++)r[n+s]=t[s]^e[s&3]}function fa(t,e){for(let r=0;r<t.length;r++)t[r]^=e[r&3]}function Vp(t){return t.length===t.buffer.byteLength?t.buffer:t.buffer.slice(t.byteOffset,t.byteOffset+t.length)}function $n(t){if($n.readOnly=!0,Buffer.isBuffer(t))return t;let e;return t instanceof ArrayBuffer?e=new An(t):ArrayBuffer.isView(t)?e=new An(t.buffer,t.byteOffset,t.byteLength):(e=Buffer.from(t),$n.readOnly=!1),e}br.exports={concat:Wp,mask:la,toArrayBuffer:Vp,toBuffer:$n,unmask:fa};if(!process.env.WS_NO_BUFFER_UTIL)try{let t=v("bufferutil");br.exports.mask=function(e,r,n,i,s){s<48?la(e,r,n,i,s):t.mask(e,r,n,i,s)},br.exports.unmask=function(e,r){e.length<32?fa(e,r):t.unmask(e,r)}}catch{}});var ma=x((N_,pa)=>{"use strict";var ua=Symbol("kDone"),Rn=Symbol("kRun"),Bn=class{constructor(e){this[ua]=()=>{this.pending--,this[Rn]()},this.concurrency=e||1/0,this.jobs=[],this.pending=0}add(e){this.jobs.push(e),this[Rn]()}[Rn](){if(this.pending!==this.concurrency&&this.jobs.length){let e=this.jobs.shift();this.pending++,e(this[ua])}}};pa.exports=Bn});var qt=x((T_,ya)=>{"use strict";var jt=v("zlib"),da=Bt(),Hp=ma(),{kStatusCode:ha}=Le(),Gp=Buffer[Symbol.species],Jp=Buffer.from([0,0,255,255]),kr=Symbol("permessage-deflate"),Ne=Symbol("total-length"),Ut=Symbol("callback"),Ve=Symbol("buffers"),Pr=Symbol("error"),Er,jn=class{constructor(e,r,n){if(this._maxPayload=n|0,this._options=e||{},this._threshold=this._options.threshold!==void 0?this._options.threshold:1024,this._isServer=!!r,this._deflate=null,this._inflate=null,this.params=null,!Er){let i=this._options.concurrencyLimit!==void 0?this._options.concurrencyLimit:10;Er=new Hp(i)}}static get extensionName(){return"permessage-deflate"}offer(){let e={};return this._options.serverNoContextTakeover&&(e.server_no_context_takeover=!0),this._options.clientNoContextTakeover&&(e.client_no_context_takeover=!0),this._options.serverMaxWindowBits&&(e.server_max_window_bits=this._options.serverMaxWindowBits),this._options.clientMaxWindowBits?e.client_max_window_bits=this._options.clientMaxWindowBits:this._options.clientMaxWindowBits==null&&(e.client_max_window_bits=!0),e}accept(e){return e=this.normalizeParams(e),this.params=this._isServer?this.acceptAsServer(e):this.acceptAsClient(e),this.params}cleanup(){if(this._inflate&&(this._inflate.close(),this._inflate=null),this._deflate){let e=this._deflate[Ut];this._deflate.close(),this._deflate=null,e&&e(new Error("The deflate stream was closed while data was being processed"))}}acceptAsServer(e){let r=this._options,n=e.find(i=>!(r.serverNoContextTakeover===!1&&i.server_no_context_takeover||i.serve