just-bash 2.7.1 → 2.7.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bin/chunks/awk2-TV3KCXON.js +21 -0
- package/dist/bin/chunks/chunk-GANRM5LO.js +17 -0
- package/dist/bin/chunks/chunk-GIFF636B.js +2 -0
- package/dist/bin/chunks/chunk-SE4C7FJY.js +33 -0
- package/dist/bin/chunks/chunk-VHH2M5JC.js +74 -0
- package/dist/bin/chunks/chunk-XI5LBYFX.js +6 -0
- package/dist/bin/chunks/expansion-LVCGISX6.js +2 -0
- package/dist/bin/chunks/expr-433HIVAI.js +5 -0
- package/dist/bin/chunks/find-KHOYETRP.js +11 -0
- package/dist/bin/chunks/{grep-VX7MJMVN.js → grep-X7UU5FD6.js} +1 -1
- package/dist/bin/{shell/chunks/jq-M2WXBRXF.js → chunks/jq-QR3PX7FE.js} +1 -1
- package/dist/bin/chunks/rg-RSJPHAP5.js +33 -0
- package/dist/bin/{shell/chunks/sed-JPDTWF4W.js → chunks/sed-356P4DZB.js} +25 -25
- package/dist/bin/chunks/{tar-LFENC54A.js → tar-CLEBMI4R.js} +18 -18
- package/dist/bin/chunks/worker.js +382 -64
- package/dist/bin/chunks/{xan-OPVCJ3ZA.js → xan-UZG3SZON.js} +37 -37
- package/dist/bin/chunks/{yq-JU6VN4X4.js → yq-T255J4ZP.js} +1 -1
- package/dist/bin/just-bash.js +138 -138
- package/dist/bin/shell/chunks/awk2-TV3KCXON.js +21 -0
- package/dist/bin/shell/chunks/chunk-GANRM5LO.js +17 -0
- package/dist/bin/shell/chunks/chunk-GIFF636B.js +2 -0
- package/dist/bin/shell/chunks/chunk-SE4C7FJY.js +33 -0
- package/dist/bin/shell/chunks/chunk-VHH2M5JC.js +74 -0
- package/dist/bin/shell/chunks/chunk-XI5LBYFX.js +6 -0
- package/dist/bin/shell/chunks/expansion-LVCGISX6.js +2 -0
- package/dist/bin/shell/chunks/expr-433HIVAI.js +5 -0
- package/dist/bin/shell/chunks/find-KHOYETRP.js +11 -0
- package/dist/bin/shell/chunks/{grep-VX7MJMVN.js → grep-X7UU5FD6.js} +1 -1
- package/dist/bin/{chunks/jq-M2WXBRXF.js → shell/chunks/jq-QR3PX7FE.js} +1 -1
- package/dist/bin/shell/chunks/rg-RSJPHAP5.js +33 -0
- package/dist/bin/{chunks/sed-JPDTWF4W.js → shell/chunks/sed-356P4DZB.js} +25 -25
- package/dist/bin/shell/chunks/{tar-LFENC54A.js → tar-CLEBMI4R.js} +18 -18
- package/dist/bin/shell/chunks/{xan-OPVCJ3ZA.js → xan-UZG3SZON.js} +37 -37
- package/dist/bin/shell/chunks/{yq-JU6VN4X4.js → yq-T255J4ZP.js} +1 -1
- package/dist/bin/shell/shell.js +138 -138
- package/dist/bundle/browser.js +879 -850
- package/dist/bundle/chunks/awk2-PTU7M2NS.js +20 -0
- package/dist/bundle/chunks/chunk-GMMICOEF.js +73 -0
- package/dist/bundle/chunks/chunk-IJXFPKNC.js +1 -0
- package/dist/bundle/chunks/chunk-PHXIZ5A4.js +5 -0
- package/dist/bundle/chunks/chunk-TMKMSBKB.js +16 -0
- package/dist/bundle/chunks/chunk-YNYSPYQ5.js +32 -0
- package/dist/bundle/chunks/expansion-OP223NMV.js +1 -0
- package/dist/bundle/chunks/expr-YSFDPKPV.js +4 -0
- package/dist/bundle/chunks/find-WTVSUXL3.js +10 -0
- package/dist/bundle/chunks/{grep-NIC6JNLH.js → grep-F7ILPL2H.js} +1 -1
- package/dist/bundle/chunks/{jq-KF5D2PYR.js → jq-RIXCOULU.js} +1 -1
- package/dist/bundle/chunks/rg-O3ZIRBAJ.js +32 -0
- package/dist/bundle/chunks/{sed-IV6HLDXU.js → sed-P5OTD3EL.js} +25 -25
- package/dist/bundle/chunks/{tar-LWIHPMT6.js → tar-5V4PGBFL.js} +18 -18
- package/dist/bundle/chunks/worker.js +382 -64
- package/dist/bundle/chunks/{xan-RW5GSH6C.js → xan-HKCQ46BH.js} +37 -37
- package/dist/bundle/chunks/{yq-EMWRPC7R.js → yq-6SPP5BHS.js} +1 -1
- package/dist/bundle/index.js +136 -136
- package/dist/commands/awk/interpreter/context.d.ts +3 -2
- package/dist/commands/search-engine/matcher.d.ts +2 -1
- package/dist/commands/search-engine/regex.d.ts +2 -1
- package/package.json +3 -2
- package/dist/bin/chunks/awk2-ASLLINAN.js +0 -21
- package/dist/bin/chunks/chunk-26Q3PZQ6.js +0 -2
- package/dist/bin/chunks/chunk-C6FK2JV3.js +0 -74
- package/dist/bin/chunks/chunk-IRUD2E3M.js +0 -17
- package/dist/bin/chunks/chunk-YNACG4DZ.js +0 -6
- package/dist/bin/chunks/expansion-IEMZ6T22.js +0 -2
- package/dist/bin/chunks/expr-RMGXYNQJ.js +0 -5
- package/dist/bin/chunks/find-PHDZK64M.js +0 -11
- package/dist/bin/chunks/rg-RSDLLECO.js +0 -33
- package/dist/bin/shell/chunks/awk2-ASLLINAN.js +0 -21
- package/dist/bin/shell/chunks/chunk-26Q3PZQ6.js +0 -2
- package/dist/bin/shell/chunks/chunk-C6FK2JV3.js +0 -74
- package/dist/bin/shell/chunks/chunk-IRUD2E3M.js +0 -17
- package/dist/bin/shell/chunks/chunk-YNACG4DZ.js +0 -6
- package/dist/bin/shell/chunks/expansion-IEMZ6T22.js +0 -2
- package/dist/bin/shell/chunks/expr-RMGXYNQJ.js +0 -5
- package/dist/bin/shell/chunks/find-PHDZK64M.js +0 -11
- package/dist/bin/shell/chunks/rg-RSDLLECO.js +0 -33
- package/dist/bundle/chunks/awk2-5K7HVGCQ.js +0 -20
- package/dist/bundle/chunks/chunk-76ZRJPDK.js +0 -73
- package/dist/bundle/chunks/chunk-CXEWLFNE.js +0 -16
- package/dist/bundle/chunks/chunk-IEPFPINK.js +0 -5
- package/dist/bundle/chunks/chunk-UJMN5NLH.js +0 -1
- package/dist/bundle/chunks/expansion-DXWR3WZB.js +0 -1
- package/dist/bundle/chunks/expr-DG4E7SIS.js +0 -4
- package/dist/bundle/chunks/find-YGMSVGUV.js +0 -10
- package/dist/bundle/chunks/rg-SRMB7L6G.js +0 -32
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import{k as R}from"./chunk-K5IXNHO5.js";import{a as
|
|
3
|
-
`,t+=2;continue}if(s==="r"){e+="\r",t+=2;continue}e+=i[t]+s,t+=2;continue}if(i[t]==="+"||i[t]==="?"||i[t]==="|"||i[t]==="("||i[t]===")"){e+=`\\${i[t]}`,t++;continue}if(i[t]==="^"&&!(e===""||e.endsWith("("))){e+="\\^",t++;continue}if(i[t]==="$"){let s=t===i.length-1,r=t+2<i.length&&i[t+1]==="\\"&&i[t+2]===")";if(!s&&!r){e+="\\$",t++;continue}}e+=i[t],t++}return e}function
|
|
2
|
+
import{k as R}from"./chunk-K5IXNHO5.js";import{a as y}from"./chunk-SE4C7FJY.js";import{a as z,b as X,c as _}from"./chunk-GTNBSMZR.js";import"./chunk-KGOUQS5A.js";var M={alnum:"a-zA-Z0-9",alpha:"a-zA-Z",ascii:"\\x00-\\x7F",blank:" \\t",cntrl:"\\x00-\\x1F\\x7F",digit:"0-9",graph:"!-~",lower:"a-z",print:" -~",punct:"!-/:-@\\[-`{-~",space:" \\t\\n\\r\\f\\v",upper:"A-Z",word:"a-zA-Z0-9_",xdigit:"0-9A-Fa-f"};function T(i){let e="",t=0,n=!1;for(;t<i.length;){if(i[t]==="["&&!n){if(i[t+1]==="["&&i[t+2]===":"){let s=i.indexOf(":]]",t+3);if(s!==-1){let r=i.slice(t+3,s),a=M[r];if(a){e+=`[${a}]`,t=s+3;continue}}}if(i[t+1]==="^"&&i[t+2]==="["&&i[t+3]===":"){let s=i.indexOf(":]]",t+4);if(s!==-1){let r=i.slice(t+4,s),a=M[r];if(a){e+=`[^${a}]`,t=s+3;continue}}}e+="[",t++,n=!0,t<i.length&&i[t]==="^"&&(e+="^",t++),t<i.length&&i[t]==="]"&&(e+="\\]",t++);continue}if(n){if(i[t]==="]"){e+="]",t++,n=!1;continue}if(i[t]==="["&&i[t+1]===":"){let s=i.indexOf(":]",t+2);if(s!==-1){let r=i.slice(t+2,s),a=M[r];if(a){e+=a,t=s+2;continue}}}if(i[t]==="\\"&&t+1<i.length){e+=i[t]+i[t+1],t+=2;continue}e+=i[t],t++;continue}if(i[t]==="\\"&&t+1<i.length){let s=i[t+1];if(s==="+"||s==="?"||s==="|"){e+=s,t+=2;continue}if(s==="("||s===")"){e+=s,t+=2;continue}if(s==="{"||s==="}"){e+=s,t+=2;continue}if(s==="t"){e+=" ",t+=2;continue}if(s==="n"){e+=`
|
|
3
|
+
`,t+=2;continue}if(s==="r"){e+="\r",t+=2;continue}e+=i[t]+s,t+=2;continue}if(i[t]==="+"||i[t]==="?"||i[t]==="|"||i[t]==="("||i[t]===")"){e+=`\\${i[t]}`,t++;continue}if(i[t]==="^"&&!(e===""||e.endsWith("("))){e+="\\^",t++;continue}if(i[t]==="$"){let s=t===i.length-1,r=t+2<i.length&&i[t+1]==="\\"&&i[t+2]===")";if(!s&&!r){e+="\\$",t++;continue}}e+=i[t],t++}return e}function B(i){let e="",t=!1;for(let n=0;n<i.length;n++)i[n]==="["&&!t?(t=!0,e+="[",n++,n<i.length&&i[n]==="^"&&(e+="^",n++),n<i.length&&i[n]==="]"&&(e+="]",n++),n--):i[n]==="]"&&t?(t=!1,e+="]"):!t&&i[n]==="{"&&i[n+1]===","?(e+="{0,",n++):e+=i[n];return e}function G(i){let e="";for(let t=0;t<i.length;t++){let n=i[t],s=n.charCodeAt(0);n==="\\"?e+="\\\\":n===" "?e+="\\t":n===`
|
|
4
4
|
`?e+=`$
|
|
5
|
-
`:n==="\r"?e+="\\r":n==="\x07"?e+="\\a":n==="\b"?e+="\\b":n==="\f"?e+="\\f":n==="\v"?e+="\\v":s<32||s>=127?e+=`\\${s.toString(8).padStart(3,"0")}`:e+=n}return`${e}$`}var
|
|
6
|
-
`,s+=2;continue}if(r==="t"){n+=" ",s+=2;continue}if(r==="r"){n+="\r",s+=2;continue}let a=parseInt(r,10);if(a===0){n+=e,s+=2;continue}if(a>=1&&a<=9){n+=t[a-1]||"",s+=2;continue}n+=r,s+=2;continue}if(i[s]==="&"){n+=e,s++;continue}n+=i[s],s++}return n}function
|
|
5
|
+
`:n==="\r"?e+="\\r":n==="\x07"?e+="\\a":n==="\b"?e+="\\b":n==="\f"?e+="\\f":n==="\v"?e+="\\v":s<32||s>=127?e+=`\\${s.toString(8).padStart(3,"0")}`:e+=n}return`${e}$`}var ie=1e4;function j(i,e,t){return{patternSpace:"",holdSpace:"",lineNumber:0,totalLines:i,deleted:!1,printed:!1,quit:!1,quitSilent:!1,exitCode:void 0,errorMessage:void 0,appendBuffer:[],substitutionMade:!1,lineNumberOutput:[],nCommandOutput:[],restartCycle:!1,inDRestartedCycle:!1,currentFilename:e,pendingFileReads:[],pendingFileWrites:[],pendingExecute:void 0,rangeStates:t||new Map,linesConsumedInCycle:0}}function se(i){return typeof i=="object"&&"first"in i&&"step"in i}function re(i){return typeof i=="object"&&"offset"in i}function O(i,e,t,n,s){if(i==="$")return e===t;if(typeof i=="number")return e===i;if(se(i)){let{first:r,step:a}=i;return a===0?e===r:(e-r)%a===0&&e>=r}if(typeof i=="object"&&"pattern"in i)try{let r=i.pattern;r===""&&s?.lastPattern?r=s.lastPattern:r!==""&&s&&(s.lastPattern=r);let a=B(T(r));return y(a).test(n)}catch{return!1}return!1}function P(i){let e=t=>t===void 0?"undefined":t==="$"?"$":typeof t=="number"?String(t):"pattern"in t?`/${t.pattern}/`:"first"in t?`${t.first}~${t.step}`:"unknown";return`${e(i.start)},${e(i.end)}`}function ae(i,e,t,n,s,r){if(!i||!i.start&&!i.end)return!0;let a=i.start,c=i.end;if(a!==void 0&&c===void 0)return O(a,e,t,n,r);if(a!==void 0&&c!==void 0){let o=typeof a=="object"&&"pattern"in a,u=typeof c=="object"&&"pattern"in c,b=re(c);if(b&&s){let m=P(i),d=s.get(m);if(d||(d={active:!1},s.set(m,d)),d.active){let h=d.startLine||e;return e>=h+c.offset&&(d.active=!1,s.set(m,d)),!0}else return O(a,e,t,n,r)?(d.active=!0,d.startLine=e,s.set(m,d),c.offset===0&&(d.active=!1,s.set(m,d)),!0):!1}if(!o&&!u&&!b){let m=typeof a=="number"?a:a==="$"?t:1,d=typeof c=="number"?c:t;if(m<=d)return e>=m&&e<=d;if(s){let h=P(i),f=s.get(h);return f||(f={active:!1},s.set(h,f)),!f.completed&&e>=m?(f.completed=!0,s.set(h,f),!0):!1}return!1}if(s){let m=P(i),d=s.get(m);if(d||(d={active:!1},s.set(m,d)),d.active)return O(c,e,t,n,r)&&(d.active=!1,typeof a=="number"&&(d.completed=!0),s.set(m,d)),!0;{if(d.completed)return!1;let h=!1;return typeof a=="number"?h=e>=a:h=O(a,e,t,n,r),h?(d.active=!0,d.startLine=e,s.set(m,d),O(c,e,t,n,r)&&(d.active=!1,typeof a=="number"&&(d.completed=!0),s.set(m,d)),!0):!1}}return O(a,e,t,n,r)}return!0}function N(i,e,t,n,s,r){let a=ae(i,e,t,n,s,r);return i?.negated?!a:a}function ce(i,e,t,n){let s="",r=0,a=!1;for(;r<=i.length;){e.lastIndex=r;let c=e.exec(i);if(!c){s+=i.slice(r);break}if(c.index!==r){s+=i.slice(r,c.index),r=c.index,a=!1;continue}let o=c[0],u=c.slice(1);if(a&&o.length===0){if(r<i.length)s+=i[r],r++;else break;a=!1;continue}if(s+=n(o,u),a=!1,o.length===0)if(r<i.length)s+=i[r],r++;else break;else r+=o.length,a=!0}return s}function D(i,e,t){let n="",s=0;for(;s<i.length;){if(i[s]==="\\"&&s+1<i.length){let r=i[s+1];if(r==="&"){n+="&",s+=2;continue}if(r==="n"){n+=`
|
|
6
|
+
`,s+=2;continue}if(r==="t"){n+=" ",s+=2;continue}if(r==="r"){n+="\r",s+=2;continue}let a=parseInt(r,10);if(a===0){n+=e,s+=2;continue}if(a>=1&&a<=9){n+=t[a-1]||"",s+=2;continue}n+=r,s+=2;continue}if(i[s]==="&"){n+=e,s++;continue}n+=i[s],s++}return n}function le(i,e){let{lineNumber:t,totalLines:n,patternSpace:s}=e;if(i.type!=="label"&&N(i.address,t,n,s,e.rangeStates,e))switch(i.type){case"substitute":{let r=i,a="";r.global&&(a+="g"),r.ignoreCase&&(a+="i");let c=r.pattern;c===""&&e.lastPattern?c=e.lastPattern:c!==""&&(e.lastPattern=c);let o=B(r.extendedRegex?c:T(c));try{let u=y(o,a),b=u.test(e.patternSpace);if(u.lastIndex=0,b){if(e.substitutionMade=!0,r.nthOccurrence&&r.nthOccurrence>0&&!r.global){let g=0,m=r.nthOccurrence,d=y(o,`g${r.ignoreCase?"i":""}`);e.patternSpace=d.replace(e.patternSpace,(h,...f)=>{if(g++,g===m){let E=f.slice(0,-2);return D(r.replacement,h,E)}return h})}else if(r.global){let g=y(o,`g${r.ignoreCase?"i":""}`);e.patternSpace=ce(e.patternSpace,g,r.replacement,(m,d)=>D(r.replacement,m,d))}else e.patternSpace=u.replace(e.patternSpace,(g,...m)=>{let d=m.slice(0,-2);return D(r.replacement,g,d)});r.printOnMatch&&e.lineNumberOutput.push(e.patternSpace)}}catch{}break}case"print":e.lineNumberOutput.push(e.patternSpace);break;case"printFirstLine":{let r=e.patternSpace.indexOf(`
|
|
7
7
|
`);r!==-1?e.lineNumberOutput.push(e.patternSpace.slice(0,r)):e.lineNumberOutput.push(e.patternSpace);break}case"delete":e.deleted=!0;break;case"deleteFirstLine":{let r=e.patternSpace.indexOf(`
|
|
8
8
|
`);r!==-1?(e.patternSpace=e.patternSpace.slice(r+1),e.restartCycle=!0,e.inDRestartedCycle=!0):e.deleted=!0;break}case"zap":e.patternSpace="";break;case"append":e.appendBuffer.push(i.text);break;case"insert":e.appendBuffer.unshift(`__INSERT__${i.text}`);break;case"change":e.deleted=!0,e.changedText=i.text;break;case"hold":e.holdSpace=e.patternSpace;break;case"holdAppend":e.holdSpace?e.holdSpace+=`
|
|
9
9
|
${e.patternSpace}`:e.holdSpace=e.patternSpace;break;case"get":e.patternSpace=e.holdSpace;break;case"getAppend":e.patternSpace+=`
|
|
10
|
-
${e.holdSpace}`;break;case"exchange":{let r=e.patternSpace;e.patternSpace=e.holdSpace,e.holdSpace=r;break}case"next":e.printed=!0;break;case"quit":e.quit=!0,i.exitCode!==void 0&&(e.exitCode=i.exitCode);break;case"quitSilent":e.quit=!0,e.quitSilent=!0,i.exitCode!==void 0&&(e.exitCode=i.exitCode);break;case"list":{let r=
|
|
10
|
+
${e.holdSpace}`;break;case"exchange":{let r=e.patternSpace;e.patternSpace=e.holdSpace,e.holdSpace=r;break}case"next":e.printed=!0;break;case"quit":e.quit=!0,i.exitCode!==void 0&&(e.exitCode=i.exitCode);break;case"quitSilent":e.quit=!0,e.quitSilent=!0,i.exitCode!==void 0&&(e.exitCode=i.exitCode);break;case"list":{let r=G(e.patternSpace);e.lineNumberOutput.push(r);break}case"printFilename":e.currentFilename&&e.lineNumberOutput.push(e.currentFilename);break;case"version":{let r=[4,8,0];if(i.minVersion){let a=i.minVersion.split("."),c=[],o=!1;for(let u of a){let b=parseInt(u,10);if(Number.isNaN(b)||b<0){e.quit=!0,e.exitCode=1,e.errorMessage=`sed: invalid version string: ${i.minVersion}`,o=!0;break}c.push(b)}if(!o){for(;c.length<3;)c.push(0);for(let u=0;u<3;u++){if(c[u]>r[u]){e.quit=!0,e.exitCode=1,e.errorMessage=`sed: this is not GNU sed version ${i.minVersion}`;break}if(c[u]<r[u])break}}}break}case"readFile":e.pendingFileReads.push({filename:i.filename,wholeFile:!0});break;case"readFileLine":e.pendingFileReads.push({filename:i.filename,wholeFile:!1});break;case"writeFile":e.pendingFileWrites.push({filename:i.filename,content:`${e.patternSpace}
|
|
11
11
|
`});break;case"writeFirstLine":{let r=e.patternSpace.indexOf(`
|
|
12
12
|
`),a=r!==-1?e.patternSpace.slice(0,r):e.patternSpace;e.pendingFileWrites.push({filename:i.filename,content:`${a}
|
|
13
|
-
`});break}case"execute":i.command?e.pendingExecute={command:i.command,replacePattern:!1}:e.pendingExecute={command:e.patternSpace,replacePattern:!0};break;case"transliterate":e.patternSpace=
|
|
14
|
-
${u}`,e.lineNumber=t.currentLineIndex+e.linesConsumedInCycle+1}else{e.quit=!0;break}c++;continue}if(o.type==="branch"){let u=o;if(N(u.address,e.lineNumber,e.totalLines,e.patternSpace,e.rangeStates,e)){if(u.label){let b=s.get(u.label);if(b!==void 0){c=b;continue}e.branchRequest=u.label;break}break}c++;continue}if(o.type==="branchOnSubst"){let u=o;if(N(u.address,e.lineNumber,e.totalLines,e.patternSpace,e.rangeStates,e)&&e.substitutionMade){if(e.substitutionMade=!1,u.label){let b=s.get(u.label);if(b!==void 0){c=b;continue}e.branchRequest=u.label;break}break}c++;continue}if(o.type==="branchOnNoSubst"){let u=o;if(N(u.address,e.lineNumber,e.totalLines,e.patternSpace,e.rangeStates,e)&&!e.substitutionMade){if(u.label){let b=s.get(u.label);if(b!==void 0){c=b;continue}e.branchRequest=u.label;break}break}c++;continue}if(o.type==="group"){let u=o;if(N(u.address,e.lineNumber,e.totalLines,e.patternSpace,e.rangeStates,e)&&(
|
|
13
|
+
`});break}case"execute":i.command?e.pendingExecute={command:i.command,replacePattern:!1}:e.pendingExecute={command:e.patternSpace,replacePattern:!0};break;case"transliterate":e.patternSpace=oe(e.patternSpace,i);break;case"lineNumber":e.lineNumberOutput.push(String(e.lineNumber));break;case"branch":break;case"branchOnSubst":break;case"branchOnNoSubst":break;case"group":break}}function oe(i,e){let t="";for(let n of i){let s=e.source.indexOf(n);s!==-1?t+=e.dest[s]:t+=n}return t}function W(i,e,t,n){let s=new Map;for(let o=0;o<i.length;o++){let u=i[o];u.type==="label"&&s.set(u.name,o)}let r=n?.maxIterations??ie,a=0,c=0;for(;c<i.length;){if(a++,a>r)throw new R(`sed: command execution exceeded maximum iterations (${r})`,"iterations");if(e.deleted||e.quit||e.quitSilent||e.restartCycle)break;let o=i[c];if(o.type==="next"){if(N(o.address,e.lineNumber,e.totalLines,e.patternSpace,e.rangeStates,e))if(e.nCommandOutput.push(e.patternSpace),t&&t.currentLineIndex+e.linesConsumedInCycle+1<t.lines.length){e.linesConsumedInCycle++;let u=t.lines[t.currentLineIndex+e.linesConsumedInCycle];e.patternSpace=u,e.lineNumber=t.currentLineIndex+e.linesConsumedInCycle+1,e.substitutionMade=!1}else{e.quit=!0,e.deleted=!0;break}c++;continue}if(o.type==="nextAppend"){if(N(o.address,e.lineNumber,e.totalLines,e.patternSpace,e.rangeStates,e))if(t&&t.currentLineIndex+e.linesConsumedInCycle+1<t.lines.length){e.linesConsumedInCycle++;let u=t.lines[t.currentLineIndex+e.linesConsumedInCycle];e.patternSpace+=`
|
|
14
|
+
${u}`,e.lineNumber=t.currentLineIndex+e.linesConsumedInCycle+1}else{e.quit=!0;break}c++;continue}if(o.type==="branch"){let u=o;if(N(u.address,e.lineNumber,e.totalLines,e.patternSpace,e.rangeStates,e)){if(u.label){let b=s.get(u.label);if(b!==void 0){c=b;continue}e.branchRequest=u.label;break}break}c++;continue}if(o.type==="branchOnSubst"){let u=o;if(N(u.address,e.lineNumber,e.totalLines,e.patternSpace,e.rangeStates,e)&&e.substitutionMade){if(e.substitutionMade=!1,u.label){let b=s.get(u.label);if(b!==void 0){c=b;continue}e.branchRequest=u.label;break}break}c++;continue}if(o.type==="branchOnNoSubst"){let u=o;if(N(u.address,e.lineNumber,e.totalLines,e.patternSpace,e.rangeStates,e)&&!e.substitutionMade){if(u.label){let b=s.get(u.label);if(b!==void 0){c=b;continue}e.branchRequest=u.label;break}break}c++;continue}if(o.type==="group"){let u=o;if(N(u.address,e.lineNumber,e.totalLines,e.patternSpace,e.rangeStates,e)&&(W(u.commands,e,t,n),e.branchRequest)){let b=s.get(e.branchRequest);if(b!==void 0){e.branchRequest=void 0,c=b;continue}break}c++;continue}le(o,e),c++}return e.linesConsumedInCycle}var l;(function(i){i.NUMBER="NUMBER",i.DOLLAR="DOLLAR",i.PATTERN="PATTERN",i.STEP="STEP",i.RELATIVE_OFFSET="RELATIVE_OFFSET",i.LBRACE="LBRACE",i.RBRACE="RBRACE",i.SEMICOLON="SEMICOLON",i.NEWLINE="NEWLINE",i.COMMA="COMMA",i.NEGATION="NEGATION",i.COMMAND="COMMAND",i.SUBSTITUTE="SUBSTITUTE",i.TRANSLITERATE="TRANSLITERATE",i.LABEL_DEF="LABEL_DEF",i.BRANCH="BRANCH",i.BRANCH_ON_SUBST="BRANCH_ON_SUBST",i.BRANCH_ON_NO_SUBST="BRANCH_ON_NO_SUBST",i.TEXT_CMD="TEXT_CMD",i.FILE_READ="FILE_READ",i.FILE_READ_LINE="FILE_READ_LINE",i.FILE_WRITE="FILE_WRITE",i.FILE_WRITE_LINE="FILE_WRITE_LINE",i.EXECUTE="EXECUTE",i.VERSION="VERSION",i.EOF="EOF",i.ERROR="ERROR"})(l||(l={}));var w=class{input;pos=0;line=1;column=1;constructor(e){this.input=e}tokenize(){let e=[];for(;this.pos<this.input.length;){let t=this.nextToken();t&&e.push(t)}return e.push(this.makeToken(l.EOF,"")),e}makeToken(e,t,n){return{type:e,value:t,line:this.line,column:this.column,...n}}peek(e=0){return this.input[this.pos+e]||""}advance(){let e=this.input[this.pos++]||"";return e===`
|
|
15
15
|
`?(this.line++,this.column=1):this.column++,e}readEscapedString(e){let t="";for(;this.pos<this.input.length&&this.peek()!==e;)if(this.peek()==="\\"){this.advance();let n=this.advance();n==="n"?t+=`
|
|
16
16
|
`:n==="t"?t+=" ":t+=n}else{if(this.peek()===`
|
|
17
17
|
`)return null;t+=this.advance()}return t}skipWhitespace(){for(;this.pos<this.input.length;){let e=this.peek();if(e===" "||e===" "||e==="\r")this.advance();else if(e==="#")for(;this.pos<this.input.length&&this.peek()!==`
|
|
@@ -39,9 +39,9 @@ ${u}`,e.lineNumber=t.currentLineIndex+e.linesConsumedInCycle+1}else{e.quit=!0;br
|
|
|
39
39
|
`||a===";"||a==="}"||a==="{")break;r+=this.advance()}return{type:e,value:t,label:r||void 0,line:n,column:s}}readVersion(e,t){for(;this.peek()===" "||this.peek()===" ";)this.advance();let n="";for(;this.pos<this.input.length;){let s=this.peek();if(s===" "||s===" "||s===`
|
|
40
40
|
`||s===";"||s==="}"||s==="{")break;n+=this.advance()}return{type:l.VERSION,value:"v",label:n||void 0,line:e,column:t}}readFileCommand(e,t,n,s){for(;this.peek()===" "||this.peek()===" ";)this.advance();let r="";for(;this.pos<this.input.length;){let a=this.peek();if(a===`
|
|
41
41
|
`||a===";")break;r+=this.advance()}return{type:e,value:t,filename:r.trim(),line:n,column:s}}readExecute(e,t){for(;this.peek()===" "||this.peek()===" ";)this.advance();let n="";for(;this.pos<this.input.length;){let s=this.peek();if(s===`
|
|
42
|
-
`||s===";")break;n+=this.advance()}return{type:l.EXECUTE,value:"e",command:n.trim()||void 0,line:e,column:t}}isDigit(e){return e>="0"&&e<="9"}};var
|
|
42
|
+
`||s===";")break;n+=this.advance()}return{type:l.EXECUTE,value:"e",command:n.trim()||void 0,line:e,column:t}}isDigit(e){return e>="0"&&e<="9"}};var q=class{scripts;tokens=[];pos=0;extendedRegex=!1;constructor(e,t=!1){this.scripts=e,this.extendedRegex=t}parse(){let e=[];for(let t of this.scripts){let n=new w(t);for(this.tokens=n.tokenize(),this.pos=0;!this.isAtEnd();){if(this.check(l.NEWLINE)||this.check(l.SEMICOLON)){this.advance();continue}let s=this.parseCommand();if(s.error)return{commands:[],error:s.error};s.command&&e.push(s.command)}}return{commands:e}}parseCommand(){let e=this.parseAddressRange();if(e?.error)return{command:null,error:e.error};let t=e?.address;for(this.check(l.NEGATION)&&(this.advance(),t&&(t.negated=!0));this.check(l.NEWLINE)||this.check(l.SEMICOLON);)this.advance();if(this.isAtEnd())return t&&(t.start!==void 0||t.end!==void 0)?{command:null,error:"command expected"}:{command:null};let n=this.peek();switch(n.type){case l.COMMAND:return this.parseSimpleCommand(n,t);case l.SUBSTITUTE:return this.parseSubstituteFromToken(n,t);case l.TRANSLITERATE:return this.parseTransliterateFromToken(n,t);case l.LABEL_DEF:return this.advance(),{command:{type:"label",name:n.label||""}};case l.BRANCH:return this.advance(),{command:{type:"branch",address:t,label:n.label}};case l.BRANCH_ON_SUBST:return this.advance(),{command:{type:"branchOnSubst",address:t,label:n.label}};case l.BRANCH_ON_NO_SUBST:return this.advance(),{command:{type:"branchOnNoSubst",address:t,label:n.label}};case l.TEXT_CMD:return this.advance(),this.parseTextCommand(n,t);case l.FILE_READ:return this.advance(),{command:{type:"readFile",address:t,filename:n.filename||""}};case l.FILE_READ_LINE:return this.advance(),{command:{type:"readFileLine",address:t,filename:n.filename||""}};case l.FILE_WRITE:return this.advance(),{command:{type:"writeFile",address:t,filename:n.filename||""}};case l.FILE_WRITE_LINE:return this.advance(),{command:{type:"writeFirstLine",address:t,filename:n.filename||""}};case l.EXECUTE:return this.advance(),{command:{type:"execute",address:t,command:n.command}};case l.VERSION:return this.advance(),{command:{type:"version",address:t,minVersion:n.label}};case l.LBRACE:return this.parseGroup(t);case l.RBRACE:return{command:null};case l.ERROR:return{command:null,error:`invalid command: ${n.value}`};default:return t&&(t.start!==void 0||t.end!==void 0)?{command:null,error:"command expected"}:{command:null}}}parseSimpleCommand(e,t){this.advance();let n=e.value;switch(n){case"p":return{command:{type:"print",address:t}};case"P":return{command:{type:"printFirstLine",address:t}};case"d":return{command:{type:"delete",address:t}};case"D":return{command:{type:"deleteFirstLine",address:t}};case"h":return{command:{type:"hold",address:t}};case"H":return{command:{type:"holdAppend",address:t}};case"g":return{command:{type:"get",address:t}};case"G":return{command:{type:"getAppend",address:t}};case"x":return{command:{type:"exchange",address:t}};case"n":return{command:{type:"next",address:t}};case"N":return{command:{type:"nextAppend",address:t}};case"q":return{command:{type:"quit",address:t}};case"Q":return{command:{type:"quitSilent",address:t}};case"z":return{command:{type:"zap",address:t}};case"=":return{command:{type:"lineNumber",address:t}};case"l":return{command:{type:"list",address:t}};case"F":return{command:{type:"printFilename",address:t}};default:return{command:null,error:`unknown command: ${n}`}}}parseSubstituteFromToken(e,t){this.advance();let n=e.flags||"",s,r=n.match(/(\d+)/);return r&&(s=parseInt(r[1],10)),{command:{type:"substitute",address:t,pattern:e.pattern||"",replacement:e.replacement||"",global:n.includes("g"),ignoreCase:n.includes("i")||n.includes("I"),printOnMatch:n.includes("p"),nthOccurrence:s,extendedRegex:this.extendedRegex}}}parseTransliterateFromToken(e,t){this.advance();let n=e.source||"",s=e.dest||"";return n.length!==s.length?{command:null,error:"transliteration sets must have same length"}:{command:{type:"transliterate",address:t,source:n,dest:s}}}parseTextCommand(e,t){let n=e.value,s=e.text||"";switch(n){case"a":return{command:{type:"append",address:t,text:s}};case"i":return{command:{type:"insert",address:t,text:s}};case"c":return{command:{type:"change",address:t,text:s}};default:return{command:null,error:`unknown text command: ${n}`}}}parseGroup(e){this.advance();let t=[];for(;!this.isAtEnd()&&!this.check(l.RBRACE);){if(this.check(l.NEWLINE)||this.check(l.SEMICOLON)){this.advance();continue}let n=this.parseCommand();if(n.error)return{command:null,error:n.error};n.command&&t.push(n.command)}return this.check(l.RBRACE)?(this.advance(),{command:{type:"group",address:e,commands:t}}):{command:null,error:"unmatched brace in grouped commands"}}parseAddressRange(){let e=this.parseAddress();if(e===void 0)return;let t;if(this.check(l.RELATIVE_OFFSET))t={offset:this.advance().offset||0};else if(this.check(l.COMMA)&&(this.advance(),t=this.parseAddress(),t===void 0))return{error:"expected context address"};return{address:{start:e,end:t}}}parseAddress(){let e=this.peek();switch(e.type){case l.NUMBER:return this.advance(),e.value;case l.DOLLAR:return this.advance(),"$";case l.PATTERN:return this.advance(),{pattern:e.pattern||e.value};case l.STEP:return this.advance(),{first:e.first||0,step:e.step||0};case l.RELATIVE_OFFSET:return this.advance(),{offset:e.offset||0};default:return}}peek(){return this.tokens[this.pos]||{type:l.EOF,value:"",line:0,column:0}}advance(){return this.isAtEnd()||this.pos++,this.tokens[this.pos-1]}check(e){return this.peek().type===e}isAtEnd(){return this.peek().type===l.EOF}};function Z(i,e=!1){let t=!1,n=!1,s=[];for(let o=0;o<i.length;o++){let u=i[o];if(s.length===0&&o===0){let b=u.match(/^#([nr]+)\s*(?:\n|$)/i);if(b){let g=b[1].toLowerCase();g.includes("n")&&(t=!0),g.includes("r")&&(n=!0),u=u.slice(b[0].length)}}if(s.length>0&&s[s.length-1].endsWith("\\")){let b=s[s.length-1];s[s.length-1]=`${b}
|
|
43
43
|
${u}`}else s.push(u)}let r=s.join(`
|
|
44
|
-
`),c=new
|
|
44
|
+
`),c=new q([r],e||n).parse();if(!c.error&&c.commands.length>0){let o=ue(c.commands);if(o)return{commands:[],error:o,silentMode:t,extendedRegexMode:n}}return{...c,silentMode:t,extendedRegexMode:n}}function ue(i){let e=new Set;K(i,e);let t=Q(i,e);if(t)return`undefined label '${t}'`}function K(i,e){for(let t of i)t.type==="label"?e.add(t.name):t.type==="group"&&K(t.commands,e)}function Q(i,e){for(let t of i){if((t.type==="branch"||t.type==="branchOnSubst"||t.type==="branchOnNoSubst")&&t.label&&!e.has(t.label))return t.label;if(t.type==="group"){let n=Q(t.commands,e);if(n)return n}}}var he={name:"sed",summary:"stream editor for filtering and transforming text",usage:"sed [OPTION]... {script} [input-file]...",options:["-n, --quiet, --silent suppress automatic printing of pattern space","-e script add the script to commands to be executed","-f script-file read script from file","-i, --in-place edit files in place","-E, -r, --regexp-extended use extended regular expressions"," --help display this help and exit"],description:`Commands:
|
|
45
45
|
s/regexp/replacement/[flags] substitute
|
|
46
46
|
d delete pattern space
|
|
47
47
|
p print pattern space
|
|
@@ -70,31 +70,31 @@ Addresses:
|
|
|
70
70
|
$ last line
|
|
71
71
|
/regexp/ lines matching regexp
|
|
72
72
|
N,M range from line N to M
|
|
73
|
-
first~step every step-th line starting at first`};async function
|
|
73
|
+
first~step every step-th line starting at first`};async function U(i,e,t,n={}){let{limits:s,filename:r,fs:a,cwd:c}=n,o=i.endsWith(`
|
|
74
74
|
`),u=i.split(`
|
|
75
|
-
`);u.length>0&&u[u.length-1]===""&&u.pop();let b=u.length,g="",m,d=!1,h="",f,E=new Map,C=new Map,S=new Map,
|
|
76
|
-
`)),S.set(x,0)}let I=C.get(x),
|
|
77
|
-
`;let
|
|
78
|
-
`;let
|
|
79
|
-
`;let
|
|
80
|
-
`,
|
|
81
|
-
`,
|
|
82
|
-
`,
|
|
83
|
-
`;if(d=(
|
|
84
|
-
`)&&(g=g.slice(0,-1)),{output:g,exitCode:m}}var
|
|
75
|
+
`);u.length>0&&u[u.length-1]===""&&u.pop();let b=u.length,g="",m,d=!1,h="",f,E=new Map,C=new Map,S=new Map,F=new Map,J=s?{maxIterations:s.maxSedIterations}:void 0;for(let k=0;k<u.length;k++){let p={...j(b,r,E),patternSpace:u[k],holdSpace:h,lastPattern:f,lineNumber:k+1,totalLines:b,substitutionMade:!1},Y={lines:u,currentLineIndex:k},H=0,ee=1e4;p.linesConsumedInCycle=0;do{if(H++,H>ee)break;if(p.restartCycle=!1,p.pendingFileReads=[],p.pendingFileWrites=[],W(e,p,Y,J),a&&c){for(let v of p.pendingFileReads){let x=a.resolvePath(c,v.filename);try{if(v.wholeFile){let I=await a.readFile(x);p.appendBuffer.push(I.replace(/\n$/,""))}else{if(!C.has(x)){let ne=await a.readFile(x);C.set(x,ne.split(`
|
|
76
|
+
`)),S.set(x,0)}let I=C.get(x),A=S.get(x);I&&A!==void 0&&A<I.length&&(p.appendBuffer.push(I[A]),S.set(x,A+1))}}catch{}}for(let v of p.pendingFileWrites){let x=a.resolvePath(c,v.filename),I=F.get(x)||"";F.set(x,I+v.content)}}}while(p.restartCycle&&!p.deleted&&!p.quit&&!p.quitSilent);if(k+=p.linesConsumedInCycle,h=p.holdSpace,f=p.lastPattern,!t)for(let v of p.nCommandOutput)g+=`${v}
|
|
77
|
+
`;let te=p.lineNumberOutput.length>0;for(let v of p.lineNumberOutput)g+=`${v}
|
|
78
|
+
`;let V=[],$=[];for(let v of p.appendBuffer)v.startsWith("__INSERT__")?V.push(v.slice(10)):$.push(v);for(let v of V)g+=`${v}
|
|
79
|
+
`;let L=!1;!p.deleted&&!p.quitSilent?t?p.printed&&(g+=`${p.patternSpace}
|
|
80
|
+
`,L=!0):(g+=`${p.patternSpace}
|
|
81
|
+
`,L=!0):p.changedText!==void 0&&(g+=`${p.changedText}
|
|
82
|
+
`,L=!0);for(let v of $)g+=`${v}
|
|
83
|
+
`;if(d=(te||L)&&$.length===0,p.quit||p.quitSilent){if(p.exitCode!==void 0&&(m=p.exitCode),p.errorMessage)return{output:"",exitCode:m||1,errorMessage:p.errorMessage};break}}if(a&&c)for(let[k,p]of F)try{await a.writeFile(k,p)}catch{}return!o&&d&&g.endsWith(`
|
|
84
|
+
`)&&(g=g.slice(0,-1)),{output:g,exitCode:m}}var Ie={name:"sed",async execute(i,e){if(X(i))return z(he);let t=[],n=[],s=!1,r=!1,a=!1,c=[];for(let h=0;h<i.length;h++){let f=i[h];if(f==="-n"||f==="--quiet"||f==="--silent")s=!0;else if(f==="-i"||f==="--in-place")r=!0;else if(f.startsWith("-i"))r=!0;else if(f==="-E"||f==="-r"||f==="--regexp-extended")a=!0;else if(f==="-e")h+1<i.length&&t.push(i[++h]);else if(f==="-f")h+1<i.length&&n.push(i[++h]);else{if(f.startsWith("--"))return _("sed",f);if(f==="-")c.push(f);else if(f.startsWith("-")&&f.length>1){for(let E of f.slice(1))if(E!=="n"&&E!=="e"&&E!=="f"&&E!=="i"&&E!=="E"&&E!=="r")return _("sed",`-${E}`);f.includes("n")&&(s=!0),f.includes("i")&&(r=!0),(f.includes("E")||f.includes("r"))&&(a=!0),f.includes("e")&&!f.includes("n")&&!f.includes("i")&&h+1<i.length&&t.push(i[++h]),f.includes("f")&&!f.includes("e")&&h+1<i.length&&n.push(i[++h])}else!f.startsWith("-")&&t.length===0&&n.length===0?t.push(f):f.startsWith("-")||c.push(f)}}for(let h of n){let f=e.fs.resolvePath(e.cwd,h);try{let E=await e.fs.readFile(f);for(let C of E.split(`
|
|
85
85
|
`)){let S=C.trim();S&&!S.startsWith("#")&&t.push(S)}}catch{return{stdout:"",stderr:`sed: couldn't open file ${h}: No such file or directory
|
|
86
86
|
`,exitCode:1}}}if(t.length===0)return{stdout:"",stderr:`sed: no script specified
|
|
87
|
-
`,exitCode:1};let{commands:o,error:u,silentMode:b}=
|
|
87
|
+
`,exitCode:1};let{commands:o,error:u,silentMode:b}=Z(t,a);if(u)return{stdout:"",stderr:`sed: ${u}
|
|
88
88
|
`,exitCode:1};let g=!!(s||b);if(r){if(c.length===0)return{stdout:"",stderr:`sed: -i requires at least one file argument
|
|
89
|
-
`,exitCode:1};for(let h of c){if(h==="-")continue;let f=e.fs.resolvePath(e.cwd,h);try{let E=await e.fs.readFile(f),C=await
|
|
89
|
+
`,exitCode:1};for(let h of c){if(h==="-")continue;let f=e.fs.resolvePath(e.cwd,h);try{let E=await e.fs.readFile(f),C=await U(E,o,g,{limits:e.limits,filename:h,fs:e.fs,cwd:e.cwd});if(C.errorMessage)return{stdout:"",stderr:`${C.errorMessage}
|
|
90
90
|
`,exitCode:C.exitCode??1};await e.fs.writeFile(f,C.output)}catch(E){return E instanceof R?{stdout:"",stderr:`sed: ${E.message}
|
|
91
91
|
`,exitCode:R.EXIT_CODE}:{stdout:"",stderr:`sed: ${h}: No such file or directory
|
|
92
|
-
`,exitCode:1}}}return{stdout:"",stderr:"",exitCode:0}}let m="";if(c.length===0){m=e.stdin;try{let h=await
|
|
92
|
+
`,exitCode:1}}}return{stdout:"",stderr:"",exitCode:0}}let m="";if(c.length===0){m=e.stdin;try{let h=await U(m,o,g,{limits:e.limits,fs:e.fs,cwd:e.cwd});return{stdout:h.output,stderr:h.errorMessage?`${h.errorMessage}
|
|
93
93
|
`:"",exitCode:h.exitCode??0}}catch(h){if(h instanceof R)return{stdout:"",stderr:`sed: ${h.message}
|
|
94
94
|
`,exitCode:R.EXIT_CODE};throw h}}let d=!1;for(let h of c){let f;if(h==="-")d?f="":(f=e.stdin,d=!0);else{let E=e.fs.resolvePath(e.cwd,h);try{f=await e.fs.readFile(E)}catch(C){return C instanceof R?{stdout:"",stderr:`sed: ${C.message}
|
|
95
95
|
`,exitCode:R.EXIT_CODE}:{stdout:"",stderr:`sed: ${h}: No such file or directory
|
|
96
96
|
`,exitCode:1}}}m.length>0&&f.length>0&&!m.endsWith(`
|
|
97
97
|
`)&&(m+=`
|
|
98
|
-
`),m+=f}try{let h=await
|
|
98
|
+
`),m+=f}try{let h=await U(m,o,g,{limits:e.limits,filename:c.length===1?c[0]:void 0,fs:e.fs,cwd:e.cwd});return{stdout:h.output,stderr:h.errorMessage?`${h.errorMessage}
|
|
99
99
|
`:"",exitCode:h.exitCode??0}}catch(h){if(h instanceof R)return{stdout:"",stderr:`sed: ${h.message}
|
|
100
|
-
`,exitCode:R.EXIT_CODE};throw h}}};export{
|
|
100
|
+
`,exitCode:R.EXIT_CODE};throw h}}};export{Ie as sedCommand};
|
|
@@ -1,46 +1,46 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import{a as
|
|
3
|
-
`,a=x.encode(o).length+1,c=a+String(a).length;return c=a+String(c).length,`${c} ${o}`}).join(""));return{paxHeader:fe({name:oe.decode(x.encode(`PaxHeader/${e.name}`).slice(0,100)),size:r.length,type:"pax-header",mode:420,mtime:e.mtime,uname:e.uname,gname:e.gname,uid:e.uid,gid:e.gid}),paxBody:r}}function ue(e){if(e.length<=100)return null;let t=e.length-100-1,i=e.lastIndexOf("/",155);return i>0&&i>=t?{prefix:e.slice(0,i),name:e.slice(i+1)}:null}function fe(e){let t=new Uint8Array(512),i=k(e)?0:e.size??0,r=e.name,n="";if(!e.pax?.path){let s=ue(r);s&&(r=s.name,n=s.prefix)}return T(t,0,100,r),I(t,100,8,e.mode??(e.type===b?493:420)),I(t,108,8,e.uid??0),I(t,116,8,e.gid??0),I(t,124,12,i),I(t,136,12,Math.floor((e.mtime?.getTime()??Date.now())/1e3)),T(t,156,1,ve[e.type??P]),T(t,157,100,e.linkname),T(t,257,6,"ustar\0"),T(t,263,2,"00"),T(t,265,32,e.uname),T(t,297,32,e.gname),T(t,345,155,n),$e(t),t}function Be(e,t){if(t&&!Me(e))throw new Error("Invalid tar header checksum.");let i=A(e,156,1),r={name:A(e,0,100),mode:G(e,100,8),uid:R(e,108,8),gid:R(e,116,8),size:R(e,124,12),mtime:new Date(R(e,136,12)*1e3),type:ze[i]||P,linkname:A(e,157,100)},n=A(e,257,6);return n.trim()==="ustar"&&(r.uname=A(e,265,32),r.gname=A(e,297,32)),n==="ustar"&&(r.prefix=A(e,345,155)),r}var De={path:["name",e=>e],linkpath:["linkname",e=>e],size:["size",e=>parseInt(e,10)],mtime:["mtime",parseFloat],uid:["uid",e=>parseInt(e,10)],gid:["gid",e=>parseInt(e,10)],uname:["uname",e=>e],gname:["gname",e=>e]};function Ne(e){let t=new TextDecoder("utf-8"),i={},r={},n=0;for(;n<e.length;){let s=e.indexOf(32,n);if(s===-1)break;let o=parseInt(t.decode(e.subarray(n,s)),10);if(Number.isNaN(o)||o===0)break;let a=n+o,[c,l]=t.decode(e.subarray(s+1,a-1)).split("=",2);if(c&&l!==void 0){r[c]=l;let d=De[c];if(d){let[u,g]=d,p=g(l);(typeof p=="string"||!Number.isNaN(p))&&(i[u]=p)}}n=a}return Object.keys(r).length>0&&(i.pax=r),i}function ne(e,t){t.name!==void 0&&(e.name=t.name),t.linkname!==void 0&&(e.linkname=t.linkname),t.size!==void 0&&(e.size=t.size),t.mtime!==void 0&&(e.mtime=new Date(t.mtime*1e3)),t.uid!==void 0&&(e.uid=t.uid),t.gid!==void 0&&(e.gid=t.gid),t.uname!==void 0&&(e.uname=t.uname),t.gname!==void 0&&(e.gname=t.gname),t.pax&&(e.pax=Object.assign({},e.pax??{},t.pax))}function Le(e){switch(e){case"pax-global-header":case"pax-header":return Ne;case"gnu-long-name":return t=>({name:A(t,0,t.length)});case"gnu-long-link-name":return t=>({linkname:A(t,0,t.length)});default:return}}function Ke(e){let t=fe(e),i=Ze(e);if(!i)return[t];let r=-i.paxBody.length&511,n=r>0?[Oe.subarray(0,r)]:[];return[i.paxHeader,i.paxBody,...n,t]}var Pe=new Uint8Array(512*2);function de(e,t,i){let r=null,n=0,s=!1;return{add(o){if(s){let a=new Error("No new tar entries after finalize.");throw t(a),a}if(r!==null){let a=new Error("Previous entry must be completed before adding a new one");throw t(a),a}try{let a=k(o)?0:o.size??0,c=Ke({...o,size:a});for(let l of c)e(l);r={...o,size:a},n=0}catch(a){t(a)}},write(o){if(!r){let c=new Error("No active tar entry.");throw t(c),c}if(s){let c=new Error("Cannot write data after finalize.");throw t(c),c}let a=n+o.length;if(a>r.size){let c=new Error(`"${r.name}" exceeds given size of ${r.size} bytes.`);throw t(c),c}try{n=a,e(o)}catch(c){t(c)}},endEntry(){if(!r){let o=new Error("No active entry to end.");throw t(o),o}if(s){let o=new Error("Cannot end entry after finalize.");throw t(o),o}try{if(n!==r.size){let a=new Error(`Size mismatch for "${r.name}".`);throw t(a),a}let o=-r.size&511;o>0&&e(new Uint8Array(o)),r=null,n=0}catch(o){throw t(o),o}},finalize(){if(s){let o=new Error("Archive has already been finalized");throw t(o),o}if(r!==null){let o=new Error("Cannot finalize while an entry is still active");throw t(o),o}try{e(Pe),s=!0,i&&i()}catch(o){t(o)}}}}var v=256;function Ge(){let e=new Array(v),t=e.length-1,i=0,r=0,n=0,s=a=>{let c=e[i];a===c.length?(e[i]=O,i=i+1&t):e[i]=c.subarray(a),n-=a,n===0&&e.length>v&&(e=new Array(v),t=v-1,i=0,r=0)};function o(a,c){if(c){let p=0,f=Math.min(a,n);for(;f>0;){let h=e[i],m=Math.min(f,h.length),S=m===h.length?h:h.subarray(0,m);if(s(m),f-=m,p+=m,!c(S))break}return p}if(n<a)return null;if(a===0)return O;let l=e[i];if(l.length>=a){let p=l.length===a?l:l.subarray(0,a);return s(a),p}let d=new Uint8Array(a),u=0,g=a;for(;g>0;){let p=e[i],f=Math.min(g,p.length);d.set(f===p.length?p:p.subarray(0,f),u),u+=f,g-=f,s(f)}return d}return{push:a=>{if(a.length===0)return;let c=r+1&t;if(c===i){let l=e.length,d=l*2,u=new Array(d),g=r-i+l&l-1;if(i<r)for(let p=0;p<g;p++)u[p]=e[i+p];else if(g>0){let p=l-i;for(let f=0;f<p;f++)u[f]=e[i+f];for(let f=0;f<r;f++)u[p+f]=e[f]}e=u,t=d-1,i=0,r=g,c=r+1&t}e[r]=a,r=c,n+=a.length},available:()=>n,peek:a=>{if(n<a)return null;if(a===0)return O;let c=e[i];if(c.length>=a)return c.length===a?c:c.subarray(0,a);let l=new Uint8Array(a),d=0,u=i;for(;d<a;){let g=e[u],p=Math.min(a-d,g.length);p===g.length?l.set(g,d):l.set(g.subarray(0,p),d),d+=p,u=u+1&t}return l},discard:a=>{if(a>n)throw new Error("Too many bytes consumed");if(a===0)return;let c=a;for(;c>0;){let l=e[i],d=Math.min(c,l.length);s(d),c-=d}},pull:o}}var L=0,F=1,z=new Error("Tar archive is truncated.");function me(e={}){let t=e.strict??!1,{available:i,peek:r,push:n,discard:s,pull:o}=Ge(),a=L,c=!1,l=!1,d=!1,u=null,g={},p={},f={isEntryActive:()=>a===F,isBodyComplete:()=>!u||u.remaining===0,write(h){if(c)throw new Error("Archive already ended.");n(h)},end(){c=!0},readHeader(){if(a!==L)throw new Error("Cannot read header while an entry is active");if(!l)for(;!l;){if(i()<512){if(c){if(i()>0&&t)throw z;l=!0;return}return null}let h=r(512);if(ie(h)){if(i()<512*2){if(c){if(t)throw z;l=!0;return}return null}if(ie(r(512*2).subarray(512))){s(512*2),l=!0,d=!0;return}if(t)throw new Error("Invalid tar header.");s(512);continue}let m;try{m=Be(h,t)}catch(w){if(t)throw w;s(512);continue}let S=Le(m.type);if(S){let w=m.size+511&-512;if(i()<512+w){if(c&&t)throw z;return null}s(512);let U=S(o(w).subarray(0,m.size)),Re=m.type==="pax-global-header"?g:p;for(let ee in U)Re[ee]=U[ee];continue}s(512);let E=m;return m.prefix&&(E.name=`${m.prefix}/${E.name}`),ne(E,g),ne(E,p),p={},u={header:E,remaining:E.size,padding:-E.size&511},a=F,E}},streamBody(h){if(a!==F||!u||u.remaining===0)return 0;let m=Math.min(u.remaining,i());if(m===0)return 0;let S=o(m,h);return u.remaining-=S,S},skipPadding(){if(a!==F||!u)return!0;if(u.remaining>0)throw new Error("Body not fully consumed");return i()<u.padding?!1:(s(u.padding),u=null,a=L,!0)},skipEntry(){if(a!==F||!u)return!0;let h=Math.min(u.remaining,i());return h>0&&(s(h),u.remaining-=h),u.remaining>0?!1:f.skipPadding()},validateEOF(){if(t){if(!d)throw z;if(i()>0&&o(i()).some(h=>h!==0))throw new Error("Invalid EOF.")}}};return f}function ie(e){if(e.byteOffset%8===0){let t=new BigUint64Array(e.buffer,e.byteOffset,e.length/8);for(let i=0;i<t.length;i++)if(t[i]!==0n)return!1;return!0}for(let t=0;t<e.length;t++)if(e[t]!==0)return!1;return!0}function he(){return new CompressionStream("gzip")}function ge(){return new DecompressionStream("gzip")}function He(){let e,t;return{readable:new ReadableStream({start(i){e=i,t=de(i.enqueue.bind(i),i.error.bind(i),i.close.bind(i))}}),controller:{add(i){let r=k(i),n={...i};return r&&(n.size=0),t.add(n),r&&t.endEntry(),new WritableStream({write(s){t.write(s)},close(){r||t.endEntry()},abort(s){e.error(s)}})},finalize(){t.finalize()},error(i){e.error(i)}}}}async function Se(e){let t=[],i=e.getReader(),r=0;try{for(;;){let{done:o,value:a}=await i.read();if(o)break;t.push(a),r+=a.length}let n=new Uint8Array(r),s=0;for(let o of t)n.set(o,s),s+=o.length;return n}finally{i.releaseLock()}}var pe=e=>e.pipeTo(new WritableStream);function We(e={}){let t=me(e),i=null,r=!1,n=s=>{if(!r){r=!0;try{for(;;)if(t.isEntryActive()){if(i){if(t.streamBody(o=>(i.enqueue(o),!0))===0&&!t.isBodyComplete())break}else if(!t.skipEntry())break;if(t.isBodyComplete()){try{i?.close()}catch{}if(i=null,!t.skipPadding())break}}else{let o=t.readHeader();if(o==null)break;s.enqueue({header:o,body:new ReadableStream({start(a){o.size===0?a.close():i=a},pull:()=>n(s),cancel(){i=null,n(s)}})})}}catch(o){try{i?.error(o)}catch{}throw i=null,o}finally{r=!1}}};return new TransformStream({transform(s,o){try{t.write(s),n(o)}catch(a){try{i?.error(a)}catch{}throw a}},flush(s){try{if(t.end(),n(s),t.validateEOF(),t.isEntryActive()&&!t.isBodyComplete())try{i?.close()}catch{}}catch(o){try{i?.error(o)}catch{}throw o}}},void 0,{highWaterMark:1})}async function Ee(e){let{readable:t,controller:i}=He();return await(async()=>{for(let r of e){let n=i.add(r.header),s="body"in r?r.body:r.data;if(!s){await n.close();continue}if(s instanceof ReadableStream)await s.pipeTo(n);else if(s instanceof Blob)await s.stream().pipeTo(n);else try{let o=await ce(s);if(o.length>0){let a=n.getWriter();await a.write(o),await a.close()}else await n.close()}catch{throw new TypeError(`Unsupported content type for entry "${r.header.name}".`)}}})().then(()=>i.finalize()).catch(r=>i.error(r)),new Uint8Array(await Se(t))}async function we(e,t={}){let i=e instanceof ReadableStream?e:new ReadableStream({start(s){s.enqueue(e instanceof Uint8Array?e:new Uint8Array(e)),s.close()}}),r=[],n=i.pipeThrough(We(t));for await(let s of n){let o;try{o=le(s.header,t)}catch(a){throw await s.body.cancel(),a}if(o===null){await pe(s.body);continue}k(o)?(await pe(s.body),r.push({header:o})):r.push({header:o,data:await Se(s.body)})}return r}var M=null,$=null;async function _e(){if(M)return M;if($)throw $;try{return M=await import("node-liblzma"),M}catch{throw $=new Error("xz compression requires node-liblzma which failed to load. Install liblzma-dev (apt) or xz (brew) and reinstall dependencies."),$}}var y=100*1024*1024,ye=1e4;function Xe(e){let t="file";e.isDirectory?t="directory":e.isSymlink&&(t="symlink");let i=e.name;e.isDirectory&&!i.endsWith("/")&&(i+="/");let r;e.content!==void 0&&(typeof e.content=="string"?r=new TextEncoder().encode(e.content):r=e.content);let n=e.isDirectory||e.isSymlink?0:r?.length??0;return{header:{name:i,mode:e.mode??(e.isDirectory?493:420),uid:e.uid??0,gid:e.gid??0,size:n,mtime:e.mtime??new Date,type:t,linkname:e.linkTarget??"",uname:"user",gname:"user"},body:r}}async function C(e){let t=e.map(Xe);return Ee(t)}async function Te(e){let t=await C(e),n=new ReadableStream({start(l){l.enqueue(t),l.close()}}).pipeThrough(he()).getReader(),s=[];for(;;){let{done:l,value:d}=await n.read();if(l)break;s.push(d)}let o=s.reduce((l,d)=>l+d.length,0),a=new Uint8Array(o),c=0;for(let l of s)a.set(l,c),c+=l.length;return a}async function _(e){if(e.length>y)return{entries:[],error:`Archive too large (max ${y} bytes)`};try{let t=await we(e),i=[];for(let r of t){if(i.length>=ye)return{entries:i,error:`Too many entries (max ${ye})`};let n="file";switch(r.header.type){case"directory":n="directory";break;case"symlink":n="symlink";break;case"link":n="hardlink";break;case"file":n="file";break;default:n="other"}i.push({name:r.header.name,mode:r.header.mode??420,uid:r.header.uid??0,gid:r.header.gid??0,size:r.header.size,mtime:r.header.mtime??new Date,type:n,linkTarget:r.header.linkname||void 0,content:r.data??new Uint8Array(0)})}return{entries:i}}catch(t){let i=t instanceof Error?t.message:"Unknown error";return{entries:[],error:i}}}async function H(e){if(e.length>y)return{entries:[],error:`Archive too large (max ${y} bytes)`};try{let r=new ReadableStream({start(c){c.enqueue(e),c.close()}}).pipeThrough(ge()).getReader(),n=[];for(;;){let{done:c,value:l}=await r.read();if(c)break;n.push(l)}let s=n.reduce((c,l)=>c+l.length,0),o=new Uint8Array(s),a=0;for(let c of n)o.set(c,a),a+=c.length;return _(o)}catch(t){let i=t instanceof Error?t.message:"Unknown error";return{entries:[],error:`Decompression failed: ${i}`}}}function W(e){return e.length>=2&&e[0]===31&&e[1]===139}function X(e){return e.length>=3&&e[0]===66&&e[1]===90&&e[2]===104}function j(e){return e.length>=6&&e[0]===253&&e[1]===55&&e[2]===122&&e[3]===88&&e[4]===90&&e[5]===0}async function je(e){let i=Ae.Bzip2.decompressFile(Array.from(e));return new Uint8Array(i)}async function qe(e){let t=Ae.Bzip2,i=[];return t.compressFile(Array.from(e),i,9),new Uint8Array(i)}async function Ye(e){let i=(await _e()).unxzSync(Buffer.from(e));return new Uint8Array(i)}async function Ve(e){let i=(await _e()).xzSync(Buffer.from(e));return new Uint8Array(i)}async function Ce(e){let t=await C(e);return qe(t)}async function xe(e){let t=await C(e);return Ve(t)}async function q(e){if(e.length>y)return{entries:[],error:`Archive too large (max ${y} bytes)`};try{let t=await je(e);return _(t)}catch(t){let i=t instanceof Error?t.message:"Unknown error";return{entries:[],error:i}}}async function Y(e){if(e.length>y)return{entries:[],error:`Archive too large (max ${y} bytes)`};try{let t=await Ye(e);return _(t)}catch(t){let i=t instanceof Error?t.message:"Unknown error";return{entries:[],error:i}}}function V(e){return e.length>=4&&e[0]===40&&e[1]===181&&e[2]===47&&e[3]===253}async function Je(e){let t=await Z.compress(Buffer.from(e),3);return new Uint8Array(t)}async function Qe(e){let t=await Z.decompress(Buffer.from(e));return new Uint8Array(t)}async function Ue(e){let t=await C(e);return Je(t)}async function J(e){if(e.length>y)return{entries:[],error:`Archive too large (max ${y} bytes)`};try{let t=await Qe(e);return _(t)}catch(t){let i=t instanceof Error?t.message:"Unknown error";return{entries:[],error:i}}}function Ie(e){let t={create:!1,append:!1,update:!1,extract:!1,list:!1,file:"",autoCompress:!1,gzip:!1,bzip2:!1,xz:!1,zstd:!1,verbose:!1,toStdout:!1,keepOldFiles:!1,touch:!1,directory:"",preserve:!1,strip:0,exclude:[],filesFrom:"",excludeFrom:"",wildcards:!1},i=[],r=0;for(;r<e.length;){let n=e[r];if(n.startsWith("-")&&!n.startsWith("--")&&n.length>2){if(/^-\d+$/.test(n)){i.push(n),r++;continue}for(let s=1;s<n.length;s++){let o=n[s];switch(o){case"c":t.create=!0;break;case"r":t.append=!0;break;case"u":t.update=!0;break;case"x":t.extract=!0;break;case"t":t.list=!0;break;case"a":t.autoCompress=!0;break;case"z":t.gzip=!0;break;case"j":t.bzip2=!0;break;case"J":t.xz=!0;break;case"v":t.verbose=!0;break;case"O":t.toStdout=!0;break;case"k":t.keepOldFiles=!0;break;case"m":t.touch=!0;break;case"p":t.preserve=!0;break;case"f":if(s<n.length-1)t.file=n.substring(s+1),s=n.length;else{if(r++,r>=e.length)return{ok:!1,error:{stdout:"",stderr:`tar: option requires an argument -- 'f'
|
|
2
|
+
import{a as x}from"./chunk-SE4C7FJY.js";import{a as ne,b as ie,c as K}from"./chunk-GTNBSMZR.js";import"./chunk-KGOUQS5A.js";import Te from"compressjs";var H="file",oe="link",ce="symlink",M="directory",be={file:"0",link:"1",symlink:"2","character-device":"3","block-device":"4",directory:"5",fifo:"6","pax-header":"x","pax-global-header":"g","gnu-long-name":"L","gnu-long-link-name":"K"},Me={0:H,1:oe,2:ce,3:"character-device",4:"block-device",5:M,6:"fifo",x:"pax-header",g:"pax-global-header",L:"gnu-long-name",K:"gnu-long-link-name"},$e=new Uint8Array(512),b=new Uint8Array(0),U=new TextEncoder,le=new TextDecoder;function T(e,t,i,r){r&&U.encodeInto(r,e.subarray(t,t+i))}function F(e,t,i,r){if(r===void 0)return;let n=r.toString(8).padStart(i-1,"0");U.encodeInto(n,e.subarray(t,t+i-1))}function A(e,t,i){let r=e.indexOf(0,t),n=r===-1||r>t+i?t+i:r;return le.decode(e.subarray(t,n))}function W(e,t,i){let r=0,n=t+i;for(let s=t;s<n;s++){let o=e[s];if(o===0)break;o!==32&&(r=r*8+(o-48))}return r}function v(e,t,i){if(e[t]&128){let r=0;r=e[t]&127;for(let n=1;n<i;n++)r=r*256+e[t+n];if(!Number.isSafeInteger(r))throw new Error("TAR number too large");return r}return W(e,t,i)}var k=e=>e.type===M||e.type===ce||e.type===oe;async function ue(e){if(e==null)return b;if(e instanceof Uint8Array)return e;if(typeof e=="string")return U.encode(e);if(e instanceof ArrayBuffer)return new Uint8Array(e);if(e instanceof Blob)return new Uint8Array(await e.arrayBuffer());throw new TypeError("Unsupported content type for entry body.")}function fe(e,t){let{strip:i,filter:r,map:n}=t;if(!i&&!r&&!n)return e;let s={...e};if(i&&i>0){let a=s.name.split("/").filter(Boolean);if(i>=a.length)return null;let c=a.slice(i).join("/");if(s.name=s.type===M&&!c.endsWith("/")?`${c}/`:c,s.linkname?.startsWith("/")){let l=s.linkname.split("/").filter(Boolean);s.linkname=i>=l.length?"/":`/${l.slice(i).join("/")}`}}if(r?.(s)===!1)return null;let o=n?n(s):s;return o&&(!o.name||!o.name.trim()||o.name==="."||o.name==="/")?null:o}var G=32,Ze=48;function Be(e){let t=W(e,148,8),i=0;for(let r=0;r<e.length;r++)r>=148&&r<156?i+=G:i+=e[r];return t===i}function De(e){e.fill(G,148,156);let t=0;for(let i of e)t+=i;for(let i=153;i>=148;i--)e[i]=(t&7)+Ze,t>>=3;e[154]=0,e[155]=G}function Ne(e){let t={};e.name.length>100&&de(e.name)===null&&(t.path=e.name),e.linkname&&e.linkname.length>100&&(t.linkpath=e.linkname),e.uname&&e.uname.length>32&&(t.uname=e.uname),e.gname&&e.gname.length>32&&(t.gname=e.gname),e.uid!=null&&e.uid>2097151&&(t.uid=String(e.uid)),e.gid!=null&&e.gid>2097151&&(t.gid=String(e.gid)),e.size!=null&&e.size>8589934591&&(t.size=String(e.size)),e.pax&&Object.assign(t,e.pax);let i=Object.entries(t);if(i.length===0)return null;let r=U.encode(i.map(([n,s])=>{let o=`${n}=${s}
|
|
3
|
+
`,a=U.encode(o).length+1,c=a+String(a).length;return c=a+String(c).length,`${c} ${o}`}).join(""));return{paxHeader:me({name:le.decode(U.encode(`PaxHeader/${e.name}`).slice(0,100)),size:r.length,type:"pax-header",mode:420,mtime:e.mtime,uname:e.uname,gname:e.gname,uid:e.uid,gid:e.gid}),paxBody:r}}function de(e){if(e.length<=100)return null;let t=e.length-100-1,i=e.lastIndexOf("/",155);return i>0&&i>=t?{prefix:e.slice(0,i),name:e.slice(i+1)}:null}function me(e){let t=new Uint8Array(512),i=k(e)?0:e.size??0,r=e.name,n="";if(!e.pax?.path){let s=de(r);s&&(r=s.name,n=s.prefix)}return T(t,0,100,r),F(t,100,8,e.mode??(e.type===M?493:420)),F(t,108,8,e.uid??0),F(t,116,8,e.gid??0),F(t,124,12,i),F(t,136,12,Math.floor((e.mtime?.getTime()??Date.now())/1e3)),T(t,156,1,be[e.type??H]),T(t,157,100,e.linkname),T(t,257,6,"ustar\0"),T(t,263,2,"00"),T(t,265,32,e.uname),T(t,297,32,e.gname),T(t,345,155,n),De(t),t}function Le(e,t){if(t&&!Be(e))throw new Error("Invalid tar header checksum.");let i=A(e,156,1),r={name:A(e,0,100),mode:W(e,100,8),uid:v(e,108,8),gid:v(e,116,8),size:v(e,124,12),mtime:new Date(v(e,136,12)*1e3),type:Me[i]||H,linkname:A(e,157,100)},n=A(e,257,6);return n.trim()==="ustar"&&(r.uname=A(e,265,32),r.gname=A(e,297,32)),n==="ustar"&&(r.prefix=A(e,345,155)),r}var Ke={path:["name",e=>e],linkpath:["linkname",e=>e],size:["size",e=>parseInt(e,10)],mtime:["mtime",parseFloat],uid:["uid",e=>parseInt(e,10)],gid:["gid",e=>parseInt(e,10)],uname:["uname",e=>e],gname:["gname",e=>e]};function Pe(e){let t=new TextDecoder("utf-8"),i={},r={},n=0;for(;n<e.length;){let s=e.indexOf(32,n);if(s===-1)break;let o=parseInt(t.decode(e.subarray(n,s)),10);if(Number.isNaN(o)||o===0)break;let a=n+o,[c,l]=t.decode(e.subarray(s+1,a-1)).split("=",2);if(c&&l!==void 0){r[c]=l;let d=Ke[c];if(d){let[u,g]=d,p=g(l);(typeof p=="string"||!Number.isNaN(p))&&(i[u]=p)}}n=a}return Object.keys(r).length>0&&(i.pax=r),i}function se(e,t){t.name!==void 0&&(e.name=t.name),t.linkname!==void 0&&(e.linkname=t.linkname),t.size!==void 0&&(e.size=t.size),t.mtime!==void 0&&(e.mtime=new Date(t.mtime*1e3)),t.uid!==void 0&&(e.uid=t.uid),t.gid!==void 0&&(e.gid=t.gid),t.uname!==void 0&&(e.uname=t.uname),t.gname!==void 0&&(e.gname=t.gname),t.pax&&(e.pax=Object.assign({},e.pax??{},t.pax))}function Ge(e){switch(e){case"pax-global-header":case"pax-header":return Pe;case"gnu-long-name":return t=>({name:A(t,0,t.length)});case"gnu-long-link-name":return t=>({linkname:A(t,0,t.length)});default:return}}function He(e){let t=me(e),i=Ne(e);if(!i)return[t];let r=-i.paxBody.length&511,n=r>0?[$e.subarray(0,r)]:[];return[i.paxHeader,i.paxBody,...n,t]}var We=new Uint8Array(512*2);function pe(e,t,i){let r=null,n=0,s=!1;return{add(o){if(s){let a=new Error("No new tar entries after finalize.");throw t(a),a}if(r!==null){let a=new Error("Previous entry must be completed before adding a new one");throw t(a),a}try{let a=k(o)?0:o.size??0,c=He({...o,size:a});for(let l of c)e(l);r={...o,size:a},n=0}catch(a){t(a)}},write(o){if(!r){let c=new Error("No active tar entry.");throw t(c),c}if(s){let c=new Error("Cannot write data after finalize.");throw t(c),c}let a=n+o.length;if(a>r.size){let c=new Error(`"${r.name}" exceeds given size of ${r.size} bytes.`);throw t(c),c}try{n=a,e(o)}catch(c){t(c)}},endEntry(){if(!r){let o=new Error("No active entry to end.");throw t(o),o}if(s){let o=new Error("Cannot end entry after finalize.");throw t(o),o}try{if(n!==r.size){let a=new Error(`Size mismatch for "${r.name}".`);throw t(a),a}let o=-r.size&511;o>0&&e(new Uint8Array(o)),r=null,n=0}catch(o){throw t(o),o}},finalize(){if(s){let o=new Error("Archive has already been finalized");throw t(o),o}if(r!==null){let o=new Error("Cannot finalize while an entry is still active");throw t(o),o}try{e(We),s=!0,i&&i()}catch(o){t(o)}}}}var R=256;function Xe(){let e=new Array(R),t=e.length-1,i=0,r=0,n=0,s=a=>{let c=e[i];a===c.length?(e[i]=b,i=i+1&t):e[i]=c.subarray(a),n-=a,n===0&&e.length>R&&(e=new Array(R),t=R-1,i=0,r=0)};function o(a,c){if(c){let p=0,f=Math.min(a,n);for(;f>0;){let h=e[i],m=Math.min(f,h.length),S=m===h.length?h:h.subarray(0,m);if(s(m),f-=m,p+=m,!c(S))break}return p}if(n<a)return null;if(a===0)return b;let l=e[i];if(l.length>=a){let p=l.length===a?l:l.subarray(0,a);return s(a),p}let d=new Uint8Array(a),u=0,g=a;for(;g>0;){let p=e[i],f=Math.min(g,p.length);d.set(f===p.length?p:p.subarray(0,f),u),u+=f,g-=f,s(f)}return d}return{push:a=>{if(a.length===0)return;let c=r+1&t;if(c===i){let l=e.length,d=l*2,u=new Array(d),g=r-i+l&l-1;if(i<r)for(let p=0;p<g;p++)u[p]=e[i+p];else if(g>0){let p=l-i;for(let f=0;f<p;f++)u[f]=e[i+f];for(let f=0;f<r;f++)u[p+f]=e[f]}e=u,t=d-1,i=0,r=g,c=r+1&t}e[r]=a,r=c,n+=a.length},available:()=>n,peek:a=>{if(n<a)return null;if(a===0)return b;let c=e[i];if(c.length>=a)return c.length===a?c:c.subarray(0,a);let l=new Uint8Array(a),d=0,u=i;for(;d<a;){let g=e[u],p=Math.min(a-d,g.length);p===g.length?l.set(g,d):l.set(g.subarray(0,p),d),d+=p,u=u+1&t}return l},discard:a=>{if(a>n)throw new Error("Too many bytes consumed");if(a===0)return;let c=a;for(;c>0;){let l=e[i],d=Math.min(c,l.length);s(d),c-=d}},pull:o}}var P=0,z=1,O=new Error("Tar archive is truncated.");function he(e={}){let t=e.strict??!1,{available:i,peek:r,push:n,discard:s,pull:o}=Xe(),a=P,c=!1,l=!1,d=!1,u=null,g={},p={},f={isEntryActive:()=>a===z,isBodyComplete:()=>!u||u.remaining===0,write(h){if(c)throw new Error("Archive already ended.");n(h)},end(){c=!0},readHeader(){if(a!==P)throw new Error("Cannot read header while an entry is active");if(!l)for(;!l;){if(i()<512){if(c){if(i()>0&&t)throw O;l=!0;return}return null}let h=r(512);if(ae(h)){if(i()<512*2){if(c){if(t)throw O;l=!0;return}return null}if(ae(r(512*2).subarray(512))){s(512*2),l=!0,d=!0;return}if(t)throw new Error("Invalid tar header.");s(512);continue}let m;try{m=Le(h,t)}catch(w){if(t)throw w;s(512);continue}let S=Ge(m.type);if(S){let w=m.size+511&-512;if(i()<512+w){if(c&&t)throw O;return null}s(512);let I=S(o(w).subarray(0,m.size)),Oe=m.type==="pax-global-header"?g:p;for(let re in I)Oe[re]=I[re];continue}s(512);let E=m;return m.prefix&&(E.name=`${m.prefix}/${E.name}`),se(E,g),se(E,p),p={},u={header:E,remaining:E.size,padding:-E.size&511},a=z,E}},streamBody(h){if(a!==z||!u||u.remaining===0)return 0;let m=Math.min(u.remaining,i());if(m===0)return 0;let S=o(m,h);return u.remaining-=S,S},skipPadding(){if(a!==z||!u)return!0;if(u.remaining>0)throw new Error("Body not fully consumed");return i()<u.padding?!1:(s(u.padding),u=null,a=P,!0)},skipEntry(){if(a!==z||!u)return!0;let h=Math.min(u.remaining,i());return h>0&&(s(h),u.remaining-=h),u.remaining>0?!1:f.skipPadding()},validateEOF(){if(t){if(!d)throw O;if(i()>0&&o(i()).some(h=>h!==0))throw new Error("Invalid EOF.")}}};return f}function ae(e){if(e.byteOffset%8===0){let t=new BigUint64Array(e.buffer,e.byteOffset,e.length/8);for(let i=0;i<t.length;i++)if(t[i]!==0n)return!1;return!0}for(let t=0;t<e.length;t++)if(e[t]!==0)return!1;return!0}function Se(){return new CompressionStream("gzip")}function Ee(){return new DecompressionStream("gzip")}function je(){let e,t;return{readable:new ReadableStream({start(i){e=i,t=pe(i.enqueue.bind(i),i.error.bind(i),i.close.bind(i))}}),controller:{add(i){let r=k(i),n={...i};return r&&(n.size=0),t.add(n),r&&t.endEntry(),new WritableStream({write(s){t.write(s)},close(){r||t.endEntry()},abort(s){e.error(s)}})},finalize(){t.finalize()},error(i){e.error(i)}}}}async function we(e){let t=[],i=e.getReader(),r=0;try{for(;;){let{done:o,value:a}=await i.read();if(o)break;t.push(a),r+=a.length}let n=new Uint8Array(r),s=0;for(let o of t)n.set(o,s),s+=o.length;return n}finally{i.releaseLock()}}var ge=e=>e.pipeTo(new WritableStream);function qe(e={}){let t=he(e),i=null,r=!1,n=s=>{if(!r){r=!0;try{for(;;)if(t.isEntryActive()){if(i){if(t.streamBody(o=>(i.enqueue(o),!0))===0&&!t.isBodyComplete())break}else if(!t.skipEntry())break;if(t.isBodyComplete()){try{i?.close()}catch{}if(i=null,!t.skipPadding())break}}else{let o=t.readHeader();if(o==null)break;s.enqueue({header:o,body:new ReadableStream({start(a){o.size===0?a.close():i=a},pull:()=>n(s),cancel(){i=null,n(s)}})})}}catch(o){try{i?.error(o)}catch{}throw i=null,o}finally{r=!1}}};return new TransformStream({transform(s,o){try{t.write(s),n(o)}catch(a){try{i?.error(a)}catch{}throw a}},flush(s){try{if(t.end(),n(s),t.validateEOF(),t.isEntryActive()&&!t.isBodyComplete())try{i?.close()}catch{}}catch(o){try{i?.error(o)}catch{}throw o}}},void 0,{highWaterMark:1})}async function ye(e){let{readable:t,controller:i}=je();return await(async()=>{for(let r of e){let n=i.add(r.header),s="body"in r?r.body:r.data;if(!s){await n.close();continue}if(s instanceof ReadableStream)await s.pipeTo(n);else if(s instanceof Blob)await s.stream().pipeTo(n);else try{let o=await ue(s);if(o.length>0){let a=n.getWriter();await a.write(o),await a.close()}else await n.close()}catch{throw new TypeError(`Unsupported content type for entry "${r.header.name}".`)}}})().then(()=>i.finalize()).catch(r=>i.error(r)),new Uint8Array(await we(t))}async function Ae(e,t={}){let i=e instanceof ReadableStream?e:new ReadableStream({start(s){s.enqueue(e instanceof Uint8Array?e:new Uint8Array(e)),s.close()}}),r=[],n=i.pipeThrough(qe(t));for await(let s of n){let o;try{o=fe(s.header,t)}catch(a){throw await s.body.cancel(),a}if(o===null){await ge(s.body);continue}k(o)?(await ge(s.body),r.push({header:o})):r.push({header:o,data:await we(s.body)})}return r}var $=null,Z=null;async function Ce(){if($)return $;if(Z)throw Z;try{return $=await import("node-liblzma"),$}catch{throw Z=new Error("xz compression requires node-liblzma which failed to load. Install liblzma-dev (apt) or xz (brew) and reinstall dependencies."),Z}}var B=null,D=null;async function xe(){if(B)return B;if(D)throw D;try{return B=await import("@mongodb-js/zstd"),B}catch{throw D=new Error("zstd compression requires @mongodb-js/zstd which is not installed. Install it with: npm install @mongodb-js/zstd"),D}}var y=100*1024*1024,_e=1e4;function Ye(e){let t="file";e.isDirectory?t="directory":e.isSymlink&&(t="symlink");let i=e.name;e.isDirectory&&!i.endsWith("/")&&(i+="/");let r;e.content!==void 0&&(typeof e.content=="string"?r=new TextEncoder().encode(e.content):r=e.content);let n=e.isDirectory||e.isSymlink?0:r?.length??0;return{header:{name:i,mode:e.mode??(e.isDirectory?493:420),uid:e.uid??0,gid:e.gid??0,size:n,mtime:e.mtime??new Date,type:t,linkname:e.linkTarget??"",uname:"user",gname:"user"},body:r}}async function C(e){let t=e.map(Ye);return ye(t)}async function Ue(e){let t=await C(e),n=new ReadableStream({start(l){l.enqueue(t),l.close()}}).pipeThrough(Se()).getReader(),s=[];for(;;){let{done:l,value:d}=await n.read();if(l)break;s.push(d)}let o=s.reduce((l,d)=>l+d.length,0),a=new Uint8Array(o),c=0;for(let l of s)a.set(l,c),c+=l.length;return a}async function _(e){if(e.length>y)return{entries:[],error:`Archive too large (max ${y} bytes)`};try{let t=await Ae(e),i=[];for(let r of t){if(i.length>=_e)return{entries:i,error:`Too many entries (max ${_e})`};let n="file";switch(r.header.type){case"directory":n="directory";break;case"symlink":n="symlink";break;case"link":n="hardlink";break;case"file":n="file";break;default:n="other"}i.push({name:r.header.name,mode:r.header.mode??420,uid:r.header.uid??0,gid:r.header.gid??0,size:r.header.size,mtime:r.header.mtime??new Date,type:n,linkTarget:r.header.linkname||void 0,content:r.data??new Uint8Array(0)})}return{entries:i}}catch(t){let i=t instanceof Error?t.message:"Unknown error";return{entries:[],error:i}}}async function X(e){if(e.length>y)return{entries:[],error:`Archive too large (max ${y} bytes)`};try{let r=new ReadableStream({start(c){c.enqueue(e),c.close()}}).pipeThrough(Ee()).getReader(),n=[];for(;;){let{done:c,value:l}=await r.read();if(c)break;n.push(l)}let s=n.reduce((c,l)=>c+l.length,0),o=new Uint8Array(s),a=0;for(let c of n)o.set(c,a),a+=c.length;return _(o)}catch(t){let i=t instanceof Error?t.message:"Unknown error";return{entries:[],error:`Decompression failed: ${i}`}}}function j(e){return e.length>=2&&e[0]===31&&e[1]===139}function q(e){return e.length>=3&&e[0]===66&&e[1]===90&&e[2]===104}function Y(e){return e.length>=6&&e[0]===253&&e[1]===55&&e[2]===122&&e[3]===88&&e[4]===90&&e[5]===0}async function Ve(e){let i=Te.Bzip2.decompressFile(Array.from(e));return new Uint8Array(i)}async function Je(e){let t=Te.Bzip2,i=[];return t.compressFile(Array.from(e),i,9),new Uint8Array(i)}async function Qe(e){let i=(await Ce()).unxzSync(Buffer.from(e));return new Uint8Array(i)}async function et(e){let i=(await Ce()).xzSync(Buffer.from(e));return new Uint8Array(i)}async function Ie(e){let t=await C(e);return Je(t)}async function Fe(e){let t=await C(e);return et(t)}async function V(e){if(e.length>y)return{entries:[],error:`Archive too large (max ${y} bytes)`};try{let t=await Ve(e);return _(t)}catch(t){let i=t instanceof Error?t.message:"Unknown error";return{entries:[],error:i}}}async function J(e){if(e.length>y)return{entries:[],error:`Archive too large (max ${y} bytes)`};try{let t=await Qe(e);return _(t)}catch(t){let i=t instanceof Error?t.message:"Unknown error";return{entries:[],error:i}}}function Q(e){return e.length>=4&&e[0]===40&&e[1]===181&&e[2]===47&&e[3]===253}async function tt(e){let i=await(await xe()).compress(Buffer.from(e),3);return new Uint8Array(i)}async function rt(e){let i=await(await xe()).decompress(Buffer.from(e));return new Uint8Array(i)}async function ze(e){let t=await C(e);return tt(t)}async function ee(e){if(e.length>y)return{entries:[],error:`Archive too large (max ${y} bytes)`};try{let t=await rt(e);return _(t)}catch(t){let i=t instanceof Error?t.message:"Unknown error";return{entries:[],error:i}}}function ke(e){let t={create:!1,append:!1,update:!1,extract:!1,list:!1,file:"",autoCompress:!1,gzip:!1,bzip2:!1,xz:!1,zstd:!1,verbose:!1,toStdout:!1,keepOldFiles:!1,touch:!1,directory:"",preserve:!1,strip:0,exclude:[],filesFrom:"",excludeFrom:"",wildcards:!1},i=[],r=0;for(;r<e.length;){let n=e[r];if(n.startsWith("-")&&!n.startsWith("--")&&n.length>2){if(/^-\d+$/.test(n)){i.push(n),r++;continue}for(let s=1;s<n.length;s++){let o=n[s];switch(o){case"c":t.create=!0;break;case"r":t.append=!0;break;case"u":t.update=!0;break;case"x":t.extract=!0;break;case"t":t.list=!0;break;case"a":t.autoCompress=!0;break;case"z":t.gzip=!0;break;case"j":t.bzip2=!0;break;case"J":t.xz=!0;break;case"v":t.verbose=!0;break;case"O":t.toStdout=!0;break;case"k":t.keepOldFiles=!0;break;case"m":t.touch=!0;break;case"p":t.preserve=!0;break;case"f":if(s<n.length-1)t.file=n.substring(s+1),s=n.length;else{if(r++,r>=e.length)return{ok:!1,error:{stdout:"",stderr:`tar: option requires an argument -- 'f'
|
|
4
4
|
`,exitCode:2}};t.file=e[r]}break;case"C":if(s<n.length-1)t.directory=n.substring(s+1),s=n.length;else{if(r++,r>=e.length)return{ok:!1,error:{stdout:"",stderr:`tar: option requires an argument -- 'C'
|
|
5
5
|
`,exitCode:2}};t.directory=e[r]}break;case"T":if(s<n.length-1)t.filesFrom=n.substring(s+1),s=n.length;else{if(r++,r>=e.length)return{ok:!1,error:{stdout:"",stderr:`tar: option requires an argument -- 'T'
|
|
6
6
|
`,exitCode:2}};t.filesFrom=e[r]}break;case"X":if(s<n.length-1)t.excludeFrom=n.substring(s+1),s=n.length;else{if(r++,r>=e.length)return{ok:!1,error:{stdout:"",stderr:`tar: option requires an argument -- 'X'
|
|
7
|
-
`,exitCode:2}};t.excludeFrom=e[r]}break;default:return{ok:!1,error:
|
|
7
|
+
`,exitCode:2}};t.excludeFrom=e[r]}break;default:return{ok:!1,error:K("tar",`-${o}`)}}}r++;continue}if(n==="-c"||n==="--create")t.create=!0;else if(n==="-r"||n==="--append")t.append=!0;else if(n==="-u"||n==="--update")t.update=!0;else if(n==="-x"||n==="--extract"||n==="--get")t.extract=!0;else if(n==="-t"||n==="--list")t.list=!0;else if(n==="-a"||n==="--auto-compress")t.autoCompress=!0;else if(n==="-z"||n==="--gzip"||n==="--gunzip")t.gzip=!0;else if(n==="-j"||n==="--bzip2")t.bzip2=!0;else if(n==="-J"||n==="--xz")t.xz=!0;else if(n==="--zstd")t.zstd=!0;else if(n==="-v"||n==="--verbose")t.verbose=!0;else if(n==="-O"||n==="--to-stdout")t.toStdout=!0;else if(n==="-k"||n==="--keep-old-files")t.keepOldFiles=!0;else if(n==="-m"||n==="--touch")t.touch=!0;else if(n==="--wildcards")t.wildcards=!0;else if(n==="-p"||n==="--preserve"||n==="--preserve-permissions")t.preserve=!0;else if(n==="-f"||n==="--file"){if(r++,r>=e.length)return{ok:!1,error:{stdout:"",stderr:`tar: option requires an argument -- 'f'
|
|
8
8
|
`,exitCode:2}};t.file=e[r]}else if(n.startsWith("--file="))t.file=n.substring(7);else if(n==="-C"||n==="--directory"){if(r++,r>=e.length)return{ok:!1,error:{stdout:"",stderr:`tar: option requires an argument -- 'C'
|
|
9
9
|
`,exitCode:2}};t.directory=e[r]}else if(n.startsWith("--directory="))t.directory=n.substring(12);else if(n.startsWith("--strip-components=")||n.startsWith("--strip=")){let s=n.includes("--strip-components=")?n.substring(19):n.substring(8),o=parseInt(s,10);if(Number.isNaN(o)||o<0)return{ok:!1,error:{stdout:"",stderr:`tar: invalid number for --strip: '${s}'
|
|
10
10
|
`,exitCode:2}};t.strip=o}else if(n.startsWith("--exclude="))t.exclude.push(n.substring(10));else if(n==="--exclude"){if(r++,r>=e.length)return{ok:!1,error:{stdout:"",stderr:`tar: option '--exclude' requires an argument
|
|
11
11
|
`,exitCode:2}};t.exclude.push(e[r])}else if(n==="-T"||n==="--files-from"){if(r++,r>=e.length)return{ok:!1,error:{stdout:"",stderr:`tar: option requires an argument -- 'T'
|
|
12
12
|
`,exitCode:2}};t.filesFrom=e[r]}else if(n.startsWith("--files-from="))t.filesFrom=n.substring(13);else if(n==="-X"||n==="--exclude-from"){if(r++,r>=e.length)return{ok:!1,error:{stdout:"",stderr:`tar: option requires an argument -- 'X'
|
|
13
|
-
`,exitCode:2}};t.excludeFrom=e[r]}else if(n.startsWith("--exclude-from="))t.excludeFrom=n.substring(15);else if(n==="--"){i.push(...e.slice(r+1));break}else{if(n.startsWith("-"))return{ok:!1,error:
|
|
14
|
-
`,exitCode:2};let r=t.directory?e.fs.resolvePath(e.cwd,t.directory):e.cwd,n=[],s=[],o="";for(let d of i){let{entries:u,errors:g}=await
|
|
13
|
+
`,exitCode:2}};t.excludeFrom=e[r]}else if(n.startsWith("--exclude-from="))t.excludeFrom=n.substring(15);else if(n==="--"){i.push(...e.slice(r+1));break}else{if(n.startsWith("-"))return{ok:!1,error:K("tar",n)};i.push(n)}r++}return{ok:!0,options:t,files:i}}var ve=100,nt={name:"tar",summary:"manipulate tape archives",usage:"tar [options] [file...]",description:["Create, extract, or list contents of tar archives.","","One of -c, -r, -u, -x, or -t is required to specify the operation."],options:["-c, --create create a new archive","-r, --append append files to the end of an archive","-u, --update only append files newer than copy in archive","-x, --extract extract files from an archive","-t, --list list contents of an archive","-f, --file=ARCHIVE use archive file ARCHIVE","-a, --auto-compress use archive suffix to determine compression","-z, --gzip filter archive through gzip","-j, --bzip2 filter archive through bzip2","-J, --xz filter archive through xz","--zstd filter archive through zstd","-v, --verbose verbosely list files processed","-O, --to-stdout extract files to standard output","-k, --keep-old-files don't replace existing files when extracting","-m, --touch don't extract file modified time","-C, --directory=DIR change to directory DIR before performing operations","-p, --preserve preserve permissions","-T, --files-from=FILE read files to extract/create from FILE","-X, --exclude-from=FILE read exclude patterns from FILE","--strip=N strip N leading path components on extraction","--exclude=PATTERN exclude files matching PATTERN","--wildcards use wildcards for pattern matching"," --help display this help and exit"],examples:["tar -cvf archive.tar file1 file2 Create archive from files","tar -czvf archive.tar.gz dir/ Create gzip-compressed archive","tar -cjvf archive.tar.bz2 dir/ Create bzip2-compressed archive","tar -rf archive.tar newfile.txt Append file to archive","tar -uf archive.tar dir/ Update archive with newer files","tar -xvf archive.tar Extract archive","tar -xvf archive.tar -C /tmp Extract to /tmp","tar -tvf archive.tar List archive contents","tar -xzf archive.tar.gz Extract gzip archive","tar -xf archive.tar file1.txt Extract specific file","tar -xOf archive.tar file.txt Extract file to stdout","tar -xf archive.tar --wildcards '*.txt' Extract matching files"]};function te(e,t){let i=e.includes("/")?e.substring(e.lastIndexOf("/")+1):e;for(let r of t){let n=r.replace(/[.+^${}()|[\]\\]/g,"\\$&").replace(/\*\*/g,"<<<GLOBSTAR>>>").replace(/\*/g,"[^/]*").replace(/<<<GLOBSTAR>>>/g,".*").replace(/\?/g,".");if(x(`^${n}$`).test(e)||x(`^${n}/`).test(e)||!r.includes("/")&&x(`^${n}$`).test(i))return!0}return!1}function N(e,t){let i=t.replace(/[.+^${}()|[\]\\]/g,"\\$&").replace(/\*\*/g,"<<<GLOBSTAR>>>").replace(/\*/g,"[^/]*").replace(/<<<GLOBSTAR>>>/g,".*").replace(/\?/g,"."),r=e.includes("/")?e.substring(e.lastIndexOf("/")+1):e;return x(`^${i}$`).test(e)||x(`^${i}$`).test(r)}function Re(e,t){if(t<=0)return e;let i=e.split("/").filter(r=>r!=="");return i.length<=t?"":i.slice(t).join("/")}function it(e,t){let i=t?"d":"-",r=[e&256?"r":"-",e&128?"w":"-",e&64?"x":"-",e&32?"r":"-",e&16?"w":"-",e&8?"x":"-",e&4?"r":"-",e&2?"w":"-",e&1?"x":"-"].join("");return i+r}function st(e){let i=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"][e.getMonth()],r=e.getDate().toString().padStart(2," "),n=e.getHours().toString().padStart(2,"0"),s=e.getMinutes().toString().padStart(2,"0");return`${i} ${r} ${n}:${s}`}async function L(e,t,i,r){let n=[],s=[],o=e.fs.resolvePath(t,i);try{let a=await e.fs.stat(o);if(te(i,r))return{entries:n,errors:s};if(a.isDirectory){n.push({name:i,isDirectory:!0,mode:a.mode,mtime:a.mtime});let c=await e.fs.readdir(o);for(let l=0;l<c.length;l+=ve){let d=c.slice(l,l+ve),u=await Promise.all(d.map(g=>L(e,t,i?`${i}/${g}`:g,r)));for(let g of u)n.push(...g.entries),s.push(...g.errors)}}else if(a.isFile){let c=await e.fs.readFileBuffer(o);n.push({name:i,content:c,mode:a.mode,mtime:a.mtime})}else if(a.isSymbolicLink){let c=await e.fs.readlink(o);n.push({name:i,isSymlink:!0,linkTarget:c,mode:a.mode,mtime:a.mtime})}}catch(a){let c=a instanceof Error?a.message:"unknown error";s.push(`tar: ${i}: ${c}`)}return{entries:n,errors:s}}async function at(e,t,i){if(i.length===0)return{stdout:"",stderr:`tar: Cowardly refusing to create an empty archive
|
|
14
|
+
`,exitCode:2};let r=t.directory?e.fs.resolvePath(e.cwd,t.directory):e.cwd,n=[],s=[],o="";for(let d of i){let{entries:u,errors:g}=await L(e,r,d,t.exclude);if(n.push(...u),s.push(...g),t.verbose)for(let p of u)o+=`${p.name}${p.isDirectory?"/":""}
|
|
15
15
|
`}if(n.length===0&&s.length>0)return{stdout:"",stderr:`${s.join(`
|
|
16
16
|
`)}
|
|
17
|
-
`,exitCode:2};let a;try{t.gzip?a=await
|
|
17
|
+
`,exitCode:2};let a;try{t.gzip?a=await Ue(n):t.bzip2?a=await Ie(n):t.xz?a=await Fe(n):t.zstd?a=await ze(n):a=await C(n)}catch(d){return{stdout:"",stderr:`tar: error creating archive: ${d instanceof Error?d.message:"unknown error"}
|
|
18
18
|
`,exitCode:2}}let c="";if(t.file&&t.file!=="-"){let d=e.fs.resolvePath(e.cwd,t.file);try{await e.fs.writeFile(d,a)}catch(u){let g=u instanceof Error?u.message:"unknown error";return{stdout:"",stderr:`tar: ${t.file}: ${g}
|
|
19
19
|
`,exitCode:2}}}else c=String.fromCharCode(...a);let l=o;return s.length>0&&(l+=`${s.join(`
|
|
20
20
|
`)}
|
|
21
|
-
`),{stdout:c,stderr:l,exitCode:s.length>0?2:0}}async function
|
|
21
|
+
`),{stdout:c,stderr:l,exitCode:s.length>0?2:0}}async function ot(e,t,i){if(!t.file||t.file==="-")return{stdout:"",stderr:`tar: Cannot append to stdin/stdout
|
|
22
22
|
`,exitCode:2};if(i.length===0)return{stdout:"",stderr:`tar: Cowardly refusing to append nothing to archive
|
|
23
23
|
`,exitCode:2};let r=e.fs.resolvePath(e.cwd,t.file),n;try{n=await e.fs.readFileBuffer(r)}catch{return{stdout:"",stderr:`tar: ${t.file}: Cannot open: No such file or directory
|
|
24
24
|
`,exitCode:2}}let s=await _(n);if(s.error)return{stdout:"",stderr:`tar: ${s.error}
|
|
25
|
-
`,exitCode:2};let o=s.entries.map(f=>({name:f.name,content:f.content,mode:f.mode,mtime:f.mtime,isDirectory:f.type==="directory",isSymlink:f.type==="symlink",linkTarget:f.linkTarget,uid:f.uid,gid:f.gid})),a=t.directory?e.fs.resolvePath(e.cwd,t.directory):e.cwd,c=[],l=[],d="";for(let f of i){let{entries:h,errors:m}=await
|
|
25
|
+
`,exitCode:2};let o=s.entries.map(f=>({name:f.name,content:f.content,mode:f.mode,mtime:f.mtime,isDirectory:f.type==="directory",isSymlink:f.type==="symlink",linkTarget:f.linkTarget,uid:f.uid,gid:f.gid})),a=t.directory?e.fs.resolvePath(e.cwd,t.directory):e.cwd,c=[],l=[],d="";for(let f of i){let{entries:h,errors:m}=await L(e,a,f,t.exclude);if(c.push(...h),l.push(...m),t.verbose)for(let S of h)d+=`${S.name}${S.isDirectory?"/":""}
|
|
26
26
|
`}let u=[...o,...c],g;try{g=await C(u)}catch(f){return{stdout:"",stderr:`tar: error creating archive: ${f instanceof Error?f.message:"unknown error"}
|
|
27
27
|
`,exitCode:2}}try{await e.fs.writeFile(r,g)}catch(f){let h=f instanceof Error?f.message:"unknown error";return{stdout:"",stderr:`tar: ${t.file}: ${h}
|
|
28
28
|
`,exitCode:2}}let p=d;return l.length>0&&(p+=`${l.join(`
|
|
29
29
|
`)}
|
|
30
|
-
`),{stdout:"",stderr:p,exitCode:l.length>0?2:0}}async function
|
|
30
|
+
`),{stdout:"",stderr:p,exitCode:l.length>0?2:0}}async function ct(e,t,i){if(!t.file||t.file==="-")return{stdout:"",stderr:`tar: Cannot update stdin/stdout
|
|
31
31
|
`,exitCode:2};if(i.length===0)return{stdout:"",stderr:`tar: Cowardly refusing to update with nothing
|
|
32
32
|
`,exitCode:2};let r=e.fs.resolvePath(e.cwd,t.file),n;try{n=await e.fs.readFileBuffer(r)}catch{return{stdout:"",stderr:`tar: ${t.file}: Cannot open: No such file or directory
|
|
33
33
|
`,exitCode:2}}let s=await _(n);if(s.error)return{stdout:"",stderr:`tar: ${s.error}
|
|
34
|
-
`,exitCode:2};let o=new Map;for(let m of s.entries)o.set(m.name,m.mtime);let a=t.directory?e.fs.resolvePath(e.cwd,t.directory):e.cwd,c=[],l=[],d="";for(let m of i){let{entries:S,errors:E}=await
|
|
34
|
+
`,exitCode:2};let o=new Map;for(let m of s.entries)o.set(m.name,m.mtime);let a=t.directory?e.fs.resolvePath(e.cwd,t.directory):e.cwd,c=[],l=[],d="";for(let m of i){let{entries:S,errors:E}=await L(e,a,m,t.exclude);l.push(...E);for(let w of S){let I=o.get(w.name);(!I||w.mtime&&w.mtime.getTime()>I.getTime())&&(c.push(w),t.verbose&&(d+=`${w.name}${w.isDirectory?"/":""}
|
|
35
35
|
`))}}if(c.length===0){let m="";return l.length>0&&(m=`${l.join(`
|
|
36
36
|
`)}
|
|
37
37
|
`),{stdout:"",stderr:m,exitCode:l.length>0?2:0}}let u=new Set(c.map(m=>m.name)),p=[...s.entries.filter(m=>!u.has(m.name)).map(m=>({name:m.name,content:m.content,mode:m.mode,mtime:m.mtime,isDirectory:m.type==="directory",isSymlink:m.type==="symlink",linkTarget:m.linkTarget,uid:m.uid,gid:m.gid})),...c],f;try{f=await C(p)}catch(m){return{stdout:"",stderr:`tar: error creating archive: ${m instanceof Error?m.message:"unknown error"}
|
|
38
38
|
`,exitCode:2}}try{await e.fs.writeFile(r,f)}catch(m){let S=m instanceof Error?m.message:"unknown error";return{stdout:"",stderr:`tar: ${t.file}: ${S}
|
|
39
39
|
`,exitCode:2}}let h=d;return l.length>0&&(h+=`${l.join(`
|
|
40
40
|
`)}
|
|
41
|
-
`),{stdout:"",stderr:h,exitCode:l.length>0?2:0}}async function
|
|
42
|
-
`,exitCode:2}}}else r=Uint8Array.from(e.stdin,f=>f.charCodeAt(0));let n,s=t.gzip||
|
|
43
|
-
`,exitCode:2};let l=t.directory?e.fs.resolvePath(e.cwd,t.directory):e.cwd,d="",u="",g=[];if(t.directory&&!t.toStdout)try{await e.fs.mkdir(l,{recursive:!0})}catch{}for(let f of n.entries){let h=
|
|
41
|
+
`),{stdout:"",stderr:h,exitCode:l.length>0?2:0}}async function lt(e,t,i){let r;if(t.file&&t.file!=="-"){let f=e.fs.resolvePath(e.cwd,t.file);try{r=await e.fs.readFileBuffer(f)}catch{return{stdout:"",stderr:`tar: ${t.file}: Cannot open: No such file or directory
|
|
42
|
+
`,exitCode:2}}}else r=Uint8Array.from(e.stdin,f=>f.charCodeAt(0));let n,s=t.gzip||j(r),o=t.bzip2||q(r),a=t.xz||Y(r),c=t.zstd||Q(r);if(s?n=await X(r):o?n=await V(r):a?n=await J(r):c?n=await ee(r):n=await _(r),n.error)return{stdout:"",stderr:`tar: ${n.error}
|
|
43
|
+
`,exitCode:2};let l=t.directory?e.fs.resolvePath(e.cwd,t.directory):e.cwd,d="",u="",g=[];if(t.directory&&!t.toStdout)try{await e.fs.mkdir(l,{recursive:!0})}catch{}for(let f of n.entries){let h=Re(f.name,t.strip);if(!h)continue;let m=h.endsWith("/")?h.slice(0,-1):h;if(i.length>0){let E;if(t.wildcards?E=i.some(w=>N(h,w)||N(m,w)||h.startsWith(`${w}/`)):E=i.some(w=>h===w||h.startsWith(`${w}/`)||m===w),!E)continue}if(te(h,t.exclude))continue;let S=e.fs.resolvePath(l,h);try{if(f.type==="directory"){if(t.toStdout)continue;await e.fs.mkdir(S,{recursive:!0}),t.verbose&&(d+=`${h}
|
|
44
44
|
`)}else if(f.type==="file"){if(t.toStdout){u+=new TextDecoder().decode(f.content),t.verbose&&(d+=`${h}
|
|
45
45
|
`);continue}if(t.keepOldFiles)try{await e.fs.stat(S),t.verbose&&(d+=`${h}: not overwritten, file exists
|
|
46
46
|
`);continue}catch{}let E=S.substring(0,S.lastIndexOf("/"));if(E)try{await e.fs.mkdir(E,{recursive:!0})}catch{}if(await e.fs.writeFile(S,f.content),t.preserve&&f.mode)try{await e.fs.chmod(S,f.mode)}catch{}t.verbose&&(d+=`${h}
|
|
@@ -48,11 +48,11 @@ import{a as te,b as re,c as N}from"./chunk-GTNBSMZR.js";import"./chunk-KGOUQS5A.
|
|
|
48
48
|
`);continue}catch{}let E=S.substring(0,S.lastIndexOf("/"));if(E)try{await e.fs.mkdir(E,{recursive:!0})}catch{}try{await e.fs.symlink(f.linkTarget,S)}catch{}t.verbose&&(d+=`${h}
|
|
49
49
|
`)}}catch(E){let w=E instanceof Error?E.message:"unknown error";g.push(`tar: ${h}: ${w}`)}}let p=d;return g.length>0&&(p+=`${g.join(`
|
|
50
50
|
`)}
|
|
51
|
-
`),{stdout:u,stderr:p,exitCode:g.length>0?2:0}}async function
|
|
52
|
-
`,exitCode:2}}}else r=Uint8Array.from(e.stdin,d=>d.charCodeAt(0));let n,s=t.gzip||
|
|
53
|
-
`,exitCode:2};let l="";for(let d of n.entries){let u=
|
|
51
|
+
`),{stdout:u,stderr:p,exitCode:g.length>0?2:0}}async function ut(e,t,i){let r;if(t.file&&t.file!=="-"){let d=e.fs.resolvePath(e.cwd,t.file);try{r=await e.fs.readFileBuffer(d)}catch{return{stdout:"",stderr:`tar: ${t.file}: Cannot open: No such file or directory
|
|
52
|
+
`,exitCode:2}}}else r=Uint8Array.from(e.stdin,d=>d.charCodeAt(0));let n,s=t.gzip||j(r),o=t.bzip2||q(r),a=t.xz||Y(r),c=t.zstd||Q(r);if(s?n=await X(r):o?n=await V(r):a?n=await J(r):c?n=await ee(r):n=await _(r),n.error)return{stdout:"",stderr:`tar: ${n.error}
|
|
53
|
+
`,exitCode:2};let l="";for(let d of n.entries){let u=Re(d.name,t.strip);if(!u)continue;let g=u.endsWith("/")?u.slice(0,-1):u;if(i.length>0){let p;if(t.wildcards?p=i.some(f=>N(u,f)||N(g,f)||u.startsWith(`${f}/`)):p=i.some(f=>u===f||u.startsWith(`${f}/`)||g===f),!p)continue}if(!te(u,t.exclude))if(t.verbose){let p=d.type==="directory",f=it(d.mode,p),h=`${d.uid}/${d.gid}`,m=d.size.toString().padStart(8," "),S=st(d.mtime),E=`${f} ${h.padEnd(10)} ${m} ${S} ${u}`;d.type==="symlink"&&d.linkTarget&&(E+=` -> ${d.linkTarget}`),l+=`${E}
|
|
54
54
|
`}else l+=`${u}
|
|
55
|
-
`}return{stdout:l,stderr:"",exitCode:0}}var
|
|
55
|
+
`}return{stdout:l,stderr:"",exitCode:0}}var Tt={name:"tar",async execute(e,t){if(ie(e))return ne(nt);let i=ke(e);if(!i.ok)return i.error;let{options:r,files:n}=i,s=[r.create,r.append,r.update,r.extract,r.list].filter(Boolean).length;if(s===0)return{stdout:"",stderr:`tar: You must specify one of -c, -r, -u, -x, or -t
|
|
56
56
|
`,exitCode:2};if(s>1)return{stdout:"",stderr:`tar: You may not specify more than one of -c, -r, -u, -x, or -t
|
|
57
57
|
`,exitCode:2};if(r.autoCompress&&r.file&&r.create){let c=r.file.toLowerCase();c.endsWith(".tar.gz")||c.endsWith(".tgz")?r.gzip=!0:c.endsWith(".tar.bz2")||c.endsWith(".tbz2")?r.bzip2=!0:c.endsWith(".tar.xz")||c.endsWith(".txz")?r.xz=!0:(c.endsWith(".tar.zst")||c.endsWith(".tzst"))&&(r.zstd=!0)}let o=[r.gzip,r.bzip2,r.xz,r.zstd].filter(Boolean).length;if(o>1)return{stdout:"",stderr:`tar: You may not specify more than one compression option
|
|
58
58
|
`,exitCode:2};if((r.append||r.update)&&o>0)return{stdout:"",stderr:`tar: Cannot append/update compressed archives - decompress first
|
|
@@ -60,4 +60,4 @@ import{a as te,b as re,c as N}from"./chunk-GTNBSMZR.js";import"./chunk-KGOUQS5A.
|
|
|
60
60
|
`).map(u=>u.trim()).filter(u=>u.length>0&&!u.startsWith("#"));a=[...n,...d]}catch{return{stdout:"",stderr:`tar: ${r.filesFrom}: Cannot open: No such file or directory
|
|
61
61
|
`,exitCode:2}}}if(r.excludeFrom){let c=t.fs.resolvePath(t.cwd,r.excludeFrom);try{let d=(await t.fs.readFile(c)).split(`
|
|
62
62
|
`).map(u=>u.trim()).filter(u=>u.length>0&&!u.startsWith("#"));r.exclude.push(...d)}catch{return{stdout:"",stderr:`tar: ${r.excludeFrom}: Cannot open: No such file or directory
|
|
63
|
-
`,exitCode:2}}}return r.create?
|
|
63
|
+
`,exitCode:2}}}return r.create?at(t,r,a):r.append?ot(t,r,a):r.update?ct(t,r,a):r.extract?lt(t,r,a):ut(t,r,a)}};export{Tt as tarCommand};
|