@gadgetinc/ggt 2.2.0 → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +392 -307
- package/dist/action-CF6zatIh.js +64 -0
- package/dist/action-CF6zatIh.js.map +1 -0
- package/dist/action-CrDCeX3F.js +8 -0
- package/dist/action-CrDCeX3F.js.map +1 -0
- package/dist/add-Basu3Gyf.js +1 -0
- package/dist/agent-plugin-CqgwTOk-.js +15 -0
- package/dist/agent-plugin-CqgwTOk-.js.map +1 -0
- package/dist/agent-plugin-DU9G5B1d.js +9 -0
- package/dist/agent-plugin-DU9G5B1d.js.map +1 -0
- package/dist/assert-Bu1E126Z.js +2 -0
- package/dist/assert-Bu1E126Z.js.map +1 -0
- package/dist/chunk-BjEoQXZ0.js +1 -0
- package/dist/collection-C2TCeYqY.js +2 -0
- package/dist/collection-C2TCeYqY.js.map +1 -0
- package/dist/collection-aM0fpch0.js +1 -0
- package/dist/command-2iNTc5dV.js +118 -0
- package/dist/command-2iNTc5dV.js.map +1 -0
- package/dist/completion-D96nxD5n.js +37 -0
- package/dist/completion-D96nxD5n.js.map +1 -0
- package/dist/configure-C8ge-2cK.js +15 -0
- package/dist/configure-C8ge-2cK.js.map +1 -0
- package/dist/debugger-BkYgApKn.js +22 -0
- package/dist/debugger-BkYgApKn.js.map +1 -0
- package/dist/defaults-B_eD7Pia.js +2 -0
- package/dist/defaults-B_eD7Pia.js.map +1 -0
- package/dist/deploy-Da6P2HXS.js +15 -0
- package/dist/deploy-Da6P2HXS.js.map +1 -0
- package/dist/dev-DWMSNcLl.js +32 -0
- package/dist/dev-DWMSNcLl.js.map +1 -0
- package/dist/dev-lock-BFanZSu1.js +10 -0
- package/dist/dev-lock-BFanZSu1.js.map +1 -0
- package/dist/directory-CNL03L6c.js +9 -0
- package/dist/directory-CNL03L6c.js.map +1 -0
- package/dist/env-DoWNvHzW.js +62 -0
- package/dist/env-DoWNvHzW.js.map +1 -0
- package/dist/esm-B25i6Etq.js +12 -0
- package/dist/esm-B25i6Etq.js.map +1 -0
- package/dist/esm-CJocZrdd.js +2 -0
- package/dist/esm-CJocZrdd.js.map +1 -0
- package/dist/eval-BceZMSd5.js +27 -0
- package/dist/eval-BceZMSd5.js.map +1 -0
- package/dist/execAsync-DrhcEHLd.js +2 -0
- package/dist/execAsync-DrhcEHLd.js.map +1 -0
- package/dist/filesync-De6asZeR.js +61 -0
- package/dist/filesync-De6asZeR.js.map +1 -0
- package/dist/getMachineId-bsd-Cch8Z6pV.js +2 -0
- package/dist/getMachineId-bsd-Cch8Z6pV.js.map +1 -0
- package/dist/getMachineId-darwin-kbQWK54o.js +3 -0
- package/dist/getMachineId-darwin-kbQWK54o.js.map +1 -0
- package/dist/getMachineId-linux-DdIel6zr.js +2 -0
- package/dist/getMachineId-linux-DdIel6zr.js.map +1 -0
- package/dist/getMachineId-unsupported-Bvmsh30k.js +2 -0
- package/dist/getMachineId-unsupported-Bvmsh30k.js.map +1 -0
- package/dist/getMachineId-win-BteHZe8j.js +2 -0
- package/dist/getMachineId-win-BteHZe8j.js.map +1 -0
- package/dist/ggt-B3HQjQRM.js +3 -0
- package/dist/ggt-B3HQjQRM.js.map +1 -0
- package/dist/handler-DZyG8Sel.js +4 -0
- package/dist/handler-DZyG8Sel.js.map +1 -0
- package/dist/http-CY3lPMkt.js +320 -0
- package/dist/http-CY3lPMkt.js.map +1 -0
- package/dist/indent-string-BVm-4tyL.js +2 -0
- package/dist/indent-string-BVm-4tyL.js.map +1 -0
- package/dist/list-lQKWZ6ZI.js +10 -0
- package/dist/list-lQKWZ6ZI.js.map +1 -0
- package/dist/login-Ce0tByNd.js +1 -0
- package/dist/logout-_sTWeaiQ.js +5 -0
- package/dist/logout-_sTWeaiQ.js.map +1 -0
- package/dist/logs-DbhJzz4M.js +9 -0
- package/dist/logs-DbhJzz4M.js.map +1 -0
- package/dist/main.js +2 -2
- package/dist/main.js.map +1 -7
- package/dist/model-CBiMKY0P.js +11 -0
- package/dist/model-CBiMKY0P.js.map +1 -0
- package/dist/ms-B7sMc0pR.js +2 -0
- package/dist/ms-B7sMc0pR.js.map +1 -0
- package/dist/open-CSsA4B-l.js +38 -0
- package/dist/open-CSsA4B-l.js.map +1 -0
- package/dist/p-map-DE0acmRv.js +2 -0
- package/dist/p-map-DE0acmRv.js.map +1 -0
- package/dist/problems-BMLsmxd4.js +11 -0
- package/dist/problems-BMLsmxd4.js.map +1 -0
- package/dist/prompt-C9nwJW0G.js +2 -0
- package/dist/prompt-C9nwJW0G.js.map +1 -0
- package/dist/pull-DpizmJGk.js +12 -0
- package/dist/pull-DpizmJGk.js.map +1 -0
- package/dist/push-67KBCw6c.js +12 -0
- package/dist/push-67KBCw6c.js.map +1 -0
- package/dist/root-D_UnUsp7.js +28 -0
- package/dist/root-D_UnUsp7.js.map +1 -0
- package/dist/select-Dey_sjjd.js +4 -0
- package/dist/select-Dey_sjjd.js.map +1 -0
- package/dist/session-BmzGF1t7.js +2 -0
- package/dist/session-BmzGF1t7.js.map +1 -0
- package/dist/spinner-BVmbgIil.js +8 -0
- package/dist/spinner-BVmbgIil.js.map +1 -0
- package/dist/src-DxCC1MV4.js +6 -0
- package/dist/src-DxCC1MV4.js.map +1 -0
- package/dist/status-P_RFQ7J0.js +13 -0
- package/dist/status-P_RFQ7J0.js.map +1 -0
- package/dist/subscribeToEnvironmentLogs-CUicaiw_.js +2 -0
- package/dist/subscribeToEnvironmentLogs-CUicaiw_.js.map +1 -0
- package/dist/sync-json-V52OzeCz.js +112 -0
- package/dist/sync-json-V52OzeCz.js.map +1 -0
- package/dist/table-MrBbxMay.js +11 -0
- package/dist/table-MrBbxMay.js.map +1 -0
- package/dist/update-CfxiL08e.js +12 -0
- package/dist/update-CfxiL08e.js.map +1 -0
- package/dist/update-iyhnL9-M.js +1 -0
- package/dist/var-ByWcufFt.js +59 -0
- package/dist/var-ByWcufFt.js.map +1 -0
- package/dist/version-B_9GB4u3.js +9 -0
- package/dist/version-B_9GB4u3.js.map +1 -0
- package/dist/whoami-BNcXIfz7.js +5 -0
- package/dist/whoami-BNcXIfz7.js.map +1 -0
- package/package.json +19 -23
- package/assets/favicon-128@4x.png +0 -0
- package/dist/add-TWLGKL2T.js +0 -82
- package/dist/add-TWLGKL2T.js.map +0 -7
- package/dist/agent-plugin-TN24O7FB.js +0 -10
- package/dist/agent-plugin-TN24O7FB.js.map +0 -7
- package/dist/chunk-2742UPMB.js +0 -10
- package/dist/chunk-2742UPMB.js.map +0 -7
- package/dist/chunk-3OM5WM7E.js +0 -2
- package/dist/chunk-3OM5WM7E.js.map +0 -7
- package/dist/chunk-442CSROP.js +0 -66
- package/dist/chunk-442CSROP.js.map +0 -7
- package/dist/chunk-7DYQUG5M.js +0 -2
- package/dist/chunk-7DYQUG5M.js.map +0 -7
- package/dist/chunk-DR4CXBD6.js +0 -11
- package/dist/chunk-DR4CXBD6.js.map +0 -7
- package/dist/chunk-F255O64V.js +0 -2
- package/dist/chunk-F255O64V.js.map +0 -7
- package/dist/chunk-GFQYFEEH.js +0 -2
- package/dist/chunk-GFQYFEEH.js.map +0 -7
- package/dist/chunk-GJGBTM5Y.js +0 -2
- package/dist/chunk-GJGBTM5Y.js.map +0 -7
- package/dist/chunk-HCULGPBH.js +0 -2
- package/dist/chunk-HCULGPBH.js.map +0 -7
- package/dist/chunk-J232VCIM.js +0 -2
- package/dist/chunk-J232VCIM.js.map +0 -7
- package/dist/chunk-JG2QCDK2.js +0 -118
- package/dist/chunk-JG2QCDK2.js.map +0 -7
- package/dist/chunk-JKZNSRLU.js +0 -8
- package/dist/chunk-JKZNSRLU.js.map +0 -7
- package/dist/chunk-JYE5LLIF.js +0 -9
- package/dist/chunk-JYE5LLIF.js.map +0 -7
- package/dist/chunk-KKIL22RY.js +0 -2
- package/dist/chunk-KKIL22RY.js.map +0 -7
- package/dist/chunk-L2XBSR7G.js +0 -2
- package/dist/chunk-L2XBSR7G.js.map +0 -7
- package/dist/chunk-MW6MXMSN.js +0 -2
- package/dist/chunk-MW6MXMSN.js.map +0 -7
- package/dist/chunk-OUIZQC4D.js +0 -12
- package/dist/chunk-OUIZQC4D.js.map +0 -7
- package/dist/chunk-R6KJLEKY.js +0 -28
- package/dist/chunk-R6KJLEKY.js.map +0 -7
- package/dist/chunk-SIR6HLN3.js +0 -69
- package/dist/chunk-SIR6HLN3.js.map +0 -7
- package/dist/chunk-SVWK2NXG.js +0 -2
- package/dist/chunk-SVWK2NXG.js.map +0 -7
- package/dist/chunk-T6UHSWMT.js +0 -2
- package/dist/chunk-T6UHSWMT.js.map +0 -7
- package/dist/chunk-WB6O2V5D.js +0 -11
- package/dist/chunk-WB6O2V5D.js.map +0 -7
- package/dist/chunk-XC4F2TLW.js +0 -113
- package/dist/chunk-XC4F2TLW.js.map +0 -7
- package/dist/chunk-YFUOXDPK.js +0 -10
- package/dist/chunk-YFUOXDPK.js.map +0 -7
- package/dist/chunk-ZSREFZXV.js +0 -211
- package/dist/chunk-ZSREFZXV.js.map +0 -7
- package/dist/chunk-ZYDMXS5R.js +0 -6
- package/dist/chunk-ZYDMXS5R.js.map +0 -7
- package/dist/configure-UJS7V2JX.js +0 -12
- package/dist/configure-UJS7V2JX.js.map +0 -7
- package/dist/debugger-QN2MCLBL.js +0 -41
- package/dist/debugger-QN2MCLBL.js.map +0 -7
- package/dist/deploy-J74PHPQA.js +0 -25
- package/dist/deploy-J74PHPQA.js.map +0 -7
- package/dist/dev-GGUSOOYP.js +0 -59
- package/dist/dev-GGUSOOYP.js.map +0 -7
- package/dist/esm-D77XRR65.js +0 -38
- package/dist/esm-D77XRR65.js.map +0 -7
- package/dist/eval-L6WHUFLU.js +0 -54
- package/dist/eval-L6WHUFLU.js.map +0 -7
- package/dist/getMachineId-bsd-QUXN4NKS.js +0 -2
- package/dist/getMachineId-bsd-QUXN4NKS.js.map +0 -7
- package/dist/getMachineId-darwin-TCXBAX22.js +0 -3
- package/dist/getMachineId-darwin-TCXBAX22.js.map +0 -7
- package/dist/getMachineId-linux-IJ3LYIOX.js +0 -2
- package/dist/getMachineId-linux-IJ3LYIOX.js.map +0 -7
- package/dist/getMachineId-unsupported-IKXBUCYY.js +0 -2
- package/dist/getMachineId-unsupported-IKXBUCYY.js.map +0 -7
- package/dist/getMachineId-win-6CX7VSFF.js +0 -2
- package/dist/getMachineId-win-6CX7VSFF.js.map +0 -7
- package/dist/ggt-5XNRJZSW.js +0 -44
- package/dist/ggt-5XNRJZSW.js.map +0 -7
- package/dist/list-756D46N5.js +0 -11
- package/dist/list-756D46N5.js.map +0 -7
- package/dist/login-GMWQRH7V.js +0 -2
- package/dist/login-GMWQRH7V.js.map +0 -7
- package/dist/logout-LQABTJFD.js +0 -7
- package/dist/logout-LQABTJFD.js.map +0 -7
- package/dist/logs-AQZB272X.js +0 -28
- package/dist/logs-AQZB272X.js.map +0 -7
- package/dist/open-OMZWPQ66.js +0 -74
- package/dist/open-OMZWPQ66.js.map +0 -7
- package/dist/problems-FZJKH52E.js +0 -14
- package/dist/problems-FZJKH52E.js.map +0 -7
- package/dist/pull-XYCYN7QN.js +0 -28
- package/dist/pull-XYCYN7QN.js.map +0 -7
- package/dist/push-3QM7ZFTC.js +0 -2
- package/dist/push-3QM7ZFTC.js.map +0 -7
- package/dist/status-PWAXNK5G.js +0 -14
- package/dist/status-PWAXNK5G.js.map +0 -7
- package/dist/update-QIQFJFRQ.js +0 -2
- package/dist/update-QIQFJFRQ.js.map +0 -7
- package/dist/var-N4WGGJXZ.js +0 -159
- package/dist/var-N4WGGJXZ.js.map +0 -7
- package/dist/version-AJKSJJDC.js +0 -11
- package/dist/version-AJKSJJDC.js.map +0 -7
- package/dist/whoami-KJYDSQSD.js +0 -7
- package/dist/whoami-KJYDSQSD.js.map +0 -7
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import{i as e,o as t,t as n}from"./chunk-BjEoQXZ0.js";import{i as r,r as i}from"./prompt-C9nwJW0G.js";import{A as a,H as o,X as s,Y as c,ct as l,ft as u,g as d,j as f,lt as p,ot as m,st as h,z as g}from"./http-CY3lPMkt.js";import{$ as _,D as v,E as y,J as b,K as x,Lt as S,Q as C,T as ee,U as te,V as ne,W as re,X as ie,Y as w,Z as ae,_t as oe,b as se,bt as ce,c as le,d as ue,et as de,k as fe,lt as pe,m as me,nt as he,q as ge,rt as _e,s as T,tt as ve,u as ye,ut as be,v as xe,x as Se}from"./command-2iNTc5dV.js";import{t as Ce}from"./indent-string-BVm-4tyL.js";import{t as we}from"./p-map-DE0acmRv.js";import{n as Te,r as Ee}from"./directory-CNL03L6c.js";import{c as De,f as Oe,h as ke,l as Ae,p as je,v as Me}from"./sync-json-V52OzeCz.js";import{t as Ne}from"./select-Dey_sjjd.js";import{n as Pe}from"./spinner-BVmbgIil.js";import{n as Fe,t as Ie}from"./table-MrBbxMay.js";import{EventEmitter as Le,addAbortListener as Re,on as ze,once as E,setMaxListeners as Be}from"node:events";import{ChildProcess as Ve,spawn as He,spawnSync as Ue}from"node:child_process";import{appendFileSync as We,createReadStream as Ge,createWriteStream as Ke,readFileSync as qe,statSync as Je,writeFileSync as Ye}from"node:fs";import{constants as D}from"node:os";import O from"node:path";import{aborted as Xe,callbackify as k,debuglog as Ze,inspect as Qe,promisify as $e,stripVTControlCharacters as et}from"node:util";import{Duplex as tt,PassThrough as nt,Readable as A,Transform as rt,Writable as it,getDefaultHighWaterMark as at}from"node:stream";import j,{execArgv as ot,execPath as st,hrtime as ct,platform as lt}from"node:process";import ut from"node:tty";import{scheduler as dt,setImmediate as ft,setTimeout as pt}from"node:timers/promises";import{Buffer as mt}from"node:buffer";import{fileURLToPath as ht}from"node:url";import{finished as M}from"node:stream/promises";import N from"node:assert";import{StringDecoder as gt}from"node:string_decoder";import{serialize as _t}from"node:v8";async function vt(e,t){return _(e,yt,t)}const yt={init:()=>({contents:[]}),convertChunk:{string:w,buffer:w,arrayBuffer:w,dataView:w,typedArray:w,others:w},getSize:()=>1,truncateChunk:ie,addChunk:(e,{contents:t})=>(t.push(e),t),getFinalChunk:ie,finalize:ge};async function bt(e,t){return _(e,Ct,t)}const xt=()=>({contents:``,textDecoder:new TextDecoder}),St=(e,{textDecoder:t})=>t.decode(e,{stream:!0}),Ct={init:xt,convertChunk:{string:w,buffer:St,arrayBuffer:St,dataView:St,typedArray:St,others:ae},getSize:b,truncateChunk:(e,t)=>e.slice(0,t),addChunk:(e,{contents:t})=>t+e,getFinalChunk:({textDecoder:e})=>{let t=e.decode();return t===``?void 0:t},finalize:ge};function P(e){if(typeof e!=`object`||!e)return!1;let t=Object.getPrototypeOf(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(Symbol.toStringTag in e)&&!(Symbol.iterator in e)}const wt=(e,t)=>{let n=Dt(Tt(e));if(typeof n!=`string`)throw TypeError(`${t} must be a string or a file URL: ${n}.`);return n},Tt=e=>Et(e)?e.toString():e,Et=e=>typeof e!=`string`&&e&&Object.getPrototypeOf(e)===String.prototype,Dt=e=>e instanceof URL?ht(e):e,Ot=(e,t=[],n={})=>{let r=wt(e,`First argument`),[i,a]=P(t)?[[],t]:[t,n];if(!Array.isArray(i))throw TypeError(`Second argument must be either an array of arguments or an options object: ${i}`);if(i.some(e=>typeof e==`object`&&!!e))throw TypeError(`Second argument must be an array of strings: ${i}`);let o=i.map(String),s=o.find(e=>e.includes(`\0`));if(s!==void 0)throw TypeError(`Arguments cannot contain null bytes ("\\0"): ${s}`);if(!P(a))throw TypeError(`Last argument must be an options object: ${a}`);return[r,o,a]},{toString:kt}=Object.prototype,At=e=>kt.call(e)===`[object ArrayBuffer]`,F=e=>kt.call(e)===`[object Uint8Array]`,I=e=>new Uint8Array(e.buffer,e.byteOffset,e.byteLength),jt=new TextEncoder,Mt=e=>jt.encode(e),Nt=new TextDecoder,Pt=e=>Nt.decode(e),Ft=(e,t)=>It(e,t).join(``),It=(e,t)=>{if(t===`utf8`&&e.every(e=>typeof e==`string`))return e;let n=new gt(t),r=e.map(e=>typeof e==`string`?Mt(e):e).map(e=>n.write(e)),i=n.end();return i===``?r:[...r,i]},Lt=e=>e.length===1&&F(e[0])?e[0]:zt(Rt(e)),Rt=e=>e.map(e=>typeof e==`string`?Mt(e):e),zt=e=>{let t=new Uint8Array(Bt(e)),n=0;for(let r of e)t.set(r,n),n+=r.length;return t},Bt=e=>{let t=0;for(let n of e)t+=n.length;return t},Vt=e=>Array.isArray(e)&&Array.isArray(e.raw),Ht=(e,t)=>{let n=[];for(let[r,i]of e.entries())n=Ut({templates:e,expressions:t,tokens:n,index:r,template:i});if(n.length===0)throw TypeError(`Template script must not be empty`);let[r,...i]=n;return[r,i,{}]},Ut=({templates:e,expressions:t,tokens:n,index:r,template:i})=>{if(i===void 0)throw TypeError(`Invalid backslash sequence: ${e.raw[r]}`);let{nextTokens:a,leadingWhitespaces:o,trailingWhitespaces:s}=Wt(i,e.raw[r]),c=qt(n,a,o);if(r===t.length)return c;let l=t[r];return qt(c,Array.isArray(l)?l.map(e=>Jt(e)):[Jt(l)],s)},Wt=(e,t)=>{if(t.length===0)return{nextTokens:[],leadingWhitespaces:!1,trailingWhitespaces:!1};let n=[],r=0,i=Gt.has(t[0]);for(let i=0,a=0;i<e.length;i+=1,a+=1){let o=t[a];if(Gt.has(o))r!==i&&n.push(e.slice(r,i)),r=i+1;else if(o===`\\`){let e=t[a+1];e===`
|
|
2
|
+
`?(--i,a+=1):e===`u`&&t[a+2]===`{`?a=t.indexOf(`}`,a+3):a+=Kt[e]??1}}let a=r===e.length;return a||n.push(e.slice(r)),{nextTokens:n,leadingWhitespaces:i,trailingWhitespaces:a}},Gt=new Set([` `,` `,`\r`,`
|
|
3
|
+
`]),Kt={x:3,u:5},qt=(e,t,n)=>n||e.length===0||t.length===0?[...e,...t]:[...e.slice(0,-1),`${e.at(-1)}${t[0]}`,...t.slice(1)],Jt=e=>{let t=typeof e;if(t===`string`)return e;if(t===`number`)return String(e);if(P(e)&&(`stdout`in e||`isMaxBuffer`in e))return Yt(e);throw e instanceof Ve||Object.prototype.toString.call(e)===`[object Promise]`?TypeError("Unexpected subprocess in template expression. Please use ${await subprocess} instead of ${subprocess}."):TypeError(`Unexpected "${t}" in template expression`)},Yt=({stdout:e})=>{if(typeof e==`string`)return e;if(F(e))return Pt(e);throw TypeError(e===void 0?`Missing result.stdout in template expression. This is probably due to the previous subprocess' "stdout" option.`:`Unexpected "${typeof e}" stdout in template expression`)},L=e=>Xt.includes(e),Xt=[j.stdin,j.stdout,j.stderr],R=[`stdin`,`stdout`,`stderr`],Zt=e=>R[e]??`stdio[${e}]`,Qt=e=>{let t={...e};for(let n of dn)t[n]=$t(e,n);return t},$t=(e,t)=>{let n=Array.from({length:en(e)+1});return ln(tn(e[t],n,t),t)},en=({stdio:e})=>Array.isArray(e)?Math.max(e.length,R.length):R.length,tn=(e,t,n)=>P(e)?nn(e,t,n):t.fill(e),nn=(e,t,n)=>{for(let r of Object.keys(e).sort(rn))for(let i of on(r,n,t))t[i]=e[r];return t},rn=(e,t)=>an(e)<an(t)?1:-1,an=e=>e===`stdout`||e===`stderr`?0:e===`all`?2:1,on=(e,t,n)=>{if(e===`ipc`)return[n.length-1];let r=sn(e);if(r===void 0||r===0)throw TypeError(`"${t}.${e}" is invalid.
|
|
4
|
+
It must be "${t}.stdout", "${t}.stderr", "${t}.all", "${t}.ipc", or "${t}.fd3", "${t}.fd4" (and so on).`);if(r>=n.length)throw TypeError(`"${t}.${e}" is invalid: that file descriptor does not exist.
|
|
5
|
+
Please set the "stdio" option to ensure that file descriptor exists.`);return r===`all`?[1,2]:[r]},sn=e=>{if(e===`all`)return e;if(R.includes(e))return R.indexOf(e);let t=cn.exec(e);if(t!==null)return Number(t[1])},cn=/^fd(\d+)$/,ln=(e,t)=>e.map(e=>e===void 0?un[t]:e),un={lines:!1,buffer:!0,maxBuffer:1e3*1e3*100,verbose:Ze(`execa`).enabled?`full`:`none`,stripFinalNewline:!0},dn=[`lines`,`buffer`,`maxBuffer`,`verbose`,`stripFinalNewline`],z=(e,t)=>t===`ipc`?e.at(-1):e[t],fn=({verbose:e},t)=>hn(e,t)!==`none`,pn=({verbose:e},t)=>![`none`,`short`].includes(hn(e,t)),mn=({verbose:e},t)=>{let n=hn(e,t);return _n(n)?n:void 0},hn=(e,t)=>t===void 0?gn(e):z(e,t),gn=e=>e.find(e=>_n(e))??vn.findLast(t=>e.includes(t)),_n=e=>typeof e==`function`,vn=[`none`,`short`,`full`],yn=(e,t)=>{let n=[e,...t];return{command:n.join(` `),escapedCommand:n.map(e=>En(xn(e))).join(` `)}},bn=e=>et(e).split(`
|
|
6
|
+
`).map(e=>xn(e)).join(`
|
|
7
|
+
`),xn=e=>e.replaceAll(Cn,e=>Sn(e)),Sn=e=>{let t=wn[e];if(t!==void 0)return t;let n=e.codePointAt(0),r=n.toString(16);return n<=Tn?`\\u${r.padStart(4,`0`)}`:`\\U${r}`},Cn=(()=>{try{return RegExp(`\\p{Separator}|\\p{Other}`,`gu`)}catch{return/[\s\u0000-\u001F\u007F-\u009F\u00AD]/g}})(),wn={" ":` `,"\b":`\\b`,"\f":`\\f`,"\n":`\\n`,"\r":`\\r`," ":`\\t`},Tn=65535,En=e=>Dn.test(e)?e:lt===`win32`?`"${e.replaceAll(`"`,`""`)}"`:`'${e.replaceAll(`'`,`'\\''`)}'`,Dn=/^[\w./-]+$/,On=ut?.WriteStream?.prototype?.hasColors?.()??!1,B=(e,t)=>{if(!On)return e=>e;let n=`\u001B[${e}m`,r=`\u001B[${t}m`;return e=>{let i=e+``,a=i.indexOf(r);if(a===-1)return n+i+r;let o=n,s=0,c=(t===22?r:``)+n;for(;a!==-1;)o+=i.slice(s,a)+c,s=a+r.length,a=i.indexOf(r,s);return o+=i.slice(s)+r,o}};B(0,0);const kn=B(1,22);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);const An=B(90,39);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);const jn=B(91,39);B(92,39);const Mn=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);const Nn=({type:e,message:t,timestamp:n,piped:r,commandId:i,result:{failed:a=!1}={},options:{reject:o=!0}})=>{let s=Pn(n),c=Ln[e]({failed:a,reject:o,piped:r}),l=zn[e]({reject:o});return`${An(`[${s}]`)} ${An(`[${i}]`)} ${l(c)} ${l(t)}`},Pn=e=>`${Fn(e.getHours(),2)}:${Fn(e.getMinutes(),2)}:${Fn(e.getSeconds(),2)}.${Fn(e.getMilliseconds(),3)}`,Fn=(e,t)=>String(e).padStart(t,`0`),In=({failed:e,reject:t})=>e?t?r.cross:r.warning:r.tick,Ln={command:({piped:e})=>e?`|`:`$`,output:()=>` `,ipc:()=>`*`,error:In,duration:In},Rn=e=>e,zn={command:()=>kn,output:()=>Rn,ipc:()=>Rn,error:({reject:e})=>e?jn:Mn,duration:()=>An},Bn=(e,t,n)=>{let r=mn(t,n);return e.map(({verboseLine:e,verboseObject:t})=>Vn(e,t,r)).filter(e=>e!==void 0).map(e=>Hn(e)).join(``)},Vn=(e,t,n)=>{if(n===void 0)return e;let r=n(e,t);if(typeof r==`string`)return r},Hn=e=>e.endsWith(`
|
|
8
|
+
`)?e:`${e}\n`,Un=({type:e,verboseMessage:t,fdNumber:n,verboseInfo:r,result:i})=>{let a=Bn(Gn(t,Wn({type:e,result:i,verboseInfo:r})),r,n);a!==``&&console.warn(a.slice(0,-1))},Wn=({type:e,result:t,verboseInfo:{escapedCommand:n,commandId:r,rawOptions:{piped:i=!1,...a}}})=>({type:e,escapedCommand:n,commandId:`${r}`,timestamp:new Date,piped:i,result:t,options:a}),Gn=(e,t)=>e.split(`
|
|
9
|
+
`).map(e=>Kn({...t,message:e})),Kn=e=>({verboseLine:Nn(e),verboseObject:e}),qn=e=>bn(typeof e==`string`?e:Qe(e)).replaceAll(` `,` `.repeat(Jn)),Jn=2,Yn=(e,t)=>{fn(t)&&Un({type:`command`,verboseMessage:e,verboseInfo:t})},Xn=(e,t,n)=>($n(e),{verbose:e,escapedCommand:t,commandId:Zn(e),rawOptions:n}),Zn=e=>fn({verbose:e})?Qn++:void 0;let Qn=0n;const $n=e=>{for(let t of e){if(t===!1)throw TypeError(`The "verbose: false" option was renamed to "verbose: 'none'".`);if(t===!0)throw TypeError(`The "verbose: true" option was renamed to "verbose: 'short'".`);if(!vn.includes(t)&&!_n(t)){let e=vn.map(e=>`'${e}'`).join(`, `);throw TypeError(`The "verbose" option must not be ${t}. Allowed values are: ${e} or a function.`)}}},er=()=>ct.bigint(),tr=e=>Number(ct.bigint()-e)/1e6,nr=(e,t,n)=>{let r=er(),{command:i,escapedCommand:a}=yn(e,t),o=Xn($t(n,`verbose`),a,{...n});return Yn(a,o),{command:i,escapedCommand:a,startTime:r,verboseInfo:o}};var rr=n(((t,n)=>{n.exports=o,o.sync=s;var r=e(`fs`);function i(e,t){var n=t.pathExt===void 0?process.env.PATHEXT:t.pathExt;if(!n||(n=n.split(`;`),n.indexOf(``)!==-1))return!0;for(var r=0;r<n.length;r++){var i=n[r].toLowerCase();if(i&&e.substr(-i.length).toLowerCase()===i)return!0}return!1}function a(e,t,n){return!e.isSymbolicLink()&&!e.isFile()?!1:i(t,n)}function o(e,t,n){r.stat(e,function(r,i){n(r,r?!1:a(i,e,t))})}function s(e,t){return a(r.statSync(e),e,t)}})),ir=n(((t,n)=>{n.exports=i,i.sync=a;var r=e(`fs`);function i(e,t,n){r.stat(e,function(e,r){n(e,e?!1:o(r,t))})}function a(e,t){return o(r.statSync(e),t)}function o(e,t){return e.isFile()&&s(e,t)}function s(e,t){var n=e.mode,r=e.uid,i=e.gid,a=t.uid===void 0?process.getuid&&process.getuid():t.uid,o=t.gid===void 0?process.getgid&&process.getgid():t.gid,s=64,c=8,l=1,u=s|c;return n&l||n&c&&i===o||n&s&&r===a||n&u&&a===0}})),ar=n(((t,n)=>{e(`fs`);var r=process.platform===`win32`||global.TESTING_WINDOWS?rr():ir();n.exports=i,i.sync=a;function i(e,t,n){if(typeof t==`function`&&(n=t,t={}),!n){if(typeof Promise!=`function`)throw TypeError(`callback not provided`);return new Promise(function(n,r){i(e,t||{},function(e,t){e?r(e):n(t)})})}r(e,t||{},function(e,r){e&&(e.code===`EACCES`||t&&t.ignoreErrors)&&(e=null,r=!1),n(e,r)})}function a(e,t){try{return r.sync(e,t||{})}catch(e){if(t&&t.ignoreErrors||e.code===`EACCES`)return!1;throw e}}})),or=n(((t,n)=>{let r=process.platform===`win32`||process.env.OSTYPE===`cygwin`||process.env.OSTYPE===`msys`,i=e(`path`),a=r?`;`:`:`,o=ar(),s=e=>Object.assign(Error(`not found: ${e}`),{code:`ENOENT`}),c=(e,t)=>{let n=t.colon||a,i=e.match(/\//)||r&&e.match(/\\/)?[``]:[...r?[process.cwd()]:[],...(t.path||process.env.PATH||``).split(n)],o=r?t.pathExt||process.env.PATHEXT||`.EXE;.CMD;.BAT;.COM`:``,s=r?o.split(n):[``];return r&&e.indexOf(`.`)!==-1&&s[0]!==``&&s.unshift(``),{pathEnv:i,pathExt:s,pathExtExe:o}},l=(e,t,n)=>{typeof t==`function`&&(n=t,t={}),t||={};let{pathEnv:r,pathExt:a,pathExtExe:l}=c(e,t),u=[],d=n=>new Promise((a,o)=>{if(n===r.length)return t.all&&u.length?a(u):o(s(e));let c=r[n],l=/^".*"$/.test(c)?c.slice(1,-1):c,d=i.join(l,e);a(f(!l&&/^\.[\\\/]/.test(e)?e.slice(0,2)+d:d,n,0))}),f=(e,n,r)=>new Promise((i,s)=>{if(r===a.length)return i(d(n+1));let c=a[r];o(e+c,{pathExt:l},(a,o)=>{if(!a&&o)if(t.all)u.push(e+c);else return i(e+c);return i(f(e,n,r+1))})});return n?d(0).then(e=>n(null,e),n):d(0)};n.exports=l,l.sync=(e,t)=>{t||={};let{pathEnv:n,pathExt:r,pathExtExe:a}=c(e,t),l=[];for(let s=0;s<n.length;s++){let c=n[s],u=/^".*"$/.test(c)?c.slice(1,-1):c,d=i.join(u,e),f=!u&&/^\.[\\\/]/.test(e)?e.slice(0,2)+d:d;for(let e=0;e<r.length;e++){let n=f+r[e];try{if(o.sync(n,{pathExt:a}))if(t.all)l.push(n);else return n}catch{}}}if(t.all&&l.length)return l;if(t.nothrow)return null;throw s(e)}})),sr=n(((e,t)=>{let n=(e={})=>{let t=e.env||process.env;return(e.platform||process.platform)===`win32`?Object.keys(t).reverse().find(e=>e.toUpperCase()===`PATH`)||`Path`:`PATH`};t.exports=n,t.exports.default=n})),cr=n(((t,n)=>{let r=e(`path`),i=or(),a=sr();function o(e,t){let n=e.options.env||process.env,o=process.cwd(),s=e.options.cwd!=null,c=s&&process.chdir!==void 0&&!process.chdir.disabled;if(c)try{process.chdir(e.options.cwd)}catch{}let l;try{l=i.sync(e.command,{path:n[a({env:n})],pathExt:t?r.delimiter:void 0})}catch{}finally{c&&process.chdir(o)}return l&&=r.resolve(s?e.options.cwd:``,l),l}function s(e){return o(e)||o(e,!0)}n.exports=s})),lr=n(((e,t)=>{let n=/([()\][%!^"`<>&|;, *?])/g;function r(e){return e=e.replace(n,`^$1`),e}function i(e,t){return e=`${e}`,e=e.replace(/(?=(\\+?)?)\1"/g,`$1$1\\"`),e=e.replace(/(?=(\\+?)?)\1$/,`$1$1`),e=`"${e}"`,e=e.replace(n,`^$1`),t&&(e=e.replace(n,`^$1`)),e}t.exports.command=r,t.exports.argument=i})),ur=n(((e,t)=>{t.exports=/^#!(.*)/})),dr=n(((e,t)=>{let n=ur();t.exports=(e=``)=>{let t=e.match(n);if(!t)return null;let[r,i]=t[0].replace(/#! ?/,``).split(` `),a=r.split(`/`).pop();return a===`env`?i:i?`${a} ${i}`:a}})),fr=n(((t,n)=>{let r=e(`fs`),i=dr();function a(e){let t=Buffer.alloc(150),n;try{n=r.openSync(e,`r`),r.readSync(n,t,0,150,0),r.closeSync(n)}catch{}return i(t.toString())}n.exports=a})),pr=n(((t,n)=>{let r=e(`path`),i=cr(),a=lr(),o=fr(),s=process.platform===`win32`,c=/\.(?:com|exe)$/i,l=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function u(e){e.file=i(e);let t=e.file&&o(e.file);return t?(e.args.unshift(e.file),e.command=t,i(e)):e.file}function d(e){if(!s)return e;let t=u(e),n=!c.test(t);if(e.options.forceShell||n){let n=l.test(t);e.command=r.normalize(e.command),e.command=a.command(e.command),e.args=e.args.map(e=>a.argument(e,n)),e.args=[`/d`,`/s`,`/c`,`"${[e.command].concat(e.args).join(` `)}"`],e.command=process.env.comspec||`cmd.exe`,e.options.windowsVerbatimArguments=!0}return e}function f(e,t,n){t&&!Array.isArray(t)&&(n=t,t=null),t=t?t.slice(0):[],n=Object.assign({},n);let r={command:e,args:t,options:n,file:void 0,original:{command:e,args:t}};return n.shell?r:d(r)}n.exports=f})),mr=n(((e,t)=>{let n=process.platform===`win32`;function r(e,t){return Object.assign(Error(`${t} ${e.command} ENOENT`),{code:`ENOENT`,errno:`ENOENT`,syscall:`${t} ${e.command}`,path:e.command,spawnargs:e.args})}function i(e,t){if(!n)return;let r=e.emit;e.emit=function(n,i){if(n===`exit`){let n=a(i,t);if(n)return r.call(e,`error`,n)}return r.apply(e,arguments)}}function a(e,t){return n&&e===1&&!t.file?r(t.original,`spawn`):null}function o(e,t){return n&&e===1&&!t.file?r(t.original,`spawnSync`):null}t.exports={hookChildProcess:i,verifyENOENT:a,verifyENOENTSync:o,notFoundError:r}})),hr=n(((t,n)=>{let r=e(`child_process`),i=pr(),a=mr();function o(e,t,n){let o=i(e,t,n),s=r.spawn(o.command,o.args,o.options);return a.hookChildProcess(s,o),s}function s(e,t,n){let o=i(e,t,n),s=r.spawnSync(o.command,o.args,o.options);return s.error=s.error||a.verifyENOENTSync(s.status,o),s}n.exports=o,n.exports.spawn=o,n.exports.sync=s,n.exports._parse=i,n.exports._enoent=a}));function gr(e={}){let{env:t=process.env,platform:n=process.platform}=e;return n===`win32`?Object.keys(t).reverse().find(e=>e.toUpperCase()===`PATH`)||`Path`:`PATH`}const _r=({cwd:e=j.cwd(),path:t=j.env[gr()],preferLocal:n=!0,execPath:r=j.execPath,addExecPath:i=!0}={})=>{let a=O.resolve(te(e)),o=[],s=t.split(O.delimiter);return n&&vr(o,s,a),i&&yr(o,s,r,a),t===``||t===O.delimiter?`${o.join(O.delimiter)}${t}`:[...o,t].join(O.delimiter)},vr=(e,t,n)=>{for(let r of re(n)){let n=O.join(r,`node_modules/.bin`);t.includes(n)||e.push(n)}},yr=(e,t,n,r)=>{let i=O.resolve(r,te(n),`..`);t.includes(i)||e.push(i)},br=({env:e=j.env,...t}={})=>{e={...e};let n=gr({env:e});return t.path=e[n],e[n]=_r(t),e},xr=(e,t,n)=>new(n?Or:Dr)(t,e instanceof Sr?{}:{cause:e});var Sr=class extends Error{};const Cr=(e,t)=>{Object.defineProperty(e.prototype,`name`,{value:t,writable:!0,enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,Tr,{value:!0,writable:!1,enumerable:!1,configurable:!1})},wr=e=>Er(e)&&Tr in e,Tr=Symbol(`isExecaError`),Er=e=>Object.prototype.toString.call(e)===`[object Error]`;var Dr=class extends Error{};Cr(Dr,Dr.name);var Or=class extends Error{};Cr(Or,Or.name);const kr=()=>{let e=64-jr+1;return Array.from({length:e},Ar)},Ar=(e,t)=>({name:`SIGRT${t+1}`,number:jr+t,action:`terminate`,description:`Application-specific signal (realtime)`,standard:`posix`}),jr=34,Mr=[{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`}],Nr=()=>{let e=kr();return[...Mr,...e].map(Pr)},Pr=({name:e,number:t,description:n,action:r,forced:i=!1,standard:a})=>{let{signals:{[e]:o}}=D,s=o!==void 0;return{name:e,number:s?o:t,description:n,supported:s,action:r,forced:i,standard:a}},Fr=()=>{let e=Nr();return Object.fromEntries(e.map(Ir))},Ir=({name:e,number:t,description:n,supported:r,action:i,forced:a,standard:o})=>[e,{name:e,number:t,description:n,supported:r,action:i,forced:a,standard:o}],Lr=Fr(),Rr=()=>{let e=Nr(),t=Array.from({length:65},(t,n)=>zr(n,e));return Object.assign({},...t)},zr=(e,t)=>{let n=Br(e,t);if(n===void 0)return{};let{name:r,description:i,supported:a,action:o,forced:s,standard:c}=n;return{[e]:{name:r,number:e,description:i,supported:a,action:o,forced:s,standard:c}}},Br=(e,t)=>{let n=t.find(({name:t})=>D.signals[t]===e);return n===void 0?t.find(t=>t.number===e):n};Rr();const Vr=e=>{let t="option `killSignal`";if(e===0)throw TypeError(`Invalid ${t}: 0 cannot be used.`);return Ur(e,t)},Hr=e=>e===0?e:Ur(e,"`subprocess.kill()`'s argument"),Ur=(e,t)=>{if(Number.isInteger(e))return Wr(e,t);if(typeof e==`string`)return Kr(e,t);throw TypeError(`Invalid ${t} ${String(e)}: it must be a string or an integer.\n${qr()}`)},Wr=(e,t)=>{if(Gr.has(e))return Gr.get(e);throw TypeError(`Invalid ${t} ${e}: this signal integer does not exist.\n${qr()}`)},Gr=new Map(Object.entries(D.signals).reverse().map(([e,t])=>[t,e])),Kr=(e,t)=>{if(e in D.signals)return e;throw e.toUpperCase()in D.signals?TypeError(`Invalid ${t} '${e}': please rename it to '${e.toUpperCase()}'.`):TypeError(`Invalid ${t} '${e}': this signal name does not exist.\n${qr()}`)},qr=()=>`Available signal names: ${Jr()}.
|
|
10
|
+
Available signal numbers: ${Yr()}.`,Jr=()=>Object.keys(D.signals).sort().map(e=>`'${e}'`).join(`, `),Yr=()=>[...new Set(Object.values(D.signals).sort((e,t)=>e-t))].join(`, `),Xr=e=>Lr[e].description,Zr=e=>{if(e===!1)return e;if(e===!0)return Qr;if(!Number.isFinite(e)||e<0)throw TypeError(`Expected the \`forceKillAfterDelay\` option to be a non-negative integer, got \`${e}\` (${typeof e})`);return e},Qr=1e3*5,$r=({kill:e,options:{forceKillAfterDelay:t,killSignal:n},onInternalError:r,context:i,controller:a},o,s)=>{let{signal:c,error:l}=ei(o,s,n);ti(l,r);let u=e(c);return ni({kill:e,signal:c,forceKillAfterDelay:t,killSignal:n,killResult:u,context:i,controller:a}),u},ei=(e,t,n)=>{let[r=n,i]=Er(e)?[void 0,e]:[e,t];if(typeof r!=`string`&&!Number.isInteger(r))throw TypeError(`The first argument must be an error instance or a signal name string/integer: ${String(r)}`);if(i!==void 0&&!Er(i))throw TypeError(`The second argument is optional. If specified, it must be an error instance: ${i}`);return{signal:Hr(r),error:i}},ti=(e,t)=>{e!==void 0&&t.reject(e)},ni=async({kill:e,signal:t,forceKillAfterDelay:n,killSignal:r,killResult:i,context:a,controller:o})=>{t===r&&i&&ri({kill:e,forceKillAfterDelay:n,context:a,controllerSignal:o.signal})},ri=async({kill:e,forceKillAfterDelay:t,context:n,controllerSignal:r})=>{if(t!==!1)try{await pt(t,void 0,{signal:r}),e(`SIGKILL`)&&(n.isForcefullyTerminated??=!0)}catch{}},ii=async(e,t)=>{e.aborted||await E(e,`abort`,{signal:t})},ai=({cancelSignal:e})=>{if(e!==void 0&&Object.prototype.toString.call(e)!==`[object AbortSignal]`)throw Error(`The \`cancelSignal\` option must be an AbortSignal: ${String(e)}`)},oi=({subprocess:e,cancelSignal:t,gracefulCancel:n,context:r,controller:i})=>t===void 0||n?[]:[si(e,t,r,i)],si=async(e,t,n,{signal:r})=>{throw await ii(t,r),n.terminationReason??=`cancel`,e.kill(),t.reason},ci=({methodName:e,isSubprocess:t,ipc:n,isConnected:r})=>{li(e,t,n),ui(e,t,r)},li=(e,t,n)=>{if(!n)throw Error(`${V(e,t)} can only be used if the \`ipc\` option is \`true\`.`)},ui=(e,t,n)=>{if(!n)throw Error(`${V(e,t)} cannot be used: the ${H(t)} has already exited or disconnected.`)},di=e=>{throw Error(`${V(`getOneMessage`,e)} could not complete: the ${H(e)} exited or disconnected.`)},fi=e=>{throw Error(`${V(`sendMessage`,e)} failed: the ${H(e)} is sending a message too, instead of listening to incoming messages.
|
|
11
|
+
This can be fixed by both sending a message and listening to incoming messages at the same time:
|
|
12
|
+
|
|
13
|
+
const [receivedMessage] = await Promise.all([
|
|
14
|
+
${V(`getOneMessage`,e)},
|
|
15
|
+
${V(`sendMessage`,e,`message, {strict: true}`)},
|
|
16
|
+
]);`)},pi=(e,t)=>Error(`${V(`sendMessage`,t)} failed when sending an acknowledgment response to the ${H(t)}.`,{cause:e}),mi=e=>{throw Error(`${V(`sendMessage`,e)} failed: the ${H(e)} is not listening to incoming messages.`)},hi=e=>{throw Error(`${V(`sendMessage`,e)} failed: the ${H(e)} exited without listening to incoming messages.`)},gi=()=>Error(`\`cancelSignal\` aborted: the ${H(!0)} disconnected.`),_i=()=>{throw Error("`getCancelSignal()` cannot be used without setting the `cancelSignal` subprocess option.")},vi=({error:e,methodName:t,isSubprocess:n})=>{if(e.code===`EPIPE`)throw Error(`${V(t,n)} cannot be used: the ${H(n)} is disconnecting.`,{cause:e})},yi=({error:e,methodName:t,isSubprocess:n,message:r})=>{if(bi(e))throw Error(`${V(t,n)}'s argument type is invalid: the message cannot be serialized: ${String(r)}.`,{cause:e})},bi=({code:e,message:t})=>xi.has(e)||Si.some(e=>t.includes(e)),xi=new Set([`ERR_MISSING_ARGS`,`ERR_INVALID_ARG_TYPE`]),Si=[`could not be cloned`,`circular structure`,`call stack size exceeded`],V=(e,t,n=``)=>e===`cancelSignal`?"`cancelSignal`'s `controller.abort()`":`${Ci(t)}${e}(${n})`,Ci=e=>e?``:`subprocess.`,H=e=>e?`parent process`:`subprocess`,wi=e=>{e.connected&&e.disconnect()},Ti=()=>{let e={},t=new Promise((t,n)=>{Object.assign(e,{resolve:t,reject:n})});return Object.assign(t,e)},Ei=(e,t=`stdin`)=>{let{options:n,fileDescriptors:r}=U.get(e),i=Oi(r,t,!0),a=e.stdio[i];if(a===null)throw TypeError(ji(i,t,n,!0));return a},Di=(e,t=`stdout`)=>{let{options:n,fileDescriptors:r}=U.get(e),i=Oi(r,t,!1),a=i===`all`?e.all:e.stdio[i];if(a==null)throw TypeError(ji(i,t,n,!1));return a},U=new WeakMap,Oi=(e,t,n)=>{let r=ki(t,n);return Ai(r,t,n,e),r},ki=(e,t)=>{let n=sn(e);if(n!==void 0)return n;let{validOptions:r,defaultValue:i}=t?{validOptions:`"stdin"`,defaultValue:`stdin`}:{validOptions:`"stdout", "stderr", "all"`,defaultValue:`stdout`};throw TypeError(`"${Pi(t)}" must not be "${e}".
|
|
17
|
+
It must be ${r} or "fd3", "fd4" (and so on).
|
|
18
|
+
It is optional and defaults to "${i}".`)},Ai=(e,t,n,r)=>{let i=r[Ni(e)];if(i===void 0)throw TypeError(`"${Pi(n)}" must not be ${t}. That file descriptor does not exist.
|
|
19
|
+
Please set the "stdio" option to ensure that file descriptor exists.`);if(i.direction===`input`&&!n)throw TypeError(`"${Pi(n)}" must not be ${t}. It must be a readable stream, not writable.`);if(i.direction!==`input`&&n)throw TypeError(`"${Pi(n)}" must not be ${t}. It must be a writable stream, not readable.`)},ji=(e,t,n,r)=>{if(e===`all`&&!n.all)return`The "all" option must be true to use "from: 'all'".`;let{optionName:i,optionValue:a}=Mi(e,n);return`The "${i}: ${Fi(a)}" option is incompatible with using "${Pi(r)}: ${Fi(t)}".
|
|
20
|
+
Please set this option with "pipe" instead.`},Mi=(e,{stdin:t,stdout:n,stderr:r,stdio:i})=>{let a=Ni(e);return a===0&&t!==void 0?{optionName:`stdin`,optionValue:t}:a===1&&n!==void 0?{optionName:`stdout`,optionValue:n}:a===2&&r!==void 0?{optionName:`stderr`,optionValue:r}:{optionName:`stdio[${a}]`,optionValue:i[a]}},Ni=e=>e===`all`?1:e,Pi=e=>e?`to`:`from`,Fi=e=>typeof e==`string`?`'${e}'`:typeof e==`number`?`${e}`:`Stream`,Ii=(e,t,n)=>{let r=e.getMaxListeners();r===0||r===1/0||(e.setMaxListeners(r+t),Re(n,()=>{e.setMaxListeners(e.getMaxListeners()-t)}))},Li=(e,t)=>{t&&Ri(e)},Ri=e=>{e.refCounted()},zi=(e,t)=>{t&&Bi(e)},Bi=e=>{e.unrefCounted()},Vi=(e,t)=>{t&&(Bi(e),Bi(e))},Hi=(e,t)=>{t&&(Ri(e),Ri(e))},Ui=async({anyProcess:e,channel:t,isSubprocess:n,ipcEmitter:r},i)=>{if(ea(i)||xa(i))return;Gi.has(e)||Gi.set(e,[]);let a=Gi.get(e);if(a.push(i),!(a.length>1))for(;a.length>0;){await ca(e,r,i),await dt.yield();let o=await $i({wrappedMessage:a[0],anyProcess:e,channel:t,isSubprocess:n,ipcEmitter:r});a.shift(),r.emit(`message`,o),r.emit(`message:done`)}},Wi=async({anyProcess:e,channel:t,isSubprocess:n,ipcEmitter:r,boundOnMessage:i})=>{Ca();let a=Gi.get(e);for(;a?.length>0;)await E(r,`message:done`);e.removeListener(`message`,i),Hi(t,n),r.connected=!1,r.emit(`disconnect`)},Gi=new WeakMap,Ki=(e,t,n)=>{if(qi.has(e))return qi.get(e);let r=new Le;return r.connected=!0,qi.set(e,r),Ji({ipcEmitter:r,anyProcess:e,channel:t,isSubprocess:n}),r},qi=new WeakMap,Ji=({ipcEmitter:e,anyProcess:t,channel:n,isSubprocess:r})=>{let i=Ui.bind(void 0,{anyProcess:t,channel:n,isSubprocess:r,ipcEmitter:e});t.on(`message`,i),t.once(`disconnect`,Wi.bind(void 0,{anyProcess:t,channel:n,isSubprocess:r,ipcEmitter:e,boundOnMessage:i})),Vi(n,r)},Yi=e=>{let t=qi.get(e);return t===void 0?e.channel!==null:t.connected},Xi=({anyProcess:e,channel:t,isSubprocess:n,message:r,strict:i})=>{if(!i)return r;let a=ua(e,Ki(e,t,n));return{id:Zi++,type:ia,message:r,hasListeners:a}};let Zi=0n;const Qi=(e,t)=>{if(!(t?.type!==ia||t.hasListeners))for(let{id:t}of e)t!==void 0&&na[t].resolve({isDeadlock:!0,hasListeners:!1})},$i=async({wrappedMessage:e,anyProcess:t,channel:n,isSubprocess:r,ipcEmitter:i})=>{if(e?.type!==ia||!t.connected)return e;let{id:a,message:o}=e,s={id:a,type:aa,message:ua(t,i)};try{await fa({anyProcess:t,channel:n,isSubprocess:r,ipc:!0},s)}catch(e){i.emit(`strict:error`,e)}return o},ea=e=>{if(e?.type!==aa)return!1;let{id:t,message:n}=e;return na[t]?.resolve({isDeadlock:!1,hasListeners:n}),!0},ta=async(e,t,n)=>{if(e?.type!==ia)return;let r=Ti();na[e.id]=r;let i=new AbortController;try{let{isDeadlock:e,hasListeners:a}=await Promise.race([r,ra(t,n,i)]);e&&fi(n),a||mi(n)}finally{i.abort(),delete na[e.id]}},na={},ra=async(e,t,{signal:n})=>{Ii(e,1,n),await E(e,`disconnect`,{signal:n}),hi(t)},ia=`execa:ipc:request`,aa=`execa:ipc:response`,oa=(e,t,n)=>{la.has(e)||la.set(e,new Set);let r=la.get(e),i={onMessageSent:Ti(),id:n?t.id:void 0};return r.add(i),{outgoingMessages:r,outgoingMessage:i}},sa=({outgoingMessages:e,outgoingMessage:t})=>{e.delete(t),t.onMessageSent.resolve()},ca=async(e,t,n)=>{for(;!ua(e,t)&&la.get(e)?.size>0;){let t=[...la.get(e)];Qi(t,n),await Promise.all(t.map(({onMessageSent:e})=>e))}},la=new WeakMap,ua=(e,t)=>t.listenerCount(`message`)>da(e),da=e=>U.has(e)&&!z(U.get(e).options.buffer,`ipc`)?1:0,fa=({anyProcess:e,channel:t,isSubprocess:n,ipc:r},i,{strict:a=!1}={})=>{let o=`sendMessage`;return ci({methodName:o,isSubprocess:n,ipc:r,isConnected:e.connected}),pa({anyProcess:e,channel:t,methodName:o,isSubprocess:n,message:i,strict:a})},pa=async({anyProcess:e,channel:t,methodName:n,isSubprocess:r,message:i,strict:a})=>{let o=Xi({anyProcess:e,channel:t,isSubprocess:r,message:i,strict:a}),s=oa(e,o,a);try{await ma({anyProcess:e,methodName:n,isSubprocess:r,wrappedMessage:o,message:i})}catch(t){throw wi(e),t}finally{sa(s)}},ma=async({anyProcess:e,methodName:t,isSubprocess:n,wrappedMessage:r,message:i})=>{let a=ha(e);try{await Promise.all([ta(r,e,n),a(r)])}catch(e){throw vi({error:e,methodName:t,isSubprocess:n}),yi({error:e,methodName:t,isSubprocess:n,message:i}),e}},ha=e=>{if(ga.has(e))return ga.get(e);let t=$e(e.send.bind(e));return ga.set(e,t),t},ga=new WeakMap,_a=(e,t)=>{let n=`cancelSignal`;return ui(n,!1,e.connected),ma({anyProcess:e,methodName:n,isSubprocess:!1,wrappedMessage:{type:Sa,message:t},message:t})},va=async({anyProcess:e,channel:t,isSubprocess:n,ipc:r})=>(await ya({anyProcess:e,channel:t,isSubprocess:n,ipc:r}),wa.signal),ya=async({anyProcess:e,channel:t,isSubprocess:n,ipc:r})=>{if(!ba){if(ba=!0,!r){_i();return}if(t===null){Ca();return}Ki(e,t,n),await dt.yield()}};let ba=!1;const xa=e=>e?.type===Sa?(wa.abort(e.message),!0):!1,Sa=`execa:ipc:cancel`,Ca=()=>{wa.abort(gi())},wa=new AbortController,Ta=({gracefulCancel:e,cancelSignal:t,ipc:n,serialization:r})=>{if(e){if(t===void 0)throw Error("The `cancelSignal` option must be defined when setting the `gracefulCancel` option.");if(!n)throw Error("The `ipc` option cannot be false when setting the `gracefulCancel` option.");if(r===`json`)throw Error("The `serialization` option cannot be 'json' when setting the `gracefulCancel` option.")}},Ea=({subprocess:e,cancelSignal:t,gracefulCancel:n,forceKillAfterDelay:r,context:i,controller:a})=>n?[Da({subprocess:e,cancelSignal:t,forceKillAfterDelay:r,context:i,controller:a})]:[],Da=async({subprocess:e,cancelSignal:t,forceKillAfterDelay:n,context:r,controller:{signal:i}})=>{throw await ii(t,i),await _a(e,Oa(t)),ri({kill:e.kill,forceKillAfterDelay:n,context:r,controllerSignal:i}),r.terminationReason??=`gracefulCancel`,t.reason},Oa=({reason:e})=>{if(!(e instanceof DOMException))return e;let t=Error(e.message);return Object.defineProperty(t,`stack`,{value:e.stack,enumerable:!1,configurable:!0,writable:!0}),t},ka=({timeout:e})=>{if(e!==void 0&&(!Number.isFinite(e)||e<0))throw TypeError(`Expected the \`timeout\` option to be a non-negative integer, got \`${e}\` (${typeof e})`)},Aa=(e,t,n,r)=>t===0||t===void 0?[]:[ja(e,t,n,r)],ja=async(e,t,n,{signal:r})=>{throw await pt(t,void 0,{signal:r}),n.terminationReason??=`timeout`,e.kill(),new Sr},Ma=({options:e})=>{if(e.node===!1)throw TypeError('The "node" option cannot be false with `execaNode()`.');return{options:{...e,node:!0}}},Na=(e,t,{node:n=!1,nodePath:r=st,nodeOptions:i=ot.filter(e=>!e.startsWith(`--inspect`)),cwd:a,execPath:o,...s})=>{if(o!==void 0)throw TypeError(`The "execPath" option has been removed. Please use the "nodePath" option instead.`);let c=wt(r,`The "nodePath" option`),l=O.resolve(a,c),u={...s,nodePath:l,node:n,cwd:a};if(!n)return[e,t,u];if(O.basename(e,`.exe`)===`node`)throw TypeError(`When the "node" option is true, the first argument does not need to be "node".`);return[l,[...i,e,...t],{ipc:!0,...u,shell:!1}]},Pa=({ipcInput:e,ipc:t,serialization:n})=>{if(e!==void 0){if(!t)throw Error("The `ipcInput` option cannot be set unless the `ipc` option is `true`.");Fa[n](e)}},Fa={advanced:e=>{try{_t(e)}catch(e){throw Error("The `ipcInput` option is not serializable with a structured clone.",{cause:e})}},json:e=>{try{JSON.stringify(e)}catch(e){throw Error("The `ipcInput` option is not serializable with JSON.",{cause:e})}}},Ia=async(e,t)=>{t!==void 0&&await e.sendMessage(t)},La=({encoding:e})=>{if(za.has(e))return;let t=Ba(e);if(t!==void 0)throw TypeError(`Invalid option \`encoding: ${Ha(e)}\`.
|
|
21
|
+
Please rename it to ${Ha(t)}.`);let n=[...za].map(e=>Ha(e)).join(`, `);throw TypeError(`Invalid option \`encoding: ${Ha(e)}\`.
|
|
22
|
+
Please rename it to one of: ${n}.`)},Ra=new Set([`utf8`,`utf16le`]),W=new Set([`buffer`,`hex`,`base64`,`base64url`,`latin1`,`ascii`]),za=new Set([...Ra,...W]),Ba=e=>{if(e===null)return`buffer`;if(typeof e!=`string`)return;let t=e.toLowerCase();if(t in Va)return Va[t];if(za.has(t))return t},Va={"utf-8":`utf8`,"utf-16le":`utf16le`,"ucs-2":`utf16le`,ucs2:`utf16le`,binary:`latin1`},Ha=e=>typeof e==`string`?`"${e}"`:String(e),Ua=(e=Wa())=>{let t=wt(e,`The "cwd" option`);return O.resolve(t)},Wa=()=>{try{return j.cwd()}catch(e){throw e.message=`The current directory does not exist.\n${e.message}`,e}},Ga=(e,t)=>{if(t===Wa())return e;let n;try{n=Je(t)}catch(n){return`The "cwd" option is invalid: ${t}.\n${n.message}\n${e}`}return n.isDirectory()?e:`The "cwd" option is not a directory: ${t}.\n${e}`};var Ka=t(hr(),1);const qa=(e,t,n)=>{n.cwd=Ua(n.cwd);let[r,i,a]=Na(e,t,n),{command:o,args:s,options:c}=Ka.default._parse(r,i,a),l=Ja(Qt(c));return ka(l),La(l),Pa(l),ai(l),Ta(l),l.shell=Dt(l.shell),l.env=Ya(l),l.killSignal=Vr(l.killSignal),l.forceKillAfterDelay=Zr(l.forceKillAfterDelay),l.lines=l.lines.map((e,t)=>e&&!W.has(l.encoding)&&l.buffer[t]),j.platform===`win32`&&O.basename(o,`.exe`)===`cmd`&&s.unshift(`/q`),{file:o,commandArguments:s,options:l}},Ja=({extendEnv:e=!0,preferLocal:t=!1,cwd:n,localDir:r=n,encoding:i=`utf8`,reject:a=!0,cleanup:o=!0,all:s=!1,windowsHide:c=!0,killSignal:l=`SIGTERM`,forceKillAfterDelay:u=!0,gracefulCancel:d=!1,ipcInput:f,ipc:p=f!==void 0||d,serialization:m=`advanced`,...h})=>({...h,extendEnv:e,preferLocal:t,cwd:n,localDirectory:r,encoding:i,reject:a,cleanup:o,all:s,windowsHide:c,killSignal:l,forceKillAfterDelay:u,gracefulCancel:d,ipcInput:f,ipc:p,serialization:m}),Ya=({env:e,extendEnv:t,preferLocal:n,node:r,localDirectory:i,nodePath:a})=>{let o=t?{...j.env,...e}:e;return n||r?br({env:o,cwd:i,execPath:a,preferLocal:n,addExecPath:r}):o},Xa=(e,t,n)=>n.shell&&t.length>0?[[e,...t].join(` `),[],n]:[e,t,n];function Za(e){if(typeof e==`string`)return Qa(e);if(!(ArrayBuffer.isView(e)&&e.BYTES_PER_ELEMENT===1))throw Error(`Input must be a string or a Uint8Array`);return $a(e)}const Qa=e=>e.at(-1)===eo?e.slice(0,e.at(-2)===no?-2:-1):e,$a=e=>e.at(-1)===to?e.subarray(0,e.at(-2)===ro?-2:-1):e,eo=`
|
|
23
|
+
`,to=`
|
|
24
|
+
`.codePointAt(0),no=`\r`,ro=`\r`.codePointAt(0),io=({error:e,stream:t,readableObjectMode:n,lines:r,encoding:i,fdNumber:a})=>{if(!(e instanceof C))throw e;if(a===`all`)return e;throw e.maxBufferInfo={fdNumber:a,unit:ao(n,r,i)},t.destroy(),e},ao=(e,t,n)=>e?`objects`:t?`lines`:n===`buffer`?`bytes`:`characters`,oo=(e,t,n)=>{if(t.length!==n)return;let r=new C;throw r.maxBufferInfo={fdNumber:`ipc`},r},so=(e,t)=>{let{streamName:n,threshold:r,unit:i}=co(e,t);return`Command's ${n} was larger than ${r} ${i}`},co=(e,t)=>{if(e?.maxBufferInfo===void 0)return{streamName:`output`,threshold:t[1],unit:`bytes`};let{maxBufferInfo:{fdNumber:n,unit:r}}=e;delete e.maxBufferInfo;let i=z(t,n);return n===`ipc`?{streamName:`IPC output`,threshold:i,unit:`messages`}:{streamName:Zt(n),threshold:i,unit:r}},lo=(e,t,n)=>e?.code===`ENOBUFS`&&t!==null&&t.some(e=>e!==null&&e.length>fo(n)),uo=(e,t,n)=>{if(!t)return e;let r=fo(n);return e.length>r?e.slice(0,r):e},fo=([,e])=>e,po=({stdio:e,all:t,ipcOutput:n,originalError:r,signal:i,signalDescription:a,exitCode:o,escapedCommand:s,timedOut:c,isCanceled:l,isGracefullyCanceled:u,isMaxBuffer:d,isForcefullyTerminated:f,forceKillAfterDelay:p,killSignal:m,maxBuffer:h,timeout:g,cwd:_})=>{let v=r?.code,y=mo({originalError:r,timedOut:c,timeout:g,isMaxBuffer:d,maxBuffer:h,errorCode:v,signal:i,signalDescription:a,exitCode:o,isCanceled:l,isGracefullyCanceled:u,isForcefullyTerminated:f,forceKillAfterDelay:p,killSignal:m}),b=go(r,_),x=`${y}: ${s}${b===void 0?``:`\n${b}`}`;return{originalMessage:b,shortMessage:x,message:[x,...t===void 0?[e[2],e[1]]:[t],...e.slice(3),n.map(e=>_o(e)).join(`
|
|
25
|
+
`)].map(e=>bn(Za(vo(e)))).filter(Boolean).join(`
|
|
26
|
+
|
|
27
|
+
`)}},mo=({originalError:e,timedOut:t,timeout:n,isMaxBuffer:r,maxBuffer:i,errorCode:a,signal:o,signalDescription:s,exitCode:c,isCanceled:l,isGracefullyCanceled:u,isForcefullyTerminated:d,forceKillAfterDelay:f,killSignal:p})=>{let m=ho(d,f);return t?`Command timed out after ${n} milliseconds${m}`:u?o===void 0?`Command was gracefully canceled with exit code ${c}`:d?`Command was gracefully canceled${m}`:`Command was gracefully canceled with ${o} (${s})`:l?`Command was canceled${m}`:r?`${so(e,i)}${m}`:a===void 0?d?`Command was killed with ${p} (${Xr(p)})${m}`:o===void 0?c===void 0?`Command failed`:`Command failed with exit code ${c}`:`Command was killed with ${o} (${s})`:`Command failed with ${a}${m}`},ho=(e,t)=>e?` and was forcefully terminated after ${t} milliseconds`:``,go=(e,t)=>{if(e instanceof Sr)return;let n=bn(Ga(wr(e)?e.originalMessage:String(e?.message??e),t));return n===``?void 0:n},_o=e=>typeof e==`string`?e:Qe(e),vo=e=>Array.isArray(e)?e.map(e=>Za(yo(e))).filter(Boolean).join(`
|
|
28
|
+
`):yo(e),yo=e=>typeof e==`string`?e:F(e)?Pt(e):``,bo=({command:e,escapedCommand:t,stdio:n,all:r,ipcOutput:i,options:{cwd:a},startTime:o})=>wo({command:e,escapedCommand:t,cwd:a,durationMs:tr(o),failed:!1,timedOut:!1,isCanceled:!1,isGracefullyCanceled:!1,isTerminated:!1,isMaxBuffer:!1,isForcefullyTerminated:!1,exitCode:0,stdout:n[1],stderr:n[2],all:r,stdio:n,ipcOutput:i,pipedFrom:[]}),xo=({error:e,command:t,escapedCommand:n,fileDescriptors:r,options:i,startTime:a,isSync:o})=>So({error:e,command:t,escapedCommand:n,startTime:a,timedOut:!1,isCanceled:!1,isGracefullyCanceled:!1,isMaxBuffer:!1,isForcefullyTerminated:!1,stdio:Array.from({length:r.length}),ipcOutput:[],options:i,isSync:o}),So=({error:e,command:t,escapedCommand:n,startTime:r,timedOut:i,isCanceled:a,isGracefullyCanceled:o,isMaxBuffer:s,isForcefullyTerminated:c,exitCode:l,signal:u,stdio:d,all:f,ipcOutput:p,options:{timeoutDuration:m,timeout:h=m,forceKillAfterDelay:g,killSignal:_,cwd:v,maxBuffer:y},isSync:b})=>{let{exitCode:x,signal:S,signalDescription:C}=To(l,u),{originalMessage:ee,shortMessage:te,message:ne}=po({stdio:d,all:f,ipcOutput:p,originalError:e,signal:S,signalDescription:C,exitCode:x,escapedCommand:n,timedOut:i,isCanceled:a,isGracefullyCanceled:o,isMaxBuffer:s,isForcefullyTerminated:c,forceKillAfterDelay:g,killSignal:_,maxBuffer:y,timeout:h,cwd:v}),re=xr(e,ne,b);return Object.assign(re,Co({error:re,command:t,escapedCommand:n,startTime:r,timedOut:i,isCanceled:a,isGracefullyCanceled:o,isMaxBuffer:s,isForcefullyTerminated:c,exitCode:x,signal:S,signalDescription:C,stdio:d,all:f,ipcOutput:p,cwd:v,originalMessage:ee,shortMessage:te})),re},Co=({error:e,command:t,escapedCommand:n,startTime:r,timedOut:i,isCanceled:a,isGracefullyCanceled:o,isMaxBuffer:s,isForcefullyTerminated:c,exitCode:l,signal:u,signalDescription:d,stdio:f,all:p,ipcOutput:m,cwd:h,originalMessage:g,shortMessage:_})=>wo({shortMessage:_,originalMessage:g,command:t,escapedCommand:n,cwd:h,durationMs:tr(r),failed:!0,timedOut:i,isCanceled:a,isGracefullyCanceled:o,isTerminated:u!==void 0,isMaxBuffer:s,isForcefullyTerminated:c,exitCode:l,signal:u,signalDescription:d,code:e.cause?.code,stdout:f[1],stderr:f[2],all:p,stdio:f,ipcOutput:m,pipedFrom:[]}),wo=e=>Object.fromEntries(Object.entries(e).filter(([,e])=>e!==void 0)),To=(e,t)=>{let n=e===null?void 0:e,r=t===null?void 0:t;return{exitCode:n,signal:r,signalDescription:r===void 0?void 0:Xr(t)}},Eo=e=>Number.isFinite(e)?e:0;function Do(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(Eo(e*1e3)%1e3),nanoseconds:Math.trunc(Eo(e*1e6)%1e3)}}function Oo(e){return{days:e/86400000n,hours:e/3600000n%24n,minutes:e/60000n%60n,seconds:e/1000n%60n,milliseconds:e%1000n,microseconds:0n,nanoseconds:0n}}function ko(e){switch(typeof e){case`number`:if(Number.isFinite(e))return Do(e);break;case`bigint`:return Oo(e)}throw TypeError(`Expected a finite number or bigint`)}const Ao=e=>e===0||e===0n,jo=(e,t)=>t===1||t===1n?e:`${e}s`,Mo=24n*60n*60n*1000n;function No(e,t){let n=typeof e==`bigint`;if(!n&&!Number.isFinite(e))throw TypeError(`Expected a finite number or bigint`);t={...t};let r=e<0?`-`:``;e=e<0?-e:e,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 i=[],a=(e,t)=>{let n=Math.floor(e*10**t+1e-7);return(Math.round(n)/10**t).toFixed(t)},o=(e,n,r,a)=>{if(!((i.length===0||!t.colonNotation)&&Ao(e)&&!(t.colonNotation&&r===`m`))){if(a??=String(e),t.colonNotation){let e=a.includes(`.`)?a.split(`.`)[0].length:a.length,t=i.length>0?2:1;a=`0`.repeat(Math.max(0,t-e))+a}else a+=t.verbose?` `+jo(n,e):r;i.push(a)}},s=ko(e),c=BigInt(s.days);if(t.hideYearAndDays?o(BigInt(c)*24n+BigInt(s.hours),`hour`,`h`):(t.hideYear?o(c,`day`,`d`):(o(c/365n,`year`,`y`),o(c%365n,`day`,`d`)),o(Number(s.hours),`hour`,`h`)),o(Number(s.minutes),`minute`,`m`),!t.hideSeconds)if(t.separateMilliseconds||t.formatSubMilliseconds||!t.colonNotation&&e<1e3&&!t.subSecondsAsDecimals){let e=Number(s.seconds),n=Number(s.milliseconds),r=Number(s.microseconds),i=Number(s.nanoseconds);if(o(e,`second`,`s`),t.formatSubMilliseconds)o(n,`millisecond`,`ms`),o(r,`microsecond`,`µs`),o(i,`nanosecond`,`ns`);else{let e=n+r/1e3+i/1e6,a=typeof t.millisecondsDecimalDigits==`number`?t.millisecondsDecimalDigits:0,s=a?e.toFixed(a):e>=1?Math.round(e):Math.ceil(e);o(Number.parseFloat(s),`millisecond`,`ms`,s)}}else{let r=a((n?Number(e%Mo):e)/1e3%60,typeof t.secondsDecimalDigits==`number`?t.secondsDecimalDigits:1),i=t.keepDecimalsOnWholeSeconds?r:r.replace(/\.0+$/,``);o(Number.parseFloat(i),`second`,`s`,i)}if(i.length===0)return r+`0`+(t.verbose?` milliseconds`:`ms`);let l=t.colonNotation?`:`:` `;return typeof t.unitCount==`number`&&(i=i.slice(0,Math.max(t.unitCount,1))),r+i.join(l)}const Po=(e,t)=>{e.failed&&Un({type:`error`,verboseMessage:e.shortMessage,verboseInfo:t,result:e})},Fo=(e,t)=>{fn(t)&&(Po(e,t),Io(e,t))},Io=(e,t)=>{Un({type:`duration`,verboseMessage:`(done in ${No(e.durationMs)})`,verboseInfo:t,result:e})},Lo=(e,t,{reject:n})=>{if(Fo(e,t),e.failed&&n)throw e;return e},Ro=(e,t)=>G(e)?`asyncGenerator`:qo(e)?`generator`:Yo(e)?`fileUrl`:Zo(e)?`filePath`:is(e)?`webStream`:he(e,{checkOpen:!1})?`native`:F(e)?`uint8Array`:os(e)?`asyncIterable`:ss(e)?`iterable`:as(e)?Vo({transform:e},t):Jo(e)?zo(e,t):`native`,zo=(e,t)=>de(e.transform,{checkOpen:!1})?Bo(e,t):as(e.transform)?Vo(e,t):Wo(e,t),Bo=(e,t)=>(Ho(e,t,`Duplex stream`),`duplex`),Vo=(e,t)=>(Ho(e,t,`web TransformStream`),`webTransform`),Ho=({final:e,binary:t,objectMode:n},r,i)=>{Uo(e,`${r}.final`,i),Uo(t,`${r}.binary`,i),Go(n,`${r}.objectMode`)},Uo=(e,t,n)=>{if(e!==void 0)throw TypeError(`The \`${t}\` option can only be defined when using a generator, not a ${n}.`)},Wo=({transform:e,final:t,binary:n,objectMode:r},i)=>{if(e!==void 0&&!Ko(e))throw TypeError(`The \`${i}.transform\` option must be a generator, a Duplex stream or a web TransformStream.`);if(de(t,{checkOpen:!1}))throw TypeError(`The \`${i}.final\` option must not be a Duplex stream.`);if(as(t))throw TypeError(`The \`${i}.final\` option must not be a web TransformStream.`);if(t!==void 0&&!Ko(t))throw TypeError(`The \`${i}.final\` option must be a generator.`);return Go(n,`${i}.binary`),Go(r,`${i}.objectMode`),G(e)||G(t)?`asyncGenerator`:`generator`},Go=(e,t)=>{if(e!==void 0&&typeof e!=`boolean`)throw TypeError(`The \`${t}\` option must use a boolean.`)},Ko=e=>G(e)||qo(e),G=e=>Object.prototype.toString.call(e)===`[object AsyncGeneratorFunction]`,qo=e=>Object.prototype.toString.call(e)===`[object GeneratorFunction]`,Jo=e=>P(e)&&(e.transform!==void 0||e.final!==void 0),Yo=e=>Object.prototype.toString.call(e)===`[object URL]`,Xo=e=>Yo(e)&&e.protocol!==`file:`,Zo=e=>P(e)&&Object.keys(e).length>0&&Object.keys(e).every(e=>Qo.has(e))&&$o(e.file),Qo=new Set([`file`,`append`]),$o=e=>typeof e==`string`,es=(e,t)=>e===`native`&&typeof t==`string`&&!ts.has(t),ts=new Set([`ipc`,`ignore`,`inherit`,`overlapped`,`pipe`]),ns=e=>Object.prototype.toString.call(e)===`[object ReadableStream]`,rs=e=>Object.prototype.toString.call(e)===`[object WritableStream]`,is=e=>ns(e)||rs(e),as=e=>ns(e?.readable)&&rs(e?.writable),os=e=>cs(e)&&typeof e[Symbol.asyncIterator]==`function`,ss=e=>cs(e)&&typeof e[Symbol.iterator]==`function`,cs=e=>typeof e==`object`&&!!e,K=new Set([`generator`,`asyncGenerator`,`duplex`,`webTransform`]),ls=new Set([`fileUrl`,`filePath`,`fileNumber`]),us=new Set([`fileUrl`,`filePath`]),ds=new Set([...us,`webStream`,`nodeStream`]),fs=new Set([`webTransform`,`duplex`]),ps={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`},ms=(e,t,n,r)=>r===`output`?hs(e,t,n):gs(e,t,n),hs=(e,t,n)=>{let r=t!==0&&n[t-1].value.readableObjectMode;return{writableObjectMode:r,readableObjectMode:e??r}},gs=(e,t,n)=>{let r=t===0?e===!0:n[t-1].value.readableObjectMode;return{writableObjectMode:r,readableObjectMode:t!==n.length-1&&(e??r)}},_s=(e,t)=>{let n=e.findLast(({type:e})=>K.has(e));return n===void 0?!1:t===`input`?n.value.writableObjectMode:n.value.readableObjectMode},vs=(e,t,n,r)=>[...e.filter(({type:e})=>!K.has(e)),...ys(e,t,n,r)],ys=(e,t,n,{encoding:r})=>{let i=e.filter(({type:e})=>K.has(e)),a=Array.from({length:i.length});for(let[e,o]of Object.entries(i))a[e]=bs({stdioItem:o,index:Number(e),newTransforms:a,optionName:t,direction:n,encoding:r});return ws(a,n)},bs=({stdioItem:e,stdioItem:{type:t},index:n,newTransforms:r,optionName:i,direction:a,encoding:o})=>t===`duplex`?xs({stdioItem:e,optionName:i}):t===`webTransform`?Ss({stdioItem:e,index:n,newTransforms:r,direction:a}):Cs({stdioItem:e,index:n,newTransforms:r,direction:a,encoding:o}),xs=({stdioItem:e,stdioItem:{value:{transform:t,transform:{writableObjectMode:n,readableObjectMode:r},objectMode:i=r}},optionName:a})=>{if(i&&!r)throw TypeError(`The \`${a}.objectMode\` option can only be \`true\` if \`new Duplex({objectMode: true})\` is used.`);if(!i&&r)throw TypeError(`The \`${a}.objectMode\` option cannot be \`false\` if \`new Duplex({objectMode: true})\` is used.`);return{...e,value:{transform:t,writableObjectMode:n,readableObjectMode:r}}},Ss=({stdioItem:e,stdioItem:{value:t},index:n,newTransforms:r,direction:i})=>{let{transform:a,objectMode:o}=P(t)?t:{transform:t},{writableObjectMode:s,readableObjectMode:c}=ms(o,n,r,i);return{...e,value:{transform:a,writableObjectMode:s,readableObjectMode:c}}},Cs=({stdioItem:e,stdioItem:{value:t},index:n,newTransforms:r,direction:i,encoding:a})=>{let{transform:o,final:s,binary:c=!1,preserveNewlines:l=!1,objectMode:u}=P(t)?t:{transform:t},d=c||W.has(a),{writableObjectMode:f,readableObjectMode:p}=ms(u,n,r,i);return{...e,value:{transform:o,final:s,binary:d,preserveNewlines:l,writableObjectMode:f,readableObjectMode:p}}},ws=(e,t)=>t===`input`?e.reverse():e,Ts=(e,t,n)=>{let r=e.map(e=>Es(e,t));if(r.includes(`input`)&&r.includes(`output`))throw TypeError(`The \`${n}\` option must not be an array of both readable and writable values.`);return r.find(Boolean)??js},Es=({type:e,value:t},n)=>Ds[n]??ks[e](t),Ds=[`input`,`output`,`output`],q=()=>void 0,Os=()=>`input`,ks={generator:q,asyncGenerator:q,fileUrl:q,filePath:q,iterable:Os,asyncIterable:Os,uint8Array:Os,webStream:e=>rs(e)?`output`:`input`,nodeStream(e){return ve(e,{checkOpen:!1})?_e(e,{checkOpen:!1})?void 0:`input`:`output`},webTransform:q,duplex:q,native(e){let t=As(e);if(t!==void 0)return t;if(he(e,{checkOpen:!1}))return ks.nodeStream(e)}},As=e=>{if([0,j.stdin].includes(e))return`input`;if([1,2,j.stdout,j.stderr].includes(e))return`output`},js=`output`,Ms=(e,t)=>t&&!e.includes(`ipc`)?[...e,`ipc`]:e,Ns=({stdio:e,ipc:t,buffer:n,...r},i,a)=>{let o=Ps(e,r).map((e,t)=>Is(e,t));return a?Ls(o,n,i):Ms(o,t)},Ps=(e,t)=>{if(e===void 0)return R.map(e=>t[e]);if(Fs(t))throw Error(`It's not possible to provide \`stdio\` in combination with one of ${R.map(e=>`\`${e}\``).join(`, `)}`);if(typeof e==`string`)return[e,e,e];if(!Array.isArray(e))throw TypeError(`Expected \`stdio\` to be of type \`string\` or \`Array\`, got \`${typeof e}\``);let n=Math.max(e.length,R.length);return Array.from({length:n},(t,n)=>e[n])},Fs=e=>R.some(t=>e[t]!==void 0),Is=(e,t)=>Array.isArray(e)?e.map(e=>Is(e,t)):e??(t>=R.length?`ignore`:`pipe`),Ls=(e,t,n)=>e.map((e,r)=>!t[r]&&r!==0&&!pn(n,r)&&Rs(e)?`ignore`:e),Rs=e=>e===`pipe`||Array.isArray(e)&&e.every(e=>e===`pipe`),zs=({stdioItem:e,stdioItem:{type:t},isStdioArray:n,fdNumber:r,direction:i,isSync:a})=>!n||t!==`native`?e:a?Bs({stdioItem:e,fdNumber:r,direction:i}):Us({stdioItem:e,fdNumber:r}),Bs=({stdioItem:e,stdioItem:{value:t,optionName:n},fdNumber:r,direction:i})=>{let a=Vs({value:t,optionName:n,fdNumber:r,direction:i});if(a!==void 0)return a;if(he(t,{checkOpen:!1}))throw TypeError(`The \`${n}: Stream\` option cannot both be an array and include a stream with synchronous methods.`);return e},Vs=({value:e,optionName:t,fdNumber:n,direction:r})=>{let i=Hs(e,n);if(i!==void 0){if(r===`output`)return{type:`fileNumber`,value:i,optionName:t};if(ut.isatty(i))throw TypeError(`The \`${t}: ${Fi(e)}\` option is invalid: it cannot be a TTY with synchronous methods.`);return{type:`uint8Array`,value:I(qe(i)),optionName:t}}},Hs=(e,t)=>{if(e===`inherit`)return t;if(typeof e==`number`)return e;let n=Xt.indexOf(e);if(n!==-1)return n},Us=({stdioItem:e,stdioItem:{value:t,optionName:n},fdNumber:r})=>t===`inherit`?{type:`nodeStream`,value:Ws(r,t,n),optionName:n}:typeof t==`number`?{type:`nodeStream`,value:Ws(t,t,n),optionName:n}:he(t,{checkOpen:!1})?{type:`nodeStream`,value:t,optionName:n}:e,Ws=(e,t,n)=>{let r=Xt[e];if(r===void 0)throw TypeError(`The \`${n}: ${t}\` option is invalid: no such standard stream.`);return r},Gs=({input:e,inputFile:t},n)=>n===0?[...Ks(e),...Js(t)]:[],Ks=e=>e===void 0?[]:[{type:qs(e),value:e,optionName:`input`}],qs=e=>{if(ve(e,{checkOpen:!1}))return`nodeStream`;if(typeof e==`string`)return`string`;if(F(e))return`uint8Array`;throw Error("The `input` option must be a string, a Uint8Array or a Node.js Readable stream.")},Js=e=>e===void 0?[]:[{...Ys(e),optionName:`inputFile`}],Ys=e=>{if(Yo(e))return{type:`fileUrl`,value:e};if($o(e))return{type:`filePath`,value:{file:e}};throw Error("The `inputFile` option must be a file path string or a file URL.")},Xs=e=>e.filter((t,n)=>e.every((e,r)=>t.value!==e.value||n>=r||t.type===`generator`||t.type===`asyncGenerator`)),Zs=({stdioItem:{type:e,value:t,optionName:n},direction:r,fileDescriptors:i,isSync:a})=>{let o=Qs(i,e);if(o.length!==0){if(a){$s({otherStdioItems:o,type:e,value:t,optionName:n,direction:r});return}if(ds.has(e))return ec({otherStdioItems:o,type:e,value:t,optionName:n,direction:r});fs.has(e)&&nc({otherStdioItems:o,type:e,value:t,optionName:n})}},Qs=(e,t)=>e.flatMap(({direction:e,stdioItems:n})=>n.filter(e=>e.type===t).map((t=>({...t,direction:e})))),$s=({otherStdioItems:e,type:t,value:n,optionName:r,direction:i})=>{us.has(t)&&ec({otherStdioItems:e,type:t,value:n,optionName:r,direction:i})},ec=({otherStdioItems:e,type:t,value:n,optionName:r,direction:i})=>{let a=e.filter(e=>tc(e,n));if(a.length!==0)return rc(a.find(e=>e.direction!==i),r,t),i===`output`?a[0].stream:void 0},tc=({type:e,value:t},n)=>e===`filePath`?t.file===n.file:e===`fileUrl`?t.href===n.href:t===n,nc=({otherStdioItems:e,type:t,value:n,optionName:r})=>{rc(e.find(({value:{transform:e}})=>e===n.transform),r,t)},rc=(e,t,n)=>{if(e!==void 0)throw TypeError(`The \`${e.optionName}\` and \`${t}\` options must not target ${ps[n]} that is the same.`)},ic=(e,t,n,r)=>{let i=pc({initialFileDescriptors:Ns(t,n,r).map((e,n)=>ac({stdioOption:e,fdNumber:n,options:t,isSync:r})),addProperties:e,options:t,isSync:r});return t.stdio=i.map(({stdioItems:e})=>_c(e)),i},ac=({stdioOption:e,fdNumber:t,options:n,isSync:r})=>{let i=Zt(t),{stdioItems:a,isStdioArray:o}=oc({stdioOption:e,fdNumber:t,options:n,optionName:i}),s=Ts(a,t,i),c=vs(a.map(e=>zs({stdioItem:e,isStdioArray:o,fdNumber:t,direction:s,isSync:r})),i,s,n),l=_s(c,s);return fc(c,l),{direction:s,objectMode:l,stdioItems:c}},oc=({stdioOption:e,fdNumber:t,options:n,optionName:r})=>{let i=Xs([...(Array.isArray(e)?e:[e]).map(e=>sc(e,r)),...Gs(n,t)]),a=i.length>1;return cc(i,a,r),uc(i),{stdioItems:i,isStdioArray:a}},sc=(e,t)=>({type:Ro(e,t),value:e,optionName:t}),cc=(e,t,n)=>{if(e.length===0)throw TypeError(`The \`${n}\` option must not be an empty array.`);if(t){for(let{value:t,optionName:n}of e)if(lc.has(t))throw Error(`The \`${n}\` option must not include \`${t}\`.`)}},lc=new Set([`ignore`,`ipc`]),uc=e=>{for(let t of e)dc(t)},dc=({type:e,value:t,optionName:n})=>{if(Xo(t))throw TypeError(`The \`${n}: URL\` option must use the \`file:\` scheme.
|
|
29
|
+
For example, you can use the \`pathToFileURL()\` method of the \`url\` core module.`);if(es(e,t))throw TypeError(`The \`${n}: { file: '...' }\` option must be used instead of \`${n}: '...'\`.`)},fc=(e,t)=>{if(!t)return;let n=e.find(({type:e})=>ls.has(e));if(n!==void 0)throw TypeError(`The \`${n.optionName}\` option cannot use both files and transforms in objectMode.`)},pc=({initialFileDescriptors:e,addProperties:t,options:n,isSync:r})=>{let i=[];try{for(let a of e)i.push(mc({fileDescriptor:a,fileDescriptors:i,addProperties:t,options:n,isSync:r}));return i}catch(e){throw gc(i),e}},mc=({fileDescriptor:{direction:e,objectMode:t,stdioItems:n},fileDescriptors:r,addProperties:i,options:a,isSync:o})=>({direction:e,objectMode:t,stdioItems:n.map(t=>hc({stdioItem:t,addProperties:i,direction:e,options:a,fileDescriptors:r,isSync:o}))}),hc=({stdioItem:e,addProperties:t,direction:n,options:r,fileDescriptors:i,isSync:a})=>{let o=Zs({stdioItem:e,direction:n,fileDescriptors:i,isSync:a});return o===void 0?{...e,...t[n][e.type](e,r)}:{...e,stream:o}},gc=e=>{for(let{stdioItems:t}of e)for(let{stream:e}of t)e!==void 0&&!L(e)&&e.destroy()},_c=e=>{if(e.length>1)return e.some(({value:e})=>e===`overlapped`)?`overlapped`:`pipe`;let[{type:t,value:n}]=e;return t===`native`?n:`pipe`},vc=(e,t)=>ic(Sc,e,t,!0),J=({type:e,optionName:t})=>{bc(t,ps[e])},yc=({optionName:e,value:t})=>((t===`ipc`||t===`overlapped`)&&bc(e,`"${t}"`),{}),bc=(e,t)=>{throw TypeError(`The \`${e}\` option cannot be ${t} with synchronous methods.`)},xc={generator(){},asyncGenerator:J,webStream:J,nodeStream:J,webTransform:J,duplex:J,asyncIterable:J,native:yc},Sc={input:{...xc,fileUrl:({value:e})=>({contents:[I(qe(e))]}),filePath:({value:{file:e}})=>({contents:[I(qe(e))]}),fileNumber:J,iterable:({value:e})=>({contents:[...e]}),string:({value:e})=>({contents:[e]}),uint8Array:({value:e})=>({contents:[e]})},output:{...xc,fileUrl:({value:e})=>({path:e}),filePath:({value:{file:e,append:t}})=>({path:e,append:t}),fileNumber:({value:e})=>({path:e}),iterable:J,string:J,uint8Array:J}},Y=(e,{stripFinalNewline:t},n)=>Cc(t,n)&&e!==void 0&&!Array.isArray(e)?Za(e):e,Cc=(e,t)=>t===`all`?e[1]||e[2]:e[t],wc=(e,t,n,r)=>e||n?void 0:Dc(t,r),Tc=(e,t,n)=>n?e.flatMap(e=>Ec(e,t)):Ec(e,t),Ec=(e,t)=>{let{transform:n,final:r}=Dc(t,{});return[...n(e),...r()]},Dc=(e,t)=>(t.previousChunks=``,{transform:Oc.bind(void 0,t,e),final:Ac.bind(void 0,t)}),Oc=function*(e,t,n){if(typeof n!=`string`){yield n;return}let{previousChunks:r}=e,i=-1;for(let a=0;a<n.length;a+=1)if(n[a]===`
|
|
30
|
+
`){let o=kc(n,a,t,e),s=n.slice(i+1,a+1-o);r.length>0&&(s=Nc(r,s),r=``),yield s,i=a}i!==n.length-1&&(r=Nc(r,n.slice(i+1))),e.previousChunks=r},kc=(e,t,n,r)=>n?0:(r.isWindowsNewline=t!==0&&e[t-1]===`\r`,r.isWindowsNewline?2:1),Ac=function*({previousChunks:e}){e.length>0&&(yield e)},jc=({binary:e,preserveNewlines:t,readableObjectMode:n,state:r})=>e||t||n?void 0:{transform:Mc.bind(void 0,r)},Mc=function*({isWindowsNewline:e=!1},t){let{unixNewline:n,windowsNewline:r,LF:i,concatBytes:a}=typeof t==`string`?Pc:Fc;if(t.at(-1)===i){yield t;return}yield a(t,e?r:n)},Nc=(e,t)=>`${e}${t}`,Pc={windowsNewline:`\r
|
|
31
|
+
`,unixNewline:`
|
|
32
|
+
`,LF:`
|
|
33
|
+
`,concatBytes:Nc},Fc={windowsNewline:new Uint8Array([13,10]),unixNewline:new Uint8Array([10]),LF:10,concatBytes:(e,t)=>{let n=new Uint8Array(e.length+t.length);return n.set(e,0),n.set(t,e.length),n}},Ic=(e,t)=>e?void 0:Lc.bind(void 0,t),Lc=function*(e,t){if(typeof t!=`string`&&!F(t)&&!mt.isBuffer(t))throw TypeError(`The \`${e}\` option's transform must use "objectMode: true" to receive as input: ${typeof t}.`);yield t},Rc=(e,t)=>e?zc.bind(void 0,t):Bc.bind(void 0,t),zc=function*(e,t){Vc(e,t),yield t},Bc=function*(e,t){if(Vc(e,t),typeof t!=`string`&&!F(t))throw TypeError(`The \`${e}\` option's function must yield a string or an Uint8Array, not ${typeof t}.`);yield t},Vc=(e,t)=>{if(t==null)throw TypeError(`The \`${e}\` option's function must not call \`yield ${t}\`.
|
|
34
|
+
Instead, \`yield\` should either be called with a value, or not be called at all. For example:
|
|
35
|
+
if (condition) { yield value; }`)},Hc=(e,t,n)=>{if(n)return;if(e)return{transform:Uc.bind(void 0,new TextEncoder)};let r=new gt(t);return{transform:Wc.bind(void 0,r),final:Gc.bind(void 0,r)}},Uc=function*(e,t){mt.isBuffer(t)?yield I(t):typeof t==`string`?yield e.encode(t):yield t},Wc=function*(e,t){yield F(t)?e.write(t):t},Gc=function*(e){let t=e.end();t!==``&&(yield t)},Kc=k(async(e,t,n,r)=>{t.currentIterable=e(...n);try{for await(let e of t.currentIterable)r.push(e)}finally{delete t.currentIterable}}),qc=async function*(e,t,n){if(n===t.length){yield e;return}let{transform:r=Zc}=t[n];for await(let i of r(e))yield*qc(i,t,n+1)},Jc=async function*(e){for(let[t,{final:n}]of Object.entries(e))yield*Yc(n,Number(t),e)},Yc=async function*(e,t,n){if(e!==void 0)for await(let r of e())yield*qc(r,n,t+1)},Xc=k(async({currentIterable:e},t)=>{if(e!==void 0){await(t?e.throw(t):e.return());return}if(t)throw t}),Zc=function*(e){yield e},Qc=(e,t,n,r)=>{try{for(let r of e(...t))n.push(r);r()}catch(e){r(e)}},$c=(e,t)=>[...t.flatMap(t=>[...el(t,e,0)]),...tl(e)],el=function*(e,t,n){if(n===t.length){yield e;return}let{transform:r=rl}=t[n];for(let i of r(e))yield*el(i,t,n+1)},tl=function*(e){for(let[t,{final:n}]of Object.entries(e))yield*nl(n,Number(t),e)},nl=function*(e,t,n){if(e!==void 0)for(let r of e())yield*el(r,n,t+1)},rl=function*(e){yield e},il=({value:e,value:{transform:t,final:n,writableObjectMode:r,readableObjectMode:i},optionName:a},{encoding:o})=>{let s={},c=ol(e,o,a),l=G(t),u=G(n),d=l?Kc.bind(void 0,qc,s):Qc.bind(void 0,el),f=l||u?Kc.bind(void 0,Jc,s):Qc.bind(void 0,tl),p=l||u?Xc.bind(void 0,s):void 0;return{stream:new rt({writableObjectMode:r,writableHighWaterMark:at(r),readableObjectMode:i,readableHighWaterMark:at(i),transform(e,t,n){d([e,c,0],this,n)},flush(e){f([c],this,e)},destroy:p})}},al=(e,t,n,r)=>{let i=t.filter(({type:e})=>e===`generator`),a=r?i.reverse():i;for(let{value:t,optionName:r}of a)e=$c(ol(t,n,r),e);return e},ol=({transform:e,final:t,binary:n,writableObjectMode:r,readableObjectMode:i,preserveNewlines:a},o,s)=>{let c={};return[{transform:Ic(r,s)},Hc(n,o,r),wc(n,a,r,c),{transform:e,final:t},{transform:Rc(i,s)},jc({binary:n,preserveNewlines:a,readableObjectMode:i,state:c})].filter(Boolean)},sl=(e,t)=>{for(let n of cl(e))ll(e,n,t)},cl=e=>new Set(Object.entries(e).filter(([,{direction:e}])=>e===`input`).map(([e])=>Number(e))),ll=(e,t,n)=>{let{stdioItems:r}=e[t],i=r.filter(({contents:e})=>e!==void 0);if(i.length!==0){if(t!==0){let[{type:e,optionName:t}]=i;throw TypeError(`Only the \`stdin\` option, not \`${t}\`, can be ${ps[e]} with synchronous methods.`)}n.input=Lt(i.map(({contents:e})=>e).map(e=>ul(e,r)))}},ul=(e,t)=>{let n=al(e,t,`utf8`,!0);return dl(n),Lt(n)},dl=e=>{let t=e.find(e=>typeof e!=`string`&&!F(e));if(t!==void 0)throw TypeError(`The \`stdin\` option is invalid: when passing objects as input, a transform must be used to serialize them to strings or Uint8Arrays: ${t}.`)},fl=({stdioItems:e,encoding:t,verboseInfo:n,fdNumber:r})=>r!==`all`&&pn(n,r)&&!W.has(t)&&pl(r)&&(e.some(({type:e,value:t})=>e===`native`&&ml.has(t))||e.every(({type:e})=>K.has(e))),pl=e=>e===1||e===2,ml=new Set([`pipe`,`overlapped`]),hl=async(e,t,n,r)=>{for await(let i of e)_l(t)||vl(i,n,r)},gl=(e,t,n)=>{for(let r of e)vl(r,t,n)},_l=e=>e._readableState.pipes.length>0,vl=(e,t,n)=>{Un({type:`output`,verboseMessage:qn(e),fdNumber:t,verboseInfo:n})},yl=({fileDescriptors:e,syncResult:{output:t},options:n,isMaxBuffer:r,verboseInfo:i})=>{if(t===null)return{output:Array.from({length:3})};let a={},o=new Set([]);return{output:t.map((t,s)=>bl({result:t,fileDescriptors:e,fdNumber:s,state:a,outputFiles:o,isMaxBuffer:r,verboseInfo:i},n)),...a}},bl=({result:e,fileDescriptors:t,fdNumber:n,state:r,outputFiles:i,isMaxBuffer:a,verboseInfo:o},{buffer:s,encoding:c,lines:l,stripFinalNewline:u,maxBuffer:d})=>{if(e===null)return;let f=I(uo(e,a,d)),{stdioItems:p,objectMode:m}=t[n],{serializedResult:h,finalResult:g=h}=Sl({chunks:xl([f],p,c,r),objectMode:m,encoding:c,lines:l,stripFinalNewline:u,fdNumber:n});Cl({serializedResult:h,fdNumber:n,state:r,verboseInfo:o,encoding:c,stdioItems:p,objectMode:m});let _=s[n]?g:void 0;try{return r.error===void 0&&wl(h,p,i),_}catch(e){return r.error=e,_}},xl=(e,t,n,r)=>{try{return al(e,t,n,!1)}catch(t){return r.error=t,e}},Sl=({chunks:e,objectMode:t,encoding:n,lines:r,stripFinalNewline:i,fdNumber:a})=>{if(t)return{serializedResult:e};if(n===`buffer`)return{serializedResult:Lt(e)};let o=Ft(e,n);return r[a]?{serializedResult:o,finalResult:Tc(o,!i[a],t)}:{serializedResult:o}},Cl=({serializedResult:e,fdNumber:t,state:n,verboseInfo:r,encoding:i,stdioItems:a,objectMode:o})=>{if(!fl({stdioItems:a,encoding:i,verboseInfo:r,fdNumber:t}))return;let s=Tc(e,!1,o);try{gl(s,t,r)}catch(e){n.error??=e}},wl=(e,t,n)=>{for(let{path:r,append:i}of t.filter(({type:e})=>ls.has(e))){let t=typeof r==`string`?r:r.toString();i||n.has(t)?We(r,e):(n.add(t),Ye(r,e))}},Tl=([,e,t],n)=>{if(n.all)return e===void 0?t:t===void 0?e:Array.isArray(e)?Array.isArray(t)?[...e,...t]:[...e,Y(t,n,`all`)]:Array.isArray(t)?[Y(e,n,`all`),...t]:F(e)&&F(t)?zt([e,t]):`${e}${t}`},El=async(e,t)=>{let[n,r]=await Dl(e);return t.isForcefullyTerminated??=!1,[n,r]},Dl=async e=>{let[t,n]=await Promise.allSettled([E(e,`spawn`),E(e,`exit`)]);return t.status===`rejected`?[]:n.status===`rejected`?Ol(e):n.value},Ol=async e=>{try{return await E(e,`exit`)}catch{return Ol(e)}},kl=async e=>{let[t,n]=await e;if(!Al(t,n)&&jl(t,n))throw new Sr;return[t,n]},Al=(e,t)=>e===void 0&&t===void 0,jl=(e,t)=>e!==0||t!==null,Ml=({error:e,status:t,signal:n,output:r},{maxBuffer:i})=>{let a=Nl(e,t,n);return{resultError:a,exitCode:t,signal:n,timedOut:a?.code===`ETIMEDOUT`,isMaxBuffer:lo(a,r,i)}},Nl=(e,t,n)=>e===void 0?jl(t,n)?new Sr:void 0:e,Pl=(e,t,n)=>{let{file:r,commandArguments:i,command:a,escapedCommand:o,startTime:s,verboseInfo:c,options:l,fileDescriptors:u}=Fl(e,t,n);return Lo(zl({file:r,commandArguments:i,options:l,command:a,escapedCommand:o,verboseInfo:c,fileDescriptors:u,startTime:s}),c,l)},Fl=(e,t,n)=>{let{command:r,escapedCommand:i,startTime:a,verboseInfo:o}=nr(e,t,n),{file:s,commandArguments:c,options:l}=qa(e,t,Il(n));return Ll(l),{file:s,commandArguments:c,command:r,escapedCommand:i,startTime:a,verboseInfo:o,options:l,fileDescriptors:vc(l,o)}},Il=e=>e.node&&!e.ipc?{...e,ipc:!1}:e,Ll=({ipc:e,ipcInput:t,detached:n,cancelSignal:r})=>{t&&Rl(`ipcInput`),e&&Rl(`ipc: true`),n&&Rl(`detached: true`),r&&Rl(`cancelSignal`)},Rl=e=>{throw TypeError(`The "${e}" option cannot be used with synchronous methods.`)},zl=({file:e,commandArguments:t,options:n,command:r,escapedCommand:i,verboseInfo:a,fileDescriptors:o,startTime:s})=>{let c=Bl({file:e,commandArguments:t,options:n,command:r,escapedCommand:i,fileDescriptors:o,startTime:s});if(c.failed)return c;let{resultError:l,exitCode:u,signal:d,timedOut:f,isMaxBuffer:p}=Ml(c,n),{output:m,error:h=l}=yl({fileDescriptors:o,syncResult:c,options:n,isMaxBuffer:p,verboseInfo:a});return Hl({error:h,exitCode:u,signal:d,timedOut:f,isMaxBuffer:p,stdio:m.map((e,t)=>Y(e,n,t)),all:Y(Tl(m,n),n,`all`),options:n,command:r,escapedCommand:i,startTime:s})},Bl=({file:e,commandArguments:t,options:n,command:r,escapedCommand:i,fileDescriptors:a,startTime:o})=>{try{return sl(a,n),Ue(...Xa(e,t,Vl(n)))}catch(e){return xo({error:e,command:r,escapedCommand:i,fileDescriptors:a,options:n,startTime:o,isSync:!0})}},Vl=({encoding:e,maxBuffer:t,...n})=>({...n,encoding:`buffer`,maxBuffer:fo(t)}),Hl=({error:e,exitCode:t,signal:n,timedOut:r,isMaxBuffer:i,stdio:a,all:o,options:s,command:c,escapedCommand:l,startTime:u})=>e===void 0?bo({command:c,escapedCommand:l,stdio:a,all:o,ipcOutput:[],options:s,startTime:u}):So({error:e,command:c,escapedCommand:l,timedOut:r,isCanceled:!1,isGracefullyCanceled:!1,isMaxBuffer:i,isForcefullyTerminated:!1,exitCode:t,signal:n,stdio:a,all:o,ipcOutput:[],options:s,startTime:u,isSync:!0}),Ul=({anyProcess:e,channel:t,isSubprocess:n,ipc:r},{reference:i=!0,filter:a}={})=>(ci({methodName:`getOneMessage`,isSubprocess:n,ipc:r,isConnected:Yi(e)}),Wl({anyProcess:e,channel:t,isSubprocess:n,filter:a,reference:i})),Wl=async({anyProcess:e,channel:t,isSubprocess:n,filter:r,reference:i})=>{Li(t,i);let a=Ki(e,t,n),o=new AbortController;try{return await Promise.race([Gl(a,r,o),Kl(a,n,o),ql(a,n,o)])}catch(t){throw wi(e),t}finally{o.abort(),zi(t,i)}},Gl=async(e,t,{signal:n})=>{if(t===void 0){let[t]=await E(e,`message`,{signal:n});return t}for await(let[r]of ze(e,`message`,{signal:n}))if(t(r))return r},Kl=async(e,t,{signal:n})=>{await E(e,`disconnect`,{signal:n}),di(t)},ql=async(e,t,{signal:n})=>{let[r]=await E(e,`strict:error`,{signal:n});throw pi(r,t)},Jl=({anyProcess:e,channel:t,isSubprocess:n,ipc:r},{reference:i=!0}={})=>Yl({anyProcess:e,channel:t,isSubprocess:n,ipc:r,shouldAwait:!n,reference:i}),Yl=({anyProcess:e,channel:t,isSubprocess:n,ipc:r,shouldAwait:i,reference:a})=>{ci({methodName:`getEachMessage`,isSubprocess:n,ipc:r,isConnected:Yi(e)}),Li(t,a);let o=Ki(e,t,n),s=new AbortController,c={};return Xl(e,o,s),Zl({ipcEmitter:o,isSubprocess:n,controller:s,state:c}),Ql({anyProcess:e,channel:t,ipcEmitter:o,isSubprocess:n,shouldAwait:i,controller:s,state:c,reference:a})},Xl=async(e,t,n)=>{try{await E(t,`disconnect`,{signal:n.signal}),n.abort()}catch{}},Zl=async({ipcEmitter:e,isSubprocess:t,controller:n,state:r})=>{try{let[i]=await E(e,`strict:error`,{signal:n.signal});r.error=pi(i,t),n.abort()}catch{}},Ql=async function*({anyProcess:e,channel:t,ipcEmitter:n,isSubprocess:r,shouldAwait:i,controller:a,state:o,reference:s}){try{for await(let[e]of ze(n,`message`,{signal:a.signal}))$l(o),yield e}catch{$l(o)}finally{a.abort(),zi(t,s),r||wi(e),i&&await e}},$l=({error:e})=>{if(e)throw e},eu=(e,{ipc:t})=>{Object.assign(e,nu(e,!1,t))},tu=()=>{let e=j,t=j.channel!==void 0;return{...nu(e,!0,t),getCancelSignal:va.bind(void 0,{anyProcess:e,channel:e.channel,isSubprocess:!0,ipc:t})}},nu=(e,t,n)=>({sendMessage:fa.bind(void 0,{anyProcess:e,channel:e.channel,isSubprocess:t,ipc:n}),getOneMessage:Ul.bind(void 0,{anyProcess:e,channel:e.channel,isSubprocess:t,ipc:n}),getEachMessage:Jl.bind(void 0,{anyProcess:e,channel:e.channel,isSubprocess:t,ipc:n})}),ru=({error:e,command:t,escapedCommand:n,fileDescriptors:r,options:i,startTime:a,verboseInfo:o})=>{gc(r);let s=new Ve;return iu(s,r),Object.assign(s,{readable:ou,writable:su,duplex:cu}),{subprocess:s,promise:lu(xo({error:e,command:t,escapedCommand:n,fileDescriptors:r,options:i,startTime:a,isSync:!1}),o,i)}},iu=(e,t)=>{let n=au(),r=au(),i=au(),a=Array.from({length:t.length-3},au),o=au(),s=[n,r,i,...a];Object.assign(e,{stdin:n,stdout:r,stderr:i,all:o,stdio:s})},au=()=>{let e=new nt;return e.end(),e},ou=()=>new A({read(){}}),su=()=>new it({write(){}}),cu=()=>new tt({read(){},write(){}}),lu=async(e,t,n)=>Lo(e,t,n),uu=(e,t)=>ic(pu,e,t,!1),du=({type:e,optionName:t})=>{throw TypeError(`The \`${t}\` option cannot be ${ps[e]}.`)},fu={fileNumber:du,generator:il,asyncGenerator:il,nodeStream:({value:e})=>({stream:e}),webTransform({value:{transform:e,writableObjectMode:t,readableObjectMode:n}}){let r=t||n;return{stream:tt.fromWeb(e,{objectMode:r})}},duplex:({value:{transform:e}})=>({stream:e}),native(){}},pu={input:{...fu,fileUrl:({value:e})=>({stream:Ge(e)}),filePath:({value:{file:e}})=>({stream:Ge(e)}),webStream:({value:e})=>({stream:A.fromWeb(e)}),iterable:({value:e})=>({stream:A.from(e)}),asyncIterable:({value:e})=>({stream:A.from(e)}),string:({value:e})=>({stream:A.from(e)}),uint8Array:({value:e})=>({stream:A.from(mt.from(e))})},output:{...fu,fileUrl:({value:e})=>({stream:Ke(e)}),filePath:({value:{file:e,append:t}})=>({stream:Ke(e,t?{flags:`a`}:{})}),webStream:({value:e})=>({stream:it.fromWeb(e)}),iterable:du,asyncIterable:du,string:du,uint8Array:du}};function mu(e){if(!Array.isArray(e))throw TypeError(`Expected an array, got \`${typeof e}\`.`);for(let t of e)bu(t);let t=e.some(({readableObjectMode:e})=>e),n=hu(e,t),r=new gu({objectMode:t,writableHighWaterMark:n,readableHighWaterMark:n});for(let t of e)r.add(t);return r}const hu=(e,t)=>{if(e.length===0)return at(t);let n=e.filter(({readableObjectMode:e})=>e===t).map(({readableHighWaterMark:e})=>e);return Math.max(...n)};var gu=class extends nt{#e=new Set([]);#t=new Set([]);#n=new Set([]);#r;#i=Symbol(`unpipe`);#a=new WeakMap;add(e){if(bu(e),this.#e.has(e))return;this.#e.add(e),this.#r??=_u(this,this.#e,this.#i);let t=xu({passThroughStream:this,stream:e,streams:this.#e,ended:this.#t,aborted:this.#n,onFinished:this.#r,unpipeEvent:this.#i});this.#a.set(e,t),e.pipe(this,{end:!1})}async remove(e){if(bu(e),!this.#e.has(e))return!1;let t=this.#a.get(e);return t===void 0?!1:(this.#a.delete(e),e.unpipe(this),await t,!0)}};const _u=async(e,t,n)=>{ju(e,Mu);let r=new AbortController;try{await Promise.race([vu(e,r),yu(e,t,n,r)])}finally{r.abort(),ju(e,-Mu)}},vu=async(e,{signal:t})=>{try{await M(e,{signal:t,cleanup:!0})}catch(t){throw Eu(e,t),t}},yu=async(e,t,n,{signal:r})=>{for await(let[i]of ze(e,`unpipe`,{signal:r}))t.has(i)&&i.emit(n)},bu=e=>{if(typeof e?.pipe!=`function`)throw TypeError(`Expected a readable stream, got: \`${typeof e}\`.`)},xu=async({passThroughStream:e,stream:t,streams:n,ended:r,aborted:i,onFinished:a,unpipeEvent:o})=>{ju(e,Nu);let s=new AbortController;try{await Promise.race([Su(a,t,s),Cu({passThroughStream:e,stream:t,streams:n,ended:r,aborted:i,controller:s}),wu({stream:t,streams:n,ended:r,aborted:i,unpipeEvent:o,controller:s})])}finally{s.abort(),ju(e,-Nu)}n.size>0&&n.size===r.size+i.size&&(r.size===0&&i.size>0?Ou(e):Tu(e))},Su=async(e,t,{signal:n})=>{try{await e,n.aborted||Ou(t)}catch(e){n.aborted||Eu(t,e)}},Cu=async({passThroughStream:e,stream:t,streams:n,ended:r,aborted:i,controller:{signal:a}})=>{try{await M(t,{signal:a,cleanup:!0,readable:!0,writable:!1}),n.has(t)&&r.add(t)}catch(r){if(a.aborted||!n.has(t))return;Du(r)?i.add(t):ku(e,r)}},wu=async({stream:e,streams:t,ended:n,aborted:r,unpipeEvent:i,controller:{signal:a}})=>{if(await E(e,i,{signal:a}),!e.readable)return E(a,`abort`,{signal:a});t.delete(e),n.delete(e),r.delete(e)},Tu=e=>{e.writable&&e.end()},Eu=(e,t)=>{Du(t)?Ou(e):ku(e,t)},Du=e=>e?.code===`ERR_STREAM_PREMATURE_CLOSE`,Ou=e=>{(e.readable||e.writable)&&e.destroy()},ku=(e,t)=>{e.destroyed||(e.once(`error`,Au),e.destroy(t))},Au=()=>{},ju=(e,t)=>{let n=e.getMaxListeners();n!==0&&n!==1/0&&e.setMaxListeners(n+t)},Mu=2,Nu=1,Pu=(e,t)=>{e.pipe(t),Fu(e,t),Lu(e,t)},Fu=async(e,t)=>{if(!(L(e)||L(t))){try{await M(e,{cleanup:!0,readable:!0,writable:!1})}catch{}Iu(t)}},Iu=e=>{e.writable&&e.end()},Lu=async(e,t)=>{if(!(L(e)||L(t))){try{await M(t,{cleanup:!0,readable:!1,writable:!0})}catch{}Ru(e)}},Ru=e=>{e.readable&&e.destroy()},zu=(e,t,n)=>{let r=new Map;for(let[i,{stdioItems:a,direction:o}]of Object.entries(t)){for(let{stream:t}of a.filter(({type:e})=>K.has(e)))Bu(e,t,o,i);for(let{stream:t}of a.filter(({type:e})=>!K.has(e)))Hu({subprocess:e,stream:t,direction:o,fdNumber:i,pipeGroups:r,controller:n})}for(let[e,t]of r.entries())Pu(t.length===1?t[0]:mu(t),e)},Bu=(e,t,n,r)=>{n===`output`?Pu(e.stdio[r],t):Pu(t,e.stdio[r]);let i=Vu[r];i!==void 0&&(e[i]=t),e.stdio[r]=t},Vu=[`stdin`,`stdout`,`stderr`],Hu=({subprocess:e,stream:t,direction:n,fdNumber:r,pipeGroups:i,controller:a})=>{if(t===void 0)return;Uu(t,a);let[o,s]=n===`output`?[t,e.stdio[r]]:[e.stdio[r],t],c=i.get(o)??[];i.set(o,[...c,s])},Uu=(e,{signal:t})=>{L(e)&&Ii(e,Wu,t)},Wu=2,Gu=(e,{cleanup:t,detached:n},{signal:r})=>{if(!t||n)return;let i=ye(()=>{e.kill()});Re(r,()=>{i()})},Ku=({source:e,sourcePromise:t,boundOptions:n,createNested:r},...i)=>{let a=er(),{destination:o,destinationStream:s,destinationError:c,from:l,unpipeSignal:u}=qu(n,r,i),{sourceStream:d,sourceError:f}=Xu(e,l),{options:p,fileDescriptors:m}=U.get(e);return{sourcePromise:t,sourceStream:d,sourceOptions:p,sourceError:f,destination:o,destinationStream:s,destinationError:c,unpipeSignal:u,fileDescriptors:m,startTime:a}},qu=(e,t,n)=>{try{let{destination:r,pipeOptions:{from:i,to:a,unpipeSignal:o}={}}=Ju(e,t,...n);return{destination:r,destinationStream:Ei(r,a),from:i,unpipeSignal:o}}catch(e){return{destinationError:e}}},Ju=(e,t,n,...r)=>{if(Array.isArray(n))return{destination:t(Yu,e)(n,...r),pipeOptions:e};if(typeof n==`string`||n instanceof URL||Et(n)){if(Object.keys(e).length>0)throw TypeError(`Please use .pipe("file", ..., options) or .pipe(execa("file", ..., options)) instead of .pipe(options)("file", ...).`);let[i,a,o]=Ot(n,...r);return{destination:t(Yu)(i,a,o),pipeOptions:o}}if(U.has(n)){if(Object.keys(e).length>0)throw TypeError("Please use .pipe(options)`command` or .pipe($(options)`command`) instead of .pipe(options)($`command`).");return{destination:n,pipeOptions:r[0]}}throw TypeError(`The first argument must be a template string, an options object, or an Execa subprocess: ${n}`)},Yu=({options:e})=>({options:{...e,stdin:`pipe`,piped:!0}}),Xu=(e,t)=>{try{return{sourceStream:Di(e,t)}}catch(e){return{sourceError:e}}},Zu=({sourceStream:e,sourceError:t,destinationStream:n,destinationError:r,fileDescriptors:i,sourceOptions:a,startTime:o})=>{let s=Qu({sourceStream:e,sourceError:t,destinationStream:n,destinationError:r});if(s!==void 0)throw $u({error:s,fileDescriptors:i,sourceOptions:a,startTime:o})},Qu=({sourceStream:e,sourceError:t,destinationStream:n,destinationError:r})=>{if(t!==void 0&&r!==void 0)return r;if(r!==void 0)return Ru(e),r;if(t!==void 0)return Iu(n),t},$u=({error:e,fileDescriptors:t,sourceOptions:n,startTime:r})=>xo({error:e,command:ed,escapedCommand:ed,fileDescriptors:t,options:n,startTime:r,isSync:!1}),ed=`source.pipe(destination)`,td=async e=>{let[{status:t,reason:n,value:r=n},{status:i,reason:a,value:o=a}]=await e;if(o.pipedFrom.includes(r)||o.pipedFrom.push(r),i===`rejected`)throw o;if(t===`rejected`)throw r;return o},nd=(e,t,n)=>{let r=od.has(t)?id(e,t):rd(e,t);return Ii(e,sd,n.signal),Ii(t,cd,n.signal),ad(t),r},rd=(e,t)=>{let n=mu([e]);return Pu(n,t),od.set(t,n),n},id=(e,t)=>{let n=od.get(t);return n.add(e),n},ad=async e=>{try{await M(e,{cleanup:!0,readable:!1,writable:!0})}catch{}od.delete(e)},od=new WeakMap,sd=2,cd=1,ld=(e,t)=>e===void 0?[]:[ud(e,t)],ud=async(e,{sourceStream:t,mergedStream:n,fileDescriptors:r,sourceOptions:i,startTime:a})=>{throw await Xe(e,t),await n.remove(t),$u({error:Error("Pipe canceled by `unpipeSignal` option."),fileDescriptors:r,sourceOptions:i,startTime:a})},dd=(e,...t)=>{if(P(t[0]))return dd.bind(void 0,{...e,boundOptions:{...e.boundOptions,...t[0]}});let{destination:n,...r}=Ku(e,...t),i=fd({...r,destination:n});return i.pipe=dd.bind(void 0,{...e,source:n,sourcePromise:i,boundOptions:{}}),i},fd=async({sourcePromise:e,sourceStream:t,sourceOptions:n,sourceError:r,destination:i,destinationStream:a,destinationError:o,unpipeSignal:s,fileDescriptors:c,startTime:l})=>{let u=pd(e,i);Zu({sourceStream:t,sourceError:r,destinationStream:a,destinationError:o,fileDescriptors:c,sourceOptions:n,startTime:l});let d=new AbortController;try{let e=nd(t,a,d);return await Promise.race([td(u),...ld(s,{sourceStream:t,mergedStream:e,sourceOptions:n,fileDescriptors:c,startTime:l})])}finally{d.abort()}},pd=(e,t)=>Promise.allSettled([e,t]),md=({subprocessStdout:e,subprocess:t,binary:n,shouldEncode:r,encoding:i,preserveNewlines:a})=>{let o=new AbortController;return hd(t,o),vd({stream:e,controller:o,binary:n,shouldEncode:!e.readableObjectMode&&r,encoding:i,shouldSplit:!e.readableObjectMode,preserveNewlines:a})},hd=async(e,t)=>{try{await e}catch{}finally{t.abort()}},gd=({stream:e,onStreamEnd:t,lines:n,encoding:r,stripFinalNewline:i,allMixed:a})=>{let o=new AbortController;_d(t,o,e);let s=e.readableObjectMode&&!a;return vd({stream:e,controller:o,binary:r===`buffer`,shouldEncode:!s,encoding:r,shouldSplit:!s&&n,preserveNewlines:!i})},_d=async(e,t,n)=>{try{await e}catch{n.destroy()}finally{t.abort()}},vd=({stream:e,controller:t,binary:n,shouldEncode:r,encoding:i,shouldSplit:a,preserveNewlines:o})=>xd({onStdoutChunk:ze(e,`data`,{signal:t.signal,highWaterMark:bd,highWatermark:bd}),controller:t,binary:n,shouldEncode:r,encoding:i,shouldSplit:a,preserveNewlines:o}),yd=at(!0),bd=yd,xd=async function*({onStdoutChunk:e,controller:t,binary:n,shouldEncode:r,encoding:i,shouldSplit:a,preserveNewlines:o}){let s=Sd({binary:n,shouldEncode:r,encoding:i,shouldSplit:a,preserveNewlines:o});try{for await(let[t]of e)yield*el(t,s,0)}catch(e){if(!t.signal.aborted)throw e}finally{yield*tl(s)}},Sd=({binary:e,shouldEncode:t,encoding:n,shouldSplit:r,preserveNewlines:i})=>[Hc(e,n,!t),wc(e,i,!r,{})].filter(Boolean),Cd=async({stream:e,onStreamEnd:t,fdNumber:n,encoding:r,buffer:i,maxBuffer:a,lines:o,allMixed:s,stripFinalNewline:c,verboseInfo:l,streamInfo:u})=>{let d=wd({stream:e,onStreamEnd:t,fdNumber:n,encoding:r,allMixed:s,verboseInfo:l,streamInfo:u});if(!i){await Promise.all([Td(e),d]);return}let f=gd({stream:e,onStreamEnd:t,lines:o,encoding:r,stripFinalNewline:Cc(c,n),allMixed:s}),[p]=await Promise.all([Ed({stream:e,iterable:f,fdNumber:n,encoding:r,maxBuffer:a,lines:o}),d]);return p},wd=async({stream:e,onStreamEnd:t,fdNumber:n,encoding:r,allMixed:i,verboseInfo:a,streamInfo:{fileDescriptors:o}})=>{fl({stdioItems:o[n]?.stdioItems,encoding:r,verboseInfo:a,fdNumber:n})&&await hl(gd({stream:e,onStreamEnd:t,lines:!0,encoding:r,stripFinalNewline:!0,allMixed:i}),e,n,a)},Td=async e=>{await ft(),e.readableFlowing===null&&e.resume()},Ed=async({stream:e,stream:{readableObjectMode:t},iterable:n,fdNumber:r,encoding:i,maxBuffer:a,lines:o})=>{try{return t||o?await vt(n,{maxBuffer:a}):i===`buffer`?new Uint8Array(await x(n,{maxBuffer:a})):await bt(n,{maxBuffer:a})}catch(n){return Od(io({error:n,stream:e,readableObjectMode:t,lines:o,encoding:i,fdNumber:r}))}},Dd=async e=>{try{return await e}catch(e){return Od(e)}},Od=({bufferedData:e})=>At(e)?new Uint8Array(e):e,kd=async(e,t,n,{isSameDirection:r,stopOnExit:i=!1}={})=>{let a=Ad(e,n),o=new AbortController;try{await Promise.race([...i?[n.exitPromise]:[],M(e,{cleanup:!0,signal:o.signal})])}catch(e){a.stdinCleanedUp||Nd(e,t,n,r)}finally{o.abort()}},Ad=(e,{originalStreams:[t],subprocess:n})=>{let r={stdinCleanedUp:!1};return e===t&&jd(e,n,r),r},jd=(e,t,n)=>{let{_destroy:r}=e;e._destroy=(...i)=>{Md(t,n),r.call(e,...i)}},Md=({exitCode:e,signalCode:t},n)=>{(e!==null||t!==null)&&(n.stdinCleanedUp=!0)},Nd=(e,t,n,r)=>{if(!Pd(e,t,n,r))throw e},Pd=(e,t,n,r=!0)=>n.propagating?Ld(e)||Id(e):(n.propagating=!0,Fd(n,t)===r?Ld(e):Id(e)),Fd=({fileDescriptors:e},t)=>t!==`all`&&e[t].direction===`input`,Id=e=>e?.code===`ERR_STREAM_PREMATURE_CLOSE`,Ld=e=>e?.code===`EPIPE`,Rd=({subprocess:e,encoding:t,buffer:n,maxBuffer:r,lines:i,stripFinalNewline:a,verboseInfo:o,streamInfo:s})=>e.stdio.map((e,c)=>zd({stream:e,fdNumber:c,encoding:t,buffer:n[c],maxBuffer:r[c],lines:i[c],allMixed:!1,stripFinalNewline:a,verboseInfo:o,streamInfo:s})),zd=async({stream:e,fdNumber:t,encoding:n,buffer:r,maxBuffer:i,lines:a,allMixed:o,stripFinalNewline:s,verboseInfo:c,streamInfo:l})=>{if(!e)return;let u=kd(e,t,l);if(Fd(l,t)){await u;return}let[d]=await Promise.all([Cd({stream:e,onStreamEnd:u,fdNumber:t,encoding:n,buffer:r,maxBuffer:i,lines:a,allMixed:o,stripFinalNewline:s,verboseInfo:c,streamInfo:l}),u]);return d},Bd=({stdout:e,stderr:t},{all:n})=>n&&(e||t)?mu([e,t].filter(Boolean)):void 0,Vd=({subprocess:e,encoding:t,buffer:n,maxBuffer:r,lines:i,stripFinalNewline:a,verboseInfo:o,streamInfo:s})=>zd({...Hd(e,n),fdNumber:`all`,encoding:t,maxBuffer:r[1]+r[2],lines:i[1]||i[2],allMixed:Ud(e),stripFinalNewline:a,verboseInfo:o,streamInfo:s}),Hd=({stdout:e,stderr:t,all:n},[,r,i])=>{let a=r||i;return a?r?i?{stream:n,buffer:a}:{stream:e,buffer:a}:{stream:t,buffer:a}:{stream:n,buffer:a}},Ud=({all:e,stdout:t,stderr:n})=>e&&t&&n&&t.readableObjectMode!==n.readableObjectMode,Wd=e=>pn(e,`ipc`),Gd=(e,t)=>{Un({type:`ipc`,verboseMessage:qn(e),fdNumber:`ipc`,verboseInfo:t})},Kd=async({subprocess:e,buffer:t,maxBuffer:n,ipc:r,ipcOutput:i,verboseInfo:a})=>{if(!r)return i;let o=Wd(a),s=z(t,`ipc`),c=z(n,`ipc`);for await(let t of Yl({anyProcess:e,channel:e.channel,isSubprocess:!1,ipc:r,shouldAwait:!1,reference:!0}))s&&(oo(e,i,c),i.push(t)),o&&Gd(t,a);return i},qd=async(e,t)=>(await Promise.allSettled([e]),t),Jd=async({subprocess:e,options:{encoding:t,buffer:n,maxBuffer:r,lines:i,timeoutDuration:a,cancelSignal:o,gracefulCancel:s,forceKillAfterDelay:c,stripFinalNewline:l,ipc:u,ipcInput:d},context:f,verboseInfo:p,fileDescriptors:m,originalStreams:h,onInternalError:g,controller:_})=>{let v=El(e,f),y={originalStreams:h,fileDescriptors:m,subprocess:e,exitPromise:v,propagating:!1},b=Rd({subprocess:e,encoding:t,buffer:n,maxBuffer:r,lines:i,stripFinalNewline:l,verboseInfo:p,streamInfo:y}),x=Vd({subprocess:e,encoding:t,buffer:n,maxBuffer:r,lines:i,stripFinalNewline:l,verboseInfo:p,streamInfo:y}),S=[],C=Kd({subprocess:e,buffer:n,maxBuffer:r,ipc:u,ipcOutput:S,verboseInfo:p}),ee=Yd(h,e,y),te=Xd(m,y);try{return await Promise.race([Promise.all([{},kl(v),Promise.all(b),x,C,Ia(e,d),...ee,...te]),g,Zd(e,_),...Aa(e,a,f,_),...oi({subprocess:e,cancelSignal:o,gracefulCancel:s,context:f,controller:_}),...Ea({subprocess:e,cancelSignal:o,gracefulCancel:s,forceKillAfterDelay:c,context:f,controller:_})])}catch(e){return f.terminationReason??=`other`,Promise.all([{error:e},v,Promise.all(b.map(e=>Dd(e))),Dd(x),qd(C,S),Promise.allSettled(ee),Promise.allSettled(te)])}},Yd=(e,t,n)=>e.map((e,r)=>e===t.stdio[r]?void 0:kd(e,r,n)),Xd=(e,t)=>e.flatMap(({stdioItems:e},n)=>e.filter(({value:e,stream:t=e})=>he(t,{checkOpen:!1})&&!L(t)).map(({type:e,value:r,stream:i=r})=>kd(i,n,t,{isSameDirection:K.has(e),stopOnExit:e===`native`}))),Zd=async(e,{signal:t})=>{let[n]=await E(e,`error`,{signal:t});throw n},Qd=()=>({readableDestroy:new WeakMap,writableFinal:new WeakMap,writableDestroy:new WeakMap}),$d=(e,t,n)=>{let r=e[n];r.has(t)||r.set(t,[]);let i=r.get(t),a=Ti();return i.push(a),{resolve:a.resolve.bind(a),promises:i}},ef=async({resolve:e,promises:t},n)=>{e();let[r]=await Promise.race([Promise.allSettled([!0,n]),Promise.all([!1,...t])]);return!r},tf=async e=>{if(e!==void 0)try{await rf(e)}catch{}},nf=async e=>{if(e!==void 0)try{await af(e)}catch{}},rf=async e=>{await M(e,{cleanup:!0,readable:!1,writable:!0})},af=async e=>{await M(e,{cleanup:!0,readable:!0,writable:!1})},of=async(e,t)=>{if(await e,t)throw t},sf=(e,t,n)=>{n&&!Id(n)?e.destroy(n):t&&e.destroy()},cf=({subprocess:e,concurrentStreams:t,encoding:n},{from:r,binary:i=!0,preserveNewlines:a=!0}={})=>{let o=i||W.has(n),{subprocessStdout:s,waitReadableDestroy:c}=lf(e,r,t),{readableEncoding:l,readableObjectMode:u,readableHighWaterMark:d}=uf(s,o),{read:f,onStdoutDataDone:p}=df({subprocessStdout:s,subprocess:e,binary:o,encoding:n,preserveNewlines:a}),m=new A({read:f,destroy:k(mf.bind(void 0,{subprocessStdout:s,subprocess:e,waitReadableDestroy:c})),highWaterMark:d,objectMode:u,encoding:l});return pf({subprocessStdout:s,onStdoutDataDone:p,readable:m,subprocess:e}),m},lf=(e,t,n)=>{let r=Di(e,t);return{subprocessStdout:r,waitReadableDestroy:$d(n,r,`readableDestroy`)}},uf=({readableEncoding:e,readableObjectMode:t,readableHighWaterMark:n},r)=>r?{readableEncoding:e,readableObjectMode:t,readableHighWaterMark:n}:{readableEncoding:e,readableObjectMode:!0,readableHighWaterMark:yd},df=({subprocessStdout:e,subprocess:t,binary:n,encoding:r,preserveNewlines:i})=>{let a=Ti(),o=md({subprocessStdout:e,subprocess:t,binary:n,shouldEncode:!n,encoding:r,preserveNewlines:i});return{read(){ff(this,o,a)},onStdoutDataDone:a}},ff=async(e,t,n)=>{try{let{value:r,done:i}=await t.next();i?n.resolve():e.push(r)}catch{}},pf=async({subprocessStdout:e,onStdoutDataDone:t,readable:n,subprocess:r,subprocessStdin:i})=>{try{await af(e),await r,await tf(i),await t,n.readable&&n.push(null)}catch(e){await tf(i),hf(n,e)}},mf=async({subprocessStdout:e,subprocess:t,waitReadableDestroy:n},r)=>{await ef(n,t)&&(hf(e,r),await of(t,r))},hf=(e,t)=>{sf(e,e.readable,t)},gf=({subprocess:e,concurrentStreams:t},{to:n}={})=>{let{subprocessStdin:r,waitWritableFinal:i,waitWritableDestroy:a}=_f(e,n,t),o=new it({...vf(r,e,i),destroy:k(Sf.bind(void 0,{subprocessStdin:r,subprocess:e,waitWritableFinal:i,waitWritableDestroy:a})),highWaterMark:r.writableHighWaterMark,objectMode:r.writableObjectMode});return xf(r,o),o},_f=(e,t,n)=>{let r=Ei(e,t);return{subprocessStdin:r,waitWritableFinal:$d(n,r,`writableFinal`),waitWritableDestroy:$d(n,r,`writableDestroy`)}},vf=(e,t,n)=>({write:yf.bind(void 0,e),final:k(bf.bind(void 0,e,t,n))}),yf=(e,t,n,r)=>{e.write(t,n)?r():e.once(`drain`,r)},bf=async(e,t,n)=>{await ef(n,t)&&(e.writable&&e.end(),await t)},xf=async(e,t,n)=>{try{await rf(e),t.writable&&t.end()}catch(e){await nf(n),Cf(t,e)}},Sf=async({subprocessStdin:e,subprocess:t,waitWritableFinal:n,waitWritableDestroy:r},i)=>{await ef(n,t),await ef(r,t)&&(Cf(e,i),await of(t,i))},Cf=(e,t)=>{sf(e,e.writable,t)},wf=({subprocess:e,concurrentStreams:t,encoding:n},{from:r,to:i,binary:a=!0,preserveNewlines:o=!0}={})=>{let s=a||W.has(n),{subprocessStdout:c,waitReadableDestroy:l}=lf(e,r,t),{subprocessStdin:u,waitWritableFinal:d,waitWritableDestroy:f}=_f(e,i,t),{readableEncoding:p,readableObjectMode:m,readableHighWaterMark:h}=uf(c,s),{read:g,onStdoutDataDone:_}=df({subprocessStdout:c,subprocess:e,binary:s,encoding:n,preserveNewlines:o}),v=new tt({read:g,...vf(u,e,d),destroy:k(Tf.bind(void 0,{subprocessStdout:c,subprocessStdin:u,subprocess:e,waitReadableDestroy:l,waitWritableFinal:d,waitWritableDestroy:f})),readableHighWaterMark:h,writableHighWaterMark:u.writableHighWaterMark,readableObjectMode:m,writableObjectMode:u.writableObjectMode,encoding:p});return pf({subprocessStdout:c,onStdoutDataDone:_,readable:v,subprocess:e,subprocessStdin:u}),xf(u,v,c),v},Tf=async({subprocessStdout:e,subprocessStdin:t,subprocess:n,waitReadableDestroy:r,waitWritableFinal:i,waitWritableDestroy:a},o)=>{await Promise.all([mf({subprocessStdout:e,subprocess:n,waitReadableDestroy:r},o),Sf({subprocessStdin:t,subprocess:n,waitWritableFinal:i,waitWritableDestroy:a},o)])},Ef=(e,t,{from:n,binary:r=!1,preserveNewlines:i=!1}={})=>{let a=r||W.has(t),o=Di(e,n);return Df(md({subprocessStdout:o,subprocess:e,binary:a,shouldEncode:!0,encoding:t,preserveNewlines:i}),o,e)},Df=async function*(e,t,n){try{yield*e}finally{t.readable&&t.destroy(),await n}},Of=(e,{encoding:t})=>{let n=Qd();e.readable=cf.bind(void 0,{subprocess:e,concurrentStreams:n,encoding:t}),e.writable=gf.bind(void 0,{subprocess:e,concurrentStreams:n}),e.duplex=wf.bind(void 0,{subprocess:e,concurrentStreams:n,encoding:t}),e.iterable=Ef.bind(void 0,e,t),e[Symbol.asyncIterator]=Ef.bind(void 0,e,t,{})},kf=(e,t)=>{for(let[n,r]of jf){let i=r.value.bind(t);Reflect.defineProperty(e,n,{...r,value:i})}},Af=(async()=>{})().constructor.prototype,jf=[`then`,`catch`,`finally`].map(e=>[e,Reflect.getOwnPropertyDescriptor(Af,e)]),Mf=(e,t,n,r)=>{let{file:i,commandArguments:a,command:o,escapedCommand:s,startTime:c,verboseInfo:l,options:u,fileDescriptors:d}=Nf(e,t,n),{subprocess:f,promise:p}=Ff({file:i,commandArguments:a,options:u,startTime:c,verboseInfo:l,command:o,escapedCommand:s,fileDescriptors:d});return f.pipe=dd.bind(void 0,{source:f,sourcePromise:p,boundOptions:{},createNested:r}),kf(f,p),U.set(f,{options:u,fileDescriptors:d}),f},Nf=(e,t,n)=>{let{command:r,escapedCommand:i,startTime:a,verboseInfo:o}=nr(e,t,n),{file:s,commandArguments:c,options:l}=qa(e,t,n),u=Pf(l);return{file:s,commandArguments:c,command:r,escapedCommand:i,startTime:a,verboseInfo:o,options:u,fileDescriptors:uu(u,o)}},Pf=({timeout:e,signal:t,...n})=>{if(t!==void 0)throw TypeError(`The "signal" option has been renamed to "cancelSignal" instead.`);return{...n,timeoutDuration:e}},Ff=({file:e,commandArguments:t,options:n,startTime:r,verboseInfo:i,command:a,escapedCommand:o,fileDescriptors:s})=>{let c;try{c=He(...Xa(e,t,n))}catch(e){return ru({error:e,command:a,escapedCommand:o,fileDescriptors:s,options:n,startTime:r,verboseInfo:i})}let l=new AbortController;Be(1/0,l.signal);let u=[...c.stdio];zu(c,s,l),Gu(c,n,l);let d={},f=Ti();c.kill=$r.bind(void 0,{kill:c.kill.bind(c),options:n,onInternalError:f,context:d,controller:l}),c.all=Bd(c,n),Of(c,n),eu(c,n);let p=If({subprocess:c,options:n,startTime:r,verboseInfo:i,fileDescriptors:s,originalStreams:u,command:a,escapedCommand:o,context:d,onInternalError:f,controller:l});return{subprocess:c,promise:p}},If=async({subprocess:e,options:t,startTime:n,verboseInfo:r,fileDescriptors:i,originalStreams:a,command:o,escapedCommand:s,context:c,onInternalError:l,controller:u})=>{let[d,[f,p],m,h,g]=await Jd({subprocess:e,options:t,context:c,verboseInfo:r,fileDescriptors:i,originalStreams:a,onInternalError:l,controller:u});return u.abort(),l.resolve(),Lo(Lf({errorInfo:d,exitCode:f,signal:p,stdio:m.map((e,n)=>Y(e,t,n)),all:Y(h,t,`all`),ipcOutput:g,context:c,options:t,command:o,escapedCommand:s,startTime:n}),r,t)},Lf=({errorInfo:e,exitCode:t,signal:n,stdio:r,all:i,ipcOutput:a,context:o,options:s,command:c,escapedCommand:l,startTime:u})=>`error`in e?So({error:e.error,command:c,escapedCommand:l,timedOut:o.terminationReason===`timeout`,isCanceled:o.terminationReason===`cancel`||o.terminationReason===`gracefulCancel`,isGracefullyCanceled:o.terminationReason===`gracefulCancel`,isMaxBuffer:e.error instanceof C,isForcefullyTerminated:o.isForcefullyTerminated,exitCode:t,signal:n,stdio:r,all:i,ipcOutput:a,options:s,startTime:u,isSync:!1}):bo({command:c,escapedCommand:l,stdio:r,all:i,ipcOutput:a,options:s,startTime:u}),Rf=(e,t)=>{let n=Object.fromEntries(Object.entries(t).map(([t,n])=>[t,zf(t,e[t],n)]));return{...e,...n}},zf=(e,t,n)=>Bf.has(e)&&P(t)&&P(n)?{...t,...n}:n,Bf=new Set([`env`,...dn]),X=(e,t,n,r)=>{let i=(e,t,r)=>X(e,t,n,r),a=(...a)=>Vf({mapArguments:e,deepOptions:n,boundOptions:t,setBoundExeca:r,createNested:i},...a);return r!==void 0&&r(a,i,t),a},Vf=({mapArguments:e,deepOptions:t={},boundOptions:n={},setBoundExeca:r,createNested:i},a,...o)=>{if(P(a))return i(e,Rf(n,a),r);let{file:s,commandArguments:c,options:l,isSync:u}=Hf({mapArguments:e,firstArgument:a,nextArguments:o,deepOptions:t,boundOptions:n});return u?Pl(s,c,l):Mf(s,c,l,i)},Hf=({mapArguments:e,firstArgument:t,nextArguments:n,deepOptions:r,boundOptions:i})=>{let[a,o,s]=Ot(...Vt(t)?Ht(t,n):[t,...n]),c=Rf(Rf(r,i),s),{file:l=a,commandArguments:u=o,options:d=c,isSync:f=!1}=e({file:a,commandArguments:o,options:c});return{file:l,commandArguments:u,options:d,isSync:f}},Uf=({file:e,commandArguments:t})=>Gf(e,t),Wf=({file:e,commandArguments:t})=>({...Gf(e,t),isSync:!0}),Gf=(e,t)=>{if(t.length>0)throw TypeError(`The command and its arguments must be passed as a single string: ${e} ${t}.`);let[n,...r]=Kf(e);return{file:n,commandArguments:r}},Kf=e=>{if(typeof e!=`string`)throw TypeError(`The command must be a string: ${String(e)}.`);let t=e.trim();if(t===``)return[];let n=[];for(let e of t.split(qf)){let t=n.at(-1);t&&t.endsWith(`\\`)?n[n.length-1]=`${t.slice(0,-1)} ${e}`:n.push(e)}return n},qf=/ +/g,Jf=(e,t,n)=>{e.sync=t(Xf,n),e.s=e.sync},Yf=({options:e})=>Zf(e),Xf=({options:e})=>({...Zf(e),isSync:!0}),Zf=e=>({options:{...Qf(e),...e}}),Qf=({input:e,inputFile:t,stdio:n})=>e===void 0&&t===void 0&&n===void 0?{stdin:`inherit`}:{},$f={preferLocal:!0},ep=X(()=>({}));X(()=>({isSync:!0})),X(Uf),X(Wf),X(Ma),X(Yf,{},$f,Jf);const{sendMessage:tp,getOneMessage:np,getEachMessage:rp,getCancelSignal:ip}=tu(),ap={Base64:`base64`,Utf8:`utf8`},op=se(xe,e=>(e??=``,[`true`,`1`].includes(e.trim().toLowerCase())));var sp=t(a(),1);const Z=()=>!ee.testLike&&op(process.env.CI)?new Date().toISOString():S.gray((0,sp.default)().format(`hh:mm:ss A`));var Q=t(s(),1),cp=class extends Map{created=se(()=>Array.from(this.entries()).filter(([,e])=>e.type===`create`).map(([e])=>e));updated=se(()=>Array.from(this.entries()).filter(([,e])=>e.type===`update`).map(([e])=>e));deleted=se(()=>Array.from(this.entries()).filter(([,e])=>e.type===`delete`).map(([e])=>e))};const lp=T.created(`+`),up=T.updated(`±`),dp=T.deleted(`-`),fp=T.renamed(`→`),pp=(e,{changes:t,tense:n,limit:r=1/0,...a})=>{ue.logLevel<=me.TRACE&&(r=1/0);let o=Array.from(t.entries()).filter(([e])=>!e.startsWith(`.gadget/`));if(o.length===0)return``;let s=T.renamed(n===`past`?`renamed`:`rename`),c=T.created(n===`past`?`created`:`create`),l=T.updated(n===`past`?`updated`:`update`),u=T.deleted(n===`past`?`deleted`:`delete`),d=o.sort((e,t)=>e[0].localeCompare(t[0])).slice(0,r).map(([e,t])=>{switch(!0){case t.type===`create`&&ce(t.oldPath):return[fp,T.renamed(t.oldPath),s,fp,T.renamed(e)];case t.type===`create`:return[lp,T.created(e),c];case t.type===`update`:return[up,T.updated(e),l];case t.type===`delete`:return[dp,T.deleted(e),u];default:return oe(t)}});o.length>r&&d.push([T.subdued(i.ellipsis),`${T.subdued(String(o.length-r)+` more`)}`,``]);let f;if(o.length>=5){let e=[],t=o.filter(([,e])=>e.type===`create`).length;if(t>0){let r=n===`past`?`${t} created`:(0,Q.default)(`create`,t,!0);e.push(T.created(r))}let r=o.filter(([,e])=>e.type===`update`).length;if(r>0){let t=n===`past`?`${r} updated`:(0,Q.default)(`update`,r,!0);e.push(T.updated(t))}let i=o.filter(([,e])=>e.type===`delete`).length;if(i>0){let t=n===`past`?`${i} deleted`:(0,Q.default)(`delete`,i,!0);e.push(T.deleted(t))}f=v`
|
|
36
|
+
${(0,Q.default)(`change`,o.length,!0)} in total. ${e.join(`, `)}.
|
|
37
|
+
`}return Fe({rows:d,footer:f,ensureEmptyLineAbove:!0,ensureEmptyLineAboveBody:!1,ensureEmptyLineAboveFooter:!0,...a})},mp=(e,t)=>{let n=pp(e,t);n&&le(n)};var hp=class extends Map{created(){return Array.from(this.entries()).filter(([,e])=>e.type===`create`).map(([e])=>e)}updated(){return Array.from(this.entries()).filter(([,e])=>e.type===`update`).map(([e])=>e)}deleted(){return Array.from(this.entries()).filter(([,e])=>e.type===`delete`).map(([e])=>e)}};const gp=(e,{from:t,to:n,existing:r,ignore:i})=>{let a=new hp,o=Object.keys(n);for(let[r,s]of Object.entries(t)){if(i?.some(e=>r.startsWith(e)))continue;let t=n[r];t?vp(r,s,t)||(a.set(r,{type:`update`,sourceHash:s,targetHash:t}),e.log.trace(`file updated`,{path:r,sourceHash:s,targetHash:t})):(!r.endsWith(`/`)||!o.some(e=>e.startsWith(r)))&&(a.set(r,{type:`delete`,sourceHash:s}),e.log.trace(`file deleted`,{path:r,sourceHash:s}))}for(let r of o)if(!i?.some(e=>r.startsWith(e))&&!t[r]){let t=n[r];N(t,`targetHash should exist`),a.set(r,{type:`create`,targetHash:t}),e.log.trace(`file created`,{path:r,targetHash:t})}return r?_p(e,{changes:a,existing:r}):a},_p=(e,{changes:t,existing:n})=>{let r=new hp;for(let[i,a]of t){let t=n[i];if(a.type===`delete`&&!t){e.log.trace(`already deleted`,{path:i});continue}if(a.type!==`delete`&&t&&vp(i,a.targetHash,t)){e.log.trace(`already created or updated`,{path:i,existingHash:t,targetHash:a.targetHash});continue}r.set(i,a)}return r},vp=(e,t,n)=>t.sha1===n.sha1,yp=(e,t,n)=>{for(let[r,i]of Object.entries(t)){let t=n[r];if(!t||!vp(r,i,t))return e.log.debug(`hashes are not equal`,{path:r,aHash:i,bHash:t}),!1}for(let r of Object.keys(n))if(!t[r])return e.log.debug(`hashes are not equal`,{path:r,aHash:void 0,bHash:n[r]}),!1;return!0};var bp=class extends Map{};const xp=({localChanges:e,environmentChanges:t})=>{let n=new bp;for(let[r,i]of e){let e=t.get(r);e&&(i.type===`delete`&&e.type===`delete`||`targetHash`in i&&`targetHash`in e&&vp(r,i.targetHash,e.targetHash)||n.set(r,{localChange:i,gadgetChange:e}))}for(let e of n.keys())e.startsWith(`.gadget/`)&&n.delete(e);return n},Sp=({conflicts:e,changes:t})=>{let n=new hp(t);for(let[t]of n)e.has(t)&&n.delete(t);return n},Cp=({conflicts:e})=>{let t=S.greenBright(`+ created`),n=S.blueBright(`± updated`),r=S.redBright(`- deleted`);Ie({title:`These files have conflicting changes.`,ensureEmptyLineAbove:!0,ensureEmptyLineAboveBody:!0,colAligns:[`left`,`center`,`center`],headers:[``,`You`,`Environment`],rows:Array.from(e.entries()).sort((e,t)=>e[0].localeCompare(t[0])).map(([e,{localChange:i,gadgetChange:a}])=>{switch(!0){case i.type===`create`&&a.type===`create`:return[e,t,t];case i.type===`create`&&a.type===`update`:return[e,t,n];case i.type===`create`&&a.type===`delete`:return[e,t,r];case i.type===`update`&&a.type===`create`:return[e,n,t];case i.type===`update`&&a.type===`update`:return[e,n,n];case i.type===`update`&&a.type===`delete`:return[e,n,r];case i.type===`delete`&&a.type===`create`:return[e,r,t];case i.type===`delete`&&a.type===`update`:return[e,r,n];default:throw Error(`Unexpected conflict: ${i.type} vs ${a.type}`)}})})},wp=Object.freeze({CANCEL:`cancel`,MERGE:`merge`,PUSH:`push`,PULL:`pull`}),Tp=Object.freeze({CANCEL:y`Cancel (Ctrl+C)`,LOCAL:y`Keep ${T.emphasis(`local`)} conflicting changes`,ENVIRONMENT:y`Keep ${T.emphasis(`environment`)}'s conflicting changes`}),Ep=[`local`,`environment`],Dp=(e,t)=>{if(Ep.includes(e))return Tp[e.toUpperCase()];throw new f(y`
|
|
38
|
+
${t} must be ${Ep.map(e=>T.identifier(e)).join(` or `)}
|
|
39
|
+
|
|
40
|
+
${T.header(`EXAMPLES:`)}
|
|
41
|
+
${Ep.map(e=>`${t}=${e}`).join(`
|
|
42
|
+
`)}
|
|
43
|
+
`)};var $=t(ne(),1),Op=class{_syncOperations=new g({concurrency:1});syncJson;constructor(e){this.syncJson=e}async hashes(e,{silent:t=!1}={}){let n=t?void 0:Pe({ensureEmptyLineAbove:!0,content:`Calculating file changes.`});try{let[t,{localFilesVersionHashes:r,environmentHashes:i,environmentFilesVersion:a}]=await Promise.all([this.syncJson.directory.hashes(),(async()=>{let e,t,n;if(this.syncJson.filesVersion===0n){let{fileSyncHashes:r}=await this.syncJson.edit.query({query:l});n=BigInt(r.filesVersion),t=r.hashes,e={}}else{let{fileSyncComparisonHashes:r}=await this.syncJson.edit.query({query:m,variables:{filesVersion:String(this.syncJson.filesVersion)}});e=r.filesVersionHashes.hashes,t=r.latestFilesVersionHashes.hashes,n=BigInt(r.latestFilesVersionHashes.filesVersion)}return{localFilesVersionHashes:e,environmentHashes:t,environmentFilesVersion:n}})()]),o=yp(e,t,i),s=gp(e,{from:r,to:t,existing:i,ignore:[`.gadget/`]}),c=gp(e,{from:r,to:i,existing:t});!o&&s.size===0&&c.size===0&&(c=gp(e,{from:t,to:i}),N(c.size>0,`expected environmentChanges to have changes`),N(Array.from(c.keys()).every(e=>e.startsWith(`.gadget/`)),`expected all environmentChanges to be .gadget/ files`)),N(o||s.size>0||c.size>0,`there must be changes if hashes don't match`);let u=gp(e,{from:i,to:t,ignore:[`.gadget/`]}),d=gp(e,{from:t,to:i}),f=c.size>0&&Array.from(c.keys()).every(e=>e.startsWith(`.gadget/`)),p=s.size>0&&c.size>0&&!f;return n&&(f?n.clear():o?n.succeed(`Your files are up to date. ${Z()}`):n.succeed(`Calculated file changes. ${Z()}`)),{inSync:o,localFilesVersionHashes:r,localHashes:t,localChanges:s,localChangesToPush:u,environmentHashes:i,environmentChanges:c,environmentChangesToPull:d,environmentFilesVersion:a,onlyDotGadgetFilesChanged:f,bothChanged:p}}catch(e){throw n&&n.fail(),e}}async print(e,{hashes:t}={}){let{inSync:n,localChanges:r,environmentChanges:i,onlyDotGadgetFilesChanged:a,bothChanged:o}=t??await this.hashes(e);n||(r.size>0?mp(e,{changes:r,tense:`past`,title:y`Your local files ${T.emphasis(`have`)} changed.`}):le({ensureEmptyLineAbove:!0,content:y`Your local files ${T.emphasis(`have not`)} changed.`}),i.size>0&&!a?mp(e,{changes:i,tense:`past`,title:y`Your environment's files ${T.emphasis(`have`)}${o?` also`:``} changed.`}):le({ensureEmptyLineAbove:!0,content:y`Your environment's files ${T.emphasis(`have not`)} changed.`}))}async idle(){await this._syncOperations.onIdle()}async mergeChangesWithEnvironment(e,{changes:t,printLocalChangesOptions:n,printEnvironmentChangesOptions:r}){await this._syncOperations.add(async()=>{try{await this._sendChangesToEnvironment(e,{changes:t,printLocalChangesOptions:n})}catch(t){je(e,t),await this.merge(e,{printEnvironmentChangesOptions:r})}})}subscribeToEnvironmentChanges(e,{beforeChanges:t=Se,printEnvironmentChangesOptions:n,afterChanges:r=Se,onError:a}){return this.syncJson.edit.subscribe({subscription:u,variables:()=>({localFilesVersion:String(this.syncJson.filesVersion)}),onError:a,onData:({remoteFileSyncEvents:{changed:o,deleted:s,remoteFilesVersion:c}})=>{this._syncOperations.add(async()=>{if(BigInt(c)<this.syncJson.filesVersion){e.log.warn(`skipping received changes because files version is outdated`,{filesVersion:c});return}e.log.debug(`received files`,{remoteFilesVersion:c,changed:o.map(e=>e.path),deleted:s.map(e=>e.path)});let a=t=>{let n=this.syncJson.directory.ignores(t.path,t.path.endsWith(`/`));return n&&e.log.warn(`skipping received change because file is ignored`,{path:t.path}),!n};if(o=o.filter(a),s=s.filter(a),o.length===0&&s.length===0){await this.syncJson.save(c);return}await t({changed:o.map(e=>e.path),deleted:s.map(e=>e.path)}),await r({changes:await this.writeToLocalFilesystem(e,{filesVersion:c,files:o,delete:s.map(e=>e.path),printEnvironmentChangesOptions:{tense:`past`,ensureEmptyLineAbove:!0,title:v`${T.created(i.tick)} Pulled ${(0,Q.default)(`file`,o.length+s.length)}. ${Z()}`,limit:5,...n}})})}).catch(a)}})}async merge(e,{hashes:t,prefer:n,maxAttempts:r=10,printLocalChangesOptions:i,printEnvironmentChangesOptions:a,silent:o}={}){let s=0;do{if(s===0?t??=await this.hashes(e,{silent:o}):t=await this.hashes(e,{silent:o}),t.inSync){this._syncOperations.clear(),e.log.info(`filesystem in sync`),await this.syncJson.save(t.environmentFilesVersion);return}s+=1,e.log.info(`merging`,{attempt:s,...t});try{await this._merge(e,{hashes:t,prefer:n,printLocalChangesOptions:i,printEnvironmentChangesOptions:a})}catch(t){je(e,t)}}while(s<r);throw new De(r)}async push(e,{command:t,hashes:n,maxAttempts:r=10,printLocalChangesOptions:i}){let a=0;do{let{localChangesToPush:r,environmentFilesVersion:s}=n??await this.hashes(e);if(r.size===0)return;a+=1;try{await this._sendChangesToEnvironment(e,{changes:r,expectedFilesVersion:s,printLocalChangesOptions:i});return}catch(r){if(je(e,r),n=await this.hashes(e,{silent:!0}),n.environmentFilesVersion>s+1n)return;if(n.onlyDotGadgetFilesChanged)continue;throw new o(y`
|
|
44
|
+
Your environment's files have changed since we last checked.
|
|
45
|
+
|
|
46
|
+
Please re-run "ggt ${t}" to see the changes and try again.
|
|
47
|
+
`)}}while(a<r);throw new Ae(r,t)}async pull(e,{hashes:t,force:n,printEnvironmentChangesOptions:r}={}){let{localChanges:i,environmentChangesToPull:a,environmentFilesVersion:o}=t??await this.hashes(e);N(a.size>0,`cannot pull if there are no changes`),i.size>0&&!n&&await d(y`
|
|
48
|
+
Are you sure you want to ${T.emphasis(`discard`)} your local changes?
|
|
49
|
+
`),await this._getChangesFromEnvironment(e,{changes:a,filesVersion:o,printEnvironmentChangesOptions:r})}async writeToLocalFilesystem(e,t){let n=BigInt(t.filesVersion);N(n>=this.syncJson.filesVersion,`filesVersion must be greater than or equal to current filesVersion`),e.log.debug(`writing to local filesystem`,{filesVersion:n,files:t.files.map(e=>e.path),delete:t.delete});let r=new cp,a=new Set;for(let e of t.delete.sort().reverse()){let t=O.dirname(e);for(;t!==`.`;)a.add(this.syncJson.directory.normalize(t,!0)),t=O.dirname(t);await $.default.remove(this.syncJson.directory.absolute(e)),r.set(e,{type:`delete`})}t.delete.includes(`.ignore`)&&await this.syncJson.directory.loadIgnoreFile();for(let e of Array.from(a.values()).sort().reverse())if(!t.files.some(t=>t.path===e))try{await $.default.rmdir(this.syncJson.directory.absolute(e)),r.set(e,{type:`delete`})}catch(e){if(pe(e)||be(e))continue;throw e}if(await we(t.files,async e=>{let t=this.syncJson.directory.absolute(e.path);if(await $.default.pathExists(t)?e.path.endsWith(`/`)||r.set(e.path,{type:`update`}):r.set(e.path,{type:`create`}),e.path.endsWith(`/`)?await $.default.ensureDir(t):await $.default.outputFile(t,Buffer.from(e.content,e.encoding)),Te)try{await $.default.chmod(t,e.mode&511)}catch(e){Ee(e)}t===this.syncJson.directory.absolute(`.ignore`)&&await this.syncJson.directory.loadIgnoreFile()}),await this.syncJson.save(String(n)),t.spinner?.clear(),mp(e,{changes:r,tense:`past`,title:y`${T.created(i.arrowDown)} Pulled ${(0,Q.default)(`file`,r.size)}. ${Z()}`,...t.printEnvironmentChangesOptions}),r.has(`yarn.lock`)){let t=Pe({ensureEmptyLineAbove:!0,content:`Running "yarn install --check-files"`});try{await ep(`yarn`,[`install`,`--check-files`],{cwd:this.syncJson.directory.path}),t.succeed(`Ran "yarn install --check-files" ${Z()}`)}catch(n){t.fail(),e.log.error(`yarn install failed`,{error:n});let r=fe(n).message;r&&le({ensureEmptyLineAbove:!0,content:Ce(r,2)})}}return r}async _merge(e,{hashes:{localChanges:t,environmentChanges:n,environmentFilesVersion:r},prefer:i,printLocalChangesOptions:a,printEnvironmentChangesOptions:o}){let s=xp({localChanges:t,environmentChanges:n});if(s.size>0)switch(e.log.debug(`conflicts detected`,{conflicts:s}),i||=(Cp({conflicts:s}),await Ne({choices:Object.values(Tp),content:T.header(`How should we resolve these conflicts?`)})),i){case Tp.CANCEL:j.exit(0);break;case Tp.LOCAL:n=Sp({conflicts:s,changes:n});break;case Tp.ENVIRONMENT:t=Sp({conflicts:s,changes:t});break}n.size>0&&await this._getChangesFromEnvironment(e,{changes:n,filesVersion:r,printEnvironmentChangesOptions:o}),t.size>0&&await this._sendChangesToEnvironment(e,{changes:t,expectedFilesVersion:r,printLocalChangesOptions:a})}async _getChangesFromEnvironment(e,{filesVersion:t,changes:n,printEnvironmentChangesOptions:r}){e.log.debug(`getting changes from gadget`,{filesVersion:t,changes:n});let i=n.created(),a=n.updated(),o=Pe({ensureEmptyLineAbove:!0,content:pp(e,{changes:n,tense:`present`,title:y`Pulling ${(0,Q.default)(`file`,n.size)}.`,...r})});try{let s=[];if(i.length>0||a.length>0){let{fileSyncFiles:e}=await this.syncJson.edit.query({query:h,variables:{paths:[...i,...a],filesVersion:String(t),encoding:ap.Base64}});s=e.files}await this.writeToLocalFilesystem(e,{filesVersion:t,files:s,delete:n.deleted(),spinner:o,printEnvironmentChangesOptions:r})}catch(e){throw o.fail(),e}}async _sendChangesToEnvironment(e,{changes:t,expectedFilesVersion:n=this.syncJson.filesVersion,printLocalChangesOptions:r}){e.log.debug(`sending changes to gadget`,{expectedFilesVersion:n,changes:t});let a=[],s=[];if(await we(t,async([t,n])=>{if(n.type===`delete`){s.push({path:t});return}let r=this.syncJson.directory.absolute(t),i;try{i=await $.default.stat(r)}catch(n){Ee(n),e.log.debug(`skipping change because file doesn't exist`,{path:t});return}let o=``;i.isFile()&&(o=await $.default.readFile(r,ap.Base64));let c;n.type===`create`&&n.oldPath&&(c=n.oldPath),a.push({content:o,oldPath:c,path:t,mode:i.mode,encoding:ap.Base64})}),a.length===0&&s.length===0){e.log.debug(`skipping send because there are no changes`);return}if(a.map(e=>e.content.length).reduce((e,t)=>e+t,0)>52428800)throw new o(y`
|
|
50
|
+
${T.emphasis(`Your file changes are too large to push.`)}
|
|
51
|
+
|
|
52
|
+
Run "ggt status" to see your changes and consider
|
|
53
|
+
ignoring some files or pushing in smaller batches.
|
|
54
|
+
`);let l=Pe({ensureEmptyLineAbove:!0,content:pp(e,{changes:t,tense:`present`,title:v`Pushing ${(0,Q.default)(`file`,a.length+s.length)}. ${i.arrowRight}`,...r})});try{let{publishFileSyncEvents:{remoteFilesVersion:o,problems:u}}=await this.syncJson.edit.mutate({mutation:p,variables:{input:{expectedRemoteFilesVersion:String(n),changed:a,deleted:s}},http:{retry:{methods:[`POST`],errorCodes:[...c],calculateDelay:({error:e,computedValue:t})=>Oe(e.response?.body)?0:t}}});if(BigInt(o)>n+1n)throw Error(`Files version mismatch`);await this.syncJson.save(o),l.succeed(pp(e,{changes:t,tense:`past`,title:v`Pushed ${(0,Q.default)(`file`,a.length+s.length)}. ${i.arrowRight} ${Z()}`,...r})),u.length>0&&le({ensureEmptyLineAbove:!0,content:y`
|
|
55
|
+
${T.error(`Gadget has detected the following fatal errors with your files:`)}
|
|
56
|
+
|
|
57
|
+
${Me({problems:ke(u),showFileTypes:!1})}
|
|
58
|
+
|
|
59
|
+
${T.error(`Your app will not be operational until all fatal errors are fixed.`)}
|
|
60
|
+
`})}catch(e){throw Oe(e)?l.clear():l.fail(),e}}};export{xp as a,dp as c,Ep as i,up as l,wp as n,Cp as o,Dp as r,cp as s,Op as t,Z as u};
|
|
61
|
+
//# sourceMappingURL=filesync-De6asZeR.js.map
|