just-bash 2.7.0 → 2.7.1
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/alias-MGDOL4KG.js +7 -0
- package/dist/bin/chunks/awk2-ASLLINAN.js +21 -0
- package/dist/bin/{shell/chunks/base64-O7TCK5TL.js → chunks/base64-43KPK6TL.js} +1 -1
- package/dist/bin/chunks/bash-OAUBNRSG.js +6 -0
- package/dist/bin/{shell/chunks/cat-AJXZOSPN.js → chunks/cat-HNXE2ES2.js} +1 -1
- package/dist/bin/chunks/chunk-4PRVMER6.js +2 -0
- package/dist/bin/chunks/chunk-C6FK2JV3.js +74 -0
- package/dist/bin/chunks/chunk-GZHFXDDO.js +10 -0
- package/dist/bin/chunks/chunk-JBABAK44.js +4 -0
- package/dist/bin/chunks/chunk-YNACG4DZ.js +6 -0
- package/dist/bin/chunks/{column-TSFEMTG6.js → column-HQ4AK5DM.js} +1 -1
- package/dist/bin/chunks/{cp-XXWRVG2D.js → cp-VFXCUKXO.js} +1 -1
- package/dist/bin/chunks/{curl-TH7YRBSA.js → curl-7IUASLUJ.js} +1 -1
- package/dist/bin/chunks/{diff-GI3QVUGD.js → diff-ZGXLP3DN.js} +1 -1
- package/dist/bin/chunks/{du-XQPYLN3H.js → du-PECPOFQT.js} +1 -1
- package/dist/bin/chunks/env-W6IMQ43Y.js +9 -0
- package/dist/bin/chunks/{expansion-BOR3ELLC.js → expansion-IEMZ6T22.js} +1 -1
- package/dist/bin/{shell/chunks/gzip-YXK3WZQL.js → chunks/gzip-5ILPB46W.js} +1 -1
- package/dist/bin/chunks/history-56DL6SXU.js +3 -0
- package/dist/bin/{shell/chunks/jq-RGZHJNXC.js → chunks/jq-M2WXBRXF.js} +1 -1
- package/dist/bin/chunks/{ls-BEHQBUMC.js → ls-5LN47VHU.js} +1 -1
- package/dist/bin/chunks/{mkdir-XJABRAUN.js → mkdir-XMSNS6S5.js} +1 -1
- package/dist/bin/chunks/{mv-3ATZ2ABL.js → mv-P4KHB27X.js} +1 -1
- package/dist/bin/chunks/{paste-FT6WBQZG.js → paste-UCH462KK.js} +1 -1
- package/dist/bin/{shell/chunks/printf-YPXD4CRE.js → chunks/printf-XPBSFXJE.js} +1 -1
- package/dist/bin/{shell/chunks/python3-JGT65AEB.js → chunks/python3-ZWX5SFJ3.js} +5 -5
- package/dist/bin/{shell/chunks/rm-2PKAWTSQ.js → chunks/rm-S7ASVG34.js} +1 -1
- package/dist/bin/chunks/{rmdir-GOODLY5W.js → rmdir-OEMA5ZTD.js} +1 -1
- package/dist/bin/chunks/{stat-UEQ7KMY5.js → stat-ZZVPXHLF.js} +1 -1
- package/dist/bin/{shell/chunks/tee-ZFIT2GTM.js → chunks/tee-XSKPK43X.js} +1 -1
- package/dist/bin/chunks/time-F4NVQOJH.js +14 -0
- package/dist/bin/chunks/{tr-MBLEXZBI.js → tr-FMT6JWLE.js} +1 -1
- package/dist/bin/chunks/{tree-DQBEJH47.js → tree-WC3AXFHC.js} +1 -1
- package/dist/bin/chunks/{uniq-IXHB2FVS.js → uniq-NNXAFO6D.js} +1 -1
- package/dist/bin/{shell/chunks/wc-SAOHEZYP.js → chunks/wc-CZ2TD6T6.js} +1 -1
- package/dist/bin/{shell/chunks/which-FCDFBOMN.js → chunks/which-5QEJAXNR.js} +1 -1
- package/dist/bin/chunks/xan-OPVCJ3ZA.js +140 -0
- package/dist/bin/chunks/{xan-view-6Z6TWXMY.js → xan-view-5SZBYPLG.js} +1 -1
- package/dist/bin/chunks/{yq-PFV4T2PV.js → yq-JU6VN4X4.js} +1 -1
- package/dist/bin/just-bash.js +251 -251
- package/dist/bin/shell/chunks/alias-MGDOL4KG.js +7 -0
- package/dist/bin/shell/chunks/awk2-ASLLINAN.js +21 -0
- package/dist/bin/{chunks/base64-O7TCK5TL.js → shell/chunks/base64-43KPK6TL.js} +1 -1
- package/dist/bin/shell/chunks/bash-OAUBNRSG.js +6 -0
- package/dist/bin/{chunks/cat-AJXZOSPN.js → shell/chunks/cat-HNXE2ES2.js} +1 -1
- package/dist/bin/shell/chunks/chunk-4PRVMER6.js +2 -0
- package/dist/bin/shell/chunks/chunk-C6FK2JV3.js +74 -0
- package/dist/bin/shell/chunks/chunk-GZHFXDDO.js +10 -0
- package/dist/bin/shell/chunks/chunk-JBABAK44.js +4 -0
- package/dist/bin/shell/chunks/chunk-YNACG4DZ.js +6 -0
- package/dist/bin/shell/chunks/{column-TSFEMTG6.js → column-HQ4AK5DM.js} +1 -1
- package/dist/bin/shell/chunks/{cp-XXWRVG2D.js → cp-VFXCUKXO.js} +1 -1
- package/dist/bin/shell/chunks/{curl-TH7YRBSA.js → curl-7IUASLUJ.js} +1 -1
- package/dist/bin/shell/chunks/{diff-GI3QVUGD.js → diff-ZGXLP3DN.js} +1 -1
- package/dist/bin/shell/chunks/{du-XQPYLN3H.js → du-PECPOFQT.js} +1 -1
- package/dist/bin/shell/chunks/env-W6IMQ43Y.js +9 -0
- package/dist/bin/shell/chunks/{expansion-BOR3ELLC.js → expansion-IEMZ6T22.js} +1 -1
- package/dist/bin/{chunks/gzip-YXK3WZQL.js → shell/chunks/gzip-5ILPB46W.js} +1 -1
- package/dist/bin/shell/chunks/history-56DL6SXU.js +3 -0
- package/dist/bin/{chunks/jq-RGZHJNXC.js → shell/chunks/jq-M2WXBRXF.js} +1 -1
- package/dist/bin/shell/chunks/{ls-BEHQBUMC.js → ls-5LN47VHU.js} +1 -1
- package/dist/bin/shell/chunks/{mkdir-XJABRAUN.js → mkdir-XMSNS6S5.js} +1 -1
- package/dist/bin/shell/chunks/{mv-3ATZ2ABL.js → mv-P4KHB27X.js} +1 -1
- package/dist/bin/shell/chunks/{paste-FT6WBQZG.js → paste-UCH462KK.js} +1 -1
- package/dist/bin/{chunks/printf-YPXD4CRE.js → shell/chunks/printf-XPBSFXJE.js} +1 -1
- package/dist/bin/{chunks/python3-JGT65AEB.js → shell/chunks/python3-ZWX5SFJ3.js} +5 -5
- package/dist/bin/{chunks/rm-2PKAWTSQ.js → shell/chunks/rm-S7ASVG34.js} +1 -1
- package/dist/bin/shell/chunks/{rmdir-GOODLY5W.js → rmdir-OEMA5ZTD.js} +1 -1
- package/dist/bin/shell/chunks/{stat-UEQ7KMY5.js → stat-ZZVPXHLF.js} +1 -1
- package/dist/bin/{chunks/tee-ZFIT2GTM.js → shell/chunks/tee-XSKPK43X.js} +1 -1
- package/dist/bin/shell/chunks/time-F4NVQOJH.js +14 -0
- package/dist/bin/shell/chunks/{tr-MBLEXZBI.js → tr-FMT6JWLE.js} +1 -1
- package/dist/bin/shell/chunks/{tree-DQBEJH47.js → tree-WC3AXFHC.js} +1 -1
- package/dist/bin/shell/chunks/{uniq-IXHB2FVS.js → uniq-NNXAFO6D.js} +1 -1
- package/dist/bin/{chunks/wc-SAOHEZYP.js → shell/chunks/wc-CZ2TD6T6.js} +1 -1
- package/dist/bin/{chunks/which-FCDFBOMN.js → shell/chunks/which-5QEJAXNR.js} +1 -1
- package/dist/bin/shell/chunks/xan-OPVCJ3ZA.js +140 -0
- package/dist/bin/shell/chunks/{xan-view-6Z6TWXMY.js → xan-view-5SZBYPLG.js} +1 -1
- package/dist/bin/shell/chunks/{yq-PFV4T2PV.js → yq-JU6VN4X4.js} +1 -1
- package/dist/bin/shell/shell.js +226 -226
- package/dist/bundle/browser.js +623 -623
- package/dist/bundle/chunks/alias-YGOORMWI.js +6 -0
- package/dist/bundle/chunks/awk2-5K7HVGCQ.js +20 -0
- package/dist/bundle/chunks/{base64-3BME25ON.js → base64-2JFR3HGT.js} +1 -1
- package/dist/bundle/chunks/bash-BYWM5OPC.js +5 -0
- package/dist/bundle/chunks/{cat-MV4K6AUA.js → cat-GPKR7D6K.js} +1 -1
- package/dist/bundle/chunks/chunk-76ZRJPDK.js +73 -0
- package/dist/bundle/chunks/chunk-F55TLFGB.js +9 -0
- package/dist/bundle/chunks/chunk-HWKDQ44K.js +3 -0
- package/dist/bundle/chunks/chunk-IEPFPINK.js +5 -0
- package/dist/bundle/chunks/chunk-OJDRYQWQ.js +1 -0
- package/dist/bundle/chunks/{column-XPDNNO5Y.js → column-R6OLMEUA.js} +1 -1
- package/dist/bundle/chunks/{cp-PBJT3GBF.js → cp-NJSENVKC.js} +1 -1
- package/dist/bundle/chunks/{curl-XLP4VABU.js → curl-QDCXHQMX.js} +1 -1
- package/dist/bundle/chunks/{diff-ZLJYSBRK.js → diff-ELUS3RW7.js} +1 -1
- package/dist/bundle/chunks/{du-NQXEC3EF.js → du-T4JUAAB2.js} +1 -1
- package/dist/bundle/chunks/env-M3AXY56V.js +8 -0
- package/dist/bundle/chunks/{expansion-RIGCFEMA.js → expansion-DXWR3WZB.js} +1 -1
- package/dist/bundle/chunks/{gzip-L3NDJG3F.js → gzip-4P4KGYT5.js} +1 -1
- package/dist/bundle/chunks/history-TMBGOQO6.js +2 -0
- package/dist/bundle/chunks/{jq-RLRYRPOJ.js → jq-KF5D2PYR.js} +1 -1
- package/dist/bundle/chunks/{ls-5W3NU5OJ.js → ls-PUJHEPXS.js} +1 -1
- package/dist/bundle/chunks/{mkdir-7UKY4B3B.js → mkdir-SF2UE4KB.js} +1 -1
- package/dist/bundle/chunks/{mv-FXHEKRTB.js → mv-JPBZPM4O.js} +1 -1
- package/dist/bundle/chunks/{paste-QTGVEPH5.js → paste-QAP6Y75J.js} +1 -1
- package/dist/bundle/chunks/{printf-66XGXFCD.js → printf-OAPYPRGV.js} +1 -1
- package/dist/bundle/chunks/{python3-3OP7EKER.js → python3-SKZGHYDO.js} +5 -5
- package/dist/bundle/chunks/{rm-I2SRVF7H.js → rm-MJFRIDNT.js} +1 -1
- package/dist/bundle/chunks/{rmdir-XFQE4ZYV.js → rmdir-DU6C7ZEO.js} +1 -1
- package/dist/bundle/chunks/{stat-IVQBBOKN.js → stat-IOLJTP7U.js} +1 -1
- package/dist/bundle/chunks/{tee-2QU4NRSJ.js → tee-4KHTWVWB.js} +1 -1
- package/dist/bundle/chunks/time-EGF4KTWV.js +13 -0
- package/dist/bundle/chunks/{tr-EDGW5FG6.js → tr-P43NRVKL.js} +1 -1
- package/dist/bundle/chunks/{tree-MEM64BW3.js → tree-UFVZH4SS.js} +1 -1
- package/dist/bundle/chunks/{uniq-47QVBRNC.js → uniq-XBP4SJA3.js} +1 -1
- package/dist/bundle/chunks/{wc-HE5XARI4.js → wc-VDPK3LVS.js} +1 -1
- package/dist/bundle/chunks/{which-UBLRBDHN.js → which-GF77XMJD.js} +1 -1
- package/dist/bundle/chunks/xan-RW5GSH6C.js +139 -0
- package/dist/bundle/chunks/{xan-view-DMFUMZG7.js → xan-view-ECQUO7AJ.js} +1 -1
- package/dist/bundle/chunks/{yq-L665QPQU.js → yq-EMWRPC7R.js} +1 -1
- package/dist/bundle/index.js +253 -253
- package/dist/commands/query-engine/evaluator.d.ts +2 -2
- package/dist/commands/query-engine/safe-object.d.ts +49 -0
- package/dist/commands/query-engine/value-operations.d.ts +1 -0
- package/dist/commands/xan/aggregation.d.ts +1 -1
- package/dist/commands/xan/csv.d.ts +16 -0
- package/dist/interpreter/alias-expansion.d.ts +1 -1
- package/dist/interpreter/helpers/ifs.d.ts +4 -4
- package/dist/interpreter/simple-command-assignments.d.ts +1 -1
- package/dist/interpreter/types.d.ts +2 -2
- package/dist/types.d.ts +2 -2
- package/package.json +1 -1
- package/dist/bin/chunks/alias-EGIS5LUE.js +0 -7
- package/dist/bin/chunks/awk2-GFEJOWML.js +0 -21
- package/dist/bin/chunks/bash-PGDTHIM2.js +0 -6
- package/dist/bin/chunks/chunk-FSAGDARS.js +0 -74
- package/dist/bin/chunks/chunk-KD3EODLB.js +0 -6
- package/dist/bin/chunks/chunk-TA7RUHGQ.js +0 -4
- package/dist/bin/chunks/chunk-UUQYHLBO.js +0 -10
- package/dist/bin/chunks/env-7A4MH7BJ.js +0 -9
- package/dist/bin/chunks/history-G5C2J2OY.js +0 -3
- package/dist/bin/chunks/time-37F5EBPK.js +0 -14
- package/dist/bin/chunks/xan-5HNHTFMB.js +0 -140
- package/dist/bin/shell/chunks/alias-EGIS5LUE.js +0 -7
- package/dist/bin/shell/chunks/awk2-GFEJOWML.js +0 -21
- package/dist/bin/shell/chunks/bash-PGDTHIM2.js +0 -6
- package/dist/bin/shell/chunks/chunk-FSAGDARS.js +0 -74
- package/dist/bin/shell/chunks/chunk-KD3EODLB.js +0 -6
- package/dist/bin/shell/chunks/chunk-TA7RUHGQ.js +0 -4
- package/dist/bin/shell/chunks/chunk-UUQYHLBO.js +0 -10
- package/dist/bin/shell/chunks/env-7A4MH7BJ.js +0 -9
- package/dist/bin/shell/chunks/history-G5C2J2OY.js +0 -3
- package/dist/bin/shell/chunks/time-37F5EBPK.js +0 -14
- package/dist/bin/shell/chunks/xan-5HNHTFMB.js +0 -140
- package/dist/bundle/chunks/alias-ATFBB6D2.js +0 -6
- package/dist/bundle/chunks/awk2-6FBZTP57.js +0 -20
- package/dist/bundle/chunks/bash-OLRNM52U.js +0 -5
- package/dist/bundle/chunks/chunk-3AWP5CWK.js +0 -73
- package/dist/bundle/chunks/chunk-A263W2RD.js +0 -9
- package/dist/bundle/chunks/chunk-CZPA5RBA.js +0 -5
- package/dist/bundle/chunks/chunk-ZVV5VXYZ.js +0 -3
- package/dist/bundle/chunks/env-2UI6XINU.js +0 -8
- package/dist/bundle/chunks/history-MQDK2OPD.js +0 -2
- package/dist/bundle/chunks/time-UWXBG6CS.js +0 -13
- package/dist/bundle/chunks/xan-A6VPI4HJ.js +0 -139
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import{k as O}from"./chunk-K5IXNHO5.js";function K(t,r,e,n,p,i,u,f,s,c){switch(r){case"sort":return Array.isArray(t)?[[...t].sort(u)]:[null];case"sort_by":return!Array.isArray(t)||e.length===0?[null]:[[...t].sort((h,y)=>{let a=p(h,e[0],n)[0],l=p(y,e[0],n)[0];return u(a,l)})];case"bsearch":{if(!Array.isArray(t)){let h=t===null?"null":typeof t=="object"?"object":typeof t;throw new Error(`${h} (${JSON.stringify(t)}) cannot be searched from`)}return e.length===0?[null]:p(t,e[0],n).map(h=>{let y=0,a=t.length;for(;y<a;){let l=y+a>>>1;u(t[l],h)<0?y=l+1:a=l}return y<t.length&&u(t[y],h)===0?y:-y-1})}case"unique_by":{if(!Array.isArray(t)||e.length===0)return[null];let o=new Map;for(let y of t){let a=p(y,e[0],n)[0],l=JSON.stringify(a);o.has(l)||o.set(l,{item:y,key:a})}let h=[...o.values()];return h.sort((y,a)=>u(y.key,a.key)),[h.map(y=>y.item)]}case"group_by":{if(!Array.isArray(t)||e.length===0)return[null];let o=new Map;for(let h of t){let y=JSON.stringify(p(h,e[0],n)[0]);o.has(y)||o.set(y,[]),o.get(y)?.push(h)}return[[...o.values()]]}case"max":return Array.isArray(t)&&t.length>0?[t.reduce((o,h)=>u(o,h)>0?o:h)]:[null];case"max_by":return!Array.isArray(t)||t.length===0||e.length===0?[null]:[t.reduce((o,h)=>{let y=p(o,e[0],n)[0],a=p(h,e[0],n)[0];return u(y,a)>0?o:h})];case"min":return Array.isArray(t)&&t.length>0?[t.reduce((o,h)=>u(o,h)<0?o:h)]:[null];case"min_by":return!Array.isArray(t)||t.length===0||e.length===0?[null]:[t.reduce((o,h)=>{let y=p(o,e[0],n)[0],a=p(h,e[0],n)[0];return u(y,a)<0?o:h})];case"add":{let o=h=>{let y=h.filter(a=>a!==null);return y.length===0?null:y.every(a=>typeof a=="number")?y.reduce((a,l)=>a+l,0):y.every(a=>typeof a=="string")?y.join(""):y.every(a=>Array.isArray(a))?y.flat():y.every(a=>a&&typeof a=="object"&&!Array.isArray(a))?Object.assign({},...y):null};if(e.length>=1){let h=p(t,e[0],n);return[o(h)]}return Array.isArray(t)?[o(t)]:[null]}case"any":{if(e.length>=2){try{let o=i(t,e[0],n);for(let h of o)if(p(h,e[1],n).some(f))return[!0]}catch(o){if(o instanceof c)throw o}return[!1]}return e.length===1?Array.isArray(t)?[t.some(o=>f(p(o,e[0],n)[0]))]:[!1]:Array.isArray(t)?[t.some(f)]:[!1]}case"all":{if(e.length>=2){try{let o=i(t,e[0],n);for(let h of o)if(!p(h,e[1],n).some(f))return[!1]}catch(o){if(o instanceof c)throw o}return[!0]}return e.length===1?Array.isArray(t)?[t.every(o=>f(p(o,e[0],n)[0]))]:[!0]:Array.isArray(t)?[t.every(f)]:[!0]}case"select":return e.length===0?[t]:p(t,e[0],n).some(f)?[t]:[];case"map":return e.length===0||!Array.isArray(t)?[null]:[t.flatMap(h=>p(h,e[0],n))];case"map_values":{if(e.length===0)return[null];if(Array.isArray(t))return[t.flatMap(o=>p(o,e[0],n))];if(t&&typeof t=="object"){let o={};for(let[h,y]of Object.entries(t)){let a=p(y,e[0],n);a.length>0&&(o[h]=a[0])}return[o]}return[null]}case"has":{if(e.length===0)return[!1];let h=p(t,e[0],n)[0];return Array.isArray(t)&&typeof h=="number"?[h>=0&&h<t.length]:t&&typeof t=="object"&&typeof h=="string"?[h in t]:[!1]}case"in":{if(e.length===0)return[!1];let h=p(t,e[0],n)[0];return Array.isArray(h)&&typeof t=="number"?[t>=0&&t<h.length]:h&&typeof h=="object"&&typeof t=="string"?[t in h]:[!1]}case"contains":{if(e.length===0)return[!1];let o=p(t,e[0],n);return[s(t,o[0])]}case"inside":{if(e.length===0)return[!1];let o=p(t,e[0],n);return[s(o[0],t)]}default:return null}}function V(t,r,e,n,p,i,u,f){switch(r){case"first":if(e.length>0)try{let s=i(t,e[0],n);return s.length>0?[s[0]]:[]}catch(s){if(s instanceof f)throw s;return[]}return Array.isArray(t)&&t.length>0?[t[0]]:[null];case"last":if(e.length>0){let s=p(t,e[0],n);return s.length>0?[s[s.length-1]]:[]}return Array.isArray(t)&&t.length>0?[t[t.length-1]]:[null];case"nth":{if(e.length<1)return[null];let s=p(t,e[0],n);if(e.length>1){for(let o of s)if(o<0)throw new Error("nth doesn't support negative indices");let c;try{c=i(t,e[1],n)}catch(o){if(o instanceof f)throw o;c=[]}return s.flatMap(o=>{let h=o;return h<c.length?[c[h]]:[]})}return Array.isArray(t)?s.flatMap(c=>{let o=c;if(o<0)throw new Error("nth doesn't support negative indices");return o<t.length?[t[o]]:[null]}):[null]}case"range":{if(e.length===0)return[];let s=p(t,e[0],n);if(e.length===1){let y=[];for(let a of s){let l=a;for(let d=0;d<l;d++)y.push(d)}return y}let c=p(t,e[1],n);if(e.length===2){let y=[];for(let a of s)for(let l of c){let d=a,g=l;for(let A=d;A<g;A++)y.push(A)}return y}let o=p(t,e[2],n),h=[];for(let y of s)for(let a of c)for(let l of o){let d=y,g=a,A=l;if(A!==0)if(A>0)for(let b=d;b<g;b+=A)h.push(b);else for(let b=d;b>g;b+=A)h.push(b)}return h}case"limit":return e.length<2?[]:p(t,e[0],n).flatMap(c=>{let o=c;if(o<0)throw new Error("limit doesn't support negative count");if(o===0)return[];let h;try{h=i(t,e[1],n)}catch(y){if(y instanceof f)throw y;h=[]}return h.slice(0,o)});case"isempty":{if(e.length<1)return[!0];try{return[i(t,e[0],n).length===0]}catch(s){if(s instanceof f)throw s;return[!0]}}case"isvalid":{if(e.length<1)return[!0];try{return[p(t,e[0],n).length>0]}catch(s){if(s instanceof f)throw s;return[!1]}}case"skip":return e.length<2?[]:p(t,e[0],n).flatMap(c=>{let o=c;if(o<0)throw new Error("skip doesn't support negative count");return p(t,e[1],n).slice(o)});case"until":{if(e.length<2)return[t];let s=t,c=n.limits.maxIterations;for(let o=0;o<c;o++){if(p(s,e[0],n).some(u))return[s];let y=p(s,e[1],n);if(y.length===0)return[s];s=y[0]}throw new f(`jq until: too many iterations (${c}), increase executionLimits.maxJqIterations`,"iterations")}case"while":{if(e.length<2)return[t];let s=[],c=t,o=n.limits.maxIterations;for(let h=0;h<o&&p(c,e[0],n).some(u);h++){s.push(c);let a=p(c,e[1],n);if(a.length===0)break;c=a[0]}if(s.length>=o)throw new f(`jq while: too many iterations (${o}), increase executionLimits.maxJqIterations`,"iterations");return s}case"repeat":{if(e.length===0)return[t];let s=[],c=t,o=n.limits.maxIterations;for(let h=0;h<o;h++){s.push(c);let y=p(c,e[0],n);if(y.length===0)break;c=y[0]}if(s.length>=o)throw new f(`jq repeat: too many iterations (${o}), increase executionLimits.maxJqIterations`,"iterations");return s}default:return null}}function J(t,r,e,n,p){switch(r){case"now":return[Date.now()/1e3];case"gmtime":{if(typeof t!="number")return[null];let i=new Date(t*1e3),u=i.getUTCFullYear(),f=i.getUTCMonth(),s=i.getUTCDate(),c=i.getUTCHours(),o=i.getUTCMinutes(),h=i.getUTCSeconds(),y=i.getUTCDay(),a=Date.UTC(u,0,1),l=Math.floor((i.getTime()-a)/(1440*60*1e3));return[[u,f,s,c,o,h,y,l]]}case"mktime":{if(!Array.isArray(t))throw new Error("mktime requires parsed datetime inputs");let[i,u,f,s=0,c=0,o=0]=t;if(typeof i!="number"||typeof u!="number")throw new Error("mktime requires parsed datetime inputs");let h=Date.UTC(i,u,f??1,s??0,c??0,o??0);return[Math.floor(h/1e3)]}case"strftime":{if(e.length===0)return[null];let u=p(t,e[0],n)[0];if(typeof u!="string")throw new Error("strftime/1 requires a string format");let f;if(typeof t=="number")f=new Date(t*1e3);else if(Array.isArray(t)){let[y,a,l,d=0,g=0,A=0]=t;if(typeof y!="number"||typeof a!="number")throw new Error("strftime/1 requires parsed datetime inputs");f=new Date(Date.UTC(y,a,l??1,d??0,g??0,A??0))}else throw new Error("strftime/1 requires parsed datetime inputs");let s=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],c=["January","February","March","April","May","June","July","August","September","October","November","December"],o=(y,a=2)=>String(y).padStart(a,"0");return[u.replace(/%Y/g,String(f.getUTCFullYear())).replace(/%m/g,o(f.getUTCMonth()+1)).replace(/%d/g,o(f.getUTCDate())).replace(/%H/g,o(f.getUTCHours())).replace(/%M/g,o(f.getUTCMinutes())).replace(/%S/g,o(f.getUTCSeconds())).replace(/%A/g,s[f.getUTCDay()]).replace(/%B/g,c[f.getUTCMonth()]).replace(/%Z/g,"UTC").replace(/%%/g,"%")]}case"strptime":{if(e.length===0)return[null];if(typeof t!="string")throw new Error("strptime/1 requires a string input");let u=p(t,e[0],n)[0];if(typeof u!="string")throw new Error("strptime/1 requires a string format");if(u==="%Y-%m-%dT%H:%M:%SZ"){let s=t.match(/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})Z$/);if(s){let[,c,o,h,y,a,l]=s.map(Number),d=new Date(Date.UTC(c,o-1,h,y,a,l)),g=d.getUTCDay(),A=Date.UTC(c,0,1),b=Math.floor((d.getTime()-A)/(1440*60*1e3));return[[c,o-1,h,y,a,l,g,b]]}}let f=new Date(t);if(!Number.isNaN(f.getTime())){let s=f.getUTCFullYear(),c=f.getUTCMonth(),o=f.getUTCDate(),h=f.getUTCHours(),y=f.getUTCMinutes(),a=f.getUTCSeconds(),l=f.getUTCDay(),d=Date.UTC(s,0,1),g=Math.floor((f.getTime()-d)/(1440*60*1e3));return[[s,c,o,h,y,a,l,g]]}throw new Error(`Cannot parse date: ${t}`)}case"fromdate":{if(typeof t!="string")throw new Error("fromdate requires a string input");let i=new Date(t);if(Number.isNaN(i.getTime()))throw new Error(`date "${t}" does not match format "%Y-%m-%dT%H:%M:%SZ"`);return[Math.floor(i.getTime()/1e3)]}case"todate":{if(typeof t!="number")throw new Error("todate requires a number input");return[new Date(t*1e3).toISOString().replace(/\.\d{3}Z$/,"Z")]}default:return null}}function E(t){return t!==!1&&t!==null}function S(t,r){return JSON.stringify(t)===JSON.stringify(r)}function M(t,r){return typeof t=="number"&&typeof r=="number"?t-r:typeof t=="string"&&typeof r=="string"?t.localeCompare(r):0}function H(t,r){let e={...t};for(let n of Object.keys(r))n in e&&e[n]&&typeof e[n]=="object"&&!Array.isArray(e[n])&&r[n]&&typeof r[n]=="object"&&!Array.isArray(r[n])?e[n]=H(e[n],r[n]):e[n]=r[n];return e}function T(t,r=3e3){let e=0,n=t;for(;e<r;)if(Array.isArray(n)){if(n.length===0)return e+1;n=n[0],e++}else if(n!==null&&typeof n=="object"){let p=Object.keys(n);if(p.length===0)return e+1;n=n[p[0]],e++}else return e;return e}function j(t,r){let e=i=>i===null?0:typeof i=="boolean"?1:typeof i=="number"?2:typeof i=="string"?3:Array.isArray(i)?4:typeof i=="object"?5:6,n=e(t),p=e(r);if(n!==p)return n-p;if(typeof t=="number"&&typeof r=="number")return t-r;if(typeof t=="string"&&typeof r=="string")return t.localeCompare(r);if(typeof t=="boolean"&&typeof r=="boolean")return(t?1:0)-(r?1:0);if(Array.isArray(t)&&Array.isArray(r)){for(let i=0;i<Math.min(t.length,r.length);i++){let u=j(t[i],r[i]);if(u!==0)return u}return t.length-r.length}if(t&&r&&typeof t=="object"&&typeof r=="object"){let i=t,u=r,f=Object.keys(i).sort(),s=Object.keys(u).sort();for(let c=0;c<Math.min(f.length,s.length);c++){let o=f[c].localeCompare(s[c]);if(o!==0)return o}if(f.length!==s.length)return f.length-s.length;for(let c of f){let o=j(i[c],u[c]);if(o!==0)return o}}return 0}function P(t,r){if(S(t,r))return!0;if(typeof t=="string"&&typeof r=="string")return t.includes(r);if(Array.isArray(t)&&Array.isArray(r))return r.every(e=>t.some(n=>P(n,e)));if(t&&r&&typeof t=="object"&&typeof r=="object"&&!Array.isArray(t)&&!Array.isArray(r)){let e=t,n=r;return Object.keys(n).every(p=>p in e&&P(e[p],n[p]))}return!1}var ut=2e3;function Y(t,r,e){switch(r){case"@base64":return typeof t=="string"?typeof Buffer<"u"?[Buffer.from(t,"utf-8").toString("base64")]:[btoa(t)]:[null];case"@base64d":return typeof t=="string"?typeof Buffer<"u"?[Buffer.from(t,"base64").toString("utf-8")]:[atob(t)]:[null];case"@uri":return typeof t=="string"?[encodeURIComponent(t).replace(/!/g,"%21").replace(/'/g,"%27").replace(/\(/g,"%28").replace(/\)/g,"%29").replace(/\*/g,"%2A")]:[null];case"@urid":return typeof t=="string"?[decodeURIComponent(t)]:[null];case"@csv":return Array.isArray(t)?[t.map(p=>{if(p===null)return"";if(typeof p=="boolean")return p?"true":"false";if(typeof p=="number")return String(p);let i=String(p);return i.includes(",")||i.includes('"')||i.includes(`
|
|
3
|
-
`)||i.includes("\r")?`"${i.replace(/"/g,'""')}"`:i}).join(",")]:[null];case"@tsv":return Array.isArray(t)?[t.map(n=>String(n??"").replace(/\t/g,"\\t").replace(/\n/g,"\\n")).join(" ")]:[null];case"@json":{let n=e??ut;return T(t,n+1)>n?[null]:[JSON.stringify(t)]}case"@html":return typeof t=="string"?[t.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/'/g,"'").replace(/"/g,""")]:[null];case"@sh":return typeof t=="string"?[`'${t.replace(/'/g,"'\\''")}'`]:[null];case"@text":return typeof t=="string"?[t]:t==null?[""]:[String(t)];default:return null}}function q(t,r,e,n,p,i){switch(r){case"index":return e.length===0?[null]:p(t,e[0],n).map(f=>{if(typeof t=="string"&&typeof f=="string"){if(f===""&&t==="")return null;let s=t.indexOf(f);return s>=0?s:null}if(Array.isArray(t)){if(Array.isArray(f)){for(let c=0;c<=t.length-f.length;c++){let o=!0;for(let h=0;h<f.length;h++)if(!i(t[c+h],f[h])){o=!1;break}if(o)return c}return null}let s=t.findIndex(c=>i(c,f));return s>=0?s:null}return null});case"rindex":return e.length===0?[null]:p(t,e[0],n).map(f=>{if(typeof t=="string"&&typeof f=="string"){let s=t.lastIndexOf(f);return s>=0?s:null}if(Array.isArray(t)){if(Array.isArray(f)){for(let s=t.length-f.length;s>=0;s--){let c=!0;for(let o=0;o<f.length;o++)if(!i(t[s+o],f[o])){c=!1;break}if(c)return s}return null}for(let s=t.length-1;s>=0;s--)if(i(t[s],f))return s;return null}return null});case"indices":return e.length===0?[[]]:p(t,e[0],n).map(f=>{let s=[];if(typeof t=="string"&&typeof f=="string"){let c=t.indexOf(f);for(;c!==-1;)s.push(c),c=t.indexOf(f,c+1)}else if(Array.isArray(t))if(Array.isArray(f)){let c=f.length;if(c===0)for(let o=0;o<=t.length;o++)s.push(o);else for(let o=0;o<=t.length-c;o++){let h=!0;for(let y=0;y<c;y++)if(!i(t[o+y],f[y])){h=!1;break}h&&s.push(o)}}else for(let c=0;c<t.length;c++)i(t[c],f)&&s.push(c);return s});default:return null}}function G(t,r,e,n,p){switch(r){case"fabs":case"abs":return typeof t=="number"?[Math.abs(t)]:typeof t=="string"?[t]:[null];case"exp10":return typeof t=="number"?[10**t]:[null];case"exp2":return typeof t=="number"?[2**t]:[null];case"pow":{if(e.length<2)return[null];let i=p(t,e[0],n),u=p(t,e[1],n),f=i[0],s=u[0];return typeof f!="number"||typeof s!="number"?[null]:[f**s]}case"atan2":{if(e.length<2)return[null];let i=p(t,e[0],n),u=p(t,e[1],n),f=i[0],s=u[0];return typeof f!="number"||typeof s!="number"?[null]:[Math.atan2(f,s)]}case"hypot":{if(typeof t!="number"||e.length===0)return[null];let i=p(t,e[0],n)[0];return[Math.hypot(t,i)]}case"fma":{if(typeof t!="number"||e.length<2)return[null];let i=p(t,e[0],n)[0],u=p(t,e[1],n)[0];return[t*i+u]}case"copysign":{if(typeof t!="number"||e.length===0)return[null];let i=p(t,e[0],n)[0];return[Math.sign(i)*Math.abs(t)]}case"drem":case"remainder":{if(typeof t!="number"||e.length===0)return[null];let i=p(t,e[0],n)[0];return[t-Math.round(t/i)*i]}case"fdim":{if(typeof t!="number"||e.length===0)return[null];let i=p(t,e[0],n)[0];return[Math.max(0,t-i)]}case"fmax":{if(typeof t!="number"||e.length===0)return[null];let i=p(t,e[0],n)[0];return[Math.max(t,i)]}case"fmin":{if(typeof t!="number"||e.length===0)return[null];let i=p(t,e[0],n)[0];return[Math.min(t,i)]}case"ldexp":{if(typeof t!="number"||e.length===0)return[null];let i=p(t,e[0],n)[0];return[t*2**i]}case"scalbn":case"scalbln":{if(typeof t!="number"||e.length===0)return[null];let i=p(t,e[0],n)[0];return[t*2**i]}case"nearbyint":return typeof t=="number"?[Math.round(t)]:[null];case"logb":return typeof t=="number"?[Math.floor(Math.log2(Math.abs(t)))]:[null];case"significand":if(typeof t=="number"){let i=Math.floor(Math.log2(Math.abs(t)));return[t/2**i]}return[null];case"frexp":if(typeof t=="number"){if(t===0)return[[0,0]];let i=Math.floor(Math.log2(Math.abs(t)))+1;return[[t/2**i,i]]}return[null];case"modf":if(typeof t=="number"){let i=Math.trunc(t);return[[t-i,i]]}return[null];default:return null}}function X(t,r,e,n,p,i,u,f){switch(r){case"recurse":{if(e.length===0){let a=[],l=d=>{if(a.push(d),Array.isArray(d))for(let g of d)l(g);else if(d&&typeof d=="object")for(let g of Object.keys(d))l(d[g])};return l(t),a}let s=[],c=e.length>=2?e[1]:null,o=1e4,h=0,y=a=>{if(h++>o||c&&!p(a,c,n).some(i))return;s.push(a);let l=p(a,e[0],n);for(let d of l)d!=null&&y(d)};return y(t),s}case"recurse_down":return f(t,"recurse",e,n);case"walk":{if(e.length===0)return[t];let s=new WeakSet,c=o=>{if(o&&typeof o=="object"){if(s.has(o))return o;s.add(o)}let h;if(Array.isArray(o))h=o.map(c);else if(o&&typeof o=="object"){let a={};for(let[l,d]of Object.entries(o))a[l]=c(d);h=a}else h=o;return p(h,e[0],n)[0]};return[c(t)]}case"transpose":{if(!Array.isArray(t))return[null];if(t.length===0)return[[]];let s=Math.max(...t.map(o=>Array.isArray(o)?o.length:0)),c=[];for(let o=0;o<s;o++)c.push(t.map(h=>Array.isArray(h)?h[o]:null));return[c]}case"combinations":{if(e.length>0){let h=p(t,e[0],n)[0];if(!Array.isArray(t)||h<0)return[];if(h===0)return[[]];let y=[],a=(l,d)=>{if(d===h){y.push([...l]);return}for(let g of t)l.push(g),a(l,d+1),l.pop()};return a([],0),y}if(!Array.isArray(t))return[];if(t.length===0)return[[]];for(let o of t)if(!Array.isArray(o))return[];let s=[],c=(o,h)=>{if(o===t.length){s.push([...h]);return}let y=t[o];for(let a of y)h.push(a),c(o+1,h),h.pop()};return c(0,[]),s}case"parent":{if(n.root===void 0||n.currentPath===void 0)return[];let s=n.currentPath;if(s.length===0)return[];let c=e.length>0?p(t,e[0],n)[0]:1;if(c>=0){if(c>s.length)return[];let o=s.slice(0,s.length-c);return[u(n.root,o)]}else{let o=-c-1;if(o>=s.length)return[t];let h=s.slice(0,o);return[u(n.root,h)]}}case"parents":{if(n.root===void 0||n.currentPath===void 0)return[[]];let s=n.currentPath,c=[];for(let o=s.length-1;o>=0;o--)c.push(u(n.root,s.slice(0,o)));return[c]}case"root":return n.root!==void 0?[n.root]:[];default:return null}}var ht=2e3;function W(t,r,e,n,p){switch(r){case"keys":return Array.isArray(t)?[t.map((i,u)=>u)]:t&&typeof t=="object"?[Object.keys(t).sort()]:[null];case"keys_unsorted":return Array.isArray(t)?[t.map((i,u)=>u)]:t&&typeof t=="object"?[Object.keys(t)]:[null];case"length":return typeof t=="string"?[t.length]:Array.isArray(t)?[t.length]:t&&typeof t=="object"?[Object.keys(t).length]:t===null?[0]:typeof t=="number"?[Math.abs(t)]:[null];case"utf8bytelength":{if(typeof t=="string")return[new TextEncoder().encode(t).length];let i=t===null?"null":Array.isArray(t)?"array":typeof t,u=i==="array"||i==="object"?JSON.stringify(t):String(t);throw new Error(`${i} (${u}) only strings have UTF-8 byte length`)}case"to_entries":return t&&typeof t=="object"&&!Array.isArray(t)?[Object.entries(t).map(([i,u])=>({key:i,value:u}))]:[null];case"from_entries":if(Array.isArray(t)){let i={};for(let u of t)if(u&&typeof u=="object"){let f=u,s=f.key??f.Key??f.name??f.Name??f.k,c=f.value??f.Value??f.v;s!==void 0&&(i[String(s)]=c)}return[i]}return[null];case"with_entries":{if(e.length===0)return[t];if(t&&typeof t=="object"&&!Array.isArray(t)){let u=Object.entries(t).map(([s,c])=>({key:s,value:c})).flatMap(s=>p(s,e[0],n)),f={};for(let s of u)if(s&&typeof s=="object"){let c=s,o=c.key??c.name??c.k,h=c.value??c.v;o!==void 0&&(f[String(o)]=h)}return[f]}return[null]}case"reverse":return Array.isArray(t)?[[...t].reverse()]:typeof t=="string"?[t.split("").reverse().join("")]:[null];case"flatten":return Array.isArray(t)?(e.length>0?p(t,e[0],n):[Number.POSITIVE_INFINITY]).map(u=>{let f=u;if(f<0)throw new Error("flatten depth must not be negative");return t.flat(f)}):[null];case"unique":if(Array.isArray(t)){let i=new Set,u=[];for(let f of t){let s=JSON.stringify(f);i.has(s)||(i.add(s),u.push(f))}return[u]}return[null];case"tojson":case"tojsonstream":{let i=n.limits.maxDepth??ht;return T(t,i+1)>i?[null]:[JSON.stringify(t)]}case"fromjson":{if(typeof t=="string"){let i=t.trim().toLowerCase();if(i==="nan")return[Number.NaN];if(i==="inf"||i==="infinity")return[Number.POSITIVE_INFINITY];if(i==="-inf"||i==="-infinity")return[Number.NEGATIVE_INFINITY];try{return[JSON.parse(t)]}catch{throw new Error(`Invalid JSON: ${t}`)}}return[t]}case"tostring":return typeof t=="string"?[t]:[JSON.stringify(t)];case"tonumber":if(typeof t=="number")return[t];if(typeof t=="string"){let i=Number(t);if(Number.isNaN(i))throw new Error(`${JSON.stringify(t)} cannot be parsed as a number`);return[i]}throw new Error(`${typeof t} cannot be parsed as a number`);case"toboolean":{if(typeof t=="boolean")return[t];if(typeof t=="string"){if(t==="true")return[!0];if(t==="false")return[!1];throw new Error(`string (${JSON.stringify(t)}) cannot be parsed as a boolean`)}let i=t===null?"null":Array.isArray(t)?"array":typeof t,u=i==="array"||i==="object"?JSON.stringify(t):String(t);throw new Error(`${i} (${u}) cannot be parsed as a boolean`)}case"tostream":{let i=[],u=(f,s)=>{if(f===null||typeof f!="object")i.push([s,f]);else if(Array.isArray(f))if(f.length===0)i.push([s,[]]);else for(let c=0;c<f.length;c++)u(f[c],[...s,c]);else{let c=Object.keys(f);if(c.length===0)i.push([s,{}]);else for(let o of c)u(f[o],[...s,o])}};return u(t,[]),i.push([[]]),i}case"fromstream":{if(e.length===0)return[t];let i=p(t,e[0],n),u=null;for(let f of i){if(!Array.isArray(f)||f.length===1&&Array.isArray(f[0])&&f[0].length===0||f.length!==2)continue;let[s,c]=f;if(!Array.isArray(s))continue;if(s.length===0){u=c;continue}u===null&&(u=typeof s[0]=="number"?[]:{});let o=u;for(let y=0;y<s.length-1;y++){let a=s[y],l=s[y+1];if(Array.isArray(o)&&typeof a=="number"){for(;o.length<=a;)o.push(null);o[a]===null&&(o[a]=typeof l=="number"?[]:{}),o=o[a]}else if(o&&typeof o=="object"&&!Array.isArray(o)){let d=o;(d[String(a)]===null||d[String(a)]===void 0)&&(d[String(a)]=typeof l=="number"?[]:{}),o=d[String(a)]}}let h=s[s.length-1];if(Array.isArray(o)&&typeof h=="number"){for(;o.length<=h;)o.push(null);o[h]=c}else o&&typeof o=="object"&&!Array.isArray(o)&&(o[String(h)]=c)}return[u]}case"truncate_stream":{let i=typeof t=="number"?Math.floor(t):0;if(e.length===0)return[];let u=[],f=p(t,e[0],n);for(let s of f)if(Array.isArray(s)){if(s.length===1&&Array.isArray(s[0])){let c=s[0];c.length>i&&u.push([c.slice(i)]);continue}if(s.length===2&&Array.isArray(s[0])){let c=s[0],o=s[1];c.length>i&&u.push([c.slice(i),o])}}return u}default:return null}}function Q(t,r,e,n,p,i,u,f,s,c){switch(r){case"getpath":{if(e.length===0)return[null];let o=p(t,e[0],n),h=[];for(let y of o){let a=y,l=t;for(let d of a){if(l==null){l=null;break}if(Array.isArray(l)&&typeof d=="number")l=l[d];else if(typeof l=="object"&&typeof d=="string")l=l[d];else{l=null;break}}h.push(l)}return h}case"setpath":{if(e.length<2)return[null];let h=p(t,e[0],n)[0],a=p(t,e[1],n)[0];return[u(t,h,a)]}case"delpaths":{if(e.length===0)return[t];let h=p(t,e[0],n)[0],y=t;for(let a of h.sort((l,d)=>d.length-l.length))y=f(y,a);return[y]}case"path":{if(e.length===0)return[[]];let o=[];return c(t,e[0],n,[],o),o}case"del":return e.length===0?[t]:[s(t,e[0],n)];case"pick":{if(e.length===0)return[null];let o=[];for(let y of e)c(t,y,n,[],o);let h=null;for(let y of o){for(let l of y)if(typeof l=="number"&&l<0)throw new Error("Out of bounds negative array index");let a=t;for(let l of y){if(a==null)break;if(Array.isArray(a)&&typeof l=="number")a=a[l];else if(typeof a=="object"&&typeof l=="string")a=a[l];else{a=null;break}}h=u(h,y,a)}return[h]}case"paths":{let o=[],h=(y,a)=>{if(y&&typeof y=="object")if(Array.isArray(y))for(let l=0;l<y.length;l++)o.push([...a,l]),h(y[l],[...a,l]);else for(let l of Object.keys(y))o.push([...a,l]),h(y[l],[...a,l])};return h(t,[]),e.length>0?o.filter(y=>{let a=t;for(let d of y)if(Array.isArray(a)&&typeof d=="number")a=a[d];else if(a&&typeof a=="object"&&typeof d=="string")a=a[d];else return!1;return p(a,e[0],n).some(i)}):o}case"leaf_paths":{let o=[],h=(y,a)=>{if(y===null||typeof y!="object")o.push(a);else if(Array.isArray(y))for(let l=0;l<y.length;l++)h(y[l],[...a,l]);else for(let l of Object.keys(y))h(y[l],[...a,l])};return h(t,[]),o}default:return null}}function Z(t,r,e,n,p,i){switch(r){case"IN":{if(e.length===0)return[!1];if(e.length===1){let c=p(t,e[0],n);for(let o of c)if(i(t,o))return[!0];return[!1]}let u=p(t,e[0],n),f=p(t,e[1],n),s=new Set(f.map(c=>JSON.stringify(c)));for(let c of u)if(s.has(JSON.stringify(c)))return[!0];return[!1]}case"INDEX":{if(e.length===0)return[{}];if(e.length===1){let s=p(t,e[0],n),c={};for(let o of s){let h=String(o);c[h]=o}return[c]}if(e.length===2){let s=p(t,e[0],n),c={};for(let o of s){let h=p(o,e[1],n);if(h.length>0){let y=String(h[0]);c[y]=o}}return[c]}let u=p(t,e[0],n),f={};for(let s of u){let c=p(s,e[1],n),o=p(s,e[2],n);if(c.length>0&&o.length>0){let h=String(c[0]);f[h]=o[0]}}return[f]}case"JOIN":{if(e.length<2)return[null];let u=p(t,e[0],n)[0];if(!u||typeof u!="object"||Array.isArray(u))return[null];let f=u;if(!Array.isArray(t))return[null];let s=[];for(let c of t){let o=p(c,e[1],n),h=o.length>0?String(o[0]):"",y=h in f?f[h]:null;s.push([c,y])}return[s]}default:return null}}function z(t,r,e,n,p){switch(r){case"join":{if(!Array.isArray(t))return[null];let i=e.length>0?p(t,e[0],n):[""];for(let u of t)if(Array.isArray(u)||u!==null&&typeof u=="object")throw new Error("cannot join: contains arrays or objects");return i.map(u=>t.map(f=>f===null?"":typeof f=="string"?f:String(f)).join(String(u)))}case"split":{if(typeof t!="string"||e.length===0)return[null];let i=p(t,e[0],n),u=String(i[0]);return[t.split(u)]}case"splits":{if(typeof t!="string"||e.length===0)return[];let i=p(t,e[0],n),u=String(i[0]);try{let f=e.length>1?String(p(t,e[1],n)[0]):"g",s=new RegExp(u,f.includes("g")?f:`${f}g`);return t.split(s)}catch{return[]}}case"scan":{if(typeof t!="string"||e.length===0)return[];let i=p(t,e[0],n),u=String(i[0]);try{let f=e.length>1?String(p(t,e[1],n)[0]):"",s=new RegExp(u,f.includes("g")?f:`${f}g`);return[...t.matchAll(s)].map(o=>o.length>1?o.slice(1):o[0])}catch{return[]}}case"test":{if(typeof t!="string"||e.length===0)return[!1];let i=p(t,e[0],n),u=String(i[0]);try{let f=e.length>1?String(p(t,e[1],n)[0]):"";return[new RegExp(u,f).test(t)]}catch{return[!1]}}case"match":{if(typeof t!="string"||e.length===0)return[null];let i=p(t,e[0],n),u=String(i[0]);try{let f=e.length>1?String(p(t,e[1],n)[0]):"",c=new RegExp(u,`${f}d`).exec(t);if(!c)return[];let o=c.indices;return[{offset:c.index,length:c[0].length,string:c[0],captures:c.slice(1).map((h,y)=>({offset:o?.[y+1]?.[0]??null,length:h?.length??0,string:h??"",name:null}))}]}catch{return[null]}}case"capture":{if(typeof t!="string"||e.length===0)return[null];let i=p(t,e[0],n),u=String(i[0]);try{let f=e.length>1?String(p(t,e[1],n)[0]):"",s=new RegExp(u,f),c=t.match(s);return!c||!c.groups?[{}]:[c.groups]}catch{return[null]}}case"sub":{if(typeof t!="string"||e.length<2)return[null];let i=p(t,e[0],n),u=p(t,e[1],n),f=String(i[0]),s=String(u[0]);try{let c=e.length>2?String(p(t,e[2],n)[0]):"";return[t.replace(new RegExp(f,c),s)]}catch{return[t]}}case"gsub":{if(typeof t!="string"||e.length<2)return[null];let i=p(t,e[0],n),u=p(t,e[1],n),f=String(i[0]),s=String(u[0]);try{let c=e.length>2?String(p(t,e[2],n)[0]):"g",o=c.includes("g")?c:`${c}g`;return[t.replace(new RegExp(f,o),s)]}catch{return[t]}}case"ascii_downcase":return typeof t=="string"?[t.replace(/[A-Z]/g,i=>String.fromCharCode(i.charCodeAt(0)+32))]:[null];case"ascii_upcase":return typeof t=="string"?[t.replace(/[a-z]/g,i=>String.fromCharCode(i.charCodeAt(0)-32))]:[null];case"ltrimstr":{if(typeof t!="string"||e.length===0)return[t];let i=p(t,e[0],n),u=String(i[0]);return[t.startsWith(u)?t.slice(u.length):t]}case"rtrimstr":{if(typeof t!="string"||e.length===0)return[t];let i=p(t,e[0],n),u=String(i[0]);return u===""?[t]:[t.endsWith(u)?t.slice(0,-u.length):t]}case"trimstr":{if(typeof t!="string"||e.length===0)return[t];let i=p(t,e[0],n),u=String(i[0]);if(u==="")return[t];let f=t;return f.startsWith(u)&&(f=f.slice(u.length)),f.endsWith(u)&&(f=f.slice(0,-u.length)),[f]}case"trim":if(typeof t=="string")return[t.trim()];throw new Error("trim input must be a string");case"ltrim":if(typeof t=="string")return[t.trimStart()];throw new Error("trim input must be a string");case"rtrim":if(typeof t=="string")return[t.trimEnd()];throw new Error("trim input must be a string");case"startswith":{if(typeof t!="string"||e.length===0)return[!1];let i=p(t,e[0],n);return[t.startsWith(String(i[0]))]}case"endswith":{if(typeof t!="string"||e.length===0)return[!1];let i=p(t,e[0],n);return[t.endsWith(String(i[0]))]}case"ascii":return typeof t=="string"&&t.length>0?[t.charCodeAt(0)]:[null];case"explode":return typeof t=="string"?[Array.from(t).map(i=>i.codePointAt(0))]:[null];case"implode":if(!Array.isArray(t))throw new Error("implode input must be an array");return[t.map(f=>{if(typeof f=="string")throw new Error(`string (${JSON.stringify(f)}) can't be imploded, unicode codepoint needs to be numeric`);if(typeof f!="number"||Number.isNaN(f))throw new Error("number (null) can't be imploded, unicode codepoint needs to be numeric");let s=Math.trunc(f);return s<0||s>1114111||s>=55296&&s<=57343?String.fromCodePoint(65533):String.fromCodePoint(s)}).join("")];default:return null}}function v(t,r){switch(r){case"type":return t===null?["null"]:Array.isArray(t)?["array"]:typeof t=="boolean"?["boolean"]:typeof t=="number"?["number"]:typeof t=="string"?["string"]:typeof t=="object"?["object"]:["null"];case"infinite":return[Number.POSITIVE_INFINITY];case"nan":return[Number.NaN];case"isinfinite":return[typeof t=="number"&&!Number.isFinite(t)];case"isnan":return[typeof t=="number"&&Number.isNaN(t)];case"isnormal":return[typeof t=="number"&&Number.isFinite(t)&&t!==0];case"isfinite":return[typeof t=="number"&&Number.isFinite(t)];case"numbers":return typeof t=="number"?[t]:[];case"strings":return typeof t=="string"?[t]:[];case"booleans":return typeof t=="boolean"?[t]:[];case"nulls":return t===null?[t]:[];case"arrays":return Array.isArray(t)?[t]:[];case"objects":return t&&typeof t=="object"&&!Array.isArray(t)?[t]:[];case"iterables":return Array.isArray(t)||t&&typeof t=="object"&&!Array.isArray(t)?[t]:[];case"scalars":return!Array.isArray(t)&&!(t&&typeof t=="object")?[t]:[];case"values":return t===null?[]:[t];case"not":return t===!1||t===null?[!0]:[!1];case"null":return[null];case"true":return[!0];case"false":return[!1];case"empty":return[];default:return null}}function D(t,r,e){if(r.length===0)return e;let[n,...p]=r;if(typeof n=="number"){if(t&&typeof t=="object"&&!Array.isArray(t))throw new Error("Cannot index object with number");if(n>536870911)throw new Error("Array index too large");if(n<0)throw new Error("Out of bounds negative array index");let f=Array.isArray(t)?[...t]:[];for(;f.length<=n;)f.push(null);return f[n]=D(f[n],p,e),f}if(Array.isArray(t))throw new Error("Cannot index array with string");let i=t&&typeof t=="object"&&!Array.isArray(t)?{...t}:{};return i[n]=D(i[n],p,e),i}function B(t,r){if(r.length===0)return null;if(r.length===1){let p=r[0];if(Array.isArray(t)&&typeof p=="number"){let i=[...t];return i.splice(p,1),i}if(t&&typeof t=="object"&&!Array.isArray(t)){let i={...t};return delete i[String(p)],i}return t}let[e,...n]=r;if(Array.isArray(t)&&typeof e=="number"){let p=[...t];return p[e]=B(p[e],n),p}if(t&&typeof t=="object"&&!Array.isArray(t)){let p={...t};return p[String(e)]=B(p[String(e)],n),p}return t}var R=class t extends Error{label;partialResults;constructor(r,e=[]){super(`break ${r}`),this.label=r,this.partialResults=e,this.name="BreakError"}withPrependedResults(r){return new t(this.label,[...r,...this.partialResults])}},L=class extends Error{value;constructor(r){super(typeof r=="string"?r:JSON.stringify(r)),this.value=r,this.name="JqError"}},yt=1e4,it=2e3,at={floor:Math.floor,ceil:Math.ceil,round:Math.round,sqrt:Math.sqrt,log:Math.log,log10:Math.log10,log2:Math.log2,exp:Math.exp,sin:Math.sin,cos:Math.cos,tan:Math.tan,asin:Math.asin,acos:Math.acos,atan:Math.atan,sinh:Math.sinh,cosh:Math.cosh,tanh:Math.tanh,asinh:Math.asinh,acosh:Math.acosh,atanh:Math.atanh,cbrt:Math.cbrt,expm1:Math.expm1,log1p:Math.log1p,trunc:Math.trunc};function lt(t){return{vars:new Map,limits:{maxIterations:t?.limits?.maxIterations??yt,maxDepth:t?.limits?.maxDepth??it},env:t?.env}}function _(t,r,e){let n=new Map(t.vars);return n.set(r,e),{vars:n,limits:t.limits,env:t.env,root:t.root,currentPath:t.currentPath,funcs:t.funcs,labels:t.labels}}function I(t,r,e){switch(r.type){case"var":return _(t,r.name,e);case"array":{if(!Array.isArray(e))return null;let n=t;for(let p=0;p<r.elements.length;p++){let i=r.elements[p],u=p<e.length?e[p]:null,f=I(n,i,u);if(f===null)return null;n=f}return n}case"object":{if(e===null||typeof e!="object"||Array.isArray(e))return null;let n=e,p=t;for(let i of r.fields){let u;if(typeof i.key=="string")u=i.key;else{let c=m(e,i.key,t);if(c.length===0)return null;u=String(c[0])}let f=u in n?n[u]:null;i.keyVar&&(p=_(p,i.keyVar,f));let s=I(p,i.pattern,f);if(s===null)return null;p=s}return p}}}function mt(t,r){let e=t;for(let n of r)if(e&&typeof e=="object")e=e[n];else return;return e}function w(t){if(t.type==="Identity")return[];if(t.type==="Field"){let r=t.base?w(t.base):[];return r===null?null:[...r,t.name]}if(t.type==="Index"&&t.index.type==="Literal"){let r=t.base?w(t.base):[];if(r===null)return null;let e=t.index.value;return typeof e=="number"||typeof e=="string"?[...r,e]:null}if(t.type==="Pipe"){let r=w(t.left);return r===null?null:tt(r,t.right)}if(t.type==="Call"){if(t.name==="parent"||t.name==="root")return null;if(t.name==="first"&&t.args.length===0)return[0];if(t.name==="last"&&t.args.length===0)return[-1]}return null}function tt(t,r){if(r.type==="Call"){if(r.name==="parent"){let e=1;if(r.args.length>0&&r.args[0].type==="Literal"){let n=r.args[0].value;typeof n=="number"&&(e=n)}if(e>=0)return t.slice(0,Math.max(0,t.length-e));{let n=-e-1;return t.slice(0,Math.min(n,t.length))}}if(r.name==="root")return[]}if(r.type==="Field"){let e=w(r);if(e!==null)return[...t,...e]}if(r.type==="Index"&&r.index.type==="Literal"){let e=w(r);if(e!==null)return[...t,...e]}if(r.type==="Pipe"){let e=tt(t,r.left);return e===null?null:tt(e,r.right)}return r.type==="Identity"?t:null}function nt(t,r,e){if(r.type==="Comma"){let n=[];try{n.push(...m(t,r.left,e))}catch(p){if(p instanceof O)throw p;if(n.length>0)return n;throw new Error("evaluation failed")}try{n.push(...m(t,r.right,e))}catch(p){if(p instanceof O)throw p;return n}return n}return m(t,r,e)}function m(t,r,e){let n=e&&"vars"in e?e:lt(e);switch(n.root===void 0&&(n={...n,root:t,currentPath:[]}),r.type){case"Identity":return[t];case"Field":return(r.base?m(t,r.base,n):[t]).flatMap(i=>{if(i&&typeof i=="object"&&!Array.isArray(i)){let f=i[r.name];return[f===void 0?null:f]}if(i===null)return[null];let u=Array.isArray(i)?"array":typeof i;throw new Error(`Cannot index ${u} with string "${r.name}"`)});case"Index":return(r.base?m(t,r.base,n):[t]).flatMap(i=>m(i,r.index,n).flatMap(f=>{if(typeof f=="number"&&Array.isArray(i)){if(Number.isNaN(f))return[null];let s=Math.trunc(f),c=s<0?i.length+s:s;return c>=0&&c<i.length?[i[c]]:[null]}return typeof f=="string"&&i&&typeof i=="object"&&!Array.isArray(i)?[i[f]]:[null]}));case"Slice":return(r.base?m(t,r.base,n):[t]).flatMap(i=>{if(i===null)return[null];if(!Array.isArray(i)&&typeof i!="string")throw new Error(`Cannot slice ${typeof i} (${JSON.stringify(i)})`);let u=i.length,f=r.start?m(t,r.start,n):[0],s=r.end?m(t,r.end,n):[u];return f.flatMap(c=>s.map(o=>{let h=c,y=o,a=Number.isNaN(h)?0:Number.isInteger(h)?h:Math.floor(h),l=Number.isNaN(y)?u:Number.isInteger(y)?y:Math.ceil(y),d=st(a,u),g=st(l,u);return Array.isArray(i),i.slice(d,g)}))});case"Iterate":return(r.base?m(t,r.base,n):[t]).flatMap(i=>Array.isArray(i)?i:i&&typeof i=="object"?Object.values(i):[]);case"Pipe":{let p=m(t,r.left,n),i=w(r.left),u=[];for(let f of p)try{if(i!==null){let s={...n,currentPath:[...n.currentPath??[],...i]};u.push(...m(f,r.right,s))}else u.push(...m(f,r.right,n))}catch(s){throw s instanceof R?s.withPrependedResults(u):s}return u}case"Comma":{let p=m(t,r.left,n),i=m(t,r.right,n);return[...p,...i]}case"Literal":return[r.value];case"Array":return r.elements?[m(t,r.elements,n)]:[[]];case"Object":{let p=[{}];for(let i of r.entries){let u=typeof i.key=="string"?[i.key]:m(t,i.key,n),f=m(t,i.value,n),s=[];for(let c of p)for(let o of u){if(typeof o!="string"){let h=o===null?"null":Array.isArray(o)?"array":typeof o;throw new Error(`Cannot use ${h} (${JSON.stringify(o)}) as object key`)}for(let h of f)s.push({...c,[o]:h})}p.length=0,p.push(...s)}return p}case"Paren":return m(t,r.expr,n);case"BinaryOp":return gt(t,r.op,r.left,r.right,n);case"UnaryOp":return m(t,r.operand,n).map(i=>{if(r.op==="-"){if(typeof i=="number")return-i;if(typeof i=="string"){let u=f=>f.length>5?`"${f.slice(0,3)}...`:JSON.stringify(f);throw new Error(`string (${u(i)}) cannot be negated`)}return null}return r.op==="not"?!E(i):null});case"Cond":return m(t,r.cond,n).flatMap(i=>{if(E(i))return m(t,r.then,n);for(let u of r.elifs)if(m(t,u.cond,n).some(E))return m(t,u.then,n);return r.else?m(t,r.else,n):[t]});case"Try":try{return m(t,r.body,n)}catch(p){if(r.catch){let i=p instanceof L?p.value:p instanceof Error?p.message:String(p);return m(i,r.catch,n)}return[]}case"Call":return ot(t,r.name,r.args,n);case"VarBind":return m(t,r.value,n).flatMap(i=>{let u=null,f=[];r.pattern?f.push(r.pattern):r.name&&f.push({type:"var",name:r.name}),r.alternatives&&f.push(...r.alternatives);for(let s of f)if(u=I(n,s,i),u!==null)break;return u===null?[]:m(t,r.body,u)});case"VarRef":{if(r.name==="$ENV")return[n.env??{}];let p=n.vars.get(r.name);return p!==void 0?[p]:[null]}case"Recurse":{let p=[],i=new WeakSet,u=f=>{if(f&&typeof f=="object"){if(i.has(f))return;i.add(f)}if(p.push(f),Array.isArray(f))for(let s of f)u(s);else if(f&&typeof f=="object")for(let s of Object.keys(f))u(f[s])};return u(t),p}case"Optional":try{return m(t,r.expr,n)}catch{return[]}case"StringInterp":return[r.parts.map(i=>typeof i=="string"?i:m(t,i,n).map(f=>typeof f=="string"?f:JSON.stringify(f)).join("")).join("")];case"UpdateOp":return[dt(t,r.path,r.op,r.value,n)];case"Reduce":{let p=m(t,r.expr,n),i=m(t,r.init,n)[0],u=n.limits.maxDepth??it;for(let f of p){let s;if(r.pattern){if(s=I(n,r.pattern,f),s===null)continue}else s=_(n,r.varName,f);if(i=m(i,r.update,s)[0],T(i,u+1)>u)return[null]}return[i]}case"Foreach":{let p=m(t,r.expr,n),i=m(t,r.init,n)[0],u=[];for(let f of p)try{let s;if(r.pattern){if(s=I(n,r.pattern,f),s===null)continue}else s=_(n,r.varName,f);if(i=m(i,r.update,s)[0],r.extract){let c=m(i,r.extract,s);u.push(...c)}else u.push(i)}catch(s){throw s instanceof R?s.withPrependedResults(u):s}return u}case"Label":try{return m(t,r.body,{...n,labels:new Set([...n.labels??[],r.name])})}catch(p){if(p instanceof R&&p.label===r.name)return p.partialResults;throw p}case"Break":throw new R(r.name);case"Def":{let p=new Map(n.funcs??[]),i=`${r.name}/${r.params.length}`;p.set(i,{params:r.params,body:r.funcBody,closure:new Map(n.funcs??[])});let u={...n,funcs:p};return m(t,r.body,u)}default:{let p=r;throw new Error(`Unknown AST node type: ${p.type}`)}}}function st(t,r){return t<0?Math.max(0,r+t):Math.min(t,r)}function dt(t,r,e,n,p){function i(s,c){switch(e){case"=":return c;case"|=":return m(s,n,p)[0]??null;case"+=":return typeof s=="number"&&typeof c=="number"||typeof s=="string"&&typeof c=="string"?s+c:Array.isArray(s)&&Array.isArray(c)?[...s,...c]:s&&c&&typeof s=="object"&&typeof c=="object"?{...s,...c}:c;case"-=":return typeof s=="number"&&typeof c=="number"?s-c:s;case"*=":return typeof s=="number"&&typeof c=="number"?s*c:s;case"/=":return typeof s=="number"&&typeof c=="number"?s/c:s;case"%=":return typeof s=="number"&&typeof c=="number"?s%c:s;case"//=":return s===null||s===!1?c:s;default:return c}}function u(s,c,o){switch(c.type){case"Identity":return o(s);case"Field":{if(c.base)return u(s,c.base,h=>{if(h&&typeof h=="object"&&!Array.isArray(h)){let y={...h};return y[c.name]=o(y[c.name]),y}return h});if(s&&typeof s=="object"&&!Array.isArray(s)){let h={...s};return h[c.name]=o(h[c.name]),h}return s}case"Index":{let y=m(t,c.index,p)[0];if(typeof y=="number"&&Number.isNaN(y))throw new Error("Cannot set array element at NaN index");if(typeof y=="number"&&!Number.isInteger(y)&&(y=Math.trunc(y)),c.base)return u(s,c.base,a=>{if(typeof y=="number"&&Array.isArray(a)){let l=[...a],d=y<0?l.length+y:y;if(d>=0){for(;l.length<=d;)l.push(null);l[d]=o(l[d])}return l}if(typeof y=="string"&&a&&typeof a=="object"&&!Array.isArray(a)){let l={...a};return l[y]=o(l[y]),l}return a});if(typeof y=="number"){if(y>536870911)throw new Error("Array index too large");if(y<0&&(!s||!Array.isArray(s)))throw new Error("Out of bounds negative array index");if(Array.isArray(s)){let l=[...s],d=y<0?l.length+y:y;if(d>=0){for(;l.length<=d;)l.push(null);l[d]=o(l[d])}return l}if(s==null){let l=[];for(;l.length<=y;)l.push(null);return l[y]=o(null),l}return s}if(typeof y=="string"&&s&&typeof s=="object"&&!Array.isArray(s)){let a={...s};return a[y]=o(a[y]),a}return s}case"Iterate":{let h=y=>{if(Array.isArray(y))return y.map(a=>o(a));if(y&&typeof y=="object"){let a={};for(let[l,d]of Object.entries(y))a[l]=o(d);return a}return y};return c.base?u(s,c.base,h):h(s)}case"Pipe":{let h=u(s,c.left,y=>y);return u(h,c.right,o)}default:return o(s)}}return u(t,r,s=>{if(e==="|=")return i(s,s);let c=m(t,n,p);return i(s,c[0]??null)})}function At(t,r,e){function n(i,u,f){switch(u.type){case"Identity":return f;case"Field":{if(u.base){let s=m(i,u.base,e)[0],c=n(s,{type:"Field",name:u.name},f);return n(i,u.base,c)}return i&&typeof i=="object"&&!Array.isArray(i)?{...i,[u.name]:f}:i}case"Index":{if(u.base){let o=m(i,u.base,e)[0],h=n(o,{type:"Index",index:u.index},f);return n(i,u.base,h)}let c=m(t,u.index,e)[0];if(typeof c=="number"&&Array.isArray(i)){let o=[...i],h=c<0?o.length+c:c;return h>=0&&h<o.length&&(o[h]=f),o}return typeof c=="string"&&i&&typeof i=="object"&&!Array.isArray(i)?{...i,[c]:f}:i}default:return i}}function p(i,u){switch(u.type){case"Identity":return null;case"Field":{if(u.base){let s=m(i,u.base,e)[0];if(s==null)return i;let c=p(s,{type:"Field",name:u.name});return n(i,u.base,c)}if(i&&typeof i=="object"&&!Array.isArray(i)){let s={...i};return delete s[u.name],s}return i}case"Index":{if(u.base){let o=m(i,u.base,e)[0];if(o==null)return i;let h=p(o,{type:"Index",index:u.index});return n(i,u.base,h)}let c=m(t,u.index,e)[0];if(typeof c=="number"&&Array.isArray(i)){let o=[...i],h=c<0?o.length+c:c;return h>=0&&h<o.length&&o.splice(h,1),o}if(typeof c=="string"&&i&&typeof i=="object"&&!Array.isArray(i)){let o={...i};return delete o[c],o}return i}case"Iterate":return Array.isArray(i)?[]:i&&typeof i=="object"?{}:i;case"Pipe":{let o=function(a,l,d){switch(l.type){case"Identity":return d;case"Field":return a&&typeof a=="object"&&!Array.isArray(a)?{...a,[l.name]:d}:a;case"Index":{let A=m(t,l.index,e)[0];if(typeof A=="number"&&Array.isArray(a)){let b=[...a],C=A<0?b.length+A:A;return C>=0&&C<b.length&&(b[C]=d),b}return typeof A=="string"&&a&&typeof a=="object"&&!Array.isArray(a)?{...a,[A]:d}:a}case"Pipe":{let g=m(a,l.left,e)[0],A=o(g,l.right,d);return o(a,l.left,A)}default:return a}};var f=o;let s=u.left,c=u.right,h=m(i,s,e)[0];if(h==null)return i;let y=p(h,c);return o(i,s,y)}default:return i}}return p(t,r)}function gt(t,r,e,n,p){if(r==="and")return m(t,e,p).flatMap(s=>E(s)?m(t,n,p).map(o=>E(o)):[!1]);if(r==="or")return m(t,e,p).flatMap(s=>E(s)?[!0]:m(t,n,p).map(o=>E(o)));if(r==="//"){let s=m(t,e,p).filter(c=>c!=null&&c!==!1);return s.length>0?s:m(t,n,p)}let i=m(t,e,p),u=m(t,n,p);return i.flatMap(f=>u.map(s=>{switch(r){case"+":return f===null?s:s===null?f:typeof f=="number"&&typeof s=="number"||typeof f=="string"&&typeof s=="string"?f+s:Array.isArray(f)&&Array.isArray(s)?[...f,...s]:f&&s&&typeof f=="object"&&typeof s=="object"&&!Array.isArray(f)&&!Array.isArray(s)?{...f,...s}:null;case"-":if(typeof f=="number"&&typeof s=="number")return f-s;if(Array.isArray(f)&&Array.isArray(s)){let c=new Set(s.map(o=>JSON.stringify(o)));return f.filter(o=>!c.has(JSON.stringify(o)))}if(typeof f=="string"&&typeof s=="string"){let c=o=>o.length>10?`"${o.slice(0,10)}...`:JSON.stringify(o);throw new Error(`string (${c(f)}) and string (${c(s)}) cannot be subtracted`)}return null;case"*":return typeof f=="number"&&typeof s=="number"?f*s:typeof f=="string"&&typeof s=="number"?f.repeat(s):f&&s&&typeof f=="object"&&typeof s=="object"&&!Array.isArray(f)&&!Array.isArray(s)?H(f,s):null;case"/":if(typeof f=="number"&&typeof s=="number"){if(s===0)throw new Error(`number (${f}) and number (${s}) cannot be divided because the divisor is zero`);return f/s}return typeof f=="string"&&typeof s=="string"?f.split(s):null;case"%":if(typeof f=="number"&&typeof s=="number"){if(s===0)throw new Error(`number (${f}) and number (${s}) cannot be divided (remainder) because the divisor is zero`);return!Number.isFinite(f)&&!Number.isNaN(f)?!Number.isFinite(s)&&!Number.isNaN(s)&&f<0&&s>0?-1:0:f%s}return null;case"==":return S(f,s);case"!=":return!S(f,s);case"<":return M(f,s)<0;case"<=":return M(f,s)<=0;case">":return M(f,s)>0;case">=":return M(f,s)>=0;default:return null}}))}function ot(t,r,e,n){let p=at[r];if(p)return typeof t=="number"?[p(t)]:[null];let i=G(t,r,e,n,m);if(i!==null)return i;let u=z(t,r,e,n,m);if(u!==null)return u;let f=J(t,r,e,n,m);if(f!==null)return f;let s=Y(t,r,n.limits.maxDepth);if(s!==null)return s;let c=v(t,r);if(c!==null)return c;let o=W(t,r,e,n,m);if(o!==null)return o;let h=K(t,r,e,n,m,nt,j,E,P,O);if(h!==null)return h;let y=Q(t,r,e,n,m,E,D,B,At,U);if(y!==null)return y;let a=q(t,r,e,n,m,S);if(a!==null)return a;let l=V(t,r,e,n,m,nt,E,O);if(l!==null)return l;let d=X(t,r,e,n,m,E,mt,ot);if(d!==null)return d;let g=Z(t,r,e,n,m,S);if(g!==null)return g;switch(r){case"builtins":return[["add/0","all/0","all/1","all/2","any/0","any/1","any/2","arrays/0","ascii/0","ascii_downcase/0","ascii_upcase/0","booleans/0","bsearch/1","builtins/0","combinations/0","combinations/1","contains/1","debug/0","del/1","delpaths/1","empty/0","env/0","error/0","error/1","explode/0","first/0","first/1","flatten/0","flatten/1","floor/0","from_entries/0","fromdate/0","fromjson/0","getpath/1","gmtime/0","group_by/1","gsub/2","gsub/3","has/1","implode/0","IN/1","IN/2","INDEX/1","INDEX/2","index/1","indices/1","infinite/0","inside/1","isempty/1","isnan/0","isnormal/0","isvalid/1","iterables/0","join/1","keys/0","keys_unsorted/0","last/0","last/1","length/0","limit/2","ltrimstr/1","map/1","map_values/1","match/1","match/2","max/0","max_by/1","min/0","min_by/1","mktime/0","modulemeta/1","nan/0","not/0","nth/1","nth/2","null/0","nulls/0","numbers/0","objects/0","path/1","paths/0","paths/1","pick/1","range/1","range/2","range/3","recurse/0","recurse/1","recurse_down/0","repeat/1","reverse/0","rindex/1","rtrimstr/1","scalars/0","scan/1","scan/2","select/1","setpath/2","skip/2","sort/0","sort_by/1","split/1","splits/1","splits/2","sqrt/0","startswith/1","strftime/1","strings/0","strptime/1","sub/2","sub/3","test/1","test/2","to_entries/0","toboolean/0","todate/0","tojson/0","tostream/0","fromstream/1","truncate_stream/1","tonumber/0","tostring/0","transpose/0","trim/0","ltrim/0","rtrim/0","type/0","unique/0","unique_by/1","until/2","utf8bytelength/0","values/0","walk/1","while/2","with_entries/1"]];case"error":{let A=e.length>0?m(t,e[0],n)[0]:t;throw new L(A)}case"env":return[n.env??{}];case"debug":return[t];case"input_line_number":return[1];default:{let A=`${r}/${e.length}`,b=n.funcs?.get(A);if(b){let C=b.closure??n.funcs??new Map,$=new Map(C);$.set(A,b);for(let x=0;x<b.params.length;x++){let pt=b.params[x],rt=e[x];if(rt){let k=m(t,rt,n),N;if(k.length===0)N={type:"Call",name:"empty",args:[]};else if(k.length===1)N={type:"Literal",value:k[0]};else{N={type:"Literal",value:k[k.length-1]};for(let F=k.length-2;F>=0;F--)N={type:"Comma",left:{type:"Literal",value:k[F]},right:N}}$.set(`${pt}/0`,{params:[],body:N})}}let ct={...n,funcs:$};return m(t,b.body,ct)}throw new Error(`Unknown function: ${r}`)}}}function U(t,r,e,n,p){if(r.type==="Comma"){let f=r;U(t,f.left,e,n,p),U(t,f.right,e,n,p);return}let i=w(r);if(i!==null){p.push([...n,...i]);return}if(r.type==="Iterate"){if(Array.isArray(t))for(let f=0;f<t.length;f++)p.push([...n,f]);else if(t&&typeof t=="object")for(let f of Object.keys(t))p.push([...n,f]);return}if(r.type==="Recurse"){let f=(s,c)=>{if(p.push([...n,...c]),s&&typeof s=="object")if(Array.isArray(s))for(let o=0;o<s.length;o++)f(s[o],[...c,o]);else for(let o of Object.keys(s))f(s[o],[...c,o])};f(t,[]);return}if(r.type==="Pipe"){let f=w(r.left);if(f!==null){let s=m(t,r.left,e);for(let c of s)U(c,r.right,e,[...n,...f],p);return}}m(t,r,e).length>0&&p.push(n)}var bt={and:"AND",or:"OR",not:"NOT",if:"IF",then:"THEN",elif:"ELIF",else:"ELSE",end:"END",as:"AS",try:"TRY",catch:"CATCH",true:"TRUE",false:"FALSE",null:"NULL",reduce:"REDUCE",foreach:"FOREACH",label:"LABEL",break:"BREAK",def:"DEF"};function ft(t){let r=[],e=0,n=(c=0)=>t[e+c],p=()=>t[e++],i=()=>e>=t.length,u=c=>c>="0"&&c<="9",f=c=>c>="a"&&c<="z"||c>="A"&&c<="Z"||c==="_",s=c=>f(c)||u(c);for(;!i();){let c=e,o=p();if(!(o===" "||o===" "||o===`
|
|
4
|
-
`||o==="\r")){if(o==="#"){for(;!i()&&n()!==`
|
|
5
|
-
`;)p();continue}if(o==="."&&n()==="."){p(),r.push({type:"DOTDOT",pos:c});continue}if(o==="="&&n()==="="){p(),r.push({type:"EQ",pos:c});continue}if(o==="!"&&n()==="="){p(),r.push({type:"NE",pos:c});continue}if(o==="<"&&n()==="="){p(),r.push({type:"LE",pos:c});continue}if(o===">"&&n()==="="){p(),r.push({type:"GE",pos:c});continue}if(o==="/"&&n()==="/"){p(),n()==="="?(p(),r.push({type:"UPDATE_ALT",pos:c})):r.push({type:"ALT",pos:c});continue}if(o==="+"&&n()==="="){p(),r.push({type:"UPDATE_ADD",pos:c});continue}if(o==="-"&&n()==="="){p(),r.push({type:"UPDATE_SUB",pos:c});continue}if(o==="*"&&n()==="="){p(),r.push({type:"UPDATE_MUL",pos:c});continue}if(o==="/"&&n()==="="){p(),r.push({type:"UPDATE_DIV",pos:c});continue}if(o==="%"&&n()==="="){p(),r.push({type:"UPDATE_MOD",pos:c});continue}if(o==="="&&n()!=="="){r.push({type:"ASSIGN",pos:c});continue}if(o==="."){r.push({type:"DOT",pos:c});continue}if(o==="|"){n()==="="?(p(),r.push({type:"UPDATE_PIPE",pos:c})):r.push({type:"PIPE",pos:c});continue}if(o===","){r.push({type:"COMMA",pos:c});continue}if(o===":"){r.push({type:"COLON",pos:c});continue}if(o===";"){r.push({type:"SEMICOLON",pos:c});continue}if(o==="("){r.push({type:"LPAREN",pos:c});continue}if(o===")"){r.push({type:"RPAREN",pos:c});continue}if(o==="["){r.push({type:"LBRACKET",pos:c});continue}if(o==="]"){r.push({type:"RBRACKET",pos:c});continue}if(o==="{"){r.push({type:"LBRACE",pos:c});continue}if(o==="}"){r.push({type:"RBRACE",pos:c});continue}if(o==="?"){r.push({type:"QUESTION",pos:c});continue}if(o==="+"){r.push({type:"PLUS",pos:c});continue}if(o==="-"){r.push({type:"MINUS",pos:c});continue}if(o==="*"){r.push({type:"STAR",pos:c});continue}if(o==="/"){r.push({type:"SLASH",pos:c});continue}if(o==="%"){r.push({type:"PERCENT",pos:c});continue}if(o==="<"){r.push({type:"LT",pos:c});continue}if(o===">"){r.push({type:"GT",pos:c});continue}if(u(o)){let h=o;for(;!i()&&(u(n())||n()==="."||n()==="e"||n()==="E");)(n()==="e"||n()==="E")&&(t[e+1]==="+"||t[e+1]==="-")&&(h+=p()),h+=p();r.push({type:"NUMBER",value:Number(h),pos:c});continue}if(o==='"'){let h="";for(;!i()&&n()!=='"';)if(n()==="\\"){if(p(),i())break;let y=p();switch(y){case"n":h+=`
|
|
6
|
-
`;break;case"r":h+="\r";break;case"t":h+=" ";break;case"\\":h+="\\";break;case'"':h+='"';break;case"(":h+="\\(";break;default:h+=y}}else h+=p();i()||p(),r.push({type:"STRING",value:h,pos:c});continue}if(f(o)||o==="$"||o==="@"){let h=o;for(;!i()&&s(n());)h+=p();let y=bt[h];y?r.push({type:y,pos:c}):r.push({type:"IDENT",value:h,pos:c});continue}throw new Error(`Unexpected character '${o}' at position ${c}`)}}return r.push({type:"EOF",pos:e}),r}var et=class t{tokens;pos=0;constructor(r){this.tokens=r}peek(r=0){return this.tokens[this.pos+r]??{type:"EOF",pos:-1}}advance(){return this.tokens[this.pos++]}check(r){return this.peek().type===r}match(...r){for(let e of r)if(this.check(e))return this.advance();return null}expect(r,e){if(!this.check(r))throw new Error(`${e} at position ${this.peek().pos}, got ${this.peek().type}`);return this.advance()}parse(){let r=this.parseExpr();if(!this.check("EOF"))throw new Error(`Unexpected token ${this.peek().type} at position ${this.peek().pos}`);return r}parseExpr(){return this.parsePipe()}parsePattern(){if(this.match("LBRACKET")){let n=[];if(!this.check("RBRACKET"))for(n.push(this.parsePattern());this.match("COMMA")&&!this.check("RBRACKET");)n.push(this.parsePattern());return this.expect("RBRACKET","Expected ']' after array pattern"),{type:"array",elements:n}}if(this.match("LBRACE")){let n=[];if(!this.check("RBRACE"))for(n.push(this.parsePatternField());this.match("COMMA")&&!this.check("RBRACE");)n.push(this.parsePatternField());return this.expect("RBRACE","Expected '}' after object pattern"),{type:"object",fields:n}}let r=this.expect("IDENT","Expected variable name in pattern"),e=r.value;if(!e.startsWith("$"))throw new Error(`Variable name must start with $ at position ${r.pos}`);return{type:"var",name:e}}parsePatternField(){if(this.match("LPAREN")){let e=this.parseExpr();this.expect("RPAREN","Expected ')' after computed key"),this.expect("COLON","Expected ':' after computed key");let n=this.parsePattern();return{key:e,pattern:n}}let r=this.peek();if(r.type==="IDENT"){let e=r.value;if(e.startsWith("$")){if(this.advance(),this.match("COLON")){let n=this.parsePattern();return{key:e.slice(1),pattern:n,keyVar:e}}return{key:e.slice(1),pattern:{type:"var",name:e}}}if(this.advance(),this.match("COLON")){let n=this.parsePattern();return{key:e,pattern:n}}return{key:e,pattern:{type:"var",name:`$${e}`}}}throw new Error(`Expected field name in object pattern at position ${r.pos}`)}parsePipe(){let r=this.parseComma();for(;this.match("PIPE");){let e=this.parseComma();r={type:"Pipe",left:r,right:e}}return r}parseComma(){let r=this.parseVarBind();for(;this.match("COMMA");){let e=this.parseVarBind();r={type:"Comma",left:r,right:e}}return r}parseVarBind(){let r=this.parseUpdate();if(this.match("AS")){let e=this.parsePattern(),n=[];for(;this.check("QUESTION")&&this.peekAhead(1)?.type==="ALT";)this.advance(),this.advance(),n.push(this.parsePattern());this.expect("PIPE","Expected '|' after variable binding");let p=this.parseExpr();return e.type==="var"&&n.length===0?{type:"VarBind",name:e.name,value:r,body:p}:{type:"VarBind",name:e.type==="var"?e.name:"",value:r,body:p,pattern:e.type!=="var"?e:void 0,alternatives:n.length>0?n:void 0}}return r}peekAhead(r){let e=this.pos+r;return e<this.tokens.length?this.tokens[e]:void 0}parseUpdate(){let r=this.parseAlt(),e={ASSIGN:"=",UPDATE_ADD:"+=",UPDATE_SUB:"-=",UPDATE_MUL:"*=",UPDATE_DIV:"/=",UPDATE_MOD:"%=",UPDATE_ALT:"//=",UPDATE_PIPE:"|="},n=this.match("ASSIGN","UPDATE_ADD","UPDATE_SUB","UPDATE_MUL","UPDATE_DIV","UPDATE_MOD","UPDATE_ALT","UPDATE_PIPE");if(n){let p=this.parseVarBind();return{type:"UpdateOp",op:e[n.type],path:r,value:p}}return r}parseAlt(){let r=this.parseOr();for(;this.match("ALT");){let e=this.parseOr();r={type:"BinaryOp",op:"//",left:r,right:e}}return r}parseOr(){let r=this.parseAnd();for(;this.match("OR");){let e=this.parseAnd();r={type:"BinaryOp",op:"or",left:r,right:e}}return r}parseAnd(){let r=this.parseNot();for(;this.match("AND");){let e=this.parseNot();r={type:"BinaryOp",op:"and",left:r,right:e}}return r}parseNot(){return this.parseComparison()}parseComparison(){let r=this.parseAddSub(),e={EQ:"==",NE:"!=",LT:"<",LE:"<=",GT:">",GE:">="},n=this.match("EQ","NE","LT","LE","GT","GE");if(n){let p=this.parseAddSub();r={type:"BinaryOp",op:e[n.type],left:r,right:p}}return r}parseAddSub(){let r=this.parseMulDiv();for(;;)if(this.match("PLUS")){let e=this.parseMulDiv();r={type:"BinaryOp",op:"+",left:r,right:e}}else if(this.match("MINUS")){let e=this.parseMulDiv();r={type:"BinaryOp",op:"-",left:r,right:e}}else break;return r}parseMulDiv(){let r=this.parseUnary();for(;;)if(this.match("STAR")){let e=this.parseUnary();r={type:"BinaryOp",op:"*",left:r,right:e}}else if(this.match("SLASH")){let e=this.parseUnary();r={type:"BinaryOp",op:"/",left:r,right:e}}else if(this.match("PERCENT")){let e=this.parseUnary();r={type:"BinaryOp",op:"%",left:r,right:e}}else break;return r}parseUnary(){return this.match("MINUS")?{type:"UnaryOp",op:"-",operand:this.parseUnary()}:this.parsePostfix()}parsePostfix(){let r=this.parsePrimary();for(;;)if(this.match("QUESTION"))r={type:"Optional",expr:r};else if(this.check("DOT")&&(this.peek(1).type==="IDENT"||this.peek(1).type==="STRING"))this.advance(),r={type:"Field",name:this.advance().value,base:r};else if(this.check("LBRACKET"))if(this.advance(),this.match("RBRACKET"))r={type:"Iterate",base:r};else if(this.check("COLON")){this.advance();let e=this.check("RBRACKET")?void 0:this.parseExpr();this.expect("RBRACKET","Expected ']'"),r={type:"Slice",end:e,base:r}}else{let e=this.parseExpr();if(this.match("COLON")){let n=this.check("RBRACKET")?void 0:this.parseExpr();this.expect("RBRACKET","Expected ']'"),r={type:"Slice",start:e,end:n,base:r}}else this.expect("RBRACKET","Expected ']'"),r={type:"Index",index:e,base:r}}else break;return r}parsePrimary(){if(this.match("DOTDOT"))return{type:"Recurse"};if(this.match("DOT")){if(this.check("LBRACKET")){if(this.advance(),this.match("RBRACKET"))return{type:"Iterate"};if(this.check("COLON")){this.advance();let e=this.check("RBRACKET")?void 0:this.parseExpr();return this.expect("RBRACKET","Expected ']'"),{type:"Slice",end:e}}let r=this.parseExpr();if(this.match("COLON")){let e=this.check("RBRACKET")?void 0:this.parseExpr();return this.expect("RBRACKET","Expected ']'"),{type:"Slice",start:r,end:e}}return this.expect("RBRACKET","Expected ']'"),{type:"Index",index:r}}return this.check("IDENT")||this.check("STRING")?{type:"Field",name:this.advance().value}:{type:"Identity"}}if(this.match("TRUE"))return{type:"Literal",value:!0};if(this.match("FALSE"))return{type:"Literal",value:!1};if(this.match("NULL"))return{type:"Literal",value:null};if(this.check("NUMBER"))return{type:"Literal",value:this.advance().value};if(this.check("STRING")){let e=this.advance().value;return e.includes("\\(")?this.parseStringInterpolation(e):{type:"Literal",value:e}}if(this.match("LBRACKET")){if(this.match("RBRACKET"))return{type:"Array"};let r=this.parseExpr();return this.expect("RBRACKET","Expected ']'"),{type:"Array",elements:r}}if(this.match("LBRACE"))return this.parseObjectConstruction();if(this.match("LPAREN")){let r=this.parseExpr();return this.expect("RPAREN","Expected ')'"),{type:"Paren",expr:r}}if(this.match("IF"))return this.parseIf();if(this.match("TRY")){let r=this.parsePostfix(),e;return this.match("CATCH")&&(e=this.parsePostfix()),{type:"Try",body:r,catch:e}}if(this.match("REDUCE")){let r=this.parseAddSub();this.expect("AS","Expected 'as' after reduce expression");let e=this.parsePattern();this.expect("LPAREN","Expected '(' after variable");let n=this.parseExpr();this.expect("SEMICOLON","Expected ';' after init expression");let p=this.parseExpr();this.expect("RPAREN","Expected ')' after update expression");let i=e.type==="var"?e.name:"";return{type:"Reduce",expr:r,varName:i,init:n,update:p,pattern:e.type!=="var"?e:void 0}}if(this.match("FOREACH")){let r=this.parseAddSub();this.expect("AS","Expected 'as' after foreach expression");let e=this.parsePattern();this.expect("LPAREN","Expected '(' after variable");let n=this.parseExpr();this.expect("SEMICOLON","Expected ';' after init expression");let p=this.parseExpr(),i;this.match("SEMICOLON")&&(i=this.parseExpr()),this.expect("RPAREN","Expected ')' after expressions");let u=e.type==="var"?e.name:"";return{type:"Foreach",expr:r,varName:u,init:n,update:p,extract:i,pattern:e.type!=="var"?e:void 0}}if(this.match("LABEL")){let r=this.expect("IDENT","Expected label name (e.g., $out)"),e=r.value;if(!e.startsWith("$"))throw new Error(`Label name must start with $ at position ${r.pos}`);this.expect("PIPE","Expected '|' after label name");let n=this.parseExpr();return{type:"Label",name:e,body:n}}if(this.match("BREAK")){let r=this.expect("IDENT","Expected label name to break to"),e=r.value;if(!e.startsWith("$"))throw new Error(`Break label must start with $ at position ${r.pos}`);return{type:"Break",name:e}}if(this.match("DEF")){let e=this.expect("IDENT","Expected function name after def").value,n=[];if(this.match("LPAREN")){if(!this.check("RPAREN")){let u=this.expect("IDENT","Expected parameter name");for(n.push(u.value);this.match("SEMICOLON");){let f=this.expect("IDENT","Expected parameter name");n.push(f.value)}}this.expect("RPAREN","Expected ')' after parameters")}this.expect("COLON","Expected ':' after function name");let p=this.parseExpr();this.expect("SEMICOLON","Expected ';' after function body");let i=this.parseExpr();return{type:"Def",name:e,params:n,funcBody:p,body:i}}if(this.match("NOT"))return{type:"Call",name:"not",args:[]};if(this.check("IDENT")){let e=this.advance().value;if(e.startsWith("$"))return{type:"VarRef",name:e};if(this.match("LPAREN")){let n=[];if(!this.check("RPAREN"))for(n.push(this.parseExpr());this.match("SEMICOLON");)n.push(this.parseExpr());return this.expect("RPAREN","Expected ')'"),{type:"Call",name:e,args:n}}return{type:"Call",name:e,args:[]}}throw new Error(`Unexpected token ${this.peek().type} at position ${this.peek().pos}`)}parseObjectConstruction(){let r=[];if(!this.check("RBRACE"))do{let e,n;if(this.match("LPAREN"))e=this.parseExpr(),this.expect("RPAREN","Expected ')'"),this.expect("COLON","Expected ':'"),n=this.parseObjectValue();else if(this.check("IDENT")){let p=this.advance().value;this.match("COLON")?(e=p,n=this.parseObjectValue()):(e=p,n={type:"Field",name:p})}else if(this.check("STRING"))e=this.advance().value,this.expect("COLON","Expected ':'"),n=this.parseObjectValue();else throw new Error(`Expected object key at position ${this.peek().pos}`);r.push({key:e,value:n})}while(this.match("COMMA"));return this.expect("RBRACE","Expected '}'"),{type:"Object",entries:r}}parseObjectValue(){let r=this.parseVarBind();for(;this.match("PIPE");){let e=this.parseVarBind();r={type:"Pipe",left:r,right:e}}return r}parseIf(){let r=this.parseExpr();this.expect("THEN","Expected 'then'");let e=this.parseExpr(),n=[];for(;this.match("ELIF");){let i=this.parseExpr();this.expect("THEN","Expected 'then' after elif");let u=this.parseExpr();n.push({cond:i,then:u})}let p;return this.match("ELSE")&&(p=this.parseExpr()),this.expect("END","Expected 'end'"),{type:"Cond",cond:r,then:e,elifs:n,else:p}}parseStringInterpolation(r){let e=[],n="",p=0;for(;p<r.length;)if(r[p]==="\\"&&r[p+1]==="("){n&&(e.push(n),n=""),p+=2;let i=1,u="";for(;p<r.length&&i>0;)r[p]==="("?i++:r[p]===")"&&i--,i>0&&(u+=r[p]),p++;let f=ft(u),s=new t(f);e.push(s.parse())}else n+=r[p],p++;return n&&e.push(n),{type:"StringInterp",parts:e}}};function te(t){let r=ft(t);return new et(r).parse()}export{m as a,te as b};
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import{c as p}from"./chunk-GTNBSMZR.js";function x(a,i,d){let g=new Map,h=new Map;for(let[t,e]of Object.entries(d)){let n={name:t,type:e.type};e.short&&g.set(e.short,n),e.long&&h.set(e.long,n)}let s={};for(let[t,e]of Object.entries(d))e.default!==void 0?s[t]=e.default:e.type==="boolean"&&(s[t]=!1);let b=[],k=!1;for(let t=0;t<i.length;t++){let e=i[t];if(k||!e.startsWith("-")||e==="-"){b.push(e);continue}if(e==="--"){k=!0;continue}if(e.startsWith("--")){let n=e.indexOf("="),o,r;n!==-1?(o=e.slice(2,n),r=e.slice(n+1)):o=e.slice(2);let f=h.get(o);if(!f)return{ok:!1,error:p(a,e)};let{name:l,type:u}=f;if(u==="boolean")s[l]=!0;else{if(r===void 0){if(t+1>=i.length)return{ok:!1,error:{stdout:"",stderr:`${a}: option '--${o}' requires an argument
|
|
3
|
-
`,exitCode:1}};r=i[++t]}s[l]=u==="number"?parseInt(r,10):r}}else{let n=e.slice(1);for(let o=0;o<n.length;o++){let r=n[o],f=g.get(r);if(!f)return{ok:!1,error:p(a,`-${r}`)};let{name:l,type:u}=f;if(u==="boolean")s[l]=!0;else{let c;if(o+1<n.length)c=n.slice(o+1);else if(t+1<i.length)c=i[++t];else return{ok:!1,error:{stdout:"",stderr:`${a}: option requires an argument -- '${r}'
|
|
4
|
-
`,exitCode:1}};s[l]=u==="number"?parseInt(c,10):c;break}}}}return{ok:!0,result:{flags:s,positional:b}}}export{x as a};
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import{a as y}from"./chunk-QSDVMMYI.js";import{e as x}from"./chunk-KGOUQS5A.js";var g=x(y(),1);function j(n){let r=g.default.parse(n.trim(),{header:!0,dynamicTyping:!0,skipEmptyLines:!0});return{headers:r.meta.fields||[],data:r.data}}function C(n,r){return r.length===0?`${n.join(",")}
|
|
3
|
-
`:`${g.default.unparse(r,{columns:n}).replace(/\r\n/g,`
|
|
4
|
-
`)}
|
|
5
|
-
`}async function w(n,r){let s=n.find(p=>!p.startsWith("-")),i;if(!s||s==="-")i=r.stdin;else try{let p=r.fs.resolvePath(r.cwd,s);i=await r.fs.readFile(p)}catch{return{headers:[],data:[],error:{stdout:"",stderr:`xan: ${s}: No such file or directory
|
|
6
|
-
`,exitCode:1}}}let{headers:a,data:d}=j(i);return{headers:a,data:d}}async function S(n,r){let s=0,i=[],a=[];for(let t=0;t<n.length;t++){let e=n[t];(e==="-l"||e==="--limit")&&t+1<n.length?s=Number.parseInt(n[++t],10):(e==="-s"||e==="--select")&&t+1<n.length?i=n[++t].split(","):e.startsWith("-")||a.push(e)}let{headers:d,data:p,error:h}=await w(a,r);if(h)return h;let l=i.length>0?i.filter(t=>d.includes(t)):d,c=s>0?p.slice(0,s):p,f=Math.max(...l.map(t=>t.length)),o=[],$="\u2500".repeat(80);for(let t=0;t<c.length;t++){let e=c[t];o.push(`Row n\xB0${t}`),o.push($);for(let u of l){let m=e[u],v=m==null?"":String(m);o.push(`${u.padEnd(f)} ${v}`)}t<c.length-1&&o.push("")}return{stdout:`${o.join(`
|
|
7
|
-
`)}
|
|
8
|
-
`,stderr:"",exitCode:0}}async function W(n,r){let s=0,i=[];for(let t=0;t<n.length;t++){let e=n[t];e==="-n"&&t+1<n.length?s=Number.parseInt(n[++t],10):e.startsWith("-")||i.push(e)}let{headers:a,data:d,error:p}=await w(i,r);if(p)return p;let h=s>0?d.slice(0,s):d,l=a.map(t=>t.length);for(let t of h)for(let e=0;e<a.length;e++){let u=String(t[a[e]]??"");l[e]=Math.max(l[e],u.length)}let c=[],f="\u2500",o="\u2502";c.push(`\u250C${l.map(t=>f.repeat(t+2)).join("\u252C")}\u2510`);let $=a.map((t,e)=>` ${t.padEnd(l[e])} `).join(o);c.push(`${o}${$}${o}`),c.push(`\u251C${l.map(t=>f.repeat(t+2)).join("\u253C")}\u2524`);for(let t of h){let e=a.map((u,m)=>` ${String(t[u]??"").padEnd(l[m])} `).join(o);c.push(`${o}${e}${o}`)}return c.push(`\u2514${l.map(t=>f.repeat(t+2)).join("\u2534")}\u2518`),{stdout:`${c.join(`
|
|
9
|
-
`)}
|
|
10
|
-
`,stderr:"",exitCode:0}}export{j as a,C as b,w as c,S as d,W as e};
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import{a as m,b as d,c as f}from"./chunk-GTNBSMZR.js";import"./chunk-KGOUQS5A.js";var g={name:"env",summary:"run a program in a modified environment",usage:"env [OPTION]... [NAME=VALUE]... [COMMAND [ARG]...]",options:["-i, --ignore-environment start with an empty environment","-u NAME, --unset=NAME remove NAME from the environment"," --help display this help and exit"]},C={name:"env",async execute(s,i){if(d(s))return m(g);let u=!1,o=[],c={},t=-1;for(let n=0;n<s.length;n++){let e=s[n];if(e==="-i"||e==="--ignore-environment")u=!0;else if(e==="-u"&&n+1<s.length)o.push(s[++n]);else if(e.startsWith("-u"))o.push(e.slice(2));else if(e.startsWith("--unset="))o.push(e.slice(8));else{if(e.startsWith("--")&&e!=="--")return f("env",e);if(e.startsWith("-")&&e!=="-"){for(let r of e.slice(1))if(r!=="i"&&r!=="u")return f("env",`-${r}`);e.includes("i")&&(u=!0)}else if(e.includes("=")&&t===-1){let r=e.indexOf("="),O=e.slice(0,r),$=e.slice(r+1);c[O]=$}else{t=n;break}}}let l;if(u)l={...c};else{l={...i.env};for(let n of o)delete l[n];Object.assign(l,c)}if(t===-1){let n=[];for(let[e,r]of Object.entries(l))n.push(`${e}=${r}`);return{stdout:n.join(`
|
|
3
|
-
`)+(n.length>0?`
|
|
4
|
-
`:""),stderr:"",exitCode:0}}if(!i.exec)return{stdout:"",stderr:`env: command execution not supported in this context
|
|
5
|
-
`,exitCode:1};let a=s.slice(t),h=a[0],x=a.slice(1).map(n=>/[\s"'\\$`!*?[\]{}|&;<>()]/.test(n)?`'${n.replace(/'/g,"'\\''")}'`:n),p=["command",h,...x].join(" "),v=Object.entries(c).map(([n,e])=>`${n}="${e}"`).join(" "),A=v?`${v} ${p}`:p;return i.exec(A,{cwd:i.cwd})}},j={name:"printenv",summary:"print all or part of environment",usage:"printenv [OPTION]... [VARIABLE]...",options:[" --help display this help and exit"]},E={name:"printenv",async execute(s,i){if(d(s))return m(j);let u=s.filter(t=>!t.startsWith("-"));if(u.length===0){let t=[];for(let[l,a]of Object.entries(i.env))t.push(`${l}=${a}`);return{stdout:t.join(`
|
|
6
|
-
`)+(t.length>0?`
|
|
7
|
-
`:""),stderr:"",exitCode:0}}let o=[],c=0;for(let t of u)t in i.env?o.push(i.env[t]):c=1;return{stdout:o.join(`
|
|
8
|
-
`)+(o.length>0?`
|
|
9
|
-
`:""),stderr:"",exitCode:c}}};export{C as envCommand,E as printenvCommand};
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import{a as i,b as h}from"./chunk-GTNBSMZR.js";import"./chunk-KGOUQS5A.js";var d={name:"history",summary:"display command history",usage:"history [n]",options:["-c clear the history list"," --help display this help and exit"]},l="BASH_HISTORY",m={name:"history",async execute(e,n){if(h(e))return i(d);let a=n.env[l]||"[]",t;try{t=JSON.parse(a)}catch{t=[]}if(e[0]==="-c")return n.env[l]="[]",{stdout:"",stderr:"",exitCode:0};let s=t.length;e[0]&&/^\d+$/.test(e[0])&&(s=Math.min(parseInt(e[0],10),t.length));let c=t.length-s,r="";for(let o=c;o<t.length;o++){let y=(o+1).toString().padStart(5," ");r+=`${y} ${t[o]}
|
|
3
|
-
`}return{stdout:r,stderr:"",exitCode:0}}};export{m as historyCommand};
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import"./chunk-KGOUQS5A.js";var h={name:"time",async execute(i,r){let a="%e %M",n=null,d=!1,m=!1,t=0;for(;t<i.length;){let e=i[t];if(e==="-f"||e==="--format"){if(t++,t>=i.length)return{stdout:"",stderr:`time: missing argument to '-f'
|
|
3
|
-
`,exitCode:1};a=i[t],t++}else if(e==="-o"||e==="--output"){if(t++,t>=i.length)return{stdout:"",stderr:`time: missing argument to '-o'
|
|
4
|
-
`,exitCode:1};n=i[t],t++}else if(e==="-a"||e==="--append")d=!0,t++;else if(e==="-v"||e==="--verbose")a=`Command being timed: %C
|
|
5
|
-
Elapsed (wall clock) time: %e seconds
|
|
6
|
-
Maximum resident set size (kbytes): %M`,t++;else if(e==="-p"||e==="--portability")m=!0,t++;else if(e==="--"){t++;break}else if(e.startsWith("-"))t++;else break}let f=i.slice(t);if(f.length===0)return{stdout:"",stderr:"",exitCode:0};let c=performance.now(),u=f.join(" "),s;try{if(!r.exec)return{stdout:"",stderr:`time: exec not available
|
|
7
|
-
`,exitCode:1};s=await r.exec(u,{env:r.env,cwd:r.cwd})}catch(e){s={stdout:"",stderr:`time: ${e.message}
|
|
8
|
-
`,exitCode:127}}let l=(performance.now()-c)/1e3,o;if(m?o=`real ${l.toFixed(2)}
|
|
9
|
-
user 0.00
|
|
10
|
-
sys 0.00
|
|
11
|
-
`:(o=a.replace(/%e/g,l.toFixed(2)).replace(/%E/g,g(l)).replace(/%M/g,"0").replace(/%S/g,"0.00").replace(/%U/g,"0.00").replace(/%P/g,"0%").replace(/%C/g,u),o.endsWith(`
|
|
12
|
-
`)||(o+=`
|
|
13
|
-
`)),n)try{let e=r.fs.resolvePath(r.cwd,n);if(d&&await r.fs.exists(e)){let p=await r.fs.readFile(e);await r.fs.writeFile(e,p+o)}else await r.fs.writeFile(e,o)}catch(e){return{stdout:s.stdout,stderr:s.stderr+`time: cannot write to '${n}': ${e.message}
|
|
14
|
-
`,exitCode:s.exitCode}}else s={...s,stderr:s.stderr+o};return s}};function g(i){let r=Math.floor(i/3600),a=Math.floor(i%3600/60),n=i%60;return r>0?`${r}:${a.toString().padStart(2,"0")}:${n.toFixed(2).padStart(5,"0")}`:`${a}:${n.toFixed(2).padStart(5,"0")}`}export{h as timeCommand};
|
|
@@ -1,140 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import{a as Te,b as w,c as v,d as H,e as J}from"./chunk-UUQYHLBO.js";import{a as Xe}from"./chunk-QSDVMMYI.js";import{a as P}from"./chunk-KD3EODLB.js";import"./chunk-K5IXNHO5.js";import{a as $e}from"./chunk-5WFYIUU2.js";import"./chunk-OBH7XN5N.js";import{a as $,b as _}from"./chunk-GTNBSMZR.js";import{b as Re,d as ze,e as Ke,f as Ge}from"./chunk-KGOUQS5A.js";var V,je=Re(()=>{"use strict";V=class{input;pos=0;tokens=[];constructor(n){this.input=n}tokenize(){for(;this.pos<this.input.length&&(this.skipWhitespace(),!(this.pos>=this.input.length));){let n=this.nextToken();n&&this.tokens.push(n)}return this.tokens.push({type:"eof",value:"",pos:this.pos}),this.tokens}skipWhitespace(){for(;this.pos<this.input.length;){let n=this.input[this.pos];if(n===" "||n===" "||n===`
|
|
3
|
-
`||n==="\r")this.pos++;else if(n==="#")for(;this.pos<this.input.length&&this.input[this.pos]!==`
|
|
4
|
-
`;)this.pos++;else break}}nextToken(){let n=this.pos,t=this.input[this.pos];if(t>="0"&&t<="9")return this.readNumber();if(t==='"'||t==="'"||t==="`")return this.readString(t);if(t==="b"&&this.pos+1<this.input.length){let r=this.input[this.pos+1];if(r==='"'||r==="'"||r==="`")return this.pos++,this.readString(r)}if(t==="/"){let r=this.tokens[this.tokens.length-1];return r&&(r.type==="int"||r.type==="float"||r.type==="string"||r.type==="ident"||r.type===")"||r.type==="]")?this.input[this.pos+1]==="/"?(this.pos+=2,{type:"//",value:"//",pos:n}):(this.pos++,{type:"/",value:"/",pos:n}):this.readRegex()}if(this.match("not in"))return{type:"not in",value:"not in",pos:n};if(this.match("=>"))return{type:"=>",value:"=>",pos:n};if(this.match("**"))return{type:"**",value:"**",pos:n};if(this.match("++"))return{type:"++",value:"++",pos:n};if(this.match("//"))return{type:"//",value:"//",pos:n};if(this.match("=="))return{type:"==",value:"==",pos:n};if(this.match("!="))return{type:"!=",value:"!=",pos:n};if(this.match("<="))return{type:"<=",value:"<=",pos:n};if(this.match(">="))return{type:">=",value:">=",pos:n};if(this.match("&&"))return{type:"&&",value:"&&",pos:n};if(this.match("||"))return{type:"||",value:"||",pos:n};let s={"(":"(",")":")","[":"[","]":"]","{":"{","}":"}",",":",",":":":",";":";","+":"+","-":"-","*":"*","%":"%","<":"<",">":">","!":"!",".":".","|":"|","=":"="};if(t in s)return this.pos++,{type:s[t],value:t,pos:n};if(this.isIdentStart(t))return this.readIdentifier();throw new Error(`Unexpected character '${t}' at position ${this.pos}`)}match(n){if(this.input.slice(this.pos,this.pos+n.length)===n){if(/^[a-zA-Z]/.test(n)){let t=this.input[this.pos+n.length];if(t&&this.isIdentChar(t))return!1}return this.pos+=n.length,!0}return!1}isIdentStart(n){return n>="a"&&n<="z"||n>="A"&&n<="Z"||n==="_"}isIdentChar(n){return this.isIdentStart(n)||n>="0"&&n<="9"}readNumber(){let n=this.pos,t=!1,s=!1;for(;this.pos<this.input.length;){let o=this.input[this.pos];if(o>="0"&&o<="9")this.pos++;else if(o==="_")this.pos++;else if(o==="."&&!t&&!s)t=!0,this.pos++;else if((o==="e"||o==="E")&&!s)s=!0,t=!0,this.pos++,this.pos<this.input.length&&(this.input[this.pos]==="+"||this.input[this.pos]==="-")&&this.pos++;else break}let r=this.input.slice(n,this.pos).replace(/_/g,"");return{type:t?"float":"int",value:r,pos:n}}readString(n){let t=this.pos;this.pos++;let s="";for(;this.pos<this.input.length;){let r=this.input[this.pos];if(r===n)return this.pos++,{type:"string",value:s,pos:t};if(r==="\\"){if(this.pos++,this.pos<this.input.length){let o=this.input[this.pos];switch(o){case"n":s+=`
|
|
5
|
-
`;break;case"r":s+="\r";break;case"t":s+=" ";break;case"\\":s+="\\";break;case'"':s+='"';break;case"'":s+="'";break;case"`":s+="`";break;case"0":s+="\0";break;default:s+=o}this.pos++}}else s+=r,this.pos++}throw new Error(`Unterminated string starting at position ${t}`)}readRegex(){let n=this.pos;this.pos++;let t="",s="";for(;this.pos<this.input.length;){let r=this.input[this.pos];if(r==="/"){for(this.pos++;this.pos<this.input.length&&this.input[this.pos]==="i";)s+=this.input[this.pos],this.pos++;return{type:"regex",value:t+(s?`/${s}`:""),pos:n}}r==="\\"?(t+=r,this.pos++,this.pos<this.input.length&&(t+=this.input[this.pos],this.pos++)):(t+=r,this.pos++)}throw new Error(`Unterminated regex starting at position ${n}`)}readIdentifier(){let n=this.pos;for(;this.pos<this.input.length&&this.isIdentChar(this.input[this.pos]);)this.pos++;let t=!1;this.pos<this.input.length&&this.input[this.pos]==="?"&&(t=!0,this.pos++);let s=this.input.slice(n,t?this.pos-1:this.pos);t&&(s+="?");let r={true:"true",false:"false",null:"null",and:"and",or:"or",eq:"eq",ne:"ne",lt:"lt",le:"le",gt:"gt",ge:"ge",in:"in",as:"as",_:"_"},o=s.replace(/\?$/,"");return o in r&&!t?{type:r[o],value:o,pos:n}:{type:"ident",value:s,pos:n}}}});var De={};ze(De,{parseMoonblade:()=>W,parseNamedExpressions:()=>T});function T(e){let n=[],s=new V(e).tokenize(),r=0,o=()=>s[r]||{type:"eof",value:"",pos:0},a=()=>s[r++];for(;o().type!=="eof";){if(o().type===","&&n.length>0){a();continue}let d=[],u=0,p=r;for(;o().type!=="eof";){let i=o();if((i.type===","||i.type==="as")&&u===0)break;(i.type==="("||i.type==="["||i.type==="{")&&u++,(i.type===")"||i.type==="]"||i.type==="}")&&u--,d.push(a())}d.push({type:"eof",value:"",pos:0});let h=new U(d).parse(),c;if(o().type==="as")if(a(),o().type==="("){a();let i=[];for(;o().type!==")"&&o().type!=="eof";)(o().type==="ident"||o().type==="string")&&(i.push(o().value),a()),o().type===","&&a();o().type===")"&&a(),c=i}else if(o().type==="ident"||o().type==="string")c=o().value,a();else throw new Error(`Expected name after 'as', got ${o().type}`);else c=e.slice(s[p].pos,s[r-1]?.pos||e.length).trim(),h.type==="identifier"&&(c=h.name);n.push({expr:h,name:c})}return n}function W(e){let t=new V(e).tokenize();return new U(t).parse()}var O,U,j=Re(()=>{"use strict";je();O={PIPE:1,OR:2,AND:3,EQUALITY:4,COMPARISON:5,ADDITIVE:6,MULTIPLICATIVE:7,POWER:8,UNARY:9,POSTFIX:10},U=class{pos=0;tokens;constructor(n){this.tokens=n}parse(){let n=this.parseExpr(0);if(this.peek().type!=="eof")throw new Error(`Unexpected token: ${this.peek().value}`);return n}parseExpr(n){let t=this.parsePrefix();for(;;){let s=this.peek(),r=this.getInfixPrec(s.type);if(r<n)break;t=this.parseInfix(t,r)}return t}parsePrefix(){let n=this.peek();switch(n.type){case"int":return this.advance(),{type:"int",value:Number.parseInt(n.value,10)};case"float":return this.advance(),{type:"float",value:Number.parseFloat(n.value)};case"string":return this.advance(),{type:"string",value:n.value};case"regex":{this.advance();let t=n.value.split("/"),s=t.length>1?t[t.length-1]:"";return{type:"regex",pattern:t.slice(0,-1).join("/")||n.value,caseInsensitive:s.includes("i")}}case"true":return this.advance(),{type:"bool",value:!0};case"false":return this.advance(),{type:"bool",value:!1};case"null":return this.advance(),{type:"null"};case"_":return this.advance(),{type:"underscore"};case"ident":{let t=n.value,s=t.endsWith("?"),r=s?t.slice(0,-1):t;if(this.advance(),this.peek().type==="(")return this.parseFunctionCall(r);if(this.peek().type==="=>"){this.advance();let o=this.parseExpr(0);return this.bindLambdaArgs({type:"lambda",params:[r],body:o},[r])}return{type:"identifier",name:r,unsure:s}}case"(":{this.advance();let t=[];if(this.peek().type===")"){if(this.advance(),this.peek().type==="=>"){this.advance();let r=this.parseExpr(0);return{type:"lambda",params:[],body:r}}throw new Error("Empty parentheses not allowed")}if(this.peek().type==="ident"){let r=this.peek().value;if(this.advance(),this.peek().type===","||this.peek().type===")"){for(t.push(r);this.peek().type===","&&(this.advance(),this.peek().type==="ident");)t.push(this.peek().value),this.advance();if(this.peek().type===")"&&(this.advance(),this.peek().type==="=>")){this.advance();let o=this.parseExpr(0);return this.bindLambdaArgs({type:"lambda",params:t,body:o},t)}this.pos-=t.length*2,t.length>1&&(this.pos=this.pos)}this.pos--}let s=this.parseExpr(0);return this.expect(")"),this.peek().type,s}case"[":return this.parseList();case"{":return this.parseMap();case"-":{this.advance();let t=this.parseExpr(O.UNARY);return t.type==="int"?{type:"int",value:-t.value}:t.type==="float"?{type:"float",value:-t.value}:{type:"func",name:"neg",args:[{expr:t}]}}case"!":return this.advance(),{type:"func",name:"not",args:[{expr:this.parseExpr(O.UNARY)}]};default:throw new Error(`Unexpected token: ${n.type} (${n.value})`)}}parseFunctionCall(n){this.expect("(");let t=[];if(this.peek().type!==")")do{t.length>0&&this.peek().type===","&&this.advance();let s;if(this.peek().type==="ident"){let o=this.peek().value,a=this.pos+1;a<this.tokens.length&&this.tokens[a].type==="="&&(s=o,this.advance(),this.advance())}let r=this.parseExpr(0);t.push({name:s,expr:r})}while(this.peek().type===",");return this.expect(")"),{type:"func",name:n.toLowerCase(),args:t}}parseList(){this.expect("[");let n=[];if(this.peek().type!=="]")do n.length>0&&this.peek().type===","&&this.advance(),n.push(this.parseExpr(0));while(this.peek().type===",");return this.expect("]"),{type:"list",elements:n}}parseMap(){this.expect("{");let n=[];if(this.peek().type!=="}")do{n.length>0&&this.peek().type===","&&this.advance();let t;if(this.peek().type==="ident")t=this.peek().value,this.advance();else if(this.peek().type==="string")t=this.peek().value,this.advance();else throw new Error(`Expected map key, got ${this.peek().type}`);this.expect(":");let s=this.parseExpr(0);n.push({key:t,value:s})}while(this.peek().type===",");return this.expect("}"),{type:"map",entries:n}}parseInfix(n,t){let s=this.peek(),r={"+":"add","-":"sub","*":"mul","/":"div","//":"idiv","%":"mod","**":"pow","++":"concat","==":"==","!=":"!=","<":"<","<=":"<=",">":">",">=":">=",eq:"eq",ne:"ne",lt:"lt",le:"le",gt:"gt",ge:"ge","&&":"and",and:"and","||":"or",or:"or"};if(s.type in r){this.advance();let o=this.parseExpr(t+(this.isRightAssoc(s.type)?0:1));return{type:"func",name:r[s.type],args:[{expr:n},{expr:o}]}}if(s.type==="|"){this.advance();let o=this.parseExpr(t);return this.handlePipe(n,o)}if(s.type===".")return this.advance(),this.handleDot(n);if(s.type==="[")return this.advance(),this.handleIndexing(n);if(s.type==="in")return this.advance(),{type:"func",name:"contains",args:[{expr:this.parseExpr(t+1)},{expr:n}]};if(s.type==="not in")return this.advance(),{type:"func",name:"not",args:[{expr:{type:"func",name:"contains",args:[{expr:this.parseExpr(t+1)},{expr:n}]}}]};throw new Error(`Unexpected infix token: ${s.type}`)}handlePipe(n,t){if(t.type==="identifier")return{type:"func",name:t.name,args:[{expr:n}]};if(t.type==="func"){let s=this.countUnderscores(t);return s===0?t:s===1?this.fillUnderscore(t,n):{type:"pipeline",exprs:[n,t]}}return this.countUnderscores(t)===1?this.fillUnderscore(t,n):t}handleDot(n){let t=this.peek();if(t.type==="ident"){let s=t.value;if(this.advance(),this.peek().type==="("){let r=this.parseFunctionCall(s);return r.type==="func"&&r.args.unshift({expr:n}),r}return{type:"func",name:"get",args:[{expr:n},{expr:{type:"string",value:s}}]}}if(t.type==="int"){let s=Number.parseInt(t.value,10);return this.advance(),{type:"func",name:"get",args:[{expr:n},{expr:{type:"int",value:s}}]}}if(t.type==="string"){let s=t.value;return this.advance(),{type:"func",name:"get",args:[{expr:n},{expr:{type:"string",value:s}}]}}throw new Error(`Expected identifier, number, or string after dot, got ${t.type}`)}handleIndexing(n){if(this.peek().type===":"){if(this.advance(),this.peek().type==="]")return this.advance(),{type:"func",name:"slice",args:[{expr:n}]};let s=this.parseExpr(0);return this.expect("]"),{type:"func",name:"slice",args:[{expr:n},{expr:{type:"int",value:0}},{expr:s}]}}let t=this.parseExpr(0);if(this.peek().type===":"){if(this.advance(),this.peek().type==="]")return this.advance(),{type:"func",name:"slice",args:[{expr:n},{expr:t}]};let s=this.parseExpr(0);return this.expect("]"),{type:"func",name:"slice",args:[{expr:n},{expr:t},{expr:s}]}}return this.expect("]"),{type:"func",name:"get",args:[{expr:n},{expr:t}]}}countUnderscores(n){return n.type==="underscore"?1:n.type==="func"?n.args.reduce((t,s)=>t+this.countUnderscores(s.expr),0):n.type==="list"?n.elements.reduce((t,s)=>t+this.countUnderscores(s),0):n.type==="map"?n.entries.reduce((t,s)=>t+this.countUnderscores(s.value),0):0}fillUnderscore(n,t){return n.type==="underscore"?t:n.type==="func"?{...n,args:n.args.map(s=>({...s,expr:this.fillUnderscore(s.expr,t)}))}:n.type==="list"?{...n,elements:n.elements.map(s=>this.fillUnderscore(s,t))}:n.type==="map"?{...n,entries:n.entries.map(s=>({...s,value:this.fillUnderscore(s.value,t)}))}:n}bindLambdaArgs(n,t){return{...n,body:this.bindLambdaArgsInExpr(n.body,t)}}bindLambdaArgsInExpr(n,t){return n.type==="identifier"&&t.includes(n.name)?{type:"lambdaBinding",name:n.name}:n.type==="func"?{...n,args:n.args.map(s=>({...s,expr:this.bindLambdaArgsInExpr(s.expr,t)}))}:n.type==="list"?{...n,elements:n.elements.map(s=>this.bindLambdaArgsInExpr(s,t))}:n.type==="map"?{...n,entries:n.entries.map(s=>({...s,value:this.bindLambdaArgsInExpr(s.value,t)}))}:n}getInfixPrec(n){switch(n){case"|":return O.PIPE;case"||":case"or":return O.OR;case"&&":case"and":return O.AND;case"==":case"!=":case"eq":case"ne":return O.EQUALITY;case"<":case"<=":case">":case">=":case"lt":case"le":case"gt":case"ge":case"in":case"not in":return O.COMPARISON;case"+":case"-":case"++":return O.ADDITIVE;case"*":case"/":case"//":case"%":return O.MULTIPLICATIVE;case"**":return O.POWER;case".":case"[":return O.POSTFIX;default:return-1}}isRightAssoc(n){return n==="**"}peek(){return this.tokens[this.pos]||{type:"eof",value:"",pos:0}}advance(){return this.tokens[this.pos++]}expect(n){let t=this.peek();if(t.type!==n)throw new Error(`Expected ${n}, got ${t.type}`);return this.advance()}}});j();function N(e,n){return n.length===0?I(e,[]):n.length===1?{type:"Pipe",left:n[0],right:I(e,[])}:{type:"Pipe",left:n[0],right:I(e,n.slice(1))}}var We={add:e=>b("+",e[0],e[1]),sub:e=>b("-",e[0],e[1]),mul:e=>b("*",e[0],e[1]),div:e=>b("/",e[0],e[1]),mod:e=>b("%",e[0],e[1]),idiv:e=>I("floor",[b("/",e[0],e[1])]),pow:e=>N("pow",e),neg:e=>({type:"UnaryOp",op:"-",operand:e[0]}),"==":e=>b("==",e[0],e[1]),"!=":e=>b("!=",e[0],e[1]),"<":e=>b("<",e[0],e[1]),"<=":e=>b("<=",e[0],e[1]),">":e=>b(">",e[0],e[1]),">=":e=>b(">=",e[0],e[1]),eq:e=>b("==",L(e[0]),L(e[1])),ne:e=>b("!=",L(e[0]),L(e[1])),lt:e=>b("<",L(e[0]),L(e[1])),le:e=>b("<=",L(e[0]),L(e[1])),gt:e=>b(">",L(e[0]),L(e[1])),ge:e=>b(">=",L(e[0]),L(e[1])),and:e=>b("and",e[0],e[1]),or:e=>b("or",e[0],e[1]),not:e=>({type:"UnaryOp",op:"not",operand:e[0]}),len:e=>N("length",e),length:e=>N("length",e),upper:e=>N("ascii_upcase",e),lower:e=>N("ascii_downcase",e),trim:e=>N("trim",e),ltrim:e=>e.length===0?I("ltrimstr",[{type:"Literal",value:" "}]):{type:"Pipe",left:e[0],right:I("ltrimstr",[{type:"Literal",value:" "}])},rtrim:e=>e.length===0?I("rtrimstr",[{type:"Literal",value:" "}]):{type:"Pipe",left:e[0],right:I("rtrimstr",[{type:"Literal",value:" "}])},split:e=>N("split",e),join:e=>e.length===1?I("join",[{type:"Literal",value:""}]):N("join",e),concat:e=>b("+",e[0],e[1]),startswith:e=>N("startswith",e),endswith:e=>N("endswith",e),contains:e=>N("contains",e),replace:e=>N("gsub",e),substr:e=>e.length===2?{type:"Slice",base:e[0],start:e[1]}:{type:"Slice",base:e[0],start:e[1],end:b("+",e[1],e[2])},abs:e=>N("fabs",e),floor:e=>N("floor",e),ceil:e=>N("ceil",e),round:e=>N("round",e),sqrt:e=>N("sqrt",e),log:e=>N("log",e),log10:e=>N("log10",e),log2:e=>N("log2",e),exp:e=>N("exp",e),sin:e=>N("sin",e),cos:e=>N("cos",e),tan:e=>N("tan",e),asin:e=>N("asin",e),acos:e=>N("acos",e),atan:e=>N("atan",e),min:e=>N("min",e),max:e=>N("max",e),first:e=>e.length===0?{type:"Index",index:{type:"Literal",value:0}}:{type:"Index",index:{type:"Literal",value:0},base:e[0]},last:e=>e.length===0?{type:"Index",index:{type:"Literal",value:-1}}:{type:"Index",index:{type:"Literal",value:-1},base:e[0]},get:e=>e.length===1?{type:"Index",index:e[0]}:{type:"Index",index:e[1],base:e[0]},slice:e=>e.length===1?{type:"Slice",base:e[0]}:e.length===2?{type:"Slice",base:e[0],start:e[1]}:{type:"Slice",base:e[0],start:e[1],end:e[2]},keys:"keys",values:"values",entries:e=>I("to_entries",e),from_entries:"from_entries",reverse:"reverse",sort:"sort",sort_by:"sort_by",group_by:"group_by",unique:"unique",unique_by:"unique_by",flatten:"flatten",map:e=>({type:"Pipe",left:e[0],right:{type:"Array",elements:e[1]}}),select:e=>I("select",e),empty:()=>I("empty",[]),count:()=>I("length",[]),sum:e=>e.length===0?I("add",[]):{type:"Pipe",left:{type:"Array",elements:e[0]},right:I("add",[])},mean:e=>e.length===0?{type:"Pipe",left:{type:"Identity"},right:b("/",I("add",[]),I("length",[]))}:{type:"Pipe",left:{type:"Array",elements:e[0]},right:b("/",I("add",[]),I("length",[]))},avg:e=>e.length===0?{type:"Pipe",left:{type:"Identity"},right:b("/",I("add",[]),I("length",[]))}:{type:"Pipe",left:{type:"Array",elements:e[0]},right:b("/",I("add",[]),I("length",[]))},type:"type",isnull:e=>e.length===0?b("==",{type:"Identity"},{type:"Literal",value:null}):b("==",e[0],{type:"Literal",value:null}),isempty:e=>e.length===0?b("==",{type:"Identity"},{type:"Literal",value:""}):b("==",e[0],{type:"Literal",value:""}),tonumber:e=>e.length===0?I("tonumber",[]):I("tonumber",e),tostring:e=>e.length===0?I("tostring",[]):I("tostring",e),if:e=>Ve(e[0],e[1],e[2]),coalesce:e=>{if(e.length===0)return{type:"Literal",value:null};if(e.length===1)return e[0];let[n,...t]=e,s=b("and",b("!=",n,{type:"Literal",value:null}),b("!=",n,{type:"Literal",value:""}));return Ve(s,n,t.length===1?t[0]:We.coalesce(t))},index:()=>({type:"Field",name:"_row_index"}),now:()=>I("now",[]),fmt:e=>I("tostring",e),format:e=>I("tostring",e)};function b(e,n,t){return{type:"BinaryOp",op:e,left:n,right:t}}function I(e,n){return{type:"Call",name:e,args:n}}var Ye="then";function Ve(e,n,t){let s={type:"Cond",cond:e,elifs:[],else:t||{type:"Literal",value:null}};return s[Ye]=n,s}function L(e){return{type:"Pipe",left:e,right:{type:"Call",name:"tostring",args:[]}}}function A(e,n=!0){switch(e.type){case"int":case"float":return{type:"Literal",value:e.value};case"string":return{type:"Literal",value:e.value};case"bool":return{type:"Literal",value:e.value};case"null":return{type:"Literal",value:null};case"underscore":return{type:"Index",base:{type:"Identity"},index:{type:"Literal",value:"_"}};case"identifier":return n?{type:"Field",name:e.name}:{type:"VarRef",name:e.name};case"lambdaBinding":return{type:"VarRef",name:e.name};case"func":{let t=e.args.map(r=>A(r.expr,n)),s=We[e.name];return typeof s=="function"?s(t):I(typeof s=="string"?s:e.name,t)}case"list":return e.elements.length===0?{type:"Array"}:{type:"Array",elements:e.elements.reduce((t,s,r)=>{let o=A(s,n);return r===0?o:{type:"Comma",left:t,right:o}},null)};case"map":return{type:"Object",entries:e.entries.map(t=>({key:t.key,value:A(t.value,n)}))};case"regex":return{type:"Literal",value:e.pattern};case"slice":return{type:"Slice",start:e.start?A(e.start,n):void 0,end:e.end?A(e.end,n):void 0};case"lambda":return A(e.body,n);case"pipeline":return{type:"Identity"};default:throw new Error(`Unknown moonblade expression type: ${e.type}`)}}function K(e){let n=[],t=0;for(;t<e.length;){for(;t<e.length&&(e[t]===" "||e[t]===",");)t++;if(t>=e.length)break;let s=t;for(;t<e.length&&/\w/.test(e[t]);)t++;let r=e.slice(s,t);for(;t<e.length&&e[t]===" ";)t++;if(e[t]!=="(")break;t++;let o=1,a=t;for(;t<e.length&&o>0;)e[t]==="("?o++:e[t]===")"&&o--,o>0&&t++;let d=e.slice(a,t).trim();for(t++;t<e.length&&e[t]===" ";)t++;let u="";if(e.slice(t,t+3).toLowerCase()==="as "){for(t+=3;t<e.length&&e[t]===" ";)t++;let p=t;for(;t<e.length&&/\w/.test(e[t]);)t++;u=e.slice(p,t)}u||(u=d?`${r}(${d})`:`${r}()`),n.push({func:r,expr:d,alias:u})}return n}function Ue(e){return/^\w+$/.test(e)}function z(e,n,t){let s=A(W(n)),r=P(e,s,t);return r.length>0?r[0]:null}function G(e,n,t={}){let{func:s,expr:r}=n;if(s==="count"&&!r)return e.length;let o;switch(Ue(r)?o=e.map(a=>a[r]).filter(a=>a!=null):o=e.map(a=>z(a,r,t)).filter(a=>a!=null),s){case"count":return Ue(r)?o.length:o.filter(a=>!!a).length;case"sum":return o.map(d=>typeof d=="number"?d:Number.parseFloat(String(d))).reduce((d,u)=>d+u,0);case"mean":case"avg":{let a=o.map(d=>typeof d=="number"?d:Number.parseFloat(String(d)));return a.length>0?a.reduce((d,u)=>d+u,0)/a.length:0}case"min":{let a=o.map(d=>typeof d=="number"?d:Number.parseFloat(String(d)));return a.length>0?Math.min(...a):null}case"max":{let a=o.map(d=>typeof d=="number"?d:Number.parseFloat(String(d)));return a.length>0?Math.max(...a):null}case"first":return o.length>0?o[0]:null;case"last":return o.length>0?o[o.length-1]:null;case"median":{let a=o.map(u=>typeof u=="number"?u:Number.parseFloat(String(u))).filter(u=>!Number.isNaN(u)).sort((u,p)=>u-p);if(a.length===0)return null;let d=Math.floor(a.length/2);return a.length%2===0?(a[d-1]+a[d])/2:a[d]}case"mode":{let a=new Map;for(let p of o){let l=String(p);a.set(l,(a.get(l)||0)+1)}let d=0,u=null;for(let[p,l]of a)l>d&&(d=l,u=p);return u}case"cardinality":return new Set(o.map(d=>String(d))).size;case"values":return o.map(a=>String(a)).join("|");case"distinct_values":return[...new Set(o.map(d=>String(d)))].sort().join("|");case"all":{if(e.length===0)return!0;for(let a of e)if(!z(a,r,t))return!1;return!0}case"any":{for(let a of e)if(z(a,r,t))return!0;return!1}default:return null}}function qe(e,n,t={}){let s={};for(let r of n)s[r.alias]=G(e,r,t);return s}async function X(e,n){let t="",s=[];for(let l of e)l.startsWith("-")||(t?s.push(l):t=l);if(!t)return{stdout:"",stderr:`xan agg: no aggregation expression
|
|
6
|
-
`,exitCode:1};let{data:r,error:o}=await v(s,n);if(o)return o;let a={limits:n.limits?{maxIterations:n.limits.maxJqIterations}:void 0},d=K(t),u=d.map(l=>l.alias),p=qe(r,d,a);return{stdout:w(u,[p]),stderr:"",exitCode:0}}async function Y(e,n){let t="",s="",r=[];for(let f=0;f<e.length;f++){let m=e[f];m==="--sorted"||m.startsWith("-")||(t?s?r.push(m):s=m:t=m)}if(!t||!s)return{stdout:"",stderr:`xan groupby: usage: xan groupby COLS EXPR [FILE]
|
|
7
|
-
`,exitCode:1};let{data:o,error:a}=await v(r,n);if(a)return a;let d={limits:n.limits?{maxIterations:n.limits.maxJqIterations}:void 0},u=t.split(","),p=K(s),l=[],h=new Map;for(let f of o){let m=u.map(g=>String(f[g])).join("\0");h.has(m)||(h.set(m,[]),l.push(m)),h.get(m)?.push(f)}let c=[...u,...p.map(f=>f.alias)],i=[];for(let f of l){let m=h.get(f);if(!m)continue;let g={};for(let y of u)g[y]=m[0][y];for(let y of p)g[y.alias]=G(m,y,d);i.push(g)}return{stdout:w(c,i),stderr:"",exitCode:0}}async function B(e,n){let t=[],s="",r=10,o=!1,a=[];for(let i=0;i<e.length;i++){let f=e[i];(f==="-s"||f==="--select")&&i+1<e.length?t=e[++i].split(","):(f==="-g"||f==="--groupby")&&i+1<e.length?s=e[++i]:(f==="-l"||f==="--limit")&&i+1<e.length?r=Number.parseInt(e[++i],10):f==="--no-extra"?o=!0:f==="-A"||f==="--all"?r=0:f.startsWith("-")||a.push(f)}let{headers:d,data:u,error:p}=await v(a,n);if(p)return p;let l=t.length>0?t:d.filter(i=>i!==s);s&&t.length===0&&(l=d.filter(i=>i!==s));let h=[],c=s?["field",s,"value","count"]:["field","value","count"];if(s){let i=new Map;for(let f of u){let m=String(f[s]??"");i.has(m)||i.set(m,[]),i.get(m)?.push(f)}for(let f of l)for(let[m,g]of i){let y=new Map;for(let S of g){let k=S[f],C=k===""||k===null||k===void 0?"":String(k);y.set(C,(y.get(C)||0)+1)}let x=[...y.entries()].sort((S,k)=>k[1]!==S[1]?k[1]-S[1]:S[0].localeCompare(k[0]));o&&(x=x.filter(([S])=>S!=="")),r>0&&(x=x.slice(0,r));for(let[S,k]of x)h.push({field:f,[s]:m,value:S===""?"<empty>":S,count:k})}}else for(let i of l){let f=new Map;for(let g of u){let y=g[i],x=y===""||y===null||y===void 0?"":String(y);f.set(x,(f.get(x)||0)+1)}let m=[...f.entries()].sort((g,y)=>y[1]!==g[1]?y[1]-g[1]:g[0].localeCompare(y[0]));o&&(m=m.filter(([g])=>g!=="")),r>0&&(m=m.slice(0,r));for(let[g,y]of m)h.push({field:i,value:g===""?"<empty>":g,count:y})}return{stdout:w(c,h),stderr:"",exitCode:0}}async function Z(e,n){let t=[],s=[];for(let l=0;l<e.length;l++){let h=e[l];h==="-s"&&l+1<e.length?t=e[++l].split(","):h.startsWith("-")||s.push(h)}let{headers:r,data:o,error:a}=await v(s,n);if(a)return a;let d=t.length>0?t:r,u=["field","type","count","min","max","mean"],p=[];for(let l of d){let h=o.map(f=>f[l]).filter(f=>f!=null),c=h.map(f=>typeof f=="number"?f:Number.parseFloat(String(f))).filter(f=>!Number.isNaN(f)),i=c.length===h.length&&c.length>0;p.push({field:l,type:i?"Number":"String",count:h.length,min:i?Math.min(...c):"",max:i?Math.max(...c):"",mean:i?Math.round(c.reduce((f,m)=>f+m,0)/c.length*1e10)/1e10:""})}return{stdout:w(u,p),stderr:"",exitCode:0}}j();function _e(e){let n=W(e);return A(n)}function Be(e){let t=e.replace(/[.+?^${}()|[\]\\]/g,"\\$&").replace(/\*/g,".*");return new RegExp(`^${t}$`)}function q(e,n){let t=[],s=new Set;for(let r of e.split(",")){let o=r.trim();if(o.startsWith("!")){let p=o.slice(1),l=q(p,n);for(let h of l)s.add(h);continue}if(o==="*"){for(let p of n)t.includes(p)||t.push(p);continue}if(o.includes("*")){let p=Be(o);for(let l of n)p.test(l)&&!t.includes(l)&&t.push(l);continue}let a=o.match(/^([^:]*):([^:]*)$/);if(a&&(a[1]||a[2])){let p=a[1],l=a[2],h=p?n.indexOf(p):0,c=l?n.indexOf(l):n.length-1;if(h!==-1&&c!==-1){let i=h<=c?1:-1;for(let f=h;i>0?f<=c:f>=c;f+=i)t.includes(n[f])||t.push(n[f])}continue}let d=o.match(/^(\d+)-(\d+)$/);if(d){let p=Number.parseInt(d[1],10),l=Number.parseInt(d[2],10);for(let h=p;h<=l&&h<n.length;h++)t.push(n[h]);continue}let u=Number.parseInt(o,10);if(!Number.isNaN(u)&&u>=0&&u<n.length){t.push(n[u]);continue}n.includes(o)&&t.push(o)}return s.size>0?t.filter(r=>!s.has(r)):t}async function Q(e,n){let t="",s=[];for(let p of e)p.startsWith("-")||(t?s.push(p):t=p);if(!t)return{stdout:"",stderr:`xan select: no columns specified
|
|
8
|
-
`,exitCode:1};let{headers:r,data:o,error:a}=await v(s,n);if(a)return a;let d=q(t,r),u=o.map(p=>{let l={};for(let h of d)l[h]=p[h];return l});return{stdout:w(d,u),stderr:"",exitCode:0}}async function ee(e,n){let t="",s=[];for(let l of e)l.startsWith("-")||(t?s.push(l):t=l);if(!t)return{stdout:"",stderr:`xan drop: no columns specified
|
|
9
|
-
`,exitCode:1};let{headers:r,data:o,error:a}=await v(s,n);if(a)return a;let d=new Set(q(t,r)),u=r.filter(l=>!d.has(l)),p=o.map(l=>{let h={};for(let c of u)h[c]=l[c];return h});return{stdout:w(u,p),stderr:"",exitCode:0}}async function te(e,n){let t="",s="",r=[];for(let l=0;l<e.length;l++){let h=e[l];h==="-s"&&l+1<e.length?s=e[++l]:h.startsWith("-")||(t?r.push(h):t=h)}if(!t)return{stdout:"",stderr:`xan rename: no new name(s) specified
|
|
10
|
-
`,exitCode:1};let{headers:o,data:a,error:d}=await v(r,n);if(d)return d;let u;if(s){let l=s.split(","),h=t.split(","),c=new Map;for(let i=0;i<l.length&&i<h.length;i++)c.set(l[i],h[i]);u=o.map(i=>c.get(i)||i)}else{let l=t.split(",");u=o.map((h,c)=>c<l.length?l[c]:h)}let p=a.map(l=>{let h={};for(let c=0;c<o.length;c++)h[u[c]]=l[o[c]];return h});return{stdout:w(u,p),stderr:"",exitCode:0}}async function ne(e,n){let t="index",s=[];for(let p=0;p<e.length;p++)e[p]==="-c"&&p+1<e.length?t=e[++p]:s.push(e[p]);let{headers:r,data:o,error:a}=await v(s,n);if(a)return a;let d=[t,...r],u=o.map((p,l)=>{let h={[t]:l};for(let c of r)h[c]=p[c];return h});return{stdout:w(d,u),stderr:"",exitCode:0}}async function se(e,n){let t=e.includes("-j")||e.includes("--just-names"),{headers:s,error:r}=await v(e.filter(a=>a!=="-j"&&a!=="--just-names"),n);return r||{stdout:t?`${s.map(a=>a).join(`
|
|
11
|
-
`)}
|
|
12
|
-
`:`${s.map((a,d)=>`${d} ${a}`).join(`
|
|
13
|
-
`)}
|
|
14
|
-
`,stderr:"",exitCode:0}}async function re(e,n){let{data:t,error:s}=await v(e,n);return s||{stdout:`${t.length}
|
|
15
|
-
`,stderr:"",exitCode:0}}async function oe(e,n){let t=10,s=[];for(let u=0;u<e.length;u++)(e[u]==="-l"||e[u]==="-n")&&u+1<e.length?t=Number.parseInt(e[++u],10):s.push(e[u]);let{headers:r,data:o,error:a}=await v(s,n);if(a)return a;let d=o.slice(0,t);return{stdout:w(r,d),stderr:"",exitCode:0}}async function ie(e,n){let t=10,s=[];for(let u=0;u<e.length;u++)(e[u]==="-l"||e[u]==="-n")&&u+1<e.length?t=Number.parseInt(e[++u],10):s.push(e[u]);let{headers:r,data:o,error:a}=await v(s,n);if(a)return a;let d=o.slice(-t);return{stdout:w(r,d),stderr:"",exitCode:0}}async function ae(e,n){let t,s,r,o=[];for(let c=0;c<e.length;c++){let i=e[c];(i==="-s"||i==="--start")&&c+1<e.length?t=Number.parseInt(e[++c],10):(i==="-e"||i==="--end")&&c+1<e.length?s=Number.parseInt(e[++c],10):(i==="-l"||i==="--len")&&c+1<e.length?r=Number.parseInt(e[++c],10):i.startsWith("-")||o.push(i)}let{headers:a,data:d,error:u}=await v(o,n);if(u)return u;let p=t??0,l;r!==void 0?l=p+r:s!==void 0?l=s:l=d.length;let h=d.slice(p,l);return{stdout:w(a,h),stderr:"",exitCode:0}}async function le(e,n){let{headers:t,data:s,error:r}=await v(e,n);if(r)return r;let o=[...s].reverse();return{stdout:w(t,o),stderr:"",exitCode:0}}var ue=Ke(Xe(),1);async function ce(e,n){let t=e.filter(p=>!p.startsWith("-")),{headers:s,data:r,error:o}=await v(t,n);if(o)return o;if(r.length===0){let p=["column"],l=s.map(h=>({column:h}));return{stdout:w(p,l),stderr:"",exitCode:0}}let a=s[0],d=[a,...r.map((p,l)=>String(p[a]??`row_${l}`))],u=[];for(let p=1;p<s.length;p++){let l=s[p],h={[a]:l};for(let c=0;c<r.length;c++)h[d[c+1]]=r[c][l];u.push(h)}return{stdout:w(d,u),stderr:"",exitCode:0}}async function pe(e,n){let t=null,s=[];for(let l=0;l<e.length;l++){let h=e[l];h==="--seed"&&l+1<e.length?t=Number.parseInt(e[++l],10):h.startsWith("-")||s.push(h)}let{headers:r,data:o,error:a}=await v(s,n);if(a)return a;let d=t!==null?t:Date.now(),u=()=>(d=d*1103515245+12345&2147483647,d/2147483647),p=[...o];for(let l=p.length-1;l>0;l--){let h=Math.floor(u()*(l+1));[p[l],p[h]]=[p[h],p[l]]}return{stdout:w(r,p),stderr:"",exitCode:0}}async function fe(e,n){let t=null,s="",r=[];for(let i=0;i<e.length;i++){let f=e[i];(f==="-l"||f==="--length")&&i+1<e.length?t=Number.parseInt(e[++i],10):(f==="-d"||f==="--default")&&i+1<e.length?s=e[++i]:f.startsWith("-")||r.push(f)}let o=r[0],a;if(!o||o==="-")a=n.stdin;else try{let i=n.fs.resolvePath(n.cwd,o);a=await n.fs.readFile(i)}catch{return{stdout:"",stderr:`xan fixlengths: ${o}: No such file or directory
|
|
16
|
-
`,exitCode:1}}let u=ue.default.parse(a.trim(),{header:!1,skipEmptyLines:!0}).data;if(u.length===0)return{stdout:"",stderr:"",exitCode:0};let p=Math.max(...u.map(i=>i.length)),l=t??p,h=u.map(i=>i.length===l?i:i.length<l?[...i,...Array(l-i.length).fill(s)]:i.slice(0,l));return{stdout:`${ue.default.unparse(h).replace(/\r\n/g,`
|
|
17
|
-
`)}
|
|
18
|
-
`,stderr:"",exitCode:0}}async function de(e,n){let t=null,s=null,r=".",o=[];for(let c=0;c<e.length;c++){let i=e[c];(i==="-c"||i==="--chunks")&&c+1<e.length?t=Number.parseInt(e[++c],10):(i==="-S"||i==="--size")&&c+1<e.length?s=Number.parseInt(e[++c],10):(i==="-o"||i==="--output")&&c+1<e.length?r=e[++c]:i.startsWith("-")||o.push(i)}if(!t&&!s)return{stdout:"",stderr:`xan split: must specify -c or -S
|
|
19
|
-
`,exitCode:1};let{headers:a,data:d,error:u}=await v(o,n);if(u)return u;let p=[];if(t){let c=Math.ceil(d.length/t);for(let i=0;i<t;i++)p.push(d.slice(i*c,(i+1)*c))}else if(s)for(let c=0;c<d.length;c+=s)p.push(d.slice(c,c+s));let l=p.filter(c=>c.length>0),h=o[0]?.replace(/\.csv$/,"")||"part";try{let c=n.fs.resolvePath(n.cwd,r);for(let i=0;i<l.length;i++){let f=`${h}_${String(i+1).padStart(3,"0")}.csv`,m=n.fs.resolvePath(c,f);await n.fs.writeFile(m,w(a,l[i]))}return{stdout:`Split into ${l.length} parts
|
|
20
|
-
`,stderr:"",exitCode:0}}catch{return{stdout:`${l.map((i,f)=>`Part ${f+1}: ${i.length} rows`).join(`
|
|
21
|
-
`)}
|
|
22
|
-
`,stderr:"",exitCode:0}}}async function he(e,n){let t="",s=".",r=[];for(let p=0;p<e.length;p++){let l=e[p];(l==="-o"||l==="--output")&&p+1<e.length?s=e[++p]:l.startsWith("-")||(t?r.push(l):t=l)}if(!t)return{stdout:"",stderr:`xan partition: usage: xan partition COLUMN [FILE]
|
|
23
|
-
`,exitCode:1};let{headers:o,data:a,error:d}=await v(r,n);if(d)return d;if(!o.includes(t))return{stdout:"",stderr:`xan partition: column '${t}' not found
|
|
24
|
-
`,exitCode:1};let u=new Map;for(let p of a){let l=String(p[t]??"");u.has(l)||u.set(l,[]),u.get(l)?.push(p)}try{let p=n.fs.resolvePath(n.cwd,s);for(let[l,h]of u){let i=`${l.replace(/[^a-zA-Z0-9_-]/g,"_")||"empty"}.csv`,f=n.fs.resolvePath(p,i);await n.fs.writeFile(f,w(o,h))}return{stdout:`Partitioned into ${u.size} files by '${t}'
|
|
25
|
-
`,stderr:"",exitCode:0}}catch{return{stdout:`${Array.from(u.entries()).map(([l,h])=>`${l}: ${h.length} rows`).join(`
|
|
26
|
-
`)}
|
|
27
|
-
`,stderr:"",exitCode:0}}}async function me(e,n){if(e.length===0)return{stdout:"",stderr:`xan to: usage: xan to <format> [FILE]
|
|
28
|
-
`,exitCode:1};let t=e[0],s=e.slice(1);return t==="json"?Ze(s,n):{stdout:"",stderr:`xan to: unsupported format '${t}'
|
|
29
|
-
`,exitCode:1}}async function Ze(e,n){let t=e.filter(a=>!a.startsWith("-")),{data:s,error:r}=await v(t,n);return r||{stdout:`${JSON.stringify(s,null,2)}
|
|
30
|
-
`,stderr:"",exitCode:0}}async function ge(e,n){let t="",s=[];for(let r=0;r<e.length;r++){let o=e[r];(o==="-f"||o==="--format")&&r+1<e.length?t=e[++r]:o.startsWith("-")||s.push(o)}return t?t==="json"?Qe(s,n):{stdout:"",stderr:`xan from: unsupported format '${t}'
|
|
31
|
-
`,exitCode:1}:{stdout:"",stderr:`xan from: usage: xan from -f <format> [FILE]
|
|
32
|
-
`,exitCode:1}}async function Qe(e,n){let t=e[0],s;if(!t||t==="-")s=n.stdin;else try{let r=n.fs.resolvePath(n.cwd,t);s=await n.fs.readFile(r)}catch{return{stdout:"",stderr:`xan from: ${t}: No such file or directory
|
|
33
|
-
`,exitCode:1}}try{let r=JSON.parse(s.trim());if(!Array.isArray(r))return{stdout:"",stderr:`xan from: JSON input must be an array
|
|
34
|
-
`,exitCode:1};if(r.length===0)return{stdout:`
|
|
35
|
-
`,stderr:"",exitCode:0};if(Array.isArray(r[0])){let[a,...d]=r,u=d.map(p=>{let l={};for(let h=0;h<a.length;h++)l[a[h]]=p[h];return l});return{stdout:w(a,u),stderr:"",exitCode:0}}let o=Object.keys(r[0]).sort();return{stdout:w(o,r),stderr:"",exitCode:0}}catch{return{stdout:"",stderr:`xan from: invalid JSON input
|
|
36
|
-
`,exitCode:1}}}async function ye(e,n){let t=!1,s=0,r="",o=[];for(let c=0;c<e.length;c++){let i=e[c];if(i==="-v"||i==="--invert")t=!0;else if((i==="-l"||i==="--limit")&&c+1<e.length)s=Number.parseInt(e[++c],10);else{if(i==="--help")return $({name:"xan filter",summary:"Filter rows by expression",usage:"xan filter [OPTIONS] EXPR [FILE]",description:"Filter CSV rows using moonblade expressions.",options:["-v, --invert invert match","-l, --limit N limit output to N rows"," --help display help"]});i.startsWith("-")||(r?o.push(i):r=i)}}if(!r)return{stdout:"",stderr:`xan filter: no expression specified
|
|
37
|
-
`,exitCode:1};let{headers:a,data:d,error:u}=await v(o,n);if(u)return u;let p={limits:n.limits?{maxIterations:n.limits.maxJqIterations}:void 0},l=_e(r),h=[];for(let c of d){if(s>0&&h.length>=s)break;let i=P(c,l,p),f=i.length>0&&i.some(m=>!!m);(t?!f:f)&&h.push(c)}return{stdout:w(a,h),stderr:"",exitCode:0}}async function xe(e,n){let t="",s=!1,r=!1,o=[];for(let l=0;l<e.length;l++){let h=e[l];h==="-N"||h==="--numeric"?s=!0:h==="-R"||h==="-r"||h==="--reverse"?r=!0:h==="-s"&&l+1<e.length?t=e[++l]:h.startsWith("-")||o.push(h)}let{headers:a,data:d,error:u}=await v(o,n);if(u)return u;!t&&a.length>0&&(t=a[0]);let p=[...d].sort((l,h)=>{let c=l[t],i=h[t],f;if(s){let m=typeof c=="number"?c:Number.parseFloat(String(c)),g=typeof i=="number"?i:Number.parseFloat(String(i));f=m-g}else f=String(c).localeCompare(String(i));return r?-f:f});return{stdout:w(a,p),stderr:"",exitCode:0}}async function we(e,n){let t="",s=[];for(let p=0;p<e.length;p++){let l=e[p];l==="-s"&&p+1<e.length?t=e[++p]:l.startsWith("-")||s.push(l)}let{headers:r,data:o,error:a}=await v(s,n);if(a)return a;let d=new Set,u=o.filter(p=>{let l=t?String(p[t]):JSON.stringify(p);return d.has(l)?!1:(d.add(l),!0)});return{stdout:w(r,u),stderr:"",exitCode:0}}async function ve(e,n){let t=10,s="",r=!1,o=[];for(let h=0;h<e.length;h++){let c=e[h];(c==="-l"||c==="-n")&&h+1<e.length?t=Number.parseInt(e[++h],10):c==="-R"||c==="-r"||c==="--reverse"?r=!0:c.startsWith("-")||(s?o.push(c):s=c)}let{headers:a,data:d,error:u}=await v(o,n);if(u)return u;!s&&a.length>0&&(s=a[0]);let l=[...d].sort((h,c)=>{let i=h[s],f=c[s],m=typeof i=="number"?i:Number.parseFloat(String(i)),g=typeof f=="number"?f:Number.parseFloat(String(f));return r?m-g:g-m}).slice(0,t);return{stdout:w(a,l),stderr:"",exitCode:0}}j();async function Ce(e,n){let t="",s=!1,r=!1,o=[];for(let f=0;f<e.length;f++){let m=e[f];m==="-O"||m==="--overwrite"?s=!0:m==="--filter"?r=!0:m.startsWith("-")||(t?o.push(m):t=m)}if(!t)return{stdout:"",stderr:`xan map: no expression specified
|
|
38
|
-
`,exitCode:1};let{headers:a,data:d,error:u}=await v(o,n);if(u)return u;let l=T(t).map(({expr:f,name:m})=>({alias:typeof m=="string"?m:m[0],ast:A(f)})),h={limits:n.limits?{maxIterations:n.limits.maxJqIterations}:void 0},c;if(s){c=[...a];for(let f of l)a.includes(f.alias)||c.push(f.alias)}else c=[...a,...l.map(f=>f.alias)];let i=[];for(let f=0;f<d.length;f++){let m=d[f],g={...m},y=!1,x={...m,_row_index:f};for(let S of l){let k=P(x,S.ast,h),C=k.length>0?k[0]:null;if(r&&C==null){y=!0;break}g[S.alias]=C}y||i.push(g)}return{stdout:w(c,i),stderr:"",exitCode:0}}async function be(e,n){let t="",s="",r="",o=[];for(let m=0;m<e.length;m++){let g=e[m];(g==="-r"||g==="--rename")&&m+1<e.length?r=e[++m]:g.startsWith("-")||(t?s?o.push(g):s=g:t=g)}if(!t||!s)return{stdout:"",stderr:`xan transform: usage: xan transform COLUMN EXPR [FILE]
|
|
39
|
-
`,exitCode:1};let{headers:a,data:d,error:u}=await v(o,n);if(u)return u;let p=t.split(",").map(m=>m.trim()),l=r?r.split(",").map(m=>m.trim()):[];for(let m of p)if(!a.includes(m))return{stdout:"",stderr:`xan transform: column '${m}' not found
|
|
40
|
-
`,exitCode:1};let h=A(T(s)[0]?.expr||(j(),Ge(De)).parseMoonblade(s)),c={limits:n.limits?{maxIterations:n.limits.maxJqIterations}:void 0},i=a.map(m=>{let g=p.indexOf(m);return g!==-1&&l[g]?l[g]:m}),f=[];for(let m of d){let g={...m};for(let y=0;y<p.length;y++){let x=p[y],S={...m,_:m[x]},k=P(S,h,c),C=k.length>0?k[0]:null,E=l[y]||x;E!==x&&delete g[x],g[E]=C}f.push(g)}return{stdout:w(i,f),stderr:"",exitCode:0}}async function Se(e,n){let t="",s="|",r=!1,o="",a=[];for(let i=0;i<e.length;i++){let f=e[i];(f==="-s"||f==="--separator")&&i+1<e.length?s=e[++i]:f==="--drop-empty"?r=!0:(f==="-r"||f==="--rename")&&i+1<e.length?o=e[++i]:f.startsWith("-")||(t?a.push(f):t=f)}if(!t)return{stdout:"",stderr:`xan explode: usage: xan explode COLUMN [FILE]
|
|
41
|
-
`,exitCode:1};let{headers:d,data:u,error:p}=await v(a,n);if(p)return p;if(!d.includes(t))return{stdout:"",stderr:`xan explode: column '${t}' not found
|
|
42
|
-
`,exitCode:1};let l=o?d.map(i=>i===t?o:i):d,h=o||t,c=[];for(let i of u){let f=i[t],m=f==null?"":String(f);if(m===""){if(!r){let g={...i};o&&(delete g[t],g[h]=""),c.push(g)}}else{let g=m.split(s);for(let y of g){let x={...i};o&&delete x[t],x[h]=y,c.push(x)}}}return{stdout:w(l,c),stderr:"",exitCode:0}}async function Ie(e,n){let t="",s="|",r="",o=[];for(let g=0;g<e.length;g++){let y=e[g];(y==="-s"||y==="--sep")&&g+1<e.length?s=e[++g]:(y==="-r"||y==="--rename")&&g+1<e.length?r=e[++g]:y.startsWith("-")||(t?o.push(y):t=y)}if(!t)return{stdout:"",stderr:`xan implode: usage: xan implode COLUMN [FILE]
|
|
43
|
-
`,exitCode:1};let{headers:a,data:d,error:u}=await v(o,n);if(u)return u;if(!a.includes(t))return{stdout:"",stderr:`xan implode: column '${t}' not found
|
|
44
|
-
`,exitCode:1};let p=a.filter(g=>g!==t),l=r?a.map(g=>g===t?r:g):a,h=r||t,c=[],i=null,f=[],m=null;for(let g of d){let y=p.map(k=>String(g[k]??"")).join("\0"),x=g[t],S=x==null?"":String(x);if(y!==i){if(m!==null){let k={...m};r&&delete k[t],k[h]=f.join(s),c.push(k)}i=y,f=[S],m=g}else f.push(S)}if(m!==null){let g={...m};r&&delete g[t],g[h]=f.join(s),c.push(g)}return{stdout:w(l,c),stderr:"",exitCode:0}}async function ke(e,n){let t="",s="",r="",o="",a="inner",d="",u=0;for(let C=0;C<e.length;C++){let E=e[C];E==="--left"?a="left":E==="--right"?a="right":E==="--full"?a="full":(E==="-D"||E==="--default")&&C+1<e.length?d=e[++C]:E.startsWith("-")||(u++,u===1?t=E:u===2?s=E:u===3?r=E:u===4&&(o=E))}if(!t||!s||!r||!o)return{stdout:"",stderr:`xan join: usage: xan join KEY1 FILE1 KEY2 FILE2 [OPTIONS]
|
|
45
|
-
`,exitCode:1};let p=await v([s],n);if(p.error)return p.error;let l=await v([o],n);if(l.error)return l.error;let{headers:h,data:c}=p,{headers:i,data:f}=l;if(!h.includes(t))return{stdout:"",stderr:`xan join: column '${t}' not found in first file
|
|
46
|
-
`,exitCode:1};if(!i.includes(r))return{stdout:"",stderr:`xan join: column '${r}' not found in second file
|
|
47
|
-
`,exitCode:1};let m=new Map;for(let C of f){let E=String(C[r]??"");m.has(E)||m.set(E,[]),m.get(E)?.push(C)}let g=new Set(h),y=i.filter(C=>!g.has(C)),x=[...h,...y],S=[],k=new Set;for(let C of c){let E=String(C[t]??""),R=m.get(E);if(R&&R.length>0){k.add(E);for(let F of R){let M={};for(let D of h)M[D]=C[D];for(let D of y)M[D]=F[D];S.push(M)}}else if(a==="left"||a==="full"){let F={};for(let M of h)F[M]=C[M];for(let M of y)F[M]=d;S.push(F)}}if(a==="right"||a==="full")for(let C of f){let E=String(C[r]??"");if(!k.has(E)){let R={};for(let F of h)R[F]=i.includes(F)?C[F]:d;for(let F of y)R[F]=C[F];S.push(R)}}return{stdout:w(x,S),stderr:"",exitCode:0}}async function Ne(e,n){let t="",s="",r=[],o=[];for(let y=0;y<e.length;y++){let x=e[y];(x==="-g"||x==="--groupby")&&y+1<e.length?r=e[++y].split(",").map(S=>S.trim()):x.startsWith("-")||(t?s?o.push(x):s=x:t=x)}if(!t||!s)return{stdout:"",stderr:`xan pivot: usage: xan pivot COLUMN AGG_EXPR [OPTIONS] [FILE]
|
|
48
|
-
`,exitCode:1};let{headers:a,data:d,error:u}=await v(o,n);if(u)return u;if(!a.includes(t))return{stdout:"",stderr:`xan pivot: column '${t}' not found
|
|
49
|
-
`,exitCode:1};let p=s.match(/^(\w+)\((\w+)\)$/);if(!p)return{stdout:"",stderr:`xan pivot: invalid aggregation expression '${s}'
|
|
50
|
-
`,exitCode:1};let[,l,h]=p;r.length===0&&(r=a.filter(y=>y!==t&&y!==h));let c=[];for(let y of d){let x=String(y[t]??"");c.includes(x)||c.push(x)}let i=new Map,f=[];for(let y of d){let x=r.map(E=>String(y[E]??"")).join("\0"),S=String(y[t]??""),k=y[h];i.has(x)||(i.set(x,new Map),f.push(x));let C=i.get(x);C&&(C.has(S)||C.set(S,[]),C.get(S)?.push(k))}let m=[...r,...c],g=[];for(let y of f){let x=y.split("\0"),S=i.get(y);if(!S)continue;let k={};for(let C=0;C<r.length;C++)k[r[C]]=x[C];for(let C of c){let E=S.get(C)||[];k[C]=et(l,E)}g.push(k)}return{stdout:w(m,g),stderr:"",exitCode:0}}function et(e,n){let t=n.filter(s=>s!=null).map(s=>typeof s=="number"?s:Number.parseFloat(String(s))).filter(s=>!Number.isNaN(s));switch(e){case"count":return n.length;case"sum":return t.reduce((s,r)=>s+r,0);case"mean":case"avg":return t.length>0?t.reduce((s,r)=>s+r,0)/t.length:null;case"min":return t.length>0?Math.min(...t):null;case"max":return t.length>0?Math.max(...t):null;case"first":return n.length>0?String(n[0]??""):null;case"last":return n.length>0?String(n[n.length-1]??""):null;default:return null}}async function Ee(e,n){let t="",s=[];for(let d=0;d<e.length;d++){let u=e[d];(u==="-s"||u==="--sort")&&d+1<e.length?t=e[++d]:u.startsWith("-")||s.push(u)}if(s.length<2)return{stdout:"",stderr:`xan merge: usage: xan merge [OPTIONS] FILE1 FILE2 ...
|
|
51
|
-
`,exitCode:1};let r=[],o=null;for(let d of s){let u=await v([d],n);if(u.error)return u.error;if(o===null)o=u.headers;else if(JSON.stringify(o)!==JSON.stringify(u.headers))return{stdout:"",stderr:`xan merge: all files must have the same headers
|
|
52
|
-
`,exitCode:1};r.push({headers:u.headers,data:u.data})}if(!o)return{stdout:"",stderr:"",exitCode:0};let a=[];for(let{data:d}of r)a=a.concat(d);if(t){if(!o.includes(t))return{stdout:"",stderr:`xan merge: column '${t}' not found
|
|
53
|
-
`,exitCode:1};a.sort((d,u)=>{let p=d[t],l=u[t],h=typeof p=="number"?p:Number.parseFloat(String(p)),c=typeof l=="number"?l:Number.parseFloat(String(l));return!Number.isNaN(h)&&!Number.isNaN(c)?h-c:String(p??"").localeCompare(String(l??""))})}return{stdout:w(o,a),stderr:"",exitCode:0}}j();async function Ae(e,n){let t=e.filter(u=>!u.startsWith("-")),{headers:s,data:r,error:o}=await v(t,n);return o||(r.length===0?{stdout:"",stderr:"",exitCode:0}:{stdout:r.map(u=>s.map(p=>u[p])).map(u=>u.map(p=>tt(p)).join(",")).join(`
|
|
54
|
-
`)+`
|
|
55
|
-
`,stderr:"",exitCode:0})}function tt(e){if(e==null)return"";let n=String(e);return n.includes(",")||n.includes('"')||n.includes(`
|
|
56
|
-
`)?`"${n.replace(/"/g,'""')}"`:n}async function Fe(e,n){let t=null,s=null,r=[];for(let c=0;c<e.length;c++){let i=e[c];if(i==="--seed"&&c+1<e.length)s=Number.parseInt(e[++c],10);else if(!i.startsWith("-")){let f=Number.parseInt(i,10);t===null&&!Number.isNaN(f)&&f>0?t=f:r.push(i)}}if(t===null)return{stdout:"",stderr:`xan sample: usage: xan sample <sample-size> [FILE]
|
|
57
|
-
`,exitCode:1};let{headers:o,data:a,error:d}=await v(r,n);if(d)return d;if(a.length<=t)return{stdout:w(o,a),stderr:"",exitCode:0};let u=s!==null?s:Date.now(),p=()=>(u=u*1103515245+12345&2147483647,u/2147483647),l=a.map((c,i)=>i);for(let c=l.length-1;c>0;c--){let i=Math.floor(p()*(c+1));[l[c],l[i]]=[l[i],l[c]]}let h=l.slice(0,t).sort((c,i)=>c-i).map(c=>a[c]);return{stdout:w(o,h),stderr:"",exitCode:0}}async function Le(e,n){let t=!1,s=[];for(let u=0;u<e.length;u++){let p=e[u];p==="-p"||p==="--pad"?t=!0:p.startsWith("-")||s.push(p)}if(s.length===0)return{stdout:"",stderr:`xan cat: no files specified
|
|
58
|
-
`,exitCode:1};let r=await $e(n,s,{cmdName:"xan cat",stopOnError:!0});if(r.exitCode!==0)return{stdout:"",stderr:r.stderr,exitCode:r.exitCode};let o=[],a=[];for(let{content:u}of r.files){let{headers:p,data:l}=Te(u);o.push({headers:p,data:l});for(let h of p)a.includes(h)||a.push(h)}if(!t){let u=JSON.stringify(o[0].headers);for(let p=1;p<o.length;p++)if(JSON.stringify(o[p].headers)!==u)return{stdout:"",stderr:`xan cat: headers do not match (use -p to pad)
|
|
59
|
-
`,exitCode:1};a=o[0].headers}let d=[];for(let{headers:u,data:p}of o)for(let l of p){let h={};for(let c of a)h[c]=u.includes(c)?l[c]:"";d.push(h)}return{stdout:w(a,d),stderr:"",exitCode:0}}async function Oe(e,n){let t="",s=[],r=!1,o=!1,a=[];for(let i=0;i<e.length;i++){let f=e[i];(f==="-s"||f==="--select")&&i+1<e.length?s=e[++i].split(","):f==="-v"||f==="--invert"?r=!0:f==="-i"||f==="--ignore-case"?o=!0:f==="-r"||f==="--regex"||f.startsWith("-")||(t?a.push(f):t=f)}if(!t)return{stdout:"",stderr:`xan search: no pattern specified
|
|
60
|
-
`,exitCode:1};let{headers:d,data:u,error:p}=await v(a,n);if(p)return p;let l=s.length>0?s:d,h;try{h=new RegExp(t,o?"i":"")}catch{return{stdout:"",stderr:`xan search: invalid regex pattern '${t}'
|
|
61
|
-
`,exitCode:1}}let c=u.filter(i=>{let f=l.some(m=>{let g=i[m];return g!=null&&h.test(String(g))});return r?!f:f});return{stdout:w(d,c),stderr:"",exitCode:0}}async function Pe(e,n){let t="",s=[];for(let c of e)c.startsWith("-")||(t?s.push(c):t=c);if(!t)return{stdout:"",stderr:`xan flatmap: no expression specified
|
|
62
|
-
`,exitCode:1};let{headers:r,data:o,error:a}=await v(s,n);if(a)return a;let u=T(t).map(({expr:c,name:i})=>({alias:typeof i=="string"?i:i[0],ast:A(c)})),p={limits:n.limits?{maxIterations:n.limits.maxJqIterations}:void 0},l=[...r,...u.map(c=>c.alias)],h=[];for(let c of o){let i=[],f=1;for(let m of u){let g=P(c,m.ast,p),y=g.length>0&&Array.isArray(g[0])?g[0]:g;i.push(y),f=Math.max(f,y.length)}for(let m=0;m<f;m++){let g={...c};for(let y=0;y<u.length;y++){let x=i[y][m]??null;g[u[y].alias]=x}h.push(g)}}return{stdout:w(l,h),stderr:"",exitCode:0}}async function Me(e,n){let{cmdView:t}=await import("./xan-view-6Z6TWXMY.js");return t(e,n)}var Je=new Set(["fuzzy-join","glob","hist","input","parallel","plot","progress","range","scrape","tokenize","union-find"]),nt=new Set(["agg","behead","cat","count","dedup","drop","enum","explode","f","filter","fixlengths","flatmap","flatten","fmt","frequency","freq","from","groupby","head","headers","implode","join","map","merge","partition","pivot","rename","reverse","sample","search","select","shuffle","slice","sort","split","stats","tail","to","top","transform","transpose","view",...Je]),He={name:"xan",summary:"CSV toolkit for data manipulation",usage:"xan <COMMAND> [OPTIONS] [FILE]",description:`xan is a collection of commands for working with CSV data.
|
|
63
|
-
It provides a simple, ergonomic interface for common data operations.
|
|
64
|
-
|
|
65
|
-
COMMANDS:
|
|
66
|
-
Core:
|
|
67
|
-
headers Show column names
|
|
68
|
-
count Count rows
|
|
69
|
-
head Show first N rows
|
|
70
|
-
tail Show last N rows
|
|
71
|
-
slice Extract row range
|
|
72
|
-
reverse Reverse row order
|
|
73
|
-
behead Remove header row
|
|
74
|
-
sample Random sample of rows
|
|
75
|
-
|
|
76
|
-
Column operations:
|
|
77
|
-
select Select columns (supports glob, ranges, negation)
|
|
78
|
-
drop Drop columns
|
|
79
|
-
rename Rename columns
|
|
80
|
-
enum Add row index column
|
|
81
|
-
|
|
82
|
-
Row operations:
|
|
83
|
-
filter Filter rows by expression
|
|
84
|
-
search Filter rows by regex match
|
|
85
|
-
sort Sort rows
|
|
86
|
-
dedup Remove duplicates
|
|
87
|
-
top Get top N by column
|
|
88
|
-
|
|
89
|
-
Transformations:
|
|
90
|
-
map Add computed columns
|
|
91
|
-
transform Modify existing columns
|
|
92
|
-
explode Split column into multiple rows
|
|
93
|
-
implode Combine rows, join column values
|
|
94
|
-
flatmap Map returning multiple rows
|
|
95
|
-
pivot Reshape rows into columns
|
|
96
|
-
transpose Swap rows and columns
|
|
97
|
-
|
|
98
|
-
Aggregation:
|
|
99
|
-
agg Aggregate values
|
|
100
|
-
groupby Group and aggregate
|
|
101
|
-
frequency Count value occurrences
|
|
102
|
-
stats Show column statistics
|
|
103
|
-
|
|
104
|
-
Multi-file:
|
|
105
|
-
cat Concatenate CSV files
|
|
106
|
-
join Join two CSV files on key
|
|
107
|
-
merge Merge sorted CSV files
|
|
108
|
-
split Split into multiple files
|
|
109
|
-
partition Split by column value
|
|
110
|
-
|
|
111
|
-
Data conversion:
|
|
112
|
-
to Convert CSV to other formats (json)
|
|
113
|
-
from Convert other formats to CSV (json)
|
|
114
|
-
shuffle Randomly reorder rows
|
|
115
|
-
fixlengths Fix ragged CSV files
|
|
116
|
-
|
|
117
|
-
Output:
|
|
118
|
-
view Pretty print as table
|
|
119
|
-
flatten Display records vertically (alias: f)
|
|
120
|
-
fmt Format output
|
|
121
|
-
|
|
122
|
-
EXAMPLES:
|
|
123
|
-
xan headers data.csv
|
|
124
|
-
xan count data.csv
|
|
125
|
-
xan head -n 5 data.csv
|
|
126
|
-
xan select name,email data.csv
|
|
127
|
-
xan select 'vec_*' data.csv # glob pattern
|
|
128
|
-
xan select 'a:c' data.csv # column range
|
|
129
|
-
xan filter 'age > 30' data.csv
|
|
130
|
-
xan search -r '^foo' data.csv
|
|
131
|
-
xan sort -N price data.csv
|
|
132
|
-
xan agg 'sum(amount) as total' data.csv
|
|
133
|
-
xan groupby region 'count() as n' data.csv
|
|
134
|
-
xan explode tags data.csv
|
|
135
|
-
xan join id file1.csv id file2.csv
|
|
136
|
-
xan pivot year 'sum(sales)' data.csv`,options:[" --help display this help and exit"]},st={headers:{name:"xan headers",summary:"Show column names",usage:"xan headers [OPTIONS] [FILE]",description:"Display column names from a CSV file.",options:["-j, --just-names show names only (no index)"]},count:{name:"xan count",summary:"Count rows",usage:"xan count [FILE]",description:"Count the number of data rows (excluding header).",options:[]},filter:{name:"xan filter",summary:"Filter rows by expression",usage:"xan filter [OPTIONS] EXPR [FILE]",description:"Filter CSV rows using moonblade expressions.",options:["-v, --invert invert match","-l, --limit N limit output rows"]},search:{name:"xan search",summary:"Filter rows by regex",usage:"xan search [OPTIONS] PATTERN [FILE]",description:"Filter CSV rows by regex match on columns.",options:["-s, --select COLS search only these columns","-v, --invert invert match","-i, --ignore-case case insensitive"]},select:{name:"xan select",summary:"Select columns",usage:"xan select COLS [FILE]",description:"Select columns by name, index, glob, or range.",options:["Supports: col names, indices (0,1), ranges (a:c), globs (vec_*), negation (!col)"]},explode:{name:"xan explode",summary:"Split column into rows",usage:"xan explode COLUMN [OPTIONS] [FILE]",description:"Split delimited column values into multiple rows.",options:["-s, --separator SEP separator (default: |)","--drop-empty drop empty values","-r, --rename NAME rename column"]},implode:{name:"xan implode",summary:"Combine rows",usage:"xan implode COLUMN [OPTIONS] [FILE]",description:"Combine consecutive rows, joining column values.",options:["-s, --sep SEP separator (default: |)","-r, --rename NAME rename column"]},join:{name:"xan join",summary:"Join CSV files",usage:"xan join KEY1 FILE1 KEY2 FILE2 [OPTIONS]",description:"Join two CSV files on key columns.",options:["--left left outer join","--right right outer join","--full full outer join","-D, --default VAL default for missing"]},pivot:{name:"xan pivot",summary:"Reshape to columns",usage:"xan pivot COLUMN AGG_EXPR [OPTIONS] [FILE]",description:"Turn row values into columns.",options:["-g, --groupby COLS group by columns"]}},en={name:"xan",async execute(e,n){if(e.length===0||_(e))return $(He);let t=e[0],s=e.slice(1);if(_(s)){let r=st[t];return r?$(r):$(He)}if(Je.has(t))return{stdout:"",stderr:`xan ${t}: not yet implemented
|
|
137
|
-
`,exitCode:1};switch(t){case"headers":return se(s,n);case"count":return re(s,n);case"head":return oe(s,n);case"tail":return ie(s,n);case"slice":return ae(s,n);case"reverse":return le(s,n);case"behead":return Ae(s,n);case"sample":return Fe(s,n);case"select":return Q(s,n);case"drop":return ee(s,n);case"rename":return te(s,n);case"enum":return ne(s,n);case"filter":return ye(s,n);case"search":return Oe(s,n);case"sort":return xe(s,n);case"dedup":return we(s,n);case"top":return ve(s,n);case"map":return Ce(s,n);case"transform":return be(s,n);case"explode":return Se(s,n);case"implode":return Ie(s,n);case"flatmap":return Pe(s,n);case"pivot":return Ne(s,n);case"agg":return X(s,n);case"groupby":return Y(s,n);case"frequency":case"freq":return B(s,n);case"stats":return Z(s,n);case"cat":return Le(s,n);case"join":return ke(s,n);case"merge":return Ee(s,n);case"split":return de(s,n);case"partition":return he(s,n);case"to":return me(s,n);case"from":return ge(s,n);case"transpose":return ce(s,n);case"shuffle":return pe(s,n);case"fixlengths":return fe(s,n);case"view":return J(s,n);case"flatten":case"f":return H(s,n);case"fmt":return Me(s,n);default:return nt.has(t)?{stdout:"",stderr:`xan ${t}: not yet implemented
|
|
138
|
-
`,exitCode:1}:{stdout:"",stderr:`xan: unknown command '${t}'
|
|
139
|
-
Run 'xan --help' for usage.
|
|
140
|
-
`,exitCode:1}}}};export{en as xanCommand};
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import{a as r,b as d}from"./chunk-GTNBSMZR.js";import"./chunk-KGOUQS5A.js";var u={name:"alias",summary:"define or display aliases",usage:"alias [name[=value] ...]",options:[" --help display this help and exit"]},o="BASH_ALIAS_",m={name:"alias",async execute(e,a){if(d(e))return r(u);if(e.length===0){let t="";for(let[i,s]of Object.entries(a.env))if(i.startsWith(o)){let n=i.slice(o.length);t+=`alias ${n}='${s}'
|
|
3
|
-
`}return{stdout:t,stderr:"",exitCode:0}}let l=e[0]==="--"?e.slice(1):e;for(let t of l){let i=t.indexOf("=");if(i===-1){let s=o+t;return a.env[s]?{stdout:`alias ${t}='${a.env[s]}'
|
|
4
|
-
`,stderr:"",exitCode:0}:{stdout:"",stderr:`alias: ${t}: not found
|
|
5
|
-
`,exitCode:1}}else{let s=t.slice(0,i),n=t.slice(i+1);(n.startsWith("'")&&n.endsWith("'")||n.startsWith('"')&&n.endsWith('"'))&&(n=n.slice(1,-1)),a.env[o+s]=n}}return{stdout:"",stderr:"",exitCode:0}}},c={name:"unalias",async execute(e,a){if(d(e))return r({name:"unalias",summary:"remove alias definitions",usage:"unalias name [name ...]",options:["-a remove all aliases"," --help display this help and exit"]});if(e.length===0)return{stdout:"",stderr:`unalias: usage: unalias [-a] name [name ...]
|
|
6
|
-
`,exitCode:1};if(e[0]==="-a"){for(let s of Object.keys(a.env))s.startsWith(o)&&delete a.env[s];return{stdout:"",stderr:"",exitCode:0}}let l=e[0]==="--"?e.slice(1):e,t=!1,i="";for(let s of l){let n=o+s;a.env[n]?delete a.env[n]:(i+=`unalias: ${s}: not found
|
|
7
|
-
`,t=!0)}return{stdout:"",stderr:i,exitCode:t?1:0}}};export{m as aliasCommand,c as unaliasCommand};
|