@gfdelarue/testkit 0.3.1 → 0.3.3

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.
Files changed (60) hide show
  1. package/README.md +1 -1
  2. package/bin/testkit-windows-owner-arm64.exe +0 -0
  3. package/bin/testkit-windows-owner-x64.exe +0 -0
  4. package/dist/app/cloud/control.js +2 -2
  5. package/dist/app/cloud/login.d.ts +4 -4
  6. package/dist/app/inspect/artifacts.d.ts +4 -4
  7. package/dist/app/run/engine-failure-stack.d.ts +1 -0
  8. package/dist/app/run/engine-failure-stack.js +2 -0
  9. package/dist/app/run/worker-loop.js +1 -1
  10. package/dist/app/setup/playwright.js +1 -1
  11. package/dist/app/typecheck/index.js +4 -4
  12. package/dist/cli/command-catalog.d.ts +24 -24
  13. package/dist/cli/command-flags.d.ts +3 -3
  14. package/dist/cli/commands/artifacts.d.ts +16 -16
  15. package/dist/cli/commands/cleanup.d.ts +1 -1
  16. package/dist/cli/commands/cloud/login.d.ts +1 -1
  17. package/dist/cli/commands/cloud/status.d.ts +3 -3
  18. package/dist/config/loader/discover-tests.d.ts +5 -0
  19. package/dist/config/loader/discover-tests.js +1 -1
  20. package/dist/config/loader/file-metadata.d.ts +1 -1
  21. package/dist/config/loader/file-metadata.js +1 -1
  22. package/dist/config/loader/index.d.ts +1 -1
  23. package/dist/config/loader/index.js +1 -1
  24. package/dist/database/docker-metadata.d.ts +3 -0
  25. package/dist/database/docker-metadata.js +3 -0
  26. package/dist/database/docker.js +5 -5
  27. package/dist/database/index.js +1 -1
  28. package/dist/database/local-postgres.js +1 -1
  29. package/dist/database/postgres/index.js +2 -2
  30. package/dist/database/runtime-config.d.ts +5 -5
  31. package/dist/database/schema-source.d.ts +4 -1
  32. package/dist/database/schema-source.js +3 -3
  33. package/dist/database/template-steps.d.ts +4 -0
  34. package/dist/database/template-steps.js +4 -4
  35. package/dist/engines/managed-module-resolution.js +5 -3
  36. package/dist/engines/node-vitest/adapter/consumer-typescript-paths.js +2 -2
  37. package/dist/engines/node-vitest/runtime/runtime-input.js +1 -1
  38. package/dist/engines/playwright/runtime/runtime-input.js +1 -1
  39. package/dist/environment/template.d.ts +20 -20
  40. package/dist/process/execa-bundle-licenses.txt +411 -0
  41. package/dist/process/execa-bundle.json +874 -0
  42. package/dist/process/files/json-file.js +1 -1
  43. package/dist/process/host-process.d.ts +6 -1
  44. package/dist/process/host-process.js +1 -1
  45. package/dist/process/index.d.ts +2 -2
  46. package/dist/process/locks.js +3 -3
  47. package/dist/process/process-contracts.d.ts +10 -2
  48. package/dist/process/process-identity.js +1 -1
  49. package/dist/process/process.d.ts +3 -2
  50. package/dist/process/process.js +46 -1
  51. package/dist/repo/metadata.js +1 -1
  52. package/dist/repo/state.d.ts +1 -0
  53. package/dist/repo/state.js +4 -4
  54. package/dist/steps/configured-step-testkit-modules.d.ts +1 -1
  55. package/dist/steps/run.js +2 -2
  56. package/dist/toolchains/archive.js +1 -1
  57. package/dist/toolchains/node-integrity.d.ts +2 -0
  58. package/dist/toolchains/node-integrity.js +1 -1
  59. package/dist/toolchains/node-provisioning.js +2 -2
  60. package/package.json +4 -3
