@poe-platform/safe-bash 0.1.806 → 0.1.807

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 (856) hide show
  1. package/README.md +4 -0
  2. package/dist/image-ast/portable.d.ts +8 -0
  3. package/dist/image-ast/portable.js +2 -0
  4. package/dist/safe-bash/chunks/{chunk-KRA6WK4Z.js → chunk-3Y54SR4R.js} +6 -6
  5. package/dist/safe-bash/chunks/{chunk-OYJI4L4J.js → chunk-PPAA3LJS.js} +1 -1
  6. package/dist/safe-bash/chunks/{chunk-SCROOJV7.js → chunk-XZ2Y4RWC.js} +2 -2
  7. package/dist/safe-bash/command-chunks/{biff-AU4VGVMD-6EQ64QPG.js → biff-YBHP7ZES-M7TU7NA5.js} +1211 -1205
  8. package/dist/safe-bash/command-chunks/chunk-2A6TBB4F.js +14 -0
  9. package/dist/safe-bash/command-chunks/chunk-2AF7J6FE.js +372 -0
  10. package/dist/safe-bash/command-chunks/{chunk-AITNVBXO.js → chunk-2ANW3FXH.js} +4 -4
  11. package/dist/safe-bash/command-chunks/chunk-2B6XWO6A.js +730 -0
  12. package/dist/safe-bash/command-chunks/chunk-2BKOSQD3.js +11 -0
  13. package/dist/safe-bash/command-chunks/chunk-2EUH5B6A.js +127 -0
  14. package/dist/safe-bash/command-chunks/chunk-2FOLUJLI.js +400 -0
  15. package/dist/safe-bash/command-chunks/{chunk-CZLX3KVF.js → chunk-2GILUQJY.js} +4 -6
  16. package/dist/safe-bash/command-chunks/chunk-2HHGDJ7J.js +280 -0
  17. package/dist/safe-bash/command-chunks/chunk-2NE2GPSF.js +546 -0
  18. package/dist/safe-bash/command-chunks/chunk-2P7BLWWI.js +272 -0
  19. package/dist/safe-bash/command-chunks/chunk-2PSVE7I5.js +101 -0
  20. package/dist/safe-bash/command-chunks/chunk-2UUFZMOH.js +503 -0
  21. package/dist/safe-bash/command-chunks/chunk-2VGAC6S6.js +393 -0
  22. package/dist/safe-bash/command-chunks/chunk-2W54TAGI.js +162 -0
  23. package/dist/safe-bash/command-chunks/chunk-326A5G42.js +328 -0
  24. package/dist/safe-bash/command-chunks/chunk-36KIT4DU.js +218 -0
  25. package/dist/safe-bash/command-chunks/chunk-3CHQG25N.js +455 -0
  26. package/dist/safe-bash/command-chunks/chunk-3JQ3RF2O.js +72 -0
  27. package/dist/safe-bash/command-chunks/chunk-3MLJWSYL.js +92 -0
  28. package/dist/safe-bash/command-chunks/{chunk-ASYR2LU7.js → chunk-3RQCLLQA.js} +5 -5
  29. package/dist/safe-bash/command-chunks/chunk-3SEQG5JH.js +521 -0
  30. package/dist/safe-bash/command-chunks/chunk-3SWT2KYH.js +78 -0
  31. package/dist/safe-bash/command-chunks/chunk-3VETFXYR.js +170 -0
  32. package/dist/safe-bash/command-chunks/chunk-3W6PTHHB.js +65 -0
  33. package/dist/safe-bash/command-chunks/chunk-457CU3IC.js +8 -0
  34. package/dist/safe-bash/command-chunks/chunk-45BW6MGM.js +250 -0
  35. package/dist/safe-bash/command-chunks/chunk-47MFDPH4.js +419 -0
  36. package/dist/safe-bash/command-chunks/chunk-4ATHODCG.js +444 -0
  37. package/dist/safe-bash/command-chunks/chunk-4DJICIFV.js +227 -0
  38. package/dist/safe-bash/command-chunks/chunk-4FNQPK7C.js +385 -0
  39. package/dist/safe-bash/command-chunks/chunk-4LXDJES2.js +65 -0
  40. package/dist/safe-bash/command-chunks/chunk-4QRXKUD2.js +662 -0
  41. package/dist/safe-bash/command-chunks/chunk-4QYNOBWZ.js +455 -0
  42. package/dist/safe-bash/command-chunks/{chunk-MWNWT6HG.js → chunk-4XFFIKA3.js} +5 -5
  43. package/dist/safe-bash/command-chunks/chunk-5AU5ENL5.js +180 -0
  44. package/dist/safe-bash/command-chunks/chunk-5DFZAJHL.js +324 -0
  45. package/dist/safe-bash/command-chunks/chunk-5GEFJROP.js +270 -0
  46. package/dist/safe-bash/command-chunks/chunk-5HWX4XYW.js +263 -0
  47. package/dist/safe-bash/command-chunks/chunk-5LKNP4IF.js +872 -0
  48. package/dist/safe-bash/command-chunks/chunk-5OEHUIVE.js +240 -0
  49. package/dist/safe-bash/command-chunks/chunk-6EHVFKM7.js +171 -0
  50. package/dist/safe-bash/command-chunks/chunk-6JTPLJ3B.js +155 -0
  51. package/dist/safe-bash/command-chunks/chunk-6KLUPQ65.js +496 -0
  52. package/dist/safe-bash/command-chunks/chunk-6NS5RXQ7.js +285 -0
  53. package/dist/safe-bash/command-chunks/chunk-6PJIQEH4.js +3472 -0
  54. package/dist/safe-bash/command-chunks/chunk-763ECQWB.js +566 -0
  55. package/dist/safe-bash/command-chunks/chunk-7DADVPKN.js +23 -0
  56. package/dist/safe-bash/command-chunks/chunk-7LEADSSA.js +164 -0
  57. package/dist/safe-bash/command-chunks/chunk-7MMSBVUP.js +732 -0
  58. package/dist/safe-bash/command-chunks/chunk-7OXNWLSL.js +35 -0
  59. package/dist/safe-bash/command-chunks/chunk-7PZASWL6.js +354 -0
  60. package/dist/safe-bash/command-chunks/{chunk-ZBR3UH4P.js → chunk-7QH3WAMQ.js} +2 -2
  61. package/dist/safe-bash/command-chunks/{chunk-CB3HTIDK.js → chunk-7SOE7XIS.js} +11 -11
  62. package/dist/safe-bash/command-chunks/chunk-7Y3ZQ6FE.js +56 -0
  63. package/dist/safe-bash/command-chunks/chunk-A2YEQYCC.js +289 -0
  64. package/dist/safe-bash/command-chunks/chunk-A3XE767Q.js +502 -0
  65. package/dist/safe-bash/command-chunks/{chunk-MWY75E3F.js → chunk-A6LCBGE6.js} +187 -187
  66. package/dist/safe-bash/command-chunks/{chunk-HFUL6E5I.js → chunk-A7CE4EIU.js} +33 -151
  67. package/dist/safe-bash/command-chunks/chunk-A7EMM3SB.js +297 -0
  68. package/dist/safe-bash/command-chunks/{chunk-G3YO3JIN.js → chunk-ABH5FMMA.js} +1 -1
  69. package/dist/safe-bash/command-chunks/chunk-AEJZEGW7.js +1376 -0
  70. package/dist/safe-bash/command-chunks/chunk-AELXRNM6.js +207 -0
  71. package/dist/safe-bash/command-chunks/chunk-AEZIPWRI.js +260 -0
  72. package/dist/safe-bash/command-chunks/{chunk-AHD3CGAY.js → chunk-AFPXADZG.js} +4 -4
  73. package/dist/safe-bash/command-chunks/chunk-AIOB34IX.js +201 -0
  74. package/dist/safe-bash/command-chunks/chunk-AJEYCC4X.js +262 -0
  75. package/dist/safe-bash/command-chunks/chunk-ALMHXDKZ.js +321 -0
  76. package/dist/safe-bash/command-chunks/chunk-AQ6RTM2M.js +309 -0
  77. package/dist/safe-bash/command-chunks/chunk-AQNFEGMZ.js +481 -0
  78. package/dist/safe-bash/command-chunks/{chunk-2AKKYY5G.js → chunk-ASZ4EMKE.js} +1 -1
  79. package/dist/safe-bash/command-chunks/chunk-AYJGINE5.js +144 -0
  80. package/dist/safe-bash/command-chunks/{chunk-MRFW2E6B.js → chunk-B4UWZCQR.js} +1 -1
  81. package/dist/safe-bash/command-chunks/chunk-BDYKJTBQ.js +43 -0
  82. package/dist/safe-bash/command-chunks/chunk-BERVTMQB.js +41 -0
  83. package/dist/safe-bash/command-chunks/chunk-BZOY2UMP.js +275 -0
  84. package/dist/safe-bash/command-chunks/{chunk-W47KIMSP.js → chunk-C2EYJT4S.js} +1 -1
  85. package/dist/safe-bash/command-chunks/chunk-CK5Q6RDE.js +342 -0
  86. package/dist/safe-bash/command-chunks/chunk-CKEODJVT.js +992 -0
  87. package/dist/safe-bash/command-chunks/{chunk-Z7UIOPHJ.js → chunk-DCMSPMMD.js} +1 -1
  88. package/dist/safe-bash/command-chunks/chunk-DE66JRWJ.js +352 -0
  89. package/dist/safe-bash/command-chunks/chunk-DKNNYPOI.js +409 -0
  90. package/dist/safe-bash/command-chunks/chunk-DV745GFU.js +294 -0
  91. package/dist/safe-bash/command-chunks/chunk-DXX2Z2QA.js +33 -0
  92. package/dist/safe-bash/command-chunks/chunk-E7AYF54A.js +473 -0
  93. package/dist/safe-bash/command-chunks/chunk-EDSFQJAU.js +159 -0
  94. package/dist/safe-bash/command-chunks/{chunk-UQ3KEUCF.js → chunk-ESD5ZD74.js} +7 -1
  95. package/dist/safe-bash/command-chunks/chunk-EUXUCRCI.js +1739 -0
  96. package/dist/safe-bash/command-chunks/chunk-F2ORFLCH.js +3669 -0
  97. package/dist/safe-bash/command-chunks/chunk-FANIWOBM.js +311 -0
  98. package/dist/safe-bash/command-chunks/chunk-FOO3AXFK.js +47 -0
  99. package/dist/safe-bash/command-chunks/chunk-FRZ5P5AB.js +131 -0
  100. package/dist/safe-bash/command-chunks/chunk-FZSQMMYV.js +276 -0
  101. package/dist/safe-bash/command-chunks/{chunk-P6NUIMMX.js → chunk-G5F2VSQ7.js} +1 -1
  102. package/dist/safe-bash/command-chunks/chunk-GGOZXIGH.js +299 -0
  103. package/dist/safe-bash/command-chunks/chunk-GIESJLR2.js +241 -0
  104. package/dist/safe-bash/command-chunks/chunk-GLPIFP7N.js +385 -0
  105. package/dist/safe-bash/command-chunks/chunk-GZ2N24A2.js +342 -0
  106. package/dist/safe-bash/command-chunks/chunk-H2NWPMNW.js +216 -0
  107. package/dist/safe-bash/command-chunks/chunk-HHLVI2CB.js +3949 -0
  108. package/dist/safe-bash/command-chunks/chunk-HJDE7ZNV.js +82 -0
  109. package/dist/safe-bash/command-chunks/chunk-HOAM3F5I.js +124 -0
  110. package/dist/safe-bash/command-chunks/chunk-HPKUFWHW.js +482 -0
  111. package/dist/safe-bash/command-chunks/chunk-HPMVMOD2.js +109 -0
  112. package/dist/safe-bash/command-chunks/chunk-HQAHDJPX.js +8 -0
  113. package/dist/safe-bash/command-chunks/chunk-HR2Y6YEP.js +12 -0
  114. package/dist/safe-bash/command-chunks/chunk-HUNXIAOL.js +62 -0
  115. package/dist/safe-bash/command-chunks/chunk-I4JWZOSP.js +244 -0
  116. package/dist/safe-bash/command-chunks/chunk-I6AMDG2T.js +85 -0
  117. package/dist/safe-bash/command-chunks/chunk-IB2Q5CL3.js +288 -0
  118. package/dist/safe-bash/command-chunks/chunk-IFNLDOJ4.js +316 -0
  119. package/dist/safe-bash/command-chunks/chunk-IKHBXETN.js +174 -0
  120. package/dist/safe-bash/command-chunks/chunk-IOSWG5JS.js +228 -0
  121. package/dist/safe-bash/command-chunks/chunk-IQFRPIXH.js +317 -0
  122. package/dist/safe-bash/command-chunks/chunk-IR6ZKAUH.js +582 -0
  123. package/dist/safe-bash/command-chunks/chunk-IW7PEB4I.js +297 -0
  124. package/dist/safe-bash/command-chunks/chunk-JGGRMERW.js +36 -0
  125. package/dist/safe-bash/command-chunks/chunk-JHAY3KYC.js +520 -0
  126. package/dist/safe-bash/command-chunks/{chunk-UO25D4WG.js → chunk-JITDS55R.js} +22 -22
  127. package/dist/safe-bash/command-chunks/chunk-JJK3CU7Z.js +6 -0
  128. package/dist/safe-bash/command-chunks/{chunk-XKZWUMH4.js → chunk-JN7GNI2C.js} +1 -1
  129. package/dist/safe-bash/command-chunks/chunk-JQ3EJKHF.js +160 -0
  130. package/dist/safe-bash/command-chunks/chunk-JQE256UO.js +292 -0
  131. package/dist/safe-bash/command-chunks/chunk-JQZ3BXWY.js +382 -0
  132. package/dist/safe-bash/command-chunks/{chunk-7DLR4HCC.js → chunk-JWSOFSGI.js} +22 -22
  133. package/dist/safe-bash/command-chunks/chunk-K3CDZMUN.js +168 -0
  134. package/dist/safe-bash/command-chunks/{chunk-SUYSZJI3.js → chunk-K5COUQAQ.js} +4 -4
  135. package/dist/safe-bash/command-chunks/chunk-K7HUXUN2.js +489 -0
  136. package/dist/safe-bash/command-chunks/chunk-KB3CY3QO.js +62 -0
  137. package/dist/safe-bash/command-chunks/chunk-KCBVOYAY.js +92 -0
  138. package/dist/safe-bash/command-chunks/chunk-KD25ICP4.js +366 -0
  139. package/dist/safe-bash/command-chunks/chunk-KDKQ5D55.js +180 -0
  140. package/dist/safe-bash/command-chunks/chunk-KNKDUEDW.js +521 -0
  141. package/dist/safe-bash/command-chunks/chunk-KR2PQ7GD.js +174 -0
  142. package/dist/safe-bash/command-chunks/chunk-KS6WUDPM.js +153 -0
  143. package/dist/safe-bash/command-chunks/{chunk-XFHUSZBM.js → chunk-KUGV3SSL.js} +5 -5
  144. package/dist/safe-bash/command-chunks/chunk-L2JAP5KO.js +249 -0
  145. package/dist/safe-bash/command-chunks/chunk-L2KEA6SN.js +271 -0
  146. package/dist/safe-bash/command-chunks/chunk-L3WY5ASN.js +526 -0
  147. package/dist/safe-bash/command-chunks/chunk-L4XEXXVQ.js +399 -0
  148. package/dist/safe-bash/command-chunks/chunk-LDTUZIJK.js +90 -0
  149. package/dist/safe-bash/command-chunks/chunk-LHDB4QO5.js +479 -0
  150. package/dist/safe-bash/command-chunks/chunk-LHL6RWGJ.js +548 -0
  151. package/dist/safe-bash/command-chunks/chunk-LHRXDH45.js +164 -0
  152. package/dist/safe-bash/command-chunks/chunk-LQOKYG3O.js +153 -0
  153. package/dist/safe-bash/command-chunks/chunk-LRDME6WV.js +12 -0
  154. package/dist/safe-bash/command-chunks/chunk-LWVDJB5S.js +305 -0
  155. package/dist/safe-bash/command-chunks/chunk-M57GLLK4.js +27 -0
  156. package/dist/safe-bash/command-chunks/chunk-MAHX3IW3.js +108 -0
  157. package/dist/safe-bash/command-chunks/{chunk-LQZSR6DT.js → chunk-MDV7W5AS.js} +2 -2
  158. package/dist/safe-bash/command-chunks/chunk-MG7AJD5E.js +168 -0
  159. package/dist/safe-bash/command-chunks/chunk-MHJ3DQUE.js +213 -0
  160. package/dist/safe-bash/command-chunks/chunk-MLGNBD7V.js +552 -0
  161. package/dist/safe-bash/command-chunks/chunk-MN2M33JK.js +237 -0
  162. package/dist/safe-bash/command-chunks/chunk-MOL3TRBT.js +32 -0
  163. package/dist/safe-bash/command-chunks/chunk-MQFXMBGD.js +75 -0
  164. package/dist/safe-bash/command-chunks/chunk-MQPWE22J.js +171 -0
  165. package/dist/safe-bash/command-chunks/chunk-MQU6Q75R.js +523 -0
  166. package/dist/safe-bash/command-chunks/chunk-MWAAMNAM.js +353 -0
  167. package/dist/safe-bash/command-chunks/chunk-MZ4BTMTI.js +240 -0
  168. package/dist/safe-bash/command-chunks/chunk-N4DY4FPA.js +679 -0
  169. package/dist/safe-bash/command-chunks/chunk-N74TJL6X.js +183 -0
  170. package/dist/safe-bash/command-chunks/chunk-NA5Q4V2H.js +304 -0
  171. package/dist/safe-bash/command-chunks/chunk-NSM366N6.js +22 -0
  172. package/dist/safe-bash/command-chunks/chunk-NY4ZPV3N.js +523 -0
  173. package/dist/safe-bash/command-chunks/chunk-NYBF2BVE.js +17 -0
  174. package/dist/safe-bash/command-chunks/chunk-OBK24KGM.js +24 -0
  175. package/dist/safe-bash/command-chunks/{chunk-GDAS4LY7.js → chunk-OEKLEUUW.js} +4 -4
  176. package/dist/safe-bash/command-chunks/chunk-OGWJD5QP.js +404 -0
  177. package/dist/safe-bash/command-chunks/chunk-OIPATOZW.js +154 -0
  178. package/dist/safe-bash/command-chunks/chunk-OP6J3OLL.js +243 -0
  179. package/dist/safe-bash/command-chunks/chunk-OTTMIB3C.js +266 -0
  180. package/dist/safe-bash/command-chunks/{chunk-OZHPB4KD.js → chunk-OU4VE5CR.js} +12 -12
  181. package/dist/safe-bash/command-chunks/chunk-P42REFYL.js +228 -0
  182. package/dist/safe-bash/command-chunks/{chunk-YJ3TFZB2.js → chunk-PQOAM5SC.js} +1 -1
  183. package/dist/safe-bash/command-chunks/chunk-PQOIOVF2.js +444 -0
  184. package/dist/safe-bash/command-chunks/chunk-PRQEVUNE.js +205 -0
  185. package/dist/safe-bash/command-chunks/{chunk-W5OR7COJ.js → chunk-PVLPWVRH.js} +21 -21
  186. package/dist/safe-bash/command-chunks/{chunk-BNG4ZMZ3.js → chunk-PXL4NBYP.js} +1 -78
  187. package/dist/safe-bash/command-chunks/chunk-Q6W5FRZG.js +41 -0
  188. package/dist/safe-bash/command-chunks/{chunk-KLCHCSIV.js → chunk-QGD64UHJ.js} +1 -1
  189. package/dist/safe-bash/command-chunks/chunk-QHS7PDG3.js +188 -0
  190. package/dist/safe-bash/command-chunks/chunk-QXCSASIE.js +151 -0
  191. package/dist/safe-bash/command-chunks/chunk-QYCBVKFT.js +255 -0
  192. package/dist/safe-bash/command-chunks/chunk-R4TYL2G6.js +1529 -0
  193. package/dist/safe-bash/command-chunks/chunk-RAXJVM4U.js +625 -0
  194. package/dist/safe-bash/command-chunks/chunk-RBFZYSZZ.js +207 -0
  195. package/dist/safe-bash/command-chunks/chunk-RJHVJZ4H.js +185 -0
  196. package/dist/safe-bash/command-chunks/chunk-RKPPUYZE.js +213 -0
  197. package/dist/safe-bash/command-chunks/chunk-RMJNV6Q7.js +23 -0
  198. package/dist/safe-bash/command-chunks/{chunk-MR2RLUPV.js → chunk-RQHQCJMV.js} +11 -9
  199. package/dist/safe-bash/command-chunks/chunk-RR6QQ25D.js +71 -0
  200. package/dist/safe-bash/command-chunks/{chunk-JW3KIZU6.js → chunk-RUXY7GN5.js} +1 -1
  201. package/dist/safe-bash/command-chunks/chunk-RZC7QHL6.js +112 -0
  202. package/dist/safe-bash/command-chunks/chunk-RZJRR4UJ.js +1677 -0
  203. package/dist/safe-bash/command-chunks/chunk-S4OBYRNI.js +639 -0
  204. package/dist/safe-bash/command-chunks/{chunk-DQNDEWCI.js → chunk-S65T5JJO.js} +12 -12
  205. package/dist/safe-bash/command-chunks/chunk-S6PPBBXX.js +77 -0
  206. package/dist/safe-bash/command-chunks/chunk-SCG4LK5U.js +265 -0
  207. package/dist/safe-bash/command-chunks/chunk-SDTC2BLK.js +143 -0
  208. package/dist/safe-bash/command-chunks/chunk-SEK43FRN.js +357 -0
  209. package/dist/safe-bash/command-chunks/chunk-SH45NZ2P.js +194 -0
  210. package/dist/safe-bash/command-chunks/chunk-SM733XRT.js +250 -0
  211. package/dist/safe-bash/command-chunks/chunk-SSRGI476.js +116 -0
  212. package/dist/safe-bash/command-chunks/chunk-SUUD352U.js +127 -0
  213. package/dist/safe-bash/command-chunks/{chunk-B5F2KQYA.js → chunk-SWUVHT7G.js} +1 -1
  214. package/dist/safe-bash/command-chunks/chunk-TBAH4XGI.js +38 -0
  215. package/dist/safe-bash/command-chunks/chunk-TBVWTZTR.js +469 -0
  216. package/dist/safe-bash/command-chunks/chunk-TGHQGJNR.js +144 -0
  217. package/dist/safe-bash/command-chunks/{chunk-Q6JLT2EY.js → chunk-TL3KDYEM.js} +8 -110
  218. package/dist/safe-bash/command-chunks/chunk-TVAEX4WQ.js +473 -0
  219. package/dist/safe-bash/command-chunks/chunk-TZ2J6LGM.js +163 -0
  220. package/dist/safe-bash/command-chunks/chunk-UICO7H6S.js +186 -0
  221. package/dist/safe-bash/command-chunks/chunk-UJTJFMIN.js +501 -0
  222. package/dist/safe-bash/command-chunks/chunk-UMWWCLBG.js +109 -0
  223. package/dist/safe-bash/command-chunks/chunk-UPXFSGQG.js +134 -0
  224. package/dist/safe-bash/command-chunks/chunk-UWUYSXYT.js +272 -0
  225. package/dist/safe-bash/command-chunks/{chunk-5FMXQUDY.js → chunk-UZOGSYJP.js} +1 -1
  226. package/dist/safe-bash/command-chunks/chunk-V3RGA5PS.js +125 -0
  227. package/dist/safe-bash/command-chunks/chunk-VEUQWV2V.js +287 -0
  228. package/dist/safe-bash/command-chunks/chunk-VGKYTZT5.js +161 -0
  229. package/dist/safe-bash/command-chunks/chunk-VQUEIEVP.js +410 -0
  230. package/dist/safe-bash/command-chunks/chunk-VU3YUC3U.js +169 -0
  231. package/dist/safe-bash/command-chunks/chunk-W32KW66B.js +27 -0
  232. package/dist/safe-bash/command-chunks/chunk-W543LSYH.js +899 -0
  233. package/dist/safe-bash/command-chunks/chunk-W5YFDYHO.js +387 -0
  234. package/dist/safe-bash/command-chunks/chunk-W6DV2CLS.js +267 -0
  235. package/dist/safe-bash/command-chunks/chunk-WAKYUXVQ.js +215 -0
  236. package/dist/safe-bash/command-chunks/chunk-WGOL3MM6.js +125 -0
  237. package/dist/safe-bash/command-chunks/{chunk-N2A7V3WY.js → chunk-WHNYT34N.js} +3 -3
  238. package/dist/safe-bash/command-chunks/chunk-WOZCIRJ5.js +169 -0
  239. package/dist/safe-bash/command-chunks/chunk-WVB6ONZS.js +232 -0
  240. package/dist/safe-bash/command-chunks/chunk-WVESNAND.js +25 -0
  241. package/dist/safe-bash/command-chunks/chunk-XDEA3TL5.js +322 -0
  242. package/dist/safe-bash/command-chunks/chunk-XFEUWSYG.js +357 -0
  243. package/dist/safe-bash/command-chunks/chunk-XFMJ4RMS.js +2849 -0
  244. package/dist/safe-bash/command-chunks/chunk-XH6DXJHX.js +196 -0
  245. package/dist/safe-bash/command-chunks/chunk-XNJ67APB.js +6 -0
  246. package/dist/safe-bash/command-chunks/chunk-XP6BHGZ6.js +227 -0
  247. package/dist/safe-bash/command-chunks/chunk-XXFHTGV2.js +142 -0
  248. package/dist/safe-bash/command-chunks/chunk-Y5GI5PVT.js +139 -0
  249. package/dist/safe-bash/command-chunks/chunk-Y6KHC3JB.js +177 -0
  250. package/dist/safe-bash/command-chunks/{chunk-2UWPMSME.js → chunk-Y72LPXST.js} +8 -8
  251. package/dist/safe-bash/command-chunks/chunk-YDRWQZNB.js +69 -0
  252. package/dist/safe-bash/command-chunks/{chunk-P4OJBL2B.js → chunk-YFZ6FPIC.js} +1 -1
  253. package/dist/safe-bash/command-chunks/chunk-YH4DC4RP.js +171 -0
  254. package/dist/safe-bash/command-chunks/chunk-YH7KKMMN.js +463 -0
  255. package/dist/safe-bash/command-chunks/{chunk-MN3BB4WW.js → chunk-YP3WWV5N.js} +4 -4
  256. package/dist/safe-bash/command-chunks/chunk-YPVBU7QF.js +2817 -0
  257. package/dist/safe-bash/command-chunks/chunk-YQYVEVUE.js +1621 -0
  258. package/dist/safe-bash/command-chunks/chunk-YRNBIU5U.js +175 -0
  259. package/dist/safe-bash/command-chunks/chunk-Z7ESJVFP.js +10 -0
  260. package/dist/safe-bash/command-chunks/chunk-ZTAFAHY3.js +653 -0
  261. package/dist/safe-bash/command-chunks/chunk-ZXKOMB24.js +85 -0
  262. package/dist/safe-bash/command-chunks/{clipboard-XCSQACOK-SHFXT53F.js → clipboard-6SDGQGC3-TVJ3CG7A.js} +4 -4
  263. package/dist/safe-bash/command-chunks/{command-engine-4TEGTXCQ.js → command-engine-KMLHVFMA.js} +356 -316
  264. package/dist/safe-bash/command-chunks/{engine-QDC5VCGO-LYAAFESF.js → engine-EOYR2WTY-KUFLFTDE.js} +2 -4
  265. package/dist/safe-bash/command-chunks/{gnumeric-OCFH63UT-YI7SG7TN.js → gnumeric-ABKSRBZJ-MPIIPXKP.js} +3 -3
  266. package/dist/safe-bash/command-chunks/inspection-command-ULEU7ZVV.js +7 -0
  267. package/dist/safe-bash/command-chunks/model-store-JUFU3RSW.js +54 -0
  268. package/dist/safe-bash/command-chunks/pdf-22JDKKAR-UDWNSWYB.js +338 -0
  269. package/dist/safe-bash/command-chunks/{pptx-XG3YSXWZ-XAG36NAB.js → pptx-YDKHIGCD-H7FU4VMJ.js} +2 -2
  270. package/dist/safe-bash/commands/bc/index.browser.js +2 -2
  271. package/dist/safe-bash/commands/diffpdf/index.d.ts +2 -0
  272. package/dist/safe-bash/commands/diffpdf/index.js +2 -0
  273. package/dist/safe-bash/commands/dot/index.d.ts +2 -0
  274. package/dist/safe-bash/commands/dot/index.js +2 -0
  275. package/dist/safe-bash/commands/llm/collections.browser.js +6 -0
  276. package/dist/safe-bash/commands/llm/collections.d.ts +2 -0
  277. package/dist/safe-bash/commands/llm/collections.js +2 -0
  278. package/dist/safe-bash/commands/pandoc/index.browser.js +1 -1
  279. package/dist/safe-bash/commands/rsvg-convert/index.d.ts +2 -0
  280. package/dist/safe-bash/commands/rsvg-convert/index.js +2 -0
  281. package/dist/safe-bash/commands/safejs/io.d.ts +1 -1
  282. package/dist/safe-bash/commands/safejs/io.js +1 -1
  283. package/dist/safe-bash/commands/safejs/options.d.ts +1 -1
  284. package/dist/safe-bash/commands/safejs/options.js +1 -1
  285. package/dist/safe-bash/commands/safejs/render.d.ts +1 -1
  286. package/dist/safe-bash/commands/safejs/render.js +1 -1
  287. package/dist/safe-bash/commands/safejs/runtime.d.ts +1 -1
  288. package/dist/safe-bash/commands/safejs/runtime.js +1 -1
  289. package/dist/safe-bash/commands/safejs/types.d.ts +1 -1
  290. package/dist/safe-bash/commands/safejs/types.js +1 -1
  291. package/dist/safe-bash/commands/wdiff/index.d.ts +2 -0
  292. package/dist/safe-bash/commands/wdiff/index.js +2 -0
  293. package/dist/safe-bash/core.d.ts +4 -0
  294. package/dist/safe-bash/core.js +4 -0
  295. package/dist/safe-bash/full-core.browser.js +59 -35
  296. package/dist/safe-bash/optional-host.browser.js +7 -7
  297. package/dist/safe-bash/plugins/index.browser.js +7 -7
  298. package/dist/safe-bash/registry-entry.browser.js +6 -6
  299. package/dist/safe-bash/search.browser.js +2 -2
  300. package/dist/safe-bash/shell-entry.browser.js +3 -3
  301. package/dist/safe-bash-checksum-engine/index.js +83 -40
  302. package/dist/safe-bash-checksum-engine/md5.d.ts +2 -0
  303. package/dist/safe-bash-checksum-engine/md5.js +7 -0
  304. package/dist/safe-bash-command-awk/awk-inspection.js +2 -2
  305. package/dist/safe-bash-command-awk/awk-runtime.js +2 -2
  306. package/dist/safe-bash-command-awk/awk.js +7 -7
  307. package/dist/safe-bash-command-awk/index.js +7 -7
  308. package/dist/safe-bash-command-chmod/command.js +1 -1
  309. package/dist/safe-bash-command-chmod/index.js +1 -1
  310. package/dist/safe-bash-command-csvkit/index.js +6 -6
  311. package/dist/safe-bash-command-diff/index.js +3 -3
  312. package/dist/safe-bash-command-diffpdf/LICENSE +21 -0
  313. package/dist/safe-bash-command-diffpdf/index.d.ts +12 -0
  314. package/dist/safe-bash-command-diffpdf/index.js +107 -0
  315. package/dist/safe-bash-command-docx/command.d.ts +36 -0
  316. package/dist/{safe-bash-docx-engine → safe-bash-command-docx}/discovery.d.ts +4 -4
  317. package/dist/safe-bash-command-docx/index.js +1 -1
  318. package/dist/{safe-bash-docx-engine → safe-bash-command-docx}/inspection-command.d.ts +6 -6
  319. package/dist/safe-bash-command-docx/sdk.d.ts +4 -0
  320. package/dist/safe-bash-command-docx/sdk.js +24 -0
  321. package/dist/safe-bash-command-dot/LICENSE +21 -0
  322. package/dist/safe-bash-command-dot/index.d.ts +14 -0
  323. package/dist/safe-bash-command-dot/index.js +1298 -0
  324. package/dist/safe-bash-command-du/arguments.d.ts +1 -1
  325. package/dist/safe-bash-command-du/arguments.js +1 -1
  326. package/dist/safe-bash-command-du/du.js +2 -2
  327. package/dist/safe-bash-command-du/index.js +2 -2
  328. package/dist/safe-bash-command-factor/command.js +2 -2
  329. package/dist/safe-bash-command-factor/index.js +2 -2
  330. package/dist/safe-bash-command-ffmpeg/index.js +16 -16
  331. package/dist/safe-bash-command-imagemagick/index.js +21 -53
  332. package/dist/safe-bash-command-llm/collections-embed.d.ts +23 -0
  333. package/dist/safe-bash-command-llm/collections.d.ts +38 -0
  334. package/dist/safe-bash-command-llm/collections.js +423 -0
  335. package/dist/safe-bash-command-llm/command.js +4 -2
  336. package/dist/safe-bash-command-llm/index.js +12 -8
  337. package/dist/safe-bash-command-llm/openai.js +4 -3
  338. package/dist/safe-bash-command-llm/providers/index.js +6 -4
  339. package/dist/safe-bash-command-llm/providers/openai.js +4 -3
  340. package/dist/safe-bash-command-node/commands/node/browser.js +9 -12
  341. package/dist/safe-bash-command-node/commands/node/buffer.js +2 -2
  342. package/dist/safe-bash-command-node/commands/node/default-runtime.js +9 -12
  343. package/dist/safe-bash-command-node/commands/node/filesystem.js +3 -3
  344. package/dist/safe-bash-command-node/commands/node/safejs.js +9 -12
  345. package/dist/safe-bash-command-node/commands/node/source-maps.js +2 -2
  346. package/dist/safe-bash-command-node/commands/node/timers.js +3 -3
  347. package/dist/safe-bash-command-node/commands/safejs/io.d.ts +1 -35
  348. package/dist/safe-bash-command-node/commands/safejs/io.js +3 -7
  349. package/dist/safe-bash-command-node/commands/safejs/options.d.ts +2 -22
  350. package/dist/safe-bash-command-node/commands/safejs/options.js +1 -1
  351. package/dist/safe-bash-command-node/commands/safejs/render.d.ts +1 -1
  352. package/dist/safe-bash-command-node/commands/safejs/render.js +3 -5
  353. package/dist/safe-bash-command-node/commands/safejs/runtime.d.ts +2 -25
  354. package/dist/safe-bash-command-node/commands/safejs/runtime.js +1 -7
  355. package/dist/safe-bash-command-node/commands/safejs/types.d.ts +2 -85
  356. package/dist/safe-bash-command-node/commands/safejs/types.js +1 -1
  357. package/dist/safe-bash-command-node/integrations/safejs/filesystem.d.ts +2 -5
  358. package/dist/safe-bash-command-node/integrations/safejs/filesystem.js +3 -3
  359. package/dist/safe-bash-command-node/integrations/safejs/shell.js +1 -1
  360. package/dist/safe-bash-command-node/integrations/safejs/values.d.ts +1 -7
  361. package/dist/safe-bash-command-node/integrations/safejs/values.js +1 -1
  362. package/dist/safe-bash-command-openssl/index.js +15452 -420
  363. package/dist/safe-bash-command-pandoc/command.js +1 -1
  364. package/dist/safe-bash-command-pandoc/index.js +1 -1
  365. package/dist/safe-bash-command-patch/index.js +5 -5
  366. package/dist/safe-bash-command-patch/patch.js +4 -4
  367. package/dist/safe-bash-command-playwright-cli/index.js +25 -25
  368. package/dist/safe-bash-command-playwright-cli/playwright/abilities.js +8 -8
  369. package/dist/safe-bash-command-playwright-cli/playwright/controller.js +16 -16
  370. package/dist/safe-bash-command-playwright-cli/playwright/index.js +25 -25
  371. package/dist/safe-bash-command-playwright-cli/playwright/standard-capabilities.js +4 -4
  372. package/dist/{safe-bash-pptx-engine → safe-bash-command-pptx}/command-engine.d.ts +5 -13
  373. package/dist/safe-bash-command-pptx/engine.d.ts +4 -0
  374. package/dist/safe-bash-command-pptx/engine.js +37 -0
  375. package/dist/safe-bash-command-pptx/index.js +1 -1
  376. package/dist/safe-bash-command-python/executor.js +15 -15
  377. package/dist/safe-bash-command-python/index.js +15 -15
  378. package/dist/safe-bash-command-python/jspi.js +4 -4
  379. package/dist/safe-bash-command-qrencode/index.js +1 -4
  380. package/dist/safe-bash-command-rsvg-convert/LICENSE +21 -0
  381. package/dist/safe-bash-command-rsvg-convert/index.d.ts +13 -0
  382. package/dist/safe-bash-command-rsvg-convert/index.js +84 -0
  383. package/dist/safe-bash-command-safejs/LICENSE +21 -0
  384. package/dist/safe-bash-command-safejs/filesystem.d.ts +5 -0
  385. package/dist/safe-bash-command-safejs/filesystem.js +7 -0
  386. package/dist/safe-bash-command-safejs/index.d.ts +4 -0
  387. package/dist/safe-bash-command-safejs/index.js +19 -0
  388. package/dist/safe-bash-command-safejs/io.d.ts +35 -0
  389. package/dist/safe-bash-command-safejs/io.js +12 -0
  390. package/dist/safe-bash-command-safejs/options.d.ts +22 -0
  391. package/dist/safe-bash-command-safejs/options.js +11 -0
  392. package/dist/safe-bash-command-safejs/render.d.ts +1 -0
  393. package/dist/safe-bash-command-safejs/render.js +9 -0
  394. package/dist/safe-bash-command-safejs/runtime.d.ts +25 -0
  395. package/dist/safe-bash-command-safejs/runtime.js +13 -0
  396. package/dist/safe-bash-command-safejs/types.d.ts +85 -0
  397. package/dist/safe-bash-command-safejs/types.js +7 -0
  398. package/dist/safe-bash-command-safejs/values.d.ts +7 -0
  399. package/dist/safe-bash-command-safejs/values.js +19 -0
  400. package/dist/safe-bash-command-sips/index.js +1 -14
  401. package/dist/safe-bash-command-ssconvert/index.js +413 -546
  402. package/dist/safe-bash-command-ssconvert/rendering/chart/axis.d.ts +1 -26
  403. package/dist/safe-bash-command-ssconvert/rendering/chart/error-bar.d.ts +1 -39
  404. package/dist/safe-bash-command-ssconvert/rendering/chart/layout.d.ts +1 -24
  405. package/dist/safe-bash-command-ssconvert/rendering/chart/line.d.ts +1 -23
  406. package/dist/safe-bash-command-ssconvert/rendering/chart/marker.d.ts +1 -35
  407. package/dist/safe-bash-command-ssconvert/rendering/chart/pie.d.ts +1 -32
  408. package/dist/safe-bash-command-ssconvert/rendering/images/index.d.ts +1 -26
  409. package/dist/safe-bash-command-ssconvert/rendering/print/header-footer.d.ts +1 -16
  410. package/dist/safe-bash-command-ssconvert/rendering/print/layout.d.ts +1 -65
  411. package/dist/safe-bash-command-ssconvert/rendering/print/pagination.d.ts +1 -34
  412. package/dist/safe-bash-command-tar/create.js +4 -4
  413. package/dist/safe-bash-command-tar/extract.js +4 -4
  414. package/dist/safe-bash-command-tar/index.js +16 -14
  415. package/dist/safe-bash-command-tar/modes.js +6 -6
  416. package/dist/safe-bash-command-tar/options.d.ts +3 -1
  417. package/dist/safe-bash-command-tar/options.js +1 -1
  418. package/dist/safe-bash-command-unzip/index.js +4 -4
  419. package/dist/safe-bash-command-wdiff/LICENSE +21 -0
  420. package/dist/safe-bash-command-wdiff/index.d.ts +12 -0
  421. package/dist/safe-bash-command-wdiff/index.js +123 -0
  422. package/dist/safe-bash-compression-engine/bounded-codec.js +2 -2
  423. package/dist/safe-bash-compression-engine/codec-loader.js +1 -1
  424. package/dist/safe-bash-compression-engine/files.js +5 -5
  425. package/dist/safe-bash-compression-engine/index.js +4 -4
  426. package/dist/safe-bash-compression-engine/operand.js +5 -5
  427. package/dist/safe-bash-compression-engine/stream.js +4 -4
  428. package/dist/safe-bash-compression-engine/zstd-decode.js +3 -3
  429. package/dist/safe-bash-contracts/escaping.js +2 -2
  430. package/dist/safe-bash-contracts/index.js +15 -15
  431. package/dist/safe-bash-docx-engine/admission.js +31 -0
  432. package/dist/safe-bash-docx-engine/ancillary-resources.js +38 -0
  433. package/dist/safe-bash-docx-engine/archive.js +24 -0
  434. package/dist/safe-bash-docx-engine/argument-json.js +25 -0
  435. package/dist/safe-bash-docx-engine/batch-operations.d.ts +7 -0
  436. package/dist/safe-bash-docx-engine/batch-operations.js +95 -0
  437. package/dist/safe-bash-docx-engine/batch-result-schema.d.ts +2 -0
  438. package/dist/safe-bash-docx-engine/batch-result-schema.js +145 -0
  439. package/dist/safe-bash-docx-engine/batch.js +106 -0
  440. package/dist/safe-bash-docx-engine/bookmarks.js +43 -0
  441. package/dist/safe-bash-docx-engine/budget.js +18 -0
  442. package/dist/safe-bash-docx-engine/charts.js +35 -0
  443. package/dist/safe-bash-docx-engine/command-option-rules.d.ts +1 -0
  444. package/dist/safe-bash-docx-engine/command-option-rules.js +24 -0
  445. package/dist/safe-bash-docx-engine/command-properties.d.ts +1 -0
  446. package/dist/safe-bash-docx-engine/command-properties.js +18 -0
  447. package/dist/safe-bash-docx-engine/command-selection.d.ts +1 -0
  448. package/dist/safe-bash-docx-engine/command-selection.js +15 -0
  449. package/dist/safe-bash-docx-engine/comments.js +53 -0
  450. package/dist/safe-bash-docx-engine/control-bindings.js +45 -0
  451. package/dist/safe-bash-docx-engine/control-repeat.js +46 -0
  452. package/dist/safe-bash-docx-engine/controls.js +52 -0
  453. package/dist/safe-bash-docx-engine/create.js +36 -0
  454. package/dist/safe-bash-docx-engine/diagrams.js +43 -0
  455. package/dist/safe-bash-docx-engine/diff.js +33 -0
  456. package/dist/safe-bash-docx-engine/discovery-result-schema.d.ts +72 -0
  457. package/dist/safe-bash-docx-engine/discovery-result-schema.js +36 -0
  458. package/dist/safe-bash-docx-engine/document-properties.js +43 -0
  459. package/dist/safe-bash-docx-engine/equations.js +53 -0
  460. package/dist/safe-bash-docx-engine/extract.js +40 -0
  461. package/dist/safe-bash-docx-engine/fields.js +48 -0
  462. package/dist/safe-bash-docx-engine/font-inventory.js +40 -0
  463. package/dist/safe-bash-docx-engine/font-resources.js +33 -0
  464. package/dist/safe-bash-docx-engine/image-batch-operations.d.ts +4 -0
  465. package/dist/safe-bash-docx-engine/image-batch-operations.js +35 -0
  466. package/dist/safe-bash-docx-engine/image-insertion.js +46 -0
  467. package/dist/safe-bash-docx-engine/image-layout.js +43 -0
  468. package/dist/safe-bash-docx-engine/image-replacement.js +48 -0
  469. package/dist/safe-bash-docx-engine/images.js +49 -0
  470. package/dist/safe-bash-docx-engine/index.d.ts +1 -3
  471. package/dist/safe-bash-docx-engine/index.js +369 -19350
  472. package/dist/safe-bash-docx-engine/inspection.js +49 -0
  473. package/dist/safe-bash-docx-engine/invocation.d.ts +50 -0
  474. package/dist/safe-bash-docx-engine/invocation.js +66 -0
  475. package/dist/safe-bash-docx-engine/io-errors.js +11 -0
  476. package/dist/safe-bash-docx-engine/io.js +29 -0
  477. package/dist/safe-bash-docx-engine/links.js +47 -0
  478. package/dist/safe-bash-docx-engine/lists.js +46 -0
  479. package/dist/safe-bash-docx-engine/location-token.js +27 -0
  480. package/dist/safe-bash-docx-engine/locations.js +39 -0
  481. package/dist/safe-bash-docx-engine/model-context.js +15 -0
  482. package/dist/safe-bash-docx-engine/model-errors.js +13 -0
  483. package/dist/safe-bash-docx-engine/notes.js +48 -0
  484. package/dist/safe-bash-docx-engine/objects.js +49 -0
  485. package/dist/safe-bash-docx-engine/operation-json-schema.js +21 -0
  486. package/dist/safe-bash-docx-engine/operation-schema.js +29 -0
  487. package/dist/safe-bash-docx-engine/pack-uri-batch-operations.d.ts +3 -0
  488. package/dist/safe-bash-docx-engine/pack-uri-batch-operations.js +15 -0
  489. package/dist/safe-bash-docx-engine/pack.js +38 -0
  490. package/dist/safe-bash-docx-engine/package-view-batch-operations.d.ts +4 -0
  491. package/dist/safe-bash-docx-engine/package-view-batch-operations.js +47 -0
  492. package/dist/safe-bash-docx-engine/package-xml.js +25 -0
  493. package/dist/safe-bash-docx-engine/pandoc-adapter.js +55 -6
  494. package/dist/safe-bash-docx-engine/paragraph-edit.js +52 -0
  495. package/dist/safe-bash-docx-engine/part-provider.js +18 -0
  496. package/dist/safe-bash-docx-engine/property-values.js +46 -0
  497. package/dist/safe-bash-docx-engine/publication.js +40 -0
  498. package/dist/safe-bash-docx-engine/removal.js +44 -0
  499. package/dist/safe-bash-docx-engine/revision-decisions.js +46 -0
  500. package/dist/safe-bash-docx-engine/revision-edit.js +43 -0
  501. package/dist/safe-bash-docx-engine/revisions.js +42 -0
  502. package/dist/safe-bash-docx-engine/run-format.js +43 -0
  503. package/dist/safe-bash-docx-engine/sanitize.js +59 -0
  504. package/dist/safe-bash-docx-engine/sections.js +47 -0
  505. package/dist/safe-bash-docx-engine/settings.js +36 -0
  506. package/dist/safe-bash-docx-engine/shape-edit.js +47 -0
  507. package/dist/safe-bash-docx-engine/signatures.js +42 -0
  508. package/dist/safe-bash-docx-engine/simple-selection.d.ts +1 -1
  509. package/dist/safe-bash-docx-engine/stories.js +48 -0
  510. package/dist/safe-bash-docx-engine/structure-model-batch-operations.d.ts +3 -0
  511. package/dist/safe-bash-docx-engine/structure-model-batch-operations.js +64 -0
  512. package/dist/safe-bash-docx-engine/style-model-batch-operations.js +57 -0
  513. package/dist/safe-bash-docx-engine/style-model-result-schema.d.ts +4 -0
  514. package/dist/safe-bash-docx-engine/style-model-result-schema.js +76 -0
  515. package/dist/safe-bash-docx-engine/styles.js +44 -0
  516. package/dist/safe-bash-docx-engine/table-edit.js +52 -0
  517. package/dist/safe-bash-docx-engine/table-read.js +38 -0
  518. package/dist/safe-bash-docx-engine/template.js +45 -0
  519. package/dist/safe-bash-docx-engine/text-replace.js +47 -0
  520. package/dist/safe-bash-docx-engine/text-resource-read.js +42 -0
  521. package/dist/safe-bash-docx-engine/text.js +36 -0
  522. package/dist/safe-bash-docx-engine/validation.js +30 -0
  523. package/dist/safe-bash-docx-engine/xml-parts.js +48 -0
  524. package/dist/safe-bash-markdown-engine/index.js +3 -3
  525. package/dist/safe-bash-network-engine/aggregate.js +3 -3
  526. package/dist/safe-bash-network-engine/args.js +3 -3
  527. package/dist/safe-bash-network-engine/body.js +4 -4
  528. package/dist/safe-bash-network-engine/decode.js +3 -3
  529. package/dist/safe-bash-network-engine/fetch-transport.js +3 -3
  530. package/dist/safe-bash-network-engine/index.js +3 -3
  531. package/dist/safe-bash-network-engine/output.js +3 -3
  532. package/dist/safe-bash-network-engine/platform-portable.js +3 -3
  533. package/dist/safe-bash-network-engine/shared.js +2 -2
  534. package/dist/safe-bash-network-engine/transfer.js +20 -20
  535. package/dist/safe-bash-pptx-engine/bytes.d.ts +1 -4
  536. package/dist/safe-bash-pptx-engine/bytes.js +2 -11
  537. package/dist/safe-bash-pptx-engine/index.d.ts +1 -103
  538. package/dist/safe-bash-pptx-engine/index.js +1 -662
  539. package/dist/safe-bash-presentation-engine/LICENSE +21 -0
  540. package/dist/safe-bash-presentation-engine/accessibility.js +43 -0
  541. package/dist/safe-bash-presentation-engine/animation-editing.js +29 -0
  542. package/dist/safe-bash-presentation-engine/animations.js +23 -0
  543. package/dist/safe-bash-presentation-engine/backgrounds.js +26 -0
  544. package/dist/safe-bash-presentation-engine/bytes.d.ts +4 -0
  545. package/dist/safe-bash-presentation-engine/bytes.js +13 -0
  546. package/dist/safe-bash-presentation-engine/chart-editing.js +60 -0
  547. package/dist/{safe-bash-pptx-engine → safe-bash-presentation-engine}/chart-enums.d.ts +2 -2
  548. package/dist/{safe-bash-pptx-engine → safe-bash-presentation-engine}/chart-object-operations.d.ts +1 -1
  549. package/dist/safe-bash-presentation-engine/chart-object-operations.js +35 -0
  550. package/dist/safe-bash-presentation-engine/charts.js +41 -0
  551. package/dist/{safe-bash-pptx-engine → safe-bash-presentation-engine}/color-enums.d.ts +5 -5
  552. package/dist/safe-bash-presentation-engine/command-placeholder.js +64 -0
  553. package/dist/safe-bash-presentation-engine/comments.js +32 -0
  554. package/dist/safe-bash-presentation-engine/connector-operations.js +50 -0
  555. package/dist/safe-bash-presentation-engine/connectors.js +49 -0
  556. package/dist/safe-bash-presentation-engine/content-types.js +9 -0
  557. package/dist/safe-bash-presentation-engine/contracts.js +0 -0
  558. package/dist/safe-bash-presentation-engine/creation.js +15 -0
  559. package/dist/safe-bash-presentation-engine/diff.js +40 -0
  560. package/dist/{safe-bash-pptx-engine → safe-bash-presentation-engine}/drawing-enums.d.ts +20 -20
  561. package/dist/safe-bash-presentation-engine/drawing-format.js +44 -0
  562. package/dist/safe-bash-presentation-engine/drawing-operations.js +41 -0
  563. package/dist/safe-bash-presentation-engine/drawing-schema.d.ts +1549 -0
  564. package/dist/safe-bash-presentation-engine/drawing-schema.js +33 -0
  565. package/dist/safe-bash-presentation-engine/equations.js +30 -0
  566. package/dist/safe-bash-presentation-engine/errors.js +23 -0
  567. package/dist/safe-bash-presentation-engine/fields.js +32 -0
  568. package/dist/safe-bash-presentation-engine/font-metrics.js +12 -0
  569. package/dist/safe-bash-presentation-engine/image-extraction.js +29 -0
  570. package/dist/safe-bash-presentation-engine/image-formatting.js +43 -0
  571. package/dist/safe-bash-presentation-engine/image-insertion.js +26 -0
  572. package/dist/safe-bash-presentation-engine/image-metadata.d.ts +9 -0
  573. package/dist/safe-bash-presentation-engine/image-metadata.js +9 -0
  574. package/dist/safe-bash-presentation-engine/image-replacement.js +30 -0
  575. package/dist/safe-bash-presentation-engine/image-value.js +15 -0
  576. package/dist/safe-bash-presentation-engine/images.js +30 -0
  577. package/dist/safe-bash-presentation-engine/index.d.ts +100 -0
  578. package/dist/safe-bash-presentation-engine/index.js +791 -0
  579. package/dist/safe-bash-presentation-engine/layouts.js +31 -0
  580. package/dist/safe-bash-presentation-engine/length.js +21 -0
  581. package/dist/safe-bash-presentation-engine/links.js +33 -0
  582. package/dist/safe-bash-presentation-engine/masters.js +54 -0
  583. package/dist/safe-bash-presentation-engine/media-editing.js +35 -0
  584. package/dist/safe-bash-presentation-engine/media-extraction.js +24 -0
  585. package/dist/safe-bash-presentation-engine/media.js +23 -0
  586. package/dist/safe-bash-presentation-engine/memberships.js +24 -0
  587. package/dist/safe-bash-presentation-engine/notes.js +27 -0
  588. package/dist/safe-bash-presentation-engine/ole-enum.js +10 -0
  589. package/dist/safe-bash-presentation-engine/ole-insertion.js +29 -0
  590. package/dist/safe-bash-presentation-engine/opaque-objects.js +21 -0
  591. package/dist/safe-bash-presentation-engine/package-reader.js +13 -0
  592. package/dist/safe-bash-presentation-engine/package-tools.js +25 -0
  593. package/dist/safe-bash-presentation-engine/package-uri.d.ts +13 -0
  594. package/dist/safe-bash-presentation-engine/package-uri.js +16 -0
  595. package/dist/safe-bash-presentation-engine/package-writer.js +13 -0
  596. package/dist/{safe-bash-pptx-engine → safe-bash-presentation-engine}/presentation-model.d.ts +1 -1
  597. package/dist/safe-bash-presentation-engine/presentation-model.js +63 -0
  598. package/dist/safe-bash-presentation-engine/presentation-settings.js +25 -0
  599. package/dist/safe-bash-presentation-engine/properties.js +37 -0
  600. package/dist/safe-bash-presentation-engine/publication.d.ts +10 -0
  601. package/dist/safe-bash-presentation-engine/publication.js +0 -0
  602. package/dist/safe-bash-presentation-engine/relationships.js +16 -0
  603. package/dist/safe-bash-presentation-engine/resource-limits.js +8 -0
  604. package/dist/safe-bash-presentation-engine/sanitize.js +24 -0
  605. package/dist/safe-bash-presentation-engine/selector-schema.js +7 -0
  606. package/dist/safe-bash-presentation-engine/selectors.js +26 -0
  607. package/dist/safe-bash-presentation-engine/shape-groups.js +47 -0
  608. package/dist/safe-bash-presentation-engine/shape-operations.js +48 -0
  609. package/dist/safe-bash-presentation-engine/shape-path-operations.js +44 -0
  610. package/dist/safe-bash-presentation-engine/shape-paths.js +31 -0
  611. package/dist/safe-bash-presentation-engine/shape-presets.js +11 -0
  612. package/dist/safe-bash-presentation-engine/shape-selection.js +43 -0
  613. package/dist/safe-bash-presentation-engine/shape-transforms.js +28 -0
  614. package/dist/{safe-bash-pptx-engine → safe-bash-presentation-engine}/shape-types.d.ts +1 -1
  615. package/dist/{safe-bash-pptx-engine → safe-bash-presentation-engine}/shapes.d.ts +1 -1
  616. package/dist/safe-bash-presentation-engine/shapes.js +66 -0
  617. package/dist/safe-bash-presentation-engine/slide-copy.js +24 -0
  618. package/dist/safe-bash-presentation-engine/slide-import.js +27 -0
  619. package/dist/safe-bash-presentation-engine/slide-merge-split.js +33 -0
  620. package/dist/safe-bash-presentation-engine/slide-model.js +74 -0
  621. package/dist/safe-bash-presentation-engine/slide-removal.js +25 -0
  622. package/dist/safe-bash-presentation-engine/slide-transfer-budget.js +17 -0
  623. package/dist/safe-bash-presentation-engine/slides.js +26 -0
  624. package/dist/safe-bash-presentation-engine/table-operations.js +51 -0
  625. package/dist/safe-bash-presentation-engine/table-spans.js +42 -0
  626. package/dist/safe-bash-presentation-engine/tables.js +45 -0
  627. package/dist/safe-bash-presentation-engine/tags.js +25 -0
  628. package/dist/safe-bash-presentation-engine/template-bindings.js +44 -0
  629. package/dist/safe-bash-presentation-engine/template-repeat.js +51 -0
  630. package/dist/safe-bash-presentation-engine/text-fitting.js +39 -0
  631. package/dist/safe-bash-presentation-engine/text-frames.js +52 -0
  632. package/dist/safe-bash-presentation-engine/text-paragraphs.js +58 -0
  633. package/dist/safe-bash-presentation-engine/text-reading.js +23 -0
  634. package/dist/safe-bash-presentation-engine/text-replacement.js +24 -0
  635. package/dist/safe-bash-presentation-engine/text-runs.js +45 -0
  636. package/dist/safe-bash-presentation-engine/themes.js +31 -0
  637. package/dist/safe-bash-presentation-engine/transitions.js +27 -0
  638. package/dist/safe-bash-presentation-engine/validation.js +14 -0
  639. package/dist/safe-bash-presentation-engine/xml-parts.js +25 -0
  640. package/dist/safe-bash-presentation-engine/xml-view.js +8 -0
  641. package/dist/safe-bash-presentation-engine/xml.js +8 -0
  642. package/dist/safe-bash-sqlite-engine/sqlite-edit-snapshot.d.ts +15 -0
  643. package/dist/safe-bash-sqlite-engine/sqlite-finalization.d.ts +7 -0
  644. package/dist/safe-bash-sqlite-engine/sqlite-pages.d.ts +18 -0
  645. package/dist/safe-bash-sqlite-engine/sqlite-record-read.d.ts +8 -0
  646. package/dist/safe-bash-sqlite-engine/sqlite-record-write.d.ts +20 -0
  647. package/dist/safe-bash-sqlite-engine/storage.d.ts +2 -0
  648. package/dist/safe-bash-sqlite-engine/storage.js +236 -55
  649. package/dist/safe-bash-svg-engine/LICENSE +21 -0
  650. package/dist/safe-bash-svg-engine/index.d.ts +8 -0
  651. package/dist/safe-bash-svg-engine/index.js +477 -0
  652. package/dist/safe-bash-zip-engine/index.js +3 -3
  653. package/dist/safe-bash-zip-engine/zip/repair.js +3 -3
  654. package/dist/safe-bash-zip-engine/zip/sfx.js +3 -3
  655. package/dist/safe-bash-zip-engine/zip-format.js +3 -3
  656. package/dist/safe-playwright-cloudflare/browser-provider.generated.js +55 -18
  657. package/dist/safe-playwright-cloudflare/browser-run-code-guest.generated.js +1 -1
  658. package/dist/spreadsheet-engine/datasource.js +4 -1
  659. package/dist/spreadsheet-engine/formulas/functions/math.js +3 -1
  660. package/dist/spreadsheet-engine/rendering/chart/axis.d.ts +26 -0
  661. package/dist/spreadsheet-engine/rendering/chart/axis.js +61 -0
  662. package/dist/spreadsheet-engine/rendering/chart/error-bar.d.ts +39 -0
  663. package/dist/spreadsheet-engine/rendering/chart/error-bar.js +59 -0
  664. package/dist/spreadsheet-engine/rendering/chart/layout.d.ts +24 -0
  665. package/dist/spreadsheet-engine/rendering/chart/layout.js +54 -0
  666. package/dist/spreadsheet-engine/rendering/chart/line.d.ts +23 -0
  667. package/dist/spreadsheet-engine/rendering/chart/line.js +56 -0
  668. package/dist/spreadsheet-engine/rendering/chart/marker.d.ts +35 -0
  669. package/dist/spreadsheet-engine/rendering/chart/marker.js +52 -0
  670. package/dist/spreadsheet-engine/rendering/chart/pie.d.ts +32 -0
  671. package/dist/spreadsheet-engine/rendering/chart/pie.js +47 -0
  672. package/dist/{safe-bash-command-ssconvert → spreadsheet-engine}/rendering/images/codecs.d.ts +0 -1
  673. package/dist/spreadsheet-engine/rendering/images/codecs.js +253 -0
  674. package/dist/spreadsheet-engine/rendering/images/index.d.ts +26 -0
  675. package/dist/spreadsheet-engine/rendering/images/index.js +144 -0
  676. package/dist/spreadsheet-engine/rendering/images/profile-raster.d.ts +4 -0
  677. package/dist/spreadsheet-engine/rendering/images/profile-raster.js +72 -0
  678. package/dist/spreadsheet-engine/rendering/images/scene.d.ts +3 -0
  679. package/dist/spreadsheet-engine/rendering/images/scene.js +34 -0
  680. package/dist/spreadsheet-engine/rendering/print/cell-style.d.ts +10 -0
  681. package/dist/spreadsheet-engine/rendering/print/cell-style.js +52 -0
  682. package/dist/spreadsheet-engine/rendering/print/font-normalization-data.d.ts +43 -0
  683. package/dist/spreadsheet-engine/rendering/print/font-normalization-data.js +1558 -0
  684. package/dist/spreadsheet-engine/rendering/print/font-normalization.d.ts +3 -0
  685. package/dist/spreadsheet-engine/rendering/print/font-normalization.js +113 -0
  686. package/dist/spreadsheet-engine/rendering/print/font-shaping.d.ts +18 -0
  687. package/dist/spreadsheet-engine/rendering/print/font-shaping.js +271 -0
  688. package/dist/spreadsheet-engine/rendering/print/harfbuzz/data.d.ts +1 -0
  689. package/dist/spreadsheet-engine/rendering/print/harfbuzz/data.js +2 -0
  690. package/dist/spreadsheet-engine/rendering/print/header-footer.d.ts +16 -0
  691. package/dist/spreadsheet-engine/rendering/print/header-footer.js +92 -0
  692. package/dist/spreadsheet-engine/rendering/print/layout.d.ts +65 -0
  693. package/dist/spreadsheet-engine/rendering/print/layout.js +75 -0
  694. package/dist/spreadsheet-engine/rendering/print/pagination.d.ts +34 -0
  695. package/dist/spreadsheet-engine/rendering/print/pagination.js +126 -0
  696. package/dist/spreadsheet-engine/rendering/print/settings.d.ts +42 -0
  697. package/dist/spreadsheet-engine/rendering/print/settings.js +159 -0
  698. package/dist/spreadsheet-format-xls/biff-metadata.js +3 -3
  699. package/dist/spreadsheet-format-xls/biff-write-metadata.d.ts +1 -1
  700. package/dist/spreadsheet-format-xls/biff-write-metadata.js +20 -3
  701. package/dist/spreadsheet-format-xls/biff-write.js +1 -1
  702. package/package.json +239 -12
  703. package/third-party/spreadsheet-engine/scripts/harfbuzz/README.md +39 -0
  704. package/third-party/spreadsheet-engine/scripts/harfbuzz/allocator.cc +18 -0
  705. package/third-party/spreadsheet-engine/scripts/harfbuzz/build.mjs +94 -0
  706. package/third-party/spreadsheet-engine/scripts/harfbuzz/completion.patch +98 -0
  707. package/third-party/spreadsheet-engine/scripts/harfbuzz/config-override.h +19 -0
  708. package/third-party/spreadsheet-engine/scripts/harfbuzz/exports.json +29 -0
  709. package/third-party/spreadsheet-engine/scripts/harfbuzz/sources.json +274 -0
  710. package/third-party/spreadsheet-engine/scripts/harfbuzz/verify.d.mts +10 -0
  711. package/third-party/spreadsheet-engine/scripts/harfbuzz/verify.mjs +96 -0
  712. package/third-party/spreadsheet-engine/scripts/harfbuzz/verify.test.mjs +60 -0
  713. package/third-party/spreadsheet-engine/src/rendering/images/NOTICE.md +22 -0
  714. package/third-party/spreadsheet-engine/src/rendering/print/NOTICE.md +30 -0
  715. package/third-party/spreadsheet-engine/src/rendering/print/font-normalization-NOTICE.md +64 -0
  716. package/third-party/spreadsheet-engine/src/rendering/print/font-normalization-data.ts +1558 -0
  717. package/third-party/spreadsheet-engine/src/rendering/print/font-normalization.ts +91 -0
  718. package/third-party/spreadsheet-engine/src/rendering/print/harfbuzz/EMSCRIPTEN-LICENSE.txt +102 -0
  719. package/third-party/spreadsheet-engine/src/rendering/print/harfbuzz/HARFBUZZ-LICENSE.txt +42 -0
  720. package/third-party/spreadsheet-engine/src/rendering/print/harfbuzz/LIBCXX-LICENSE.txt +311 -0
  721. package/third-party/spreadsheet-engine/src/rendering/print/harfbuzz/LIBCXXABI-LICENSE.txt +311 -0
  722. package/third-party/spreadsheet-engine/src/rendering/print/harfbuzz/MUSL-LICENSE.txt +193 -0
  723. package/third-party/spreadsheet-engine/src/rendering/print/harfbuzz/NOTICE.md +41 -0
  724. package/third-party/spreadsheet-engine/src/rendering/print/harfbuzz/data.ts +2 -0
  725. package/dist/safe-bash/command-chunks/chunk-C5TUE2FE.js +0 -169
  726. package/dist/safe-bash/command-chunks/chunk-CVKW2YIC.js +0 -13631
  727. package/dist/safe-bash/command-chunks/chunk-JBGGUHQY.js +0 -17617
  728. package/dist/safe-bash/command-chunks/chunk-S4R2JDPL.js +0 -35
  729. package/dist/safe-bash/command-chunks/chunk-TU5IFVCX.js +0 -33708
  730. package/dist/safe-bash/command-chunks/chunk-TUWGIF22.js +0 -328
  731. package/dist/safe-bash/command-chunks/data-2FJOPYXA-PDKMLCGR.js +0 -8
  732. package/dist/safe-bash/command-chunks/index.browser-2NLML6H4.js +0 -269
  733. package/dist/safe-bash/command-chunks/model-store-EEI3QS4G.js +0 -10
  734. package/dist/safe-bash/command-chunks/pdf-M2GFAR2A-FCJMJCAP.js +0 -683
  735. package/dist/safe-bash-command-ssconvert/rendering/images/formats.d.ts +0 -2
  736. package/dist/safe-bash-docx-engine/command.d.ts +0 -65
  737. package/dist/safe-bash/chunks/{chunk-4T4RQYRI.js → chunk-5HRGBHZH.js} +10 -10
  738. package/dist/safe-bash/chunks/{chunk-QUS6X4MS.js → chunk-EOQMDRTY.js} +0 -0
  739. package/dist/safe-bash/command-chunks/{chunk-2L3JKGUH.js → chunk-4LYZBDZF.js} +4 -4
  740. package/dist/safe-bash/command-chunks/{chunk-EMMSXKEJ.js → chunk-4Q4R3VZU.js} +0 -0
  741. package/dist/safe-bash/command-chunks/{chunk-5RLK2QSY.js → chunk-7JEIWA3A.js} +5 -5
  742. package/dist/safe-bash/command-chunks/{chunk-AV6N7DDA.js → chunk-DDYPQAXN.js} +3 -3
  743. package/dist/safe-bash/command-chunks/{chunk-OOB7YCFQ.js → chunk-FMJKCVSQ.js} +3 -3
  744. package/dist/safe-bash/command-chunks/{chunk-FUL2C4EX.js → chunk-HFKS6AET.js} +3 -3
  745. package/dist/safe-bash/command-chunks/{chunk-2M3WUEDX.js → chunk-J6K5Q53O.js} +10 -10
  746. package/dist/safe-bash/command-chunks/{chunk-ATWMLV75.js → chunk-RJXZYDSN.js} +7 -7
  747. package/dist/safe-bash/command-chunks/{chunk-JD3NSHFT.js → chunk-TVGIJ56E.js} +3 -3
  748. package/dist/safe-bash/command-chunks/{chunk-3I33KPQH.js → chunk-X2HVVMTW.js} +6 -6
  749. package/dist/safe-bash/command-chunks/{odf-UKSXPNOZ-NCL5P7YL.js → odf-UKSXPNOZ-BV2LCKTB.js} +0 -0
  750. package/dist/{safe-bash/command-chunks/chunk-3SVT5VB7.js → safe-bash-docx-engine/operation-types.js} +0 -0
  751. package/dist/{safe-bash-pptx-engine → safe-bash-presentation-engine}/accessibility.d.ts +0 -0
  752. package/dist/{safe-bash-pptx-engine → safe-bash-presentation-engine}/animation-editing.d.ts +0 -0
  753. package/dist/{safe-bash-pptx-engine → safe-bash-presentation-engine}/animations.d.ts +0 -0
  754. package/dist/{safe-bash-pptx-engine → safe-bash-presentation-engine}/backgrounds.d.ts +0 -0
  755. package/dist/{safe-bash-pptx-engine → safe-bash-presentation-engine}/chart-data-model.d.ts +0 -0
  756. package/dist/{safe-bash-pptx-engine → safe-bash-presentation-engine}/chart-editing.d.ts +0 -0
  757. package/dist/{safe-bash-pptx-engine → safe-bash-presentation-engine}/chart-font-operations.d.ts +0 -0
  758. package/dist/{safe-bash-pptx-engine → safe-bash-presentation-engine}/chart-model-axes.d.ts +0 -0
  759. package/dist/{safe-bash-pptx-engine → safe-bash-presentation-engine}/chart-model-core.d.ts +0 -0
  760. package/dist/{safe-bash-pptx-engine → safe-bash-presentation-engine}/chart-model-series.d.ts +0 -0
  761. package/dist/{safe-bash-pptx-engine → safe-bash-presentation-engine}/chart-model.d.ts +0 -0
  762. package/dist/{safe-bash-pptx-engine → safe-bash-presentation-engine}/chart-objects.d.ts +0 -0
  763. package/dist/{safe-bash-pptx-engine → safe-bash-presentation-engine}/chart-workbook.d.ts +0 -0
  764. package/dist/{safe-bash-pptx-engine → safe-bash-presentation-engine}/charts.d.ts +0 -0
  765. package/dist/{safe-bash-pptx-engine → safe-bash-presentation-engine}/command-placeholder.d.ts +0 -0
  766. package/dist/{safe-bash-pptx-engine → safe-bash-presentation-engine}/comments.d.ts +0 -0
  767. package/dist/{safe-bash-pptx-engine → safe-bash-presentation-engine}/connector-operations.d.ts +0 -0
  768. package/dist/{safe-bash-pptx-engine → safe-bash-presentation-engine}/connectors-model.d.ts +0 -0
  769. package/dist/{safe-bash-pptx-engine → safe-bash-presentation-engine}/connectors.d.ts +0 -0
  770. package/dist/{safe-bash-pptx-engine → safe-bash-presentation-engine}/content-types.d.ts +0 -0
  771. package/dist/{safe-bash-pptx-engine → safe-bash-presentation-engine}/contracts.d.ts +0 -0
  772. package/dist/{safe-bash-pptx-engine → safe-bash-presentation-engine}/creation.d.ts +0 -0
  773. package/dist/{safe-bash-pptx-engine → safe-bash-presentation-engine}/diagram-resources.d.ts +0 -0
  774. package/dist/{safe-bash-pptx-engine → safe-bash-presentation-engine}/diff.d.ts +0 -0
  775. package/dist/{safe-bash-pptx-engine → safe-bash-presentation-engine}/drawing-format.d.ts +0 -0
  776. package/dist/{safe-bash-pptx-engine → safe-bash-presentation-engine}/drawing-operations.d.ts +0 -0
  777. package/dist/{safe-bash-pptx-engine → safe-bash-presentation-engine}/equations.d.ts +0 -0
  778. package/dist/{safe-bash-pptx-engine → safe-bash-presentation-engine}/errors.d.ts +0 -0
  779. package/dist/{safe-bash-pptx-engine → safe-bash-presentation-engine}/fields.d.ts +0 -0
  780. package/dist/{safe-bash-pptx-engine → safe-bash-presentation-engine}/font-metrics.d.ts +0 -0
  781. package/dist/{safe-bash-pptx-engine → safe-bash-presentation-engine}/freeform-builder.d.ts +0 -0
  782. package/dist/{safe-bash-pptx-engine → safe-bash-presentation-engine}/group-model.d.ts +0 -0
  783. package/dist/{safe-bash-pptx-engine → safe-bash-presentation-engine}/image-extraction.d.ts +0 -0
  784. package/dist/{safe-bash-pptx-engine → safe-bash-presentation-engine}/image-formatting.d.ts +0 -0
  785. package/dist/{safe-bash-pptx-engine → safe-bash-presentation-engine}/image-insertion.d.ts +0 -0
  786. package/dist/{safe-bash-pptx-engine → safe-bash-presentation-engine}/image-replacement.d.ts +0 -0
  787. package/dist/{safe-bash-pptx-engine → safe-bash-presentation-engine}/image-value.d.ts +0 -0
  788. package/dist/{safe-bash-pptx-engine → safe-bash-presentation-engine}/images.d.ts +0 -0
  789. package/dist/{safe-bash-pptx-engine → safe-bash-presentation-engine}/inventory.d.ts +0 -0
  790. package/dist/{safe-bash-pptx-engine → safe-bash-presentation-engine}/language-enum.d.ts +0 -0
  791. package/dist/{safe-bash-pptx-engine → safe-bash-presentation-engine}/layouts.d.ts +0 -0
  792. package/dist/{safe-bash-pptx-engine → safe-bash-presentation-engine}/length.d.ts +0 -0
  793. package/dist/{safe-bash-pptx-engine → safe-bash-presentation-engine}/links-model.d.ts +4 -4
  794. /package/dist/{safe-bash-pptx-engine → safe-bash-presentation-engine}/links.d.ts +0 -0
  795. /package/dist/{safe-bash-pptx-engine → safe-bash-presentation-engine}/masters.d.ts +0 -0
  796. /package/dist/{safe-bash-pptx-engine → safe-bash-presentation-engine}/media-editing.d.ts +0 -0
  797. /package/dist/{safe-bash-pptx-engine → safe-bash-presentation-engine}/media-enum.d.ts +0 -0
  798. /package/dist/{safe-bash-pptx-engine → safe-bash-presentation-engine}/media-extraction.d.ts +0 -0
  799. /package/dist/{safe-bash-pptx-engine → safe-bash-presentation-engine}/media.d.ts +0 -0
  800. /package/dist/{safe-bash-pptx-engine → safe-bash-presentation-engine}/memberships.d.ts +0 -0
  801. /package/dist/{safe-bash-pptx-engine → safe-bash-presentation-engine}/modern-comments.d.ts +0 -0
  802. /package/dist/{safe-bash-pptx-engine → safe-bash-presentation-engine}/notes.d.ts +0 -0
  803. /package/dist/{safe-bash-pptx-engine → safe-bash-presentation-engine}/ole-enum.d.ts +0 -0
  804. /package/dist/{safe-bash-pptx-engine → safe-bash-presentation-engine}/ole-insertion.d.ts +0 -0
  805. /package/dist/{safe-bash-pptx-engine → safe-bash-presentation-engine}/opaque-objects.d.ts +0 -0
  806. /package/dist/{safe-bash-pptx-engine → safe-bash-presentation-engine}/package-reader.d.ts +0 -0
  807. /package/dist/{safe-bash-pptx-engine → safe-bash-presentation-engine}/package-tools.d.ts +0 -0
  808. /package/dist/{safe-bash-pptx-engine → safe-bash-presentation-engine}/package-view.d.ts +0 -0
  809. /package/dist/{safe-bash-pptx-engine → safe-bash-presentation-engine}/package-writer.d.ts +0 -0
  810. /package/dist/{safe-bash-pptx-engine → safe-bash-presentation-engine}/paragraph-alignment.d.ts +0 -0
  811. /package/dist/{safe-bash-pptx-engine → safe-bash-presentation-engine}/presentation-settings.d.ts +0 -0
  812. /package/dist/{safe-bash-pptx-engine → safe-bash-presentation-engine}/properties.d.ts +0 -0
  813. /package/dist/{safe-bash-pptx-engine → safe-bash-presentation-engine}/relationships.d.ts +0 -0
  814. /package/dist/{safe-bash-pptx-engine → safe-bash-presentation-engine}/resource-limits.d.ts +0 -0
  815. /package/dist/{safe-bash-pptx-engine → safe-bash-presentation-engine}/sanitize.d.ts +0 -0
  816. /package/dist/{safe-bash-pptx-engine → safe-bash-presentation-engine}/selector-schema.d.ts +0 -0
  817. /package/dist/{safe-bash-pptx-engine → safe-bash-presentation-engine}/selectors.d.ts +0 -0
  818. /package/dist/{safe-bash-pptx-engine → safe-bash-presentation-engine}/shape-adjustments.d.ts +0 -0
  819. /package/dist/{safe-bash-pptx-engine → safe-bash-presentation-engine}/shape-groups.d.ts +0 -0
  820. /package/dist/{safe-bash-pptx-engine → safe-bash-presentation-engine}/shape-operations.d.ts +0 -0
  821. /package/dist/{safe-bash-pptx-engine → safe-bash-presentation-engine}/shape-path-operations.d.ts +0 -0
  822. /package/dist/{safe-bash-pptx-engine → safe-bash-presentation-engine}/shape-paths.d.ts +0 -0
  823. /package/dist/{safe-bash-pptx-engine → safe-bash-presentation-engine}/shape-placeholder-types.d.ts +0 -0
  824. /package/dist/{safe-bash-pptx-engine → safe-bash-presentation-engine}/shape-presets.d.ts +0 -0
  825. /package/dist/{safe-bash-pptx-engine → safe-bash-presentation-engine}/shape-selection.d.ts +0 -0
  826. /package/dist/{safe-bash-pptx-engine → safe-bash-presentation-engine}/shape-transforms.d.ts +0 -0
  827. /package/dist/{safe-bash-pptx-engine → safe-bash-presentation-engine}/slide-copy.d.ts +0 -0
  828. /package/dist/{safe-bash-pptx-engine → safe-bash-presentation-engine}/slide-import.d.ts +0 -0
  829. /package/dist/{safe-bash-pptx-engine → safe-bash-presentation-engine}/slide-layout-model.d.ts +0 -0
  830. /package/dist/{safe-bash-pptx-engine → safe-bash-presentation-engine}/slide-merge-split.d.ts +0 -0
  831. /package/dist/{safe-bash-pptx-engine → safe-bash-presentation-engine}/slide-model.d.ts +0 -0
  832. /package/dist/{safe-bash-pptx-engine → safe-bash-presentation-engine}/slide-removal.d.ts +0 -0
  833. /package/dist/{safe-bash-pptx-engine → safe-bash-presentation-engine}/slide-transfer-budget.d.ts +0 -0
  834. /package/dist/{safe-bash-pptx-engine → safe-bash-presentation-engine}/slides.d.ts +0 -0
  835. /package/dist/{safe-bash-pptx-engine → safe-bash-presentation-engine}/table-operations.d.ts +0 -0
  836. /package/dist/{safe-bash-pptx-engine → safe-bash-presentation-engine}/table-spans.d.ts +0 -0
  837. /package/dist/{safe-bash-pptx-engine → safe-bash-presentation-engine}/tables-model.d.ts +0 -0
  838. /package/dist/{safe-bash-pptx-engine → safe-bash-presentation-engine}/tables.d.ts +0 -0
  839. /package/dist/{safe-bash-pptx-engine → safe-bash-presentation-engine}/tags.d.ts +0 -0
  840. /package/dist/{safe-bash-pptx-engine → safe-bash-presentation-engine}/template-bindings.d.ts +0 -0
  841. /package/dist/{safe-bash-pptx-engine → safe-bash-presentation-engine}/template-repeat.d.ts +0 -0
  842. /package/dist/{safe-bash-pptx-engine → safe-bash-presentation-engine}/text-fitting.d.ts +0 -0
  843. /package/dist/{safe-bash-pptx-engine → safe-bash-presentation-engine}/text-frame-enums.d.ts +0 -0
  844. /package/dist/{safe-bash-pptx-engine → safe-bash-presentation-engine}/text-frames.d.ts +0 -0
  845. /package/dist/{safe-bash-pptx-engine → safe-bash-presentation-engine}/text-paragraphs.d.ts +0 -0
  846. /package/dist/{safe-bash-pptx-engine → safe-bash-presentation-engine}/text-reading.d.ts +0 -0
  847. /package/dist/{safe-bash-pptx-engine → safe-bash-presentation-engine}/text-replacement.d.ts +0 -0
  848. /package/dist/{safe-bash-pptx-engine → safe-bash-presentation-engine}/text-run-color.d.ts +0 -0
  849. /package/dist/{safe-bash-pptx-engine → safe-bash-presentation-engine}/text-runs.d.ts +0 -0
  850. /package/dist/{safe-bash-pptx-engine → safe-bash-presentation-engine}/text-style-resolution.d.ts +0 -0
  851. /package/dist/{safe-bash-pptx-engine → safe-bash-presentation-engine}/themes.d.ts +0 -0
  852. /package/dist/{safe-bash-pptx-engine → safe-bash-presentation-engine}/transitions.d.ts +0 -0
  853. /package/dist/{safe-bash-pptx-engine → safe-bash-presentation-engine}/validation.d.ts +0 -0
  854. /package/dist/{safe-bash-pptx-engine → safe-bash-presentation-engine}/xml-parts.d.ts +0 -0
  855. /package/dist/{safe-bash-pptx-engine → safe-bash-presentation-engine}/xml-view.d.ts +0 -0
  856. /package/dist/{safe-bash-pptx-engine → safe-bash-presentation-engine}/xml.d.ts +0 -0
