diff --git a/cli/index.ts b/cli/bootstrap.ts similarity index 81% rename from cli/index.ts rename to cli/bootstrap.ts index cc74986..f10114e 100644 --- a/cli/index.ts +++ b/cli/bootstrap.ts @@ -1,6 +1,6 @@ -import { log } from "../src/log"; +import { log } from "../src/internal/log"; import packageJson from "../package.json"; -import { bootstrap } from "../src/bootstrap"; +import { bootstrap } from "../src/internal/bootstrap"; (async () => { if (process.argv.includes("--version")) { diff --git a/dist/495.main.js b/dist/495.bootstrap.js similarity index 99% rename from dist/495.main.js rename to dist/495.bootstrap.js index 8d7b383..b8ee695 100644 --- a/dist/495.main.js +++ b/dist/495.bootstrap.js @@ -1,3 +1,3 @@ #!/usr/bin/env node exports.id=495,exports.ids=[495],exports.modules={4993:(e,t,r)=>{"use strict";const n=r(5317),o=r(2014),i=r(3436);function s(e,t,r){const s=o(e,t,r),a=n.spawn(s.command,s.args,s.options);return i.hookChildProcess(a,s),a}e.exports=s,e.exports.spawn=s,e.exports.sync=function(e,t,r){const s=o(e,t,r),a=n.spawnSync(s.command,s.args,s.options);return a.error=a.error||i.verifyENOENTSync(a.status,s),a},e.exports._parse=o,e.exports._enoent=i},3436:e=>{"use strict";const t="win32"===process.platform;function r(e,t){return Object.assign(new Error(`${t} ${e.command} ENOENT`),{code:"ENOENT",errno:"ENOENT",syscall:`${t} ${e.command}`,path:e.command,spawnargs:e.args})}function n(e,n){return t&&1===e&&!n.file?r(n.original,"spawn"):null}e.exports={hookChildProcess:function(e,r){if(!t)return;const o=e.emit;e.emit=function(t,i){if("exit"===t){const t=n(i,r);if(t)return o.call(e,"error",t)}return o.apply(e,arguments)}},verifyENOENT:n,verifyENOENTSync:function(e,n){return t&&1===e&&!n.file?r(n.original,"spawnSync"):null},notFoundError:r}},2014:(e,t,r)=>{"use strict";const n=r(6928),o=r(9045),i=r(4483),s=r(9182),a="win32"===process.platform,l=/\.(?:com|exe)$/i,c=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;e.exports=function(e,t,r){t&&!Array.isArray(t)&&(r=t,t=null);const d={command:e,args:t=t?t.slice(0):[],options:r=Object.assign({},r),file:void 0,original:{command:e,args:t}};return r.shell?d:function(e){if(!a)return e;const t=function(e){e.file=o(e);const t=e.file&&s(e.file);return t?(e.args.unshift(e.file),e.command=t,o(e)):e.file}(e),r=!l.test(t);if(e.options.forceShell||r){const r=c.test(t);e.command=n.normalize(e.command),e.command=i.command(e.command),e.args=e.args.map((e=>i.argument(e,r)));const o=[e.command].concat(e.args).join(" ");e.args=["/d","/s","/c",`"${o}"`],e.command=process.env.comspec||"cmd.exe",e.options.windowsVerbatimArguments=!0}return e}(d)}},4483:e=>{"use strict";const t=/([()\][%!^"`<>&|;, *?])/g;e.exports.command=function(e){return e.replace(t,"^$1")},e.exports.argument=function(e,r){return e=(e=`"${e=(e=(e=`${e}`).replace(/(\\*)"/g,'$1$1\\"')).replace(/(\\*)$/,"$1$1")}"`).replace(t,"^$1"),r&&(e=e.replace(t,"^$1")),e}},9182:(e,t,r)=>{"use strict";const n=r(9896),o=r(1395);e.exports=function(e){const t=Buffer.alloc(150);let r;try{r=n.openSync(e,"r"),n.readSync(r,t,0,150,0),n.closeSync(r)}catch(e){}return o(t.toString())}},9045:(e,t,r)=>{"use strict";const n=r(6928),o=r(307),i=r(9376);function s(e,t){const r=e.options.env||process.env,s=process.cwd(),a=null!=e.options.cwd,l=a&&void 0!==process.chdir&&!process.chdir.disabled;if(l)try{process.chdir(e.options.cwd)}catch(e){}let c;try{c=o.sync(e.command,{path:r[i({env:r})],pathExt:t?n.delimiter:void 0})}catch(e){}finally{l&&process.chdir(s)}return c&&(c=n.resolve(a?e.options.cwd:"",c)),c}e.exports=function(e){return s(e)||s(e,!0)}},8311:(e,t,r)=>{var n;function o(e,t,r){if("function"==typeof t&&(r=t,t={}),!r){if("function"!=typeof Promise)throw new TypeError("callback not provided");return new Promise((function(r,n){o(e,t||{},(function(e,t){e?n(e):r(t)}))}))}n(e,t||{},(function(e,n){e&&("EACCES"===e.code||t&&t.ignoreErrors)&&(e=null,n=!1),r(e,n)}))}r(9896),n="win32"===process.platform||global.TESTING_WINDOWS?r(3730):r(2044),e.exports=o,o.sync=function(e,t){try{return n.sync(e,t||{})}catch(e){if(t&&t.ignoreErrors||"EACCES"===e.code)return!1;throw e}}},2044:(e,t,r)=>{e.exports=o,o.sync=function(e,t){return i(n.statSync(e),t)};var n=r(9896);function o(e,t,r){n.stat(e,(function(e,n){r(e,!e&&i(n,t))}))}function i(e,t){return e.isFile()&&function(e,t){var r=e.mode,n=e.uid,o=e.gid,i=void 0!==t.uid?t.uid:process.getuid&&process.getuid(),s=void 0!==t.gid?t.gid:process.getgid&&process.getgid(),a=parseInt("100",8),l=parseInt("010",8);return r&parseInt("001",8)||r&l&&o===s||r&a&&n===i||r&(a|l)&&0===i}(e,t)}},3730:(e,t,r)=>{e.exports=i,i.sync=function(e,t){return o(n.statSync(e),e,t)};var n=r(9896);function o(e,t,r){return!(!e.isSymbolicLink()&&!e.isFile())&&function(e,t){var r=void 0!==t.pathExt?t.pathExt:process.env.PATHEXT;if(!r)return!0;if(-1!==(r=r.split(";")).indexOf(""))return!0;for(var n=0;n{const n="win32"===process.platform||"cygwin"===process.env.OSTYPE||"msys"===process.env.OSTYPE,o=r(6928),i=n?";":":",s=r(8311),a=e=>Object.assign(new Error(`not found: ${e}`),{code:"ENOENT"}),l=(e,t)=>{const r=t.colon||i,o=e.match(/\//)||n&&e.match(/\\/)?[""]:[...n?[process.cwd()]:[],...(t.path||process.env.PATH||"").split(r)],s=n?t.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",a=n?s.split(r):[""];return n&&-1!==e.indexOf(".")&&""!==a[0]&&a.unshift(""),{pathEnv:o,pathExt:a,pathExtExe:s}},c=(e,t,r)=>{"function"==typeof t&&(r=t,t={}),t||(t={});const{pathEnv:n,pathExt:i,pathExtExe:c}=l(e,t),d=[],u=r=>new Promise(((i,s)=>{if(r===n.length)return t.all&&d.length?i(d):s(a(e));const l=n[r],c=/^".*"$/.test(l)?l.slice(1,-1):l,u=o.join(c,e),f=!c&&/^\.[\\\/]/.test(e)?e.slice(0,2)+u:u;i(p(f,r,0))})),p=(e,r,n)=>new Promise(((o,a)=>{if(n===i.length)return o(u(r+1));const l=i[n];s(e+l,{pathExt:c},((i,s)=>{if(!i&&s){if(!t.all)return o(e+l);d.push(e+l)}return o(p(e,r,n+1))}))}));return r?u(0).then((e=>r(null,e)),r):u(0)};e.exports=c,c.sync=(e,t)=>{t=t||{};const{pathEnv:r,pathExt:n,pathExtExe:i}=l(e,t),c=[];for(let a=0;a{"use strict";const t=(e={})=>{const t=e.env||process.env;return"win32"!==(e.platform||process.platform)?"PATH":Object.keys(t).reverse().find((e=>"PATH"===e.toUpperCase()))||"Path"};e.exports=t,e.exports.default=t},1395:(e,t,r)=>{"use strict";const n=r(7521);e.exports=(e="")=>{const t=e.match(n);if(!t)return null;const[r,o]=t[0].replace(/#! ?/,"").split(" "),i=r.split("/").pop();return"env"===i?o:o?`${i} ${o}`:i}},7521:e=>{"use strict";e.exports=/^#!(.*)/},6495:(e,t,r)=>{"use strict";function n(e){if("object"!=typeof e||null===e)return!1;const t=Object.getPrototypeOf(e);return!(null!==t&&t!==Object.prototype&&null!==Object.getPrototypeOf(t)||Symbol.toStringTag in e||Symbol.iterator in e)}r.d(t,{execa:()=>qa});var o=r(3136);const i=(e,t)=>{const r=s(e);if("string"!=typeof r)throw new TypeError(`${t} must be a string or a file URL: ${r}.`);return r},s=e=>e instanceof URL?(0,o.fileURLToPath)(e):e,a=(e,t=[],r={})=>{const o=i(e,"First argument"),[s,a]=n(t)?[[],t]:[t,r];if(!Array.isArray(s))throw new TypeError(`Second argument must be either an array of arguments or an options object: ${s}`);if(s.some((e=>"object"==typeof e&&null!==e)))throw new TypeError(`Second argument must be an array of strings: ${s}`);const l=s.map(String),c=l.find((e=>e.includes("\0")));if(void 0!==c)throw new TypeError(`Arguments cannot contain null bytes ("\\0"): ${c}`);if(!n(a))throw new TypeError(`Last argument must be an options object: ${a}`);return[o,l,a]};var l=r(1421),c=r(6193);const{toString:d}=Object.prototype,u=e=>"[object Uint8Array]"===d.call(e),p=e=>new Uint8Array(e.buffer,e.byteOffset,e.byteLength),f=new TextEncoder,m=e=>f.encode(e),b=new TextDecoder,h=e=>b.decode(e),g=e=>1===e.length&&u(e[0])?e[0]:w(y(e)),y=e=>e.map((e=>"string"==typeof e?m(e):e)),w=e=>{const t=new Uint8Array(v(e));let r=0;for(const n of e)t.set(n,r),r+=n.length;return t},v=e=>{let t=0;for(const r of e)t+=r.length;return t},S=({templates:e,expressions:t,tokens:r,index:n,template:o})=>{if(void 0===o)throw new TypeError(`Invalid backslash sequence: ${e.raw[n]}`);const{nextTokens:i,leadingWhitespaces:s,trailingWhitespaces:a}=x(o,e.raw[n]),l=E(r,i,s);if(n===t.length)return l;const c=t[n],d=Array.isArray(c)?c.map((e=>I(e))):[I(c)];return E(l,d,a)},x=(e,t)=>{if(0===t.length)return{nextTokens:[],leadingWhitespaces:!1,trailingWhitespaces:!1};const r=[];let n=0;const o=D.has(t[0]);for(let o=0,i=0;or||0===e.length||0===t.length?[...e,...t]:[...e.slice(0,-1),`${e.at(-1)}${t[0]}`,...t.slice(1)],I=e=>{const t=typeof e;if("string"===t)return e;if("number"===t)return String(e);if(n(e)&&("stdout"in e||"isMaxBuffer"in e))return O(e);if(e instanceof l.ChildProcess||"[object Promise]"===Object.prototype.toString.call(e))throw new TypeError("Unexpected subprocess in template expression. Please use ${await subprocess} instead of ${subprocess}.");throw new TypeError(`Unexpected "${t}" in template expression`)},O=({stdout:e})=>{if("string"==typeof e)return e;if(u(e))return h(e);if(void 0===e)throw new TypeError('Missing result.stdout in template expression. This is probably due to the previous subprocess\' "stdout" option.');throw new TypeError(`Unexpected "${typeof e}" stdout in template expression`)};var M=r(7066);const N=M.WriteStream.prototype.hasColors(),B=(e,t)=>{if(!N)return e=>e;const r=`[${e}m`,n=`[${t}m`;return e=>{const t=e+"";let o=t.indexOf(n);if(-1===o)return r+t+n;let i=r,s=0;for(;-1!==o;)i+=t.slice(s,o)+r,s=o+n.length,o=t.indexOf(n,s);return i+=t.slice(s)+n,i}},$=(B(0,0),B(1,22)),j=(B(2,22),B(3,23),B(4,24),B(53,55),B(7,27),B(8,28),B(9,29),B(30,39),B(31,39),B(32,39),B(33,39),B(34,39),B(35,39),B(36,39),B(37,39),B(90,39)),C=(B(40,49),B(41,49),B(42,49),B(43,49),B(44,49),B(45,49),B(46,49),B(47,49),B(100,49),B(91,39)),A=(B(92,39),B(93,39));B(94,39),B(95,39),B(96,39),B(97,39),B(101,49),B(102,49),B(103,49),B(104,49),B(105,49),B(106,49),B(107,49);var R=r(7975);const L=(0,R.debuglog)("execa").enabled?"full":"none";let k=0n;const U=e=>e.some((e=>"none"!==e)),P=new Set(["none","short","full"]);var F=r(3024),G=r(1708);const W={circleQuestionMark:"(?)",questionMarkPrefix:"(?)",square:"█",squareDarkShade:"▓",squareMediumShade:"▒",squareLightShade:"░",squareTop:"▀",squareBottom:"▄",squareLeft:"▌",squareRight:"▐",squareCenter:"■",bullet:"●",dot:"․",ellipsis:"…",pointerSmall:"›",triangleUp:"▲",triangleUpSmall:"▴",triangleDown:"▼",triangleDownSmall:"▾",triangleLeftSmall:"◂",triangleRightSmall:"▸",home:"⌂",heart:"♥",musicNote:"♪",musicNoteBeamed:"♫",arrowUp:"↑",arrowDown:"↓",arrowLeft:"←",arrowRight:"→",arrowLeftRight:"↔",arrowUpDown:"↕",almostEqual:"≈",notEqual:"≠",lessOrEqual:"≤",greaterOrEqual:"≥",identical:"≡",infinity:"∞",subscriptZero:"₀",subscriptOne:"₁",subscriptTwo:"₂",subscriptThree:"₃",subscriptFour:"₄",subscriptFive:"₅",subscriptSix:"₆",subscriptSeven:"₇",subscriptEight:"₈",subscriptNine:"₉",oneHalf:"½",oneThird:"⅓",oneQuarter:"¼",oneFifth:"⅕",oneSixth:"⅙",oneEighth:"⅛",twoThirds:"⅔",twoFifths:"⅖",threeQuarters:"¾",threeFifths:"⅗",threeEighths:"⅜",fourFifths:"⅘",fiveSixths:"⅚",fiveEighths:"⅝",sevenEighths:"⅞",line:"─",lineBold:"━",lineDouble:"═",lineDashed0:"┄",lineDashed1:"┅",lineDashed2:"┈",lineDashed3:"┉",lineDashed4:"╌",lineDashed5:"╍",lineDashed6:"╴",lineDashed7:"╶",lineDashed8:"╸",lineDashed9:"╺",lineDashed10:"╼",lineDashed11:"╾",lineDashed12:"−",lineDashed13:"–",lineDashed14:"‐",lineDashed15:"⁃",lineVertical:"│",lineVerticalBold:"┃",lineVerticalDouble:"║",lineVerticalDashed0:"┆",lineVerticalDashed1:"┇",lineVerticalDashed2:"┊",lineVerticalDashed3:"┋",lineVerticalDashed4:"╎",lineVerticalDashed5:"╏",lineVerticalDashed6:"╵",lineVerticalDashed7:"╷",lineVerticalDashed8:"╹",lineVerticalDashed9:"╻",lineVerticalDashed10:"╽",lineVerticalDashed11:"╿",lineDownLeft:"┐",lineDownLeftArc:"╮",lineDownBoldLeftBold:"┓",lineDownBoldLeft:"┒",lineDownLeftBold:"┑",lineDownDoubleLeftDouble:"╗",lineDownDoubleLeft:"╖",lineDownLeftDouble:"╕",lineDownRight:"┌",lineDownRightArc:"╭",lineDownBoldRightBold:"┏",lineDownBoldRight:"┎",lineDownRightBold:"┍",lineDownDoubleRightDouble:"╔",lineDownDoubleRight:"╓",lineDownRightDouble:"╒",lineUpLeft:"┘",lineUpLeftArc:"╯",lineUpBoldLeftBold:"┛",lineUpBoldLeft:"┚",lineUpLeftBold:"┙",lineUpDoubleLeftDouble:"╝",lineUpDoubleLeft:"╜",lineUpLeftDouble:"╛",lineUpRight:"└",lineUpRightArc:"╰",lineUpBoldRightBold:"┗",lineUpBoldRight:"┖",lineUpRightBold:"┕",lineUpDoubleRightDouble:"╚",lineUpDoubleRight:"╙",lineUpRightDouble:"╘",lineUpDownLeft:"┤",lineUpBoldDownBoldLeftBold:"┫",lineUpBoldDownBoldLeft:"┨",lineUpDownLeftBold:"┥",lineUpBoldDownLeftBold:"┩",lineUpDownBoldLeftBold:"┪",lineUpDownBoldLeft:"┧",lineUpBoldDownLeft:"┦",lineUpDoubleDownDoubleLeftDouble:"╣",lineUpDoubleDownDoubleLeft:"╢",lineUpDownLeftDouble:"╡",lineUpDownRight:"├",lineUpBoldDownBoldRightBold:"┣",lineUpBoldDownBoldRight:"┠",lineUpDownRightBold:"┝",lineUpBoldDownRightBold:"┡",lineUpDownBoldRightBold:"┢",lineUpDownBoldRight:"┟",lineUpBoldDownRight:"┞",lineUpDoubleDownDoubleRightDouble:"╠",lineUpDoubleDownDoubleRight:"╟",lineUpDownRightDouble:"╞",lineDownLeftRight:"┬",lineDownBoldLeftBoldRightBold:"┳",lineDownLeftBoldRightBold:"┯",lineDownBoldLeftRight:"┰",lineDownBoldLeftBoldRight:"┱",lineDownBoldLeftRightBold:"┲",lineDownLeftRightBold:"┮",lineDownLeftBoldRight:"┭",lineDownDoubleLeftDoubleRightDouble:"╦",lineDownDoubleLeftRight:"╥",lineDownLeftDoubleRightDouble:"╤",lineUpLeftRight:"┴",lineUpBoldLeftBoldRightBold:"┻",lineUpLeftBoldRightBold:"┷",lineUpBoldLeftRight:"┸",lineUpBoldLeftBoldRight:"┹",lineUpBoldLeftRightBold:"┺",lineUpLeftRightBold:"┶",lineUpLeftBoldRight:"┵",lineUpDoubleLeftDoubleRightDouble:"╩",lineUpDoubleLeftRight:"╨",lineUpLeftDoubleRightDouble:"╧",lineUpDownLeftRight:"┼",lineUpBoldDownBoldLeftBoldRightBold:"╋",lineUpDownBoldLeftBoldRightBold:"╈",lineUpBoldDownLeftBoldRightBold:"╇",lineUpBoldDownBoldLeftRightBold:"╊",lineUpBoldDownBoldLeftBoldRight:"╉",lineUpBoldDownLeftRight:"╀",lineUpDownBoldLeftRight:"╁",lineUpDownLeftBoldRight:"┽",lineUpDownLeftRightBold:"┾",lineUpBoldDownBoldLeftRight:"╂",lineUpDownLeftBoldRightBold:"┿",lineUpBoldDownLeftBoldRight:"╃",lineUpBoldDownLeftRightBold:"╄",lineUpDownBoldLeftBoldRight:"╅",lineUpDownBoldLeftRightBold:"╆",lineUpDoubleDownDoubleLeftDoubleRightDouble:"╬",lineUpDoubleDownDoubleLeftRight:"╫",lineUpDownLeftDoubleRightDouble:"╪",lineCross:"╳",lineBackslash:"╲",lineSlash:"╱"},_={tick:"✔",info:"ℹ",warning:"⚠",cross:"✘",squareSmall:"◻",squareSmallFilled:"◼",circle:"◯",circleFilled:"◉",circleDotted:"◌",circleDouble:"◎",circleCircle:"ⓞ",circleCross:"ⓧ",circlePipe:"Ⓘ",radioOn:"◉",radioOff:"◯",checkboxOn:"☒",checkboxOff:"☐",checkboxCircleOn:"ⓧ",checkboxCircleOff:"Ⓘ",pointer:"❯",triangleUpOutline:"△",triangleLeft:"◀",triangleRight:"▶",lozenge:"◆",lozengeOutline:"◇",hamburger:"☰",smiley:"㋡",mustache:"෴",star:"★",play:"▶",nodejs:"⬢",oneSeventh:"⅐",oneNinth:"⅑",oneTenth:"⅒"},V={...W,..._},z={...W,tick:"√",info:"i",warning:"‼",cross:"×",squareSmall:"□",squareSmallFilled:"■",circle:"( )",circleFilled:"(*)",circleDotted:"( )",circleDouble:"( )",circleCircle:"(○)",circleCross:"(×)",circlePipe:"(│)",radioOn:"(*)",radioOff:"( )",checkboxOn:"[×]",checkboxOff:"[ ]",checkboxCircleOn:"(×)",checkboxCircleOff:"( )",pointer:">",triangleUpOutline:"∆",triangleLeft:"◄",triangleRight:"►",lozenge:"♦",lozengeOutline:"◊",hamburger:"≡",smiley:"☺",mustache:"┌─┐",star:"✶",play:"►",nodejs:"♦",oneSeventh:"1/7",oneNinth:"1/9",oneTenth:"1/10"},H=("win32"!==G.platform?"linux"!==G.env.TERM:Boolean(G.env.WT_SESSION)||Boolean(G.env.TERMINUS_SUBLIME)||"{cmd::Cmder}"===G.env.ConEmuTask||"Terminus-Sublime"===G.env.TERM_PROGRAM||"vscode"===G.env.TERM_PROGRAM||"xterm-256color"===G.env.TERM||"alacritty"===G.env.TERM||"JetBrains-JediTerm"===G.env.TERMINAL_EMULATOR)?V:z,q=(Object.entries(_),(e,t,r,n)=>{const o=Y(e,t,r,n);(0,F.writeFileSync)(K,`${o}\n`)}),K=2,Y=(e,t,r,n)=>e.includes("\n")?e.split("\n").map((e=>X(e,t,r,n))).join("\n"):X(e,t,r,n),X=(e,t,r,n=Q)=>[j(`[${Z()}]`),j(`[${t}]`),n(ee[r]),n(e)].join(" "),Q=e=>e,Z=()=>{const e=new Date;return`${J(e.getHours(),2)}:${J(e.getMinutes(),2)}:${J(e.getSeconds(),2)}.${J(e.getMilliseconds(),3)}`},J=(e,t)=>String(e).padStart(t,"0"),ee={command:"$",pipedCommand:"|",output:" ",error:H.cross,warning:H.warning,success:H.tick},te=()=>G.hrtime.bigint(),re=e=>Number(G.hrtime.bigint()-e)/1e6,ne=e=>(0,R.stripVTControlCharacters)(e).split("\n").map((e=>oe(e))).join("\n"),oe=e=>e.replaceAll(se,(e=>ie(e))),ie=e=>{const t=ae[e];if(void 0!==t)return t;const r=e.codePointAt(0),n=r.toString(16);return r<=le?`\\u${n.padStart(4,"0")}`:`\\U${n}`},se=/\p{Separator}|\p{Other}/gu,ae={" ":" ","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r","\t":"\\t"},le=65535,ce=/^[\w./-]+$/,de=e=>ue.includes(e),ue=[G.stdin,G.stdout,G.stderr],pe=["stdin","stdout","stderr"],fe=e=>pe[e]??`stdio[${e}]`,me=(e,t)=>{const r=Array.from({length:be(e)}),n=he(e[t],r,t);return De(n,t)},be=({stdio:e})=>Array.isArray(e)?Math.max(e.length,pe.length):pe.length,he=(e,t,r)=>n(e)?ge(e,t,r):t.fill(e),ge=(e,t,r)=>{for(const n of Object.keys(e).sort(ye))for(const o of ve(n,r,t))t[o]=e[n];return t},ye=(e,t)=>we(e)"stdout"===e||"stderr"===e?0:"all"===e?2:1,ve=(e,t,r)=>{const n=Se(e);if(void 0===n||0===n)throw new TypeError(`"${t}.${e}" is invalid.\nIt must be "${t}.stdout", "${t}.stderr", "${t}.all", or "${t}.fd3", "${t}.fd4" (and so on).`);if(n>=r.length)throw new TypeError(`"${t}.${e}" is invalid: that file descriptor does not exist.\nPlease set the "stdio" option to ensure that file descriptor exists.`);return"all"===n?[1,2]:[n]},Se=e=>{if("all"===e)return e;if(pe.includes(e))return pe.indexOf(e);const t=xe.exec(e);return null!==t?Number(t[1]):void 0},xe=/^fd(\d+)$/,De=(e,t)=>e.map((e=>void 0===e?Te[t]:e)),Te={lines:!1,buffer:!0,maxBuffer:1e8,verbose:L,stripFinalNewline:!0},Ee=["lines","buffer","maxBuffer","verbose","stripFinalNewline"],Ie=(e,t,r)=>{const n=te(),{command:o,escapedCommand:i}=((e,t)=>{const r=[e,...t];return{command:r.join(" "),escapedCommand:r.map((e=>{return t=oe(e),ce.test(t)?t:"win32"===G.platform?`"${t.replaceAll('"','""')}"`:`'${t.replaceAll("'","'\\''")}'`;var t})).join(" ")}})(e,t),s=(e=>{const t=U(e)?k++:void 0;return(e=>{for(const t of e){if(!1===t)throw new TypeError('The "verbose: false" option was renamed to "verbose: \'none\'".');if(!0===t)throw new TypeError('The "verbose: true" option was renamed to "verbose: \'short\'".');if(!P.has(t)){const e=[...P].map((e=>`'${e}'`)).join(", ");throw new TypeError(`The "verbose" option must not be ${t}. Allowed values are: ${e}.`)}}})(e),{verbose:e,verboseId:t}})(me(r,"verbose"));return((e,{verbose:t,verboseId:r},{piped:n=!1})=>{U(t)&&q(e,r,n?"pipedCommand":"command",$)})(i,s,r),{command:o,escapedCommand:i,startTime:n,verboseInfo:s}};var Oe=r(6760),Me=r(4993);function Ne(e={}){const{env:t=process.env,platform:r=process.platform}=e;return"win32"!==r?"PATH":Object.keys(t).reverse().find((e=>"PATH"===e.toUpperCase()))||"Path"}const Be=({env:e=G.env,...t}={})=>{const r=Ne({env:e={...e}});return t.path=e[r],e[r]=(({cwd:e=G.cwd(),path:t=G.env[Ne()],preferLocal:r=!0,execPath:n=G.execPath,addExecPath:i=!0}={})=>{const s=e instanceof URL?(0,o.fileURLToPath)(e):e,a=Oe.resolve(s),l=[];return r&&((e,t)=>{let r;for(;r!==t;)e.push(Oe.join(t,"node_modules/.bin")),r=t,t=Oe.resolve(t,"..")})(l,a),i&&((e,t,r)=>{const n=t instanceof URL?(0,o.fileURLToPath)(t):t;e.push(Oe.resolve(r,n,".."))})(l,n,a),[...l,t].join(Oe.delimiter)})(t),e};var $e=r(8500);class je extends Error{}const Ce=(e,t)=>{Object.defineProperty(e.prototype,"name",{value:t,writable:!0,enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,Ae,{value:!0,writable:!1,enumerable:!1,configurable:!1})},Ae=Symbol("isExecaError"),Re=e=>"[object Error]"===Object.prototype.toString.call(e);class Le extends Error{}Ce(Le,Le.name);class ke extends Error{}Ce(ke,ke.name);var Ue=r(8161);const Pe=e=>0===e?e:Fe(e,"`subprocess.kill()`'s argument"),Fe=(e,t)=>{if(Number.isInteger(e))return Ge(e,t);if("string"==typeof e)return _e(e,t);throw new TypeError(`Invalid ${t} ${String(e)}: it must be a string or an integer.\n${Ve()}`)},Ge=(e,t)=>{if(We.has(e))return We.get(e);throw new TypeError(`Invalid ${t} ${e}: this signal integer does not exist.\n${Ve()}`)},We=new Map(Object.entries(Ue.constants.signals).reverse().map((([e,t])=>[t,e]))),_e=(e,t)=>{if(e in Ue.constants.signals)return e;if(e.toUpperCase()in Ue.constants.signals)throw new TypeError(`Invalid ${t} '${e}': please rename it to '${e.toUpperCase()}'.`);throw new TypeError(`Invalid ${t} '${e}': this signal name does not exist.\n${Ve()}`)},Ve=()=>`Available signal names: ${ze()}.\nAvailable signal numbers: ${He()}.`,ze=()=>Object.keys(Ue.constants.signals).sort().map((e=>`'${e}'`)).join(", "),He=()=>[...new Set(Object.values(Ue.constants.signals).sort(((e,t)=>e-t)))].join(", "),qe=({kill:e,options:{forceKillAfterDelay:t,killSignal:r},onInternalError:n,controller:o},i,s)=>{const{signal:a,error:l}=Ke(i,s,r);Ye(l,n);const c=e(a);return Xe({kill:e,signal:a,forceKillAfterDelay:t,killSignal:r,killResult:c,controller:o}),c},Ke=(e,t,r)=>{const[n=r,o]=Re(e)?[void 0,e]:[e,t];if("string"!=typeof n&&!Number.isInteger(n))throw new TypeError(`The first argument must be an error instance or a signal name string/integer: ${String(n)}`);if(void 0!==o&&!Re(o))throw new TypeError(`The second argument is optional. If specified, it must be an error instance: ${o}`);return{signal:Pe(n),error:o}},Ye=(e,t)=>{void 0!==e&&t.reject(e)},Xe=async({kill:e,signal:t,forceKillAfterDelay:r,killSignal:n,killResult:o,controller:i})=>{if(Qe(t,r,n,o))try{await(0,$e.setTimeout)(r,void 0,{signal:i.signal}),e("SIGKILL")}catch{}},Qe=(e,t,r,n)=>e===r&&!1!==t&&n,Ze=(e,t,r,n)=>0===t||void 0===t?[]:[Je(e,t,r,n)],Je=async(e,t,r,{signal:n})=>{throw await(0,$e.setTimeout)(t,void 0,{signal:n}),r.timedOut=!0,e.kill(),new je},et=new Set(["utf8","utf16le"]),tt=new Set(["buffer","hex","base64","base64url","latin1","ascii"]),rt=new Set([...et,...tt]),nt={"utf-8":"utf8","utf-16le":"utf16le","ucs-2":"utf16le",ucs2:"utf16le",binary:"latin1"},ot=e=>"string"==typeof e?`"${e}"`:String(e),it=()=>{try{return G.cwd()}catch(e){throw e.message=`The current directory does not exist.\n${e.message}`,e}},st=(e,t,r)=>{r.cwd=((e=it())=>{const t=i(e,'The "cwd" option');return(0,Oe.resolve)(t)})(r.cwd);const[n,o,a]=((e,t,{node:r=!1,nodePath:n=G.execPath,nodeOptions:o=G.execArgv.filter((e=>!e.startsWith("--inspect"))),cwd:s,execPath:a,...l})=>{if(void 0!==a)throw new TypeError('The "execPath" option has been removed. Please use the "nodePath" option instead.');const c=i(n,'The "nodePath" option'),d=(0,Oe.resolve)(s,c),u={...l,nodePath:d,node:r,cwd:s};if(!r)return[e,t,u];if("node"===(0,Oe.basename)(e,".exe"))throw new TypeError('When the "node" option is true, the first argument does not need to be "node".');return[d,[...o,e,...t],{ipc:!0,...u,shell:!1}]})(e,t,r),{command:l,args:c,options:d}=Me._parse(n,o,a),u=(e=>{const t={...e};for(const r of Ee)t[r]=me(e,r);return t})(d),p=at(u);return(({timeout:e})=>{if(void 0!==e&&(!Number.isFinite(e)||e<0))throw new TypeError(`Expected the \`timeout\` option to be a non-negative integer, got \`${e}\` (${typeof e})`)})(p),(({encoding:e})=>{if(rt.has(e))return;const t=(e=>{if(null===e)return"buffer";if("string"!=typeof e)return;const t=e.toLowerCase();return t in nt?nt[t]:rt.has(t)?t:void 0})(e);if(void 0!==t)throw new TypeError(`Invalid option \`encoding: ${ot(e)}\`.\nPlease rename it to ${ot(t)}.`);const r=[...rt].map((e=>ot(e))).join(", ");throw new TypeError(`Invalid option \`encoding: ${ot(e)}\`.\nPlease rename it to one of: ${r}.`)})(p),p.shell=s(p.shell),p.env=lt(p),p.killSignal=(e=>{const t="option `killSignal`";if(0===e)throw new TypeError(`Invalid ${t}: 0 cannot be used.`);return Fe(e,t)})(p.killSignal),p.forceKillAfterDelay=(e=>{if(!1===e)return e;if(!0===e)return 5e3;if(!Number.isFinite(e)||e<0)throw new TypeError(`Expected the \`forceKillAfterDelay\` option to be a non-negative integer, got \`${e}\` (${typeof e})`);return e})(p.forceKillAfterDelay),p.lines=p.lines.map(((e,t)=>e&&!tt.has(p.encoding)&&p.buffer[t])),"win32"===G.platform&&"cmd"===(0,Oe.basename)(l,".exe")&&c.unshift("/q"),{file:l,commandArguments:c,options:p}},at=({extendEnv:e=!0,preferLocal:t=!1,cwd:r,localDir:n=r,encoding:o="utf8",reject:i=!0,cleanup:s=!0,all:a=!1,windowsHide:l=!0,killSignal:c="SIGTERM",forceKillAfterDelay:d=!0,ipc:u=!1,serialization:p="advanced",...f})=>({...f,extendEnv:e,preferLocal:t,cwd:r,localDirectory:n,encoding:o,reject:i,cleanup:s,all:a,windowsHide:l,killSignal:c,forceKillAfterDelay:d,ipc:u,serialization:p}),lt=({env:e,extendEnv:t,preferLocal:r,node:n,localDirectory:o,nodePath:i})=>{const s=t?{...G.env,...e}:e;return r||n?Be({env:s,cwd:o,execPath:i,preferLocal:r,addExecPath:n}):s},ct=(e,t)=>({name:`SIGRT${t+1}`,number:dt+t,action:"terminate",description:"Application-specific signal (realtime)",standard:"posix"}),dt=34,ut=[{name:"SIGHUP",number:1,action:"terminate",description:"Terminal closed",standard:"posix"},{name:"SIGINT",number:2,action:"terminate",description:"User interruption with CTRL-C",standard:"ansi"},{name:"SIGQUIT",number:3,action:"core",description:"User interruption with CTRL-\\",standard:"posix"},{name:"SIGILL",number:4,action:"core",description:"Invalid machine instruction",standard:"ansi"},{name:"SIGTRAP",number:5,action:"core",description:"Debugger breakpoint",standard:"posix"},{name:"SIGABRT",number:6,action:"core",description:"Aborted",standard:"ansi"},{name:"SIGIOT",number:6,action:"core",description:"Aborted",standard:"bsd"},{name:"SIGBUS",number:7,action:"core",description:"Bus error due to misaligned, non-existing address or paging error",standard:"bsd"},{name:"SIGEMT",number:7,action:"terminate",description:"Command should be emulated but is not implemented",standard:"other"},{name:"SIGFPE",number:8,action:"core",description:"Floating point arithmetic error",standard:"ansi"},{name:"SIGKILL",number:9,action:"terminate",description:"Forced termination",standard:"posix",forced:!0},{name:"SIGUSR1",number:10,action:"terminate",description:"Application-specific signal",standard:"posix"},{name:"SIGSEGV",number:11,action:"core",description:"Segmentation fault",standard:"ansi"},{name:"SIGUSR2",number:12,action:"terminate",description:"Application-specific signal",standard:"posix"},{name:"SIGPIPE",number:13,action:"terminate",description:"Broken pipe or socket",standard:"posix"},{name:"SIGALRM",number:14,action:"terminate",description:"Timeout or timer",standard:"posix"},{name:"SIGTERM",number:15,action:"terminate",description:"Termination",standard:"ansi"},{name:"SIGSTKFLT",number:16,action:"terminate",description:"Stack is empty or overflowed",standard:"other"},{name:"SIGCHLD",number:17,action:"ignore",description:"Child process terminated, paused or unpaused",standard:"posix"},{name:"SIGCLD",number:17,action:"ignore",description:"Child process terminated, paused or unpaused",standard:"other"},{name:"SIGCONT",number:18,action:"unpause",description:"Unpaused",standard:"posix",forced:!0},{name:"SIGSTOP",number:19,action:"pause",description:"Paused",standard:"posix",forced:!0},{name:"SIGTSTP",number:20,action:"pause",description:'Paused using CTRL-Z or "suspend"',standard:"posix"},{name:"SIGTTIN",number:21,action:"pause",description:"Background process cannot read terminal input",standard:"posix"},{name:"SIGBREAK",number:21,action:"terminate",description:"User interruption with CTRL-BREAK",standard:"other"},{name:"SIGTTOU",number:22,action:"pause",description:"Background process cannot write to terminal output",standard:"posix"},{name:"SIGURG",number:23,action:"ignore",description:"Socket received out-of-band data",standard:"bsd"},{name:"SIGXCPU",number:24,action:"core",description:"Process timed out",standard:"bsd"},{name:"SIGXFSZ",number:25,action:"core",description:"File too big",standard:"bsd"},{name:"SIGVTALRM",number:26,action:"terminate",description:"Timeout or timer",standard:"bsd"},{name:"SIGPROF",number:27,action:"terminate",description:"Timeout or timer",standard:"bsd"},{name:"SIGWINCH",number:28,action:"ignore",description:"Terminal window size changed",standard:"bsd"},{name:"SIGIO",number:29,action:"terminate",description:"I/O is available",standard:"other"},{name:"SIGPOLL",number:29,action:"terminate",description:"Watched event",standard:"other"},{name:"SIGINFO",number:29,action:"ignore",description:"Request for process information",standard:"other"},{name:"SIGPWR",number:30,action:"terminate",description:"Device running out of power",standard:"systemv"},{name:"SIGSYS",number:31,action:"core",description:"Invalid system call",standard:"other"},{name:"SIGUNUSED",number:31,action:"terminate",description:"Invalid system call",standard:"other"}],pt=()=>{const e=(()=>{const e=64-dt+1;return Array.from({length:e},ct)})();return[...ut,...e].map(ft)},ft=({name:e,number:t,description:r,action:n,forced:o=!1,standard:i})=>{const{signals:{[e]:s}}=Ue.constants,a=void 0!==s;return{name:e,number:a?s:t,description:r,supported:a,action:n,forced:o,standard:i}},mt=({name:e,number:t,description:r,supported:n,action:o,forced:i,standard:s})=>[e,{name:e,number:t,description:r,supported:n,action:o,forced:i,standard:s}],bt=(()=>{const e=pt();return Object.fromEntries(e.map(mt))})(),ht=(e,t)=>{const r=t.find((({name:t})=>Ue.constants.signals[t]===e));return void 0!==r?r:t.find((t=>t.number===e))};function gt(e){if("string"==typeof e)return yt(e);if(!ArrayBuffer.isView(e)||1!==e.BYTES_PER_ELEMENT)throw new Error("Input must be a string or a Uint8Array");return wt(e)}(()=>{const e=pt(),t=Array.from({length:65},((t,r)=>((e,t)=>{const r=ht(e,t);if(void 0===r)return{};const{name:n,description:o,supported:i,action:s,forced:a,standard:l}=r;return{[e]:{name:n,number:e,description:o,supported:i,action:s,forced:a,standard:l}}})(r,e)));Object.assign({},...t)})();const yt=e=>e.at(-1)===vt?e.slice(0,e.at(-2)===xt?-2:-1):e,wt=e=>e.at(-1)===St?e.subarray(0,e.at(-2)===Dt?-2:-1):e,vt="\n",St=vt.codePointAt(0),xt="\r",Dt=xt.codePointAt(0);function Tt(e,{checkOpen:t=!0}={}){return null!==e&&"object"==typeof e&&(e.writable||e.readable||!t||void 0===e.writable&&void 0===e.readable)&&"function"==typeof e.pipe}function Et(e,{checkOpen:t=!0}={}){return Tt(e,{checkOpen:t})&&(e.writable||!t)&&"function"==typeof e.write&&"function"==typeof e.end&&"boolean"==typeof e.writable&&"boolean"==typeof e.writableObjectMode&&"function"==typeof e.destroy&&"boolean"==typeof e.destroyed}function It(e,{checkOpen:t=!0}={}){return Tt(e,{checkOpen:t})&&(e.readable||!t)&&"function"==typeof e.read&&"boolean"==typeof e.readable&&"boolean"==typeof e.readableObjectMode&&"function"==typeof e.destroy&&"boolean"==typeof e.destroyed}function Ot(e,t){return Et(e,t)&&It(e,t)}const Mt=Object.getPrototypeOf(Object.getPrototypeOf((async function*(){})).prototype);class Nt{#e;#t;#r=!1;#n=void 0;constructor(e,t){this.#e=e,this.#t=t}next(){const e=()=>this.#o();return this.#n=this.#n?this.#n.then(e,e):e(),this.#n}return(e){const t=()=>this.#i(e);return this.#n?this.#n.then(t,t):t()}async#o(){if(this.#r)return{done:!0,value:void 0};let e;try{e=await this.#e.read()}catch(e){throw this.#n=void 0,this.#r=!0,this.#e.releaseLock(),e}return e.done&&(this.#n=void 0,this.#r=!0,this.#e.releaseLock()),e}async#i(e){if(this.#r)return{done:!0,value:e};if(this.#r=!0,!this.#t){const t=this.#e.cancel(e);return this.#e.releaseLock(),await t,{done:!0,value:e}}return this.#e.releaseLock(),{done:!0,value:e}}}const Bt=Symbol();function $t(){return this[Bt].next()}function jt(e){return this[Bt].return(e)}Object.defineProperty($t,"name",{value:"next"}),Object.defineProperty(jt,"name",{value:"return"});const Ct=Object.create(Mt,{next:{enumerable:!0,configurable:!0,writable:!0,value:$t},return:{enumerable:!0,configurable:!0,writable:!0,value:jt}});function At({preventCancel:e=!1}={}){const t=this.getReader(),r=new Nt(t,e),n=Object.create(Ct);return n[Bt]=r,n}const Rt=e=>{if(It(e,{checkOpen:!1})&&void 0!==Pt.on)return kt(e);if("function"==typeof e?.[Symbol.asyncIterator])return e;if("[object ReadableStream]"===Lt.call(e))return At.call(e);throw new TypeError("The first argument must be a Readable, a ReadableStream, or an async iterable.")},{toString:Lt}=Object.prototype,kt=async function*(e){const t=new AbortController,r={};Ut(e,t,r);try{for await(const[r]of Pt.on(e,"data",{signal:t.signal}))yield r}catch(e){if(void 0!==r.error)throw r.error;if(!t.signal.aborted)throw e}finally{e.destroy()}},Ut=async(e,t,r)=>{try{await Pt.finished(e,{cleanup:!0,readable:!0,writable:!1,error:!1})}catch(e){r.error=e}finally{t.abort()}},Pt={},Ft=async(e,{init:t,convertChunk:r,getSize:n,truncateChunk:o,addChunk:i,getFinalChunk:s,finalize:a},{maxBuffer:l=Number.POSITIVE_INFINITY}={})=>{const c=Rt(e),d=t();d.length=0;try{for await(const e of c){const t=r[Vt(e)](e,d);Wt({convertedChunk:t,state:d,getSize:n,truncateChunk:o,addChunk:i,maxBuffer:l})}return Gt({state:d,convertChunk:r,getSize:n,truncateChunk:o,addChunk:i,getFinalChunk:s,maxBuffer:l}),a(d)}catch(e){const t="object"==typeof e&&null!==e?e:new Error(e);throw t.bufferedData=a(d),t}},Gt=({state:e,getSize:t,truncateChunk:r,addChunk:n,getFinalChunk:o,maxBuffer:i})=>{const s=o(e);void 0!==s&&Wt({convertedChunk:s,state:e,getSize:t,truncateChunk:r,addChunk:n,maxBuffer:i})},Wt=({convertedChunk:e,state:t,getSize:r,truncateChunk:n,addChunk:o,maxBuffer:i})=>{const s=r(e),a=t.length+s;if(a<=i)return void _t(e,t,o,a);const l=n(e,i-t.length);throw void 0!==l&&_t(l,t,o,i),new Ht},_t=(e,t,r,n)=>{t.contents=r(e,t,n),t.length=n},Vt=e=>{const t=typeof e;if("string"===t)return"string";if("object"!==t||null===e)return"others";if(globalThis.Buffer?.isBuffer(e))return"buffer";const r=zt.call(e);return"[object ArrayBuffer]"===r?"arrayBuffer":"[object DataView]"===r?"dataView":Number.isInteger(e.byteLength)&&Number.isInteger(e.byteOffset)&&"[object ArrayBuffer]"===zt.call(e.buffer)?"typedArray":"others"},{toString:zt}=Object.prototype;class Ht extends Error{name="MaxBufferError";constructor(){super("maxBuffer exceeded")}}const qt=([,e])=>e,Kt=({originalError:e,timedOut:t,timeout:r,isMaxBuffer:n,maxBuffer:o,errorCode:i,signal:s,signalDescription:a,exitCode:l,isCanceled:c})=>t?`Command timed out after ${r} milliseconds`:c?"Command was canceled":n?((e,t)=>{const{streamName:r,threshold:n,unit:o}=((e,t)=>{if(void 0===e?.maxBufferInfo)return{streamName:"output",threshold:t[1],unit:"bytes"};const{maxBufferInfo:{fdNumber:r,unit:n}}=e;return delete e.maxBufferInfo,{streamName:fe(r),threshold:t[r],unit:n}})(e,t);return`Command's ${r} was larger than ${n} ${o}`})(e,o):void 0!==i?`Command failed with ${i}`:void 0!==s?`Command was killed with ${s} (${a})`:void 0!==l?`Command failed with exit code ${l}`:"Command failed",Yt=e=>"string"==typeof e?e:u(e)?h(e):"",Xt=({command:e,escapedCommand:t,stdio:r,all:n,options:{cwd:o},startTime:i})=>er({command:e,escapedCommand:t,cwd:o,durationMs:re(i),failed:!1,timedOut:!1,isCanceled:!1,isTerminated:!1,isMaxBuffer:!1,exitCode:0,stdout:r[1],stderr:r[2],all:n,stdio:r,pipedFrom:[]}),Qt=({error:e,command:t,escapedCommand:r,fileDescriptors:n,options:o,startTime:i,isSync:s})=>Zt({error:e,command:t,escapedCommand:r,startTime:i,timedOut:!1,isCanceled:!1,isMaxBuffer:!1,stdio:Array.from({length:n.length}),options:o,isSync:s}),Zt=({error:e,command:t,escapedCommand:r,startTime:n,timedOut:o,isCanceled:i,isMaxBuffer:s,exitCode:a,signal:l,stdio:c,all:d,options:{timeoutDuration:u,timeout:p=u,cwd:f,maxBuffer:m},isSync:b})=>{const{exitCode:h,signal:g,signalDescription:y}=tr(a,l),{originalMessage:w,shortMessage:v,message:S}=(({stdio:e,all:t,originalError:r,signal:n,signalDescription:o,exitCode:i,escapedCommand:s,timedOut:a,isCanceled:l,isMaxBuffer:c,maxBuffer:d,timeout:u,cwd:p})=>{const f=r?.code,m=Kt({originalError:r,timedOut:a,timeout:u,isMaxBuffer:c,maxBuffer:d,errorCode:f,signal:n,signalDescription:o,exitCode:i,isCanceled:l}),b=((e,t)=>{if(e instanceof je)return;const r=Re(n=e)&&Ae in n?e.originalMessage:String(e?.message??e);var n;const o=ne(((e,t)=>{if(t===it())return e;let r;try{r=(0,F.statSync)(t)}catch(r){return`The "cwd" option is invalid: ${t}.\n${r.message}\n${e}`}return r.isDirectory()?e:`The "cwd" option is not a directory: ${t}.\n${e}`})(r,t));return""===o?void 0:o})(r,p),h=`${m}: ${s}${void 0===b?"":`\n${b}`}`,g=[h,...void 0===t?[e[2],e[1]]:[t],...e.slice(3)].map((e=>ne(gt((e=>Array.isArray(e)?e.map((e=>gt(Yt(e)))).filter(Boolean).join("\n"):Yt(e))(e))))).filter(Boolean).join("\n\n");return{originalMessage:b,shortMessage:h,message:g}})({stdio:c,all:d,originalError:e,signal:g,signalDescription:y,exitCode:h,escapedCommand:r,timedOut:o,isCanceled:i,isMaxBuffer:s,maxBuffer:m,timeout:p,cwd:f}),x=((e,t,r)=>new(r?ke:Le)(t,e instanceof je?{}:{cause:e}))(e,S,b);return Object.assign(x,Jt({error:x,command:t,escapedCommand:r,startTime:n,timedOut:o,isCanceled:i,isMaxBuffer:s,exitCode:h,signal:g,signalDescription:y,stdio:c,all:d,cwd:f,originalMessage:w,shortMessage:v})),x},Jt=({error:e,command:t,escapedCommand:r,startTime:n,timedOut:o,isCanceled:i,isMaxBuffer:s,exitCode:a,signal:l,signalDescription:c,stdio:d,all:u,cwd:p,originalMessage:f,shortMessage:m})=>er({shortMessage:m,originalMessage:f,command:t,escapedCommand:r,cwd:p,durationMs:re(n),failed:!0,timedOut:o,isCanceled:i,isTerminated:void 0!==l,isMaxBuffer:s,exitCode:a,signal:l,signalDescription:c,code:e.cause?.code,stdout:d[1],stderr:d[2],all:u,stdio:d,pipedFrom:[]}),er=e=>Object.fromEntries(Object.entries(e).filter((([,e])=>void 0!==e))),tr=(e,t)=>{const r=null===t?void 0:t;return{exitCode:null===e?void 0:e,signal:r,signalDescription:void 0===r?void 0:bt[t].description}},rr=e=>Number.isFinite(e)?e:0;function nr(e,t){const r="bigint"==typeof e;if(!r&&!Number.isFinite(e))throw new TypeError("Expected a finite number or bigint");(t={...t}).colonNotation&&(t.compact=!1,t.formatSubMilliseconds=!1,t.separateMilliseconds=!1,t.verbose=!1),t.compact&&(t.unitCount=1,t.secondsDecimalDigits=0,t.millisecondsDecimalDigits=0);let n=[];const o=(e,r,o,i)=>{if(0!==n.length&&t.colonNotation||!(e=>0===e||0n===e)(e)||t.colonNotation&&"m"===o){if(i=i??String(e),t.colonNotation){const e=i.includes(".")?i.split(".")[0].length:i.length,t=n.length>0?2:1;i="0".repeat(Math.max(0,t-e))+i}else i+=t.verbose?" "+(s=r,1===(a=e)||1n===a?s:`${s}s`):o;var s,a;n.push(i)}},i=function(e){switch(typeof e){case"number":if(Number.isFinite(e))return function(e){return{days:Math.trunc(e/864e5),hours:Math.trunc(e/36e5%24),minutes:Math.trunc(e/6e4%60),seconds:Math.trunc(e/1e3%60),milliseconds:Math.trunc(e%1e3),microseconds:Math.trunc(rr(1e3*e)%1e3),nanoseconds:Math.trunc(rr(1e6*e)%1e3)}}(e);break;case"bigint":return function(e){return{days:e/86400000n,hours:e/3600000n%24n,minutes:e/60000n%60n,seconds:e/1000n%60n,milliseconds:e%1000n,microseconds:0n,nanoseconds:0n}}(e)}throw new TypeError("Expected a finite number or bigint")}(e),s=BigInt(i.days);if(o(s/365n,"year","y"),o(s%365n,"day","d"),o(Number(i.hours),"hour","h"),o(Number(i.minutes),"minute","m"),t.separateMilliseconds||t.formatSubMilliseconds||!t.colonNotation&&e<1e3){const e=Number(i.seconds),r=Number(i.milliseconds),n=Number(i.microseconds),s=Number(i.nanoseconds);if(o(e,"second","s"),t.formatSubMilliseconds)o(r,"millisecond","ms"),o(n,"microsecond","µs"),o(s,"nanosecond","ns");else{const e=r+n/1e3+s/1e6,i="number"==typeof t.millisecondsDecimalDigits?t.millisecondsDecimalDigits:0,a=e>=1?Math.round(e):Math.ceil(e),l=i?e.toFixed(i):a;o(Number.parseFloat(l),"millisecond","ms",l)}}else{const n=((e,t)=>{const r=Math.floor(e*10**t+1e-7);return(Math.round(r)/10**t).toFixed(t)})((r?Number(e%86400000n):e)/1e3%60,"number"==typeof t.secondsDecimalDigits?t.secondsDecimalDigits:1),i=t.keepDecimalsOnWholeSeconds?n:n.replace(/\.0+$/,"");o(Number.parseFloat(i),"second","s",i)}if(0===n.length)return"0"+(t.verbose?" milliseconds":"ms");const a=t.colonNotation?":":" ";return"number"==typeof t.unitCount&&(n=n.slice(0,Math.max(t.unitCount,1))),n.join(a)}const or=(e,t,r)=>{ir({message:ne(String(e)),failed:!0,reject:!0,durationMs:re(t),verboseInfo:r})},ir=({message:e,failed:t,reject:r,durationMs:n,verboseInfo:{verbose:o,verboseId:i}})=>{if(!U(o))return;const s=ar(t,r);(({message:e,failed:t,reject:r,verboseId:n,icon:o})=>{t&&q(e,n,o,r?C:A)})({message:e,failed:t,reject:r,verboseId:i,icon:s}),sr(n,i,s)},sr=(e,t,r)=>{const n=`(done in ${nr(e)})`;q(n,t,r,j)},ar=(e,t)=>e?t?"error":"warning":"success",lr=(e,t,{reject:r})=>{if((({shortMessage:e,failed:t,durationMs:r},n,o)=>{ir({message:e,failed:t,reject:n,durationMs:r,verboseInfo:o})})(e,r,t),e.failed&&r)throw e;return e},cr=(e,t)=>yr(e)?"asyncGenerator":wr(e)?"generator":Sr(e)?"fileUrl":xr(e)?"filePath":Or(e)?"webStream":Tt(e,{checkOpen:!1})?"native":u(e)?"uint8Array":Nr(e)?"asyncIterable":Br(e)?"iterable":Mr(e)?pr({transform:e},t):vr(e)?dr(e,t):"native",dr=(e,t)=>Ot(e.transform,{checkOpen:!1})?ur(e,t):Mr(e.transform)?pr(e,t):br(e,t),ur=(e,t)=>(fr(e,t,"Duplex stream"),"duplex"),pr=(e,t)=>(fr(e,t,"web TransformStream"),"webTransform"),fr=({final:e,binary:t,objectMode:r},n,o)=>{mr(e,`${n}.final`,o),mr(t,`${n}.binary`,o),hr(r,`${n}.objectMode`)},mr=(e,t,r)=>{if(void 0!==e)throw new TypeError(`The \`${t}\` option can only be defined when using a generator, not a ${r}.`)},br=({transform:e,final:t,binary:r,objectMode:n},o)=>{if(void 0!==e&&!gr(e))throw new TypeError(`The \`${o}.transform\` option must be a generator, a Duplex stream or a web TransformStream.`);if(Ot(t,{checkOpen:!1}))throw new TypeError(`The \`${o}.final\` option must not be a Duplex stream.`);if(Mr(t))throw new TypeError(`The \`${o}.final\` option must not be a web TransformStream.`);if(void 0!==t&&!gr(t))throw new TypeError(`The \`${o}.final\` option must be a generator.`);return hr(r,`${o}.binary`),hr(n,`${o}.objectMode`),yr(e)||yr(t)?"asyncGenerator":"generator"},hr=(e,t)=>{if(void 0!==e&&"boolean"!=typeof e)throw new TypeError(`The \`${t}\` option must use a boolean.`)},gr=e=>yr(e)||wr(e),yr=e=>"[object AsyncGeneratorFunction]"===Object.prototype.toString.call(e),wr=e=>"[object GeneratorFunction]"===Object.prototype.toString.call(e),vr=e=>n(e)&&(void 0!==e.transform||void 0!==e.final),Sr=e=>"[object URL]"===Object.prototype.toString.call(e),xr=e=>n(e)&&1===Object.keys(e).length&&Dr(e.file),Dr=e=>"string"==typeof e,Tr=new Set(["ipc","ignore","inherit","overlapped","pipe"]),Er=e=>"[object ReadableStream]"===Object.prototype.toString.call(e),Ir=e=>"[object WritableStream]"===Object.prototype.toString.call(e),Or=e=>Er(e)||Ir(e),Mr=e=>Er(e?.readable)&&Ir(e?.writable),Nr=e=>$r(e)&&"function"==typeof e[Symbol.asyncIterator],Br=e=>$r(e)&&"function"==typeof e[Symbol.iterator],$r=e=>"object"==typeof e&&null!==e,jr=new Set(["generator","asyncGenerator","duplex","webTransform"]),Cr=new Set(["fileUrl","filePath","fileNumber"]),Ar=new Set(["fileUrl","filePath"]),Rr=new Set([...Ar,"webStream","nodeStream"]),Lr=new Set(["webTransform","duplex"]),kr={generator:"a generator",asyncGenerator:"an async generator",fileUrl:"a file URL",filePath:"a file path string",fileNumber:"a file descriptor number",webStream:"a web stream",nodeStream:"a Node.js stream",webTransform:"a web TransformStream",duplex:"a Duplex stream",native:"any value",iterable:"an iterable",asyncIterable:"an async iterable",string:"a string",uint8Array:"a Uint8Array"},Ur=(e,t,r,n)=>"output"===n?Pr(e,t,r):Fr(e,t,r),Pr=(e,t,r)=>{const n=0!==t&&r[t-1].value.readableObjectMode;return{writableObjectMode:n,readableObjectMode:e??n}},Fr=(e,t,r)=>{const n=0===t?!0===e:r[t-1].value.readableObjectMode;return{writableObjectMode:n,readableObjectMode:t!==r.length-1&&(e??n)}},Gr=(e,t,r,{encoding:n})=>{const o=e.filter((({type:e})=>jr.has(e))),i=Array.from({length:o.length});for(const[e,s]of Object.entries(o))i[e]=Wr({stdioItem:s,index:Number(e),newTransforms:i,optionName:t,direction:r,encoding:n});return Hr(i,r)},Wr=({stdioItem:e,stdioItem:{type:t},index:r,newTransforms:n,optionName:o,direction:i,encoding:s})=>"duplex"===t?_r({stdioItem:e,optionName:o}):"webTransform"===t?Vr({stdioItem:e,index:r,newTransforms:n,direction:i}):zr({stdioItem:e,index:r,newTransforms:n,direction:i,encoding:s}),_r=({stdioItem:e,stdioItem:{value:{transform:t,transform:{writableObjectMode:r,readableObjectMode:n},objectMode:o=n}},optionName:i})=>{if(o&&!n)throw new TypeError(`The \`${i}.objectMode\` option can only be \`true\` if \`new Duplex({objectMode: true})\` is used.`);if(!o&&n)throw new TypeError(`The \`${i}.objectMode\` option cannot be \`false\` if \`new Duplex({objectMode: true})\` is used.`);return{...e,value:{transform:t,writableObjectMode:r,readableObjectMode:n}}},Vr=({stdioItem:e,stdioItem:{value:t},index:r,newTransforms:o,direction:i})=>{const{transform:s,objectMode:a}=n(t)?t:{transform:t},{writableObjectMode:l,readableObjectMode:c}=Ur(a,r,o,i);return{...e,value:{transform:s,writableObjectMode:l,readableObjectMode:c}}},zr=({stdioItem:e,stdioItem:{value:t},index:r,newTransforms:o,direction:i,encoding:s})=>{const{transform:a,final:l,binary:c=!1,preserveNewlines:d=!1,objectMode:u}=n(t)?t:{transform:t},p=c||tt.has(s),{writableObjectMode:f,readableObjectMode:m}=Ur(u,r,o,i);return{...e,value:{transform:a,final:l,binary:p,preserveNewlines:d,writableObjectMode:f,readableObjectMode:m}}},Hr=(e,t)=>"input"===t?e.reverse():e,qr=["input","output","output"],Kr=()=>{},Yr=()=>"input",Xr={generator:Kr,asyncGenerator:Kr,fileUrl:Kr,filePath:Kr,iterable:Yr,asyncIterable:Yr,uint8Array:Yr,webStream:e=>Ir(e)?"output":"input",nodeStream:e=>It(e,{checkOpen:!1})?Et(e,{checkOpen:!1})?void 0:"input":"output",webTransform:Kr,duplex:Kr,native(e){const t=Qr(e);return void 0!==t?t:Tt(e,{checkOpen:!1})?Xr.nodeStream(e):void 0}},Qr=e=>[0,G.stdin].includes(e)?"input":[1,2,G.stdout,G.stderr].includes(e)?"output":void 0,Zr=e=>pe.some((t=>void 0!==e[t])),Jr=(e,t)=>Array.isArray(e)?e.map((e=>Jr(e,t))):null==e?t>=pe.length?"ignore":"pipe":e,en=e=>"pipe"===e||Array.isArray(e)&&e.every((e=>"pipe"===e)),tn=(e,t="stdin")=>{const r=!0,{options:n,fileDescriptors:o}=nn.get(e),i=on(o,t,r),s=e.stdio[i];if(null===s)throw new TypeError(ln(i,t,n,r));return s},rn=(e,t="stdout")=>{const r=!1,{options:n,fileDescriptors:o}=nn.get(e),i=on(o,t,r),s="all"===i?e.all:e.stdio[i];if(null==s)throw new TypeError(ln(i,t,n,r));return s},nn=new WeakMap,on=(e,t,r)=>{const n=sn(t,r);return an(n,t,r,e),n},sn=(e,t)=>{const r=Se(e);if(void 0!==r)return r;const{validOptions:n,defaultValue:o}=t?{validOptions:'"stdin"',defaultValue:"stdin"}:{validOptions:'"stdout", "stderr", "all"',defaultValue:"stdout"};throw new TypeError(`"${un(t)}" must not be "${e}".\nIt must be ${n} or "fd3", "fd4" (and so on).\nIt is optional and defaults to "${o}".`)},an=(e,t,r,n)=>{const o=n[dn(e)];if(void 0===o)throw new TypeError(`"${un(r)}" must not be ${t}. That file descriptor does not exist.\nPlease set the "stdio" option to ensure that file descriptor exists.`);if("input"===o.direction&&!r)throw new TypeError(`"${un(r)}" must not be ${t}. It must be a readable stream, not writable.`);if("input"!==o.direction&&r)throw new TypeError(`"${un(r)}" must not be ${t}. It must be a writable stream, not readable.`)},ln=(e,t,r,n)=>{if("all"===e&&!r.all)return'The "all" option must be true to use "from: \'all\'".';const{optionName:o,optionValue:i}=cn(e,r);return`The "${o}: ${pn(i)}" option is incompatible with using "${un(n)}: ${pn(t)}".\nPlease set this option with "pipe" instead.`},cn=(e,{stdin:t,stdout:r,stderr:n,stdio:o})=>{const i=dn(e);return 0===i&&void 0!==t?{optionName:"stdin",optionValue:t}:1===i&&void 0!==r?{optionName:"stdout",optionValue:r}:2===i&&void 0!==n?{optionName:"stderr",optionValue:n}:{optionName:`stdio[${i}]`,optionValue:o[i]}},dn=e=>"all"===e?1:e,un=e=>e?"to":"from",pn=e=>"string"==typeof e?`'${e}'`:"number"==typeof e?`${e}`:"Stream",fn=({value:e,optionName:t,fdNumber:r,direction:n})=>{const o=mn(e,r);if(void 0!==o){if("output"===n)return{type:"fileNumber",value:o,optionName:t};if(M.isatty(o))throw new TypeError(`The \`${t}: ${pn(e)}\` option is invalid: it cannot be a TTY with synchronous methods.`);return{type:"uint8Array",value:p((0,F.readFileSync)(o)),optionName:t}}},mn=(e,t)=>{if("inherit"===e)return t;if("number"==typeof e)return e;const r=ue.indexOf(e);return-1!==r?r:void 0},bn=(e,t,r)=>{const n=ue[e];if(void 0===n)throw new TypeError(`The \`${r}: ${t}\` option is invalid: no such standard stream.`);return n},hn=({input:e,inputFile:t},r)=>0===r?[...gn(e),...wn(t)]:[],gn=e=>void 0===e?[]:[{type:yn(e),value:e,optionName:"input"}],yn=e=>{if(It(e,{checkOpen:!1}))return"nodeStream";if("string"==typeof e)return"string";if(u(e))return"uint8Array";throw new Error("The `input` option must be a string, a Uint8Array or a Node.js Readable stream.")},wn=e=>void 0===e?[]:[{...vn(e),optionName:"inputFile"}],vn=e=>{if(Sr(e))return{type:"fileUrl",value:e};if(Dr(e))return{type:"filePath",value:{file:e}};throw new Error("The `inputFile` option must be a file path string or a file URL.")},Sn=({otherStdioItems:e,type:t,value:r,optionName:n,direction:o})=>{const i=e.filter((e=>xn(e,r)));if(0===i.length)return;const s=i.find((e=>e.direction!==o));return Dn(s,n,t),"output"===o?i[0].stream:void 0},xn=({type:e,value:t},r)=>"filePath"===e?t.path===r.path:"fileUrl"===e?t.href===r.href:t===r,Dn=(e,t,r)=>{if(void 0!==e)throw new TypeError(`The \`${e.optionName}\` and \`${t}\` options must not target ${kr[r]} that is the same.`)},Tn=(e,t,r,n)=>{const o=(({stdio:e,ipc:t,buffer:r,verbose:n,...o},i)=>{const s=((e,t)=>{if(void 0===e)return pe.map((e=>t[e]));if(Zr(t))throw new Error(`It's not possible to provide \`stdio\` in combination with one of ${pe.map((e=>`\`${e}\``)).join(", ")}`);if("string"==typeof e)return[e,e,e];if(!Array.isArray(e))throw new TypeError(`Expected \`stdio\` to be of type \`string\` or \`Array\`, got \`${typeof e}\``);const r=Math.max(e.length,pe.length);return Array.from({length:r},((t,r)=>e[r]))})(e,o).map(((e,t)=>Jr(e,t)));return i?((e,t,r)=>e.map(((e,n)=>!t[n]&&0!==n&&"full"!==r[n]&&en(e)?"ignore":e)))(s,r,n):((e,t)=>t&&!e.includes("ipc")?[...e,"ipc"]:e)(s,t)})(t,n),i=o.map(((e,r)=>En({stdioOption:e,fdNumber:r,options:t,isSync:n}))),s=Cn({initialFileDescriptors:i,addProperties:e,options:t,isSync:n});return t.stdio=s.map((({stdioItems:e})=>kn(e))),s},En=({stdioOption:e,fdNumber:t,options:r,isSync:n})=>{const o=fe(t),{stdioItems:i,isStdioArray:s}=In({stdioOption:e,fdNumber:t,options:r,optionName:o}),a=((e,t,r)=>{const n=e.map((e=>(({type:e,value:t},r)=>qr[r]??Xr[e](t))(e,t)));if(n.includes("input")&&n.includes("output"))throw new TypeError(`The \`${r}\` option must not be an array of both readable and writable values.`);return n.find(Boolean)??"output"})(i,t,o),l=i.map((e=>(({stdioItem:e,stdioItem:{type:t},isStdioArray:r,fdNumber:n,direction:o,isSync:i})=>r&&"native"===t?i?(({stdioItem:e,stdioItem:{value:t,optionName:r},fdNumber:n,direction:o})=>{const i=fn({value:t,optionName:r,fdNumber:n,direction:o});if(void 0!==i)return i;if(Tt(t,{checkOpen:!1}))throw new TypeError(`The \`${r}: Stream\` option cannot both be an array and include a stream with synchronous methods.`);return e})({stdioItem:e,fdNumber:n,direction:o}):(({stdioItem:e,stdioItem:{value:t,optionName:r},fdNumber:n})=>"inherit"===t?{type:"nodeStream",value:bn(n,t,r),optionName:r}:"number"==typeof t?{type:"nodeStream",value:bn(t,t,r),optionName:r}:Tt(t,{checkOpen:!1})?{type:"nodeStream",value:t,optionName:r}:e)({stdioItem:e,fdNumber:n}):e)({stdioItem:e,isStdioArray:s,fdNumber:t,direction:a,isSync:n}))),c=((e,t,r,n)=>[...e.filter((({type:e})=>!jr.has(e))),...Gr(e,t,r,n)])(l,o,a,r),d=((e,t)=>{const r=e.findLast((({type:e})=>jr.has(e)));return void 0!==r&&("input"===t?r.value.writableObjectMode:r.value.readableObjectMode)})(c,a);return jn(c,d),{direction:a,objectMode:d,stdioItems:c}},In=({stdioOption:e,fdNumber:t,options:r,optionName:n})=>{const o=(e=>e.filter(((t,r)=>e.every(((e,n)=>t.value!==e.value||r>=n||"generator"===t.type||"asyncGenerator"===t.type)))))([...(Array.isArray(e)?e:[e]).map((e=>On(e,n))),...hn(r,t)]),i=o.length>1;return Mn(o,i,n),Bn(o),{stdioItems:o,isStdioArray:i}},On=(e,t)=>({type:cr(e,t),value:e,optionName:t}),Mn=(e,t,r)=>{if(0===e.length)throw new TypeError(`The \`${r}\` option must not be an empty array.`);if(t)for(const{value:t,optionName:r}of e)if(Nn.has(t))throw new Error(`The \`${r}\` option must not include \`${t}\`.`)},Nn=new Set(["ignore","ipc"]),Bn=e=>{for(const t of e)$n(t)},$n=({type:e,value:t,optionName:r})=>{if((e=>Sr(e)&&"file:"!==e.protocol)(t))throw new TypeError(`The \`${r}: URL\` option must use the \`file:\` scheme.\nFor example, you can use the \`pathToFileURL()\` method of the \`url\` core module.`);if(((e,t)=>"native"===e&&"string"==typeof t&&!Tr.has(t))(e,t))throw new TypeError(`The \`${r}: { file: '...' }\` option must be used instead of \`${r}: '...'\`.`)},jn=(e,t)=>{if(!t)return;const r=e.find((({type:e})=>Cr.has(e)));if(void 0!==r)throw new TypeError(`The \`${r.optionName}\` option cannot use both files and transforms in objectMode.`)},Cn=({initialFileDescriptors:e,addProperties:t,options:r,isSync:n})=>{const o=[];try{for(const i of e)o.push(An({fileDescriptor:i,fileDescriptors:o,addProperties:t,options:r,isSync:n}));return o}catch(e){throw Ln(o),e}},An=({fileDescriptor:{direction:e,objectMode:t,stdioItems:r},fileDescriptors:n,addProperties:o,options:i,isSync:s})=>{const a=r.map((t=>Rn({stdioItem:t,addProperties:o,direction:e,options:i,fileDescriptors:n,isSync:s})));return{direction:e,objectMode:t,stdioItems:a}},Rn=({stdioItem:e,addProperties:t,direction:r,options:n,fileDescriptors:o,isSync:i})=>{const s=(({stdioItem:{type:e,value:t,optionName:r},direction:n,fileDescriptors:o,isSync:i})=>{const s=((e,t)=>e.flatMap((({direction:e,stdioItems:r})=>r.filter((e=>e.type===t)).map((t=>({...t,direction:e}))))))(o,e);if(0!==s.length){if(!i)return Rr.has(e)?Sn({otherStdioItems:s,type:e,value:t,optionName:r,direction:n}):void(Lr.has(e)&&(({otherStdioItems:e,type:t,value:r,optionName:n})=>{const o=e.find((({value:{transform:e}})=>e===r.transform));Dn(o,n,t)})({otherStdioItems:s,type:e,value:t,optionName:r}));(({otherStdioItems:e,type:t,value:r,optionName:n,direction:o})=>{Ar.has(t)&&Sn({otherStdioItems:e,type:t,value:r,optionName:n,direction:o})})({otherStdioItems:s,type:e,value:t,optionName:r,direction:n})}})({stdioItem:e,direction:r,fileDescriptors:o,isSync:i});return void 0!==s?{...e,stream:s}:{...e,...t[r][e.type](e,n)}},Ln=e=>{for(const{stdioItems:t}of e)for(const{stream:e}of t)void 0===e||de(e)||e.destroy()},kn=e=>{if(e.length>1)return e.some((({value:e})=>"overlapped"===e))?"overlapped":"pipe";const[{type:t,value:r}]=e;return"native"===t?r:"pipe"},Un=({type:e,optionName:t})=>{Pn(t,kr[e])},Pn=(e,t)=>{throw new TypeError(`The \`${e}\` option cannot be ${t} with synchronous methods.`)},Fn={generator(){},asyncGenerator:Un,webStream:Un,nodeStream:Un,webTransform:Un,duplex:Un,asyncIterable:Un,native:({optionName:e,value:t})=>("ipc"!==t&&"overlapped"!==t||Pn(e,`"${t}"`),{})},Gn={input:{...Fn,fileUrl:({value:e})=>({contents:[p((0,F.readFileSync)(e))]}),filePath:({value:{file:e}})=>({contents:[p((0,F.readFileSync)(e))]}),fileNumber:Un,iterable:({value:e})=>({contents:[...e]}),string:({value:e})=>({contents:[e]}),uint8Array:({value:e})=>({contents:[e]})},output:{...Fn,fileUrl:({value:e})=>({path:e}),filePath:({value:{file:e}})=>({path:e}),fileNumber:({value:e})=>({path:e}),iterable:Un,string:Un,uint8Array:Un}},Wn=(e,{stripFinalNewline:t},r)=>_n(t,r)&&void 0!==e&&!Array.isArray(e)?gt(e):e,_n=(e,t)=>"all"===t?e[1]||e[2]:e[t];var Vn=r(7075);const zn=(e,t,r,n)=>e||r?void 0:Kn(t,n),Hn=(e,t,r)=>r?e.flatMap((e=>qn(e,t))):qn(e,t),qn=(e,t)=>{const{transform:r,final:n}=Kn(t,{});return[...r(e),...n()]},Kn=(e,t)=>(t.previousChunks="",{transform:Yn.bind(void 0,t,e),final:Qn.bind(void 0,t)}),Yn=function*(e,t,r){if("string"!=typeof r)return void(yield r);let{previousChunks:n}=e,o=-1;for(let i=0;i0&&(a=eo(n,a),n=""),yield a,o=i}o!==r.length-1&&(n=eo(n,r.slice(o+1))),e.previousChunks=n},Xn=(e,t,r,n)=>r?0:(n.isWindowsNewline=0!==t&&"\r"===e[t-1],n.isWindowsNewline?2:1),Qn=function*({previousChunks:e}){e.length>0&&(yield e)},Zn=({binary:e,preserveNewlines:t,readableObjectMode:r,state:n})=>e||t||r?void 0:{transform:Jn.bind(void 0,n)},Jn=function*({isWindowsNewline:e=!1},t){const{unixNewline:r,windowsNewline:n,LF:o,concatBytes:i}="string"==typeof t?to:ro;if(t.at(-1)===o)return void(yield t);const s=e?n:r;yield i(t,s)},eo=(e,t)=>`${e}${t}`,to={windowsNewline:"\r\n",unixNewline:"\n",LF:"\n",concatBytes:eo},ro={windowsNewline:new Uint8Array([13,10]),unixNewline:new Uint8Array([10]),LF:10,concatBytes:(e,t)=>{const r=new Uint8Array(e.length+t.length);return r.set(e,0),r.set(t,e.length),r}};var no=r(4573);const oo=(e,t)=>e?void 0:io.bind(void 0,t),io=function*(e,t){if("string"!=typeof t&&!u(t)&&!no.Buffer.isBuffer(t))throw new TypeError(`The \`${e}\` option's transform must use "objectMode: true" to receive as input: ${typeof t}.`);yield t},so=(e,t)=>e?ao.bind(void 0,t):lo.bind(void 0,t),ao=function*(e,t){co(e,t),yield t},lo=function*(e,t){if(co(e,t),"string"!=typeof t&&!u(t))throw new TypeError(`The \`${e}\` option's function must yield a string or an Uint8Array, not ${typeof t}.`);yield t},co=(e,t)=>{if(null==t)throw new TypeError(`The \`${e}\` option's function must not call \`yield ${t}\`.\nInstead, \`yield\` should either be called with a value, or not be called at all. For example:\n if (condition) { yield value; }`)},uo=(e,t,r)=>{if(r)return;if(e)return{transform:po.bind(void 0,new TextEncoder)};const n=new c.StringDecoder(t);return{transform:fo.bind(void 0,n),final:mo.bind(void 0,n)}},po=function*(e,t){no.Buffer.isBuffer(t)?yield p(t):"string"==typeof t?yield e.encode(t):yield t},fo=function*(e,t){yield u(t)?e.write(t):t},mo=function*(e){const t=e.end();""!==t&&(yield t)},bo=(0,R.callbackify)((async(e,t,r,n)=>{t.currentIterable=e(...r);try{for await(const e of t.currentIterable)n.push(e)}finally{delete t.currentIterable}})),ho=async function*(e,t,r){if(r===t.length)return void(yield e);const{transform:n=vo}=t[r];for await(const o of n(e))yield*ho(o,t,r+1)},go=async function*(e){for(const[t,{final:r}]of Object.entries(e))yield*yo(r,Number(t),e)},yo=async function*(e,t,r){if(void 0!==e)for await(const n of e())yield*ho(n,r,t+1)},wo=(0,R.callbackify)((async({currentIterable:e},t)=>{if(void 0===e){if(t)throw t}else await(t?e.throw(t):e.return())})),vo=function*(e){yield e},So=(e,t,r,n)=>{try{for(const n of e(...t))r.push(n);n()}catch(e){n(e)}},xo=(e,t)=>[...t.flatMap((t=>[...Do(t,e,0)])),...To(e)],Do=function*(e,t,r){if(r===t.length)return void(yield e);const{transform:n=Io}=t[r];for(const o of n(e))yield*Do(o,t,r+1)},To=function*(e){for(const[t,{final:r}]of Object.entries(e))yield*Eo(r,Number(t),e)},Eo=function*(e,t,r){if(void 0!==e)for(const n of e())yield*Do(n,r,t+1)},Io=function*(e){yield e},Oo=({value:e,value:{transform:t,final:r,writableObjectMode:n,readableObjectMode:o},optionName:i},{encoding:s})=>{const a={},l=No(e,s,i),c=yr(t),d=yr(r),u=c?bo.bind(void 0,ho,a):So.bind(void 0,Do),p=c||d?bo.bind(void 0,go,a):So.bind(void 0,To),f=c||d?wo.bind(void 0,a):void 0;return{stream:new Vn.Transform({writableObjectMode:n,writableHighWaterMark:(0,Vn.getDefaultHighWaterMark)(n),readableObjectMode:o,readableHighWaterMark:(0,Vn.getDefaultHighWaterMark)(o),transform(e,t,r){u([e,l,0],this,r)},flush(e){p([l],this,e)},destroy:f})}},Mo=(e,t,r,n)=>{const o=t.filter((({type:e})=>"generator"===e)),i=n?o.reverse():o;for(const{value:t,optionName:n}of i){const o=No(t,r,n);e=xo(o,e)}return e},No=({transform:e,final:t,binary:r,writableObjectMode:n,readableObjectMode:o,preserveNewlines:i},s,a)=>{const l={};return[{transform:oo(n,a)},uo(r,s,n),zn(r,i,n,l),{transform:e,final:t},{transform:so(o,a)},Zn({binary:r,preserveNewlines:i,readableObjectMode:o,state:l})].filter(Boolean)},Bo=(e,t,r)=>{const{stdioItems:n}=e[t],o=n.filter((({contents:e})=>void 0!==e));if(0===o.length)return;if(0!==t){const[{type:e,optionName:t}]=o;throw new TypeError(`Only the \`stdin\` option, not \`${t}\`, can be ${kr[e]} with synchronous methods.`)}const i=o.map((({contents:e})=>e)).map((e=>$o(e,n)));r.input=g(i)},$o=(e,t)=>{const r=Mo(e,t,"utf8",!0);return jo(r),g(r)},jo=e=>{const t=e.find((e=>"string"!=typeof e&&!u(e)));if(void 0!==t)throw new TypeError(`The \`stdin\` option is invalid: when passing objects as input, a transform must be used to serialize them to strings or Uint8Arrays: ${t}.`)},Co=({stdioItems:e,encoding:t,verboseInfo:{verbose:r},fdNumber:n})=>"all"!==n&&"full"===r[n]&&!tt.has(t)&&Ao(n)&&(e.some((({type:e,value:t})=>"native"===e&&Ro.has(t)))||e.every((({type:e})=>jr.has(e)))),Ao=e=>1===e||2===e,Ro=new Set(["pipe","overlapped"]),Lo=e=>e._readableState.pipes.length>0,ko=(e,{verboseId:t})=>{const r="string"==typeof e?e:(0,R.inspect)(e),n=ne(r).replaceAll("\t"," ".repeat(Uo));q(n,t,"output")},Uo=2,Po=(e,t,r,n)=>{try{return Mo(e,t,r,!1)}catch(t){return n.error=t,e}},Fo=({chunks:e,objectMode:t,encoding:r,lines:n,stripFinalNewline:o,fdNumber:i})=>{if(t)return{serializedResult:e};if("buffer"===r)return{serializedResult:g(e)};const s=((e,t)=>((e,t)=>{if("utf8"===t&&e.every((e=>"string"==typeof e)))return e;const r=new c.StringDecoder(t),n=e.map((e=>"string"==typeof e?m(e):e)).map((e=>r.write(e))),o=r.end();return""===o?n:[...n,o]})(e,t).join(""))(e,r);return n[i]?{serializedResult:s,finalResult:Hn(s,!o[i],t)}:{serializedResult:s}},Go=(e,t,r)=>{for(const{path:n}of t.filter((({type:e})=>Cr.has(e)))){const t="string"==typeof n?n:n.toString();r.has(t)?(0,F.appendFileSync)(n,e):(r.add(t),(0,F.writeFileSync)(n,e))}};var Wo=r(8474);const _o=async e=>{try{return await(0,Wo.once)(e,"exit")}catch{return _o(e)}},Vo=async e=>{const[t,r]=await e;if(!zo(t,r)&&Ho(t,r))throw new je;return[t,r]},zo=(e,t)=>void 0===e&&void 0===t,Ho=(e,t)=>0!==e||null!==t,qo=(e,t,r)=>void 0!==e?e:Ho(t,r)?new je:void 0,Ko=e=>e.node&&!e.ipc?{...e,ipc:!1}:e,Yo=({ipc:e,detached:t,cancelSignal:r})=>{e&&Xo("ipc: true"),t&&Xo("detached: true"),r&&Xo("cancelSignal")},Xo=e=>{throw new TypeError(`The "${e}" option cannot be used with synchronous methods.`)},Qo=({file:e,commandArguments:t,options:r,command:n,escapedCommand:o,verboseInfo:i,fileDescriptors:s,startTime:a})=>{const l=Zo({file:e,commandArguments:t,options:r,command:n,escapedCommand:o,fileDescriptors:s,startTime:a});if(l.failed)return l;const{resultError:c,exitCode:d,signal:f,timedOut:m,isMaxBuffer:b}=(({error:e,status:t,signal:r,output:n},{maxBuffer:o})=>{const i=qo(e,t,r),s="ETIMEDOUT"===i?.code,a=((e,t,r)=>"ENOBUFS"===e?.code&&null!==t&&t.some((e=>null!==e&&e.length>qt(r))))(i,n,o);return{resultError:i,exitCode:t,signal:r,timedOut:s,isMaxBuffer:a}})(l,r),{output:h,error:g=c}=(({fileDescriptors:e,syncResult:{output:t},options:r,isMaxBuffer:n,verboseInfo:o})=>{if(null===t)return{output:Array.from({length:3})};const i={},s=new Set([]);return{output:t.map(((t,a)=>(({result:e,fileDescriptors:t,fdNumber:r,state:n,outputFiles:o,isMaxBuffer:i,verboseInfo:s},{buffer:a,encoding:l,lines:c,stripFinalNewline:d,maxBuffer:u})=>{if(null===e)return;const f=((e,t,r)=>{if(!t)return e;const n=qt(r);return e.length>n?e.slice(0,n):e})(e,i,u),m=p(f),{stdioItems:b,objectMode:h}=t[r],g=Po([m],b,l,n),{serializedResult:y,finalResult:w=y}=Fo({chunks:g,objectMode:h,encoding:l,lines:c,stripFinalNewline:d,fdNumber:r});Co({stdioItems:b,encoding:l,verboseInfo:s,fdNumber:r})&&((e,t)=>{for(const r of e)ko(r,t)})(Hn(y,!1,h),s);const v=a[r]?w:void 0;try{return void 0===n.error&&Go(y,b,o),v}catch(e){return n.error=e,v}})({result:t,fileDescriptors:e,fdNumber:a,state:i,outputFiles:s,isMaxBuffer:n,verboseInfo:o},r))),...i}})({fileDescriptors:s,syncResult:l,options:r,isMaxBuffer:b,verboseInfo:i}),y=h.map(((e,t)=>Wn(e,r,t))),v=Wn((([,e,t],r)=>{if(r.all)return void 0===e?t:void 0===t?e:Array.isArray(e)?Array.isArray(t)?[...e,...t]:[...e,Wn(t,r,"all")]:Array.isArray(t)?[Wn(e,r,"all"),...t]:u(e)&&u(t)?w([e,t]):`${e}${t}`})(h,r),r,"all");return ei({error:g,exitCode:d,signal:f,timedOut:m,isMaxBuffer:b,stdio:y,all:v,options:r,command:n,escapedCommand:o,startTime:a})},Zo=({file:e,commandArguments:t,options:r,command:n,escapedCommand:o,fileDescriptors:i,startTime:s})=>{try{((e,t)=>{for(const r of(e=>new Set(Object.entries(e).filter((([,{direction:e}])=>"input"===e)).map((([e])=>Number(e)))))(e))Bo(e,r,t)})(i,r);const n=Jo(r);return(0,l.spawnSync)(e,t,n)}catch(e){return Qt({error:e,command:n,escapedCommand:o,fileDescriptors:i,options:r,startTime:s,isSync:!0})}},Jo=({encoding:e,maxBuffer:t,...r})=>({...r,encoding:"buffer",maxBuffer:qt(t)}),ei=({error:e,exitCode:t,signal:r,timedOut:n,isMaxBuffer:o,stdio:i,all:s,options:a,command:l,escapedCommand:c,startTime:d})=>void 0===e?Xt({command:l,escapedCommand:c,stdio:i,all:s,options:a,startTime:d}):Zt({error:e,command:l,escapedCommand:c,timedOut:n,isCanceled:!1,isMaxBuffer:o,exitCode:t,signal:r,stdio:i,all:s,options:a,startTime:d,isSync:!0}),ti=()=>{const e=new Vn.PassThrough;return e.end(),e},ri=()=>new Vn.Readable({read(){}}),ni=()=>new Vn.Writable({write(){}}),oi=()=>new Vn.Duplex({read(){},write(){}}),ii=async(e,t,r)=>lr(e,t,r),si=({type:e,optionName:t})=>{throw new TypeError(`The \`${t}\` option cannot be ${kr[e]}.`)},ai={fileNumber:si,generator:Oo,asyncGenerator:Oo,nodeStream:({value:e})=>({stream:e}),webTransform({value:{transform:e,writableObjectMode:t,readableObjectMode:r}}){const n=t||r;return{stream:Vn.Duplex.fromWeb(e,{objectMode:n})}},duplex:({value:{transform:e}})=>({stream:e}),native(){}},li={input:{...ai,fileUrl:({value:e})=>({stream:(0,F.createReadStream)(e)}),filePath:({value:{file:e}})=>({stream:(0,F.createReadStream)(e)}),webStream:({value:e})=>({stream:Vn.Readable.fromWeb(e)}),iterable:({value:e})=>({stream:Vn.Readable.from(e)}),asyncIterable:({value:e})=>({stream:Vn.Readable.from(e)}),string:({value:e})=>({stream:Vn.Readable.from(e)}),uint8Array:({value:e})=>({stream:Vn.Readable.from(no.Buffer.from(e))})},output:{...ai,fileUrl:({value:e})=>({stream:(0,F.createWriteStream)(e)}),filePath:({value:{file:e}})=>({stream:(0,F.createWriteStream)(e)}),webStream:({value:e})=>({stream:Vn.Writable.fromWeb(e)}),iterable:si,asyncIterable:si,string:si,uint8Array:si}};var ci=r(6466);function di(e){if(!Array.isArray(e))throw new TypeError(`Expected an array, got \`${typeof e}\`.`);for(const t of e)hi(t);const t=e.some((({readableObjectMode:e})=>e)),r=ui(e,t),n=new pi({objectMode:t,writableHighWaterMark:r,readableHighWaterMark:r});for(const t of e)n.add(t);return n}const ui=(e,t)=>{if(0===e.length)return(0,Vn.getDefaultHighWaterMark)(t);const r=e.filter((({readableObjectMode:e})=>e===t)).map((({readableHighWaterMark:e})=>e));return Math.max(...r)};class pi extends Vn.PassThrough{#s=new Set([]);#a=new Set([]);#l=new Set([]);#c;#d=Symbol("unpipe");#u=new WeakMap;add(e){if(hi(e),this.#s.has(e))return;this.#s.add(e),this.#c??=fi(this,this.#s,this.#d);const t=gi({passThroughStream:this,stream:e,streams:this.#s,ended:this.#a,aborted:this.#l,onFinished:this.#c,unpipeEvent:this.#d});this.#u.set(e,t),e.pipe(this,{end:!1})}async remove(e){if(hi(e),!this.#s.has(e))return!1;const t=this.#u.get(e);return void 0!==t&&(this.#u.delete(e),e.unpipe(this),await t,!0)}}const fi=async(e,t,r)=>{Oi(e,Mi);const n=new AbortController;try{await Promise.race([mi(e,n),bi(e,t,r,n)])}finally{n.abort(),Oi(e,-Mi)}},mi=async(e,{signal:t})=>{try{await(0,ci.finished)(e,{signal:t,cleanup:!0})}catch(t){throw xi(e,t),t}},bi=async(e,t,r,{signal:n})=>{for await(const[o]of(0,Wo.on)(e,"unpipe",{signal:n}))t.has(o)&&o.emit(r)},hi=e=>{if("function"!=typeof e?.pipe)throw new TypeError(`Expected a readable stream, got: \`${typeof e}\`.`)},gi=async({passThroughStream:e,stream:t,streams:r,ended:n,aborted:o,onFinished:i,unpipeEvent:s})=>{Oi(e,Ni);const a=new AbortController;try{await Promise.race([yi(i,t,a),wi({passThroughStream:e,stream:t,streams:r,ended:n,aborted:o,controller:a}),vi({stream:t,streams:r,ended:n,aborted:o,unpipeEvent:s,controller:a})])}finally{a.abort(),Oi(e,-Ni)}r.size>0&&r.size===n.size+o.size&&(0===n.size&&o.size>0?Ti(e):Si(e))},yi=async(e,t,{signal:r})=>{try{await e,r.aborted||Ti(t)}catch(e){r.aborted||xi(t,e)}},wi=async({passThroughStream:e,stream:t,streams:r,ended:n,aborted:o,controller:{signal:i}})=>{try{await(0,ci.finished)(t,{signal:i,cleanup:!0,readable:!0,writable:!1}),r.has(t)&&n.add(t)}catch(n){if(i.aborted||!r.has(t))return;Di(n)?o.add(t):Ei(e,n)}},vi=async({stream:e,streams:t,ended:r,aborted:n,unpipeEvent:o,controller:{signal:i}})=>{if(await(0,Wo.once)(e,o,{signal:i}),!e.readable)return(0,Wo.once)(i,"abort",{signal:i});t.delete(e),r.delete(e),n.delete(e)},Si=e=>{e.writable&&e.end()},xi=(e,t)=>{Di(t)?Ti(e):Ei(e,t)},Di=e=>"ERR_STREAM_PREMATURE_CLOSE"===e?.code,Ti=e=>{(e.readable||e.writable)&&e.destroy()},Ei=(e,t)=>{e.destroyed||(e.once("error",Ii),e.destroy(t))},Ii=()=>{},Oi=(e,t)=>{const r=e.getMaxListeners();0!==r&&r!==Number.POSITIVE_INFINITY&&e.setMaxListeners(r+t)},Mi=2,Ni=1,Bi=(e,t,r)=>{const n=e.getMaxListeners();0!==n&&n!==Number.POSITIVE_INFINITY&&(e.setMaxListeners(n+t),(0,Wo.addAbortListener)(r,(()=>{e.setMaxListeners(e.getMaxListeners()-t)})))},$i=(e,t)=>{e.pipe(t),ji(e,t),Ai(e,t)},ji=async(e,t)=>{if(!de(e)&&!de(t)){try{await(0,ci.finished)(e,{cleanup:!0,readable:!0,writable:!1})}catch{}Ci(t)}},Ci=e=>{e.writable&&e.end()},Ai=async(e,t)=>{if(!de(e)&&!de(t)){try{await(0,ci.finished)(t,{cleanup:!0,readable:!1,writable:!0})}catch{}Ri(e)}},Ri=e=>{e.readable&&e.destroy()},Li=(e,t,r,n)=>{"output"===r?$i(e.stdio[n],t):$i(t,e.stdio[n]);const o=ki[n];void 0!==o&&(e[o]=t),e.stdio[n]=t},ki=["stdin","stdout","stderr"],Ui=({subprocess:e,stream:t,direction:r,fdNumber:n,pipeGroups:o,controller:i})=>{if(void 0===t)return;Pi(t,i);const[s,a]="output"===r?[t,e.stdio[n]]:[e.stdio[n],t],l=o.get(s)??[];o.set(s,[...l,a])},Pi=(e,{signal:t})=>{de(e)&&Bi(e,Fi,t)},Fi=2,Gi=[];Gi.push("SIGHUP","SIGINT","SIGTERM"),"win32"!==process.platform&&Gi.push("SIGALRM","SIGABRT","SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT"),"linux"===process.platform&&Gi.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT");const Wi=e=>!!e&&"object"==typeof e&&"function"==typeof e.removeListener&&"function"==typeof e.emit&&"function"==typeof e.reallyExit&&"function"==typeof e.listeners&&"function"==typeof e.kill&&"number"==typeof e.pid&&"function"==typeof e.on,_i=Symbol.for("signal-exit emitter"),Vi=globalThis,zi=Object.defineProperty.bind(Object);class Hi{emitted={afterExit:!1,exit:!1};listeners={afterExit:[],exit:[]};count=0;id=Math.random();constructor(){if(Vi[_i])return Vi[_i];zi(Vi,_i,{value:this,writable:!1,enumerable:!1,configurable:!1})}on(e,t){this.listeners[e].push(t)}removeListener(e,t){const r=this.listeners[e],n=r.indexOf(t);-1!==n&&(0===n&&1===r.length?r.length=0:r.splice(n,1))}emit(e,t,r){if(this.emitted[e])return!1;this.emitted[e]=!0;let n=!1;for(const o of this.listeners[e])n=!0===o(t,r)||n;return"exit"===e&&(n=this.emit("afterExit",t,r)||n),n}}class qi{}const Ki=globalThis.process,{onExit:Yi,load:Xi,unload:Qi}=(Zi=Wi(Ki)?new class extends qi{#p="win32"===Ki.platform?"SIGINT":"SIGHUP";#f=new Hi;#m;#b;#h;#g={};#y=!1;constructor(e){super(),this.#m=e,this.#g={};for(const t of Gi)this.#g[t]=()=>{const r=this.#m.listeners(t);let{count:n}=this.#f;const o=e;if("object"==typeof o.__signal_exit_emitter__&&"number"==typeof o.__signal_exit_emitter__.count&&(n+=o.__signal_exit_emitter__.count),r.length===n){this.unload();const r=this.#f.emit("exit",null,t),n="SIGHUP"===t?this.#p:t;r||e.kill(e.pid,n)}};this.#h=e.reallyExit,this.#b=e.emit}onExit(e,t){if(!Wi(this.#m))return()=>{};!1===this.#y&&this.load();const r=t?.alwaysLast?"afterExit":"exit";return this.#f.on(r,e),()=>{this.#f.removeListener(r,e),0===this.#f.listeners.exit.length&&0===this.#f.listeners.afterExit.length&&this.unload()}}load(){if(!this.#y){this.#y=!0,this.#f.count+=1;for(const e of Gi)try{const t=this.#g[e];t&&this.#m.on(e,t)}catch(e){}this.#m.emit=(e,...t)=>this.#w(e,...t),this.#m.reallyExit=e=>this.#v(e)}}unload(){this.#y&&(this.#y=!1,Gi.forEach((e=>{const t=this.#g[e];if(!t)throw new Error("Listener not defined for signal: "+e);try{this.#m.removeListener(e,t)}catch(e){}})),this.#m.emit=this.#b,this.#m.reallyExit=this.#h,this.#f.count-=1)}#v(e){return Wi(this.#m)?(this.#m.exitCode=e||0,this.#f.emit("exit",this.#m.exitCode,null),this.#h.call(this.#m,this.#m.exitCode)):0}#w(e,...t){const r=this.#b;if("exit"===e&&Wi(this.#m)){"number"==typeof t[0]&&(this.#m.exitCode=t[0]);const n=r.call(this.#m,e,...t);return this.#f.emit("exit",this.#m.exitCode,null),n}return r.call(this.#m,e,...t)}}(Ki):new class extends qi{onExit(){return()=>{}}load(){}unload(){}},{onExit:(e,t)=>Zi.onExit(e,t),load:()=>Zi.load(),unload:()=>Zi.unload()});var Zi;const Ji=(e,t,r,...n)=>{if(Array.isArray(r))return{destination:t(es,e)(r,...n),pipeOptions:e};if("string"==typeof r||r instanceof URL){if(Object.keys(e).length>0)throw new TypeError('Please use .pipe("file", ..., options) or .pipe(execa("file", ..., options)) instead of .pipe(options)("file", ...).');const[o,i,s]=a(r,...n);return{destination:t(es)(o,i,s),pipeOptions:s}}if(nn.has(r)){if(Object.keys(e).length>0)throw new TypeError("Please use .pipe(options)`command` or .pipe($(options)`command`) instead of .pipe(options)($`command`).");return{destination:r,pipeOptions:n[0]}}throw new TypeError(`The first argument must be a template string, an options object, or an Execa subprocess: ${r}`)},es=({options:e})=>({options:{...e,stdin:"pipe",piped:!0}}),ts=({error:e,fileDescriptors:t,sourceOptions:r,startTime:n})=>Qt({error:e,command:rs,escapedCommand:rs,fileDescriptors:t,options:r,startTime:n,isSync:!1}),rs="source.pipe(destination)",ns=async e=>{const[{status:t,reason:r,value:n=r},{status:o,reason:i,value:s=i}]=await e;if(s.pipedFrom.includes(n)||s.pipedFrom.push(n),"rejected"===o)throw s;if("rejected"===t)throw n;return s},os=new WeakMap,is=(e,t)=>void 0===e?[]:[ss(e,t)],ss=async(e,{sourceStream:t,mergedStream:r,fileDescriptors:n,sourceOptions:o,startTime:i})=>{await(0,R.aborted)(e,t),await r.remove(t);const s=new Error("Pipe canceled by `unpipeSignal` option.");throw ts({error:s,fileDescriptors:n,sourceOptions:o,startTime:i})},as=(e,...t)=>{if(n(t[0]))return as.bind(void 0,{...e,boundOptions:{...e.boundOptions,...t[0]}});const{destination:r,...o}=(({source:e,sourcePromise:t,boundOptions:r,createNested:n},...o)=>{const i=te(),{destination:s,destinationStream:a,destinationError:l,from:c,unpipeSignal:d}=((e,t,r)=>{try{const{destination:n,pipeOptions:{from:o,to:i,unpipeSignal:s}={}}=Ji(e,t,...r);return{destination:n,destinationStream:tn(n,i),from:o,unpipeSignal:s}}catch(e){return{destinationError:e}}})(r,n,o),{sourceStream:u,sourceError:p}=((e,t)=>{try{return{sourceStream:rn(e,t)}}catch(e){return{sourceError:e}}})(e,c),{options:f,fileDescriptors:m}=nn.get(e);return{sourcePromise:t,sourceStream:u,sourceOptions:f,sourceError:p,destination:s,destinationStream:a,destinationError:l,unpipeSignal:d,fileDescriptors:m,startTime:i}})(e,...t),i=ls({...o,destination:r});return i.pipe=as.bind(void 0,{...e,source:r,sourcePromise:i,boundOptions:{}}),i},ls=async({sourcePromise:e,sourceStream:t,sourceOptions:r,sourceError:n,destination:o,destinationStream:i,destinationError:s,unpipeSignal:a,fileDescriptors:l,startTime:c})=>{const d=cs(e,o);(({sourceStream:e,sourceError:t,destinationStream:r,destinationError:n,fileDescriptors:o,sourceOptions:i,startTime:s})=>{const a=(({sourceStream:e,sourceError:t,destinationStream:r,destinationError:n})=>void 0!==t&&void 0!==n?n:void 0!==n?(Ri(e),n):void 0!==t?(Ci(r),t):void 0)({sourceStream:e,sourceError:t,destinationStream:r,destinationError:n});if(void 0!==a)throw ts({error:a,fileDescriptors:o,sourceOptions:i,startTime:s})})({sourceStream:t,sourceError:n,destinationStream:i,destinationError:s,fileDescriptors:l,sourceOptions:r,startTime:c});const u=new AbortController;try{const e=((e,t,r)=>{const n=os.has(t)?((e,t)=>{const r=os.get(t);return r.add(e),r})(e,t):((e,t)=>{const r=di([e]);return $i(r,t),os.set(t,r),r})(e,t);return Bi(e,2,r.signal),Bi(t,1,r.signal),(async e=>{try{await(0,ci.finished)(e,{cleanup:!0,readable:!1,writable:!0})}catch{}os.delete(e)})(t),n})(t,i,u);return await Promise.race([ns(d),...is(a,{sourceStream:t,mergedStream:e,sourceOptions:r,fileDescriptors:l,startTime:c})])}finally{u.abort()}},cs=(e,t)=>Promise.allSettled([e,t]),ds=e=>e,us=()=>{},ps=({contents:e})=>e,fs=e=>{throw new Error(`Streams in object mode are not supported: ${String(e)}`)},ms=e=>e.length,bs={init:()=>({contents:[]}),convertChunk:{string:ds,buffer:ds,arrayBuffer:ds,dataView:ds,typedArray:ds,others:ds},getSize:()=>1,truncateChunk:us,addChunk:(e,{contents:t})=>(t.push(e),t),getFinalChunk:us,finalize:ps},hs=new TextEncoder,gs=e=>new Uint8Array(e),ys=e=>new Uint8Array(e.buffer,e.byteOffset,e.byteLength),ws=e=>vs**Math.ceil(Math.log(e)/Math.log(vs)),vs=2,Ss=()=>"resize"in ArrayBuffer.prototype,xs={init:()=>({contents:new ArrayBuffer(0)}),convertChunk:{string:e=>hs.encode(e),buffer:gs,arrayBuffer:gs,dataView:ys,typedArray:ys,others:fs},getSize:ms,truncateChunk:(e,t)=>e.slice(0,t),addChunk:(e,{contents:t,length:r},n)=>{const o=Ss()?((e,t)=>{if(t<=e.maxByteLength)return e.resize(t),e;const r=new ArrayBuffer(t,{maxByteLength:ws(t)});return new Uint8Array(r).set(new Uint8Array(e),0),r})(t,n):((e,t)=>{if(t<=e.byteLength)return e;const r=new ArrayBuffer(ws(t));return new Uint8Array(r).set(new Uint8Array(e),0),r})(t,n);return new Uint8Array(o).set(e,r),o},getFinalChunk:us,finalize:({contents:e,length:t})=>Ss()?e:e.slice(0,t)},Ds=(e,{textDecoder:t})=>t.decode(e,{stream:!0}),Ts={init:()=>({contents:"",textDecoder:new TextDecoder}),convertChunk:{string:ds,buffer:Ds,arrayBuffer:Ds,dataView:Ds,typedArray:Ds,others:fs},getSize:ms,truncateChunk:(e,t)=>e.slice(0,t),addChunk:(e,{contents:t})=>t+e,getFinalChunk:({textDecoder:e})=>{const t=e.decode();return""===t?void 0:t},finalize:ps},Es=({subprocessStdout:e,subprocess:t,binary:r,shouldEncode:n,encoding:o,preserveNewlines:i})=>{const s=new AbortController;return Is(t,s),Ns({stream:e,controller:s,binary:r,shouldEncode:!e.readableObjectMode&&n,encoding:o,shouldSplit:!e.readableObjectMode,preserveNewlines:i})},Is=async(e,t)=>{try{await e}catch{}finally{t.abort()}},Os=({stream:e,onStreamEnd:t,lines:r,encoding:n,stripFinalNewline:o,allMixed:i})=>{const s=new AbortController;Ms(t,s,e);const a=e.readableObjectMode&&!i;return Ns({stream:e,controller:s,binary:"buffer"===n,shouldEncode:!a,encoding:n,shouldSplit:!a&&r,preserveNewlines:!o})},Ms=async(e,t,r)=>{try{await e}catch{r.destroy()}finally{t.abort()}},Ns=({stream:e,controller:t,binary:r,shouldEncode:n,encoding:o,shouldSplit:i,preserveNewlines:s})=>{const a=(0,Wo.on)(e,"data",{signal:t.signal,highWaterMark:$s,highWatermark:$s});return js({onStdoutChunk:a,controller:t,binary:r,shouldEncode:n,encoding:o,shouldSplit:i,preserveNewlines:s})},Bs=(0,Vn.getDefaultHighWaterMark)(!0),$s=Bs,js=async function*({onStdoutChunk:e,controller:t,binary:r,shouldEncode:n,encoding:o,shouldSplit:i,preserveNewlines:s}){const a=Cs({binary:r,shouldEncode:n,encoding:o,shouldSplit:i,preserveNewlines:s});try{for await(const[t]of e)yield*Do(t,a,0)}catch(e){if(!t.signal.aborted)throw e}finally{yield*To(a)}},Cs=({binary:e,shouldEncode:t,encoding:r,shouldSplit:n,preserveNewlines:o})=>[uo(e,r,!t),zn(e,o,!n,{})].filter(Boolean),As=async({stream:e,onStreamEnd:t,fdNumber:r,encoding:n,buffer:o,maxBuffer:i,lines:s,allMixed:a,stripFinalNewline:l,verboseInfo:c,streamInfo:{fileDescriptors:d}})=>{if(Co({stdioItems:d[r]?.stdioItems,encoding:n,verboseInfo:c,fdNumber:r})&&(async(e,t,r)=>{for await(const n of e)Lo(t)||ko(n,r)})(Os({stream:e,onStreamEnd:t,lines:!0,encoding:n,stripFinalNewline:!0,allMixed:a}),e,c),!o)return void await Rs(e);const u=_n(l,r),p=Os({stream:e,onStreamEnd:t,lines:s,encoding:n,stripFinalNewline:u,allMixed:a});return Ls({stream:e,iterable:p,fdNumber:r,encoding:n,maxBuffer:i,lines:s})},Rs=async e=>{await(0,$e.setImmediate)(),null===e.readableFlowing&&e.resume()},Ls=async({stream:e,stream:{readableObjectMode:t},iterable:r,fdNumber:n,encoding:o,maxBuffer:i,lines:s})=>{try{return t||s?await async function(e,t){return Ft(e,bs,t)}(r,{maxBuffer:i}):"buffer"===o?new Uint8Array(await async function(e,t){return Ft(e,xs,t)}(r,{maxBuffer:i})):await async function(e,t){return Ft(e,Ts,t)}(r,{maxBuffer:i})}catch(r){return Us((({error:e,stream:t,readableObjectMode:r,lines:n,encoding:o,fdNumber:i})=>{if(!(e instanceof Ht))throw e;if("all"===i)return e;const s=((e,t,r)=>e?"objects":t?"lines":"buffer"===r?"bytes":"characters")(r,n,o);throw e.maxBufferInfo={fdNumber:i,unit:s},t.destroy(),e})({error:r,stream:e,readableObjectMode:t,lines:s,encoding:o,fdNumber:n}))}},ks=async e=>{try{return await e}catch(e){return Us(e)}},Us=({bufferedData:e})=>{return t=e,"[object ArrayBuffer]"===d.call(t)?new Uint8Array(e):e;var t},Ps=async(e,t,r,{isSameDirection:n,stopOnExit:o=!1}={})=>{const i=Fs(e,r),s=new AbortController;try{await Promise.race([...o?[r.exitPromise]:[],(0,ci.finished)(e,{cleanup:!0,signal:s.signal})])}catch(e){i.stdinCleanedUp||_s(e,t,r,n)}finally{s.abort()}},Fs=(e,{originalStreams:[t],subprocess:r})=>{const n={stdinCleanedUp:!1};return e===t&&Gs(e,r,n),n},Gs=(e,t,r)=>{const{_destroy:n}=e;e._destroy=(...o)=>{Ws(t,r),n.call(e,...o)}},Ws=({exitCode:e,signalCode:t},r)=>{null===e&&null===t||(r.stdinCleanedUp=!0)},_s=(e,t,r,n)=>{if(!Vs(e,t,r,n))throw e},Vs=(e,t,r,n=!0)=>r.propagating?qs(e)||Hs(e):(r.propagating=!0,zs(r,t)===n?qs(e):Hs(e)),zs=({fileDescriptors:e},t)=>"all"!==t&&"input"===e[t].direction,Hs=e=>"ERR_STREAM_PREMATURE_CLOSE"===e?.code,qs=e=>"EPIPE"===e?.code,Ks=async({stream:e,fdNumber:t,encoding:r,buffer:n,maxBuffer:o,lines:i,allMixed:s,stripFinalNewline:a,verboseInfo:l,streamInfo:c})=>{if(!e)return;const d=Ps(e,t,c);if(zs(c,t))return void await d;const[u]=await Promise.all([As({stream:e,onStreamEnd:d,fdNumber:t,encoding:r,buffer:n,maxBuffer:o,lines:i,allMixed:s,stripFinalNewline:a,verboseInfo:l,streamInfo:c}),d]);return u},Ys=({stdout:e,stderr:t,all:r},[,n,o])=>{const i=n||o;return i?n?o?{stream:r,buffer:i}:{stream:e,buffer:i}:{stream:t,buffer:i}:{stream:r,buffer:i}},Xs=({all:e,stdout:t,stderr:r})=>e&&t&&r&&t.readableObjectMode!==r.readableObjectMode,Qs=(e,t,r)=>e.map(((e,n)=>e===t.stdio[n]?void 0:Ps(e,n,r))),Zs=(e,t)=>e.flatMap((({stdioItems:e},r)=>e.filter((({value:e,stream:t=e})=>Tt(t,{checkOpen:!1})&&!de(t))).map((({type:e,value:n,stream:o=n})=>Ps(o,r,t,{isSameDirection:jr.has(e),stopOnExit:"native"===e}))))),Js=async(e,{signal:t})=>{const[r]=await(0,Wo.once)(e,"error",{signal:t});throw r},ea=()=>{const e={},t=new Promise(((t,r)=>{Object.assign(e,{resolve:t,reject:r})}));return Object.assign(t,e)},ta=(e,t,r)=>{const n=e[r];n.has(t)||n.set(t,[]);const o=n.get(t),i=ea();return o.push(i),{resolve:i.resolve.bind(i),promises:o}},ra=async({resolve:e,promises:t},r)=>{e();const[n]=await Promise.race([Promise.allSettled([!0,r]),Promise.all([!1,...t])]);return!n},na=async e=>{if(void 0!==e)try{await oa(e)}catch{}},oa=async e=>{await(0,ci.finished)(e,{cleanup:!0,readable:!1,writable:!0})},ia=async e=>{await(0,ci.finished)(e,{cleanup:!0,readable:!0,writable:!1})},sa=async(e,t)=>{if(await e,t)throw t},aa=(e,t,r)=>{r&&!Hs(r)?e.destroy(r):t&&e.destroy()},la=({subprocess:e,concurrentStreams:t,encoding:r},{from:n,binary:o=!0,preserveNewlines:i=!0}={})=>{const s=o||tt.has(r),{subprocessStdout:a,waitReadableDestroy:l}=ca(e,n,t),{readableEncoding:c,readableObjectMode:d,readableHighWaterMark:u}=da(a,s),{read:p,onStdoutDataDone:f}=ua({subprocessStdout:a,subprocess:e,binary:s,encoding:r,preserveNewlines:i}),m=new Vn.Readable({read:p,destroy:(0,R.callbackify)(ma.bind(void 0,{subprocessStdout:a,subprocess:e,waitReadableDestroy:l})),highWaterMark:u,objectMode:d,encoding:c});return fa({subprocessStdout:a,onStdoutDataDone:f,readable:m,subprocess:e}),m},ca=(e,t,r)=>{const n=rn(e,t);return{subprocessStdout:n,waitReadableDestroy:ta(r,n,"readableDestroy")}},da=({readableEncoding:e,readableObjectMode:t,readableHighWaterMark:r},n)=>n?{readableEncoding:e,readableObjectMode:t,readableHighWaterMark:r}:{readableEncoding:e,readableObjectMode:!0,readableHighWaterMark:Bs},ua=({subprocessStdout:e,subprocess:t,binary:r,encoding:n,preserveNewlines:o})=>{const i=ea(),s=Es({subprocessStdout:e,subprocess:t,binary:r,shouldEncode:!r,encoding:n,preserveNewlines:o});return{read(){pa(this,s,i)},onStdoutDataDone:i}},pa=async(e,t,r)=>{try{const{value:n,done:o}=await t.next();o?r.resolve():e.push(n)}catch{}},fa=async({subprocessStdout:e,onStdoutDataDone:t,readable:r,subprocess:n,subprocessStdin:o})=>{try{await ia(e),await n,await na(o),await t,r.readable&&r.push(null)}catch(e){await na(o),ba(r,e)}},ma=async({subprocessStdout:e,subprocess:t,waitReadableDestroy:r},n)=>{await ra(r,t)&&(ba(e,n),await sa(t,n))},ba=(e,t)=>{aa(e,e.readable,t)},ha=({subprocess:e,concurrentStreams:t},{to:r}={})=>{const{subprocessStdin:n,waitWritableFinal:o,waitWritableDestroy:i}=ga(e,r,t),s=new Vn.Writable({...ya(n,e,o),destroy:(0,R.callbackify)(xa.bind(void 0,{subprocessStdin:n,subprocess:e,waitWritableFinal:o,waitWritableDestroy:i})),highWaterMark:n.writableHighWaterMark,objectMode:n.writableObjectMode});return Sa(n,s),s},ga=(e,t,r)=>{const n=tn(e,t);return{subprocessStdin:n,waitWritableFinal:ta(r,n,"writableFinal"),waitWritableDestroy:ta(r,n,"writableDestroy")}},ya=(e,t,r)=>({write:wa.bind(void 0,e),final:(0,R.callbackify)(va.bind(void 0,e,t,r))}),wa=(e,t,r,n)=>{e.write(t,r)?n():e.once("drain",n)},va=async(e,t,r)=>{await ra(r,t)&&(e.writable&&e.end(),await t)},Sa=async(e,t,r)=>{try{await oa(e),t.writable&&t.end()}catch(e){await(async e=>{if(void 0!==e)try{await ia(e)}catch{}})(r),Da(t,e)}},xa=async({subprocessStdin:e,subprocess:t,waitWritableFinal:r,waitWritableDestroy:n},o)=>{await ra(r,t),await ra(n,t)&&(Da(e,o),await sa(t,o))},Da=(e,t)=>{aa(e,e.writable,t)},Ta=({subprocess:e,concurrentStreams:t,encoding:r},{from:n,to:o,binary:i=!0,preserveNewlines:s=!0}={})=>{const a=i||tt.has(r),{subprocessStdout:l,waitReadableDestroy:c}=ca(e,n,t),{subprocessStdin:d,waitWritableFinal:u,waitWritableDestroy:p}=ga(e,o,t),{readableEncoding:f,readableObjectMode:m,readableHighWaterMark:b}=da(l,a),{read:h,onStdoutDataDone:g}=ua({subprocessStdout:l,subprocess:e,binary:a,encoding:r,preserveNewlines:s}),y=new Vn.Duplex({read:h,...ya(d,e,u),destroy:(0,R.callbackify)(Ea.bind(void 0,{subprocessStdout:l,subprocessStdin:d,subprocess:e,waitReadableDestroy:c,waitWritableFinal:u,waitWritableDestroy:p})),readableHighWaterMark:b,writableHighWaterMark:d.writableHighWaterMark,readableObjectMode:m,writableObjectMode:d.writableObjectMode,encoding:f});return fa({subprocessStdout:l,onStdoutDataDone:g,readable:y,subprocess:e,subprocessStdin:d}),Sa(d,y,l),y},Ea=async({subprocessStdout:e,subprocessStdin:t,subprocess:r,waitReadableDestroy:n,waitWritableFinal:o,waitWritableDestroy:i},s)=>{await Promise.all([ma({subprocessStdout:e,subprocess:r,waitReadableDestroy:n},s),xa({subprocessStdin:t,subprocess:r,waitWritableFinal:o,waitWritableDestroy:i},s)])},Ia=(e,t,{from:r,binary:n=!1,preserveNewlines:o=!1}={})=>{const i=n||tt.has(t),s=rn(e,r),a=Es({subprocessStdout:s,subprocess:e,binary:i,shouldEncode:!0,encoding:t,preserveNewlines:o});return Oa(a,s,e)},Oa=async function*(e,t,r){try{yield*e}finally{t.readable&&t.destroy(),await r}},Ma=(e,{encoding:t})=>{const r={readableDestroy:new WeakMap,writableFinal:new WeakMap,writableDestroy:new WeakMap};e.readable=la.bind(void 0,{subprocess:e,concurrentStreams:r,encoding:t}),e.writable=ha.bind(void 0,{subprocess:e,concurrentStreams:r}),e.duplex=Ta.bind(void 0,{subprocess:e,concurrentStreams:r,encoding:t}),e.iterable=Ia.bind(void 0,e,t),e[Symbol.asyncIterator]=Ia.bind(void 0,e,t,{})},Na=(async()=>{})().constructor.prototype,Ba=["then","catch","finally"].map((e=>[e,Reflect.getOwnPropertyDescriptor(Na,e)])),$a=(e,t,r)=>{const{command:n,escapedCommand:o,startTime:i,verboseInfo:s}=Ie(e,t,r);try{const{file:a,commandArguments:l,options:c}=st(e,t,r),d=ja(c),u=((e,t)=>Tn(li,e,0,!1))(d);return{file:a,commandArguments:l,command:n,escapedCommand:o,startTime:i,verboseInfo:s,options:d,fileDescriptors:u}}catch(e){throw or(e,i,s),e}},ja=({timeout:e,signal:t,cancelSignal:r,...n})=>{if(void 0!==t)throw new TypeError('The "signal" option has been renamed to "cancelSignal" instead.');return{...n,timeoutDuration:e,signal:r}},Ca=({file:e,commandArguments:t,options:r,startTime:n,verboseInfo:o,command:i,escapedCommand:s,fileDescriptors:a})=>{let c;try{c=(0,l.spawn)(e,t,r)}catch(e){return(({error:e,command:t,escapedCommand:r,fileDescriptors:n,options:o,startTime:i,verboseInfo:s})=>{Ln(n);const a=new l.ChildProcess;((e,t)=>{const r=ti(),n=ti(),o=ti(),i=Array.from({length:t.length-3},ti),s=ti(),a=[r,n,o,...i];Object.assign(e,{stdin:r,stdout:n,stderr:o,all:s,stdio:a})})(a,n),Object.assign(a,{readable:ri,writable:ni,duplex:oi});const c=Qt({error:e,command:t,escapedCommand:r,fileDescriptors:n,options:o,startTime:i,isSync:!1});return{subprocess:a,promise:ii(c,s,o)}})({error:e,command:i,escapedCommand:s,fileDescriptors:a,options:r,startTime:n,verboseInfo:o})}const d=new AbortController;(0,Wo.setMaxListeners)(Number.POSITIVE_INFINITY,d.signal);const u=[...c.stdio];((e,t,r)=>{const n=new Map;for(const[o,{stdioItems:i,direction:s}]of Object.entries(t)){for(const{stream:t}of i.filter((({type:e})=>jr.has(e))))Li(e,t,s,o);for(const{stream:t}of i.filter((({type:e})=>!jr.has(e))))Ui({subprocess:e,stream:t,direction:s,fdNumber:o,pipeGroups:n,controller:r})}for(const[e,t]of n.entries()){const r=1===t.length?t[0]:di(t);$i(r,e)}})(c,a,d),((e,{cleanup:t,detached:r},{signal:n})=>{if(!t||r)return;const o=Yi((()=>{e.kill()}));(0,Wo.addAbortListener)(n,(()=>{o()}))})(c,r,d);const p=ea();return c.kill=qe.bind(void 0,{kill:c.kill.bind(c),options:r,onInternalError:p,controller:d}),c.all=(({stdout:e,stderr:t},{all:r})=>r&&(e||t)?di([e,t].filter(Boolean)):void 0)(c,r),Ma(c,r),{subprocess:c,promise:Aa({subprocess:c,options:r,startTime:n,verboseInfo:o,fileDescriptors:a,originalStreams:u,command:i,escapedCommand:s,onInternalError:p,controller:d})}},Aa=async({subprocess:e,options:t,startTime:r,verboseInfo:n,fileDescriptors:o,originalStreams:i,command:s,escapedCommand:a,onInternalError:l,controller:c})=>{const d={timedOut:!1},[u,[p,f],m,b]=await(async({subprocess:e,options:{encoding:t,buffer:r,maxBuffer:n,lines:o,timeoutDuration:i,stripFinalNewline:s},context:a,verboseInfo:l,fileDescriptors:c,originalStreams:d,onInternalError:u,controller:p})=>{const f=(async e=>{const[t,r]=await Promise.allSettled([(0,Wo.once)(e,"spawn"),(0,Wo.once)(e,"exit")]);return"rejected"===t.status?[]:"rejected"===r.status?_o(e):r.value})(e),m={originalStreams:d,fileDescriptors:c,subprocess:e,exitPromise:f,propagating:!1},b=(({subprocess:e,encoding:t,buffer:r,maxBuffer:n,lines:o,stripFinalNewline:i,verboseInfo:s,streamInfo:a})=>e.stdio.map(((e,l)=>Ks({stream:e,fdNumber:l,encoding:t,buffer:r[l],maxBuffer:n[l],lines:o[l],allMixed:!1,stripFinalNewline:i,verboseInfo:s,streamInfo:a}))))({subprocess:e,encoding:t,buffer:r,maxBuffer:n,lines:o,stripFinalNewline:s,verboseInfo:l,streamInfo:m}),h=(({subprocess:e,encoding:t,buffer:r,maxBuffer:n,lines:o,stripFinalNewline:i,verboseInfo:s,streamInfo:a})=>Ks({...Ys(e,r),fdNumber:"all",encoding:t,maxBuffer:n[1]+n[2],lines:o[1]||o[2],allMixed:Xs(e),stripFinalNewline:i,verboseInfo:s,streamInfo:a}))({subprocess:e,encoding:t,buffer:r,maxBuffer:n,lines:o,stripFinalNewline:s,verboseInfo:l,streamInfo:m}),g=Qs(d,e,m),y=Zs(c,m);try{return await Promise.race([Promise.all([{},Vo(f),Promise.all(b),h,...g,...y]),u,Js(e,p),...Ze(e,i,a,p)])}catch(e){return Promise.all([{error:e},f,Promise.all(b.map((e=>ks(e)))),ks(h),Promise.allSettled(g),Promise.allSettled(y)])}})({subprocess:e,options:t,context:d,verboseInfo:n,fileDescriptors:o,originalStreams:i,onInternalError:l,controller:c});c.abort(),l.resolve();const h=m.map(((e,r)=>Wn(e,t,r))),g=Wn(b,t,"all"),y=Ra({errorInfo:u,exitCode:p,signal:f,stdio:h,all:g,context:d,options:t,command:s,escapedCommand:a,startTime:r});return lr(y,n,t)},Ra=({errorInfo:e,exitCode:t,signal:r,stdio:n,all:o,context:i,options:s,command:a,escapedCommand:l,startTime:c})=>"error"in e?Zt({error:e.error,command:a,escapedCommand:l,timedOut:i.timedOut,isCanceled:!0===s.signal?.aborted,isMaxBuffer:e.error instanceof Ht,exitCode:t,signal:r,stdio:n,all:o,options:s,startTime:c,isSync:!1}):Xt({command:a,escapedCommand:l,stdio:n,all:o,options:s,startTime:c}),La=(e,t)=>{const r=Object.fromEntries(Object.entries(t).map((([t,r])=>[t,ka(t,e[t],r)])));return{...e,...r}},ka=(e,t,r)=>Ua.has(e)&&n(t)&&n(r)?{...t,...r}:r,Ua=new Set(["env",...Ee]),Pa=(e,t,r,n)=>{const o=(e,t,n)=>Pa(e,t,r,n),i=(...i)=>Fa({mapArguments:e,deepOptions:r,boundOptions:t,setBoundExeca:n,createNested:o},...i);return void 0!==n&&n(i,o,t),i},Fa=({mapArguments:e,deepOptions:t={},boundOptions:r={},setBoundExeca:o,createNested:i},s,...a)=>{if(n(s))return i(e,La(r,s),o);const{file:l,commandArguments:c,options:d,isSync:u}=Ga({mapArguments:e,firstArgument:s,nextArguments:a,deepOptions:t,boundOptions:r});return u?((e,t,r)=>{const{file:n,commandArguments:o,command:i,escapedCommand:s,startTime:a,verboseInfo:l,options:c,fileDescriptors:d}=((e,t,r)=>{const{command:n,escapedCommand:o,startTime:i,verboseInfo:s}=Ie(e,t,r);try{const a=Ko(r),{file:l,commandArguments:c,options:d}=st(e,t,a);Yo(d);const u=((e,t)=>Tn(Gn,e,0,!0))(d);return{file:l,commandArguments:c,command:n,escapedCommand:o,startTime:i,verboseInfo:s,options:d,fileDescriptors:u}}catch(e){throw or(e,i,s),e}})(e,t,r),u=Qo({file:n,commandArguments:o,options:c,command:i,escapedCommand:s,verboseInfo:l,fileDescriptors:d,startTime:a});return lr(u,l,c)})(l,c,d):((e,t,r,n)=>{const{file:o,commandArguments:i,command:s,escapedCommand:a,startTime:l,verboseInfo:c,options:d,fileDescriptors:u}=$a(e,t,r),{subprocess:p,promise:f}=Ca({file:o,commandArguments:i,options:d,startTime:l,verboseInfo:c,command:s,escapedCommand:a,fileDescriptors:u});return p.pipe=as.bind(void 0,{source:p,sourcePromise:f,boundOptions:{},createNested:n}),((e,t)=>{for(const[r,n]of Ba){const o=n.value.bind(t);Reflect.defineProperty(e,r,{...n,value:o})}})(p,f),nn.set(p,{options:d,fileDescriptors:u}),p})(l,c,d,i)},Ga=({mapArguments:e,firstArgument:t,nextArguments:r,deepOptions:n,boundOptions:o})=>{const i=(s=t,Array.isArray(s)&&Array.isArray(s.raw)?((e,t)=>{let r=[];for(const[n,o]of e.entries())r=S({templates:e,expressions:t,tokens:r,index:n,template:o});if(0===r.length)throw new TypeError("Template script must not be empty");const[n,...o]=r;return[n,o,{}]})(t,r):[t,...r]);var s;const[l,c,d]=a(...i),u=La(La(n,o),d),{file:p=l,commandArguments:f=c,options:m=u,isSync:b=!1}=e({file:l,commandArguments:c,options:u});return{file:p,commandArguments:f,options:m,isSync:b}},Wa=(e,t)=>{if(t.length>0)throw new TypeError(`The command and its arguments must be passed as a single string: ${e} ${t}.`);const r=[];for(const t of e.trim().split(_a)){const e=r.at(-1);e&&e.endsWith("\\")?r[r.length-1]=`${e.slice(0,-1)} ${t}`:r.push(t)}const[n,...o]=r;return{file:n,commandArguments:o}},_a=/ +/g,Va=({options:e})=>({...za(e),isSync:!0}),za=e=>({options:{...Ha(e),...e}}),Ha=({input:e,inputFile:t,stdio:r})=>void 0===e&&void 0===t&&void 0===r?{stdin:"inherit"}:{},qa=Pa((()=>({})));Pa((()=>({isSync:!0}))),Pa((({file:e,commandArguments:t})=>Wa(e,t))),Pa((({file:e,commandArguments:t})=>({...Wa(e,t),isSync:!0}))),Pa((({options:e})=>{if(!1===e.node)throw new TypeError('The "node" option cannot be false with `execaNode()`.');return{options:{...e,node:!0}}})),Pa((({options:e})=>za(e)),{},{preferLocal:!0},((e,t,r)=>{e.sync=t(Va,r),e.s=e.sync}))}}; -//# sourceMappingURL=495.main.js.map \ No newline at end of file +//# sourceMappingURL=495.bootstrap.js.map \ No newline at end of file diff --git a/dist/495.bootstrap.js.map b/dist/495.bootstrap.js.map new file mode 100644 index 0000000..142c7a6 --- /dev/null +++ b/dist/495.bootstrap.js.map @@ -0,0 +1 @@ +{"version":3,"file":"495.bootstrap.js","mappings":"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","sources":["webpack://@scaffoldly/awslambda-bootstrap/./node_modules/cross-spawn/index.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/cross-spawn/lib/enoent.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/cross-spawn/lib/parse.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/cross-spawn/lib/util/escape.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/cross-spawn/lib/util/readShebang.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/cross-spawn/lib/util/resolveCommand.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/cross-spawn/node_modules/isexe/index.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/cross-spawn/node_modules/isexe/mode.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/cross-spawn/node_modules/isexe/windows.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/cross-spawn/node_modules/which/which.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/path-key/index.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/shebang-command/index.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/shebang-regex/index.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/is-plain-obj/index.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/arguments/file-url.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/methods/parameters.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/utils/uint-array.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/methods/template.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/yoctocolors/index.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/verbose/info.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/figures/index.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/is-unicode-supported/index.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/verbose/log.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/return/duration.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/arguments/escape.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/utils/standard-stream.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/arguments/specific.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/arguments/command.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/verbose/start.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/npm-run-path/node_modules/path-key/index.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/npm-run-path/index.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/return/final-error.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/terminate/signal.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/terminate/kill.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/terminate/timeout.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/arguments/encoding-option.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/arguments/cwd.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/arguments/options.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/methods/node.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/human-signals/build/src/realtime.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/human-signals/build/src/core.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/human-signals/build/src/signals.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/human-signals/build/src/main.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/strip-final-newline/index.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/is-stream/index.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/@sec-ant/readable-stream/dist/ponyfill/asyncIterator.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/get-stream/source/stream.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/get-stream/source/contents.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/io/max-buffer.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/return/message.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/return/result.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/parse-ms/index.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/pretty-ms/index.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/verbose/error.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/verbose/complete.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/return/reject.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/stdio/type.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/transform/object-mode.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/transform/normalize.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/stdio/direction.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/stdio/stdio-option.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/arguments/fd-options.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/stdio/native.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/stdio/input-option.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/stdio/duplicate.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/stdio/handle.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/stdio/handle-sync.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/io/strip-newline.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/transform/split.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/transform/validate.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/transform/encoding-transform.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/transform/run-async.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/transform/run-sync.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/transform/generator.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/io/input-sync.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/verbose/output.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/io/output-sync.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/resolve/exit-async.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/resolve/exit-sync.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/methods/main-sync.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/resolve/all-sync.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/return/early-error.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/stdio/handle-async.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/@sindresorhus/merge-streams/index.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/utils/max-listeners.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/io/pipeline.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/io/output-async.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/signal-exit/dist/mjs/signals.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/signal-exit/dist/mjs/index.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/terminate/cleanup.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/pipe/pipe-arguments.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/pipe/throw.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/pipe/sequence.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/pipe/streaming.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/pipe/abort.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/pipe/setup.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/get-stream/source/utils.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/get-stream/source/array.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/get-stream/source/array-buffer.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/get-stream/source/string.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/io/iterate.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/io/contents.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/resolve/wait-stream.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/resolve/stdio.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/resolve/all-async.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/resolve/wait-subprocess.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/utils/deferred.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/convert/concurrent.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/convert/shared.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/convert/readable.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/convert/writable.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/convert/duplex.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/convert/iterable.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/convert/add.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/methods/promise.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/methods/main-async.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/methods/bind.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/methods/create.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/methods/command.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/methods/script.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/index.js"],"sourcesContent":["'use strict';\n\nconst cp = require('child_process');\nconst parse = require('./lib/parse');\nconst enoent = require('./lib/enoent');\n\nfunction spawn(command, args, options) {\n // Parse the arguments\n const parsed = parse(command, args, options);\n\n // Spawn the child process\n const spawned = cp.spawn(parsed.command, parsed.args, parsed.options);\n\n // Hook into child process \"exit\" event to emit an error if the command\n // does not exists, see: https://github.com/IndigoUnited/node-cross-spawn/issues/16\n enoent.hookChildProcess(spawned, parsed);\n\n return spawned;\n}\n\nfunction spawnSync(command, args, options) {\n // Parse the arguments\n const parsed = parse(command, args, options);\n\n // Spawn the child process\n const result = cp.spawnSync(parsed.command, parsed.args, parsed.options);\n\n // Analyze if the command does not exist, see: https://github.com/IndigoUnited/node-cross-spawn/issues/16\n result.error = result.error || enoent.verifyENOENTSync(result.status, parsed);\n\n return result;\n}\n\nmodule.exports = spawn;\nmodule.exports.spawn = spawn;\nmodule.exports.sync = spawnSync;\n\nmodule.exports._parse = parse;\nmodule.exports._enoent = enoent;\n","'use strict';\n\nconst isWin = process.platform === 'win32';\n\nfunction notFoundError(original, syscall) {\n return Object.assign(new Error(`${syscall} ${original.command} ENOENT`), {\n code: 'ENOENT',\n errno: 'ENOENT',\n syscall: `${syscall} ${original.command}`,\n path: original.command,\n spawnargs: original.args,\n });\n}\n\nfunction hookChildProcess(cp, parsed) {\n if (!isWin) {\n return;\n }\n\n const originalEmit = cp.emit;\n\n cp.emit = function (name, arg1) {\n // If emitting \"exit\" event and exit code is 1, we need to check if\n // the command exists and emit an \"error\" instead\n // See https://github.com/IndigoUnited/node-cross-spawn/issues/16\n if (name === 'exit') {\n const err = verifyENOENT(arg1, parsed, 'spawn');\n\n if (err) {\n return originalEmit.call(cp, 'error', err);\n }\n }\n\n return originalEmit.apply(cp, arguments); // eslint-disable-line prefer-rest-params\n };\n}\n\nfunction verifyENOENT(status, parsed) {\n if (isWin && status === 1 && !parsed.file) {\n return notFoundError(parsed.original, 'spawn');\n }\n\n return null;\n}\n\nfunction verifyENOENTSync(status, parsed) {\n if (isWin && status === 1 && !parsed.file) {\n return notFoundError(parsed.original, 'spawnSync');\n }\n\n return null;\n}\n\nmodule.exports = {\n hookChildProcess,\n verifyENOENT,\n verifyENOENTSync,\n notFoundError,\n};\n","'use strict';\n\nconst path = require('path');\nconst resolveCommand = require('./util/resolveCommand');\nconst escape = require('./util/escape');\nconst readShebang = require('./util/readShebang');\n\nconst isWin = process.platform === 'win32';\nconst isExecutableRegExp = /\\.(?:com|exe)$/i;\nconst isCmdShimRegExp = /node_modules[\\\\/].bin[\\\\/][^\\\\/]+\\.cmd$/i;\n\nfunction detectShebang(parsed) {\n parsed.file = resolveCommand(parsed);\n\n const shebang = parsed.file && readShebang(parsed.file);\n\n if (shebang) {\n parsed.args.unshift(parsed.file);\n parsed.command = shebang;\n\n return resolveCommand(parsed);\n }\n\n return parsed.file;\n}\n\nfunction parseNonShell(parsed) {\n if (!isWin) {\n return parsed;\n }\n\n // Detect & add support for shebangs\n const commandFile = detectShebang(parsed);\n\n // We don't need a shell if the command filename is an executable\n const needsShell = !isExecutableRegExp.test(commandFile);\n\n // If a shell is required, use cmd.exe and take care of escaping everything correctly\n // Note that `forceShell` is an hidden option used only in tests\n if (parsed.options.forceShell || needsShell) {\n // Need to double escape meta chars if the command is a cmd-shim located in `node_modules/.bin/`\n // The cmd-shim simply calls execute the package bin file with NodeJS, proxying any argument\n // Because the escape of metachars with ^ gets interpreted when the cmd.exe is first called,\n // we need to double escape them\n const needsDoubleEscapeMetaChars = isCmdShimRegExp.test(commandFile);\n\n // Normalize posix paths into OS compatible paths (e.g.: foo/bar -> foo\\bar)\n // This is necessary otherwise it will always fail with ENOENT in those cases\n parsed.command = path.normalize(parsed.command);\n\n // Escape command & arguments\n parsed.command = escape.command(parsed.command);\n parsed.args = parsed.args.map((arg) => escape.argument(arg, needsDoubleEscapeMetaChars));\n\n const shellCommand = [parsed.command].concat(parsed.args).join(' ');\n\n parsed.args = ['/d', '/s', '/c', `\"${shellCommand}\"`];\n parsed.command = process.env.comspec || 'cmd.exe';\n parsed.options.windowsVerbatimArguments = true; // Tell node's spawn that the arguments are already escaped\n }\n\n return parsed;\n}\n\nfunction parse(command, args, options) {\n // Normalize arguments, similar to nodejs\n if (args && !Array.isArray(args)) {\n options = args;\n args = null;\n }\n\n args = args ? args.slice(0) : []; // Clone array to avoid changing the original\n options = Object.assign({}, options); // Clone object to avoid changing the original\n\n // Build our parsed object\n const parsed = {\n command,\n args,\n options,\n file: undefined,\n original: {\n command,\n args,\n },\n };\n\n // Delegate further parsing to shell or non-shell\n return options.shell ? parsed : parseNonShell(parsed);\n}\n\nmodule.exports = parse;\n","'use strict';\n\n// See http://www.robvanderwoude.com/escapechars.php\nconst metaCharsRegExp = /([()\\][%!^\"`<>&|;, *?])/g;\n\nfunction escapeCommand(arg) {\n // Escape meta chars\n arg = arg.replace(metaCharsRegExp, '^$1');\n\n return arg;\n}\n\nfunction escapeArgument(arg, doubleEscapeMetaChars) {\n // Convert to string\n arg = `${arg}`;\n\n // Algorithm below is based on https://qntm.org/cmd\n\n // Sequence of backslashes followed by a double quote:\n // double up all the backslashes and escape the double quote\n arg = arg.replace(/(\\\\*)\"/g, '$1$1\\\\\"');\n\n // Sequence of backslashes followed by the end of the string\n // (which will become a double quote later):\n // double up all the backslashes\n arg = arg.replace(/(\\\\*)$/, '$1$1');\n\n // All other backslashes occur literally\n\n // Quote the whole thing:\n arg = `\"${arg}\"`;\n\n // Escape meta chars\n arg = arg.replace(metaCharsRegExp, '^$1');\n\n // Double escape meta chars if necessary\n if (doubleEscapeMetaChars) {\n arg = arg.replace(metaCharsRegExp, '^$1');\n }\n\n return arg;\n}\n\nmodule.exports.command = escapeCommand;\nmodule.exports.argument = escapeArgument;\n","'use strict';\n\nconst fs = require('fs');\nconst shebangCommand = require('shebang-command');\n\nfunction readShebang(command) {\n // Read the first 150 bytes from the file\n const size = 150;\n const buffer = Buffer.alloc(size);\n\n let fd;\n\n try {\n fd = fs.openSync(command, 'r');\n fs.readSync(fd, buffer, 0, size, 0);\n fs.closeSync(fd);\n } catch (e) { /* Empty */ }\n\n // Attempt to extract shebang (null is returned if not a shebang)\n return shebangCommand(buffer.toString());\n}\n\nmodule.exports = readShebang;\n","'use strict';\n\nconst path = require('path');\nconst which = require('which');\nconst getPathKey = require('path-key');\n\nfunction resolveCommandAttempt(parsed, withoutPathExt) {\n const env = parsed.options.env || process.env;\n const cwd = process.cwd();\n const hasCustomCwd = parsed.options.cwd != null;\n // Worker threads do not have process.chdir()\n const shouldSwitchCwd = hasCustomCwd && process.chdir !== undefined && !process.chdir.disabled;\n\n // If a custom `cwd` was specified, we need to change the process cwd\n // because `which` will do stat calls but does not support a custom cwd\n if (shouldSwitchCwd) {\n try {\n process.chdir(parsed.options.cwd);\n } catch (err) {\n /* Empty */\n }\n }\n\n let resolved;\n\n try {\n resolved = which.sync(parsed.command, {\n path: env[getPathKey({ env })],\n pathExt: withoutPathExt ? path.delimiter : undefined,\n });\n } catch (e) {\n /* Empty */\n } finally {\n if (shouldSwitchCwd) {\n process.chdir(cwd);\n }\n }\n\n // If we successfully resolved, ensure that an absolute path is returned\n // Note that when a custom `cwd` was used, we need to resolve to an absolute path based on it\n if (resolved) {\n resolved = path.resolve(hasCustomCwd ? parsed.options.cwd : '', resolved);\n }\n\n return resolved;\n}\n\nfunction resolveCommand(parsed) {\n return resolveCommandAttempt(parsed) || resolveCommandAttempt(parsed, true);\n}\n\nmodule.exports = resolveCommand;\n","var fs = require('fs')\nvar core\nif (process.platform === 'win32' || global.TESTING_WINDOWS) {\n core = require('./windows.js')\n} else {\n core = require('./mode.js')\n}\n\nmodule.exports = isexe\nisexe.sync = sync\n\nfunction isexe (path, options, cb) {\n if (typeof options === 'function') {\n cb = options\n options = {}\n }\n\n if (!cb) {\n if (typeof Promise !== 'function') {\n throw new TypeError('callback not provided')\n }\n\n return new Promise(function (resolve, reject) {\n isexe(path, options || {}, function (er, is) {\n if (er) {\n reject(er)\n } else {\n resolve(is)\n }\n })\n })\n }\n\n core(path, options || {}, function (er, is) {\n // ignore EACCES because that just means we aren't allowed to run it\n if (er) {\n if (er.code === 'EACCES' || options && options.ignoreErrors) {\n er = null\n is = false\n }\n }\n cb(er, is)\n })\n}\n\nfunction sync (path, options) {\n // my kingdom for a filtered catch\n try {\n return core.sync(path, options || {})\n } catch (er) {\n if (options && options.ignoreErrors || er.code === 'EACCES') {\n return false\n } else {\n throw er\n }\n }\n}\n","module.exports = isexe\nisexe.sync = sync\n\nvar fs = require('fs')\n\nfunction isexe (path, options, cb) {\n fs.stat(path, function (er, stat) {\n cb(er, er ? false : checkStat(stat, options))\n })\n}\n\nfunction sync (path, options) {\n return checkStat(fs.statSync(path), options)\n}\n\nfunction checkStat (stat, options) {\n return stat.isFile() && checkMode(stat, options)\n}\n\nfunction checkMode (stat, options) {\n var mod = stat.mode\n var uid = stat.uid\n var gid = stat.gid\n\n var myUid = options.uid !== undefined ?\n options.uid : process.getuid && process.getuid()\n var myGid = options.gid !== undefined ?\n options.gid : process.getgid && process.getgid()\n\n var u = parseInt('100', 8)\n var g = parseInt('010', 8)\n var o = parseInt('001', 8)\n var ug = u | g\n\n var ret = (mod & o) ||\n (mod & g) && gid === myGid ||\n (mod & u) && uid === myUid ||\n (mod & ug) && myUid === 0\n\n return ret\n}\n","module.exports = isexe\nisexe.sync = sync\n\nvar fs = require('fs')\n\nfunction checkPathExt (path, options) {\n var pathext = options.pathExt !== undefined ?\n options.pathExt : process.env.PATHEXT\n\n if (!pathext) {\n return true\n }\n\n pathext = pathext.split(';')\n if (pathext.indexOf('') !== -1) {\n return true\n }\n for (var i = 0; i < pathext.length; i++) {\n var p = pathext[i].toLowerCase()\n if (p && path.substr(-p.length).toLowerCase() === p) {\n return true\n }\n }\n return false\n}\n\nfunction checkStat (stat, path, options) {\n if (!stat.isSymbolicLink() && !stat.isFile()) {\n return false\n }\n return checkPathExt(path, options)\n}\n\nfunction isexe (path, options, cb) {\n fs.stat(path, function (er, stat) {\n cb(er, er ? false : checkStat(stat, path, options))\n })\n}\n\nfunction sync (path, options) {\n return checkStat(fs.statSync(path), path, options)\n}\n","const isWindows = process.platform === 'win32' ||\n process.env.OSTYPE === 'cygwin' ||\n process.env.OSTYPE === 'msys'\n\nconst path = require('path')\nconst COLON = isWindows ? ';' : ':'\nconst isexe = require('isexe')\n\nconst getNotFoundError = (cmd) =>\n Object.assign(new Error(`not found: ${cmd}`), { code: 'ENOENT' })\n\nconst getPathInfo = (cmd, opt) => {\n const colon = opt.colon || COLON\n\n // If it has a slash, then we don't bother searching the pathenv.\n // just check the file itself, and that's it.\n const pathEnv = cmd.match(/\\//) || isWindows && cmd.match(/\\\\/) ? ['']\n : (\n [\n // windows always checks the cwd first\n ...(isWindows ? [process.cwd()] : []),\n ...(opt.path || process.env.PATH ||\n /* istanbul ignore next: very unusual */ '').split(colon),\n ]\n )\n const pathExtExe = isWindows\n ? opt.pathExt || process.env.PATHEXT || '.EXE;.CMD;.BAT;.COM'\n : ''\n const pathExt = isWindows ? pathExtExe.split(colon) : ['']\n\n if (isWindows) {\n if (cmd.indexOf('.') !== -1 && pathExt[0] !== '')\n pathExt.unshift('')\n }\n\n return {\n pathEnv,\n pathExt,\n pathExtExe,\n }\n}\n\nconst which = (cmd, opt, cb) => {\n if (typeof opt === 'function') {\n cb = opt\n opt = {}\n }\n if (!opt)\n opt = {}\n\n const { pathEnv, pathExt, pathExtExe } = getPathInfo(cmd, opt)\n const found = []\n\n const step = i => new Promise((resolve, reject) => {\n if (i === pathEnv.length)\n return opt.all && found.length ? resolve(found)\n : reject(getNotFoundError(cmd))\n\n const ppRaw = pathEnv[i]\n const pathPart = /^\".*\"$/.test(ppRaw) ? ppRaw.slice(1, -1) : ppRaw\n\n const pCmd = path.join(pathPart, cmd)\n const p = !pathPart && /^\\.[\\\\\\/]/.test(cmd) ? cmd.slice(0, 2) + pCmd\n : pCmd\n\n resolve(subStep(p, i, 0))\n })\n\n const subStep = (p, i, ii) => new Promise((resolve, reject) => {\n if (ii === pathExt.length)\n return resolve(step(i + 1))\n const ext = pathExt[ii]\n isexe(p + ext, { pathExt: pathExtExe }, (er, is) => {\n if (!er && is) {\n if (opt.all)\n found.push(p + ext)\n else\n return resolve(p + ext)\n }\n return resolve(subStep(p, i, ii + 1))\n })\n })\n\n return cb ? step(0).then(res => cb(null, res), cb) : step(0)\n}\n\nconst whichSync = (cmd, opt) => {\n opt = opt || {}\n\n const { pathEnv, pathExt, pathExtExe } = getPathInfo(cmd, opt)\n const found = []\n\n for (let i = 0; i < pathEnv.length; i ++) {\n const ppRaw = pathEnv[i]\n const pathPart = /^\".*\"$/.test(ppRaw) ? ppRaw.slice(1, -1) : ppRaw\n\n const pCmd = path.join(pathPart, cmd)\n const p = !pathPart && /^\\.[\\\\\\/]/.test(cmd) ? cmd.slice(0, 2) + pCmd\n : pCmd\n\n for (let j = 0; j < pathExt.length; j ++) {\n const cur = p + pathExt[j]\n try {\n const is = isexe.sync(cur, { pathExt: pathExtExe })\n if (is) {\n if (opt.all)\n found.push(cur)\n else\n return cur\n }\n } catch (ex) {}\n }\n }\n\n if (opt.all && found.length)\n return found\n\n if (opt.nothrow)\n return null\n\n throw getNotFoundError(cmd)\n}\n\nmodule.exports = which\nwhich.sync = whichSync\n","'use strict';\n\nconst pathKey = (options = {}) => {\n\tconst environment = options.env || process.env;\n\tconst platform = options.platform || process.platform;\n\n\tif (platform !== 'win32') {\n\t\treturn 'PATH';\n\t}\n\n\treturn Object.keys(environment).reverse().find(key => key.toUpperCase() === 'PATH') || 'Path';\n};\n\nmodule.exports = pathKey;\n// TODO: Remove this for the next major release\nmodule.exports.default = pathKey;\n","'use strict';\nconst shebangRegex = require('shebang-regex');\n\nmodule.exports = (string = '') => {\n\tconst match = string.match(shebangRegex);\n\n\tif (!match) {\n\t\treturn null;\n\t}\n\n\tconst [path, argument] = match[0].replace(/#! ?/, '').split(' ');\n\tconst binary = path.split('/').pop();\n\n\tif (binary === 'env') {\n\t\treturn argument;\n\t}\n\n\treturn argument ? `${binary} ${argument}` : binary;\n};\n","'use strict';\nmodule.exports = /^#!(.*)/;\n","export default function isPlainObject(value) {\n\tif (typeof value !== 'object' || value === null) {\n\t\treturn false;\n\t}\n\n\tconst prototype = Object.getPrototypeOf(value);\n\treturn (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in value) && !(Symbol.iterator in value);\n}\n","import {fileURLToPath} from 'node:url';\n\n// Allow some arguments/options to be either a file path string or a file URL\nexport const safeNormalizeFileUrl = (file, name) => {\n\tconst fileString = normalizeFileUrl(file);\n\n\tif (typeof fileString !== 'string') {\n\t\tthrow new TypeError(`${name} must be a string or a file URL: ${fileString}.`);\n\t}\n\n\treturn fileString;\n};\n\n// Same but also allows other values, e.g. `boolean` for the `shell` option\nexport const normalizeFileUrl = file => file instanceof URL ? fileURLToPath(file) : file;\n","import isPlainObject from 'is-plain-obj';\nimport {safeNormalizeFileUrl} from '../arguments/file-url.js';\n\n// The command `arguments` and `options` are both optional.\n// This also does basic validation on them and on the command file.\nexport const normalizeParameters = (rawFile, rawArguments = [], rawOptions = {}) => {\n\tconst filePath = safeNormalizeFileUrl(rawFile, 'First argument');\n\tconst [commandArguments, options] = isPlainObject(rawArguments)\n\t\t? [[], rawArguments]\n\t\t: [rawArguments, rawOptions];\n\n\tif (!Array.isArray(commandArguments)) {\n\t\tthrow new TypeError(`Second argument must be either an array of arguments or an options object: ${commandArguments}`);\n\t}\n\n\tif (commandArguments.some(commandArgument => typeof commandArgument === 'object' && commandArgument !== null)) {\n\t\tthrow new TypeError(`Second argument must be an array of strings: ${commandArguments}`);\n\t}\n\n\tconst normalizedArguments = commandArguments.map(String);\n\tconst nullByteArgument = normalizedArguments.find(normalizedArgument => normalizedArgument.includes('\\0'));\n\tif (nullByteArgument !== undefined) {\n\t\tthrow new TypeError(`Arguments cannot contain null bytes (\"\\\\0\"): ${nullByteArgument}`);\n\t}\n\n\tif (!isPlainObject(options)) {\n\t\tthrow new TypeError(`Last argument must be an options object: ${options}`);\n\t}\n\n\treturn [filePath, normalizedArguments, options];\n};\n","import {StringDecoder} from 'node:string_decoder';\n\nconst {toString: objectToString} = Object.prototype;\n\nexport const isArrayBuffer = value => objectToString.call(value) === '[object ArrayBuffer]';\n\n// Is either Uint8Array or Buffer\nexport const isUint8Array = value => objectToString.call(value) === '[object Uint8Array]';\n\nexport const bufferToUint8Array = buffer => new Uint8Array(buffer.buffer, buffer.byteOffset, buffer.byteLength);\n\nconst textEncoder = new TextEncoder();\nconst stringToUint8Array = string => textEncoder.encode(string);\n\nconst textDecoder = new TextDecoder();\nexport const uint8ArrayToString = uint8Array => textDecoder.decode(uint8Array);\n\nexport const joinToString = (uint8ArraysOrStrings, encoding) => {\n\tconst strings = uint8ArraysToStrings(uint8ArraysOrStrings, encoding);\n\treturn strings.join('');\n};\n\nconst uint8ArraysToStrings = (uint8ArraysOrStrings, encoding) => {\n\tif (encoding === 'utf8' && uint8ArraysOrStrings.every(uint8ArrayOrString => typeof uint8ArrayOrString === 'string')) {\n\t\treturn uint8ArraysOrStrings;\n\t}\n\n\tconst decoder = new StringDecoder(encoding);\n\tconst strings = uint8ArraysOrStrings\n\t\t.map(uint8ArrayOrString => typeof uint8ArrayOrString === 'string'\n\t\t\t? stringToUint8Array(uint8ArrayOrString)\n\t\t\t: uint8ArrayOrString)\n\t\t.map(uint8Array => decoder.write(uint8Array));\n\tconst finalString = decoder.end();\n\treturn finalString === '' ? strings : [...strings, finalString];\n};\n\nexport const joinToUint8Array = uint8ArraysOrStrings => {\n\tif (uint8ArraysOrStrings.length === 1 && isUint8Array(uint8ArraysOrStrings[0])) {\n\t\treturn uint8ArraysOrStrings[0];\n\t}\n\n\treturn concatUint8Arrays(stringsToUint8Arrays(uint8ArraysOrStrings));\n};\n\nconst stringsToUint8Arrays = uint8ArraysOrStrings => uint8ArraysOrStrings.map(uint8ArrayOrString => typeof uint8ArrayOrString === 'string'\n\t? stringToUint8Array(uint8ArrayOrString)\n\t: uint8ArrayOrString);\n\nexport const concatUint8Arrays = uint8Arrays => {\n\tconst result = new Uint8Array(getJoinLength(uint8Arrays));\n\n\tlet index = 0;\n\tfor (const uint8Array of uint8Arrays) {\n\t\tresult.set(uint8Array, index);\n\t\tindex += uint8Array.length;\n\t}\n\n\treturn result;\n};\n\nconst getJoinLength = uint8Arrays => {\n\tlet joinLength = 0;\n\tfor (const uint8Array of uint8Arrays) {\n\t\tjoinLength += uint8Array.length;\n\t}\n\n\treturn joinLength;\n};\n","import {ChildProcess} from 'node:child_process';\nimport isPlainObject from 'is-plain-obj';\nimport {isUint8Array, uint8ArrayToString} from '../utils/uint-array.js';\n\n// Check whether the template string syntax is being used\nexport const isTemplateString = templates => Array.isArray(templates) && Array.isArray(templates.raw);\n\n// Convert execa`file ...commandArguments` to execa(file, commandArguments)\nexport const parseTemplates = (templates, expressions) => {\n\tlet tokens = [];\n\n\tfor (const [index, template] of templates.entries()) {\n\t\ttokens = parseTemplate({\n\t\t\ttemplates,\n\t\t\texpressions,\n\t\t\ttokens,\n\t\t\tindex,\n\t\t\ttemplate,\n\t\t});\n\t}\n\n\tif (tokens.length === 0) {\n\t\tthrow new TypeError('Template script must not be empty');\n\t}\n\n\tconst [file, ...commandArguments] = tokens;\n\treturn [file, commandArguments, {}];\n};\n\nconst parseTemplate = ({templates, expressions, tokens, index, template}) => {\n\tif (template === undefined) {\n\t\tthrow new TypeError(`Invalid backslash sequence: ${templates.raw[index]}`);\n\t}\n\n\tconst {nextTokens, leadingWhitespaces, trailingWhitespaces} = splitByWhitespaces(template, templates.raw[index]);\n\tconst newTokens = concatTokens(tokens, nextTokens, leadingWhitespaces);\n\n\tif (index === expressions.length) {\n\t\treturn newTokens;\n\t}\n\n\tconst expression = expressions[index];\n\tconst expressionTokens = Array.isArray(expression)\n\t\t? expression.map(expression => parseExpression(expression))\n\t\t: [parseExpression(expression)];\n\treturn concatTokens(newTokens, expressionTokens, trailingWhitespaces);\n};\n\n// Like `string.split(/[ \\t\\r\\n]+/)` except newlines and tabs are:\n// - ignored when input as a backslash sequence like: `echo foo\\n bar`\n// - not ignored when input directly\n// The only way to distinguish those in JavaScript is to use a tagged template and compare:\n// - the first array argument, which does not escape backslash sequences\n// - its `raw` property, which escapes them\nconst splitByWhitespaces = (template, rawTemplate) => {\n\tif (rawTemplate.length === 0) {\n\t\treturn {nextTokens: [], leadingWhitespaces: false, trailingWhitespaces: false};\n\t}\n\n\tconst nextTokens = [];\n\tlet templateStart = 0;\n\tconst leadingWhitespaces = DELIMITERS.has(rawTemplate[0]);\n\n\tfor (\n\t\tlet templateIndex = 0, rawIndex = 0;\n\t\ttemplateIndex < template.length;\n\t\ttemplateIndex += 1, rawIndex += 1\n\t) {\n\t\tconst rawCharacter = rawTemplate[rawIndex];\n\t\tif (DELIMITERS.has(rawCharacter)) {\n\t\t\tif (templateStart !== templateIndex) {\n\t\t\t\tnextTokens.push(template.slice(templateStart, templateIndex));\n\t\t\t}\n\n\t\t\ttemplateStart = templateIndex + 1;\n\t\t} else if (rawCharacter === '\\\\') {\n\t\t\tconst nextRawCharacter = rawTemplate[rawIndex + 1];\n\t\t\tif (nextRawCharacter === 'u' && rawTemplate[rawIndex + 2] === '{') {\n\t\t\t\trawIndex = rawTemplate.indexOf('}', rawIndex + 3);\n\t\t\t} else {\n\t\t\t\trawIndex += ESCAPE_LENGTH[nextRawCharacter] ?? 1;\n\t\t\t}\n\t\t}\n\t}\n\n\tconst trailingWhitespaces = templateStart === template.length;\n\tif (!trailingWhitespaces) {\n\t\tnextTokens.push(template.slice(templateStart));\n\t}\n\n\treturn {nextTokens, leadingWhitespaces, trailingWhitespaces};\n};\n\nconst DELIMITERS = new Set([' ', '\\t', '\\r', '\\n']);\n\n// Number of characters in backslash escape sequences: \\0 \\xXX or \\uXXXX\n// \\cX is allowed in RegExps but not in strings\n// Octal sequences are not allowed in strict mode\nconst ESCAPE_LENGTH = {x: 3, u: 5};\n\nconst concatTokens = (tokens, nextTokens, isSeparated) => isSeparated\n\t|| tokens.length === 0\n\t|| nextTokens.length === 0\n\t? [...tokens, ...nextTokens]\n\t: [\n\t\t...tokens.slice(0, -1),\n\t\t`${tokens.at(-1)}${nextTokens[0]}`,\n\t\t...nextTokens.slice(1),\n\t];\n\n// Handle `${expression}` inside the template string syntax\nconst parseExpression = expression => {\n\tconst typeOfExpression = typeof expression;\n\n\tif (typeOfExpression === 'string') {\n\t\treturn expression;\n\t}\n\n\tif (typeOfExpression === 'number') {\n\t\treturn String(expression);\n\t}\n\n\tif (isPlainObject(expression) && ('stdout' in expression || 'isMaxBuffer' in expression)) {\n\t\treturn getSubprocessResult(expression);\n\t}\n\n\tif (expression instanceof ChildProcess || Object.prototype.toString.call(expression) === '[object Promise]') {\n\t\t// eslint-disable-next-line no-template-curly-in-string\n\t\tthrow new TypeError('Unexpected subprocess in template expression. Please use ${await subprocess} instead of ${subprocess}.');\n\t}\n\n\tthrow new TypeError(`Unexpected \"${typeOfExpression}\" in template expression`);\n};\n\nconst getSubprocessResult = ({stdout}) => {\n\tif (typeof stdout === 'string') {\n\t\treturn stdout;\n\t}\n\n\tif (isUint8Array(stdout)) {\n\t\treturn uint8ArrayToString(stdout);\n\t}\n\n\tif (stdout === undefined) {\n\t\tthrow new TypeError('Missing result.stdout in template expression. This is probably due to the previous subprocess\\' \"stdout\" option.');\n\t}\n\n\tthrow new TypeError(`Unexpected \"${typeof stdout}\" stdout in template expression`);\n};\n","import tty from 'node:tty';\n\n// eslint-disable-next-line no-warning-comments\n// TODO: Use a better method when it's added to Node.js (https://github.com/nodejs/node/pull/40240)\nconst hasColors = tty.WriteStream.prototype.hasColors();\n\nconst format = (open, close) => {\n\tif (!hasColors) {\n\t\treturn input => input;\n\t}\n\n\tconst openCode = `\\u001B[${open}m`;\n\tconst closeCode = `\\u001B[${close}m`;\n\n\treturn input => {\n\t\tconst string = input + ''; // eslint-disable-line no-implicit-coercion -- This is faster.\n\t\tlet index = string.indexOf(closeCode);\n\n\t\tif (index === -1) {\n\t\t\t// Note: Intentionally not using string interpolation for performance reasons.\n\t\t\treturn openCode + string + closeCode;\n\t\t}\n\n\t\t// Handle nested colors.\n\n\t\t// We could have done this, but it's too slow (as of Node.js 22).\n\t\t// return openCode + string.replaceAll(closeCode, openCode) + closeCode;\n\n\t\tlet result = openCode;\n\t\tlet lastIndex = 0;\n\n\t\twhile (index !== -1) {\n\t\t\tresult += string.slice(lastIndex, index) + openCode;\n\t\t\tlastIndex = index + closeCode.length;\n\t\t\tindex = string.indexOf(closeCode, lastIndex);\n\t\t}\n\n\t\tresult += string.slice(lastIndex) + closeCode;\n\n\t\treturn result;\n\t};\n};\n\nexport const reset = format(0, 0);\nexport const bold = format(1, 22);\nexport const dim = format(2, 22);\nexport const italic = format(3, 23);\nexport const underline = format(4, 24);\nexport const overline = format(53, 55);\nexport const inverse = format(7, 27);\nexport const hidden = format(8, 28);\nexport const strikethrough = format(9, 29);\n\nexport const black = format(30, 39);\nexport const red = format(31, 39);\nexport const green = format(32, 39);\nexport const yellow = format(33, 39);\nexport const blue = format(34, 39);\nexport const magenta = format(35, 39);\nexport const cyan = format(36, 39);\nexport const white = format(37, 39);\nexport const gray = format(90, 39);\n\nexport const bgBlack = format(40, 49);\nexport const bgRed = format(41, 49);\nexport const bgGreen = format(42, 49);\nexport const bgYellow = format(43, 49);\nexport const bgBlue = format(44, 49);\nexport const bgMagenta = format(45, 49);\nexport const bgCyan = format(46, 49);\nexport const bgWhite = format(47, 49);\nexport const bgGray = format(100, 49);\n\nexport const redBright = format(91, 39);\nexport const greenBright = format(92, 39);\nexport const yellowBright = format(93, 39);\nexport const blueBright = format(94, 39);\nexport const magentaBright = format(95, 39);\nexport const cyanBright = format(96, 39);\nexport const whiteBright = format(97, 39);\n\nexport const bgRedBright = format(101, 49);\nexport const bgGreenBright = format(102, 49);\nexport const bgYellowBright = format(103, 49);\nexport const bgBlueBright = format(104, 49);\nexport const bgMagentaBright = format(105, 49);\nexport const bgCyanBright = format(106, 49);\nexport const bgWhiteBright = format(107, 49);\n","import {debuglog} from 'node:util';\n\n// Default value for the `verbose` option\nexport const verboseDefault = debuglog('execa').enabled ? 'full' : 'none';\n\n// Information computed before spawning, used by the `verbose` option\nexport const getVerboseInfo = verbose => {\n\tconst verboseId = isVerbose(verbose) ? VERBOSE_ID++ : undefined;\n\tvalidateVerbose(verbose);\n\treturn {verbose, verboseId};\n};\n\n// Prepending the `pid` is useful when multiple commands print their output at the same time.\n// However, we cannot use the real PID since this is not available with `child_process.spawnSync()`.\n// Also, we cannot use the real PID if we want to print it before `child_process.spawn()` is run.\n// As a pro, it is shorter than a normal PID and never re-uses the same id.\n// As a con, it cannot be used to send signals.\nlet VERBOSE_ID = 0n;\n\n// The `verbose` option can have different values for `stdout`/`stderr`\nexport const isVerbose = verbose => verbose.some(fdVerbose => fdVerbose !== 'none');\n\nconst validateVerbose = verbose => {\n\tfor (const verboseItem of verbose) {\n\t\tif (verboseItem === false) {\n\t\t\tthrow new TypeError('The \"verbose: false\" option was renamed to \"verbose: \\'none\\'\".');\n\t\t}\n\n\t\tif (verboseItem === true) {\n\t\t\tthrow new TypeError('The \"verbose: true\" option was renamed to \"verbose: \\'short\\'\".');\n\t\t}\n\n\t\tif (!VERBOSE_VALUES.has(verboseItem)) {\n\t\t\tconst allowedValues = [...VERBOSE_VALUES].map(allowedValue => `'${allowedValue}'`).join(', ');\n\t\t\tthrow new TypeError(`The \"verbose\" option must not be ${verboseItem}. Allowed values are: ${allowedValues}.`);\n\t\t}\n\t}\n};\n\nconst VERBOSE_VALUES = new Set(['none', 'short', 'full']);\n","import isUnicodeSupported from 'is-unicode-supported';\n\nconst common = {\n\tcircleQuestionMark: '(?)',\n\tquestionMarkPrefix: '(?)',\n\tsquare: '█',\n\tsquareDarkShade: '▓',\n\tsquareMediumShade: '▒',\n\tsquareLightShade: '░',\n\tsquareTop: '▀',\n\tsquareBottom: '▄',\n\tsquareLeft: '▌',\n\tsquareRight: '▐',\n\tsquareCenter: '■',\n\tbullet: '●',\n\tdot: '․',\n\tellipsis: '…',\n\tpointerSmall: '›',\n\ttriangleUp: '▲',\n\ttriangleUpSmall: '▴',\n\ttriangleDown: '▼',\n\ttriangleDownSmall: '▾',\n\ttriangleLeftSmall: '◂',\n\ttriangleRightSmall: '▸',\n\thome: '⌂',\n\theart: '♥',\n\tmusicNote: '♪',\n\tmusicNoteBeamed: '♫',\n\tarrowUp: '↑',\n\tarrowDown: '↓',\n\tarrowLeft: '←',\n\tarrowRight: '→',\n\tarrowLeftRight: '↔',\n\tarrowUpDown: '↕',\n\talmostEqual: '≈',\n\tnotEqual: '≠',\n\tlessOrEqual: '≤',\n\tgreaterOrEqual: '≥',\n\tidentical: '≡',\n\tinfinity: '∞',\n\tsubscriptZero: '₀',\n\tsubscriptOne: '₁',\n\tsubscriptTwo: '₂',\n\tsubscriptThree: '₃',\n\tsubscriptFour: '₄',\n\tsubscriptFive: '₅',\n\tsubscriptSix: '₆',\n\tsubscriptSeven: '₇',\n\tsubscriptEight: '₈',\n\tsubscriptNine: '₉',\n\toneHalf: '½',\n\toneThird: '⅓',\n\toneQuarter: '¼',\n\toneFifth: '⅕',\n\toneSixth: '⅙',\n\toneEighth: '⅛',\n\ttwoThirds: '⅔',\n\ttwoFifths: '⅖',\n\tthreeQuarters: '¾',\n\tthreeFifths: '⅗',\n\tthreeEighths: '⅜',\n\tfourFifths: '⅘',\n\tfiveSixths: '⅚',\n\tfiveEighths: '⅝',\n\tsevenEighths: '⅞',\n\tline: '─',\n\tlineBold: '━',\n\tlineDouble: '═',\n\tlineDashed0: '┄',\n\tlineDashed1: '┅',\n\tlineDashed2: '┈',\n\tlineDashed3: '┉',\n\tlineDashed4: '╌',\n\tlineDashed5: '╍',\n\tlineDashed6: '╴',\n\tlineDashed7: '╶',\n\tlineDashed8: '╸',\n\tlineDashed9: '╺',\n\tlineDashed10: '╼',\n\tlineDashed11: '╾',\n\tlineDashed12: '−',\n\tlineDashed13: '–',\n\tlineDashed14: '‐',\n\tlineDashed15: '⁃',\n\tlineVertical: '│',\n\tlineVerticalBold: '┃',\n\tlineVerticalDouble: '║',\n\tlineVerticalDashed0: '┆',\n\tlineVerticalDashed1: '┇',\n\tlineVerticalDashed2: '┊',\n\tlineVerticalDashed3: '┋',\n\tlineVerticalDashed4: '╎',\n\tlineVerticalDashed5: '╏',\n\tlineVerticalDashed6: '╵',\n\tlineVerticalDashed7: '╷',\n\tlineVerticalDashed8: '╹',\n\tlineVerticalDashed9: '╻',\n\tlineVerticalDashed10: '╽',\n\tlineVerticalDashed11: '╿',\n\tlineDownLeft: '┐',\n\tlineDownLeftArc: '╮',\n\tlineDownBoldLeftBold: '┓',\n\tlineDownBoldLeft: '┒',\n\tlineDownLeftBold: '┑',\n\tlineDownDoubleLeftDouble: '╗',\n\tlineDownDoubleLeft: '╖',\n\tlineDownLeftDouble: '╕',\n\tlineDownRight: '┌',\n\tlineDownRightArc: '╭',\n\tlineDownBoldRightBold: '┏',\n\tlineDownBoldRight: '┎',\n\tlineDownRightBold: '┍',\n\tlineDownDoubleRightDouble: '╔',\n\tlineDownDoubleRight: '╓',\n\tlineDownRightDouble: '╒',\n\tlineUpLeft: '┘',\n\tlineUpLeftArc: '╯',\n\tlineUpBoldLeftBold: '┛',\n\tlineUpBoldLeft: '┚',\n\tlineUpLeftBold: '┙',\n\tlineUpDoubleLeftDouble: '╝',\n\tlineUpDoubleLeft: '╜',\n\tlineUpLeftDouble: '╛',\n\tlineUpRight: '└',\n\tlineUpRightArc: '╰',\n\tlineUpBoldRightBold: '┗',\n\tlineUpBoldRight: '┖',\n\tlineUpRightBold: '┕',\n\tlineUpDoubleRightDouble: '╚',\n\tlineUpDoubleRight: '╙',\n\tlineUpRightDouble: '╘',\n\tlineUpDownLeft: '┤',\n\tlineUpBoldDownBoldLeftBold: '┫',\n\tlineUpBoldDownBoldLeft: '┨',\n\tlineUpDownLeftBold: '┥',\n\tlineUpBoldDownLeftBold: '┩',\n\tlineUpDownBoldLeftBold: '┪',\n\tlineUpDownBoldLeft: '┧',\n\tlineUpBoldDownLeft: '┦',\n\tlineUpDoubleDownDoubleLeftDouble: '╣',\n\tlineUpDoubleDownDoubleLeft: '╢',\n\tlineUpDownLeftDouble: '╡',\n\tlineUpDownRight: '├',\n\tlineUpBoldDownBoldRightBold: '┣',\n\tlineUpBoldDownBoldRight: '┠',\n\tlineUpDownRightBold: '┝',\n\tlineUpBoldDownRightBold: '┡',\n\tlineUpDownBoldRightBold: '┢',\n\tlineUpDownBoldRight: '┟',\n\tlineUpBoldDownRight: '┞',\n\tlineUpDoubleDownDoubleRightDouble: '╠',\n\tlineUpDoubleDownDoubleRight: '╟',\n\tlineUpDownRightDouble: '╞',\n\tlineDownLeftRight: '┬',\n\tlineDownBoldLeftBoldRightBold: '┳',\n\tlineDownLeftBoldRightBold: '┯',\n\tlineDownBoldLeftRight: '┰',\n\tlineDownBoldLeftBoldRight: '┱',\n\tlineDownBoldLeftRightBold: '┲',\n\tlineDownLeftRightBold: '┮',\n\tlineDownLeftBoldRight: '┭',\n\tlineDownDoubleLeftDoubleRightDouble: '╦',\n\tlineDownDoubleLeftRight: '╥',\n\tlineDownLeftDoubleRightDouble: '╤',\n\tlineUpLeftRight: '┴',\n\tlineUpBoldLeftBoldRightBold: '┻',\n\tlineUpLeftBoldRightBold: '┷',\n\tlineUpBoldLeftRight: '┸',\n\tlineUpBoldLeftBoldRight: '┹',\n\tlineUpBoldLeftRightBold: '┺',\n\tlineUpLeftRightBold: '┶',\n\tlineUpLeftBoldRight: '┵',\n\tlineUpDoubleLeftDoubleRightDouble: '╩',\n\tlineUpDoubleLeftRight: '╨',\n\tlineUpLeftDoubleRightDouble: '╧',\n\tlineUpDownLeftRight: '┼',\n\tlineUpBoldDownBoldLeftBoldRightBold: '╋',\n\tlineUpDownBoldLeftBoldRightBold: '╈',\n\tlineUpBoldDownLeftBoldRightBold: '╇',\n\tlineUpBoldDownBoldLeftRightBold: '╊',\n\tlineUpBoldDownBoldLeftBoldRight: '╉',\n\tlineUpBoldDownLeftRight: '╀',\n\tlineUpDownBoldLeftRight: '╁',\n\tlineUpDownLeftBoldRight: '┽',\n\tlineUpDownLeftRightBold: '┾',\n\tlineUpBoldDownBoldLeftRight: '╂',\n\tlineUpDownLeftBoldRightBold: '┿',\n\tlineUpBoldDownLeftBoldRight: '╃',\n\tlineUpBoldDownLeftRightBold: '╄',\n\tlineUpDownBoldLeftBoldRight: '╅',\n\tlineUpDownBoldLeftRightBold: '╆',\n\tlineUpDoubleDownDoubleLeftDoubleRightDouble: '╬',\n\tlineUpDoubleDownDoubleLeftRight: '╫',\n\tlineUpDownLeftDoubleRightDouble: '╪',\n\tlineCross: '╳',\n\tlineBackslash: '╲',\n\tlineSlash: '╱',\n};\n\nconst specialMainSymbols = {\n\ttick: '✔',\n\tinfo: 'ℹ',\n\twarning: '⚠',\n\tcross: '✘',\n\tsquareSmall: '◻',\n\tsquareSmallFilled: '◼',\n\tcircle: '◯',\n\tcircleFilled: '◉',\n\tcircleDotted: '◌',\n\tcircleDouble: '◎',\n\tcircleCircle: 'ⓞ',\n\tcircleCross: 'ⓧ',\n\tcirclePipe: 'Ⓘ',\n\tradioOn: '◉',\n\tradioOff: '◯',\n\tcheckboxOn: '☒',\n\tcheckboxOff: '☐',\n\tcheckboxCircleOn: 'ⓧ',\n\tcheckboxCircleOff: 'Ⓘ',\n\tpointer: '❯',\n\ttriangleUpOutline: '△',\n\ttriangleLeft: '◀',\n\ttriangleRight: '▶',\n\tlozenge: '◆',\n\tlozengeOutline: '◇',\n\thamburger: '☰',\n\tsmiley: '㋡',\n\tmustache: '෴',\n\tstar: '★',\n\tplay: '▶',\n\tnodejs: '⬢',\n\toneSeventh: '⅐',\n\toneNinth: '⅑',\n\toneTenth: '⅒',\n};\n\nconst specialFallbackSymbols = {\n\ttick: '√',\n\tinfo: 'i',\n\twarning: '‼',\n\tcross: '×',\n\tsquareSmall: '□',\n\tsquareSmallFilled: '■',\n\tcircle: '( )',\n\tcircleFilled: '(*)',\n\tcircleDotted: '( )',\n\tcircleDouble: '( )',\n\tcircleCircle: '(○)',\n\tcircleCross: '(×)',\n\tcirclePipe: '(│)',\n\tradioOn: '(*)',\n\tradioOff: '( )',\n\tcheckboxOn: '[×]',\n\tcheckboxOff: '[ ]',\n\tcheckboxCircleOn: '(×)',\n\tcheckboxCircleOff: '( )',\n\tpointer: '>',\n\ttriangleUpOutline: '∆',\n\ttriangleLeft: '◄',\n\ttriangleRight: '►',\n\tlozenge: '♦',\n\tlozengeOutline: '◊',\n\thamburger: '≡',\n\tsmiley: '☺',\n\tmustache: '┌─┐',\n\tstar: '✶',\n\tplay: '►',\n\tnodejs: '♦',\n\toneSeventh: '1/7',\n\toneNinth: '1/9',\n\toneTenth: '1/10',\n};\n\nexport const mainSymbols = {...common, ...specialMainSymbols};\nexport const fallbackSymbols = {...common, ...specialFallbackSymbols};\n\nconst shouldUseMain = isUnicodeSupported();\nconst figures = shouldUseMain ? mainSymbols : fallbackSymbols;\nexport default figures;\n\nconst replacements = Object.entries(specialMainSymbols);\n\n// On terminals which do not support Unicode symbols, substitute them to other symbols\nexport const replaceSymbols = (string, {useFallback = !shouldUseMain} = {}) => {\n\tif (useFallback) {\n\t\tfor (const [key, mainSymbol] of replacements) {\n\t\t\tstring = string.replaceAll(mainSymbol, fallbackSymbols[key]);\n\t\t}\n\t}\n\n\treturn string;\n};\n","import process from 'node:process';\n\nexport default function isUnicodeSupported() {\n\tif (process.platform !== 'win32') {\n\t\treturn process.env.TERM !== 'linux'; // Linux console (kernel)\n\t}\n\n\treturn Boolean(process.env.WT_SESSION) // Windows Terminal\n\t\t|| Boolean(process.env.TERMINUS_SUBLIME) // Terminus (<0.2.27)\n\t\t|| process.env.ConEmuTask === '{cmd::Cmder}' // ConEmu and cmder\n\t\t|| process.env.TERM_PROGRAM === 'Terminus-Sublime'\n\t\t|| process.env.TERM_PROGRAM === 'vscode'\n\t\t|| process.env.TERM === 'xterm-256color'\n\t\t|| process.env.TERM === 'alacritty'\n\t\t|| process.env.TERMINAL_EMULATOR === 'JetBrains-JediTerm';\n}\n","import {writeFileSync} from 'node:fs';\nimport figures from 'figures';\nimport {gray} from 'yoctocolors';\n\n// Write synchronously to ensure lines are properly ordered and not interleaved with `stdout`\nexport const verboseLog = (string, verboseId, icon, color) => {\n\tconst prefixedLines = addPrefix(string, verboseId, icon, color);\n\twriteFileSync(STDERR_FD, `${prefixedLines}\\n`);\n};\n\nconst STDERR_FD = 2;\n\nconst addPrefix = (string, verboseId, icon, color) => string.includes('\\n')\n\t? string\n\t\t.split('\\n')\n\t\t.map(line => addPrefixToLine(line, verboseId, icon, color))\n\t\t.join('\\n')\n\t: addPrefixToLine(string, verboseId, icon, color);\n\nconst addPrefixToLine = (line, verboseId, icon, color = identity) => [\n\tgray(`[${getTimestamp()}]`),\n\tgray(`[${verboseId}]`),\n\tcolor(ICONS[icon]),\n\tcolor(line),\n].join(' ');\n\nconst identity = string => string;\n\n// Prepending the timestamp allows debugging the slow paths of a subprocess\nconst getTimestamp = () => {\n\tconst date = new Date();\n\treturn `${padField(date.getHours(), 2)}:${padField(date.getMinutes(), 2)}:${padField(date.getSeconds(), 2)}.${padField(date.getMilliseconds(), 3)}`;\n};\n\nconst padField = (field, padding) => String(field).padStart(padding, '0');\n\nconst ICONS = {\n\tcommand: '$',\n\tpipedCommand: '|',\n\toutput: ' ',\n\terror: figures.cross,\n\twarning: figures.warning,\n\tsuccess: figures.tick,\n};\n","import {hrtime} from 'node:process';\n\n// Start counting time before spawning the subprocess\nexport const getStartTime = () => hrtime.bigint();\n\n// Compute duration after the subprocess ended.\n// Printed by the `verbose` option.\nexport const getDurationMs = startTime => Number(hrtime.bigint() - startTime) / 1e6;\n","import {platform} from 'node:process';\nimport {stripVTControlCharacters} from 'node:util';\n\n// Compute `result.command` and `result.escapedCommand`\nexport const joinCommand = (filePath, rawArguments) => {\n\tconst fileAndArguments = [filePath, ...rawArguments];\n\tconst command = fileAndArguments.join(' ');\n\tconst escapedCommand = fileAndArguments\n\t\t.map(fileAndArgument => quoteString(escapeControlCharacters(fileAndArgument)))\n\t\t.join(' ');\n\treturn {command, escapedCommand};\n};\n\n// Remove ANSI sequences and escape control characters and newlines\nexport const escapeLines = lines => stripVTControlCharacters(lines)\n\t.split('\\n')\n\t.map(line => escapeControlCharacters(line))\n\t.join('\\n');\n\nconst escapeControlCharacters = line => line.replaceAll(SPECIAL_CHAR_REGEXP, character => escapeControlCharacter(character));\n\nconst escapeControlCharacter = character => {\n\tconst commonEscape = COMMON_ESCAPES[character];\n\tif (commonEscape !== undefined) {\n\t\treturn commonEscape;\n\t}\n\n\tconst codepoint = character.codePointAt(0);\n\tconst codepointHex = codepoint.toString(16);\n\treturn codepoint <= ASTRAL_START\n\t\t? `\\\\u${codepointHex.padStart(4, '0')}`\n\t\t: `\\\\U${codepointHex}`;\n};\n\n// Characters that would create issues when printed are escaped using the \\u or \\U notation.\n// Those include control characters and newlines.\n// The \\u and \\U notation is Bash specific, but there is no way to do this in a shell-agnostic way.\n// Some shells do not even have a way to print those characters in an escaped fashion.\n// Therefore, we prioritize printing those safely, instead of allowing those to be copy-pasted.\n// List of Unicode character categories: https://www.fileformat.info/info/unicode/category/index.htm\nconst SPECIAL_CHAR_REGEXP = /\\p{Separator}|\\p{Other}/gu;\n\n// Accepted by $'...' in Bash.\n// Exclude \\a \\e \\v which are accepted in Bash but not in JavaScript (except \\v) and JSON.\nconst COMMON_ESCAPES = {\n\t' ': ' ',\n\t'\\b': '\\\\b',\n\t'\\f': '\\\\f',\n\t'\\n': '\\\\n',\n\t'\\r': '\\\\r',\n\t'\\t': '\\\\t',\n};\n\n// Up until that codepoint, \\u notation can be used instead of \\U\nconst ASTRAL_START = 65_535;\n\n// Some characters are shell-specific, i.e. need to be escaped when the command is copy-pasted then run.\n// Escaping is shell-specific. We cannot know which shell is used: `process.platform` detection is not enough.\n// For example, Windows users could be using `cmd.exe`, Powershell or Bash for Windows which all use different escaping.\n// We use '...' on Unix, which is POSIX shell compliant and escape all characters but ' so this is fairly safe.\n// On Windows, we assume cmd.exe is used and escape with \"...\", which also works with Powershell.\nconst quoteString = escapedArgument => {\n\tif (NO_ESCAPE_REGEXP.test(escapedArgument)) {\n\t\treturn escapedArgument;\n\t}\n\n\treturn platform === 'win32'\n\t\t? `\"${escapedArgument.replaceAll('\"', '\"\"')}\"`\n\t\t: `'${escapedArgument.replaceAll('\\'', '\\'\\\\\\'\\'')}'`;\n};\n\nconst NO_ESCAPE_REGEXP = /^[\\w./-]+$/;\n","import process from 'node:process';\n\nexport const isStandardStream = stream => STANDARD_STREAMS.includes(stream);\nexport const STANDARD_STREAMS = [process.stdin, process.stdout, process.stderr];\nexport const STANDARD_STREAMS_ALIASES = ['stdin', 'stdout', 'stderr'];\nexport const getStreamName = fdNumber => STANDARD_STREAMS_ALIASES[fdNumber] ?? `stdio[${fdNumber}]`;\n","import isPlainObject from 'is-plain-obj';\nimport {STANDARD_STREAMS_ALIASES} from '../utils/standard-stream.js';\nimport {verboseDefault} from '../verbose/info.js';\n\n// Some options can have different values for `stdout`/`stderr`/`fd3`.\n// This normalizes those to array of values.\n// For example, `{verbose: {stdout: 'none', stderr: 'full'}}` becomes `{verbose: ['none', 'none', 'full']}`\nexport const normalizeFdSpecificOptions = options => {\n\tconst optionsCopy = {...options};\n\n\tfor (const optionName of FD_SPECIFIC_OPTIONS) {\n\t\toptionsCopy[optionName] = normalizeFdSpecificOption(options, optionName);\n\t}\n\n\treturn optionsCopy;\n};\n\nexport const normalizeFdSpecificOption = (options, optionName) => {\n\tconst optionBaseArray = Array.from({length: getStdioLength(options)});\n\tconst optionArray = normalizeFdSpecificValue(options[optionName], optionBaseArray, optionName);\n\treturn addDefaultValue(optionArray, optionName);\n};\n\nconst getStdioLength = ({stdio}) => Array.isArray(stdio)\n\t? Math.max(stdio.length, STANDARD_STREAMS_ALIASES.length)\n\t: STANDARD_STREAMS_ALIASES.length;\n\nconst normalizeFdSpecificValue = (optionValue, optionArray, optionName) => isPlainObject(optionValue)\n\t? normalizeOptionObject(optionValue, optionArray, optionName)\n\t: optionArray.fill(optionValue);\n\nconst normalizeOptionObject = (optionValue, optionArray, optionName) => {\n\tfor (const fdName of Object.keys(optionValue).sort(compareFdName)) {\n\t\tfor (const fdNumber of parseFdName(fdName, optionName, optionArray)) {\n\t\t\toptionArray[fdNumber] = optionValue[fdName];\n\t\t}\n\t}\n\n\treturn optionArray;\n};\n\n// Ensure priority order when setting both `stdout`/`stderr`, `fd1`/`fd2`, and `all`\nconst compareFdName = (fdNameA, fdNameB) => getFdNameOrder(fdNameA) < getFdNameOrder(fdNameB) ? 1 : -1;\n\nconst getFdNameOrder = fdName => {\n\tif (fdName === 'stdout' || fdName === 'stderr') {\n\t\treturn 0;\n\t}\n\n\treturn fdName === 'all' ? 2 : 1;\n};\n\nconst parseFdName = (fdName, optionName, optionArray) => {\n\tconst fdNumber = parseFd(fdName);\n\tif (fdNumber === undefined || fdNumber === 0) {\n\t\tthrow new TypeError(`\"${optionName}.${fdName}\" is invalid.\nIt must be \"${optionName}.stdout\", \"${optionName}.stderr\", \"${optionName}.all\", or \"${optionName}.fd3\", \"${optionName}.fd4\" (and so on).`);\n\t}\n\n\tif (fdNumber >= optionArray.length) {\n\t\tthrow new TypeError(`\"${optionName}.${fdName}\" is invalid: that file descriptor does not exist.\nPlease set the \"stdio\" option to ensure that file descriptor exists.`);\n\t}\n\n\treturn fdNumber === 'all' ? [1, 2] : [fdNumber];\n};\n\n// Use the same syntax for fd-specific options and the `from`/`to` options\nexport const parseFd = fdName => {\n\tif (fdName === 'all') {\n\t\treturn fdName;\n\t}\n\n\tif (STANDARD_STREAMS_ALIASES.includes(fdName)) {\n\t\treturn STANDARD_STREAMS_ALIASES.indexOf(fdName);\n\t}\n\n\tconst regexpResult = FD_REGEXP.exec(fdName);\n\tif (regexpResult !== null) {\n\t\treturn Number(regexpResult[1]);\n\t}\n};\n\nconst FD_REGEXP = /^fd(\\d+)$/;\n\nconst addDefaultValue = (optionArray, optionName) => optionArray.map(optionValue => optionValue === undefined\n\t? DEFAULT_OPTIONS[optionName]\n\t: optionValue);\n\nconst DEFAULT_OPTIONS = {\n\tlines: false,\n\tbuffer: true,\n\tmaxBuffer: 1000 * 1000 * 100,\n\tverbose: verboseDefault,\n\tstripFinalNewline: true,\n};\n\n// List of options which can have different values for `stdout`/`stderr`\nexport const FD_SPECIFIC_OPTIONS = ['lines', 'buffer', 'maxBuffer', 'verbose', 'stripFinalNewline'];\n","import {logCommand} from '../verbose/start.js';\nimport {getVerboseInfo} from '../verbose/info.js';\nimport {getStartTime} from '../return/duration.js';\nimport {joinCommand} from './escape.js';\nimport {normalizeFdSpecificOption} from './specific.js';\n\n// Compute `result.command`, `result.escapedCommand` and `verbose`-related information\nexport const handleCommand = (filePath, rawArguments, rawOptions) => {\n\tconst startTime = getStartTime();\n\tconst {command, escapedCommand} = joinCommand(filePath, rawArguments);\n\tconst verboseInfo = getVerboseInfo(normalizeFdSpecificOption(rawOptions, 'verbose'));\n\tlogCommand(escapedCommand, verboseInfo, rawOptions);\n\treturn {\n\t\tcommand,\n\t\tescapedCommand,\n\t\tstartTime,\n\t\tverboseInfo,\n\t};\n};\n","import {bold} from 'yoctocolors';\nimport {isVerbose} from './info.js';\nimport {verboseLog} from './log.js';\n\n// When `verbose` is `short|full`, print each command\nexport const logCommand = (escapedCommand, {verbose, verboseId}, {piped = false}) => {\n\tif (!isVerbose(verbose)) {\n\t\treturn;\n\t}\n\n\tconst icon = piped ? 'pipedCommand' : 'command';\n\tverboseLog(escapedCommand, verboseId, icon, bold);\n};\n","export default function pathKey(options = {}) {\n\tconst {\n\t\tenv = process.env,\n\t\tplatform = process.platform\n\t} = options;\n\n\tif (platform !== 'win32') {\n\t\treturn 'PATH';\n\t}\n\n\treturn Object.keys(env).reverse().find(key => key.toUpperCase() === 'PATH') || 'Path';\n}\n","import process from 'node:process';\nimport path from 'node:path';\nimport {fileURLToPath} from 'node:url';\nimport pathKey from 'path-key';\n\nexport const npmRunPath = ({\n\tcwd = process.cwd(),\n\tpath: pathOption = process.env[pathKey()],\n\tpreferLocal = true,\n\texecPath = process.execPath,\n\taddExecPath = true,\n} = {}) => {\n\tconst cwdString = cwd instanceof URL ? fileURLToPath(cwd) : cwd;\n\tconst cwdPath = path.resolve(cwdString);\n\tconst result = [];\n\n\tif (preferLocal) {\n\t\tapplyPreferLocal(result, cwdPath);\n\t}\n\n\tif (addExecPath) {\n\t\tapplyExecPath(result, execPath, cwdPath);\n\t}\n\n\treturn [...result, pathOption].join(path.delimiter);\n};\n\nconst applyPreferLocal = (result, cwdPath) => {\n\tlet previous;\n\n\twhile (previous !== cwdPath) {\n\t\tresult.push(path.join(cwdPath, 'node_modules/.bin'));\n\t\tprevious = cwdPath;\n\t\tcwdPath = path.resolve(cwdPath, '..');\n\t}\n};\n\n// Ensure the running `node` binary is used\nconst applyExecPath = (result, execPath, cwdPath) => {\n\tconst execPathString = execPath instanceof URL ? fileURLToPath(execPath) : execPath;\n\tresult.push(path.resolve(cwdPath, execPathString, '..'));\n};\n\nexport const npmRunPathEnv = ({env = process.env, ...options} = {}) => {\n\tenv = {...env};\n\n\tconst pathName = pathKey({env});\n\toptions.path = env[pathName];\n\tenv[pathName] = npmRunPath(options);\n\n\treturn env;\n};\n","// When the subprocess fails, this is the error instance being returned.\n// If another error instance is being thrown, it is kept as `error.cause`.\nexport const getFinalError = (originalError, message, isSync) => {\n\tconst ErrorClass = isSync ? ExecaSyncError : ExecaError;\n\tconst options = originalError instanceof DiscardedError ? {} : {cause: originalError};\n\treturn new ErrorClass(message, options);\n};\n\n// Indicates that the error is used only to interrupt control flow, but not in the return value\nexport class DiscardedError extends Error {}\n\n// Proper way to set `error.name`: it should be inherited and non-enumerable\nconst setErrorName = (ErrorClass, value) => {\n\tObject.defineProperty(ErrorClass.prototype, 'name', {\n\t\tvalue,\n\t\twritable: true,\n\t\tenumerable: false,\n\t\tconfigurable: true,\n\t});\n\tObject.defineProperty(ErrorClass.prototype, execaErrorSymbol, {\n\t\tvalue: true,\n\t\twritable: false,\n\t\tenumerable: false,\n\t\tconfigurable: false,\n\t});\n};\n\n// Unlike `instanceof`, this works across realms\nexport const isExecaError = error => isErrorInstance(error) && execaErrorSymbol in error;\n\nconst execaErrorSymbol = Symbol('isExecaError');\n\nexport const isErrorInstance = value => Object.prototype.toString.call(value) === '[object Error]';\n\n// We use two different Error classes for async/sync methods since they have slightly different shape and types\nexport class ExecaError extends Error {}\nsetErrorName(ExecaError, ExecaError.name);\n\nexport class ExecaSyncError extends Error {}\nsetErrorName(ExecaSyncError, ExecaSyncError.name);\n","import {constants} from 'node:os';\n\n// Normalize signals for comparison purpose.\n// Also validate the signal exists.\nexport const normalizeKillSignal = killSignal => {\n\tconst optionName = 'option `killSignal`';\n\tif (killSignal === 0) {\n\t\tthrow new TypeError(`Invalid ${optionName}: 0 cannot be used.`);\n\t}\n\n\treturn normalizeSignal(killSignal, optionName);\n};\n\nexport const normalizeSignalArgument = signal => signal === 0\n\t? signal\n\t: normalizeSignal(signal, '`subprocess.kill()`\\'s argument');\n\nconst normalizeSignal = (signalNameOrInteger, optionName) => {\n\tif (Number.isInteger(signalNameOrInteger)) {\n\t\treturn normalizeSignalInteger(signalNameOrInteger, optionName);\n\t}\n\n\tif (typeof signalNameOrInteger === 'string') {\n\t\treturn normalizeSignalName(signalNameOrInteger, optionName);\n\t}\n\n\tthrow new TypeError(`Invalid ${optionName} ${String(signalNameOrInteger)}: it must be a string or an integer.\\n${getAvailableSignals()}`);\n};\n\nconst normalizeSignalInteger = (signalInteger, optionName) => {\n\tif (signalsIntegerToName.has(signalInteger)) {\n\t\treturn signalsIntegerToName.get(signalInteger);\n\t}\n\n\tthrow new TypeError(`Invalid ${optionName} ${signalInteger}: this signal integer does not exist.\\n${getAvailableSignals()}`);\n};\n\nconst getSignalsIntegerToName = () => new Map(Object.entries(constants.signals)\n\t.reverse()\n\t.map(([signalName, signalInteger]) => [signalInteger, signalName]));\n\nconst signalsIntegerToName = getSignalsIntegerToName();\n\nconst normalizeSignalName = (signalName, optionName) => {\n\tif (signalName in constants.signals) {\n\t\treturn signalName;\n\t}\n\n\tif (signalName.toUpperCase() in constants.signals) {\n\t\tthrow new TypeError(`Invalid ${optionName} '${signalName}': please rename it to '${signalName.toUpperCase()}'.`);\n\t}\n\n\tthrow new TypeError(`Invalid ${optionName} '${signalName}': this signal name does not exist.\\n${getAvailableSignals()}`);\n};\n\nconst getAvailableSignals = () => `Available signal names: ${getAvailableSignalNames()}.\nAvailable signal numbers: ${getAvailableSignalIntegers()}.`;\n\nconst getAvailableSignalNames = () => Object.keys(constants.signals)\n\t.sort()\n\t.map(signalName => `'${signalName}'`)\n\t.join(', ');\n\nconst getAvailableSignalIntegers = () => [...new Set(Object.values(constants.signals)\n\t.sort((signalInteger, signalIntegerTwo) => signalInteger - signalIntegerTwo))]\n\t.join(', ');\n","import {setTimeout} from 'node:timers/promises';\nimport {isErrorInstance} from '../return/final-error.js';\nimport {normalizeSignalArgument} from './signal.js';\n\n// Normalize the `forceKillAfterDelay` option\nexport const normalizeForceKillAfterDelay = forceKillAfterDelay => {\n\tif (forceKillAfterDelay === false) {\n\t\treturn forceKillAfterDelay;\n\t}\n\n\tif (forceKillAfterDelay === true) {\n\t\treturn DEFAULT_FORCE_KILL_TIMEOUT;\n\t}\n\n\tif (!Number.isFinite(forceKillAfterDelay) || forceKillAfterDelay < 0) {\n\t\tthrow new TypeError(`Expected the \\`forceKillAfterDelay\\` option to be a non-negative integer, got \\`${forceKillAfterDelay}\\` (${typeof forceKillAfterDelay})`);\n\t}\n\n\treturn forceKillAfterDelay;\n};\n\nconst DEFAULT_FORCE_KILL_TIMEOUT = 1000 * 5;\n\n// Monkey-patches `subprocess.kill()` to add `forceKillAfterDelay` behavior and `.kill(error)`\nexport const subprocessKill = (\n\t{kill, options: {forceKillAfterDelay, killSignal}, onInternalError, controller},\n\tsignalOrError,\n\terrorArgument,\n) => {\n\tconst {signal, error} = parseKillArguments(signalOrError, errorArgument, killSignal);\n\temitKillError(error, onInternalError);\n\tconst killResult = kill(signal);\n\tsetKillTimeout({\n\t\tkill,\n\t\tsignal,\n\t\tforceKillAfterDelay,\n\t\tkillSignal,\n\t\tkillResult,\n\t\tcontroller,\n\t});\n\treturn killResult;\n};\n\nconst parseKillArguments = (signalOrError, errorArgument, killSignal) => {\n\tconst [signal = killSignal, error] = isErrorInstance(signalOrError)\n\t\t? [undefined, signalOrError]\n\t\t: [signalOrError, errorArgument];\n\n\tif (typeof signal !== 'string' && !Number.isInteger(signal)) {\n\t\tthrow new TypeError(`The first argument must be an error instance or a signal name string/integer: ${String(signal)}`);\n\t}\n\n\tif (error !== undefined && !isErrorInstance(error)) {\n\t\tthrow new TypeError(`The second argument is optional. If specified, it must be an error instance: ${error}`);\n\t}\n\n\treturn {signal: normalizeSignalArgument(signal), error};\n};\n\n// Fails right away when calling `subprocess.kill(error)`.\n// Does not wait for actual signal termination.\n// Uses a deferred promise instead of the `error` event on the subprocess, as this is less intrusive.\nconst emitKillError = (error, onInternalError) => {\n\tif (error !== undefined) {\n\t\tonInternalError.reject(error);\n\t}\n};\n\nconst setKillTimeout = async ({kill, signal, forceKillAfterDelay, killSignal, killResult, controller}) => {\n\tif (!shouldForceKill(signal, forceKillAfterDelay, killSignal, killResult)) {\n\t\treturn;\n\t}\n\n\ttry {\n\t\tawait setTimeout(forceKillAfterDelay, undefined, {signal: controller.signal});\n\t\tkill('SIGKILL');\n\t} catch {}\n};\n\nconst shouldForceKill = (signal, forceKillAfterDelay, killSignal, killResult) => signal === killSignal\n\t&& forceKillAfterDelay !== false\n\t&& killResult;\n","import {setTimeout} from 'node:timers/promises';\nimport {DiscardedError} from '../return/final-error.js';\n\n// Validate `timeout` option\nexport const validateTimeout = ({timeout}) => {\n\tif (timeout !== undefined && (!Number.isFinite(timeout) || timeout < 0)) {\n\t\tthrow new TypeError(`Expected the \\`timeout\\` option to be a non-negative integer, got \\`${timeout}\\` (${typeof timeout})`);\n\t}\n};\n\n// Fails when the `timeout` option is exceeded\nexport const throwOnTimeout = (subprocess, timeout, context, controller) => timeout === 0 || timeout === undefined\n\t? []\n\t: [killAfterTimeout(subprocess, timeout, context, controller)];\n\nconst killAfterTimeout = async (subprocess, timeout, context, {signal}) => {\n\tawait setTimeout(timeout, undefined, {signal});\n\tcontext.timedOut = true;\n\tsubprocess.kill();\n\tthrow new DiscardedError();\n};\n","// Validate `encoding` option\nexport const validateEncoding = ({encoding}) => {\n\tif (ENCODINGS.has(encoding)) {\n\t\treturn;\n\t}\n\n\tconst correctEncoding = getCorrectEncoding(encoding);\n\tif (correctEncoding !== undefined) {\n\t\tthrow new TypeError(`Invalid option \\`encoding: ${serializeEncoding(encoding)}\\`.\nPlease rename it to ${serializeEncoding(correctEncoding)}.`);\n\t}\n\n\tconst correctEncodings = [...ENCODINGS].map(correctEncoding => serializeEncoding(correctEncoding)).join(', ');\n\tthrow new TypeError(`Invalid option \\`encoding: ${serializeEncoding(encoding)}\\`.\nPlease rename it to one of: ${correctEncodings}.`);\n};\n\nconst TEXT_ENCODINGS = new Set(['utf8', 'utf16le']);\nexport const BINARY_ENCODINGS = new Set(['buffer', 'hex', 'base64', 'base64url', 'latin1', 'ascii']);\nconst ENCODINGS = new Set([...TEXT_ENCODINGS, ...BINARY_ENCODINGS]);\n\nconst getCorrectEncoding = encoding => {\n\tif (encoding === null) {\n\t\treturn 'buffer';\n\t}\n\n\tif (typeof encoding !== 'string') {\n\t\treturn;\n\t}\n\n\tconst lowerEncoding = encoding.toLowerCase();\n\tif (lowerEncoding in ENCODING_ALIASES) {\n\t\treturn ENCODING_ALIASES[lowerEncoding];\n\t}\n\n\tif (ENCODINGS.has(lowerEncoding)) {\n\t\treturn lowerEncoding;\n\t}\n};\n\nconst ENCODING_ALIASES = {\n\t// eslint-disable-next-line unicorn/text-encoding-identifier-case\n\t'utf-8': 'utf8',\n\t'utf-16le': 'utf16le',\n\t'ucs-2': 'utf16le',\n\tucs2: 'utf16le',\n\tbinary: 'latin1',\n};\n\nconst serializeEncoding = encoding => typeof encoding === 'string' ? `\"${encoding}\"` : String(encoding);\n","import {statSync} from 'node:fs';\nimport {resolve} from 'node:path';\nimport process from 'node:process';\nimport {safeNormalizeFileUrl} from './file-url.js';\n\n// Normalize `cwd` option\nexport const normalizeCwd = (cwd = getDefaultCwd()) => {\n\tconst cwdString = safeNormalizeFileUrl(cwd, 'The \"cwd\" option');\n\treturn resolve(cwdString);\n};\n\nconst getDefaultCwd = () => {\n\ttry {\n\t\treturn process.cwd();\n\t} catch (error) {\n\t\terror.message = `The current directory does not exist.\\n${error.message}`;\n\t\tthrow error;\n\t}\n};\n\n// When `cwd` option has an invalid value, provide with a better error message\nexport const fixCwdError = (originalMessage, cwd) => {\n\tif (cwd === getDefaultCwd()) {\n\t\treturn originalMessage;\n\t}\n\n\tlet cwdStat;\n\ttry {\n\t\tcwdStat = statSync(cwd);\n\t} catch (error) {\n\t\treturn `The \"cwd\" option is invalid: ${cwd}.\\n${error.message}\\n${originalMessage}`;\n\t}\n\n\tif (!cwdStat.isDirectory()) {\n\t\treturn `The \"cwd\" option is not a directory: ${cwd}.\\n${originalMessage}`;\n\t}\n\n\treturn originalMessage;\n};\n","import {basename} from 'node:path';\nimport process from 'node:process';\nimport crossSpawn from 'cross-spawn';\nimport {npmRunPathEnv} from 'npm-run-path';\nimport {normalizeForceKillAfterDelay} from '../terminate/kill.js';\nimport {normalizeKillSignal} from '../terminate/signal.js';\nimport {validateTimeout} from '../terminate/timeout.js';\nimport {handleNodeOption} from '../methods/node.js';\nimport {validateEncoding, BINARY_ENCODINGS} from './encoding-option.js';\nimport {normalizeCwd} from './cwd.js';\nimport {normalizeFileUrl} from './file-url.js';\nimport {normalizeFdSpecificOptions} from './specific.js';\n\n// Normalize the options object, and sometimes also the file paths and arguments.\n// Applies default values, validate allowed options, normalize them.\nexport const normalizeOptions = (filePath, rawArguments, rawOptions) => {\n\trawOptions.cwd = normalizeCwd(rawOptions.cwd);\n\tconst [processedFile, processedArguments, processedOptions] = handleNodeOption(filePath, rawArguments, rawOptions);\n\n\tconst {command: file, args: commandArguments, options: initialOptions} = crossSpawn._parse(processedFile, processedArguments, processedOptions);\n\n\tconst fdOptions = normalizeFdSpecificOptions(initialOptions);\n\tconst options = addDefaultOptions(fdOptions);\n\tvalidateTimeout(options);\n\tvalidateEncoding(options);\n\toptions.shell = normalizeFileUrl(options.shell);\n\toptions.env = getEnv(options);\n\toptions.killSignal = normalizeKillSignal(options.killSignal);\n\toptions.forceKillAfterDelay = normalizeForceKillAfterDelay(options.forceKillAfterDelay);\n\toptions.lines = options.lines.map((lines, fdNumber) => lines && !BINARY_ENCODINGS.has(options.encoding) && options.buffer[fdNumber]);\n\n\tif (process.platform === 'win32' && basename(file, '.exe') === 'cmd') {\n\t\t// #116\n\t\tcommandArguments.unshift('/q');\n\t}\n\n\treturn {file, commandArguments, options};\n};\n\nconst addDefaultOptions = ({\n\textendEnv = true,\n\tpreferLocal = false,\n\tcwd,\n\tlocalDir: localDirectory = cwd,\n\tencoding = 'utf8',\n\treject = true,\n\tcleanup = true,\n\tall = false,\n\twindowsHide = true,\n\tkillSignal = 'SIGTERM',\n\tforceKillAfterDelay = true,\n\tipc = false,\n\tserialization = 'advanced',\n\t...options\n}) => ({\n\t...options,\n\textendEnv,\n\tpreferLocal,\n\tcwd,\n\tlocalDirectory,\n\tencoding,\n\treject,\n\tcleanup,\n\tall,\n\twindowsHide,\n\tkillSignal,\n\tforceKillAfterDelay,\n\tipc,\n\tserialization,\n});\n\nconst getEnv = ({env: envOption, extendEnv, preferLocal, node, localDirectory, nodePath}) => {\n\tconst env = extendEnv ? {...process.env, ...envOption} : envOption;\n\n\tif (preferLocal || node) {\n\t\treturn npmRunPathEnv({\n\t\t\tenv,\n\t\t\tcwd: localDirectory,\n\t\t\texecPath: nodePath,\n\t\t\tpreferLocal,\n\t\t\taddExecPath: node,\n\t\t});\n\t}\n\n\treturn env;\n};\n","import {execPath, execArgv} from 'node:process';\nimport {basename, resolve} from 'node:path';\nimport {safeNormalizeFileUrl} from '../arguments/file-url.js';\n\n// `execaNode()` is a shortcut for `execa(..., {node: true})`\nexport const mapNode = ({options}) => {\n\tif (options.node === false) {\n\t\tthrow new TypeError('The \"node\" option cannot be false with `execaNode()`.');\n\t}\n\n\treturn {options: {...options, node: true}};\n};\n\n// Applies the `node: true` option, and the related `nodePath`/`nodeOptions` options.\n// Modifies the file commands/arguments to ensure the same Node binary and flags are re-used.\n// Also adds `ipc: true` and `shell: false`.\nexport const handleNodeOption = (file, commandArguments, {\n\tnode: shouldHandleNode = false,\n\tnodePath = execPath,\n\tnodeOptions = execArgv.filter(nodeOption => !nodeOption.startsWith('--inspect')),\n\tcwd,\n\texecPath: formerNodePath,\n\t...options\n}) => {\n\tif (formerNodePath !== undefined) {\n\t\tthrow new TypeError('The \"execPath\" option has been removed. Please use the \"nodePath\" option instead.');\n\t}\n\n\tconst normalizedNodePath = safeNormalizeFileUrl(nodePath, 'The \"nodePath\" option');\n\tconst resolvedNodePath = resolve(cwd, normalizedNodePath);\n\tconst newOptions = {\n\t\t...options,\n\t\tnodePath: resolvedNodePath,\n\t\tnode: shouldHandleNode,\n\t\tcwd,\n\t};\n\n\tif (!shouldHandleNode) {\n\t\treturn [file, commandArguments, newOptions];\n\t}\n\n\tif (basename(file, '.exe') === 'node') {\n\t\tthrow new TypeError('When the \"node\" option is true, the first argument does not need to be \"node\".');\n\t}\n\n\treturn [\n\t\tresolvedNodePath,\n\t\t[...nodeOptions, file, ...commandArguments],\n\t\t{ipc: true, ...newOptions, shell: false},\n\t];\n};\n","\nexport const getRealtimeSignals=()=>{\nconst length=SIGRTMAX-SIGRTMIN+1;\nreturn Array.from({length},getRealtimeSignal)\n};\n\nconst getRealtimeSignal=(value,index)=>({\nname:`SIGRT${index+1}`,\nnumber:SIGRTMIN+index,\naction:\"terminate\",\ndescription:\"Application-specific signal (realtime)\",\nstandard:\"posix\"\n});\n\nconst SIGRTMIN=34;\nexport const SIGRTMAX=64;","\n\nexport const SIGNALS=[\n{\nname:\"SIGHUP\",\nnumber:1,\naction:\"terminate\",\ndescription:\"Terminal closed\",\nstandard:\"posix\"\n},\n{\nname:\"SIGINT\",\nnumber:2,\naction:\"terminate\",\ndescription:\"User interruption with CTRL-C\",\nstandard:\"ansi\"\n},\n{\nname:\"SIGQUIT\",\nnumber:3,\naction:\"core\",\ndescription:\"User interruption with CTRL-\\\\\",\nstandard:\"posix\"\n},\n{\nname:\"SIGILL\",\nnumber:4,\naction:\"core\",\ndescription:\"Invalid machine instruction\",\nstandard:\"ansi\"\n},\n{\nname:\"SIGTRAP\",\nnumber:5,\naction:\"core\",\ndescription:\"Debugger breakpoint\",\nstandard:\"posix\"\n},\n{\nname:\"SIGABRT\",\nnumber:6,\naction:\"core\",\ndescription:\"Aborted\",\nstandard:\"ansi\"\n},\n{\nname:\"SIGIOT\",\nnumber:6,\naction:\"core\",\ndescription:\"Aborted\",\nstandard:\"bsd\"\n},\n{\nname:\"SIGBUS\",\nnumber:7,\naction:\"core\",\ndescription:\n\"Bus error due to misaligned, non-existing address or paging error\",\nstandard:\"bsd\"\n},\n{\nname:\"SIGEMT\",\nnumber:7,\naction:\"terminate\",\ndescription:\"Command should be emulated but is not implemented\",\nstandard:\"other\"\n},\n{\nname:\"SIGFPE\",\nnumber:8,\naction:\"core\",\ndescription:\"Floating point arithmetic error\",\nstandard:\"ansi\"\n},\n{\nname:\"SIGKILL\",\nnumber:9,\naction:\"terminate\",\ndescription:\"Forced termination\",\nstandard:\"posix\",\nforced:true\n},\n{\nname:\"SIGUSR1\",\nnumber:10,\naction:\"terminate\",\ndescription:\"Application-specific signal\",\nstandard:\"posix\"\n},\n{\nname:\"SIGSEGV\",\nnumber:11,\naction:\"core\",\ndescription:\"Segmentation fault\",\nstandard:\"ansi\"\n},\n{\nname:\"SIGUSR2\",\nnumber:12,\naction:\"terminate\",\ndescription:\"Application-specific signal\",\nstandard:\"posix\"\n},\n{\nname:\"SIGPIPE\",\nnumber:13,\naction:\"terminate\",\ndescription:\"Broken pipe or socket\",\nstandard:\"posix\"\n},\n{\nname:\"SIGALRM\",\nnumber:14,\naction:\"terminate\",\ndescription:\"Timeout or timer\",\nstandard:\"posix\"\n},\n{\nname:\"SIGTERM\",\nnumber:15,\naction:\"terminate\",\ndescription:\"Termination\",\nstandard:\"ansi\"\n},\n{\nname:\"SIGSTKFLT\",\nnumber:16,\naction:\"terminate\",\ndescription:\"Stack is empty or overflowed\",\nstandard:\"other\"\n},\n{\nname:\"SIGCHLD\",\nnumber:17,\naction:\"ignore\",\ndescription:\"Child process terminated, paused or unpaused\",\nstandard:\"posix\"\n},\n{\nname:\"SIGCLD\",\nnumber:17,\naction:\"ignore\",\ndescription:\"Child process terminated, paused or unpaused\",\nstandard:\"other\"\n},\n{\nname:\"SIGCONT\",\nnumber:18,\naction:\"unpause\",\ndescription:\"Unpaused\",\nstandard:\"posix\",\nforced:true\n},\n{\nname:\"SIGSTOP\",\nnumber:19,\naction:\"pause\",\ndescription:\"Paused\",\nstandard:\"posix\",\nforced:true\n},\n{\nname:\"SIGTSTP\",\nnumber:20,\naction:\"pause\",\ndescription:\"Paused using CTRL-Z or \\\"suspend\\\"\",\nstandard:\"posix\"\n},\n{\nname:\"SIGTTIN\",\nnumber:21,\naction:\"pause\",\ndescription:\"Background process cannot read terminal input\",\nstandard:\"posix\"\n},\n{\nname:\"SIGBREAK\",\nnumber:21,\naction:\"terminate\",\ndescription:\"User interruption with CTRL-BREAK\",\nstandard:\"other\"\n},\n{\nname:\"SIGTTOU\",\nnumber:22,\naction:\"pause\",\ndescription:\"Background process cannot write to terminal output\",\nstandard:\"posix\"\n},\n{\nname:\"SIGURG\",\nnumber:23,\naction:\"ignore\",\ndescription:\"Socket received out-of-band data\",\nstandard:\"bsd\"\n},\n{\nname:\"SIGXCPU\",\nnumber:24,\naction:\"core\",\ndescription:\"Process timed out\",\nstandard:\"bsd\"\n},\n{\nname:\"SIGXFSZ\",\nnumber:25,\naction:\"core\",\ndescription:\"File too big\",\nstandard:\"bsd\"\n},\n{\nname:\"SIGVTALRM\",\nnumber:26,\naction:\"terminate\",\ndescription:\"Timeout or timer\",\nstandard:\"bsd\"\n},\n{\nname:\"SIGPROF\",\nnumber:27,\naction:\"terminate\",\ndescription:\"Timeout or timer\",\nstandard:\"bsd\"\n},\n{\nname:\"SIGWINCH\",\nnumber:28,\naction:\"ignore\",\ndescription:\"Terminal window size changed\",\nstandard:\"bsd\"\n},\n{\nname:\"SIGIO\",\nnumber:29,\naction:\"terminate\",\ndescription:\"I/O is available\",\nstandard:\"other\"\n},\n{\nname:\"SIGPOLL\",\nnumber:29,\naction:\"terminate\",\ndescription:\"Watched event\",\nstandard:\"other\"\n},\n{\nname:\"SIGINFO\",\nnumber:29,\naction:\"ignore\",\ndescription:\"Request for process information\",\nstandard:\"other\"\n},\n{\nname:\"SIGPWR\",\nnumber:30,\naction:\"terminate\",\ndescription:\"Device running out of power\",\nstandard:\"systemv\"\n},\n{\nname:\"SIGSYS\",\nnumber:31,\naction:\"core\",\ndescription:\"Invalid system call\",\nstandard:\"other\"\n},\n{\nname:\"SIGUNUSED\",\nnumber:31,\naction:\"terminate\",\ndescription:\"Invalid system call\",\nstandard:\"other\"\n}];","import{constants}from\"node:os\";\n\nimport{SIGNALS}from\"./core.js\";\nimport{getRealtimeSignals}from\"./realtime.js\";\n\n\n\nexport const getSignals=()=>{\nconst realtimeSignals=getRealtimeSignals();\nconst signals=[...SIGNALS,...realtimeSignals].map(normalizeSignal);\nreturn signals\n};\n\n\n\n\n\n\n\nconst normalizeSignal=({\nname,\nnumber:defaultNumber,\ndescription,\naction,\nforced=false,\nstandard\n})=>{\nconst{\nsignals:{[name]:constantSignal}\n}=constants;\nconst supported=constantSignal!==undefined;\nconst number=supported?constantSignal:defaultNumber;\nreturn{name,number,description,supported,action,forced,standard}\n};","import{constants}from\"node:os\";\n\nimport{SIGRTMAX}from\"./realtime.js\";\nimport{getSignals}from\"./signals.js\";\n\n\n\nconst getSignalsByName=()=>{\nconst signals=getSignals();\nreturn Object.fromEntries(signals.map(getSignalByName))\n};\n\nconst getSignalByName=({\nname,\nnumber,\ndescription,\nsupported,\naction,\nforced,\nstandard\n})=>[name,{name,number,description,supported,action,forced,standard}];\n\nexport const signalsByName=getSignalsByName();\n\n\n\n\nconst getSignalsByNumber=()=>{\nconst signals=getSignals();\nconst length=SIGRTMAX+1;\nconst signalsA=Array.from({length},(value,number)=>\ngetSignalByNumber(number,signals)\n);\nreturn Object.assign({},...signalsA)\n};\n\nconst getSignalByNumber=(number,signals)=>{\nconst signal=findSignalByNumber(number,signals);\n\nif(signal===undefined){\nreturn{}\n}\n\nconst{name,description,supported,action,forced,standard}=signal;\nreturn{\n[number]:{\nname,\nnumber,\ndescription,\nsupported,\naction,\nforced,\nstandard\n}\n}\n};\n\n\n\nconst findSignalByNumber=(number,signals)=>{\nconst signal=signals.find(({name})=>constants.signals[name]===number);\n\nif(signal!==undefined){\nreturn signal\n}\n\nreturn signals.find((signalA)=>signalA.number===number)\n};\n\nexport const signalsByNumber=getSignalsByNumber();","export default function stripFinalNewline(input) {\n\tif (typeof input === 'string') {\n\t\treturn stripFinalNewlineString(input);\n\t}\n\n\tif (!(ArrayBuffer.isView(input) && input.BYTES_PER_ELEMENT === 1)) {\n\t\tthrow new Error('Input must be a string or a Uint8Array');\n\t}\n\n\treturn stripFinalNewlineBinary(input);\n}\n\nconst stripFinalNewlineString = input =>\n\tinput.at(-1) === LF\n\t\t? input.slice(0, input.at(-2) === CR ? -2 : -1)\n\t\t: input;\n\nconst stripFinalNewlineBinary = input =>\n\tinput.at(-1) === LF_BINARY\n\t\t? input.subarray(0, input.at(-2) === CR_BINARY ? -2 : -1)\n\t\t: input;\n\nconst LF = '\\n';\nconst LF_BINARY = LF.codePointAt(0);\nconst CR = '\\r';\nconst CR_BINARY = CR.codePointAt(0);\n","export function isStream(stream, {checkOpen = true} = {}) {\n\treturn stream !== null\n\t\t&& typeof stream === 'object'\n\t\t&& (stream.writable || stream.readable || !checkOpen || (stream.writable === undefined && stream.readable === undefined))\n\t\t&& typeof stream.pipe === 'function';\n}\n\nexport function isWritableStream(stream, {checkOpen = true} = {}) {\n\treturn isStream(stream, {checkOpen})\n\t\t&& (stream.writable || !checkOpen)\n\t\t&& typeof stream.write === 'function'\n\t\t&& typeof stream.end === 'function'\n\t\t&& typeof stream.writable === 'boolean'\n\t\t&& typeof stream.writableObjectMode === 'boolean'\n\t\t&& typeof stream.destroy === 'function'\n\t\t&& typeof stream.destroyed === 'boolean';\n}\n\nexport function isReadableStream(stream, {checkOpen = true} = {}) {\n\treturn isStream(stream, {checkOpen})\n\t\t&& (stream.readable || !checkOpen)\n\t\t&& typeof stream.read === 'function'\n\t\t&& typeof stream.readable === 'boolean'\n\t\t&& typeof stream.readableObjectMode === 'boolean'\n\t\t&& typeof stream.destroy === 'function'\n\t\t&& typeof stream.destroyed === 'boolean';\n}\n\nexport function isDuplexStream(stream, options) {\n\treturn isWritableStream(stream, options)\n\t\t&& isReadableStream(stream, options);\n}\n\nexport function isTransformStream(stream, options) {\n\treturn isDuplexStream(stream, options)\n\t\t&& typeof stream._transform === 'function';\n}\n","const a = Object.getPrototypeOf(\n Object.getPrototypeOf(\n /* istanbul ignore next */\n async function* () {\n }\n ).prototype\n);\nclass c {\n #t;\n #n;\n #r = !1;\n #e = void 0;\n constructor(e, t) {\n this.#t = e, this.#n = t;\n }\n next() {\n const e = () => this.#s();\n return this.#e = this.#e ? this.#e.then(e, e) : e(), this.#e;\n }\n return(e) {\n const t = () => this.#i(e);\n return this.#e ? this.#e.then(t, t) : t();\n }\n async #s() {\n if (this.#r)\n return {\n done: !0,\n value: void 0\n };\n let e;\n try {\n e = await this.#t.read();\n } catch (t) {\n throw this.#e = void 0, this.#r = !0, this.#t.releaseLock(), t;\n }\n return e.done && (this.#e = void 0, this.#r = !0, this.#t.releaseLock()), e;\n }\n async #i(e) {\n if (this.#r)\n return {\n done: !0,\n value: e\n };\n if (this.#r = !0, !this.#n) {\n const t = this.#t.cancel(e);\n return this.#t.releaseLock(), await t, {\n done: !0,\n value: e\n };\n }\n return this.#t.releaseLock(), {\n done: !0,\n value: e\n };\n }\n}\nconst n = Symbol();\nfunction i() {\n return this[n].next();\n}\nObject.defineProperty(i, \"name\", { value: \"next\" });\nfunction o(r) {\n return this[n].return(r);\n}\nObject.defineProperty(o, \"name\", { value: \"return\" });\nconst u = Object.create(a, {\n next: {\n enumerable: !0,\n configurable: !0,\n writable: !0,\n value: i\n },\n return: {\n enumerable: !0,\n configurable: !0,\n writable: !0,\n value: o\n }\n});\nfunction h({ preventCancel: r = !1 } = {}) {\n const e = this.getReader(), t = new c(\n e,\n r\n ), s = Object.create(u);\n return s[n] = t, s;\n}\nexport {\n h as asyncIterator\n};\n","import {isReadableStream} from 'is-stream';\nimport {asyncIterator} from '@sec-ant/readable-stream/ponyfill';\n\nexport const getAsyncIterable = stream => {\n\tif (isReadableStream(stream, {checkOpen: false}) && nodeImports.on !== undefined) {\n\t\treturn getStreamIterable(stream);\n\t}\n\n\tif (typeof stream?.[Symbol.asyncIterator] === 'function') {\n\t\treturn stream;\n\t}\n\n\t// `ReadableStream[Symbol.asyncIterator]` support is missing in multiple browsers, so we ponyfill it\n\tif (toString.call(stream) === '[object ReadableStream]') {\n\t\treturn asyncIterator.call(stream);\n\t}\n\n\tthrow new TypeError('The first argument must be a Readable, a ReadableStream, or an async iterable.');\n};\n\nconst {toString} = Object.prototype;\n\n// The default iterable for Node.js streams does not allow for multiple readers at once, so we re-implement it\nconst getStreamIterable = async function * (stream) {\n\tconst controller = new AbortController();\n\tconst state = {};\n\thandleStreamEnd(stream, controller, state);\n\n\ttry {\n\t\tfor await (const [chunk] of nodeImports.on(stream, 'data', {signal: controller.signal})) {\n\t\t\tyield chunk;\n\t\t}\n\t} catch (error) {\n\t\t// Stream failure, for example due to `stream.destroy(error)`\n\t\tif (state.error !== undefined) {\n\t\t\tthrow state.error;\n\t\t// `error` event directly emitted on stream\n\t\t} else if (!controller.signal.aborted) {\n\t\t\tthrow error;\n\t\t// Otherwise, stream completed successfully\n\t\t}\n\t\t// The `finally` block also runs when the caller throws, for example due to the `maxBuffer` option\n\t} finally {\n\t\tstream.destroy();\n\t}\n};\n\nconst handleStreamEnd = async (stream, controller, state) => {\n\ttry {\n\t\tawait nodeImports.finished(stream, {\n\t\t\tcleanup: true,\n\t\t\treadable: true,\n\t\t\twritable: false,\n\t\t\terror: false,\n\t\t});\n\t} catch (error) {\n\t\tstate.error = error;\n\t} finally {\n\t\tcontroller.abort();\n\t}\n};\n\n// Loaded by the Node entrypoint, but not by the browser one.\n// This prevents using dynamic imports.\nexport const nodeImports = {};\n","import {getAsyncIterable} from './stream.js';\n\nexport const getStreamContents = async (stream, {init, convertChunk, getSize, truncateChunk, addChunk, getFinalChunk, finalize}, {maxBuffer = Number.POSITIVE_INFINITY} = {}) => {\n\tconst asyncIterable = getAsyncIterable(stream);\n\n\tconst state = init();\n\tstate.length = 0;\n\n\ttry {\n\t\tfor await (const chunk of asyncIterable) {\n\t\t\tconst chunkType = getChunkType(chunk);\n\t\t\tconst convertedChunk = convertChunk[chunkType](chunk, state);\n\t\t\tappendChunk({\n\t\t\t\tconvertedChunk,\n\t\t\t\tstate,\n\t\t\t\tgetSize,\n\t\t\t\ttruncateChunk,\n\t\t\t\taddChunk,\n\t\t\t\tmaxBuffer,\n\t\t\t});\n\t\t}\n\n\t\tappendFinalChunk({\n\t\t\tstate,\n\t\t\tconvertChunk,\n\t\t\tgetSize,\n\t\t\ttruncateChunk,\n\t\t\taddChunk,\n\t\t\tgetFinalChunk,\n\t\t\tmaxBuffer,\n\t\t});\n\t\treturn finalize(state);\n\t} catch (error) {\n\t\tconst normalizedError = typeof error === 'object' && error !== null ? error : new Error(error);\n\t\tnormalizedError.bufferedData = finalize(state);\n\t\tthrow normalizedError;\n\t}\n};\n\nconst appendFinalChunk = ({state, getSize, truncateChunk, addChunk, getFinalChunk, maxBuffer}) => {\n\tconst convertedChunk = getFinalChunk(state);\n\tif (convertedChunk !== undefined) {\n\t\tappendChunk({\n\t\t\tconvertedChunk,\n\t\t\tstate,\n\t\t\tgetSize,\n\t\t\ttruncateChunk,\n\t\t\taddChunk,\n\t\t\tmaxBuffer,\n\t\t});\n\t}\n};\n\nconst appendChunk = ({convertedChunk, state, getSize, truncateChunk, addChunk, maxBuffer}) => {\n\tconst chunkSize = getSize(convertedChunk);\n\tconst newLength = state.length + chunkSize;\n\n\tif (newLength <= maxBuffer) {\n\t\taddNewChunk(convertedChunk, state, addChunk, newLength);\n\t\treturn;\n\t}\n\n\tconst truncatedChunk = truncateChunk(convertedChunk, maxBuffer - state.length);\n\n\tif (truncatedChunk !== undefined) {\n\t\taddNewChunk(truncatedChunk, state, addChunk, maxBuffer);\n\t}\n\n\tthrow new MaxBufferError();\n};\n\nconst addNewChunk = (convertedChunk, state, addChunk, newLength) => {\n\tstate.contents = addChunk(convertedChunk, state, newLength);\n\tstate.length = newLength;\n};\n\nconst getChunkType = chunk => {\n\tconst typeOfChunk = typeof chunk;\n\n\tif (typeOfChunk === 'string') {\n\t\treturn 'string';\n\t}\n\n\tif (typeOfChunk !== 'object' || chunk === null) {\n\t\treturn 'others';\n\t}\n\n\tif (globalThis.Buffer?.isBuffer(chunk)) {\n\t\treturn 'buffer';\n\t}\n\n\tconst prototypeName = objectToString.call(chunk);\n\n\tif (prototypeName === '[object ArrayBuffer]') {\n\t\treturn 'arrayBuffer';\n\t}\n\n\tif (prototypeName === '[object DataView]') {\n\t\treturn 'dataView';\n\t}\n\n\tif (\n\t\tNumber.isInteger(chunk.byteLength)\n\t\t&& Number.isInteger(chunk.byteOffset)\n\t\t&& objectToString.call(chunk.buffer) === '[object ArrayBuffer]'\n\t) {\n\t\treturn 'typedArray';\n\t}\n\n\treturn 'others';\n};\n\nconst {toString: objectToString} = Object.prototype;\n\nexport class MaxBufferError extends Error {\n\tname = 'MaxBufferError';\n\n\tconstructor() {\n\t\tsuper('maxBuffer exceeded');\n\t}\n}\n","import {MaxBufferError} from 'get-stream';\nimport {getStreamName} from '../utils/standard-stream.js';\n\n// When the `maxBuffer` option is hit, a MaxBufferError is thrown.\n// The stream is aborted, then specific information is kept for the error message.\nexport const handleMaxBuffer = ({error, stream, readableObjectMode, lines, encoding, fdNumber}) => {\n\tif (!(error instanceof MaxBufferError)) {\n\t\tthrow error;\n\t}\n\n\tif (fdNumber === 'all') {\n\t\treturn error;\n\t}\n\n\tconst unit = getMaxBufferUnit(readableObjectMode, lines, encoding);\n\terror.maxBufferInfo = {fdNumber, unit};\n\tstream.destroy();\n\tthrow error;\n};\n\nconst getMaxBufferUnit = (readableObjectMode, lines, encoding) => {\n\tif (readableObjectMode) {\n\t\treturn 'objects';\n\t}\n\n\tif (lines) {\n\t\treturn 'lines';\n\t}\n\n\tif (encoding === 'buffer') {\n\t\treturn 'bytes';\n\t}\n\n\treturn 'characters';\n};\n\n// Error message when `maxBuffer` is hit\nexport const getMaxBufferMessage = (error, maxBuffer) => {\n\tconst {streamName, threshold, unit} = getMaxBufferInfo(error, maxBuffer);\n\treturn `Command's ${streamName} was larger than ${threshold} ${unit}`;\n};\n\nconst getMaxBufferInfo = (error, maxBuffer) => {\n\tif (error?.maxBufferInfo === undefined) {\n\t\treturn {streamName: 'output', threshold: maxBuffer[1], unit: 'bytes'};\n\t}\n\n\tconst {maxBufferInfo: {fdNumber, unit}} = error;\n\tdelete error.maxBufferInfo;\n\treturn {streamName: getStreamName(fdNumber), threshold: maxBuffer[fdNumber], unit};\n};\n\n// The only way to apply `maxBuffer` with `spawnSync()` is to use the native `maxBuffer` option Node.js provides.\n// However, this has multiple limitations, and cannot behave the exact same way as the async behavior.\n// When the `maxBuffer` is hit, a `ENOBUFS` error is thrown.\nexport const isMaxBufferSync = (resultError, output, maxBuffer) => resultError?.code === 'ENOBUFS'\n\t&& output !== null\n\t&& output.some(result => result !== null && result.length > getMaxBufferSync(maxBuffer));\n\n// When `maxBuffer` is hit, ensure the result is truncated\nexport const truncateMaxBufferSync = (result, isMaxBuffer, maxBuffer) => {\n\tif (!isMaxBuffer) {\n\t\treturn result;\n\t}\n\n\tconst maxBufferValue = getMaxBufferSync(maxBuffer);\n\treturn result.length > maxBufferValue ? result.slice(0, maxBufferValue) : result;\n};\n\n// `spawnSync()` does not allow differentiating `maxBuffer` per file descriptor, so we always use `stdout`\nexport const getMaxBufferSync = ([, stdoutMaxBuffer]) => stdoutMaxBuffer;\n","import stripFinalNewline from 'strip-final-newline';\nimport {isUint8Array, uint8ArrayToString} from '../utils/uint-array.js';\nimport {fixCwdError} from '../arguments/cwd.js';\nimport {escapeLines} from '../arguments/escape.js';\nimport {getMaxBufferMessage} from '../io/max-buffer.js';\nimport {DiscardedError, isExecaError} from './final-error.js';\n\n// Computes `error.message`, `error.shortMessage` and `error.originalMessage`\nexport const createMessages = ({\n\tstdio,\n\tall,\n\toriginalError,\n\tsignal,\n\tsignalDescription,\n\texitCode,\n\tescapedCommand,\n\ttimedOut,\n\tisCanceled,\n\tisMaxBuffer,\n\tmaxBuffer,\n\ttimeout,\n\tcwd,\n}) => {\n\tconst errorCode = originalError?.code;\n\tconst prefix = getErrorPrefix({\n\t\toriginalError,\n\t\ttimedOut,\n\t\ttimeout,\n\t\tisMaxBuffer,\n\t\tmaxBuffer,\n\t\terrorCode,\n\t\tsignal,\n\t\tsignalDescription,\n\t\texitCode,\n\t\tisCanceled,\n\t});\n\tconst originalMessage = getOriginalMessage(originalError, cwd);\n\tconst suffix = originalMessage === undefined ? '' : `\\n${originalMessage}`;\n\tconst shortMessage = `${prefix}: ${escapedCommand}${suffix}`;\n\tconst messageStdio = all === undefined ? [stdio[2], stdio[1]] : [all];\n\tconst message = [shortMessage, ...messageStdio, ...stdio.slice(3)]\n\t\t.map(messagePart => escapeLines(stripFinalNewline(serializeMessagePart(messagePart))))\n\t\t.filter(Boolean)\n\t\t.join('\\n\\n');\n\treturn {originalMessage, shortMessage, message};\n};\n\nconst getErrorPrefix = ({originalError, timedOut, timeout, isMaxBuffer, maxBuffer, errorCode, signal, signalDescription, exitCode, isCanceled}) => {\n\tif (timedOut) {\n\t\treturn `Command timed out after ${timeout} milliseconds`;\n\t}\n\n\tif (isCanceled) {\n\t\treturn 'Command was canceled';\n\t}\n\n\tif (isMaxBuffer) {\n\t\treturn getMaxBufferMessage(originalError, maxBuffer);\n\t}\n\n\tif (errorCode !== undefined) {\n\t\treturn `Command failed with ${errorCode}`;\n\t}\n\n\tif (signal !== undefined) {\n\t\treturn `Command was killed with ${signal} (${signalDescription})`;\n\t}\n\n\tif (exitCode !== undefined) {\n\t\treturn `Command failed with exit code ${exitCode}`;\n\t}\n\n\treturn 'Command failed';\n};\n\nconst getOriginalMessage = (originalError, cwd) => {\n\tif (originalError instanceof DiscardedError) {\n\t\treturn;\n\t}\n\n\tconst originalMessage = isExecaError(originalError)\n\t\t? originalError.originalMessage\n\t\t: String(originalError?.message ?? originalError);\n\tconst escapedOriginalMessage = escapeLines(fixCwdError(originalMessage, cwd));\n\treturn escapedOriginalMessage === '' ? undefined : escapedOriginalMessage;\n};\n\nconst serializeMessagePart = messagePart => Array.isArray(messagePart)\n\t? messagePart.map(messageItem => stripFinalNewline(serializeMessageItem(messageItem))).filter(Boolean).join('\\n')\n\t: serializeMessageItem(messagePart);\n\nconst serializeMessageItem = messageItem => {\n\tif (typeof messageItem === 'string') {\n\t\treturn messageItem;\n\t}\n\n\tif (isUint8Array(messageItem)) {\n\t\treturn uint8ArrayToString(messageItem);\n\t}\n\n\treturn '';\n};\n","import {signalsByName} from 'human-signals';\nimport {getDurationMs} from './duration.js';\nimport {getFinalError} from './final-error.js';\nimport {createMessages} from './message.js';\n\n// Object returned on subprocess success\nexport const makeSuccessResult = ({\n\tcommand,\n\tescapedCommand,\n\tstdio,\n\tall,\n\toptions: {cwd},\n\tstartTime,\n}) => omitUndefinedProperties({\n\tcommand,\n\tescapedCommand,\n\tcwd,\n\tdurationMs: getDurationMs(startTime),\n\tfailed: false,\n\ttimedOut: false,\n\tisCanceled: false,\n\tisTerminated: false,\n\tisMaxBuffer: false,\n\texitCode: 0,\n\tstdout: stdio[1],\n\tstderr: stdio[2],\n\tall,\n\tstdio,\n\tpipedFrom: [],\n});\n\n// Object returned on subprocess failure before spawning\nexport const makeEarlyError = ({\n\terror,\n\tcommand,\n\tescapedCommand,\n\tfileDescriptors,\n\toptions,\n\tstartTime,\n\tisSync,\n}) => makeError({\n\terror,\n\tcommand,\n\tescapedCommand,\n\tstartTime,\n\ttimedOut: false,\n\tisCanceled: false,\n\tisMaxBuffer: false,\n\tstdio: Array.from({length: fileDescriptors.length}),\n\toptions,\n\tisSync,\n});\n\n// Object returned on subprocess failure\nexport const makeError = ({\n\terror: originalError,\n\tcommand,\n\tescapedCommand,\n\tstartTime,\n\ttimedOut,\n\tisCanceled,\n\tisMaxBuffer,\n\texitCode: rawExitCode,\n\tsignal: rawSignal,\n\tstdio,\n\tall,\n\toptions: {timeoutDuration, timeout = timeoutDuration, cwd, maxBuffer},\n\tisSync,\n}) => {\n\tconst {exitCode, signal, signalDescription} = normalizeExitPayload(rawExitCode, rawSignal);\n\tconst {originalMessage, shortMessage, message} = createMessages({\n\t\tstdio,\n\t\tall,\n\t\toriginalError,\n\t\tsignal,\n\t\tsignalDescription,\n\t\texitCode,\n\t\tescapedCommand,\n\t\ttimedOut,\n\t\tisCanceled,\n\t\tisMaxBuffer,\n\t\tmaxBuffer,\n\t\ttimeout,\n\t\tcwd,\n\t});\n\tconst error = getFinalError(originalError, message, isSync);\n\tObject.assign(error, getErrorProperties({\n\t\terror,\n\t\tcommand,\n\t\tescapedCommand,\n\t\tstartTime,\n\t\ttimedOut,\n\t\tisCanceled,\n\t\tisMaxBuffer,\n\t\texitCode,\n\t\tsignal,\n\t\tsignalDescription,\n\t\tstdio,\n\t\tall,\n\t\tcwd,\n\t\toriginalMessage,\n\t\tshortMessage,\n\t}));\n\treturn error;\n};\n\nconst getErrorProperties = ({\n\terror,\n\tcommand,\n\tescapedCommand,\n\tstartTime,\n\ttimedOut,\n\tisCanceled,\n\tisMaxBuffer,\n\texitCode,\n\tsignal,\n\tsignalDescription,\n\tstdio,\n\tall,\n\tcwd,\n\toriginalMessage,\n\tshortMessage,\n}) => omitUndefinedProperties({\n\tshortMessage,\n\toriginalMessage,\n\tcommand,\n\tescapedCommand,\n\tcwd,\n\tdurationMs: getDurationMs(startTime),\n\tfailed: true,\n\ttimedOut,\n\tisCanceled,\n\tisTerminated: signal !== undefined,\n\tisMaxBuffer,\n\texitCode,\n\tsignal,\n\tsignalDescription,\n\tcode: error.cause?.code,\n\tstdout: stdio[1],\n\tstderr: stdio[2],\n\tall,\n\tstdio,\n\tpipedFrom: [],\n});\n\nconst omitUndefinedProperties = result => Object.fromEntries(Object.entries(result).filter(([, value]) => value !== undefined));\n\n// `signal` and `exitCode` emitted on `subprocess.on('exit')` event can be `null`.\n// We normalize them to `undefined`\nconst normalizeExitPayload = (rawExitCode, rawSignal) => {\n\tconst exitCode = rawExitCode === null ? undefined : rawExitCode;\n\tconst signal = rawSignal === null ? undefined : rawSignal;\n\tconst signalDescription = signal === undefined ? undefined : signalsByName[rawSignal].description;\n\treturn {exitCode, signal, signalDescription};\n};\n","const toZeroIfInfinity = value => Number.isFinite(value) ? value : 0;\n\nfunction parseNumber(milliseconds) {\n\treturn {\n\t\tdays: Math.trunc(milliseconds / 86_400_000),\n\t\thours: Math.trunc(milliseconds / 3_600_000 % 24),\n\t\tminutes: Math.trunc(milliseconds / 60_000 % 60),\n\t\tseconds: Math.trunc(milliseconds / 1000 % 60),\n\t\tmilliseconds: Math.trunc(milliseconds % 1000),\n\t\tmicroseconds: Math.trunc(toZeroIfInfinity(milliseconds * 1000) % 1000),\n\t\tnanoseconds: Math.trunc(toZeroIfInfinity(milliseconds * 1e6) % 1000),\n\t};\n}\n\nfunction parseBigint(milliseconds) {\n\treturn {\n\t\tdays: milliseconds / 86_400_000n,\n\t\thours: milliseconds / 3_600_000n % 24n,\n\t\tminutes: milliseconds / 60_000n % 60n,\n\t\tseconds: milliseconds / 1000n % 60n,\n\t\tmilliseconds: milliseconds % 1000n,\n\t\tmicroseconds: 0n,\n\t\tnanoseconds: 0n,\n\t};\n}\n\nexport default function parseMilliseconds(milliseconds) {\n\tswitch (typeof milliseconds) {\n\t\tcase 'number': {\n\t\t\tif (Number.isFinite(milliseconds)) {\n\t\t\t\treturn parseNumber(milliseconds);\n\t\t\t}\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase 'bigint': {\n\t\t\treturn parseBigint(milliseconds);\n\t\t}\n\n\t\t// No default\n\t}\n\n\tthrow new TypeError('Expected a finite number or bigint');\n}\n","import parseMilliseconds from 'parse-ms';\n\nconst isZero = value => value === 0 || value === 0n;\nconst pluralize = (word, count) => (count === 1 || count === 1n) ? word : `${word}s`;\n\nconst SECOND_ROUNDING_EPSILON = 0.000_000_1;\nconst ONE_DAY_IN_MILLISECONDS = 24n * 60n * 60n * 1000n;\n\nexport default function prettyMilliseconds(milliseconds, options) {\n\tconst isBigInt = typeof milliseconds === 'bigint';\n\tif (!isBigInt && !Number.isFinite(milliseconds)) {\n\t\tthrow new TypeError('Expected a finite number or bigint');\n\t}\n\n\toptions = {...options};\n\n\tif (options.colonNotation) {\n\t\toptions.compact = false;\n\t\toptions.formatSubMilliseconds = false;\n\t\toptions.separateMilliseconds = false;\n\t\toptions.verbose = false;\n\t}\n\n\tif (options.compact) {\n\t\toptions.unitCount = 1;\n\t\toptions.secondsDecimalDigits = 0;\n\t\toptions.millisecondsDecimalDigits = 0;\n\t}\n\n\tlet result = [];\n\n\tconst floorDecimals = (value, decimalDigits) => {\n\t\tconst flooredInterimValue = Math.floor((value * (10 ** decimalDigits)) + SECOND_ROUNDING_EPSILON);\n\t\tconst flooredValue = Math.round(flooredInterimValue) / (10 ** decimalDigits);\n\t\treturn flooredValue.toFixed(decimalDigits);\n\t};\n\n\tconst add = (value, long, short, valueString) => {\n\t\tif (\n\t\t\t(result.length === 0 || !options.colonNotation)\n\t\t\t&& isZero(value)\n\t\t\t&& !(options.colonNotation && short === 'm')) {\n\t\t\treturn;\n\t\t}\n\n\t\tvalueString = valueString ?? String(value);\n\t\tif (options.colonNotation) {\n\t\t\tconst wholeDigits = valueString.includes('.') ? valueString.split('.')[0].length : valueString.length;\n\t\t\tconst minLength = result.length > 0 ? 2 : 1;\n\t\t\tvalueString = '0'.repeat(Math.max(0, minLength - wholeDigits)) + valueString;\n\t\t} else {\n\t\t\tvalueString += options.verbose ? ' ' + pluralize(long, value) : short;\n\t\t}\n\n\t\tresult.push(valueString);\n\t};\n\n\tconst parsed = parseMilliseconds(milliseconds);\n\tconst days = BigInt(parsed.days);\n\n\tadd(days / 365n, 'year', 'y');\n\tadd(days % 365n, 'day', 'd');\n\tadd(Number(parsed.hours), 'hour', 'h');\n\tadd(Number(parsed.minutes), 'minute', 'm');\n\n\tif (\n\t\toptions.separateMilliseconds\n\t\t|| options.formatSubMilliseconds\n\t\t|| (!options.colonNotation && milliseconds < 1000)\n\t) {\n\t\tconst seconds = Number(parsed.seconds);\n\t\tconst milliseconds = Number(parsed.milliseconds);\n\t\tconst microseconds = Number(parsed.microseconds);\n\t\tconst nanoseconds = Number(parsed.nanoseconds);\n\n\t\tadd(seconds, 'second', 's');\n\n\t\tif (options.formatSubMilliseconds) {\n\t\t\tadd(milliseconds, 'millisecond', 'ms');\n\t\t\tadd(microseconds, 'microsecond', 'µs');\n\t\t\tadd(nanoseconds, 'nanosecond', 'ns');\n\t\t} else {\n\t\t\tconst millisecondsAndBelow\n\t\t\t\t= milliseconds\n\t\t\t\t+ (microseconds / 1000)\n\t\t\t\t+ (nanoseconds / 1e6);\n\n\t\t\tconst millisecondsDecimalDigits\n\t\t\t\t= typeof options.millisecondsDecimalDigits === 'number'\n\t\t\t\t\t? options.millisecondsDecimalDigits\n\t\t\t\t\t: 0;\n\n\t\t\tconst roundedMilliseconds = millisecondsAndBelow >= 1\n\t\t\t\t? Math.round(millisecondsAndBelow)\n\t\t\t\t: Math.ceil(millisecondsAndBelow);\n\n\t\t\tconst millisecondsString = millisecondsDecimalDigits\n\t\t\t\t? millisecondsAndBelow.toFixed(millisecondsDecimalDigits)\n\t\t\t\t: roundedMilliseconds;\n\n\t\t\tadd(\n\t\t\t\tNumber.parseFloat(millisecondsString),\n\t\t\t\t'millisecond',\n\t\t\t\t'ms',\n\t\t\t\tmillisecondsString,\n\t\t\t);\n\t\t}\n\t} else {\n\t\tconst seconds = (\n\t\t\t(isBigInt ? Number(milliseconds % ONE_DAY_IN_MILLISECONDS) : milliseconds)\n\t\t\t/ 1000\n\t\t) % 60;\n\t\tconst secondsDecimalDigits\n\t\t\t= typeof options.secondsDecimalDigits === 'number'\n\t\t\t\t? options.secondsDecimalDigits\n\t\t\t\t: 1;\n\t\tconst secondsFixed = floorDecimals(seconds, secondsDecimalDigits);\n\t\tconst secondsString = options.keepDecimalsOnWholeSeconds\n\t\t\t? secondsFixed\n\t\t\t: secondsFixed.replace(/\\.0+$/, '');\n\t\tadd(Number.parseFloat(secondsString), 'second', 's', secondsString);\n\t}\n\n\tif (result.length === 0) {\n\t\treturn '0' + (options.verbose ? ' milliseconds' : 'ms');\n\t}\n\n\tconst separator = options.colonNotation ? ':' : ' ';\n\tif (typeof options.unitCount === 'number') {\n\t\tresult = result.slice(0, Math.max(options.unitCount, 1));\n\t}\n\n\treturn result.join(separator);\n}\n","import {redBright, yellowBright} from 'yoctocolors';\nimport {verboseLog} from './log.js';\n\n// When `verbose` is `short|full`, print each command's error when it fails\nexport const logError = ({message, failed, reject, verboseId, icon}) => {\n\tif (!failed) {\n\t\treturn;\n\t}\n\n\tconst color = reject ? redBright : yellowBright;\n\tverboseLog(message, verboseId, icon, color);\n};\n","import prettyMs from 'pretty-ms';\nimport {gray} from 'yoctocolors';\nimport {escapeLines} from '../arguments/escape.js';\nimport {getDurationMs} from '../return/duration.js';\nimport {isVerbose} from './info.js';\nimport {verboseLog} from './log.js';\nimport {logError} from './error.js';\n\n// When `verbose` is `short|full`, print each command's completion, duration and error\nexport const logFinalResult = ({shortMessage, failed, durationMs}, reject, verboseInfo) => {\n\tlogResult({\n\t\tmessage: shortMessage,\n\t\tfailed,\n\t\treject,\n\t\tdurationMs,\n\t\tverboseInfo,\n\t});\n};\n\n// Same but for early validation errors\nexport const logEarlyResult = (error, startTime, verboseInfo) => {\n\tlogResult({\n\t\tmessage: escapeLines(String(error)),\n\t\tfailed: true,\n\t\treject: true,\n\t\tdurationMs: getDurationMs(startTime),\n\t\tverboseInfo,\n\t});\n};\n\nconst logResult = ({message, failed, reject, durationMs, verboseInfo: {verbose, verboseId}}) => {\n\tif (!isVerbose(verbose)) {\n\t\treturn;\n\t}\n\n\tconst icon = getIcon(failed, reject);\n\tlogError({\n\t\tmessage,\n\t\tfailed,\n\t\treject,\n\t\tverboseId,\n\t\ticon,\n\t});\n\tlogDuration(durationMs, verboseId, icon);\n};\n\nconst logDuration = (durationMs, verboseId, icon) => {\n\tconst durationMessage = `(done in ${prettyMs(durationMs)})`;\n\tverboseLog(durationMessage, verboseId, icon, gray);\n};\n\nconst getIcon = (failed, reject) => {\n\tif (!failed) {\n\t\treturn 'success';\n\t}\n\n\treturn reject ? 'error' : 'warning';\n};\n","import {logFinalResult} from '../verbose/complete.js';\n\n// Applies the `reject` option.\n// Also print the final log line with `verbose`.\nexport const handleResult = (result, verboseInfo, {reject}) => {\n\tlogFinalResult(result, reject, verboseInfo);\n\n\tif (result.failed && reject) {\n\t\tthrow result;\n\t}\n\n\treturn result;\n};\n","import {isStream as isNodeStream, isDuplexStream} from 'is-stream';\nimport isPlainObj from 'is-plain-obj';\nimport {isUint8Array} from '../utils/uint-array.js';\n\n// The `stdin`/`stdout`/`stderr` option can be of many types. This detects it.\nexport const getStdioItemType = (value, optionName) => {\n\tif (isAsyncGenerator(value)) {\n\t\treturn 'asyncGenerator';\n\t}\n\n\tif (isSyncGenerator(value)) {\n\t\treturn 'generator';\n\t}\n\n\tif (isUrl(value)) {\n\t\treturn 'fileUrl';\n\t}\n\n\tif (isFilePathObject(value)) {\n\t\treturn 'filePath';\n\t}\n\n\tif (isWebStream(value)) {\n\t\treturn 'webStream';\n\t}\n\n\tif (isNodeStream(value, {checkOpen: false})) {\n\t\treturn 'native';\n\t}\n\n\tif (isUint8Array(value)) {\n\t\treturn 'uint8Array';\n\t}\n\n\tif (isAsyncIterableObject(value)) {\n\t\treturn 'asyncIterable';\n\t}\n\n\tif (isIterableObject(value)) {\n\t\treturn 'iterable';\n\t}\n\n\tif (isTransformStream(value)) {\n\t\treturn getTransformStreamType({transform: value}, optionName);\n\t}\n\n\tif (isTransformOptions(value)) {\n\t\treturn getTransformObjectType(value, optionName);\n\t}\n\n\treturn 'native';\n};\n\nconst getTransformObjectType = (value, optionName) => {\n\tif (isDuplexStream(value.transform, {checkOpen: false})) {\n\t\treturn getDuplexType(value, optionName);\n\t}\n\n\tif (isTransformStream(value.transform)) {\n\t\treturn getTransformStreamType(value, optionName);\n\t}\n\n\treturn getGeneratorObjectType(value, optionName);\n};\n\nconst getDuplexType = (value, optionName) => {\n\tvalidateNonGeneratorType(value, optionName, 'Duplex stream');\n\treturn 'duplex';\n};\n\nconst getTransformStreamType = (value, optionName) => {\n\tvalidateNonGeneratorType(value, optionName, 'web TransformStream');\n\treturn 'webTransform';\n};\n\nconst validateNonGeneratorType = ({final, binary, objectMode}, optionName, typeName) => {\n\tcheckUndefinedOption(final, `${optionName}.final`, typeName);\n\tcheckUndefinedOption(binary, `${optionName}.binary`, typeName);\n\tcheckBooleanOption(objectMode, `${optionName}.objectMode`);\n};\n\nconst checkUndefinedOption = (value, optionName, typeName) => {\n\tif (value !== undefined) {\n\t\tthrow new TypeError(`The \\`${optionName}\\` option can only be defined when using a generator, not a ${typeName}.`);\n\t}\n};\n\nconst getGeneratorObjectType = ({transform, final, binary, objectMode}, optionName) => {\n\tif (transform !== undefined && !isGenerator(transform)) {\n\t\tthrow new TypeError(`The \\`${optionName}.transform\\` option must be a generator, a Duplex stream or a web TransformStream.`);\n\t}\n\n\tif (isDuplexStream(final, {checkOpen: false})) {\n\t\tthrow new TypeError(`The \\`${optionName}.final\\` option must not be a Duplex stream.`);\n\t}\n\n\tif (isTransformStream(final)) {\n\t\tthrow new TypeError(`The \\`${optionName}.final\\` option must not be a web TransformStream.`);\n\t}\n\n\tif (final !== undefined && !isGenerator(final)) {\n\t\tthrow new TypeError(`The \\`${optionName}.final\\` option must be a generator.`);\n\t}\n\n\tcheckBooleanOption(binary, `${optionName}.binary`);\n\tcheckBooleanOption(objectMode, `${optionName}.objectMode`);\n\n\treturn isAsyncGenerator(transform) || isAsyncGenerator(final) ? 'asyncGenerator' : 'generator';\n};\n\nconst checkBooleanOption = (value, optionName) => {\n\tif (value !== undefined && typeof value !== 'boolean') {\n\t\tthrow new TypeError(`The \\`${optionName}\\` option must use a boolean.`);\n\t}\n};\n\nconst isGenerator = value => isAsyncGenerator(value) || isSyncGenerator(value);\nexport const isAsyncGenerator = value => Object.prototype.toString.call(value) === '[object AsyncGeneratorFunction]';\nconst isSyncGenerator = value => Object.prototype.toString.call(value) === '[object GeneratorFunction]';\nconst isTransformOptions = value => isPlainObj(value)\n\t&& (value.transform !== undefined || value.final !== undefined);\n\nexport const isUrl = value => Object.prototype.toString.call(value) === '[object URL]';\nexport const isRegularUrl = value => isUrl(value) && value.protocol !== 'file:';\n\nconst isFilePathObject = value => isPlainObj(value)\n\t&& Object.keys(value).length === 1\n\t&& isFilePathString(value.file);\nexport const isFilePathString = file => typeof file === 'string';\n\nexport const isUnknownStdioString = (type, value) => type === 'native'\n\t&& typeof value === 'string'\n\t&& !KNOWN_STDIO_STRINGS.has(value);\nconst KNOWN_STDIO_STRINGS = new Set(['ipc', 'ignore', 'inherit', 'overlapped', 'pipe']);\n\nconst isReadableStream = value => Object.prototype.toString.call(value) === '[object ReadableStream]';\nexport const isWritableStream = value => Object.prototype.toString.call(value) === '[object WritableStream]';\nconst isWebStream = value => isReadableStream(value) || isWritableStream(value);\nconst isTransformStream = value => isReadableStream(value?.readable) && isWritableStream(value?.writable);\n\nconst isAsyncIterableObject = value => isObject(value) && typeof value[Symbol.asyncIterator] === 'function';\nconst isIterableObject = value => isObject(value) && typeof value[Symbol.iterator] === 'function';\nconst isObject = value => typeof value === 'object' && value !== null;\n\n// Types which modify `subprocess.std*`\nexport const TRANSFORM_TYPES = new Set(['generator', 'asyncGenerator', 'duplex', 'webTransform']);\n// Types which write to a file or a file descriptor\nexport const FILE_TYPES = new Set(['fileUrl', 'filePath', 'fileNumber']);\n// When two file descriptors of this type share the same target, we need to do some special logic\nexport const SPECIAL_DUPLICATE_TYPES_SYNC = new Set(['fileUrl', 'filePath']);\nexport const SPECIAL_DUPLICATE_TYPES = new Set([...SPECIAL_DUPLICATE_TYPES_SYNC, 'webStream', 'nodeStream']);\n// Do not allow two file descriptors of this type sharing the same target\nexport const FORBID_DUPLICATE_TYPES = new Set(['webTransform', 'duplex']);\n\n// Convert types to human-friendly strings for error messages\nexport const TYPE_TO_MESSAGE = {\n\tgenerator: 'a generator',\n\tasyncGenerator: 'an async generator',\n\tfileUrl: 'a file URL',\n\tfilePath: 'a file path string',\n\tfileNumber: 'a file descriptor number',\n\twebStream: 'a web stream',\n\tnodeStream: 'a Node.js stream',\n\twebTransform: 'a web TransformStream',\n\tduplex: 'a Duplex stream',\n\tnative: 'any value',\n\titerable: 'an iterable',\n\tasyncIterable: 'an async iterable',\n\tstring: 'a string',\n\tuint8Array: 'a Uint8Array',\n};\n","import {TRANSFORM_TYPES} from '../stdio/type.js';\n\n/*\nRetrieve the `objectMode`s of a single transform.\n`objectMode` determines the return value's type, i.e. the `readableObjectMode`.\nThe chunk argument's type is based on the previous generator's return value, i.e. the `writableObjectMode` is based on the previous `readableObjectMode`.\nThe last input's generator is read by `subprocess.stdin` which:\n- should not be in `objectMode` for performance reasons.\n- can only be strings, Buffers and Uint8Arrays.\nTherefore its `readableObjectMode` must be `false`.\nThe same applies to the first output's generator's `writableObjectMode`.\n*/\nexport const getTransformObjectModes = (objectMode, index, newTransforms, direction) => direction === 'output'\n\t? getOutputObjectModes(objectMode, index, newTransforms)\n\t: getInputObjectModes(objectMode, index, newTransforms);\n\nconst getOutputObjectModes = (objectMode, index, newTransforms) => {\n\tconst writableObjectMode = index !== 0 && newTransforms[index - 1].value.readableObjectMode;\n\tconst readableObjectMode = objectMode ?? writableObjectMode;\n\treturn {writableObjectMode, readableObjectMode};\n};\n\nconst getInputObjectModes = (objectMode, index, newTransforms) => {\n\tconst writableObjectMode = index === 0\n\t\t? objectMode === true\n\t\t: newTransforms[index - 1].value.readableObjectMode;\n\tconst readableObjectMode = index !== newTransforms.length - 1 && (objectMode ?? writableObjectMode);\n\treturn {writableObjectMode, readableObjectMode};\n};\n\n// Retrieve the `objectMode` of a file descriptor, e.g. `stdout` or `stderr`\nexport const getFdObjectMode = (stdioItems, direction) => {\n\tconst lastTransform = stdioItems.findLast(({type}) => TRANSFORM_TYPES.has(type));\n\tif (lastTransform === undefined) {\n\t\treturn false;\n\t}\n\n\treturn direction === 'input'\n\t\t? lastTransform.value.writableObjectMode\n\t\t: lastTransform.value.readableObjectMode;\n};\n","import isPlainObj from 'is-plain-obj';\nimport {BINARY_ENCODINGS} from '../arguments/encoding-option.js';\nimport {TRANSFORM_TYPES} from '../stdio/type.js';\nimport {getTransformObjectModes} from './object-mode.js';\n\n// Transforms generators/duplex/TransformStream can have multiple shapes.\n// This normalizes it and applies default values.\nexport const normalizeTransforms = (stdioItems, optionName, direction, options) => [\n\t...stdioItems.filter(({type}) => !TRANSFORM_TYPES.has(type)),\n\t...getTransforms(stdioItems, optionName, direction, options),\n];\n\nconst getTransforms = (stdioItems, optionName, direction, {encoding}) => {\n\tconst transforms = stdioItems.filter(({type}) => TRANSFORM_TYPES.has(type));\n\tconst newTransforms = Array.from({length: transforms.length});\n\n\tfor (const [index, stdioItem] of Object.entries(transforms)) {\n\t\tnewTransforms[index] = normalizeTransform({\n\t\t\tstdioItem,\n\t\t\tindex: Number(index),\n\t\t\tnewTransforms,\n\t\t\toptionName,\n\t\t\tdirection,\n\t\t\tencoding,\n\t\t});\n\t}\n\n\treturn sortTransforms(newTransforms, direction);\n};\n\nconst normalizeTransform = ({stdioItem, stdioItem: {type}, index, newTransforms, optionName, direction, encoding}) => {\n\tif (type === 'duplex') {\n\t\treturn normalizeDuplex({stdioItem, optionName});\n\t}\n\n\tif (type === 'webTransform') {\n\t\treturn normalizeTransformStream({\n\t\t\tstdioItem,\n\t\t\tindex,\n\t\t\tnewTransforms,\n\t\t\tdirection,\n\t\t});\n\t}\n\n\treturn normalizeGenerator({\n\t\tstdioItem,\n\t\tindex,\n\t\tnewTransforms,\n\t\tdirection,\n\t\tencoding,\n\t});\n};\n\nconst normalizeDuplex = ({\n\tstdioItem,\n\tstdioItem: {\n\t\tvalue: {\n\t\t\ttransform,\n\t\t\ttransform: {writableObjectMode, readableObjectMode},\n\t\t\tobjectMode = readableObjectMode,\n\t\t},\n\t},\n\toptionName,\n}) => {\n\tif (objectMode && !readableObjectMode) {\n\t\tthrow new TypeError(`The \\`${optionName}.objectMode\\` option can only be \\`true\\` if \\`new Duplex({objectMode: true})\\` is used.`);\n\t}\n\n\tif (!objectMode && readableObjectMode) {\n\t\tthrow new TypeError(`The \\`${optionName}.objectMode\\` option cannot be \\`false\\` if \\`new Duplex({objectMode: true})\\` is used.`);\n\t}\n\n\treturn {\n\t\t...stdioItem,\n\t\tvalue: {transform, writableObjectMode, readableObjectMode},\n\t};\n};\n\nconst normalizeTransformStream = ({stdioItem, stdioItem: {value}, index, newTransforms, direction}) => {\n\tconst {transform, objectMode} = isPlainObj(value) ? value : {transform: value};\n\tconst {writableObjectMode, readableObjectMode} = getTransformObjectModes(objectMode, index, newTransforms, direction);\n\treturn ({\n\t\t...stdioItem,\n\t\tvalue: {transform, writableObjectMode, readableObjectMode},\n\t});\n};\n\nconst normalizeGenerator = ({stdioItem, stdioItem: {value}, index, newTransforms, direction, encoding}) => {\n\tconst {\n\t\ttransform,\n\t\tfinal,\n\t\tbinary: binaryOption = false,\n\t\tpreserveNewlines = false,\n\t\tobjectMode,\n\t} = isPlainObj(value) ? value : {transform: value};\n\tconst binary = binaryOption || BINARY_ENCODINGS.has(encoding);\n\tconst {writableObjectMode, readableObjectMode} = getTransformObjectModes(objectMode, index, newTransforms, direction);\n\treturn {\n\t\t...stdioItem,\n\t\tvalue: {\n\t\t\ttransform,\n\t\t\tfinal,\n\t\t\tbinary,\n\t\t\tpreserveNewlines,\n\t\t\twritableObjectMode,\n\t\t\treadableObjectMode,\n\t\t},\n\t};\n};\n\nconst sortTransforms = (newTransforms, direction) => direction === 'input' ? newTransforms.reverse() : newTransforms;\n","import process from 'node:process';\nimport {\n\tisStream as isNodeStream,\n\tisReadableStream as isNodeReadableStream,\n\tisWritableStream as isNodeWritableStream,\n} from 'is-stream';\nimport {isWritableStream} from './type.js';\n\n// For `stdio[fdNumber]` beyond stdin/stdout/stderr, we need to guess whether the value passed is intended for inputs or outputs.\n// This allows us to know whether to pipe _into_ or _from_ the stream.\n// When `stdio[fdNumber]` is a single value, this guess is fairly straightforward.\n// However, when it is an array instead, we also need to make sure the different values are not incompatible with each other.\nexport const getStreamDirection = (stdioItems, fdNumber, optionName) => {\n\tconst directions = stdioItems.map(stdioItem => getStdioItemDirection(stdioItem, fdNumber));\n\n\tif (directions.includes('input') && directions.includes('output')) {\n\t\tthrow new TypeError(`The \\`${optionName}\\` option must not be an array of both readable and writable values.`);\n\t}\n\n\treturn directions.find(Boolean) ?? DEFAULT_DIRECTION;\n};\n\nconst getStdioItemDirection = ({type, value}, fdNumber) => KNOWN_DIRECTIONS[fdNumber] ?? guessStreamDirection[type](value);\n\n// `stdin`/`stdout`/`stderr` have a known direction\nconst KNOWN_DIRECTIONS = ['input', 'output', 'output'];\n\nconst anyDirection = () => undefined;\nconst alwaysInput = () => 'input';\n\n// `string` can only be added through the `input` option, i.e. does not need to be handled here\nconst guessStreamDirection = {\n\tgenerator: anyDirection,\n\tasyncGenerator: anyDirection,\n\tfileUrl: anyDirection,\n\tfilePath: anyDirection,\n\titerable: alwaysInput,\n\tasyncIterable: alwaysInput,\n\tuint8Array: alwaysInput,\n\twebStream: value => isWritableStream(value) ? 'output' : 'input',\n\tnodeStream(value) {\n\t\tif (!isNodeReadableStream(value, {checkOpen: false})) {\n\t\t\treturn 'output';\n\t\t}\n\n\t\treturn isNodeWritableStream(value, {checkOpen: false}) ? undefined : 'input';\n\t},\n\twebTransform: anyDirection,\n\tduplex: anyDirection,\n\tnative(value) {\n\t\tconst standardStreamDirection = getStandardStreamDirection(value);\n\t\tif (standardStreamDirection !== undefined) {\n\t\t\treturn standardStreamDirection;\n\t\t}\n\n\t\tif (isNodeStream(value, {checkOpen: false})) {\n\t\t\treturn guessStreamDirection.nodeStream(value);\n\t\t}\n\t},\n};\n\nconst getStandardStreamDirection = value => {\n\tif ([0, process.stdin].includes(value)) {\n\t\treturn 'input';\n\t}\n\n\tif ([1, 2, process.stdout, process.stderr].includes(value)) {\n\t\treturn 'output';\n\t}\n};\n\n// When ambiguous, we initially keep the direction as `undefined`.\n// This allows arrays of `stdio` values to resolve the ambiguity.\n// For example, `stdio[3]: DuplexStream` is ambiguous, but `stdio[3]: [DuplexStream, WritableStream]` is not.\n// When the ambiguity remains, we default to `output` since it is the most common use case for additional file descriptors.\nconst DEFAULT_DIRECTION = 'output';\n","import {STANDARD_STREAMS_ALIASES} from '../utils/standard-stream.js';\n\n// Add support for `stdin`/`stdout`/`stderr` as an alias for `stdio`.\n// Also normalize the `stdio` option.\nexport const normalizeStdioOption = ({stdio, ipc, buffer, verbose, ...options}, isSync) => {\n\tconst stdioArray = getStdioArray(stdio, options).map((stdioOption, fdNumber) => addDefaultValue(stdioOption, fdNumber));\n\treturn isSync ? normalizeStdioSync(stdioArray, buffer, verbose) : normalizeStdioAsync(stdioArray, ipc);\n};\n\nconst getStdioArray = (stdio, options) => {\n\tif (stdio === undefined) {\n\t\treturn STANDARD_STREAMS_ALIASES.map(alias => options[alias]);\n\t}\n\n\tif (hasAlias(options)) {\n\t\tthrow new Error(`It's not possible to provide \\`stdio\\` in combination with one of ${STANDARD_STREAMS_ALIASES.map(alias => `\\`${alias}\\``).join(', ')}`);\n\t}\n\n\tif (typeof stdio === 'string') {\n\t\treturn [stdio, stdio, stdio];\n\t}\n\n\tif (!Array.isArray(stdio)) {\n\t\tthrow new TypeError(`Expected \\`stdio\\` to be of type \\`string\\` or \\`Array\\`, got \\`${typeof stdio}\\``);\n\t}\n\n\tconst length = Math.max(stdio.length, STANDARD_STREAMS_ALIASES.length);\n\treturn Array.from({length}, (_, fdNumber) => stdio[fdNumber]);\n};\n\nconst hasAlias = options => STANDARD_STREAMS_ALIASES.some(alias => options[alias] !== undefined);\n\nconst addDefaultValue = (stdioOption, fdNumber) => {\n\tif (Array.isArray(stdioOption)) {\n\t\treturn stdioOption.map(item => addDefaultValue(item, fdNumber));\n\t}\n\n\tif (stdioOption === null || stdioOption === undefined) {\n\t\treturn fdNumber >= STANDARD_STREAMS_ALIASES.length ? 'ignore' : 'pipe';\n\t}\n\n\treturn stdioOption;\n};\n\n// Using `buffer: false` with synchronous methods implies `stdout`/`stderr`: `ignore`.\n// Unless the output is needed, e.g. due to `verbose: 'full'` or to redirecting to a file.\nconst normalizeStdioSync = (stdioArray, buffer, verbose) => stdioArray.map((stdioOption, fdNumber) =>\n\t!buffer[fdNumber]\n\t&& fdNumber !== 0\n\t&& verbose[fdNumber] !== 'full'\n\t&& isOutputPipeOnly(stdioOption)\n\t\t? 'ignore'\n\t\t: stdioOption);\n\nconst isOutputPipeOnly = stdioOption => stdioOption === 'pipe'\n\t|| (Array.isArray(stdioOption) && stdioOption.every(item => item === 'pipe'));\n\n// The `ipc` option adds an `ipc` item to the `stdio` option\nconst normalizeStdioAsync = (stdioArray, ipc) => ipc && !stdioArray.includes('ipc')\n\t? [...stdioArray, 'ipc']\n\t: stdioArray;\n","import {parseFd} from './specific.js';\n\n// Retrieve stream targeted by the `to` option\nexport const getToStream = (destination, to = 'stdin') => {\n\tconst isWritable = true;\n\tconst {options, fileDescriptors} = SUBPROCESS_OPTIONS.get(destination);\n\tconst fdNumber = getFdNumber(fileDescriptors, to, isWritable);\n\tconst destinationStream = destination.stdio[fdNumber];\n\n\tif (destinationStream === null) {\n\t\tthrow new TypeError(getInvalidStdioOptionMessage(fdNumber, to, options, isWritable));\n\t}\n\n\treturn destinationStream;\n};\n\n// Retrieve stream targeted by the `from` option\nexport const getFromStream = (source, from = 'stdout') => {\n\tconst isWritable = false;\n\tconst {options, fileDescriptors} = SUBPROCESS_OPTIONS.get(source);\n\tconst fdNumber = getFdNumber(fileDescriptors, from, isWritable);\n\tconst sourceStream = fdNumber === 'all' ? source.all : source.stdio[fdNumber];\n\n\tif (sourceStream === null || sourceStream === undefined) {\n\t\tthrow new TypeError(getInvalidStdioOptionMessage(fdNumber, from, options, isWritable));\n\t}\n\n\treturn sourceStream;\n};\n\n// Keeps track of the options passed to each Execa call\nexport const SUBPROCESS_OPTIONS = new WeakMap();\n\nconst getFdNumber = (fileDescriptors, fdName, isWritable) => {\n\tconst fdNumber = parseFdNumber(fdName, isWritable);\n\tvalidateFdNumber(fdNumber, fdName, isWritable, fileDescriptors);\n\treturn fdNumber;\n};\n\nconst parseFdNumber = (fdName, isWritable) => {\n\tconst fdNumber = parseFd(fdName);\n\tif (fdNumber !== undefined) {\n\t\treturn fdNumber;\n\t}\n\n\tconst {validOptions, defaultValue} = isWritable\n\t\t? {validOptions: '\"stdin\"', defaultValue: 'stdin'}\n\t\t: {validOptions: '\"stdout\", \"stderr\", \"all\"', defaultValue: 'stdout'};\n\tthrow new TypeError(`\"${getOptionName(isWritable)}\" must not be \"${fdName}\".\nIt must be ${validOptions} or \"fd3\", \"fd4\" (and so on).\nIt is optional and defaults to \"${defaultValue}\".`);\n};\n\nconst validateFdNumber = (fdNumber, fdName, isWritable, fileDescriptors) => {\n\tconst fileDescriptor = fileDescriptors[getUsedDescriptor(fdNumber)];\n\tif (fileDescriptor === undefined) {\n\t\tthrow new TypeError(`\"${getOptionName(isWritable)}\" must not be ${fdName}. That file descriptor does not exist.\nPlease set the \"stdio\" option to ensure that file descriptor exists.`);\n\t}\n\n\tif (fileDescriptor.direction === 'input' && !isWritable) {\n\t\tthrow new TypeError(`\"${getOptionName(isWritable)}\" must not be ${fdName}. It must be a readable stream, not writable.`);\n\t}\n\n\tif (fileDescriptor.direction !== 'input' && isWritable) {\n\t\tthrow new TypeError(`\"${getOptionName(isWritable)}\" must not be ${fdName}. It must be a writable stream, not readable.`);\n\t}\n};\n\nconst getInvalidStdioOptionMessage = (fdNumber, fdName, options, isWritable) => {\n\tif (fdNumber === 'all' && !options.all) {\n\t\treturn 'The \"all\" option must be true to use \"from: \\'all\\'\".';\n\t}\n\n\tconst {optionName, optionValue} = getInvalidStdioOption(fdNumber, options);\n\treturn `The \"${optionName}: ${serializeOptionValue(optionValue)}\" option is incompatible with using \"${getOptionName(isWritable)}: ${serializeOptionValue(fdName)}\".\nPlease set this option with \"pipe\" instead.`;\n};\n\nconst getInvalidStdioOption = (fdNumber, {stdin, stdout, stderr, stdio}) => {\n\tconst usedDescriptor = getUsedDescriptor(fdNumber);\n\n\tif (usedDescriptor === 0 && stdin !== undefined) {\n\t\treturn {optionName: 'stdin', optionValue: stdin};\n\t}\n\n\tif (usedDescriptor === 1 && stdout !== undefined) {\n\t\treturn {optionName: 'stdout', optionValue: stdout};\n\t}\n\n\tif (usedDescriptor === 2 && stderr !== undefined) {\n\t\treturn {optionName: 'stderr', optionValue: stderr};\n\t}\n\n\treturn {optionName: `stdio[${usedDescriptor}]`, optionValue: stdio[usedDescriptor]};\n};\n\nconst getUsedDescriptor = fdNumber => fdNumber === 'all' ? 1 : fdNumber;\n\nconst getOptionName = isWritable => isWritable ? 'to' : 'from';\n\nexport const serializeOptionValue = value => {\n\tif (typeof value === 'string') {\n\t\treturn `'${value}'`;\n\t}\n\n\treturn typeof value === 'number' ? `${value}` : 'Stream';\n};\n","import {readFileSync} from 'node:fs';\nimport tty from 'node:tty';\nimport {isStream as isNodeStream} from 'is-stream';\nimport {STANDARD_STREAMS} from '../utils/standard-stream.js';\nimport {bufferToUint8Array} from '../utils/uint-array.js';\nimport {serializeOptionValue} from '../arguments/fd-options.js';\n\n// When we use multiple `stdio` values for the same streams, we pass 'pipe' to `child_process.spawn()`.\n// We then emulate the piping done by core Node.js.\n// To do so, we transform the following values:\n// - Node.js streams are marked as `type: nodeStream`\n// - 'inherit' becomes `process.stdin|stdout|stderr`\n// - any file descriptor integer becomes `process.stdio[fdNumber]`\n// All of the above transformations tell Execa to perform manual piping.\nexport const handleNativeStream = ({stdioItem, stdioItem: {type}, isStdioArray, fdNumber, direction, isSync}) => {\n\tif (!isStdioArray || type !== 'native') {\n\t\treturn stdioItem;\n\t}\n\n\treturn isSync\n\t\t? handleNativeStreamSync({stdioItem, fdNumber, direction})\n\t\t: handleNativeStreamAsync({stdioItem, fdNumber});\n};\n\n// Synchronous methods use a different logic.\n// 'inherit', file descriptors and process.std* are handled by readFileSync()/writeFileSync().\nconst handleNativeStreamSync = ({stdioItem, stdioItem: {value, optionName}, fdNumber, direction}) => {\n\tconst targetFd = getTargetFd({\n\t\tvalue,\n\t\toptionName,\n\t\tfdNumber,\n\t\tdirection,\n\t});\n\tif (targetFd !== undefined) {\n\t\treturn targetFd;\n\t}\n\n\tif (isNodeStream(value, {checkOpen: false})) {\n\t\tthrow new TypeError(`The \\`${optionName}: Stream\\` option cannot both be an array and include a stream with synchronous methods.`);\n\t}\n\n\treturn stdioItem;\n};\n\nconst getTargetFd = ({value, optionName, fdNumber, direction}) => {\n\tconst targetFdNumber = getTargetFdNumber(value, fdNumber);\n\tif (targetFdNumber === undefined) {\n\t\treturn;\n\t}\n\n\tif (direction === 'output') {\n\t\treturn {type: 'fileNumber', value: targetFdNumber, optionName};\n\t}\n\n\tif (tty.isatty(targetFdNumber)) {\n\t\tthrow new TypeError(`The \\`${optionName}: ${serializeOptionValue(value)}\\` option is invalid: it cannot be a TTY with synchronous methods.`);\n\t}\n\n\treturn {type: 'uint8Array', value: bufferToUint8Array(readFileSync(targetFdNumber)), optionName};\n};\n\nconst getTargetFdNumber = (value, fdNumber) => {\n\tif (value === 'inherit') {\n\t\treturn fdNumber;\n\t}\n\n\tif (typeof value === 'number') {\n\t\treturn value;\n\t}\n\n\tconst standardStreamIndex = STANDARD_STREAMS.indexOf(value);\n\tif (standardStreamIndex !== -1) {\n\t\treturn standardStreamIndex;\n\t}\n};\n\nconst handleNativeStreamAsync = ({stdioItem, stdioItem: {value, optionName}, fdNumber}) => {\n\tif (value === 'inherit') {\n\t\treturn {type: 'nodeStream', value: getStandardStream(fdNumber, value, optionName), optionName};\n\t}\n\n\tif (typeof value === 'number') {\n\t\treturn {type: 'nodeStream', value: getStandardStream(value, value, optionName), optionName};\n\t}\n\n\tif (isNodeStream(value, {checkOpen: false})) {\n\t\treturn {type: 'nodeStream', value, optionName};\n\t}\n\n\treturn stdioItem;\n};\n\n// Node.js does not allow to easily retrieve file descriptors beyond stdin/stdout/stderr as streams.\n// - `fs.createReadStream()`/`fs.createWriteStream()` with the `fd` option do not work with character devices that use blocking reads/writes (such as interactive TTYs).\n// - Using a TCP `Socket` would work but be rather complex to implement.\n// Since this is an edge case, we simply throw an error message.\n// See https://github.com/sindresorhus/execa/pull/643#discussion_r1435905707\nconst getStandardStream = (fdNumber, value, optionName) => {\n\tconst standardStream = STANDARD_STREAMS[fdNumber];\n\n\tif (standardStream === undefined) {\n\t\tthrow new TypeError(`The \\`${optionName}: ${value}\\` option is invalid: no such standard stream.`);\n\t}\n\n\treturn standardStream;\n};\n","import {isReadableStream} from 'is-stream';\nimport {isUint8Array} from '../utils/uint-array.js';\nimport {isUrl, isFilePathString} from './type.js';\n\n// Append the `stdin` option with the `input` and `inputFile` options\nexport const handleInputOptions = ({input, inputFile}, fdNumber) => fdNumber === 0\n\t? [\n\t\t...handleInputOption(input),\n\t\t...handleInputFileOption(inputFile),\n\t]\n\t: [];\n\nconst handleInputOption = input => input === undefined ? [] : [{\n\ttype: getInputType(input),\n\tvalue: input,\n\toptionName: 'input',\n}];\n\nconst getInputType = input => {\n\tif (isReadableStream(input, {checkOpen: false})) {\n\t\treturn 'nodeStream';\n\t}\n\n\tif (typeof input === 'string') {\n\t\treturn 'string';\n\t}\n\n\tif (isUint8Array(input)) {\n\t\treturn 'uint8Array';\n\t}\n\n\tthrow new Error('The `input` option must be a string, a Uint8Array or a Node.js Readable stream.');\n};\n\nconst handleInputFileOption = inputFile => inputFile === undefined ? [] : [{\n\t...getInputFileType(inputFile),\n\toptionName: 'inputFile',\n}];\n\nconst getInputFileType = inputFile => {\n\tif (isUrl(inputFile)) {\n\t\treturn {type: 'fileUrl', value: inputFile};\n\t}\n\n\tif (isFilePathString(inputFile)) {\n\t\treturn {type: 'filePath', value: {file: inputFile}};\n\t}\n\n\tthrow new Error('The `inputFile` option must be a file path string or a file URL.');\n};\n","import {\n\tSPECIAL_DUPLICATE_TYPES_SYNC,\n\tSPECIAL_DUPLICATE_TYPES,\n\tFORBID_DUPLICATE_TYPES,\n\tTYPE_TO_MESSAGE,\n} from './type.js';\n\n// Duplicates in the same file descriptor is most likely an error.\n// However, this can be useful with generators.\nexport const filterDuplicates = stdioItems => stdioItems.filter((stdioItemOne, indexOne) =>\n\tstdioItems.every((stdioItemTwo, indexTwo) => stdioItemOne.value !== stdioItemTwo.value\n\t\t|| indexOne >= indexTwo\n\t\t|| stdioItemOne.type === 'generator'\n\t\t|| stdioItemOne.type === 'asyncGenerator'));\n\n// Check if two file descriptors are sharing the same target.\n// For example `{stdout: {file: './output.txt'}, stderr: {file: './output.txt'}}`.\nexport const getDuplicateStream = ({stdioItem: {type, value, optionName}, direction, fileDescriptors, isSync}) => {\n\tconst otherStdioItems = getOtherStdioItems(fileDescriptors, type);\n\tif (otherStdioItems.length === 0) {\n\t\treturn;\n\t}\n\n\tif (isSync) {\n\t\tvalidateDuplicateStreamSync({\n\t\t\totherStdioItems,\n\t\t\ttype,\n\t\t\tvalue,\n\t\t\toptionName,\n\t\t\tdirection,\n\t\t});\n\t\treturn;\n\t}\n\n\tif (SPECIAL_DUPLICATE_TYPES.has(type)) {\n\t\treturn getDuplicateStreamInstance({\n\t\t\totherStdioItems,\n\t\t\ttype,\n\t\t\tvalue,\n\t\t\toptionName,\n\t\t\tdirection,\n\t\t});\n\t}\n\n\tif (FORBID_DUPLICATE_TYPES.has(type)) {\n\t\tvalidateDuplicateTransform({\n\t\t\totherStdioItems,\n\t\t\ttype,\n\t\t\tvalue,\n\t\t\toptionName,\n\t\t});\n\t}\n};\n\n// Values shared by multiple file descriptors\nconst getOtherStdioItems = (fileDescriptors, type) => fileDescriptors\n\t.flatMap(({direction, stdioItems}) => stdioItems\n\t\t.filter(stdioItem => stdioItem.type === type)\n\t\t.map((stdioItem => ({...stdioItem, direction}))));\n\n// With `execaSync()`, do not allow setting a file path both in input and output\nconst validateDuplicateStreamSync = ({otherStdioItems, type, value, optionName, direction}) => {\n\tif (SPECIAL_DUPLICATE_TYPES_SYNC.has(type)) {\n\t\tgetDuplicateStreamInstance({\n\t\t\totherStdioItems,\n\t\t\ttype,\n\t\t\tvalue,\n\t\t\toptionName,\n\t\t\tdirection,\n\t\t});\n\t}\n};\n\n// When two file descriptors share the file or stream, we need to re-use the same underlying stream.\n// Otherwise, the stream would be closed twice when piping ends.\n// This is only an issue with output file descriptors.\n// This is not a problem with generator functions since those create a new instance for each file descriptor.\n// We also forbid input and output file descriptors sharing the same file or stream, since that does not make sense.\nconst getDuplicateStreamInstance = ({otherStdioItems, type, value, optionName, direction}) => {\n\tconst duplicateStdioItems = otherStdioItems.filter(stdioItem => hasSameValue(stdioItem, value));\n\tif (duplicateStdioItems.length === 0) {\n\t\treturn;\n\t}\n\n\tconst differentStdioItem = duplicateStdioItems.find(stdioItem => stdioItem.direction !== direction);\n\tthrowOnDuplicateStream(differentStdioItem, optionName, type);\n\n\treturn direction === 'output' ? duplicateStdioItems[0].stream : undefined;\n};\n\nconst hasSameValue = ({type, value}, secondValue) => {\n\tif (type === 'filePath') {\n\t\treturn value.path === secondValue.path;\n\t}\n\n\tif (type === 'fileUrl') {\n\t\treturn value.href === secondValue.href;\n\t}\n\n\treturn value === secondValue;\n};\n\n// We do not allow two file descriptors to share the same Duplex or TransformStream.\n// This is because those are set directly to `subprocess.std*`.\n// For example, this could result in `subprocess.stdout` and `subprocess.stderr` being the same value.\n// This means reading from either would get data from both stdout and stderr.\nconst validateDuplicateTransform = ({otherStdioItems, type, value, optionName}) => {\n\tconst duplicateStdioItem = otherStdioItems.find(({value: {transform}}) => transform === value.transform);\n\tthrowOnDuplicateStream(duplicateStdioItem, optionName, type);\n};\n\nconst throwOnDuplicateStream = (stdioItem, optionName, type) => {\n\tif (stdioItem !== undefined) {\n\t\tthrow new TypeError(`The \\`${stdioItem.optionName}\\` and \\`${optionName}\\` options must not target ${TYPE_TO_MESSAGE[type]} that is the same.`);\n\t}\n};\n","import {getStreamName, isStandardStream} from '../utils/standard-stream.js';\nimport {normalizeTransforms} from '../transform/normalize.js';\nimport {getFdObjectMode} from '../transform/object-mode.js';\nimport {\n\tgetStdioItemType,\n\tisRegularUrl,\n\tisUnknownStdioString,\n\tFILE_TYPES,\n} from './type.js';\nimport {getStreamDirection} from './direction.js';\nimport {normalizeStdioOption} from './stdio-option.js';\nimport {handleNativeStream} from './native.js';\nimport {handleInputOptions} from './input-option.js';\nimport {filterDuplicates, getDuplicateStream} from './duplicate.js';\n\n// Handle `input`, `inputFile`, `stdin`, `stdout` and `stderr` options, before spawning, in async/sync mode\n// They are converted into an array of `fileDescriptors`.\n// Each `fileDescriptor` is normalized, validated and contains all information necessary for further handling.\nexport const handleStdio = (addProperties, options, verboseInfo, isSync) => {\n\tconst stdio = normalizeStdioOption(options, isSync);\n\tconst initialFileDescriptors = stdio.map((stdioOption, fdNumber) => getFileDescriptor({\n\t\tstdioOption,\n\t\tfdNumber,\n\t\toptions,\n\t\tisSync,\n\t}));\n\tconst fileDescriptors = getFinalFileDescriptors({\n\t\tinitialFileDescriptors,\n\t\taddProperties,\n\t\toptions,\n\t\tisSync,\n\t});\n\toptions.stdio = fileDescriptors.map(({stdioItems}) => forwardStdio(stdioItems));\n\treturn fileDescriptors;\n};\n\nconst getFileDescriptor = ({stdioOption, fdNumber, options, isSync}) => {\n\tconst optionName = getStreamName(fdNumber);\n\tconst {stdioItems: initialStdioItems, isStdioArray} = initializeStdioItems({\n\t\tstdioOption,\n\t\tfdNumber,\n\t\toptions,\n\t\toptionName,\n\t});\n\tconst direction = getStreamDirection(initialStdioItems, fdNumber, optionName);\n\tconst stdioItems = initialStdioItems.map(stdioItem => handleNativeStream({\n\t\tstdioItem,\n\t\tisStdioArray,\n\t\tfdNumber,\n\t\tdirection,\n\t\tisSync,\n\t}));\n\tconst normalizedStdioItems = normalizeTransforms(stdioItems, optionName, direction, options);\n\tconst objectMode = getFdObjectMode(normalizedStdioItems, direction);\n\tvalidateFileObjectMode(normalizedStdioItems, objectMode);\n\treturn {direction, objectMode, stdioItems: normalizedStdioItems};\n};\n\n// We make sure passing an array with a single item behaves the same as passing that item without an array.\n// This is what users would expect.\n// For example, `stdout: ['ignore']` behaves the same as `stdout: 'ignore'`.\nconst initializeStdioItems = ({stdioOption, fdNumber, options, optionName}) => {\n\tconst values = Array.isArray(stdioOption) ? stdioOption : [stdioOption];\n\tconst initialStdioItems = [\n\t\t...values.map(value => initializeStdioItem(value, optionName)),\n\t\t...handleInputOptions(options, fdNumber),\n\t];\n\n\tconst stdioItems = filterDuplicates(initialStdioItems);\n\tconst isStdioArray = stdioItems.length > 1;\n\tvalidateStdioArray(stdioItems, isStdioArray, optionName);\n\tvalidateStreams(stdioItems);\n\treturn {stdioItems, isStdioArray};\n};\n\nconst initializeStdioItem = (value, optionName) => ({\n\ttype: getStdioItemType(value, optionName),\n\tvalue,\n\toptionName,\n});\n\nconst validateStdioArray = (stdioItems, isStdioArray, optionName) => {\n\tif (stdioItems.length === 0) {\n\t\tthrow new TypeError(`The \\`${optionName}\\` option must not be an empty array.`);\n\t}\n\n\tif (!isStdioArray) {\n\t\treturn;\n\t}\n\n\tfor (const {value, optionName} of stdioItems) {\n\t\tif (INVALID_STDIO_ARRAY_OPTIONS.has(value)) {\n\t\t\tthrow new Error(`The \\`${optionName}\\` option must not include \\`${value}\\`.`);\n\t\t}\n\t}\n};\n\n// Using those `stdio` values together with others for the same stream does not make sense, so we make it fail.\n// However, we do allow it if the array has a single item.\nconst INVALID_STDIO_ARRAY_OPTIONS = new Set(['ignore', 'ipc']);\n\nconst validateStreams = stdioItems => {\n\tfor (const stdioItem of stdioItems) {\n\t\tvalidateFileStdio(stdioItem);\n\t}\n};\n\nconst validateFileStdio = ({type, value, optionName}) => {\n\tif (isRegularUrl(value)) {\n\t\tthrow new TypeError(`The \\`${optionName}: URL\\` option must use the \\`file:\\` scheme.\nFor example, you can use the \\`pathToFileURL()\\` method of the \\`url\\` core module.`);\n\t}\n\n\tif (isUnknownStdioString(type, value)) {\n\t\tthrow new TypeError(`The \\`${optionName}: { file: '...' }\\` option must be used instead of \\`${optionName}: '...'\\`.`);\n\t}\n};\n\nconst validateFileObjectMode = (stdioItems, objectMode) => {\n\tif (!objectMode) {\n\t\treturn;\n\t}\n\n\tconst fileStdioItem = stdioItems.find(({type}) => FILE_TYPES.has(type));\n\tif (fileStdioItem !== undefined) {\n\t\tthrow new TypeError(`The \\`${fileStdioItem.optionName}\\` option cannot use both files and transforms in objectMode.`);\n\t}\n};\n\n// Some `stdio` values require Execa to create streams.\n// For example, file paths create file read/write streams.\n// Those transformations are specified in `addProperties`, which is both direction-specific and type-specific.\nconst getFinalFileDescriptors = ({initialFileDescriptors, addProperties, options, isSync}) => {\n\tconst fileDescriptors = [];\n\n\ttry {\n\t\tfor (const fileDescriptor of initialFileDescriptors) {\n\t\t\tfileDescriptors.push(getFinalFileDescriptor({\n\t\t\t\tfileDescriptor,\n\t\t\t\tfileDescriptors,\n\t\t\t\taddProperties,\n\t\t\t\toptions,\n\t\t\t\tisSync,\n\t\t\t}));\n\t\t}\n\n\t\treturn fileDescriptors;\n\t} catch (error) {\n\t\tcleanupCustomStreams(fileDescriptors);\n\t\tthrow error;\n\t}\n};\n\nconst getFinalFileDescriptor = ({\n\tfileDescriptor: {direction, objectMode, stdioItems},\n\tfileDescriptors,\n\taddProperties,\n\toptions,\n\tisSync,\n}) => {\n\tconst finalStdioItems = stdioItems.map(stdioItem => addStreamProperties({\n\t\tstdioItem,\n\t\taddProperties,\n\t\tdirection,\n\t\toptions,\n\t\tfileDescriptors,\n\t\tisSync,\n\t}));\n\treturn {direction, objectMode, stdioItems: finalStdioItems};\n};\n\nconst addStreamProperties = ({stdioItem, addProperties, direction, options, fileDescriptors, isSync}) => {\n\tconst duplicateStream = getDuplicateStream({\n\t\tstdioItem,\n\t\tdirection,\n\t\tfileDescriptors,\n\t\tisSync,\n\t});\n\n\tif (duplicateStream !== undefined) {\n\t\treturn {...stdioItem, stream: duplicateStream};\n\t}\n\n\treturn {\n\t\t...stdioItem,\n\t\t...addProperties[direction][stdioItem.type](stdioItem, options),\n\t};\n};\n\n// The stream error handling is performed by the piping logic above, which cannot be performed before subprocess spawning.\n// If the subprocess spawning fails (e.g. due to an invalid command), the streams need to be manually destroyed.\n// We need to create those streams before subprocess spawning, in case their creation fails, e.g. when passing an invalid generator as argument.\n// Like this, an exception would be thrown, which would prevent spawning a subprocess.\nexport const cleanupCustomStreams = fileDescriptors => {\n\tfor (const {stdioItems} of fileDescriptors) {\n\t\tfor (const {stream} of stdioItems) {\n\t\t\tif (stream !== undefined && !isStandardStream(stream)) {\n\t\t\t\tstream.destroy();\n\t\t\t}\n\t\t}\n\t}\n};\n\n// When the `std*: Iterable | WebStream | URL | filePath`, `input` or `inputFile` option is used, we pipe to `subprocess.std*`.\n// When the `std*: Array` option is used, we emulate some of the native values ('inherit', Node.js stream and file descriptor integer). To do so, we also need to pipe to `subprocess.std*`.\n// Therefore the `std*` options must be either `pipe` or `overlapped`. Other values do not set `subprocess.std*`.\nconst forwardStdio = stdioItems => {\n\tif (stdioItems.length > 1) {\n\t\treturn stdioItems.some(({value}) => value === 'overlapped') ? 'overlapped' : 'pipe';\n\t}\n\n\tconst [{type, value}] = stdioItems;\n\treturn type === 'native' ? value : 'pipe';\n};\n","import {readFileSync} from 'node:fs';\nimport {bufferToUint8Array} from '../utils/uint-array.js';\nimport {handleStdio} from './handle.js';\nimport {TYPE_TO_MESSAGE} from './type.js';\n\n// Normalize `input`, `inputFile`, `stdin`, `stdout` and `stderr` options, before spawning, in sync mode\nexport const handleStdioSync = (options, verboseInfo) => handleStdio(addPropertiesSync, options, verboseInfo, true);\n\nconst forbiddenIfSync = ({type, optionName}) => {\n\tthrowInvalidSyncValue(optionName, TYPE_TO_MESSAGE[type]);\n};\n\nconst forbiddenNativeIfSync = ({optionName, value}) => {\n\tif (value === 'ipc' || value === 'overlapped') {\n\t\tthrowInvalidSyncValue(optionName, `\"${value}\"`);\n\t}\n\n\treturn {};\n};\n\nconst throwInvalidSyncValue = (optionName, value) => {\n\tthrow new TypeError(`The \\`${optionName}\\` option cannot be ${value} with synchronous methods.`);\n};\n\n// Create streams used internally for redirecting when using specific values for the `std*` options, in sync mode.\n// For example, `stdin: {file}` reads the file synchronously, then passes it as the `input` option.\nconst addProperties = {\n\tgenerator() {},\n\tasyncGenerator: forbiddenIfSync,\n\twebStream: forbiddenIfSync,\n\tnodeStream: forbiddenIfSync,\n\twebTransform: forbiddenIfSync,\n\tduplex: forbiddenIfSync,\n\tasyncIterable: forbiddenIfSync,\n\tnative: forbiddenNativeIfSync,\n};\n\nconst addPropertiesSync = {\n\tinput: {\n\t\t...addProperties,\n\t\tfileUrl: ({value}) => ({contents: [bufferToUint8Array(readFileSync(value))]}),\n\t\tfilePath: ({value: {file}}) => ({contents: [bufferToUint8Array(readFileSync(file))]}),\n\t\tfileNumber: forbiddenIfSync,\n\t\titerable: ({value}) => ({contents: [...value]}),\n\t\tstring: ({value}) => ({contents: [value]}),\n\t\tuint8Array: ({value}) => ({contents: [value]}),\n\t},\n\toutput: {\n\t\t...addProperties,\n\t\tfileUrl: ({value}) => ({path: value}),\n\t\tfilePath: ({value: {file}}) => ({path: file}),\n\t\tfileNumber: ({value}) => ({path: value}),\n\t\titerable: forbiddenIfSync,\n\t\tstring: forbiddenIfSync,\n\t\tuint8Array: forbiddenIfSync,\n\t},\n};\n","import stripFinalNewlineFunction from 'strip-final-newline';\n\n// Apply `stripFinalNewline` option, which applies to `result.stdout|stderr|all|stdio[*]`.\n// If the `lines` option is used, it is applied on each line, but using a different function.\nexport const stripNewline = (value, {stripFinalNewline}, fdNumber) => getStripFinalNewline(stripFinalNewline, fdNumber) && value !== undefined && !Array.isArray(value)\n\t? stripFinalNewlineFunction(value)\n\t: value;\n\n// Retrieve `stripFinalNewline` option value, including with `subprocess.all`\nexport const getStripFinalNewline = (stripFinalNewline, fdNumber) => fdNumber === 'all'\n\t? stripFinalNewline[1] || stripFinalNewline[2]\n\t: stripFinalNewline[fdNumber];\n","// Split chunks line-wise for generators passed to the `std*` options\nexport const getSplitLinesGenerator = (binary, preserveNewlines, skipped, state) => binary || skipped\n\t? undefined\n\t: initializeSplitLines(preserveNewlines, state);\n\n// Same but for synchronous methods\nexport const splitLinesSync = (chunk, preserveNewlines, objectMode) => objectMode\n\t? chunk.flatMap(item => splitLinesItemSync(item, preserveNewlines))\n\t: splitLinesItemSync(chunk, preserveNewlines);\n\nconst splitLinesItemSync = (chunk, preserveNewlines) => {\n\tconst {transform, final} = initializeSplitLines(preserveNewlines, {});\n\treturn [...transform(chunk), ...final()];\n};\n\nconst initializeSplitLines = (preserveNewlines, state) => {\n\tstate.previousChunks = '';\n\treturn {\n\t\ttransform: splitGenerator.bind(undefined, state, preserveNewlines),\n\t\tfinal: linesFinal.bind(undefined, state),\n\t};\n};\n\n// This imperative logic is much faster than using `String.split()` and uses very low memory.\nconst splitGenerator = function * (state, preserveNewlines, chunk) {\n\tif (typeof chunk !== 'string') {\n\t\tyield chunk;\n\t\treturn;\n\t}\n\n\tlet {previousChunks} = state;\n\tlet start = -1;\n\n\tfor (let end = 0; end < chunk.length; end += 1) {\n\t\tif (chunk[end] === '\\n') {\n\t\t\tconst newlineLength = getNewlineLength(chunk, end, preserveNewlines, state);\n\t\t\tlet line = chunk.slice(start + 1, end + 1 - newlineLength);\n\n\t\t\tif (previousChunks.length > 0) {\n\t\t\t\tline = concatString(previousChunks, line);\n\t\t\t\tpreviousChunks = '';\n\t\t\t}\n\n\t\t\tyield line;\n\t\t\tstart = end;\n\t\t}\n\t}\n\n\tif (start !== chunk.length - 1) {\n\t\tpreviousChunks = concatString(previousChunks, chunk.slice(start + 1));\n\t}\n\n\tstate.previousChunks = previousChunks;\n};\n\nconst getNewlineLength = (chunk, end, preserveNewlines, state) => {\n\tif (preserveNewlines) {\n\t\treturn 0;\n\t}\n\n\tstate.isWindowsNewline = end !== 0 && chunk[end - 1] === '\\r';\n\treturn state.isWindowsNewline ? 2 : 1;\n};\n\nconst linesFinal = function * ({previousChunks}) {\n\tif (previousChunks.length > 0) {\n\t\tyield previousChunks;\n\t}\n};\n\n// Unless `preserveNewlines: true` is used, we strip the newline of each line.\n// This re-adds them after the user `transform` code has run.\nexport const getAppendNewlineGenerator = ({binary, preserveNewlines, readableObjectMode, state}) => binary || preserveNewlines || readableObjectMode\n\t? undefined\n\t: {transform: appendNewlineGenerator.bind(undefined, state)};\n\nconst appendNewlineGenerator = function * ({isWindowsNewline = false}, chunk) {\n\tconst {unixNewline, windowsNewline, LF, concatBytes} = typeof chunk === 'string' ? linesStringInfo : linesUint8ArrayInfo;\n\n\tif (chunk.at(-1) === LF) {\n\t\tyield chunk;\n\t\treturn;\n\t}\n\n\tconst newline = isWindowsNewline ? windowsNewline : unixNewline;\n\tyield concatBytes(chunk, newline);\n};\n\nconst concatString = (firstChunk, secondChunk) => `${firstChunk}${secondChunk}`;\n\nconst linesStringInfo = {\n\twindowsNewline: '\\r\\n',\n\tunixNewline: '\\n',\n\tLF: '\\n',\n\tconcatBytes: concatString,\n};\n\nconst concatUint8Array = (firstChunk, secondChunk) => {\n\tconst chunk = new Uint8Array(firstChunk.length + secondChunk.length);\n\tchunk.set(firstChunk, 0);\n\tchunk.set(secondChunk, firstChunk.length);\n\treturn chunk;\n};\n\nconst linesUint8ArrayInfo = {\n\twindowsNewline: new Uint8Array([0x0D, 0x0A]),\n\tunixNewline: new Uint8Array([0x0A]),\n\tLF: 0x0A,\n\tconcatBytes: concatUint8Array,\n};\n","import {Buffer} from 'node:buffer';\nimport {isUint8Array} from '../utils/uint-array.js';\n\n// Validate the type of chunk argument passed to transform generators\nexport const getValidateTransformInput = (writableObjectMode, optionName) => writableObjectMode\n\t? undefined\n\t: validateStringTransformInput.bind(undefined, optionName);\n\nconst validateStringTransformInput = function * (optionName, chunk) {\n\tif (typeof chunk !== 'string' && !isUint8Array(chunk) && !Buffer.isBuffer(chunk)) {\n\t\tthrow new TypeError(`The \\`${optionName}\\` option's transform must use \"objectMode: true\" to receive as input: ${typeof chunk}.`);\n\t}\n\n\tyield chunk;\n};\n\n// Validate the type of the value returned by transform generators\nexport const getValidateTransformReturn = (readableObjectMode, optionName) => readableObjectMode\n\t? validateObjectTransformReturn.bind(undefined, optionName)\n\t: validateStringTransformReturn.bind(undefined, optionName);\n\nconst validateObjectTransformReturn = function * (optionName, chunk) {\n\tvalidateEmptyReturn(optionName, chunk);\n\tyield chunk;\n};\n\nconst validateStringTransformReturn = function * (optionName, chunk) {\n\tvalidateEmptyReturn(optionName, chunk);\n\n\tif (typeof chunk !== 'string' && !isUint8Array(chunk)) {\n\t\tthrow new TypeError(`The \\`${optionName}\\` option's function must yield a string or an Uint8Array, not ${typeof chunk}.`);\n\t}\n\n\tyield chunk;\n};\n\nconst validateEmptyReturn = (optionName, chunk) => {\n\tif (chunk === null || chunk === undefined) {\n\t\tthrow new TypeError(`The \\`${optionName}\\` option's function must not call \\`yield ${chunk}\\`.\nInstead, \\`yield\\` should either be called with a value, or not be called at all. For example:\n if (condition) { yield value; }`);\n\t}\n};\n","import {Buffer} from 'node:buffer';\nimport {StringDecoder} from 'node:string_decoder';\nimport {isUint8Array, bufferToUint8Array} from '../utils/uint-array.js';\n\n/*\nWhen using binary encodings, add an internal generator that converts chunks from `Buffer` to `string` or `Uint8Array`.\nChunks might be Buffer, Uint8Array or strings since:\n- `subprocess.stdout|stderr` emits Buffers\n- `subprocess.stdin.write()` accepts Buffer, Uint8Array or string\n- Previous generators might return Uint8Array or string\n\nHowever, those are converted to Buffer:\n- on writes: `Duplex.writable` `decodeStrings: true` default option\n- on reads: `Duplex.readable` `readableEncoding: null` default option\n*/\nexport const getEncodingTransformGenerator = (binary, encoding, skipped) => {\n\tif (skipped) {\n\t\treturn;\n\t}\n\n\tif (binary) {\n\t\treturn {transform: encodingUint8ArrayGenerator.bind(undefined, new TextEncoder())};\n\t}\n\n\tconst stringDecoder = new StringDecoder(encoding);\n\treturn {\n\t\ttransform: encodingStringGenerator.bind(undefined, stringDecoder),\n\t\tfinal: encodingStringFinal.bind(undefined, stringDecoder),\n\t};\n};\n\nconst encodingUint8ArrayGenerator = function * (textEncoder, chunk) {\n\tif (Buffer.isBuffer(chunk)) {\n\t\tyield bufferToUint8Array(chunk);\n\t} else if (typeof chunk === 'string') {\n\t\tyield textEncoder.encode(chunk);\n\t} else {\n\t\tyield chunk;\n\t}\n};\n\nconst encodingStringGenerator = function * (stringDecoder, chunk) {\n\tyield isUint8Array(chunk) ? stringDecoder.write(chunk) : chunk;\n};\n\nconst encodingStringFinal = function * (stringDecoder) {\n\tconst lastChunk = stringDecoder.end();\n\tif (lastChunk !== '') {\n\t\tyield lastChunk;\n\t}\n};\n","import {callbackify} from 'node:util';\n\n// Applies a series of generator functions asynchronously\nexport const pushChunks = callbackify(async (getChunks, state, getChunksArguments, transformStream) => {\n\tstate.currentIterable = getChunks(...getChunksArguments);\n\n\ttry {\n\t\tfor await (const chunk of state.currentIterable) {\n\t\t\ttransformStream.push(chunk);\n\t\t}\n\t} finally {\n\t\tdelete state.currentIterable;\n\t}\n});\n\n// For each new chunk, apply each `transform()` method\nexport const transformChunk = async function * (chunk, generators, index) {\n\tif (index === generators.length) {\n\t\tyield chunk;\n\t\treturn;\n\t}\n\n\tconst {transform = identityGenerator} = generators[index];\n\tfor await (const transformedChunk of transform(chunk)) {\n\t\tyield * transformChunk(transformedChunk, generators, index + 1);\n\t}\n};\n\n// At the end, apply each `final()` method, followed by the `transform()` method of the next transforms\nexport const finalChunks = async function * (generators) {\n\tfor (const [index, {final}] of Object.entries(generators)) {\n\t\tyield * generatorFinalChunks(final, Number(index), generators);\n\t}\n};\n\nconst generatorFinalChunks = async function * (final, index, generators) {\n\tif (final === undefined) {\n\t\treturn;\n\t}\n\n\tfor await (const finalChunk of final()) {\n\t\tyield * transformChunk(finalChunk, generators, index + 1);\n\t}\n};\n\n// Cancel any ongoing async generator when the Transform is destroyed, e.g. when the subprocess errors\nexport const destroyTransform = callbackify(async ({currentIterable}, error) => {\n\tif (currentIterable !== undefined) {\n\t\tawait (error ? currentIterable.throw(error) : currentIterable.return());\n\t\treturn;\n\t}\n\n\tif (error) {\n\t\tthrow error;\n\t}\n});\n\nconst identityGenerator = function * (chunk) {\n\tyield chunk;\n};\n","// Duplicate the code from `run-async.js` but as synchronous functions\nexport const pushChunksSync = (getChunksSync, getChunksArguments, transformStream, done) => {\n\ttry {\n\t\tfor (const chunk of getChunksSync(...getChunksArguments)) {\n\t\t\ttransformStream.push(chunk);\n\t\t}\n\n\t\tdone();\n\t} catch (error) {\n\t\tdone(error);\n\t}\n};\n\n// Run synchronous generators with `execaSync()`\nexport const runTransformSync = (generators, chunks) => [\n\t...chunks.flatMap(chunk => [...transformChunkSync(chunk, generators, 0)]),\n\t...finalChunksSync(generators),\n];\n\nexport const transformChunkSync = function * (chunk, generators, index) {\n\tif (index === generators.length) {\n\t\tyield chunk;\n\t\treturn;\n\t}\n\n\tconst {transform = identityGenerator} = generators[index];\n\tfor (const transformedChunk of transform(chunk)) {\n\t\tyield * transformChunkSync(transformedChunk, generators, index + 1);\n\t}\n};\n\nexport const finalChunksSync = function * (generators) {\n\tfor (const [index, {final}] of Object.entries(generators)) {\n\t\tyield * generatorFinalChunksSync(final, Number(index), generators);\n\t}\n};\n\nconst generatorFinalChunksSync = function * (final, index, generators) {\n\tif (final === undefined) {\n\t\treturn;\n\t}\n\n\tfor (const finalChunk of final()) {\n\t\tyield * transformChunkSync(finalChunk, generators, index + 1);\n\t}\n};\n\nconst identityGenerator = function * (chunk) {\n\tyield chunk;\n};\n","import {Transform, getDefaultHighWaterMark} from 'node:stream';\nimport {isAsyncGenerator} from '../stdio/type.js';\nimport {getSplitLinesGenerator, getAppendNewlineGenerator} from './split.js';\nimport {getValidateTransformInput, getValidateTransformReturn} from './validate.js';\nimport {getEncodingTransformGenerator} from './encoding-transform.js';\nimport {\n\tpushChunks,\n\ttransformChunk,\n\tfinalChunks,\n\tdestroyTransform,\n} from './run-async.js';\nimport {\n\tpushChunksSync,\n\ttransformChunkSync,\n\tfinalChunksSync,\n\trunTransformSync,\n} from './run-sync.js';\n\n/*\nGenerators can be used to transform/filter standard streams.\n\nGenerators have a simple syntax, yet allows all of the following:\n- Sharing `state` between chunks\n- Flushing logic, by using a `final` function\n- Asynchronous logic\n- Emitting multiple chunks from a single source chunk, even if spaced in time, by using multiple `yield`\n- Filtering, by using no `yield`\n\nTherefore, there is no need to allow Node.js or web transform streams.\n\nThe `highWaterMark` is kept as the default value, since this is what `subprocess.std*` uses.\n\nChunks are currently processed serially. We could add a `concurrency` option to parallelize in the future.\n\nTransform an array of generator functions into a `Transform` stream.\n`Duplex.from(generator)` cannot be used because it does not allow setting the `objectMode` and `highWaterMark`.\n*/\nexport const generatorToStream = ({\n\tvalue,\n\tvalue: {transform, final, writableObjectMode, readableObjectMode},\n\toptionName,\n}, {encoding}) => {\n\tconst state = {};\n\tconst generators = addInternalGenerators(value, encoding, optionName);\n\n\tconst transformAsync = isAsyncGenerator(transform);\n\tconst finalAsync = isAsyncGenerator(final);\n\tconst transformMethod = transformAsync\n\t\t? pushChunks.bind(undefined, transformChunk, state)\n\t\t: pushChunksSync.bind(undefined, transformChunkSync);\n\tconst finalMethod = transformAsync || finalAsync\n\t\t? pushChunks.bind(undefined, finalChunks, state)\n\t\t: pushChunksSync.bind(undefined, finalChunksSync);\n\tconst destroyMethod = transformAsync || finalAsync\n\t\t? destroyTransform.bind(undefined, state)\n\t\t: undefined;\n\n\tconst stream = new Transform({\n\t\twritableObjectMode,\n\t\twritableHighWaterMark: getDefaultHighWaterMark(writableObjectMode),\n\t\treadableObjectMode,\n\t\treadableHighWaterMark: getDefaultHighWaterMark(readableObjectMode),\n\t\ttransform(chunk, encoding, done) {\n\t\t\ttransformMethod([chunk, generators, 0], this, done);\n\t\t},\n\t\tflush(done) {\n\t\t\tfinalMethod([generators], this, done);\n\t\t},\n\t\tdestroy: destroyMethod,\n\t});\n\treturn {stream};\n};\n\n// Applies transform generators in sync mode\nexport const runGeneratorsSync = (chunks, stdioItems, encoding, isInput) => {\n\tconst generators = stdioItems.filter(({type}) => type === 'generator');\n\tconst reversedGenerators = isInput ? generators.reverse() : generators;\n\n\tfor (const {value, optionName} of reversedGenerators) {\n\t\tconst generators = addInternalGenerators(value, encoding, optionName);\n\t\tchunks = runTransformSync(generators, chunks);\n\t}\n\n\treturn chunks;\n};\n\n// Generators used internally to convert the chunk type, validate it, and split into lines\nconst addInternalGenerators = (\n\t{transform, final, binary, writableObjectMode, readableObjectMode, preserveNewlines},\n\tencoding,\n\toptionName,\n) => {\n\tconst state = {};\n\treturn [\n\t\t{transform: getValidateTransformInput(writableObjectMode, optionName)},\n\t\tgetEncodingTransformGenerator(binary, encoding, writableObjectMode),\n\t\tgetSplitLinesGenerator(binary, preserveNewlines, writableObjectMode, state),\n\t\t{transform, final},\n\t\t{transform: getValidateTransformReturn(readableObjectMode, optionName)},\n\t\tgetAppendNewlineGenerator({\n\t\t\tbinary,\n\t\t\tpreserveNewlines,\n\t\t\treadableObjectMode,\n\t\t\tstate,\n\t\t}),\n\t].filter(Boolean);\n};\n","import {runGeneratorsSync} from '../transform/generator.js';\nimport {joinToUint8Array, isUint8Array} from '../utils/uint-array.js';\nimport {TYPE_TO_MESSAGE} from '../stdio/type.js';\n\n// Apply `stdin`/`input`/`inputFile` options, before spawning, in sync mode, by converting it to the `input` option\nexport const addInputOptionsSync = (fileDescriptors, options) => {\n\tfor (const fdNumber of getInputFdNumbers(fileDescriptors)) {\n\t\taddInputOptionSync(fileDescriptors, fdNumber, options);\n\t}\n};\n\nconst getInputFdNumbers = fileDescriptors => new Set(Object.entries(fileDescriptors)\n\t.filter(([, {direction}]) => direction === 'input')\n\t.map(([fdNumber]) => Number(fdNumber)));\n\nconst addInputOptionSync = (fileDescriptors, fdNumber, options) => {\n\tconst {stdioItems} = fileDescriptors[fdNumber];\n\tconst allStdioItems = stdioItems.filter(({contents}) => contents !== undefined);\n\tif (allStdioItems.length === 0) {\n\t\treturn;\n\t}\n\n\tif (fdNumber !== 0) {\n\t\tconst [{type, optionName}] = allStdioItems;\n\t\tthrow new TypeError(`Only the \\`stdin\\` option, not \\`${optionName}\\`, can be ${TYPE_TO_MESSAGE[type]} with synchronous methods.`);\n\t}\n\n\tconst allContents = allStdioItems.map(({contents}) => contents);\n\tconst transformedContents = allContents.map(contents => applySingleInputGeneratorsSync(contents, stdioItems));\n\toptions.input = joinToUint8Array(transformedContents);\n};\n\nconst applySingleInputGeneratorsSync = (contents, stdioItems) => {\n\tconst newContents = runGeneratorsSync(contents, stdioItems, 'utf8', true);\n\tvalidateSerializable(newContents);\n\treturn joinToUint8Array(newContents);\n};\n\nconst validateSerializable = newContents => {\n\tconst invalidItem = newContents.find(item => typeof item !== 'string' && !isUint8Array(item));\n\tif (invalidItem !== undefined) {\n\t\tthrow new TypeError(`The \\`stdin\\` option is invalid: when passing objects as input, a transform must be used to serialize them to strings or Uint8Arrays: ${invalidItem}.`);\n\t}\n};\n","import {inspect} from 'node:util';\nimport {escapeLines} from '../arguments/escape.js';\nimport {BINARY_ENCODINGS} from '../arguments/encoding-option.js';\nimport {TRANSFORM_TYPES} from '../stdio/type.js';\nimport {verboseLog} from './log.js';\n\n// `ignore` opts-out of `verbose` for a specific stream.\n// `ipc` cannot use piping.\n// `inherit` would result in double printing.\n// They can also lead to double printing when passing file descriptor integers or `process.std*`.\n// This only leaves with `pipe` and `overlapped`.\nexport const shouldLogOutput = ({stdioItems, encoding, verboseInfo: {verbose}, fdNumber}) => fdNumber !== 'all'\n\t&& verbose[fdNumber] === 'full'\n\t&& !BINARY_ENCODINGS.has(encoding)\n\t&& fdUsesVerbose(fdNumber)\n\t&& (stdioItems.some(({type, value}) => type === 'native' && PIPED_STDIO_VALUES.has(value))\n\t|| stdioItems.every(({type}) => TRANSFORM_TYPES.has(type)));\n\n// Printing input streams would be confusing.\n// Files and streams can produce big outputs, which we don't want to print.\n// We could print `stdio[3+]` but it often is redirected to files and streams, with the same issue.\n// So we only print stdout and stderr.\nconst fdUsesVerbose = fdNumber => fdNumber === 1 || fdNumber === 2;\n\nconst PIPED_STDIO_VALUES = new Set(['pipe', 'overlapped']);\n\n// `verbose` printing logic with async methods\nexport const logLines = async (linesIterable, stream, verboseInfo) => {\n\tfor await (const line of linesIterable) {\n\t\tif (!isPipingStream(stream)) {\n\t\t\tlogLine(line, verboseInfo);\n\t\t}\n\t}\n};\n\n// `verbose` printing logic with sync methods\nexport const logLinesSync = (linesArray, verboseInfo) => {\n\tfor (const line of linesArray) {\n\t\tlogLine(line, verboseInfo);\n\t}\n};\n\n// When `subprocess.stdout|stderr.pipe()` is called, `verbose` becomes a noop.\n// This prevents the following problems:\n// - `.pipe()` achieves the same result as using `stdout: 'inherit'`, `stdout: stream`, etc. which also make `verbose` a noop.\n// For example, `subprocess.stdout.pipe(process.stdin)` would print each line twice.\n// - When chaining subprocesses with `subprocess.pipe(otherSubprocess)`, only the last one should print its output.\n// Detecting whether `.pipe()` is impossible without monkey-patching it, so we use the following undocumented property.\n// This is not a critical behavior since changes of the following property would only make `verbose` more verbose.\nconst isPipingStream = stream => stream._readableState.pipes.length > 0;\n\n// When `verbose` is `full`, print stdout|stderr\nconst logLine = (line, {verboseId}) => {\n\tconst lines = typeof line === 'string' ? line : inspect(line);\n\tconst escapedLines = escapeLines(lines);\n\tconst spacedLines = escapedLines.replaceAll('\\t', ' '.repeat(TAB_SIZE));\n\tverboseLog(spacedLines, verboseId, 'output');\n};\n\n// Same as `util.inspect()`\nconst TAB_SIZE = 2;\n","import {writeFileSync, appendFileSync} from 'node:fs';\nimport {shouldLogOutput, logLinesSync} from '../verbose/output.js';\nimport {runGeneratorsSync} from '../transform/generator.js';\nimport {splitLinesSync} from '../transform/split.js';\nimport {joinToString, joinToUint8Array, bufferToUint8Array} from '../utils/uint-array.js';\nimport {FILE_TYPES} from '../stdio/type.js';\nimport {truncateMaxBufferSync} from './max-buffer.js';\n\n// Apply `stdout`/`stderr` options, after spawning, in sync mode\nexport const transformOutputSync = ({fileDescriptors, syncResult: {output}, options, isMaxBuffer, verboseInfo}) => {\n\tif (output === null) {\n\t\treturn {output: Array.from({length: 3})};\n\t}\n\n\tconst state = {};\n\tconst outputFiles = new Set([]);\n\tconst transformedOutput = output.map((result, fdNumber) =>\n\t\ttransformOutputResultSync({\n\t\t\tresult,\n\t\t\tfileDescriptors,\n\t\t\tfdNumber,\n\t\t\tstate,\n\t\t\toutputFiles,\n\t\t\tisMaxBuffer,\n\t\t\tverboseInfo,\n\t\t}, options));\n\treturn {output: transformedOutput, ...state};\n};\n\nconst transformOutputResultSync = (\n\t{result, fileDescriptors, fdNumber, state, outputFiles, isMaxBuffer, verboseInfo},\n\t{buffer, encoding, lines, stripFinalNewline, maxBuffer},\n) => {\n\tif (result === null) {\n\t\treturn;\n\t}\n\n\tconst truncatedResult = truncateMaxBufferSync(result, isMaxBuffer, maxBuffer);\n\tconst uint8ArrayResult = bufferToUint8Array(truncatedResult);\n\tconst {stdioItems, objectMode} = fileDescriptors[fdNumber];\n\tconst chunks = runOutputGeneratorsSync([uint8ArrayResult], stdioItems, encoding, state);\n\tconst {serializedResult, finalResult = serializedResult} = serializeChunks({\n\t\tchunks,\n\t\tobjectMode,\n\t\tencoding,\n\t\tlines,\n\t\tstripFinalNewline,\n\t\tfdNumber,\n\t});\n\n\tif (shouldLogOutput({\n\t\tstdioItems,\n\t\tencoding,\n\t\tverboseInfo,\n\t\tfdNumber,\n\t})) {\n\t\tconst linesArray = splitLinesSync(serializedResult, false, objectMode);\n\t\tlogLinesSync(linesArray, verboseInfo);\n\t}\n\n\tconst returnedResult = buffer[fdNumber] ? finalResult : undefined;\n\n\ttry {\n\t\tif (state.error === undefined) {\n\t\t\twriteToFiles(serializedResult, stdioItems, outputFiles);\n\t\t}\n\n\t\treturn returnedResult;\n\t} catch (error) {\n\t\tstate.error = error;\n\t\treturn returnedResult;\n\t}\n};\n\n// Applies transform generators to `stdout`/`stderr`\nconst runOutputGeneratorsSync = (chunks, stdioItems, encoding, state) => {\n\ttry {\n\t\treturn runGeneratorsSync(chunks, stdioItems, encoding, false);\n\t} catch (error) {\n\t\tstate.error = error;\n\t\treturn chunks;\n\t}\n};\n\n// The contents is converted to three stages:\n// - serializedResult: used when the target is a file path/URL or a file descriptor (including 'inherit')\n// - finalResult/returnedResult: returned as `result.std*`\nconst serializeChunks = ({chunks, objectMode, encoding, lines, stripFinalNewline, fdNumber}) => {\n\tif (objectMode) {\n\t\treturn {serializedResult: chunks};\n\t}\n\n\tif (encoding === 'buffer') {\n\t\treturn {serializedResult: joinToUint8Array(chunks)};\n\t}\n\n\tconst serializedResult = joinToString(chunks, encoding);\n\tif (lines[fdNumber]) {\n\t\treturn {serializedResult, finalResult: splitLinesSync(serializedResult, !stripFinalNewline[fdNumber], objectMode)};\n\t}\n\n\treturn {serializedResult};\n};\n\n// When the `std*` target is a file path/URL or a file descriptor\nconst writeToFiles = (serializedResult, stdioItems, outputFiles) => {\n\tfor (const {path} of stdioItems.filter(({type}) => FILE_TYPES.has(type))) {\n\t\tconst pathString = typeof path === 'string' ? path : path.toString();\n\t\tif (outputFiles.has(pathString)) {\n\t\t\tappendFileSync(path, serializedResult);\n\t\t} else {\n\t\t\toutputFiles.add(pathString);\n\t\t\twriteFileSync(path, serializedResult);\n\t\t}\n\t}\n};\n","import {once} from 'node:events';\nimport {DiscardedError} from '../return/final-error.js';\n\n// If `error` is emitted before `spawn`, `exit` will never be emitted.\n// However, `error` might be emitted after `spawn`, e.g. with the `cancelSignal` option.\n// In that case, `exit` will still be emitted.\n// Since the `exit` event contains the signal name, we want to make sure we are listening for it.\n// This function also takes into account the following unlikely cases:\n// - `exit` being emitted in the same microtask as `spawn`\n// - `error` being emitted multiple times\nexport const waitForExit = async subprocess => {\n\tconst [spawnPayload, exitPayload] = await Promise.allSettled([\n\t\tonce(subprocess, 'spawn'),\n\t\tonce(subprocess, 'exit'),\n\t]);\n\n\tif (spawnPayload.status === 'rejected') {\n\t\treturn [];\n\t}\n\n\treturn exitPayload.status === 'rejected'\n\t\t? waitForSubprocessExit(subprocess)\n\t\t: exitPayload.value;\n};\n\nconst waitForSubprocessExit = async subprocess => {\n\ttry {\n\t\treturn await once(subprocess, 'exit');\n\t} catch {\n\t\treturn waitForSubprocessExit(subprocess);\n\t}\n};\n\n// Retrieve the final exit code and|or signal name\nexport const waitForSuccessfulExit = async exitPromise => {\n\tconst [exitCode, signal] = await exitPromise;\n\n\tif (!isSubprocessErrorExit(exitCode, signal) && isFailedExit(exitCode, signal)) {\n\t\tthrow new DiscardedError();\n\t}\n\n\treturn [exitCode, signal];\n};\n\n// When the subprocess fails due to an `error` event\nconst isSubprocessErrorExit = (exitCode, signal) => exitCode === undefined && signal === undefined;\n// When the subprocess fails due to a non-0 exit code or to a signal termination\nexport const isFailedExit = (exitCode, signal) => exitCode !== 0 || signal !== null;\n","import {DiscardedError} from '../return/final-error.js';\nimport {isMaxBufferSync} from '../io/max-buffer.js';\nimport {isFailedExit} from './exit-async.js';\n\n// Retrieve exit code, signal name and error information, with synchronous methods\nexport const getExitResultSync = ({error, status: exitCode, signal, output}, {maxBuffer}) => {\n\tconst resultError = getResultError(error, exitCode, signal);\n\tconst timedOut = resultError?.code === 'ETIMEDOUT';\n\tconst isMaxBuffer = isMaxBufferSync(resultError, output, maxBuffer);\n\treturn {\n\t\tresultError,\n\t\texitCode,\n\t\tsignal,\n\t\ttimedOut,\n\t\tisMaxBuffer,\n\t};\n};\n\nconst getResultError = (error, exitCode, signal) => {\n\tif (error !== undefined) {\n\t\treturn error;\n\t}\n\n\treturn isFailedExit(exitCode, signal) ? new DiscardedError() : undefined;\n};\n","import {spawnSync} from 'node:child_process';\nimport {handleCommand} from '../arguments/command.js';\nimport {normalizeOptions} from '../arguments/options.js';\nimport {makeError, makeEarlyError, makeSuccessResult} from '../return/result.js';\nimport {handleResult} from '../return/reject.js';\nimport {handleStdioSync} from '../stdio/handle-sync.js';\nimport {stripNewline} from '../io/strip-newline.js';\nimport {addInputOptionsSync} from '../io/input-sync.js';\nimport {transformOutputSync} from '../io/output-sync.js';\nimport {getMaxBufferSync} from '../io/max-buffer.js';\nimport {logEarlyResult} from '../verbose/complete.js';\nimport {getAllSync} from '../resolve/all-sync.js';\nimport {getExitResultSync} from '../resolve/exit-sync.js';\n\n// Main shared logic for all sync methods: `execaSync()`, `execaCommandSync()`, `$.sync()`\nexport const execaCoreSync = (rawFile, rawArguments, rawOptions) => {\n\tconst {file, commandArguments, command, escapedCommand, startTime, verboseInfo, options, fileDescriptors} = handleSyncArguments(rawFile, rawArguments, rawOptions);\n\tconst result = spawnSubprocessSync({\n\t\tfile,\n\t\tcommandArguments,\n\t\toptions,\n\t\tcommand,\n\t\tescapedCommand,\n\t\tverboseInfo,\n\t\tfileDescriptors,\n\t\tstartTime,\n\t});\n\treturn handleResult(result, verboseInfo, options);\n};\n\n// Compute arguments to pass to `child_process.spawnSync()`\nconst handleSyncArguments = (rawFile, rawArguments, rawOptions) => {\n\tconst {command, escapedCommand, startTime, verboseInfo} = handleCommand(rawFile, rawArguments, rawOptions);\n\n\ttry {\n\t\tconst syncOptions = normalizeSyncOptions(rawOptions);\n\t\tconst {file, commandArguments, options} = normalizeOptions(rawFile, rawArguments, syncOptions);\n\t\tvalidateSyncOptions(options);\n\t\tconst fileDescriptors = handleStdioSync(options, verboseInfo);\n\t\treturn {\n\t\t\tfile,\n\t\t\tcommandArguments,\n\t\t\tcommand,\n\t\t\tescapedCommand,\n\t\t\tstartTime,\n\t\t\tverboseInfo,\n\t\t\toptions,\n\t\t\tfileDescriptors,\n\t\t};\n\t} catch (error) {\n\t\tlogEarlyResult(error, startTime, verboseInfo);\n\t\tthrow error;\n\t}\n};\n\n// Options normalization logic specific to sync methods\nconst normalizeSyncOptions = options => options.node && !options.ipc ? {...options, ipc: false} : options;\n\n// Options validation logic specific to sync methods\nconst validateSyncOptions = ({ipc, detached, cancelSignal}) => {\n\tif (ipc) {\n\t\tthrowInvalidSyncOption('ipc: true');\n\t}\n\n\tif (detached) {\n\t\tthrowInvalidSyncOption('detached: true');\n\t}\n\n\tif (cancelSignal) {\n\t\tthrowInvalidSyncOption('cancelSignal');\n\t}\n};\n\nconst throwInvalidSyncOption = value => {\n\tthrow new TypeError(`The \"${value}\" option cannot be used with synchronous methods.`);\n};\n\nconst spawnSubprocessSync = ({file, commandArguments, options, command, escapedCommand, verboseInfo, fileDescriptors, startTime}) => {\n\tconst syncResult = runSubprocessSync({\n\t\tfile,\n\t\tcommandArguments,\n\t\toptions,\n\t\tcommand,\n\t\tescapedCommand,\n\t\tfileDescriptors,\n\t\tstartTime,\n\t});\n\tif (syncResult.failed) {\n\t\treturn syncResult;\n\t}\n\n\tconst {resultError, exitCode, signal, timedOut, isMaxBuffer} = getExitResultSync(syncResult, options);\n\tconst {output, error = resultError} = transformOutputSync({\n\t\tfileDescriptors,\n\t\tsyncResult,\n\t\toptions,\n\t\tisMaxBuffer,\n\t\tverboseInfo,\n\t});\n\tconst stdio = output.map((stdioOutput, fdNumber) => stripNewline(stdioOutput, options, fdNumber));\n\tconst all = stripNewline(getAllSync(output, options), options, 'all');\n\treturn getSyncResult({\n\t\terror,\n\t\texitCode,\n\t\tsignal,\n\t\ttimedOut,\n\t\tisMaxBuffer,\n\t\tstdio,\n\t\tall,\n\t\toptions,\n\t\tcommand,\n\t\tescapedCommand,\n\t\tstartTime,\n\t});\n};\n\nconst runSubprocessSync = ({file, commandArguments, options, command, escapedCommand, fileDescriptors, startTime}) => {\n\ttry {\n\t\taddInputOptionsSync(fileDescriptors, options);\n\t\tconst normalizedOptions = normalizeSpawnSyncOptions(options);\n\t\treturn spawnSync(file, commandArguments, normalizedOptions);\n\t} catch (error) {\n\t\treturn makeEarlyError({\n\t\t\terror,\n\t\t\tcommand,\n\t\t\tescapedCommand,\n\t\t\tfileDescriptors,\n\t\t\toptions,\n\t\t\tstartTime,\n\t\t\tisSync: true,\n\t\t});\n\t}\n};\n\n// The `encoding` option is handled by Execa, not by `child_process.spawnSync()`\nconst normalizeSpawnSyncOptions = ({encoding, maxBuffer, ...options}) => ({...options, encoding: 'buffer', maxBuffer: getMaxBufferSync(maxBuffer)});\n\nconst getSyncResult = ({error, exitCode, signal, timedOut, isMaxBuffer, stdio, all, options, command, escapedCommand, startTime}) => error === undefined\n\t? makeSuccessResult({\n\t\tcommand,\n\t\tescapedCommand,\n\t\tstdio,\n\t\tall,\n\t\toptions,\n\t\tstartTime,\n\t})\n\t: makeError({\n\t\terror,\n\t\tcommand,\n\t\tescapedCommand,\n\t\ttimedOut,\n\t\tisCanceled: false,\n\t\tisMaxBuffer,\n\t\texitCode,\n\t\tsignal,\n\t\tstdio,\n\t\tall,\n\t\toptions,\n\t\tstartTime,\n\t\tisSync: true,\n\t});\n","import {isUint8Array, concatUint8Arrays} from '../utils/uint-array.js';\nimport {stripNewline} from '../io/strip-newline.js';\n\n// Retrieve `result.all` with synchronous methods\nexport const getAllSync = ([, stdout, stderr], options) => {\n\tif (!options.all) {\n\t\treturn;\n\t}\n\n\tif (stdout === undefined) {\n\t\treturn stderr;\n\t}\n\n\tif (stderr === undefined) {\n\t\treturn stdout;\n\t}\n\n\tif (Array.isArray(stdout)) {\n\t\treturn Array.isArray(stderr)\n\t\t\t? [...stdout, ...stderr]\n\t\t\t: [...stdout, stripNewline(stderr, options, 'all')];\n\t}\n\n\tif (Array.isArray(stderr)) {\n\t\treturn [stripNewline(stdout, options, 'all'), ...stderr];\n\t}\n\n\tif (isUint8Array(stdout) && isUint8Array(stderr)) {\n\t\treturn concatUint8Arrays([stdout, stderr]);\n\t}\n\n\treturn `${stdout}${stderr}`;\n};\n","import {ChildProcess} from 'node:child_process';\nimport {\n\tPassThrough,\n\tReadable,\n\tWritable,\n\tDuplex,\n} from 'node:stream';\nimport {cleanupCustomStreams} from '../stdio/handle.js';\nimport {makeEarlyError} from './result.js';\nimport {handleResult} from './reject.js';\n\n// When the subprocess fails to spawn.\n// We ensure the returned error is always both a promise and a subprocess.\nexport const handleEarlyError = ({error, command, escapedCommand, fileDescriptors, options, startTime, verboseInfo}) => {\n\tcleanupCustomStreams(fileDescriptors);\n\n\tconst subprocess = new ChildProcess();\n\tcreateDummyStreams(subprocess, fileDescriptors);\n\tObject.assign(subprocess, {readable, writable, duplex});\n\n\tconst earlyError = makeEarlyError({\n\t\terror,\n\t\tcommand,\n\t\tescapedCommand,\n\t\tfileDescriptors,\n\t\toptions,\n\t\tstartTime,\n\t\tisSync: false,\n\t});\n\tconst promise = handleDummyPromise(earlyError, verboseInfo, options);\n\treturn {subprocess, promise};\n};\n\nconst createDummyStreams = (subprocess, fileDescriptors) => {\n\tconst stdin = createDummyStream();\n\tconst stdout = createDummyStream();\n\tconst stderr = createDummyStream();\n\tconst extraStdio = Array.from({length: fileDescriptors.length - 3}, createDummyStream);\n\tconst all = createDummyStream();\n\tconst stdio = [stdin, stdout, stderr, ...extraStdio];\n\tObject.assign(subprocess, {\n\t\tstdin,\n\t\tstdout,\n\t\tstderr,\n\t\tall,\n\t\tstdio,\n\t});\n};\n\nconst createDummyStream = () => {\n\tconst stream = new PassThrough();\n\tstream.end();\n\treturn stream;\n};\n\nconst readable = () => new Readable({read() {}});\nconst writable = () => new Writable({write() {}});\nconst duplex = () => new Duplex({read() {}, write() {}});\n\nconst handleDummyPromise = async (error, verboseInfo, options) => handleResult(error, verboseInfo, options);\n","import {createReadStream, createWriteStream} from 'node:fs';\nimport {Buffer} from 'node:buffer';\nimport {Readable, Writable, Duplex} from 'node:stream';\nimport {generatorToStream} from '../transform/generator.js';\nimport {handleStdio} from './handle.js';\nimport {TYPE_TO_MESSAGE} from './type.js';\n\n// Handle `input`, `inputFile`, `stdin`, `stdout` and `stderr` options, before spawning, in async mode\nexport const handleStdioAsync = (options, verboseInfo) => handleStdio(addPropertiesAsync, options, verboseInfo, false);\n\nconst forbiddenIfAsync = ({type, optionName}) => {\n\tthrow new TypeError(`The \\`${optionName}\\` option cannot be ${TYPE_TO_MESSAGE[type]}.`);\n};\n\n// Create streams used internally for piping when using specific values for the `std*` options, in async mode.\n// For example, `stdout: {file}` creates a file stream, which is piped from/to.\nconst addProperties = {\n\tfileNumber: forbiddenIfAsync,\n\tgenerator: generatorToStream,\n\tasyncGenerator: generatorToStream,\n\tnodeStream: ({value}) => ({stream: value}),\n\twebTransform({value: {transform, writableObjectMode, readableObjectMode}}) {\n\t\tconst objectMode = writableObjectMode || readableObjectMode;\n\t\tconst stream = Duplex.fromWeb(transform, {objectMode});\n\t\treturn {stream};\n\t},\n\tduplex: ({value: {transform}}) => ({stream: transform}),\n\tnative() {},\n};\n\nconst addPropertiesAsync = {\n\tinput: {\n\t\t...addProperties,\n\t\tfileUrl: ({value}) => ({stream: createReadStream(value)}),\n\t\tfilePath: ({value: {file}}) => ({stream: createReadStream(file)}),\n\t\twebStream: ({value}) => ({stream: Readable.fromWeb(value)}),\n\t\titerable: ({value}) => ({stream: Readable.from(value)}),\n\t\tasyncIterable: ({value}) => ({stream: Readable.from(value)}),\n\t\tstring: ({value}) => ({stream: Readable.from(value)}),\n\t\tuint8Array: ({value}) => ({stream: Readable.from(Buffer.from(value))}),\n\t},\n\toutput: {\n\t\t...addProperties,\n\t\tfileUrl: ({value}) => ({stream: createWriteStream(value)}),\n\t\tfilePath: ({value: {file}}) => ({stream: createWriteStream(file)}),\n\t\twebStream: ({value}) => ({stream: Writable.fromWeb(value)}),\n\t\titerable: forbiddenIfAsync,\n\t\tasyncIterable: forbiddenIfAsync,\n\t\tstring: forbiddenIfAsync,\n\t\tuint8Array: forbiddenIfAsync,\n\t},\n};\n","import {on, once} from 'node:events';\nimport {PassThrough as PassThroughStream, getDefaultHighWaterMark} from 'node:stream';\nimport {finished} from 'node:stream/promises';\n\nexport default function mergeStreams(streams) {\n\tif (!Array.isArray(streams)) {\n\t\tthrow new TypeError(`Expected an array, got \\`${typeof streams}\\`.`);\n\t}\n\n\tfor (const stream of streams) {\n\t\tvalidateStream(stream);\n\t}\n\n\tconst objectMode = streams.some(({readableObjectMode}) => readableObjectMode);\n\tconst highWaterMark = getHighWaterMark(streams, objectMode);\n\tconst passThroughStream = new MergedStream({\n\t\tobjectMode,\n\t\twritableHighWaterMark: highWaterMark,\n\t\treadableHighWaterMark: highWaterMark,\n\t});\n\n\tfor (const stream of streams) {\n\t\tpassThroughStream.add(stream);\n\t}\n\n\treturn passThroughStream;\n}\n\nconst getHighWaterMark = (streams, objectMode) => {\n\tif (streams.length === 0) {\n\t\treturn getDefaultHighWaterMark(objectMode);\n\t}\n\n\tconst highWaterMarks = streams\n\t\t.filter(({readableObjectMode}) => readableObjectMode === objectMode)\n\t\t.map(({readableHighWaterMark}) => readableHighWaterMark);\n\treturn Math.max(...highWaterMarks);\n};\n\nclass MergedStream extends PassThroughStream {\n\t#streams = new Set([]);\n\t#ended = new Set([]);\n\t#aborted = new Set([]);\n\t#onFinished;\n\t#unpipeEvent = Symbol('unpipe');\n\t#streamPromises = new WeakMap();\n\n\tadd(stream) {\n\t\tvalidateStream(stream);\n\n\t\tif (this.#streams.has(stream)) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.#streams.add(stream);\n\n\t\tthis.#onFinished ??= onMergedStreamFinished(this, this.#streams, this.#unpipeEvent);\n\t\tconst streamPromise = endWhenStreamsDone({\n\t\t\tpassThroughStream: this,\n\t\t\tstream,\n\t\t\tstreams: this.#streams,\n\t\t\tended: this.#ended,\n\t\t\taborted: this.#aborted,\n\t\t\tonFinished: this.#onFinished,\n\t\t\tunpipeEvent: this.#unpipeEvent,\n\t\t});\n\t\tthis.#streamPromises.set(stream, streamPromise);\n\n\t\tstream.pipe(this, {end: false});\n\t}\n\n\tasync remove(stream) {\n\t\tvalidateStream(stream);\n\n\t\tif (!this.#streams.has(stream)) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst streamPromise = this.#streamPromises.get(stream);\n\t\tif (streamPromise === undefined) {\n\t\t\treturn false;\n\t\t}\n\n\t\tthis.#streamPromises.delete(stream);\n\n\t\tstream.unpipe(this);\n\t\tawait streamPromise;\n\t\treturn true;\n\t}\n}\n\nconst onMergedStreamFinished = async (passThroughStream, streams, unpipeEvent) => {\n\tupdateMaxListeners(passThroughStream, PASSTHROUGH_LISTENERS_COUNT);\n\tconst controller = new AbortController();\n\n\ttry {\n\t\tawait Promise.race([\n\t\t\tonMergedStreamEnd(passThroughStream, controller),\n\t\t\tonInputStreamsUnpipe(passThroughStream, streams, unpipeEvent, controller),\n\t\t]);\n\t} finally {\n\t\tcontroller.abort();\n\t\tupdateMaxListeners(passThroughStream, -PASSTHROUGH_LISTENERS_COUNT);\n\t}\n};\n\nconst onMergedStreamEnd = async (passThroughStream, {signal}) => {\n\ttry {\n\t\tawait finished(passThroughStream, {signal, cleanup: true});\n\t} catch (error) {\n\t\terrorOrAbortStream(passThroughStream, error);\n\t\tthrow error;\n\t}\n};\n\nconst onInputStreamsUnpipe = async (passThroughStream, streams, unpipeEvent, {signal}) => {\n\tfor await (const [unpipedStream] of on(passThroughStream, 'unpipe', {signal})) {\n\t\tif (streams.has(unpipedStream)) {\n\t\t\tunpipedStream.emit(unpipeEvent);\n\t\t}\n\t}\n};\n\nconst validateStream = stream => {\n\tif (typeof stream?.pipe !== 'function') {\n\t\tthrow new TypeError(`Expected a readable stream, got: \\`${typeof stream}\\`.`);\n\t}\n};\n\nconst endWhenStreamsDone = async ({passThroughStream, stream, streams, ended, aborted, onFinished, unpipeEvent}) => {\n\tupdateMaxListeners(passThroughStream, PASSTHROUGH_LISTENERS_PER_STREAM);\n\tconst controller = new AbortController();\n\n\ttry {\n\t\tawait Promise.race([\n\t\t\tafterMergedStreamFinished(onFinished, stream, controller),\n\t\t\tonInputStreamEnd({\n\t\t\t\tpassThroughStream,\n\t\t\t\tstream,\n\t\t\t\tstreams,\n\t\t\t\tended,\n\t\t\t\taborted,\n\t\t\t\tcontroller,\n\t\t\t}),\n\t\t\tonInputStreamUnpipe({\n\t\t\t\tstream,\n\t\t\t\tstreams,\n\t\t\t\tended,\n\t\t\t\taborted,\n\t\t\t\tunpipeEvent,\n\t\t\t\tcontroller,\n\t\t\t}),\n\t\t]);\n\t} finally {\n\t\tcontroller.abort();\n\t\tupdateMaxListeners(passThroughStream, -PASSTHROUGH_LISTENERS_PER_STREAM);\n\t}\n\n\tif (streams.size > 0 && streams.size === ended.size + aborted.size) {\n\t\tif (ended.size === 0 && aborted.size > 0) {\n\t\t\tabortStream(passThroughStream);\n\t\t} else {\n\t\t\tendStream(passThroughStream);\n\t\t}\n\t}\n};\n\nconst afterMergedStreamFinished = async (onFinished, stream, {signal}) => {\n\ttry {\n\t\tawait onFinished;\n\t\tif (!signal.aborted) {\n\t\t\tabortStream(stream);\n\t\t}\n\t} catch (error) {\n\t\tif (!signal.aborted) {\n\t\t\terrorOrAbortStream(stream, error);\n\t\t}\n\t}\n};\n\nconst onInputStreamEnd = async ({passThroughStream, stream, streams, ended, aborted, controller: {signal}}) => {\n\ttry {\n\t\tawait finished(stream, {\n\t\t\tsignal,\n\t\t\tcleanup: true,\n\t\t\treadable: true,\n\t\t\twritable: false,\n\t\t});\n\t\tif (streams.has(stream)) {\n\t\t\tended.add(stream);\n\t\t}\n\t} catch (error) {\n\t\tif (signal.aborted || !streams.has(stream)) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (isAbortError(error)) {\n\t\t\taborted.add(stream);\n\t\t} else {\n\t\t\terrorStream(passThroughStream, error);\n\t\t}\n\t}\n};\n\nconst onInputStreamUnpipe = async ({stream, streams, ended, aborted, unpipeEvent, controller: {signal}}) => {\n\tawait once(stream, unpipeEvent, {signal});\n\n\tif (!stream.readable) {\n\t\treturn once(signal, 'abort', {signal});\n\t}\n\n\tstreams.delete(stream);\n\tended.delete(stream);\n\taborted.delete(stream);\n};\n\nconst endStream = stream => {\n\tif (stream.writable) {\n\t\tstream.end();\n\t}\n};\n\nconst errorOrAbortStream = (stream, error) => {\n\tif (isAbortError(error)) {\n\t\tabortStream(stream);\n\t} else {\n\t\terrorStream(stream, error);\n\t}\n};\n\n// This is the error thrown by `finished()` on `stream.destroy()`\nconst isAbortError = error => error?.code === 'ERR_STREAM_PREMATURE_CLOSE';\n\nconst abortStream = stream => {\n\tif (stream.readable || stream.writable) {\n\t\tstream.destroy();\n\t}\n};\n\n// `stream.destroy(error)` crashes the process with `uncaughtException` if no `error` event listener exists on `stream`.\n// We take care of error handling on user behalf, so we do not want this to happen.\nconst errorStream = (stream, error) => {\n\tif (!stream.destroyed) {\n\t\tstream.once('error', noop);\n\t\tstream.destroy(error);\n\t}\n};\n\nconst noop = () => {};\n\nconst updateMaxListeners = (passThroughStream, increment) => {\n\tconst maxListeners = passThroughStream.getMaxListeners();\n\tif (maxListeners !== 0 && maxListeners !== Number.POSITIVE_INFINITY) {\n\t\tpassThroughStream.setMaxListeners(maxListeners + increment);\n\t}\n};\n\n// Number of times `passThroughStream.on()` is called regardless of streams:\n// - once due to `finished(passThroughStream)`\n// - once due to `on(passThroughStream)`\nconst PASSTHROUGH_LISTENERS_COUNT = 2;\n\n// Number of times `passThroughStream.on()` is called per stream:\n// - once due to `stream.pipe(passThroughStream)`\nconst PASSTHROUGH_LISTENERS_PER_STREAM = 1;\n","import {addAbortListener} from 'node:events';\n\n// Temporarily increase the maximum number of listeners on an eventEmitter\nexport const incrementMaxListeners = (eventEmitter, maxListenersIncrement, signal) => {\n\tconst maxListeners = eventEmitter.getMaxListeners();\n\tif (maxListeners === 0 || maxListeners === Number.POSITIVE_INFINITY) {\n\t\treturn;\n\t}\n\n\teventEmitter.setMaxListeners(maxListeners + maxListenersIncrement);\n\taddAbortListener(signal, () => {\n\t\teventEmitter.setMaxListeners(eventEmitter.getMaxListeners() - maxListenersIncrement);\n\t});\n};\n","import {finished} from 'node:stream/promises';\nimport {isStandardStream} from '../utils/standard-stream.js';\n\n// Similar to `Stream.pipeline(source, destination)`, but does not destroy standard streams\nexport const pipeStreams = (source, destination) => {\n\tsource.pipe(destination);\n\tonSourceFinish(source, destination);\n\tonDestinationFinish(source, destination);\n};\n\n// `source.pipe(destination)` makes `destination` end when `source` ends.\n// But it does not propagate aborts or errors. This function does it.\nconst onSourceFinish = async (source, destination) => {\n\tif (isStandardStream(source) || isStandardStream(destination)) {\n\t\treturn;\n\t}\n\n\ttry {\n\t\tawait finished(source, {cleanup: true, readable: true, writable: false});\n\t} catch {}\n\n\tendDestinationStream(destination);\n};\n\nexport const endDestinationStream = destination => {\n\tif (destination.writable) {\n\t\tdestination.end();\n\t}\n};\n\n// We do the same thing in the other direction as well.\nconst onDestinationFinish = async (source, destination) => {\n\tif (isStandardStream(source) || isStandardStream(destination)) {\n\t\treturn;\n\t}\n\n\ttry {\n\t\tawait finished(destination, {cleanup: true, readable: false, writable: true});\n\t} catch {}\n\n\tabortSourceStream(source);\n};\n\nexport const abortSourceStream = source => {\n\tif (source.readable) {\n\t\tsource.destroy();\n\t}\n};\n","import mergeStreams from '@sindresorhus/merge-streams';\nimport {isStandardStream} from '../utils/standard-stream.js';\nimport {incrementMaxListeners} from '../utils/max-listeners.js';\nimport {TRANSFORM_TYPES} from '../stdio/type.js';\nimport {pipeStreams} from './pipeline.js';\n\n// Handle `input`, `inputFile`, `stdin`, `stdout` and `stderr` options, after spawning, in async mode\n// When multiple input streams are used, we merge them to ensure the output stream ends only once each input stream has ended\nexport const pipeOutputAsync = (subprocess, fileDescriptors, controller) => {\n\tconst pipeGroups = new Map();\n\n\tfor (const [fdNumber, {stdioItems, direction}] of Object.entries(fileDescriptors)) {\n\t\tfor (const {stream} of stdioItems.filter(({type}) => TRANSFORM_TYPES.has(type))) {\n\t\t\tpipeTransform(subprocess, stream, direction, fdNumber);\n\t\t}\n\n\t\tfor (const {stream} of stdioItems.filter(({type}) => !TRANSFORM_TYPES.has(type))) {\n\t\t\tpipeStdioItem({\n\t\t\t\tsubprocess,\n\t\t\t\tstream,\n\t\t\t\tdirection,\n\t\t\t\tfdNumber,\n\t\t\t\tpipeGroups,\n\t\t\t\tcontroller,\n\t\t\t});\n\t\t}\n\t}\n\n\tfor (const [outputStream, inputStreams] of pipeGroups.entries()) {\n\t\tconst inputStream = inputStreams.length === 1 ? inputStreams[0] : mergeStreams(inputStreams);\n\t\tpipeStreams(inputStream, outputStream);\n\t}\n};\n\n// When using transforms, `subprocess.stdin|stdout|stderr|stdio` is directly mutated\nconst pipeTransform = (subprocess, stream, direction, fdNumber) => {\n\tif (direction === 'output') {\n\t\tpipeStreams(subprocess.stdio[fdNumber], stream);\n\t} else {\n\t\tpipeStreams(stream, subprocess.stdio[fdNumber]);\n\t}\n\n\tconst streamProperty = SUBPROCESS_STREAM_PROPERTIES[fdNumber];\n\tif (streamProperty !== undefined) {\n\t\tsubprocess[streamProperty] = stream;\n\t}\n\n\tsubprocess.stdio[fdNumber] = stream;\n};\n\nconst SUBPROCESS_STREAM_PROPERTIES = ['stdin', 'stdout', 'stderr'];\n\n// Most `std*` option values involve piping `subprocess.std*` to a stream.\n// The stream is either passed by the user or created internally.\nconst pipeStdioItem = ({subprocess, stream, direction, fdNumber, pipeGroups, controller}) => {\n\tif (stream === undefined) {\n\t\treturn;\n\t}\n\n\tsetStandardStreamMaxListeners(stream, controller);\n\n\tconst [inputStream, outputStream] = direction === 'output'\n\t\t? [stream, subprocess.stdio[fdNumber]]\n\t\t: [subprocess.stdio[fdNumber], stream];\n\tconst outputStreams = pipeGroups.get(inputStream) ?? [];\n\tpipeGroups.set(inputStream, [...outputStreams, outputStream]);\n};\n\n// Multiple subprocesses might be piping from/to `process.std*` at the same time.\n// This is not necessarily an error and should not print a `maxListeners` warning.\nconst setStandardStreamMaxListeners = (stream, {signal}) => {\n\tif (isStandardStream(stream)) {\n\t\tincrementMaxListeners(stream, MAX_LISTENERS_INCREMENT, signal);\n\t}\n};\n\n// `source.pipe(destination)` adds at most 1 listener for each event.\n// If `stdin` option is an array, the values might be combined with `merge-streams`.\n// That library also listens for `source` end, which adds 1 more listener.\nconst MAX_LISTENERS_INCREMENT = 2;\n","/**\n * This is not the set of all possible signals.\n *\n * It IS, however, the set of all signals that trigger\n * an exit on either Linux or BSD systems. Linux is a\n * superset of the signal names supported on BSD, and\n * the unknown signals just fail to register, so we can\n * catch that easily enough.\n *\n * Windows signals are a different set, since there are\n * signals that terminate Windows processes, but don't\n * terminate (or don't even exist) on Posix systems.\n *\n * Don't bother with SIGKILL. It's uncatchable, which\n * means that we can't fire any callbacks anyway.\n *\n * If a user does happen to register a handler on a non-\n * fatal signal like SIGWINCH or something, and then\n * exit, it'll end up firing `process.emit('exit')`, so\n * the handler will be fired anyway.\n *\n * SIGBUS, SIGFPE, SIGSEGV and SIGILL, when not raised\n * artificially, inherently leave the process in a\n * state from which it is not safe to try and enter JS\n * listeners.\n */\nexport const signals = [];\nsignals.push('SIGHUP', 'SIGINT', 'SIGTERM');\nif (process.platform !== 'win32') {\n signals.push('SIGALRM', 'SIGABRT', 'SIGVTALRM', 'SIGXCPU', 'SIGXFSZ', 'SIGUSR2', 'SIGTRAP', 'SIGSYS', 'SIGQUIT', 'SIGIOT'\n // should detect profiler and enable/disable accordingly.\n // see #21\n // 'SIGPROF'\n );\n}\nif (process.platform === 'linux') {\n signals.push('SIGIO', 'SIGPOLL', 'SIGPWR', 'SIGSTKFLT');\n}\n//# sourceMappingURL=signals.js.map","// Note: since nyc uses this module to output coverage, any lines\n// that are in the direct sync flow of nyc's outputCoverage are\n// ignored, since we can never get coverage for them.\n// grab a reference to node's real process object right away\nimport { signals } from './signals.js';\nexport { signals };\nconst processOk = (process) => !!process &&\n typeof process === 'object' &&\n typeof process.removeListener === 'function' &&\n typeof process.emit === 'function' &&\n typeof process.reallyExit === 'function' &&\n typeof process.listeners === 'function' &&\n typeof process.kill === 'function' &&\n typeof process.pid === 'number' &&\n typeof process.on === 'function';\nconst kExitEmitter = Symbol.for('signal-exit emitter');\nconst global = globalThis;\nconst ObjectDefineProperty = Object.defineProperty.bind(Object);\n// teeny special purpose ee\nclass Emitter {\n emitted = {\n afterExit: false,\n exit: false,\n };\n listeners = {\n afterExit: [],\n exit: [],\n };\n count = 0;\n id = Math.random();\n constructor() {\n if (global[kExitEmitter]) {\n return global[kExitEmitter];\n }\n ObjectDefineProperty(global, kExitEmitter, {\n value: this,\n writable: false,\n enumerable: false,\n configurable: false,\n });\n }\n on(ev, fn) {\n this.listeners[ev].push(fn);\n }\n removeListener(ev, fn) {\n const list = this.listeners[ev];\n const i = list.indexOf(fn);\n /* c8 ignore start */\n if (i === -1) {\n return;\n }\n /* c8 ignore stop */\n if (i === 0 && list.length === 1) {\n list.length = 0;\n }\n else {\n list.splice(i, 1);\n }\n }\n emit(ev, code, signal) {\n if (this.emitted[ev]) {\n return false;\n }\n this.emitted[ev] = true;\n let ret = false;\n for (const fn of this.listeners[ev]) {\n ret = fn(code, signal) === true || ret;\n }\n if (ev === 'exit') {\n ret = this.emit('afterExit', code, signal) || ret;\n }\n return ret;\n }\n}\nclass SignalExitBase {\n}\nconst signalExitWrap = (handler) => {\n return {\n onExit(cb, opts) {\n return handler.onExit(cb, opts);\n },\n load() {\n return handler.load();\n },\n unload() {\n return handler.unload();\n },\n };\n};\nclass SignalExitFallback extends SignalExitBase {\n onExit() {\n return () => { };\n }\n load() { }\n unload() { }\n}\nclass SignalExit extends SignalExitBase {\n // \"SIGHUP\" throws an `ENOSYS` error on Windows,\n // so use a supported signal instead\n /* c8 ignore start */\n #hupSig = process.platform === 'win32' ? 'SIGINT' : 'SIGHUP';\n /* c8 ignore stop */\n #emitter = new Emitter();\n #process;\n #originalProcessEmit;\n #originalProcessReallyExit;\n #sigListeners = {};\n #loaded = false;\n constructor(process) {\n super();\n this.#process = process;\n // { : , ... }\n this.#sigListeners = {};\n for (const sig of signals) {\n this.#sigListeners[sig] = () => {\n // If there are no other listeners, an exit is coming!\n // Simplest way: remove us and then re-send the signal.\n // We know that this will kill the process, so we can\n // safely emit now.\n const listeners = this.#process.listeners(sig);\n let { count } = this.#emitter;\n // This is a workaround for the fact that signal-exit v3 and signal\n // exit v4 are not aware of each other, and each will attempt to let\n // the other handle it, so neither of them do. To correct this, we\n // detect if we're the only handler *except* for previous versions\n // of signal-exit, and increment by the count of listeners it has\n // created.\n /* c8 ignore start */\n const p = process;\n if (typeof p.__signal_exit_emitter__ === 'object' &&\n typeof p.__signal_exit_emitter__.count === 'number') {\n count += p.__signal_exit_emitter__.count;\n }\n /* c8 ignore stop */\n if (listeners.length === count) {\n this.unload();\n const ret = this.#emitter.emit('exit', null, sig);\n /* c8 ignore start */\n const s = sig === 'SIGHUP' ? this.#hupSig : sig;\n if (!ret)\n process.kill(process.pid, s);\n /* c8 ignore stop */\n }\n };\n }\n this.#originalProcessReallyExit = process.reallyExit;\n this.#originalProcessEmit = process.emit;\n }\n onExit(cb, opts) {\n /* c8 ignore start */\n if (!processOk(this.#process)) {\n return () => { };\n }\n /* c8 ignore stop */\n if (this.#loaded === false) {\n this.load();\n }\n const ev = opts?.alwaysLast ? 'afterExit' : 'exit';\n this.#emitter.on(ev, cb);\n return () => {\n this.#emitter.removeListener(ev, cb);\n if (this.#emitter.listeners['exit'].length === 0 &&\n this.#emitter.listeners['afterExit'].length === 0) {\n this.unload();\n }\n };\n }\n load() {\n if (this.#loaded) {\n return;\n }\n this.#loaded = true;\n // This is the number of onSignalExit's that are in play.\n // It's important so that we can count the correct number of\n // listeners on signals, and don't wait for the other one to\n // handle it instead of us.\n this.#emitter.count += 1;\n for (const sig of signals) {\n try {\n const fn = this.#sigListeners[sig];\n if (fn)\n this.#process.on(sig, fn);\n }\n catch (_) { }\n }\n this.#process.emit = (ev, ...a) => {\n return this.#processEmit(ev, ...a);\n };\n this.#process.reallyExit = (code) => {\n return this.#processReallyExit(code);\n };\n }\n unload() {\n if (!this.#loaded) {\n return;\n }\n this.#loaded = false;\n signals.forEach(sig => {\n const listener = this.#sigListeners[sig];\n /* c8 ignore start */\n if (!listener) {\n throw new Error('Listener not defined for signal: ' + sig);\n }\n /* c8 ignore stop */\n try {\n this.#process.removeListener(sig, listener);\n /* c8 ignore start */\n }\n catch (_) { }\n /* c8 ignore stop */\n });\n this.#process.emit = this.#originalProcessEmit;\n this.#process.reallyExit = this.#originalProcessReallyExit;\n this.#emitter.count -= 1;\n }\n #processReallyExit(code) {\n /* c8 ignore start */\n if (!processOk(this.#process)) {\n return 0;\n }\n this.#process.exitCode = code || 0;\n /* c8 ignore stop */\n this.#emitter.emit('exit', this.#process.exitCode, null);\n return this.#originalProcessReallyExit.call(this.#process, this.#process.exitCode);\n }\n #processEmit(ev, ...args) {\n const og = this.#originalProcessEmit;\n if (ev === 'exit' && processOk(this.#process)) {\n if (typeof args[0] === 'number') {\n this.#process.exitCode = args[0];\n /* c8 ignore start */\n }\n /* c8 ignore start */\n const ret = og.call(this.#process, ev, ...args);\n /* c8 ignore start */\n this.#emitter.emit('exit', this.#process.exitCode, null);\n /* c8 ignore stop */\n return ret;\n }\n else {\n return og.call(this.#process, ev, ...args);\n }\n }\n}\nconst process = globalThis.process;\n// wrap so that we call the method on the actual handler, without\n// exporting it directly.\nexport const { \n/**\n * Called when the process is exiting, whether via signal, explicit\n * exit, or running out of stuff to do.\n *\n * If the global process object is not suitable for instrumentation,\n * then this will be a no-op.\n *\n * Returns a function that may be used to unload signal-exit.\n */\nonExit, \n/**\n * Load the listeners. Likely you never need to call this, unless\n * doing a rather deep integration with signal-exit functionality.\n * Mostly exposed for the benefit of testing.\n *\n * @internal\n */\nload, \n/**\n * Unload the listeners. Likely you never need to call this, unless\n * doing a rather deep integration with signal-exit functionality.\n * Mostly exposed for the benefit of testing.\n *\n * @internal\n */\nunload, } = signalExitWrap(processOk(process) ? new SignalExit(process) : new SignalExitFallback());\n//# sourceMappingURL=index.js.map","import {addAbortListener} from 'node:events';\nimport {onExit} from 'signal-exit';\n\n// If the `cleanup` option is used, call `subprocess.kill()` when the parent process exits\nexport const cleanupOnExit = (subprocess, {cleanup, detached}, {signal}) => {\n\tif (!cleanup || detached) {\n\t\treturn;\n\t}\n\n\tconst removeExitHandler = onExit(() => {\n\t\tsubprocess.kill();\n\t});\n\taddAbortListener(signal, () => {\n\t\tremoveExitHandler();\n\t});\n};\n","import {normalizeParameters} from '../methods/parameters.js';\nimport {getStartTime} from '../return/duration.js';\nimport {SUBPROCESS_OPTIONS, getToStream, getFromStream} from '../arguments/fd-options.js';\n\n// Normalize and validate arguments passed to `source.pipe(destination)`\nexport const normalizePipeArguments = ({source, sourcePromise, boundOptions, createNested}, ...pipeArguments) => {\n\tconst startTime = getStartTime();\n\tconst {\n\t\tdestination,\n\t\tdestinationStream,\n\t\tdestinationError,\n\t\tfrom,\n\t\tunpipeSignal,\n\t} = getDestinationStream(boundOptions, createNested, pipeArguments);\n\tconst {sourceStream, sourceError} = getSourceStream(source, from);\n\tconst {options: sourceOptions, fileDescriptors} = SUBPROCESS_OPTIONS.get(source);\n\treturn {\n\t\tsourcePromise,\n\t\tsourceStream,\n\t\tsourceOptions,\n\t\tsourceError,\n\t\tdestination,\n\t\tdestinationStream,\n\t\tdestinationError,\n\t\tunpipeSignal,\n\t\tfileDescriptors,\n\t\tstartTime,\n\t};\n};\n\nconst getDestinationStream = (boundOptions, createNested, pipeArguments) => {\n\ttry {\n\t\tconst {\n\t\t\tdestination,\n\t\t\tpipeOptions: {from, to, unpipeSignal} = {},\n\t\t} = getDestination(boundOptions, createNested, ...pipeArguments);\n\t\tconst destinationStream = getToStream(destination, to);\n\t\treturn {\n\t\t\tdestination,\n\t\t\tdestinationStream,\n\t\t\tfrom,\n\t\t\tunpipeSignal,\n\t\t};\n\t} catch (error) {\n\t\treturn {destinationError: error};\n\t}\n};\n\n// Piping subprocesses can use three syntaxes:\n// - source.pipe('command', commandArguments, pipeOptionsOrDestinationOptions)\n// - source.pipe`command commandArgument` or source.pipe(pipeOptionsOrDestinationOptions)`command commandArgument`\n// - source.pipe(execa(...), pipeOptions)\nconst getDestination = (boundOptions, createNested, firstArgument, ...pipeArguments) => {\n\tif (Array.isArray(firstArgument)) {\n\t\tconst destination = createNested(mapDestinationArguments, boundOptions)(firstArgument, ...pipeArguments);\n\t\treturn {destination, pipeOptions: boundOptions};\n\t}\n\n\tif (typeof firstArgument === 'string' || firstArgument instanceof URL) {\n\t\tif (Object.keys(boundOptions).length > 0) {\n\t\t\tthrow new TypeError('Please use .pipe(\"file\", ..., options) or .pipe(execa(\"file\", ..., options)) instead of .pipe(options)(\"file\", ...).');\n\t\t}\n\n\t\tconst [rawFile, rawArguments, rawOptions] = normalizeParameters(firstArgument, ...pipeArguments);\n\t\tconst destination = createNested(mapDestinationArguments)(rawFile, rawArguments, rawOptions);\n\t\treturn {destination, pipeOptions: rawOptions};\n\t}\n\n\tif (SUBPROCESS_OPTIONS.has(firstArgument)) {\n\t\tif (Object.keys(boundOptions).length > 0) {\n\t\t\tthrow new TypeError('Please use .pipe(options)`command` or .pipe($(options)`command`) instead of .pipe(options)($`command`).');\n\t\t}\n\n\t\treturn {destination: firstArgument, pipeOptions: pipeArguments[0]};\n\t}\n\n\tthrow new TypeError(`The first argument must be a template string, an options object, or an Execa subprocess: ${firstArgument}`);\n};\n\n// Force `stdin: 'pipe'` with the destination subprocess\nconst mapDestinationArguments = ({options}) => ({options: {...options, stdin: 'pipe', piped: true}});\n\nconst getSourceStream = (source, from) => {\n\ttry {\n\t\tconst sourceStream = getFromStream(source, from);\n\t\treturn {sourceStream};\n\t} catch (error) {\n\t\treturn {sourceError: error};\n\t}\n};\n","import {makeEarlyError} from '../return/result.js';\nimport {abortSourceStream, endDestinationStream} from '../io/pipeline.js';\n\n// When passing invalid arguments to `source.pipe()`, throw asynchronously.\n// We also abort both subprocesses.\nexport const handlePipeArgumentsError = ({\n\tsourceStream,\n\tsourceError,\n\tdestinationStream,\n\tdestinationError,\n\tfileDescriptors,\n\tsourceOptions,\n\tstartTime,\n}) => {\n\tconst error = getPipeArgumentsError({\n\t\tsourceStream,\n\t\tsourceError,\n\t\tdestinationStream,\n\t\tdestinationError,\n\t});\n\tif (error !== undefined) {\n\t\tthrow createNonCommandError({\n\t\t\terror,\n\t\t\tfileDescriptors,\n\t\t\tsourceOptions,\n\t\t\tstartTime,\n\t\t});\n\t}\n};\n\nconst getPipeArgumentsError = ({sourceStream, sourceError, destinationStream, destinationError}) => {\n\tif (sourceError !== undefined && destinationError !== undefined) {\n\t\treturn destinationError;\n\t}\n\n\tif (destinationError !== undefined) {\n\t\tabortSourceStream(sourceStream);\n\t\treturn destinationError;\n\t}\n\n\tif (sourceError !== undefined) {\n\t\tendDestinationStream(destinationStream);\n\t\treturn sourceError;\n\t}\n};\n\n// Specific error return value when passing invalid arguments to `subprocess.pipe()` or when using `unpipeSignal`\nexport const createNonCommandError = ({error, fileDescriptors, sourceOptions, startTime}) => makeEarlyError({\n\terror,\n\tcommand: PIPE_COMMAND_MESSAGE,\n\tescapedCommand: PIPE_COMMAND_MESSAGE,\n\tfileDescriptors,\n\toptions: sourceOptions,\n\tstartTime,\n\tisSync: false,\n});\n\nconst PIPE_COMMAND_MESSAGE = 'source.pipe(destination)';\n","// Like Bash, we await both subprocesses. This is unlike some other shells which only await the destination subprocess.\n// Like Bash with the `pipefail` option, if either subprocess fails, the whole pipe fails.\n// Like Bash, if both subprocesses fail, we return the failure of the destination.\n// This ensures both subprocesses' errors are present, using `error.pipedFrom`.\nexport const waitForBothSubprocesses = async subprocessPromises => {\n\tconst [\n\t\t{status: sourceStatus, reason: sourceReason, value: sourceResult = sourceReason},\n\t\t{status: destinationStatus, reason: destinationReason, value: destinationResult = destinationReason},\n\t] = await subprocessPromises;\n\n\tif (!destinationResult.pipedFrom.includes(sourceResult)) {\n\t\tdestinationResult.pipedFrom.push(sourceResult);\n\t}\n\n\tif (destinationStatus === 'rejected') {\n\t\tthrow destinationResult;\n\t}\n\n\tif (sourceStatus === 'rejected') {\n\t\tthrow sourceResult;\n\t}\n\n\treturn destinationResult;\n};\n","import {finished} from 'node:stream/promises';\nimport mergeStreams from '@sindresorhus/merge-streams';\nimport {incrementMaxListeners} from '../utils/max-listeners.js';\nimport {pipeStreams} from '../io/pipeline.js';\n\n// The piping behavior is like Bash.\n// In particular, when one subprocess exits, the other is not terminated by a signal.\n// Instead, its stdout (for the source) or stdin (for the destination) closes.\n// If the subprocess uses it, it will make it error with SIGPIPE or EPIPE (for the source) or end (for the destination).\n// If it does not use it, it will continue running.\n// This allows for subprocesses to gracefully exit and lower the coupling between subprocesses.\nexport const pipeSubprocessStream = (sourceStream, destinationStream, maxListenersController) => {\n\tconst mergedStream = MERGED_STREAMS.has(destinationStream)\n\t\t? pipeMoreSubprocessStream(sourceStream, destinationStream)\n\t\t: pipeFirstSubprocessStream(sourceStream, destinationStream);\n\tincrementMaxListeners(sourceStream, SOURCE_LISTENERS_PER_PIPE, maxListenersController.signal);\n\tincrementMaxListeners(destinationStream, DESTINATION_LISTENERS_PER_PIPE, maxListenersController.signal);\n\tcleanupMergedStreamsMap(destinationStream);\n\treturn mergedStream;\n};\n\n// We use `merge-streams` to allow for multiple sources to pipe to the same destination.\nconst pipeFirstSubprocessStream = (sourceStream, destinationStream) => {\n\tconst mergedStream = mergeStreams([sourceStream]);\n\tpipeStreams(mergedStream, destinationStream);\n\tMERGED_STREAMS.set(destinationStream, mergedStream);\n\treturn mergedStream;\n};\n\nconst pipeMoreSubprocessStream = (sourceStream, destinationStream) => {\n\tconst mergedStream = MERGED_STREAMS.get(destinationStream);\n\tmergedStream.add(sourceStream);\n\treturn mergedStream;\n};\n\nconst cleanupMergedStreamsMap = async destinationStream => {\n\ttry {\n\t\tawait finished(destinationStream, {cleanup: true, readable: false, writable: true});\n\t} catch {}\n\n\tMERGED_STREAMS.delete(destinationStream);\n};\n\nconst MERGED_STREAMS = new WeakMap();\n\n// Number of listeners set up on `sourceStream` by each `sourceStream.pipe(destinationStream)`\n// Those are added by `merge-streams`\nconst SOURCE_LISTENERS_PER_PIPE = 2;\n// Number of listeners set up on `destinationStream` by each `sourceStream.pipe(destinationStream)`\n// Those are added by `finished()` in `cleanupMergedStreamsMap()`\nconst DESTINATION_LISTENERS_PER_PIPE = 1;\n","import {aborted} from 'node:util';\nimport {createNonCommandError} from './throw.js';\n\n// When passing an `unpipeSignal` option, abort piping when the signal is aborted.\n// However, do not terminate the subprocesses.\nexport const unpipeOnAbort = (unpipeSignal, unpipeContext) => unpipeSignal === undefined\n\t? []\n\t: [unpipeOnSignalAbort(unpipeSignal, unpipeContext)];\n\nconst unpipeOnSignalAbort = async (unpipeSignal, {sourceStream, mergedStream, fileDescriptors, sourceOptions, startTime}) => {\n\tawait aborted(unpipeSignal, sourceStream);\n\tawait mergedStream.remove(sourceStream);\n\tconst error = new Error('Pipe canceled by `unpipeSignal` option.');\n\tthrow createNonCommandError({\n\t\terror,\n\t\tfileDescriptors,\n\t\tsourceOptions,\n\t\tstartTime,\n\t});\n};\n","import isPlainObject from 'is-plain-obj';\nimport {normalizePipeArguments} from './pipe-arguments.js';\nimport {handlePipeArgumentsError} from './throw.js';\nimport {waitForBothSubprocesses} from './sequence.js';\nimport {pipeSubprocessStream} from './streaming.js';\nimport {unpipeOnAbort} from './abort.js';\n\n// Pipe a subprocess' `stdout`/`stderr`/`stdio` into another subprocess' `stdin`\nexport const pipeToSubprocess = (sourceInfo, ...pipeArguments) => {\n\tif (isPlainObject(pipeArguments[0])) {\n\t\treturn pipeToSubprocess.bind(undefined, {\n\t\t\t...sourceInfo,\n\t\t\tboundOptions: {...sourceInfo.boundOptions, ...pipeArguments[0]},\n\t\t});\n\t}\n\n\tconst {destination, ...normalizedInfo} = normalizePipeArguments(sourceInfo, ...pipeArguments);\n\tconst promise = handlePipePromise({...normalizedInfo, destination});\n\tpromise.pipe = pipeToSubprocess.bind(undefined, {\n\t\t...sourceInfo,\n\t\tsource: destination,\n\t\tsourcePromise: promise,\n\t\tboundOptions: {},\n\t});\n\treturn promise;\n};\n\n// Asynchronous logic when piping subprocesses\nconst handlePipePromise = async ({\n\tsourcePromise,\n\tsourceStream,\n\tsourceOptions,\n\tsourceError,\n\tdestination,\n\tdestinationStream,\n\tdestinationError,\n\tunpipeSignal,\n\tfileDescriptors,\n\tstartTime,\n}) => {\n\tconst subprocessPromises = getSubprocessPromises(sourcePromise, destination);\n\thandlePipeArgumentsError({\n\t\tsourceStream,\n\t\tsourceError,\n\t\tdestinationStream,\n\t\tdestinationError,\n\t\tfileDescriptors,\n\t\tsourceOptions,\n\t\tstartTime,\n\t});\n\tconst maxListenersController = new AbortController();\n\ttry {\n\t\tconst mergedStream = pipeSubprocessStream(sourceStream, destinationStream, maxListenersController);\n\t\treturn await Promise.race([\n\t\t\twaitForBothSubprocesses(subprocessPromises),\n\t\t\t...unpipeOnAbort(unpipeSignal, {\n\t\t\t\tsourceStream,\n\t\t\t\tmergedStream,\n\t\t\t\tsourceOptions,\n\t\t\t\tfileDescriptors,\n\t\t\t\tstartTime,\n\t\t\t}),\n\t\t]);\n\t} finally {\n\t\tmaxListenersController.abort();\n\t}\n};\n\n// `.pipe()` awaits the subprocess promises.\n// When invalid arguments are passed to `.pipe()`, we throw an error, which prevents awaiting them.\n// We need to ensure this does not create unhandled rejections.\nconst getSubprocessPromises = (sourcePromise, destination) => Promise.allSettled([sourcePromise, destination]);\n","export const identity = value => value;\n\nexport const noop = () => undefined;\n\nexport const getContentsProperty = ({contents}) => contents;\n\nexport const throwObjectStream = chunk => {\n\tthrow new Error(`Streams in object mode are not supported: ${String(chunk)}`);\n};\n\nexport const getLengthProperty = convertedChunk => convertedChunk.length;\n","import {getStreamContents} from './contents.js';\nimport {identity, noop, getContentsProperty} from './utils.js';\n\nexport async function getStreamAsArray(stream, options) {\n\treturn getStreamContents(stream, arrayMethods, options);\n}\n\nconst initArray = () => ({contents: []});\n\nconst increment = () => 1;\n\nconst addArrayChunk = (convertedChunk, {contents}) => {\n\tcontents.push(convertedChunk);\n\treturn contents;\n};\n\nconst arrayMethods = {\n\tinit: initArray,\n\tconvertChunk: {\n\t\tstring: identity,\n\t\tbuffer: identity,\n\t\tarrayBuffer: identity,\n\t\tdataView: identity,\n\t\ttypedArray: identity,\n\t\tothers: identity,\n\t},\n\tgetSize: increment,\n\ttruncateChunk: noop,\n\taddChunk: addArrayChunk,\n\tgetFinalChunk: noop,\n\tfinalize: getContentsProperty,\n};\n","import {getStreamContents} from './contents.js';\nimport {noop, throwObjectStream, getLengthProperty} from './utils.js';\n\nexport async function getStreamAsArrayBuffer(stream, options) {\n\treturn getStreamContents(stream, arrayBufferMethods, options);\n}\n\nconst initArrayBuffer = () => ({contents: new ArrayBuffer(0)});\n\nconst useTextEncoder = chunk => textEncoder.encode(chunk);\nconst textEncoder = new TextEncoder();\n\nconst useUint8Array = chunk => new Uint8Array(chunk);\n\nconst useUint8ArrayWithOffset = chunk => new Uint8Array(chunk.buffer, chunk.byteOffset, chunk.byteLength);\n\nconst truncateArrayBufferChunk = (convertedChunk, chunkSize) => convertedChunk.slice(0, chunkSize);\n\n// `contents` is an increasingly growing `Uint8Array`.\nconst addArrayBufferChunk = (convertedChunk, {contents, length: previousLength}, length) => {\n\tconst newContents = hasArrayBufferResize() ? resizeArrayBuffer(contents, length) : resizeArrayBufferSlow(contents, length);\n\tnew Uint8Array(newContents).set(convertedChunk, previousLength);\n\treturn newContents;\n};\n\n// Without `ArrayBuffer.resize()`, `contents` size is always a power of 2.\n// This means its last bytes are zeroes (not stream data), which need to be\n// trimmed at the end with `ArrayBuffer.slice()`.\nconst resizeArrayBufferSlow = (contents, length) => {\n\tif (length <= contents.byteLength) {\n\t\treturn contents;\n\t}\n\n\tconst arrayBuffer = new ArrayBuffer(getNewContentsLength(length));\n\tnew Uint8Array(arrayBuffer).set(new Uint8Array(contents), 0);\n\treturn arrayBuffer;\n};\n\n// With `ArrayBuffer.resize()`, `contents` size matches exactly the size of\n// the stream data. It does not include extraneous zeroes to trim at the end.\n// The underlying `ArrayBuffer` does allocate a number of bytes that is a power\n// of 2, but those bytes are only visible after calling `ArrayBuffer.resize()`.\nconst resizeArrayBuffer = (contents, length) => {\n\tif (length <= contents.maxByteLength) {\n\t\tcontents.resize(length);\n\t\treturn contents;\n\t}\n\n\tconst arrayBuffer = new ArrayBuffer(length, {maxByteLength: getNewContentsLength(length)});\n\tnew Uint8Array(arrayBuffer).set(new Uint8Array(contents), 0);\n\treturn arrayBuffer;\n};\n\n// Retrieve the closest `length` that is both >= and a power of 2\nconst getNewContentsLength = length => SCALE_FACTOR ** Math.ceil(Math.log(length) / Math.log(SCALE_FACTOR));\n\nconst SCALE_FACTOR = 2;\n\nconst finalizeArrayBuffer = ({contents, length}) => hasArrayBufferResize() ? contents : contents.slice(0, length);\n\n// `ArrayBuffer.slice()` is slow. When `ArrayBuffer.resize()` is available\n// (Node >=20.0.0, Safari >=16.4 and Chrome), we can use it instead.\n// eslint-disable-next-line no-warning-comments\n// TODO: remove after dropping support for Node 20.\n// eslint-disable-next-line no-warning-comments\n// TODO: use `ArrayBuffer.transferToFixedLength()` instead once it is available\nconst hasArrayBufferResize = () => 'resize' in ArrayBuffer.prototype;\n\nconst arrayBufferMethods = {\n\tinit: initArrayBuffer,\n\tconvertChunk: {\n\t\tstring: useTextEncoder,\n\t\tbuffer: useUint8Array,\n\t\tarrayBuffer: useUint8Array,\n\t\tdataView: useUint8ArrayWithOffset,\n\t\ttypedArray: useUint8ArrayWithOffset,\n\t\tothers: throwObjectStream,\n\t},\n\tgetSize: getLengthProperty,\n\ttruncateChunk: truncateArrayBufferChunk,\n\taddChunk: addArrayBufferChunk,\n\tgetFinalChunk: noop,\n\tfinalize: finalizeArrayBuffer,\n};\n","import {getStreamContents} from './contents.js';\nimport {\n\tidentity,\n\tgetContentsProperty,\n\tthrowObjectStream,\n\tgetLengthProperty,\n} from './utils.js';\n\nexport async function getStreamAsString(stream, options) {\n\treturn getStreamContents(stream, stringMethods, options);\n}\n\nconst initString = () => ({contents: '', textDecoder: new TextDecoder()});\n\nconst useTextDecoder = (chunk, {textDecoder}) => textDecoder.decode(chunk, {stream: true});\n\nconst addStringChunk = (convertedChunk, {contents}) => contents + convertedChunk;\n\nconst truncateStringChunk = (convertedChunk, chunkSize) => convertedChunk.slice(0, chunkSize);\n\nconst getFinalStringChunk = ({textDecoder}) => {\n\tconst finalChunk = textDecoder.decode();\n\treturn finalChunk === '' ? undefined : finalChunk;\n};\n\nconst stringMethods = {\n\tinit: initString,\n\tconvertChunk: {\n\t\tstring: identity,\n\t\tbuffer: useTextDecoder,\n\t\tarrayBuffer: useTextDecoder,\n\t\tdataView: useTextDecoder,\n\t\ttypedArray: useTextDecoder,\n\t\tothers: throwObjectStream,\n\t},\n\tgetSize: getLengthProperty,\n\ttruncateChunk: truncateStringChunk,\n\taddChunk: addStringChunk,\n\tgetFinalChunk: getFinalStringChunk,\n\tfinalize: getContentsProperty,\n};\n","import {on} from 'node:events';\nimport {getDefaultHighWaterMark} from 'node:stream';\nimport {getEncodingTransformGenerator} from '../transform/encoding-transform.js';\nimport {getSplitLinesGenerator} from '../transform/split.js';\nimport {transformChunkSync, finalChunksSync} from '../transform/run-sync.js';\n\n// Iterate over lines of `subprocess.stdout`, used by `subprocess.readable|duplex|iterable()`\nexport const iterateOnSubprocessStream = ({subprocessStdout, subprocess, binary, shouldEncode, encoding, preserveNewlines}) => {\n\tconst controller = new AbortController();\n\tstopReadingOnExit(subprocess, controller);\n\treturn iterateOnStream({\n\t\tstream: subprocessStdout,\n\t\tcontroller,\n\t\tbinary,\n\t\tshouldEncode: !subprocessStdout.readableObjectMode && shouldEncode,\n\t\tencoding,\n\t\tshouldSplit: !subprocessStdout.readableObjectMode,\n\t\tpreserveNewlines,\n\t});\n};\n\nconst stopReadingOnExit = async (subprocess, controller) => {\n\ttry {\n\t\tawait subprocess;\n\t} catch {} finally {\n\t\tcontroller.abort();\n\t}\n};\n\n// Iterate over lines of `subprocess.stdout`, used by `result.stdout` and the `verbose: 'full'` option.\n// Applies the `lines` and `encoding` options.\nexport const iterateForResult = ({stream, onStreamEnd, lines, encoding, stripFinalNewline, allMixed}) => {\n\tconst controller = new AbortController();\n\tstopReadingOnStreamEnd(onStreamEnd, controller, stream);\n\tconst objectMode = stream.readableObjectMode && !allMixed;\n\treturn iterateOnStream({\n\t\tstream,\n\t\tcontroller,\n\t\tbinary: encoding === 'buffer',\n\t\tshouldEncode: !objectMode,\n\t\tencoding,\n\t\tshouldSplit: !objectMode && lines,\n\t\tpreserveNewlines: !stripFinalNewline,\n\t});\n};\n\nconst stopReadingOnStreamEnd = async (onStreamEnd, controller, stream) => {\n\ttry {\n\t\tawait onStreamEnd;\n\t} catch {\n\t\tstream.destroy();\n\t} finally {\n\t\tcontroller.abort();\n\t}\n};\n\nconst iterateOnStream = ({stream, controller, binary, shouldEncode, encoding, shouldSplit, preserveNewlines}) => {\n\tconst onStdoutChunk = on(stream, 'data', {\n\t\tsignal: controller.signal,\n\t\thighWaterMark: HIGH_WATER_MARK,\n\t\t// Backward compatibility with older name for this option\n\t\t// See https://github.com/nodejs/node/pull/52080#discussion_r1525227861\n\t\t// @todo Remove after removing support for Node 21\n\t\thighWatermark: HIGH_WATER_MARK,\n\t});\n\treturn iterateOnData({\n\t\tonStdoutChunk,\n\t\tcontroller,\n\t\tbinary,\n\t\tshouldEncode,\n\t\tencoding,\n\t\tshouldSplit,\n\t\tpreserveNewlines,\n\t});\n};\n\nexport const DEFAULT_OBJECT_HIGH_WATER_MARK = getDefaultHighWaterMark(true);\n\n// The `highWaterMark` of `events.on()` is measured in number of events, not in bytes.\n// Not knowing the average amount of bytes per `data` event, we use the same heuristic as streams in objectMode, since they have the same issue.\n// Therefore, we use the value of `getDefaultHighWaterMark(true)`.\n// Note: this option does not exist on Node 18, but this is ok since the logic works without it. It just consumes more memory.\nconst HIGH_WATER_MARK = DEFAULT_OBJECT_HIGH_WATER_MARK;\n\nconst iterateOnData = async function * ({onStdoutChunk, controller, binary, shouldEncode, encoding, shouldSplit, preserveNewlines}) {\n\tconst generators = getGenerators({\n\t\tbinary,\n\t\tshouldEncode,\n\t\tencoding,\n\t\tshouldSplit,\n\t\tpreserveNewlines,\n\t});\n\n\ttry {\n\t\tfor await (const [chunk] of onStdoutChunk) {\n\t\t\tyield * transformChunkSync(chunk, generators, 0);\n\t\t}\n\t} catch (error) {\n\t\tif (!controller.signal.aborted) {\n\t\t\tthrow error;\n\t\t}\n\t} finally {\n\t\tyield * finalChunksSync(generators);\n\t}\n};\n\nconst getGenerators = ({binary, shouldEncode, encoding, shouldSplit, preserveNewlines}) => [\n\tgetEncodingTransformGenerator(binary, encoding, !shouldEncode),\n\tgetSplitLinesGenerator(binary, preserveNewlines, !shouldSplit, {}),\n].filter(Boolean);\n","import {setImmediate} from 'node:timers/promises';\nimport getStream, {getStreamAsArrayBuffer, getStreamAsArray} from 'get-stream';\nimport {isArrayBuffer} from '../utils/uint-array.js';\nimport {shouldLogOutput, logLines} from '../verbose/output.js';\nimport {iterateForResult} from './iterate.js';\nimport {handleMaxBuffer} from './max-buffer.js';\nimport {getStripFinalNewline} from './strip-newline.js';\n\n// Retrieve `result.stdout|stderr|all|stdio[*]`\nexport const getStreamOutput = async ({stream, onStreamEnd, fdNumber, encoding, buffer, maxBuffer, lines, allMixed, stripFinalNewline, verboseInfo, streamInfo: {fileDescriptors}}) => {\n\tif (shouldLogOutput({\n\t\tstdioItems: fileDescriptors[fdNumber]?.stdioItems,\n\t\tencoding,\n\t\tverboseInfo,\n\t\tfdNumber,\n\t})) {\n\t\tconst linesIterable = iterateForResult({\n\t\t\tstream,\n\t\t\tonStreamEnd,\n\t\t\tlines: true,\n\t\t\tencoding,\n\t\t\tstripFinalNewline: true,\n\t\t\tallMixed,\n\t\t});\n\t\tlogLines(linesIterable, stream, verboseInfo);\n\t}\n\n\tif (!buffer) {\n\t\tawait resumeStream(stream);\n\t\treturn;\n\t}\n\n\tconst stripFinalNewlineValue = getStripFinalNewline(stripFinalNewline, fdNumber);\n\tconst iterable = iterateForResult({\n\t\tstream,\n\t\tonStreamEnd,\n\t\tlines,\n\t\tencoding,\n\t\tstripFinalNewline: stripFinalNewlineValue,\n\t\tallMixed,\n\t});\n\treturn getStreamContents({\n\t\tstream,\n\t\titerable,\n\t\tfdNumber,\n\t\tencoding,\n\t\tmaxBuffer,\n\t\tlines,\n\t});\n};\n\n// When using `buffer: false`, users need to read `subprocess.stdout|stderr|all` right away\n// See https://github.com/sindresorhus/execa/issues/730 and https://github.com/sindresorhus/execa/pull/729#discussion_r1465496310\nconst resumeStream = async stream => {\n\tawait setImmediate();\n\tif (stream.readableFlowing === null) {\n\t\tstream.resume();\n\t}\n};\n\nconst getStreamContents = async ({stream, stream: {readableObjectMode}, iterable, fdNumber, encoding, maxBuffer, lines}) => {\n\ttry {\n\t\tif (readableObjectMode || lines) {\n\t\t\treturn await getStreamAsArray(iterable, {maxBuffer});\n\t\t}\n\n\t\tif (encoding === 'buffer') {\n\t\t\treturn new Uint8Array(await getStreamAsArrayBuffer(iterable, {maxBuffer}));\n\t\t}\n\n\t\treturn await getStream(iterable, {maxBuffer});\n\t} catch (error) {\n\t\treturn handleBufferedData(handleMaxBuffer({\n\t\t\terror,\n\t\t\tstream,\n\t\t\treadableObjectMode,\n\t\t\tlines,\n\t\t\tencoding,\n\t\t\tfdNumber,\n\t\t}));\n\t}\n};\n\n// On failure, `result.stdout|stderr|all` should contain the currently buffered stream\n// They are automatically closed and flushed by Node.js when the subprocess exits\n// When `buffer` is `false`, `streamPromise` is `undefined` and there is no buffered data to retrieve\nexport const getBufferedData = async streamPromise => {\n\ttry {\n\t\treturn await streamPromise;\n\t} catch (error) {\n\t\treturn handleBufferedData(error);\n\t}\n};\n\n// Ensure we are returning Uint8Arrays when using `encoding: 'buffer'`\nconst handleBufferedData = ({bufferedData}) => isArrayBuffer(bufferedData)\n\t? new Uint8Array(bufferedData)\n\t: bufferedData;\n","import {finished} from 'node:stream/promises';\n\n// Wraps `finished(stream)` to handle the following case:\n// - When the subprocess exits, Node.js automatically calls `subprocess.stdin.destroy()`, which we need to ignore.\n// - However, we still need to throw if `subprocess.stdin.destroy()` is called before subprocess exit.\nexport const waitForStream = async (stream, fdNumber, streamInfo, {isSameDirection, stopOnExit = false} = {}) => {\n\tconst state = handleStdinDestroy(stream, streamInfo);\n\tconst abortController = new AbortController();\n\ttry {\n\t\tawait Promise.race([\n\t\t\t...(stopOnExit ? [streamInfo.exitPromise] : []),\n\t\t\tfinished(stream, {cleanup: true, signal: abortController.signal}),\n\t\t]);\n\t} catch (error) {\n\t\tif (!state.stdinCleanedUp) {\n\t\t\thandleStreamError(error, fdNumber, streamInfo, isSameDirection);\n\t\t}\n\t} finally {\n\t\tabortController.abort();\n\t}\n};\n\n// If `subprocess.stdin` is destroyed before being fully written to, it is considered aborted and should throw an error.\n// This can happen for example when user called `subprocess.stdin.destroy()` before `subprocess.stdin.end()`.\n// However, Node.js calls `subprocess.stdin.destroy()` on exit for cleanup purposes.\n// https://github.com/nodejs/node/blob/0b4cdb4b42956cbd7019058e409e06700a199e11/lib/internal/child_process.js#L278\n// This is normal and should not throw an error.\n// Therefore, we need to differentiate between both situations to know whether to throw an error.\n// Unfortunately, events (`close`, `error`, `end`, `exit`) cannot be used because `.destroy()` can take an arbitrary amount of time.\n// For example, `stdin: 'pipe'` is implemented as a TCP socket, and its `.destroy()` method waits for TCP disconnection.\n// Therefore `.destroy()` might end before or after subprocess exit, based on OS speed and load.\n// The only way to detect this is to spy on `subprocess.stdin._destroy()` by wrapping it.\n// If `subprocess.exitCode` or `subprocess.signalCode` is set, it means `.destroy()` is being called by Node.js itself.\nconst handleStdinDestroy = (stream, {originalStreams: [originalStdin], subprocess}) => {\n\tconst state = {stdinCleanedUp: false};\n\tif (stream === originalStdin) {\n\t\tspyOnStdinDestroy(stream, subprocess, state);\n\t}\n\n\treturn state;\n};\n\nconst spyOnStdinDestroy = (subprocessStdin, subprocess, state) => {\n\tconst {_destroy} = subprocessStdin;\n\tsubprocessStdin._destroy = (...destroyArguments) => {\n\t\tsetStdinCleanedUp(subprocess, state);\n\t\t_destroy.call(subprocessStdin, ...destroyArguments);\n\t};\n};\n\nconst setStdinCleanedUp = ({exitCode, signalCode}, state) => {\n\tif (exitCode !== null || signalCode !== null) {\n\t\tstate.stdinCleanedUp = true;\n\t}\n};\n\n// We ignore EPIPEs on writable streams and aborts on readable streams since those can happen normally.\n// When one stream errors, the error is propagated to the other streams on the same file descriptor.\n// Those other streams might have a different direction due to the above.\n// When this happens, the direction of both the initial stream and the others should then be taken into account.\n// Therefore, we keep track of whether a stream error is currently propagating.\nconst handleStreamError = (error, fdNumber, streamInfo, isSameDirection) => {\n\tif (!shouldIgnoreStreamError(error, fdNumber, streamInfo, isSameDirection)) {\n\t\tthrow error;\n\t}\n};\n\nconst shouldIgnoreStreamError = (error, fdNumber, streamInfo, isSameDirection = true) => {\n\tif (streamInfo.propagating) {\n\t\treturn isStreamEpipe(error) || isStreamAbort(error);\n\t}\n\n\tstreamInfo.propagating = true;\n\treturn isInputFileDescriptor(streamInfo, fdNumber) === isSameDirection\n\t\t? isStreamEpipe(error)\n\t\t: isStreamAbort(error);\n};\n\n// Unfortunately, we cannot use the stream's class or properties to know whether it is readable or writable.\n// For example, `subprocess.stdin` is technically a Duplex, but can only be used as a writable.\n// Therefore, we need to use the file descriptor's direction (`stdin` is input, `stdout` is output, etc.).\n// However, while `subprocess.std*` and transforms follow that direction, any stream passed the `std*` option has the opposite direction.\n// For example, `subprocess.stdin` is a writable, but the `stdin` option is a readable.\nexport const isInputFileDescriptor = ({fileDescriptors}, fdNumber) => fdNumber !== 'all' && fileDescriptors[fdNumber].direction === 'input';\n\n// When `stream.destroy()` is called without an `error` argument, stream is aborted.\n// This is the only way to abort a readable stream, which can be useful in some instances.\n// Therefore, we ignore this error on readable streams.\nexport const isStreamAbort = error => error?.code === 'ERR_STREAM_PREMATURE_CLOSE';\n\n// When `stream.write()` is called but the underlying source has been closed, `EPIPE` is emitted.\n// When piping subprocesses, the source subprocess usually decides when to stop piping.\n// However, there are some instances when the destination does instead, such as `... | head -n1`.\n// It notifies the source by using `EPIPE`.\n// Therefore, we ignore this error on writable streams.\nconst isStreamEpipe = error => error?.code === 'EPIPE';\n","import {getStreamOutput} from '../io/contents.js';\nimport {waitForStream, isInputFileDescriptor} from './wait-stream.js';\n\n// Read the contents of `subprocess.std*` and|or wait for its completion\nexport const waitForStdioStreams = ({subprocess, encoding, buffer, maxBuffer, lines, stripFinalNewline, verboseInfo, streamInfo}) => subprocess.stdio.map((stream, fdNumber) => waitForSubprocessStream({\n\tstream,\n\tfdNumber,\n\tencoding,\n\tbuffer: buffer[fdNumber],\n\tmaxBuffer: maxBuffer[fdNumber],\n\tlines: lines[fdNumber],\n\tallMixed: false,\n\tstripFinalNewline,\n\tverboseInfo,\n\tstreamInfo,\n}));\n\n// Read the contents of `subprocess.std*` or `subprocess.all` and|or wait for its completion\nexport const waitForSubprocessStream = async ({stream, fdNumber, encoding, buffer, maxBuffer, lines, allMixed, stripFinalNewline, verboseInfo, streamInfo}) => {\n\tif (!stream) {\n\t\treturn;\n\t}\n\n\tconst onStreamEnd = waitForStream(stream, fdNumber, streamInfo);\n\tif (isInputFileDescriptor(streamInfo, fdNumber)) {\n\t\tawait onStreamEnd;\n\t\treturn;\n\t}\n\n\tconst [output] = await Promise.all([\n\t\tgetStreamOutput({\n\t\t\tstream,\n\t\t\tonStreamEnd,\n\t\t\tfdNumber,\n\t\t\tencoding,\n\t\t\tbuffer,\n\t\t\tmaxBuffer,\n\t\t\tlines,\n\t\t\tallMixed,\n\t\t\tstripFinalNewline,\n\t\t\tverboseInfo,\n\t\t\tstreamInfo,\n\t\t}),\n\t\tonStreamEnd,\n\t]);\n\treturn output;\n};\n","import mergeStreams from '@sindresorhus/merge-streams';\nimport {waitForSubprocessStream} from './stdio.js';\n\n// `all` interleaves `stdout` and `stderr`\nexport const makeAllStream = ({stdout, stderr}, {all}) => all && (stdout || stderr)\n\t? mergeStreams([stdout, stderr].filter(Boolean))\n\t: undefined;\n\n// Read the contents of `subprocess.all` and|or wait for its completion\nexport const waitForAllStream = ({subprocess, encoding, buffer, maxBuffer, lines, stripFinalNewline, verboseInfo, streamInfo}) => waitForSubprocessStream({\n\t...getAllStream(subprocess, buffer),\n\tfdNumber: 'all',\n\tencoding,\n\tmaxBuffer: maxBuffer[1] + maxBuffer[2],\n\tlines: lines[1] || lines[2],\n\tallMixed: getAllMixed(subprocess),\n\tstripFinalNewline,\n\tverboseInfo,\n\tstreamInfo,\n});\n\nconst getAllStream = ({stdout, stderr, all}, [, bufferStdout, bufferStderr]) => {\n\tconst buffer = bufferStdout || bufferStderr;\n\tif (!buffer) {\n\t\treturn {stream: all, buffer};\n\t}\n\n\tif (!bufferStdout) {\n\t\treturn {stream: stderr, buffer};\n\t}\n\n\tif (!bufferStderr) {\n\t\treturn {stream: stdout, buffer};\n\t}\n\n\treturn {stream: all, buffer};\n};\n\n// When `subprocess.stdout` is in objectMode but not `subprocess.stderr` (or the opposite), we need to use both:\n// - `getStreamAsArray()` for the chunks in objectMode, to return as an array without changing each chunk\n// - `getStreamAsArrayBuffer()` or `getStream()` for the chunks not in objectMode, to convert them from Buffers to string or Uint8Array\n// We do this by emulating the Buffer -> string|Uint8Array conversion performed by `get-stream` with our own, which is identical.\nconst getAllMixed = ({all, stdout, stderr}) => all\n\t&& stdout\n\t&& stderr\n\t&& stdout.readableObjectMode !== stderr.readableObjectMode;\n","import {once} from 'node:events';\nimport {isStream as isNodeStream} from 'is-stream';\nimport {throwOnTimeout} from '../terminate/timeout.js';\nimport {isStandardStream} from '../utils/standard-stream.js';\nimport {TRANSFORM_TYPES} from '../stdio/type.js';\nimport {getBufferedData} from '../io/contents.js';\nimport {waitForAllStream} from './all-async.js';\nimport {waitForStdioStreams} from './stdio.js';\nimport {waitForExit, waitForSuccessfulExit} from './exit-async.js';\nimport {waitForStream} from './wait-stream.js';\n\n// Retrieve result of subprocess: exit code, signal, error, streams (stdout/stderr/all)\nexport const waitForSubprocessResult = async ({\n\tsubprocess,\n\toptions: {encoding, buffer, maxBuffer, lines, timeoutDuration: timeout, stripFinalNewline},\n\tcontext,\n\tverboseInfo,\n\tfileDescriptors,\n\toriginalStreams,\n\tonInternalError,\n\tcontroller,\n}) => {\n\tconst exitPromise = waitForExit(subprocess);\n\tconst streamInfo = {\n\t\toriginalStreams,\n\t\tfileDescriptors,\n\t\tsubprocess,\n\t\texitPromise,\n\t\tpropagating: false,\n\t};\n\n\tconst stdioPromises = waitForStdioStreams({\n\t\tsubprocess,\n\t\tencoding,\n\t\tbuffer,\n\t\tmaxBuffer,\n\t\tlines,\n\t\tstripFinalNewline,\n\t\tverboseInfo,\n\t\tstreamInfo,\n\t});\n\tconst allPromise = waitForAllStream({\n\t\tsubprocess,\n\t\tencoding,\n\t\tbuffer,\n\t\tmaxBuffer,\n\t\tlines,\n\t\tstripFinalNewline,\n\t\tverboseInfo,\n\t\tstreamInfo,\n\t});\n\tconst originalPromises = waitForOriginalStreams(originalStreams, subprocess, streamInfo);\n\tconst customStreamsEndPromises = waitForCustomStreamsEnd(fileDescriptors, streamInfo);\n\n\ttry {\n\t\treturn await Promise.race([\n\t\t\tPromise.all([\n\t\t\t\t{},\n\t\t\t\twaitForSuccessfulExit(exitPromise),\n\t\t\t\tPromise.all(stdioPromises),\n\t\t\t\tallPromise,\n\t\t\t\t...originalPromises,\n\t\t\t\t...customStreamsEndPromises,\n\t\t\t]),\n\t\t\tonInternalError,\n\t\t\tthrowOnSubprocessError(subprocess, controller),\n\t\t\t...throwOnTimeout(subprocess, timeout, context, controller),\n\t\t]);\n\t} catch (error) {\n\t\treturn Promise.all([\n\t\t\t{error},\n\t\t\texitPromise,\n\t\t\tPromise.all(stdioPromises.map(stdioPromise => getBufferedData(stdioPromise))),\n\t\t\tgetBufferedData(allPromise),\n\t\t\tPromise.allSettled(originalPromises),\n\t\t\tPromise.allSettled(customStreamsEndPromises),\n\t\t]);\n\t}\n};\n\n// Transforms replace `subprocess.std*`, which means they are not exposed to users.\n// However, we still want to wait for their completion.\nconst waitForOriginalStreams = (originalStreams, subprocess, streamInfo) =>\n\toriginalStreams.map((stream, fdNumber) => stream === subprocess.stdio[fdNumber]\n\t\t? undefined\n\t\t: waitForStream(stream, fdNumber, streamInfo));\n\n// Some `stdin`/`stdout`/`stderr` options create a stream, e.g. when passing a file path.\n// The `.pipe()` method automatically ends that stream when `subprocess` ends.\n// This makes sure we wait for the completion of those streams, in order to catch any error.\nconst waitForCustomStreamsEnd = (fileDescriptors, streamInfo) => fileDescriptors.flatMap(({stdioItems}, fdNumber) => stdioItems\n\t.filter(({value, stream = value}) => isNodeStream(stream, {checkOpen: false}) && !isStandardStream(stream))\n\t.map(({type, value, stream = value}) => waitForStream(stream, fdNumber, streamInfo, {\n\t\tisSameDirection: TRANSFORM_TYPES.has(type),\n\t\tstopOnExit: type === 'native',\n\t})));\n\n// Fails when the subprocess emits an `error` event\nconst throwOnSubprocessError = async (subprocess, {signal}) => {\n\tconst [error] = await once(subprocess, 'error', {signal});\n\tthrow error;\n};\n","export const createDeferred = () => {\n\tconst methods = {};\n\tconst promise = new Promise((resolve, reject) => {\n\t\tObject.assign(methods, {resolve, reject});\n\t});\n\treturn Object.assign(promise, methods);\n};\n","import {createDeferred} from '../utils/deferred.js';\n\n// When using multiple `.readable()`/`.writable()`/`.duplex()`, `final` and `destroy` should wait for other streams\nexport const initializeConcurrentStreams = () => ({\n\treadableDestroy: new WeakMap(),\n\twritableFinal: new WeakMap(),\n\twritableDestroy: new WeakMap(),\n});\n\n// Each file descriptor + `waitName` has its own array of promises.\n// Each promise is a single `.readable()`/`.writable()`/`.duplex()` call.\nexport const addConcurrentStream = (concurrentStreams, stream, waitName) => {\n\tconst weakMap = concurrentStreams[waitName];\n\tif (!weakMap.has(stream)) {\n\t\tweakMap.set(stream, []);\n\t}\n\n\tconst promises = weakMap.get(stream);\n\tconst promise = createDeferred();\n\tpromises.push(promise);\n\tconst resolve = promise.resolve.bind(promise);\n\treturn {resolve, promises};\n};\n\n// Wait for other streams, but stop waiting when subprocess ends\nexport const waitForConcurrentStreams = async ({resolve, promises}, subprocess) => {\n\tresolve();\n\tconst [isSubprocessExit] = await Promise.race([\n\t\tPromise.allSettled([true, subprocess]),\n\t\tPromise.all([false, ...promises]),\n\t]);\n\treturn !isSubprocessExit;\n};\n","import {finished} from 'node:stream/promises';\nimport {isStreamAbort} from '../resolve/wait-stream.js';\n\nexport const safeWaitForSubprocessStdin = async subprocessStdin => {\n\tif (subprocessStdin === undefined) {\n\t\treturn;\n\t}\n\n\ttry {\n\t\tawait waitForSubprocessStdin(subprocessStdin);\n\t} catch {}\n};\n\nexport const safeWaitForSubprocessStdout = async subprocessStdout => {\n\tif (subprocessStdout === undefined) {\n\t\treturn;\n\t}\n\n\ttry {\n\t\tawait waitForSubprocessStdout(subprocessStdout);\n\t} catch {}\n};\n\nexport const waitForSubprocessStdin = async subprocessStdin => {\n\tawait finished(subprocessStdin, {cleanup: true, readable: false, writable: true});\n};\n\nexport const waitForSubprocessStdout = async subprocessStdout => {\n\tawait finished(subprocessStdout, {cleanup: true, readable: true, writable: false});\n};\n\n// When `readable` or `writable` aborts/errors, awaits the subprocess, for the reason mentioned above\nexport const waitForSubprocess = async (subprocess, error) => {\n\tawait subprocess;\n\tif (error) {\n\t\tthrow error;\n\t}\n};\n\nexport const destroyOtherStream = (stream, isOpen, error) => {\n\tif (error && !isStreamAbort(error)) {\n\t\tstream.destroy(error);\n\t} else if (isOpen) {\n\t\tstream.destroy();\n\t}\n};\n","import {Readable} from 'node:stream';\nimport {callbackify} from 'node:util';\nimport {BINARY_ENCODINGS} from '../arguments/encoding-option.js';\nimport {getFromStream} from '../arguments/fd-options.js';\nimport {iterateOnSubprocessStream, DEFAULT_OBJECT_HIGH_WATER_MARK} from '../io/iterate.js';\nimport {createDeferred} from '../utils/deferred.js';\nimport {addConcurrentStream, waitForConcurrentStreams} from './concurrent.js';\nimport {\n\tsafeWaitForSubprocessStdin,\n\twaitForSubprocessStdout,\n\twaitForSubprocess,\n\tdestroyOtherStream,\n} from './shared.js';\n\n// Create a `Readable` stream that forwards from `stdout` and awaits the subprocess\nexport const createReadable = ({subprocess, concurrentStreams, encoding}, {from, binary: binaryOption = true, preserveNewlines = true} = {}) => {\n\tconst binary = binaryOption || BINARY_ENCODINGS.has(encoding);\n\tconst {subprocessStdout, waitReadableDestroy} = getSubprocessStdout(subprocess, from, concurrentStreams);\n\tconst {readableEncoding, readableObjectMode, readableHighWaterMark} = getReadableOptions(subprocessStdout, binary);\n\tconst {read, onStdoutDataDone} = getReadableMethods({\n\t\tsubprocessStdout,\n\t\tsubprocess,\n\t\tbinary,\n\t\tencoding,\n\t\tpreserveNewlines,\n\t});\n\tconst readable = new Readable({\n\t\tread,\n\t\tdestroy: callbackify(onReadableDestroy.bind(undefined, {subprocessStdout, subprocess, waitReadableDestroy})),\n\t\thighWaterMark: readableHighWaterMark,\n\t\tobjectMode: readableObjectMode,\n\t\tencoding: readableEncoding,\n\t});\n\tonStdoutFinished({\n\t\tsubprocessStdout,\n\t\tonStdoutDataDone,\n\t\treadable,\n\t\tsubprocess,\n\t});\n\treturn readable;\n};\n\n// Retrieve `stdout` (or other stream depending on `from`)\nexport const getSubprocessStdout = (subprocess, from, concurrentStreams) => {\n\tconst subprocessStdout = getFromStream(subprocess, from);\n\tconst waitReadableDestroy = addConcurrentStream(concurrentStreams, subprocessStdout, 'readableDestroy');\n\treturn {subprocessStdout, waitReadableDestroy};\n};\n\nexport const getReadableOptions = ({readableEncoding, readableObjectMode, readableHighWaterMark}, binary) => binary\n\t? {readableEncoding, readableObjectMode, readableHighWaterMark}\n\t: {readableEncoding, readableObjectMode: true, readableHighWaterMark: DEFAULT_OBJECT_HIGH_WATER_MARK};\n\nexport const getReadableMethods = ({subprocessStdout, subprocess, binary, encoding, preserveNewlines}) => {\n\tconst onStdoutDataDone = createDeferred();\n\tconst onStdoutData = iterateOnSubprocessStream({\n\t\tsubprocessStdout,\n\t\tsubprocess,\n\t\tbinary,\n\t\tshouldEncode: !binary,\n\t\tencoding,\n\t\tpreserveNewlines,\n\t});\n\n\treturn {\n\t\tread() {\n\t\t\tonRead(this, onStdoutData, onStdoutDataDone);\n\t\t},\n\t\tonStdoutDataDone,\n\t};\n};\n\n// Forwards data from `stdout` to `readable`\nconst onRead = async (readable, onStdoutData, onStdoutDataDone) => {\n\ttry {\n\t\tconst {value, done} = await onStdoutData.next();\n\t\tif (done) {\n\t\t\tonStdoutDataDone.resolve();\n\t\t} else {\n\t\t\treadable.push(value);\n\t\t}\n\t} catch {}\n};\n\n// When `subprocess.stdout` ends/aborts/errors, do the same on `readable`.\n// Await the subprocess, for the same reason as above.\nexport const onStdoutFinished = async ({subprocessStdout, onStdoutDataDone, readable, subprocess, subprocessStdin}) => {\n\ttry {\n\t\tawait waitForSubprocessStdout(subprocessStdout);\n\t\tawait subprocess;\n\t\tawait safeWaitForSubprocessStdin(subprocessStdin);\n\t\tawait onStdoutDataDone;\n\n\t\tif (readable.readable) {\n\t\t\treadable.push(null);\n\t\t}\n\t} catch (error) {\n\t\tawait safeWaitForSubprocessStdin(subprocessStdin);\n\t\tdestroyOtherReadable(readable, error);\n\t}\n};\n\n// When `readable` aborts/errors, do the same on `subprocess.stdout`\nexport const onReadableDestroy = async ({subprocessStdout, subprocess, waitReadableDestroy}, error) => {\n\tif (await waitForConcurrentStreams(waitReadableDestroy, subprocess)) {\n\t\tdestroyOtherReadable(subprocessStdout, error);\n\t\tawait waitForSubprocess(subprocess, error);\n\t}\n};\n\nconst destroyOtherReadable = (stream, error) => {\n\tdestroyOtherStream(stream, stream.readable, error);\n};\n","import {Writable} from 'node:stream';\nimport {callbackify} from 'node:util';\nimport {getToStream} from '../arguments/fd-options.js';\nimport {addConcurrentStream, waitForConcurrentStreams} from './concurrent.js';\nimport {\n\tsafeWaitForSubprocessStdout,\n\twaitForSubprocessStdin,\n\twaitForSubprocess,\n\tdestroyOtherStream,\n} from './shared.js';\n\n// Create a `Writable` stream that forwards to `stdin` and awaits the subprocess\nexport const createWritable = ({subprocess, concurrentStreams}, {to} = {}) => {\n\tconst {subprocessStdin, waitWritableFinal, waitWritableDestroy} = getSubprocessStdin(subprocess, to, concurrentStreams);\n\tconst writable = new Writable({\n\t\t...getWritableMethods(subprocessStdin, subprocess, waitWritableFinal),\n\t\tdestroy: callbackify(onWritableDestroy.bind(undefined, {\n\t\t\tsubprocessStdin,\n\t\t\tsubprocess,\n\t\t\twaitWritableFinal,\n\t\t\twaitWritableDestroy,\n\t\t})),\n\t\thighWaterMark: subprocessStdin.writableHighWaterMark,\n\t\tobjectMode: subprocessStdin.writableObjectMode,\n\t});\n\tonStdinFinished(subprocessStdin, writable);\n\treturn writable;\n};\n\n// Retrieve `stdin` (or other stream depending on `to`)\nexport const getSubprocessStdin = (subprocess, to, concurrentStreams) => {\n\tconst subprocessStdin = getToStream(subprocess, to);\n\tconst waitWritableFinal = addConcurrentStream(concurrentStreams, subprocessStdin, 'writableFinal');\n\tconst waitWritableDestroy = addConcurrentStream(concurrentStreams, subprocessStdin, 'writableDestroy');\n\treturn {subprocessStdin, waitWritableFinal, waitWritableDestroy};\n};\n\nexport const getWritableMethods = (subprocessStdin, subprocess, waitWritableFinal) => ({\n\twrite: onWrite.bind(undefined, subprocessStdin),\n\tfinal: callbackify(onWritableFinal.bind(undefined, subprocessStdin, subprocess, waitWritableFinal)),\n});\n\n// Forwards data from `writable` to `stdin`\nconst onWrite = (subprocessStdin, chunk, encoding, done) => {\n\tif (subprocessStdin.write(chunk, encoding)) {\n\t\tdone();\n\t} else {\n\t\tsubprocessStdin.once('drain', done);\n\t}\n};\n\n// Ensures that the writable `final` and readable `end` events awaits the subprocess.\n// Like this, any subprocess failure is propagated as a stream `error` event, instead of being lost.\n// The user does not need to `await` the subprocess anymore, but now needs to await the stream completion or error.\n// When multiple writables are targeting the same stream, they wait for each other, unless the subprocess ends first.\nconst onWritableFinal = async (subprocessStdin, subprocess, waitWritableFinal) => {\n\tif (await waitForConcurrentStreams(waitWritableFinal, subprocess)) {\n\t\tif (subprocessStdin.writable) {\n\t\t\tsubprocessStdin.end();\n\t\t}\n\n\t\tawait subprocess;\n\t}\n};\n\n// When `subprocess.stdin` ends/aborts/errors, do the same on `writable`.\nexport const onStdinFinished = async (subprocessStdin, writable, subprocessStdout) => {\n\ttry {\n\t\tawait waitForSubprocessStdin(subprocessStdin);\n\t\tif (writable.writable) {\n\t\t\twritable.end();\n\t\t}\n\t} catch (error) {\n\t\tawait safeWaitForSubprocessStdout(subprocessStdout);\n\t\tdestroyOtherWritable(writable, error);\n\t}\n};\n\n// When `writable` aborts/errors, do the same on `subprocess.stdin`\nexport const onWritableDestroy = async ({subprocessStdin, subprocess, waitWritableFinal, waitWritableDestroy}, error) => {\n\tawait waitForConcurrentStreams(waitWritableFinal, subprocess);\n\tif (await waitForConcurrentStreams(waitWritableDestroy, subprocess)) {\n\t\tdestroyOtherWritable(subprocessStdin, error);\n\t\tawait waitForSubprocess(subprocess, error);\n\t}\n};\n\nconst destroyOtherWritable = (stream, error) => {\n\tdestroyOtherStream(stream, stream.writable, error);\n};\n","import {Duplex} from 'node:stream';\nimport {callbackify} from 'node:util';\nimport {BINARY_ENCODINGS} from '../arguments/encoding-option.js';\nimport {\n\tgetSubprocessStdout,\n\tgetReadableOptions,\n\tgetReadableMethods,\n\tonStdoutFinished,\n\tonReadableDestroy,\n} from './readable.js';\nimport {\n\tgetSubprocessStdin,\n\tgetWritableMethods,\n\tonStdinFinished,\n\tonWritableDestroy,\n} from './writable.js';\n\n// Create a `Duplex` stream combining both `subprocess.readable()` and `subprocess.writable()`\nexport const createDuplex = ({subprocess, concurrentStreams, encoding}, {from, to, binary: binaryOption = true, preserveNewlines = true} = {}) => {\n\tconst binary = binaryOption || BINARY_ENCODINGS.has(encoding);\n\tconst {subprocessStdout, waitReadableDestroy} = getSubprocessStdout(subprocess, from, concurrentStreams);\n\tconst {subprocessStdin, waitWritableFinal, waitWritableDestroy} = getSubprocessStdin(subprocess, to, concurrentStreams);\n\tconst {readableEncoding, readableObjectMode, readableHighWaterMark} = getReadableOptions(subprocessStdout, binary);\n\tconst {read, onStdoutDataDone} = getReadableMethods({\n\t\tsubprocessStdout,\n\t\tsubprocess,\n\t\tbinary,\n\t\tencoding,\n\t\tpreserveNewlines,\n\t});\n\tconst duplex = new Duplex({\n\t\tread,\n\t\t...getWritableMethods(subprocessStdin, subprocess, waitWritableFinal),\n\t\tdestroy: callbackify(onDuplexDestroy.bind(undefined, {\n\t\t\tsubprocessStdout,\n\t\t\tsubprocessStdin,\n\t\t\tsubprocess,\n\t\t\twaitReadableDestroy,\n\t\t\twaitWritableFinal,\n\t\t\twaitWritableDestroy,\n\t\t})),\n\t\treadableHighWaterMark,\n\t\twritableHighWaterMark: subprocessStdin.writableHighWaterMark,\n\t\treadableObjectMode,\n\t\twritableObjectMode: subprocessStdin.writableObjectMode,\n\t\tencoding: readableEncoding,\n\t});\n\tonStdoutFinished({\n\t\tsubprocessStdout,\n\t\tonStdoutDataDone,\n\t\treadable: duplex,\n\t\tsubprocess,\n\t\tsubprocessStdin,\n\t});\n\tonStdinFinished(subprocessStdin, duplex, subprocessStdout);\n\treturn duplex;\n};\n\nconst onDuplexDestroy = async ({subprocessStdout, subprocessStdin, subprocess, waitReadableDestroy, waitWritableFinal, waitWritableDestroy}, error) => {\n\tawait Promise.all([\n\t\tonReadableDestroy({subprocessStdout, subprocess, waitReadableDestroy}, error),\n\t\tonWritableDestroy({\n\t\t\tsubprocessStdin,\n\t\t\tsubprocess,\n\t\t\twaitWritableFinal,\n\t\t\twaitWritableDestroy,\n\t\t}, error),\n\t]);\n};\n","import {BINARY_ENCODINGS} from '../arguments/encoding-option.js';\nimport {getFromStream} from '../arguments/fd-options.js';\nimport {iterateOnSubprocessStream} from '../io/iterate.js';\n\n// Convert the subprocess to an async iterable\nexport const createIterable = (subprocess, encoding, {\n\tfrom,\n\tbinary: binaryOption = false,\n\tpreserveNewlines = false,\n} = {}) => {\n\tconst binary = binaryOption || BINARY_ENCODINGS.has(encoding);\n\tconst subprocessStdout = getFromStream(subprocess, from);\n\tconst onStdoutData = iterateOnSubprocessStream({\n\t\tsubprocessStdout,\n\t\tsubprocess,\n\t\tbinary,\n\t\tshouldEncode: true,\n\t\tencoding,\n\t\tpreserveNewlines,\n\t});\n\treturn iterateOnStdoutData(onStdoutData, subprocessStdout, subprocess);\n};\n\nconst iterateOnStdoutData = async function * (onStdoutData, subprocessStdout, subprocess) {\n\ttry {\n\t\tyield * onStdoutData;\n\t} finally {\n\t\tif (subprocessStdout.readable) {\n\t\t\tsubprocessStdout.destroy();\n\t\t}\n\n\t\tawait subprocess;\n\t}\n};\n","import {initializeConcurrentStreams} from './concurrent.js';\nimport {createReadable} from './readable.js';\nimport {createWritable} from './writable.js';\nimport {createDuplex} from './duplex.js';\nimport {createIterable} from './iterable.js';\n\n// Add methods to convert the subprocess to a stream or iterable\nexport const addConvertedStreams = (subprocess, {encoding}) => {\n\tconst concurrentStreams = initializeConcurrentStreams();\n\tsubprocess.readable = createReadable.bind(undefined, {subprocess, concurrentStreams, encoding});\n\tsubprocess.writable = createWritable.bind(undefined, {subprocess, concurrentStreams});\n\tsubprocess.duplex = createDuplex.bind(undefined, {subprocess, concurrentStreams, encoding});\n\tsubprocess.iterable = createIterable.bind(undefined, subprocess, encoding);\n\tsubprocess[Symbol.asyncIterator] = createIterable.bind(undefined, subprocess, encoding, {});\n};\n","// The return value is a mixin of `subprocess` and `Promise`\nexport const mergePromise = (subprocess, promise) => {\n\tfor (const [property, descriptor] of descriptors) {\n\t\tconst value = descriptor.value.bind(promise);\n\t\tReflect.defineProperty(subprocess, property, {...descriptor, value});\n\t}\n};\n\n// eslint-disable-next-line unicorn/prefer-top-level-await\nconst nativePromisePrototype = (async () => {})().constructor.prototype;\n\nconst descriptors = ['then', 'catch', 'finally'].map(property => [\n\tproperty,\n\tReflect.getOwnPropertyDescriptor(nativePromisePrototype, property),\n]);\n","import {setMaxListeners} from 'node:events';\nimport {spawn} from 'node:child_process';\nimport {MaxBufferError} from 'get-stream';\nimport {handleCommand} from '../arguments/command.js';\nimport {normalizeOptions} from '../arguments/options.js';\nimport {SUBPROCESS_OPTIONS} from '../arguments/fd-options.js';\nimport {makeError, makeSuccessResult} from '../return/result.js';\nimport {handleResult} from '../return/reject.js';\nimport {handleEarlyError} from '../return/early-error.js';\nimport {handleStdioAsync} from '../stdio/handle-async.js';\nimport {stripNewline} from '../io/strip-newline.js';\nimport {pipeOutputAsync} from '../io/output-async.js';\nimport {subprocessKill} from '../terminate/kill.js';\nimport {cleanupOnExit} from '../terminate/cleanup.js';\nimport {pipeToSubprocess} from '../pipe/setup.js';\nimport {logEarlyResult} from '../verbose/complete.js';\nimport {makeAllStream} from '../resolve/all-async.js';\nimport {waitForSubprocessResult} from '../resolve/wait-subprocess.js';\nimport {addConvertedStreams} from '../convert/add.js';\nimport {createDeferred} from '../utils/deferred.js';\nimport {mergePromise} from './promise.js';\n\n// Main shared logic for all async methods: `execa()`, `execaCommand()`, `$`, `execaNode()`\nexport const execaCoreAsync = (rawFile, rawArguments, rawOptions, createNested) => {\n\tconst {file, commandArguments, command, escapedCommand, startTime, verboseInfo, options, fileDescriptors} = handleAsyncArguments(rawFile, rawArguments, rawOptions);\n\tconst {subprocess, promise} = spawnSubprocessAsync({\n\t\tfile,\n\t\tcommandArguments,\n\t\toptions,\n\t\tstartTime,\n\t\tverboseInfo,\n\t\tcommand,\n\t\tescapedCommand,\n\t\tfileDescriptors,\n\t});\n\tsubprocess.pipe = pipeToSubprocess.bind(undefined, {\n\t\tsource: subprocess,\n\t\tsourcePromise: promise,\n\t\tboundOptions: {},\n\t\tcreateNested,\n\t});\n\tmergePromise(subprocess, promise);\n\tSUBPROCESS_OPTIONS.set(subprocess, {options, fileDescriptors});\n\treturn subprocess;\n};\n\n// Compute arguments to pass to `child_process.spawn()`\nconst handleAsyncArguments = (rawFile, rawArguments, rawOptions) => {\n\tconst {command, escapedCommand, startTime, verboseInfo} = handleCommand(rawFile, rawArguments, rawOptions);\n\n\ttry {\n\t\tconst {file, commandArguments, options: normalizedOptions} = normalizeOptions(rawFile, rawArguments, rawOptions);\n\t\tconst options = handleAsyncOptions(normalizedOptions);\n\t\tconst fileDescriptors = handleStdioAsync(options, verboseInfo);\n\t\treturn {\n\t\t\tfile,\n\t\t\tcommandArguments,\n\t\t\tcommand,\n\t\t\tescapedCommand,\n\t\t\tstartTime,\n\t\t\tverboseInfo,\n\t\t\toptions,\n\t\t\tfileDescriptors,\n\t\t};\n\t} catch (error) {\n\t\tlogEarlyResult(error, startTime, verboseInfo);\n\t\tthrow error;\n\t}\n};\n\n// Options normalization logic specific to async methods.\n// Prevent passing the `timeout` option directly to `child_process.spawn()`.\nconst handleAsyncOptions = ({timeout, signal, cancelSignal, ...options}) => {\n\tif (signal !== undefined) {\n\t\tthrow new TypeError('The \"signal\" option has been renamed to \"cancelSignal\" instead.');\n\t}\n\n\treturn {...options, timeoutDuration: timeout, signal: cancelSignal};\n};\n\nconst spawnSubprocessAsync = ({file, commandArguments, options, startTime, verboseInfo, command, escapedCommand, fileDescriptors}) => {\n\tlet subprocess;\n\ttry {\n\t\tsubprocess = spawn(file, commandArguments, options);\n\t} catch (error) {\n\t\treturn handleEarlyError({\n\t\t\terror,\n\t\t\tcommand,\n\t\t\tescapedCommand,\n\t\t\tfileDescriptors,\n\t\t\toptions,\n\t\t\tstartTime,\n\t\t\tverboseInfo,\n\t\t});\n\t}\n\n\tconst controller = new AbortController();\n\tsetMaxListeners(Number.POSITIVE_INFINITY, controller.signal);\n\n\tconst originalStreams = [...subprocess.stdio];\n\tpipeOutputAsync(subprocess, fileDescriptors, controller);\n\tcleanupOnExit(subprocess, options, controller);\n\n\tconst onInternalError = createDeferred();\n\tsubprocess.kill = subprocessKill.bind(undefined, {\n\t\tkill: subprocess.kill.bind(subprocess),\n\t\toptions,\n\t\tonInternalError,\n\t\tcontroller,\n\t});\n\tsubprocess.all = makeAllStream(subprocess, options);\n\taddConvertedStreams(subprocess, options);\n\n\tconst promise = handlePromise({\n\t\tsubprocess,\n\t\toptions,\n\t\tstartTime,\n\t\tverboseInfo,\n\t\tfileDescriptors,\n\t\toriginalStreams,\n\t\tcommand,\n\t\tescapedCommand,\n\t\tonInternalError,\n\t\tcontroller,\n\t});\n\treturn {subprocess, promise};\n};\n\n// Asynchronous logic, as opposed to the previous logic which can be run synchronously, i.e. can be returned to user right away\nconst handlePromise = async ({subprocess, options, startTime, verboseInfo, fileDescriptors, originalStreams, command, escapedCommand, onInternalError, controller}) => {\n\tconst context = {timedOut: false};\n\n\tconst [errorInfo, [exitCode, signal], stdioResults, allResult] = await waitForSubprocessResult({\n\t\tsubprocess,\n\t\toptions,\n\t\tcontext,\n\t\tverboseInfo,\n\t\tfileDescriptors,\n\t\toriginalStreams,\n\t\tonInternalError,\n\t\tcontroller,\n\t});\n\tcontroller.abort();\n\tonInternalError.resolve();\n\n\tconst stdio = stdioResults.map((stdioResult, fdNumber) => stripNewline(stdioResult, options, fdNumber));\n\tconst all = stripNewline(allResult, options, 'all');\n\tconst result = getAsyncResult({\n\t\terrorInfo,\n\t\texitCode,\n\t\tsignal,\n\t\tstdio,\n\t\tall,\n\t\tcontext,\n\t\toptions,\n\t\tcommand,\n\t\tescapedCommand,\n\t\tstartTime,\n\t});\n\treturn handleResult(result, verboseInfo, options);\n};\n\nconst getAsyncResult = ({errorInfo, exitCode, signal, stdio, all, context, options, command, escapedCommand, startTime}) => 'error' in errorInfo\n\t? makeError({\n\t\terror: errorInfo.error,\n\t\tcommand,\n\t\tescapedCommand,\n\t\ttimedOut: context.timedOut,\n\t\tisCanceled: options.signal?.aborted === true,\n\t\tisMaxBuffer: errorInfo.error instanceof MaxBufferError,\n\t\texitCode,\n\t\tsignal,\n\t\tstdio,\n\t\tall,\n\t\toptions,\n\t\tstartTime,\n\t\tisSync: false,\n\t})\n\t: makeSuccessResult({\n\t\tcommand,\n\t\tescapedCommand,\n\t\tstdio,\n\t\tall,\n\t\toptions,\n\t\tstartTime,\n\t});\n","import isPlainObject from 'is-plain-obj';\nimport {FD_SPECIFIC_OPTIONS} from '../arguments/specific.js';\n\n// Deep merge specific options like `env`. Shallow merge the other ones.\nexport const mergeOptions = (boundOptions, options) => {\n\tconst newOptions = Object.fromEntries(\n\t\tObject.entries(options).map(([optionName, optionValue]) => [\n\t\t\toptionName,\n\t\t\tmergeOption(optionName, boundOptions[optionName], optionValue),\n\t\t]),\n\t);\n\treturn {...boundOptions, ...newOptions};\n};\n\nconst mergeOption = (optionName, boundOptionValue, optionValue) => {\n\tif (DEEP_OPTIONS.has(optionName) && isPlainObject(boundOptionValue) && isPlainObject(optionValue)) {\n\t\treturn {...boundOptionValue, ...optionValue};\n\t}\n\n\treturn optionValue;\n};\n\nconst DEEP_OPTIONS = new Set(['env', ...FD_SPECIFIC_OPTIONS]);\n","import isPlainObject from 'is-plain-obj';\nimport {normalizeParameters} from './parameters.js';\nimport {isTemplateString, parseTemplates} from './template.js';\nimport {execaCoreSync} from './main-sync.js';\nimport {execaCoreAsync} from './main-async.js';\nimport {mergeOptions} from './bind.js';\n\n// Wraps every exported methods to provide the following features:\n// - template string syntax: execa`command argument`\n// - options binding: boundExeca = execa(options)\n// - optional argument/options: execa(file), execa(file, args), execa(file, options), execa(file, args, options)\n// `mapArguments()` and `setBoundExeca()` allows for method-specific logic.\nexport const createExeca = (mapArguments, boundOptions, deepOptions, setBoundExeca) => {\n\tconst createNested = (mapArguments, boundOptions, setBoundExeca) => createExeca(mapArguments, boundOptions, deepOptions, setBoundExeca);\n\tconst boundExeca = (...execaArguments) => callBoundExeca({\n\t\tmapArguments,\n\t\tdeepOptions,\n\t\tboundOptions,\n\t\tsetBoundExeca,\n\t\tcreateNested,\n\t}, ...execaArguments);\n\n\tif (setBoundExeca !== undefined) {\n\t\tsetBoundExeca(boundExeca, createNested, boundOptions);\n\t}\n\n\treturn boundExeca;\n};\n\nconst callBoundExeca = ({mapArguments, deepOptions = {}, boundOptions = {}, setBoundExeca, createNested}, firstArgument, ...nextArguments) => {\n\tif (isPlainObject(firstArgument)) {\n\t\treturn createNested(mapArguments, mergeOptions(boundOptions, firstArgument), setBoundExeca);\n\t}\n\n\tconst {file, commandArguments, options, isSync} = parseArguments({\n\t\tmapArguments,\n\t\tfirstArgument,\n\t\tnextArguments,\n\t\tdeepOptions,\n\t\tboundOptions,\n\t});\n\treturn isSync\n\t\t? execaCoreSync(file, commandArguments, options)\n\t\t: execaCoreAsync(file, commandArguments, options, createNested);\n};\n\nconst parseArguments = ({mapArguments, firstArgument, nextArguments, deepOptions, boundOptions}) => {\n\tconst callArguments = isTemplateString(firstArgument)\n\t\t? parseTemplates(firstArgument, nextArguments)\n\t\t: [firstArgument, ...nextArguments];\n\tconst [initialFile, initialArguments, initialOptions] = normalizeParameters(...callArguments);\n\tconst mergedOptions = mergeOptions(mergeOptions(deepOptions, boundOptions), initialOptions);\n\tconst {\n\t\tfile = initialFile,\n\t\tcommandArguments = initialArguments,\n\t\toptions = mergedOptions,\n\t\tisSync = false,\n\t} = mapArguments({file: initialFile, commandArguments: initialArguments, options: mergedOptions});\n\treturn {\n\t\tfile,\n\t\tcommandArguments,\n\t\toptions,\n\t\tisSync,\n\t};\n};\n","// Main logic for `execaCommand()`\nexport const mapCommandAsync = ({file, commandArguments}) => parseCommand(file, commandArguments);\n\n// Main logic for `execaCommandSync()`\nexport const mapCommandSync = ({file, commandArguments}) => ({...parseCommand(file, commandArguments), isSync: true});\n\n// Convert `execaCommand(command)` into `execa(file, ...commandArguments)`\nconst parseCommand = (command, unusedArguments) => {\n\tif (unusedArguments.length > 0) {\n\t\tthrow new TypeError(`The command and its arguments must be passed as a single string: ${command} ${unusedArguments}.`);\n\t}\n\n\tconst tokens = [];\n\tfor (const token of command.trim().split(SPACES_REGEXP)) {\n\t\t// Allow spaces to be escaped by a backslash if not meant as a delimiter\n\t\tconst previousToken = tokens.at(-1);\n\t\tif (previousToken && previousToken.endsWith('\\\\')) {\n\t\t\t// Merge previous token with current one\n\t\t\ttokens[tokens.length - 1] = `${previousToken.slice(0, -1)} ${token}`;\n\t\t} else {\n\t\t\ttokens.push(token);\n\t\t}\n\t}\n\n\tconst [file, ...commandArguments] = tokens;\n\treturn {file, commandArguments};\n};\n\nconst SPACES_REGEXP = / +/g;\n","// Sets `$.sync` and `$.s`\nexport const setScriptSync = (boundExeca, createNested, boundOptions) => {\n\tboundExeca.sync = createNested(mapScriptSync, boundOptions);\n\tboundExeca.s = boundExeca.sync;\n};\n\n// Main logic for `$`\nexport const mapScriptAsync = ({options}) => getScriptOptions(options);\n\n// Main logic for `$.sync`\nconst mapScriptSync = ({options}) => ({...getScriptOptions(options), isSync: true});\n\n// `$` is like `execa` but with script-friendly options: `{stdin: 'inherit', preferLocal: true}`\nconst getScriptOptions = options => ({options: {...getScriptStdinOption(options), ...options}});\n\nconst getScriptStdinOption = ({input, inputFile, stdio}) => input === undefined && inputFile === undefined && stdio === undefined\n\t? {stdin: 'inherit'}\n\t: {};\n\n// When using $(...).pipe(...), most script-friendly options should apply to both commands.\n// However, some options (like `stdin: 'inherit'`) would create issues with piping, i.e. cannot be deep.\nexport const deepScriptOptions = {preferLocal: true};\n","import {createExeca} from './lib/methods/create.js';\nimport {mapCommandAsync, mapCommandSync} from './lib/methods/command.js';\nimport {mapNode} from './lib/methods/node.js';\nimport {mapScriptAsync, setScriptSync, deepScriptOptions} from './lib/methods/script.js';\n\nexport {ExecaError, ExecaSyncError} from './lib/return/final-error.js';\n\nexport const execa = createExeca(() => ({}));\nexport const execaSync = createExeca(() => ({isSync: true}));\nexport const execaCommand = createExeca(mapCommandAsync);\nexport const execaCommandSync = createExeca(mapCommandSync);\nexport const execaNode = createExeca(mapNode);\nexport const $ = createExeca(mapScriptAsync, {}, deepScriptOptions, setScriptSync);\n"],"names":["cp","parse","enoent","spawn","command","args","options","parsed","spawned","hookChildProcess","module","exports","sync","result","spawnSync","error","verifyENOENTSync","status","_parse","_enoent","isWin","process","platform","notFoundError","original","syscall","Object","assign","Error","code","errno","path","spawnargs","verifyENOENT","file","originalEmit","emit","name","arg1","err","call","apply","arguments","resolveCommand","escape","readShebang","isExecutableRegExp","isCmdShimRegExp","Array","isArray","slice","undefined","shell","commandFile","shebang","unshift","detectShebang","needsShell","test","forceShell","needsDoubleEscapeMetaChars","normalize","map","arg","argument","shellCommand","concat","join","env","comspec","windowsVerbatimArguments","parseNonShell","metaCharsRegExp","replace","doubleEscapeMetaChars","fs","shebangCommand","buffer","Buffer","alloc","fd","openSync","readSync","closeSync","e","toString","which","getPathKey","resolveCommandAttempt","withoutPathExt","cwd","hasCustomCwd","shouldSwitchCwd","chdir","disabled","resolved","pathExt","delimiter","resolve","core","isexe","cb","Promise","TypeError","reject","er","is","ignoreErrors","global","TESTING_WINDOWS","checkStat","statSync","stat","isFile","mod","mode","uid","gid","myUid","getuid","myGid","getgid","u","parseInt","g","checkMode","isSymbolicLink","pathext","PATHEXT","split","indexOf","i","length","p","toLowerCase","substr","checkPathExt","isWindows","OSTYPE","COLON","getNotFoundError","cmd","getPathInfo","opt","colon","pathEnv","match","PATH","pathExtExe","found","step","all","ppRaw","pathPart","pCmd","subStep","ii","ext","push","then","res","j","cur","ex","nothrow","pathKey","environment","keys","reverse","find","key","toUpperCase","shebangRegex","string","binary","pop","isPlainObject","value","prototype","getPrototypeOf","Symbol","toStringTag","iterator","safeNormalizeFileUrl","fileString","normalizeFileUrl","URL","fileURLToPath","normalizeParameters","rawFile","rawArguments","rawOptions","filePath","commandArguments","some","commandArgument","normalizedArguments","String","nullByteArgument","normalizedArgument","includes","objectToString","isUint8Array","bufferToUint8Array","Uint8Array","byteOffset","byteLength","textEncoder","TextEncoder","stringToUint8Array","encode","textDecoder","TextDecoder","uint8ArrayToString","uint8Array","decode","joinToUint8Array","uint8ArraysOrStrings","concatUint8Arrays","stringsToUint8Arrays","uint8ArrayOrString","uint8Arrays","getJoinLength","index","set","joinLength","parseTemplate","templates","expressions","tokens","template","raw","nextTokens","leadingWhitespaces","trailingWhitespaces","splitByWhitespaces","newTokens","concatTokens","expression","expressionTokens","parseExpression","rawTemplate","templateStart","DELIMITERS","has","templateIndex","rawIndex","rawCharacter","nextRawCharacter","ESCAPE_LENGTH","Set","x","isSeparated","at","typeOfExpression","getSubprocessResult","ChildProcess","stdout","hasColors","format","open","close","input","openCode","closeCode","lastIndex","bold","gray","redBright","yellowBright","verboseDefault","debuglog","enabled","VERBOSE_ID","isVerbose","verbose","fdVerbose","VERBOSE_VALUES","common","circleQuestionMark","questionMarkPrefix","square","squareDarkShade","squareMediumShade","squareLightShade","squareTop","squareBottom","squareLeft","squareRight","squareCenter","bullet","dot","ellipsis","pointerSmall","triangleUp","triangleUpSmall","triangleDown","triangleDownSmall","triangleLeftSmall","triangleRightSmall","home","heart","musicNote","musicNoteBeamed","arrowUp","arrowDown","arrowLeft","arrowRight","arrowLeftRight","arrowUpDown","almostEqual","notEqual","lessOrEqual","greaterOrEqual","identical","infinity","subscriptZero","subscriptOne","subscriptTwo","subscriptThree","subscriptFour","subscriptFive","subscriptSix","subscriptSeven","subscriptEight","subscriptNine","oneHalf","oneThird","oneQuarter","oneFifth","oneSixth","oneEighth","twoThirds","twoFifths","threeQuarters","threeFifths","threeEighths","fourFifths","fiveSixths","fiveEighths","sevenEighths","line","lineBold","lineDouble","lineDashed0","lineDashed1","lineDashed2","lineDashed3","lineDashed4","lineDashed5","lineDashed6","lineDashed7","lineDashed8","lineDashed9","lineDashed10","lineDashed11","lineDashed12","lineDashed13","lineDashed14","lineDashed15","lineVertical","lineVerticalBold","lineVerticalDouble","lineVerticalDashed0","lineVerticalDashed1","lineVerticalDashed2","lineVerticalDashed3","lineVerticalDashed4","lineVerticalDashed5","lineVerticalDashed6","lineVerticalDashed7","lineVerticalDashed8","lineVerticalDashed9","lineVerticalDashed10","lineVerticalDashed11","lineDownLeft","lineDownLeftArc","lineDownBoldLeftBold","lineDownBoldLeft","lineDownLeftBold","lineDownDoubleLeftDouble","lineDownDoubleLeft","lineDownLeftDouble","lineDownRight","lineDownRightArc","lineDownBoldRightBold","lineDownBoldRight","lineDownRightBold","lineDownDoubleRightDouble","lineDownDoubleRight","lineDownRightDouble","lineUpLeft","lineUpLeftArc","lineUpBoldLeftBold","lineUpBoldLeft","lineUpLeftBold","lineUpDoubleLeftDouble","lineUpDoubleLeft","lineUpLeftDouble","lineUpRight","lineUpRightArc","lineUpBoldRightBold","lineUpBoldRight","lineUpRightBold","lineUpDoubleRightDouble","lineUpDoubleRight","lineUpRightDouble","lineUpDownLeft","lineUpBoldDownBoldLeftBold","lineUpBoldDownBoldLeft","lineUpDownLeftBold","lineUpBoldDownLeftBold","lineUpDownBoldLeftBold","lineUpDownBoldLeft","lineUpBoldDownLeft","lineUpDoubleDownDoubleLeftDouble","lineUpDoubleDownDoubleLeft","lineUpDownLeftDouble","lineUpDownRight","lineUpBoldDownBoldRightBold","lineUpBoldDownBoldRight","lineUpDownRightBold","lineUpBoldDownRightBold","lineUpDownBoldRightBold","lineUpDownBoldRight","lineUpBoldDownRight","lineUpDoubleDownDoubleRightDouble","lineUpDoubleDownDoubleRight","lineUpDownRightDouble","lineDownLeftRight","lineDownBoldLeftBoldRightBold","lineDownLeftBoldRightBold","lineDownBoldLeftRight","lineDownBoldLeftBoldRight","lineDownBoldLeftRightBold","lineDownLeftRightBold","lineDownLeftBoldRight","lineDownDoubleLeftDoubleRightDouble","lineDownDoubleLeftRight","lineDownLeftDoubleRightDouble","lineUpLeftRight","lineUpBoldLeftBoldRightBold","lineUpLeftBoldRightBold","lineUpBoldLeftRight","lineUpBoldLeftBoldRight","lineUpBoldLeftRightBold","lineUpLeftRightBold","lineUpLeftBoldRight","lineUpDoubleLeftDoubleRightDouble","lineUpDoubleLeftRight","lineUpLeftDoubleRightDouble","lineUpDownLeftRight","lineUpBoldDownBoldLeftBoldRightBold","lineUpDownBoldLeftBoldRightBold","lineUpBoldDownLeftBoldRightBold","lineUpBoldDownBoldLeftRightBold","lineUpBoldDownBoldLeftBoldRight","lineUpBoldDownLeftRight","lineUpDownBoldLeftRight","lineUpDownLeftBoldRight","lineUpDownLeftRightBold","lineUpBoldDownBoldLeftRight","lineUpDownLeftBoldRightBold","lineUpBoldDownLeftBoldRight","lineUpBoldDownLeftRightBold","lineUpDownBoldLeftBoldRight","lineUpDownBoldLeftRightBold","lineUpDoubleDownDoubleLeftDoubleRightDouble","lineUpDoubleDownDoubleLeftRight","lineUpDownLeftDoubleRightDouble","lineCross","lineBackslash","lineSlash","specialMainSymbols","tick","info","warning","cross","squareSmall","squareSmallFilled","circle","circleFilled","circleDotted","circleDouble","circleCircle","circleCross","circlePipe","radioOn","radioOff","checkboxOn","checkboxOff","checkboxCircleOn","checkboxCircleOff","pointer","triangleUpOutline","triangleLeft","triangleRight","lozenge","lozengeOutline","hamburger","smiley","mustache","star","play","nodejs","oneSeventh","oneNinth","oneTenth","mainSymbols","fallbackSymbols","TERM","Boolean","WT_SESSION","TERMINUS_SUBLIME","ConEmuTask","TERM_PROGRAM","TERMINAL_EMULATOR","verboseLog","entries","verboseId","icon","color","prefixedLines","addPrefix","writeFileSync","STDERR_FD","addPrefixToLine","identity","getTimestamp","ICONS","date","Date","padField","getHours","getMinutes","getSeconds","getMilliseconds","field","padding","padStart","pipedCommand","output","success","getStartTime","hrtime","bigint","getDurationMs","startTime","Number","escapeLines","lines","stripVTControlCharacters","escapeControlCharacters","replaceAll","SPECIAL_CHAR_REGEXP","character","escapeControlCharacter","commonEscape","COMMON_ESCAPES","codepoint","codePointAt","codepointHex","ASTRAL_START","NO_ESCAPE_REGEXP","isStandardStream","stream","STANDARD_STREAMS","STANDARD_STREAMS_ALIASES","getStreamName","fdNumber","normalizeFdSpecificOption","optionName","optionBaseArray","from","getStdioLength","optionArray","normalizeFdSpecificValue","addDefaultValue","stdio","Math","max","optionValue","normalizeOptionObject","fill","fdName","sort","compareFdName","parseFdName","fdNameA","fdNameB","getFdNameOrder","parseFd","regexpResult","FD_REGEXP","exec","DEFAULT_OPTIONS","maxBuffer","stripFinalNewline","FD_SPECIFIC_OPTIONS","handleCommand","escapedCommand","fileAndArguments","fileAndArgument","quoteString","escapedArgument","joinCommand","verboseInfo","verboseItem","allowedValues","allowedValue","validateVerbose","getVerboseInfo","piped","logCommand","npmRunPathEnv","pathName","pathOption","preferLocal","execPath","addExecPath","cwdString","cwdPath","previous","applyPreferLocal","execPathString","applyExecPath","npmRunPath","DiscardedError","setErrorName","ErrorClass","defineProperty","writable","enumerable","configurable","execaErrorSymbol","isErrorInstance","ExecaError","ExecaSyncError","normalizeSignalArgument","signal","normalizeSignal","signalNameOrInteger","isInteger","normalizeSignalInteger","normalizeSignalName","getAvailableSignals","signalInteger","signalsIntegerToName","get","Map","constants","signals","signalName","getAvailableSignalNames","getAvailableSignalIntegers","values","signalIntegerTwo","subprocessKill","kill","forceKillAfterDelay","killSignal","onInternalError","controller","signalOrError","errorArgument","parseKillArguments","emitKillError","killResult","setKillTimeout","async","shouldForceKill","setTimeout","throwOnTimeout","subprocess","timeout","context","killAfterTimeout","timedOut","TEXT_ENCODINGS","BINARY_ENCODINGS","ENCODINGS","ENCODING_ALIASES","ucs2","serializeEncoding","encoding","getDefaultCwd","message","normalizeOptions","normalizeCwd","processedFile","processedArguments","processedOptions","node","shouldHandleNode","nodePath","nodeOptions","execArgv","filter","nodeOption","startsWith","formerNodePath","normalizedNodePath","resolvedNodePath","newOptions","basename","ipc","handleNodeOption","initialOptions","fdOptions","optionsCopy","normalizeFdSpecificOptions","addDefaultOptions","isFinite","validateTimeout","correctEncoding","lowerEncoding","getCorrectEncoding","correctEncodings","validateEncoding","getEnv","normalizeKillSignal","normalizeForceKillAfterDelay","extendEnv","localDir","localDirectory","cleanup","windowsHide","serialization","envOption","getRealtimeSignal","number","SIGRTMIN","action","description","standard","SIGNALS","forced","getSignals","realtimeSignals","getRealtimeSignals","defaultNumber","constantSignal","supported","getSignalByName","signalsByName","fromEntries","getSignalsByName","findSignalByNumber","signalA","stripFinalNewlineString","ArrayBuffer","isView","BYTES_PER_ELEMENT","stripFinalNewlineBinary","signalsA","SIGRTMAX","getSignalByNumber","getSignalsByNumber","LF","CR","LF_BINARY","subarray","CR_BINARY","isStream","checkOpen","readable","pipe","isWritableStream","write","end","writableObjectMode","destroy","destroyed","isReadableStream","read","readableObjectMode","isDuplexStream","a","c","constructor","t","this","next","done","releaseLock","cancel","n","o","r","return","create","h","preventCancel","getReader","s","getAsyncIterable","nodeImports","on","getStreamIterable","asyncIterator","AbortController","state","handleStreamEnd","chunk","aborted","finished","abort","getStreamContents","init","convertChunk","getSize","truncateChunk","addChunk","getFinalChunk","finalize","POSITIVE_INFINITY","asyncIterable","convertedChunk","getChunkType","appendChunk","appendFinalChunk","normalizedError","bufferedData","chunkSize","newLength","addNewChunk","truncatedChunk","MaxBufferError","contents","typeOfChunk","globalThis","isBuffer","prototypeName","super","getMaxBufferSync","stdoutMaxBuffer","getErrorPrefix","originalError","isMaxBuffer","errorCode","signalDescription","exitCode","isCanceled","streamName","threshold","unit","maxBufferInfo","getMaxBufferInfo","getMaxBufferMessage","serializeMessageItem","messageItem","makeSuccessResult","omitUndefinedProperties","durationMs","failed","isTerminated","stderr","pipedFrom","makeEarlyError","fileDescriptors","isSync","makeError","rawExitCode","rawSignal","timeoutDuration","normalizeExitPayload","originalMessage","shortMessage","prefix","escapedOriginalMessage","cwdStat","isDirectory","fixCwdError","getOriginalMessage","messagePart","serializeMessagePart","createMessages","cause","getFinalError","getErrorProperties","toZeroIfInfinity","prettyMilliseconds","milliseconds","isBigInt","colonNotation","compact","formatSubMilliseconds","separateMilliseconds","unitCount","secondsDecimalDigits","millisecondsDecimalDigits","add","long","short","valueString","isZero","wholeDigits","minLength","repeat","word","count","days","trunc","hours","minutes","seconds","microseconds","nanoseconds","parseNumber","parseBigint","parseMilliseconds","BigInt","millisecondsAndBelow","roundedMilliseconds","round","ceil","millisecondsString","toFixed","parseFloat","secondsFixed","decimalDigits","flooredInterimValue","floor","floorDecimals","secondsString","keepDecimalsOnWholeSeconds","separator","logEarlyResult","logResult","getIcon","logError","logDuration","durationMessage","handleResult","logFinalResult","getStdioItemType","isAsyncGenerator","isSyncGenerator","isUrl","isFilePathObject","isWebStream","isAsyncIterableObject","isIterableObject","getTransformStreamType","transform","isTransformOptions","getTransformObjectType","getDuplexType","getGeneratorObjectType","validateNonGeneratorType","final","objectMode","typeName","checkUndefinedOption","checkBooleanOption","isGenerator","isFilePathString","KNOWN_STDIO_STRINGS","isObject","TRANSFORM_TYPES","FILE_TYPES","SPECIAL_DUPLICATE_TYPES_SYNC","SPECIAL_DUPLICATE_TYPES","FORBID_DUPLICATE_TYPES","TYPE_TO_MESSAGE","generator","asyncGenerator","fileUrl","fileNumber","webStream","nodeStream","webTransform","duplex","native","iterable","getTransformObjectModes","newTransforms","direction","getOutputObjectModes","getInputObjectModes","getTransforms","stdioItems","transforms","type","stdioItem","normalizeTransform","sortTransforms","normalizeDuplex","normalizeTransformStream","normalizeGenerator","binaryOption","preserveNewlines","KNOWN_DIRECTIONS","anyDirection","alwaysInput","guessStreamDirection","standardStreamDirection","getStandardStreamDirection","hasAlias","alias","stdioOption","item","isOutputPipeOnly","every","getToStream","destination","to","isWritable","SUBPROCESS_OPTIONS","getFdNumber","destinationStream","getInvalidStdioOptionMessage","getFromStream","source","sourceStream","WeakMap","parseFdNumber","validateFdNumber","validOptions","defaultValue","getOptionName","fileDescriptor","getUsedDescriptor","getInvalidStdioOption","serializeOptionValue","stdin","usedDescriptor","getTargetFd","targetFdNumber","getTargetFdNumber","readFileSync","standardStreamIndex","getStandardStream","standardStream","handleInputOptions","inputFile","handleInputOption","handleInputFileOption","getInputType","getInputFileType","getDuplicateStreamInstance","otherStdioItems","duplicateStdioItems","hasSameValue","differentStdioItem","throwOnDuplicateStream","secondValue","href","handleStdio","addProperties","stdioArray","_","getStdioArray","normalizeStdioSync","normalizeStdioAsync","normalizeStdioOption","initialFileDescriptors","getFileDescriptor","getFinalFileDescriptors","forwardStdio","initialStdioItems","isStdioArray","initializeStdioItems","directions","getStdioItemDirection","getStreamDirection","targetFd","handleNativeStreamSync","handleNativeStreamAsync","handleNativeStream","normalizedStdioItems","normalizeTransforms","lastTransform","findLast","getFdObjectMode","validateFileObjectMode","stdioItemOne","indexOne","stdioItemTwo","indexTwo","filterDuplicates","initializeStdioItem","validateStdioArray","validateStreams","INVALID_STDIO_ARRAY_OPTIONS","validateFileStdio","protocol","isRegularUrl","isUnknownStdioString","fileStdioItem","getFinalFileDescriptor","cleanupCustomStreams","finalStdioItems","addStreamProperties","duplicateStream","flatMap","getOtherStdioItems","duplicateStdioItem","validateDuplicateTransform","validateDuplicateStreamSync","getDuplicateStream","forbiddenIfSync","throwInvalidSyncValue","addPropertiesSync","stripNewline","getStripFinalNewline","getSplitLinesGenerator","skipped","initializeSplitLines","splitLinesSync","splitLinesItemSync","previousChunks","splitGenerator","bind","linesFinal","start","newlineLength","getNewlineLength","concatString","isWindowsNewline","getAppendNewlineGenerator","appendNewlineGenerator","unixNewline","windowsNewline","concatBytes","linesStringInfo","linesUint8ArrayInfo","newline","firstChunk","secondChunk","getValidateTransformInput","validateStringTransformInput","getValidateTransformReturn","validateObjectTransformReturn","validateStringTransformReturn","validateEmptyReturn","getEncodingTransformGenerator","encodingUint8ArrayGenerator","stringDecoder","StringDecoder","encodingStringGenerator","encodingStringFinal","lastChunk","pushChunks","callbackify","getChunks","getChunksArguments","transformStream","currentIterable","transformChunk","generators","identityGenerator","transformedChunk","finalChunks","generatorFinalChunks","finalChunk","destroyTransform","throw","pushChunksSync","getChunksSync","runTransformSync","chunks","transformChunkSync","finalChunksSync","generatorFinalChunksSync","generatorToStream","addInternalGenerators","transformAsync","finalAsync","transformMethod","finalMethod","destroyMethod","Transform","writableHighWaterMark","getDefaultHighWaterMark","readableHighWaterMark","flush","runGeneratorsSync","isInput","reversedGenerators","addInputOptionSync","allStdioItems","transformedContents","applySingleInputGeneratorsSync","newContents","validateSerializable","invalidItem","shouldLogOutput","fdUsesVerbose","PIPED_STDIO_VALUES","isPipingStream","_readableState","pipes","logLine","inspect","spacedLines","TAB_SIZE","runOutputGeneratorsSync","serializeChunks","serializedResult","decoder","strings","finalString","uint8ArraysToStrings","joinToString","finalResult","writeToFiles","outputFiles","pathString","appendFileSync","waitForSubprocessExit","once","waitForSuccessfulExit","exitPromise","isSubprocessErrorExit","isFailedExit","getResultError","normalizeSyncOptions","validateSyncOptions","detached","cancelSignal","throwInvalidSyncOption","spawnSubprocessSync","syncResult","runSubprocessSync","resultError","isMaxBufferSync","getExitResultSync","truncatedResult","maxBufferValue","truncateMaxBufferSync","uint8ArrayResult","linesArray","logLinesSync","returnedResult","transformOutputResultSync","transformOutputSync","stdioOutput","getAllSync","getSyncResult","getInputFdNumbers","addInputOptionsSync","normalizedOptions","normalizeSpawnSyncOptions","createDummyStream","PassThrough","Readable","Writable","Duplex","handleDummyPromise","forbiddenIfAsync","fromWeb","addPropertiesAsync","createReadStream","createWriteStream","mergeStreams","streams","validateStream","highWaterMark","getHighWaterMark","passThroughStream","MergedStream","highWaterMarks","onMergedStreamFinished","streamPromise","endWhenStreamsDone","ended","onFinished","unpipeEvent","remove","delete","unpipe","updateMaxListeners","PASSTHROUGH_LISTENERS_COUNT","race","onMergedStreamEnd","onInputStreamsUnpipe","errorOrAbortStream","unpipedStream","PASSTHROUGH_LISTENERS_PER_STREAM","afterMergedStreamFinished","onInputStreamEnd","onInputStreamUnpipe","size","abortStream","endStream","isAbortError","errorStream","noop","increment","maxListeners","getMaxListeners","setMaxListeners","incrementMaxListeners","eventEmitter","maxListenersIncrement","addAbortListener","pipeStreams","onSourceFinish","onDestinationFinish","endDestinationStream","abortSourceStream","pipeTransform","streamProperty","SUBPROCESS_STREAM_PROPERTIES","pipeStdioItem","pipeGroups","setStandardStreamMaxListeners","inputStream","outputStream","outputStreams","MAX_LISTENERS_INCREMENT","processOk","removeListener","reallyExit","listeners","pid","kExitEmitter","for","ObjectDefineProperty","Emitter","emitted","afterExit","exit","id","random","ev","fn","list","splice","ret","SignalExitBase","onExit","load","unload","handler","sig","__signal_exit_emitter__","opts","alwaysLast","forEach","listener","og","getDestination","boundOptions","createNested","firstArgument","pipeArguments","mapDestinationArguments","pipeOptions","createNonCommandError","sourceOptions","PIPE_COMMAND_MESSAGE","waitForBothSubprocesses","sourceStatus","reason","sourceReason","sourceResult","destinationStatus","destinationReason","destinationResult","subprocessPromises","MERGED_STREAMS","unpipeOnAbort","unpipeSignal","unpipeContext","unpipeOnSignalAbort","mergedStream","pipeToSubprocess","sourceInfo","normalizedInfo","sourcePromise","destinationError","getDestinationStream","sourceError","getSourceStream","normalizePipeArguments","promise","handlePipePromise","getSubprocessPromises","getPipeArgumentsError","handlePipeArgumentsError","maxListenersController","pipeMoreSubprocessStream","pipeFirstSubprocessStream","cleanupMergedStreamsMap","pipeSubprocessStream","allSettled","getContentsProperty","throwObjectStream","getLengthProperty","arrayMethods","arrayBuffer","dataView","typedArray","others","useUint8Array","useUint8ArrayWithOffset","getNewContentsLength","SCALE_FACTOR","log","hasArrayBufferResize","arrayBufferMethods","previousLength","maxByteLength","resize","resizeArrayBuffer","resizeArrayBufferSlow","useTextDecoder","stringMethods","iterateOnSubprocessStream","subprocessStdout","shouldEncode","stopReadingOnExit","iterateOnStream","shouldSplit","iterateForResult","onStreamEnd","allMixed","stopReadingOnStreamEnd","onStdoutChunk","HIGH_WATER_MARK","highWatermark","iterateOnData","DEFAULT_OBJECT_HIGH_WATER_MARK","getGenerators","getStreamOutput","streamInfo","linesIterable","logLines","resumeStream","stripFinalNewlineValue","setImmediate","readableFlowing","resume","getStreamAsArray","getStreamAsArrayBuffer","handleBufferedData","getMaxBufferUnit","handleMaxBuffer","getBufferedData","isArrayBuffer","waitForStream","isSameDirection","stopOnExit","handleStdinDestroy","abortController","stdinCleanedUp","handleStreamError","originalStreams","originalStdin","spyOnStdinDestroy","subprocessStdin","_destroy","destroyArguments","setStdinCleanedUp","signalCode","shouldIgnoreStreamError","propagating","isStreamEpipe","isStreamAbort","isInputFileDescriptor","waitForSubprocessStream","getAllStream","bufferStdout","bufferStderr","getAllMixed","waitForOriginalStreams","waitForCustomStreamsEnd","throwOnSubprocessError","createDeferred","methods","addConcurrentStream","concurrentStreams","waitName","weakMap","promises","waitForConcurrentStreams","isSubprocessExit","safeWaitForSubprocessStdin","waitForSubprocessStdin","waitForSubprocessStdout","waitForSubprocess","destroyOtherStream","isOpen","createReadable","waitReadableDestroy","getSubprocessStdout","readableEncoding","getReadableOptions","onStdoutDataDone","getReadableMethods","onReadableDestroy","onStdoutFinished","onStdoutData","onRead","destroyOtherReadable","createWritable","waitWritableFinal","waitWritableDestroy","getSubprocessStdin","getWritableMethods","onWritableDestroy","onStdinFinished","onWrite","onWritableFinal","safeWaitForSubprocessStdout","destroyOtherWritable","createDuplex","onDuplexDestroy","createIterable","iterateOnStdoutData","addConvertedStreams","readableDestroy","writableFinal","writableDestroy","nativePromisePrototype","descriptors","property","Reflect","getOwnPropertyDescriptor","handleAsyncArguments","handleAsyncOptions","handleStdioAsync","spawnSubprocessAsync","extraStdio","createDummyStreams","earlyError","handleEarlyError","inputStreams","pipeOutputAsync","removeExitHandler","cleanupOnExit","makeAllStream","handlePromise","errorInfo","stdioResults","allResult","spawnPayload","exitPayload","waitForExit","stdioPromises","waitForStdioStreams","allPromise","waitForAllStream","originalPromises","customStreamsEndPromises","stdioPromise","waitForSubprocessResult","stdioResult","getAsyncResult","mergeOptions","mergeOption","boundOptionValue","DEEP_OPTIONS","createExeca","mapArguments","deepOptions","setBoundExeca","boundExeca","execaArguments","callBoundExeca","nextArguments","parseArguments","syncOptions","handleStdioSync","handleSyncArguments","execaCoreSync","descriptor","mergePromise","execaCoreAsync","callArguments","parseTemplates","initialFile","initialArguments","mergedOptions","parseCommand","unusedArguments","token","trim","SPACES_REGEXP","previousToken","endsWith","mapScriptSync","getScriptOptions","getScriptStdinOption","execa"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/495.main.js.map b/dist/495.main.js.map deleted file mode 100644 index c9a5c9e..0000000 --- a/dist/495.main.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"495.main.js","mappings":"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","sources":["webpack://@scaffoldly/awslambda-bootstrap/./node_modules/cross-spawn/index.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/cross-spawn/lib/enoent.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/cross-spawn/lib/parse.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/cross-spawn/lib/util/escape.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/cross-spawn/lib/util/readShebang.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/cross-spawn/lib/util/resolveCommand.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/cross-spawn/node_modules/isexe/index.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/cross-spawn/node_modules/isexe/mode.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/cross-spawn/node_modules/isexe/windows.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/cross-spawn/node_modules/which/which.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/path-key/index.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/shebang-command/index.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/shebang-regex/index.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/is-plain-obj/index.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/arguments/file-url.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/methods/parameters.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/utils/uint-array.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/methods/template.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/yoctocolors/index.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/verbose/info.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/figures/index.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/is-unicode-supported/index.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/verbose/log.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/return/duration.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/arguments/escape.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/utils/standard-stream.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/arguments/specific.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/arguments/command.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/verbose/start.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/npm-run-path/node_modules/path-key/index.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/npm-run-path/index.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/return/final-error.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/terminate/signal.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/terminate/kill.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/terminate/timeout.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/arguments/encoding-option.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/arguments/cwd.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/arguments/options.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/methods/node.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/human-signals/build/src/realtime.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/human-signals/build/src/core.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/human-signals/build/src/signals.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/human-signals/build/src/main.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/strip-final-newline/index.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/is-stream/index.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/@sec-ant/readable-stream/dist/ponyfill/asyncIterator.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/get-stream/source/stream.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/get-stream/source/contents.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/io/max-buffer.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/return/message.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/return/result.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/parse-ms/index.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/pretty-ms/index.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/verbose/error.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/verbose/complete.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/return/reject.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/stdio/type.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/transform/object-mode.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/transform/normalize.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/stdio/direction.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/stdio/stdio-option.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/arguments/fd-options.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/stdio/native.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/stdio/input-option.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/stdio/duplicate.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/stdio/handle.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/stdio/handle-sync.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/io/strip-newline.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/transform/split.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/transform/validate.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/transform/encoding-transform.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/transform/run-async.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/transform/run-sync.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/transform/generator.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/io/input-sync.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/verbose/output.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/io/output-sync.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/resolve/exit-async.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/resolve/exit-sync.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/methods/main-sync.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/resolve/all-sync.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/return/early-error.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/stdio/handle-async.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/@sindresorhus/merge-streams/index.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/utils/max-listeners.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/io/pipeline.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/io/output-async.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/signal-exit/dist/mjs/signals.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/signal-exit/dist/mjs/index.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/terminate/cleanup.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/pipe/pipe-arguments.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/pipe/throw.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/pipe/sequence.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/pipe/streaming.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/pipe/abort.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/pipe/setup.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/get-stream/source/utils.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/get-stream/source/array.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/get-stream/source/array-buffer.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/get-stream/source/string.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/io/iterate.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/io/contents.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/resolve/wait-stream.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/resolve/stdio.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/resolve/all-async.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/resolve/wait-subprocess.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/utils/deferred.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/convert/concurrent.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/convert/shared.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/convert/readable.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/convert/writable.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/convert/duplex.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/convert/iterable.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/convert/add.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/methods/promise.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/methods/main-async.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/methods/bind.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/methods/create.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/methods/command.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/lib/methods/script.js","webpack://@scaffoldly/awslambda-bootstrap/./node_modules/execa/index.js"],"sourcesContent":["'use strict';\n\nconst cp = require('child_process');\nconst parse = require('./lib/parse');\nconst enoent = require('./lib/enoent');\n\nfunction spawn(command, args, options) {\n // Parse the arguments\n const parsed = parse(command, args, options);\n\n // Spawn the child process\n const spawned = cp.spawn(parsed.command, parsed.args, parsed.options);\n\n // Hook into child process \"exit\" event to emit an error if the command\n // does not exists, see: https://github.com/IndigoUnited/node-cross-spawn/issues/16\n enoent.hookChildProcess(spawned, parsed);\n\n return spawned;\n}\n\nfunction spawnSync(command, args, options) {\n // Parse the arguments\n const parsed = parse(command, args, options);\n\n // Spawn the child process\n const result = cp.spawnSync(parsed.command, parsed.args, parsed.options);\n\n // Analyze if the command does not exist, see: https://github.com/IndigoUnited/node-cross-spawn/issues/16\n result.error = result.error || enoent.verifyENOENTSync(result.status, parsed);\n\n return result;\n}\n\nmodule.exports = spawn;\nmodule.exports.spawn = spawn;\nmodule.exports.sync = spawnSync;\n\nmodule.exports._parse = parse;\nmodule.exports._enoent = enoent;\n","'use strict';\n\nconst isWin = process.platform === 'win32';\n\nfunction notFoundError(original, syscall) {\n return Object.assign(new Error(`${syscall} ${original.command} ENOENT`), {\n code: 'ENOENT',\n errno: 'ENOENT',\n syscall: `${syscall} ${original.command}`,\n path: original.command,\n spawnargs: original.args,\n });\n}\n\nfunction hookChildProcess(cp, parsed) {\n if (!isWin) {\n return;\n }\n\n const originalEmit = cp.emit;\n\n cp.emit = function (name, arg1) {\n // If emitting \"exit\" event and exit code is 1, we need to check if\n // the command exists and emit an \"error\" instead\n // See https://github.com/IndigoUnited/node-cross-spawn/issues/16\n if (name === 'exit') {\n const err = verifyENOENT(arg1, parsed, 'spawn');\n\n if (err) {\n return originalEmit.call(cp, 'error', err);\n }\n }\n\n return originalEmit.apply(cp, arguments); // eslint-disable-line prefer-rest-params\n };\n}\n\nfunction verifyENOENT(status, parsed) {\n if (isWin && status === 1 && !parsed.file) {\n return notFoundError(parsed.original, 'spawn');\n }\n\n return null;\n}\n\nfunction verifyENOENTSync(status, parsed) {\n if (isWin && status === 1 && !parsed.file) {\n return notFoundError(parsed.original, 'spawnSync');\n }\n\n return null;\n}\n\nmodule.exports = {\n hookChildProcess,\n verifyENOENT,\n verifyENOENTSync,\n notFoundError,\n};\n","'use strict';\n\nconst path = require('path');\nconst resolveCommand = require('./util/resolveCommand');\nconst escape = require('./util/escape');\nconst readShebang = require('./util/readShebang');\n\nconst isWin = process.platform === 'win32';\nconst isExecutableRegExp = /\\.(?:com|exe)$/i;\nconst isCmdShimRegExp = /node_modules[\\\\/].bin[\\\\/][^\\\\/]+\\.cmd$/i;\n\nfunction detectShebang(parsed) {\n parsed.file = resolveCommand(parsed);\n\n const shebang = parsed.file && readShebang(parsed.file);\n\n if (shebang) {\n parsed.args.unshift(parsed.file);\n parsed.command = shebang;\n\n return resolveCommand(parsed);\n }\n\n return parsed.file;\n}\n\nfunction parseNonShell(parsed) {\n if (!isWin) {\n return parsed;\n }\n\n // Detect & add support for shebangs\n const commandFile = detectShebang(parsed);\n\n // We don't need a shell if the command filename is an executable\n const needsShell = !isExecutableRegExp.test(commandFile);\n\n // If a shell is required, use cmd.exe and take care of escaping everything correctly\n // Note that `forceShell` is an hidden option used only in tests\n if (parsed.options.forceShell || needsShell) {\n // Need to double escape meta chars if the command is a cmd-shim located in `node_modules/.bin/`\n // The cmd-shim simply calls execute the package bin file with NodeJS, proxying any argument\n // Because the escape of metachars with ^ gets interpreted when the cmd.exe is first called,\n // we need to double escape them\n const needsDoubleEscapeMetaChars = isCmdShimRegExp.test(commandFile);\n\n // Normalize posix paths into OS compatible paths (e.g.: foo/bar -> foo\\bar)\n // This is necessary otherwise it will always fail with ENOENT in those cases\n parsed.command = path.normalize(parsed.command);\n\n // Escape command & arguments\n parsed.command = escape.command(parsed.command);\n parsed.args = parsed.args.map((arg) => escape.argument(arg, needsDoubleEscapeMetaChars));\n\n const shellCommand = [parsed.command].concat(parsed.args).join(' ');\n\n parsed.args = ['/d', '/s', '/c', `\"${shellCommand}\"`];\n parsed.command = process.env.comspec || 'cmd.exe';\n parsed.options.windowsVerbatimArguments = true; // Tell node's spawn that the arguments are already escaped\n }\n\n return parsed;\n}\n\nfunction parse(command, args, options) {\n // Normalize arguments, similar to nodejs\n if (args && !Array.isArray(args)) {\n options = args;\n args = null;\n }\n\n args = args ? args.slice(0) : []; // Clone array to avoid changing the original\n options = Object.assign({}, options); // Clone object to avoid changing the original\n\n // Build our parsed object\n const parsed = {\n command,\n args,\n options,\n file: undefined,\n original: {\n command,\n args,\n },\n };\n\n // Delegate further parsing to shell or non-shell\n return options.shell ? parsed : parseNonShell(parsed);\n}\n\nmodule.exports = parse;\n","'use strict';\n\n// See http://www.robvanderwoude.com/escapechars.php\nconst metaCharsRegExp = /([()\\][%!^\"`<>&|;, *?])/g;\n\nfunction escapeCommand(arg) {\n // Escape meta chars\n arg = arg.replace(metaCharsRegExp, '^$1');\n\n return arg;\n}\n\nfunction escapeArgument(arg, doubleEscapeMetaChars) {\n // Convert to string\n arg = `${arg}`;\n\n // Algorithm below is based on https://qntm.org/cmd\n\n // Sequence of backslashes followed by a double quote:\n // double up all the backslashes and escape the double quote\n arg = arg.replace(/(\\\\*)\"/g, '$1$1\\\\\"');\n\n // Sequence of backslashes followed by the end of the string\n // (which will become a double quote later):\n // double up all the backslashes\n arg = arg.replace(/(\\\\*)$/, '$1$1');\n\n // All other backslashes occur literally\n\n // Quote the whole thing:\n arg = `\"${arg}\"`;\n\n // Escape meta chars\n arg = arg.replace(metaCharsRegExp, '^$1');\n\n // Double escape meta chars if necessary\n if (doubleEscapeMetaChars) {\n arg = arg.replace(metaCharsRegExp, '^$1');\n }\n\n return arg;\n}\n\nmodule.exports.command = escapeCommand;\nmodule.exports.argument = escapeArgument;\n","'use strict';\n\nconst fs = require('fs');\nconst shebangCommand = require('shebang-command');\n\nfunction readShebang(command) {\n // Read the first 150 bytes from the file\n const size = 150;\n const buffer = Buffer.alloc(size);\n\n let fd;\n\n try {\n fd = fs.openSync(command, 'r');\n fs.readSync(fd, buffer, 0, size, 0);\n fs.closeSync(fd);\n } catch (e) { /* Empty */ }\n\n // Attempt to extract shebang (null is returned if not a shebang)\n return shebangCommand(buffer.toString());\n}\n\nmodule.exports = readShebang;\n","'use strict';\n\nconst path = require('path');\nconst which = require('which');\nconst getPathKey = require('path-key');\n\nfunction resolveCommandAttempt(parsed, withoutPathExt) {\n const env = parsed.options.env || process.env;\n const cwd = process.cwd();\n const hasCustomCwd = parsed.options.cwd != null;\n // Worker threads do not have process.chdir()\n const shouldSwitchCwd = hasCustomCwd && process.chdir !== undefined && !process.chdir.disabled;\n\n // If a custom `cwd` was specified, we need to change the process cwd\n // because `which` will do stat calls but does not support a custom cwd\n if (shouldSwitchCwd) {\n try {\n process.chdir(parsed.options.cwd);\n } catch (err) {\n /* Empty */\n }\n }\n\n let resolved;\n\n try {\n resolved = which.sync(parsed.command, {\n path: env[getPathKey({ env })],\n pathExt: withoutPathExt ? path.delimiter : undefined,\n });\n } catch (e) {\n /* Empty */\n } finally {\n if (shouldSwitchCwd) {\n process.chdir(cwd);\n }\n }\n\n // If we successfully resolved, ensure that an absolute path is returned\n // Note that when a custom `cwd` was used, we need to resolve to an absolute path based on it\n if (resolved) {\n resolved = path.resolve(hasCustomCwd ? parsed.options.cwd : '', resolved);\n }\n\n return resolved;\n}\n\nfunction resolveCommand(parsed) {\n return resolveCommandAttempt(parsed) || resolveCommandAttempt(parsed, true);\n}\n\nmodule.exports = resolveCommand;\n","var fs = require('fs')\nvar core\nif (process.platform === 'win32' || global.TESTING_WINDOWS) {\n core = require('./windows.js')\n} else {\n core = require('./mode.js')\n}\n\nmodule.exports = isexe\nisexe.sync = sync\n\nfunction isexe (path, options, cb) {\n if (typeof options === 'function') {\n cb = options\n options = {}\n }\n\n if (!cb) {\n if (typeof Promise !== 'function') {\n throw new TypeError('callback not provided')\n }\n\n return new Promise(function (resolve, reject) {\n isexe(path, options || {}, function (er, is) {\n if (er) {\n reject(er)\n } else {\n resolve(is)\n }\n })\n })\n }\n\n core(path, options || {}, function (er, is) {\n // ignore EACCES because that just means we aren't allowed to run it\n if (er) {\n if (er.code === 'EACCES' || options && options.ignoreErrors) {\n er = null\n is = false\n }\n }\n cb(er, is)\n })\n}\n\nfunction sync (path, options) {\n // my kingdom for a filtered catch\n try {\n return core.sync(path, options || {})\n } catch (er) {\n if (options && options.ignoreErrors || er.code === 'EACCES') {\n return false\n } else {\n throw er\n }\n }\n}\n","module.exports = isexe\nisexe.sync = sync\n\nvar fs = require('fs')\n\nfunction isexe (path, options, cb) {\n fs.stat(path, function (er, stat) {\n cb(er, er ? false : checkStat(stat, options))\n })\n}\n\nfunction sync (path, options) {\n return checkStat(fs.statSync(path), options)\n}\n\nfunction checkStat (stat, options) {\n return stat.isFile() && checkMode(stat, options)\n}\n\nfunction checkMode (stat, options) {\n var mod = stat.mode\n var uid = stat.uid\n var gid = stat.gid\n\n var myUid = options.uid !== undefined ?\n options.uid : process.getuid && process.getuid()\n var myGid = options.gid !== undefined ?\n options.gid : process.getgid && process.getgid()\n\n var u = parseInt('100', 8)\n var g = parseInt('010', 8)\n var o = parseInt('001', 8)\n var ug = u | g\n\n var ret = (mod & o) ||\n (mod & g) && gid === myGid ||\n (mod & u) && uid === myUid ||\n (mod & ug) && myUid === 0\n\n return ret\n}\n","module.exports = isexe\nisexe.sync = sync\n\nvar fs = require('fs')\n\nfunction checkPathExt (path, options) {\n var pathext = options.pathExt !== undefined ?\n options.pathExt : process.env.PATHEXT\n\n if (!pathext) {\n return true\n }\n\n pathext = pathext.split(';')\n if (pathext.indexOf('') !== -1) {\n return true\n }\n for (var i = 0; i < pathext.length; i++) {\n var p = pathext[i].toLowerCase()\n if (p && path.substr(-p.length).toLowerCase() === p) {\n return true\n }\n }\n return false\n}\n\nfunction checkStat (stat, path, options) {\n if (!stat.isSymbolicLink() && !stat.isFile()) {\n return false\n }\n return checkPathExt(path, options)\n}\n\nfunction isexe (path, options, cb) {\n fs.stat(path, function (er, stat) {\n cb(er, er ? false : checkStat(stat, path, options))\n })\n}\n\nfunction sync (path, options) {\n return checkStat(fs.statSync(path), path, options)\n}\n","const isWindows = process.platform === 'win32' ||\n process.env.OSTYPE === 'cygwin' ||\n process.env.OSTYPE === 'msys'\n\nconst path = require('path')\nconst COLON = isWindows ? ';' : ':'\nconst isexe = require('isexe')\n\nconst getNotFoundError = (cmd) =>\n Object.assign(new Error(`not found: ${cmd}`), { code: 'ENOENT' })\n\nconst getPathInfo = (cmd, opt) => {\n const colon = opt.colon || COLON\n\n // If it has a slash, then we don't bother searching the pathenv.\n // just check the file itself, and that's it.\n const pathEnv = cmd.match(/\\//) || isWindows && cmd.match(/\\\\/) ? ['']\n : (\n [\n // windows always checks the cwd first\n ...(isWindows ? [process.cwd()] : []),\n ...(opt.path || process.env.PATH ||\n /* istanbul ignore next: very unusual */ '').split(colon),\n ]\n )\n const pathExtExe = isWindows\n ? opt.pathExt || process.env.PATHEXT || '.EXE;.CMD;.BAT;.COM'\n : ''\n const pathExt = isWindows ? pathExtExe.split(colon) : ['']\n\n if (isWindows) {\n if (cmd.indexOf('.') !== -1 && pathExt[0] !== '')\n pathExt.unshift('')\n }\n\n return {\n pathEnv,\n pathExt,\n pathExtExe,\n }\n}\n\nconst which = (cmd, opt, cb) => {\n if (typeof opt === 'function') {\n cb = opt\n opt = {}\n }\n if (!opt)\n opt = {}\n\n const { pathEnv, pathExt, pathExtExe } = getPathInfo(cmd, opt)\n const found = []\n\n const step = i => new Promise((resolve, reject) => {\n if (i === pathEnv.length)\n return opt.all && found.length ? resolve(found)\n : reject(getNotFoundError(cmd))\n\n const ppRaw = pathEnv[i]\n const pathPart = /^\".*\"$/.test(ppRaw) ? ppRaw.slice(1, -1) : ppRaw\n\n const pCmd = path.join(pathPart, cmd)\n const p = !pathPart && /^\\.[\\\\\\/]/.test(cmd) ? cmd.slice(0, 2) + pCmd\n : pCmd\n\n resolve(subStep(p, i, 0))\n })\n\n const subStep = (p, i, ii) => new Promise((resolve, reject) => {\n if (ii === pathExt.length)\n return resolve(step(i + 1))\n const ext = pathExt[ii]\n isexe(p + ext, { pathExt: pathExtExe }, (er, is) => {\n if (!er && is) {\n if (opt.all)\n found.push(p + ext)\n else\n return resolve(p + ext)\n }\n return resolve(subStep(p, i, ii + 1))\n })\n })\n\n return cb ? step(0).then(res => cb(null, res), cb) : step(0)\n}\n\nconst whichSync = (cmd, opt) => {\n opt = opt || {}\n\n const { pathEnv, pathExt, pathExtExe } = getPathInfo(cmd, opt)\n const found = []\n\n for (let i = 0; i < pathEnv.length; i ++) {\n const ppRaw = pathEnv[i]\n const pathPart = /^\".*\"$/.test(ppRaw) ? ppRaw.slice(1, -1) : ppRaw\n\n const pCmd = path.join(pathPart, cmd)\n const p = !pathPart && /^\\.[\\\\\\/]/.test(cmd) ? cmd.slice(0, 2) + pCmd\n : pCmd\n\n for (let j = 0; j < pathExt.length; j ++) {\n const cur = p + pathExt[j]\n try {\n const is = isexe.sync(cur, { pathExt: pathExtExe })\n if (is) {\n if (opt.all)\n found.push(cur)\n else\n return cur\n }\n } catch (ex) {}\n }\n }\n\n if (opt.all && found.length)\n return found\n\n if (opt.nothrow)\n return null\n\n throw getNotFoundError(cmd)\n}\n\nmodule.exports = which\nwhich.sync = whichSync\n","'use strict';\n\nconst pathKey = (options = {}) => {\n\tconst environment = options.env || process.env;\n\tconst platform = options.platform || process.platform;\n\n\tif (platform !== 'win32') {\n\t\treturn 'PATH';\n\t}\n\n\treturn Object.keys(environment).reverse().find(key => key.toUpperCase() === 'PATH') || 'Path';\n};\n\nmodule.exports = pathKey;\n// TODO: Remove this for the next major release\nmodule.exports.default = pathKey;\n","'use strict';\nconst shebangRegex = require('shebang-regex');\n\nmodule.exports = (string = '') => {\n\tconst match = string.match(shebangRegex);\n\n\tif (!match) {\n\t\treturn null;\n\t}\n\n\tconst [path, argument] = match[0].replace(/#! ?/, '').split(' ');\n\tconst binary = path.split('/').pop();\n\n\tif (binary === 'env') {\n\t\treturn argument;\n\t}\n\n\treturn argument ? `${binary} ${argument}` : binary;\n};\n","'use strict';\nmodule.exports = /^#!(.*)/;\n","export default function isPlainObject(value) {\n\tif (typeof value !== 'object' || value === null) {\n\t\treturn false;\n\t}\n\n\tconst prototype = Object.getPrototypeOf(value);\n\treturn (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in value) && !(Symbol.iterator in value);\n}\n","import {fileURLToPath} from 'node:url';\n\n// Allow some arguments/options to be either a file path string or a file URL\nexport const safeNormalizeFileUrl = (file, name) => {\n\tconst fileString = normalizeFileUrl(file);\n\n\tif (typeof fileString !== 'string') {\n\t\tthrow new TypeError(`${name} must be a string or a file URL: ${fileString}.`);\n\t}\n\n\treturn fileString;\n};\n\n// Same but also allows other values, e.g. `boolean` for the `shell` option\nexport const normalizeFileUrl = file => file instanceof URL ? fileURLToPath(file) : file;\n","import isPlainObject from 'is-plain-obj';\nimport {safeNormalizeFileUrl} from '../arguments/file-url.js';\n\n// The command `arguments` and `options` are both optional.\n// This also does basic validation on them and on the command file.\nexport const normalizeParameters = (rawFile, rawArguments = [], rawOptions = {}) => {\n\tconst filePath = safeNormalizeFileUrl(rawFile, 'First argument');\n\tconst [commandArguments, options] = isPlainObject(rawArguments)\n\t\t? [[], rawArguments]\n\t\t: [rawArguments, rawOptions];\n\n\tif (!Array.isArray(commandArguments)) {\n\t\tthrow new TypeError(`Second argument must be either an array of arguments or an options object: ${commandArguments}`);\n\t}\n\n\tif (commandArguments.some(commandArgument => typeof commandArgument === 'object' && commandArgument !== null)) {\n\t\tthrow new TypeError(`Second argument must be an array of strings: ${commandArguments}`);\n\t}\n\n\tconst normalizedArguments = commandArguments.map(String);\n\tconst nullByteArgument = normalizedArguments.find(normalizedArgument => normalizedArgument.includes('\\0'));\n\tif (nullByteArgument !== undefined) {\n\t\tthrow new TypeError(`Arguments cannot contain null bytes (\"\\\\0\"): ${nullByteArgument}`);\n\t}\n\n\tif (!isPlainObject(options)) {\n\t\tthrow new TypeError(`Last argument must be an options object: ${options}`);\n\t}\n\n\treturn [filePath, normalizedArguments, options];\n};\n","import {StringDecoder} from 'node:string_decoder';\n\nconst {toString: objectToString} = Object.prototype;\n\nexport const isArrayBuffer = value => objectToString.call(value) === '[object ArrayBuffer]';\n\n// Is either Uint8Array or Buffer\nexport const isUint8Array = value => objectToString.call(value) === '[object Uint8Array]';\n\nexport const bufferToUint8Array = buffer => new Uint8Array(buffer.buffer, buffer.byteOffset, buffer.byteLength);\n\nconst textEncoder = new TextEncoder();\nconst stringToUint8Array = string => textEncoder.encode(string);\n\nconst textDecoder = new TextDecoder();\nexport const uint8ArrayToString = uint8Array => textDecoder.decode(uint8Array);\n\nexport const joinToString = (uint8ArraysOrStrings, encoding) => {\n\tconst strings = uint8ArraysToStrings(uint8ArraysOrStrings, encoding);\n\treturn strings.join('');\n};\n\nconst uint8ArraysToStrings = (uint8ArraysOrStrings, encoding) => {\n\tif (encoding === 'utf8' && uint8ArraysOrStrings.every(uint8ArrayOrString => typeof uint8ArrayOrString === 'string')) {\n\t\treturn uint8ArraysOrStrings;\n\t}\n\n\tconst decoder = new StringDecoder(encoding);\n\tconst strings = uint8ArraysOrStrings\n\t\t.map(uint8ArrayOrString => typeof uint8ArrayOrString === 'string'\n\t\t\t? stringToUint8Array(uint8ArrayOrString)\n\t\t\t: uint8ArrayOrString)\n\t\t.map(uint8Array => decoder.write(uint8Array));\n\tconst finalString = decoder.end();\n\treturn finalString === '' ? strings : [...strings, finalString];\n};\n\nexport const joinToUint8Array = uint8ArraysOrStrings => {\n\tif (uint8ArraysOrStrings.length === 1 && isUint8Array(uint8ArraysOrStrings[0])) {\n\t\treturn uint8ArraysOrStrings[0];\n\t}\n\n\treturn concatUint8Arrays(stringsToUint8Arrays(uint8ArraysOrStrings));\n};\n\nconst stringsToUint8Arrays = uint8ArraysOrStrings => uint8ArraysOrStrings.map(uint8ArrayOrString => typeof uint8ArrayOrString === 'string'\n\t? stringToUint8Array(uint8ArrayOrString)\n\t: uint8ArrayOrString);\n\nexport const concatUint8Arrays = uint8Arrays => {\n\tconst result = new Uint8Array(getJoinLength(uint8Arrays));\n\n\tlet index = 0;\n\tfor (const uint8Array of uint8Arrays) {\n\t\tresult.set(uint8Array, index);\n\t\tindex += uint8Array.length;\n\t}\n\n\treturn result;\n};\n\nconst getJoinLength = uint8Arrays => {\n\tlet joinLength = 0;\n\tfor (const uint8Array of uint8Arrays) {\n\t\tjoinLength += uint8Array.length;\n\t}\n\n\treturn joinLength;\n};\n","import {ChildProcess} from 'node:child_process';\nimport isPlainObject from 'is-plain-obj';\nimport {isUint8Array, uint8ArrayToString} from '../utils/uint-array.js';\n\n// Check whether the template string syntax is being used\nexport const isTemplateString = templates => Array.isArray(templates) && Array.isArray(templates.raw);\n\n// Convert execa`file ...commandArguments` to execa(file, commandArguments)\nexport const parseTemplates = (templates, expressions) => {\n\tlet tokens = [];\n\n\tfor (const [index, template] of templates.entries()) {\n\t\ttokens = parseTemplate({\n\t\t\ttemplates,\n\t\t\texpressions,\n\t\t\ttokens,\n\t\t\tindex,\n\t\t\ttemplate,\n\t\t});\n\t}\n\n\tif (tokens.length === 0) {\n\t\tthrow new TypeError('Template script must not be empty');\n\t}\n\n\tconst [file, ...commandArguments] = tokens;\n\treturn [file, commandArguments, {}];\n};\n\nconst parseTemplate = ({templates, expressions, tokens, index, template}) => {\n\tif (template === undefined) {\n\t\tthrow new TypeError(`Invalid backslash sequence: ${templates.raw[index]}`);\n\t}\n\n\tconst {nextTokens, leadingWhitespaces, trailingWhitespaces} = splitByWhitespaces(template, templates.raw[index]);\n\tconst newTokens = concatTokens(tokens, nextTokens, leadingWhitespaces);\n\n\tif (index === expressions.length) {\n\t\treturn newTokens;\n\t}\n\n\tconst expression = expressions[index];\n\tconst expressionTokens = Array.isArray(expression)\n\t\t? expression.map(expression => parseExpression(expression))\n\t\t: [parseExpression(expression)];\n\treturn concatTokens(newTokens, expressionTokens, trailingWhitespaces);\n};\n\n// Like `string.split(/[ \\t\\r\\n]+/)` except newlines and tabs are:\n// - ignored when input as a backslash sequence like: `echo foo\\n bar`\n// - not ignored when input directly\n// The only way to distinguish those in JavaScript is to use a tagged template and compare:\n// - the first array argument, which does not escape backslash sequences\n// - its `raw` property, which escapes them\nconst splitByWhitespaces = (template, rawTemplate) => {\n\tif (rawTemplate.length === 0) {\n\t\treturn {nextTokens: [], leadingWhitespaces: false, trailingWhitespaces: false};\n\t}\n\n\tconst nextTokens = [];\n\tlet templateStart = 0;\n\tconst leadingWhitespaces = DELIMITERS.has(rawTemplate[0]);\n\n\tfor (\n\t\tlet templateIndex = 0, rawIndex = 0;\n\t\ttemplateIndex < template.length;\n\t\ttemplateIndex += 1, rawIndex += 1\n\t) {\n\t\tconst rawCharacter = rawTemplate[rawIndex];\n\t\tif (DELIMITERS.has(rawCharacter)) {\n\t\t\tif (templateStart !== templateIndex) {\n\t\t\t\tnextTokens.push(template.slice(templateStart, templateIndex));\n\t\t\t}\n\n\t\t\ttemplateStart = templateIndex + 1;\n\t\t} else if (rawCharacter === '\\\\') {\n\t\t\tconst nextRawCharacter = rawTemplate[rawIndex + 1];\n\t\t\tif (nextRawCharacter === 'u' && rawTemplate[rawIndex + 2] === '{') {\n\t\t\t\trawIndex = rawTemplate.indexOf('}', rawIndex + 3);\n\t\t\t} else {\n\t\t\t\trawIndex += ESCAPE_LENGTH[nextRawCharacter] ?? 1;\n\t\t\t}\n\t\t}\n\t}\n\n\tconst trailingWhitespaces = templateStart === template.length;\n\tif (!trailingWhitespaces) {\n\t\tnextTokens.push(template.slice(templateStart));\n\t}\n\n\treturn {nextTokens, leadingWhitespaces, trailingWhitespaces};\n};\n\nconst DELIMITERS = new Set([' ', '\\t', '\\r', '\\n']);\n\n// Number of characters in backslash escape sequences: \\0 \\xXX or \\uXXXX\n// \\cX is allowed in RegExps but not in strings\n// Octal sequences are not allowed in strict mode\nconst ESCAPE_LENGTH = {x: 3, u: 5};\n\nconst concatTokens = (tokens, nextTokens, isSeparated) => isSeparated\n\t|| tokens.length === 0\n\t|| nextTokens.length === 0\n\t? [...tokens, ...nextTokens]\n\t: [\n\t\t...tokens.slice(0, -1),\n\t\t`${tokens.at(-1)}${nextTokens[0]}`,\n\t\t...nextTokens.slice(1),\n\t];\n\n// Handle `${expression}` inside the template string syntax\nconst parseExpression = expression => {\n\tconst typeOfExpression = typeof expression;\n\n\tif (typeOfExpression === 'string') {\n\t\treturn expression;\n\t}\n\n\tif (typeOfExpression === 'number') {\n\t\treturn String(expression);\n\t}\n\n\tif (isPlainObject(expression) && ('stdout' in expression || 'isMaxBuffer' in expression)) {\n\t\treturn getSubprocessResult(expression);\n\t}\n\n\tif (expression instanceof ChildProcess || Object.prototype.toString.call(expression) === '[object Promise]') {\n\t\t// eslint-disable-next-line no-template-curly-in-string\n\t\tthrow new TypeError('Unexpected subprocess in template expression. Please use ${await subprocess} instead of ${subprocess}.');\n\t}\n\n\tthrow new TypeError(`Unexpected \"${typeOfExpression}\" in template expression`);\n};\n\nconst getSubprocessResult = ({stdout}) => {\n\tif (typeof stdout === 'string') {\n\t\treturn stdout;\n\t}\n\n\tif (isUint8Array(stdout)) {\n\t\treturn uint8ArrayToString(stdout);\n\t}\n\n\tif (stdout === undefined) {\n\t\tthrow new TypeError('Missing result.stdout in template expression. This is probably due to the previous subprocess\\' \"stdout\" option.');\n\t}\n\n\tthrow new TypeError(`Unexpected \"${typeof stdout}\" stdout in template expression`);\n};\n","import tty from 'node:tty';\n\n// eslint-disable-next-line no-warning-comments\n// TODO: Use a better method when it's added to Node.js (https://github.com/nodejs/node/pull/40240)\nconst hasColors = tty.WriteStream.prototype.hasColors();\n\nconst format = (open, close) => {\n\tif (!hasColors) {\n\t\treturn input => input;\n\t}\n\n\tconst openCode = `\\u001B[${open}m`;\n\tconst closeCode = `\\u001B[${close}m`;\n\n\treturn input => {\n\t\tconst string = input + ''; // eslint-disable-line no-implicit-coercion -- This is faster.\n\t\tlet index = string.indexOf(closeCode);\n\n\t\tif (index === -1) {\n\t\t\t// Note: Intentionally not using string interpolation for performance reasons.\n\t\t\treturn openCode + string + closeCode;\n\t\t}\n\n\t\t// Handle nested colors.\n\n\t\t// We could have done this, but it's too slow (as of Node.js 22).\n\t\t// return openCode + string.replaceAll(closeCode, openCode) + closeCode;\n\n\t\tlet result = openCode;\n\t\tlet lastIndex = 0;\n\n\t\twhile (index !== -1) {\n\t\t\tresult += string.slice(lastIndex, index) + openCode;\n\t\t\tlastIndex = index + closeCode.length;\n\t\t\tindex = string.indexOf(closeCode, lastIndex);\n\t\t}\n\n\t\tresult += string.slice(lastIndex) + closeCode;\n\n\t\treturn result;\n\t};\n};\n\nexport const reset = format(0, 0);\nexport const bold = format(1, 22);\nexport const dim = format(2, 22);\nexport const italic = format(3, 23);\nexport const underline = format(4, 24);\nexport const overline = format(53, 55);\nexport const inverse = format(7, 27);\nexport const hidden = format(8, 28);\nexport const strikethrough = format(9, 29);\n\nexport const black = format(30, 39);\nexport const red = format(31, 39);\nexport const green = format(32, 39);\nexport const yellow = format(33, 39);\nexport const blue = format(34, 39);\nexport const magenta = format(35, 39);\nexport const cyan = format(36, 39);\nexport const white = format(37, 39);\nexport const gray = format(90, 39);\n\nexport const bgBlack = format(40, 49);\nexport const bgRed = format(41, 49);\nexport const bgGreen = format(42, 49);\nexport const bgYellow = format(43, 49);\nexport const bgBlue = format(44, 49);\nexport const bgMagenta = format(45, 49);\nexport const bgCyan = format(46, 49);\nexport const bgWhite = format(47, 49);\nexport const bgGray = format(100, 49);\n\nexport const redBright = format(91, 39);\nexport const greenBright = format(92, 39);\nexport const yellowBright = format(93, 39);\nexport const blueBright = format(94, 39);\nexport const magentaBright = format(95, 39);\nexport const cyanBright = format(96, 39);\nexport const whiteBright = format(97, 39);\n\nexport const bgRedBright = format(101, 49);\nexport const bgGreenBright = format(102, 49);\nexport const bgYellowBright = format(103, 49);\nexport const bgBlueBright = format(104, 49);\nexport const bgMagentaBright = format(105, 49);\nexport const bgCyanBright = format(106, 49);\nexport const bgWhiteBright = format(107, 49);\n","import {debuglog} from 'node:util';\n\n// Default value for the `verbose` option\nexport const verboseDefault = debuglog('execa').enabled ? 'full' : 'none';\n\n// Information computed before spawning, used by the `verbose` option\nexport const getVerboseInfo = verbose => {\n\tconst verboseId = isVerbose(verbose) ? VERBOSE_ID++ : undefined;\n\tvalidateVerbose(verbose);\n\treturn {verbose, verboseId};\n};\n\n// Prepending the `pid` is useful when multiple commands print their output at the same time.\n// However, we cannot use the real PID since this is not available with `child_process.spawnSync()`.\n// Also, we cannot use the real PID if we want to print it before `child_process.spawn()` is run.\n// As a pro, it is shorter than a normal PID and never re-uses the same id.\n// As a con, it cannot be used to send signals.\nlet VERBOSE_ID = 0n;\n\n// The `verbose` option can have different values for `stdout`/`stderr`\nexport const isVerbose = verbose => verbose.some(fdVerbose => fdVerbose !== 'none');\n\nconst validateVerbose = verbose => {\n\tfor (const verboseItem of verbose) {\n\t\tif (verboseItem === false) {\n\t\t\tthrow new TypeError('The \"verbose: false\" option was renamed to \"verbose: \\'none\\'\".');\n\t\t}\n\n\t\tif (verboseItem === true) {\n\t\t\tthrow new TypeError('The \"verbose: true\" option was renamed to \"verbose: \\'short\\'\".');\n\t\t}\n\n\t\tif (!VERBOSE_VALUES.has(verboseItem)) {\n\t\t\tconst allowedValues = [...VERBOSE_VALUES].map(allowedValue => `'${allowedValue}'`).join(', ');\n\t\t\tthrow new TypeError(`The \"verbose\" option must not be ${verboseItem}. Allowed values are: ${allowedValues}.`);\n\t\t}\n\t}\n};\n\nconst VERBOSE_VALUES = new Set(['none', 'short', 'full']);\n","import isUnicodeSupported from 'is-unicode-supported';\n\nconst common = {\n\tcircleQuestionMark: '(?)',\n\tquestionMarkPrefix: '(?)',\n\tsquare: '█',\n\tsquareDarkShade: '▓',\n\tsquareMediumShade: '▒',\n\tsquareLightShade: '░',\n\tsquareTop: '▀',\n\tsquareBottom: '▄',\n\tsquareLeft: '▌',\n\tsquareRight: '▐',\n\tsquareCenter: '■',\n\tbullet: '●',\n\tdot: '․',\n\tellipsis: '…',\n\tpointerSmall: '›',\n\ttriangleUp: '▲',\n\ttriangleUpSmall: '▴',\n\ttriangleDown: '▼',\n\ttriangleDownSmall: '▾',\n\ttriangleLeftSmall: '◂',\n\ttriangleRightSmall: '▸',\n\thome: '⌂',\n\theart: '♥',\n\tmusicNote: '♪',\n\tmusicNoteBeamed: '♫',\n\tarrowUp: '↑',\n\tarrowDown: '↓',\n\tarrowLeft: '←',\n\tarrowRight: '→',\n\tarrowLeftRight: '↔',\n\tarrowUpDown: '↕',\n\talmostEqual: '≈',\n\tnotEqual: '≠',\n\tlessOrEqual: '≤',\n\tgreaterOrEqual: '≥',\n\tidentical: '≡',\n\tinfinity: '∞',\n\tsubscriptZero: '₀',\n\tsubscriptOne: '₁',\n\tsubscriptTwo: '₂',\n\tsubscriptThree: '₃',\n\tsubscriptFour: '₄',\n\tsubscriptFive: '₅',\n\tsubscriptSix: '₆',\n\tsubscriptSeven: '₇',\n\tsubscriptEight: '₈',\n\tsubscriptNine: '₉',\n\toneHalf: '½',\n\toneThird: '⅓',\n\toneQuarter: '¼',\n\toneFifth: '⅕',\n\toneSixth: '⅙',\n\toneEighth: '⅛',\n\ttwoThirds: '⅔',\n\ttwoFifths: '⅖',\n\tthreeQuarters: '¾',\n\tthreeFifths: '⅗',\n\tthreeEighths: '⅜',\n\tfourFifths: '⅘',\n\tfiveSixths: '⅚',\n\tfiveEighths: '⅝',\n\tsevenEighths: '⅞',\n\tline: '─',\n\tlineBold: '━',\n\tlineDouble: '═',\n\tlineDashed0: '┄',\n\tlineDashed1: '┅',\n\tlineDashed2: '┈',\n\tlineDashed3: '┉',\n\tlineDashed4: '╌',\n\tlineDashed5: '╍',\n\tlineDashed6: '╴',\n\tlineDashed7: '╶',\n\tlineDashed8: '╸',\n\tlineDashed9: '╺',\n\tlineDashed10: '╼',\n\tlineDashed11: '╾',\n\tlineDashed12: '−',\n\tlineDashed13: '–',\n\tlineDashed14: '‐',\n\tlineDashed15: '⁃',\n\tlineVertical: '│',\n\tlineVerticalBold: '┃',\n\tlineVerticalDouble: '║',\n\tlineVerticalDashed0: '┆',\n\tlineVerticalDashed1: '┇',\n\tlineVerticalDashed2: '┊',\n\tlineVerticalDashed3: '┋',\n\tlineVerticalDashed4: '╎',\n\tlineVerticalDashed5: '╏',\n\tlineVerticalDashed6: '╵',\n\tlineVerticalDashed7: '╷',\n\tlineVerticalDashed8: '╹',\n\tlineVerticalDashed9: '╻',\n\tlineVerticalDashed10: '╽',\n\tlineVerticalDashed11: '╿',\n\tlineDownLeft: '┐',\n\tlineDownLeftArc: '╮',\n\tlineDownBoldLeftBold: '┓',\n\tlineDownBoldLeft: '┒',\n\tlineDownLeftBold: '┑',\n\tlineDownDoubleLeftDouble: '╗',\n\tlineDownDoubleLeft: '╖',\n\tlineDownLeftDouble: '╕',\n\tlineDownRight: '┌',\n\tlineDownRightArc: '╭',\n\tlineDownBoldRightBold: '┏',\n\tlineDownBoldRight: '┎',\n\tlineDownRightBold: '┍',\n\tlineDownDoubleRightDouble: '╔',\n\tlineDownDoubleRight: '╓',\n\tlineDownRightDouble: '╒',\n\tlineUpLeft: '┘',\n\tlineUpLeftArc: '╯',\n\tlineUpBoldLeftBold: '┛',\n\tlineUpBoldLeft: '┚',\n\tlineUpLeftBold: '┙',\n\tlineUpDoubleLeftDouble: '╝',\n\tlineUpDoubleLeft: '╜',\n\tlineUpLeftDouble: '╛',\n\tlineUpRight: '└',\n\tlineUpRightArc: '╰',\n\tlineUpBoldRightBold: '┗',\n\tlineUpBoldRight: '┖',\n\tlineUpRightBold: '┕',\n\tlineUpDoubleRightDouble: '╚',\n\tlineUpDoubleRight: '╙',\n\tlineUpRightDouble: '╘',\n\tlineUpDownLeft: '┤',\n\tlineUpBoldDownBoldLeftBold: '┫',\n\tlineUpBoldDownBoldLeft: '┨',\n\tlineUpDownLeftBold: '┥',\n\tlineUpBoldDownLeftBold: '┩',\n\tlineUpDownBoldLeftBold: '┪',\n\tlineUpDownBoldLeft: '┧',\n\tlineUpBoldDownLeft: '┦',\n\tlineUpDoubleDownDoubleLeftDouble: '╣',\n\tlineUpDoubleDownDoubleLeft: '╢',\n\tlineUpDownLeftDouble: '╡',\n\tlineUpDownRight: '├',\n\tlineUpBoldDownBoldRightBold: '┣',\n\tlineUpBoldDownBoldRight: '┠',\n\tlineUpDownRightBold: '┝',\n\tlineUpBoldDownRightBold: '┡',\n\tlineUpDownBoldRightBold: '┢',\n\tlineUpDownBoldRight: '┟',\n\tlineUpBoldDownRight: '┞',\n\tlineUpDoubleDownDoubleRightDouble: '╠',\n\tlineUpDoubleDownDoubleRight: '╟',\n\tlineUpDownRightDouble: '╞',\n\tlineDownLeftRight: '┬',\n\tlineDownBoldLeftBoldRightBold: '┳',\n\tlineDownLeftBoldRightBold: '┯',\n\tlineDownBoldLeftRight: '┰',\n\tlineDownBoldLeftBoldRight: '┱',\n\tlineDownBoldLeftRightBold: '┲',\n\tlineDownLeftRightBold: '┮',\n\tlineDownLeftBoldRight: '┭',\n\tlineDownDoubleLeftDoubleRightDouble: '╦',\n\tlineDownDoubleLeftRight: '╥',\n\tlineDownLeftDoubleRightDouble: '╤',\n\tlineUpLeftRight: '┴',\n\tlineUpBoldLeftBoldRightBold: '┻',\n\tlineUpLeftBoldRightBold: '┷',\n\tlineUpBoldLeftRight: '┸',\n\tlineUpBoldLeftBoldRight: '┹',\n\tlineUpBoldLeftRightBold: '┺',\n\tlineUpLeftRightBold: '┶',\n\tlineUpLeftBoldRight: '┵',\n\tlineUpDoubleLeftDoubleRightDouble: '╩',\n\tlineUpDoubleLeftRight: '╨',\n\tlineUpLeftDoubleRightDouble: '╧',\n\tlineUpDownLeftRight: '┼',\n\tlineUpBoldDownBoldLeftBoldRightBold: '╋',\n\tlineUpDownBoldLeftBoldRightBold: '╈',\n\tlineUpBoldDownLeftBoldRightBold: '╇',\n\tlineUpBoldDownBoldLeftRightBold: '╊',\n\tlineUpBoldDownBoldLeftBoldRight: '╉',\n\tlineUpBoldDownLeftRight: '╀',\n\tlineUpDownBoldLeftRight: '╁',\n\tlineUpDownLeftBoldRight: '┽',\n\tlineUpDownLeftRightBold: '┾',\n\tlineUpBoldDownBoldLeftRight: '╂',\n\tlineUpDownLeftBoldRightBold: '┿',\n\tlineUpBoldDownLeftBoldRight: '╃',\n\tlineUpBoldDownLeftRightBold: '╄',\n\tlineUpDownBoldLeftBoldRight: '╅',\n\tlineUpDownBoldLeftRightBold: '╆',\n\tlineUpDoubleDownDoubleLeftDoubleRightDouble: '╬',\n\tlineUpDoubleDownDoubleLeftRight: '╫',\n\tlineUpDownLeftDoubleRightDouble: '╪',\n\tlineCross: '╳',\n\tlineBackslash: '╲',\n\tlineSlash: '╱',\n};\n\nconst specialMainSymbols = {\n\ttick: '✔',\n\tinfo: 'ℹ',\n\twarning: '⚠',\n\tcross: '✘',\n\tsquareSmall: '◻',\n\tsquareSmallFilled: '◼',\n\tcircle: '◯',\n\tcircleFilled: '◉',\n\tcircleDotted: '◌',\n\tcircleDouble: '◎',\n\tcircleCircle: 'ⓞ',\n\tcircleCross: 'ⓧ',\n\tcirclePipe: 'Ⓘ',\n\tradioOn: '◉',\n\tradioOff: '◯',\n\tcheckboxOn: '☒',\n\tcheckboxOff: '☐',\n\tcheckboxCircleOn: 'ⓧ',\n\tcheckboxCircleOff: 'Ⓘ',\n\tpointer: '❯',\n\ttriangleUpOutline: '△',\n\ttriangleLeft: '◀',\n\ttriangleRight: '▶',\n\tlozenge: '◆',\n\tlozengeOutline: '◇',\n\thamburger: '☰',\n\tsmiley: '㋡',\n\tmustache: '෴',\n\tstar: '★',\n\tplay: '▶',\n\tnodejs: '⬢',\n\toneSeventh: '⅐',\n\toneNinth: '⅑',\n\toneTenth: '⅒',\n};\n\nconst specialFallbackSymbols = {\n\ttick: '√',\n\tinfo: 'i',\n\twarning: '‼',\n\tcross: '×',\n\tsquareSmall: '□',\n\tsquareSmallFilled: '■',\n\tcircle: '( )',\n\tcircleFilled: '(*)',\n\tcircleDotted: '( )',\n\tcircleDouble: '( )',\n\tcircleCircle: '(○)',\n\tcircleCross: '(×)',\n\tcirclePipe: '(│)',\n\tradioOn: '(*)',\n\tradioOff: '( )',\n\tcheckboxOn: '[×]',\n\tcheckboxOff: '[ ]',\n\tcheckboxCircleOn: '(×)',\n\tcheckboxCircleOff: '( )',\n\tpointer: '>',\n\ttriangleUpOutline: '∆',\n\ttriangleLeft: '◄',\n\ttriangleRight: '►',\n\tlozenge: '♦',\n\tlozengeOutline: '◊',\n\thamburger: '≡',\n\tsmiley: '☺',\n\tmustache: '┌─┐',\n\tstar: '✶',\n\tplay: '►',\n\tnodejs: '♦',\n\toneSeventh: '1/7',\n\toneNinth: '1/9',\n\toneTenth: '1/10',\n};\n\nexport const mainSymbols = {...common, ...specialMainSymbols};\nexport const fallbackSymbols = {...common, ...specialFallbackSymbols};\n\nconst shouldUseMain = isUnicodeSupported();\nconst figures = shouldUseMain ? mainSymbols : fallbackSymbols;\nexport default figures;\n\nconst replacements = Object.entries(specialMainSymbols);\n\n// On terminals which do not support Unicode symbols, substitute them to other symbols\nexport const replaceSymbols = (string, {useFallback = !shouldUseMain} = {}) => {\n\tif (useFallback) {\n\t\tfor (const [key, mainSymbol] of replacements) {\n\t\t\tstring = string.replaceAll(mainSymbol, fallbackSymbols[key]);\n\t\t}\n\t}\n\n\treturn string;\n};\n","import process from 'node:process';\n\nexport default function isUnicodeSupported() {\n\tif (process.platform !== 'win32') {\n\t\treturn process.env.TERM !== 'linux'; // Linux console (kernel)\n\t}\n\n\treturn Boolean(process.env.WT_SESSION) // Windows Terminal\n\t\t|| Boolean(process.env.TERMINUS_SUBLIME) // Terminus (<0.2.27)\n\t\t|| process.env.ConEmuTask === '{cmd::Cmder}' // ConEmu and cmder\n\t\t|| process.env.TERM_PROGRAM === 'Terminus-Sublime'\n\t\t|| process.env.TERM_PROGRAM === 'vscode'\n\t\t|| process.env.TERM === 'xterm-256color'\n\t\t|| process.env.TERM === 'alacritty'\n\t\t|| process.env.TERMINAL_EMULATOR === 'JetBrains-JediTerm';\n}\n","import {writeFileSync} from 'node:fs';\nimport figures from 'figures';\nimport {gray} from 'yoctocolors';\n\n// Write synchronously to ensure lines are properly ordered and not interleaved with `stdout`\nexport const verboseLog = (string, verboseId, icon, color) => {\n\tconst prefixedLines = addPrefix(string, verboseId, icon, color);\n\twriteFileSync(STDERR_FD, `${prefixedLines}\\n`);\n};\n\nconst STDERR_FD = 2;\n\nconst addPrefix = (string, verboseId, icon, color) => string.includes('\\n')\n\t? string\n\t\t.split('\\n')\n\t\t.map(line => addPrefixToLine(line, verboseId, icon, color))\n\t\t.join('\\n')\n\t: addPrefixToLine(string, verboseId, icon, color);\n\nconst addPrefixToLine = (line, verboseId, icon, color = identity) => [\n\tgray(`[${getTimestamp()}]`),\n\tgray(`[${verboseId}]`),\n\tcolor(ICONS[icon]),\n\tcolor(line),\n].join(' ');\n\nconst identity = string => string;\n\n// Prepending the timestamp allows debugging the slow paths of a subprocess\nconst getTimestamp = () => {\n\tconst date = new Date();\n\treturn `${padField(date.getHours(), 2)}:${padField(date.getMinutes(), 2)}:${padField(date.getSeconds(), 2)}.${padField(date.getMilliseconds(), 3)}`;\n};\n\nconst padField = (field, padding) => String(field).padStart(padding, '0');\n\nconst ICONS = {\n\tcommand: '$',\n\tpipedCommand: '|',\n\toutput: ' ',\n\terror: figures.cross,\n\twarning: figures.warning,\n\tsuccess: figures.tick,\n};\n","import {hrtime} from 'node:process';\n\n// Start counting time before spawning the subprocess\nexport const getStartTime = () => hrtime.bigint();\n\n// Compute duration after the subprocess ended.\n// Printed by the `verbose` option.\nexport const getDurationMs = startTime => Number(hrtime.bigint() - startTime) / 1e6;\n","import {platform} from 'node:process';\nimport {stripVTControlCharacters} from 'node:util';\n\n// Compute `result.command` and `result.escapedCommand`\nexport const joinCommand = (filePath, rawArguments) => {\n\tconst fileAndArguments = [filePath, ...rawArguments];\n\tconst command = fileAndArguments.join(' ');\n\tconst escapedCommand = fileAndArguments\n\t\t.map(fileAndArgument => quoteString(escapeControlCharacters(fileAndArgument)))\n\t\t.join(' ');\n\treturn {command, escapedCommand};\n};\n\n// Remove ANSI sequences and escape control characters and newlines\nexport const escapeLines = lines => stripVTControlCharacters(lines)\n\t.split('\\n')\n\t.map(line => escapeControlCharacters(line))\n\t.join('\\n');\n\nconst escapeControlCharacters = line => line.replaceAll(SPECIAL_CHAR_REGEXP, character => escapeControlCharacter(character));\n\nconst escapeControlCharacter = character => {\n\tconst commonEscape = COMMON_ESCAPES[character];\n\tif (commonEscape !== undefined) {\n\t\treturn commonEscape;\n\t}\n\n\tconst codepoint = character.codePointAt(0);\n\tconst codepointHex = codepoint.toString(16);\n\treturn codepoint <= ASTRAL_START\n\t\t? `\\\\u${codepointHex.padStart(4, '0')}`\n\t\t: `\\\\U${codepointHex}`;\n};\n\n// Characters that would create issues when printed are escaped using the \\u or \\U notation.\n// Those include control characters and newlines.\n// The \\u and \\U notation is Bash specific, but there is no way to do this in a shell-agnostic way.\n// Some shells do not even have a way to print those characters in an escaped fashion.\n// Therefore, we prioritize printing those safely, instead of allowing those to be copy-pasted.\n// List of Unicode character categories: https://www.fileformat.info/info/unicode/category/index.htm\nconst SPECIAL_CHAR_REGEXP = /\\p{Separator}|\\p{Other}/gu;\n\n// Accepted by $'...' in Bash.\n// Exclude \\a \\e \\v which are accepted in Bash but not in JavaScript (except \\v) and JSON.\nconst COMMON_ESCAPES = {\n\t' ': ' ',\n\t'\\b': '\\\\b',\n\t'\\f': '\\\\f',\n\t'\\n': '\\\\n',\n\t'\\r': '\\\\r',\n\t'\\t': '\\\\t',\n};\n\n// Up until that codepoint, \\u notation can be used instead of \\U\nconst ASTRAL_START = 65_535;\n\n// Some characters are shell-specific, i.e. need to be escaped when the command is copy-pasted then run.\n// Escaping is shell-specific. We cannot know which shell is used: `process.platform` detection is not enough.\n// For example, Windows users could be using `cmd.exe`, Powershell or Bash for Windows which all use different escaping.\n// We use '...' on Unix, which is POSIX shell compliant and escape all characters but ' so this is fairly safe.\n// On Windows, we assume cmd.exe is used and escape with \"...\", which also works with Powershell.\nconst quoteString = escapedArgument => {\n\tif (NO_ESCAPE_REGEXP.test(escapedArgument)) {\n\t\treturn escapedArgument;\n\t}\n\n\treturn platform === 'win32'\n\t\t? `\"${escapedArgument.replaceAll('\"', '\"\"')}\"`\n\t\t: `'${escapedArgument.replaceAll('\\'', '\\'\\\\\\'\\'')}'`;\n};\n\nconst NO_ESCAPE_REGEXP = /^[\\w./-]+$/;\n","import process from 'node:process';\n\nexport const isStandardStream = stream => STANDARD_STREAMS.includes(stream);\nexport const STANDARD_STREAMS = [process.stdin, process.stdout, process.stderr];\nexport const STANDARD_STREAMS_ALIASES = ['stdin', 'stdout', 'stderr'];\nexport const getStreamName = fdNumber => STANDARD_STREAMS_ALIASES[fdNumber] ?? `stdio[${fdNumber}]`;\n","import isPlainObject from 'is-plain-obj';\nimport {STANDARD_STREAMS_ALIASES} from '../utils/standard-stream.js';\nimport {verboseDefault} from '../verbose/info.js';\n\n// Some options can have different values for `stdout`/`stderr`/`fd3`.\n// This normalizes those to array of values.\n// For example, `{verbose: {stdout: 'none', stderr: 'full'}}` becomes `{verbose: ['none', 'none', 'full']}`\nexport const normalizeFdSpecificOptions = options => {\n\tconst optionsCopy = {...options};\n\n\tfor (const optionName of FD_SPECIFIC_OPTIONS) {\n\t\toptionsCopy[optionName] = normalizeFdSpecificOption(options, optionName);\n\t}\n\n\treturn optionsCopy;\n};\n\nexport const normalizeFdSpecificOption = (options, optionName) => {\n\tconst optionBaseArray = Array.from({length: getStdioLength(options)});\n\tconst optionArray = normalizeFdSpecificValue(options[optionName], optionBaseArray, optionName);\n\treturn addDefaultValue(optionArray, optionName);\n};\n\nconst getStdioLength = ({stdio}) => Array.isArray(stdio)\n\t? Math.max(stdio.length, STANDARD_STREAMS_ALIASES.length)\n\t: STANDARD_STREAMS_ALIASES.length;\n\nconst normalizeFdSpecificValue = (optionValue, optionArray, optionName) => isPlainObject(optionValue)\n\t? normalizeOptionObject(optionValue, optionArray, optionName)\n\t: optionArray.fill(optionValue);\n\nconst normalizeOptionObject = (optionValue, optionArray, optionName) => {\n\tfor (const fdName of Object.keys(optionValue).sort(compareFdName)) {\n\t\tfor (const fdNumber of parseFdName(fdName, optionName, optionArray)) {\n\t\t\toptionArray[fdNumber] = optionValue[fdName];\n\t\t}\n\t}\n\n\treturn optionArray;\n};\n\n// Ensure priority order when setting both `stdout`/`stderr`, `fd1`/`fd2`, and `all`\nconst compareFdName = (fdNameA, fdNameB) => getFdNameOrder(fdNameA) < getFdNameOrder(fdNameB) ? 1 : -1;\n\nconst getFdNameOrder = fdName => {\n\tif (fdName === 'stdout' || fdName === 'stderr') {\n\t\treturn 0;\n\t}\n\n\treturn fdName === 'all' ? 2 : 1;\n};\n\nconst parseFdName = (fdName, optionName, optionArray) => {\n\tconst fdNumber = parseFd(fdName);\n\tif (fdNumber === undefined || fdNumber === 0) {\n\t\tthrow new TypeError(`\"${optionName}.${fdName}\" is invalid.\nIt must be \"${optionName}.stdout\", \"${optionName}.stderr\", \"${optionName}.all\", or \"${optionName}.fd3\", \"${optionName}.fd4\" (and so on).`);\n\t}\n\n\tif (fdNumber >= optionArray.length) {\n\t\tthrow new TypeError(`\"${optionName}.${fdName}\" is invalid: that file descriptor does not exist.\nPlease set the \"stdio\" option to ensure that file descriptor exists.`);\n\t}\n\n\treturn fdNumber === 'all' ? [1, 2] : [fdNumber];\n};\n\n// Use the same syntax for fd-specific options and the `from`/`to` options\nexport const parseFd = fdName => {\n\tif (fdName === 'all') {\n\t\treturn fdName;\n\t}\n\n\tif (STANDARD_STREAMS_ALIASES.includes(fdName)) {\n\t\treturn STANDARD_STREAMS_ALIASES.indexOf(fdName);\n\t}\n\n\tconst regexpResult = FD_REGEXP.exec(fdName);\n\tif (regexpResult !== null) {\n\t\treturn Number(regexpResult[1]);\n\t}\n};\n\nconst FD_REGEXP = /^fd(\\d+)$/;\n\nconst addDefaultValue = (optionArray, optionName) => optionArray.map(optionValue => optionValue === undefined\n\t? DEFAULT_OPTIONS[optionName]\n\t: optionValue);\n\nconst DEFAULT_OPTIONS = {\n\tlines: false,\n\tbuffer: true,\n\tmaxBuffer: 1000 * 1000 * 100,\n\tverbose: verboseDefault,\n\tstripFinalNewline: true,\n};\n\n// List of options which can have different values for `stdout`/`stderr`\nexport const FD_SPECIFIC_OPTIONS = ['lines', 'buffer', 'maxBuffer', 'verbose', 'stripFinalNewline'];\n","import {logCommand} from '../verbose/start.js';\nimport {getVerboseInfo} from '../verbose/info.js';\nimport {getStartTime} from '../return/duration.js';\nimport {joinCommand} from './escape.js';\nimport {normalizeFdSpecificOption} from './specific.js';\n\n// Compute `result.command`, `result.escapedCommand` and `verbose`-related information\nexport const handleCommand = (filePath, rawArguments, rawOptions) => {\n\tconst startTime = getStartTime();\n\tconst {command, escapedCommand} = joinCommand(filePath, rawArguments);\n\tconst verboseInfo = getVerboseInfo(normalizeFdSpecificOption(rawOptions, 'verbose'));\n\tlogCommand(escapedCommand, verboseInfo, rawOptions);\n\treturn {\n\t\tcommand,\n\t\tescapedCommand,\n\t\tstartTime,\n\t\tverboseInfo,\n\t};\n};\n","import {bold} from 'yoctocolors';\nimport {isVerbose} from './info.js';\nimport {verboseLog} from './log.js';\n\n// When `verbose` is `short|full`, print each command\nexport const logCommand = (escapedCommand, {verbose, verboseId}, {piped = false}) => {\n\tif (!isVerbose(verbose)) {\n\t\treturn;\n\t}\n\n\tconst icon = piped ? 'pipedCommand' : 'command';\n\tverboseLog(escapedCommand, verboseId, icon, bold);\n};\n","export default function pathKey(options = {}) {\n\tconst {\n\t\tenv = process.env,\n\t\tplatform = process.platform\n\t} = options;\n\n\tif (platform !== 'win32') {\n\t\treturn 'PATH';\n\t}\n\n\treturn Object.keys(env).reverse().find(key => key.toUpperCase() === 'PATH') || 'Path';\n}\n","import process from 'node:process';\nimport path from 'node:path';\nimport {fileURLToPath} from 'node:url';\nimport pathKey from 'path-key';\n\nexport const npmRunPath = ({\n\tcwd = process.cwd(),\n\tpath: pathOption = process.env[pathKey()],\n\tpreferLocal = true,\n\texecPath = process.execPath,\n\taddExecPath = true,\n} = {}) => {\n\tconst cwdString = cwd instanceof URL ? fileURLToPath(cwd) : cwd;\n\tconst cwdPath = path.resolve(cwdString);\n\tconst result = [];\n\n\tif (preferLocal) {\n\t\tapplyPreferLocal(result, cwdPath);\n\t}\n\n\tif (addExecPath) {\n\t\tapplyExecPath(result, execPath, cwdPath);\n\t}\n\n\treturn [...result, pathOption].join(path.delimiter);\n};\n\nconst applyPreferLocal = (result, cwdPath) => {\n\tlet previous;\n\n\twhile (previous !== cwdPath) {\n\t\tresult.push(path.join(cwdPath, 'node_modules/.bin'));\n\t\tprevious = cwdPath;\n\t\tcwdPath = path.resolve(cwdPath, '..');\n\t}\n};\n\n// Ensure the running `node` binary is used\nconst applyExecPath = (result, execPath, cwdPath) => {\n\tconst execPathString = execPath instanceof URL ? fileURLToPath(execPath) : execPath;\n\tresult.push(path.resolve(cwdPath, execPathString, '..'));\n};\n\nexport const npmRunPathEnv = ({env = process.env, ...options} = {}) => {\n\tenv = {...env};\n\n\tconst pathName = pathKey({env});\n\toptions.path = env[pathName];\n\tenv[pathName] = npmRunPath(options);\n\n\treturn env;\n};\n","// When the subprocess fails, this is the error instance being returned.\n// If another error instance is being thrown, it is kept as `error.cause`.\nexport const getFinalError = (originalError, message, isSync) => {\n\tconst ErrorClass = isSync ? ExecaSyncError : ExecaError;\n\tconst options = originalError instanceof DiscardedError ? {} : {cause: originalError};\n\treturn new ErrorClass(message, options);\n};\n\n// Indicates that the error is used only to interrupt control flow, but not in the return value\nexport class DiscardedError extends Error {}\n\n// Proper way to set `error.name`: it should be inherited and non-enumerable\nconst setErrorName = (ErrorClass, value) => {\n\tObject.defineProperty(ErrorClass.prototype, 'name', {\n\t\tvalue,\n\t\twritable: true,\n\t\tenumerable: false,\n\t\tconfigurable: true,\n\t});\n\tObject.defineProperty(ErrorClass.prototype, execaErrorSymbol, {\n\t\tvalue: true,\n\t\twritable: false,\n\t\tenumerable: false,\n\t\tconfigurable: false,\n\t});\n};\n\n// Unlike `instanceof`, this works across realms\nexport const isExecaError = error => isErrorInstance(error) && execaErrorSymbol in error;\n\nconst execaErrorSymbol = Symbol('isExecaError');\n\nexport const isErrorInstance = value => Object.prototype.toString.call(value) === '[object Error]';\n\n// We use two different Error classes for async/sync methods since they have slightly different shape and types\nexport class ExecaError extends Error {}\nsetErrorName(ExecaError, ExecaError.name);\n\nexport class ExecaSyncError extends Error {}\nsetErrorName(ExecaSyncError, ExecaSyncError.name);\n","import {constants} from 'node:os';\n\n// Normalize signals for comparison purpose.\n// Also validate the signal exists.\nexport const normalizeKillSignal = killSignal => {\n\tconst optionName = 'option `killSignal`';\n\tif (killSignal === 0) {\n\t\tthrow new TypeError(`Invalid ${optionName}: 0 cannot be used.`);\n\t}\n\n\treturn normalizeSignal(killSignal, optionName);\n};\n\nexport const normalizeSignalArgument = signal => signal === 0\n\t? signal\n\t: normalizeSignal(signal, '`subprocess.kill()`\\'s argument');\n\nconst normalizeSignal = (signalNameOrInteger, optionName) => {\n\tif (Number.isInteger(signalNameOrInteger)) {\n\t\treturn normalizeSignalInteger(signalNameOrInteger, optionName);\n\t}\n\n\tif (typeof signalNameOrInteger === 'string') {\n\t\treturn normalizeSignalName(signalNameOrInteger, optionName);\n\t}\n\n\tthrow new TypeError(`Invalid ${optionName} ${String(signalNameOrInteger)}: it must be a string or an integer.\\n${getAvailableSignals()}`);\n};\n\nconst normalizeSignalInteger = (signalInteger, optionName) => {\n\tif (signalsIntegerToName.has(signalInteger)) {\n\t\treturn signalsIntegerToName.get(signalInteger);\n\t}\n\n\tthrow new TypeError(`Invalid ${optionName} ${signalInteger}: this signal integer does not exist.\\n${getAvailableSignals()}`);\n};\n\nconst getSignalsIntegerToName = () => new Map(Object.entries(constants.signals)\n\t.reverse()\n\t.map(([signalName, signalInteger]) => [signalInteger, signalName]));\n\nconst signalsIntegerToName = getSignalsIntegerToName();\n\nconst normalizeSignalName = (signalName, optionName) => {\n\tif (signalName in constants.signals) {\n\t\treturn signalName;\n\t}\n\n\tif (signalName.toUpperCase() in constants.signals) {\n\t\tthrow new TypeError(`Invalid ${optionName} '${signalName}': please rename it to '${signalName.toUpperCase()}'.`);\n\t}\n\n\tthrow new TypeError(`Invalid ${optionName} '${signalName}': this signal name does not exist.\\n${getAvailableSignals()}`);\n};\n\nconst getAvailableSignals = () => `Available signal names: ${getAvailableSignalNames()}.\nAvailable signal numbers: ${getAvailableSignalIntegers()}.`;\n\nconst getAvailableSignalNames = () => Object.keys(constants.signals)\n\t.sort()\n\t.map(signalName => `'${signalName}'`)\n\t.join(', ');\n\nconst getAvailableSignalIntegers = () => [...new Set(Object.values(constants.signals)\n\t.sort((signalInteger, signalIntegerTwo) => signalInteger - signalIntegerTwo))]\n\t.join(', ');\n","import {setTimeout} from 'node:timers/promises';\nimport {isErrorInstance} from '../return/final-error.js';\nimport {normalizeSignalArgument} from './signal.js';\n\n// Normalize the `forceKillAfterDelay` option\nexport const normalizeForceKillAfterDelay = forceKillAfterDelay => {\n\tif (forceKillAfterDelay === false) {\n\t\treturn forceKillAfterDelay;\n\t}\n\n\tif (forceKillAfterDelay === true) {\n\t\treturn DEFAULT_FORCE_KILL_TIMEOUT;\n\t}\n\n\tif (!Number.isFinite(forceKillAfterDelay) || forceKillAfterDelay < 0) {\n\t\tthrow new TypeError(`Expected the \\`forceKillAfterDelay\\` option to be a non-negative integer, got \\`${forceKillAfterDelay}\\` (${typeof forceKillAfterDelay})`);\n\t}\n\n\treturn forceKillAfterDelay;\n};\n\nconst DEFAULT_FORCE_KILL_TIMEOUT = 1000 * 5;\n\n// Monkey-patches `subprocess.kill()` to add `forceKillAfterDelay` behavior and `.kill(error)`\nexport const subprocessKill = (\n\t{kill, options: {forceKillAfterDelay, killSignal}, onInternalError, controller},\n\tsignalOrError,\n\terrorArgument,\n) => {\n\tconst {signal, error} = parseKillArguments(signalOrError, errorArgument, killSignal);\n\temitKillError(error, onInternalError);\n\tconst killResult = kill(signal);\n\tsetKillTimeout({\n\t\tkill,\n\t\tsignal,\n\t\tforceKillAfterDelay,\n\t\tkillSignal,\n\t\tkillResult,\n\t\tcontroller,\n\t});\n\treturn killResult;\n};\n\nconst parseKillArguments = (signalOrError, errorArgument, killSignal) => {\n\tconst [signal = killSignal, error] = isErrorInstance(signalOrError)\n\t\t? [undefined, signalOrError]\n\t\t: [signalOrError, errorArgument];\n\n\tif (typeof signal !== 'string' && !Number.isInteger(signal)) {\n\t\tthrow new TypeError(`The first argument must be an error instance or a signal name string/integer: ${String(signal)}`);\n\t}\n\n\tif (error !== undefined && !isErrorInstance(error)) {\n\t\tthrow new TypeError(`The second argument is optional. If specified, it must be an error instance: ${error}`);\n\t}\n\n\treturn {signal: normalizeSignalArgument(signal), error};\n};\n\n// Fails right away when calling `subprocess.kill(error)`.\n// Does not wait for actual signal termination.\n// Uses a deferred promise instead of the `error` event on the subprocess, as this is less intrusive.\nconst emitKillError = (error, onInternalError) => {\n\tif (error !== undefined) {\n\t\tonInternalError.reject(error);\n\t}\n};\n\nconst setKillTimeout = async ({kill, signal, forceKillAfterDelay, killSignal, killResult, controller}) => {\n\tif (!shouldForceKill(signal, forceKillAfterDelay, killSignal, killResult)) {\n\t\treturn;\n\t}\n\n\ttry {\n\t\tawait setTimeout(forceKillAfterDelay, undefined, {signal: controller.signal});\n\t\tkill('SIGKILL');\n\t} catch {}\n};\n\nconst shouldForceKill = (signal, forceKillAfterDelay, killSignal, killResult) => signal === killSignal\n\t&& forceKillAfterDelay !== false\n\t&& killResult;\n","import {setTimeout} from 'node:timers/promises';\nimport {DiscardedError} from '../return/final-error.js';\n\n// Validate `timeout` option\nexport const validateTimeout = ({timeout}) => {\n\tif (timeout !== undefined && (!Number.isFinite(timeout) || timeout < 0)) {\n\t\tthrow new TypeError(`Expected the \\`timeout\\` option to be a non-negative integer, got \\`${timeout}\\` (${typeof timeout})`);\n\t}\n};\n\n// Fails when the `timeout` option is exceeded\nexport const throwOnTimeout = (subprocess, timeout, context, controller) => timeout === 0 || timeout === undefined\n\t? []\n\t: [killAfterTimeout(subprocess, timeout, context, controller)];\n\nconst killAfterTimeout = async (subprocess, timeout, context, {signal}) => {\n\tawait setTimeout(timeout, undefined, {signal});\n\tcontext.timedOut = true;\n\tsubprocess.kill();\n\tthrow new DiscardedError();\n};\n","// Validate `encoding` option\nexport const validateEncoding = ({encoding}) => {\n\tif (ENCODINGS.has(encoding)) {\n\t\treturn;\n\t}\n\n\tconst correctEncoding = getCorrectEncoding(encoding);\n\tif (correctEncoding !== undefined) {\n\t\tthrow new TypeError(`Invalid option \\`encoding: ${serializeEncoding(encoding)}\\`.\nPlease rename it to ${serializeEncoding(correctEncoding)}.`);\n\t}\n\n\tconst correctEncodings = [...ENCODINGS].map(correctEncoding => serializeEncoding(correctEncoding)).join(', ');\n\tthrow new TypeError(`Invalid option \\`encoding: ${serializeEncoding(encoding)}\\`.\nPlease rename it to one of: ${correctEncodings}.`);\n};\n\nconst TEXT_ENCODINGS = new Set(['utf8', 'utf16le']);\nexport const BINARY_ENCODINGS = new Set(['buffer', 'hex', 'base64', 'base64url', 'latin1', 'ascii']);\nconst ENCODINGS = new Set([...TEXT_ENCODINGS, ...BINARY_ENCODINGS]);\n\nconst getCorrectEncoding = encoding => {\n\tif (encoding === null) {\n\t\treturn 'buffer';\n\t}\n\n\tif (typeof encoding !== 'string') {\n\t\treturn;\n\t}\n\n\tconst lowerEncoding = encoding.toLowerCase();\n\tif (lowerEncoding in ENCODING_ALIASES) {\n\t\treturn ENCODING_ALIASES[lowerEncoding];\n\t}\n\n\tif (ENCODINGS.has(lowerEncoding)) {\n\t\treturn lowerEncoding;\n\t}\n};\n\nconst ENCODING_ALIASES = {\n\t// eslint-disable-next-line unicorn/text-encoding-identifier-case\n\t'utf-8': 'utf8',\n\t'utf-16le': 'utf16le',\n\t'ucs-2': 'utf16le',\n\tucs2: 'utf16le',\n\tbinary: 'latin1',\n};\n\nconst serializeEncoding = encoding => typeof encoding === 'string' ? `\"${encoding}\"` : String(encoding);\n","import {statSync} from 'node:fs';\nimport {resolve} from 'node:path';\nimport process from 'node:process';\nimport {safeNormalizeFileUrl} from './file-url.js';\n\n// Normalize `cwd` option\nexport const normalizeCwd = (cwd = getDefaultCwd()) => {\n\tconst cwdString = safeNormalizeFileUrl(cwd, 'The \"cwd\" option');\n\treturn resolve(cwdString);\n};\n\nconst getDefaultCwd = () => {\n\ttry {\n\t\treturn process.cwd();\n\t} catch (error) {\n\t\terror.message = `The current directory does not exist.\\n${error.message}`;\n\t\tthrow error;\n\t}\n};\n\n// When `cwd` option has an invalid value, provide with a better error message\nexport const fixCwdError = (originalMessage, cwd) => {\n\tif (cwd === getDefaultCwd()) {\n\t\treturn originalMessage;\n\t}\n\n\tlet cwdStat;\n\ttry {\n\t\tcwdStat = statSync(cwd);\n\t} catch (error) {\n\t\treturn `The \"cwd\" option is invalid: ${cwd}.\\n${error.message}\\n${originalMessage}`;\n\t}\n\n\tif (!cwdStat.isDirectory()) {\n\t\treturn `The \"cwd\" option is not a directory: ${cwd}.\\n${originalMessage}`;\n\t}\n\n\treturn originalMessage;\n};\n","import {basename} from 'node:path';\nimport process from 'node:process';\nimport crossSpawn from 'cross-spawn';\nimport {npmRunPathEnv} from 'npm-run-path';\nimport {normalizeForceKillAfterDelay} from '../terminate/kill.js';\nimport {normalizeKillSignal} from '../terminate/signal.js';\nimport {validateTimeout} from '../terminate/timeout.js';\nimport {handleNodeOption} from '../methods/node.js';\nimport {validateEncoding, BINARY_ENCODINGS} from './encoding-option.js';\nimport {normalizeCwd} from './cwd.js';\nimport {normalizeFileUrl} from './file-url.js';\nimport {normalizeFdSpecificOptions} from './specific.js';\n\n// Normalize the options object, and sometimes also the file paths and arguments.\n// Applies default values, validate allowed options, normalize them.\nexport const normalizeOptions = (filePath, rawArguments, rawOptions) => {\n\trawOptions.cwd = normalizeCwd(rawOptions.cwd);\n\tconst [processedFile, processedArguments, processedOptions] = handleNodeOption(filePath, rawArguments, rawOptions);\n\n\tconst {command: file, args: commandArguments, options: initialOptions} = crossSpawn._parse(processedFile, processedArguments, processedOptions);\n\n\tconst fdOptions = normalizeFdSpecificOptions(initialOptions);\n\tconst options = addDefaultOptions(fdOptions);\n\tvalidateTimeout(options);\n\tvalidateEncoding(options);\n\toptions.shell = normalizeFileUrl(options.shell);\n\toptions.env = getEnv(options);\n\toptions.killSignal = normalizeKillSignal(options.killSignal);\n\toptions.forceKillAfterDelay = normalizeForceKillAfterDelay(options.forceKillAfterDelay);\n\toptions.lines = options.lines.map((lines, fdNumber) => lines && !BINARY_ENCODINGS.has(options.encoding) && options.buffer[fdNumber]);\n\n\tif (process.platform === 'win32' && basename(file, '.exe') === 'cmd') {\n\t\t// #116\n\t\tcommandArguments.unshift('/q');\n\t}\n\n\treturn {file, commandArguments, options};\n};\n\nconst addDefaultOptions = ({\n\textendEnv = true,\n\tpreferLocal = false,\n\tcwd,\n\tlocalDir: localDirectory = cwd,\n\tencoding = 'utf8',\n\treject = true,\n\tcleanup = true,\n\tall = false,\n\twindowsHide = true,\n\tkillSignal = 'SIGTERM',\n\tforceKillAfterDelay = true,\n\tipc = false,\n\tserialization = 'advanced',\n\t...options\n}) => ({\n\t...options,\n\textendEnv,\n\tpreferLocal,\n\tcwd,\n\tlocalDirectory,\n\tencoding,\n\treject,\n\tcleanup,\n\tall,\n\twindowsHide,\n\tkillSignal,\n\tforceKillAfterDelay,\n\tipc,\n\tserialization,\n});\n\nconst getEnv = ({env: envOption, extendEnv, preferLocal, node, localDirectory, nodePath}) => {\n\tconst env = extendEnv ? {...process.env, ...envOption} : envOption;\n\n\tif (preferLocal || node) {\n\t\treturn npmRunPathEnv({\n\t\t\tenv,\n\t\t\tcwd: localDirectory,\n\t\t\texecPath: nodePath,\n\t\t\tpreferLocal,\n\t\t\taddExecPath: node,\n\t\t});\n\t}\n\n\treturn env;\n};\n","import {execPath, execArgv} from 'node:process';\nimport {basename, resolve} from 'node:path';\nimport {safeNormalizeFileUrl} from '../arguments/file-url.js';\n\n// `execaNode()` is a shortcut for `execa(..., {node: true})`\nexport const mapNode = ({options}) => {\n\tif (options.node === false) {\n\t\tthrow new TypeError('The \"node\" option cannot be false with `execaNode()`.');\n\t}\n\n\treturn {options: {...options, node: true}};\n};\n\n// Applies the `node: true` option, and the related `nodePath`/`nodeOptions` options.\n// Modifies the file commands/arguments to ensure the same Node binary and flags are re-used.\n// Also adds `ipc: true` and `shell: false`.\nexport const handleNodeOption = (file, commandArguments, {\n\tnode: shouldHandleNode = false,\n\tnodePath = execPath,\n\tnodeOptions = execArgv.filter(nodeOption => !nodeOption.startsWith('--inspect')),\n\tcwd,\n\texecPath: formerNodePath,\n\t...options\n}) => {\n\tif (formerNodePath !== undefined) {\n\t\tthrow new TypeError('The \"execPath\" option has been removed. Please use the \"nodePath\" option instead.');\n\t}\n\n\tconst normalizedNodePath = safeNormalizeFileUrl(nodePath, 'The \"nodePath\" option');\n\tconst resolvedNodePath = resolve(cwd, normalizedNodePath);\n\tconst newOptions = {\n\t\t...options,\n\t\tnodePath: resolvedNodePath,\n\t\tnode: shouldHandleNode,\n\t\tcwd,\n\t};\n\n\tif (!shouldHandleNode) {\n\t\treturn [file, commandArguments, newOptions];\n\t}\n\n\tif (basename(file, '.exe') === 'node') {\n\t\tthrow new TypeError('When the \"node\" option is true, the first argument does not need to be \"node\".');\n\t}\n\n\treturn [\n\t\tresolvedNodePath,\n\t\t[...nodeOptions, file, ...commandArguments],\n\t\t{ipc: true, ...newOptions, shell: false},\n\t];\n};\n","\nexport const getRealtimeSignals=()=>{\nconst length=SIGRTMAX-SIGRTMIN+1;\nreturn Array.from({length},getRealtimeSignal)\n};\n\nconst getRealtimeSignal=(value,index)=>({\nname:`SIGRT${index+1}`,\nnumber:SIGRTMIN+index,\naction:\"terminate\",\ndescription:\"Application-specific signal (realtime)\",\nstandard:\"posix\"\n});\n\nconst SIGRTMIN=34;\nexport const SIGRTMAX=64;","\n\nexport const SIGNALS=[\n{\nname:\"SIGHUP\",\nnumber:1,\naction:\"terminate\",\ndescription:\"Terminal closed\",\nstandard:\"posix\"\n},\n{\nname:\"SIGINT\",\nnumber:2,\naction:\"terminate\",\ndescription:\"User interruption with CTRL-C\",\nstandard:\"ansi\"\n},\n{\nname:\"SIGQUIT\",\nnumber:3,\naction:\"core\",\ndescription:\"User interruption with CTRL-\\\\\",\nstandard:\"posix\"\n},\n{\nname:\"SIGILL\",\nnumber:4,\naction:\"core\",\ndescription:\"Invalid machine instruction\",\nstandard:\"ansi\"\n},\n{\nname:\"SIGTRAP\",\nnumber:5,\naction:\"core\",\ndescription:\"Debugger breakpoint\",\nstandard:\"posix\"\n},\n{\nname:\"SIGABRT\",\nnumber:6,\naction:\"core\",\ndescription:\"Aborted\",\nstandard:\"ansi\"\n},\n{\nname:\"SIGIOT\",\nnumber:6,\naction:\"core\",\ndescription:\"Aborted\",\nstandard:\"bsd\"\n},\n{\nname:\"SIGBUS\",\nnumber:7,\naction:\"core\",\ndescription:\n\"Bus error due to misaligned, non-existing address or paging error\",\nstandard:\"bsd\"\n},\n{\nname:\"SIGEMT\",\nnumber:7,\naction:\"terminate\",\ndescription:\"Command should be emulated but is not implemented\",\nstandard:\"other\"\n},\n{\nname:\"SIGFPE\",\nnumber:8,\naction:\"core\",\ndescription:\"Floating point arithmetic error\",\nstandard:\"ansi\"\n},\n{\nname:\"SIGKILL\",\nnumber:9,\naction:\"terminate\",\ndescription:\"Forced termination\",\nstandard:\"posix\",\nforced:true\n},\n{\nname:\"SIGUSR1\",\nnumber:10,\naction:\"terminate\",\ndescription:\"Application-specific signal\",\nstandard:\"posix\"\n},\n{\nname:\"SIGSEGV\",\nnumber:11,\naction:\"core\",\ndescription:\"Segmentation fault\",\nstandard:\"ansi\"\n},\n{\nname:\"SIGUSR2\",\nnumber:12,\naction:\"terminate\",\ndescription:\"Application-specific signal\",\nstandard:\"posix\"\n},\n{\nname:\"SIGPIPE\",\nnumber:13,\naction:\"terminate\",\ndescription:\"Broken pipe or socket\",\nstandard:\"posix\"\n},\n{\nname:\"SIGALRM\",\nnumber:14,\naction:\"terminate\",\ndescription:\"Timeout or timer\",\nstandard:\"posix\"\n},\n{\nname:\"SIGTERM\",\nnumber:15,\naction:\"terminate\",\ndescription:\"Termination\",\nstandard:\"ansi\"\n},\n{\nname:\"SIGSTKFLT\",\nnumber:16,\naction:\"terminate\",\ndescription:\"Stack is empty or overflowed\",\nstandard:\"other\"\n},\n{\nname:\"SIGCHLD\",\nnumber:17,\naction:\"ignore\",\ndescription:\"Child process terminated, paused or unpaused\",\nstandard:\"posix\"\n},\n{\nname:\"SIGCLD\",\nnumber:17,\naction:\"ignore\",\ndescription:\"Child process terminated, paused or unpaused\",\nstandard:\"other\"\n},\n{\nname:\"SIGCONT\",\nnumber:18,\naction:\"unpause\",\ndescription:\"Unpaused\",\nstandard:\"posix\",\nforced:true\n},\n{\nname:\"SIGSTOP\",\nnumber:19,\naction:\"pause\",\ndescription:\"Paused\",\nstandard:\"posix\",\nforced:true\n},\n{\nname:\"SIGTSTP\",\nnumber:20,\naction:\"pause\",\ndescription:\"Paused using CTRL-Z or \\\"suspend\\\"\",\nstandard:\"posix\"\n},\n{\nname:\"SIGTTIN\",\nnumber:21,\naction:\"pause\",\ndescription:\"Background process cannot read terminal input\",\nstandard:\"posix\"\n},\n{\nname:\"SIGBREAK\",\nnumber:21,\naction:\"terminate\",\ndescription:\"User interruption with CTRL-BREAK\",\nstandard:\"other\"\n},\n{\nname:\"SIGTTOU\",\nnumber:22,\naction:\"pause\",\ndescription:\"Background process cannot write to terminal output\",\nstandard:\"posix\"\n},\n{\nname:\"SIGURG\",\nnumber:23,\naction:\"ignore\",\ndescription:\"Socket received out-of-band data\",\nstandard:\"bsd\"\n},\n{\nname:\"SIGXCPU\",\nnumber:24,\naction:\"core\",\ndescription:\"Process timed out\",\nstandard:\"bsd\"\n},\n{\nname:\"SIGXFSZ\",\nnumber:25,\naction:\"core\",\ndescription:\"File too big\",\nstandard:\"bsd\"\n},\n{\nname:\"SIGVTALRM\",\nnumber:26,\naction:\"terminate\",\ndescription:\"Timeout or timer\",\nstandard:\"bsd\"\n},\n{\nname:\"SIGPROF\",\nnumber:27,\naction:\"terminate\",\ndescription:\"Timeout or timer\",\nstandard:\"bsd\"\n},\n{\nname:\"SIGWINCH\",\nnumber:28,\naction:\"ignore\",\ndescription:\"Terminal window size changed\",\nstandard:\"bsd\"\n},\n{\nname:\"SIGIO\",\nnumber:29,\naction:\"terminate\",\ndescription:\"I/O is available\",\nstandard:\"other\"\n},\n{\nname:\"SIGPOLL\",\nnumber:29,\naction:\"terminate\",\ndescription:\"Watched event\",\nstandard:\"other\"\n},\n{\nname:\"SIGINFO\",\nnumber:29,\naction:\"ignore\",\ndescription:\"Request for process information\",\nstandard:\"other\"\n},\n{\nname:\"SIGPWR\",\nnumber:30,\naction:\"terminate\",\ndescription:\"Device running out of power\",\nstandard:\"systemv\"\n},\n{\nname:\"SIGSYS\",\nnumber:31,\naction:\"core\",\ndescription:\"Invalid system call\",\nstandard:\"other\"\n},\n{\nname:\"SIGUNUSED\",\nnumber:31,\naction:\"terminate\",\ndescription:\"Invalid system call\",\nstandard:\"other\"\n}];","import{constants}from\"node:os\";\n\nimport{SIGNALS}from\"./core.js\";\nimport{getRealtimeSignals}from\"./realtime.js\";\n\n\n\nexport const getSignals=()=>{\nconst realtimeSignals=getRealtimeSignals();\nconst signals=[...SIGNALS,...realtimeSignals].map(normalizeSignal);\nreturn signals\n};\n\n\n\n\n\n\n\nconst normalizeSignal=({\nname,\nnumber:defaultNumber,\ndescription,\naction,\nforced=false,\nstandard\n})=>{\nconst{\nsignals:{[name]:constantSignal}\n}=constants;\nconst supported=constantSignal!==undefined;\nconst number=supported?constantSignal:defaultNumber;\nreturn{name,number,description,supported,action,forced,standard}\n};","import{constants}from\"node:os\";\n\nimport{SIGRTMAX}from\"./realtime.js\";\nimport{getSignals}from\"./signals.js\";\n\n\n\nconst getSignalsByName=()=>{\nconst signals=getSignals();\nreturn Object.fromEntries(signals.map(getSignalByName))\n};\n\nconst getSignalByName=({\nname,\nnumber,\ndescription,\nsupported,\naction,\nforced,\nstandard\n})=>[name,{name,number,description,supported,action,forced,standard}];\n\nexport const signalsByName=getSignalsByName();\n\n\n\n\nconst getSignalsByNumber=()=>{\nconst signals=getSignals();\nconst length=SIGRTMAX+1;\nconst signalsA=Array.from({length},(value,number)=>\ngetSignalByNumber(number,signals)\n);\nreturn Object.assign({},...signalsA)\n};\n\nconst getSignalByNumber=(number,signals)=>{\nconst signal=findSignalByNumber(number,signals);\n\nif(signal===undefined){\nreturn{}\n}\n\nconst{name,description,supported,action,forced,standard}=signal;\nreturn{\n[number]:{\nname,\nnumber,\ndescription,\nsupported,\naction,\nforced,\nstandard\n}\n}\n};\n\n\n\nconst findSignalByNumber=(number,signals)=>{\nconst signal=signals.find(({name})=>constants.signals[name]===number);\n\nif(signal!==undefined){\nreturn signal\n}\n\nreturn signals.find((signalA)=>signalA.number===number)\n};\n\nexport const signalsByNumber=getSignalsByNumber();","export default function stripFinalNewline(input) {\n\tif (typeof input === 'string') {\n\t\treturn stripFinalNewlineString(input);\n\t}\n\n\tif (!(ArrayBuffer.isView(input) && input.BYTES_PER_ELEMENT === 1)) {\n\t\tthrow new Error('Input must be a string or a Uint8Array');\n\t}\n\n\treturn stripFinalNewlineBinary(input);\n}\n\nconst stripFinalNewlineString = input =>\n\tinput.at(-1) === LF\n\t\t? input.slice(0, input.at(-2) === CR ? -2 : -1)\n\t\t: input;\n\nconst stripFinalNewlineBinary = input =>\n\tinput.at(-1) === LF_BINARY\n\t\t? input.subarray(0, input.at(-2) === CR_BINARY ? -2 : -1)\n\t\t: input;\n\nconst LF = '\\n';\nconst LF_BINARY = LF.codePointAt(0);\nconst CR = '\\r';\nconst CR_BINARY = CR.codePointAt(0);\n","export function isStream(stream, {checkOpen = true} = {}) {\n\treturn stream !== null\n\t\t&& typeof stream === 'object'\n\t\t&& (stream.writable || stream.readable || !checkOpen || (stream.writable === undefined && stream.readable === undefined))\n\t\t&& typeof stream.pipe === 'function';\n}\n\nexport function isWritableStream(stream, {checkOpen = true} = {}) {\n\treturn isStream(stream, {checkOpen})\n\t\t&& (stream.writable || !checkOpen)\n\t\t&& typeof stream.write === 'function'\n\t\t&& typeof stream.end === 'function'\n\t\t&& typeof stream.writable === 'boolean'\n\t\t&& typeof stream.writableObjectMode === 'boolean'\n\t\t&& typeof stream.destroy === 'function'\n\t\t&& typeof stream.destroyed === 'boolean';\n}\n\nexport function isReadableStream(stream, {checkOpen = true} = {}) {\n\treturn isStream(stream, {checkOpen})\n\t\t&& (stream.readable || !checkOpen)\n\t\t&& typeof stream.read === 'function'\n\t\t&& typeof stream.readable === 'boolean'\n\t\t&& typeof stream.readableObjectMode === 'boolean'\n\t\t&& typeof stream.destroy === 'function'\n\t\t&& typeof stream.destroyed === 'boolean';\n}\n\nexport function isDuplexStream(stream, options) {\n\treturn isWritableStream(stream, options)\n\t\t&& isReadableStream(stream, options);\n}\n\nexport function isTransformStream(stream, options) {\n\treturn isDuplexStream(stream, options)\n\t\t&& typeof stream._transform === 'function';\n}\n","const a = Object.getPrototypeOf(\n Object.getPrototypeOf(\n /* istanbul ignore next */\n async function* () {\n }\n ).prototype\n);\nclass c {\n #t;\n #n;\n #r = !1;\n #e = void 0;\n constructor(e, t) {\n this.#t = e, this.#n = t;\n }\n next() {\n const e = () => this.#s();\n return this.#e = this.#e ? this.#e.then(e, e) : e(), this.#e;\n }\n return(e) {\n const t = () => this.#i(e);\n return this.#e ? this.#e.then(t, t) : t();\n }\n async #s() {\n if (this.#r)\n return {\n done: !0,\n value: void 0\n };\n let e;\n try {\n e = await this.#t.read();\n } catch (t) {\n throw this.#e = void 0, this.#r = !0, this.#t.releaseLock(), t;\n }\n return e.done && (this.#e = void 0, this.#r = !0, this.#t.releaseLock()), e;\n }\n async #i(e) {\n if (this.#r)\n return {\n done: !0,\n value: e\n };\n if (this.#r = !0, !this.#n) {\n const t = this.#t.cancel(e);\n return this.#t.releaseLock(), await t, {\n done: !0,\n value: e\n };\n }\n return this.#t.releaseLock(), {\n done: !0,\n value: e\n };\n }\n}\nconst n = Symbol();\nfunction i() {\n return this[n].next();\n}\nObject.defineProperty(i, \"name\", { value: \"next\" });\nfunction o(r) {\n return this[n].return(r);\n}\nObject.defineProperty(o, \"name\", { value: \"return\" });\nconst u = Object.create(a, {\n next: {\n enumerable: !0,\n configurable: !0,\n writable: !0,\n value: i\n },\n return: {\n enumerable: !0,\n configurable: !0,\n writable: !0,\n value: o\n }\n});\nfunction h({ preventCancel: r = !1 } = {}) {\n const e = this.getReader(), t = new c(\n e,\n r\n ), s = Object.create(u);\n return s[n] = t, s;\n}\nexport {\n h as asyncIterator\n};\n","import {isReadableStream} from 'is-stream';\nimport {asyncIterator} from '@sec-ant/readable-stream/ponyfill';\n\nexport const getAsyncIterable = stream => {\n\tif (isReadableStream(stream, {checkOpen: false}) && nodeImports.on !== undefined) {\n\t\treturn getStreamIterable(stream);\n\t}\n\n\tif (typeof stream?.[Symbol.asyncIterator] === 'function') {\n\t\treturn stream;\n\t}\n\n\t// `ReadableStream[Symbol.asyncIterator]` support is missing in multiple browsers, so we ponyfill it\n\tif (toString.call(stream) === '[object ReadableStream]') {\n\t\treturn asyncIterator.call(stream);\n\t}\n\n\tthrow new TypeError('The first argument must be a Readable, a ReadableStream, or an async iterable.');\n};\n\nconst {toString} = Object.prototype;\n\n// The default iterable for Node.js streams does not allow for multiple readers at once, so we re-implement it\nconst getStreamIterable = async function * (stream) {\n\tconst controller = new AbortController();\n\tconst state = {};\n\thandleStreamEnd(stream, controller, state);\n\n\ttry {\n\t\tfor await (const [chunk] of nodeImports.on(stream, 'data', {signal: controller.signal})) {\n\t\t\tyield chunk;\n\t\t}\n\t} catch (error) {\n\t\t// Stream failure, for example due to `stream.destroy(error)`\n\t\tif (state.error !== undefined) {\n\t\t\tthrow state.error;\n\t\t// `error` event directly emitted on stream\n\t\t} else if (!controller.signal.aborted) {\n\t\t\tthrow error;\n\t\t// Otherwise, stream completed successfully\n\t\t}\n\t\t// The `finally` block also runs when the caller throws, for example due to the `maxBuffer` option\n\t} finally {\n\t\tstream.destroy();\n\t}\n};\n\nconst handleStreamEnd = async (stream, controller, state) => {\n\ttry {\n\t\tawait nodeImports.finished(stream, {\n\t\t\tcleanup: true,\n\t\t\treadable: true,\n\t\t\twritable: false,\n\t\t\terror: false,\n\t\t});\n\t} catch (error) {\n\t\tstate.error = error;\n\t} finally {\n\t\tcontroller.abort();\n\t}\n};\n\n// Loaded by the Node entrypoint, but not by the browser one.\n// This prevents using dynamic imports.\nexport const nodeImports = {};\n","import {getAsyncIterable} from './stream.js';\n\nexport const getStreamContents = async (stream, {init, convertChunk, getSize, truncateChunk, addChunk, getFinalChunk, finalize}, {maxBuffer = Number.POSITIVE_INFINITY} = {}) => {\n\tconst asyncIterable = getAsyncIterable(stream);\n\n\tconst state = init();\n\tstate.length = 0;\n\n\ttry {\n\t\tfor await (const chunk of asyncIterable) {\n\t\t\tconst chunkType = getChunkType(chunk);\n\t\t\tconst convertedChunk = convertChunk[chunkType](chunk, state);\n\t\t\tappendChunk({\n\t\t\t\tconvertedChunk,\n\t\t\t\tstate,\n\t\t\t\tgetSize,\n\t\t\t\ttruncateChunk,\n\t\t\t\taddChunk,\n\t\t\t\tmaxBuffer,\n\t\t\t});\n\t\t}\n\n\t\tappendFinalChunk({\n\t\t\tstate,\n\t\t\tconvertChunk,\n\t\t\tgetSize,\n\t\t\ttruncateChunk,\n\t\t\taddChunk,\n\t\t\tgetFinalChunk,\n\t\t\tmaxBuffer,\n\t\t});\n\t\treturn finalize(state);\n\t} catch (error) {\n\t\tconst normalizedError = typeof error === 'object' && error !== null ? error : new Error(error);\n\t\tnormalizedError.bufferedData = finalize(state);\n\t\tthrow normalizedError;\n\t}\n};\n\nconst appendFinalChunk = ({state, getSize, truncateChunk, addChunk, getFinalChunk, maxBuffer}) => {\n\tconst convertedChunk = getFinalChunk(state);\n\tif (convertedChunk !== undefined) {\n\t\tappendChunk({\n\t\t\tconvertedChunk,\n\t\t\tstate,\n\t\t\tgetSize,\n\t\t\ttruncateChunk,\n\t\t\taddChunk,\n\t\t\tmaxBuffer,\n\t\t});\n\t}\n};\n\nconst appendChunk = ({convertedChunk, state, getSize, truncateChunk, addChunk, maxBuffer}) => {\n\tconst chunkSize = getSize(convertedChunk);\n\tconst newLength = state.length + chunkSize;\n\n\tif (newLength <= maxBuffer) {\n\t\taddNewChunk(convertedChunk, state, addChunk, newLength);\n\t\treturn;\n\t}\n\n\tconst truncatedChunk = truncateChunk(convertedChunk, maxBuffer - state.length);\n\n\tif (truncatedChunk !== undefined) {\n\t\taddNewChunk(truncatedChunk, state, addChunk, maxBuffer);\n\t}\n\n\tthrow new MaxBufferError();\n};\n\nconst addNewChunk = (convertedChunk, state, addChunk, newLength) => {\n\tstate.contents = addChunk(convertedChunk, state, newLength);\n\tstate.length = newLength;\n};\n\nconst getChunkType = chunk => {\n\tconst typeOfChunk = typeof chunk;\n\n\tif (typeOfChunk === 'string') {\n\t\treturn 'string';\n\t}\n\n\tif (typeOfChunk !== 'object' || chunk === null) {\n\t\treturn 'others';\n\t}\n\n\tif (globalThis.Buffer?.isBuffer(chunk)) {\n\t\treturn 'buffer';\n\t}\n\n\tconst prototypeName = objectToString.call(chunk);\n\n\tif (prototypeName === '[object ArrayBuffer]') {\n\t\treturn 'arrayBuffer';\n\t}\n\n\tif (prototypeName === '[object DataView]') {\n\t\treturn 'dataView';\n\t}\n\n\tif (\n\t\tNumber.isInteger(chunk.byteLength)\n\t\t&& Number.isInteger(chunk.byteOffset)\n\t\t&& objectToString.call(chunk.buffer) === '[object ArrayBuffer]'\n\t) {\n\t\treturn 'typedArray';\n\t}\n\n\treturn 'others';\n};\n\nconst {toString: objectToString} = Object.prototype;\n\nexport class MaxBufferError extends Error {\n\tname = 'MaxBufferError';\n\n\tconstructor() {\n\t\tsuper('maxBuffer exceeded');\n\t}\n}\n","import {MaxBufferError} from 'get-stream';\nimport {getStreamName} from '../utils/standard-stream.js';\n\n// When the `maxBuffer` option is hit, a MaxBufferError is thrown.\n// The stream is aborted, then specific information is kept for the error message.\nexport const handleMaxBuffer = ({error, stream, readableObjectMode, lines, encoding, fdNumber}) => {\n\tif (!(error instanceof MaxBufferError)) {\n\t\tthrow error;\n\t}\n\n\tif (fdNumber === 'all') {\n\t\treturn error;\n\t}\n\n\tconst unit = getMaxBufferUnit(readableObjectMode, lines, encoding);\n\terror.maxBufferInfo = {fdNumber, unit};\n\tstream.destroy();\n\tthrow error;\n};\n\nconst getMaxBufferUnit = (readableObjectMode, lines, encoding) => {\n\tif (readableObjectMode) {\n\t\treturn 'objects';\n\t}\n\n\tif (lines) {\n\t\treturn 'lines';\n\t}\n\n\tif (encoding === 'buffer') {\n\t\treturn 'bytes';\n\t}\n\n\treturn 'characters';\n};\n\n// Error message when `maxBuffer` is hit\nexport const getMaxBufferMessage = (error, maxBuffer) => {\n\tconst {streamName, threshold, unit} = getMaxBufferInfo(error, maxBuffer);\n\treturn `Command's ${streamName} was larger than ${threshold} ${unit}`;\n};\n\nconst getMaxBufferInfo = (error, maxBuffer) => {\n\tif (error?.maxBufferInfo === undefined) {\n\t\treturn {streamName: 'output', threshold: maxBuffer[1], unit: 'bytes'};\n\t}\n\n\tconst {maxBufferInfo: {fdNumber, unit}} = error;\n\tdelete error.maxBufferInfo;\n\treturn {streamName: getStreamName(fdNumber), threshold: maxBuffer[fdNumber], unit};\n};\n\n// The only way to apply `maxBuffer` with `spawnSync()` is to use the native `maxBuffer` option Node.js provides.\n// However, this has multiple limitations, and cannot behave the exact same way as the async behavior.\n// When the `maxBuffer` is hit, a `ENOBUFS` error is thrown.\nexport const isMaxBufferSync = (resultError, output, maxBuffer) => resultError?.code === 'ENOBUFS'\n\t&& output !== null\n\t&& output.some(result => result !== null && result.length > getMaxBufferSync(maxBuffer));\n\n// When `maxBuffer` is hit, ensure the result is truncated\nexport const truncateMaxBufferSync = (result, isMaxBuffer, maxBuffer) => {\n\tif (!isMaxBuffer) {\n\t\treturn result;\n\t}\n\n\tconst maxBufferValue = getMaxBufferSync(maxBuffer);\n\treturn result.length > maxBufferValue ? result.slice(0, maxBufferValue) : result;\n};\n\n// `spawnSync()` does not allow differentiating `maxBuffer` per file descriptor, so we always use `stdout`\nexport const getMaxBufferSync = ([, stdoutMaxBuffer]) => stdoutMaxBuffer;\n","import stripFinalNewline from 'strip-final-newline';\nimport {isUint8Array, uint8ArrayToString} from '../utils/uint-array.js';\nimport {fixCwdError} from '../arguments/cwd.js';\nimport {escapeLines} from '../arguments/escape.js';\nimport {getMaxBufferMessage} from '../io/max-buffer.js';\nimport {DiscardedError, isExecaError} from './final-error.js';\n\n// Computes `error.message`, `error.shortMessage` and `error.originalMessage`\nexport const createMessages = ({\n\tstdio,\n\tall,\n\toriginalError,\n\tsignal,\n\tsignalDescription,\n\texitCode,\n\tescapedCommand,\n\ttimedOut,\n\tisCanceled,\n\tisMaxBuffer,\n\tmaxBuffer,\n\ttimeout,\n\tcwd,\n}) => {\n\tconst errorCode = originalError?.code;\n\tconst prefix = getErrorPrefix({\n\t\toriginalError,\n\t\ttimedOut,\n\t\ttimeout,\n\t\tisMaxBuffer,\n\t\tmaxBuffer,\n\t\terrorCode,\n\t\tsignal,\n\t\tsignalDescription,\n\t\texitCode,\n\t\tisCanceled,\n\t});\n\tconst originalMessage = getOriginalMessage(originalError, cwd);\n\tconst suffix = originalMessage === undefined ? '' : `\\n${originalMessage}`;\n\tconst shortMessage = `${prefix}: ${escapedCommand}${suffix}`;\n\tconst messageStdio = all === undefined ? [stdio[2], stdio[1]] : [all];\n\tconst message = [shortMessage, ...messageStdio, ...stdio.slice(3)]\n\t\t.map(messagePart => escapeLines(stripFinalNewline(serializeMessagePart(messagePart))))\n\t\t.filter(Boolean)\n\t\t.join('\\n\\n');\n\treturn {originalMessage, shortMessage, message};\n};\n\nconst getErrorPrefix = ({originalError, timedOut, timeout, isMaxBuffer, maxBuffer, errorCode, signal, signalDescription, exitCode, isCanceled}) => {\n\tif (timedOut) {\n\t\treturn `Command timed out after ${timeout} milliseconds`;\n\t}\n\n\tif (isCanceled) {\n\t\treturn 'Command was canceled';\n\t}\n\n\tif (isMaxBuffer) {\n\t\treturn getMaxBufferMessage(originalError, maxBuffer);\n\t}\n\n\tif (errorCode !== undefined) {\n\t\treturn `Command failed with ${errorCode}`;\n\t}\n\n\tif (signal !== undefined) {\n\t\treturn `Command was killed with ${signal} (${signalDescription})`;\n\t}\n\n\tif (exitCode !== undefined) {\n\t\treturn `Command failed with exit code ${exitCode}`;\n\t}\n\n\treturn 'Command failed';\n};\n\nconst getOriginalMessage = (originalError, cwd) => {\n\tif (originalError instanceof DiscardedError) {\n\t\treturn;\n\t}\n\n\tconst originalMessage = isExecaError(originalError)\n\t\t? originalError.originalMessage\n\t\t: String(originalError?.message ?? originalError);\n\tconst escapedOriginalMessage = escapeLines(fixCwdError(originalMessage, cwd));\n\treturn escapedOriginalMessage === '' ? undefined : escapedOriginalMessage;\n};\n\nconst serializeMessagePart = messagePart => Array.isArray(messagePart)\n\t? messagePart.map(messageItem => stripFinalNewline(serializeMessageItem(messageItem))).filter(Boolean).join('\\n')\n\t: serializeMessageItem(messagePart);\n\nconst serializeMessageItem = messageItem => {\n\tif (typeof messageItem === 'string') {\n\t\treturn messageItem;\n\t}\n\n\tif (isUint8Array(messageItem)) {\n\t\treturn uint8ArrayToString(messageItem);\n\t}\n\n\treturn '';\n};\n","import {signalsByName} from 'human-signals';\nimport {getDurationMs} from './duration.js';\nimport {getFinalError} from './final-error.js';\nimport {createMessages} from './message.js';\n\n// Object returned on subprocess success\nexport const makeSuccessResult = ({\n\tcommand,\n\tescapedCommand,\n\tstdio,\n\tall,\n\toptions: {cwd},\n\tstartTime,\n}) => omitUndefinedProperties({\n\tcommand,\n\tescapedCommand,\n\tcwd,\n\tdurationMs: getDurationMs(startTime),\n\tfailed: false,\n\ttimedOut: false,\n\tisCanceled: false,\n\tisTerminated: false,\n\tisMaxBuffer: false,\n\texitCode: 0,\n\tstdout: stdio[1],\n\tstderr: stdio[2],\n\tall,\n\tstdio,\n\tpipedFrom: [],\n});\n\n// Object returned on subprocess failure before spawning\nexport const makeEarlyError = ({\n\terror,\n\tcommand,\n\tescapedCommand,\n\tfileDescriptors,\n\toptions,\n\tstartTime,\n\tisSync,\n}) => makeError({\n\terror,\n\tcommand,\n\tescapedCommand,\n\tstartTime,\n\ttimedOut: false,\n\tisCanceled: false,\n\tisMaxBuffer: false,\n\tstdio: Array.from({length: fileDescriptors.length}),\n\toptions,\n\tisSync,\n});\n\n// Object returned on subprocess failure\nexport const makeError = ({\n\terror: originalError,\n\tcommand,\n\tescapedCommand,\n\tstartTime,\n\ttimedOut,\n\tisCanceled,\n\tisMaxBuffer,\n\texitCode: rawExitCode,\n\tsignal: rawSignal,\n\tstdio,\n\tall,\n\toptions: {timeoutDuration, timeout = timeoutDuration, cwd, maxBuffer},\n\tisSync,\n}) => {\n\tconst {exitCode, signal, signalDescription} = normalizeExitPayload(rawExitCode, rawSignal);\n\tconst {originalMessage, shortMessage, message} = createMessages({\n\t\tstdio,\n\t\tall,\n\t\toriginalError,\n\t\tsignal,\n\t\tsignalDescription,\n\t\texitCode,\n\t\tescapedCommand,\n\t\ttimedOut,\n\t\tisCanceled,\n\t\tisMaxBuffer,\n\t\tmaxBuffer,\n\t\ttimeout,\n\t\tcwd,\n\t});\n\tconst error = getFinalError(originalError, message, isSync);\n\tObject.assign(error, getErrorProperties({\n\t\terror,\n\t\tcommand,\n\t\tescapedCommand,\n\t\tstartTime,\n\t\ttimedOut,\n\t\tisCanceled,\n\t\tisMaxBuffer,\n\t\texitCode,\n\t\tsignal,\n\t\tsignalDescription,\n\t\tstdio,\n\t\tall,\n\t\tcwd,\n\t\toriginalMessage,\n\t\tshortMessage,\n\t}));\n\treturn error;\n};\n\nconst getErrorProperties = ({\n\terror,\n\tcommand,\n\tescapedCommand,\n\tstartTime,\n\ttimedOut,\n\tisCanceled,\n\tisMaxBuffer,\n\texitCode,\n\tsignal,\n\tsignalDescription,\n\tstdio,\n\tall,\n\tcwd,\n\toriginalMessage,\n\tshortMessage,\n}) => omitUndefinedProperties({\n\tshortMessage,\n\toriginalMessage,\n\tcommand,\n\tescapedCommand,\n\tcwd,\n\tdurationMs: getDurationMs(startTime),\n\tfailed: true,\n\ttimedOut,\n\tisCanceled,\n\tisTerminated: signal !== undefined,\n\tisMaxBuffer,\n\texitCode,\n\tsignal,\n\tsignalDescription,\n\tcode: error.cause?.code,\n\tstdout: stdio[1],\n\tstderr: stdio[2],\n\tall,\n\tstdio,\n\tpipedFrom: [],\n});\n\nconst omitUndefinedProperties = result => Object.fromEntries(Object.entries(result).filter(([, value]) => value !== undefined));\n\n// `signal` and `exitCode` emitted on `subprocess.on('exit')` event can be `null`.\n// We normalize them to `undefined`\nconst normalizeExitPayload = (rawExitCode, rawSignal) => {\n\tconst exitCode = rawExitCode === null ? undefined : rawExitCode;\n\tconst signal = rawSignal === null ? undefined : rawSignal;\n\tconst signalDescription = signal === undefined ? undefined : signalsByName[rawSignal].description;\n\treturn {exitCode, signal, signalDescription};\n};\n","const toZeroIfInfinity = value => Number.isFinite(value) ? value : 0;\n\nfunction parseNumber(milliseconds) {\n\treturn {\n\t\tdays: Math.trunc(milliseconds / 86_400_000),\n\t\thours: Math.trunc(milliseconds / 3_600_000 % 24),\n\t\tminutes: Math.trunc(milliseconds / 60_000 % 60),\n\t\tseconds: Math.trunc(milliseconds / 1000 % 60),\n\t\tmilliseconds: Math.trunc(milliseconds % 1000),\n\t\tmicroseconds: Math.trunc(toZeroIfInfinity(milliseconds * 1000) % 1000),\n\t\tnanoseconds: Math.trunc(toZeroIfInfinity(milliseconds * 1e6) % 1000),\n\t};\n}\n\nfunction parseBigint(milliseconds) {\n\treturn {\n\t\tdays: milliseconds / 86_400_000n,\n\t\thours: milliseconds / 3_600_000n % 24n,\n\t\tminutes: milliseconds / 60_000n % 60n,\n\t\tseconds: milliseconds / 1000n % 60n,\n\t\tmilliseconds: milliseconds % 1000n,\n\t\tmicroseconds: 0n,\n\t\tnanoseconds: 0n,\n\t};\n}\n\nexport default function parseMilliseconds(milliseconds) {\n\tswitch (typeof milliseconds) {\n\t\tcase 'number': {\n\t\t\tif (Number.isFinite(milliseconds)) {\n\t\t\t\treturn parseNumber(milliseconds);\n\t\t\t}\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase 'bigint': {\n\t\t\treturn parseBigint(milliseconds);\n\t\t}\n\n\t\t// No default\n\t}\n\n\tthrow new TypeError('Expected a finite number or bigint');\n}\n","import parseMilliseconds from 'parse-ms';\n\nconst isZero = value => value === 0 || value === 0n;\nconst pluralize = (word, count) => (count === 1 || count === 1n) ? word : `${word}s`;\n\nconst SECOND_ROUNDING_EPSILON = 0.000_000_1;\nconst ONE_DAY_IN_MILLISECONDS = 24n * 60n * 60n * 1000n;\n\nexport default function prettyMilliseconds(milliseconds, options) {\n\tconst isBigInt = typeof milliseconds === 'bigint';\n\tif (!isBigInt && !Number.isFinite(milliseconds)) {\n\t\tthrow new TypeError('Expected a finite number or bigint');\n\t}\n\n\toptions = {...options};\n\n\tif (options.colonNotation) {\n\t\toptions.compact = false;\n\t\toptions.formatSubMilliseconds = false;\n\t\toptions.separateMilliseconds = false;\n\t\toptions.verbose = false;\n\t}\n\n\tif (options.compact) {\n\t\toptions.unitCount = 1;\n\t\toptions.secondsDecimalDigits = 0;\n\t\toptions.millisecondsDecimalDigits = 0;\n\t}\n\n\tlet result = [];\n\n\tconst floorDecimals = (value, decimalDigits) => {\n\t\tconst flooredInterimValue = Math.floor((value * (10 ** decimalDigits)) + SECOND_ROUNDING_EPSILON);\n\t\tconst flooredValue = Math.round(flooredInterimValue) / (10 ** decimalDigits);\n\t\treturn flooredValue.toFixed(decimalDigits);\n\t};\n\n\tconst add = (value, long, short, valueString) => {\n\t\tif (\n\t\t\t(result.length === 0 || !options.colonNotation)\n\t\t\t&& isZero(value)\n\t\t\t&& !(options.colonNotation && short === 'm')) {\n\t\t\treturn;\n\t\t}\n\n\t\tvalueString = valueString ?? String(value);\n\t\tif (options.colonNotation) {\n\t\t\tconst wholeDigits = valueString.includes('.') ? valueString.split('.')[0].length : valueString.length;\n\t\t\tconst minLength = result.length > 0 ? 2 : 1;\n\t\t\tvalueString = '0'.repeat(Math.max(0, minLength - wholeDigits)) + valueString;\n\t\t} else {\n\t\t\tvalueString += options.verbose ? ' ' + pluralize(long, value) : short;\n\t\t}\n\n\t\tresult.push(valueString);\n\t};\n\n\tconst parsed = parseMilliseconds(milliseconds);\n\tconst days = BigInt(parsed.days);\n\n\tadd(days / 365n, 'year', 'y');\n\tadd(days % 365n, 'day', 'd');\n\tadd(Number(parsed.hours), 'hour', 'h');\n\tadd(Number(parsed.minutes), 'minute', 'm');\n\n\tif (\n\t\toptions.separateMilliseconds\n\t\t|| options.formatSubMilliseconds\n\t\t|| (!options.colonNotation && milliseconds < 1000)\n\t) {\n\t\tconst seconds = Number(parsed.seconds);\n\t\tconst milliseconds = Number(parsed.milliseconds);\n\t\tconst microseconds = Number(parsed.microseconds);\n\t\tconst nanoseconds = Number(parsed.nanoseconds);\n\n\t\tadd(seconds, 'second', 's');\n\n\t\tif (options.formatSubMilliseconds) {\n\t\t\tadd(milliseconds, 'millisecond', 'ms');\n\t\t\tadd(microseconds, 'microsecond', 'µs');\n\t\t\tadd(nanoseconds, 'nanosecond', 'ns');\n\t\t} else {\n\t\t\tconst millisecondsAndBelow\n\t\t\t\t= milliseconds\n\t\t\t\t+ (microseconds / 1000)\n\t\t\t\t+ (nanoseconds / 1e6);\n\n\t\t\tconst millisecondsDecimalDigits\n\t\t\t\t= typeof options.millisecondsDecimalDigits === 'number'\n\t\t\t\t\t? options.millisecondsDecimalDigits\n\t\t\t\t\t: 0;\n\n\t\t\tconst roundedMilliseconds = millisecondsAndBelow >= 1\n\t\t\t\t? Math.round(millisecondsAndBelow)\n\t\t\t\t: Math.ceil(millisecondsAndBelow);\n\n\t\t\tconst millisecondsString = millisecondsDecimalDigits\n\t\t\t\t? millisecondsAndBelow.toFixed(millisecondsDecimalDigits)\n\t\t\t\t: roundedMilliseconds;\n\n\t\t\tadd(\n\t\t\t\tNumber.parseFloat(millisecondsString),\n\t\t\t\t'millisecond',\n\t\t\t\t'ms',\n\t\t\t\tmillisecondsString,\n\t\t\t);\n\t\t}\n\t} else {\n\t\tconst seconds = (\n\t\t\t(isBigInt ? Number(milliseconds % ONE_DAY_IN_MILLISECONDS) : milliseconds)\n\t\t\t/ 1000\n\t\t) % 60;\n\t\tconst secondsDecimalDigits\n\t\t\t= typeof options.secondsDecimalDigits === 'number'\n\t\t\t\t? options.secondsDecimalDigits\n\t\t\t\t: 1;\n\t\tconst secondsFixed = floorDecimals(seconds, secondsDecimalDigits);\n\t\tconst secondsString = options.keepDecimalsOnWholeSeconds\n\t\t\t? secondsFixed\n\t\t\t: secondsFixed.replace(/\\.0+$/, '');\n\t\tadd(Number.parseFloat(secondsString), 'second', 's', secondsString);\n\t}\n\n\tif (result.length === 0) {\n\t\treturn '0' + (options.verbose ? ' milliseconds' : 'ms');\n\t}\n\n\tconst separator = options.colonNotation ? ':' : ' ';\n\tif (typeof options.unitCount === 'number') {\n\t\tresult = result.slice(0, Math.max(options.unitCount, 1));\n\t}\n\n\treturn result.join(separator);\n}\n","import {redBright, yellowBright} from 'yoctocolors';\nimport {verboseLog} from './log.js';\n\n// When `verbose` is `short|full`, print each command's error when it fails\nexport const logError = ({message, failed, reject, verboseId, icon}) => {\n\tif (!failed) {\n\t\treturn;\n\t}\n\n\tconst color = reject ? redBright : yellowBright;\n\tverboseLog(message, verboseId, icon, color);\n};\n","import prettyMs from 'pretty-ms';\nimport {gray} from 'yoctocolors';\nimport {escapeLines} from '../arguments/escape.js';\nimport {getDurationMs} from '../return/duration.js';\nimport {isVerbose} from './info.js';\nimport {verboseLog} from './log.js';\nimport {logError} from './error.js';\n\n// When `verbose` is `short|full`, print each command's completion, duration and error\nexport const logFinalResult = ({shortMessage, failed, durationMs}, reject, verboseInfo) => {\n\tlogResult({\n\t\tmessage: shortMessage,\n\t\tfailed,\n\t\treject,\n\t\tdurationMs,\n\t\tverboseInfo,\n\t});\n};\n\n// Same but for early validation errors\nexport const logEarlyResult = (error, startTime, verboseInfo) => {\n\tlogResult({\n\t\tmessage: escapeLines(String(error)),\n\t\tfailed: true,\n\t\treject: true,\n\t\tdurationMs: getDurationMs(startTime),\n\t\tverboseInfo,\n\t});\n};\n\nconst logResult = ({message, failed, reject, durationMs, verboseInfo: {verbose, verboseId}}) => {\n\tif (!isVerbose(verbose)) {\n\t\treturn;\n\t}\n\n\tconst icon = getIcon(failed, reject);\n\tlogError({\n\t\tmessage,\n\t\tfailed,\n\t\treject,\n\t\tverboseId,\n\t\ticon,\n\t});\n\tlogDuration(durationMs, verboseId, icon);\n};\n\nconst logDuration = (durationMs, verboseId, icon) => {\n\tconst durationMessage = `(done in ${prettyMs(durationMs)})`;\n\tverboseLog(durationMessage, verboseId, icon, gray);\n};\n\nconst getIcon = (failed, reject) => {\n\tif (!failed) {\n\t\treturn 'success';\n\t}\n\n\treturn reject ? 'error' : 'warning';\n};\n","import {logFinalResult} from '../verbose/complete.js';\n\n// Applies the `reject` option.\n// Also print the final log line with `verbose`.\nexport const handleResult = (result, verboseInfo, {reject}) => {\n\tlogFinalResult(result, reject, verboseInfo);\n\n\tif (result.failed && reject) {\n\t\tthrow result;\n\t}\n\n\treturn result;\n};\n","import {isStream as isNodeStream, isDuplexStream} from 'is-stream';\nimport isPlainObj from 'is-plain-obj';\nimport {isUint8Array} from '../utils/uint-array.js';\n\n// The `stdin`/`stdout`/`stderr` option can be of many types. This detects it.\nexport const getStdioItemType = (value, optionName) => {\n\tif (isAsyncGenerator(value)) {\n\t\treturn 'asyncGenerator';\n\t}\n\n\tif (isSyncGenerator(value)) {\n\t\treturn 'generator';\n\t}\n\n\tif (isUrl(value)) {\n\t\treturn 'fileUrl';\n\t}\n\n\tif (isFilePathObject(value)) {\n\t\treturn 'filePath';\n\t}\n\n\tif (isWebStream(value)) {\n\t\treturn 'webStream';\n\t}\n\n\tif (isNodeStream(value, {checkOpen: false})) {\n\t\treturn 'native';\n\t}\n\n\tif (isUint8Array(value)) {\n\t\treturn 'uint8Array';\n\t}\n\n\tif (isAsyncIterableObject(value)) {\n\t\treturn 'asyncIterable';\n\t}\n\n\tif (isIterableObject(value)) {\n\t\treturn 'iterable';\n\t}\n\n\tif (isTransformStream(value)) {\n\t\treturn getTransformStreamType({transform: value}, optionName);\n\t}\n\n\tif (isTransformOptions(value)) {\n\t\treturn getTransformObjectType(value, optionName);\n\t}\n\n\treturn 'native';\n};\n\nconst getTransformObjectType = (value, optionName) => {\n\tif (isDuplexStream(value.transform, {checkOpen: false})) {\n\t\treturn getDuplexType(value, optionName);\n\t}\n\n\tif (isTransformStream(value.transform)) {\n\t\treturn getTransformStreamType(value, optionName);\n\t}\n\n\treturn getGeneratorObjectType(value, optionName);\n};\n\nconst getDuplexType = (value, optionName) => {\n\tvalidateNonGeneratorType(value, optionName, 'Duplex stream');\n\treturn 'duplex';\n};\n\nconst getTransformStreamType = (value, optionName) => {\n\tvalidateNonGeneratorType(value, optionName, 'web TransformStream');\n\treturn 'webTransform';\n};\n\nconst validateNonGeneratorType = ({final, binary, objectMode}, optionName, typeName) => {\n\tcheckUndefinedOption(final, `${optionName}.final`, typeName);\n\tcheckUndefinedOption(binary, `${optionName}.binary`, typeName);\n\tcheckBooleanOption(objectMode, `${optionName}.objectMode`);\n};\n\nconst checkUndefinedOption = (value, optionName, typeName) => {\n\tif (value !== undefined) {\n\t\tthrow new TypeError(`The \\`${optionName}\\` option can only be defined when using a generator, not a ${typeName}.`);\n\t}\n};\n\nconst getGeneratorObjectType = ({transform, final, binary, objectMode}, optionName) => {\n\tif (transform !== undefined && !isGenerator(transform)) {\n\t\tthrow new TypeError(`The \\`${optionName}.transform\\` option must be a generator, a Duplex stream or a web TransformStream.`);\n\t}\n\n\tif (isDuplexStream(final, {checkOpen: false})) {\n\t\tthrow new TypeError(`The \\`${optionName}.final\\` option must not be a Duplex stream.`);\n\t}\n\n\tif (isTransformStream(final)) {\n\t\tthrow new TypeError(`The \\`${optionName}.final\\` option must not be a web TransformStream.`);\n\t}\n\n\tif (final !== undefined && !isGenerator(final)) {\n\t\tthrow new TypeError(`The \\`${optionName}.final\\` option must be a generator.`);\n\t}\n\n\tcheckBooleanOption(binary, `${optionName}.binary`);\n\tcheckBooleanOption(objectMode, `${optionName}.objectMode`);\n\n\treturn isAsyncGenerator(transform) || isAsyncGenerator(final) ? 'asyncGenerator' : 'generator';\n};\n\nconst checkBooleanOption = (value, optionName) => {\n\tif (value !== undefined && typeof value !== 'boolean') {\n\t\tthrow new TypeError(`The \\`${optionName}\\` option must use a boolean.`);\n\t}\n};\n\nconst isGenerator = value => isAsyncGenerator(value) || isSyncGenerator(value);\nexport const isAsyncGenerator = value => Object.prototype.toString.call(value) === '[object AsyncGeneratorFunction]';\nconst isSyncGenerator = value => Object.prototype.toString.call(value) === '[object GeneratorFunction]';\nconst isTransformOptions = value => isPlainObj(value)\n\t&& (value.transform !== undefined || value.final !== undefined);\n\nexport const isUrl = value => Object.prototype.toString.call(value) === '[object URL]';\nexport const isRegularUrl = value => isUrl(value) && value.protocol !== 'file:';\n\nconst isFilePathObject = value => isPlainObj(value)\n\t&& Object.keys(value).length === 1\n\t&& isFilePathString(value.file);\nexport const isFilePathString = file => typeof file === 'string';\n\nexport const isUnknownStdioString = (type, value) => type === 'native'\n\t&& typeof value === 'string'\n\t&& !KNOWN_STDIO_STRINGS.has(value);\nconst KNOWN_STDIO_STRINGS = new Set(['ipc', 'ignore', 'inherit', 'overlapped', 'pipe']);\n\nconst isReadableStream = value => Object.prototype.toString.call(value) === '[object ReadableStream]';\nexport const isWritableStream = value => Object.prototype.toString.call(value) === '[object WritableStream]';\nconst isWebStream = value => isReadableStream(value) || isWritableStream(value);\nconst isTransformStream = value => isReadableStream(value?.readable) && isWritableStream(value?.writable);\n\nconst isAsyncIterableObject = value => isObject(value) && typeof value[Symbol.asyncIterator] === 'function';\nconst isIterableObject = value => isObject(value) && typeof value[Symbol.iterator] === 'function';\nconst isObject = value => typeof value === 'object' && value !== null;\n\n// Types which modify `subprocess.std*`\nexport const TRANSFORM_TYPES = new Set(['generator', 'asyncGenerator', 'duplex', 'webTransform']);\n// Types which write to a file or a file descriptor\nexport const FILE_TYPES = new Set(['fileUrl', 'filePath', 'fileNumber']);\n// When two file descriptors of this type share the same target, we need to do some special logic\nexport const SPECIAL_DUPLICATE_TYPES_SYNC = new Set(['fileUrl', 'filePath']);\nexport const SPECIAL_DUPLICATE_TYPES = new Set([...SPECIAL_DUPLICATE_TYPES_SYNC, 'webStream', 'nodeStream']);\n// Do not allow two file descriptors of this type sharing the same target\nexport const FORBID_DUPLICATE_TYPES = new Set(['webTransform', 'duplex']);\n\n// Convert types to human-friendly strings for error messages\nexport const TYPE_TO_MESSAGE = {\n\tgenerator: 'a generator',\n\tasyncGenerator: 'an async generator',\n\tfileUrl: 'a file URL',\n\tfilePath: 'a file path string',\n\tfileNumber: 'a file descriptor number',\n\twebStream: 'a web stream',\n\tnodeStream: 'a Node.js stream',\n\twebTransform: 'a web TransformStream',\n\tduplex: 'a Duplex stream',\n\tnative: 'any value',\n\titerable: 'an iterable',\n\tasyncIterable: 'an async iterable',\n\tstring: 'a string',\n\tuint8Array: 'a Uint8Array',\n};\n","import {TRANSFORM_TYPES} from '../stdio/type.js';\n\n/*\nRetrieve the `objectMode`s of a single transform.\n`objectMode` determines the return value's type, i.e. the `readableObjectMode`.\nThe chunk argument's type is based on the previous generator's return value, i.e. the `writableObjectMode` is based on the previous `readableObjectMode`.\nThe last input's generator is read by `subprocess.stdin` which:\n- should not be in `objectMode` for performance reasons.\n- can only be strings, Buffers and Uint8Arrays.\nTherefore its `readableObjectMode` must be `false`.\nThe same applies to the first output's generator's `writableObjectMode`.\n*/\nexport const getTransformObjectModes = (objectMode, index, newTransforms, direction) => direction === 'output'\n\t? getOutputObjectModes(objectMode, index, newTransforms)\n\t: getInputObjectModes(objectMode, index, newTransforms);\n\nconst getOutputObjectModes = (objectMode, index, newTransforms) => {\n\tconst writableObjectMode = index !== 0 && newTransforms[index - 1].value.readableObjectMode;\n\tconst readableObjectMode = objectMode ?? writableObjectMode;\n\treturn {writableObjectMode, readableObjectMode};\n};\n\nconst getInputObjectModes = (objectMode, index, newTransforms) => {\n\tconst writableObjectMode = index === 0\n\t\t? objectMode === true\n\t\t: newTransforms[index - 1].value.readableObjectMode;\n\tconst readableObjectMode = index !== newTransforms.length - 1 && (objectMode ?? writableObjectMode);\n\treturn {writableObjectMode, readableObjectMode};\n};\n\n// Retrieve the `objectMode` of a file descriptor, e.g. `stdout` or `stderr`\nexport const getFdObjectMode = (stdioItems, direction) => {\n\tconst lastTransform = stdioItems.findLast(({type}) => TRANSFORM_TYPES.has(type));\n\tif (lastTransform === undefined) {\n\t\treturn false;\n\t}\n\n\treturn direction === 'input'\n\t\t? lastTransform.value.writableObjectMode\n\t\t: lastTransform.value.readableObjectMode;\n};\n","import isPlainObj from 'is-plain-obj';\nimport {BINARY_ENCODINGS} from '../arguments/encoding-option.js';\nimport {TRANSFORM_TYPES} from '../stdio/type.js';\nimport {getTransformObjectModes} from './object-mode.js';\n\n// Transforms generators/duplex/TransformStream can have multiple shapes.\n// This normalizes it and applies default values.\nexport const normalizeTransforms = (stdioItems, optionName, direction, options) => [\n\t...stdioItems.filter(({type}) => !TRANSFORM_TYPES.has(type)),\n\t...getTransforms(stdioItems, optionName, direction, options),\n];\n\nconst getTransforms = (stdioItems, optionName, direction, {encoding}) => {\n\tconst transforms = stdioItems.filter(({type}) => TRANSFORM_TYPES.has(type));\n\tconst newTransforms = Array.from({length: transforms.length});\n\n\tfor (const [index, stdioItem] of Object.entries(transforms)) {\n\t\tnewTransforms[index] = normalizeTransform({\n\t\t\tstdioItem,\n\t\t\tindex: Number(index),\n\t\t\tnewTransforms,\n\t\t\toptionName,\n\t\t\tdirection,\n\t\t\tencoding,\n\t\t});\n\t}\n\n\treturn sortTransforms(newTransforms, direction);\n};\n\nconst normalizeTransform = ({stdioItem, stdioItem: {type}, index, newTransforms, optionName, direction, encoding}) => {\n\tif (type === 'duplex') {\n\t\treturn normalizeDuplex({stdioItem, optionName});\n\t}\n\n\tif (type === 'webTransform') {\n\t\treturn normalizeTransformStream({\n\t\t\tstdioItem,\n\t\t\tindex,\n\t\t\tnewTransforms,\n\t\t\tdirection,\n\t\t});\n\t}\n\n\treturn normalizeGenerator({\n\t\tstdioItem,\n\t\tindex,\n\t\tnewTransforms,\n\t\tdirection,\n\t\tencoding,\n\t});\n};\n\nconst normalizeDuplex = ({\n\tstdioItem,\n\tstdioItem: {\n\t\tvalue: {\n\t\t\ttransform,\n\t\t\ttransform: {writableObjectMode, readableObjectMode},\n\t\t\tobjectMode = readableObjectMode,\n\t\t},\n\t},\n\toptionName,\n}) => {\n\tif (objectMode && !readableObjectMode) {\n\t\tthrow new TypeError(`The \\`${optionName}.objectMode\\` option can only be \\`true\\` if \\`new Duplex({objectMode: true})\\` is used.`);\n\t}\n\n\tif (!objectMode && readableObjectMode) {\n\t\tthrow new TypeError(`The \\`${optionName}.objectMode\\` option cannot be \\`false\\` if \\`new Duplex({objectMode: true})\\` is used.`);\n\t}\n\n\treturn {\n\t\t...stdioItem,\n\t\tvalue: {transform, writableObjectMode, readableObjectMode},\n\t};\n};\n\nconst normalizeTransformStream = ({stdioItem, stdioItem: {value}, index, newTransforms, direction}) => {\n\tconst {transform, objectMode} = isPlainObj(value) ? value : {transform: value};\n\tconst {writableObjectMode, readableObjectMode} = getTransformObjectModes(objectMode, index, newTransforms, direction);\n\treturn ({\n\t\t...stdioItem,\n\t\tvalue: {transform, writableObjectMode, readableObjectMode},\n\t});\n};\n\nconst normalizeGenerator = ({stdioItem, stdioItem: {value}, index, newTransforms, direction, encoding}) => {\n\tconst {\n\t\ttransform,\n\t\tfinal,\n\t\tbinary: binaryOption = false,\n\t\tpreserveNewlines = false,\n\t\tobjectMode,\n\t} = isPlainObj(value) ? value : {transform: value};\n\tconst binary = binaryOption || BINARY_ENCODINGS.has(encoding);\n\tconst {writableObjectMode, readableObjectMode} = getTransformObjectModes(objectMode, index, newTransforms, direction);\n\treturn {\n\t\t...stdioItem,\n\t\tvalue: {\n\t\t\ttransform,\n\t\t\tfinal,\n\t\t\tbinary,\n\t\t\tpreserveNewlines,\n\t\t\twritableObjectMode,\n\t\t\treadableObjectMode,\n\t\t},\n\t};\n};\n\nconst sortTransforms = (newTransforms, direction) => direction === 'input' ? newTransforms.reverse() : newTransforms;\n","import process from 'node:process';\nimport {\n\tisStream as isNodeStream,\n\tisReadableStream as isNodeReadableStream,\n\tisWritableStream as isNodeWritableStream,\n} from 'is-stream';\nimport {isWritableStream} from './type.js';\n\n// For `stdio[fdNumber]` beyond stdin/stdout/stderr, we need to guess whether the value passed is intended for inputs or outputs.\n// This allows us to know whether to pipe _into_ or _from_ the stream.\n// When `stdio[fdNumber]` is a single value, this guess is fairly straightforward.\n// However, when it is an array instead, we also need to make sure the different values are not incompatible with each other.\nexport const getStreamDirection = (stdioItems, fdNumber, optionName) => {\n\tconst directions = stdioItems.map(stdioItem => getStdioItemDirection(stdioItem, fdNumber));\n\n\tif (directions.includes('input') && directions.includes('output')) {\n\t\tthrow new TypeError(`The \\`${optionName}\\` option must not be an array of both readable and writable values.`);\n\t}\n\n\treturn directions.find(Boolean) ?? DEFAULT_DIRECTION;\n};\n\nconst getStdioItemDirection = ({type, value}, fdNumber) => KNOWN_DIRECTIONS[fdNumber] ?? guessStreamDirection[type](value);\n\n// `stdin`/`stdout`/`stderr` have a known direction\nconst KNOWN_DIRECTIONS = ['input', 'output', 'output'];\n\nconst anyDirection = () => undefined;\nconst alwaysInput = () => 'input';\n\n// `string` can only be added through the `input` option, i.e. does not need to be handled here\nconst guessStreamDirection = {\n\tgenerator: anyDirection,\n\tasyncGenerator: anyDirection,\n\tfileUrl: anyDirection,\n\tfilePath: anyDirection,\n\titerable: alwaysInput,\n\tasyncIterable: alwaysInput,\n\tuint8Array: alwaysInput,\n\twebStream: value => isWritableStream(value) ? 'output' : 'input',\n\tnodeStream(value) {\n\t\tif (!isNodeReadableStream(value, {checkOpen: false})) {\n\t\t\treturn 'output';\n\t\t}\n\n\t\treturn isNodeWritableStream(value, {checkOpen: false}) ? undefined : 'input';\n\t},\n\twebTransform: anyDirection,\n\tduplex: anyDirection,\n\tnative(value) {\n\t\tconst standardStreamDirection = getStandardStreamDirection(value);\n\t\tif (standardStreamDirection !== undefined) {\n\t\t\treturn standardStreamDirection;\n\t\t}\n\n\t\tif (isNodeStream(value, {checkOpen: false})) {\n\t\t\treturn guessStreamDirection.nodeStream(value);\n\t\t}\n\t},\n};\n\nconst getStandardStreamDirection = value => {\n\tif ([0, process.stdin].includes(value)) {\n\t\treturn 'input';\n\t}\n\n\tif ([1, 2, process.stdout, process.stderr].includes(value)) {\n\t\treturn 'output';\n\t}\n};\n\n// When ambiguous, we initially keep the direction as `undefined`.\n// This allows arrays of `stdio` values to resolve the ambiguity.\n// For example, `stdio[3]: DuplexStream` is ambiguous, but `stdio[3]: [DuplexStream, WritableStream]` is not.\n// When the ambiguity remains, we default to `output` since it is the most common use case for additional file descriptors.\nconst DEFAULT_DIRECTION = 'output';\n","import {STANDARD_STREAMS_ALIASES} from '../utils/standard-stream.js';\n\n// Add support for `stdin`/`stdout`/`stderr` as an alias for `stdio`.\n// Also normalize the `stdio` option.\nexport const normalizeStdioOption = ({stdio, ipc, buffer, verbose, ...options}, isSync) => {\n\tconst stdioArray = getStdioArray(stdio, options).map((stdioOption, fdNumber) => addDefaultValue(stdioOption, fdNumber));\n\treturn isSync ? normalizeStdioSync(stdioArray, buffer, verbose) : normalizeStdioAsync(stdioArray, ipc);\n};\n\nconst getStdioArray = (stdio, options) => {\n\tif (stdio === undefined) {\n\t\treturn STANDARD_STREAMS_ALIASES.map(alias => options[alias]);\n\t}\n\n\tif (hasAlias(options)) {\n\t\tthrow new Error(`It's not possible to provide \\`stdio\\` in combination with one of ${STANDARD_STREAMS_ALIASES.map(alias => `\\`${alias}\\``).join(', ')}`);\n\t}\n\n\tif (typeof stdio === 'string') {\n\t\treturn [stdio, stdio, stdio];\n\t}\n\n\tif (!Array.isArray(stdio)) {\n\t\tthrow new TypeError(`Expected \\`stdio\\` to be of type \\`string\\` or \\`Array\\`, got \\`${typeof stdio}\\``);\n\t}\n\n\tconst length = Math.max(stdio.length, STANDARD_STREAMS_ALIASES.length);\n\treturn Array.from({length}, (_, fdNumber) => stdio[fdNumber]);\n};\n\nconst hasAlias = options => STANDARD_STREAMS_ALIASES.some(alias => options[alias] !== undefined);\n\nconst addDefaultValue = (stdioOption, fdNumber) => {\n\tif (Array.isArray(stdioOption)) {\n\t\treturn stdioOption.map(item => addDefaultValue(item, fdNumber));\n\t}\n\n\tif (stdioOption === null || stdioOption === undefined) {\n\t\treturn fdNumber >= STANDARD_STREAMS_ALIASES.length ? 'ignore' : 'pipe';\n\t}\n\n\treturn stdioOption;\n};\n\n// Using `buffer: false` with synchronous methods implies `stdout`/`stderr`: `ignore`.\n// Unless the output is needed, e.g. due to `verbose: 'full'` or to redirecting to a file.\nconst normalizeStdioSync = (stdioArray, buffer, verbose) => stdioArray.map((stdioOption, fdNumber) =>\n\t!buffer[fdNumber]\n\t&& fdNumber !== 0\n\t&& verbose[fdNumber] !== 'full'\n\t&& isOutputPipeOnly(stdioOption)\n\t\t? 'ignore'\n\t\t: stdioOption);\n\nconst isOutputPipeOnly = stdioOption => stdioOption === 'pipe'\n\t|| (Array.isArray(stdioOption) && stdioOption.every(item => item === 'pipe'));\n\n// The `ipc` option adds an `ipc` item to the `stdio` option\nconst normalizeStdioAsync = (stdioArray, ipc) => ipc && !stdioArray.includes('ipc')\n\t? [...stdioArray, 'ipc']\n\t: stdioArray;\n","import {parseFd} from './specific.js';\n\n// Retrieve stream targeted by the `to` option\nexport const getToStream = (destination, to = 'stdin') => {\n\tconst isWritable = true;\n\tconst {options, fileDescriptors} = SUBPROCESS_OPTIONS.get(destination);\n\tconst fdNumber = getFdNumber(fileDescriptors, to, isWritable);\n\tconst destinationStream = destination.stdio[fdNumber];\n\n\tif (destinationStream === null) {\n\t\tthrow new TypeError(getInvalidStdioOptionMessage(fdNumber, to, options, isWritable));\n\t}\n\n\treturn destinationStream;\n};\n\n// Retrieve stream targeted by the `from` option\nexport const getFromStream = (source, from = 'stdout') => {\n\tconst isWritable = false;\n\tconst {options, fileDescriptors} = SUBPROCESS_OPTIONS.get(source);\n\tconst fdNumber = getFdNumber(fileDescriptors, from, isWritable);\n\tconst sourceStream = fdNumber === 'all' ? source.all : source.stdio[fdNumber];\n\n\tif (sourceStream === null || sourceStream === undefined) {\n\t\tthrow new TypeError(getInvalidStdioOptionMessage(fdNumber, from, options, isWritable));\n\t}\n\n\treturn sourceStream;\n};\n\n// Keeps track of the options passed to each Execa call\nexport const SUBPROCESS_OPTIONS = new WeakMap();\n\nconst getFdNumber = (fileDescriptors, fdName, isWritable) => {\n\tconst fdNumber = parseFdNumber(fdName, isWritable);\n\tvalidateFdNumber(fdNumber, fdName, isWritable, fileDescriptors);\n\treturn fdNumber;\n};\n\nconst parseFdNumber = (fdName, isWritable) => {\n\tconst fdNumber = parseFd(fdName);\n\tif (fdNumber !== undefined) {\n\t\treturn fdNumber;\n\t}\n\n\tconst {validOptions, defaultValue} = isWritable\n\t\t? {validOptions: '\"stdin\"', defaultValue: 'stdin'}\n\t\t: {validOptions: '\"stdout\", \"stderr\", \"all\"', defaultValue: 'stdout'};\n\tthrow new TypeError(`\"${getOptionName(isWritable)}\" must not be \"${fdName}\".\nIt must be ${validOptions} or \"fd3\", \"fd4\" (and so on).\nIt is optional and defaults to \"${defaultValue}\".`);\n};\n\nconst validateFdNumber = (fdNumber, fdName, isWritable, fileDescriptors) => {\n\tconst fileDescriptor = fileDescriptors[getUsedDescriptor(fdNumber)];\n\tif (fileDescriptor === undefined) {\n\t\tthrow new TypeError(`\"${getOptionName(isWritable)}\" must not be ${fdName}. That file descriptor does not exist.\nPlease set the \"stdio\" option to ensure that file descriptor exists.`);\n\t}\n\n\tif (fileDescriptor.direction === 'input' && !isWritable) {\n\t\tthrow new TypeError(`\"${getOptionName(isWritable)}\" must not be ${fdName}. It must be a readable stream, not writable.`);\n\t}\n\n\tif (fileDescriptor.direction !== 'input' && isWritable) {\n\t\tthrow new TypeError(`\"${getOptionName(isWritable)}\" must not be ${fdName}. It must be a writable stream, not readable.`);\n\t}\n};\n\nconst getInvalidStdioOptionMessage = (fdNumber, fdName, options, isWritable) => {\n\tif (fdNumber === 'all' && !options.all) {\n\t\treturn 'The \"all\" option must be true to use \"from: \\'all\\'\".';\n\t}\n\n\tconst {optionName, optionValue} = getInvalidStdioOption(fdNumber, options);\n\treturn `The \"${optionName}: ${serializeOptionValue(optionValue)}\" option is incompatible with using \"${getOptionName(isWritable)}: ${serializeOptionValue(fdName)}\".\nPlease set this option with \"pipe\" instead.`;\n};\n\nconst getInvalidStdioOption = (fdNumber, {stdin, stdout, stderr, stdio}) => {\n\tconst usedDescriptor = getUsedDescriptor(fdNumber);\n\n\tif (usedDescriptor === 0 && stdin !== undefined) {\n\t\treturn {optionName: 'stdin', optionValue: stdin};\n\t}\n\n\tif (usedDescriptor === 1 && stdout !== undefined) {\n\t\treturn {optionName: 'stdout', optionValue: stdout};\n\t}\n\n\tif (usedDescriptor === 2 && stderr !== undefined) {\n\t\treturn {optionName: 'stderr', optionValue: stderr};\n\t}\n\n\treturn {optionName: `stdio[${usedDescriptor}]`, optionValue: stdio[usedDescriptor]};\n};\n\nconst getUsedDescriptor = fdNumber => fdNumber === 'all' ? 1 : fdNumber;\n\nconst getOptionName = isWritable => isWritable ? 'to' : 'from';\n\nexport const serializeOptionValue = value => {\n\tif (typeof value === 'string') {\n\t\treturn `'${value}'`;\n\t}\n\n\treturn typeof value === 'number' ? `${value}` : 'Stream';\n};\n","import {readFileSync} from 'node:fs';\nimport tty from 'node:tty';\nimport {isStream as isNodeStream} from 'is-stream';\nimport {STANDARD_STREAMS} from '../utils/standard-stream.js';\nimport {bufferToUint8Array} from '../utils/uint-array.js';\nimport {serializeOptionValue} from '../arguments/fd-options.js';\n\n// When we use multiple `stdio` values for the same streams, we pass 'pipe' to `child_process.spawn()`.\n// We then emulate the piping done by core Node.js.\n// To do so, we transform the following values:\n// - Node.js streams are marked as `type: nodeStream`\n// - 'inherit' becomes `process.stdin|stdout|stderr`\n// - any file descriptor integer becomes `process.stdio[fdNumber]`\n// All of the above transformations tell Execa to perform manual piping.\nexport const handleNativeStream = ({stdioItem, stdioItem: {type}, isStdioArray, fdNumber, direction, isSync}) => {\n\tif (!isStdioArray || type !== 'native') {\n\t\treturn stdioItem;\n\t}\n\n\treturn isSync\n\t\t? handleNativeStreamSync({stdioItem, fdNumber, direction})\n\t\t: handleNativeStreamAsync({stdioItem, fdNumber});\n};\n\n// Synchronous methods use a different logic.\n// 'inherit', file descriptors and process.std* are handled by readFileSync()/writeFileSync().\nconst handleNativeStreamSync = ({stdioItem, stdioItem: {value, optionName}, fdNumber, direction}) => {\n\tconst targetFd = getTargetFd({\n\t\tvalue,\n\t\toptionName,\n\t\tfdNumber,\n\t\tdirection,\n\t});\n\tif (targetFd !== undefined) {\n\t\treturn targetFd;\n\t}\n\n\tif (isNodeStream(value, {checkOpen: false})) {\n\t\tthrow new TypeError(`The \\`${optionName}: Stream\\` option cannot both be an array and include a stream with synchronous methods.`);\n\t}\n\n\treturn stdioItem;\n};\n\nconst getTargetFd = ({value, optionName, fdNumber, direction}) => {\n\tconst targetFdNumber = getTargetFdNumber(value, fdNumber);\n\tif (targetFdNumber === undefined) {\n\t\treturn;\n\t}\n\n\tif (direction === 'output') {\n\t\treturn {type: 'fileNumber', value: targetFdNumber, optionName};\n\t}\n\n\tif (tty.isatty(targetFdNumber)) {\n\t\tthrow new TypeError(`The \\`${optionName}: ${serializeOptionValue(value)}\\` option is invalid: it cannot be a TTY with synchronous methods.`);\n\t}\n\n\treturn {type: 'uint8Array', value: bufferToUint8Array(readFileSync(targetFdNumber)), optionName};\n};\n\nconst getTargetFdNumber = (value, fdNumber) => {\n\tif (value === 'inherit') {\n\t\treturn fdNumber;\n\t}\n\n\tif (typeof value === 'number') {\n\t\treturn value;\n\t}\n\n\tconst standardStreamIndex = STANDARD_STREAMS.indexOf(value);\n\tif (standardStreamIndex !== -1) {\n\t\treturn standardStreamIndex;\n\t}\n};\n\nconst handleNativeStreamAsync = ({stdioItem, stdioItem: {value, optionName}, fdNumber}) => {\n\tif (value === 'inherit') {\n\t\treturn {type: 'nodeStream', value: getStandardStream(fdNumber, value, optionName), optionName};\n\t}\n\n\tif (typeof value === 'number') {\n\t\treturn {type: 'nodeStream', value: getStandardStream(value, value, optionName), optionName};\n\t}\n\n\tif (isNodeStream(value, {checkOpen: false})) {\n\t\treturn {type: 'nodeStream', value, optionName};\n\t}\n\n\treturn stdioItem;\n};\n\n// Node.js does not allow to easily retrieve file descriptors beyond stdin/stdout/stderr as streams.\n// - `fs.createReadStream()`/`fs.createWriteStream()` with the `fd` option do not work with character devices that use blocking reads/writes (such as interactive TTYs).\n// - Using a TCP `Socket` would work but be rather complex to implement.\n// Since this is an edge case, we simply throw an error message.\n// See https://github.com/sindresorhus/execa/pull/643#discussion_r1435905707\nconst getStandardStream = (fdNumber, value, optionName) => {\n\tconst standardStream = STANDARD_STREAMS[fdNumber];\n\n\tif (standardStream === undefined) {\n\t\tthrow new TypeError(`The \\`${optionName}: ${value}\\` option is invalid: no such standard stream.`);\n\t}\n\n\treturn standardStream;\n};\n","import {isReadableStream} from 'is-stream';\nimport {isUint8Array} from '../utils/uint-array.js';\nimport {isUrl, isFilePathString} from './type.js';\n\n// Append the `stdin` option with the `input` and `inputFile` options\nexport const handleInputOptions = ({input, inputFile}, fdNumber) => fdNumber === 0\n\t? [\n\t\t...handleInputOption(input),\n\t\t...handleInputFileOption(inputFile),\n\t]\n\t: [];\n\nconst handleInputOption = input => input === undefined ? [] : [{\n\ttype: getInputType(input),\n\tvalue: input,\n\toptionName: 'input',\n}];\n\nconst getInputType = input => {\n\tif (isReadableStream(input, {checkOpen: false})) {\n\t\treturn 'nodeStream';\n\t}\n\n\tif (typeof input === 'string') {\n\t\treturn 'string';\n\t}\n\n\tif (isUint8Array(input)) {\n\t\treturn 'uint8Array';\n\t}\n\n\tthrow new Error('The `input` option must be a string, a Uint8Array or a Node.js Readable stream.');\n};\n\nconst handleInputFileOption = inputFile => inputFile === undefined ? [] : [{\n\t...getInputFileType(inputFile),\n\toptionName: 'inputFile',\n}];\n\nconst getInputFileType = inputFile => {\n\tif (isUrl(inputFile)) {\n\t\treturn {type: 'fileUrl', value: inputFile};\n\t}\n\n\tif (isFilePathString(inputFile)) {\n\t\treturn {type: 'filePath', value: {file: inputFile}};\n\t}\n\n\tthrow new Error('The `inputFile` option must be a file path string or a file URL.');\n};\n","import {\n\tSPECIAL_DUPLICATE_TYPES_SYNC,\n\tSPECIAL_DUPLICATE_TYPES,\n\tFORBID_DUPLICATE_TYPES,\n\tTYPE_TO_MESSAGE,\n} from './type.js';\n\n// Duplicates in the same file descriptor is most likely an error.\n// However, this can be useful with generators.\nexport const filterDuplicates = stdioItems => stdioItems.filter((stdioItemOne, indexOne) =>\n\tstdioItems.every((stdioItemTwo, indexTwo) => stdioItemOne.value !== stdioItemTwo.value\n\t\t|| indexOne >= indexTwo\n\t\t|| stdioItemOne.type === 'generator'\n\t\t|| stdioItemOne.type === 'asyncGenerator'));\n\n// Check if two file descriptors are sharing the same target.\n// For example `{stdout: {file: './output.txt'}, stderr: {file: './output.txt'}}`.\nexport const getDuplicateStream = ({stdioItem: {type, value, optionName}, direction, fileDescriptors, isSync}) => {\n\tconst otherStdioItems = getOtherStdioItems(fileDescriptors, type);\n\tif (otherStdioItems.length === 0) {\n\t\treturn;\n\t}\n\n\tif (isSync) {\n\t\tvalidateDuplicateStreamSync({\n\t\t\totherStdioItems,\n\t\t\ttype,\n\t\t\tvalue,\n\t\t\toptionName,\n\t\t\tdirection,\n\t\t});\n\t\treturn;\n\t}\n\n\tif (SPECIAL_DUPLICATE_TYPES.has(type)) {\n\t\treturn getDuplicateStreamInstance({\n\t\t\totherStdioItems,\n\t\t\ttype,\n\t\t\tvalue,\n\t\t\toptionName,\n\t\t\tdirection,\n\t\t});\n\t}\n\n\tif (FORBID_DUPLICATE_TYPES.has(type)) {\n\t\tvalidateDuplicateTransform({\n\t\t\totherStdioItems,\n\t\t\ttype,\n\t\t\tvalue,\n\t\t\toptionName,\n\t\t});\n\t}\n};\n\n// Values shared by multiple file descriptors\nconst getOtherStdioItems = (fileDescriptors, type) => fileDescriptors\n\t.flatMap(({direction, stdioItems}) => stdioItems\n\t\t.filter(stdioItem => stdioItem.type === type)\n\t\t.map((stdioItem => ({...stdioItem, direction}))));\n\n// With `execaSync()`, do not allow setting a file path both in input and output\nconst validateDuplicateStreamSync = ({otherStdioItems, type, value, optionName, direction}) => {\n\tif (SPECIAL_DUPLICATE_TYPES_SYNC.has(type)) {\n\t\tgetDuplicateStreamInstance({\n\t\t\totherStdioItems,\n\t\t\ttype,\n\t\t\tvalue,\n\t\t\toptionName,\n\t\t\tdirection,\n\t\t});\n\t}\n};\n\n// When two file descriptors share the file or stream, we need to re-use the same underlying stream.\n// Otherwise, the stream would be closed twice when piping ends.\n// This is only an issue with output file descriptors.\n// This is not a problem with generator functions since those create a new instance for each file descriptor.\n// We also forbid input and output file descriptors sharing the same file or stream, since that does not make sense.\nconst getDuplicateStreamInstance = ({otherStdioItems, type, value, optionName, direction}) => {\n\tconst duplicateStdioItems = otherStdioItems.filter(stdioItem => hasSameValue(stdioItem, value));\n\tif (duplicateStdioItems.length === 0) {\n\t\treturn;\n\t}\n\n\tconst differentStdioItem = duplicateStdioItems.find(stdioItem => stdioItem.direction !== direction);\n\tthrowOnDuplicateStream(differentStdioItem, optionName, type);\n\n\treturn direction === 'output' ? duplicateStdioItems[0].stream : undefined;\n};\n\nconst hasSameValue = ({type, value}, secondValue) => {\n\tif (type === 'filePath') {\n\t\treturn value.path === secondValue.path;\n\t}\n\n\tif (type === 'fileUrl') {\n\t\treturn value.href === secondValue.href;\n\t}\n\n\treturn value === secondValue;\n};\n\n// We do not allow two file descriptors to share the same Duplex or TransformStream.\n// This is because those are set directly to `subprocess.std*`.\n// For example, this could result in `subprocess.stdout` and `subprocess.stderr` being the same value.\n// This means reading from either would get data from both stdout and stderr.\nconst validateDuplicateTransform = ({otherStdioItems, type, value, optionName}) => {\n\tconst duplicateStdioItem = otherStdioItems.find(({value: {transform}}) => transform === value.transform);\n\tthrowOnDuplicateStream(duplicateStdioItem, optionName, type);\n};\n\nconst throwOnDuplicateStream = (stdioItem, optionName, type) => {\n\tif (stdioItem !== undefined) {\n\t\tthrow new TypeError(`The \\`${stdioItem.optionName}\\` and \\`${optionName}\\` options must not target ${TYPE_TO_MESSAGE[type]} that is the same.`);\n\t}\n};\n","import {getStreamName, isStandardStream} from '../utils/standard-stream.js';\nimport {normalizeTransforms} from '../transform/normalize.js';\nimport {getFdObjectMode} from '../transform/object-mode.js';\nimport {\n\tgetStdioItemType,\n\tisRegularUrl,\n\tisUnknownStdioString,\n\tFILE_TYPES,\n} from './type.js';\nimport {getStreamDirection} from './direction.js';\nimport {normalizeStdioOption} from './stdio-option.js';\nimport {handleNativeStream} from './native.js';\nimport {handleInputOptions} from './input-option.js';\nimport {filterDuplicates, getDuplicateStream} from './duplicate.js';\n\n// Handle `input`, `inputFile`, `stdin`, `stdout` and `stderr` options, before spawning, in async/sync mode\n// They are converted into an array of `fileDescriptors`.\n// Each `fileDescriptor` is normalized, validated and contains all information necessary for further handling.\nexport const handleStdio = (addProperties, options, verboseInfo, isSync) => {\n\tconst stdio = normalizeStdioOption(options, isSync);\n\tconst initialFileDescriptors = stdio.map((stdioOption, fdNumber) => getFileDescriptor({\n\t\tstdioOption,\n\t\tfdNumber,\n\t\toptions,\n\t\tisSync,\n\t}));\n\tconst fileDescriptors = getFinalFileDescriptors({\n\t\tinitialFileDescriptors,\n\t\taddProperties,\n\t\toptions,\n\t\tisSync,\n\t});\n\toptions.stdio = fileDescriptors.map(({stdioItems}) => forwardStdio(stdioItems));\n\treturn fileDescriptors;\n};\n\nconst getFileDescriptor = ({stdioOption, fdNumber, options, isSync}) => {\n\tconst optionName = getStreamName(fdNumber);\n\tconst {stdioItems: initialStdioItems, isStdioArray} = initializeStdioItems({\n\t\tstdioOption,\n\t\tfdNumber,\n\t\toptions,\n\t\toptionName,\n\t});\n\tconst direction = getStreamDirection(initialStdioItems, fdNumber, optionName);\n\tconst stdioItems = initialStdioItems.map(stdioItem => handleNativeStream({\n\t\tstdioItem,\n\t\tisStdioArray,\n\t\tfdNumber,\n\t\tdirection,\n\t\tisSync,\n\t}));\n\tconst normalizedStdioItems = normalizeTransforms(stdioItems, optionName, direction, options);\n\tconst objectMode = getFdObjectMode(normalizedStdioItems, direction);\n\tvalidateFileObjectMode(normalizedStdioItems, objectMode);\n\treturn {direction, objectMode, stdioItems: normalizedStdioItems};\n};\n\n// We make sure passing an array with a single item behaves the same as passing that item without an array.\n// This is what users would expect.\n// For example, `stdout: ['ignore']` behaves the same as `stdout: 'ignore'`.\nconst initializeStdioItems = ({stdioOption, fdNumber, options, optionName}) => {\n\tconst values = Array.isArray(stdioOption) ? stdioOption : [stdioOption];\n\tconst initialStdioItems = [\n\t\t...values.map(value => initializeStdioItem(value, optionName)),\n\t\t...handleInputOptions(options, fdNumber),\n\t];\n\n\tconst stdioItems = filterDuplicates(initialStdioItems);\n\tconst isStdioArray = stdioItems.length > 1;\n\tvalidateStdioArray(stdioItems, isStdioArray, optionName);\n\tvalidateStreams(stdioItems);\n\treturn {stdioItems, isStdioArray};\n};\n\nconst initializeStdioItem = (value, optionName) => ({\n\ttype: getStdioItemType(value, optionName),\n\tvalue,\n\toptionName,\n});\n\nconst validateStdioArray = (stdioItems, isStdioArray, optionName) => {\n\tif (stdioItems.length === 0) {\n\t\tthrow new TypeError(`The \\`${optionName}\\` option must not be an empty array.`);\n\t}\n\n\tif (!isStdioArray) {\n\t\treturn;\n\t}\n\n\tfor (const {value, optionName} of stdioItems) {\n\t\tif (INVALID_STDIO_ARRAY_OPTIONS.has(value)) {\n\t\t\tthrow new Error(`The \\`${optionName}\\` option must not include \\`${value}\\`.`);\n\t\t}\n\t}\n};\n\n// Using those `stdio` values together with others for the same stream does not make sense, so we make it fail.\n// However, we do allow it if the array has a single item.\nconst INVALID_STDIO_ARRAY_OPTIONS = new Set(['ignore', 'ipc']);\n\nconst validateStreams = stdioItems => {\n\tfor (const stdioItem of stdioItems) {\n\t\tvalidateFileStdio(stdioItem);\n\t}\n};\n\nconst validateFileStdio = ({type, value, optionName}) => {\n\tif (isRegularUrl(value)) {\n\t\tthrow new TypeError(`The \\`${optionName}: URL\\` option must use the \\`file:\\` scheme.\nFor example, you can use the \\`pathToFileURL()\\` method of the \\`url\\` core module.`);\n\t}\n\n\tif (isUnknownStdioString(type, value)) {\n\t\tthrow new TypeError(`The \\`${optionName}: { file: '...' }\\` option must be used instead of \\`${optionName}: '...'\\`.`);\n\t}\n};\n\nconst validateFileObjectMode = (stdioItems, objectMode) => {\n\tif (!objectMode) {\n\t\treturn;\n\t}\n\n\tconst fileStdioItem = stdioItems.find(({type}) => FILE_TYPES.has(type));\n\tif (fileStdioItem !== undefined) {\n\t\tthrow new TypeError(`The \\`${fileStdioItem.optionName}\\` option cannot use both files and transforms in objectMode.`);\n\t}\n};\n\n// Some `stdio` values require Execa to create streams.\n// For example, file paths create file read/write streams.\n// Those transformations are specified in `addProperties`, which is both direction-specific and type-specific.\nconst getFinalFileDescriptors = ({initialFileDescriptors, addProperties, options, isSync}) => {\n\tconst fileDescriptors = [];\n\n\ttry {\n\t\tfor (const fileDescriptor of initialFileDescriptors) {\n\t\t\tfileDescriptors.push(getFinalFileDescriptor({\n\t\t\t\tfileDescriptor,\n\t\t\t\tfileDescriptors,\n\t\t\t\taddProperties,\n\t\t\t\toptions,\n\t\t\t\tisSync,\n\t\t\t}));\n\t\t}\n\n\t\treturn fileDescriptors;\n\t} catch (error) {\n\t\tcleanupCustomStreams(fileDescriptors);\n\t\tthrow error;\n\t}\n};\n\nconst getFinalFileDescriptor = ({\n\tfileDescriptor: {direction, objectMode, stdioItems},\n\tfileDescriptors,\n\taddProperties,\n\toptions,\n\tisSync,\n}) => {\n\tconst finalStdioItems = stdioItems.map(stdioItem => addStreamProperties({\n\t\tstdioItem,\n\t\taddProperties,\n\t\tdirection,\n\t\toptions,\n\t\tfileDescriptors,\n\t\tisSync,\n\t}));\n\treturn {direction, objectMode, stdioItems: finalStdioItems};\n};\n\nconst addStreamProperties = ({stdioItem, addProperties, direction, options, fileDescriptors, isSync}) => {\n\tconst duplicateStream = getDuplicateStream({\n\t\tstdioItem,\n\t\tdirection,\n\t\tfileDescriptors,\n\t\tisSync,\n\t});\n\n\tif (duplicateStream !== undefined) {\n\t\treturn {...stdioItem, stream: duplicateStream};\n\t}\n\n\treturn {\n\t\t...stdioItem,\n\t\t...addProperties[direction][stdioItem.type](stdioItem, options),\n\t};\n};\n\n// The stream error handling is performed by the piping logic above, which cannot be performed before subprocess spawning.\n// If the subprocess spawning fails (e.g. due to an invalid command), the streams need to be manually destroyed.\n// We need to create those streams before subprocess spawning, in case their creation fails, e.g. when passing an invalid generator as argument.\n// Like this, an exception would be thrown, which would prevent spawning a subprocess.\nexport const cleanupCustomStreams = fileDescriptors => {\n\tfor (const {stdioItems} of fileDescriptors) {\n\t\tfor (const {stream} of stdioItems) {\n\t\t\tif (stream !== undefined && !isStandardStream(stream)) {\n\t\t\t\tstream.destroy();\n\t\t\t}\n\t\t}\n\t}\n};\n\n// When the `std*: Iterable | WebStream | URL | filePath`, `input` or `inputFile` option is used, we pipe to `subprocess.std*`.\n// When the `std*: Array` option is used, we emulate some of the native values ('inherit', Node.js stream and file descriptor integer). To do so, we also need to pipe to `subprocess.std*`.\n// Therefore the `std*` options must be either `pipe` or `overlapped`. Other values do not set `subprocess.std*`.\nconst forwardStdio = stdioItems => {\n\tif (stdioItems.length > 1) {\n\t\treturn stdioItems.some(({value}) => value === 'overlapped') ? 'overlapped' : 'pipe';\n\t}\n\n\tconst [{type, value}] = stdioItems;\n\treturn type === 'native' ? value : 'pipe';\n};\n","import {readFileSync} from 'node:fs';\nimport {bufferToUint8Array} from '../utils/uint-array.js';\nimport {handleStdio} from './handle.js';\nimport {TYPE_TO_MESSAGE} from './type.js';\n\n// Normalize `input`, `inputFile`, `stdin`, `stdout` and `stderr` options, before spawning, in sync mode\nexport const handleStdioSync = (options, verboseInfo) => handleStdio(addPropertiesSync, options, verboseInfo, true);\n\nconst forbiddenIfSync = ({type, optionName}) => {\n\tthrowInvalidSyncValue(optionName, TYPE_TO_MESSAGE[type]);\n};\n\nconst forbiddenNativeIfSync = ({optionName, value}) => {\n\tif (value === 'ipc' || value === 'overlapped') {\n\t\tthrowInvalidSyncValue(optionName, `\"${value}\"`);\n\t}\n\n\treturn {};\n};\n\nconst throwInvalidSyncValue = (optionName, value) => {\n\tthrow new TypeError(`The \\`${optionName}\\` option cannot be ${value} with synchronous methods.`);\n};\n\n// Create streams used internally for redirecting when using specific values for the `std*` options, in sync mode.\n// For example, `stdin: {file}` reads the file synchronously, then passes it as the `input` option.\nconst addProperties = {\n\tgenerator() {},\n\tasyncGenerator: forbiddenIfSync,\n\twebStream: forbiddenIfSync,\n\tnodeStream: forbiddenIfSync,\n\twebTransform: forbiddenIfSync,\n\tduplex: forbiddenIfSync,\n\tasyncIterable: forbiddenIfSync,\n\tnative: forbiddenNativeIfSync,\n};\n\nconst addPropertiesSync = {\n\tinput: {\n\t\t...addProperties,\n\t\tfileUrl: ({value}) => ({contents: [bufferToUint8Array(readFileSync(value))]}),\n\t\tfilePath: ({value: {file}}) => ({contents: [bufferToUint8Array(readFileSync(file))]}),\n\t\tfileNumber: forbiddenIfSync,\n\t\titerable: ({value}) => ({contents: [...value]}),\n\t\tstring: ({value}) => ({contents: [value]}),\n\t\tuint8Array: ({value}) => ({contents: [value]}),\n\t},\n\toutput: {\n\t\t...addProperties,\n\t\tfileUrl: ({value}) => ({path: value}),\n\t\tfilePath: ({value: {file}}) => ({path: file}),\n\t\tfileNumber: ({value}) => ({path: value}),\n\t\titerable: forbiddenIfSync,\n\t\tstring: forbiddenIfSync,\n\t\tuint8Array: forbiddenIfSync,\n\t},\n};\n","import stripFinalNewlineFunction from 'strip-final-newline';\n\n// Apply `stripFinalNewline` option, which applies to `result.stdout|stderr|all|stdio[*]`.\n// If the `lines` option is used, it is applied on each line, but using a different function.\nexport const stripNewline = (value, {stripFinalNewline}, fdNumber) => getStripFinalNewline(stripFinalNewline, fdNumber) && value !== undefined && !Array.isArray(value)\n\t? stripFinalNewlineFunction(value)\n\t: value;\n\n// Retrieve `stripFinalNewline` option value, including with `subprocess.all`\nexport const getStripFinalNewline = (stripFinalNewline, fdNumber) => fdNumber === 'all'\n\t? stripFinalNewline[1] || stripFinalNewline[2]\n\t: stripFinalNewline[fdNumber];\n","// Split chunks line-wise for generators passed to the `std*` options\nexport const getSplitLinesGenerator = (binary, preserveNewlines, skipped, state) => binary || skipped\n\t? undefined\n\t: initializeSplitLines(preserveNewlines, state);\n\n// Same but for synchronous methods\nexport const splitLinesSync = (chunk, preserveNewlines, objectMode) => objectMode\n\t? chunk.flatMap(item => splitLinesItemSync(item, preserveNewlines))\n\t: splitLinesItemSync(chunk, preserveNewlines);\n\nconst splitLinesItemSync = (chunk, preserveNewlines) => {\n\tconst {transform, final} = initializeSplitLines(preserveNewlines, {});\n\treturn [...transform(chunk), ...final()];\n};\n\nconst initializeSplitLines = (preserveNewlines, state) => {\n\tstate.previousChunks = '';\n\treturn {\n\t\ttransform: splitGenerator.bind(undefined, state, preserveNewlines),\n\t\tfinal: linesFinal.bind(undefined, state),\n\t};\n};\n\n// This imperative logic is much faster than using `String.split()` and uses very low memory.\nconst splitGenerator = function * (state, preserveNewlines, chunk) {\n\tif (typeof chunk !== 'string') {\n\t\tyield chunk;\n\t\treturn;\n\t}\n\n\tlet {previousChunks} = state;\n\tlet start = -1;\n\n\tfor (let end = 0; end < chunk.length; end += 1) {\n\t\tif (chunk[end] === '\\n') {\n\t\t\tconst newlineLength = getNewlineLength(chunk, end, preserveNewlines, state);\n\t\t\tlet line = chunk.slice(start + 1, end + 1 - newlineLength);\n\n\t\t\tif (previousChunks.length > 0) {\n\t\t\t\tline = concatString(previousChunks, line);\n\t\t\t\tpreviousChunks = '';\n\t\t\t}\n\n\t\t\tyield line;\n\t\t\tstart = end;\n\t\t}\n\t}\n\n\tif (start !== chunk.length - 1) {\n\t\tpreviousChunks = concatString(previousChunks, chunk.slice(start + 1));\n\t}\n\n\tstate.previousChunks = previousChunks;\n};\n\nconst getNewlineLength = (chunk, end, preserveNewlines, state) => {\n\tif (preserveNewlines) {\n\t\treturn 0;\n\t}\n\n\tstate.isWindowsNewline = end !== 0 && chunk[end - 1] === '\\r';\n\treturn state.isWindowsNewline ? 2 : 1;\n};\n\nconst linesFinal = function * ({previousChunks}) {\n\tif (previousChunks.length > 0) {\n\t\tyield previousChunks;\n\t}\n};\n\n// Unless `preserveNewlines: true` is used, we strip the newline of each line.\n// This re-adds them after the user `transform` code has run.\nexport const getAppendNewlineGenerator = ({binary, preserveNewlines, readableObjectMode, state}) => binary || preserveNewlines || readableObjectMode\n\t? undefined\n\t: {transform: appendNewlineGenerator.bind(undefined, state)};\n\nconst appendNewlineGenerator = function * ({isWindowsNewline = false}, chunk) {\n\tconst {unixNewline, windowsNewline, LF, concatBytes} = typeof chunk === 'string' ? linesStringInfo : linesUint8ArrayInfo;\n\n\tif (chunk.at(-1) === LF) {\n\t\tyield chunk;\n\t\treturn;\n\t}\n\n\tconst newline = isWindowsNewline ? windowsNewline : unixNewline;\n\tyield concatBytes(chunk, newline);\n};\n\nconst concatString = (firstChunk, secondChunk) => `${firstChunk}${secondChunk}`;\n\nconst linesStringInfo = {\n\twindowsNewline: '\\r\\n',\n\tunixNewline: '\\n',\n\tLF: '\\n',\n\tconcatBytes: concatString,\n};\n\nconst concatUint8Array = (firstChunk, secondChunk) => {\n\tconst chunk = new Uint8Array(firstChunk.length + secondChunk.length);\n\tchunk.set(firstChunk, 0);\n\tchunk.set(secondChunk, firstChunk.length);\n\treturn chunk;\n};\n\nconst linesUint8ArrayInfo = {\n\twindowsNewline: new Uint8Array([0x0D, 0x0A]),\n\tunixNewline: new Uint8Array([0x0A]),\n\tLF: 0x0A,\n\tconcatBytes: concatUint8Array,\n};\n","import {Buffer} from 'node:buffer';\nimport {isUint8Array} from '../utils/uint-array.js';\n\n// Validate the type of chunk argument passed to transform generators\nexport const getValidateTransformInput = (writableObjectMode, optionName) => writableObjectMode\n\t? undefined\n\t: validateStringTransformInput.bind(undefined, optionName);\n\nconst validateStringTransformInput = function * (optionName, chunk) {\n\tif (typeof chunk !== 'string' && !isUint8Array(chunk) && !Buffer.isBuffer(chunk)) {\n\t\tthrow new TypeError(`The \\`${optionName}\\` option's transform must use \"objectMode: true\" to receive as input: ${typeof chunk}.`);\n\t}\n\n\tyield chunk;\n};\n\n// Validate the type of the value returned by transform generators\nexport const getValidateTransformReturn = (readableObjectMode, optionName) => readableObjectMode\n\t? validateObjectTransformReturn.bind(undefined, optionName)\n\t: validateStringTransformReturn.bind(undefined, optionName);\n\nconst validateObjectTransformReturn = function * (optionName, chunk) {\n\tvalidateEmptyReturn(optionName, chunk);\n\tyield chunk;\n};\n\nconst validateStringTransformReturn = function * (optionName, chunk) {\n\tvalidateEmptyReturn(optionName, chunk);\n\n\tif (typeof chunk !== 'string' && !isUint8Array(chunk)) {\n\t\tthrow new TypeError(`The \\`${optionName}\\` option's function must yield a string or an Uint8Array, not ${typeof chunk}.`);\n\t}\n\n\tyield chunk;\n};\n\nconst validateEmptyReturn = (optionName, chunk) => {\n\tif (chunk === null || chunk === undefined) {\n\t\tthrow new TypeError(`The \\`${optionName}\\` option's function must not call \\`yield ${chunk}\\`.\nInstead, \\`yield\\` should either be called with a value, or not be called at all. For example:\n if (condition) { yield value; }`);\n\t}\n};\n","import {Buffer} from 'node:buffer';\nimport {StringDecoder} from 'node:string_decoder';\nimport {isUint8Array, bufferToUint8Array} from '../utils/uint-array.js';\n\n/*\nWhen using binary encodings, add an internal generator that converts chunks from `Buffer` to `string` or `Uint8Array`.\nChunks might be Buffer, Uint8Array or strings since:\n- `subprocess.stdout|stderr` emits Buffers\n- `subprocess.stdin.write()` accepts Buffer, Uint8Array or string\n- Previous generators might return Uint8Array or string\n\nHowever, those are converted to Buffer:\n- on writes: `Duplex.writable` `decodeStrings: true` default option\n- on reads: `Duplex.readable` `readableEncoding: null` default option\n*/\nexport const getEncodingTransformGenerator = (binary, encoding, skipped) => {\n\tif (skipped) {\n\t\treturn;\n\t}\n\n\tif (binary) {\n\t\treturn {transform: encodingUint8ArrayGenerator.bind(undefined, new TextEncoder())};\n\t}\n\n\tconst stringDecoder = new StringDecoder(encoding);\n\treturn {\n\t\ttransform: encodingStringGenerator.bind(undefined, stringDecoder),\n\t\tfinal: encodingStringFinal.bind(undefined, stringDecoder),\n\t};\n};\n\nconst encodingUint8ArrayGenerator = function * (textEncoder, chunk) {\n\tif (Buffer.isBuffer(chunk)) {\n\t\tyield bufferToUint8Array(chunk);\n\t} else if (typeof chunk === 'string') {\n\t\tyield textEncoder.encode(chunk);\n\t} else {\n\t\tyield chunk;\n\t}\n};\n\nconst encodingStringGenerator = function * (stringDecoder, chunk) {\n\tyield isUint8Array(chunk) ? stringDecoder.write(chunk) : chunk;\n};\n\nconst encodingStringFinal = function * (stringDecoder) {\n\tconst lastChunk = stringDecoder.end();\n\tif (lastChunk !== '') {\n\t\tyield lastChunk;\n\t}\n};\n","import {callbackify} from 'node:util';\n\n// Applies a series of generator functions asynchronously\nexport const pushChunks = callbackify(async (getChunks, state, getChunksArguments, transformStream) => {\n\tstate.currentIterable = getChunks(...getChunksArguments);\n\n\ttry {\n\t\tfor await (const chunk of state.currentIterable) {\n\t\t\ttransformStream.push(chunk);\n\t\t}\n\t} finally {\n\t\tdelete state.currentIterable;\n\t}\n});\n\n// For each new chunk, apply each `transform()` method\nexport const transformChunk = async function * (chunk, generators, index) {\n\tif (index === generators.length) {\n\t\tyield chunk;\n\t\treturn;\n\t}\n\n\tconst {transform = identityGenerator} = generators[index];\n\tfor await (const transformedChunk of transform(chunk)) {\n\t\tyield * transformChunk(transformedChunk, generators, index + 1);\n\t}\n};\n\n// At the end, apply each `final()` method, followed by the `transform()` method of the next transforms\nexport const finalChunks = async function * (generators) {\n\tfor (const [index, {final}] of Object.entries(generators)) {\n\t\tyield * generatorFinalChunks(final, Number(index), generators);\n\t}\n};\n\nconst generatorFinalChunks = async function * (final, index, generators) {\n\tif (final === undefined) {\n\t\treturn;\n\t}\n\n\tfor await (const finalChunk of final()) {\n\t\tyield * transformChunk(finalChunk, generators, index + 1);\n\t}\n};\n\n// Cancel any ongoing async generator when the Transform is destroyed, e.g. when the subprocess errors\nexport const destroyTransform = callbackify(async ({currentIterable}, error) => {\n\tif (currentIterable !== undefined) {\n\t\tawait (error ? currentIterable.throw(error) : currentIterable.return());\n\t\treturn;\n\t}\n\n\tif (error) {\n\t\tthrow error;\n\t}\n});\n\nconst identityGenerator = function * (chunk) {\n\tyield chunk;\n};\n","// Duplicate the code from `run-async.js` but as synchronous functions\nexport const pushChunksSync = (getChunksSync, getChunksArguments, transformStream, done) => {\n\ttry {\n\t\tfor (const chunk of getChunksSync(...getChunksArguments)) {\n\t\t\ttransformStream.push(chunk);\n\t\t}\n\n\t\tdone();\n\t} catch (error) {\n\t\tdone(error);\n\t}\n};\n\n// Run synchronous generators with `execaSync()`\nexport const runTransformSync = (generators, chunks) => [\n\t...chunks.flatMap(chunk => [...transformChunkSync(chunk, generators, 0)]),\n\t...finalChunksSync(generators),\n];\n\nexport const transformChunkSync = function * (chunk, generators, index) {\n\tif (index === generators.length) {\n\t\tyield chunk;\n\t\treturn;\n\t}\n\n\tconst {transform = identityGenerator} = generators[index];\n\tfor (const transformedChunk of transform(chunk)) {\n\t\tyield * transformChunkSync(transformedChunk, generators, index + 1);\n\t}\n};\n\nexport const finalChunksSync = function * (generators) {\n\tfor (const [index, {final}] of Object.entries(generators)) {\n\t\tyield * generatorFinalChunksSync(final, Number(index), generators);\n\t}\n};\n\nconst generatorFinalChunksSync = function * (final, index, generators) {\n\tif (final === undefined) {\n\t\treturn;\n\t}\n\n\tfor (const finalChunk of final()) {\n\t\tyield * transformChunkSync(finalChunk, generators, index + 1);\n\t}\n};\n\nconst identityGenerator = function * (chunk) {\n\tyield chunk;\n};\n","import {Transform, getDefaultHighWaterMark} from 'node:stream';\nimport {isAsyncGenerator} from '../stdio/type.js';\nimport {getSplitLinesGenerator, getAppendNewlineGenerator} from './split.js';\nimport {getValidateTransformInput, getValidateTransformReturn} from './validate.js';\nimport {getEncodingTransformGenerator} from './encoding-transform.js';\nimport {\n\tpushChunks,\n\ttransformChunk,\n\tfinalChunks,\n\tdestroyTransform,\n} from './run-async.js';\nimport {\n\tpushChunksSync,\n\ttransformChunkSync,\n\tfinalChunksSync,\n\trunTransformSync,\n} from './run-sync.js';\n\n/*\nGenerators can be used to transform/filter standard streams.\n\nGenerators have a simple syntax, yet allows all of the following:\n- Sharing `state` between chunks\n- Flushing logic, by using a `final` function\n- Asynchronous logic\n- Emitting multiple chunks from a single source chunk, even if spaced in time, by using multiple `yield`\n- Filtering, by using no `yield`\n\nTherefore, there is no need to allow Node.js or web transform streams.\n\nThe `highWaterMark` is kept as the default value, since this is what `subprocess.std*` uses.\n\nChunks are currently processed serially. We could add a `concurrency` option to parallelize in the future.\n\nTransform an array of generator functions into a `Transform` stream.\n`Duplex.from(generator)` cannot be used because it does not allow setting the `objectMode` and `highWaterMark`.\n*/\nexport const generatorToStream = ({\n\tvalue,\n\tvalue: {transform, final, writableObjectMode, readableObjectMode},\n\toptionName,\n}, {encoding}) => {\n\tconst state = {};\n\tconst generators = addInternalGenerators(value, encoding, optionName);\n\n\tconst transformAsync = isAsyncGenerator(transform);\n\tconst finalAsync = isAsyncGenerator(final);\n\tconst transformMethod = transformAsync\n\t\t? pushChunks.bind(undefined, transformChunk, state)\n\t\t: pushChunksSync.bind(undefined, transformChunkSync);\n\tconst finalMethod = transformAsync || finalAsync\n\t\t? pushChunks.bind(undefined, finalChunks, state)\n\t\t: pushChunksSync.bind(undefined, finalChunksSync);\n\tconst destroyMethod = transformAsync || finalAsync\n\t\t? destroyTransform.bind(undefined, state)\n\t\t: undefined;\n\n\tconst stream = new Transform({\n\t\twritableObjectMode,\n\t\twritableHighWaterMark: getDefaultHighWaterMark(writableObjectMode),\n\t\treadableObjectMode,\n\t\treadableHighWaterMark: getDefaultHighWaterMark(readableObjectMode),\n\t\ttransform(chunk, encoding, done) {\n\t\t\ttransformMethod([chunk, generators, 0], this, done);\n\t\t},\n\t\tflush(done) {\n\t\t\tfinalMethod([generators], this, done);\n\t\t},\n\t\tdestroy: destroyMethod,\n\t});\n\treturn {stream};\n};\n\n// Applies transform generators in sync mode\nexport const runGeneratorsSync = (chunks, stdioItems, encoding, isInput) => {\n\tconst generators = stdioItems.filter(({type}) => type === 'generator');\n\tconst reversedGenerators = isInput ? generators.reverse() : generators;\n\n\tfor (const {value, optionName} of reversedGenerators) {\n\t\tconst generators = addInternalGenerators(value, encoding, optionName);\n\t\tchunks = runTransformSync(generators, chunks);\n\t}\n\n\treturn chunks;\n};\n\n// Generators used internally to convert the chunk type, validate it, and split into lines\nconst addInternalGenerators = (\n\t{transform, final, binary, writableObjectMode, readableObjectMode, preserveNewlines},\n\tencoding,\n\toptionName,\n) => {\n\tconst state = {};\n\treturn [\n\t\t{transform: getValidateTransformInput(writableObjectMode, optionName)},\n\t\tgetEncodingTransformGenerator(binary, encoding, writableObjectMode),\n\t\tgetSplitLinesGenerator(binary, preserveNewlines, writableObjectMode, state),\n\t\t{transform, final},\n\t\t{transform: getValidateTransformReturn(readableObjectMode, optionName)},\n\t\tgetAppendNewlineGenerator({\n\t\t\tbinary,\n\t\t\tpreserveNewlines,\n\t\t\treadableObjectMode,\n\t\t\tstate,\n\t\t}),\n\t].filter(Boolean);\n};\n","import {runGeneratorsSync} from '../transform/generator.js';\nimport {joinToUint8Array, isUint8Array} from '../utils/uint-array.js';\nimport {TYPE_TO_MESSAGE} from '../stdio/type.js';\n\n// Apply `stdin`/`input`/`inputFile` options, before spawning, in sync mode, by converting it to the `input` option\nexport const addInputOptionsSync = (fileDescriptors, options) => {\n\tfor (const fdNumber of getInputFdNumbers(fileDescriptors)) {\n\t\taddInputOptionSync(fileDescriptors, fdNumber, options);\n\t}\n};\n\nconst getInputFdNumbers = fileDescriptors => new Set(Object.entries(fileDescriptors)\n\t.filter(([, {direction}]) => direction === 'input')\n\t.map(([fdNumber]) => Number(fdNumber)));\n\nconst addInputOptionSync = (fileDescriptors, fdNumber, options) => {\n\tconst {stdioItems} = fileDescriptors[fdNumber];\n\tconst allStdioItems = stdioItems.filter(({contents}) => contents !== undefined);\n\tif (allStdioItems.length === 0) {\n\t\treturn;\n\t}\n\n\tif (fdNumber !== 0) {\n\t\tconst [{type, optionName}] = allStdioItems;\n\t\tthrow new TypeError(`Only the \\`stdin\\` option, not \\`${optionName}\\`, can be ${TYPE_TO_MESSAGE[type]} with synchronous methods.`);\n\t}\n\n\tconst allContents = allStdioItems.map(({contents}) => contents);\n\tconst transformedContents = allContents.map(contents => applySingleInputGeneratorsSync(contents, stdioItems));\n\toptions.input = joinToUint8Array(transformedContents);\n};\n\nconst applySingleInputGeneratorsSync = (contents, stdioItems) => {\n\tconst newContents = runGeneratorsSync(contents, stdioItems, 'utf8', true);\n\tvalidateSerializable(newContents);\n\treturn joinToUint8Array(newContents);\n};\n\nconst validateSerializable = newContents => {\n\tconst invalidItem = newContents.find(item => typeof item !== 'string' && !isUint8Array(item));\n\tif (invalidItem !== undefined) {\n\t\tthrow new TypeError(`The \\`stdin\\` option is invalid: when passing objects as input, a transform must be used to serialize them to strings or Uint8Arrays: ${invalidItem}.`);\n\t}\n};\n","import {inspect} from 'node:util';\nimport {escapeLines} from '../arguments/escape.js';\nimport {BINARY_ENCODINGS} from '../arguments/encoding-option.js';\nimport {TRANSFORM_TYPES} from '../stdio/type.js';\nimport {verboseLog} from './log.js';\n\n// `ignore` opts-out of `verbose` for a specific stream.\n// `ipc` cannot use piping.\n// `inherit` would result in double printing.\n// They can also lead to double printing when passing file descriptor integers or `process.std*`.\n// This only leaves with `pipe` and `overlapped`.\nexport const shouldLogOutput = ({stdioItems, encoding, verboseInfo: {verbose}, fdNumber}) => fdNumber !== 'all'\n\t&& verbose[fdNumber] === 'full'\n\t&& !BINARY_ENCODINGS.has(encoding)\n\t&& fdUsesVerbose(fdNumber)\n\t&& (stdioItems.some(({type, value}) => type === 'native' && PIPED_STDIO_VALUES.has(value))\n\t|| stdioItems.every(({type}) => TRANSFORM_TYPES.has(type)));\n\n// Printing input streams would be confusing.\n// Files and streams can produce big outputs, which we don't want to print.\n// We could print `stdio[3+]` but it often is redirected to files and streams, with the same issue.\n// So we only print stdout and stderr.\nconst fdUsesVerbose = fdNumber => fdNumber === 1 || fdNumber === 2;\n\nconst PIPED_STDIO_VALUES = new Set(['pipe', 'overlapped']);\n\n// `verbose` printing logic with async methods\nexport const logLines = async (linesIterable, stream, verboseInfo) => {\n\tfor await (const line of linesIterable) {\n\t\tif (!isPipingStream(stream)) {\n\t\t\tlogLine(line, verboseInfo);\n\t\t}\n\t}\n};\n\n// `verbose` printing logic with sync methods\nexport const logLinesSync = (linesArray, verboseInfo) => {\n\tfor (const line of linesArray) {\n\t\tlogLine(line, verboseInfo);\n\t}\n};\n\n// When `subprocess.stdout|stderr.pipe()` is called, `verbose` becomes a noop.\n// This prevents the following problems:\n// - `.pipe()` achieves the same result as using `stdout: 'inherit'`, `stdout: stream`, etc. which also make `verbose` a noop.\n// For example, `subprocess.stdout.pipe(process.stdin)` would print each line twice.\n// - When chaining subprocesses with `subprocess.pipe(otherSubprocess)`, only the last one should print its output.\n// Detecting whether `.pipe()` is impossible without monkey-patching it, so we use the following undocumented property.\n// This is not a critical behavior since changes of the following property would only make `verbose` more verbose.\nconst isPipingStream = stream => stream._readableState.pipes.length > 0;\n\n// When `verbose` is `full`, print stdout|stderr\nconst logLine = (line, {verboseId}) => {\n\tconst lines = typeof line === 'string' ? line : inspect(line);\n\tconst escapedLines = escapeLines(lines);\n\tconst spacedLines = escapedLines.replaceAll('\\t', ' '.repeat(TAB_SIZE));\n\tverboseLog(spacedLines, verboseId, 'output');\n};\n\n// Same as `util.inspect()`\nconst TAB_SIZE = 2;\n","import {writeFileSync, appendFileSync} from 'node:fs';\nimport {shouldLogOutput, logLinesSync} from '../verbose/output.js';\nimport {runGeneratorsSync} from '../transform/generator.js';\nimport {splitLinesSync} from '../transform/split.js';\nimport {joinToString, joinToUint8Array, bufferToUint8Array} from '../utils/uint-array.js';\nimport {FILE_TYPES} from '../stdio/type.js';\nimport {truncateMaxBufferSync} from './max-buffer.js';\n\n// Apply `stdout`/`stderr` options, after spawning, in sync mode\nexport const transformOutputSync = ({fileDescriptors, syncResult: {output}, options, isMaxBuffer, verboseInfo}) => {\n\tif (output === null) {\n\t\treturn {output: Array.from({length: 3})};\n\t}\n\n\tconst state = {};\n\tconst outputFiles = new Set([]);\n\tconst transformedOutput = output.map((result, fdNumber) =>\n\t\ttransformOutputResultSync({\n\t\t\tresult,\n\t\t\tfileDescriptors,\n\t\t\tfdNumber,\n\t\t\tstate,\n\t\t\toutputFiles,\n\t\t\tisMaxBuffer,\n\t\t\tverboseInfo,\n\t\t}, options));\n\treturn {output: transformedOutput, ...state};\n};\n\nconst transformOutputResultSync = (\n\t{result, fileDescriptors, fdNumber, state, outputFiles, isMaxBuffer, verboseInfo},\n\t{buffer, encoding, lines, stripFinalNewline, maxBuffer},\n) => {\n\tif (result === null) {\n\t\treturn;\n\t}\n\n\tconst truncatedResult = truncateMaxBufferSync(result, isMaxBuffer, maxBuffer);\n\tconst uint8ArrayResult = bufferToUint8Array(truncatedResult);\n\tconst {stdioItems, objectMode} = fileDescriptors[fdNumber];\n\tconst chunks = runOutputGeneratorsSync([uint8ArrayResult], stdioItems, encoding, state);\n\tconst {serializedResult, finalResult = serializedResult} = serializeChunks({\n\t\tchunks,\n\t\tobjectMode,\n\t\tencoding,\n\t\tlines,\n\t\tstripFinalNewline,\n\t\tfdNumber,\n\t});\n\n\tif (shouldLogOutput({\n\t\tstdioItems,\n\t\tencoding,\n\t\tverboseInfo,\n\t\tfdNumber,\n\t})) {\n\t\tconst linesArray = splitLinesSync(serializedResult, false, objectMode);\n\t\tlogLinesSync(linesArray, verboseInfo);\n\t}\n\n\tconst returnedResult = buffer[fdNumber] ? finalResult : undefined;\n\n\ttry {\n\t\tif (state.error === undefined) {\n\t\t\twriteToFiles(serializedResult, stdioItems, outputFiles);\n\t\t}\n\n\t\treturn returnedResult;\n\t} catch (error) {\n\t\tstate.error = error;\n\t\treturn returnedResult;\n\t}\n};\n\n// Applies transform generators to `stdout`/`stderr`\nconst runOutputGeneratorsSync = (chunks, stdioItems, encoding, state) => {\n\ttry {\n\t\treturn runGeneratorsSync(chunks, stdioItems, encoding, false);\n\t} catch (error) {\n\t\tstate.error = error;\n\t\treturn chunks;\n\t}\n};\n\n// The contents is converted to three stages:\n// - serializedResult: used when the target is a file path/URL or a file descriptor (including 'inherit')\n// - finalResult/returnedResult: returned as `result.std*`\nconst serializeChunks = ({chunks, objectMode, encoding, lines, stripFinalNewline, fdNumber}) => {\n\tif (objectMode) {\n\t\treturn {serializedResult: chunks};\n\t}\n\n\tif (encoding === 'buffer') {\n\t\treturn {serializedResult: joinToUint8Array(chunks)};\n\t}\n\n\tconst serializedResult = joinToString(chunks, encoding);\n\tif (lines[fdNumber]) {\n\t\treturn {serializedResult, finalResult: splitLinesSync(serializedResult, !stripFinalNewline[fdNumber], objectMode)};\n\t}\n\n\treturn {serializedResult};\n};\n\n// When the `std*` target is a file path/URL or a file descriptor\nconst writeToFiles = (serializedResult, stdioItems, outputFiles) => {\n\tfor (const {path} of stdioItems.filter(({type}) => FILE_TYPES.has(type))) {\n\t\tconst pathString = typeof path === 'string' ? path : path.toString();\n\t\tif (outputFiles.has(pathString)) {\n\t\t\tappendFileSync(path, serializedResult);\n\t\t} else {\n\t\t\toutputFiles.add(pathString);\n\t\t\twriteFileSync(path, serializedResult);\n\t\t}\n\t}\n};\n","import {once} from 'node:events';\nimport {DiscardedError} from '../return/final-error.js';\n\n// If `error` is emitted before `spawn`, `exit` will never be emitted.\n// However, `error` might be emitted after `spawn`, e.g. with the `cancelSignal` option.\n// In that case, `exit` will still be emitted.\n// Since the `exit` event contains the signal name, we want to make sure we are listening for it.\n// This function also takes into account the following unlikely cases:\n// - `exit` being emitted in the same microtask as `spawn`\n// - `error` being emitted multiple times\nexport const waitForExit = async subprocess => {\n\tconst [spawnPayload, exitPayload] = await Promise.allSettled([\n\t\tonce(subprocess, 'spawn'),\n\t\tonce(subprocess, 'exit'),\n\t]);\n\n\tif (spawnPayload.status === 'rejected') {\n\t\treturn [];\n\t}\n\n\treturn exitPayload.status === 'rejected'\n\t\t? waitForSubprocessExit(subprocess)\n\t\t: exitPayload.value;\n};\n\nconst waitForSubprocessExit = async subprocess => {\n\ttry {\n\t\treturn await once(subprocess, 'exit');\n\t} catch {\n\t\treturn waitForSubprocessExit(subprocess);\n\t}\n};\n\n// Retrieve the final exit code and|or signal name\nexport const waitForSuccessfulExit = async exitPromise => {\n\tconst [exitCode, signal] = await exitPromise;\n\n\tif (!isSubprocessErrorExit(exitCode, signal) && isFailedExit(exitCode, signal)) {\n\t\tthrow new DiscardedError();\n\t}\n\n\treturn [exitCode, signal];\n};\n\n// When the subprocess fails due to an `error` event\nconst isSubprocessErrorExit = (exitCode, signal) => exitCode === undefined && signal === undefined;\n// When the subprocess fails due to a non-0 exit code or to a signal termination\nexport const isFailedExit = (exitCode, signal) => exitCode !== 0 || signal !== null;\n","import {DiscardedError} from '../return/final-error.js';\nimport {isMaxBufferSync} from '../io/max-buffer.js';\nimport {isFailedExit} from './exit-async.js';\n\n// Retrieve exit code, signal name and error information, with synchronous methods\nexport const getExitResultSync = ({error, status: exitCode, signal, output}, {maxBuffer}) => {\n\tconst resultError = getResultError(error, exitCode, signal);\n\tconst timedOut = resultError?.code === 'ETIMEDOUT';\n\tconst isMaxBuffer = isMaxBufferSync(resultError, output, maxBuffer);\n\treturn {\n\t\tresultError,\n\t\texitCode,\n\t\tsignal,\n\t\ttimedOut,\n\t\tisMaxBuffer,\n\t};\n};\n\nconst getResultError = (error, exitCode, signal) => {\n\tif (error !== undefined) {\n\t\treturn error;\n\t}\n\n\treturn isFailedExit(exitCode, signal) ? new DiscardedError() : undefined;\n};\n","import {spawnSync} from 'node:child_process';\nimport {handleCommand} from '../arguments/command.js';\nimport {normalizeOptions} from '../arguments/options.js';\nimport {makeError, makeEarlyError, makeSuccessResult} from '../return/result.js';\nimport {handleResult} from '../return/reject.js';\nimport {handleStdioSync} from '../stdio/handle-sync.js';\nimport {stripNewline} from '../io/strip-newline.js';\nimport {addInputOptionsSync} from '../io/input-sync.js';\nimport {transformOutputSync} from '../io/output-sync.js';\nimport {getMaxBufferSync} from '../io/max-buffer.js';\nimport {logEarlyResult} from '../verbose/complete.js';\nimport {getAllSync} from '../resolve/all-sync.js';\nimport {getExitResultSync} from '../resolve/exit-sync.js';\n\n// Main shared logic for all sync methods: `execaSync()`, `execaCommandSync()`, `$.sync()`\nexport const execaCoreSync = (rawFile, rawArguments, rawOptions) => {\n\tconst {file, commandArguments, command, escapedCommand, startTime, verboseInfo, options, fileDescriptors} = handleSyncArguments(rawFile, rawArguments, rawOptions);\n\tconst result = spawnSubprocessSync({\n\t\tfile,\n\t\tcommandArguments,\n\t\toptions,\n\t\tcommand,\n\t\tescapedCommand,\n\t\tverboseInfo,\n\t\tfileDescriptors,\n\t\tstartTime,\n\t});\n\treturn handleResult(result, verboseInfo, options);\n};\n\n// Compute arguments to pass to `child_process.spawnSync()`\nconst handleSyncArguments = (rawFile, rawArguments, rawOptions) => {\n\tconst {command, escapedCommand, startTime, verboseInfo} = handleCommand(rawFile, rawArguments, rawOptions);\n\n\ttry {\n\t\tconst syncOptions = normalizeSyncOptions(rawOptions);\n\t\tconst {file, commandArguments, options} = normalizeOptions(rawFile, rawArguments, syncOptions);\n\t\tvalidateSyncOptions(options);\n\t\tconst fileDescriptors = handleStdioSync(options, verboseInfo);\n\t\treturn {\n\t\t\tfile,\n\t\t\tcommandArguments,\n\t\t\tcommand,\n\t\t\tescapedCommand,\n\t\t\tstartTime,\n\t\t\tverboseInfo,\n\t\t\toptions,\n\t\t\tfileDescriptors,\n\t\t};\n\t} catch (error) {\n\t\tlogEarlyResult(error, startTime, verboseInfo);\n\t\tthrow error;\n\t}\n};\n\n// Options normalization logic specific to sync methods\nconst normalizeSyncOptions = options => options.node && !options.ipc ? {...options, ipc: false} : options;\n\n// Options validation logic specific to sync methods\nconst validateSyncOptions = ({ipc, detached, cancelSignal}) => {\n\tif (ipc) {\n\t\tthrowInvalidSyncOption('ipc: true');\n\t}\n\n\tif (detached) {\n\t\tthrowInvalidSyncOption('detached: true');\n\t}\n\n\tif (cancelSignal) {\n\t\tthrowInvalidSyncOption('cancelSignal');\n\t}\n};\n\nconst throwInvalidSyncOption = value => {\n\tthrow new TypeError(`The \"${value}\" option cannot be used with synchronous methods.`);\n};\n\nconst spawnSubprocessSync = ({file, commandArguments, options, command, escapedCommand, verboseInfo, fileDescriptors, startTime}) => {\n\tconst syncResult = runSubprocessSync({\n\t\tfile,\n\t\tcommandArguments,\n\t\toptions,\n\t\tcommand,\n\t\tescapedCommand,\n\t\tfileDescriptors,\n\t\tstartTime,\n\t});\n\tif (syncResult.failed) {\n\t\treturn syncResult;\n\t}\n\n\tconst {resultError, exitCode, signal, timedOut, isMaxBuffer} = getExitResultSync(syncResult, options);\n\tconst {output, error = resultError} = transformOutputSync({\n\t\tfileDescriptors,\n\t\tsyncResult,\n\t\toptions,\n\t\tisMaxBuffer,\n\t\tverboseInfo,\n\t});\n\tconst stdio = output.map((stdioOutput, fdNumber) => stripNewline(stdioOutput, options, fdNumber));\n\tconst all = stripNewline(getAllSync(output, options), options, 'all');\n\treturn getSyncResult({\n\t\terror,\n\t\texitCode,\n\t\tsignal,\n\t\ttimedOut,\n\t\tisMaxBuffer,\n\t\tstdio,\n\t\tall,\n\t\toptions,\n\t\tcommand,\n\t\tescapedCommand,\n\t\tstartTime,\n\t});\n};\n\nconst runSubprocessSync = ({file, commandArguments, options, command, escapedCommand, fileDescriptors, startTime}) => {\n\ttry {\n\t\taddInputOptionsSync(fileDescriptors, options);\n\t\tconst normalizedOptions = normalizeSpawnSyncOptions(options);\n\t\treturn spawnSync(file, commandArguments, normalizedOptions);\n\t} catch (error) {\n\t\treturn makeEarlyError({\n\t\t\terror,\n\t\t\tcommand,\n\t\t\tescapedCommand,\n\t\t\tfileDescriptors,\n\t\t\toptions,\n\t\t\tstartTime,\n\t\t\tisSync: true,\n\t\t});\n\t}\n};\n\n// The `encoding` option is handled by Execa, not by `child_process.spawnSync()`\nconst normalizeSpawnSyncOptions = ({encoding, maxBuffer, ...options}) => ({...options, encoding: 'buffer', maxBuffer: getMaxBufferSync(maxBuffer)});\n\nconst getSyncResult = ({error, exitCode, signal, timedOut, isMaxBuffer, stdio, all, options, command, escapedCommand, startTime}) => error === undefined\n\t? makeSuccessResult({\n\t\tcommand,\n\t\tescapedCommand,\n\t\tstdio,\n\t\tall,\n\t\toptions,\n\t\tstartTime,\n\t})\n\t: makeError({\n\t\terror,\n\t\tcommand,\n\t\tescapedCommand,\n\t\ttimedOut,\n\t\tisCanceled: false,\n\t\tisMaxBuffer,\n\t\texitCode,\n\t\tsignal,\n\t\tstdio,\n\t\tall,\n\t\toptions,\n\t\tstartTime,\n\t\tisSync: true,\n\t});\n","import {isUint8Array, concatUint8Arrays} from '../utils/uint-array.js';\nimport {stripNewline} from '../io/strip-newline.js';\n\n// Retrieve `result.all` with synchronous methods\nexport const getAllSync = ([, stdout, stderr], options) => {\n\tif (!options.all) {\n\t\treturn;\n\t}\n\n\tif (stdout === undefined) {\n\t\treturn stderr;\n\t}\n\n\tif (stderr === undefined) {\n\t\treturn stdout;\n\t}\n\n\tif (Array.isArray(stdout)) {\n\t\treturn Array.isArray(stderr)\n\t\t\t? [...stdout, ...stderr]\n\t\t\t: [...stdout, stripNewline(stderr, options, 'all')];\n\t}\n\n\tif (Array.isArray(stderr)) {\n\t\treturn [stripNewline(stdout, options, 'all'), ...stderr];\n\t}\n\n\tif (isUint8Array(stdout) && isUint8Array(stderr)) {\n\t\treturn concatUint8Arrays([stdout, stderr]);\n\t}\n\n\treturn `${stdout}${stderr}`;\n};\n","import {ChildProcess} from 'node:child_process';\nimport {\n\tPassThrough,\n\tReadable,\n\tWritable,\n\tDuplex,\n} from 'node:stream';\nimport {cleanupCustomStreams} from '../stdio/handle.js';\nimport {makeEarlyError} from './result.js';\nimport {handleResult} from './reject.js';\n\n// When the subprocess fails to spawn.\n// We ensure the returned error is always both a promise and a subprocess.\nexport const handleEarlyError = ({error, command, escapedCommand, fileDescriptors, options, startTime, verboseInfo}) => {\n\tcleanupCustomStreams(fileDescriptors);\n\n\tconst subprocess = new ChildProcess();\n\tcreateDummyStreams(subprocess, fileDescriptors);\n\tObject.assign(subprocess, {readable, writable, duplex});\n\n\tconst earlyError = makeEarlyError({\n\t\terror,\n\t\tcommand,\n\t\tescapedCommand,\n\t\tfileDescriptors,\n\t\toptions,\n\t\tstartTime,\n\t\tisSync: false,\n\t});\n\tconst promise = handleDummyPromise(earlyError, verboseInfo, options);\n\treturn {subprocess, promise};\n};\n\nconst createDummyStreams = (subprocess, fileDescriptors) => {\n\tconst stdin = createDummyStream();\n\tconst stdout = createDummyStream();\n\tconst stderr = createDummyStream();\n\tconst extraStdio = Array.from({length: fileDescriptors.length - 3}, createDummyStream);\n\tconst all = createDummyStream();\n\tconst stdio = [stdin, stdout, stderr, ...extraStdio];\n\tObject.assign(subprocess, {\n\t\tstdin,\n\t\tstdout,\n\t\tstderr,\n\t\tall,\n\t\tstdio,\n\t});\n};\n\nconst createDummyStream = () => {\n\tconst stream = new PassThrough();\n\tstream.end();\n\treturn stream;\n};\n\nconst readable = () => new Readable({read() {}});\nconst writable = () => new Writable({write() {}});\nconst duplex = () => new Duplex({read() {}, write() {}});\n\nconst handleDummyPromise = async (error, verboseInfo, options) => handleResult(error, verboseInfo, options);\n","import {createReadStream, createWriteStream} from 'node:fs';\nimport {Buffer} from 'node:buffer';\nimport {Readable, Writable, Duplex} from 'node:stream';\nimport {generatorToStream} from '../transform/generator.js';\nimport {handleStdio} from './handle.js';\nimport {TYPE_TO_MESSAGE} from './type.js';\n\n// Handle `input`, `inputFile`, `stdin`, `stdout` and `stderr` options, before spawning, in async mode\nexport const handleStdioAsync = (options, verboseInfo) => handleStdio(addPropertiesAsync, options, verboseInfo, false);\n\nconst forbiddenIfAsync = ({type, optionName}) => {\n\tthrow new TypeError(`The \\`${optionName}\\` option cannot be ${TYPE_TO_MESSAGE[type]}.`);\n};\n\n// Create streams used internally for piping when using specific values for the `std*` options, in async mode.\n// For example, `stdout: {file}` creates a file stream, which is piped from/to.\nconst addProperties = {\n\tfileNumber: forbiddenIfAsync,\n\tgenerator: generatorToStream,\n\tasyncGenerator: generatorToStream,\n\tnodeStream: ({value}) => ({stream: value}),\n\twebTransform({value: {transform, writableObjectMode, readableObjectMode}}) {\n\t\tconst objectMode = writableObjectMode || readableObjectMode;\n\t\tconst stream = Duplex.fromWeb(transform, {objectMode});\n\t\treturn {stream};\n\t},\n\tduplex: ({value: {transform}}) => ({stream: transform}),\n\tnative() {},\n};\n\nconst addPropertiesAsync = {\n\tinput: {\n\t\t...addProperties,\n\t\tfileUrl: ({value}) => ({stream: createReadStream(value)}),\n\t\tfilePath: ({value: {file}}) => ({stream: createReadStream(file)}),\n\t\twebStream: ({value}) => ({stream: Readable.fromWeb(value)}),\n\t\titerable: ({value}) => ({stream: Readable.from(value)}),\n\t\tasyncIterable: ({value}) => ({stream: Readable.from(value)}),\n\t\tstring: ({value}) => ({stream: Readable.from(value)}),\n\t\tuint8Array: ({value}) => ({stream: Readable.from(Buffer.from(value))}),\n\t},\n\toutput: {\n\t\t...addProperties,\n\t\tfileUrl: ({value}) => ({stream: createWriteStream(value)}),\n\t\tfilePath: ({value: {file}}) => ({stream: createWriteStream(file)}),\n\t\twebStream: ({value}) => ({stream: Writable.fromWeb(value)}),\n\t\titerable: forbiddenIfAsync,\n\t\tasyncIterable: forbiddenIfAsync,\n\t\tstring: forbiddenIfAsync,\n\t\tuint8Array: forbiddenIfAsync,\n\t},\n};\n","import {on, once} from 'node:events';\nimport {PassThrough as PassThroughStream, getDefaultHighWaterMark} from 'node:stream';\nimport {finished} from 'node:stream/promises';\n\nexport default function mergeStreams(streams) {\n\tif (!Array.isArray(streams)) {\n\t\tthrow new TypeError(`Expected an array, got \\`${typeof streams}\\`.`);\n\t}\n\n\tfor (const stream of streams) {\n\t\tvalidateStream(stream);\n\t}\n\n\tconst objectMode = streams.some(({readableObjectMode}) => readableObjectMode);\n\tconst highWaterMark = getHighWaterMark(streams, objectMode);\n\tconst passThroughStream = new MergedStream({\n\t\tobjectMode,\n\t\twritableHighWaterMark: highWaterMark,\n\t\treadableHighWaterMark: highWaterMark,\n\t});\n\n\tfor (const stream of streams) {\n\t\tpassThroughStream.add(stream);\n\t}\n\n\treturn passThroughStream;\n}\n\nconst getHighWaterMark = (streams, objectMode) => {\n\tif (streams.length === 0) {\n\t\treturn getDefaultHighWaterMark(objectMode);\n\t}\n\n\tconst highWaterMarks = streams\n\t\t.filter(({readableObjectMode}) => readableObjectMode === objectMode)\n\t\t.map(({readableHighWaterMark}) => readableHighWaterMark);\n\treturn Math.max(...highWaterMarks);\n};\n\nclass MergedStream extends PassThroughStream {\n\t#streams = new Set([]);\n\t#ended = new Set([]);\n\t#aborted = new Set([]);\n\t#onFinished;\n\t#unpipeEvent = Symbol('unpipe');\n\t#streamPromises = new WeakMap();\n\n\tadd(stream) {\n\t\tvalidateStream(stream);\n\n\t\tif (this.#streams.has(stream)) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.#streams.add(stream);\n\n\t\tthis.#onFinished ??= onMergedStreamFinished(this, this.#streams, this.#unpipeEvent);\n\t\tconst streamPromise = endWhenStreamsDone({\n\t\t\tpassThroughStream: this,\n\t\t\tstream,\n\t\t\tstreams: this.#streams,\n\t\t\tended: this.#ended,\n\t\t\taborted: this.#aborted,\n\t\t\tonFinished: this.#onFinished,\n\t\t\tunpipeEvent: this.#unpipeEvent,\n\t\t});\n\t\tthis.#streamPromises.set(stream, streamPromise);\n\n\t\tstream.pipe(this, {end: false});\n\t}\n\n\tasync remove(stream) {\n\t\tvalidateStream(stream);\n\n\t\tif (!this.#streams.has(stream)) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst streamPromise = this.#streamPromises.get(stream);\n\t\tif (streamPromise === undefined) {\n\t\t\treturn false;\n\t\t}\n\n\t\tthis.#streamPromises.delete(stream);\n\n\t\tstream.unpipe(this);\n\t\tawait streamPromise;\n\t\treturn true;\n\t}\n}\n\nconst onMergedStreamFinished = async (passThroughStream, streams, unpipeEvent) => {\n\tupdateMaxListeners(passThroughStream, PASSTHROUGH_LISTENERS_COUNT);\n\tconst controller = new AbortController();\n\n\ttry {\n\t\tawait Promise.race([\n\t\t\tonMergedStreamEnd(passThroughStream, controller),\n\t\t\tonInputStreamsUnpipe(passThroughStream, streams, unpipeEvent, controller),\n\t\t]);\n\t} finally {\n\t\tcontroller.abort();\n\t\tupdateMaxListeners(passThroughStream, -PASSTHROUGH_LISTENERS_COUNT);\n\t}\n};\n\nconst onMergedStreamEnd = async (passThroughStream, {signal}) => {\n\ttry {\n\t\tawait finished(passThroughStream, {signal, cleanup: true});\n\t} catch (error) {\n\t\terrorOrAbortStream(passThroughStream, error);\n\t\tthrow error;\n\t}\n};\n\nconst onInputStreamsUnpipe = async (passThroughStream, streams, unpipeEvent, {signal}) => {\n\tfor await (const [unpipedStream] of on(passThroughStream, 'unpipe', {signal})) {\n\t\tif (streams.has(unpipedStream)) {\n\t\t\tunpipedStream.emit(unpipeEvent);\n\t\t}\n\t}\n};\n\nconst validateStream = stream => {\n\tif (typeof stream?.pipe !== 'function') {\n\t\tthrow new TypeError(`Expected a readable stream, got: \\`${typeof stream}\\`.`);\n\t}\n};\n\nconst endWhenStreamsDone = async ({passThroughStream, stream, streams, ended, aborted, onFinished, unpipeEvent}) => {\n\tupdateMaxListeners(passThroughStream, PASSTHROUGH_LISTENERS_PER_STREAM);\n\tconst controller = new AbortController();\n\n\ttry {\n\t\tawait Promise.race([\n\t\t\tafterMergedStreamFinished(onFinished, stream, controller),\n\t\t\tonInputStreamEnd({\n\t\t\t\tpassThroughStream,\n\t\t\t\tstream,\n\t\t\t\tstreams,\n\t\t\t\tended,\n\t\t\t\taborted,\n\t\t\t\tcontroller,\n\t\t\t}),\n\t\t\tonInputStreamUnpipe({\n\t\t\t\tstream,\n\t\t\t\tstreams,\n\t\t\t\tended,\n\t\t\t\taborted,\n\t\t\t\tunpipeEvent,\n\t\t\t\tcontroller,\n\t\t\t}),\n\t\t]);\n\t} finally {\n\t\tcontroller.abort();\n\t\tupdateMaxListeners(passThroughStream, -PASSTHROUGH_LISTENERS_PER_STREAM);\n\t}\n\n\tif (streams.size > 0 && streams.size === ended.size + aborted.size) {\n\t\tif (ended.size === 0 && aborted.size > 0) {\n\t\t\tabortStream(passThroughStream);\n\t\t} else {\n\t\t\tendStream(passThroughStream);\n\t\t}\n\t}\n};\n\nconst afterMergedStreamFinished = async (onFinished, stream, {signal}) => {\n\ttry {\n\t\tawait onFinished;\n\t\tif (!signal.aborted) {\n\t\t\tabortStream(stream);\n\t\t}\n\t} catch (error) {\n\t\tif (!signal.aborted) {\n\t\t\terrorOrAbortStream(stream, error);\n\t\t}\n\t}\n};\n\nconst onInputStreamEnd = async ({passThroughStream, stream, streams, ended, aborted, controller: {signal}}) => {\n\ttry {\n\t\tawait finished(stream, {\n\t\t\tsignal,\n\t\t\tcleanup: true,\n\t\t\treadable: true,\n\t\t\twritable: false,\n\t\t});\n\t\tif (streams.has(stream)) {\n\t\t\tended.add(stream);\n\t\t}\n\t} catch (error) {\n\t\tif (signal.aborted || !streams.has(stream)) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (isAbortError(error)) {\n\t\t\taborted.add(stream);\n\t\t} else {\n\t\t\terrorStream(passThroughStream, error);\n\t\t}\n\t}\n};\n\nconst onInputStreamUnpipe = async ({stream, streams, ended, aborted, unpipeEvent, controller: {signal}}) => {\n\tawait once(stream, unpipeEvent, {signal});\n\n\tif (!stream.readable) {\n\t\treturn once(signal, 'abort', {signal});\n\t}\n\n\tstreams.delete(stream);\n\tended.delete(stream);\n\taborted.delete(stream);\n};\n\nconst endStream = stream => {\n\tif (stream.writable) {\n\t\tstream.end();\n\t}\n};\n\nconst errorOrAbortStream = (stream, error) => {\n\tif (isAbortError(error)) {\n\t\tabortStream(stream);\n\t} else {\n\t\terrorStream(stream, error);\n\t}\n};\n\n// This is the error thrown by `finished()` on `stream.destroy()`\nconst isAbortError = error => error?.code === 'ERR_STREAM_PREMATURE_CLOSE';\n\nconst abortStream = stream => {\n\tif (stream.readable || stream.writable) {\n\t\tstream.destroy();\n\t}\n};\n\n// `stream.destroy(error)` crashes the process with `uncaughtException` if no `error` event listener exists on `stream`.\n// We take care of error handling on user behalf, so we do not want this to happen.\nconst errorStream = (stream, error) => {\n\tif (!stream.destroyed) {\n\t\tstream.once('error', noop);\n\t\tstream.destroy(error);\n\t}\n};\n\nconst noop = () => {};\n\nconst updateMaxListeners = (passThroughStream, increment) => {\n\tconst maxListeners = passThroughStream.getMaxListeners();\n\tif (maxListeners !== 0 && maxListeners !== Number.POSITIVE_INFINITY) {\n\t\tpassThroughStream.setMaxListeners(maxListeners + increment);\n\t}\n};\n\n// Number of times `passThroughStream.on()` is called regardless of streams:\n// - once due to `finished(passThroughStream)`\n// - once due to `on(passThroughStream)`\nconst PASSTHROUGH_LISTENERS_COUNT = 2;\n\n// Number of times `passThroughStream.on()` is called per stream:\n// - once due to `stream.pipe(passThroughStream)`\nconst PASSTHROUGH_LISTENERS_PER_STREAM = 1;\n","import {addAbortListener} from 'node:events';\n\n// Temporarily increase the maximum number of listeners on an eventEmitter\nexport const incrementMaxListeners = (eventEmitter, maxListenersIncrement, signal) => {\n\tconst maxListeners = eventEmitter.getMaxListeners();\n\tif (maxListeners === 0 || maxListeners === Number.POSITIVE_INFINITY) {\n\t\treturn;\n\t}\n\n\teventEmitter.setMaxListeners(maxListeners + maxListenersIncrement);\n\taddAbortListener(signal, () => {\n\t\teventEmitter.setMaxListeners(eventEmitter.getMaxListeners() - maxListenersIncrement);\n\t});\n};\n","import {finished} from 'node:stream/promises';\nimport {isStandardStream} from '../utils/standard-stream.js';\n\n// Similar to `Stream.pipeline(source, destination)`, but does not destroy standard streams\nexport const pipeStreams = (source, destination) => {\n\tsource.pipe(destination);\n\tonSourceFinish(source, destination);\n\tonDestinationFinish(source, destination);\n};\n\n// `source.pipe(destination)` makes `destination` end when `source` ends.\n// But it does not propagate aborts or errors. This function does it.\nconst onSourceFinish = async (source, destination) => {\n\tif (isStandardStream(source) || isStandardStream(destination)) {\n\t\treturn;\n\t}\n\n\ttry {\n\t\tawait finished(source, {cleanup: true, readable: true, writable: false});\n\t} catch {}\n\n\tendDestinationStream(destination);\n};\n\nexport const endDestinationStream = destination => {\n\tif (destination.writable) {\n\t\tdestination.end();\n\t}\n};\n\n// We do the same thing in the other direction as well.\nconst onDestinationFinish = async (source, destination) => {\n\tif (isStandardStream(source) || isStandardStream(destination)) {\n\t\treturn;\n\t}\n\n\ttry {\n\t\tawait finished(destination, {cleanup: true, readable: false, writable: true});\n\t} catch {}\n\n\tabortSourceStream(source);\n};\n\nexport const abortSourceStream = source => {\n\tif (source.readable) {\n\t\tsource.destroy();\n\t}\n};\n","import mergeStreams from '@sindresorhus/merge-streams';\nimport {isStandardStream} from '../utils/standard-stream.js';\nimport {incrementMaxListeners} from '../utils/max-listeners.js';\nimport {TRANSFORM_TYPES} from '../stdio/type.js';\nimport {pipeStreams} from './pipeline.js';\n\n// Handle `input`, `inputFile`, `stdin`, `stdout` and `stderr` options, after spawning, in async mode\n// When multiple input streams are used, we merge them to ensure the output stream ends only once each input stream has ended\nexport const pipeOutputAsync = (subprocess, fileDescriptors, controller) => {\n\tconst pipeGroups = new Map();\n\n\tfor (const [fdNumber, {stdioItems, direction}] of Object.entries(fileDescriptors)) {\n\t\tfor (const {stream} of stdioItems.filter(({type}) => TRANSFORM_TYPES.has(type))) {\n\t\t\tpipeTransform(subprocess, stream, direction, fdNumber);\n\t\t}\n\n\t\tfor (const {stream} of stdioItems.filter(({type}) => !TRANSFORM_TYPES.has(type))) {\n\t\t\tpipeStdioItem({\n\t\t\t\tsubprocess,\n\t\t\t\tstream,\n\t\t\t\tdirection,\n\t\t\t\tfdNumber,\n\t\t\t\tpipeGroups,\n\t\t\t\tcontroller,\n\t\t\t});\n\t\t}\n\t}\n\n\tfor (const [outputStream, inputStreams] of pipeGroups.entries()) {\n\t\tconst inputStream = inputStreams.length === 1 ? inputStreams[0] : mergeStreams(inputStreams);\n\t\tpipeStreams(inputStream, outputStream);\n\t}\n};\n\n// When using transforms, `subprocess.stdin|stdout|stderr|stdio` is directly mutated\nconst pipeTransform = (subprocess, stream, direction, fdNumber) => {\n\tif (direction === 'output') {\n\t\tpipeStreams(subprocess.stdio[fdNumber], stream);\n\t} else {\n\t\tpipeStreams(stream, subprocess.stdio[fdNumber]);\n\t}\n\n\tconst streamProperty = SUBPROCESS_STREAM_PROPERTIES[fdNumber];\n\tif (streamProperty !== undefined) {\n\t\tsubprocess[streamProperty] = stream;\n\t}\n\n\tsubprocess.stdio[fdNumber] = stream;\n};\n\nconst SUBPROCESS_STREAM_PROPERTIES = ['stdin', 'stdout', 'stderr'];\n\n// Most `std*` option values involve piping `subprocess.std*` to a stream.\n// The stream is either passed by the user or created internally.\nconst pipeStdioItem = ({subprocess, stream, direction, fdNumber, pipeGroups, controller}) => {\n\tif (stream === undefined) {\n\t\treturn;\n\t}\n\n\tsetStandardStreamMaxListeners(stream, controller);\n\n\tconst [inputStream, outputStream] = direction === 'output'\n\t\t? [stream, subprocess.stdio[fdNumber]]\n\t\t: [subprocess.stdio[fdNumber], stream];\n\tconst outputStreams = pipeGroups.get(inputStream) ?? [];\n\tpipeGroups.set(inputStream, [...outputStreams, outputStream]);\n};\n\n// Multiple subprocesses might be piping from/to `process.std*` at the same time.\n// This is not necessarily an error and should not print a `maxListeners` warning.\nconst setStandardStreamMaxListeners = (stream, {signal}) => {\n\tif (isStandardStream(stream)) {\n\t\tincrementMaxListeners(stream, MAX_LISTENERS_INCREMENT, signal);\n\t}\n};\n\n// `source.pipe(destination)` adds at most 1 listener for each event.\n// If `stdin` option is an array, the values might be combined with `merge-streams`.\n// That library also listens for `source` end, which adds 1 more listener.\nconst MAX_LISTENERS_INCREMENT = 2;\n","/**\n * This is not the set of all possible signals.\n *\n * It IS, however, the set of all signals that trigger\n * an exit on either Linux or BSD systems. Linux is a\n * superset of the signal names supported on BSD, and\n * the unknown signals just fail to register, so we can\n * catch that easily enough.\n *\n * Windows signals are a different set, since there are\n * signals that terminate Windows processes, but don't\n * terminate (or don't even exist) on Posix systems.\n *\n * Don't bother with SIGKILL. It's uncatchable, which\n * means that we can't fire any callbacks anyway.\n *\n * If a user does happen to register a handler on a non-\n * fatal signal like SIGWINCH or something, and then\n * exit, it'll end up firing `process.emit('exit')`, so\n * the handler will be fired anyway.\n *\n * SIGBUS, SIGFPE, SIGSEGV and SIGILL, when not raised\n * artificially, inherently leave the process in a\n * state from which it is not safe to try and enter JS\n * listeners.\n */\nexport const signals = [];\nsignals.push('SIGHUP', 'SIGINT', 'SIGTERM');\nif (process.platform !== 'win32') {\n signals.push('SIGALRM', 'SIGABRT', 'SIGVTALRM', 'SIGXCPU', 'SIGXFSZ', 'SIGUSR2', 'SIGTRAP', 'SIGSYS', 'SIGQUIT', 'SIGIOT'\n // should detect profiler and enable/disable accordingly.\n // see #21\n // 'SIGPROF'\n );\n}\nif (process.platform === 'linux') {\n signals.push('SIGIO', 'SIGPOLL', 'SIGPWR', 'SIGSTKFLT');\n}\n//# sourceMappingURL=signals.js.map","// Note: since nyc uses this module to output coverage, any lines\n// that are in the direct sync flow of nyc's outputCoverage are\n// ignored, since we can never get coverage for them.\n// grab a reference to node's real process object right away\nimport { signals } from './signals.js';\nexport { signals };\nconst processOk = (process) => !!process &&\n typeof process === 'object' &&\n typeof process.removeListener === 'function' &&\n typeof process.emit === 'function' &&\n typeof process.reallyExit === 'function' &&\n typeof process.listeners === 'function' &&\n typeof process.kill === 'function' &&\n typeof process.pid === 'number' &&\n typeof process.on === 'function';\nconst kExitEmitter = Symbol.for('signal-exit emitter');\nconst global = globalThis;\nconst ObjectDefineProperty = Object.defineProperty.bind(Object);\n// teeny special purpose ee\nclass Emitter {\n emitted = {\n afterExit: false,\n exit: false,\n };\n listeners = {\n afterExit: [],\n exit: [],\n };\n count = 0;\n id = Math.random();\n constructor() {\n if (global[kExitEmitter]) {\n return global[kExitEmitter];\n }\n ObjectDefineProperty(global, kExitEmitter, {\n value: this,\n writable: false,\n enumerable: false,\n configurable: false,\n });\n }\n on(ev, fn) {\n this.listeners[ev].push(fn);\n }\n removeListener(ev, fn) {\n const list = this.listeners[ev];\n const i = list.indexOf(fn);\n /* c8 ignore start */\n if (i === -1) {\n return;\n }\n /* c8 ignore stop */\n if (i === 0 && list.length === 1) {\n list.length = 0;\n }\n else {\n list.splice(i, 1);\n }\n }\n emit(ev, code, signal) {\n if (this.emitted[ev]) {\n return false;\n }\n this.emitted[ev] = true;\n let ret = false;\n for (const fn of this.listeners[ev]) {\n ret = fn(code, signal) === true || ret;\n }\n if (ev === 'exit') {\n ret = this.emit('afterExit', code, signal) || ret;\n }\n return ret;\n }\n}\nclass SignalExitBase {\n}\nconst signalExitWrap = (handler) => {\n return {\n onExit(cb, opts) {\n return handler.onExit(cb, opts);\n },\n load() {\n return handler.load();\n },\n unload() {\n return handler.unload();\n },\n };\n};\nclass SignalExitFallback extends SignalExitBase {\n onExit() {\n return () => { };\n }\n load() { }\n unload() { }\n}\nclass SignalExit extends SignalExitBase {\n // \"SIGHUP\" throws an `ENOSYS` error on Windows,\n // so use a supported signal instead\n /* c8 ignore start */\n #hupSig = process.platform === 'win32' ? 'SIGINT' : 'SIGHUP';\n /* c8 ignore stop */\n #emitter = new Emitter();\n #process;\n #originalProcessEmit;\n #originalProcessReallyExit;\n #sigListeners = {};\n #loaded = false;\n constructor(process) {\n super();\n this.#process = process;\n // { : , ... }\n this.#sigListeners = {};\n for (const sig of signals) {\n this.#sigListeners[sig] = () => {\n // If there are no other listeners, an exit is coming!\n // Simplest way: remove us and then re-send the signal.\n // We know that this will kill the process, so we can\n // safely emit now.\n const listeners = this.#process.listeners(sig);\n let { count } = this.#emitter;\n // This is a workaround for the fact that signal-exit v3 and signal\n // exit v4 are not aware of each other, and each will attempt to let\n // the other handle it, so neither of them do. To correct this, we\n // detect if we're the only handler *except* for previous versions\n // of signal-exit, and increment by the count of listeners it has\n // created.\n /* c8 ignore start */\n const p = process;\n if (typeof p.__signal_exit_emitter__ === 'object' &&\n typeof p.__signal_exit_emitter__.count === 'number') {\n count += p.__signal_exit_emitter__.count;\n }\n /* c8 ignore stop */\n if (listeners.length === count) {\n this.unload();\n const ret = this.#emitter.emit('exit', null, sig);\n /* c8 ignore start */\n const s = sig === 'SIGHUP' ? this.#hupSig : sig;\n if (!ret)\n process.kill(process.pid, s);\n /* c8 ignore stop */\n }\n };\n }\n this.#originalProcessReallyExit = process.reallyExit;\n this.#originalProcessEmit = process.emit;\n }\n onExit(cb, opts) {\n /* c8 ignore start */\n if (!processOk(this.#process)) {\n return () => { };\n }\n /* c8 ignore stop */\n if (this.#loaded === false) {\n this.load();\n }\n const ev = opts?.alwaysLast ? 'afterExit' : 'exit';\n this.#emitter.on(ev, cb);\n return () => {\n this.#emitter.removeListener(ev, cb);\n if (this.#emitter.listeners['exit'].length === 0 &&\n this.#emitter.listeners['afterExit'].length === 0) {\n this.unload();\n }\n };\n }\n load() {\n if (this.#loaded) {\n return;\n }\n this.#loaded = true;\n // This is the number of onSignalExit's that are in play.\n // It's important so that we can count the correct number of\n // listeners on signals, and don't wait for the other one to\n // handle it instead of us.\n this.#emitter.count += 1;\n for (const sig of signals) {\n try {\n const fn = this.#sigListeners[sig];\n if (fn)\n this.#process.on(sig, fn);\n }\n catch (_) { }\n }\n this.#process.emit = (ev, ...a) => {\n return this.#processEmit(ev, ...a);\n };\n this.#process.reallyExit = (code) => {\n return this.#processReallyExit(code);\n };\n }\n unload() {\n if (!this.#loaded) {\n return;\n }\n this.#loaded = false;\n signals.forEach(sig => {\n const listener = this.#sigListeners[sig];\n /* c8 ignore start */\n if (!listener) {\n throw new Error('Listener not defined for signal: ' + sig);\n }\n /* c8 ignore stop */\n try {\n this.#process.removeListener(sig, listener);\n /* c8 ignore start */\n }\n catch (_) { }\n /* c8 ignore stop */\n });\n this.#process.emit = this.#originalProcessEmit;\n this.#process.reallyExit = this.#originalProcessReallyExit;\n this.#emitter.count -= 1;\n }\n #processReallyExit(code) {\n /* c8 ignore start */\n if (!processOk(this.#process)) {\n return 0;\n }\n this.#process.exitCode = code || 0;\n /* c8 ignore stop */\n this.#emitter.emit('exit', this.#process.exitCode, null);\n return this.#originalProcessReallyExit.call(this.#process, this.#process.exitCode);\n }\n #processEmit(ev, ...args) {\n const og = this.#originalProcessEmit;\n if (ev === 'exit' && processOk(this.#process)) {\n if (typeof args[0] === 'number') {\n this.#process.exitCode = args[0];\n /* c8 ignore start */\n }\n /* c8 ignore start */\n const ret = og.call(this.#process, ev, ...args);\n /* c8 ignore start */\n this.#emitter.emit('exit', this.#process.exitCode, null);\n /* c8 ignore stop */\n return ret;\n }\n else {\n return og.call(this.#process, ev, ...args);\n }\n }\n}\nconst process = globalThis.process;\n// wrap so that we call the method on the actual handler, without\n// exporting it directly.\nexport const { \n/**\n * Called when the process is exiting, whether via signal, explicit\n * exit, or running out of stuff to do.\n *\n * If the global process object is not suitable for instrumentation,\n * then this will be a no-op.\n *\n * Returns a function that may be used to unload signal-exit.\n */\nonExit, \n/**\n * Load the listeners. Likely you never need to call this, unless\n * doing a rather deep integration with signal-exit functionality.\n * Mostly exposed for the benefit of testing.\n *\n * @internal\n */\nload, \n/**\n * Unload the listeners. Likely you never need to call this, unless\n * doing a rather deep integration with signal-exit functionality.\n * Mostly exposed for the benefit of testing.\n *\n * @internal\n */\nunload, } = signalExitWrap(processOk(process) ? new SignalExit(process) : new SignalExitFallback());\n//# sourceMappingURL=index.js.map","import {addAbortListener} from 'node:events';\nimport {onExit} from 'signal-exit';\n\n// If the `cleanup` option is used, call `subprocess.kill()` when the parent process exits\nexport const cleanupOnExit = (subprocess, {cleanup, detached}, {signal}) => {\n\tif (!cleanup || detached) {\n\t\treturn;\n\t}\n\n\tconst removeExitHandler = onExit(() => {\n\t\tsubprocess.kill();\n\t});\n\taddAbortListener(signal, () => {\n\t\tremoveExitHandler();\n\t});\n};\n","import {normalizeParameters} from '../methods/parameters.js';\nimport {getStartTime} from '../return/duration.js';\nimport {SUBPROCESS_OPTIONS, getToStream, getFromStream} from '../arguments/fd-options.js';\n\n// Normalize and validate arguments passed to `source.pipe(destination)`\nexport const normalizePipeArguments = ({source, sourcePromise, boundOptions, createNested}, ...pipeArguments) => {\n\tconst startTime = getStartTime();\n\tconst {\n\t\tdestination,\n\t\tdestinationStream,\n\t\tdestinationError,\n\t\tfrom,\n\t\tunpipeSignal,\n\t} = getDestinationStream(boundOptions, createNested, pipeArguments);\n\tconst {sourceStream, sourceError} = getSourceStream(source, from);\n\tconst {options: sourceOptions, fileDescriptors} = SUBPROCESS_OPTIONS.get(source);\n\treturn {\n\t\tsourcePromise,\n\t\tsourceStream,\n\t\tsourceOptions,\n\t\tsourceError,\n\t\tdestination,\n\t\tdestinationStream,\n\t\tdestinationError,\n\t\tunpipeSignal,\n\t\tfileDescriptors,\n\t\tstartTime,\n\t};\n};\n\nconst getDestinationStream = (boundOptions, createNested, pipeArguments) => {\n\ttry {\n\t\tconst {\n\t\t\tdestination,\n\t\t\tpipeOptions: {from, to, unpipeSignal} = {},\n\t\t} = getDestination(boundOptions, createNested, ...pipeArguments);\n\t\tconst destinationStream = getToStream(destination, to);\n\t\treturn {\n\t\t\tdestination,\n\t\t\tdestinationStream,\n\t\t\tfrom,\n\t\t\tunpipeSignal,\n\t\t};\n\t} catch (error) {\n\t\treturn {destinationError: error};\n\t}\n};\n\n// Piping subprocesses can use three syntaxes:\n// - source.pipe('command', commandArguments, pipeOptionsOrDestinationOptions)\n// - source.pipe`command commandArgument` or source.pipe(pipeOptionsOrDestinationOptions)`command commandArgument`\n// - source.pipe(execa(...), pipeOptions)\nconst getDestination = (boundOptions, createNested, firstArgument, ...pipeArguments) => {\n\tif (Array.isArray(firstArgument)) {\n\t\tconst destination = createNested(mapDestinationArguments, boundOptions)(firstArgument, ...pipeArguments);\n\t\treturn {destination, pipeOptions: boundOptions};\n\t}\n\n\tif (typeof firstArgument === 'string' || firstArgument instanceof URL) {\n\t\tif (Object.keys(boundOptions).length > 0) {\n\t\t\tthrow new TypeError('Please use .pipe(\"file\", ..., options) or .pipe(execa(\"file\", ..., options)) instead of .pipe(options)(\"file\", ...).');\n\t\t}\n\n\t\tconst [rawFile, rawArguments, rawOptions] = normalizeParameters(firstArgument, ...pipeArguments);\n\t\tconst destination = createNested(mapDestinationArguments)(rawFile, rawArguments, rawOptions);\n\t\treturn {destination, pipeOptions: rawOptions};\n\t}\n\n\tif (SUBPROCESS_OPTIONS.has(firstArgument)) {\n\t\tif (Object.keys(boundOptions).length > 0) {\n\t\t\tthrow new TypeError('Please use .pipe(options)`command` or .pipe($(options)`command`) instead of .pipe(options)($`command`).');\n\t\t}\n\n\t\treturn {destination: firstArgument, pipeOptions: pipeArguments[0]};\n\t}\n\n\tthrow new TypeError(`The first argument must be a template string, an options object, or an Execa subprocess: ${firstArgument}`);\n};\n\n// Force `stdin: 'pipe'` with the destination subprocess\nconst mapDestinationArguments = ({options}) => ({options: {...options, stdin: 'pipe', piped: true}});\n\nconst getSourceStream = (source, from) => {\n\ttry {\n\t\tconst sourceStream = getFromStream(source, from);\n\t\treturn {sourceStream};\n\t} catch (error) {\n\t\treturn {sourceError: error};\n\t}\n};\n","import {makeEarlyError} from '../return/result.js';\nimport {abortSourceStream, endDestinationStream} from '../io/pipeline.js';\n\n// When passing invalid arguments to `source.pipe()`, throw asynchronously.\n// We also abort both subprocesses.\nexport const handlePipeArgumentsError = ({\n\tsourceStream,\n\tsourceError,\n\tdestinationStream,\n\tdestinationError,\n\tfileDescriptors,\n\tsourceOptions,\n\tstartTime,\n}) => {\n\tconst error = getPipeArgumentsError({\n\t\tsourceStream,\n\t\tsourceError,\n\t\tdestinationStream,\n\t\tdestinationError,\n\t});\n\tif (error !== undefined) {\n\t\tthrow createNonCommandError({\n\t\t\terror,\n\t\t\tfileDescriptors,\n\t\t\tsourceOptions,\n\t\t\tstartTime,\n\t\t});\n\t}\n};\n\nconst getPipeArgumentsError = ({sourceStream, sourceError, destinationStream, destinationError}) => {\n\tif (sourceError !== undefined && destinationError !== undefined) {\n\t\treturn destinationError;\n\t}\n\n\tif (destinationError !== undefined) {\n\t\tabortSourceStream(sourceStream);\n\t\treturn destinationError;\n\t}\n\n\tif (sourceError !== undefined) {\n\t\tendDestinationStream(destinationStream);\n\t\treturn sourceError;\n\t}\n};\n\n// Specific error return value when passing invalid arguments to `subprocess.pipe()` or when using `unpipeSignal`\nexport const createNonCommandError = ({error, fileDescriptors, sourceOptions, startTime}) => makeEarlyError({\n\terror,\n\tcommand: PIPE_COMMAND_MESSAGE,\n\tescapedCommand: PIPE_COMMAND_MESSAGE,\n\tfileDescriptors,\n\toptions: sourceOptions,\n\tstartTime,\n\tisSync: false,\n});\n\nconst PIPE_COMMAND_MESSAGE = 'source.pipe(destination)';\n","// Like Bash, we await both subprocesses. This is unlike some other shells which only await the destination subprocess.\n// Like Bash with the `pipefail` option, if either subprocess fails, the whole pipe fails.\n// Like Bash, if both subprocesses fail, we return the failure of the destination.\n// This ensures both subprocesses' errors are present, using `error.pipedFrom`.\nexport const waitForBothSubprocesses = async subprocessPromises => {\n\tconst [\n\t\t{status: sourceStatus, reason: sourceReason, value: sourceResult = sourceReason},\n\t\t{status: destinationStatus, reason: destinationReason, value: destinationResult = destinationReason},\n\t] = await subprocessPromises;\n\n\tif (!destinationResult.pipedFrom.includes(sourceResult)) {\n\t\tdestinationResult.pipedFrom.push(sourceResult);\n\t}\n\n\tif (destinationStatus === 'rejected') {\n\t\tthrow destinationResult;\n\t}\n\n\tif (sourceStatus === 'rejected') {\n\t\tthrow sourceResult;\n\t}\n\n\treturn destinationResult;\n};\n","import {finished} from 'node:stream/promises';\nimport mergeStreams from '@sindresorhus/merge-streams';\nimport {incrementMaxListeners} from '../utils/max-listeners.js';\nimport {pipeStreams} from '../io/pipeline.js';\n\n// The piping behavior is like Bash.\n// In particular, when one subprocess exits, the other is not terminated by a signal.\n// Instead, its stdout (for the source) or stdin (for the destination) closes.\n// If the subprocess uses it, it will make it error with SIGPIPE or EPIPE (for the source) or end (for the destination).\n// If it does not use it, it will continue running.\n// This allows for subprocesses to gracefully exit and lower the coupling between subprocesses.\nexport const pipeSubprocessStream = (sourceStream, destinationStream, maxListenersController) => {\n\tconst mergedStream = MERGED_STREAMS.has(destinationStream)\n\t\t? pipeMoreSubprocessStream(sourceStream, destinationStream)\n\t\t: pipeFirstSubprocessStream(sourceStream, destinationStream);\n\tincrementMaxListeners(sourceStream, SOURCE_LISTENERS_PER_PIPE, maxListenersController.signal);\n\tincrementMaxListeners(destinationStream, DESTINATION_LISTENERS_PER_PIPE, maxListenersController.signal);\n\tcleanupMergedStreamsMap(destinationStream);\n\treturn mergedStream;\n};\n\n// We use `merge-streams` to allow for multiple sources to pipe to the same destination.\nconst pipeFirstSubprocessStream = (sourceStream, destinationStream) => {\n\tconst mergedStream = mergeStreams([sourceStream]);\n\tpipeStreams(mergedStream, destinationStream);\n\tMERGED_STREAMS.set(destinationStream, mergedStream);\n\treturn mergedStream;\n};\n\nconst pipeMoreSubprocessStream = (sourceStream, destinationStream) => {\n\tconst mergedStream = MERGED_STREAMS.get(destinationStream);\n\tmergedStream.add(sourceStream);\n\treturn mergedStream;\n};\n\nconst cleanupMergedStreamsMap = async destinationStream => {\n\ttry {\n\t\tawait finished(destinationStream, {cleanup: true, readable: false, writable: true});\n\t} catch {}\n\n\tMERGED_STREAMS.delete(destinationStream);\n};\n\nconst MERGED_STREAMS = new WeakMap();\n\n// Number of listeners set up on `sourceStream` by each `sourceStream.pipe(destinationStream)`\n// Those are added by `merge-streams`\nconst SOURCE_LISTENERS_PER_PIPE = 2;\n// Number of listeners set up on `destinationStream` by each `sourceStream.pipe(destinationStream)`\n// Those are added by `finished()` in `cleanupMergedStreamsMap()`\nconst DESTINATION_LISTENERS_PER_PIPE = 1;\n","import {aborted} from 'node:util';\nimport {createNonCommandError} from './throw.js';\n\n// When passing an `unpipeSignal` option, abort piping when the signal is aborted.\n// However, do not terminate the subprocesses.\nexport const unpipeOnAbort = (unpipeSignal, unpipeContext) => unpipeSignal === undefined\n\t? []\n\t: [unpipeOnSignalAbort(unpipeSignal, unpipeContext)];\n\nconst unpipeOnSignalAbort = async (unpipeSignal, {sourceStream, mergedStream, fileDescriptors, sourceOptions, startTime}) => {\n\tawait aborted(unpipeSignal, sourceStream);\n\tawait mergedStream.remove(sourceStream);\n\tconst error = new Error('Pipe canceled by `unpipeSignal` option.');\n\tthrow createNonCommandError({\n\t\terror,\n\t\tfileDescriptors,\n\t\tsourceOptions,\n\t\tstartTime,\n\t});\n};\n","import isPlainObject from 'is-plain-obj';\nimport {normalizePipeArguments} from './pipe-arguments.js';\nimport {handlePipeArgumentsError} from './throw.js';\nimport {waitForBothSubprocesses} from './sequence.js';\nimport {pipeSubprocessStream} from './streaming.js';\nimport {unpipeOnAbort} from './abort.js';\n\n// Pipe a subprocess' `stdout`/`stderr`/`stdio` into another subprocess' `stdin`\nexport const pipeToSubprocess = (sourceInfo, ...pipeArguments) => {\n\tif (isPlainObject(pipeArguments[0])) {\n\t\treturn pipeToSubprocess.bind(undefined, {\n\t\t\t...sourceInfo,\n\t\t\tboundOptions: {...sourceInfo.boundOptions, ...pipeArguments[0]},\n\t\t});\n\t}\n\n\tconst {destination, ...normalizedInfo} = normalizePipeArguments(sourceInfo, ...pipeArguments);\n\tconst promise = handlePipePromise({...normalizedInfo, destination});\n\tpromise.pipe = pipeToSubprocess.bind(undefined, {\n\t\t...sourceInfo,\n\t\tsource: destination,\n\t\tsourcePromise: promise,\n\t\tboundOptions: {},\n\t});\n\treturn promise;\n};\n\n// Asynchronous logic when piping subprocesses\nconst handlePipePromise = async ({\n\tsourcePromise,\n\tsourceStream,\n\tsourceOptions,\n\tsourceError,\n\tdestination,\n\tdestinationStream,\n\tdestinationError,\n\tunpipeSignal,\n\tfileDescriptors,\n\tstartTime,\n}) => {\n\tconst subprocessPromises = getSubprocessPromises(sourcePromise, destination);\n\thandlePipeArgumentsError({\n\t\tsourceStream,\n\t\tsourceError,\n\t\tdestinationStream,\n\t\tdestinationError,\n\t\tfileDescriptors,\n\t\tsourceOptions,\n\t\tstartTime,\n\t});\n\tconst maxListenersController = new AbortController();\n\ttry {\n\t\tconst mergedStream = pipeSubprocessStream(sourceStream, destinationStream, maxListenersController);\n\t\treturn await Promise.race([\n\t\t\twaitForBothSubprocesses(subprocessPromises),\n\t\t\t...unpipeOnAbort(unpipeSignal, {\n\t\t\t\tsourceStream,\n\t\t\t\tmergedStream,\n\t\t\t\tsourceOptions,\n\t\t\t\tfileDescriptors,\n\t\t\t\tstartTime,\n\t\t\t}),\n\t\t]);\n\t} finally {\n\t\tmaxListenersController.abort();\n\t}\n};\n\n// `.pipe()` awaits the subprocess promises.\n// When invalid arguments are passed to `.pipe()`, we throw an error, which prevents awaiting them.\n// We need to ensure this does not create unhandled rejections.\nconst getSubprocessPromises = (sourcePromise, destination) => Promise.allSettled([sourcePromise, destination]);\n","export const identity = value => value;\n\nexport const noop = () => undefined;\n\nexport const getContentsProperty = ({contents}) => contents;\n\nexport const throwObjectStream = chunk => {\n\tthrow new Error(`Streams in object mode are not supported: ${String(chunk)}`);\n};\n\nexport const getLengthProperty = convertedChunk => convertedChunk.length;\n","import {getStreamContents} from './contents.js';\nimport {identity, noop, getContentsProperty} from './utils.js';\n\nexport async function getStreamAsArray(stream, options) {\n\treturn getStreamContents(stream, arrayMethods, options);\n}\n\nconst initArray = () => ({contents: []});\n\nconst increment = () => 1;\n\nconst addArrayChunk = (convertedChunk, {contents}) => {\n\tcontents.push(convertedChunk);\n\treturn contents;\n};\n\nconst arrayMethods = {\n\tinit: initArray,\n\tconvertChunk: {\n\t\tstring: identity,\n\t\tbuffer: identity,\n\t\tarrayBuffer: identity,\n\t\tdataView: identity,\n\t\ttypedArray: identity,\n\t\tothers: identity,\n\t},\n\tgetSize: increment,\n\ttruncateChunk: noop,\n\taddChunk: addArrayChunk,\n\tgetFinalChunk: noop,\n\tfinalize: getContentsProperty,\n};\n","import {getStreamContents} from './contents.js';\nimport {noop, throwObjectStream, getLengthProperty} from './utils.js';\n\nexport async function getStreamAsArrayBuffer(stream, options) {\n\treturn getStreamContents(stream, arrayBufferMethods, options);\n}\n\nconst initArrayBuffer = () => ({contents: new ArrayBuffer(0)});\n\nconst useTextEncoder = chunk => textEncoder.encode(chunk);\nconst textEncoder = new TextEncoder();\n\nconst useUint8Array = chunk => new Uint8Array(chunk);\n\nconst useUint8ArrayWithOffset = chunk => new Uint8Array(chunk.buffer, chunk.byteOffset, chunk.byteLength);\n\nconst truncateArrayBufferChunk = (convertedChunk, chunkSize) => convertedChunk.slice(0, chunkSize);\n\n// `contents` is an increasingly growing `Uint8Array`.\nconst addArrayBufferChunk = (convertedChunk, {contents, length: previousLength}, length) => {\n\tconst newContents = hasArrayBufferResize() ? resizeArrayBuffer(contents, length) : resizeArrayBufferSlow(contents, length);\n\tnew Uint8Array(newContents).set(convertedChunk, previousLength);\n\treturn newContents;\n};\n\n// Without `ArrayBuffer.resize()`, `contents` size is always a power of 2.\n// This means its last bytes are zeroes (not stream data), which need to be\n// trimmed at the end with `ArrayBuffer.slice()`.\nconst resizeArrayBufferSlow = (contents, length) => {\n\tif (length <= contents.byteLength) {\n\t\treturn contents;\n\t}\n\n\tconst arrayBuffer = new ArrayBuffer(getNewContentsLength(length));\n\tnew Uint8Array(arrayBuffer).set(new Uint8Array(contents), 0);\n\treturn arrayBuffer;\n};\n\n// With `ArrayBuffer.resize()`, `contents` size matches exactly the size of\n// the stream data. It does not include extraneous zeroes to trim at the end.\n// The underlying `ArrayBuffer` does allocate a number of bytes that is a power\n// of 2, but those bytes are only visible after calling `ArrayBuffer.resize()`.\nconst resizeArrayBuffer = (contents, length) => {\n\tif (length <= contents.maxByteLength) {\n\t\tcontents.resize(length);\n\t\treturn contents;\n\t}\n\n\tconst arrayBuffer = new ArrayBuffer(length, {maxByteLength: getNewContentsLength(length)});\n\tnew Uint8Array(arrayBuffer).set(new Uint8Array(contents), 0);\n\treturn arrayBuffer;\n};\n\n// Retrieve the closest `length` that is both >= and a power of 2\nconst getNewContentsLength = length => SCALE_FACTOR ** Math.ceil(Math.log(length) / Math.log(SCALE_FACTOR));\n\nconst SCALE_FACTOR = 2;\n\nconst finalizeArrayBuffer = ({contents, length}) => hasArrayBufferResize() ? contents : contents.slice(0, length);\n\n// `ArrayBuffer.slice()` is slow. When `ArrayBuffer.resize()` is available\n// (Node >=20.0.0, Safari >=16.4 and Chrome), we can use it instead.\n// eslint-disable-next-line no-warning-comments\n// TODO: remove after dropping support for Node 20.\n// eslint-disable-next-line no-warning-comments\n// TODO: use `ArrayBuffer.transferToFixedLength()` instead once it is available\nconst hasArrayBufferResize = () => 'resize' in ArrayBuffer.prototype;\n\nconst arrayBufferMethods = {\n\tinit: initArrayBuffer,\n\tconvertChunk: {\n\t\tstring: useTextEncoder,\n\t\tbuffer: useUint8Array,\n\t\tarrayBuffer: useUint8Array,\n\t\tdataView: useUint8ArrayWithOffset,\n\t\ttypedArray: useUint8ArrayWithOffset,\n\t\tothers: throwObjectStream,\n\t},\n\tgetSize: getLengthProperty,\n\ttruncateChunk: truncateArrayBufferChunk,\n\taddChunk: addArrayBufferChunk,\n\tgetFinalChunk: noop,\n\tfinalize: finalizeArrayBuffer,\n};\n","import {getStreamContents} from './contents.js';\nimport {\n\tidentity,\n\tgetContentsProperty,\n\tthrowObjectStream,\n\tgetLengthProperty,\n} from './utils.js';\n\nexport async function getStreamAsString(stream, options) {\n\treturn getStreamContents(stream, stringMethods, options);\n}\n\nconst initString = () => ({contents: '', textDecoder: new TextDecoder()});\n\nconst useTextDecoder = (chunk, {textDecoder}) => textDecoder.decode(chunk, {stream: true});\n\nconst addStringChunk = (convertedChunk, {contents}) => contents + convertedChunk;\n\nconst truncateStringChunk = (convertedChunk, chunkSize) => convertedChunk.slice(0, chunkSize);\n\nconst getFinalStringChunk = ({textDecoder}) => {\n\tconst finalChunk = textDecoder.decode();\n\treturn finalChunk === '' ? undefined : finalChunk;\n};\n\nconst stringMethods = {\n\tinit: initString,\n\tconvertChunk: {\n\t\tstring: identity,\n\t\tbuffer: useTextDecoder,\n\t\tarrayBuffer: useTextDecoder,\n\t\tdataView: useTextDecoder,\n\t\ttypedArray: useTextDecoder,\n\t\tothers: throwObjectStream,\n\t},\n\tgetSize: getLengthProperty,\n\ttruncateChunk: truncateStringChunk,\n\taddChunk: addStringChunk,\n\tgetFinalChunk: getFinalStringChunk,\n\tfinalize: getContentsProperty,\n};\n","import {on} from 'node:events';\nimport {getDefaultHighWaterMark} from 'node:stream';\nimport {getEncodingTransformGenerator} from '../transform/encoding-transform.js';\nimport {getSplitLinesGenerator} from '../transform/split.js';\nimport {transformChunkSync, finalChunksSync} from '../transform/run-sync.js';\n\n// Iterate over lines of `subprocess.stdout`, used by `subprocess.readable|duplex|iterable()`\nexport const iterateOnSubprocessStream = ({subprocessStdout, subprocess, binary, shouldEncode, encoding, preserveNewlines}) => {\n\tconst controller = new AbortController();\n\tstopReadingOnExit(subprocess, controller);\n\treturn iterateOnStream({\n\t\tstream: subprocessStdout,\n\t\tcontroller,\n\t\tbinary,\n\t\tshouldEncode: !subprocessStdout.readableObjectMode && shouldEncode,\n\t\tencoding,\n\t\tshouldSplit: !subprocessStdout.readableObjectMode,\n\t\tpreserveNewlines,\n\t});\n};\n\nconst stopReadingOnExit = async (subprocess, controller) => {\n\ttry {\n\t\tawait subprocess;\n\t} catch {} finally {\n\t\tcontroller.abort();\n\t}\n};\n\n// Iterate over lines of `subprocess.stdout`, used by `result.stdout` and the `verbose: 'full'` option.\n// Applies the `lines` and `encoding` options.\nexport const iterateForResult = ({stream, onStreamEnd, lines, encoding, stripFinalNewline, allMixed}) => {\n\tconst controller = new AbortController();\n\tstopReadingOnStreamEnd(onStreamEnd, controller, stream);\n\tconst objectMode = stream.readableObjectMode && !allMixed;\n\treturn iterateOnStream({\n\t\tstream,\n\t\tcontroller,\n\t\tbinary: encoding === 'buffer',\n\t\tshouldEncode: !objectMode,\n\t\tencoding,\n\t\tshouldSplit: !objectMode && lines,\n\t\tpreserveNewlines: !stripFinalNewline,\n\t});\n};\n\nconst stopReadingOnStreamEnd = async (onStreamEnd, controller, stream) => {\n\ttry {\n\t\tawait onStreamEnd;\n\t} catch {\n\t\tstream.destroy();\n\t} finally {\n\t\tcontroller.abort();\n\t}\n};\n\nconst iterateOnStream = ({stream, controller, binary, shouldEncode, encoding, shouldSplit, preserveNewlines}) => {\n\tconst onStdoutChunk = on(stream, 'data', {\n\t\tsignal: controller.signal,\n\t\thighWaterMark: HIGH_WATER_MARK,\n\t\t// Backward compatibility with older name for this option\n\t\t// See https://github.com/nodejs/node/pull/52080#discussion_r1525227861\n\t\t// @todo Remove after removing support for Node 21\n\t\thighWatermark: HIGH_WATER_MARK,\n\t});\n\treturn iterateOnData({\n\t\tonStdoutChunk,\n\t\tcontroller,\n\t\tbinary,\n\t\tshouldEncode,\n\t\tencoding,\n\t\tshouldSplit,\n\t\tpreserveNewlines,\n\t});\n};\n\nexport const DEFAULT_OBJECT_HIGH_WATER_MARK = getDefaultHighWaterMark(true);\n\n// The `highWaterMark` of `events.on()` is measured in number of events, not in bytes.\n// Not knowing the average amount of bytes per `data` event, we use the same heuristic as streams in objectMode, since they have the same issue.\n// Therefore, we use the value of `getDefaultHighWaterMark(true)`.\n// Note: this option does not exist on Node 18, but this is ok since the logic works without it. It just consumes more memory.\nconst HIGH_WATER_MARK = DEFAULT_OBJECT_HIGH_WATER_MARK;\n\nconst iterateOnData = async function * ({onStdoutChunk, controller, binary, shouldEncode, encoding, shouldSplit, preserveNewlines}) {\n\tconst generators = getGenerators({\n\t\tbinary,\n\t\tshouldEncode,\n\t\tencoding,\n\t\tshouldSplit,\n\t\tpreserveNewlines,\n\t});\n\n\ttry {\n\t\tfor await (const [chunk] of onStdoutChunk) {\n\t\t\tyield * transformChunkSync(chunk, generators, 0);\n\t\t}\n\t} catch (error) {\n\t\tif (!controller.signal.aborted) {\n\t\t\tthrow error;\n\t\t}\n\t} finally {\n\t\tyield * finalChunksSync(generators);\n\t}\n};\n\nconst getGenerators = ({binary, shouldEncode, encoding, shouldSplit, preserveNewlines}) => [\n\tgetEncodingTransformGenerator(binary, encoding, !shouldEncode),\n\tgetSplitLinesGenerator(binary, preserveNewlines, !shouldSplit, {}),\n].filter(Boolean);\n","import {setImmediate} from 'node:timers/promises';\nimport getStream, {getStreamAsArrayBuffer, getStreamAsArray} from 'get-stream';\nimport {isArrayBuffer} from '../utils/uint-array.js';\nimport {shouldLogOutput, logLines} from '../verbose/output.js';\nimport {iterateForResult} from './iterate.js';\nimport {handleMaxBuffer} from './max-buffer.js';\nimport {getStripFinalNewline} from './strip-newline.js';\n\n// Retrieve `result.stdout|stderr|all|stdio[*]`\nexport const getStreamOutput = async ({stream, onStreamEnd, fdNumber, encoding, buffer, maxBuffer, lines, allMixed, stripFinalNewline, verboseInfo, streamInfo: {fileDescriptors}}) => {\n\tif (shouldLogOutput({\n\t\tstdioItems: fileDescriptors[fdNumber]?.stdioItems,\n\t\tencoding,\n\t\tverboseInfo,\n\t\tfdNumber,\n\t})) {\n\t\tconst linesIterable = iterateForResult({\n\t\t\tstream,\n\t\t\tonStreamEnd,\n\t\t\tlines: true,\n\t\t\tencoding,\n\t\t\tstripFinalNewline: true,\n\t\t\tallMixed,\n\t\t});\n\t\tlogLines(linesIterable, stream, verboseInfo);\n\t}\n\n\tif (!buffer) {\n\t\tawait resumeStream(stream);\n\t\treturn;\n\t}\n\n\tconst stripFinalNewlineValue = getStripFinalNewline(stripFinalNewline, fdNumber);\n\tconst iterable = iterateForResult({\n\t\tstream,\n\t\tonStreamEnd,\n\t\tlines,\n\t\tencoding,\n\t\tstripFinalNewline: stripFinalNewlineValue,\n\t\tallMixed,\n\t});\n\treturn getStreamContents({\n\t\tstream,\n\t\titerable,\n\t\tfdNumber,\n\t\tencoding,\n\t\tmaxBuffer,\n\t\tlines,\n\t});\n};\n\n// When using `buffer: false`, users need to read `subprocess.stdout|stderr|all` right away\n// See https://github.com/sindresorhus/execa/issues/730 and https://github.com/sindresorhus/execa/pull/729#discussion_r1465496310\nconst resumeStream = async stream => {\n\tawait setImmediate();\n\tif (stream.readableFlowing === null) {\n\t\tstream.resume();\n\t}\n};\n\nconst getStreamContents = async ({stream, stream: {readableObjectMode}, iterable, fdNumber, encoding, maxBuffer, lines}) => {\n\ttry {\n\t\tif (readableObjectMode || lines) {\n\t\t\treturn await getStreamAsArray(iterable, {maxBuffer});\n\t\t}\n\n\t\tif (encoding === 'buffer') {\n\t\t\treturn new Uint8Array(await getStreamAsArrayBuffer(iterable, {maxBuffer}));\n\t\t}\n\n\t\treturn await getStream(iterable, {maxBuffer});\n\t} catch (error) {\n\t\treturn handleBufferedData(handleMaxBuffer({\n\t\t\terror,\n\t\t\tstream,\n\t\t\treadableObjectMode,\n\t\t\tlines,\n\t\t\tencoding,\n\t\t\tfdNumber,\n\t\t}));\n\t}\n};\n\n// On failure, `result.stdout|stderr|all` should contain the currently buffered stream\n// They are automatically closed and flushed by Node.js when the subprocess exits\n// When `buffer` is `false`, `streamPromise` is `undefined` and there is no buffered data to retrieve\nexport const getBufferedData = async streamPromise => {\n\ttry {\n\t\treturn await streamPromise;\n\t} catch (error) {\n\t\treturn handleBufferedData(error);\n\t}\n};\n\n// Ensure we are returning Uint8Arrays when using `encoding: 'buffer'`\nconst handleBufferedData = ({bufferedData}) => isArrayBuffer(bufferedData)\n\t? new Uint8Array(bufferedData)\n\t: bufferedData;\n","import {finished} from 'node:stream/promises';\n\n// Wraps `finished(stream)` to handle the following case:\n// - When the subprocess exits, Node.js automatically calls `subprocess.stdin.destroy()`, which we need to ignore.\n// - However, we still need to throw if `subprocess.stdin.destroy()` is called before subprocess exit.\nexport const waitForStream = async (stream, fdNumber, streamInfo, {isSameDirection, stopOnExit = false} = {}) => {\n\tconst state = handleStdinDestroy(stream, streamInfo);\n\tconst abortController = new AbortController();\n\ttry {\n\t\tawait Promise.race([\n\t\t\t...(stopOnExit ? [streamInfo.exitPromise] : []),\n\t\t\tfinished(stream, {cleanup: true, signal: abortController.signal}),\n\t\t]);\n\t} catch (error) {\n\t\tif (!state.stdinCleanedUp) {\n\t\t\thandleStreamError(error, fdNumber, streamInfo, isSameDirection);\n\t\t}\n\t} finally {\n\t\tabortController.abort();\n\t}\n};\n\n// If `subprocess.stdin` is destroyed before being fully written to, it is considered aborted and should throw an error.\n// This can happen for example when user called `subprocess.stdin.destroy()` before `subprocess.stdin.end()`.\n// However, Node.js calls `subprocess.stdin.destroy()` on exit for cleanup purposes.\n// https://github.com/nodejs/node/blob/0b4cdb4b42956cbd7019058e409e06700a199e11/lib/internal/child_process.js#L278\n// This is normal and should not throw an error.\n// Therefore, we need to differentiate between both situations to know whether to throw an error.\n// Unfortunately, events (`close`, `error`, `end`, `exit`) cannot be used because `.destroy()` can take an arbitrary amount of time.\n// For example, `stdin: 'pipe'` is implemented as a TCP socket, and its `.destroy()` method waits for TCP disconnection.\n// Therefore `.destroy()` might end before or after subprocess exit, based on OS speed and load.\n// The only way to detect this is to spy on `subprocess.stdin._destroy()` by wrapping it.\n// If `subprocess.exitCode` or `subprocess.signalCode` is set, it means `.destroy()` is being called by Node.js itself.\nconst handleStdinDestroy = (stream, {originalStreams: [originalStdin], subprocess}) => {\n\tconst state = {stdinCleanedUp: false};\n\tif (stream === originalStdin) {\n\t\tspyOnStdinDestroy(stream, subprocess, state);\n\t}\n\n\treturn state;\n};\n\nconst spyOnStdinDestroy = (subprocessStdin, subprocess, state) => {\n\tconst {_destroy} = subprocessStdin;\n\tsubprocessStdin._destroy = (...destroyArguments) => {\n\t\tsetStdinCleanedUp(subprocess, state);\n\t\t_destroy.call(subprocessStdin, ...destroyArguments);\n\t};\n};\n\nconst setStdinCleanedUp = ({exitCode, signalCode}, state) => {\n\tif (exitCode !== null || signalCode !== null) {\n\t\tstate.stdinCleanedUp = true;\n\t}\n};\n\n// We ignore EPIPEs on writable streams and aborts on readable streams since those can happen normally.\n// When one stream errors, the error is propagated to the other streams on the same file descriptor.\n// Those other streams might have a different direction due to the above.\n// When this happens, the direction of both the initial stream and the others should then be taken into account.\n// Therefore, we keep track of whether a stream error is currently propagating.\nconst handleStreamError = (error, fdNumber, streamInfo, isSameDirection) => {\n\tif (!shouldIgnoreStreamError(error, fdNumber, streamInfo, isSameDirection)) {\n\t\tthrow error;\n\t}\n};\n\nconst shouldIgnoreStreamError = (error, fdNumber, streamInfo, isSameDirection = true) => {\n\tif (streamInfo.propagating) {\n\t\treturn isStreamEpipe(error) || isStreamAbort(error);\n\t}\n\n\tstreamInfo.propagating = true;\n\treturn isInputFileDescriptor(streamInfo, fdNumber) === isSameDirection\n\t\t? isStreamEpipe(error)\n\t\t: isStreamAbort(error);\n};\n\n// Unfortunately, we cannot use the stream's class or properties to know whether it is readable or writable.\n// For example, `subprocess.stdin` is technically a Duplex, but can only be used as a writable.\n// Therefore, we need to use the file descriptor's direction (`stdin` is input, `stdout` is output, etc.).\n// However, while `subprocess.std*` and transforms follow that direction, any stream passed the `std*` option has the opposite direction.\n// For example, `subprocess.stdin` is a writable, but the `stdin` option is a readable.\nexport const isInputFileDescriptor = ({fileDescriptors}, fdNumber) => fdNumber !== 'all' && fileDescriptors[fdNumber].direction === 'input';\n\n// When `stream.destroy()` is called without an `error` argument, stream is aborted.\n// This is the only way to abort a readable stream, which can be useful in some instances.\n// Therefore, we ignore this error on readable streams.\nexport const isStreamAbort = error => error?.code === 'ERR_STREAM_PREMATURE_CLOSE';\n\n// When `stream.write()` is called but the underlying source has been closed, `EPIPE` is emitted.\n// When piping subprocesses, the source subprocess usually decides when to stop piping.\n// However, there are some instances when the destination does instead, such as `... | head -n1`.\n// It notifies the source by using `EPIPE`.\n// Therefore, we ignore this error on writable streams.\nconst isStreamEpipe = error => error?.code === 'EPIPE';\n","import {getStreamOutput} from '../io/contents.js';\nimport {waitForStream, isInputFileDescriptor} from './wait-stream.js';\n\n// Read the contents of `subprocess.std*` and|or wait for its completion\nexport const waitForStdioStreams = ({subprocess, encoding, buffer, maxBuffer, lines, stripFinalNewline, verboseInfo, streamInfo}) => subprocess.stdio.map((stream, fdNumber) => waitForSubprocessStream({\n\tstream,\n\tfdNumber,\n\tencoding,\n\tbuffer: buffer[fdNumber],\n\tmaxBuffer: maxBuffer[fdNumber],\n\tlines: lines[fdNumber],\n\tallMixed: false,\n\tstripFinalNewline,\n\tverboseInfo,\n\tstreamInfo,\n}));\n\n// Read the contents of `subprocess.std*` or `subprocess.all` and|or wait for its completion\nexport const waitForSubprocessStream = async ({stream, fdNumber, encoding, buffer, maxBuffer, lines, allMixed, stripFinalNewline, verboseInfo, streamInfo}) => {\n\tif (!stream) {\n\t\treturn;\n\t}\n\n\tconst onStreamEnd = waitForStream(stream, fdNumber, streamInfo);\n\tif (isInputFileDescriptor(streamInfo, fdNumber)) {\n\t\tawait onStreamEnd;\n\t\treturn;\n\t}\n\n\tconst [output] = await Promise.all([\n\t\tgetStreamOutput({\n\t\t\tstream,\n\t\t\tonStreamEnd,\n\t\t\tfdNumber,\n\t\t\tencoding,\n\t\t\tbuffer,\n\t\t\tmaxBuffer,\n\t\t\tlines,\n\t\t\tallMixed,\n\t\t\tstripFinalNewline,\n\t\t\tverboseInfo,\n\t\t\tstreamInfo,\n\t\t}),\n\t\tonStreamEnd,\n\t]);\n\treturn output;\n};\n","import mergeStreams from '@sindresorhus/merge-streams';\nimport {waitForSubprocessStream} from './stdio.js';\n\n// `all` interleaves `stdout` and `stderr`\nexport const makeAllStream = ({stdout, stderr}, {all}) => all && (stdout || stderr)\n\t? mergeStreams([stdout, stderr].filter(Boolean))\n\t: undefined;\n\n// Read the contents of `subprocess.all` and|or wait for its completion\nexport const waitForAllStream = ({subprocess, encoding, buffer, maxBuffer, lines, stripFinalNewline, verboseInfo, streamInfo}) => waitForSubprocessStream({\n\t...getAllStream(subprocess, buffer),\n\tfdNumber: 'all',\n\tencoding,\n\tmaxBuffer: maxBuffer[1] + maxBuffer[2],\n\tlines: lines[1] || lines[2],\n\tallMixed: getAllMixed(subprocess),\n\tstripFinalNewline,\n\tverboseInfo,\n\tstreamInfo,\n});\n\nconst getAllStream = ({stdout, stderr, all}, [, bufferStdout, bufferStderr]) => {\n\tconst buffer = bufferStdout || bufferStderr;\n\tif (!buffer) {\n\t\treturn {stream: all, buffer};\n\t}\n\n\tif (!bufferStdout) {\n\t\treturn {stream: stderr, buffer};\n\t}\n\n\tif (!bufferStderr) {\n\t\treturn {stream: stdout, buffer};\n\t}\n\n\treturn {stream: all, buffer};\n};\n\n// When `subprocess.stdout` is in objectMode but not `subprocess.stderr` (or the opposite), we need to use both:\n// - `getStreamAsArray()` for the chunks in objectMode, to return as an array without changing each chunk\n// - `getStreamAsArrayBuffer()` or `getStream()` for the chunks not in objectMode, to convert them from Buffers to string or Uint8Array\n// We do this by emulating the Buffer -> string|Uint8Array conversion performed by `get-stream` with our own, which is identical.\nconst getAllMixed = ({all, stdout, stderr}) => all\n\t&& stdout\n\t&& stderr\n\t&& stdout.readableObjectMode !== stderr.readableObjectMode;\n","import {once} from 'node:events';\nimport {isStream as isNodeStream} from 'is-stream';\nimport {throwOnTimeout} from '../terminate/timeout.js';\nimport {isStandardStream} from '../utils/standard-stream.js';\nimport {TRANSFORM_TYPES} from '../stdio/type.js';\nimport {getBufferedData} from '../io/contents.js';\nimport {waitForAllStream} from './all-async.js';\nimport {waitForStdioStreams} from './stdio.js';\nimport {waitForExit, waitForSuccessfulExit} from './exit-async.js';\nimport {waitForStream} from './wait-stream.js';\n\n// Retrieve result of subprocess: exit code, signal, error, streams (stdout/stderr/all)\nexport const waitForSubprocessResult = async ({\n\tsubprocess,\n\toptions: {encoding, buffer, maxBuffer, lines, timeoutDuration: timeout, stripFinalNewline},\n\tcontext,\n\tverboseInfo,\n\tfileDescriptors,\n\toriginalStreams,\n\tonInternalError,\n\tcontroller,\n}) => {\n\tconst exitPromise = waitForExit(subprocess);\n\tconst streamInfo = {\n\t\toriginalStreams,\n\t\tfileDescriptors,\n\t\tsubprocess,\n\t\texitPromise,\n\t\tpropagating: false,\n\t};\n\n\tconst stdioPromises = waitForStdioStreams({\n\t\tsubprocess,\n\t\tencoding,\n\t\tbuffer,\n\t\tmaxBuffer,\n\t\tlines,\n\t\tstripFinalNewline,\n\t\tverboseInfo,\n\t\tstreamInfo,\n\t});\n\tconst allPromise = waitForAllStream({\n\t\tsubprocess,\n\t\tencoding,\n\t\tbuffer,\n\t\tmaxBuffer,\n\t\tlines,\n\t\tstripFinalNewline,\n\t\tverboseInfo,\n\t\tstreamInfo,\n\t});\n\tconst originalPromises = waitForOriginalStreams(originalStreams, subprocess, streamInfo);\n\tconst customStreamsEndPromises = waitForCustomStreamsEnd(fileDescriptors, streamInfo);\n\n\ttry {\n\t\treturn await Promise.race([\n\t\t\tPromise.all([\n\t\t\t\t{},\n\t\t\t\twaitForSuccessfulExit(exitPromise),\n\t\t\t\tPromise.all(stdioPromises),\n\t\t\t\tallPromise,\n\t\t\t\t...originalPromises,\n\t\t\t\t...customStreamsEndPromises,\n\t\t\t]),\n\t\t\tonInternalError,\n\t\t\tthrowOnSubprocessError(subprocess, controller),\n\t\t\t...throwOnTimeout(subprocess, timeout, context, controller),\n\t\t]);\n\t} catch (error) {\n\t\treturn Promise.all([\n\t\t\t{error},\n\t\t\texitPromise,\n\t\t\tPromise.all(stdioPromises.map(stdioPromise => getBufferedData(stdioPromise))),\n\t\t\tgetBufferedData(allPromise),\n\t\t\tPromise.allSettled(originalPromises),\n\t\t\tPromise.allSettled(customStreamsEndPromises),\n\t\t]);\n\t}\n};\n\n// Transforms replace `subprocess.std*`, which means they are not exposed to users.\n// However, we still want to wait for their completion.\nconst waitForOriginalStreams = (originalStreams, subprocess, streamInfo) =>\n\toriginalStreams.map((stream, fdNumber) => stream === subprocess.stdio[fdNumber]\n\t\t? undefined\n\t\t: waitForStream(stream, fdNumber, streamInfo));\n\n// Some `stdin`/`stdout`/`stderr` options create a stream, e.g. when passing a file path.\n// The `.pipe()` method automatically ends that stream when `subprocess` ends.\n// This makes sure we wait for the completion of those streams, in order to catch any error.\nconst waitForCustomStreamsEnd = (fileDescriptors, streamInfo) => fileDescriptors.flatMap(({stdioItems}, fdNumber) => stdioItems\n\t.filter(({value, stream = value}) => isNodeStream(stream, {checkOpen: false}) && !isStandardStream(stream))\n\t.map(({type, value, stream = value}) => waitForStream(stream, fdNumber, streamInfo, {\n\t\tisSameDirection: TRANSFORM_TYPES.has(type),\n\t\tstopOnExit: type === 'native',\n\t})));\n\n// Fails when the subprocess emits an `error` event\nconst throwOnSubprocessError = async (subprocess, {signal}) => {\n\tconst [error] = await once(subprocess, 'error', {signal});\n\tthrow error;\n};\n","export const createDeferred = () => {\n\tconst methods = {};\n\tconst promise = new Promise((resolve, reject) => {\n\t\tObject.assign(methods, {resolve, reject});\n\t});\n\treturn Object.assign(promise, methods);\n};\n","import {createDeferred} from '../utils/deferred.js';\n\n// When using multiple `.readable()`/`.writable()`/`.duplex()`, `final` and `destroy` should wait for other streams\nexport const initializeConcurrentStreams = () => ({\n\treadableDestroy: new WeakMap(),\n\twritableFinal: new WeakMap(),\n\twritableDestroy: new WeakMap(),\n});\n\n// Each file descriptor + `waitName` has its own array of promises.\n// Each promise is a single `.readable()`/`.writable()`/`.duplex()` call.\nexport const addConcurrentStream = (concurrentStreams, stream, waitName) => {\n\tconst weakMap = concurrentStreams[waitName];\n\tif (!weakMap.has(stream)) {\n\t\tweakMap.set(stream, []);\n\t}\n\n\tconst promises = weakMap.get(stream);\n\tconst promise = createDeferred();\n\tpromises.push(promise);\n\tconst resolve = promise.resolve.bind(promise);\n\treturn {resolve, promises};\n};\n\n// Wait for other streams, but stop waiting when subprocess ends\nexport const waitForConcurrentStreams = async ({resolve, promises}, subprocess) => {\n\tresolve();\n\tconst [isSubprocessExit] = await Promise.race([\n\t\tPromise.allSettled([true, subprocess]),\n\t\tPromise.all([false, ...promises]),\n\t]);\n\treturn !isSubprocessExit;\n};\n","import {finished} from 'node:stream/promises';\nimport {isStreamAbort} from '../resolve/wait-stream.js';\n\nexport const safeWaitForSubprocessStdin = async subprocessStdin => {\n\tif (subprocessStdin === undefined) {\n\t\treturn;\n\t}\n\n\ttry {\n\t\tawait waitForSubprocessStdin(subprocessStdin);\n\t} catch {}\n};\n\nexport const safeWaitForSubprocessStdout = async subprocessStdout => {\n\tif (subprocessStdout === undefined) {\n\t\treturn;\n\t}\n\n\ttry {\n\t\tawait waitForSubprocessStdout(subprocessStdout);\n\t} catch {}\n};\n\nexport const waitForSubprocessStdin = async subprocessStdin => {\n\tawait finished(subprocessStdin, {cleanup: true, readable: false, writable: true});\n};\n\nexport const waitForSubprocessStdout = async subprocessStdout => {\n\tawait finished(subprocessStdout, {cleanup: true, readable: true, writable: false});\n};\n\n// When `readable` or `writable` aborts/errors, awaits the subprocess, for the reason mentioned above\nexport const waitForSubprocess = async (subprocess, error) => {\n\tawait subprocess;\n\tif (error) {\n\t\tthrow error;\n\t}\n};\n\nexport const destroyOtherStream = (stream, isOpen, error) => {\n\tif (error && !isStreamAbort(error)) {\n\t\tstream.destroy(error);\n\t} else if (isOpen) {\n\t\tstream.destroy();\n\t}\n};\n","import {Readable} from 'node:stream';\nimport {callbackify} from 'node:util';\nimport {BINARY_ENCODINGS} from '../arguments/encoding-option.js';\nimport {getFromStream} from '../arguments/fd-options.js';\nimport {iterateOnSubprocessStream, DEFAULT_OBJECT_HIGH_WATER_MARK} from '../io/iterate.js';\nimport {createDeferred} from '../utils/deferred.js';\nimport {addConcurrentStream, waitForConcurrentStreams} from './concurrent.js';\nimport {\n\tsafeWaitForSubprocessStdin,\n\twaitForSubprocessStdout,\n\twaitForSubprocess,\n\tdestroyOtherStream,\n} from './shared.js';\n\n// Create a `Readable` stream that forwards from `stdout` and awaits the subprocess\nexport const createReadable = ({subprocess, concurrentStreams, encoding}, {from, binary: binaryOption = true, preserveNewlines = true} = {}) => {\n\tconst binary = binaryOption || BINARY_ENCODINGS.has(encoding);\n\tconst {subprocessStdout, waitReadableDestroy} = getSubprocessStdout(subprocess, from, concurrentStreams);\n\tconst {readableEncoding, readableObjectMode, readableHighWaterMark} = getReadableOptions(subprocessStdout, binary);\n\tconst {read, onStdoutDataDone} = getReadableMethods({\n\t\tsubprocessStdout,\n\t\tsubprocess,\n\t\tbinary,\n\t\tencoding,\n\t\tpreserveNewlines,\n\t});\n\tconst readable = new Readable({\n\t\tread,\n\t\tdestroy: callbackify(onReadableDestroy.bind(undefined, {subprocessStdout, subprocess, waitReadableDestroy})),\n\t\thighWaterMark: readableHighWaterMark,\n\t\tobjectMode: readableObjectMode,\n\t\tencoding: readableEncoding,\n\t});\n\tonStdoutFinished({\n\t\tsubprocessStdout,\n\t\tonStdoutDataDone,\n\t\treadable,\n\t\tsubprocess,\n\t});\n\treturn readable;\n};\n\n// Retrieve `stdout` (or other stream depending on `from`)\nexport const getSubprocessStdout = (subprocess, from, concurrentStreams) => {\n\tconst subprocessStdout = getFromStream(subprocess, from);\n\tconst waitReadableDestroy = addConcurrentStream(concurrentStreams, subprocessStdout, 'readableDestroy');\n\treturn {subprocessStdout, waitReadableDestroy};\n};\n\nexport const getReadableOptions = ({readableEncoding, readableObjectMode, readableHighWaterMark}, binary) => binary\n\t? {readableEncoding, readableObjectMode, readableHighWaterMark}\n\t: {readableEncoding, readableObjectMode: true, readableHighWaterMark: DEFAULT_OBJECT_HIGH_WATER_MARK};\n\nexport const getReadableMethods = ({subprocessStdout, subprocess, binary, encoding, preserveNewlines}) => {\n\tconst onStdoutDataDone = createDeferred();\n\tconst onStdoutData = iterateOnSubprocessStream({\n\t\tsubprocessStdout,\n\t\tsubprocess,\n\t\tbinary,\n\t\tshouldEncode: !binary,\n\t\tencoding,\n\t\tpreserveNewlines,\n\t});\n\n\treturn {\n\t\tread() {\n\t\t\tonRead(this, onStdoutData, onStdoutDataDone);\n\t\t},\n\t\tonStdoutDataDone,\n\t};\n};\n\n// Forwards data from `stdout` to `readable`\nconst onRead = async (readable, onStdoutData, onStdoutDataDone) => {\n\ttry {\n\t\tconst {value, done} = await onStdoutData.next();\n\t\tif (done) {\n\t\t\tonStdoutDataDone.resolve();\n\t\t} else {\n\t\t\treadable.push(value);\n\t\t}\n\t} catch {}\n};\n\n// When `subprocess.stdout` ends/aborts/errors, do the same on `readable`.\n// Await the subprocess, for the same reason as above.\nexport const onStdoutFinished = async ({subprocessStdout, onStdoutDataDone, readable, subprocess, subprocessStdin}) => {\n\ttry {\n\t\tawait waitForSubprocessStdout(subprocessStdout);\n\t\tawait subprocess;\n\t\tawait safeWaitForSubprocessStdin(subprocessStdin);\n\t\tawait onStdoutDataDone;\n\n\t\tif (readable.readable) {\n\t\t\treadable.push(null);\n\t\t}\n\t} catch (error) {\n\t\tawait safeWaitForSubprocessStdin(subprocessStdin);\n\t\tdestroyOtherReadable(readable, error);\n\t}\n};\n\n// When `readable` aborts/errors, do the same on `subprocess.stdout`\nexport const onReadableDestroy = async ({subprocessStdout, subprocess, waitReadableDestroy}, error) => {\n\tif (await waitForConcurrentStreams(waitReadableDestroy, subprocess)) {\n\t\tdestroyOtherReadable(subprocessStdout, error);\n\t\tawait waitForSubprocess(subprocess, error);\n\t}\n};\n\nconst destroyOtherReadable = (stream, error) => {\n\tdestroyOtherStream(stream, stream.readable, error);\n};\n","import {Writable} from 'node:stream';\nimport {callbackify} from 'node:util';\nimport {getToStream} from '../arguments/fd-options.js';\nimport {addConcurrentStream, waitForConcurrentStreams} from './concurrent.js';\nimport {\n\tsafeWaitForSubprocessStdout,\n\twaitForSubprocessStdin,\n\twaitForSubprocess,\n\tdestroyOtherStream,\n} from './shared.js';\n\n// Create a `Writable` stream that forwards to `stdin` and awaits the subprocess\nexport const createWritable = ({subprocess, concurrentStreams}, {to} = {}) => {\n\tconst {subprocessStdin, waitWritableFinal, waitWritableDestroy} = getSubprocessStdin(subprocess, to, concurrentStreams);\n\tconst writable = new Writable({\n\t\t...getWritableMethods(subprocessStdin, subprocess, waitWritableFinal),\n\t\tdestroy: callbackify(onWritableDestroy.bind(undefined, {\n\t\t\tsubprocessStdin,\n\t\t\tsubprocess,\n\t\t\twaitWritableFinal,\n\t\t\twaitWritableDestroy,\n\t\t})),\n\t\thighWaterMark: subprocessStdin.writableHighWaterMark,\n\t\tobjectMode: subprocessStdin.writableObjectMode,\n\t});\n\tonStdinFinished(subprocessStdin, writable);\n\treturn writable;\n};\n\n// Retrieve `stdin` (or other stream depending on `to`)\nexport const getSubprocessStdin = (subprocess, to, concurrentStreams) => {\n\tconst subprocessStdin = getToStream(subprocess, to);\n\tconst waitWritableFinal = addConcurrentStream(concurrentStreams, subprocessStdin, 'writableFinal');\n\tconst waitWritableDestroy = addConcurrentStream(concurrentStreams, subprocessStdin, 'writableDestroy');\n\treturn {subprocessStdin, waitWritableFinal, waitWritableDestroy};\n};\n\nexport const getWritableMethods = (subprocessStdin, subprocess, waitWritableFinal) => ({\n\twrite: onWrite.bind(undefined, subprocessStdin),\n\tfinal: callbackify(onWritableFinal.bind(undefined, subprocessStdin, subprocess, waitWritableFinal)),\n});\n\n// Forwards data from `writable` to `stdin`\nconst onWrite = (subprocessStdin, chunk, encoding, done) => {\n\tif (subprocessStdin.write(chunk, encoding)) {\n\t\tdone();\n\t} else {\n\t\tsubprocessStdin.once('drain', done);\n\t}\n};\n\n// Ensures that the writable `final` and readable `end` events awaits the subprocess.\n// Like this, any subprocess failure is propagated as a stream `error` event, instead of being lost.\n// The user does not need to `await` the subprocess anymore, but now needs to await the stream completion or error.\n// When multiple writables are targeting the same stream, they wait for each other, unless the subprocess ends first.\nconst onWritableFinal = async (subprocessStdin, subprocess, waitWritableFinal) => {\n\tif (await waitForConcurrentStreams(waitWritableFinal, subprocess)) {\n\t\tif (subprocessStdin.writable) {\n\t\t\tsubprocessStdin.end();\n\t\t}\n\n\t\tawait subprocess;\n\t}\n};\n\n// When `subprocess.stdin` ends/aborts/errors, do the same on `writable`.\nexport const onStdinFinished = async (subprocessStdin, writable, subprocessStdout) => {\n\ttry {\n\t\tawait waitForSubprocessStdin(subprocessStdin);\n\t\tif (writable.writable) {\n\t\t\twritable.end();\n\t\t}\n\t} catch (error) {\n\t\tawait safeWaitForSubprocessStdout(subprocessStdout);\n\t\tdestroyOtherWritable(writable, error);\n\t}\n};\n\n// When `writable` aborts/errors, do the same on `subprocess.stdin`\nexport const onWritableDestroy = async ({subprocessStdin, subprocess, waitWritableFinal, waitWritableDestroy}, error) => {\n\tawait waitForConcurrentStreams(waitWritableFinal, subprocess);\n\tif (await waitForConcurrentStreams(waitWritableDestroy, subprocess)) {\n\t\tdestroyOtherWritable(subprocessStdin, error);\n\t\tawait waitForSubprocess(subprocess, error);\n\t}\n};\n\nconst destroyOtherWritable = (stream, error) => {\n\tdestroyOtherStream(stream, stream.writable, error);\n};\n","import {Duplex} from 'node:stream';\nimport {callbackify} from 'node:util';\nimport {BINARY_ENCODINGS} from '../arguments/encoding-option.js';\nimport {\n\tgetSubprocessStdout,\n\tgetReadableOptions,\n\tgetReadableMethods,\n\tonStdoutFinished,\n\tonReadableDestroy,\n} from './readable.js';\nimport {\n\tgetSubprocessStdin,\n\tgetWritableMethods,\n\tonStdinFinished,\n\tonWritableDestroy,\n} from './writable.js';\n\n// Create a `Duplex` stream combining both `subprocess.readable()` and `subprocess.writable()`\nexport const createDuplex = ({subprocess, concurrentStreams, encoding}, {from, to, binary: binaryOption = true, preserveNewlines = true} = {}) => {\n\tconst binary = binaryOption || BINARY_ENCODINGS.has(encoding);\n\tconst {subprocessStdout, waitReadableDestroy} = getSubprocessStdout(subprocess, from, concurrentStreams);\n\tconst {subprocessStdin, waitWritableFinal, waitWritableDestroy} = getSubprocessStdin(subprocess, to, concurrentStreams);\n\tconst {readableEncoding, readableObjectMode, readableHighWaterMark} = getReadableOptions(subprocessStdout, binary);\n\tconst {read, onStdoutDataDone} = getReadableMethods({\n\t\tsubprocessStdout,\n\t\tsubprocess,\n\t\tbinary,\n\t\tencoding,\n\t\tpreserveNewlines,\n\t});\n\tconst duplex = new Duplex({\n\t\tread,\n\t\t...getWritableMethods(subprocessStdin, subprocess, waitWritableFinal),\n\t\tdestroy: callbackify(onDuplexDestroy.bind(undefined, {\n\t\t\tsubprocessStdout,\n\t\t\tsubprocessStdin,\n\t\t\tsubprocess,\n\t\t\twaitReadableDestroy,\n\t\t\twaitWritableFinal,\n\t\t\twaitWritableDestroy,\n\t\t})),\n\t\treadableHighWaterMark,\n\t\twritableHighWaterMark: subprocessStdin.writableHighWaterMark,\n\t\treadableObjectMode,\n\t\twritableObjectMode: subprocessStdin.writableObjectMode,\n\t\tencoding: readableEncoding,\n\t});\n\tonStdoutFinished({\n\t\tsubprocessStdout,\n\t\tonStdoutDataDone,\n\t\treadable: duplex,\n\t\tsubprocess,\n\t\tsubprocessStdin,\n\t});\n\tonStdinFinished(subprocessStdin, duplex, subprocessStdout);\n\treturn duplex;\n};\n\nconst onDuplexDestroy = async ({subprocessStdout, subprocessStdin, subprocess, waitReadableDestroy, waitWritableFinal, waitWritableDestroy}, error) => {\n\tawait Promise.all([\n\t\tonReadableDestroy({subprocessStdout, subprocess, waitReadableDestroy}, error),\n\t\tonWritableDestroy({\n\t\t\tsubprocessStdin,\n\t\t\tsubprocess,\n\t\t\twaitWritableFinal,\n\t\t\twaitWritableDestroy,\n\t\t}, error),\n\t]);\n};\n","import {BINARY_ENCODINGS} from '../arguments/encoding-option.js';\nimport {getFromStream} from '../arguments/fd-options.js';\nimport {iterateOnSubprocessStream} from '../io/iterate.js';\n\n// Convert the subprocess to an async iterable\nexport const createIterable = (subprocess, encoding, {\n\tfrom,\n\tbinary: binaryOption = false,\n\tpreserveNewlines = false,\n} = {}) => {\n\tconst binary = binaryOption || BINARY_ENCODINGS.has(encoding);\n\tconst subprocessStdout = getFromStream(subprocess, from);\n\tconst onStdoutData = iterateOnSubprocessStream({\n\t\tsubprocessStdout,\n\t\tsubprocess,\n\t\tbinary,\n\t\tshouldEncode: true,\n\t\tencoding,\n\t\tpreserveNewlines,\n\t});\n\treturn iterateOnStdoutData(onStdoutData, subprocessStdout, subprocess);\n};\n\nconst iterateOnStdoutData = async function * (onStdoutData, subprocessStdout, subprocess) {\n\ttry {\n\t\tyield * onStdoutData;\n\t} finally {\n\t\tif (subprocessStdout.readable) {\n\t\t\tsubprocessStdout.destroy();\n\t\t}\n\n\t\tawait subprocess;\n\t}\n};\n","import {initializeConcurrentStreams} from './concurrent.js';\nimport {createReadable} from './readable.js';\nimport {createWritable} from './writable.js';\nimport {createDuplex} from './duplex.js';\nimport {createIterable} from './iterable.js';\n\n// Add methods to convert the subprocess to a stream or iterable\nexport const addConvertedStreams = (subprocess, {encoding}) => {\n\tconst concurrentStreams = initializeConcurrentStreams();\n\tsubprocess.readable = createReadable.bind(undefined, {subprocess, concurrentStreams, encoding});\n\tsubprocess.writable = createWritable.bind(undefined, {subprocess, concurrentStreams});\n\tsubprocess.duplex = createDuplex.bind(undefined, {subprocess, concurrentStreams, encoding});\n\tsubprocess.iterable = createIterable.bind(undefined, subprocess, encoding);\n\tsubprocess[Symbol.asyncIterator] = createIterable.bind(undefined, subprocess, encoding, {});\n};\n","// The return value is a mixin of `subprocess` and `Promise`\nexport const mergePromise = (subprocess, promise) => {\n\tfor (const [property, descriptor] of descriptors) {\n\t\tconst value = descriptor.value.bind(promise);\n\t\tReflect.defineProperty(subprocess, property, {...descriptor, value});\n\t}\n};\n\n// eslint-disable-next-line unicorn/prefer-top-level-await\nconst nativePromisePrototype = (async () => {})().constructor.prototype;\n\nconst descriptors = ['then', 'catch', 'finally'].map(property => [\n\tproperty,\n\tReflect.getOwnPropertyDescriptor(nativePromisePrototype, property),\n]);\n","import {setMaxListeners} from 'node:events';\nimport {spawn} from 'node:child_process';\nimport {MaxBufferError} from 'get-stream';\nimport {handleCommand} from '../arguments/command.js';\nimport {normalizeOptions} from '../arguments/options.js';\nimport {SUBPROCESS_OPTIONS} from '../arguments/fd-options.js';\nimport {makeError, makeSuccessResult} from '../return/result.js';\nimport {handleResult} from '../return/reject.js';\nimport {handleEarlyError} from '../return/early-error.js';\nimport {handleStdioAsync} from '../stdio/handle-async.js';\nimport {stripNewline} from '../io/strip-newline.js';\nimport {pipeOutputAsync} from '../io/output-async.js';\nimport {subprocessKill} from '../terminate/kill.js';\nimport {cleanupOnExit} from '../terminate/cleanup.js';\nimport {pipeToSubprocess} from '../pipe/setup.js';\nimport {logEarlyResult} from '../verbose/complete.js';\nimport {makeAllStream} from '../resolve/all-async.js';\nimport {waitForSubprocessResult} from '../resolve/wait-subprocess.js';\nimport {addConvertedStreams} from '../convert/add.js';\nimport {createDeferred} from '../utils/deferred.js';\nimport {mergePromise} from './promise.js';\n\n// Main shared logic for all async methods: `execa()`, `execaCommand()`, `$`, `execaNode()`\nexport const execaCoreAsync = (rawFile, rawArguments, rawOptions, createNested) => {\n\tconst {file, commandArguments, command, escapedCommand, startTime, verboseInfo, options, fileDescriptors} = handleAsyncArguments(rawFile, rawArguments, rawOptions);\n\tconst {subprocess, promise} = spawnSubprocessAsync({\n\t\tfile,\n\t\tcommandArguments,\n\t\toptions,\n\t\tstartTime,\n\t\tverboseInfo,\n\t\tcommand,\n\t\tescapedCommand,\n\t\tfileDescriptors,\n\t});\n\tsubprocess.pipe = pipeToSubprocess.bind(undefined, {\n\t\tsource: subprocess,\n\t\tsourcePromise: promise,\n\t\tboundOptions: {},\n\t\tcreateNested,\n\t});\n\tmergePromise(subprocess, promise);\n\tSUBPROCESS_OPTIONS.set(subprocess, {options, fileDescriptors});\n\treturn subprocess;\n};\n\n// Compute arguments to pass to `child_process.spawn()`\nconst handleAsyncArguments = (rawFile, rawArguments, rawOptions) => {\n\tconst {command, escapedCommand, startTime, verboseInfo} = handleCommand(rawFile, rawArguments, rawOptions);\n\n\ttry {\n\t\tconst {file, commandArguments, options: normalizedOptions} = normalizeOptions(rawFile, rawArguments, rawOptions);\n\t\tconst options = handleAsyncOptions(normalizedOptions);\n\t\tconst fileDescriptors = handleStdioAsync(options, verboseInfo);\n\t\treturn {\n\t\t\tfile,\n\t\t\tcommandArguments,\n\t\t\tcommand,\n\t\t\tescapedCommand,\n\t\t\tstartTime,\n\t\t\tverboseInfo,\n\t\t\toptions,\n\t\t\tfileDescriptors,\n\t\t};\n\t} catch (error) {\n\t\tlogEarlyResult(error, startTime, verboseInfo);\n\t\tthrow error;\n\t}\n};\n\n// Options normalization logic specific to async methods.\n// Prevent passing the `timeout` option directly to `child_process.spawn()`.\nconst handleAsyncOptions = ({timeout, signal, cancelSignal, ...options}) => {\n\tif (signal !== undefined) {\n\t\tthrow new TypeError('The \"signal\" option has been renamed to \"cancelSignal\" instead.');\n\t}\n\n\treturn {...options, timeoutDuration: timeout, signal: cancelSignal};\n};\n\nconst spawnSubprocessAsync = ({file, commandArguments, options, startTime, verboseInfo, command, escapedCommand, fileDescriptors}) => {\n\tlet subprocess;\n\ttry {\n\t\tsubprocess = spawn(file, commandArguments, options);\n\t} catch (error) {\n\t\treturn handleEarlyError({\n\t\t\terror,\n\t\t\tcommand,\n\t\t\tescapedCommand,\n\t\t\tfileDescriptors,\n\t\t\toptions,\n\t\t\tstartTime,\n\t\t\tverboseInfo,\n\t\t});\n\t}\n\n\tconst controller = new AbortController();\n\tsetMaxListeners(Number.POSITIVE_INFINITY, controller.signal);\n\n\tconst originalStreams = [...subprocess.stdio];\n\tpipeOutputAsync(subprocess, fileDescriptors, controller);\n\tcleanupOnExit(subprocess, options, controller);\n\n\tconst onInternalError = createDeferred();\n\tsubprocess.kill = subprocessKill.bind(undefined, {\n\t\tkill: subprocess.kill.bind(subprocess),\n\t\toptions,\n\t\tonInternalError,\n\t\tcontroller,\n\t});\n\tsubprocess.all = makeAllStream(subprocess, options);\n\taddConvertedStreams(subprocess, options);\n\n\tconst promise = handlePromise({\n\t\tsubprocess,\n\t\toptions,\n\t\tstartTime,\n\t\tverboseInfo,\n\t\tfileDescriptors,\n\t\toriginalStreams,\n\t\tcommand,\n\t\tescapedCommand,\n\t\tonInternalError,\n\t\tcontroller,\n\t});\n\treturn {subprocess, promise};\n};\n\n// Asynchronous logic, as opposed to the previous logic which can be run synchronously, i.e. can be returned to user right away\nconst handlePromise = async ({subprocess, options, startTime, verboseInfo, fileDescriptors, originalStreams, command, escapedCommand, onInternalError, controller}) => {\n\tconst context = {timedOut: false};\n\n\tconst [errorInfo, [exitCode, signal], stdioResults, allResult] = await waitForSubprocessResult({\n\t\tsubprocess,\n\t\toptions,\n\t\tcontext,\n\t\tverboseInfo,\n\t\tfileDescriptors,\n\t\toriginalStreams,\n\t\tonInternalError,\n\t\tcontroller,\n\t});\n\tcontroller.abort();\n\tonInternalError.resolve();\n\n\tconst stdio = stdioResults.map((stdioResult, fdNumber) => stripNewline(stdioResult, options, fdNumber));\n\tconst all = stripNewline(allResult, options, 'all');\n\tconst result = getAsyncResult({\n\t\terrorInfo,\n\t\texitCode,\n\t\tsignal,\n\t\tstdio,\n\t\tall,\n\t\tcontext,\n\t\toptions,\n\t\tcommand,\n\t\tescapedCommand,\n\t\tstartTime,\n\t});\n\treturn handleResult(result, verboseInfo, options);\n};\n\nconst getAsyncResult = ({errorInfo, exitCode, signal, stdio, all, context, options, command, escapedCommand, startTime}) => 'error' in errorInfo\n\t? makeError({\n\t\terror: errorInfo.error,\n\t\tcommand,\n\t\tescapedCommand,\n\t\ttimedOut: context.timedOut,\n\t\tisCanceled: options.signal?.aborted === true,\n\t\tisMaxBuffer: errorInfo.error instanceof MaxBufferError,\n\t\texitCode,\n\t\tsignal,\n\t\tstdio,\n\t\tall,\n\t\toptions,\n\t\tstartTime,\n\t\tisSync: false,\n\t})\n\t: makeSuccessResult({\n\t\tcommand,\n\t\tescapedCommand,\n\t\tstdio,\n\t\tall,\n\t\toptions,\n\t\tstartTime,\n\t});\n","import isPlainObject from 'is-plain-obj';\nimport {FD_SPECIFIC_OPTIONS} from '../arguments/specific.js';\n\n// Deep merge specific options like `env`. Shallow merge the other ones.\nexport const mergeOptions = (boundOptions, options) => {\n\tconst newOptions = Object.fromEntries(\n\t\tObject.entries(options).map(([optionName, optionValue]) => [\n\t\t\toptionName,\n\t\t\tmergeOption(optionName, boundOptions[optionName], optionValue),\n\t\t]),\n\t);\n\treturn {...boundOptions, ...newOptions};\n};\n\nconst mergeOption = (optionName, boundOptionValue, optionValue) => {\n\tif (DEEP_OPTIONS.has(optionName) && isPlainObject(boundOptionValue) && isPlainObject(optionValue)) {\n\t\treturn {...boundOptionValue, ...optionValue};\n\t}\n\n\treturn optionValue;\n};\n\nconst DEEP_OPTIONS = new Set(['env', ...FD_SPECIFIC_OPTIONS]);\n","import isPlainObject from 'is-plain-obj';\nimport {normalizeParameters} from './parameters.js';\nimport {isTemplateString, parseTemplates} from './template.js';\nimport {execaCoreSync} from './main-sync.js';\nimport {execaCoreAsync} from './main-async.js';\nimport {mergeOptions} from './bind.js';\n\n// Wraps every exported methods to provide the following features:\n// - template string syntax: execa`command argument`\n// - options binding: boundExeca = execa(options)\n// - optional argument/options: execa(file), execa(file, args), execa(file, options), execa(file, args, options)\n// `mapArguments()` and `setBoundExeca()` allows for method-specific logic.\nexport const createExeca = (mapArguments, boundOptions, deepOptions, setBoundExeca) => {\n\tconst createNested = (mapArguments, boundOptions, setBoundExeca) => createExeca(mapArguments, boundOptions, deepOptions, setBoundExeca);\n\tconst boundExeca = (...execaArguments) => callBoundExeca({\n\t\tmapArguments,\n\t\tdeepOptions,\n\t\tboundOptions,\n\t\tsetBoundExeca,\n\t\tcreateNested,\n\t}, ...execaArguments);\n\n\tif (setBoundExeca !== undefined) {\n\t\tsetBoundExeca(boundExeca, createNested, boundOptions);\n\t}\n\n\treturn boundExeca;\n};\n\nconst callBoundExeca = ({mapArguments, deepOptions = {}, boundOptions = {}, setBoundExeca, createNested}, firstArgument, ...nextArguments) => {\n\tif (isPlainObject(firstArgument)) {\n\t\treturn createNested(mapArguments, mergeOptions(boundOptions, firstArgument), setBoundExeca);\n\t}\n\n\tconst {file, commandArguments, options, isSync} = parseArguments({\n\t\tmapArguments,\n\t\tfirstArgument,\n\t\tnextArguments,\n\t\tdeepOptions,\n\t\tboundOptions,\n\t});\n\treturn isSync\n\t\t? execaCoreSync(file, commandArguments, options)\n\t\t: execaCoreAsync(file, commandArguments, options, createNested);\n};\n\nconst parseArguments = ({mapArguments, firstArgument, nextArguments, deepOptions, boundOptions}) => {\n\tconst callArguments = isTemplateString(firstArgument)\n\t\t? parseTemplates(firstArgument, nextArguments)\n\t\t: [firstArgument, ...nextArguments];\n\tconst [initialFile, initialArguments, initialOptions] = normalizeParameters(...callArguments);\n\tconst mergedOptions = mergeOptions(mergeOptions(deepOptions, boundOptions), initialOptions);\n\tconst {\n\t\tfile = initialFile,\n\t\tcommandArguments = initialArguments,\n\t\toptions = mergedOptions,\n\t\tisSync = false,\n\t} = mapArguments({file: initialFile, commandArguments: initialArguments, options: mergedOptions});\n\treturn {\n\t\tfile,\n\t\tcommandArguments,\n\t\toptions,\n\t\tisSync,\n\t};\n};\n","// Main logic for `execaCommand()`\nexport const mapCommandAsync = ({file, commandArguments}) => parseCommand(file, commandArguments);\n\n// Main logic for `execaCommandSync()`\nexport const mapCommandSync = ({file, commandArguments}) => ({...parseCommand(file, commandArguments), isSync: true});\n\n// Convert `execaCommand(command)` into `execa(file, ...commandArguments)`\nconst parseCommand = (command, unusedArguments) => {\n\tif (unusedArguments.length > 0) {\n\t\tthrow new TypeError(`The command and its arguments must be passed as a single string: ${command} ${unusedArguments}.`);\n\t}\n\n\tconst tokens = [];\n\tfor (const token of command.trim().split(SPACES_REGEXP)) {\n\t\t// Allow spaces to be escaped by a backslash if not meant as a delimiter\n\t\tconst previousToken = tokens.at(-1);\n\t\tif (previousToken && previousToken.endsWith('\\\\')) {\n\t\t\t// Merge previous token with current one\n\t\t\ttokens[tokens.length - 1] = `${previousToken.slice(0, -1)} ${token}`;\n\t\t} else {\n\t\t\ttokens.push(token);\n\t\t}\n\t}\n\n\tconst [file, ...commandArguments] = tokens;\n\treturn {file, commandArguments};\n};\n\nconst SPACES_REGEXP = / +/g;\n","// Sets `$.sync` and `$.s`\nexport const setScriptSync = (boundExeca, createNested, boundOptions) => {\n\tboundExeca.sync = createNested(mapScriptSync, boundOptions);\n\tboundExeca.s = boundExeca.sync;\n};\n\n// Main logic for `$`\nexport const mapScriptAsync = ({options}) => getScriptOptions(options);\n\n// Main logic for `$.sync`\nconst mapScriptSync = ({options}) => ({...getScriptOptions(options), isSync: true});\n\n// `$` is like `execa` but with script-friendly options: `{stdin: 'inherit', preferLocal: true}`\nconst getScriptOptions = options => ({options: {...getScriptStdinOption(options), ...options}});\n\nconst getScriptStdinOption = ({input, inputFile, stdio}) => input === undefined && inputFile === undefined && stdio === undefined\n\t? {stdin: 'inherit'}\n\t: {};\n\n// When using $(...).pipe(...), most script-friendly options should apply to both commands.\n// However, some options (like `stdin: 'inherit'`) would create issues with piping, i.e. cannot be deep.\nexport const deepScriptOptions = {preferLocal: true};\n","import {createExeca} from './lib/methods/create.js';\nimport {mapCommandAsync, mapCommandSync} from './lib/methods/command.js';\nimport {mapNode} from './lib/methods/node.js';\nimport {mapScriptAsync, setScriptSync, deepScriptOptions} from './lib/methods/script.js';\n\nexport {ExecaError, ExecaSyncError} from './lib/return/final-error.js';\n\nexport const execa = createExeca(() => ({}));\nexport const execaSync = createExeca(() => ({isSync: true}));\nexport const execaCommand = createExeca(mapCommandAsync);\nexport const execaCommandSync = createExeca(mapCommandSync);\nexport const execaNode = createExeca(mapNode);\nexport const $ = createExeca(mapScriptAsync, {}, deepScriptOptions, setScriptSync);\n"],"names":["cp","parse","enoent","spawn","command","args","options","parsed","spawned","hookChildProcess","module","exports","sync","result","spawnSync","error","verifyENOENTSync","status","_parse","_enoent","isWin","process","platform","notFoundError","original","syscall","Object","assign","Error","code","errno","path","spawnargs","verifyENOENT","file","originalEmit","emit","name","arg1","err","call","apply","arguments","resolveCommand","escape","readShebang","isExecutableRegExp","isCmdShimRegExp","Array","isArray","slice","undefined","shell","commandFile","shebang","unshift","detectShebang","needsShell","test","forceShell","needsDoubleEscapeMetaChars","normalize","map","arg","argument","shellCommand","concat","join","env","comspec","windowsVerbatimArguments","parseNonShell","metaCharsRegExp","replace","doubleEscapeMetaChars","fs","shebangCommand","buffer","Buffer","alloc","fd","openSync","readSync","closeSync","e","toString","which","getPathKey","resolveCommandAttempt","withoutPathExt","cwd","hasCustomCwd","shouldSwitchCwd","chdir","disabled","resolved","pathExt","delimiter","resolve","core","isexe","cb","Promise","TypeError","reject","er","is","ignoreErrors","global","TESTING_WINDOWS","checkStat","statSync","stat","isFile","mod","mode","uid","gid","myUid","getuid","myGid","getgid","u","parseInt","g","checkMode","isSymbolicLink","pathext","PATHEXT","split","indexOf","i","length","p","toLowerCase","substr","checkPathExt","isWindows","OSTYPE","COLON","getNotFoundError","cmd","getPathInfo","opt","colon","pathEnv","match","PATH","pathExtExe","found","step","all","ppRaw","pathPart","pCmd","subStep","ii","ext","push","then","res","j","cur","ex","nothrow","pathKey","environment","keys","reverse","find","key","toUpperCase","shebangRegex","string","binary","pop","isPlainObject","value","prototype","getPrototypeOf","Symbol","toStringTag","iterator","safeNormalizeFileUrl","fileString","normalizeFileUrl","URL","fileURLToPath","normalizeParameters","rawFile","rawArguments","rawOptions","filePath","commandArguments","some","commandArgument","normalizedArguments","String","nullByteArgument","normalizedArgument","includes","objectToString","isUint8Array","bufferToUint8Array","Uint8Array","byteOffset","byteLength","textEncoder","TextEncoder","stringToUint8Array","encode","textDecoder","TextDecoder","uint8ArrayToString","uint8Array","decode","joinToUint8Array","uint8ArraysOrStrings","concatUint8Arrays","stringsToUint8Arrays","uint8ArrayOrString","uint8Arrays","getJoinLength","index","set","joinLength","parseTemplate","templates","expressions","tokens","template","raw","nextTokens","leadingWhitespaces","trailingWhitespaces","splitByWhitespaces","newTokens","concatTokens","expression","expressionTokens","parseExpression","rawTemplate","templateStart","DELIMITERS","has","templateIndex","rawIndex","rawCharacter","nextRawCharacter","ESCAPE_LENGTH","Set","x","isSeparated","at","typeOfExpression","getSubprocessResult","ChildProcess","stdout","hasColors","format","open","close","input","openCode","closeCode","lastIndex","bold","gray","redBright","yellowBright","verboseDefault","debuglog","enabled","VERBOSE_ID","isVerbose","verbose","fdVerbose","VERBOSE_VALUES","common","circleQuestionMark","questionMarkPrefix","square","squareDarkShade","squareMediumShade","squareLightShade","squareTop","squareBottom","squareLeft","squareRight","squareCenter","bullet","dot","ellipsis","pointerSmall","triangleUp","triangleUpSmall","triangleDown","triangleDownSmall","triangleLeftSmall","triangleRightSmall","home","heart","musicNote","musicNoteBeamed","arrowUp","arrowDown","arrowLeft","arrowRight","arrowLeftRight","arrowUpDown","almostEqual","notEqual","lessOrEqual","greaterOrEqual","identical","infinity","subscriptZero","subscriptOne","subscriptTwo","subscriptThree","subscriptFour","subscriptFive","subscriptSix","subscriptSeven","subscriptEight","subscriptNine","oneHalf","oneThird","oneQuarter","oneFifth","oneSixth","oneEighth","twoThirds","twoFifths","threeQuarters","threeFifths","threeEighths","fourFifths","fiveSixths","fiveEighths","sevenEighths","line","lineBold","lineDouble","lineDashed0","lineDashed1","lineDashed2","lineDashed3","lineDashed4","lineDashed5","lineDashed6","lineDashed7","lineDashed8","lineDashed9","lineDashed10","lineDashed11","lineDashed12","lineDashed13","lineDashed14","lineDashed15","lineVertical","lineVerticalBold","lineVerticalDouble","lineVerticalDashed0","lineVerticalDashed1","lineVerticalDashed2","lineVerticalDashed3","lineVerticalDashed4","lineVerticalDashed5","lineVerticalDashed6","lineVerticalDashed7","lineVerticalDashed8","lineVerticalDashed9","lineVerticalDashed10","lineVerticalDashed11","lineDownLeft","lineDownLeftArc","lineDownBoldLeftBold","lineDownBoldLeft","lineDownLeftBold","lineDownDoubleLeftDouble","lineDownDoubleLeft","lineDownLeftDouble","lineDownRight","lineDownRightArc","lineDownBoldRightBold","lineDownBoldRight","lineDownRightBold","lineDownDoubleRightDouble","lineDownDoubleRight","lineDownRightDouble","lineUpLeft","lineUpLeftArc","lineUpBoldLeftBold","lineUpBoldLeft","lineUpLeftBold","lineUpDoubleLeftDouble","lineUpDoubleLeft","lineUpLeftDouble","lineUpRight","lineUpRightArc","lineUpBoldRightBold","lineUpBoldRight","lineUpRightBold","lineUpDoubleRightDouble","lineUpDoubleRight","lineUpRightDouble","lineUpDownLeft","lineUpBoldDownBoldLeftBold","lineUpBoldDownBoldLeft","lineUpDownLeftBold","lineUpBoldDownLeftBold","lineUpDownBoldLeftBold","lineUpDownBoldLeft","lineUpBoldDownLeft","lineUpDoubleDownDoubleLeftDouble","lineUpDoubleDownDoubleLeft","lineUpDownLeftDouble","lineUpDownRight","lineUpBoldDownBoldRightBold","lineUpBoldDownBoldRight","lineUpDownRightBold","lineUpBoldDownRightBold","lineUpDownBoldRightBold","lineUpDownBoldRight","lineUpBoldDownRight","lineUpDoubleDownDoubleRightDouble","lineUpDoubleDownDoubleRight","lineUpDownRightDouble","lineDownLeftRight","lineDownBoldLeftBoldRightBold","lineDownLeftBoldRightBold","lineDownBoldLeftRight","lineDownBoldLeftBoldRight","lineDownBoldLeftRightBold","lineDownLeftRightBold","lineDownLeftBoldRight","lineDownDoubleLeftDoubleRightDouble","lineDownDoubleLeftRight","lineDownLeftDoubleRightDouble","lineUpLeftRight","lineUpBoldLeftBoldRightBold","lineUpLeftBoldRightBold","lineUpBoldLeftRight","lineUpBoldLeftBoldRight","lineUpBoldLeftRightBold","lineUpLeftRightBold","lineUpLeftBoldRight","lineUpDoubleLeftDoubleRightDouble","lineUpDoubleLeftRight","lineUpLeftDoubleRightDouble","lineUpDownLeftRight","lineUpBoldDownBoldLeftBoldRightBold","lineUpDownBoldLeftBoldRightBold","lineUpBoldDownLeftBoldRightBold","lineUpBoldDownBoldLeftRightBold","lineUpBoldDownBoldLeftBoldRight","lineUpBoldDownLeftRight","lineUpDownBoldLeftRight","lineUpDownLeftBoldRight","lineUpDownLeftRightBold","lineUpBoldDownBoldLeftRight","lineUpDownLeftBoldRightBold","lineUpBoldDownLeftBoldRight","lineUpBoldDownLeftRightBold","lineUpDownBoldLeftBoldRight","lineUpDownBoldLeftRightBold","lineUpDoubleDownDoubleLeftDoubleRightDouble","lineUpDoubleDownDoubleLeftRight","lineUpDownLeftDoubleRightDouble","lineCross","lineBackslash","lineSlash","specialMainSymbols","tick","info","warning","cross","squareSmall","squareSmallFilled","circle","circleFilled","circleDotted","circleDouble","circleCircle","circleCross","circlePipe","radioOn","radioOff","checkboxOn","checkboxOff","checkboxCircleOn","checkboxCircleOff","pointer","triangleUpOutline","triangleLeft","triangleRight","lozenge","lozengeOutline","hamburger","smiley","mustache","star","play","nodejs","oneSeventh","oneNinth","oneTenth","mainSymbols","fallbackSymbols","TERM","Boolean","WT_SESSION","TERMINUS_SUBLIME","ConEmuTask","TERM_PROGRAM","TERMINAL_EMULATOR","verboseLog","entries","verboseId","icon","color","prefixedLines","addPrefix","writeFileSync","STDERR_FD","addPrefixToLine","identity","getTimestamp","ICONS","date","Date","padField","getHours","getMinutes","getSeconds","getMilliseconds","field","padding","padStart","pipedCommand","output","success","getStartTime","hrtime","bigint","getDurationMs","startTime","Number","escapeLines","lines","stripVTControlCharacters","escapeControlCharacters","replaceAll","SPECIAL_CHAR_REGEXP","character","escapeControlCharacter","commonEscape","COMMON_ESCAPES","codepoint","codePointAt","codepointHex","ASTRAL_START","NO_ESCAPE_REGEXP","isStandardStream","stream","STANDARD_STREAMS","STANDARD_STREAMS_ALIASES","getStreamName","fdNumber","normalizeFdSpecificOption","optionName","optionBaseArray","from","getStdioLength","optionArray","normalizeFdSpecificValue","addDefaultValue","stdio","Math","max","optionValue","normalizeOptionObject","fill","fdName","sort","compareFdName","parseFdName","fdNameA","fdNameB","getFdNameOrder","parseFd","regexpResult","FD_REGEXP","exec","DEFAULT_OPTIONS","maxBuffer","stripFinalNewline","FD_SPECIFIC_OPTIONS","handleCommand","escapedCommand","fileAndArguments","fileAndArgument","quoteString","escapedArgument","joinCommand","verboseInfo","verboseItem","allowedValues","allowedValue","validateVerbose","getVerboseInfo","piped","logCommand","npmRunPathEnv","pathName","pathOption","preferLocal","execPath","addExecPath","cwdString","cwdPath","previous","applyPreferLocal","execPathString","applyExecPath","npmRunPath","DiscardedError","setErrorName","ErrorClass","defineProperty","writable","enumerable","configurable","execaErrorSymbol","isErrorInstance","ExecaError","ExecaSyncError","normalizeSignalArgument","signal","normalizeSignal","signalNameOrInteger","isInteger","normalizeSignalInteger","normalizeSignalName","getAvailableSignals","signalInteger","signalsIntegerToName","get","Map","constants","signals","signalName","getAvailableSignalNames","getAvailableSignalIntegers","values","signalIntegerTwo","subprocessKill","kill","forceKillAfterDelay","killSignal","onInternalError","controller","signalOrError","errorArgument","parseKillArguments","emitKillError","killResult","setKillTimeout","async","shouldForceKill","setTimeout","throwOnTimeout","subprocess","timeout","context","killAfterTimeout","timedOut","TEXT_ENCODINGS","BINARY_ENCODINGS","ENCODINGS","ENCODING_ALIASES","ucs2","serializeEncoding","encoding","getDefaultCwd","message","normalizeOptions","normalizeCwd","processedFile","processedArguments","processedOptions","node","shouldHandleNode","nodePath","nodeOptions","execArgv","filter","nodeOption","startsWith","formerNodePath","normalizedNodePath","resolvedNodePath","newOptions","basename","ipc","handleNodeOption","initialOptions","fdOptions","optionsCopy","normalizeFdSpecificOptions","addDefaultOptions","isFinite","validateTimeout","correctEncoding","lowerEncoding","getCorrectEncoding","correctEncodings","validateEncoding","getEnv","normalizeKillSignal","normalizeForceKillAfterDelay","extendEnv","localDir","localDirectory","cleanup","windowsHide","serialization","envOption","getRealtimeSignal","number","SIGRTMIN","action","description","standard","SIGNALS","forced","getSignals","realtimeSignals","getRealtimeSignals","defaultNumber","constantSignal","supported","getSignalByName","signalsByName","fromEntries","getSignalsByName","findSignalByNumber","signalA","stripFinalNewlineString","ArrayBuffer","isView","BYTES_PER_ELEMENT","stripFinalNewlineBinary","signalsA","SIGRTMAX","getSignalByNumber","getSignalsByNumber","LF","CR","LF_BINARY","subarray","CR_BINARY","isStream","checkOpen","readable","pipe","isWritableStream","write","end","writableObjectMode","destroy","destroyed","isReadableStream","read","readableObjectMode","isDuplexStream","a","c","constructor","t","this","next","done","releaseLock","cancel","n","o","r","return","create","h","preventCancel","getReader","s","getAsyncIterable","nodeImports","on","getStreamIterable","asyncIterator","AbortController","state","handleStreamEnd","chunk","aborted","finished","abort","getStreamContents","init","convertChunk","getSize","truncateChunk","addChunk","getFinalChunk","finalize","POSITIVE_INFINITY","asyncIterable","convertedChunk","getChunkType","appendChunk","appendFinalChunk","normalizedError","bufferedData","chunkSize","newLength","addNewChunk","truncatedChunk","MaxBufferError","contents","typeOfChunk","globalThis","isBuffer","prototypeName","super","getMaxBufferSync","stdoutMaxBuffer","getErrorPrefix","originalError","isMaxBuffer","errorCode","signalDescription","exitCode","isCanceled","streamName","threshold","unit","maxBufferInfo","getMaxBufferInfo","getMaxBufferMessage","serializeMessageItem","messageItem","makeSuccessResult","omitUndefinedProperties","durationMs","failed","isTerminated","stderr","pipedFrom","makeEarlyError","fileDescriptors","isSync","makeError","rawExitCode","rawSignal","timeoutDuration","normalizeExitPayload","originalMessage","shortMessage","prefix","escapedOriginalMessage","cwdStat","isDirectory","fixCwdError","getOriginalMessage","messagePart","serializeMessagePart","createMessages","cause","getFinalError","getErrorProperties","toZeroIfInfinity","prettyMilliseconds","milliseconds","isBigInt","colonNotation","compact","formatSubMilliseconds","separateMilliseconds","unitCount","secondsDecimalDigits","millisecondsDecimalDigits","add","long","short","valueString","isZero","wholeDigits","minLength","repeat","word","count","days","trunc","hours","minutes","seconds","microseconds","nanoseconds","parseNumber","parseBigint","parseMilliseconds","BigInt","millisecondsAndBelow","roundedMilliseconds","round","ceil","millisecondsString","toFixed","parseFloat","secondsFixed","decimalDigits","flooredInterimValue","floor","floorDecimals","secondsString","keepDecimalsOnWholeSeconds","separator","logEarlyResult","logResult","getIcon","logError","logDuration","durationMessage","handleResult","logFinalResult","getStdioItemType","isAsyncGenerator","isSyncGenerator","isUrl","isFilePathObject","isWebStream","isAsyncIterableObject","isIterableObject","getTransformStreamType","transform","isTransformOptions","getTransformObjectType","getDuplexType","getGeneratorObjectType","validateNonGeneratorType","final","objectMode","typeName","checkUndefinedOption","checkBooleanOption","isGenerator","isFilePathString","KNOWN_STDIO_STRINGS","isObject","TRANSFORM_TYPES","FILE_TYPES","SPECIAL_DUPLICATE_TYPES_SYNC","SPECIAL_DUPLICATE_TYPES","FORBID_DUPLICATE_TYPES","TYPE_TO_MESSAGE","generator","asyncGenerator","fileUrl","fileNumber","webStream","nodeStream","webTransform","duplex","native","iterable","getTransformObjectModes","newTransforms","direction","getOutputObjectModes","getInputObjectModes","getTransforms","stdioItems","transforms","type","stdioItem","normalizeTransform","sortTransforms","normalizeDuplex","normalizeTransformStream","normalizeGenerator","binaryOption","preserveNewlines","KNOWN_DIRECTIONS","anyDirection","alwaysInput","guessStreamDirection","standardStreamDirection","getStandardStreamDirection","hasAlias","alias","stdioOption","item","isOutputPipeOnly","every","getToStream","destination","to","isWritable","SUBPROCESS_OPTIONS","getFdNumber","destinationStream","getInvalidStdioOptionMessage","getFromStream","source","sourceStream","WeakMap","parseFdNumber","validateFdNumber","validOptions","defaultValue","getOptionName","fileDescriptor","getUsedDescriptor","getInvalidStdioOption","serializeOptionValue","stdin","usedDescriptor","getTargetFd","targetFdNumber","getTargetFdNumber","readFileSync","standardStreamIndex","getStandardStream","standardStream","handleInputOptions","inputFile","handleInputOption","handleInputFileOption","getInputType","getInputFileType","getDuplicateStreamInstance","otherStdioItems","duplicateStdioItems","hasSameValue","differentStdioItem","throwOnDuplicateStream","secondValue","href","handleStdio","addProperties","stdioArray","_","getStdioArray","normalizeStdioSync","normalizeStdioAsync","normalizeStdioOption","initialFileDescriptors","getFileDescriptor","getFinalFileDescriptors","forwardStdio","initialStdioItems","isStdioArray","initializeStdioItems","directions","getStdioItemDirection","getStreamDirection","targetFd","handleNativeStreamSync","handleNativeStreamAsync","handleNativeStream","normalizedStdioItems","normalizeTransforms","lastTransform","findLast","getFdObjectMode","validateFileObjectMode","stdioItemOne","indexOne","stdioItemTwo","indexTwo","filterDuplicates","initializeStdioItem","validateStdioArray","validateStreams","INVALID_STDIO_ARRAY_OPTIONS","validateFileStdio","protocol","isRegularUrl","isUnknownStdioString","fileStdioItem","getFinalFileDescriptor","cleanupCustomStreams","finalStdioItems","addStreamProperties","duplicateStream","flatMap","getOtherStdioItems","duplicateStdioItem","validateDuplicateTransform","validateDuplicateStreamSync","getDuplicateStream","forbiddenIfSync","throwInvalidSyncValue","addPropertiesSync","stripNewline","getStripFinalNewline","getSplitLinesGenerator","skipped","initializeSplitLines","splitLinesSync","splitLinesItemSync","previousChunks","splitGenerator","bind","linesFinal","start","newlineLength","getNewlineLength","concatString","isWindowsNewline","getAppendNewlineGenerator","appendNewlineGenerator","unixNewline","windowsNewline","concatBytes","linesStringInfo","linesUint8ArrayInfo","newline","firstChunk","secondChunk","getValidateTransformInput","validateStringTransformInput","getValidateTransformReturn","validateObjectTransformReturn","validateStringTransformReturn","validateEmptyReturn","getEncodingTransformGenerator","encodingUint8ArrayGenerator","stringDecoder","StringDecoder","encodingStringGenerator","encodingStringFinal","lastChunk","pushChunks","callbackify","getChunks","getChunksArguments","transformStream","currentIterable","transformChunk","generators","identityGenerator","transformedChunk","finalChunks","generatorFinalChunks","finalChunk","destroyTransform","throw","pushChunksSync","getChunksSync","runTransformSync","chunks","transformChunkSync","finalChunksSync","generatorFinalChunksSync","generatorToStream","addInternalGenerators","transformAsync","finalAsync","transformMethod","finalMethod","destroyMethod","Transform","writableHighWaterMark","getDefaultHighWaterMark","readableHighWaterMark","flush","runGeneratorsSync","isInput","reversedGenerators","addInputOptionSync","allStdioItems","transformedContents","applySingleInputGeneratorsSync","newContents","validateSerializable","invalidItem","shouldLogOutput","fdUsesVerbose","PIPED_STDIO_VALUES","isPipingStream","_readableState","pipes","logLine","inspect","spacedLines","TAB_SIZE","runOutputGeneratorsSync","serializeChunks","serializedResult","decoder","strings","finalString","uint8ArraysToStrings","joinToString","finalResult","writeToFiles","outputFiles","pathString","appendFileSync","waitForSubprocessExit","once","waitForSuccessfulExit","exitPromise","isSubprocessErrorExit","isFailedExit","getResultError","normalizeSyncOptions","validateSyncOptions","detached","cancelSignal","throwInvalidSyncOption","spawnSubprocessSync","syncResult","runSubprocessSync","resultError","isMaxBufferSync","getExitResultSync","truncatedResult","maxBufferValue","truncateMaxBufferSync","uint8ArrayResult","linesArray","logLinesSync","returnedResult","transformOutputResultSync","transformOutputSync","stdioOutput","getAllSync","getSyncResult","getInputFdNumbers","addInputOptionsSync","normalizedOptions","normalizeSpawnSyncOptions","createDummyStream","PassThrough","Readable","Writable","Duplex","handleDummyPromise","forbiddenIfAsync","fromWeb","addPropertiesAsync","createReadStream","createWriteStream","mergeStreams","streams","validateStream","highWaterMark","getHighWaterMark","passThroughStream","MergedStream","highWaterMarks","onMergedStreamFinished","streamPromise","endWhenStreamsDone","ended","onFinished","unpipeEvent","remove","delete","unpipe","updateMaxListeners","PASSTHROUGH_LISTENERS_COUNT","race","onMergedStreamEnd","onInputStreamsUnpipe","errorOrAbortStream","unpipedStream","PASSTHROUGH_LISTENERS_PER_STREAM","afterMergedStreamFinished","onInputStreamEnd","onInputStreamUnpipe","size","abortStream","endStream","isAbortError","errorStream","noop","increment","maxListeners","getMaxListeners","setMaxListeners","incrementMaxListeners","eventEmitter","maxListenersIncrement","addAbortListener","pipeStreams","onSourceFinish","onDestinationFinish","endDestinationStream","abortSourceStream","pipeTransform","streamProperty","SUBPROCESS_STREAM_PROPERTIES","pipeStdioItem","pipeGroups","setStandardStreamMaxListeners","inputStream","outputStream","outputStreams","MAX_LISTENERS_INCREMENT","processOk","removeListener","reallyExit","listeners","pid","kExitEmitter","for","ObjectDefineProperty","Emitter","emitted","afterExit","exit","id","random","ev","fn","list","splice","ret","SignalExitBase","onExit","load","unload","handler","sig","__signal_exit_emitter__","opts","alwaysLast","forEach","listener","og","getDestination","boundOptions","createNested","firstArgument","pipeArguments","mapDestinationArguments","pipeOptions","createNonCommandError","sourceOptions","PIPE_COMMAND_MESSAGE","waitForBothSubprocesses","sourceStatus","reason","sourceReason","sourceResult","destinationStatus","destinationReason","destinationResult","subprocessPromises","MERGED_STREAMS","unpipeOnAbort","unpipeSignal","unpipeContext","unpipeOnSignalAbort","mergedStream","pipeToSubprocess","sourceInfo","normalizedInfo","sourcePromise","destinationError","getDestinationStream","sourceError","getSourceStream","normalizePipeArguments","promise","handlePipePromise","getSubprocessPromises","getPipeArgumentsError","handlePipeArgumentsError","maxListenersController","pipeMoreSubprocessStream","pipeFirstSubprocessStream","cleanupMergedStreamsMap","pipeSubprocessStream","allSettled","getContentsProperty","throwObjectStream","getLengthProperty","arrayMethods","arrayBuffer","dataView","typedArray","others","useUint8Array","useUint8ArrayWithOffset","getNewContentsLength","SCALE_FACTOR","log","hasArrayBufferResize","arrayBufferMethods","previousLength","maxByteLength","resize","resizeArrayBuffer","resizeArrayBufferSlow","useTextDecoder","stringMethods","iterateOnSubprocessStream","subprocessStdout","shouldEncode","stopReadingOnExit","iterateOnStream","shouldSplit","iterateForResult","onStreamEnd","allMixed","stopReadingOnStreamEnd","onStdoutChunk","HIGH_WATER_MARK","highWatermark","iterateOnData","DEFAULT_OBJECT_HIGH_WATER_MARK","getGenerators","getStreamOutput","streamInfo","linesIterable","logLines","resumeStream","stripFinalNewlineValue","setImmediate","readableFlowing","resume","getStreamAsArray","getStreamAsArrayBuffer","handleBufferedData","getMaxBufferUnit","handleMaxBuffer","getBufferedData","isArrayBuffer","waitForStream","isSameDirection","stopOnExit","handleStdinDestroy","abortController","stdinCleanedUp","handleStreamError","originalStreams","originalStdin","spyOnStdinDestroy","subprocessStdin","_destroy","destroyArguments","setStdinCleanedUp","signalCode","shouldIgnoreStreamError","propagating","isStreamEpipe","isStreamAbort","isInputFileDescriptor","waitForSubprocessStream","getAllStream","bufferStdout","bufferStderr","getAllMixed","waitForOriginalStreams","waitForCustomStreamsEnd","throwOnSubprocessError","createDeferred","methods","addConcurrentStream","concurrentStreams","waitName","weakMap","promises","waitForConcurrentStreams","isSubprocessExit","safeWaitForSubprocessStdin","waitForSubprocessStdin","waitForSubprocessStdout","waitForSubprocess","destroyOtherStream","isOpen","createReadable","waitReadableDestroy","getSubprocessStdout","readableEncoding","getReadableOptions","onStdoutDataDone","getReadableMethods","onReadableDestroy","onStdoutFinished","onStdoutData","onRead","destroyOtherReadable","createWritable","waitWritableFinal","waitWritableDestroy","getSubprocessStdin","getWritableMethods","onWritableDestroy","onStdinFinished","onWrite","onWritableFinal","safeWaitForSubprocessStdout","destroyOtherWritable","createDuplex","onDuplexDestroy","createIterable","iterateOnStdoutData","addConvertedStreams","readableDestroy","writableFinal","writableDestroy","nativePromisePrototype","descriptors","property","Reflect","getOwnPropertyDescriptor","handleAsyncArguments","handleAsyncOptions","handleStdioAsync","spawnSubprocessAsync","extraStdio","createDummyStreams","earlyError","handleEarlyError","inputStreams","pipeOutputAsync","removeExitHandler","cleanupOnExit","makeAllStream","handlePromise","errorInfo","stdioResults","allResult","spawnPayload","exitPayload","waitForExit","stdioPromises","waitForStdioStreams","allPromise","waitForAllStream","originalPromises","customStreamsEndPromises","stdioPromise","waitForSubprocessResult","stdioResult","getAsyncResult","mergeOptions","mergeOption","boundOptionValue","DEEP_OPTIONS","createExeca","mapArguments","deepOptions","setBoundExeca","boundExeca","execaArguments","callBoundExeca","nextArguments","parseArguments","syncOptions","handleStdioSync","handleSyncArguments","execaCoreSync","descriptor","mergePromise","execaCoreAsync","callArguments","parseTemplates","initialFile","initialArguments","mergedOptions","parseCommand","unusedArguments","token","trim","SPACES_REGEXP","previousToken","endsWith","mapScriptSync","getScriptOptions","getScriptStdinOption","execa"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/main.js b/dist/bootstrap.js similarity index 99% rename from dist/main.js rename to dist/bootstrap.js index db7c6e3..1048504 100755 --- a/dist/main.js +++ b/dist/bootstrap.js @@ -1,3 +1,3 @@ #!/usr/bin/env node -/*! For license information please see main.js.LICENSE.txt */ -(()=>{var e,a={1873:(e,a,i)=>{e.exports={parallel:i(8798),serial:i(2081),serialOrdered:i(28)}},4555:e=>{function a(e){"function"==typeof this.jobs[e]&&this.jobs[e]()}e.exports=function(e){Object.keys(e.jobs).forEach(a.bind(e)),e.jobs={}}},2313:(e,a,i)=>{var n=i(405);e.exports=function(e){var a=!1;return n((function(){a=!0})),function(i,o){a?e(i,o):n((function(){e(i,o)}))}}},405:e=>{e.exports=function(e){var a="function"==typeof setImmediate?setImmediate:"object"==typeof process&&"function"==typeof process.nextTick?process.nextTick:null;a?a(e):setTimeout(e,0)}},8051:(e,a,i)=>{var n=i(2313),o=i(4555);e.exports=function(e,a,i,s){var t=i.keyedList?i.keyedList[i.index]:i.index;i.jobs[t]=function(e,a,i,o){return 2==e.length?e(i,n(o)):e(i,a,n(o))}(a,t,e[t],(function(e,a){t in i.jobs&&(delete i.jobs[t],e?o(i):i.results[t]=a,s(e,i.results))}))}},9500:e=>{e.exports=function(e,a){var i=!Array.isArray(e),n={index:0,keyedList:i||a?Object.keys(e):null,jobs:{},results:i?{}:[],size:i?Object.keys(e).length:e.length};return a&&n.keyedList.sort(i?a:function(i,n){return a(e[i],e[n])}),n}},6276:(e,a,i)=>{var n=i(4555),o=i(2313);e.exports=function(e){Object.keys(this.jobs).length&&(this.index=this.size,n(this),o(e)(null,this.results))}},8798:(e,a,i)=>{var n=i(8051),o=i(9500),s=i(6276);e.exports=function(e,a,i){for(var t=o(e);t.index<(t.keyedList||e).length;)n(e,a,t,(function(e,a){e?i(e,a):0!==Object.keys(t.jobs).length||i(null,t.results)})),t.index++;return s.bind(t,i)}},2081:(e,a,i)=>{var n=i(28);e.exports=function(e,a,i){return n(e,a,null,i)}},28:(e,a,i)=>{var n=i(8051),o=i(9500),s=i(6276);function t(e,a){return ea?1:0}e.exports=function(e,a,i,t){var r=o(e,i);return n(e,a,r,(function i(o,s){o?t(o,s):(r.index++,r.index<(r.keyedList||e).length?n(e,a,r,i):t(null,r.results))})),s.bind(r,t)},e.exports.ascending=t,e.exports.descending=function(e,a){return-1*t(e,a)}},801:(e,a,i)=>{var n=i(9023),o=i(2203).Stream,s=i(8069);function t(){this.writable=!1,this.readable=!0,this.dataSize=0,this.maxDataSize=2097152,this.pauseStreams=!0,this._released=!1,this._streams=[],this._currentStream=null,this._insideLoop=!1,this._pendingNext=!1}e.exports=t,n.inherits(t,o),t.create=function(e){var a=new this;for(var i in e=e||{})a[i]=e[i];return a},t.isStreamLike=function(e){return"function"!=typeof e&&"string"!=typeof e&&"boolean"!=typeof e&&"number"!=typeof e&&!Buffer.isBuffer(e)},t.prototype.append=function(e){if(t.isStreamLike(e)){if(!(e instanceof s)){var a=s.create(e,{maxDataSize:1/0,pauseStream:this.pauseStreams});e.on("data",this._checkDataSize.bind(this)),e=a}this._handleErrors(e),this.pauseStreams&&e.pause()}return this._streams.push(e),this},t.prototype.pipe=function(e,a){return o.prototype.pipe.call(this,e,a),this.resume(),e},t.prototype._getNext=function(){if(this._currentStream=null,this._insideLoop)this._pendingNext=!0;else{this._insideLoop=!0;try{do{this._pendingNext=!1,this._realGetNext()}while(this._pendingNext)}finally{this._insideLoop=!1}}},t.prototype._realGetNext=function(){var e=this._streams.shift();void 0!==e?"function"==typeof e?e(function(e){t.isStreamLike(e)&&(e.on("data",this._checkDataSize.bind(this)),this._handleErrors(e)),this._pipeNext(e)}.bind(this)):this._pipeNext(e):this.end()},t.prototype._pipeNext=function(e){if(this._currentStream=e,t.isStreamLike(e))return e.on("end",this._getNext.bind(this)),void e.pipe(this,{end:!1});var a=e;this.write(a),this._getNext()},t.prototype._handleErrors=function(e){var a=this;e.on("error",(function(e){a._emitError(e)}))},t.prototype.write=function(e){this.emit("data",e)},t.prototype.pause=function(){this.pauseStreams&&(this.pauseStreams&&this._currentStream&&"function"==typeof this._currentStream.pause&&this._currentStream.pause(),this.emit("pause"))},t.prototype.resume=function(){this._released||(this._released=!0,this.writable=!0,this._getNext()),this.pauseStreams&&this._currentStream&&"function"==typeof this._currentStream.resume&&this._currentStream.resume(),this.emit("resume")},t.prototype.end=function(){this._reset(),this.emit("end")},t.prototype.destroy=function(){this._reset(),this.emit("close")},t.prototype._reset=function(){this.writable=!1,this._streams=[],this._currentStream=null},t.prototype._checkDataSize=function(){if(this._updateDataSize(),!(this.dataSize<=this.maxDataSize)){var e="DelayedStream#maxDataSize of "+this.maxDataSize+" bytes exceeded.";this._emitError(new Error(e))}},t.prototype._updateDataSize=function(){this.dataSize=0;var e=this;this._streams.forEach((function(a){a.dataSize&&(e.dataSize+=a.dataSize)})),this._currentStream&&this._currentStream.dataSize&&(this.dataSize+=this._currentStream.dataSize)},t.prototype._emitError=function(e){this._reset(),this.emit("error",e)}},8069:(e,a,i)=>{var n=i(2203).Stream,o=i(9023);function s(){this.source=null,this.dataSize=0,this.maxDataSize=1048576,this.pauseStream=!0,this._maxDataSizeExceeded=!1,this._released=!1,this._bufferedEvents=[]}e.exports=s,o.inherits(s,n),s.create=function(e,a){var i=new this;for(var n in a=a||{})i[n]=a[n];i.source=e;var o=e.emit;return e.emit=function(){return i._handleEmit(arguments),o.apply(e,arguments)},e.on("error",(function(){})),i.pauseStream&&e.pause(),i},Object.defineProperty(s.prototype,"readable",{configurable:!0,enumerable:!0,get:function(){return this.source.readable}}),s.prototype.setEncoding=function(){return this.source.setEncoding.apply(this.source,arguments)},s.prototype.resume=function(){this._released||this.release(),this.source.resume()},s.prototype.pause=function(){this.source.pause()},s.prototype.release=function(){this._released=!0,this._bufferedEvents.forEach(function(e){this.emit.apply(this,e)}.bind(this)),this._bufferedEvents=[]},s.prototype.pipe=function(){var e=n.prototype.pipe.apply(this,arguments);return this.resume(),e},s.prototype._handleEmit=function(e){this._released?this.emit.apply(this,e):("data"===e[0]&&(this.dataSize+=e[1].length,this._checkIfMaxDataSizeExceeded()),this._bufferedEvents.push(e))},s.prototype._checkIfMaxDataSizeExceeded=function(){if(!(this._maxDataSizeExceeded||this.dataSize<=this.maxDataSize)){this._maxDataSizeExceeded=!0;var e="DelayedStream#maxDataSize of "+this.maxDataSize+" bytes exceeded.";this.emit("error",new Error(e))}}},7507:(e,a,i)=>{var n;e.exports=function(){if(!n){try{n=i(Object(function(){var e=new Error("Cannot find module 'debug'");throw e.code="MODULE_NOT_FOUND",e}()))("follow-redirects")}catch(e){}"function"!=typeof n&&(n=function(){})}n.apply(null,arguments)}},3164:(e,a,i)=>{var n=i(7016),o=n.URL,s=i(8611),t=i(5692),r=i(2203).Writable,c=i(2613),p=i(7507),l=!1;try{c(new o)}catch(e){l="ERR_INVALID_URL"===e.code}var u=["auth","host","hostname","href","path","pathname","port","protocol","query","search","hash"],d=["abort","aborted","connect","error","socket","timeout"],m=Object.create(null);d.forEach((function(e){m[e]=function(a,i,n){this._redirectable.emit(e,a,i,n)}}));var x=S("ERR_INVALID_URL","Invalid URL",TypeError),f=S("ERR_FR_REDIRECTION_FAILURE","Redirected request failed"),v=S("ERR_FR_TOO_MANY_REDIRECTS","Maximum number of redirects exceeded",f),h=S("ERR_FR_MAX_BODY_LENGTH_EXCEEDED","Request body larger than maxBodyLength limit"),b=S("ERR_STREAM_WRITE_AFTER_END","write after end"),g=r.prototype.destroy||k;function y(e,a){r.call(this),this._sanitizeOptions(e),this._options=e,this._ended=!1,this._ending=!1,this._redirectCount=0,this._redirects=[],this._requestBodyLength=0,this._requestBodyBuffers=[],a&&this.on("response",a);var i=this;this._onNativeResponse=function(e){try{i._processResponse(e)}catch(e){i.emit("error",e instanceof f?e:new f({cause:e}))}},this._performRequest()}function w(e){var a={maxRedirects:21,maxBodyLength:10485760},i={};return Object.keys(e).forEach((function(n){var s=n+":",t=i[s]=e[n],r=a[n]=Object.create(t);Object.defineProperties(r,{request:{value:function(e,n,t){return o&&e instanceof o?e=E(e):O(e)?e=E(j(e)):(t=n,n=_(e),e={protocol:s}),z(n)&&(t=n,n=null),(n=Object.assign({maxRedirects:a.maxRedirects,maxBodyLength:a.maxBodyLength},e,n)).nativeProtocols=i,O(n.host)||O(n.hostname)||(n.hostname="::1"),c.equal(n.protocol,s,"protocol mismatch"),p("options",n),new y(n,t)},configurable:!0,enumerable:!0,writable:!0},get:{value:function(e,a,i){var n=r.request(e,a,i);return n.end(),n},configurable:!0,enumerable:!0,writable:!0}})})),a}function k(){}function j(e){var a;if(l)a=new o(e);else if(!O((a=_(n.parse(e))).protocol))throw new x({input:e});return a}function _(e){if(/^\[/.test(e.hostname)&&!/^\[[:0-9a-f]+\]$/i.test(e.hostname))throw new x({input:e.href||e});if(/^\[/.test(e.host)&&!/^\[[:0-9a-f]+\](:\d+)?$/i.test(e.host))throw new x({input:e.href||e});return e}function E(e,a){var i=a||{};for(var n of u)i[n]=e[n];return i.hostname.startsWith("[")&&(i.hostname=i.hostname.slice(1,-1)),""!==i.port&&(i.port=Number(i.port)),i.path=i.search?i.pathname+i.search:i.pathname,i}function R(e,a){var i;for(var n in a)e.test(n)&&(i=a[n],delete a[n]);return null==i?void 0:String(i).trim()}function S(e,a,i){function n(i){Error.captureStackTrace(this,this.constructor),Object.assign(this,i||{}),this.code=e,this.message=this.cause?a+": "+this.cause.message:a}return n.prototype=new(i||Error),Object.defineProperties(n.prototype,{constructor:{value:n,enumerable:!1},name:{value:"Error ["+e+"]",enumerable:!1}}),n}function T(e,a){for(var i of d)e.removeListener(i,m[i]);e.on("error",k),e.destroy(a)}function O(e){return"string"==typeof e||e instanceof String}function z(e){return"function"==typeof e}y.prototype=Object.create(r.prototype),y.prototype.abort=function(){T(this._currentRequest),this._currentRequest.abort(),this.emit("abort")},y.prototype.destroy=function(e){return T(this._currentRequest,e),g.call(this,e),this},y.prototype.write=function(e,a,i){if(this._ending)throw new b;if(!(O(e)||"object"==typeof(n=e)&&"length"in n))throw new TypeError("data should be a string, Buffer or Uint8Array");var n;z(a)&&(i=a,a=null),0!==e.length?this._requestBodyLength+e.length<=this._options.maxBodyLength?(this._requestBodyLength+=e.length,this._requestBodyBuffers.push({data:e,encoding:a}),this._currentRequest.write(e,a,i)):(this.emit("error",new h),this.abort()):i&&i()},y.prototype.end=function(e,a,i){if(z(e)?(i=e,e=a=null):z(a)&&(i=a,a=null),e){var n=this,o=this._currentRequest;this.write(e,a,(function(){n._ended=!0,o.end(null,null,i)})),this._ending=!0}else this._ended=this._ending=!0,this._currentRequest.end(null,null,i)},y.prototype.setHeader=function(e,a){this._options.headers[e]=a,this._currentRequest.setHeader(e,a)},y.prototype.removeHeader=function(e){delete this._options.headers[e],this._currentRequest.removeHeader(e)},y.prototype.setTimeout=function(e,a){var i=this;function n(a){a.setTimeout(e),a.removeListener("timeout",a.destroy),a.addListener("timeout",a.destroy)}function o(a){i._timeout&&clearTimeout(i._timeout),i._timeout=setTimeout((function(){i.emit("timeout"),s()}),e),n(a)}function s(){i._timeout&&(clearTimeout(i._timeout),i._timeout=null),i.removeListener("abort",s),i.removeListener("error",s),i.removeListener("response",s),i.removeListener("close",s),a&&i.removeListener("timeout",a),i.socket||i._currentRequest.removeListener("socket",o)}return a&&this.on("timeout",a),this.socket?o(this.socket):this._currentRequest.once("socket",o),this.on("socket",n),this.on("abort",s),this.on("error",s),this.on("response",s),this.on("close",s),this},["flushHeaders","getHeader","setNoDelay","setSocketKeepAlive"].forEach((function(e){y.prototype[e]=function(a,i){return this._currentRequest[e](a,i)}})),["aborted","connection","socket"].forEach((function(e){Object.defineProperty(y.prototype,e,{get:function(){return this._currentRequest[e]}})})),y.prototype._sanitizeOptions=function(e){if(e.headers||(e.headers={}),e.host&&(e.hostname||(e.hostname=e.host),delete e.host),!e.pathname&&e.path){var a=e.path.indexOf("?");a<0?e.pathname=e.path:(e.pathname=e.path.substring(0,a),e.search=e.path.substring(a))}},y.prototype._performRequest=function(){var e=this._options.protocol,a=this._options.nativeProtocols[e];if(!a)throw new TypeError("Unsupported protocol "+e);if(this._options.agents){var i=e.slice(0,-1);this._options.agent=this._options.agents[i]}var o=this._currentRequest=a.request(this._options,this._onNativeResponse);for(var s of(o._redirectable=this,d))o.on(s,m[s]);if(this._currentUrl=/^\//.test(this._options.path)?n.format(this._options):this._options.path,this._isRedirect){var t=0,r=this,c=this._requestBodyBuffers;!function e(a){if(o===r._currentRequest)if(a)r.emit("error",a);else if(t=400)return e.responseUrl=this._currentUrl,e.redirects=this._redirects,this.emit("response",e),void(this._requestBodyBuffers=[]);if(T(this._currentRequest),e.destroy(),++this._redirectCount>this._options.maxRedirects)throw new v;var t=this._options.beforeRedirect;t&&(i=Object.assign({Host:e.req.getHeader("host")},this._options.headers));var r=this._options.method;((301===a||302===a)&&"POST"===this._options.method||303===a&&!/^(?:GET|HEAD)$/.test(this._options.method))&&(this._options.method="GET",this._requestBodyBuffers=[],R(/^content-/i,this._options.headers));var u,d,m=R(/^host$/i,this._options.headers),x=j(this._currentUrl),f=m||x.host,h=/^\w+:/.test(s)?this._currentUrl:n.format(Object.assign(x,{host:f})),b=(u=s,d=h,l?new o(u,d):j(n.resolve(d,u)));if(p("redirecting to",b.href),this._isRedirect=!0,E(b,this._options),(b.protocol!==x.protocol&&"https:"!==b.protocol||b.host!==f&&!function(e,a){c(O(e)&&O(a));var i=e.length-a.length-1;return i>0&&"."===e[i]&&e.endsWith(a)}(b.host,f))&&R(/^(?:(?:proxy-)?authorization|cookie)$/i,this._options.headers),z(t)){var g={headers:e.headers,statusCode:a},y={url:h,method:r,headers:i};t(this._options,g,y),this._sanitizeOptions(this._options)}this._performRequest()},e.exports=w({http:s,https:t}),e.exports.wrap=w},737:(e,a,i)=>{var n=i(801),o=i(9023),s=i(6928),t=i(8611),r=i(5692),c=i(7016).parse,p=i(9896),l=i(2203).Stream,u=i(6049),d=i(1873),m=i(1362);function x(e){if(!(this instanceof x))return new x(e);for(var a in this._overheadLength=0,this._valueLength=0,this._valuesToMeasure=[],n.call(this),e=e||{})this[a]=e[a]}e.exports=x,o.inherits(x,n),x.LINE_BREAK="\r\n",x.DEFAULT_CONTENT_TYPE="application/octet-stream",x.prototype.append=function(e,a,i){"string"==typeof(i=i||{})&&(i={filename:i});var s=n.prototype.append.bind(this);if("number"==typeof a&&(a=""+a),o.isArray(a))this._error(new Error("Arrays are not supported."));else{var t=this._multiPartHeader(e,a,i),r=this._multiPartFooter();s(t),s(a),s(r),this._trackLength(t,a,i)}},x.prototype._trackLength=function(e,a,i){var n=0;null!=i.knownLength?n+=+i.knownLength:Buffer.isBuffer(a)?n=a.length:"string"==typeof a&&(n=Buffer.byteLength(a)),this._valueLength+=n,this._overheadLength+=Buffer.byteLength(e)+x.LINE_BREAK.length,a&&(a.path||a.readable&&a.hasOwnProperty("httpVersion")||a instanceof l)&&(i.knownLength||this._valuesToMeasure.push(a))},x.prototype._lengthRetriever=function(e,a){e.hasOwnProperty("fd")?null!=e.end&&e.end!=1/0&&null!=e.start?a(null,e.end+1-(e.start?e.start:0)):p.stat(e.path,(function(i,n){var o;i?a(i):(o=n.size-(e.start?e.start:0),a(null,o))})):e.hasOwnProperty("httpVersion")?a(null,+e.headers["content-length"]):e.hasOwnProperty("httpModule")?(e.on("response",(function(i){e.pause(),a(null,+i.headers["content-length"])})),e.resume()):a("Unknown stream")},x.prototype._multiPartHeader=function(e,a,i){if("string"==typeof i.header)return i.header;var n,o=this._getContentDisposition(a,i),s=this._getContentType(a,i),t="",r={"Content-Disposition":["form-data",'name="'+e+'"'].concat(o||[]),"Content-Type":[].concat(s||[])};for(var c in"object"==typeof i.header&&m(r,i.header),r)r.hasOwnProperty(c)&&null!=(n=r[c])&&(Array.isArray(n)||(n=[n]),n.length&&(t+=c+": "+n.join("; ")+x.LINE_BREAK));return"--"+this.getBoundary()+x.LINE_BREAK+t+x.LINE_BREAK},x.prototype._getContentDisposition=function(e,a){var i,n;return"string"==typeof a.filepath?i=s.normalize(a.filepath).replace(/\\/g,"/"):a.filename||e.name||e.path?i=s.basename(a.filename||e.name||e.path):e.readable&&e.hasOwnProperty("httpVersion")&&(i=s.basename(e.client._httpMessage.path||"")),i&&(n='filename="'+i+'"'),n},x.prototype._getContentType=function(e,a){var i=a.contentType;return!i&&e.name&&(i=u.lookup(e.name)),!i&&e.path&&(i=u.lookup(e.path)),!i&&e.readable&&e.hasOwnProperty("httpVersion")&&(i=e.headers["content-type"]),i||!a.filepath&&!a.filename||(i=u.lookup(a.filepath||a.filename)),i||"object"!=typeof e||(i=x.DEFAULT_CONTENT_TYPE),i},x.prototype._multiPartFooter=function(){return function(e){var a=x.LINE_BREAK;0===this._streams.length&&(a+=this._lastBoundary()),e(a)}.bind(this)},x.prototype._lastBoundary=function(){return"--"+this.getBoundary()+"--"+x.LINE_BREAK},x.prototype.getHeaders=function(e){var a,i={"content-type":"multipart/form-data; boundary="+this.getBoundary()};for(a in e)e.hasOwnProperty(a)&&(i[a.toLowerCase()]=e[a]);return i},x.prototype.setBoundary=function(e){this._boundary=e},x.prototype.getBoundary=function(){return this._boundary||this._generateBoundary(),this._boundary},x.prototype.getBuffer=function(){for(var e=new Buffer.alloc(0),a=this.getBoundary(),i=0,n=this._streams.length;i{e.exports=function(e,a){return Object.keys(a).forEach((function(i){e[i]=e[i]||a[i]})),e}},7598:(e,a,i)=>{e.exports=i(1813)},6049:(e,a,i)=>{"use strict";var n,o,s,t=i(7598),r=i(6928).extname,c=/^\s*([^;\s]*)(?:;|\s|$)/,p=/^text\//i;function l(e){if(!e||"string"!=typeof e)return!1;var a=c.exec(e),i=a&&t[a[1].toLowerCase()];return i&&i.charset?i.charset:!(!a||!p.test(a[1]))&&"UTF-8"}a.charset=l,a.charsets={lookup:l},a.contentType=function(e){if(!e||"string"!=typeof e)return!1;var i=-1===e.indexOf("/")?a.lookup(e):e;if(!i)return!1;if(-1===i.indexOf("charset")){var n=a.charset(i);n&&(i+="; charset="+n.toLowerCase())}return i},a.extension=function(e){if(!e||"string"!=typeof e)return!1;var i=c.exec(e),n=i&&a.extensions[i[1].toLowerCase()];return!(!n||!n.length)&&n[0]},a.extensions=Object.create(null),a.lookup=function(e){if(!e||"string"!=typeof e)return!1;var i=r("x."+e).toLowerCase().substr(1);return i&&a.types[i]||!1},a.types=Object.create(null),n=a.extensions,o=a.types,s=["nginx","apache",void 0,"iana"],Object.keys(t).forEach((function(e){var a=t[e],i=a.extensions;if(i&&i.length){n[e]=i;for(var r=0;rl||p===l&&"application/"===o[c].substr(0,12)))continue}o[c]=e}}}))},6504:(e,a,i)=>{"use strict";var n=i(7016).parse,o={ftp:21,gopher:70,http:80,https:443,ws:80,wss:443},s=String.prototype.endsWith||function(e){return e.length<=this.length&&-1!==this.indexOf(e,this.length-e.length)};function t(e){return process.env[e.toLowerCase()]||process.env[e.toUpperCase()]||""}a.getProxyForUrl=function(e){var a="string"==typeof e?n(e):e||{},i=a.protocol,r=a.host,c=a.port;if("string"!=typeof r||!r||"string"!=typeof i)return"";if(i=i.split(":",1)[0],!function(e,a){var i=(t("npm_config_no_proxy")||t("no_proxy")).toLowerCase();return!i||"*"!==i&&i.split(/[,\s]/).every((function(i){if(!i)return!0;var n=i.match(/^(.+):(\d+)$/),o=n?n[1]:i,t=n?parseInt(n[2]):0;return!(!t||t===a)||(/^[.*]/.test(o)?("*"===o.charAt(0)&&(o=o.slice(1)),!s.call(e,o)):e!==o)}))}(r=r.replace(/:\d*$/,""),c=parseInt(c)||o[i]||0))return"";var p=t("npm_config_"+i+"_proxy")||t(i+"_proxy")||t("npm_config_proxy")||t("all_proxy");return p&&-1===p.indexOf("://")&&(p=i+"://"+p),p}},3296:function(e,a,i){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(a,"__esModule",{value:!0});const o=i(3334),s=n(i(8330)),t=i(5562);(async()=>{if(process.argv.includes("--version"))console.log(s.default.version);else{(0,o.log)("Starting bootstrap",{env:JSON.stringify(process.env)});try{await(0,t.bootstrap)()}catch(e){e instanceof Error?console.error(e.message):console.error(e),process.exit(1)}(0,o.log)("Bootstrap complete")}})()},5562:(e,a,i)=>{"use strict";Object.defineProperty(a,"__esModule",{value:!0}),a.bootstrap=void 0;const n=i(2862),o=i(3334),s=i(5584),{_HANDLER:t,IS_OFFLINE:r,AWS_LAMBDA_RUNTIME_API:c}=process.env;a.bootstrap=async()=>{if(!c)throw new Error("No AWS_LAMBDA_RUNTIME_API specified");if(!t)throw new Error("No handler specified");(0,o.log)("Bootstraping",{_HANDLER:t,IS_OFFLINE:r,AWS_LAMBDA_RUNTIME_API:c});const{childProcess:e,bin:a,endpoint:i}=await(0,s.endpointSpawn)(t,"true"===r);try{(0,o.log)("Routing events",{bin:a,endpoint:i}),await(0,n.routeEvents)(c,a,i)}catch(a){throw e&&((0,o.log)("Killing child process",{pid:e.pid}),e.kill()),a}}},3334:function(e,a,i){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(a,"__esModule",{value:!0}),a.log=a.info=void 0;const o=n(i(8330));a.info=(e,a)=>{console.log(`[${o.default.name}@${o.default.version}] ${e}`,a?JSON.stringify(a):void 0)},a.log=(e,a)=>{process.env.SLY_DEBUG&&console.log(`[${o.default.name}@${o.default.version}] ${e}`,a?JSON.stringify(a):void 0)}},5584:function(e,a,i){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,a,i,n){void 0===n&&(n=i);var o=Object.getOwnPropertyDescriptor(a,i);o&&!("get"in o?!a.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return a[i]}}),Object.defineProperty(e,n,o)}:function(e,a,i,n){void 0===n&&(n=i),e[n]=a[i]}),o=this&&this.__setModuleDefault||(Object.create?function(e,a){Object.defineProperty(e,"default",{enumerable:!0,value:a})}:function(e,a){e.default=a}),s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var a={};if(null!=e)for(var i in e)"default"!==i&&Object.prototype.hasOwnProperty.call(e,i)&&n(a,e,i);return o(a,e),a},t=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(a,"__esModule",{value:!0}),a.endpointProxy=a.endpointExec=a.endpointSpawn=void 0;const r=s(i(9329)),c=t(i(9278)),p=i(3334),l=i(5317);function u(e){if(e)return Object.keys(e).reduce(((a,i)=>{const n=e[i];return n?(Array.isArray(n)?a[i]=n.join(", "):"string"!=typeof n&&"number"!=typeof n&&"boolean"!=typeof n||(a[i]=n),a):a}),{})}const d=async(e,a)=>{const i=Date.now();if(a-i<0)return{timeout:0};const n=e.hostname,o=parseInt(e.port,10)||("https:"===e.protocol?443:80);return new Promise((s=>{const t=new c.default.Socket,r=()=>(t.destroy(),d(e,a-(Date.now()-i)).then(s));t.setTimeout(a-i),t.once("error",r),t.once("timeout",r),t.connect(o,n,(()=>{t.end(),s({timeout:a-Date.now()})}))}))};a.endpointSpawn=async(e,a)=>{let i,[n,o]=e.split(/(?<=^[^@]*)@/);if(n&&!o)try{o=new URL(n).toString(),n=void 0}catch(e){}if(n&&o){(0,p.log)("Starting child process",{bin:n});const e=a?"dev":"start";(0,p.info)(`Running: \`${n} ${e}\``),i=(0,l.spawn)(n,[e],{detached:!0,stdio:"inherit"}),i.unref(),(0,p.log)("Started child process",{bin:n,subcommand:e,pid:i.pid})}return o=o?new URL(o):void 0,{childProcess:i,bin:n,endpoint:o}},a.endpointExec=async({requestId:e,bin:a,event:n,deadline:o})=>{const{execa:s}=await i.e(495).then(i.bind(i,6495)),{stdout:t}=await(s({stderr:["inherit"]})`${a} ${n}`);return(0,p.info)("TODO: need to handle deadline",{deadline:o}),{requestId:e,payload:JSON.parse(t)}},a.endpointProxy=async({requestId:e,endpoint:a,event:i,deadline:n})=>{const{requestContext:o,rawPath:s,rawQueryString:t,headers:c,body:l,isBase64Encoded:m}=i,x=o.http.method;(0,p.log)("Waiting for endpoint to start",{endpoint:a,deadline:n});const{timeout:f}=await d(a,n);if(!f)throw new Error(`${a.toString()} took longer than ${n} milliseconds to start.`);const v=new URL(s,a);t&&(v.search=new URLSearchParams(t).toString());const h=m&&l?Buffer.from(l,"base64"):l;let b;(0,p.log)("Proxying request",{url:v,method:x,rawHeaders:c,decodedBody:h,timeout:f});try{b=await r.default.request({method:x.toLowerCase(),url:v.toString(),headers:c,data:h,timeout:f,responseType:"arraybuffer"})}catch(e){if(!(0,r.isAxiosError)(e)||!e.response)throw e;b=e.response}if(!b)throw new Error("No response received");const{data:g,headers:y}=b;return(0,p.log)("Proxy request complete",{url:v,method:x,rawResponseHeaders:y,rawData:g}),{requestId:e,payload:{statusCode:b.status,headers:u(y),body:Buffer.from(g).toString("base64"),isBase64Encoded:!0}}}},2862:(e,a,i)=>{"use strict";Object.defineProperty(a,"__esModule",{value:!0}),a.routeEvents=void 0;const n=i(5584),o=i(3334),s=i(6632);a.routeEvents=async(e,i,t)=>{(0,o.log)("Waiting for next event from Lambda Runtime API",{runtimeApi:e});const{requestId:r,event:c,deadline:p}=await(0,s.nextEvent)(e);let l;if(i&&!t){(0,o.log)("No endpoint specified, executing bin",{bin:i});const e={requestId:r,bin:i,event:c,deadline:p};l=(await(0,n.endpointExec)(e)).payload,(0,o.log)("Bin execution complete",{bin:i,payload:l})}else{if(!t)throw new Error(`\nMissing bin and handler on _HANDLER: ${process.env._HANDLER}. \nExpected format: {bin}@{endpoint} or {bin} or {endpoint}:\n - next@http://localhost:3000\n - /usr/bin/app@http://localhost:3000\n - http://localhost:3000\n - /usr/bin/app\n`);{(0,o.log)("Endpoint specified, proxying request",{endpoint:t});const e={requestId:r,endpoint:t,event:c,deadline:p};l=(await(0,n.endpointProxy)(e)).payload,(0,o.log)("Proxy request complete",{endpoint:t,payload:l})}}return await(0,s.respondToEvent)(e,r,l),(0,o.log)("Response sent to Lambda Runtime API",{runtimeApi:e,requestId:r}),(0,a.routeEvents)(e,i,t)}},6632:function(e,a,i){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(a,"__esModule",{value:!0}),a.respondToEvent=a.nextEvent=void 0;const o=n(i(9329));a.nextEvent=async e=>{const{headers:a,data:i}=await o.default.get(`http://${e}/2018-06-01/runtime/invocation/next`,{timeout:0,responseType:"text"}),n=a["lambda-runtime-aws-request-id"];if(!n)throw new Error("No request ID found in response headers");const s=Number.parseInt(a["lambda-runtime-deadline-ms"]);return{requestId:n,event:JSON.parse(i),deadline:s}},a.respondToEvent=async(e,a,i)=>{await o.default.post(`http://${e}/2018-06-01/runtime/invocation/${a}/response`,i)}},2613:e=>{"use strict";e.exports=require("assert")},5317:e=>{"use strict";e.exports=require("child_process")},4434:e=>{"use strict";e.exports=require("events")},9896:e=>{"use strict";e.exports=require("fs")},8611:e=>{"use strict";e.exports=require("http")},5692:e=>{"use strict";e.exports=require("https")},9278:e=>{"use strict";e.exports=require("net")},4573:e=>{"use strict";e.exports=require("node:buffer")},1421:e=>{"use strict";e.exports=require("node:child_process")},8474:e=>{"use strict";e.exports=require("node:events")},3024:e=>{"use strict";e.exports=require("node:fs")},8161:e=>{"use strict";e.exports=require("node:os")},6760:e=>{"use strict";e.exports=require("node:path")},1708:e=>{"use strict";e.exports=require("node:process")},7075:e=>{"use strict";e.exports=require("node:stream")},6466:e=>{"use strict";e.exports=require("node:stream/promises")},6193:e=>{"use strict";e.exports=require("node:string_decoder")},8500:e=>{"use strict";e.exports=require("node:timers/promises")},7066:e=>{"use strict";e.exports=require("node:tty")},3136:e=>{"use strict";e.exports=require("node:url")},7975:e=>{"use strict";e.exports=require("node:util")},6928:e=>{"use strict";e.exports=require("path")},2203:e=>{"use strict";e.exports=require("stream")},7016:e=>{"use strict";e.exports=require("url")},9023:e=>{"use strict";e.exports=require("util")},3106:e=>{"use strict";e.exports=require("zlib")},9329:(e,a,i)=>{"use strict";const n=i(737),o=i(7016),s=i(6504),t=i(8611),r=i(5692),c=i(9023),p=i(3164),l=i(3106),u=i(2203),d=i(4434);function m(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}const x=m(n),f=m(o),v=m(t),h=m(r),b=m(c),g=m(p),y=m(l),w=m(u);function k(e,a){return function(){return e.apply(a,arguments)}}const{toString:j}=Object.prototype,{getPrototypeOf:_}=Object,E=(R=Object.create(null),e=>{const a=j.call(e);return R[a]||(R[a]=a.slice(8,-1).toLowerCase())});var R;const S=e=>(e=e.toLowerCase(),a=>E(a)===e),T=e=>a=>typeof a===e,{isArray:O}=Array,z=T("undefined"),q=S("ArrayBuffer"),L=T("string"),A=T("function"),B=T("number"),N=e=>null!==e&&"object"==typeof e,U=e=>{if("object"!==E(e))return!1;const a=_(e);return!(null!==a&&a!==Object.prototype&&null!==Object.getPrototypeOf(a)||Symbol.toStringTag in e||Symbol.iterator in e)},C=S("Date"),P=S("File"),D=S("Blob"),F=S("FileList"),I=S("URLSearchParams"),[M,H,$,W]=["ReadableStream","Request","Response","Headers"].map(S);function K(e,a,{allOwnKeys:i=!1}={}){if(null==e)return;let n,o;if("object"!=typeof e&&(e=[e]),O(e))for(n=0,o=e.length;n0;)if(n=i[o],a===n.toLowerCase())return n;return null}const V="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:global,G=e=>!z(e)&&e!==V,X=(Q="undefined"!=typeof Uint8Array&&_(Uint8Array),e=>Q&&e instanceof Q);var Q;const Y=S("HTMLFormElement"),Z=(({hasOwnProperty:e})=>(a,i)=>e.call(a,i))(Object.prototype),ee=S("RegExp"),ae=(e,a)=>{const i=Object.getOwnPropertyDescriptors(e),n={};K(i,((i,o)=>{let s;!1!==(s=a(i,o,e))&&(n[o]=s||i)})),Object.defineProperties(e,n)},ie="abcdefghijklmnopqrstuvwxyz",ne="0123456789",oe={DIGIT:ne,ALPHA:ie,ALPHA_DIGIT:ie+ie.toUpperCase()+ne},se=S("AsyncFunction"),te={isArray:O,isArrayBuffer:q,isBuffer:function(e){return null!==e&&!z(e)&&null!==e.constructor&&!z(e.constructor)&&A(e.constructor.isBuffer)&&e.constructor.isBuffer(e)},isFormData:e=>{let a;return e&&("function"==typeof FormData&&e instanceof FormData||A(e.append)&&("formdata"===(a=E(e))||"object"===a&&A(e.toString)&&"[object FormData]"===e.toString()))},isArrayBufferView:function(e){let a;return a="undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer&&q(e.buffer),a},isString:L,isNumber:B,isBoolean:e=>!0===e||!1===e,isObject:N,isPlainObject:U,isReadableStream:M,isRequest:H,isResponse:$,isHeaders:W,isUndefined:z,isDate:C,isFile:P,isBlob:D,isRegExp:ee,isFunction:A,isStream:e=>N(e)&&A(e.pipe),isURLSearchParams:I,isTypedArray:X,isFileList:F,forEach:K,merge:function e(){const{caseless:a}=G(this)&&this||{},i={},n=(n,o)=>{const s=a&&J(i,o)||o;U(i[s])&&U(n)?i[s]=e(i[s],n):U(n)?i[s]=e({},n):O(n)?i[s]=n.slice():i[s]=n};for(let e=0,a=arguments.length;e(K(a,((a,n)=>{i&&A(a)?e[n]=k(a,i):e[n]=a}),{allOwnKeys:n}),e),trim:e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,""),stripBOM:e=>(65279===e.charCodeAt(0)&&(e=e.slice(1)),e),inherits:(e,a,i,n)=>{e.prototype=Object.create(a.prototype,n),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:a.prototype}),i&&Object.assign(e.prototype,i)},toFlatObject:(e,a,i,n)=>{let o,s,t;const r={};if(a=a||{},null==e)return a;do{for(o=Object.getOwnPropertyNames(e),s=o.length;s-- >0;)t=o[s],n&&!n(t,e,a)||r[t]||(a[t]=e[t],r[t]=!0);e=!1!==i&&_(e)}while(e&&(!i||i(e,a))&&e!==Object.prototype);return a},kindOf:E,kindOfTest:S,endsWith:(e,a,i)=>{e=String(e),(void 0===i||i>e.length)&&(i=e.length),i-=a.length;const n=e.indexOf(a,i);return-1!==n&&n===i},toArray:e=>{if(!e)return null;if(O(e))return e;let a=e.length;if(!B(a))return null;const i=new Array(a);for(;a-- >0;)i[a]=e[a];return i},forEachEntry:(e,a)=>{const i=(e&&e[Symbol.iterator]).call(e);let n;for(;(n=i.next())&&!n.done;){const i=n.value;a.call(e,i[0],i[1])}},matchAll:(e,a)=>{let i;const n=[];for(;null!==(i=e.exec(a));)n.push(i);return n},isHTMLForm:Y,hasOwnProperty:Z,hasOwnProp:Z,reduceDescriptors:ae,freezeMethods:e=>{ae(e,((a,i)=>{if(A(e)&&-1!==["arguments","caller","callee"].indexOf(i))return!1;const n=e[i];A(n)&&(a.enumerable=!1,"writable"in a?a.writable=!1:a.set||(a.set=()=>{throw Error("Can not rewrite read-only method '"+i+"'")}))}))},toObjectSet:(e,a)=>{const i={},n=e=>{e.forEach((e=>{i[e]=!0}))};return O(e)?n(e):n(String(e).split(a)),i},toCamelCase:e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,(function(e,a,i){return a.toUpperCase()+i})),noop:()=>{},toFiniteNumber:(e,a)=>null!=e&&Number.isFinite(e=+e)?e:a,findKey:J,global:V,isContextDefined:G,ALPHABET:oe,generateString:(e=16,a=oe.ALPHA_DIGIT)=>{let i="";const{length:n}=a;for(;e--;)i+=a[Math.random()*n|0];return i},isSpecCompliantForm:function(e){return!!(e&&A(e.append)&&"FormData"===e[Symbol.toStringTag]&&e[Symbol.iterator])},toJSONObject:e=>{const a=new Array(10),i=(e,n)=>{if(N(e)){if(a.indexOf(e)>=0)return;if(!("toJSON"in e)){a[n]=e;const o=O(e)?[]:{};return K(e,((e,a)=>{const s=i(e,n+1);!z(s)&&(o[a]=s)})),a[n]=void 0,o}}return e};return i(e,0)},isAsyncFn:se,isThenable:e=>e&&(N(e)||A(e))&&A(e.then)&&A(e.catch)};function re(e,a,i,n,o){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=(new Error).stack,this.message=e,this.name="AxiosError",a&&(this.code=a),i&&(this.config=i),n&&(this.request=n),o&&(this.response=o)}te.inherits(re,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:te.toJSONObject(this.config),code:this.code,status:this.response&&this.response.status?this.response.status:null}}});const ce=re.prototype,pe={};function le(e){return te.isPlainObject(e)||te.isArray(e)}function ue(e){return te.endsWith(e,"[]")?e.slice(0,-2):e}function de(e,a,i){return e?e.concat(a).map((function(e,a){return e=ue(e),!i&&a?"["+e+"]":e})).join(i?".":""):a}["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach((e=>{pe[e]={value:e}})),Object.defineProperties(re,pe),Object.defineProperty(ce,"isAxiosError",{value:!0}),re.from=(e,a,i,n,o,s)=>{const t=Object.create(ce);return te.toFlatObject(e,t,(function(e){return e!==Error.prototype}),(e=>"isAxiosError"!==e)),re.call(t,e.message,a,i,n,o),t.cause=e,t.name=e.name,s&&Object.assign(t,s),t};const me=te.toFlatObject(te,{},null,(function(e){return/^is[A-Z]/.test(e)}));function xe(e,a,i){if(!te.isObject(e))throw new TypeError("target must be an object");a=a||new(x.default||FormData);const n=(i=te.toFlatObject(i,{metaTokens:!0,dots:!1,indexes:!1},!1,(function(e,a){return!te.isUndefined(a[e])}))).metaTokens,o=i.visitor||p,s=i.dots,t=i.indexes,r=(i.Blob||"undefined"!=typeof Blob&&Blob)&&te.isSpecCompliantForm(a);if(!te.isFunction(o))throw new TypeError("visitor must be a function");function c(e){if(null===e)return"";if(te.isDate(e))return e.toISOString();if(!r&&te.isBlob(e))throw new re("Blob is not supported. Use a Buffer instead.");return te.isArrayBuffer(e)||te.isTypedArray(e)?r&&"function"==typeof Blob?new Blob([e]):Buffer.from(e):e}function p(e,i,o){let r=e;if(e&&!o&&"object"==typeof e)if(te.endsWith(i,"{}"))i=n?i:i.slice(0,-2),e=JSON.stringify(e);else if(te.isArray(e)&&function(e){return te.isArray(e)&&!e.some(le)}(e)||(te.isFileList(e)||te.endsWith(i,"[]"))&&(r=te.toArray(e)))return i=ue(i),r.forEach((function(e,n){!te.isUndefined(e)&&null!==e&&a.append(!0===t?de([i],n,s):null===t?i:i+"[]",c(e))})),!1;return!!le(e)||(a.append(de(o,i,s),c(e)),!1)}const l=[],u=Object.assign(me,{defaultVisitor:p,convertValue:c,isVisitable:le});if(!te.isObject(e))throw new TypeError("data must be an object");return function e(i,n){if(!te.isUndefined(i)){if(-1!==l.indexOf(i))throw Error("Circular reference detected in "+n.join("."));l.push(i),te.forEach(i,(function(i,s){!0===(!(te.isUndefined(i)||null===i)&&o.call(a,i,te.isString(s)?s.trim():s,n,u))&&e(i,n?n.concat(s):[s])})),l.pop()}}(e),a}function fe(e){const a={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,(function(e){return a[e]}))}function ve(e,a){this._pairs=[],e&&xe(e,this,a)}const he=ve.prototype;function be(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function ge(e,a,i){if(!a)return e;const n=i&&i.encode||be,o=i&&i.serialize;let s;if(s=o?o(a,i):te.isURLSearchParams(a)?a.toString():new ve(a,i).toString(n),s){const a=e.indexOf("#");-1!==a&&(e=e.slice(0,a)),e+=(-1===e.indexOf("?")?"?":"&")+s}return e}he.append=function(e,a){this._pairs.push([e,a])},he.toString=function(e){const a=e?function(a){return e.call(this,a,fe)}:fe;return this._pairs.map((function(e){return a(e[0])+"="+a(e[1])}),"").join("&")};const ye=class{constructor(){this.handlers=[]}use(e,a,i){return this.handlers.push({fulfilled:e,rejected:a,synchronous:!!i&&i.synchronous,runWhen:i?i.runWhen:null}),this.handlers.length-1}eject(e){this.handlers[e]&&(this.handlers[e]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(e){te.forEach(this.handlers,(function(a){null!==a&&e(a)}))}},we={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},ke={isNode:!0,classes:{URLSearchParams:f.default.URLSearchParams,FormData:x.default,Blob:"undefined"!=typeof Blob&&Blob||null},protocols:["http","https","file","data"]},je="undefined"!=typeof window&&"undefined"!=typeof document,_e=(Ee="undefined"!=typeof navigator&&navigator.product,je&&["ReactNative","NativeScript","NS"].indexOf(Ee)<0);var Ee;const Re="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&"function"==typeof self.importScripts,Se=je&&window.location.href||"http://localhost",Te={...Object.freeze({__proto__:null,hasBrowserEnv:je,hasStandardBrowserWebWorkerEnv:Re,hasStandardBrowserEnv:_e,origin:Se}),...ke};function Oe(e){function a(e,i,n,o){let s=e[o++];if("__proto__"===s)return!0;const t=Number.isFinite(+s),r=o>=e.length;return s=!s&&te.isArray(n)?n.length:s,r?(te.hasOwnProp(n,s)?n[s]=[n[s],i]:n[s]=i,!t):(n[s]&&te.isObject(n[s])||(n[s]=[]),a(e,i,n[s],o)&&te.isArray(n[s])&&(n[s]=function(e){const a={},i=Object.keys(e);let n;const o=i.length;let s;for(n=0;n{a(function(e){return te.matchAll(/\w+|\[(\w*)]/g,e).map((e=>"[]"===e[0]?"":e[1]||e[0]))}(e),n,i,0)})),i}return null}const ze={transitional:we,adapter:["xhr","http","fetch"],transformRequest:[function(e,a){const i=a.getContentType()||"",n=i.indexOf("application/json")>-1,o=te.isObject(e);if(o&&te.isHTMLForm(e)&&(e=new FormData(e)),te.isFormData(e))return n?JSON.stringify(Oe(e)):e;if(te.isArrayBuffer(e)||te.isBuffer(e)||te.isStream(e)||te.isFile(e)||te.isBlob(e)||te.isReadableStream(e))return e;if(te.isArrayBufferView(e))return e.buffer;if(te.isURLSearchParams(e))return a.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),e.toString();let s;if(o){if(i.indexOf("application/x-www-form-urlencoded")>-1)return function(e,a){return xe(e,new Te.classes.URLSearchParams,Object.assign({visitor:function(e,a,i,n){return Te.isNode&&te.isBuffer(e)?(this.append(a,e.toString("base64")),!1):n.defaultVisitor.apply(this,arguments)}},a))}(e,this.formSerializer).toString();if((s=te.isFileList(e))||i.indexOf("multipart/form-data")>-1){const a=this.env&&this.env.FormData;return xe(s?{"files[]":e}:e,a&&new a,this.formSerializer)}}return o||n?(a.setContentType("application/json",!1),function(e,a,i){if(te.isString(e))try{return(0,JSON.parse)(e),te.trim(e)}catch(e){if("SyntaxError"!==e.name)throw e}return(0,JSON.stringify)(e)}(e)):e}],transformResponse:[function(e){const a=this.transitional||ze.transitional,i=a&&a.forcedJSONParsing,n="json"===this.responseType;if(te.isResponse(e)||te.isReadableStream(e))return e;if(e&&te.isString(e)&&(i&&!this.responseType||n)){const i=!(a&&a.silentJSONParsing)&&n;try{return JSON.parse(e)}catch(e){if(i){if("SyntaxError"===e.name)throw re.from(e,re.ERR_BAD_RESPONSE,this,null,this.response);throw e}}}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:Te.classes.FormData,Blob:Te.classes.Blob},validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};te.forEach(["delete","get","head","post","put","patch"],(e=>{ze.headers[e]={}}));const qe=ze,Le=te.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),Ae=Symbol("internals");function Be(e){return e&&String(e).trim().toLowerCase()}function Ne(e){return!1===e||null==e?e:te.isArray(e)?e.map(Ne):String(e)}function Ue(e,a,i,n,o){return te.isFunction(n)?n.call(this,a,i):(o&&(a=i),te.isString(a)?te.isString(n)?-1!==a.indexOf(n):te.isRegExp(n)?n.test(a):void 0:void 0)}class Ce{constructor(e){e&&this.set(e)}set(e,a,i){const n=this;function o(e,a,i){const o=Be(a);if(!o)throw new Error("header name must be a non-empty string");const s=te.findKey(n,o);(!s||void 0===n[s]||!0===i||void 0===i&&!1!==n[s])&&(n[s||a]=Ne(e))}const s=(e,a)=>te.forEach(e,((e,i)=>o(e,i,a)));if(te.isPlainObject(e)||e instanceof this.constructor)s(e,a);else if(te.isString(e)&&(e=e.trim())&&!/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim()))s((e=>{const a={};let i,n,o;return e&&e.split("\n").forEach((function(e){o=e.indexOf(":"),i=e.substring(0,o).trim().toLowerCase(),n=e.substring(o+1).trim(),!i||a[i]&&Le[i]||("set-cookie"===i?a[i]?a[i].push(n):a[i]=[n]:a[i]=a[i]?a[i]+", "+n:n)})),a})(e),a);else if(te.isHeaders(e))for(const[a,n]of e.entries())o(n,a,i);else null!=e&&o(a,e,i);return this}get(e,a){if(e=Be(e)){const i=te.findKey(this,e);if(i){const e=this[i];if(!a)return e;if(!0===a)return function(e){const a=Object.create(null),i=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let n;for(;n=i.exec(e);)a[n[1]]=n[2];return a}(e);if(te.isFunction(a))return a.call(this,e,i);if(te.isRegExp(a))return a.exec(e);throw new TypeError("parser must be boolean|regexp|function")}}}has(e,a){if(e=Be(e)){const i=te.findKey(this,e);return!(!i||void 0===this[i]||a&&!Ue(0,this[i],i,a))}return!1}delete(e,a){const i=this;let n=!1;function o(e){if(e=Be(e)){const o=te.findKey(i,e);!o||a&&!Ue(0,i[o],o,a)||(delete i[o],n=!0)}}return te.isArray(e)?e.forEach(o):o(e),n}clear(e){const a=Object.keys(this);let i=a.length,n=!1;for(;i--;){const o=a[i];e&&!Ue(0,this[o],o,e,!0)||(delete this[o],n=!0)}return n}normalize(e){const a=this,i={};return te.forEach(this,((n,o)=>{const s=te.findKey(i,o);if(s)return a[s]=Ne(n),void delete a[o];const t=e?function(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,((e,a,i)=>a.toUpperCase()+i))}(o):String(o).trim();t!==o&&delete a[o],a[t]=Ne(n),i[t]=!0})),this}concat(...e){return this.constructor.concat(this,...e)}toJSON(e){const a=Object.create(null);return te.forEach(this,((i,n)=>{null!=i&&!1!==i&&(a[n]=e&&te.isArray(i)?i.join(", "):i)})),a}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map((([e,a])=>e+": "+a)).join("\n")}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(e){return e instanceof this?e:new this(e)}static concat(e,...a){const i=new this(e);return a.forEach((e=>i.set(e))),i}static accessor(e){const a=(this[Ae]=this[Ae]={accessors:{}}).accessors,i=this.prototype;function n(e){const n=Be(e);a[n]||(function(e,a){const i=te.toCamelCase(" "+a);["get","set","has"].forEach((n=>{Object.defineProperty(e,n+i,{value:function(e,i,o){return this[n].call(this,a,e,i,o)},configurable:!0})}))}(i,e),a[n]=!0)}return te.isArray(e)?e.forEach(n):n(e),this}}Ce.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]),te.reduceDescriptors(Ce.prototype,(({value:e},a)=>{let i=a[0].toUpperCase()+a.slice(1);return{get:()=>e,set(e){this[i]=e}}})),te.freezeMethods(Ce);const Pe=Ce;function De(e,a){const i=this||qe,n=a||i,o=Pe.from(n.headers);let s=n.data;return te.forEach(e,(function(e){s=e.call(i,s,o.normalize(),a?a.status:void 0)})),o.normalize(),s}function Fe(e){return!(!e||!e.__CANCEL__)}function Ie(e,a,i){re.call(this,null==e?"canceled":e,re.ERR_CANCELED,a,i),this.name="CanceledError"}function Me(e,a,i){const n=i.config.validateStatus;i.status&&n&&!n(i.status)?a(new re("Request failed with status code "+i.status,[re.ERR_BAD_REQUEST,re.ERR_BAD_RESPONSE][Math.floor(i.status/100)-4],i.config,i.request,i)):e(i)}function He(e,a){return e&&!function(e){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}(a)?function(e,a){return a?e.replace(/\/?\/$/,"")+"/"+a.replace(/^\/+/,""):e}(e,a):a}te.inherits(Ie,re,{__CANCEL__:!0});const $e="1.7.2";function We(e){const a=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return a&&a[1]||""}const Ke=/^(?:([^;]+);)?(?:[^;]+;)?(base64|),([\s\S]*)$/;function Je(e,a){let i=0;const n=1e3/a;let o=null;return function(){const a=!0===this,s=Date.now();if(a||s-i>n)return o&&(clearTimeout(o),o=null),i=s,e.apply(null,arguments);o||(o=setTimeout((()=>(o=null,i=Date.now(),e.apply(null,arguments))),n-(s-i)))}}function Ve(e,a){e=e||10;const i=new Array(e),n=new Array(e);let o,s=0,t=0;return a=void 0!==a?a:1e3,function(r){const c=Date.now(),p=n[t];o||(o=c),i[s]=r,n[s]=c;let l=t,u=0;for(;l!==s;)u+=i[l++],l%=e;if(s=(s+1)%e,s===t&&(t=(t+1)%e),c-o!te.isUndefined(a[e])))).chunkSize});const a=this,i=this[Ge]={length:e.length,timeWindow:e.timeWindow,ticksRate:e.ticksRate,chunkSize:e.chunkSize,maxRate:e.maxRate,minChunkSize:e.minChunkSize,bytesSeen:0,isCaptured:!1,notifiedBytesLoaded:0,ts:Date.now(),bytes:0,onReadCallback:null},n=Ve(i.ticksRate*e.samplesCount,i.timeWindow);this.on("newListener",(e=>{"progress"===e&&(i.isCaptured||(i.isCaptured=!0))}));let o=0;i.updateProgress=Je((function(){const e=i.length,s=i.bytesSeen,t=s-o;if(!t||a.destroyed)return;const r=n(t);o=s,process.nextTick((()=>{a.emit("progress",{loaded:s,total:e,progress:e?s/e:void 0,bytes:t,rate:r||void 0,estimated:r&&e&&s<=e?(e-s)/r:void 0,lengthComputable:null!=e})}))}),i.ticksRate);const s=()=>{i.updateProgress.call(!0)};this.once("end",s),this.once("error",s)}_read(e){const a=this[Ge];return a.onReadCallback&&a.onReadCallback(),super._read(e)}_transform(e,a,i){const n=this,o=this[Ge],s=o.maxRate,t=this.readableHighWaterMark,r=o.timeWindow,c=s/(1e3/r),p=!1!==o.minChunkSize?Math.max(o.minChunkSize,.01*c):0,l=(e,a)=>{const i=Buffer.byteLength(e);let l,u=null,d=t,m=0;if(s){const e=Date.now();(!o.ts||(m=e-o.ts)>=r)&&(o.ts=e,l=c-o.bytes,o.bytes=l<0?-l:0,m=0),l=c-o.bytes}if(s){if(l<=0)return setTimeout((()=>{a(null,e)}),r-m);ld&&i-d>p&&(u=e.subarray(d),e=e.subarray(0,d)),function(e,a){const i=Buffer.byteLength(e);o.bytesSeen+=i,o.bytes+=i,o.isCaptured&&o.updateProgress(),n.push(e)?process.nextTick(a):o.onReadCallback=()=>{o.onReadCallback=null,process.nextTick(a)}}(e,u?()=>{process.nextTick(a,null,u)}:a)};l(e,(function e(a,n){if(a)return i(a);n?l(n,e):i(null)}))}setLength(e){return this[Ge].length=+e,this}}const Qe=Xe,{asyncIterator:Ye}=Symbol,Ze=async function*(e){e.stream?yield*e.stream():e.arrayBuffer?yield await e.arrayBuffer():e[Ye]?yield*e[Ye]():yield e},ea=te.ALPHABET.ALPHA_DIGIT+"-_",aa=new c.TextEncoder,ia="\r\n",na=aa.encode(ia);class oa{constructor(e,a){const{escapeName:i}=this.constructor,n=te.isString(a);let o=`Content-Disposition: form-data; name="${i(e)}"${!n&&a.name?`; filename="${i(a.name)}"`:""}${ia}`;n?a=aa.encode(String(a).replace(/\r?\n|\r\n?/g,ia)):o+=`Content-Type: ${a.type||"application/octet-stream"}${ia}`,this.headers=aa.encode(o+ia),this.contentLength=n?a.byteLength:a.size,this.size=this.headers.byteLength+this.contentLength+2,this.name=e,this.value=a}async*encode(){yield this.headers;const{value:e}=this;te.isTypedArray(e)?yield e:yield*Ze(e),yield na}static escapeName(e){return String(e).replace(/[\r\n"]/g,(e=>({"\r":"%0D","\n":"%0A",'"':"%22"}[e])))}}class sa extends w.default.Transform{__transform(e,a,i){this.push(e),i()}_transform(e,a,i){if(0!==e.length&&(this._transform=this.__transform,120!==e[0])){const e=Buffer.alloc(2);e[0]=120,e[1]=156,this.push(e,a)}this.__transform(e,a,i)}}const ta=sa,ra=(e,a)=>te.isAsyncFn(e)?function(...i){const n=i.pop();e.apply(this,i).then((e=>{try{a?n(null,...a(e)):n(null,e)}catch(e){n(e)}}),n)}:e,ca={flush:y.default.constants.Z_SYNC_FLUSH,finishFlush:y.default.constants.Z_SYNC_FLUSH},pa={flush:y.default.constants.BROTLI_OPERATION_FLUSH,finishFlush:y.default.constants.BROTLI_OPERATION_FLUSH},la=te.isFunction(y.default.createBrotliDecompress),{http:ua,https:da}=g.default,ma=/https:?/,xa=Te.protocols.map((e=>e+":"));function fa(e,a){e.beforeRedirects.proxy&&e.beforeRedirects.proxy(e),e.beforeRedirects.config&&e.beforeRedirects.config(e,a)}function va(e,a,i){let n=a;if(!n&&!1!==n){const e=s.getProxyForUrl(i);e&&(n=new URL(e))}if(n){if(n.username&&(n.auth=(n.username||"")+":"+(n.password||"")),n.auth){(n.auth.username||n.auth.password)&&(n.auth=(n.auth.username||"")+":"+(n.auth.password||""));const a=Buffer.from(n.auth,"utf8").toString("base64");e.headers["Proxy-Authorization"]="Basic "+a}e.headers.host=e.hostname+(e.port?":"+e.port:"");const a=n.hostname||n.host;e.hostname=a,e.host=a,e.port=n.port,e.path=i,n.protocol&&(e.protocol=n.protocol.includes(":")?n.protocol:`${n.protocol}:`)}e.beforeRedirects.proxy=function(e){va(e,a,e.href)}}const ha="undefined"!=typeof process&&"process"===te.kindOf(process),ba=(e,a)=>(({address:e,family:a})=>{if(!te.isString(e))throw TypeError("address must be a string");return{address:e,family:a||(e.indexOf(".")<0?6:4)}})(te.isObject(e)?e:{address:e,family:a}),ga=ha&&function(e){return a=async function(a,i,n){let{data:o,lookup:s,family:t}=e;const{responseType:r,responseEncoding:c}=e,p=e.method.toUpperCase();let l,m,x=!1;if(s){const e=ra(s,(e=>te.isArray(e)?e:[e]));s=(a,i,n)=>{e(a,i,((e,a,o)=>{if(e)return n(e);const s=te.isArray(a)?a.map((e=>ba(e))):[ba(a,o)];i.all?n(e,s):n(e,s[0].address,s[0].family)}))}}const f=new d.EventEmitter,g=()=>{e.cancelToken&&e.cancelToken.unsubscribe(k),e.signal&&e.signal.removeEventListener("abort",k),f.removeAllListeners()};function k(a){f.emit("abort",!a||a.type?new Ie(null,e,m):a)}n(((e,a)=>{l=!0,a&&(x=!0,g())})),f.once("abort",i),(e.cancelToken||e.signal)&&(e.cancelToken&&e.cancelToken.subscribe(k),e.signal&&(e.signal.aborted?k():e.signal.addEventListener("abort",k)));const j=He(e.baseURL,e.url),_=new URL(j,"http://localhost"),E=_.protocol||xa[0];if("data:"===E){let n;if("GET"!==p)return Me(a,i,{status:405,statusText:"method not allowed",headers:{},config:e});try{n=function(e,a,i){const n=i&&i.Blob||Te.classes.Blob,o=We(e);if(void 0===a&&n&&(a=!0),"data"===o){e=o.length?e.slice(o.length+1):e;const i=Ke.exec(e);if(!i)throw new re("Invalid URL",re.ERR_INVALID_URL);const s=i[1],t=i[2],r=i[3],c=Buffer.from(decodeURIComponent(r),t?"base64":"utf8");if(a){if(!n)throw new re("Blob is not supported",re.ERR_NOT_SUPPORT);return new n([c],{type:s})}return c}throw new re("Unsupported protocol "+o,re.ERR_NOT_SUPPORT)}(e.url,"blob"===r,{Blob:e.env&&e.env.Blob})}catch(a){throw re.from(a,re.ERR_BAD_REQUEST,e)}return"text"===r?(n=n.toString(c),c&&"utf8"!==c||(n=te.stripBOM(n))):"stream"===r&&(n=w.default.Readable.from(n)),Me(a,i,{data:n,status:200,statusText:"OK",headers:new Pe,config:e})}if(-1===xa.indexOf(E))return i(new re("Unsupported protocol "+E,re.ERR_BAD_REQUEST,e));const R=Pe.from(e.headers).normalize();R.set("User-Agent","axios/"+$e,!1);const S=e.onDownloadProgress,T=e.onUploadProgress,O=e.maxRate;let z,q;if(te.isSpecCompliantForm(o)){const e=R.getContentType(/boundary=([-_\w\d]{10,70})/i);o=((e,a,i)=>{const{tag:n="form-data-boundary",size:o=25,boundary:s=n+"-"+te.generateString(o,ea)}=i||{};if(!te.isFormData(e))throw TypeError("FormData instance required");if(s.length<1||s.length>70)throw Error("boundary must be 10-70 characters long");const t=aa.encode("--"+s+ia),r=aa.encode("--"+s+"--"+ia+ia);let c=r.byteLength;const p=Array.from(e.entries()).map((([e,a])=>{const i=new oa(e,a);return c+=i.size,i}));c+=t.byteLength*p.length,c=te.toFiniteNumber(c);const l={"Content-Type":`multipart/form-data; boundary=${s}`};return Number.isFinite(c)&&(l["Content-Length"]=c),a&&a(l),u.Readable.from(async function*(){for(const e of p)yield t,yield*e.encode();yield r}())})(o,(e=>{R.set(e)}),{tag:`axios-${$e}-boundary`,boundary:e&&e[1]||void 0})}else if(te.isFormData(o)&&te.isFunction(o.getHeaders)){if(R.set(o.getHeaders()),!R.hasContentLength())try{const e=await b.default.promisify(o.getLength).call(o);Number.isFinite(e)&&e>=0&&R.setContentLength(e)}catch(e){}}else if(te.isBlob(o))o.size&&R.setContentType(o.type||"application/octet-stream"),R.setContentLength(o.size||0),o=w.default.Readable.from(Ze(o));else if(o&&!te.isStream(o)){if(Buffer.isBuffer(o));else if(te.isArrayBuffer(o))o=Buffer.from(new Uint8Array(o));else{if(!te.isString(o))return i(new re("Data after transformation must be a string, an ArrayBuffer, a Buffer, or a Stream",re.ERR_BAD_REQUEST,e));o=Buffer.from(o,"utf-8")}if(R.setContentLength(o.length,!1),e.maxBodyLength>-1&&o.length>e.maxBodyLength)return i(new re("Request body larger than maxBodyLength limit",re.ERR_BAD_REQUEST,e))}const L=te.toFiniteNumber(R.getContentLength());let A,B;te.isArray(O)?(z=O[0],q=O[1]):z=q=O,o&&(T||z)&&(te.isStream(o)||(o=w.default.Readable.from(o,{objectMode:!1})),o=w.default.pipeline([o,new Qe({length:L,maxRate:te.toFiniteNumber(z)})],te.noop),T&&o.on("progress",(e=>{T(Object.assign(e,{upload:!0}))}))),e.auth&&(A=(e.auth.username||"")+":"+(e.auth.password||"")),!A&&_.username&&(A=_.username+":"+_.password),A&&R.delete("authorization");try{B=ge(_.pathname+_.search,e.params,e.paramsSerializer).replace(/^\?/,"")}catch(a){const n=new Error(a.message);return n.config=e,n.url=e.url,n.exists=!0,i(n)}R.set("Accept-Encoding","gzip, compress, deflate"+(la?", br":""),!1);const N={path:B,method:p,headers:R.toJSON(),agents:{http:e.httpAgent,https:e.httpsAgent},auth:A,protocol:E,family:t,beforeRedirect:fa,beforeRedirects:{}};let U;!te.isUndefined(s)&&(N.lookup=s),e.socketPath?N.socketPath=e.socketPath:(N.hostname=_.hostname,N.port=_.port,va(N,e.proxy,E+"//"+_.hostname+(_.port?":"+_.port:"")+N.path));const C=ma.test(N.protocol);if(N.agent=C?e.httpsAgent:e.httpAgent,e.transport?U=e.transport:0===e.maxRedirects?U=C?h.default:v.default:(e.maxRedirects&&(N.maxRedirects=e.maxRedirects),e.beforeRedirect&&(N.beforeRedirects.config=e.beforeRedirect),U=C?da:ua),e.maxBodyLength>-1?N.maxBodyLength=e.maxBodyLength:N.maxBodyLength=1/0,e.insecureHTTPParser&&(N.insecureHTTPParser=e.insecureHTTPParser),m=U.request(N,(function(n){if(m.destroyed)return;const o=[n],s=+n.headers["content-length"];if(S){const e=new Qe({length:te.toFiniteNumber(s),maxRate:te.toFiniteNumber(q)});S&&e.on("progress",(e=>{S(Object.assign(e,{download:!0}))})),o.push(e)}let t=n;const l=n.req||m;if(!1!==e.decompress&&n.headers["content-encoding"])switch("HEAD"!==p&&204!==n.statusCode||delete n.headers["content-encoding"],(n.headers["content-encoding"]||"").toLowerCase()){case"gzip":case"x-gzip":case"compress":case"x-compress":o.push(y.default.createUnzip(ca)),delete n.headers["content-encoding"];break;case"deflate":o.push(new ta),o.push(y.default.createUnzip(ca)),delete n.headers["content-encoding"];break;case"br":la&&(o.push(y.default.createBrotliDecompress(pa)),delete n.headers["content-encoding"])}t=o.length>1?w.default.pipeline(o,te.noop):o[0];const u=w.default.finished(t,(()=>{u(),g()})),d={status:n.statusCode,statusText:n.statusMessage,headers:new Pe(n.headers),config:e,request:l};if("stream"===r)d.data=t,Me(a,i,d);else{const n=[];let o=0;t.on("data",(function(a){n.push(a),o+=a.length,e.maxContentLength>-1&&o>e.maxContentLength&&(x=!0,t.destroy(),i(new re("maxContentLength size of "+e.maxContentLength+" exceeded",re.ERR_BAD_RESPONSE,e,l)))})),t.on("aborted",(function(){if(x)return;const a=new re("maxContentLength size of "+e.maxContentLength+" exceeded",re.ERR_BAD_RESPONSE,e,l);t.destroy(a),i(a)})),t.on("error",(function(a){m.destroyed||i(re.from(a,null,e,l))})),t.on("end",(function(){try{let e=1===n.length?n[0]:Buffer.concat(n);"arraybuffer"!==r&&(e=e.toString(c),c&&"utf8"!==c||(e=te.stripBOM(e))),d.data=e}catch(a){return i(re.from(a,null,e,d.request,d))}Me(a,i,d)}))}f.once("abort",(e=>{t.destroyed||(t.emit("error",e),t.destroy())}))})),f.once("abort",(e=>{i(e),m.destroy(e)})),m.on("error",(function(a){i(re.from(a,null,e,m))})),m.on("socket",(function(e){e.setKeepAlive(!0,6e4)})),e.timeout){const a=parseInt(e.timeout,10);if(Number.isNaN(a))return void i(new re("error trying to parse `config.timeout` to int",re.ERR_BAD_OPTION_VALUE,e,m));m.setTimeout(a,(function(){if(l)return;let a=e.timeout?"timeout of "+e.timeout+"ms exceeded":"timeout exceeded";const n=e.transitional||we;e.timeoutErrorMessage&&(a=e.timeoutErrorMessage),i(new re(a,n.clarifyTimeoutError?re.ETIMEDOUT:re.ECONNABORTED,e,m)),k()}))}if(te.isStream(o)){let a=!1,i=!1;o.on("end",(()=>{a=!0})),o.once("error",(e=>{i=!0,m.destroy(e)})),o.on("close",(()=>{a||i||k(new Ie("Request stream has been aborted",e,m))})),o.pipe(m)}else m.end(o)},new Promise(((e,i)=>{let n,o;const s=(e,a)=>{o||(o=!0,n&&n(e,a))},t=e=>{s(e,!0),i(e)};a((a=>{s(a),e(a)}),t,(e=>n=e)).catch(t)}));var a},ya=(e,a,i=3)=>{let n=0;const o=Ve(50,250);return Je((i=>{const s=i.loaded,t=i.lengthComputable?i.total:void 0,r=s-n,c=o(r);n=s;const p={loaded:s,total:t,progress:t?s/t:void 0,bytes:r,rate:c||void 0,estimated:c&&t&&s<=t?(t-s)/c:void 0,event:i,lengthComputable:null!=t};p[a?"download":"upload"]=!0,e(p)}),i)},wa=Te.hasStandardBrowserEnv?function(){const e=/(msie|trident)/i.test(navigator.userAgent),a=document.createElement("a");let i;function n(i){let n=i;return e&&(a.setAttribute("href",n),n=a.href),a.setAttribute("href",n),{href:a.href,protocol:a.protocol?a.protocol.replace(/:$/,""):"",host:a.host,search:a.search?a.search.replace(/^\?/,""):"",hash:a.hash?a.hash.replace(/^#/,""):"",hostname:a.hostname,port:a.port,pathname:"/"===a.pathname.charAt(0)?a.pathname:"/"+a.pathname}}return i=n(window.location.href),function(e){const a=te.isString(e)?n(e):e;return a.protocol===i.protocol&&a.host===i.host}}():function(){return!0},ka=Te.hasStandardBrowserEnv?{write(e,a,i,n,o,s){const t=[e+"="+encodeURIComponent(a)];te.isNumber(i)&&t.push("expires="+new Date(i).toGMTString()),te.isString(n)&&t.push("path="+n),te.isString(o)&&t.push("domain="+o),!0===s&&t.push("secure"),document.cookie=t.join("; ")},read(e){const a=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return a?decodeURIComponent(a[3]):null},remove(e){this.write(e,"",Date.now()-864e5)}}:{write(){},read:()=>null,remove(){}},ja=e=>e instanceof Pe?{...e}:e;function _a(e,a){a=a||{};const i={};function n(e,a,i){return te.isPlainObject(e)&&te.isPlainObject(a)?te.merge.call({caseless:i},e,a):te.isPlainObject(a)?te.merge({},a):te.isArray(a)?a.slice():a}function o(e,a,i){return te.isUndefined(a)?te.isUndefined(e)?void 0:n(void 0,e,i):n(e,a,i)}function s(e,a){if(!te.isUndefined(a))return n(void 0,a)}function t(e,a){return te.isUndefined(a)?te.isUndefined(e)?void 0:n(void 0,e):n(void 0,a)}function r(i,o,s){return s in a?n(i,o):s in e?n(void 0,i):void 0}const c={url:s,method:s,data:s,baseURL:t,transformRequest:t,transformResponse:t,paramsSerializer:t,timeout:t,timeoutMessage:t,withCredentials:t,withXSRFToken:t,adapter:t,responseType:t,xsrfCookieName:t,xsrfHeaderName:t,onUploadProgress:t,onDownloadProgress:t,decompress:t,maxContentLength:t,maxBodyLength:t,beforeRedirect:t,transport:t,httpAgent:t,httpsAgent:t,cancelToken:t,socketPath:t,responseEncoding:t,validateStatus:r,headers:(e,a)=>o(ja(e),ja(a),!0)};return te.forEach(Object.keys(Object.assign({},e,a)),(function(n){const s=c[n]||o,t=s(e[n],a[n],n);te.isUndefined(t)&&s!==r||(i[n]=t)})),i}const Ea=e=>{const a=_a({},e);let i,{data:n,withXSRFToken:o,xsrfHeaderName:s,xsrfCookieName:t,headers:r,auth:c}=a;if(a.headers=r=Pe.from(r),a.url=ge(He(a.baseURL,a.url),e.params,e.paramsSerializer),c&&r.set("Authorization","Basic "+btoa((c.username||"")+":"+(c.password?unescape(encodeURIComponent(c.password)):""))),te.isFormData(n))if(Te.hasStandardBrowserEnv||Te.hasStandardBrowserWebWorkerEnv)r.setContentType(void 0);else if(!1!==(i=r.getContentType())){const[e,...a]=i?i.split(";").map((e=>e.trim())).filter(Boolean):[];r.setContentType([e||"multipart/form-data",...a].join("; "))}if(Te.hasStandardBrowserEnv&&(o&&te.isFunction(o)&&(o=o(a)),o||!1!==o&&wa(a.url))){const e=s&&t&&ka.read(t);e&&r.set(s,e)}return a},Ra="undefined"!=typeof XMLHttpRequest&&function(e){return new Promise((function(a,i){const n=Ea(e);let o=n.data;const s=Pe.from(n.headers).normalize();let t,{responseType:r}=n;function c(){n.cancelToken&&n.cancelToken.unsubscribe(t),n.signal&&n.signal.removeEventListener("abort",t)}let p=new XMLHttpRequest;function l(){if(!p)return;const n=Pe.from("getAllResponseHeaders"in p&&p.getAllResponseHeaders());Me((function(e){a(e),c()}),(function(e){i(e),c()}),{data:r&&"text"!==r&&"json"!==r?p.response:p.responseText,status:p.status,statusText:p.statusText,headers:n,config:e,request:p}),p=null}p.open(n.method.toUpperCase(),n.url,!0),p.timeout=n.timeout,"onloadend"in p?p.onloadend=l:p.onreadystatechange=function(){p&&4===p.readyState&&(0!==p.status||p.responseURL&&0===p.responseURL.indexOf("file:"))&&setTimeout(l)},p.onabort=function(){p&&(i(new re("Request aborted",re.ECONNABORTED,n,p)),p=null)},p.onerror=function(){i(new re("Network Error",re.ERR_NETWORK,n,p)),p=null},p.ontimeout=function(){let e=n.timeout?"timeout of "+n.timeout+"ms exceeded":"timeout exceeded";const a=n.transitional||we;n.timeoutErrorMessage&&(e=n.timeoutErrorMessage),i(new re(e,a.clarifyTimeoutError?re.ETIMEDOUT:re.ECONNABORTED,n,p)),p=null},void 0===o&&s.setContentType(null),"setRequestHeader"in p&&te.forEach(s.toJSON(),(function(e,a){p.setRequestHeader(a,e)})),te.isUndefined(n.withCredentials)||(p.withCredentials=!!n.withCredentials),r&&"json"!==r&&(p.responseType=n.responseType),"function"==typeof n.onDownloadProgress&&p.addEventListener("progress",ya(n.onDownloadProgress,!0)),"function"==typeof n.onUploadProgress&&p.upload&&p.upload.addEventListener("progress",ya(n.onUploadProgress)),(n.cancelToken||n.signal)&&(t=a=>{p&&(i(!a||a.type?new Ie(null,e,p):a),p.abort(),p=null)},n.cancelToken&&n.cancelToken.subscribe(t),n.signal&&(n.signal.aborted?t():n.signal.addEventListener("abort",t)));const u=We(n.url);u&&-1===Te.protocols.indexOf(u)?i(new re("Unsupported protocol "+u+":",re.ERR_BAD_REQUEST,e)):p.send(o||null)}))},Sa=(e,a)=>{let i,n=new AbortController;const o=function(e){if(!i){i=!0,t();const a=e instanceof Error?e:this.reason;n.abort(a instanceof re?a:new Ie(a instanceof Error?a.message:a))}};let s=a&&setTimeout((()=>{o(new re(`timeout ${a} of ms exceeded`,re.ETIMEDOUT))}),a);const t=()=>{e&&(s&&clearTimeout(s),s=null,e.forEach((e=>{e&&(e.removeEventListener?e.removeEventListener("abort",o):e.unsubscribe(o))})),e=null)};e.forEach((e=>e&&e.addEventListener&&e.addEventListener("abort",o)));const{signal:r}=n;return r.unsubscribe=t,[r,()=>{s&&clearTimeout(s),s=null}]},Ta=function*(e,a){let i=e.byteLength;if(!a||i{const s=async function*(e,a,i){for await(const n of e)yield*Ta(ArrayBuffer.isView(n)?n:await i(String(n)),a)}(e,a,o);let t=0;return new ReadableStream({type:"bytes",async pull(e){const{done:a,value:o}=await s.next();if(a)return e.close(),void n();let r=o.byteLength;i&&i(t+=r),e.enqueue(new Uint8Array(o))},cancel:e=>(n(e),s.return())},{highWaterMark:2})},za=(e,a)=>{const i=null!=e;return n=>setTimeout((()=>a({lengthComputable:i,total:e,loaded:n})))},qa="function"==typeof fetch&&"function"==typeof Request&&"function"==typeof Response,La=qa&&"function"==typeof ReadableStream,Aa=qa&&("function"==typeof TextEncoder?(Ba=new TextEncoder,e=>Ba.encode(e)):async e=>new Uint8Array(await new Response(e).arrayBuffer()));var Ba;const Na=La&&(()=>{let e=!1;const a=new Request(Te.origin,{body:new ReadableStream,method:"POST",get duplex(){return e=!0,"half"}}).headers.has("Content-Type");return e&&!a})(),Ua=La&&!!(()=>{try{return te.isReadableStream(new Response("").body)}catch(e){}})(),Ca={stream:Ua&&(e=>e.body)};var Pa;qa&&(Pa=new Response,["text","arrayBuffer","blob","formData","stream"].forEach((e=>{!Ca[e]&&(Ca[e]=te.isFunction(Pa[e])?a=>a[e]():(a,i)=>{throw new re(`Response type '${e}' is not supported`,re.ERR_NOT_SUPPORT,i)})})));const Da=qa&&(async e=>{let{url:a,method:i,data:n,signal:o,cancelToken:s,timeout:t,onDownloadProgress:r,onUploadProgress:c,responseType:p,headers:l,withCredentials:u="same-origin",fetchOptions:d}=Ea(e);p=p?(p+"").toLowerCase():"text";let m,x,[f,v]=o||s||t?Sa([o,s],t):[];const h=()=>{!m&&setTimeout((()=>{f&&f.unsubscribe()})),m=!0};let b;try{if(c&&Na&&"get"!==i&&"head"!==i&&0!==(b=await(async(e,a)=>{const i=te.toFiniteNumber(e.getContentLength());return null==i?(async e=>null==e?0:te.isBlob(e)?e.size:te.isSpecCompliantForm(e)?(await new Request(e).arrayBuffer()).byteLength:te.isArrayBufferView(e)?e.byteLength:(te.isURLSearchParams(e)&&(e+=""),te.isString(e)?(await Aa(e)).byteLength:void 0))(a):i})(l,n))){let e,i=new Request(a,{method:"POST",body:n,duplex:"half"});te.isFormData(n)&&(e=i.headers.get("content-type"))&&l.setContentType(e),i.body&&(n=Oa(i.body,65536,za(b,ya(c)),null,Aa))}te.isString(u)||(u=u?"cors":"omit"),x=new Request(a,{...d,signal:f,method:i.toUpperCase(),headers:l.normalize().toJSON(),body:n,duplex:"half",withCredentials:u});let o=await fetch(x);const s=Ua&&("stream"===p||"response"===p);if(Ua&&(r||s)){const e={};["status","statusText","headers"].forEach((a=>{e[a]=o[a]}));const a=te.toFiniteNumber(o.headers.get("content-length"));o=new Response(Oa(o.body,65536,r&&za(a,ya(r,!0)),s&&h,Aa),e)}p=p||"text";let t=await Ca[te.findKey(Ca,p)||"text"](o,e);return!s&&h(),v&&v(),await new Promise(((a,i)=>{Me(a,i,{data:t,headers:Pe.from(o.headers),status:o.status,statusText:o.statusText,config:e,request:x})}))}catch(a){if(h(),a&&"TypeError"===a.name&&/fetch/i.test(a.message))throw Object.assign(new re("Network Error",re.ERR_NETWORK,e,x),{cause:a.cause||a});throw re.from(a,a&&a.code,e,x)}}),Fa={http:ga,xhr:Ra,fetch:Da};te.forEach(Fa,((e,a)=>{if(e){try{Object.defineProperty(e,"name",{value:a})}catch(e){}Object.defineProperty(e,"adapterName",{value:a})}}));const Ia=e=>`- ${e}`,Ma=e=>te.isFunction(e)||null===e||!1===e,Ha=e=>{e=te.isArray(e)?e:[e];const{length:a}=e;let i,n;const o={};for(let s=0;s`adapter ${e} `+(!1===a?"is not supported by the environment":"is not available in the build")));throw new re("There is no suitable adapter to dispatch the request "+(a?e.length>1?"since :\n"+e.map(Ia).join("\n"):" "+Ia(e[0]):"as no adapter specified"),"ERR_NOT_SUPPORT")}return n};function $a(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new Ie(null,e)}function Wa(e){return $a(e),e.headers=Pe.from(e.headers),e.data=De.call(e,e.transformRequest),-1!==["post","put","patch"].indexOf(e.method)&&e.headers.setContentType("application/x-www-form-urlencoded",!1),Ha(e.adapter||qe.adapter)(e).then((function(a){return $a(e),a.data=De.call(e,e.transformResponse,a),a.headers=Pe.from(a.headers),a}),(function(a){return Fe(a)||($a(e),a&&a.response&&(a.response.data=De.call(e,e.transformResponse,a.response),a.response.headers=Pe.from(a.response.headers))),Promise.reject(a)}))}const Ka={};["object","boolean","number","function","string","symbol"].forEach(((e,a)=>{Ka[e]=function(i){return typeof i===e||"a"+(a<1?"n ":" ")+e}}));const Ja={};Ka.transitional=function(e,a,i){function n(e,a){return"[Axios v1.7.2] Transitional option '"+e+"'"+a+(i?". "+i:"")}return(i,o,s)=>{if(!1===e)throw new re(n(o," has been removed"+(a?" in "+a:"")),re.ERR_DEPRECATED);return a&&!Ja[o]&&(Ja[o]=!0,console.warn(n(o," has been deprecated since v"+a+" and will be removed in the near future"))),!e||e(i,o,s)}};const Va={assertOptions:function(e,a,i){if("object"!=typeof e)throw new re("options must be an object",re.ERR_BAD_OPTION_VALUE);const n=Object.keys(e);let o=n.length;for(;o-- >0;){const s=n[o],t=a[s];if(t){const a=e[s],i=void 0===a||t(a,s,e);if(!0!==i)throw new re("option "+s+" must be "+i,re.ERR_BAD_OPTION_VALUE)}else if(!0!==i)throw new re("Unknown option "+s,re.ERR_BAD_OPTION)}},validators:Ka},Ga=Va.validators;class Xa{constructor(e){this.defaults=e,this.interceptors={request:new ye,response:new ye}}async request(e,a){try{return await this._request(e,a)}catch(e){if(e instanceof Error){let a;Error.captureStackTrace?Error.captureStackTrace(a={}):a=new Error;const i=a.stack?a.stack.replace(/^.+\n/,""):"";try{e.stack?i&&!String(e.stack).endsWith(i.replace(/^.+\n.+\n/,""))&&(e.stack+="\n"+i):e.stack=i}catch(e){}}throw e}}_request(e,a){"string"==typeof e?(a=a||{}).url=e:a=e||{},a=_a(this.defaults,a);const{transitional:i,paramsSerializer:n,headers:o}=a;void 0!==i&&Va.assertOptions(i,{silentJSONParsing:Ga.transitional(Ga.boolean),forcedJSONParsing:Ga.transitional(Ga.boolean),clarifyTimeoutError:Ga.transitional(Ga.boolean)},!1),null!=n&&(te.isFunction(n)?a.paramsSerializer={serialize:n}:Va.assertOptions(n,{encode:Ga.function,serialize:Ga.function},!0)),a.method=(a.method||this.defaults.method||"get").toLowerCase();let s=o&&te.merge(o.common,o[a.method]);o&&te.forEach(["delete","get","head","post","put","patch","common"],(e=>{delete o[e]})),a.headers=Pe.concat(s,o);const t=[];let r=!0;this.interceptors.request.forEach((function(e){"function"==typeof e.runWhen&&!1===e.runWhen(a)||(r=r&&e.synchronous,t.unshift(e.fulfilled,e.rejected))}));const c=[];let p;this.interceptors.response.forEach((function(e){c.push(e.fulfilled,e.rejected)}));let l,u=0;if(!r){const e=[Wa.bind(this),void 0];for(e.unshift.apply(e,t),e.push.apply(e,c),l=e.length,p=Promise.resolve(a);u{if(!i._listeners)return;let a=i._listeners.length;for(;a-- >0;)i._listeners[a](e);i._listeners=null})),this.promise.then=e=>{let a;const n=new Promise((e=>{i.subscribe(e),a=e})).then(e);return n.cancel=function(){i.unsubscribe(a)},n},e((function(e,n,o){i.reason||(i.reason=new Ie(e,n,o),a(i.reason))}))}throwIfRequested(){if(this.reason)throw this.reason}subscribe(e){this.reason?e(this.reason):this._listeners?this._listeners.push(e):this._listeners=[e]}unsubscribe(e){if(!this._listeners)return;const a=this._listeners.indexOf(e);-1!==a&&this._listeners.splice(a,1)}static source(){let e;return{token:new Ya((function(a){e=a})),cancel:e}}}const Za=Ya,ei={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(ei).forEach((([e,a])=>{ei[a]=e}));const ai=ei,ii=function e(a){const i=new Qa(a),n=k(Qa.prototype.request,i);return te.extend(n,Qa.prototype,i,{allOwnKeys:!0}),te.extend(n,i,null,{allOwnKeys:!0}),n.create=function(i){return e(_a(a,i))},n}(qe);ii.Axios=Qa,ii.CanceledError=Ie,ii.CancelToken=Za,ii.isCancel=Fe,ii.VERSION=$e,ii.toFormData=xe,ii.AxiosError=re,ii.Cancel=ii.CanceledError,ii.all=function(e){return Promise.all(e)},ii.spread=function(e){return function(a){return e.apply(null,a)}},ii.isAxiosError=function(e){return te.isObject(e)&&!0===e.isAxiosError},ii.mergeConfig=_a,ii.AxiosHeaders=Pe,ii.formToJSON=e=>Oe(te.isHTMLForm(e)?new FormData(e):e),ii.getAdapter=Ha,ii.HttpStatusCode=ai,ii.default=ii,e.exports=ii},1813:e=>{"use strict";e.exports=JSON.parse('{"application/1d-interleaved-parityfec":{"source":"iana"},"application/3gpdash-qoe-report+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/3gpp-ims+xml":{"source":"iana","compressible":true},"application/3gpphal+json":{"source":"iana","compressible":true},"application/3gpphalforms+json":{"source":"iana","compressible":true},"application/a2l":{"source":"iana"},"application/ace+cbor":{"source":"iana"},"application/activemessage":{"source":"iana"},"application/activity+json":{"source":"iana","compressible":true},"application/alto-costmap+json":{"source":"iana","compressible":true},"application/alto-costmapfilter+json":{"source":"iana","compressible":true},"application/alto-directory+json":{"source":"iana","compressible":true},"application/alto-endpointcost+json":{"source":"iana","compressible":true},"application/alto-endpointcostparams+json":{"source":"iana","compressible":true},"application/alto-endpointprop+json":{"source":"iana","compressible":true},"application/alto-endpointpropparams+json":{"source":"iana","compressible":true},"application/alto-error+json":{"source":"iana","compressible":true},"application/alto-networkmap+json":{"source":"iana","compressible":true},"application/alto-networkmapfilter+json":{"source":"iana","compressible":true},"application/alto-updatestreamcontrol+json":{"source":"iana","compressible":true},"application/alto-updatestreamparams+json":{"source":"iana","compressible":true},"application/aml":{"source":"iana"},"application/andrew-inset":{"source":"iana","extensions":["ez"]},"application/applefile":{"source":"iana"},"application/applixware":{"source":"apache","extensions":["aw"]},"application/at+jwt":{"source":"iana"},"application/atf":{"source":"iana"},"application/atfx":{"source":"iana"},"application/atom+xml":{"source":"iana","compressible":true,"extensions":["atom"]},"application/atomcat+xml":{"source":"iana","compressible":true,"extensions":["atomcat"]},"application/atomdeleted+xml":{"source":"iana","compressible":true,"extensions":["atomdeleted"]},"application/atomicmail":{"source":"iana"},"application/atomsvc+xml":{"source":"iana","compressible":true,"extensions":["atomsvc"]},"application/atsc-dwd+xml":{"source":"iana","compressible":true,"extensions":["dwd"]},"application/atsc-dynamic-event-message":{"source":"iana"},"application/atsc-held+xml":{"source":"iana","compressible":true,"extensions":["held"]},"application/atsc-rdt+json":{"source":"iana","compressible":true},"application/atsc-rsat+xml":{"source":"iana","compressible":true,"extensions":["rsat"]},"application/atxml":{"source":"iana"},"application/auth-policy+xml":{"source":"iana","compressible":true},"application/bacnet-xdd+zip":{"source":"iana","compressible":false},"application/batch-smtp":{"source":"iana"},"application/bdoc":{"compressible":false,"extensions":["bdoc"]},"application/beep+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/calendar+json":{"source":"iana","compressible":true},"application/calendar+xml":{"source":"iana","compressible":true,"extensions":["xcs"]},"application/call-completion":{"source":"iana"},"application/cals-1840":{"source":"iana"},"application/captive+json":{"source":"iana","compressible":true},"application/cbor":{"source":"iana"},"application/cbor-seq":{"source":"iana"},"application/cccex":{"source":"iana"},"application/ccmp+xml":{"source":"iana","compressible":true},"application/ccxml+xml":{"source":"iana","compressible":true,"extensions":["ccxml"]},"application/cdfx+xml":{"source":"iana","compressible":true,"extensions":["cdfx"]},"application/cdmi-capability":{"source":"iana","extensions":["cdmia"]},"application/cdmi-container":{"source":"iana","extensions":["cdmic"]},"application/cdmi-domain":{"source":"iana","extensions":["cdmid"]},"application/cdmi-object":{"source":"iana","extensions":["cdmio"]},"application/cdmi-queue":{"source":"iana","extensions":["cdmiq"]},"application/cdni":{"source":"iana"},"application/cea":{"source":"iana"},"application/cea-2018+xml":{"source":"iana","compressible":true},"application/cellml+xml":{"source":"iana","compressible":true},"application/cfw":{"source":"iana"},"application/city+json":{"source":"iana","compressible":true},"application/clr":{"source":"iana"},"application/clue+xml":{"source":"iana","compressible":true},"application/clue_info+xml":{"source":"iana","compressible":true},"application/cms":{"source":"iana"},"application/cnrp+xml":{"source":"iana","compressible":true},"application/coap-group+json":{"source":"iana","compressible":true},"application/coap-payload":{"source":"iana"},"application/commonground":{"source":"iana"},"application/conference-info+xml":{"source":"iana","compressible":true},"application/cose":{"source":"iana"},"application/cose-key":{"source":"iana"},"application/cose-key-set":{"source":"iana"},"application/cpl+xml":{"source":"iana","compressible":true,"extensions":["cpl"]},"application/csrattrs":{"source":"iana"},"application/csta+xml":{"source":"iana","compressible":true},"application/cstadata+xml":{"source":"iana","compressible":true},"application/csvm+json":{"source":"iana","compressible":true},"application/cu-seeme":{"source":"apache","extensions":["cu"]},"application/cwt":{"source":"iana"},"application/cybercash":{"source":"iana"},"application/dart":{"compressible":true},"application/dash+xml":{"source":"iana","compressible":true,"extensions":["mpd"]},"application/dash-patch+xml":{"source":"iana","compressible":true,"extensions":["mpp"]},"application/dashdelta":{"source":"iana"},"application/davmount+xml":{"source":"iana","compressible":true,"extensions":["davmount"]},"application/dca-rft":{"source":"iana"},"application/dcd":{"source":"iana"},"application/dec-dx":{"source":"iana"},"application/dialog-info+xml":{"source":"iana","compressible":true},"application/dicom":{"source":"iana"},"application/dicom+json":{"source":"iana","compressible":true},"application/dicom+xml":{"source":"iana","compressible":true},"application/dii":{"source":"iana"},"application/dit":{"source":"iana"},"application/dns":{"source":"iana"},"application/dns+json":{"source":"iana","compressible":true},"application/dns-message":{"source":"iana"},"application/docbook+xml":{"source":"apache","compressible":true,"extensions":["dbk"]},"application/dots+cbor":{"source":"iana"},"application/dskpp+xml":{"source":"iana","compressible":true},"application/dssc+der":{"source":"iana","extensions":["dssc"]},"application/dssc+xml":{"source":"iana","compressible":true,"extensions":["xdssc"]},"application/dvcs":{"source":"iana"},"application/ecmascript":{"source":"iana","compressible":true,"extensions":["es","ecma"]},"application/edi-consent":{"source":"iana"},"application/edi-x12":{"source":"iana","compressible":false},"application/edifact":{"source":"iana","compressible":false},"application/efi":{"source":"iana"},"application/elm+json":{"source":"iana","charset":"UTF-8","compressible":true},"application/elm+xml":{"source":"iana","compressible":true},"application/emergencycalldata.cap+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/emergencycalldata.comment+xml":{"source":"iana","compressible":true},"application/emergencycalldata.control+xml":{"source":"iana","compressible":true},"application/emergencycalldata.deviceinfo+xml":{"source":"iana","compressible":true},"application/emergencycalldata.ecall.msd":{"source":"iana"},"application/emergencycalldata.providerinfo+xml":{"source":"iana","compressible":true},"application/emergencycalldata.serviceinfo+xml":{"source":"iana","compressible":true},"application/emergencycalldata.subscriberinfo+xml":{"source":"iana","compressible":true},"application/emergencycalldata.veds+xml":{"source":"iana","compressible":true},"application/emma+xml":{"source":"iana","compressible":true,"extensions":["emma"]},"application/emotionml+xml":{"source":"iana","compressible":true,"extensions":["emotionml"]},"application/encaprtp":{"source":"iana"},"application/epp+xml":{"source":"iana","compressible":true},"application/epub+zip":{"source":"iana","compressible":false,"extensions":["epub"]},"application/eshop":{"source":"iana"},"application/exi":{"source":"iana","extensions":["exi"]},"application/expect-ct-report+json":{"source":"iana","compressible":true},"application/express":{"source":"iana","extensions":["exp"]},"application/fastinfoset":{"source":"iana"},"application/fastsoap":{"source":"iana"},"application/fdt+xml":{"source":"iana","compressible":true,"extensions":["fdt"]},"application/fhir+json":{"source":"iana","charset":"UTF-8","compressible":true},"application/fhir+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/fido.trusted-apps+json":{"compressible":true},"application/fits":{"source":"iana"},"application/flexfec":{"source":"iana"},"application/font-sfnt":{"source":"iana"},"application/font-tdpfr":{"source":"iana","extensions":["pfr"]},"application/font-woff":{"source":"iana","compressible":false},"application/framework-attributes+xml":{"source":"iana","compressible":true},"application/geo+json":{"source":"iana","compressible":true,"extensions":["geojson"]},"application/geo+json-seq":{"source":"iana"},"application/geopackage+sqlite3":{"source":"iana"},"application/geoxacml+xml":{"source":"iana","compressible":true},"application/gltf-buffer":{"source":"iana"},"application/gml+xml":{"source":"iana","compressible":true,"extensions":["gml"]},"application/gpx+xml":{"source":"apache","compressible":true,"extensions":["gpx"]},"application/gxf":{"source":"apache","extensions":["gxf"]},"application/gzip":{"source":"iana","compressible":false,"extensions":["gz"]},"application/h224":{"source":"iana"},"application/held+xml":{"source":"iana","compressible":true},"application/hjson":{"extensions":["hjson"]},"application/http":{"source":"iana"},"application/hyperstudio":{"source":"iana","extensions":["stk"]},"application/ibe-key-request+xml":{"source":"iana","compressible":true},"application/ibe-pkg-reply+xml":{"source":"iana","compressible":true},"application/ibe-pp-data":{"source":"iana"},"application/iges":{"source":"iana"},"application/im-iscomposing+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/index":{"source":"iana"},"application/index.cmd":{"source":"iana"},"application/index.obj":{"source":"iana"},"application/index.response":{"source":"iana"},"application/index.vnd":{"source":"iana"},"application/inkml+xml":{"source":"iana","compressible":true,"extensions":["ink","inkml"]},"application/iotp":{"source":"iana"},"application/ipfix":{"source":"iana","extensions":["ipfix"]},"application/ipp":{"source":"iana"},"application/isup":{"source":"iana"},"application/its+xml":{"source":"iana","compressible":true,"extensions":["its"]},"application/java-archive":{"source":"apache","compressible":false,"extensions":["jar","war","ear"]},"application/java-serialized-object":{"source":"apache","compressible":false,"extensions":["ser"]},"application/java-vm":{"source":"apache","compressible":false,"extensions":["class"]},"application/javascript":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["js","mjs"]},"application/jf2feed+json":{"source":"iana","compressible":true},"application/jose":{"source":"iana"},"application/jose+json":{"source":"iana","compressible":true},"application/jrd+json":{"source":"iana","compressible":true},"application/jscalendar+json":{"source":"iana","compressible":true},"application/json":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["json","map"]},"application/json-patch+json":{"source":"iana","compressible":true},"application/json-seq":{"source":"iana"},"application/json5":{"extensions":["json5"]},"application/jsonml+json":{"source":"apache","compressible":true,"extensions":["jsonml"]},"application/jwk+json":{"source":"iana","compressible":true},"application/jwk-set+json":{"source":"iana","compressible":true},"application/jwt":{"source":"iana"},"application/kpml-request+xml":{"source":"iana","compressible":true},"application/kpml-response+xml":{"source":"iana","compressible":true},"application/ld+json":{"source":"iana","compressible":true,"extensions":["jsonld"]},"application/lgr+xml":{"source":"iana","compressible":true,"extensions":["lgr"]},"application/link-format":{"source":"iana"},"application/load-control+xml":{"source":"iana","compressible":true},"application/lost+xml":{"source":"iana","compressible":true,"extensions":["lostxml"]},"application/lostsync+xml":{"source":"iana","compressible":true},"application/lpf+zip":{"source":"iana","compressible":false},"application/lxf":{"source":"iana"},"application/mac-binhex40":{"source":"iana","extensions":["hqx"]},"application/mac-compactpro":{"source":"apache","extensions":["cpt"]},"application/macwriteii":{"source":"iana"},"application/mads+xml":{"source":"iana","compressible":true,"extensions":["mads"]},"application/manifest+json":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["webmanifest"]},"application/marc":{"source":"iana","extensions":["mrc"]},"application/marcxml+xml":{"source":"iana","compressible":true,"extensions":["mrcx"]},"application/mathematica":{"source":"iana","extensions":["ma","nb","mb"]},"application/mathml+xml":{"source":"iana","compressible":true,"extensions":["mathml"]},"application/mathml-content+xml":{"source":"iana","compressible":true},"application/mathml-presentation+xml":{"source":"iana","compressible":true},"application/mbms-associated-procedure-description+xml":{"source":"iana","compressible":true},"application/mbms-deregister+xml":{"source":"iana","compressible":true},"application/mbms-envelope+xml":{"source":"iana","compressible":true},"application/mbms-msk+xml":{"source":"iana","compressible":true},"application/mbms-msk-response+xml":{"source":"iana","compressible":true},"application/mbms-protection-description+xml":{"source":"iana","compressible":true},"application/mbms-reception-report+xml":{"source":"iana","compressible":true},"application/mbms-register+xml":{"source":"iana","compressible":true},"application/mbms-register-response+xml":{"source":"iana","compressible":true},"application/mbms-schedule+xml":{"source":"iana","compressible":true},"application/mbms-user-service-description+xml":{"source":"iana","compressible":true},"application/mbox":{"source":"iana","extensions":["mbox"]},"application/media-policy-dataset+xml":{"source":"iana","compressible":true,"extensions":["mpf"]},"application/media_control+xml":{"source":"iana","compressible":true},"application/mediaservercontrol+xml":{"source":"iana","compressible":true,"extensions":["mscml"]},"application/merge-patch+json":{"source":"iana","compressible":true},"application/metalink+xml":{"source":"apache","compressible":true,"extensions":["metalink"]},"application/metalink4+xml":{"source":"iana","compressible":true,"extensions":["meta4"]},"application/mets+xml":{"source":"iana","compressible":true,"extensions":["mets"]},"application/mf4":{"source":"iana"},"application/mikey":{"source":"iana"},"application/mipc":{"source":"iana"},"application/missing-blocks+cbor-seq":{"source":"iana"},"application/mmt-aei+xml":{"source":"iana","compressible":true,"extensions":["maei"]},"application/mmt-usd+xml":{"source":"iana","compressible":true,"extensions":["musd"]},"application/mods+xml":{"source":"iana","compressible":true,"extensions":["mods"]},"application/moss-keys":{"source":"iana"},"application/moss-signature":{"source":"iana"},"application/mosskey-data":{"source":"iana"},"application/mosskey-request":{"source":"iana"},"application/mp21":{"source":"iana","extensions":["m21","mp21"]},"application/mp4":{"source":"iana","extensions":["mp4s","m4p"]},"application/mpeg4-generic":{"source":"iana"},"application/mpeg4-iod":{"source":"iana"},"application/mpeg4-iod-xmt":{"source":"iana"},"application/mrb-consumer+xml":{"source":"iana","compressible":true},"application/mrb-publish+xml":{"source":"iana","compressible":true},"application/msc-ivr+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/msc-mixer+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/msword":{"source":"iana","compressible":false,"extensions":["doc","dot"]},"application/mud+json":{"source":"iana","compressible":true},"application/multipart-core":{"source":"iana"},"application/mxf":{"source":"iana","extensions":["mxf"]},"application/n-quads":{"source":"iana","extensions":["nq"]},"application/n-triples":{"source":"iana","extensions":["nt"]},"application/nasdata":{"source":"iana"},"application/news-checkgroups":{"source":"iana","charset":"US-ASCII"},"application/news-groupinfo":{"source":"iana","charset":"US-ASCII"},"application/news-transmission":{"source":"iana"},"application/nlsml+xml":{"source":"iana","compressible":true},"application/node":{"source":"iana","extensions":["cjs"]},"application/nss":{"source":"iana"},"application/oauth-authz-req+jwt":{"source":"iana"},"application/oblivious-dns-message":{"source":"iana"},"application/ocsp-request":{"source":"iana"},"application/ocsp-response":{"source":"iana"},"application/octet-stream":{"source":"iana","compressible":false,"extensions":["bin","dms","lrf","mar","so","dist","distz","pkg","bpk","dump","elc","deploy","exe","dll","deb","dmg","iso","img","msi","msp","msm","buffer"]},"application/oda":{"source":"iana","extensions":["oda"]},"application/odm+xml":{"source":"iana","compressible":true},"application/odx":{"source":"iana"},"application/oebps-package+xml":{"source":"iana","compressible":true,"extensions":["opf"]},"application/ogg":{"source":"iana","compressible":false,"extensions":["ogx"]},"application/omdoc+xml":{"source":"apache","compressible":true,"extensions":["omdoc"]},"application/onenote":{"source":"apache","extensions":["onetoc","onetoc2","onetmp","onepkg"]},"application/opc-nodeset+xml":{"source":"iana","compressible":true},"application/oscore":{"source":"iana"},"application/oxps":{"source":"iana","extensions":["oxps"]},"application/p21":{"source":"iana"},"application/p21+zip":{"source":"iana","compressible":false},"application/p2p-overlay+xml":{"source":"iana","compressible":true,"extensions":["relo"]},"application/parityfec":{"source":"iana"},"application/passport":{"source":"iana"},"application/patch-ops-error+xml":{"source":"iana","compressible":true,"extensions":["xer"]},"application/pdf":{"source":"iana","compressible":false,"extensions":["pdf"]},"application/pdx":{"source":"iana"},"application/pem-certificate-chain":{"source":"iana"},"application/pgp-encrypted":{"source":"iana","compressible":false,"extensions":["pgp"]},"application/pgp-keys":{"source":"iana","extensions":["asc"]},"application/pgp-signature":{"source":"iana","extensions":["asc","sig"]},"application/pics-rules":{"source":"apache","extensions":["prf"]},"application/pidf+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/pidf-diff+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/pkcs10":{"source":"iana","extensions":["p10"]},"application/pkcs12":{"source":"iana"},"application/pkcs7-mime":{"source":"iana","extensions":["p7m","p7c"]},"application/pkcs7-signature":{"source":"iana","extensions":["p7s"]},"application/pkcs8":{"source":"iana","extensions":["p8"]},"application/pkcs8-encrypted":{"source":"iana"},"application/pkix-attr-cert":{"source":"iana","extensions":["ac"]},"application/pkix-cert":{"source":"iana","extensions":["cer"]},"application/pkix-crl":{"source":"iana","extensions":["crl"]},"application/pkix-pkipath":{"source":"iana","extensions":["pkipath"]},"application/pkixcmp":{"source":"iana","extensions":["pki"]},"application/pls+xml":{"source":"iana","compressible":true,"extensions":["pls"]},"application/poc-settings+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/postscript":{"source":"iana","compressible":true,"extensions":["ai","eps","ps"]},"application/ppsp-tracker+json":{"source":"iana","compressible":true},"application/problem+json":{"source":"iana","compressible":true},"application/problem+xml":{"source":"iana","compressible":true},"application/provenance+xml":{"source":"iana","compressible":true,"extensions":["provx"]},"application/prs.alvestrand.titrax-sheet":{"source":"iana"},"application/prs.cww":{"source":"iana","extensions":["cww"]},"application/prs.cyn":{"source":"iana","charset":"7-BIT"},"application/prs.hpub+zip":{"source":"iana","compressible":false},"application/prs.nprend":{"source":"iana"},"application/prs.plucker":{"source":"iana"},"application/prs.rdf-xml-crypt":{"source":"iana"},"application/prs.xsf+xml":{"source":"iana","compressible":true},"application/pskc+xml":{"source":"iana","compressible":true,"extensions":["pskcxml"]},"application/pvd+json":{"source":"iana","compressible":true},"application/qsig":{"source":"iana"},"application/raml+yaml":{"compressible":true,"extensions":["raml"]},"application/raptorfec":{"source":"iana"},"application/rdap+json":{"source":"iana","compressible":true},"application/rdf+xml":{"source":"iana","compressible":true,"extensions":["rdf","owl"]},"application/reginfo+xml":{"source":"iana","compressible":true,"extensions":["rif"]},"application/relax-ng-compact-syntax":{"source":"iana","extensions":["rnc"]},"application/remote-printing":{"source":"iana"},"application/reputon+json":{"source":"iana","compressible":true},"application/resource-lists+xml":{"source":"iana","compressible":true,"extensions":["rl"]},"application/resource-lists-diff+xml":{"source":"iana","compressible":true,"extensions":["rld"]},"application/rfc+xml":{"source":"iana","compressible":true},"application/riscos":{"source":"iana"},"application/rlmi+xml":{"source":"iana","compressible":true},"application/rls-services+xml":{"source":"iana","compressible":true,"extensions":["rs"]},"application/route-apd+xml":{"source":"iana","compressible":true,"extensions":["rapd"]},"application/route-s-tsid+xml":{"source":"iana","compressible":true,"extensions":["sls"]},"application/route-usd+xml":{"source":"iana","compressible":true,"extensions":["rusd"]},"application/rpki-ghostbusters":{"source":"iana","extensions":["gbr"]},"application/rpki-manifest":{"source":"iana","extensions":["mft"]},"application/rpki-publication":{"source":"iana"},"application/rpki-roa":{"source":"iana","extensions":["roa"]},"application/rpki-updown":{"source":"iana"},"application/rsd+xml":{"source":"apache","compressible":true,"extensions":["rsd"]},"application/rss+xml":{"source":"apache","compressible":true,"extensions":["rss"]},"application/rtf":{"source":"iana","compressible":true,"extensions":["rtf"]},"application/rtploopback":{"source":"iana"},"application/rtx":{"source":"iana"},"application/samlassertion+xml":{"source":"iana","compressible":true},"application/samlmetadata+xml":{"source":"iana","compressible":true},"application/sarif+json":{"source":"iana","compressible":true},"application/sarif-external-properties+json":{"source":"iana","compressible":true},"application/sbe":{"source":"iana"},"application/sbml+xml":{"source":"iana","compressible":true,"extensions":["sbml"]},"application/scaip+xml":{"source":"iana","compressible":true},"application/scim+json":{"source":"iana","compressible":true},"application/scvp-cv-request":{"source":"iana","extensions":["scq"]},"application/scvp-cv-response":{"source":"iana","extensions":["scs"]},"application/scvp-vp-request":{"source":"iana","extensions":["spq"]},"application/scvp-vp-response":{"source":"iana","extensions":["spp"]},"application/sdp":{"source":"iana","extensions":["sdp"]},"application/secevent+jwt":{"source":"iana"},"application/senml+cbor":{"source":"iana"},"application/senml+json":{"source":"iana","compressible":true},"application/senml+xml":{"source":"iana","compressible":true,"extensions":["senmlx"]},"application/senml-etch+cbor":{"source":"iana"},"application/senml-etch+json":{"source":"iana","compressible":true},"application/senml-exi":{"source":"iana"},"application/sensml+cbor":{"source":"iana"},"application/sensml+json":{"source":"iana","compressible":true},"application/sensml+xml":{"source":"iana","compressible":true,"extensions":["sensmlx"]},"application/sensml-exi":{"source":"iana"},"application/sep+xml":{"source":"iana","compressible":true},"application/sep-exi":{"source":"iana"},"application/session-info":{"source":"iana"},"application/set-payment":{"source":"iana"},"application/set-payment-initiation":{"source":"iana","extensions":["setpay"]},"application/set-registration":{"source":"iana"},"application/set-registration-initiation":{"source":"iana","extensions":["setreg"]},"application/sgml":{"source":"iana"},"application/sgml-open-catalog":{"source":"iana"},"application/shf+xml":{"source":"iana","compressible":true,"extensions":["shf"]},"application/sieve":{"source":"iana","extensions":["siv","sieve"]},"application/simple-filter+xml":{"source":"iana","compressible":true},"application/simple-message-summary":{"source":"iana"},"application/simplesymbolcontainer":{"source":"iana"},"application/sipc":{"source":"iana"},"application/slate":{"source":"iana"},"application/smil":{"source":"iana"},"application/smil+xml":{"source":"iana","compressible":true,"extensions":["smi","smil"]},"application/smpte336m":{"source":"iana"},"application/soap+fastinfoset":{"source":"iana"},"application/soap+xml":{"source":"iana","compressible":true},"application/sparql-query":{"source":"iana","extensions":["rq"]},"application/sparql-results+xml":{"source":"iana","compressible":true,"extensions":["srx"]},"application/spdx+json":{"source":"iana","compressible":true},"application/spirits-event+xml":{"source":"iana","compressible":true},"application/sql":{"source":"iana"},"application/srgs":{"source":"iana","extensions":["gram"]},"application/srgs+xml":{"source":"iana","compressible":true,"extensions":["grxml"]},"application/sru+xml":{"source":"iana","compressible":true,"extensions":["sru"]},"application/ssdl+xml":{"source":"apache","compressible":true,"extensions":["ssdl"]},"application/ssml+xml":{"source":"iana","compressible":true,"extensions":["ssml"]},"application/stix+json":{"source":"iana","compressible":true},"application/swid+xml":{"source":"iana","compressible":true,"extensions":["swidtag"]},"application/tamp-apex-update":{"source":"iana"},"application/tamp-apex-update-confirm":{"source":"iana"},"application/tamp-community-update":{"source":"iana"},"application/tamp-community-update-confirm":{"source":"iana"},"application/tamp-error":{"source":"iana"},"application/tamp-sequence-adjust":{"source":"iana"},"application/tamp-sequence-adjust-confirm":{"source":"iana"},"application/tamp-status-query":{"source":"iana"},"application/tamp-status-response":{"source":"iana"},"application/tamp-update":{"source":"iana"},"application/tamp-update-confirm":{"source":"iana"},"application/tar":{"compressible":true},"application/taxii+json":{"source":"iana","compressible":true},"application/td+json":{"source":"iana","compressible":true},"application/tei+xml":{"source":"iana","compressible":true,"extensions":["tei","teicorpus"]},"application/tetra_isi":{"source":"iana"},"application/thraud+xml":{"source":"iana","compressible":true,"extensions":["tfi"]},"application/timestamp-query":{"source":"iana"},"application/timestamp-reply":{"source":"iana"},"application/timestamped-data":{"source":"iana","extensions":["tsd"]},"application/tlsrpt+gzip":{"source":"iana"},"application/tlsrpt+json":{"source":"iana","compressible":true},"application/tnauthlist":{"source":"iana"},"application/token-introspection+jwt":{"source":"iana"},"application/toml":{"compressible":true,"extensions":["toml"]},"application/trickle-ice-sdpfrag":{"source":"iana"},"application/trig":{"source":"iana","extensions":["trig"]},"application/ttml+xml":{"source":"iana","compressible":true,"extensions":["ttml"]},"application/tve-trigger":{"source":"iana"},"application/tzif":{"source":"iana"},"application/tzif-leap":{"source":"iana"},"application/ubjson":{"compressible":false,"extensions":["ubj"]},"application/ulpfec":{"source":"iana"},"application/urc-grpsheet+xml":{"source":"iana","compressible":true},"application/urc-ressheet+xml":{"source":"iana","compressible":true,"extensions":["rsheet"]},"application/urc-targetdesc+xml":{"source":"iana","compressible":true,"extensions":["td"]},"application/urc-uisocketdesc+xml":{"source":"iana","compressible":true},"application/vcard+json":{"source":"iana","compressible":true},"application/vcard+xml":{"source":"iana","compressible":true},"application/vemmi":{"source":"iana"},"application/vividence.scriptfile":{"source":"apache"},"application/vnd.1000minds.decision-model+xml":{"source":"iana","compressible":true,"extensions":["1km"]},"application/vnd.3gpp-prose+xml":{"source":"iana","compressible":true},"application/vnd.3gpp-prose-pc3ch+xml":{"source":"iana","compressible":true},"application/vnd.3gpp-v2x-local-service-information":{"source":"iana"},"application/vnd.3gpp.5gnas":{"source":"iana"},"application/vnd.3gpp.access-transfer-events+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.bsf+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.gmop+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.gtpc":{"source":"iana"},"application/vnd.3gpp.interworking-data":{"source":"iana"},"application/vnd.3gpp.lpp":{"source":"iana"},"application/vnd.3gpp.mc-signalling-ear":{"source":"iana"},"application/vnd.3gpp.mcdata-affiliation-command+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcdata-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcdata-payload":{"source":"iana"},"application/vnd.3gpp.mcdata-service-config+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcdata-signalling":{"source":"iana"},"application/vnd.3gpp.mcdata-ue-config+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcdata-user-profile+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-affiliation-command+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-floor-request+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-location-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-mbms-usage-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-service-config+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-signed+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-ue-config+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-ue-init-config+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-user-profile+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-affiliation-command+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-affiliation-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-location-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-mbms-usage-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-service-config+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-transmission-request+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-ue-config+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-user-profile+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mid-call+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.ngap":{"source":"iana"},"application/vnd.3gpp.pfcp":{"source":"iana"},"application/vnd.3gpp.pic-bw-large":{"source":"iana","extensions":["plb"]},"application/vnd.3gpp.pic-bw-small":{"source":"iana","extensions":["psb"]},"application/vnd.3gpp.pic-bw-var":{"source":"iana","extensions":["pvb"]},"application/vnd.3gpp.s1ap":{"source":"iana"},"application/vnd.3gpp.sms":{"source":"iana"},"application/vnd.3gpp.sms+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.srvcc-ext+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.srvcc-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.state-and-event-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.ussd+xml":{"source":"iana","compressible":true},"application/vnd.3gpp2.bcmcsinfo+xml":{"source":"iana","compressible":true},"application/vnd.3gpp2.sms":{"source":"iana"},"application/vnd.3gpp2.tcap":{"source":"iana","extensions":["tcap"]},"application/vnd.3lightssoftware.imagescal":{"source":"iana"},"application/vnd.3m.post-it-notes":{"source":"iana","extensions":["pwn"]},"application/vnd.accpac.simply.aso":{"source":"iana","extensions":["aso"]},"application/vnd.accpac.simply.imp":{"source":"iana","extensions":["imp"]},"application/vnd.acucobol":{"source":"iana","extensions":["acu"]},"application/vnd.acucorp":{"source":"iana","extensions":["atc","acutc"]},"application/vnd.adobe.air-application-installer-package+zip":{"source":"apache","compressible":false,"extensions":["air"]},"application/vnd.adobe.flash.movie":{"source":"iana"},"application/vnd.adobe.formscentral.fcdt":{"source":"iana","extensions":["fcdt"]},"application/vnd.adobe.fxp":{"source":"iana","extensions":["fxp","fxpl"]},"application/vnd.adobe.partial-upload":{"source":"iana"},"application/vnd.adobe.xdp+xml":{"source":"iana","compressible":true,"extensions":["xdp"]},"application/vnd.adobe.xfdf":{"source":"iana","extensions":["xfdf"]},"application/vnd.aether.imp":{"source":"iana"},"application/vnd.afpc.afplinedata":{"source":"iana"},"application/vnd.afpc.afplinedata-pagedef":{"source":"iana"},"application/vnd.afpc.cmoca-cmresource":{"source":"iana"},"application/vnd.afpc.foca-charset":{"source":"iana"},"application/vnd.afpc.foca-codedfont":{"source":"iana"},"application/vnd.afpc.foca-codepage":{"source":"iana"},"application/vnd.afpc.modca":{"source":"iana"},"application/vnd.afpc.modca-cmtable":{"source":"iana"},"application/vnd.afpc.modca-formdef":{"source":"iana"},"application/vnd.afpc.modca-mediummap":{"source":"iana"},"application/vnd.afpc.modca-objectcontainer":{"source":"iana"},"application/vnd.afpc.modca-overlay":{"source":"iana"},"application/vnd.afpc.modca-pagesegment":{"source":"iana"},"application/vnd.age":{"source":"iana","extensions":["age"]},"application/vnd.ah-barcode":{"source":"iana"},"application/vnd.ahead.space":{"source":"iana","extensions":["ahead"]},"application/vnd.airzip.filesecure.azf":{"source":"iana","extensions":["azf"]},"application/vnd.airzip.filesecure.azs":{"source":"iana","extensions":["azs"]},"application/vnd.amadeus+json":{"source":"iana","compressible":true},"application/vnd.amazon.ebook":{"source":"apache","extensions":["azw"]},"application/vnd.amazon.mobi8-ebook":{"source":"iana"},"application/vnd.americandynamics.acc":{"source":"iana","extensions":["acc"]},"application/vnd.amiga.ami":{"source":"iana","extensions":["ami"]},"application/vnd.amundsen.maze+xml":{"source":"iana","compressible":true},"application/vnd.android.ota":{"source":"iana"},"application/vnd.android.package-archive":{"source":"apache","compressible":false,"extensions":["apk"]},"application/vnd.anki":{"source":"iana"},"application/vnd.anser-web-certificate-issue-initiation":{"source":"iana","extensions":["cii"]},"application/vnd.anser-web-funds-transfer-initiation":{"source":"apache","extensions":["fti"]},"application/vnd.antix.game-component":{"source":"iana","extensions":["atx"]},"application/vnd.apache.arrow.file":{"source":"iana"},"application/vnd.apache.arrow.stream":{"source":"iana"},"application/vnd.apache.thrift.binary":{"source":"iana"},"application/vnd.apache.thrift.compact":{"source":"iana"},"application/vnd.apache.thrift.json":{"source":"iana"},"application/vnd.api+json":{"source":"iana","compressible":true},"application/vnd.aplextor.warrp+json":{"source":"iana","compressible":true},"application/vnd.apothekende.reservation+json":{"source":"iana","compressible":true},"application/vnd.apple.installer+xml":{"source":"iana","compressible":true,"extensions":["mpkg"]},"application/vnd.apple.keynote":{"source":"iana","extensions":["key"]},"application/vnd.apple.mpegurl":{"source":"iana","extensions":["m3u8"]},"application/vnd.apple.numbers":{"source":"iana","extensions":["numbers"]},"application/vnd.apple.pages":{"source":"iana","extensions":["pages"]},"application/vnd.apple.pkpass":{"compressible":false,"extensions":["pkpass"]},"application/vnd.arastra.swi":{"source":"iana"},"application/vnd.aristanetworks.swi":{"source":"iana","extensions":["swi"]},"application/vnd.artisan+json":{"source":"iana","compressible":true},"application/vnd.artsquare":{"source":"iana"},"application/vnd.astraea-software.iota":{"source":"iana","extensions":["iota"]},"application/vnd.audiograph":{"source":"iana","extensions":["aep"]},"application/vnd.autopackage":{"source":"iana"},"application/vnd.avalon+json":{"source":"iana","compressible":true},"application/vnd.avistar+xml":{"source":"iana","compressible":true},"application/vnd.balsamiq.bmml+xml":{"source":"iana","compressible":true,"extensions":["bmml"]},"application/vnd.balsamiq.bmpr":{"source":"iana"},"application/vnd.banana-accounting":{"source":"iana"},"application/vnd.bbf.usp.error":{"source":"iana"},"application/vnd.bbf.usp.msg":{"source":"iana"},"application/vnd.bbf.usp.msg+json":{"source":"iana","compressible":true},"application/vnd.bekitzur-stech+json":{"source":"iana","compressible":true},"application/vnd.bint.med-content":{"source":"iana"},"application/vnd.biopax.rdf+xml":{"source":"iana","compressible":true},"application/vnd.blink-idb-value-wrapper":{"source":"iana"},"application/vnd.blueice.multipass":{"source":"iana","extensions":["mpm"]},"application/vnd.bluetooth.ep.oob":{"source":"iana"},"application/vnd.bluetooth.le.oob":{"source":"iana"},"application/vnd.bmi":{"source":"iana","extensions":["bmi"]},"application/vnd.bpf":{"source":"iana"},"application/vnd.bpf3":{"source":"iana"},"application/vnd.businessobjects":{"source":"iana","extensions":["rep"]},"application/vnd.byu.uapi+json":{"source":"iana","compressible":true},"application/vnd.cab-jscript":{"source":"iana"},"application/vnd.canon-cpdl":{"source":"iana"},"application/vnd.canon-lips":{"source":"iana"},"application/vnd.capasystems-pg+json":{"source":"iana","compressible":true},"application/vnd.cendio.thinlinc.clientconf":{"source":"iana"},"application/vnd.century-systems.tcp_stream":{"source":"iana"},"application/vnd.chemdraw+xml":{"source":"iana","compressible":true,"extensions":["cdxml"]},"application/vnd.chess-pgn":{"source":"iana"},"application/vnd.chipnuts.karaoke-mmd":{"source":"iana","extensions":["mmd"]},"application/vnd.ciedi":{"source":"iana"},"application/vnd.cinderella":{"source":"iana","extensions":["cdy"]},"application/vnd.cirpack.isdn-ext":{"source":"iana"},"application/vnd.citationstyles.style+xml":{"source":"iana","compressible":true,"extensions":["csl"]},"application/vnd.claymore":{"source":"iana","extensions":["cla"]},"application/vnd.cloanto.rp9":{"source":"iana","extensions":["rp9"]},"application/vnd.clonk.c4group":{"source":"iana","extensions":["c4g","c4d","c4f","c4p","c4u"]},"application/vnd.cluetrust.cartomobile-config":{"source":"iana","extensions":["c11amc"]},"application/vnd.cluetrust.cartomobile-config-pkg":{"source":"iana","extensions":["c11amz"]},"application/vnd.coffeescript":{"source":"iana"},"application/vnd.collabio.xodocuments.document":{"source":"iana"},"application/vnd.collabio.xodocuments.document-template":{"source":"iana"},"application/vnd.collabio.xodocuments.presentation":{"source":"iana"},"application/vnd.collabio.xodocuments.presentation-template":{"source":"iana"},"application/vnd.collabio.xodocuments.spreadsheet":{"source":"iana"},"application/vnd.collabio.xodocuments.spreadsheet-template":{"source":"iana"},"application/vnd.collection+json":{"source":"iana","compressible":true},"application/vnd.collection.doc+json":{"source":"iana","compressible":true},"application/vnd.collection.next+json":{"source":"iana","compressible":true},"application/vnd.comicbook+zip":{"source":"iana","compressible":false},"application/vnd.comicbook-rar":{"source":"iana"},"application/vnd.commerce-battelle":{"source":"iana"},"application/vnd.commonspace":{"source":"iana","extensions":["csp"]},"application/vnd.contact.cmsg":{"source":"iana","extensions":["cdbcmsg"]},"application/vnd.coreos.ignition+json":{"source":"iana","compressible":true},"application/vnd.cosmocaller":{"source":"iana","extensions":["cmc"]},"application/vnd.crick.clicker":{"source":"iana","extensions":["clkx"]},"application/vnd.crick.clicker.keyboard":{"source":"iana","extensions":["clkk"]},"application/vnd.crick.clicker.palette":{"source":"iana","extensions":["clkp"]},"application/vnd.crick.clicker.template":{"source":"iana","extensions":["clkt"]},"application/vnd.crick.clicker.wordbank":{"source":"iana","extensions":["clkw"]},"application/vnd.criticaltools.wbs+xml":{"source":"iana","compressible":true,"extensions":["wbs"]},"application/vnd.cryptii.pipe+json":{"source":"iana","compressible":true},"application/vnd.crypto-shade-file":{"source":"iana"},"application/vnd.cryptomator.encrypted":{"source":"iana"},"application/vnd.cryptomator.vault":{"source":"iana"},"application/vnd.ctc-posml":{"source":"iana","extensions":["pml"]},"application/vnd.ctct.ws+xml":{"source":"iana","compressible":true},"application/vnd.cups-pdf":{"source":"iana"},"application/vnd.cups-postscript":{"source":"iana"},"application/vnd.cups-ppd":{"source":"iana","extensions":["ppd"]},"application/vnd.cups-raster":{"source":"iana"},"application/vnd.cups-raw":{"source":"iana"},"application/vnd.curl":{"source":"iana"},"application/vnd.curl.car":{"source":"apache","extensions":["car"]},"application/vnd.curl.pcurl":{"source":"apache","extensions":["pcurl"]},"application/vnd.cyan.dean.root+xml":{"source":"iana","compressible":true},"application/vnd.cybank":{"source":"iana"},"application/vnd.cyclonedx+json":{"source":"iana","compressible":true},"application/vnd.cyclonedx+xml":{"source":"iana","compressible":true},"application/vnd.d2l.coursepackage1p0+zip":{"source":"iana","compressible":false},"application/vnd.d3m-dataset":{"source":"iana"},"application/vnd.d3m-problem":{"source":"iana"},"application/vnd.dart":{"source":"iana","compressible":true,"extensions":["dart"]},"application/vnd.data-vision.rdz":{"source":"iana","extensions":["rdz"]},"application/vnd.datapackage+json":{"source":"iana","compressible":true},"application/vnd.dataresource+json":{"source":"iana","compressible":true},"application/vnd.dbf":{"source":"iana","extensions":["dbf"]},"application/vnd.debian.binary-package":{"source":"iana"},"application/vnd.dece.data":{"source":"iana","extensions":["uvf","uvvf","uvd","uvvd"]},"application/vnd.dece.ttml+xml":{"source":"iana","compressible":true,"extensions":["uvt","uvvt"]},"application/vnd.dece.unspecified":{"source":"iana","extensions":["uvx","uvvx"]},"application/vnd.dece.zip":{"source":"iana","extensions":["uvz","uvvz"]},"application/vnd.denovo.fcselayout-link":{"source":"iana","extensions":["fe_launch"]},"application/vnd.desmume.movie":{"source":"iana"},"application/vnd.dir-bi.plate-dl-nosuffix":{"source":"iana"},"application/vnd.dm.delegation+xml":{"source":"iana","compressible":true},"application/vnd.dna":{"source":"iana","extensions":["dna"]},"application/vnd.document+json":{"source":"iana","compressible":true},"application/vnd.dolby.mlp":{"source":"apache","extensions":["mlp"]},"application/vnd.dolby.mobile.1":{"source":"iana"},"application/vnd.dolby.mobile.2":{"source":"iana"},"application/vnd.doremir.scorecloud-binary-document":{"source":"iana"},"application/vnd.dpgraph":{"source":"iana","extensions":["dpg"]},"application/vnd.dreamfactory":{"source":"iana","extensions":["dfac"]},"application/vnd.drive+json":{"source":"iana","compressible":true},"application/vnd.ds-keypoint":{"source":"apache","extensions":["kpxx"]},"application/vnd.dtg.local":{"source":"iana"},"application/vnd.dtg.local.flash":{"source":"iana"},"application/vnd.dtg.local.html":{"source":"iana"},"application/vnd.dvb.ait":{"source":"iana","extensions":["ait"]},"application/vnd.dvb.dvbisl+xml":{"source":"iana","compressible":true},"application/vnd.dvb.dvbj":{"source":"iana"},"application/vnd.dvb.esgcontainer":{"source":"iana"},"application/vnd.dvb.ipdcdftnotifaccess":{"source":"iana"},"application/vnd.dvb.ipdcesgaccess":{"source":"iana"},"application/vnd.dvb.ipdcesgaccess2":{"source":"iana"},"application/vnd.dvb.ipdcesgpdd":{"source":"iana"},"application/vnd.dvb.ipdcroaming":{"source":"iana"},"application/vnd.dvb.iptv.alfec-base":{"source":"iana"},"application/vnd.dvb.iptv.alfec-enhancement":{"source":"iana"},"application/vnd.dvb.notif-aggregate-root+xml":{"source":"iana","compressible":true},"application/vnd.dvb.notif-container+xml":{"source":"iana","compressible":true},"application/vnd.dvb.notif-generic+xml":{"source":"iana","compressible":true},"application/vnd.dvb.notif-ia-msglist+xml":{"source":"iana","compressible":true},"application/vnd.dvb.notif-ia-registration-request+xml":{"source":"iana","compressible":true},"application/vnd.dvb.notif-ia-registration-response+xml":{"source":"iana","compressible":true},"application/vnd.dvb.notif-init+xml":{"source":"iana","compressible":true},"application/vnd.dvb.pfr":{"source":"iana"},"application/vnd.dvb.service":{"source":"iana","extensions":["svc"]},"application/vnd.dxr":{"source":"iana"},"application/vnd.dynageo":{"source":"iana","extensions":["geo"]},"application/vnd.dzr":{"source":"iana"},"application/vnd.easykaraoke.cdgdownload":{"source":"iana"},"application/vnd.ecdis-update":{"source":"iana"},"application/vnd.ecip.rlp":{"source":"iana"},"application/vnd.eclipse.ditto+json":{"source":"iana","compressible":true},"application/vnd.ecowin.chart":{"source":"iana","extensions":["mag"]},"application/vnd.ecowin.filerequest":{"source":"iana"},"application/vnd.ecowin.fileupdate":{"source":"iana"},"application/vnd.ecowin.series":{"source":"iana"},"application/vnd.ecowin.seriesrequest":{"source":"iana"},"application/vnd.ecowin.seriesupdate":{"source":"iana"},"application/vnd.efi.img":{"source":"iana"},"application/vnd.efi.iso":{"source":"iana"},"application/vnd.emclient.accessrequest+xml":{"source":"iana","compressible":true},"application/vnd.enliven":{"source":"iana","extensions":["nml"]},"application/vnd.enphase.envoy":{"source":"iana"},"application/vnd.eprints.data+xml":{"source":"iana","compressible":true},"application/vnd.epson.esf":{"source":"iana","extensions":["esf"]},"application/vnd.epson.msf":{"source":"iana","extensions":["msf"]},"application/vnd.epson.quickanime":{"source":"iana","extensions":["qam"]},"application/vnd.epson.salt":{"source":"iana","extensions":["slt"]},"application/vnd.epson.ssf":{"source":"iana","extensions":["ssf"]},"application/vnd.ericsson.quickcall":{"source":"iana"},"application/vnd.espass-espass+zip":{"source":"iana","compressible":false},"application/vnd.eszigno3+xml":{"source":"iana","compressible":true,"extensions":["es3","et3"]},"application/vnd.etsi.aoc+xml":{"source":"iana","compressible":true},"application/vnd.etsi.asic-e+zip":{"source":"iana","compressible":false},"application/vnd.etsi.asic-s+zip":{"source":"iana","compressible":false},"application/vnd.etsi.cug+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvcommand+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvdiscovery+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvprofile+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvsad-bc+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvsad-cod+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvsad-npvr+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvservice+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvsync+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvueprofile+xml":{"source":"iana","compressible":true},"application/vnd.etsi.mcid+xml":{"source":"iana","compressible":true},"application/vnd.etsi.mheg5":{"source":"iana"},"application/vnd.etsi.overload-control-policy-dataset+xml":{"source":"iana","compressible":true},"application/vnd.etsi.pstn+xml":{"source":"iana","compressible":true},"application/vnd.etsi.sci+xml":{"source":"iana","compressible":true},"application/vnd.etsi.simservs+xml":{"source":"iana","compressible":true},"application/vnd.etsi.timestamp-token":{"source":"iana"},"application/vnd.etsi.tsl+xml":{"source":"iana","compressible":true},"application/vnd.etsi.tsl.der":{"source":"iana"},"application/vnd.eu.kasparian.car+json":{"source":"iana","compressible":true},"application/vnd.eudora.data":{"source":"iana"},"application/vnd.evolv.ecig.profile":{"source":"iana"},"application/vnd.evolv.ecig.settings":{"source":"iana"},"application/vnd.evolv.ecig.theme":{"source":"iana"},"application/vnd.exstream-empower+zip":{"source":"iana","compressible":false},"application/vnd.exstream-package":{"source":"iana"},"application/vnd.ezpix-album":{"source":"iana","extensions":["ez2"]},"application/vnd.ezpix-package":{"source":"iana","extensions":["ez3"]},"application/vnd.f-secure.mobile":{"source":"iana"},"application/vnd.familysearch.gedcom+zip":{"source":"iana","compressible":false},"application/vnd.fastcopy-disk-image":{"source":"iana"},"application/vnd.fdf":{"source":"iana","extensions":["fdf"]},"application/vnd.fdsn.mseed":{"source":"iana","extensions":["mseed"]},"application/vnd.fdsn.seed":{"source":"iana","extensions":["seed","dataless"]},"application/vnd.ffsns":{"source":"iana"},"application/vnd.ficlab.flb+zip":{"source":"iana","compressible":false},"application/vnd.filmit.zfc":{"source":"iana"},"application/vnd.fints":{"source":"iana"},"application/vnd.firemonkeys.cloudcell":{"source":"iana"},"application/vnd.flographit":{"source":"iana","extensions":["gph"]},"application/vnd.fluxtime.clip":{"source":"iana","extensions":["ftc"]},"application/vnd.font-fontforge-sfd":{"source":"iana"},"application/vnd.framemaker":{"source":"iana","extensions":["fm","frame","maker","book"]},"application/vnd.frogans.fnc":{"source":"iana","extensions":["fnc"]},"application/vnd.frogans.ltf":{"source":"iana","extensions":["ltf"]},"application/vnd.fsc.weblaunch":{"source":"iana","extensions":["fsc"]},"application/vnd.fujifilm.fb.docuworks":{"source":"iana"},"application/vnd.fujifilm.fb.docuworks.binder":{"source":"iana"},"application/vnd.fujifilm.fb.docuworks.container":{"source":"iana"},"application/vnd.fujifilm.fb.jfi+xml":{"source":"iana","compressible":true},"application/vnd.fujitsu.oasys":{"source":"iana","extensions":["oas"]},"application/vnd.fujitsu.oasys2":{"source":"iana","extensions":["oa2"]},"application/vnd.fujitsu.oasys3":{"source":"iana","extensions":["oa3"]},"application/vnd.fujitsu.oasysgp":{"source":"iana","extensions":["fg5"]},"application/vnd.fujitsu.oasysprs":{"source":"iana","extensions":["bh2"]},"application/vnd.fujixerox.art-ex":{"source":"iana"},"application/vnd.fujixerox.art4":{"source":"iana"},"application/vnd.fujixerox.ddd":{"source":"iana","extensions":["ddd"]},"application/vnd.fujixerox.docuworks":{"source":"iana","extensions":["xdw"]},"application/vnd.fujixerox.docuworks.binder":{"source":"iana","extensions":["xbd"]},"application/vnd.fujixerox.docuworks.container":{"source":"iana"},"application/vnd.fujixerox.hbpl":{"source":"iana"},"application/vnd.fut-misnet":{"source":"iana"},"application/vnd.futoin+cbor":{"source":"iana"},"application/vnd.futoin+json":{"source":"iana","compressible":true},"application/vnd.fuzzysheet":{"source":"iana","extensions":["fzs"]},"application/vnd.genomatix.tuxedo":{"source":"iana","extensions":["txd"]},"application/vnd.gentics.grd+json":{"source":"iana","compressible":true},"application/vnd.geo+json":{"source":"iana","compressible":true},"application/vnd.geocube+xml":{"source":"iana","compressible":true},"application/vnd.geogebra.file":{"source":"iana","extensions":["ggb"]},"application/vnd.geogebra.slides":{"source":"iana"},"application/vnd.geogebra.tool":{"source":"iana","extensions":["ggt"]},"application/vnd.geometry-explorer":{"source":"iana","extensions":["gex","gre"]},"application/vnd.geonext":{"source":"iana","extensions":["gxt"]},"application/vnd.geoplan":{"source":"iana","extensions":["g2w"]},"application/vnd.geospace":{"source":"iana","extensions":["g3w"]},"application/vnd.gerber":{"source":"iana"},"application/vnd.globalplatform.card-content-mgt":{"source":"iana"},"application/vnd.globalplatform.card-content-mgt-response":{"source":"iana"},"application/vnd.gmx":{"source":"iana","extensions":["gmx"]},"application/vnd.google-apps.document":{"compressible":false,"extensions":["gdoc"]},"application/vnd.google-apps.presentation":{"compressible":false,"extensions":["gslides"]},"application/vnd.google-apps.spreadsheet":{"compressible":false,"extensions":["gsheet"]},"application/vnd.google-earth.kml+xml":{"source":"iana","compressible":true,"extensions":["kml"]},"application/vnd.google-earth.kmz":{"source":"iana","compressible":false,"extensions":["kmz"]},"application/vnd.gov.sk.e-form+xml":{"source":"iana","compressible":true},"application/vnd.gov.sk.e-form+zip":{"source":"iana","compressible":false},"application/vnd.gov.sk.xmldatacontainer+xml":{"source":"iana","compressible":true},"application/vnd.grafeq":{"source":"iana","extensions":["gqf","gqs"]},"application/vnd.gridmp":{"source":"iana"},"application/vnd.groove-account":{"source":"iana","extensions":["gac"]},"application/vnd.groove-help":{"source":"iana","extensions":["ghf"]},"application/vnd.groove-identity-message":{"source":"iana","extensions":["gim"]},"application/vnd.groove-injector":{"source":"iana","extensions":["grv"]},"application/vnd.groove-tool-message":{"source":"iana","extensions":["gtm"]},"application/vnd.groove-tool-template":{"source":"iana","extensions":["tpl"]},"application/vnd.groove-vcard":{"source":"iana","extensions":["vcg"]},"application/vnd.hal+json":{"source":"iana","compressible":true},"application/vnd.hal+xml":{"source":"iana","compressible":true,"extensions":["hal"]},"application/vnd.handheld-entertainment+xml":{"source":"iana","compressible":true,"extensions":["zmm"]},"application/vnd.hbci":{"source":"iana","extensions":["hbci"]},"application/vnd.hc+json":{"source":"iana","compressible":true},"application/vnd.hcl-bireports":{"source":"iana"},"application/vnd.hdt":{"source":"iana"},"application/vnd.heroku+json":{"source":"iana","compressible":true},"application/vnd.hhe.lesson-player":{"source":"iana","extensions":["les"]},"application/vnd.hl7cda+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/vnd.hl7v2+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/vnd.hp-hpgl":{"source":"iana","extensions":["hpgl"]},"application/vnd.hp-hpid":{"source":"iana","extensions":["hpid"]},"application/vnd.hp-hps":{"source":"iana","extensions":["hps"]},"application/vnd.hp-jlyt":{"source":"iana","extensions":["jlt"]},"application/vnd.hp-pcl":{"source":"iana","extensions":["pcl"]},"application/vnd.hp-pclxl":{"source":"iana","extensions":["pclxl"]},"application/vnd.httphone":{"source":"iana"},"application/vnd.hydrostatix.sof-data":{"source":"iana","extensions":["sfd-hdstx"]},"application/vnd.hyper+json":{"source":"iana","compressible":true},"application/vnd.hyper-item+json":{"source":"iana","compressible":true},"application/vnd.hyperdrive+json":{"source":"iana","compressible":true},"application/vnd.hzn-3d-crossword":{"source":"iana"},"application/vnd.ibm.afplinedata":{"source":"iana"},"application/vnd.ibm.electronic-media":{"source":"iana"},"application/vnd.ibm.minipay":{"source":"iana","extensions":["mpy"]},"application/vnd.ibm.modcap":{"source":"iana","extensions":["afp","listafp","list3820"]},"application/vnd.ibm.rights-management":{"source":"iana","extensions":["irm"]},"application/vnd.ibm.secure-container":{"source":"iana","extensions":["sc"]},"application/vnd.iccprofile":{"source":"iana","extensions":["icc","icm"]},"application/vnd.ieee.1905":{"source":"iana"},"application/vnd.igloader":{"source":"iana","extensions":["igl"]},"application/vnd.imagemeter.folder+zip":{"source":"iana","compressible":false},"application/vnd.imagemeter.image+zip":{"source":"iana","compressible":false},"application/vnd.immervision-ivp":{"source":"iana","extensions":["ivp"]},"application/vnd.immervision-ivu":{"source":"iana","extensions":["ivu"]},"application/vnd.ims.imsccv1p1":{"source":"iana"},"application/vnd.ims.imsccv1p2":{"source":"iana"},"application/vnd.ims.imsccv1p3":{"source":"iana"},"application/vnd.ims.lis.v2.result+json":{"source":"iana","compressible":true},"application/vnd.ims.lti.v2.toolconsumerprofile+json":{"source":"iana","compressible":true},"application/vnd.ims.lti.v2.toolproxy+json":{"source":"iana","compressible":true},"application/vnd.ims.lti.v2.toolproxy.id+json":{"source":"iana","compressible":true},"application/vnd.ims.lti.v2.toolsettings+json":{"source":"iana","compressible":true},"application/vnd.ims.lti.v2.toolsettings.simple+json":{"source":"iana","compressible":true},"application/vnd.informedcontrol.rms+xml":{"source":"iana","compressible":true},"application/vnd.informix-visionary":{"source":"iana"},"application/vnd.infotech.project":{"source":"iana"},"application/vnd.infotech.project+xml":{"source":"iana","compressible":true},"application/vnd.innopath.wamp.notification":{"source":"iana"},"application/vnd.insors.igm":{"source":"iana","extensions":["igm"]},"application/vnd.intercon.formnet":{"source":"iana","extensions":["xpw","xpx"]},"application/vnd.intergeo":{"source":"iana","extensions":["i2g"]},"application/vnd.intertrust.digibox":{"source":"iana"},"application/vnd.intertrust.nncp":{"source":"iana"},"application/vnd.intu.qbo":{"source":"iana","extensions":["qbo"]},"application/vnd.intu.qfx":{"source":"iana","extensions":["qfx"]},"application/vnd.iptc.g2.catalogitem+xml":{"source":"iana","compressible":true},"application/vnd.iptc.g2.conceptitem+xml":{"source":"iana","compressible":true},"application/vnd.iptc.g2.knowledgeitem+xml":{"source":"iana","compressible":true},"application/vnd.iptc.g2.newsitem+xml":{"source":"iana","compressible":true},"application/vnd.iptc.g2.newsmessage+xml":{"source":"iana","compressible":true},"application/vnd.iptc.g2.packageitem+xml":{"source":"iana","compressible":true},"application/vnd.iptc.g2.planningitem+xml":{"source":"iana","compressible":true},"application/vnd.ipunplugged.rcprofile":{"source":"iana","extensions":["rcprofile"]},"application/vnd.irepository.package+xml":{"source":"iana","compressible":true,"extensions":["irp"]},"application/vnd.is-xpr":{"source":"iana","extensions":["xpr"]},"application/vnd.isac.fcs":{"source":"iana","extensions":["fcs"]},"application/vnd.iso11783-10+zip":{"source":"iana","compressible":false},"application/vnd.jam":{"source":"iana","extensions":["jam"]},"application/vnd.japannet-directory-service":{"source":"iana"},"application/vnd.japannet-jpnstore-wakeup":{"source":"iana"},"application/vnd.japannet-payment-wakeup":{"source":"iana"},"application/vnd.japannet-registration":{"source":"iana"},"application/vnd.japannet-registration-wakeup":{"source":"iana"},"application/vnd.japannet-setstore-wakeup":{"source":"iana"},"application/vnd.japannet-verification":{"source":"iana"},"application/vnd.japannet-verification-wakeup":{"source":"iana"},"application/vnd.jcp.javame.midlet-rms":{"source":"iana","extensions":["rms"]},"application/vnd.jisp":{"source":"iana","extensions":["jisp"]},"application/vnd.joost.joda-archive":{"source":"iana","extensions":["joda"]},"application/vnd.jsk.isdn-ngn":{"source":"iana"},"application/vnd.kahootz":{"source":"iana","extensions":["ktz","ktr"]},"application/vnd.kde.karbon":{"source":"iana","extensions":["karbon"]},"application/vnd.kde.kchart":{"source":"iana","extensions":["chrt"]},"application/vnd.kde.kformula":{"source":"iana","extensions":["kfo"]},"application/vnd.kde.kivio":{"source":"iana","extensions":["flw"]},"application/vnd.kde.kontour":{"source":"iana","extensions":["kon"]},"application/vnd.kde.kpresenter":{"source":"iana","extensions":["kpr","kpt"]},"application/vnd.kde.kspread":{"source":"iana","extensions":["ksp"]},"application/vnd.kde.kword":{"source":"iana","extensions":["kwd","kwt"]},"application/vnd.kenameaapp":{"source":"iana","extensions":["htke"]},"application/vnd.kidspiration":{"source":"iana","extensions":["kia"]},"application/vnd.kinar":{"source":"iana","extensions":["kne","knp"]},"application/vnd.koan":{"source":"iana","extensions":["skp","skd","skt","skm"]},"application/vnd.kodak-descriptor":{"source":"iana","extensions":["sse"]},"application/vnd.las":{"source":"iana"},"application/vnd.las.las+json":{"source":"iana","compressible":true},"application/vnd.las.las+xml":{"source":"iana","compressible":true,"extensions":["lasxml"]},"application/vnd.laszip":{"source":"iana"},"application/vnd.leap+json":{"source":"iana","compressible":true},"application/vnd.liberty-request+xml":{"source":"iana","compressible":true},"application/vnd.llamagraphics.life-balance.desktop":{"source":"iana","extensions":["lbd"]},"application/vnd.llamagraphics.life-balance.exchange+xml":{"source":"iana","compressible":true,"extensions":["lbe"]},"application/vnd.logipipe.circuit+zip":{"source":"iana","compressible":false},"application/vnd.loom":{"source":"iana"},"application/vnd.lotus-1-2-3":{"source":"iana","extensions":["123"]},"application/vnd.lotus-approach":{"source":"iana","extensions":["apr"]},"application/vnd.lotus-freelance":{"source":"iana","extensions":["pre"]},"application/vnd.lotus-notes":{"source":"iana","extensions":["nsf"]},"application/vnd.lotus-organizer":{"source":"iana","extensions":["org"]},"application/vnd.lotus-screencam":{"source":"iana","extensions":["scm"]},"application/vnd.lotus-wordpro":{"source":"iana","extensions":["lwp"]},"application/vnd.macports.portpkg":{"source":"iana","extensions":["portpkg"]},"application/vnd.mapbox-vector-tile":{"source":"iana","extensions":["mvt"]},"application/vnd.marlin.drm.actiontoken+xml":{"source":"iana","compressible":true},"application/vnd.marlin.drm.conftoken+xml":{"source":"iana","compressible":true},"application/vnd.marlin.drm.license+xml":{"source":"iana","compressible":true},"application/vnd.marlin.drm.mdcf":{"source":"iana"},"application/vnd.mason+json":{"source":"iana","compressible":true},"application/vnd.maxar.archive.3tz+zip":{"source":"iana","compressible":false},"application/vnd.maxmind.maxmind-db":{"source":"iana"},"application/vnd.mcd":{"source":"iana","extensions":["mcd"]},"application/vnd.medcalcdata":{"source":"iana","extensions":["mc1"]},"application/vnd.mediastation.cdkey":{"source":"iana","extensions":["cdkey"]},"application/vnd.meridian-slingshot":{"source":"iana"},"application/vnd.mfer":{"source":"iana","extensions":["mwf"]},"application/vnd.mfmp":{"source":"iana","extensions":["mfm"]},"application/vnd.micro+json":{"source":"iana","compressible":true},"application/vnd.micrografx.flo":{"source":"iana","extensions":["flo"]},"application/vnd.micrografx.igx":{"source":"iana","extensions":["igx"]},"application/vnd.microsoft.portable-executable":{"source":"iana"},"application/vnd.microsoft.windows.thumbnail-cache":{"source":"iana"},"application/vnd.miele+json":{"source":"iana","compressible":true},"application/vnd.mif":{"source":"iana","extensions":["mif"]},"application/vnd.minisoft-hp3000-save":{"source":"iana"},"application/vnd.mitsubishi.misty-guard.trustweb":{"source":"iana"},"application/vnd.mobius.daf":{"source":"iana","extensions":["daf"]},"application/vnd.mobius.dis":{"source":"iana","extensions":["dis"]},"application/vnd.mobius.mbk":{"source":"iana","extensions":["mbk"]},"application/vnd.mobius.mqy":{"source":"iana","extensions":["mqy"]},"application/vnd.mobius.msl":{"source":"iana","extensions":["msl"]},"application/vnd.mobius.plc":{"source":"iana","extensions":["plc"]},"application/vnd.mobius.txf":{"source":"iana","extensions":["txf"]},"application/vnd.mophun.application":{"source":"iana","extensions":["mpn"]},"application/vnd.mophun.certificate":{"source":"iana","extensions":["mpc"]},"application/vnd.motorola.flexsuite":{"source":"iana"},"application/vnd.motorola.flexsuite.adsi":{"source":"iana"},"application/vnd.motorola.flexsuite.fis":{"source":"iana"},"application/vnd.motorola.flexsuite.gotap":{"source":"iana"},"application/vnd.motorola.flexsuite.kmr":{"source":"iana"},"application/vnd.motorola.flexsuite.ttc":{"source":"iana"},"application/vnd.motorola.flexsuite.wem":{"source":"iana"},"application/vnd.motorola.iprm":{"source":"iana"},"application/vnd.mozilla.xul+xml":{"source":"iana","compressible":true,"extensions":["xul"]},"application/vnd.ms-3mfdocument":{"source":"iana"},"application/vnd.ms-artgalry":{"source":"iana","extensions":["cil"]},"application/vnd.ms-asf":{"source":"iana"},"application/vnd.ms-cab-compressed":{"source":"iana","extensions":["cab"]},"application/vnd.ms-color.iccprofile":{"source":"apache"},"application/vnd.ms-excel":{"source":"iana","compressible":false,"extensions":["xls","xlm","xla","xlc","xlt","xlw"]},"application/vnd.ms-excel.addin.macroenabled.12":{"source":"iana","extensions":["xlam"]},"application/vnd.ms-excel.sheet.binary.macroenabled.12":{"source":"iana","extensions":["xlsb"]},"application/vnd.ms-excel.sheet.macroenabled.12":{"source":"iana","extensions":["xlsm"]},"application/vnd.ms-excel.template.macroenabled.12":{"source":"iana","extensions":["xltm"]},"application/vnd.ms-fontobject":{"source":"iana","compressible":true,"extensions":["eot"]},"application/vnd.ms-htmlhelp":{"source":"iana","extensions":["chm"]},"application/vnd.ms-ims":{"source":"iana","extensions":["ims"]},"application/vnd.ms-lrm":{"source":"iana","extensions":["lrm"]},"application/vnd.ms-office.activex+xml":{"source":"iana","compressible":true},"application/vnd.ms-officetheme":{"source":"iana","extensions":["thmx"]},"application/vnd.ms-opentype":{"source":"apache","compressible":true},"application/vnd.ms-outlook":{"compressible":false,"extensions":["msg"]},"application/vnd.ms-package.obfuscated-opentype":{"source":"apache"},"application/vnd.ms-pki.seccat":{"source":"apache","extensions":["cat"]},"application/vnd.ms-pki.stl":{"source":"apache","extensions":["stl"]},"application/vnd.ms-playready.initiator+xml":{"source":"iana","compressible":true},"application/vnd.ms-powerpoint":{"source":"iana","compressible":false,"extensions":["ppt","pps","pot"]},"application/vnd.ms-powerpoint.addin.macroenabled.12":{"source":"iana","extensions":["ppam"]},"application/vnd.ms-powerpoint.presentation.macroenabled.12":{"source":"iana","extensions":["pptm"]},"application/vnd.ms-powerpoint.slide.macroenabled.12":{"source":"iana","extensions":["sldm"]},"application/vnd.ms-powerpoint.slideshow.macroenabled.12":{"source":"iana","extensions":["ppsm"]},"application/vnd.ms-powerpoint.template.macroenabled.12":{"source":"iana","extensions":["potm"]},"application/vnd.ms-printdevicecapabilities+xml":{"source":"iana","compressible":true},"application/vnd.ms-printing.printticket+xml":{"source":"apache","compressible":true},"application/vnd.ms-printschematicket+xml":{"source":"iana","compressible":true},"application/vnd.ms-project":{"source":"iana","extensions":["mpp","mpt"]},"application/vnd.ms-tnef":{"source":"iana"},"application/vnd.ms-windows.devicepairing":{"source":"iana"},"application/vnd.ms-windows.nwprinting.oob":{"source":"iana"},"application/vnd.ms-windows.printerpairing":{"source":"iana"},"application/vnd.ms-windows.wsd.oob":{"source":"iana"},"application/vnd.ms-wmdrm.lic-chlg-req":{"source":"iana"},"application/vnd.ms-wmdrm.lic-resp":{"source":"iana"},"application/vnd.ms-wmdrm.meter-chlg-req":{"source":"iana"},"application/vnd.ms-wmdrm.meter-resp":{"source":"iana"},"application/vnd.ms-word.document.macroenabled.12":{"source":"iana","extensions":["docm"]},"application/vnd.ms-word.template.macroenabled.12":{"source":"iana","extensions":["dotm"]},"application/vnd.ms-works":{"source":"iana","extensions":["wps","wks","wcm","wdb"]},"application/vnd.ms-wpl":{"source":"iana","extensions":["wpl"]},"application/vnd.ms-xpsdocument":{"source":"iana","compressible":false,"extensions":["xps"]},"application/vnd.msa-disk-image":{"source":"iana"},"application/vnd.mseq":{"source":"iana","extensions":["mseq"]},"application/vnd.msign":{"source":"iana"},"application/vnd.multiad.creator":{"source":"iana"},"application/vnd.multiad.creator.cif":{"source":"iana"},"application/vnd.music-niff":{"source":"iana"},"application/vnd.musician":{"source":"iana","extensions":["mus"]},"application/vnd.muvee.style":{"source":"iana","extensions":["msty"]},"application/vnd.mynfc":{"source":"iana","extensions":["taglet"]},"application/vnd.nacamar.ybrid+json":{"source":"iana","compressible":true},"application/vnd.ncd.control":{"source":"iana"},"application/vnd.ncd.reference":{"source":"iana"},"application/vnd.nearst.inv+json":{"source":"iana","compressible":true},"application/vnd.nebumind.line":{"source":"iana"},"application/vnd.nervana":{"source":"iana"},"application/vnd.netfpx":{"source":"iana"},"application/vnd.neurolanguage.nlu":{"source":"iana","extensions":["nlu"]},"application/vnd.nimn":{"source":"iana"},"application/vnd.nintendo.nitro.rom":{"source":"iana"},"application/vnd.nintendo.snes.rom":{"source":"iana"},"application/vnd.nitf":{"source":"iana","extensions":["ntf","nitf"]},"application/vnd.noblenet-directory":{"source":"iana","extensions":["nnd"]},"application/vnd.noblenet-sealer":{"source":"iana","extensions":["nns"]},"application/vnd.noblenet-web":{"source":"iana","extensions":["nnw"]},"application/vnd.nokia.catalogs":{"source":"iana"},"application/vnd.nokia.conml+wbxml":{"source":"iana"},"application/vnd.nokia.conml+xml":{"source":"iana","compressible":true},"application/vnd.nokia.iptv.config+xml":{"source":"iana","compressible":true},"application/vnd.nokia.isds-radio-presets":{"source":"iana"},"application/vnd.nokia.landmark+wbxml":{"source":"iana"},"application/vnd.nokia.landmark+xml":{"source":"iana","compressible":true},"application/vnd.nokia.landmarkcollection+xml":{"source":"iana","compressible":true},"application/vnd.nokia.n-gage.ac+xml":{"source":"iana","compressible":true,"extensions":["ac"]},"application/vnd.nokia.n-gage.data":{"source":"iana","extensions":["ngdat"]},"application/vnd.nokia.n-gage.symbian.install":{"source":"iana","extensions":["n-gage"]},"application/vnd.nokia.ncd":{"source":"iana"},"application/vnd.nokia.pcd+wbxml":{"source":"iana"},"application/vnd.nokia.pcd+xml":{"source":"iana","compressible":true},"application/vnd.nokia.radio-preset":{"source":"iana","extensions":["rpst"]},"application/vnd.nokia.radio-presets":{"source":"iana","extensions":["rpss"]},"application/vnd.novadigm.edm":{"source":"iana","extensions":["edm"]},"application/vnd.novadigm.edx":{"source":"iana","extensions":["edx"]},"application/vnd.novadigm.ext":{"source":"iana","extensions":["ext"]},"application/vnd.ntt-local.content-share":{"source":"iana"},"application/vnd.ntt-local.file-transfer":{"source":"iana"},"application/vnd.ntt-local.ogw_remote-access":{"source":"iana"},"application/vnd.ntt-local.sip-ta_remote":{"source":"iana"},"application/vnd.ntt-local.sip-ta_tcp_stream":{"source":"iana"},"application/vnd.oasis.opendocument.chart":{"source":"iana","extensions":["odc"]},"application/vnd.oasis.opendocument.chart-template":{"source":"iana","extensions":["otc"]},"application/vnd.oasis.opendocument.database":{"source":"iana","extensions":["odb"]},"application/vnd.oasis.opendocument.formula":{"source":"iana","extensions":["odf"]},"application/vnd.oasis.opendocument.formula-template":{"source":"iana","extensions":["odft"]},"application/vnd.oasis.opendocument.graphics":{"source":"iana","compressible":false,"extensions":["odg"]},"application/vnd.oasis.opendocument.graphics-template":{"source":"iana","extensions":["otg"]},"application/vnd.oasis.opendocument.image":{"source":"iana","extensions":["odi"]},"application/vnd.oasis.opendocument.image-template":{"source":"iana","extensions":["oti"]},"application/vnd.oasis.opendocument.presentation":{"source":"iana","compressible":false,"extensions":["odp"]},"application/vnd.oasis.opendocument.presentation-template":{"source":"iana","extensions":["otp"]},"application/vnd.oasis.opendocument.spreadsheet":{"source":"iana","compressible":false,"extensions":["ods"]},"application/vnd.oasis.opendocument.spreadsheet-template":{"source":"iana","extensions":["ots"]},"application/vnd.oasis.opendocument.text":{"source":"iana","compressible":false,"extensions":["odt"]},"application/vnd.oasis.opendocument.text-master":{"source":"iana","extensions":["odm"]},"application/vnd.oasis.opendocument.text-template":{"source":"iana","extensions":["ott"]},"application/vnd.oasis.opendocument.text-web":{"source":"iana","extensions":["oth"]},"application/vnd.obn":{"source":"iana"},"application/vnd.ocf+cbor":{"source":"iana"},"application/vnd.oci.image.manifest.v1+json":{"source":"iana","compressible":true},"application/vnd.oftn.l10n+json":{"source":"iana","compressible":true},"application/vnd.oipf.contentaccessdownload+xml":{"source":"iana","compressible":true},"application/vnd.oipf.contentaccessstreaming+xml":{"source":"iana","compressible":true},"application/vnd.oipf.cspg-hexbinary":{"source":"iana"},"application/vnd.oipf.dae.svg+xml":{"source":"iana","compressible":true},"application/vnd.oipf.dae.xhtml+xml":{"source":"iana","compressible":true},"application/vnd.oipf.mippvcontrolmessage+xml":{"source":"iana","compressible":true},"application/vnd.oipf.pae.gem":{"source":"iana"},"application/vnd.oipf.spdiscovery+xml":{"source":"iana","compressible":true},"application/vnd.oipf.spdlist+xml":{"source":"iana","compressible":true},"application/vnd.oipf.ueprofile+xml":{"source":"iana","compressible":true},"application/vnd.oipf.userprofile+xml":{"source":"iana","compressible":true},"application/vnd.olpc-sugar":{"source":"iana","extensions":["xo"]},"application/vnd.oma-scws-config":{"source":"iana"},"application/vnd.oma-scws-http-request":{"source":"iana"},"application/vnd.oma-scws-http-response":{"source":"iana"},"application/vnd.oma.bcast.associated-procedure-parameter+xml":{"source":"iana","compressible":true},"application/vnd.oma.bcast.drm-trigger+xml":{"source":"iana","compressible":true},"application/vnd.oma.bcast.imd+xml":{"source":"iana","compressible":true},"application/vnd.oma.bcast.ltkm":{"source":"iana"},"application/vnd.oma.bcast.notification+xml":{"source":"iana","compressible":true},"application/vnd.oma.bcast.provisioningtrigger":{"source":"iana"},"application/vnd.oma.bcast.sgboot":{"source":"iana"},"application/vnd.oma.bcast.sgdd+xml":{"source":"iana","compressible":true},"application/vnd.oma.bcast.sgdu":{"source":"iana"},"application/vnd.oma.bcast.simple-symbol-container":{"source":"iana"},"application/vnd.oma.bcast.smartcard-trigger+xml":{"source":"iana","compressible":true},"application/vnd.oma.bcast.sprov+xml":{"source":"iana","compressible":true},"application/vnd.oma.bcast.stkm":{"source":"iana"},"application/vnd.oma.cab-address-book+xml":{"source":"iana","compressible":true},"application/vnd.oma.cab-feature-handler+xml":{"source":"iana","compressible":true},"application/vnd.oma.cab-pcc+xml":{"source":"iana","compressible":true},"application/vnd.oma.cab-subs-invite+xml":{"source":"iana","compressible":true},"application/vnd.oma.cab-user-prefs+xml":{"source":"iana","compressible":true},"application/vnd.oma.dcd":{"source":"iana"},"application/vnd.oma.dcdc":{"source":"iana"},"application/vnd.oma.dd2+xml":{"source":"iana","compressible":true,"extensions":["dd2"]},"application/vnd.oma.drm.risd+xml":{"source":"iana","compressible":true},"application/vnd.oma.group-usage-list+xml":{"source":"iana","compressible":true},"application/vnd.oma.lwm2m+cbor":{"source":"iana"},"application/vnd.oma.lwm2m+json":{"source":"iana","compressible":true},"application/vnd.oma.lwm2m+tlv":{"source":"iana"},"application/vnd.oma.pal+xml":{"source":"iana","compressible":true},"application/vnd.oma.poc.detailed-progress-report+xml":{"source":"iana","compressible":true},"application/vnd.oma.poc.final-report+xml":{"source":"iana","compressible":true},"application/vnd.oma.poc.groups+xml":{"source":"iana","compressible":true},"application/vnd.oma.poc.invocation-descriptor+xml":{"source":"iana","compressible":true},"application/vnd.oma.poc.optimized-progress-report+xml":{"source":"iana","compressible":true},"application/vnd.oma.push":{"source":"iana"},"application/vnd.oma.scidm.messages+xml":{"source":"iana","compressible":true},"application/vnd.oma.xcap-directory+xml":{"source":"iana","compressible":true},"application/vnd.omads-email+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/vnd.omads-file+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/vnd.omads-folder+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/vnd.omaloc-supl-init":{"source":"iana"},"application/vnd.onepager":{"source":"iana"},"application/vnd.onepagertamp":{"source":"iana"},"application/vnd.onepagertamx":{"source":"iana"},"application/vnd.onepagertat":{"source":"iana"},"application/vnd.onepagertatp":{"source":"iana"},"application/vnd.onepagertatx":{"source":"iana"},"application/vnd.openblox.game+xml":{"source":"iana","compressible":true,"extensions":["obgx"]},"application/vnd.openblox.game-binary":{"source":"iana"},"application/vnd.openeye.oeb":{"source":"iana"},"application/vnd.openofficeorg.extension":{"source":"apache","extensions":["oxt"]},"application/vnd.openstreetmap.data+xml":{"source":"iana","compressible":true,"extensions":["osm"]},"application/vnd.opentimestamps.ots":{"source":"iana"},"application/vnd.openxmlformats-officedocument.custom-properties+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.customxmlproperties+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.drawing+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.drawingml.chart+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.drawingml.diagramcolors+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.drawingml.diagramdata+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.drawingml.diagramlayout+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.drawingml.diagramstyle+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.extended-properties+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.commentauthors+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.comments+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.handoutmaster+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.notesmaster+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.notesslide+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.presentation":{"source":"iana","compressible":false,"extensions":["pptx"]},"application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.presprops+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.slide":{"source":"iana","extensions":["sldx"]},"application/vnd.openxmlformats-officedocument.presentationml.slide+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.slidelayout+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.slidemaster+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.slideshow":{"source":"iana","extensions":["ppsx"]},"application/vnd.openxmlformats-officedocument.presentationml.slideshow.main+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.slideupdateinfo+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.tablestyles+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.tags+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.template":{"source":"iana","extensions":["potx"]},"application/vnd.openxmlformats-officedocument.presentationml.template.main+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.viewprops+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.calcchain+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.externallink+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcachedefinition+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcacherecords+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.pivottable+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.querytable+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionheaders+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionlog+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedstrings+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":{"source":"iana","compressible":false,"extensions":["xlsx"]},"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.sheetmetadata+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.tablesinglecells+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.template":{"source":"iana","extensions":["xltx"]},"application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.usernames+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.volatiledependencies+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.theme+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.themeoverride+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.vmldrawing":{"source":"iana"},"application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.document":{"source":"iana","compressible":false,"extensions":["docx"]},"application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.fonttable+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.template":{"source":"iana","extensions":["dotx"]},"application/vnd.openxmlformats-officedocument.wordprocessingml.template.main+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.websettings+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-package.core-properties+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-package.digital-signature-xmlsignature+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-package.relationships+xml":{"source":"iana","compressible":true},"application/vnd.oracle.resource+json":{"source":"iana","compressible":true},"application/vnd.orange.indata":{"source":"iana"},"application/vnd.osa.netdeploy":{"source":"iana"},"application/vnd.osgeo.mapguide.package":{"source":"iana","extensions":["mgp"]},"application/vnd.osgi.bundle":{"source":"iana"},"application/vnd.osgi.dp":{"source":"iana","extensions":["dp"]},"application/vnd.osgi.subsystem":{"source":"iana","extensions":["esa"]},"application/vnd.otps.ct-kip+xml":{"source":"iana","compressible":true},"application/vnd.oxli.countgraph":{"source":"iana"},"application/vnd.pagerduty+json":{"source":"iana","compressible":true},"application/vnd.palm":{"source":"iana","extensions":["pdb","pqa","oprc"]},"application/vnd.panoply":{"source":"iana"},"application/vnd.paos.xml":{"source":"iana"},"application/vnd.patentdive":{"source":"iana"},"application/vnd.patientecommsdoc":{"source":"iana"},"application/vnd.pawaafile":{"source":"iana","extensions":["paw"]},"application/vnd.pcos":{"source":"iana"},"application/vnd.pg.format":{"source":"iana","extensions":["str"]},"application/vnd.pg.osasli":{"source":"iana","extensions":["ei6"]},"application/vnd.piaccess.application-licence":{"source":"iana"},"application/vnd.picsel":{"source":"iana","extensions":["efif"]},"application/vnd.pmi.widget":{"source":"iana","extensions":["wg"]},"application/vnd.poc.group-advertisement+xml":{"source":"iana","compressible":true},"application/vnd.pocketlearn":{"source":"iana","extensions":["plf"]},"application/vnd.powerbuilder6":{"source":"iana","extensions":["pbd"]},"application/vnd.powerbuilder6-s":{"source":"iana"},"application/vnd.powerbuilder7":{"source":"iana"},"application/vnd.powerbuilder7-s":{"source":"iana"},"application/vnd.powerbuilder75":{"source":"iana"},"application/vnd.powerbuilder75-s":{"source":"iana"},"application/vnd.preminet":{"source":"iana"},"application/vnd.previewsystems.box":{"source":"iana","extensions":["box"]},"application/vnd.proteus.magazine":{"source":"iana","extensions":["mgz"]},"application/vnd.psfs":{"source":"iana"},"application/vnd.publishare-delta-tree":{"source":"iana","extensions":["qps"]},"application/vnd.pvi.ptid1":{"source":"iana","extensions":["ptid"]},"application/vnd.pwg-multiplexed":{"source":"iana"},"application/vnd.pwg-xhtml-print+xml":{"source":"iana","compressible":true},"application/vnd.qualcomm.brew-app-res":{"source":"iana"},"application/vnd.quarantainenet":{"source":"iana"},"application/vnd.quark.quarkxpress":{"source":"iana","extensions":["qxd","qxt","qwd","qwt","qxl","qxb"]},"application/vnd.quobject-quoxdocument":{"source":"iana"},"application/vnd.radisys.moml+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-audit+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-audit-conf+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-audit-conn+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-audit-dialog+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-audit-stream+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-conf+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-dialog+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-dialog-base+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-dialog-fax-detect+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-dialog-fax-sendrecv+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-dialog-group+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-dialog-speech+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-dialog-transform+xml":{"source":"iana","compressible":true},"application/vnd.rainstor.data":{"source":"iana"},"application/vnd.rapid":{"source":"iana"},"application/vnd.rar":{"source":"iana","extensions":["rar"]},"application/vnd.realvnc.bed":{"source":"iana","extensions":["bed"]},"application/vnd.recordare.musicxml":{"source":"iana","extensions":["mxl"]},"application/vnd.recordare.musicxml+xml":{"source":"iana","compressible":true,"extensions":["musicxml"]},"application/vnd.renlearn.rlprint":{"source":"iana"},"application/vnd.resilient.logic":{"source":"iana"},"application/vnd.restful+json":{"source":"iana","compressible":true},"application/vnd.rig.cryptonote":{"source":"iana","extensions":["cryptonote"]},"application/vnd.rim.cod":{"source":"apache","extensions":["cod"]},"application/vnd.rn-realmedia":{"source":"apache","extensions":["rm"]},"application/vnd.rn-realmedia-vbr":{"source":"apache","extensions":["rmvb"]},"application/vnd.route66.link66+xml":{"source":"iana","compressible":true,"extensions":["link66"]},"application/vnd.rs-274x":{"source":"iana"},"application/vnd.ruckus.download":{"source":"iana"},"application/vnd.s3sms":{"source":"iana"},"application/vnd.sailingtracker.track":{"source":"iana","extensions":["st"]},"application/vnd.sar":{"source":"iana"},"application/vnd.sbm.cid":{"source":"iana"},"application/vnd.sbm.mid2":{"source":"iana"},"application/vnd.scribus":{"source":"iana"},"application/vnd.sealed.3df":{"source":"iana"},"application/vnd.sealed.csf":{"source":"iana"},"application/vnd.sealed.doc":{"source":"iana"},"application/vnd.sealed.eml":{"source":"iana"},"application/vnd.sealed.mht":{"source":"iana"},"application/vnd.sealed.net":{"source":"iana"},"application/vnd.sealed.ppt":{"source":"iana"},"application/vnd.sealed.tiff":{"source":"iana"},"application/vnd.sealed.xls":{"source":"iana"},"application/vnd.sealedmedia.softseal.html":{"source":"iana"},"application/vnd.sealedmedia.softseal.pdf":{"source":"iana"},"application/vnd.seemail":{"source":"iana","extensions":["see"]},"application/vnd.seis+json":{"source":"iana","compressible":true},"application/vnd.sema":{"source":"iana","extensions":["sema"]},"application/vnd.semd":{"source":"iana","extensions":["semd"]},"application/vnd.semf":{"source":"iana","extensions":["semf"]},"application/vnd.shade-save-file":{"source":"iana"},"application/vnd.shana.informed.formdata":{"source":"iana","extensions":["ifm"]},"application/vnd.shana.informed.formtemplate":{"source":"iana","extensions":["itp"]},"application/vnd.shana.informed.interchange":{"source":"iana","extensions":["iif"]},"application/vnd.shana.informed.package":{"source":"iana","extensions":["ipk"]},"application/vnd.shootproof+json":{"source":"iana","compressible":true},"application/vnd.shopkick+json":{"source":"iana","compressible":true},"application/vnd.shp":{"source":"iana"},"application/vnd.shx":{"source":"iana"},"application/vnd.sigrok.session":{"source":"iana"},"application/vnd.simtech-mindmapper":{"source":"iana","extensions":["twd","twds"]},"application/vnd.siren+json":{"source":"iana","compressible":true},"application/vnd.smaf":{"source":"iana","extensions":["mmf"]},"application/vnd.smart.notebook":{"source":"iana"},"application/vnd.smart.teacher":{"source":"iana","extensions":["teacher"]},"application/vnd.snesdev-page-table":{"source":"iana"},"application/vnd.software602.filler.form+xml":{"source":"iana","compressible":true,"extensions":["fo"]},"application/vnd.software602.filler.form-xml-zip":{"source":"iana"},"application/vnd.solent.sdkm+xml":{"source":"iana","compressible":true,"extensions":["sdkm","sdkd"]},"application/vnd.spotfire.dxp":{"source":"iana","extensions":["dxp"]},"application/vnd.spotfire.sfs":{"source":"iana","extensions":["sfs"]},"application/vnd.sqlite3":{"source":"iana"},"application/vnd.sss-cod":{"source":"iana"},"application/vnd.sss-dtf":{"source":"iana"},"application/vnd.sss-ntf":{"source":"iana"},"application/vnd.stardivision.calc":{"source":"apache","extensions":["sdc"]},"application/vnd.stardivision.draw":{"source":"apache","extensions":["sda"]},"application/vnd.stardivision.impress":{"source":"apache","extensions":["sdd"]},"application/vnd.stardivision.math":{"source":"apache","extensions":["smf"]},"application/vnd.stardivision.writer":{"source":"apache","extensions":["sdw","vor"]},"application/vnd.stardivision.writer-global":{"source":"apache","extensions":["sgl"]},"application/vnd.stepmania.package":{"source":"iana","extensions":["smzip"]},"application/vnd.stepmania.stepchart":{"source":"iana","extensions":["sm"]},"application/vnd.street-stream":{"source":"iana"},"application/vnd.sun.wadl+xml":{"source":"iana","compressible":true,"extensions":["wadl"]},"application/vnd.sun.xml.calc":{"source":"apache","extensions":["sxc"]},"application/vnd.sun.xml.calc.template":{"source":"apache","extensions":["stc"]},"application/vnd.sun.xml.draw":{"source":"apache","extensions":["sxd"]},"application/vnd.sun.xml.draw.template":{"source":"apache","extensions":["std"]},"application/vnd.sun.xml.impress":{"source":"apache","extensions":["sxi"]},"application/vnd.sun.xml.impress.template":{"source":"apache","extensions":["sti"]},"application/vnd.sun.xml.math":{"source":"apache","extensions":["sxm"]},"application/vnd.sun.xml.writer":{"source":"apache","extensions":["sxw"]},"application/vnd.sun.xml.writer.global":{"source":"apache","extensions":["sxg"]},"application/vnd.sun.xml.writer.template":{"source":"apache","extensions":["stw"]},"application/vnd.sus-calendar":{"source":"iana","extensions":["sus","susp"]},"application/vnd.svd":{"source":"iana","extensions":["svd"]},"application/vnd.swiftview-ics":{"source":"iana"},"application/vnd.sycle+xml":{"source":"iana","compressible":true},"application/vnd.syft+json":{"source":"iana","compressible":true},"application/vnd.symbian.install":{"source":"apache","extensions":["sis","sisx"]},"application/vnd.syncml+xml":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["xsm"]},"application/vnd.syncml.dm+wbxml":{"source":"iana","charset":"UTF-8","extensions":["bdm"]},"application/vnd.syncml.dm+xml":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["xdm"]},"application/vnd.syncml.dm.notification":{"source":"iana"},"application/vnd.syncml.dmddf+wbxml":{"source":"iana"},"application/vnd.syncml.dmddf+xml":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["ddf"]},"application/vnd.syncml.dmtnds+wbxml":{"source":"iana"},"application/vnd.syncml.dmtnds+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/vnd.syncml.ds.notification":{"source":"iana"},"application/vnd.tableschema+json":{"source":"iana","compressible":true},"application/vnd.tao.intent-module-archive":{"source":"iana","extensions":["tao"]},"application/vnd.tcpdump.pcap":{"source":"iana","extensions":["pcap","cap","dmp"]},"application/vnd.think-cell.ppttc+json":{"source":"iana","compressible":true},"application/vnd.tmd.mediaflex.api+xml":{"source":"iana","compressible":true},"application/vnd.tml":{"source":"iana"},"application/vnd.tmobile-livetv":{"source":"iana","extensions":["tmo"]},"application/vnd.tri.onesource":{"source":"iana"},"application/vnd.trid.tpt":{"source":"iana","extensions":["tpt"]},"application/vnd.triscape.mxs":{"source":"iana","extensions":["mxs"]},"application/vnd.trueapp":{"source":"iana","extensions":["tra"]},"application/vnd.truedoc":{"source":"iana"},"application/vnd.ubisoft.webplayer":{"source":"iana"},"application/vnd.ufdl":{"source":"iana","extensions":["ufd","ufdl"]},"application/vnd.uiq.theme":{"source":"iana","extensions":["utz"]},"application/vnd.umajin":{"source":"iana","extensions":["umj"]},"application/vnd.unity":{"source":"iana","extensions":["unityweb"]},"application/vnd.uoml+xml":{"source":"iana","compressible":true,"extensions":["uoml"]},"application/vnd.uplanet.alert":{"source":"iana"},"application/vnd.uplanet.alert-wbxml":{"source":"iana"},"application/vnd.uplanet.bearer-choice":{"source":"iana"},"application/vnd.uplanet.bearer-choice-wbxml":{"source":"iana"},"application/vnd.uplanet.cacheop":{"source":"iana"},"application/vnd.uplanet.cacheop-wbxml":{"source":"iana"},"application/vnd.uplanet.channel":{"source":"iana"},"application/vnd.uplanet.channel-wbxml":{"source":"iana"},"application/vnd.uplanet.list":{"source":"iana"},"application/vnd.uplanet.list-wbxml":{"source":"iana"},"application/vnd.uplanet.listcmd":{"source":"iana"},"application/vnd.uplanet.listcmd-wbxml":{"source":"iana"},"application/vnd.uplanet.signal":{"source":"iana"},"application/vnd.uri-map":{"source":"iana"},"application/vnd.valve.source.material":{"source":"iana"},"application/vnd.vcx":{"source":"iana","extensions":["vcx"]},"application/vnd.vd-study":{"source":"iana"},"application/vnd.vectorworks":{"source":"iana"},"application/vnd.vel+json":{"source":"iana","compressible":true},"application/vnd.verimatrix.vcas":{"source":"iana"},"application/vnd.veritone.aion+json":{"source":"iana","compressible":true},"application/vnd.veryant.thin":{"source":"iana"},"application/vnd.ves.encrypted":{"source":"iana"},"application/vnd.vidsoft.vidconference":{"source":"iana"},"application/vnd.visio":{"source":"iana","extensions":["vsd","vst","vss","vsw"]},"application/vnd.visionary":{"source":"iana","extensions":["vis"]},"application/vnd.vividence.scriptfile":{"source":"iana"},"application/vnd.vsf":{"source":"iana","extensions":["vsf"]},"application/vnd.wap.sic":{"source":"iana"},"application/vnd.wap.slc":{"source":"iana"},"application/vnd.wap.wbxml":{"source":"iana","charset":"UTF-8","extensions":["wbxml"]},"application/vnd.wap.wmlc":{"source":"iana","extensions":["wmlc"]},"application/vnd.wap.wmlscriptc":{"source":"iana","extensions":["wmlsc"]},"application/vnd.webturbo":{"source":"iana","extensions":["wtb"]},"application/vnd.wfa.dpp":{"source":"iana"},"application/vnd.wfa.p2p":{"source":"iana"},"application/vnd.wfa.wsc":{"source":"iana"},"application/vnd.windows.devicepairing":{"source":"iana"},"application/vnd.wmc":{"source":"iana"},"application/vnd.wmf.bootstrap":{"source":"iana"},"application/vnd.wolfram.mathematica":{"source":"iana"},"application/vnd.wolfram.mathematica.package":{"source":"iana"},"application/vnd.wolfram.player":{"source":"iana","extensions":["nbp"]},"application/vnd.wordperfect":{"source":"iana","extensions":["wpd"]},"application/vnd.wqd":{"source":"iana","extensions":["wqd"]},"application/vnd.wrq-hp3000-labelled":{"source":"iana"},"application/vnd.wt.stf":{"source":"iana","extensions":["stf"]},"application/vnd.wv.csp+wbxml":{"source":"iana"},"application/vnd.wv.csp+xml":{"source":"iana","compressible":true},"application/vnd.wv.ssp+xml":{"source":"iana","compressible":true},"application/vnd.xacml+json":{"source":"iana","compressible":true},"application/vnd.xara":{"source":"iana","extensions":["xar"]},"application/vnd.xfdl":{"source":"iana","extensions":["xfdl"]},"application/vnd.xfdl.webform":{"source":"iana"},"application/vnd.xmi+xml":{"source":"iana","compressible":true},"application/vnd.xmpie.cpkg":{"source":"iana"},"application/vnd.xmpie.dpkg":{"source":"iana"},"application/vnd.xmpie.plan":{"source":"iana"},"application/vnd.xmpie.ppkg":{"source":"iana"},"application/vnd.xmpie.xlim":{"source":"iana"},"application/vnd.yamaha.hv-dic":{"source":"iana","extensions":["hvd"]},"application/vnd.yamaha.hv-script":{"source":"iana","extensions":["hvs"]},"application/vnd.yamaha.hv-voice":{"source":"iana","extensions":["hvp"]},"application/vnd.yamaha.openscoreformat":{"source":"iana","extensions":["osf"]},"application/vnd.yamaha.openscoreformat.osfpvg+xml":{"source":"iana","compressible":true,"extensions":["osfpvg"]},"application/vnd.yamaha.remote-setup":{"source":"iana"},"application/vnd.yamaha.smaf-audio":{"source":"iana","extensions":["saf"]},"application/vnd.yamaha.smaf-phrase":{"source":"iana","extensions":["spf"]},"application/vnd.yamaha.through-ngn":{"source":"iana"},"application/vnd.yamaha.tunnel-udpencap":{"source":"iana"},"application/vnd.yaoweme":{"source":"iana"},"application/vnd.yellowriver-custom-menu":{"source":"iana","extensions":["cmp"]},"application/vnd.youtube.yt":{"source":"iana"},"application/vnd.zul":{"source":"iana","extensions":["zir","zirz"]},"application/vnd.zzazz.deck+xml":{"source":"iana","compressible":true,"extensions":["zaz"]},"application/voicexml+xml":{"source":"iana","compressible":true,"extensions":["vxml"]},"application/voucher-cms+json":{"source":"iana","compressible":true},"application/vq-rtcpxr":{"source":"iana"},"application/wasm":{"source":"iana","compressible":true,"extensions":["wasm"]},"application/watcherinfo+xml":{"source":"iana","compressible":true,"extensions":["wif"]},"application/webpush-options+json":{"source":"iana","compressible":true},"application/whoispp-query":{"source":"iana"},"application/whoispp-response":{"source":"iana"},"application/widget":{"source":"iana","extensions":["wgt"]},"application/winhlp":{"source":"apache","extensions":["hlp"]},"application/wita":{"source":"iana"},"application/wordperfect5.1":{"source":"iana"},"application/wsdl+xml":{"source":"iana","compressible":true,"extensions":["wsdl"]},"application/wspolicy+xml":{"source":"iana","compressible":true,"extensions":["wspolicy"]},"application/x-7z-compressed":{"source":"apache","compressible":false,"extensions":["7z"]},"application/x-abiword":{"source":"apache","extensions":["abw"]},"application/x-ace-compressed":{"source":"apache","extensions":["ace"]},"application/x-amf":{"source":"apache"},"application/x-apple-diskimage":{"source":"apache","extensions":["dmg"]},"application/x-arj":{"compressible":false,"extensions":["arj"]},"application/x-authorware-bin":{"source":"apache","extensions":["aab","x32","u32","vox"]},"application/x-authorware-map":{"source":"apache","extensions":["aam"]},"application/x-authorware-seg":{"source":"apache","extensions":["aas"]},"application/x-bcpio":{"source":"apache","extensions":["bcpio"]},"application/x-bdoc":{"compressible":false,"extensions":["bdoc"]},"application/x-bittorrent":{"source":"apache","extensions":["torrent"]},"application/x-blorb":{"source":"apache","extensions":["blb","blorb"]},"application/x-bzip":{"source":"apache","compressible":false,"extensions":["bz"]},"application/x-bzip2":{"source":"apache","compressible":false,"extensions":["bz2","boz"]},"application/x-cbr":{"source":"apache","extensions":["cbr","cba","cbt","cbz","cb7"]},"application/x-cdlink":{"source":"apache","extensions":["vcd"]},"application/x-cfs-compressed":{"source":"apache","extensions":["cfs"]},"application/x-chat":{"source":"apache","extensions":["chat"]},"application/x-chess-pgn":{"source":"apache","extensions":["pgn"]},"application/x-chrome-extension":{"extensions":["crx"]},"application/x-cocoa":{"source":"nginx","extensions":["cco"]},"application/x-compress":{"source":"apache"},"application/x-conference":{"source":"apache","extensions":["nsc"]},"application/x-cpio":{"source":"apache","extensions":["cpio"]},"application/x-csh":{"source":"apache","extensions":["csh"]},"application/x-deb":{"compressible":false},"application/x-debian-package":{"source":"apache","extensions":["deb","udeb"]},"application/x-dgc-compressed":{"source":"apache","extensions":["dgc"]},"application/x-director":{"source":"apache","extensions":["dir","dcr","dxr","cst","cct","cxt","w3d","fgd","swa"]},"application/x-doom":{"source":"apache","extensions":["wad"]},"application/x-dtbncx+xml":{"source":"apache","compressible":true,"extensions":["ncx"]},"application/x-dtbook+xml":{"source":"apache","compressible":true,"extensions":["dtb"]},"application/x-dtbresource+xml":{"source":"apache","compressible":true,"extensions":["res"]},"application/x-dvi":{"source":"apache","compressible":false,"extensions":["dvi"]},"application/x-envoy":{"source":"apache","extensions":["evy"]},"application/x-eva":{"source":"apache","extensions":["eva"]},"application/x-font-bdf":{"source":"apache","extensions":["bdf"]},"application/x-font-dos":{"source":"apache"},"application/x-font-framemaker":{"source":"apache"},"application/x-font-ghostscript":{"source":"apache","extensions":["gsf"]},"application/x-font-libgrx":{"source":"apache"},"application/x-font-linux-psf":{"source":"apache","extensions":["psf"]},"application/x-font-pcf":{"source":"apache","extensions":["pcf"]},"application/x-font-snf":{"source":"apache","extensions":["snf"]},"application/x-font-speedo":{"source":"apache"},"application/x-font-sunos-news":{"source":"apache"},"application/x-font-type1":{"source":"apache","extensions":["pfa","pfb","pfm","afm"]},"application/x-font-vfont":{"source":"apache"},"application/x-freearc":{"source":"apache","extensions":["arc"]},"application/x-futuresplash":{"source":"apache","extensions":["spl"]},"application/x-gca-compressed":{"source":"apache","extensions":["gca"]},"application/x-glulx":{"source":"apache","extensions":["ulx"]},"application/x-gnumeric":{"source":"apache","extensions":["gnumeric"]},"application/x-gramps-xml":{"source":"apache","extensions":["gramps"]},"application/x-gtar":{"source":"apache","extensions":["gtar"]},"application/x-gzip":{"source":"apache"},"application/x-hdf":{"source":"apache","extensions":["hdf"]},"application/x-httpd-php":{"compressible":true,"extensions":["php"]},"application/x-install-instructions":{"source":"apache","extensions":["install"]},"application/x-iso9660-image":{"source":"apache","extensions":["iso"]},"application/x-iwork-keynote-sffkey":{"extensions":["key"]},"application/x-iwork-numbers-sffnumbers":{"extensions":["numbers"]},"application/x-iwork-pages-sffpages":{"extensions":["pages"]},"application/x-java-archive-diff":{"source":"nginx","extensions":["jardiff"]},"application/x-java-jnlp-file":{"source":"apache","compressible":false,"extensions":["jnlp"]},"application/x-javascript":{"compressible":true},"application/x-keepass2":{"extensions":["kdbx"]},"application/x-latex":{"source":"apache","compressible":false,"extensions":["latex"]},"application/x-lua-bytecode":{"extensions":["luac"]},"application/x-lzh-compressed":{"source":"apache","extensions":["lzh","lha"]},"application/x-makeself":{"source":"nginx","extensions":["run"]},"application/x-mie":{"source":"apache","extensions":["mie"]},"application/x-mobipocket-ebook":{"source":"apache","extensions":["prc","mobi"]},"application/x-mpegurl":{"compressible":false},"application/x-ms-application":{"source":"apache","extensions":["application"]},"application/x-ms-shortcut":{"source":"apache","extensions":["lnk"]},"application/x-ms-wmd":{"source":"apache","extensions":["wmd"]},"application/x-ms-wmz":{"source":"apache","extensions":["wmz"]},"application/x-ms-xbap":{"source":"apache","extensions":["xbap"]},"application/x-msaccess":{"source":"apache","extensions":["mdb"]},"application/x-msbinder":{"source":"apache","extensions":["obd"]},"application/x-mscardfile":{"source":"apache","extensions":["crd"]},"application/x-msclip":{"source":"apache","extensions":["clp"]},"application/x-msdos-program":{"extensions":["exe"]},"application/x-msdownload":{"source":"apache","extensions":["exe","dll","com","bat","msi"]},"application/x-msmediaview":{"source":"apache","extensions":["mvb","m13","m14"]},"application/x-msmetafile":{"source":"apache","extensions":["wmf","wmz","emf","emz"]},"application/x-msmoney":{"source":"apache","extensions":["mny"]},"application/x-mspublisher":{"source":"apache","extensions":["pub"]},"application/x-msschedule":{"source":"apache","extensions":["scd"]},"application/x-msterminal":{"source":"apache","extensions":["trm"]},"application/x-mswrite":{"source":"apache","extensions":["wri"]},"application/x-netcdf":{"source":"apache","extensions":["nc","cdf"]},"application/x-ns-proxy-autoconfig":{"compressible":true,"extensions":["pac"]},"application/x-nzb":{"source":"apache","extensions":["nzb"]},"application/x-perl":{"source":"nginx","extensions":["pl","pm"]},"application/x-pilot":{"source":"nginx","extensions":["prc","pdb"]},"application/x-pkcs12":{"source":"apache","compressible":false,"extensions":["p12","pfx"]},"application/x-pkcs7-certificates":{"source":"apache","extensions":["p7b","spc"]},"application/x-pkcs7-certreqresp":{"source":"apache","extensions":["p7r"]},"application/x-pki-message":{"source":"iana"},"application/x-rar-compressed":{"source":"apache","compressible":false,"extensions":["rar"]},"application/x-redhat-package-manager":{"source":"nginx","extensions":["rpm"]},"application/x-research-info-systems":{"source":"apache","extensions":["ris"]},"application/x-sea":{"source":"nginx","extensions":["sea"]},"application/x-sh":{"source":"apache","compressible":true,"extensions":["sh"]},"application/x-shar":{"source":"apache","extensions":["shar"]},"application/x-shockwave-flash":{"source":"apache","compressible":false,"extensions":["swf"]},"application/x-silverlight-app":{"source":"apache","extensions":["xap"]},"application/x-sql":{"source":"apache","extensions":["sql"]},"application/x-stuffit":{"source":"apache","compressible":false,"extensions":["sit"]},"application/x-stuffitx":{"source":"apache","extensions":["sitx"]},"application/x-subrip":{"source":"apache","extensions":["srt"]},"application/x-sv4cpio":{"source":"apache","extensions":["sv4cpio"]},"application/x-sv4crc":{"source":"apache","extensions":["sv4crc"]},"application/x-t3vm-image":{"source":"apache","extensions":["t3"]},"application/x-tads":{"source":"apache","extensions":["gam"]},"application/x-tar":{"source":"apache","compressible":true,"extensions":["tar"]},"application/x-tcl":{"source":"apache","extensions":["tcl","tk"]},"application/x-tex":{"source":"apache","extensions":["tex"]},"application/x-tex-tfm":{"source":"apache","extensions":["tfm"]},"application/x-texinfo":{"source":"apache","extensions":["texinfo","texi"]},"application/x-tgif":{"source":"apache","extensions":["obj"]},"application/x-ustar":{"source":"apache","extensions":["ustar"]},"application/x-virtualbox-hdd":{"compressible":true,"extensions":["hdd"]},"application/x-virtualbox-ova":{"compressible":true,"extensions":["ova"]},"application/x-virtualbox-ovf":{"compressible":true,"extensions":["ovf"]},"application/x-virtualbox-vbox":{"compressible":true,"extensions":["vbox"]},"application/x-virtualbox-vbox-extpack":{"compressible":false,"extensions":["vbox-extpack"]},"application/x-virtualbox-vdi":{"compressible":true,"extensions":["vdi"]},"application/x-virtualbox-vhd":{"compressible":true,"extensions":["vhd"]},"application/x-virtualbox-vmdk":{"compressible":true,"extensions":["vmdk"]},"application/x-wais-source":{"source":"apache","extensions":["src"]},"application/x-web-app-manifest+json":{"compressible":true,"extensions":["webapp"]},"application/x-www-form-urlencoded":{"source":"iana","compressible":true},"application/x-x509-ca-cert":{"source":"iana","extensions":["der","crt","pem"]},"application/x-x509-ca-ra-cert":{"source":"iana"},"application/x-x509-next-ca-cert":{"source":"iana"},"application/x-xfig":{"source":"apache","extensions":["fig"]},"application/x-xliff+xml":{"source":"apache","compressible":true,"extensions":["xlf"]},"application/x-xpinstall":{"source":"apache","compressible":false,"extensions":["xpi"]},"application/x-xz":{"source":"apache","extensions":["xz"]},"application/x-zmachine":{"source":"apache","extensions":["z1","z2","z3","z4","z5","z6","z7","z8"]},"application/x400-bp":{"source":"iana"},"application/xacml+xml":{"source":"iana","compressible":true},"application/xaml+xml":{"source":"apache","compressible":true,"extensions":["xaml"]},"application/xcap-att+xml":{"source":"iana","compressible":true,"extensions":["xav"]},"application/xcap-caps+xml":{"source":"iana","compressible":true,"extensions":["xca"]},"application/xcap-diff+xml":{"source":"iana","compressible":true,"extensions":["xdf"]},"application/xcap-el+xml":{"source":"iana","compressible":true,"extensions":["xel"]},"application/xcap-error+xml":{"source":"iana","compressible":true},"application/xcap-ns+xml":{"source":"iana","compressible":true,"extensions":["xns"]},"application/xcon-conference-info+xml":{"source":"iana","compressible":true},"application/xcon-conference-info-diff+xml":{"source":"iana","compressible":true},"application/xenc+xml":{"source":"iana","compressible":true,"extensions":["xenc"]},"application/xhtml+xml":{"source":"iana","compressible":true,"extensions":["xhtml","xht"]},"application/xhtml-voice+xml":{"source":"apache","compressible":true},"application/xliff+xml":{"source":"iana","compressible":true,"extensions":["xlf"]},"application/xml":{"source":"iana","compressible":true,"extensions":["xml","xsl","xsd","rng"]},"application/xml-dtd":{"source":"iana","compressible":true,"extensions":["dtd"]},"application/xml-external-parsed-entity":{"source":"iana"},"application/xml-patch+xml":{"source":"iana","compressible":true},"application/xmpp+xml":{"source":"iana","compressible":true},"application/xop+xml":{"source":"iana","compressible":true,"extensions":["xop"]},"application/xproc+xml":{"source":"apache","compressible":true,"extensions":["xpl"]},"application/xslt+xml":{"source":"iana","compressible":true,"extensions":["xsl","xslt"]},"application/xspf+xml":{"source":"apache","compressible":true,"extensions":["xspf"]},"application/xv+xml":{"source":"iana","compressible":true,"extensions":["mxml","xhvml","xvml","xvm"]},"application/yang":{"source":"iana","extensions":["yang"]},"application/yang-data+json":{"source":"iana","compressible":true},"application/yang-data+xml":{"source":"iana","compressible":true},"application/yang-patch+json":{"source":"iana","compressible":true},"application/yang-patch+xml":{"source":"iana","compressible":true},"application/yin+xml":{"source":"iana","compressible":true,"extensions":["yin"]},"application/zip":{"source":"iana","compressible":false,"extensions":["zip"]},"application/zlib":{"source":"iana"},"application/zstd":{"source":"iana"},"audio/1d-interleaved-parityfec":{"source":"iana"},"audio/32kadpcm":{"source":"iana"},"audio/3gpp":{"source":"iana","compressible":false,"extensions":["3gpp"]},"audio/3gpp2":{"source":"iana"},"audio/aac":{"source":"iana"},"audio/ac3":{"source":"iana"},"audio/adpcm":{"source":"apache","extensions":["adp"]},"audio/amr":{"source":"iana","extensions":["amr"]},"audio/amr-wb":{"source":"iana"},"audio/amr-wb+":{"source":"iana"},"audio/aptx":{"source":"iana"},"audio/asc":{"source":"iana"},"audio/atrac-advanced-lossless":{"source":"iana"},"audio/atrac-x":{"source":"iana"},"audio/atrac3":{"source":"iana"},"audio/basic":{"source":"iana","compressible":false,"extensions":["au","snd"]},"audio/bv16":{"source":"iana"},"audio/bv32":{"source":"iana"},"audio/clearmode":{"source":"iana"},"audio/cn":{"source":"iana"},"audio/dat12":{"source":"iana"},"audio/dls":{"source":"iana"},"audio/dsr-es201108":{"source":"iana"},"audio/dsr-es202050":{"source":"iana"},"audio/dsr-es202211":{"source":"iana"},"audio/dsr-es202212":{"source":"iana"},"audio/dv":{"source":"iana"},"audio/dvi4":{"source":"iana"},"audio/eac3":{"source":"iana"},"audio/encaprtp":{"source":"iana"},"audio/evrc":{"source":"iana"},"audio/evrc-qcp":{"source":"iana"},"audio/evrc0":{"source":"iana"},"audio/evrc1":{"source":"iana"},"audio/evrcb":{"source":"iana"},"audio/evrcb0":{"source":"iana"},"audio/evrcb1":{"source":"iana"},"audio/evrcnw":{"source":"iana"},"audio/evrcnw0":{"source":"iana"},"audio/evrcnw1":{"source":"iana"},"audio/evrcwb":{"source":"iana"},"audio/evrcwb0":{"source":"iana"},"audio/evrcwb1":{"source":"iana"},"audio/evs":{"source":"iana"},"audio/flexfec":{"source":"iana"},"audio/fwdred":{"source":"iana"},"audio/g711-0":{"source":"iana"},"audio/g719":{"source":"iana"},"audio/g722":{"source":"iana"},"audio/g7221":{"source":"iana"},"audio/g723":{"source":"iana"},"audio/g726-16":{"source":"iana"},"audio/g726-24":{"source":"iana"},"audio/g726-32":{"source":"iana"},"audio/g726-40":{"source":"iana"},"audio/g728":{"source":"iana"},"audio/g729":{"source":"iana"},"audio/g7291":{"source":"iana"},"audio/g729d":{"source":"iana"},"audio/g729e":{"source":"iana"},"audio/gsm":{"source":"iana"},"audio/gsm-efr":{"source":"iana"},"audio/gsm-hr-08":{"source":"iana"},"audio/ilbc":{"source":"iana"},"audio/ip-mr_v2.5":{"source":"iana"},"audio/isac":{"source":"apache"},"audio/l16":{"source":"iana"},"audio/l20":{"source":"iana"},"audio/l24":{"source":"iana","compressible":false},"audio/l8":{"source":"iana"},"audio/lpc":{"source":"iana"},"audio/melp":{"source":"iana"},"audio/melp1200":{"source":"iana"},"audio/melp2400":{"source":"iana"},"audio/melp600":{"source":"iana"},"audio/mhas":{"source":"iana"},"audio/midi":{"source":"apache","extensions":["mid","midi","kar","rmi"]},"audio/mobile-xmf":{"source":"iana","extensions":["mxmf"]},"audio/mp3":{"compressible":false,"extensions":["mp3"]},"audio/mp4":{"source":"iana","compressible":false,"extensions":["m4a","mp4a"]},"audio/mp4a-latm":{"source":"iana"},"audio/mpa":{"source":"iana"},"audio/mpa-robust":{"source":"iana"},"audio/mpeg":{"source":"iana","compressible":false,"extensions":["mpga","mp2","mp2a","mp3","m2a","m3a"]},"audio/mpeg4-generic":{"source":"iana"},"audio/musepack":{"source":"apache"},"audio/ogg":{"source":"iana","compressible":false,"extensions":["oga","ogg","spx","opus"]},"audio/opus":{"source":"iana"},"audio/parityfec":{"source":"iana"},"audio/pcma":{"source":"iana"},"audio/pcma-wb":{"source":"iana"},"audio/pcmu":{"source":"iana"},"audio/pcmu-wb":{"source":"iana"},"audio/prs.sid":{"source":"iana"},"audio/qcelp":{"source":"iana"},"audio/raptorfec":{"source":"iana"},"audio/red":{"source":"iana"},"audio/rtp-enc-aescm128":{"source":"iana"},"audio/rtp-midi":{"source":"iana"},"audio/rtploopback":{"source":"iana"},"audio/rtx":{"source":"iana"},"audio/s3m":{"source":"apache","extensions":["s3m"]},"audio/scip":{"source":"iana"},"audio/silk":{"source":"apache","extensions":["sil"]},"audio/smv":{"source":"iana"},"audio/smv-qcp":{"source":"iana"},"audio/smv0":{"source":"iana"},"audio/sofa":{"source":"iana"},"audio/sp-midi":{"source":"iana"},"audio/speex":{"source":"iana"},"audio/t140c":{"source":"iana"},"audio/t38":{"source":"iana"},"audio/telephone-event":{"source":"iana"},"audio/tetra_acelp":{"source":"iana"},"audio/tetra_acelp_bb":{"source":"iana"},"audio/tone":{"source":"iana"},"audio/tsvcis":{"source":"iana"},"audio/uemclip":{"source":"iana"},"audio/ulpfec":{"source":"iana"},"audio/usac":{"source":"iana"},"audio/vdvi":{"source":"iana"},"audio/vmr-wb":{"source":"iana"},"audio/vnd.3gpp.iufp":{"source":"iana"},"audio/vnd.4sb":{"source":"iana"},"audio/vnd.audiokoz":{"source":"iana"},"audio/vnd.celp":{"source":"iana"},"audio/vnd.cisco.nse":{"source":"iana"},"audio/vnd.cmles.radio-events":{"source":"iana"},"audio/vnd.cns.anp1":{"source":"iana"},"audio/vnd.cns.inf1":{"source":"iana"},"audio/vnd.dece.audio":{"source":"iana","extensions":["uva","uvva"]},"audio/vnd.digital-winds":{"source":"iana","extensions":["eol"]},"audio/vnd.dlna.adts":{"source":"iana"},"audio/vnd.dolby.heaac.1":{"source":"iana"},"audio/vnd.dolby.heaac.2":{"source":"iana"},"audio/vnd.dolby.mlp":{"source":"iana"},"audio/vnd.dolby.mps":{"source":"iana"},"audio/vnd.dolby.pl2":{"source":"iana"},"audio/vnd.dolby.pl2x":{"source":"iana"},"audio/vnd.dolby.pl2z":{"source":"iana"},"audio/vnd.dolby.pulse.1":{"source":"iana"},"audio/vnd.dra":{"source":"iana","extensions":["dra"]},"audio/vnd.dts":{"source":"iana","extensions":["dts"]},"audio/vnd.dts.hd":{"source":"iana","extensions":["dtshd"]},"audio/vnd.dts.uhd":{"source":"iana"},"audio/vnd.dvb.file":{"source":"iana"},"audio/vnd.everad.plj":{"source":"iana"},"audio/vnd.hns.audio":{"source":"iana"},"audio/vnd.lucent.voice":{"source":"iana","extensions":["lvp"]},"audio/vnd.ms-playready.media.pya":{"source":"iana","extensions":["pya"]},"audio/vnd.nokia.mobile-xmf":{"source":"iana"},"audio/vnd.nortel.vbk":{"source":"iana"},"audio/vnd.nuera.ecelp4800":{"source":"iana","extensions":["ecelp4800"]},"audio/vnd.nuera.ecelp7470":{"source":"iana","extensions":["ecelp7470"]},"audio/vnd.nuera.ecelp9600":{"source":"iana","extensions":["ecelp9600"]},"audio/vnd.octel.sbc":{"source":"iana"},"audio/vnd.presonus.multitrack":{"source":"iana"},"audio/vnd.qcelp":{"source":"iana"},"audio/vnd.rhetorex.32kadpcm":{"source":"iana"},"audio/vnd.rip":{"source":"iana","extensions":["rip"]},"audio/vnd.rn-realaudio":{"compressible":false},"audio/vnd.sealedmedia.softseal.mpeg":{"source":"iana"},"audio/vnd.vmx.cvsd":{"source":"iana"},"audio/vnd.wave":{"compressible":false},"audio/vorbis":{"source":"iana","compressible":false},"audio/vorbis-config":{"source":"iana"},"audio/wav":{"compressible":false,"extensions":["wav"]},"audio/wave":{"compressible":false,"extensions":["wav"]},"audio/webm":{"source":"apache","compressible":false,"extensions":["weba"]},"audio/x-aac":{"source":"apache","compressible":false,"extensions":["aac"]},"audio/x-aiff":{"source":"apache","extensions":["aif","aiff","aifc"]},"audio/x-caf":{"source":"apache","compressible":false,"extensions":["caf"]},"audio/x-flac":{"source":"apache","extensions":["flac"]},"audio/x-m4a":{"source":"nginx","extensions":["m4a"]},"audio/x-matroska":{"source":"apache","extensions":["mka"]},"audio/x-mpegurl":{"source":"apache","extensions":["m3u"]},"audio/x-ms-wax":{"source":"apache","extensions":["wax"]},"audio/x-ms-wma":{"source":"apache","extensions":["wma"]},"audio/x-pn-realaudio":{"source":"apache","extensions":["ram","ra"]},"audio/x-pn-realaudio-plugin":{"source":"apache","extensions":["rmp"]},"audio/x-realaudio":{"source":"nginx","extensions":["ra"]},"audio/x-tta":{"source":"apache"},"audio/x-wav":{"source":"apache","extensions":["wav"]},"audio/xm":{"source":"apache","extensions":["xm"]},"chemical/x-cdx":{"source":"apache","extensions":["cdx"]},"chemical/x-cif":{"source":"apache","extensions":["cif"]},"chemical/x-cmdf":{"source":"apache","extensions":["cmdf"]},"chemical/x-cml":{"source":"apache","extensions":["cml"]},"chemical/x-csml":{"source":"apache","extensions":["csml"]},"chemical/x-pdb":{"source":"apache"},"chemical/x-xyz":{"source":"apache","extensions":["xyz"]},"font/collection":{"source":"iana","extensions":["ttc"]},"font/otf":{"source":"iana","compressible":true,"extensions":["otf"]},"font/sfnt":{"source":"iana"},"font/ttf":{"source":"iana","compressible":true,"extensions":["ttf"]},"font/woff":{"source":"iana","extensions":["woff"]},"font/woff2":{"source":"iana","extensions":["woff2"]},"image/aces":{"source":"iana","extensions":["exr"]},"image/apng":{"compressible":false,"extensions":["apng"]},"image/avci":{"source":"iana","extensions":["avci"]},"image/avcs":{"source":"iana","extensions":["avcs"]},"image/avif":{"source":"iana","compressible":false,"extensions":["avif"]},"image/bmp":{"source":"iana","compressible":true,"extensions":["bmp"]},"image/cgm":{"source":"iana","extensions":["cgm"]},"image/dicom-rle":{"source":"iana","extensions":["drle"]},"image/emf":{"source":"iana","extensions":["emf"]},"image/fits":{"source":"iana","extensions":["fits"]},"image/g3fax":{"source":"iana","extensions":["g3"]},"image/gif":{"source":"iana","compressible":false,"extensions":["gif"]},"image/heic":{"source":"iana","extensions":["heic"]},"image/heic-sequence":{"source":"iana","extensions":["heics"]},"image/heif":{"source":"iana","extensions":["heif"]},"image/heif-sequence":{"source":"iana","extensions":["heifs"]},"image/hej2k":{"source":"iana","extensions":["hej2"]},"image/hsj2":{"source":"iana","extensions":["hsj2"]},"image/ief":{"source":"iana","extensions":["ief"]},"image/jls":{"source":"iana","extensions":["jls"]},"image/jp2":{"source":"iana","compressible":false,"extensions":["jp2","jpg2"]},"image/jpeg":{"source":"iana","compressible":false,"extensions":["jpeg","jpg","jpe"]},"image/jph":{"source":"iana","extensions":["jph"]},"image/jphc":{"source":"iana","extensions":["jhc"]},"image/jpm":{"source":"iana","compressible":false,"extensions":["jpm"]},"image/jpx":{"source":"iana","compressible":false,"extensions":["jpx","jpf"]},"image/jxr":{"source":"iana","extensions":["jxr"]},"image/jxra":{"source":"iana","extensions":["jxra"]},"image/jxrs":{"source":"iana","extensions":["jxrs"]},"image/jxs":{"source":"iana","extensions":["jxs"]},"image/jxsc":{"source":"iana","extensions":["jxsc"]},"image/jxsi":{"source":"iana","extensions":["jxsi"]},"image/jxss":{"source":"iana","extensions":["jxss"]},"image/ktx":{"source":"iana","extensions":["ktx"]},"image/ktx2":{"source":"iana","extensions":["ktx2"]},"image/naplps":{"source":"iana"},"image/pjpeg":{"compressible":false},"image/png":{"source":"iana","compressible":false,"extensions":["png"]},"image/prs.btif":{"source":"iana","extensions":["btif"]},"image/prs.pti":{"source":"iana","extensions":["pti"]},"image/pwg-raster":{"source":"iana"},"image/sgi":{"source":"apache","extensions":["sgi"]},"image/svg+xml":{"source":"iana","compressible":true,"extensions":["svg","svgz"]},"image/t38":{"source":"iana","extensions":["t38"]},"image/tiff":{"source":"iana","compressible":false,"extensions":["tif","tiff"]},"image/tiff-fx":{"source":"iana","extensions":["tfx"]},"image/vnd.adobe.photoshop":{"source":"iana","compressible":true,"extensions":["psd"]},"image/vnd.airzip.accelerator.azv":{"source":"iana","extensions":["azv"]},"image/vnd.cns.inf2":{"source":"iana"},"image/vnd.dece.graphic":{"source":"iana","extensions":["uvi","uvvi","uvg","uvvg"]},"image/vnd.djvu":{"source":"iana","extensions":["djvu","djv"]},"image/vnd.dvb.subtitle":{"source":"iana","extensions":["sub"]},"image/vnd.dwg":{"source":"iana","extensions":["dwg"]},"image/vnd.dxf":{"source":"iana","extensions":["dxf"]},"image/vnd.fastbidsheet":{"source":"iana","extensions":["fbs"]},"image/vnd.fpx":{"source":"iana","extensions":["fpx"]},"image/vnd.fst":{"source":"iana","extensions":["fst"]},"image/vnd.fujixerox.edmics-mmr":{"source":"iana","extensions":["mmr"]},"image/vnd.fujixerox.edmics-rlc":{"source":"iana","extensions":["rlc"]},"image/vnd.globalgraphics.pgb":{"source":"iana"},"image/vnd.microsoft.icon":{"source":"iana","compressible":true,"extensions":["ico"]},"image/vnd.mix":{"source":"iana"},"image/vnd.mozilla.apng":{"source":"iana"},"image/vnd.ms-dds":{"compressible":true,"extensions":["dds"]},"image/vnd.ms-modi":{"source":"iana","extensions":["mdi"]},"image/vnd.ms-photo":{"source":"apache","extensions":["wdp"]},"image/vnd.net-fpx":{"source":"iana","extensions":["npx"]},"image/vnd.pco.b16":{"source":"iana","extensions":["b16"]},"image/vnd.radiance":{"source":"iana"},"image/vnd.sealed.png":{"source":"iana"},"image/vnd.sealedmedia.softseal.gif":{"source":"iana"},"image/vnd.sealedmedia.softseal.jpg":{"source":"iana"},"image/vnd.svf":{"source":"iana"},"image/vnd.tencent.tap":{"source":"iana","extensions":["tap"]},"image/vnd.valve.source.texture":{"source":"iana","extensions":["vtf"]},"image/vnd.wap.wbmp":{"source":"iana","extensions":["wbmp"]},"image/vnd.xiff":{"source":"iana","extensions":["xif"]},"image/vnd.zbrush.pcx":{"source":"iana","extensions":["pcx"]},"image/webp":{"source":"apache","extensions":["webp"]},"image/wmf":{"source":"iana","extensions":["wmf"]},"image/x-3ds":{"source":"apache","extensions":["3ds"]},"image/x-cmu-raster":{"source":"apache","extensions":["ras"]},"image/x-cmx":{"source":"apache","extensions":["cmx"]},"image/x-freehand":{"source":"apache","extensions":["fh","fhc","fh4","fh5","fh7"]},"image/x-icon":{"source":"apache","compressible":true,"extensions":["ico"]},"image/x-jng":{"source":"nginx","extensions":["jng"]},"image/x-mrsid-image":{"source":"apache","extensions":["sid"]},"image/x-ms-bmp":{"source":"nginx","compressible":true,"extensions":["bmp"]},"image/x-pcx":{"source":"apache","extensions":["pcx"]},"image/x-pict":{"source":"apache","extensions":["pic","pct"]},"image/x-portable-anymap":{"source":"apache","extensions":["pnm"]},"image/x-portable-bitmap":{"source":"apache","extensions":["pbm"]},"image/x-portable-graymap":{"source":"apache","extensions":["pgm"]},"image/x-portable-pixmap":{"source":"apache","extensions":["ppm"]},"image/x-rgb":{"source":"apache","extensions":["rgb"]},"image/x-tga":{"source":"apache","extensions":["tga"]},"image/x-xbitmap":{"source":"apache","extensions":["xbm"]},"image/x-xcf":{"compressible":false},"image/x-xpixmap":{"source":"apache","extensions":["xpm"]},"image/x-xwindowdump":{"source":"apache","extensions":["xwd"]},"message/cpim":{"source":"iana"},"message/delivery-status":{"source":"iana"},"message/disposition-notification":{"source":"iana","extensions":["disposition-notification"]},"message/external-body":{"source":"iana"},"message/feedback-report":{"source":"iana"},"message/global":{"source":"iana","extensions":["u8msg"]},"message/global-delivery-status":{"source":"iana","extensions":["u8dsn"]},"message/global-disposition-notification":{"source":"iana","extensions":["u8mdn"]},"message/global-headers":{"source":"iana","extensions":["u8hdr"]},"message/http":{"source":"iana","compressible":false},"message/imdn+xml":{"source":"iana","compressible":true},"message/news":{"source":"iana"},"message/partial":{"source":"iana","compressible":false},"message/rfc822":{"source":"iana","compressible":true,"extensions":["eml","mime"]},"message/s-http":{"source":"iana"},"message/sip":{"source":"iana"},"message/sipfrag":{"source":"iana"},"message/tracking-status":{"source":"iana"},"message/vnd.si.simp":{"source":"iana"},"message/vnd.wfa.wsc":{"source":"iana","extensions":["wsc"]},"model/3mf":{"source":"iana","extensions":["3mf"]},"model/e57":{"source":"iana"},"model/gltf+json":{"source":"iana","compressible":true,"extensions":["gltf"]},"model/gltf-binary":{"source":"iana","compressible":true,"extensions":["glb"]},"model/iges":{"source":"iana","compressible":false,"extensions":["igs","iges"]},"model/mesh":{"source":"iana","compressible":false,"extensions":["msh","mesh","silo"]},"model/mtl":{"source":"iana","extensions":["mtl"]},"model/obj":{"source":"iana","extensions":["obj"]},"model/step":{"source":"iana"},"model/step+xml":{"source":"iana","compressible":true,"extensions":["stpx"]},"model/step+zip":{"source":"iana","compressible":false,"extensions":["stpz"]},"model/step-xml+zip":{"source":"iana","compressible":false,"extensions":["stpxz"]},"model/stl":{"source":"iana","extensions":["stl"]},"model/vnd.collada+xml":{"source":"iana","compressible":true,"extensions":["dae"]},"model/vnd.dwf":{"source":"iana","extensions":["dwf"]},"model/vnd.flatland.3dml":{"source":"iana"},"model/vnd.gdl":{"source":"iana","extensions":["gdl"]},"model/vnd.gs-gdl":{"source":"apache"},"model/vnd.gs.gdl":{"source":"iana"},"model/vnd.gtw":{"source":"iana","extensions":["gtw"]},"model/vnd.moml+xml":{"source":"iana","compressible":true},"model/vnd.mts":{"source":"iana","extensions":["mts"]},"model/vnd.opengex":{"source":"iana","extensions":["ogex"]},"model/vnd.parasolid.transmit.binary":{"source":"iana","extensions":["x_b"]},"model/vnd.parasolid.transmit.text":{"source":"iana","extensions":["x_t"]},"model/vnd.pytha.pyox":{"source":"iana"},"model/vnd.rosette.annotated-data-model":{"source":"iana"},"model/vnd.sap.vds":{"source":"iana","extensions":["vds"]},"model/vnd.usdz+zip":{"source":"iana","compressible":false,"extensions":["usdz"]},"model/vnd.valve.source.compiled-map":{"source":"iana","extensions":["bsp"]},"model/vnd.vtu":{"source":"iana","extensions":["vtu"]},"model/vrml":{"source":"iana","compressible":false,"extensions":["wrl","vrml"]},"model/x3d+binary":{"source":"apache","compressible":false,"extensions":["x3db","x3dbz"]},"model/x3d+fastinfoset":{"source":"iana","extensions":["x3db"]},"model/x3d+vrml":{"source":"apache","compressible":false,"extensions":["x3dv","x3dvz"]},"model/x3d+xml":{"source":"iana","compressible":true,"extensions":["x3d","x3dz"]},"model/x3d-vrml":{"source":"iana","extensions":["x3dv"]},"multipart/alternative":{"source":"iana","compressible":false},"multipart/appledouble":{"source":"iana"},"multipart/byteranges":{"source":"iana"},"multipart/digest":{"source":"iana"},"multipart/encrypted":{"source":"iana","compressible":false},"multipart/form-data":{"source":"iana","compressible":false},"multipart/header-set":{"source":"iana"},"multipart/mixed":{"source":"iana"},"multipart/multilingual":{"source":"iana"},"multipart/parallel":{"source":"iana"},"multipart/related":{"source":"iana","compressible":false},"multipart/report":{"source":"iana"},"multipart/signed":{"source":"iana","compressible":false},"multipart/vnd.bint.med-plus":{"source":"iana"},"multipart/voice-message":{"source":"iana"},"multipart/x-mixed-replace":{"source":"iana"},"text/1d-interleaved-parityfec":{"source":"iana"},"text/cache-manifest":{"source":"iana","compressible":true,"extensions":["appcache","manifest"]},"text/calendar":{"source":"iana","extensions":["ics","ifb"]},"text/calender":{"compressible":true},"text/cmd":{"compressible":true},"text/coffeescript":{"extensions":["coffee","litcoffee"]},"text/cql":{"source":"iana"},"text/cql-expression":{"source":"iana"},"text/cql-identifier":{"source":"iana"},"text/css":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["css"]},"text/csv":{"source":"iana","compressible":true,"extensions":["csv"]},"text/csv-schema":{"source":"iana"},"text/directory":{"source":"iana"},"text/dns":{"source":"iana"},"text/ecmascript":{"source":"iana"},"text/encaprtp":{"source":"iana"},"text/enriched":{"source":"iana"},"text/fhirpath":{"source":"iana"},"text/flexfec":{"source":"iana"},"text/fwdred":{"source":"iana"},"text/gff3":{"source":"iana"},"text/grammar-ref-list":{"source":"iana"},"text/html":{"source":"iana","compressible":true,"extensions":["html","htm","shtml"]},"text/jade":{"extensions":["jade"]},"text/javascript":{"source":"iana","compressible":true},"text/jcr-cnd":{"source":"iana"},"text/jsx":{"compressible":true,"extensions":["jsx"]},"text/less":{"compressible":true,"extensions":["less"]},"text/markdown":{"source":"iana","compressible":true,"extensions":["markdown","md"]},"text/mathml":{"source":"nginx","extensions":["mml"]},"text/mdx":{"compressible":true,"extensions":["mdx"]},"text/mizar":{"source":"iana"},"text/n3":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["n3"]},"text/parameters":{"source":"iana","charset":"UTF-8"},"text/parityfec":{"source":"iana"},"text/plain":{"source":"iana","compressible":true,"extensions":["txt","text","conf","def","list","log","in","ini"]},"text/provenance-notation":{"source":"iana","charset":"UTF-8"},"text/prs.fallenstein.rst":{"source":"iana"},"text/prs.lines.tag":{"source":"iana","extensions":["dsc"]},"text/prs.prop.logic":{"source":"iana"},"text/raptorfec":{"source":"iana"},"text/red":{"source":"iana"},"text/rfc822-headers":{"source":"iana"},"text/richtext":{"source":"iana","compressible":true,"extensions":["rtx"]},"text/rtf":{"source":"iana","compressible":true,"extensions":["rtf"]},"text/rtp-enc-aescm128":{"source":"iana"},"text/rtploopback":{"source":"iana"},"text/rtx":{"source":"iana"},"text/sgml":{"source":"iana","extensions":["sgml","sgm"]},"text/shaclc":{"source":"iana"},"text/shex":{"source":"iana","extensions":["shex"]},"text/slim":{"extensions":["slim","slm"]},"text/spdx":{"source":"iana","extensions":["spdx"]},"text/strings":{"source":"iana"},"text/stylus":{"extensions":["stylus","styl"]},"text/t140":{"source":"iana"},"text/tab-separated-values":{"source":"iana","compressible":true,"extensions":["tsv"]},"text/troff":{"source":"iana","extensions":["t","tr","roff","man","me","ms"]},"text/turtle":{"source":"iana","charset":"UTF-8","extensions":["ttl"]},"text/ulpfec":{"source":"iana"},"text/uri-list":{"source":"iana","compressible":true,"extensions":["uri","uris","urls"]},"text/vcard":{"source":"iana","compressible":true,"extensions":["vcard"]},"text/vnd.a":{"source":"iana"},"text/vnd.abc":{"source":"iana"},"text/vnd.ascii-art":{"source":"iana"},"text/vnd.curl":{"source":"iana","extensions":["curl"]},"text/vnd.curl.dcurl":{"source":"apache","extensions":["dcurl"]},"text/vnd.curl.mcurl":{"source":"apache","extensions":["mcurl"]},"text/vnd.curl.scurl":{"source":"apache","extensions":["scurl"]},"text/vnd.debian.copyright":{"source":"iana","charset":"UTF-8"},"text/vnd.dmclientscript":{"source":"iana"},"text/vnd.dvb.subtitle":{"source":"iana","extensions":["sub"]},"text/vnd.esmertec.theme-descriptor":{"source":"iana","charset":"UTF-8"},"text/vnd.familysearch.gedcom":{"source":"iana","extensions":["ged"]},"text/vnd.ficlab.flt":{"source":"iana"},"text/vnd.fly":{"source":"iana","extensions":["fly"]},"text/vnd.fmi.flexstor":{"source":"iana","extensions":["flx"]},"text/vnd.gml":{"source":"iana"},"text/vnd.graphviz":{"source":"iana","extensions":["gv"]},"text/vnd.hans":{"source":"iana"},"text/vnd.hgl":{"source":"iana"},"text/vnd.in3d.3dml":{"source":"iana","extensions":["3dml"]},"text/vnd.in3d.spot":{"source":"iana","extensions":["spot"]},"text/vnd.iptc.newsml":{"source":"iana"},"text/vnd.iptc.nitf":{"source":"iana"},"text/vnd.latex-z":{"source":"iana"},"text/vnd.motorola.reflex":{"source":"iana"},"text/vnd.ms-mediapackage":{"source":"iana"},"text/vnd.net2phone.commcenter.command":{"source":"iana"},"text/vnd.radisys.msml-basic-layout":{"source":"iana"},"text/vnd.senx.warpscript":{"source":"iana"},"text/vnd.si.uricatalogue":{"source":"iana"},"text/vnd.sosi":{"source":"iana"},"text/vnd.sun.j2me.app-descriptor":{"source":"iana","charset":"UTF-8","extensions":["jad"]},"text/vnd.trolltech.linguist":{"source":"iana","charset":"UTF-8"},"text/vnd.wap.si":{"source":"iana"},"text/vnd.wap.sl":{"source":"iana"},"text/vnd.wap.wml":{"source":"iana","extensions":["wml"]},"text/vnd.wap.wmlscript":{"source":"iana","extensions":["wmls"]},"text/vtt":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["vtt"]},"text/x-asm":{"source":"apache","extensions":["s","asm"]},"text/x-c":{"source":"apache","extensions":["c","cc","cxx","cpp","h","hh","dic"]},"text/x-component":{"source":"nginx","extensions":["htc"]},"text/x-fortran":{"source":"apache","extensions":["f","for","f77","f90"]},"text/x-gwt-rpc":{"compressible":true},"text/x-handlebars-template":{"extensions":["hbs"]},"text/x-java-source":{"source":"apache","extensions":["java"]},"text/x-jquery-tmpl":{"compressible":true},"text/x-lua":{"extensions":["lua"]},"text/x-markdown":{"compressible":true,"extensions":["mkd"]},"text/x-nfo":{"source":"apache","extensions":["nfo"]},"text/x-opml":{"source":"apache","extensions":["opml"]},"text/x-org":{"compressible":true,"extensions":["org"]},"text/x-pascal":{"source":"apache","extensions":["p","pas"]},"text/x-processing":{"compressible":true,"extensions":["pde"]},"text/x-sass":{"extensions":["sass"]},"text/x-scss":{"extensions":["scss"]},"text/x-setext":{"source":"apache","extensions":["etx"]},"text/x-sfv":{"source":"apache","extensions":["sfv"]},"text/x-suse-ymp":{"compressible":true,"extensions":["ymp"]},"text/x-uuencode":{"source":"apache","extensions":["uu"]},"text/x-vcalendar":{"source":"apache","extensions":["vcs"]},"text/x-vcard":{"source":"apache","extensions":["vcf"]},"text/xml":{"source":"iana","compressible":true,"extensions":["xml"]},"text/xml-external-parsed-entity":{"source":"iana"},"text/yaml":{"compressible":true,"extensions":["yaml","yml"]},"video/1d-interleaved-parityfec":{"source":"iana"},"video/3gpp":{"source":"iana","extensions":["3gp","3gpp"]},"video/3gpp-tt":{"source":"iana"},"video/3gpp2":{"source":"iana","extensions":["3g2"]},"video/av1":{"source":"iana"},"video/bmpeg":{"source":"iana"},"video/bt656":{"source":"iana"},"video/celb":{"source":"iana"},"video/dv":{"source":"iana"},"video/encaprtp":{"source":"iana"},"video/ffv1":{"source":"iana"},"video/flexfec":{"source":"iana"},"video/h261":{"source":"iana","extensions":["h261"]},"video/h263":{"source":"iana","extensions":["h263"]},"video/h263-1998":{"source":"iana"},"video/h263-2000":{"source":"iana"},"video/h264":{"source":"iana","extensions":["h264"]},"video/h264-rcdo":{"source":"iana"},"video/h264-svc":{"source":"iana"},"video/h265":{"source":"iana"},"video/iso.segment":{"source":"iana","extensions":["m4s"]},"video/jpeg":{"source":"iana","extensions":["jpgv"]},"video/jpeg2000":{"source":"iana"},"video/jpm":{"source":"apache","extensions":["jpm","jpgm"]},"video/jxsv":{"source":"iana"},"video/mj2":{"source":"iana","extensions":["mj2","mjp2"]},"video/mp1s":{"source":"iana"},"video/mp2p":{"source":"iana"},"video/mp2t":{"source":"iana","extensions":["ts"]},"video/mp4":{"source":"iana","compressible":false,"extensions":["mp4","mp4v","mpg4"]},"video/mp4v-es":{"source":"iana"},"video/mpeg":{"source":"iana","compressible":false,"extensions":["mpeg","mpg","mpe","m1v","m2v"]},"video/mpeg4-generic":{"source":"iana"},"video/mpv":{"source":"iana"},"video/nv":{"source":"iana"},"video/ogg":{"source":"iana","compressible":false,"extensions":["ogv"]},"video/parityfec":{"source":"iana"},"video/pointer":{"source":"iana"},"video/quicktime":{"source":"iana","compressible":false,"extensions":["qt","mov"]},"video/raptorfec":{"source":"iana"},"video/raw":{"source":"iana"},"video/rtp-enc-aescm128":{"source":"iana"},"video/rtploopback":{"source":"iana"},"video/rtx":{"source":"iana"},"video/scip":{"source":"iana"},"video/smpte291":{"source":"iana"},"video/smpte292m":{"source":"iana"},"video/ulpfec":{"source":"iana"},"video/vc1":{"source":"iana"},"video/vc2":{"source":"iana"},"video/vnd.cctv":{"source":"iana"},"video/vnd.dece.hd":{"source":"iana","extensions":["uvh","uvvh"]},"video/vnd.dece.mobile":{"source":"iana","extensions":["uvm","uvvm"]},"video/vnd.dece.mp4":{"source":"iana"},"video/vnd.dece.pd":{"source":"iana","extensions":["uvp","uvvp"]},"video/vnd.dece.sd":{"source":"iana","extensions":["uvs","uvvs"]},"video/vnd.dece.video":{"source":"iana","extensions":["uvv","uvvv"]},"video/vnd.directv.mpeg":{"source":"iana"},"video/vnd.directv.mpeg-tts":{"source":"iana"},"video/vnd.dlna.mpeg-tts":{"source":"iana"},"video/vnd.dvb.file":{"source":"iana","extensions":["dvb"]},"video/vnd.fvt":{"source":"iana","extensions":["fvt"]},"video/vnd.hns.video":{"source":"iana"},"video/vnd.iptvforum.1dparityfec-1010":{"source":"iana"},"video/vnd.iptvforum.1dparityfec-2005":{"source":"iana"},"video/vnd.iptvforum.2dparityfec-1010":{"source":"iana"},"video/vnd.iptvforum.2dparityfec-2005":{"source":"iana"},"video/vnd.iptvforum.ttsavc":{"source":"iana"},"video/vnd.iptvforum.ttsmpeg2":{"source":"iana"},"video/vnd.motorola.video":{"source":"iana"},"video/vnd.motorola.videop":{"source":"iana"},"video/vnd.mpegurl":{"source":"iana","extensions":["mxu","m4u"]},"video/vnd.ms-playready.media.pyv":{"source":"iana","extensions":["pyv"]},"video/vnd.nokia.interleaved-multimedia":{"source":"iana"},"video/vnd.nokia.mp4vr":{"source":"iana"},"video/vnd.nokia.videovoip":{"source":"iana"},"video/vnd.objectvideo":{"source":"iana"},"video/vnd.radgamettools.bink":{"source":"iana"},"video/vnd.radgamettools.smacker":{"source":"iana"},"video/vnd.sealed.mpeg1":{"source":"iana"},"video/vnd.sealed.mpeg4":{"source":"iana"},"video/vnd.sealed.swf":{"source":"iana"},"video/vnd.sealedmedia.softseal.mov":{"source":"iana"},"video/vnd.uvvu.mp4":{"source":"iana","extensions":["uvu","uvvu"]},"video/vnd.vivo":{"source":"iana","extensions":["viv"]},"video/vnd.youtube.yt":{"source":"iana"},"video/vp8":{"source":"iana"},"video/vp9":{"source":"iana"},"video/webm":{"source":"apache","compressible":false,"extensions":["webm"]},"video/x-f4v":{"source":"apache","extensions":["f4v"]},"video/x-fli":{"source":"apache","extensions":["fli"]},"video/x-flv":{"source":"apache","compressible":false,"extensions":["flv"]},"video/x-m4v":{"source":"apache","extensions":["m4v"]},"video/x-matroska":{"source":"apache","compressible":false,"extensions":["mkv","mk3d","mks"]},"video/x-mng":{"source":"apache","extensions":["mng"]},"video/x-ms-asf":{"source":"apache","extensions":["asf","asx"]},"video/x-ms-vob":{"source":"apache","extensions":["vob"]},"video/x-ms-wm":{"source":"apache","extensions":["wm"]},"video/x-ms-wmv":{"source":"apache","compressible":false,"extensions":["wmv"]},"video/x-ms-wmx":{"source":"apache","extensions":["wmx"]},"video/x-ms-wvx":{"source":"apache","extensions":["wvx"]},"video/x-msvideo":{"source":"apache","extensions":["avi"]},"video/x-sgi-movie":{"source":"apache","extensions":["movie"]},"video/x-smv":{"source":"apache","extensions":["smv"]},"x-conference/x-cooltalk":{"source":"apache","extensions":["ice"]},"x-shader/x-fragment":{"compressible":true},"x-shader/x-vertex":{"compressible":true}}')},8330:e=>{"use strict";e.exports=JSON.parse('{"name":"@scaffoldly/awslambda-bootstrap","version":"1.0.11-0","description":"Bootstrap Script for AWS Lambda","repository":"https://github.com/scaffoldly/awslambda-bootstrap","author":"scaffold.ly","license":"MIT","main":"dist/main.js","files":["dist/**/*","scripts/**/*"],"bin":{"bootstrap":"dist/main.js","lambda-env":"scripts/lambda-env.cjs"},"scripts":{"build":"webpack","start":"node -r ts-node/register -r tsconfig-paths/register cli/index.ts"},"engines":{"node":">=18"},"engineStrict":true,"keywords":["scaffoldly","aws","lambda"],"dependencies":{},"devDependencies":{"@types/aws-lambda":"^8.10.138","@types/node":"18","@types/which":"^3.0.3","aws-lambda":"^1.0.7","axios":"^1.7.2","execa":"^9.1.0","source-map":"^0.7.4","ts-loader":"^9.5.1","ts-node":"^10.9.2","tsconfig-paths":"^4.2.0","typescript":"5","webpack":"^5.91.0","webpack-cli":"^5.1.4","which":"^4.0.0"}}')}},i={};function n(e){var o=i[e];if(void 0!==o)return o.exports;var s=i[e]={exports:{}};return a[e].call(s.exports,s,s.exports,n),s.exports}n.m=a,n.d=(e,a)=>{for(var i in a)n.o(a,i)&&!n.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:a[i]})},n.f={},n.e=e=>Promise.all(Object.keys(n.f).reduce(((a,i)=>(n.f[i](e,a),a)),[])),n.u=e=>e+".main.js",n.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),e={792:1},n.f.require=(a,i)=>{e[a]||(a=>{var i=a.modules,o=a.ids,s=a.runtime;for(var t in i)n.o(i,t)&&(n.m[t]=i[t]);s&&s(n);for(var r=0;r{var e,a={1873:(e,a,i)=>{e.exports={parallel:i(8798),serial:i(2081),serialOrdered:i(28)}},4555:e=>{function a(e){"function"==typeof this.jobs[e]&&this.jobs[e]()}e.exports=function(e){Object.keys(e.jobs).forEach(a.bind(e)),e.jobs={}}},2313:(e,a,i)=>{var n=i(405);e.exports=function(e){var a=!1;return n((function(){a=!0})),function(i,o){a?e(i,o):n((function(){e(i,o)}))}}},405:e=>{e.exports=function(e){var a="function"==typeof setImmediate?setImmediate:"object"==typeof process&&"function"==typeof process.nextTick?process.nextTick:null;a?a(e):setTimeout(e,0)}},8051:(e,a,i)=>{var n=i(2313),o=i(4555);e.exports=function(e,a,i,s){var t=i.keyedList?i.keyedList[i.index]:i.index;i.jobs[t]=function(e,a,i,o){return 2==e.length?e(i,n(o)):e(i,a,n(o))}(a,t,e[t],(function(e,a){t in i.jobs&&(delete i.jobs[t],e?o(i):i.results[t]=a,s(e,i.results))}))}},9500:e=>{e.exports=function(e,a){var i=!Array.isArray(e),n={index:0,keyedList:i||a?Object.keys(e):null,jobs:{},results:i?{}:[],size:i?Object.keys(e).length:e.length};return a&&n.keyedList.sort(i?a:function(i,n){return a(e[i],e[n])}),n}},6276:(e,a,i)=>{var n=i(4555),o=i(2313);e.exports=function(e){Object.keys(this.jobs).length&&(this.index=this.size,n(this),o(e)(null,this.results))}},8798:(e,a,i)=>{var n=i(8051),o=i(9500),s=i(6276);e.exports=function(e,a,i){for(var t=o(e);t.index<(t.keyedList||e).length;)n(e,a,t,(function(e,a){e?i(e,a):0!==Object.keys(t.jobs).length||i(null,t.results)})),t.index++;return s.bind(t,i)}},2081:(e,a,i)=>{var n=i(28);e.exports=function(e,a,i){return n(e,a,null,i)}},28:(e,a,i)=>{var n=i(8051),o=i(9500),s=i(6276);function t(e,a){return ea?1:0}e.exports=function(e,a,i,t){var r=o(e,i);return n(e,a,r,(function i(o,s){o?t(o,s):(r.index++,r.index<(r.keyedList||e).length?n(e,a,r,i):t(null,r.results))})),s.bind(r,t)},e.exports.ascending=t,e.exports.descending=function(e,a){return-1*t(e,a)}},801:(e,a,i)=>{var n=i(9023),o=i(2203).Stream,s=i(8069);function t(){this.writable=!1,this.readable=!0,this.dataSize=0,this.maxDataSize=2097152,this.pauseStreams=!0,this._released=!1,this._streams=[],this._currentStream=null,this._insideLoop=!1,this._pendingNext=!1}e.exports=t,n.inherits(t,o),t.create=function(e){var a=new this;for(var i in e=e||{})a[i]=e[i];return a},t.isStreamLike=function(e){return"function"!=typeof e&&"string"!=typeof e&&"boolean"!=typeof e&&"number"!=typeof e&&!Buffer.isBuffer(e)},t.prototype.append=function(e){if(t.isStreamLike(e)){if(!(e instanceof s)){var a=s.create(e,{maxDataSize:1/0,pauseStream:this.pauseStreams});e.on("data",this._checkDataSize.bind(this)),e=a}this._handleErrors(e),this.pauseStreams&&e.pause()}return this._streams.push(e),this},t.prototype.pipe=function(e,a){return o.prototype.pipe.call(this,e,a),this.resume(),e},t.prototype._getNext=function(){if(this._currentStream=null,this._insideLoop)this._pendingNext=!0;else{this._insideLoop=!0;try{do{this._pendingNext=!1,this._realGetNext()}while(this._pendingNext)}finally{this._insideLoop=!1}}},t.prototype._realGetNext=function(){var e=this._streams.shift();void 0!==e?"function"==typeof e?e(function(e){t.isStreamLike(e)&&(e.on("data",this._checkDataSize.bind(this)),this._handleErrors(e)),this._pipeNext(e)}.bind(this)):this._pipeNext(e):this.end()},t.prototype._pipeNext=function(e){if(this._currentStream=e,t.isStreamLike(e))return e.on("end",this._getNext.bind(this)),void e.pipe(this,{end:!1});var a=e;this.write(a),this._getNext()},t.prototype._handleErrors=function(e){var a=this;e.on("error",(function(e){a._emitError(e)}))},t.prototype.write=function(e){this.emit("data",e)},t.prototype.pause=function(){this.pauseStreams&&(this.pauseStreams&&this._currentStream&&"function"==typeof this._currentStream.pause&&this._currentStream.pause(),this.emit("pause"))},t.prototype.resume=function(){this._released||(this._released=!0,this.writable=!0,this._getNext()),this.pauseStreams&&this._currentStream&&"function"==typeof this._currentStream.resume&&this._currentStream.resume(),this.emit("resume")},t.prototype.end=function(){this._reset(),this.emit("end")},t.prototype.destroy=function(){this._reset(),this.emit("close")},t.prototype._reset=function(){this.writable=!1,this._streams=[],this._currentStream=null},t.prototype._checkDataSize=function(){if(this._updateDataSize(),!(this.dataSize<=this.maxDataSize)){var e="DelayedStream#maxDataSize of "+this.maxDataSize+" bytes exceeded.";this._emitError(new Error(e))}},t.prototype._updateDataSize=function(){this.dataSize=0;var e=this;this._streams.forEach((function(a){a.dataSize&&(e.dataSize+=a.dataSize)})),this._currentStream&&this._currentStream.dataSize&&(this.dataSize+=this._currentStream.dataSize)},t.prototype._emitError=function(e){this._reset(),this.emit("error",e)}},8069:(e,a,i)=>{var n=i(2203).Stream,o=i(9023);function s(){this.source=null,this.dataSize=0,this.maxDataSize=1048576,this.pauseStream=!0,this._maxDataSizeExceeded=!1,this._released=!1,this._bufferedEvents=[]}e.exports=s,o.inherits(s,n),s.create=function(e,a){var i=new this;for(var n in a=a||{})i[n]=a[n];i.source=e;var o=e.emit;return e.emit=function(){return i._handleEmit(arguments),o.apply(e,arguments)},e.on("error",(function(){})),i.pauseStream&&e.pause(),i},Object.defineProperty(s.prototype,"readable",{configurable:!0,enumerable:!0,get:function(){return this.source.readable}}),s.prototype.setEncoding=function(){return this.source.setEncoding.apply(this.source,arguments)},s.prototype.resume=function(){this._released||this.release(),this.source.resume()},s.prototype.pause=function(){this.source.pause()},s.prototype.release=function(){this._released=!0,this._bufferedEvents.forEach(function(e){this.emit.apply(this,e)}.bind(this)),this._bufferedEvents=[]},s.prototype.pipe=function(){var e=n.prototype.pipe.apply(this,arguments);return this.resume(),e},s.prototype._handleEmit=function(e){this._released?this.emit.apply(this,e):("data"===e[0]&&(this.dataSize+=e[1].length,this._checkIfMaxDataSizeExceeded()),this._bufferedEvents.push(e))},s.prototype._checkIfMaxDataSizeExceeded=function(){if(!(this._maxDataSizeExceeded||this.dataSize<=this.maxDataSize)){this._maxDataSizeExceeded=!0;var e="DelayedStream#maxDataSize of "+this.maxDataSize+" bytes exceeded.";this.emit("error",new Error(e))}}},7507:(e,a,i)=>{var n;e.exports=function(){if(!n){try{n=i(Object(function(){var e=new Error("Cannot find module 'debug'");throw e.code="MODULE_NOT_FOUND",e}()))("follow-redirects")}catch(e){}"function"!=typeof n&&(n=function(){})}n.apply(null,arguments)}},3164:(e,a,i)=>{var n=i(7016),o=n.URL,s=i(8611),t=i(5692),r=i(2203).Writable,c=i(2613),p=i(7507),l=!1;try{c(new o)}catch(e){l="ERR_INVALID_URL"===e.code}var u=["auth","host","hostname","href","path","pathname","port","protocol","query","search","hash"],d=["abort","aborted","connect","error","socket","timeout"],m=Object.create(null);d.forEach((function(e){m[e]=function(a,i,n){this._redirectable.emit(e,a,i,n)}}));var x=S("ERR_INVALID_URL","Invalid URL",TypeError),f=S("ERR_FR_REDIRECTION_FAILURE","Redirected request failed"),v=S("ERR_FR_TOO_MANY_REDIRECTS","Maximum number of redirects exceeded",f),h=S("ERR_FR_MAX_BODY_LENGTH_EXCEEDED","Request body larger than maxBodyLength limit"),b=S("ERR_STREAM_WRITE_AFTER_END","write after end"),g=r.prototype.destroy||k;function y(e,a){r.call(this),this._sanitizeOptions(e),this._options=e,this._ended=!1,this._ending=!1,this._redirectCount=0,this._redirects=[],this._requestBodyLength=0,this._requestBodyBuffers=[],a&&this.on("response",a);var i=this;this._onNativeResponse=function(e){try{i._processResponse(e)}catch(e){i.emit("error",e instanceof f?e:new f({cause:e}))}},this._performRequest()}function w(e){var a={maxRedirects:21,maxBodyLength:10485760},i={};return Object.keys(e).forEach((function(n){var s=n+":",t=i[s]=e[n],r=a[n]=Object.create(t);Object.defineProperties(r,{request:{value:function(e,n,t){return o&&e instanceof o?e=E(e):O(e)?e=E(j(e)):(t=n,n=_(e),e={protocol:s}),z(n)&&(t=n,n=null),(n=Object.assign({maxRedirects:a.maxRedirects,maxBodyLength:a.maxBodyLength},e,n)).nativeProtocols=i,O(n.host)||O(n.hostname)||(n.hostname="::1"),c.equal(n.protocol,s,"protocol mismatch"),p("options",n),new y(n,t)},configurable:!0,enumerable:!0,writable:!0},get:{value:function(e,a,i){var n=r.request(e,a,i);return n.end(),n},configurable:!0,enumerable:!0,writable:!0}})})),a}function k(){}function j(e){var a;if(l)a=new o(e);else if(!O((a=_(n.parse(e))).protocol))throw new x({input:e});return a}function _(e){if(/^\[/.test(e.hostname)&&!/^\[[:0-9a-f]+\]$/i.test(e.hostname))throw new x({input:e.href||e});if(/^\[/.test(e.host)&&!/^\[[:0-9a-f]+\](:\d+)?$/i.test(e.host))throw new x({input:e.href||e});return e}function E(e,a){var i=a||{};for(var n of u)i[n]=e[n];return i.hostname.startsWith("[")&&(i.hostname=i.hostname.slice(1,-1)),""!==i.port&&(i.port=Number(i.port)),i.path=i.search?i.pathname+i.search:i.pathname,i}function R(e,a){var i;for(var n in a)e.test(n)&&(i=a[n],delete a[n]);return null==i?void 0:String(i).trim()}function S(e,a,i){function n(i){Error.captureStackTrace(this,this.constructor),Object.assign(this,i||{}),this.code=e,this.message=this.cause?a+": "+this.cause.message:a}return n.prototype=new(i||Error),Object.defineProperties(n.prototype,{constructor:{value:n,enumerable:!1},name:{value:"Error ["+e+"]",enumerable:!1}}),n}function T(e,a){for(var i of d)e.removeListener(i,m[i]);e.on("error",k),e.destroy(a)}function O(e){return"string"==typeof e||e instanceof String}function z(e){return"function"==typeof e}y.prototype=Object.create(r.prototype),y.prototype.abort=function(){T(this._currentRequest),this._currentRequest.abort(),this.emit("abort")},y.prototype.destroy=function(e){return T(this._currentRequest,e),g.call(this,e),this},y.prototype.write=function(e,a,i){if(this._ending)throw new b;if(!(O(e)||"object"==typeof(n=e)&&"length"in n))throw new TypeError("data should be a string, Buffer or Uint8Array");var n;z(a)&&(i=a,a=null),0!==e.length?this._requestBodyLength+e.length<=this._options.maxBodyLength?(this._requestBodyLength+=e.length,this._requestBodyBuffers.push({data:e,encoding:a}),this._currentRequest.write(e,a,i)):(this.emit("error",new h),this.abort()):i&&i()},y.prototype.end=function(e,a,i){if(z(e)?(i=e,e=a=null):z(a)&&(i=a,a=null),e){var n=this,o=this._currentRequest;this.write(e,a,(function(){n._ended=!0,o.end(null,null,i)})),this._ending=!0}else this._ended=this._ending=!0,this._currentRequest.end(null,null,i)},y.prototype.setHeader=function(e,a){this._options.headers[e]=a,this._currentRequest.setHeader(e,a)},y.prototype.removeHeader=function(e){delete this._options.headers[e],this._currentRequest.removeHeader(e)},y.prototype.setTimeout=function(e,a){var i=this;function n(a){a.setTimeout(e),a.removeListener("timeout",a.destroy),a.addListener("timeout",a.destroy)}function o(a){i._timeout&&clearTimeout(i._timeout),i._timeout=setTimeout((function(){i.emit("timeout"),s()}),e),n(a)}function s(){i._timeout&&(clearTimeout(i._timeout),i._timeout=null),i.removeListener("abort",s),i.removeListener("error",s),i.removeListener("response",s),i.removeListener("close",s),a&&i.removeListener("timeout",a),i.socket||i._currentRequest.removeListener("socket",o)}return a&&this.on("timeout",a),this.socket?o(this.socket):this._currentRequest.once("socket",o),this.on("socket",n),this.on("abort",s),this.on("error",s),this.on("response",s),this.on("close",s),this},["flushHeaders","getHeader","setNoDelay","setSocketKeepAlive"].forEach((function(e){y.prototype[e]=function(a,i){return this._currentRequest[e](a,i)}})),["aborted","connection","socket"].forEach((function(e){Object.defineProperty(y.prototype,e,{get:function(){return this._currentRequest[e]}})})),y.prototype._sanitizeOptions=function(e){if(e.headers||(e.headers={}),e.host&&(e.hostname||(e.hostname=e.host),delete e.host),!e.pathname&&e.path){var a=e.path.indexOf("?");a<0?e.pathname=e.path:(e.pathname=e.path.substring(0,a),e.search=e.path.substring(a))}},y.prototype._performRequest=function(){var e=this._options.protocol,a=this._options.nativeProtocols[e];if(!a)throw new TypeError("Unsupported protocol "+e);if(this._options.agents){var i=e.slice(0,-1);this._options.agent=this._options.agents[i]}var o=this._currentRequest=a.request(this._options,this._onNativeResponse);for(var s of(o._redirectable=this,d))o.on(s,m[s]);if(this._currentUrl=/^\//.test(this._options.path)?n.format(this._options):this._options.path,this._isRedirect){var t=0,r=this,c=this._requestBodyBuffers;!function e(a){if(o===r._currentRequest)if(a)r.emit("error",a);else if(t=400)return e.responseUrl=this._currentUrl,e.redirects=this._redirects,this.emit("response",e),void(this._requestBodyBuffers=[]);if(T(this._currentRequest),e.destroy(),++this._redirectCount>this._options.maxRedirects)throw new v;var t=this._options.beforeRedirect;t&&(i=Object.assign({Host:e.req.getHeader("host")},this._options.headers));var r=this._options.method;((301===a||302===a)&&"POST"===this._options.method||303===a&&!/^(?:GET|HEAD)$/.test(this._options.method))&&(this._options.method="GET",this._requestBodyBuffers=[],R(/^content-/i,this._options.headers));var u,d,m=R(/^host$/i,this._options.headers),x=j(this._currentUrl),f=m||x.host,h=/^\w+:/.test(s)?this._currentUrl:n.format(Object.assign(x,{host:f})),b=(u=s,d=h,l?new o(u,d):j(n.resolve(d,u)));if(p("redirecting to",b.href),this._isRedirect=!0,E(b,this._options),(b.protocol!==x.protocol&&"https:"!==b.protocol||b.host!==f&&!function(e,a){c(O(e)&&O(a));var i=e.length-a.length-1;return i>0&&"."===e[i]&&e.endsWith(a)}(b.host,f))&&R(/^(?:(?:proxy-)?authorization|cookie)$/i,this._options.headers),z(t)){var g={headers:e.headers,statusCode:a},y={url:h,method:r,headers:i};t(this._options,g,y),this._sanitizeOptions(this._options)}this._performRequest()},e.exports=w({http:s,https:t}),e.exports.wrap=w},737:(e,a,i)=>{var n=i(801),o=i(9023),s=i(6928),t=i(8611),r=i(5692),c=i(7016).parse,p=i(9896),l=i(2203).Stream,u=i(6049),d=i(1873),m=i(1362);function x(e){if(!(this instanceof x))return new x(e);for(var a in this._overheadLength=0,this._valueLength=0,this._valuesToMeasure=[],n.call(this),e=e||{})this[a]=e[a]}e.exports=x,o.inherits(x,n),x.LINE_BREAK="\r\n",x.DEFAULT_CONTENT_TYPE="application/octet-stream",x.prototype.append=function(e,a,i){"string"==typeof(i=i||{})&&(i={filename:i});var s=n.prototype.append.bind(this);if("number"==typeof a&&(a=""+a),o.isArray(a))this._error(new Error("Arrays are not supported."));else{var t=this._multiPartHeader(e,a,i),r=this._multiPartFooter();s(t),s(a),s(r),this._trackLength(t,a,i)}},x.prototype._trackLength=function(e,a,i){var n=0;null!=i.knownLength?n+=+i.knownLength:Buffer.isBuffer(a)?n=a.length:"string"==typeof a&&(n=Buffer.byteLength(a)),this._valueLength+=n,this._overheadLength+=Buffer.byteLength(e)+x.LINE_BREAK.length,a&&(a.path||a.readable&&a.hasOwnProperty("httpVersion")||a instanceof l)&&(i.knownLength||this._valuesToMeasure.push(a))},x.prototype._lengthRetriever=function(e,a){e.hasOwnProperty("fd")?null!=e.end&&e.end!=1/0&&null!=e.start?a(null,e.end+1-(e.start?e.start:0)):p.stat(e.path,(function(i,n){var o;i?a(i):(o=n.size-(e.start?e.start:0),a(null,o))})):e.hasOwnProperty("httpVersion")?a(null,+e.headers["content-length"]):e.hasOwnProperty("httpModule")?(e.on("response",(function(i){e.pause(),a(null,+i.headers["content-length"])})),e.resume()):a("Unknown stream")},x.prototype._multiPartHeader=function(e,a,i){if("string"==typeof i.header)return i.header;var n,o=this._getContentDisposition(a,i),s=this._getContentType(a,i),t="",r={"Content-Disposition":["form-data",'name="'+e+'"'].concat(o||[]),"Content-Type":[].concat(s||[])};for(var c in"object"==typeof i.header&&m(r,i.header),r)r.hasOwnProperty(c)&&null!=(n=r[c])&&(Array.isArray(n)||(n=[n]),n.length&&(t+=c+": "+n.join("; ")+x.LINE_BREAK));return"--"+this.getBoundary()+x.LINE_BREAK+t+x.LINE_BREAK},x.prototype._getContentDisposition=function(e,a){var i,n;return"string"==typeof a.filepath?i=s.normalize(a.filepath).replace(/\\/g,"/"):a.filename||e.name||e.path?i=s.basename(a.filename||e.name||e.path):e.readable&&e.hasOwnProperty("httpVersion")&&(i=s.basename(e.client._httpMessage.path||"")),i&&(n='filename="'+i+'"'),n},x.prototype._getContentType=function(e,a){var i=a.contentType;return!i&&e.name&&(i=u.lookup(e.name)),!i&&e.path&&(i=u.lookup(e.path)),!i&&e.readable&&e.hasOwnProperty("httpVersion")&&(i=e.headers["content-type"]),i||!a.filepath&&!a.filename||(i=u.lookup(a.filepath||a.filename)),i||"object"!=typeof e||(i=x.DEFAULT_CONTENT_TYPE),i},x.prototype._multiPartFooter=function(){return function(e){var a=x.LINE_BREAK;0===this._streams.length&&(a+=this._lastBoundary()),e(a)}.bind(this)},x.prototype._lastBoundary=function(){return"--"+this.getBoundary()+"--"+x.LINE_BREAK},x.prototype.getHeaders=function(e){var a,i={"content-type":"multipart/form-data; boundary="+this.getBoundary()};for(a in e)e.hasOwnProperty(a)&&(i[a.toLowerCase()]=e[a]);return i},x.prototype.setBoundary=function(e){this._boundary=e},x.prototype.getBoundary=function(){return this._boundary||this._generateBoundary(),this._boundary},x.prototype.getBuffer=function(){for(var e=new Buffer.alloc(0),a=this.getBoundary(),i=0,n=this._streams.length;i{e.exports=function(e,a){return Object.keys(a).forEach((function(i){e[i]=e[i]||a[i]})),e}},7598:(e,a,i)=>{e.exports=i(1813)},6049:(e,a,i)=>{"use strict";var n,o,s,t=i(7598),r=i(6928).extname,c=/^\s*([^;\s]*)(?:;|\s|$)/,p=/^text\//i;function l(e){if(!e||"string"!=typeof e)return!1;var a=c.exec(e),i=a&&t[a[1].toLowerCase()];return i&&i.charset?i.charset:!(!a||!p.test(a[1]))&&"UTF-8"}a.charset=l,a.charsets={lookup:l},a.contentType=function(e){if(!e||"string"!=typeof e)return!1;var i=-1===e.indexOf("/")?a.lookup(e):e;if(!i)return!1;if(-1===i.indexOf("charset")){var n=a.charset(i);n&&(i+="; charset="+n.toLowerCase())}return i},a.extension=function(e){if(!e||"string"!=typeof e)return!1;var i=c.exec(e),n=i&&a.extensions[i[1].toLowerCase()];return!(!n||!n.length)&&n[0]},a.extensions=Object.create(null),a.lookup=function(e){if(!e||"string"!=typeof e)return!1;var i=r("x."+e).toLowerCase().substr(1);return i&&a.types[i]||!1},a.types=Object.create(null),n=a.extensions,o=a.types,s=["nginx","apache",void 0,"iana"],Object.keys(t).forEach((function(e){var a=t[e],i=a.extensions;if(i&&i.length){n[e]=i;for(var r=0;rl||p===l&&"application/"===o[c].substr(0,12)))continue}o[c]=e}}}))},6504:(e,a,i)=>{"use strict";var n=i(7016).parse,o={ftp:21,gopher:70,http:80,https:443,ws:80,wss:443},s=String.prototype.endsWith||function(e){return e.length<=this.length&&-1!==this.indexOf(e,this.length-e.length)};function t(e){return process.env[e.toLowerCase()]||process.env[e.toUpperCase()]||""}a.getProxyForUrl=function(e){var a="string"==typeof e?n(e):e||{},i=a.protocol,r=a.host,c=a.port;if("string"!=typeof r||!r||"string"!=typeof i)return"";if(i=i.split(":",1)[0],!function(e,a){var i=(t("npm_config_no_proxy")||t("no_proxy")).toLowerCase();return!i||"*"!==i&&i.split(/[,\s]/).every((function(i){if(!i)return!0;var n=i.match(/^(.+):(\d+)$/),o=n?n[1]:i,t=n?parseInt(n[2]):0;return!(!t||t===a)||(/^[.*]/.test(o)?("*"===o.charAt(0)&&(o=o.slice(1)),!s.call(e,o)):e!==o)}))}(r=r.replace(/:\d*$/,""),c=parseInt(c)||o[i]||0))return"";var p=t("npm_config_"+i+"_proxy")||t(i+"_proxy")||t("npm_config_proxy")||t("all_proxy");return p&&-1===p.indexOf("://")&&(p=i+"://"+p),p}},1590:function(e,a,i){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(a,"__esModule",{value:!0});const o=i(9138),s=n(i(8330)),t=i(8238);(async()=>{if(process.argv.includes("--version"))console.log(s.default.version);else{(0,o.log)("Starting bootstrap",{env:JSON.stringify(process.env)});try{await(0,t.bootstrap)()}catch(e){e instanceof Error?console.error(e.message):console.error(e),process.exit(1)}(0,o.log)("Bootstrap complete")}})()},8238:(e,a,i)=>{"use strict";Object.defineProperty(a,"__esModule",{value:!0}),a.bootstrap=void 0;const n=i(9722),o=i(9138),s=i(9004),{_HANDLER:t,IS_OFFLINE:r,AWS_LAMBDA_RUNTIME_API:c}=process.env;a.bootstrap=async()=>{if(!c)throw new Error("No AWS_LAMBDA_RUNTIME_API specified");if(!t)throw new Error("No handler specified");(0,o.log)("Bootstraping",{_HANDLER:t,IS_OFFLINE:r,AWS_LAMBDA_RUNTIME_API:c});const{childProcess:e,bin:a,endpoint:i}=await(0,s.endpointSpawn)(t,"true"===r);try{(0,o.log)("Routing events",{bin:a,endpoint:i}),await(0,n.routeEvents)(c,a,i)}catch(a){throw e&&((0,o.log)("Killing child process",{pid:e.pid}),e.kill()),a}}},9138:function(e,a,i){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(a,"__esModule",{value:!0}),a.log=a.info=void 0;const o=n(i(8330));a.info=(e,a)=>{console.log(`[${o.default.name}@${o.default.version}] ${e}`,a?JSON.stringify(a):void 0)},a.log=(e,a)=>{process.env.SLY_DEBUG&&console.log(`[${o.default.name}@${o.default.version}] ${e}`,a?JSON.stringify(a):void 0)}},9004:function(e,a,i){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,a,i,n){void 0===n&&(n=i);var o=Object.getOwnPropertyDescriptor(a,i);o&&!("get"in o?!a.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return a[i]}}),Object.defineProperty(e,n,o)}:function(e,a,i,n){void 0===n&&(n=i),e[n]=a[i]}),o=this&&this.__setModuleDefault||(Object.create?function(e,a){Object.defineProperty(e,"default",{enumerable:!0,value:a})}:function(e,a){e.default=a}),s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var a={};if(null!=e)for(var i in e)"default"!==i&&Object.prototype.hasOwnProperty.call(e,i)&&n(a,e,i);return o(a,e),a},t=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(a,"__esModule",{value:!0}),a.endpointProxy=a.endpointExec=a.endpointSpawn=void 0;const r=s(i(9329)),c=t(i(9278)),p=i(9138),l=i(5317);function u(e){if(e)return Object.keys(e).reduce(((a,i)=>{const n=e[i];return n?(Array.isArray(n)?a[i]=n.join(", "):"string"!=typeof n&&"number"!=typeof n&&"boolean"!=typeof n||(a[i]=n),a):a}),{})}const d=async(e,a)=>{const i=Date.now();if(a-i<0)return{timeout:0};const n=e.hostname,o=parseInt(e.port,10)||("https:"===e.protocol?443:80);return new Promise((s=>{const t=new c.default.Socket,r=()=>(t.destroy(),d(e,a-(Date.now()-i)).then(s));t.setTimeout(a-i),t.once("error",r),t.once("timeout",r),t.connect(o,n,(()=>{t.end(),s({timeout:a-Date.now()})}))}))};a.endpointSpawn=async(e,a)=>{let i,[n,o]=e.split(/(?<=^[^@]*)@/);if(n&&!o)try{o=new URL(n).toString(),n=void 0}catch(e){}if(n&&o){(0,p.log)("Starting child process",{bin:n});const e=a?"dev":"start";(0,p.info)(`Running: \`${n} ${e}\``),i=(0,l.spawn)(n,[e],{detached:!0,stdio:"inherit"}),i.unref(),(0,p.log)("Started child process",{bin:n,subcommand:e,pid:i.pid})}return o=o?new URL(o):void 0,{childProcess:i,bin:n,endpoint:o}},a.endpointExec=async({requestId:e,bin:a,event:n,deadline:o})=>{const{execa:s}=await i.e(495).then(i.bind(i,6495)),{stdout:t}=await(s({stderr:["inherit"]})`${a} ${n}`);return(0,p.info)("TODO: need to handle deadline",{deadline:o}),{requestId:e,payload:JSON.parse(t)}},a.endpointProxy=async({requestId:e,endpoint:a,event:i,deadline:n})=>{const{requestContext:o,rawPath:s,rawQueryString:t,headers:c,body:l,isBase64Encoded:m}=i,x=o.http.method;(0,p.log)("Waiting for endpoint to start",{endpoint:a,deadline:n});const{timeout:f}=await d(a,n);if(!f)throw new Error(`${a.toString()} took longer than ${n} milliseconds to start.`);const v=new URL(s,a);t&&(v.search=new URLSearchParams(t).toString());const h=m&&l?Buffer.from(l,"base64"):l;let b;(0,p.log)("Proxying request",{url:v,method:x,rawHeaders:c,decodedBody:h,timeout:f});try{b=await r.default.request({method:x.toLowerCase(),url:v.toString(),headers:c,data:h,timeout:f,responseType:"arraybuffer"})}catch(e){if(!(0,r.isAxiosError)(e)||!e.response)throw e;b=e.response}if(!b)throw new Error("No response received");const{data:g,headers:y}=b;return(0,p.log)("Proxy request complete",{url:v,method:x,rawResponseHeaders:y,rawData:g}),{requestId:e,payload:{statusCode:b.status,headers:u(y),body:Buffer.from(g).toString("base64"),isBase64Encoded:!0}}}},9722:(e,a,i)=>{"use strict";Object.defineProperty(a,"__esModule",{value:!0}),a.routeEvents=void 0;const n=i(9004),o=i(9138),s=i(8740);a.routeEvents=async(e,i,t)=>{(0,o.log)("Waiting for next event from Lambda Runtime API",{runtimeApi:e});const{requestId:r,event:c,deadline:p}=await(0,s.nextEvent)(e);let l;if(i&&!t){(0,o.log)("No endpoint specified, executing bin",{bin:i});const e={requestId:r,bin:i,event:c,deadline:p};l=(await(0,n.endpointExec)(e)).payload,(0,o.log)("Bin execution complete",{bin:i,payload:l})}else{if(!t)throw new Error(`\nMissing bin and handler on _HANDLER: ${process.env._HANDLER}. \nExpected format: {bin}@{endpoint} or {bin} or {endpoint}:\n - next@http://localhost:3000\n - /usr/bin/app@http://localhost:3000\n - http://localhost:3000\n - /usr/bin/app\n`);{(0,o.log)("Endpoint specified, proxying request",{endpoint:t});const e={requestId:r,endpoint:t,event:c,deadline:p};l=(await(0,n.endpointProxy)(e)).payload,(0,o.log)("Proxy request complete",{endpoint:t,payload:l})}}return await(0,s.respondToEvent)(e,r,l),(0,o.log)("Response sent to Lambda Runtime API",{runtimeApi:e,requestId:r}),(0,a.routeEvents)(e,i,t)}},8740:function(e,a,i){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(a,"__esModule",{value:!0}),a.respondToEvent=a.nextEvent=void 0;const o=n(i(9329));a.nextEvent=async e=>{const{headers:a,data:i}=await o.default.get(`http://${e}/2018-06-01/runtime/invocation/next`,{timeout:0,responseType:"text"}),n=a["lambda-runtime-aws-request-id"];if(!n)throw new Error("No request ID found in response headers");const s=Number.parseInt(a["lambda-runtime-deadline-ms"]);return{requestId:n,event:JSON.parse(i),deadline:s}},a.respondToEvent=async(e,a,i)=>{await o.default.post(`http://${e}/2018-06-01/runtime/invocation/${a}/response`,i)}},2613:e=>{"use strict";e.exports=require("assert")},5317:e=>{"use strict";e.exports=require("child_process")},4434:e=>{"use strict";e.exports=require("events")},9896:e=>{"use strict";e.exports=require("fs")},8611:e=>{"use strict";e.exports=require("http")},5692:e=>{"use strict";e.exports=require("https")},9278:e=>{"use strict";e.exports=require("net")},4573:e=>{"use strict";e.exports=require("node:buffer")},1421:e=>{"use strict";e.exports=require("node:child_process")},8474:e=>{"use strict";e.exports=require("node:events")},3024:e=>{"use strict";e.exports=require("node:fs")},8161:e=>{"use strict";e.exports=require("node:os")},6760:e=>{"use strict";e.exports=require("node:path")},1708:e=>{"use strict";e.exports=require("node:process")},7075:e=>{"use strict";e.exports=require("node:stream")},6466:e=>{"use strict";e.exports=require("node:stream/promises")},6193:e=>{"use strict";e.exports=require("node:string_decoder")},8500:e=>{"use strict";e.exports=require("node:timers/promises")},7066:e=>{"use strict";e.exports=require("node:tty")},3136:e=>{"use strict";e.exports=require("node:url")},7975:e=>{"use strict";e.exports=require("node:util")},6928:e=>{"use strict";e.exports=require("path")},2203:e=>{"use strict";e.exports=require("stream")},7016:e=>{"use strict";e.exports=require("url")},9023:e=>{"use strict";e.exports=require("util")},3106:e=>{"use strict";e.exports=require("zlib")},9329:(e,a,i)=>{"use strict";const n=i(737),o=i(7016),s=i(6504),t=i(8611),r=i(5692),c=i(9023),p=i(3164),l=i(3106),u=i(2203),d=i(4434);function m(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}const x=m(n),f=m(o),v=m(t),h=m(r),b=m(c),g=m(p),y=m(l),w=m(u);function k(e,a){return function(){return e.apply(a,arguments)}}const{toString:j}=Object.prototype,{getPrototypeOf:_}=Object,E=(R=Object.create(null),e=>{const a=j.call(e);return R[a]||(R[a]=a.slice(8,-1).toLowerCase())});var R;const S=e=>(e=e.toLowerCase(),a=>E(a)===e),T=e=>a=>typeof a===e,{isArray:O}=Array,z=T("undefined"),q=S("ArrayBuffer"),L=T("string"),A=T("function"),B=T("number"),N=e=>null!==e&&"object"==typeof e,U=e=>{if("object"!==E(e))return!1;const a=_(e);return!(null!==a&&a!==Object.prototype&&null!==Object.getPrototypeOf(a)||Symbol.toStringTag in e||Symbol.iterator in e)},C=S("Date"),P=S("File"),D=S("Blob"),F=S("FileList"),I=S("URLSearchParams"),[M,H,$,W]=["ReadableStream","Request","Response","Headers"].map(S);function K(e,a,{allOwnKeys:i=!1}={}){if(null==e)return;let n,o;if("object"!=typeof e&&(e=[e]),O(e))for(n=0,o=e.length;n0;)if(n=i[o],a===n.toLowerCase())return n;return null}const V="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:global,G=e=>!z(e)&&e!==V,X=(Q="undefined"!=typeof Uint8Array&&_(Uint8Array),e=>Q&&e instanceof Q);var Q;const Y=S("HTMLFormElement"),Z=(({hasOwnProperty:e})=>(a,i)=>e.call(a,i))(Object.prototype),ee=S("RegExp"),ae=(e,a)=>{const i=Object.getOwnPropertyDescriptors(e),n={};K(i,((i,o)=>{let s;!1!==(s=a(i,o,e))&&(n[o]=s||i)})),Object.defineProperties(e,n)},ie="abcdefghijklmnopqrstuvwxyz",ne="0123456789",oe={DIGIT:ne,ALPHA:ie,ALPHA_DIGIT:ie+ie.toUpperCase()+ne},se=S("AsyncFunction"),te={isArray:O,isArrayBuffer:q,isBuffer:function(e){return null!==e&&!z(e)&&null!==e.constructor&&!z(e.constructor)&&A(e.constructor.isBuffer)&&e.constructor.isBuffer(e)},isFormData:e=>{let a;return e&&("function"==typeof FormData&&e instanceof FormData||A(e.append)&&("formdata"===(a=E(e))||"object"===a&&A(e.toString)&&"[object FormData]"===e.toString()))},isArrayBufferView:function(e){let a;return a="undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer&&q(e.buffer),a},isString:L,isNumber:B,isBoolean:e=>!0===e||!1===e,isObject:N,isPlainObject:U,isReadableStream:M,isRequest:H,isResponse:$,isHeaders:W,isUndefined:z,isDate:C,isFile:P,isBlob:D,isRegExp:ee,isFunction:A,isStream:e=>N(e)&&A(e.pipe),isURLSearchParams:I,isTypedArray:X,isFileList:F,forEach:K,merge:function e(){const{caseless:a}=G(this)&&this||{},i={},n=(n,o)=>{const s=a&&J(i,o)||o;U(i[s])&&U(n)?i[s]=e(i[s],n):U(n)?i[s]=e({},n):O(n)?i[s]=n.slice():i[s]=n};for(let e=0,a=arguments.length;e(K(a,((a,n)=>{i&&A(a)?e[n]=k(a,i):e[n]=a}),{allOwnKeys:n}),e),trim:e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,""),stripBOM:e=>(65279===e.charCodeAt(0)&&(e=e.slice(1)),e),inherits:(e,a,i,n)=>{e.prototype=Object.create(a.prototype,n),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:a.prototype}),i&&Object.assign(e.prototype,i)},toFlatObject:(e,a,i,n)=>{let o,s,t;const r={};if(a=a||{},null==e)return a;do{for(o=Object.getOwnPropertyNames(e),s=o.length;s-- >0;)t=o[s],n&&!n(t,e,a)||r[t]||(a[t]=e[t],r[t]=!0);e=!1!==i&&_(e)}while(e&&(!i||i(e,a))&&e!==Object.prototype);return a},kindOf:E,kindOfTest:S,endsWith:(e,a,i)=>{e=String(e),(void 0===i||i>e.length)&&(i=e.length),i-=a.length;const n=e.indexOf(a,i);return-1!==n&&n===i},toArray:e=>{if(!e)return null;if(O(e))return e;let a=e.length;if(!B(a))return null;const i=new Array(a);for(;a-- >0;)i[a]=e[a];return i},forEachEntry:(e,a)=>{const i=(e&&e[Symbol.iterator]).call(e);let n;for(;(n=i.next())&&!n.done;){const i=n.value;a.call(e,i[0],i[1])}},matchAll:(e,a)=>{let i;const n=[];for(;null!==(i=e.exec(a));)n.push(i);return n},isHTMLForm:Y,hasOwnProperty:Z,hasOwnProp:Z,reduceDescriptors:ae,freezeMethods:e=>{ae(e,((a,i)=>{if(A(e)&&-1!==["arguments","caller","callee"].indexOf(i))return!1;const n=e[i];A(n)&&(a.enumerable=!1,"writable"in a?a.writable=!1:a.set||(a.set=()=>{throw Error("Can not rewrite read-only method '"+i+"'")}))}))},toObjectSet:(e,a)=>{const i={},n=e=>{e.forEach((e=>{i[e]=!0}))};return O(e)?n(e):n(String(e).split(a)),i},toCamelCase:e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,(function(e,a,i){return a.toUpperCase()+i})),noop:()=>{},toFiniteNumber:(e,a)=>null!=e&&Number.isFinite(e=+e)?e:a,findKey:J,global:V,isContextDefined:G,ALPHABET:oe,generateString:(e=16,a=oe.ALPHA_DIGIT)=>{let i="";const{length:n}=a;for(;e--;)i+=a[Math.random()*n|0];return i},isSpecCompliantForm:function(e){return!!(e&&A(e.append)&&"FormData"===e[Symbol.toStringTag]&&e[Symbol.iterator])},toJSONObject:e=>{const a=new Array(10),i=(e,n)=>{if(N(e)){if(a.indexOf(e)>=0)return;if(!("toJSON"in e)){a[n]=e;const o=O(e)?[]:{};return K(e,((e,a)=>{const s=i(e,n+1);!z(s)&&(o[a]=s)})),a[n]=void 0,o}}return e};return i(e,0)},isAsyncFn:se,isThenable:e=>e&&(N(e)||A(e))&&A(e.then)&&A(e.catch)};function re(e,a,i,n,o){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=(new Error).stack,this.message=e,this.name="AxiosError",a&&(this.code=a),i&&(this.config=i),n&&(this.request=n),o&&(this.response=o)}te.inherits(re,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:te.toJSONObject(this.config),code:this.code,status:this.response&&this.response.status?this.response.status:null}}});const ce=re.prototype,pe={};function le(e){return te.isPlainObject(e)||te.isArray(e)}function ue(e){return te.endsWith(e,"[]")?e.slice(0,-2):e}function de(e,a,i){return e?e.concat(a).map((function(e,a){return e=ue(e),!i&&a?"["+e+"]":e})).join(i?".":""):a}["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach((e=>{pe[e]={value:e}})),Object.defineProperties(re,pe),Object.defineProperty(ce,"isAxiosError",{value:!0}),re.from=(e,a,i,n,o,s)=>{const t=Object.create(ce);return te.toFlatObject(e,t,(function(e){return e!==Error.prototype}),(e=>"isAxiosError"!==e)),re.call(t,e.message,a,i,n,o),t.cause=e,t.name=e.name,s&&Object.assign(t,s),t};const me=te.toFlatObject(te,{},null,(function(e){return/^is[A-Z]/.test(e)}));function xe(e,a,i){if(!te.isObject(e))throw new TypeError("target must be an object");a=a||new(x.default||FormData);const n=(i=te.toFlatObject(i,{metaTokens:!0,dots:!1,indexes:!1},!1,(function(e,a){return!te.isUndefined(a[e])}))).metaTokens,o=i.visitor||p,s=i.dots,t=i.indexes,r=(i.Blob||"undefined"!=typeof Blob&&Blob)&&te.isSpecCompliantForm(a);if(!te.isFunction(o))throw new TypeError("visitor must be a function");function c(e){if(null===e)return"";if(te.isDate(e))return e.toISOString();if(!r&&te.isBlob(e))throw new re("Blob is not supported. Use a Buffer instead.");return te.isArrayBuffer(e)||te.isTypedArray(e)?r&&"function"==typeof Blob?new Blob([e]):Buffer.from(e):e}function p(e,i,o){let r=e;if(e&&!o&&"object"==typeof e)if(te.endsWith(i,"{}"))i=n?i:i.slice(0,-2),e=JSON.stringify(e);else if(te.isArray(e)&&function(e){return te.isArray(e)&&!e.some(le)}(e)||(te.isFileList(e)||te.endsWith(i,"[]"))&&(r=te.toArray(e)))return i=ue(i),r.forEach((function(e,n){!te.isUndefined(e)&&null!==e&&a.append(!0===t?de([i],n,s):null===t?i:i+"[]",c(e))})),!1;return!!le(e)||(a.append(de(o,i,s),c(e)),!1)}const l=[],u=Object.assign(me,{defaultVisitor:p,convertValue:c,isVisitable:le});if(!te.isObject(e))throw new TypeError("data must be an object");return function e(i,n){if(!te.isUndefined(i)){if(-1!==l.indexOf(i))throw Error("Circular reference detected in "+n.join("."));l.push(i),te.forEach(i,(function(i,s){!0===(!(te.isUndefined(i)||null===i)&&o.call(a,i,te.isString(s)?s.trim():s,n,u))&&e(i,n?n.concat(s):[s])})),l.pop()}}(e),a}function fe(e){const a={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,(function(e){return a[e]}))}function ve(e,a){this._pairs=[],e&&xe(e,this,a)}const he=ve.prototype;function be(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function ge(e,a,i){if(!a)return e;const n=i&&i.encode||be,o=i&&i.serialize;let s;if(s=o?o(a,i):te.isURLSearchParams(a)?a.toString():new ve(a,i).toString(n),s){const a=e.indexOf("#");-1!==a&&(e=e.slice(0,a)),e+=(-1===e.indexOf("?")?"?":"&")+s}return e}he.append=function(e,a){this._pairs.push([e,a])},he.toString=function(e){const a=e?function(a){return e.call(this,a,fe)}:fe;return this._pairs.map((function(e){return a(e[0])+"="+a(e[1])}),"").join("&")};const ye=class{constructor(){this.handlers=[]}use(e,a,i){return this.handlers.push({fulfilled:e,rejected:a,synchronous:!!i&&i.synchronous,runWhen:i?i.runWhen:null}),this.handlers.length-1}eject(e){this.handlers[e]&&(this.handlers[e]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(e){te.forEach(this.handlers,(function(a){null!==a&&e(a)}))}},we={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},ke={isNode:!0,classes:{URLSearchParams:f.default.URLSearchParams,FormData:x.default,Blob:"undefined"!=typeof Blob&&Blob||null},protocols:["http","https","file","data"]},je="undefined"!=typeof window&&"undefined"!=typeof document,_e=(Ee="undefined"!=typeof navigator&&navigator.product,je&&["ReactNative","NativeScript","NS"].indexOf(Ee)<0);var Ee;const Re="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&"function"==typeof self.importScripts,Se=je&&window.location.href||"http://localhost",Te={...Object.freeze({__proto__:null,hasBrowserEnv:je,hasStandardBrowserWebWorkerEnv:Re,hasStandardBrowserEnv:_e,origin:Se}),...ke};function Oe(e){function a(e,i,n,o){let s=e[o++];if("__proto__"===s)return!0;const t=Number.isFinite(+s),r=o>=e.length;return s=!s&&te.isArray(n)?n.length:s,r?(te.hasOwnProp(n,s)?n[s]=[n[s],i]:n[s]=i,!t):(n[s]&&te.isObject(n[s])||(n[s]=[]),a(e,i,n[s],o)&&te.isArray(n[s])&&(n[s]=function(e){const a={},i=Object.keys(e);let n;const o=i.length;let s;for(n=0;n{a(function(e){return te.matchAll(/\w+|\[(\w*)]/g,e).map((e=>"[]"===e[0]?"":e[1]||e[0]))}(e),n,i,0)})),i}return null}const ze={transitional:we,adapter:["xhr","http","fetch"],transformRequest:[function(e,a){const i=a.getContentType()||"",n=i.indexOf("application/json")>-1,o=te.isObject(e);if(o&&te.isHTMLForm(e)&&(e=new FormData(e)),te.isFormData(e))return n?JSON.stringify(Oe(e)):e;if(te.isArrayBuffer(e)||te.isBuffer(e)||te.isStream(e)||te.isFile(e)||te.isBlob(e)||te.isReadableStream(e))return e;if(te.isArrayBufferView(e))return e.buffer;if(te.isURLSearchParams(e))return a.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),e.toString();let s;if(o){if(i.indexOf("application/x-www-form-urlencoded")>-1)return function(e,a){return xe(e,new Te.classes.URLSearchParams,Object.assign({visitor:function(e,a,i,n){return Te.isNode&&te.isBuffer(e)?(this.append(a,e.toString("base64")),!1):n.defaultVisitor.apply(this,arguments)}},a))}(e,this.formSerializer).toString();if((s=te.isFileList(e))||i.indexOf("multipart/form-data")>-1){const a=this.env&&this.env.FormData;return xe(s?{"files[]":e}:e,a&&new a,this.formSerializer)}}return o||n?(a.setContentType("application/json",!1),function(e,a,i){if(te.isString(e))try{return(0,JSON.parse)(e),te.trim(e)}catch(e){if("SyntaxError"!==e.name)throw e}return(0,JSON.stringify)(e)}(e)):e}],transformResponse:[function(e){const a=this.transitional||ze.transitional,i=a&&a.forcedJSONParsing,n="json"===this.responseType;if(te.isResponse(e)||te.isReadableStream(e))return e;if(e&&te.isString(e)&&(i&&!this.responseType||n)){const i=!(a&&a.silentJSONParsing)&&n;try{return JSON.parse(e)}catch(e){if(i){if("SyntaxError"===e.name)throw re.from(e,re.ERR_BAD_RESPONSE,this,null,this.response);throw e}}}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:Te.classes.FormData,Blob:Te.classes.Blob},validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};te.forEach(["delete","get","head","post","put","patch"],(e=>{ze.headers[e]={}}));const qe=ze,Le=te.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),Ae=Symbol("internals");function Be(e){return e&&String(e).trim().toLowerCase()}function Ne(e){return!1===e||null==e?e:te.isArray(e)?e.map(Ne):String(e)}function Ue(e,a,i,n,o){return te.isFunction(n)?n.call(this,a,i):(o&&(a=i),te.isString(a)?te.isString(n)?-1!==a.indexOf(n):te.isRegExp(n)?n.test(a):void 0:void 0)}class Ce{constructor(e){e&&this.set(e)}set(e,a,i){const n=this;function o(e,a,i){const o=Be(a);if(!o)throw new Error("header name must be a non-empty string");const s=te.findKey(n,o);(!s||void 0===n[s]||!0===i||void 0===i&&!1!==n[s])&&(n[s||a]=Ne(e))}const s=(e,a)=>te.forEach(e,((e,i)=>o(e,i,a)));if(te.isPlainObject(e)||e instanceof this.constructor)s(e,a);else if(te.isString(e)&&(e=e.trim())&&!/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim()))s((e=>{const a={};let i,n,o;return e&&e.split("\n").forEach((function(e){o=e.indexOf(":"),i=e.substring(0,o).trim().toLowerCase(),n=e.substring(o+1).trim(),!i||a[i]&&Le[i]||("set-cookie"===i?a[i]?a[i].push(n):a[i]=[n]:a[i]=a[i]?a[i]+", "+n:n)})),a})(e),a);else if(te.isHeaders(e))for(const[a,n]of e.entries())o(n,a,i);else null!=e&&o(a,e,i);return this}get(e,a){if(e=Be(e)){const i=te.findKey(this,e);if(i){const e=this[i];if(!a)return e;if(!0===a)return function(e){const a=Object.create(null),i=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let n;for(;n=i.exec(e);)a[n[1]]=n[2];return a}(e);if(te.isFunction(a))return a.call(this,e,i);if(te.isRegExp(a))return a.exec(e);throw new TypeError("parser must be boolean|regexp|function")}}}has(e,a){if(e=Be(e)){const i=te.findKey(this,e);return!(!i||void 0===this[i]||a&&!Ue(0,this[i],i,a))}return!1}delete(e,a){const i=this;let n=!1;function o(e){if(e=Be(e)){const o=te.findKey(i,e);!o||a&&!Ue(0,i[o],o,a)||(delete i[o],n=!0)}}return te.isArray(e)?e.forEach(o):o(e),n}clear(e){const a=Object.keys(this);let i=a.length,n=!1;for(;i--;){const o=a[i];e&&!Ue(0,this[o],o,e,!0)||(delete this[o],n=!0)}return n}normalize(e){const a=this,i={};return te.forEach(this,((n,o)=>{const s=te.findKey(i,o);if(s)return a[s]=Ne(n),void delete a[o];const t=e?function(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,((e,a,i)=>a.toUpperCase()+i))}(o):String(o).trim();t!==o&&delete a[o],a[t]=Ne(n),i[t]=!0})),this}concat(...e){return this.constructor.concat(this,...e)}toJSON(e){const a=Object.create(null);return te.forEach(this,((i,n)=>{null!=i&&!1!==i&&(a[n]=e&&te.isArray(i)?i.join(", "):i)})),a}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map((([e,a])=>e+": "+a)).join("\n")}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(e){return e instanceof this?e:new this(e)}static concat(e,...a){const i=new this(e);return a.forEach((e=>i.set(e))),i}static accessor(e){const a=(this[Ae]=this[Ae]={accessors:{}}).accessors,i=this.prototype;function n(e){const n=Be(e);a[n]||(function(e,a){const i=te.toCamelCase(" "+a);["get","set","has"].forEach((n=>{Object.defineProperty(e,n+i,{value:function(e,i,o){return this[n].call(this,a,e,i,o)},configurable:!0})}))}(i,e),a[n]=!0)}return te.isArray(e)?e.forEach(n):n(e),this}}Ce.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]),te.reduceDescriptors(Ce.prototype,(({value:e},a)=>{let i=a[0].toUpperCase()+a.slice(1);return{get:()=>e,set(e){this[i]=e}}})),te.freezeMethods(Ce);const Pe=Ce;function De(e,a){const i=this||qe,n=a||i,o=Pe.from(n.headers);let s=n.data;return te.forEach(e,(function(e){s=e.call(i,s,o.normalize(),a?a.status:void 0)})),o.normalize(),s}function Fe(e){return!(!e||!e.__CANCEL__)}function Ie(e,a,i){re.call(this,null==e?"canceled":e,re.ERR_CANCELED,a,i),this.name="CanceledError"}function Me(e,a,i){const n=i.config.validateStatus;i.status&&n&&!n(i.status)?a(new re("Request failed with status code "+i.status,[re.ERR_BAD_REQUEST,re.ERR_BAD_RESPONSE][Math.floor(i.status/100)-4],i.config,i.request,i)):e(i)}function He(e,a){return e&&!function(e){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}(a)?function(e,a){return a?e.replace(/\/?\/$/,"")+"/"+a.replace(/^\/+/,""):e}(e,a):a}te.inherits(Ie,re,{__CANCEL__:!0});const $e="1.7.2";function We(e){const a=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return a&&a[1]||""}const Ke=/^(?:([^;]+);)?(?:[^;]+;)?(base64|),([\s\S]*)$/;function Je(e,a){let i=0;const n=1e3/a;let o=null;return function(){const a=!0===this,s=Date.now();if(a||s-i>n)return o&&(clearTimeout(o),o=null),i=s,e.apply(null,arguments);o||(o=setTimeout((()=>(o=null,i=Date.now(),e.apply(null,arguments))),n-(s-i)))}}function Ve(e,a){e=e||10;const i=new Array(e),n=new Array(e);let o,s=0,t=0;return a=void 0!==a?a:1e3,function(r){const c=Date.now(),p=n[t];o||(o=c),i[s]=r,n[s]=c;let l=t,u=0;for(;l!==s;)u+=i[l++],l%=e;if(s=(s+1)%e,s===t&&(t=(t+1)%e),c-o!te.isUndefined(a[e])))).chunkSize});const a=this,i=this[Ge]={length:e.length,timeWindow:e.timeWindow,ticksRate:e.ticksRate,chunkSize:e.chunkSize,maxRate:e.maxRate,minChunkSize:e.minChunkSize,bytesSeen:0,isCaptured:!1,notifiedBytesLoaded:0,ts:Date.now(),bytes:0,onReadCallback:null},n=Ve(i.ticksRate*e.samplesCount,i.timeWindow);this.on("newListener",(e=>{"progress"===e&&(i.isCaptured||(i.isCaptured=!0))}));let o=0;i.updateProgress=Je((function(){const e=i.length,s=i.bytesSeen,t=s-o;if(!t||a.destroyed)return;const r=n(t);o=s,process.nextTick((()=>{a.emit("progress",{loaded:s,total:e,progress:e?s/e:void 0,bytes:t,rate:r||void 0,estimated:r&&e&&s<=e?(e-s)/r:void 0,lengthComputable:null!=e})}))}),i.ticksRate);const s=()=>{i.updateProgress.call(!0)};this.once("end",s),this.once("error",s)}_read(e){const a=this[Ge];return a.onReadCallback&&a.onReadCallback(),super._read(e)}_transform(e,a,i){const n=this,o=this[Ge],s=o.maxRate,t=this.readableHighWaterMark,r=o.timeWindow,c=s/(1e3/r),p=!1!==o.minChunkSize?Math.max(o.minChunkSize,.01*c):0,l=(e,a)=>{const i=Buffer.byteLength(e);let l,u=null,d=t,m=0;if(s){const e=Date.now();(!o.ts||(m=e-o.ts)>=r)&&(o.ts=e,l=c-o.bytes,o.bytes=l<0?-l:0,m=0),l=c-o.bytes}if(s){if(l<=0)return setTimeout((()=>{a(null,e)}),r-m);ld&&i-d>p&&(u=e.subarray(d),e=e.subarray(0,d)),function(e,a){const i=Buffer.byteLength(e);o.bytesSeen+=i,o.bytes+=i,o.isCaptured&&o.updateProgress(),n.push(e)?process.nextTick(a):o.onReadCallback=()=>{o.onReadCallback=null,process.nextTick(a)}}(e,u?()=>{process.nextTick(a,null,u)}:a)};l(e,(function e(a,n){if(a)return i(a);n?l(n,e):i(null)}))}setLength(e){return this[Ge].length=+e,this}}const Qe=Xe,{asyncIterator:Ye}=Symbol,Ze=async function*(e){e.stream?yield*e.stream():e.arrayBuffer?yield await e.arrayBuffer():e[Ye]?yield*e[Ye]():yield e},ea=te.ALPHABET.ALPHA_DIGIT+"-_",aa=new c.TextEncoder,ia="\r\n",na=aa.encode(ia);class oa{constructor(e,a){const{escapeName:i}=this.constructor,n=te.isString(a);let o=`Content-Disposition: form-data; name="${i(e)}"${!n&&a.name?`; filename="${i(a.name)}"`:""}${ia}`;n?a=aa.encode(String(a).replace(/\r?\n|\r\n?/g,ia)):o+=`Content-Type: ${a.type||"application/octet-stream"}${ia}`,this.headers=aa.encode(o+ia),this.contentLength=n?a.byteLength:a.size,this.size=this.headers.byteLength+this.contentLength+2,this.name=e,this.value=a}async*encode(){yield this.headers;const{value:e}=this;te.isTypedArray(e)?yield e:yield*Ze(e),yield na}static escapeName(e){return String(e).replace(/[\r\n"]/g,(e=>({"\r":"%0D","\n":"%0A",'"':"%22"}[e])))}}class sa extends w.default.Transform{__transform(e,a,i){this.push(e),i()}_transform(e,a,i){if(0!==e.length&&(this._transform=this.__transform,120!==e[0])){const e=Buffer.alloc(2);e[0]=120,e[1]=156,this.push(e,a)}this.__transform(e,a,i)}}const ta=sa,ra=(e,a)=>te.isAsyncFn(e)?function(...i){const n=i.pop();e.apply(this,i).then((e=>{try{a?n(null,...a(e)):n(null,e)}catch(e){n(e)}}),n)}:e,ca={flush:y.default.constants.Z_SYNC_FLUSH,finishFlush:y.default.constants.Z_SYNC_FLUSH},pa={flush:y.default.constants.BROTLI_OPERATION_FLUSH,finishFlush:y.default.constants.BROTLI_OPERATION_FLUSH},la=te.isFunction(y.default.createBrotliDecompress),{http:ua,https:da}=g.default,ma=/https:?/,xa=Te.protocols.map((e=>e+":"));function fa(e,a){e.beforeRedirects.proxy&&e.beforeRedirects.proxy(e),e.beforeRedirects.config&&e.beforeRedirects.config(e,a)}function va(e,a,i){let n=a;if(!n&&!1!==n){const e=s.getProxyForUrl(i);e&&(n=new URL(e))}if(n){if(n.username&&(n.auth=(n.username||"")+":"+(n.password||"")),n.auth){(n.auth.username||n.auth.password)&&(n.auth=(n.auth.username||"")+":"+(n.auth.password||""));const a=Buffer.from(n.auth,"utf8").toString("base64");e.headers["Proxy-Authorization"]="Basic "+a}e.headers.host=e.hostname+(e.port?":"+e.port:"");const a=n.hostname||n.host;e.hostname=a,e.host=a,e.port=n.port,e.path=i,n.protocol&&(e.protocol=n.protocol.includes(":")?n.protocol:`${n.protocol}:`)}e.beforeRedirects.proxy=function(e){va(e,a,e.href)}}const ha="undefined"!=typeof process&&"process"===te.kindOf(process),ba=(e,a)=>(({address:e,family:a})=>{if(!te.isString(e))throw TypeError("address must be a string");return{address:e,family:a||(e.indexOf(".")<0?6:4)}})(te.isObject(e)?e:{address:e,family:a}),ga=ha&&function(e){return a=async function(a,i,n){let{data:o,lookup:s,family:t}=e;const{responseType:r,responseEncoding:c}=e,p=e.method.toUpperCase();let l,m,x=!1;if(s){const e=ra(s,(e=>te.isArray(e)?e:[e]));s=(a,i,n)=>{e(a,i,((e,a,o)=>{if(e)return n(e);const s=te.isArray(a)?a.map((e=>ba(e))):[ba(a,o)];i.all?n(e,s):n(e,s[0].address,s[0].family)}))}}const f=new d.EventEmitter,g=()=>{e.cancelToken&&e.cancelToken.unsubscribe(k),e.signal&&e.signal.removeEventListener("abort",k),f.removeAllListeners()};function k(a){f.emit("abort",!a||a.type?new Ie(null,e,m):a)}n(((e,a)=>{l=!0,a&&(x=!0,g())})),f.once("abort",i),(e.cancelToken||e.signal)&&(e.cancelToken&&e.cancelToken.subscribe(k),e.signal&&(e.signal.aborted?k():e.signal.addEventListener("abort",k)));const j=He(e.baseURL,e.url),_=new URL(j,"http://localhost"),E=_.protocol||xa[0];if("data:"===E){let n;if("GET"!==p)return Me(a,i,{status:405,statusText:"method not allowed",headers:{},config:e});try{n=function(e,a,i){const n=i&&i.Blob||Te.classes.Blob,o=We(e);if(void 0===a&&n&&(a=!0),"data"===o){e=o.length?e.slice(o.length+1):e;const i=Ke.exec(e);if(!i)throw new re("Invalid URL",re.ERR_INVALID_URL);const s=i[1],t=i[2],r=i[3],c=Buffer.from(decodeURIComponent(r),t?"base64":"utf8");if(a){if(!n)throw new re("Blob is not supported",re.ERR_NOT_SUPPORT);return new n([c],{type:s})}return c}throw new re("Unsupported protocol "+o,re.ERR_NOT_SUPPORT)}(e.url,"blob"===r,{Blob:e.env&&e.env.Blob})}catch(a){throw re.from(a,re.ERR_BAD_REQUEST,e)}return"text"===r?(n=n.toString(c),c&&"utf8"!==c||(n=te.stripBOM(n))):"stream"===r&&(n=w.default.Readable.from(n)),Me(a,i,{data:n,status:200,statusText:"OK",headers:new Pe,config:e})}if(-1===xa.indexOf(E))return i(new re("Unsupported protocol "+E,re.ERR_BAD_REQUEST,e));const R=Pe.from(e.headers).normalize();R.set("User-Agent","axios/"+$e,!1);const S=e.onDownloadProgress,T=e.onUploadProgress,O=e.maxRate;let z,q;if(te.isSpecCompliantForm(o)){const e=R.getContentType(/boundary=([-_\w\d]{10,70})/i);o=((e,a,i)=>{const{tag:n="form-data-boundary",size:o=25,boundary:s=n+"-"+te.generateString(o,ea)}=i||{};if(!te.isFormData(e))throw TypeError("FormData instance required");if(s.length<1||s.length>70)throw Error("boundary must be 10-70 characters long");const t=aa.encode("--"+s+ia),r=aa.encode("--"+s+"--"+ia+ia);let c=r.byteLength;const p=Array.from(e.entries()).map((([e,a])=>{const i=new oa(e,a);return c+=i.size,i}));c+=t.byteLength*p.length,c=te.toFiniteNumber(c);const l={"Content-Type":`multipart/form-data; boundary=${s}`};return Number.isFinite(c)&&(l["Content-Length"]=c),a&&a(l),u.Readable.from(async function*(){for(const e of p)yield t,yield*e.encode();yield r}())})(o,(e=>{R.set(e)}),{tag:`axios-${$e}-boundary`,boundary:e&&e[1]||void 0})}else if(te.isFormData(o)&&te.isFunction(o.getHeaders)){if(R.set(o.getHeaders()),!R.hasContentLength())try{const e=await b.default.promisify(o.getLength).call(o);Number.isFinite(e)&&e>=0&&R.setContentLength(e)}catch(e){}}else if(te.isBlob(o))o.size&&R.setContentType(o.type||"application/octet-stream"),R.setContentLength(o.size||0),o=w.default.Readable.from(Ze(o));else if(o&&!te.isStream(o)){if(Buffer.isBuffer(o));else if(te.isArrayBuffer(o))o=Buffer.from(new Uint8Array(o));else{if(!te.isString(o))return i(new re("Data after transformation must be a string, an ArrayBuffer, a Buffer, or a Stream",re.ERR_BAD_REQUEST,e));o=Buffer.from(o,"utf-8")}if(R.setContentLength(o.length,!1),e.maxBodyLength>-1&&o.length>e.maxBodyLength)return i(new re("Request body larger than maxBodyLength limit",re.ERR_BAD_REQUEST,e))}const L=te.toFiniteNumber(R.getContentLength());let A,B;te.isArray(O)?(z=O[0],q=O[1]):z=q=O,o&&(T||z)&&(te.isStream(o)||(o=w.default.Readable.from(o,{objectMode:!1})),o=w.default.pipeline([o,new Qe({length:L,maxRate:te.toFiniteNumber(z)})],te.noop),T&&o.on("progress",(e=>{T(Object.assign(e,{upload:!0}))}))),e.auth&&(A=(e.auth.username||"")+":"+(e.auth.password||"")),!A&&_.username&&(A=_.username+":"+_.password),A&&R.delete("authorization");try{B=ge(_.pathname+_.search,e.params,e.paramsSerializer).replace(/^\?/,"")}catch(a){const n=new Error(a.message);return n.config=e,n.url=e.url,n.exists=!0,i(n)}R.set("Accept-Encoding","gzip, compress, deflate"+(la?", br":""),!1);const N={path:B,method:p,headers:R.toJSON(),agents:{http:e.httpAgent,https:e.httpsAgent},auth:A,protocol:E,family:t,beforeRedirect:fa,beforeRedirects:{}};let U;!te.isUndefined(s)&&(N.lookup=s),e.socketPath?N.socketPath=e.socketPath:(N.hostname=_.hostname,N.port=_.port,va(N,e.proxy,E+"//"+_.hostname+(_.port?":"+_.port:"")+N.path));const C=ma.test(N.protocol);if(N.agent=C?e.httpsAgent:e.httpAgent,e.transport?U=e.transport:0===e.maxRedirects?U=C?h.default:v.default:(e.maxRedirects&&(N.maxRedirects=e.maxRedirects),e.beforeRedirect&&(N.beforeRedirects.config=e.beforeRedirect),U=C?da:ua),e.maxBodyLength>-1?N.maxBodyLength=e.maxBodyLength:N.maxBodyLength=1/0,e.insecureHTTPParser&&(N.insecureHTTPParser=e.insecureHTTPParser),m=U.request(N,(function(n){if(m.destroyed)return;const o=[n],s=+n.headers["content-length"];if(S){const e=new Qe({length:te.toFiniteNumber(s),maxRate:te.toFiniteNumber(q)});S&&e.on("progress",(e=>{S(Object.assign(e,{download:!0}))})),o.push(e)}let t=n;const l=n.req||m;if(!1!==e.decompress&&n.headers["content-encoding"])switch("HEAD"!==p&&204!==n.statusCode||delete n.headers["content-encoding"],(n.headers["content-encoding"]||"").toLowerCase()){case"gzip":case"x-gzip":case"compress":case"x-compress":o.push(y.default.createUnzip(ca)),delete n.headers["content-encoding"];break;case"deflate":o.push(new ta),o.push(y.default.createUnzip(ca)),delete n.headers["content-encoding"];break;case"br":la&&(o.push(y.default.createBrotliDecompress(pa)),delete n.headers["content-encoding"])}t=o.length>1?w.default.pipeline(o,te.noop):o[0];const u=w.default.finished(t,(()=>{u(),g()})),d={status:n.statusCode,statusText:n.statusMessage,headers:new Pe(n.headers),config:e,request:l};if("stream"===r)d.data=t,Me(a,i,d);else{const n=[];let o=0;t.on("data",(function(a){n.push(a),o+=a.length,e.maxContentLength>-1&&o>e.maxContentLength&&(x=!0,t.destroy(),i(new re("maxContentLength size of "+e.maxContentLength+" exceeded",re.ERR_BAD_RESPONSE,e,l)))})),t.on("aborted",(function(){if(x)return;const a=new re("maxContentLength size of "+e.maxContentLength+" exceeded",re.ERR_BAD_RESPONSE,e,l);t.destroy(a),i(a)})),t.on("error",(function(a){m.destroyed||i(re.from(a,null,e,l))})),t.on("end",(function(){try{let e=1===n.length?n[0]:Buffer.concat(n);"arraybuffer"!==r&&(e=e.toString(c),c&&"utf8"!==c||(e=te.stripBOM(e))),d.data=e}catch(a){return i(re.from(a,null,e,d.request,d))}Me(a,i,d)}))}f.once("abort",(e=>{t.destroyed||(t.emit("error",e),t.destroy())}))})),f.once("abort",(e=>{i(e),m.destroy(e)})),m.on("error",(function(a){i(re.from(a,null,e,m))})),m.on("socket",(function(e){e.setKeepAlive(!0,6e4)})),e.timeout){const a=parseInt(e.timeout,10);if(Number.isNaN(a))return void i(new re("error trying to parse `config.timeout` to int",re.ERR_BAD_OPTION_VALUE,e,m));m.setTimeout(a,(function(){if(l)return;let a=e.timeout?"timeout of "+e.timeout+"ms exceeded":"timeout exceeded";const n=e.transitional||we;e.timeoutErrorMessage&&(a=e.timeoutErrorMessage),i(new re(a,n.clarifyTimeoutError?re.ETIMEDOUT:re.ECONNABORTED,e,m)),k()}))}if(te.isStream(o)){let a=!1,i=!1;o.on("end",(()=>{a=!0})),o.once("error",(e=>{i=!0,m.destroy(e)})),o.on("close",(()=>{a||i||k(new Ie("Request stream has been aborted",e,m))})),o.pipe(m)}else m.end(o)},new Promise(((e,i)=>{let n,o;const s=(e,a)=>{o||(o=!0,n&&n(e,a))},t=e=>{s(e,!0),i(e)};a((a=>{s(a),e(a)}),t,(e=>n=e)).catch(t)}));var a},ya=(e,a,i=3)=>{let n=0;const o=Ve(50,250);return Je((i=>{const s=i.loaded,t=i.lengthComputable?i.total:void 0,r=s-n,c=o(r);n=s;const p={loaded:s,total:t,progress:t?s/t:void 0,bytes:r,rate:c||void 0,estimated:c&&t&&s<=t?(t-s)/c:void 0,event:i,lengthComputable:null!=t};p[a?"download":"upload"]=!0,e(p)}),i)},wa=Te.hasStandardBrowserEnv?function(){const e=/(msie|trident)/i.test(navigator.userAgent),a=document.createElement("a");let i;function n(i){let n=i;return e&&(a.setAttribute("href",n),n=a.href),a.setAttribute("href",n),{href:a.href,protocol:a.protocol?a.protocol.replace(/:$/,""):"",host:a.host,search:a.search?a.search.replace(/^\?/,""):"",hash:a.hash?a.hash.replace(/^#/,""):"",hostname:a.hostname,port:a.port,pathname:"/"===a.pathname.charAt(0)?a.pathname:"/"+a.pathname}}return i=n(window.location.href),function(e){const a=te.isString(e)?n(e):e;return a.protocol===i.protocol&&a.host===i.host}}():function(){return!0},ka=Te.hasStandardBrowserEnv?{write(e,a,i,n,o,s){const t=[e+"="+encodeURIComponent(a)];te.isNumber(i)&&t.push("expires="+new Date(i).toGMTString()),te.isString(n)&&t.push("path="+n),te.isString(o)&&t.push("domain="+o),!0===s&&t.push("secure"),document.cookie=t.join("; ")},read(e){const a=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return a?decodeURIComponent(a[3]):null},remove(e){this.write(e,"",Date.now()-864e5)}}:{write(){},read:()=>null,remove(){}},ja=e=>e instanceof Pe?{...e}:e;function _a(e,a){a=a||{};const i={};function n(e,a,i){return te.isPlainObject(e)&&te.isPlainObject(a)?te.merge.call({caseless:i},e,a):te.isPlainObject(a)?te.merge({},a):te.isArray(a)?a.slice():a}function o(e,a,i){return te.isUndefined(a)?te.isUndefined(e)?void 0:n(void 0,e,i):n(e,a,i)}function s(e,a){if(!te.isUndefined(a))return n(void 0,a)}function t(e,a){return te.isUndefined(a)?te.isUndefined(e)?void 0:n(void 0,e):n(void 0,a)}function r(i,o,s){return s in a?n(i,o):s in e?n(void 0,i):void 0}const c={url:s,method:s,data:s,baseURL:t,transformRequest:t,transformResponse:t,paramsSerializer:t,timeout:t,timeoutMessage:t,withCredentials:t,withXSRFToken:t,adapter:t,responseType:t,xsrfCookieName:t,xsrfHeaderName:t,onUploadProgress:t,onDownloadProgress:t,decompress:t,maxContentLength:t,maxBodyLength:t,beforeRedirect:t,transport:t,httpAgent:t,httpsAgent:t,cancelToken:t,socketPath:t,responseEncoding:t,validateStatus:r,headers:(e,a)=>o(ja(e),ja(a),!0)};return te.forEach(Object.keys(Object.assign({},e,a)),(function(n){const s=c[n]||o,t=s(e[n],a[n],n);te.isUndefined(t)&&s!==r||(i[n]=t)})),i}const Ea=e=>{const a=_a({},e);let i,{data:n,withXSRFToken:o,xsrfHeaderName:s,xsrfCookieName:t,headers:r,auth:c}=a;if(a.headers=r=Pe.from(r),a.url=ge(He(a.baseURL,a.url),e.params,e.paramsSerializer),c&&r.set("Authorization","Basic "+btoa((c.username||"")+":"+(c.password?unescape(encodeURIComponent(c.password)):""))),te.isFormData(n))if(Te.hasStandardBrowserEnv||Te.hasStandardBrowserWebWorkerEnv)r.setContentType(void 0);else if(!1!==(i=r.getContentType())){const[e,...a]=i?i.split(";").map((e=>e.trim())).filter(Boolean):[];r.setContentType([e||"multipart/form-data",...a].join("; "))}if(Te.hasStandardBrowserEnv&&(o&&te.isFunction(o)&&(o=o(a)),o||!1!==o&&wa(a.url))){const e=s&&t&&ka.read(t);e&&r.set(s,e)}return a},Ra="undefined"!=typeof XMLHttpRequest&&function(e){return new Promise((function(a,i){const n=Ea(e);let o=n.data;const s=Pe.from(n.headers).normalize();let t,{responseType:r}=n;function c(){n.cancelToken&&n.cancelToken.unsubscribe(t),n.signal&&n.signal.removeEventListener("abort",t)}let p=new XMLHttpRequest;function l(){if(!p)return;const n=Pe.from("getAllResponseHeaders"in p&&p.getAllResponseHeaders());Me((function(e){a(e),c()}),(function(e){i(e),c()}),{data:r&&"text"!==r&&"json"!==r?p.response:p.responseText,status:p.status,statusText:p.statusText,headers:n,config:e,request:p}),p=null}p.open(n.method.toUpperCase(),n.url,!0),p.timeout=n.timeout,"onloadend"in p?p.onloadend=l:p.onreadystatechange=function(){p&&4===p.readyState&&(0!==p.status||p.responseURL&&0===p.responseURL.indexOf("file:"))&&setTimeout(l)},p.onabort=function(){p&&(i(new re("Request aborted",re.ECONNABORTED,n,p)),p=null)},p.onerror=function(){i(new re("Network Error",re.ERR_NETWORK,n,p)),p=null},p.ontimeout=function(){let e=n.timeout?"timeout of "+n.timeout+"ms exceeded":"timeout exceeded";const a=n.transitional||we;n.timeoutErrorMessage&&(e=n.timeoutErrorMessage),i(new re(e,a.clarifyTimeoutError?re.ETIMEDOUT:re.ECONNABORTED,n,p)),p=null},void 0===o&&s.setContentType(null),"setRequestHeader"in p&&te.forEach(s.toJSON(),(function(e,a){p.setRequestHeader(a,e)})),te.isUndefined(n.withCredentials)||(p.withCredentials=!!n.withCredentials),r&&"json"!==r&&(p.responseType=n.responseType),"function"==typeof n.onDownloadProgress&&p.addEventListener("progress",ya(n.onDownloadProgress,!0)),"function"==typeof n.onUploadProgress&&p.upload&&p.upload.addEventListener("progress",ya(n.onUploadProgress)),(n.cancelToken||n.signal)&&(t=a=>{p&&(i(!a||a.type?new Ie(null,e,p):a),p.abort(),p=null)},n.cancelToken&&n.cancelToken.subscribe(t),n.signal&&(n.signal.aborted?t():n.signal.addEventListener("abort",t)));const u=We(n.url);u&&-1===Te.protocols.indexOf(u)?i(new re("Unsupported protocol "+u+":",re.ERR_BAD_REQUEST,e)):p.send(o||null)}))},Sa=(e,a)=>{let i,n=new AbortController;const o=function(e){if(!i){i=!0,t();const a=e instanceof Error?e:this.reason;n.abort(a instanceof re?a:new Ie(a instanceof Error?a.message:a))}};let s=a&&setTimeout((()=>{o(new re(`timeout ${a} of ms exceeded`,re.ETIMEDOUT))}),a);const t=()=>{e&&(s&&clearTimeout(s),s=null,e.forEach((e=>{e&&(e.removeEventListener?e.removeEventListener("abort",o):e.unsubscribe(o))})),e=null)};e.forEach((e=>e&&e.addEventListener&&e.addEventListener("abort",o)));const{signal:r}=n;return r.unsubscribe=t,[r,()=>{s&&clearTimeout(s),s=null}]},Ta=function*(e,a){let i=e.byteLength;if(!a||i{const s=async function*(e,a,i){for await(const n of e)yield*Ta(ArrayBuffer.isView(n)?n:await i(String(n)),a)}(e,a,o);let t=0;return new ReadableStream({type:"bytes",async pull(e){const{done:a,value:o}=await s.next();if(a)return e.close(),void n();let r=o.byteLength;i&&i(t+=r),e.enqueue(new Uint8Array(o))},cancel:e=>(n(e),s.return())},{highWaterMark:2})},za=(e,a)=>{const i=null!=e;return n=>setTimeout((()=>a({lengthComputable:i,total:e,loaded:n})))},qa="function"==typeof fetch&&"function"==typeof Request&&"function"==typeof Response,La=qa&&"function"==typeof ReadableStream,Aa=qa&&("function"==typeof TextEncoder?(Ba=new TextEncoder,e=>Ba.encode(e)):async e=>new Uint8Array(await new Response(e).arrayBuffer()));var Ba;const Na=La&&(()=>{let e=!1;const a=new Request(Te.origin,{body:new ReadableStream,method:"POST",get duplex(){return e=!0,"half"}}).headers.has("Content-Type");return e&&!a})(),Ua=La&&!!(()=>{try{return te.isReadableStream(new Response("").body)}catch(e){}})(),Ca={stream:Ua&&(e=>e.body)};var Pa;qa&&(Pa=new Response,["text","arrayBuffer","blob","formData","stream"].forEach((e=>{!Ca[e]&&(Ca[e]=te.isFunction(Pa[e])?a=>a[e]():(a,i)=>{throw new re(`Response type '${e}' is not supported`,re.ERR_NOT_SUPPORT,i)})})));const Da=qa&&(async e=>{let{url:a,method:i,data:n,signal:o,cancelToken:s,timeout:t,onDownloadProgress:r,onUploadProgress:c,responseType:p,headers:l,withCredentials:u="same-origin",fetchOptions:d}=Ea(e);p=p?(p+"").toLowerCase():"text";let m,x,[f,v]=o||s||t?Sa([o,s],t):[];const h=()=>{!m&&setTimeout((()=>{f&&f.unsubscribe()})),m=!0};let b;try{if(c&&Na&&"get"!==i&&"head"!==i&&0!==(b=await(async(e,a)=>{const i=te.toFiniteNumber(e.getContentLength());return null==i?(async e=>null==e?0:te.isBlob(e)?e.size:te.isSpecCompliantForm(e)?(await new Request(e).arrayBuffer()).byteLength:te.isArrayBufferView(e)?e.byteLength:(te.isURLSearchParams(e)&&(e+=""),te.isString(e)?(await Aa(e)).byteLength:void 0))(a):i})(l,n))){let e,i=new Request(a,{method:"POST",body:n,duplex:"half"});te.isFormData(n)&&(e=i.headers.get("content-type"))&&l.setContentType(e),i.body&&(n=Oa(i.body,65536,za(b,ya(c)),null,Aa))}te.isString(u)||(u=u?"cors":"omit"),x=new Request(a,{...d,signal:f,method:i.toUpperCase(),headers:l.normalize().toJSON(),body:n,duplex:"half",withCredentials:u});let o=await fetch(x);const s=Ua&&("stream"===p||"response"===p);if(Ua&&(r||s)){const e={};["status","statusText","headers"].forEach((a=>{e[a]=o[a]}));const a=te.toFiniteNumber(o.headers.get("content-length"));o=new Response(Oa(o.body,65536,r&&za(a,ya(r,!0)),s&&h,Aa),e)}p=p||"text";let t=await Ca[te.findKey(Ca,p)||"text"](o,e);return!s&&h(),v&&v(),await new Promise(((a,i)=>{Me(a,i,{data:t,headers:Pe.from(o.headers),status:o.status,statusText:o.statusText,config:e,request:x})}))}catch(a){if(h(),a&&"TypeError"===a.name&&/fetch/i.test(a.message))throw Object.assign(new re("Network Error",re.ERR_NETWORK,e,x),{cause:a.cause||a});throw re.from(a,a&&a.code,e,x)}}),Fa={http:ga,xhr:Ra,fetch:Da};te.forEach(Fa,((e,a)=>{if(e){try{Object.defineProperty(e,"name",{value:a})}catch(e){}Object.defineProperty(e,"adapterName",{value:a})}}));const Ia=e=>`- ${e}`,Ma=e=>te.isFunction(e)||null===e||!1===e,Ha=e=>{e=te.isArray(e)?e:[e];const{length:a}=e;let i,n;const o={};for(let s=0;s`adapter ${e} `+(!1===a?"is not supported by the environment":"is not available in the build")));throw new re("There is no suitable adapter to dispatch the request "+(a?e.length>1?"since :\n"+e.map(Ia).join("\n"):" "+Ia(e[0]):"as no adapter specified"),"ERR_NOT_SUPPORT")}return n};function $a(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new Ie(null,e)}function Wa(e){return $a(e),e.headers=Pe.from(e.headers),e.data=De.call(e,e.transformRequest),-1!==["post","put","patch"].indexOf(e.method)&&e.headers.setContentType("application/x-www-form-urlencoded",!1),Ha(e.adapter||qe.adapter)(e).then((function(a){return $a(e),a.data=De.call(e,e.transformResponse,a),a.headers=Pe.from(a.headers),a}),(function(a){return Fe(a)||($a(e),a&&a.response&&(a.response.data=De.call(e,e.transformResponse,a.response),a.response.headers=Pe.from(a.response.headers))),Promise.reject(a)}))}const Ka={};["object","boolean","number","function","string","symbol"].forEach(((e,a)=>{Ka[e]=function(i){return typeof i===e||"a"+(a<1?"n ":" ")+e}}));const Ja={};Ka.transitional=function(e,a,i){function n(e,a){return"[Axios v1.7.2] Transitional option '"+e+"'"+a+(i?". "+i:"")}return(i,o,s)=>{if(!1===e)throw new re(n(o," has been removed"+(a?" in "+a:"")),re.ERR_DEPRECATED);return a&&!Ja[o]&&(Ja[o]=!0,console.warn(n(o," has been deprecated since v"+a+" and will be removed in the near future"))),!e||e(i,o,s)}};const Va={assertOptions:function(e,a,i){if("object"!=typeof e)throw new re("options must be an object",re.ERR_BAD_OPTION_VALUE);const n=Object.keys(e);let o=n.length;for(;o-- >0;){const s=n[o],t=a[s];if(t){const a=e[s],i=void 0===a||t(a,s,e);if(!0!==i)throw new re("option "+s+" must be "+i,re.ERR_BAD_OPTION_VALUE)}else if(!0!==i)throw new re("Unknown option "+s,re.ERR_BAD_OPTION)}},validators:Ka},Ga=Va.validators;class Xa{constructor(e){this.defaults=e,this.interceptors={request:new ye,response:new ye}}async request(e,a){try{return await this._request(e,a)}catch(e){if(e instanceof Error){let a;Error.captureStackTrace?Error.captureStackTrace(a={}):a=new Error;const i=a.stack?a.stack.replace(/^.+\n/,""):"";try{e.stack?i&&!String(e.stack).endsWith(i.replace(/^.+\n.+\n/,""))&&(e.stack+="\n"+i):e.stack=i}catch(e){}}throw e}}_request(e,a){"string"==typeof e?(a=a||{}).url=e:a=e||{},a=_a(this.defaults,a);const{transitional:i,paramsSerializer:n,headers:o}=a;void 0!==i&&Va.assertOptions(i,{silentJSONParsing:Ga.transitional(Ga.boolean),forcedJSONParsing:Ga.transitional(Ga.boolean),clarifyTimeoutError:Ga.transitional(Ga.boolean)},!1),null!=n&&(te.isFunction(n)?a.paramsSerializer={serialize:n}:Va.assertOptions(n,{encode:Ga.function,serialize:Ga.function},!0)),a.method=(a.method||this.defaults.method||"get").toLowerCase();let s=o&&te.merge(o.common,o[a.method]);o&&te.forEach(["delete","get","head","post","put","patch","common"],(e=>{delete o[e]})),a.headers=Pe.concat(s,o);const t=[];let r=!0;this.interceptors.request.forEach((function(e){"function"==typeof e.runWhen&&!1===e.runWhen(a)||(r=r&&e.synchronous,t.unshift(e.fulfilled,e.rejected))}));const c=[];let p;this.interceptors.response.forEach((function(e){c.push(e.fulfilled,e.rejected)}));let l,u=0;if(!r){const e=[Wa.bind(this),void 0];for(e.unshift.apply(e,t),e.push.apply(e,c),l=e.length,p=Promise.resolve(a);u{if(!i._listeners)return;let a=i._listeners.length;for(;a-- >0;)i._listeners[a](e);i._listeners=null})),this.promise.then=e=>{let a;const n=new Promise((e=>{i.subscribe(e),a=e})).then(e);return n.cancel=function(){i.unsubscribe(a)},n},e((function(e,n,o){i.reason||(i.reason=new Ie(e,n,o),a(i.reason))}))}throwIfRequested(){if(this.reason)throw this.reason}subscribe(e){this.reason?e(this.reason):this._listeners?this._listeners.push(e):this._listeners=[e]}unsubscribe(e){if(!this._listeners)return;const a=this._listeners.indexOf(e);-1!==a&&this._listeners.splice(a,1)}static source(){let e;return{token:new Ya((function(a){e=a})),cancel:e}}}const Za=Ya,ei={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(ei).forEach((([e,a])=>{ei[a]=e}));const ai=ei,ii=function e(a){const i=new Qa(a),n=k(Qa.prototype.request,i);return te.extend(n,Qa.prototype,i,{allOwnKeys:!0}),te.extend(n,i,null,{allOwnKeys:!0}),n.create=function(i){return e(_a(a,i))},n}(qe);ii.Axios=Qa,ii.CanceledError=Ie,ii.CancelToken=Za,ii.isCancel=Fe,ii.VERSION=$e,ii.toFormData=xe,ii.AxiosError=re,ii.Cancel=ii.CanceledError,ii.all=function(e){return Promise.all(e)},ii.spread=function(e){return function(a){return e.apply(null,a)}},ii.isAxiosError=function(e){return te.isObject(e)&&!0===e.isAxiosError},ii.mergeConfig=_a,ii.AxiosHeaders=Pe,ii.formToJSON=e=>Oe(te.isHTMLForm(e)?new FormData(e):e),ii.getAdapter=Ha,ii.HttpStatusCode=ai,ii.default=ii,e.exports=ii},1813:e=>{"use strict";e.exports=JSON.parse('{"application/1d-interleaved-parityfec":{"source":"iana"},"application/3gpdash-qoe-report+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/3gpp-ims+xml":{"source":"iana","compressible":true},"application/3gpphal+json":{"source":"iana","compressible":true},"application/3gpphalforms+json":{"source":"iana","compressible":true},"application/a2l":{"source":"iana"},"application/ace+cbor":{"source":"iana"},"application/activemessage":{"source":"iana"},"application/activity+json":{"source":"iana","compressible":true},"application/alto-costmap+json":{"source":"iana","compressible":true},"application/alto-costmapfilter+json":{"source":"iana","compressible":true},"application/alto-directory+json":{"source":"iana","compressible":true},"application/alto-endpointcost+json":{"source":"iana","compressible":true},"application/alto-endpointcostparams+json":{"source":"iana","compressible":true},"application/alto-endpointprop+json":{"source":"iana","compressible":true},"application/alto-endpointpropparams+json":{"source":"iana","compressible":true},"application/alto-error+json":{"source":"iana","compressible":true},"application/alto-networkmap+json":{"source":"iana","compressible":true},"application/alto-networkmapfilter+json":{"source":"iana","compressible":true},"application/alto-updatestreamcontrol+json":{"source":"iana","compressible":true},"application/alto-updatestreamparams+json":{"source":"iana","compressible":true},"application/aml":{"source":"iana"},"application/andrew-inset":{"source":"iana","extensions":["ez"]},"application/applefile":{"source":"iana"},"application/applixware":{"source":"apache","extensions":["aw"]},"application/at+jwt":{"source":"iana"},"application/atf":{"source":"iana"},"application/atfx":{"source":"iana"},"application/atom+xml":{"source":"iana","compressible":true,"extensions":["atom"]},"application/atomcat+xml":{"source":"iana","compressible":true,"extensions":["atomcat"]},"application/atomdeleted+xml":{"source":"iana","compressible":true,"extensions":["atomdeleted"]},"application/atomicmail":{"source":"iana"},"application/atomsvc+xml":{"source":"iana","compressible":true,"extensions":["atomsvc"]},"application/atsc-dwd+xml":{"source":"iana","compressible":true,"extensions":["dwd"]},"application/atsc-dynamic-event-message":{"source":"iana"},"application/atsc-held+xml":{"source":"iana","compressible":true,"extensions":["held"]},"application/atsc-rdt+json":{"source":"iana","compressible":true},"application/atsc-rsat+xml":{"source":"iana","compressible":true,"extensions":["rsat"]},"application/atxml":{"source":"iana"},"application/auth-policy+xml":{"source":"iana","compressible":true},"application/bacnet-xdd+zip":{"source":"iana","compressible":false},"application/batch-smtp":{"source":"iana"},"application/bdoc":{"compressible":false,"extensions":["bdoc"]},"application/beep+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/calendar+json":{"source":"iana","compressible":true},"application/calendar+xml":{"source":"iana","compressible":true,"extensions":["xcs"]},"application/call-completion":{"source":"iana"},"application/cals-1840":{"source":"iana"},"application/captive+json":{"source":"iana","compressible":true},"application/cbor":{"source":"iana"},"application/cbor-seq":{"source":"iana"},"application/cccex":{"source":"iana"},"application/ccmp+xml":{"source":"iana","compressible":true},"application/ccxml+xml":{"source":"iana","compressible":true,"extensions":["ccxml"]},"application/cdfx+xml":{"source":"iana","compressible":true,"extensions":["cdfx"]},"application/cdmi-capability":{"source":"iana","extensions":["cdmia"]},"application/cdmi-container":{"source":"iana","extensions":["cdmic"]},"application/cdmi-domain":{"source":"iana","extensions":["cdmid"]},"application/cdmi-object":{"source":"iana","extensions":["cdmio"]},"application/cdmi-queue":{"source":"iana","extensions":["cdmiq"]},"application/cdni":{"source":"iana"},"application/cea":{"source":"iana"},"application/cea-2018+xml":{"source":"iana","compressible":true},"application/cellml+xml":{"source":"iana","compressible":true},"application/cfw":{"source":"iana"},"application/city+json":{"source":"iana","compressible":true},"application/clr":{"source":"iana"},"application/clue+xml":{"source":"iana","compressible":true},"application/clue_info+xml":{"source":"iana","compressible":true},"application/cms":{"source":"iana"},"application/cnrp+xml":{"source":"iana","compressible":true},"application/coap-group+json":{"source":"iana","compressible":true},"application/coap-payload":{"source":"iana"},"application/commonground":{"source":"iana"},"application/conference-info+xml":{"source":"iana","compressible":true},"application/cose":{"source":"iana"},"application/cose-key":{"source":"iana"},"application/cose-key-set":{"source":"iana"},"application/cpl+xml":{"source":"iana","compressible":true,"extensions":["cpl"]},"application/csrattrs":{"source":"iana"},"application/csta+xml":{"source":"iana","compressible":true},"application/cstadata+xml":{"source":"iana","compressible":true},"application/csvm+json":{"source":"iana","compressible":true},"application/cu-seeme":{"source":"apache","extensions":["cu"]},"application/cwt":{"source":"iana"},"application/cybercash":{"source":"iana"},"application/dart":{"compressible":true},"application/dash+xml":{"source":"iana","compressible":true,"extensions":["mpd"]},"application/dash-patch+xml":{"source":"iana","compressible":true,"extensions":["mpp"]},"application/dashdelta":{"source":"iana"},"application/davmount+xml":{"source":"iana","compressible":true,"extensions":["davmount"]},"application/dca-rft":{"source":"iana"},"application/dcd":{"source":"iana"},"application/dec-dx":{"source":"iana"},"application/dialog-info+xml":{"source":"iana","compressible":true},"application/dicom":{"source":"iana"},"application/dicom+json":{"source":"iana","compressible":true},"application/dicom+xml":{"source":"iana","compressible":true},"application/dii":{"source":"iana"},"application/dit":{"source":"iana"},"application/dns":{"source":"iana"},"application/dns+json":{"source":"iana","compressible":true},"application/dns-message":{"source":"iana"},"application/docbook+xml":{"source":"apache","compressible":true,"extensions":["dbk"]},"application/dots+cbor":{"source":"iana"},"application/dskpp+xml":{"source":"iana","compressible":true},"application/dssc+der":{"source":"iana","extensions":["dssc"]},"application/dssc+xml":{"source":"iana","compressible":true,"extensions":["xdssc"]},"application/dvcs":{"source":"iana"},"application/ecmascript":{"source":"iana","compressible":true,"extensions":["es","ecma"]},"application/edi-consent":{"source":"iana"},"application/edi-x12":{"source":"iana","compressible":false},"application/edifact":{"source":"iana","compressible":false},"application/efi":{"source":"iana"},"application/elm+json":{"source":"iana","charset":"UTF-8","compressible":true},"application/elm+xml":{"source":"iana","compressible":true},"application/emergencycalldata.cap+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/emergencycalldata.comment+xml":{"source":"iana","compressible":true},"application/emergencycalldata.control+xml":{"source":"iana","compressible":true},"application/emergencycalldata.deviceinfo+xml":{"source":"iana","compressible":true},"application/emergencycalldata.ecall.msd":{"source":"iana"},"application/emergencycalldata.providerinfo+xml":{"source":"iana","compressible":true},"application/emergencycalldata.serviceinfo+xml":{"source":"iana","compressible":true},"application/emergencycalldata.subscriberinfo+xml":{"source":"iana","compressible":true},"application/emergencycalldata.veds+xml":{"source":"iana","compressible":true},"application/emma+xml":{"source":"iana","compressible":true,"extensions":["emma"]},"application/emotionml+xml":{"source":"iana","compressible":true,"extensions":["emotionml"]},"application/encaprtp":{"source":"iana"},"application/epp+xml":{"source":"iana","compressible":true},"application/epub+zip":{"source":"iana","compressible":false,"extensions":["epub"]},"application/eshop":{"source":"iana"},"application/exi":{"source":"iana","extensions":["exi"]},"application/expect-ct-report+json":{"source":"iana","compressible":true},"application/express":{"source":"iana","extensions":["exp"]},"application/fastinfoset":{"source":"iana"},"application/fastsoap":{"source":"iana"},"application/fdt+xml":{"source":"iana","compressible":true,"extensions":["fdt"]},"application/fhir+json":{"source":"iana","charset":"UTF-8","compressible":true},"application/fhir+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/fido.trusted-apps+json":{"compressible":true},"application/fits":{"source":"iana"},"application/flexfec":{"source":"iana"},"application/font-sfnt":{"source":"iana"},"application/font-tdpfr":{"source":"iana","extensions":["pfr"]},"application/font-woff":{"source":"iana","compressible":false},"application/framework-attributes+xml":{"source":"iana","compressible":true},"application/geo+json":{"source":"iana","compressible":true,"extensions":["geojson"]},"application/geo+json-seq":{"source":"iana"},"application/geopackage+sqlite3":{"source":"iana"},"application/geoxacml+xml":{"source":"iana","compressible":true},"application/gltf-buffer":{"source":"iana"},"application/gml+xml":{"source":"iana","compressible":true,"extensions":["gml"]},"application/gpx+xml":{"source":"apache","compressible":true,"extensions":["gpx"]},"application/gxf":{"source":"apache","extensions":["gxf"]},"application/gzip":{"source":"iana","compressible":false,"extensions":["gz"]},"application/h224":{"source":"iana"},"application/held+xml":{"source":"iana","compressible":true},"application/hjson":{"extensions":["hjson"]},"application/http":{"source":"iana"},"application/hyperstudio":{"source":"iana","extensions":["stk"]},"application/ibe-key-request+xml":{"source":"iana","compressible":true},"application/ibe-pkg-reply+xml":{"source":"iana","compressible":true},"application/ibe-pp-data":{"source":"iana"},"application/iges":{"source":"iana"},"application/im-iscomposing+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/index":{"source":"iana"},"application/index.cmd":{"source":"iana"},"application/index.obj":{"source":"iana"},"application/index.response":{"source":"iana"},"application/index.vnd":{"source":"iana"},"application/inkml+xml":{"source":"iana","compressible":true,"extensions":["ink","inkml"]},"application/iotp":{"source":"iana"},"application/ipfix":{"source":"iana","extensions":["ipfix"]},"application/ipp":{"source":"iana"},"application/isup":{"source":"iana"},"application/its+xml":{"source":"iana","compressible":true,"extensions":["its"]},"application/java-archive":{"source":"apache","compressible":false,"extensions":["jar","war","ear"]},"application/java-serialized-object":{"source":"apache","compressible":false,"extensions":["ser"]},"application/java-vm":{"source":"apache","compressible":false,"extensions":["class"]},"application/javascript":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["js","mjs"]},"application/jf2feed+json":{"source":"iana","compressible":true},"application/jose":{"source":"iana"},"application/jose+json":{"source":"iana","compressible":true},"application/jrd+json":{"source":"iana","compressible":true},"application/jscalendar+json":{"source":"iana","compressible":true},"application/json":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["json","map"]},"application/json-patch+json":{"source":"iana","compressible":true},"application/json-seq":{"source":"iana"},"application/json5":{"extensions":["json5"]},"application/jsonml+json":{"source":"apache","compressible":true,"extensions":["jsonml"]},"application/jwk+json":{"source":"iana","compressible":true},"application/jwk-set+json":{"source":"iana","compressible":true},"application/jwt":{"source":"iana"},"application/kpml-request+xml":{"source":"iana","compressible":true},"application/kpml-response+xml":{"source":"iana","compressible":true},"application/ld+json":{"source":"iana","compressible":true,"extensions":["jsonld"]},"application/lgr+xml":{"source":"iana","compressible":true,"extensions":["lgr"]},"application/link-format":{"source":"iana"},"application/load-control+xml":{"source":"iana","compressible":true},"application/lost+xml":{"source":"iana","compressible":true,"extensions":["lostxml"]},"application/lostsync+xml":{"source":"iana","compressible":true},"application/lpf+zip":{"source":"iana","compressible":false},"application/lxf":{"source":"iana"},"application/mac-binhex40":{"source":"iana","extensions":["hqx"]},"application/mac-compactpro":{"source":"apache","extensions":["cpt"]},"application/macwriteii":{"source":"iana"},"application/mads+xml":{"source":"iana","compressible":true,"extensions":["mads"]},"application/manifest+json":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["webmanifest"]},"application/marc":{"source":"iana","extensions":["mrc"]},"application/marcxml+xml":{"source":"iana","compressible":true,"extensions":["mrcx"]},"application/mathematica":{"source":"iana","extensions":["ma","nb","mb"]},"application/mathml+xml":{"source":"iana","compressible":true,"extensions":["mathml"]},"application/mathml-content+xml":{"source":"iana","compressible":true},"application/mathml-presentation+xml":{"source":"iana","compressible":true},"application/mbms-associated-procedure-description+xml":{"source":"iana","compressible":true},"application/mbms-deregister+xml":{"source":"iana","compressible":true},"application/mbms-envelope+xml":{"source":"iana","compressible":true},"application/mbms-msk+xml":{"source":"iana","compressible":true},"application/mbms-msk-response+xml":{"source":"iana","compressible":true},"application/mbms-protection-description+xml":{"source":"iana","compressible":true},"application/mbms-reception-report+xml":{"source":"iana","compressible":true},"application/mbms-register+xml":{"source":"iana","compressible":true},"application/mbms-register-response+xml":{"source":"iana","compressible":true},"application/mbms-schedule+xml":{"source":"iana","compressible":true},"application/mbms-user-service-description+xml":{"source":"iana","compressible":true},"application/mbox":{"source":"iana","extensions":["mbox"]},"application/media-policy-dataset+xml":{"source":"iana","compressible":true,"extensions":["mpf"]},"application/media_control+xml":{"source":"iana","compressible":true},"application/mediaservercontrol+xml":{"source":"iana","compressible":true,"extensions":["mscml"]},"application/merge-patch+json":{"source":"iana","compressible":true},"application/metalink+xml":{"source":"apache","compressible":true,"extensions":["metalink"]},"application/metalink4+xml":{"source":"iana","compressible":true,"extensions":["meta4"]},"application/mets+xml":{"source":"iana","compressible":true,"extensions":["mets"]},"application/mf4":{"source":"iana"},"application/mikey":{"source":"iana"},"application/mipc":{"source":"iana"},"application/missing-blocks+cbor-seq":{"source":"iana"},"application/mmt-aei+xml":{"source":"iana","compressible":true,"extensions":["maei"]},"application/mmt-usd+xml":{"source":"iana","compressible":true,"extensions":["musd"]},"application/mods+xml":{"source":"iana","compressible":true,"extensions":["mods"]},"application/moss-keys":{"source":"iana"},"application/moss-signature":{"source":"iana"},"application/mosskey-data":{"source":"iana"},"application/mosskey-request":{"source":"iana"},"application/mp21":{"source":"iana","extensions":["m21","mp21"]},"application/mp4":{"source":"iana","extensions":["mp4s","m4p"]},"application/mpeg4-generic":{"source":"iana"},"application/mpeg4-iod":{"source":"iana"},"application/mpeg4-iod-xmt":{"source":"iana"},"application/mrb-consumer+xml":{"source":"iana","compressible":true},"application/mrb-publish+xml":{"source":"iana","compressible":true},"application/msc-ivr+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/msc-mixer+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/msword":{"source":"iana","compressible":false,"extensions":["doc","dot"]},"application/mud+json":{"source":"iana","compressible":true},"application/multipart-core":{"source":"iana"},"application/mxf":{"source":"iana","extensions":["mxf"]},"application/n-quads":{"source":"iana","extensions":["nq"]},"application/n-triples":{"source":"iana","extensions":["nt"]},"application/nasdata":{"source":"iana"},"application/news-checkgroups":{"source":"iana","charset":"US-ASCII"},"application/news-groupinfo":{"source":"iana","charset":"US-ASCII"},"application/news-transmission":{"source":"iana"},"application/nlsml+xml":{"source":"iana","compressible":true},"application/node":{"source":"iana","extensions":["cjs"]},"application/nss":{"source":"iana"},"application/oauth-authz-req+jwt":{"source":"iana"},"application/oblivious-dns-message":{"source":"iana"},"application/ocsp-request":{"source":"iana"},"application/ocsp-response":{"source":"iana"},"application/octet-stream":{"source":"iana","compressible":false,"extensions":["bin","dms","lrf","mar","so","dist","distz","pkg","bpk","dump","elc","deploy","exe","dll","deb","dmg","iso","img","msi","msp","msm","buffer"]},"application/oda":{"source":"iana","extensions":["oda"]},"application/odm+xml":{"source":"iana","compressible":true},"application/odx":{"source":"iana"},"application/oebps-package+xml":{"source":"iana","compressible":true,"extensions":["opf"]},"application/ogg":{"source":"iana","compressible":false,"extensions":["ogx"]},"application/omdoc+xml":{"source":"apache","compressible":true,"extensions":["omdoc"]},"application/onenote":{"source":"apache","extensions":["onetoc","onetoc2","onetmp","onepkg"]},"application/opc-nodeset+xml":{"source":"iana","compressible":true},"application/oscore":{"source":"iana"},"application/oxps":{"source":"iana","extensions":["oxps"]},"application/p21":{"source":"iana"},"application/p21+zip":{"source":"iana","compressible":false},"application/p2p-overlay+xml":{"source":"iana","compressible":true,"extensions":["relo"]},"application/parityfec":{"source":"iana"},"application/passport":{"source":"iana"},"application/patch-ops-error+xml":{"source":"iana","compressible":true,"extensions":["xer"]},"application/pdf":{"source":"iana","compressible":false,"extensions":["pdf"]},"application/pdx":{"source":"iana"},"application/pem-certificate-chain":{"source":"iana"},"application/pgp-encrypted":{"source":"iana","compressible":false,"extensions":["pgp"]},"application/pgp-keys":{"source":"iana","extensions":["asc"]},"application/pgp-signature":{"source":"iana","extensions":["asc","sig"]},"application/pics-rules":{"source":"apache","extensions":["prf"]},"application/pidf+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/pidf-diff+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/pkcs10":{"source":"iana","extensions":["p10"]},"application/pkcs12":{"source":"iana"},"application/pkcs7-mime":{"source":"iana","extensions":["p7m","p7c"]},"application/pkcs7-signature":{"source":"iana","extensions":["p7s"]},"application/pkcs8":{"source":"iana","extensions":["p8"]},"application/pkcs8-encrypted":{"source":"iana"},"application/pkix-attr-cert":{"source":"iana","extensions":["ac"]},"application/pkix-cert":{"source":"iana","extensions":["cer"]},"application/pkix-crl":{"source":"iana","extensions":["crl"]},"application/pkix-pkipath":{"source":"iana","extensions":["pkipath"]},"application/pkixcmp":{"source":"iana","extensions":["pki"]},"application/pls+xml":{"source":"iana","compressible":true,"extensions":["pls"]},"application/poc-settings+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/postscript":{"source":"iana","compressible":true,"extensions":["ai","eps","ps"]},"application/ppsp-tracker+json":{"source":"iana","compressible":true},"application/problem+json":{"source":"iana","compressible":true},"application/problem+xml":{"source":"iana","compressible":true},"application/provenance+xml":{"source":"iana","compressible":true,"extensions":["provx"]},"application/prs.alvestrand.titrax-sheet":{"source":"iana"},"application/prs.cww":{"source":"iana","extensions":["cww"]},"application/prs.cyn":{"source":"iana","charset":"7-BIT"},"application/prs.hpub+zip":{"source":"iana","compressible":false},"application/prs.nprend":{"source":"iana"},"application/prs.plucker":{"source":"iana"},"application/prs.rdf-xml-crypt":{"source":"iana"},"application/prs.xsf+xml":{"source":"iana","compressible":true},"application/pskc+xml":{"source":"iana","compressible":true,"extensions":["pskcxml"]},"application/pvd+json":{"source":"iana","compressible":true},"application/qsig":{"source":"iana"},"application/raml+yaml":{"compressible":true,"extensions":["raml"]},"application/raptorfec":{"source":"iana"},"application/rdap+json":{"source":"iana","compressible":true},"application/rdf+xml":{"source":"iana","compressible":true,"extensions":["rdf","owl"]},"application/reginfo+xml":{"source":"iana","compressible":true,"extensions":["rif"]},"application/relax-ng-compact-syntax":{"source":"iana","extensions":["rnc"]},"application/remote-printing":{"source":"iana"},"application/reputon+json":{"source":"iana","compressible":true},"application/resource-lists+xml":{"source":"iana","compressible":true,"extensions":["rl"]},"application/resource-lists-diff+xml":{"source":"iana","compressible":true,"extensions":["rld"]},"application/rfc+xml":{"source":"iana","compressible":true},"application/riscos":{"source":"iana"},"application/rlmi+xml":{"source":"iana","compressible":true},"application/rls-services+xml":{"source":"iana","compressible":true,"extensions":["rs"]},"application/route-apd+xml":{"source":"iana","compressible":true,"extensions":["rapd"]},"application/route-s-tsid+xml":{"source":"iana","compressible":true,"extensions":["sls"]},"application/route-usd+xml":{"source":"iana","compressible":true,"extensions":["rusd"]},"application/rpki-ghostbusters":{"source":"iana","extensions":["gbr"]},"application/rpki-manifest":{"source":"iana","extensions":["mft"]},"application/rpki-publication":{"source":"iana"},"application/rpki-roa":{"source":"iana","extensions":["roa"]},"application/rpki-updown":{"source":"iana"},"application/rsd+xml":{"source":"apache","compressible":true,"extensions":["rsd"]},"application/rss+xml":{"source":"apache","compressible":true,"extensions":["rss"]},"application/rtf":{"source":"iana","compressible":true,"extensions":["rtf"]},"application/rtploopback":{"source":"iana"},"application/rtx":{"source":"iana"},"application/samlassertion+xml":{"source":"iana","compressible":true},"application/samlmetadata+xml":{"source":"iana","compressible":true},"application/sarif+json":{"source":"iana","compressible":true},"application/sarif-external-properties+json":{"source":"iana","compressible":true},"application/sbe":{"source":"iana"},"application/sbml+xml":{"source":"iana","compressible":true,"extensions":["sbml"]},"application/scaip+xml":{"source":"iana","compressible":true},"application/scim+json":{"source":"iana","compressible":true},"application/scvp-cv-request":{"source":"iana","extensions":["scq"]},"application/scvp-cv-response":{"source":"iana","extensions":["scs"]},"application/scvp-vp-request":{"source":"iana","extensions":["spq"]},"application/scvp-vp-response":{"source":"iana","extensions":["spp"]},"application/sdp":{"source":"iana","extensions":["sdp"]},"application/secevent+jwt":{"source":"iana"},"application/senml+cbor":{"source":"iana"},"application/senml+json":{"source":"iana","compressible":true},"application/senml+xml":{"source":"iana","compressible":true,"extensions":["senmlx"]},"application/senml-etch+cbor":{"source":"iana"},"application/senml-etch+json":{"source":"iana","compressible":true},"application/senml-exi":{"source":"iana"},"application/sensml+cbor":{"source":"iana"},"application/sensml+json":{"source":"iana","compressible":true},"application/sensml+xml":{"source":"iana","compressible":true,"extensions":["sensmlx"]},"application/sensml-exi":{"source":"iana"},"application/sep+xml":{"source":"iana","compressible":true},"application/sep-exi":{"source":"iana"},"application/session-info":{"source":"iana"},"application/set-payment":{"source":"iana"},"application/set-payment-initiation":{"source":"iana","extensions":["setpay"]},"application/set-registration":{"source":"iana"},"application/set-registration-initiation":{"source":"iana","extensions":["setreg"]},"application/sgml":{"source":"iana"},"application/sgml-open-catalog":{"source":"iana"},"application/shf+xml":{"source":"iana","compressible":true,"extensions":["shf"]},"application/sieve":{"source":"iana","extensions":["siv","sieve"]},"application/simple-filter+xml":{"source":"iana","compressible":true},"application/simple-message-summary":{"source":"iana"},"application/simplesymbolcontainer":{"source":"iana"},"application/sipc":{"source":"iana"},"application/slate":{"source":"iana"},"application/smil":{"source":"iana"},"application/smil+xml":{"source":"iana","compressible":true,"extensions":["smi","smil"]},"application/smpte336m":{"source":"iana"},"application/soap+fastinfoset":{"source":"iana"},"application/soap+xml":{"source":"iana","compressible":true},"application/sparql-query":{"source":"iana","extensions":["rq"]},"application/sparql-results+xml":{"source":"iana","compressible":true,"extensions":["srx"]},"application/spdx+json":{"source":"iana","compressible":true},"application/spirits-event+xml":{"source":"iana","compressible":true},"application/sql":{"source":"iana"},"application/srgs":{"source":"iana","extensions":["gram"]},"application/srgs+xml":{"source":"iana","compressible":true,"extensions":["grxml"]},"application/sru+xml":{"source":"iana","compressible":true,"extensions":["sru"]},"application/ssdl+xml":{"source":"apache","compressible":true,"extensions":["ssdl"]},"application/ssml+xml":{"source":"iana","compressible":true,"extensions":["ssml"]},"application/stix+json":{"source":"iana","compressible":true},"application/swid+xml":{"source":"iana","compressible":true,"extensions":["swidtag"]},"application/tamp-apex-update":{"source":"iana"},"application/tamp-apex-update-confirm":{"source":"iana"},"application/tamp-community-update":{"source":"iana"},"application/tamp-community-update-confirm":{"source":"iana"},"application/tamp-error":{"source":"iana"},"application/tamp-sequence-adjust":{"source":"iana"},"application/tamp-sequence-adjust-confirm":{"source":"iana"},"application/tamp-status-query":{"source":"iana"},"application/tamp-status-response":{"source":"iana"},"application/tamp-update":{"source":"iana"},"application/tamp-update-confirm":{"source":"iana"},"application/tar":{"compressible":true},"application/taxii+json":{"source":"iana","compressible":true},"application/td+json":{"source":"iana","compressible":true},"application/tei+xml":{"source":"iana","compressible":true,"extensions":["tei","teicorpus"]},"application/tetra_isi":{"source":"iana"},"application/thraud+xml":{"source":"iana","compressible":true,"extensions":["tfi"]},"application/timestamp-query":{"source":"iana"},"application/timestamp-reply":{"source":"iana"},"application/timestamped-data":{"source":"iana","extensions":["tsd"]},"application/tlsrpt+gzip":{"source":"iana"},"application/tlsrpt+json":{"source":"iana","compressible":true},"application/tnauthlist":{"source":"iana"},"application/token-introspection+jwt":{"source":"iana"},"application/toml":{"compressible":true,"extensions":["toml"]},"application/trickle-ice-sdpfrag":{"source":"iana"},"application/trig":{"source":"iana","extensions":["trig"]},"application/ttml+xml":{"source":"iana","compressible":true,"extensions":["ttml"]},"application/tve-trigger":{"source":"iana"},"application/tzif":{"source":"iana"},"application/tzif-leap":{"source":"iana"},"application/ubjson":{"compressible":false,"extensions":["ubj"]},"application/ulpfec":{"source":"iana"},"application/urc-grpsheet+xml":{"source":"iana","compressible":true},"application/urc-ressheet+xml":{"source":"iana","compressible":true,"extensions":["rsheet"]},"application/urc-targetdesc+xml":{"source":"iana","compressible":true,"extensions":["td"]},"application/urc-uisocketdesc+xml":{"source":"iana","compressible":true},"application/vcard+json":{"source":"iana","compressible":true},"application/vcard+xml":{"source":"iana","compressible":true},"application/vemmi":{"source":"iana"},"application/vividence.scriptfile":{"source":"apache"},"application/vnd.1000minds.decision-model+xml":{"source":"iana","compressible":true,"extensions":["1km"]},"application/vnd.3gpp-prose+xml":{"source":"iana","compressible":true},"application/vnd.3gpp-prose-pc3ch+xml":{"source":"iana","compressible":true},"application/vnd.3gpp-v2x-local-service-information":{"source":"iana"},"application/vnd.3gpp.5gnas":{"source":"iana"},"application/vnd.3gpp.access-transfer-events+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.bsf+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.gmop+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.gtpc":{"source":"iana"},"application/vnd.3gpp.interworking-data":{"source":"iana"},"application/vnd.3gpp.lpp":{"source":"iana"},"application/vnd.3gpp.mc-signalling-ear":{"source":"iana"},"application/vnd.3gpp.mcdata-affiliation-command+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcdata-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcdata-payload":{"source":"iana"},"application/vnd.3gpp.mcdata-service-config+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcdata-signalling":{"source":"iana"},"application/vnd.3gpp.mcdata-ue-config+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcdata-user-profile+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-affiliation-command+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-floor-request+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-location-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-mbms-usage-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-service-config+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-signed+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-ue-config+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-ue-init-config+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-user-profile+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-affiliation-command+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-affiliation-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-location-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-mbms-usage-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-service-config+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-transmission-request+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-ue-config+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-user-profile+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mid-call+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.ngap":{"source":"iana"},"application/vnd.3gpp.pfcp":{"source":"iana"},"application/vnd.3gpp.pic-bw-large":{"source":"iana","extensions":["plb"]},"application/vnd.3gpp.pic-bw-small":{"source":"iana","extensions":["psb"]},"application/vnd.3gpp.pic-bw-var":{"source":"iana","extensions":["pvb"]},"application/vnd.3gpp.s1ap":{"source":"iana"},"application/vnd.3gpp.sms":{"source":"iana"},"application/vnd.3gpp.sms+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.srvcc-ext+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.srvcc-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.state-and-event-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.ussd+xml":{"source":"iana","compressible":true},"application/vnd.3gpp2.bcmcsinfo+xml":{"source":"iana","compressible":true},"application/vnd.3gpp2.sms":{"source":"iana"},"application/vnd.3gpp2.tcap":{"source":"iana","extensions":["tcap"]},"application/vnd.3lightssoftware.imagescal":{"source":"iana"},"application/vnd.3m.post-it-notes":{"source":"iana","extensions":["pwn"]},"application/vnd.accpac.simply.aso":{"source":"iana","extensions":["aso"]},"application/vnd.accpac.simply.imp":{"source":"iana","extensions":["imp"]},"application/vnd.acucobol":{"source":"iana","extensions":["acu"]},"application/vnd.acucorp":{"source":"iana","extensions":["atc","acutc"]},"application/vnd.adobe.air-application-installer-package+zip":{"source":"apache","compressible":false,"extensions":["air"]},"application/vnd.adobe.flash.movie":{"source":"iana"},"application/vnd.adobe.formscentral.fcdt":{"source":"iana","extensions":["fcdt"]},"application/vnd.adobe.fxp":{"source":"iana","extensions":["fxp","fxpl"]},"application/vnd.adobe.partial-upload":{"source":"iana"},"application/vnd.adobe.xdp+xml":{"source":"iana","compressible":true,"extensions":["xdp"]},"application/vnd.adobe.xfdf":{"source":"iana","extensions":["xfdf"]},"application/vnd.aether.imp":{"source":"iana"},"application/vnd.afpc.afplinedata":{"source":"iana"},"application/vnd.afpc.afplinedata-pagedef":{"source":"iana"},"application/vnd.afpc.cmoca-cmresource":{"source":"iana"},"application/vnd.afpc.foca-charset":{"source":"iana"},"application/vnd.afpc.foca-codedfont":{"source":"iana"},"application/vnd.afpc.foca-codepage":{"source":"iana"},"application/vnd.afpc.modca":{"source":"iana"},"application/vnd.afpc.modca-cmtable":{"source":"iana"},"application/vnd.afpc.modca-formdef":{"source":"iana"},"application/vnd.afpc.modca-mediummap":{"source":"iana"},"application/vnd.afpc.modca-objectcontainer":{"source":"iana"},"application/vnd.afpc.modca-overlay":{"source":"iana"},"application/vnd.afpc.modca-pagesegment":{"source":"iana"},"application/vnd.age":{"source":"iana","extensions":["age"]},"application/vnd.ah-barcode":{"source":"iana"},"application/vnd.ahead.space":{"source":"iana","extensions":["ahead"]},"application/vnd.airzip.filesecure.azf":{"source":"iana","extensions":["azf"]},"application/vnd.airzip.filesecure.azs":{"source":"iana","extensions":["azs"]},"application/vnd.amadeus+json":{"source":"iana","compressible":true},"application/vnd.amazon.ebook":{"source":"apache","extensions":["azw"]},"application/vnd.amazon.mobi8-ebook":{"source":"iana"},"application/vnd.americandynamics.acc":{"source":"iana","extensions":["acc"]},"application/vnd.amiga.ami":{"source":"iana","extensions":["ami"]},"application/vnd.amundsen.maze+xml":{"source":"iana","compressible":true},"application/vnd.android.ota":{"source":"iana"},"application/vnd.android.package-archive":{"source":"apache","compressible":false,"extensions":["apk"]},"application/vnd.anki":{"source":"iana"},"application/vnd.anser-web-certificate-issue-initiation":{"source":"iana","extensions":["cii"]},"application/vnd.anser-web-funds-transfer-initiation":{"source":"apache","extensions":["fti"]},"application/vnd.antix.game-component":{"source":"iana","extensions":["atx"]},"application/vnd.apache.arrow.file":{"source":"iana"},"application/vnd.apache.arrow.stream":{"source":"iana"},"application/vnd.apache.thrift.binary":{"source":"iana"},"application/vnd.apache.thrift.compact":{"source":"iana"},"application/vnd.apache.thrift.json":{"source":"iana"},"application/vnd.api+json":{"source":"iana","compressible":true},"application/vnd.aplextor.warrp+json":{"source":"iana","compressible":true},"application/vnd.apothekende.reservation+json":{"source":"iana","compressible":true},"application/vnd.apple.installer+xml":{"source":"iana","compressible":true,"extensions":["mpkg"]},"application/vnd.apple.keynote":{"source":"iana","extensions":["key"]},"application/vnd.apple.mpegurl":{"source":"iana","extensions":["m3u8"]},"application/vnd.apple.numbers":{"source":"iana","extensions":["numbers"]},"application/vnd.apple.pages":{"source":"iana","extensions":["pages"]},"application/vnd.apple.pkpass":{"compressible":false,"extensions":["pkpass"]},"application/vnd.arastra.swi":{"source":"iana"},"application/vnd.aristanetworks.swi":{"source":"iana","extensions":["swi"]},"application/vnd.artisan+json":{"source":"iana","compressible":true},"application/vnd.artsquare":{"source":"iana"},"application/vnd.astraea-software.iota":{"source":"iana","extensions":["iota"]},"application/vnd.audiograph":{"source":"iana","extensions":["aep"]},"application/vnd.autopackage":{"source":"iana"},"application/vnd.avalon+json":{"source":"iana","compressible":true},"application/vnd.avistar+xml":{"source":"iana","compressible":true},"application/vnd.balsamiq.bmml+xml":{"source":"iana","compressible":true,"extensions":["bmml"]},"application/vnd.balsamiq.bmpr":{"source":"iana"},"application/vnd.banana-accounting":{"source":"iana"},"application/vnd.bbf.usp.error":{"source":"iana"},"application/vnd.bbf.usp.msg":{"source":"iana"},"application/vnd.bbf.usp.msg+json":{"source":"iana","compressible":true},"application/vnd.bekitzur-stech+json":{"source":"iana","compressible":true},"application/vnd.bint.med-content":{"source":"iana"},"application/vnd.biopax.rdf+xml":{"source":"iana","compressible":true},"application/vnd.blink-idb-value-wrapper":{"source":"iana"},"application/vnd.blueice.multipass":{"source":"iana","extensions":["mpm"]},"application/vnd.bluetooth.ep.oob":{"source":"iana"},"application/vnd.bluetooth.le.oob":{"source":"iana"},"application/vnd.bmi":{"source":"iana","extensions":["bmi"]},"application/vnd.bpf":{"source":"iana"},"application/vnd.bpf3":{"source":"iana"},"application/vnd.businessobjects":{"source":"iana","extensions":["rep"]},"application/vnd.byu.uapi+json":{"source":"iana","compressible":true},"application/vnd.cab-jscript":{"source":"iana"},"application/vnd.canon-cpdl":{"source":"iana"},"application/vnd.canon-lips":{"source":"iana"},"application/vnd.capasystems-pg+json":{"source":"iana","compressible":true},"application/vnd.cendio.thinlinc.clientconf":{"source":"iana"},"application/vnd.century-systems.tcp_stream":{"source":"iana"},"application/vnd.chemdraw+xml":{"source":"iana","compressible":true,"extensions":["cdxml"]},"application/vnd.chess-pgn":{"source":"iana"},"application/vnd.chipnuts.karaoke-mmd":{"source":"iana","extensions":["mmd"]},"application/vnd.ciedi":{"source":"iana"},"application/vnd.cinderella":{"source":"iana","extensions":["cdy"]},"application/vnd.cirpack.isdn-ext":{"source":"iana"},"application/vnd.citationstyles.style+xml":{"source":"iana","compressible":true,"extensions":["csl"]},"application/vnd.claymore":{"source":"iana","extensions":["cla"]},"application/vnd.cloanto.rp9":{"source":"iana","extensions":["rp9"]},"application/vnd.clonk.c4group":{"source":"iana","extensions":["c4g","c4d","c4f","c4p","c4u"]},"application/vnd.cluetrust.cartomobile-config":{"source":"iana","extensions":["c11amc"]},"application/vnd.cluetrust.cartomobile-config-pkg":{"source":"iana","extensions":["c11amz"]},"application/vnd.coffeescript":{"source":"iana"},"application/vnd.collabio.xodocuments.document":{"source":"iana"},"application/vnd.collabio.xodocuments.document-template":{"source":"iana"},"application/vnd.collabio.xodocuments.presentation":{"source":"iana"},"application/vnd.collabio.xodocuments.presentation-template":{"source":"iana"},"application/vnd.collabio.xodocuments.spreadsheet":{"source":"iana"},"application/vnd.collabio.xodocuments.spreadsheet-template":{"source":"iana"},"application/vnd.collection+json":{"source":"iana","compressible":true},"application/vnd.collection.doc+json":{"source":"iana","compressible":true},"application/vnd.collection.next+json":{"source":"iana","compressible":true},"application/vnd.comicbook+zip":{"source":"iana","compressible":false},"application/vnd.comicbook-rar":{"source":"iana"},"application/vnd.commerce-battelle":{"source":"iana"},"application/vnd.commonspace":{"source":"iana","extensions":["csp"]},"application/vnd.contact.cmsg":{"source":"iana","extensions":["cdbcmsg"]},"application/vnd.coreos.ignition+json":{"source":"iana","compressible":true},"application/vnd.cosmocaller":{"source":"iana","extensions":["cmc"]},"application/vnd.crick.clicker":{"source":"iana","extensions":["clkx"]},"application/vnd.crick.clicker.keyboard":{"source":"iana","extensions":["clkk"]},"application/vnd.crick.clicker.palette":{"source":"iana","extensions":["clkp"]},"application/vnd.crick.clicker.template":{"source":"iana","extensions":["clkt"]},"application/vnd.crick.clicker.wordbank":{"source":"iana","extensions":["clkw"]},"application/vnd.criticaltools.wbs+xml":{"source":"iana","compressible":true,"extensions":["wbs"]},"application/vnd.cryptii.pipe+json":{"source":"iana","compressible":true},"application/vnd.crypto-shade-file":{"source":"iana"},"application/vnd.cryptomator.encrypted":{"source":"iana"},"application/vnd.cryptomator.vault":{"source":"iana"},"application/vnd.ctc-posml":{"source":"iana","extensions":["pml"]},"application/vnd.ctct.ws+xml":{"source":"iana","compressible":true},"application/vnd.cups-pdf":{"source":"iana"},"application/vnd.cups-postscript":{"source":"iana"},"application/vnd.cups-ppd":{"source":"iana","extensions":["ppd"]},"application/vnd.cups-raster":{"source":"iana"},"application/vnd.cups-raw":{"source":"iana"},"application/vnd.curl":{"source":"iana"},"application/vnd.curl.car":{"source":"apache","extensions":["car"]},"application/vnd.curl.pcurl":{"source":"apache","extensions":["pcurl"]},"application/vnd.cyan.dean.root+xml":{"source":"iana","compressible":true},"application/vnd.cybank":{"source":"iana"},"application/vnd.cyclonedx+json":{"source":"iana","compressible":true},"application/vnd.cyclonedx+xml":{"source":"iana","compressible":true},"application/vnd.d2l.coursepackage1p0+zip":{"source":"iana","compressible":false},"application/vnd.d3m-dataset":{"source":"iana"},"application/vnd.d3m-problem":{"source":"iana"},"application/vnd.dart":{"source":"iana","compressible":true,"extensions":["dart"]},"application/vnd.data-vision.rdz":{"source":"iana","extensions":["rdz"]},"application/vnd.datapackage+json":{"source":"iana","compressible":true},"application/vnd.dataresource+json":{"source":"iana","compressible":true},"application/vnd.dbf":{"source":"iana","extensions":["dbf"]},"application/vnd.debian.binary-package":{"source":"iana"},"application/vnd.dece.data":{"source":"iana","extensions":["uvf","uvvf","uvd","uvvd"]},"application/vnd.dece.ttml+xml":{"source":"iana","compressible":true,"extensions":["uvt","uvvt"]},"application/vnd.dece.unspecified":{"source":"iana","extensions":["uvx","uvvx"]},"application/vnd.dece.zip":{"source":"iana","extensions":["uvz","uvvz"]},"application/vnd.denovo.fcselayout-link":{"source":"iana","extensions":["fe_launch"]},"application/vnd.desmume.movie":{"source":"iana"},"application/vnd.dir-bi.plate-dl-nosuffix":{"source":"iana"},"application/vnd.dm.delegation+xml":{"source":"iana","compressible":true},"application/vnd.dna":{"source":"iana","extensions":["dna"]},"application/vnd.document+json":{"source":"iana","compressible":true},"application/vnd.dolby.mlp":{"source":"apache","extensions":["mlp"]},"application/vnd.dolby.mobile.1":{"source":"iana"},"application/vnd.dolby.mobile.2":{"source":"iana"},"application/vnd.doremir.scorecloud-binary-document":{"source":"iana"},"application/vnd.dpgraph":{"source":"iana","extensions":["dpg"]},"application/vnd.dreamfactory":{"source":"iana","extensions":["dfac"]},"application/vnd.drive+json":{"source":"iana","compressible":true},"application/vnd.ds-keypoint":{"source":"apache","extensions":["kpxx"]},"application/vnd.dtg.local":{"source":"iana"},"application/vnd.dtg.local.flash":{"source":"iana"},"application/vnd.dtg.local.html":{"source":"iana"},"application/vnd.dvb.ait":{"source":"iana","extensions":["ait"]},"application/vnd.dvb.dvbisl+xml":{"source":"iana","compressible":true},"application/vnd.dvb.dvbj":{"source":"iana"},"application/vnd.dvb.esgcontainer":{"source":"iana"},"application/vnd.dvb.ipdcdftnotifaccess":{"source":"iana"},"application/vnd.dvb.ipdcesgaccess":{"source":"iana"},"application/vnd.dvb.ipdcesgaccess2":{"source":"iana"},"application/vnd.dvb.ipdcesgpdd":{"source":"iana"},"application/vnd.dvb.ipdcroaming":{"source":"iana"},"application/vnd.dvb.iptv.alfec-base":{"source":"iana"},"application/vnd.dvb.iptv.alfec-enhancement":{"source":"iana"},"application/vnd.dvb.notif-aggregate-root+xml":{"source":"iana","compressible":true},"application/vnd.dvb.notif-container+xml":{"source":"iana","compressible":true},"application/vnd.dvb.notif-generic+xml":{"source":"iana","compressible":true},"application/vnd.dvb.notif-ia-msglist+xml":{"source":"iana","compressible":true},"application/vnd.dvb.notif-ia-registration-request+xml":{"source":"iana","compressible":true},"application/vnd.dvb.notif-ia-registration-response+xml":{"source":"iana","compressible":true},"application/vnd.dvb.notif-init+xml":{"source":"iana","compressible":true},"application/vnd.dvb.pfr":{"source":"iana"},"application/vnd.dvb.service":{"source":"iana","extensions":["svc"]},"application/vnd.dxr":{"source":"iana"},"application/vnd.dynageo":{"source":"iana","extensions":["geo"]},"application/vnd.dzr":{"source":"iana"},"application/vnd.easykaraoke.cdgdownload":{"source":"iana"},"application/vnd.ecdis-update":{"source":"iana"},"application/vnd.ecip.rlp":{"source":"iana"},"application/vnd.eclipse.ditto+json":{"source":"iana","compressible":true},"application/vnd.ecowin.chart":{"source":"iana","extensions":["mag"]},"application/vnd.ecowin.filerequest":{"source":"iana"},"application/vnd.ecowin.fileupdate":{"source":"iana"},"application/vnd.ecowin.series":{"source":"iana"},"application/vnd.ecowin.seriesrequest":{"source":"iana"},"application/vnd.ecowin.seriesupdate":{"source":"iana"},"application/vnd.efi.img":{"source":"iana"},"application/vnd.efi.iso":{"source":"iana"},"application/vnd.emclient.accessrequest+xml":{"source":"iana","compressible":true},"application/vnd.enliven":{"source":"iana","extensions":["nml"]},"application/vnd.enphase.envoy":{"source":"iana"},"application/vnd.eprints.data+xml":{"source":"iana","compressible":true},"application/vnd.epson.esf":{"source":"iana","extensions":["esf"]},"application/vnd.epson.msf":{"source":"iana","extensions":["msf"]},"application/vnd.epson.quickanime":{"source":"iana","extensions":["qam"]},"application/vnd.epson.salt":{"source":"iana","extensions":["slt"]},"application/vnd.epson.ssf":{"source":"iana","extensions":["ssf"]},"application/vnd.ericsson.quickcall":{"source":"iana"},"application/vnd.espass-espass+zip":{"source":"iana","compressible":false},"application/vnd.eszigno3+xml":{"source":"iana","compressible":true,"extensions":["es3","et3"]},"application/vnd.etsi.aoc+xml":{"source":"iana","compressible":true},"application/vnd.etsi.asic-e+zip":{"source":"iana","compressible":false},"application/vnd.etsi.asic-s+zip":{"source":"iana","compressible":false},"application/vnd.etsi.cug+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvcommand+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvdiscovery+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvprofile+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvsad-bc+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvsad-cod+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvsad-npvr+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvservice+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvsync+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvueprofile+xml":{"source":"iana","compressible":true},"application/vnd.etsi.mcid+xml":{"source":"iana","compressible":true},"application/vnd.etsi.mheg5":{"source":"iana"},"application/vnd.etsi.overload-control-policy-dataset+xml":{"source":"iana","compressible":true},"application/vnd.etsi.pstn+xml":{"source":"iana","compressible":true},"application/vnd.etsi.sci+xml":{"source":"iana","compressible":true},"application/vnd.etsi.simservs+xml":{"source":"iana","compressible":true},"application/vnd.etsi.timestamp-token":{"source":"iana"},"application/vnd.etsi.tsl+xml":{"source":"iana","compressible":true},"application/vnd.etsi.tsl.der":{"source":"iana"},"application/vnd.eu.kasparian.car+json":{"source":"iana","compressible":true},"application/vnd.eudora.data":{"source":"iana"},"application/vnd.evolv.ecig.profile":{"source":"iana"},"application/vnd.evolv.ecig.settings":{"source":"iana"},"application/vnd.evolv.ecig.theme":{"source":"iana"},"application/vnd.exstream-empower+zip":{"source":"iana","compressible":false},"application/vnd.exstream-package":{"source":"iana"},"application/vnd.ezpix-album":{"source":"iana","extensions":["ez2"]},"application/vnd.ezpix-package":{"source":"iana","extensions":["ez3"]},"application/vnd.f-secure.mobile":{"source":"iana"},"application/vnd.familysearch.gedcom+zip":{"source":"iana","compressible":false},"application/vnd.fastcopy-disk-image":{"source":"iana"},"application/vnd.fdf":{"source":"iana","extensions":["fdf"]},"application/vnd.fdsn.mseed":{"source":"iana","extensions":["mseed"]},"application/vnd.fdsn.seed":{"source":"iana","extensions":["seed","dataless"]},"application/vnd.ffsns":{"source":"iana"},"application/vnd.ficlab.flb+zip":{"source":"iana","compressible":false},"application/vnd.filmit.zfc":{"source":"iana"},"application/vnd.fints":{"source":"iana"},"application/vnd.firemonkeys.cloudcell":{"source":"iana"},"application/vnd.flographit":{"source":"iana","extensions":["gph"]},"application/vnd.fluxtime.clip":{"source":"iana","extensions":["ftc"]},"application/vnd.font-fontforge-sfd":{"source":"iana"},"application/vnd.framemaker":{"source":"iana","extensions":["fm","frame","maker","book"]},"application/vnd.frogans.fnc":{"source":"iana","extensions":["fnc"]},"application/vnd.frogans.ltf":{"source":"iana","extensions":["ltf"]},"application/vnd.fsc.weblaunch":{"source":"iana","extensions":["fsc"]},"application/vnd.fujifilm.fb.docuworks":{"source":"iana"},"application/vnd.fujifilm.fb.docuworks.binder":{"source":"iana"},"application/vnd.fujifilm.fb.docuworks.container":{"source":"iana"},"application/vnd.fujifilm.fb.jfi+xml":{"source":"iana","compressible":true},"application/vnd.fujitsu.oasys":{"source":"iana","extensions":["oas"]},"application/vnd.fujitsu.oasys2":{"source":"iana","extensions":["oa2"]},"application/vnd.fujitsu.oasys3":{"source":"iana","extensions":["oa3"]},"application/vnd.fujitsu.oasysgp":{"source":"iana","extensions":["fg5"]},"application/vnd.fujitsu.oasysprs":{"source":"iana","extensions":["bh2"]},"application/vnd.fujixerox.art-ex":{"source":"iana"},"application/vnd.fujixerox.art4":{"source":"iana"},"application/vnd.fujixerox.ddd":{"source":"iana","extensions":["ddd"]},"application/vnd.fujixerox.docuworks":{"source":"iana","extensions":["xdw"]},"application/vnd.fujixerox.docuworks.binder":{"source":"iana","extensions":["xbd"]},"application/vnd.fujixerox.docuworks.container":{"source":"iana"},"application/vnd.fujixerox.hbpl":{"source":"iana"},"application/vnd.fut-misnet":{"source":"iana"},"application/vnd.futoin+cbor":{"source":"iana"},"application/vnd.futoin+json":{"source":"iana","compressible":true},"application/vnd.fuzzysheet":{"source":"iana","extensions":["fzs"]},"application/vnd.genomatix.tuxedo":{"source":"iana","extensions":["txd"]},"application/vnd.gentics.grd+json":{"source":"iana","compressible":true},"application/vnd.geo+json":{"source":"iana","compressible":true},"application/vnd.geocube+xml":{"source":"iana","compressible":true},"application/vnd.geogebra.file":{"source":"iana","extensions":["ggb"]},"application/vnd.geogebra.slides":{"source":"iana"},"application/vnd.geogebra.tool":{"source":"iana","extensions":["ggt"]},"application/vnd.geometry-explorer":{"source":"iana","extensions":["gex","gre"]},"application/vnd.geonext":{"source":"iana","extensions":["gxt"]},"application/vnd.geoplan":{"source":"iana","extensions":["g2w"]},"application/vnd.geospace":{"source":"iana","extensions":["g3w"]},"application/vnd.gerber":{"source":"iana"},"application/vnd.globalplatform.card-content-mgt":{"source":"iana"},"application/vnd.globalplatform.card-content-mgt-response":{"source":"iana"},"application/vnd.gmx":{"source":"iana","extensions":["gmx"]},"application/vnd.google-apps.document":{"compressible":false,"extensions":["gdoc"]},"application/vnd.google-apps.presentation":{"compressible":false,"extensions":["gslides"]},"application/vnd.google-apps.spreadsheet":{"compressible":false,"extensions":["gsheet"]},"application/vnd.google-earth.kml+xml":{"source":"iana","compressible":true,"extensions":["kml"]},"application/vnd.google-earth.kmz":{"source":"iana","compressible":false,"extensions":["kmz"]},"application/vnd.gov.sk.e-form+xml":{"source":"iana","compressible":true},"application/vnd.gov.sk.e-form+zip":{"source":"iana","compressible":false},"application/vnd.gov.sk.xmldatacontainer+xml":{"source":"iana","compressible":true},"application/vnd.grafeq":{"source":"iana","extensions":["gqf","gqs"]},"application/vnd.gridmp":{"source":"iana"},"application/vnd.groove-account":{"source":"iana","extensions":["gac"]},"application/vnd.groove-help":{"source":"iana","extensions":["ghf"]},"application/vnd.groove-identity-message":{"source":"iana","extensions":["gim"]},"application/vnd.groove-injector":{"source":"iana","extensions":["grv"]},"application/vnd.groove-tool-message":{"source":"iana","extensions":["gtm"]},"application/vnd.groove-tool-template":{"source":"iana","extensions":["tpl"]},"application/vnd.groove-vcard":{"source":"iana","extensions":["vcg"]},"application/vnd.hal+json":{"source":"iana","compressible":true},"application/vnd.hal+xml":{"source":"iana","compressible":true,"extensions":["hal"]},"application/vnd.handheld-entertainment+xml":{"source":"iana","compressible":true,"extensions":["zmm"]},"application/vnd.hbci":{"source":"iana","extensions":["hbci"]},"application/vnd.hc+json":{"source":"iana","compressible":true},"application/vnd.hcl-bireports":{"source":"iana"},"application/vnd.hdt":{"source":"iana"},"application/vnd.heroku+json":{"source":"iana","compressible":true},"application/vnd.hhe.lesson-player":{"source":"iana","extensions":["les"]},"application/vnd.hl7cda+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/vnd.hl7v2+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/vnd.hp-hpgl":{"source":"iana","extensions":["hpgl"]},"application/vnd.hp-hpid":{"source":"iana","extensions":["hpid"]},"application/vnd.hp-hps":{"source":"iana","extensions":["hps"]},"application/vnd.hp-jlyt":{"source":"iana","extensions":["jlt"]},"application/vnd.hp-pcl":{"source":"iana","extensions":["pcl"]},"application/vnd.hp-pclxl":{"source":"iana","extensions":["pclxl"]},"application/vnd.httphone":{"source":"iana"},"application/vnd.hydrostatix.sof-data":{"source":"iana","extensions":["sfd-hdstx"]},"application/vnd.hyper+json":{"source":"iana","compressible":true},"application/vnd.hyper-item+json":{"source":"iana","compressible":true},"application/vnd.hyperdrive+json":{"source":"iana","compressible":true},"application/vnd.hzn-3d-crossword":{"source":"iana"},"application/vnd.ibm.afplinedata":{"source":"iana"},"application/vnd.ibm.electronic-media":{"source":"iana"},"application/vnd.ibm.minipay":{"source":"iana","extensions":["mpy"]},"application/vnd.ibm.modcap":{"source":"iana","extensions":["afp","listafp","list3820"]},"application/vnd.ibm.rights-management":{"source":"iana","extensions":["irm"]},"application/vnd.ibm.secure-container":{"source":"iana","extensions":["sc"]},"application/vnd.iccprofile":{"source":"iana","extensions":["icc","icm"]},"application/vnd.ieee.1905":{"source":"iana"},"application/vnd.igloader":{"source":"iana","extensions":["igl"]},"application/vnd.imagemeter.folder+zip":{"source":"iana","compressible":false},"application/vnd.imagemeter.image+zip":{"source":"iana","compressible":false},"application/vnd.immervision-ivp":{"source":"iana","extensions":["ivp"]},"application/vnd.immervision-ivu":{"source":"iana","extensions":["ivu"]},"application/vnd.ims.imsccv1p1":{"source":"iana"},"application/vnd.ims.imsccv1p2":{"source":"iana"},"application/vnd.ims.imsccv1p3":{"source":"iana"},"application/vnd.ims.lis.v2.result+json":{"source":"iana","compressible":true},"application/vnd.ims.lti.v2.toolconsumerprofile+json":{"source":"iana","compressible":true},"application/vnd.ims.lti.v2.toolproxy+json":{"source":"iana","compressible":true},"application/vnd.ims.lti.v2.toolproxy.id+json":{"source":"iana","compressible":true},"application/vnd.ims.lti.v2.toolsettings+json":{"source":"iana","compressible":true},"application/vnd.ims.lti.v2.toolsettings.simple+json":{"source":"iana","compressible":true},"application/vnd.informedcontrol.rms+xml":{"source":"iana","compressible":true},"application/vnd.informix-visionary":{"source":"iana"},"application/vnd.infotech.project":{"source":"iana"},"application/vnd.infotech.project+xml":{"source":"iana","compressible":true},"application/vnd.innopath.wamp.notification":{"source":"iana"},"application/vnd.insors.igm":{"source":"iana","extensions":["igm"]},"application/vnd.intercon.formnet":{"source":"iana","extensions":["xpw","xpx"]},"application/vnd.intergeo":{"source":"iana","extensions":["i2g"]},"application/vnd.intertrust.digibox":{"source":"iana"},"application/vnd.intertrust.nncp":{"source":"iana"},"application/vnd.intu.qbo":{"source":"iana","extensions":["qbo"]},"application/vnd.intu.qfx":{"source":"iana","extensions":["qfx"]},"application/vnd.iptc.g2.catalogitem+xml":{"source":"iana","compressible":true},"application/vnd.iptc.g2.conceptitem+xml":{"source":"iana","compressible":true},"application/vnd.iptc.g2.knowledgeitem+xml":{"source":"iana","compressible":true},"application/vnd.iptc.g2.newsitem+xml":{"source":"iana","compressible":true},"application/vnd.iptc.g2.newsmessage+xml":{"source":"iana","compressible":true},"application/vnd.iptc.g2.packageitem+xml":{"source":"iana","compressible":true},"application/vnd.iptc.g2.planningitem+xml":{"source":"iana","compressible":true},"application/vnd.ipunplugged.rcprofile":{"source":"iana","extensions":["rcprofile"]},"application/vnd.irepository.package+xml":{"source":"iana","compressible":true,"extensions":["irp"]},"application/vnd.is-xpr":{"source":"iana","extensions":["xpr"]},"application/vnd.isac.fcs":{"source":"iana","extensions":["fcs"]},"application/vnd.iso11783-10+zip":{"source":"iana","compressible":false},"application/vnd.jam":{"source":"iana","extensions":["jam"]},"application/vnd.japannet-directory-service":{"source":"iana"},"application/vnd.japannet-jpnstore-wakeup":{"source":"iana"},"application/vnd.japannet-payment-wakeup":{"source":"iana"},"application/vnd.japannet-registration":{"source":"iana"},"application/vnd.japannet-registration-wakeup":{"source":"iana"},"application/vnd.japannet-setstore-wakeup":{"source":"iana"},"application/vnd.japannet-verification":{"source":"iana"},"application/vnd.japannet-verification-wakeup":{"source":"iana"},"application/vnd.jcp.javame.midlet-rms":{"source":"iana","extensions":["rms"]},"application/vnd.jisp":{"source":"iana","extensions":["jisp"]},"application/vnd.joost.joda-archive":{"source":"iana","extensions":["joda"]},"application/vnd.jsk.isdn-ngn":{"source":"iana"},"application/vnd.kahootz":{"source":"iana","extensions":["ktz","ktr"]},"application/vnd.kde.karbon":{"source":"iana","extensions":["karbon"]},"application/vnd.kde.kchart":{"source":"iana","extensions":["chrt"]},"application/vnd.kde.kformula":{"source":"iana","extensions":["kfo"]},"application/vnd.kde.kivio":{"source":"iana","extensions":["flw"]},"application/vnd.kde.kontour":{"source":"iana","extensions":["kon"]},"application/vnd.kde.kpresenter":{"source":"iana","extensions":["kpr","kpt"]},"application/vnd.kde.kspread":{"source":"iana","extensions":["ksp"]},"application/vnd.kde.kword":{"source":"iana","extensions":["kwd","kwt"]},"application/vnd.kenameaapp":{"source":"iana","extensions":["htke"]},"application/vnd.kidspiration":{"source":"iana","extensions":["kia"]},"application/vnd.kinar":{"source":"iana","extensions":["kne","knp"]},"application/vnd.koan":{"source":"iana","extensions":["skp","skd","skt","skm"]},"application/vnd.kodak-descriptor":{"source":"iana","extensions":["sse"]},"application/vnd.las":{"source":"iana"},"application/vnd.las.las+json":{"source":"iana","compressible":true},"application/vnd.las.las+xml":{"source":"iana","compressible":true,"extensions":["lasxml"]},"application/vnd.laszip":{"source":"iana"},"application/vnd.leap+json":{"source":"iana","compressible":true},"application/vnd.liberty-request+xml":{"source":"iana","compressible":true},"application/vnd.llamagraphics.life-balance.desktop":{"source":"iana","extensions":["lbd"]},"application/vnd.llamagraphics.life-balance.exchange+xml":{"source":"iana","compressible":true,"extensions":["lbe"]},"application/vnd.logipipe.circuit+zip":{"source":"iana","compressible":false},"application/vnd.loom":{"source":"iana"},"application/vnd.lotus-1-2-3":{"source":"iana","extensions":["123"]},"application/vnd.lotus-approach":{"source":"iana","extensions":["apr"]},"application/vnd.lotus-freelance":{"source":"iana","extensions":["pre"]},"application/vnd.lotus-notes":{"source":"iana","extensions":["nsf"]},"application/vnd.lotus-organizer":{"source":"iana","extensions":["org"]},"application/vnd.lotus-screencam":{"source":"iana","extensions":["scm"]},"application/vnd.lotus-wordpro":{"source":"iana","extensions":["lwp"]},"application/vnd.macports.portpkg":{"source":"iana","extensions":["portpkg"]},"application/vnd.mapbox-vector-tile":{"source":"iana","extensions":["mvt"]},"application/vnd.marlin.drm.actiontoken+xml":{"source":"iana","compressible":true},"application/vnd.marlin.drm.conftoken+xml":{"source":"iana","compressible":true},"application/vnd.marlin.drm.license+xml":{"source":"iana","compressible":true},"application/vnd.marlin.drm.mdcf":{"source":"iana"},"application/vnd.mason+json":{"source":"iana","compressible":true},"application/vnd.maxar.archive.3tz+zip":{"source":"iana","compressible":false},"application/vnd.maxmind.maxmind-db":{"source":"iana"},"application/vnd.mcd":{"source":"iana","extensions":["mcd"]},"application/vnd.medcalcdata":{"source":"iana","extensions":["mc1"]},"application/vnd.mediastation.cdkey":{"source":"iana","extensions":["cdkey"]},"application/vnd.meridian-slingshot":{"source":"iana"},"application/vnd.mfer":{"source":"iana","extensions":["mwf"]},"application/vnd.mfmp":{"source":"iana","extensions":["mfm"]},"application/vnd.micro+json":{"source":"iana","compressible":true},"application/vnd.micrografx.flo":{"source":"iana","extensions":["flo"]},"application/vnd.micrografx.igx":{"source":"iana","extensions":["igx"]},"application/vnd.microsoft.portable-executable":{"source":"iana"},"application/vnd.microsoft.windows.thumbnail-cache":{"source":"iana"},"application/vnd.miele+json":{"source":"iana","compressible":true},"application/vnd.mif":{"source":"iana","extensions":["mif"]},"application/vnd.minisoft-hp3000-save":{"source":"iana"},"application/vnd.mitsubishi.misty-guard.trustweb":{"source":"iana"},"application/vnd.mobius.daf":{"source":"iana","extensions":["daf"]},"application/vnd.mobius.dis":{"source":"iana","extensions":["dis"]},"application/vnd.mobius.mbk":{"source":"iana","extensions":["mbk"]},"application/vnd.mobius.mqy":{"source":"iana","extensions":["mqy"]},"application/vnd.mobius.msl":{"source":"iana","extensions":["msl"]},"application/vnd.mobius.plc":{"source":"iana","extensions":["plc"]},"application/vnd.mobius.txf":{"source":"iana","extensions":["txf"]},"application/vnd.mophun.application":{"source":"iana","extensions":["mpn"]},"application/vnd.mophun.certificate":{"source":"iana","extensions":["mpc"]},"application/vnd.motorola.flexsuite":{"source":"iana"},"application/vnd.motorola.flexsuite.adsi":{"source":"iana"},"application/vnd.motorola.flexsuite.fis":{"source":"iana"},"application/vnd.motorola.flexsuite.gotap":{"source":"iana"},"application/vnd.motorola.flexsuite.kmr":{"source":"iana"},"application/vnd.motorola.flexsuite.ttc":{"source":"iana"},"application/vnd.motorola.flexsuite.wem":{"source":"iana"},"application/vnd.motorola.iprm":{"source":"iana"},"application/vnd.mozilla.xul+xml":{"source":"iana","compressible":true,"extensions":["xul"]},"application/vnd.ms-3mfdocument":{"source":"iana"},"application/vnd.ms-artgalry":{"source":"iana","extensions":["cil"]},"application/vnd.ms-asf":{"source":"iana"},"application/vnd.ms-cab-compressed":{"source":"iana","extensions":["cab"]},"application/vnd.ms-color.iccprofile":{"source":"apache"},"application/vnd.ms-excel":{"source":"iana","compressible":false,"extensions":["xls","xlm","xla","xlc","xlt","xlw"]},"application/vnd.ms-excel.addin.macroenabled.12":{"source":"iana","extensions":["xlam"]},"application/vnd.ms-excel.sheet.binary.macroenabled.12":{"source":"iana","extensions":["xlsb"]},"application/vnd.ms-excel.sheet.macroenabled.12":{"source":"iana","extensions":["xlsm"]},"application/vnd.ms-excel.template.macroenabled.12":{"source":"iana","extensions":["xltm"]},"application/vnd.ms-fontobject":{"source":"iana","compressible":true,"extensions":["eot"]},"application/vnd.ms-htmlhelp":{"source":"iana","extensions":["chm"]},"application/vnd.ms-ims":{"source":"iana","extensions":["ims"]},"application/vnd.ms-lrm":{"source":"iana","extensions":["lrm"]},"application/vnd.ms-office.activex+xml":{"source":"iana","compressible":true},"application/vnd.ms-officetheme":{"source":"iana","extensions":["thmx"]},"application/vnd.ms-opentype":{"source":"apache","compressible":true},"application/vnd.ms-outlook":{"compressible":false,"extensions":["msg"]},"application/vnd.ms-package.obfuscated-opentype":{"source":"apache"},"application/vnd.ms-pki.seccat":{"source":"apache","extensions":["cat"]},"application/vnd.ms-pki.stl":{"source":"apache","extensions":["stl"]},"application/vnd.ms-playready.initiator+xml":{"source":"iana","compressible":true},"application/vnd.ms-powerpoint":{"source":"iana","compressible":false,"extensions":["ppt","pps","pot"]},"application/vnd.ms-powerpoint.addin.macroenabled.12":{"source":"iana","extensions":["ppam"]},"application/vnd.ms-powerpoint.presentation.macroenabled.12":{"source":"iana","extensions":["pptm"]},"application/vnd.ms-powerpoint.slide.macroenabled.12":{"source":"iana","extensions":["sldm"]},"application/vnd.ms-powerpoint.slideshow.macroenabled.12":{"source":"iana","extensions":["ppsm"]},"application/vnd.ms-powerpoint.template.macroenabled.12":{"source":"iana","extensions":["potm"]},"application/vnd.ms-printdevicecapabilities+xml":{"source":"iana","compressible":true},"application/vnd.ms-printing.printticket+xml":{"source":"apache","compressible":true},"application/vnd.ms-printschematicket+xml":{"source":"iana","compressible":true},"application/vnd.ms-project":{"source":"iana","extensions":["mpp","mpt"]},"application/vnd.ms-tnef":{"source":"iana"},"application/vnd.ms-windows.devicepairing":{"source":"iana"},"application/vnd.ms-windows.nwprinting.oob":{"source":"iana"},"application/vnd.ms-windows.printerpairing":{"source":"iana"},"application/vnd.ms-windows.wsd.oob":{"source":"iana"},"application/vnd.ms-wmdrm.lic-chlg-req":{"source":"iana"},"application/vnd.ms-wmdrm.lic-resp":{"source":"iana"},"application/vnd.ms-wmdrm.meter-chlg-req":{"source":"iana"},"application/vnd.ms-wmdrm.meter-resp":{"source":"iana"},"application/vnd.ms-word.document.macroenabled.12":{"source":"iana","extensions":["docm"]},"application/vnd.ms-word.template.macroenabled.12":{"source":"iana","extensions":["dotm"]},"application/vnd.ms-works":{"source":"iana","extensions":["wps","wks","wcm","wdb"]},"application/vnd.ms-wpl":{"source":"iana","extensions":["wpl"]},"application/vnd.ms-xpsdocument":{"source":"iana","compressible":false,"extensions":["xps"]},"application/vnd.msa-disk-image":{"source":"iana"},"application/vnd.mseq":{"source":"iana","extensions":["mseq"]},"application/vnd.msign":{"source":"iana"},"application/vnd.multiad.creator":{"source":"iana"},"application/vnd.multiad.creator.cif":{"source":"iana"},"application/vnd.music-niff":{"source":"iana"},"application/vnd.musician":{"source":"iana","extensions":["mus"]},"application/vnd.muvee.style":{"source":"iana","extensions":["msty"]},"application/vnd.mynfc":{"source":"iana","extensions":["taglet"]},"application/vnd.nacamar.ybrid+json":{"source":"iana","compressible":true},"application/vnd.ncd.control":{"source":"iana"},"application/vnd.ncd.reference":{"source":"iana"},"application/vnd.nearst.inv+json":{"source":"iana","compressible":true},"application/vnd.nebumind.line":{"source":"iana"},"application/vnd.nervana":{"source":"iana"},"application/vnd.netfpx":{"source":"iana"},"application/vnd.neurolanguage.nlu":{"source":"iana","extensions":["nlu"]},"application/vnd.nimn":{"source":"iana"},"application/vnd.nintendo.nitro.rom":{"source":"iana"},"application/vnd.nintendo.snes.rom":{"source":"iana"},"application/vnd.nitf":{"source":"iana","extensions":["ntf","nitf"]},"application/vnd.noblenet-directory":{"source":"iana","extensions":["nnd"]},"application/vnd.noblenet-sealer":{"source":"iana","extensions":["nns"]},"application/vnd.noblenet-web":{"source":"iana","extensions":["nnw"]},"application/vnd.nokia.catalogs":{"source":"iana"},"application/vnd.nokia.conml+wbxml":{"source":"iana"},"application/vnd.nokia.conml+xml":{"source":"iana","compressible":true},"application/vnd.nokia.iptv.config+xml":{"source":"iana","compressible":true},"application/vnd.nokia.isds-radio-presets":{"source":"iana"},"application/vnd.nokia.landmark+wbxml":{"source":"iana"},"application/vnd.nokia.landmark+xml":{"source":"iana","compressible":true},"application/vnd.nokia.landmarkcollection+xml":{"source":"iana","compressible":true},"application/vnd.nokia.n-gage.ac+xml":{"source":"iana","compressible":true,"extensions":["ac"]},"application/vnd.nokia.n-gage.data":{"source":"iana","extensions":["ngdat"]},"application/vnd.nokia.n-gage.symbian.install":{"source":"iana","extensions":["n-gage"]},"application/vnd.nokia.ncd":{"source":"iana"},"application/vnd.nokia.pcd+wbxml":{"source":"iana"},"application/vnd.nokia.pcd+xml":{"source":"iana","compressible":true},"application/vnd.nokia.radio-preset":{"source":"iana","extensions":["rpst"]},"application/vnd.nokia.radio-presets":{"source":"iana","extensions":["rpss"]},"application/vnd.novadigm.edm":{"source":"iana","extensions":["edm"]},"application/vnd.novadigm.edx":{"source":"iana","extensions":["edx"]},"application/vnd.novadigm.ext":{"source":"iana","extensions":["ext"]},"application/vnd.ntt-local.content-share":{"source":"iana"},"application/vnd.ntt-local.file-transfer":{"source":"iana"},"application/vnd.ntt-local.ogw_remote-access":{"source":"iana"},"application/vnd.ntt-local.sip-ta_remote":{"source":"iana"},"application/vnd.ntt-local.sip-ta_tcp_stream":{"source":"iana"},"application/vnd.oasis.opendocument.chart":{"source":"iana","extensions":["odc"]},"application/vnd.oasis.opendocument.chart-template":{"source":"iana","extensions":["otc"]},"application/vnd.oasis.opendocument.database":{"source":"iana","extensions":["odb"]},"application/vnd.oasis.opendocument.formula":{"source":"iana","extensions":["odf"]},"application/vnd.oasis.opendocument.formula-template":{"source":"iana","extensions":["odft"]},"application/vnd.oasis.opendocument.graphics":{"source":"iana","compressible":false,"extensions":["odg"]},"application/vnd.oasis.opendocument.graphics-template":{"source":"iana","extensions":["otg"]},"application/vnd.oasis.opendocument.image":{"source":"iana","extensions":["odi"]},"application/vnd.oasis.opendocument.image-template":{"source":"iana","extensions":["oti"]},"application/vnd.oasis.opendocument.presentation":{"source":"iana","compressible":false,"extensions":["odp"]},"application/vnd.oasis.opendocument.presentation-template":{"source":"iana","extensions":["otp"]},"application/vnd.oasis.opendocument.spreadsheet":{"source":"iana","compressible":false,"extensions":["ods"]},"application/vnd.oasis.opendocument.spreadsheet-template":{"source":"iana","extensions":["ots"]},"application/vnd.oasis.opendocument.text":{"source":"iana","compressible":false,"extensions":["odt"]},"application/vnd.oasis.opendocument.text-master":{"source":"iana","extensions":["odm"]},"application/vnd.oasis.opendocument.text-template":{"source":"iana","extensions":["ott"]},"application/vnd.oasis.opendocument.text-web":{"source":"iana","extensions":["oth"]},"application/vnd.obn":{"source":"iana"},"application/vnd.ocf+cbor":{"source":"iana"},"application/vnd.oci.image.manifest.v1+json":{"source":"iana","compressible":true},"application/vnd.oftn.l10n+json":{"source":"iana","compressible":true},"application/vnd.oipf.contentaccessdownload+xml":{"source":"iana","compressible":true},"application/vnd.oipf.contentaccessstreaming+xml":{"source":"iana","compressible":true},"application/vnd.oipf.cspg-hexbinary":{"source":"iana"},"application/vnd.oipf.dae.svg+xml":{"source":"iana","compressible":true},"application/vnd.oipf.dae.xhtml+xml":{"source":"iana","compressible":true},"application/vnd.oipf.mippvcontrolmessage+xml":{"source":"iana","compressible":true},"application/vnd.oipf.pae.gem":{"source":"iana"},"application/vnd.oipf.spdiscovery+xml":{"source":"iana","compressible":true},"application/vnd.oipf.spdlist+xml":{"source":"iana","compressible":true},"application/vnd.oipf.ueprofile+xml":{"source":"iana","compressible":true},"application/vnd.oipf.userprofile+xml":{"source":"iana","compressible":true},"application/vnd.olpc-sugar":{"source":"iana","extensions":["xo"]},"application/vnd.oma-scws-config":{"source":"iana"},"application/vnd.oma-scws-http-request":{"source":"iana"},"application/vnd.oma-scws-http-response":{"source":"iana"},"application/vnd.oma.bcast.associated-procedure-parameter+xml":{"source":"iana","compressible":true},"application/vnd.oma.bcast.drm-trigger+xml":{"source":"iana","compressible":true},"application/vnd.oma.bcast.imd+xml":{"source":"iana","compressible":true},"application/vnd.oma.bcast.ltkm":{"source":"iana"},"application/vnd.oma.bcast.notification+xml":{"source":"iana","compressible":true},"application/vnd.oma.bcast.provisioningtrigger":{"source":"iana"},"application/vnd.oma.bcast.sgboot":{"source":"iana"},"application/vnd.oma.bcast.sgdd+xml":{"source":"iana","compressible":true},"application/vnd.oma.bcast.sgdu":{"source":"iana"},"application/vnd.oma.bcast.simple-symbol-container":{"source":"iana"},"application/vnd.oma.bcast.smartcard-trigger+xml":{"source":"iana","compressible":true},"application/vnd.oma.bcast.sprov+xml":{"source":"iana","compressible":true},"application/vnd.oma.bcast.stkm":{"source":"iana"},"application/vnd.oma.cab-address-book+xml":{"source":"iana","compressible":true},"application/vnd.oma.cab-feature-handler+xml":{"source":"iana","compressible":true},"application/vnd.oma.cab-pcc+xml":{"source":"iana","compressible":true},"application/vnd.oma.cab-subs-invite+xml":{"source":"iana","compressible":true},"application/vnd.oma.cab-user-prefs+xml":{"source":"iana","compressible":true},"application/vnd.oma.dcd":{"source":"iana"},"application/vnd.oma.dcdc":{"source":"iana"},"application/vnd.oma.dd2+xml":{"source":"iana","compressible":true,"extensions":["dd2"]},"application/vnd.oma.drm.risd+xml":{"source":"iana","compressible":true},"application/vnd.oma.group-usage-list+xml":{"source":"iana","compressible":true},"application/vnd.oma.lwm2m+cbor":{"source":"iana"},"application/vnd.oma.lwm2m+json":{"source":"iana","compressible":true},"application/vnd.oma.lwm2m+tlv":{"source":"iana"},"application/vnd.oma.pal+xml":{"source":"iana","compressible":true},"application/vnd.oma.poc.detailed-progress-report+xml":{"source":"iana","compressible":true},"application/vnd.oma.poc.final-report+xml":{"source":"iana","compressible":true},"application/vnd.oma.poc.groups+xml":{"source":"iana","compressible":true},"application/vnd.oma.poc.invocation-descriptor+xml":{"source":"iana","compressible":true},"application/vnd.oma.poc.optimized-progress-report+xml":{"source":"iana","compressible":true},"application/vnd.oma.push":{"source":"iana"},"application/vnd.oma.scidm.messages+xml":{"source":"iana","compressible":true},"application/vnd.oma.xcap-directory+xml":{"source":"iana","compressible":true},"application/vnd.omads-email+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/vnd.omads-file+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/vnd.omads-folder+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/vnd.omaloc-supl-init":{"source":"iana"},"application/vnd.onepager":{"source":"iana"},"application/vnd.onepagertamp":{"source":"iana"},"application/vnd.onepagertamx":{"source":"iana"},"application/vnd.onepagertat":{"source":"iana"},"application/vnd.onepagertatp":{"source":"iana"},"application/vnd.onepagertatx":{"source":"iana"},"application/vnd.openblox.game+xml":{"source":"iana","compressible":true,"extensions":["obgx"]},"application/vnd.openblox.game-binary":{"source":"iana"},"application/vnd.openeye.oeb":{"source":"iana"},"application/vnd.openofficeorg.extension":{"source":"apache","extensions":["oxt"]},"application/vnd.openstreetmap.data+xml":{"source":"iana","compressible":true,"extensions":["osm"]},"application/vnd.opentimestamps.ots":{"source":"iana"},"application/vnd.openxmlformats-officedocument.custom-properties+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.customxmlproperties+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.drawing+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.drawingml.chart+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.drawingml.diagramcolors+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.drawingml.diagramdata+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.drawingml.diagramlayout+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.drawingml.diagramstyle+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.extended-properties+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.commentauthors+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.comments+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.handoutmaster+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.notesmaster+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.notesslide+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.presentation":{"source":"iana","compressible":false,"extensions":["pptx"]},"application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.presprops+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.slide":{"source":"iana","extensions":["sldx"]},"application/vnd.openxmlformats-officedocument.presentationml.slide+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.slidelayout+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.slidemaster+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.slideshow":{"source":"iana","extensions":["ppsx"]},"application/vnd.openxmlformats-officedocument.presentationml.slideshow.main+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.slideupdateinfo+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.tablestyles+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.tags+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.template":{"source":"iana","extensions":["potx"]},"application/vnd.openxmlformats-officedocument.presentationml.template.main+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.viewprops+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.calcchain+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.externallink+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcachedefinition+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcacherecords+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.pivottable+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.querytable+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionheaders+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionlog+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedstrings+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":{"source":"iana","compressible":false,"extensions":["xlsx"]},"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.sheetmetadata+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.tablesinglecells+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.template":{"source":"iana","extensions":["xltx"]},"application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.usernames+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.volatiledependencies+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.theme+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.themeoverride+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.vmldrawing":{"source":"iana"},"application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.document":{"source":"iana","compressible":false,"extensions":["docx"]},"application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.fonttable+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.template":{"source":"iana","extensions":["dotx"]},"application/vnd.openxmlformats-officedocument.wordprocessingml.template.main+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.websettings+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-package.core-properties+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-package.digital-signature-xmlsignature+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-package.relationships+xml":{"source":"iana","compressible":true},"application/vnd.oracle.resource+json":{"source":"iana","compressible":true},"application/vnd.orange.indata":{"source":"iana"},"application/vnd.osa.netdeploy":{"source":"iana"},"application/vnd.osgeo.mapguide.package":{"source":"iana","extensions":["mgp"]},"application/vnd.osgi.bundle":{"source":"iana"},"application/vnd.osgi.dp":{"source":"iana","extensions":["dp"]},"application/vnd.osgi.subsystem":{"source":"iana","extensions":["esa"]},"application/vnd.otps.ct-kip+xml":{"source":"iana","compressible":true},"application/vnd.oxli.countgraph":{"source":"iana"},"application/vnd.pagerduty+json":{"source":"iana","compressible":true},"application/vnd.palm":{"source":"iana","extensions":["pdb","pqa","oprc"]},"application/vnd.panoply":{"source":"iana"},"application/vnd.paos.xml":{"source":"iana"},"application/vnd.patentdive":{"source":"iana"},"application/vnd.patientecommsdoc":{"source":"iana"},"application/vnd.pawaafile":{"source":"iana","extensions":["paw"]},"application/vnd.pcos":{"source":"iana"},"application/vnd.pg.format":{"source":"iana","extensions":["str"]},"application/vnd.pg.osasli":{"source":"iana","extensions":["ei6"]},"application/vnd.piaccess.application-licence":{"source":"iana"},"application/vnd.picsel":{"source":"iana","extensions":["efif"]},"application/vnd.pmi.widget":{"source":"iana","extensions":["wg"]},"application/vnd.poc.group-advertisement+xml":{"source":"iana","compressible":true},"application/vnd.pocketlearn":{"source":"iana","extensions":["plf"]},"application/vnd.powerbuilder6":{"source":"iana","extensions":["pbd"]},"application/vnd.powerbuilder6-s":{"source":"iana"},"application/vnd.powerbuilder7":{"source":"iana"},"application/vnd.powerbuilder7-s":{"source":"iana"},"application/vnd.powerbuilder75":{"source":"iana"},"application/vnd.powerbuilder75-s":{"source":"iana"},"application/vnd.preminet":{"source":"iana"},"application/vnd.previewsystems.box":{"source":"iana","extensions":["box"]},"application/vnd.proteus.magazine":{"source":"iana","extensions":["mgz"]},"application/vnd.psfs":{"source":"iana"},"application/vnd.publishare-delta-tree":{"source":"iana","extensions":["qps"]},"application/vnd.pvi.ptid1":{"source":"iana","extensions":["ptid"]},"application/vnd.pwg-multiplexed":{"source":"iana"},"application/vnd.pwg-xhtml-print+xml":{"source":"iana","compressible":true},"application/vnd.qualcomm.brew-app-res":{"source":"iana"},"application/vnd.quarantainenet":{"source":"iana"},"application/vnd.quark.quarkxpress":{"source":"iana","extensions":["qxd","qxt","qwd","qwt","qxl","qxb"]},"application/vnd.quobject-quoxdocument":{"source":"iana"},"application/vnd.radisys.moml+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-audit+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-audit-conf+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-audit-conn+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-audit-dialog+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-audit-stream+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-conf+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-dialog+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-dialog-base+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-dialog-fax-detect+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-dialog-fax-sendrecv+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-dialog-group+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-dialog-speech+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-dialog-transform+xml":{"source":"iana","compressible":true},"application/vnd.rainstor.data":{"source":"iana"},"application/vnd.rapid":{"source":"iana"},"application/vnd.rar":{"source":"iana","extensions":["rar"]},"application/vnd.realvnc.bed":{"source":"iana","extensions":["bed"]},"application/vnd.recordare.musicxml":{"source":"iana","extensions":["mxl"]},"application/vnd.recordare.musicxml+xml":{"source":"iana","compressible":true,"extensions":["musicxml"]},"application/vnd.renlearn.rlprint":{"source":"iana"},"application/vnd.resilient.logic":{"source":"iana"},"application/vnd.restful+json":{"source":"iana","compressible":true},"application/vnd.rig.cryptonote":{"source":"iana","extensions":["cryptonote"]},"application/vnd.rim.cod":{"source":"apache","extensions":["cod"]},"application/vnd.rn-realmedia":{"source":"apache","extensions":["rm"]},"application/vnd.rn-realmedia-vbr":{"source":"apache","extensions":["rmvb"]},"application/vnd.route66.link66+xml":{"source":"iana","compressible":true,"extensions":["link66"]},"application/vnd.rs-274x":{"source":"iana"},"application/vnd.ruckus.download":{"source":"iana"},"application/vnd.s3sms":{"source":"iana"},"application/vnd.sailingtracker.track":{"source":"iana","extensions":["st"]},"application/vnd.sar":{"source":"iana"},"application/vnd.sbm.cid":{"source":"iana"},"application/vnd.sbm.mid2":{"source":"iana"},"application/vnd.scribus":{"source":"iana"},"application/vnd.sealed.3df":{"source":"iana"},"application/vnd.sealed.csf":{"source":"iana"},"application/vnd.sealed.doc":{"source":"iana"},"application/vnd.sealed.eml":{"source":"iana"},"application/vnd.sealed.mht":{"source":"iana"},"application/vnd.sealed.net":{"source":"iana"},"application/vnd.sealed.ppt":{"source":"iana"},"application/vnd.sealed.tiff":{"source":"iana"},"application/vnd.sealed.xls":{"source":"iana"},"application/vnd.sealedmedia.softseal.html":{"source":"iana"},"application/vnd.sealedmedia.softseal.pdf":{"source":"iana"},"application/vnd.seemail":{"source":"iana","extensions":["see"]},"application/vnd.seis+json":{"source":"iana","compressible":true},"application/vnd.sema":{"source":"iana","extensions":["sema"]},"application/vnd.semd":{"source":"iana","extensions":["semd"]},"application/vnd.semf":{"source":"iana","extensions":["semf"]},"application/vnd.shade-save-file":{"source":"iana"},"application/vnd.shana.informed.formdata":{"source":"iana","extensions":["ifm"]},"application/vnd.shana.informed.formtemplate":{"source":"iana","extensions":["itp"]},"application/vnd.shana.informed.interchange":{"source":"iana","extensions":["iif"]},"application/vnd.shana.informed.package":{"source":"iana","extensions":["ipk"]},"application/vnd.shootproof+json":{"source":"iana","compressible":true},"application/vnd.shopkick+json":{"source":"iana","compressible":true},"application/vnd.shp":{"source":"iana"},"application/vnd.shx":{"source":"iana"},"application/vnd.sigrok.session":{"source":"iana"},"application/vnd.simtech-mindmapper":{"source":"iana","extensions":["twd","twds"]},"application/vnd.siren+json":{"source":"iana","compressible":true},"application/vnd.smaf":{"source":"iana","extensions":["mmf"]},"application/vnd.smart.notebook":{"source":"iana"},"application/vnd.smart.teacher":{"source":"iana","extensions":["teacher"]},"application/vnd.snesdev-page-table":{"source":"iana"},"application/vnd.software602.filler.form+xml":{"source":"iana","compressible":true,"extensions":["fo"]},"application/vnd.software602.filler.form-xml-zip":{"source":"iana"},"application/vnd.solent.sdkm+xml":{"source":"iana","compressible":true,"extensions":["sdkm","sdkd"]},"application/vnd.spotfire.dxp":{"source":"iana","extensions":["dxp"]},"application/vnd.spotfire.sfs":{"source":"iana","extensions":["sfs"]},"application/vnd.sqlite3":{"source":"iana"},"application/vnd.sss-cod":{"source":"iana"},"application/vnd.sss-dtf":{"source":"iana"},"application/vnd.sss-ntf":{"source":"iana"},"application/vnd.stardivision.calc":{"source":"apache","extensions":["sdc"]},"application/vnd.stardivision.draw":{"source":"apache","extensions":["sda"]},"application/vnd.stardivision.impress":{"source":"apache","extensions":["sdd"]},"application/vnd.stardivision.math":{"source":"apache","extensions":["smf"]},"application/vnd.stardivision.writer":{"source":"apache","extensions":["sdw","vor"]},"application/vnd.stardivision.writer-global":{"source":"apache","extensions":["sgl"]},"application/vnd.stepmania.package":{"source":"iana","extensions":["smzip"]},"application/vnd.stepmania.stepchart":{"source":"iana","extensions":["sm"]},"application/vnd.street-stream":{"source":"iana"},"application/vnd.sun.wadl+xml":{"source":"iana","compressible":true,"extensions":["wadl"]},"application/vnd.sun.xml.calc":{"source":"apache","extensions":["sxc"]},"application/vnd.sun.xml.calc.template":{"source":"apache","extensions":["stc"]},"application/vnd.sun.xml.draw":{"source":"apache","extensions":["sxd"]},"application/vnd.sun.xml.draw.template":{"source":"apache","extensions":["std"]},"application/vnd.sun.xml.impress":{"source":"apache","extensions":["sxi"]},"application/vnd.sun.xml.impress.template":{"source":"apache","extensions":["sti"]},"application/vnd.sun.xml.math":{"source":"apache","extensions":["sxm"]},"application/vnd.sun.xml.writer":{"source":"apache","extensions":["sxw"]},"application/vnd.sun.xml.writer.global":{"source":"apache","extensions":["sxg"]},"application/vnd.sun.xml.writer.template":{"source":"apache","extensions":["stw"]},"application/vnd.sus-calendar":{"source":"iana","extensions":["sus","susp"]},"application/vnd.svd":{"source":"iana","extensions":["svd"]},"application/vnd.swiftview-ics":{"source":"iana"},"application/vnd.sycle+xml":{"source":"iana","compressible":true},"application/vnd.syft+json":{"source":"iana","compressible":true},"application/vnd.symbian.install":{"source":"apache","extensions":["sis","sisx"]},"application/vnd.syncml+xml":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["xsm"]},"application/vnd.syncml.dm+wbxml":{"source":"iana","charset":"UTF-8","extensions":["bdm"]},"application/vnd.syncml.dm+xml":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["xdm"]},"application/vnd.syncml.dm.notification":{"source":"iana"},"application/vnd.syncml.dmddf+wbxml":{"source":"iana"},"application/vnd.syncml.dmddf+xml":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["ddf"]},"application/vnd.syncml.dmtnds+wbxml":{"source":"iana"},"application/vnd.syncml.dmtnds+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/vnd.syncml.ds.notification":{"source":"iana"},"application/vnd.tableschema+json":{"source":"iana","compressible":true},"application/vnd.tao.intent-module-archive":{"source":"iana","extensions":["tao"]},"application/vnd.tcpdump.pcap":{"source":"iana","extensions":["pcap","cap","dmp"]},"application/vnd.think-cell.ppttc+json":{"source":"iana","compressible":true},"application/vnd.tmd.mediaflex.api+xml":{"source":"iana","compressible":true},"application/vnd.tml":{"source":"iana"},"application/vnd.tmobile-livetv":{"source":"iana","extensions":["tmo"]},"application/vnd.tri.onesource":{"source":"iana"},"application/vnd.trid.tpt":{"source":"iana","extensions":["tpt"]},"application/vnd.triscape.mxs":{"source":"iana","extensions":["mxs"]},"application/vnd.trueapp":{"source":"iana","extensions":["tra"]},"application/vnd.truedoc":{"source":"iana"},"application/vnd.ubisoft.webplayer":{"source":"iana"},"application/vnd.ufdl":{"source":"iana","extensions":["ufd","ufdl"]},"application/vnd.uiq.theme":{"source":"iana","extensions":["utz"]},"application/vnd.umajin":{"source":"iana","extensions":["umj"]},"application/vnd.unity":{"source":"iana","extensions":["unityweb"]},"application/vnd.uoml+xml":{"source":"iana","compressible":true,"extensions":["uoml"]},"application/vnd.uplanet.alert":{"source":"iana"},"application/vnd.uplanet.alert-wbxml":{"source":"iana"},"application/vnd.uplanet.bearer-choice":{"source":"iana"},"application/vnd.uplanet.bearer-choice-wbxml":{"source":"iana"},"application/vnd.uplanet.cacheop":{"source":"iana"},"application/vnd.uplanet.cacheop-wbxml":{"source":"iana"},"application/vnd.uplanet.channel":{"source":"iana"},"application/vnd.uplanet.channel-wbxml":{"source":"iana"},"application/vnd.uplanet.list":{"source":"iana"},"application/vnd.uplanet.list-wbxml":{"source":"iana"},"application/vnd.uplanet.listcmd":{"source":"iana"},"application/vnd.uplanet.listcmd-wbxml":{"source":"iana"},"application/vnd.uplanet.signal":{"source":"iana"},"application/vnd.uri-map":{"source":"iana"},"application/vnd.valve.source.material":{"source":"iana"},"application/vnd.vcx":{"source":"iana","extensions":["vcx"]},"application/vnd.vd-study":{"source":"iana"},"application/vnd.vectorworks":{"source":"iana"},"application/vnd.vel+json":{"source":"iana","compressible":true},"application/vnd.verimatrix.vcas":{"source":"iana"},"application/vnd.veritone.aion+json":{"source":"iana","compressible":true},"application/vnd.veryant.thin":{"source":"iana"},"application/vnd.ves.encrypted":{"source":"iana"},"application/vnd.vidsoft.vidconference":{"source":"iana"},"application/vnd.visio":{"source":"iana","extensions":["vsd","vst","vss","vsw"]},"application/vnd.visionary":{"source":"iana","extensions":["vis"]},"application/vnd.vividence.scriptfile":{"source":"iana"},"application/vnd.vsf":{"source":"iana","extensions":["vsf"]},"application/vnd.wap.sic":{"source":"iana"},"application/vnd.wap.slc":{"source":"iana"},"application/vnd.wap.wbxml":{"source":"iana","charset":"UTF-8","extensions":["wbxml"]},"application/vnd.wap.wmlc":{"source":"iana","extensions":["wmlc"]},"application/vnd.wap.wmlscriptc":{"source":"iana","extensions":["wmlsc"]},"application/vnd.webturbo":{"source":"iana","extensions":["wtb"]},"application/vnd.wfa.dpp":{"source":"iana"},"application/vnd.wfa.p2p":{"source":"iana"},"application/vnd.wfa.wsc":{"source":"iana"},"application/vnd.windows.devicepairing":{"source":"iana"},"application/vnd.wmc":{"source":"iana"},"application/vnd.wmf.bootstrap":{"source":"iana"},"application/vnd.wolfram.mathematica":{"source":"iana"},"application/vnd.wolfram.mathematica.package":{"source":"iana"},"application/vnd.wolfram.player":{"source":"iana","extensions":["nbp"]},"application/vnd.wordperfect":{"source":"iana","extensions":["wpd"]},"application/vnd.wqd":{"source":"iana","extensions":["wqd"]},"application/vnd.wrq-hp3000-labelled":{"source":"iana"},"application/vnd.wt.stf":{"source":"iana","extensions":["stf"]},"application/vnd.wv.csp+wbxml":{"source":"iana"},"application/vnd.wv.csp+xml":{"source":"iana","compressible":true},"application/vnd.wv.ssp+xml":{"source":"iana","compressible":true},"application/vnd.xacml+json":{"source":"iana","compressible":true},"application/vnd.xara":{"source":"iana","extensions":["xar"]},"application/vnd.xfdl":{"source":"iana","extensions":["xfdl"]},"application/vnd.xfdl.webform":{"source":"iana"},"application/vnd.xmi+xml":{"source":"iana","compressible":true},"application/vnd.xmpie.cpkg":{"source":"iana"},"application/vnd.xmpie.dpkg":{"source":"iana"},"application/vnd.xmpie.plan":{"source":"iana"},"application/vnd.xmpie.ppkg":{"source":"iana"},"application/vnd.xmpie.xlim":{"source":"iana"},"application/vnd.yamaha.hv-dic":{"source":"iana","extensions":["hvd"]},"application/vnd.yamaha.hv-script":{"source":"iana","extensions":["hvs"]},"application/vnd.yamaha.hv-voice":{"source":"iana","extensions":["hvp"]},"application/vnd.yamaha.openscoreformat":{"source":"iana","extensions":["osf"]},"application/vnd.yamaha.openscoreformat.osfpvg+xml":{"source":"iana","compressible":true,"extensions":["osfpvg"]},"application/vnd.yamaha.remote-setup":{"source":"iana"},"application/vnd.yamaha.smaf-audio":{"source":"iana","extensions":["saf"]},"application/vnd.yamaha.smaf-phrase":{"source":"iana","extensions":["spf"]},"application/vnd.yamaha.through-ngn":{"source":"iana"},"application/vnd.yamaha.tunnel-udpencap":{"source":"iana"},"application/vnd.yaoweme":{"source":"iana"},"application/vnd.yellowriver-custom-menu":{"source":"iana","extensions":["cmp"]},"application/vnd.youtube.yt":{"source":"iana"},"application/vnd.zul":{"source":"iana","extensions":["zir","zirz"]},"application/vnd.zzazz.deck+xml":{"source":"iana","compressible":true,"extensions":["zaz"]},"application/voicexml+xml":{"source":"iana","compressible":true,"extensions":["vxml"]},"application/voucher-cms+json":{"source":"iana","compressible":true},"application/vq-rtcpxr":{"source":"iana"},"application/wasm":{"source":"iana","compressible":true,"extensions":["wasm"]},"application/watcherinfo+xml":{"source":"iana","compressible":true,"extensions":["wif"]},"application/webpush-options+json":{"source":"iana","compressible":true},"application/whoispp-query":{"source":"iana"},"application/whoispp-response":{"source":"iana"},"application/widget":{"source":"iana","extensions":["wgt"]},"application/winhlp":{"source":"apache","extensions":["hlp"]},"application/wita":{"source":"iana"},"application/wordperfect5.1":{"source":"iana"},"application/wsdl+xml":{"source":"iana","compressible":true,"extensions":["wsdl"]},"application/wspolicy+xml":{"source":"iana","compressible":true,"extensions":["wspolicy"]},"application/x-7z-compressed":{"source":"apache","compressible":false,"extensions":["7z"]},"application/x-abiword":{"source":"apache","extensions":["abw"]},"application/x-ace-compressed":{"source":"apache","extensions":["ace"]},"application/x-amf":{"source":"apache"},"application/x-apple-diskimage":{"source":"apache","extensions":["dmg"]},"application/x-arj":{"compressible":false,"extensions":["arj"]},"application/x-authorware-bin":{"source":"apache","extensions":["aab","x32","u32","vox"]},"application/x-authorware-map":{"source":"apache","extensions":["aam"]},"application/x-authorware-seg":{"source":"apache","extensions":["aas"]},"application/x-bcpio":{"source":"apache","extensions":["bcpio"]},"application/x-bdoc":{"compressible":false,"extensions":["bdoc"]},"application/x-bittorrent":{"source":"apache","extensions":["torrent"]},"application/x-blorb":{"source":"apache","extensions":["blb","blorb"]},"application/x-bzip":{"source":"apache","compressible":false,"extensions":["bz"]},"application/x-bzip2":{"source":"apache","compressible":false,"extensions":["bz2","boz"]},"application/x-cbr":{"source":"apache","extensions":["cbr","cba","cbt","cbz","cb7"]},"application/x-cdlink":{"source":"apache","extensions":["vcd"]},"application/x-cfs-compressed":{"source":"apache","extensions":["cfs"]},"application/x-chat":{"source":"apache","extensions":["chat"]},"application/x-chess-pgn":{"source":"apache","extensions":["pgn"]},"application/x-chrome-extension":{"extensions":["crx"]},"application/x-cocoa":{"source":"nginx","extensions":["cco"]},"application/x-compress":{"source":"apache"},"application/x-conference":{"source":"apache","extensions":["nsc"]},"application/x-cpio":{"source":"apache","extensions":["cpio"]},"application/x-csh":{"source":"apache","extensions":["csh"]},"application/x-deb":{"compressible":false},"application/x-debian-package":{"source":"apache","extensions":["deb","udeb"]},"application/x-dgc-compressed":{"source":"apache","extensions":["dgc"]},"application/x-director":{"source":"apache","extensions":["dir","dcr","dxr","cst","cct","cxt","w3d","fgd","swa"]},"application/x-doom":{"source":"apache","extensions":["wad"]},"application/x-dtbncx+xml":{"source":"apache","compressible":true,"extensions":["ncx"]},"application/x-dtbook+xml":{"source":"apache","compressible":true,"extensions":["dtb"]},"application/x-dtbresource+xml":{"source":"apache","compressible":true,"extensions":["res"]},"application/x-dvi":{"source":"apache","compressible":false,"extensions":["dvi"]},"application/x-envoy":{"source":"apache","extensions":["evy"]},"application/x-eva":{"source":"apache","extensions":["eva"]},"application/x-font-bdf":{"source":"apache","extensions":["bdf"]},"application/x-font-dos":{"source":"apache"},"application/x-font-framemaker":{"source":"apache"},"application/x-font-ghostscript":{"source":"apache","extensions":["gsf"]},"application/x-font-libgrx":{"source":"apache"},"application/x-font-linux-psf":{"source":"apache","extensions":["psf"]},"application/x-font-pcf":{"source":"apache","extensions":["pcf"]},"application/x-font-snf":{"source":"apache","extensions":["snf"]},"application/x-font-speedo":{"source":"apache"},"application/x-font-sunos-news":{"source":"apache"},"application/x-font-type1":{"source":"apache","extensions":["pfa","pfb","pfm","afm"]},"application/x-font-vfont":{"source":"apache"},"application/x-freearc":{"source":"apache","extensions":["arc"]},"application/x-futuresplash":{"source":"apache","extensions":["spl"]},"application/x-gca-compressed":{"source":"apache","extensions":["gca"]},"application/x-glulx":{"source":"apache","extensions":["ulx"]},"application/x-gnumeric":{"source":"apache","extensions":["gnumeric"]},"application/x-gramps-xml":{"source":"apache","extensions":["gramps"]},"application/x-gtar":{"source":"apache","extensions":["gtar"]},"application/x-gzip":{"source":"apache"},"application/x-hdf":{"source":"apache","extensions":["hdf"]},"application/x-httpd-php":{"compressible":true,"extensions":["php"]},"application/x-install-instructions":{"source":"apache","extensions":["install"]},"application/x-iso9660-image":{"source":"apache","extensions":["iso"]},"application/x-iwork-keynote-sffkey":{"extensions":["key"]},"application/x-iwork-numbers-sffnumbers":{"extensions":["numbers"]},"application/x-iwork-pages-sffpages":{"extensions":["pages"]},"application/x-java-archive-diff":{"source":"nginx","extensions":["jardiff"]},"application/x-java-jnlp-file":{"source":"apache","compressible":false,"extensions":["jnlp"]},"application/x-javascript":{"compressible":true},"application/x-keepass2":{"extensions":["kdbx"]},"application/x-latex":{"source":"apache","compressible":false,"extensions":["latex"]},"application/x-lua-bytecode":{"extensions":["luac"]},"application/x-lzh-compressed":{"source":"apache","extensions":["lzh","lha"]},"application/x-makeself":{"source":"nginx","extensions":["run"]},"application/x-mie":{"source":"apache","extensions":["mie"]},"application/x-mobipocket-ebook":{"source":"apache","extensions":["prc","mobi"]},"application/x-mpegurl":{"compressible":false},"application/x-ms-application":{"source":"apache","extensions":["application"]},"application/x-ms-shortcut":{"source":"apache","extensions":["lnk"]},"application/x-ms-wmd":{"source":"apache","extensions":["wmd"]},"application/x-ms-wmz":{"source":"apache","extensions":["wmz"]},"application/x-ms-xbap":{"source":"apache","extensions":["xbap"]},"application/x-msaccess":{"source":"apache","extensions":["mdb"]},"application/x-msbinder":{"source":"apache","extensions":["obd"]},"application/x-mscardfile":{"source":"apache","extensions":["crd"]},"application/x-msclip":{"source":"apache","extensions":["clp"]},"application/x-msdos-program":{"extensions":["exe"]},"application/x-msdownload":{"source":"apache","extensions":["exe","dll","com","bat","msi"]},"application/x-msmediaview":{"source":"apache","extensions":["mvb","m13","m14"]},"application/x-msmetafile":{"source":"apache","extensions":["wmf","wmz","emf","emz"]},"application/x-msmoney":{"source":"apache","extensions":["mny"]},"application/x-mspublisher":{"source":"apache","extensions":["pub"]},"application/x-msschedule":{"source":"apache","extensions":["scd"]},"application/x-msterminal":{"source":"apache","extensions":["trm"]},"application/x-mswrite":{"source":"apache","extensions":["wri"]},"application/x-netcdf":{"source":"apache","extensions":["nc","cdf"]},"application/x-ns-proxy-autoconfig":{"compressible":true,"extensions":["pac"]},"application/x-nzb":{"source":"apache","extensions":["nzb"]},"application/x-perl":{"source":"nginx","extensions":["pl","pm"]},"application/x-pilot":{"source":"nginx","extensions":["prc","pdb"]},"application/x-pkcs12":{"source":"apache","compressible":false,"extensions":["p12","pfx"]},"application/x-pkcs7-certificates":{"source":"apache","extensions":["p7b","spc"]},"application/x-pkcs7-certreqresp":{"source":"apache","extensions":["p7r"]},"application/x-pki-message":{"source":"iana"},"application/x-rar-compressed":{"source":"apache","compressible":false,"extensions":["rar"]},"application/x-redhat-package-manager":{"source":"nginx","extensions":["rpm"]},"application/x-research-info-systems":{"source":"apache","extensions":["ris"]},"application/x-sea":{"source":"nginx","extensions":["sea"]},"application/x-sh":{"source":"apache","compressible":true,"extensions":["sh"]},"application/x-shar":{"source":"apache","extensions":["shar"]},"application/x-shockwave-flash":{"source":"apache","compressible":false,"extensions":["swf"]},"application/x-silverlight-app":{"source":"apache","extensions":["xap"]},"application/x-sql":{"source":"apache","extensions":["sql"]},"application/x-stuffit":{"source":"apache","compressible":false,"extensions":["sit"]},"application/x-stuffitx":{"source":"apache","extensions":["sitx"]},"application/x-subrip":{"source":"apache","extensions":["srt"]},"application/x-sv4cpio":{"source":"apache","extensions":["sv4cpio"]},"application/x-sv4crc":{"source":"apache","extensions":["sv4crc"]},"application/x-t3vm-image":{"source":"apache","extensions":["t3"]},"application/x-tads":{"source":"apache","extensions":["gam"]},"application/x-tar":{"source":"apache","compressible":true,"extensions":["tar"]},"application/x-tcl":{"source":"apache","extensions":["tcl","tk"]},"application/x-tex":{"source":"apache","extensions":["tex"]},"application/x-tex-tfm":{"source":"apache","extensions":["tfm"]},"application/x-texinfo":{"source":"apache","extensions":["texinfo","texi"]},"application/x-tgif":{"source":"apache","extensions":["obj"]},"application/x-ustar":{"source":"apache","extensions":["ustar"]},"application/x-virtualbox-hdd":{"compressible":true,"extensions":["hdd"]},"application/x-virtualbox-ova":{"compressible":true,"extensions":["ova"]},"application/x-virtualbox-ovf":{"compressible":true,"extensions":["ovf"]},"application/x-virtualbox-vbox":{"compressible":true,"extensions":["vbox"]},"application/x-virtualbox-vbox-extpack":{"compressible":false,"extensions":["vbox-extpack"]},"application/x-virtualbox-vdi":{"compressible":true,"extensions":["vdi"]},"application/x-virtualbox-vhd":{"compressible":true,"extensions":["vhd"]},"application/x-virtualbox-vmdk":{"compressible":true,"extensions":["vmdk"]},"application/x-wais-source":{"source":"apache","extensions":["src"]},"application/x-web-app-manifest+json":{"compressible":true,"extensions":["webapp"]},"application/x-www-form-urlencoded":{"source":"iana","compressible":true},"application/x-x509-ca-cert":{"source":"iana","extensions":["der","crt","pem"]},"application/x-x509-ca-ra-cert":{"source":"iana"},"application/x-x509-next-ca-cert":{"source":"iana"},"application/x-xfig":{"source":"apache","extensions":["fig"]},"application/x-xliff+xml":{"source":"apache","compressible":true,"extensions":["xlf"]},"application/x-xpinstall":{"source":"apache","compressible":false,"extensions":["xpi"]},"application/x-xz":{"source":"apache","extensions":["xz"]},"application/x-zmachine":{"source":"apache","extensions":["z1","z2","z3","z4","z5","z6","z7","z8"]},"application/x400-bp":{"source":"iana"},"application/xacml+xml":{"source":"iana","compressible":true},"application/xaml+xml":{"source":"apache","compressible":true,"extensions":["xaml"]},"application/xcap-att+xml":{"source":"iana","compressible":true,"extensions":["xav"]},"application/xcap-caps+xml":{"source":"iana","compressible":true,"extensions":["xca"]},"application/xcap-diff+xml":{"source":"iana","compressible":true,"extensions":["xdf"]},"application/xcap-el+xml":{"source":"iana","compressible":true,"extensions":["xel"]},"application/xcap-error+xml":{"source":"iana","compressible":true},"application/xcap-ns+xml":{"source":"iana","compressible":true,"extensions":["xns"]},"application/xcon-conference-info+xml":{"source":"iana","compressible":true},"application/xcon-conference-info-diff+xml":{"source":"iana","compressible":true},"application/xenc+xml":{"source":"iana","compressible":true,"extensions":["xenc"]},"application/xhtml+xml":{"source":"iana","compressible":true,"extensions":["xhtml","xht"]},"application/xhtml-voice+xml":{"source":"apache","compressible":true},"application/xliff+xml":{"source":"iana","compressible":true,"extensions":["xlf"]},"application/xml":{"source":"iana","compressible":true,"extensions":["xml","xsl","xsd","rng"]},"application/xml-dtd":{"source":"iana","compressible":true,"extensions":["dtd"]},"application/xml-external-parsed-entity":{"source":"iana"},"application/xml-patch+xml":{"source":"iana","compressible":true},"application/xmpp+xml":{"source":"iana","compressible":true},"application/xop+xml":{"source":"iana","compressible":true,"extensions":["xop"]},"application/xproc+xml":{"source":"apache","compressible":true,"extensions":["xpl"]},"application/xslt+xml":{"source":"iana","compressible":true,"extensions":["xsl","xslt"]},"application/xspf+xml":{"source":"apache","compressible":true,"extensions":["xspf"]},"application/xv+xml":{"source":"iana","compressible":true,"extensions":["mxml","xhvml","xvml","xvm"]},"application/yang":{"source":"iana","extensions":["yang"]},"application/yang-data+json":{"source":"iana","compressible":true},"application/yang-data+xml":{"source":"iana","compressible":true},"application/yang-patch+json":{"source":"iana","compressible":true},"application/yang-patch+xml":{"source":"iana","compressible":true},"application/yin+xml":{"source":"iana","compressible":true,"extensions":["yin"]},"application/zip":{"source":"iana","compressible":false,"extensions":["zip"]},"application/zlib":{"source":"iana"},"application/zstd":{"source":"iana"},"audio/1d-interleaved-parityfec":{"source":"iana"},"audio/32kadpcm":{"source":"iana"},"audio/3gpp":{"source":"iana","compressible":false,"extensions":["3gpp"]},"audio/3gpp2":{"source":"iana"},"audio/aac":{"source":"iana"},"audio/ac3":{"source":"iana"},"audio/adpcm":{"source":"apache","extensions":["adp"]},"audio/amr":{"source":"iana","extensions":["amr"]},"audio/amr-wb":{"source":"iana"},"audio/amr-wb+":{"source":"iana"},"audio/aptx":{"source":"iana"},"audio/asc":{"source":"iana"},"audio/atrac-advanced-lossless":{"source":"iana"},"audio/atrac-x":{"source":"iana"},"audio/atrac3":{"source":"iana"},"audio/basic":{"source":"iana","compressible":false,"extensions":["au","snd"]},"audio/bv16":{"source":"iana"},"audio/bv32":{"source":"iana"},"audio/clearmode":{"source":"iana"},"audio/cn":{"source":"iana"},"audio/dat12":{"source":"iana"},"audio/dls":{"source":"iana"},"audio/dsr-es201108":{"source":"iana"},"audio/dsr-es202050":{"source":"iana"},"audio/dsr-es202211":{"source":"iana"},"audio/dsr-es202212":{"source":"iana"},"audio/dv":{"source":"iana"},"audio/dvi4":{"source":"iana"},"audio/eac3":{"source":"iana"},"audio/encaprtp":{"source":"iana"},"audio/evrc":{"source":"iana"},"audio/evrc-qcp":{"source":"iana"},"audio/evrc0":{"source":"iana"},"audio/evrc1":{"source":"iana"},"audio/evrcb":{"source":"iana"},"audio/evrcb0":{"source":"iana"},"audio/evrcb1":{"source":"iana"},"audio/evrcnw":{"source":"iana"},"audio/evrcnw0":{"source":"iana"},"audio/evrcnw1":{"source":"iana"},"audio/evrcwb":{"source":"iana"},"audio/evrcwb0":{"source":"iana"},"audio/evrcwb1":{"source":"iana"},"audio/evs":{"source":"iana"},"audio/flexfec":{"source":"iana"},"audio/fwdred":{"source":"iana"},"audio/g711-0":{"source":"iana"},"audio/g719":{"source":"iana"},"audio/g722":{"source":"iana"},"audio/g7221":{"source":"iana"},"audio/g723":{"source":"iana"},"audio/g726-16":{"source":"iana"},"audio/g726-24":{"source":"iana"},"audio/g726-32":{"source":"iana"},"audio/g726-40":{"source":"iana"},"audio/g728":{"source":"iana"},"audio/g729":{"source":"iana"},"audio/g7291":{"source":"iana"},"audio/g729d":{"source":"iana"},"audio/g729e":{"source":"iana"},"audio/gsm":{"source":"iana"},"audio/gsm-efr":{"source":"iana"},"audio/gsm-hr-08":{"source":"iana"},"audio/ilbc":{"source":"iana"},"audio/ip-mr_v2.5":{"source":"iana"},"audio/isac":{"source":"apache"},"audio/l16":{"source":"iana"},"audio/l20":{"source":"iana"},"audio/l24":{"source":"iana","compressible":false},"audio/l8":{"source":"iana"},"audio/lpc":{"source":"iana"},"audio/melp":{"source":"iana"},"audio/melp1200":{"source":"iana"},"audio/melp2400":{"source":"iana"},"audio/melp600":{"source":"iana"},"audio/mhas":{"source":"iana"},"audio/midi":{"source":"apache","extensions":["mid","midi","kar","rmi"]},"audio/mobile-xmf":{"source":"iana","extensions":["mxmf"]},"audio/mp3":{"compressible":false,"extensions":["mp3"]},"audio/mp4":{"source":"iana","compressible":false,"extensions":["m4a","mp4a"]},"audio/mp4a-latm":{"source":"iana"},"audio/mpa":{"source":"iana"},"audio/mpa-robust":{"source":"iana"},"audio/mpeg":{"source":"iana","compressible":false,"extensions":["mpga","mp2","mp2a","mp3","m2a","m3a"]},"audio/mpeg4-generic":{"source":"iana"},"audio/musepack":{"source":"apache"},"audio/ogg":{"source":"iana","compressible":false,"extensions":["oga","ogg","spx","opus"]},"audio/opus":{"source":"iana"},"audio/parityfec":{"source":"iana"},"audio/pcma":{"source":"iana"},"audio/pcma-wb":{"source":"iana"},"audio/pcmu":{"source":"iana"},"audio/pcmu-wb":{"source":"iana"},"audio/prs.sid":{"source":"iana"},"audio/qcelp":{"source":"iana"},"audio/raptorfec":{"source":"iana"},"audio/red":{"source":"iana"},"audio/rtp-enc-aescm128":{"source":"iana"},"audio/rtp-midi":{"source":"iana"},"audio/rtploopback":{"source":"iana"},"audio/rtx":{"source":"iana"},"audio/s3m":{"source":"apache","extensions":["s3m"]},"audio/scip":{"source":"iana"},"audio/silk":{"source":"apache","extensions":["sil"]},"audio/smv":{"source":"iana"},"audio/smv-qcp":{"source":"iana"},"audio/smv0":{"source":"iana"},"audio/sofa":{"source":"iana"},"audio/sp-midi":{"source":"iana"},"audio/speex":{"source":"iana"},"audio/t140c":{"source":"iana"},"audio/t38":{"source":"iana"},"audio/telephone-event":{"source":"iana"},"audio/tetra_acelp":{"source":"iana"},"audio/tetra_acelp_bb":{"source":"iana"},"audio/tone":{"source":"iana"},"audio/tsvcis":{"source":"iana"},"audio/uemclip":{"source":"iana"},"audio/ulpfec":{"source":"iana"},"audio/usac":{"source":"iana"},"audio/vdvi":{"source":"iana"},"audio/vmr-wb":{"source":"iana"},"audio/vnd.3gpp.iufp":{"source":"iana"},"audio/vnd.4sb":{"source":"iana"},"audio/vnd.audiokoz":{"source":"iana"},"audio/vnd.celp":{"source":"iana"},"audio/vnd.cisco.nse":{"source":"iana"},"audio/vnd.cmles.radio-events":{"source":"iana"},"audio/vnd.cns.anp1":{"source":"iana"},"audio/vnd.cns.inf1":{"source":"iana"},"audio/vnd.dece.audio":{"source":"iana","extensions":["uva","uvva"]},"audio/vnd.digital-winds":{"source":"iana","extensions":["eol"]},"audio/vnd.dlna.adts":{"source":"iana"},"audio/vnd.dolby.heaac.1":{"source":"iana"},"audio/vnd.dolby.heaac.2":{"source":"iana"},"audio/vnd.dolby.mlp":{"source":"iana"},"audio/vnd.dolby.mps":{"source":"iana"},"audio/vnd.dolby.pl2":{"source":"iana"},"audio/vnd.dolby.pl2x":{"source":"iana"},"audio/vnd.dolby.pl2z":{"source":"iana"},"audio/vnd.dolby.pulse.1":{"source":"iana"},"audio/vnd.dra":{"source":"iana","extensions":["dra"]},"audio/vnd.dts":{"source":"iana","extensions":["dts"]},"audio/vnd.dts.hd":{"source":"iana","extensions":["dtshd"]},"audio/vnd.dts.uhd":{"source":"iana"},"audio/vnd.dvb.file":{"source":"iana"},"audio/vnd.everad.plj":{"source":"iana"},"audio/vnd.hns.audio":{"source":"iana"},"audio/vnd.lucent.voice":{"source":"iana","extensions":["lvp"]},"audio/vnd.ms-playready.media.pya":{"source":"iana","extensions":["pya"]},"audio/vnd.nokia.mobile-xmf":{"source":"iana"},"audio/vnd.nortel.vbk":{"source":"iana"},"audio/vnd.nuera.ecelp4800":{"source":"iana","extensions":["ecelp4800"]},"audio/vnd.nuera.ecelp7470":{"source":"iana","extensions":["ecelp7470"]},"audio/vnd.nuera.ecelp9600":{"source":"iana","extensions":["ecelp9600"]},"audio/vnd.octel.sbc":{"source":"iana"},"audio/vnd.presonus.multitrack":{"source":"iana"},"audio/vnd.qcelp":{"source":"iana"},"audio/vnd.rhetorex.32kadpcm":{"source":"iana"},"audio/vnd.rip":{"source":"iana","extensions":["rip"]},"audio/vnd.rn-realaudio":{"compressible":false},"audio/vnd.sealedmedia.softseal.mpeg":{"source":"iana"},"audio/vnd.vmx.cvsd":{"source":"iana"},"audio/vnd.wave":{"compressible":false},"audio/vorbis":{"source":"iana","compressible":false},"audio/vorbis-config":{"source":"iana"},"audio/wav":{"compressible":false,"extensions":["wav"]},"audio/wave":{"compressible":false,"extensions":["wav"]},"audio/webm":{"source":"apache","compressible":false,"extensions":["weba"]},"audio/x-aac":{"source":"apache","compressible":false,"extensions":["aac"]},"audio/x-aiff":{"source":"apache","extensions":["aif","aiff","aifc"]},"audio/x-caf":{"source":"apache","compressible":false,"extensions":["caf"]},"audio/x-flac":{"source":"apache","extensions":["flac"]},"audio/x-m4a":{"source":"nginx","extensions":["m4a"]},"audio/x-matroska":{"source":"apache","extensions":["mka"]},"audio/x-mpegurl":{"source":"apache","extensions":["m3u"]},"audio/x-ms-wax":{"source":"apache","extensions":["wax"]},"audio/x-ms-wma":{"source":"apache","extensions":["wma"]},"audio/x-pn-realaudio":{"source":"apache","extensions":["ram","ra"]},"audio/x-pn-realaudio-plugin":{"source":"apache","extensions":["rmp"]},"audio/x-realaudio":{"source":"nginx","extensions":["ra"]},"audio/x-tta":{"source":"apache"},"audio/x-wav":{"source":"apache","extensions":["wav"]},"audio/xm":{"source":"apache","extensions":["xm"]},"chemical/x-cdx":{"source":"apache","extensions":["cdx"]},"chemical/x-cif":{"source":"apache","extensions":["cif"]},"chemical/x-cmdf":{"source":"apache","extensions":["cmdf"]},"chemical/x-cml":{"source":"apache","extensions":["cml"]},"chemical/x-csml":{"source":"apache","extensions":["csml"]},"chemical/x-pdb":{"source":"apache"},"chemical/x-xyz":{"source":"apache","extensions":["xyz"]},"font/collection":{"source":"iana","extensions":["ttc"]},"font/otf":{"source":"iana","compressible":true,"extensions":["otf"]},"font/sfnt":{"source":"iana"},"font/ttf":{"source":"iana","compressible":true,"extensions":["ttf"]},"font/woff":{"source":"iana","extensions":["woff"]},"font/woff2":{"source":"iana","extensions":["woff2"]},"image/aces":{"source":"iana","extensions":["exr"]},"image/apng":{"compressible":false,"extensions":["apng"]},"image/avci":{"source":"iana","extensions":["avci"]},"image/avcs":{"source":"iana","extensions":["avcs"]},"image/avif":{"source":"iana","compressible":false,"extensions":["avif"]},"image/bmp":{"source":"iana","compressible":true,"extensions":["bmp"]},"image/cgm":{"source":"iana","extensions":["cgm"]},"image/dicom-rle":{"source":"iana","extensions":["drle"]},"image/emf":{"source":"iana","extensions":["emf"]},"image/fits":{"source":"iana","extensions":["fits"]},"image/g3fax":{"source":"iana","extensions":["g3"]},"image/gif":{"source":"iana","compressible":false,"extensions":["gif"]},"image/heic":{"source":"iana","extensions":["heic"]},"image/heic-sequence":{"source":"iana","extensions":["heics"]},"image/heif":{"source":"iana","extensions":["heif"]},"image/heif-sequence":{"source":"iana","extensions":["heifs"]},"image/hej2k":{"source":"iana","extensions":["hej2"]},"image/hsj2":{"source":"iana","extensions":["hsj2"]},"image/ief":{"source":"iana","extensions":["ief"]},"image/jls":{"source":"iana","extensions":["jls"]},"image/jp2":{"source":"iana","compressible":false,"extensions":["jp2","jpg2"]},"image/jpeg":{"source":"iana","compressible":false,"extensions":["jpeg","jpg","jpe"]},"image/jph":{"source":"iana","extensions":["jph"]},"image/jphc":{"source":"iana","extensions":["jhc"]},"image/jpm":{"source":"iana","compressible":false,"extensions":["jpm"]},"image/jpx":{"source":"iana","compressible":false,"extensions":["jpx","jpf"]},"image/jxr":{"source":"iana","extensions":["jxr"]},"image/jxra":{"source":"iana","extensions":["jxra"]},"image/jxrs":{"source":"iana","extensions":["jxrs"]},"image/jxs":{"source":"iana","extensions":["jxs"]},"image/jxsc":{"source":"iana","extensions":["jxsc"]},"image/jxsi":{"source":"iana","extensions":["jxsi"]},"image/jxss":{"source":"iana","extensions":["jxss"]},"image/ktx":{"source":"iana","extensions":["ktx"]},"image/ktx2":{"source":"iana","extensions":["ktx2"]},"image/naplps":{"source":"iana"},"image/pjpeg":{"compressible":false},"image/png":{"source":"iana","compressible":false,"extensions":["png"]},"image/prs.btif":{"source":"iana","extensions":["btif"]},"image/prs.pti":{"source":"iana","extensions":["pti"]},"image/pwg-raster":{"source":"iana"},"image/sgi":{"source":"apache","extensions":["sgi"]},"image/svg+xml":{"source":"iana","compressible":true,"extensions":["svg","svgz"]},"image/t38":{"source":"iana","extensions":["t38"]},"image/tiff":{"source":"iana","compressible":false,"extensions":["tif","tiff"]},"image/tiff-fx":{"source":"iana","extensions":["tfx"]},"image/vnd.adobe.photoshop":{"source":"iana","compressible":true,"extensions":["psd"]},"image/vnd.airzip.accelerator.azv":{"source":"iana","extensions":["azv"]},"image/vnd.cns.inf2":{"source":"iana"},"image/vnd.dece.graphic":{"source":"iana","extensions":["uvi","uvvi","uvg","uvvg"]},"image/vnd.djvu":{"source":"iana","extensions":["djvu","djv"]},"image/vnd.dvb.subtitle":{"source":"iana","extensions":["sub"]},"image/vnd.dwg":{"source":"iana","extensions":["dwg"]},"image/vnd.dxf":{"source":"iana","extensions":["dxf"]},"image/vnd.fastbidsheet":{"source":"iana","extensions":["fbs"]},"image/vnd.fpx":{"source":"iana","extensions":["fpx"]},"image/vnd.fst":{"source":"iana","extensions":["fst"]},"image/vnd.fujixerox.edmics-mmr":{"source":"iana","extensions":["mmr"]},"image/vnd.fujixerox.edmics-rlc":{"source":"iana","extensions":["rlc"]},"image/vnd.globalgraphics.pgb":{"source":"iana"},"image/vnd.microsoft.icon":{"source":"iana","compressible":true,"extensions":["ico"]},"image/vnd.mix":{"source":"iana"},"image/vnd.mozilla.apng":{"source":"iana"},"image/vnd.ms-dds":{"compressible":true,"extensions":["dds"]},"image/vnd.ms-modi":{"source":"iana","extensions":["mdi"]},"image/vnd.ms-photo":{"source":"apache","extensions":["wdp"]},"image/vnd.net-fpx":{"source":"iana","extensions":["npx"]},"image/vnd.pco.b16":{"source":"iana","extensions":["b16"]},"image/vnd.radiance":{"source":"iana"},"image/vnd.sealed.png":{"source":"iana"},"image/vnd.sealedmedia.softseal.gif":{"source":"iana"},"image/vnd.sealedmedia.softseal.jpg":{"source":"iana"},"image/vnd.svf":{"source":"iana"},"image/vnd.tencent.tap":{"source":"iana","extensions":["tap"]},"image/vnd.valve.source.texture":{"source":"iana","extensions":["vtf"]},"image/vnd.wap.wbmp":{"source":"iana","extensions":["wbmp"]},"image/vnd.xiff":{"source":"iana","extensions":["xif"]},"image/vnd.zbrush.pcx":{"source":"iana","extensions":["pcx"]},"image/webp":{"source":"apache","extensions":["webp"]},"image/wmf":{"source":"iana","extensions":["wmf"]},"image/x-3ds":{"source":"apache","extensions":["3ds"]},"image/x-cmu-raster":{"source":"apache","extensions":["ras"]},"image/x-cmx":{"source":"apache","extensions":["cmx"]},"image/x-freehand":{"source":"apache","extensions":["fh","fhc","fh4","fh5","fh7"]},"image/x-icon":{"source":"apache","compressible":true,"extensions":["ico"]},"image/x-jng":{"source":"nginx","extensions":["jng"]},"image/x-mrsid-image":{"source":"apache","extensions":["sid"]},"image/x-ms-bmp":{"source":"nginx","compressible":true,"extensions":["bmp"]},"image/x-pcx":{"source":"apache","extensions":["pcx"]},"image/x-pict":{"source":"apache","extensions":["pic","pct"]},"image/x-portable-anymap":{"source":"apache","extensions":["pnm"]},"image/x-portable-bitmap":{"source":"apache","extensions":["pbm"]},"image/x-portable-graymap":{"source":"apache","extensions":["pgm"]},"image/x-portable-pixmap":{"source":"apache","extensions":["ppm"]},"image/x-rgb":{"source":"apache","extensions":["rgb"]},"image/x-tga":{"source":"apache","extensions":["tga"]},"image/x-xbitmap":{"source":"apache","extensions":["xbm"]},"image/x-xcf":{"compressible":false},"image/x-xpixmap":{"source":"apache","extensions":["xpm"]},"image/x-xwindowdump":{"source":"apache","extensions":["xwd"]},"message/cpim":{"source":"iana"},"message/delivery-status":{"source":"iana"},"message/disposition-notification":{"source":"iana","extensions":["disposition-notification"]},"message/external-body":{"source":"iana"},"message/feedback-report":{"source":"iana"},"message/global":{"source":"iana","extensions":["u8msg"]},"message/global-delivery-status":{"source":"iana","extensions":["u8dsn"]},"message/global-disposition-notification":{"source":"iana","extensions":["u8mdn"]},"message/global-headers":{"source":"iana","extensions":["u8hdr"]},"message/http":{"source":"iana","compressible":false},"message/imdn+xml":{"source":"iana","compressible":true},"message/news":{"source":"iana"},"message/partial":{"source":"iana","compressible":false},"message/rfc822":{"source":"iana","compressible":true,"extensions":["eml","mime"]},"message/s-http":{"source":"iana"},"message/sip":{"source":"iana"},"message/sipfrag":{"source":"iana"},"message/tracking-status":{"source":"iana"},"message/vnd.si.simp":{"source":"iana"},"message/vnd.wfa.wsc":{"source":"iana","extensions":["wsc"]},"model/3mf":{"source":"iana","extensions":["3mf"]},"model/e57":{"source":"iana"},"model/gltf+json":{"source":"iana","compressible":true,"extensions":["gltf"]},"model/gltf-binary":{"source":"iana","compressible":true,"extensions":["glb"]},"model/iges":{"source":"iana","compressible":false,"extensions":["igs","iges"]},"model/mesh":{"source":"iana","compressible":false,"extensions":["msh","mesh","silo"]},"model/mtl":{"source":"iana","extensions":["mtl"]},"model/obj":{"source":"iana","extensions":["obj"]},"model/step":{"source":"iana"},"model/step+xml":{"source":"iana","compressible":true,"extensions":["stpx"]},"model/step+zip":{"source":"iana","compressible":false,"extensions":["stpz"]},"model/step-xml+zip":{"source":"iana","compressible":false,"extensions":["stpxz"]},"model/stl":{"source":"iana","extensions":["stl"]},"model/vnd.collada+xml":{"source":"iana","compressible":true,"extensions":["dae"]},"model/vnd.dwf":{"source":"iana","extensions":["dwf"]},"model/vnd.flatland.3dml":{"source":"iana"},"model/vnd.gdl":{"source":"iana","extensions":["gdl"]},"model/vnd.gs-gdl":{"source":"apache"},"model/vnd.gs.gdl":{"source":"iana"},"model/vnd.gtw":{"source":"iana","extensions":["gtw"]},"model/vnd.moml+xml":{"source":"iana","compressible":true},"model/vnd.mts":{"source":"iana","extensions":["mts"]},"model/vnd.opengex":{"source":"iana","extensions":["ogex"]},"model/vnd.parasolid.transmit.binary":{"source":"iana","extensions":["x_b"]},"model/vnd.parasolid.transmit.text":{"source":"iana","extensions":["x_t"]},"model/vnd.pytha.pyox":{"source":"iana"},"model/vnd.rosette.annotated-data-model":{"source":"iana"},"model/vnd.sap.vds":{"source":"iana","extensions":["vds"]},"model/vnd.usdz+zip":{"source":"iana","compressible":false,"extensions":["usdz"]},"model/vnd.valve.source.compiled-map":{"source":"iana","extensions":["bsp"]},"model/vnd.vtu":{"source":"iana","extensions":["vtu"]},"model/vrml":{"source":"iana","compressible":false,"extensions":["wrl","vrml"]},"model/x3d+binary":{"source":"apache","compressible":false,"extensions":["x3db","x3dbz"]},"model/x3d+fastinfoset":{"source":"iana","extensions":["x3db"]},"model/x3d+vrml":{"source":"apache","compressible":false,"extensions":["x3dv","x3dvz"]},"model/x3d+xml":{"source":"iana","compressible":true,"extensions":["x3d","x3dz"]},"model/x3d-vrml":{"source":"iana","extensions":["x3dv"]},"multipart/alternative":{"source":"iana","compressible":false},"multipart/appledouble":{"source":"iana"},"multipart/byteranges":{"source":"iana"},"multipart/digest":{"source":"iana"},"multipart/encrypted":{"source":"iana","compressible":false},"multipart/form-data":{"source":"iana","compressible":false},"multipart/header-set":{"source":"iana"},"multipart/mixed":{"source":"iana"},"multipart/multilingual":{"source":"iana"},"multipart/parallel":{"source":"iana"},"multipart/related":{"source":"iana","compressible":false},"multipart/report":{"source":"iana"},"multipart/signed":{"source":"iana","compressible":false},"multipart/vnd.bint.med-plus":{"source":"iana"},"multipart/voice-message":{"source":"iana"},"multipart/x-mixed-replace":{"source":"iana"},"text/1d-interleaved-parityfec":{"source":"iana"},"text/cache-manifest":{"source":"iana","compressible":true,"extensions":["appcache","manifest"]},"text/calendar":{"source":"iana","extensions":["ics","ifb"]},"text/calender":{"compressible":true},"text/cmd":{"compressible":true},"text/coffeescript":{"extensions":["coffee","litcoffee"]},"text/cql":{"source":"iana"},"text/cql-expression":{"source":"iana"},"text/cql-identifier":{"source":"iana"},"text/css":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["css"]},"text/csv":{"source":"iana","compressible":true,"extensions":["csv"]},"text/csv-schema":{"source":"iana"},"text/directory":{"source":"iana"},"text/dns":{"source":"iana"},"text/ecmascript":{"source":"iana"},"text/encaprtp":{"source":"iana"},"text/enriched":{"source":"iana"},"text/fhirpath":{"source":"iana"},"text/flexfec":{"source":"iana"},"text/fwdred":{"source":"iana"},"text/gff3":{"source":"iana"},"text/grammar-ref-list":{"source":"iana"},"text/html":{"source":"iana","compressible":true,"extensions":["html","htm","shtml"]},"text/jade":{"extensions":["jade"]},"text/javascript":{"source":"iana","compressible":true},"text/jcr-cnd":{"source":"iana"},"text/jsx":{"compressible":true,"extensions":["jsx"]},"text/less":{"compressible":true,"extensions":["less"]},"text/markdown":{"source":"iana","compressible":true,"extensions":["markdown","md"]},"text/mathml":{"source":"nginx","extensions":["mml"]},"text/mdx":{"compressible":true,"extensions":["mdx"]},"text/mizar":{"source":"iana"},"text/n3":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["n3"]},"text/parameters":{"source":"iana","charset":"UTF-8"},"text/parityfec":{"source":"iana"},"text/plain":{"source":"iana","compressible":true,"extensions":["txt","text","conf","def","list","log","in","ini"]},"text/provenance-notation":{"source":"iana","charset":"UTF-8"},"text/prs.fallenstein.rst":{"source":"iana"},"text/prs.lines.tag":{"source":"iana","extensions":["dsc"]},"text/prs.prop.logic":{"source":"iana"},"text/raptorfec":{"source":"iana"},"text/red":{"source":"iana"},"text/rfc822-headers":{"source":"iana"},"text/richtext":{"source":"iana","compressible":true,"extensions":["rtx"]},"text/rtf":{"source":"iana","compressible":true,"extensions":["rtf"]},"text/rtp-enc-aescm128":{"source":"iana"},"text/rtploopback":{"source":"iana"},"text/rtx":{"source":"iana"},"text/sgml":{"source":"iana","extensions":["sgml","sgm"]},"text/shaclc":{"source":"iana"},"text/shex":{"source":"iana","extensions":["shex"]},"text/slim":{"extensions":["slim","slm"]},"text/spdx":{"source":"iana","extensions":["spdx"]},"text/strings":{"source":"iana"},"text/stylus":{"extensions":["stylus","styl"]},"text/t140":{"source":"iana"},"text/tab-separated-values":{"source":"iana","compressible":true,"extensions":["tsv"]},"text/troff":{"source":"iana","extensions":["t","tr","roff","man","me","ms"]},"text/turtle":{"source":"iana","charset":"UTF-8","extensions":["ttl"]},"text/ulpfec":{"source":"iana"},"text/uri-list":{"source":"iana","compressible":true,"extensions":["uri","uris","urls"]},"text/vcard":{"source":"iana","compressible":true,"extensions":["vcard"]},"text/vnd.a":{"source":"iana"},"text/vnd.abc":{"source":"iana"},"text/vnd.ascii-art":{"source":"iana"},"text/vnd.curl":{"source":"iana","extensions":["curl"]},"text/vnd.curl.dcurl":{"source":"apache","extensions":["dcurl"]},"text/vnd.curl.mcurl":{"source":"apache","extensions":["mcurl"]},"text/vnd.curl.scurl":{"source":"apache","extensions":["scurl"]},"text/vnd.debian.copyright":{"source":"iana","charset":"UTF-8"},"text/vnd.dmclientscript":{"source":"iana"},"text/vnd.dvb.subtitle":{"source":"iana","extensions":["sub"]},"text/vnd.esmertec.theme-descriptor":{"source":"iana","charset":"UTF-8"},"text/vnd.familysearch.gedcom":{"source":"iana","extensions":["ged"]},"text/vnd.ficlab.flt":{"source":"iana"},"text/vnd.fly":{"source":"iana","extensions":["fly"]},"text/vnd.fmi.flexstor":{"source":"iana","extensions":["flx"]},"text/vnd.gml":{"source":"iana"},"text/vnd.graphviz":{"source":"iana","extensions":["gv"]},"text/vnd.hans":{"source":"iana"},"text/vnd.hgl":{"source":"iana"},"text/vnd.in3d.3dml":{"source":"iana","extensions":["3dml"]},"text/vnd.in3d.spot":{"source":"iana","extensions":["spot"]},"text/vnd.iptc.newsml":{"source":"iana"},"text/vnd.iptc.nitf":{"source":"iana"},"text/vnd.latex-z":{"source":"iana"},"text/vnd.motorola.reflex":{"source":"iana"},"text/vnd.ms-mediapackage":{"source":"iana"},"text/vnd.net2phone.commcenter.command":{"source":"iana"},"text/vnd.radisys.msml-basic-layout":{"source":"iana"},"text/vnd.senx.warpscript":{"source":"iana"},"text/vnd.si.uricatalogue":{"source":"iana"},"text/vnd.sosi":{"source":"iana"},"text/vnd.sun.j2me.app-descriptor":{"source":"iana","charset":"UTF-8","extensions":["jad"]},"text/vnd.trolltech.linguist":{"source":"iana","charset":"UTF-8"},"text/vnd.wap.si":{"source":"iana"},"text/vnd.wap.sl":{"source":"iana"},"text/vnd.wap.wml":{"source":"iana","extensions":["wml"]},"text/vnd.wap.wmlscript":{"source":"iana","extensions":["wmls"]},"text/vtt":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["vtt"]},"text/x-asm":{"source":"apache","extensions":["s","asm"]},"text/x-c":{"source":"apache","extensions":["c","cc","cxx","cpp","h","hh","dic"]},"text/x-component":{"source":"nginx","extensions":["htc"]},"text/x-fortran":{"source":"apache","extensions":["f","for","f77","f90"]},"text/x-gwt-rpc":{"compressible":true},"text/x-handlebars-template":{"extensions":["hbs"]},"text/x-java-source":{"source":"apache","extensions":["java"]},"text/x-jquery-tmpl":{"compressible":true},"text/x-lua":{"extensions":["lua"]},"text/x-markdown":{"compressible":true,"extensions":["mkd"]},"text/x-nfo":{"source":"apache","extensions":["nfo"]},"text/x-opml":{"source":"apache","extensions":["opml"]},"text/x-org":{"compressible":true,"extensions":["org"]},"text/x-pascal":{"source":"apache","extensions":["p","pas"]},"text/x-processing":{"compressible":true,"extensions":["pde"]},"text/x-sass":{"extensions":["sass"]},"text/x-scss":{"extensions":["scss"]},"text/x-setext":{"source":"apache","extensions":["etx"]},"text/x-sfv":{"source":"apache","extensions":["sfv"]},"text/x-suse-ymp":{"compressible":true,"extensions":["ymp"]},"text/x-uuencode":{"source":"apache","extensions":["uu"]},"text/x-vcalendar":{"source":"apache","extensions":["vcs"]},"text/x-vcard":{"source":"apache","extensions":["vcf"]},"text/xml":{"source":"iana","compressible":true,"extensions":["xml"]},"text/xml-external-parsed-entity":{"source":"iana"},"text/yaml":{"compressible":true,"extensions":["yaml","yml"]},"video/1d-interleaved-parityfec":{"source":"iana"},"video/3gpp":{"source":"iana","extensions":["3gp","3gpp"]},"video/3gpp-tt":{"source":"iana"},"video/3gpp2":{"source":"iana","extensions":["3g2"]},"video/av1":{"source":"iana"},"video/bmpeg":{"source":"iana"},"video/bt656":{"source":"iana"},"video/celb":{"source":"iana"},"video/dv":{"source":"iana"},"video/encaprtp":{"source":"iana"},"video/ffv1":{"source":"iana"},"video/flexfec":{"source":"iana"},"video/h261":{"source":"iana","extensions":["h261"]},"video/h263":{"source":"iana","extensions":["h263"]},"video/h263-1998":{"source":"iana"},"video/h263-2000":{"source":"iana"},"video/h264":{"source":"iana","extensions":["h264"]},"video/h264-rcdo":{"source":"iana"},"video/h264-svc":{"source":"iana"},"video/h265":{"source":"iana"},"video/iso.segment":{"source":"iana","extensions":["m4s"]},"video/jpeg":{"source":"iana","extensions":["jpgv"]},"video/jpeg2000":{"source":"iana"},"video/jpm":{"source":"apache","extensions":["jpm","jpgm"]},"video/jxsv":{"source":"iana"},"video/mj2":{"source":"iana","extensions":["mj2","mjp2"]},"video/mp1s":{"source":"iana"},"video/mp2p":{"source":"iana"},"video/mp2t":{"source":"iana","extensions":["ts"]},"video/mp4":{"source":"iana","compressible":false,"extensions":["mp4","mp4v","mpg4"]},"video/mp4v-es":{"source":"iana"},"video/mpeg":{"source":"iana","compressible":false,"extensions":["mpeg","mpg","mpe","m1v","m2v"]},"video/mpeg4-generic":{"source":"iana"},"video/mpv":{"source":"iana"},"video/nv":{"source":"iana"},"video/ogg":{"source":"iana","compressible":false,"extensions":["ogv"]},"video/parityfec":{"source":"iana"},"video/pointer":{"source":"iana"},"video/quicktime":{"source":"iana","compressible":false,"extensions":["qt","mov"]},"video/raptorfec":{"source":"iana"},"video/raw":{"source":"iana"},"video/rtp-enc-aescm128":{"source":"iana"},"video/rtploopback":{"source":"iana"},"video/rtx":{"source":"iana"},"video/scip":{"source":"iana"},"video/smpte291":{"source":"iana"},"video/smpte292m":{"source":"iana"},"video/ulpfec":{"source":"iana"},"video/vc1":{"source":"iana"},"video/vc2":{"source":"iana"},"video/vnd.cctv":{"source":"iana"},"video/vnd.dece.hd":{"source":"iana","extensions":["uvh","uvvh"]},"video/vnd.dece.mobile":{"source":"iana","extensions":["uvm","uvvm"]},"video/vnd.dece.mp4":{"source":"iana"},"video/vnd.dece.pd":{"source":"iana","extensions":["uvp","uvvp"]},"video/vnd.dece.sd":{"source":"iana","extensions":["uvs","uvvs"]},"video/vnd.dece.video":{"source":"iana","extensions":["uvv","uvvv"]},"video/vnd.directv.mpeg":{"source":"iana"},"video/vnd.directv.mpeg-tts":{"source":"iana"},"video/vnd.dlna.mpeg-tts":{"source":"iana"},"video/vnd.dvb.file":{"source":"iana","extensions":["dvb"]},"video/vnd.fvt":{"source":"iana","extensions":["fvt"]},"video/vnd.hns.video":{"source":"iana"},"video/vnd.iptvforum.1dparityfec-1010":{"source":"iana"},"video/vnd.iptvforum.1dparityfec-2005":{"source":"iana"},"video/vnd.iptvforum.2dparityfec-1010":{"source":"iana"},"video/vnd.iptvforum.2dparityfec-2005":{"source":"iana"},"video/vnd.iptvforum.ttsavc":{"source":"iana"},"video/vnd.iptvforum.ttsmpeg2":{"source":"iana"},"video/vnd.motorola.video":{"source":"iana"},"video/vnd.motorola.videop":{"source":"iana"},"video/vnd.mpegurl":{"source":"iana","extensions":["mxu","m4u"]},"video/vnd.ms-playready.media.pyv":{"source":"iana","extensions":["pyv"]},"video/vnd.nokia.interleaved-multimedia":{"source":"iana"},"video/vnd.nokia.mp4vr":{"source":"iana"},"video/vnd.nokia.videovoip":{"source":"iana"},"video/vnd.objectvideo":{"source":"iana"},"video/vnd.radgamettools.bink":{"source":"iana"},"video/vnd.radgamettools.smacker":{"source":"iana"},"video/vnd.sealed.mpeg1":{"source":"iana"},"video/vnd.sealed.mpeg4":{"source":"iana"},"video/vnd.sealed.swf":{"source":"iana"},"video/vnd.sealedmedia.softseal.mov":{"source":"iana"},"video/vnd.uvvu.mp4":{"source":"iana","extensions":["uvu","uvvu"]},"video/vnd.vivo":{"source":"iana","extensions":["viv"]},"video/vnd.youtube.yt":{"source":"iana"},"video/vp8":{"source":"iana"},"video/vp9":{"source":"iana"},"video/webm":{"source":"apache","compressible":false,"extensions":["webm"]},"video/x-f4v":{"source":"apache","extensions":["f4v"]},"video/x-fli":{"source":"apache","extensions":["fli"]},"video/x-flv":{"source":"apache","compressible":false,"extensions":["flv"]},"video/x-m4v":{"source":"apache","extensions":["m4v"]},"video/x-matroska":{"source":"apache","compressible":false,"extensions":["mkv","mk3d","mks"]},"video/x-mng":{"source":"apache","extensions":["mng"]},"video/x-ms-asf":{"source":"apache","extensions":["asf","asx"]},"video/x-ms-vob":{"source":"apache","extensions":["vob"]},"video/x-ms-wm":{"source":"apache","extensions":["wm"]},"video/x-ms-wmv":{"source":"apache","compressible":false,"extensions":["wmv"]},"video/x-ms-wmx":{"source":"apache","extensions":["wmx"]},"video/x-ms-wvx":{"source":"apache","extensions":["wvx"]},"video/x-msvideo":{"source":"apache","extensions":["avi"]},"video/x-sgi-movie":{"source":"apache","extensions":["movie"]},"video/x-smv":{"source":"apache","extensions":["smv"]},"x-conference/x-cooltalk":{"source":"apache","extensions":["ice"]},"x-shader/x-fragment":{"compressible":true},"x-shader/x-vertex":{"compressible":true}}')},8330:e=>{"use strict";e.exports=JSON.parse('{"name":"@scaffoldly/awslambda-bootstrap","version":"1.0.11-0","description":"Bootstrap Script for AWS Lambda","repository":"https://github.com/scaffoldly/awslambda-bootstrap","author":"scaffold.ly","license":"MIT","main":"dist/main.js","files":["build/**/*","dist/**/*","scripts/**/*"],"bin":{"bootstrap":"dist/bootstrap.js","lambda-env":"scripts/lambda-env.cjs"},"scripts":{"build":"webpack","start":"node -r ts-node/register -r tsconfig-paths/register cli/index.ts"},"engines":{"node":">=18"},"engineStrict":true,"keywords":["scaffoldly","aws","lambda"],"dependencies":{},"devDependencies":{"@types/aws-lambda":"^8.10.138","@types/node":"18","@types/which":"^3.0.3","aws-lambda":"^1.0.7","axios":"^1.7.2","execa":"^9.1.0","source-map":"^0.7.4","ts-loader":"^9.5.1","ts-node":"^10.9.2","tsconfig-paths":"^4.2.0","types-webpack-bundler":"^1.0.2","typescript":"5","webpack":"^5.91.0","webpack-cli":"^5.1.4","which":"^4.0.0"}}')}},i={};function n(e){var o=i[e];if(void 0!==o)return o.exports;var s=i[e]={exports:{}};return a[e].call(s.exports,s,s.exports,n),s.exports}n.m=a,n.d=(e,a)=>{for(var i in a)n.o(a,i)&&!n.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:a[i]})},n.f={},n.e=e=>Promise.all(Object.keys(n.f).reduce(((a,i)=>(n.f[i](e,a),a)),[])),n.u=e=>e+".bootstrap.js",n.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),e={792:1},n.f.require=(a,i)=>{e[a]||(a=>{var i=a.modules,o=a.ids,s=a.runtime;for(var t in i)n.o(i,t)&&(n.m[t]=i[t]);s&&s(n);for(var r=0;r { + if (process.argv.includes("--version")) { + console.log(package_json_1.default.version); + return; + } + (0, log_1.log)("Starting bootstrap", { env: JSON.stringify(process.env) }); + try { + await (0, bootstrap_1.bootstrap)(); + } + catch (e) { + if (e instanceof Error) { + console.error(e.message); + } + else { + console.error(e); + } + process.exit(1); + } + (0, log_1.log)("Bootstrap complete"); +})(); diff --git a/dist/cli/index.d.ts b/dist/cli/index.d.ts deleted file mode 100644 index e26a57a..0000000 --- a/dist/cli/index.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -export {}; -//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/dist/cli/index.d.ts.map b/dist/cli/index.d.ts.map deleted file mode 100644 index d67eb88..0000000 --- a/dist/cli/index.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../cli/index.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/dist/package.json b/dist/package.json new file mode 100644 index 0000000..df29acc --- /dev/null +++ b/dist/package.json @@ -0,0 +1,50 @@ +{ + "name": "@scaffoldly/awslambda-bootstrap", + "version": "1.0.11-0", + "description": "Bootstrap Script for AWS Lambda", + "repository": "https://github.com/scaffoldly/awslambda-bootstrap", + "author": "scaffold.ly", + "license": "MIT", + "main": "dist/main.js", + "files": [ + "build/**/*", + "dist/**/*", + "scripts/**/*" + ], + "bin": { + "bootstrap": "dist/bootstrap.js", + "lambda-env": "scripts/lambda-env.cjs" + }, + "scripts": { + "build": "webpack", + "start": "node -r ts-node/register -r tsconfig-paths/register cli/index.ts", + "postinstall": "tsc" + }, + "engines": { + "node": ">=18" + }, + "engineStrict": true, + "keywords": [ + "scaffoldly", + "aws", + "lambda" + ], + "dependencies": {}, + "devDependencies": { + "@types/aws-lambda": "^8.10.138", + "@types/node": "18", + "@types/which": "^3.0.3", + "aws-lambda": "^1.0.7", + "axios": "^1.7.2", + "execa": "^9.1.0", + "source-map": "^0.7.4", + "ts-loader": "^9.5.1", + "ts-node": "^10.9.2", + "tsconfig-paths": "^4.2.0", + "types-webpack-bundler": "^1.0.2", + "typescript": "5", + "webpack": "^5.91.0", + "webpack-cli": "^5.1.4", + "which": "^4.0.0" + } +} diff --git a/dist/src/bootstrap.d.ts.map b/dist/src/bootstrap.d.ts.map deleted file mode 100644 index 78a8503..0000000 --- a/dist/src/bootstrap.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../../src/bootstrap.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,SAAS,QAAa,QAAQ,IAAI,CA0B9C,CAAC"} \ No newline at end of file diff --git a/dist/src/index.d.ts b/dist/src/index.d.ts index 0c835ea..576096a 100644 --- a/dist/src/index.d.ts +++ b/dist/src/index.d.ts @@ -1,5 +1,4 @@ -import { endpointSpawn, endpointProxy } from "./proxy"; -import { nextEvent, respondToEvent } from "./runtime"; -import { LambdaEvent, EndpointExecRequest, EndpointProxyRequest, EndpointResponse } from "./types"; +import { endpointSpawn, endpointProxy } from "./internal/proxy"; +import { nextEvent, respondToEvent } from "./internal/runtime"; +import { LambdaEvent, EndpointExecRequest, EndpointProxyRequest, EndpointResponse } from "./internal/types"; export { endpointSpawn, endpointProxy, nextEvent, respondToEvent, LambdaEvent, EndpointExecRequest, EndpointProxyRequest, EndpointResponse, }; -//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/dist/src/index.d.ts.map b/dist/src/index.d.ts.map deleted file mode 100644 index a5009ae..0000000 --- a/dist/src/index.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AACtD,OAAO,EACL,WAAW,EACX,mBAAmB,EACnB,oBAAoB,EACpB,gBAAgB,EACjB,MAAM,SAAS,CAAC;AAEjB,OAAO,EACL,aAAa,EACb,aAAa,EACb,SAAS,EACT,cAAc,EACd,WAAW,EACX,mBAAmB,EACnB,oBAAoB,EACpB,gBAAgB,GACjB,CAAC"} \ No newline at end of file diff --git a/dist/src/index.js b/dist/src/index.js new file mode 100644 index 0000000..9cd16db --- /dev/null +++ b/dist/src/index.js @@ -0,0 +1,9 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.respondToEvent = exports.nextEvent = exports.endpointProxy = exports.endpointSpawn = void 0; +const proxy_1 = require("./internal/proxy"); +Object.defineProperty(exports, "endpointSpawn", { enumerable: true, get: function () { return proxy_1.endpointSpawn; } }); +Object.defineProperty(exports, "endpointProxy", { enumerable: true, get: function () { return proxy_1.endpointProxy; } }); +const runtime_1 = require("./internal/runtime"); +Object.defineProperty(exports, "nextEvent", { enumerable: true, get: function () { return runtime_1.nextEvent; } }); +Object.defineProperty(exports, "respondToEvent", { enumerable: true, get: function () { return runtime_1.respondToEvent; } }); diff --git a/dist/src/bootstrap.d.ts b/dist/src/internal/bootstrap.d.ts similarity index 57% rename from dist/src/bootstrap.d.ts rename to dist/src/internal/bootstrap.d.ts index c2288de..09e2ba6 100644 --- a/dist/src/bootstrap.d.ts +++ b/dist/src/internal/bootstrap.d.ts @@ -1,2 +1 @@ export declare const bootstrap: () => Promise; -//# sourceMappingURL=bootstrap.d.ts.map \ No newline at end of file diff --git a/dist/src/internal/bootstrap.js b/dist/src/internal/bootstrap.js new file mode 100644 index 0000000..ce86018 --- /dev/null +++ b/dist/src/internal/bootstrap.js @@ -0,0 +1,29 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.bootstrap = void 0; +const routing_1 = require("./routing"); +const log_1 = require("./log"); +const proxy_1 = require("./proxy"); +const { _HANDLER, IS_OFFLINE, AWS_LAMBDA_RUNTIME_API } = process.env; +const bootstrap = async () => { + if (!AWS_LAMBDA_RUNTIME_API) { + throw new Error("No AWS_LAMBDA_RUNTIME_API specified"); + } + if (!_HANDLER) { + throw new Error("No handler specified"); + } + (0, log_1.log)("Bootstraping", { _HANDLER, IS_OFFLINE, AWS_LAMBDA_RUNTIME_API }); + const { childProcess, bin, endpoint } = await (0, proxy_1.endpointSpawn)(_HANDLER, IS_OFFLINE === "true"); + try { + (0, log_1.log)("Routing events", { bin, endpoint }); + await (0, routing_1.routeEvents)(AWS_LAMBDA_RUNTIME_API, bin, endpoint); + } + catch (e) { + if (childProcess) { + (0, log_1.log)("Killing child process", { pid: childProcess.pid }); + childProcess.kill(); + } + throw e; + } +}; +exports.bootstrap = bootstrap; diff --git a/dist/src/log.d.ts b/dist/src/internal/log.d.ts similarity index 82% rename from dist/src/log.d.ts rename to dist/src/internal/log.d.ts index 22683fb..21a2682 100644 --- a/dist/src/log.d.ts +++ b/dist/src/internal/log.d.ts @@ -1,3 +1,2 @@ export declare const info: (message: any, obj?: Record) => void; export declare const log: (message: any, obj?: Record) => void; -//# sourceMappingURL=log.d.ts.map \ No newline at end of file diff --git a/dist/src/internal/log.js b/dist/src/internal/log.js new file mode 100644 index 0000000..1fc25a3 --- /dev/null +++ b/dist/src/internal/log.js @@ -0,0 +1,17 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.log = exports.info = void 0; +const package_json_1 = __importDefault(require("../../package.json")); +const info = (message, obj) => { + console.log(`[${package_json_1.default.name}@${package_json_1.default.version}] ${message}`, obj ? JSON.stringify(obj) : undefined); +}; +exports.info = info; +const log = (message, obj) => { + if (!process.env.SLY_DEBUG) + return; + console.log(`[${package_json_1.default.name}@${package_json_1.default.version}] ${message}`, obj ? JSON.stringify(obj) : undefined); +}; +exports.log = log; diff --git a/dist/src/proxy.d.ts b/dist/src/internal/proxy.d.ts similarity index 94% rename from dist/src/proxy.d.ts rename to dist/src/internal/proxy.d.ts index 608dc08..60e657d 100644 --- a/dist/src/proxy.d.ts +++ b/dist/src/internal/proxy.d.ts @@ -8,4 +8,3 @@ export declare const endpointSpawn: (handler: string, offline: boolean) => Promi }>; export declare const endpointExec: ({ requestId, bin, event, deadline, }: EndpointExecRequest) => Promise; export declare const endpointProxy: ({ requestId, endpoint, event, deadline, }: EndpointProxyRequest) => Promise; -//# sourceMappingURL=proxy.d.ts.map \ No newline at end of file diff --git a/dist/src/internal/proxy.js b/dist/src/internal/proxy.js new file mode 100644 index 0000000..834daf2 --- /dev/null +++ b/dist/src/internal/proxy.js @@ -0,0 +1,169 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.endpointProxy = exports.endpointExec = exports.endpointSpawn = void 0; +const axios_1 = __importStar(require("axios")); +const net_1 = __importDefault(require("net")); +const log_1 = require("./log"); +const child_process_1 = require("child_process"); +function convertHeaders(headers) { + if (!headers) { + return undefined; + } + return Object.keys(headers).reduce((acc, key) => { + const value = headers[key]; + if (!value) + return acc; + if (Array.isArray(value)) { + acc[key] = value.join(", "); + } + else if (typeof value === "string" || + typeof value === "number" || + typeof value === "boolean") { + acc[key] = value; + } + return acc; + }, {}); +} +const waitForEndpoint = async (endpoint, deadline) => { + const start = Date.now(); + const timeout = deadline - start; + // Stop recursing if the deadline has passed + if (timeout < 0) { + return { timeout: 0 }; + } + const hostname = endpoint.hostname; + const port = parseInt(endpoint.port, 10) || (endpoint.protocol === "https:" ? 443 : 80); + return new Promise((resolve) => { + const socket = new net_1.default.Socket(); + const onError = () => { + socket.destroy(); + return waitForEndpoint(endpoint, deadline - (Date.now() - start)).then(resolve); + }; + socket.setTimeout(deadline - start); + socket.once("error", onError); + socket.once("timeout", onError); + socket.connect(port, hostname, () => { + socket.end(); + resolve({ timeout: deadline - Date.now() }); + }); + }); +}; +const endpointSpawn = async (handler, offline) => { + // handler is in the format of + // - `{some-bin}@http://localhost:{the-bins-port} (will start some-bin, and forward requests to the http server) + // - `http://localhost:{some-port}` (will forward the request to the http server) + // - `{some-bin}` (will forward the event to the bin) + let [bin, endpoint] = handler.split(/(?<=^[^@]*)@/); + let childProcess = undefined; + if (bin && !endpoint) { + try { + endpoint = new URL(bin).toString(); + bin = undefined; + } + catch (e) { } + } + if (bin && endpoint) { + (0, log_1.log)("Starting child process", { bin }); + const subcommand = offline ? "dev" : "start"; + (0, log_1.info)(`Running: \`${bin} ${subcommand}\``); + childProcess = (0, child_process_1.spawn)(bin, [subcommand], { + detached: true, + stdio: "inherit", + }); + // TODO Decide if we should do this... + childProcess.unref(); + (0, log_1.log)("Started child process", { bin, subcommand, pid: childProcess.pid }); + } + endpoint = endpoint ? new URL(endpoint) : undefined; + return { childProcess, bin, endpoint }; +}; +exports.endpointSpawn = endpointSpawn; +const endpointExec = async ({ requestId, bin, event, deadline, }) => { + const { execa } = await import("execa"); + const { stdout } = await execa({ + stderr: ["inherit"], + }) `${bin} ${event}`; + // TODO: handle deadline + (0, log_1.info)("TODO: need to handle deadline", { deadline }); + const payload = JSON.parse(stdout); + return { + requestId, + payload, + }; +}; +exports.endpointExec = endpointExec; +const endpointProxy = async ({ requestId, endpoint, event, deadline, }) => { + const { requestContext, rawPath, rawQueryString, headers: rawHeaders, body: rawBody, isBase64Encoded, } = event; + const method = requestContext.http.method; + (0, log_1.log)("Waiting for endpoint to start", { endpoint, deadline }); + const { timeout } = await waitForEndpoint(endpoint, deadline); + if (!timeout) { + throw new Error(`${endpoint.toString()} took longer than ${deadline} milliseconds to start.`); + } + const url = new URL(rawPath, endpoint); + if (rawQueryString) { + url.search = new URLSearchParams(rawQueryString).toString(); + } + const decodedBody = isBase64Encoded && rawBody ? Buffer.from(rawBody, "base64") : rawBody; + (0, log_1.log)("Proxying request", { url, method, rawHeaders, decodedBody, timeout }); + let response = undefined; + try { + response = await axios_1.default.request({ + method: method.toLowerCase(), + url: url.toString(), + headers: rawHeaders, + data: decodedBody, + timeout, + responseType: "arraybuffer", + }); + } + catch (e) { + if ((0, axios_1.isAxiosError)(e) && e.response) { + response = e.response; + } + else { + throw e; + } + } + if (!response) { + throw new Error("No response received"); + } + const { data: rawData, headers: rawResponseHeaders } = response; + (0, log_1.log)("Proxy request complete", { url, method, rawResponseHeaders, rawData }); + return { + requestId, + payload: { + statusCode: response.status, + headers: convertHeaders(rawResponseHeaders), + body: Buffer.from(rawData).toString("base64"), + isBase64Encoded: true, + }, + }; +}; +exports.endpointProxy = endpointProxy; diff --git a/dist/src/routing.d.ts b/dist/src/internal/routing.d.ts similarity index 73% rename from dist/src/routing.d.ts rename to dist/src/internal/routing.d.ts index f64c626..8074fc0 100644 --- a/dist/src/routing.d.ts +++ b/dist/src/internal/routing.d.ts @@ -1,2 +1 @@ export declare const routeEvents: (runtimeApi: string, bin?: string, endpoint?: URL) => Promise; -//# sourceMappingURL=routing.d.ts.map \ No newline at end of file diff --git a/dist/src/internal/routing.js b/dist/src/internal/routing.js new file mode 100644 index 0000000..6f434c7 --- /dev/null +++ b/dist/src/internal/routing.js @@ -0,0 +1,47 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.routeEvents = void 0; +const proxy_1 = require("./proxy"); +const log_1 = require("./log"); +const runtime_1 = require("./runtime"); +const routeEvents = async (runtimeApi, bin, endpoint) => { + (0, log_1.log)("Waiting for next event from Lambda Runtime API", { runtimeApi }); + const { requestId, event, deadline } = await (0, runtime_1.nextEvent)(runtimeApi); + let payload = undefined; + if (bin && !endpoint) { + (0, log_1.log)("No endpoint specified, executing bin", { bin }); + const request = { + requestId, + bin, + event, + deadline, + }; + payload = (await (0, proxy_1.endpointExec)(request)).payload; + (0, log_1.log)("Bin execution complete", { bin, payload }); + } + else if (endpoint) { + (0, log_1.log)("Endpoint specified, proxying request", { endpoint }); + const request = { + requestId, + endpoint, + event, + deadline, + }; + payload = (await (0, proxy_1.endpointProxy)(request)).payload; + (0, log_1.log)("Proxy request complete", { endpoint, payload }); + } + else { + throw new Error(` +Missing bin and handler on _HANDLER: ${process.env._HANDLER}. +Expected format: {bin}@{endpoint} or {bin} or {endpoint}: + - next@http://localhost:3000 + - /usr/bin/app@http://localhost:3000 + - http://localhost:3000 + - /usr/bin/app +`); + } + await (0, runtime_1.respondToEvent)(runtimeApi, requestId, payload); + (0, log_1.log)("Response sent to Lambda Runtime API", { runtimeApi, requestId }); + return (0, exports.routeEvents)(runtimeApi, bin, endpoint); +}; +exports.routeEvents = routeEvents; diff --git a/dist/src/runtime.d.ts b/dist/src/internal/runtime.d.ts similarity index 85% rename from dist/src/runtime.d.ts rename to dist/src/internal/runtime.d.ts index 853dcff..4691fc8 100644 --- a/dist/src/runtime.d.ts +++ b/dist/src/internal/runtime.d.ts @@ -1,4 +1,3 @@ import { LambdaEvent } from "./types"; export declare const nextEvent: (runtimeApi: string) => Promise; export declare const respondToEvent: (runtimeApi: string, requestId: string, payload: any) => Promise; -//# sourceMappingURL=runtime.d.ts.map \ No newline at end of file diff --git a/dist/src/internal/runtime.js b/dist/src/internal/runtime.js new file mode 100644 index 0000000..db7ea4c --- /dev/null +++ b/dist/src/internal/runtime.js @@ -0,0 +1,26 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.respondToEvent = exports.nextEvent = void 0; +const axios_1 = __importDefault(require("axios")); +const nextEvent = async (runtimeApi) => { + const { headers, data } = await axios_1.default.get(`http://${runtimeApi}/2018-06-01/runtime/invocation/next`, { + // block indefinitely until a response is received + timeout: 0, + responseType: "text", + }); + const requestId = headers["lambda-runtime-aws-request-id"]; + if (!requestId) { + throw new Error("No request ID found in response headers"); + } + const deadline = Number.parseInt(headers["lambda-runtime-deadline-ms"]); + const event = JSON.parse(data); + return { requestId, event, deadline }; +}; +exports.nextEvent = nextEvent; +const respondToEvent = async (runtimeApi, requestId, payload) => { + await axios_1.default.post(`http://${runtimeApi}/2018-06-01/runtime/invocation/${requestId}/response`, payload); +}; +exports.respondToEvent = respondToEvent; diff --git a/dist/src/types.d.ts b/dist/src/internal/types.d.ts similarity index 93% rename from dist/src/types.d.ts rename to dist/src/internal/types.d.ts index 7610e37..e01913d 100644 --- a/dist/src/types.d.ts +++ b/dist/src/internal/types.d.ts @@ -20,4 +20,3 @@ export type EndpointResponse = { requestId: string; payload: APIGatewayProxyResult; }; -//# sourceMappingURL=types.d.ts.map \ No newline at end of file diff --git a/dist/src/internal/types.js b/dist/src/internal/types.js new file mode 100644 index 0000000..c8ad2e5 --- /dev/null +++ b/dist/src/internal/types.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/dist/src/log.d.ts.map b/dist/src/log.d.ts.map deleted file mode 100644 index 5a0e456..0000000 --- a/dist/src/log.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"log.d.ts","sourceRoot":"","sources":["../../src/log.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,IAAI,YAAa,GAAG,QAAQ,OAAO,MAAM,EAAE,GAAG,CAAC,KAAG,IAK9D,CAAC;AAEF,eAAO,MAAM,GAAG,YAAa,GAAG,QAAQ,OAAO,MAAM,EAAE,GAAG,CAAC,KAAG,IAM7D,CAAC"} \ No newline at end of file diff --git a/dist/src/proxy.d.ts.map b/dist/src/proxy.d.ts.map deleted file mode 100644 index 90d09c2..0000000 --- a/dist/src/proxy.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"proxy.d.ts","sourceRoot":"","sources":["../../src/proxy.ts"],"names":[],"mappings":";AAOA,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,gBAAgB,EACjB,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,YAAY,EAAS,MAAM,eAAe,CAAC;AAiEpD,eAAO,MAAM,aAAa,YACf,MAAM,WACN,OAAO,KACf,QAAQ;IACT,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,GAAG,CAAC;CAChB,CAwCA,CAAC;AAEF,eAAO,MAAM,YAAY,yCAKtB,mBAAmB,KAAG,QAAQ,gBAAgB,CAgBhD,CAAC;AAEF,eAAO,MAAM,aAAa,8CAKvB,oBAAoB,KAAG,QAAQ,gBAAgB,CAiEjD,CAAC"} \ No newline at end of file diff --git a/dist/src/routing.d.ts.map b/dist/src/routing.d.ts.map deleted file mode 100644 index 5622e86..0000000 --- a/dist/src/routing.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"routing.d.ts","sourceRoot":"","sources":["../../src/routing.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,WAAW,eACV,MAAM,QACZ,MAAM,aACD,GAAG,KACb,QAAQ,IAAI,CAmDd,CAAC"} \ No newline at end of file diff --git a/dist/src/runtime.d.ts.map b/dist/src/runtime.d.ts.map deleted file mode 100644 index 9710d28..0000000 --- a/dist/src/runtime.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/runtime.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEtC,eAAO,MAAM,SAAS,eAAsB,MAAM,KAAG,QAAQ,WAAW,CAqBvE,CAAC;AAEF,eAAO,MAAM,cAAc,eACb,MAAM,aACP,MAAM,WACR,GAAG,KACX,QAAQ,IAAI,CAKd,CAAC"} \ No newline at end of file diff --git a/dist/src/types.d.ts.map b/dist/src/types.d.ts.map deleted file mode 100644 index 14ce272..0000000 --- a/dist/src/types.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAEnD,MAAM,MAAM,WAAW,GAAG;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,GAAG,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,GAAG,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,GAAG,CAAC;IACd,KAAK,EAAE,GAAG,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,SAAS,EAAE,MAAM,CAAC;IAElB,OAAO,EAAE,qBAAqB,CAAC;CAChC,CAAC"} \ No newline at end of file diff --git a/package.json b/package.json index 4590afb..bce3272 100644 --- a/package.json +++ b/package.json @@ -7,16 +7,18 @@ "license": "MIT", "main": "dist/main.js", "files": [ + "build/**/*", "dist/**/*", "scripts/**/*" ], "bin": { - "bootstrap": "dist/main.js", + "bootstrap": "dist/bootstrap.js", "lambda-env": "scripts/lambda-env.cjs" }, "scripts": { "build": "webpack", - "start": "node -r ts-node/register -r tsconfig-paths/register cli/index.ts" + "start": "node -r ts-node/register -r tsconfig-paths/register cli/index.ts", + "postinstall": "tsc" }, "engines": { "node": ">=18" @@ -39,9 +41,10 @@ "ts-loader": "^9.5.1", "ts-node": "^10.9.2", "tsconfig-paths": "^4.2.0", + "types-webpack-bundler": "^1.0.2", "typescript": "5", "webpack": "^5.91.0", "webpack-cli": "^5.1.4", "which": "^4.0.0" } -} \ No newline at end of file +} diff --git a/src/index.ts b/src/index.ts index 336b389..6415db9 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,11 +1,11 @@ -import { endpointSpawn, endpointProxy } from "./proxy"; -import { nextEvent, respondToEvent } from "./runtime"; +import { endpointSpawn, endpointProxy } from "./internal/proxy"; +import { nextEvent, respondToEvent } from "./internal/runtime"; import { LambdaEvent, EndpointExecRequest, EndpointProxyRequest, EndpointResponse, -} from "./types"; +} from "./internal/types"; export { endpointSpawn, diff --git a/src/bootstrap.ts b/src/internal/bootstrap.ts similarity index 100% rename from src/bootstrap.ts rename to src/internal/bootstrap.ts diff --git a/src/log.ts b/src/internal/log.ts similarity index 90% rename from src/log.ts rename to src/internal/log.ts index 15dba96..8b06620 100644 --- a/src/log.ts +++ b/src/internal/log.ts @@ -1,4 +1,4 @@ -import packageJson from "../package.json"; +import packageJson from "../../package.json"; export const info = (message: any, obj?: Record): void => { console.log( diff --git a/src/proxy.ts b/src/internal/proxy.ts similarity index 100% rename from src/proxy.ts rename to src/internal/proxy.ts diff --git a/src/routing.ts b/src/internal/routing.ts similarity index 100% rename from src/routing.ts rename to src/internal/routing.ts diff --git a/src/runtime.ts b/src/internal/runtime.ts similarity index 100% rename from src/runtime.ts rename to src/internal/runtime.ts diff --git a/src/types.ts b/src/internal/types.ts similarity index 100% rename from src/types.ts rename to src/internal/types.ts diff --git a/tsconfig.json b/tsconfig.json index 3478dfa..cd80c86 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -7,9 +7,7 @@ "module": "Node16", "rootDir": "./", "outDir": "./dist", - "sourceMap": true, "declaration": true, - "declarationMap": true, /* Strict Type-Checking Options */ "strict": true, diff --git a/webpack.config.js b/webpack.config.js index c32d290..e4dff62 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -2,6 +2,7 @@ /* eslint-disable no-undef */ const path = require("path"); const webpack = require("webpack"); +const DeclarationBundlerPlugin = require("types-webpack-bundler"); const fs = require("fs"); // eslint-disable-next-line no-undef @@ -13,12 +14,12 @@ module.exports = { mode: "production", // entry files - entry: "./cli/index.ts", + entry: "./cli/bootstrap.ts", // output bundles (location) output: { path: path.resolve(__dirname, "dist"), - filename: "main.js", + filename: "bootstrap.js", }, // file resolutions @@ -43,7 +44,7 @@ module.exports = { new webpack.BannerPlugin({ banner: "#!/usr/bin/env node", raw: true }), function () { this.hooks.done.tapPromise("Make executable", async () => { - fs.chmodSync(`${__dirname}/dist/main.js`, "755"); + fs.chmodSync(`${__dirname}/dist/bootstrap.js`, "755"); }); }, ], diff --git a/yarn.lock b/yarn.lock index 67eac05..a085fa6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1312,6 +1312,11 @@ tsconfig-paths@^4.2.0: minimist "^1.2.6" strip-bom "^3.0.0" +types-webpack-bundler@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/types-webpack-bundler/-/types-webpack-bundler-1.0.2.tgz#494ef8221ac0ba18092e9c4ec6321d56811cc9e2" + integrity sha512-McBxKu99h2WTyOl76SMcS5T3vKTsxBQxe5BQwrbcrFwnczQkU7ae6RKmUN/mqIYOIo4LnIowxFJY0XjPKurP/A== + typescript@5: version "5.4.5" resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.4.5.tgz#42ccef2c571fdbd0f6718b1d1f5e6e5ef006f611"