just-bash 2.6.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.
Files changed (176) hide show
  1. package/README.md +1 -1
  2. package/dist/AGENTS.md +1 -1
  3. package/dist/bin/chunks/alias-MGDOL4KG.js +7 -0
  4. package/dist/bin/chunks/awk2-ASLLINAN.js +21 -0
  5. package/dist/bin/{shell/chunks/base64-O7TCK5TL.js → chunks/base64-43KPK6TL.js} +1 -1
  6. package/dist/bin/chunks/bash-OAUBNRSG.js +6 -0
  7. package/dist/bin/{shell/chunks/cat-AJXZOSPN.js → chunks/cat-HNXE2ES2.js} +1 -1
  8. package/dist/bin/chunks/chunk-4PRVMER6.js +2 -0
  9. package/dist/bin/chunks/chunk-C6FK2JV3.js +74 -0
  10. package/dist/bin/chunks/chunk-GZHFXDDO.js +10 -0
  11. package/dist/bin/chunks/chunk-JBABAK44.js +4 -0
  12. package/dist/bin/chunks/chunk-YNACG4DZ.js +6 -0
  13. package/dist/bin/chunks/{column-TSFEMTG6.js → column-HQ4AK5DM.js} +1 -1
  14. package/dist/bin/chunks/{cp-XXWRVG2D.js → cp-VFXCUKXO.js} +1 -1
  15. package/dist/bin/chunks/{curl-TH7YRBSA.js → curl-7IUASLUJ.js} +1 -1
  16. package/dist/bin/chunks/{diff-GI3QVUGD.js → diff-ZGXLP3DN.js} +1 -1
  17. package/dist/bin/chunks/{du-XQPYLN3H.js → du-PECPOFQT.js} +1 -1
  18. package/dist/bin/chunks/env-W6IMQ43Y.js +9 -0
  19. package/dist/bin/chunks/{expansion-BOR3ELLC.js → expansion-IEMZ6T22.js} +1 -1
  20. package/dist/bin/chunks/{gzip-YXK3WZQL.js → gzip-5ILPB46W.js} +1 -1
  21. package/dist/bin/chunks/history-56DL6SXU.js +3 -0
  22. package/dist/bin/{shell/chunks/jq-RGZHJNXC.js → chunks/jq-M2WXBRXF.js} +1 -1
  23. package/dist/bin/chunks/{ls-BEHQBUMC.js → ls-5LN47VHU.js} +1 -1
  24. package/dist/bin/chunks/{mkdir-XJABRAUN.js → mkdir-XMSNS6S5.js} +1 -1
  25. package/dist/bin/chunks/{mv-3ATZ2ABL.js → mv-P4KHB27X.js} +1 -1
  26. package/dist/bin/chunks/{paste-FT6WBQZG.js → paste-UCH462KK.js} +1 -1
  27. package/dist/bin/{shell/chunks/printf-YPXD4CRE.js → chunks/printf-XPBSFXJE.js} +1 -1
  28. package/dist/bin/chunks/python3-ZWX5SFJ3.js +14 -0
  29. package/dist/bin/{shell/chunks/rm-2PKAWTSQ.js → chunks/rm-S7ASVG34.js} +1 -1
  30. package/dist/bin/chunks/{rmdir-GOODLY5W.js → rmdir-OEMA5ZTD.js} +1 -1
  31. package/dist/bin/chunks/{stat-UEQ7KMY5.js → stat-ZZVPXHLF.js} +1 -1
  32. package/dist/bin/{shell/chunks/tee-ZFIT2GTM.js → chunks/tee-XSKPK43X.js} +1 -1
  33. package/dist/bin/chunks/time-F4NVQOJH.js +14 -0
  34. package/dist/bin/chunks/{tr-MBLEXZBI.js → tr-FMT6JWLE.js} +1 -1
  35. package/dist/bin/chunks/{tree-DQBEJH47.js → tree-WC3AXFHC.js} +1 -1
  36. package/dist/bin/chunks/{uniq-IXHB2FVS.js → uniq-NNXAFO6D.js} +1 -1
  37. package/dist/bin/{shell/chunks/wc-SAOHEZYP.js → chunks/wc-CZ2TD6T6.js} +1 -1
  38. package/dist/bin/{shell/chunks/which-FCDFBOMN.js → chunks/which-5QEJAXNR.js} +1 -1
  39. package/dist/bin/chunks/worker.js +1038 -0
  40. package/dist/bin/chunks/xan-OPVCJ3ZA.js +140 -0
  41. package/dist/bin/chunks/{xan-view-6Z6TWXMY.js → xan-view-5SZBYPLG.js} +1 -1
  42. package/dist/bin/chunks/{yq-PFV4T2PV.js → yq-JU6VN4X4.js} +1 -1
  43. package/dist/bin/just-bash.js +251 -251
  44. package/dist/bin/shell/chunks/alias-MGDOL4KG.js +7 -0
  45. package/dist/bin/shell/chunks/awk2-ASLLINAN.js +21 -0
  46. package/dist/bin/{chunks/base64-O7TCK5TL.js → shell/chunks/base64-43KPK6TL.js} +1 -1
  47. package/dist/bin/shell/chunks/bash-OAUBNRSG.js +6 -0
  48. package/dist/bin/{chunks/cat-AJXZOSPN.js → shell/chunks/cat-HNXE2ES2.js} +1 -1
  49. package/dist/bin/shell/chunks/chunk-4PRVMER6.js +2 -0
  50. package/dist/bin/shell/chunks/chunk-C6FK2JV3.js +74 -0
  51. package/dist/bin/shell/chunks/chunk-GZHFXDDO.js +10 -0
  52. package/dist/bin/shell/chunks/chunk-JBABAK44.js +4 -0
  53. package/dist/bin/shell/chunks/chunk-YNACG4DZ.js +6 -0
  54. package/dist/bin/shell/chunks/{column-TSFEMTG6.js → column-HQ4AK5DM.js} +1 -1
  55. package/dist/bin/shell/chunks/{cp-XXWRVG2D.js → cp-VFXCUKXO.js} +1 -1
  56. package/dist/bin/shell/chunks/{curl-TH7YRBSA.js → curl-7IUASLUJ.js} +1 -1
  57. package/dist/bin/shell/chunks/{diff-GI3QVUGD.js → diff-ZGXLP3DN.js} +1 -1
  58. package/dist/bin/shell/chunks/{du-XQPYLN3H.js → du-PECPOFQT.js} +1 -1
  59. package/dist/bin/shell/chunks/env-W6IMQ43Y.js +9 -0
  60. package/dist/bin/shell/chunks/{expansion-BOR3ELLC.js → expansion-IEMZ6T22.js} +1 -1
  61. package/dist/bin/shell/chunks/{gzip-YXK3WZQL.js → gzip-5ILPB46W.js} +1 -1
  62. package/dist/bin/shell/chunks/history-56DL6SXU.js +3 -0
  63. package/dist/bin/{chunks/jq-RGZHJNXC.js → shell/chunks/jq-M2WXBRXF.js} +1 -1
  64. package/dist/bin/shell/chunks/{ls-BEHQBUMC.js → ls-5LN47VHU.js} +1 -1
  65. package/dist/bin/shell/chunks/{mkdir-XJABRAUN.js → mkdir-XMSNS6S5.js} +1 -1
  66. package/dist/bin/shell/chunks/{mv-3ATZ2ABL.js → mv-P4KHB27X.js} +1 -1
  67. package/dist/bin/shell/chunks/{paste-FT6WBQZG.js → paste-UCH462KK.js} +1 -1
  68. package/dist/bin/{chunks/printf-YPXD4CRE.js → shell/chunks/printf-XPBSFXJE.js} +1 -1
  69. package/dist/bin/shell/chunks/python3-ZWX5SFJ3.js +14 -0
  70. package/dist/bin/{chunks/rm-2PKAWTSQ.js → shell/chunks/rm-S7ASVG34.js} +1 -1
  71. package/dist/bin/shell/chunks/{rmdir-GOODLY5W.js → rmdir-OEMA5ZTD.js} +1 -1
  72. package/dist/bin/shell/chunks/{stat-UEQ7KMY5.js → stat-ZZVPXHLF.js} +1 -1
  73. package/dist/bin/{chunks/tee-ZFIT2GTM.js → shell/chunks/tee-XSKPK43X.js} +1 -1
  74. package/dist/bin/shell/chunks/time-F4NVQOJH.js +14 -0
  75. package/dist/bin/shell/chunks/{tr-MBLEXZBI.js → tr-FMT6JWLE.js} +1 -1
  76. package/dist/bin/shell/chunks/{tree-DQBEJH47.js → tree-WC3AXFHC.js} +1 -1
  77. package/dist/bin/shell/chunks/{uniq-IXHB2FVS.js → uniq-NNXAFO6D.js} +1 -1
  78. package/dist/bin/{chunks/wc-SAOHEZYP.js → shell/chunks/wc-CZ2TD6T6.js} +1 -1
  79. package/dist/bin/{chunks/which-FCDFBOMN.js → shell/chunks/which-5QEJAXNR.js} +1 -1
  80. package/dist/bin/shell/chunks/xan-OPVCJ3ZA.js +140 -0
  81. package/dist/bin/shell/chunks/{xan-view-6Z6TWXMY.js → xan-view-5SZBYPLG.js} +1 -1
  82. package/dist/bin/shell/chunks/{yq-PFV4T2PV.js → yq-JU6VN4X4.js} +1 -1
  83. package/dist/bin/shell/shell.js +226 -226
  84. package/dist/bundle/browser.js +623 -623
  85. package/dist/bundle/chunks/alias-YGOORMWI.js +6 -0
  86. package/dist/bundle/chunks/awk2-5K7HVGCQ.js +20 -0
  87. package/dist/bundle/chunks/{base64-3BME25ON.js → base64-2JFR3HGT.js} +1 -1
  88. package/dist/bundle/chunks/bash-BYWM5OPC.js +5 -0
  89. package/dist/bundle/chunks/{cat-MV4K6AUA.js → cat-GPKR7D6K.js} +1 -1
  90. package/dist/bundle/chunks/chunk-76ZRJPDK.js +73 -0
  91. package/dist/bundle/chunks/chunk-F55TLFGB.js +9 -0
  92. package/dist/bundle/chunks/chunk-HWKDQ44K.js +3 -0
  93. package/dist/bundle/chunks/chunk-IEPFPINK.js +5 -0
  94. package/dist/bundle/chunks/chunk-OJDRYQWQ.js +1 -0
  95. package/dist/bundle/chunks/{column-XPDNNO5Y.js → column-R6OLMEUA.js} +1 -1
  96. package/dist/bundle/chunks/{cp-PBJT3GBF.js → cp-NJSENVKC.js} +1 -1
  97. package/dist/bundle/chunks/{curl-XLP4VABU.js → curl-QDCXHQMX.js} +1 -1
  98. package/dist/bundle/chunks/{diff-ZLJYSBRK.js → diff-ELUS3RW7.js} +1 -1
  99. package/dist/bundle/chunks/{du-NQXEC3EF.js → du-T4JUAAB2.js} +1 -1
  100. package/dist/bundle/chunks/env-M3AXY56V.js +8 -0
  101. package/dist/bundle/chunks/{expansion-RIGCFEMA.js → expansion-DXWR3WZB.js} +1 -1
  102. package/dist/bundle/chunks/{gzip-L3NDJG3F.js → gzip-4P4KGYT5.js} +1 -1
  103. package/dist/bundle/chunks/history-TMBGOQO6.js +2 -0
  104. package/dist/bundle/chunks/{jq-RLRYRPOJ.js → jq-KF5D2PYR.js} +1 -1
  105. package/dist/bundle/chunks/{ls-5W3NU5OJ.js → ls-PUJHEPXS.js} +1 -1
  106. package/dist/bundle/chunks/{mkdir-7UKY4B3B.js → mkdir-SF2UE4KB.js} +1 -1
  107. package/dist/bundle/chunks/{mv-FXHEKRTB.js → mv-JPBZPM4O.js} +1 -1
  108. package/dist/bundle/chunks/{paste-QTGVEPH5.js → paste-QAP6Y75J.js} +1 -1
  109. package/dist/bundle/chunks/{printf-66XGXFCD.js → printf-OAPYPRGV.js} +1 -1
  110. package/dist/bundle/chunks/python3-SKZGHYDO.js +13 -0
  111. package/dist/bundle/chunks/{rm-I2SRVF7H.js → rm-MJFRIDNT.js} +1 -1
  112. package/dist/bundle/chunks/{rmdir-XFQE4ZYV.js → rmdir-DU6C7ZEO.js} +1 -1
  113. package/dist/bundle/chunks/{stat-IVQBBOKN.js → stat-IOLJTP7U.js} +1 -1
  114. package/dist/bundle/chunks/{tee-2QU4NRSJ.js → tee-4KHTWVWB.js} +1 -1
  115. package/dist/bundle/chunks/time-EGF4KTWV.js +13 -0
  116. package/dist/bundle/chunks/{tr-EDGW5FG6.js → tr-P43NRVKL.js} +1 -1
  117. package/dist/bundle/chunks/{tree-MEM64BW3.js → tree-UFVZH4SS.js} +1 -1
  118. package/dist/bundle/chunks/{uniq-47QVBRNC.js → uniq-XBP4SJA3.js} +1 -1
  119. package/dist/bundle/chunks/{wc-HE5XARI4.js → wc-VDPK3LVS.js} +1 -1
  120. package/dist/bundle/chunks/{which-UBLRBDHN.js → which-GF77XMJD.js} +1 -1
  121. package/dist/bundle/chunks/worker.js +1038 -0
  122. package/dist/bundle/chunks/xan-RW5GSH6C.js +139 -0
  123. package/dist/bundle/chunks/{xan-view-DMFUMZG7.js → xan-view-ECQUO7AJ.js} +1 -1
  124. package/dist/bundle/chunks/{yq-L665QPQU.js → yq-EMWRPC7R.js} +1 -1
  125. package/dist/bundle/index.js +253 -253
  126. package/dist/commands/python3/fs-bridge-handler.d.ts +50 -0
  127. package/dist/commands/python3/protocol.d.ts +138 -0
  128. package/dist/commands/python3/python3.d.ts +11 -0
  129. package/dist/commands/python3/sync-fs-backend.d.ts +59 -0
  130. package/dist/commands/python3/worker.d.ts +16 -0
  131. package/dist/commands/query-engine/evaluator.d.ts +2 -2
  132. package/dist/commands/query-engine/safe-object.d.ts +49 -0
  133. package/dist/commands/query-engine/value-operations.d.ts +1 -0
  134. package/dist/commands/registry.d.ts +1 -1
  135. package/dist/commands/xan/aggregation.d.ts +1 -1
  136. package/dist/commands/xan/csv.d.ts +16 -0
  137. package/dist/interpreter/alias-expansion.d.ts +1 -1
  138. package/dist/interpreter/helpers/ifs.d.ts +4 -4
  139. package/dist/interpreter/simple-command-assignments.d.ts +1 -1
  140. package/dist/interpreter/types.d.ts +2 -2
  141. package/dist/limits.d.ts +2 -0
  142. package/dist/types.d.ts +2 -2
  143. package/package.json +7 -5
  144. package/dist/bin/chunks/alias-EGIS5LUE.js +0 -7
  145. package/dist/bin/chunks/awk2-GFEJOWML.js +0 -21
  146. package/dist/bin/chunks/bash-PGDTHIM2.js +0 -6
  147. package/dist/bin/chunks/chunk-FSAGDARS.js +0 -74
  148. package/dist/bin/chunks/chunk-KD3EODLB.js +0 -6
  149. package/dist/bin/chunks/chunk-TA7RUHGQ.js +0 -4
  150. package/dist/bin/chunks/chunk-UUQYHLBO.js +0 -10
  151. package/dist/bin/chunks/env-7A4MH7BJ.js +0 -9
  152. package/dist/bin/chunks/history-G5C2J2OY.js +0 -3
  153. package/dist/bin/chunks/time-37F5EBPK.js +0 -14
  154. package/dist/bin/chunks/xan-5HNHTFMB.js +0 -140
  155. package/dist/bin/shell/chunks/alias-EGIS5LUE.js +0 -7
  156. package/dist/bin/shell/chunks/awk2-GFEJOWML.js +0 -21
  157. package/dist/bin/shell/chunks/bash-PGDTHIM2.js +0 -6
  158. package/dist/bin/shell/chunks/chunk-FSAGDARS.js +0 -74
  159. package/dist/bin/shell/chunks/chunk-KD3EODLB.js +0 -6
  160. package/dist/bin/shell/chunks/chunk-TA7RUHGQ.js +0 -4
  161. package/dist/bin/shell/chunks/chunk-UUQYHLBO.js +0 -10
  162. package/dist/bin/shell/chunks/env-7A4MH7BJ.js +0 -9
  163. package/dist/bin/shell/chunks/history-G5C2J2OY.js +0 -3
  164. package/dist/bin/shell/chunks/time-37F5EBPK.js +0 -14
  165. package/dist/bin/shell/chunks/xan-5HNHTFMB.js +0 -140
  166. package/dist/bundle/chunks/alias-ATFBB6D2.js +0 -6
  167. package/dist/bundle/chunks/awk2-6FBZTP57.js +0 -20
  168. package/dist/bundle/chunks/bash-OLRNM52U.js +0 -5
  169. package/dist/bundle/chunks/chunk-3AWP5CWK.js +0 -73
  170. package/dist/bundle/chunks/chunk-A263W2RD.js +0 -9
  171. package/dist/bundle/chunks/chunk-CZPA5RBA.js +0 -5
  172. package/dist/bundle/chunks/chunk-ZVV5VXYZ.js +0 -3
  173. package/dist/bundle/chunks/env-2UI6XINU.js +0 -8
  174. package/dist/bundle/chunks/history-MQDK2OPD.js +0 -2
  175. package/dist/bundle/chunks/time-UWXBG6CS.js +0 -13
  176. package/dist/bundle/chunks/xan-A6VPI4HJ.js +0 -139