@@ -1,161 +1,3 @@
1
- import {
2
- Emu,
3
- MSO_AUTO_SHAPE_TYPE,
4
- MSO_TEXT_UNDERLINE_TYPE,
5
- PROG_ID,
6
- SelectionError,
7
- SlideTransferBudget,
8
- addChart,
9
- addConnector,
10
- addImage,
11
- addLayout,
12
- addMaster,
13
- addMedia,
14
- addOleObject,
15
- addShape,
16
- addShapePath,
17
- addSlide,
18
- addTable,
19
- admitFontMetrics,
20
- applyLayout,
21
- applyTemplateBindings,
22
- applyTemplateRepeat,
23
- asciiKey,
24
- chartObjectSchema,
25
- chartTypes,
26
- comparePresentations,
27
- coreDefinition,
28
- createPresentation,
29
- decodeSelectionToken,
30
- drawingSchemaDefinitions,
31
- duplicateSlides,
32
- extractImages,
33
- extractMedia,
34
- extractObject,
35
- extractPackage,
36
- fitTextFrames,
37
- getXmlPart,
38
- groupShapes,
39
- importSlides,
40
- insertPlaceholder,
41
- isOrdinaryLinkUrl,
42
- listLinks,
43
- mergeSelectedDecks,
44
- mutateAccessibility,
45
- mutateAnimations,
46
- mutateAnimationsBatch,
47
- mutateBackground,
48
- mutateComments,
49
- mutateConnectors,
50
- mutateDrawing,
51
- mutateEquations,
52
- mutateFields,
53
- mutateLayout,
54
- mutateMaster,
55
- mutateMasterShape,
56
- mutateMemberships,
57
- mutateNotes,
58
- mutatePresentationSettings,
59
- mutateProperty,
60
- mutateShapeSelection,
61
- mutateShapes,
62
- mutateSlides,
63
- mutateTables,
64
- mutateTags,
65
- mutateTextFrames,
66
- mutateTextParagraphs,
67
- mutateTextRuns,
68
- mutateTheme,
69
- mutateTransitions,
70
- packPackage,
71
- packageUri,
72
- paragraphNumberingSchemes,
73
- parseContentTypes,
74
- parseXmlPart,
75
- partName,
76
- pathFromVertices,
77
- readAccessibility,
78
- readAnimations,
79
- readBackgrounds,
80
- readCharts,
81
- readCommentAuthors,
82
- readComments,
83
- readConnectors,
84
- readDrawing,
85
- readEquations,
86
- readFields,
87
- readFonts,
88
- readImages,
89
- readLayouts,
90
- readMasters,
91
- readMedia,
92
- readMemberships,
93
- readNotes,
94
- readObjects,
95
- readPackage,
96
- readPresentationSettings,
97
- readPresentationText,
98
- readProperties,
99
- readRelationshipGraph,
100
- readSelectionIndex,
101
- readShapePaths,
102
- readShapes,
103
- readTables,
104
- readTags,
105
- readTextFrames,
106
- readTextParagraphs,
107
- readTextRuns,
108
- readThemes,
109
- readTransitions,
110
- removeConnectors,
111
- removeLayout,
112
- removeLink,
113
- removeShapes,
114
- removeSlides,
115
- replaceImage,
116
- replaceMedia,
117
- replacePresentationText,
118
- replaceXmlPart,
119
- restructureTables,
120
- sanitize,
121
- selectionQuerySchema,
122
- setCharts,
123
- setImage,
124
- setLink,
125
- setShapePath,
126
- shapePresets,
127
- splitSelectedDecks,
128
- tableCell,
129
- themeColorSlots,
130
- themeFontSlots,
131
- ungroupShape,
132
- validateAccessibilityUpdate,
133
- validateAnimationOptions,
134
- validateChartData,
135
- validateChartUpdate,
136
- validateConnectorOptions,
137
- validateDrawingUpdate,
138
- validateFieldOptions,
139
- validateGroupOptions,
140
- validateNotesOptions,
141
- validatePresentation,
142
- validateShapeOptions,
143
- validateShapePath,
144
- validateShapeSelectionOptions,
145
- validateTableSelection,
146
- validateTableUpdate,
147
- validateTemplateBindings,
148
- validateTemplateRepeat,
149
- validateTextFitOptions,
150
- validateTextFrameOptions,
151
- validateTextParagraphOptions,
152
- validateTextRunOptions,
153
- validateTransitionOptions
154
- } from "./chunk-TU5IFVCX.js";
155
- import {
156
- OfficeError,
157
- resourceContext
158
- } from "./chunk-Q6JLT2EY.js";
159
1
  import "./chunk-3QN55FHA.js";
