just-bash-nx 3.0.8 → 3.0.10

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.
@@ -71,4 +71,4 @@ Gid: ${n} ${n} ${n} ${n}
71
71
  `};let n=await It(e,t),{hasParamExpansion:a,hasCommandSub:i}=Se(r);if((a||i)&&!s&&!q(e.state.env)){let f=T(e.state.env);if(x(n,f).length>1)return{error:`bash: $${Zs(r)}: ambiguous redirect
72
72
  `}}if(s||e.state.options.noglob)return{target:n};let o=await Rr(e,t);if(!ne(o,e.state.shoptOptions.extglob))return{target:n};let c=new oe(e.fs,e.state.cwd,e.state.env,{globstar:e.state.shoptOptions.globstar,nullglob:e.state.shoptOptions.nullglob,failglob:e.state.shoptOptions.failglob,dotglob:e.state.shoptOptions.dotglob,extglob:e.state.shoptOptions.extglob,globskipdots:e.state.shoptOptions.globskipdots,maxGlobOperations:e.limits.maxGlobOperations}),u=await c.expand(o);return u.length===0?c.hasFailglob()?{error:`bash: no match: ${n}
73
73
  `}:{target:n}:u.length===1?{target:u[0]}:{error:`bash: ${n}: ambiguous redirect