@@ -1 +1,46 @@
1
- import{execa as v}from"execa";import{accessSync as O}from"node:fs";import{isAbsolute as D}from"node:path";import"./process-contracts.js";import{captureProcessCreationIdentity as G,inspectProcessLiveness as _}from"./process-identity.js";import{MAX_SUPERVISED_PROCESS_CAPTURE_BYTES as B}from"./process-limits.js";export{}from"./process-contracts.js";export{terminateAttributedProcessLineage,terminateOwnedPosixProcessGroup}from"./recovery.js";import{cleanupExitedProcessGroup as E,processGroupExists as S}from"./process-group.js";import{createShutdownDeadline as R,DEFAULT_SHUTDOWN_TIMEOUT_MS as c}from"./shutdown.js";export{cleanupExitedProcessGroup}from"./process-group.js";export function runManagedProcess(e){if(C(e,!1),e.signal.aborted)return Promise.resolve(A());try{const t=y(e,"bounded-capture",{cancelSignal:e.signal,forceKillAfterDelay:c});return k(t)}catch(t){return Promise.resolve(U(t))}}export class ProcessExitedBeforeReadyError extends Error{exitCode;exitSignal;constructor(t,n){super("Process exited before becoming ready"),this.exitCode=t,this.exitSignal=n}}export function startSupervisedProcess(e){if(C(e,!0),e.signal.aborted)throw new Error(`${e.displayLabel} was cancelled before its process could start`);const t=y(e,e.outputMode,{forceKillAfterDelay:e.shutdownTimeoutMs===void 0?c:!1}),n=t.pid;if(n===void 0)throw t.kill("SIGKILL"),new Error(`${e.displayLabel} could not start ${JSON.stringify(e.executable)}`);let i=!1,m=!1,f=!1;const l=R(e.shutdownTimeoutMs??c);let a=null;const o={failure:null,cleanup:null},w=()=>{if(o.failure=null,l.deadlineAt!==null)try{a?.(l.deadlineAt)}catch(r){o.failure=p(r)}},d=r=>{f||(l.begin(r)&&w(),!i&&(i=!0,t.kill("SIGTERM"),o.cleanup=E(n,{remainingMs:l.remainingMs,initialSignalSent:!0,sendSignal:(s,u)=>{t.kill(u)}})))},g=()=>{!i&&!f&&t.nodeChildProcess.exitCode===null&&t.nodeChildProcess.signalCode===null&&(m=!0),d()};for(const r of[t.stdout,t.stderr])r.once("close",()=>{!r.readableEnded&&t.nodeChildProcess.exitCode===null&&t.nodeChildProcess.signalCode===null&&d()});e.signal.addEventListener("abort",g,{once:!0});const b=e.timeoutMs!==null?setTimeout(d,e.timeoutMs):null;t.nodeChildProcess.once("exit",()=>{process.platform!=="win32"&&S(n)&&d()});const x=new Promise((r,s)=>{t.nodeChildProcess.once("error",s),t.nodeChildProcess.once("spawn",()=>{const u=G(n);if(u===null){const L=new Error(`${e.displayLabel} process creation identity could not be captured`);_(n)==="absent"?t.nodeChildProcess.once("exit",(T,I)=>{s(new ProcessExitedBeforeReadyError(T,I))}):(t.kill("SIGKILL"),s(L));return}r({pid:n,recovery:{creationIdentity:u,processGroupId:process.platform==="win32"?null:n}})})});x.catch(()=>{});const h=(async()=>{const r=await t;process.platform!=="win32"&&S(n)&&d();const s=o.cleanup===null?null:await o.cleanup;return{...M(r,e.outputMode==="bounded-capture",s??o.failure),cancelled:m}})().finally(()=>{f=!0,e.signal.removeEventListener("abort",g),b!==null&&clearTimeout(b),o.failure===null&&(a=null)});return{completion:h,ready:x,stderr:t.stderr,stdin:t.stdin,stdout:t.stdout,pid:n,shutdownTimeoutMs:e.shutdownTimeoutMs??c,get shutdownDeadlineAt(){return l.deadlineAt},onShutdownStarted(r){return a=r,l.deadlineAt!==null&&r(l.deadlineAt),()=>{a===r&&(a=null)}},async stop(r){return o.failure!==null&&w(),d(r),{...await h,terminationError:await o.cleanup??o.failure}}}}async function k(e){const t=e.pid,n=await e,i=t===void 0?null:await E(t);return M(n,!0,i)}function y(e,t,n){return process.platform==="win32"&&D(e.executable)&&O(e.executable),v(e.executable,[...e.args],{buffer:t==="bounded-capture",maxBuffer:B/2,...n,cleanup:!0,cwd:e.cwd,encoding:"utf8",env:e.env,extendEnv:!1,killDescendants:!0,reject:!1,stderr:"pipe",stdin:"pipe",stdout:"pipe",stripFinalNewline:!1,...e.timeoutMs===null?{}:{timeout:e.timeoutMs},windowsHide:!0,windowsVerbatimArguments:e.windowsVerbatimArguments})}function M(e,t,n){const i=e.failed&&e.exitCode===void 0&&e.signal===void 0&&!e.timedOut&&!e.isCanceled&&!e.isMaxBuffer?p(e):null;return{cancelled:e.isCanceled,error:i,exitCode:e.exitCode??null,exitSignal:e.signal??null,outputLimitExceeded:e.isMaxBuffer,stderr:t?P(e.stderr):"",stdout:t?P(e.stdout):"",terminationError:n,timedOut:e.timedOut}}function P(e){return typeof e=="string"?e:e instanceof Uint8Array?Buffer.from(e).toString("utf8"):""}function C(e,t){if(e.executable.length===0)throw new Error("Managed process executable must be non-empty");if(e.cwd.length===0)throw new Error("Managed process working directory must be non-empty");if(e.displayLabel.trim().length===0)throw new Error("Managed process display label must be non-empty");if(e.timeoutMs!==null&&(!Number.isSafeInteger(e.timeoutMs)||e.timeoutMs<=0))throw new Error("Managed process timeout must be a positive safe integer");if(t&&"outputMode"in e&&!["bounded-capture","caller-drained"].includes(e.outputMode))throw new Error("Supervised process output mode must be bounded-capture or caller-drained")}function A(){return{cancelled:!0,error:null,exitCode:null,exitSignal:null,outputLimitExceeded:!1,stderr:"",stdout:"",terminationError:null,timedOut:!1}}function U(e){return{...A(),cancelled:!1,error:p(e)}}function p(e){return e instanceof Error?e:new Error(String(e))}
1
+ var Cc=Object.defineProperty;var n=(e,t)=>Cc(e,"name",{value:t,configurable:!0});function w(e){if(typeof e!="object"||e===null)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)}n(w,"isPlainObject");import{fileURLToPath as Pc}from"node:url";var oe=n((e,t)=>{let r=lr(Bc(e));if(typeof r!="string")throw new TypeError(`${t} must be a string or a file URL: ${r}.`);return r},"safeNormalizeFileUrl"),Bc=n(e=>cr(e)?e.toString():e,"normalizeDenoExecPath"),cr=n(e=>typeof e!="string"&&e&&Object.getPrototypeOf(e)===String.prototype,"isDenoExecPath"),lr=n(e=>e instanceof URL?Pc(e):e,"normalizeFileUrl");var Ke=n((e,t=[],r={})=>{let o=oe(e,"First argument"),[i,s]=w(t)?[[],t]:[t,r];if(!Array.isArray(i))throw new TypeError(`Second argument must be either an array of arguments or an options object: ${i}`);if(i.some(l=>typeof l=="object"&&l!==null))throw new TypeError(`Second argument must be an array of strings: ${i}`);let a=i.map(String),c=a.find(l=>l.includes("\0"));if(c!==void 0)throw new TypeError(`Arguments cannot contain null bytes ("\\0"): ${c}`);if(!w(s))throw new TypeError(`Last argument must be an options object: ${s}`);return[o,a,{__proto__:null,...s}]},"normalizeParameters");import{StringDecoder as Lc}from"node:string_decoder";var{toString:_n}=Object.prototype,vn=n(e=>_n.call(e)==="[object ArrayBuffer]","isArrayBuffer"),x=n(e=>_n.call(e)==="[object Uint8Array]","isUint8Array"),N=n(e=>new Uint8Array(e.buffer,e.byteOffset,e.byteLength),"bufferToUint8Array"),Fc=new TextEncoder,$n=n(e=>Fc.encode(e),"stringToUint8Array"),Uc=new TextDecoder,Xe=n(e=>Uc.decode(e),"uint8ArrayToString"),jn=n((e,t)=>_c(e,t).join(""),"joinToString"),_c=n((e,t)=>{if(t==="utf8"&&e.every(s=>typeof s=="string"))return e;let r=new Lc(t),o=e.map(s=>typeof s=="string"?$n(s):s).map(s=>r.write(s)),i=r.end();return i===""?o:[...o,i]},"uint8ArraysToStrings"),Ae=n(e=>e.length===1&&x(e[0])?e[0]:dr($c(e)),"joinToUint8Array"),$c=n(e=>e.map(t=>typeof t=="string"?$n(t):t),"stringsToUint8Arrays"),dr=n(e=>{let t=new Uint8Array(vc(e)),r=0;for(let o of e)t.set(o,r),r+=o.length;return t},"concatUint8Arrays"),vc=n(e=>{let t=0;for(let r of e)t+=r.length;return t},"getJoinLength");import{ChildProcess as jc}from"node:child_process";var Wn=n(e=>Array.isArray(e)&&Array.isArray(e.raw),"isTemplateString"),zn=n((e,t)=>{let r=[];for(let[s,a]of e.entries())r=Nc({templates:e,expressions:t,tokens:r,index:s,template:a});if(r.length===0)throw new TypeError("Template script must not be empty");let[o,...i]=r;return[o,i,{}]},"parseTemplates"),Nc=n(({templates:e,expressions:t,tokens:r,index:o,template:i})=>{if(i===void 0)throw new TypeError(`Invalid backslash sequence: ${e.raw[o]}`);let{nextTokens:s,leadingWhitespaces:a,trailingWhitespaces:c}=Gc(i,e.raw[o]),l=Gn(r,s,a);if(o===t.length)return l;let d=t[o],f=Array.isArray(d)?d.map(u=>kn(u)):[kn(d)];return Gn(l,f,c)},"parseTemplate"),Gc=n((e,t)=>{if(t.length===0)return{nextTokens:[],leadingWhitespaces:!1,trailingWhitespaces:!1};let r=[],o=0,i=Nn.has(t[0]);for(let a=0,c=0;a<e.length;a+=1,c+=1){let l=t[c];if(Nn.has(l))o!==a&&r.push(e.slice(o,a)),o=a+1;else if(l==="\\"){let d=t[c+1];d===`
2
+ `?(a-=1,c+=1):d==="u"&&t[c+2]==="{"?c=t.indexOf("}",c+3):c+=kc[d]??1}}let s=o===e.length;return s||r.push(e.slice(o)),{nextTokens:r,leadingWhitespaces:i,trailingWhitespaces:s}},"splitByWhitespaces"),Nn=new Set([" "," ","\r",`
3
+ `]),kc={x:3,u:5},Gn=n((e,t,r)=>r||e.length===0||t.length===0?[...e,...t]:[...e.slice(0,-1),`${e.at(-1)}${t[0]}`,...t.slice(1)],"concatTokens"),kn=n(e=>{let t=typeof e;if(t==="string")return e;if(t==="number")return String(e);if(w(e)&&("stdout"in e||"isMaxBuffer"in e))return Wc(e);throw e instanceof jc||Object.prototype.toString.call(e)==="[object Promise]"?new TypeError("Unexpected subprocess in template expression. Please use ${await subprocess} instead of ${subprocess}."):new TypeError(`Unexpected "${t}" in template expression`)},"parseExpression"),Wc=n(({stdout:e})=>{if(typeof e=="string")return e;if(x(e))return Xe(e);throw e===void 0?new TypeError(`Missing result.stdout in template expression. This is probably due to the previous subprocess' "stdout" option.`):new TypeError(`Unexpected "${typeof e}" stdout in template expression`)},"getSubprocessResult");import fr from"node:process";var M=n(e=>Je.includes(e),"isStandardStream"),Je=[fr.stdin,fr.stdout,fr.stderr],D=["stdin","stdout","stderr"],Qe=n(e=>D[e]??`stdio[${e}]`,"getStreamName");import{debuglog as zc}from"node:util";var Yn=n(e=>{let t={...e};for(let r of mr)t[r]=ur(e,r);return t},"normalizeFdSpecificOptions"),ur=n((e,t)=>{let r=Vc(e),o=Array.from({length:r+1}),i=Yc(e[t],o,t,r);return Qc(i,t)},"normalizeFdSpecificOption"),Vc=n(({stdio:e})=>Array.isArray(e)?Math.max(e.length,D.length):D.length,"getStdioLength"),Yc=n((e,t,r,o)=>w(e)?Hc(e,t,r,o):t.fill(e),"normalizeFdSpecificValue"),Hc=n((e,t,r,o)=>{for(let i of Object.keys(e).sort(Kc))for(let s of Xc(i,r,o))t[s]=e[i];return t},"normalizeOptionObject"),Kc=n((e,t)=>Vn(e)<Vn(t)?1:-1,"compareFdName"),Vn=n(e=>e==="stdout"||e==="stderr"?0:e==="all"?2:1,"getFdNameOrder"),Xc=n((e,t,r)=>{if(e==="ipc")return[r];let o=pr(e);if(o===void 0||o===0)throw new 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(o!=="all"&&o>=r)throw new TypeError(`"${t}.${e}" is invalid: that file descriptor does not exist.
5
+ Please set the "stdio" option to ensure that file descriptor exists.`);return o==="all"?[1,2]:[o]},"parseFdName"),pr=n(e=>{if(e==="all")return e;if(D.includes(e))return D.indexOf(e);let t=Jc.exec(e);if(t!==null)return Number(t.groups.fdNumber)},"parseFd"),Jc=/^fd(?<fdNumber>\d+)$/,Qc=n((e,t)=>e.map(r=>r===void 0?qc[t]:r),"addDefaultValue"),Zc=zc("execa").enabled?"full":"none",qc={lines:!1,buffer:!0,maxBuffer:1e3*1e3*100,verbose:Zc,stripFinalNewline:!0},mr=["lines","buffer","maxBuffer","verbose","stripFinalNewline"],G=n((e,t)=>t==="ipc"?e.at(-1):e[t],"getFdSpecificValue");var ie=n(({verbose:e},t)=>hr(e,t)!=="none","isVerbose"),se=n(({verbose:e},t)=>!["none","short"].includes(hr(e,t)),"isFullVerbose"),Hn=n(({verbose:e},t)=>{let r=hr(e,t);return Ze(r)?r:void 0},"getVerboseFunction"),hr=n((e,t)=>t===void 0?el(e):G(e,t),"getFdVerbose"),el=n(e=>e.find(t=>Ze(t))??qe.findLast(t=>e.includes(t)),"getFdGenericVerbose"),Ze=n(e=>typeof e=="function","isVerboseFunction"),qe=["none","short","full"];import{platform as tl}from"node:process";import{stripVTControlCharacters as rl}from"node:util";var Xn=n((e,t)=>{let r=[e,...t],o=r.join(" "),i=r.map(s=>cl(Kn(s))).join(" ");return{command:o,escapedCommand:i}},"joinCommand"),De=n(e=>rl(e).split(`
6
+ `).map(t=>Kn(t)).join(`
7
+ `),"escapeLines"),Kn=n(e=>e.replaceAll(il,t=>nl(t)),"escapeControlCharacters"),nl=n(e=>{let t=sl[e];if(t!==void 0)return t;let r=e.codePointAt(0),o=r.toString(16);return r<=al?`\\u${o.padStart(4,"0")}`:`\\U${o}`},"escapeControlCharacter"),ol=n(()=>{try{return new RegExp("\\p{Separator}|\\p{Other}","gu")}catch{return/[\s\u0000-\u001F\u007F-\u009F\u00AD]/g}},"getSpecialCharRegExp"),il=ol(),sl={" ":" ","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r"," ":"\\t"},al=65535,cl=n(e=>ll.test(e)?e:tl==="win32"?`"${e.replaceAll('"','""')}"`:`'${e.replaceAll("'","'\\''")}'`,"quoteString"),ll=/^[\w\-./]+$/;import Jn from"node:process";function gr(){let{env:e}=Jn,{TERM:t,TERM_PROGRAM:r}=e;return Jn.platform!=="win32"?t!=="linux":!!e.WT_SESSION||!!e.TERMINUS_SUBLIME||e.ConEmuTask==="{cmd::Cmder}"||r==="Terminus-Sublime"||r==="vscode"||t==="xterm-256color"||t==="alacritty"||t==="rxvt-unicode"||t==="rxvt-unicode-256color"||e.TERMINAL_EMULATOR==="JetBrains-JediTerm"}n(gr,"isUnicodeSupported");var Qn={circleQuestionMark:"(?)",questionMarkPrefix:"(?)",square:"\u2588",squareDarkShade:"\u2593",squareMediumShade:"\u2592",squareLightShade:"\u2591",squareTop:"\u2580",squareBottom:"\u2584",squareLeft:"\u258C",squareRight:"\u2590",squareCenter:"\u25A0",bullet:"\u25CF",dot:"\u2024",ellipsis:"\u2026",pointerSmall:"\u203A",triangleUp:"\u25B2",triangleUpSmall:"\u25B4",triangleDown:"\u25BC",triangleDownSmall:"\u25BE",triangleLeftSmall:"\u25C2",triangleRightSmall:"\u25B8",home:"\u2302",heart:"\u2665",musicNote:"\u266A",musicNoteBeamed:"\u266B",arrowUp:"\u2191",arrowDown:"\u2193",arrowLeft:"\u2190",arrowRight:"\u2192",arrowLeftRight:"\u2194",arrowUpDown:"\u2195",almostEqual:"\u2248",notEqual:"\u2260",lessOrEqual:"\u2264",greaterOrEqual:"\u2265",identical:"\u2261",infinity:"\u221E",subscriptZero:"\u2080",subscriptOne:"\u2081",subscriptTwo:"\u2082",subscriptThree:"\u2083",subscriptFour:"\u2084",subscriptFive:"\u2085",subscriptSix:"\u2086",subscriptSeven:"\u2087",subscriptEight:"\u2088",subscriptNine:"\u2089",oneHalf:"\xBD",oneThird:"\u2153",oneQuarter:"\xBC",oneFifth:"\u2155",oneSixth:"\u2159",oneEighth:"\u215B",twoThirds:"\u2154",twoFifths:"\u2156",threeQuarters:"\xBE",threeFifths:"\u2157",threeEighths:"\u215C",fourFifths:"\u2158",fiveSixths:"\u215A",fiveEighths:"\u215D",sevenEighths:"\u215E",line:"\u2500",lineBold:"\u2501",lineDouble:"\u2550",lineDashed0:"\u2504",lineDashed1:"\u2505",lineDashed2:"\u2508",lineDashed3:"\u2509",lineDashed4:"\u254C",lineDashed5:"\u254D",lineDashed6:"\u2574",lineDashed7:"\u2576",lineDashed8:"\u2578",lineDashed9:"\u257A",lineDashed10:"\u257C",lineDashed11:"\u257E",lineDashed12:"\u2212",lineDashed13:"\u2013",lineDashed14:"\u2010",lineDashed15:"\u2043",lineVertical:"\u2502",lineVerticalBold:"\u2503",lineVerticalDouble:"\u2551",lineVerticalDashed0:"\u2506",lineVerticalDashed1:"\u2507",lineVerticalDashed2:"\u250A",lineVerticalDashed3:"\u250B",lineVerticalDashed4:"\u254E",lineVerticalDashed5:"\u254F",lineVerticalDashed6:"\u2575",lineVerticalDashed7:"\u2577",lineVerticalDashed8:"\u2579",lineVerticalDashed9:"\u257B",lineVerticalDashed10:"\u257D",lineVerticalDashed11:"\u257F",lineDownLeft:"\u2510",lineDownLeftArc:"\u256E",lineDownBoldLeftBold:"\u2513",lineDownBoldLeft:"\u2512",lineDownLeftBold:"\u2511",lineDownDoubleLeftDouble:"\u2557",lineDownDoubleLeft:"\u2556",lineDownLeftDouble:"\u2555",lineDownRight:"\u250C",lineDownRightArc:"\u256D",lineDownBoldRightBold:"\u250F",lineDownBoldRight:"\u250E",lineDownRightBold:"\u250D",lineDownDoubleRightDouble:"\u2554",lineDownDoubleRight:"\u2553",lineDownRightDouble:"\u2552",lineUpLeft:"\u2518",lineUpLeftArc:"\u256F",lineUpBoldLeftBold:"\u251B",lineUpBoldLeft:"\u251A",lineUpLeftBold:"\u2519",lineUpDoubleLeftDouble:"\u255D",lineUpDoubleLeft:"\u255C",lineUpLeftDouble:"\u255B",lineUpRight:"\u2514",lineUpRightArc:"\u2570",lineUpBoldRightBold:"\u2517",lineUpBoldRight:"\u2516",lineUpRightBold:"\u2515",lineUpDoubleRightDouble:"\u255A",lineUpDoubleRight:"\u2559",lineUpRightDouble:"\u2558",lineUpDownLeft:"\u2524",lineUpBoldDownBoldLeftBold:"\u252B",lineUpBoldDownBoldLeft:"\u2528",lineUpDownLeftBold:"\u2525",lineUpBoldDownLeftBold:"\u2529",lineUpDownBoldLeftBold:"\u252A",lineUpDownBoldLeft:"\u2527",lineUpBoldDownLeft:"\u2526",lineUpDoubleDownDoubleLeftDouble:"\u2563",lineUpDoubleDownDoubleLeft:"\u2562",lineUpDownLeftDouble:"\u2561",lineUpDownRight:"\u251C",lineUpBoldDownBoldRightBold:"\u2523",lineUpBoldDownBoldRight:"\u2520",lineUpDownRightBold:"\u251D",lineUpBoldDownRightBold:"\u2521",lineUpDownBoldRightBold:"\u2522",lineUpDownBoldRight:"\u251F",lineUpBoldDownRight:"\u251E",lineUpDoubleDownDoubleRightDouble:"\u2560",lineUpDoubleDownDoubleRight:"\u255F",lineUpDownRightDouble:"\u255E",lineDownLeftRight:"\u252C",lineDownBoldLeftBoldRightBold:"\u2533",lineDownLeftBoldRightBold:"\u252F",lineDownBoldLeftRight:"\u2530",lineDownBoldLeftBoldRight:"\u2531",lineDownBoldLeftRightBold:"\u2532",lineDownLeftRightBold:"\u252E",lineDownLeftBoldRight:"\u252D",lineDownDoubleLeftDoubleRightDouble:"\u2566",lineDownDoubleLeftRight:"\u2565",lineDownLeftDoubleRightDouble:"\u2564",lineUpLeftRight:"\u2534",lineUpBoldLeftBoldRightBold:"\u253B",lineUpLeftBoldRightBold:"\u2537",lineUpBoldLeftRight:"\u2538",lineUpBoldLeftBoldRight:"\u2539",lineUpBoldLeftRightBold:"\u253A",lineUpLeftRightBold:"\u2536",lineUpLeftBoldRight:"\u2535",lineUpDoubleLeftDoubleRightDouble:"\u2569",lineUpDoubleLeftRight:"\u2568",lineUpLeftDoubleRightDouble:"\u2567",lineUpDownLeftRight:"\u253C",lineUpBoldDownBoldLeftBoldRightBold:"\u254B",lineUpDownBoldLeftBoldRightBold:"\u2548",lineUpBoldDownLeftBoldRightBold:"\u2547",lineUpBoldDownBoldLeftRightBold:"\u254A",lineUpBoldDownBoldLeftBoldRight:"\u2549",lineUpBoldDownLeftRight:"\u2540",lineUpDownBoldLeftRight:"\u2541",lineUpDownLeftBoldRight:"\u253D",lineUpDownLeftRightBold:"\u253E",lineUpBoldDownBoldLeftRight:"\u2542",lineUpDownLeftBoldRightBold:"\u253F",lineUpBoldDownLeftBoldRight:"\u2543",lineUpBoldDownLeftRightBold:"\u2544",lineUpDownBoldLeftBoldRight:"\u2545",lineUpDownBoldLeftRightBold:"\u2546",lineUpDoubleDownDoubleLeftDoubleRightDouble:"\u256C",lineUpDoubleDownDoubleLeftRight:"\u256B",lineUpDownLeftDoubleRightDouble:"\u256A",lineCross:"\u2573",lineBackslash:"\u2572",lineSlash:"\u2571"},Zn={tick:"\u2714",info:"\u2139",warning:"\u26A0",cross:"\u2718",squareSmall:"\u25FB",squareSmallFilled:"\u25FC",circle:"\u25EF",circleFilled:"\u25C9",circleDotted:"\u25CC",circleDouble:"\u25CE",circleCircle:"\u24DE",circleCross:"\u24E7",circlePipe:"\u24BE",radioOn:"\u25C9",radioOff:"\u25EF",checkboxOn:"\u2612",checkboxOff:"\u2610",checkboxCircleOn:"\u24E7",checkboxCircleOff:"\u24BE",pointer:"\u276F",triangleUpOutline:"\u25B3",triangleLeft:"\u25C0",triangleRight:"\u25B6",lozenge:"\u25C6",lozengeOutline:"\u25C7",hamburger:"\u2630",smiley:"\u32E1",mustache:"\u0DF4",star:"\u2605",play:"\u25B6",nodejs:"\u2B22",oneSeventh:"\u2150",oneNinth:"\u2151",oneTenth:"\u2152"},dl={tick:"\u221A",info:"i",warning:"\u203C",cross:"\xD7",squareSmall:"\u25A1",squareSmallFilled:"\u25A0",circle:"( )",circleFilled:"(*)",circleDotted:"( )",circleDouble:"( )",circleCircle:"(\u25CB)",circleCross:"(\xD7)",circlePipe:"(\u2502)",radioOn:"(*)",radioOff:"( )",checkboxOn:"[\xD7]",checkboxOff:"[ ]",checkboxCircleOn:"(\xD7)",checkboxCircleOff:"( )",pointer:">",triangleUpOutline:"\u2206",triangleLeft:"\u25C4",triangleRight:"\u25BA",lozenge:"\u2666",lozengeOutline:"\u25CA",hamburger:"\u2261",smiley:"\u263A",mustache:"\u250C\u2500\u2510",star:"\u2736",play:"\u25BA",nodejs:"\u2666",oneSeventh:"1/7",oneNinth:"1/9",oneTenth:"1/10"},fl={...Qn,...Zn},qn={...Qn,...dl},eo=gr(),ul=eo?fl:qn,et=ul,pl=Object.entries(Zn),RS=n((e,{useFallback:t=!eo}={})=>{if(t)for(let[r,o]of pl)e=e.replaceAll(o,qn[r]);return e},"replaceSymbols");import ml from"node:tty";var hl=ml?.WriteStream?.prototype?.hasColors?.()??!1,h=n((e,t)=>{if(!hl)return i=>i;let r=`\x1B[${e}m`,o=`\x1B[${t}m`;return i=>{let s=i+"",a=s.indexOf(o);if(a===-1)return r+s+o;let c=r,l=0,f=(t===22?o:"")+r;for(;a!==-1;)c+=s.slice(l,a)+f,l=a+o.length,a=s.indexOf(o,l);return c+=s.slice(l)+o,c}},"format"),BS=h(0,0),to=h(1,22),LS=h(2,22),FS=h(3,23),US=h(4,24),_S=h("4:2",24),$S=h("4:3",24),vS=h("4:4",24),jS=h("4:5",24),NS=h(53,55),GS=h(7,27),kS=h(8,28),WS=h(9,29),zS=h(30,39),VS=h(31,39),YS=h(32,39),HS=h(33,39),KS=h(34,39),XS=h(35,39),JS=h(36,39),QS=h(37,39),tt=h(90,39),ZS=h(40,49),qS=h(41,49),ey=h(42,49),ty=h(43,49),ry=h(44,49),ny=h(45,49),oy=h(46,49),iy=h(47,49),sy=h(100,49),ro=h(91,39),ay=h(92,39),no=h(93,39),cy=h(94,39),ly=h(95,39),dy=h(96,39),fy=h(97,39),uy=h(101,49),py=h(102,49),my=h(103,49),hy=h(104,49),gy=h(105,49),Sy=h(106,49),yy=h(107,49),by=h("58;5;0",59),wy=h("58;5;1",59),xy=h("58;5;2",59),Ey=h("58;5;3",59),Ty=h("58;5;4",59),Oy=h("58;5;5",59),Ay=h("58;5;6",59),Dy=h("58;5;7",59),Iy=h("58;5;8",59),Ry=h("58;5;9",59),My=h("58;5;10",59),Cy=h("58;5;11",59),Py=h("58;5;12",59),By=h("58;5;13",59),Ly=h("58;5;14",59),Fy=h("58;5;15",59);var so=n(({type:e,message:t,timestamp:r,piped:o,commandId:i,result:{failed:s=!1}={},options:{reject:a=!0}})=>{let c=gl(r),l=Sl[e]({failed:s,reject:a,piped:o}),d=yl[e]({reject:a});return`${tt(`[${c}]`)} ${tt(`[${i}]`)} ${d(l)} ${d(t)}`},"defaultVerboseFunction"),gl=n(e=>`${rt(e.getHours(),2)}:${rt(e.getMinutes(),2)}:${rt(e.getSeconds(),2)}.${rt(e.getMilliseconds(),3)}`,"serializeTimestamp"),rt=n((e,t)=>String(e).padStart(t,"0"),"padField"),oo=n(({failed:e,reject:t})=>e?t?et.cross:et.warning:et.tick,"getFinalIcon"),Sl={command:n(({piped:e})=>e?"|":"$","command"),output:n(()=>" ","output"),ipc:n(()=>"*","ipc"),error:oo,duration:oo},io=n(e=>e,"identity"),yl={command:n(()=>to,"command"),output:n(()=>io,"output"),ipc:n(()=>io,"ipc"),error:n(({reject:e})=>e?ro:no,"error"),duration:n(()=>tt,"duration")};var ao=n((e,t,r)=>{let o=Hn(t,r);return e.map(({verboseLine:i,verboseObject:s})=>bl(i,s,o)).filter(i=>i!==void 0).map(i=>wl(i)).join("")},"applyVerboseOnLines"),bl=n((e,t,r)=>{if(r===void 0)return e;let o=r(e,t);if(typeof o=="string")return o},"applyVerboseFunction"),wl=n(e=>e.endsWith(`
8
+ `)?e:`${e}
9
+ `,"appendNewline");import{inspect as xl}from"node:util";var F=n(({type:e,verboseMessage:t,fdNumber:r,verboseInfo:o,result:i})=>{let s=El({type:e,result:i,verboseInfo:o}),a=Tl(t,s),c=ao(a,o,r);c!==""&&console.warn(c.slice(0,-1))},"verboseLog"),El=n(({type:e,result:t,verboseInfo:r})=>{let{escapedCommand:o,commandId:i,rawOptions:s}=r,{piped:a=!1,...c}=s;return{type:e,escapedCommand:o,commandId:`${i}`,timestamp:new Date,piped:a,result:t,options:c}},"getVerboseObject"),Tl=n((e,t)=>e.split(`
10
+ `).map(r=>Ol({...t,message:r})),"getPrintedLines"),Ol=n(e=>({verboseLine:so(e),verboseObject:e}),"getPrintedLine"),nt=n(e=>{let t=typeof e=="string"?e:xl(e);return De(t).replaceAll(" ",()=>" ".repeat(Al))},"serializeVerboseMessage"),Al=2;var co=n((e,t)=>{ie(t)&&F({type:"command",verboseMessage:e,verboseInfo:t})},"logCommand");var lo=n((e,t,r)=>{Rl(e);let o=Dl(e);return{verbose:e,escapedCommand:t,commandId:o,rawOptions:r}},"getVerboseInfo"),Dl=n(e=>ie({verbose:e})?Il++:void 0,"getCommandId"),Il=0n,Rl=n(e=>{for(let t of e){if(t===!1)throw new TypeError(`The "verbose: false" option was renamed to "verbose: 'none'".`);if(t===!0)throw new TypeError(`The "verbose: true" option was renamed to "verbose: 'short'".`);if(!qe.includes(t)&&!Ze(t)){let r=qe.map(o=>`'${o}'`).join(", ");throw new TypeError(`The "verbose" option must not be ${t}. Allowed values are: ${r} or a function.`)}}},"validateVerbose");import{hrtime as fo}from"node:process";var ot=n(()=>fo.bigint(),"getStartTime"),Sr=n(e=>Number(fo.bigint()-e)/1e6,"getDurationMs");var it=n((e,t,r)=>{let o=ot(),{command:i,escapedCommand:s}=Xn(e,t),a=ur(r,"verbose"),c=lo(a,s,{...r});return co(s,c),{command:i,escapedCommand:s,startTime:o,verboseInfo:c}},"handleCommand");function st(e={}){let{env:t=process.env,platform:r=process.platform}=e;return r!=="win32"?"PATH":Object.keys(t).reverse().find(o=>o.toUpperCase()==="PATH")||"Path"}n(st,"pathKey");import{promisify as Ml}from"node:util";import{execFile as Cl,execFileSync as Pl}from"node:child_process";import yr from"node:path";import{fileURLToPath as Bl}from"node:url";var Ll=Ml(Cl);function Ie(e){return e instanceof URL?Bl(e):e}n(Ie,"toPath");function bb(e){return yr.parse(Ie(e)).root}n(bb,"rootDirectory");function po(e){return{*[Symbol.iterator](){let t=yr.resolve(Ie(e)),r;for(;r!==t;)yield t,r=t,t=yr.resolve(t,"..")}}}n(po,"traversePathUp");var uo=10*1024*1024;async function wb(e,t,r={}){return Ll(e,t,{maxBuffer:uo,...r})}n(wb,"execFile");function xb(e,t=[],r={}){return Pl(e,t,{maxBuffer:uo,encoding:"utf8",stdio:"pipe",...r})}n(xb,"execFileSync");import at from"node:process";import J from"node:path";var Fl=n(({cwd:e=at.cwd(),path:t=at.env[st()],preferLocal:r=!0,execPath:o=at.execPath,addExecPath:i=!0}={})=>{let s=J.resolve(Ie(e)),a=[],c=t.split(J.delimiter);return r&&Ul(a,c,s),i&&_l(a,c,o,s),t===""||t===J.delimiter?`${a.join(J.delimiter)}${t}`:[...a,t].join(J.delimiter)},"npmRunPath"),Ul=n((e,t,r)=>{for(let o of po(r)){let i=J.join(o,"node_modules/.bin");t.includes(i)||e.push(i)}},"applyPreferLocal"),_l=n((e,t,r,o)=>{let i=J.resolve(o,Ie(r),"..");t.includes(i)||e.push(i)},"applyExecPath"),mo=n(({env:e=at.env,...t}={})=>{e={...e};let r=st({env:e});return t.path=e[r],e[r]=Fl(t),e},"npmRunPathEnv");var So=n((e,t,r)=>{let o=r?ce:ae,i=e instanceof C?{}:{cause:e};return new o(t,i)},"getFinalError"),C=class extends Error{static{n(this,"DiscardedError")}},ho=n((e,t)=>{Object.defineProperties(e.prototype,{name:{value:t,writable:!0,enumerable:!1,configurable:!0},[go]:{value:!0,writable:!1,enumerable:!1,configurable:!1}})},"setErrorName"),yo=n(e=>ct(e)&&go in e,"isExecaError"),go=Symbol("isExecaError"),ct=n(e=>Object.prototype.toString.call(e)==="[object Error]","isErrorInstance"),ae=class extends Error{static{n(this,"ExecaError")}};ho(ae,ae.name);var ce=class extends Error{static{n(this,"ExecaSyncError")}};ho(ce,ce.name);var wo=n(()=>{let e=br-bo+1;return Array.from({length:e},$l)},"getRealtimeSignals"),$l=n((e,t)=>({name:`SIGRT${t+1}`,number:bo+t,action:"terminate",description:"Application-specific signal (realtime)",standard:"posix"}),"getRealtimeSignal"),bo=34,br=64;var xo=[{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"}];import{constants as vl}from"node:os";var wr=n(()=>{let e=wo();return[...xo,...e].map(jl)},"getSignals"),jl=n(({name:e,number:t,description:r,action:o,forced:i=!1,standard:s})=>{let{signals:{[e]:a}}=vl,c=a!==void 0;return{name:e,number:c?a:t,description:r,supported:c,action:o,forced:i,standard:s}},"normalizeSignal");import{constants as Nl}from"node:os";var Gl=n(()=>{let e=wr();return Object.fromEntries(e.map(kl))},"getSignalsByName"),kl=n(({name:e,number:t,description:r,supported:o,action:i,forced:s,standard:a})=>[e,{name:e,number:t,description:r,supported:o,action:i,forced:s,standard:a}],"getSignalByName"),Eo=Gl(),Wl=n(()=>{let e=wr(),t=br+1,r=Array.from({length:t},(o,i)=>zl(i,e));return Object.assign({},...r)},"getSignalsByNumber"),zl=n((e,t)=>{let r=Vl(e,t);if(r===void 0)return{};let{name:o,description:i,supported:s,action:a,forced:c,standard:l}=r;return{[e]:{name:o,number:e,description:i,supported:s,action:a,forced:c,standard:l}}},"getSignalByNumber"),Vl=n((e,t)=>{let r=t.find(({name:o})=>Nl.signals[o]===e);return r!==void 0?r:t.find(o=>o.number===e)},"findSignalByNumber"),zb=Wl();import{constants as Re}from"node:os";var Ao=n(e=>{let t="option `killSignal`";if(e===0)throw new TypeError(`Invalid ${t}: 0 cannot be used.`);return To(e,t)},"normalizeKillSignal"),Do=n(e=>e===0?e:To(e,"`subprocess.kill()`'s argument"),"normalizeSignalArgument"),To=n((e,t)=>{if(Number.isInteger(e))return Yl(e,t);if(typeof e=="string")return Kl(e,t);throw new TypeError(`Invalid ${t} ${String(e)}: it must be a string or an integer.
11
+ ${xr()}`)},"normalizeSignal"),Yl=n((e,t)=>{if(Oo.has(e))return Oo.get(e);throw new TypeError(`Invalid ${t} ${e}: this signal integer does not exist.
12
+ ${xr()}`)},"normalizeSignalInteger"),Hl=n(()=>new Map(Object.entries(Re.signals).reverse().map(([e,t])=>[t,e])),"getSignalsIntegerToName"),Oo=Hl(),Kl=n((e,t)=>{if(e in Re.signals)return e;throw e.toUpperCase()in Re.signals?new TypeError(`Invalid ${t} '${e}': please rename it to '${e.toUpperCase()}'.`):new TypeError(`Invalid ${t} '${e}': this signal name does not exist.
13
+ ${xr()}`)},"normalizeSignalName"),xr=n(()=>`Available signal names: ${Xl()}.
14
+ Available signal numbers: ${Jl()}.`,"getAvailableSignals"),Xl=n(()=>Object.keys(Re.signals).sort().map(e=>`'${e}'`).join(", "),"getAvailableSignalNames"),Jl=n(()=>[...new Set(Object.values(Re.signals).sort((e,t)=>e-t))].join(", "),"getAvailableSignalIntegers"),lt=n(e=>Eo[e].description,"getSignalDescription");import{setTimeout as Ql}from"node:timers/promises";var Io=n(e=>{if(e===!1)return e;if(e===!0)return Zl;if(!Number.isFinite(e)||e<0)throw new TypeError(`Expected the \`forceKillAfterDelay\` option to be a non-negative integer, got \`${e}\` (${typeof e})`);return e},"normalizeForceKillAfterDelay"),Zl=1e3*5,Ro=n(({kill:e,options:{forceKillAfterDelay:t,killSignal:r},onInternalError:o,context:i,controller:s},a,c)=>{let{signal:l,error:d}=ql(a,c,r);ed(d,o);let f=e(l);return td({kill:e,signal:l,forceKillAfterDelay:t,killSignal:r,killResult:f,context:i,controller:s}),f},"subprocessKill"),ql=n((e,t,r)=>{let[o=r,i]=ct(e)?[void 0,e]:[e,t];if(typeof o!="string"&&!Number.isInteger(o))throw new TypeError(`The first argument must be an error instance or a signal name string/integer: ${String(o)}`);if(i!==void 0&&!ct(i))throw new TypeError(`The second argument is optional. If specified, it must be an error instance: ${i}`);return{signal:Do(o),error:i}},"parseKillArguments"),ed=n((e,t)=>{e!==void 0&&t.reject(e)},"emitKillError"),td=n(async({kill:e,signal:t,forceKillAfterDelay:r,killSignal:o,killResult:i,context:s,controller:a})=>{t===o&&i&&Er({kill:e,forceKillAfterDelay:r,context:s,controllerSignal:a.signal})},"setKillTimeout"),Er=n(async({kill:e,forceKillAfterDelay:t,context:r,controllerSignal:o})=>{if(t!==!1)try{await Ql(t,void 0,{signal:o}),e("SIGKILL")&&(r.isForcefullyTerminated??=!0)}catch{}},"killOnTimeout");import{once as rd}from"node:events";var dt=n(async(e,t)=>{e.aborted||await rd(e,"abort",{signal:t})},"onAbortedSignal");var Mo=n(({cancelSignal:e})=>{if(e!==void 0&&Object.prototype.toString.call(e)!=="[object AbortSignal]")throw new Error(`The \`cancelSignal\` option must be an AbortSignal: ${String(e)}`)},"validateCancelSignal"),Co=n(({kill:e,cancelSignal:t,gracefulCancel:r,context:o,controller:i})=>t===void 0||r?[]:[nd(e,t,o,i)],"throwOnCancel"),nd=n(async(e,t,r,{signal:o})=>{throw await dt(t,o),r.terminationReason??="cancel",e(),t.reason},"terminateOnCancel");var le=n(({methodName:e,isSubprocess:t,ipc:r,isConnected:o})=>{od(e,t,r),Tr(e,t,o)},"validateIpcMethod"),od=n((e,t,r)=>{if(!r)throw new Error(`${P(e,t)} can only be used if the \`ipc\` option is \`true\`.`)},"validateIpcOption"),Tr=n((e,t,r)=>{if(!r)throw new Error(`${P(e,t)} cannot be used: the ${Y(t)} has already exited or disconnected.`)},"validateConnection"),Po=n(e=>{throw new Error(`${P("getOneMessage",e)} could not complete: the ${Y(e)} exited or disconnected.`)},"throwOnEarlyDisconnect"),Bo=n(e=>{throw new Error(`${P("sendMessage",e)} failed: the ${Y(e)} is sending a message too, instead of listening to incoming messages.
15
+ This can be fixed by both sending a message and listening to incoming messages at the same time:
16
+
17
+ const [receivedMessage] = await Promise.all([
18
+ ${P("getOneMessage",e)},
19
+ ${P("sendMessage",e,"message, {strict: true}")},
20
+ ]);`)},"throwOnStrictDeadlockError"),ft=n((e,t)=>new Error(`${P("sendMessage",t)} failed when sending an acknowledgment response to the ${Y(t)}.`,{cause:e}),"getStrictResponseError"),Lo=n(e=>{throw new Error(`${P("sendMessage",e)} failed: the ${Y(e)} is not listening to incoming messages.`)},"throwOnMissingStrict"),Fo=n(e=>{throw new Error(`${P("sendMessage",e)} failed: the ${Y(e)} exited without listening to incoming messages.`)},"throwOnStrictDisconnect"),Uo=n(()=>new Error(`\`cancelSignal\` aborted: the ${Y(!0)} disconnected.`),"getAbortDisconnectError"),_o=n(()=>{throw new Error("`getCancelSignal()` cannot be used without setting the `cancelSignal` subprocess option.")},"throwOnMissingParent"),$o=n(({error:e,methodName:t,isSubprocess:r})=>{if(e.code==="EPIPE")throw new Error(`${P(t,r)} cannot be used: the ${Y(r)} is disconnecting.`,{cause:e})},"handleEpipeError"),vo=n(({error:e,methodName:t,isSubprocess:r,message:o})=>{if(id(e))throw new Error(`${P(t,r)}'s argument type is invalid: the message cannot be serialized: ${String(o)}.`,{cause:e})},"handleSerializationError"),id=n(({code:e,message:t})=>sd.has(e)||ad.some(r=>t.includes(r)),"isSerializationError"),sd=new Set(["ERR_MISSING_ARGS","ERR_INVALID_ARG_TYPE"]),ad=["could not be cloned","circular structure","call stack size exceeded"],P=n((e,t,r="")=>e==="cancelSignal"?"`cancelSignal`'s `controller.abort()`":`${cd(t)}${e}(${r})`,"getMethodName"),cd=n(e=>e?"":"subprocess.","getNamespaceName"),Y=n(e=>e?"parent process":"subprocess","getOtherProcessName"),de=n(e=>{e.connected&&e.disconnect()},"disconnect");var U=n(()=>{let e={},t=new Promise((r,o)=>{Object.assign(e,{resolve:r,reject:o})});return Object.assign(t,e)},"createDeferred");import{addAbortListener as ld}from"node:events";var Q=n((e,t,r)=>{let o=e.getMaxListeners();o===0||o===1/0||(e.setMaxListeners(o+t),ld(r,()=>{e.setMaxListeners(e.getMaxListeners()-t)}))},"incrementMaxListeners");var ut=n((e,t)=>{t&&Or(e)},"addReference"),Or=n(e=>{e.refCounted()},"addReferenceCount"),pt=n((e,t)=>{t&&Ar(e)},"removeReference"),Ar=n(e=>{e.unrefCounted()},"removeReferenceCount"),jo=n((e,t)=>{t&&(Ar(e),Ar(e))},"undoAddedReferences"),No=n((e,t)=>{t&&(Or(e),Or(e))},"redoAddedReferences");import{once as dd}from"node:events";import{scheduler as fd}from"node:timers/promises";var Go=n(async({anyProcess:e,channel:t,isSubprocess:r,ipcEmitter:o},i)=>{if(zo(i)||Yo(i))return;mt.has(e)||mt.set(e,[]);let s=mt.get(e);if(s.push(i),!(s.length>1))for(;s.length>0;){await Vo(e,o,i),await fd.yield();let a=await Wo({wrappedMessage:s[0],anyProcess:e,channel:t,isSubprocess:r,ipcEmitter:o});s.shift(),o.emit("message",a),o.emit("message:done")}},"onMessage"),ko=n(async({anyProcess:e,channel:t,isSubprocess:r,ipcEmitter:o,boundOnMessage:i})=>{Dr();let s=mt.get(e);for(;s?.length>0;)await dd(o,"message:done");e.removeListener("message",i),No(t,r),o.connected=!1,o.emit("disconnect")},"onDisconnect"),mt=new WeakMap;import{EventEmitter as ud}from"node:events";var H=n((e,t,r)=>{if(ht.has(e))return ht.get(e);let o=new ud;return o.connected=!0,ht.set(e,o),pd({ipcEmitter:o,anyProcess:e,channel:t,isSubprocess:r}),o},"getIpcEmitter"),ht=new WeakMap,pd=n(({ipcEmitter:e,anyProcess:t,channel:r,isSubprocess:o})=>{let i=Go.bind(void 0,{anyProcess:t,channel:r,isSubprocess:o,ipcEmitter:e});t.on("message",i),t.once("disconnect",ko.bind(void 0,{anyProcess:t,channel:r,isSubprocess:o,ipcEmitter:e,boundOnMessage:i})),jo(r,o)},"forwardEvents"),gt=n(e=>{let t=ht.get(e);return t===void 0?e.channel!==void 0&&e.channel!==null:t.connected},"isConnected");import{once as md}from"node:events";var Ko=n(({anyProcess:e,channel:t,isSubprocess:r,message:o,strict:i})=>{if(!i)return o;let s=H(e,t,r),a=bt(e,s);return{id:hd++,type:yt,message:o,hasListeners:a}},"handleSendStrict"),hd=0n,Xo=n((e,t)=>{if(!(t?.type!==yt||t.hasListeners))for(let{id:r}of e)r!==void 0&&St[r].resolve({isDeadlock:!0,hasListeners:!1})},"validateStrictDeadlock"),Wo=n(async({wrappedMessage:e,anyProcess:t,channel:r,isSubprocess:o,ipcEmitter:i})=>{if(e?.type!==yt||!t.connected)return e;let{id:s,message:a}=e,c={id:s,type:Ho,message:bt(t,i)};try{await fe({anyProcess:t,channel:r,isSubprocess:o,ipc:!0},c)}catch(l){i.emit("strict:error",l)}return a},"handleStrictRequest"),zo=n(e=>{if(e?.type!==Ho)return!1;let{id:t,message:r}=e;return St[t]?.resolve({isDeadlock:!1,hasListeners:r}),!0},"handleStrictResponse"),Jo=n(async(e,t,r)=>{if(e?.type!==yt)return;let o=U();St[e.id]=o;let i=new AbortController;try{let{isDeadlock:s,hasListeners:a}=await Promise.race([o,gd(t,r,i)]);s&&Bo(r),a||Lo(r)}finally{i.abort(),delete St[e.id]}},"waitForStrictResponse"),St={},gd=n(async(e,t,{signal:r})=>{Q(e,1,r),await md(e,"disconnect",{signal:r}),Fo(t)},"throwOnDisconnect"),yt="execa:ipc:request",Ho="execa:ipc:response";var qo=n((e,t,r)=>{Me.has(e)||Me.set(e,new Set);let o=Me.get(e),i=U(),s=r?t.id:void 0,a={onMessageSent:i,id:s};return o.add(a),{outgoingMessages:o,outgoingMessage:a}},"startSendMessage"),ei=n(({outgoingMessages:e,outgoingMessage:t})=>{e.delete(t),t.onMessageSent.resolve()},"endSendMessage"),Vo=n(async(e,t,r)=>{for(;!bt(e,t)&&Me.get(e)?.size>0;){let o=[...Me.get(e)];Xo(o,r),await Promise.all(o.map(({onMessageSent:i})=>i))}},"waitForOutgoingMessages"),Me=new WeakMap,Qo=new WeakMap,ti=n((e,t)=>{Qo.set(e,t)},"setIpcSubprocessOptions"),bt=n((e,t)=>t.listenerCount("message")>Sd(e),"hasMessageListeners"),Sd=n(e=>Zo(e)!==void 0&&!G(Zo(e).buffer,"ipc")?1:0,"getMinListenerCount"),Zo=n(e=>Qo.get(e),"getOptions");import{promisify as yd}from"node:util";var fe=n(({anyProcess:e,channel:t,isSubprocess:r,ipc:o},i,{strict:s=!1}={})=>{let a="sendMessage";return le({methodName:a,isSubprocess:r,ipc:o,isConnected:e.connected}),bd({anyProcess:e,channel:t,methodName:a,isSubprocess:r,message:i,strict:s})},"sendMessage"),bd=n(async({anyProcess:e,channel:t,methodName:r,isSubprocess:o,message:i,strict:s})=>{let a=Ko({anyProcess:e,channel:t,isSubprocess:o,message:i,strict:s}),c=qo(e,a,s);try{await Rr({anyProcess:e,methodName:r,isSubprocess:o,wrappedMessage:a,message:i})}catch(l){throw de(e),l}finally{ei(c)}},"sendMessageAsync"),Rr=n(async({anyProcess:e,methodName:t,isSubprocess:r,wrappedMessage:o,message:i})=>{let s=wd(e);try{await Promise.all([Jo(o,e,r),s(o)])}catch(a){throw $o({error:a,methodName:t,isSubprocess:r}),vo({error:a,methodName:t,isSubprocess:r,message:i}),a}},"sendOneMessage"),wd=n(e=>{if(Ir.has(e))return Ir.get(e);let t=yd(e.send.bind(e));return Ir.set(e,t),t},"getSendMethod"),Ir=new WeakMap;import{scheduler as xd}from"node:timers/promises";var oi=n((e,t)=>{let r="cancelSignal";return Tr(r,!1,e.connected),Rr({anyProcess:e,methodName:r,isSubprocess:!1,wrappedMessage:{type:ni,message:t},message:t})},"sendAbort"),ii=n(async({anyProcess:e,channel:t,isSubprocess:r,ipc:o})=>(await Ed({anyProcess:e,channel:t,isSubprocess:r,ipc:o}),Mr.signal),"getCancelSignal"),Ed=n(async({anyProcess:e,channel:t,isSubprocess:r,ipc:o})=>{if(!ri){if(ri=!0,!o){_o();return}if(t===null){Dr();return}H(e,t,r),await xd.yield()}},"startIpc"),ri=!1,Yo=n(e=>e?.type!==ni?!1:(Mr.abort(e.message),!0),"handleAbort"),ni="execa:ipc:cancel",Dr=n(()=>{Mr.abort(Uo())},"abortOnDisconnect"),Mr=new AbortController;var si=n(({gracefulCancel:e,cancelSignal:t,ipc:r,serialization:o})=>{if(e){if(t===void 0)throw new Error("The `cancelSignal` option must be defined when setting the `gracefulCancel` option.");if(!r)throw new Error("The `ipc` option cannot be false when setting the `gracefulCancel` option.");if(o==="json")throw new Error("The `serialization` option cannot be 'json' when setting the `gracefulCancel` option.")}},"validateGracefulCancel"),ai=n(({subprocess:e,kill:t,cancelSignal:r,gracefulCancel:o,forceKillAfterDelay:i,context:s,controller:a})=>o?[Td({subprocess:e,kill:t,cancelSignal:r,forceKillAfterDelay:i,context:s,controller:a})]:[],"throwOnGracefulCancel"),Td=n(async({subprocess:e,kill:t,cancelSignal:r,forceKillAfterDelay:o,context:i,controller:{signal:s}})=>{await dt(r,s);let a=Od(r);throw await oi(e,a),Er({kill:t,forceKillAfterDelay:o,context:i,controllerSignal:s}),i.terminationReason??="gracefulCancel",r.reason},"sendOnAbort"),Od=n(({reason:e})=>{if(!(e instanceof DOMException))return e;let t=new Error(e.message);return Object.defineProperty(t,"stack",{value:e.stack,enumerable:!1,configurable:!0,writable:!0}),t},"getReason");import{setTimeout as Ad}from"node:timers/promises";var ci=n(({timeout:e})=>{if(e!==void 0&&(!Number.isFinite(e)||e<0))throw new TypeError(`Expected the \`timeout\` option to be a non-negative integer, got \`${e}\` (${typeof e})`)},"validateTimeout"),li=n((e,t,r,o)=>t===0||t===void 0?[]:[Dd(e,t,r,o)],"throwOnTimeout"),Dd=n(async(e,t,r,{signal:o})=>{throw await Ad(t,void 0,{signal:o}),r.terminationReason??="timeout",e(),new C},"killAfterTimeout");import{execPath as Id,execArgv as Rd}from"node:process";import di from"node:path";var fi=n(({options:e})=>{if(e.node===!1)throw new TypeError('The "node" option cannot be false with `execaNode()`.');return{options:{...e,node:!0}}},"mapNode"),ui=n((e,t,{node:r=!1,nodePath:o=Id,nodeOptions:i=Rd.filter(l=>!l.startsWith("--inspect")),cwd:s,execPath:a,...c})=>{if(a!==void 0)throw new TypeError('The "execPath" option has been removed. Please use the "nodePath" option instead.');let l=oe(o,'The "nodePath" option'),d=di.resolve(s,l),f={__proto__:null,shell:!1,...c,nodePath:d,node:r,cwd:s};if(!r)return[e,t,f];if(di.basename(e,".exe")==="node")throw new TypeError('When the "node" option is true, the first argument does not need to be "node".');return[d,[...i,e,...t],{__proto__:null,ipc:!0,...f,shell:!1}]},"handleNodeOption");import{serialize as Md}from"node:v8";var pi=n(({ipcInput:e,ipc:t,serialization:r})=>{if(e!==void 0){if(!t)throw new Error("The `ipcInput` option cannot be set unless the `ipc` option is `true`.");Bd[r](e)}},"validateIpcInputOption"),Cd=n(e=>{try{Md(e)}catch(t){throw new Error("The `ipcInput` option is not serializable with a structured clone.",{cause:t})}},"validateAdvancedInput"),Pd=n(e=>{try{JSON.stringify(e)}catch(t){throw new Error("The `ipcInput` option is not serializable with JSON.",{cause:t})}},"validateJsonInput"),Bd={advanced:Cd,json:Pd},mi=n(async(e,t,r)=>{t!==void 0&&await fe({anyProcess:e,channel:e.channel,isSubprocess:!1,ipc:r},t)},"sendIpcInput");var gi=n(({encoding:e})=>{if(Cr.has(e))return;let t=Fd(e);if(t!==void 0)throw new TypeError(`Invalid option \`encoding: ${wt(e)}\`.
21
+ Please rename it to ${wt(t)}.`);let r=[...Cr].map(o=>wt(o)).join(", ");throw new TypeError(`Invalid option \`encoding: ${wt(e)}\`.
22
+ Please rename it to one of: ${r}.`)},"validateEncoding"),Ld=new Set(["utf8","utf16le"]),A=new Set(["buffer","hex","base64","base64url","latin1","ascii"]),Cr=Ld.union(A),Fd=n(e=>{if(e===null)return"buffer";if(typeof e!="string")return;let t=e.toLowerCase();if(t in hi)return hi[t];if(Cr.has(t))return t},"getCorrectEncoding"),hi={"utf-8":"utf8","utf-16le":"utf16le","ucs-2":"utf16le",ucs2:"utf16le",binary:"latin1"},wt=n(e=>typeof e=="string"?`"${e}"`:String(e),"serializeEncoding");import xt from"node:fs";import Si from"node:fs/promises";import Ce from"node:path";import Pe from"node:process";var k=Pe.platform==="win32",Ud=k?new RegExp("[\\/\\\\]","v"):new RegExp("\\/","v"),_d=".COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC";function Et(e,t){if(typeof e!="string"||e.length===0)throw new TypeError("Expected a non-empty string.");let{cwd:r=Pe.cwd(),path:o=Pe.env.PATH??(k?Pe.env.Path:void 0)??"",pathExt:i=Pe.env.PATHEXT||_d}=t;return{cwd:r,searchPath:o,pathExt:i}}n(Et,"resolveOptions");function $d(e,t){let r=t.split(Ce.delimiter).filter(Boolean),o=Ce.extname(e).toLowerCase();return o!==""&&r.some(i=>i.toLowerCase()===o)?["",...r]:r}n($d,"windowsExtensions");function*Tt(e,{cwd:t,searchPath:r,pathExt:o}){let i=k?$d(e,o):[""];if(Ud.test(e)){let a=Ce.resolve(t,e);for(let c of i)yield a+c;return}let s=[...k?[t]:[],...r.split(Ce.delimiter)];for(let a of s){let c=k&&a.length>1&&a.startsWith('"')&&a.endsWith('"')?a.slice(1,-1):a;if(c==="")continue;let l=Ce.resolve(t,c,e);for(let d of i)yield l+d}}n(Tt,"candidatePaths");async function yi(e){let t;try{t=await Si.stat(e)}catch(r){return k&&r.code==="EACCES"}if(!t.isFile())return!1;if(k)return!0;try{return await Si.access(e,xt.constants.X_OK),!0}catch{return!1}}n(yi,"isExecutable");function bi(e){let t;try{t=xt.statSync(e)}catch(r){return k&&r.code==="EACCES"}if(!t.isFile())return!1;if(k)return!0;try{return xt.accessSync(e,xt.constants.X_OK),!0}catch{return!1}}n(bi,"isExecutableSync");async function Dx(e,t={}){let r=Et(e,t);for(let o of Tt(e,r))if(await yi(o))return o}n(Dx,"whichCommand");function Ot(e,t={}){let r=Et(e,t);for(let o of Tt(e,r))if(bi(o))return o}n(Ot,"whichCommandSync");async function Ix(e,t={}){let r=Et(e,t),o=[...Tt(e,r)],i=await Promise.all(o.map(async s=>await yi(s)?s:void 0));return[...new Set(i.filter(Boolean))]}n(Ix,"whichCommandAll");function Rx(e,t={}){let r=Et(e,t),o=[];for(let i of Tt(e,r))bi(i)&&o.push(i);return[...new Set(o)]}n(Rx,"whichCommandAllSync");import{openSync as vd,readSync as jd,closeSync as Nd}from"node:fs";import{Buffer as Gd}from"node:buffer";import ue from"node:path";import pe from"node:process";var Ei=n((e,t,r)=>{let o={file:e,commandArguments:[...t],options:r};return r.shell||pe.platform!=="win32"?o:zd(o)},"parseCommandFile"),kd=/\.(?:com|exe)$/i,Wd=/\.(?:bat|cmd)$/i,zd=n(e=>{let t=Vd(e);if(t!==void 0&&kd.test(t))return e.options.argv0===void 0&&(e.options.argv0=e.file),e.file=t,e;for(let a of[e.file,...e.commandArguments])qd(a);let r=t!==void 0&&Wd.test(t),o=Pr(ue.normalize(t??e.file)),i=e.commandArguments.map(a=>rf(a,r)),s=`"${[o,...i].join(" ")}"`;return e.options.windowsVerbatimArguments=!0,{file:pe.env.comspec||"cmd.exe",commandArguments:["/d","/s","/c",s],options:e.options}},"escapeWindowsCommand"),Vd=n(e=>{let t=wi(e),r=t!==void 0&&Xd(t);return r?(e.commandArguments.unshift(t),e.file=r,wi(e)):t},"resolveWithShebang"),wi=n(e=>{let t=e.options.env||pe.env,r=e.options.cwd??pe.cwd(),o=Be(t,"PATHEXT"),i=ue.extname(e.file),s=i===""?o:`${i}${ue.delimiter}${o??""}`;if(Yd(e.file))return Ot(ue.resolve(r,e.file),{cwd:r,pathExt:s});let a=Be(t,"PATH")??Be(pe.env,"PATH")??"",c={cwd:r,path:a,pathExt:s};return Hd(t)?Ot(e.file,c):Kd(e.file,c)},"resolvePath"),Yd=n(e=>e.includes("/")||e.includes("\\")||e.includes(":"),"hasWindowsPathSeparator"),Hd=n(e=>Be(pe.env,"NODEFAULTCURRENTDIRECTORYINEXEPATH")===void 0&&Be(e,"NODEFAULTCURRENTDIRECTORYINEXEPATH")===void 0,"shouldSearchCurrentDirectory"),Kd=n((e,{cwd:t,path:r,pathExt:o})=>{for(let i of r.split(ue.delimiter)){let s=i.length>1&&i.startsWith('"')&&i.endsWith('"')?i.slice(1,-1):i;if(s==="")continue;let a=Ot(ue.resolve(t,s,e),{cwd:t,pathExt:o});if(a!==void 0)return a}},"resolvePathDirectories"),Be=n((e,t)=>{let r=Object.keys(e).sort().find(o=>o.toUpperCase()===t);return r===void 0?void 0:e[r]},"getWindowsEnvironmentValue"),xi=150,Xd=n(e=>{let t=Gd.alloc(xi);try{let r=vd(e,"r");try{jd(r,t,0,xi,0)}finally{Nd(r)}}catch{return}return Qd(t.toString())},"readShebang"),Jd=/^#!(?<line>.*)/,Qd=n(e=>{let t=e.match(Jd)?.groups.line.trim();if(!t)return;let[r,o]=t.split(" "),i=r.split("/").at(-1);return i==="env"?o:o?`${i} ${o}`:i},"parseShebang"),Zd=/[\n\r]/,qd=n(e=>{if(Zd.test(e))throw new TypeError(`The command and its arguments cannot contain a line break on Windows without a shell.
23
+ This would allow a command injection with \`cmd.exe\`.
24
+ Invalid value: ${JSON.stringify(`${e}`)}`)},"assertNoLineBreak"),ef=/[()\][%!^"`<>&|;, *?]/g,Pr=n(e=>e.replaceAll(ef,"^$&"),"escapeMetaChars"),tf=/\\+/g,rf=n((e,t)=>{let r=`${e}`.replaceAll(tf,(i,s,a)=>{let c=a[s+i.length];return c==='"'||c===void 0?i.repeat(2):i}).replaceAll('"','\\"'),o=Pr(`"${r}"`);return t?Pr(o):o},"escapeArgument");import{statSync as nf}from"node:fs";import of from"node:path";import sf from"node:process";var Oi=n((e=Ti())=>{let t=oe(e,'The "cwd" option');return of.resolve(t)},"normalizeCwd"),Ti=n(()=>{try{return sf.cwd()}catch(e){throw e.message=`The current directory does not exist.
25
+ ${e.message}`,e}},"getDefaultCwd"),Ai=n((e,t)=>{if(t===Ti())return e;let r;try{r=nf(t)}catch(o){return`The "cwd" option is invalid: ${t}.
26
+ ${o.message}
27
+ ${e}`}return r.isDirectory()?e:`The "cwd" option is not a directory: ${t}.
28
+ ${e}`},"fixCwdError");import af from"node:path";import Di from"node:process";var cf=/^cmd(?:\.exe)?$/i,At=n((e,t,r)=>{let o={__proto__:null,...r};o.cwd=Oi(o.cwd);let[i,s,a]=ui(e,t,o),c=Yn(a),l=lf(c);l.env=df(l);let{file:d,commandArguments:f}=Ei(i,s,l);return ci(l),gi(l),pi(l),Mo(l),si(l),l.shell=lr(l.shell),l.killSignal=Ao(l.killSignal),l.forceKillAfterDelay=Io(l.forceKillAfterDelay),l.lines=l.lines.map((u,p)=>u&&!A.has(l.encoding)&&l.buffer[p]),Di.platform==="win32"&&cf.test(af.basename(d))&&f.unshift("/q"),{file:d,commandArguments:f,options:l}},"normalizeOptions"),lf=n(({extendEnv:e=!0,preferLocal:t=!1,cwd:r,localDir:o=r,encoding:i="utf8",reject:s=!0,cleanup:a=!0,killDescendants:c=!1,all:l=!1,windowsHide:d=!0,killSignal:f="SIGTERM",forceKillAfterDelay:u=!0,gracefulCancel:p=!1,ipcInput:m,ipc:g=m!==void 0||p,serialization:S="advanced",...y})=>({__proto__:null,...y,extendEnv:e,preferLocal:t,cwd:r,localDirectory:o,encoding:i,reject:s,cleanup:a,killDescendants:c,all:l,windowsHide:d,killSignal:f,forceKillAfterDelay:u,gracefulCancel:p,ipcInput:m,ipc:g,serialization:S}),"addDefaultOptions"),df=n(({env:e,extendEnv:t,preferLocal:r,node:o,localDirectory:i,nodePath:s})=>{let a=t?{...Di.env,...e}:e;return r||o?mo({env:a,cwd:i,execPath:s,preferLocal:r,addExecPath:o}):a},"getEnv");var Dt=n((e,t,r)=>r.shell&&t.length>0?[[e,...t].join(" "),[],r]:[e,t,r],"concatenateShell");function me(e){if(typeof e=="string")return ff(e);if(!(ArrayBuffer.isView(e)&&e.BYTES_PER_ELEMENT===1))throw new Error("Input must be a string or a Uint8Array");return uf(e)}n(me,"stripFinalNewline");var ff=n(e=>e.at(-1)===Ii?e.slice(0,e.at(-2)===Ri?-2:-1):e,"stripFinalNewlineString"),uf=n(e=>e.at(-1)===pf?e.subarray(0,e.at(-2)===mf?-2:-1):e,"stripFinalNewlineBinary"),Ii=`
29
+ `,pf=Ii.codePointAt(0),Ri="\r",mf=Ri.codePointAt(0);function B(e,{checkOpen:t=!0}={}){return e!==null&&typeof e=="object"&&(e.writable||e.readable||!t||e.writable===void 0&&e.readable===void 0)&&typeof e.pipe=="function"}n(B,"isStream");function Br(e,{checkOpen:t=!0}={}){return B(e,{checkOpen:t})&&(e.writable||!t)&&typeof e.write=="function"&&typeof e.end=="function"&&typeof e.writable=="boolean"&&typeof e.writableObjectMode=="boolean"&&typeof e.destroy=="function"&&typeof e.destroyed=="boolean"}n(Br,"isWritableStream");function Z(e,{checkOpen:t=!0}={}){return B(e,{checkOpen:t})&&(e.readable||!t)&&typeof e.read=="function"&&typeof e.readable=="boolean"&&typeof e.readableObjectMode=="boolean"&&typeof e.destroy=="function"&&typeof e.destroyed=="boolean"}n(Z,"isReadableStream");function It(e,t){return Br(e,t)&&Z(e,t)}n(It,"isDuplexStream");function fE(e,t){return It(e,t)&&typeof e._transform=="function"}n(fE,"isTransformStream");var hf=Object.getPrototypeOf(Object.getPrototypeOf(async function*(){}).prototype),Lr=class{static{n(this,"c")}#t;#r;#e=!1;#n=void 0;constructor(t,r){this.#t=t,this.#r=r}next(){let t=n(()=>this.#i(),"e");return this.#n=this.#n?this.#n.then(t,t):t(),this.#n}return(t){let r=n(()=>this.#o(t),"t");return this.#n?this.#n.then(r,r):r()}async#i(){if(this.#e)return{done:!0,value:void 0};let t;try{t=await this.#t.read()}catch(r){throw this.#n=void 0,this.#e=!0,this.#t.releaseLock(),r}return t.done&&(this.#n=void 0,this.#e=!0,this.#t.releaseLock()),t}async#o(t){if(this.#e)return{done:!0,value:t};if(this.#e=!0,!this.#r){let r=this.#t.cancel(t);return this.#t.releaseLock(),await r,{done:!0,value:t}}return this.#t.releaseLock(),{done:!0,value:t}}},Fr=Symbol();function Mi(){return this[Fr].next()}n(Mi,"i"),Object.defineProperty(Mi,"name",{value:"next"});function Ci(e){return this[Fr].return(e)}n(Ci,"o"),Object.defineProperty(Ci,"name",{value:"return"});var gf=Object.create(hf,{next:{enumerable:!0,configurable:!0,writable:!0,value:Mi},return:{enumerable:!0,configurable:!0,writable:!0,value:Ci}});function Le({preventCancel:e=!1}={}){let t=this.getReader(),r=new Lr(t,e),o=Object.create(gf);return o[Fr]=r,o}n(Le,"h");function Ur(e){let t=Sf(e);return new ReadableStream({async pull(r){let{value:o,done:i}=await t.next();i?r.close():r.enqueue(o)},async cancel(r){if(typeof t.return=="function"&&typeof await t.return(r)!="object")throw new TypeError("return() fulfills with a non-object.");return r}},new CountQueuingStrategy({highWaterMark:0}))}n(Ur,"c");function Sf(e){let t=e[Symbol.asyncIterator]?.bind(e);if(t===void 0){let r=e[Symbol.iterator](),o={[Symbol.iterator]:()=>r};t=n(async function*(){return yield*o},"t")}return t()}n(Sf,"a");var Pi=n(e=>{if(Z(e,{checkOpen:!1})&&Fe.on!==void 0)return bf(e);if(typeof e?.[Symbol.asyncIterator]=="function")return e;if(yf.call(e)==="[object ReadableStream]")return Le.call(e);throw new TypeError("The first argument must be a Readable, a ReadableStream, or an async iterable.")},"getAsyncIterable"),{toString:yf}=Object.prototype,bf=n(async function*(e){let t=new AbortController,r={};wf(e,t,r);try{for await(let[o]of Fe.on(e,"data",{signal:t.signal}))yield o}catch(o){if(r.error!==void 0)throw r.error;if(!t.signal.aborted)throw o}finally{e.destroy()}},"getStreamIterable"),wf=n(async(e,t,r)=>{try{await Fe.finished(e,{cleanup:!0,readable:!0,writable:!1,error:!1})}catch(o){r.error=o}finally{t.abort()}},"handleStreamEnd"),Fe={};var he=n(async(e,{init:t,convertChunk:r,getSize:o,truncateChunk:i,addChunk:s,getFinalChunk:a,finalize:c},{maxBuffer:l=Number.POSITIVE_INFINITY}={})=>{let d=Pi(e),f=t();f.length=0;try{for await(let u of d){let p=Ef(u),m=r[p](u,f);Bi({convertedChunk:m,state:f,getSize:o,truncateChunk:i,addChunk:s,maxBuffer:l})}return xf({state:f,convertChunk:r,getSize:o,truncateChunk:i,addChunk:s,getFinalChunk:a,maxBuffer:l}),c(f)}catch(u){let p=typeof u=="object"&&u!==null?u:new Error(u);throw p.bufferedData=c(f),p}},"getStreamContents"),xf=n(({state:e,getSize:t,truncateChunk:r,addChunk:o,getFinalChunk:i,maxBuffer:s})=>{let a=i(e);a!==void 0&&Bi({convertedChunk:a,state:e,getSize:t,truncateChunk:r,addChunk:o,maxBuffer:s})},"appendFinalChunk"),Bi=n(({convertedChunk:e,state:t,getSize:r,truncateChunk:o,addChunk:i,maxBuffer:s})=>{let a=r(e),c=t.length+a;if(c<=s){Li(e,t,i,c);return}let l=o(e,s-t.length);throw l!==void 0&&Li(l,t,i,s),new _},"appendChunk"),Li=n((e,t,r,o)=>{t.contents=r(e,t,o),t.length=o},"addNewChunk"),Ef=n(e=>{let t=typeof e;if(t==="string")return"string";if(t!=="object"||e===null)return"others";if(globalThis.Buffer?.isBuffer(e))return"buffer";let r=Fi.call(e);return r==="[object ArrayBuffer]"?"arrayBuffer":r==="[object DataView]"?"dataView":Number.isInteger(e.byteLength)&&Number.isInteger(e.byteOffset)&&Fi.call(e.buffer)==="[object ArrayBuffer]"?"typedArray":"others"},"getChunkType"),{toString:Fi}=Object.prototype,_=class extends Error{static{n(this,"MaxBufferError")}name="MaxBufferError";constructor(){super("maxBuffer exceeded")}};var W=n(e=>e,"identity"),Ue=n(()=>{},"noop"),Rt=n(({contents:e})=>e,"getContentsProperty"),Mt=n(e=>{throw new Error(`Streams in object mode are not supported: ${String(e)}`)},"throwObjectStream"),Ct=n(e=>e.length,"getLengthProperty");async function Pt(e,t){return he(e,Df,t)}n(Pt,"getStreamAsArray");var Tf=n(()=>({contents:[]}),"initArray"),Of=n(()=>1,"increment"),Af=n((e,{contents:t})=>(t.push(e),t),"addArrayChunk"),Df={init:Tf,convertChunk:{string:W,buffer:W,arrayBuffer:W,dataView:W,typedArray:W,others:W},getSize:Of,truncateChunk:Ue,addChunk:Af,getFinalChunk:Ue,finalize:Rt};async function Bt(e,t){return he(e,Uf,t)}n(Bt,"getStreamAsArrayBuffer");var If=n(()=>({contents:new ArrayBuffer(0)}),"initArrayBuffer"),Rf=n(e=>Mf.encode(e),"useTextEncoder"),Mf=new TextEncoder,Ui=n(e=>new Uint8Array(e),"useUint8Array"),_i=n(e=>new Uint8Array(e.buffer,e.byteOffset,e.byteLength),"useUint8ArrayWithOffset"),Cf=n((e,t)=>e.slice(0,t),"truncateArrayBufferChunk"),Pf=n((e,{contents:t,length:r},o)=>{let i=ji()?Lf(t,o):Bf(t,o);return new Uint8Array(i).set(e,r),i},"addArrayBufferChunk"),Bf=n((e,t)=>{if(t<=e.byteLength)return e;let r=new ArrayBuffer($i(t));return new Uint8Array(r).set(new Uint8Array(e),0),r},"resizeArrayBufferSlow"),Lf=n((e,t)=>{if(t<=e.maxByteLength)return e.resize(t),e;let r=new ArrayBuffer(t,{maxByteLength:$i(t)});return new Uint8Array(r).set(new Uint8Array(e),0),r},"resizeArrayBuffer"),$i=n(e=>vi**Math.ceil(Math.log(e)/Math.log(vi)),"getNewContentsLength"),vi=2,Ff=n(({contents:e,length:t})=>ji()?e:e.slice(0,t),"finalizeArrayBuffer"),ji=n(()=>"resize"in ArrayBuffer.prototype,"hasArrayBufferResize"),Uf={init:If,convertChunk:{string:Rf,buffer:Ui,arrayBuffer:Ui,dataView:_i,typedArray:_i,others:Mt},getSize:Ct,truncateChunk:Cf,addChunk:Pf,getFinalChunk:Ue,finalize:Ff};async function Ft(e,t){return he(e,Nf,t)}n(Ft,"getStreamAsString");var _f=n(()=>({contents:"",textDecoder:new TextDecoder}),"initString"),Lt=n((e,{textDecoder:t})=>t.decode(e,{stream:!0}),"useTextDecoder"),$f=n((e,{contents:t})=>t+e,"addStringChunk"),vf=n((e,t)=>e.slice(0,t),"truncateStringChunk"),jf=n(({textDecoder:e})=>{let t=e.decode();return t===""?void 0:t},"getFinalStringChunk"),Nf={init:_f,convertChunk:{string:W,buffer:Lt,arrayBuffer:Lt,dataView:Lt,typedArray:Lt,others:Mt},getSize:Ct,truncateChunk:vf,addChunk:$f,getFinalChunk:jf,finalize:Rt};import{on as kf}from"node:events";import{finished as Wf}from"node:stream/promises";Object.assign(Fe,{on:kf,finished:Wf});var Ni=n(({error:e,stream:t,readableObjectMode:r,lines:o,encoding:i,fdNumber:s})=>{if(!(e instanceof _))throw e;if(s==="all")return e;let a=zf(r,o,i);throw e.maxBufferInfo={fdNumber:s,unit:a},t.destroy(),e},"handleMaxBuffer"),zf=n((e,t,r)=>e?"objects":t?"lines":r==="buffer"?"bytes":"characters","getMaxBufferUnit"),Gi=n((e,t,r)=>{if(t.length!==r)return;let o=new _;throw o.maxBufferInfo={fdNumber:"ipc"},o},"checkIpcMaxBuffer"),ki=n((e,t)=>{let{streamName:r,threshold:o,unit:i}=Vf(e,t);return`Command's ${r} was larger than ${o} ${i}`},"getMaxBufferMessage"),Vf=n((e,t)=>{if(e?.maxBufferInfo===void 0)return{streamName:"output",threshold:t[1],unit:"bytes"};let{maxBufferInfo:{fdNumber:r,unit:o}}=e;delete e.maxBufferInfo;let i=G(t,r);return r==="ipc"?{streamName:"IPC output",threshold:i,unit:"messages"}:{streamName:Qe(r),threshold:i,unit:o}},"getMaxBufferInfo"),Wi=n((e,t,r)=>e?.code==="ENOBUFS"&&t!==null&&t.some(o=>o!==null&&o.length>Ut(r)),"isMaxBufferSync"),zi=n((e,t,r)=>{if(!t)return e;let o=Ut(r);return e.length>o?e.slice(0,o):e},"truncateMaxBufferSync"),Ut=n(([,e])=>e,"getMaxBufferSync");import{inspect as Yf}from"node:util";var Yi=n(({stdio:e,all:t,ipcOutput:r,originalError:o,signal:i,signalDescription:s,exitCode:a,escapedCommand:c,timedOut:l,isCanceled:d,isGracefullyCanceled:f,isMaxBuffer:u,isForcefullyTerminated:p,forceKillAfterDelay:m,killSignal:g,maxBuffer:S,timeout:y,cwd:b})=>{let E=o?.code,T=Hf({originalError:o,timedOut:l,timeout:y,isMaxBuffer:u,maxBuffer:S,errorCode:E,signal:i,signalDescription:s,exitCode:a,isCanceled:d,isGracefullyCanceled:f,isForcefullyTerminated:p,forceKillAfterDelay:m,killSignal:g}),O=Xf(o,b),R=O===void 0?"":`
30
+ ${O}`,L=`${T}: ${c}${R}`,j=t===void 0?[e[2],e[1]]:[t],re=[L,...j,...e.slice(3),r.map(V=>Jf(V)).join(`
31
+ `)].map(V=>De(me(Qf(V)))).filter(Boolean).join(`
32
+
33
+ `);return{originalMessage:O,shortMessage:L,message:re}},"createMessages"),Hf=n(({originalError:e,timedOut:t,timeout:r,isMaxBuffer:o,maxBuffer:i,errorCode:s,signal:a,signalDescription:c,exitCode:l,isCanceled:d,isGracefullyCanceled:f,isForcefullyTerminated:u,forceKillAfterDelay:p,killSignal:m})=>{let g=Kf(u,p);return t?`Command timed out after ${r} milliseconds${g}`:f?a===void 0?`Command was gracefully canceled with exit code ${l}`:u?`Command was gracefully canceled${g}`:`Command was gracefully canceled with ${a} (${c})`:d?`Command was canceled${g}`:o?`${ki(e,i)}${g}`:s!==void 0?`Command failed with ${s}${g}`:u?`Command was killed with ${m} (${lt(m)})${g}`:a!==void 0?`Command was killed with ${a} (${c})`:l!==void 0?`Command failed with exit code ${l}`:"Command failed"},"getErrorPrefix"),Kf=n((e,t)=>e?` and was forcefully terminated after ${t} milliseconds`:"","getForcefulSuffix"),Xf=n((e,t)=>{if(e instanceof C)return;let r=yo(e)?e.originalMessage:String(e?.message??e),o=De(Ai(r,t));return o===""?void 0:o},"getOriginalMessage"),Jf=n(e=>typeof e=="string"?e:Yf(e),"serializeIpcMessage"),Qf=n(e=>Array.isArray(e)?e.map(t=>me(Vi(t))).filter(Boolean).join(`
34
+ `):Vi(e),"serializeMessagePart"),Vi=n(e=>typeof e=="string"?e:x(e)?Xe(e):"","serializeMessageItem");var _t=n(({command:e,escapedCommand:t,stdio:r,all:o,ipcOutput:i,options:{cwd:s},startTime:a})=>Hi({command:e,escapedCommand:t,cwd:s,durationMs:Sr(a),failed:!1,timedOut:!1,isCanceled:!1,isGracefullyCanceled:!1,isTerminated:!1,isMaxBuffer:!1,isForcefullyTerminated:!1,exitCode:0,stdout:r[1],stderr:r[2],all:o,stdio:r,ipcOutput:i,pipedFrom:[]}),"makeSuccessResult"),ge=n(({error:e,command:t,escapedCommand:r,fileDescriptors:o,options:i,startTime:s,isSync:a})=>_e({error:e,command:t,escapedCommand:r,startTime:s,timedOut:!1,isCanceled:!1,isGracefullyCanceled:!1,isMaxBuffer:!1,isForcefullyTerminated:!1,stdio:Array.from({length:o.length}),ipcOutput:[],options:i,isSync:a}),"makeEarlyError"),_e=n(({error:e,command:t,escapedCommand:r,startTime:o,timedOut:i,isCanceled:s,isGracefullyCanceled:a,isMaxBuffer:c,isForcefullyTerminated:l,exitCode:d,signal:f,stdio:u,all:p,ipcOutput:m,options:{timeoutDuration:g,timeout:S=g,forceKillAfterDelay:y,killSignal:b,cwd:E,maxBuffer:T},isSync:O})=>{let{exitCode:R,signal:L,signalDescription:j}=qf(d,f),{originalMessage:re,shortMessage:V,message:He}=Yi({stdio:u,all:p,ipcOutput:m,originalError:e,signal:L,signalDescription:j,exitCode:R,escapedCommand:r,timedOut:i,isCanceled:s,isGracefullyCanceled:a,isMaxBuffer:c,isForcefullyTerminated:l,forceKillAfterDelay:y,killSignal:b,maxBuffer:T,timeout:S,cwd:E}),ne=So(e,He,O);return Object.assign(ne,Zf({error:ne,command:t,escapedCommand:r,startTime:o,timedOut:i,isCanceled:s,isGracefullyCanceled:a,isMaxBuffer:c,isForcefullyTerminated:l,exitCode:R,signal:L,signalDescription:j,stdio:u,all:p,ipcOutput:m,cwd:E,originalMessage:re,shortMessage:V})),ne},"makeError"),Zf=n(({error:e,command:t,escapedCommand:r,startTime:o,timedOut:i,isCanceled:s,isGracefullyCanceled:a,isMaxBuffer:c,isForcefullyTerminated:l,exitCode:d,signal:f,signalDescription:u,stdio:p,all:m,ipcOutput:g,cwd:S,originalMessage:y,shortMessage:b})=>Hi({shortMessage:b,originalMessage:y,command:t,escapedCommand:r,cwd:S,durationMs:Sr(o),failed:!0,timedOut:i,isCanceled:s,isGracefullyCanceled:a,isTerminated:f!==void 0,isMaxBuffer:c,isForcefullyTerminated:l,exitCode:d,signal:f,signalDescription:u,code:e.cause?.code,stdout:p[1],stderr:p[2],all:m,stdio:p,ipcOutput:g,pipedFrom:[]}),"getErrorProperties"),Hi=n(e=>Object.fromEntries(Object.entries(e).filter(([,t])=>t!==void 0)),"omitUndefinedProperties"),qf=n((e,t)=>{let r=e===null?void 0:e,o=t===null?void 0:t,i=o===void 0?void 0:lt(t);return{exitCode:r,signal:o,signalDescription:i}},"normalizeExitPayload");var Ki=n(e=>Number.isFinite(e)?e:0,"toZeroIfInfinity");function eu(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(Ki(e*1e3)%1e3),nanoseconds:Math.trunc(Ki(e*1e6)%1e3)}}n(eu,"parseNumber");function tu(e){return{days:e/86400000n,hours:e/3600000n%24n,minutes:e/60000n%60n,seconds:e/1000n%60n,milliseconds:e%1000n,microseconds:0n,nanoseconds:0n}}n(tu,"parseBigint");function _r(e){switch(typeof e){case"number":{if(Number.isFinite(e))return eu(e);break}case"bigint":return tu(e)}throw new TypeError("Expected a finite number or bigint")}n(_r,"parseMilliseconds");var ru=n(e=>e===0||e===0n,"isZero"),nu=n((e,t)=>t===1||t===1n?e:`${e}s`,"pluralize"),ou=1e-7,iu=24n*60n*60n*1000n;function $r(e,t){let r=typeof e=="bigint";if(!r&&!Number.isFinite(e))throw new TypeError("Expected a finite number or bigint");t={...t};let o=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=[],s=n((f,u)=>{let p=Math.floor(f*10**u+ou);return(Math.round(p)/10**u).toFixed(u)},"floorDecimals"),a=n((f,u,p,m)=>{if(!((i.length===0||!t.colonNotation)&&ru(f)&&!(t.colonNotation&&p==="m"))){if(m??=String(f),t.colonNotation){let g=m.includes(".")?m.split(".")[0].length:m.length,S=i.length>0?2:1;m="0".repeat(Math.max(0,S-g))+m}else m+=t.verbose?" "+nu(u,f):p;i.push(m)}},"add"),c=_r(e),l=BigInt(c.days);if(t.hideYearAndDays?a(BigInt(l)*24n+BigInt(c.hours),"hour","h"):(t.hideYear?a(l,"day","d"):(a(l/365n,"year","y"),a(l%365n,"day","d")),a(Number(c.hours),"hour","h")),a(Number(c.minutes),"minute","m"),!t.hideSeconds)if(t.separateMilliseconds||t.formatSubMilliseconds||!t.colonNotation&&e<1e3&&!t.subSecondsAsDecimals){let f=Number(c.seconds),u=Number(c.milliseconds),p=Number(c.microseconds),m=Number(c.nanoseconds);if(a(f,"second","s"),t.formatSubMilliseconds)a(u,"millisecond","ms"),a(p,"microsecond","\xB5s"),a(m,"nanosecond","ns");else{let g=u+p/1e3+m/1e6,S=typeof t.millisecondsDecimalDigits=="number"?t.millisecondsDecimalDigits:0,y=g>=1?Math.round(g):Math.ceil(g),b=S?g.toFixed(S):y;a(Number.parseFloat(b),"millisecond","ms",b)}}else{let f=(r?Number(e%iu):e)/1e3%60,u=typeof t.secondsDecimalDigits=="number"?t.secondsDecimalDigits:1,p=s(f,u),m=t.keepDecimalsOnWholeSeconds?p:p.replace(/\.0+$/,"");a(Number.parseFloat(m),"second","s",m)}if(i.length===0)return o+"0"+(t.verbose?" milliseconds":"ms");let d=t.colonNotation?":":" ";return typeof t.unitCount=="number"&&(i=i.slice(0,Math.max(t.unitCount,1))),o+i.join(d)}n($r,"prettyMilliseconds");var Xi=n((e,t)=>{e.failed&&F({type:"error",verboseMessage:e.shortMessage,verboseInfo:t,result:e})},"logError");var Ji=n((e,t)=>{ie(t)&&(Xi(e,t),su(e,t))},"logResult"),su=n((e,t)=>{let r=`(done in ${$r(e.durationMs)})`;F({type:"duration",verboseMessage:r,verboseInfo:t,result:e})},"logDuration");var Se=n((e,t,{reject:r})=>{if(Ji(e,t),e.failed&&r)throw e;return e},"handleResult");var jr=n((e,t)=>q(e)?"asyncGenerator":ts(e)?"generator":$t(e)?"fileUrl":fu(e)?"filePath":hu(e)?"webStream":B(e,{checkOpen:!1})?"native":x(e)?"uint8Array":gu(e)?"asyncIterable":Su(e)?"iterable":vr(e)?Qi({transform:e},t):du(e)?au(e,t):"native","getStdioItemType"),au=n((e,t)=>It(e.transform,{checkOpen:!1})?cu(e,t):vr(e.transform)?Qi(e,t):lu(e,t),"getTransformObjectType"),cu=n((e,t)=>(Zi(e,t,"Duplex stream"),"duplex"),"getDuplexType"),Qi=n((e,t)=>(Zi(e,t,"web TransformStream"),"webTransform"),"getTransformStreamType"),Zi=n(({final:e,binary:t,objectMode:r},o,i)=>{qi(e,`${o}.final`,i),qi(t,`${o}.binary`,i),$e(r,`${o}.objectMode`)},"validateNonGeneratorType"),qi=n((e,t,r)=>{if(e!==void 0)throw new TypeError(`The \`${t}\` option can only be defined when using a generator, not a ${r}.`)},"checkUndefinedOption"),lu=n(({transform:e,final:t,binary:r,objectMode:o},i)=>{if(e!==void 0&&!es(e))throw new TypeError(`The \`${i}.transform\` option must be a generator, a Duplex stream or a web TransformStream.`);if(It(t,{checkOpen:!1}))throw new TypeError(`The \`${i}.final\` option must not be a Duplex stream.`);if(vr(t))throw new TypeError(`The \`${i}.final\` option must not be a web TransformStream.`);if(t!==void 0&&!es(t))throw new TypeError(`The \`${i}.final\` option must be a generator.`);return $e(r,`${i}.binary`),$e(o,`${i}.objectMode`),q(e)||q(t)?"asyncGenerator":"generator"},"getGeneratorObjectType"),$e=n((e,t)=>{if(e!==void 0&&typeof e!="boolean")throw new TypeError(`The \`${t}\` option must use a boolean.`)},"checkBooleanOption"),es=n(e=>q(e)||ts(e),"isGenerator"),q=n(e=>Object.prototype.toString.call(e)==="[object AsyncGeneratorFunction]","isAsyncGenerator"),ts=n(e=>Object.prototype.toString.call(e)==="[object GeneratorFunction]","isSyncGenerator"),du=n(e=>w(e)&&(e.transform!==void 0||e.final!==void 0),"isTransformOptions"),$t=n(e=>Object.prototype.toString.call(e)==="[object URL]","isUrl"),os=n(e=>$t(e)&&e.protocol!=="file:","isRegularUrl"),fu=n(e=>w(e)&&Object.keys(e).length>0&&Object.keys(e).every(t=>uu.has(t))&&Nr(e.file),"isFilePathObject"),uu=new Set(["file","append"]),Nr=n(e=>typeof e=="string","isFilePathString"),ve=n(e=>w(e)&&Object.keys(e).length>0&&Object.keys(e).every(t=>pu.has(t))&&"value"in e,"isStdioValueObject"),pu=new Set(["value","input"]),is=n((e,t)=>e==="native"&&typeof t=="string"&&!mu.has(t),"isUnknownStdioString"),mu=new Set(["ipc","ignore","inherit","overlapped","pipe"]),rs=n(e=>Object.prototype.toString.call(e)==="[object ReadableStream]","isReadableStream"),vt=n(e=>Object.prototype.toString.call(e)==="[object WritableStream]","isWritableStream"),hu=n(e=>rs(e)||vt(e),"isWebStream"),vr=n(e=>rs(e?.readable)&&vt(e?.writable),"isTransformStream"),gu=n(e=>ns(e)&&typeof e[Symbol.asyncIterator]=="function","isAsyncIterableObject"),Su=n(e=>ns(e)&&typeof e[Symbol.iterator]=="function","isIterableObject"),ns=n(e=>typeof e=="object"&&e!==null,"isObject"),I=new Set(["generator","asyncGenerator","duplex","webTransform"]),jt=new Set(["fileUrl","filePath","fileNumber"]),Gr=new Set(["fileUrl","filePath"]),ss=new Set([...Gr,"webStream","nodeStream"]),as=new Set(["webTransform","duplex"]),K={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"};var kr=n((e,t,r,o)=>o==="output"?yu(e,t,r):bu(e,t,r),"getTransformObjectModes"),yu=n((e,t,r)=>{let o=t!==0&&r[t-1].value.readableObjectMode;return{writableObjectMode:o,readableObjectMode:e??o}},"getOutputObjectModes"),bu=n((e,t,r)=>{let o=t===0?e===!0:r[t-1].value.readableObjectMode,i=t!==r.length-1&&(e??o);return{writableObjectMode:o,readableObjectMode:i}},"getInputObjectModes"),cs=n((e,t)=>{let r=e.findLast(({type:o})=>I.has(o));return r===void 0?!1:t==="input"?r.value.writableObjectMode:r.value.readableObjectMode},"getFdObjectMode");var ls=n((e,t,r,o)=>[...e.filter(({type:i})=>!I.has(i)),...wu(e,t,r,o)],"normalizeTransforms"),wu=n((e,t,r,{encoding:o})=>{let i=e.filter(({type:a})=>I.has(a)),s=Array.from({length:i.length});for(let[a,c]of Object.entries(i))s[a]=xu({stdioItem:c,index:Number(a),newTransforms:s,optionName:t,direction:r,encoding:o});return Au(s,r)},"getTransforms"),xu=n(({stdioItem:e,stdioItem:{type:t},index:r,newTransforms:o,optionName:i,direction:s,encoding:a})=>t==="duplex"?Eu({stdioItem:e,optionName:i}):t==="webTransform"?Tu({stdioItem:e,index:r,newTransforms:o,direction:s}):Ou({stdioItem:e,index:r,newTransforms:o,direction:s,encoding:a}),"normalizeTransform"),Eu=n(({stdioItem:e,optionName:t})=>{let{value:r}=e,{transform:o}=r,{writableObjectMode:i,readableObjectMode:s}=o,{objectMode:a=s}=r;if(a&&!s)throw new TypeError(`The \`${t}.objectMode\` option can only be \`true\` if \`new Duplex({objectMode: true})\` is used.`);if(!a&&s)throw new TypeError(`The \`${t}.objectMode\` option cannot be \`false\` if \`new Duplex({objectMode: true})\` is used.`);return{...e,value:{transform:o,writableObjectMode:i,readableObjectMode:s}}},"normalizeDuplex"),Tu=n(({stdioItem:e,stdioItem:{value:t},index:r,newTransforms:o,direction:i})=>{let{transform:s,objectMode:a}=w(t)?t:{transform:t},{writableObjectMode:c,readableObjectMode:l}=kr(a,r,o,i);return{...e,value:{transform:s,writableObjectMode:c,readableObjectMode:l}}},"normalizeTransformStream"),Ou=n(({stdioItem:e,stdioItem:{value:t},index:r,newTransforms:o,direction:i,encoding:s})=>{let{transform:a,final:c,binary:l=!1,preserveNewlines:d=!1,objectMode:f}=w(t)?t:{transform:t},u=l||A.has(s),{writableObjectMode:p,readableObjectMode:m}=kr(f,r,o,i);return{...e,value:{transform:a,final:c,binary:u,preserveNewlines:d,writableObjectMode:p,readableObjectMode:m}}},"normalizeGenerator"),Au=n((e,t)=>t==="input"?e.reverse():e,"sortTransforms");import Wr from"node:process";var fs=n((e,t,r)=>{let o=e.map(i=>Du(i,t));if(o.includes("input")&&o.includes("output"))throw new TypeError(`The \`${r}\` option must not be an array of both readable and writable values.`);return o.find(Boolean)??Cu},"getStreamDirection"),Du=n((e,t)=>Ru[t]??Iu(e),"getStdioItemDirection"),Iu=n(({type:e,value:t,direction:r,optionName:o})=>{let i=ds[e](t);if(r==="input"&&i==="output")throw new TypeError(`The \`${o}\` option is invalid: \`input: true\` cannot be used with a writable value, which is always an output.`);return r??i},"getRequestedDirection"),Ru=["input","output","output"],ye=n(()=>{},"anyDirection"),zr=n(()=>"input","alwaysInput"),ds={generator:ye,asyncGenerator:ye,fileUrl:ye,filePath:ye,iterable:zr,asyncIterable:zr,uint8Array:zr,webStream:n(e=>vt(e)?"output":"input","webStream"),nodeStream(e){return Z(e,{checkOpen:!1})?Br(e,{checkOpen:!1})?void 0:"input":"output"},webTransform:ye,duplex:ye,native(e){let t=Mu(e);if(t!==void 0)return t;if(B(e,{checkOpen:!1}))return ds.nodeStream(e)}},Mu=n(e=>{if([0,Wr.stdin].includes(e))return"input";if([1,2,Wr.stdout,Wr.stderr].includes(e))return"output"},"getStandardStreamDirection"),Cu="output";var us=n((e,t)=>t?[...e,"ipc"]:e,"normalizeIpcStdioArray");var gs=n(({stdio:e,ipc:t,buffer:r,...o},i,s)=>{let a=Lu(e,o).map((c,l)=>ms(c,l));return Pu(a),s?Uu(a,r,i):us(a,t)},"normalizeStdioOption"),Pu=n(e=>{if(e.some(t=>Bu(t)))throw new Error("The `ipc: true` option must be used instead of `stdio: 'ipc'`.")},"validateIpcStdioOption"),Bu=n(e=>Array.isArray(e)?e.some(t=>ps(t)):ps(e),"hasIpcStdioOption"),ps=n(e=>ve(e)?e.value==="ipc":e==="ipc","hasIpcStdioItem"),Lu=n((e,t)=>{if(e===void 0)return D.map(o=>t[o]);if(Fu(t))throw new Error(`It's not possible to provide \`stdio\` in combination with one of ${D.map(o=>`\`${o}\``).join(", ")}`);if(typeof e=="string")return[e,e,e];if(!Array.isArray(e))throw new TypeError(`Expected \`stdio\` to be of type \`string\` or \`Array\`, got \`${typeof e}\``);let r=Math.max(e.length,D.length);return Array.from({length:r},(o,i)=>e[i])},"getStdioArray"),Fu=n(e=>D.some(t=>e[t]!==void 0),"hasAlias"),ms=n((e,t)=>Array.isArray(e)?e.map(r=>ms(r,t)):e??(t>=D.length?"ignore":"pipe"),"addDefaultValue"),Uu=n((e,t,r)=>e.map((o,i)=>!t[i]&&i!==0&&!se(r,i)&&_u(o,i)?"ignore":o),"normalizeStdioSync"),_u=n((e,t)=>hs(e,t)||Array.isArray(e)&&e.every(r=>hs(r,t)),"isOutputPipeOnly"),hs=n((e,t)=>e==="pipe"||$u(e,t),"isOutputPipe"),$u=n((e,t)=>ve(e)&&e.value==="pipe"&&(e.input===void 0||e.input===!1||vu(t,e.input)),"isOutputPipeObject"),vu=n((e,t)=>t===!0&&(e===1||e===2),"isFixedOutputPipe");var Gt=n((e,t="stdin")=>{let{options:o,fileDescriptors:i}=$.get(e),s=Ss(i,t,!0),a=e.stdio[s];if(a===null)throw new TypeError(ys(s,t,o,!0));return a},"getToStream"),be=n((e,t="stdout")=>{let{options:o,fileDescriptors:i}=$.get(e),s=Ss(i,t,!1),a=s==="all"?e.all:e.stdio[s];if(a==null)throw new TypeError(ys(s,t,o,!1));return a},"getFromStream"),$=new WeakMap,Ss=n((e,t,r)=>{let o=ju(t,r);return Nu(o,t,r,e),o},"getFdNumber"),ju=n((e,t)=>{let r=pr(e);if(r!==void 0)return r;let{validOptions:o,defaultValue:i}=t?{validOptions:'"stdin"',defaultValue:"stdin"}:{validOptions:'"stdout", "stderr", "all"',defaultValue:"stdout"};throw new TypeError(`"${je(t)}" must not be "${e}".
35
+ It must be ${o} or "fd3", "fd4" (and so on).
36
+ It is optional and defaults to "${i}".`)},"parseFdNumber"),Nu=n((e,t,r,o)=>{let i=o[bs(e)];if(i===void 0)throw new TypeError(`"${je(r)}" must not be ${t}. That file descriptor does not exist.
37
+ Please set the "stdio" option to ensure that file descriptor exists.`);if(i.direction==="input"&&!r)throw new TypeError(`"${je(r)}" must not be ${t}. It must be a readable stream, not writable.`);if(i.direction!=="input"&&r)throw new TypeError(`"${je(r)}" must not be ${t}. It must be a writable stream, not readable.
38
+ If you meant to use it as input, please set its "stdio" option to \`{value: 'pipe', input: true}\`.`)},"validateFdNumber"),ys=n((e,t,r,o)=>{if(e==="all"&&!r.all)return`The "all" option must be true to use "from: 'all'".`;let{optionName:i,optionValue:s}=Gu(e,r);return`The "${i}: ${Nt(s)}" option is incompatible with using "${je(o)}: ${Nt(t)}".
39
+ Please set this option with "pipe" instead.`},"getInvalidStdioOptionMessage"),Gu=n((e,{stdin:t,stdout:r,stderr:o,stdio:i})=>{let s=bs(e);return s===0&&t!==void 0?{optionName:"stdin",optionValue:t}:s===1&&r!==void 0?{optionName:"stdout",optionValue:r}:s===2&&o!==void 0?{optionName:"stderr",optionValue:o}:{optionName:`stdio[${s}]`,optionValue:i[s]}},"getInvalidStdioOption"),bs=n(e=>e==="all"?1:e,"getUsedDescriptor"),je=n(e=>e?"to":"from","getOptionName"),Nt=n(e=>typeof e=="string"?`'${e}'`:typeof e=="number"?`${e}`:"Stream","serializeOptionValue");import{readFileSync as ku}from"node:fs";import Wu from"node:tty";var xs=n(({stdioItem:e,stdioItem:{type:t},isStdioArray:r,fdNumber:o,direction:i,isSync:s})=>!r||t!=="native"?e:s?zu({stdioItem:e,fdNumber:o,direction:i}):Hu({stdioItem:e,fdNumber:o}),"handleNativeStream"),zu=n(({stdioItem:e,stdioItem:{value:t,optionName:r},fdNumber:o,direction:i})=>{let s=Vu({value:t,optionName:r,fdNumber:o,direction:i});if(s!==void 0)return s;if(B(t,{checkOpen:!1}))throw new TypeError(`The \`${r}: Stream\` option cannot both be an array and include a stream with synchronous methods.`);return e},"handleNativeStreamSync"),Vu=n(({value:e,optionName:t,fdNumber:r,direction:o})=>{let i=Yu(e,r);if(i!==void 0){if(o==="output")return{type:"fileNumber",value:i,optionName:t};if(Wu.isatty(i))throw new TypeError(`The \`${t}: ${Nt(e)}\` option is invalid: it cannot be a TTY with synchronous methods.`);return{type:"uint8Array",value:N(ku(i)),optionName:t}}},"getTargetFd"),Yu=n((e,t)=>{if(e==="inherit")return t;if(typeof e=="number")return e;let r=Je.indexOf(e);if(r!==-1)return r},"getTargetFdNumber"),Hu=n(({stdioItem:e,stdioItem:{value:t,optionName:r},fdNumber:o})=>t==="inherit"?{type:"nodeStream",value:ws(o,t,r),optionName:r}:typeof t=="number"?{type:"nodeStream",value:ws(t,t,r),optionName:r}:B(t,{checkOpen:!1})?{type:"nodeStream",value:t,optionName:r}:e,"handleNativeStreamAsync"),ws=n((e,t,r)=>{let o=Je[e];if(o===void 0)throw new TypeError(`The \`${r}: ${t}\` option is invalid: no such standard stream.`);return o},"getStandardStream");var Es=n(({input:e,inputFile:t},r)=>r===0?[...Ku(e),...Ju(t)]:[],"handleInputOptions"),Ku=n(e=>e===void 0?[]:[{type:Xu(e),value:e,optionName:"input"}],"handleInputOption"),Xu=n(e=>{if(Z(e,{checkOpen:!1}))return"nodeStream";if(typeof e=="string")return"string";if(x(e))return"uint8Array";throw new Error("The `input` option must be a string, a Uint8Array or a Node.js Readable stream.")},"getInputType"),Ju=n(e=>e===void 0?[]:[{...Qu(e),optionName:"inputFile"}],"handleInputFileOption"),Qu=n(e=>{if($t(e))return{type:"fileUrl",value:e};if(Nr(e))return{type:"filePath",value:{file:e}};throw new Error("The `inputFile` option must be a file path string or a file URL.")},"getInputFileType");var As=n(e=>e.filter((t,r)=>e.every((o,i)=>!Zu(t,o)||r>=i||t.type==="generator"||t.type==="asyncGenerator")),"filterDuplicates"),Zu=n((e,t)=>e.value===t.value&&e.direction===t.direction,"hasSameValueAndDirection"),Ds=n(({stdioItem:{type:e,value:t,optionName:r},direction:o,fileDescriptors:i,isSync:s})=>{let a=qu(i,e);if(a.length!==0){if(s){ep({otherStdioItems:a,type:e,value:t,optionName:r,direction:o});return}if(ss.has(e))return Ts({otherStdioItems:a,type:e,value:t,optionName:r,direction:o});as.has(e)&&rp({otherStdioItems:a,type:e,value:t,optionName:r})}},"getDuplicateStream"),qu=n((e,t)=>e.flatMap(({direction:r,stdioItems:o})=>o.filter(i=>i.type===t).map((i=>({...i,direction:r})))),"getOtherStdioItems"),ep=n(({otherStdioItems:e,type:t,value:r,optionName:o,direction:i})=>{Gr.has(t)&&Ts({otherStdioItems:e,type:t,value:r,optionName:o,direction:i})},"validateDuplicateStreamSync"),Ts=n(({otherStdioItems:e,type:t,value:r,optionName:o,direction:i})=>{let s=e.filter(c=>tp(c,r));if(s.length===0)return;let a=s.find(c=>c.direction!==i);return Os(a,o,t),i==="output"?s[0].stream:void 0},"getDuplicateStreamInstance"),tp=n(({type:e,value:t},r)=>e==="filePath"?t.file===r.file:e==="fileUrl"?t.href===r.href:t===r,"hasSameValue"),rp=n(({otherStdioItems:e,type:t,value:r,optionName:o})=>{let i=e.find(({value:{transform:s}})=>s===r.transform);Os(i,o,t)},"validateDuplicateTransform"),Os=n((e,t,r)=>{if(e!==void 0)throw new TypeError(`The \`${e.optionName}\` and \`${t}\` options must not target ${K[r]} that is the same.`)},"throwOnDuplicateStream");var kt=n((e,t,r,o)=>{let s=gs(t,r,o).map((c,l)=>np({stdioOption:c,fdNumber:l,options:t,isSync:o})),a=mp({initialFileDescriptors:s,addProperties:e,options:t,isSync:o});return t.stdio=a.map(({stdioItems:c})=>Sp(c)),a},"handleStdio"),np=n(({stdioOption:e,fdNumber:t,options:r,isSync:o})=>{let i=Qe(t),{stdioItems:s,isStdioArray:a}=op({stdioOption:e,fdNumber:t,options:r,optionName:i}),c=fs(s,t,i),l=s.map(u=>xs({stdioItem:u,isStdioArray:a,fdNumber:t,direction:c,isSync:o})),d=ls(l,i,c,r),f=cs(d,c);return pp(d,f),{direction:c,objectMode:f,stdioItems:d}},"getFileDescriptor"),op=n(({stdioOption:e,fdNumber:t,options:r,optionName:o})=>{let i=Array.isArray(e)?e:[e],s=Es(r,t),a=[...ip(i.map(d=>ap(d,o)),s),...s],c=As(a),l=c.length>1;return lp(c,l,o),fp(c),{stdioItems:c,isStdioArray:l}},"initializeStdioItems"),ip=n((e,t)=>t.length>0&&sp(e)?[]:e,"omitInheritedStdin"),sp=n(e=>e.length===1&&e[0].type==="native"&&e[0].value==="inherit","isInheritedStdinOnly"),ap=n((e,t)=>ve(e)?cp(e,t):{type:jr(e,t),value:e,optionName:t},"initializeStdioItem"),cp=n(({value:e,input:t},r)=>($e(t,`${r}.input`),{type:jr(e,r),value:e,direction:t?"input":void 0,optionName:r}),"initializeStdioValueObject"),lp=n((e,t,r)=>{if(e.length===0)throw new TypeError(`The \`${r}\` option must not be an empty array.`);if(t){for(let{value:o,optionName:i}of e)if(dp.has(o))throw new Error(`The \`${i}\` option must not include \`${o}\`.`)}},"validateStdioArray"),dp=new Set(["ignore"]),fp=n(e=>{for(let t of e)up(t)},"validateStreams"),up=n(({type:e,value:t,optionName:r})=>{if(os(t))throw new TypeError(`The \`${r}: URL\` option must use the \`file:\` scheme.
40
+ For example, you can use the \`pathToFileURL()\` method of the \`url\` core module.`);if(is(e,t))throw new TypeError(`The \`${r}: { file: '...' }\` option must be used instead of \`${r}: '...'\`.`)},"validateFileStdio"),pp=n((e,t)=>{if(!t)return;let r=e.find(({type:o})=>jt.has(o));if(r!==void 0)throw new TypeError(`The \`${r.optionName}\` option cannot use both files and transforms in objectMode.`)},"validateFileObjectMode"),mp=n(({initialFileDescriptors:e,addProperties:t,options:r,isSync:o})=>{let i=[];try{for(let s of e)i.push(hp({fileDescriptor:s,fileDescriptors:i,addProperties:t,options:r,isSync:o}));return i}catch(s){throw Vr(i),s}},"getFinalFileDescriptors"),hp=n(({fileDescriptor:{direction:e,objectMode:t,stdioItems:r},fileDescriptors:o,addProperties:i,options:s,isSync:a})=>{let c=r.map(l=>gp({stdioItem:l,addProperties:i,direction:e,options:s,fileDescriptors:o,isSync:a}));return{direction:e,objectMode:t,stdioItems:c}},"getFinalFileDescriptor"),gp=n(({stdioItem:e,addProperties:t,direction:r,options:o,fileDescriptors:i,isSync:s})=>{let a=Ds({stdioItem:e,direction:r,fileDescriptors:i,isSync:s});return a!==void 0?{...e,stream:a}:{...e,...t[r][e.type](e,o)}},"addStreamProperties"),Vr=n(e=>{for(let{stdioItems:t}of e)for(let{stream:r}of t)r!==void 0&&!M(r)&&r.destroy()},"cleanupCustomStreams"),Sp=n(e=>{if(e.length>1)return e.some(({value:o})=>o==="overlapped")?"overlapped":"pipe";let[{type:t,value:r}]=e;return t==="native"?r:"pipe"},"forwardStdio");import{readFileSync as Is}from"node:fs";var Ps=n((e,t)=>kt(bp,e,t,!0),"handleStdioSync"),v=n(({type:e,optionName:t})=>{Ms(t,K[e])},"forbiddenIfSync"),Rs=n(({optionName:e,value:t})=>(t==="overlapped"&&Ms(e,`"${t}"`),{}),"forbiddenNativeIfSync"),yp=n(e=>{let{optionName:t,value:r}=e;if(r==="pipe"&&t!=="stdin")throw new TypeError(`Only the \`stdin\` option, not \`${t}\`, can be an input pipe with synchronous methods.`);return Rs(e)},"forbiddenNativeInputIfSync"),Ms=n((e,t)=>{throw new TypeError(`The \`${e}\` option cannot be ${t} with synchronous methods.`)},"throwInvalidSyncValue"),Cs={generator(){},asyncGenerator:v,webStream:v,nodeStream:v,webTransform:v,duplex:v,asyncIterable:v,native:Rs},bp={input:{...Cs,native:yp,fileUrl:n(({value:e})=>({contents:[N(Is(e))]}),"fileUrl"),filePath:n(({value:{file:e}})=>({contents:[N(Is(e))]}),"filePath"),fileNumber:v,iterable:n(({value:e})=>({contents:[...e]}),"iterable"),string:n(({value:e})=>({contents:[e]}),"string"),uint8Array:n(({value:e})=>({contents:[e]}),"uint8Array")},output:{...Cs,fileUrl:n(({value:e})=>({path:e}),"fileUrl"),filePath:n(({value:{file:e,append:t}})=>({path:e,append:t}),"filePath"),fileNumber:n(({value:e})=>({path:e}),"fileNumber"),iterable:v,string:v,uint8Array:v}};var z=n((e,{stripFinalNewline:t},r)=>Yr(t,r)&&e!==void 0&&!Array.isArray(e)?me(e):e,"stripNewline"),Yr=n((e,t)=>t==="all"?e[1]||e[2]:e[t],"getStripFinalNewline");var Wt=n((e,t,r,o)=>e||r?void 0:Ls(t,o),"getSplitLinesGenerator"),Kr=n((e,t,r)=>r?e.flatMap(o=>Bs(o,t)):Bs(e,t),"splitLinesSync"),Bs=n((e,t)=>{let{transform:r,final:o}=Ls(t,{});return[...r(e),...o()]},"splitLinesItemSync"),Ls=n((e,t)=>(t.previousChunks="",{transform:wp.bind(void 0,t,e),final:Ep.bind(void 0,t)}),"initializeSplitLines"),wp=n(function*(e,t,r){if(typeof r!="string"){yield r;return}let{previousChunks:o}=e,i=-1;for(let s=0;s<r.length;s+=1){if(r[s]!==`
41
+ `)continue;let a=xp(r,s,t,e),c=r.slice(i+1,s+1-a);o.length>0&&(c=Hr(o,c),o=""),yield c,i=s}i!==r.length-1&&(o=Hr(o,r.slice(i+1))),e.previousChunks=o},"splitGenerator"),xp=n((e,t,r,o)=>r?0:(o.isWindowsNewline=t!==0&&e[t-1]==="\r",o.isWindowsNewline?2:1),"getNewlineLength"),Ep=n(function*({previousChunks:e}){e.length>0&&(yield e)},"linesFinal"),Fs=n(({binary:e,preserveNewlines:t,readableObjectMode:r,state:o})=>e||t||r?void 0:{transform:Tp.bind(void 0,o)},"getAppendNewlineGenerator"),Tp=n(function*({isWindowsNewline:e=!1},t){let{unixNewline:r,windowsNewline:o,LF:i,concatBytes:s}=typeof t=="string"?Op:Dp;if(t.at(-1)===i){yield t;return}yield s(t,e?o:r)},"appendNewlineGenerator"),Hr=n((e,t)=>`${e}${t}`,"concatString"),Op={windowsNewline:`\r
42
+ `,unixNewline:`
43
+ `,LF:`
44
+ `,concatBytes:Hr},Ap=n((e,t)=>{let r=new Uint8Array(e.length+t.length);return r.set(e,0),r.set(t,e.length),r},"concatUint8Array"),Dp={windowsNewline:new Uint8Array([13,10]),unixNewline:new Uint8Array([10]),LF:10,concatBytes:Ap};import{Buffer as Ip}from"node:buffer";var _s=n((e,t)=>e?void 0:Rp.bind(void 0,t),"getValidateTransformInput"),Rp=n(function*(e,t){if(typeof t!="string"&&!x(t)&&!Ip.isBuffer(t))throw new TypeError(`The \`${e}\` option's transform must use "objectMode: true" to receive as input: ${typeof t}.`);yield t},"validateStringTransformInput"),$s=n((e,t)=>e?Mp.bind(void 0,t):Cp.bind(void 0,t),"getValidateTransformReturn"),Mp=n(function*(e,t){Us(e,t),yield t},"validateObjectTransformReturn"),Cp=n(function*(e,t){if(Us(e,t),typeof t!="string"&&!x(t))throw new TypeError(`The \`${e}\` option's function must yield a string or an Uint8Array, not ${typeof t}.`);yield t},"validateStringTransformReturn"),Us=n((e,t)=>{if(t==null)throw new TypeError(`The \`${e}\` option's function must not call \`yield ${t}\`.
45
+ Instead, \`yield\` should either be called with a value, or not be called at all. For example:
46
+ if (condition) { yield value; }`)},"validateEmptyReturn");import{Buffer as Pp}from"node:buffer";import{StringDecoder as Bp}from"node:string_decoder";var zt=n((e,t,r)=>{if(r)return;if(e)return{transform:Lp.bind(void 0,new TextEncoder)};let o=new Bp(t);return{transform:Fp.bind(void 0,o),final:Up.bind(void 0,o)}},"getEncodingTransformGenerator"),Lp=n(function*(e,t){Pp.isBuffer(t)?yield N(t):typeof t=="string"?yield e.encode(t):yield t},"encodingUint8ArrayGenerator"),Fp=n(function*(e,t){yield x(t)?e.write(t):t},"encodingStringGenerator"),Up=n(function*(e){let t=e.end();t!==""&&(yield t)},"encodingStringFinal");import{callbackify as vs}from"node:util";var Xr=vs(async(e,t,r,o)=>{t.currentIterable=e(...r);try{for await(let i of t.currentIterable)o.push(i)}finally{delete t.currentIterable}}),Vt=n(async function*(e,t,r){if(r===t.length){yield e;return}let{transform:o=$p}=t[r];for await(let i of o(e))yield*Vt(i,t,r+1)},"transformChunk"),js=n(async function*(e){for(let[t,{final:r}]of Object.entries(e))yield*_p(r,Number(t),e)},"finalChunks"),_p=n(async function*(e,t,r){if(e!==void 0)for await(let o of e())yield*Vt(o,r,t+1)},"generatorFinalChunks"),Ns=vs(async({currentIterable:e},t)=>{if(e!==void 0){await(t?e.throw(t):e.return());return}if(t)throw t}),$p=n(function*(e){yield e},"identityGenerator");var Jr=n((e,t,r,o)=>{try{for(let i of e(...t))r.push(i);o()}catch(i){o(i)}},"pushChunksSync"),Gs=n((e,t)=>[...t.flatMap(r=>[...ee(r,e,0)]),...Ne(e)],"runTransformSync"),ee=n(function*(e,t,r){if(r===t.length){yield e;return}let{transform:o=jp}=t[r];for(let i of o(e))yield*ee(i,t,r+1)},"transformChunkSync"),Ne=n(function*(e){for(let[t,{final:r}]of Object.entries(e))yield*vp(r,Number(t),e)},"finalChunksSync"),vp=n(function*(e,t,r){if(e!==void 0)for(let o of e())yield*ee(o,r,t+1)},"generatorFinalChunksSync"),jp=n(function*(e){yield e},"identityGenerator");import{Transform as Np,getDefaultHighWaterMark as ks}from"node:stream";var Qr=n(({value:e,value:{transform:t,final:r,writableObjectMode:o,readableObjectMode:i},optionName:s},{encoding:a})=>{let c={},l=Ws(e,a,s),d=q(t),f=q(r),u=d?Xr.bind(void 0,Vt,c):Jr.bind(void 0,ee),p=d||f?Xr.bind(void 0,js,c):Jr.bind(void 0,Ne),m=d||f?Ns.bind(void 0,c):void 0;return{stream:new Np({writableObjectMode:o,writableHighWaterMark:ks(o),readableObjectMode:i,readableHighWaterMark:ks(i),transform(S,y,b){u([S,l,0],this,b)},flush(S){p([l],this,S)},destroy:m})}},"generatorToStream"),Yt=n((e,t,r,o)=>{let i=t.filter(({type:a})=>a==="generator"),s=o?i.reverse():i;for(let{value:a,optionName:c}of s){let l=Ws(a,r,c);e=Gs(l,e)}return e},"runGeneratorsSync"),Ws=n(({transform:e,final:t,binary:r,writableObjectMode:o,readableObjectMode:i,preserveNewlines:s},a,c)=>{let l={};return[{transform:_s(o,c)},zt(r,a,o),Wt(r,s,o,l),{transform:e,final:t},{transform:$s(i,c)},Fs({binary:r,preserveNewlines:s,readableObjectMode:i,state:l})].filter(Boolean)},"addInternalGenerators");var zs=n((e,t)=>{for(let r of Gp(e))kp(e,r,t)},"addInputOptionsSync"),Gp=n(e=>new Set(Object.entries(e).filter(([,{direction:t}])=>t==="input").map(([t])=>Number(t))),"getInputFdNumbers"),kp=n((e,t,r)=>{let{stdioItems:o}=e[t],i=o.filter(({contents:c})=>c!==void 0);if(i.length===0)return;if(t!==0){let[{type:c,optionName:l}]=i;throw new TypeError(`Only the \`stdin\` option, not \`${l}\`, can be ${K[c]} with synchronous methods.`)}let a=i.map(({contents:c})=>c).map(c=>Wp(c,o));r.input=Ae(a)},"addInputOptionSync"),Wp=n((e,t)=>{let r=Yt(e,t,"utf8",!0);return zp(r),Ae(r)},"applySingleInputGeneratorsSync"),zp=n(e=>{let t=e.find(r=>typeof r!="string"&&!x(r));if(t!==void 0)throw new TypeError(`The \`stdin\` option is invalid: when passing objects as input, a transform must be used to serialize them to strings or Uint8Arrays: ${t}.`)},"validateSerializable");var Ht=n(({stdioItems:e,encoding:t,verboseInfo:r,fdNumber:o})=>o!=="all"&&se(r,o)&&!A.has(t)&&Vp(o)&&(e.some(({type:i,value:s})=>i==="native"&&Yp.has(s))||e.every(({type:i})=>I.has(i))),"shouldLogOutput"),Vp=n(e=>e===1||e===2,"isFdVerbose"),Yp=new Set(["pipe","overlapped"]),Ys=n(async(e,t,r,o)=>{for await(let i of e)Hp(t)||Vs(i,r,o)},"logLines"),Hs=n((e,t,r)=>{for(let o of e)Vs(o,t,r)},"logLinesSync"),Hp=n(e=>e._readableState.pipes.length>0,"isPipingStream"),Vs=n((e,t,r)=>{let o=nt(e);F({type:"output",verboseMessage:o,fdNumber:t,verboseInfo:r})},"logLine");import{writeFileSync as Kp,appendFileSync as Xp}from"node:fs";var Ks=n(({fileDescriptors:e,syncResult:{output:t},options:r,isMaxBuffer:o,verboseInfo:i})=>{if(t===null)return{output:Array.from({length:3})};let s={},a=new Set;return{output:t.map((l,d)=>Jp({result:l,fileDescriptors:e,fdNumber:d,state:s,outputFiles:a,isMaxBuffer:o,verboseInfo:i},r)),...s}},"transformOutputSync"),Jp=n(({result:e,fileDescriptors:t,fdNumber:r,state:o,outputFiles:i,isMaxBuffer:s,verboseInfo:a},{buffer:c,encoding:l,lines:d,stripFinalNewline:f,maxBuffer:u})=>{if(e===null)return;let p=zi(e,s,u),m=N(p),{stdioItems:g,objectMode:S}=t[r],y=Qp([m],g,l,o),{serializedResult:b,finalResult:E=b}=Zp({chunks:y,objectMode:S,encoding:l,lines:d,stripFinalNewline:f,fdNumber:r});qp({serializedResult:b,fdNumber:r,state:o,verboseInfo:a,encoding:l,stdioItems:g,objectMode:S});let T=c[r]?E:void 0;try{return o.error===void 0&&em(b,g,i),T}catch(O){return o.error=O,T}},"transformOutputResultSync"),Qp=n((e,t,r,o)=>{try{return Yt(e,t,r,!1)}catch(i){return o.error=i,e}},"runOutputGeneratorsSync"),Zp=n(({chunks:e,objectMode:t,encoding:r,lines:o,stripFinalNewline:i,fdNumber:s})=>{if(t)return{serializedResult:e};if(r==="buffer")return{serializedResult:Ae(e)};let a=jn(e,r);return o[s]?{serializedResult:a,finalResult:Kr(a,!i[s],t)}:{serializedResult:a}},"serializeChunks"),qp=n(({serializedResult:e,fdNumber:t,state:r,verboseInfo:o,encoding:i,stdioItems:s,objectMode:a})=>{if(!Ht({stdioItems:s,encoding:i,verboseInfo:o,fdNumber:t}))return;let c=Kr(e,!1,a);try{Hs(c,t,o)}catch(l){r.error??=l}},"logOutputSync"),em=n((e,t,r)=>{let o=t.filter(({type:i})=>jt.has(i));for(let{path:i,append:s}of o){let a=typeof i=="string"?i:i.toString();s||r.has(a)?Xp(i,e):(r.add(a),Kp(i,e))}},"writeToFiles");var Xs=n(([,e,t],r)=>{if(r.all)return e===void 0?t:t===void 0?e:Array.isArray(e)?Array.isArray(t)?[...e,...t]:[...e,z(t,r,"all")]:Array.isArray(t)?[z(e,r,"all"),...t]:x(e)&&x(t)?dr([e,t]):`${e}${t}`},"getAllSync");import{once as Zr}from"node:events";var Qs=n(async(e,t)=>{let[r,o]=await tm(e);return t.isForcefullyTerminated??=!1,[r,o]},"waitForExit"),tm=n(async e=>{let[t,r]=await Promise.allSettled([Zr(e,"spawn"),Zr(e,"exit")]);return t.status==="rejected"?[]:r.status==="rejected"?Js(e):r.value},"waitForExitOrError"),Js=n(async e=>{try{return await Zr(e,"exit")}catch{return Js(e)}},"waitForSubprocessExit"),Zs=n(async e=>{let[t,r]=await e;if(!rm(t,r)&&qr(t,r))throw new C;return[t,r]},"waitForSuccessfulExit"),rm=n((e,t)=>e===void 0&&t===void 0,"isSubprocessErrorExit"),qr=n((e,t)=>e!==0||t!==null,"isFailedExit");var qs=n(({error:e,status:t,signal:r,output:o},{maxBuffer:i})=>{let s=nm(e,t,r),a=s?.code==="ETIMEDOUT",c=Wi(s,o,i);return{resultError:s,exitCode:t,signal:r,timedOut:a,isMaxBuffer:c}},"getExitResultSync"),nm=n((e,t,r)=>e!==void 0?e:qr(t,r)?new C:void 0,"getResultError");import{spawnSync as om}from"node:child_process";var ea=n((e,t,r)=>{let{file:o,commandArguments:i,command:s,escapedCommand:a,startTime:c,verboseInfo:l,options:d,fileDescriptors:f}=im(e,t,r),u=cm({file:o,commandArguments:i,options:d,command:s,escapedCommand:a,verboseInfo:l,fileDescriptors:f,startTime:c});return Se(u,l,d)},"execaCoreSync"),im=n((e,t,r)=>{let{command:o,escapedCommand:i,startTime:s,verboseInfo:a}=it(e,t,r),c=sm(r),{file:l,commandArguments:d,options:f}=At(e,t,c);am(f);let u=Ps(f,a);return{file:l,commandArguments:d,command:o,escapedCommand:i,startTime:s,verboseInfo:a,options:f,fileDescriptors:u}},"handleSyncArguments"),sm=n(e=>e.node&&!e.ipc?{...e,ipc:!1}:e,"normalizeSyncOptions"),am=n(({ipc:e,ipcInput:t,detached:r,cancelSignal:o,killDescendants:i})=>{t&&Ge("ipcInput"),e&&Ge("ipc: true"),r&&Ge("detached: true"),i&&Ge("killDescendants: true"),o&&Ge("cancelSignal")},"validateSyncOptions"),Ge=n(e=>{throw new TypeError(`The "${e}" option cannot be used with synchronous methods.`)},"throwInvalidSyncOption"),cm=n(({file:e,commandArguments:t,options:r,command:o,escapedCommand:i,verboseInfo:s,fileDescriptors:a,startTime:c})=>{let l=lm({file:e,commandArguments:t,options:r,command:o,escapedCommand:i,fileDescriptors:a,startTime:c});if(l.failed)return l;let{resultError:d,exitCode:f,signal:u,timedOut:p,isMaxBuffer:m}=qs(l,r),{output:g,error:S=d}=Ks({fileDescriptors:a,syncResult:l,options:r,isMaxBuffer:m,verboseInfo:s}),y=g.map((E,T)=>z(E,r,T)),b=z(Xs(g,r),r,"all");return fm({error:S,exitCode:f,signal:u,timedOut:p,isMaxBuffer:m,stdio:y,all:b,options:r,command:o,escapedCommand:i,startTime:c})},"spawnSubprocessSync"),lm=n(({file:e,commandArguments:t,options:r,command:o,escapedCommand:i,fileDescriptors:s,startTime:a})=>{try{zs(s,r);let c=dm(r);return om(...Dt(e,t,c))}catch(c){return ge({error:c,command:o,escapedCommand:i,fileDescriptors:s,options:r,startTime:a,isSync:!0})}},"runSubprocessSync"),dm=n(({encoding:e,maxBuffer:t,...r})=>({...r,encoding:"buffer",maxBuffer:Ut(t)}),"normalizeSpawnSyncOptions"),fm=n(({error:e,exitCode:t,signal:r,timedOut:o,isMaxBuffer:i,stdio:s,all:a,options:c,command:l,escapedCommand:d,startTime:f})=>e===void 0?_t({command:l,escapedCommand:d,stdio:s,all:a,ipcOutput:[],options:c,startTime:f}):_e({error:e,command:l,escapedCommand:d,timedOut:o,isCanceled:!1,isGracefullyCanceled:!1,isMaxBuffer:i,isForcefullyTerminated:!1,exitCode:t,signal:r,stdio:s,all:a,ipcOutput:[],options:c,startTime:f,isSync:!0}),"getSyncResult");import{once as en,on as um}from"node:events";var tn=Symbol("internalGetOneMessageOptions"),ta=n(({anyProcess:e,channel:t,isSubprocess:r,ipc:o},i={})=>{let{reference:s=!0,filter:a}=i,{signal:c}=i[tn]??{};return le({methodName:"getOneMessage",isSubprocess:r,ipc:o,isConnected:gt(e)}),pm({anyProcess:e,channel:t,isSubprocess:r,filter:a,reference:s,signal:c})},"getOneMessage"),pm=n(async({anyProcess:e,channel:t,isSubprocess:r,filter:o,reference:i,signal:s})=>{ut(t,i);let a=H(e,t,r),c=new AbortController;mm(s,c);try{return await Promise.race([hm(a,o,c),gm(a,r,c),Sm(a,r,c)])}catch(l){throw de(e),l}finally{c.abort(),pt(t,i)}},"getOneMessageAsync"),mm=n((e,t)=>{if(e!==void 0){if(e.aborted){t.abort();return}e.addEventListener("abort",()=>{t.abort()},{once:!0,signal:t.signal})}},"stopOnAbort"),hm=n(async(e,t,{signal:r})=>{if(t===void 0){let[o]=await en(e,"message",{signal:r});return o}for await(let[o]of um(e,"message",{signal:r}))if(t(o))return o},"getMessage"),gm=n(async(e,t,{signal:r})=>{await en(e,"disconnect",{signal:r}),Po(t)},"throwOnDisconnect"),Sm=n(async(e,t,{signal:r})=>{let[o]=await en(e,"strict:error",{signal:r});throw ft(o,t)},"throwOnStrictError");import{once as ra,on as ym}from"node:events";var rn=Symbol("internalGetEachMessageOptions"),oa=n((e,t={})=>{let{reference:r=!0}=t,{signal:o,shouldAwait:i=!e.isSubprocess}=t[rn]??{};return nn({...e,shouldAwait:i,reference:r,signal:o})},"getEachMessage"),nn=n(({anyProcess:e,waitProcess:t=e,channel:r,isSubprocess:o,ipc:i,shouldAwait:s,reference:a,signal:c})=>{le({methodName:"getEachMessage",isSubprocess:o,ipc:i,isConnected:gt(e)}),ut(r,a);let l=H(e,r,o),d=new AbortController,f={};return bm(c,d),wm(e,l,d),xm({ipcEmitter:l,isSubprocess:o,controller:d,state:f}),Em({anyProcess:e,waitProcess:t,channel:r,ipcEmitter:l,isSubprocess:o,shouldAwait:s,controller:d,state:f,reference:a})},"loopOnMessages"),bm=n((e,t)=>{if(e!==void 0){if(e.aborted){t.abort();return}e.addEventListener("abort",()=>{t.abort()},{once:!0,signal:t.signal})}},"stopOnAbort"),wm=n(async(e,t,r)=>{try{await ra(t,"disconnect",{signal:r.signal}),r.abort()}catch{}},"stopOnDisconnect"),xm=n(async({ipcEmitter:e,isSubprocess:t,controller:r,state:o})=>{try{let[i]=await ra(e,"strict:error",{signal:r.signal});o.error=ft(i,t),r.abort()}catch{}},"abortOnStrictError"),Em=n(async function*({anyProcess:e,waitProcess:t,channel:r,ipcEmitter:o,isSubprocess:i,shouldAwait:s,controller:a,state:c,reference:l}){try{for await(let[d]of ym(o,"message",{signal:a.signal}))na(c),yield d}catch{na(c)}finally{a.abort(),pt(r,l),i||de(e),s&&await t}},"iterateOnMessages"),na=n(({error:e})=>{if(e)throw e},"throwIfStrictError");import ia from"node:process";var aa=n((e,t,{ipc:r})=>{Object.assign(e,sa(t,!1,r,e))},"addIpcMethods"),ca=n(()=>{let e=ia,t=!0,r=ia.channel!==void 0;return{...sa(e,t,r),getCancelSignal:ii.bind(void 0,{anyProcess:e,channel:e.channel,isSubprocess:t,ipc:r})}},"getIpcExport"),sa=n((e,t,r,o=e)=>({sendMessage:fe.bind(void 0,{anyProcess:e,channel:e.channel,isSubprocess:t,ipc:r}),getOneMessage:ta.bind(void 0,{anyProcess:e,channel:e.channel,isSubprocess:t,ipc:r}),getEachMessage:oa.bind(void 0,{anyProcess:e,channel:e.channel,isSubprocess:t,ipc:r,waitProcess:o})}),"getIpcMethods");import{ChildProcess as Tm}from"node:child_process";import{PassThrough as Om,Readable as la,Writable as da,Duplex as fa}from"node:stream";var ga=n(({error:e,command:t,escapedCommand:r,fileDescriptors:o,options:i,startTime:s,verboseInfo:a})=>{Vr(o);let c=new Tm,l=Am(c,o),d=ge({error:e,command:t,escapedCommand:r,fileDescriptors:o,options:i,startTime:s,isSync:!1}),f=Mm(d,a,i);return{subprocess:c,promise:f,all:i.all?l:void 0,convertedStreams:{readable:ua,writable:pa,duplex:ma,readableStream:Dm,writableStream:Im,transformStream:Rm,iterable:ha,[Symbol.asyncIterator]:ha}}},"handleEarlyError"),Am=n((e,t)=>{let r=ke(),o=ke(),i=ke(),s=Array.from({length:t.length-3},ke),a=ke(),c=[r,o,i,...s];return Object.assign(e,{stdin:r,stdout:o,stderr:i,stdio:c}),a},"createDummyStreams"),ke=n(()=>{let e=new Om;return e.end(),e},"createDummyStream"),ua=n(()=>new la({read(){}}),"readable"),pa=n(()=>new da({write(){}}),"writable"),ma=n(()=>new fa({read(){},write(){}}),"duplex"),Dm=n(()=>la.toWeb(ua()),"readableStream"),Im=n(()=>da.toWeb(pa()),"writableStream"),Rm=n(()=>fa.toWeb(ma()),"transformStream"),ha=n(async function*(){},"iterable"),Mm=n(async(e,t,r)=>Se(e,t,r),"handleDummyPromise");import{createReadStream as Sa,createWriteStream as ya}from"node:fs";import{Buffer as Cm}from"node:buffer";import{Readable as We,Writable as Pm,Duplex as Bm}from"node:stream";var wa=n((e,t)=>kt(Lm,e,t,!1),"handleStdioAsync"),ze=n(({type:e,optionName:t})=>{throw new TypeError(`The \`${t}\` option cannot be ${K[e]}.`)},"forbiddenIfAsync"),ba={fileNumber:ze,generator:Qr,asyncGenerator:Qr,nodeStream:n(({value:e})=>({stream:e}),"nodeStream"),webTransform({value:{transform:e,writableObjectMode:t,readableObjectMode:r}}){let o=t||r;return{stream:Bm.fromWeb(e,{objectMode:o})}},duplex:n(({value:{transform:e}})=>({stream:e}),"duplex"),native(){}},Lm={input:{...ba,fileUrl:n(({value:e})=>({stream:Sa(e)}),"fileUrl"),filePath:n(({value:{file:e}})=>({stream:Sa(e)}),"filePath"),webStream:n(({value:e})=>({stream:We.fromWeb(e)}),"webStream"),iterable:n(({value:e})=>({stream:We.from(e)}),"iterable"),asyncIterable:n(({value:e})=>({stream:We.from(e)}),"asyncIterable"),string:n(({value:e})=>({stream:We.from(e)}),"string"),uint8Array:n(({value:e})=>({stream:We.from(Cm.from(e))}),"uint8Array")},output:{...ba,fileUrl:n(({value:e})=>({stream:ya(e)}),"fileUrl"),filePath:n(({value:{file:e,append:t}})=>({stream:ya(e,t?{flags:"a"}:{})}),"filePath"),webStream:n(({value:e})=>({stream:Pm.fromWeb(e)}),"webStream"),iterable:ze,asyncIterable:ze,string:ze,uint8Array:ze}};import{on as Fm,once as xa}from"node:events";import{PassThrough as Um,getDefaultHighWaterMark as _m}from"node:stream";import{finished as Ea}from"node:stream/promises";function te(e){if(!Array.isArray(e))throw new TypeError(`Expected an array, got \`${typeof e}\`.`);for(let i of e)sn(i);let t=e.some(({readableObjectMode:i})=>i),r=$m(e,t),o=new on({objectMode:t,writableHighWaterMark:r,readableHighWaterMark:r});for(let i of e)o.add(i);return o}n(te,"mergeStreams");var $m=n((e,t)=>{if(e.length===0)return _m(t);let r=e.filter(({readableObjectMode:o})=>o===t).map(({readableHighWaterMark:o})=>o);return Math.max(...r)},"getHighWaterMark"),on=class extends Um{static{n(this,"MergedStream")}#t=new Set([]);#r=new Set([]);#e=new Set([]);#n;#i=Symbol("unpipe");#o=new WeakMap;add(t){if(sn(t),this.#t.has(t))return;this.#t.add(t),this.#n??=vm(this,this.#t,this.#i);let r=Gm({passThroughStream:this,stream:t,streams:this.#t,ended:this.#r,aborted:this.#e,onFinished:this.#n,unpipeEvent:this.#i});this.#o.set(t,r),t.pipe(this,{end:!1})}async remove(t){if(sn(t),!this.#t.has(t))return!1;let r=this.#o.get(t);return r===void 0?!1:(this.#o.delete(t),t.unpipe(this),await r,!0)}},vm=n(async(e,t,r)=>{Kt(e,Da);let o=new AbortController;try{await Promise.race([jm(e,o),Nm(e,t,r,o)])}finally{o.abort(),Kt(e,-Da)}},"onMergedStreamFinished"),jm=n(async(e,{signal:t})=>{try{await Ea(e,{signal:t,cleanup:!0})}catch(r){throw Ta(e,r),r}},"onMergedStreamEnd"),Nm=n(async(e,t,r,{signal:o})=>{for await(let[i]of Fm(e,"unpipe",{signal:o}))t.has(i)&&i.emit(r)},"onInputStreamsUnpipe"),sn=n(e=>{if(typeof e?.pipe!="function")throw new TypeError(`Expected a readable stream, got: \`${typeof e}\`.`)},"validateStream"),Gm=n(async({passThroughStream:e,stream:t,streams:r,ended:o,aborted:i,onFinished:s,unpipeEvent:a})=>{Kt(e,Ia);let c=new AbortController;try{await Promise.race([km(s,t,c),Wm({passThroughStream:e,stream:t,streams:r,ended:o,aborted:i,controller:c}),zm({stream:t,streams:r,ended:o,aborted:i,unpipeEvent:a,controller:c})])}finally{c.abort(),Kt(e,-Ia)}r.size>0&&r.size===o.size+i.size&&(o.size===0&&i.size>0?an(e):Vm(e))},"endWhenStreamsDone"),km=n(async(e,t,{signal:r})=>{try{await e,r.aborted||an(t)}catch(o){r.aborted||Ta(t,o)}},"afterMergedStreamFinished"),Wm=n(async({passThroughStream:e,stream:t,streams:r,ended:o,aborted:i,controller:{signal:s}})=>{try{await Ea(t,{signal:s,cleanup:!0,readable:!0,writable:!1}),r.has(t)&&o.add(t)}catch(a){if(s.aborted||!r.has(t))return;Oa(a)?i.add(t):Aa(e,a)}},"onInputStreamEnd"),zm=n(async({stream:e,streams:t,ended:r,aborted:o,unpipeEvent:i,controller:{signal:s}})=>{if(await xa(e,i,{signal:s}),!e.readable)return xa(s,"abort",{signal:s});t.delete(e),r.delete(e),o.delete(e)},"onInputStreamUnpipe"),Vm=n(e=>{e.writable&&e.end()},"endStream"),Ta=n((e,t)=>{Oa(t)?an(e):Aa(e,t)},"errorOrAbortStream"),Oa=n(e=>e?.code==="ERR_STREAM_PREMATURE_CLOSE","isAbortError"),an=n(e=>{(e.readable||e.writable)&&e.destroy()},"abortStream"),Aa=n((e,t)=>{e.destroyed||(e.once("error",Ym),e.destroy(t))},"errorStream"),Ym=n(()=>{},"noop"),Kt=n((e,t)=>{let r=e.getMaxListeners();r!==0&&r!==Number.POSITIVE_INFINITY&&e.setMaxListeners(r+t)},"updateMaxListeners"),Da=2,Ia=1;import{finished as Ra}from"node:stream/promises";var we=n((e,t)=>{e.pipe(t),Hm(e,t),Km(e,t)},"pipeStreams"),Hm=n(async(e,t)=>{if(!(M(e)||M(t))){try{await Ra(e,{cleanup:!0,readable:!0,writable:!1})}catch{}cn(t)}},"onSourceFinish"),cn=n(e=>{e.writable&&e.end()},"endDestinationStream"),Km=n(async(e,t)=>{if(!(M(e)||M(t))){try{await Ra(t,{cleanup:!0,readable:!1,writable:!0})}catch{}ln(e)}},"onDestinationFinish"),ln=n(e=>{e.readable&&e.destroy()},"abortSourceStream");var Ma=n((e,t,r)=>{let o=new Map;for(let[i,{stdioItems:s,direction:a}]of Object.entries(t)){let c=s.filter(({type:d})=>I.has(d));for(let{stream:d}of c)Xm(e,d,a,i);let l=s.filter(({type:d})=>!I.has(d));for(let{stream:d}of l)Qm({subprocess:e,stream:d,direction:a,fdNumber:i,pipeGroups:o,controller:r})}for(let[i,s]of o){let a=s.length===1?s[0]:te(s);we(a,i)}},"pipeOutputAsync"),Xm=n((e,t,r,o)=>{r==="output"?we(e.stdio[o],t):we(t,e.stdio[o]);let i=Jm[o];i!==void 0&&(e[i]=t),e.stdio[o]=t},"pipeTransform"),Jm=["stdin","stdout","stderr"],Qm=n(({subprocess:e,stream:t,direction:r,fdNumber:o,pipeGroups:i,controller:s})=>{if(t===void 0)return;Zm(t,s);let[a,c]=r==="output"?[t,e.stdio[o]]:[e.stdio[o],t],l=i.get(a)??[];i.set(a,[...l,c])},"pipeStdioItem"),Zm=n((e,{signal:t})=>{M(e)&&Q(e,qm,t)},"setStandardStreamMaxListeners"),qm=2;import Xt from"node:process";import{execFile as eh}from"node:child_process";import Ca from"node:path/win32";var Pa=Xt.platform==="win32",Ba=n(e=>e.killDescendants&&!Pa?{...e,detached:!0}:e,"getSpawnOptions"),La=n((e,{killDescendants:t})=>t?(Pa?rh:th).bind(void 0,e):e.kill.bind(e),"getKillFunction"),th=n((e,t)=>{if(e.pid===void 0)return!1;try{return Xt.kill(-e.pid,t)}catch{return e.kill(t)}},"killDescendantsUnix"),rh=n((e,t)=>{if(e.pid===void 0)return!1;let r=nh();return r===void 0?e.kill(t):(eh(r,["/pid",`${e.pid}`,"/T","/F"],o=>{o&&e.kill(t)}),!0)},"killDescendantsWindows"),nh=n(()=>{let e=[Xt.env.SystemRoot,Xt.env.windir].find(t=>t&&oh(t));return e===void 0?void 0:Ca.join(e,"System32","taskkill.exe")},"getTaskkillFile"),oh=n(e=>{let{root:t}=Ca.parse(e);return/^[a-z]:[/\\]/i.test(t)},"isWindowsDriveAbsolutePath");var X=[];X.push("SIGHUP","SIGINT","SIGTERM"),process.platform!=="win32"&&X.push("SIGALRM","SIGABRT","SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT"),process.platform==="linux"&&X.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT");var Jt=n(e=>!!e&&typeof e=="object"&&typeof e.removeListener=="function"&&typeof e.emit=="function"&&typeof e.reallyExit=="function"&&typeof e.listeners=="function"&&typeof e.kill=="function"&&typeof e.pid=="number"&&typeof e.on=="function","processOk"),dn=Symbol.for("signal-exit emitter"),fn=globalThis,ih=Object.defineProperty.bind(Object),un=class{static{n(this,"Emitter")}emitted={afterExit:!1,exit:!1};listeners={afterExit:[],exit:[]};count=0;id=Math.random();constructor(){if(fn[dn])return fn[dn];ih(fn,dn,{value:this,writable:!1,enumerable:!1,configurable:!1})}on(t,r){this.listeners[t].push(r)}removeListener(t,r){let o=this.listeners[t],i=o.indexOf(r);i!==-1&&(i===0&&o.length===1?o.length=0:o.splice(i,1))}emit(t,r,o){if(this.emitted[t])return!1;this.emitted[t]=!0;let i=!1;for(let s of this.listeners[t])i=s(r,o)===!0||i;return t==="exit"&&(i=this.emit("afterExit",r,o)||i),i}},Qt=class{static{n(this,"SignalExitBase")}},sh=n(e=>({onExit(t,r){return e.onExit(t,r)},load(){return e.load()},unload(){return e.unload()}}),"signalExitWrap"),pn=class extends Qt{static{n(this,"SignalExitFallback")}onExit(){return()=>{}}load(){}unload(){}},mn=class extends Qt{static{n(this,"SignalExit")}#t=hn.platform==="win32"?"SIGINT":"SIGHUP";#r=new un;#e;#n;#i;#o={};#s=!1;constructor(t){super(),this.#e=t,this.#o={};for(let r of X)this.#o[r]=()=>{let o=this.#e.listeners(r),{count:i}=this.#r,s=t;if(typeof s.__signal_exit_emitter__=="object"&&typeof s.__signal_exit_emitter__.count=="number"&&(i+=s.__signal_exit_emitter__.count),o.length===i){this.unload();let a=this.#r.emit("exit",null,r),c=r==="SIGHUP"?this.#t:r;a||t.kill(t.pid,c)}};this.#i=t.reallyExit,this.#n=t.emit}onExit(t,r){if(!Jt(this.#e))return()=>{};this.#s===!1&&this.load();let o=r?.alwaysLast?"afterExit":"exit";return this.#r.on(o,t),()=>{this.#r.removeListener(o,t),this.#r.listeners.exit.length===0&&this.#r.listeners.afterExit.length===0&&this.unload()}}load(){if(!this.#s){this.#s=!0,this.#r.count+=1;for(let t of X)try{let r=this.#o[t];r&&this.#e.on(t,r)}catch{}this.#e.emit=(t,...r)=>this.#c(t,...r),this.#e.reallyExit=t=>this.#a(t)}}unload(){this.#s&&(this.#s=!1,X.forEach(t=>{let r=this.#o[t];if(!r)throw new Error("Listener not defined for signal: "+t);try{this.#e.removeListener(t,r)}catch{}}),this.#e.emit=this.#n,this.#e.reallyExit=this.#i,this.#r.count-=1)}#a(t){return Jt(this.#e)?(this.#e.exitCode=t||0,this.#r.emit("exit",this.#e.exitCode,null),this.#i.call(this.#e,this.#e.exitCode)):0}#c(t,...r){let o=this.#n;if(t==="exit"&&Jt(this.#e)){typeof r[0]=="number"&&(this.#e.exitCode=r[0]);let i=o.call(this.#e,t,...r);return this.#r.emit("exit",this.#e.exitCode,null),i}else return o.call(this.#e,t,...r)}},hn=globalThis.process,{onExit:Fa,load:SI,unload:yI}=sh(Jt(hn)?new mn(hn):new pn);import{addAbortListener as ah}from"node:events";var Ua=n((e,{cleanup:t,detached:r},{signal:o})=>{if(!t||r)return;let i=Fa(()=>{e()});ah(o,()=>{i()})},"cleanupOnExit");var Zt=n(()=>({readableDestroy:new WeakMap,writableFinal:new WeakMap,writableDestroy:new WeakMap}),"initializeConcurrentStreams"),Ve=n((e,t,r)=>{let o=e[r];o.has(t)||o.set(t,[]);let i=o.get(t),s=U();return i.push(s),{resolve:s.resolve.bind(s),promises:i}},"addConcurrentStream"),xe=n(async({resolve:e,promises:t},r)=>{e();let[o]=await Promise.race([Promise.allSettled([!0,r]),Promise.all([!1,...t])]);return!o},"waitForConcurrentStreams");import{on as ch}from"node:events";import{getDefaultHighWaterMark as lh}from"node:stream";var qt=n(({subprocessStdout:e,subprocess:t,binary:r,shouldEncode:o,encoding:i,preserveNewlines:s})=>{let a=new AbortController;return dh(t,a),_a({stream:e,controller:a,binary:r,shouldEncode:!e.readableObjectMode&&o,encoding:i,shouldSplit:!e.readableObjectMode,preserveNewlines:s})},"iterateOnSubprocessStream"),dh=n(async(e,t)=>{try{await e}catch{}finally{t.abort()}},"stopReadingOnExit"),gn=n(({stream:e,onStreamEnd:t,lines:r,encoding:o,stripFinalNewline:i,allMixed:s})=>{let a=new AbortController;fh(t,a,e);let c=e.readableObjectMode&&!s;return _a({stream:e,controller:a,binary:o==="buffer",shouldEncode:!c,encoding:o,shouldSplit:!c&&r,preserveNewlines:!i})},"iterateForResult"),fh=n(async(e,t,r)=>{try{await e}catch{r.destroy()}finally{t.abort()}},"stopReadingOnStreamEnd"),_a=n(({stream:e,controller:t,binary:r,shouldEncode:o,encoding:i,shouldSplit:s,preserveNewlines:a})=>{let c=ch(e,"data",{signal:t.signal,highWaterMark:$a,highWatermark:$a});return uh({onStdoutChunk:c,controller:t,binary:r,shouldEncode:o,encoding:i,shouldSplit:s,preserveNewlines:a})},"iterateOnStream"),Sn=lh(!0),$a=Sn,uh=n(async function*({onStdoutChunk:e,controller:t,binary:r,shouldEncode:o,encoding:i,shouldSplit:s,preserveNewlines:a}){let c=ph({binary:r,shouldEncode:o,encoding:i,shouldSplit:s,preserveNewlines:a});try{for await(let[l]of e)yield*ee(l,c,0)}catch(l){if(!t.signal.aborted)throw l}finally{yield*Ne(c)}},"iterateOnData"),ph=n(({binary:e,shouldEncode:t,encoding:r,shouldSplit:o,preserveNewlines:i})=>[zt(e,r,!t),Wt(e,i,!o,{})].filter(Boolean),"getGenerators");var Ee=n((e,t,{from:r,binary:o=!1,preserveNewlines:i=!1}={})=>{let s=o||A.has(t),a=be(e,r),c=qt({subprocessStdout:a,subprocess:e,binary:s,shouldEncode:!0,encoding:t,preserveNewlines:i});return mh(c,a,e)},"createIterable"),mh=n(async function*(e,t,r){try{yield*e}finally{t.readable&&t.destroy(),await r}},"iterateOnStdoutData");import{finished as hh}from"node:stream/promises";var Ye=n(async(e,t,r,{isSameDirection:o,stopOnExit:i=!1}={})=>{let s=gh(e,r),a=new AbortController;try{await Promise.race([...i?[r.exitPromise]:[],hh(e,{cleanup:!0,signal:a.signal})])}catch(c){s.stdinCleanedUp||bh(c,t,r,o)}finally{a.abort()}},"waitForStream"),gh=n((e,{originalStreams:t,subprocess:r})=>{let[o]=t,i={stdinCleanedUp:!1};return e===o&&Sh(e,r,i),i},"handleStdinDestroy"),Sh=n((e,t,r)=>{let{_destroy:o}=e;e._destroy=(...i)=>{yh(t,r),o.call(e,...i)}},"spyOnStdinDestroy"),yh=n(({exitCode:e,signalCode:t},r)=>{(e!==null||t!==null)&&(r.stdinCleanedUp=!0)},"setStdinCleanedUp"),bh=n((e,t,r,o)=>{if(!wh(e,t,r,o))throw e},"handleStreamError"),wh=n((e,t,r,o=!0)=>r.propagating?va(e)||Te(e):(r.propagating=!0,yn(r,t)===o?va(e):Te(e)),"shouldIgnoreStreamError"),yn=n(({fileDescriptors:e},t)=>t!=="all"&&e[t].direction==="input","isInputFileDescriptor"),Te=n(e=>e?.code==="ERR_STREAM_PREMATURE_CLOSE","isStreamAbort"),va=n(e=>e?.code==="EPIPE","isStreamEpipe");import{finished as ja}from"node:stream/promises";var bn=n(async e=>{if(e!==void 0)try{await wn(e)}catch{}},"safeWaitForSubprocessStdin"),Na=n(async e=>{if(e!==void 0)try{await xn(e)}catch{}},"safeWaitForSubprocessStdout"),wn=n(async e=>{await ja(e,{cleanup:!0,readable:!1,writable:!0})},"waitForSubprocessStdin"),xn=n(async e=>{await ja(e,{cleanup:!0,readable:!0,writable:!1})},"waitForSubprocessStdout"),er=n(async(e,t)=>{if(await e,t)throw t},"waitForSubprocess"),tr=n((e,t,r)=>{r&&!Te(r)?e.destroy(r):t&&e.destroy()},"destroyOtherStream");import{Readable as xh}from"node:stream";import{callbackify as Eh}from"node:util";var rr=n(({subprocess:e,concurrentStreams:t,encoding:r},{from:o,binary:i=!0,preserveNewlines:s=!0}={})=>{let a=i||A.has(r),{subprocessStdout:c,waitReadableDestroy:l}=En(e,o,t),{readableEncoding:d,readableObjectMode:f,readableHighWaterMark:u}=Tn(c,a),{read:p,onStdoutDataDone:m}=On({subprocessStdout:c,subprocess:e,binary:a,encoding:r,preserveNewlines:s}),g=new xh({read:p,destroy:Eh(Dn.bind(void 0,{subprocessStdout:c,subprocess:e,waitReadableDestroy:l})),highWaterMark:u,objectMode:f,encoding:d});return An({subprocessStdout:c,onStdoutDataDone:m,readable:g,subprocess:e}),g},"createReadable"),En=n((e,t,r)=>{let o=be(e,t),i=Ve(r,o,"readableDestroy");return{subprocessStdout:o,waitReadableDestroy:i}},"getSubprocessStdout"),Tn=n(({readableEncoding:e,readableObjectMode:t,readableHighWaterMark:r},o)=>o?{readableEncoding:e,readableObjectMode:t,readableHighWaterMark:r}:{readableEncoding:e,readableObjectMode:!0,readableHighWaterMark:Sn},"getReadableOptions"),On=n(({subprocessStdout:e,subprocess:t,binary:r,encoding:o,preserveNewlines:i})=>{let s=U(),a=qt({subprocessStdout:e,subprocess:t,binary:r,shouldEncode:!r,encoding:o,preserveNewlines:i});return{read(){Th(this,a,s)},onStdoutDataDone:s}},"getReadableMethods"),Th=n(async(e,t,r)=>{try{let{value:o,done:i}=await t.next();i?r.resolve():e.push(o)}catch{}},"onRead"),An=n(async({subprocessStdout:e,onStdoutDataDone:t,readable:r,subprocess:o,subprocessStdin:i})=>{try{await xn(e),await o,await bn(i),await t,r.readable&&r.push(null)}catch(s){await bn(i),Ga(r,await Oh(o,s))}},"onStdoutFinished"),Oh=n(async(e,t)=>{if(t.code!=="ERR_STREAM_PREMATURE_CLOSE")return t;try{await e}catch(r){return r}return t},"getPrematureCloseError"),Dn=n(async({subprocessStdout:e,subprocess:t,waitReadableDestroy:r},o)=>{await xe(r,t)&&(Ga(e,o),await er(t,o))},"onReadableDestroy"),Ga=n((e,t)=>{tr(e,e.readable,t)},"destroyOtherReadable");import{Readable as Ah,Writable as Dh,Duplex as Ih}from"node:stream";var nr=n((e,t)=>Ah.toWeb(e.readable(t)),"createReadableStream"),ka=n((e,t)=>Dh.toWeb(e.writable(t)),"createWritableStream"),Wa=n((e,t)=>Ih.toWeb(e.duplex(t)),"createTransformStream");var Va=n(({source:e,sourcePromise:t,boundOptions:r,createNested:o},...i)=>{let s=ot(),{destination:a,destinationStream:c,destinationError:l,from:d,unpipeSignal:f}=Rh(r,o,i),{sourceStream:u,sourceError:p}=Ch(e,d),{options:m,fileDescriptors:g}=$.get(e);return{sourcePromise:t,sourceStream:u,sourceOptions:m,sourceError:p,destination:a,destinationStream:c,destinationError:l,unpipeSignal:f,fileDescriptors:g,startTime:s}},"normalizePipeArguments"),Rh=n((e,t,r)=>{try{let{destination:o,pipeOptions:{from:i,to:s,unpipeSignal:a}={}}=Mh(e,t,...r),c=Gt(o,s);return{destination:o,destinationStream:c,from:i,unpipeSignal:a}}catch(o){return{destinationError:o}}},"getDestinationStream"),Mh=n((e,t,r,...o)=>{if(Array.isArray(r))return{destination:t(za,e)(r,...o),pipeOptions:e};if(typeof r=="string"||r instanceof URL||cr(r)){if(Object.keys(e).length>0)throw new TypeError('Please use .pipe("file", ..., options) or .pipe(execa("file", ..., options)) instead of .pipe(options)("file", ...).');let[i,s,a]=Ke(r,...o);return{destination:t(za)(i,s,a),pipeOptions:a}}if($.has(r)){if(Object.keys(e).length>0)throw new TypeError("Please use .pipe(options)`command` or .pipe($(options)`command`) instead of .pipe(options)($`command`).");return{destination:r,pipeOptions:o[0]}}throw new TypeError(`The first argument must be a template string, an options object, or an Execa subprocess: ${r}`)},"getDestination"),za=n(({options:e})=>({options:{...e,stdin:"pipe",piped:!0}}),"mapDestinationArguments"),Ch=n((e,t)=>{try{return{sourceStream:be(e,t)}}catch(r){return{sourceError:r}}},"getSourceStream");var Ha=n(({sourceStream:e,sourceError:t,destinationStream:r,destinationError:o,fileDescriptors:i,sourceOptions:s,startTime:a})=>{let c=Ph({sourceStream:e,sourceError:t,destinationStream:r,destinationError:o});if(c!==void 0)throw In({error:c,fileDescriptors:i,sourceOptions:s,startTime:a})},"handlePipeArgumentsError"),Ph=n(({sourceStream:e,sourceError:t,destinationStream:r,destinationError:o})=>{if(t!==void 0&&o!==void 0)return o;if(o!==void 0)return ln(e),o;if(t!==void 0)return cn(r),t},"getPipeArgumentsError"),In=n(({error:e,fileDescriptors:t,sourceOptions:r,startTime:o})=>ge({error:e,command:Ya,escapedCommand:Ya,fileDescriptors:t,options:r,startTime:o,isSync:!1}),"createNonCommandError"),Ya="source.pipe(destination)";var Ka=n(async e=>{let[{status:t,reason:r,value:o=r},{status:i,reason:s,value:a=s}]=await e;if(a.pipedFrom.includes(o)||a.pipedFrom.push(o),i==="rejected")throw a;if(t==="rejected")throw o;return a},"waitForBothSubprocesses");import{finished as Bh}from"node:stream/promises";var Xa=n((e,t,r)=>{let o=or.has(t)?Fh(e,t):Lh(e,t);return Q(e,_h,r.signal),Q(t,$h,r.signal),Uh(t),o},"pipeSubprocessStream"),Lh=n((e,t)=>{let r=te([e]);return we(r,t),or.set(t,r),r},"pipeFirstSubprocessStream"),Fh=n((e,t)=>{let r=or.get(t);return r.add(e),r},"pipeMoreSubprocessStream"),Uh=n(async e=>{try{await Bh(e,{cleanup:!0,readable:!1,writable:!0})}catch{}or.delete(e)},"cleanupMergedStreamsMap"),or=new WeakMap,_h=2,$h=1;import{aborted as vh}from"node:util";var Ja=n((e,t)=>e===void 0?[]:[jh(e,t)],"unpipeOnAbort"),jh=n(async(e,{sourceStream:t,mergedStream:r,fileDescriptors:o,sourceOptions:i,startTime:s})=>{await vh(e,t),await r.remove(t);let a=new Error("Pipe canceled by `unpipeSignal` option.");throw In({error:a,fileDescriptors:o,sourceOptions:i,startTime:s})},"unpipeOnSignalAbort");var ir=n((e,...t)=>{if(w(t[0]))return ir.bind(void 0,{...e,boundOptions:{...e.boundOptions,...t[0]}});let{destination:r,...o}=Va(e,...t),i=new AbortController,s=Zh({...o,destination:r,pipeFailureController:i});return s.pipe=ir.bind(void 0,{...e,source:r,sourcePromise:s,boundOptions:{}}),Nh(s,r,i.signal),s},"pipeToSubprocess"),Nh=n((e,t,r)=>{t!==void 0&&(Gh(e,t),Vh(e,t,r))},"forwardDestinationMethods"),Gh=n((e,t)=>{let r=$.get(t);$.set(e,r),e.stdio=t.stdio,e.all=t.all;let{options:{encoding:o}}=r,i=Zt();e[Symbol.asyncIterator]=Ee.bind(void 0,e,o,{}),e.iterable=Ee.bind(void 0,e,o),e.readable=Wh.bind(void 0,e,{subprocess:e,concurrentStreams:i,encoding:o}),e.readableStream=nr.bind(void 0,e),kh(e,t)},"forwardReadableMethods"),kh=n((e,t)=>{if(t.all===void 0){e.all=void 0;return}Object.defineProperty(e,"all",{get(){Qa(e,t.all);let r=e.readable({from:"all"});return Qa(e,r),r},enumerable:!0,configurable:!0})},"forwardAll"),Qa=n((e,t)=>{Object.defineProperty(e,"all",{value:t,writable:!0,enumerable:!0,configurable:!0})},"setAllProperty"),Wh=n((e,t,...r)=>{let o=rr(t,...r);return zh(e,o),o},"createPipeReadable"),zh=n(async(e,t)=>{try{await e}catch(r){t.destroy(r)}},"destroyOnPipeFailure"),Vh=n((e,t,r)=>{e.sendMessage=t.sendMessage,e.getOneMessage=Yh.bind(void 0,t,r),e.getEachMessage=Xh.bind(void 0,e,t,r)},"forwardIpcMethods"),Yh=n((e,t,...r)=>{let o=new AbortController,i=e.getOneMessage(...Za(r,o.signal,tn));return Hh(t,i,o)},"getOnePipeMessage"),Hh=n(async(e,t,r)=>{try{return await Promise.race([t,Kh(e,r.signal)])}finally{r.abort()}},"waitForOnePipeMessage"),Kh=n((e,t)=>new Promise((r,o)=>{if(e.aborted){o(e.reason);return}e.addEventListener("abort",()=>{o(e.reason)},{once:!0,signal:t})}),"getSignalRejection"),Xh=n((e,t,r,...o)=>{let i=new AbortController,s=t.getEachMessage(...Za(o,i.signal,rn));return Qh(r,i),Jh(e,s,i)},"getEachPipeMessage"),Jh=n(async function*(e,t,r){try{yield*t}finally{r.abort(),await e}},"iterateOnPipeMessages"),Za=n((e,t,r)=>{if(e[0]===null)return e;let[o]=e;return[{...o,[r]:{signal:t,shouldAwait:!1}}]},"addPipeOptions"),Qh=n((e,t)=>{if(e.aborted){t.abort();return}e.addEventListener("abort",()=>{t.abort()},{once:!0,signal:t.signal})},"abortOnSignal"),Zh=n(async({sourcePromise:e,sourceStream:t,sourceOptions:r,sourceError:o,destination:i,destinationStream:s,destinationError:a,unpipeSignal:c,fileDescriptors:l,startTime:d,pipeFailureController:f})=>{let u=new AbortController;try{let p=qh(e,i);Ha({sourceStream:t,sourceError:o,destinationStream:s,destinationError:a,fileDescriptors:l,sourceOptions:r,startTime:d});let m=Xa(t,s,u);return await Promise.race([Ka(p),...Ja(c,{sourceStream:t,mergedStream:m,sourceOptions:r,fileDescriptors:l,startTime:d})])}catch(p){throw f.abort(p),p}finally{u.abort()}},"handlePipePromise"),qh=n((e,t)=>Promise.allSettled([e,t]),"getSubprocessPromises");import{setImmediate as eg}from"node:timers/promises";var ec=n(async({stream:e,onStreamEnd:t,fdNumber:r,encoding:o,buffer:i,maxBuffer:s,lines:a,allMixed:c,stripFinalNewline:l,verboseInfo:d,streamInfo:f})=>{let u=tg({stream:e,onStreamEnd:t,fdNumber:r,encoding:o,allMixed:c,verboseInfo:d,streamInfo:f});if(!i){await Promise.all([rg(e),u]);return}let p=Yr(l,r),m=gn({stream:e,onStreamEnd:t,lines:a,encoding:o,stripFinalNewline:p,allMixed:c}),[g]=await Promise.all([ng({stream:e,iterable:m,fdNumber:r,encoding:o,maxBuffer:s,lines:a}),u]);return g},"getStreamOutput"),tg=n(async({stream:e,onStreamEnd:t,fdNumber:r,encoding:o,allMixed:i,verboseInfo:s,streamInfo:{fileDescriptors:a}})=>{if(!Ht({stdioItems:a[r]?.stdioItems,encoding:o,verboseInfo:s,fdNumber:r}))return;let c=gn({stream:e,onStreamEnd:t,lines:!0,encoding:o,stripFinalNewline:!0,allMixed:i});await Ys(c,e,r,s)},"logOutputAsync"),rg=n(async e=>{await eg(),e.readableFlowing===null&&e.resume()},"resumeStream"),ng=n(async({stream:e,stream:{readableObjectMode:t},iterable:r,fdNumber:o,encoding:i,maxBuffer:s,lines:a})=>{try{return t||a?await Pt(r,{maxBuffer:s}):i==="buffer"?new Uint8Array(await Bt(r,{maxBuffer:s})):await Ft(r,{maxBuffer:s})}catch(c){return qa(Ni({error:c,stream:e,readableObjectMode:t,lines:a,encoding:i,fdNumber:o}))}},"getStreamContents"),Rn=n(async e=>{try{return await e}catch(t){return qa(t)}},"getBufferedData"),qa=n(({bufferedData:e})=>vn(e)?new Uint8Array(e):e,"handleBufferedData");var tc=n(({subprocess:e,encoding:t,buffer:r,maxBuffer:o,lines:i,stripFinalNewline:s,verboseInfo:a,streamInfo:c})=>e.stdio.map((l,d)=>Mn({stream:l,fdNumber:d,encoding:t,buffer:r[d],maxBuffer:o[d],lines:i[d],allMixed:!1,stripFinalNewline:s,verboseInfo:a,streamInfo:c})),"waitForStdioStreams"),Mn=n(async({stream:e,fdNumber:t,encoding:r,buffer:o,maxBuffer:i,lines:s,allMixed:a,stripFinalNewline:c,verboseInfo:l,streamInfo:d})=>{if(!e)return;let f=Ye(e,t,d);if(yn(d,t)){await f;return}let[u]=await Promise.all([ec({stream:e,onStreamEnd:f,fdNumber:t,encoding:r,buffer:o,maxBuffer:i,lines:s,allMixed:a,stripFinalNewline:c,verboseInfo:l,streamInfo:d}),f]);return u},"waitForSubprocessStream");var rc=n(({stdout:e,stderr:t},{all:r})=>r&&(e||t)?te([e,t].filter(Boolean)):void 0,"makeAllStream"),nc=n(({subprocess:e,all:t,encoding:r,buffer:o,maxBuffer:i,lines:s,stripFinalNewline:a,verboseInfo:c,streamInfo:l})=>Mn({...og(e,t,o),fdNumber:"all",encoding:r,maxBuffer:i[1]+i[2],lines:s[1]||s[2],allMixed:ig(e,t),stripFinalNewline:a,verboseInfo:c,streamInfo:l}),"waitForAllStream"),og=n(({stdout:e,stderr:t},r,[,o,i])=>{let s=o||i;return s?o?i?{stream:r,buffer:s}:{stream:e,buffer:s}:{stream:t,buffer:s}:{stream:r,buffer:s}},"getAllStream"),ig=n(({stdout:e,stderr:t},r)=>r&&e&&t&&e.readableObjectMode!==t.readableObjectMode,"getAllMixed");var oc=n(e=>se(e,"ipc"),"shouldLogIpc"),ic=n((e,t)=>{let r=nt(e);F({type:"ipc",verboseMessage:r,fdNumber:"ipc",verboseInfo:t})},"logIpcOutput");var sc=n(async({subprocess:e,buffer:t,maxBuffer:r,ipc:o,ipcOutput:i,verboseInfo:s})=>{if(!o)return i;let a=oc(s),c=G(t,"ipc"),l=G(r,"ipc");for await(let d of nn({anyProcess:e,channel:e.channel,isSubprocess:!1,ipc:o,shouldAwait:!1,reference:!0}))c&&(Gi(e,i,l),i.push(d)),a&&ic(d,s);return i},"waitForIpcOutput"),ac=n(async(e,t)=>(await Promise.allSettled([e]),t),"getBufferedIpcOutput");import{once as sg}from"node:events";var cc=n(async({subprocess:e,kill:t,all:r,options:{encoding:o,buffer:i,maxBuffer:s,lines:a,timeoutDuration:c,cancelSignal:l,gracefulCancel:d,forceKillAfterDelay:f,stripFinalNewline:u,ipc:p,ipcInput:m},context:g,verboseInfo:S,fileDescriptors:y,originalStreams:b,onInternalError:E,controller:T})=>{let O=Qs(e,g),R={originalStreams:b,fileDescriptors:y,subprocess:e,exitPromise:O,propagating:!1},L=tc({subprocess:e,encoding:o,buffer:i,maxBuffer:s,lines:a,stripFinalNewline:u,verboseInfo:S,streamInfo:R}),j=nc({subprocess:e,all:r,encoding:o,buffer:i,maxBuffer:s,lines:a,stripFinalNewline:u,verboseInfo:S,streamInfo:R}),re=[],V=sc({subprocess:e,buffer:i,maxBuffer:s,ipc:p,ipcOutput:re,verboseInfo:S}),He=ag(b,e,R),ne=cg(y,R);try{return await Promise.race([Promise.all([{},Zs(O),Promise.all(L),j,V,mi(e,m,p),...He,...ne]),E,lg(e,T),...li(t,c,g,T),...Co({kill:t,cancelSignal:l,gracefulCancel:d,context:g,controller:T}),...ai({subprocess:e,kill:t,cancelSignal:l,gracefulCancel:d,forceKillAfterDelay:f,context:g,controller:T})])}catch(Rc){return g.terminationReason??="other",Promise.all([{error:Rc},O,Promise.all(L.map(Mc=>Rn(Mc))),Rn(j),ac(V,re),Promise.allSettled(He),Promise.allSettled(ne)])}},"waitForSubprocessResult"),ag=n((e,t,r)=>e.map((o,i)=>o===t.stdio[i]?void 0:Ye(o,i,r)),"waitForOriginalStreams"),cg=n((e,t)=>e.flatMap(({stdioItems:r},o)=>r.filter(({value:i,stream:s=i})=>B(s,{checkOpen:!1})&&!M(s)).map(({type:i,value:s,stream:a=s})=>Ye(a,o,t,{isSameDirection:I.has(i),stopOnExit:i==="native"}))),"waitForCustomStreamsEnd"),lg=n(async(e,{signal:t})=>{let[r]=await sg(e,"error",{signal:t});throw r},"throwOnSubprocessError");import{Writable as dg}from"node:stream";import{callbackify as lc}from"node:util";var fc=n(({subprocess:e,concurrentStreams:t},{to:r}={})=>{let{subprocessStdin:o,waitWritableFinal:i,waitWritableDestroy:s}=Cn(e,r,t),a=new dg({...Pn(o,e,i),destroy:lc(Ln.bind(void 0,{subprocessStdin:o,subprocess:e,waitWritableFinal:i,waitWritableDestroy:s})),highWaterMark:o.writableHighWaterMark,objectMode:o.writableObjectMode});return Bn(o,a,void 0,e),a},"createWritable"),Cn=n((e,t,r)=>{let o=Gt(e,t),i=Ve(r,o,"writableFinal"),s=Ve(r,o,"writableDestroy");return{subprocessStdin:o,waitWritableFinal:i,waitWritableDestroy:s}},"getSubprocessStdin"),Pn=n((e,t,r)=>({write:fg.bind(void 0,e),final:lc(ug.bind(void 0,e,t,r))}),"getWritableMethods"),fg=n((e,t,r,o)=>{e.write(t,r)?o():e.once("drain",o)},"onWrite"),ug=n(async(e,t,r)=>{await xe(r,t)&&(e.writable&&e.end(),await t)},"onWritableFinal"),Bn=n(async(e,t,r,o)=>{try{await wn(e),await o,t.writable&&t.end()}catch(i){await Na(r),dc(t,await pg(o,i))}},"onStdinFinished"),pg=n(async(e,t)=>{if(!mg(t))return t;try{await e}catch(r){return r}return t},"getSubprocessError"),mg=n(e=>e===void 0||Te(e),"shouldUseSubprocessError"),Ln=n(async({subprocessStdin:e,subprocess:t,waitWritableFinal:r,waitWritableDestroy:o},i)=>{await xe(r,t),await xe(o,t)&&(dc(e,i),await er(t,i))},"onWritableDestroy"),dc=n((e,t)=>{tr(e,e.writable,t)},"destroyOtherWritable");import{Duplex as hg}from"node:stream";import{callbackify as gg}from"node:util";var uc=n(({subprocess:e,concurrentStreams:t,encoding:r},{from:o,to:i,binary:s=!0,preserveNewlines:a=!0}={})=>{let c=s||A.has(r),{subprocessStdout:l,waitReadableDestroy:d}=En(e,o,t),{subprocessStdin:f,waitWritableFinal:u,waitWritableDestroy:p}=Cn(e,i,t),{readableEncoding:m,readableObjectMode:g,readableHighWaterMark:S}=Tn(l,c),{read:y,onStdoutDataDone:b}=On({subprocessStdout:l,subprocess:e,binary:c,encoding:r,preserveNewlines:a}),E=new hg({read:y,...Pn(f,e,u),destroy:gg(Sg.bind(void 0,{subprocessStdout:l,subprocessStdin:f,subprocess:e,waitReadableDestroy:d,waitWritableFinal:u,waitWritableDestroy:p})),readableHighWaterMark:S,writableHighWaterMark:f.writableHighWaterMark,readableObjectMode:g,writableObjectMode:f.writableObjectMode,encoding:m});return An({subprocessStdout:l,onStdoutDataDone:b,readable:E,subprocess:e,subprocessStdin:f}),Bn(f,E,l,e),E},"createDuplex"),Sg=n(async({subprocessStdout:e,subprocessStdin:t,subprocess:r,waitReadableDestroy:o,waitWritableFinal:i,waitWritableDestroy:s},a)=>{await Promise.all([Dn({subprocessStdout:e,subprocess:r,waitReadableDestroy:o},a),Ln({subprocessStdin:t,subprocess:r,waitWritableFinal:i,waitWritableDestroy:s},a)])},"onDuplexDestroy");var pc=n((e,{encoding:t})=>{let r=Zt();e.readable=rr.bind(void 0,{subprocess:e,concurrentStreams:r,encoding:t}),e.writable=fc.bind(void 0,{subprocess:e,concurrentStreams:r}),e.duplex=uc.bind(void 0,{subprocess:e,concurrentStreams:r,encoding:t}),e.readableStream=nr.bind(void 0,e),e.writableStream=ka.bind(void 0,e),e.transformStream=Wa.bind(void 0,e),e.iterable=Ee.bind(void 0,e,t),e[Symbol.asyncIterator]=Ee.bind(void 0,e,t,{})},"addConvertedStreams");var mc=n((e,t)=>Object.assign(e,t),"mergePromise");import{setMaxListeners as yg}from"node:events";import{spawn as bg}from"node:child_process";var hc=n((e,t,r,o)=>{let{file:i,commandArguments:s,command:a,escapedCommand:c,startTime:l,verboseInfo:d,options:f,fileDescriptors:u}=wg(e,t,r),{subprocess:p,promise:m,kill:g,all:S,convertedStreams:y}=Eg({file:i,commandArguments:s,options:f,startTime:l,verboseInfo:d,command:a,escapedCommand:c,fileDescriptors:u}),b=Tg({promise:m,nodeChildProcess:p,kill:g,all:S,convertedStreams:y,options:f});return b.pipe=ir.bind(void 0,{source:b,sourcePromise:m,boundOptions:{},createNested:o}),$.set(b,{options:f,fileDescriptors:u}),b},"execaCoreAsync"),wg=n((e,t,r)=>{let{command:o,escapedCommand:i,startTime:s,verboseInfo:a}=it(e,t,r),{file:c,commandArguments:l,options:d}=At(e,t,r),f=xg(d),u=wa(f,a);return{file:c,commandArguments:l,command:o,escapedCommand:i,startTime:s,verboseInfo:a,options:f,fileDescriptors:u}},"handleAsyncArguments"),xg=n(({timeout:e,signal:t,...r})=>{if(t!==void 0)throw new TypeError('The "signal" option has been renamed to "cancelSignal" instead.');return{...r,timeoutDuration:e}},"handleAsyncOptions"),Eg=n(({file:e,commandArguments:t,options:r,startTime:o,verboseInfo:i,command:s,escapedCommand:a,fileDescriptors:c})=>{let l;try{l=bg(...Dt(e,t,Ba(r)))}catch(y){return ga({error:y,command:s,escapedCommand:a,fileDescriptors:c,options:r,startTime:o,verboseInfo:i})}let d=new AbortController;yg(1/0,d.signal);let f=[...l.stdio];Ma(l,c,d),ti(l,r);let u={},p=U(),m=Ro.bind(void 0,{kill:La(l,r),options:r,onInternalError:p,context:u,controller:d});Ua(m,r,d);let g=rc(l,r),S=Ag({subprocess:l,kill:m,all:g,options:r,startTime:o,verboseInfo:i,fileDescriptors:c,originalStreams:f,command:s,escapedCommand:a,context:u,onInternalError:p,controller:d});return{subprocess:l,promise:S,kill:m,all:g}},"spawnSubprocessAsync"),Tg=n(({promise:e,nodeChildProcess:t,kill:r,all:o,convertedStreams:i,options:s})=>{let a=mc(e,Og(t,o));return a.kill=r??a.kill,i===void 0?pc(a,s):Object.assign(a,i),aa(a,t,s),a},"getSubprocessPromise"),Og=n((e,t)=>({nodeChildProcess:e,pid:e.pid,stdin:e.stdin,stdout:e.stdout,stderr:e.stderr,stdio:e.stdio,all:t,kill:e.kill.bind(e)}),"getSubprocessProperties"),Ag=n(async({subprocess:e,kill:t,all:r,options:o,startTime:i,verboseInfo:s,fileDescriptors:a,originalStreams:c,command:l,escapedCommand:d,context:f,onInternalError:u,controller:p})=>{let[m,[g,S],y,b,E]=await cc({subprocess:e,kill:t,all:r,options:o,context:f,verboseInfo:s,fileDescriptors:a,originalStreams:c,onInternalError:u,controller:p});p.abort(),u.resolve();let T=y.map((L,j)=>z(L,o,j)),O=z(b,o,"all"),R=Dg({errorInfo:m,exitCode:g,signal:S,stdio:T,all:O,ipcOutput:E,context:f,options:o,command:l,escapedCommand:d,startTime:i});return Se(R,s,o)},"handlePromise"),Dg=n(({errorInfo:e,exitCode:t,signal:r,stdio:o,all:i,ipcOutput:s,context:a,options:c,command:l,escapedCommand:d,startTime:f})=>"error"in e?_e({error:e.error,command:l,escapedCommand:d,timedOut:a.terminationReason==="timeout",isCanceled:a.terminationReason==="cancel"||a.terminationReason==="gracefulCancel",isGracefullyCanceled:a.terminationReason==="gracefulCancel",isMaxBuffer:e.error instanceof _,isForcefullyTerminated:a.isForcefullyTerminated,exitCode:t,signal:r,stdio:o,all:i,ipcOutput:s,options:c,startTime:f,isSync:!1}):_t({command:l,escapedCommand:d,stdio:o,all:i,ipcOutput:s,options:c,startTime:f}),"getAsyncResult");var sr=n((e,t)=>{let r={__proto__:null,...e},o=Object.fromEntries(Object.entries(t).map(([i,s])=>[i,Ig(i,r[i],s)]));return{...r,...o}},"mergeOptions"),Ig=n((e,t,r)=>Rg.has(e)&&w(t)&&w(r)?{...t,...r}:r,"mergeOption"),Rg=new Set(["env",...mr]);var Oe=n((e,t,r,o)=>{let i=n((a,c,l)=>Oe(a,c,r,l),"createNested"),s=n((...a)=>Mg({mapArguments:e,deepOptions:r,boundOptions:t,setBoundExeca:o,createNested:i},...a),"boundExeca");return o!==void 0&&o(s,i,t),s},"createExeca"),Mg=n(({mapArguments:e,deepOptions:t={},boundOptions:r={},setBoundExeca:o,createNested:i},s,...a)=>{if(w(s))return i(e,sr(r,s),o);let{file:c,commandArguments:l,options:d,isSync:f}=Cg({mapArguments:e,firstArgument:s,nextArguments:a,deepOptions:t,boundOptions:r});return f?ea(c,l,d):hc(c,l,d,i)},"callBoundExeca"),Cg=n(({mapArguments:e,firstArgument:t,nextArguments:r,deepOptions:o,boundOptions:i})=>{let s=Wn(t)?zn(t,r):[t,...r],[a,c,l]=Ke(...s),d=sr(sr(o,i),l),{options:f=d,isSync:u=!1}=e({options:d});return{file:a,commandArguments:c,options:f,isSync:u}},"parseArguments");var Sc=n((e,t,r)=>{e.sync=t(Pg,r),e.s=e.sync},"setScriptSync"),yc=n(({options:e})=>gc(e),"mapScriptAsync"),Pg=n(({options:e})=>({...gc(e),isSync:!0}),"mapScriptSync"),gc=n(e=>({options:{...Bg(e),...e}}),"getScriptOptions"),Bg=n(({input:e,inputFile:t,stdio:r})=>e===void 0&&t===void 0&&r===void 0?{stdin:"inherit"}:{},"getScriptStdinOption"),bc={preferLocal:!0};var wc=Oe(()=>({})),KC=Oe(()=>({isSync:!0})),XC=Oe(fi),JC=Oe(yc,{},bc,Sc),{sendMessage:Lg,getOneMessage:Fg,getEachMessage:Ug,getCancelSignal:_g}=ca();import{accessSync as $g}from"node:fs";import{isAbsolute as vg}from"node:path";import"./process-contracts.js";import{captureProcessCreationIdentity as jg,inspectProcessLiveness as Ng}from"./process-identity.js";import{MAX_SUPERVISED_PROCESS_CAPTURE_BYTES as Gg}from"./process-limits.js";import{}from"./process-contracts.js";import{terminateAttributedProcessLineage as pP,terminateOwnedPosixProcessGroup as mP}from"./recovery.js";import{cleanupExitedProcessGroup as xc,processGroupExists as Ec}from"./process-group.js";import{createShutdownDeadline as kg,DEFAULT_SHUTDOWN_TIMEOUT_MS as ar}from"./shutdown.js";import{cleanupExitedProcessGroup as gP}from"./process-group.js";function cP(e){if(Dc(e,!1),e.signal.aborted)return Promise.resolve(Ic());try{let t=Tc(e,"bounded-capture",{cancelSignal:e.signal,forceKillAfterDelay:ar});return Wg(t)}catch(t){return Promise.resolve(zg(t))}}n(cP,"runManagedProcess");var Fn=class extends Error{static{n(this,"ProcessExitedBeforeReadyError")}exitCode;exitSignal;constructor(t,r){super("Process exited before becoming ready"),this.exitCode=t,this.exitSignal=r}};function lP(e){if(Dc(e,!0),e.signal.aborted)throw new Error(`${e.displayLabel} was cancelled before its process could start`);let t=Tc(e,e.outputMode,{forceKillAfterDelay:e.shutdownTimeoutMs===void 0?ar:!1}),r=t.pid;if(r===void 0)throw t.kill("SIGKILL"),new Error(`${e.displayLabel} could not start ${JSON.stringify(e.executable)}`);let o=!1,i=!1,s=!1,a=kg(e.shutdownTimeoutMs??ar),c=null,l={failure:null,cleanup:null},d=n(()=>{if(l.failure=null,a.deadlineAt!==null)try{c?.(a.deadlineAt)}catch(S){l.failure=Un(S)}},"publishShutdown"),f=n(S=>{s||(a.begin(S)&&d(),!o&&(o=!0,t.kill("SIGTERM"),l.cleanup=xc(r,{remainingMs:a.remainingMs,initialSignalSent:!0,sendSignal:n((y,b)=>{t.kill(b)},"sendSignal")})))},"beginShutdown"),u=n(()=>{!o&&!s&&t.nodeChildProcess.exitCode===null&&t.nodeChildProcess.signalCode===null&&(i=!0),f()},"onAbort");for(let S of[t.stdout,t.stderr])S.once("close",()=>{!S.readableEnded&&t.nodeChildProcess.exitCode===null&&t.nodeChildProcess.signalCode===null&&f()});e.signal.addEventListener("abort",u,{once:!0});let p=e.timeoutMs!==null?setTimeout(f,e.timeoutMs):null;t.nodeChildProcess.once("exit",()=>{process.platform!=="win32"&&Ec(r)&&f()});let m=e.recoveryIdentity==="none"?void 0:new Promise((S,y)=>{t.nodeChildProcess.once("error",y),t.nodeChildProcess.once("spawn",()=>{let b=jg(r);if(b===null){let E=new Error(`${e.displayLabel} process creation identity could not be captured`);Ng(r)==="absent"?t.nodeChildProcess.once("exit",(T,O)=>{y(new Fn(T,O))}):(t.kill("SIGKILL"),y(E));return}S({pid:r,recovery:{creationIdentity:b,processGroupId:process.platform==="win32"?null:r}})})});m?.catch(()=>{});let g=(async()=>{let S=await t;process.platform!=="win32"&&Ec(r)&&f();let y=l.cleanup===null?null:await l.cleanup;return{...Oc(S,e.outputMode==="bounded-capture",y??l.failure),cancelled:i}})().finally(()=>{s=!0,e.signal.removeEventListener("abort",u),p!==null&&clearTimeout(p),l.failure===null&&(c=null)});return{completion:g,...m===void 0?{}:{ready:m},stderr:t.stderr,stdin:t.stdin,stdout:t.stdout,pid:r,shutdownTimeoutMs:e.shutdownTimeoutMs??ar,get shutdownDeadlineAt(){return a.deadlineAt},onShutdownStarted(S){return c=S,a.deadlineAt!==null&&S(a.deadlineAt),()=>{c===S&&(c=null)}},async stop(S){return l.failure!==null&&d(),f(S),{...await g,terminationError:await l.cleanup??l.failure}}}}n(lP,"startSupervisedProcess");async function Wg(e){let t=e.pid,r=await e,o=t===void 0?null:await xc(t);return Oc(r,!0,o)}n(Wg,"settle");function Tc(e,t,r){return process.platform==="win32"&&vg(e.executable)&&$g(e.executable),wc(e.executable,[...e.args],{buffer:t==="bounded-capture",maxBuffer:Gg/2,...r,cleanup:!0,cwd:e.cwd,encoding:"utf8",env:e.env,extendEnv:!1,killDescendants:!0,reject:!1,stderr:"pipe",stdin:"pipe",stdout:"pipe",stripFinalNewline:!1,...e.timeoutMs===null?{}:{timeout:e.timeoutMs},windowsHide:!0,windowsVerbatimArguments:e.windowsVerbatimArguments})}n(Tc,"launch");function Oc(e,t,r){let o=e.failed&&e.exitCode===void 0&&e.signal===void 0&&!e.timedOut&&!e.isCanceled&&!e.isMaxBuffer?Un(e):null;return{cancelled:e.isCanceled,error:o,exitCode:e.exitCode??null,exitSignal:e.signal??null,outputLimitExceeded:e.isMaxBuffer,stderr:t?Ac(e.stderr):"",stdout:t?Ac(e.stdout):"",terminationError:r,timedOut:e.timedOut}}n(Oc,"mapResult");function Ac(e){return typeof e=="string"?e:e instanceof Uint8Array?Buffer.from(e).toString("utf8"):""}n(Ac,"outputString");function Dc(e,t){if(e.executable.length===0)throw new Error("Managed process executable must be non-empty");if(e.cwd.length===0)throw new Error("Managed process working directory must be non-empty");if(e.displayLabel.trim().length===0)throw new Error("Managed process display label must be non-empty");if(e.timeoutMs!==null&&(!Number.isSafeInteger(e.timeoutMs)||e.timeoutMs<=0))throw new Error("Managed process timeout must be a positive safe integer");if(t&&"recoveryIdentity"in e&&e.recoveryIdentity!==void 0&&!["capture","none"].includes(e.recoveryIdentity))throw new Error("Supervised process recovery identity mode must be capture or none");if(t&&"outputMode"in e&&!["bounded-capture","caller-drained"].includes(e.outputMode))throw new Error("Supervised process output mode must be bounded-capture or caller-drained")}n(Dc,"requireRequest");function Ic(){return{cancelled:!0,error:null,exitCode:null,exitSignal:null,outputLimitExceeded:!1,stderr:"",stdout:"",terminationError:null,timedOut:!1}}n(Ic,"cancelledBeforeStart");function zg(e){return{...Ic(),cancelled:!1,error:Un(e)}}n(zg,"startFailure");function Un(e){return e instanceof Error?e:new Error(String(e))}n(Un,"toError");export{Fn as ProcessExitedBeforeReadyError,gP as cleanupExitedProcessGroup,cP as runManagedProcess,lP as startSupervisedProcess,pP as terminateAttributedProcessLineage,mP as terminateOwnedPosixProcessGroup};
@@ -1 +1 @@
1
- import{collectRepoState as r}from"./state.js";export async function collectGitMetadata(e){const t=await r(e);return{branch:t.branch,commitSha:t.commitSha,pullRequest:t.pullRequest,pullRequestHeadSha:t.pullRequestHeadSha,repoRoot:t.repoRoot,remoteUrl:t.remoteUrl,repository:t.repository,detached:t.detached,dirty:t.dirty,dirtyFingerprint:t.dirtyFingerprint,worktreePath:t.worktreePath}}
1
+ import l from"node:fs";import o from"node:path";import{resolveCiGitReference as a}from"./ci-environment.js";import{collectGitRepoState as i}from"./state.js";export async function collectGitMetadata(t){const r=a(process.env),e=await i(t);return e===null?{branch:null,commitSha:null,pullRequest:r.pullRequest,pullRequestHeadSha:null,repoRoot:null,remoteUrl:null,repository:null,detached:!1,dirty:!1,dirtyFingerprint:null,worktreePath:l.realpathSync.native(o.resolve(t))}:{branch:e.branch,commitSha:e.commitSha,pullRequest:e.pullRequest,pullRequestHeadSha:e.pullRequestHeadSha,repoRoot:e.repoRoot,remoteUrl:e.remoteUrl,repository:e.repository,detached:e.detached,dirty:e.dirty,dirtyFingerprint:e.dirtyFingerprint,worktreePath:e.worktreePath}}
@@ -22,4 +22,5 @@ export interface CollectRepoStateOptions {
22
22
  fingerprints?: unknown;
23
23
  }
24
24
  export declare function collectRepoState(productDir: string, options?: Readonly<CollectRepoStateOptions>): Promise<RepoState>;
25
+ export declare function collectGitRepoState(productDir: string, options?: Readonly<CollectRepoStateOptions>): Promise<RepoState | null>;
25
26
  export declare function summarizeRepoStateForMetadata(repoState: Readonly<RepoState> | null | undefined): RepoStateMetadata | null;
@@ -1,5 +1,5 @@
1
- import x from"crypto";import f from"fs";import s from"path";import{appendFingerprintPathToHash as Z,hasIncludedFingerprintDescendantAtPrefix as tt,normalizeFingerprintPolicy as et,shouldIgnoreCanonicalFingerprintPathAtPrefix as W}from"./fingerprint-policy.js";import{decodeGitPathRecord as F}from"./git-path.js";import{runManagedGitCommand as rt}from"./managed-git.js";import{physicalNodeMode as z,readPhysicalNode as j}from"./physical-tree.js";import{normalizeManagedHostEnvironment as nt,requireManagedHostCommandSuccess as C,resolveManagedHostExecutableIfAvailable as ot}from"../process/index.js";import{readCiPullRequestHeadSha as it,resolveCiGitReference as at}from"./ci-environment.js";import{parseGitRepository as ct}from"./remote.js";export async function collectRepoState(t,e={}){const r=et(e.fingerprints),o=e.env??process.env,n=at(o),i=it(o);if(!ot("git",s.resolve(t),nt(process.env))&&!jt(t))return N(t,r,n);const c=await B(t);if(c===null)return N(t,r,n);const u=_(c,t),p=await R(u.repoRoot,["rev-parse","--verify","--quiet","HEAD"]),m=await st(u.repoRoot,p,i),b=await R(u.repoRoot,["symbolic-ref","--quiet","--short","HEAD"]),P=await R(u.repoRoot,["config","--get","remote.origin.url"]),w=p!==null&&b===null,g=await lt(u,r,p,""),d=!!g,h=p||"unborn";return{kind:d?"dirty":"commit",repoRoot:u.repoRoot,worktreePath:u.repoRoot,branch:b??(w?n.branch:null),detached:w,commitSha:p,pullRequest:n.pullRequest,pullRequestHeadSha:m,remoteUrl:P,repository:ct(P),dirty:d,dirtyFingerprint:g,contentFingerprint:null,cacheKey:g?`dirty/${h}-${g}`:`commits/${h}`}}function N(t,e,r){const o=f.realpathSync.native(s.resolve(t)),n=V(o,e);if(V(o,e)!==n)throw new Error("Physical repository snapshot changed while collecting repository state");const a=n.slice(0,24);return{kind:"nogit",repoRoot:null,worktreePath:o,branch:null,detached:!1,commitSha:null,pullRequest:r.pullRequest,pullRequestHeadSha:null,remoteUrl:null,repository:null,dirty:!1,dirtyFingerprint:null,contentFingerprint:a,cacheKey:`nogit/${a}`}}async function B(t){const e=["rev-parse","--show-toplevel"],r=await A(t,e);if(r.exitCode===0){const o=r.stdout.trim();if(o.length>0)return o;throw new Error("Git rev-parse returned an empty repository root")}if(Ft(r))return null;throw C(T(e),r),new Error("Unreachable Git repository probe result")}function _(t,e){const r=f.realpathSync.native(s.resolve(t)),o=f.realpathSync.native(s.resolve(e)),n=xt(s.relative(r,o));if(n===".."||n.startsWith("../")||s.isAbsolute(n)||process.platform==="win32"&&s.win32.isAbsolute(n))throw new Error(`Product directory must be inside its Git worktree: ${o}`);return{productDir:o,productPathspec:n?$t(n):".",productRootRelativePath:n,repoRoot:r}}export function summarizeRepoStateForMetadata(t){return t?{kind:t.kind,cacheKey:t.cacheKey,branch:t.branch,detached:t.detached,commitSha:t.commitSha,dirty:t.dirty,dirtyFingerprint:t.dirtyFingerprint,contentFingerprint:t.contentFingerprint,pullRequest:t.pullRequest,pullRequestHeadSha:t.pullRequestHeadSha,repoRoot:t.repoRoot,repository:t.repository,worktreePath:t.worktreePath,remoteUrl:t.remoteUrl}:null}async function st(t,e,r){if(e===null||r===null)return null;if(e===r)return r;const o=await v(t,["cat-file","commit","HEAD"]),n=[];for(const i of o.split(`
2
- `)){if(i.length===0)break;i.startsWith("parent ")&&n.push(i.slice(7))}return n.length>=2&&n.includes(r)?r:null}async function lt(t,e,r,o){const n=await q(t,e,r,o),i=await q(t,e,r,o);if(n!==i)throw new Error("Git HEAD, index, untracked inventory, submodule state, or physical snapshot changed while collecting repository state");return n?.slice(0,24)??null}async function q(t,e,r,o){await J(t.repoRoot,r);const n=x.createHash("sha256");let i=!1;const a=await yt(t.repoRoot),[c,u]=await Promise.all([K(t,a),dt(t,r,a)]),p=wt(c),m=vt(u),b=[...new Set([...p.keys(),...m.keys()])].sort(y);for(const d of b){const h=p.get(d)??[],G=m.get(d)??[],M=h.some($=>$.mode==="160000")||G.some($=>$.mode==="160000");if(W(d,o,e)&&(!M||!tt(d,o,e)))continue;const X=h.length>0?h[0]:G[0],H=j(t.productDir,d),U=M?await pt(t,X,H,e,o):null;(!ht(h,G)||!ft(h,H,U,a))&&(i=!0,mt(n,d,G,h,H,U,a))}const P=await v(t.repoRoot,["ls-files","--others","--exclude-per-directory=.gitignore","--",t.productPathspec]),w=Ht(t,O(P,"Git ls-files").map(d=>F(d))).filter(d=>!W(d.productRelativePath,o,e));if(w.length>0){i=!0,n.update("untracked-state-v2\0");for(const d of w)l(n,"path",d.productRelativePath),D(n,j(t.productDir,d.productRelativePath),a)}const g=await K(t,a);if(!Pt(c,g))throw new Error("Git index changed while collecting repository state");return await J(t.repoRoot,r),i?n.digest("hex"):null}async function K(t,e){const r=await v(t.repoRoot,["ls-files","--stage","--abbrev=64","--",t.productPathspec]);return ut(t,r,e)}function ut(t,e,r){const o=[];for(const n of O(e,"Git ls-files")){const i=n.indexOf(" ");if(i<0)throw new Error("Git ls-files returned malformed stage metadata");const a=n.slice(0,i).split(" "),c=I(F(n.slice(i+1)));if(a.length!==3||!/^[0-7]{6}$/u.test(a[0])||!Y(a[1],r)||!/^[0-3]$/u.test(a[2]))throw new Error("Git ls-files returned invalid stage metadata");const u=L(t,c);if(!u)throw new Error(`Git ls-files returned a path outside the product: ${c}`);o.push({mode:a[0],objectId:a[1],productRelativePath:u,rootRelativePath:c,stage:Number(a[2])})}return o.sort(St)}async function dt(t,e,r){if(e===null)return[];const o=await v(t.repoRoot,["ls-tree","-r","--full-tree",e,"--",t.productPathspec]);return gt(t,o,r)}async function pt(t,e,r,o,n){if(r.kind==="missing"||r.kind==="ancestor-missing")return{kind:"missing",node:r};if(r.kind!=="directory")return{kind:"non-directory",node:r};const i=Et(t,e),a=await B(i);if(a===null||!It(a,i))throw new Error(`Gitlink is not initialized as a repository: ${e.productRelativePath}`);const c=_(a,i),u=await R(c.repoRoot,["rev-parse","--verify","--quiet","HEAD"]),p=await q(c,o,u,kt(n,e.productRelativePath)),m=j(t.productDir,e.productRelativePath);if(m.kind!=="directory"||!Gt(m.identity,r.identity))throw new Error(`Gitlink path changed while collecting repository state: ${e.productRelativePath}`);return{kind:"initialized",dirtyFingerprint:p,head:u,identity:m.identity}}function ft(t,e,r,o){if(t.length!==1||t[0]?.stage!==0)return!1;const n=t[0];return n.mode==="160000"?r?.kind==="initialized"&&r.head===n.objectId&&r.dirtyFingerprint===null:n.mode==="120000"?e.kind==="symlink"&&k(o,e.target)===n.objectId:n.mode==="100644"||n.mode==="100755"?e.kind==="file"&&bt(e.mode,n.mode)===n.mode&&k(o,e.contents)===n.objectId:!1}function ht(t,e){return e.length===0&&t.length===0?!0:e.length!==1||t.length!==1||t[0]?.stage!==0?!1:e[0]?.mode===t[0]?.mode&&e[0]?.objectId===t[0]?.objectId}function mt(t,e,r,o,n,i,a){t.update("tracked-path-state-v2\0"),l(t,"path",e),r.length===0&&t.update("head-missing\0");for(const c of r)t.update("head-entry\0"),l(t,"mode",c.mode),l(t,"object",c.objectId);o.length===0&&t.update("index-missing\0");for(const c of o)t.update("index-entry\0"),l(t,"mode",c.mode),l(t,"object",c.objectId),l(t,"stage",c.stage.toString());i?Rt(t,i,a):D(t,n,a)}function gt(t,e,r){const o=[];for(const n of O(e,"Git ls-tree")){const i=n.indexOf(" "),a=n.slice(0,i).split(" ");if(i<0||a.length!==3||!/^[0-7]{6}$/u.test(a[0])||!/^(?:blob|commit)$/u.test(a[1])||!Y(a[2],r))throw new Error("Git ls-tree returned invalid tree metadata");const c=I(F(n.slice(i+1))),u=L(t,c);if(!u)throw new Error(`Git ls-tree returned a path outside the product: ${c}`);o.push({mode:a[0],objectId:a[2],productRelativePath:u,rootRelativePath:c})}return o.sort((n,i)=>y(n.productRelativePath,i.productRelativePath))}async function yt(t){const e=(await v(t,["rev-parse","--show-object-format"])).trim();if(e==="sha1"||e==="sha256")return e;throw new Error(`Unsupported Git object format: ${e||"empty"}`)}function wt(t){const e=new Map;for(const r of t){const o=e.get(r.productRelativePath);o?o.push(r):e.set(r.productRelativePath,[r])}return e}function vt(t){const e=new Map;for(const r of t){const o=e.get(r.productRelativePath);o?o.push(r):e.set(r.productRelativePath,[r])}return e}function Rt(t,e,r){if(t.update("gitlink-worktree-state-v2\0"),l(t,"kind",e.kind),e.kind==="initialized"){e.head===null?t.update("head-missing\0"):l(t,"head",e.head),e.dirtyFingerprint===null?t.update("nested-clean\0"):l(t,"nested-dirty",e.dirtyFingerprint);return}D(t,e.node,r)}function D(t,e,r){switch(t.update("physical-node-v2\0"),l(t,"kind",e.kind),e.kind){case"file":l(t,"mode",process.platform==="win32"?"platform-mode-ignored":e.mode&73n?"100755":"100644"),l(t,"blob",k(r,e.contents)),E(t,e.contents);break;case"symlink":l(t,"blob",k(r,e.target)),E(t,e.target);break;case"directory":l(t,"mode",z(e.mode));break;case"ancestor-symlink":l(t,"obstacle",e.obstaclePath),E(t,e.target);break;case"ancestor-non-directory":l(t,"obstacle",e.obstaclePath),l(t,"mode",z(e.mode));break;case"ancestor-missing":l(t,"obstacle",e.obstaclePath);break;case"missing":break}}function bt(t,e){return process.platform==="win32"?e:t&73n?"100755":"100644"}function k(t,e){return x.createHash(t).update(`blob ${e.byteLength.toString()}\0`).update(e).digest("hex")}function Pt(t,e){return t.length===e.length&&t.every((r,o)=>{const n=e[o];return r.mode===n.mode&&r.objectId===n.objectId&&r.productRelativePath===n.productRelativePath&&r.rootRelativePath===n.rootRelativePath&&r.stage===n.stage})}function Gt(t,e){return t.dev===e.dev&&t.ino===e.ino&&t.type===e.type}function Y(t,e){const r=e==="sha1"?40:64;return t.length===r&&/^[0-9a-f]+$/u.test(t)}function kt(t,e){return t?e?`${t}/${e}`:t:e}function Et(t,e){const r=e.productRelativePath.split("/");if(r.some(i=>i.length===0||i==="."||i===".."))throw new Error(`Git returned an invalid product path: ${e.productRelativePath}`);const o=s.resolve(t.productDir,...r),n=s.relative(t.productDir,o);if(n===".."||n.startsWith(`..${s.sep}`)||s.isAbsolute(n))throw new Error(`Git returned a path outside the product: ${e.rootRelativePath}`);return o}function It(t,e){const r=f.realpathSync.native(s.resolve(t)),o=f.realpathSync.native(s.resolve(e));return process.platform==="win32"?r.toLocaleLowerCase("en-US")===o.toLocaleLowerCase("en-US"):r===o}function l(t,e,r){t.update(`${e}\0`),E(t,Buffer.from(r))}function E(t,e){t.update(`${e.byteLength.toString()}\0`),t.update(e),t.update("\0")}function St(t,e){return y(t.productRelativePath,e.productRelativePath)||t.stage-e.stage||y(t.mode,e.mode)||y(t.objectId,e.objectId)}function Ht(t,e){const r=new Map;for(const o of e){const n=I(o);if(n===".."||n.startsWith("../")||s.isAbsolute(n)||process.platform==="win32"&&s.win32.isAbsolute(n))throw new Error(`Git returned a path outside its worktree: ${n}`);const i=L(t,n);i&&r.set(n,{productRelativePath:i,rootRelativePath:n})}return[...r.values()].sort((o,n)=>y(o.productRelativePath,n.productRelativePath))}function L(t,e){if(!e)return null;if(!t.productRootRelativePath)return e;const r=`${t.productRootRelativePath}/`;return(process.platform==="win32"?e.toLocaleLowerCase("en-US").startsWith(r.toLocaleLowerCase("en-US")):e.startsWith(r))?e.slice(r.length):null}function $t(t){return`:(top,literal)${t}`}function I(t){return t.replace(/^\.\/+/,"").replace(/\/+$/,"")}function xt(t){return I(t.split(s.sep).join("/"))}function y(t,e){return t<e?-1:t>e?1:0}function V(t,e){const r=x.createHash("sha256");return Z(r,t,t,e),r.digest("hex")}async function v(t,e){const r=await A(t,e);return C(T(e),r).stdout}async function R(t,e){const r=await A(t,e);if(r.exitCode===0)return r.stdout.trim()||null;if(r.exitCode===1&&r.stdout.trim().length===0&&r.stderr.trim().length===0)return null;throw C(T(e),r),new Error("Unreachable Git command result")}function A(t,e){return rt(t,["--no-replace-objects","--no-pager","--no-optional-locks","-c","core.fsmonitor=false","-c","core.quotePath=true",...e],{repositoryConfigOnly:!0})}async function J(t,e){if(await R(t,["rev-parse","--verify","--quiet","HEAD"])!==e)throw new Error("Git HEAD changed while collecting repository state")}function O(t,e){if(t.length===0)return[];if(!t.endsWith(`
1
+ import $ from"crypto";import p from"fs";import s from"path";import{appendFingerprintPathToHash as et,hasIncludedFingerprintDescendantAtPrefix as rt,normalizeFingerprintPolicy as N,shouldIgnoreCanonicalFingerprintPathAtPrefix as W}from"./fingerprint-policy.js";import{decodeGitPathRecord as C}from"./git-path.js";import{runManagedGitCommand as nt}from"./managed-git.js";import{physicalNodeMode as _,readPhysicalNode as j}from"./physical-tree.js";import{normalizeManagedHostEnvironment as ot,requireManagedHostCommandSuccess as D,resolveManagedHostExecutableIfAvailable as it}from"../process/index.js";import{readCiPullRequestHeadSha as at,resolveCiGitReference as z}from"./ci-environment.js";import{parseGitRepository as ct}from"./remote.js";export async function collectRepoState(t,e={}){const r=N(e.fingerprints),o=e.env??process.env,n=z(o);return await B(t,r,o,n)??st(t,r,n)}export async function collectGitRepoState(t,e={}){const r=N(e.fingerprints),o=e.env??process.env;return B(t,r,o,z(o))}async function B(t,e,r,o){const n=at(r),i=it("git",s.resolve(t),ot(process.env));if(!i&&!Ft(t)||i&&Dt(t))return null;const a=await K(t);if(a===null)return null;const c=Y(a,t),u=await w(c.repoRoot,["rev-parse","--verify","--quiet","HEAD"]),m=await lt(c.repoRoot,u,n),f=await w(c.repoRoot,["symbolic-ref","--quiet","--short","HEAD"]),b=await w(c.repoRoot,["config","--get","remote.origin.url"]),P=u!==null&&f===null,h=await ut(c,e,u,""),G=!!h,d=u||"unborn";return{kind:G?"dirty":"commit",repoRoot:c.repoRoot,worktreePath:c.repoRoot,branch:f??(P?o.branch:null),detached:P,commitSha:u,pullRequest:o.pullRequest,pullRequestHeadSha:m,remoteUrl:b,repository:ct(b),dirty:G,dirtyFingerprint:h,contentFingerprint:null,cacheKey:h?`dirty/${d}-${h}`:`commits/${d}`}}function st(t,e,r){const o=p.realpathSync.native(s.resolve(t)),n=Q(o,e);if(Q(o,e)!==n)throw new Error("Physical repository snapshot changed while collecting repository state");const a=n.slice(0,24);return{kind:"nogit",repoRoot:null,worktreePath:o,branch:null,detached:!1,commitSha:null,pullRequest:r.pullRequest,pullRequestHeadSha:null,remoteUrl:null,repository:null,dirty:!1,dirtyFingerprint:null,contentFingerprint:a,cacheKey:`nogit/${a}`}}async function K(t){const e=["rev-parse","--show-toplevel"],r=await O(t,e);if(r.exitCode===0){const o=r.stdout.trim();if(o.length>0)return o;throw new Error("Git rev-parse returned an empty repository root")}if(jt(r))return null;throw D(T(e),r),new Error("Unreachable Git repository probe result")}function Y(t,e){const r=p.realpathSync.native(s.resolve(t)),o=p.realpathSync.native(s.resolve(e)),n=Ct(s.relative(r,o));if(n===".."||n.startsWith("../")||s.isAbsolute(n)||process.platform==="win32"&&s.win32.isAbsolute(n))throw new Error(`Product directory must be inside its Git worktree: ${o}`);return{productDir:o,productPathspec:n?$t(n):".",productRootRelativePath:n,repoRoot:r}}export function summarizeRepoStateForMetadata(t){return t?{kind:t.kind,cacheKey:t.cacheKey,branch:t.branch,detached:t.detached,commitSha:t.commitSha,dirty:t.dirty,dirtyFingerprint:t.dirtyFingerprint,contentFingerprint:t.contentFingerprint,pullRequest:t.pullRequest,pullRequestHeadSha:t.pullRequestHeadSha,repoRoot:t.repoRoot,repository:t.repository,worktreePath:t.worktreePath,remoteUrl:t.remoteUrl}:null}async function lt(t,e,r){if(e===null||r===null)return null;if(e===r)return r;const o=await v(t,["cat-file","commit","HEAD"]),n=[];for(const i of o.split(`
2
+ `)){if(i.length===0)break;i.startsWith("parent ")&&n.push(i.slice(7))}return n.length>=2&&n.includes(r)?r:null}async function ut(t,e,r,o){const n=await F(t,e,r,o),i=await F(t,e,r,o);if(n!==i)throw new Error("Git HEAD, index, untracked inventory, submodule state, or physical snapshot changed while collecting repository state");return n?.slice(0,24)??null}async function F(t,e,r,o){await X(t.repoRoot,r);const n=$.createHash("sha256");let i=!1;const a=await vt(t.repoRoot),[c,u]=await Promise.all([V(t,a),pt(t,r,a)]),m=wt(c),f=Rt(u),b=[...new Set([...m.keys(),...f.keys()])].sort(y);for(const d of b){const g=m.get(d)??[],E=f.get(d)??[],M=g.some(x=>x.mode==="160000")||E.some(x=>x.mode==="160000");if(W(d,o,e)&&(!M||!rt(d,o,e)))continue;const tt=g.length>0?g[0]:E[0],H=j(t.productDir,d),U=M?await ft(t,tt,H,e,o):null;(!mt(g,E)||!ht(g,H,U,a))&&(i=!0,gt(n,d,E,g,H,U,a))}const P=await v(t.repoRoot,["ls-files","--others","--exclude-per-directory=.gitignore","--",t.productPathspec]),h=xt(t,A(P,"Git ls-files").map(d=>C(d))).filter(d=>!W(d.productRelativePath,o,e));if(h.length>0){i=!0,n.update("untracked-state-v2\0");for(const d of h)l(n,"path",d.productRelativePath),q(n,j(t.productDir,d.productRelativePath),a)}const G=await V(t,a);if(!Gt(c,G))throw new Error("Git index changed while collecting repository state");return await X(t.repoRoot,r),i?n.digest("hex"):null}async function V(t,e){const r=await v(t.repoRoot,["ls-files","--stage","--abbrev=64","--",t.productPathspec]);return dt(t,r,e)}function dt(t,e,r){const o=[];for(const n of A(e,"Git ls-files")){const i=n.indexOf(" ");if(i<0)throw new Error("Git ls-files returned malformed stage metadata");const a=n.slice(0,i).split(" "),c=I(C(n.slice(i+1)));if(a.length!==3||!/^[0-7]{6}$/u.test(a[0])||!J(a[1],r)||!/^[0-3]$/u.test(a[2]))throw new Error("Git ls-files returned invalid stage metadata");const u=L(t,c);if(!u)throw new Error(`Git ls-files returned a path outside the product: ${c}`);o.push({mode:a[0],objectId:a[1],productRelativePath:u,rootRelativePath:c,stage:Number(a[2])})}return o.sort(Ht)}async function pt(t,e,r){if(e===null)return[];const o=await v(t.repoRoot,["ls-tree","-r","--full-tree",e,"--",t.productPathspec]);return yt(t,o,r)}async function ft(t,e,r,o,n){if(r.kind==="missing"||r.kind==="ancestor-missing")return{kind:"missing",node:r};if(r.kind!=="directory")return{kind:"non-directory",node:r};const i=St(t,e),a=await K(i);if(a===null||!It(a,i))throw new Error(`Gitlink is not initialized as a repository: ${e.productRelativePath}`);const c=Y(a,i),u=await w(c.repoRoot,["rev-parse","--verify","--quiet","HEAD"]),m=await F(c,o,u,kt(n,e.productRelativePath)),f=j(t.productDir,e.productRelativePath);if(f.kind!=="directory"||!Et(f.identity,r.identity))throw new Error(`Gitlink path changed while collecting repository state: ${e.productRelativePath}`);return{kind:"initialized",dirtyFingerprint:m,head:u,identity:f.identity}}function ht(t,e,r,o){if(t.length!==1||t[0]?.stage!==0)return!1;const n=t[0];return n.mode==="160000"?r?.kind==="initialized"&&r.head===n.objectId&&r.dirtyFingerprint===null:n.mode==="120000"?e.kind==="symlink"&&k(o,e.target)===n.objectId:n.mode==="100644"||n.mode==="100755"?e.kind==="file"&&Pt(e.mode,n.mode)===n.mode&&k(o,e.contents)===n.objectId:!1}function mt(t,e){return e.length===0&&t.length===0?!0:e.length!==1||t.length!==1||t[0]?.stage!==0?!1:e[0]?.mode===t[0]?.mode&&e[0]?.objectId===t[0]?.objectId}function gt(t,e,r,o,n,i,a){t.update("tracked-path-state-v2\0"),l(t,"path",e),r.length===0&&t.update("head-missing\0");for(const c of r)t.update("head-entry\0"),l(t,"mode",c.mode),l(t,"object",c.objectId);o.length===0&&t.update("index-missing\0");for(const c of o)t.update("index-entry\0"),l(t,"mode",c.mode),l(t,"object",c.objectId),l(t,"stage",c.stage.toString());i?bt(t,i,a):q(t,n,a)}function yt(t,e,r){const o=[];for(const n of A(e,"Git ls-tree")){const i=n.indexOf(" "),a=n.slice(0,i).split(" ");if(i<0||a.length!==3||!/^[0-7]{6}$/u.test(a[0])||!/^(?:blob|commit)$/u.test(a[1])||!J(a[2],r))throw new Error("Git ls-tree returned invalid tree metadata");const c=I(C(n.slice(i+1))),u=L(t,c);if(!u)throw new Error(`Git ls-tree returned a path outside the product: ${c}`);o.push({mode:a[0],objectId:a[2],productRelativePath:u,rootRelativePath:c})}return o.sort((n,i)=>y(n.productRelativePath,i.productRelativePath))}async function vt(t){const e=(await v(t,["rev-parse","--show-object-format"])).trim();if(e==="sha1"||e==="sha256")return e;throw new Error(`Unsupported Git object format: ${e||"empty"}`)}function wt(t){const e=new Map;for(const r of t){const o=e.get(r.productRelativePath);o?o.push(r):e.set(r.productRelativePath,[r])}return e}function Rt(t){const e=new Map;for(const r of t){const o=e.get(r.productRelativePath);o?o.push(r):e.set(r.productRelativePath,[r])}return e}function bt(t,e,r){if(t.update("gitlink-worktree-state-v2\0"),l(t,"kind",e.kind),e.kind==="initialized"){e.head===null?t.update("head-missing\0"):l(t,"head",e.head),e.dirtyFingerprint===null?t.update("nested-clean\0"):l(t,"nested-dirty",e.dirtyFingerprint);return}q(t,e.node,r)}function q(t,e,r){switch(t.update("physical-node-v2\0"),l(t,"kind",e.kind),e.kind){case"file":l(t,"mode",process.platform==="win32"?"platform-mode-ignored":e.mode&73n?"100755":"100644"),l(t,"blob",k(r,e.contents)),S(t,e.contents);break;case"symlink":l(t,"blob",k(r,e.target)),S(t,e.target);break;case"directory":l(t,"mode",_(e.mode));break;case"ancestor-symlink":l(t,"obstacle",e.obstaclePath),S(t,e.target);break;case"ancestor-non-directory":l(t,"obstacle",e.obstaclePath),l(t,"mode",_(e.mode));break;case"ancestor-missing":l(t,"obstacle",e.obstaclePath);break;case"missing":break}}function Pt(t,e){return process.platform==="win32"?e:t&73n?"100755":"100644"}function k(t,e){return $.createHash(t).update(`blob ${e.byteLength.toString()}\0`).update(e).digest("hex")}function Gt(t,e){return t.length===e.length&&t.every((r,o)=>{const n=e[o];return r.mode===n.mode&&r.objectId===n.objectId&&r.productRelativePath===n.productRelativePath&&r.rootRelativePath===n.rootRelativePath&&r.stage===n.stage})}function Et(t,e){return t.dev===e.dev&&t.ino===e.ino&&t.type===e.type}function J(t,e){const r=e==="sha1"?40:64;return t.length===r&&/^[0-9a-f]+$/u.test(t)}function kt(t,e){return t?e?`${t}/${e}`:t:e}function St(t,e){const r=e.productRelativePath.split("/");if(r.some(i=>i.length===0||i==="."||i===".."))throw new Error(`Git returned an invalid product path: ${e.productRelativePath}`);const o=s.resolve(t.productDir,...r),n=s.relative(t.productDir,o);if(n===".."||n.startsWith(`..${s.sep}`)||s.isAbsolute(n))throw new Error(`Git returned a path outside the product: ${e.rootRelativePath}`);return o}function It(t,e){const r=p.realpathSync.native(s.resolve(t)),o=p.realpathSync.native(s.resolve(e));return process.platform==="win32"?r.toLocaleLowerCase("en-US")===o.toLocaleLowerCase("en-US"):r===o}function l(t,e,r){t.update(`${e}\0`),S(t,Buffer.from(r))}function S(t,e){t.update(`${e.byteLength.toString()}\0`),t.update(e),t.update("\0")}function Ht(t,e){return y(t.productRelativePath,e.productRelativePath)||t.stage-e.stage||y(t.mode,e.mode)||y(t.objectId,e.objectId)}function xt(t,e){const r=new Map;for(const o of e){const n=I(o);if(n===".."||n.startsWith("../")||s.isAbsolute(n)||process.platform==="win32"&&s.win32.isAbsolute(n))throw new Error(`Git returned a path outside its worktree: ${n}`);const i=L(t,n);i&&r.set(n,{productRelativePath:i,rootRelativePath:n})}return[...r.values()].sort((o,n)=>y(o.productRelativePath,n.productRelativePath))}function L(t,e){if(!e)return null;if(!t.productRootRelativePath)return e;const r=`${t.productRootRelativePath}/`;return(process.platform==="win32"?e.toLocaleLowerCase("en-US").startsWith(r.toLocaleLowerCase("en-US")):e.startsWith(r))?e.slice(r.length):null}function $t(t){return`:(top,literal)${t}`}function I(t){return t.replace(/^\.\/+/,"").replace(/\/+$/,"")}function Ct(t){return I(t.split(s.sep).join("/"))}function y(t,e){return t<e?-1:t>e?1:0}function Q(t,e){const r=$.createHash("sha256");return et(r,t,t,e),r.digest("hex")}async function v(t,e){const r=await O(t,e);return D(T(e),r).stdout}async function w(t,e){const r=await O(t,e);if(r.exitCode===0)return r.stdout.trim()||null;if(r.exitCode===1&&r.stdout.trim().length===0&&r.stderr.trim().length===0)return null;throw D(T(e),r),new Error("Unreachable Git command result")}function O(t,e){return nt(t,["--no-replace-objects","--no-pager","--no-optional-locks","-c","core.fsmonitor=false","-c","core.quotePath=true",...e],{repositoryConfigOnly:!0})}async function X(t,e){if(await w(t,["rev-parse","--verify","--quiet","HEAD"])!==e)throw new Error("Git HEAD changed while collecting repository state")}function A(t,e){if(t.length===0)return[];if(!t.endsWith(`
3
3
  `))throw new Error(`${e} returned an unterminated path record`);return t.slice(0,-1).split(`
4
- `)}function T(t){const e=t.find(r=>!r.startsWith("-"));return e?`Git ${e}`:"Git command"}function Ft(t){return`${t.stderr}
5
- ${t.stdout}`.toLowerCase().includes("not a git repository")}function jt(t){let e=f.realpathSync.native(s.resolve(t)),r=f.statSync(e).dev;const o=Ct(),n=Dt(process.env.GIT_DISCOVERY_ACROSS_FILESYSTEM);let i=s.dirname(e);for(;i!==e;){if(o.has(e))return!1;if(Q(s.join(e,".git")))return!0;const a=f.statSync(i).dev;if(!n&&a!==r)return!1;e=i,r=a,i=s.dirname(e)}return o.has(e)?!1:Q(s.join(e,".git"))}function Ct(){const t=process.env.GIT_CEILING_DIRECTORIES;return t?new Set(t.split(s.delimiter).filter(Boolean).map(e=>qt(e))):new Set}function qt(t){const e=s.resolve(t);try{return f.realpathSync.native(e)}catch(r){if(S(r,"ENOENT")||S(r,"ENOTDIR"))return e;throw r}}function Dt(t){return/^(?:1|on|true|yes)$/iu.test(t||"")}function Q(t){try{return f.lstatSync(t),!0}catch(e){if(S(e,"ENOENT")||S(e,"ENOTDIR"))return!1;throw e}}function S(t,e){return t!==null&&typeof t=="object"&&"code"in t&&Reflect.get(t,"code")===e}
4
+ `)}function T(t){const e=t.find(r=>!r.startsWith("-"));return e?`Git ${e}`:"Git command"}function jt(t){return`${t.stderr}
5
+ ${t.stdout}`.toLowerCase().includes("not a git repository")}function Dt(t){const e=new Set(["GIT_CEILING_DIRECTORIES","GIT_DISCOVERY_ACROSS_FILESYSTEM"]);if(Object.keys(process.env).some(r=>e.has(process.platform==="win32"?r.toUpperCase():r)))return!1;try{let r=p.realpathSync.native(s.resolve(t));for(;;){if(!p.statSync(r).isDirectory())return!1;for(const n of[".git","HEAD"])try{return p.lstatSync(s.join(r,n)),!1}catch(i){if(!R(i,"ENOENT"))return!1}const o=s.dirname(r);if(o===r)return!0;r=o}}catch{return!1}}function Ft(t){let e=p.realpathSync.native(s.resolve(t)),r=p.statSync(e).dev;const o=qt(),n=Ot(process.env.GIT_DISCOVERY_ACROSS_FILESYSTEM);let i=s.dirname(e);for(;i!==e;){if(o.has(e))return!1;if(Z(s.join(e,".git")))return!0;const a=p.statSync(i).dev;if(!n&&a!==r)return!1;e=i,r=a,i=s.dirname(e)}return o.has(e)?!1:Z(s.join(e,".git"))}function qt(){const t=process.env.GIT_CEILING_DIRECTORIES;return t?new Set(t.split(s.delimiter).filter(Boolean).map(e=>Lt(e))):new Set}function Lt(t){const e=s.resolve(t);try{return p.realpathSync.native(e)}catch(r){if(R(r,"ENOENT")||R(r,"ENOTDIR"))return e;throw r}}function Ot(t){return/^(?:1|on|true|yes)$/iu.test(t||"")}function Z(t){try{return p.lstatSync(t),!0}catch(e){if(R(e,"ENOENT")||R(e,"ENOTDIR"))return!1;throw e}}function R(t,e){return t!==null&&typeof t=="object"&&"code"in t&&Reflect.get(t,"code")===e}
@@ -1,4 +1,4 @@
1
- /** Public Testkit modules safe to bundle into Node-hosted lifecycle steps. */
1
+ /** Public Testkit modules available to Node-hosted lifecycle steps. */
2
2
  export declare const CONFIGURED_STEP_TESTKIT_MODULE_SPECIFIERS: readonly ["@gfdelarue/testkit", "@gfdelarue/testkit/config", "@gfdelarue/testkit/config/build-assets", "@gfdelarue/testkit/config/database-steps", "@gfdelarue/testkit/config/next-runtime-tsconfig", "@gfdelarue/testkit/drizzle", "@gfdelarue/testkit/env", "@gfdelarue/testkit/tooling/vitest"];
3
3
  export type ConfiguredStepTestkitModuleSpecifier = (typeof CONFIGURED_STEP_TESTKIT_MODULE_SPECIFIERS)[number];
4
4
  /**
package/dist/steps/run.js CHANGED
@@ -1,3 +1,3 @@
1
- import{formatCapturedFailure as g,writeCapturedLine as S}from"../evidence/step-output.js";import w from"crypto";import m from"fs";import{createRequire as M}from"module";import u from"path";import{fileURLToPath as x}from"url";import"../config/runtime/build-assets.js";import{buildWithEsbuildRetry as D}from"../toolchains/esbuild.js";import{isBareModuleSpecifier as k,parseModuleSpecifier as f,resolveConfiguredCwd as C,resolveConfiguredPath as N}from"./configured-steps.js";import{CONFIGURED_STEP_TESTKIT_MODULE_DIST_PATHS as j,isTestkitPackageSpecifier as I,requireConfiguredStepTestkitModuleSpecifier as U}from"./configured-step-testkit-modules.js";export{collectConfiguredInputs,parseModuleSpecifier,resolveConfiguredCwd,resolveConfiguredPath}from"./configured-steps.js";import"../toolchains/index.js";import{resolvePosixCommandShell as L}from"../process/index.js";import{captureOutput as b,managedHostProcessInfrastructureError as R,startManagedHostProcess as h}from"../process/index.js";const y=String,E=u.resolve(u.dirname(x(import.meta.url)),"..",".."),$=Object.fromEntries(Object.entries(j).map(([e,t])=>[e,u.join(E,"dist",...t)+".js"])),A=u.join(E,"dist","steps","module-runner.js");export async function runConfiguredStep(e,t,r,o,n){const i=C(e.productDir,t.cwd);if(t.kind==="command"){const s=configuredCommandInvocation(t.cmd,r),d=h({args:s.args,cwd:i,displayLabel:`Configured step ${e.name}`,env:r,executable:s.command,windowsVerbatimArguments:s.windowsVerbatimArguments,outputMode:"caller-drained",signal:n.signal,timeoutMs:n.timeoutMs});await T(d,n);return}if(!H(t))return B(t);const{exportName:c}=f(t.specifier),a={args:t.args??{},databaseUrl:r.DATABASE_URL||null,productDir:e.productDir,cwd:i,serviceName:e.name,env:{...r},ownedContainer:n.ownedContainer||null,runtimeId:e.runtimeId||null,stateDir:e.stateDir,prepareDir:e.testkit.prepareDir||null},p=await F(e.productDir,t),l=`${p.outputFile}.${String(process.pid)}.${w.randomUUID()}.context.json`;m.writeFileSync(l,JSON.stringify(a));try{const s=h({args:[A,p.outputFile,c,l],cwd:i,displayLabel:`Configured module step ${e.name}`,env:r,executable:o?.nodeExecutable||process.execPath,outputMode:"caller-drained",signal:n.signal,timeoutMs:n.timeoutMs});await T(s,n)}finally{m.rmSync(l,{force:!0})}}export function configuredCommandInvocation(e,t,r=process.platform){return r==="win32"?{command:t.ComSpec?.trim()||"cmd.exe",args:["/d","/s","/c",`"${e}"`],windowsVerbatimArguments:!0}:{command:L(t),args:["-lc",e]}}export function applySetupNodeOptions(e={}){const t=y(e.TESTKIT_SETUP_NODE_OPTIONS||"").trim();return t?{...e,NODE_OPTIONS:[e.NODE_OPTIONS,t].filter(Boolean).join(" ")}:e}async function F(e,t){const{modulePath:r}=f(t.specifier),o=K(e,t),n=u.join(e,".testkit","_template-steps");m.mkdirSync(n,{recursive:!0});const i=v(o),c=u.join(n,`${u.basename(r).replace(/\W+/g,"-")}-${i.slice(0,12)}.mjs`);return await D({absWorkingDir:e,bundle:!0,entryPoints:[o],format:"esm",legalComments:"none",outfile:c,platform:"node",sourcemap:"inline",target:"es2020",plugins:[q()]}),{outputFile:c,cacheKey:i}}function K(e,t){const{modulePath:r}=f(t.specifier);if(I(r))return P(r);const o=N(e,t.cwd,r);if(m.existsSync(o)||!k(r))return o;const n=C(e,t.cwd);return M(u.join(n,"__testkit__.cjs")).resolve(r)}function v(e){const t=m.readFileSync(e,"utf8");return w.createHash("sha256").update(e).update("\0").update(t).digest("hex")}function q(){return{name:"testkit-configured-step-modules",setup(e){e.onResolve({filter:/^@gfdelarue\/testkit(?:\/.*)?$/},t=>({namespace:"file",path:P(t.path)}))}}}function P(e){const t=U(e);return $[t]}async function T(e,{livePrefix:t="",liveWriter:r=null,logRecord:o=null}={}){const n=[],i=[],c=[b(O(e.stdout),{livePrefix:t,liveWriter:r,onLine:d=>{n.push(d),S(o,"stdout",d)}}),b(O(e.stderr),{livePrefix:t,liveWriter:r,onLine:d=>{i.push(d),S(o,"stderr",d)}})],a=await e.completion;await Promise.all(c);const p=n.join(`
1
+ import{formatCapturedFailure as g,writeCapturedLine as S}from"../evidence/step-output.js";import w from"crypto";import m from"fs";import{createRequire as M}from"module";import u from"path";import{fileURLToPath as D,pathToFileURL as k}from"url";import"../config/runtime/build-assets.js";import{buildWithEsbuildRetry as I}from"../toolchains/esbuild.js";import{isBareModuleSpecifier as j,parseModuleSpecifier as f,resolveConfiguredCwd as C,resolveConfiguredPath as N}from"./configured-steps.js";import{CONFIGURED_STEP_TESTKIT_MODULE_DIST_PATHS as U,isTestkitPackageSpecifier as y,requireConfiguredStepTestkitModuleSpecifier as L}from"./configured-step-testkit-modules.js";export{collectConfiguredInputs,parseModuleSpecifier,resolveConfiguredCwd,resolveConfiguredPath}from"./configured-steps.js";import"../toolchains/index.js";import{resolvePosixCommandShell as R}from"../process/index.js";import{captureOutput as h,managedHostProcessInfrastructureError as $,startManagedHostProcess as b}from"../process/index.js";const T=String,E=u.resolve(u.dirname(D(import.meta.url)),"..",".."),F=Object.fromEntries(Object.entries(U).map(([e,t])=>[e,u.join(E,"dist",...t)+".js"])),A=u.join(E,"dist","steps","module-runner.js");export async function runConfiguredStep(e,t,r,o,n){const i=C(e.productDir,t.cwd);if(t.kind==="command"){const s=configuredCommandInvocation(t.cmd,r),d=b({recoveryIdentity:"none",args:s.args,cwd:i,displayLabel:`Configured step ${e.name}`,env:r,executable:s.command,windowsVerbatimArguments:s.windowsVerbatimArguments,outputMode:"caller-drained",signal:n.signal,timeoutMs:n.timeoutMs});await _(d,n);return}if(!B(t))return G(t);const{exportName:c}=f(t.specifier),a={args:t.args??{},databaseUrl:r.DATABASE_URL||null,productDir:e.productDir,cwd:i,serviceName:e.name,env:{...r},ownedContainer:n.ownedContainer||null,runtimeId:e.runtimeId||null,stateDir:e.stateDir,prepareDir:e.testkit.prepareDir||null},p=await K(e.productDir,t),l=u.join(e.productDir,".testkit","_template-steps",`${p.cacheKey}.${String(process.pid)}.${w.randomUUID()}.context.json`);m.writeFileSync(l,JSON.stringify(a));try{const s=b({recoveryIdentity:"none",args:[A,p.outputFile,c,l],cwd:i,displayLabel:`Configured module step ${e.name}`,env:r,executable:o?.nodeExecutable||process.execPath,outputMode:"caller-drained",signal:n.signal,timeoutMs:n.timeoutMs});await _(s,n)}finally{m.rmSync(l,{force:!0})}}export function configuredCommandInvocation(e,t,r=process.platform){return r==="win32"?{command:t.ComSpec?.trim()||"cmd.exe",args:["/d","/s","/c",`"${e}"`],windowsVerbatimArguments:!0}:{command:R(t),args:["-lc",e]}}export function applySetupNodeOptions(e={}){const t=T(e.TESTKIT_SETUP_NODE_OPTIONS||"").trim();return t?{...e,NODE_OPTIONS:[e.NODE_OPTIONS,t].filter(Boolean).join(" ")}:e}async function K(e,t){const{modulePath:r}=f(t.specifier),o=v(e,t),n=u.join(e,".testkit","_template-steps");m.mkdirSync(n,{recursive:!0});const i=q(o);if(y(r))return{outputFile:o,cacheKey:i};const c=u.join(n,`${u.basename(r).replace(/\W+/g,"-")}-${i.slice(0,12)}.mjs`);return await I({absWorkingDir:e,bundle:!0,entryPoints:[o],format:"esm",legalComments:"none",outfile:c,platform:"node",sourcemap:"inline",target:"es2020",plugins:[H()]}),{outputFile:c,cacheKey:i}}function v(e,t){const{modulePath:r}=f(t.specifier);if(y(r))return P(r);const o=N(e,t.cwd,r);if(m.existsSync(o)||!j(r))return o;const n=C(e,t.cwd);return M(u.join(n,"__testkit__.cjs")).resolve(r)}function q(e){const t=m.readFileSync(e,"utf8");return w.createHash("sha256").update(e).update("\0").update(t).digest("hex")}function H(){return{name:"testkit-configured-step-modules",setup(e){e.onResolve({filter:/^@gfdelarue\/testkit(?:\/.*)?$/},t=>({external:!0,path:k(P(t.path)).href}))}}}function P(e){const t=L(e);return F[t]}async function _(e,{livePrefix:t="",liveWriter:r=null,logRecord:o=null}={}){const n=[],i=[],c=[h(O(e.stdout),{livePrefix:t,liveWriter:r,onLine:d=>{n.push(d),S(o,"stdout",d)}}),h(O(e.stderr),{livePrefix:t,liveWriter:r,onLine:d=>{i.push(d),S(o,"stderr",d)}})],a=await e.completion;await Promise.all(c);const p=n.join(`
2
2
  `),l=i.join(`
3
- `),s=R("Configured step",a);if(s)throw new Error(g(s.message,p,l,"Configured step process supervision failed"),{cause:s});if(a.exitCode!==0)throw new Error(g(a.exitSignal?`Configured step terminated by ${a.exitSignal}`:null,p,l,`Step failed with exit code ${String(a.exitCode)}`))}function O(e){return!e||!("read"in e)?null:e}function H(e){return _(e,"kind")==="module"}function B(e){throw new Error(`Unsupported template step kind "${y(_(e,"kind"))}"`)}function _(e,t){if(!((typeof e!="object"||e===null)&&typeof e!="function"))return Reflect.get(e,t)}
3
+ `),s=$("Configured step",a);if(s)throw new Error(g(s.message,p,l,"Configured step process supervision failed"),{cause:s});if(a.exitCode!==0)throw new Error(g(a.exitSignal?`Configured step terminated by ${a.exitSignal}`:null,p,l,`Step failed with exit code ${String(a.exitCode)}`))}function O(e){return!e||!("read"in e)?null:e}function B(e){return x(e,"kind")==="module"}function G(e){throw new Error(`Unsupported template step kind "${T(x(e,"kind"))}"`)}function x(e,t){if(!((typeof e!="object"||e===null)&&typeof e!="function"))return Reflect.get(e,t)}