@kaisers-io/refs 0.1.1 → 0.1.2

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 (2) hide show
  1. package/bin/refs.mjs +32 -32
  2. package/package.json +1 -1
package/bin/refs.mjs CHANGED
@@ -344,45 +344,45 @@ sync_ttl = "1h"
344
344
  # # Per-ref overrides of [settings] go in the same table, e.g.:
345
345
  # # clone_mode = "full"
346
346
  `.replaceAll(`{{CLI_VERSION}}`,t)),`seeded`),$c=(e,t)=>{let n={...e};for(let[e,r]of Object.entries(t)){let t=n[e];t===void 0?n[e]=r:Uc(t)&&Uc(r)&&(n[e]=$c(t,r))}return n},el={meta:{},refs:{},settings:{}},tl=async e=>{try{return await Gc(e)}catch(e){if(e instanceof at&&e.code===`not_found`)return;throw e}},nl=e=>{if(e!==void 0&&e>1)throw T(`config schema ${e} is newer than this CLI supports — upgrade refs`)},rl=async(e,t,n)=>{let r=Wc(t.meta,{});if(r.cli_version===n)return;let i={...t,meta:{...r,cli_version:n}};await Rc(e.configPath,Ic(i))},il=async(e,t,n)=>{await i(e.configPath,zc(e));let r=$c(t,el),a=Wc(r.meta,{}),o={...r,meta:{...a,cli_version:n,schema_version:1}},s=tc.safeParse(o);if(!s.success)throw T(`config in ${e.configPath} is malformed beyond automatic migration (backup preserved at ${zc(e)}): ${k(s.error)}`);await Rc(e.configPath,Ic(o))},al=async(e,t)=>(await Qc(e,t),`seeded`),ol=async(e,t,n)=>{let r=Kc(t,e.configPath),i=Jc(r);return nl(i),i===1?(await rl(e,r,n),`noop`):(await il(e,r,n),`migrated`)},sl=async(e,t)=>{let n=await tl(e);return n===void 0?al(e,t):ol(e,n,t)},cl=e=>{let t=e.stderr.trim()||e.stdout.trim()||`exit code ${e.exitCode}`,n=t.split(`
347
- `)[0]??t;return n.length<=200?n:`${n.slice(0,200)}…`},ll=(e,t)=>t?`restored`:e.oldSha===e.newSha?`fresh`:`updated`,ul=(e,t)=>{let n=[];if(e&&n.push(`checkout had local changes (managed checkouts are read-only) — discarded and restored to the remote state`),t!==void 0&&n.push(t),n.length!==0)return n.join(` | `)},dl=e=>{let{branchRenamedTo:t,dirty:n,setHeadWarning:r,shas:i}=e,a={...i,status:ll(i,n)};t!==void 0&&(a.branchRenamedTo=t);let o=ul(n,r);return o!==void 0&&(a.warning=o),a},fl=(e,t,n)=>{let r={dirty:t,shas:n};return e.branchRenamedTo!==void 0&&(r.branchRenamedTo=e.branchRenamedTo),e.warning!==void 0&&(r.setHeadWarning=e.warning),r},U=e=>ce(y(e,`.git`)),pl=e=>`refusing to sync ${e}: not a refs-managed checkout`,ml=async(e,t)=>{if(!U(t))throw T(pl(t));let n=await e.run(`git`,[`config`,`--local`,`--get`,`core.hooksPath`],{cwd:t});if(n.exitCode!==0||n.stdout.trim()===``)throw T(pl(t))},hl=/filtering not recognized/iu,gl=e=>e===void 0?{}:{cwd:e},_l=(e,t,n)=>({action:e,args:t,cmd:`git`,...gl(n)}),vl=async(e,t)=>{let n=await e.run(t.cmd,t.args,gl(t.cwd));if(n.exitCode===0)return n;let r=n.stderr.trim()||n.stdout.trim()||`exit code ${n.exitCode}`;throw T(`${t.action} failed: ${r}`)},yl=async(e,t)=>{let n=[`clone`,`-q`];t.mode===`blobless`&&n.push(`--filter=blob:none`),n.push(t.cloneUrl,t.dest);let r=await vl(e,_l(`git clone`,n));return await vl(e,_l(`git config core.hooksPath`,[`config`,`core.hooksPath`,t.hooksDir],t.dest)),t.mode===`blobless`&&hl.test(r.stderr)?{effectiveMode:`full`,warning:`server did not honour the partial-clone filter (blob:none); fell back to a full clone`}:{effectiveMode:t.mode}},bl=async(e,t)=>{let n=await e.run(`git`,[`symbolic-ref`,`--short`,`refs/remotes/origin/HEAD`],{cwd:t});if(n.exitCode!==0)return;let r=n.stdout.trim();return r.startsWith(`origin/`)?r.slice(7):r},xl=async(e,t)=>{let n=await bl(e,t);if(n!==void 0)return n;await e.run(`git`,[`remote`,`set-head`,`origin`,`--auto`],{cwd:t});let r=await bl(e,t);if(r!==void 0)return r;throw T(`could not detect the default branch for checkout: ${t}`)},Sl=async(e,t)=>(await vl(e,_l(`git rev-parse HEAD`,[`rev-parse`,`HEAD`],t))).stdout.trim(),Cl=async(e,t)=>(await vl(e,_l(`git status --porcelain`,[`status`,`--porcelain`],t))).stdout.trim()!==``,wl=async(e,t)=>{await vl(e,_l(`git fetch`,[`fetch`,`--prune`,`--tags`,`origin`],t.dir));let n=await e.run(`git`,[`remote`,`set-head`,`origin`,`--auto`],{cwd:t.dir}),r=await xl(e,t.dir),i={branch:r};return r!==t.defaultBranch&&(i.branchRenamedTo=r),n.exitCode!==0&&(i.warning=`could not refresh origin/HEAD: ${cl(n)}`),i},Tl=e=>[_l(`git reset --hard HEAD (pre-checkout)`,[`reset`,`--hard`,`HEAD`],e),_l(`git clean -fd`,[`clean`,`-fd`],e)],El=async(e,t)=>{let{branch:n,dir:r,dirty:i}=t,a=[];i&&a.push(...Tl(r)),a.push(_l(`git checkout -B`,[`checkout`,`-B`,n,`origin/${n}`],r),_l(`git reset --hard`,[`reset`,`--hard`,`origin/${n}`],r));for(let t of a)await vl(e,t)},Dl=async(e,t)=>{await ml(e,t.dir);let n=await Sl(e,t.dir),r=await wl(e,t),i=await Cl(e,t.dir);return await El(e,{branch:r.branch,dir:t.dir,dirty:i}),dl(fl(r,i,{newSha:await Sl(e,t.dir),oldSha:n}))},Ol=async(e,t,n=20)=>(await vl(e,_l(`git tag`,[`tag`,`--sort=-version:refname`],t))).stdout.split(`
348
- `).map(e=>e.trim()).filter(e=>e!==``).slice(0,n),kl=async(e,t,n)=>(await e.run(`git`,[`show-ref`,`--verify`,`--`,`refs/tags/${n}`],{cwd:t})).exitCode===0,Al=[`#!/bin/sh`,`echo "refs: this checkout is a managed read-only reference — commits are blocked" >&2`,`exit 1`,``].join(`
349
- `),jl=async e=>{await Promise.all([`pre-commit`,`pre-push`].map(async t=>{let r=y(e.hooksDir,t);await Rc(r,Al),await n(r,493)}))},Ml=/\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?(?:\+[0-9A-Za-z.-]+)?/u,Nl=/\d+\.\d+\.\d+/gu,Pl=e=>Js.safeParse(e).success,Fl=e=>{let t=e.match(Nl);return t!==null&&t.length>1},Il=e=>{let t=Ml.exec(e);if(!t||Fl(e))return;let[n]=t,r=e.replace(n,`{version}`);if(Pl(r))return r},Ll=(e,t,n)=>{let r=e.get(t);r===void 0?e.set(t,{count:1,index:n}):r.count+=1},Rl=e=>{let t=new Map;for(let n=0;n<e.length;n+=1){let r=e[n];if(r===void 0)continue;let i=Il(r);i&&Ll(t,i,n)}return t},zl=(e,t)=>e.count>t.count||e.count===t.count&&e.index<t.index,Bl=e=>{let t=[...e.entries()];if(t.length===0)return null;let n=t[0];if(!n)return null;let[r,i]=n;return t.slice(1).reduce(({format:e,data:t},[n,r])=>zl(r,t)?{data:r,format:n}:{data:t,format:e},{data:i,format:r}).format},Vl=e=>{let t=Rl(e);return Bl(t)},Hl=(e,t)=>e.replaceAll(`{version}`,()=>t),Ul=async(e,t,n,r)=>{let i=Hl(n,r);if(!await kl(e,t,i))throw C(`tag '${i}' not found in ${t} — check the version or tag_format`);return i},Wl=/^(?<scheme>[a-z][a-z0-9+.-]*:\/\/)?[\s\S]*@/iu,W=e=>{let t=e.replace(Wl,`$<scheme><redacted>@`);return t.length<=200?t:`${t.slice(0,200)}…`},Gl=/^git@(?<host>[^:/\s]+):(?<path>[^\s]+)$/u,Kl=/^git\+/u,ql={"https:":`443`,"ssh:":`22`},Jl=e=>e.replace(/\.git$/u,``),Yl=e=>e.split(`/`).some(e=>e===`.`||e===`..`),Xl=e=>e.includes(`\\`),Zl=e=>e.includes(`%`),Ql=e=>{let t=Us.safeParse(e);if(!t.success)throw T(`not a supported git url: derived key '${W(e)}' is invalid`);return t.data},$l=({host:e,port:t,protocol:n})=>{let r=ql[n];return t===``||t===r?e.toLowerCase():`${e.toLowerCase()}_${t}`},eu=e=>{let t=Jl(e.path.replace(/^\/+/u,``).replace(/\/+$/u,``));return Ql(`${$l(e)}/${t}`)},tu=e=>{let t=decodeURIComponent(e).split(`/`).filter(e=>e!==``);if(t.length<2)throw T(`not a supported git url: file url path must have at least 2 segments`);let n=t.at(-2)??``,r=t.at(-1)??``;return Ql(`local/${n}/${r}`)},nu=(e,t)=>{try{return new URL(e)}catch{throw T(`not a supported git url: ${W(t)}`)}},ru=e=>{if(e.password!==``)throw T(`not a supported git url: credentials embedded in url`);if(e.protocol===`https:`&&e.username!==``)throw T(`not a supported git url: credentials embedded in https url`)},iu=(e,t)=>{if(e.protocol===`file:`){if(!t)throw T(`not a supported git url: unsupported protocol ${e.protocol}`);return tu(e.pathname)}if(e.protocol!==`https:`&&e.protocol!==`ssh:`)throw T(`not a supported git url: unsupported protocol ${e.protocol}`);return ru(e),eu({host:e.hostname,path:e.pathname,port:e.port,protocol:e.protocol})},au=(e,t)=>{if(Zl(e))throw T(`not a supported git url: percent-encoding not supported in ${W(t)}`);if(e.includes(`:`))throw T(`not a supported git url: ambiguous ':' in scp-style path ${W(t)}; use the ssh:// url form instead`);if(e.startsWith(`/`)||e.startsWith(`~`))throw T(`not a supported git url: ambiguous absolute/home-relative scp path in ${W(t)}; use the ssh:// url form instead`)},ou=(e,t)=>{let n=e.groups?.path??``;return au(n,t),eu({host:e.groups?.host??``,path:n,port:``,protocol:`ssh:`})},su=(e,t)=>{if(Xl(e))throw T(`not a supported git url: backslash not allowed in ${W(t)}`)},cu=(e,t)=>{if(Yl(e))throw T(`not a supported git url: path traversal segment in ${W(t)}`)},lu=(e,t,n)=>{if(e.protocol!==`file:`&&Zl(t))throw T(`not a supported git url: percent-encoding not supported in ${W(n)}`)},uu=(e,t)=>{let n=t?.allowFileUrls??!1,r=e.replace(Kl,``);su(r,e),cu(r,e);let i=Gl.exec(r);if(i?.groups!==void 0)return{cloneUrl:r,key:ou(i,e)};let a=nu(r,e);return lu(a,r,e),{cloneUrl:r,key:iu(a,n)}},du=`.git`,fu=e=>e.replace(/^\/+/u,``).replace(/\/+$/u,``),pu=e=>e.endsWith(du)?e:`${e}${du}`,mu=(e,t)=>`https://${e.toLowerCase()}/${fu(t)}`,hu=(e,t)=>`git@${e.toLowerCase()}:${pu(fu(t))}`,gu=e=>{if(e===`https:`)return`https`;if(e===`ssh:`)return`ssh`;throw T(`not a supported git url: unsupported protocol ${e}`)},_u=(e,t,n)=>{let r=ql[e.protocol];if(e.port!==``&&e.port!==r)throw T(`cannot apply git_transport=${t} to ${W(n)}: its non-default port ${e.port} cannot be expressed in the ${t} url form — add the repo with an explicit url instead`)},vu=(e,t)=>t===`https`?mu(e.hostname,e.pathname):hu(e.hostname,e.pathname),yu=(e,t,n)=>{let r=uu(t).key;if(r!==n)throw T(`git_transport transform changed repo identity: '${W(e)}' → '${t}' (key '${n}' → '${r}')`);return t},bu=(e,t)=>{if(t.transport===`ssh`)return t.cloneUrl;let n=e.groups?.host??``,r=e.groups?.path??``;return yu(t.cloneUrl,mu(n,r),t.originalKey)},xu=e=>{let t=nu(e.cloneUrl,e.cloneUrl);return gu(t.protocol)===e.transport?e.cloneUrl:(_u(t,e.transport,e.cloneUrl),yu(e.cloneUrl,vu(t,e.transport),e.originalKey))},Su=(e,t)=>{if(e.startsWith(`file:`))return e;let n={cloneUrl:e,originalKey:uu(e).key,transport:t},r=Gl.exec(e);return r?.groups===void 0?xu(n):bu(r,n)},Cu=`meta.json`,wu=e=>{if(typeof e==`object`&&e&&`code`in e){let{code:t}=e;if(typeof t==`string`)return t}},Tu=e=>{try{return process.kill(e,0),!0}catch(e){return wu(e)!==`ESRCH`}},Eu=e=>{try{return JSON.parse(e)}catch{return}},Du=async e=>{try{return await s(e,`utf8`)}catch{return}},Ou=e=>{if(typeof e!=`string`)return;let t=Date.parse(e);if(!Number.isNaN(t))return t},ku=e=>{if(typeof e!=`object`||!e)return;let t=e,{pid:n}=t,r=Ou(t.acquired_at);if(!(typeof n!=`number`||r===void 0))return{acquiredAtMs:r,pid:n}},Au=async e=>{let t=await Du(y(e,Cu));if(t!==void 0)return ku(Eu(t))},ju=e=>{if(typeof e!=`object`||!e)return;let{token:t}=e;if(typeof t==`string`)return t},Mu=async e=>{let t=await Du(y(e,Cu));if(t!==void 0)return ju(Eu(t))},Nu=async e=>{try{return(await p(e)).mtimeMs}catch{return}},Pu=async(e,t)=>{let n=y(e,Cu),r=`${n}.tmp-${re()}`;await m(r,t,`utf8`),await u(r,n)},Fu=async(e,t)=>{await Pu(e,JSON.stringify({acquired_at:new Date().toISOString(),pid:process.pid,token:t}))},Iu=/^[a-zA-Z0-9][a-zA-Z0-9_.:-]*$/u,Lu=async e=>{let t=await Au(e);if(t===void 0){let t=await Nu(e);return t===void 0?!1:Date.now()-t>5e3}return Date.now()-t.acquiredAtMs>6e5?!0:!Tu(t.pid)},Ru=async(e,t)=>{try{await Fu(e,t)}catch(e){if(wu(e)===`ENOENT`)return`retry`;throw e}return t},zu=async e=>{try{return await o(e,{recursive:!1}),!0}catch(e){if(wu(e)===`EEXIST`)return!1;throw e}},Bu=async e=>{if(!await zu(e))return;let t=await Ru(e,re());return t===`retry`?Bu(e):t},Vu=e=>y(e.locksDir,`${e.name}.steal-claim`),Hu=e=>y(e.locksDir,`${e.name}.steal.${re()}`),Uu=async e=>{try{return await o(e,{recursive:!1}),!0}catch(e){if(wu(e)===`EEXIST`)return!1;throw e}},Wu=async e=>{let t=await Nu(e);return t!==void 0&&Date.now()-t>2e3},Gu=async e=>await Uu(e)?!0:await Wu(e)?(await d(e,{force:!0,recursive:!0}),Uu(e)):!1,Ku=async e=>{let t=Hu(e);try{await u(e.lockPath,t)}catch(e){if(wu(e)===`ENOENT`)return;throw e}return t},qu=async e=>{if(!await Lu(e.lockPath))return;let t=await Ku(e);t!==void 0&&await d(t,{force:!0,recursive:!0})},Ju=async e=>{let t=Vu(e);if(await Gu(t))try{await qu(e)}finally{await d(t,{force:!0,recursive:!0})}},Yu=async(e,t)=>{if(await Lu(e.lockPath)){await Ju(e);return}if(Date.now()>=t)throw ot(`lock ${e.name} is held — another refs process is running`);await _e(100)},Xu=async(e,t)=>{let n=await Bu(e.lockPath);return n===void 0?(await Yu(e,t),Xu(e,t)):n},Zu=async(e,t)=>{await Mu(e)===t&&await d(e,{force:!0,recursive:!0})},Qu=e=>{if(e===`.`||e===`..`||!Iu.test(e))throw T(`lock name must not contain "/" or other unsafe characters — only letters, digits, and "_.:-" are allowed, and it may not be "." or "..": ${e}`)},G=async(e,t,n,r)=>{Qu(t);let i={lockPath:y(e.locksDir,t),locksDir:e.locksDir,name:t};await o(e.locksDir,{recursive:!0});let a=Date.now()+(r?.timeoutMs??1e4),s=await Xu(i,a);try{return await n()}finally{await Zu(i.lockPath,s)}},$u=Xo({directory:L().optional(),url:L().optional()}),ed=Xo({repository:Qo([L(),$u]).optional()}),td=/^(?:@[a-z0-9-~][a-z0-9._~-]*\/)?[a-z0-9-~][a-z0-9._~-]*$/u,nd=new Set([`node_modules`,`favicon.ico`]),rd=e=>C(`package '${e}' has no usable repository field — find the repository and run: refs add <git-url>`),id=e=>{let t=e.split(`/`);return t.length>=2?t[1]:e},ad=e=>{if(e.length>214)throw w(`invalid package name: '${e}' exceeds maximum length of 214 characters`);if(!td.test(e))throw w(`invalid package name: '${e}' does not match npm naming rules`);let t=id(e);if(nd.has(t))throw w(`invalid package name: '${e}' uses a reserved name`)},od=e=>e.replace(`/`,`%2F`),sd=e=>typeof e==`string`?e:e?.url,cd=e=>{if(typeof e==`object`&&e?.directory){let t=Ys.safeParse(e.directory);if(t.success)return t.data}},ld=async(e,t)=>{try{return await e.json()}catch{throw T(`invalid npm registry response for '${t}': not parseable JSON`)}},ud=async(e,t)=>{let n=await e(`https://registry.npmjs.org/${od(t)}`);if(n.status===404)throw C(`npm package '${t}' not found`);if(n.status!==200)throw T(`failed to fetch npm package '${t}': status ${n.status}`);let r=await ld(n,t),i=ed.safeParse(r);if(!i.success)throw T(`invalid npm package response for '${t}'`);return i.data},dd=(e,t)=>{try{return uu(e)}catch{throw rd(t)}},fd=async(e,t)=>{ad(t);let n=await ud(e,t),r=sd(n.repository);if(r===void 0||r===``)throw rd(t);let{cloneUrl:i,key:a}=dd(r,t),o=cd(n.repository);return o===void 0?{cloneUrl:i,key:a}:{cloneUrl:i,directory:o,key:a}};function K(e){if(typeof e!=`object`||!e)return!1;let t=Object.getPrototypeOf(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(Symbol.toStringTag in e)&&!(Symbol.iterator in e)}const pd=(e,t)=>{let n=gd(md(e));if(typeof n!=`string`)throw TypeError(`${t} must be a string or a file URL: ${n}.`);return n},md=e=>hd(e)?e.toString():e,hd=e=>typeof e!=`string`&&e&&Object.getPrototypeOf(e)===String.prototype,gd=e=>e instanceof URL?ve(e):e,_d=(e,t=[],n={})=>{let r=pd(e,`First argument`),[i,a]=K(t)?[[],t]:[t,n];if(!Array.isArray(i))throw TypeError(`Second argument must be either an array of arguments or an options object: ${i}`);if(i.some(e=>typeof e==`object`&&!!e))throw TypeError(`Second argument must be an array of strings: ${i}`);let o=i.map(String),s=o.find(e=>e.includes(`\0`));if(s!==void 0)throw TypeError(`Arguments cannot contain null bytes ("\\0"): ${s}`);if(!K(a))throw TypeError(`Last argument must be an options object: ${a}`);return[r,o,a]},{toString:vd}=Object.prototype,yd=e=>vd.call(e)===`[object ArrayBuffer]`,q=e=>vd.call(e)===`[object Uint8Array]`,bd=e=>new Uint8Array(e.buffer,e.byteOffset,e.byteLength),xd=new TextEncoder,Sd=e=>xd.encode(e),Cd=new TextDecoder,wd=e=>Cd.decode(e),Td=(e,t)=>Ed(e,t).join(``),Ed=(e,t)=>{if(t===`utf8`&&e.every(e=>typeof e==`string`))return e;let n=new we(t),r=e.map(e=>typeof e==`string`?Sd(e):e).map(e=>n.write(e)),i=n.end();return i===``?r:[...r,i]},Dd=e=>e.length===1&&q(e[0])?e[0]:kd(Od(e)),Od=e=>e.map(e=>typeof e==`string`?Sd(e):e),kd=e=>{let t=new Uint8Array(Ad(e)),n=0;for(let r of e)t.set(r,n),n+=r.length;return t},Ad=e=>{let t=0;for(let n of e)t+=n.length;return t},jd=e=>Array.isArray(e)&&Array.isArray(e.raw),Md=(e,t)=>{let n=[];for(let[r,i]of e.entries())n=Nd({templates:e,expressions:t,tokens:n,index:r,template:i});if(n.length===0)throw TypeError(`Template script must not be empty`);let[r,...i]=n;return[r,i,{}]},Nd=({templates:e,expressions:t,tokens:n,index:r,template:i})=>{if(i===void 0)throw TypeError(`Invalid backslash sequence: ${e.raw[r]}`);let{nextTokens:a,leadingWhitespaces:o,trailingWhitespaces:s}=Pd(i,e.raw[r]),c=Ld(n,a,o);if(r===t.length)return c;let l=t[r],u=Array.isArray(l)?l.map(e=>Rd(e)):[Rd(l)];return Ld(c,u,s)},Pd=(e,t)=>{if(t.length===0)return{nextTokens:[],leadingWhitespaces:!1,trailingWhitespaces:!1};let n=[],r=0,i=Fd.has(t[0]);for(let i=0,a=0;i<e.length;i+=1,a+=1){let o=t[a];if(Fd.has(o))r!==i&&n.push(e.slice(r,i)),r=i+1;else if(o===`\\`){let e=t[a+1];e===`
350
- `?(--i,a+=1):e===`u`&&t[a+2]===`{`?a=t.indexOf(`}`,a+3):a+=Id[e]??1}}let a=r===e.length;return a||n.push(e.slice(r)),{nextTokens:n,leadingWhitespaces:i,trailingWhitespaces:a}},Fd=new Set([` `,` `,`\r`,`
351
- `]),Id={x:3,u:5},Ld=(e,t,n)=>n||e.length===0||t.length===0?[...e,...t]:[...e.slice(0,-1),`${e.at(-1)}${t[0]}`,...t.slice(1)],Rd=e=>{let t=typeof e;if(t===`string`)return e;if(t===`number`)return String(e);if(K(e)&&(`stdout`in e||`isMaxBuffer`in e))return zd(e);throw e instanceof be||Object.prototype.toString.call(e)===`[object Promise]`?TypeError("Unexpected subprocess in template expression. Please use ${await subprocess} instead of ${subprocess}."):TypeError(`Unexpected "${t}" in template expression`)},zd=({stdout:e})=>{if(typeof e==`string`)return e;if(q(e))return wd(e);throw TypeError(e===void 0?`Missing result.stdout in template expression. This is probably due to the previous subprocess' "stdout" option.`:`Unexpected "${typeof e}" stdout in template expression`)},Bd=e=>Vd.includes(e),Vd=[b.stdin,b.stdout,b.stderr],Hd=[`stdin`,`stdout`,`stderr`],Ud=e=>Hd[e]??`stdio[${e}]`,Wd=e=>{let t={...e};for(let n of nf)t[n]=Gd(e,n);return t},Gd=(e,t)=>{let n=Array.from({length:Kd(e)+1}),r=qd(e[t],n,t);return ef(r,t)},Kd=({stdio:e})=>Array.isArray(e)?Math.max(e.length,Hd.length):Hd.length,qd=(e,t,n)=>K(e)?Jd(e,t,n):t.fill(e),Jd=(e,t,n)=>{for(let r of Object.keys(e).sort(Yd))for(let i of Zd(r,n,t))t[i]=e[r];return t},Yd=(e,t)=>Xd(e)<Xd(t)?1:-1,Xd=e=>e===`stdout`||e===`stderr`?0:e===`all`?2:1,Zd=(e,t,n)=>{if(e===`ipc`)return[n.length-1];let r=Qd(e);if(r===void 0||r===0)throw TypeError(`"${t}.${e}" is invalid.
347
+ `)[0]??t;return n.length<=200?n:`${n.slice(0,200)}…`},ll=(e,t)=>t?`restored`:e.oldSha===e.newSha?`fresh`:`updated`,ul=(e,t)=>{let n=[];if(e&&n.push(`checkout had local changes (managed checkouts are read-only) — discarded and restored to the remote state`),t!==void 0&&n.push(t),n.length!==0)return n.join(` | `)},dl=e=>{let{branchRenamedTo:t,dirty:n,setHeadWarning:r,shas:i}=e,a={...i,status:ll(i,n)};t!==void 0&&(a.branchRenamedTo=t);let o=ul(n,r);return o!==void 0&&(a.warning=o),a},fl=(e,t,n)=>{let r={dirty:t,shas:n};return e.branchRenamedTo!==void 0&&(r.branchRenamedTo=e.branchRenamedTo),e.warning!==void 0&&(r.setHeadWarning=e.warning),r},U=e=>ce(y(e,`.git`)),pl=e=>`refusing to sync ${e}: not a refs-managed checkout`,ml=async(e,t)=>{if(!U(t))throw T(pl(t));let n=await e.run(`git`,[`config`,`--local`,`--get`,`core.hooksPath`],{cwd:t});if(n.exitCode!==0||n.stdout.trim()===``)throw T(pl(t))},hl=/filtering not recognized/iu,gl=e=>e===void 0?{}:{cwd:e},W=(e,t,n)=>({action:e,args:t,cmd:`git`,...gl(n)}),_l=async(e,t)=>{let n=await e.run(t.cmd,t.args,gl(t.cwd));if(n.exitCode===0)return n;let r=n.stderr.trim()||n.stdout.trim()||`exit code ${n.exitCode}`;throw T(`${t.action} failed: ${r}`)},vl=async(e,t)=>{let n=[`clone`,`-q`];t.mode===`blobless`&&n.push(`--filter=blob:none`),n.push(t.cloneUrl,t.dest);let r=await _l(e,W(`git clone`,n));return await _l(e,W(`git config core.hooksPath`,[`config`,`core.hooksPath`,t.hooksDir],t.dest)),t.mode===`blobless`&&hl.test(r.stderr)?{effectiveMode:`full`,warning:`server did not honour the partial-clone filter (blob:none); fell back to a full clone`}:{effectiveMode:t.mode}},yl=async(e,t)=>{let n=await e.run(`git`,[`symbolic-ref`,`--short`,`refs/remotes/origin/HEAD`],{cwd:t});if(n.exitCode!==0)return;let r=n.stdout.trim();return r.startsWith(`origin/`)?r.slice(7):r},bl=async(e,t)=>{let n=await yl(e,t);if(n!==void 0)return n;await e.run(`git`,[`remote`,`set-head`,`origin`,`--auto`],{cwd:t});let r=await yl(e,t);if(r!==void 0)return r;throw T(`could not detect the default branch for checkout: ${t}`)},xl=async(e,t)=>(await _l(e,W(`git rev-parse HEAD`,[`rev-parse`,`HEAD`],t))).stdout.trim(),Sl=async(e,t)=>(await _l(e,W(`git status --porcelain`,[`status`,`--porcelain`],t))).stdout.trim()!==``,Cl=async(e,t)=>{await _l(e,W(`git fetch`,[`fetch`,`--prune`,`--tags`,`origin`],t.dir));let n=await e.run(`git`,[`remote`,`set-head`,`origin`,`--auto`],{cwd:t.dir}),r=await bl(e,t.dir),i={branch:r};return r!==t.defaultBranch&&(i.branchRenamedTo=r),n.exitCode!==0&&(i.warning=`could not refresh origin/HEAD: ${cl(n)}`),i},wl=e=>[W(`git reset --hard HEAD (pre-checkout)`,[`reset`,`--hard`,`HEAD`],e),W(`git clean -fd`,[`clean`,`-fd`],e)],Tl=async(e,t)=>{let{branch:n,dir:r,dirty:i}=t,a=[];i&&a.push(...wl(r)),a.push(W(`git checkout -B`,[`checkout`,`-B`,n,`origin/${n}`],r),W(`git reset --hard`,[`reset`,`--hard`,`origin/${n}`],r));for(let t of a)await _l(e,t)},El=async(e,t)=>{await ml(e,t.dir);let n=await xl(e,t.dir),r=await Cl(e,t),i=await Sl(e,t.dir);return await Tl(e,{branch:r.branch,dir:t.dir,dirty:i}),dl(fl(r,i,{newSha:await xl(e,t.dir),oldSha:n}))},Dl=async(e,t,n=20)=>(await _l(e,W(`git tag`,[`tag`,`--sort=-version:refname`],t))).stdout.split(`
348
+ `).map(e=>e.trim()).filter(e=>e!==``).slice(0,n),Ol=async(e,t,n)=>(await e.run(`git`,[`show-ref`,`--verify`,`--`,`refs/tags/${n}`],{cwd:t})).exitCode===0,kl=[`#!/bin/sh`,`echo "refs: this checkout is a managed read-only reference — commits are blocked" >&2`,`exit 1`,``].join(`
349
+ `),Al=async e=>{await Promise.all([`pre-commit`,`pre-push`].map(async t=>{let r=y(e.hooksDir,t);await Rc(r,kl),await n(r,493)}))},jl=/\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?(?:\+[0-9A-Za-z.-]+)?/u,Ml=/\d+\.\d+\.\d+/gu,Nl=e=>Js.safeParse(e).success,Pl=e=>{let t=e.match(Ml);return t!==null&&t.length>1},Fl=e=>{let t=jl.exec(e);if(!t||Pl(e))return;let[n]=t,r=e.replace(n,`{version}`);if(Nl(r))return r},Il=(e,t,n)=>{let r=e.get(t);r===void 0?e.set(t,{count:1,index:n}):r.count+=1},Ll=e=>{let t=new Map;for(let n=0;n<e.length;n+=1){let r=e[n];if(r===void 0)continue;let i=Fl(r);i&&Il(t,i,n)}return t},Rl=(e,t)=>e.count>t.count||e.count===t.count&&e.index<t.index,zl=e=>{let t=[...e.entries()];if(t.length===0)return null;let n=t[0];if(!n)return null;let[r,i]=n;return t.slice(1).reduce(({format:e,data:t},[n,r])=>Rl(r,t)?{data:r,format:n}:{data:t,format:e},{data:i,format:r}).format},Bl=e=>{let t=Ll(e);return zl(t)},Vl=(e,t)=>e.replaceAll(`{version}`,()=>t),Hl=async(e,t,n,r)=>{let i=Vl(n,r);if(!await Ol(e,t,i))throw C(`tag '${i}' not found in ${t} — check the version or tag_format`);return i},Ul=/^(?<scheme>[a-z][a-z0-9+.-]*:\/\/)?[\s\S]*@/iu,G=e=>{let t=e.replace(Ul,`$<scheme><redacted>@`);return t.length<=200?t:`${t.slice(0,200)}…`},Wl=/^git@(?<host>[^:/\s]+):(?<path>[^\s]+)$/u,Gl=/^git\+/u,Kl={"https:":`443`,"ssh:":`22`},ql=e=>e.replace(/\.git$/u,``),Jl=e=>e.split(`/`).some(e=>e===`.`||e===`..`),Yl=e=>e.includes(`\\`),Xl=e=>e.includes(`%`),Zl=e=>{let t=Us.safeParse(e);if(!t.success)throw T(`not a supported git url: derived key '${G(e)}' is invalid`);return t.data},Ql=({host:e,port:t,protocol:n})=>{let r=Kl[n];return t===``||t===r?e.toLowerCase():`${e.toLowerCase()}_${t}`},$l=e=>{let t=ql(e.path.replace(/^\/+/u,``).replace(/\/+$/u,``));return Zl(`${Ql(e)}/${t}`)},eu=e=>{let t=decodeURIComponent(e).split(`/`).filter(e=>e!==``);if(t.length<2)throw T(`not a supported git url: file url path must have at least 2 segments`);let n=t.at(-2)??``,r=t.at(-1)??``;return Zl(`local/${n}/${r}`)},tu=(e,t)=>{try{return new URL(e)}catch{throw T(`not a supported git url: ${G(t)}`)}},nu=e=>{if(e.password!==``)throw T(`not a supported git url: credentials embedded in url`);if(e.protocol===`https:`&&e.username!==``)throw T(`not a supported git url: credentials embedded in https url`)},ru=(e,t)=>{if(e.protocol===`file:`){if(!t)throw T(`not a supported git url: unsupported protocol ${e.protocol}`);return eu(e.pathname)}if(e.protocol!==`https:`&&e.protocol!==`ssh:`)throw T(`not a supported git url: unsupported protocol ${e.protocol}`);return nu(e),$l({host:e.hostname,path:e.pathname,port:e.port,protocol:e.protocol})},iu=(e,t)=>{if(Xl(e))throw T(`not a supported git url: percent-encoding not supported in ${G(t)}`);if(e.includes(`:`))throw T(`not a supported git url: ambiguous ':' in scp-style path ${G(t)}; use the ssh:// url form instead`);if(e.startsWith(`/`)||e.startsWith(`~`))throw T(`not a supported git url: ambiguous absolute/home-relative scp path in ${G(t)}; use the ssh:// url form instead`)},au=(e,t)=>{let n=e.groups?.path??``;return iu(n,t),$l({host:e.groups?.host??``,path:n,port:``,protocol:`ssh:`})},ou=(e,t)=>{if(Yl(e))throw T(`not a supported git url: backslash not allowed in ${G(t)}`)},su=(e,t)=>{if(Jl(e))throw T(`not a supported git url: path traversal segment in ${G(t)}`)},cu=(e,t,n)=>{if(e.protocol!==`file:`&&Xl(t))throw T(`not a supported git url: percent-encoding not supported in ${G(n)}`)},lu=(e,t)=>{let n=t?.allowFileUrls??!1,r=e.replace(Gl,``);ou(r,e),su(r,e);let i=Wl.exec(r);if(i?.groups!==void 0)return{cloneUrl:r,key:au(i,e)};let a=tu(r,e);return cu(a,r,e),{cloneUrl:r,key:ru(a,n)}},uu=`.git`,du=e=>e.replace(/^\/+/u,``).replace(/\/+$/u,``),fu=e=>e.endsWith(uu)?e:`${e}${uu}`,pu=(e,t)=>`https://${e.toLowerCase()}/${du(t)}`,mu=(e,t)=>`git@${e.toLowerCase()}:${fu(du(t))}`,hu=e=>{if(e===`https:`)return`https`;if(e===`ssh:`)return`ssh`;throw T(`not a supported git url: unsupported protocol ${e}`)},gu=(e,t,n)=>{let r=Kl[e.protocol];if(e.port!==``&&e.port!==r)throw T(`cannot apply git_transport=${t} to ${G(n)}: its non-default port ${e.port} cannot be expressed in the ${t} url form — add the repo with an explicit url instead`)},_u=(e,t)=>t===`https`?pu(e.hostname,e.pathname):mu(e.hostname,e.pathname),vu=(e,t,n)=>{let r=lu(t).key;if(r!==n)throw T(`git_transport transform changed repo identity: '${G(e)}' → '${t}' (key '${n}' → '${r}')`);return t},yu=(e,t)=>{if(t.transport===`ssh`)return t.cloneUrl;let n=e.groups?.host??``,r=e.groups?.path??``;return vu(t.cloneUrl,pu(n,r),t.originalKey)},bu=e=>{let t=tu(e.cloneUrl,e.cloneUrl);return hu(t.protocol)===e.transport?e.cloneUrl:(gu(t,e.transport,e.cloneUrl),vu(e.cloneUrl,_u(t,e.transport),e.originalKey))},xu=(e,t)=>{if(e.startsWith(`file:`))return e;let n={cloneUrl:e,originalKey:lu(e).key,transport:t},r=Wl.exec(e);return r?.groups===void 0?bu(n):yu(r,n)},Su=`meta.json`,Cu=e=>{if(typeof e==`object`&&e&&`code`in e){let{code:t}=e;if(typeof t==`string`)return t}},wu=e=>{try{return process.kill(e,0),!0}catch(e){return Cu(e)!==`ESRCH`}},Tu=e=>{try{return JSON.parse(e)}catch{return}},Eu=async e=>{try{return await s(e,`utf8`)}catch{return}},Du=e=>{if(typeof e!=`string`)return;let t=Date.parse(e);if(!Number.isNaN(t))return t},Ou=e=>{if(typeof e!=`object`||!e)return;let t=e,{pid:n}=t,r=Du(t.acquired_at);if(!(typeof n!=`number`||r===void 0))return{acquiredAtMs:r,pid:n}},ku=async e=>{let t=await Eu(y(e,Su));if(t!==void 0)return Ou(Tu(t))},Au=e=>{if(typeof e!=`object`||!e)return;let{token:t}=e;if(typeof t==`string`)return t},ju=async e=>{let t=await Eu(y(e,Su));if(t!==void 0)return Au(Tu(t))},Mu=async e=>{try{return(await p(e)).mtimeMs}catch{return}},Nu=async(e,t)=>{let n=y(e,Su),r=`${n}.tmp-${re()}`;await m(r,t,`utf8`),await u(r,n)},Pu=async(e,t)=>{await Nu(e,JSON.stringify({acquired_at:new Date().toISOString(),pid:process.pid,token:t}))},Fu=/^[a-zA-Z0-9][a-zA-Z0-9_.:-]*$/u,Iu=async e=>{let t=await ku(e);if(t===void 0){let t=await Mu(e);return t===void 0?!1:Date.now()-t>5e3}return Date.now()-t.acquiredAtMs>6e5?!0:!wu(t.pid)},Lu=async(e,t)=>{try{await Pu(e,t)}catch(e){if(Cu(e)===`ENOENT`)return`retry`;throw e}return t},Ru=async e=>{try{return await o(e,{recursive:!1}),!0}catch(e){if(Cu(e)===`EEXIST`)return!1;throw e}},zu=async e=>{if(!await Ru(e))return;let t=await Lu(e,re());return t===`retry`?zu(e):t},Bu=e=>y(e.locksDir,`${e.name}.steal-claim`),Vu=e=>y(e.locksDir,`${e.name}.steal.${re()}`),Hu=async e=>{try{return await o(e,{recursive:!1}),!0}catch(e){if(Cu(e)===`EEXIST`)return!1;throw e}},Uu=async e=>{let t=await Mu(e);return t!==void 0&&Date.now()-t>2e3},Wu=async e=>await Hu(e)?!0:await Uu(e)?(await d(e,{force:!0,recursive:!0}),Hu(e)):!1,Gu=async e=>{let t=Vu(e);try{await u(e.lockPath,t)}catch(e){if(Cu(e)===`ENOENT`)return;throw e}return t},Ku=async e=>{if(!await Iu(e.lockPath))return;let t=await Gu(e);t!==void 0&&await d(t,{force:!0,recursive:!0})},qu=async e=>{let t=Bu(e);if(await Wu(t))try{await Ku(e)}finally{await d(t,{force:!0,recursive:!0})}},Ju=async(e,t)=>{if(await Iu(e.lockPath)){await qu(e);return}if(Date.now()>=t)throw ot(`lock ${e.name} is held — another refs process is running`);await _e(100)},Yu=async(e,t)=>{let n=await zu(e.lockPath);return n===void 0?(await Ju(e,t),Yu(e,t)):n},Xu=async(e,t)=>{await ju(e)===t&&await d(e,{force:!0,recursive:!0})},Zu=e=>{if(e===`.`||e===`..`||!Fu.test(e))throw T(`lock name must not contain "/" or other unsafe characters — only letters, digits, and "_.:-" are allowed, and it may not be "." or "..": ${e}`)},K=async(e,t,n,r)=>{Zu(t);let i={lockPath:y(e.locksDir,t),locksDir:e.locksDir,name:t};await o(e.locksDir,{recursive:!0});let a=Date.now()+(r?.timeoutMs??1e4),s=await Yu(i,a);try{return await n()}finally{await Xu(i.lockPath,s)}},Qu=Xo({directory:L().optional(),url:L().optional()}),$u=Xo({repository:Qo([L(),Qu]).optional()}),ed=/^(?:@[a-z0-9-~][a-z0-9._~-]*\/)?[a-z0-9-~][a-z0-9._~-]*$/u,td=new Set([`node_modules`,`favicon.ico`]),nd=e=>C(`package '${e}' has no usable repository field — find the repository and run: refs add <git-url>`),rd=e=>{let t=e.split(`/`);return t.length>=2?t[1]:e},id=e=>{if(e.length>214)throw w(`invalid package name: '${e}' exceeds maximum length of 214 characters`);if(!ed.test(e))throw w(`invalid package name: '${e}' does not match npm naming rules`);let t=rd(e);if(td.has(t))throw w(`invalid package name: '${e}' uses a reserved name`)},ad=e=>e.replace(`/`,`%2F`),od=e=>typeof e==`string`?e:e?.url,sd=e=>{if(typeof e==`object`&&e?.directory){let t=Ys.safeParse(e.directory);if(t.success)return t.data}},cd=async(e,t)=>{try{return await e.json()}catch{throw T(`invalid npm registry response for '${t}': not parseable JSON`)}},ld=async(e,t)=>{let n=await e(`https://registry.npmjs.org/${ad(t)}`);if(n.status===404)throw C(`npm package '${t}' not found`);if(n.status!==200)throw T(`failed to fetch npm package '${t}': status ${n.status}`);let r=await cd(n,t),i=$u.safeParse(r);if(!i.success)throw T(`invalid npm package response for '${t}'`);return i.data},ud=(e,t)=>{try{return lu(e)}catch{throw nd(t)}},dd=async(e,t)=>{id(t);let n=await ld(e,t),r=od(n.repository);if(r===void 0||r===``)throw nd(t);let{cloneUrl:i,key:a}=ud(r,t),o=sd(n.repository);return o===void 0?{cloneUrl:i,key:a}:{cloneUrl:i,directory:o,key:a}};function q(e){if(typeof e!=`object`||!e)return!1;let t=Object.getPrototypeOf(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(Symbol.toStringTag in e)&&!(Symbol.iterator in e)}const fd=(e,t)=>{let n=hd(pd(e));if(typeof n!=`string`)throw TypeError(`${t} must be a string or a file URL: ${n}.`);return n},pd=e=>md(e)?e.toString():e,md=e=>typeof e!=`string`&&e&&Object.getPrototypeOf(e)===String.prototype,hd=e=>e instanceof URL?ve(e):e,gd=(e,t=[],n={})=>{let r=fd(e,`First argument`),[i,a]=q(t)?[[],t]:[t,n];if(!Array.isArray(i))throw TypeError(`Second argument must be either an array of arguments or an options object: ${i}`);if(i.some(e=>typeof e==`object`&&!!e))throw TypeError(`Second argument must be an array of strings: ${i}`);let o=i.map(String),s=o.find(e=>e.includes(`\0`));if(s!==void 0)throw TypeError(`Arguments cannot contain null bytes ("\\0"): ${s}`);if(!q(a))throw TypeError(`Last argument must be an options object: ${a}`);return[r,o,a]},{toString:_d}=Object.prototype,vd=e=>_d.call(e)===`[object ArrayBuffer]`,J=e=>_d.call(e)===`[object Uint8Array]`,yd=e=>new Uint8Array(e.buffer,e.byteOffset,e.byteLength),bd=new TextEncoder,xd=e=>bd.encode(e),Sd=new TextDecoder,Cd=e=>Sd.decode(e),wd=(e,t)=>Td(e,t).join(``),Td=(e,t)=>{if(t===`utf8`&&e.every(e=>typeof e==`string`))return e;let n=new we(t),r=e.map(e=>typeof e==`string`?xd(e):e).map(e=>n.write(e)),i=n.end();return i===``?r:[...r,i]},Ed=e=>e.length===1&&J(e[0])?e[0]:Od(Dd(e)),Dd=e=>e.map(e=>typeof e==`string`?xd(e):e),Od=e=>{let t=new Uint8Array(kd(e)),n=0;for(let r of e)t.set(r,n),n+=r.length;return t},kd=e=>{let t=0;for(let n of e)t+=n.length;return t},Ad=e=>Array.isArray(e)&&Array.isArray(e.raw),jd=(e,t)=>{let n=[];for(let[r,i]of e.entries())n=Md({templates:e,expressions:t,tokens:n,index:r,template:i});if(n.length===0)throw TypeError(`Template script must not be empty`);let[r,...i]=n;return[r,i,{}]},Md=({templates:e,expressions:t,tokens:n,index:r,template:i})=>{if(i===void 0)throw TypeError(`Invalid backslash sequence: ${e.raw[r]}`);let{nextTokens:a,leadingWhitespaces:o,trailingWhitespaces:s}=Nd(i,e.raw[r]),c=Id(n,a,o);if(r===t.length)return c;let l=t[r],u=Array.isArray(l)?l.map(e=>Ld(e)):[Ld(l)];return Id(c,u,s)},Nd=(e,t)=>{if(t.length===0)return{nextTokens:[],leadingWhitespaces:!1,trailingWhitespaces:!1};let n=[],r=0,i=Pd.has(t[0]);for(let i=0,a=0;i<e.length;i+=1,a+=1){let o=t[a];if(Pd.has(o))r!==i&&n.push(e.slice(r,i)),r=i+1;else if(o===`\\`){let e=t[a+1];e===`
350
+ `?(--i,a+=1):e===`u`&&t[a+2]===`{`?a=t.indexOf(`}`,a+3):a+=Fd[e]??1}}let a=r===e.length;return a||n.push(e.slice(r)),{nextTokens:n,leadingWhitespaces:i,trailingWhitespaces:a}},Pd=new Set([` `,` `,`\r`,`
351
+ `]),Fd={x:3,u:5},Id=(e,t,n)=>n||e.length===0||t.length===0?[...e,...t]:[...e.slice(0,-1),`${e.at(-1)}${t[0]}`,...t.slice(1)],Ld=e=>{let t=typeof e;if(t===`string`)return e;if(t===`number`)return String(e);if(q(e)&&(`stdout`in e||`isMaxBuffer`in e))return Rd(e);throw e instanceof be||Object.prototype.toString.call(e)===`[object Promise]`?TypeError("Unexpected subprocess in template expression. Please use ${await subprocess} instead of ${subprocess}."):TypeError(`Unexpected "${t}" in template expression`)},Rd=({stdout:e})=>{if(typeof e==`string`)return e;if(J(e))return Cd(e);throw TypeError(e===void 0?`Missing result.stdout in template expression. This is probably due to the previous subprocess' "stdout" option.`:`Unexpected "${typeof e}" stdout in template expression`)},zd=e=>Bd.includes(e),Bd=[b.stdin,b.stdout,b.stderr],Y=[`stdin`,`stdout`,`stderr`],Vd=e=>Y[e]??`stdio[${e}]`,Hd=e=>{let t={...e};for(let n of ef)t[n]=Ud(e,n);return t},Ud=(e,t)=>{let n=Array.from({length:Wd(e)+1}),r=Gd(e[t],n,t);return Qd(r,t)},Wd=({stdio:e})=>Array.isArray(e)?Math.max(e.length,Y.length):Y.length,Gd=(e,t,n)=>q(e)?Kd(e,t,n):t.fill(e),Kd=(e,t,n)=>{for(let r of Object.keys(e).sort(qd))for(let i of Yd(r,n,t))t[i]=e[r];return t},qd=(e,t)=>Jd(e)<Jd(t)?1:-1,Jd=e=>e===`stdout`||e===`stderr`?0:e===`all`?2:1,Yd=(e,t,n)=>{if(e===`ipc`)return[n.length-1];let r=Xd(e);if(r===void 0||r===0)throw TypeError(`"${t}.${e}" is invalid.
352
352
  It must be "${t}.stdout", "${t}.stderr", "${t}.all", "${t}.ipc", or "${t}.fd3", "${t}.fd4" (and so on).`);if(r>=n.length)throw TypeError(`"${t}.${e}" is invalid: that file descriptor does not exist.
353
- Please set the "stdio" option to ensure that file descriptor exists.`);return r===`all`?[1,2]:[r]},Qd=e=>{if(e===`all`)return e;if(Hd.includes(e))return Hd.indexOf(e);let t=$d.exec(e);if(t!==null)return Number(t[1])},$d=/^fd(\d+)$/,ef=(e,t)=>e.map(e=>e===void 0?tf[t]:e),tf={lines:!1,buffer:!0,maxBuffer:1e3*1e3*100,verbose:De(`execa`).enabled?`full`:`none`,stripFinalNewline:!0},nf=[`lines`,`buffer`,`maxBuffer`,`verbose`,`stripFinalNewline`],rf=(e,t)=>t===`ipc`?e.at(-1):e[t],af=({verbose:e},t)=>cf(e,t)!==`none`,of=({verbose:e},t)=>![`none`,`short`].includes(cf(e,t)),sf=({verbose:e},t)=>{let n=cf(e,t);return uf(n)?n:void 0},cf=(e,t)=>t===void 0?lf(e):rf(e,t),lf=e=>e.find(e=>uf(e))??df.findLast(t=>e.includes(t)),uf=e=>typeof e==`function`,df=[`none`,`short`,`full`],ff=(e,t)=>{let n=[e,...t];return{command:n.join(` `),escapedCommand:n.map(e=>yf(mf(e))).join(` `)}},pf=e=>Ae(e).split(`
354
- `).map(e=>mf(e)).join(`
355
- `),mf=e=>e.replaceAll(gf,e=>hf(e)),hf=e=>{let t=_f[e];if(t!==void 0)return t;let n=e.codePointAt(0),r=n.toString(16);return n<=vf?`\\u${r.padStart(4,`0`)}`:`\\U${r}`},gf=(()=>{try{return RegExp(`\\p{Separator}|\\p{Other}`,`gu`)}catch{return/[\s\u0000-\u001F\u007F-\u009F\u00AD]/g}})(),_f={" ":` `,"\b":`\\b`,"\f":`\\f`,"\n":`\\n`,"\r":`\\r`," ":`\\t`},vf=65535,yf=e=>bf.test(e)?e:Pe===`win32`?`"${e.replaceAll(`"`,`""`)}"`:`'${e.replaceAll(`'`,`'\\''`)}'`,bf=/^[\w./-]+$/;function xf(){let{env:e}=b,{TERM:t,TERM_PROGRAM:n}=e;return b.platform===`win32`?!!e.WT_SESSION||!!e.TERMINUS_SUBLIME||e.ConEmuTask===`{cmd::Cmder}`||n===`Terminus-Sublime`||n===`vscode`||t===`xterm-256color`||t===`alacritty`||t===`rxvt-unicode`||t===`rxvt-unicode-256color`||e.TERMINAL_EMULATOR===`JetBrains-JediTerm`:t!==`linux`}const Sf={circleQuestionMark:`(?)`,questionMarkPrefix:`(?)`,square:`█`,squareDarkShade:`▓`,squareMediumShade:`▒`,squareLightShade:`░`,squareTop:`▀`,squareBottom:`▄`,squareLeft:`▌`,squareRight:`▐`,squareCenter:`■`,bullet:`●`,dot:`․`,ellipsis:`…`,pointerSmall:`›`,triangleUp:`▲`,triangleUpSmall:`▴`,triangleDown:`▼`,triangleDownSmall:`▾`,triangleLeftSmall:`◂`,triangleRightSmall:`▸`,home:`⌂`,heart:`♥`,musicNote:`♪`,musicNoteBeamed:`♫`,arrowUp:`↑`,arrowDown:`↓`,arrowLeft:`←`,arrowRight:`→`,arrowLeftRight:`↔`,arrowUpDown:`↕`,almostEqual:`≈`,notEqual:`≠`,lessOrEqual:`≤`,greaterOrEqual:`≥`,identical:`≡`,infinity:`∞`,subscriptZero:`₀`,subscriptOne:`₁`,subscriptTwo:`₂`,subscriptThree:`₃`,subscriptFour:`₄`,subscriptFive:`₅`,subscriptSix:`₆`,subscriptSeven:`₇`,subscriptEight:`₈`,subscriptNine:`₉`,oneHalf:`½`,oneThird:`⅓`,oneQuarter:`¼`,oneFifth:`⅕`,oneSixth:`⅙`,oneEighth:`⅛`,twoThirds:`⅔`,twoFifths:`⅖`,threeQuarters:`¾`,threeFifths:`⅗`,threeEighths:`⅜`,fourFifths:`⅘`,fiveSixths:`⅚`,fiveEighths:`⅝`,sevenEighths:`⅞`,line:`─`,lineBold:`━`,lineDouble:`═`,lineDashed0:`┄`,lineDashed1:`┅`,lineDashed2:`┈`,lineDashed3:`┉`,lineDashed4:`╌`,lineDashed5:`╍`,lineDashed6:`╴`,lineDashed7:`╶`,lineDashed8:`╸`,lineDashed9:`╺`,lineDashed10:`╼`,lineDashed11:`╾`,lineDashed12:`−`,lineDashed13:`–`,lineDashed14:`‐`,lineDashed15:`⁃`,lineVertical:`│`,lineVerticalBold:`┃`,lineVerticalDouble:`║`,lineVerticalDashed0:`┆`,lineVerticalDashed1:`┇`,lineVerticalDashed2:`┊`,lineVerticalDashed3:`┋`,lineVerticalDashed4:`╎`,lineVerticalDashed5:`╏`,lineVerticalDashed6:`╵`,lineVerticalDashed7:`╷`,lineVerticalDashed8:`╹`,lineVerticalDashed9:`╻`,lineVerticalDashed10:`╽`,lineVerticalDashed11:`╿`,lineDownLeft:`┐`,lineDownLeftArc:`╮`,lineDownBoldLeftBold:`┓`,lineDownBoldLeft:`┒`,lineDownLeftBold:`┑`,lineDownDoubleLeftDouble:`╗`,lineDownDoubleLeft:`╖`,lineDownLeftDouble:`╕`,lineDownRight:`┌`,lineDownRightArc:`╭`,lineDownBoldRightBold:`┏`,lineDownBoldRight:`┎`,lineDownRightBold:`┍`,lineDownDoubleRightDouble:`╔`,lineDownDoubleRight:`╓`,lineDownRightDouble:`╒`,lineUpLeft:`┘`,lineUpLeftArc:`╯`,lineUpBoldLeftBold:`┛`,lineUpBoldLeft:`┚`,lineUpLeftBold:`┙`,lineUpDoubleLeftDouble:`╝`,lineUpDoubleLeft:`╜`,lineUpLeftDouble:`╛`,lineUpRight:`└`,lineUpRightArc:`╰`,lineUpBoldRightBold:`┗`,lineUpBoldRight:`┖`,lineUpRightBold:`┕`,lineUpDoubleRightDouble:`╚`,lineUpDoubleRight:`╙`,lineUpRightDouble:`╘`,lineUpDownLeft:`┤`,lineUpBoldDownBoldLeftBold:`┫`,lineUpBoldDownBoldLeft:`┨`,lineUpDownLeftBold:`┥`,lineUpBoldDownLeftBold:`┩`,lineUpDownBoldLeftBold:`┪`,lineUpDownBoldLeft:`┧`,lineUpBoldDownLeft:`┦`,lineUpDoubleDownDoubleLeftDouble:`╣`,lineUpDoubleDownDoubleLeft:`╢`,lineUpDownLeftDouble:`╡`,lineUpDownRight:`├`,lineUpBoldDownBoldRightBold:`┣`,lineUpBoldDownBoldRight:`┠`,lineUpDownRightBold:`┝`,lineUpBoldDownRightBold:`┡`,lineUpDownBoldRightBold:`┢`,lineUpDownBoldRight:`┟`,lineUpBoldDownRight:`┞`,lineUpDoubleDownDoubleRightDouble:`╠`,lineUpDoubleDownDoubleRight:`╟`,lineUpDownRightDouble:`╞`,lineDownLeftRight:`┬`,lineDownBoldLeftBoldRightBold:`┳`,lineDownLeftBoldRightBold:`┯`,lineDownBoldLeftRight:`┰`,lineDownBoldLeftBoldRight:`┱`,lineDownBoldLeftRightBold:`┲`,lineDownLeftRightBold:`┮`,lineDownLeftBoldRight:`┭`,lineDownDoubleLeftDoubleRightDouble:`╦`,lineDownDoubleLeftRight:`╥`,lineDownLeftDoubleRightDouble:`╤`,lineUpLeftRight:`┴`,lineUpBoldLeftBoldRightBold:`┻`,lineUpLeftBoldRightBold:`┷`,lineUpBoldLeftRight:`┸`,lineUpBoldLeftBoldRight:`┹`,lineUpBoldLeftRightBold:`┺`,lineUpLeftRightBold:`┶`,lineUpLeftBoldRight:`┵`,lineUpDoubleLeftDoubleRightDouble:`╩`,lineUpDoubleLeftRight:`╨`,lineUpLeftDoubleRightDouble:`╧`,lineUpDownLeftRight:`┼`,lineUpBoldDownBoldLeftBoldRightBold:`╋`,lineUpDownBoldLeftBoldRightBold:`╈`,lineUpBoldDownLeftBoldRightBold:`╇`,lineUpBoldDownBoldLeftRightBold:`╊`,lineUpBoldDownBoldLeftBoldRight:`╉`,lineUpBoldDownLeftRight:`╀`,lineUpDownBoldLeftRight:`╁`,lineUpDownLeftBoldRight:`┽`,lineUpDownLeftRightBold:`┾`,lineUpBoldDownBoldLeftRight:`╂`,lineUpDownLeftBoldRightBold:`┿`,lineUpBoldDownLeftBoldRight:`╃`,lineUpBoldDownLeftRightBold:`╄`,lineUpDownBoldLeftBoldRight:`╅`,lineUpDownBoldLeftRightBold:`╆`,lineUpDoubleDownDoubleLeftDoubleRightDouble:`╬`,lineUpDoubleDownDoubleLeftRight:`╫`,lineUpDownLeftDoubleRightDouble:`╪`,lineCross:`╳`,lineBackslash:`╲`,lineSlash:`╱`},Cf={tick:`✔`,info:`ℹ`,warning:`⚠`,cross:`✘`,squareSmall:`◻`,squareSmallFilled:`◼`,circle:`◯`,circleFilled:`◉`,circleDotted:`◌`,circleDouble:`◎`,circleCircle:`ⓞ`,circleCross:`ⓧ`,circlePipe:`Ⓘ`,radioOn:`◉`,radioOff:`◯`,checkboxOn:`☒`,checkboxOff:`☐`,checkboxCircleOn:`ⓧ`,checkboxCircleOff:`Ⓘ`,pointer:`❯`,triangleUpOutline:`△`,triangleLeft:`◀`,triangleRight:`▶`,lozenge:`◆`,lozengeOutline:`◇`,hamburger:`☰`,smiley:`㋡`,mustache:`෴`,star:`★`,play:`▶`,nodejs:`⬢`,oneSeventh:`⅐`,oneNinth:`⅑`,oneTenth:`⅒`},wf={tick:`√`,info:`i`,warning:`‼`,cross:`×`,squareSmall:`□`,squareSmallFilled:`■`,circle:`( )`,circleFilled:`(*)`,circleDotted:`( )`,circleDouble:`( )`,circleCircle:`(○)`,circleCross:`(×)`,circlePipe:`(│)`,radioOn:`(*)`,radioOff:`( )`,checkboxOn:`[×]`,checkboxOff:`[ ]`,checkboxCircleOn:`(×)`,checkboxCircleOff:`( )`,pointer:`>`,triangleUpOutline:`∆`,triangleLeft:`◄`,triangleRight:`►`,lozenge:`♦`,lozengeOutline:`◊`,hamburger:`≡`,smiley:`☺`,mustache:`┌─┐`,star:`✶`,play:`►`,nodejs:`♦`,oneSeventh:`1/7`,oneNinth:`1/9`,oneTenth:`1/10`},Tf={...Sf,...Cf},Ef={...Sf,...wf},Df=xf()?Tf:Ef;Object.entries(Cf);const Of=Fe?.WriteStream?.prototype?.hasColors?.()??!1,J=(e,t)=>{if(!Of)return e=>e;let n=`\u001B[${e}m`,r=`\u001B[${t}m`;return e=>{let i=e+``,a=i.indexOf(r);if(a===-1)return n+i+r;let o=n,s=0,c=(t===22?r:``)+n;for(;a!==-1;)o+=i.slice(s,a)+c,s=a+r.length,a=i.indexOf(r,s);return o+=i.slice(s)+r,o}};J(0,0);const kf=J(1,22);J(2,22),J(3,23),J(4,24),J(53,55),J(7,27),J(8,28),J(9,29),J(30,39),J(31,39),J(32,39),J(33,39),J(34,39),J(35,39),J(36,39),J(37,39);const Af=J(90,39);J(40,49),J(41,49),J(42,49),J(43,49),J(44,49),J(45,49),J(46,49),J(47,49),J(100,49);const jf=J(91,39);J(92,39);const Mf=J(93,39);J(94,39),J(95,39),J(96,39),J(97,39),J(101,49),J(102,49),J(103,49),J(104,49),J(105,49),J(106,49),J(107,49);const Nf=({type:e,message:t,timestamp:n,piped:r,commandId:i,result:{failed:a=!1}={},options:{reject:o=!0}})=>{let s=Pf(n),c=Lf[e]({failed:a,reject:o,piped:r}),l=zf[e]({reject:o});return`${Af(`[${s}]`)} ${Af(`[${i}]`)} ${l(c)} ${l(t)}`},Pf=e=>`${Ff(e.getHours(),2)}:${Ff(e.getMinutes(),2)}:${Ff(e.getSeconds(),2)}.${Ff(e.getMilliseconds(),3)}`,Ff=(e,t)=>String(e).padStart(t,`0`),If=({failed:e,reject:t})=>e?t?Df.cross:Df.warning:Df.tick,Lf={command:({piped:e})=>e?`|`:`$`,output:()=>` `,ipc:()=>`*`,error:If,duration:If},Rf=e=>e,zf={command:()=>kf,output:()=>Rf,ipc:()=>Rf,error:({reject:e})=>e?jf:Mf,duration:()=>Af},Bf=(e,t,n)=>{let r=sf(t,n);return e.map(({verboseLine:e,verboseObject:t})=>Vf(e,t,r)).filter(e=>e!==void 0).map(e=>Hf(e)).join(``)},Vf=(e,t,n)=>{if(n===void 0)return e;let r=n(e,t);if(typeof r==`string`)return r},Hf=e=>e.endsWith(`
356
- `)?e:`${e}\n`,Uf=({type:e,verboseMessage:t,fdNumber:n,verboseInfo:r,result:i})=>{let a=Wf({type:e,result:i,verboseInfo:r}),o=Bf(Gf(t,a),r,n);o!==``&&console.warn(o.slice(0,-1))},Wf=({type:e,result:t,verboseInfo:{escapedCommand:n,commandId:r,rawOptions:{piped:i=!1,...a}}})=>({type:e,escapedCommand:n,commandId:`${r}`,timestamp:new Date,piped:i,result:t,options:a}),Gf=(e,t)=>e.split(`
357
- `).map(e=>Kf({...t,message:e})),Kf=e=>({verboseLine:Nf(e),verboseObject:e}),qf=e=>pf(typeof e==`string`?e:Oe(e)).replaceAll(` `,` `.repeat(Jf)),Jf=2,Yf=(e,t)=>{af(t)&&Uf({type:`command`,verboseMessage:e,verboseInfo:t})},Xf=(e,t,n)=>($f(e),{verbose:e,escapedCommand:t,commandId:Zf(e),rawOptions:n}),Zf=e=>af({verbose:e})?Qf++:void 0;let Qf=0n;const $f=e=>{for(let t of e){if(t===!1)throw TypeError(`The "verbose: false" option was renamed to "verbose: 'none'".`);if(t===!0)throw TypeError(`The "verbose: true" option was renamed to "verbose: 'short'".`);if(!df.includes(t)&&!uf(t)){let e=df.map(e=>`'${e}'`).join(`, `);throw TypeError(`The "verbose" option must not be ${t}. Allowed values are: ${e} or a function.`)}}},ep=()=>Ne.bigint(),tp=e=>Number(Ne.bigint()-e)/1e6,np=(e,t,n)=>{let r=ep(),{command:i,escapedCommand:a}=ff(e,t),o=Xf(Gd(n,`verbose`),a,{...n});return Yf(a,o),{command:i,escapedCommand:a,startTime:r,verboseInfo:o}};var rp=S(((e,t)=>{t.exports=a,a.sync=o;var n=rt(`fs`);function r(e,t){var n=t.pathExt===void 0?process.env.PATHEXT:t.pathExt;if(!n||(n=n.split(`;`),n.indexOf(``)!==-1))return!0;for(var r=0;r<n.length;r++){var i=n[r].toLowerCase();if(i&&e.substr(-i.length).toLowerCase()===i)return!0}return!1}function i(e,t,n){return!e.isSymbolicLink()&&!e.isFile()?!1:r(t,n)}function a(e,t,r){n.stat(e,function(n,a){r(n,n?!1:i(a,e,t))})}function o(e,t){return i(n.statSync(e),e,t)}})),ip=S(((e,t)=>{t.exports=r,r.sync=i;var n=rt(`fs`);function r(e,t,r){n.stat(e,function(e,n){r(e,e?!1:a(n,t))})}function i(e,t){return a(n.statSync(e),t)}function a(e,t){return e.isFile()&&o(e,t)}function o(e,t){var n=e.mode,r=e.uid,i=e.gid,a=t.uid===void 0?process.getuid&&process.getuid():t.uid,o=t.gid===void 0?process.getgid&&process.getgid():t.gid,s=64,c=8,l=1,u=s|c;return n&l||n&c&&i===o||n&s&&r===a||n&u&&a===0}})),ap=S(((e,t)=>{rt(`fs`);var n=process.platform===`win32`||global.TESTING_WINDOWS?rp():ip();t.exports=r,r.sync=i;function r(e,t,i){if(typeof t==`function`&&(i=t,t={}),!i){if(typeof Promise!=`function`)throw TypeError(`callback not provided`);return new Promise(function(n,i){r(e,t||{},function(e,t){e?i(e):n(t)})})}n(e,t||{},function(e,n){e&&(e.code===`EACCES`||t&&t.ignoreErrors)&&(e=null,n=!1),i(e,n)})}function i(e,t){try{return n.sync(e,t||{})}catch(e){if(t&&t.ignoreErrors||e.code===`EACCES`)return!1;throw e}}})),op=S(((e,t)=>{let n=process.platform===`win32`||process.env.OSTYPE===`cygwin`||process.env.OSTYPE===`msys`,r=rt(`path`),i=n?`;`:`:`,a=ap(),o=e=>Object.assign(Error(`not found: ${e}`),{code:`ENOENT`}),s=(e,t)=>{let r=t.colon||i,a=e.match(/\//)||n&&e.match(/\\/)?[``]:[...n?[process.cwd()]:[],...(t.path||process.env.PATH||``).split(r)],o=n?t.pathExt||process.env.PATHEXT||`.EXE;.CMD;.BAT;.COM`:``,s=n?o.split(r):[``];return n&&e.indexOf(`.`)!==-1&&s[0]!==``&&s.unshift(``),{pathEnv:a,pathExt:s,pathExtExe:o}},c=(e,t,n)=>{typeof t==`function`&&(n=t,t={}),t||={};let{pathEnv:i,pathExt:c,pathExtExe:l}=s(e,t),u=[],d=n=>new Promise((a,s)=>{if(n===i.length)return t.all&&u.length?a(u):s(o(e));let c=i[n],l=/^".*"$/.test(c)?c.slice(1,-1):c,d=r.join(l,e),p=!l&&/^\.[\\\/]/.test(e)?e.slice(0,2)+d:d;a(f(p,n,0))}),f=(e,n,r)=>new Promise((i,o)=>{if(r===c.length)return i(d(n+1));let s=c[r];a(e+s,{pathExt:l},(a,o)=>{if(!a&&o)if(t.all)u.push(e+s);else return i(e+s);return i(f(e,n,r+1))})});return n?d(0).then(e=>n(null,e),n):d(0)};t.exports=c,c.sync=(e,t)=>{t||={};let{pathEnv:n,pathExt:i,pathExtExe:c}=s(e,t),l=[];for(let o=0;o<n.length;o++){let s=n[o],u=/^".*"$/.test(s)?s.slice(1,-1):s,d=r.join(u,e),f=!u&&/^\.[\\\/]/.test(e)?e.slice(0,2)+d:d;for(let e=0;e<i.length;e++){let n=f+i[e];try{if(a.sync(n,{pathExt:c}))if(t.all)l.push(n);else return n}catch{}}}if(t.all&&l.length)return l;if(t.nothrow)return null;throw o(e)}})),sp=S(((e,t)=>{let n=(e={})=>{let t=e.env||process.env;return(e.platform||process.platform)===`win32`?Object.keys(t).reverse().find(e=>e.toUpperCase()===`PATH`)||`Path`:`PATH`};t.exports=n,t.exports.default=n})),cp=S(((e,t)=>{let n=rt(`path`),r=op(),i=sp();function a(e,t){let a=e.options.env||process.env,o=process.cwd(),s=e.options.cwd!=null,c=s&&process.chdir!==void 0&&!process.chdir.disabled;if(c)try{process.chdir(e.options.cwd)}catch{}let l;try{l=r.sync(e.command,{path:a[i({env:a})],pathExt:t?n.delimiter:void 0})}catch{}finally{c&&process.chdir(o)}return l&&=n.resolve(s?e.options.cwd:``,l),l}function o(e){return a(e)||a(e,!0)}t.exports=o})),lp=S(((e,t)=>{let n=/([()\][%!^"`<>&|;, *?])/g;function r(e){return e=e.replace(n,`^$1`),e}function i(e,t){return e=`${e}`,e=e.replace(/(?=(\\+?)?)\1"/g,`$1$1\\"`),e=e.replace(/(?=(\\+?)?)\1$/,`$1$1`),e=`"${e}"`,e=e.replace(n,`^$1`),t&&(e=e.replace(n,`^$1`)),e}t.exports.command=r,t.exports.argument=i})),up=S(((e,t)=>{t.exports=/^#!(.*)/})),dp=S(((e,t)=>{let n=up();t.exports=(e=``)=>{let t=e.match(n);if(!t)return null;let[r,i]=t[0].replace(/#! ?/,``).split(` `),a=r.split(`/`).pop();return a===`env`?i:i?`${a} ${i}`:a}})),fp=S(((e,t)=>{let n=rt(`fs`),r=dp();function i(e){let t=Buffer.alloc(150),i;try{i=n.openSync(e,`r`),n.readSync(i,t,0,150,0),n.closeSync(i)}catch{}return r(t.toString())}t.exports=i})),pp=S(((e,t)=>{let n=rt(`path`),r=cp(),i=lp(),a=fp(),o=process.platform===`win32`,s=/\.(?:com|exe)$/i,c=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function l(e){e.file=r(e);let t=e.file&&a(e.file);return t?(e.args.unshift(e.file),e.command=t,r(e)):e.file}function u(e){if(!o)return e;let t=l(e),r=!s.test(t);if(e.options.forceShell||r){let r=c.test(t);e.command=n.normalize(e.command),e.command=i.command(e.command),e.args=e.args.map(e=>i.argument(e,r)),e.args=[`/d`,`/s`,`/c`,`"${[e.command].concat(e.args).join(` `)}"`],e.command=process.env.comspec||`cmd.exe`,e.options.windowsVerbatimArguments=!0}return e}function d(e,t,n){t&&!Array.isArray(t)&&(n=t,t=null),t=t?t.slice(0):[],n=Object.assign({},n);let r={command:e,args:t,options:n,file:void 0,original:{command:e,args:t}};return n.shell?r:u(r)}t.exports=d})),mp=S(((e,t)=>{let n=process.platform===`win32`;function r(e,t){return Object.assign(Error(`${t} ${e.command} ENOENT`),{code:`ENOENT`,errno:`ENOENT`,syscall:`${t} ${e.command}`,path:e.command,spawnargs:e.args})}function i(e,t){if(!n)return;let r=e.emit;e.emit=function(n,i){if(n===`exit`){let n=a(i,t);if(n)return r.call(e,`error`,n)}return r.apply(e,arguments)}}function a(e,t){return n&&e===1&&!t.file?r(t.original,`spawn`):null}function o(e,t){return n&&e===1&&!t.file?r(t.original,`spawnSync`):null}t.exports={hookChildProcess:i,verifyENOENT:a,verifyENOENTSync:o,notFoundError:r}})),hp=nt(S(((e,t)=>{let n=rt(`child_process`),r=pp(),i=mp();function a(e,t,a){let o=r(e,t,a),s=n.spawn(o.command,o.args,o.options);return i.hookChildProcess(s,o),s}function o(e,t,a){let o=r(e,t,a),s=n.spawnSync(o.command,o.args,o.options);return s.error=s.error||i.verifyENOENTSync(s.status,o),s}t.exports=a,t.exports.spawn=a,t.exports.sync=o,t.exports._parse=r,t.exports._enoent=i}))(),1);function gp(e={}){let{env:t=process.env,platform:n=process.platform}=e;return n===`win32`?Object.keys(t).reverse().find(e=>e.toUpperCase()===`PATH`)||`Path`:`PATH`}ke(xe);function _p(e){return e instanceof URL?ve(e):e}function vp(e){return{*[Symbol.iterator](){let t=h.resolve(_p(e)),n;for(;n!==t;)yield t,n=t,t=h.resolve(t,`..`)}}}const yp=({cwd:e=b.cwd(),path:t=b.env[gp()],preferLocal:n=!0,execPath:r=b.execPath,addExecPath:i=!0}={})=>{let a=h.resolve(_p(e)),o=[],s=t.split(h.delimiter);return n&&bp(o,s,a),i&&xp(o,s,r,a),t===``||t===h.delimiter?`${o.join(h.delimiter)}${t}`:[...o,t].join(h.delimiter)},bp=(e,t,n)=>{for(let r of vp(n)){let n=h.join(r,`node_modules/.bin`);t.includes(n)||e.push(n)}},xp=(e,t,n,r)=>{let i=h.resolve(r,_p(n),`..`);t.includes(i)||e.push(i)},Sp=({env:e=b.env,...t}={})=>{e={...e};let n=gp({env:e});return t.path=e[n],e[n]=yp(t),e},Cp=(e,t,n)=>new(n?Ap:kp)(t,e instanceof wp?{}:{cause:e});var wp=class extends Error{};const Tp=(e,t)=>{Object.defineProperty(e.prototype,"name",{value:t,writable:!0,enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,Dp,{value:!0,writable:!1,enumerable:!1,configurable:!1})},Ep=e=>Op(e)&&Dp in e,Dp=Symbol(`isExecaError`),Op=e=>Object.prototype.toString.call(e)===`[object Error]`;var kp=class extends Error{};Tp(kp,kp.name);var Ap=class extends Error{};Tp(Ap,Ap.name);const jp=()=>{let e=64-Np+1;return Array.from({length:e},Mp)},Mp=(e,t)=>({name:`SIGRT${t+1}`,number:Np+t,action:`terminate`,description:`Application-specific signal (realtime)`,standard:`posix`}),Np=34,Pp=[{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`}],Fp=()=>{let e=jp();return[...Pp,...e].map(Ip)},Ip=({name:e,number:t,description:n,action:r,forced:i=!1,standard:a})=>{let{signals:{[e]:o}}=pe,s=o!==void 0;return{name:e,number:s?o:t,description:n,supported:s,action:r,forced:i,standard:a}},Lp=()=>{let e=Fp();return Object.fromEntries(e.map(Rp))},Rp=({name:e,number:t,description:n,supported:r,action:i,forced:a,standard:o})=>[e,{name:e,number:t,description:n,supported:r,action:i,forced:a,standard:o}],zp=Lp(),Bp=()=>{let e=Fp(),t=Array.from({length:65},(t,n)=>Vp(n,e));return Object.assign({},...t)},Vp=(e,t)=>{let n=Hp(e,t);if(n===void 0)return{};let{name:r,description:i,supported:a,action:o,forced:s,standard:c}=n;return{[e]:{name:r,number:e,description:i,supported:a,action:o,forced:s,standard:c}}},Hp=(e,t)=>{let n=t.find(({name:t})=>pe.signals[t]===e);return n===void 0?t.find(t=>t.number===e):n};Bp();const Up=e=>{let t="option `killSignal`";if(e===0)throw TypeError(`Invalid ${t}: 0 cannot be used.`);return Gp(e,t)},Wp=e=>e===0?e:Gp(e,"`subprocess.kill()`'s argument"),Gp=(e,t)=>{if(Number.isInteger(e))return Kp(e,t);if(typeof e==`string`)return Jp(e,t);throw TypeError(`Invalid ${t} ${String(e)}: it must be a string or an integer.\n${Yp()}`)},Kp=(e,t)=>{if(qp.has(e))return qp.get(e);throw TypeError(`Invalid ${t} ${e}: this signal integer does not exist.\n${Yp()}`)},qp=new Map(Object.entries(pe.signals).reverse().map(([e,t])=>[t,e])),Jp=(e,t)=>{if(e in pe.signals)return e;throw e.toUpperCase()in pe.signals?TypeError(`Invalid ${t} '${e}': please rename it to '${e.toUpperCase()}'.`):TypeError(`Invalid ${t} '${e}': this signal name does not exist.\n${Yp()}`)},Yp=()=>`Available signal names: ${Xp()}.
358
- Available signal numbers: ${Zp()}.`,Xp=()=>Object.keys(pe.signals).sort().map(e=>`'${e}'`).join(`, `),Zp=()=>[...new Set(Object.values(pe.signals).sort((e,t)=>e-t))].join(`, `),Qp=e=>zp[e].description,$p=e=>{if(e===!1)return e;if(e===!0)return em;if(!Number.isFinite(e)||e<0)throw TypeError(`Expected the \`forceKillAfterDelay\` option to be a non-negative integer, got \`${e}\` (${typeof e})`);return e},em=1e3*5,tm=({kill:e,options:{forceKillAfterDelay:t,killSignal:n},onInternalError:r,context:i,controller:a},o,s)=>{let{signal:c,error:l}=nm(o,s,n);rm(l,r);let u=e(c);return im({kill:e,signal:c,forceKillAfterDelay:t,killSignal:n,killResult:u,context:i,controller:a}),u},nm=(e,t,n)=>{let[r=n,i]=Op(e)?[void 0,e]:[e,t];if(typeof r!=`string`&&!Number.isInteger(r))throw TypeError(`The first argument must be an error instance or a signal name string/integer: ${String(r)}`);if(i!==void 0&&!Op(i))throw TypeError(`The second argument is optional. If specified, it must be an error instance: ${i}`);return{signal:Wp(r),error:i}},rm=(e,t)=>{e!==void 0&&t.reject(e)},im=async({kill:e,signal:t,forceKillAfterDelay:n,killSignal:r,killResult:i,context:a,controller:o})=>{t===r&&i&&am({kill:e,forceKillAfterDelay:n,context:a,controllerSignal:o.signal})},am=async({kill:e,forceKillAfterDelay:t,context:n,controllerSignal:r})=>{if(t!==!1)try{await _e(t,void 0,{signal:r}),e(`SIGKILL`)&&(n.isForcefullyTerminated??=!0)}catch{}},om=async(e,t)=>{e.aborted||await x(e,`abort`,{signal:t})},sm=({cancelSignal:e})=>{if(e!==void 0&&Object.prototype.toString.call(e)!==`[object AbortSignal]`)throw Error(`The \`cancelSignal\` option must be an AbortSignal: ${String(e)}`)},cm=({subprocess:e,cancelSignal:t,gracefulCancel:n,context:r,controller:i})=>t===void 0||n?[]:[lm(e,t,r,i)],lm=async(e,t,n,{signal:r})=>{throw await om(t,r),n.terminationReason??=`cancel`,e.kill(),t.reason},um=({methodName:e,isSubprocess:t,ipc:n,isConnected:r})=>{dm(e,t,n),fm(e,t,r)},dm=(e,t,n)=>{if(!n)throw Error(`${Y(e,t)} can only be used if the \`ipc\` option is \`true\`.`)},fm=(e,t,n)=>{if(!n)throw Error(`${Y(e,t)} cannot be used: the ${Em(t)} has already exited or disconnected.`)},pm=e=>{throw Error(`${Y(`getOneMessage`,e)} could not complete: the ${Em(e)} exited or disconnected.`)},mm=e=>{throw Error(`${Y(`sendMessage`,e)} failed: the ${Em(e)} is sending a message too, instead of listening to incoming messages.
353
+ Please set the "stdio" option to ensure that file descriptor exists.`);return r===`all`?[1,2]:[r]},Xd=e=>{if(e===`all`)return e;if(Y.includes(e))return Y.indexOf(e);let t=Zd.exec(e);if(t!==null)return Number(t[1])},Zd=/^fd(\d+)$/,Qd=(e,t)=>e.map(e=>e===void 0?$d[t]:e),$d={lines:!1,buffer:!0,maxBuffer:1e3*1e3*100,verbose:De(`execa`).enabled?`full`:`none`,stripFinalNewline:!0},ef=[`lines`,`buffer`,`maxBuffer`,`verbose`,`stripFinalNewline`],tf=(e,t)=>t===`ipc`?e.at(-1):e[t],nf=({verbose:e},t)=>of(e,t)!==`none`,rf=({verbose:e},t)=>![`none`,`short`].includes(of(e,t)),af=({verbose:e},t)=>{let n=of(e,t);return cf(n)?n:void 0},of=(e,t)=>t===void 0?sf(e):tf(e,t),sf=e=>e.find(e=>cf(e))??lf.findLast(t=>e.includes(t)),cf=e=>typeof e==`function`,lf=[`none`,`short`,`full`],uf=(e,t)=>{let n=[e,...t];return{command:n.join(` `),escapedCommand:n.map(e=>_f(ff(e))).join(` `)}},df=e=>Ae(e).split(`
354
+ `).map(e=>ff(e)).join(`
355
+ `),ff=e=>e.replaceAll(mf,e=>pf(e)),pf=e=>{let t=hf[e];if(t!==void 0)return t;let n=e.codePointAt(0),r=n.toString(16);return n<=gf?`\\u${r.padStart(4,`0`)}`:`\\U${r}`},mf=(()=>{try{return RegExp(`\\p{Separator}|\\p{Other}`,`gu`)}catch{return/[\s\u0000-\u001F\u007F-\u009F\u00AD]/g}})(),hf={" ":` `,"\b":`\\b`,"\f":`\\f`,"\n":`\\n`,"\r":`\\r`," ":`\\t`},gf=65535,_f=e=>vf.test(e)?e:Pe===`win32`?`"${e.replaceAll(`"`,`""`)}"`:`'${e.replaceAll(`'`,`'\\''`)}'`,vf=/^[\w./-]+$/;function yf(){let{env:e}=b,{TERM:t,TERM_PROGRAM:n}=e;return b.platform===`win32`?!!e.WT_SESSION||!!e.TERMINUS_SUBLIME||e.ConEmuTask===`{cmd::Cmder}`||n===`Terminus-Sublime`||n===`vscode`||t===`xterm-256color`||t===`alacritty`||t===`rxvt-unicode`||t===`rxvt-unicode-256color`||e.TERMINAL_EMULATOR===`JetBrains-JediTerm`:t!==`linux`}const bf={circleQuestionMark:`(?)`,questionMarkPrefix:`(?)`,square:`█`,squareDarkShade:`▓`,squareMediumShade:`▒`,squareLightShade:`░`,squareTop:`▀`,squareBottom:`▄`,squareLeft:`▌`,squareRight:`▐`,squareCenter:`■`,bullet:`●`,dot:`․`,ellipsis:`…`,pointerSmall:`›`,triangleUp:`▲`,triangleUpSmall:`▴`,triangleDown:`▼`,triangleDownSmall:`▾`,triangleLeftSmall:`◂`,triangleRightSmall:`▸`,home:`⌂`,heart:`♥`,musicNote:`♪`,musicNoteBeamed:`♫`,arrowUp:`↑`,arrowDown:`↓`,arrowLeft:`←`,arrowRight:`→`,arrowLeftRight:`↔`,arrowUpDown:`↕`,almostEqual:`≈`,notEqual:`≠`,lessOrEqual:`≤`,greaterOrEqual:`≥`,identical:`≡`,infinity:`∞`,subscriptZero:`₀`,subscriptOne:`₁`,subscriptTwo:`₂`,subscriptThree:`₃`,subscriptFour:`₄`,subscriptFive:`₅`,subscriptSix:`₆`,subscriptSeven:`₇`,subscriptEight:`₈`,subscriptNine:`₉`,oneHalf:`½`,oneThird:`⅓`,oneQuarter:`¼`,oneFifth:`⅕`,oneSixth:`⅙`,oneEighth:`⅛`,twoThirds:`⅔`,twoFifths:`⅖`,threeQuarters:`¾`,threeFifths:`⅗`,threeEighths:`⅜`,fourFifths:`⅘`,fiveSixths:`⅚`,fiveEighths:`⅝`,sevenEighths:`⅞`,line:`─`,lineBold:`━`,lineDouble:`═`,lineDashed0:`┄`,lineDashed1:`┅`,lineDashed2:`┈`,lineDashed3:`┉`,lineDashed4:`╌`,lineDashed5:`╍`,lineDashed6:`╴`,lineDashed7:`╶`,lineDashed8:`╸`,lineDashed9:`╺`,lineDashed10:`╼`,lineDashed11:`╾`,lineDashed12:`−`,lineDashed13:`–`,lineDashed14:`‐`,lineDashed15:`⁃`,lineVertical:`│`,lineVerticalBold:`┃`,lineVerticalDouble:`║`,lineVerticalDashed0:`┆`,lineVerticalDashed1:`┇`,lineVerticalDashed2:`┊`,lineVerticalDashed3:`┋`,lineVerticalDashed4:`╎`,lineVerticalDashed5:`╏`,lineVerticalDashed6:`╵`,lineVerticalDashed7:`╷`,lineVerticalDashed8:`╹`,lineVerticalDashed9:`╻`,lineVerticalDashed10:`╽`,lineVerticalDashed11:`╿`,lineDownLeft:`┐`,lineDownLeftArc:`╮`,lineDownBoldLeftBold:`┓`,lineDownBoldLeft:`┒`,lineDownLeftBold:`┑`,lineDownDoubleLeftDouble:`╗`,lineDownDoubleLeft:`╖`,lineDownLeftDouble:`╕`,lineDownRight:`┌`,lineDownRightArc:`╭`,lineDownBoldRightBold:`┏`,lineDownBoldRight:`┎`,lineDownRightBold:`┍`,lineDownDoubleRightDouble:`╔`,lineDownDoubleRight:`╓`,lineDownRightDouble:`╒`,lineUpLeft:`┘`,lineUpLeftArc:`╯`,lineUpBoldLeftBold:`┛`,lineUpBoldLeft:`┚`,lineUpLeftBold:`┙`,lineUpDoubleLeftDouble:`╝`,lineUpDoubleLeft:`╜`,lineUpLeftDouble:`╛`,lineUpRight:`└`,lineUpRightArc:`╰`,lineUpBoldRightBold:`┗`,lineUpBoldRight:`┖`,lineUpRightBold:`┕`,lineUpDoubleRightDouble:`╚`,lineUpDoubleRight:`╙`,lineUpRightDouble:`╘`,lineUpDownLeft:`┤`,lineUpBoldDownBoldLeftBold:`┫`,lineUpBoldDownBoldLeft:`┨`,lineUpDownLeftBold:`┥`,lineUpBoldDownLeftBold:`┩`,lineUpDownBoldLeftBold:`┪`,lineUpDownBoldLeft:`┧`,lineUpBoldDownLeft:`┦`,lineUpDoubleDownDoubleLeftDouble:`╣`,lineUpDoubleDownDoubleLeft:`╢`,lineUpDownLeftDouble:`╡`,lineUpDownRight:`├`,lineUpBoldDownBoldRightBold:`┣`,lineUpBoldDownBoldRight:`┠`,lineUpDownRightBold:`┝`,lineUpBoldDownRightBold:`┡`,lineUpDownBoldRightBold:`┢`,lineUpDownBoldRight:`┟`,lineUpBoldDownRight:`┞`,lineUpDoubleDownDoubleRightDouble:`╠`,lineUpDoubleDownDoubleRight:`╟`,lineUpDownRightDouble:`╞`,lineDownLeftRight:`┬`,lineDownBoldLeftBoldRightBold:`┳`,lineDownLeftBoldRightBold:`┯`,lineDownBoldLeftRight:`┰`,lineDownBoldLeftBoldRight:`┱`,lineDownBoldLeftRightBold:`┲`,lineDownLeftRightBold:`┮`,lineDownLeftBoldRight:`┭`,lineDownDoubleLeftDoubleRightDouble:`╦`,lineDownDoubleLeftRight:`╥`,lineDownLeftDoubleRightDouble:`╤`,lineUpLeftRight:`┴`,lineUpBoldLeftBoldRightBold:`┻`,lineUpLeftBoldRightBold:`┷`,lineUpBoldLeftRight:`┸`,lineUpBoldLeftBoldRight:`┹`,lineUpBoldLeftRightBold:`┺`,lineUpLeftRightBold:`┶`,lineUpLeftBoldRight:`┵`,lineUpDoubleLeftDoubleRightDouble:`╩`,lineUpDoubleLeftRight:`╨`,lineUpLeftDoubleRightDouble:`╧`,lineUpDownLeftRight:`┼`,lineUpBoldDownBoldLeftBoldRightBold:`╋`,lineUpDownBoldLeftBoldRightBold:`╈`,lineUpBoldDownLeftBoldRightBold:`╇`,lineUpBoldDownBoldLeftRightBold:`╊`,lineUpBoldDownBoldLeftBoldRight:`╉`,lineUpBoldDownLeftRight:`╀`,lineUpDownBoldLeftRight:`╁`,lineUpDownLeftBoldRight:`┽`,lineUpDownLeftRightBold:`┾`,lineUpBoldDownBoldLeftRight:`╂`,lineUpDownLeftBoldRightBold:`┿`,lineUpBoldDownLeftBoldRight:`╃`,lineUpBoldDownLeftRightBold:`╄`,lineUpDownBoldLeftBoldRight:`╅`,lineUpDownBoldLeftRightBold:`╆`,lineUpDoubleDownDoubleLeftDoubleRightDouble:`╬`,lineUpDoubleDownDoubleLeftRight:`╫`,lineUpDownLeftDoubleRightDouble:`╪`,lineCross:`╳`,lineBackslash:`╲`,lineSlash:`╱`},xf={tick:`✔`,info:`ℹ`,warning:`⚠`,cross:`✘`,squareSmall:`◻`,squareSmallFilled:`◼`,circle:`◯`,circleFilled:`◉`,circleDotted:`◌`,circleDouble:`◎`,circleCircle:`ⓞ`,circleCross:`ⓧ`,circlePipe:`Ⓘ`,radioOn:`◉`,radioOff:`◯`,checkboxOn:`☒`,checkboxOff:`☐`,checkboxCircleOn:`ⓧ`,checkboxCircleOff:`Ⓘ`,pointer:`❯`,triangleUpOutline:`△`,triangleLeft:`◀`,triangleRight:`▶`,lozenge:`◆`,lozengeOutline:`◇`,hamburger:`☰`,smiley:`㋡`,mustache:`෴`,star:`★`,play:`▶`,nodejs:`⬢`,oneSeventh:`⅐`,oneNinth:`⅑`,oneTenth:`⅒`},Sf={tick:`√`,info:`i`,warning:`‼`,cross:`×`,squareSmall:`□`,squareSmallFilled:`■`,circle:`( )`,circleFilled:`(*)`,circleDotted:`( )`,circleDouble:`( )`,circleCircle:`(○)`,circleCross:`(×)`,circlePipe:`(│)`,radioOn:`(*)`,radioOff:`( )`,checkboxOn:`[×]`,checkboxOff:`[ ]`,checkboxCircleOn:`(×)`,checkboxCircleOff:`( )`,pointer:`>`,triangleUpOutline:`∆`,triangleLeft:`◄`,triangleRight:`►`,lozenge:`♦`,lozengeOutline:`◊`,hamburger:`≡`,smiley:`☺`,mustache:`┌─┐`,star:`✶`,play:`►`,nodejs:`♦`,oneSeventh:`1/7`,oneNinth:`1/9`,oneTenth:`1/10`},Cf={...bf,...xf},wf={...bf,...Sf},Tf=yf()?Cf:wf;Object.entries(xf);const Ef=Fe?.WriteStream?.prototype?.hasColors?.()??!1,X=(e,t)=>{if(!Ef)return e=>e;let n=`\u001B[${e}m`,r=`\u001B[${t}m`;return e=>{let i=e+``,a=i.indexOf(r);if(a===-1)return n+i+r;let o=n,s=0,c=(t===22?r:``)+n;for(;a!==-1;)o+=i.slice(s,a)+c,s=a+r.length,a=i.indexOf(r,s);return o+=i.slice(s)+r,o}};X(0,0);const Df=X(1,22);X(2,22),X(3,23),X(4,24),X(53,55),X(7,27),X(8,28),X(9,29),X(30,39),X(31,39),X(32,39),X(33,39),X(34,39),X(35,39),X(36,39),X(37,39);const Of=X(90,39);X(40,49),X(41,49),X(42,49),X(43,49),X(44,49),X(45,49),X(46,49),X(47,49),X(100,49);const kf=X(91,39);X(92,39);const Af=X(93,39);X(94,39),X(95,39),X(96,39),X(97,39),X(101,49),X(102,49),X(103,49),X(104,49),X(105,49),X(106,49),X(107,49);const jf=({type:e,message:t,timestamp:n,piped:r,commandId:i,result:{failed:a=!1}={},options:{reject:o=!0}})=>{let s=Mf(n),c=Ff[e]({failed:a,reject:o,piped:r}),l=Lf[e]({reject:o});return`${Of(`[${s}]`)} ${Of(`[${i}]`)} ${l(c)} ${l(t)}`},Mf=e=>`${Nf(e.getHours(),2)}:${Nf(e.getMinutes(),2)}:${Nf(e.getSeconds(),2)}.${Nf(e.getMilliseconds(),3)}`,Nf=(e,t)=>String(e).padStart(t,`0`),Pf=({failed:e,reject:t})=>e?t?Tf.cross:Tf.warning:Tf.tick,Ff={command:({piped:e})=>e?`|`:`$`,output:()=>` `,ipc:()=>`*`,error:Pf,duration:Pf},If=e=>e,Lf={command:()=>Df,output:()=>If,ipc:()=>If,error:({reject:e})=>e?kf:Af,duration:()=>Of},Rf=(e,t,n)=>{let r=af(t,n);return e.map(({verboseLine:e,verboseObject:t})=>zf(e,t,r)).filter(e=>e!==void 0).map(e=>Bf(e)).join(``)},zf=(e,t,n)=>{if(n===void 0)return e;let r=n(e,t);if(typeof r==`string`)return r},Bf=e=>e.endsWith(`
356
+ `)?e:`${e}\n`,Vf=({type:e,verboseMessage:t,fdNumber:n,verboseInfo:r,result:i})=>{let a=Hf({type:e,result:i,verboseInfo:r}),o=Rf(Uf(t,a),r,n);o!==``&&console.warn(o.slice(0,-1))},Hf=({type:e,result:t,verboseInfo:{escapedCommand:n,commandId:r,rawOptions:{piped:i=!1,...a}}})=>({type:e,escapedCommand:n,commandId:`${r}`,timestamp:new Date,piped:i,result:t,options:a}),Uf=(e,t)=>e.split(`
357
+ `).map(e=>Wf({...t,message:e})),Wf=e=>({verboseLine:jf(e),verboseObject:e}),Gf=e=>df(typeof e==`string`?e:Oe(e)).replaceAll(` `,` `.repeat(Kf)),Kf=2,qf=(e,t)=>{nf(t)&&Vf({type:`command`,verboseMessage:e,verboseInfo:t})},Jf=(e,t,n)=>(Zf(e),{verbose:e,escapedCommand:t,commandId:Yf(e),rawOptions:n}),Yf=e=>nf({verbose:e})?Xf++:void 0;let Xf=0n;const Zf=e=>{for(let t of e){if(t===!1)throw TypeError(`The "verbose: false" option was renamed to "verbose: 'none'".`);if(t===!0)throw TypeError(`The "verbose: true" option was renamed to "verbose: 'short'".`);if(!lf.includes(t)&&!cf(t)){let e=lf.map(e=>`'${e}'`).join(`, `);throw TypeError(`The "verbose" option must not be ${t}. Allowed values are: ${e} or a function.`)}}},Qf=()=>Ne.bigint(),$f=e=>Number(Ne.bigint()-e)/1e6,ep=(e,t,n)=>{let r=Qf(),{command:i,escapedCommand:a}=uf(e,t),o=Jf(Ud(n,`verbose`),a,{...n});return qf(a,o),{command:i,escapedCommand:a,startTime:r,verboseInfo:o}};var tp=S(((e,t)=>{t.exports=a,a.sync=o;var n=rt(`fs`);function r(e,t){var n=t.pathExt===void 0?process.env.PATHEXT:t.pathExt;if(!n||(n=n.split(`;`),n.indexOf(``)!==-1))return!0;for(var r=0;r<n.length;r++){var i=n[r].toLowerCase();if(i&&e.substr(-i.length).toLowerCase()===i)return!0}return!1}function i(e,t,n){return!e.isSymbolicLink()&&!e.isFile()?!1:r(t,n)}function a(e,t,r){n.stat(e,function(n,a){r(n,n?!1:i(a,e,t))})}function o(e,t){return i(n.statSync(e),e,t)}})),np=S(((e,t)=>{t.exports=r,r.sync=i;var n=rt(`fs`);function r(e,t,r){n.stat(e,function(e,n){r(e,e?!1:a(n,t))})}function i(e,t){return a(n.statSync(e),t)}function a(e,t){return e.isFile()&&o(e,t)}function o(e,t){var n=e.mode,r=e.uid,i=e.gid,a=t.uid===void 0?process.getuid&&process.getuid():t.uid,o=t.gid===void 0?process.getgid&&process.getgid():t.gid,s=64,c=8,l=1,u=s|c;return n&l||n&c&&i===o||n&s&&r===a||n&u&&a===0}})),rp=S(((e,t)=>{rt(`fs`);var n=process.platform===`win32`||global.TESTING_WINDOWS?tp():np();t.exports=r,r.sync=i;function r(e,t,i){if(typeof t==`function`&&(i=t,t={}),!i){if(typeof Promise!=`function`)throw TypeError(`callback not provided`);return new Promise(function(n,i){r(e,t||{},function(e,t){e?i(e):n(t)})})}n(e,t||{},function(e,n){e&&(e.code===`EACCES`||t&&t.ignoreErrors)&&(e=null,n=!1),i(e,n)})}function i(e,t){try{return n.sync(e,t||{})}catch(e){if(t&&t.ignoreErrors||e.code===`EACCES`)return!1;throw e}}})),ip=S(((e,t)=>{let n=process.platform===`win32`||process.env.OSTYPE===`cygwin`||process.env.OSTYPE===`msys`,r=rt(`path`),i=n?`;`:`:`,a=rp(),o=e=>Object.assign(Error(`not found: ${e}`),{code:`ENOENT`}),s=(e,t)=>{let r=t.colon||i,a=e.match(/\//)||n&&e.match(/\\/)?[``]:[...n?[process.cwd()]:[],...(t.path||process.env.PATH||``).split(r)],o=n?t.pathExt||process.env.PATHEXT||`.EXE;.CMD;.BAT;.COM`:``,s=n?o.split(r):[``];return n&&e.indexOf(`.`)!==-1&&s[0]!==``&&s.unshift(``),{pathEnv:a,pathExt:s,pathExtExe:o}},c=(e,t,n)=>{typeof t==`function`&&(n=t,t={}),t||={};let{pathEnv:i,pathExt:c,pathExtExe:l}=s(e,t),u=[],d=n=>new Promise((a,s)=>{if(n===i.length)return t.all&&u.length?a(u):s(o(e));let c=i[n],l=/^".*"$/.test(c)?c.slice(1,-1):c,d=r.join(l,e),p=!l&&/^\.[\\\/]/.test(e)?e.slice(0,2)+d:d;a(f(p,n,0))}),f=(e,n,r)=>new Promise((i,o)=>{if(r===c.length)return i(d(n+1));let s=c[r];a(e+s,{pathExt:l},(a,o)=>{if(!a&&o)if(t.all)u.push(e+s);else return i(e+s);return i(f(e,n,r+1))})});return n?d(0).then(e=>n(null,e),n):d(0)};t.exports=c,c.sync=(e,t)=>{t||={};let{pathEnv:n,pathExt:i,pathExtExe:c}=s(e,t),l=[];for(let o=0;o<n.length;o++){let s=n[o],u=/^".*"$/.test(s)?s.slice(1,-1):s,d=r.join(u,e),f=!u&&/^\.[\\\/]/.test(e)?e.slice(0,2)+d:d;for(let e=0;e<i.length;e++){let n=f+i[e];try{if(a.sync(n,{pathExt:c}))if(t.all)l.push(n);else return n}catch{}}}if(t.all&&l.length)return l;if(t.nothrow)return null;throw o(e)}})),ap=S(((e,t)=>{let n=(e={})=>{let t=e.env||process.env;return(e.platform||process.platform)===`win32`?Object.keys(t).reverse().find(e=>e.toUpperCase()===`PATH`)||`Path`:`PATH`};t.exports=n,t.exports.default=n})),op=S(((e,t)=>{let n=rt(`path`),r=ip(),i=ap();function a(e,t){let a=e.options.env||process.env,o=process.cwd(),s=e.options.cwd!=null,c=s&&process.chdir!==void 0&&!process.chdir.disabled;if(c)try{process.chdir(e.options.cwd)}catch{}let l;try{l=r.sync(e.command,{path:a[i({env:a})],pathExt:t?n.delimiter:void 0})}catch{}finally{c&&process.chdir(o)}return l&&=n.resolve(s?e.options.cwd:``,l),l}function o(e){return a(e)||a(e,!0)}t.exports=o})),sp=S(((e,t)=>{let n=/([()\][%!^"`<>&|;, *?])/g;function r(e){return e=e.replace(n,`^$1`),e}function i(e,t){return e=`${e}`,e=e.replace(/(?=(\\+?)?)\1"/g,`$1$1\\"`),e=e.replace(/(?=(\\+?)?)\1$/,`$1$1`),e=`"${e}"`,e=e.replace(n,`^$1`),t&&(e=e.replace(n,`^$1`)),e}t.exports.command=r,t.exports.argument=i})),cp=S(((e,t)=>{t.exports=/^#!(.*)/})),lp=S(((e,t)=>{let n=cp();t.exports=(e=``)=>{let t=e.match(n);if(!t)return null;let[r,i]=t[0].replace(/#! ?/,``).split(` `),a=r.split(`/`).pop();return a===`env`?i:i?`${a} ${i}`:a}})),up=S(((e,t)=>{let n=rt(`fs`),r=lp();function i(e){let t=Buffer.alloc(150),i;try{i=n.openSync(e,`r`),n.readSync(i,t,0,150,0),n.closeSync(i)}catch{}return r(t.toString())}t.exports=i})),dp=S(((e,t)=>{let n=rt(`path`),r=op(),i=sp(),a=up(),o=process.platform===`win32`,s=/\.(?:com|exe)$/i,c=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function l(e){e.file=r(e);let t=e.file&&a(e.file);return t?(e.args.unshift(e.file),e.command=t,r(e)):e.file}function u(e){if(!o)return e;let t=l(e),r=!s.test(t);if(e.options.forceShell||r){let r=c.test(t);e.command=n.normalize(e.command),e.command=i.command(e.command),e.args=e.args.map(e=>i.argument(e,r)),e.args=[`/d`,`/s`,`/c`,`"${[e.command].concat(e.args).join(` `)}"`],e.command=process.env.comspec||`cmd.exe`,e.options.windowsVerbatimArguments=!0}return e}function d(e,t,n){t&&!Array.isArray(t)&&(n=t,t=null),t=t?t.slice(0):[],n=Object.assign({},n);let r={command:e,args:t,options:n,file:void 0,original:{command:e,args:t}};return n.shell?r:u(r)}t.exports=d})),fp=S(((e,t)=>{let n=process.platform===`win32`;function r(e,t){return Object.assign(Error(`${t} ${e.command} ENOENT`),{code:`ENOENT`,errno:`ENOENT`,syscall:`${t} ${e.command}`,path:e.command,spawnargs:e.args})}function i(e,t){if(!n)return;let r=e.emit;e.emit=function(n,i){if(n===`exit`){let n=a(i,t);if(n)return r.call(e,`error`,n)}return r.apply(e,arguments)}}function a(e,t){return n&&e===1&&!t.file?r(t.original,`spawn`):null}function o(e,t){return n&&e===1&&!t.file?r(t.original,`spawnSync`):null}t.exports={hookChildProcess:i,verifyENOENT:a,verifyENOENTSync:o,notFoundError:r}})),pp=nt(S(((e,t)=>{let n=rt(`child_process`),r=dp(),i=fp();function a(e,t,a){let o=r(e,t,a),s=n.spawn(o.command,o.args,o.options);return i.hookChildProcess(s,o),s}function o(e,t,a){let o=r(e,t,a),s=n.spawnSync(o.command,o.args,o.options);return s.error=s.error||i.verifyENOENTSync(s.status,o),s}t.exports=a,t.exports.spawn=a,t.exports.sync=o,t.exports._parse=r,t.exports._enoent=i}))(),1);function mp(e={}){let{env:t=process.env,platform:n=process.platform}=e;return n===`win32`?Object.keys(t).reverse().find(e=>e.toUpperCase()===`PATH`)||`Path`:`PATH`}ke(xe);function hp(e){return e instanceof URL?ve(e):e}function gp(e){return{*[Symbol.iterator](){let t=h.resolve(hp(e)),n;for(;n!==t;)yield t,n=t,t=h.resolve(t,`..`)}}}const _p=({cwd:e=b.cwd(),path:t=b.env[mp()],preferLocal:n=!0,execPath:r=b.execPath,addExecPath:i=!0}={})=>{let a=h.resolve(hp(e)),o=[],s=t.split(h.delimiter);return n&&vp(o,s,a),i&&yp(o,s,r,a),t===``||t===h.delimiter?`${o.join(h.delimiter)}${t}`:[...o,t].join(h.delimiter)},vp=(e,t,n)=>{for(let r of gp(n)){let n=h.join(r,`node_modules/.bin`);t.includes(n)||e.push(n)}},yp=(e,t,n,r)=>{let i=h.resolve(r,hp(n),`..`);t.includes(i)||e.push(i)},bp=({env:e=b.env,...t}={})=>{e={...e};let n=mp({env:e});return t.path=e[n],e[n]=_p(t),e},xp=(e,t,n)=>new(n?Op:Dp)(t,e instanceof Sp?{}:{cause:e});var Sp=class extends Error{};const Cp=(e,t)=>{Object.defineProperty(e.prototype,"name",{value:t,writable:!0,enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,Tp,{value:!0,writable:!1,enumerable:!1,configurable:!1})},wp=e=>Ep(e)&&Tp in e,Tp=Symbol(`isExecaError`),Ep=e=>Object.prototype.toString.call(e)===`[object Error]`;var Dp=class extends Error{};Cp(Dp,Dp.name);var Op=class extends Error{};Cp(Op,Op.name);const kp=()=>{let e=64-jp+1;return Array.from({length:e},Ap)},Ap=(e,t)=>({name:`SIGRT${t+1}`,number:jp+t,action:`terminate`,description:`Application-specific signal (realtime)`,standard:`posix`}),jp=34,Mp=[{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`}],Np=()=>{let e=kp();return[...Mp,...e].map(Pp)},Pp=({name:e,number:t,description:n,action:r,forced:i=!1,standard:a})=>{let{signals:{[e]:o}}=pe,s=o!==void 0;return{name:e,number:s?o:t,description:n,supported:s,action:r,forced:i,standard:a}},Fp=()=>{let e=Np();return Object.fromEntries(e.map(Ip))},Ip=({name:e,number:t,description:n,supported:r,action:i,forced:a,standard:o})=>[e,{name:e,number:t,description:n,supported:r,action:i,forced:a,standard:o}],Lp=Fp(),Rp=()=>{let e=Np(),t=Array.from({length:65},(t,n)=>zp(n,e));return Object.assign({},...t)},zp=(e,t)=>{let n=Bp(e,t);if(n===void 0)return{};let{name:r,description:i,supported:a,action:o,forced:s,standard:c}=n;return{[e]:{name:r,number:e,description:i,supported:a,action:o,forced:s,standard:c}}},Bp=(e,t)=>{let n=t.find(({name:t})=>pe.signals[t]===e);return n===void 0?t.find(t=>t.number===e):n};Rp();const Vp=e=>{let t="option `killSignal`";if(e===0)throw TypeError(`Invalid ${t}: 0 cannot be used.`);return Up(e,t)},Hp=e=>e===0?e:Up(e,"`subprocess.kill()`'s argument"),Up=(e,t)=>{if(Number.isInteger(e))return Wp(e,t);if(typeof e==`string`)return Kp(e,t);throw TypeError(`Invalid ${t} ${String(e)}: it must be a string or an integer.\n${qp()}`)},Wp=(e,t)=>{if(Gp.has(e))return Gp.get(e);throw TypeError(`Invalid ${t} ${e}: this signal integer does not exist.\n${qp()}`)},Gp=new Map(Object.entries(pe.signals).reverse().map(([e,t])=>[t,e])),Kp=(e,t)=>{if(e in pe.signals)return e;throw e.toUpperCase()in pe.signals?TypeError(`Invalid ${t} '${e}': please rename it to '${e.toUpperCase()}'.`):TypeError(`Invalid ${t} '${e}': this signal name does not exist.\n${qp()}`)},qp=()=>`Available signal names: ${Jp()}.
358
+ Available signal numbers: ${Yp()}.`,Jp=()=>Object.keys(pe.signals).sort().map(e=>`'${e}'`).join(`, `),Yp=()=>[...new Set(Object.values(pe.signals).sort((e,t)=>e-t))].join(`, `),Xp=e=>Lp[e].description,Zp=e=>{if(e===!1)return e;if(e===!0)return Qp;if(!Number.isFinite(e)||e<0)throw TypeError(`Expected the \`forceKillAfterDelay\` option to be a non-negative integer, got \`${e}\` (${typeof e})`);return e},Qp=1e3*5,$p=({kill:e,options:{forceKillAfterDelay:t,killSignal:n},onInternalError:r,context:i,controller:a},o,s)=>{let{signal:c,error:l}=em(o,s,n);tm(l,r);let u=e(c);return nm({kill:e,signal:c,forceKillAfterDelay:t,killSignal:n,killResult:u,context:i,controller:a}),u},em=(e,t,n)=>{let[r=n,i]=Ep(e)?[void 0,e]:[e,t];if(typeof r!=`string`&&!Number.isInteger(r))throw TypeError(`The first argument must be an error instance or a signal name string/integer: ${String(r)}`);if(i!==void 0&&!Ep(i))throw TypeError(`The second argument is optional. If specified, it must be an error instance: ${i}`);return{signal:Hp(r),error:i}},tm=(e,t)=>{e!==void 0&&t.reject(e)},nm=async({kill:e,signal:t,forceKillAfterDelay:n,killSignal:r,killResult:i,context:a,controller:o})=>{t===r&&i&&rm({kill:e,forceKillAfterDelay:n,context:a,controllerSignal:o.signal})},rm=async({kill:e,forceKillAfterDelay:t,context:n,controllerSignal:r})=>{if(t!==!1)try{await _e(t,void 0,{signal:r}),e(`SIGKILL`)&&(n.isForcefullyTerminated??=!0)}catch{}},im=async(e,t)=>{e.aborted||await x(e,`abort`,{signal:t})},am=({cancelSignal:e})=>{if(e!==void 0&&Object.prototype.toString.call(e)!==`[object AbortSignal]`)throw Error(`The \`cancelSignal\` option must be an AbortSignal: ${String(e)}`)},om=({subprocess:e,cancelSignal:t,gracefulCancel:n,context:r,controller:i})=>t===void 0||n?[]:[sm(e,t,r,i)],sm=async(e,t,n,{signal:r})=>{throw await im(t,r),n.terminationReason??=`cancel`,e.kill(),t.reason},cm=({methodName:e,isSubprocess:t,ipc:n,isConnected:r})=>{lm(e,t,n),um(e,t,r)},lm=(e,t,n)=>{if(!n)throw Error(`${Z(e,t)} can only be used if the \`ipc\` option is \`true\`.`)},um=(e,t,n)=>{if(!n)throw Error(`${Z(e,t)} cannot be used: the ${wm(t)} has already exited or disconnected.`)},dm=e=>{throw Error(`${Z(`getOneMessage`,e)} could not complete: the ${wm(e)} exited or disconnected.`)},fm=e=>{throw Error(`${Z(`sendMessage`,e)} failed: the ${wm(e)} is sending a message too, instead of listening to incoming messages.
359
359
  This can be fixed by both sending a message and listening to incoming messages at the same time:
360
360
 
361
361
  const [receivedMessage] = await Promise.all([
362
- ${Y(`getOneMessage`,e)},
363
- ${Y(`sendMessage`,e,`message, {strict: true}`)},
364
- ]);`)},hm=(e,t)=>Error(`${Y(`sendMessage`,t)} failed when sending an acknowledgment response to the ${Em(t)}.`,{cause:e}),gm=e=>{throw Error(`${Y(`sendMessage`,e)} failed: the ${Em(e)} is not listening to incoming messages.`)},_m=e=>{throw Error(`${Y(`sendMessage`,e)} failed: the ${Em(e)} exited without listening to incoming messages.`)},vm=()=>Error(`\`cancelSignal\` aborted: the ${Em(!0)} disconnected.`),ym=()=>{throw Error("`getCancelSignal()` cannot be used without setting the `cancelSignal` subprocess option.")},bm=({error:e,methodName:t,isSubprocess:n})=>{if(e.code===`EPIPE`)throw Error(`${Y(t,n)} cannot be used: the ${Em(n)} is disconnecting.`,{cause:e})},xm=({error:e,methodName:t,isSubprocess:n,message:r})=>{if(Sm(e))throw Error(`${Y(t,n)}'s argument type is invalid: the message cannot be serialized: ${String(r)}.`,{cause:e})},Sm=({code:e,message:t})=>Cm.has(e)||wm.some(e=>t.includes(e)),Cm=new Set([`ERR_MISSING_ARGS`,`ERR_INVALID_ARG_TYPE`]),wm=[`could not be cloned`,`circular structure`,`call stack size exceeded`],Y=(e,t,n=``)=>e===`cancelSignal`?"`cancelSignal`'s `controller.abort()`":`${Tm(t)}${e}(${n})`,Tm=e=>e?``:`subprocess.`,Em=e=>e?`parent process`:`subprocess`,Dm=e=>{e.connected&&e.disconnect()},Om=()=>{let e={},t=new Promise((t,n)=>{Object.assign(e,{resolve:t,reject:n})});return Object.assign(t,e)},km=(e,t=`stdin`)=>{let{options:n,fileDescriptors:r}=jm.get(e),i=Mm(r,t,!0),a=e.stdio[i];if(a===null)throw TypeError(Fm(i,t,n,!0));return a},Am=(e,t=`stdout`)=>{let{options:n,fileDescriptors:r}=jm.get(e),i=Mm(r,t,!1),a=i===`all`?e.all:e.stdio[i];if(a==null)throw TypeError(Fm(i,t,n,!1));return a},jm=new WeakMap,Mm=(e,t,n)=>{let r=Nm(t,n);return Pm(r,t,n,e),r},Nm=(e,t)=>{let n=Qd(e);if(n!==void 0)return n;let{validOptions:r,defaultValue:i}=t?{validOptions:`"stdin"`,defaultValue:`stdin`}:{validOptions:`"stdout", "stderr", "all"`,defaultValue:`stdout`};throw TypeError(`"${Rm(t)}" must not be "${e}".
362
+ ${Z(`getOneMessage`,e)},
363
+ ${Z(`sendMessage`,e,`message, {strict: true}`)},
364
+ ]);`)},pm=(e,t)=>Error(`${Z(`sendMessage`,t)} failed when sending an acknowledgment response to the ${wm(t)}.`,{cause:e}),mm=e=>{throw Error(`${Z(`sendMessage`,e)} failed: the ${wm(e)} is not listening to incoming messages.`)},hm=e=>{throw Error(`${Z(`sendMessage`,e)} failed: the ${wm(e)} exited without listening to incoming messages.`)},gm=()=>Error(`\`cancelSignal\` aborted: the ${wm(!0)} disconnected.`),_m=()=>{throw Error("`getCancelSignal()` cannot be used without setting the `cancelSignal` subprocess option.")},vm=({error:e,methodName:t,isSubprocess:n})=>{if(e.code===`EPIPE`)throw Error(`${Z(t,n)} cannot be used: the ${wm(n)} is disconnecting.`,{cause:e})},ym=({error:e,methodName:t,isSubprocess:n,message:r})=>{if(bm(e))throw Error(`${Z(t,n)}'s argument type is invalid: the message cannot be serialized: ${String(r)}.`,{cause:e})},bm=({code:e,message:t})=>xm.has(e)||Sm.some(e=>t.includes(e)),xm=new Set([`ERR_MISSING_ARGS`,`ERR_INVALID_ARG_TYPE`]),Sm=[`could not be cloned`,`circular structure`,`call stack size exceeded`],Z=(e,t,n=``)=>e===`cancelSignal`?"`cancelSignal`'s `controller.abort()`":`${Cm(t)}${e}(${n})`,Cm=e=>e?``:`subprocess.`,wm=e=>e?`parent process`:`subprocess`,Tm=e=>{e.connected&&e.disconnect()},Em=()=>{let e={},t=new Promise((t,n)=>{Object.assign(e,{resolve:t,reject:n})});return Object.assign(t,e)},Dm=(e,t=`stdin`)=>{let{options:n,fileDescriptors:r}=km.get(e),i=Am(r,t,!0),a=e.stdio[i];if(a===null)throw TypeError(Nm(i,t,n,!0));return a},Om=(e,t=`stdout`)=>{let{options:n,fileDescriptors:r}=km.get(e),i=Am(r,t,!1),a=i===`all`?e.all:e.stdio[i];if(a==null)throw TypeError(Nm(i,t,n,!1));return a},km=new WeakMap,Am=(e,t,n)=>{let r=jm(t,n);return Mm(r,t,n,e),r},jm=(e,t)=>{let n=Xd(e);if(n!==void 0)return n;let{validOptions:r,defaultValue:i}=t?{validOptions:`"stdin"`,defaultValue:`stdin`}:{validOptions:`"stdout", "stderr", "all"`,defaultValue:`stdout`};throw TypeError(`"${Im(t)}" must not be "${e}".
365
365
  It must be ${r} or "fd3", "fd4" (and so on).
366
- It is optional and defaults to "${i}".`)},Pm=(e,t,n,r)=>{let i=r[Lm(e)];if(i===void 0)throw TypeError(`"${Rm(n)}" must not be ${t}. That file descriptor does not exist.
367
- Please set the "stdio" option to ensure that file descriptor exists.`);if(i.direction===`input`&&!n)throw TypeError(`"${Rm(n)}" must not be ${t}. It must be a readable stream, not writable.`);if(i.direction!==`input`&&n)throw TypeError(`"${Rm(n)}" must not be ${t}. It must be a writable stream, not readable.`)},Fm=(e,t,n,r)=>{if(e===`all`&&!n.all)return`The "all" option must be true to use "from: 'all'".`;let{optionName:i,optionValue:a}=Im(e,n);return`The "${i}: ${zm(a)}" option is incompatible with using "${Rm(r)}: ${zm(t)}".
368
- Please set this option with "pipe" instead.`},Im=(e,{stdin:t,stdout:n,stderr:r,stdio:i})=>{let a=Lm(e);return a===0&&t!==void 0?{optionName:`stdin`,optionValue:t}:a===1&&n!==void 0?{optionName:`stdout`,optionValue:n}:a===2&&r!==void 0?{optionName:`stderr`,optionValue:r}:{optionName:`stdio[${a}]`,optionValue:i[a]}},Lm=e=>e===`all`?1:e,Rm=e=>e?`to`:`from`,zm=e=>typeof e==`string`?`'${e}'`:typeof e==`number`?`${e}`:`Stream`,Bm=(e,t,n)=>{let r=e.getMaxListeners();r===0||r===1/0||(e.setMaxListeners(r+t),Le(n,()=>{e.setMaxListeners(e.getMaxListeners()-t)}))},Vm=(e,t)=>{t&&Hm(e)},Hm=e=>{e.refCounted()},Um=(e,t)=>{t&&Wm(e)},Wm=e=>{e.unrefCounted()},Gm=(e,t)=>{t&&(Wm(e),Wm(e))},Km=(e,t)=>{t&&(Hm(e),Hm(e))},qm=async({anyProcess:e,channel:t,isSubprocess:n,ipcEmitter:r},i)=>{if(ih(i)||Th(i))return;Ym.has(e)||Ym.set(e,[]);let a=Ym.get(e);if(a.push(i),!(a.length>1))for(;a.length>0;){await fh(e,r,i),await he.yield();let o=await rh({wrappedMessage:a[0],anyProcess:e,channel:t,isSubprocess:n,ipcEmitter:r});a.shift(),r.emit(`message`,o),r.emit(`message:done`)}},Jm=async({anyProcess:e,channel:t,isSubprocess:n,ipcEmitter:r,boundOnMessage:i})=>{Dh();let a=Ym.get(e);for(;a?.length>0;)await x(r,`message:done`);e.removeListener(`message`,i),Km(t,n),r.connected=!1,r.emit(`disconnect`)},Ym=new WeakMap,Xm=(e,t,n)=>{if(Zm.has(e))return Zm.get(e);let r=new Ie;return r.connected=!0,Zm.set(e,r),Qm({ipcEmitter:r,anyProcess:e,channel:t,isSubprocess:n}),r},Zm=new WeakMap,Qm=({ipcEmitter:e,anyProcess:t,channel:n,isSubprocess:r})=>{let i=qm.bind(void 0,{anyProcess:t,channel:n,isSubprocess:r,ipcEmitter:e});t.on(`message`,i),t.once(`disconnect`,Jm.bind(void 0,{anyProcess:t,channel:n,isSubprocess:r,ipcEmitter:e,boundOnMessage:i})),Gm(n,r)},$m=e=>{let t=Zm.get(e);return t===void 0?e.channel!==null:t.connected},eh=({anyProcess:e,channel:t,isSubprocess:n,message:r,strict:i})=>{if(!i)return r;let a=mh(e,Xm(e,t,n));return{id:th++,type:ch,message:r,hasListeners:a}};let th=0n;const nh=(e,t)=>{if(!(t?.type!==ch||t.hasListeners))for(let{id:t}of e)t!==void 0&&oh[t].resolve({isDeadlock:!0,hasListeners:!1})},rh=async({wrappedMessage:e,anyProcess:t,channel:n,isSubprocess:r,ipcEmitter:i})=>{if(e?.type!==ch||!t.connected)return e;let{id:a,message:o}=e,s={id:a,type:lh,message:mh(t,i)};try{await gh({anyProcess:t,channel:n,isSubprocess:r,ipc:!0},s)}catch(e){i.emit(`strict:error`,e)}return o},ih=e=>{if(e?.type!==lh)return!1;let{id:t,message:n}=e;return oh[t]?.resolve({isDeadlock:!1,hasListeners:n}),!0},ah=async(e,t,n)=>{if(e?.type!==ch)return;let r=Om();oh[e.id]=r;let i=new AbortController;try{let{isDeadlock:e,hasListeners:a}=await Promise.race([r,sh(t,n,i)]);e&&mm(n),a||gm(n)}finally{i.abort(),delete oh[e.id]}},oh={},sh=async(e,t,{signal:n})=>{Bm(e,1,n),await x(e,`disconnect`,{signal:n}),_m(t)},ch=`execa:ipc:request`,lh=`execa:ipc:response`,uh=(e,t,n)=>{ph.has(e)||ph.set(e,new Set);let r=ph.get(e),i={onMessageSent:Om(),id:n?t.id:void 0};return r.add(i),{outgoingMessages:r,outgoingMessage:i}},dh=({outgoingMessages:e,outgoingMessage:t})=>{e.delete(t),t.onMessageSent.resolve()},fh=async(e,t,n)=>{for(;!mh(e,t)&&ph.get(e)?.size>0;){let t=[...ph.get(e)];nh(t,n),await Promise.all(t.map(({onMessageSent:e})=>e))}},ph=new WeakMap,mh=(e,t)=>t.listenerCount(`message`)>hh(e),hh=e=>jm.has(e)&&!rf(jm.get(e).options.buffer,`ipc`)?1:0,gh=({anyProcess:e,channel:t,isSubprocess:n,ipc:r},i,{strict:a=!1}={})=>{let o=`sendMessage`;return um({methodName:o,isSubprocess:n,ipc:r,isConnected:e.connected}),_h({anyProcess:e,channel:t,methodName:o,isSubprocess:n,message:i,strict:a})},_h=async({anyProcess:e,channel:t,methodName:n,isSubprocess:r,message:i,strict:a})=>{let o=eh({anyProcess:e,channel:t,isSubprocess:r,message:i,strict:a}),s=uh(e,o,a);try{await vh({anyProcess:e,methodName:n,isSubprocess:r,wrappedMessage:o,message:i})}catch(t){throw Dm(e),t}finally{dh(s)}},vh=async({anyProcess:e,methodName:t,isSubprocess:n,wrappedMessage:r,message:i})=>{let a=yh(e);try{await Promise.all([ah(r,e,n),a(r)])}catch(e){throw bm({error:e,methodName:t,isSubprocess:n}),xm({error:e,methodName:t,isSubprocess:n,message:i}),e}},yh=e=>{if(bh.has(e))return bh.get(e);let t=ke(e.send.bind(e));return bh.set(e,t),t},bh=new WeakMap,xh=(e,t)=>{let n=`cancelSignal`;return fm(n,!1,e.connected),vh({anyProcess:e,methodName:n,isSubprocess:!1,wrappedMessage:{type:Eh,message:t},message:t})},Sh=async({anyProcess:e,channel:t,isSubprocess:n,ipc:r})=>(await Ch({anyProcess:e,channel:t,isSubprocess:n,ipc:r}),Oh.signal),Ch=async({anyProcess:e,channel:t,isSubprocess:n,ipc:r})=>{if(!wh){if(wh=!0,!r){ym();return}if(t===null){Dh();return}Xm(e,t,n),await he.yield()}};let wh=!1;const Th=e=>e?.type===Eh?(Oh.abort(e.message),!0):!1,Eh=`execa:ipc:cancel`,Dh=()=>{Oh.abort(vm())},Oh=new AbortController,kh=({gracefulCancel:e,cancelSignal:t,ipc:n,serialization:r})=>{if(e){if(t===void 0)throw Error("The `cancelSignal` option must be defined when setting the `gracefulCancel` option.");if(!n)throw Error("The `ipc` option cannot be false when setting the `gracefulCancel` option.");if(r===`json`)throw Error("The `serialization` option cannot be 'json' when setting the `gracefulCancel` option.")}},Ah=({subprocess:e,cancelSignal:t,gracefulCancel:n,forceKillAfterDelay:r,context:i,controller:a})=>n?[jh({subprocess:e,cancelSignal:t,forceKillAfterDelay:r,context:i,controller:a})]:[],jh=async({subprocess:e,cancelSignal:t,forceKillAfterDelay:n,context:r,controller:{signal:i}})=>{throw await om(t,i),await xh(e,Mh(t)),am({kill:e.kill,forceKillAfterDelay:n,context:r,controllerSignal:i}),r.terminationReason??=`gracefulCancel`,t.reason},Mh=({reason:e})=>{if(!(e instanceof DOMException))return e;let t=Error(e.message);return Object.defineProperty(t,"stack",{value:e.stack,enumerable:!1,configurable:!0,writable:!0}),t},Nh=({timeout:e})=>{if(e!==void 0&&(!Number.isFinite(e)||e<0))throw TypeError(`Expected the \`timeout\` option to be a non-negative integer, got \`${e}\` (${typeof e})`)},Ph=(e,t,n,r)=>t===0||t===void 0?[]:[Fh(e,t,n,r)],Fh=async(e,t,n,{signal:r})=>{throw await _e(t,void 0,{signal:r}),n.terminationReason??=`timeout`,e.kill(),new wp},Ih=({options:e})=>{if(e.node===!1)throw TypeError('The "node" option cannot be false with `execaNode()`.');return{options:{...e,node:!0}}},Lh=(e,t,{node:n=!1,nodePath:r=Me,nodeOptions:i=je.filter(e=>!e.startsWith(`--inspect`)),cwd:a,execPath:o,...s})=>{if(o!==void 0)throw TypeError(`The "execPath" option has been removed. Please use the "nodePath" option instead.`);let c=pd(r,`The "nodePath" option`),l=h.resolve(a,c),u={...s,nodePath:l,node:n,cwd:a};if(!n)return[e,t,u];if(h.basename(e,`.exe`)===`node`)throw TypeError(`When the "node" option is true, the first argument does not need to be "node".`);return[l,[...i,e,...t],{ipc:!0,...u,shell:!1}]},Rh=({ipcInput:e,ipc:t,serialization:n})=>{if(e!==void 0){if(!t)throw Error("The `ipcInput` option cannot be set unless the `ipc` option is `true`.");zh[n](e)}},zh={advanced:e=>{try{Be(e)}catch(e){throw Error("The `ipcInput` option is not serializable with a structured clone.",{cause:e})}},json:e=>{try{JSON.stringify(e)}catch(e){throw Error("The `ipcInput` option is not serializable with JSON.",{cause:e})}}},Bh=async(e,t)=>{t!==void 0&&await e.sendMessage(t)},Vh=({encoding:e})=>{if(Wh.has(e))return;let t=Gh(e);if(t!==void 0)throw TypeError(`Invalid option \`encoding: ${qh(e)}\`.
369
- Please rename it to ${qh(t)}.`);let n=[...Wh].map(e=>qh(e)).join(`, `);throw TypeError(`Invalid option \`encoding: ${qh(e)}\`.
370
- Please rename it to one of: ${n}.`)},Hh=new Set([`utf8`,`utf16le`]),Uh=new Set([`buffer`,`hex`,`base64`,`base64url`,`latin1`,`ascii`]),Wh=new Set([...Hh,...Uh]),Gh=e=>{if(e===null)return`buffer`;if(typeof e!=`string`)return;let t=e.toLowerCase();if(t in Kh)return Kh[t];if(Wh.has(t))return t},Kh={"utf-8":`utf8`,"utf-16le":`utf16le`,"ucs-2":`utf16le`,ucs2:`utf16le`,binary:`latin1`},qh=e=>typeof e==`string`?`"${e}"`:String(e),Jh=(e=Yh())=>{let t=pd(e,`The "cwd" option`);return h.resolve(t)},Yh=()=>{try{return b.cwd()}catch(e){throw e.message=`The current directory does not exist.\n${e.message}`,e}},Xh=(e,t)=>{if(t===Yh())return e;let n;try{n=de(t)}catch(n){return`The "cwd" option is invalid: ${t}.\n${n.message}\n${e}`}return n.isDirectory()?e:`The "cwd" option is not a directory: ${t}.\n${e}`},Zh=(e,t,n)=>{n.cwd=Jh(n.cwd);let[r,i,a]=Lh(e,t,n),{command:o,args:s,options:c}=hp.default._parse(r,i,a),l=Wd(c),u=Qh(l);return Nh(u),Vh(u),Rh(u),sm(u),kh(u),u.shell=gd(u.shell),u.env=$h(u),u.killSignal=Up(u.killSignal),u.forceKillAfterDelay=$p(u.forceKillAfterDelay),u.lines=u.lines.map((e,t)=>e&&!Uh.has(u.encoding)&&u.buffer[t]),b.platform===`win32`&&h.basename(o,`.exe`)===`cmd`&&s.unshift(`/q`),{file:o,commandArguments:s,options:u}},Qh=({extendEnv:e=!0,preferLocal:t=!1,cwd:n,localDir:r=n,encoding:i=`utf8`,reject:a=!0,cleanup:o=!0,all:s=!1,windowsHide:c=!0,killSignal:l=`SIGTERM`,forceKillAfterDelay:u=!0,gracefulCancel:d=!1,ipcInput:f,ipc:p=f!==void 0||d,serialization:m=`advanced`,...h})=>({...h,extendEnv:e,preferLocal:t,cwd:n,localDirectory:r,encoding:i,reject:a,cleanup:o,all:s,windowsHide:c,killSignal:l,forceKillAfterDelay:u,gracefulCancel:d,ipcInput:f,ipc:p,serialization:m}),$h=({env:e,extendEnv:t,preferLocal:n,node:r,localDirectory:i,nodePath:a})=>{let o=t?{...b.env,...e}:e;return n||r?Sp({env:o,cwd:i,execPath:a,preferLocal:n,addExecPath:r}):o},eg=(e,t,n)=>n.shell&&t.length>0?[[e,...t].join(` `),[],n]:[e,t,n];function tg(e){if(typeof e==`string`)return ng(e);if(!(ArrayBuffer.isView(e)&&e.BYTES_PER_ELEMENT===1))throw Error(`Input must be a string or a Uint8Array`);return rg(e)}const ng=e=>e.at(-1)===ig?e.slice(0,e.at(-2)===og?-2:-1):e,rg=e=>e.at(-1)===ag?e.subarray(0,e.at(-2)===sg?-2:-1):e,ig=`
371
- `,ag=`
372
- `.codePointAt(0),og=`\r`,sg=`\r`.codePointAt(0);function cg(e,{checkOpen:t=!0}={}){return typeof e==`object`&&!!e&&(e.writable||e.readable||!t||e.writable===void 0&&e.readable===void 0)&&typeof e.pipe==`function`}function lg(e,{checkOpen:t=!0}={}){return cg(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`}function ug(e,{checkOpen:t=!0}={}){return cg(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`}function dg(e,t){return lg(e,t)&&ug(e,t)}const fg=Object.getPrototypeOf(Object.getPrototypeOf(async function*(){}).prototype);var pg=class{#e;#t;#n=!1;#r=void 0;constructor(e,t){this.#e=e,this.#t=t}next(){let e=()=>this.#i();return this.#r=this.#r?this.#r.then(e,e):e(),this.#r}return(e){let t=()=>this.#a(e);return this.#r?this.#r.then(t,t):t()}async#i(){if(this.#n)return{done:!0,value:void 0};let e;try{e=await this.#e.read()}catch(e){throw this.#r=void 0,this.#n=!0,this.#e.releaseLock(),e}return e.done&&(this.#r=void 0,this.#n=!0,this.#e.releaseLock()),e}async#a(e){if(this.#n)return{done:!0,value:e};if(this.#n=!0,!this.#t){let t=this.#e.cancel(e);return this.#e.releaseLock(),await t,{done:!0,value:e}}return this.#e.releaseLock(),{done:!0,value:e}}};const mg=Symbol();function hg(){return this[mg].next()}Object.defineProperty(hg,"name",{value:`next`});function gg(e){return this[mg].return(e)}Object.defineProperty(gg,"name",{value:`return`});const _g=Object.create(fg,{next:{enumerable:!0,configurable:!0,writable:!0,value:hg},return:{enumerable:!0,configurable:!0,writable:!0,value:gg}});function vg({preventCancel:e=!1}={}){let t=new pg(this.getReader(),e),n=Object.create(_g);return n[mg]=t,n}const yg=e=>{if(ug(e,{checkOpen:!1})&&Cg.on!==void 0)return xg(e);if(typeof e?.[Symbol.asyncIterator]==`function`)return e;if(bg.call(e)===`[object ReadableStream]`)return vg.call(e);throw TypeError(`The first argument must be a Readable, a ReadableStream, or an async iterable.`)},{toString:bg}=Object.prototype,xg=async function*(e){let t=new AbortController,n={};Sg(e,t,n);try{for await(let[n]of Cg.on(e,`data`,{signal:t.signal}))yield n}catch(e){if(n.error!==void 0)throw n.error;if(!t.signal.aborted)throw e}finally{e.destroy()}},Sg=async(e,t,n)=>{try{await Cg.finished(e,{cleanup:!0,readable:!0,writable:!1,error:!1})}catch(e){n.error=e}finally{t.abort()}},Cg={},wg=async(e,{init:t,convertChunk:n,getSize:r,truncateChunk:i,addChunk:a,getFinalChunk:o,finalize:s},{maxBuffer:c=1/0}={})=>{let l=yg(e),u=t();u.length=0;try{for await(let e of l){let t=n[Og(e)](e,u);Eg({convertedChunk:t,state:u,getSize:r,truncateChunk:i,addChunk:a,maxBuffer:c})}return Tg({state:u,convertChunk:n,getSize:r,truncateChunk:i,addChunk:a,getFinalChunk:o,maxBuffer:c}),s(u)}catch(e){let t=typeof e==`object`&&e?e:Error(e);throw t.bufferedData=s(u),t}},Tg=({state:e,getSize:t,truncateChunk:n,addChunk:r,getFinalChunk:i,maxBuffer:a})=>{let o=i(e);o!==void 0&&Eg({convertedChunk:o,state:e,getSize:t,truncateChunk:n,addChunk:r,maxBuffer:a})},Eg=({convertedChunk:e,state:t,getSize:n,truncateChunk:r,addChunk:i,maxBuffer:a})=>{let o=n(e),s=t.length+o;if(s<=a){Dg(e,t,i,s);return}let c=r(e,a-t.length);throw c!==void 0&&Dg(c,t,i,a),new Ag},Dg=(e,t,n,r)=>{t.contents=n(e,t,r),t.length=r},Og=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 n=kg.call(e);return n===`[object ArrayBuffer]`?`arrayBuffer`:n===`[object DataView]`?`dataView`:Number.isInteger(e.byteLength)&&Number.isInteger(e.byteOffset)&&kg.call(e.buffer)===`[object ArrayBuffer]`?`typedArray`:`others`},{toString:kg}=Object.prototype;var Ag=class extends Error{name=`MaxBufferError`;constructor(){super(`maxBuffer exceeded`)}};const jg=e=>e,Mg=()=>void 0,Ng=({contents:e})=>e,Pg=e=>{throw Error(`Streams in object mode are not supported: ${String(e)}`)},Fg=e=>e.length;async function Ig(e,t){return wg(e,Lg,t)}const Lg={init:()=>({contents:[]}),convertChunk:{string:jg,buffer:jg,arrayBuffer:jg,dataView:jg,typedArray:jg,others:jg},getSize:()=>1,truncateChunk:Mg,addChunk:(e,{contents:t})=>(t.push(e),t),getFinalChunk:Mg,finalize:Ng};async function Rg(e,t){return wg(e,Qg,t)}const zg=()=>({contents:new ArrayBuffer(0)}),Bg=e=>Vg.encode(e),Vg=new TextEncoder,Hg=e=>new Uint8Array(e),Ug=e=>new Uint8Array(e.buffer,e.byteOffset,e.byteLength),Wg=(e,t)=>e.slice(0,t),Gg=(e,{contents:t,length:n},r)=>{let i=Zg()?qg(t,r):Kg(t,r);return new Uint8Array(i).set(e,n),i},Kg=(e,t)=>{if(t<=e.byteLength)return e;let n=new ArrayBuffer(Jg(t));return new Uint8Array(n).set(new Uint8Array(e),0),n},qg=(e,t)=>{if(t<=e.maxByteLength)return e.resize(t),e;let n=new ArrayBuffer(t,{maxByteLength:Jg(t)});return new Uint8Array(n).set(new Uint8Array(e),0),n},Jg=e=>Yg**Math.ceil(Math.log(e)/Math.log(Yg)),Yg=2,Xg=({contents:e,length:t})=>Zg()?e:e.slice(0,t),Zg=()=>`resize`in ArrayBuffer.prototype,Qg={init:zg,convertChunk:{string:Bg,buffer:Hg,arrayBuffer:Hg,dataView:Ug,typedArray:Ug,others:Pg},getSize:Fg,truncateChunk:Wg,addChunk:Gg,getFinalChunk:Mg,finalize:Xg};async function $g(e,t){return wg(e,n_,t)}const e_=()=>({contents:``,textDecoder:new TextDecoder}),t_=(e,{textDecoder:t})=>t.decode(e,{stream:!0}),n_={init:e_,convertChunk:{string:jg,buffer:t_,arrayBuffer:t_,dataView:t_,typedArray:t_,others:Pg},getSize:Fg,truncateChunk:(e,t)=>e.slice(0,t),addChunk:(e,{contents:t})=>t+e,getFinalChunk:({textDecoder:e})=>{let t=e.decode();return t===``?void 0:t},finalize:Ng},r_=({error:e,stream:t,readableObjectMode:n,lines:r,encoding:i,fdNumber:a})=>{if(!(e instanceof Ag))throw e;if(a===`all`)return e;throw e.maxBufferInfo={fdNumber:a,unit:i_(n,r,i)},t.destroy(),e},i_=(e,t,n)=>e?`objects`:t?`lines`:n===`buffer`?`bytes`:`characters`,a_=(e,t,n)=>{if(t.length!==n)return;let r=new Ag;throw r.maxBufferInfo={fdNumber:`ipc`},r},o_=(e,t)=>{let{streamName:n,threshold:r,unit:i}=s_(e,t);return`Command's ${n} was larger than ${r} ${i}`},s_=(e,t)=>{if(e?.maxBufferInfo===void 0)return{streamName:`output`,threshold:t[1],unit:`bytes`};let{maxBufferInfo:{fdNumber:n,unit:r}}=e;delete e.maxBufferInfo;let i=rf(t,n);return n===`ipc`?{streamName:`IPC output`,threshold:i,unit:`messages`}:{streamName:Ud(n),threshold:i,unit:r}},c_=(e,t,n)=>e?.code===`ENOBUFS`&&t!==null&&t.some(e=>e!==null&&e.length>u_(n)),l_=(e,t,n)=>{if(!t)return e;let r=u_(n);return e.length>r?e.slice(0,r):e},u_=([,e])=>e,d_=({stdio:e,all:t,ipcOutput:n,originalError:r,signal:i,signalDescription:a,exitCode:o,escapedCommand:s,timedOut:c,isCanceled:l,isGracefullyCanceled:u,isMaxBuffer:d,isForcefullyTerminated:f,forceKillAfterDelay:p,killSignal:m,maxBuffer:h,timeout:g,cwd:_})=>{let v=r?.code,y=f_({originalError:r,timedOut:c,timeout:g,isMaxBuffer:d,maxBuffer:h,errorCode:v,signal:i,signalDescription:a,exitCode:o,isCanceled:l,isGracefullyCanceled:u,isForcefullyTerminated:f,forceKillAfterDelay:p,killSignal:m}),ee=m_(r,_),te=`${y}: ${s}${ee===void 0?``:`\n${ee}`}`;return{originalMessage:ee,shortMessage:te,message:[te,...t===void 0?[e[2],e[1]]:[t],...e.slice(3),n.map(e=>h_(e)).join(`
373
- `)].map(e=>pf(tg(g_(e)))).filter(Boolean).join(`
366
+ It is optional and defaults to "${i}".`)},Mm=(e,t,n,r)=>{let i=r[Fm(e)];if(i===void 0)throw TypeError(`"${Im(n)}" must not be ${t}. That file descriptor does not exist.
367
+ Please set the "stdio" option to ensure that file descriptor exists.`);if(i.direction===`input`&&!n)throw TypeError(`"${Im(n)}" must not be ${t}. It must be a readable stream, not writable.`);if(i.direction!==`input`&&n)throw TypeError(`"${Im(n)}" must not be ${t}. It must be a writable stream, not readable.`)},Nm=(e,t,n,r)=>{if(e===`all`&&!n.all)return`The "all" option must be true to use "from: 'all'".`;let{optionName:i,optionValue:a}=Pm(e,n);return`The "${i}: ${Lm(a)}" option is incompatible with using "${Im(r)}: ${Lm(t)}".
368
+ Please set this option with "pipe" instead.`},Pm=(e,{stdin:t,stdout:n,stderr:r,stdio:i})=>{let a=Fm(e);return a===0&&t!==void 0?{optionName:`stdin`,optionValue:t}:a===1&&n!==void 0?{optionName:`stdout`,optionValue:n}:a===2&&r!==void 0?{optionName:`stderr`,optionValue:r}:{optionName:`stdio[${a}]`,optionValue:i[a]}},Fm=e=>e===`all`?1:e,Im=e=>e?`to`:`from`,Lm=e=>typeof e==`string`?`'${e}'`:typeof e==`number`?`${e}`:`Stream`,Rm=(e,t,n)=>{let r=e.getMaxListeners();r===0||r===1/0||(e.setMaxListeners(r+t),Le(n,()=>{e.setMaxListeners(e.getMaxListeners()-t)}))},zm=(e,t)=>{t&&Bm(e)},Bm=e=>{e.refCounted()},Vm=(e,t)=>{t&&Hm(e)},Hm=e=>{e.unrefCounted()},Um=(e,t)=>{t&&(Hm(e),Hm(e))},Wm=(e,t)=>{t&&(Bm(e),Bm(e))},Gm=async({anyProcess:e,channel:t,isSubprocess:n,ipcEmitter:r},i)=>{if(nh(i)||Ch(i))return;qm.has(e)||qm.set(e,[]);let a=qm.get(e);if(a.push(i),!(a.length>1))for(;a.length>0;){await uh(e,r,i),await he.yield();let o=await th({wrappedMessage:a[0],anyProcess:e,channel:t,isSubprocess:n,ipcEmitter:r});a.shift(),r.emit(`message`,o),r.emit(`message:done`)}},Km=async({anyProcess:e,channel:t,isSubprocess:n,ipcEmitter:r,boundOnMessage:i})=>{Th();let a=qm.get(e);for(;a?.length>0;)await x(r,`message:done`);e.removeListener(`message`,i),Wm(t,n),r.connected=!1,r.emit(`disconnect`)},qm=new WeakMap,Jm=(e,t,n)=>{if(Ym.has(e))return Ym.get(e);let r=new Ie;return r.connected=!0,Ym.set(e,r),Xm({ipcEmitter:r,anyProcess:e,channel:t,isSubprocess:n}),r},Ym=new WeakMap,Xm=({ipcEmitter:e,anyProcess:t,channel:n,isSubprocess:r})=>{let i=Gm.bind(void 0,{anyProcess:t,channel:n,isSubprocess:r,ipcEmitter:e});t.on(`message`,i),t.once(`disconnect`,Km.bind(void 0,{anyProcess:t,channel:n,isSubprocess:r,ipcEmitter:e,boundOnMessage:i})),Um(n,r)},Zm=e=>{let t=Ym.get(e);return t===void 0?e.channel!==null:t.connected},Qm=({anyProcess:e,channel:t,isSubprocess:n,message:r,strict:i})=>{if(!i)return r;let a=fh(e,Jm(e,t,n));return{id:$m++,type:oh,message:r,hasListeners:a}};let $m=0n;const eh=(e,t)=>{if(!(t?.type!==oh||t.hasListeners))for(let{id:t}of e)t!==void 0&&ih[t].resolve({isDeadlock:!0,hasListeners:!1})},th=async({wrappedMessage:e,anyProcess:t,channel:n,isSubprocess:r,ipcEmitter:i})=>{if(e?.type!==oh||!t.connected)return e;let{id:a,message:o}=e,s={id:a,type:sh,message:fh(t,i)};try{await mh({anyProcess:t,channel:n,isSubprocess:r,ipc:!0},s)}catch(e){i.emit(`strict:error`,e)}return o},nh=e=>{if(e?.type!==sh)return!1;let{id:t,message:n}=e;return ih[t]?.resolve({isDeadlock:!1,hasListeners:n}),!0},rh=async(e,t,n)=>{if(e?.type!==oh)return;let r=Em();ih[e.id]=r;let i=new AbortController;try{let{isDeadlock:e,hasListeners:a}=await Promise.race([r,ah(t,n,i)]);e&&fm(n),a||mm(n)}finally{i.abort(),delete ih[e.id]}},ih={},ah=async(e,t,{signal:n})=>{Rm(e,1,n),await x(e,`disconnect`,{signal:n}),hm(t)},oh=`execa:ipc:request`,sh=`execa:ipc:response`,ch=(e,t,n)=>{dh.has(e)||dh.set(e,new Set);let r=dh.get(e),i={onMessageSent:Em(),id:n?t.id:void 0};return r.add(i),{outgoingMessages:r,outgoingMessage:i}},lh=({outgoingMessages:e,outgoingMessage:t})=>{e.delete(t),t.onMessageSent.resolve()},uh=async(e,t,n)=>{for(;!fh(e,t)&&dh.get(e)?.size>0;){let t=[...dh.get(e)];eh(t,n),await Promise.all(t.map(({onMessageSent:e})=>e))}},dh=new WeakMap,fh=(e,t)=>t.listenerCount(`message`)>ph(e),ph=e=>km.has(e)&&!tf(km.get(e).options.buffer,`ipc`)?1:0,mh=({anyProcess:e,channel:t,isSubprocess:n,ipc:r},i,{strict:a=!1}={})=>{let o=`sendMessage`;return cm({methodName:o,isSubprocess:n,ipc:r,isConnected:e.connected}),hh({anyProcess:e,channel:t,methodName:o,isSubprocess:n,message:i,strict:a})},hh=async({anyProcess:e,channel:t,methodName:n,isSubprocess:r,message:i,strict:a})=>{let o=Qm({anyProcess:e,channel:t,isSubprocess:r,message:i,strict:a}),s=ch(e,o,a);try{await gh({anyProcess:e,methodName:n,isSubprocess:r,wrappedMessage:o,message:i})}catch(t){throw Tm(e),t}finally{lh(s)}},gh=async({anyProcess:e,methodName:t,isSubprocess:n,wrappedMessage:r,message:i})=>{let a=_h(e);try{await Promise.all([rh(r,e,n),a(r)])}catch(e){throw vm({error:e,methodName:t,isSubprocess:n}),ym({error:e,methodName:t,isSubprocess:n,message:i}),e}},_h=e=>{if(vh.has(e))return vh.get(e);let t=ke(e.send.bind(e));return vh.set(e,t),t},vh=new WeakMap,yh=(e,t)=>{let n=`cancelSignal`;return um(n,!1,e.connected),gh({anyProcess:e,methodName:n,isSubprocess:!1,wrappedMessage:{type:wh,message:t},message:t})},bh=async({anyProcess:e,channel:t,isSubprocess:n,ipc:r})=>(await xh({anyProcess:e,channel:t,isSubprocess:n,ipc:r}),Eh.signal),xh=async({anyProcess:e,channel:t,isSubprocess:n,ipc:r})=>{if(!Sh){if(Sh=!0,!r){_m();return}if(t===null){Th();return}Jm(e,t,n),await he.yield()}};let Sh=!1;const Ch=e=>e?.type===wh?(Eh.abort(e.message),!0):!1,wh=`execa:ipc:cancel`,Th=()=>{Eh.abort(gm())},Eh=new AbortController,Dh=({gracefulCancel:e,cancelSignal:t,ipc:n,serialization:r})=>{if(e){if(t===void 0)throw Error("The `cancelSignal` option must be defined when setting the `gracefulCancel` option.");if(!n)throw Error("The `ipc` option cannot be false when setting the `gracefulCancel` option.");if(r===`json`)throw Error("The `serialization` option cannot be 'json' when setting the `gracefulCancel` option.")}},Oh=({subprocess:e,cancelSignal:t,gracefulCancel:n,forceKillAfterDelay:r,context:i,controller:a})=>n?[kh({subprocess:e,cancelSignal:t,forceKillAfterDelay:r,context:i,controller:a})]:[],kh=async({subprocess:e,cancelSignal:t,forceKillAfterDelay:n,context:r,controller:{signal:i}})=>{throw await im(t,i),await yh(e,Ah(t)),rm({kill:e.kill,forceKillAfterDelay:n,context:r,controllerSignal:i}),r.terminationReason??=`gracefulCancel`,t.reason},Ah=({reason:e})=>{if(!(e instanceof DOMException))return e;let t=Error(e.message);return Object.defineProperty(t,"stack",{value:e.stack,enumerable:!1,configurable:!0,writable:!0}),t},jh=({timeout:e})=>{if(e!==void 0&&(!Number.isFinite(e)||e<0))throw TypeError(`Expected the \`timeout\` option to be a non-negative integer, got \`${e}\` (${typeof e})`)},Mh=(e,t,n,r)=>t===0||t===void 0?[]:[Nh(e,t,n,r)],Nh=async(e,t,n,{signal:r})=>{throw await _e(t,void 0,{signal:r}),n.terminationReason??=`timeout`,e.kill(),new Sp},Ph=({options:e})=>{if(e.node===!1)throw TypeError('The "node" option cannot be false with `execaNode()`.');return{options:{...e,node:!0}}},Fh=(e,t,{node:n=!1,nodePath:r=Me,nodeOptions:i=je.filter(e=>!e.startsWith(`--inspect`)),cwd:a,execPath:o,...s})=>{if(o!==void 0)throw TypeError(`The "execPath" option has been removed. Please use the "nodePath" option instead.`);let c=fd(r,`The "nodePath" option`),l=h.resolve(a,c),u={...s,nodePath:l,node:n,cwd:a};if(!n)return[e,t,u];if(h.basename(e,`.exe`)===`node`)throw TypeError(`When the "node" option is true, the first argument does not need to be "node".`);return[l,[...i,e,...t],{ipc:!0,...u,shell:!1}]},Ih=({ipcInput:e,ipc:t,serialization:n})=>{if(e!==void 0){if(!t)throw Error("The `ipcInput` option cannot be set unless the `ipc` option is `true`.");Lh[n](e)}},Lh={advanced:e=>{try{Be(e)}catch(e){throw Error("The `ipcInput` option is not serializable with a structured clone.",{cause:e})}},json:e=>{try{JSON.stringify(e)}catch(e){throw Error("The `ipcInput` option is not serializable with JSON.",{cause:e})}}},Rh=async(e,t)=>{t!==void 0&&await e.sendMessage(t)},zh=({encoding:e})=>{if(Hh.has(e))return;let t=Uh(e);if(t!==void 0)throw TypeError(`Invalid option \`encoding: ${Gh(e)}\`.
369
+ Please rename it to ${Gh(t)}.`);let n=[...Hh].map(e=>Gh(e)).join(`, `);throw TypeError(`Invalid option \`encoding: ${Gh(e)}\`.
370
+ Please rename it to one of: ${n}.`)},Bh=new Set([`utf8`,`utf16le`]),Vh=new Set([`buffer`,`hex`,`base64`,`base64url`,`latin1`,`ascii`]),Hh=new Set([...Bh,...Vh]),Uh=e=>{if(e===null)return`buffer`;if(typeof e!=`string`)return;let t=e.toLowerCase();if(t in Wh)return Wh[t];if(Hh.has(t))return t},Wh={"utf-8":`utf8`,"utf-16le":`utf16le`,"ucs-2":`utf16le`,ucs2:`utf16le`,binary:`latin1`},Gh=e=>typeof e==`string`?`"${e}"`:String(e),Kh=(e=qh())=>{let t=fd(e,`The "cwd" option`);return h.resolve(t)},qh=()=>{try{return b.cwd()}catch(e){throw e.message=`The current directory does not exist.\n${e.message}`,e}},Jh=(e,t)=>{if(t===qh())return e;let n;try{n=de(t)}catch(n){return`The "cwd" option is invalid: ${t}.\n${n.message}\n${e}`}return n.isDirectory()?e:`The "cwd" option is not a directory: ${t}.\n${e}`},Yh=(e,t,n)=>{n.cwd=Kh(n.cwd);let[r,i,a]=Fh(e,t,n),{command:o,args:s,options:c}=pp.default._parse(r,i,a),l=Hd(c),u=Xh(l);return jh(u),zh(u),Ih(u),am(u),Dh(u),u.shell=hd(u.shell),u.env=Zh(u),u.killSignal=Vp(u.killSignal),u.forceKillAfterDelay=Zp(u.forceKillAfterDelay),u.lines=u.lines.map((e,t)=>e&&!Vh.has(u.encoding)&&u.buffer[t]),b.platform===`win32`&&h.basename(o,`.exe`)===`cmd`&&s.unshift(`/q`),{file:o,commandArguments:s,options:u}},Xh=({extendEnv:e=!0,preferLocal:t=!1,cwd:n,localDir:r=n,encoding:i=`utf8`,reject:a=!0,cleanup:o=!0,all:s=!1,windowsHide:c=!0,killSignal:l=`SIGTERM`,forceKillAfterDelay:u=!0,gracefulCancel:d=!1,ipcInput:f,ipc:p=f!==void 0||d,serialization:m=`advanced`,...h})=>({...h,extendEnv:e,preferLocal:t,cwd:n,localDirectory:r,encoding:i,reject:a,cleanup:o,all:s,windowsHide:c,killSignal:l,forceKillAfterDelay:u,gracefulCancel:d,ipcInput:f,ipc:p,serialization:m}),Zh=({env:e,extendEnv:t,preferLocal:n,node:r,localDirectory:i,nodePath:a})=>{let o=t?{...b.env,...e}:e;return n||r?bp({env:o,cwd:i,execPath:a,preferLocal:n,addExecPath:r}):o},Qh=(e,t,n)=>n.shell&&t.length>0?[[e,...t].join(` `),[],n]:[e,t,n];function $h(e){if(typeof e==`string`)return eg(e);if(!(ArrayBuffer.isView(e)&&e.BYTES_PER_ELEMENT===1))throw Error(`Input must be a string or a Uint8Array`);return tg(e)}const eg=e=>e.at(-1)===ng?e.slice(0,e.at(-2)===ig?-2:-1):e,tg=e=>e.at(-1)===rg?e.subarray(0,e.at(-2)===ag?-2:-1):e,ng=`
371
+ `,rg=`
372
+ `.codePointAt(0),ig=`\r`,ag=`\r`.codePointAt(0);function og(e,{checkOpen:t=!0}={}){return typeof e==`object`&&!!e&&(e.writable||e.readable||!t||e.writable===void 0&&e.readable===void 0)&&typeof e.pipe==`function`}function sg(e,{checkOpen:t=!0}={}){return og(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`}function cg(e,{checkOpen:t=!0}={}){return og(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`}function lg(e,t){return sg(e,t)&&cg(e,t)}const ug=Object.getPrototypeOf(Object.getPrototypeOf(async function*(){}).prototype);var dg=class{#e;#t;#n=!1;#r=void 0;constructor(e,t){this.#e=e,this.#t=t}next(){let e=()=>this.#i();return this.#r=this.#r?this.#r.then(e,e):e(),this.#r}return(e){let t=()=>this.#a(e);return this.#r?this.#r.then(t,t):t()}async#i(){if(this.#n)return{done:!0,value:void 0};let e;try{e=await this.#e.read()}catch(e){throw this.#r=void 0,this.#n=!0,this.#e.releaseLock(),e}return e.done&&(this.#r=void 0,this.#n=!0,this.#e.releaseLock()),e}async#a(e){if(this.#n)return{done:!0,value:e};if(this.#n=!0,!this.#t){let t=this.#e.cancel(e);return this.#e.releaseLock(),await t,{done:!0,value:e}}return this.#e.releaseLock(),{done:!0,value:e}}};const fg=Symbol();function pg(){return this[fg].next()}Object.defineProperty(pg,"name",{value:`next`});function mg(e){return this[fg].return(e)}Object.defineProperty(mg,"name",{value:`return`});const hg=Object.create(ug,{next:{enumerable:!0,configurable:!0,writable:!0,value:pg},return:{enumerable:!0,configurable:!0,writable:!0,value:mg}});function gg({preventCancel:e=!1}={}){let t=new dg(this.getReader(),e),n=Object.create(hg);return n[fg]=t,n}const _g=e=>{if(cg(e,{checkOpen:!1})&&xg.on!==void 0)return yg(e);if(typeof e?.[Symbol.asyncIterator]==`function`)return e;if(vg.call(e)===`[object ReadableStream]`)return gg.call(e);throw TypeError(`The first argument must be a Readable, a ReadableStream, or an async iterable.`)},{toString:vg}=Object.prototype,yg=async function*(e){let t=new AbortController,n={};bg(e,t,n);try{for await(let[n]of xg.on(e,`data`,{signal:t.signal}))yield n}catch(e){if(n.error!==void 0)throw n.error;if(!t.signal.aborted)throw e}finally{e.destroy()}},bg=async(e,t,n)=>{try{await xg.finished(e,{cleanup:!0,readable:!0,writable:!1,error:!1})}catch(e){n.error=e}finally{t.abort()}},xg={},Sg=async(e,{init:t,convertChunk:n,getSize:r,truncateChunk:i,addChunk:a,getFinalChunk:o,finalize:s},{maxBuffer:c=1/0}={})=>{let l=_g(e),u=t();u.length=0;try{for await(let e of l){let t=n[Eg(e)](e,u);wg({convertedChunk:t,state:u,getSize:r,truncateChunk:i,addChunk:a,maxBuffer:c})}return Cg({state:u,convertChunk:n,getSize:r,truncateChunk:i,addChunk:a,getFinalChunk:o,maxBuffer:c}),s(u)}catch(e){let t=typeof e==`object`&&e?e:Error(e);throw t.bufferedData=s(u),t}},Cg=({state:e,getSize:t,truncateChunk:n,addChunk:r,getFinalChunk:i,maxBuffer:a})=>{let o=i(e);o!==void 0&&wg({convertedChunk:o,state:e,getSize:t,truncateChunk:n,addChunk:r,maxBuffer:a})},wg=({convertedChunk:e,state:t,getSize:n,truncateChunk:r,addChunk:i,maxBuffer:a})=>{let o=n(e),s=t.length+o;if(s<=a){Tg(e,t,i,s);return}let c=r(e,a-t.length);throw c!==void 0&&Tg(c,t,i,a),new Og},Tg=(e,t,n,r)=>{t.contents=n(e,t,r),t.length=r},Eg=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 n=Dg.call(e);return n===`[object ArrayBuffer]`?`arrayBuffer`:n===`[object DataView]`?`dataView`:Number.isInteger(e.byteLength)&&Number.isInteger(e.byteOffset)&&Dg.call(e.buffer)===`[object ArrayBuffer]`?`typedArray`:`others`},{toString:Dg}=Object.prototype;var Og=class extends Error{name=`MaxBufferError`;constructor(){super(`maxBuffer exceeded`)}};const kg=e=>e,Ag=()=>void 0,jg=({contents:e})=>e,Mg=e=>{throw Error(`Streams in object mode are not supported: ${String(e)}`)},Ng=e=>e.length;async function Pg(e,t){return Sg(e,Fg,t)}const Fg={init:()=>({contents:[]}),convertChunk:{string:kg,buffer:kg,arrayBuffer:kg,dataView:kg,typedArray:kg,others:kg},getSize:()=>1,truncateChunk:Ag,addChunk:(e,{contents:t})=>(t.push(e),t),getFinalChunk:Ag,finalize:jg};async function Ig(e,t){return Sg(e,Xg,t)}const Lg=()=>({contents:new ArrayBuffer(0)}),Rg=e=>zg.encode(e),zg=new TextEncoder,Bg=e=>new Uint8Array(e),Vg=e=>new Uint8Array(e.buffer,e.byteOffset,e.byteLength),Hg=(e,t)=>e.slice(0,t),Ug=(e,{contents:t,length:n},r)=>{let i=Yg()?Gg(t,r):Wg(t,r);return new Uint8Array(i).set(e,n),i},Wg=(e,t)=>{if(t<=e.byteLength)return e;let n=new ArrayBuffer(Kg(t));return new Uint8Array(n).set(new Uint8Array(e),0),n},Gg=(e,t)=>{if(t<=e.maxByteLength)return e.resize(t),e;let n=new ArrayBuffer(t,{maxByteLength:Kg(t)});return new Uint8Array(n).set(new Uint8Array(e),0),n},Kg=e=>qg**Math.ceil(Math.log(e)/Math.log(qg)),qg=2,Jg=({contents:e,length:t})=>Yg()?e:e.slice(0,t),Yg=()=>`resize`in ArrayBuffer.prototype,Xg={init:Lg,convertChunk:{string:Rg,buffer:Bg,arrayBuffer:Bg,dataView:Vg,typedArray:Vg,others:Mg},getSize:Ng,truncateChunk:Hg,addChunk:Ug,getFinalChunk:Ag,finalize:Jg};async function Zg(e,t){return Sg(e,e_,t)}const Qg=()=>({contents:``,textDecoder:new TextDecoder}),$g=(e,{textDecoder:t})=>t.decode(e,{stream:!0}),e_={init:Qg,convertChunk:{string:kg,buffer:$g,arrayBuffer:$g,dataView:$g,typedArray:$g,others:Mg},getSize:Ng,truncateChunk:(e,t)=>e.slice(0,t),addChunk:(e,{contents:t})=>t+e,getFinalChunk:({textDecoder:e})=>{let t=e.decode();return t===``?void 0:t},finalize:jg},t_=({error:e,stream:t,readableObjectMode:n,lines:r,encoding:i,fdNumber:a})=>{if(!(e instanceof Og))throw e;if(a===`all`)return e;throw e.maxBufferInfo={fdNumber:a,unit:n_(n,r,i)},t.destroy(),e},n_=(e,t,n)=>e?`objects`:t?`lines`:n===`buffer`?`bytes`:`characters`,r_=(e,t,n)=>{if(t.length!==n)return;let r=new Og;throw r.maxBufferInfo={fdNumber:`ipc`},r},i_=(e,t)=>{let{streamName:n,threshold:r,unit:i}=a_(e,t);return`Command's ${n} was larger than ${r} ${i}`},a_=(e,t)=>{if(e?.maxBufferInfo===void 0)return{streamName:`output`,threshold:t[1],unit:`bytes`};let{maxBufferInfo:{fdNumber:n,unit:r}}=e;delete e.maxBufferInfo;let i=tf(t,n);return n===`ipc`?{streamName:`IPC output`,threshold:i,unit:`messages`}:{streamName:Vd(n),threshold:i,unit:r}},o_=(e,t,n)=>e?.code===`ENOBUFS`&&t!==null&&t.some(e=>e!==null&&e.length>c_(n)),s_=(e,t,n)=>{if(!t)return e;let r=c_(n);return e.length>r?e.slice(0,r):e},c_=([,e])=>e,l_=({stdio:e,all:t,ipcOutput:n,originalError:r,signal:i,signalDescription:a,exitCode:o,escapedCommand:s,timedOut:c,isCanceled:l,isGracefullyCanceled:u,isMaxBuffer:d,isForcefullyTerminated:f,forceKillAfterDelay:p,killSignal:m,maxBuffer:h,timeout:g,cwd:_})=>{let v=r?.code,y=u_({originalError:r,timedOut:c,timeout:g,isMaxBuffer:d,maxBuffer:h,errorCode:v,signal:i,signalDescription:a,exitCode:o,isCanceled:l,isGracefullyCanceled:u,isForcefullyTerminated:f,forceKillAfterDelay:p,killSignal:m}),ee=f_(r,_),te=`${y}: ${s}${ee===void 0?``:`\n${ee}`}`;return{originalMessage:ee,shortMessage:te,message:[te,...t===void 0?[e[2],e[1]]:[t],...e.slice(3),n.map(e=>p_(e)).join(`
373
+ `)].map(e=>df($h(m_(e)))).filter(Boolean).join(`
374
374
 
375
- `)}},f_=({originalError:e,timedOut:t,timeout:n,isMaxBuffer:r,maxBuffer:i,errorCode:a,signal:o,signalDescription:s,exitCode:c,isCanceled:l,isGracefullyCanceled:u,isForcefullyTerminated:d,forceKillAfterDelay:f,killSignal:p})=>{let m=p_(d,f);return t?`Command timed out after ${n} milliseconds${m}`:u?o===void 0?`Command was gracefully canceled with exit code ${c}`:d?`Command was gracefully canceled${m}`:`Command was gracefully canceled with ${o} (${s})`:l?`Command was canceled${m}`:r?`${o_(e,i)}${m}`:a===void 0?d?`Command was killed with ${p} (${Qp(p)})${m}`:o===void 0?c===void 0?`Command failed`:`Command failed with exit code ${c}`:`Command was killed with ${o} (${s})`:`Command failed with ${a}${m}`},p_=(e,t)=>e?` and was forcefully terminated after ${t} milliseconds`:``,m_=(e,t)=>{if(e instanceof wp)return;let n=pf(Xh(Ep(e)?e.originalMessage:String(e?.message??e),t));return n===``?void 0:n},h_=e=>typeof e==`string`?e:Oe(e),g_=e=>Array.isArray(e)?e.map(e=>tg(__(e))).filter(Boolean).join(`
376
- `):__(e),__=e=>typeof e==`string`?e:q(e)?wd(e):``,v_=({command:e,escapedCommand:t,stdio:n,all:r,ipcOutput:i,options:{cwd:a},startTime:o})=>S_({command:e,escapedCommand:t,cwd:a,durationMs:tp(o),failed:!1,timedOut:!1,isCanceled:!1,isGracefullyCanceled:!1,isTerminated:!1,isMaxBuffer:!1,isForcefullyTerminated:!1,exitCode:0,stdout:n[1],stderr:n[2],all:r,stdio:n,ipcOutput:i,pipedFrom:[]}),y_=({error:e,command:t,escapedCommand:n,fileDescriptors:r,options:i,startTime:a,isSync:o})=>b_({error:e,command:t,escapedCommand:n,startTime:a,timedOut:!1,isCanceled:!1,isGracefullyCanceled:!1,isMaxBuffer:!1,isForcefullyTerminated:!1,stdio:Array.from({length:r.length}),ipcOutput:[],options:i,isSync:o}),b_=({error:e,command:t,escapedCommand:n,startTime:r,timedOut:i,isCanceled:a,isGracefullyCanceled:o,isMaxBuffer:s,isForcefullyTerminated:c,exitCode:l,signal:u,stdio:d,all:f,ipcOutput:p,options:{timeoutDuration:m,timeout:h=m,forceKillAfterDelay:g,killSignal:_,cwd:v,maxBuffer:y},isSync:ee})=>{let{exitCode:te,signal:ne,signalDescription:re}=C_(l,u),{originalMessage:ie,shortMessage:ae,message:oe}=d_({stdio:d,all:f,ipcOutput:p,originalError:e,signal:ne,signalDescription:re,exitCode:te,escapedCommand:n,timedOut:i,isCanceled:a,isGracefullyCanceled:o,isMaxBuffer:s,isForcefullyTerminated:c,forceKillAfterDelay:g,killSignal:_,maxBuffer:y,timeout:h,cwd:v}),se=Cp(e,oe,ee);return Object.assign(se,x_({error:se,command:t,escapedCommand:n,startTime:r,timedOut:i,isCanceled:a,isGracefullyCanceled:o,isMaxBuffer:s,isForcefullyTerminated:c,exitCode:te,signal:ne,signalDescription:re,stdio:d,all:f,ipcOutput:p,cwd:v,originalMessage:ie,shortMessage:ae})),se},x_=({error:e,command:t,escapedCommand:n,startTime:r,timedOut:i,isCanceled:a,isGracefullyCanceled:o,isMaxBuffer:s,isForcefullyTerminated:c,exitCode:l,signal:u,signalDescription:d,stdio:f,all:p,ipcOutput:m,cwd:h,originalMessage:g,shortMessage:_})=>S_({shortMessage:_,originalMessage:g,command:t,escapedCommand:n,cwd:h,durationMs:tp(r),failed:!0,timedOut:i,isCanceled:a,isGracefullyCanceled:o,isTerminated:u!==void 0,isMaxBuffer:s,isForcefullyTerminated:c,exitCode:l,signal:u,signalDescription:d,code:e.cause?.code,stdout:f[1],stderr:f[2],all:p,stdio:f,ipcOutput:m,pipedFrom:[]}),S_=e=>Object.fromEntries(Object.entries(e).filter(([,e])=>e!==void 0)),C_=(e,t)=>{let n=e===null?void 0:e,r=t===null?void 0:t;return{exitCode:n,signal:r,signalDescription:r===void 0?void 0:Qp(t)}},w_=e=>Number.isFinite(e)?e:0;function T_(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(w_(e*1e3)%1e3),nanoseconds:Math.trunc(w_(e*1e6)%1e3)}}function E_(e){return{days:e/86400000n,hours:e/3600000n%24n,minutes:e/60000n%60n,seconds:e/1000n%60n,milliseconds:e%1000n,microseconds:0n,nanoseconds:0n}}function D_(e){switch(typeof e){case`number`:if(Number.isFinite(e))return T_(e);break;case`bigint`:return E_(e)}throw TypeError(`Expected a finite number or bigint`)}const O_=e=>e===0||e===0n,k_=(e,t)=>t===1||t===1n?e:`${e}s`,A_=24n*60n*60n*1000n;function j_(e,t){let n=typeof e==`bigint`;if(!n&&!Number.isFinite(e))throw TypeError(`Expected a finite number or bigint`);t={...t};let r=e<0?`-`:``;e=e<0?-e:e,t.colonNotation&&(t.compact=!1,t.formatSubMilliseconds=!1,t.separateMilliseconds=!1,t.verbose=!1),t.compact&&(t.unitCount=1,t.secondsDecimalDigits=0,t.millisecondsDecimalDigits=0);let i=[],a=(e,t)=>{let n=Math.floor(e*10**t+1e-7);return(Math.round(n)/10**t).toFixed(t)},o=(e,n,r,a)=>{if(!((i.length===0||!t.colonNotation)&&O_(e)&&!(t.colonNotation&&r===`m`))){if(a??=String(e),t.colonNotation){let e=a.includes(`.`)?a.split(`.`)[0].length:a.length,t=i.length>0?2:1;a=`0`.repeat(Math.max(0,t-e))+a}else a+=t.verbose?` `+k_(n,e):r;i.push(a)}},s=D_(e),c=BigInt(s.days);if(t.hideYearAndDays?o(BigInt(c)*24n+BigInt(s.hours),`hour`,`h`):(t.hideYear?o(c,`day`,`d`):(o(c/365n,`year`,`y`),o(c%365n,`day`,`d`)),o(Number(s.hours),`hour`,`h`)),o(Number(s.minutes),`minute`,`m`),!t.hideSeconds)if(t.separateMilliseconds||t.formatSubMilliseconds||!t.colonNotation&&e<1e3&&!t.subSecondsAsDecimals){let e=Number(s.seconds),n=Number(s.milliseconds),r=Number(s.microseconds),i=Number(s.nanoseconds);if(o(e,`second`,`s`),t.formatSubMilliseconds)o(n,`millisecond`,`ms`),o(r,`microsecond`,`µs`),o(i,`nanosecond`,`ns`);else{let e=n+r/1e3+i/1e6,a=typeof t.millisecondsDecimalDigits==`number`?t.millisecondsDecimalDigits:0,s=a?e.toFixed(a):e>=1?Math.round(e):Math.ceil(e);o(Number.parseFloat(s),`millisecond`,`ms`,s)}}else{let r=a((n?Number(e%A_):e)/1e3%60,typeof t.secondsDecimalDigits==`number`?t.secondsDecimalDigits:1),i=t.keepDecimalsOnWholeSeconds?r:r.replace(/\.0+$/,``);o(Number.parseFloat(i),`second`,`s`,i)}if(i.length===0)return r+`0`+(t.verbose?` milliseconds`:`ms`);let l=t.colonNotation?`:`:` `;return typeof t.unitCount==`number`&&(i=i.slice(0,Math.max(t.unitCount,1))),r+i.join(l)}const M_=(e,t)=>{e.failed&&Uf({type:`error`,verboseMessage:e.shortMessage,verboseInfo:t,result:e})},N_=(e,t)=>{af(t)&&(M_(e,t),P_(e,t))},P_=(e,t)=>{Uf({type:`duration`,verboseMessage:`(done in ${j_(e.durationMs)})`,verboseInfo:t,result:e})},F_=(e,t,{reject:n})=>{if(N_(e,t),e.failed&&n)throw e;return e},I_=(e,t)=>G_(e)?`asyncGenerator`:K_(e)?`generator`:J_(e)?`fileUrl`:X_(e)?`filePath`:rv(e)?`webStream`:cg(e,{checkOpen:!1})?`native`:q(e)?`uint8Array`:av(e)?`asyncIterable`:ov(e)?`iterable`:iv(e)?z_({transform:e},t):q_(e)?L_(e,t):`native`,L_=(e,t)=>dg(e.transform,{checkOpen:!1})?R_(e,t):iv(e.transform)?z_(e,t):H_(e,t),R_=(e,t)=>(B_(e,t,`Duplex stream`),`duplex`),z_=(e,t)=>(B_(e,t,`web TransformStream`),`webTransform`),B_=({final:e,binary:t,objectMode:n},r,i)=>{V_(e,`${r}.final`,i),V_(t,`${r}.binary`,i),U_(n,`${r}.objectMode`)},V_=(e,t,n)=>{if(e!==void 0)throw TypeError(`The \`${t}\` option can only be defined when using a generator, not a ${n}.`)},H_=({transform:e,final:t,binary:n,objectMode:r},i)=>{if(e!==void 0&&!W_(e))throw TypeError(`The \`${i}.transform\` option must be a generator, a Duplex stream or a web TransformStream.`);if(dg(t,{checkOpen:!1}))throw TypeError(`The \`${i}.final\` option must not be a Duplex stream.`);if(iv(t))throw TypeError(`The \`${i}.final\` option must not be a web TransformStream.`);if(t!==void 0&&!W_(t))throw TypeError(`The \`${i}.final\` option must be a generator.`);return U_(n,`${i}.binary`),U_(r,`${i}.objectMode`),G_(e)||G_(t)?`asyncGenerator`:`generator`},U_=(e,t)=>{if(e!==void 0&&typeof e!=`boolean`)throw TypeError(`The \`${t}\` option must use a boolean.`)},W_=e=>G_(e)||K_(e),G_=e=>Object.prototype.toString.call(e)===`[object AsyncGeneratorFunction]`,K_=e=>Object.prototype.toString.call(e)===`[object GeneratorFunction]`,q_=e=>K(e)&&(e.transform!==void 0||e.final!==void 0),J_=e=>Object.prototype.toString.call(e)===`[object URL]`,Y_=e=>J_(e)&&e.protocol!==`file:`,X_=e=>K(e)&&Object.keys(e).length>0&&Object.keys(e).every(e=>Z_.has(e))&&Q_(e.file),Z_=new Set([`file`,`append`]),Q_=e=>typeof e==`string`,$_=(e,t)=>e===`native`&&typeof t==`string`&&!ev.has(t),ev=new Set([`ipc`,`ignore`,`inherit`,`overlapped`,`pipe`]),tv=e=>Object.prototype.toString.call(e)===`[object ReadableStream]`,nv=e=>Object.prototype.toString.call(e)===`[object WritableStream]`,rv=e=>tv(e)||nv(e),iv=e=>tv(e?.readable)&&nv(e?.writable),av=e=>sv(e)&&typeof e[Symbol.asyncIterator]==`function`,ov=e=>sv(e)&&typeof e[Symbol.iterator]==`function`,sv=e=>typeof e==`object`&&!!e,cv=new Set([`generator`,`asyncGenerator`,`duplex`,`webTransform`]),lv=new Set([`fileUrl`,`filePath`,`fileNumber`]),uv=new Set([`fileUrl`,`filePath`]),dv=new Set([...uv,`webStream`,`nodeStream`]),fv=new Set([`webTransform`,`duplex`]),pv={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`},mv=(e,t,n,r)=>r===`output`?hv(e,t,n):gv(e,t,n),hv=(e,t,n)=>{let r=t!==0&&n[t-1].value.readableObjectMode;return{writableObjectMode:r,readableObjectMode:e??r}},gv=(e,t,n)=>{let r=t===0?e===!0:n[t-1].value.readableObjectMode;return{writableObjectMode:r,readableObjectMode:t!==n.length-1&&(e??r)}},_v=(e,t)=>{let n=e.findLast(({type:e})=>cv.has(e));return n===void 0?!1:t===`input`?n.value.writableObjectMode:n.value.readableObjectMode},vv=(e,t,n,r)=>[...e.filter(({type:e})=>!cv.has(e)),...yv(e,t,n,r)],yv=(e,t,n,{encoding:r})=>{let i=e.filter(({type:e})=>cv.has(e)),a=Array.from({length:i.length});for(let[e,o]of Object.entries(i))a[e]=bv({stdioItem:o,index:Number(e),newTransforms:a,optionName:t,direction:n,encoding:r});return wv(a,n)},bv=({stdioItem:e,stdioItem:{type:t},index:n,newTransforms:r,optionName:i,direction:a,encoding:o})=>t===`duplex`?xv({stdioItem:e,optionName:i}):t===`webTransform`?Sv({stdioItem:e,index:n,newTransforms:r,direction:a}):Cv({stdioItem:e,index:n,newTransforms:r,direction:a,encoding:o}),xv=({stdioItem:e,stdioItem:{value:{transform:t,transform:{writableObjectMode:n,readableObjectMode:r},objectMode:i=r}},optionName:a})=>{if(i&&!r)throw TypeError(`The \`${a}.objectMode\` option can only be \`true\` if \`new Duplex({objectMode: true})\` is used.`);if(!i&&r)throw TypeError(`The \`${a}.objectMode\` option cannot be \`false\` if \`new Duplex({objectMode: true})\` is used.`);return{...e,value:{transform:t,writableObjectMode:n,readableObjectMode:r}}},Sv=({stdioItem:e,stdioItem:{value:t},index:n,newTransforms:r,direction:i})=>{let{transform:a,objectMode:o}=K(t)?t:{transform:t},{writableObjectMode:s,readableObjectMode:c}=mv(o,n,r,i);return{...e,value:{transform:a,writableObjectMode:s,readableObjectMode:c}}},Cv=({stdioItem:e,stdioItem:{value:t},index:n,newTransforms:r,direction:i,encoding:a})=>{let{transform:o,final:s,binary:c=!1,preserveNewlines:l=!1,objectMode:u}=K(t)?t:{transform:t},d=c||Uh.has(a),{writableObjectMode:f,readableObjectMode:p}=mv(u,n,r,i);return{...e,value:{transform:o,final:s,binary:d,preserveNewlines:l,writableObjectMode:f,readableObjectMode:p}}},wv=(e,t)=>t===`input`?e.reverse():e,Tv=(e,t,n)=>{let r=e.map(e=>Ev(e,t));if(r.includes(`input`)&&r.includes(`output`))throw TypeError(`The \`${n}\` option must not be an array of both readable and writable values.`);return r.find(Boolean)??Mv},Ev=({type:e,value:t},n)=>Dv[n]??Av[e](t),Dv=[`input`,`output`,`output`],Ov=()=>void 0,kv=()=>`input`,Av={generator:Ov,asyncGenerator:Ov,fileUrl:Ov,filePath:Ov,iterable:kv,asyncIterable:kv,uint8Array:kv,webStream:e=>nv(e)?`output`:`input`,nodeStream(e){return ug(e,{checkOpen:!1})?lg(e,{checkOpen:!1})?void 0:`input`:`output`},webTransform:Ov,duplex:Ov,native(e){let t=jv(e);if(t!==void 0)return t;if(cg(e,{checkOpen:!1}))return Av.nodeStream(e)}},jv=e=>{if([0,b.stdin].includes(e))return`input`;if([1,2,b.stdout,b.stderr].includes(e))return`output`},Mv=`output`,Nv=(e,t)=>t&&!e.includes(`ipc`)?[...e,`ipc`]:e,Pv=({stdio:e,ipc:t,buffer:n,...r},i,a)=>{let o=Fv(e,r).map((e,t)=>Lv(e,t));return a?Rv(o,n,i):Nv(o,t)},Fv=(e,t)=>{if(e===void 0)return Hd.map(e=>t[e]);if(Iv(t))throw Error(`It's not possible to provide \`stdio\` in combination with one of ${Hd.map(e=>`\`${e}\``).join(`, `)}`);if(typeof e==`string`)return[e,e,e];if(!Array.isArray(e))throw TypeError(`Expected \`stdio\` to be of type \`string\` or \`Array\`, got \`${typeof e}\``);let n=Math.max(e.length,Hd.length);return Array.from({length:n},(t,n)=>e[n])},Iv=e=>Hd.some(t=>e[t]!==void 0),Lv=(e,t)=>Array.isArray(e)?e.map(e=>Lv(e,t)):e??(t>=Hd.length?`ignore`:`pipe`),Rv=(e,t,n)=>e.map((e,r)=>!t[r]&&r!==0&&!of(n,r)&&zv(e)?`ignore`:e),zv=e=>e===`pipe`||Array.isArray(e)&&e.every(e=>e===`pipe`),Bv=({stdioItem:e,stdioItem:{type:t},isStdioArray:n,fdNumber:r,direction:i,isSync:a})=>!n||t!==`native`?e:a?Vv({stdioItem:e,fdNumber:r,direction:i}):Wv({stdioItem:e,fdNumber:r}),Vv=({stdioItem:e,stdioItem:{value:t,optionName:n},fdNumber:r,direction:i})=>{let a=Hv({value:t,optionName:n,fdNumber:r,direction:i});if(a!==void 0)return a;if(cg(t,{checkOpen:!1}))throw TypeError(`The \`${n}: Stream\` option cannot both be an array and include a stream with synchronous methods.`);return e},Hv=({value:e,optionName:t,fdNumber:n,direction:r})=>{let i=Uv(e,n);if(i!==void 0){if(r===`output`)return{type:`fileNumber`,value:i,optionName:t};if(Fe.isatty(i))throw TypeError(`The \`${t}: ${zm(e)}\` option is invalid: it cannot be a TTY with synchronous methods.`);return{type:`uint8Array`,value:bd(le(i)),optionName:t}}},Uv=(e,t)=>{if(e===`inherit`)return t;if(typeof e==`number`)return e;let n=Vd.indexOf(e);if(n!==-1)return n},Wv=({stdioItem:e,stdioItem:{value:t,optionName:n},fdNumber:r})=>t===`inherit`?{type:`nodeStream`,value:Gv(r,t,n),optionName:n}:typeof t==`number`?{type:`nodeStream`,value:Gv(t,t,n),optionName:n}:cg(t,{checkOpen:!1})?{type:`nodeStream`,value:t,optionName:n}:e,Gv=(e,t,n)=>{let r=Vd[e];if(r===void 0)throw TypeError(`The \`${n}: ${t}\` option is invalid: no such standard stream.`);return r},Kv=({input:e,inputFile:t},n)=>n===0?[...qv(e),...Yv(t)]:[],qv=e=>e===void 0?[]:[{type:Jv(e),value:e,optionName:`input`}],Jv=e=>{if(ug(e,{checkOpen:!1}))return`nodeStream`;if(typeof e==`string`)return`string`;if(q(e))return`uint8Array`;throw Error("The `input` option must be a string, a Uint8Array or a Node.js Readable stream.")},Yv=e=>e===void 0?[]:[{...Xv(e),optionName:`inputFile`}],Xv=e=>{if(J_(e))return{type:`fileUrl`,value:e};if(Q_(e))return{type:`filePath`,value:{file:e}};throw Error("The `inputFile` option must be a file path string or a file URL.")},Zv=e=>e.filter((t,n)=>e.every((e,r)=>t.value!==e.value||n>=r||t.type===`generator`||t.type===`asyncGenerator`)),Qv=({stdioItem:{type:e,value:t,optionName:n},direction:r,fileDescriptors:i,isSync:a})=>{let o=$v(i,e);if(o.length!==0){if(a){ey({otherStdioItems:o,type:e,value:t,optionName:n,direction:r});return}if(dv.has(e))return ty({otherStdioItems:o,type:e,value:t,optionName:n,direction:r});fv.has(e)&&ry({otherStdioItems:o,type:e,value:t,optionName:n})}},$v=(e,t)=>e.flatMap(({direction:e,stdioItems:n})=>n.filter(e=>e.type===t).map((t=>({...t,direction:e})))),ey=({otherStdioItems:e,type:t,value:n,optionName:r,direction:i})=>{uv.has(t)&&ty({otherStdioItems:e,type:t,value:n,optionName:r,direction:i})},ty=({otherStdioItems:e,type:t,value:n,optionName:r,direction:i})=>{let a=e.filter(e=>ny(e,n));if(a.length===0)return;let o=a.find(e=>e.direction!==i);return iy(o,r,t),i===`output`?a[0].stream:void 0},ny=({type:e,value:t},n)=>e===`filePath`?t.file===n.file:e===`fileUrl`?t.href===n.href:t===n,ry=({otherStdioItems:e,type:t,value:n,optionName:r})=>{let i=e.find(({value:{transform:e}})=>e===n.transform);iy(i,r,t)},iy=(e,t,n)=>{if(e!==void 0)throw TypeError(`The \`${e.optionName}\` and \`${t}\` options must not target ${pv[n]} that is the same.`)},ay=(e,t,n,r)=>{let i=Pv(t,n,r).map((e,n)=>oy({stdioOption:e,fdNumber:n,options:t,isSync:r})),a=my({initialFileDescriptors:i,addProperties:e,options:t,isSync:r});return t.stdio=a.map(({stdioItems:e})=>vy(e)),a},oy=({stdioOption:e,fdNumber:t,options:n,isSync:r})=>{let i=Ud(t),{stdioItems:a,isStdioArray:o}=sy({stdioOption:e,fdNumber:t,options:n,optionName:i}),s=Tv(a,t,i),c=vv(a.map(e=>Bv({stdioItem:e,isStdioArray:o,fdNumber:t,direction:s,isSync:r})),i,s,n),l=_v(c,s);return py(c,l),{direction:s,objectMode:l,stdioItems:c}},sy=({stdioOption:e,fdNumber:t,options:n,optionName:r})=>{let i=Zv([...(Array.isArray(e)?e:[e]).map(e=>cy(e,r)),...Kv(n,t)]),a=i.length>1;return ly(i,a,r),dy(i),{stdioItems:i,isStdioArray:a}},cy=(e,t)=>({type:I_(e,t),value:e,optionName:t}),ly=(e,t,n)=>{if(e.length===0)throw TypeError(`The \`${n}\` option must not be an empty array.`);if(t){for(let{value:t,optionName:n}of e)if(uy.has(t))throw Error(`The \`${n}\` option must not include \`${t}\`.`)}},uy=new Set([`ignore`,`ipc`]),dy=e=>{for(let t of e)fy(t)},fy=({type:e,value:t,optionName:n})=>{if(Y_(t))throw TypeError(`The \`${n}: URL\` option must use the \`file:\` scheme.
377
- For example, you can use the \`pathToFileURL()\` method of the \`url\` core module.`);if($_(e,t))throw TypeError(`The \`${n}: { file: '...' }\` option must be used instead of \`${n}: '...'\`.`)},py=(e,t)=>{if(!t)return;let n=e.find(({type:e})=>lv.has(e));if(n!==void 0)throw TypeError(`The \`${n.optionName}\` option cannot use both files and transforms in objectMode.`)},my=({initialFileDescriptors:e,addProperties:t,options:n,isSync:r})=>{let i=[];try{for(let a of e)i.push(hy({fileDescriptor:a,fileDescriptors:i,addProperties:t,options:n,isSync:r}));return i}catch(e){throw _y(i),e}},hy=({fileDescriptor:{direction:e,objectMode:t,stdioItems:n},fileDescriptors:r,addProperties:i,options:a,isSync:o})=>({direction:e,objectMode:t,stdioItems:n.map(t=>gy({stdioItem:t,addProperties:i,direction:e,options:a,fileDescriptors:r,isSync:o}))}),gy=({stdioItem:e,addProperties:t,direction:n,options:r,fileDescriptors:i,isSync:a})=>{let o=Qv({stdioItem:e,direction:n,fileDescriptors:i,isSync:a});return o===void 0?{...e,...t[n][e.type](e,r)}:{...e,stream:o}},_y=e=>{for(let{stdioItems:t}of e)for(let{stream:e}of t)e!==void 0&&!Bd(e)&&e.destroy()},vy=e=>{if(e.length>1)return e.some(({value:e})=>e===`overlapped`)?`overlapped`:`pipe`;let[{type:t,value:n}]=e;return t===`native`?n:`pipe`},yy=(e,t)=>ay(Cy,e,t,!0),X=({type:e,optionName:t})=>{xy(t,pv[e])},by=({optionName:e,value:t})=>((t===`ipc`||t===`overlapped`)&&xy(e,`"${t}"`),{}),xy=(e,t)=>{throw TypeError(`The \`${e}\` option cannot be ${t} with synchronous methods.`)},Sy={generator(){},asyncGenerator:X,webStream:X,nodeStream:X,webTransform:X,duplex:X,asyncIterable:X,native:by},Cy={input:{...Sy,fileUrl:({value:e})=>({contents:[bd(le(e))]}),filePath:({value:{file:e}})=>({contents:[bd(le(e))]}),fileNumber:X,iterable:({value:e})=>({contents:[...e]}),string:({value:e})=>({contents:[e]}),uint8Array:({value:e})=>({contents:[e]})},output:{...Sy,fileUrl:({value:e})=>({path:e}),filePath:({value:{file:e,append:t}})=>({path:e,append:t}),fileNumber:({value:e})=>({path:e}),iterable:X,string:X,uint8Array:X}},wy=(e,{stripFinalNewline:t},n)=>Ty(t,n)&&e!==void 0&&!Array.isArray(e)?tg(e):e,Ty=(e,t)=>t===`all`?e[1]||e[2]:e[t],Ey=(e,t,n,r)=>e||n?void 0:ky(t,r),Dy=(e,t,n)=>n?e.flatMap(e=>Oy(e,t)):Oy(e,t),Oy=(e,t)=>{let{transform:n,final:r}=ky(t,{});return[...n(e),...r()]},ky=(e,t)=>(t.previousChunks=``,{transform:Ay.bind(void 0,t,e),final:My.bind(void 0,t)}),Ay=function*(e,t,n){if(typeof n!=`string`){yield n;return}let{previousChunks:r}=e,i=-1;for(let a=0;a<n.length;a+=1)if(n[a]===`
378
- `){let o=jy(n,a,t,e),s=n.slice(i+1,a+1-o);r.length>0&&(s=Fy(r,s),r=``),yield s,i=a}i!==n.length-1&&(r=Fy(r,n.slice(i+1))),e.previousChunks=r},jy=(e,t,n,r)=>n?0:(r.isWindowsNewline=t!==0&&e[t-1]===`\r`,r.isWindowsNewline?2:1),My=function*({previousChunks:e}){e.length>0&&(yield e)},Ny=({binary:e,preserveNewlines:t,readableObjectMode:n,state:r})=>e||t||n?void 0:{transform:Py.bind(void 0,r)},Py=function*({isWindowsNewline:e=!1},t){let{unixNewline:n,windowsNewline:r,LF:i,concatBytes:a}=typeof t==`string`?Iy:Ly;if(t.at(-1)===i){yield t;return}yield a(t,e?r:n)},Fy=(e,t)=>`${e}${t}`,Iy={windowsNewline:`\r
375
+ `)}},u_=({originalError:e,timedOut:t,timeout:n,isMaxBuffer:r,maxBuffer:i,errorCode:a,signal:o,signalDescription:s,exitCode:c,isCanceled:l,isGracefullyCanceled:u,isForcefullyTerminated:d,forceKillAfterDelay:f,killSignal:p})=>{let m=d_(d,f);return t?`Command timed out after ${n} milliseconds${m}`:u?o===void 0?`Command was gracefully canceled with exit code ${c}`:d?`Command was gracefully canceled${m}`:`Command was gracefully canceled with ${o} (${s})`:l?`Command was canceled${m}`:r?`${i_(e,i)}${m}`:a===void 0?d?`Command was killed with ${p} (${Xp(p)})${m}`:o===void 0?c===void 0?`Command failed`:`Command failed with exit code ${c}`:`Command was killed with ${o} (${s})`:`Command failed with ${a}${m}`},d_=(e,t)=>e?` and was forcefully terminated after ${t} milliseconds`:``,f_=(e,t)=>{if(e instanceof Sp)return;let n=df(Jh(wp(e)?e.originalMessage:String(e?.message??e),t));return n===``?void 0:n},p_=e=>typeof e==`string`?e:Oe(e),m_=e=>Array.isArray(e)?e.map(e=>$h(h_(e))).filter(Boolean).join(`
376
+ `):h_(e),h_=e=>typeof e==`string`?e:J(e)?Cd(e):``,g_=({command:e,escapedCommand:t,stdio:n,all:r,ipcOutput:i,options:{cwd:a},startTime:o})=>b_({command:e,escapedCommand:t,cwd:a,durationMs:$f(o),failed:!1,timedOut:!1,isCanceled:!1,isGracefullyCanceled:!1,isTerminated:!1,isMaxBuffer:!1,isForcefullyTerminated:!1,exitCode:0,stdout:n[1],stderr:n[2],all:r,stdio:n,ipcOutput:i,pipedFrom:[]}),__=({error:e,command:t,escapedCommand:n,fileDescriptors:r,options:i,startTime:a,isSync:o})=>v_({error:e,command:t,escapedCommand:n,startTime:a,timedOut:!1,isCanceled:!1,isGracefullyCanceled:!1,isMaxBuffer:!1,isForcefullyTerminated:!1,stdio:Array.from({length:r.length}),ipcOutput:[],options:i,isSync:o}),v_=({error:e,command:t,escapedCommand:n,startTime:r,timedOut:i,isCanceled:a,isGracefullyCanceled:o,isMaxBuffer:s,isForcefullyTerminated:c,exitCode:l,signal:u,stdio:d,all:f,ipcOutput:p,options:{timeoutDuration:m,timeout:h=m,forceKillAfterDelay:g,killSignal:_,cwd:v,maxBuffer:y},isSync:ee})=>{let{exitCode:te,signal:ne,signalDescription:re}=x_(l,u),{originalMessage:ie,shortMessage:ae,message:oe}=l_({stdio:d,all:f,ipcOutput:p,originalError:e,signal:ne,signalDescription:re,exitCode:te,escapedCommand:n,timedOut:i,isCanceled:a,isGracefullyCanceled:o,isMaxBuffer:s,isForcefullyTerminated:c,forceKillAfterDelay:g,killSignal:_,maxBuffer:y,timeout:h,cwd:v}),se=xp(e,oe,ee);return Object.assign(se,y_({error:se,command:t,escapedCommand:n,startTime:r,timedOut:i,isCanceled:a,isGracefullyCanceled:o,isMaxBuffer:s,isForcefullyTerminated:c,exitCode:te,signal:ne,signalDescription:re,stdio:d,all:f,ipcOutput:p,cwd:v,originalMessage:ie,shortMessage:ae})),se},y_=({error:e,command:t,escapedCommand:n,startTime:r,timedOut:i,isCanceled:a,isGracefullyCanceled:o,isMaxBuffer:s,isForcefullyTerminated:c,exitCode:l,signal:u,signalDescription:d,stdio:f,all:p,ipcOutput:m,cwd:h,originalMessage:g,shortMessage:_})=>b_({shortMessage:_,originalMessage:g,command:t,escapedCommand:n,cwd:h,durationMs:$f(r),failed:!0,timedOut:i,isCanceled:a,isGracefullyCanceled:o,isTerminated:u!==void 0,isMaxBuffer:s,isForcefullyTerminated:c,exitCode:l,signal:u,signalDescription:d,code:e.cause?.code,stdout:f[1],stderr:f[2],all:p,stdio:f,ipcOutput:m,pipedFrom:[]}),b_=e=>Object.fromEntries(Object.entries(e).filter(([,e])=>e!==void 0)),x_=(e,t)=>{let n=e===null?void 0:e,r=t===null?void 0:t;return{exitCode:n,signal:r,signalDescription:r===void 0?void 0:Xp(t)}},S_=e=>Number.isFinite(e)?e:0;function C_(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(S_(e*1e3)%1e3),nanoseconds:Math.trunc(S_(e*1e6)%1e3)}}function w_(e){return{days:e/86400000n,hours:e/3600000n%24n,minutes:e/60000n%60n,seconds:e/1000n%60n,milliseconds:e%1000n,microseconds:0n,nanoseconds:0n}}function T_(e){switch(typeof e){case`number`:if(Number.isFinite(e))return C_(e);break;case`bigint`:return w_(e)}throw TypeError(`Expected a finite number or bigint`)}const E_=e=>e===0||e===0n,D_=(e,t)=>t===1||t===1n?e:`${e}s`,O_=24n*60n*60n*1000n;function k_(e,t){let n=typeof e==`bigint`;if(!n&&!Number.isFinite(e))throw TypeError(`Expected a finite number or bigint`);t={...t};let r=e<0?`-`:``;e=e<0?-e:e,t.colonNotation&&(t.compact=!1,t.formatSubMilliseconds=!1,t.separateMilliseconds=!1,t.verbose=!1),t.compact&&(t.unitCount=1,t.secondsDecimalDigits=0,t.millisecondsDecimalDigits=0);let i=[],a=(e,t)=>{let n=Math.floor(e*10**t+1e-7);return(Math.round(n)/10**t).toFixed(t)},o=(e,n,r,a)=>{if(!((i.length===0||!t.colonNotation)&&E_(e)&&!(t.colonNotation&&r===`m`))){if(a??=String(e),t.colonNotation){let e=a.includes(`.`)?a.split(`.`)[0].length:a.length,t=i.length>0?2:1;a=`0`.repeat(Math.max(0,t-e))+a}else a+=t.verbose?` `+D_(n,e):r;i.push(a)}},s=T_(e),c=BigInt(s.days);if(t.hideYearAndDays?o(BigInt(c)*24n+BigInt(s.hours),`hour`,`h`):(t.hideYear?o(c,`day`,`d`):(o(c/365n,`year`,`y`),o(c%365n,`day`,`d`)),o(Number(s.hours),`hour`,`h`)),o(Number(s.minutes),`minute`,`m`),!t.hideSeconds)if(t.separateMilliseconds||t.formatSubMilliseconds||!t.colonNotation&&e<1e3&&!t.subSecondsAsDecimals){let e=Number(s.seconds),n=Number(s.milliseconds),r=Number(s.microseconds),i=Number(s.nanoseconds);if(o(e,`second`,`s`),t.formatSubMilliseconds)o(n,`millisecond`,`ms`),o(r,`microsecond`,`µs`),o(i,`nanosecond`,`ns`);else{let e=n+r/1e3+i/1e6,a=typeof t.millisecondsDecimalDigits==`number`?t.millisecondsDecimalDigits:0,s=a?e.toFixed(a):e>=1?Math.round(e):Math.ceil(e);o(Number.parseFloat(s),`millisecond`,`ms`,s)}}else{let r=a((n?Number(e%O_):e)/1e3%60,typeof t.secondsDecimalDigits==`number`?t.secondsDecimalDigits:1),i=t.keepDecimalsOnWholeSeconds?r:r.replace(/\.0+$/,``);o(Number.parseFloat(i),`second`,`s`,i)}if(i.length===0)return r+`0`+(t.verbose?` milliseconds`:`ms`);let l=t.colonNotation?`:`:` `;return typeof t.unitCount==`number`&&(i=i.slice(0,Math.max(t.unitCount,1))),r+i.join(l)}const A_=(e,t)=>{e.failed&&Vf({type:`error`,verboseMessage:e.shortMessage,verboseInfo:t,result:e})},j_=(e,t)=>{nf(t)&&(A_(e,t),M_(e,t))},M_=(e,t)=>{Vf({type:`duration`,verboseMessage:`(done in ${k_(e.durationMs)})`,verboseInfo:t,result:e})},N_=(e,t,{reject:n})=>{if(j_(e,t),e.failed&&n)throw e;return e},P_=(e,t)=>U_(e)?`asyncGenerator`:W_(e)?`generator`:K_(e)?`fileUrl`:J_(e)?`filePath`:tv(e)?`webStream`:og(e,{checkOpen:!1})?`native`:J(e)?`uint8Array`:rv(e)?`asyncIterable`:iv(e)?`iterable`:nv(e)?L_({transform:e},t):G_(e)?F_(e,t):`native`,F_=(e,t)=>lg(e.transform,{checkOpen:!1})?I_(e,t):nv(e.transform)?L_(e,t):B_(e,t),I_=(e,t)=>(R_(e,t,`Duplex stream`),`duplex`),L_=(e,t)=>(R_(e,t,`web TransformStream`),`webTransform`),R_=({final:e,binary:t,objectMode:n},r,i)=>{z_(e,`${r}.final`,i),z_(t,`${r}.binary`,i),V_(n,`${r}.objectMode`)},z_=(e,t,n)=>{if(e!==void 0)throw TypeError(`The \`${t}\` option can only be defined when using a generator, not a ${n}.`)},B_=({transform:e,final:t,binary:n,objectMode:r},i)=>{if(e!==void 0&&!H_(e))throw TypeError(`The \`${i}.transform\` option must be a generator, a Duplex stream or a web TransformStream.`);if(lg(t,{checkOpen:!1}))throw TypeError(`The \`${i}.final\` option must not be a Duplex stream.`);if(nv(t))throw TypeError(`The \`${i}.final\` option must not be a web TransformStream.`);if(t!==void 0&&!H_(t))throw TypeError(`The \`${i}.final\` option must be a generator.`);return V_(n,`${i}.binary`),V_(r,`${i}.objectMode`),U_(e)||U_(t)?`asyncGenerator`:`generator`},V_=(e,t)=>{if(e!==void 0&&typeof e!=`boolean`)throw TypeError(`The \`${t}\` option must use a boolean.`)},H_=e=>U_(e)||W_(e),U_=e=>Object.prototype.toString.call(e)===`[object AsyncGeneratorFunction]`,W_=e=>Object.prototype.toString.call(e)===`[object GeneratorFunction]`,G_=e=>q(e)&&(e.transform!==void 0||e.final!==void 0),K_=e=>Object.prototype.toString.call(e)===`[object URL]`,q_=e=>K_(e)&&e.protocol!==`file:`,J_=e=>q(e)&&Object.keys(e).length>0&&Object.keys(e).every(e=>Y_.has(e))&&X_(e.file),Y_=new Set([`file`,`append`]),X_=e=>typeof e==`string`,Z_=(e,t)=>e===`native`&&typeof t==`string`&&!Q_.has(t),Q_=new Set([`ipc`,`ignore`,`inherit`,`overlapped`,`pipe`]),$_=e=>Object.prototype.toString.call(e)===`[object ReadableStream]`,ev=e=>Object.prototype.toString.call(e)===`[object WritableStream]`,tv=e=>$_(e)||ev(e),nv=e=>$_(e?.readable)&&ev(e?.writable),rv=e=>av(e)&&typeof e[Symbol.asyncIterator]==`function`,iv=e=>av(e)&&typeof e[Symbol.iterator]==`function`,av=e=>typeof e==`object`&&!!e,ov=new Set([`generator`,`asyncGenerator`,`duplex`,`webTransform`]),sv=new Set([`fileUrl`,`filePath`,`fileNumber`]),cv=new Set([`fileUrl`,`filePath`]),lv=new Set([...cv,`webStream`,`nodeStream`]),uv=new Set([`webTransform`,`duplex`]),dv={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`},fv=(e,t,n,r)=>r===`output`?pv(e,t,n):mv(e,t,n),pv=(e,t,n)=>{let r=t!==0&&n[t-1].value.readableObjectMode;return{writableObjectMode:r,readableObjectMode:e??r}},mv=(e,t,n)=>{let r=t===0?e===!0:n[t-1].value.readableObjectMode;return{writableObjectMode:r,readableObjectMode:t!==n.length-1&&(e??r)}},hv=(e,t)=>{let n=e.findLast(({type:e})=>ov.has(e));return n===void 0?!1:t===`input`?n.value.writableObjectMode:n.value.readableObjectMode},gv=(e,t,n,r)=>[...e.filter(({type:e})=>!ov.has(e)),..._v(e,t,n,r)],_v=(e,t,n,{encoding:r})=>{let i=e.filter(({type:e})=>ov.has(e)),a=Array.from({length:i.length});for(let[e,o]of Object.entries(i))a[e]=vv({stdioItem:o,index:Number(e),newTransforms:a,optionName:t,direction:n,encoding:r});return Sv(a,n)},vv=({stdioItem:e,stdioItem:{type:t},index:n,newTransforms:r,optionName:i,direction:a,encoding:o})=>t===`duplex`?yv({stdioItem:e,optionName:i}):t===`webTransform`?bv({stdioItem:e,index:n,newTransforms:r,direction:a}):xv({stdioItem:e,index:n,newTransforms:r,direction:a,encoding:o}),yv=({stdioItem:e,stdioItem:{value:{transform:t,transform:{writableObjectMode:n,readableObjectMode:r},objectMode:i=r}},optionName:a})=>{if(i&&!r)throw TypeError(`The \`${a}.objectMode\` option can only be \`true\` if \`new Duplex({objectMode: true})\` is used.`);if(!i&&r)throw TypeError(`The \`${a}.objectMode\` option cannot be \`false\` if \`new Duplex({objectMode: true})\` is used.`);return{...e,value:{transform:t,writableObjectMode:n,readableObjectMode:r}}},bv=({stdioItem:e,stdioItem:{value:t},index:n,newTransforms:r,direction:i})=>{let{transform:a,objectMode:o}=q(t)?t:{transform:t},{writableObjectMode:s,readableObjectMode:c}=fv(o,n,r,i);return{...e,value:{transform:a,writableObjectMode:s,readableObjectMode:c}}},xv=({stdioItem:e,stdioItem:{value:t},index:n,newTransforms:r,direction:i,encoding:a})=>{let{transform:o,final:s,binary:c=!1,preserveNewlines:l=!1,objectMode:u}=q(t)?t:{transform:t},d=c||Vh.has(a),{writableObjectMode:f,readableObjectMode:p}=fv(u,n,r,i);return{...e,value:{transform:o,final:s,binary:d,preserveNewlines:l,writableObjectMode:f,readableObjectMode:p}}},Sv=(e,t)=>t===`input`?e.reverse():e,Cv=(e,t,n)=>{let r=e.map(e=>wv(e,t));if(r.includes(`input`)&&r.includes(`output`))throw TypeError(`The \`${n}\` option must not be an array of both readable and writable values.`);return r.find(Boolean)??Av},wv=({type:e,value:t},n)=>Tv[n]??Ov[e](t),Tv=[`input`,`output`,`output`],Ev=()=>void 0,Dv=()=>`input`,Ov={generator:Ev,asyncGenerator:Ev,fileUrl:Ev,filePath:Ev,iterable:Dv,asyncIterable:Dv,uint8Array:Dv,webStream:e=>ev(e)?`output`:`input`,nodeStream(e){return cg(e,{checkOpen:!1})?sg(e,{checkOpen:!1})?void 0:`input`:`output`},webTransform:Ev,duplex:Ev,native(e){let t=kv(e);if(t!==void 0)return t;if(og(e,{checkOpen:!1}))return Ov.nodeStream(e)}},kv=e=>{if([0,b.stdin].includes(e))return`input`;if([1,2,b.stdout,b.stderr].includes(e))return`output`},Av=`output`,jv=(e,t)=>t&&!e.includes(`ipc`)?[...e,`ipc`]:e,Mv=({stdio:e,ipc:t,buffer:n,...r},i,a)=>{let o=Nv(e,r).map((e,t)=>Fv(e,t));return a?Iv(o,n,i):jv(o,t)},Nv=(e,t)=>{if(e===void 0)return Y.map(e=>t[e]);if(Pv(t))throw Error(`It's not possible to provide \`stdio\` in combination with one of ${Y.map(e=>`\`${e}\``).join(`, `)}`);if(typeof e==`string`)return[e,e,e];if(!Array.isArray(e))throw TypeError(`Expected \`stdio\` to be of type \`string\` or \`Array\`, got \`${typeof e}\``);let n=Math.max(e.length,Y.length);return Array.from({length:n},(t,n)=>e[n])},Pv=e=>Y.some(t=>e[t]!==void 0),Fv=(e,t)=>Array.isArray(e)?e.map(e=>Fv(e,t)):e??(t>=Y.length?`ignore`:`pipe`),Iv=(e,t,n)=>e.map((e,r)=>!t[r]&&r!==0&&!rf(n,r)&&Lv(e)?`ignore`:e),Lv=e=>e===`pipe`||Array.isArray(e)&&e.every(e=>e===`pipe`),Rv=({stdioItem:e,stdioItem:{type:t},isStdioArray:n,fdNumber:r,direction:i,isSync:a})=>!n||t!==`native`?e:a?zv({stdioItem:e,fdNumber:r,direction:i}):Hv({stdioItem:e,fdNumber:r}),zv=({stdioItem:e,stdioItem:{value:t,optionName:n},fdNumber:r,direction:i})=>{let a=Bv({value:t,optionName:n,fdNumber:r,direction:i});if(a!==void 0)return a;if(og(t,{checkOpen:!1}))throw TypeError(`The \`${n}: Stream\` option cannot both be an array and include a stream with synchronous methods.`);return e},Bv=({value:e,optionName:t,fdNumber:n,direction:r})=>{let i=Vv(e,n);if(i!==void 0){if(r===`output`)return{type:`fileNumber`,value:i,optionName:t};if(Fe.isatty(i))throw TypeError(`The \`${t}: ${Lm(e)}\` option is invalid: it cannot be a TTY with synchronous methods.`);return{type:`uint8Array`,value:yd(le(i)),optionName:t}}},Vv=(e,t)=>{if(e===`inherit`)return t;if(typeof e==`number`)return e;let n=Bd.indexOf(e);if(n!==-1)return n},Hv=({stdioItem:e,stdioItem:{value:t,optionName:n},fdNumber:r})=>t===`inherit`?{type:`nodeStream`,value:Uv(r,t,n),optionName:n}:typeof t==`number`?{type:`nodeStream`,value:Uv(t,t,n),optionName:n}:og(t,{checkOpen:!1})?{type:`nodeStream`,value:t,optionName:n}:e,Uv=(e,t,n)=>{let r=Bd[e];if(r===void 0)throw TypeError(`The \`${n}: ${t}\` option is invalid: no such standard stream.`);return r},Wv=({input:e,inputFile:t},n)=>n===0?[...Gv(e),...qv(t)]:[],Gv=e=>e===void 0?[]:[{type:Kv(e),value:e,optionName:`input`}],Kv=e=>{if(cg(e,{checkOpen:!1}))return`nodeStream`;if(typeof e==`string`)return`string`;if(J(e))return`uint8Array`;throw Error("The `input` option must be a string, a Uint8Array or a Node.js Readable stream.")},qv=e=>e===void 0?[]:[{...Jv(e),optionName:`inputFile`}],Jv=e=>{if(K_(e))return{type:`fileUrl`,value:e};if(X_(e))return{type:`filePath`,value:{file:e}};throw Error("The `inputFile` option must be a file path string or a file URL.")},Yv=e=>e.filter((t,n)=>e.every((e,r)=>t.value!==e.value||n>=r||t.type===`generator`||t.type===`asyncGenerator`)),Xv=({stdioItem:{type:e,value:t,optionName:n},direction:r,fileDescriptors:i,isSync:a})=>{let o=Zv(i,e);if(o.length!==0){if(a){Qv({otherStdioItems:o,type:e,value:t,optionName:n,direction:r});return}if(lv.has(e))return $v({otherStdioItems:o,type:e,value:t,optionName:n,direction:r});uv.has(e)&&ty({otherStdioItems:o,type:e,value:t,optionName:n})}},Zv=(e,t)=>e.flatMap(({direction:e,stdioItems:n})=>n.filter(e=>e.type===t).map((t=>({...t,direction:e})))),Qv=({otherStdioItems:e,type:t,value:n,optionName:r,direction:i})=>{cv.has(t)&&$v({otherStdioItems:e,type:t,value:n,optionName:r,direction:i})},$v=({otherStdioItems:e,type:t,value:n,optionName:r,direction:i})=>{let a=e.filter(e=>ey(e,n));if(a.length===0)return;let o=a.find(e=>e.direction!==i);return ny(o,r,t),i===`output`?a[0].stream:void 0},ey=({type:e,value:t},n)=>e===`filePath`?t.file===n.file:e===`fileUrl`?t.href===n.href:t===n,ty=({otherStdioItems:e,type:t,value:n,optionName:r})=>{let i=e.find(({value:{transform:e}})=>e===n.transform);ny(i,r,t)},ny=(e,t,n)=>{if(e!==void 0)throw TypeError(`The \`${e.optionName}\` and \`${t}\` options must not target ${dv[n]} that is the same.`)},ry=(e,t,n,r)=>{let i=Mv(t,n,r).map((e,n)=>iy({stdioOption:e,fdNumber:n,options:t,isSync:r})),a=fy({initialFileDescriptors:i,addProperties:e,options:t,isSync:r});return t.stdio=a.map(({stdioItems:e})=>gy(e)),a},iy=({stdioOption:e,fdNumber:t,options:n,isSync:r})=>{let i=Vd(t),{stdioItems:a,isStdioArray:o}=ay({stdioOption:e,fdNumber:t,options:n,optionName:i}),s=Cv(a,t,i),c=gv(a.map(e=>Rv({stdioItem:e,isStdioArray:o,fdNumber:t,direction:s,isSync:r})),i,s,n),l=hv(c,s);return dy(c,l),{direction:s,objectMode:l,stdioItems:c}},ay=({stdioOption:e,fdNumber:t,options:n,optionName:r})=>{let i=Yv([...(Array.isArray(e)?e:[e]).map(e=>oy(e,r)),...Wv(n,t)]),a=i.length>1;return sy(i,a,r),ly(i),{stdioItems:i,isStdioArray:a}},oy=(e,t)=>({type:P_(e,t),value:e,optionName:t}),sy=(e,t,n)=>{if(e.length===0)throw TypeError(`The \`${n}\` option must not be an empty array.`);if(t){for(let{value:t,optionName:n}of e)if(cy.has(t))throw Error(`The \`${n}\` option must not include \`${t}\`.`)}},cy=new Set([`ignore`,`ipc`]),ly=e=>{for(let t of e)uy(t)},uy=({type:e,value:t,optionName:n})=>{if(q_(t))throw TypeError(`The \`${n}: URL\` option must use the \`file:\` scheme.
377
+ For example, you can use the \`pathToFileURL()\` method of the \`url\` core module.`);if(Z_(e,t))throw TypeError(`The \`${n}: { file: '...' }\` option must be used instead of \`${n}: '...'\`.`)},dy=(e,t)=>{if(!t)return;let n=e.find(({type:e})=>sv.has(e));if(n!==void 0)throw TypeError(`The \`${n.optionName}\` option cannot use both files and transforms in objectMode.`)},fy=({initialFileDescriptors:e,addProperties:t,options:n,isSync:r})=>{let i=[];try{for(let a of e)i.push(py({fileDescriptor:a,fileDescriptors:i,addProperties:t,options:n,isSync:r}));return i}catch(e){throw hy(i),e}},py=({fileDescriptor:{direction:e,objectMode:t,stdioItems:n},fileDescriptors:r,addProperties:i,options:a,isSync:o})=>({direction:e,objectMode:t,stdioItems:n.map(t=>my({stdioItem:t,addProperties:i,direction:e,options:a,fileDescriptors:r,isSync:o}))}),my=({stdioItem:e,addProperties:t,direction:n,options:r,fileDescriptors:i,isSync:a})=>{let o=Xv({stdioItem:e,direction:n,fileDescriptors:i,isSync:a});return o===void 0?{...e,...t[n][e.type](e,r)}:{...e,stream:o}},hy=e=>{for(let{stdioItems:t}of e)for(let{stream:e}of t)e!==void 0&&!zd(e)&&e.destroy()},gy=e=>{if(e.length>1)return e.some(({value:e})=>e===`overlapped`)?`overlapped`:`pipe`;let[{type:t,value:n}]=e;return t===`native`?n:`pipe`},_y=(e,t)=>ry(Sy,e,t,!0),vy=({type:e,optionName:t})=>{by(t,dv[e])},yy=({optionName:e,value:t})=>((t===`ipc`||t===`overlapped`)&&by(e,`"${t}"`),{}),by=(e,t)=>{throw TypeError(`The \`${e}\` option cannot be ${t} with synchronous methods.`)},xy={generator(){},asyncGenerator:vy,webStream:vy,nodeStream:vy,webTransform:vy,duplex:vy,asyncIterable:vy,native:yy},Sy={input:{...xy,fileUrl:({value:e})=>({contents:[yd(le(e))]}),filePath:({value:{file:e}})=>({contents:[yd(le(e))]}),fileNumber:vy,iterable:({value:e})=>({contents:[...e]}),string:({value:e})=>({contents:[e]}),uint8Array:({value:e})=>({contents:[e]})},output:{...xy,fileUrl:({value:e})=>({path:e}),filePath:({value:{file:e,append:t}})=>({path:e,append:t}),fileNumber:({value:e})=>({path:e}),iterable:vy,string:vy,uint8Array:vy}},Cy=(e,{stripFinalNewline:t},n)=>wy(t,n)&&e!==void 0&&!Array.isArray(e)?$h(e):e,wy=(e,t)=>t===`all`?e[1]||e[2]:e[t],Ty=(e,t,n,r)=>e||n?void 0:Oy(t,r),Ey=(e,t,n)=>n?e.flatMap(e=>Dy(e,t)):Dy(e,t),Dy=(e,t)=>{let{transform:n,final:r}=Oy(t,{});return[...n(e),...r()]},Oy=(e,t)=>(t.previousChunks=``,{transform:ky.bind(void 0,t,e),final:jy.bind(void 0,t)}),ky=function*(e,t,n){if(typeof n!=`string`){yield n;return}let{previousChunks:r}=e,i=-1;for(let a=0;a<n.length;a+=1)if(n[a]===`
378
+ `){let o=Ay(n,a,t,e),s=n.slice(i+1,a+1-o);r.length>0&&(s=Py(r,s),r=``),yield s,i=a}i!==n.length-1&&(r=Py(r,n.slice(i+1))),e.previousChunks=r},Ay=(e,t,n,r)=>n?0:(r.isWindowsNewline=t!==0&&e[t-1]===`\r`,r.isWindowsNewline?2:1),jy=function*({previousChunks:e}){e.length>0&&(yield e)},My=({binary:e,preserveNewlines:t,readableObjectMode:n,state:r})=>e||t||n?void 0:{transform:Ny.bind(void 0,r)},Ny=function*({isWindowsNewline:e=!1},t){let{unixNewline:n,windowsNewline:r,LF:i,concatBytes:a}=typeof t==`string`?Fy:Iy;if(t.at(-1)===i){yield t;return}yield a(t,e?r:n)},Py=(e,t)=>`${e}${t}`,Fy={windowsNewline:`\r
379
379
  `,unixNewline:`
380
380
  `,LF:`
381
- `,concatBytes:Fy},Ly={windowsNewline:new Uint8Array([13,10]),unixNewline:new Uint8Array([10]),LF:10,concatBytes:(e,t)=>{let n=new Uint8Array(e.length+t.length);return n.set(e,0),n.set(t,e.length),n}},Ry=(e,t)=>e?void 0:zy.bind(void 0,t),zy=function*(e,t){if(typeof t!=`string`&&!q(t)&&!Je.isBuffer(t))throw TypeError(`The \`${e}\` option's transform must use "objectMode: true" to receive as input: ${typeof t}.`);yield t},By=(e,t)=>e?Vy.bind(void 0,t):Hy.bind(void 0,t),Vy=function*(e,t){Uy(e,t),yield t},Hy=function*(e,t){if(Uy(e,t),typeof t!=`string`&&!q(t))throw TypeError(`The \`${e}\` option's function must yield a string or an Uint8Array, not ${typeof t}.`);yield t},Uy=(e,t)=>{if(t==null)throw TypeError(`The \`${e}\` option's function must not call \`yield ${t}\`.
381
+ `,concatBytes:Py},Iy={windowsNewline:new Uint8Array([13,10]),unixNewline:new Uint8Array([10]),LF:10,concatBytes:(e,t)=>{let n=new Uint8Array(e.length+t.length);return n.set(e,0),n.set(t,e.length),n}},Ly=(e,t)=>e?void 0:Ry.bind(void 0,t),Ry=function*(e,t){if(typeof t!=`string`&&!J(t)&&!Je.isBuffer(t))throw TypeError(`The \`${e}\` option's transform must use "objectMode: true" to receive as input: ${typeof t}.`);yield t},zy=(e,t)=>e?By.bind(void 0,t):Vy.bind(void 0,t),By=function*(e,t){Hy(e,t),yield t},Vy=function*(e,t){if(Hy(e,t),typeof t!=`string`&&!J(t))throw TypeError(`The \`${e}\` option's function must yield a string or an Uint8Array, not ${typeof t}.`);yield t},Hy=(e,t)=>{if(t==null)throw TypeError(`The \`${e}\` option's function must not call \`yield ${t}\`.
382
382
  Instead, \`yield\` should either be called with a value, or not be called at all. For example:
383
- if (condition) { yield value; }`)},Wy=(e,t,n)=>{if(n)return;if(e)return{transform:Gy.bind(void 0,new TextEncoder)};let r=new we(t);return{transform:Ky.bind(void 0,r),final:qy.bind(void 0,r)}},Gy=function*(e,t){Je.isBuffer(t)?yield bd(t):typeof t==`string`?yield e.encode(t):yield t},Ky=function*(e,t){yield q(t)?e.write(t):t},qy=function*(e){let t=e.end();t!==``&&(yield t)},Jy=Ee(async(e,t,n,r)=>{t.currentIterable=e(...n);try{for await(let e of t.currentIterable)r.push(e)}finally{delete t.currentIterable}}),Yy=async function*(e,t,n){if(n===t.length){yield e;return}let{transform:r=$y}=t[n];for await(let i of r(e))yield*Yy(i,t,n+1)},Xy=async function*(e){for(let[t,{final:n}]of Object.entries(e))yield*Zy(n,Number(t),e)},Zy=async function*(e,t,n){if(e!==void 0)for await(let r of e())yield*Yy(r,n,t+1)},Qy=Ee(async({currentIterable:e},t)=>{if(e!==void 0){await(t?e.throw(t):e.return());return}if(t)throw t}),$y=function*(e){yield e},eb=(e,t,n,r)=>{try{for(let r of e(...t))n.push(r);r()}catch(e){r(e)}},tb=(e,t)=>[...t.flatMap(t=>[...nb(t,e,0)]),...rb(e)],nb=function*(e,t,n){if(n===t.length){yield e;return}let{transform:r=ab}=t[n];for(let i of r(e))yield*nb(i,t,n+1)},rb=function*(e){for(let[t,{final:n}]of Object.entries(e))yield*ib(n,Number(t),e)},ib=function*(e,t,n){if(e!==void 0)for(let r of e())yield*nb(r,n,t+1)},ab=function*(e){yield e},ob=({value:e,value:{transform:t,final:n,writableObjectMode:r,readableObjectMode:i},optionName:a},{encoding:o})=>{let s={},c=cb(e,o,a),l=G_(t),u=G_(n),d=l?Jy.bind(void 0,Yy,s):eb.bind(void 0,nb),f=l||u?Jy.bind(void 0,Xy,s):eb.bind(void 0,rb),p=l||u?Qy.bind(void 0,s):void 0;return{stream:new Ge({writableObjectMode:r,writableHighWaterMark:qe(r),readableObjectMode:i,readableHighWaterMark:qe(i),transform(e,t,n){d([e,c,0],this,n)},flush(e){f([c],this,e)},destroy:p})}},sb=(e,t,n,r)=>{let i=t.filter(({type:e})=>e===`generator`),a=r?i.reverse():i;for(let{value:t,optionName:r}of a)e=tb(cb(t,n,r),e);return e},cb=({transform:e,final:t,binary:n,writableObjectMode:r,readableObjectMode:i,preserveNewlines:a},o,s)=>{let c={};return[{transform:Ry(r,s)},Wy(n,o,r),Ey(n,a,r,c),{transform:e,final:t},{transform:By(i,s)},Ny({binary:n,preserveNewlines:a,readableObjectMode:i,state:c})].filter(Boolean)},lb=(e,t)=>{for(let n of ub(e))db(e,n,t)},ub=e=>new Set(Object.entries(e).filter(([,{direction:e}])=>e===`input`).map(([e])=>Number(e))),db=(e,t,n)=>{let{stdioItems:r}=e[t],i=r.filter(({contents:e})=>e!==void 0);if(i.length!==0){if(t!==0){let[{type:e,optionName:t}]=i;throw TypeError(`Only the \`stdin\` option, not \`${t}\`, can be ${pv[e]} with synchronous methods.`)}n.input=Dd(i.map(({contents:e})=>e).map(e=>fb(e,r)))}},fb=(e,t)=>{let n=sb(e,t,`utf8`,!0);return pb(n),Dd(n)},pb=e=>{let t=e.find(e=>typeof e!=`string`&&!q(e));if(t!==void 0)throw TypeError(`The \`stdin\` option is invalid: when passing objects as input, a transform must be used to serialize them to strings or Uint8Arrays: ${t}.`)},mb=({stdioItems:e,encoding:t,verboseInfo:n,fdNumber:r})=>r!==`all`&&of(n,r)&&!Uh.has(t)&&hb(r)&&(e.some(({type:e,value:t})=>e===`native`&&gb.has(t))||e.every(({type:e})=>cv.has(e))),hb=e=>e===1||e===2,gb=new Set([`pipe`,`overlapped`]),_b=async(e,t,n,r)=>{for await(let i of e)yb(t)||bb(i,n,r)},vb=(e,t,n)=>{for(let r of e)bb(r,t,n)},yb=e=>e._readableState.pipes.length>0,bb=(e,t,n)=>{Uf({type:`output`,verboseMessage:qf(e),fdNumber:t,verboseInfo:n})},xb=({fileDescriptors:e,syncResult:{output:t},options:n,isMaxBuffer:r,verboseInfo:i})=>{if(t===null)return{output:Array.from({length:3})};let a={},o=new Set([]);return{output:t.map((t,s)=>Sb({result:t,fileDescriptors:e,fdNumber:s,state:a,outputFiles:o,isMaxBuffer:r,verboseInfo:i},n)),...a}},Sb=({result:e,fileDescriptors:t,fdNumber:n,state:r,outputFiles:i,isMaxBuffer:a,verboseInfo:o},{buffer:s,encoding:c,lines:l,stripFinalNewline:u,maxBuffer:d})=>{if(e===null)return;let f=bd(l_(e,a,d)),{stdioItems:p,objectMode:m}=t[n],h=Cb([f],p,c,r),{serializedResult:g,finalResult:_=g}=wb({chunks:h,objectMode:m,encoding:c,lines:l,stripFinalNewline:u,fdNumber:n});Tb({serializedResult:g,fdNumber:n,state:r,verboseInfo:o,encoding:c,stdioItems:p,objectMode:m});let v=s[n]?_:void 0;try{return r.error===void 0&&Eb(g,p,i),v}catch(e){return r.error=e,v}},Cb=(e,t,n,r)=>{try{return sb(e,t,n,!1)}catch(t){return r.error=t,e}},wb=({chunks:e,objectMode:t,encoding:n,lines:r,stripFinalNewline:i,fdNumber:a})=>{if(t)return{serializedResult:e};if(n===`buffer`)return{serializedResult:Dd(e)};let o=Td(e,n);return r[a]?{serializedResult:o,finalResult:Dy(o,!i[a],t)}:{serializedResult:o}},Tb=({serializedResult:e,fdNumber:t,state:n,verboseInfo:r,encoding:i,stdioItems:a,objectMode:o})=>{if(!mb({stdioItems:a,encoding:i,verboseInfo:r,fdNumber:t}))return;let s=Dy(e,!1,o);try{vb(s,t,r)}catch(e){n.error??=e}},Eb=(e,t,n)=>{for(let{path:r,append:i}of t.filter(({type:e})=>lv.has(e))){let t=typeof r==`string`?r:r.toString();i||n.has(t)?ae(r,e):(n.add(t),fe(r,e))}},Db=([,e,t],n)=>{if(n.all)return e===void 0?t:t===void 0?e:Array.isArray(e)?Array.isArray(t)?[...e,...t]:[...e,wy(t,n,`all`)]:Array.isArray(t)?[wy(e,n,`all`),...t]:q(e)&&q(t)?kd([e,t]):`${e}${t}`},Ob=async(e,t)=>{let[n,r]=await kb(e);return t.isForcefullyTerminated??=!1,[n,r]},kb=async e=>{let[t,n]=await Promise.allSettled([x(e,`spawn`),x(e,`exit`)]);return t.status===`rejected`?[]:n.status===`rejected`?Ab(e):n.value},Ab=async e=>{try{return await x(e,`exit`)}catch{return Ab(e)}},jb=async e=>{let[t,n]=await e;if(!Mb(t,n)&&Nb(t,n))throw new wp;return[t,n]},Mb=(e,t)=>e===void 0&&t===void 0,Nb=(e,t)=>e!==0||t!==null,Pb=({error:e,status:t,signal:n,output:r},{maxBuffer:i})=>{let a=Fb(e,t,n);return{resultError:a,exitCode:t,signal:n,timedOut:a?.code===`ETIMEDOUT`,isMaxBuffer:c_(a,r,i)}},Fb=(e,t,n)=>e===void 0?Nb(t,n)?new wp:void 0:e,Ib=(e,t,n)=>{let{file:r,commandArguments:i,command:a,escapedCommand:o,startTime:s,verboseInfo:c,options:l,fileDescriptors:u}=Lb(e,t,n);return F_(Vb({file:r,commandArguments:i,options:l,command:a,escapedCommand:o,verboseInfo:c,fileDescriptors:u,startTime:s}),c,l)},Lb=(e,t,n)=>{let{command:r,escapedCommand:i,startTime:a,verboseInfo:o}=np(e,t,n),{file:s,commandArguments:c,options:l}=Zh(e,t,Rb(n));return zb(l),{file:s,commandArguments:c,command:r,escapedCommand:i,startTime:a,verboseInfo:o,options:l,fileDescriptors:yy(l,o)}},Rb=e=>e.node&&!e.ipc?{...e,ipc:!1}:e,zb=({ipc:e,ipcInput:t,detached:n,cancelSignal:r})=>{t&&Bb(`ipcInput`),e&&Bb(`ipc: true`),n&&Bb(`detached: true`),r&&Bb(`cancelSignal`)},Bb=e=>{throw TypeError(`The "${e}" option cannot be used with synchronous methods.`)},Vb=({file:e,commandArguments:t,options:n,command:r,escapedCommand:i,verboseInfo:a,fileDescriptors:o,startTime:s})=>{let c=Hb({file:e,commandArguments:t,options:n,command:r,escapedCommand:i,fileDescriptors:o,startTime:s});if(c.failed)return c;let{resultError:l,exitCode:u,signal:d,timedOut:f,isMaxBuffer:p}=Pb(c,n),{output:m,error:h=l}=xb({fileDescriptors:o,syncResult:c,options:n,isMaxBuffer:p,verboseInfo:a}),g=m.map((e,t)=>wy(e,n,t)),_=wy(Db(m,n),n,`all`);return Wb({error:h,exitCode:u,signal:d,timedOut:f,isMaxBuffer:p,stdio:g,all:_,options:n,command:r,escapedCommand:i,startTime:s})},Hb=({file:e,commandArguments:t,options:n,command:r,escapedCommand:i,fileDescriptors:a,startTime:o})=>{try{return lb(a,n),Ce(...eg(e,t,Ub(n)))}catch(e){return y_({error:e,command:r,escapedCommand:i,fileDescriptors:a,options:n,startTime:o,isSync:!0})}},Ub=({encoding:e,maxBuffer:t,...n})=>({...n,encoding:`buffer`,maxBuffer:u_(t)}),Wb=({error:e,exitCode:t,signal:n,timedOut:r,isMaxBuffer:i,stdio:a,all:o,options:s,command:c,escapedCommand:l,startTime:u})=>e===void 0?v_({command:c,escapedCommand:l,stdio:a,all:o,ipcOutput:[],options:s,startTime:u}):b_({error:e,command:c,escapedCommand:l,timedOut:r,isCanceled:!1,isGracefullyCanceled:!1,isMaxBuffer:i,isForcefullyTerminated:!1,exitCode:t,signal:n,stdio:a,all:o,ipcOutput:[],options:s,startTime:u,isSync:!0}),Gb=({anyProcess:e,channel:t,isSubprocess:n,ipc:r},{reference:i=!0,filter:a}={})=>(um({methodName:`getOneMessage`,isSubprocess:n,ipc:r,isConnected:$m(e)}),Kb({anyProcess:e,channel:t,isSubprocess:n,filter:a,reference:i})),Kb=async({anyProcess:e,channel:t,isSubprocess:n,filter:r,reference:i})=>{Vm(t,i);let a=Xm(e,t,n),o=new AbortController;try{return await Promise.race([qb(a,r,o),Jb(a,n,o),Yb(a,n,o)])}catch(t){throw Dm(e),t}finally{o.abort(),Um(t,i)}},qb=async(e,t,{signal:n})=>{if(t===void 0){let[t]=await x(e,`message`,{signal:n});return t}for await(let[r]of Re(e,`message`,{signal:n}))if(t(r))return r},Jb=async(e,t,{signal:n})=>{await x(e,`disconnect`,{signal:n}),pm(t)},Yb=async(e,t,{signal:n})=>{let[r]=await x(e,`strict:error`,{signal:n});throw hm(r,t)},Xb=({anyProcess:e,channel:t,isSubprocess:n,ipc:r},{reference:i=!0}={})=>Zb({anyProcess:e,channel:t,isSubprocess:n,ipc:r,shouldAwait:!n,reference:i}),Zb=({anyProcess:e,channel:t,isSubprocess:n,ipc:r,shouldAwait:i,reference:a})=>{um({methodName:`getEachMessage`,isSubprocess:n,ipc:r,isConnected:$m(e)}),Vm(t,a);let o=Xm(e,t,n),s=new AbortController,c={};return Qb(e,o,s),$b({ipcEmitter:o,isSubprocess:n,controller:s,state:c}),ex({anyProcess:e,channel:t,ipcEmitter:o,isSubprocess:n,shouldAwait:i,controller:s,state:c,reference:a})},Qb=async(e,t,n)=>{try{await x(t,`disconnect`,{signal:n.signal}),n.abort()}catch{}},$b=async({ipcEmitter:e,isSubprocess:t,controller:n,state:r})=>{try{let[i]=await x(e,`strict:error`,{signal:n.signal});r.error=hm(i,t),n.abort()}catch{}},ex=async function*({anyProcess:e,channel:t,ipcEmitter:n,isSubprocess:r,shouldAwait:i,controller:a,state:o,reference:s}){try{for await(let[e]of Re(n,`message`,{signal:a.signal}))tx(o),yield e}catch{tx(o)}finally{a.abort(),Um(t,s),r||Dm(e),i&&await e}},tx=({error:e})=>{if(e)throw e},nx=(e,{ipc:t})=>{Object.assign(e,ix(e,!1,t))},rx=()=>{let e=b,t=b.channel!==void 0;return{...ix(e,!0,t),getCancelSignal:Sh.bind(void 0,{anyProcess:e,channel:e.channel,isSubprocess:!0,ipc:t})}},ix=(e,t,n)=>({sendMessage:gh.bind(void 0,{anyProcess:e,channel:e.channel,isSubprocess:t,ipc:n}),getOneMessage:Gb.bind(void 0,{anyProcess:e,channel:e.channel,isSubprocess:t,ipc:n}),getEachMessage:Xb.bind(void 0,{anyProcess:e,channel:e.channel,isSubprocess:t,ipc:n})}),ax=({error:e,command:t,escapedCommand:n,fileDescriptors:r,options:i,startTime:a,verboseInfo:o})=>{_y(r);let s=new be;ox(s,r),Object.assign(s,{readable:cx,writable:lx,duplex:ux});let c=y_({error:e,command:t,escapedCommand:n,fileDescriptors:r,options:i,startTime:a,isSync:!1});return{subprocess:s,promise:dx(c,o,i)}},ox=(e,t)=>{let n=sx(),r=sx(),i=sx(),a=Array.from({length:t.length-3},sx),o=sx(),s=[n,r,i,...a];Object.assign(e,{stdin:n,stdout:r,stderr:i,all:o,stdio:s})},sx=()=>{let e=new Ue;return e.end(),e},cx=()=>new We({read(){}}),lx=()=>new Ke({write(){}}),ux=()=>new He({read(){},write(){}}),dx=async(e,t,n)=>F_(e,t,n),fx=(e,t)=>ay(hx,e,t,!1),px=({type:e,optionName:t})=>{throw TypeError(`The \`${t}\` option cannot be ${pv[e]}.`)},mx={fileNumber:px,generator:ob,asyncGenerator:ob,nodeStream:({value:e})=>({stream:e}),webTransform({value:{transform:e,writableObjectMode:t,readableObjectMode:n}}){let r=t||n;return{stream:He.fromWeb(e,{objectMode:r})}},duplex:({value:{transform:e}})=>({stream:e}),native(){}},hx={input:{...mx,fileUrl:({value:e})=>({stream:oe(e)}),filePath:({value:{file:e}})=>({stream:oe(e)}),webStream:({value:e})=>({stream:We.fromWeb(e)}),iterable:({value:e})=>({stream:We.from(e)}),asyncIterable:({value:e})=>({stream:We.from(e)}),string:({value:e})=>({stream:We.from(e)}),uint8Array:({value:e})=>({stream:We.from(Je.from(e))})},output:{...mx,fileUrl:({value:e})=>({stream:se(e)}),filePath:({value:{file:e,append:t}})=>({stream:se(e,t?{flags:`a`}:{})}),webStream:({value:e})=>({stream:Ke.fromWeb(e)}),iterable:px,asyncIterable:px,string:px,uint8Array:px}};function gx(e){if(!Array.isArray(e))throw TypeError(`Expected an array, got \`${typeof e}\`.`);for(let t of e)Sx(t);let t=e.some(({readableObjectMode:e})=>e),n=_x(e,t),r=new vx({objectMode:t,writableHighWaterMark:n,readableHighWaterMark:n});for(let t of e)r.add(t);return r}const _x=(e,t)=>{if(e.length===0)return qe(t);let n=e.filter(({readableObjectMode:e})=>e===t).map(({readableHighWaterMark:e})=>e);return Math.max(...n)};var vx=class extends Ue{#e=new Set([]);#t=new Set([]);#n=new Set([]);#r;#i=Symbol(`unpipe`);#a=new WeakMap;add(e){if(Sx(e),this.#e.has(e))return;this.#e.add(e),this.#r??=yx(this,this.#e,this.#i);let t=Cx({passThroughStream:this,stream:e,streams:this.#e,ended:this.#t,aborted:this.#n,onFinished:this.#r,unpipeEvent:this.#i});this.#a.set(e,t),e.pipe(this,{end:!1})}async remove(e){if(Sx(e),!this.#e.has(e))return!1;let t=this.#a.get(e);return t===void 0?!1:(this.#a.delete(e),e.unpipe(this),await t,!0)}};const yx=async(e,t,n)=>{Nx(e,Px);let r=new AbortController;try{await Promise.race([bx(e,r),xx(e,t,n,r)])}finally{r.abort(),Nx(e,-Px)}},bx=async(e,{signal:t})=>{try{await Ve(e,{signal:t,cleanup:!0})}catch(t){throw Ox(e,t),t}},xx=async(e,t,n,{signal:r})=>{for await(let[i]of Re(e,`unpipe`,{signal:r}))t.has(i)&&i.emit(n)},Sx=e=>{if(typeof e?.pipe!=`function`)throw TypeError(`Expected a readable stream, got: \`${typeof e}\`.`)},Cx=async({passThroughStream:e,stream:t,streams:n,ended:r,aborted:i,onFinished:a,unpipeEvent:o})=>{Nx(e,Fx);let s=new AbortController;try{await Promise.race([wx(a,t,s),Tx({passThroughStream:e,stream:t,streams:n,ended:r,aborted:i,controller:s}),Ex({stream:t,streams:n,ended:r,aborted:i,unpipeEvent:o,controller:s})])}finally{s.abort(),Nx(e,-Fx)}n.size>0&&n.size===r.size+i.size&&(r.size===0&&i.size>0?Ax(e):Dx(e))},wx=async(e,t,{signal:n})=>{try{await e,n.aborted||Ax(t)}catch(e){n.aborted||Ox(t,e)}},Tx=async({passThroughStream:e,stream:t,streams:n,ended:r,aborted:i,controller:{signal:a}})=>{try{await Ve(t,{signal:a,cleanup:!0,readable:!0,writable:!1}),n.has(t)&&r.add(t)}catch(r){if(a.aborted||!n.has(t))return;kx(r)?i.add(t):jx(e,r)}},Ex=async({stream:e,streams:t,ended:n,aborted:r,unpipeEvent:i,controller:{signal:a}})=>{if(await x(e,i,{signal:a}),!e.readable)return x(a,`abort`,{signal:a});t.delete(e),n.delete(e),r.delete(e)},Dx=e=>{e.writable&&e.end()},Ox=(e,t)=>{kx(t)?Ax(e):jx(e,t)},kx=e=>e?.code===`ERR_STREAM_PREMATURE_CLOSE`,Ax=e=>{(e.readable||e.writable)&&e.destroy()},jx=(e,t)=>{e.destroyed||(e.once(`error`,Mx),e.destroy(t))},Mx=()=>{},Nx=(e,t)=>{let n=e.getMaxListeners();n!==0&&n!==1/0&&e.setMaxListeners(n+t)},Px=2,Fx=1,Ix=(e,t)=>{e.pipe(t),Lx(e,t),zx(e,t)},Lx=async(e,t)=>{if(!(Bd(e)||Bd(t))){try{await Ve(e,{cleanup:!0,readable:!0,writable:!1})}catch{}Rx(t)}},Rx=e=>{e.writable&&e.end()},zx=async(e,t)=>{if(!(Bd(e)||Bd(t))){try{await Ve(t,{cleanup:!0,readable:!1,writable:!0})}catch{}Bx(e)}},Bx=e=>{e.readable&&e.destroy()},Vx=(e,t,n)=>{let r=new Map;for(let[i,{stdioItems:a,direction:o}]of Object.entries(t)){for(let{stream:t}of a.filter(({type:e})=>cv.has(e)))Hx(e,t,o,i);for(let{stream:t}of a.filter(({type:e})=>!cv.has(e)))Wx({subprocess:e,stream:t,direction:o,fdNumber:i,pipeGroups:r,controller:n})}for(let[e,t]of r.entries())Ix(t.length===1?t[0]:gx(t),e)},Hx=(e,t,n,r)=>{n===`output`?Ix(e.stdio[r],t):Ix(t,e.stdio[r]);let i=Ux[r];i!==void 0&&(e[i]=t),e.stdio[r]=t},Ux=[`stdin`,`stdout`,`stderr`],Wx=({subprocess:e,stream:t,direction:n,fdNumber:r,pipeGroups:i,controller:a})=>{if(t===void 0)return;Gx(t,a);let[o,s]=n===`output`?[t,e.stdio[r]]:[e.stdio[r],t],c=i.get(o)??[];i.set(o,[...c,s])},Gx=(e,{signal:t})=>{Bd(e)&&Bm(e,Kx,t)},Kx=2,qx=[];qx.push(`SIGHUP`,`SIGINT`,`SIGTERM`),process.platform!==`win32`&&qx.push(`SIGALRM`,`SIGABRT`,`SIGVTALRM`,`SIGXCPU`,`SIGXFSZ`,`SIGUSR2`,`SIGTRAP`,`SIGSYS`,`SIGQUIT`,`SIGIOT`),process.platform===`linux`&&qx.push(`SIGIO`,`SIGPOLL`,`SIGPWR`,`SIGSTKFLT`);const Jx=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`,Yx=Symbol.for(`signal-exit emitter`),Xx=globalThis,Zx=Object.defineProperty.bind(Object);var Qx=class{emitted={afterExit:!1,exit:!1};listeners={afterExit:[],exit:[]};count=0;id=Math.random();constructor(){if(Xx[Yx])return Xx[Yx];Zx(Xx,Yx,{value:this,writable:!1,enumerable:!1,configurable:!1})}on(e,t){this.listeners[e].push(t)}removeListener(e,t){let n=this.listeners[e],r=n.indexOf(t);r!==-1&&(r===0&&n.length===1?n.length=0:n.splice(r,1))}emit(e,t,n){if(this.emitted[e])return!1;this.emitted[e]=!0;let r=!1;for(let i of this.listeners[e])r=i(t,n)===!0||r;return e===`exit`&&(r=this.emit(`afterExit`,t,n)||r),r}},$x=class{};const eS=e=>({onExit(t,n){return e.onExit(t,n)},load(){return e.load()},unload(){return e.unload()}});var tS=class extends $x{onExit(){return()=>{}}load(){}unload(){}},nS=class extends $x{#e=rS.platform===`win32`?`SIGINT`:`SIGHUP`;#t=new Qx;#n;#r;#i;#a={};#o=!1;constructor(e){super(),this.#n=e,this.#a={};for(let t of qx)this.#a[t]=()=>{let n=this.#n.listeners(t),{count:r}=this.#t,i=e;if(typeof i.__signal_exit_emitter__==`object`&&typeof i.__signal_exit_emitter__.count==`number`&&(r+=i.__signal_exit_emitter__.count),n.length===r){this.unload();let n=this.#t.emit(`exit`,null,t),r=t===`SIGHUP`?this.#e:t;n||e.kill(e.pid,r)}};this.#i=e.reallyExit,this.#r=e.emit}onExit(e,t){if(!Jx(this.#n))return()=>{};this.#o===!1&&this.load();let n=t?.alwaysLast?`afterExit`:`exit`;return this.#t.on(n,e),()=>{this.#t.removeListener(n,e),this.#t.listeners.exit.length===0&&this.#t.listeners.afterExit.length===0&&this.unload()}}load(){if(!this.#o){this.#o=!0,this.#t.count+=1;for(let e of qx)try{let t=this.#a[e];t&&this.#n.on(e,t)}catch{}this.#n.emit=(e,...t)=>this.#c(e,...t),this.#n.reallyExit=e=>this.#s(e)}}unload(){this.#o&&(this.#o=!1,qx.forEach(e=>{let t=this.#a[e];if(!t)throw Error(`Listener not defined for signal: `+e);try{this.#n.removeListener(e,t)}catch{}}),this.#n.emit=this.#r,this.#n.reallyExit=this.#i,--this.#t.count)}#s(e){return Jx(this.#n)?(this.#n.exitCode=e||0,this.#t.emit(`exit`,this.#n.exitCode,null),this.#i.call(this.#n,this.#n.exitCode)):0}#c(e,...t){let n=this.#r;if(e===`exit`&&Jx(this.#n)){typeof t[0]==`number`&&(this.#n.exitCode=t[0]);let r=n.call(this.#n,e,...t);return this.#t.emit(`exit`,this.#n.exitCode,null),r}else return n.call(this.#n,e,...t)}};const rS=globalThis.process,{onExit:iS,load:aS,unload:oS}=eS(Jx(rS)?new nS(rS):new tS),sS=(e,{cleanup:t,detached:n},{signal:r})=>{if(!t||n)return;let i=iS(()=>{e.kill()});Le(r,()=>{i()})},cS=({source:e,sourcePromise:t,boundOptions:n,createNested:r},...i)=>{let a=ep(),{destination:o,destinationStream:s,destinationError:c,from:l,unpipeSignal:u}=lS(n,r,i),{sourceStream:d,sourceError:f}=fS(e,l),{options:p,fileDescriptors:m}=jm.get(e);return{sourcePromise:t,sourceStream:d,sourceOptions:p,sourceError:f,destination:o,destinationStream:s,destinationError:c,unpipeSignal:u,fileDescriptors:m,startTime:a}},lS=(e,t,n)=>{try{let{destination:r,pipeOptions:{from:i,to:a,unpipeSignal:o}={}}=uS(e,t,...n);return{destination:r,destinationStream:km(r,a),from:i,unpipeSignal:o}}catch(e){return{destinationError:e}}},uS=(e,t,n,...r)=>{if(Array.isArray(n))return{destination:t(dS,e)(n,...r),pipeOptions:e};if(typeof n==`string`||n instanceof URL||hd(n)){if(Object.keys(e).length>0)throw TypeError(`Please use .pipe("file", ..., options) or .pipe(execa("file", ..., options)) instead of .pipe(options)("file", ...).`);let[i,a,o]=_d(n,...r);return{destination:t(dS)(i,a,o),pipeOptions:o}}if(jm.has(n)){if(Object.keys(e).length>0)throw TypeError("Please use .pipe(options)`command` or .pipe($(options)`command`) instead of .pipe(options)($`command`).");return{destination:n,pipeOptions:r[0]}}throw TypeError(`The first argument must be a template string, an options object, or an Execa subprocess: ${n}`)},dS=({options:e})=>({options:{...e,stdin:`pipe`,piped:!0}}),fS=(e,t)=>{try{return{sourceStream:Am(e,t)}}catch(e){return{sourceError:e}}},pS=({sourceStream:e,sourceError:t,destinationStream:n,destinationError:r,fileDescriptors:i,sourceOptions:a,startTime:o})=>{let s=mS({sourceStream:e,sourceError:t,destinationStream:n,destinationError:r});if(s!==void 0)throw hS({error:s,fileDescriptors:i,sourceOptions:a,startTime:o})},mS=({sourceStream:e,sourceError:t,destinationStream:n,destinationError:r})=>{if(t!==void 0&&r!==void 0)return r;if(r!==void 0)return Bx(e),r;if(t!==void 0)return Rx(n),t},hS=({error:e,fileDescriptors:t,sourceOptions:n,startTime:r})=>y_({error:e,command:gS,escapedCommand:gS,fileDescriptors:t,options:n,startTime:r,isSync:!1}),gS=`source.pipe(destination)`,_S=async e=>{let[{status:t,reason:n,value:r=n},{status:i,reason:a,value:o=a}]=await e;if(o.pipedFrom.includes(r)||o.pipedFrom.push(r),i===`rejected`)throw o;if(t===`rejected`)throw r;return o},vS=(e,t,n)=>{let r=SS.has(t)?bS(e,t):yS(e,t);return Bm(e,CS,n.signal),Bm(t,wS,n.signal),xS(t),r},yS=(e,t)=>{let n=gx([e]);return Ix(n,t),SS.set(t,n),n},bS=(e,t)=>{let n=SS.get(t);return n.add(e),n},xS=async e=>{try{await Ve(e,{cleanup:!0,readable:!1,writable:!0})}catch{}SS.delete(e)},SS=new WeakMap,CS=2,wS=1,TS=(e,t)=>e===void 0?[]:[ES(e,t)],ES=async(e,{sourceStream:t,mergedStream:n,fileDescriptors:r,sourceOptions:i,startTime:a})=>{throw await Te(e,t),await n.remove(t),hS({error:Error("Pipe canceled by `unpipeSignal` option."),fileDescriptors:r,sourceOptions:i,startTime:a})},DS=(e,...t)=>{if(K(t[0]))return DS.bind(void 0,{...e,boundOptions:{...e.boundOptions,...t[0]}});let{destination:n,...r}=cS(e,...t),i=OS({...r,destination:n});return i.pipe=DS.bind(void 0,{...e,source:n,sourcePromise:i,boundOptions:{}}),i},OS=async({sourcePromise:e,sourceStream:t,sourceOptions:n,sourceError:r,destination:i,destinationStream:a,destinationError:o,unpipeSignal:s,fileDescriptors:c,startTime:l})=>{let u=kS(e,i);pS({sourceStream:t,sourceError:r,destinationStream:a,destinationError:o,fileDescriptors:c,sourceOptions:n,startTime:l});let d=new AbortController;try{let e=vS(t,a,d);return await Promise.race([_S(u),...TS(s,{sourceStream:t,mergedStream:e,sourceOptions:n,fileDescriptors:c,startTime:l})])}finally{d.abort()}},kS=(e,t)=>Promise.allSettled([e,t]),AS=({subprocessStdout:e,subprocess:t,binary:n,shouldEncode:r,encoding:i,preserveNewlines:a})=>{let o=new AbortController;return jS(t,o),PS({stream:e,controller:o,binary:n,shouldEncode:!e.readableObjectMode&&r,encoding:i,shouldSplit:!e.readableObjectMode,preserveNewlines:a})},jS=async(e,t)=>{try{await e}catch{}finally{t.abort()}},MS=({stream:e,onStreamEnd:t,lines:n,encoding:r,stripFinalNewline:i,allMixed:a})=>{let o=new AbortController;NS(t,o,e);let s=e.readableObjectMode&&!a;return PS({stream:e,controller:o,binary:r===`buffer`,shouldEncode:!s,encoding:r,shouldSplit:!s&&n,preserveNewlines:!i})},NS=async(e,t,n)=>{try{await e}catch{n.destroy()}finally{t.abort()}},PS=({stream:e,controller:t,binary:n,shouldEncode:r,encoding:i,shouldSplit:a,preserveNewlines:o})=>{let s=Re(e,`data`,{signal:t.signal,highWaterMark:IS,highWatermark:IS});return LS({onStdoutChunk:s,controller:t,binary:n,shouldEncode:r,encoding:i,shouldSplit:a,preserveNewlines:o})},FS=qe(!0),IS=FS,LS=async function*({onStdoutChunk:e,controller:t,binary:n,shouldEncode:r,encoding:i,shouldSplit:a,preserveNewlines:o}){let s=RS({binary:n,shouldEncode:r,encoding:i,shouldSplit:a,preserveNewlines:o});try{for await(let[t]of e)yield*nb(t,s,0)}catch(e){if(!t.signal.aborted)throw e}finally{yield*rb(s)}},RS=({binary:e,shouldEncode:t,encoding:n,shouldSplit:r,preserveNewlines:i})=>[Wy(e,n,!t),Ey(e,i,!r,{})].filter(Boolean),zS=async({stream:e,onStreamEnd:t,fdNumber:n,encoding:r,buffer:i,maxBuffer:a,lines:o,allMixed:s,stripFinalNewline:c,verboseInfo:l,streamInfo:u})=>{let d=BS({stream:e,onStreamEnd:t,fdNumber:n,encoding:r,allMixed:s,verboseInfo:l,streamInfo:u});if(!i){await Promise.all([VS(e),d]);return}let f=MS({stream:e,onStreamEnd:t,lines:o,encoding:r,stripFinalNewline:Ty(c,n),allMixed:s}),[p]=await Promise.all([HS({stream:e,iterable:f,fdNumber:n,encoding:r,maxBuffer:a,lines:o}),d]);return p},BS=async({stream:e,onStreamEnd:t,fdNumber:n,encoding:r,allMixed:i,verboseInfo:a,streamInfo:{fileDescriptors:o}})=>{mb({stdioItems:o[n]?.stdioItems,encoding:r,verboseInfo:a,fdNumber:n})&&await _b(MS({stream:e,onStreamEnd:t,lines:!0,encoding:r,stripFinalNewline:!0,allMixed:i}),e,n,a)},VS=async e=>{await ge(),e.readableFlowing===null&&e.resume()},HS=async({stream:e,stream:{readableObjectMode:t},iterable:n,fdNumber:r,encoding:i,maxBuffer:a,lines:o})=>{try{return t||o?await Ig(n,{maxBuffer:a}):i===`buffer`?new Uint8Array(await Rg(n,{maxBuffer:a})):await $g(n,{maxBuffer:a})}catch(n){return WS(r_({error:n,stream:e,readableObjectMode:t,lines:o,encoding:i,fdNumber:r}))}},US=async e=>{try{return await e}catch(e){return WS(e)}},WS=({bufferedData:e})=>yd(e)?new Uint8Array(e):e,GS=async(e,t,n,{isSameDirection:r,stopOnExit:i=!1}={})=>{let a=KS(e,n),o=new AbortController;try{await Promise.race([...i?[n.exitPromise]:[],Ve(e,{cleanup:!0,signal:o.signal})])}catch(e){a.stdinCleanedUp||YS(e,t,n,r)}finally{o.abort()}},KS=(e,{originalStreams:[t],subprocess:n})=>{let r={stdinCleanedUp:!1};return e===t&&qS(e,n,r),r},qS=(e,t,n)=>{let{_destroy:r}=e;e._destroy=(...i)=>{JS(t,n),r.call(e,...i)}},JS=({exitCode:e,signalCode:t},n)=>{(e!==null||t!==null)&&(n.stdinCleanedUp=!0)},YS=(e,t,n,r)=>{if(!XS(e,t,n,r))throw e},XS=(e,t,n,r=!0)=>n.propagating?$S(e)||QS(e):(n.propagating=!0,ZS(n,t)===r?$S(e):QS(e)),ZS=({fileDescriptors:e},t)=>t!==`all`&&e[t].direction===`input`,QS=e=>e?.code===`ERR_STREAM_PREMATURE_CLOSE`,$S=e=>e?.code===`EPIPE`,eC=({subprocess:e,encoding:t,buffer:n,maxBuffer:r,lines:i,stripFinalNewline:a,verboseInfo:o,streamInfo:s})=>e.stdio.map((e,c)=>tC({stream:e,fdNumber:c,encoding:t,buffer:n[c],maxBuffer:r[c],lines:i[c],allMixed:!1,stripFinalNewline:a,verboseInfo:o,streamInfo:s})),tC=async({stream:e,fdNumber:t,encoding:n,buffer:r,maxBuffer:i,lines:a,allMixed:o,stripFinalNewline:s,verboseInfo:c,streamInfo:l})=>{if(!e)return;let u=GS(e,t,l);if(ZS(l,t)){await u;return}let[d]=await Promise.all([zS({stream:e,onStreamEnd:u,fdNumber:t,encoding:n,buffer:r,maxBuffer:i,lines:a,allMixed:o,stripFinalNewline:s,verboseInfo:c,streamInfo:l}),u]);return d},nC=({stdout:e,stderr:t},{all:n})=>n&&(e||t)?gx([e,t].filter(Boolean)):void 0,rC=({subprocess:e,encoding:t,buffer:n,maxBuffer:r,lines:i,stripFinalNewline:a,verboseInfo:o,streamInfo:s})=>tC({...iC(e,n),fdNumber:`all`,encoding:t,maxBuffer:r[1]+r[2],lines:i[1]||i[2],allMixed:aC(e),stripFinalNewline:a,verboseInfo:o,streamInfo:s}),iC=({stdout:e,stderr:t,all:n},[,r,i])=>{let a=r||i;return a?r?i?{stream:n,buffer:a}:{stream:e,buffer:a}:{stream:t,buffer:a}:{stream:n,buffer:a}},aC=({all:e,stdout:t,stderr:n})=>e&&t&&n&&t.readableObjectMode!==n.readableObjectMode,oC=e=>of(e,`ipc`),sC=(e,t)=>{Uf({type:`ipc`,verboseMessage:qf(e),fdNumber:`ipc`,verboseInfo:t})},cC=async({subprocess:e,buffer:t,maxBuffer:n,ipc:r,ipcOutput:i,verboseInfo:a})=>{if(!r)return i;let o=oC(a),s=rf(t,`ipc`),c=rf(n,`ipc`);for await(let t of Zb({anyProcess:e,channel:e.channel,isSubprocess:!1,ipc:r,shouldAwait:!1,reference:!0}))s&&(a_(e,i,c),i.push(t)),o&&sC(t,a);return i},lC=async(e,t)=>(await Promise.allSettled([e]),t),uC=async({subprocess:e,options:{encoding:t,buffer:n,maxBuffer:r,lines:i,timeoutDuration:a,cancelSignal:o,gracefulCancel:s,forceKillAfterDelay:c,stripFinalNewline:l,ipc:u,ipcInput:d},context:f,verboseInfo:p,fileDescriptors:m,originalStreams:h,onInternalError:g,controller:_})=>{let v=Ob(e,f),y={originalStreams:h,fileDescriptors:m,subprocess:e,exitPromise:v,propagating:!1},ee=eC({subprocess:e,encoding:t,buffer:n,maxBuffer:r,lines:i,stripFinalNewline:l,verboseInfo:p,streamInfo:y}),te=rC({subprocess:e,encoding:t,buffer:n,maxBuffer:r,lines:i,stripFinalNewline:l,verboseInfo:p,streamInfo:y}),ne=[],re=cC({subprocess:e,buffer:n,maxBuffer:r,ipc:u,ipcOutput:ne,verboseInfo:p}),ie=dC(h,e,y),ae=fC(m,y);try{return await Promise.race([Promise.all([{},jb(v),Promise.all(ee),te,re,Bh(e,d),...ie,...ae]),g,pC(e,_),...Ph(e,a,f,_),...cm({subprocess:e,cancelSignal:o,gracefulCancel:s,context:f,controller:_}),...Ah({subprocess:e,cancelSignal:o,gracefulCancel:s,forceKillAfterDelay:c,context:f,controller:_})])}catch(e){return f.terminationReason??=`other`,Promise.all([{error:e},v,Promise.all(ee.map(e=>US(e))),US(te),lC(re,ne),Promise.allSettled(ie),Promise.allSettled(ae)])}},dC=(e,t,n)=>e.map((e,r)=>e===t.stdio[r]?void 0:GS(e,r,n)),fC=(e,t)=>e.flatMap(({stdioItems:e},n)=>e.filter(({value:e,stream:t=e})=>cg(t,{checkOpen:!1})&&!Bd(t)).map(({type:e,value:r,stream:i=r})=>GS(i,n,t,{isSameDirection:cv.has(e),stopOnExit:e===`native`}))),pC=async(e,{signal:t})=>{let[n]=await x(e,`error`,{signal:t});throw n},mC=()=>({readableDestroy:new WeakMap,writableFinal:new WeakMap,writableDestroy:new WeakMap}),hC=(e,t,n)=>{let r=e[n];r.has(t)||r.set(t,[]);let i=r.get(t),a=Om();return i.push(a),{resolve:a.resolve.bind(a),promises:i}},gC=async({resolve:e,promises:t},n)=>{e();let[r]=await Promise.race([Promise.allSettled([!0,n]),Promise.all([!1,...t])]);return!r},_C=async e=>{if(e!==void 0)try{await yC(e)}catch{}},vC=async e=>{if(e!==void 0)try{await bC(e)}catch{}},yC=async e=>{await Ve(e,{cleanup:!0,readable:!1,writable:!0})},bC=async e=>{await Ve(e,{cleanup:!0,readable:!0,writable:!1})},xC=async(e,t)=>{if(await e,t)throw t},SC=(e,t,n)=>{n&&!QS(n)?e.destroy(n):t&&e.destroy()},CC=({subprocess:e,concurrentStreams:t,encoding:n},{from:r,binary:i=!0,preserveNewlines:a=!0}={})=>{let o=i||Uh.has(n),{subprocessStdout:s,waitReadableDestroy:c}=wC(e,r,t),{readableEncoding:l,readableObjectMode:u,readableHighWaterMark:d}=TC(s,o),{read:f,onStdoutDataDone:p}=EC({subprocessStdout:s,subprocess:e,binary:o,encoding:n,preserveNewlines:a}),m=new We({read:f,destroy:Ee(kC.bind(void 0,{subprocessStdout:s,subprocess:e,waitReadableDestroy:c})),highWaterMark:d,objectMode:u,encoding:l});return OC({subprocessStdout:s,onStdoutDataDone:p,readable:m,subprocess:e}),m},wC=(e,t,n)=>{let r=Am(e,t);return{subprocessStdout:r,waitReadableDestroy:hC(n,r,`readableDestroy`)}},TC=({readableEncoding:e,readableObjectMode:t,readableHighWaterMark:n},r)=>r?{readableEncoding:e,readableObjectMode:t,readableHighWaterMark:n}:{readableEncoding:e,readableObjectMode:!0,readableHighWaterMark:FS},EC=({subprocessStdout:e,subprocess:t,binary:n,encoding:r,preserveNewlines:i})=>{let a=Om(),o=AS({subprocessStdout:e,subprocess:t,binary:n,shouldEncode:!n,encoding:r,preserveNewlines:i});return{read(){DC(this,o,a)},onStdoutDataDone:a}},DC=async(e,t,n)=>{try{let{value:r,done:i}=await t.next();i?n.resolve():e.push(r)}catch{}},OC=async({subprocessStdout:e,onStdoutDataDone:t,readable:n,subprocess:r,subprocessStdin:i})=>{try{await bC(e),await r,await _C(i),await t,n.readable&&n.push(null)}catch(e){await _C(i),AC(n,e)}},kC=async({subprocessStdout:e,subprocess:t,waitReadableDestroy:n},r)=>{await gC(n,t)&&(AC(e,r),await xC(t,r))},AC=(e,t)=>{SC(e,e.readable,t)},jC=({subprocess:e,concurrentStreams:t},{to:n}={})=>{let{subprocessStdin:r,waitWritableFinal:i,waitWritableDestroy:a}=MC(e,n,t),o=new Ke({...NC(r,e,i),destroy:Ee(LC.bind(void 0,{subprocessStdin:r,subprocess:e,waitWritableFinal:i,waitWritableDestroy:a})),highWaterMark:r.writableHighWaterMark,objectMode:r.writableObjectMode});return IC(r,o),o},MC=(e,t,n)=>{let r=km(e,t);return{subprocessStdin:r,waitWritableFinal:hC(n,r,`writableFinal`),waitWritableDestroy:hC(n,r,`writableDestroy`)}},NC=(e,t,n)=>({write:PC.bind(void 0,e),final:Ee(FC.bind(void 0,e,t,n))}),PC=(e,t,n,r)=>{e.write(t,n)?r():e.once(`drain`,r)},FC=async(e,t,n)=>{await gC(n,t)&&(e.writable&&e.end(),await t)},IC=async(e,t,n)=>{try{await yC(e),t.writable&&t.end()}catch(e){await vC(n),RC(t,e)}},LC=async({subprocessStdin:e,subprocess:t,waitWritableFinal:n,waitWritableDestroy:r},i)=>{await gC(n,t),await gC(r,t)&&(RC(e,i),await xC(t,i))},RC=(e,t)=>{SC(e,e.writable,t)},zC=({subprocess:e,concurrentStreams:t,encoding:n},{from:r,to:i,binary:a=!0,preserveNewlines:o=!0}={})=>{let s=a||Uh.has(n),{subprocessStdout:c,waitReadableDestroy:l}=wC(e,r,t),{subprocessStdin:u,waitWritableFinal:d,waitWritableDestroy:f}=MC(e,i,t),{readableEncoding:p,readableObjectMode:m,readableHighWaterMark:h}=TC(c,s),{read:g,onStdoutDataDone:_}=EC({subprocessStdout:c,subprocess:e,binary:s,encoding:n,preserveNewlines:o}),v=new He({read:g,...NC(u,e,d),destroy:Ee(BC.bind(void 0,{subprocessStdout:c,subprocessStdin:u,subprocess:e,waitReadableDestroy:l,waitWritableFinal:d,waitWritableDestroy:f})),readableHighWaterMark:h,writableHighWaterMark:u.writableHighWaterMark,readableObjectMode:m,writableObjectMode:u.writableObjectMode,encoding:p});return OC({subprocessStdout:c,onStdoutDataDone:_,readable:v,subprocess:e,subprocessStdin:u}),IC(u,v,c),v},BC=async({subprocessStdout:e,subprocessStdin:t,subprocess:n,waitReadableDestroy:r,waitWritableFinal:i,waitWritableDestroy:a},o)=>{await Promise.all([kC({subprocessStdout:e,subprocess:n,waitReadableDestroy:r},o),LC({subprocessStdin:t,subprocess:n,waitWritableFinal:i,waitWritableDestroy:a},o)])},VC=(e,t,{from:n,binary:r=!1,preserveNewlines:i=!1}={})=>{let a=r||Uh.has(t),o=Am(e,n),s=AS({subprocessStdout:o,subprocess:e,binary:a,shouldEncode:!0,encoding:t,preserveNewlines:i});return HC(s,o,e)},HC=async function*(e,t,n){try{yield*e}finally{t.readable&&t.destroy(),await n}},UC=(e,{encoding:t})=>{let n=mC();e.readable=CC.bind(void 0,{subprocess:e,concurrentStreams:n,encoding:t}),e.writable=jC.bind(void 0,{subprocess:e,concurrentStreams:n}),e.duplex=zC.bind(void 0,{subprocess:e,concurrentStreams:n,encoding:t}),e.iterable=VC.bind(void 0,e,t),e[Symbol.asyncIterator]=VC.bind(void 0,e,t,{})},WC=(e,t)=>{for(let[n,r]of KC){let i=r.value.bind(t);Reflect.defineProperty(e,n,{...r,value:i})}},GC=(async()=>{})().constructor.prototype,KC=[`then`,`catch`,`finally`].map(e=>[e,Reflect.getOwnPropertyDescriptor(GC,e)]),qC=(e,t,n,r)=>{let{file:i,commandArguments:a,command:o,escapedCommand:s,startTime:c,verboseInfo:l,options:u,fileDescriptors:d}=JC(e,t,n),{subprocess:f,promise:p}=XC({file:i,commandArguments:a,options:u,startTime:c,verboseInfo:l,command:o,escapedCommand:s,fileDescriptors:d});return f.pipe=DS.bind(void 0,{source:f,sourcePromise:p,boundOptions:{},createNested:r}),WC(f,p),jm.set(f,{options:u,fileDescriptors:d}),f},JC=(e,t,n)=>{let{command:r,escapedCommand:i,startTime:a,verboseInfo:o}=np(e,t,n),{file:s,commandArguments:c,options:l}=Zh(e,t,n),u=YC(l);return{file:s,commandArguments:c,command:r,escapedCommand:i,startTime:a,verboseInfo:o,options:u,fileDescriptors:fx(u,o)}},YC=({timeout:e,signal:t,...n})=>{if(t!==void 0)throw TypeError(`The "signal" option has been renamed to "cancelSignal" instead.`);return{...n,timeoutDuration:e}},XC=({file:e,commandArguments:t,options:n,startTime:r,verboseInfo:i,command:a,escapedCommand:o,fileDescriptors:s})=>{let c;try{c=Se(...eg(e,t,n))}catch(e){return ax({error:e,command:a,escapedCommand:o,fileDescriptors:s,options:n,startTime:r,verboseInfo:i})}let l=new AbortController;ze(1/0,l.signal);let u=[...c.stdio];Vx(c,s,l),sS(c,n,l);let d={},f=Om();c.kill=tm.bind(void 0,{kill:c.kill.bind(c),options:n,onInternalError:f,context:d,controller:l}),c.all=nC(c,n),UC(c,n),nx(c,n);let p=ZC({subprocess:c,options:n,startTime:r,verboseInfo:i,fileDescriptors:s,originalStreams:u,command:a,escapedCommand:o,context:d,onInternalError:f,controller:l});return{subprocess:c,promise:p}},ZC=async({subprocess:e,options:t,startTime:n,verboseInfo:r,fileDescriptors:i,originalStreams:a,command:o,escapedCommand:s,context:c,onInternalError:l,controller:u})=>{let[d,[f,p],m,h,g]=await uC({subprocess:e,options:t,context:c,verboseInfo:r,fileDescriptors:i,originalStreams:a,onInternalError:l,controller:u});u.abort(),l.resolve();let _=m.map((e,n)=>wy(e,t,n)),v=wy(h,t,`all`);return F_(QC({errorInfo:d,exitCode:f,signal:p,stdio:_,all:v,ipcOutput:g,context:c,options:t,command:o,escapedCommand:s,startTime:n}),r,t)},QC=({errorInfo:e,exitCode:t,signal:n,stdio:r,all:i,ipcOutput:a,context:o,options:s,command:c,escapedCommand:l,startTime:u})=>`error`in e?b_({error:e.error,command:c,escapedCommand:l,timedOut:o.terminationReason===`timeout`,isCanceled:o.terminationReason===`cancel`||o.terminationReason===`gracefulCancel`,isGracefullyCanceled:o.terminationReason===`gracefulCancel`,isMaxBuffer:e.error instanceof Ag,isForcefullyTerminated:o.isForcefullyTerminated,exitCode:t,signal:n,stdio:r,all:i,ipcOutput:a,options:s,startTime:u,isSync:!1}):v_({command:c,escapedCommand:l,stdio:r,all:i,ipcOutput:a,options:s,startTime:u}),$C=(e,t)=>{let n=Object.fromEntries(Object.entries(t).map(([t,n])=>[t,ew(t,e[t],n)]));return{...e,...n}},ew=(e,t,n)=>tw.has(e)&&K(t)&&K(n)?{...t,...n}:n,tw=new Set([`env`,...nf]),nw=(e,t,n,r)=>{let i=(e,t,r)=>nw(e,t,n,r),a=(...a)=>rw({mapArguments:e,deepOptions:n,boundOptions:t,setBoundExeca:r,createNested:i},...a);return r!==void 0&&r(a,i,t),a},rw=({mapArguments:e,deepOptions:t={},boundOptions:n={},setBoundExeca:r,createNested:i},a,...o)=>{if(K(a))return i(e,$C(n,a),r);let{file:s,commandArguments:c,options:l,isSync:u}=iw({mapArguments:e,firstArgument:a,nextArguments:o,deepOptions:t,boundOptions:n});return u?Ib(s,c,l):qC(s,c,l,i)},iw=({mapArguments:e,firstArgument:t,nextArguments:n,deepOptions:r,boundOptions:i})=>{let[a,o,s]=_d(...jd(t)?Md(t,n):[t,...n]),c=$C($C(r,i),s),{file:l=a,commandArguments:u=o,options:d=c,isSync:f=!1}=e({file:a,commandArguments:o,options:c});return{file:l,commandArguments:u,options:d,isSync:f}},aw=({file:e,commandArguments:t})=>sw(e,t),ow=({file:e,commandArguments:t})=>({...sw(e,t),isSync:!0}),sw=(e,t)=>{if(t.length>0)throw TypeError(`The command and its arguments must be passed as a single string: ${e} ${t}.`);let[n,...r]=cw(e);return{file:n,commandArguments:r}},cw=e=>{if(typeof e!=`string`)throw TypeError(`The command must be a string: ${String(e)}.`);let t=e.trim();if(t===``)return[];let n=[];for(let e of t.split(lw)){let t=n.at(-1);t&&t.endsWith(`\\`)?n[n.length-1]=`${t.slice(0,-1)} ${e}`:n.push(e)}return n},lw=/ +/g,uw=(e,t,n)=>{e.sync=t(fw,n),e.s=e.sync},dw=({options:e})=>pw(e),fw=({options:e})=>({...pw(e),isSync:!0}),pw=e=>({options:{...mw(e),...e}}),mw=({input:e,inputFile:t,stdio:n})=>e===void 0&&t===void 0&&n===void 0?{stdin:`inherit`}:{},hw={preferLocal:!0},gw=nw(()=>({}));nw(()=>({isSync:!0})),nw(aw),nw(ow),nw(Ih),nw(dw,{},hw,uw);const{sendMessage:_w,getOneMessage:vw,getEachMessage:yw,getCancelSignal:bw}=rx(),xw=e=>e===void 0?{}:{cwd:e},Sw=e=>e===void 0?{}:{timeout:e},Cw=(e,t)=>[e,`refs: command timed out after ${String(t)}ms`].filter(e=>e!==``).join(`
384
- `),ww=(e,t)=>({exitCode:124,stderr:Cw(e,t),stdout:``,timedOut:!0});var Tw=class{async run(e,t,n){let r=await gw(e,t,{...xw(n?.cwd),...Sw(n?.timeoutMs),reject:!1});return r.timedOut?ww(r.stderr,n?.timeoutMs):{exitCode:r.exitCode??1,stderr:r.stderr,stdout:r.stdout}}};const Ew=$s.partial({description:!0}),Dw=Yo({default_branch:L().min(1),key:Us,tag_format_candidate:Js.nullable(),url:L().min(1)});Dw.extend({description:L().default(``),packages:Ns(Ew)});const Ow=Dw.extend({description:L().min(1),packages:Ns($s)}),kw=Yo({effective_clone_mode:Ks.optional(),head_sha:L().regex(/^[0-9a-f]{40}$/u,`head_sha must be a 40-character lowercase hex string`).optional(),last_error:L().optional(),last_fetched_at:Ya().optional(),pending_proposal_at:Ya().optional()}),Aw=Yo({refs:js(e=>e.length>=1&&!As.has(e),()=>`state ref key must be non-empty and not "__proto__", "constructor", or "prototype"`,ns(L(),kw)).default({})}),jw=(e,t,n)=>t?.[e]??n[e],Mw=async e=>{try{return await s(e.statePath,`utf8`)}catch(e){if(Lc(e))return;throw e}},Nw=e=>{try{return JSON.parse(e)}catch{return}},Z=async e=>{let t=await Mw(e);if(t===void 0)return Aw.parse({});let n=Nw(t);if(n===void 0)return Aw.parse({});let r=Aw.safeParse(n);return r.success?r.data:Aw.parse({})},Pw=async(e,t)=>{let n=Aw.safeParse(t);if(!n.success)throw T(k(n.error));await Rc(e.statePath,`${JSON.stringify(n.data,void 0,2)}\n`)},Fw=/^\s*-\s+["']?(?<pattern>[^"'#]+)["']?/u,Iw=/^packages:\s*(?:#.*)?$/u,Lw=e=>typeof e==`object`&&!!e&&!Array.isArray(e),Rw=e=>{if(Array.isArray(e))return e.filter(e=>typeof e==`string`);if(!Lw(e))return[];let{packages:t}=e;return Array.isArray(t)?t.filter(e=>typeof e==`string`):[]},zw=e=>{let t=[],n=!1;for(let r of e){let e=r.trim();if(Iw.test(r)){n=!0;continue}if(!n)continue;if(e&&!e.startsWith(`-`)&&e.includes(`:`))break;if(!e.startsWith(`-`))continue;let i=Fw.exec(r)?.groups?.pattern?.trim();i&&i!==``&&t.push(i)}return t},Bw=e=>{let{name:t}=e;if(typeof t==`string`)return t},Vw=e=>{let{description:t}=e;if(typeof t==`string`)return t},Hw=/[/\\]/u,Uw=e=>v(e)?!1:e.split(Hw).every(e=>e!==`.`&&e!==`..`),Ww=async(e,t,n=!1)=>{try{let r=ee(await l(e),await l(t));if(n&&r===``)return!0;let i=r===`..`||r.startsWith(`..`+ne);return r!==``&&!i&&!v(r)}catch{return!1}},Gw=async(e,t)=>{try{let n=y(t,`package.json`);return await Ww(e,n)?(await s(n,`utf8`),!0):!1}catch{return!1}},Kw=async(e,t)=>{try{let n=y(e,t);if(!await Ww(e,n,t===`.`))return[];let r=(await c(n,{withFileTypes:!0})).filter(e=>e.isDirectory()).map(async r=>{if(await Gw(e,y(n,r.name)))return y(t,r.name)});return(await Promise.all(r)).filter(e=>e!==void 0)}catch{return[]}},qw=async(e,t)=>{if(!Uw(t)||t.startsWith(`!`)||t.includes(`**`)||(t.match(/\*/gu)??[]).length>1)return[];if(t.endsWith(`/*`)){let n=t.slice(0,-2);return Kw(e,n)}if(t===`*`)return Kw(e,`.`);if(!t.includes(`*`)){let n=y(e,t);if(await Ww(e,n)&&await Gw(e,n))return[t]}return[]},Jw=async(e,t)=>{try{let n=y(t,`package.json`);if(!await Ww(e,n))return;let r=await s(n,`utf8`),i=JSON.parse(r);return{description:Vw(i),name:Bw(i)}}catch{return}},Yw=e=>{let t=e.map(e=>[e.path,e]),n=[...new Map(t).values()];return n.sort((e,t)=>e.path.localeCompare(t.path)),n},Xw=async(e,t)=>{let n=new Set;try{if(!await Ww(e,t))return n;let r=await s(t,`utf8`);Rw(JSON.parse(r).workspaces).forEach(e=>n.add(e))}catch{}return n},Zw=async(e,t)=>{let n=new Set;try{if(!await Ww(e,t))return n;zw((await s(t,`utf8`)).split(`
385
- `)).forEach(e=>n.add(e))}catch{}return n},Qw=async(e,t)=>{let n=new Set,r=[...t].map(t=>qw(e,t));return(await Promise.all(r)).forEach(e=>{e.forEach(e=>n.add(e))}),n},$w=async(e,t)=>{let n=y(e,t);if(!await Ww(e,n))return;let r=await Jw(e,n);if(r?.name)return{description:r.description,name:r.name,path:t}},eT=async(e,t)=>{let n=[...t].map(t=>$w(e,t));return(await Promise.all(n)).filter(e=>e!==void 0)},tT=async e=>{let t=y(e,`package.json`),n=y(e,`pnpm-workspace.yaml`),r=await Xw(e,t),i=await Zw(e,n),a=new Set;if(r.forEach(e=>a.add(e)),i.forEach(e=>a.add(e)),a.size===0)return[];let o=await Qw(e,a),s=await eT(e,o);return Yw(s)},nT=async()=>{let e=[];for await(let t of process.stdin)e.push(Buffer.from(t));return Buffer.concat(e).toString(`utf8`)},rT=()=>({env:process.env,errLine:e=>{process.stderr.write(`${e}\n`)},fetcher:e=>fetch(e),nodeVersion:process.version,out:e=>{process.stdout.write(`${e}\n`)},readStdin:nT,runner:new Tw});var iT=class extends Error{constructor(e,t,n){super(n),Error.captureStackTrace(this,this.constructor),this.name=this.constructor.name,this.code=t,this.exitCode=e,this.nestedError=void 0}},aT=class extends iT{constructor(e){super(1,`commander.invalidArgument`,e),Error.captureStackTrace(this,this.constructor),this.name=this.constructor.name}},oT=class{constructor(e,t){switch(this.description=t||``,this.variadic=!1,this.parseArg=void 0,this.defaultValue=void 0,this.defaultValueDescription=void 0,this.argChoices=void 0,e[0]){case`<`:this.required=!0,this._name=e.slice(1,-1);break;case`[`:this.required=!1,this._name=e.slice(1,-1);break;default:this.required=!0,this._name=e;break}this._name.endsWith(`...`)&&(this.variadic=!0,this._name=this._name.slice(0,-3))}name(){return this._name}_collectValue(e,t){return t===this.defaultValue||!Array.isArray(t)?[e]:(t.push(e),t)}default(e,t){return this.defaultValue=e,this.defaultValueDescription=t,this}argParser(e){return this.parseArg=e,this}choices(e){return this.argChoices=e.slice(),this.parseArg=(e,t)=>{if(!this.argChoices.includes(e))throw new aT(`Allowed choices are ${this.argChoices.join(`, `)}.`);return this.variadic?this._collectValue(e,t):e},this}argRequired(){return this.required=!0,this}argOptional(){return this.required=!1,this}};function sT(e){let t=e.name()+(e.variadic===!0?`...`:``);return e.required?`<`+t+`>`:`[`+t+`]`}var cT=class{constructor(){this.helpWidth=void 0,this.minWidthToWrap=40,this.sortSubcommands=!1,this.sortOptions=!1,this.showGlobalOptions=!1}prepareContext(e){this.helpWidth=this.helpWidth??e.helpWidth??80}visibleCommands(e){let t=e.commands.filter(e=>!e._hidden),n=e._getHelpCommand();return n&&!n._hidden&&t.push(n),this.sortSubcommands&&t.sort((e,t)=>e.name().localeCompare(t.name())),t}compareOptions(e,t){let n=e=>e.short?e.short.replace(/^-/,``):e.long.replace(/^--/,``);return n(e).localeCompare(n(t))}visibleOptions(e){let t=e.options.filter(e=>!e.hidden),n=e._getHelpOption();if(n&&!n.hidden){let r=n.short&&e._findOption(n.short),i=n.long&&e._findOption(n.long);!r&&!i?t.push(n):n.long&&!i?t.push(e.createOption(n.long,n.description)):n.short&&!r&&t.push(e.createOption(n.short,n.description))}return this.sortOptions&&t.sort(this.compareOptions),t}visibleGlobalOptions(e){if(!this.showGlobalOptions)return[];let t=[];for(let n=e.parent;n;n=n.parent){let e=n.options.filter(e=>!e.hidden);t.push(...e)}return this.sortOptions&&t.sort(this.compareOptions),t}visibleArguments(e){return e._argsDescription&&e.registeredArguments.forEach(t=>{t.description=t.description||e._argsDescription[t.name()]||``}),e.registeredArguments.find(e=>e.description)?e.registeredArguments:[]}subcommandTerm(e){let t=e.registeredArguments.map(e=>sT(e)).join(` `);return e._name+(e._aliases[0]?`|`+e._aliases[0]:``)+(e.options.length?` [options]`:``)+(t?` `+t:``)}optionTerm(e){return e.flags}argumentTerm(e){return e.name()}longestSubcommandTermLength(e,t){return t.visibleCommands(e).reduce((e,n)=>Math.max(e,this.displayWidth(t.styleSubcommandTerm(t.subcommandTerm(n)))),0)}longestOptionTermLength(e,t){return t.visibleOptions(e).reduce((e,n)=>Math.max(e,this.displayWidth(t.styleOptionTerm(t.optionTerm(n)))),0)}longestGlobalOptionTermLength(e,t){return t.visibleGlobalOptions(e).reduce((e,n)=>Math.max(e,this.displayWidth(t.styleOptionTerm(t.optionTerm(n)))),0)}longestArgumentTermLength(e,t){return t.visibleArguments(e).reduce((e,n)=>Math.max(e,this.displayWidth(t.styleArgumentTerm(t.argumentTerm(n)))),0)}commandUsage(e){let t=e._name;e._aliases[0]&&(t=t+`|`+e._aliases[0]);let n=``;for(let t=e.parent;t;t=t.parent)n=t.name()+` `+n;return n+t+` `+e.usage()}commandDescription(e){return e.description()}subcommandDescription(e){return e.summary()||e.description()}optionDescription(e){let t=[];if(e.argChoices&&t.push(`choices: ${e.argChoices.map(e=>JSON.stringify(e)).join(`, `)}`),e.defaultValue!==void 0&&(e.required||e.optional||e.isBoolean()&&typeof e.defaultValue==`boolean`)&&t.push(`default: ${e.defaultValueDescription||JSON.stringify(e.defaultValue)}`),e.presetArg!==void 0&&e.optional&&t.push(`preset: ${JSON.stringify(e.presetArg)}`),e.envVar!==void 0&&t.push(`env: ${e.envVar}`),t.length>0){let n=`(${t.join(`, `)})`;return e.description?`${e.description} ${n}`:n}return e.description}argumentDescription(e){let t=[];if(e.argChoices&&t.push(`choices: ${e.argChoices.map(e=>JSON.stringify(e)).join(`, `)}`),e.defaultValue!==void 0&&t.push(`default: ${e.defaultValueDescription||JSON.stringify(e.defaultValue)}`),t.length>0){let n=`(${t.join(`, `)})`;return e.description?`${e.description} ${n}`:n}return e.description}formatItemList(e,t,n){return t.length===0?[]:[n.styleTitle(e),...t,``]}groupItems(e,t,n){let r=new Map;return e.forEach(e=>{let t=n(e);r.has(t)||r.set(t,[])}),t.forEach(e=>{let t=n(e);r.has(t)||r.set(t,[]),r.get(t).push(e)}),r}formatHelp(e,t){let n=t.padWidth(e,t),r=t.helpWidth??80;function i(e,r){return t.formatItem(e,n,r,t)}let a=[`${t.styleTitle(`Usage:`)} ${t.styleUsage(t.commandUsage(e))}`,``],o=t.commandDescription(e);o.length>0&&(a=a.concat([t.boxWrap(t.styleCommandDescription(o),r),``]));let s=t.visibleArguments(e).map(e=>i(t.styleArgumentTerm(t.argumentTerm(e)),t.styleArgumentDescription(t.argumentDescription(e))));if(a=a.concat(this.formatItemList(`Arguments:`,s,t)),this.groupItems(e.options,t.visibleOptions(e),e=>e.helpGroupHeading??`Options:`).forEach((e,n)=>{let r=e.map(e=>i(t.styleOptionTerm(t.optionTerm(e)),t.styleOptionDescription(t.optionDescription(e))));a=a.concat(this.formatItemList(n,r,t))}),t.showGlobalOptions){let n=t.visibleGlobalOptions(e).map(e=>i(t.styleOptionTerm(t.optionTerm(e)),t.styleOptionDescription(t.optionDescription(e))));a=a.concat(this.formatItemList(`Global Options:`,n,t))}return this.groupItems(e.commands,t.visibleCommands(e),e=>e.helpGroup()||`Commands:`).forEach((e,n)=>{let r=e.map(e=>i(t.styleSubcommandTerm(t.subcommandTerm(e)),t.styleSubcommandDescription(t.subcommandDescription(e))));a=a.concat(this.formatItemList(n,r,t))}),a.join(`
383
+ if (condition) { yield value; }`)},Uy=(e,t,n)=>{if(n)return;if(e)return{transform:Wy.bind(void 0,new TextEncoder)};let r=new we(t);return{transform:Gy.bind(void 0,r),final:Ky.bind(void 0,r)}},Wy=function*(e,t){Je.isBuffer(t)?yield yd(t):typeof t==`string`?yield e.encode(t):yield t},Gy=function*(e,t){yield J(t)?e.write(t):t},Ky=function*(e){let t=e.end();t!==``&&(yield t)},qy=Ee(async(e,t,n,r)=>{t.currentIterable=e(...n);try{for await(let e of t.currentIterable)r.push(e)}finally{delete t.currentIterable}}),Jy=async function*(e,t,n){if(n===t.length){yield e;return}let{transform:r=Qy}=t[n];for await(let i of r(e))yield*Jy(i,t,n+1)},Yy=async function*(e){for(let[t,{final:n}]of Object.entries(e))yield*Xy(n,Number(t),e)},Xy=async function*(e,t,n){if(e!==void 0)for await(let r of e())yield*Jy(r,n,t+1)},Zy=Ee(async({currentIterable:e},t)=>{if(e!==void 0){await(t?e.throw(t):e.return());return}if(t)throw t}),Qy=function*(e){yield e},$y=(e,t,n,r)=>{try{for(let r of e(...t))n.push(r);r()}catch(e){r(e)}},eb=(e,t)=>[...t.flatMap(t=>[...tb(t,e,0)]),...nb(e)],tb=function*(e,t,n){if(n===t.length){yield e;return}let{transform:r=ib}=t[n];for(let i of r(e))yield*tb(i,t,n+1)},nb=function*(e){for(let[t,{final:n}]of Object.entries(e))yield*rb(n,Number(t),e)},rb=function*(e,t,n){if(e!==void 0)for(let r of e())yield*tb(r,n,t+1)},ib=function*(e){yield e},ab=({value:e,value:{transform:t,final:n,writableObjectMode:r,readableObjectMode:i},optionName:a},{encoding:o})=>{let s={},c=sb(e,o,a),l=U_(t),u=U_(n),d=l?qy.bind(void 0,Jy,s):$y.bind(void 0,tb),f=l||u?qy.bind(void 0,Yy,s):$y.bind(void 0,nb),p=l||u?Zy.bind(void 0,s):void 0;return{stream:new Ge({writableObjectMode:r,writableHighWaterMark:qe(r),readableObjectMode:i,readableHighWaterMark:qe(i),transform(e,t,n){d([e,c,0],this,n)},flush(e){f([c],this,e)},destroy:p})}},ob=(e,t,n,r)=>{let i=t.filter(({type:e})=>e===`generator`),a=r?i.reverse():i;for(let{value:t,optionName:r}of a)e=eb(sb(t,n,r),e);return e},sb=({transform:e,final:t,binary:n,writableObjectMode:r,readableObjectMode:i,preserveNewlines:a},o,s)=>{let c={};return[{transform:Ly(r,s)},Uy(n,o,r),Ty(n,a,r,c),{transform:e,final:t},{transform:zy(i,s)},My({binary:n,preserveNewlines:a,readableObjectMode:i,state:c})].filter(Boolean)},cb=(e,t)=>{for(let n of lb(e))ub(e,n,t)},lb=e=>new Set(Object.entries(e).filter(([,{direction:e}])=>e===`input`).map(([e])=>Number(e))),ub=(e,t,n)=>{let{stdioItems:r}=e[t],i=r.filter(({contents:e})=>e!==void 0);if(i.length!==0){if(t!==0){let[{type:e,optionName:t}]=i;throw TypeError(`Only the \`stdin\` option, not \`${t}\`, can be ${dv[e]} with synchronous methods.`)}n.input=Ed(i.map(({contents:e})=>e).map(e=>db(e,r)))}},db=(e,t)=>{let n=ob(e,t,`utf8`,!0);return fb(n),Ed(n)},fb=e=>{let t=e.find(e=>typeof e!=`string`&&!J(e));if(t!==void 0)throw TypeError(`The \`stdin\` option is invalid: when passing objects as input, a transform must be used to serialize them to strings or Uint8Arrays: ${t}.`)},pb=({stdioItems:e,encoding:t,verboseInfo:n,fdNumber:r})=>r!==`all`&&rf(n,r)&&!Vh.has(t)&&mb(r)&&(e.some(({type:e,value:t})=>e===`native`&&hb.has(t))||e.every(({type:e})=>ov.has(e))),mb=e=>e===1||e===2,hb=new Set([`pipe`,`overlapped`]),gb=async(e,t,n,r)=>{for await(let i of e)vb(t)||yb(i,n,r)},_b=(e,t,n)=>{for(let r of e)yb(r,t,n)},vb=e=>e._readableState.pipes.length>0,yb=(e,t,n)=>{Vf({type:`output`,verboseMessage:Gf(e),fdNumber:t,verboseInfo:n})},bb=({fileDescriptors:e,syncResult:{output:t},options:n,isMaxBuffer:r,verboseInfo:i})=>{if(t===null)return{output:Array.from({length:3})};let a={},o=new Set([]);return{output:t.map((t,s)=>xb({result:t,fileDescriptors:e,fdNumber:s,state:a,outputFiles:o,isMaxBuffer:r,verboseInfo:i},n)),...a}},xb=({result:e,fileDescriptors:t,fdNumber:n,state:r,outputFiles:i,isMaxBuffer:a,verboseInfo:o},{buffer:s,encoding:c,lines:l,stripFinalNewline:u,maxBuffer:d})=>{if(e===null)return;let f=yd(s_(e,a,d)),{stdioItems:p,objectMode:m}=t[n],h=Sb([f],p,c,r),{serializedResult:g,finalResult:_=g}=Cb({chunks:h,objectMode:m,encoding:c,lines:l,stripFinalNewline:u,fdNumber:n});wb({serializedResult:g,fdNumber:n,state:r,verboseInfo:o,encoding:c,stdioItems:p,objectMode:m});let v=s[n]?_:void 0;try{return r.error===void 0&&Tb(g,p,i),v}catch(e){return r.error=e,v}},Sb=(e,t,n,r)=>{try{return ob(e,t,n,!1)}catch(t){return r.error=t,e}},Cb=({chunks:e,objectMode:t,encoding:n,lines:r,stripFinalNewline:i,fdNumber:a})=>{if(t)return{serializedResult:e};if(n===`buffer`)return{serializedResult:Ed(e)};let o=wd(e,n);return r[a]?{serializedResult:o,finalResult:Ey(o,!i[a],t)}:{serializedResult:o}},wb=({serializedResult:e,fdNumber:t,state:n,verboseInfo:r,encoding:i,stdioItems:a,objectMode:o})=>{if(!pb({stdioItems:a,encoding:i,verboseInfo:r,fdNumber:t}))return;let s=Ey(e,!1,o);try{_b(s,t,r)}catch(e){n.error??=e}},Tb=(e,t,n)=>{for(let{path:r,append:i}of t.filter(({type:e})=>sv.has(e))){let t=typeof r==`string`?r:r.toString();i||n.has(t)?ae(r,e):(n.add(t),fe(r,e))}},Eb=([,e,t],n)=>{if(n.all)return e===void 0?t:t===void 0?e:Array.isArray(e)?Array.isArray(t)?[...e,...t]:[...e,Cy(t,n,`all`)]:Array.isArray(t)?[Cy(e,n,`all`),...t]:J(e)&&J(t)?Od([e,t]):`${e}${t}`},Db=async(e,t)=>{let[n,r]=await Ob(e);return t.isForcefullyTerminated??=!1,[n,r]},Ob=async e=>{let[t,n]=await Promise.allSettled([x(e,`spawn`),x(e,`exit`)]);return t.status===`rejected`?[]:n.status===`rejected`?kb(e):n.value},kb=async e=>{try{return await x(e,`exit`)}catch{return kb(e)}},Ab=async e=>{let[t,n]=await e;if(!jb(t,n)&&Mb(t,n))throw new Sp;return[t,n]},jb=(e,t)=>e===void 0&&t===void 0,Mb=(e,t)=>e!==0||t!==null,Nb=({error:e,status:t,signal:n,output:r},{maxBuffer:i})=>{let a=Pb(e,t,n);return{resultError:a,exitCode:t,signal:n,timedOut:a?.code===`ETIMEDOUT`,isMaxBuffer:o_(a,r,i)}},Pb=(e,t,n)=>e===void 0?Mb(t,n)?new Sp:void 0:e,Fb=(e,t,n)=>{let{file:r,commandArguments:i,command:a,escapedCommand:o,startTime:s,verboseInfo:c,options:l,fileDescriptors:u}=Ib(e,t,n);return N_(Bb({file:r,commandArguments:i,options:l,command:a,escapedCommand:o,verboseInfo:c,fileDescriptors:u,startTime:s}),c,l)},Ib=(e,t,n)=>{let{command:r,escapedCommand:i,startTime:a,verboseInfo:o}=ep(e,t,n),{file:s,commandArguments:c,options:l}=Yh(e,t,Lb(n));return Rb(l),{file:s,commandArguments:c,command:r,escapedCommand:i,startTime:a,verboseInfo:o,options:l,fileDescriptors:_y(l,o)}},Lb=e=>e.node&&!e.ipc?{...e,ipc:!1}:e,Rb=({ipc:e,ipcInput:t,detached:n,cancelSignal:r})=>{t&&zb(`ipcInput`),e&&zb(`ipc: true`),n&&zb(`detached: true`),r&&zb(`cancelSignal`)},zb=e=>{throw TypeError(`The "${e}" option cannot be used with synchronous methods.`)},Bb=({file:e,commandArguments:t,options:n,command:r,escapedCommand:i,verboseInfo:a,fileDescriptors:o,startTime:s})=>{let c=Vb({file:e,commandArguments:t,options:n,command:r,escapedCommand:i,fileDescriptors:o,startTime:s});if(c.failed)return c;let{resultError:l,exitCode:u,signal:d,timedOut:f,isMaxBuffer:p}=Nb(c,n),{output:m,error:h=l}=bb({fileDescriptors:o,syncResult:c,options:n,isMaxBuffer:p,verboseInfo:a}),g=m.map((e,t)=>Cy(e,n,t)),_=Cy(Eb(m,n),n,`all`);return Ub({error:h,exitCode:u,signal:d,timedOut:f,isMaxBuffer:p,stdio:g,all:_,options:n,command:r,escapedCommand:i,startTime:s})},Vb=({file:e,commandArguments:t,options:n,command:r,escapedCommand:i,fileDescriptors:a,startTime:o})=>{try{return cb(a,n),Ce(...Qh(e,t,Hb(n)))}catch(e){return __({error:e,command:r,escapedCommand:i,fileDescriptors:a,options:n,startTime:o,isSync:!0})}},Hb=({encoding:e,maxBuffer:t,...n})=>({...n,encoding:`buffer`,maxBuffer:c_(t)}),Ub=({error:e,exitCode:t,signal:n,timedOut:r,isMaxBuffer:i,stdio:a,all:o,options:s,command:c,escapedCommand:l,startTime:u})=>e===void 0?g_({command:c,escapedCommand:l,stdio:a,all:o,ipcOutput:[],options:s,startTime:u}):v_({error:e,command:c,escapedCommand:l,timedOut:r,isCanceled:!1,isGracefullyCanceled:!1,isMaxBuffer:i,isForcefullyTerminated:!1,exitCode:t,signal:n,stdio:a,all:o,ipcOutput:[],options:s,startTime:u,isSync:!0}),Wb=({anyProcess:e,channel:t,isSubprocess:n,ipc:r},{reference:i=!0,filter:a}={})=>(cm({methodName:`getOneMessage`,isSubprocess:n,ipc:r,isConnected:Zm(e)}),Gb({anyProcess:e,channel:t,isSubprocess:n,filter:a,reference:i})),Gb=async({anyProcess:e,channel:t,isSubprocess:n,filter:r,reference:i})=>{zm(t,i);let a=Jm(e,t,n),o=new AbortController;try{return await Promise.race([Kb(a,r,o),qb(a,n,o),Jb(a,n,o)])}catch(t){throw Tm(e),t}finally{o.abort(),Vm(t,i)}},Kb=async(e,t,{signal:n})=>{if(t===void 0){let[t]=await x(e,`message`,{signal:n});return t}for await(let[r]of Re(e,`message`,{signal:n}))if(t(r))return r},qb=async(e,t,{signal:n})=>{await x(e,`disconnect`,{signal:n}),dm(t)},Jb=async(e,t,{signal:n})=>{let[r]=await x(e,`strict:error`,{signal:n});throw pm(r,t)},Yb=({anyProcess:e,channel:t,isSubprocess:n,ipc:r},{reference:i=!0}={})=>Xb({anyProcess:e,channel:t,isSubprocess:n,ipc:r,shouldAwait:!n,reference:i}),Xb=({anyProcess:e,channel:t,isSubprocess:n,ipc:r,shouldAwait:i,reference:a})=>{cm({methodName:`getEachMessage`,isSubprocess:n,ipc:r,isConnected:Zm(e)}),zm(t,a);let o=Jm(e,t,n),s=new AbortController,c={};return Zb(e,o,s),Qb({ipcEmitter:o,isSubprocess:n,controller:s,state:c}),$b({anyProcess:e,channel:t,ipcEmitter:o,isSubprocess:n,shouldAwait:i,controller:s,state:c,reference:a})},Zb=async(e,t,n)=>{try{await x(t,`disconnect`,{signal:n.signal}),n.abort()}catch{}},Qb=async({ipcEmitter:e,isSubprocess:t,controller:n,state:r})=>{try{let[i]=await x(e,`strict:error`,{signal:n.signal});r.error=pm(i,t),n.abort()}catch{}},$b=async function*({anyProcess:e,channel:t,ipcEmitter:n,isSubprocess:r,shouldAwait:i,controller:a,state:o,reference:s}){try{for await(let[e]of Re(n,`message`,{signal:a.signal}))ex(o),yield e}catch{ex(o)}finally{a.abort(),Vm(t,s),r||Tm(e),i&&await e}},ex=({error:e})=>{if(e)throw e},tx=(e,{ipc:t})=>{Object.assign(e,rx(e,!1,t))},nx=()=>{let e=b,t=b.channel!==void 0;return{...rx(e,!0,t),getCancelSignal:bh.bind(void 0,{anyProcess:e,channel:e.channel,isSubprocess:!0,ipc:t})}},rx=(e,t,n)=>({sendMessage:mh.bind(void 0,{anyProcess:e,channel:e.channel,isSubprocess:t,ipc:n}),getOneMessage:Wb.bind(void 0,{anyProcess:e,channel:e.channel,isSubprocess:t,ipc:n}),getEachMessage:Yb.bind(void 0,{anyProcess:e,channel:e.channel,isSubprocess:t,ipc:n})}),ix=({error:e,command:t,escapedCommand:n,fileDescriptors:r,options:i,startTime:a,verboseInfo:o})=>{hy(r);let s=new be;ax(s,r),Object.assign(s,{readable:sx,writable:cx,duplex:lx});let c=__({error:e,command:t,escapedCommand:n,fileDescriptors:r,options:i,startTime:a,isSync:!1});return{subprocess:s,promise:ux(c,o,i)}},ax=(e,t)=>{let n=ox(),r=ox(),i=ox(),a=Array.from({length:t.length-3},ox),o=ox(),s=[n,r,i,...a];Object.assign(e,{stdin:n,stdout:r,stderr:i,all:o,stdio:s})},ox=()=>{let e=new Ue;return e.end(),e},sx=()=>new We({read(){}}),cx=()=>new Ke({write(){}}),lx=()=>new He({read(){},write(){}}),ux=async(e,t,n)=>N_(e,t,n),dx=(e,t)=>ry(mx,e,t,!1),fx=({type:e,optionName:t})=>{throw TypeError(`The \`${t}\` option cannot be ${dv[e]}.`)},px={fileNumber:fx,generator:ab,asyncGenerator:ab,nodeStream:({value:e})=>({stream:e}),webTransform({value:{transform:e,writableObjectMode:t,readableObjectMode:n}}){let r=t||n;return{stream:He.fromWeb(e,{objectMode:r})}},duplex:({value:{transform:e}})=>({stream:e}),native(){}},mx={input:{...px,fileUrl:({value:e})=>({stream:oe(e)}),filePath:({value:{file:e}})=>({stream:oe(e)}),webStream:({value:e})=>({stream:We.fromWeb(e)}),iterable:({value:e})=>({stream:We.from(e)}),asyncIterable:({value:e})=>({stream:We.from(e)}),string:({value:e})=>({stream:We.from(e)}),uint8Array:({value:e})=>({stream:We.from(Je.from(e))})},output:{...px,fileUrl:({value:e})=>({stream:se(e)}),filePath:({value:{file:e,append:t}})=>({stream:se(e,t?{flags:`a`}:{})}),webStream:({value:e})=>({stream:Ke.fromWeb(e)}),iterable:fx,asyncIterable:fx,string:fx,uint8Array:fx}};function hx(e){if(!Array.isArray(e))throw TypeError(`Expected an array, got \`${typeof e}\`.`);for(let t of e)xx(t);let t=e.some(({readableObjectMode:e})=>e),n=gx(e,t),r=new _x({objectMode:t,writableHighWaterMark:n,readableHighWaterMark:n});for(let t of e)r.add(t);return r}const gx=(e,t)=>{if(e.length===0)return qe(t);let n=e.filter(({readableObjectMode:e})=>e===t).map(({readableHighWaterMark:e})=>e);return Math.max(...n)};var _x=class extends Ue{#e=new Set([]);#t=new Set([]);#n=new Set([]);#r;#i=Symbol(`unpipe`);#a=new WeakMap;add(e){if(xx(e),this.#e.has(e))return;this.#e.add(e),this.#r??=vx(this,this.#e,this.#i);let t=Sx({passThroughStream:this,stream:e,streams:this.#e,ended:this.#t,aborted:this.#n,onFinished:this.#r,unpipeEvent:this.#i});this.#a.set(e,t),e.pipe(this,{end:!1})}async remove(e){if(xx(e),!this.#e.has(e))return!1;let t=this.#a.get(e);return t===void 0?!1:(this.#a.delete(e),e.unpipe(this),await t,!0)}};const vx=async(e,t,n)=>{Mx(e,Nx);let r=new AbortController;try{await Promise.race([yx(e,r),bx(e,t,n,r)])}finally{r.abort(),Mx(e,-Nx)}},yx=async(e,{signal:t})=>{try{await Ve(e,{signal:t,cleanup:!0})}catch(t){throw Dx(e,t),t}},bx=async(e,t,n,{signal:r})=>{for await(let[i]of Re(e,`unpipe`,{signal:r}))t.has(i)&&i.emit(n)},xx=e=>{if(typeof e?.pipe!=`function`)throw TypeError(`Expected a readable stream, got: \`${typeof e}\`.`)},Sx=async({passThroughStream:e,stream:t,streams:n,ended:r,aborted:i,onFinished:a,unpipeEvent:o})=>{Mx(e,Px);let s=new AbortController;try{await Promise.race([Cx(a,t,s),wx({passThroughStream:e,stream:t,streams:n,ended:r,aborted:i,controller:s}),Tx({stream:t,streams:n,ended:r,aborted:i,unpipeEvent:o,controller:s})])}finally{s.abort(),Mx(e,-Px)}n.size>0&&n.size===r.size+i.size&&(r.size===0&&i.size>0?kx(e):Ex(e))},Cx=async(e,t,{signal:n})=>{try{await e,n.aborted||kx(t)}catch(e){n.aborted||Dx(t,e)}},wx=async({passThroughStream:e,stream:t,streams:n,ended:r,aborted:i,controller:{signal:a}})=>{try{await Ve(t,{signal:a,cleanup:!0,readable:!0,writable:!1}),n.has(t)&&r.add(t)}catch(r){if(a.aborted||!n.has(t))return;Ox(r)?i.add(t):Ax(e,r)}},Tx=async({stream:e,streams:t,ended:n,aborted:r,unpipeEvent:i,controller:{signal:a}})=>{if(await x(e,i,{signal:a}),!e.readable)return x(a,`abort`,{signal:a});t.delete(e),n.delete(e),r.delete(e)},Ex=e=>{e.writable&&e.end()},Dx=(e,t)=>{Ox(t)?kx(e):Ax(e,t)},Ox=e=>e?.code===`ERR_STREAM_PREMATURE_CLOSE`,kx=e=>{(e.readable||e.writable)&&e.destroy()},Ax=(e,t)=>{e.destroyed||(e.once(`error`,jx),e.destroy(t))},jx=()=>{},Mx=(e,t)=>{let n=e.getMaxListeners();n!==0&&n!==1/0&&e.setMaxListeners(n+t)},Nx=2,Px=1,Fx=(e,t)=>{e.pipe(t),Ix(e,t),Rx(e,t)},Ix=async(e,t)=>{if(!(zd(e)||zd(t))){try{await Ve(e,{cleanup:!0,readable:!0,writable:!1})}catch{}Lx(t)}},Lx=e=>{e.writable&&e.end()},Rx=async(e,t)=>{if(!(zd(e)||zd(t))){try{await Ve(t,{cleanup:!0,readable:!1,writable:!0})}catch{}zx(e)}},zx=e=>{e.readable&&e.destroy()},Bx=(e,t,n)=>{let r=new Map;for(let[i,{stdioItems:a,direction:o}]of Object.entries(t)){for(let{stream:t}of a.filter(({type:e})=>ov.has(e)))Vx(e,t,o,i);for(let{stream:t}of a.filter(({type:e})=>!ov.has(e)))Ux({subprocess:e,stream:t,direction:o,fdNumber:i,pipeGroups:r,controller:n})}for(let[e,t]of r.entries())Fx(t.length===1?t[0]:hx(t),e)},Vx=(e,t,n,r)=>{n===`output`?Fx(e.stdio[r],t):Fx(t,e.stdio[r]);let i=Hx[r];i!==void 0&&(e[i]=t),e.stdio[r]=t},Hx=[`stdin`,`stdout`,`stderr`],Ux=({subprocess:e,stream:t,direction:n,fdNumber:r,pipeGroups:i,controller:a})=>{if(t===void 0)return;Wx(t,a);let[o,s]=n===`output`?[t,e.stdio[r]]:[e.stdio[r],t],c=i.get(o)??[];i.set(o,[...c,s])},Wx=(e,{signal:t})=>{zd(e)&&Rm(e,Gx,t)},Gx=2,Kx=[];Kx.push(`SIGHUP`,`SIGINT`,`SIGTERM`),process.platform!==`win32`&&Kx.push(`SIGALRM`,`SIGABRT`,`SIGVTALRM`,`SIGXCPU`,`SIGXFSZ`,`SIGUSR2`,`SIGTRAP`,`SIGSYS`,`SIGQUIT`,`SIGIOT`),process.platform===`linux`&&Kx.push(`SIGIO`,`SIGPOLL`,`SIGPWR`,`SIGSTKFLT`);const qx=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`,Jx=Symbol.for(`signal-exit emitter`),Yx=globalThis,Xx=Object.defineProperty.bind(Object);var Zx=class{emitted={afterExit:!1,exit:!1};listeners={afterExit:[],exit:[]};count=0;id=Math.random();constructor(){if(Yx[Jx])return Yx[Jx];Xx(Yx,Jx,{value:this,writable:!1,enumerable:!1,configurable:!1})}on(e,t){this.listeners[e].push(t)}removeListener(e,t){let n=this.listeners[e],r=n.indexOf(t);r!==-1&&(r===0&&n.length===1?n.length=0:n.splice(r,1))}emit(e,t,n){if(this.emitted[e])return!1;this.emitted[e]=!0;let r=!1;for(let i of this.listeners[e])r=i(t,n)===!0||r;return e===`exit`&&(r=this.emit(`afterExit`,t,n)||r),r}},Qx=class{};const $x=e=>({onExit(t,n){return e.onExit(t,n)},load(){return e.load()},unload(){return e.unload()}});var eS=class extends Qx{onExit(){return()=>{}}load(){}unload(){}},tS=class extends Qx{#e=nS.platform===`win32`?`SIGINT`:`SIGHUP`;#t=new Zx;#n;#r;#i;#a={};#o=!1;constructor(e){super(),this.#n=e,this.#a={};for(let t of Kx)this.#a[t]=()=>{let n=this.#n.listeners(t),{count:r}=this.#t,i=e;if(typeof i.__signal_exit_emitter__==`object`&&typeof i.__signal_exit_emitter__.count==`number`&&(r+=i.__signal_exit_emitter__.count),n.length===r){this.unload();let n=this.#t.emit(`exit`,null,t),r=t===`SIGHUP`?this.#e:t;n||e.kill(e.pid,r)}};this.#i=e.reallyExit,this.#r=e.emit}onExit(e,t){if(!qx(this.#n))return()=>{};this.#o===!1&&this.load();let n=t?.alwaysLast?`afterExit`:`exit`;return this.#t.on(n,e),()=>{this.#t.removeListener(n,e),this.#t.listeners.exit.length===0&&this.#t.listeners.afterExit.length===0&&this.unload()}}load(){if(!this.#o){this.#o=!0,this.#t.count+=1;for(let e of Kx)try{let t=this.#a[e];t&&this.#n.on(e,t)}catch{}this.#n.emit=(e,...t)=>this.#c(e,...t),this.#n.reallyExit=e=>this.#s(e)}}unload(){this.#o&&(this.#o=!1,Kx.forEach(e=>{let t=this.#a[e];if(!t)throw Error(`Listener not defined for signal: `+e);try{this.#n.removeListener(e,t)}catch{}}),this.#n.emit=this.#r,this.#n.reallyExit=this.#i,--this.#t.count)}#s(e){return qx(this.#n)?(this.#n.exitCode=e||0,this.#t.emit(`exit`,this.#n.exitCode,null),this.#i.call(this.#n,this.#n.exitCode)):0}#c(e,...t){let n=this.#r;if(e===`exit`&&qx(this.#n)){typeof t[0]==`number`&&(this.#n.exitCode=t[0]);let r=n.call(this.#n,e,...t);return this.#t.emit(`exit`,this.#n.exitCode,null),r}else return n.call(this.#n,e,...t)}};const nS=globalThis.process,{onExit:rS,load:iS,unload:aS}=$x(qx(nS)?new tS(nS):new eS),oS=(e,{cleanup:t,detached:n},{signal:r})=>{if(!t||n)return;let i=rS(()=>{e.kill()});Le(r,()=>{i()})},sS=({source:e,sourcePromise:t,boundOptions:n,createNested:r},...i)=>{let a=Qf(),{destination:o,destinationStream:s,destinationError:c,from:l,unpipeSignal:u}=cS(n,r,i),{sourceStream:d,sourceError:f}=dS(e,l),{options:p,fileDescriptors:m}=km.get(e);return{sourcePromise:t,sourceStream:d,sourceOptions:p,sourceError:f,destination:o,destinationStream:s,destinationError:c,unpipeSignal:u,fileDescriptors:m,startTime:a}},cS=(e,t,n)=>{try{let{destination:r,pipeOptions:{from:i,to:a,unpipeSignal:o}={}}=lS(e,t,...n);return{destination:r,destinationStream:Dm(r,a),from:i,unpipeSignal:o}}catch(e){return{destinationError:e}}},lS=(e,t,n,...r)=>{if(Array.isArray(n))return{destination:t(uS,e)(n,...r),pipeOptions:e};if(typeof n==`string`||n instanceof URL||md(n)){if(Object.keys(e).length>0)throw TypeError(`Please use .pipe("file", ..., options) or .pipe(execa("file", ..., options)) instead of .pipe(options)("file", ...).`);let[i,a,o]=gd(n,...r);return{destination:t(uS)(i,a,o),pipeOptions:o}}if(km.has(n)){if(Object.keys(e).length>0)throw TypeError("Please use .pipe(options)`command` or .pipe($(options)`command`) instead of .pipe(options)($`command`).");return{destination:n,pipeOptions:r[0]}}throw TypeError(`The first argument must be a template string, an options object, or an Execa subprocess: ${n}`)},uS=({options:e})=>({options:{...e,stdin:`pipe`,piped:!0}}),dS=(e,t)=>{try{return{sourceStream:Om(e,t)}}catch(e){return{sourceError:e}}},fS=({sourceStream:e,sourceError:t,destinationStream:n,destinationError:r,fileDescriptors:i,sourceOptions:a,startTime:o})=>{let s=pS({sourceStream:e,sourceError:t,destinationStream:n,destinationError:r});if(s!==void 0)throw mS({error:s,fileDescriptors:i,sourceOptions:a,startTime:o})},pS=({sourceStream:e,sourceError:t,destinationStream:n,destinationError:r})=>{if(t!==void 0&&r!==void 0)return r;if(r!==void 0)return zx(e),r;if(t!==void 0)return Lx(n),t},mS=({error:e,fileDescriptors:t,sourceOptions:n,startTime:r})=>__({error:e,command:hS,escapedCommand:hS,fileDescriptors:t,options:n,startTime:r,isSync:!1}),hS=`source.pipe(destination)`,gS=async e=>{let[{status:t,reason:n,value:r=n},{status:i,reason:a,value:o=a}]=await e;if(o.pipedFrom.includes(r)||o.pipedFrom.push(r),i===`rejected`)throw o;if(t===`rejected`)throw r;return o},_S=(e,t,n)=>{let r=xS.has(t)?yS(e,t):vS(e,t);return Rm(e,SS,n.signal),Rm(t,CS,n.signal),bS(t),r},vS=(e,t)=>{let n=hx([e]);return Fx(n,t),xS.set(t,n),n},yS=(e,t)=>{let n=xS.get(t);return n.add(e),n},bS=async e=>{try{await Ve(e,{cleanup:!0,readable:!1,writable:!0})}catch{}xS.delete(e)},xS=new WeakMap,SS=2,CS=1,wS=(e,t)=>e===void 0?[]:[TS(e,t)],TS=async(e,{sourceStream:t,mergedStream:n,fileDescriptors:r,sourceOptions:i,startTime:a})=>{throw await Te(e,t),await n.remove(t),mS({error:Error("Pipe canceled by `unpipeSignal` option."),fileDescriptors:r,sourceOptions:i,startTime:a})},ES=(e,...t)=>{if(q(t[0]))return ES.bind(void 0,{...e,boundOptions:{...e.boundOptions,...t[0]}});let{destination:n,...r}=sS(e,...t),i=DS({...r,destination:n});return i.pipe=ES.bind(void 0,{...e,source:n,sourcePromise:i,boundOptions:{}}),i},DS=async({sourcePromise:e,sourceStream:t,sourceOptions:n,sourceError:r,destination:i,destinationStream:a,destinationError:o,unpipeSignal:s,fileDescriptors:c,startTime:l})=>{let u=OS(e,i);fS({sourceStream:t,sourceError:r,destinationStream:a,destinationError:o,fileDescriptors:c,sourceOptions:n,startTime:l});let d=new AbortController;try{let e=_S(t,a,d);return await Promise.race([gS(u),...wS(s,{sourceStream:t,mergedStream:e,sourceOptions:n,fileDescriptors:c,startTime:l})])}finally{d.abort()}},OS=(e,t)=>Promise.allSettled([e,t]),kS=({subprocessStdout:e,subprocess:t,binary:n,shouldEncode:r,encoding:i,preserveNewlines:a})=>{let o=new AbortController;return AS(t,o),NS({stream:e,controller:o,binary:n,shouldEncode:!e.readableObjectMode&&r,encoding:i,shouldSplit:!e.readableObjectMode,preserveNewlines:a})},AS=async(e,t)=>{try{await e}catch{}finally{t.abort()}},jS=({stream:e,onStreamEnd:t,lines:n,encoding:r,stripFinalNewline:i,allMixed:a})=>{let o=new AbortController;MS(t,o,e);let s=e.readableObjectMode&&!a;return NS({stream:e,controller:o,binary:r===`buffer`,shouldEncode:!s,encoding:r,shouldSplit:!s&&n,preserveNewlines:!i})},MS=async(e,t,n)=>{try{await e}catch{n.destroy()}finally{t.abort()}},NS=({stream:e,controller:t,binary:n,shouldEncode:r,encoding:i,shouldSplit:a,preserveNewlines:o})=>{let s=Re(e,`data`,{signal:t.signal,highWaterMark:FS,highWatermark:FS});return IS({onStdoutChunk:s,controller:t,binary:n,shouldEncode:r,encoding:i,shouldSplit:a,preserveNewlines:o})},PS=qe(!0),FS=PS,IS=async function*({onStdoutChunk:e,controller:t,binary:n,shouldEncode:r,encoding:i,shouldSplit:a,preserveNewlines:o}){let s=LS({binary:n,shouldEncode:r,encoding:i,shouldSplit:a,preserveNewlines:o});try{for await(let[t]of e)yield*tb(t,s,0)}catch(e){if(!t.signal.aborted)throw e}finally{yield*nb(s)}},LS=({binary:e,shouldEncode:t,encoding:n,shouldSplit:r,preserveNewlines:i})=>[Uy(e,n,!t),Ty(e,i,!r,{})].filter(Boolean),RS=async({stream:e,onStreamEnd:t,fdNumber:n,encoding:r,buffer:i,maxBuffer:a,lines:o,allMixed:s,stripFinalNewline:c,verboseInfo:l,streamInfo:u})=>{let d=zS({stream:e,onStreamEnd:t,fdNumber:n,encoding:r,allMixed:s,verboseInfo:l,streamInfo:u});if(!i){await Promise.all([BS(e),d]);return}let f=jS({stream:e,onStreamEnd:t,lines:o,encoding:r,stripFinalNewline:wy(c,n),allMixed:s}),[p]=await Promise.all([VS({stream:e,iterable:f,fdNumber:n,encoding:r,maxBuffer:a,lines:o}),d]);return p},zS=async({stream:e,onStreamEnd:t,fdNumber:n,encoding:r,allMixed:i,verboseInfo:a,streamInfo:{fileDescriptors:o}})=>{pb({stdioItems:o[n]?.stdioItems,encoding:r,verboseInfo:a,fdNumber:n})&&await gb(jS({stream:e,onStreamEnd:t,lines:!0,encoding:r,stripFinalNewline:!0,allMixed:i}),e,n,a)},BS=async e=>{await ge(),e.readableFlowing===null&&e.resume()},VS=async({stream:e,stream:{readableObjectMode:t},iterable:n,fdNumber:r,encoding:i,maxBuffer:a,lines:o})=>{try{return t||o?await Pg(n,{maxBuffer:a}):i===`buffer`?new Uint8Array(await Ig(n,{maxBuffer:a})):await Zg(n,{maxBuffer:a})}catch(n){return US(t_({error:n,stream:e,readableObjectMode:t,lines:o,encoding:i,fdNumber:r}))}},HS=async e=>{try{return await e}catch(e){return US(e)}},US=({bufferedData:e})=>vd(e)?new Uint8Array(e):e,WS=async(e,t,n,{isSameDirection:r,stopOnExit:i=!1}={})=>{let a=GS(e,n),o=new AbortController;try{await Promise.race([...i?[n.exitPromise]:[],Ve(e,{cleanup:!0,signal:o.signal})])}catch(e){a.stdinCleanedUp||JS(e,t,n,r)}finally{o.abort()}},GS=(e,{originalStreams:[t],subprocess:n})=>{let r={stdinCleanedUp:!1};return e===t&&KS(e,n,r),r},KS=(e,t,n)=>{let{_destroy:r}=e;e._destroy=(...i)=>{qS(t,n),r.call(e,...i)}},qS=({exitCode:e,signalCode:t},n)=>{(e!==null||t!==null)&&(n.stdinCleanedUp=!0)},JS=(e,t,n,r)=>{if(!YS(e,t,n,r))throw e},YS=(e,t,n,r=!0)=>n.propagating?QS(e)||ZS(e):(n.propagating=!0,XS(n,t)===r?QS(e):ZS(e)),XS=({fileDescriptors:e},t)=>t!==`all`&&e[t].direction===`input`,ZS=e=>e?.code===`ERR_STREAM_PREMATURE_CLOSE`,QS=e=>e?.code===`EPIPE`,$S=({subprocess:e,encoding:t,buffer:n,maxBuffer:r,lines:i,stripFinalNewline:a,verboseInfo:o,streamInfo:s})=>e.stdio.map((e,c)=>eC({stream:e,fdNumber:c,encoding:t,buffer:n[c],maxBuffer:r[c],lines:i[c],allMixed:!1,stripFinalNewline:a,verboseInfo:o,streamInfo:s})),eC=async({stream:e,fdNumber:t,encoding:n,buffer:r,maxBuffer:i,lines:a,allMixed:o,stripFinalNewline:s,verboseInfo:c,streamInfo:l})=>{if(!e)return;let u=WS(e,t,l);if(XS(l,t)){await u;return}let[d]=await Promise.all([RS({stream:e,onStreamEnd:u,fdNumber:t,encoding:n,buffer:r,maxBuffer:i,lines:a,allMixed:o,stripFinalNewline:s,verboseInfo:c,streamInfo:l}),u]);return d},tC=({stdout:e,stderr:t},{all:n})=>n&&(e||t)?hx([e,t].filter(Boolean)):void 0,nC=({subprocess:e,encoding:t,buffer:n,maxBuffer:r,lines:i,stripFinalNewline:a,verboseInfo:o,streamInfo:s})=>eC({...rC(e,n),fdNumber:`all`,encoding:t,maxBuffer:r[1]+r[2],lines:i[1]||i[2],allMixed:iC(e),stripFinalNewline:a,verboseInfo:o,streamInfo:s}),rC=({stdout:e,stderr:t,all:n},[,r,i])=>{let a=r||i;return a?r?i?{stream:n,buffer:a}:{stream:e,buffer:a}:{stream:t,buffer:a}:{stream:n,buffer:a}},iC=({all:e,stdout:t,stderr:n})=>e&&t&&n&&t.readableObjectMode!==n.readableObjectMode,aC=e=>rf(e,`ipc`),oC=(e,t)=>{Vf({type:`ipc`,verboseMessage:Gf(e),fdNumber:`ipc`,verboseInfo:t})},sC=async({subprocess:e,buffer:t,maxBuffer:n,ipc:r,ipcOutput:i,verboseInfo:a})=>{if(!r)return i;let o=aC(a),s=tf(t,`ipc`),c=tf(n,`ipc`);for await(let t of Xb({anyProcess:e,channel:e.channel,isSubprocess:!1,ipc:r,shouldAwait:!1,reference:!0}))s&&(r_(e,i,c),i.push(t)),o&&oC(t,a);return i},cC=async(e,t)=>(await Promise.allSettled([e]),t),lC=async({subprocess:e,options:{encoding:t,buffer:n,maxBuffer:r,lines:i,timeoutDuration:a,cancelSignal:o,gracefulCancel:s,forceKillAfterDelay:c,stripFinalNewline:l,ipc:u,ipcInput:d},context:f,verboseInfo:p,fileDescriptors:m,originalStreams:h,onInternalError:g,controller:_})=>{let v=Db(e,f),y={originalStreams:h,fileDescriptors:m,subprocess:e,exitPromise:v,propagating:!1},ee=$S({subprocess:e,encoding:t,buffer:n,maxBuffer:r,lines:i,stripFinalNewline:l,verboseInfo:p,streamInfo:y}),te=nC({subprocess:e,encoding:t,buffer:n,maxBuffer:r,lines:i,stripFinalNewline:l,verboseInfo:p,streamInfo:y}),ne=[],re=sC({subprocess:e,buffer:n,maxBuffer:r,ipc:u,ipcOutput:ne,verboseInfo:p}),ie=uC(h,e,y),ae=dC(m,y);try{return await Promise.race([Promise.all([{},Ab(v),Promise.all(ee),te,re,Rh(e,d),...ie,...ae]),g,fC(e,_),...Mh(e,a,f,_),...om({subprocess:e,cancelSignal:o,gracefulCancel:s,context:f,controller:_}),...Oh({subprocess:e,cancelSignal:o,gracefulCancel:s,forceKillAfterDelay:c,context:f,controller:_})])}catch(e){return f.terminationReason??=`other`,Promise.all([{error:e},v,Promise.all(ee.map(e=>HS(e))),HS(te),cC(re,ne),Promise.allSettled(ie),Promise.allSettled(ae)])}},uC=(e,t,n)=>e.map((e,r)=>e===t.stdio[r]?void 0:WS(e,r,n)),dC=(e,t)=>e.flatMap(({stdioItems:e},n)=>e.filter(({value:e,stream:t=e})=>og(t,{checkOpen:!1})&&!zd(t)).map(({type:e,value:r,stream:i=r})=>WS(i,n,t,{isSameDirection:ov.has(e),stopOnExit:e===`native`}))),fC=async(e,{signal:t})=>{let[n]=await x(e,`error`,{signal:t});throw n},pC=()=>({readableDestroy:new WeakMap,writableFinal:new WeakMap,writableDestroy:new WeakMap}),mC=(e,t,n)=>{let r=e[n];r.has(t)||r.set(t,[]);let i=r.get(t),a=Em();return i.push(a),{resolve:a.resolve.bind(a),promises:i}},hC=async({resolve:e,promises:t},n)=>{e();let[r]=await Promise.race([Promise.allSettled([!0,n]),Promise.all([!1,...t])]);return!r},gC=async e=>{if(e!==void 0)try{await vC(e)}catch{}},_C=async e=>{if(e!==void 0)try{await yC(e)}catch{}},vC=async e=>{await Ve(e,{cleanup:!0,readable:!1,writable:!0})},yC=async e=>{await Ve(e,{cleanup:!0,readable:!0,writable:!1})},bC=async(e,t)=>{if(await e,t)throw t},xC=(e,t,n)=>{n&&!ZS(n)?e.destroy(n):t&&e.destroy()},SC=({subprocess:e,concurrentStreams:t,encoding:n},{from:r,binary:i=!0,preserveNewlines:a=!0}={})=>{let o=i||Vh.has(n),{subprocessStdout:s,waitReadableDestroy:c}=CC(e,r,t),{readableEncoding:l,readableObjectMode:u,readableHighWaterMark:d}=wC(s,o),{read:f,onStdoutDataDone:p}=TC({subprocessStdout:s,subprocess:e,binary:o,encoding:n,preserveNewlines:a}),m=new We({read:f,destroy:Ee(OC.bind(void 0,{subprocessStdout:s,subprocess:e,waitReadableDestroy:c})),highWaterMark:d,objectMode:u,encoding:l});return DC({subprocessStdout:s,onStdoutDataDone:p,readable:m,subprocess:e}),m},CC=(e,t,n)=>{let r=Om(e,t);return{subprocessStdout:r,waitReadableDestroy:mC(n,r,`readableDestroy`)}},wC=({readableEncoding:e,readableObjectMode:t,readableHighWaterMark:n},r)=>r?{readableEncoding:e,readableObjectMode:t,readableHighWaterMark:n}:{readableEncoding:e,readableObjectMode:!0,readableHighWaterMark:PS},TC=({subprocessStdout:e,subprocess:t,binary:n,encoding:r,preserveNewlines:i})=>{let a=Em(),o=kS({subprocessStdout:e,subprocess:t,binary:n,shouldEncode:!n,encoding:r,preserveNewlines:i});return{read(){EC(this,o,a)},onStdoutDataDone:a}},EC=async(e,t,n)=>{try{let{value:r,done:i}=await t.next();i?n.resolve():e.push(r)}catch{}},DC=async({subprocessStdout:e,onStdoutDataDone:t,readable:n,subprocess:r,subprocessStdin:i})=>{try{await yC(e),await r,await gC(i),await t,n.readable&&n.push(null)}catch(e){await gC(i),kC(n,e)}},OC=async({subprocessStdout:e,subprocess:t,waitReadableDestroy:n},r)=>{await hC(n,t)&&(kC(e,r),await bC(t,r))},kC=(e,t)=>{xC(e,e.readable,t)},AC=({subprocess:e,concurrentStreams:t},{to:n}={})=>{let{subprocessStdin:r,waitWritableFinal:i,waitWritableDestroy:a}=jC(e,n,t),o=new Ke({...MC(r,e,i),destroy:Ee(IC.bind(void 0,{subprocessStdin:r,subprocess:e,waitWritableFinal:i,waitWritableDestroy:a})),highWaterMark:r.writableHighWaterMark,objectMode:r.writableObjectMode});return FC(r,o),o},jC=(e,t,n)=>{let r=Dm(e,t);return{subprocessStdin:r,waitWritableFinal:mC(n,r,`writableFinal`),waitWritableDestroy:mC(n,r,`writableDestroy`)}},MC=(e,t,n)=>({write:NC.bind(void 0,e),final:Ee(PC.bind(void 0,e,t,n))}),NC=(e,t,n,r)=>{e.write(t,n)?r():e.once(`drain`,r)},PC=async(e,t,n)=>{await hC(n,t)&&(e.writable&&e.end(),await t)},FC=async(e,t,n)=>{try{await vC(e),t.writable&&t.end()}catch(e){await _C(n),LC(t,e)}},IC=async({subprocessStdin:e,subprocess:t,waitWritableFinal:n,waitWritableDestroy:r},i)=>{await hC(n,t),await hC(r,t)&&(LC(e,i),await bC(t,i))},LC=(e,t)=>{xC(e,e.writable,t)},RC=({subprocess:e,concurrentStreams:t,encoding:n},{from:r,to:i,binary:a=!0,preserveNewlines:o=!0}={})=>{let s=a||Vh.has(n),{subprocessStdout:c,waitReadableDestroy:l}=CC(e,r,t),{subprocessStdin:u,waitWritableFinal:d,waitWritableDestroy:f}=jC(e,i,t),{readableEncoding:p,readableObjectMode:m,readableHighWaterMark:h}=wC(c,s),{read:g,onStdoutDataDone:_}=TC({subprocessStdout:c,subprocess:e,binary:s,encoding:n,preserveNewlines:o}),v=new He({read:g,...MC(u,e,d),destroy:Ee(zC.bind(void 0,{subprocessStdout:c,subprocessStdin:u,subprocess:e,waitReadableDestroy:l,waitWritableFinal:d,waitWritableDestroy:f})),readableHighWaterMark:h,writableHighWaterMark:u.writableHighWaterMark,readableObjectMode:m,writableObjectMode:u.writableObjectMode,encoding:p});return DC({subprocessStdout:c,onStdoutDataDone:_,readable:v,subprocess:e,subprocessStdin:u}),FC(u,v,c),v},zC=async({subprocessStdout:e,subprocessStdin:t,subprocess:n,waitReadableDestroy:r,waitWritableFinal:i,waitWritableDestroy:a},o)=>{await Promise.all([OC({subprocessStdout:e,subprocess:n,waitReadableDestroy:r},o),IC({subprocessStdin:t,subprocess:n,waitWritableFinal:i,waitWritableDestroy:a},o)])},BC=(e,t,{from:n,binary:r=!1,preserveNewlines:i=!1}={})=>{let a=r||Vh.has(t),o=Om(e,n),s=kS({subprocessStdout:o,subprocess:e,binary:a,shouldEncode:!0,encoding:t,preserveNewlines:i});return VC(s,o,e)},VC=async function*(e,t,n){try{yield*e}finally{t.readable&&t.destroy(),await n}},HC=(e,{encoding:t})=>{let n=pC();e.readable=SC.bind(void 0,{subprocess:e,concurrentStreams:n,encoding:t}),e.writable=AC.bind(void 0,{subprocess:e,concurrentStreams:n}),e.duplex=RC.bind(void 0,{subprocess:e,concurrentStreams:n,encoding:t}),e.iterable=BC.bind(void 0,e,t),e[Symbol.asyncIterator]=BC.bind(void 0,e,t,{})},UC=(e,t)=>{for(let[n,r]of GC){let i=r.value.bind(t);Reflect.defineProperty(e,n,{...r,value:i})}},WC=(async()=>{})().constructor.prototype,GC=[`then`,`catch`,`finally`].map(e=>[e,Reflect.getOwnPropertyDescriptor(WC,e)]),KC=(e,t,n,r)=>{let{file:i,commandArguments:a,command:o,escapedCommand:s,startTime:c,verboseInfo:l,options:u,fileDescriptors:d}=qC(e,t,n),{subprocess:f,promise:p}=YC({file:i,commandArguments:a,options:u,startTime:c,verboseInfo:l,command:o,escapedCommand:s,fileDescriptors:d});return f.pipe=ES.bind(void 0,{source:f,sourcePromise:p,boundOptions:{},createNested:r}),UC(f,p),km.set(f,{options:u,fileDescriptors:d}),f},qC=(e,t,n)=>{let{command:r,escapedCommand:i,startTime:a,verboseInfo:o}=ep(e,t,n),{file:s,commandArguments:c,options:l}=Yh(e,t,n),u=JC(l);return{file:s,commandArguments:c,command:r,escapedCommand:i,startTime:a,verboseInfo:o,options:u,fileDescriptors:dx(u,o)}},JC=({timeout:e,signal:t,...n})=>{if(t!==void 0)throw TypeError(`The "signal" option has been renamed to "cancelSignal" instead.`);return{...n,timeoutDuration:e}},YC=({file:e,commandArguments:t,options:n,startTime:r,verboseInfo:i,command:a,escapedCommand:o,fileDescriptors:s})=>{let c;try{c=Se(...Qh(e,t,n))}catch(e){return ix({error:e,command:a,escapedCommand:o,fileDescriptors:s,options:n,startTime:r,verboseInfo:i})}let l=new AbortController;ze(1/0,l.signal);let u=[...c.stdio];Bx(c,s,l),oS(c,n,l);let d={},f=Em();c.kill=$p.bind(void 0,{kill:c.kill.bind(c),options:n,onInternalError:f,context:d,controller:l}),c.all=tC(c,n),HC(c,n),tx(c,n);let p=XC({subprocess:c,options:n,startTime:r,verboseInfo:i,fileDescriptors:s,originalStreams:u,command:a,escapedCommand:o,context:d,onInternalError:f,controller:l});return{subprocess:c,promise:p}},XC=async({subprocess:e,options:t,startTime:n,verboseInfo:r,fileDescriptors:i,originalStreams:a,command:o,escapedCommand:s,context:c,onInternalError:l,controller:u})=>{let[d,[f,p],m,h,g]=await lC({subprocess:e,options:t,context:c,verboseInfo:r,fileDescriptors:i,originalStreams:a,onInternalError:l,controller:u});u.abort(),l.resolve();let _=m.map((e,n)=>Cy(e,t,n)),v=Cy(h,t,`all`);return N_(ZC({errorInfo:d,exitCode:f,signal:p,stdio:_,all:v,ipcOutput:g,context:c,options:t,command:o,escapedCommand:s,startTime:n}),r,t)},ZC=({errorInfo:e,exitCode:t,signal:n,stdio:r,all:i,ipcOutput:a,context:o,options:s,command:c,escapedCommand:l,startTime:u})=>`error`in e?v_({error:e.error,command:c,escapedCommand:l,timedOut:o.terminationReason===`timeout`,isCanceled:o.terminationReason===`cancel`||o.terminationReason===`gracefulCancel`,isGracefullyCanceled:o.terminationReason===`gracefulCancel`,isMaxBuffer:e.error instanceof Og,isForcefullyTerminated:o.isForcefullyTerminated,exitCode:t,signal:n,stdio:r,all:i,ipcOutput:a,options:s,startTime:u,isSync:!1}):g_({command:c,escapedCommand:l,stdio:r,all:i,ipcOutput:a,options:s,startTime:u}),QC=(e,t)=>{let n=Object.fromEntries(Object.entries(t).map(([t,n])=>[t,$C(t,e[t],n)]));return{...e,...n}},$C=(e,t,n)=>ew.has(e)&&q(t)&&q(n)?{...t,...n}:n,ew=new Set([`env`,...ef]),tw=(e,t,n,r)=>{let i=(e,t,r)=>tw(e,t,n,r),a=(...a)=>nw({mapArguments:e,deepOptions:n,boundOptions:t,setBoundExeca:r,createNested:i},...a);return r!==void 0&&r(a,i,t),a},nw=({mapArguments:e,deepOptions:t={},boundOptions:n={},setBoundExeca:r,createNested:i},a,...o)=>{if(q(a))return i(e,QC(n,a),r);let{file:s,commandArguments:c,options:l,isSync:u}=rw({mapArguments:e,firstArgument:a,nextArguments:o,deepOptions:t,boundOptions:n});return u?Fb(s,c,l):KC(s,c,l,i)},rw=({mapArguments:e,firstArgument:t,nextArguments:n,deepOptions:r,boundOptions:i})=>{let[a,o,s]=gd(...Ad(t)?jd(t,n):[t,...n]),c=QC(QC(r,i),s),{file:l=a,commandArguments:u=o,options:d=c,isSync:f=!1}=e({file:a,commandArguments:o,options:c});return{file:l,commandArguments:u,options:d,isSync:f}},iw=({file:e,commandArguments:t})=>ow(e,t),aw=({file:e,commandArguments:t})=>({...ow(e,t),isSync:!0}),ow=(e,t)=>{if(t.length>0)throw TypeError(`The command and its arguments must be passed as a single string: ${e} ${t}.`);let[n,...r]=sw(e);return{file:n,commandArguments:r}},sw=e=>{if(typeof e!=`string`)throw TypeError(`The command must be a string: ${String(e)}.`);let t=e.trim();if(t===``)return[];let n=[];for(let e of t.split(cw)){let t=n.at(-1);t&&t.endsWith(`\\`)?n[n.length-1]=`${t.slice(0,-1)} ${e}`:n.push(e)}return n},cw=/ +/g,lw=(e,t,n)=>{e.sync=t(dw,n),e.s=e.sync},uw=({options:e})=>fw(e),dw=({options:e})=>({...fw(e),isSync:!0}),fw=e=>({options:{...pw(e),...e}}),pw=({input:e,inputFile:t,stdio:n})=>e===void 0&&t===void 0&&n===void 0?{stdin:`inherit`}:{},mw={preferLocal:!0},hw=tw(()=>({}));tw(()=>({isSync:!0})),tw(iw),tw(aw),tw(Ph),tw(uw,{},mw,lw);const{sendMessage:gw,getOneMessage:_w,getEachMessage:vw,getCancelSignal:yw}=nx(),bw=e=>e===void 0?{}:{cwd:e},xw=e=>e===void 0?{}:{timeout:e},Sw=(e,t)=>[e,`refs: command timed out after ${String(t)}ms`].filter(e=>e!==``).join(`
384
+ `),Cw=(e,t)=>({exitCode:124,stderr:Sw(e,t),stdout:``,timedOut:!0});var ww=class{async run(e,t,n){let r=await hw(e,t,{...bw(n?.cwd),...xw(n?.timeoutMs),reject:!1});return r.timedOut?Cw(r.stderr,n?.timeoutMs):{exitCode:r.exitCode??1,stderr:r.stderr,stdout:r.stdout}}};const Tw=$s.partial({description:!0}),Ew=Yo({default_branch:L().min(1),key:Us,tag_format_candidate:Js.nullable(),url:L().min(1)});Ew.extend({description:L().default(``),packages:Ns(Tw)});const Dw=Ew.extend({description:L().min(1),packages:Ns($s)}),Ow=Yo({effective_clone_mode:Ks.optional(),head_sha:L().regex(/^[0-9a-f]{40}$/u,`head_sha must be a 40-character lowercase hex string`).optional(),last_error:L().optional(),last_fetched_at:Ya().optional(),pending_proposal_at:Ya().optional()}),kw=Yo({refs:js(e=>e.length>=1&&!As.has(e),()=>`state ref key must be non-empty and not "__proto__", "constructor", or "prototype"`,ns(L(),Ow)).default({})}),Aw=(e,t,n)=>t?.[e]??n[e],jw=async e=>{try{return await s(e.statePath,`utf8`)}catch(e){if(Lc(e))return;throw e}},Mw=e=>{try{return JSON.parse(e)}catch{return}},Nw=async e=>{let t=await jw(e);if(t===void 0)return kw.parse({});let n=Mw(t);if(n===void 0)return kw.parse({});let r=kw.safeParse(n);return r.success?r.data:kw.parse({})},Pw=async(e,t)=>{let n=kw.safeParse(t);if(!n.success)throw T(k(n.error));await Rc(e.statePath,`${JSON.stringify(n.data,void 0,2)}\n`)},Fw=/^\s*-\s+["']?(?<pattern>[^"'#]+)["']?/u,Iw=/^packages:\s*(?:#.*)?$/u,Lw=e=>typeof e==`object`&&!!e&&!Array.isArray(e),Rw=e=>{if(Array.isArray(e))return e.filter(e=>typeof e==`string`);if(!Lw(e))return[];let{packages:t}=e;return Array.isArray(t)?t.filter(e=>typeof e==`string`):[]},zw=e=>{let t=[],n=!1;for(let r of e){let e=r.trim();if(Iw.test(r)){n=!0;continue}if(!n)continue;if(e&&!e.startsWith(`-`)&&e.includes(`:`))break;if(!e.startsWith(`-`))continue;let i=Fw.exec(r)?.groups?.pattern?.trim();i&&i!==``&&t.push(i)}return t},Bw=e=>{let{name:t}=e;if(typeof t==`string`)return t},Vw=e=>{let{description:t}=e;if(typeof t==`string`)return t},Hw=/[/\\]/u,Uw=e=>v(e)?!1:e.split(Hw).every(e=>e!==`.`&&e!==`..`),Ww=async(e,t,n=!1)=>{try{let r=ee(await l(e),await l(t));if(n&&r===``)return!0;let i=r===`..`||r.startsWith(`..`+ne);return r!==``&&!i&&!v(r)}catch{return!1}},Gw=async(e,t)=>{try{let n=y(t,`package.json`);return await Ww(e,n)?(await s(n,`utf8`),!0):!1}catch{return!1}},Kw=async(e,t)=>{try{let n=y(e,t);if(!await Ww(e,n,t===`.`))return[];let r=(await c(n,{withFileTypes:!0})).filter(e=>e.isDirectory()).map(async r=>{if(await Gw(e,y(n,r.name)))return y(t,r.name)});return(await Promise.all(r)).filter(e=>e!==void 0)}catch{return[]}},qw=async(e,t)=>{if(!Uw(t)||t.startsWith(`!`)||t.includes(`**`)||(t.match(/\*/gu)??[]).length>1)return[];if(t.endsWith(`/*`)){let n=t.slice(0,-2);return Kw(e,n)}if(t===`*`)return Kw(e,`.`);if(!t.includes(`*`)){let n=y(e,t);if(await Ww(e,n)&&await Gw(e,n))return[t]}return[]},Jw=async(e,t)=>{try{let n=y(t,`package.json`);if(!await Ww(e,n))return;let r=await s(n,`utf8`),i=JSON.parse(r);return{description:Vw(i),name:Bw(i)}}catch{return}},Yw=e=>{let t=e.map(e=>[e.path,e]),n=[...new Map(t).values()];return n.sort((e,t)=>e.path.localeCompare(t.path)),n},Xw=async(e,t)=>{let n=new Set;try{if(!await Ww(e,t))return n;let r=await s(t,`utf8`);Rw(JSON.parse(r).workspaces).forEach(e=>n.add(e))}catch{}return n},Zw=async(e,t)=>{let n=new Set;try{if(!await Ww(e,t))return n;zw((await s(t,`utf8`)).split(`
385
+ `)).forEach(e=>n.add(e))}catch{}return n},Qw=async(e,t)=>{let n=new Set,r=[...t].map(t=>qw(e,t));return(await Promise.all(r)).forEach(e=>{e.forEach(e=>n.add(e))}),n},$w=async(e,t)=>{let n=y(e,t);if(!await Ww(e,n))return;let r=await Jw(e,n);if(r?.name)return{description:r.description,name:r.name,path:t}},eT=async(e,t)=>{let n=[...t].map(t=>$w(e,t));return(await Promise.all(n)).filter(e=>e!==void 0)},tT=async e=>{let t=y(e,`package.json`),n=y(e,`pnpm-workspace.yaml`),r=await Xw(e,t),i=await Zw(e,n),a=new Set;if(r.forEach(e=>a.add(e)),i.forEach(e=>a.add(e)),a.size===0)return[];let o=await Qw(e,a),s=await eT(e,o);return Yw(s)},nT=async()=>{let e=[];for await(let t of process.stdin)e.push(Buffer.from(t));return Buffer.concat(e).toString(`utf8`)},rT=()=>({env:process.env,errLine:e=>{process.stderr.write(`${e}\n`)},fetcher:e=>fetch(e),nodeVersion:process.version,out:e=>{process.stdout.write(`${e}\n`)},readStdin:nT,runner:new ww});var iT=class extends Error{constructor(e,t,n){super(n),Error.captureStackTrace(this,this.constructor),this.name=this.constructor.name,this.code=t,this.exitCode=e,this.nestedError=void 0}},aT=class extends iT{constructor(e){super(1,`commander.invalidArgument`,e),Error.captureStackTrace(this,this.constructor),this.name=this.constructor.name}},oT=class{constructor(e,t){switch(this.description=t||``,this.variadic=!1,this.parseArg=void 0,this.defaultValue=void 0,this.defaultValueDescription=void 0,this.argChoices=void 0,e[0]){case`<`:this.required=!0,this._name=e.slice(1,-1);break;case`[`:this.required=!1,this._name=e.slice(1,-1);break;default:this.required=!0,this._name=e;break}this._name.endsWith(`...`)&&(this.variadic=!0,this._name=this._name.slice(0,-3))}name(){return this._name}_collectValue(e,t){return t===this.defaultValue||!Array.isArray(t)?[e]:(t.push(e),t)}default(e,t){return this.defaultValue=e,this.defaultValueDescription=t,this}argParser(e){return this.parseArg=e,this}choices(e){return this.argChoices=e.slice(),this.parseArg=(e,t)=>{if(!this.argChoices.includes(e))throw new aT(`Allowed choices are ${this.argChoices.join(`, `)}.`);return this.variadic?this._collectValue(e,t):e},this}argRequired(){return this.required=!0,this}argOptional(){return this.required=!1,this}};function sT(e){let t=e.name()+(e.variadic===!0?`...`:``);return e.required?`<`+t+`>`:`[`+t+`]`}var cT=class{constructor(){this.helpWidth=void 0,this.minWidthToWrap=40,this.sortSubcommands=!1,this.sortOptions=!1,this.showGlobalOptions=!1}prepareContext(e){this.helpWidth=this.helpWidth??e.helpWidth??80}visibleCommands(e){let t=e.commands.filter(e=>!e._hidden),n=e._getHelpCommand();return n&&!n._hidden&&t.push(n),this.sortSubcommands&&t.sort((e,t)=>e.name().localeCompare(t.name())),t}compareOptions(e,t){let n=e=>e.short?e.short.replace(/^-/,``):e.long.replace(/^--/,``);return n(e).localeCompare(n(t))}visibleOptions(e){let t=e.options.filter(e=>!e.hidden),n=e._getHelpOption();if(n&&!n.hidden){let r=n.short&&e._findOption(n.short),i=n.long&&e._findOption(n.long);!r&&!i?t.push(n):n.long&&!i?t.push(e.createOption(n.long,n.description)):n.short&&!r&&t.push(e.createOption(n.short,n.description))}return this.sortOptions&&t.sort(this.compareOptions),t}visibleGlobalOptions(e){if(!this.showGlobalOptions)return[];let t=[];for(let n=e.parent;n;n=n.parent){let e=n.options.filter(e=>!e.hidden);t.push(...e)}return this.sortOptions&&t.sort(this.compareOptions),t}visibleArguments(e){return e._argsDescription&&e.registeredArguments.forEach(t=>{t.description=t.description||e._argsDescription[t.name()]||``}),e.registeredArguments.find(e=>e.description)?e.registeredArguments:[]}subcommandTerm(e){let t=e.registeredArguments.map(e=>sT(e)).join(` `);return e._name+(e._aliases[0]?`|`+e._aliases[0]:``)+(e.options.length?` [options]`:``)+(t?` `+t:``)}optionTerm(e){return e.flags}argumentTerm(e){return e.name()}longestSubcommandTermLength(e,t){return t.visibleCommands(e).reduce((e,n)=>Math.max(e,this.displayWidth(t.styleSubcommandTerm(t.subcommandTerm(n)))),0)}longestOptionTermLength(e,t){return t.visibleOptions(e).reduce((e,n)=>Math.max(e,this.displayWidth(t.styleOptionTerm(t.optionTerm(n)))),0)}longestGlobalOptionTermLength(e,t){return t.visibleGlobalOptions(e).reduce((e,n)=>Math.max(e,this.displayWidth(t.styleOptionTerm(t.optionTerm(n)))),0)}longestArgumentTermLength(e,t){return t.visibleArguments(e).reduce((e,n)=>Math.max(e,this.displayWidth(t.styleArgumentTerm(t.argumentTerm(n)))),0)}commandUsage(e){let t=e._name;e._aliases[0]&&(t=t+`|`+e._aliases[0]);let n=``;for(let t=e.parent;t;t=t.parent)n=t.name()+` `+n;return n+t+` `+e.usage()}commandDescription(e){return e.description()}subcommandDescription(e){return e.summary()||e.description()}optionDescription(e){let t=[];if(e.argChoices&&t.push(`choices: ${e.argChoices.map(e=>JSON.stringify(e)).join(`, `)}`),e.defaultValue!==void 0&&(e.required||e.optional||e.isBoolean()&&typeof e.defaultValue==`boolean`)&&t.push(`default: ${e.defaultValueDescription||JSON.stringify(e.defaultValue)}`),e.presetArg!==void 0&&e.optional&&t.push(`preset: ${JSON.stringify(e.presetArg)}`),e.envVar!==void 0&&t.push(`env: ${e.envVar}`),t.length>0){let n=`(${t.join(`, `)})`;return e.description?`${e.description} ${n}`:n}return e.description}argumentDescription(e){let t=[];if(e.argChoices&&t.push(`choices: ${e.argChoices.map(e=>JSON.stringify(e)).join(`, `)}`),e.defaultValue!==void 0&&t.push(`default: ${e.defaultValueDescription||JSON.stringify(e.defaultValue)}`),t.length>0){let n=`(${t.join(`, `)})`;return e.description?`${e.description} ${n}`:n}return e.description}formatItemList(e,t,n){return t.length===0?[]:[n.styleTitle(e),...t,``]}groupItems(e,t,n){let r=new Map;return e.forEach(e=>{let t=n(e);r.has(t)||r.set(t,[])}),t.forEach(e=>{let t=n(e);r.has(t)||r.set(t,[]),r.get(t).push(e)}),r}formatHelp(e,t){let n=t.padWidth(e,t),r=t.helpWidth??80;function i(e,r){return t.formatItem(e,n,r,t)}let a=[`${t.styleTitle(`Usage:`)} ${t.styleUsage(t.commandUsage(e))}`,``],o=t.commandDescription(e);o.length>0&&(a=a.concat([t.boxWrap(t.styleCommandDescription(o),r),``]));let s=t.visibleArguments(e).map(e=>i(t.styleArgumentTerm(t.argumentTerm(e)),t.styleArgumentDescription(t.argumentDescription(e))));if(a=a.concat(this.formatItemList(`Arguments:`,s,t)),this.groupItems(e.options,t.visibleOptions(e),e=>e.helpGroupHeading??`Options:`).forEach((e,n)=>{let r=e.map(e=>i(t.styleOptionTerm(t.optionTerm(e)),t.styleOptionDescription(t.optionDescription(e))));a=a.concat(this.formatItemList(n,r,t))}),t.showGlobalOptions){let n=t.visibleGlobalOptions(e).map(e=>i(t.styleOptionTerm(t.optionTerm(e)),t.styleOptionDescription(t.optionDescription(e))));a=a.concat(this.formatItemList(`Global Options:`,n,t))}return this.groupItems(e.commands,t.visibleCommands(e),e=>e.helpGroup()||`Commands:`).forEach((e,n)=>{let r=e.map(e=>i(t.styleSubcommandTerm(t.subcommandTerm(e)),t.styleSubcommandDescription(t.subcommandDescription(e))));a=a.concat(this.formatItemList(n,r,t))}),a.join(`
386
386
  `)}displayWidth(e){return Ae(e).length}styleTitle(e){return e}styleUsage(e){return e.split(` `).map(e=>e===`[options]`?this.styleOptionText(e):e===`[command]`?this.styleSubcommandText(e):e[0]===`[`||e[0]===`<`?this.styleArgumentText(e):this.styleCommandText(e)).join(` `)}styleCommandDescription(e){return this.styleDescriptionText(e)}styleOptionDescription(e){return this.styleDescriptionText(e)}styleSubcommandDescription(e){return this.styleDescriptionText(e)}styleArgumentDescription(e){return this.styleDescriptionText(e)}styleDescriptionText(e){return e}styleOptionTerm(e){return this.styleOptionText(e)}styleSubcommandTerm(e){return e.split(` `).map(e=>e===`[options]`?this.styleOptionText(e):e[0]===`[`||e[0]===`<`?this.styleArgumentText(e):this.styleSubcommandText(e)).join(` `)}styleArgumentTerm(e){return this.styleArgumentText(e)}styleOptionText(e){return e}styleArgumentText(e){return e}styleSubcommandText(e){return e}styleCommandText(e){return e}padWidth(e,t){return Math.max(t.longestOptionTermLength(e,t),t.longestGlobalOptionTermLength(e,t),t.longestSubcommandTermLength(e,t),t.longestArgumentTermLength(e,t))}preformatted(e){return/\n[^\S\r\n]/.test(e)}formatItem(e,t,n,r){let i=` `.repeat(2);if(!n)return i+e;let a=e.padEnd(t+e.length-r.displayWidth(e)),o=(this.helpWidth??80)-t-2-2,s;return s=o<this.minWidthToWrap||r.preformatted(n)?n:r.boxWrap(n,o).replace(/\n/g,`
387
387
  `+` `.repeat(t+2)),i+a+` `.repeat(2)+s.replace(/\n/g,`\n${i}`)}boxWrap(e,t){if(t<this.minWidthToWrap)return e;let n=e.split(/\r\n|\n/),r=/[\s]*[^\s]+/g,i=[];return n.forEach(e=>{let n=e.match(r);if(n===null){i.push(``);return}let a=[n.shift()],o=this.displayWidth(a[0]);n.forEach(e=>{let n=this.displayWidth(e);if(o+n<=t){a.push(e),o+=n;return}i.push(a.join(``));let r=e.trimStart();a=[r],o=this.displayWidth(r)}),i.push(a.join(``))}),i.join(`
388
388
  `)}},lT=class{constructor(e,t){this.flags=e,this.description=t||``,this.required=e.includes(`<`),this.optional=e.includes(`[`),this.variadic=/\w\.\.\.[>\]]$/.test(e),this.mandatory=!1;let n=fT(e);this.short=n.shortFlag,this.long=n.longFlag,this.negate=!1,this.long&&(this.negate=this.long.startsWith(`--no-`)),this.defaultValue=void 0,this.defaultValueDescription=void 0,this.presetArg=void 0,this.envVar=void 0,this.parseArg=void 0,this.hidden=!1,this.argChoices=void 0,this.conflictsWith=[],this.implied=void 0,this.helpGroupHeading=void 0}default(e,t){return this.defaultValue=e,this.defaultValueDescription=t,this}preset(e){return this.presetArg=e,this}conflicts(e){return this.conflictsWith=this.conflictsWith.concat(e),this}implies(e){let t=e;return typeof e==`string`&&(t={[e]:!0}),this.implied=Object.assign(this.implied||{},t),this}env(e){return this.envVar=e,this}argParser(e){return this.parseArg=e,this}makeOptionMandatory(e=!0){return this.mandatory=!!e,this}hideHelp(e=!0){return this.hidden=!!e,this}_collectValue(e,t){return t===this.defaultValue||!Array.isArray(t)?[e]:(t.push(e),t)}choices(e){return this.argChoices=e.slice(),this.parseArg=(e,t)=>{if(!this.argChoices.includes(e))throw new aT(`Allowed choices are ${this.argChoices.join(`, `)}.`);return this.variadic?this._collectValue(e,t):e},this}name(){return this.long?this.long.replace(/^--/,``):this.short.replace(/^-/,``)}attributeName(){return this.negate?dT(this.name().replace(/^no-/,``)):dT(this.name())}helpGroup(e){return this.helpGroupHeading=e,this}is(e){return this.short===e||this.long===e}isBoolean(){return!this.required&&!this.optional&&!this.negate}},uT=class{constructor(e){this.positiveOptions=new Map,this.negativeOptions=new Map,this.dualOptions=new Set,e.forEach(e=>{e.negate?this.negativeOptions.set(e.attributeName(),e):this.positiveOptions.set(e.attributeName(),e)}),this.negativeOptions.forEach((e,t)=>{this.positiveOptions.has(t)&&this.dualOptions.add(t)})}valueFromOption(e,t){let n=t.attributeName();if(!this.dualOptions.has(n))return!0;let r=this.negativeOptions.get(n).presetArg,i=r===void 0?!1:r;return t.negate===(i===e)}};function dT(e){return e.split(`-`).reduce((e,t)=>e+t[0].toUpperCase()+t.slice(1))}function fT(e){let t,n,r=/^-[^-]$/,i=/^--[^-]/,a=e.split(/[ |,]+/).concat(`guard`);if(r.test(a[0])&&(t=a.shift()),i.test(a[0])&&(n=a.shift()),!t&&r.test(a[0])&&(t=a.shift()),!t&&i.test(a[0])&&(t=n,n=a.shift()),a[0].startsWith(`-`)){let t=a[0],n=`option creation failed due to '${t}' in option flags '${e}'`;throw/^-[^-][^-]/.test(t)?Error(`${n}
@@ -400,5 +400,5 @@ Expecting one of '${n.join(`', '`)}'`);return this._lifeCycleHooks[e]?this._life
400
400
  - if the default executable name is not suitable, use the executableFile option to supply a custom name or path
401
401
  - ${t?`searched for local subcommand relative to directory '${t}'`:`no directory for search for local subcommand, use .executableDir() to supply a custom directory`}`;throw Error(r)}_executeSubCommand(e,t){t=t.slice();let n=[`.js`,`.ts`,`.tsx`,`.mjs`,`.cjs`];function r(e,t){let r=h.resolve(e,t);if(ie.existsSync(r))return r;if(n.includes(h.extname(t)))return;let i=n.find(e=>ie.existsSync(`${r}${e}`));if(i)return`${r}${i}`}this._checkForMissingMandatoryOptions(),this._checkForConflictingOptions();let i=e._executableFile||`${this._name}-${e._name}`,a=this._executableDir||``;if(this._scriptPath){let e;try{e=ie.realpathSync(this._scriptPath)}catch{e=this._scriptPath}a=h.resolve(h.dirname(e),a)}if(a){let t=r(a,i);if(!t&&!e._executableFile&&this._scriptPath){let n=h.basename(this._scriptPath,h.extname(this._scriptPath));n!==this._name&&(t=r(a,`${n}-${e._name}`))}i=t||i}let o=n.includes(h.extname(i)),s;b.platform===`win32`?(this._checkForMissingExecutable(i,a,e._name),t.unshift(i),t=gT(b.execArgv).concat(t),s=ye.spawn(b.execPath,t,{stdio:`inherit`})):o?(t.unshift(i),t=gT(b.execArgv).concat(t),s=ye.spawn(b.argv[0],t,{stdio:`inherit`})):s=ye.spawn(i,t,{stdio:`inherit`}),s.killed||[`SIGUSR1`,`SIGUSR2`,`SIGTERM`,`SIGINT`,`SIGHUP`].forEach(e=>{b.on(e,()=>{s.killed===!1&&s.exitCode===null&&s.kill(e)})});let c=this._exitCallback;s.on(`close`,e=>{e??=1,c?c(new iT(e,`commander.executeSubCommandAsync`,`(close)`)):b.exit(e)}),s.on(`error`,t=>{if(t.code===`ENOENT`)this._checkForMissingExecutable(i,a,e._name);else if(t.code===`EACCES`)throw Error(`'${i}' not executable`);if(!c)b.exit(1);else{let e=new iT(1,`commander.executeSubCommandAsync`,`(error)`);e.nestedError=t,c(e)}}),this.runningCommand=s}_dispatchSubcommand(e,t,n){let r=this._findCommand(e);r||this.help({error:!0}),r._prepareForParse();let i;return i=this._chainOrCallSubCommandHook(i,r,`preSubcommand`),i=this._chainOrCall(i,()=>{if(r._executableHandler)this._executeSubCommand(r,t.concat(n));else return r._parseCommand(t,n)}),i}_dispatchHelpCommand(e){e||this.help();let t=this._findCommand(e);return t&&!t._executableHandler&&t.help(),this._dispatchSubcommand(e,[],[this._getHelpOption()?.long??this._getHelpOption()?.short??`--help`])}_checkNumberOfArguments(){this.registeredArguments.forEach((e,t)=>{e.required&&this.args[t]==null&&this.missingArgument(e.name())}),!(this.registeredArguments.length>0&&this.registeredArguments[this.registeredArguments.length-1].variadic)&&this.args.length>this.registeredArguments.length&&this._excessArguments(this.args)}_processArguments(){let e=(e,t,n)=>{let r=t;if(t!==null&&e.parseArg){let i=`error: command-argument value '${t}' is invalid for argument '${e.name()}'.`;r=this._callParseArg(e,t,n,i)}return r};this._checkNumberOfArguments();let t=[];this.registeredArguments.forEach((n,r)=>{let i=n.defaultValue;n.variadic?r<this.args.length?(i=this.args.slice(r),n.parseArg&&(i=i.reduce((t,r)=>e(n,r,t),n.defaultValue))):i===void 0&&(i=[]):r<this.args.length&&(i=this.args[r],n.parseArg&&(i=e(n,i,n.defaultValue))),t[r]=i}),this.processedArgs=t}_chainOrCall(e,t){return e?.then&&typeof e.then==`function`?e.then(()=>t()):t()}_chainOrCallHooks(e,t){let n=e,r=[];return this._getCommandAndAncestors().reverse().filter(e=>e._lifeCycleHooks[t]!==void 0).forEach(e=>{e._lifeCycleHooks[t].forEach(t=>{r.push({hookedCommand:e,callback:t})})}),t===`postAction`&&r.reverse(),r.forEach(e=>{n=this._chainOrCall(n,()=>e.callback(e.hookedCommand,this))}),n}_chainOrCallSubCommandHook(e,t,n){let r=e;return this._lifeCycleHooks[n]!==void 0&&this._lifeCycleHooks[n].forEach(e=>{r=this._chainOrCall(r,()=>e(this,t))}),r}_parseCommand(e,t){let n=this.parseOptions(t);if(this._parseOptionsEnv(),this._parseOptionsImplied(),e=e.concat(n.operands),t=n.unknown,this.args=e.concat(t),e&&this._findCommand(e[0]))return this._dispatchSubcommand(e[0],e.slice(1),t);if(this._getHelpCommand()&&e[0]===this._getHelpCommand().name())return this._dispatchHelpCommand(e[1]);if(this._defaultCommandName)return this._outputHelpIfRequested(t),this._dispatchSubcommand(this._defaultCommandName,e,t);this.commands.length&&this.args.length===0&&!this._actionHandler&&!this._defaultCommandName&&this.help({error:!0}),this._outputHelpIfRequested(n.unknown),this._checkForMissingMandatoryOptions(),this._checkForConflictingOptions();let r=()=>{n.unknown.length>0&&this.unknownOption(n.unknown[0])},i=`command:${this.name()}`;if(this._actionHandler){r(),this._processArguments();let n;return n=this._chainOrCallHooks(n,`preAction`),n=this._chainOrCall(n,()=>this._actionHandler(this.processedArgs)),this.parent&&(n=this._chainOrCall(n,()=>{this.parent.emit(i,e,t)})),n=this._chainOrCallHooks(n,`postAction`),n}if(this.parent?.listenerCount(i))r(),this._processArguments(),this.parent.emit(i,e,t);else if(e.length){if(this._findCommand(`*`))return this._dispatchSubcommand(`*`,e,t);this.listenerCount(`command:*`)?this.emit(`command:*`,e,t):this.commands.length?this.unknownCommand():(r(),this._processArguments())}else this.commands.length?(r(),this.help({error:!0})):(r(),this._processArguments())}_findCommand(e){if(e)return this.commands.find(t=>t._name===e||t._aliases.includes(e))}_findOption(e){return this.options.find(t=>t.is(e))}_checkForMissingMandatoryOptions(){this._getCommandAndAncestors().forEach(e=>{e.options.forEach(t=>{t.mandatory&&e.getOptionValue(t.attributeName())===void 0&&e.missingMandatoryOptionValue(t)})})}_checkForConflictingLocalOptions(){let e=this.options.filter(e=>{let t=e.attributeName();return this.getOptionValue(t)===void 0?!1:this.getOptionValueSource(t)!=="default"});e.filter(e=>e.conflictsWith.length>0).forEach(t=>{let n=e.find(e=>t.conflictsWith.includes(e.attributeName()));n&&this._conflictingOption(t,n)})}_checkForConflictingOptions(){this._getCommandAndAncestors().forEach(e=>{e._checkForConflictingLocalOptions()})}parseOptions(e){let t=[],n=[],r=t;function i(e){return e.length>1&&e[0]===`-`}let a=e=>/^-(\d+|\d*\.\d+)(e[+-]?\d+)?$/.test(e)?!this._getCommandAndAncestors().some(e=>e.options.map(e=>e.short).some(e=>/^-\d$/.test(e))):!1,o=null,s=null,c=0;for(;c<e.length||s;){let l=s??e[c++];if(s=null,l===`--`){r===n&&r.push(l),r.push(...e.slice(c));break}if(o&&(!i(l)||a(l))){this.emit(`option:${o.name()}`,l);continue}if(o=null,i(l)){let t=this._findOption(l);if(t){if(t.required){let n=e[c++];n===void 0&&this.optionMissingArgument(t),this.emit(`option:${t.name()}`,n)}else if(t.optional){let n=null;c<e.length&&(!i(e[c])||a(e[c]))&&(n=e[c++]),this.emit(`option:${t.name()}`,n)}else this.emit(`option:${t.name()}`);o=t.variadic?t:null;continue}}if(l.length>2&&l[0]===`-`&&l[1]!==`-`){let e=this._findOption(`-${l[1]}`);if(e){e.required||e.optional&&this._combineFlagAndOptionalValue?this.emit(`option:${e.name()}`,l.slice(2)):(this.emit(`option:${e.name()}`),s=`-${l.slice(2)}`);continue}}if(/^--[^=]+=/.test(l)){let e=l.indexOf(`=`),t=this._findOption(l.slice(0,e));if(t&&(t.required||t.optional)){this.emit(`option:${t.name()}`,l.slice(e+1));continue}}if(r===t&&i(l)&&!(this.commands.length===0&&a(l))&&(r=n),(this._enablePositionalOptions||this._passThroughOptions)&&t.length===0&&n.length===0){if(this._findCommand(l)){t.push(l),n.push(...e.slice(c));break}else if(this._getHelpCommand()&&l===this._getHelpCommand().name()){t.push(l,...e.slice(c));break}else if(this._defaultCommandName){n.push(l,...e.slice(c));break}}if(this._passThroughOptions){r.push(l,...e.slice(c));break}r.push(l)}return{operands:t,unknown:n}}opts(){if(this._storeOptionsAsProperties){let e={},t=this.options.length;for(let n=0;n<t;n++){let t=this.options[n].attributeName();e[t]=t===this._versionOptionName?this._version:this[t]}return e}return this._optionValues}optsWithGlobals(){return this._getCommandAndAncestors().reduce((e,t)=>Object.assign(e,t.opts()),{})}error(e,t){this._outputConfiguration.outputError(`${e}\n`,this._outputConfiguration.writeErr),typeof this._showHelpAfterError==`string`?this._outputConfiguration.writeErr(`${this._showHelpAfterError}\n`):this._showHelpAfterError&&(this._outputConfiguration.writeErr(`
402
402
  `),this.outputHelp({error:!0}));let n=t||{},r=n.exitCode||1,i=n.code||`commander.error`;this._exit(r,i,e)}_parseOptionsEnv(){this.options.forEach(e=>{if(e.envVar&&e.envVar in b.env){let t=e.attributeName();(this.getOptionValue(t)===void 0||[`default`,`config`,`env`].includes(this.getOptionValueSource(t)))&&(e.required||e.optional?this.emit(`optionEnv:${e.name()}`,b.env[e.envVar]):this.emit(`optionEnv:${e.name()}`))}})}_parseOptionsImplied(){let e=new uT(this.options),t=e=>this.getOptionValue(e)!==void 0&&![`default`,`implied`].includes(this.getOptionValueSource(e));this.options.filter(n=>n.implied!==void 0&&t(n.attributeName())&&e.valueFromOption(this.getOptionValue(n.attributeName()),n)).forEach(e=>{Object.keys(e.implied).filter(e=>!t(e)).forEach(t=>{this.setOptionValueWithSource(t,e.implied[t],`implied`)})})}missingArgument(e){let t=`error: missing required argument '${e}'`;this.error(t,{code:`commander.missingArgument`})}optionMissingArgument(e){let t=`error: option '${e.flags}' argument missing`;this.error(t,{code:`commander.optionMissingArgument`})}missingMandatoryOptionValue(e){let t=`error: required option '${e.flags}' not specified`;this.error(t,{code:`commander.missingMandatoryOptionValue`})}_conflictingOption(e,t){let n=e=>{let t=e.attributeName(),n=this.getOptionValue(t),r=this.options.find(e=>e.negate&&t===e.attributeName()),i=this.options.find(e=>!e.negate&&t===e.attributeName());return r&&(r.presetArg===void 0&&n===!1||r.presetArg!==void 0&&n===r.presetArg)?r:i||e},r=e=>{let t=n(e),r=t.attributeName();return this.getOptionValueSource(r)===`env`?`environment variable '${t.envVar}'`:`option '${t.flags}'`},i=`error: ${r(e)} cannot be used with ${r(t)}`;this.error(i,{code:`commander.conflictingOption`})}unknownOption(e){if(this._allowUnknownOption)return;let t=``;if(e.startsWith(`--`)&&this._showSuggestionAfterError){let n=[],r=this;do{let e=r.createHelp().visibleOptions(r).filter(e=>e.long).map(e=>e.long);n=n.concat(e),r=r.parent}while(r&&!r._enablePositionalOptions);t=mT(e,n)}let n=`error: unknown option '${e}'${t}`;this.error(n,{code:`commander.unknownOption`})}_excessArguments(e){if(this._allowExcessArguments)return;let t=this.registeredArguments.length,n=t===1?``:`s`,r=e.length,i=`error: too many arguments${this.parent?` for '${this.name()}'`:``}. Expected ${t} argument${n} but got ${r}: ${e.join(`, `)}.`;this.error(i,{code:`commander.excessArguments`})}unknownCommand(){let e=this.args[0],t=``;if(this._showSuggestionAfterError){let n=[];this.createHelp().visibleCommands(this).forEach(e=>{n.push(e.name()),e.alias()&&n.push(e.alias())}),t=mT(e,n)}let n=`error: unknown command '${e}'${t}`;this.error(n,{code:`commander.unknownCommand`})}version(e,t,n){if(e===void 0)return this._version;this._version=e,t||=`-V, --version`,n||=`output the version number`;let r=this.createOption(t,n);return this._versionOptionName=r.attributeName(),this._registerOption(r),this.on(`option:`+r.name(),()=>{this._outputConfiguration.writeOut(`${e}\n`),this._exit(0,`commander.version`,e)}),this}description(e,t){return e===void 0&&t===void 0?this._description:(this._description=e,t&&(this._argsDescription=t),this)}summary(e){return e===void 0?this._summary:(this._summary=e,this)}alias(e){if(e===void 0)return this._aliases[0];let t=this;if(this.commands.length!==0&&this.commands[this.commands.length-1]._executableHandler&&(t=this.commands[this.commands.length-1]),e===t._name)throw Error(`Command alias can't be the same as its name`);let n=this.parent?._findCommand(e);if(n){let t=[n.name()].concat(n.aliases()).join(`|`);throw Error(`cannot add alias '${e}' to command '${this.name()}' as already have command '${t}'`)}return t._aliases.push(e),this}aliases(e){return e===void 0?this._aliases:(e.forEach(e=>this.alias(e)),this)}usage(e){if(e===void 0){if(this._usage)return this._usage;let e=this.registeredArguments.map(e=>sT(e));return[].concat(this.options.length||this._helpOption!==null?`[options]`:[],this.commands.length?`[command]`:[],this.registeredArguments.length?e:[]).join(` `)}return this._usage=e,this}name(e){return e===void 0?this._name:(this._name=e,this)}helpGroup(e){return e===void 0?this._helpGroupHeading??``:(this._helpGroupHeading=e,this)}commandsGroup(e){return e===void 0?this._defaultCommandGroup??``:(this._defaultCommandGroup=e,this)}optionsGroup(e){return e===void 0?this._defaultOptionGroup??``:(this._defaultOptionGroup=e,this)}_initOptionGroup(e){this._defaultOptionGroup&&!e.helpGroupHeading&&e.helpGroup(this._defaultOptionGroup)}_initCommandGroup(e){this._defaultCommandGroup&&!e.helpGroup()&&e.helpGroup(this._defaultCommandGroup)}nameFromFilename(e){return this._name=h.basename(e,h.extname(e)),this}executableDir(e){return e===void 0?this._executableDir:(this._executableDir=e,this)}helpInformation(e){let t=this.createHelp(),n=this._getOutputContext(e);t.prepareContext({error:n.error,helpWidth:n.helpWidth,outputHasColors:n.hasColors});let r=t.formatHelp(this,t);return n.hasColors?r:this._outputConfiguration.stripColor(r)}_getOutputContext(e){e||={};let t=!!e.error,n,r,i;return t?(n=e=>this._outputConfiguration.writeErr(e),r=this._outputConfiguration.getErrHasColors(),i=this._outputConfiguration.getErrHelpWidth()):(n=e=>this._outputConfiguration.writeOut(e),r=this._outputConfiguration.getOutHasColors(),i=this._outputConfiguration.getOutHelpWidth()),{error:t,write:e=>(r||(e=this._outputConfiguration.stripColor(e)),n(e)),hasColors:r,helpWidth:i}}outputHelp(e){let t;typeof e==`function`&&(t=e,e=void 0);let n=this._getOutputContext(e),r={error:n.error,write:n.write,command:this};this._getCommandAndAncestors().reverse().forEach(e=>e.emit(`beforeAllHelp`,r)),this.emit(`beforeHelp`,r);let i=this.helpInformation({error:n.error});if(t&&(i=t(i),typeof i!=`string`&&!Buffer.isBuffer(i)))throw Error(`outputHelp callback must return a string or a Buffer`);n.write(i),this._getHelpOption()?.long&&this.emit(this._getHelpOption().long),this.emit(`afterHelp`,r),this._getCommandAndAncestors().forEach(e=>e.emit(`afterAllHelp`,r))}helpOption(e,t){return typeof e==`boolean`?(e?(this._helpOption===null&&(this._helpOption=void 0),this._defaultOptionGroup&&this._initOptionGroup(this._getHelpOption())):this._helpOption=null,this):(this._helpOption=this.createOption(e??`-h, --help`,t??`display help for command`),(e||t)&&this._initOptionGroup(this._helpOption),this)}_getHelpOption(){return this._helpOption===void 0&&this.helpOption(void 0,void 0),this._helpOption}addHelpOption(e){return this._helpOption=e,this._initOptionGroup(e),this}help(e){this.outputHelp(e);let t=Number(b.exitCode??0);t===0&&e&&typeof e!=`function`&&e.error&&(t=1),this._exit(t,`commander.help`,`(outputHelp)`)}addHelpText(e,t){let n=[`beforeAll`,`before`,`after`,`afterAll`];if(!n.includes(e))throw Error(`Unexpected value for position to addHelpText.
403
- Expecting one of '${n.join(`', '`)}'`);let r=`${e}Help`;return this.on(r,e=>{let n;n=typeof t==`function`?t({error:e.error,command:e.command}):t,n&&e.write(`${n}\n`)}),this}_outputHelpIfRequested(e){let t=this._getHelpOption();t&&e.find(e=>t.is(e))&&(this.outputHelp(),this._exit(0,`commander.helpDisplayed`,`(outputHelp)`))}};function gT(e){return e.map(e=>{if(!e.startsWith(`--inspect`))return e;let t,n=`127.0.0.1`,r=`9229`,i;return(i=e.match(/^(--inspect(-brk)?)$/))===null?(i=e.match(/^(--inspect(-brk|-port)?)=([^:]+)$/))===null?(i=e.match(/^(--inspect(-brk|-port)?)=([^:]+):(\d+)$/))!==null&&(t=i[1],n=i[3],r=i[4]):(t=i[1],/^\d+$/.test(i[3])?r=i[3]:n=i[3]):t=i[1],t&&r!==`0`?`${t}=${n}:${parseInt(r)+1}`:e})}function _T(){if(b.env.NO_COLOR||b.env.FORCE_COLOR===`0`||b.env.FORCE_COLOR===`false`)return!1;if(b.env.FORCE_COLOR||b.env.CLICOLOR_FORCE!==void 0)return!0}new hT;const vT=[],yT=e=>Array.isArray(e)?e:[e],Q=(e,t,n,r,i)=>{if(t.json){let t={data:r,ok:!0,warnings:i??vT};e.out(JSON.stringify(t));return}for(let t of yT(n))e.out(t);for(let t of i??vT)e.errLine(`refs: warning: ${t}`)},bT=(e,t,n)=>{if(t.json){let t={error:{code:n.code,message:n.message},ok:!1};e.out(JSON.stringify(t));return}e.errLine(`refs: ${n.message}`)},$=(e,t,n)=>async()=>{try{await n()}catch(n){let r=ct(n,{verbose:t.verbose});bT(e,t,r),process.exitCode=r.exitCode}};var xT=`0.1.1`;const ST=async e=>{let t=await e.runner.run(`git`,[`--version`]);return t.exitCode===0?{detail:t.stdout.trim(),name:`git`,status:`ok`}:{detail:t.stderr.trim()||`git --version exited with code ${t.exitCode}`,name:`git`,status:`fail`}},CT=/^v(?<major>\d+)\.(?<minor>\d+)/u,wT=e=>{let t=CT.exec(e),n=t?.groups?.major,r=t?.groups?.minor;if(!(n===void 0||r===void 0))return{major:Number(n),minor:Number(r)}},TT=e=>e===void 0?!1:e.major===24&&e.minor>=12,ET=e=>{let{nodeVersion:t}=e;return TT(wT(t))?{detail:t,name:`node`,status:`ok`}:{detail:`${t} does not satisfy the required range >=24.12 <25`,name:`node`,status:`fail`}},DT=e=>e instanceof Error?e.message:String(e),OT=()=>tc.parse({meta:{cli_version:`0.0.0`,schema_version:1},refs:{},settings:{}}),kT=async e=>{try{return{config:await H(e)}}catch(e){return{config:OT(),errorMessage:DT(e)}}},AT=e=>e===void 0?{detail:`config is present and matches the current schema`,name:`config`,status:`ok`}:{detail:e,name:`config`,status:`fail`},jT=[`.claude`,`skills`,`refs`,`SKILL.md`],MT=[`.codex`,`skills`,`refs`,`SKILL.md`],NT=e=>e===void 0?[]:[y(e,...jT),y(e,...MT)],PT=async e=>{try{return await t(e),!0}catch{return!1}},FT=async e=>{let t=NT(e.env.HOME);return(await Promise.all(t.map(e=>PT(e)))).some(Boolean)?{detail:`the refs skill is installed`,name:`skill`,status:`ok`}:{detail:`refs skill not found — install it: npx skills add kaisers-io/refs`,name:`skill`,status:`warn`}},IT=(e,t)=>Object.keys(t.refs).map(t=>({dest:V(e,Us.parse(t)),key:t})).filter(e=>U(e.dest)),LT=[`pre-commit`,`pre-push`],RT=async(e,n)=>{try{return await t(y(e.hooksDir,n),r.X_OK),!0}catch{return!1}},zT=async e=>{let t=await Promise.all(LT.map(t=>RT(e,t)));return LT.filter((e,n)=>!t[n])},BT=async(e,t,n)=>{let r=await e.runner.run(`git`,[`config`,`--local`,`--get`,`core.hooksPath`],{cwd:n});return r.exitCode===0&&r.stdout.trim()===t.hooksDir},VT=e=>e.missingHooks.length>0?{detail:`${e.missingHooks.map(e=>`hooks/${e}`).join(`, `)} missing or not executable — run: refs init`,name:`hooks-guard`,status:`fail`}:e.badKeys.length>0?{detail:`core.hooksPath not set for: ${e.badKeys.join(`, `)} — run: refs init`,name:`hooks-guard`,status:`fail`}:{detail:`${LT.map(e=>`hooks/${e}`).join(`, `)} present; ${e.checkoutCount} checkout(s) guarded`,name:`hooks-guard`,status:`ok`},HT=async(e,t,n)=>{let r=IT(t,n),[i,a]=await Promise.all([zT(t),Promise.all(r.map(n=>BT(e,t,n.dest)))]),o=r.filter((e,t)=>!a[t]).map(e=>e.key);return VT({badKeys:o,checkoutCount:r.length,missingHooks:i})},UT=async(e,t)=>{let n=await e.runner.run(`git`,[`status`,`--porcelain`],{cwd:t.dest});return n.exitCode===0?{broken:!1,detail:``,dirty:n.stdout.trim()!==``,key:t.key}:{broken:!0,detail:n.stderr.trim(),dirty:!1,key:t.key}},WT=e=>{let t=e.filter(e=>e.broken);if(t.length>0)return{detail:t.map(e=>`${e.key}: git status failed — ${e.detail}`).join(`; `),name:`dirty-checkouts`,status:`fail`};let n=e.filter(e=>e.dirty).map(e=>e.key);return n.length===0?{detail:`no local changes in any checkout`,name:`dirty-checkouts`,status:`ok`}:{detail:`local changes will be discarded on next sync: ${n.join(`, `)}`,name:`dirty-checkouts`,status:`warn`}},GT=async(e,t,n)=>{let r=IT(t,n),i=await Promise.all(r.map(t=>UT(e,t)));return WT(i)},KT=async e=>{try{return await Z(e)}catch{return Aw.parse({})}},qT=async e=>{try{return(await c(e,{withFileTypes:!0})).filter(e=>e.isDirectory()).map(e=>e.name)}catch(e){if(Lc(e))return[];throw e}},JT=async(e,t)=>{if(U(e))return[[...t]];let n=await qT(e);return(await Promise.all(n.map(n=>JT(y(e,n),[...t,n])))).flat()},YT=(e,t,n)=>{let r=e.refs[t]?.pending_proposal_at;return r===void 0?!1:n-Date.parse(r)<864e5},XT=(e,t,n)=>YT(t,e.key,n)?`${e.key}: pending add`:`${e.key}: orphan — remove with: rm -rf ${e.dest}`,ZT=(e,t)=>({dest:y(e.sourcesDir,...t),key:t.join(`/`)}),QT=async(e,t,n)=>{let r=(await JT(e.sourcesDir,[])).map(t=>ZT(e,t)).filter(e=>!Object.hasOwn(t.refs,e.key));if(r.length===0)return{detail:`no orphaned checkouts under sources/`,name:`orphans`,status:`ok`};let i=Date.now();return{detail:r.map(e=>XT(e,n,i)).join(`; `),name:`orphans`,status:`warn`}},$T=/^(?<user>[^/\s@]+)@(?<host>[^:/\s]+):/u,eE=e=>e===``?{}:{user:e},tE=e=>e===``?{}:{port:e},nE=e=>{try{let t=new URL(e);return t.protocol===`ssh:`?{host:t.hostname,...eE(t.username),...tE(t.port)}:void 0}catch{return}},rE=e=>{let t=$T.exec(e),n=t?.groups?.host;return n===void 0?nE(e):{host:n,user:t?.groups?.user??`git`}},iE=e=>e.port===void 0?e.host:`${e.host}:${e.port}`,aE=e=>e.user===void 0?iE(e):`${e.user}@${iE(e)}`,oE=e=>{let t=Object.values(e.refs).map(e=>rE(e.url)).filter(e=>e!==void 0),n=new Map;for(let e of t)n.set(aE(e),e);return[...n.values()].toSorted((e,t)=>aE(e).localeCompare(aE(t)))},sE=/Permission denied/u,cE=[/Could not resolve hostname/u,/Connection refused/u,/Host key verification failed/u,/timed out/u],lE=e=>e.user===void 0?e.host:`${e.user}@${e.host}`,uE=e=>{let t=[`-o`,`ConnectTimeout=5`,`-o`,`BatchMode=yes`],n=lE(e);return e.port===void 0?[...t,`-T`,n]:[...t,`-p`,e.port,`-T`,n]},dE=async(e,t,n)=>{let r=aE(t),i=await e.runner.run(`ssh`,uE(t),{timeoutMs:n});return i.timedOut===!0?{host:r,outcome:`timeout`}:sE.test(i.stderr)?{host:r,outcome:`denied`}:cE.some(e=>e.test(i.stderr))?{detail:i.stderr.trim(),host:r,outcome:`connection-warn`}:{host:r,outcome:`ok`}},fE=(e,t)=>{let n=e.filter(e=>e.outcome===`timeout`).map(e=>e.host);if(n.length!==0)return{detail:`ssh probe timed out after ${t/1e3}s: ${n.join(`, `)}`,name:`ssh-auth`,status:`fail`}},pE=e=>{let t=e.filter(e=>e.outcome===`denied`).map(e=>e.host);if(t.length!==0)return{detail:`ssh permission denied for: ${t.join(`, `)}`,name:`ssh-auth`,status:`fail`}},mE=e=>{let t=e.filter(e=>e.outcome===`connection-warn`);if(t.length!==0)return{detail:`ssh connection issue, treated as warn: ${t.map(e=>`${e.host} (${e.detail??``})`).join(`; `)}`,name:`ssh-auth`,status:`warn`}},hE=e=>({detail:`ssh auth ok for: ${e.map(e=>e.host).join(`, `)}`,name:`ssh-auth`,status:`ok`}),gE=(e,t)=>fE(e,t)??pE(e)??mE(e)??hE(e),_E=async(e,t,n)=>{let r=oE(t);if(r.length===0)return;let i=n?.timeoutMs??1e4,a=await Promise.all(r.map(t=>dE(e,t,i)));return gE(a,i)},vE=async e=>{try{return await e.run()}catch(t){return{detail:`check crashed: ${DT(t)}`,name:e.name,status:`fail`}}},yE=async e=>{let[t,...n]=e;if(t===void 0)return[];let r=await vE(t),i=await yE(n);return r===void 0?i:[r,...i]},bE=e=>{let{configLoad:t,ctx:n,home:r,state:i}=e;return[{name:`git`,run:()=>ST(n)},{name:`node`,run:()=>Promise.resolve(ET(n))},{name:`config`,run:()=>Promise.resolve(AT(t.errorMessage))},{name:`hooks-guard`,run:()=>HT(n,r,t.config)},{name:`dirty-checkouts`,run:()=>GT(n,r,t.config)},{name:`orphans`,run:()=>QT(r,t.config,i)},{name:`skill`,run:()=>FT(n)},{name:`ssh-auth`,run:()=>_E(n,t.config)}]},xE=async e=>{let t=B(e.env),n=await kT(t),r=await KT(t);return yE(bE({configLoad:n,ctx:e,home:t,state:r}))},SE={fail:`FAIL`,ok:`OK`,warn:`WARN`},CE=e=>e.map(e=>`[${SE[e.status]}] ${e.name}: ${e.detail}`),wE=e=>e.some(e=>e.status===`fail`),TE=(e,t)=>{e.command(`doctor`).description(`Run environment/integrity checks (git, node, config, hooks, checkouts, ssh).`).action((e,n)=>{let r=n.optsWithGlobals(),i={json:r.json===!0,verbose:r.verbose===!0};return $(t,i,async()=>{let e=await xE(t);Q(t,i,CE(e),{checks:e}),wE(e)&&(process.exitCode=it.UNEXPECTED)})()})},EE=async e=>{let t=B(e.env),n=await G(t,`home`,()=>sl(t,xT));return n===`migrated`?{backup:zc(t),result:n}:{backup:null,result:n}},DE=e=>e.result===`migrated`&&e.backup!==null?`config migrated (backup: ${g(e.backup)})`:e.result===`seeded`?`config seeded`:`config up to date`,OE=(e,t)=>{e.command(`migrate`).description(`Migrate the refs config to the current schema, seeding it if absent.`).action((e,n)=>{let r=n.optsWithGlobals(),i={json:r.json===!0,verbose:r.verbose===!0};return $(t,i,async()=>{let e=await EE(t);Q(t,i,DE(e),e)})()})},kE=(e,t,n)=>e===void 0?!0:n-Date.parse(e)>t,AE=(e,t,n)=>{let r=e.state.refs[t],i=Gs(jw(`sync_ttl`,n,e.settings));return{clone_mode:jw(`clone_mode`,n,e.settings),description:n.description,key:t,missing:!U(V(e.home,Us.parse(t))),packages:Object.keys(n.packages??{}).toSorted(),stale:kE(r?.last_fetched_at,i,e.now)}},jE=e=>{let t={home:e.home,now:e.now,settings:e.config.settings,state:e.state};return Object.entries(e.config.refs).map(([e,n])=>AE(t,e,n)).toSorted((e,t)=>e.key.localeCompare(t.key))},ME=async e=>{let t=B(e.env),n=await H(t),r=await Z(t);return jE({config:n,home:t,now:Date.now(),state:r})},NE=e=>{let t=[];return e.stale&&t.push(`[stale]`),e.missing&&t.push(`[missing]`),t.length===0?``:` ${t.join(` `)}`},PE=e=>e.length===0?[`no refs configured — run: refs add <source>`]:e.map(e=>`${e.key} ${e.description}${NE(e)}`),FE=e=>e.split(`/`),IE=(e,t)=>{let n=FE(e);if(t.length>n.length)return!1;let r=n.length-t.length;return t.every((e,t)=>e===n[r+t])},LE=(e,t)=>{if(Object.hasOwn(e.refs,t))return Us.parse(t);let n=FE(t),r=Object.keys(e.refs).filter(e=>IE(e,n)).toSorted(),[i]=r;if(i===void 0)throw C(`no ref matches '${t}'`);if(r.length>1)throw w(`'${t}' matches more than one ref: ${r.join(`, `)}`);return Us.parse(i)},RE=(e,t)=>{e.command(`list`).description(`List configured refs with their staleness/missing checkout status.`).action((e,n)=>{let r=n.optsWithGlobals(),i={json:r.json===!0,verbose:r.verbose===!0};return $(t,i,async()=>{let e=await ME(t);Q(t,i,PE(e),e)})()})},zE=e=>`ref:${e.replaceAll(`/`,`_`)}`,BE=e=>e.REFS_ALLOW_FILE_URLS===`1`,VE=(e,t)=>{let n=uu(t,{allowFileUrls:BE(e.env)});return{cloneUrl:n.cloneUrl,key:n.key}},HE=async(e,t)=>{if(t===``)throw w(`refs add npm: requires a package name, e.g. npm:left-pad`);let n=await fd(e.fetcher,t),r={cloneUrl:n.cloneUrl,key:n.key,npmPkgName:t};return n.directory!==void 0&&(r.npmDirectory=n.directory),r},UE=(e,t)=>t.startsWith(`npm:`)?HE(e,t.slice(4)):Promise.resolve(VE(e,t)),WE=(e,t)=>{if(e.npmPkgName===void 0)return e;let n=jw(`git_transport`,void 0,t);return{...e,cloneUrl:Su(e.cloneUrl,n)}},GE=e=>`ref '${e}' already exists — use refs edit or refs remove`,KE=(e,t)=>{if(e.refs[t]!==void 0)throw ot(GE(t))},qE=async e=>{try{return await c(e,{withFileTypes:!0})}catch(e){if(Lc(e))return;throw e}},JE=e=>e.filter(e=>e.isDirectory()).map(e=>e.name),YE=async(e,t)=>{let n=await qE(e);if(n===void 0)return{kind:`stop`};let r=JE(n);if(r.includes(t))return{kind:`continue`,nextDir:y(e,t)};let i=r.find(e=>e.toLowerCase()===t.toLowerCase());return i===void 0?{kind:`stop`}:{kind:`collision`,name:i}},XE=async(e,t,n)=>{let[r,...i]=t;if(r===void 0)return;let a=await YE(e,r);if(a.kind!==`stop`)return a.kind===`collision`?[...n,a.name].join(`/`):XE(a.nextDir,i,[...n,r])},ZE=[],QE=async(e,t)=>{let n=await XE(e.sourcesDir,t.split(`/`),ZE);if(n!==void 0)throw ot(`checkout path for '${t}' collides case-insensitively with existing '${n}'`)},$E=[],eD=e=>e===void 0?$E:[e],tD=async e=>{try{return await a(e),!0}catch(e){if(Lc(e))return!1;throw e}},nD=async e=>{try{return await c(e)}catch(e){if(Lc(e))return;throw e}},rD=async e=>{try{return(await a(e)).isDirectory()}catch(e){if(Lc(e))return;throw e}},iD=async e=>{let t=await nD(e);if(t===void 0)return!0;if(t.length!==0)return!1;try{await f(e)}catch(e){if(!Lc(e))throw e}return!0},aD=async e=>{let t=await rD(e);return t===void 0?!0:t?iD(e):!1},oD=async(e,t)=>{t!==e.sourcesDir&&await aD(t)&&await oD(e,_(t))},sD=async(e,t)=>await tD(t)?(Hc(e,t),await d(t,{force:!0,recursive:!0}),await oD(e,_(t)),{removedCheckout:!0}):{removedCheckout:!1,warning:`checkout was already missing`},cD=(e,t)=>Object.fromEntries(Object.entries(e).filter(([e])=>e!==t)),lD=async(e,t)=>{let n=await H(e);await Xc(e,{...n,refs:cD(n.refs,t)});let r=await Z(e);await Pw(e,{...r,refs:cD(r.refs,t)})},uD=async(e,t)=>{let n=B(e.env),r=LE(await H(n),t),i=V(n,r),{removedCheckout:a,warning:o}=await G(n,zE(r),()=>sD(n,i));return await G(n,`home`,()=>lD(n,r)),{data:{key:r,removed_checkout:a},warnings:eD(o)}},dD=e=>e.removed_checkout?[`removed ${e.key} (checkout deleted)`]:[`removed ${e.key} (checkout was already missing)`],fD=(e,t)=>{e.command(`remove`).description(`Remove a configured ref: its config/state entry AND its checkout directory.`).argument(`<ref>`,`full ref key or a unique suffix, e.g. next.js`).action((e,n,r)=>{let i=r.optsWithGlobals(),a={json:i.json===!0,verbose:i.verbose===!0};return $(t,a,async()=>{let{data:n,warnings:r}=await uD(t,e);Q(t,a,dD(n),n,r)})()})},pD=e=>`no ref matches '${e}' — run refs list, or add it: refs add <url>`,mD=/^[a-z][a-z0-9+.-]*:\/\//iu,hD=/^git@[^:/\s]+:[^\s]+$/u,gD=e=>mD.test(e)||hD.test(e),_D=(e,t)=>{try{return uu(e,t)}catch{if(gD(e))throw T(`query looks like a git url but is not a supported form — check the url (credentials are never accepted) or run: refs resolve <package|ref-suffix>`);return}},vD=(e,t,n)=>{let r=_D(t,n);if(r!==void 0){if(Object.hasOwn(e.refs,r.key))return{key:r.key};throw C(pD(t))}},yD=(e,t)=>{let n=[];for(let r of Object.keys(e.refs).toSorted()){let i=e.refs[r]?.packages?.[t];i!==void 0&&n.push({entry:i,key:Us.parse(r)})}return n},bD=(e,t)=>`package '${e}' is registered by more than one ref: ${t.join(`, `)} — use the full ref key`,xD=(e,t)=>{let n=yD(e,t),[r]=n;if(r!==void 0){if(n.length>1)throw w(bD(t,n.map(e=>e.key)));return r}},SD=(e,t)=>{let n=t.split(`/`);for(let t=n.length-1;t>=1;--t){let r=n.slice(0,t).join(`/`),i=xD(e,r);if(i!==void 0)return{...i,name:r}}},CD=(e,t)=>{try{return LE(e,t)}catch(e){throw e instanceof at&&e.code===`not_found`?C(pD(t)):e}},wD=(e,t,n)=>{let r=vD(e,t,n);if(r!==void 0)return r;let i=xD(e,t);if(i!==void 0)return{key:i.key,packageMatch:{...i,name:t}};let a=SD(e,t);return a===void 0?{key:CD(e,t)}:{key:a.key,packageMatch:a}},TD=(e,t)=>{let n=e.refs[t];if(n===void 0)throw Error(`internal: resolved ref key '${t}' is missing from config.refs`);return n},ED=(e,t)=>{if(e.packageMatch===void 0)return null;let{entry:n,name:r}=e.packageMatch;return{local_path:y(t,n.path),name:r,path:n.path}},DD=async(e,t)=>{let n=B(e.env),r=await H(n),i=wD(r,t,{allowFileUrls:BE(e.env)}),a=TD(r,i.key),o=await Z(n),s=V(n,i.key),c=Gs(jw(`sync_ttl`,a,r.settings));return{key:i.key,local_path:s,missing:!U(s),package:ED(i,s),stale:kE(o.refs[i.key]?.last_fetched_at,c,Date.now())}},OD=e=>{let t=[e.key,`local_path: ${e.local_path}`];return e.package!==null&&t.push(`package: ${e.package.name}`,`local_path: ${e.package.local_path}`),t},kD=(e,t)=>{e.command(`resolve`).description(`Resolve a git url, npm package name, import path, or ref-key suffix to its ref/package.`).argument(`<query>`,`git url, npm package name, import path, or unique ref-key suffix`).action((e,n,r)=>{let i=r.optsWithGlobals(),a={json:i.json===!0,verbose:i.verbose===!0};return $(t,a,async()=>{let n=await DD(t,e);Q(t,a,OD(n),n)})()})},AD={},jD=(e,t)=>{let n=e.refs[t];if(n===void 0)throw Error(`internal: matched ref key '${t}' is missing from config.refs`);return n},MD=e=>e instanceof Error?e.message:String(e),ND=async(e,t)=>{if(!U(t))return{tags:[]};try{return{tags:await Ol(e.runner,t,5)}}catch(e){return{tags:[],warning:`could not list tags: ${MD(e)}`}}},PD=[],FD=e=>e===void 0?PD:[e],ID=async(e,t)=>{let n=B(e.env),r=await H(n),i=LE(r,t),a=jD(r,i),o=await Z(n),s=V(n,i),{tags:c,warning:l}=await ND(e,s);return{data:{...a,key:i,local_path:s,sample_tags:c,state:o.refs[i]??AD},warnings:FD(l)}},LD=e=>{let t=[`${e.key} ${e.description}`,`url: ${e.url}`,`local_path: ${e.local_path}`];return e.sample_tags.length>0&&t.push(`tags: ${e.sample_tags.join(`, `)}`),t},RD=(e,t)=>{e.command(`show`).description(`Show a configured ref: full entry, state, local path, and sample tags.`).argument(`<ref>`,`full ref key or a unique suffix, e.g. next.js`).action((e,n,r)=>{let i=r.optsWithGlobals(),a={json:i.json===!0,verbose:i.verbose===!0};return $(t,a,async()=>{let{data:n,warnings:r}=await ID(t,e);Q(t,a,LD(n),n,r)})()})},zD=(e,t)=>{let n={head_sha:t.headSha,last_fetched_at:new Date().toISOString()},r=t.effectiveCloneMode??e?.effective_clone_mode;return r!==void 0&&(n.effective_clone_mode=r),n},BD=async(e,t,n)=>{let r=await H(e),i=r.refs[t];i!==void 0&&(r.refs[t]={...i,default_branch:n},await Xc(e,r))},VD=(e,t,n)=>G(e,`home`,async()=>{n.branchRenamedTo!==void 0&&await BD(e,t,n.branchRenamedTo);let r=await Z(e);r.refs[t]=zD(r.refs[t],n),await Pw(e,r)}),HD=async(e,t,n)=>{try{await G(e,`home`,async()=>{let r=await Z(e);r.refs[t]={...r.refs[t],last_error:n},await Pw(e,r)})}catch{}},UD=e=>{let t=0,n=[];return{acquire:()=>{if(t<e)return t+=1,Promise.resolve();let{promise:r,resolve:i}=Promise.withResolvers();return n.push(()=>{t+=1,i()}),r},release:()=>{--t;let e=n.shift();e!==void 0&&e()}}},WD=async(e,t)=>{await e.acquire();try{return await t()}finally{e.release()}},GD=(e,t,n)=>`checkout at ${e} points at '${W(t)}' — expected '${W(n)}'; remove the checkout directory or run refs remove before retrying`,KD=e=>e.exitCode===0?e.stdout.trim():`(no origin remote)`,qD=(e,t)=>{try{return uu(e,{allowFileUrls:t}).key}catch{return}},JD=async(e,t)=>{let n=await e.run(`git`,[`remote`,`get-url`,`origin`],{cwd:t.dest}),r=KD(n),i=qD(t.expectedUrl,t.allowFileUrls),a=qD(r,t.allowFileUrls);if(!(i!==void 0&&a===i))throw ot(GD(t.dest,r,t.expectedUrl))},YD=e=>`checkout at ${e} exists but is not refs-managed — remove it (rm -rf ${e}) and retry`,XD=async(e,t)=>{let n=await e.run(`git`,[`config`,`--local`,`core.hooksPath`],{cwd:t.dest});if(n.exitCode!==0||n.stdout.trim()!==t.hooksDir)throw ot(YD(t.dest))},ZD=async(e,t)=>{if(Hc(t.home,t.dest),U(t.dest))return await JD(e,{allowFileUrls:t.allowFileUrls,dest:t.dest,expectedUrl:t.cloneUrl}),await XD(e,{dest:t.dest,hooksDir:t.hooksDir}),{};await o(_(t.dest),{recursive:!0});let n=await yl(e,t);return n.warning===void 0?{effectiveMode:n.effectiveMode}:{effectiveMode:n.effectiveMode,warning:n.warning}},QD=(e,t)=>`checkout for '${e}' at ${t} is missing or corrupt (git rev-parse HEAD failed) — run: refs remove ${e}, then refs add <source> --dry-run again`,$D=(e,t,n)=>`checkout for '${e}' at ${t} has a HEAD sha refs cannot store yet (${n.length} hex chars, expected 40) — only SHA-1 repositories are supported for now; \`--object-format=sha256\` repositories are not yet supported`,eO=async(e,t)=>{await JD(e,t),await XD(e,{dest:t.dest,hooksDir:t.hooksDir});let n=await e.run(`git`,[`rev-parse`,`HEAD`],{cwd:t.dest});if(n.exitCode!==0)throw T(QD(t.key,t.dest));let r=n.stdout.trim();if(!kw.shape.head_sha.safeParse(r).success)throw T($D(t.key,t.dest,r));return r},tO=(e,t,n)=>`sync produced a HEAD sha for '${e}' at ${t} that refs cannot store yet (${n.length} hex chars) — only SHA-1 repositories are supported for now`,nO=(e,t,n)=>{if(!kw.shape.head_sha.safeParse(n).success)throw T(tO(e,t,n));return n},rO=(e,t,n)=>{let r={effectiveCloneMode:t.effectiveMode,headSha:n.headSha,status:`cloned`};return n.actualBranch!==e.ref.default_branch&&(r.branchRenamedTo=n.actualBranch),t.warning!==void 0&&(r.warning=t.warning),r},iO=async(e,t,n)=>{await o(_(n),{recursive:!0});let r=jw(`clone_mode`,t.ref,t.settings),i=await yl(e.runner,{cloneUrl:t.ref.url,dest:n,hooksDir:t.home.hooksDir,mode:r}),a=await xl(e.runner,n),s=await eO(e.runner,{allowFileUrls:BE(e.env),dest:n,expectedUrl:t.ref.url,hooksDir:t.home.hooksDir,key:t.key});return rO(t,i,{actualBranch:a,headSha:s})},aO=async(e,t,n)=>{await XD(e.runner,{dest:n,hooksDir:t.home.hooksDir}),await JD(e.runner,{allowFileUrls:BE(e.env),dest:n,expectedUrl:t.ref.url});let r=await Dl(e.runner,{defaultBranch:t.ref.default_branch,dir:n}),i={headSha:nO(t.key,n,r.newSha),status:r.status};return r.branchRenamedTo!==void 0&&(i.branchRenamedTo=r.branchRenamedTo),r.warning!==void 0&&(i.warning=r.warning),i},oO=(e,t)=>G(t.home,zE(t.key),()=>{let n=V(t.home,t.key);return Hc(t.home,n),U(n)?aO(e,t,n):iO(e,t,n)}),sO=e=>e instanceof Error?e.message:String(e),cO=e=>{let t=[];e.branchRenamedTo!==void 0&&t.push(`default branch renamed to ${e.branchRenamedTo}`),e.warning!==void 0&&t.push(e.warning);let[n]=t;if(n!==void 0)return t.join(` | `)},lO=(e,t)=>{let n={key:e,status:t.status},r=cO(t);return r!==void 0&&(n.warning=r),n},uO=async(e,t)=>{try{let n=await oO(e,t);return await VD(t.home,t.key,n),lO(t.key,n)}catch(e){let n=sO(e);return await HD(t.home,t.key,n),{error:n,key:t.key,status:`failed`}}},dO=(e,t)=>e.status===`fulfilled`?e.value:{error:sO(e.reason),key:t,status:`failed`},fO=async(e,t)=>{let n=UD(4);return(await Promise.allSettled(t.map(t=>WD(n,()=>uO(e,t))))).map((e,n)=>{let r=t[n];if(r===void 0)throw Error(`internal: sync target at index ${n} is missing`);return dO(e,r.key)})},pO=(e,t)=>{let n=e.refs[t];if(n===void 0)throw Error(`internal: matched ref key '${t}' is missing from config.refs`);return n},mO=(e,t,n)=>({home:e,key:n,ref:pO(t,n),settings:t.settings}),hO=(e,t,n)=>n.length===0?Object.keys(t.refs).toSorted().map(n=>mO(e,t,Us.parse(n))):n.map(n=>mO(e,t,LE(t,n))),gO=(e,t,n)=>{let r=Date.now();return t.filter(t=>{let i=Gs(jw(`sync_ttl`,t.ref,t.settings)),a=kE(n.refs[t.key]?.last_fetched_at,i,r),o=!U(V(e,t.key));return a||o})},_O=async(e,t,n)=>{if(!n)return t;let r=await Z(e);return gO(e,t,r)},vO=async(e,t)=>{let n=B(e.env),r=await H(n),i=hO(n,r,t.refs),a=await fO(e,await _O(n,i,t.staleOnly));return{failedCount:a.filter(e=>e.status===`failed`).length,results:a}},yO=[`updated`,`fresh`,`cloned`,`restored`,`failed`],bO={cloned:`Cloned`,failed:`Failed`,fresh:`Fresh`,restored:`Restored`,updated:`Updated`},xO=e=>{let t={cloned:[],failed:[],fresh:[],restored:[],updated:[]};for(let n of e)t[n.status].push(n);return t},SO=e=>e.status===`failed`?` ${e.key}: ${e.error??`unknown error`}`:e.warning===void 0?` ${e.key}`:` ${e.key} (${e.warning})`,CO=e=>{let t=xO(e),n=[yO.map(e=>`${bO[e]} (${t[e].length})`).join(` / `)];for(let e of yO)for(let r of t[e])n.push(SO(r));return n},wO=(e,t)=>({refs:e,staleOnly:t.staleOnly===!0}),TO=(e,t)=>{e.command(`sync`).description(`Fetch (or re-clone, if the checkout is missing) configured refs — all by default.`).argument(`[refs...]`,`ref keys or unique suffixes to sync (default: every configured ref)`).option(`--stale-only`,`skip refs whose last sync is still within their ref's sync_ttl`).action((e,n,r)=>{let i=r.optsWithGlobals(),a={json:i.json===!0,verbose:i.verbose===!0};return $(t,a,async()=>{let r=await vO(t,wO(e,n));Q(t,a,CO(r.results),{results:r.results}),r.failedCount>0&&(process.exitCode=it.UNEXPECTED)})()})},EO=(e,t)=>{let n=e.refs[t];if(n===void 0)throw Error(`internal: matched ref key '${t}' is missing from config.refs`);return n},DO=(e,t,n)=>{if(n===void 0)return e.tag_format;let r=e.packages?.[n];if(r===void 0)throw C(`no package '${n}' registered on ref '${t}'`);return r.tag_format??e.tag_format},OO=(e,t)=>{if(!U(e))throw C(`checkout for '${t}' is missing — run: refs sync ${t}`)},kO=async(e,t)=>{let n=B(e.env),r=await H(n),i=LE(r,t.query),a=EO(r,i),o=DO(a,i,t.opts.packageName),s=V(n,i);OO(s,i);let c=await Ul(e.runner,s,o,t.version);return{key:i,ref_path:`refs/tags/${c}`,tag:c,version:t.version}},AO=e=>[`${e.key}@${e.version} -> ${e.tag}`],jO=e=>{let t={};return e.package!==void 0&&(t.packageName=e.package),t},MO=[TE,OE,fD,kD,RD,TO,(e,t)=>{e.command(`tag`).description(`Resolve a version to its git tag, via the ref's (or a package's) tag_format.`).argument(`<ref>`,`full ref key or a unique suffix, e.g. next.js`).argument(`<version>`,`version to resolve, e.g. 15.3.0`).option(`--package <name>`,`resolve against this package's tag_format instead of the ref's`).action((e,n,r,i)=>{let a=i.optsWithGlobals(),o={json:a.json===!0,verbose:a.verbose===!0};return $(t,o,async()=>{let i=await kO(t,{opts:jO(r),query:e,version:n});Q(t,o,AO(i),i)})()})}],NO=e=>e.description===void 0?{path:e.path}:{description:e.description,path:e.path},PO=(e,t,n)=>e.length>0?Object.fromEntries(e.map(e=>[e.name,NO(e)])):n===void 0?{}:{[n]:{path:t??`.`}},FO=(e,t)=>{let n=e.description??t;return e.tag_format===void 0?{description:n,path:e.path}:{description:n,path:e.path,tag_format:e.tag_format}},IO=(e,t)=>{let n=Object.entries(e);if(n.length!==0)return Object.fromEntries(n.map(([e,n])=>[e,FO(n,t)]))},LO=e=>{if(Object.keys(e).length!==0)return e},RO=e=>{if(e===null)throw T(`tag_format_candidate must be set to a valid tag format (containing '{version}') before finalizing — edit the proposal and provide one, or add the ref manually`);return e},zO=e=>e.packages===void 0?{default_branch:e.default_branch,description:e.description,tag_format:e.tag_format,url:e.url}:{default_branch:e.default_branch,description:e.description,packages:e.packages,tag_format:e.tag_format,url:e.url},BO=[],VO=e=>e===void 0?[...BO]:[e],HO=async(e,t,n)=>{let r=await xl(e,t),i=Vl(await Ol(e,t));return{defaultBranch:r,packages:PO(await tT(t),n.npmDirectory,n.npmPkgName),tagFormatCandidate:i}},UO=(e,t)=>G(t.home,zE(t.resolved.key),async()=>{let n=await ZD(e.runner,{allowFileUrls:BE(e.env),cloneUrl:t.resolved.cloneUrl,dest:t.dest,home:t.home,hooksDir:t.home.hooksDir,mode:t.cloneMode}),r={fields:await HO(e.runner,t.dest,t.resolved)};return n.effectiveMode!==void 0&&(r.effectiveMode=n.effectiveMode),n.warning!==void 0&&(r.warning=n.warning),r}),WO=e=>{let t={default_branch:e.cloneResult.fields.defaultBranch,description:``,key:e.resolved.key,packages:e.cloneResult.fields.packages,tag_format_candidate:e.cloneResult.fields.tagFormatCandidate,url:e.resolved.cloneUrl},n={dest:e.dest,proposal:t};return e.cloneResult.effectiveMode!==void 0&&(n.effectiveCloneMode=e.cloneResult.effectiveMode),e.cloneResult.warning!==void 0&&(n.warning=e.cloneResult.warning),n},GO=async(e,t)=>{let n=B(e.env),r=await H(n),i=WE(await UE(e,t),r.settings);KE(r,i.key),await QE(n,i.key);let a=V(n,i.key),o=jw(`clone_mode`,void 0,r.settings),s=await UO(e,{cloneMode:o,dest:a,home:n,resolved:i});return WO({cloneResult:s,dest:a,resolved:i})},KO=(e,t,n)=>G(e,`home`,async()=>{KE(await H(e),t);let r=await Z(e),i=r.refs[t],a=n??i?.effective_clone_mode,o={...i,pending_proposal_at:new Date().toISOString()};a!==void 0&&(o.effective_clone_mode=a),r.refs[t]=o,await Pw(e,r)}),qO=(e,t)=>{let n=tc.safeParse(e);if(!n.success)throw T(k(n.error));let r=Aw.safeParse(t);if(!r.success)throw T(k(r.error));return{config:n.data,state:r.data}},JO=async(e,t)=>{let n=await H(e.home);KE(n,e.ref.key);let r=zO(e.ref);n.refs[e.ref.key]=r;let i=await Z(e.home);return i.refs[e.ref.key]={effective_clone_mode:e.effectiveCloneMode??i.refs[e.ref.key]?.effective_clone_mode??jw(`clone_mode`,void 0,n.settings),head_sha:t,last_fetched_at:new Date().toISOString()},{...qO(n,i),entry:r}},YO=async(e,t)=>{let n=BE(e.env),r=await G(t.home,zE(t.ref.key),()=>(Hc(t.home,t.dest),eO(e.runner,{allowFileUrls:n,dest:t.dest,expectedUrl:t.ref.url,hooksDir:t.home.hooksDir,key:t.ref.key})));return G(t.home,`home`,async()=>{let{config:e,entry:n,state:i}=await JO(t,r);return await Pw(t.home,i),await Xc(t.home,e),{entry:n,key:t.ref.key}})},XO=(e,t)=>t===`-`?e.readStdin():s(t,`utf8`),ZO=e=>e instanceof Error?e.message:String(e),QO=e=>{try{return JSON.parse(e)}catch(e){throw T(`invalid JSON in proposal: ${ZO(e)}`)}},$O=e=>{let t=Ow.safeParse(e);if(!t.success)throw T(k(t.error));return t.data},ek=async(e,t)=>{let n=await XO(e,t);return $O(QO(n))},tk=(e,t)=>[`refs add: dry-run proposal ready for '${e}' (checkout: ${t})`,`next: review the proposal, then run refs add --proposal <file> to finalize`],nk=async(e,t)=>{let n=await GO(e,t);await KO(B(e.env),n.proposal.key,n.effectiveCloneMode);let r=VO(n.warning);return{data:n.proposal,human:tk(n.proposal.key,n.dest),warnings:r}},rk=e=>[`refs add: '${e}' added to config`],ik=e=>{let t={default_branch:e.default_branch,description:e.description,key:e.key,tag_format:RO(e.tag_format_candidate),url:e.url},n=LO(e.packages);return n!==void 0&&(t.packages=n),t},ak=async(e,t)=>{let n=await ek(e,t),r=B(e.env),i=V(r,n.key);if(!U(i))throw C(`no checkout found at ${i} — run: refs add <source> --dry-run first`);let{entry:a,key:o}=await YO(e,{dest:i,home:r,ref:ik(n)});return{data:{entry:a,key:o},human:rk(o),warnings:[]}},ok=(e,t)=>{let n={default_branch:e.proposal.default_branch,description:t,key:e.proposal.key,tag_format:RO(e.proposal.tag_format_candidate),url:e.proposal.url},r=IO(e.proposal.packages,t);return r!==void 0&&(n.packages=r),n},sk=async(e,t,n)=>{let r=await GO(e,t),i=B(e.env),a=ok(r,n),o={dest:r.dest,home:i,ref:a};r.effectiveCloneMode!==void 0&&(o.effectiveCloneMode=r.effectiveCloneMode);let{entry:s,key:c}=await YO(e,o),l=VO(r.warning);return{data:{entry:s,key:c},human:rk(c),warnings:l}},ck=e=>{let t=[e.dryRun,e.proposal!==void 0,e.description!==void 0].filter(Boolean).length;if(t>1)throw w(`refs add: use only one of --dry-run, --proposal, or --description`);if(t===0)throw w(`refs add needs --dry-run, --proposal, or --description`)},lk=e=>{if(e===void 0||e===``)throw w(`refs add requires <source> (a git url or npm:<package>)`);return e},uk=(e,t)=>(ck(t),t.proposal===void 0?t.description===void 0?nk(e,lk(t.source)):sk(e,lk(t.source),t.description):ak(e,t.proposal)),dk=(e,t)=>{let n={dryRun:t.dryRun===!0};return e!==void 0&&(n.source=e),t.proposal!==void 0&&(n.proposal=t.proposal),t.description!==void 0&&(n.description=t.description),n},fk=(e,t)=>{e.command(`add`).description(`Add a git reference in two phases: propose (--dry-run), then finalize (--proposal).`).argument(`[source]`,`git url or npm:<package> (omit when finalizing with --proposal)`).option(`--dry-run`,`resolve and clone the source, writing a reviewable proposal`).option(`--proposal <file>`,`finalize from a completed proposal JSON file (- for stdin)`).option(`--description <text>`,`one-shot: dry-run then finalize immediately with this description`).action((e,n,r)=>{let i=r.optsWithGlobals(),a={json:i.json===!0,verbose:i.verbose===!0};return $(t,a,async()=>{let r=await uk(t,dk(e,n));Q(t,a,r.human,r.data,r.warnings)})()})},pk=e=>e===void 0?null:e,mk=()=>Object.keys($s.shape).toSorted().join(`, `),hk=e=>`unknown package field '${e}' — valid fields: ${mk()}`,gk=e=>Object.hasOwn($s.shape,e),_k=(e,t,n)=>{let r=e.packages?.[n];if(r===void 0)throw C(`no package '${n}' registered on ref '${t}'`);return r},vk=(e,t,n)=>{if(!gk(t))throw w(hk(t));let r=e[t],i=$s.safeParse({...e,[t]:n});if(!i.success)throw T(k(i.error));return{field:t,newValue:i.data[t],oldValue:r,updated:i.data}},yk=async e=>{let t=_k(e.entry,e.key,e.packageName),n=vk(t,e.field,e.value),r={...e.entry,packages:{...e.entry.packages,[e.packageName]:n.updated}};return await Xc(e.home,{...e.config,refs:{...e.config.refs,[e.key]:r}}),{field:n.field,key:e.key,new:pk(n.newValue),old:pk(n.oldValue)}},bk=`packages`,xk=(e,t)=>{let n=e.refs[t];if(n===void 0)throw Error(`internal: matched ref key '${t}' is missing from config.refs`);return n},Sk=()=>Object.keys(ec.shape).filter(e=>e!==bk).toSorted().join(`, `),Ck=e=>`unknown ref field '${e}' — valid fields: ${Sk()}`,wk=e=>Object.hasOwn(ec.shape,e),Tk=(e,t,n)=>`failed to rewrite git remote at ${e} to '${W(t)}': ${n.trim()}`,Ek=async(e,t)=>{if(Hc(t.home,t.dest),!U(t.dest))return;let n=await e.runner.run(`git`,[`remote`,`set-url`,`origin`,t.cloneUrl],{cwd:t.dest});if(n.exitCode!==0)throw T(Tk(t.dest,t.cloneUrl,n.stderr))},Dk=async(e,t)=>{let n=uu(t.value,{allowFileUrls:BE(e.env)});if(n.key!==t.key)throw T(`new url derives a different key — remove and re-add instead`);let r=V(t.home,t.key);return await Ek(e,{cloneUrl:n.cloneUrl,dest:r,home:t.home}),{...t.entry,url:n.cloneUrl}},Ok=(e,t,n)=>{let r={...e,[t]:n},i=ec.safeParse(r);if(!i.success)throw T(k(i.error));return i.data},kk=(e,t)=>t.field===`url`?Dk(e,{entry:t.entry,home:t.home,key:t.key,value:t.value}):Promise.resolve(Ok(t.entry,t.field,t.value)),Ak=async(e,t)=>{let{field:n}=t;if(n===bk)throw w(`use --package <name> <field> <value>`);if(!wk(n))throw w(Ck(n));let r=t.entry[n],i=await kk(e,{entry:t.entry,field:n,home:t.home,key:t.key,value:t.value});return{new:i[n],old:r,updated:i}},jk=(e,t)=>{let n=B(e.env),{field:r,opts:i,query:a,value:o}=t;return G(n,`home`,async()=>{let t=await H(n),s=LE(t,a),c=xk(t,s);if(i.packageName!==void 0)return yk({config:t,entry:c,field:r,home:n,key:s,packageName:i.packageName,value:o});let l=await Ak(e,{entry:c,field:r,home:n,key:s,value:o});return await Xc(n,{...t,refs:{...t.refs,[s]:l.updated}}),{field:r,key:s,new:pk(l.new),old:pk(l.old)}})},Mk=`settings`,Nk=[],Pk=()=>Object.keys(Zs.shape).toSorted().join(`, `),Fk=e=>`unknown setting '${e}' — valid settings: ${Pk()}`,Ik=e=>Object.hasOwn(Zs.shape,e),Lk=e=>`note: 'settings' addressed the global settings, not ${e} — use the full ref key to edit that ref`,Rk=e=>{try{let t=LE(e,Mk);return[Lk(`ref '${t}'`)]}catch(e){if(e instanceof at&&e.code===`usage`)return[Lk("one of several matching refs — see `refs list`")];if(e instanceof at&&e.code===`not_found`)return Nk;throw e}},zk=e=>({data:{field:e.key,key:Mk,new:pk(e.parsed[e.key]),old:pk(e.old)},warnings:Rk(e.config)}),Bk=(e,t)=>{let n=B(e.env);return G(n,`home`,async()=>{let e=await H(n);if(!Ik(t.key))throw w(Fk(t.key));let r=e.settings[t.key],i={...e.settings,[t.key]:t.value},a=Zs.safeParse(i);if(!a.success)throw T(k(a.error));return await Xc(n,{...e,settings:a.data}),zk({config:e,key:t.key,old:r,parsed:a.data})})},Vk=[],Hk=e=>{let t={};return e.package!==void 0&&(t.packageName=e.package),t},Uk=async(e,t)=>{if(t.first===`settings`){if(t.opts.packageName!==void 0)throw w(`--package is not valid with 'refs edit settings ...' — it only applies to ref/package edits`);return Bk(e,{key:t.second,value:t.value})}return{data:await jk(e,{field:t.second,opts:t.opts,query:t.first,value:t.value}),warnings:Vk}},Wk=e=>e==null?`(unset)`:String(e),Gk=e=>[`${e.key}: ${e.field} '${Wk(e.old)}' -> '${Wk(e.new)}'`],Kk=(e,t)=>{e.command(`edit`).description(`Edit one field: 'refs edit settings <key> <value>' for a global setting, or 'refs edit <ref> <field> <value> [--package <name>]' for a ref or package field.`).argument(`<ref-or-settings>`,`a ref key/unique suffix, or the literal 'settings'`).argument(`<field-or-key>`,`field to edit (or, in settings mode, the setting key)`).argument(`<value>`,`the new value`).option(`--package <name>`,`edit this package's field instead of a top-level ref field`).action((e,n,r,i,a)=>{let o=a.optsWithGlobals(),s={json:o.json===!0,verbose:o.verbose===!0};return $(t,s,async()=>{let{data:a,warnings:o}=await Uk(t,{first:e,opts:Hk(i),second:n,value:r});Q(t,s,Gk(a),a,o)})()})},qk=`Install the agent skill: npx skills add kaisers-io/refs (private phase: npx skills add <path-to-this-repo> --skill refs)`,Jk=async e=>{await o(e.root,{recursive:!0}),await o(e.sourcesDir,{recursive:!0}),await o(e.locksDir,{recursive:!0}),await o(e.hooksDir,{recursive:!0})},Yk=async e=>{let t=B(e.env);return await Jk(t),{config:await G(t,`home`,async()=>{let e=await sl(t,xT);return await jl(t),e}),home:t.root,skill_hint:qk}},Xk=[(e,t)=>{e.command(`init`).description(`Seed or migrate the refs home directory, its config, and the git hooks guard.`).action((e,n)=>{let r=n.optsWithGlobals(),i={json:r.json===!0,verbose:r.verbose===!0};return $(t,i,async()=>{let e=await Yk(t);Q(t,i,[`refs home: ${e.home} (${e.config})`,qk],e)})()})},fk,Kk,RE,...MO],Zk=(e,t)=>{for(let n of Xk)n(e,t)},Qk=[``,`Examples:`,` $ refs list --json`,` $ refs sync --stale-only --json`,` $ refs resolve next/navigation --json`,``,`Every command accepts --json for structured output and --verbose for stack traces on error.`].join(`
404
- `),$k=new Set([`commander.help`,`commander.helpDisplayed`,`commander.version`]),eA=`--json`,tA=`--verbose`,nA=/\n$/u,rA=/^error: /u,iA=e=>e.replace(rA,``),aA=(e,t)=>{for(let n of e){if(n===`--`)return!1;if(n===t)return!0}return!1},oA=e=>aA(e,eA),sA=e=>aA(e,tA),cA=(e,t,n)=>n&&t!==void 0?`${e}\n${t}`:e,lA=e=>{let t=new hT().name(`refs`).description(`Manage git-based reference checkouts shared across a workspace.`).version(xT).option(eA,`emit machine-readable JSON on stdout instead of human-readable text`).option(tA,`include stack traces in error output`).allowExcessArguments(!1).exitOverride().configureOutput({outputError:()=>{},writeErr:t=>{e.errLine(t.replace(nA,``))},writeOut:t=>{e.out(t.replace(nA,``))}});return t.addHelpText(`after`,Qk),Zk(t,e),t},uA=()=>{process.exitCode=it.OK},dA=(e,t,n)=>{bT(e,t,{code:`usage`,message:cA(iA(n.message),n.stack,t.verbose)}),process.exitCode=it.USAGE},fA=(e,t,n)=>{if($k.has(n.code)){uA();return}dA(e,t,n)},pA=(e,t,n)=>{let r=ct(n,{verbose:t.verbose});bT(e,t,r),process.exitCode=r.exitCode},mA=async(e,t,n)=>{let r={json:oA(n),verbose:sA(n)};try{await t.parseAsync(n)}catch(t){if(t instanceof iT){fA(e,r,t);return}pA(e,r,t)}},hA=(e,t)=>mA(e,lA(e),t);import.meta.main&&await hA(rT(),process.argv);export{lA as buildProgram,Q as emit,bT as emitError,rT as realContext,Zk as registerCommands,hA as run,mA as runProgram,$ as wrapAction};
403
+ Expecting one of '${n.join(`', '`)}'`);let r=`${e}Help`;return this.on(r,e=>{let n;n=typeof t==`function`?t({error:e.error,command:e.command}):t,n&&e.write(`${n}\n`)}),this}_outputHelpIfRequested(e){let t=this._getHelpOption();t&&e.find(e=>t.is(e))&&(this.outputHelp(),this._exit(0,`commander.helpDisplayed`,`(outputHelp)`))}};function gT(e){return e.map(e=>{if(!e.startsWith(`--inspect`))return e;let t,n=`127.0.0.1`,r=`9229`,i;return(i=e.match(/^(--inspect(-brk)?)$/))===null?(i=e.match(/^(--inspect(-brk|-port)?)=([^:]+)$/))===null?(i=e.match(/^(--inspect(-brk|-port)?)=([^:]+):(\d+)$/))!==null&&(t=i[1],n=i[3],r=i[4]):(t=i[1],/^\d+$/.test(i[3])?r=i[3]:n=i[3]):t=i[1],t&&r!==`0`?`${t}=${n}:${parseInt(r)+1}`:e})}function _T(){if(b.env.NO_COLOR||b.env.FORCE_COLOR===`0`||b.env.FORCE_COLOR===`false`)return!1;if(b.env.FORCE_COLOR||b.env.CLICOLOR_FORCE!==void 0)return!0}new hT;const vT=[],yT=e=>Array.isArray(e)?e:[e],Q=(e,t,n,r,i)=>{if(t.json){let t={data:r,ok:!0,warnings:i??vT};e.out(JSON.stringify(t));return}for(let t of yT(n))e.out(t);for(let t of i??vT)e.errLine(`refs: warning: ${t}`)},bT=(e,t,n)=>{if(t.json){let t={error:{code:n.code,message:n.message},ok:!1};e.out(JSON.stringify(t));return}e.errLine(`refs: ${n.message}`)},xT=(e,t)=>{e.errLine(`refs: ${t}`)},$=(e,t,n)=>async()=>{try{await n()}catch(n){let r=ct(n,{verbose:t.verbose});bT(e,t,r),process.exitCode=r.exitCode}};var ST=`0.1.2`;const CT=async e=>{let t=await e.runner.run(`git`,[`--version`]);return t.exitCode===0?{detail:t.stdout.trim(),name:`git`,status:`ok`}:{detail:t.stderr.trim()||`git --version exited with code ${t.exitCode}`,name:`git`,status:`fail`}},wT=/^v(?<major>\d+)\.(?<minor>\d+)/u,TT=e=>{let t=wT.exec(e),n=t?.groups?.major,r=t?.groups?.minor;if(!(n===void 0||r===void 0))return{major:Number(n),minor:Number(r)}},ET=e=>e===void 0?!1:e.major===24&&e.minor>=12,DT=e=>{let{nodeVersion:t}=e;return ET(TT(t))?{detail:t,name:`node`,status:`ok`}:{detail:`${t} does not satisfy the required range >=24.12 <25`,name:`node`,status:`fail`}},OT=e=>e instanceof Error?e.message:String(e),kT=()=>tc.parse({meta:{cli_version:`0.0.0`,schema_version:1},refs:{},settings:{}}),AT=async e=>{try{return{config:await H(e)}}catch(e){return{config:kT(),errorMessage:OT(e)}}},jT=e=>e===void 0?{detail:`config is present and matches the current schema`,name:`config`,status:`ok`}:{detail:e,name:`config`,status:`fail`},MT=[`.claude`,`skills`,`refs`,`SKILL.md`],NT=[`.codex`,`skills`,`refs`,`SKILL.md`],PT=e=>e===void 0?[]:[y(e,...MT),y(e,...NT)],FT=async e=>{try{return await t(e),!0}catch{return!1}},IT=async e=>{let t=PT(e.env.HOME);return(await Promise.all(t.map(e=>FT(e)))).some(Boolean)?{detail:`the refs skill is installed`,name:`skill`,status:`ok`}:{detail:`refs skill not found — install it: npx skills add kaisers-io/refs`,name:`skill`,status:`warn`}},LT=(e,t)=>Object.keys(t.refs).map(t=>({dest:V(e,Us.parse(t)),key:t})).filter(e=>U(e.dest)),RT=[`pre-commit`,`pre-push`],zT=async(e,n)=>{try{return await t(y(e.hooksDir,n),r.X_OK),!0}catch{return!1}},BT=async e=>{let t=await Promise.all(RT.map(t=>zT(e,t)));return RT.filter((e,n)=>!t[n])},VT=async(e,t,n)=>{let r=await e.runner.run(`git`,[`config`,`--local`,`--get`,`core.hooksPath`],{cwd:n});return r.exitCode===0&&r.stdout.trim()===t.hooksDir},HT=e=>e.missingHooks.length>0?{detail:`${e.missingHooks.map(e=>`hooks/${e}`).join(`, `)} missing or not executable — run: refs init`,name:`hooks-guard`,status:`fail`}:e.badKeys.length>0?{detail:`core.hooksPath not set for: ${e.badKeys.join(`, `)} — run: refs init`,name:`hooks-guard`,status:`fail`}:{detail:`${RT.map(e=>`hooks/${e}`).join(`, `)} present; ${e.checkoutCount} checkout(s) guarded`,name:`hooks-guard`,status:`ok`},UT=async(e,t,n)=>{let r=LT(t,n),[i,a]=await Promise.all([BT(t),Promise.all(r.map(n=>VT(e,t,n.dest)))]),o=r.filter((e,t)=>!a[t]).map(e=>e.key);return HT({badKeys:o,checkoutCount:r.length,missingHooks:i})},WT=async(e,t)=>{let n=await e.runner.run(`git`,[`status`,`--porcelain`],{cwd:t.dest});return n.exitCode===0?{broken:!1,detail:``,dirty:n.stdout.trim()!==``,key:t.key}:{broken:!0,detail:n.stderr.trim(),dirty:!1,key:t.key}},GT=e=>{let t=e.filter(e=>e.broken);if(t.length>0)return{detail:t.map(e=>`${e.key}: git status failed — ${e.detail}`).join(`; `),name:`dirty-checkouts`,status:`fail`};let n=e.filter(e=>e.dirty).map(e=>e.key);return n.length===0?{detail:`no local changes in any checkout`,name:`dirty-checkouts`,status:`ok`}:{detail:`local changes will be discarded on next sync: ${n.join(`, `)}`,name:`dirty-checkouts`,status:`warn`}},KT=async(e,t,n)=>{let r=LT(t,n),i=await Promise.all(r.map(t=>WT(e,t)));return GT(i)},qT=async e=>{try{return await Nw(e)}catch{return kw.parse({})}},JT=async e=>{try{return(await c(e,{withFileTypes:!0})).filter(e=>e.isDirectory()).map(e=>e.name)}catch(e){if(Lc(e))return[];throw e}},YT=async(e,t)=>{if(U(e))return[[...t]];let n=await JT(e);return(await Promise.all(n.map(n=>YT(y(e,n),[...t,n])))).flat()},XT=(e,t,n)=>{let r=e.refs[t]?.pending_proposal_at;return r===void 0?!1:n-Date.parse(r)<864e5},ZT=(e,t,n)=>XT(t,e.key,n)?`${e.key}: pending add`:`${e.key}: orphan — remove with: rm -rf ${e.dest}`,QT=(e,t)=>({dest:y(e.sourcesDir,...t),key:t.join(`/`)}),$T=async(e,t,n)=>{let r=(await YT(e.sourcesDir,[])).map(t=>QT(e,t)).filter(e=>!Object.hasOwn(t.refs,e.key));if(r.length===0)return{detail:`no orphaned checkouts under sources/`,name:`orphans`,status:`ok`};let i=Date.now();return{detail:r.map(e=>ZT(e,n,i)).join(`; `),name:`orphans`,status:`warn`}},eE=/^(?<user>[^/\s@]+)@(?<host>[^:/\s]+):/u,tE=e=>e===``?{}:{user:e},nE=e=>e===``?{}:{port:e},rE=e=>{try{let t=new URL(e);return t.protocol===`ssh:`?{host:t.hostname,...tE(t.username),...nE(t.port)}:void 0}catch{return}},iE=e=>{let t=eE.exec(e),n=t?.groups?.host;return n===void 0?rE(e):{host:n,user:t?.groups?.user??`git`}},aE=e=>e.port===void 0?e.host:`${e.host}:${e.port}`,oE=e=>e.user===void 0?aE(e):`${e.user}@${aE(e)}`,sE=e=>{let t=Object.values(e.refs).map(e=>iE(e.url)).filter(e=>e!==void 0),n=new Map;for(let e of t)n.set(oE(e),e);return[...n.values()].toSorted((e,t)=>oE(e).localeCompare(oE(t)))},cE=/Permission denied/u,lE=[/Could not resolve hostname/u,/Connection refused/u,/Host key verification failed/u,/timed out/u],uE=e=>e.user===void 0?e.host:`${e.user}@${e.host}`,dE=e=>{let t=[`-o`,`ConnectTimeout=5`,`-o`,`BatchMode=yes`],n=uE(e);return e.port===void 0?[...t,`-T`,n]:[...t,`-p`,e.port,`-T`,n]},fE=async(e,t,n)=>{let r=oE(t),i=await e.runner.run(`ssh`,dE(t),{timeoutMs:n});return i.timedOut===!0?{host:r,outcome:`timeout`}:cE.test(i.stderr)?{host:r,outcome:`denied`}:lE.some(e=>e.test(i.stderr))?{detail:i.stderr.trim(),host:r,outcome:`connection-warn`}:{host:r,outcome:`ok`}},pE=(e,t)=>{let n=e.filter(e=>e.outcome===`timeout`).map(e=>e.host);if(n.length!==0)return{detail:`ssh probe timed out after ${t/1e3}s: ${n.join(`, `)}`,name:`ssh-auth`,status:`fail`}},mE=e=>{let t=e.filter(e=>e.outcome===`denied`).map(e=>e.host);if(t.length!==0)return{detail:`ssh permission denied for: ${t.join(`, `)}`,name:`ssh-auth`,status:`fail`}},hE=e=>{let t=e.filter(e=>e.outcome===`connection-warn`);if(t.length!==0)return{detail:`ssh connection issue, treated as warn: ${t.map(e=>`${e.host} (${e.detail??``})`).join(`; `)}`,name:`ssh-auth`,status:`warn`}},gE=e=>({detail:`ssh auth ok for: ${e.map(e=>e.host).join(`, `)}`,name:`ssh-auth`,status:`ok`}),_E=(e,t)=>pE(e,t)??mE(e)??hE(e)??gE(e),vE=async(e,t,n)=>{let r=sE(t);if(r.length===0)return;let i=n?.timeoutMs??1e4,a=await Promise.all(r.map(t=>fE(e,t,i)));return _E(a,i)},yE=async e=>{try{return await e.run()}catch(t){return{detail:`check crashed: ${OT(t)}`,name:e.name,status:`fail`}}},bE=async e=>{let[t,...n]=e;if(t===void 0)return[];let r=await yE(t),i=await bE(n);return r===void 0?i:[r,...i]},xE=e=>{let{configLoad:t,ctx:n,home:r,state:i}=e;return[{name:`git`,run:()=>CT(n)},{name:`node`,run:()=>Promise.resolve(DT(n))},{name:`config`,run:()=>Promise.resolve(jT(t.errorMessage))},{name:`hooks-guard`,run:()=>UT(n,r,t.config)},{name:`dirty-checkouts`,run:()=>KT(n,r,t.config)},{name:`orphans`,run:()=>$T(r,t.config,i)},{name:`skill`,run:()=>IT(n)},{name:`ssh-auth`,run:()=>vE(n,t.config)}]},SE=async e=>{let t=B(e.env),n=await AT(t),r=await qT(t);return bE(xE({configLoad:n,ctx:e,home:t,state:r}))},CE={fail:`FAIL`,ok:`OK`,warn:`WARN`},wE=e=>e.map(e=>`[${CE[e.status]}] ${e.name}: ${e.detail}`),TE=e=>e.some(e=>e.status===`fail`),EE=(e,t)=>{e.command(`doctor`).description(`Run environment/integrity checks (git, node, config, hooks, checkouts, ssh).`).action((e,n)=>{let r=n.optsWithGlobals(),i={json:r.json===!0,verbose:r.verbose===!0};return $(t,i,async()=>{let e=await SE(t);Q(t,i,wE(e),{checks:e}),TE(e)&&(process.exitCode=it.UNEXPECTED)})()})},DE=async e=>{let t=B(e.env),n=await K(t,`home`,()=>sl(t,ST));return n===`migrated`?{backup:zc(t),result:n}:{backup:null,result:n}},OE=e=>e.result===`migrated`&&e.backup!==null?`config migrated (backup: ${g(e.backup)})`:e.result===`seeded`?`config seeded`:`config up to date`,kE=(e,t)=>{e.command(`migrate`).description(`Migrate the refs config to the current schema, seeding it if absent.`).action((e,n)=>{let r=n.optsWithGlobals(),i={json:r.json===!0,verbose:r.verbose===!0};return $(t,i,async()=>{let e=await DE(t);Q(t,i,OE(e),e)})()})},AE=(e,t,n)=>e===void 0?!0:n-Date.parse(e)>t,jE=(e,t,n)=>{let r=e.state.refs[t],i=Gs(Aw(`sync_ttl`,n,e.settings));return{clone_mode:Aw(`clone_mode`,n,e.settings),description:n.description,key:t,missing:!U(V(e.home,Us.parse(t))),packages:Object.keys(n.packages??{}).toSorted(),stale:AE(r?.last_fetched_at,i,e.now)}},ME=e=>{let t={home:e.home,now:e.now,settings:e.config.settings,state:e.state};return Object.entries(e.config.refs).map(([e,n])=>jE(t,e,n)).toSorted((e,t)=>e.key.localeCompare(t.key))},NE=async e=>{let t=B(e.env),n=await H(t),r=await Nw(t);return ME({config:n,home:t,now:Date.now(),state:r})},PE=e=>{let t=[];return e.stale&&t.push(`[stale]`),e.missing&&t.push(`[missing]`),t.length===0?``:` ${t.join(` `)}`},FE=e=>e.length===0?[`no refs configured — run: refs add <source>`]:e.map(e=>`${e.key} ${e.description}${PE(e)}`),IE=e=>e.split(`/`),LE=(e,t)=>{let n=IE(e);if(t.length>n.length)return!1;let r=n.length-t.length;return t.every((e,t)=>e===n[r+t])},RE=(e,t)=>{if(Object.hasOwn(e.refs,t))return Us.parse(t);let n=IE(t),r=Object.keys(e.refs).filter(e=>LE(e,n)).toSorted(),[i]=r;if(i===void 0)throw C(`no ref matches '${t}'`);if(r.length>1)throw w(`'${t}' matches more than one ref: ${r.join(`, `)}`);return Us.parse(i)},zE=(e,t)=>{e.command(`list`).description(`List configured refs with their staleness/missing checkout status.`).action((e,n)=>{let r=n.optsWithGlobals(),i={json:r.json===!0,verbose:r.verbose===!0};return $(t,i,async()=>{let e=await NE(t);Q(t,i,FE(e),e)})()})},BE=e=>`ref:${e.replaceAll(`/`,`_`)}`,VE=e=>e.REFS_ALLOW_FILE_URLS===`1`,HE=(e,t)=>{let n=lu(t,{allowFileUrls:VE(e.env)});return{cloneUrl:n.cloneUrl,key:n.key}},UE=async(e,t)=>{if(t===``)throw w(`refs add npm: requires a package name, e.g. npm:left-pad`);xT(e,`resolving npm package '${t}'…`);let n=await dd(e.fetcher,t),r={cloneUrl:n.cloneUrl,key:n.key,npmPkgName:t};return n.directory!==void 0&&(r.npmDirectory=n.directory),r},WE=(e,t)=>t.startsWith(`npm:`)?UE(e,t.slice(4)):Promise.resolve(HE(e,t)),GE=(e,t)=>{if(e.npmPkgName===void 0)return e;let n=Aw(`git_transport`,void 0,t);return{...e,cloneUrl:xu(e.cloneUrl,n)}},KE=e=>`ref '${e}' already exists — use refs edit or refs remove`,qE=(e,t)=>{if(e.refs[t]!==void 0)throw ot(KE(t))},JE=async e=>{try{return await c(e,{withFileTypes:!0})}catch(e){if(Lc(e))return;throw e}},YE=e=>e.filter(e=>e.isDirectory()).map(e=>e.name),XE=async(e,t)=>{let n=await JE(e);if(n===void 0)return{kind:`stop`};let r=YE(n);if(r.includes(t))return{kind:`continue`,nextDir:y(e,t)};let i=r.find(e=>e.toLowerCase()===t.toLowerCase());return i===void 0?{kind:`stop`}:{kind:`collision`,name:i}},ZE=async(e,t,n)=>{let[r,...i]=t;if(r===void 0)return;let a=await XE(e,r);if(a.kind!==`stop`)return a.kind===`collision`?[...n,a.name].join(`/`):ZE(a.nextDir,i,[...n,r])},QE=[],$E=async(e,t)=>{let n=await ZE(e.sourcesDir,t.split(`/`),QE);if(n!==void 0)throw ot(`checkout path for '${t}' collides case-insensitively with existing '${n}'`)},eD=[],tD=e=>e===void 0?eD:[e],nD=async e=>{try{return await a(e),!0}catch(e){if(Lc(e))return!1;throw e}},rD=async e=>{try{return await c(e)}catch(e){if(Lc(e))return;throw e}},iD=async e=>{try{return(await a(e)).isDirectory()}catch(e){if(Lc(e))return;throw e}},aD=async e=>{let t=await rD(e);if(t===void 0)return!0;if(t.length!==0)return!1;try{await f(e)}catch(e){if(!Lc(e))throw e}return!0},oD=async e=>{let t=await iD(e);return t===void 0?!0:t?aD(e):!1},sD=async(e,t)=>{t!==e.sourcesDir&&await oD(t)&&await sD(e,_(t))},cD=async(e,t)=>await nD(t)?(Hc(e,t),await d(t,{force:!0,recursive:!0}),await sD(e,_(t)),{removedCheckout:!0}):{removedCheckout:!1,warning:`checkout was already missing`},lD=(e,t)=>Object.fromEntries(Object.entries(e).filter(([e])=>e!==t)),uD=async(e,t)=>{let n=await H(e);await Xc(e,{...n,refs:lD(n.refs,t)});let r=await Nw(e);await Pw(e,{...r,refs:lD(r.refs,t)})},dD=async(e,t)=>{let n=B(e.env),r=RE(await H(n),t),i=V(n,r),{removedCheckout:a,warning:o}=await K(n,BE(r),()=>cD(n,i));return await K(n,`home`,()=>uD(n,r)),{data:{key:r,removed_checkout:a},warnings:tD(o)}},fD=e=>e.removed_checkout?[`removed ${e.key} (checkout deleted)`]:[`removed ${e.key} (checkout was already missing)`],pD=(e,t)=>{e.command(`remove`).description(`Remove a configured ref: its config/state entry AND its checkout directory.`).argument(`<ref>`,`full ref key or a unique suffix, e.g. next.js`).action((e,n,r)=>{let i=r.optsWithGlobals(),a={json:i.json===!0,verbose:i.verbose===!0};return $(t,a,async()=>{let{data:n,warnings:r}=await dD(t,e);Q(t,a,fD(n),n,r)})()})},mD=e=>`no ref matches '${e}' — run refs list, or add it: refs add <url>`,hD=/^[a-z][a-z0-9+.-]*:\/\//iu,gD=/^git@[^:/\s]+:[^\s]+$/u,_D=e=>hD.test(e)||gD.test(e),vD=(e,t)=>{try{return lu(e,t)}catch{if(_D(e))throw T(`query looks like a git url but is not a supported form — check the url (credentials are never accepted) or run: refs resolve <package|ref-suffix>`);return}},yD=(e,t,n)=>{let r=vD(t,n);if(r!==void 0){if(Object.hasOwn(e.refs,r.key))return{key:r.key};throw C(mD(t))}},bD=(e,t)=>{let n=[];for(let r of Object.keys(e.refs).toSorted()){let i=e.refs[r]?.packages?.[t];i!==void 0&&n.push({entry:i,key:Us.parse(r)})}return n},xD=(e,t)=>`package '${e}' is registered by more than one ref: ${t.join(`, `)} — use the full ref key`,SD=(e,t)=>{let n=bD(e,t),[r]=n;if(r!==void 0){if(n.length>1)throw w(xD(t,n.map(e=>e.key)));return r}},CD=(e,t)=>{let n=t.split(`/`);for(let t=n.length-1;t>=1;--t){let r=n.slice(0,t).join(`/`),i=SD(e,r);if(i!==void 0)return{...i,name:r}}},wD=(e,t)=>{try{return RE(e,t)}catch(e){throw e instanceof at&&e.code===`not_found`?C(mD(t)):e}},TD=(e,t,n)=>{let r=yD(e,t,n);if(r!==void 0)return r;let i=SD(e,t);if(i!==void 0)return{key:i.key,packageMatch:{...i,name:t}};let a=CD(e,t);return a===void 0?{key:wD(e,t)}:{key:a.key,packageMatch:a}},ED=(e,t)=>{let n=e.refs[t];if(n===void 0)throw Error(`internal: resolved ref key '${t}' is missing from config.refs`);return n},DD=(e,t)=>{if(e.packageMatch===void 0)return null;let{entry:n,name:r}=e.packageMatch;return{local_path:y(t,n.path),name:r,path:n.path}},OD=async(e,t)=>{let n=B(e.env),r=await H(n),i=TD(r,t,{allowFileUrls:VE(e.env)}),a=ED(r,i.key),o=await Nw(n),s=V(n,i.key),c=Gs(Aw(`sync_ttl`,a,r.settings));return{key:i.key,local_path:s,missing:!U(s),package:DD(i,s),stale:AE(o.refs[i.key]?.last_fetched_at,c,Date.now())}},kD=e=>{let t=[e.key,`local_path: ${e.local_path}`];return e.package!==null&&t.push(`package: ${e.package.name}`,`local_path: ${e.package.local_path}`),t},AD=(e,t)=>{e.command(`resolve`).description(`Resolve a git url, npm package name, import path, or ref-key suffix to its ref/package.`).argument(`<query>`,`git url, npm package name, import path, or unique ref-key suffix`).action((e,n,r)=>{let i=r.optsWithGlobals(),a={json:i.json===!0,verbose:i.verbose===!0};return $(t,a,async()=>{let n=await OD(t,e);Q(t,a,kD(n),n)})()})},jD={},MD=(e,t)=>{let n=e.refs[t];if(n===void 0)throw Error(`internal: matched ref key '${t}' is missing from config.refs`);return n},ND=e=>e instanceof Error?e.message:String(e),PD=async(e,t)=>{if(!U(t))return{tags:[]};try{return{tags:await Dl(e.runner,t,5)}}catch(e){return{tags:[],warning:`could not list tags: ${ND(e)}`}}},FD=[],ID=e=>e===void 0?FD:[e],LD=async(e,t)=>{let n=B(e.env),r=await H(n),i=RE(r,t),a=MD(r,i),o=await Nw(n),s=V(n,i),{tags:c,warning:l}=await PD(e,s);return{data:{...a,key:i,local_path:s,sample_tags:c,state:o.refs[i]??jD},warnings:ID(l)}},RD=e=>{let t=[`${e.key} ${e.description}`,`url: ${e.url}`,`local_path: ${e.local_path}`];return e.sample_tags.length>0&&t.push(`tags: ${e.sample_tags.join(`, `)}`),t},zD=(e,t)=>{e.command(`show`).description(`Show a configured ref: full entry, state, local path, and sample tags.`).argument(`<ref>`,`full ref key or a unique suffix, e.g. next.js`).action((e,n,r)=>{let i=r.optsWithGlobals(),a={json:i.json===!0,verbose:i.verbose===!0};return $(t,a,async()=>{let{data:n,warnings:r}=await LD(t,e);Q(t,a,RD(n),n,r)})()})},BD=(e,t)=>{let n={head_sha:t.headSha,last_fetched_at:new Date().toISOString()},r=t.effectiveCloneMode??e?.effective_clone_mode;return r!==void 0&&(n.effective_clone_mode=r),n},VD=async(e,t,n)=>{let r=await H(e),i=r.refs[t];i!==void 0&&(r.refs[t]={...i,default_branch:n},await Xc(e,r))},HD=(e,t,n)=>K(e,`home`,async()=>{n.branchRenamedTo!==void 0&&await VD(e,t,n.branchRenamedTo);let r=await Nw(e);r.refs[t]=BD(r.refs[t],n),await Pw(e,r)}),UD=async(e,t,n)=>{try{await K(e,`home`,async()=>{let r=await Nw(e);r.refs[t]={...r.refs[t],last_error:n},await Pw(e,r)})}catch{}},WD=e=>{let t=0,n=[];return{acquire:()=>{if(t<e)return t+=1,Promise.resolve();let{promise:r,resolve:i}=Promise.withResolvers();return n.push(()=>{t+=1,i()}),r},release:()=>{--t;let e=n.shift();e!==void 0&&e()}}},GD=async(e,t)=>{await e.acquire();try{return await t()}finally{e.release()}},KD=(e,t,n)=>`checkout at ${e} points at '${G(t)}' — expected '${G(n)}'; remove the checkout directory or run refs remove before retrying`,qD=e=>e.exitCode===0?e.stdout.trim():`(no origin remote)`,JD=(e,t)=>{try{return lu(e,{allowFileUrls:t}).key}catch{return}},YD=async(e,t)=>{let n=await e.run(`git`,[`remote`,`get-url`,`origin`],{cwd:t.dest}),r=qD(n),i=JD(t.expectedUrl,t.allowFileUrls),a=JD(r,t.allowFileUrls);if(!(i!==void 0&&a===i))throw ot(KD(t.dest,r,t.expectedUrl))},XD=e=>`checkout at ${e} exists but is not refs-managed — remove it (rm -rf ${e}) and retry`,ZD=async(e,t)=>{let n=await e.run(`git`,[`config`,`--local`,`core.hooksPath`],{cwd:t.dest});if(n.exitCode!==0||n.stdout.trim()!==t.hooksDir)throw ot(XD(t.dest))},QD=async(e,t)=>{await o(_(t.dest),{recursive:!0}),xT(e,`cloning ${G(t.cloneUrl)} into ${t.dest}…`);let n=await vl(e.runner,t);return n.warning===void 0?{effectiveMode:n.effectiveMode}:{effectiveMode:n.effectiveMode,warning:n.warning}},$D=async(e,t)=>(Hc(t.home,t.dest),U(t.dest)?(await YD(e.runner,{allowFileUrls:t.allowFileUrls,dest:t.dest,expectedUrl:t.cloneUrl}),await ZD(e.runner,{dest:t.dest,hooksDir:t.hooksDir}),{}):QD(e,t)),eO=(e,t)=>`checkout for '${e}' at ${t} is missing or corrupt (git rev-parse HEAD failed) — run: refs remove ${e}, then refs add <source> --dry-run again`,tO=(e,t,n)=>`checkout for '${e}' at ${t} has a HEAD sha refs cannot store yet (${n.length} hex chars, expected 40) — only SHA-1 repositories are supported for now; \`--object-format=sha256\` repositories are not yet supported`,nO=async(e,t)=>{await YD(e,t),await ZD(e,{dest:t.dest,hooksDir:t.hooksDir});let n=await e.run(`git`,[`rev-parse`,`HEAD`],{cwd:t.dest});if(n.exitCode!==0)throw T(eO(t.key,t.dest));let r=n.stdout.trim();if(!Ow.shape.head_sha.safeParse(r).success)throw T(tO(t.key,t.dest,r));return r},rO=(e,t,n)=>`sync produced a HEAD sha for '${e}' at ${t} that refs cannot store yet (${n.length} hex chars) — only SHA-1 repositories are supported for now`,iO=(e,t,n)=>{if(!Ow.shape.head_sha.safeParse(n).success)throw T(rO(e,t,n));return n},aO=(e,t,n)=>{let r={effectiveCloneMode:t.effectiveMode,headSha:n.headSha,status:`cloned`};return n.actualBranch!==e.ref.default_branch&&(r.branchRenamedTo=n.actualBranch),t.warning!==void 0&&(r.warning=t.warning),r},oO=async(e,t,n)=>{await o(_(n),{recursive:!0});let r=Aw(`clone_mode`,t.ref,t.settings),i=await vl(e.runner,{cloneUrl:t.ref.url,dest:n,hooksDir:t.home.hooksDir,mode:r}),a=await bl(e.runner,n),s=await nO(e.runner,{allowFileUrls:VE(e.env),dest:n,expectedUrl:t.ref.url,hooksDir:t.home.hooksDir,key:t.key});return aO(t,i,{actualBranch:a,headSha:s})},sO=async(e,t,n)=>{await ZD(e.runner,{dest:n,hooksDir:t.home.hooksDir}),await YD(e.runner,{allowFileUrls:VE(e.env),dest:n,expectedUrl:t.ref.url});let r=await El(e.runner,{defaultBranch:t.ref.default_branch,dir:n}),i={headSha:iO(t.key,n,r.newSha),status:r.status};return r.branchRenamedTo!==void 0&&(i.branchRenamedTo=r.branchRenamedTo),r.warning!==void 0&&(i.warning=r.warning),i},cO=(e,t)=>K(t.home,BE(t.key),()=>{let n=V(t.home,t.key);return Hc(t.home,n),U(n)?sO(e,t,n):oO(e,t,n)}),lO=e=>e instanceof Error?e.message:String(e),uO=e=>{let t=[];e.branchRenamedTo!==void 0&&t.push(`default branch renamed to ${e.branchRenamedTo}`),e.warning!==void 0&&t.push(e.warning);let[n]=t;if(n!==void 0)return t.join(` | `)},dO=(e,t)=>{let n={key:e,status:t.status},r=uO(t);return r!==void 0&&(n.warning=r),n},fO=async(e,t)=>{try{let n=await cO(e,t);return await HD(t.home,t.key,n),dO(t.key,n)}catch(e){let n=lO(e);return await UD(t.home,t.key,n),{error:n,key:t.key,status:`failed`}}},pO=(e,t)=>e.status===`fulfilled`?e.value:{error:lO(e.reason),key:t,status:`failed`},mO=async(e,t)=>{let n=WD(4);return(await Promise.allSettled(t.map(t=>GD(n,()=>fO(e,t))))).map((e,n)=>{let r=t[n];if(r===void 0)throw Error(`internal: sync target at index ${n} is missing`);return pO(e,r.key)})},hO=(e,t)=>{let n=e.refs[t];if(n===void 0)throw Error(`internal: matched ref key '${t}' is missing from config.refs`);return n},gO=(e,t,n)=>({home:e,key:n,ref:hO(t,n),settings:t.settings}),_O=(e,t,n)=>n.length===0?Object.keys(t.refs).toSorted().map(n=>gO(e,t,Us.parse(n))):n.map(n=>gO(e,t,RE(t,n))),vO=(e,t,n)=>{let r=Date.now();return t.filter(t=>{let i=Gs(Aw(`sync_ttl`,t.ref,t.settings)),a=AE(n.refs[t.key]?.last_fetched_at,i,r),o=!U(V(e,t.key));return a||o})},yO=async(e,t,n)=>{if(!n)return t;let r=await Nw(e);return vO(e,t,r)},bO=async(e,t)=>{let n=B(e.env),r=await H(n),i=_O(n,r,t.refs),a=await mO(e,await yO(n,i,t.staleOnly));return{failedCount:a.filter(e=>e.status===`failed`).length,results:a}},xO=[`updated`,`fresh`,`cloned`,`restored`,`failed`],SO={cloned:`Cloned`,failed:`Failed`,fresh:`Fresh`,restored:`Restored`,updated:`Updated`},CO=e=>{let t={cloned:[],failed:[],fresh:[],restored:[],updated:[]};for(let n of e)t[n.status].push(n);return t},wO=e=>e.status===`failed`?` ${e.key}: ${e.error??`unknown error`}`:e.warning===void 0?` ${e.key}`:` ${e.key} (${e.warning})`,TO=e=>{let t=CO(e),n=[xO.map(e=>`${SO[e]} (${t[e].length})`).join(` / `)];for(let e of xO)for(let r of t[e])n.push(wO(r));return n},EO=(e,t)=>({refs:e,staleOnly:t.staleOnly===!0}),DO=(e,t)=>{e.command(`sync`).description(`Fetch (or re-clone, if the checkout is missing) configured refs — all by default.`).argument(`[refs...]`,`ref keys or unique suffixes to sync (default: every configured ref)`).option(`--stale-only`,`skip refs whose last sync is still within their ref's sync_ttl`).action((e,n,r)=>{let i=r.optsWithGlobals(),a={json:i.json===!0,verbose:i.verbose===!0};return $(t,a,async()=>{let r=await bO(t,EO(e,n));Q(t,a,TO(r.results),{results:r.results}),r.failedCount>0&&(process.exitCode=it.UNEXPECTED)})()})},OO=(e,t)=>{let n=e.refs[t];if(n===void 0)throw Error(`internal: matched ref key '${t}' is missing from config.refs`);return n},kO=(e,t,n)=>{if(n===void 0)return e.tag_format;let r=e.packages?.[n];if(r===void 0)throw C(`no package '${n}' registered on ref '${t}'`);return r.tag_format??e.tag_format},AO=(e,t)=>{if(!U(e))throw C(`checkout for '${t}' is missing — run: refs sync ${t}`)},jO=async(e,t)=>{let n=B(e.env),r=await H(n),i=RE(r,t.query),a=OO(r,i),o=kO(a,i,t.opts.packageName),s=V(n,i);AO(s,i);let c=await Hl(e.runner,s,o,t.version);return{key:i,ref_path:`refs/tags/${c}`,tag:c,version:t.version}},MO=e=>[`${e.key}@${e.version} -> ${e.tag}`],NO=e=>{let t={};return e.package!==void 0&&(t.packageName=e.package),t},PO=[EE,kE,pD,AD,zD,DO,(e,t)=>{e.command(`tag`).description(`Resolve a version to its git tag, via the ref's (or a package's) tag_format.`).argument(`<ref>`,`full ref key or a unique suffix, e.g. next.js`).argument(`<version>`,`version to resolve, e.g. 15.3.0`).option(`--package <name>`,`resolve against this package's tag_format instead of the ref's`).action((e,n,r,i)=>{let a=i.optsWithGlobals(),o={json:a.json===!0,verbose:a.verbose===!0};return $(t,o,async()=>{let i=await jO(t,{opts:NO(r),query:e,version:n});Q(t,o,MO(i),i)})()})}],FO=e=>e.description===void 0?{path:e.path}:{description:e.description,path:e.path},IO=(e,t,n)=>e.length>0?Object.fromEntries(e.map(e=>[e.name,FO(e)])):n===void 0?{}:{[n]:{path:t??`.`}},LO=(e,t)=>{let n=e.description??t;return e.tag_format===void 0?{description:n,path:e.path}:{description:n,path:e.path,tag_format:e.tag_format}},RO=(e,t)=>{let n=Object.entries(e);if(n.length!==0)return Object.fromEntries(n.map(([e,n])=>[e,LO(n,t)]))},zO=e=>{if(Object.keys(e).length!==0)return e},BO=e=>{if(e===null)throw T(`tag_format_candidate must be set to a valid tag format (containing '{version}') before finalizing — edit the proposal and provide one, or add the ref manually`);return e},VO=e=>e.packages===void 0?{default_branch:e.default_branch,description:e.description,tag_format:e.tag_format,url:e.url}:{default_branch:e.default_branch,description:e.description,packages:e.packages,tag_format:e.tag_format,url:e.url},HO=[],UO=e=>e===void 0?[...HO]:[e],WO=async(e,t,n)=>{let r=await bl(e.runner,t),i=Bl(await Dl(e.runner,t));return xT(e,`detecting workspace packages…`),{defaultBranch:r,packages:IO(await tT(t),n.npmDirectory,n.npmPkgName),tagFormatCandidate:i}},GO=(e,t)=>K(t.home,BE(t.resolved.key),async()=>{let n=await $D(e,{allowFileUrls:VE(e.env),cloneUrl:t.resolved.cloneUrl,dest:t.dest,home:t.home,hooksDir:t.home.hooksDir,mode:t.cloneMode}),r={fields:await WO(e,t.dest,t.resolved)};return n.effectiveMode!==void 0&&(r.effectiveMode=n.effectiveMode),n.warning!==void 0&&(r.warning=n.warning),r}),KO=e=>{let t={default_branch:e.cloneResult.fields.defaultBranch,description:``,key:e.resolved.key,packages:e.cloneResult.fields.packages,tag_format_candidate:e.cloneResult.fields.tagFormatCandidate,url:e.resolved.cloneUrl},n={dest:e.dest,proposal:t};return e.cloneResult.effectiveMode!==void 0&&(n.effectiveCloneMode=e.cloneResult.effectiveMode),e.cloneResult.warning!==void 0&&(n.warning=e.cloneResult.warning),n},qO=async(e,t)=>{let n=B(e.env),r=await H(n),i=GE(await WE(e,t),r.settings);qE(r,i.key),await $E(n,i.key);let a=V(n,i.key),o=Aw(`clone_mode`,void 0,r.settings),s=await GO(e,{cloneMode:o,dest:a,home:n,resolved:i});return KO({cloneResult:s,dest:a,resolved:i})},JO=(e,t,n)=>K(e,`home`,async()=>{qE(await H(e),t);let r=await Nw(e),i=r.refs[t],a=n??i?.effective_clone_mode,o={...i,pending_proposal_at:new Date().toISOString()};a!==void 0&&(o.effective_clone_mode=a),r.refs[t]=o,await Pw(e,r)}),YO=(e,t)=>{let n=tc.safeParse(e);if(!n.success)throw T(k(n.error));let r=kw.safeParse(t);if(!r.success)throw T(k(r.error));return{config:n.data,state:r.data}},XO=async(e,t)=>{let n=await H(e.home);qE(n,e.ref.key);let r=VO(e.ref);n.refs[e.ref.key]=r;let i=await Nw(e.home);return i.refs[e.ref.key]={effective_clone_mode:e.effectiveCloneMode??i.refs[e.ref.key]?.effective_clone_mode??Aw(`clone_mode`,void 0,n.settings),head_sha:t,last_fetched_at:new Date().toISOString()},{...YO(n,i),entry:r}},ZO=async(e,t)=>{let n=VE(e.env),r=await K(t.home,BE(t.ref.key),()=>(Hc(t.home,t.dest),nO(e.runner,{allowFileUrls:n,dest:t.dest,expectedUrl:t.ref.url,hooksDir:t.home.hooksDir,key:t.ref.key})));return K(t.home,`home`,async()=>{let{config:e,entry:n,state:i}=await XO(t,r);return await Pw(t.home,i),await Xc(t.home,e),{entry:n,key:t.ref.key}})},QO=(e,t)=>t===`-`?e.readStdin():s(t,`utf8`),$O=e=>e instanceof Error?e.message:String(e),ek=e=>{try{return JSON.parse(e)}catch(e){throw T(`invalid JSON in proposal: ${$O(e)}`)}},tk=e=>typeof e==`object`&&!!e&&!Array.isArray(e),nk=e=>tk(e)&&`ok`in e&&!(`key`in e),rk=e=>{if(!nk(e))return e;if(e.ok===!1)throw T(`proposal file contains a failed refs envelope (ok is false) — re-run the dry-run`);if(tk(e.data))return e.data;throw T(`proposal file is a refs envelope without a usable data object — re-run the dry-run`)},ik=e=>{let t=Dw.safeParse(e);if(!t.success)throw T(k(t.error));return t.data},ak=async(e,t)=>{let n=await QO(e,t);return ik(rk(ek(n)))},ok=(e,t)=>[`refs add: dry-run proposal ready for '${e}' (checkout: ${t})`,`next: review the proposal, then run refs add --proposal <file> to finalize`],sk=async(e,t)=>{let n=await qO(e,t);await JO(B(e.env),n.proposal.key,n.effectiveCloneMode);let r=UO(n.warning);return{data:n.proposal,human:ok(n.proposal.key,n.dest),warnings:r}},ck=e=>[`refs add: '${e}' added to config`],lk=e=>{let t={default_branch:e.default_branch,description:e.description,key:e.key,tag_format:BO(e.tag_format_candidate),url:e.url},n=zO(e.packages);return n!==void 0&&(t.packages=n),t},uk=async(e,t)=>{let n=await ak(e,t),r=B(e.env),i=V(r,n.key);if(!U(i))throw C(`no checkout found at ${i} — run: refs add <source> --dry-run first`);let{entry:a,key:o}=await ZO(e,{dest:i,home:r,ref:lk(n)});return{data:{entry:a,key:o},human:ck(o),warnings:[]}},dk=(e,t)=>{let n={default_branch:e.proposal.default_branch,description:t,key:e.proposal.key,tag_format:BO(e.proposal.tag_format_candidate),url:e.proposal.url},r=RO(e.proposal.packages,t);return r!==void 0&&(n.packages=r),n},fk=async(e,t,n)=>{let r=await qO(e,t),i=B(e.env),a=dk(r,n),o={dest:r.dest,home:i,ref:a};r.effectiveCloneMode!==void 0&&(o.effectiveCloneMode=r.effectiveCloneMode);let{entry:s,key:c}=await ZO(e,o),l=UO(r.warning);return{data:{entry:s,key:c},human:ck(c),warnings:l}},pk=e=>{let t=[e.dryRun,e.proposal!==void 0,e.description!==void 0].filter(Boolean).length;if(t>1)throw w(`refs add: use only one of --dry-run, --proposal, or --description`);if(t===0)throw w(`refs add needs --dry-run, --proposal, or --description`)},mk=e=>{if(e===void 0||e===``)throw w(`refs add requires <source> (a git url or npm:<package>)`);return e},hk=(e,t)=>(pk(t),t.proposal===void 0?t.description===void 0?sk(e,mk(t.source)):fk(e,mk(t.source),t.description):uk(e,t.proposal)),gk=(e,t)=>{let n={dryRun:t.dryRun===!0};return e!==void 0&&(n.source=e),t.proposal!==void 0&&(n.proposal=t.proposal),t.description!==void 0&&(n.description=t.description),n},_k=(e,t)=>{e.command(`add`).description(`Add a git reference in two phases: propose (--dry-run), then finalize (--proposal).`).argument(`[source]`,`git url or npm:<package> (omit when finalizing with --proposal)`).option(`--dry-run`,`resolve and clone the source, writing a reviewable proposal`).option(`--proposal <file>`,`finalize from a completed proposal JSON file (- for stdin)`).option(`--description <text>`,`one-shot: dry-run then finalize immediately with this description`).action((e,n,r)=>{let i=r.optsWithGlobals(),a={json:i.json===!0,verbose:i.verbose===!0};return $(t,a,async()=>{let r=await hk(t,gk(e,n));Q(t,a,r.human,r.data,r.warnings)})()})},vk=e=>e===void 0?null:e,yk=()=>Object.keys($s.shape).toSorted().join(`, `),bk=e=>`unknown package field '${e}' — valid fields: ${yk()}`,xk=e=>Object.hasOwn($s.shape,e),Sk=(e,t,n)=>{let r=e.packages?.[n];if(r===void 0)throw C(`no package '${n}' registered on ref '${t}'`);return r},Ck=(e,t,n)=>{if(!xk(t))throw w(bk(t));let r=e[t],i=$s.safeParse({...e,[t]:n});if(!i.success)throw T(k(i.error));return{field:t,newValue:i.data[t],oldValue:r,updated:i.data}},wk=async e=>{let t=Sk(e.entry,e.key,e.packageName),n=Ck(t,e.field,e.value),r={...e.entry,packages:{...e.entry.packages,[e.packageName]:n.updated}};return await Xc(e.home,{...e.config,refs:{...e.config.refs,[e.key]:r}}),{field:n.field,key:e.key,new:vk(n.newValue),old:vk(n.oldValue)}},Tk=`packages`,Ek=(e,t)=>{let n=e.refs[t];if(n===void 0)throw Error(`internal: matched ref key '${t}' is missing from config.refs`);return n},Dk=()=>Object.keys(ec.shape).filter(e=>e!==Tk).toSorted().join(`, `),Ok=e=>`unknown ref field '${e}' — valid fields: ${Dk()}`,kk=e=>Object.hasOwn(ec.shape,e),Ak=(e,t,n)=>`failed to rewrite git remote at ${e} to '${G(t)}': ${n.trim()}`,jk=async(e,t)=>{if(Hc(t.home,t.dest),!U(t.dest))return;let n=await e.runner.run(`git`,[`remote`,`set-url`,`origin`,t.cloneUrl],{cwd:t.dest});if(n.exitCode!==0)throw T(Ak(t.dest,t.cloneUrl,n.stderr))},Mk=async(e,t)=>{let n=lu(t.value,{allowFileUrls:VE(e.env)});if(n.key!==t.key)throw T(`new url derives a different key — remove and re-add instead`);let r=V(t.home,t.key);return await jk(e,{cloneUrl:n.cloneUrl,dest:r,home:t.home}),{...t.entry,url:n.cloneUrl}},Nk=(e,t,n)=>{let r={...e,[t]:n},i=ec.safeParse(r);if(!i.success)throw T(k(i.error));return i.data},Pk=(e,t)=>t.field===`url`?Mk(e,{entry:t.entry,home:t.home,key:t.key,value:t.value}):Promise.resolve(Nk(t.entry,t.field,t.value)),Fk=async(e,t)=>{let{field:n}=t;if(n===Tk)throw w(`use --package <name> <field> <value>`);if(!kk(n))throw w(Ok(n));let r=t.entry[n],i=await Pk(e,{entry:t.entry,field:n,home:t.home,key:t.key,value:t.value});return{new:i[n],old:r,updated:i}},Ik=(e,t)=>{let n=B(e.env),{field:r,opts:i,query:a,value:o}=t;return K(n,`home`,async()=>{let t=await H(n),s=RE(t,a),c=Ek(t,s);if(i.packageName!==void 0)return wk({config:t,entry:c,field:r,home:n,key:s,packageName:i.packageName,value:o});let l=await Fk(e,{entry:c,field:r,home:n,key:s,value:o});return await Xc(n,{...t,refs:{...t.refs,[s]:l.updated}}),{field:r,key:s,new:vk(l.new),old:vk(l.old)}})},Lk=`settings`,Rk=[],zk=()=>Object.keys(Zs.shape).toSorted().join(`, `),Bk=e=>`unknown setting '${e}' — valid settings: ${zk()}`,Vk=e=>Object.hasOwn(Zs.shape,e),Hk=e=>`note: 'settings' addressed the global settings, not ${e} — use the full ref key to edit that ref`,Uk=e=>{try{let t=RE(e,Lk);return[Hk(`ref '${t}'`)]}catch(e){if(e instanceof at&&e.code===`usage`)return[Hk("one of several matching refs — see `refs list`")];if(e instanceof at&&e.code===`not_found`)return Rk;throw e}},Wk=e=>({data:{field:e.key,key:Lk,new:vk(e.parsed[e.key]),old:vk(e.old)},warnings:Uk(e.config)}),Gk=(e,t)=>{let n=B(e.env);return K(n,`home`,async()=>{let e=await H(n);if(!Vk(t.key))throw w(Bk(t.key));let r=e.settings[t.key],i={...e.settings,[t.key]:t.value},a=Zs.safeParse(i);if(!a.success)throw T(k(a.error));return await Xc(n,{...e,settings:a.data}),Wk({config:e,key:t.key,old:r,parsed:a.data})})},Kk=[],qk=e=>{let t={};return e.package!==void 0&&(t.packageName=e.package),t},Jk=async(e,t)=>{if(t.first===`settings`){if(t.opts.packageName!==void 0)throw w(`--package is not valid with 'refs edit settings ...' — it only applies to ref/package edits`);return Gk(e,{key:t.second,value:t.value})}return{data:await Ik(e,{field:t.second,opts:t.opts,query:t.first,value:t.value}),warnings:Kk}},Yk=e=>e==null?`(unset)`:String(e),Xk=e=>[`${e.key}: ${e.field} '${Yk(e.old)}' -> '${Yk(e.new)}'`],Zk=(e,t)=>{e.command(`edit`).description(`Edit one field: 'refs edit settings <key> <value>' for a global setting, or 'refs edit <ref> <field> <value> [--package <name>]' for a ref or package field.`).argument(`<ref-or-settings>`,`a ref key/unique suffix, or the literal 'settings'`).argument(`<field-or-key>`,`field to edit (or, in settings mode, the setting key)`).argument(`<value>`,`the new value`).option(`--package <name>`,`edit this package's field instead of a top-level ref field`).action((e,n,r,i,a)=>{let o=a.optsWithGlobals(),s={json:o.json===!0,verbose:o.verbose===!0};return $(t,s,async()=>{let{data:a,warnings:o}=await Jk(t,{first:e,opts:qk(i),second:n,value:r});Q(t,s,Xk(a),a,o)})()})},Qk=`Install the agent skill: npx skills add kaisers-io/refs (private phase: npx skills add <path-to-this-repo> --skill refs)`,$k=async e=>{await o(e.root,{recursive:!0}),await o(e.sourcesDir,{recursive:!0}),await o(e.locksDir,{recursive:!0}),await o(e.hooksDir,{recursive:!0})},eA=async e=>{let t=B(e.env);return await $k(t),{config:await K(t,`home`,async()=>{let e=await sl(t,ST);return await Al(t),e}),home:t.root,skill_hint:Qk}},tA=[(e,t)=>{e.command(`init`).description(`Seed or migrate the refs home directory, its config, and the git hooks guard.`).action((e,n)=>{let r=n.optsWithGlobals(),i={json:r.json===!0,verbose:r.verbose===!0};return $(t,i,async()=>{let e=await eA(t);Q(t,i,[`refs home: ${e.home} (${e.config})`,Qk],e)})()})},_k,Zk,zE,...PO],nA=(e,t)=>{for(let n of tA)n(e,t)},rA=[``,`Examples:`,` $ refs list --json`,` $ refs sync --stale-only --json`,` $ refs resolve next/navigation --json`,``,`Every command accepts --json for structured output and --verbose for stack traces on error.`].join(`
404
+ `),iA=new Set([`commander.help`,`commander.helpDisplayed`,`commander.version`]),aA=`--json`,oA=`--verbose`,sA=/\n$/u,cA=/^error: /u,lA=e=>e.replace(cA,``),uA=(e,t)=>{for(let n of e){if(n===`--`)return!1;if(n===t)return!0}return!1},dA=e=>uA(e,aA),fA=e=>uA(e,oA),pA=(e,t,n)=>n&&t!==void 0?`${e}\n${t}`:e,mA=e=>{let t=new hT().name(`refs`).description(`Manage git-based reference checkouts shared across a workspace.`).version(ST).option(aA,`emit machine-readable JSON on stdout instead of human-readable text`).option(oA,`include stack traces in error output`).allowExcessArguments(!1).exitOverride().configureOutput({outputError:()=>{},writeErr:t=>{e.errLine(t.replace(sA,``))},writeOut:t=>{e.out(t.replace(sA,``))}});return t.addHelpText(`after`,rA),nA(t,e),t},hA=()=>{process.exitCode=it.OK},gA=(e,t,n)=>{bT(e,t,{code:`usage`,message:pA(lA(n.message),n.stack,t.verbose)}),process.exitCode=it.USAGE},_A=(e,t,n)=>{if(iA.has(n.code)){hA();return}gA(e,t,n)},vA=(e,t,n)=>{let r=ct(n,{verbose:t.verbose});bT(e,t,r),process.exitCode=r.exitCode},yA=async(e,t,n)=>{let r={json:dA(n),verbose:fA(n)};try{await t.parseAsync(n)}catch(t){if(t instanceof iT){_A(e,r,t);return}vA(e,r,t)}},bA=(e,t)=>yA(e,mA(e),t);import.meta.main&&await bA(rT(),process.argv);export{mA as buildProgram,Q as emit,bT as emitError,xT as progress,rT as realContext,nA as registerCommands,bA as run,yA as runProgram,$ as wrapAction};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kaisers-io/refs",
3
- "version": "0.1.1",
3
+ "version": "0.1.2",
4
4
  "description": "Managed read-only git checkouts of reference repositories for coding agents.",
5
5
  "license": "MIT",
6
6
  "repository": {