74
- `}}async function It(e,t){let r=t.parts,s=r.length;if(s===1){let i=await U(e,r[0]);return ce(i,e.limits.maxStringLength,"word expansion"),i}let n=[];for(let i=0;i<s;i++)n.push(await U(e,r[i]));let a=n.join("");return ce(a,e.limits.maxStringLength,"word expansion"),a}async function U(e,t,r=!1){if(t.type==="ParameterExpansion")return qe(e,t,r);let s=Gs(e,t,r);if(s!==null)return s;switch(t.type){case"DoubleQuoted":{let n=[];for(let a of t.parts)n.push(await U(e,a,!0));return n.join("")}case"CommandSubstitution":{let n=Pn(t.body);if(n)try{let h=await Rt(e,n.target),d=h.startsWith("/")?h:`${e.state.cwd}/${h}`,m=await e.fs.readFile(d);e.state.lastExitCode=0,e.state.env.set("?","0");let g=m.replace(/\n+$/,"");return ce(g,e.limits.maxStringLength,"command substitution"),g}catch(h){if(h instanceof L)throw h;return e.state.lastExitCode=1,e.state.env.set("?","1"),""}let a=e.substitutionDepth??0,i=e.limits.maxSubstitutionDepth;if(a>=i)throw new L(`Command substitution nesting limit exceeded (${i})`,"substitution_depth");let l=e.substitutionDepth;e.substitutionDepth=a+1;let o=e.state.bashPid;e.state.bashPid=e.state.nextVirtualPid++;let c=new Map(e.state.env),u=e.state.cwd,f=e.state.suppressVerbose;e.state.suppressVerbose=!0;try{let h=await e.executeScript(t.body),d=h.exitCode;e.state.env=c,e.state.cwd=u,e.state.suppressVerbose=f,e.state.lastExitCode=d,e.state.env.set("?",String(d)),h.stderr&&(e.state.expansionStderr=(e.state.expansionStderr||"")+h.stderr),e.state.bashPid=o,e.substitutionDepth=l;let m=Pr(h).replace(/\n+$/,"");return ce(m,e.limits.maxStringLength,"command substitution"),m}catch(h){if(e.state.env=c,e.state.cwd=u,e.state.bashPid=o,e.substitutionDepth=l,e.state.suppressVerbose=f,h instanceof L)throw h;if(h instanceof K){e.state.lastExitCode=h.exitCode,e.state.env.set("?",String(h.exitCode)),h.stderr&&(e.state.expansionStderr=(e.state.expansionStderr||"")+h.stderr);let d=Pr({stdout:h.stdout,stdoutKind:h.stdoutKind,stdoutEncoding:h.stdoutEncoding}).replace(/\n+$/,"");return ce(d,e.limits.maxStringLength,"command substitution"),d}throw h}}case"ArithmeticExpansion":{let n=t.expression.originalText;if(n&&/\$[a-zA-Z_][a-zA-Z0-9_]*(?![{[(])/.test(n)){let i=await kn(e,n),l=new V,o=M(l,i);return String(await R(e,o.expression,!0))}return String(await R(e,t.expression.expression,!0))}case"BraceExpansion":{let n=[];for(let a of t.items)if(a.type==="Range"){let i=St(a.start,a.end,a.step,a.startStr,a.endStr);if(i.expanded)n.push(...i.expanded);else return i.literal}else n.push(await Rt(e,a.word));return n.join(" ")}default:return""}}async function qe(e,t,r=!1){let{parameter:s}=t,{operation:n}=t,a=s.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[(.+)\]$/);if(a){let[,h,d]=a;if(e.state.associativeArrays?.has(h)||d.includes("$(")||d.includes("`")||d.includes("${")){let g=await At(e,d);s=`${h}[${g}]`}}else if(/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(s)&&W(e,s)){let h=he(e,s);if(h&&h!==s){let d=h.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[(.+)\]$/);if(d){let[,m,g]=d;if(e.state.associativeArrays?.has(m)||g.includes("$(")||g.includes("`")||g.includes("${")){let A=await At(e,g);s=`${m}[${A}]`}}}}let i=n&&(n.type==="DefaultValue"||n.type==="AssignDefault"||n.type==="UseAlternative"||n.type==="ErrorIfUnset"),l=!1;i&&(l=!await X(e,s));let o=i?l?"":await v(e,s,!1):await v(e,s,!0);if(!n)return o;i||(l=!await X(e,s));let{isEmpty:c,effectiveValue:u}=Vn(e,s,o,r),f={value:o,isUnset:l,isEmpty:c,effectiveValue:u,inDoubleQuotes:r};switch(n.type){case"DefaultValue":return Rn(e,n,f,Y);case"AssignDefault":return In(e,s,n,f,Y);case"ErrorIfUnset":return vn(e,s,n,f,Y);case"UseAlternative":return Dn(e,n,f,Y);case"PatternRemoval":{let h=await xn(e,o,n,Y,U);return ce(h,e.limits.maxStringLength,"pattern removal"),h}case"PatternReplacement":{let h=await _n(e,o,n,Y,U);return ce(h,e.limits.maxStringLength,"pattern replacement"),h}case"Length":return $n(e,s,o);case"LengthSliceError":throw new re(s);case"BadSubstitution":throw new re(n.text);case"Substring":return Cn(e,s,o,n);case"CaseModification":{let h=await On(e,o,n,Y,qe);return ce(h,e.limits.maxStringLength,"case modification"),h}case"Transform":return Ln(e,s,o,l,n);case"Indirection":return Wn(e,s,o,l,n,qe,r);case"ArrayKeys":return Tn(e,n);case"VarNamePrefix":return Mn(e,n);default:return o}}export{Li as a,Wi as b,de as c,G as d,M as e,V as f,Ai as g,gt as h,Mi as i,yt as j,Vi as k,An as l,T as m,Bi as n,Fi as o,W as p,Gi as q,Qi as r,Zi as s,Ui as t,ds as u,he as v,be as w,Hi as x,P as y,we as z,v as A,J as B,wt as C,Aa as D,Nt as E,Sa as F,ba as G,wa as H,Il as I,Rt as J,vl as K,Dl as L,xl as M,Us as N,_l as O,R as P};
74
+ `}}async function It(e,t){let r=t.parts,s=r.length;if(s===1){let i=await U(e,r[0]);return ce(i,e.limits.maxStringLength,"word expansion"),i}let n=[];for(let i=0;i<s;i++)n.push(await U(e,r[i]));let a=n.join("");return ce(a,e.limits.maxStringLength,"word expansion"),a}async function U(e,t,r=!1){if(t.type==="ParameterExpansion")return qe(e,t,r);let s=Gs(e,t,r);if(s!==null)return s;switch(t.type){case"DoubleQuoted":{let n=[];for(let a of t.parts)n.push(await U(e,a,!0));return n.join("")}case"CommandSubstitution":{let n=Pn(t.body);if(n){e.state.commandSubstitutionUsed=!0;try{let h=await Rt(e,n.target),d=h.startsWith("/")?h:`${e.state.cwd}/${h}`,m=await e.fs.readFile(d);e.state.lastExitCode=0,e.state.env.set("?","0");let g=m.replace(/\n+$/,"");return ce(g,e.limits.maxStringLength,"command substitution"),g}catch(h){if(h instanceof L)throw h;return e.state.lastExitCode=1,e.state.env.set("?","1"),""}}e.state.commandSubstitutionUsed=!0;let a=e.substitutionDepth??0,i=e.limits.maxSubstitutionDepth;if(a>=i)throw new L(`Command substitution nesting limit exceeded (${i})`,"substitution_depth");let l=e.substitutionDepth;e.substitutionDepth=a+1;let o=e.state.bashPid;e.state.bashPid=e.state.nextVirtualPid++;let c=new Map(e.state.env),u=e.state.cwd,f=e.state.suppressVerbose;e.state.suppressVerbose=!0;try{let h=await e.executeScript(t.body),d=h.exitCode;e.state.env=c,e.state.cwd=u,e.state.suppressVerbose=f,e.state.lastExitCode=d,e.state.env.set("?",String(d)),h.stderr&&(e.state.expansionStderr=(e.state.expansionStderr||"")+h.stderr),e.state.bashPid=o,e.substitutionDepth=l;let m=Pr(h).replace(/\n+$/,"");return ce(m,e.limits.maxStringLength,"command substitution"),m}catch(h){if(e.state.env=c,e.state.cwd=u,e.state.bashPid=o,e.substitutionDepth=l,e.state.suppressVerbose=f,h instanceof L)throw h;if(h instanceof K){e.state.lastExitCode=h.exitCode,e.state.env.set("?",String(h.exitCode)),h.stderr&&(e.state.expansionStderr=(e.state.expansionStderr||"")+h.stderr);let d=Pr({stdout:h.stdout,stdoutKind:h.stdoutKind,stdoutEncoding:h.stdoutEncoding}).replace(/\n+$/,"");return ce(d,e.limits.maxStringLength,"command substitution"),d}throw h}}case"ArithmeticExpansion":{let n=t.expression.originalText;if(n&&/\$[a-zA-Z_][a-zA-Z0-9_]*(?![{[(])/.test(n)){let i=await kn(e,n),l=new V,o=M(l,i);return String(await R(e,o.expression,!0))}return String(await R(e,t.expression.expression,!0))}case"BraceExpansion":{let n=[];for(let a of t.items)if(a.type==="Range"){let i=St(a.start,a.end,a.step,a.startStr,a.endStr);if(i.expanded)n.push(...i.expanded);else return i.literal}else n.push(await Rt(e,a.word));return n.join(" ")}default:return""}}async function qe(e,t,r=!1){let{parameter:s}=t,{operation:n}=t,a=s.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[(.+)\]$/);if(a){let[,h,d]=a;if(e.state.associativeArrays?.has(h)||d.includes("$(")||d.includes("`")||d.includes("${")){let g=await At(e,d);s=`${h}[${g}]`}}else if(/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(s)&&W(e,s)){let h=he(e,s);if(h&&h!==s){let d=h.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[(.+)\]$/);if(d){let[,m,g]=d;if(e.state.associativeArrays?.has(m)||g.includes("$(")||g.includes("`")||g.includes("${")){let A=await At(e,g);s=`${m}[${A}]`}}}}let i=n&&(n.type==="DefaultValue"||n.type==="AssignDefault"||n.type==="UseAlternative"||n.type==="ErrorIfUnset"),l=!1;i&&(l=!await X(e,s));let o=i?l?"":await v(e,s,!1):await v(e,s,!0);if(!n)return o;i||(l=!await X(e,s));let{isEmpty:c,effectiveValue:u}=Vn(e,s,o,r),f={value:o,isUnset:l,isEmpty:c,effectiveValue:u,inDoubleQuotes:r};switch(n.type){case"DefaultValue":return Rn(e,n,f,Y);case"AssignDefault":return In(e,s,n,f,Y);case"ErrorIfUnset":return vn(e,s,n,f,Y);case"UseAlternative":return Dn(e,n,f,Y);case"PatternRemoval":{let h=await xn(e,o,n,Y,U);return ce(h,e.limits.maxStringLength,"pattern removal"),h}case"PatternReplacement":{let h=await _n(e,o,n,Y,U);return ce(h,e.limits.maxStringLength,"pattern replacement"),h}case"Length":return $n(e,s,o);case"LengthSliceError":throw new re(s);case"BadSubstitution":throw new re(n.text);case"Substring":return Cn(e,s,o,n);case"CaseModification":{let h=await On(e,o,n,Y,qe);return ce(h,e.limits.maxStringLength,"case modification"),h}case"Transform":return Ln(e,s,o,l,n);case"Indirection":return Wn(e,s,o,l,n,qe,r);case"ArrayKeys":return Tn(e,n);case"VarNamePrefix":return Mn(e,n);default:return o}}export{Li as a,Wi as b,de as c,G as d,M as e,V as f,Ai as g,gt as h,Mi as i,yt as j,Vi as k,An as l,T as m,Bi as n,Fi as o,W as p,Gi as q,Qi as r,Zi as s,Ui as t,ds as u,he as v,be as w,Hi as x,P as y,we as z,v as A,J as B,wt as C,Aa as D,Nt as E,Sa as F,ba as G,wa as H,Il as I,Rt as J,vl as K,Dl as L,xl as M,Us as N,_l as O,R as P};
@@ -1,2 +1,2 @@
1
1
  #!/usr/bin/env node
2
- import{A as c,B as d,C as e,I as f,J as g,K as h,L as i,M as j,N as k,O as l,y as a,z as b}from"./chunk-O3SBI3K7.js";import"./chunk-C6FRS5UB.js";import"./chunk-63XSH3IT.js";import"./chunk-DHC3ILJI.js";import"./chunk-OBH7XN5N.js";import"./chunk-KGOUQS5A.js";export{d as escapeGlobChars,e as escapeRegexChars,l as expandRedirectTarget,g as expandWord,i as expandWordForPattern,h as expandWordForRegex,j as expandWordWithGlob,a as getArrayElements,c as getVariable,k as hasQuotedMultiValueAt,b as isArray,f as isWordFullyQuoted};
2
+ import{A as c,B as d,C as e,I as f,J as g,K as h,L as i,M as j,N as k,O as l,y as a,z as b}from"./chunk-LT26MLOT.js";import"./chunk-C6FRS5UB.js";import"./chunk-63XSH3IT.js";import"./chunk-DHC3ILJI.js";import"./chunk-OBH7XN5N.js";import"./chunk-KGOUQS5A.js";export{d as escapeGlobChars,e as escapeRegexChars,l as expandRedirectTarget,g as expandWord,i as expandWordForPattern,h as expandWordForRegex,j as expandWordWithGlob,a as getArrayElements,c as getVariable,k as hasQuotedMultiValueAt,b as isArray,f as isWordFullyQuoted};
@@ -23,10 +23,12 @@ _mock_collect_flag_values() {
23
23
  flag="$1"
24
24
  shift
25
25
  while [ "$#" -gt 0 ]; do
26
- if [ "$1" = "$flag" ] && [ "$#" -ge 2 ]; then
27
- printf '%s\n' "$2"
28
- shift 2
29
- continue
26
+ if [ "$1" = "$flag" ]; then
27
+ if [ "$#" -ge 2 ]; then
28
+ printf '%s\n' "$2"
29
+ shift 2
30
+ continue
31
+ fi
30
32
  fi
31
33
  shift
32
34
  done
@@ -37,9 +39,11 @@ _mock_find_next() {
37
39
  flag="$1"
38
40
  shift
39
41
  while [ "$#" -gt 0 ]; do
40
- if [ "$1" = "$flag" ] && [ "$#" -ge 2 ]; then
41
- printf '%s' "$2"
42
- return 0
42
+ if [ "$1" = "$flag" ]; then
43
+ if [ "$#" -ge 2 ]; then
44
+ printf '%s' "$2"
45
+ return 0
46
+ fi
43
47
  fi
44
48
  shift
45
49
  done
@@ -121,6 +125,58 @@ send-chat() {
121
125
  JSON
122
126
  }
123
127
 
128
+ forward-thread() {
129
+ to_sid="$(_mock_find_next --to-session-id "$@" || true)"
130
+ from_sid="$(_mock_find_next --from-session-id "$@" || true)"
131
+ thread_ts="$(_mock_find_next --thread-timestamp "$@" || true)"
132
+ if [ -z "$to_sid" ]; then
133
+ to_sid="mock-destination-session"
134
+ fi
135
+ if [ -z "$from_sid" ]; then
136
+ from_sid="mock-source-session"
137
+ fi
138
+ if [ -z "$thread_ts" ]; then
139
+ thread_ts="$(_mock_now_ms)"
140
+ fi
141
+
142
+ cat <<JSON
143
+ {"messageId":"forward-thread-$(_mock_now_ms)","echo":{"toSessionId":"$(_mock_escape_json "$to_sid")","fromSessionId":"$(_mock_escape_json "$from_sid")","threadTimestamp":"$(_mock_escape_json "$thread_ts")"}}
144
+ JSON
145
+ }
146
+
147
+ forward-messages() {
148
+ to_sid="$(_mock_find_next --to-session-id "$@" || true)"
149
+ from_sid="$(_mock_find_next --from-session-id "$@" || true)"
150
+ message_ids="$(_mock_find_next --message-ids "$@" || true)"
151
+ if [ -z "$to_sid" ]; then
152
+ to_sid="mock-destination-session"
153
+ fi
154
+ if [ -z "$from_sid" ]; then
155
+ from_sid="mock-source-session"
156
+ fi
157
+ if [ -z "$message_ids" ]; then
158
+ message_ids="msg-1"
159
+ fi
160
+
161
+ message_ids_json='['
162
+ first_id=1
163
+ for message_id in $(printf '%s' "$message_ids" | tr ',' ' '); do
164
+ if [ -z "$message_id" ]; then
165
+ continue
166
+ fi
167
+ if [ "$first_id" -eq 0 ]; then
168
+ message_ids_json="${message_ids_json},"
169
+ fi
170
+ message_ids_json="${message_ids_json}\"$(_mock_escape_json "$message_id")\""
171
+ first_id=0
172
+ done
173
+ message_ids_json="${message_ids_json}]"
174
+
175
+ cat <<JSON
176
+ {"messageId":"forward-messages-$(_mock_now_ms)","echo":{"toSessionId":"$(_mock_escape_json "$to_sid")","fromSessionId":"$(_mock_escape_json "$from_sid")","messageIds":"$(_mock_escape_json "$message_ids")"},"messageIds":$message_ids_json}
177
+ JSON
178
+ }
179
+
124
180
  edit-chat() {
125
181
  sid="$(_mock_find_next --session-id "$@" || true)"
126
182
  mid="$(_mock_find_next --message-id "$@" || true)"
@@ -159,11 +215,13 @@ add-members() {
159
215
  first_jid="$(printf '%s\n' "$jids" | sed -n '1p')"
160
216
  fi
161
217
 
162
- if [ -n "$first_jid" ] && [ "${MOCK_ADD_MEMBERS_DENY_FIRST:-0}" = "1" ]; then
163
- cat <<JSON
218
+ if [ -n "$first_jid" ]; then
219
+ if [ "${MOCK_ADD_MEMBERS_DENY_FIRST:-0}" = "1" ]; then
220
+ cat <<JSON
164
221
  {"sessionId":"$(_mock_escape_json "$sid")","invitedCount":$((invited-1)),"notAllowedList":[{"jid":"$(_mock_escape_json "$first_jid")","reason":"mock_denied"}],"echo":{"jids":"$(_mock_escape_json "$jids")","emails":"$(_mock_escape_json "$emails")"}}
165
222
  JSON
166
- return 0
223
+ return 0
224
+ fi
167
225
  fi
168
226
 
169
227
  cat <<JSON
@@ -249,6 +307,201 @@ open-session() {
249
307
  JSON
250
308
  }
251
309
 
310
+ make-deeplink() {
311
+ sid="$(_mock_find_next --sid "$@" || true)"
312
+ mid="$(_mock_find_next --mid "$@" || true)"
313
+ time_value="$(_mock_find_next --time "$@" || true)"
314
+ sid2="$(_mock_find_next --sid2 "$@" || true)"
315
+ aiid="$(_mock_find_next --aiid "$@" || true)"
316
+ if [ -z "$sid" ]; then
317
+ sid="mock-session"
318
+ fi
319
+
320
+ deeplink="zoommtg://chat?sid=$(_mock_escape_json "$sid")"
321
+ if [ -n "$mid" ]; then
322
+ deeplink="${deeplink}&mid=$(_mock_escape_json "$mid")"
323
+ fi
324
+ if [ -n "$time_value" ]; then
325
+ deeplink="${deeplink}&time=$(_mock_escape_json "$time_value")"
326
+ fi
327
+ if [ -n "$sid2" ]; then
328
+ deeplink="${deeplink}&sid2=$(_mock_escape_json "$sid2")"
329
+ fi
330
+ if [ -n "$aiid" ]; then
331
+ deeplink="${deeplink}&aiid=$(_mock_escape_json "$aiid")"
332
+ fi
333
+
334
+ cat <<JSON
335
+ {"deeplink":"$deeplink"}
336
+ JSON
337
+ }
338
+
339
+ calendar-create-event() {
340
+ event_kind="$(_mock_find_next --event-kind "$@" || true)"
341
+ organizer_mail="$(_mock_find_next --organizer-mail "$@" || true)"
342
+ subject="$(_mock_find_next --subject "$@" || true)"
343
+ start="$(_mock_find_next --start "$@" || true)"
344
+ duration="$(_mock_find_next --duration "$@" || true)"
345
+ description="$(_mock_find_next --description "$@" || true)"
346
+ time_zone="$(_mock_find_next --time-zone "$@" || true)"
347
+ location="$(_mock_find_next --location "$@" || true)"
348
+ send_updates="$(_mock_find_next --send-updates "$@" || true)"
349
+ attendees="$(_mock_collect_flag_values --attendee "$@")"
350
+
351
+ if [ -z "$event_kind" ]; then
352
+ event_kind="zoom_meeting"
353
+ fi
354
+ if [ -z "$organizer_mail" ]; then
355
+ organizer_mail="primary"
356
+ fi
357
+ if [ -z "$subject" ]; then
358
+ subject="Mock Event"
359
+ fi
360
+ if [ -z "$start" ]; then
361
+ start="2026-06-11T09:00:00Z"
362
+ fi
363
+ if [ -z "$duration" ]; then
364
+ duration="30"
365
+ fi
366
+
367
+ attendee_count=0
368
+ attendees_json='[]'
369
+ if [ -n "$attendees" ]; then
370
+ attendee_count="$(printf '%s\n' "$attendees" | sed '/^$/d' | wc -l | tr -d ' ')"
371
+ attendees_json='['
372
+ first_attendee=1
373
+ while IFS= read -r attendee; do
374
+ if [ -z "$attendee" ]; then
375
+ continue
376
+ fi
377
+ if [ "$first_attendee" -eq 0 ]; then
378
+ attendees_json="${attendees_json},"
379
+ fi
380
+ attendees_json="${attendees_json}\"$(_mock_escape_json "$attendee")\""
381
+ first_attendee=0
382
+ done <<EOF
383
+ $attendees
384
+ EOF
385
+ attendees_json="${attendees_json}]"
386
+ fi
387
+
388
+ cat <<JSON
389
+ {"event":{"id":"event-$(_mock_now_ms)","subject":"$(_mock_escape_json "$subject")","start":"$(_mock_escape_json "$start")","duration":$duration,"eventKind":"$(_mock_escape_json "$event_kind")","organizerMail":"$(_mock_escape_json "$organizer_mail")","description":"$(_mock_escape_json "${description:-}")","timeZone":"$(_mock_escape_json "${time_zone:-}")","location":"$(_mock_escape_json "${location:-}")","sendUpdates":"$(_mock_escape_json "${send_updates:-}")","attendeeCount":$attendee_count},"echo":{"attendees":$attendees_json}}
390
+ JSON
391
+ }
392
+
393
+ calendar-list-events() {
394
+ owners="$(_mock_collect_flag_values --calendar-owner-mail "$@")"
395
+ start="$(_mock_find_next --start "$@" || true)"
396
+ duration="$(_mock_find_next --duration "$@" || true)"
397
+ time_zone="$(_mock_find_next --time-zone "$@" || true)"
398
+ if [ -z "$start" ]; then
399
+ start="2026-06-11T09:00:00Z"
400
+ fi
401
+ if [ -z "$duration" ]; then
402
+ duration="30"
403
+ fi
404
+
405
+ owner_count=0
406
+ owners_json='[]'
407
+ if [ -n "$owners" ]; then
408
+ owner_count="$(printf '%s\n' "$owners" | sed '/^$/d' | wc -l | tr -d ' ')"
409
+ owners_json='['
410
+ first_owner=1
411
+ while IFS= read -r owner; do
412
+ if [ -z "$owner" ]; then
413
+ continue
414
+ fi
415
+ if [ "$first_owner" -eq 0 ]; then
416
+ owners_json="${owners_json},"
417
+ fi
418
+ owners_json="${owners_json}\"$(_mock_escape_json "$owner")\""
419
+ first_owner=0
420
+ done <<EOF
421
+ $owners
422
+ EOF
423
+ owners_json="${owners_json}]"
424
+ fi
425
+
426
+ cat <<JSON
427
+ {"events":[{"id":"event-1","subject":"Mock Calendar Event","start":"$(_mock_escape_json "$start")","duration":$duration}],"meta":{"calendarOwnerCount":$owner_count,"calendarOwners":$owners_json,"timeZone":"$(_mock_escape_json "${time_zone:-}")"}}
428
+ JSON
429
+ }
430
+
431
+ calendar-get-free-busy() {
432
+ owners="$(_mock_collect_flag_values --calendar-owner-mail "$@")"
433
+ start="$(_mock_find_next --start "$@" || true)"
434
+ end="$(_mock_find_next --end "$@" || true)"
435
+ duration="$(_mock_find_next --duration "$@" || true)"
436
+ time_zone="$(_mock_find_next --time-zone "$@" || true)"
437
+ suggest_time=false
438
+ if _mock_has_flag --suggest-time "$@"; then
439
+ suggest_time=true
440
+ fi
441
+ if [ -z "$start" ]; then
442
+ start="2026-06-11T09:00:00Z"
443
+ fi
444
+ if [ -z "$end" ]; then
445
+ end="2026-06-11T10:00:00Z"
446
+ fi
447
+ if [ -z "$duration" ]; then
448
+ duration="30"
449
+ fi
450
+
451
+ owner_count=0
452
+ if [ -n "$owners" ]; then
453
+ owner_count="$(printf '%s\n' "$owners" | sed '/^$/d' | wc -l | tr -d ' ')"
454
+ fi
455
+
456
+ cat <<JSON
457
+ {"busy":[],"suggestions":[{"start":"$(_mock_escape_json "$start")","end":"$(_mock_escape_json "$end")","duration":$duration}],"meta":{"calendarOwnerCount":$owner_count,"timeZone":"$(_mock_escape_json "${time_zone:-}")","suggestTime":$suggest_time}}
458
+ JSON
459
+ }
460
+
461
+ calendar-patch-event() {
462
+ organizer_mail="$(_mock_find_next --organizer-mail "$@" || true)"
463
+ event_id="$(_mock_find_next --event-id "$@" || true)"
464
+ subject="$(_mock_find_next --subject "$@" || true)"
465
+ start="$(_mock_find_next --start "$@" || true)"
466
+ duration="$(_mock_find_next --duration "$@" || true)"
467
+ description="$(_mock_find_next --description "$@" || true)"
468
+ time_zone="$(_mock_find_next --time-zone "$@" || true)"
469
+ location="$(_mock_find_next --location "$@" || true)"
470
+ send_updates="$(_mock_find_next --send-updates "$@" || true)"
471
+ attendees="$(_mock_collect_flag_values --attendee "$@")"
472
+ if [ -z "$organizer_mail" ]; then
473
+ organizer_mail="primary"
474
+ fi
475
+ if [ -z "$event_id" ]; then
476
+ event_id="event-1"
477
+ fi
478
+
479
+ attendee_count=0
480
+ if [ -n "$attendees" ]; then
481
+ attendee_count="$(printf '%s\n' "$attendees" | sed '/^$/d' | wc -l | tr -d ' ')"
482
+ fi
483
+
484
+ cat <<JSON
485
+ {"event":{"id":"$(_mock_escape_json "$event_id")","subject":"$(_mock_escape_json "${subject:-Mock Patched Event}")","start":"$(_mock_escape_json "${start:-}")","duration":"$(_mock_escape_json "${duration:-}")","description":"$(_mock_escape_json "${description:-}")","timeZone":"$(_mock_escape_json "${time_zone:-}")","location":"$(_mock_escape_json "${location:-}")","organizerMail":"$(_mock_escape_json "$organizer_mail")","sendUpdates":"$(_mock_escape_json "${send_updates:-}")","attendeeCount":$attendee_count}}
486
+ JSON
487
+ }
488
+
489
+ calendar-delete-event() {
490
+ organizer_mail="$(_mock_find_next --organizer-mail "$@" || true)"
491
+ event_id="$(_mock_find_next --event-id "$@" || true)"
492
+ send_updates="$(_mock_find_next --send-updates "$@" || true)"
493
+ if [ -z "$organizer_mail" ]; then
494
+ organizer_mail="primary"
495
+ fi
496
+ if [ -z "$event_id" ]; then
497
+ event_id="event-1"
498
+ fi
499
+
500
+ cat <<JSON
501
+ {"ok":true,"eventId":"$(_mock_escape_json "$event_id")","calendarId":"$(_mock_escape_json "$organizer_mail")","sendUpdates":"$(_mock_escape_json "${send_updates:-all}")"}
502
+ JSON
503
+ }
504
+
252
505
  create-or-update-skill() {
253
506
  content="$(_mock_find_next --content "$@" || true)"
254
507
  update_sid="$(_mock_find_next --update-session-id "$@" || true)"
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import{B as Hn,C as Un,D as ue,E as Ue,F as ee,G as Se,H as Lt,I as Zn,J as I,K as qn,L as Gn,M as Ae,N as As,O as Ft,P as j,a as Ln,b as ws,c as Fn,d as It,e as Q,f as V,g as $e,h as se,i as Ce,j as Fe,k as vs,l as Rt,m as Wn,n as bs,o as Mn,p as ye,q as Te,r as zn,s as Vn,t as $s,u as Es,v as We,w as Bn,x as jn,y as Ee,z as Ss}from"./chunks/chunk-O3SBI3K7.js";import{a as Je,b as et,c as Le}from"./chunks/chunk-NTW6IA45.js";import{c as gs}from"./chunks/chunk-LIYVQA3X.js";import{a as On,b as Dn}from"./chunks/chunk-OOJCYVYF.js";import{a as Re,b as me,c as ys}from"./chunks/chunk-4PRVMER6.js";import{a as yt,b as Rn}from"./chunks/chunk-MO4RPBN2.js";import{a as Qe,b as ve}from"./chunks/chunk-YU6OGPZR.js";import{a as mt}from"./chunks/chunk-C6FRS5UB.js";import{b as je,d as Tn,e as ms}from"./chunks/chunk-63XSH3IT.js";import{a as de,b as he,c as le,d as pe,e as xn,f as B,g as He,h as Ot,i as Dt,j as In,k as Y,l as Tt,m as Ie,n as xt,o as be}from"./chunks/chunk-DHC3ILJI.js";import"./chunks/chunk-OBH7XN5N.js";import{a as ce}from"./chunks/chunk-RLNOQILG.js";import{a as De}from"./chunks/chunk-4VDEBYW7.js";import{a as Nn}from"./chunks/chunk-KGOUQS5A.js";import{readFile as ll}from"node:fs/promises";import{dirname as cl,resolve as kn}from"node:path";import{fileURLToPath as ul}from"node:url";var tt=[{name:"echo",load:async()=>(await import("./chunks/echo-2MUAOGUE.js")).echoCommand},{name:"cat",load:async()=>(await import("./chunks/cat-3TMJDECR.js")).catCommand},{name:"printf",load:async()=>(await import("./chunks/printf-3YAF3PBF.js")).printfCommand},{name:"ls",load:async()=>(await import("./chunks/ls-WONXDVOX.js")).lsCommand},{name:"mkdir",load:async()=>(await import("./chunks/mkdir-Z47OISSR.js")).mkdirCommand},{name:"rmdir",load:async()=>(await import("./chunks/rmdir-5KLM4EA6.js")).rmdirCommand},{name:"touch",load:async()=>(await import("./chunks/touch-DWKSZGOQ.js")).touchCommand},{name:"rm",load:async()=>(await import("./chunks/rm-L3NZOLLG.js")).rmCommand},{name:"cp",load:async()=>(await import("./chunks/cp-XH2ZB7WT.js")).cpCommand},{name:"mv",load:async()=>(await import("./chunks/mv-OY7X62QC.js")).mvCommand},{name:"ln",load:async()=>(await import("./chunks/ln-EGC4HRXZ.js")).lnCommand},{name:"chmod",load:async()=>(await import("./chunks/chmod-N5CQATDW.js")).chmodCommand},{name:"pwd",load:async()=>(await import("./chunks/pwd-6VBAPL3Y.js")).pwdCommand},{name:"readlink",load:async()=>(await import("./chunks/readlink-BD5VFOC5.js")).readlinkCommand},{name:"head",load:async()=>(await import("./chunks/head-BM7J6BEI.js")).headCommand},{name:"tail",load:async()=>(await import("./chunks/tail-YX6MELZ5.js")).tailCommand},{name:"wc",load:async()=>(await import("./chunks/wc-KTXPMRYY.js")).wcCommand},{name:"stat",load:async()=>(await import("./chunks/stat-XS2LXYS2.js")).statCommand},{name:"grep",load:async()=>(await import("./chunks/grep-3X5B47DW.js")).grepCommand},{name:"fgrep",load:async()=>(await import("./chunks/grep-3X5B47DW.js")).fgrepCommand},{name:"egrep",load:async()=>(await import("./chunks/grep-3X5B47DW.js")).egrepCommand},{name:"rg",load:async()=>(await import("./chunks/rg-UPQTBQZR.js")).rgCommand},{name:"sed",load:async()=>(await import("./chunks/sed-7JYCZG23.js")).sedCommand},{name:"awk",load:async()=>(await import("./chunks/awk2-VEM6BYZZ.js")).awkCommand2},{name:"sort",load:async()=>(await import("./chunks/sort-ES3NRFJA.js")).sortCommand},{name:"uniq",load:async()=>(await import("./chunks/uniq-2KXDTNDX.js")).uniqCommand},{name:"comm",load:async()=>(await import("./chunks/comm-YZHVF2XN.js")).commCommand},{name:"cut",load:async()=>(await import("./chunks/cut-MWPHE25M.js")).cutCommand},{name:"paste",load:async()=>(await import("./chunks/paste-7MEIW3PG.js")).pasteCommand},{name:"tr",load:async()=>(await import("./chunks/tr-A6IXSBQX.js")).trCommand},{name:"rev",load:async()=>(await import("./chunks/rev-6LTZEDBA.js")).rev},{name:"nl",load:async()=>(await import("./chunks/nl-XLPXDHHK.js")).nl},{name:"fold",load:async()=>(await import("./chunks/fold-QC27S46O.js")).fold},{name:"expand",load:async()=>(await import("./chunks/expand-47QQBMM5.js")).expand},{name:"unexpand",load:async()=>(await import("./chunks/unexpand-UCJETXUX.js")).unexpand},{name:"strings",load:async()=>(await import("./chunks/strings-YGI6HF5M.js")).strings},{name:"split",load:async()=>(await import("./chunks/split-QFBCCUR5.js")).split},{name:"column",load:async()=>(await import("./chunks/column-MTXKQLJH.js")).column},{name:"join",load:async()=>(await import("./chunks/join-5J5VA3I7.js")).join},{name:"tee",load:async()=>(await import("./chunks/tee-XKJM7HV7.js")).teeCommand},{name:"find",load:async()=>(await import("./chunks/find-O2KKT6KZ.js")).findCommand},{name:"basename",load:async()=>(await import("./chunks/basename-KBUKWB2E.js")).basenameCommand},{name:"dirname",load:async()=>(await import("./chunks/dirname-5FAOMLBL.js")).dirnameCommand},{name:"tree",load:async()=>(await import("./chunks/tree-HEKABARE.js")).treeCommand},{name:"du",load:async()=>(await import("./chunks/du-LDAPXSGF.js")).duCommand},{name:"env",load:async()=>(await import("./chunks/env-NK55NKL6.js")).envCommand},{name:"printenv",load:async()=>(await import("./chunks/env-NK55NKL6.js")).printenvCommand},{name:"alias",load:async()=>(await import("./chunks/alias-3GODYSFD.js")).aliasCommand},{name:"unalias",load:async()=>(await import("./chunks/alias-3GODYSFD.js")).unaliasCommand},{name:"history",load:async()=>(await import("./chunks/history-UUKG55YW.js")).historyCommand},{name:"xargs",load:async()=>(await import("./chunks/xargs-EWL5DXR3.js")).xargsCommand},{name:"true",load:async()=>(await import("./chunks/true-DP5UZP52.js")).trueCommand},{name:"false",load:async()=>(await import("./chunks/true-DP5UZP52.js")).falseCommand},{name:"clear",load:async()=>(await import("./chunks/clear-KRGKPFOI.js")).clearCommand},{name:"bash",load:async()=>(await import("./chunks/bash-UYSJL7VA.js")).bashCommand},{name:"sh",load:async()=>(await import("./chunks/bash-UYSJL7VA.js")).shCommand},{name:"jq",load:async()=>(await import("./chunks/jq-AS2FKJCV.js")).jqCommand},{name:"base64",load:async()=>(await import("./chunks/base64-I3CXGD2Q.js")).base64Command},{name:"diff",load:async()=>(await import("./chunks/diff-EINZHDTZ.js")).diffCommand},{name:"date",load:async()=>(await import("./chunks/date-WUPBL2TL.js")).dateCommand},{name:"sleep",load:async()=>(await import("./chunks/sleep-ND6FZRZ4.js")).sleepCommand},{name:"timeout",load:async()=>(await import("./chunks/timeout-4QMASFQG.js")).timeoutCommand},{name:"time",load:async()=>(await import("./chunks/time-RPVNTV72.js")).timeCommand},{name:"seq",load:async()=>(await import("./chunks/seq-V7KBLSQ7.js")).seqCommand},{name:"expr",load:async()=>(await import("./chunks/expr-VPJ77DR7.js")).exprCommand},{name:"md5sum",load:async()=>(await import("./chunks/md5sum-GVZ66MRR.js")).md5sumCommand},{name:"sha1sum",load:async()=>(await import("./chunks/sha1sum-HFI2SRA4.js")).sha1sumCommand},{name:"sha256sum",load:async()=>(await import("./chunks/sha256sum-N44D3OCP.js")).sha256sumCommand},{name:"file",load:async()=>(await import("./chunks/file-MMSHRWCJ.js")).fileCommand},{name:"html-to-markdown",load:async()=>(await import("./chunks/html-to-markdown-G2FXKDLR.js")).htmlToMarkdownCommand},{name:"help",load:async()=>(await import("./chunks/help-DVG4AAGE.js")).helpCommand},{name:"which",load:async()=>(await import("./chunks/which-IQXNQFG3.js")).whichCommand},{name:"tac",load:async()=>(await import("./chunks/tac-HWXFWOGO.js")).tac},{name:"hostname",load:async()=>(await import("./chunks/hostname-WY6RKE32.js")).hostname},{name:"whoami",load:async()=>(await import("./chunks/whoami-E7PN2UWC.js")).whoami},{name:"od",load:async()=>(await import("./chunks/od-CRBL7ZML.js")).od},{name:"gzip",load:async()=>(await import("./chunks/gzip-VYBZGPTA.js")).gzipCommand},{name:"gunzip",load:async()=>(await import("./chunks/gzip-VYBZGPTA.js")).gunzipCommand},{name:"zcat",load:async()=>(await import("./chunks/gzip-VYBZGPTA.js")).zcatCommand}];(typeof __BROWSER__>"u"||!__BROWSER__)&&(tt.push({name:"tar",load:async()=>(await import("./chunks/tar-UO62YC6N.js")).tarCommand}),tt.push({name:"yq",load:async()=>(await import("./chunks/yq-R7XLL765.js")).yqCommand}),tt.push({name:"xan",load:async()=>(await import("./chunks/xan-LKZQYS27.js")).xanCommand}),tt.push({name:"sqlite3",load:async()=>(await import("./chunks/sqlite3-V4SEWTIR.js")).sqlite3Command}));var _s=[];(typeof __BROWSER__>"u"||!__BROWSER__)&&(_s.push({name:"python3",load:async()=>(await import("./chunks/python3-BBQ4SVHU.js")).python3Command}),_s.push({name:"python",load:async()=>(await import("./chunks/python3-BBQ4SVHU.js")).pythonCommand}));var Cs=[];(typeof __BROWSER__>"u"||!__BROWSER__)&&(Cs.push({name:"js-exec",load:async()=>(await import("./chunks/js-exec-LZPKIZ5V.js")).jsExecCommand}),Cs.push({name:"node",load:async()=>(await import("./chunks/js-exec-LZPKIZ5V.js")).nodeStubCommand}));var Gi=[{name:"curl",load:async()=>(await import("./chunks/curl-2DCNBIKJ.js")).curlCommand}],Kn=new Map;function Wt(e){return{name:e.name,async execute(t,s){let n=Kn.get(e.name);if(n||(n=await ve.runTrustedAsync(()=>e.load()),Kn.set(e.name,n)),s.coverage&&(typeof __BROWSER__>"u"||!__BROWSER__)){let{emitFlagCoverage:r}=await import("./chunks/flag-coverage-Z2EIMOXJ.js");r(s.coverage,e.name,t)}return n.execute(t,s)}}}function Xn(e){return(e?tt.filter(s=>e.includes(s.name)):tt).map(Wt)}function Yn(){return Gi.map(Wt)}function Qn(){return _s.map(Wt)}function Jn(){return Cs.map(Wt)}function er(e){return"load"in e&&typeof e.load=="function"}function tr(e){let t=null;return{name:e.name,trusted:!0,async execute(s,n){return t||(t=await e.load()),t.execute(s,n)}}}function L(e){if(!e||e==="/")return"/";let t=e.endsWith("/")&&e!=="/"?e.slice(0,-1):e;t.startsWith("/")||(t=`/${t}`);let s=t.split("/").filter(r=>r&&r!=="."),n=[];for(let r of s)r===".."?n.pop():n.push(r);return`/${n.join("/")}`||"/"}function M(e,t){if(e.includes("\0"))throw new Error(`ENOENT: path contains null byte, ${t} '${e}'`)}function Ze(e){let t=L(e);if(t==="/")return"/";let s=t.lastIndexOf("/");return s===0?"/":t.slice(0,s)}function Mt(e,t){if(t.startsWith("/"))return L(t);let s=e==="/"?`/${t}`:`${e}/${t}`;return L(s)}function gt(e,t){return e==="/"?`/${t}`:`${e}/${t}`}function st(e,t){if(t.startsWith("/"))return L(t);let s=Ze(e);return L(gt(s,t))}var nt=new TextEncoder;function Ki(e){return typeof e=="object"&&e!==null&&!(e instanceof Uint8Array)&&"content"in e}var wt=class{data=new Map;constructor(t){if(this.data.set("/",{type:"directory",mode:493,mtime:new Date}),t)for(let[s,n]of Object.entries(t))typeof n=="function"?this.writeFileLazy(s,n):Ki(n)?this.writeFileSync(s,n.content,void 0,{mode:n.mode,mtime:n.mtime}):this.writeFileSync(s,n)}ensureParentDirs(t){let s=Ze(t);s!=="/"&&(this.data.has(s)||(this.ensureParentDirs(s),this.data.set(s,{type:"directory",mode:493,mtime:new Date})))}writeFileSync(t,s,n,r){M(t,"write");let i=L(t);this.ensureParentDirs(i);let o=Le(n),a=Je(s,o);this.data.set(i,{type:"file",content:a,mode:r?.mode??420,mtime:r?.mtime??new Date})}writeFileLazy(t,s,n){M(t,"write");let r=L(t);this.ensureParentDirs(r),this.data.set(r,{type:"file",lazy:s,mode:n?.mode??420,mtime:n?.mtime??new Date})}async materializeLazy(t,s){let n=await s.lazy(),i={type:"file",content:typeof n=="string"?nt.encode(n):n,mode:s.mode,mtime:s.mtime};return this.data.set(t,i),i}async readFile(t,s){let n=await this.readFileBuffer(t),r=Le(s);return et(n,r)}async readFileBytes(t){let s=await this.readFileBuffer(t);return et(s,"binary")}async readFileBuffer(t){M(t,"open");let s=this.resolvePathWithSymlinks(t),n=this.data.get(s);if(!n)throw new Error(`ENOENT: no such file or directory, open '${t}'`);if(n.type!=="file")throw new Error(`EISDIR: illegal operation on a directory, read '${t}'`);if("lazy"in n){let r=await this.materializeLazy(s,n);return r.content instanceof Uint8Array?r.content:nt.encode(r.content)}return n.content instanceof Uint8Array?n.content:nt.encode(n.content)}async writeFile(t,s,n){this.writeFileSync(t,s,n)}async appendFile(t,s,n){M(t,"append");let r=L(t),i=this.data.get(r);if(i&&i.type==="directory")throw new Error(`EISDIR: illegal operation on a directory, write '${t}'`);let o=Le(n),a=Je(s,o);if(i?.type==="file"){let l=i;"lazy"in l&&(l=await this.materializeLazy(r,l));let c="content"in l&&l.content instanceof Uint8Array?l.content:nt.encode("content"in l?l.content:""),u=new Uint8Array(c.length+a.length);u.set(c),u.set(a,c.length),this.data.set(r,{type:"file",content:u,mode:l.mode,mtime:new Date})}else this.writeFileSync(t,s,n)}async exists(t){if(t.includes("\0"))return!1;try{let s=this.resolvePathWithSymlinks(t);return this.data.has(s)}catch{return!1}}async stat(t){M(t,"stat");let s=this.resolvePathWithSymlinks(t),n=this.data.get(s);if(!n)throw new Error(`ENOENT: no such file or directory, stat '${t}'`);n.type==="file"&&"lazy"in n&&(n=await this.materializeLazy(s,n));let r=0;return n.type==="file"&&"content"in n&&n.content&&(n.content instanceof Uint8Array?r=n.content.length:r=nt.encode(n.content).length),{isFile:n.type==="file",isDirectory:n.type==="directory",isSymbolicLink:!1,mode:n.mode,size:r,mtime:n.mtime||new Date}}async lstat(t){M(t,"lstat");let s=this.resolveIntermediateSymlinks(t),n=this.data.get(s);if(!n)throw new Error(`ENOENT: no such file or directory, lstat '${t}'`);if(n.type==="symlink")return{isFile:!1,isDirectory:!1,isSymbolicLink:!0,mode:n.mode,size:n.target.length,mtime:n.mtime||new Date};n.type==="file"&&"lazy"in n&&(n=await this.materializeLazy(s,n));let r=0;return n.type==="file"&&"content"in n&&n.content&&(n.content instanceof Uint8Array?r=n.content.length:r=nt.encode(n.content).length),{isFile:n.type==="file",isDirectory:n.type==="directory",isSymbolicLink:!1,mode:n.mode,size:r,mtime:n.mtime||new Date}}resolveIntermediateSymlinks(t){let s=L(t);if(s==="/")return"/";let n=s.slice(1).split("/");if(n.length<=1)return s;let r="",i=new Set;for(let o=0;o<n.length-1;o++){let a=n[o];r=`${r}/${a}`;let l=this.data.get(r),c=0,u=40;for(;l&&l.type==="symlink"&&c<u;){if(i.has(r))throw new Error(`ELOOP: too many levels of symbolic links, lstat '${t}'`);i.add(r),r=st(r,l.target),l=this.data.get(r),c++}if(c>=u)throw new Error(`ELOOP: too many levels of symbolic links, lstat '${t}'`)}return`${r}/${n[n.length-1]}`}resolvePathWithSymlinks(t){let s=L(t);if(s==="/")return"/";let n=s.slice(1).split("/"),r="",i=new Set;for(let o of n){r=`${r}/${o}`;let a=this.data.get(r),l=0,c=40;for(;a&&a.type==="symlink"&&l<c;){if(i.has(r))throw new Error(`ELOOP: too many levels of symbolic links, open '${t}'`);i.add(r),r=st(r,a.target),a=this.data.get(r),l++}if(l>=c)throw new Error(`ELOOP: too many levels of symbolic links, open '${t}'`)}return r}async mkdir(t,s){this.mkdirSync(t,s)}mkdirSync(t,s){M(t,"mkdir");let n=L(t);if(this.data.has(n)){if(this.data.get(n)?.type==="file")throw new Error(`EEXIST: file already exists, mkdir '${t}'`);if(!s?.recursive)throw new Error(`EEXIST: directory already exists, mkdir '${t}'`);return}let r=Ze(n);if(r!=="/"&&!this.data.has(r))if(s?.recursive)this.mkdirSync(r,{recursive:!0});else throw new Error(`ENOENT: no such file or directory, mkdir '${t}'`);this.data.set(n,{type:"directory",mode:493,mtime:new Date})}async readdir(t){return(await this.readdirWithFileTypes(t)).map(n=>n.name)}async readdirWithFileTypes(t){M(t,"scandir");let s=L(t),n=this.data.get(s);if(!n)throw new Error(`ENOENT: no such file or directory, scandir '${t}'`);let r=new Set;for(;n&&n.type==="symlink";){if(r.has(s))throw new Error(`ELOOP: too many levels of symbolic links, scandir '${t}'`);r.add(s),s=st(s,n.target),n=this.data.get(s)}if(!n)throw new Error(`ENOENT: no such file or directory, scandir '${t}'`);if(n.type!=="directory")throw new Error(`ENOTDIR: not a directory, scandir '${t}'`);let i=s==="/"?"/":`${s}/`,o=new Map;for(let[a,l]of this.data.entries())if(a!==s&&a.startsWith(i)){let c=a.slice(i.length),u=c.split("/")[0];u&&!c.includes("/",u.length)&&!o.has(u)&&o.set(u,{name:u,isFile:l.type==="file",isDirectory:l.type==="directory",isSymbolicLink:l.type==="symlink"})}return Array.from(o.values()).sort((a,l)=>a.name<l.name?-1:a.name>l.name?1:0)}async rm(t,s){M(t,"rm");let n=L(t),r=this.data.get(n);if(!r){if(s?.force)return;throw new Error(`ENOENT: no such file or directory, rm '${t}'`)}if(r.type==="directory"){let i=await this.readdir(n);if(i.length>0){if(!s?.recursive)throw new Error(`ENOTEMPTY: directory not empty, rm '${t}'`);for(let o of i){let a=gt(n,o);await this.rm(a,s)}}}this.data.delete(n)}async cp(t,s,n){M(t,"cp"),M(s,"cp");let r=L(t),i=L(s),o=this.data.get(r);if(!o)throw new Error(`ENOENT: no such file or directory, cp '${t}'`);if(o.type==="file")if(this.ensureParentDirs(i),"content"in o){let a=o.content instanceof Uint8Array?new Uint8Array(o.content):o.content;this.data.set(i,{...o,content:a})}else this.data.set(i,{...o});else if(o.type==="symlink")this.ensureParentDirs(i),this.data.set(i,{...o});else if(o.type==="directory"){if(!n?.recursive)throw new Error(`EISDIR: is a directory, cp '${t}'`);await this.mkdir(i,{recursive:!0});let a=await this.readdir(r);for(let l of a){let c=gt(r,l),u=gt(i,l);await this.cp(c,u,n)}}}async mv(t,s){await this.cp(t,s,{recursive:!0}),await this.rm(t,{recursive:!0})}getAllPaths(){return Array.from(this.data.keys())}resolvePath(t,s){return Mt(t,s)}async chmod(t,s){M(t,"chmod");let n=L(t),r=this.data.get(n);if(!r)throw new Error(`ENOENT: no such file or directory, chmod '${t}'`);r.mode=s}async symlink(t,s){M(s,"symlink");let n=L(s);if(this.data.has(n))throw new Error(`EEXIST: file already exists, symlink '${s}'`);this.ensureParentDirs(n),this.data.set(n,{type:"symlink",target:t,mode:511,mtime:new Date})}async link(t,s){M(t,"link"),M(s,"link");let n=L(t),r=L(s),i=this.data.get(n);if(!i)throw new Error(`ENOENT: no such file or directory, link '${t}'`);if(i.type!=="file")throw new Error(`EPERM: operation not permitted, link '${t}'`);if(this.data.has(r))throw new Error(`EEXIST: file already exists, link '${s}'`);let o=i;"lazy"in o&&(o=await this.materializeLazy(n,o)),this.ensureParentDirs(r),this.data.set(r,{type:"file",content:o.content,mode:o.mode,mtime:o.mtime})}async readlink(t){M(t,"readlink");let s=L(t),n=this.data.get(s);if(!n)throw new Error(`ENOENT: no such file or directory, readlink '${t}'`);if(n.type!=="symlink")throw new Error(`EINVAL: invalid argument, readlink '${t}'`);return n.target}async realpath(t){M(t,"realpath");let s=this.resolvePathWithSymlinks(t);if(!this.data.has(s))throw new Error(`ENOENT: no such file or directory, realpath '${t}'`);return s}async utimes(t,s,n){M(t,"utimes");let r=L(t),i=this.resolvePathWithSymlinks(r),o=this.data.get(i);if(!o)throw new Error(`ENOENT: no such file or directory, utimes '${t}'`);o.mtime=n}};function Xi(e){let t=e;return typeof t.mkdirSync=="function"&&typeof t.writeFileSync=="function"}function Yi(e,t){e.mkdirSync("/bin",{recursive:!0}),e.mkdirSync("/usr/bin",{recursive:!0}),t&&(e.mkdirSync("/home/user",{recursive:!0}),e.mkdirSync("/tmp",{recursive:!0}))}function Qi(e){e.mkdirSync("/dev",{recursive:!0}),e.writeFileSync("/dev/null",""),e.writeFileSync("/dev/zero",new Uint8Array(0)),e.writeFileSync("/dev/stdin",""),e.writeFileSync("/dev/stdout",""),e.writeFileSync("/dev/stderr","")}function Ji(e,t){e.mkdirSync("/proc/self/fd",{recursive:!0}),e.writeFileSync("/proc/version",`${Ln}
2
+ import{B as Hn,C as Un,D as ue,E as Ue,F as ee,G as Se,H as Lt,I as Zn,J as I,K as qn,L as Gn,M as Ae,N as As,O as Ft,P as j,a as Ln,b as ws,c as Fn,d as It,e as Q,f as V,g as $e,h as se,i as Ce,j as Fe,k as vs,l as Rt,m as Wn,n as bs,o as Mn,p as ye,q as Te,r as zn,s as Vn,t as $s,u as Es,v as We,w as Bn,x as jn,y as Ee,z as Ss}from"./chunks/chunk-LT26MLOT.js";import{a as Je,b as et,c as Le}from"./chunks/chunk-NTW6IA45.js";import{c as gs}from"./chunks/chunk-LIYVQA3X.js";import{a as On,b as Dn}from"./chunks/chunk-OOJCYVYF.js";import{a as Re,b as me,c as ys}from"./chunks/chunk-4PRVMER6.js";import{a as yt,b as Rn}from"./chunks/chunk-MO4RPBN2.js";import{a as Qe,b as ve}from"./chunks/chunk-YU6OGPZR.js";import{a as mt}from"./chunks/chunk-C6FRS5UB.js";import{b as je,d as Tn,e as ms}from"./chunks/chunk-63XSH3IT.js";import{a as de,b as he,c as le,d as pe,e as xn,f as B,g as He,h as Ot,i as Dt,j as In,k as Y,l as Tt,m as Ie,n as xt,o as be}from"./chunks/chunk-DHC3ILJI.js";import"./chunks/chunk-OBH7XN5N.js";import{a as ce}from"./chunks/chunk-RLNOQILG.js";import{a as De}from"./chunks/chunk-4VDEBYW7.js";import{a as Nn}from"./chunks/chunk-KGOUQS5A.js";import{readFile as ll}from"node:fs/promises";import{dirname as cl,resolve as kn}from"node:path";import{fileURLToPath as ul}from"node:url";var tt=[{name:"echo",load:async()=>(await import("./chunks/echo-2MUAOGUE.js")).echoCommand},{name:"cat",load:async()=>(await import("./chunks/cat-3TMJDECR.js")).catCommand},{name:"printf",load:async()=>(await import("./chunks/printf-3YAF3PBF.js")).printfCommand},{name:"ls",load:async()=>(await import("./chunks/ls-WONXDVOX.js")).lsCommand},{name:"mkdir",load:async()=>(await import("./chunks/mkdir-Z47OISSR.js")).mkdirCommand},{name:"rmdir",load:async()=>(await import("./chunks/rmdir-5KLM4EA6.js")).rmdirCommand},{name:"touch",load:async()=>(await import("./chunks/touch-DWKSZGOQ.js")).touchCommand},{name:"rm",load:async()=>(await import("./chunks/rm-L3NZOLLG.js")).rmCommand},{name:"cp",load:async()=>(await import("./chunks/cp-XH2ZB7WT.js")).cpCommand},{name:"mv",load:async()=>(await import("./chunks/mv-OY7X62QC.js")).mvCommand},{name:"ln",load:async()=>(await import("./chunks/ln-EGC4HRXZ.js")).lnCommand},{name:"chmod",load:async()=>(await import("./chunks/chmod-N5CQATDW.js")).chmodCommand},{name:"pwd",load:async()=>(await import("./chunks/pwd-6VBAPL3Y.js")).pwdCommand},{name:"readlink",load:async()=>(await import("./chunks/readlink-BD5VFOC5.js")).readlinkCommand},{name:"head",load:async()=>(await import("./chunks/head-BM7J6BEI.js")).headCommand},{name:"tail",load:async()=>(await import("./chunks/tail-YX6MELZ5.js")).tailCommand},{name:"wc",load:async()=>(await import("./chunks/wc-KTXPMRYY.js")).wcCommand},{name:"stat",load:async()=>(await import("./chunks/stat-XS2LXYS2.js")).statCommand},{name:"grep",load:async()=>(await import("./chunks/grep-3X5B47DW.js")).grepCommand},{name:"fgrep",load:async()=>(await import("./chunks/grep-3X5B47DW.js")).fgrepCommand},{name:"egrep",load:async()=>(await import("./chunks/grep-3X5B47DW.js")).egrepCommand},{name:"rg",load:async()=>(await import("./chunks/rg-UPQTBQZR.js")).rgCommand},{name:"sed",load:async()=>(await import("./chunks/sed-7JYCZG23.js")).sedCommand},{name:"awk",load:async()=>(await import("./chunks/awk2-VEM6BYZZ.js")).awkCommand2},{name:"sort",load:async()=>(await import("./chunks/sort-ES3NRFJA.js")).sortCommand},{name:"uniq",load:async()=>(await import("./chunks/uniq-2KXDTNDX.js")).uniqCommand},{name:"comm",load:async()=>(await import("./chunks/comm-YZHVF2XN.js")).commCommand},{name:"cut",load:async()=>(await import("./chunks/cut-MWPHE25M.js")).cutCommand},{name:"paste",load:async()=>(await import("./chunks/paste-7MEIW3PG.js")).pasteCommand},{name:"tr",load:async()=>(await import("./chunks/tr-A6IXSBQX.js")).trCommand},{name:"rev",load:async()=>(await import("./chunks/rev-6LTZEDBA.js")).rev},{name:"nl",load:async()=>(await import("./chunks/nl-XLPXDHHK.js")).nl},{name:"fold",load:async()=>(await import("./chunks/fold-QC27S46O.js")).fold},{name:"expand",load:async()=>(await import("./chunks/expand-47QQBMM5.js")).expand},{name:"unexpand",load:async()=>(await import("./chunks/unexpand-UCJETXUX.js")).unexpand},{name:"strings",load:async()=>(await import("./chunks/strings-YGI6HF5M.js")).strings},{name:"split",load:async()=>(await import("./chunks/split-QFBCCUR5.js")).split},{name:"column",load:async()=>(await import("./chunks/column-MTXKQLJH.js")).column},{name:"join",load:async()=>(await import("./chunks/join-5J5VA3I7.js")).join},{name:"tee",load:async()=>(await import("./chunks/tee-XKJM7HV7.js")).teeCommand},{name:"find",load:async()=>(await import("./chunks/find-O2KKT6KZ.js")).findCommand},{name:"basename",load:async()=>(await import("./chunks/basename-KBUKWB2E.js")).basenameCommand},{name:"dirname",load:async()=>(await import("./chunks/dirname-5FAOMLBL.js")).dirnameCommand},{name:"tree",load:async()=>(await import("./chunks/tree-HEKABARE.js")).treeCommand},{name:"du",load:async()=>(await import("./chunks/du-LDAPXSGF.js")).duCommand},{name:"env",load:async()=>(await import("./chunks/env-NK55NKL6.js")).envCommand},{name:"printenv",load:async()=>(await import("./chunks/env-NK55NKL6.js")).printenvCommand},{name:"alias",load:async()=>(await import("./chunks/alias-3GODYSFD.js")).aliasCommand},{name:"unalias",load:async()=>(await import("./chunks/alias-3GODYSFD.js")).unaliasCommand},{name:"history",load:async()=>(await import("./chunks/history-UUKG55YW.js")).historyCommand},{name:"xargs",load:async()=>(await import("./chunks/xargs-EWL5DXR3.js")).xargsCommand},{name:"true",load:async()=>(await import("./chunks/true-DP5UZP52.js")).trueCommand},{name:"false",load:async()=>(await import("./chunks/true-DP5UZP52.js")).falseCommand},{name:"clear",load:async()=>(await import("./chunks/clear-KRGKPFOI.js")).clearCommand},{name:"bash",load:async()=>(await import("./chunks/bash-UYSJL7VA.js")).bashCommand},{name:"sh",load:async()=>(await import("./chunks/bash-UYSJL7VA.js")).shCommand},{name:"jq",load:async()=>(await import("./chunks/jq-AS2FKJCV.js")).jqCommand},{name:"base64",load:async()=>(await import("./chunks/base64-I3CXGD2Q.js")).base64Command},{name:"diff",load:async()=>(await import("./chunks/diff-EINZHDTZ.js")).diffCommand},{name:"date",load:async()=>(await import("./chunks/date-WUPBL2TL.js")).dateCommand},{name:"sleep",load:async()=>(await import("./chunks/sleep-ND6FZRZ4.js")).sleepCommand},{name:"timeout",load:async()=>(await import("./chunks/timeout-4QMASFQG.js")).timeoutCommand},{name:"time",load:async()=>(await import("./chunks/time-RPVNTV72.js")).timeCommand},{name:"seq",load:async()=>(await import("./chunks/seq-V7KBLSQ7.js")).seqCommand},{name:"expr",load:async()=>(await import("./chunks/expr-VPJ77DR7.js")).exprCommand},{name:"md5sum",load:async()=>(await import("./chunks/md5sum-GVZ66MRR.js")).md5sumCommand},{name:"sha1sum",load:async()=>(await import("./chunks/sha1sum-HFI2SRA4.js")).sha1sumCommand},{name:"sha256sum",load:async()=>(await import("./chunks/sha256sum-N44D3OCP.js")).sha256sumCommand},{name:"file",load:async()=>(await import("./chunks/file-MMSHRWCJ.js")).fileCommand},{name:"html-to-markdown",load:async()=>(await import("./chunks/html-to-markdown-G2FXKDLR.js")).htmlToMarkdownCommand},{name:"help",load:async()=>(await import("./chunks/help-DVG4AAGE.js")).helpCommand},{name:"which",load:async()=>(await import("./chunks/which-IQXNQFG3.js")).whichCommand},{name:"tac",load:async()=>(await import("./chunks/tac-HWXFWOGO.js")).tac},{name:"hostname",load:async()=>(await import("./chunks/hostname-WY6RKE32.js")).hostname},{name:"whoami",load:async()=>(await import("./chunks/whoami-E7PN2UWC.js")).whoami},{name:"od",load:async()=>(await import("./chunks/od-CRBL7ZML.js")).od},{name:"gzip",load:async()=>(await import("./chunks/gzip-VYBZGPTA.js")).gzipCommand},{name:"gunzip",load:async()=>(await import("./chunks/gzip-VYBZGPTA.js")).gunzipCommand},{name:"zcat",load:async()=>(await import("./chunks/gzip-VYBZGPTA.js")).zcatCommand}];(typeof __BROWSER__>"u"||!__BROWSER__)&&(tt.push({name:"tar",load:async()=>(await import("./chunks/tar-UO62YC6N.js")).tarCommand}),tt.push({name:"yq",load:async()=>(await import("./chunks/yq-R7XLL765.js")).yqCommand}),tt.push({name:"xan",load:async()=>(await import("./chunks/xan-LKZQYS27.js")).xanCommand}),tt.push({name:"sqlite3",load:async()=>(await import("./chunks/sqlite3-V4SEWTIR.js")).sqlite3Command}));var _s=[];(typeof __BROWSER__>"u"||!__BROWSER__)&&(_s.push({name:"python3",load:async()=>(await import("./chunks/python3-BBQ4SVHU.js")).python3Command}),_s.push({name:"python",load:async()=>(await import("./chunks/python3-BBQ4SVHU.js")).pythonCommand}));var Cs=[];(typeof __BROWSER__>"u"||!__BROWSER__)&&(Cs.push({name:"js-exec",load:async()=>(await import("./chunks/js-exec-LZPKIZ5V.js")).jsExecCommand}),Cs.push({name:"node",load:async()=>(await import("./chunks/js-exec-LZPKIZ5V.js")).nodeStubCommand}));var Gi=[{name:"curl",load:async()=>(await import("./chunks/curl-2DCNBIKJ.js")).curlCommand}],Kn=new Map;function Wt(e){return{name:e.name,async execute(t,s){let n=Kn.get(e.name);if(n||(n=await ve.runTrustedAsync(()=>e.load()),Kn.set(e.name,n)),s.coverage&&(typeof __BROWSER__>"u"||!__BROWSER__)){let{emitFlagCoverage:r}=await import("./chunks/flag-coverage-Z2EIMOXJ.js");r(s.coverage,e.name,t)}return n.execute(t,s)}}}function Xn(e){return(e?tt.filter(s=>e.includes(s.name)):tt).map(Wt)}function Yn(){return Gi.map(Wt)}function Qn(){return _s.map(Wt)}function Jn(){return Cs.map(Wt)}function er(e){return"load"in e&&typeof e.load=="function"}function tr(e){let t=null;return{name:e.name,trusted:!0,async execute(s,n){return t||(t=await e.load()),t.execute(s,n)}}}function L(e){if(!e||e==="/")return"/";let t=e.endsWith("/")&&e!=="/"?e.slice(0,-1):e;t.startsWith("/")||(t=`/${t}`);let s=t.split("/").filter(r=>r&&r!=="."),n=[];for(let r of s)r===".."?n.pop():n.push(r);return`/${n.join("/")}`||"/"}function M(e,t){if(e.includes("\0"))throw new Error(`ENOENT: path contains null byte, ${t} '${e}'`)}function Ze(e){let t=L(e);if(t==="/")return"/";let s=t.lastIndexOf("/");return s===0?"/":t.slice(0,s)}function Mt(e,t){if(t.startsWith("/"))return L(t);let s=e==="/"?`/${t}`:`${e}/${t}`;return L(s)}function gt(e,t){return e==="/"?`/${t}`:`${e}/${t}`}function st(e,t){if(t.startsWith("/"))return L(t);let s=Ze(e);return L(gt(s,t))}var nt=new TextEncoder;function Ki(e){return typeof e=="object"&&e!==null&&!(e instanceof Uint8Array)&&"content"in e}var wt=class{data=new Map;constructor(t){if(this.data.set("/",{type:"directory",mode:493,mtime:new Date}),t)for(let[s,n]of Object.entries(t))typeof n=="function"?this.writeFileLazy(s,n):Ki(n)?this.writeFileSync(s,n.content,void 0,{mode:n.mode,mtime:n.mtime}):this.writeFileSync(s,n)}ensureParentDirs(t){let s=Ze(t);s!=="/"&&(this.data.has(s)||(this.ensureParentDirs(s),this.data.set(s,{type:"directory",mode:493,mtime:new Date})))}writeFileSync(t,s,n,r){M(t,"write");let i=L(t);this.ensureParentDirs(i);let o=Le(n),a=Je(s,o);this.data.set(i,{type:"file",content:a,mode:r?.mode??420,mtime:r?.mtime??new Date})}writeFileLazy(t,s,n){M(t,"write");let r=L(t);this.ensureParentDirs(r),this.data.set(r,{type:"file",lazy:s,mode:n?.mode??420,mtime:n?.mtime??new Date})}async materializeLazy(t,s){let n=await s.lazy(),i={type:"file",content:typeof n=="string"?nt.encode(n):n,mode:s.mode,mtime:s.mtime};return this.data.set(t,i),i}async readFile(t,s){let n=await this.readFileBuffer(t),r=Le(s);return et(n,r)}async readFileBytes(t){let s=await this.readFileBuffer(t);return et(s,"binary")}async readFileBuffer(t){M(t,"open");let s=this.resolvePathWithSymlinks(t),n=this.data.get(s);if(!n)throw new Error(`ENOENT: no such file or directory, open '${t}'`);if(n.type!=="file")throw new Error(`EISDIR: illegal operation on a directory, read '${t}'`);if("lazy"in n){let r=await this.materializeLazy(s,n);return r.content instanceof Uint8Array?r.content:nt.encode(r.content)}return n.content instanceof Uint8Array?n.content:nt.encode(n.content)}async writeFile(t,s,n){this.writeFileSync(t,s,n)}async appendFile(t,s,n){M(t,"append");let r=L(t),i=this.data.get(r);if(i&&i.type==="directory")throw new Error(`EISDIR: illegal operation on a directory, write '${t}'`);let o=Le(n),a=Je(s,o);if(i?.type==="file"){let l=i;"lazy"in l&&(l=await this.materializeLazy(r,l));let c="content"in l&&l.content instanceof Uint8Array?l.content:nt.encode("content"in l?l.content:""),u=new Uint8Array(c.length+a.length);u.set(c),u.set(a,c.length),this.data.set(r,{type:"file",content:u,mode:l.mode,mtime:new Date})}else this.writeFileSync(t,s,n)}async exists(t){if(t.includes("\0"))return!1;try{let s=this.resolvePathWithSymlinks(t);return this.data.has(s)}catch{return!1}}async stat(t){M(t,"stat");let s=this.resolvePathWithSymlinks(t),n=this.data.get(s);if(!n)throw new Error(`ENOENT: no such file or directory, stat '${t}'`);n.type==="file"&&"lazy"in n&&(n=await this.materializeLazy(s,n));let r=0;return n.type==="file"&&"content"in n&&n.content&&(n.content instanceof Uint8Array?r=n.content.length:r=nt.encode(n.content).length),{isFile:n.type==="file",isDirectory:n.type==="directory",isSymbolicLink:!1,mode:n.mode,size:r,mtime:n.mtime||new Date}}async lstat(t){M(t,"lstat");let s=this.resolveIntermediateSymlinks(t),n=this.data.get(s);if(!n)throw new Error(`ENOENT: no such file or directory, lstat '${t}'`);if(n.type==="symlink")return{isFile:!1,isDirectory:!1,isSymbolicLink:!0,mode:n.mode,size:n.target.length,mtime:n.mtime||new Date};n.type==="file"&&"lazy"in n&&(n=await this.materializeLazy(s,n));let r=0;return n.type==="file"&&"content"in n&&n.content&&(n.content instanceof Uint8Array?r=n.content.length:r=nt.encode(n.content).length),{isFile:n.type==="file",isDirectory:n.type==="directory",isSymbolicLink:!1,mode:n.mode,size:r,mtime:n.mtime||new Date}}resolveIntermediateSymlinks(t){let s=L(t);if(s==="/")return"/";let n=s.slice(1).split("/");if(n.length<=1)return s;let r="",i=new Set;for(let o=0;o<n.length-1;o++){let a=n[o];r=`${r}/${a}`;let l=this.data.get(r),c=0,u=40;for(;l&&l.type==="symlink"&&c<u;){if(i.has(r))throw new Error(`ELOOP: too many levels of symbolic links, lstat '${t}'`);i.add(r),r=st(r,l.target),l=this.data.get(r),c++}if(c>=u)throw new Error(`ELOOP: too many levels of symbolic links, lstat '${t}'`)}return`${r}/${n[n.length-1]}`}resolvePathWithSymlinks(t){let s=L(t);if(s==="/")return"/";let n=s.slice(1).split("/"),r="",i=new Set;for(let o of n){r=`${r}/${o}`;let a=this.data.get(r),l=0,c=40;for(;a&&a.type==="symlink"&&l<c;){if(i.has(r))throw new Error(`ELOOP: too many levels of symbolic links, open '${t}'`);i.add(r),r=st(r,a.target),a=this.data.get(r),l++}if(l>=c)throw new Error(`ELOOP: too many levels of symbolic links, open '${t}'`)}return r}async mkdir(t,s){this.mkdirSync(t,s)}mkdirSync(t,s){M(t,"mkdir");let n=L(t);if(this.data.has(n)){if(this.data.get(n)?.type==="file")throw new Error(`EEXIST: file already exists, mkdir '${t}'`);if(!s?.recursive)throw new Error(`EEXIST: directory already exists, mkdir '${t}'`);return}let r=Ze(n);if(r!=="/"&&!this.data.has(r))if(s?.recursive)this.mkdirSync(r,{recursive:!0});else throw new Error(`ENOENT: no such file or directory, mkdir '${t}'`);this.data.set(n,{type:"directory",mode:493,mtime:new Date})}async readdir(t){return(await this.readdirWithFileTypes(t)).map(n=>n.name)}async readdirWithFileTypes(t){M(t,"scandir");let s=L(t),n=this.data.get(s);if(!n)throw new Error(`ENOENT: no such file or directory, scandir '${t}'`);let r=new Set;for(;n&&n.type==="symlink";){if(r.has(s))throw new Error(`ELOOP: too many levels of symbolic links, scandir '${t}'`);r.add(s),s=st(s,n.target),n=this.data.get(s)}if(!n)throw new Error(`ENOENT: no such file or directory, scandir '${t}'`);if(n.type!=="directory")throw new Error(`ENOTDIR: not a directory, scandir '${t}'`);let i=s==="/"?"/":`${s}/`,o=new Map;for(let[a,l]of this.data.entries())if(a!==s&&a.startsWith(i)){let c=a.slice(i.length),u=c.split("/")[0];u&&!c.includes("/",u.length)&&!o.has(u)&&o.set(u,{name:u,isFile:l.type==="file",isDirectory:l.type==="directory",isSymbolicLink:l.type==="symlink"})}return Array.from(o.values()).sort((a,l)=>a.name<l.name?-1:a.name>l.name?1:0)}async rm(t,s){M(t,"rm");let n=L(t),r=this.data.get(n);if(!r){if(s?.force)return;throw new Error(`ENOENT: no such file or directory, rm '${t}'`)}if(r.type==="directory"){let i=await this.readdir(n);if(i.length>0){if(!s?.recursive)throw new Error(`ENOTEMPTY: directory not empty, rm '${t}'`);for(let o of i){let a=gt(n,o);await this.rm(a,s)}}}this.data.delete(n)}async cp(t,s,n){M(t,"cp"),M(s,"cp");let r=L(t),i=L(s),o=this.data.get(r);if(!o)throw new Error(`ENOENT: no such file or directory, cp '${t}'`);if(o.type==="file")if(this.ensureParentDirs(i),"content"in o){let a=o.content instanceof Uint8Array?new Uint8Array(o.content):o.content;this.data.set(i,{...o,content:a})}else this.data.set(i,{...o});else if(o.type==="symlink")this.ensureParentDirs(i),this.data.set(i,{...o});else if(o.type==="directory"){if(!n?.recursive)throw new Error(`EISDIR: is a directory, cp '${t}'`);await this.mkdir(i,{recursive:!0});let a=await this.readdir(r);for(let l of a){let c=gt(r,l),u=gt(i,l);await this.cp(c,u,n)}}}async mv(t,s){await this.cp(t,s,{recursive:!0}),await this.rm(t,{recursive:!0})}getAllPaths(){return Array.from(this.data.keys())}resolvePath(t,s){return Mt(t,s)}async chmod(t,s){M(t,"chmod");let n=L(t),r=this.data.get(n);if(!r)throw new Error(`ENOENT: no such file or directory, chmod '${t}'`);r.mode=s}async symlink(t,s){M(s,"symlink");let n=L(s);if(this.data.has(n))throw new Error(`EEXIST: file already exists, symlink '${s}'`);this.ensureParentDirs(n),this.data.set(n,{type:"symlink",target:t,mode:511,mtime:new Date})}async link(t,s){M(t,"link"),M(s,"link");let n=L(t),r=L(s),i=this.data.get(n);if(!i)throw new Error(`ENOENT: no such file or directory, link '${t}'`);if(i.type!=="file")throw new Error(`EPERM: operation not permitted, link '${t}'`);if(this.data.has(r))throw new Error(`EEXIST: file already exists, link '${s}'`);let o=i;"lazy"in o&&(o=await this.materializeLazy(n,o)),this.ensureParentDirs(r),this.data.set(r,{type:"file",content:o.content,mode:o.mode,mtime:o.mtime})}async readlink(t){M(t,"readlink");let s=L(t),n=this.data.get(s);if(!n)throw new Error(`ENOENT: no such file or directory, readlink '${t}'`);if(n.type!=="symlink")throw new Error(`EINVAL: invalid argument, readlink '${t}'`);return n.target}async realpath(t){M(t,"realpath");let s=this.resolvePathWithSymlinks(t);if(!this.data.has(s))throw new Error(`ENOENT: no such file or directory, realpath '${t}'`);return s}async utimes(t,s,n){M(t,"utimes");let r=L(t),i=this.resolvePathWithSymlinks(r),o=this.data.get(i);if(!o)throw new Error(`ENOENT: no such file or directory, utimes '${t}'`);o.mtime=n}};function Xi(e){let t=e;return typeof t.mkdirSync=="function"&&typeof t.writeFileSync=="function"}function Yi(e,t){e.mkdirSync("/bin",{recursive:!0}),e.mkdirSync("/usr/bin",{recursive:!0}),t&&(e.mkdirSync("/home/user",{recursive:!0}),e.mkdirSync("/tmp",{recursive:!0}))}function Qi(e){e.mkdirSync("/dev",{recursive:!0}),e.writeFileSync("/dev/null",""),e.writeFileSync("/dev/zero",new Uint8Array(0)),e.writeFileSync("/dev/stdin",""),e.writeFileSync("/dev/stdout",""),e.writeFileSync("/dev/stderr","")}function Ji(e,t){e.mkdirSync("/proc/self/fd",{recursive:!0}),e.writeFileSync("/proc/version",`${Ln}
3
3
  `),e.writeFileSync("/proc/self/exe","/bin/bash"),e.writeFileSync("/proc/self/cmdline","bash\0"),e.writeFileSync("/proc/self/comm",`bash
4
4
  `),e.writeFileLazy?e.writeFileLazy("/proc/self/status",()=>ws(t)):e.writeFileSync("/proc/self/status",ws(t)),e.writeFileSync("/proc/self/fd/0","/dev/stdin"),e.writeFileSync("/proc/self/fd/1","/dev/stdout"),e.writeFileSync("/proc/self/fd/2","/dev/stderr")}function nr(e,t,s={pid:1,ppid:0,uid:1e3,gid:1e3}){Xi(e)&&(Yi(e,t),Qi(e),Ji(e,s))}var eo=["allexport","errexit","noglob","noclobber","noexec","nounset","pipefail","posix","verbose","xtrace"],to=["braceexpand","hashall","interactive-comments"];function ks(e){let t=[],s=[...to.map(n=>({name:n,enabled:!0})),...eo.map(n=>({name:n,enabled:e[n]}))].sort((n,r)=>n.name.localeCompare(r.name));for(let n of s)n.enabled&&t.push(n.name);return t.join(":")}function it(e){e.state.env.set("SHELLOPTS",ks(e.state.options))}var so=["dotglob","expand_aliases","extglob","failglob","globskipdots","globstar","lastpipe","nocaseglob","nocasematch","nullglob","xpg_echo"];function Ns(e){let t=[];for(let s of so)e[s]&&t.push(s);return t.join(":")}function Os(e){e.state.env.set("BASHOPTS",Ns(e.state.shoptOptions))}var no="BASH_ALIAS_";function rr(e){return e.parts.length!==1?!1:e.parts[0].type==="Literal"}function ir(e){if(e.parts.length!==1)return null;let t=e.parts[0];return t.type==="Literal"?t.value:null}function or(e,t){return e.env.get(`${no}${t}`)}function Ds(e,t,s){if(!t.name||!rr(t.name))return t;let n=ir(t.name);if(!n)return t;let r=or(e,n);if(!r||s.has(n))return t;try{s.add(n);let i=new V,o=r,a=r.endsWith(" ");if(!a)for(let f of t.args){let d=lr(f);o+=` ${d}`}let l;try{l=i.parse(o)}catch(f){if(f instanceof It)throw f;return t}if(l.statements.length!==1||l.statements[0].pipelines.length!==1||l.statements[0].pipelines[0].commands.length!==1)return ar(t,r);let c=l.statements[0].pipelines[0].commands[0];if(c.type!=="SimpleCommand")return ar(t,r);let u={...c,assignments:[...t.assignments,...c.assignments],redirections:[...c.redirections,...t.redirections],line:t.line};if(a&&t.args.length>0&&(u={...u,args:[...u.args,...t.args]},u.args.length>0)){let f=u.args[0];if(rr(f)){let d=ir(f);if(d&&or(e,d)){let h={type:"SimpleCommand",name:f,args:u.args.slice(1),assignments:[],redirections:[]},m=Ds(e,h,s);m!==h&&(u={...u,name:m.name,args:[...m.args]})}}}return u}catch(i){throw s.delete(n),i}}function ar(e,t){let s=t;for(let o of e.args){let a=lr(o);s+=` ${a}`}let n=new V,r=n.parseWordFromString("eval",!1,!1),i=n.parseWordFromString(`'${s.replace(/'/g,"'\\''")}'`,!1,!1);return{type:"SimpleCommand",name:r,args:[i],assignments:e.assignments,redirections:e.redirections,line:e.line}}function lr(e){let t="";for(let s of e.parts)switch(s.type){case"Literal":t+=s.value.replace(/([\s"'$`\\*?[\]{}()<>|&;#!])/g,"\\$1");break;case"SingleQuoted":t+=`'${s.value}'`;break;case"DoubleQuoted":t+=`"${s.parts.map(n=>n.type==="Literal"?n.value:`$${n.type}`).join("")}"`;break;case"ParameterExpansion":t+=`\${${s.parameter}}`;break;case"CommandSubstitution":t+="$(...)";break;case"ArithmeticExpansion":t+=`$((${s.expression}))`;break;case"Glob":t+=s.pattern;break;default:break}return t}async function cr(e,t){let s=t.parts.map(u=>u.type==="Literal"?u.value:"\0").join(""),n=s.match(/^([a-zA-Z_][a-zA-Z0-9_]*)=\(/);if(!n||!s.endsWith(")"))return null;let r=n[1],i=[],o=!1,a="",l=!1;for(let u of t.parts)if(u.type==="Literal"){let f=u.value;if(!o){let d=f.indexOf("=(");d!==-1&&(o=!0,f=f.slice(d+2))}if(o){f.endsWith(")")&&(f=f.slice(0,-1));let d=f.split(/(\s+)/);for(let h of d)/^\s+$/.test(h)?(a||l)&&(i.push(a),a="",l=!1):h&&(a+=h)}}else if(o)if(u.type==="BraceExpansion")if(/^\[.+\]=/.test(a))a+=Rt({type:"Word",parts:[u]});else{(a||l)&&(i.push(a),a="",l=!1);let d=await Ae(e,{type:"Word",parts:[u]});i.push(...d.values)}else{(u.type==="SingleQuoted"||u.type==="DoubleQuoted"||u.type==="Escaped")&&(l=!0);let f=await I(e,{type:"Word",parts:[u]});a+=f}(a||l)&&i.push(a);let c=i.map(u=>/^\[.+\]=/.test(u)?u:u===""?"''":/[\s"'\\$`!*?[\]{}|&;<>()]/.test(u)&&!u.startsWith("'")&&!u.startsWith('"')?`'${u.replace(/'/g,"'\\''")}'`:u);return`${r}=(${c.join(" ")})`}async function ur(e,t){let s=-1,n=-1,r=!1;for(let p=0;p<t.parts.length;p++){let g=t.parts[p];if(g.type==="Literal"){let w=g.value.indexOf("+=");if(w!==-1){let v=g.value.slice(0,w);if(/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(v)){s=p,n=w,r=!0;break}if(/^[a-zA-Z_][a-zA-Z0-9_]*\[[^\]]+\]$/.test(v)){s=p,n=w,r=!0;break}}let y=g.value.indexOf("=");if(y!==-1&&(y===0||g.value[y-1]!=="+")){let v=g.value.slice(0,y);if(/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(v)||/^[a-zA-Z_][a-zA-Z0-9_]*\[[^\]]+\]$/.test(v)){s=p,n=y;break}}}}if(s===-1)return null;let i=t.parts.slice(0,s),o=t.parts[s];if(o.type!=="Literal")return null;let a=r?2:1,l=o.value.slice(0,n),c=o.value.slice(n+a),u=t.parts.slice(s+1),f="";for(let p of i)f+=await I(e,{type:"Word",parts:[p]});f+=l;let d={type:"Word",parts:c!==""?[{type:"Literal",value:c},...u]:u},h=d.parts.length>0?await I(e,d):"";return`${f}${r?"+=":"="}${h}`}var ro=["tar","yq","xan","sqlite3","python3","python"];function fr(e){return ro.includes(e)}var F=Object.freeze({stdout:"",stderr:"",exitCode:0});function W(e=""){return{stdout:e,stderr:"",exitCode:0}}function P(e,t=1){return{stdout:"",stderr:e,exitCode:t}}function k(e,t,s){return{stdout:e,stderr:t,exitCode:s}}function X(e){return{stdout:"",stderr:"",exitCode:e?0:1}}function Pe(e,t,s="",n=""){throw new Y(e,t,s,n)}function ie(e){let t=e.state.fileDescriptors;if(t&&t.size>=e.limits.maxFileDescriptors)throw new Y(`too many open file descriptors (max ${e.limits.maxFileDescriptors})`,"file_descriptors")}function Ts(e,t){if(e.state.loopDepth===0){if(e.state.parentHasLoopContext)throw new Ie;return F}if(t.length>1)throw new B(1,"",`bash: break: too many arguments
5
5
  `);let s=1;if(t.length>0){let n=Number.parseInt(t[0],10);if(Number.isNaN(n)||n<1)throw new B(128,"",`bash: break: ${t[0]}: numeric argument required
@@ -652,7 +652,7 @@ sys 0m0.000s
652
652
  `,1)}}if(r=Math.max(...i.map(([a])=>typeof a=="number"?a:0))+1+r,r<0){let a=e.state.currentLine;return{index:0,error:k("",`bash: line ${a}: ${t}[${s}]: bad array subscript
653
653
  `,1)}}}return{index:r}}async function ma(e,t,s,n,r,i){let o="",a=s,l=null;if(ye(e,s)){let f=jn(e,s,n);if(f===void 0)return{continueToNext:!1,xtraceOutput:"",error:k("",`bash: ${s}: circular name reference
654
654
  `,1)};if(f===null)return{continueToNext:!0,xtraceOutput:""};a=f;let d=a.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[(.+)\]$/);d&&(l={arrayName:d[1],subscriptExpr:d[2]},a=d[1])}if(Ue(e,a)){if(t.name)return o+=`bash: ${a}: readonly variable
655
- `,{continueToNext:!0,xtraceOutput:o};let f=ee(e,a);if(f)return{continueToNext:!1,xtraceOutput:"",error:f}}let c;if($t(e,a))try{let f=new V;if(r){let h=`(${e.state.env.get(a)||"0"}) + (${n})`,m=Q(f,h);c=String(await j(e,m.expression))}else{let d=Q(f,n);c=String(await j(e,d.expression))}}catch{c="0"}else{let{isArray:f}=await import("./chunks/expansion-E23BQBTL.js"),d=f(e,a)?`${a}_0`:a;c=r?(e.state.env.get(d)||"")+n:n}c=ut(e,a,c),o+=await mi(e,a,c);let u=a;if(l)u=await ya(e,l);else{let{isArray:f}=await import("./chunks/expansion-E23BQBTL.js");f(e,a)&&(u=`${a}_0`)}return t.name?(i.set(u,e.state.env.get(u)),e.state.env.set(u,c)):(e.state.env.set(u,c),e.state.options.allexport&&(e.state.exportedVars=e.state.exportedVars||new Set,e.state.exportedVars.add(a)),e.state.tempEnvBindings?.some(f=>f.has(a))&&(e.state.mutatedTempEnvVars=e.state.mutatedTempEnvVars||new Set,e.state.mutatedTempEnvVars.add(a))),{continueToNext:!1,xtraceOutput:o}}async function ya(e,t){let{arrayName:s,subscriptExpr:n}=t;if(e.state.associativeArrays?.has(s))return vi(e,s,n);let i;if(/^-?\d+$/.test(n))i=Number.parseInt(n,10);else{try{let o=new V,a=Q(o,n);i=await j(e,a.expression,!1)}catch{let o=e.state.env.get(n);i=o?Number.parseInt(o,10):0}Number.isNaN(i)&&(i=0)}if(i<0){let o=Ee(e,s);o.length>0&&(i=Math.max(...o.map(l=>l[0]))+1+i)}return`${s}_${i}`}async function bi(e,t,s,n){let r=await Ne(e,t.redirections);if(r)return r;let i=new Map(e.state.env),o=e.state.cwd,a={...e.state.options},l=new Map(e.state.functions),c=e.state.localScopes,u=e.state.localVarStack,f=e.state.localVarDepth,d=e.state.fullyUnsetLocals;if(e.state.localScopes=c.map(E=>new Map(E)),u){e.state.localVarStack=new Map;for(let[E,O]of u.entries())e.state.localVarStack.set(E,O.map(_=>({..._})))}f&&(e.state.localVarDepth=new Map(f)),d&&(e.state.fullyUnsetLocals=new Map(d));let h=e.state.loopDepth,m=e.state.parentHasLoopContext;e.state.parentHasLoopContext=h>0,e.state.loopDepth=0;let p=e.state.lastArg,g=e.state.bashPid;e.state.bashPid=e.state.nextVirtualPid++;let w=e.state.groupStdin;s&&(e.state.groupStdin=s);let y="",v="",b=0,S=()=>{e.state.env=i,e.state.cwd=o,e.state.options=a,e.state.functions=l,e.state.localScopes=c,e.state.localVarStack=u,e.state.localVarDepth=f,e.state.fullyUnsetLocals=d,e.state.loopDepth=h,e.state.parentHasLoopContext=m,e.state.groupStdin=w,e.state.bashPid=g,e.state.lastArg=p};try{for(let E of t.body){let O=await n(E);y+=O.stdout,v+=O.stderr,b=O.exitCode}}catch(E){if(S(),E instanceof Y)throw E;if(E instanceof Ie){y+=E.stdout,v+=E.stderr;let _=k(y,v,0);return q(e,_,t.redirections)}if(E instanceof de||E instanceof he){y+=E.stdout,v+=E.stderr;let _=k(y,v,0);return q(e,_,t.redirections)}if(E instanceof B){y+=E.stdout,v+=E.stderr;let _=k(y,v,E.exitCode);return q(e,_,t.redirections)}if(E instanceof le){y+=E.stdout,v+=E.stderr;let _=k(y,v,E.exitCode);return q(e,_,t.redirections)}if(E instanceof pe){let _=k(y+E.stdout,v+E.stderr,E.exitCode);return q(e,_,t.redirections)}let O=k(y,`${v}${De(E)}
655
+ `,{continueToNext:!0,xtraceOutput:o};let f=ee(e,a);if(f)return{continueToNext:!1,xtraceOutput:"",error:f}}let c;if($t(e,a))try{let f=new V;if(r){let h=`(${e.state.env.get(a)||"0"}) + (${n})`,m=Q(f,h);c=String(await j(e,m.expression))}else{let d=Q(f,n);c=String(await j(e,d.expression))}}catch{c="0"}else{let{isArray:f}=await import("./chunks/expansion-QVZM74A7.js"),d=f(e,a)?`${a}_0`:a;c=r?(e.state.env.get(d)||"")+n:n}c=ut(e,a,c),o+=await mi(e,a,c);let u=a;if(l)u=await ya(e,l);else{let{isArray:f}=await import("./chunks/expansion-QVZM74A7.js");f(e,a)&&(u=`${a}_0`)}return t.name?(i.set(u,e.state.env.get(u)),e.state.env.set(u,c)):(e.state.env.set(u,c),e.state.options.allexport&&(e.state.exportedVars=e.state.exportedVars||new Set,e.state.exportedVars.add(a)),e.state.tempEnvBindings?.some(f=>f.has(a))&&(e.state.mutatedTempEnvVars=e.state.mutatedTempEnvVars||new Set,e.state.mutatedTempEnvVars.add(a))),{continueToNext:!1,xtraceOutput:o}}async function ya(e,t){let{arrayName:s,subscriptExpr:n}=t;if(e.state.associativeArrays?.has(s))return vi(e,s,n);let i;if(/^-?\d+$/.test(n))i=Number.parseInt(n,10);else{try{let o=new V,a=Q(o,n);i=await j(e,a.expression,!1)}catch{let o=e.state.env.get(n);i=o?Number.parseInt(o,10):0}Number.isNaN(i)&&(i=0)}if(i<0){let o=Ee(e,s);o.length>0&&(i=Math.max(...o.map(l=>l[0]))+1+i)}return`${s}_${i}`}async function bi(e,t,s,n){let r=await Ne(e,t.redirections);if(r)return r;let i=new Map(e.state.env),o=e.state.cwd,a={...e.state.options},l=new Map(e.state.functions),c=e.state.localScopes,u=e.state.localVarStack,f=e.state.localVarDepth,d=e.state.fullyUnsetLocals;if(e.state.localScopes=c.map(E=>new Map(E)),u){e.state.localVarStack=new Map;for(let[E,O]of u.entries())e.state.localVarStack.set(E,O.map(_=>({..._})))}f&&(e.state.localVarDepth=new Map(f)),d&&(e.state.fullyUnsetLocals=new Map(d));let h=e.state.loopDepth,m=e.state.parentHasLoopContext;e.state.parentHasLoopContext=h>0,e.state.loopDepth=0;let p=e.state.lastArg,g=e.state.bashPid;e.state.bashPid=e.state.nextVirtualPid++;let w=e.state.groupStdin;s&&(e.state.groupStdin=s);let y="",v="",b=0,S=()=>{e.state.env=i,e.state.cwd=o,e.state.options=a,e.state.functions=l,e.state.localScopes=c,e.state.localVarStack=u,e.state.localVarDepth=f,e.state.fullyUnsetLocals=d,e.state.loopDepth=h,e.state.parentHasLoopContext=m,e.state.groupStdin=w,e.state.bashPid=g,e.state.lastArg=p};try{for(let E of t.body){let O=await n(E);y+=O.stdout,v+=O.stderr,b=O.exitCode}}catch(E){if(S(),E instanceof Y)throw E;if(E instanceof Ie){y+=E.stdout,v+=E.stderr;let _=k(y,v,0);return q(e,_,t.redirections)}if(E instanceof de||E instanceof he){y+=E.stdout,v+=E.stderr;let _=k(y,v,0);return q(e,_,t.redirections)}if(E instanceof B){y+=E.stdout,v+=E.stderr;let _=k(y,v,E.exitCode);return q(e,_,t.redirections)}if(E instanceof le){y+=E.stdout,v+=E.stderr;let _=k(y,v,E.exitCode);return q(e,_,t.redirections)}if(E instanceof pe){let _=k(y+E.stdout,v+E.stderr,E.exitCode);return q(e,_,t.redirections)}let O=k(y,`${v}${De(E)}
656
656
  `,1);return q(e,O,t.redirections)}S();let $=k(y,v,b);return q(e,$,t.redirections)}async function $i(e,t,s,n){let r="",i="",o=0,a=await ts(e,t.redirections);if(a)return a;let l=s;for(let f of t.redirections)if((f.operator==="<<"||f.operator==="<<-")&&f.target.type==="HereDoc"){let d=f.target,h=await I(e,d.content);d.stripTabs&&(h=h.split(`
657
657
  `).map(p=>p.replace(/^\t+/,"")).join(`
658
658
  `));let m=f.fd??0;m!==0?(e.state.fileDescriptors||(e.state.fileDescriptors=new Map),ie(e),e.state.fileDescriptors.set(m,h)):l=h}else if(f.operator==="<<<"&&f.target.type==="Word")l=`${await I(e,f.target)}
@@ -662,7 +662,7 @@ sys 0m0.000s
662
662
  `,127)}if(i.startsWith("#!")){let g=i.indexOf(`
663
663
  `);g!==-1&&(i=i.slice(g+1))}let o=new Map(e.state.env),a=e.state.cwd,l={...e.state.options},c=e.state.loopDepth,u=e.state.parentHasLoopContext,f=e.state.lastArg,d=e.state.bashPid,h=e.state.groupStdin,m=e.state.currentSource;e.state.parentHasLoopContext=c>0,e.state.loopDepth=0,e.state.bashPid=e.state.nextVirtualPid++,n&&(e.state.groupStdin=n),e.state.currentSource=t,e.state.env.set("0",t),e.state.env.set("#",String(s.length)),e.state.env.set("@",s.join(" ")),e.state.env.set("*",s.join(" "));for(let g=0;g<s.length&&g<9;g++)e.state.env.set(String(g+1),s[g]);for(let g=s.length+1;g<=9;g++)e.state.env.delete(String(g));let p=()=>{e.state.env=o,e.state.cwd=a,e.state.options=l,e.state.loopDepth=c,e.state.parentHasLoopContext=u,e.state.lastArg=f,e.state.bashPid=d,e.state.groupStdin=h,e.state.currentSource=m};try{let w=new V().parse(i),y=await r(w);return p(),y}catch(g){if(p(),g instanceof B||g instanceof Y)throw g;if(g.name==="ParseException")return P(`bash: ${t}: ${g.message}
664
664
  `);throw g}}function ga(e){let t=s=>{for(let n of s){if(n.type==="CommandSubstitution"||n.type==="DoubleQuoted"&&t(n.parts))return!0;if(n.type==="BraceExpansion"){for(let r of n.items)if(r.type==="Word"&&t(r.word.parts))return!0}}return!1};return t(e.parts)}var _t=class{ctx;constructor(t,s){this.ctx={state:s,fs:t.fs,commands:t.commands,limits:t.limits,execFn:t.exec,executeScript:this.executeScript.bind(this),executeStatement:this.executeStatement.bind(this),executeCommand:this.executeCommand.bind(this),fetch:t.fetch,sleep:t.sleep,trace:t.trace,coverage:t.coverage,requireDefenseContext:t.requireDefenseContext??!1,jsBootstrapCode:t.jsBootstrapCode,invokeTool:t.invokeTool}}assertDefenseContext(t){if(!this.ctx.requireDefenseContext||ve.isInSandboxedContext())return;let s=`interpreter ${t} attempted outside defense context`;throw new Qe(s,{timestamp:Date.now(),type:"missing_defense_context",message:s,path:"DefenseInDepthBox.context",stack:new Error().stack,executionId:ve.getCurrentExecutionId()})}buildExportedEnv(){let t=this.ctx.state.exportedVars,s=this.ctx.state.tempExportedVars,n=new Set;if(t)for(let i of t)n.add(i);if(s)for(let i of s)n.add(i);if(n.size===0)return Object.create(null);let r=Object.create(null);for(let i of n){let o=this.ctx.state.env.get(i);o!==void 0&&(r[i]=o)}return r}async executeScript(t){this.assertDefenseContext("execution");let s="",n="",r=0,i=this.ctx.limits.maxOutputSize,o=(a,l)=>{s.length+n.length+a.length+l.length>i&&Pe(`total output size exceeded (>${i} bytes), increase executionLimits.maxOutputSize`,"output_size"),s+=a,n+=l};for(let a of t.statements)try{let l=await this.executeStatement(a);o(l.stdout,l.stderr),r=l.exitCode,this.ctx.state.lastExitCode=r,this.ctx.state.env.set("?",String(r))}catch(l){if(l instanceof B)throw l.prependOutput(s,n),l;if(l instanceof be)return o(l.stdout,l.stderr),r=l.exitCode,this.ctx.state.lastExitCode=r,this.ctx.state.env.set("?",String(r)),{stdout:s,stderr:n,exitCode:r,env:Re(this.ctx.state.env)};if(l instanceof Y)throw l;if(l instanceof pe)return o(l.stdout,l.stderr),r=l.exitCode,this.ctx.state.lastExitCode=r,this.ctx.state.env.set("?",String(r)),{stdout:s,stderr:n,exitCode:r,env:Re(this.ctx.state.env)};if(l instanceof xn)return o(l.stdout,l.stderr),r=1,this.ctx.state.lastExitCode=r,this.ctx.state.env.set("?",String(r)),{stdout:s,stderr:n,exitCode:r,env:Re(this.ctx.state.env)};if(l instanceof Ot)return o(l.stdout,l.stderr),r=1,this.ctx.state.lastExitCode=r,this.ctx.state.env.set("?",String(r)),{stdout:s,stderr:n,exitCode:r,env:Re(this.ctx.state.env)};if(l instanceof He){o(l.stdout,l.stderr),r=1,this.ctx.state.lastExitCode=r,this.ctx.state.env.set("?",String(r));continue}if(l instanceof In){o(l.stdout,l.stderr),r=1,this.ctx.state.lastExitCode=r,this.ctx.state.env.set("?",String(r));continue}if(l instanceof de||l instanceof he){if(this.ctx.state.loopDepth>0)throw l.prependOutput(s,n),l;o(l.stdout,l.stderr);continue}throw l instanceof le&&l.prependOutput(s,n),l}return{stdout:s,stderr:n,exitCode:r,env:Re(this.ctx.state.env)}}async executeUserScript(t,s,n=""){return Ei(this.ctx,t,s,n,r=>this.executeScript(r))}async executeStatement(t){if(this.assertDefenseContext("statement"),this.ctx.state.signal?.aborted)throw new Tt;if(this.ctx.state.commandCount++,this.ctx.state.commandCount>this.ctx.limits.maxCommandCount&&Pe(`too many commands executed (>${this.ctx.limits.maxCommandCount}), increase executionLimits.maxCommandCount`,"commands"),t.deferredError)throw new It(t.deferredError.message,t.line??1,1);if(this.ctx.state.options.noexec)return F;this.ctx.state.errexitSafe=!1;let s="",n="";this.ctx.state.options.verbose&&!this.ctx.state.suppressVerbose&&t.sourceText&&(n+=`${t.sourceText}
665
- `);let r=0,i=-1,o=!1;for(let c=0;c<t.pipelines.length;c++){let u=t.pipelines[c],f=c>0?t.operators[c-1]:null;if(f==="&&"&&r!==0||f==="||"&&r===0)continue;let d=await this.executePipeline(u);s+=d.stdout,n+=d.stderr,r=d.exitCode,i=c,o=u.negated,this.ctx.state.lastExitCode=r,this.ctx.state.env.set("?",String(r))}let a=i<t.pipelines.length-1,l=this.ctx.state.errexitSafe;if(this.ctx.state.errexitSafe=a||o||l,this.ctx.state.options.errexit&&r!==0&&i===t.pipelines.length-1&&!o&&!this.ctx.state.inCondition&&!l)throw new pe(r,s,n);return k(s,n,r)}async executePipeline(t){return gi(this.ctx,t,(s,n)=>this.executeCommand(s,n))}async executeCommand(t,s){switch(this.assertDefenseContext("command"),this.ctx.coverage?.hit(`bash:cmd:${t.type}`),t.type){case"SimpleCommand":return this.executeSimpleCommand(t,s);case"If":return ii(this.ctx,t);case"For":return oi(this.ctx,t);case"CStyleFor":return ai(this.ctx,t);case"While":return li(this.ctx,t,s);case"Until":return ci(this.ctx,t);case"Case":return ui(this.ctx,t);case"Subshell":return this.executeSubshell(t,s);case"Group":return this.executeGroup(t,s);case"FunctionDef":return Cr(this.ctx,t);case"ArithmeticCommand":return this.executeArithmeticCommand(t);case"ConditionalCommand":return this.executeConditionalCommand(t);default:return F}}async executeSimpleCommand(t,s){try{return await this.executeSimpleCommandInner(t,s)}catch(n){if(n instanceof Dt)return P(n.stderr);throw n}}async executeSimpleCommandInner(t,s){if(t.line!==void 0&&(this.ctx.state.currentLine=t.line),this.ctx.state.shoptOptions.expand_aliases&&t.name){let $=t,E=100;for(;E>0;){let O=this.expandAlias($);if(O===$)break;$=O,E--}this.aliasExpansionStack.clear(),$!==t&&(t=$)}this.ctx.state.expansionStderr="";let n=await wi(this.ctx,t);if(n.error)return n.error;let r=n.tempAssignments,i=n.xtraceOutput;if(!t.name){if(t.redirections.length>0){let E=await Ne(this.ctx,t.redirections);if(E)return E;let O=k("",i,0);return q(this.ctx,O,t.redirections)}this.ctx.state.lastArg="";let $=(this.ctx.state.expansionStderr||"")+i;return this.ctx.state.expansionStderr="",k("",$,this.ctx.state.lastExitCode)}let o=t.name&&Sn(t.name,["local","declare","typeset","export","readonly"]),a=Array.from(r.keys());if(a.length>0&&!o){this.ctx.state.tempExportedVars=this.ctx.state.tempExportedVars||new Set;for(let $ of a)this.ctx.state.tempExportedVars.add($)}let l=await ts(this.ctx,t.redirections);if(l){for(let[$,E]of r)E===void 0?this.ctx.state.env.delete($):this.ctx.state.env.set($,E);return l}let c=-1;for(let $ of t.redirections){if(($.operator==="<<"||$.operator==="<<-")&&$.target.type==="HereDoc"){let E=$.target,O=await I(this.ctx,E.content);E.stripTabs&&(O=O.split(`
665
+ `);let r=0,i=-1,o=!1;for(let c=0;c<t.pipelines.length;c++){let u=t.pipelines[c],f=c>0?t.operators[c-1]:null;if(f==="&&"&&r!==0||f==="||"&&r===0)continue;let d=await this.executePipeline(u);s+=d.stdout,n+=d.stderr,r=d.exitCode,i=c,o=u.negated,this.ctx.state.lastExitCode=r,this.ctx.state.env.set("?",String(r))}let a=i<t.pipelines.length-1,l=this.ctx.state.errexitSafe;if(this.ctx.state.errexitSafe=a||o||l,this.ctx.state.options.errexit&&r!==0&&i===t.pipelines.length-1&&!o&&!this.ctx.state.inCondition&&!l)throw new pe(r,s,n);return k(s,n,r)}async executePipeline(t){return gi(this.ctx,t,(s,n)=>this.executeCommand(s,n))}async executeCommand(t,s){switch(this.assertDefenseContext("command"),this.ctx.coverage?.hit(`bash:cmd:${t.type}`),t.type){case"SimpleCommand":return this.executeSimpleCommand(t,s);case"If":return ii(this.ctx,t);case"For":return oi(this.ctx,t);case"CStyleFor":return ai(this.ctx,t);case"While":return li(this.ctx,t,s);case"Until":return ci(this.ctx,t);case"Case":return ui(this.ctx,t);case"Subshell":return this.executeSubshell(t,s);case"Group":return this.executeGroup(t,s);case"FunctionDef":return Cr(this.ctx,t);case"ArithmeticCommand":return this.executeArithmeticCommand(t);case"ConditionalCommand":return this.executeConditionalCommand(t);default:return F}}async executeSimpleCommand(t,s){try{return await this.executeSimpleCommandInner(t,s)}catch(n){if(n instanceof Dt)return P(n.stderr);throw n}}async executeSimpleCommandInner(t,s){if(t.line!==void 0&&(this.ctx.state.currentLine=t.line),this.ctx.state.shoptOptions.expand_aliases&&t.name){let $=t,E=100;for(;E>0;){let O=this.expandAlias($);if(O===$)break;$=O,E--}this.aliasExpansionStack.clear(),$!==t&&(t=$)}this.ctx.state.expansionStderr="",this.ctx.state.commandSubstitutionUsed=!1;let n=await wi(this.ctx,t);if(n.error)return n.error;let r=n.tempAssignments,i=n.xtraceOutput;if(!t.name){if(t.redirections.length>0){let O=await Ne(this.ctx,t.redirections);if(O)return O;let _=k("",i,0);return q(this.ctx,_,t.redirections)}this.ctx.state.lastArg="";let $=(this.ctx.state.expansionStderr||"")+i;this.ctx.state.expansionStderr="";let E=this.ctx.state.commandSubstitutionUsed?this.ctx.state.lastExitCode:0;return k("",$,E)}let o=t.name&&Sn(t.name,["local","declare","typeset","export","readonly"]),a=Array.from(r.keys());if(a.length>0&&!o){this.ctx.state.tempExportedVars=this.ctx.state.tempExportedVars||new Set;for(let $ of a)this.ctx.state.tempExportedVars.add($)}let l=await ts(this.ctx,t.redirections);if(l){for(let[$,E]of r)E===void 0?this.ctx.state.env.delete($):this.ctx.state.env.set($,E);return l}let c=-1;for(let $ of t.redirections){if(($.operator==="<<"||$.operator==="<<-")&&$.target.type==="HereDoc"){let E=$.target,O=await I(this.ctx,E.content);E.stripTabs&&(O=O.split(`
666
666
  `).map(D=>D.replace(/^\t+/,"")).join(`
667
667
  `)),O=je(O);let _=$.fd??0;_!==0?(this.ctx.state.fileDescriptors||(this.ctx.state.fileDescriptors=new Map),ie(this.ctx),this.ctx.state.fileDescriptors.set(_,O)):s=O;continue}if($.operator==="<<<"&&$.target.type==="Word"){s=je(`${await I(this.ctx,$.target)}
668
668
  `);continue}if($.operator==="<"&&$.target.type==="Word")try{let E=await I(this.ctx,$.target),O=this.ctx.fs.resolvePath(this.ctx.state.cwd,E);s=await Tn(this.ctx.fs,O)}catch{let E=await I(this.ctx,$.target);for(let[O,_]of r)_===void 0?this.ctx.state.env.delete(O):this.ctx.state.env.set(O,_);return P(`bash: ${E}: No such file or directory
@@ -71,4 +71,4 @@ Gid: ${n} ${n} ${n} ${n}
71
71
  `};let n=await It(e,t),{hasParamExpansion:a,hasCommandSub:i}=Se(r);if((a||i)&&!s&&!q(e.state.env)){let f=T(e.state.env);if(x(n,f).length>1)return{error:`bash: $${Zs(r)}: ambiguous redirect
72
72
  `}}if(s||e.state.options.noglob)return{target:n};let o=await Rr(e,t);if(!ne(o,e.state.shoptOptions.extglob))return{target:n};let c=new oe(e.fs,e.state.cwd,e.state.env,{globstar:e.state.shoptOptions.globstar,nullglob:e.state.shoptOptions.nullglob,failglob:e.state.shoptOptions.failglob,dotglob:e.state.shoptOptions.dotglob,extglob:e.state.shoptOptions.extglob,globskipdots:e.state.shoptOptions.globskipdots,maxGlobOperations:e.limits.maxGlobOperations}),u=await c.expand(o);return u.length===0?c.hasFailglob()?{error:`bash: no match: ${n}
73
73
  `}:{target:n}:u.length===1?{target:u[0]}:{error:`bash: ${n}: ambiguous redirect
74
- `}}async function It(e,t){let r=t.parts,s=r.length;if(s===1){let i=await U(e,r[0]);return ce(i,e.limits.maxStringLength,"word expansion"),i}let n=[];for(let i=0;i<s;i++)n.push(await U(e,r[i]));let a=n.join("");return ce(a,e.limits.maxStringLength,"word expansion"),a}async function U(e,t,r=!1){if(t.type==="ParameterExpansion")return qe(e,t,r);let s=Gs(e,t,r);if(s!==null)return s;switch(t.type){case"DoubleQuoted":{let n=[];for(let a of t.parts)n.push(await U(e,a,!0));return n.join("")}case"CommandSubstitution":{let n=Pn(t.body);if(n)try{let h=await Rt(e,n.target),d=h.startsWith("/")?h:`${e.state.cwd}/${h}`,m=await e.fs.readFile(d);e.state.lastExitCode=0,e.state.env.set("?","0");let g=m.replace(/\n+$/,"");return ce(g,e.limits.maxStringLength,"command substitution"),g}catch(h){if(h instanceof L)throw h;return e.state.lastExitCode=1,e.state.env.set("?","1"),""}let a=e.substitutionDepth??0,i=e.limits.maxSubstitutionDepth;if(a>=i)throw new L(`Command substitution nesting limit exceeded (${i})`,"substitution_depth");let l=e.substitutionDepth;e.substitutionDepth=a+1;let o=e.state.bashPid;e.state.bashPid=e.state.nextVirtualPid++;let c=new Map(e.state.env),u=e.state.cwd,f=e.state.suppressVerbose;e.state.suppressVerbose=!0;try{let h=await e.executeScript(t.body),d=h.exitCode;e.state.env=c,e.state.cwd=u,e.state.suppressVerbose=f,e.state.lastExitCode=d,e.state.env.set("?",String(d)),h.stderr&&(e.state.expansionStderr=(e.state.expansionStderr||"")+h.stderr),e.state.bashPid=o,e.substitutionDepth=l;let m=Pr(h).replace(/\n+$/,"");return ce(m,e.limits.maxStringLength,"command substitution"),m}catch(h){if(e.state.env=c,e.state.cwd=u,e.state.bashPid=o,e.substitutionDepth=l,e.state.suppressVerbose=f,h instanceof L)throw h;if(h instanceof K){e.state.lastExitCode=h.exitCode,e.state.env.set("?",String(h.exitCode)),h.stderr&&(e.state.expansionStderr=(e.state.expansionStderr||"")+h.stderr);let d=Pr({stdout:h.stdout,stdoutKind:h.stdoutKind,stdoutEncoding:h.stdoutEncoding}).replace(/\n+$/,"");return ce(d,e.limits.maxStringLength,"command substitution"),d}throw h}}case"ArithmeticExpansion":{let n=t.expression.originalText;if(n&&/\$[a-zA-Z_][a-zA-Z0-9_]*(?![{[(])/.test(n)){let i=await kn(e,n),l=new V,o=M(l,i);return String(await R(e,o.expression,!0))}return String(await R(e,t.expression.expression,!0))}case"BraceExpansion":{let n=[];for(let a of t.items)if(a.type==="Range"){let i=St(a.start,a.end,a.step,a.startStr,a.endStr);if(i.expanded)n.push(...i.expanded);else return i.literal}else n.push(await Rt(e,a.word));return n.join(" ")}default:return""}}async function qe(e,t,r=!1){let{parameter:s}=t,{operation:n}=t,a=s.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[(.+)\]$/);if(a){let[,h,d]=a;if(e.state.associativeArrays?.has(h)||d.includes("$(")||d.includes("`")||d.includes("${")){let g=await At(e,d);s=`${h}[${g}]`}}else if(/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(s)&&W(e,s)){let h=he(e,s);if(h&&h!==s){let d=h.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[(.+)\]$/);if(d){let[,m,g]=d;if(e.state.associativeArrays?.has(m)||g.includes("$(")||g.includes("`")||g.includes("${")){let A=await At(e,g);s=`${m}[${A}]`}}}}let i=n&&(n.type==="DefaultValue"||n.type==="AssignDefault"||n.type==="UseAlternative"||n.type==="ErrorIfUnset"),l=!1;i&&(l=!await X(e,s));let o=i?l?"":await v(e,s,!1):await v(e,s,!0);if(!n)return o;i||(l=!await X(e,s));let{isEmpty:c,effectiveValue:u}=Vn(e,s,o,r),f={value:o,isUnset:l,isEmpty:c,effectiveValue:u,inDoubleQuotes:r};switch(n.type){case"DefaultValue":return Rn(e,n,f,Y);case"AssignDefault":return In(e,s,n,f,Y);case"ErrorIfUnset":return vn(e,s,n,f,Y);case"UseAlternative":return Dn(e,n,f,Y);case"PatternRemoval":{let h=await xn(e,o,n,Y,U);return ce(h,e.limits.maxStringLength,"pattern removal"),h}case"PatternReplacement":{let h=await _n(e,o,n,Y,U);return ce(h,e.limits.maxStringLength,"pattern replacement"),h}case"Length":return $n(e,s,o);case"LengthSliceError":throw new re(s);case"BadSubstitution":throw new re(n.text);case"Substring":return Cn(e,s,o,n);case"CaseModification":{let h=await On(e,o,n,Y,qe);return ce(h,e.limits.maxStringLength,"case modification"),h}case"Transform":return Ln(e,s,o,l,n);case"Indirection":return Wn(e,s,o,l,n,qe,r);case"ArrayKeys":return Tn(e,n);case"VarNamePrefix":return Mn(e,n);default:return o}}export{Li as a,Wi as b,de as c,G as d,M as e,V as f,Ai as g,gt as h,Mi as i,yt as j,Vi as k,An as l,T as m,Bi as n,Fi as o,W as p,Gi as q,Qi as r,Zi as s,Ui as t,ds as u,he as v,be as w,Hi as x,P as y,we as z,v as A,J as B,wt as C,Aa as D,Nt as E,Sa as F,ba as G,wa as H,Il as I,Rt as J,vl as K,Dl as L,xl as M,Us as N,_l as O,R as P};
74
+ `}}async function It(e,t){let r=t.parts,s=r.length;if(s===1){let i=await U(e,r[0]);return ce(i,e.limits.maxStringLength,"word expansion"),i}let n=[];for(let i=0;i<s;i++)n.push(await U(e,r[i]));let a=n.join("");return ce(a,e.limits.maxStringLength,"word expansion"),a}async function U(e,t,r=!1){if(t.type==="ParameterExpansion")return qe(e,t,r);let s=Gs(e,t,r);if(s!==null)return s;switch(t.type){case"DoubleQuoted":{let n=[];for(let a of t.parts)n.push(await U(e,a,!0));return n.join("")}case"CommandSubstitution":{let n=Pn(t.body);if(n){e.state.commandSubstitutionUsed=!0;try{let h=await Rt(e,n.target),d=h.startsWith("/")?h:`${e.state.cwd}/${h}`,m=await e.fs.readFile(d);e.state.lastExitCode=0,e.state.env.set("?","0");let g=m.replace(/\n+$/,"");return ce(g,e.limits.maxStringLength,"command substitution"),g}catch(h){if(h instanceof L)throw h;return e.state.lastExitCode=1,e.state.env.set("?","1"),""}}e.state.commandSubstitutionUsed=!0;let a=e.substitutionDepth??0,i=e.limits.maxSubstitutionDepth;if(a>=i)throw new L(`Command substitution nesting limit exceeded (${i})`,"substitution_depth");let l=e.substitutionDepth;e.substitutionDepth=a+1;let o=e.state.bashPid;e.state.bashPid=e.state.nextVirtualPid++;let c=new Map(e.state.env),u=e.state.cwd,f=e.state.suppressVerbose;e.state.suppressVerbose=!0;try{let h=await e.executeScript(t.body),d=h.exitCode;e.state.env=c,e.state.cwd=u,e.state.suppressVerbose=f,e.state.lastExitCode=d,e.state.env.set("?",String(d)),h.stderr&&(e.state.expansionStderr=(e.state.expansionStderr||"")+h.stderr),e.state.bashPid=o,e.substitutionDepth=l;let m=Pr(h).replace(/\n+$/,"");return ce(m,e.limits.maxStringLength,"command substitution"),m}catch(h){if(e.state.env=c,e.state.cwd=u,e.state.bashPid=o,e.substitutionDepth=l,e.state.suppressVerbose=f,h instanceof L)throw h;if(h instanceof K){e.state.lastExitCode=h.exitCode,e.state.env.set("?",String(h.exitCode)),h.stderr&&(e.state.expansionStderr=(e.state.expansionStderr||"")+h.stderr);let d=Pr({stdout:h.stdout,stdoutKind:h.stdoutKind,stdoutEncoding:h.stdoutEncoding}).replace(/\n+$/,"");return ce(d,e.limits.maxStringLength,"command substitution"),d}throw h}}case"ArithmeticExpansion":{let n=t.expression.originalText;if(n&&/\$[a-zA-Z_][a-zA-Z0-9_]*(?![{[(])/.test(n)){let i=await kn(e,n),l=new V,o=M(l,i);return String(await R(e,o.expression,!0))}return String(await R(e,t.expression.expression,!0))}case"BraceExpansion":{let n=[];for(let a of t.items)if(a.type==="Range"){let i=St(a.start,a.end,a.step,a.startStr,a.endStr);if(i.expanded)n.push(...i.expanded);else return i.literal}else n.push(await Rt(e,a.word));return n.join(" ")}default:return""}}async function qe(e,t,r=!1){let{parameter:s}=t,{operation:n}=t,a=s.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[(.+)\]$/);if(a){let[,h,d]=a;if(e.state.associativeArrays?.has(h)||d.includes("$(")||d.includes("`")||d.includes("${")){let g=await At(e,d);s=`${h}[${g}]`}}else if(/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(s)&&W(e,s)){let h=he(e,s);if(h&&h!==s){let d=h.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[(.+)\]$/);if(d){let[,m,g]=d;if(e.state.associativeArrays?.has(m)||g.includes("$(")||g.includes("`")||g.includes("${")){let A=await At(e,g);s=`${m}[${A}]`}}}}let i=n&&(n.type==="DefaultValue"||n.type==="AssignDefault"||n.type==="UseAlternative"||n.type==="ErrorIfUnset"),l=!1;i&&(l=!await X(e,s));let o=i?l?"":await v(e,s,!1):await v(e,s,!0);if(!n)return o;i||(l=!await X(e,s));let{isEmpty:c,effectiveValue:u}=Vn(e,s,o,r),f={value:o,isUnset:l,isEmpty:c,effectiveValue:u,inDoubleQuotes:r};switch(n.type){case"DefaultValue":return Rn(e,n,f,Y);case"AssignDefault":return In(e,s,n,f,Y);case"ErrorIfUnset":return vn(e,s,n,f,Y);case"UseAlternative":return Dn(e,n,f,Y);case"PatternRemoval":{let h=await xn(e,o,n,Y,U);return ce(h,e.limits.maxStringLength,"pattern removal"),h}case"PatternReplacement":{let h=await _n(e,o,n,Y,U);return ce(h,e.limits.maxStringLength,"pattern replacement"),h}case"Length":return $n(e,s,o);case"LengthSliceError":throw new re(s);case"BadSubstitution":throw new re(n.text);case"Substring":return Cn(e,s,o,n);case"CaseModification":{let h=await On(e,o,n,Y,qe);return ce(h,e.limits.maxStringLength,"case modification"),h}case"Transform":return Ln(e,s,o,l,n);case"Indirection":return Wn(e,s,o,l,n,qe,r);case"ArrayKeys":return Tn(e,n);case"VarNamePrefix":return Mn(e,n);default:return o}}export{Li as a,Wi as b,de as c,G as d,M as e,V as f,Ai as g,gt as h,Mi as i,yt as j,Vi as k,An as l,T as m,Bi as n,Fi as o,W as p,Gi as q,Qi as r,Zi as s,Ui as t,ds as u,he as v,be as w,Hi as x,P as y,we as z,v as A,J as B,wt as C,Aa as D,Nt as E,Sa as F,ba as G,wa as H,Il as I,Rt as J,vl as K,Dl as L,xl as M,Us as N,_l as O,R as P};
@@ -1,2 +1,2 @@
1
1
  #!/usr/bin/env node
2
- import{A as c,B as d,C as e,I as f,J as g,K as h,L as i,M as j,N as k,O as l,y as a,z as b}from"./chunk-O3SBI3K7.js";import"./chunk-C6FRS5UB.js";import"./chunk-63XSH3IT.js";import"./chunk-DHC3ILJI.js";import"./chunk-OBH7XN5N.js";import"./chunk-KGOUQS5A.js";export{d as escapeGlobChars,e as escapeRegexChars,l as expandRedirectTarget,g as expandWord,i as expandWordForPattern,h as expandWordForRegex,j as expandWordWithGlob,a as getArrayElements,c as getVariable,k as hasQuotedMultiValueAt,b as isArray,f as isWordFullyQuoted};
2
+ import{A as c,B as d,C as e,I as f,J as g,K as h,L as i,M as j,N as k,O as l,y as a,z as b}from"./chunk-LT26MLOT.js";import"./chunk-C6FRS5UB.js";import"./chunk-63XSH3IT.js";import"./chunk-DHC3ILJI.js";import"./chunk-OBH7XN5N.js";import"./chunk-KGOUQS5A.js";export{d as escapeGlobChars,e as escapeRegexChars,l as expandRedirectTarget,g as expandWord,i as expandWordForPattern,h as expandWordForRegex,j as expandWordWithGlob,a as getArrayElements,c as getVariable,k as hasQuotedMultiValueAt,b as isArray,f as isWordFullyQuoted};