@@ -1,5 +0,0 @@
1
- import{k as O}from"./chunk-PSW6BMXW.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(`
2
- `)||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,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/'/g,"&apos;").replace(/"/g,"&quot;")]:[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===`
3
- `||o==="\r")){if(o==="#"){for(;!i()&&n()!==`
4
- `;)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+=`
5
- `;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,3 +0,0 @@
1
- import{c as p}from"./chunk-74CEPOFO.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
2
- `,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}'
3
- `,exitCode:1}};s[l]=u==="number"?parseInt(c,10):c;break}}}}return{ok:!0,result:{flags:s,positional:b}}}export{x as a};
@@ -1,8 +0,0 @@
1
- import{a as m,b as d,c as f}from"./chunk-74CEPOFO.js";import"./chunk-DXB73IDG.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(`
2
- `)+(n.length>0?`
3
- `:""),stderr:"",exitCode:0}}if(!i.exec)return{stdout:"",stderr:`env: command execution not supported in this context
4
- `,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(`
5
- `)+(t.length>0?`
6
- `:""),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(`
7
- `)+(o.length>0?`
8
- `:""),stderr:"",exitCode:c}}};export{C as envCommand,E as printenvCommand};
@@ -1,2 +0,0 @@
1
- import{a as i,b as h}from"./chunk-74CEPOFO.js";import"./chunk-DXB73IDG.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]}
2
- `}return{stdout:r,stderr:"",exitCode:0}}};export{m as historyCommand};
@@ -1,13 +0,0 @@
1
- import"./chunk-DXB73IDG.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'
2
- `,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'
3
- `,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
4
- Elapsed (wall clock) time: %e seconds
5
- 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
6
- `,exitCode:1};s=await r.exec(u,{env:r.env,cwd:r.cwd})}catch(e){s={stdout:"",stderr:`time: ${e.message}
7
- `,exitCode:127}}let l=(performance.now()-c)/1e3,o;if(m?o=`real ${l.toFixed(2)}
8
- user 0.00
9
- sys 0.00
10
- `:(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(`
11
- `)||(o+=`
12
- `)),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}
13
- `,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,139 +0,0 @@
1
- import{a as Te,b as w,c as v,d as H,e as J}from"./chunk-A263W2RD.js";import{a as Xe}from"./chunk-SYMJJMQ4.js";import{a as P}from"./chunk-CZPA5RBA.js";import"./chunk-PSW6BMXW.js";import{a as $e}from"./chunk-7L36YK2X.js";import"./chunk-NUFRM6SI.js";import{a as $,b as _}from"./chunk-74CEPOFO.js";import{b as Re,d as ze,e as Ke,f as Ge}from"./chunk-DXB73IDG.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===`
2
- `||n==="\r")this.pos++;else if(n==="#")for(;this.pos<this.input.length&&this.input[this.pos]!==`
3
- `;)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+=`
4
- `;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
5
- `,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]
6
- `,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
7
- `,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
8
- `,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
9
- `,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(`
10
- `)}
11
- `:`${s.map((a,d)=>`${d} ${a}`).join(`
12
- `)}
13
- `,stderr:"",exitCode:0}}async function re(e,n){let{data:t,error:s}=await v(e,n);return s||{stdout:`${t.length}
14
- `,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
15
- `,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,`
16
- `)}
17
- `,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
18
- `,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
19
- `,stderr:"",exitCode:0}}catch{return{stdout:`${l.map((i,f)=>`Part ${f+1}: ${i.length} rows`).join(`
20
- `)}
21
- `,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]
22
- `,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
23
- `,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}'
24
- `,stderr:"",exitCode:0}}catch{return{stdout:`${Array.from(u.entries()).map(([l,h])=>`${l}: ${h.length} rows`).join(`
25
- `)}
26
- `,stderr:"",exitCode:0}}}async function me(e,n){if(e.length===0)return{stdout:"",stderr:`xan to: usage: xan to <format> [FILE]
27
- `,exitCode:1};let t=e[0],s=e.slice(1);return t==="json"?Ze(s,n):{stdout:"",stderr:`xan to: unsupported format '${t}'
28
- `,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)}
29
- `,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}'
30
- `,exitCode:1}:{stdout:"",stderr:`xan from: usage: xan from -f <format> [FILE]
31
- `,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
32
- `,exitCode:1}}try{let r=JSON.parse(s.trim());if(!Array.isArray(r))return{stdout:"",stderr:`xan from: JSON input must be an array
33
- `,exitCode:1};if(r.length===0)return{stdout:`
34
- `,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
35
- `,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
36
- `,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
37
- `,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]
38
- `,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
39
- `,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]
40
- `,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
41
- `,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]
42
- `,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
43
- `,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]
44
- `,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
45
- `,exitCode:1};if(!i.includes(r))return{stdout:"",stderr:`xan join: column '${r}' not found in second file
46
- `,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]
47
- `,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
48
- `,exitCode:1};let p=s.match(/^(\w+)\((\w+)\)$/);if(!p)return{stdout:"",stderr:`xan pivot: invalid aggregation expression '${s}'
49
- `,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 ...
50
- `,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
51
- `,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
52
- `,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(`
53
- `)+`
54
- `,stderr:"",exitCode:0})}function tt(e){if(e==null)return"";let n=String(e);return n.includes(",")||n.includes('"')||n.includes(`
55
- `)?`"${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]
56
- `,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
57
- `,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)
58
- `,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
59
- `,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}'
60
- `,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
61
- `,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-DMFUMZG7.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.
62
- It provides a simple, ergonomic interface for common data operations.
63
-
64
- COMMANDS:
65
- Core:
66
- headers Show column names
67
- count Count rows
68
- head Show first N rows
69
- tail Show last N rows
70
- slice Extract row range
71
- reverse Reverse row order
72
- behead Remove header row
73
- sample Random sample of rows
74
-
75
- Column operations:
76
- select Select columns (supports glob, ranges, negation)
77
- drop Drop columns
78
- rename Rename columns
79
- enum Add row index column
80
-
81
- Row operations:
82
- filter Filter rows by expression
83
- search Filter rows by regex match
84
- sort Sort rows
85
- dedup Remove duplicates
86
- top Get top N by column
87
-
88
- Transformations:
89
- map Add computed columns
90
- transform Modify existing columns
91
- explode Split column into multiple rows
92
- implode Combine rows, join column values
93
- flatmap Map returning multiple rows
94
- pivot Reshape rows into columns
95
- transpose Swap rows and columns
96
-
97
- Aggregation:
98
- agg Aggregate values
99
- groupby Group and aggregate
100
- frequency Count value occurrences
101
- stats Show column statistics
102
-
103
- Multi-file:
104
- cat Concatenate CSV files
105
- join Join two CSV files on key
106
- merge Merge sorted CSV files
107
- split Split into multiple files
108
- partition Split by column value
109
-
110
- Data conversion:
111
- to Convert CSV to other formats (json)
112
- from Convert other formats to CSV (json)
113
- shuffle Randomly reorder rows
114
- fixlengths Fix ragged CSV files
115
-
116
- Output:
117
- view Pretty print as table
118
- flatten Display records vertically (alias: f)
119
- fmt Format output
120
-
121
- EXAMPLES:
122
- xan headers data.csv
123
- xan count data.csv
124
- xan head -n 5 data.csv
125
- xan select name,email data.csv
126
- xan select 'vec_*' data.csv # glob pattern
127
- xan select 'a:c' data.csv # column range
128
- xan filter 'age > 30' data.csv
129
- xan search -r '^foo' data.csv
130
- xan sort -N price data.csv
131
- xan agg 'sum(amount) as total' data.csv
132
- xan groupby region 'count() as n' data.csv
133
- xan explode tags data.csv
134
- xan join id file1.csv id file2.csv
135
- 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
136
- `,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
137
- `,exitCode:1}:{stdout:"",stderr:`xan: unknown command '${t}'
138
- Run 'xan --help' for usage.
139
- `,exitCode:1}}}};export{en as xanCommand};