160
2
  import "./chunk-XIC45QAG.js";
161
3
  import {
@@ -163,7 +5,12 @@ import {
163
5
  } from "./chunk-GEDRBQGT.js";
164
6
  import "./chunk-65DS4IOB.js";
165
7
 
166
- // packages/safe-bash-pptx-engine/src/capabilities-discovery.ts
8
+ // packages/safe-bash-command-pptx/src/capabilities-discovery.ts
9
+ import { parseContentTypes } from "../../safe-bash-presentation-engine/content-types.js";
10
+ import { OfficeError } from "../../safe-bash-presentation-engine/errors.js";
11
+ import { readRelationshipGraph } from "../../safe-bash-presentation-engine/relationships.js";
12
+ import { readPackage } from "../../safe-bash-presentation-engine/package-reader.js";
13
+ import { parseXmlPart } from "../../safe-bash-presentation-engine/xml.js";
167
14
  var featureOperations = {
168
15
  textReplace: ["text.replace"],
169
16
  text: ["text.get"],
@@ -469,7 +316,16 @@ Input assessment inventories XML namespaces and opaque parts; it does not certif
469
316
  Affected unsupported operations list proven xml.set signature/macro/protection restrictions only; an empty list is not editing approval.
470
317
  `;
471
318
 
472
- // packages/safe-bash-pptx-engine/src/inventory-schema.ts
319
+ // packages/safe-bash-command-pptx/src/command-engine.ts
320
+ import { PROG_ID } from "../../safe-bash-presentation-engine/ole-enum.js";
321
+
322
+ // packages/safe-bash-command-pptx/src/command-schema.ts
323
+ import { drawingSchemaDefinitions } from "../../safe-bash-presentation-engine/drawing-schema.js";
324
+ import { paragraphNumberingSchemes } from "../../safe-bash-presentation-engine/text-paragraphs.js";
325
+ import { MSO_TEXT_UNDERLINE_TYPE } from "../../safe-bash-presentation-engine/text-runs.js";
326
+ import { selectionQuerySchema } from "../../safe-bash-presentation-engine/selector-schema.js";
327
+
328
+ // packages/safe-bash-command-pptx/src/inventory-schema.ts
473
329
  var styleSourceSchema = {
474
330
  type: "object",
475
331
  additionalProperties: false,
@@ -670,7 +526,8 @@ var inventoryPartSchema = {
670
526
  }
671
527
  };
672
528
 
673
- // packages/safe-bash-pptx-engine/src/command-schema.ts
529
+ // packages/safe-bash-command-pptx/src/command-schema.ts
530
+ import { MSO_AUTO_SHAPE_TYPE, shapePresets } from "../../safe-bash-presentation-engine/shape-presets.js";
674
531
  var shapeValues = {
675
532
  adjustments: {
676
533
  type: "array",
@@ -3601,7 +3458,9 @@ var discoverySchemas = Object.fromEntries([
3601
3458
  result: { ...inspectSchema.result, properties: { ...inspectSchema.result.properties, operation: { const: operation }, data: { oneOf: [{ type: "null" }, data] } } }
3602
3459
  }]));
3603
3460
 
3604
- // packages/safe-bash-pptx-engine/src/command-objects-add.ts
3461
+ // packages/safe-bash-command-pptx/src/command-objects-add.ts
3462
+ import { OfficeError as OfficeError2 } from "../../safe-bash-presentation-engine/errors.js";
3463
+ import { addOleObject } from "../../safe-bash-presentation-engine/ole-insertion.js";
3605
3464
  var objectsAddUsage = "Usage: pptx objects add INPUT --slide N --file PATH --icon PATH (--program-id TEXT | --program DOCX|PPTX|XLSX) [--icon-content-type TYPE]\n --left LENGTH --top LENGTH --width LENGTH --height LENGTH --icon-width LENGTH --icon-height LENGTH --name TEXT\n --output PATH|--in-place|--dry-run [--force] [--json] [--limit NAME=VALUE]\nEmbed explicit inert bytes with an explicit icon. No activation or recursive payload parsing.\n";
3606
3465
  var length = {
3607
3466
  type: "object",
@@ -3708,7 +3567,7 @@ var objectsAddSchema = {
3708
3567
  }
3709
3568
  };
3710
3569
  function usage(message) {
3711
- throw new OfficeError("invalid-value", message, "usage");
3570
+ throw new OfficeError2("invalid-value", message, "usage");
3712
3571
  }
3713
3572
  function validateObjectsAddCommand(args, positionals, seen) {
3714
3573
  const allowed = Object.keys(objectsAddSchema.options.properties).map(
@@ -3812,7 +3671,10 @@ async function executeObjectsAddCommand(args, request, options2) {
3812
3671
  };
3813
3672
  }
3814
3673
 
3815
- // packages/safe-bash-pptx-engine/src/package-tools-schema.ts
3674
+ // packages/safe-bash-command-pptx/src/command-engine.ts
3675
+ import { insertPlaceholder } from "../../safe-bash-presentation-engine/command-placeholder.js";
3676
+
3677
+ // packages/safe-bash-command-pptx/src/package-tools-schema.ts
3816
3678
  var packageToolsUsage = "Usage: pptx extract INPUT --output-dir DIR [--parts JSON] [--allow-partial-output]\n pptx pack --manifest PATH --output PATH [--kind pptx|potx|ppsx] [--dry-run]\nExplicit scoped files only; --force --json --limit NAME=VALUE.\nPack verifies hashes and the complete package graph.\nAuthor and timestamp overrides are unavailable; metadata is preserved.\n";
3817
3679
  var string = { type: "string", minLength: 1 };
3818
3680
  var output = {
@@ -3934,7 +3796,8 @@ var packageToolsSchemas = Object.fromEntries(
3934
3796
  ])
3935
3797
  );
3936
3798
 
3937
- // packages/safe-bash-pptx-engine/src/command-engine-values.ts
3799
+ // packages/safe-bash-command-pptx/src/command-engine-values.ts
3800
+ import { OfficeError as OfficeError3 } from "../../safe-bash-presentation-engine/errors.js";
3938
3801
  function commandLength(value, minimum = 1) {
3939
3802
  const units = { emu: 1, in: 914400, cm: 36e4, mm: 36e3, pt: 12700 };
3940
3803
  const unit = Object.keys(units).find((candidate) => value.endsWith(candidate));
@@ -3943,7 +3806,7 @@ function commandLength(value, minimum = 1) {
3943
3806
  if (!unit || pieces.length > 2 || !pieces[0] || pieces.some(
3944
3807
  (piece) => !piece || [...piece].some((character) => character < "0" || character > "9")
3945
3808
  ))
3946
- throw new OfficeError(
3809
+ throw new OfficeError3(
3947
3810
  "invalid-value",
3948
3811
  "Lengths require a decimal and emu, in, cm, mm or pt unit.",
3949
3812
  "usage"
@@ -3951,13 +3814,13 @@ function commandLength(value, minimum = 1) {
3951
3814
  const raw = Number(digits) * units[unit];
3952
3815
  const result = Math.sign(raw) * Math.round(Math.abs(raw));
3953
3816
  if (!Number.isFinite(raw) || Math.abs(raw) > Number.MAX_SAFE_INTEGER || !Number.isSafeInteger(result) || result < minimum)
3954
- throw new OfficeError("invalid-value", "Length is outside the supported range.", "usage");
3817
+ throw new OfficeError3("invalid-value", "Length is outside the supported range.", "usage");
3955
3818
  return result;
3956
3819
  }
3957
3820
  function commandTimestamp(value) {
3958
3821
  const date = new Date(value);
3959
3822
  if (!Number.isFinite(date.getTime()) || !value.endsWith("Z") || date.toISOString() !== value && date.toISOString() !== value.slice(0, -1) + ".000Z")
3960
- throw new OfficeError(
3823
+ throw new OfficeError3(
3961
3824
  "invalid-value",
3962
3825
  "Timestamp requires a valid UTC date with seconds and Z suffix.",
3963
3826
  "usage"
@@ -3991,7 +3854,7 @@ function commandJson(value) {
3991
3854
  }
3992
3855
  return JSON.parse(value);
3993
3856
  } catch {
3994
- throw new OfficeError(
3857
+ throw new OfficeError3(
3995
3858
  "invalid-value",
3996
3859
  "Structured slides require valid JSON without duplicate keys, at most 32 levels deep.",
3997
3860
  "usage"
@@ -3999,10 +3862,13 @@ function commandJson(value) {
3999
3862
  }
4000
3863
  }
4001
3864
 
4002
- // packages/safe-bash-pptx-engine/src/command-package-tools.ts
3865
+ // packages/safe-bash-command-pptx/src/command-package-tools.ts
4003
3866
  import { sha256 } from "@noble/hashes/sha2.js";
3867
+ import { OfficeError as OfficeError4 } from "../../safe-bash-presentation-engine/errors.js";
3868
+ import { asciiKey, partName } from "../../safe-bash-presentation-engine/package-uri.js";
3869
+ import { extractPackage, packPackage } from "../../safe-bash-presentation-engine/package-tools.js";
4004
3870
  function usage2(message) {
4005
- throw new OfficeError("invalid-value", message, "usage");
3871
+ throw new OfficeError4("invalid-value", message, "usage");
4006
3872
  }
4007
3873
  function scopedPath(manifest, path) {
4008
3874
  if (path === "-") return path;
@@ -4069,7 +3935,7 @@ async function executePackageCommand(args, request, options2) {
4069
3935
  );
4070
3936
  const files = await extractPackage(bytes2, context, args.parts ? { parts: args.parts } : {});
4071
3937
  if (files.length > (args.limits?.maxOutputs ?? context.archiveLimits.maxMembers) || files.reduce((sum, file) => sum + file.bytes.length, 0) > options2.maxOutputBytes)
4072
- throw new OfficeError(
3938
+ throw new OfficeError4(
4073
3939
  "resource-limit",
4074
3940
  "Package extraction exceeds output limits.",
4075
3941
  "validate-intent"
@@ -4101,7 +3967,7 @@ async function executePackageCommand(args, request, options2) {
4101
3967
  };
4102
3968
  }
4103
3969
  if (args.creation?.author !== void 0 || args.creation?.timestamp !== void 0)
4104
- throw new OfficeError(
3970
+ throw new OfficeError4(
4105
3971
  "unsupported-edit",
4106
3972
  "Pack metadata overrides are unavailable; source properties are preserved.",
4107
3973
  "validate-intent"
@@ -4111,7 +3977,7 @@ async function executePackageCommand(args, request, options2) {
4111
3977
  Math.min(context.limits.maxBytes, context.xmlLimits.maxBytes)
4112
3978
  );
4113
3979
  if (encoded.length > Math.min(context.limits.maxBytes, context.xmlLimits.maxBytes))
4114
- throw new OfficeError("resource-limit", "Manifest exceeds byte limit.", "admit");
3980
+ throw new OfficeError4("resource-limit", "Manifest exceeds byte limit.", "admit");
4115
3981
  let value;
4116
3982
  try {
4117
3983
  value = commandJson(new TextDecoder("utf-8", { fatal: true }).decode(encoded));
@@ -4121,7 +3987,7 @@ async function executePackageCommand(args, request, options2) {
4121
3987
  if (!value || typeof value !== "object" || Array.isArray(value) || Object.keys(value).some((key) => key !== "parts") || !("parts" in value) || !Array.isArray(value.parts) || !value.parts.length)
4122
3988
  usage2("Manifest requires a nonempty parts array.");
4123
3989
  if (value.parts.length > context.archiveLimits.maxMembers)
4124
- throw new OfficeError("resource-limit", "Manifest exceeds member limit.", "admit");
3990
+ throw new OfficeError4("resource-limit", "Manifest exceeds member limit.", "admit");
4125
3991
  const parts = value.parts;
4126
3992
  for (const item of parts)
4127
3993
  if (!item || typeof item !== "object" || Object.keys(item).some((key) => !["part", "sha256", "file"].includes(key)) || !canonical(item.part) || typeof item.sha256 !== "string" || item.sha256.length !== 64 || [...item.sha256].some((c) => !"0123456789abcdef".includes(c)) || !item.file || typeof item.file !== "object" || Object.keys(item.file).length !== 1 || typeof item.file.vfsPath !== "string" || !item.file.vfsPath.length)
@@ -4143,7 +4009,7 @@ async function executePackageCommand(args, request, options2) {
4143
4009
  );
4144
4010
  total += bytes2.length;
4145
4011
  if (bytes2.length > context.archiveLimits.maxEntryBytes || total > context.archiveLimits.maxTotalBytes)
4146
- throw new OfficeError("resource-limit", "Manifest contents exceed byte limit.", "admit");
4012
+ throw new OfficeError4("resource-limit", "Manifest contents exceed byte limit.", "admit");
4147
4013
  members.push({ part: item.part, sha256: item.sha256, bytes: bytes2 });
4148
4014
  }
4149
4015
  const bytes = await packPackage(
@@ -4152,7 +4018,7 @@ async function executePackageCommand(args, request, options2) {
4152
4018
  args.creation?.kind ? { kind: args.creation.kind } : {}
4153
4019
  );
4154
4020
  if (bytes.length > options2.maxOutputBytes)
4155
- throw new OfficeError("resource-limit", "Packed output exceeds byte limit.", "validate-intent");
4021
+ throw new OfficeError4("resource-limit", "Packed output exceeds byte limit.", "validate-intent");
4156
4022
  const dryRun = args.dryRun ?? false;
4157
4023
  const fingerprint = [...sha256(bytes)].map((byte) => byte.toString(16).padStart(2, "0")).join("");
4158
4024
  if (args.output && args.output !== "-" && !request.publishOutput)
@@ -4187,7 +4053,11 @@ async function executePackageCommand(args, request, options2) {
4187
4053
  };
4188
4054
  }
4189
4055
 
4190
- // packages/safe-bash-pptx-engine/src/diff-schema.ts
4056
+ // packages/safe-bash-command-pptx/src/command-diff.ts
4057
+ import { OfficeError as OfficeError5 } from "../../safe-bash-presentation-engine/errors.js";
4058
+ import { comparePresentations } from "../../safe-bash-presentation-engine/diff.js";
4059
+
4060
+ // packages/safe-bash-command-pptx/src/diff-schema.ts
4191
4061
  var diffModes = [
4192
4062
  "structural",
4193
4063
  "text",
@@ -4281,7 +4151,7 @@ var diffSchema = {
4281
4151
  }
4282
4152
  };
4283
4153
 
4284
- // packages/safe-bash-pptx-engine/src/command-diff.ts
4154
+ // packages/safe-bash-command-pptx/src/command-diff.ts
4285
4155
  async function executeDiffCommand(request, options2) {
4286
4156
  const encoder = new TextEncoder();
4287
4157
  let json = false;
@@ -4290,7 +4160,7 @@ async function executeDiffCommand(request, options2) {
4290
4160
  let human = "";
4291
4161
  let exitCode = 0;
4292
4162
  const failure = (error) => {
4293
- const office = error instanceof OfficeError ? error : void 0;
4163
+ const office = error instanceof OfficeError5 ? error : void 0;
4294
4164
  const code = request.signal.aborted ? "cancelled" : office?.code ?? (error && typeof error === "object" && "code" in error && error.code === "resource-limit" ? "resource-limit" : "io-failure");
4295
4165
  exitCode = code === "cancelled" ? 130 : 2;
4296
4166
  const message = office?.message ?? (code === "cancelled" ? "Comparison cancelled." : "Comparison input could not be read.");
@@ -4308,7 +4178,7 @@ async function executeDiffCommand(request, options2) {
4308
4178
  };
4309
4179
  };
4310
4180
  const usage13 = (message) => {
4311
- throw new OfficeError("invalid-value", message, "usage");
4181
+ throw new OfficeError5("invalid-value", message, "usage");
4312
4182
  };
4313
4183
  try {
4314
4184
  let byteCount = 0;
@@ -4316,7 +4186,7 @@ async function executeDiffCommand(request, options2) {
4316
4186
  if (!(bytes2 instanceof Uint8Array)) usage13("Arguments must be byte arrays.");
4317
4187
  byteCount += bytes2.byteLength;
4318
4188
  if (byteCount > options2.maxArgumentBytes)
4319
- throw new OfficeError("resource-limit", "Argument limit exceeded.", "admit");
4189
+ throw new OfficeError5("resource-limit", "Argument limit exceeded.", "admit");
4320
4190
  try {
4321
4191
  return new TextDecoder("utf-8", { fatal: true }).decode(bytes2);
4322
4192
  } catch {
@@ -4394,7 +4264,7 @@ async function executeDiffCommand(request, options2) {
4394
4264
  }
4395
4265
  };
4396
4266
  if (mode === "effective-formatting")
4397
- throw new OfficeError(
4267
+ throw new OfficeError5(
4398
4268
  "unsupported-profile",
4399
4269
  "Effective formatting comparison is not supported.",
4400
4270
  "usage"
@@ -4429,7 +4299,7 @@ async function executeDiffCommand(request, options2) {
4429
4299
  let bytes = encoder.encode(json ? JSON.stringify(result) + "\n" : human);
4430
4300
  if (bytes.length > maxOutputBytes) {
4431
4301
  result = failure(
4432
- new OfficeError("resource-limit", "Comparison output limit exceeded.", "admit")
4302
+ new OfficeError5("resource-limit", "Comparison output limit exceeded.", "admit")
4433
4303
  );
4434
4304
  bytes = encoder.encode(json ? JSON.stringify(result) + "\n" : human);
4435
4305
  }
@@ -4440,7 +4310,7 @@ async function executeDiffCommand(request, options2) {
4440
4310
  };
4441
4311
  }
4442
4312
 
4443
- // packages/safe-bash-pptx-engine/src/template-schema.ts
4313
+ // packages/safe-bash-command-pptx/src/template-schema.ts
4444
4314
  var templateUsage = "Usage: pptx template apply INPUT (--data-json JSON | --data-file PATH) [output]\nBindings declare name, kind, scope: slides, slide, and cardinality: one|all.\nText slots use {{name}}; tables and images use a shape named {{name}}.\nRepeat: kind: repeat, slides: original positions, records: binding arrays.\nRepeat mediaPolicy is required: shared-media | isolated-instance.\nAll selected slide slots require bindings. Values are literal; expressions are never evaluated.\nMutations require --output PATH | --in-place | --dry-run. Common: --json --limit NAME=VALUE.\n";
4445
4315
  var text = { type: "string" };
4446
4316
  var templateBindingsSchema = {
@@ -4547,14 +4417,23 @@ var templateSchema = {
4547
4417
  }
4548
4418
  };
4549
4419
 
4550
- // packages/safe-bash-pptx-engine/src/command-template.ts
4420
+ // packages/safe-bash-command-pptx/src/command-template.ts
4551
4421
  import { sha256 as sha2562 } from "@noble/hashes/sha2.js";
4422
+ import { OfficeError as OfficeError6 } from "../../safe-bash-presentation-engine/errors.js";
4423
+ import {
4424
+ applyTemplateBindings,
4425
+ validateTemplateBindings
4426
+ } from "../../safe-bash-presentation-engine/template-bindings.js";
4427
+ import {
4428
+ applyTemplateRepeat,
4429
+ validateTemplateRepeat
4430
+ } from "../../safe-bash-presentation-engine/template-repeat.js";
4552
4431
  function validateTemplateData(value) {
4553
4432
  if (Array.isArray(value)) validateTemplateBindings(value);
4554
4433
  else validateTemplateRepeat(value);
4555
4434
  }
4556
4435
  function usage3(message) {
4557
- throw new OfficeError("invalid-value", message, "usage");
4436
+ throw new OfficeError6("invalid-value", message, "usage");
4558
4437
  }
4559
4438
  function validateTemplateCommand(args, positionals, seen) {
4560
4439
  if ([...seen].some(
@@ -4659,7 +4538,7 @@ async function executeTemplateCommand(args, request, options2) {
4659
4538
  };
4660
4539
  }
4661
4540
 
4662
- // packages/safe-bash-pptx-engine/src/comments-schema.ts
4541
+ // packages/safe-bash-command-pptx/src/comments-schema.ts
4663
4542
  var modernAuthorSchema = {
4664
4543
  type: "object",
4665
4544
  additionalProperties: false,
@@ -4905,9 +4784,12 @@ var commentSchemas = Object.fromEntries(
4905
4784
  })
4906
4785
  );
4907
4786
 
4908
- // packages/safe-bash-pptx-engine/src/command-comments.ts
4787
+ // packages/safe-bash-command-pptx/src/command-comments.ts
4788
+ import { OfficeError as OfficeError7 } from "../../safe-bash-presentation-engine/errors.js";
4789
+ import { mutateComments, readComments, readCommentAuthors } from "../../safe-bash-presentation-engine/comments.js";
4790
+ import { SelectionError } from "../../safe-bash-presentation-engine/selectors.js";
4909
4791
  function usage4(message) {
4910
- throw new OfficeError("invalid-value", message, "usage");
4792
+ throw new OfficeError7("invalid-value", message, "usage");
4911
4793
  }
4912
4794
  function validateCommentsCommand(args, positionals, seen) {
4913
4795
  const allowed = Object.keys(commentSchemas[args.operation].options.properties).map(
@@ -5019,7 +4901,7 @@ async function executeCommentsCommand(args, request, options2) {
5019
4901
  };
5020
4902
  }
5021
4903
 
5022
- // packages/safe-bash-pptx-engine/src/notes-schema.ts
4904
+ // packages/safe-bash-command-pptx/src/notes-schema.ts
5023
4905
  var notesUsage = "Usage: pptx notes list|get|add|set|remove INPUT [--slide N | --select TOKEN] [--text TEXT] [output]\nSpeaker text is separate from slide-image/date/footer placeholders and other notes shapes.\nReads never create notes. Add requires absent notes; set creates missing speaker text.\nScope: notes. Use text operations with explicit notes or notes-master scope for shape edits.\nMutations require selection or --all and --output PATH | --in-place | --dry-run.\nCommon: --json --limit NAME=VALUE; mutations accept --allow-empty; --force requires --output.\n";
5024
4906
  var noteSchemas = Object.fromEntries(
5025
4907
  ["list", "get", "add", "set", "remove"].map((action) => {
@@ -5139,7 +5021,7 @@ var noteSchemas = Object.fromEntries(
5139
5021
  })
5140
5022
  );
5141
5023
 
5142
- // packages/safe-bash-pptx-engine/src/metadata-schema.ts
5024
+ // packages/safe-bash-command-pptx/src/metadata-schema.ts
5143
5025
  var metadataUsage = `Usage: pptx properties list|get|set|remove INPUT [--name NAME] [--value VALUE] [--type string|number|boolean|date]
5144
5026
  pptx tags list|get|add|set|remove INPUT [--slide N | --select TOKEN | --scope presentation] [--name NAME] [--value VALUE]
5145
5027
  pptx sanitize INPUT --remove '["notes","comments","properties","links","objects"]' [output]
@@ -5183,11 +5065,11 @@ var sanitizationEntry = {
5183
5065
  };
5184
5066
  var metadataSchemas = Object.fromEntries(
5185
5067
  ["properties.list", "properties.get", "properties.set", "properties.remove", "tags.list", "tags.get", "tags.add", "tags.set", "tags.remove", "sanitize"].map((operation) => {
5186
- const tags = operation.startsWith("tags."), sanitize2 = operation === "sanitize";
5068
+ const tags = operation.startsWith("tags."), sanitize = operation === "sanitize";
5187
5069
  const action = operation.split(".")[1];
5188
- const mutation2 = sanitize2 || ["add", "set", "remove"].includes(action);
5070
+ const mutation2 = sanitize || ["add", "set", "remove"].includes(action);
5189
5071
  const edit = action === "add" || action === "set";
5190
- const required = sanitize2 ? ["remove"] : tags ? action === "add" ? ["name", "value"] : [] : action === "list" ? [] : action === "set" ? ["name", "value"] : ["name"];
5072
+ const required = sanitize ? ["remove"] : tags ? action === "add" ? ["name", "value"] : [] : action === "list" ? [] : action === "set" ? ["name", "value"] : ["name"];
5191
5073
  return [operation, {
5192
5074
  description: metadataUsage,
5193
5075
  input: inspectSchema.input,
@@ -5198,13 +5080,13 @@ var metadataSchemas = Object.fromEntries(
5198
5080
  properties: {
5199
5081
  json: { type: "boolean" },
5200
5082
  limit: textGetSchema.options.properties.limit,
5201
- ...!sanitize2 ? { scope: tags ? { enum: ["slides", "presentation"] } : { const: "presentation" } } : {},
5083
+ ...!sanitize ? { scope: tags ? { enum: ["slides", "presentation"] } : { const: "presentation" } } : {},
5202
5084
  ...tags ? { select: inspectSchema.options.properties.select, slide: inspectSchema.options.properties.slide } : {},
5203
- ...!tags && !sanitize2 || edit ? { name: { type: "string", minLength: 1 } } : {},
5085
+ ...!tags && !sanitize || edit ? { name: { type: "string", minLength: 1 } } : {},
5204
5086
  ...edit ? { value: tags ? { type: "string" } : { type: ["string", "number", "boolean"] } } : {},
5205
5087
  ...operation === "properties.set" ? { type: { enum: ["string", "number", "boolean", "date"] } } : {},
5206
- ...sanitize2 ? { remove: { oneOf: [{ enum: ["notes", "comments", "properties", "links", "objects"] }, { type: "array", minItems: 1, uniqueItems: true, items: { enum: ["notes", "comments", "properties", "links", "objects"] } }] } } : {},
5207
- ...mutation2 ? { output: { type: "string", minLength: 1 }, inPlace: { type: "boolean" }, force: { type: "boolean" }, dryRun: { type: "boolean" }, ...tags || sanitize2 ? { all: { type: "boolean" }, allowEmpty: { type: "boolean" } } : {} } : {}
5088
+ ...sanitize ? { remove: { oneOf: [{ enum: ["notes", "comments", "properties", "links", "objects"] }, { type: "array", minItems: 1, uniqueItems: true, items: { enum: ["notes", "comments", "properties", "links", "objects"] } }] } } : {},
5089
+ ...mutation2 ? { output: { type: "string", minLength: 1 }, inPlace: { type: "boolean" }, force: { type: "boolean" }, dryRun: { type: "boolean" }, ...tags || sanitize ? { all: { type: "boolean" }, allowEmpty: { type: "boolean" } } : {} } : {}
5208
5090
  },
5209
5091
  allOf: [
5210
5092
  ...tags ? [{ if: { required: ["select"] }, then: { not: { anyOf: ["slide", "scope", "all"].map((key) => ({ required: [key] })) } } }, ...action === "set" ? [{ anyOf: ["name", "value"].map((key) => ({ required: [key] })) }] : []] : [],
@@ -5220,14 +5102,14 @@ var metadataSchemas = Object.fromEntries(
5220
5102
  result: { ...textGetSchema.result, properties: { ...textGetSchema.result.properties, affected: mutation2 ? { type: "integer", minimum: 0 } : { const: 0 }, operation: { const: operation }, data: { oneOf: [{ type: "null" }, {
5221
5103
  type: "object",
5222
5104
  additionalProperties: false,
5223
- required: mutation2 ? sanitize2 ? ["dryRun", "removed", "retained"] : ["dryRun"] : [tags ? "tags" : "properties"],
5224
- properties: mutation2 ? { dryRun: { type: "boolean" }, ...sanitize2 ? { removed: { type: "array", items: sanitizationEntry }, retained: { type: "array", items: sanitizationEntry } } : {} } : tags ? { tags: { type: "array", items: tag } } : { properties: { type: "array", items: property } }
5105
+ required: mutation2 ? sanitize ? ["dryRun", "removed", "retained"] : ["dryRun"] : [tags ? "tags" : "properties"],
5106
+ properties: mutation2 ? { dryRun: { type: "boolean" }, ...sanitize ? { removed: { type: "array", items: sanitizationEntry }, retained: { type: "array", items: sanitizationEntry } } : {} } : tags ? { tags: { type: "array", items: tag } } : { properties: { type: "array", items: property } }
5225
5107
  }] } } }
5226
5108
  }];
5227
5109
  })
5228
5110
  );
5229
5111
 
5230
- // packages/safe-bash-pptx-engine/src/accessibility-schema.ts
5112
+ // packages/safe-bash-command-pptx/src/accessibility-schema.ts
5231
5113
  var accessibilityUsage = "Usage: pptx accessibility list|get|set INPUT [selection] [output]\nSelection: --slide N --shape NAME | --select TOKEN; --scope slides|layouts|masters; --all for set.\nMetadata: --alt-text TEXT --title TEXT --decorative true|false. Empty text clears text.\nAlt text is the object description. Decorative uses the supported Office drawing extension.\nReports missing/duplicate slide titles and structural object order.\nNo accessibility certification, visual reading order or contrast measurement.\nOutput: --output PATH | --in-place | --dry-run; --force requires --output.\nCommon: --json --limit NAME=VALUE; set accepts --allow-empty.\n";
5232
5114
  var source = {
5233
5115
  oneOf: [
@@ -5408,9 +5290,16 @@ var accessibilitySchemas = Object.fromEntries(
5408
5290
  })
5409
5291
  );
5410
5292
 
5411
- // packages/safe-bash-pptx-engine/src/command-accessibility.ts
5293
+ // packages/safe-bash-command-pptx/src/command-accessibility.ts
5294
+ import { OfficeError as OfficeError8 } from "../../safe-bash-presentation-engine/errors.js";
5295
+ import {
5296
+ readAccessibility,
5297
+ mutateAccessibility,
5298
+ validateAccessibilityUpdate
5299
+ } from "../../safe-bash-presentation-engine/accessibility.js";
5300
+ import { SelectionError as SelectionError2 } from "../../safe-bash-presentation-engine/selectors.js";
5412
5301
  function usage5(message) {
5413
- throw new OfficeError("invalid-value", message, "usage");
5302
+ throw new OfficeError8("invalid-value", message, "usage");
5414
5303
  }
5415
5304
  function validateAccessibilityCommand(args, positionals, seen) {
5416
5305
  const allowed = Object.keys(accessibilitySchemas[args.operation].options.properties).map(
@@ -5455,7 +5344,7 @@ async function executeAccessibilityCommand(args, request, options2) {
5455
5344
  if (args.operation !== "accessibility.set") {
5456
5345
  const data = await readAccessibility(original, selection, context);
5457
5346
  if (args.operation === "accessibility.get" && data.objects.length !== 1)
5458
- throw new SelectionError(data.objects.length ? "ambiguous-selection" : "missing-selection");
5347
+ throw new SelectionError2(data.objects.length ? "ambiguous-selection" : "missing-selection");
5459
5348
  return {
5460
5349
  result: {
5461
5350
  version: 1,
@@ -5519,9 +5408,14 @@ async function executeAccessibilityCommand(args, request, options2) {
5519
5408
  };
5520
5409
  }
5521
5410
 
5522
- // packages/safe-bash-pptx-engine/src/command-metadata.ts
5411
+ // packages/safe-bash-command-pptx/src/command-metadata.ts
5412
+ import { OfficeError as OfficeError9 } from "../../safe-bash-presentation-engine/errors.js";
5413
+ import { coreDefinition, mutateProperty, readProperties } from "../../safe-bash-presentation-engine/properties.js";
5414
+ import { sanitize as sanitizePresentation } from "../../safe-bash-presentation-engine/sanitize.js";
5415
+ import { mutateTags, readTags } from "../../safe-bash-presentation-engine/tags.js";
5416
+ import { SelectionError as SelectionError3 } from "../../safe-bash-presentation-engine/selectors.js";
5523
5417
  function usage6(message) {
5524
- throw new OfficeError("invalid-value", message, "usage");
5418
+ throw new OfficeError9("invalid-value", message, "usage");
5525
5419
  }
5526
5420
  function removalCategories(value) {
5527
5421
  const categories = ["notes", "comments", "properties", "links", "objects"];
@@ -5542,19 +5436,19 @@ function validateMetadataCommand(args, positionals, seen) {
5542
5436
  if ([...seen].some((flag) => !allowed.includes(flag))) usage6("Option does not apply to this metadata operation.");
5543
5437
  if (positionals.length !== 1 || !positionals[0]) usage6("Metadata operations require exactly one input.");
5544
5438
  args.input = positionals[0];
5545
- const tags = args.operation.startsWith("tags."), sanitize2 = args.operation === "sanitize";
5439
+ const tags = args.operation.startsWith("tags."), sanitize = args.operation === "sanitize";
5546
5440
  const action = args.operation.split(".")[1];
5547
5441
  if (args.scope !== void 0 && !(tags ? ["slides", "presentation"] : ["presentation"]).includes(args.scope)) usage6("Unsupported metadata scope.");
5548
5442
  if (args.token && ["--slide", "--scope", "--all"].some((flag) => seen.has(flag))) usage6("Opaque and simple selectors cannot be combined.");
5549
5443
  if (args.scope === "presentation" && args.slide !== void 0) usage6("Presentation scope rejects slide selection.");
5550
- if (!tags && !sanitize2 && action !== "list" && !args.metadataName) usage6("Property name is required.");
5444
+ if (!tags && !sanitize && action !== "list" && !args.metadataName) usage6("Property name is required.");
5551
5445
  if (args.metadataName === "") usage6("Metadata names cannot be empty.");
5552
5446
  if (action === "add" && (!args.metadataName || args.metadataValue === void 0)) usage6("New tags require name and value.");
5553
5447
  if (action === "set" && (tags ? args.metadataName === void 0 && args.metadataValue === void 0 : args.metadataValue === void 0)) usage6("Metadata edit value is required.");
5554
5448
  if (args.metadataType !== void 0 && !["string", "number", "boolean", "date"].includes(args.metadataType)) usage6("Unknown property type.");
5555
- if (sanitize2) removalCategories(args.metadataRemove);
5556
- if (!sanitize2 && ["list", "get"].includes(action)) return;
5557
- if (tags && !args.token && args.slide === void 0 && args.scope !== "presentation" && !args.all) throw new SelectionError("missing-selection");
5449
+ if (sanitize) removalCategories(args.metadataRemove);
5450
+ if (!sanitize && ["list", "get"].includes(action)) return;
5451
+ if (tags && !args.token && args.slide === void 0 && args.scope !== "presentation" && !args.all) throw new SelectionError3("missing-selection");
5558
5452
  if (args.inPlace && args.input === "-") usage6("Stdin cannot be edited in place.");
5559
5453
  if (args.inPlace && args.output) usage6("Output and in-place cannot be combined.");
5560
5454
  if (!args.dryRun && !args.inPlace && !args.output) usage6("Mutation requires a destination.");
@@ -5565,16 +5459,16 @@ function validateMetadataCommand(args, positionals, seen) {
5565
5459
  async function executeMetadataCommand(args, request, options2) {
5566
5460
  const context = { ...options2.context, signal: request.signal };
5567
5461
  const original = await request.readInput(args.input, Math.min(context.limits.maxBytes, context.archiveLimits.maxArchiveBytes));
5568
- const tags = args.operation.startsWith("tags."), sanitize2 = args.operation === "sanitize";
5462
+ const tags = args.operation.startsWith("tags."), sanitize = args.operation === "sanitize";
5569
5463
  const action = args.operation.split(".")[1];
5570
5464
  const tagOptions = {
5571
5465
  ...args.scope === void 0 ? {} : { scope: args.scope },
5572
5466
  ...args.token ? { selection: { token: args.token } } : args.slide === void 0 ? args.all ? { selection: { all: true } } : {} : { selection: { kind: "slide", position: { coordinateSystem: "one-based", value: args.slide }, ...args.all ? { all: true } : {} } }
5573
5467
  };
5574
5468
  const envelope = (data, affected2 = 0, locations2 = []) => ({ version: 1, operation: args.operation, ok: true, data, affected: affected2, warnings: [], errors: [], locations: locations2 });
5575
- if (!sanitize2 && ["list", "get"].includes(action)) {
5469
+ if (!sanitize && ["list", "get"].includes(action)) {
5576
5470
  const records = tags ? await readTags(original, tagOptions, context) : await readProperties(original, args.metadataName === void 0 ? {} : { name: args.metadataName }, context);
5577
- if (action === "get" && records.length !== 1) throw new SelectionError(records.length ? "ambiguous-selection" : "missing-selection");
5471
+ if (action === "get" && records.length !== 1) throw new SelectionError3(records.length ? "ambiguous-selection" : "missing-selection");
5578
5472
  return { result: envelope({ [tags ? "tags" : "properties"]: records }, 0, tags ? records.map((r) => r.location) : []), human: records.map((r) => `${JSON.stringify(r.name)}: ${JSON.stringify(r.value)}
5579
5473
  `).join("") };
5580
5474
  }
@@ -5585,13 +5479,13 @@ async function executeMetadataCommand(args, request, options2) {
5585
5479
  bytes = result.bytes;
5586
5480
  affected = result.affected;
5587
5481
  locations = result.locations;
5588
- } else if (sanitize2) {
5589
- sanitization = await sanitize(original, { remove: removalCategories(args.metadataRemove), ...args.allowEmpty === void 0 ? {} : { allowEmpty: args.allowEmpty } }, context);
5482
+ } else if (sanitize) {
5483
+ sanitization = await sanitizePresentation(original, { remove: removalCategories(args.metadataRemove), ...args.allowEmpty === void 0 ? {} : { allowEmpty: args.allowEmpty } }, context);
5590
5484
  bytes = sanitization.bytes;
5591
5485
  affected = sanitization.affected;
5592
5486
  } else {
5593
5487
  const known = await readProperties(original, { name: args.metadataName }, context);
5594
- if (known.length > 1) throw new SelectionError("ambiguous-selection");
5488
+ if (known.length > 1) throw new SelectionError3("ambiguous-selection");
5595
5489
  const type = args.metadataType ?? known[0]?.type ?? coreDefinition(args.metadataName)?.[2];
5596
5490
  let value = args.metadataValue;
5597
5491
  if (action === "set" && type === "boolean") {
@@ -5622,9 +5516,12 @@ ${sanitization.retained.map((entry) => `Retained ${entry.category} ${entry.kind}
5622
5516
  };
5623
5517
  }
5624
5518
 
5625
- // packages/safe-bash-pptx-engine/src/command-notes.ts
5519
+ // packages/safe-bash-command-pptx/src/command-notes.ts
5520
+ import { OfficeError as OfficeError10 } from "../../safe-bash-presentation-engine/errors.js";
5521
+ import { mutateNotes, readNotes, validateNotesOptions } from "../../safe-bash-presentation-engine/notes.js";
5522
+ import { readSelectionIndex, SelectionError as SelectionError4 } from "../../safe-bash-presentation-engine/selectors.js";
5626
5523
  function usage7(message) {
5627
- throw new OfficeError("invalid-value", message, "usage");
5524
+ throw new OfficeError10("invalid-value", message, "usage");
5628
5525
  }
5629
5526
  function validateNotesCommand(args, positionals, seen) {
5630
5527
  const allowed = Object.keys(noteSchemas[args.operation].options.properties).map(
@@ -5638,7 +5535,7 @@ function validateNotesCommand(args, positionals, seen) {
5638
5535
  usage7("Opaque and simple selectors cannot be combined.");
5639
5536
  if (args.operation === "notes.list" || args.operation === "notes.get") return;
5640
5537
  if (!args.token && args.slide === void 0 && !args.all)
5641
- throw new SelectionError("missing-selection");
5538
+ throw new SelectionError4("missing-selection");
5642
5539
  validateNotesOptions(args.operation.slice(6), {
5643
5540
  selection: { kind: "slide" },
5644
5541
  ...args.noteText === void 0 ? {} : { text: args.noteText }
@@ -5727,7 +5624,7 @@ async function executeNotesCommand(args, request, options2) {
5727
5624
  };
5728
5625
  }
5729
5626
 
5730
- // packages/safe-bash-pptx-engine/src/links-schema.ts
5627
+ // packages/safe-bash-command-pptx/src/links-schema.ts
5731
5628
  var linksUsage = "Usage: pptx links list|get|add|set|remove INPUT [selection] [output]\nSelection: --slide N --shape NAME | --select TOKEN; --scope slides; --all for edits.\nDestination: --url URL | --target-slide N | --action next|previous|first|last|last-viewed|end-show\nAction url or slide may accompany the matching destination. URLs, including relative URLs, stay inert.\nAdvanced --path JSON selects the listed parentPath: zero-based child positions from the part root.\nTrigger: --trigger click|hover (default click). Remove --sanitize explicitly removes unsafe actions.\nCustom-show, launch, macro and OLE actions are preserved and never executed.\nOutput: --output PATH | --in-place | --dry-run; --force requires --output.\nCommon: --json --limit NAME=VALUE; mutations accept --allow-empty.\n";
5732
5629
  var linkSchemas = Object.fromEntries(
5733
5630
  ["list", "get", "add", "set", "remove"].map((action) => {
@@ -5903,9 +5800,15 @@ var linkSchemas = Object.fromEntries(
5903
5800
  })
5904
5801
  );
5905
5802
 
5906
- // packages/safe-bash-pptx-engine/src/command-links.ts
5803
+ // packages/safe-bash-command-pptx/src/command-links.ts
5804
+ import { readPackage as readPackage2 } from "../../safe-bash-presentation-engine/package-reader.js";
5805
+ import { parseXmlPart as parseXmlPart2 } from "../../safe-bash-presentation-engine/xml.js";
5806
+ import { OfficeError as OfficeError11 } from "../../safe-bash-presentation-engine/errors.js";
5807
+ import { listLinks, setLink, removeLink, isOrdinaryLinkUrl } from "../../safe-bash-presentation-engine/links.js";
5808
+ import { readShapes } from "../../safe-bash-presentation-engine/shape-operations.js";
5809
+ import { SelectionError as SelectionError5 } from "../../safe-bash-presentation-engine/selectors.js";
5907
5810
  function usage8(message) {
5908
- throw new OfficeError("invalid-value", message, "usage");
5811
+ throw new OfficeError11("invalid-value", message, "usage");
5909
5812
  }
5910
5813
  function validateLinkCommand(args, positionals, seen) {
5911
5814
  const allowed = Object.keys(linkSchemas[args.operation].options.properties).map(
@@ -5990,7 +5893,7 @@ async function executeLinkCommand(args, request, options2) {
5990
5893
  if (edit.trigger !== void 0) links = links.filter((link) => link.trigger === trigger);
5991
5894
  if (["links.list", "links.get"].includes(args.operation)) {
5992
5895
  if (args.operation === "links.get" && links.length !== 1)
5993
- throw new SelectionError(links.length ? "ambiguous-selection" : "missing-selection");
5896
+ throw new SelectionError5(links.length ? "ambiguous-selection" : "missing-selection");
5994
5897
  return {
5995
5898
  result: {
5996
5899
  version: 1,
@@ -6026,13 +5929,13 @@ async function executeLinkCommand(args, request, options2) {
6026
5929
  path: edit.path,
6027
5930
  location: shapes[i].location
6028
5931
  }));
6029
- if (!jobs.length && !args.allowEmpty) throw new SelectionError("missing-selection");
6030
- if (jobs.length > 1 && !args.all) throw new SelectionError("ambiguous-selection");
5932
+ if (!jobs.length && !args.allowEmpty) throw new SelectionError5("missing-selection");
5933
+ if (jobs.length > 1 && !args.all) throw new SelectionError5("ambiguous-selection");
6031
5934
  const existingShapeLinks = /* @__PURE__ */ new Set();
6032
5935
  if (args.operation === "links.add" && edit.path === void 0) {
6033
- const reader = await readPackage(original, context);
5936
+ const reader = await readPackage2(original, context);
6034
5937
  for (const link of selectedLinks) {
6035
- let parent = parseXmlPart(reader.get(link.part), context.xmlLimits).root;
5938
+ let parent = parseXmlPart2(reader.get(link.part), context.xmlLimits).root;
6036
5939
  for (const position of link.path.slice(0, -1)) parent = parent.children[position];
6037
5940
  if (parent.name.localName === "cNvPr")
6038
5941
  existingShapeLinks.add(JSON.stringify([link.part, link.shapeId]));
@@ -6043,7 +5946,7 @@ async function executeLinkCommand(args, request, options2) {
6043
5946
  if (args.operation === "links.add" && selectedLinks.some(
6044
5947
  (link) => link.part === selection.owner && link.shapeId === selection.id && (path ? link.path.length === path.length + 1 && path.every((position, i) => link.path[i] === position) : existingShapeLinks.has(JSON.stringify([link.part, link.shapeId])))
6045
5948
  ))
6046
- throw new OfficeError(
5949
+ throw new OfficeError11(
6047
5950
  "unsupported-edit",
6048
5951
  "Selected trigger already contains a link.",
6049
5952
  "validate-intent"
@@ -6099,7 +6002,18 @@ async function executeLinkCommand(args, request, options2) {
6099
6002
  };
6100
6003
  }
6101
6004
 
6102
- // packages/safe-bash-pptx-engine/src/tables-schema.ts
6005
+ // packages/safe-bash-command-pptx/src/command-engine.ts
6006
+ import {
6007
+ addTable,
6008
+ mutateTables,
6009
+ restructureTables,
6010
+ readTables,
6011
+ tableCell,
6012
+ validateTableSelection
6013
+ } from "../../safe-bash-presentation-engine/table-operations.js";
6014
+ import { validateTableUpdate } from "../../safe-bash-presentation-engine/tables.js";
6015
+
6016
+ // packages/safe-bash-command-pptx/src/tables-schema.ts
6103
6017
  var length2 = {
6104
6018
  type: "object",
6105
6019
  additionalProperties: false,
@@ -6324,7 +6238,20 @@ for (const action of [
6324
6238
  tableSchemas[`tables.${action}`] = schema;
6325
6239
  }
6326
6240
 
6327
- // packages/safe-bash-pptx-engine/src/connectors-schema.ts
6241
+ // packages/safe-bash-command-pptx/src/command-engine.ts
6242
+ import { readDrawing, mutateDrawing } from "../../safe-bash-presentation-engine/drawing-operations.js";
6243
+ import { validateDrawingUpdate } from "../../safe-bash-presentation-engine/drawing-format.js";
6244
+ import { addShapePath, setShapePath, readShapePaths } from "../../safe-bash-presentation-engine/shape-path-operations.js";
6245
+ import {
6246
+ addConnector,
6247
+ mutateConnectors,
6248
+ readConnectors,
6249
+ removeConnectors,
6250
+ removeShapes,
6251
+ validateConnectorOptions
6252
+ } from "../../safe-bash-presentation-engine/connector-operations.js";
6253
+
6254
+ // packages/safe-bash-command-pptx/src/connectors-schema.ts
6328
6255
  var location = textGetSchema.result.properties.data.oneOf[1].properties.segments.items.properties.location;
6329
6256
  var targetLocation = {
6330
6257
  allOf: [
@@ -6475,7 +6402,11 @@ removal.result.properties.data.oneOf[1].properties.effects.items.properties.feat
6475
6402
  };
6476
6403
  connectorSchemas["shapes.remove"] = removal;
6477
6404
 
6478
- // packages/safe-bash-pptx-engine/src/fields-schema.ts
6405
+ // packages/safe-bash-command-pptx/src/command-engine.ts
6406
+ import { validateShapePath, pathFromVertices } from "../../safe-bash-presentation-engine/shape-paths.js";
6407
+ import { readFields, mutateFields, validateFieldOptions } from "../../safe-bash-presentation-engine/fields.js";
6408
+
6409
+ // packages/safe-bash-command-pptx/src/fields-schema.ts
6479
6410
  var location2 = textGetSchema.result.properties.data.oneOf[1].properties.segments.items.properties.location;
6480
6411
  var values2 = {
6481
6412
  kind: { enum: ["slide-number", "date", "footer", "header"] },
@@ -6711,7 +6642,7 @@ var fieldSchemas = Object.fromEntries(
6711
6642
  })
6712
6643
  );
6713
6644
 
6714
- // packages/safe-bash-pptx-engine/src/transitions-schema.ts
6645
+ // packages/safe-bash-command-pptx/src/transitions-schema.ts
6715
6646
  var transitionsUsage = "Usage: pptx transitions list|get|add|set|remove INPUT [selection] [output]\nSelection: --slide N | --select TOKEN | --all (mutations); --scope slides\nEdits: --kind cut|fade|push|wipe; --direction left|right|up|down\n --duration MS --advance-after MS|null --advance-on-click true|false\nTiming is integer milliseconds, 0..2147483647; zero advances immediately.\nUse --advance-after null to disable automatic advance.\nDefaults: duration 500 (cut 0), click true, automatic advance disabled.\nPush/wipe require direction; cut/fade forbid it. Unsupported effects retained.\nOutput: --output PATH | --in-place | --dry-run; --force requires --output.\nCommon: --json --limit NAME=VALUE; mutations accept --allow-empty.\n";
6716
6647
  var milliseconds = { type: "integer", minimum: 0, maximum: 2147483647 };
6717
6648
  var updates = {
@@ -6906,7 +6837,7 @@ var transitionSchemas = Object.fromEntries(
6906
6837
  })
6907
6838
  );
6908
6839
 
6909
- // packages/safe-bash-pptx-engine/src/animations-schema.ts
6840
+ // packages/safe-bash-command-pptx/src/animations-schema.ts
6910
6841
  var animationsUsage = 'Usage: pptx animations list|get|add|set|remove INPUT [selection] [output]\nEdits: --kind appear|fade-in|fade-out|pulse --trigger on-click|with-previous|after-previous\n --target TOKEN_OR_JSON --duration MS --delay MS\nTarget JSON: {"slide":1,"shape":"Badge"}; slide positions are one-based.\nAdd requires kind, trigger and target. Set/remove select one effect unless --all.\nTiming: integer milliseconds 0..2147483647; duration defaults 500 (appear 0), delay 0.\nDependent triggers require a previous effect; unsafe timeline changes fail.\nOutput: --output PATH | --in-place | --dry-run; --force requires --output.\nSelection: --slide N --shape NAME | --select TOKEN; --scope slides\nCommon: --limit NAME=VALUE sets optional XML and output budgets.\nGet selects one slide graph; multiple slide graphs are ambiguous.\nShape selection retains its complete containing graph when targeted.\nItems follow XML order. Parent IDs and children preserve graph structure.\nAttributes are namespace/name/value tuples; references are ID/node-list.\nDiagnostics are code/reference/node-list tuples on the first node.\nComplex timing and motion paths are metadata; nothing is executed.\n';
6911
6842
  var scalar = (type) => ({ type: "object", additionalProperties: false, required: ["type", "value"], properties: { type: { const: type }, value: { type } } });
6912
6843
  var list = (items) => ({ type: "object", additionalProperties: false, required: ["type", "value"], properties: { type: { const: "list" }, value: { type: "array", maxItems: 25e4, items } } });
@@ -7037,9 +6968,16 @@ var animationSchemas = {
7037
6968
  }))
7038
6969
  };
7039
6970
 
7040
- // packages/safe-bash-pptx-engine/src/animation-batch-command.ts
6971
+ // packages/safe-bash-command-pptx/src/command-engine.ts
6972
+ import { readAnimations } from "../../safe-bash-presentation-engine/animations.js";
6973
+ import { mutateAnimations, mutateAnimationsBatch, validateAnimationOptions as validateAnimationOptions2 } from "../../safe-bash-presentation-engine/animation-editing.js";
6974
+
6975
+ // packages/safe-bash-command-pptx/src/animation-batch-command.ts
6976
+ import { OfficeError as OfficeError12 } from "../../safe-bash-presentation-engine/errors.js";
6977
+ import { validateAnimationOptions } from "../../safe-bash-presentation-engine/animation-editing.js";
6978
+ import { decodeSelectionToken, SelectionError as SelectionError6 } from "../../safe-bash-presentation-engine/selectors.js";
7041
6979
  function invalid(message) {
7042
- throw new OfficeError("invalid-value", message, "usage");
6980
+ throw new OfficeError12("invalid-value", message, "usage");
7043
6981
  }
7044
6982
  function record(value, keys) {
7045
6983
  if (!value || typeof value !== "object" || Array.isArray(value) || Object.keys(value).some((key) => !keys.includes(key))) invalid("Invalid animation batch fields.");
@@ -7087,7 +7025,7 @@ function resolveAnimationBatch(items, index) {
7087
7025
  const slide = index.select(selection)[0];
7088
7026
  selection = { kind: "object", scope: "slides", owner: slide.part, name: options2.shape };
7089
7027
  } catch (error) {
7090
- if (!(options2.allowEmpty && error instanceof SelectionError && error.code === "missing-selection")) throw error;
7028
+ if (!(options2.allowEmpty && error instanceof SelectionError6 && error.code === "missing-selection")) throw error;
7091
7029
  }
7092
7030
  }
7093
7031
  if (options2.all) selection = { ...selection ?? { kind: "slide", scope: "slides" }, all: true };
@@ -7095,7 +7033,7 @@ function resolveAnimationBatch(items, index) {
7095
7033
  });
7096
7034
  }
7097
7035
 
7098
- // packages/safe-bash-pptx-engine/src/animation-batch-schema.ts
7036
+ // packages/safe-bash-command-pptx/src/animation-batch-schema.ts
7099
7037
  var animationBatchUsage = 'Usage: pptx batch INPUT --ops-json JSON | --ops-file PATH [output]\nEnvelope: {"version":1,"operations":[{"operation":"animations.set","arguments":{"trigger":"on-click"},"options":{"slide":1,"shape":"Badge"}}]}\nSupports animation add/set/remove only, at most 1000 ordered items.\nEvery item requires arguments; options defaults to {}. Unknown fields fail.\nSelectors: one-based slide, shape, select Location, scope slides, all, allowEmpty.\nRepair dependent triggers before removing their predecessor in one batch.\nOutput: --output PATH | --in-place | --dry-run; --force requires --output.\nCommon: --json --limit NAME=VALUE. Validate all syntax, then publish once.\n';
7100
7038
  var mutation = animationSchemas["animations.remove"];
7101
7039
  var itemOptions = {
@@ -7175,7 +7113,10 @@ var animationBatchSchema = {
7175
7113
  }
7176
7114
  };
7177
7115
 
7178
- // packages/safe-bash-pptx-engine/src/equations-schema.ts
7116
+ // packages/safe-bash-command-pptx/src/command-engine.ts
7117
+ import { readTransitions, mutateTransitions, validateTransitionOptions } from "../../safe-bash-presentation-engine/transitions.js";
7118
+
7119
+ // packages/safe-bash-command-pptx/src/equations-schema.ts
7179
7120
  var equationsUsage = "Usage: pptx equations list|get INPUT [--slide N --shape NAME | --select TOKEN] [--json]\n pptx equations add INPUT --file PATH --slide N --shape NAME [output]\nOutput: --output PATH | --in-place | --dry-run; --force requires --output.\nScope: slides. Insert one validated caller-authored OMML document into one selected text body.\nInsertion accepts literal runs, fractions and sub/superscripts; other structures are inventory-only.\nLocations select containing shapes; paragraph/equation ordinals are informational. Get rejects multiple equations.\nExisting equations and fallbacks are preserved. No rendering, evaluation, set or remove.\n";
7180
7121
  var record2 = {
7181
7122
  type: "object",
@@ -7243,9 +7184,12 @@ var equationSchemas = Object.fromEntries(["list", "get", "add"].map((action) =>
7243
7184
  }];
7244
7185
  }));
7245
7186
 
7246
- // packages/safe-bash-pptx-engine/src/command-equations.ts
7187
+ // packages/safe-bash-command-pptx/src/command-equations.ts
7188
+ import { OfficeError as OfficeError13 } from "../../safe-bash-presentation-engine/errors.js";
7189
+ import { readEquations, mutateEquations } from "../../safe-bash-presentation-engine/equations.js";
7190
+ import { SelectionError as SelectionError7 } from "../../safe-bash-presentation-engine/selectors.js";
7247
7191
  function usage9(message) {
7248
- throw new OfficeError("invalid-value", message, "usage");
7192
+ throw new OfficeError13("invalid-value", message, "usage");
7249
7193
  }
7250
7194
  function validateEquationCommand(args, positionals, seen) {
7251
7195
  const schema = equationSchemas[args.operation];
@@ -7277,7 +7221,7 @@ async function executeEquationCommand(args, request, options2) {
7277
7221
  };
7278
7222
  if (args.operation !== "equations.add") {
7279
7223
  const equations = await readEquations(bytes, selection, context);
7280
- if (args.operation === "equations.get" && equations.length !== 1) throw new SelectionError(equations.length ? "ambiguous-selection" : "missing-selection");
7224
+ if (args.operation === "equations.get" && equations.length !== 1) throw new SelectionError7(equations.length ? "ambiguous-selection" : "missing-selection");
7281
7225
  return {
7282
7226
  result: { version: 1, operation: args.operation, ok: true, data: { equations }, affected: 0, warnings: [], errors: [], locations: equations.map((equation) => equation.location) },
7283
7227
  human: equations.map((equation) => equation.omml).join("\n") + (equations.length ? "\n" : "")
@@ -7297,7 +7241,7 @@ async function executeEquationCommand(args, request, options2) {
7297
7241
  };
7298
7242
  }
7299
7243
 
7300
- // packages/safe-bash-pptx-engine/src/opaque-schema.ts
7244
+ // packages/safe-bash-command-pptx/src/opaque-schema.ts
7301
7245
  var opaqueUsage = "Usage: pptx objects list INPUT [--scope shared] [--json]\n pptx objects extract INPUT --part PART --output-dir DIR --allow-partial-output [--json]\n pptx fonts list INPUT [--scope presentation] [--json]\nObjects inventory all opaque package parts, including controls, extensions, fonts and models.\nExtraction preserves exact bytes and relationship closure under generated safe names; the manifest maps original parts.\nNo activation, recursive payload parsing, installation or rendering. Shape selectors and object editing are unsupported.\nExtraction supports --force and --dry-run. Partial output is required unless the host supplies an atomic transaction.\nCommon limits: --limit NAME=VALUE sets optional resource ceilings.\n";
7302
7246
  var strings3 = { type: "array", items: { type: "string" } };
7303
7247
  var relationship = {
@@ -7394,10 +7338,13 @@ var opaqueSchemas = Object.fromEntries(["objects.list", "objects.extract", "font
7394
7338
  }];
7395
7339
  }));
7396
7340
 
7397
- // packages/safe-bash-pptx-engine/src/command-opaque.ts
7341
+ // packages/safe-bash-command-pptx/src/command-opaque.ts
7398
7342
  import { sha256 as sha2563 } from "@noble/hashes/sha2.js";
7343
+ import { OfficeError as OfficeError14 } from "../../safe-bash-presentation-engine/errors.js";
7344
+ import { extractObject, readFonts, readObjects } from "../../safe-bash-presentation-engine/opaque-objects.js";
7345
+ import { partName as partName2 } from "../../safe-bash-presentation-engine/package-uri.js";
7399
7346
  function usage10(message) {
7400
- throw new OfficeError("invalid-value", message, "usage");
7347
+ throw new OfficeError14("invalid-value", message, "usage");
7401
7348
  }
7402
7349
  function validateOpaqueCommand(args, positionals, seen) {
7403
7350
  const schema = opaqueSchemas[args.operation];
@@ -7410,7 +7357,7 @@ function validateOpaqueCommand(args, positionals, seen) {
7410
7357
  if (args.operation !== "objects.extract") return;
7411
7358
  if (!args.part) usage10("Object extraction requires --part.");
7412
7359
  try {
7413
- if (partName(args.part, false) !== args.part) usage10("Object extraction requires a canonical package part.");
7360
+ if (partName2(args.part, false) !== args.part) usage10("Object extraction requires a canonical package part.");
7414
7361
  } catch {
7415
7362
  usage10("Object extraction requires a canonical package part.");
7416
7363
  }
@@ -7434,7 +7381,7 @@ async function executeOpaqueCommand(args, request, options2) {
7434
7381
  }
7435
7382
  const extracted = await extractObject(bytes, { part: args.part }, context);
7436
7383
  const files = [{ part: extracted.part, name: extracted.name, bytes: extracted.bytes }, ...extracted.dependencies];
7437
- if (files.length > (args.limits?.maxOutputs ?? context.archiveLimits.maxMembers)) throw new OfficeError("resource-limit", "Opaque output count exceeds limit.", "validate-intent");
7384
+ if (files.length > (args.limits?.maxOutputs ?? context.archiveLimits.maxMembers)) throw new OfficeError14("resource-limit", "Opaque output count exceeds limit.", "validate-intent");
7438
7385
  const dryRun = args.dryRun ?? false;
7439
7386
  const allowPartialOutput = args.allowPartialOutput ?? false;
7440
7387
  if (!dryRun && !request.publishOutputs && (!allowPartialOutput || !request.publishOutput)) throw Object.assign(new Error("Object extraction requires atomic publication or explicit partial output."), { code: "publication-unsupported" });
@@ -7456,7 +7403,20 @@ async function executeOpaqueCommand(args, request, options2) {
7456
7403
  };
7457
7404
  }
7458
7405
 
7459
- // packages/safe-bash-pptx-engine/src/media-schema.ts
7406
+ // packages/safe-bash-command-pptx/src/command-engine.ts
7407
+ import { readImages } from "../../safe-bash-presentation-engine/images.js";
7408
+ import { extractImages } from "../../safe-bash-presentation-engine/image-extraction.js";
7409
+ import { addImage } from "../../safe-bash-presentation-engine/image-insertion.js";
7410
+ import { replaceImage } from "../../safe-bash-presentation-engine/image-replacement.js";
7411
+ import { setImage } from "../../safe-bash-presentation-engine/image-formatting.js";
7412
+ import { readMedia } from "../../safe-bash-presentation-engine/media.js";
7413
+ import { extractMedia } from "../../safe-bash-presentation-engine/media-extraction.js";
7414
+
7415
+ // packages/safe-bash-command-pptx/src/command-media-editing.ts
7416
+ import { OfficeError as OfficeError15 } from "../../safe-bash-presentation-engine/errors.js";
7417
+ import { addMedia, replaceMedia } from "../../safe-bash-presentation-engine/media-editing.js";
7418
+
7419
+ // packages/safe-bash-command-pptx/src/media-schema.ts
7460
7420
  var mediaUsage = "Usage: pptx media list|get|add|replace|extract INPUT [--slide N --shape NAME | --select TOKEN] [--json]\n --scope slides|layouts|masters|notes|notes-master|handout-master|shared\n --limit NAME=VALUE; slide positions are one-based; get requires exactly one occurrence.\nInventory embedded and linked media, types/hashes, posters, playback metadata, captions and timing.\nExternal targets remain inert. Metadata parsing does not prove playback.\n add: --slide N --file PATH --kind audio|video --mime-type TYPE --left LENGTH --top LENGTH --width LENGTH --height LENGTH --poster PATH\n replace: --slide N --shape NAME --file PATH --poster PATH [--shared]\n add/replace: --output PATH|--in-place|--dry-run; --poster-content-type TYPE; add: --trim-start MS --trim-end MS --loop true|false --volume 0..100000\n extract: --output-dir DIR [--force --allow-partial-output --deduplicate]\n";
7461
7421
  var nullableString = { type: ["string", "null"] };
7462
7422
  var relationshipProperties = {
@@ -7701,9 +7661,9 @@ for (const action of ["add", "replace", "extract"]) {
7701
7661
  });
7702
7662
  }
7703
7663
 
7704
- // packages/safe-bash-pptx-engine/src/command-media-editing.ts
7664
+ // packages/safe-bash-command-pptx/src/command-media-editing.ts
7705
7665
  function usage11(message) {
7706
- throw new OfficeError("invalid-value", message, "usage");
7666
+ throw new OfficeError15("invalid-value", message, "usage");
7707
7667
  }
7708
7668
  function validateMediaEditingCommand(args, positionals, seen) {
7709
7669
  const allowed = Object.keys(mediaSchemas[args.operation].options.properties).map(
@@ -7833,7 +7793,7 @@ async function executeMediaEditingCommand(args, request, options2) {
7833
7793
  };
7834
7794
  }
7835
7795
 
7836
- // packages/safe-bash-pptx-engine/src/images-schema.ts
7796
+ // packages/safe-bash-command-pptx/src/images-schema.ts
7837
7797
  var nullableString2 = { type: ["string", "null"] };
7838
7798
  var scopes = [
7839
7799
  "slides",
@@ -8366,7 +8326,12 @@ var imageSchemas = {
8366
8326
  }
8367
8327
  };
8368
8328
 
8369
- // packages/safe-bash-pptx-engine/src/charts-schema.ts
8329
+ // packages/safe-bash-command-pptx/src/command-engine.ts
8330
+ import { readCharts } from "../../safe-bash-presentation-engine/charts.js";
8331
+
8332
+ // packages/safe-bash-command-pptx/src/charts-schema.ts
8333
+ import { chartObjectSchema } from "../../safe-bash-presentation-engine/chart-object-operations.js";
8334
+ import { chartTypes } from "../../safe-bash-presentation-engine/chart-editing.js";
8370
8335
  var nullableString3 = { type: ["string", "null"] };
8371
8336
  var xmlNode = { $ref: "#/$defs/chartXmlNode" };
8372
8337
  var optionalXmlNode = { oneOf: [{ type: "null" }, xmlNode] };
@@ -8750,8 +8715,83 @@ var chartSchemas = {
8750
8715
  )
8751
8716
  };
8752
8717
 
8753
- // packages/safe-bash-pptx-engine/src/command-engine.ts
8718
+ // packages/safe-bash-command-pptx/src/command-engine.ts
8719
+ import {
8720
+ addChart,
8721
+ setCharts,
8722
+ chartTypes as chartTypes2,
8723
+ validateChartData,
8724
+ validateChartUpdate
8725
+ } from "../../safe-bash-presentation-engine/chart-editing.js";
8726
+ import { addShape, mutateShapes, readShapes as readShapes2 } from "../../safe-bash-presentation-engine/shape-operations.js";
8727
+ import { groupShapes, ungroupShape, validateGroupOptions } from "../../safe-bash-presentation-engine/shape-groups.js";
8728
+ import {
8729
+ mutateShapeSelection,
8730
+ validateShapeSelectionOptions
8731
+ } from "../../safe-bash-presentation-engine/shape-selection.js";
8732
+ import { Emu } from "../../safe-bash-presentation-engine/length.js";
8733
+ import { validateShapeOptions } from "../../safe-bash-presentation-engine/shapes.js";
8734
+ import { fitTextFrames, validateTextFitOptions } from "../../safe-bash-presentation-engine/text-fitting.js";
8735
+ import { admitFontMetrics } from "../../safe-bash-presentation-engine/font-metrics.js";
8736
+ import {
8737
+ readTextFrames,
8738
+ mutateTextFrames,
8739
+ validateTextFrameOptions
8740
+ } from "../../safe-bash-presentation-engine/text-frames.js";
8741
+ import {
8742
+ readTextParagraphs,
8743
+ mutateTextParagraphs,
8744
+ validateTextParagraphOptions
8745
+ } from "../../safe-bash-presentation-engine/text-paragraphs.js";
8746
+ import {
8747
+ readTextRuns,
8748
+ mutateTextRuns,
8749
+ validateTextRunOptions
8750
+ } from "../../safe-bash-presentation-engine/text-runs.js";
8751
+ import {
8752
+ readThemes,
8753
+ mutateTheme,
8754
+ themeColorSlots,
8755
+ themeFontSlots
8756
+ } from "../../safe-bash-presentation-engine/themes.js";
8757
+ import { readBackgrounds, mutateBackground } from "../../safe-bash-presentation-engine/backgrounds.js";
8758
+ import { replacePresentationText } from "../../safe-bash-presentation-engine/text-replacement.js";
8759
+ import { readPresentationText } from "../../safe-bash-presentation-engine/text-reading.js";
8760
+ import { OfficeError as OfficeError16 } from "../../safe-bash-presentation-engine/errors.js";
8754
8761
  import { sha256 as sha2564 } from "@noble/hashes/sha2.js";
8762
+ import { packageUri, partName as partName3 } from "../../safe-bash-presentation-engine/package-uri.js";
8763
+ import {
8764
+ SelectionError as SelectionError8,
8765
+ decodeSelectionToken as decodeSelectionToken2,
8766
+ readSelectionIndex as readSelectionIndex2
8767
+ } from "../../safe-bash-presentation-engine/selectors.js";
8768
+ import { addMaster, mutateMaster, mutateMasterShape, readMasters } from "../../safe-bash-presentation-engine/masters.js";
8769
+ import {
8770
+ readLayouts,
8771
+ addLayout,
8772
+ mutateLayout,
8773
+ removeLayout,
8774
+ applyLayout
8775
+ } from "../../safe-bash-presentation-engine/layouts.js";
8776
+ import { createPresentation } from "../../safe-bash-presentation-engine/creation.js";
8777
+ import {
8778
+ addSlide,
8779
+ mutateSlides
8780
+ } from "../../safe-bash-presentation-engine/slides.js";
8781
+ import { duplicateSlides } from "../../safe-bash-presentation-engine/slide-copy.js";
8782
+ import { importSlides } from "../../safe-bash-presentation-engine/slide-import.js";
8783
+ import { mergeSelectedDecks, splitSelectedDecks } from "../../safe-bash-presentation-engine/slide-merge-split.js";
8784
+ import { SlideTransferBudget } from "../../safe-bash-presentation-engine/slide-transfer-budget.js";
8785
+ import { readMemberships, mutateMemberships } from "../../safe-bash-presentation-engine/memberships.js";
8786
+ import { removeSlides } from "../../safe-bash-presentation-engine/slide-removal.js";
8787
+ import {
8788
+ readPresentationSettings,
8789
+ mutatePresentationSettings
8790
+ } from "../../safe-bash-presentation-engine/presentation-settings.js";
8791
+ import { getXmlPart, replaceXmlPart } from "../../safe-bash-presentation-engine/xml-parts.js";
8792
+ import { validatePresentation } from "../../safe-bash-presentation-engine/validation.js";
8793
+ import { readPackage as readPackage3 } from "../../safe-bash-presentation-engine/package-reader.js";
8794
+ import { resourceContext } from "../../safe-bash-presentation-engine/resource-limits.js";
8755
8795
  var scopes2 = [
8756
8796
  "slides",
8757
8797
  "notes",
@@ -8918,7 +8958,7 @@ Slides add requires an exact layout name or part URI; position defaults to appen
8918
8958
  Title/body match placeholder types; indexed bindings use --placeholders-json.
8919
8959
  `;
8920
8960
  function usage12(message) {
8921
- throw new OfficeError("invalid-value", message, "usage");
8961
+ throw new OfficeError16("invalid-value", message, "usage");
8922
8962
  }
8923
8963
  function paragraphTabLength(length4) {
8924
8964
  if (Object.keys(length4).some((key) => !["value", "unit"].includes(key)) || typeof length4.value !== "number" || !Number.isFinite(length4.value) || length4.value < 0 || typeof length4.unit !== "string")
@@ -9177,7 +9217,7 @@ function parse(raw, maximum, output3) {
9177
9217
  size += bytes.length + 1;
9178
9218
  if (size > maximum) {
9179
9219
  if (invalidUtf8) usage12("Arguments must be UTF-8.");
9180
- throw new OfficeError("resource-limit", "Argument limit exceeded.", "usage");
9220
+ throw new OfficeError16("resource-limit", "Argument limit exceeded.", "usage");
9181
9221
  }
9182
9222
  try {
9183
9223
  args.push(decoder.decode(bytes));
@@ -9829,7 +9869,7 @@ function parse(raw, maximum, output3) {
9829
9869
  try {
9830
9870
  parsed = admitFontMetrics(JSON.parse(value));
9831
9871
  } catch (error) {
9832
- if (error instanceof OfficeError) throw error;
9872
+ if (error instanceof OfficeError16) throw error;
9833
9873
  usage12("Metrics require a valid JSON metric object.");
9834
9874
  }
9835
9875
  } else if (["bold", "italic", "wrap"].includes(key)) {
@@ -10402,7 +10442,7 @@ function parse(raw, maximum, output3) {
10402
10442
  if (query.token !== void 0) {
10403
10443
  if (typeof query.token !== "string" || Object.keys(query).some((key) => !["kind", "token"].includes(key)) || query.kind !== void 0 && query.kind !== "slide")
10404
10444
  usage12("Invalid slide token query.");
10405
- decodeSelectionToken(query.token);
10445
+ decodeSelectionToken2(query.token);
10406
10446
  continue;
10407
10447
  }
10408
10448
  if (query.kind !== "slide" || query.scope !== void 0 && query.scope !== "slides" || query.all !== void 0 && typeof query.all !== "boolean")
@@ -10451,9 +10491,9 @@ function parse(raw, maximum, output3) {
10451
10491
  if (operation === "objects.list" || operation === "fonts.list")
10452
10492
  usage12("Part selection requires object extraction.");
10453
10493
  try {
10454
- result.part = partName(value, false);
10494
+ result.part = partName3(value, false);
10455
10495
  } catch {
10456
- throw new SelectionError("invalid-selection");
10496
+ throw new SelectionError8("invalid-selection");
10457
10497
  }
10458
10498
  } else if (argument === "--select") result.token = value;
10459
10499
  else if (argument === "--file") result.file = value;
@@ -10677,7 +10717,7 @@ function parse(raw, maximum, output3) {
10677
10717
  if (operation === "charts.add") {
10678
10718
  if (!result.slide || result.token || result.shape || result.all || result.allowEmpty)
10679
10719
  usage12("Chart addition requires one slide.");
10680
- if (!type || !chartTypes.includes(type) || !edit.data || result.placeholder === void 0 && [edit.left, edit.top, edit.width, edit.height].some((value) => value === void 0))
10720
+ if (!type || !chartTypes2.includes(type) || !edit.data || result.placeholder === void 0 && [edit.left, edit.top, edit.width, edit.height].some((value) => value === void 0))
10681
10721
  usage12("Chart addition requires type, data and geometry.");
10682
10722
  validateChartData(edit.data, type);
10683
10723
  } else if (!Object.keys(edit).length) usage12("Chart mutation requires an update.");
@@ -10769,7 +10809,7 @@ function parse(raw, maximum, output3) {
10769
10809
  if (result.token && ["--scope", "--slide", "--shape"].some((flag) => seen.has(flag))) usage12("Opaque and simple selectors cannot be combined.");
10770
10810
  if (result.shape !== void 0 && result.slide === void 0) usage12("Shape selection requires a slide.");
10771
10811
  if (mutation2) {
10772
- validateAnimationOptions(operation.slice(11), result.animationEdit ?? {});
10812
+ validateAnimationOptions2(operation.slice(11), result.animationEdit ?? {});
10773
10813
  if (operation !== "animations.add" && !result.token && result.slide === void 0 && !result.all) usage12("Animation mutation requires a selector or --all.");
10774
10814
  if (result.inPlace && result.input === "-") usage12("Stdin cannot be edited in place.");
10775
10815
  if (result.inPlace && result.output) usage12("Output and in-place cannot be combined.");
@@ -10878,7 +10918,7 @@ function parse(raw, maximum, output3) {
10878
10918
  });
10879
10919
  if (runs) validateTextRunOptions({ ...result.runEdit, ...result.all ? { all: true } : {} });
10880
10920
  if (formatting && !result.all && result.token === void 0 && result.slide === void 0 && result.shape === void 0 && result.paragraphEdit?.paragraph === void 0 && result.runEdit?.paragraph === void 0 && result.runEdit?.run === void 0)
10881
- throw new SelectionError("missing-selection");
10921
+ throw new SelectionError8("missing-selection");
10882
10922
  if (!formatting && (result.find === void 0 || result.with === void 0))
10883
10923
  usage12("Text replace requires find and with.");
10884
10924
  if (!formatting && [result.first === true, result.all === true, result.occurrence !== void 0].filter(
@@ -11555,7 +11595,7 @@ async function transferLocations(bytes, budget) {
11555
11595
  (edge) => relationshipNamespaces.some((namespace) => edge.type === `${namespace}/officeDocument`)
11556
11596
  );
11557
11597
  const root = roots.length === 1 ? roots[0].targetPart : void 0;
11558
- if (!root) throw new OfficeError("invalid-opc", "Presentation part is missing.", "index");
11598
+ if (!root) throw new OfficeError16("invalid-opc", "Presentation part is missing.", "index");
11559
11599
  const relationshipNamespace = roots[0].type.slice(0, -"/officeDocument".length);
11560
11600
  const xml = budget.xml(reader.get(root));
11561
11601
  const fingerprint = Array.from(sha2564(bytes), (byte) => byte.toString(16).padStart(2, "0")).join(
@@ -11574,7 +11614,7 @@ async function transferLocations(bytes, budget) {
11574
11614
  (edge) => edge.id === reference && edge.type === `${relationshipNamespace}/slide`
11575
11615
  )?.targetPart;
11576
11616
  if (!id || !owner || !reader.has(owner))
11577
- throw new OfficeError("invalid-opc", "Referenced slide is missing.", "index");
11617
+ throw new OfficeError16("invalid-opc", "Referenced slide is missing.", "index");
11578
11618
  return {
11579
11619
  fingerprint,
11580
11620
  scope: "slides",
@@ -11688,9 +11728,9 @@ async function execute(request, options2) {
11688
11728
  maxEntries: options2.context.archiveLimits.maxMembers
11689
11729
  };
11690
11730
  const bytes = await request.readInput(args.input, Math.min(options2.context.limits.maxBytes, options2.context.archiveLimits.maxArchiveBytes));
11691
- const reader = await readPackage(bytes, { ...options2.context, signal: request.signal });
11731
+ const reader = await readPackage3(bytes, { ...options2.context, signal: request.signal });
11692
11732
  const validation = validatePresentation(reader, limits);
11693
- if (!validation.valid) throw new OfficeError("invalid-opc", "Presentation semantic validation failed.", "index");
11733
+ if (!validation.valid) throw new OfficeError16("invalid-opc", "Presentation semantic validation failed.", "index");
11694
11734
  result = success(operation2, validation);
11695
11735
  human = "Presentation is semantically valid; XML schema validation not checked.\n";
11696
11736
  } else if (args.operation === "help") {
@@ -12024,7 +12064,7 @@ ${JSON.stringify(result.data, null, 2)}
12024
12064
  context
12025
12065
  );
12026
12066
  if (args.operation === "media.get" && inventory.occurrences.length !== 1)
12027
- throw new SelectionError(
12067
+ throw new SelectionError8(
12028
12068
  inventory.occurrences.length ? "ambiguous-selection" : "missing-selection",
12029
12069
  inventory.occurrences.map((item) => item.location)
12030
12070
  );
@@ -12052,7 +12092,7 @@ ${JSON.stringify(result.data, null, 2)}
12052
12092
  }
12053
12093
  if (items.length && !args.dryRun && !args.inPlace && !args.output) usage12("Mutation requires a destination.");
12054
12094
  const bytes = await request.readInput(args.input, Math.min(context.limits.maxBytes, context.archiveLimits.maxArchiveBytes));
12055
- const index = await readSelectionIndex(bytes, context);
12095
+ const index = await readSelectionIndex2(bytes, context);
12056
12096
  const changed = await mutateAnimationsBatch(bytes, resolveAnimationBatch(items, index), context);
12057
12097
  const dryRun = args.dryRun ?? false;
12058
12098
  const destination = args.inPlace ? args.input : args.output;
@@ -12081,12 +12121,12 @@ ${JSON.stringify(result.data, null, 2)}
12081
12121
  position: { coordinateSystem: "one-based", value: args.slide }
12082
12122
  };
12083
12123
  if (args.shape !== void 0) {
12084
- const index = await readSelectionIndex(bytes, context);
12124
+ const index = await readSelectionIndex2(bytes, context);
12085
12125
  try {
12086
12126
  const slide = index.select(selection)[0];
12087
12127
  selection = { kind: "object", scope: "slides", owner: slide.part, name: args.shape };
12088
12128
  } catch (error) {
12089
- if (!(args.allowEmpty && error instanceof SelectionError && error.code === "missing-selection")) throw error;
12129
+ if (!(args.allowEmpty && error instanceof SelectionError8 && error.code === "missing-selection")) throw error;
12090
12130
  }
12091
12131
  }
12092
12132
  if (args.all) selection = { ...selection ?? { kind: "slide", scope: "slides" }, all: true };
@@ -12111,7 +12151,7 @@ ${JSON.stringify(result.data, null, 2)}
12111
12151
  }
12112
12152
  } else {
12113
12153
  const records = await readAnimations(bytes, selection ? { selection } : {}, context);
12114
- if (args.operation === "animations.get" && records.length !== 1) throw new SelectionError(records.length ? "ambiguous-selection" : "missing-selection");
12154
+ if (args.operation === "animations.get" && records.length !== 1) throw new SelectionError8(records.length ? "ambiguous-selection" : "missing-selection");
12115
12155
  result = { ...success(operation2, { items: animationItems(records) }), locations: records.map((record3) => record3.location) };
12116
12156
  human = records.map((record3) => `Slide ${record3.slide}: ${record3.nodes.length} timing nodes, ${record3.targetShapeIds.length} targets
12117
12157
  `).join("") + "Timing metadata only; no animation or media execution.\n";
@@ -12127,11 +12167,11 @@ ${JSON.stringify(result.data, null, 2)}
12127
12167
  };
12128
12168
  const unfilteredList = args.operation === "transitions.list" && !args.token && args.slide === void 0;
12129
12169
  const records = await readTransitions(bytes, unfilteredList ? {} : { selection }, context).catch((error) => {
12130
- if (args.allowEmpty && !["transitions.list", "transitions.get"].includes(args.operation) && error instanceof SelectionError && error.code === "missing-selection") return [];
12170
+ if (args.allowEmpty && !["transitions.list", "transitions.get"].includes(args.operation) && error instanceof SelectionError8 && error.code === "missing-selection") return [];
12131
12171
  throw error;
12132
12172
  });
12133
12173
  if (["transitions.list", "transitions.get"].includes(args.operation)) {
12134
- if (args.operation === "transitions.get" && records.length !== 1) throw new SelectionError(records.length ? "ambiguous-selection" : "missing-selection");
12174
+ if (args.operation === "transitions.get" && records.length !== 1) throw new SelectionError8(records.length ? "ambiguous-selection" : "missing-selection");
12135
12175
  const items = records.filter((record3) => record3.kind !== null).map((record3) => ({
12136
12176
  location: record3.location,
12137
12177
  kind: record3.kind,
@@ -12234,7 +12274,7 @@ ${JSON.stringify(result.data, null, 2)}
12234
12274
  publication = equation.publication;
12235
12275
  } else if (["fields.set", "fields.add", "fields.remove"].includes(args.operation) || args.operation === "text.replace" || args.operation === "text.runs.set" || args.operation === "text.paragraphs.set" || args.operation === "text.frames.set" || args.operation === "text.fit") {
12236
12276
  const context = { ...options2.context, signal: request.signal };
12237
- const scope = args.token ? decodeSelectionToken(args.token).scope : args.scope;
12277
+ const scope = args.token ? decodeSelectionToken2(args.token).scope : args.scope;
12238
12278
  const bytes = await request.readInput(
12239
12279
  args.input,
12240
12280
  Math.min(context.limits.maxBytes, context.archiveLimits.maxArchiveBytes)
@@ -12612,7 +12652,7 @@ ${JSON.stringify(result.data, null, 2)}
12612
12652
  context
12613
12653
  );
12614
12654
  if (args.operation === "charts.get" && charts.length !== 1)
12615
- throw new SelectionError(
12655
+ throw new SelectionError8(
12616
12656
  charts.length ? "ambiguous-selection" : "missing-selection",
12617
12657
  charts.map((chart2) => chart2.location)
12618
12658
  );
@@ -12684,7 +12724,7 @@ ${item.parts.map((part) => ` ${part}
12684
12724
  ).join(""));
12685
12725
  } else if (args.operation === "fields.list" || args.operation === "fields.get" || args.operation === "text.get" || args.operation === "text.runs.get" || args.operation === "text.runs.list" || args.operation === "text.paragraphs.get" || args.operation === "text.paragraphs.list" || args.operation === "text.frames.get" || args.operation === "text.frames.list") {
12686
12726
  const context = { ...options2.context, signal: request.signal };
12687
- const scope = args.token ? decodeSelectionToken(args.token).scope : args.scope;
12727
+ const scope = args.token ? decodeSelectionToken2(args.token).scope : args.scope;
12688
12728
  const bytes = await request.readInput(
12689
12729
  args.input,
12690
12730
  Math.min(context.limits.maxBytes, context.archiveLimits.maxArchiveBytes)
@@ -12707,13 +12747,13 @@ ${item.parts.map((part) => ` ${part}
12707
12747
  )
12708
12748
  } : args.operation !== "text.get" ? { runs: await readTextRuns(bytes, { ...textOptions, ...args.runEdit }, context) } : await readPresentationText(bytes, textOptions, context);
12709
12749
  if (args.operation === "fields.get" && "fields" in data && data.fields.length !== 1)
12710
- throw new SelectionError(data.fields.length ? "ambiguous-selection" : "missing-selection");
12750
+ throw new SelectionError8(data.fields.length ? "ambiguous-selection" : "missing-selection");
12711
12751
  if (args.operation === "text.frames.get" && "frames" in data && data.frames.length !== 1)
12712
- throw new SelectionError(data.frames.length ? "ambiguous-selection" : "missing-selection");
12752
+ throw new SelectionError8(data.frames.length ? "ambiguous-selection" : "missing-selection");
12713
12753
  if (args.operation === "text.runs.get" && "runs" in data && data.runs.length !== 1)
12714
- throw new SelectionError(data.runs.length ? "ambiguous-selection" : "missing-selection");
12754
+ throw new SelectionError8(data.runs.length ? "ambiguous-selection" : "missing-selection");
12715
12755
  if (args.operation === "text.paragraphs.get" && "paragraphs" in data && data.paragraphs.length !== 1)
12716
- throw new SelectionError(
12756
+ throw new SelectionError8(
12717
12757
  data.paragraphs.length ? "ambiguous-selection" : "missing-selection"
12718
12758
  );
12719
12759
  result = {
@@ -12763,9 +12803,9 @@ ${item.parts.map((part) => ` ${part}
12763
12803
  ...args.cell === void 0 ? {} : { cell: args.cell }
12764
12804
  };
12765
12805
  if (args.operation.endsWith(".list") || args.operation.endsWith(".get")) {
12766
- const records = args.operation.startsWith("tables.") ? await readTables(bytes, tableSelection, context) : args.operation === "shapes.drawing.get" ? await readDrawing(bytes, selection, context) : args.operation.startsWith("connectors.") ? await readConnectors(bytes, selection, context) : args.operation.startsWith("shapes.paths.") ? await readShapePaths(bytes, selection, context) : await readShapes(bytes, selection, context);
12806
+ const records = args.operation.startsWith("tables.") ? await readTables(bytes, tableSelection, context) : args.operation === "shapes.drawing.get" ? await readDrawing(bytes, selection, context) : args.operation.startsWith("connectors.") ? await readConnectors(bytes, selection, context) : args.operation.startsWith("shapes.paths.") ? await readShapePaths(bytes, selection, context) : await readShapes2(bytes, selection, context);
12767
12807
  if (args.operation.endsWith(".get") && records.length !== 1)
12768
- throw new SelectionError(
12808
+ throw new SelectionError8(
12769
12809
  records.length ? "ambiguous-selection" : "missing-selection",
12770
12810
  records.map((x) => x.location)
12771
12811
  );
@@ -12827,7 +12867,7 @@ ${item.parts.map((part) => ` ${part}
12827
12867
  { ...selection, update: args.shapeEdit },
12828
12868
  context
12829
12869
  );
12830
- const after = await readSelectionIndex(mutation2.bytes, context);
12870
+ const after = await readSelectionIndex2(mutation2.bytes, context);
12831
12871
  const dryRun = args.dryRun ?? false;
12832
12872
  const destination = args.inPlace ? args.input : args.output;
12833
12873
  const removing = args.operation.endsWith(".remove") || args.connectorEdit?.detachPolicy === "remove";
@@ -12879,7 +12919,7 @@ ${item.parts.map((part) => ` ${part}
12879
12919
  args.input,
12880
12920
  Math.min(context.limits.maxBytes, context.archiveLimits.maxArchiveBytes)
12881
12921
  );
12882
- const index = await readSelectionIndex(bytes, context);
12922
+ const index = await readSelectionIndex2(bytes, context);
12883
12923
  const editingTheme = args.operation.startsWith("themes.");
12884
12924
  const editingBackground = args.operation.startsWith("backgrounds.");
12885
12925
  const themeRecords = editingTheme ? await readThemes(bytes, context) : [];
@@ -12903,10 +12943,10 @@ ${item.parts.map((part) => ` ${part}
12903
12943
  if (selectedRecords.some(
12904
12944
  (record3) => editingTheme ? !themeRecords.some((theme) => theme.part === record3.part) : scope !== "shared" && record3.scope !== scope
12905
12945
  ))
12906
- throw new SelectionError("invalid-selection");
12946
+ throw new SelectionError8("invalid-selection");
12907
12947
  if (selectedRecords.some((record3) => record3.kind === "object")) {
12908
12948
  if (!["masters.set", "layouts.set", "shapes.set"].includes(args.operation) || selectedRecords.length !== 1)
12909
- throw new SelectionError("invalid-selection");
12949
+ throw new SelectionError8("invalid-selection");
12910
12950
  selectedShape = selectedRecords[0].id;
12911
12951
  }
12912
12952
  targets = targets.filter(
@@ -12918,9 +12958,9 @@ ${item.parts.map((part) => ` ${part}
12918
12958
  const adding = addingMaster || addingLayout;
12919
12959
  const removingLayout = args.operation === "layouts.remove";
12920
12960
  if (!adding && !targets.length && !args.allowEmpty && !args.operation.endsWith(".list"))
12921
- throw new SelectionError("missing-selection");
12961
+ throw new SelectionError8("missing-selection");
12922
12962
  if (!adding && targets.length > 1 && !args.all && !args.operation.endsWith(".list"))
12923
- throw new SelectionError(
12963
+ throw new SelectionError8(
12924
12964
  "ambiguous-selection",
12925
12965
  targets.map((record3) => record3.location)
12926
12966
  );
@@ -12945,9 +12985,9 @@ ${item.parts.map((part) => ` ${part}
12945
12985
  targets = index.objects.filter(
12946
12986
  (record3) => targets.some((target) => target.part === record3.part) && (args.token ? record3.id === selectedShape : record3.name === selectedShape)
12947
12987
  );
12948
- if (!targets.length && !args.allowEmpty) throw new SelectionError("missing-selection");
12988
+ if (!targets.length && !args.allowEmpty) throw new SelectionError8("missing-selection");
12949
12989
  if (targets.length > 1 && !args.all)
12950
- throw new SelectionError(
12990
+ throw new SelectionError8(
12951
12991
  "ambiguous-selection",
12952
12992
  targets.map((record3) => record3.location)
12953
12993
  );
@@ -13056,7 +13096,7 @@ ${item.parts.map((part) => ` ${part}
13056
13096
  parts.push(applyingLayout ? target.part : mutation2.part);
13057
13097
  for (const position of mutation2.affectedSlides) affectedSlides.add(position);
13058
13098
  }
13059
- const after = await readSelectionIndex(changed, context);
13099
+ const after = await readSelectionIndex2(changed, context);
13060
13100
  const changedRecords = removingLayout ? [...targets] : [];
13061
13101
  if (args.operation === "shapes.add")
13062
13102
  changedRecords.push(
@@ -13130,7 +13170,7 @@ ${item.parts.map((part) => ` ${part}
13130
13170
  args.input,
13131
13171
  Math.min(context.limits.maxBytes, context.archiveLimits.maxArchiveBytes)
13132
13172
  );
13133
- const index = await readSelectionIndex(bytes, context);
13173
+ const index = await readSelectionIndex2(bytes, context);
13134
13174
  const records = index.parts.filter((record3) => record3.scope === "presentation");
13135
13175
  if (args.operation !== "settings.set") {
13136
13176
  const settings = await readPresentationSettings(bytes, context);
@@ -13144,7 +13184,7 @@ ${item.parts.map((part) => ` ${part}
13144
13184
  );
13145
13185
  } else {
13146
13186
  const changed = await mutatePresentationSettings(bytes, args.settings, context);
13147
- const after = await readSelectionIndex(changed, context);
13187
+ const after = await readSelectionIndex2(changed, context);
13148
13188
  const targets = after.parts.filter((record3) => record3.scope === "presentation");
13149
13189
  const affected = after.fingerprint === index.fingerprint ? 0 : 1;
13150
13190
  const dryRun = args.dryRun ?? false;
@@ -13191,7 +13231,7 @@ ${item.parts.map((part) => ` ${part}
13191
13231
  args.input,
13192
13232
  Math.min(context.limits.maxBytes, context.archiveLimits.maxArchiveBytes)
13193
13233
  );
13194
- const index = await readSelectionIndex(bytes, context);
13234
+ const index = await readSelectionIndex2(bytes, context);
13195
13235
  const owner = index.parts.find((part) => part.scope === "presentation").part;
13196
13236
  const before = await readMemberships(bytes, kind, context);
13197
13237
  const located = (record3, fingerprint) => {
@@ -13206,16 +13246,16 @@ ${item.parts.map((part) => ` ${part}
13206
13246
  };
13207
13247
  let targets = args.slide === void 0 ? [...before] : before.filter((record3) => record3.slides.includes(args.slide));
13208
13248
  if (args.token) {
13209
- const location3 = decodeSelectionToken(args.token);
13210
- if (location3.fingerprint !== index.fingerprint) throw new SelectionError("stale-selection");
13249
+ const location3 = decodeSelectionToken2(args.token);
13250
+ if (location3.fingerprint !== index.fingerprint) throw new SelectionError8("stale-selection");
13211
13251
  if (location3.scope !== "presentation" || location3.owner !== owner || !location3.objectId.startsWith(`${kind}:`))
13212
- throw new SelectionError("invalid-selection");
13252
+ throw new SelectionError8("invalid-selection");
13213
13253
  targets = before.filter((record3) => `${kind}:${record3.id}` === location3.objectId);
13214
13254
  }
13215
13255
  if (action !== "add" && action !== "list") {
13216
13256
  if (!targets.length && !(args.allowEmpty && action !== "get"))
13217
- throw new SelectionError("missing-selection");
13218
- if (targets.length > 1 && !args.all) throw new SelectionError("ambiguous-selection");
13257
+ throw new SelectionError8("missing-selection");
13258
+ if (targets.length > 1 && !args.all) throw new SelectionError8("ambiguous-selection");
13219
13259
  }
13220
13260
  if (action === "list" || action === "get") {
13221
13261
  const records = targets.map((record3) => located(record3, index.fingerprint));
@@ -13239,7 +13279,7 @@ ${item.parts.map((part) => ` ${part}
13239
13279
  context
13240
13280
  );
13241
13281
  const after = await readMemberships(changed, kind, context);
13242
- const afterIndex = await readSelectionIndex(changed, context);
13282
+ const afterIndex = await readSelectionIndex2(changed, context);
13243
13283
  const affected = action === "add" ? after.filter((record3) => !before.some((previous) => previous.id === record3.id)) : action === "remove" ? targets : targets.map((target) => after.find((record3) => record3.id === target.id));
13244
13284
  const records = affected.map(
13245
13285
  (record3) => located(record3, action === "remove" ? index.fingerprint : afterIndex.fingerprint)
@@ -13285,13 +13325,13 @@ ${item.parts.map((part) => ` ${part}
13285
13325
  const inputs = [];
13286
13326
  for (const path of [args.input, ...args.sources ?? []]) {
13287
13327
  if (remaining < 1)
13288
- throw new OfficeError("resource-limit", "Combined input limit exceeded.", "admit");
13328
+ throw new OfficeError16("resource-limit", "Combined input limit exceeded.", "admit");
13289
13329
  const bytes = await request.readInput(
13290
13330
  path,
13291
13331
  Math.min(remaining, context.archiveLimits.maxArchiveBytes)
13292
13332
  );
13293
13333
  if (bytes.length > remaining || bytes.length > context.archiveLimits.maxArchiveBytes)
13294
- throw new OfficeError("resource-limit", "Combined input limit exceeded.", "admit");
13334
+ throw new OfficeError16("resource-limit", "Combined input limit exceeded.", "admit");
13295
13335
  remaining -= bytes.length;
13296
13336
  inputs.push(await budget.read(bytes));
13297
13337
  }
@@ -13392,14 +13432,14 @@ ${JSON.stringify(result.data, null, 2)}
13392
13432
  }
13393
13433
  } else if (args.operation === "create") {
13394
13434
  if (args.template)
13395
- throw new OfficeError(
13435
+ throw new OfficeError16(
13396
13436
  "unsupported-profile",
13397
13437
  "Template-based creation is unavailable.",
13398
13438
  "validate-intent"
13399
13439
  );
13400
13440
  const context = { ...options2.context, signal: request.signal };
13401
13441
  const bytes = await createPresentation(args.creation ?? {}, context);
13402
- const index = await readSelectionIndex(bytes, context);
13442
+ const index = await readSelectionIndex2(bytes, context);
13403
13443
  const dryRun = args.dryRun ?? false;
13404
13444
  const location3 = {
13405
13445
  fingerprint: index.fingerprint,
@@ -13435,7 +13475,7 @@ ${JSON.stringify(result.data, null, 2)}
13435
13475
  };
13436
13476
  }
13437
13477
  } else {
13438
- if (args.token) decodeSelectionToken(args.token);
13478
+ if (args.token) decodeSelectionToken2(args.token);
13439
13479
  let bytes;
13440
13480
  try {
13441
13481
  bytes = await request.readInput(
@@ -13444,10 +13484,10 @@ ${JSON.stringify(result.data, null, 2)}
13444
13484
  );
13445
13485
  } catch (error) {
13446
13486
  if (error && typeof error === "object" && "code" in error && error.code === "resource-limit")
13447
- throw new OfficeError("resource-limit", "Input limit exceeded.", "admit");
13487
+ throw new OfficeError16("resource-limit", "Input limit exceeded.", "admit");
13448
13488
  throw error;
13449
13489
  }
13450
- const index = await readSelectionIndex(bytes, { ...options2.context, signal: request.signal });
13490
+ const index = await readSelectionIndex2(bytes, { ...options2.context, signal: request.signal });
13451
13491
  const metadata2 = args.operation === "xml.get" && args.scope === "shared" && args.part && (args.part === "/[Content_Types].xml" || args.part === packageUri("/").relsUri || index.parts.some((record3) => packageUri(record3.part).relsUri === args.part)) ? args.part : void 0;
13452
13492
  const mutationSelection = args.selection ?? (args.token ? { token: args.token } : {
13453
13493
  kind: "slide",
@@ -13458,7 +13498,7 @@ ${JSON.stringify(result.data, null, 2)}
13458
13498
  if (args.operation === "slides.add") {
13459
13499
  const context = { ...options2.context, signal: request.signal };
13460
13500
  const changed = await addSlide(bytes, args.addition, context);
13461
- const after = await readSelectionIndex(changed, context);
13501
+ const after = await readSelectionIndex2(changed, context);
13462
13502
  const slide = after.slides[(args.addition?.position ?? after.slides.length) - 1];
13463
13503
  const dryRun = args.dryRun ?? false;
13464
13504
  const destination = args.inPlace ? args.input : args.output;
@@ -13531,12 +13571,12 @@ ${JSON.stringify(result.data, null, 2)}
13531
13571
  },
13532
13572
  context
13533
13573
  );
13534
- const after = await readSelectionIndex(changed, context);
13574
+ const after = await readSelectionIndex2(changed, context);
13535
13575
  const beforeTargets = (args.operation === "slides.import" ? [] : Array.isArray(mutationSelection) ? mutationSelection : [mutationSelection]).flatMap((query) => {
13536
13576
  try {
13537
13577
  return index.select(query);
13538
13578
  } catch (error) {
13539
- if (args.allowEmpty && error instanceof SelectionError && error.code === "missing-selection")
13579
+ if (args.allowEmpty && error instanceof SelectionError8 && error.code === "missing-selection")
13540
13580
  return [];
13541
13581
  throw error;
13542
13582
  }
@@ -13585,11 +13625,11 @@ ${JSON.stringify(result.data, null, 2)}
13585
13625
  }
13586
13626
  } else if (args.operation === "xml.get" || args.operation === "xml.set") {
13587
13627
  if (!metadata2 && (records.length !== 1 || records[0].kind === "object"))
13588
- throw new SelectionError("invalid-selection");
13628
+ throw new SelectionError8("invalid-selection");
13589
13629
  const part = metadata2 ?? records[0].part;
13590
13630
  const validationLimits = options2.context.validationLimits;
13591
13631
  if (!validationLimits)
13592
- throw new OfficeError(
13632
+ throw new OfficeError16(
13593
13633
  "invalid-value",
13594
13634
  "XML operations require explicit validation limits.",
13595
13635
  "usage"
@@ -13664,7 +13704,7 @@ ${xml.xml}
13664
13704
  } catch (error) {
13665
13705
  if (request.signal.aborted)
13666
13706
  return { exitCode: 130, stdout: new Uint8Array(), stderr: new Uint8Array() };
13667
- const office = error instanceof OfficeError ? error : void 0;
13707
+ const office = error instanceof OfficeError16 ? error : void 0;
13668
13708
  const capabilityCode = error && typeof error === "object" && "code" in error ? error.code : void 0;
13669
13709
  const limit = office?.code === "resource-limit" || capabilityCode === "resource-limit";
13670
13710
  const unsupported = capabilityCode === "publication-unsupported";
@@ -13674,7 +13714,7 @@ ${xml.xml}
13674
13714
  message: limit ? "Input or argument limit exceeded." : unsupported ? "Output publication capability is unavailable." : office?.message ?? "Input could not be read.",
13675
13715
  context: {
13676
13716
  phase: office?.phase ?? (unsupported ? "publish" : "admit"),
13677
- ...error instanceof SelectionError ? { candidates: error.candidates } : {}
13717
+ ...error instanceof SelectionError8 ? { candidates: error.candidates } : {}
13678
13718
  }
13679
13719
  };
13680
13720
  result = {
@@ -13765,7 +13805,7 @@ ${JSON.stringify(failure.data)}
13765
13805
  } catch (error) {
13766
13806
  if (request.signal.aborted)
13767
13807
  return { exitCode: 130, stdout: new Uint8Array(), stderr: new Uint8Array() };
13768
- const office = error instanceof OfficeError ? error : void 0;
13808
+ const office = error instanceof OfficeError16 ? error : void 0;
13769
13809
  const rawCode = error && typeof error === "object" && "code" in error ? error.code : void 0;
13770
13810
  const code = typeof rawCode === "string" && [
13771
13811
  "resource-limit",