@poe-platform/safe-bash 0.1.814 → 0.1.816

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 (602) hide show
  1. package/dist/image-ast/index.js +1 -1
  2. package/dist/mp4-ast/codecs.d.ts +3 -0
  3. package/dist/mp4-ast/esds-source.d.ts +7 -0
  4. package/dist/mp4-ast/index.d.ts +6 -1
  5. package/dist/mp4-ast/mp4-codec-metadata.d.ts +48 -0
  6. package/dist/mp4-ast/mp4-codec-source.d.ts +8 -0
  7. package/dist/mp4-ast/mp4-fragment-source.d.ts +35 -0
  8. package/dist/mp4-ast/mp4-packets-source.d.ts +11 -0
  9. package/dist/mp4-ast/mp4-sample-source.d.ts +5 -2
  10. package/dist/mp4-ast/types.d.ts +11 -0
  11. package/dist/pdf-ast/ast.d.ts +6 -0
  12. package/dist/pdf-ast/content/evaluator.d.ts +4 -1
  13. package/dist/pdf-ast/content/stored-dictionary.d.ts +15 -1
  14. package/dist/pdf-ast/content/stored-record.d.ts +6 -0
  15. package/dist/pdf-ast/cos/object-reader.d.ts +3 -2
  16. package/dist/pdf-ast/cos/retained-writer.d.ts +1 -0
  17. package/dist/pdf-ast/cos/value-parser.d.ts +5 -0
  18. package/dist/pdf-ast/edit/forms.d.ts +1 -0
  19. package/dist/pdf-ast/edit/retained-form-data.d.ts +9 -0
  20. package/dist/pdf-ast/edit/retained-graph.d.ts +1 -0
  21. package/dist/pdf-ast/edit/retained-page-copy.d.ts +10 -0
  22. package/dist/pdf-ast/extract/images.d.ts +2 -1
  23. package/dist/pdf-ast/fonts/resolve.d.ts +1 -0
  24. package/dist/pdf-ast/index.d.ts +3 -0
  25. package/dist/pdf-ast/index.js +1563 -373
  26. package/dist/pdf-ast/render/raster.d.ts +14 -0
  27. package/dist/pdf-ast/render/svg-image-stream.d.ts +6 -0
  28. package/dist/pdf-ast/render/svg-path-stream.d.ts +15 -0
  29. package/dist/pdf-ast/retained-document.d.ts +1 -1
  30. package/dist/safe-bash/chunks/{chunk-I6ECNJMR.js → chunk-AXGI5JVL.js} +1 -1
  31. package/dist/safe-bash/chunks/{chunk-TPG55BAQ.js → chunk-FQRI5AS5.js} +1 -1
  32. package/dist/safe-bash/chunks/{chunk-TWWGAW4M.js → chunk-HD6DWOAC.js} +1 -1
  33. package/dist/safe-bash/chunks/{chunk-5JCZEXEM.js → chunk-SXSEF5E2.js} +12 -7
  34. package/dist/safe-bash/command-chunks/biff-UBP2BZLK-JPODPKS3.js +5448 -0
  35. package/dist/safe-bash/command-chunks/{chunk-S7HIOT7Z.js → chunk-26JE5JEB.js} +4 -4
  36. package/dist/safe-bash/command-chunks/{chunk-AG2SNMP5.js → chunk-2ALHVXEM.js} +2 -2
  37. package/dist/safe-bash/command-chunks/{chunk-4YLACJHE.js → chunk-2IMIKROX.js} +6 -6
  38. package/dist/safe-bash/command-chunks/{chunk-MYZ46FQL.js → chunk-2QZUAZTH.js} +1 -1
  39. package/dist/safe-bash/command-chunks/{chunk-YAD7EV4N.js → chunk-2TWXRJPB.js} +11 -11
  40. package/dist/safe-bash/command-chunks/{chunk-NYFYTL5G.js → chunk-345YBIHP.js} +27 -27
  41. package/dist/safe-bash/command-chunks/{chunk-3MG5EAMX.js → chunk-35DU6I2M.js} +5 -5
  42. package/dist/safe-bash/command-chunks/{chunk-FSVJ67G5.js → chunk-3DWFXESW.js} +2 -2
  43. package/dist/safe-bash/command-chunks/{chunk-TKCUGMRZ.js → chunk-3K5CVXUV.js} +18 -18
  44. package/dist/safe-bash/command-chunks/{chunk-6LPSKLLD.js → chunk-3MUFXGA2.js} +3 -3
  45. package/dist/safe-bash/command-chunks/{chunk-AVGXFWEB.js → chunk-3PM46VWH.js} +191 -70
  46. package/dist/safe-bash/command-chunks/{chunk-6QYSF7I2.js → chunk-3ZWFE4CK.js} +7 -7
  47. package/dist/safe-bash/command-chunks/{chunk-LAPOMHGY.js → chunk-45DKGZYO.js} +857 -424
  48. package/dist/safe-bash/command-chunks/{chunk-SW37YCBW.js → chunk-4772DJKS.js} +54 -36
  49. package/dist/safe-bash/command-chunks/{chunk-FOONI6BD.js → chunk-4ABR3KGK.js} +7 -7
  50. package/dist/safe-bash/command-chunks/{chunk-7KZ5LWV2.js → chunk-4IDV763L.js} +1 -1
  51. package/dist/safe-bash/command-chunks/{chunk-FGGHYUWR.js → chunk-4QEJPP3K.js} +102 -7
  52. package/dist/safe-bash/command-chunks/{chunk-RV5AGXOV.js → chunk-4X2MPZXW.js} +2 -2
  53. package/dist/safe-bash/command-chunks/{chunk-LNTEV56A.js → chunk-4YFTJS5U.js} +2 -2
  54. package/dist/safe-bash/command-chunks/{chunk-6XES7Z4G.js → chunk-57PK2QFX.js} +12 -12
  55. package/dist/safe-bash/command-chunks/{chunk-42MEXZBJ.js → chunk-5GDF5FAS.js} +1 -1
  56. package/dist/safe-bash/command-chunks/{chunk-BS3ZEQGT.js → chunk-5KZMR6AJ.js} +18 -16
  57. package/dist/safe-bash/command-chunks/{chunk-ZU2KJMXO.js → chunk-5MNQTHED.js} +10 -10
  58. package/dist/safe-bash/command-chunks/{chunk-W25EIKDJ.js → chunk-5NC2IQMQ.js} +1 -1
  59. package/dist/safe-bash/command-chunks/{chunk-KY4LCHUF.js → chunk-5O45KGW5.js} +1 -1
  60. package/dist/safe-bash/command-chunks/{chunk-GYM5ICK4.js → chunk-5V7WIQ2D.js} +7 -7
  61. package/dist/safe-bash/command-chunks/{chunk-3JM7E42I.js → chunk-5XUWGUGN.js} +114 -35
  62. package/dist/safe-bash/command-chunks/{chunk-SUTHGUD3.js → chunk-5YL453ZF.js} +34 -34
  63. package/dist/safe-bash/command-chunks/{chunk-IHXZMAMY.js → chunk-62RG3GHF.js} +6 -6
  64. package/dist/safe-bash/command-chunks/{chunk-P2LT6TGR.js → chunk-6EZWG56T.js} +9 -9
  65. package/dist/safe-bash/command-chunks/{chunk-CCMAHM3I.js → chunk-6JGICYHP.js} +2 -2
  66. package/dist/safe-bash/command-chunks/{chunk-AWPI4DZR.js → chunk-6KJDTKE4.js} +3 -3
  67. package/dist/safe-bash/command-chunks/{chunk-FUQMEUAT.js → chunk-6M3JTPKE.js} +8 -8
  68. package/dist/safe-bash/command-chunks/{chunk-H33D4R26.js → chunk-6RLWPB44.js} +4 -4
  69. package/dist/safe-bash/command-chunks/{chunk-3GRMU7TM.js → chunk-6W4RMBFH.js} +6 -6
  70. package/dist/safe-bash/command-chunks/{chunk-RIVKF77R.js → chunk-6YF2QADH.js} +6 -6
  71. package/dist/safe-bash/command-chunks/{chunk-LEO4VRIN.js → chunk-77ROD2TR.js} +5 -5
  72. package/dist/safe-bash/command-chunks/{chunk-XNGM3W5R.js → chunk-7B2MHKIW.js} +1 -1
  73. package/dist/safe-bash/command-chunks/{chunk-RFMHNTTF.js → chunk-7OCTMVYJ.js} +1 -1
  74. package/dist/safe-bash/command-chunks/{chunk-DBLQUZGN.js → chunk-7PYDVQPB.js} +2 -2
  75. package/dist/safe-bash/command-chunks/{chunk-AM5LANIE.js → chunk-A2L3U7DW.js} +7 -7
  76. package/dist/safe-bash/command-chunks/{chunk-UYGQEQIP.js → chunk-A4P37F3P.js} +5 -5
  77. package/dist/safe-bash/command-chunks/{chunk-ADHFF2IM.js → chunk-A5SPMSKD.js} +9 -9
  78. package/dist/safe-bash/command-chunks/{chunk-ENEIE44W.js → chunk-A6OTPNNI.js} +3 -3
  79. package/dist/safe-bash/command-chunks/chunk-AF2IO57Q.js +733 -0
  80. package/dist/safe-bash/command-chunks/{chunk-AFPXADZG.js → chunk-AHD3CGAY.js} +4 -4
  81. package/dist/safe-bash/command-chunks/{chunk-VT7UBPAE.js → chunk-ALD53QFL.js} +89 -30
  82. package/dist/safe-bash/command-chunks/{chunk-4B2ZUGLT.js → chunk-ARE267HR.js} +5 -5
  83. package/dist/safe-bash/command-chunks/{chunk-OTF2AJ5M.js → chunk-AYQPJQJR.js} +6 -6
  84. package/dist/safe-bash/command-chunks/{chunk-2VVJRVYM.js → chunk-B6XTAKKQ.js} +1 -1
  85. package/dist/safe-bash/command-chunks/{chunk-GCHB7VNX.js → chunk-BIJW6QWB.js} +17 -17
  86. package/dist/safe-bash/command-chunks/{chunk-OVEPYULA.js → chunk-BKK4MS3V.js} +1 -1
  87. package/dist/safe-bash/command-chunks/{chunk-3EB2FSAN.js → chunk-BOVDUJ3A.js} +7 -7
  88. package/dist/safe-bash/command-chunks/{chunk-SEPUP6TZ.js → chunk-BSTABZIK.js} +1 -1
  89. package/dist/safe-bash/command-chunks/{chunk-ATHHWPSE.js → chunk-BZRWZ6GO.js} +1 -1
  90. package/dist/safe-bash/command-chunks/{chunk-5BIQWWLB.js → chunk-CFMJXJS5.js} +1 -1
  91. package/dist/safe-bash/command-chunks/{chunk-BZMNC7Q5.js → chunk-CGJ7GMHO.js} +7 -7
  92. package/dist/safe-bash/command-chunks/{chunk-RGDOYWOD.js → chunk-CHZE6FNT.js} +2 -2
  93. package/dist/safe-bash/command-chunks/{chunk-V7E3PZOK.js → chunk-CKA7ZROU.js} +7 -7
  94. package/dist/safe-bash/command-chunks/{chunk-MEM2ZPMI.js → chunk-CKIXC7AO.js} +3 -3
  95. package/dist/safe-bash/command-chunks/{chunk-Y54L4P4J.js → chunk-CORUUCS2.js} +5 -5
  96. package/dist/safe-bash/command-chunks/{chunk-FF7UGJWS.js → chunk-DBZCTL7C.js} +150 -35
  97. package/dist/safe-bash/command-chunks/{chunk-6ZGCKUAM.js → chunk-DIRK47GT.js} +1 -1
  98. package/dist/safe-bash/command-chunks/{chunk-WYZG3DRR.js → chunk-DM5WURQL.js} +2 -2
  99. package/dist/safe-bash/command-chunks/{chunk-EBHOZIBS.js → chunk-DOVWHVHI.js} +6 -6
  100. package/dist/safe-bash/command-chunks/{chunk-GQGMQMIM.js → chunk-DXOXUKQB.js} +248 -6
  101. package/dist/safe-bash/command-chunks/{chunk-JR3Q6QNL.js → chunk-DZOKH5BL.js} +7 -7
  102. package/dist/safe-bash/command-chunks/{chunk-K4XNUJVJ.js → chunk-E22EAYJN.js} +197 -171
  103. package/dist/safe-bash/command-chunks/{chunk-3EASXF5D.js → chunk-E4TF5W6O.js} +2 -2
  104. package/dist/safe-bash/command-chunks/{chunk-MLOYUXUV.js → chunk-EJ4UP7DA.js} +31 -9
  105. package/dist/safe-bash/command-chunks/{chunk-USGZN2KE.js → chunk-ENMJHB2C.js} +5 -5
  106. package/dist/safe-bash/command-chunks/{chunk-ZSQZHFWS.js → chunk-ERWIJYCS.js} +7 -7
  107. package/dist/safe-bash/command-chunks/{chunk-S2QNBAN6.js → chunk-ET6LMDEX.js} +12 -12
  108. package/dist/safe-bash/command-chunks/{chunk-6XGDWFNQ.js → chunk-EWC56JNI.js} +5 -5
  109. package/dist/safe-bash/command-chunks/{chunk-EQWFKNHJ.js → chunk-EZDWPTYB.js} +19 -19
  110. package/dist/safe-bash/command-chunks/{chunk-CQBACD2V.js → chunk-F2NF6FHV.js} +2 -2
  111. package/dist/safe-bash/command-chunks/{chunk-NFII726L.js → chunk-FAU2KL6I.js} +2 -2
  112. package/dist/safe-bash/command-chunks/{chunk-4EHY6J2Z.js → chunk-FB2WPI3M.js} +5 -5
  113. package/dist/safe-bash/command-chunks/{chunk-2PKBXGXD.js → chunk-FEBTT5NH.js} +5 -5
  114. package/dist/safe-bash/command-chunks/chunk-FGARVKAX.js +704 -0
  115. package/dist/safe-bash/command-chunks/{chunk-N4MUBJCT.js → chunk-FGHSE3RZ.js} +1 -1
  116. package/dist/safe-bash/command-chunks/{chunk-WBKB7HBZ.js → chunk-FHQOFEQK.js} +8 -8
  117. package/dist/safe-bash/command-chunks/{chunk-3ZRCL756.js → chunk-FJLSYX5P.js} +7 -7
  118. package/dist/safe-bash/command-chunks/{chunk-PMWW7KSB.js → chunk-FJSD43VF.js} +1 -1
  119. package/dist/safe-bash/command-chunks/{chunk-XKAUKLF7.js → chunk-FLSXHLJG.js} +9 -9
  120. package/dist/safe-bash/command-chunks/{chunk-3EW7GYHM.js → chunk-FR63MJSO.js} +7 -7
  121. package/dist/safe-bash/command-chunks/{chunk-NRFTYZ2R.js → chunk-FUYZUETI.js} +6 -6
  122. package/dist/safe-bash/command-chunks/{chunk-JUHOL5KB.js → chunk-G3FK5VVG.js} +1 -1
  123. package/dist/safe-bash/command-chunks/{chunk-4UPKVQWH.js → chunk-G3LUT475.js} +6 -6
  124. package/dist/safe-bash/command-chunks/{chunk-Q7UZTMF4.js → chunk-GAROGIVU.js} +1 -1
  125. package/dist/safe-bash/command-chunks/{chunk-4RRYWHED.js → chunk-GMBUOYTN.js} +4 -4
  126. package/dist/safe-bash/command-chunks/{chunk-FYYFV6PW.js → chunk-GR4ONCQ5.js} +6 -6
  127. package/dist/safe-bash/command-chunks/{chunk-XTEIT5CI.js → chunk-GTOMW4VV.js} +1 -1
  128. package/dist/safe-bash/command-chunks/{chunk-OVQP6KH5.js → chunk-H56BSMFQ.js} +6 -6
  129. package/dist/safe-bash/command-chunks/{chunk-RQYPFLZJ.js → chunk-HOJ7WDTS.js} +6 -6
  130. package/dist/safe-bash/command-chunks/{chunk-BLIFGBIO.js → chunk-HOKPYTHQ.js} +2 -2
  131. package/dist/safe-bash/command-chunks/chunk-HQEYSSZV.js +152 -0
  132. package/dist/safe-bash/command-chunks/{chunk-NEMUPUUB.js → chunk-ICJH6A73.js} +7 -7
  133. package/dist/safe-bash/command-chunks/{chunk-CSE4VQKG.js → chunk-IJE65P52.js} +3 -3
  134. package/dist/safe-bash/command-chunks/{chunk-MKOIPOXX.js → chunk-IOXMGD2H.js} +3 -3
  135. package/dist/safe-bash/command-chunks/{chunk-LDW3RF7Y.js → chunk-ISFGPCED.js} +12 -12
  136. package/dist/safe-bash/command-chunks/{chunk-S43QRKDC.js → chunk-IVKAFEPO.js} +7 -7
  137. package/dist/safe-bash/command-chunks/{chunk-A347DLRB.js → chunk-IWVANZWH.js} +3 -3
  138. package/dist/safe-bash/command-chunks/{chunk-ZXELXF2H.js → chunk-IZ3SD5S2.js} +4 -4
  139. package/dist/safe-bash/command-chunks/{chunk-HGIMFVI2.js → chunk-J6FNSVHT.js} +5 -5
  140. package/dist/safe-bash/command-chunks/{chunk-GLAF45M7.js → chunk-JA36YOZI.js} +1 -1
  141. package/dist/safe-bash/command-chunks/{chunk-WHNYT34N.js → chunk-K2R7H3KO.js} +1 -1
  142. package/dist/safe-bash/command-chunks/{chunk-2ETEJOYX.js → chunk-K7VDCBXW.js} +21 -21
  143. package/dist/safe-bash/command-chunks/{chunk-CK2WFJZN.js → chunk-KASXIRKD.js} +12 -14
  144. package/dist/safe-bash/command-chunks/{chunk-CKEMZUE3.js → chunk-KDBU5Q2N.js} +6 -6
  145. package/dist/safe-bash/command-chunks/{chunk-6VBDJC6V.js → chunk-KDDXLHN7.js} +6 -6
  146. package/dist/safe-bash/command-chunks/chunk-KHUT7BB5.js +65 -0
  147. package/dist/safe-bash/command-chunks/{chunk-NEVQWOU6.js → chunk-KLAC2MIZ.js} +10 -10
  148. package/dist/safe-bash/command-chunks/{chunk-QGD64UHJ.js → chunk-KLCHCSIV.js} +1 -1
  149. package/dist/safe-bash/command-chunks/{chunk-CXME4YHU.js → chunk-KM2SMMXZ.js} +59 -201
  150. package/dist/safe-bash/command-chunks/{chunk-RHU44OMN.js → chunk-KXM3HTAF.js} +1 -1
  151. package/dist/safe-bash/command-chunks/{chunk-AVOGFREX.js → chunk-KYIGYYEY.js} +3 -3
  152. package/dist/safe-bash/command-chunks/{chunk-5OM3UIK3.js → chunk-L2VLASZ4.js} +3 -3
  153. package/dist/safe-bash/command-chunks/{chunk-Z7QOSXQC.js → chunk-LECGQSQW.js} +7 -7
  154. package/dist/safe-bash/command-chunks/{chunk-RXQ2G2YK.js → chunk-LFSWLJPR.js} +9 -9
  155. package/dist/safe-bash/command-chunks/{chunk-OSYY6E23.js → chunk-LJ3UYESS.js} +1 -1
  156. package/dist/safe-bash/command-chunks/{chunk-MVLVIMJ6.js → chunk-LMLBQSAM.js} +6 -6
  157. package/dist/safe-bash/command-chunks/{chunk-MGMTRGKM.js → chunk-LNAZ3E4Q.js} +4 -4
  158. package/dist/safe-bash/command-chunks/{chunk-WJ2ERUCQ.js → chunk-LNKZVU5V.js} +1 -1
  159. package/dist/safe-bash/command-chunks/{chunk-WWHMI4S3.js → chunk-LQDANF2B.js} +8 -8
  160. package/dist/safe-bash/command-chunks/{chunk-CIRDVCAZ.js → chunk-LQX7RAF7.js} +7 -7
  161. package/dist/safe-bash/command-chunks/{chunk-SWAKALDJ.js → chunk-LT2YCGC5.js} +10 -10
  162. package/dist/safe-bash/command-chunks/{chunk-Y7AXMCFV.js → chunk-LZY46GYY.js} +8 -8
  163. package/dist/safe-bash/command-chunks/{chunk-VT2PHQ63.js → chunk-MDFNUNK5.js} +15 -15
  164. package/dist/safe-bash/command-chunks/{chunk-YP3WWV5N.js → chunk-MN3BB4WW.js} +4 -4
  165. package/dist/safe-bash/command-chunks/{chunk-WTVJLHMG.js → chunk-MOUCMZZP.js} +1 -1
  166. package/dist/safe-bash/command-chunks/{chunk-IB5QP4LF.js → chunk-MQE77MEQ.js} +3 -3
  167. package/dist/safe-bash/command-chunks/{chunk-FSYMSWJU.js → chunk-MUTARE5I.js} +6 -6
  168. package/dist/safe-bash/command-chunks/{chunk-F762XDNG.js → chunk-MZYQKH26.js} +3 -3
  169. package/dist/safe-bash/command-chunks/{chunk-N6G3345Q.js → chunk-N32AP43V.js} +7 -7
  170. package/dist/safe-bash/command-chunks/{chunk-XU6S3XUZ.js → chunk-N35IJXBK.js} +9 -9
  171. package/dist/safe-bash/command-chunks/{chunk-EVYKV3QI.js → chunk-N3ZH4YYH.js} +3 -3
  172. package/dist/safe-bash/command-chunks/{chunk-VUWXLH3E.js → chunk-N4HWOLGZ.js} +2 -2
  173. package/dist/safe-bash/command-chunks/{chunk-G3TAX3CV.js → chunk-N5J3IZZK.js} +8124 -7200
  174. package/dist/safe-bash/command-chunks/{chunk-W3ZSWK76.js → chunk-NCNHJRIY.js} +8 -8
  175. package/dist/safe-bash/command-chunks/{chunk-FXCSPPYE.js → chunk-NDALIHKK.js} +20 -20
  176. package/dist/safe-bash/command-chunks/{chunk-BS5JEUEW.js → chunk-NKK76B4V.js} +8 -8
  177. package/dist/safe-bash/command-chunks/{chunk-4EZJV4FZ.js → chunk-NLCUQD7Y.js} +1 -1
  178. package/dist/safe-bash/command-chunks/{chunk-RHDERFMR.js → chunk-O2HNOQQG.js} +5 -5
  179. package/dist/safe-bash/command-chunks/{chunk-G2COZLXX.js → chunk-OBIXFO25.js} +10 -10
  180. package/dist/safe-bash/command-chunks/{chunk-47IAU25U.js → chunk-OCV5ZU35.js} +3 -3
  181. package/dist/safe-bash/command-chunks/{chunk-3YEQI5B7.js → chunk-OFDJJRAD.js} +9 -9
  182. package/dist/safe-bash/command-chunks/{chunk-VDTFVRYX.js → chunk-OFONWWEZ.js} +2 -2
  183. package/dist/safe-bash/command-chunks/{chunk-F4YFTO2K.js → chunk-OHEZQ4QA.js} +9 -9
  184. package/dist/safe-bash/command-chunks/{chunk-JW6WVNTM.js → chunk-OIHQXURE.js} +1 -1
  185. package/dist/safe-bash/command-chunks/{chunk-ZTMZO4IT.js → chunk-ONQP4FNV.js} +1 -1
  186. package/dist/safe-bash/command-chunks/{chunk-K2WOMJOQ.js → chunk-OVUY46QF.js} +1 -1
  187. package/dist/safe-bash/command-chunks/{chunk-DGBQ7QDE.js → chunk-OWCBX5M2.js} +1 -1
  188. package/dist/safe-bash/command-chunks/{chunk-LKGTH2Q7.js → chunk-P462JTNT.js} +5 -5
  189. package/dist/safe-bash/command-chunks/{chunk-5LFGXN3D.js → chunk-P4OWVKMD.js} +6 -6
  190. package/dist/safe-bash/command-chunks/{chunk-46AMTJPE.js → chunk-POGVOCOB.js} +8 -8
  191. package/dist/safe-bash/command-chunks/{chunk-PLMF35XK.js → chunk-PPN53PX3.js} +4 -4
  192. package/dist/safe-bash/command-chunks/{chunk-V5XC43BX.js → chunk-PRO7JOIH.js} +8 -8
  193. package/dist/safe-bash/command-chunks/{chunk-UJERQEJB.js → chunk-PU5DMQGG.js} +1 -1
  194. package/dist/safe-bash/command-chunks/{chunk-IWHNRYER.js → chunk-Q65GWGQR.js} +3 -3
  195. package/dist/safe-bash/command-chunks/{chunk-BLGGAHQW.js → chunk-QCIAX6HZ.js} +1 -1
  196. package/dist/safe-bash/command-chunks/{chunk-ET5SFGRH.js → chunk-QDV2NIFR.js} +1 -1
  197. package/dist/safe-bash/command-chunks/{chunk-Y42KSX63.js → chunk-QMBMZSJF.js} +6 -6
  198. package/dist/safe-bash/command-chunks/{chunk-KUOCGGEU.js → chunk-QNETPOMH.js} +6 -5
  199. package/dist/safe-bash/command-chunks/{chunk-QB72X7FF.js → chunk-QNX5LZBK.js} +7 -7
  200. package/dist/safe-bash/command-chunks/{chunk-LZ2JFMKT.js → chunk-QOKFSYD5.js} +9 -9
  201. package/dist/safe-bash/command-chunks/{chunk-7DOLY7IV.js → chunk-R7LF4XQV.js} +2 -2
  202. package/dist/safe-bash/command-chunks/{chunk-PIVH35EQ.js → chunk-RINR7XPR.js} +37 -10
  203. package/dist/safe-bash/command-chunks/{chunk-MPXMRTMY.js → chunk-ROQ3VNVX.js} +8 -8
  204. package/dist/safe-bash/command-chunks/{chunk-6WNVGCXD.js → chunk-RRAQII52.js} +5 -5
  205. package/dist/safe-bash/command-chunks/{chunk-2BNGPR6Z.js → chunk-RTHYAGKI.js} +2 -2
  206. package/dist/safe-bash/command-chunks/chunk-RTKDZBJS.js +816 -0
  207. package/dist/safe-bash/command-chunks/{chunk-JVKE7YZN.js → chunk-RVWIEXR7.js} +4 -4
  208. package/dist/safe-bash/command-chunks/{chunk-XM5QJCPD.js → chunk-S5ER73EA.js} +8 -8
  209. package/dist/safe-bash/command-chunks/{chunk-YRPXBGRX.js → chunk-SBXS4S6Y.js} +3 -3
  210. package/dist/safe-bash/command-chunks/{chunk-HI6ZYH3W.js → chunk-SHLT5R64.js} +9 -9
  211. package/dist/safe-bash/command-chunks/{chunk-Q5PWYPQV.js → chunk-SICTBSLW.js} +7 -7
  212. package/dist/safe-bash/command-chunks/{chunk-AXXZNB7U.js → chunk-SL4LD25A.js} +9 -9
  213. package/dist/safe-bash/command-chunks/{chunk-JGKSWDGP.js → chunk-SNA2LVBX.js} +1 -1
  214. package/dist/safe-bash/command-chunks/{chunk-TXPDKEGY.js → chunk-SWIF6BBY.js} +8 -8
  215. package/dist/safe-bash/command-chunks/{chunk-PS5GDFIP.js → chunk-T2FRXSQT.js} +2 -2
  216. package/dist/safe-bash/command-chunks/{chunk-HELAVGZH.js → chunk-T4SEQU66.js} +3 -3
  217. package/dist/safe-bash/command-chunks/{chunk-3SPLP2DB.js → chunk-T5OQ53XS.js} +1 -1
  218. package/dist/safe-bash/command-chunks/{chunk-KBAQHE5Y.js → chunk-TG2RVQLP.js} +2 -2
  219. package/dist/safe-bash/command-chunks/{chunk-CZ5K2YPU.js → chunk-TXU7MMHN.js} +24 -24
  220. package/dist/safe-bash/command-chunks/{chunk-TYPS5MOU.js → chunk-TXWDR2P4.js} +1 -1
  221. package/dist/safe-bash/command-chunks/{chunk-ETXPMVR6.js → chunk-TY7JXEWI.js} +11 -11
  222. package/dist/safe-bash/command-chunks/{chunk-X6OHFKBL.js → chunk-U42WHQRH.js} +8 -8
  223. package/dist/safe-bash/command-chunks/{chunk-Z2WNYEPD.js → chunk-UFLMOU3B.js} +4 -4
  224. package/dist/safe-bash/command-chunks/{chunk-2BLTUQNK.js → chunk-UJYXSLM6.js} +2 -2
  225. package/dist/safe-bash/command-chunks/{chunk-Q7TVCBU2.js → chunk-UKAGRRLZ.js} +1 -1
  226. package/dist/safe-bash/command-chunks/{chunk-4GQKCUS5.js → chunk-UPWLHHZ2.js} +13 -13
  227. package/dist/safe-bash/command-chunks/{chunk-5L4YGRQU.js → chunk-URQSUMMJ.js} +4 -4
  228. package/dist/safe-bash/command-chunks/{chunk-KPHLESD4.js → chunk-UT5X6QRU.js} +5 -5
  229. package/dist/safe-bash/command-chunks/{chunk-T5S4SJGO.js → chunk-V6JPIZUW.js} +7 -7
  230. package/dist/safe-bash/command-chunks/{chunk-MKK6FM5H.js → chunk-VMZIAFVJ.js} +11 -11
  231. package/dist/safe-bash/command-chunks/{chunk-HK6MSB7Z.js → chunk-VNNNVT4C.js} +5 -5
  232. package/dist/safe-bash/command-chunks/{chunk-ROL5AEX6.js → chunk-VVV45NLY.js} +1 -1
  233. package/dist/safe-bash/command-chunks/chunk-VVWHFNHD.js +502 -0
  234. package/dist/safe-bash/command-chunks/{chunk-KCLJGRU7.js → chunk-VZTVR3JI.js} +12 -12
  235. package/dist/safe-bash/command-chunks/{chunk-PLR5IULU.js → chunk-WDVPHDBH.js} +5 -5
  236. package/dist/safe-bash/command-chunks/{chunk-MNK3DDH6.js → chunk-WH624PKJ.js} +2 -2
  237. package/dist/safe-bash/command-chunks/{chunk-TJLXSENN.js → chunk-WHZ6XK7Y.js} +1 -1
  238. package/dist/safe-bash/command-chunks/{chunk-DN6MSXY7.js → chunk-WIW3KDBS.js} +2 -2
  239. package/dist/safe-bash/command-chunks/{chunk-GXMPXMDP.js → chunk-WMBELKPP.js} +11 -11
  240. package/dist/safe-bash/command-chunks/{chunk-NHNZYWPW.js → chunk-WMV5224N.js} +3 -3
  241. package/dist/safe-bash/command-chunks/{chunk-RTNI47C5.js → chunk-WOL3LBXE.js} +4 -4
  242. package/dist/safe-bash/command-chunks/{chunk-7SOE7XIS.js → chunk-WVD5WZXD.js} +5 -5
  243. package/dist/safe-bash/command-chunks/{chunk-XMTR7QGL.js → chunk-X42MJT2J.js} +4 -4
  244. package/dist/safe-bash/command-chunks/{chunk-XUJAQA3S.js → chunk-XBWD6SI3.js} +33 -33
  245. package/dist/safe-bash/command-chunks/{chunk-ZQM37BGE.js → chunk-XFIDOCYH.js} +2 -2
  246. package/dist/safe-bash/command-chunks/{chunk-IBYMPAUW.js → chunk-XPQUUFQD.js} +2 -2
  247. package/dist/safe-bash/command-chunks/{chunk-NQINS4XY.js → chunk-XVEI4HZL.js} +1 -1
  248. package/dist/safe-bash/command-chunks/{chunk-KSBNZTAZ.js → chunk-YKODRSGT.js} +6 -6
  249. package/dist/safe-bash/command-chunks/{chunk-WZRFS5OY.js → chunk-YXR4JE4U.js} +4 -4
  250. package/dist/safe-bash/command-chunks/{chunk-DCMSPMMD.js → chunk-Z7UIOPHJ.js} +1 -1
  251. package/dist/safe-bash/command-chunks/{chunk-AY3KQ4EN.js → chunk-ZAYTFXUX.js} +7 -7
  252. package/dist/safe-bash/command-chunks/{chunk-DZH54L3F.js → chunk-ZM7HMBAJ.js} +10 -10
  253. package/dist/safe-bash/command-chunks/{chunk-NFGCBQN3.js → chunk-ZNCPIZCN.js} +2 -2
  254. package/dist/safe-bash/command-chunks/{chunk-HKGNBH7Z.js → chunk-ZRHKXN6W.js} +4 -4
  255. package/dist/safe-bash/command-chunks/{chunk-A45UG4KT.js → chunk-ZZERSKAR.js} +5 -5
  256. package/dist/safe-bash/command-chunks/{clipboard-BBDK33GP-QZ4ERNQX.js → clipboard-BBDK33GP-VB22F7GI.js} +2 -2
  257. package/dist/safe-bash/command-chunks/{command-engine-7V6PZR7G.js → command-engine-GHE6QUHU.js} +63 -23
  258. package/dist/safe-bash/command-chunks/{engine-UYJENSWK-VSCGKSQV.js → engine-RG6HQCCB-FXYZS264.js} +1 -1
  259. package/dist/safe-bash/command-chunks/{gnumeric-UJPXWBVR-7VOHQAPM.js → gnumeric-UJPXWBVR-YPXTNEDZ.js} +2 -2
  260. package/dist/safe-bash/command-chunks/model-store-I7YAWL5V.js +54 -0
  261. package/dist/safe-bash/command-chunks/{xlsx-RE54MFCS-DI3F765V.js → xlsx-RE54MFCS-IQ6OXXKK.js} +1 -1
  262. package/dist/safe-bash/commands/bc/index.browser.js +1 -1
  263. package/dist/safe-bash/full-core.browser.js +4 -4
  264. package/dist/safe-bash/plugins/index.browser.js +3 -3
  265. package/dist/safe-bash/registry-entry.browser.js +2 -2
  266. package/dist/safe-bash/search.browser.js +1 -1
  267. package/dist/safe-bash/shell/runtime.d.ts +1 -0
  268. package/dist/safe-bash/shell/runtime.js +12 -3
  269. package/dist/safe-bash/shell/sync-extra-evaluators.js +7 -4
  270. package/dist/safe-bash/shell-entry.browser.js +2 -2
  271. package/dist/safe-bash-command-awk/awk-runtime.js +3 -3
  272. package/dist/safe-bash-command-awk/awk.js +4 -4
  273. package/dist/safe-bash-command-awk/index.js +4 -4
  274. package/dist/safe-bash-command-cp/index.js +3 -3
  275. package/dist/safe-bash-command-csvkit/index.js +1 -1
  276. package/dist/safe-bash-command-diff/diff.js +2 -2
  277. package/dist/safe-bash-command-diff/index.js +3 -3
  278. package/dist/safe-bash-command-diff/sync.js +2 -2
  279. package/dist/safe-bash-command-factor/command.js +2 -2
  280. package/dist/safe-bash-command-factor/index.js +2 -2
  281. package/dist/safe-bash-command-ffmpeg/index.js +1 -1
  282. package/dist/safe-bash-command-ffprobe/index.js +2 -2
  283. package/dist/safe-bash-command-ffprobe/media.d.ts +12 -2
  284. package/dist/safe-bash-command-ffprobe/media.js +4 -2
  285. package/dist/safe-bash-command-getopt/command.js +2 -2
  286. package/dist/safe-bash-command-getopt/index.js +2 -2
  287. package/dist/safe-bash-command-html-to-markdown/index.js +51 -813
  288. package/dist/safe-bash-command-html-to-markdown/stored-destination.d.ts +8 -0
  289. package/dist/safe-bash-command-html-to-markdown/stored-destination.js +10 -0
  290. package/dist/safe-bash-command-html-to-markdown/stored-text.d.ts +4 -1
  291. package/dist/safe-bash-command-html-to-markdown/stored-text.js +1 -1
  292. package/dist/safe-bash-command-htmlq/index.js +1280 -419
  293. package/dist/safe-bash-command-iconv/command.js +2 -2
  294. package/dist/safe-bash-command-iconv/index.js +2 -2
  295. package/dist/safe-bash-command-llm/index.js +2 -2
  296. package/dist/safe-bash-command-llm/openai.js +2 -2
  297. package/dist/safe-bash-command-llm/providers/index.js +2 -2
  298. package/dist/safe-bash-command-llm/providers/openai.js +2 -2
  299. package/dist/safe-bash-command-node/commands/node/browser.js +4 -4
  300. package/dist/safe-bash-command-node/commands/node/default-runtime.js +4 -4
  301. package/dist/safe-bash-command-node/commands/node/safejs.js +4 -4
  302. package/dist/safe-bash-command-pandoc/command.js +10 -9
  303. package/dist/safe-bash-command-pandoc/index.js +60 -59
  304. package/dist/safe-bash-command-patch/index.js +8 -7
  305. package/dist/safe-bash-command-patch/patch-formats.d.ts +6 -5
  306. package/dist/safe-bash-command-patch/patch-formats.js +3 -2
  307. package/dist/safe-bash-command-patch/patch-gnu-paths.d.ts +7 -7
  308. package/dist/safe-bash-command-patch/patch-gnu-reject.d.ts +1 -1
  309. package/dist/safe-bash-command-patch/patch-gnu-reject.js +3 -2
  310. package/dist/safe-bash-command-patch/patch-publication.js +3 -2
  311. package/dist/safe-bash-command-patch/patch-text.d.ts +13 -0
  312. package/dist/safe-bash-command-patch/patch.js +7 -6
  313. package/dist/safe-bash-command-patch/stored-patch.d.ts +32 -6
  314. package/dist/safe-bash-command-patch/stored-target.d.ts +2 -1
  315. package/dist/safe-bash-command-patch/unified.d.ts +22 -8
  316. package/dist/safe-bash-command-patch/unified.js +2 -1
  317. package/dist/safe-bash-command-pdftk/index.js +45 -122
  318. package/dist/safe-bash-command-pdftoppm/index.js +131 -27
  319. package/dist/safe-bash-command-playwright-cli/index.js +12 -12
  320. package/dist/safe-bash-command-playwright-cli/playwright/abilities.js +1 -1
  321. package/dist/safe-bash-command-playwright-cli/playwright/capability-events.js +1 -1
  322. package/dist/safe-bash-command-playwright-cli/playwright/capability-result.js +1 -1
  323. package/dist/safe-bash-command-playwright-cli/playwright/controller.js +7 -7
  324. package/dist/safe-bash-command-playwright-cli/playwright/download-capabilities.js +1 -1
  325. package/dist/safe-bash-command-playwright-cli/playwright/drop-capability.js +1 -1
  326. package/dist/safe-bash-command-playwright-cli/playwright/index.js +12 -12
  327. package/dist/safe-bash-command-playwright-cli/playwright/modal-capabilities.js +1 -1
  328. package/dist/safe-bash-command-playwright-cli/playwright/native-evaluation.js +1 -1
  329. package/dist/safe-bash-command-playwright-cli/playwright/native-json-snapshot.js +1 -1
  330. package/dist/safe-bash-command-playwright-cli/playwright/native-snapshot.js +1 -1
  331. package/dist/safe-bash-command-playwright-cli/playwright/open-options.js +2 -2
  332. package/dist/safe-bash-command-playwright-cli/playwright/profile.js +3 -3
  333. package/dist/safe-bash-command-playwright-cli/playwright/recording-capabilities.js +1 -1
  334. package/dist/safe-bash-command-playwright-cli/playwright/route-capabilities.js +1 -1
  335. package/dist/safe-bash-command-playwright-cli/playwright/snapshot.js +3 -3
  336. package/dist/safe-bash-command-playwright-cli/playwright/standard-capabilities.js +1 -1
  337. package/dist/safe-bash-command-playwright-cli/playwright/storage-capabilities.js +1 -1
  338. package/dist/safe-bash-command-playwright-cli/playwright/tracing-capabilities.js +1 -1
  339. package/dist/safe-bash-command-playwright-cli/playwright/webmcp-capabilities.js +1 -1
  340. package/dist/safe-bash-command-pptx/engine.js +1 -1
  341. package/dist/safe-bash-command-python/executor.js +11 -11
  342. package/dist/safe-bash-command-python/index.js +11 -11
  343. package/dist/safe-bash-command-python/jspi.js +2 -2
  344. package/dist/safe-bash-command-rg/index.js +3 -3
  345. package/dist/safe-bash-command-rg/rg-command.js +3 -3
  346. package/dist/safe-bash-command-safejs/index.js +4 -4
  347. package/dist/safe-bash-command-safejs/io.js +3 -3
  348. package/dist/safe-bash-command-safejs/render.js +2 -2
  349. package/dist/safe-bash-command-safejs/runtime.js +4 -4
  350. package/dist/safe-bash-command-soffice/index.js +5 -4
  351. package/dist/safe-bash-command-sort/index.js +3 -3
  352. package/dist/safe-bash-command-ssconvert/index.js +13 -13
  353. package/dist/safe-bash-command-tar/create.js +3 -3
  354. package/dist/safe-bash-command-tar/extract.js +3 -3
  355. package/dist/safe-bash-command-tar/index.js +7 -7
  356. package/dist/safe-bash-command-tar/modes.js +5 -5
  357. package/dist/safe-bash-command-unzip/index.js +2 -2
  358. package/dist/safe-bash-command-unzip/unzip.js +2 -2
  359. package/dist/safe-bash-command-xmllint/index.js +1 -1
  360. package/dist/safe-bash-command-xz/index.js +5 -5
  361. package/dist/safe-bash-compression-engine/files.js +5 -5
  362. package/dist/safe-bash-compression-engine/index.js +3 -3
  363. package/dist/safe-bash-compression-engine/operand.js +6 -6
  364. package/dist/safe-bash-compression-engine/stream.js +3 -3
  365. package/dist/safe-bash-compression-engine/zstd-decode.js +2 -2
  366. package/dist/safe-bash-contracts/escaping.js +3 -3
  367. package/dist/safe-bash-contracts/filesystem-output.js +3 -3
  368. package/dist/safe-bash-contracts/index.js +10 -10
  369. package/dist/safe-bash-docx-engine/ancillary-resources.js +9 -9
  370. package/dist/safe-bash-docx-engine/batch-operations.js +66 -66
  371. package/dist/safe-bash-docx-engine/batch-result-schema.js +78 -78
  372. package/dist/safe-bash-docx-engine/batch.js +77 -77
  373. package/dist/safe-bash-docx-engine/bookmarks.js +17 -17
  374. package/dist/safe-bash-docx-engine/charts.js +10 -10
  375. package/dist/safe-bash-docx-engine/command-option-rules.js +5 -5
  376. package/dist/safe-bash-docx-engine/command-properties.js +3 -3
  377. package/dist/safe-bash-docx-engine/comments.js +25 -25
  378. package/dist/safe-bash-docx-engine/control-bindings.js +20 -20
  379. package/dist/safe-bash-docx-engine/control-repeat.js +20 -20
  380. package/dist/safe-bash-docx-engine/controls.js +18 -18
  381. package/dist/safe-bash-docx-engine/create.js +10 -10
  382. package/dist/safe-bash-docx-engine/diagrams.js +10 -10
  383. package/dist/safe-bash-docx-engine/diff.js +12 -12
  384. package/dist/safe-bash-docx-engine/document-properties.js +15 -15
  385. package/dist/safe-bash-docx-engine/equations.js +16 -16
  386. package/dist/safe-bash-docx-engine/extract.js +13 -13
  387. package/dist/safe-bash-docx-engine/fields.js +22 -22
  388. package/dist/safe-bash-docx-engine/font-inventory.js +17 -17
  389. package/dist/safe-bash-docx-engine/font-resources.js +5 -5
  390. package/dist/safe-bash-docx-engine/image-batch-operations.js +13 -13
  391. package/dist/safe-bash-docx-engine/image-insertion.js +20 -20
  392. package/dist/safe-bash-docx-engine/image-layout.js +18 -18
  393. package/dist/safe-bash-docx-engine/image-replacement.js +21 -21
  394. package/dist/safe-bash-docx-engine/images.js +18 -18
  395. package/dist/safe-bash-docx-engine/index.js +113 -113
  396. package/dist/safe-bash-docx-engine/inspection.js +19 -19
  397. package/dist/safe-bash-docx-engine/invocation.js +8 -8
  398. package/dist/safe-bash-docx-engine/io.js +8 -8
  399. package/dist/safe-bash-docx-engine/links.js +20 -20
  400. package/dist/safe-bash-docx-engine/lists.js +19 -19
  401. package/dist/safe-bash-docx-engine/locations.js +14 -14
  402. package/dist/safe-bash-docx-engine/notes.js +21 -21
  403. package/dist/safe-bash-docx-engine/objects.js +18 -18
  404. package/dist/safe-bash-docx-engine/operation-json-schema.js +3 -3
  405. package/dist/safe-bash-docx-engine/operation-schema.js +2 -2
  406. package/dist/safe-bash-docx-engine/pack.js +13 -13
  407. package/dist/safe-bash-docx-engine/package-view-batch-operations.js +21 -21
  408. package/dist/safe-bash-docx-engine/pandoc-adapter.js +28 -28
  409. package/dist/safe-bash-docx-engine/paragraph-edit.js +24 -24
  410. package/dist/safe-bash-docx-engine/part-provider.js +3 -3
  411. package/dist/safe-bash-docx-engine/property-values.js +3 -3
  412. package/dist/safe-bash-docx-engine/publication.js +8 -8
  413. package/dist/safe-bash-docx-engine/removal.js +20 -20
  414. package/dist/safe-bash-docx-engine/revision-decisions.js +21 -21
  415. package/dist/safe-bash-docx-engine/revision-edit.js +19 -19
  416. package/dist/safe-bash-docx-engine/revisions.js +17 -17
  417. package/dist/safe-bash-docx-engine/run-format.js +19 -19
  418. package/dist/safe-bash-docx-engine/sanitize.js +33 -33
  419. package/dist/safe-bash-docx-engine/sections.js +18 -18
  420. package/dist/safe-bash-docx-engine/settings.js +10 -10
  421. package/dist/safe-bash-docx-engine/shape-edit.js +20 -20
  422. package/dist/safe-bash-docx-engine/signatures.js +14 -14
  423. package/dist/safe-bash-docx-engine/stories.js +21 -21
  424. package/dist/safe-bash-docx-engine/structure-model-batch-operations.js +37 -37
  425. package/dist/safe-bash-docx-engine/style-model-batch-operations.js +26 -26
  426. package/dist/safe-bash-docx-engine/style-model-result-schema.js +43 -43
  427. package/dist/safe-bash-docx-engine/styles.js +17 -17
  428. package/dist/safe-bash-docx-engine/table-edit.js +26 -26
  429. package/dist/safe-bash-docx-engine/table-read.js +15 -15
  430. package/dist/safe-bash-docx-engine/template.js +21 -21
  431. package/dist/safe-bash-docx-engine/text-replace.js +19 -19
  432. package/dist/safe-bash-docx-engine/text-resource-read.js +15 -15
  433. package/dist/safe-bash-docx-engine/text.js +15 -15
  434. package/dist/safe-bash-docx-engine/validation.js +6 -6
  435. package/dist/safe-bash-docx-engine/xml-parts.js +21 -21
  436. package/dist/safe-bash-line-ending-engine/command.js +4 -4
  437. package/dist/safe-bash-line-ending-engine/index.js +7 -7
  438. package/dist/safe-bash-markdown-engine/commonmark-blocks.js +3 -3
  439. package/dist/safe-bash-markdown-engine/commonmark-inlines.js +3 -3
  440. package/dist/safe-bash-markdown-engine/gfm-syntax.js +2 -2
  441. package/dist/safe-bash-markdown-engine/index.js +4 -4
  442. package/dist/safe-bash-network-engine/aggregate.js +3 -3
  443. package/dist/safe-bash-network-engine/args.js +3 -3
  444. package/dist/safe-bash-network-engine/body.js +4 -4
  445. package/dist/safe-bash-network-engine/decode.js +3 -3
  446. package/dist/safe-bash-network-engine/fetch-transport.js +3 -3
  447. package/dist/safe-bash-network-engine/index.js +3 -3
  448. package/dist/safe-bash-network-engine/output.js +3 -3
  449. package/dist/safe-bash-network-engine/platform-portable.js +3 -3
  450. package/dist/safe-bash-network-engine/shared.js +2 -2
  451. package/dist/safe-bash-network-engine/transfer.js +9 -9
  452. package/dist/safe-bash-presentation-engine/accessibility.js +31 -30
  453. package/dist/safe-bash-presentation-engine/animation-editing.js +16 -15
  454. package/dist/safe-bash-presentation-engine/animations.js +16 -15
  455. package/dist/safe-bash-presentation-engine/backgrounds.js +17 -16
  456. package/dist/safe-bash-presentation-engine/bytes.js +4 -3
  457. package/dist/safe-bash-presentation-engine/chart-editing.js +34 -33
  458. package/dist/safe-bash-presentation-engine/chart-object-operations.js +25 -24
  459. package/dist/safe-bash-presentation-engine/charts.js +31 -30
  460. package/dist/safe-bash-presentation-engine/command-placeholder.js +60 -58
  461. package/dist/safe-bash-presentation-engine/comments.js +17 -16
  462. package/dist/safe-bash-presentation-engine/connector-operations.js +32 -31
  463. package/dist/safe-bash-presentation-engine/connectors.js +29 -28
  464. package/dist/safe-bash-presentation-engine/content-types.js +5 -4
  465. package/dist/safe-bash-presentation-engine/creation.js +7 -6
  466. package/dist/safe-bash-presentation-engine/diff.d.ts +1 -0
  467. package/dist/safe-bash-presentation-engine/diff.js +44 -33
  468. package/dist/safe-bash-presentation-engine/drawing-format.js +20 -19
  469. package/dist/safe-bash-presentation-engine/drawing-operations.js +31 -30
  470. package/dist/safe-bash-presentation-engine/drawing-schema.js +21 -20
  471. package/dist/safe-bash-presentation-engine/equations.js +17 -16
  472. package/dist/safe-bash-presentation-engine/errors.js +3 -2
  473. package/dist/safe-bash-presentation-engine/fields.js +17 -16
  474. package/dist/safe-bash-presentation-engine/font-metrics.js +4 -3
  475. package/dist/safe-bash-presentation-engine/image-extraction.js +20 -19
  476. package/dist/safe-bash-presentation-engine/image-formatting.js +32 -31
  477. package/dist/safe-bash-presentation-engine/image-insertion.js +18 -17
  478. package/dist/safe-bash-presentation-engine/image-replacement.js +21 -20
  479. package/dist/safe-bash-presentation-engine/image-value.js +5 -4
  480. package/dist/safe-bash-presentation-engine/images.js +19 -18
  481. package/dist/safe-bash-presentation-engine/index.js +135 -132
  482. package/dist/safe-bash-presentation-engine/layouts.js +16 -15
  483. package/dist/safe-bash-presentation-engine/length.js +4 -3
  484. package/dist/safe-bash-presentation-engine/links.js +16 -15
  485. package/dist/safe-bash-presentation-engine/masters.js +15 -14
  486. package/dist/safe-bash-presentation-engine/media-editing.js +24 -23
  487. package/dist/safe-bash-presentation-engine/media-extraction.js +17 -16
  488. package/dist/safe-bash-presentation-engine/media.js +16 -15
  489. package/dist/safe-bash-presentation-engine/memberships.js +15 -14
  490. package/dist/safe-bash-presentation-engine/notes.d.ts +1 -0
  491. package/dist/safe-bash-presentation-engine/notes.js +22 -15
  492. package/dist/safe-bash-presentation-engine/ole-enum.js +5 -4
  493. package/dist/safe-bash-presentation-engine/ole-insertion.js +20 -19
  494. package/dist/safe-bash-presentation-engine/opaque-objects.js +10 -9
  495. package/dist/safe-bash-presentation-engine/package-reader.js +6 -5
  496. package/dist/safe-bash-presentation-engine/package-tools.js +19 -18
  497. package/dist/safe-bash-presentation-engine/package-uri.js +4 -3
  498. package/dist/safe-bash-presentation-engine/package-writer.js +5 -4
  499. package/dist/safe-bash-presentation-engine/presentation-model.js +59 -57
  500. package/dist/safe-bash-presentation-engine/presentation-settings.js +14 -13
  501. package/dist/safe-bash-presentation-engine/properties.d.ts +2 -1
  502. package/dist/safe-bash-presentation-engine/properties.js +25 -15
  503. package/dist/safe-bash-presentation-engine/relationships.js +5 -4
  504. package/dist/safe-bash-presentation-engine/resource-limits.js +2 -1
  505. package/dist/safe-bash-presentation-engine/retained-diff.d.ts +56 -0
  506. package/dist/safe-bash-presentation-engine/retained-inspection.js +14 -13
  507. package/dist/safe-bash-presentation-engine/retained-notes.d.ts +27 -0
  508. package/dist/safe-bash-presentation-engine/retained-package.js +6 -5
  509. package/dist/safe-bash-presentation-engine/retained-properties.d.ts +26 -0
  510. package/dist/safe-bash-presentation-engine/retained-text.js +33 -517
  511. package/dist/safe-bash-presentation-engine/sanitize.js +20 -16
  512. package/dist/safe-bash-presentation-engine/selectors.js +11 -10
  513. package/dist/safe-bash-presentation-engine/shape-groups.js +31 -30
  514. package/dist/safe-bash-presentation-engine/shape-operations.js +30 -29
  515. package/dist/safe-bash-presentation-engine/shape-path-operations.js +32 -31
  516. package/dist/safe-bash-presentation-engine/shape-paths.js +16 -15
  517. package/dist/safe-bash-presentation-engine/shape-presets.js +4 -3
  518. package/dist/safe-bash-presentation-engine/shape-selection.js +31 -30
  519. package/dist/safe-bash-presentation-engine/shape-transforms.js +18 -17
  520. package/dist/safe-bash-presentation-engine/shapes.js +27 -26
  521. package/dist/safe-bash-presentation-engine/slide-copy.js +17 -16
  522. package/dist/safe-bash-presentation-engine/slide-import.js +18 -17
  523. package/dist/safe-bash-presentation-engine/slide-merge-split.js +20 -19
  524. package/dist/safe-bash-presentation-engine/slide-model.js +43 -42
  525. package/dist/safe-bash-presentation-engine/slide-removal.js +18 -17
  526. package/dist/safe-bash-presentation-engine/slide-transfer-budget.js +10 -9
  527. package/dist/safe-bash-presentation-engine/slides.js +19 -18
  528. package/dist/safe-bash-presentation-engine/table-operations.js +33 -32
  529. package/dist/safe-bash-presentation-engine/table-spans.js +32 -31
  530. package/dist/safe-bash-presentation-engine/tables.js +31 -30
  531. package/dist/safe-bash-presentation-engine/tags.js +16 -15
  532. package/dist/safe-bash-presentation-engine/template-bindings.js +33 -32
  533. package/dist/safe-bash-presentation-engine/template-repeat.js +40 -39
  534. package/dist/safe-bash-presentation-engine/text-fitting.js +27 -26
  535. package/dist/safe-bash-presentation-engine/text-frames.js +27 -26
  536. package/dist/safe-bash-presentation-engine/text-paragraphs.js +27 -26
  537. package/dist/safe-bash-presentation-engine/text-reading.js +12 -11
  538. package/dist/safe-bash-presentation-engine/text-replacement.js +17 -16
  539. package/dist/safe-bash-presentation-engine/text-runs.js +20 -19
  540. package/dist/safe-bash-presentation-engine/themes.js +16 -15
  541. package/dist/safe-bash-presentation-engine/transitions.js +16 -15
  542. package/dist/safe-bash-presentation-engine/validation.js +10 -9
  543. package/dist/safe-bash-presentation-engine/xml-parts.js +19 -18
  544. package/dist/safe-bash-presentation-engine/xml-view.js +4 -3
  545. package/dist/safe-bash-presentation-engine/xml.js +4 -3
  546. package/dist/safe-bash-query-engine/index.js +3 -3
  547. package/dist/safe-bash-query-engine/interpreter.js +2 -2
  548. package/dist/safe-bash-query-engine/query-core.js +3 -3
  549. package/dist/safe-bash-regex-engine/ere/matcher.js +3 -3
  550. package/dist/safe-bash-xml-engine/document.js +3 -3
  551. package/dist/safe-bash-xml-engine/evaluate.js +1 -1
  552. package/dist/safe-bash-xml-engine/index.js +4 -4
  553. package/dist/safe-bash-xml-engine/json.js +14 -10
  554. package/dist/safe-bash-xml-engine/query.js +2 -2
  555. package/dist/safe-bash-xml-engine/stored-document.d.ts +4 -0
  556. package/dist/safe-bash-xml-engine/stored-document.js +1 -1
  557. package/dist/safe-bash-xml-engine/stored-evaluate.js +3 -3
  558. package/dist/safe-bash-zip-engine/index.js +2 -2
  559. package/dist/safe-bash-zip-engine/zip/repair.js +2 -2
  560. package/dist/safe-bash-zip-engine/zip/sfx.js +2 -2
  561. package/dist/safe-bash-zip-engine/zip-format.js +2 -2
  562. package/dist/spreadsheet-format-xls/biff-properties-merge.js +88 -73
  563. package/dist/spreadsheet-format-xls/biff-properties.js +3 -3
  564. package/dist/spreadsheet-format-xls/biff-property-transcode.d.ts +6 -1
  565. package/dist/spreadsheet-format-xls/biff-property-transcode.js +15 -4
  566. package/dist/spreadsheet-format-xls/biff-property-values.d.ts +36 -0
  567. package/dist/spreadsheet-format-xls/biff-property-values.js +227 -0
  568. package/dist/xlsx-ast/comment-geometry.d.ts +12 -0
  569. package/dist/xlsx-ast/comment-geometry.js +71 -0
  570. package/dist/xlsx-ast/xlsx-metadata.d.ts +1 -1
  571. package/dist/xlsx-ast/xlsx-metadata.js +27 -2
  572. package/dist/xlsx-ast/xlsx-write-metadata.js +9 -1
  573. package/dist/xlsx-ast/xlsx.js +9 -4
  574. package/package.json +6 -3
  575. package/dist/safe-bash/command-chunks/biff-KRHJ63K3-VQPJCVIL.js +0 -5309
  576. package/dist/safe-bash/command-chunks/chunk-DBNJEXHK.js +0 -387
  577. package/dist/safe-bash/command-chunks/chunk-EV5G535P.js +0 -240
  578. package/dist/safe-bash/command-chunks/model-store-UB5DWMAP.js +0 -54
  579. package/dist/safe-bash/command-chunks/{chunk-NGSO645G.js → chunk-3ZVK2OAY.js} +6 -6
  580. package/dist/safe-bash/command-chunks/{chunk-W2FKFEVY.js → chunk-4YSBUQPV.js} +3 -3
  581. package/dist/safe-bash/command-chunks/{chunk-UJSLBBQ7.js → chunk-5MFRN3CB.js} +4 -4
  582. package/dist/safe-bash/command-chunks/{chunk-AW4Q3GZW.js → chunk-5QXRIZSS.js} +3 -3
  583. package/dist/safe-bash/command-chunks/{chunk-KUGV3SSL.js → chunk-CZXYWGVO.js} +3 -3
  584. package/dist/safe-bash/command-chunks/{chunk-JWORWL72.js → chunk-DX7KU6YU.js} +3 -3
  585. package/dist/safe-bash/command-chunks/{chunk-Z37OM247.js → chunk-E3BL7W5C.js} +3 -3
  586. package/dist/safe-bash/command-chunks/{chunk-RIKNMBLZ.js → chunk-FEKECRJP.js} +3 -3
  587. package/dist/safe-bash/command-chunks/{chunk-D3HW7R2N.js → chunk-FTZFCMVI.js} +9 -9
  588. package/dist/safe-bash/command-chunks/{chunk-KRRG4MGH.js → chunk-GEDO5V32.js} +3 -3
  589. package/dist/safe-bash/command-chunks/{chunk-NBRXQUK7.js → chunk-M3OXQXCU.js} +3 -3
  590. package/dist/safe-bash/command-chunks/{chunk-JRSZ5IGD.js → chunk-OAM2SUUI.js} +6 -6
  591. package/dist/safe-bash/command-chunks/{chunk-HFKS6AET.js → chunk-OCOJMKDP.js} +4 -4
  592. package/dist/safe-bash/command-chunks/{chunk-FMJKCVSQ.js → chunk-OOB7YCFQ.js} +3 -3
  593. package/dist/safe-bash/command-chunks/{chunk-GGH376XQ.js → chunk-OU4VE5CR.js} +6 -6
  594. package/dist/safe-bash/command-chunks/{chunk-DYERIXPU.js → chunk-QGTQJCKW.js} +3 -3
  595. package/dist/safe-bash/command-chunks/{chunk-ZSQCROFE.js → chunk-RXXNLH7A.js} +3 -3
  596. package/dist/safe-bash/command-chunks/{chunk-TI52LKLL.js → chunk-UVM6QG2H.js} +3 -3
  597. package/dist/safe-bash/command-chunks/{chunk-BJXADHRT.js → chunk-WKU65Z3Q.js} +6 -6
  598. package/dist/safe-bash/command-chunks/{chunk-KGKF5NM2.js → chunk-WOXLPDO6.js} +3 -3
  599. package/dist/safe-bash/command-chunks/{chunk-Y5ADXWBQ.js → chunk-WXW665TV.js} +4 -4
  600. package/dist/safe-bash/command-chunks/{chunk-FWCUEZ3K.js → chunk-WYBCSJFG.js} +3 -3
  601. package/dist/safe-bash/command-chunks/{chunk-BXU5Y7I5.js → chunk-XI2LETBJ.js} +3 -3
  602. package/dist/safe-bash/command-chunks/{chunk-LNLACEAN.js → chunk-Y3ZRIZL7.js} +3 -3
@@ -0,0 +1,227 @@
1
+ import { IntegerTable } from "@poe-platform/safe-fs/storage";
2
+ import { SsconvertError } from "../spreadsheet-engine/contracts.js";
3
+ import { Binary, invalidBiff } from './biff-binary.js';
4
+ import { BiffPropertyRange, propertyRange } from './biff-property-range.js';
5
+ /** Mutable insertion order with immutable payload snapshots. Deleted payloads remain
6
+ * readable until close, so values can be moved between independently edited sections. */
7
+ export class BiffMutablePropertyValues {
8
+ context;
9
+ charge;
10
+ storage;
11
+ index;
12
+ fallback;
13
+ pending = Promise.resolve();
14
+ closing;
15
+ closed = false;
16
+ initialized = false;
17
+ first = 0;
18
+ last = 0;
19
+ count = 0;
20
+ paddedSize = 0;
21
+ root = { read: (at, count) => this.read(at, count), check: () => this.check() };
22
+ constructor(context, charge) {
23
+ this.context = context;
24
+ this.charge = charge;
25
+ this.storage = context.createWorkingStorage?.();
26
+ if (this.storage)
27
+ this.index = new IntegerTable({ allocate: length => this.allocate(length),
28
+ read: (at, length) => this.read(at, length), write: (at, bytes) => this.write(at, bytes) }, 64);
29
+ else
30
+ this.fallback = new Map();
31
+ context.own(() => this.close());
32
+ }
33
+ get size() { this.check(); return this.fallback?.size ?? this.count; }
34
+ get serializedSize() { return 8 + this.size * 8 + this.paddedSize; }
35
+ check() {
36
+ this.context.signal.throwIfAborted();
37
+ if (this.closed)
38
+ throw new SsconvertError('invalid-request', 'BIFF mutable property values are closed');
39
+ }
40
+ allocate(length) { this.check(); return this.storage.allocate(length); }
41
+ io(action) {
42
+ const result = this.pending.then(async () => { this.check(); const value = await action(); this.check(); return value; });
43
+ this.pending = result.then(() => undefined, () => undefined);
44
+ return result;
45
+ }
46
+ read(at, length) {
47
+ return this.io(async () => {
48
+ const bytes = await this.storage.read(at, length);
49
+ if (bytes.length !== length)
50
+ invalidBiff('truncated mutable property values');
51
+ return new Uint8Array(bytes);
52
+ });
53
+ }
54
+ async write(at, bytes) {
55
+ const owned = new Uint8Array(bytes);
56
+ try {
57
+ await this.io(() => this.storage.write(at, owned));
58
+ }
59
+ finally {
60
+ owned.fill(0);
61
+ }
62
+ }
63
+ async get(id) {
64
+ this.check();
65
+ if (this.fallback)
66
+ return this.fallback.get(id);
67
+ const position = await this.index.get(BigInt(id));
68
+ this.check();
69
+ if (!position)
70
+ return undefined;
71
+ const record = new Binary(await this.read(Number(position), 32));
72
+ return new BiffPropertyRange(this.root, record.f64(8), record.f64(16));
73
+ }
74
+ async set(id, value) {
75
+ this.check();
76
+ if (!(value instanceof BiffPropertyRange) && (!Number.isSafeInteger(value.size) || value.size < 0 || value.size > this.context.limits.outputBytes))
77
+ throw new SsconvertError('resource-limit', 'Invalid BIFF mutable property serialization size');
78
+ if (this.fallback && value instanceof BiffPropertyRange) {
79
+ const previous = this.fallback.get(id);
80
+ this.fallback.set(id, value);
81
+ this.paddedSize += Math.ceil(value.size / 4) * 4 - Math.ceil((previous?.size ?? 0) / 4) * 4;
82
+ return;
83
+ }
84
+ const chunks = async function* () {
85
+ if (!(value instanceof BiffPropertyRange)) {
86
+ yield* value.chunks();
87
+ return;
88
+ }
89
+ for (let at = 0; at < value.size;) {
90
+ const bytes = await value.read(at, Math.min(16384, value.size - at));
91
+ try {
92
+ at += bytes.length;
93
+ yield bytes;
94
+ }
95
+ finally {
96
+ bytes.fill(0);
97
+ }
98
+ }
99
+ };
100
+ if (this.fallback) {
101
+ const bytes = new Uint8Array(value.size);
102
+ let at = 0;
103
+ for await (const part of chunks()) {
104
+ this.check();
105
+ if (part.length > bytes.length - at)
106
+ invalidBiff('invalid mutable property serialization size');
107
+ bytes.set(part, at);
108
+ at += part.length;
109
+ }
110
+ this.check();
111
+ if (at !== bytes.length)
112
+ invalidBiff('truncated mutable property serialization');
113
+ const previous = this.fallback.get(id);
114
+ this.fallback.set(id, propertyRange(bytes, this.context));
115
+ this.paddedSize += Math.ceil(bytes.length / 4) * 4 - Math.ceil((previous?.size ?? 0) / 4) * 4;
116
+ return;
117
+ }
118
+ this.charge(value.size);
119
+ if (!this.initialized) {
120
+ this.allocate(8);
121
+ this.initialized = true;
122
+ }
123
+ const existing = await this.index.get(BigInt(id));
124
+ this.check();
125
+ const previousSize = existing ? new Binary(await this.read(Number(existing) + 16, 8)).f64(0) : 0;
126
+ const data = this.allocate(value.size);
127
+ const buffer = new Uint8Array(Math.min(16384, value.size));
128
+ let written = 0, used = 0;
129
+ try {
130
+ for await (const part of chunks()) {
131
+ this.check();
132
+ if (part.length > value.size - written - used)
133
+ invalidBiff('invalid mutable property serialization size');
134
+ for (let at = 0; at < part.length;) {
135
+ const count = Math.min(buffer.length - used, part.length - at);
136
+ buffer.set(part.subarray(at, at + count), used);
137
+ used += count;
138
+ at += count;
139
+ if (used === buffer.length) {
140
+ await this.write(data + written, buffer);
141
+ written += used;
142
+ used = 0;
143
+ }
144
+ }
145
+ }
146
+ this.check();
147
+ if (written + used !== value.size)
148
+ invalidBiff('truncated mutable property serialization');
149
+ if (used)
150
+ await this.write(data + written, buffer.subarray(0, used));
151
+ }
152
+ finally {
153
+ buffer.fill(0);
154
+ }
155
+ const record = new Uint8Array(32), view = new DataView(record.buffer);
156
+ view.setFloat64(8, data, true);
157
+ view.setFloat64(16, value.size, true);
158
+ view.setUint32(24, id, true);
159
+ view.setUint32(28, 1, true);
160
+ if (existing) {
161
+ await this.write(Number(existing) + 8, record.subarray(8, 24));
162
+ this.paddedSize += Math.ceil(value.size / 4) * 4 - Math.ceil(previousSize / 4) * 4;
163
+ return;
164
+ }
165
+ const position = this.allocate(32);
166
+ await this.write(position, record);
167
+ if (this.last) {
168
+ view.setFloat64(0, position, true);
169
+ await this.write(this.last, record.subarray(0, 8));
170
+ }
171
+ else
172
+ this.first = position;
173
+ this.last = position;
174
+ await this.index.set(BigInt(id), BigInt(position));
175
+ this.check();
176
+ this.count++;
177
+ this.paddedSize += Math.ceil(value.size / 4) * 4;
178
+ }
179
+ async delete(id) {
180
+ this.check();
181
+ if (this.fallback) {
182
+ const previous = this.fallback.get(id);
183
+ if (!previous)
184
+ return false;
185
+ this.fallback.delete(id);
186
+ this.paddedSize -= Math.ceil(previous.size / 4) * 4;
187
+ return true;
188
+ }
189
+ const position = await this.index.get(BigInt(id));
190
+ this.check();
191
+ if (!position)
192
+ return false;
193
+ const previousSize = new Binary(await this.read(Number(position) + 16, 8)).f64(0);
194
+ await this.write(Number(position) + 28, new Uint8Array(4));
195
+ await this.index.set(BigInt(id), 0n);
196
+ this.check();
197
+ this.count--;
198
+ this.paddedSize -= Math.ceil(previousSize / 4) * 4;
199
+ return true;
200
+ }
201
+ async *entries() {
202
+ this.check();
203
+ if (this.fallback) {
204
+ for (const entry of this.fallback) {
205
+ this.check();
206
+ yield entry;
207
+ }
208
+ return;
209
+ }
210
+ let position = this.first;
211
+ while (position) {
212
+ const record = new Binary(await this.read(position, 32));
213
+ position = record.f64(0);
214
+ if (record.u32(28))
215
+ yield [record.u32(24), new BiffPropertyRange(this.root, record.f64(8), record.f64(16))];
216
+ }
217
+ this.check();
218
+ }
219
+ close() {
220
+ if (!this.closing) {
221
+ this.closed = true;
222
+ this.fallback?.clear();
223
+ this.closing = this.pending.then(async () => { await this.storage?.close(); });
224
+ }
225
+ return this.closing;
226
+ }
227
+ }
@@ -0,0 +1,12 @@
1
+ import type { MetadataNode } from "../spreadsheet-engine/codecs/xlsx-write-support.js";
2
+ interface CommentGeometry {
3
+ readonly style: Readonly<Record<string, string>>;
4
+ readonly anchor: string;
5
+ readonly flags: readonly {
6
+ name: string;
7
+ text: string;
8
+ }[];
9
+ }
10
+ /** Retain only scalar geometry for uniquely identified VML notes, never shape relationships or executable markup. */
11
+ export declare function readCommentGeometry(roots: readonly (MetadataNode | undefined)[], charge: (amount?: number) => void): ReadonlyMap<string, CommentGeometry | undefined>;
12
+ export {};
@@ -0,0 +1,71 @@
1
+ /** Retain only scalar geometry for uniquely identified VML notes, never shape relationships or executable markup. */
2
+ export function readCommentGeometry(roots, charge) {
3
+ const result = new Map();
4
+ const vml = "urn:schemas-microsoft-com:vml", excel = "urn:schemas-microsoft-com:office:excel";
5
+ for (const root of roots)
6
+ for (const shape of root?.children ?? []) {
7
+ charge();
8
+ if (shape.name !== "shape" || shape.namespace !== vml)
9
+ continue;
10
+ const data = shape.children.find(n => { charge(); return n.name === "ClientData" && n.namespace === excel && n.attributes.ObjectType === "Note"; });
11
+ if (!data)
12
+ continue;
13
+ const fields = new Map();
14
+ let duplicate = false;
15
+ for (const field of data.children) {
16
+ charge();
17
+ if (field.namespace !== excel)
18
+ continue;
19
+ duplicate ||= fields.has(field.name);
20
+ fields.set(field.name, field);
21
+ }
22
+ const rowText = fields.get("Row")?.text.trim(), columnText = fields.get("Column")?.text.trim();
23
+ if (!rowText || !columnText)
24
+ continue;
25
+ const row = Number(rowText), column = Number(columnText);
26
+ if (!Number.isInteger(row) || row < 0 || row >= 1048576 || !Number.isInteger(column) || column < 0 || column >= 16384)
27
+ continue;
28
+ const key = `${row}:${column}`;
29
+ if (result.has(key)) {
30
+ result.set(key, undefined);
31
+ continue;
32
+ }
33
+ // An invalid or duplicate source cannot lend its geometry to another note.
34
+ result.set(key, undefined);
35
+ const anchor = fields.get("Anchor")?.text, coordinates = anchor?.split(",").map(s => s.trim());
36
+ if (duplicate || !coordinates || coordinates.length !== 8 || coordinates.some(s => !s || !Number.isSafeInteger(Number(s)) || Number(s) < 0))
37
+ continue;
38
+ if ([0, 4].some(i => Number(coordinates[i]) >= 16384) || [2, 6].some(i => Number(coordinates[i]) >= 1048576))
39
+ continue;
40
+ const style = {};
41
+ for (const declaration of (shape.attributes.style ?? "").split(";")) {
42
+ charge();
43
+ const colon = declaration.indexOf(":");
44
+ if (colon < 0)
45
+ continue;
46
+ const name = declaration.slice(0, colon).trim().toLowerCase(), value = declaration.slice(colon + 1).trim().toLowerCase();
47
+ if (["margin-left", "margin-top", "width", "height"].includes(name)) {
48
+ const unit = ["pt", "px", "in", "cm", "mm", "pc"].find(u => value.endsWith(u));
49
+ const scalar = unit ? value.slice(0, -unit.length).trim() : value;
50
+ const number = Number(scalar);
51
+ if (scalar && Number.isFinite(number) && (unit || number === 0) && (!["width", "height"].includes(name) || number >= 0))
52
+ style[name] = `${number}${unit ?? ""}`;
53
+ }
54
+ else if (name === "visibility" && ["visible", "hidden"].includes(value))
55
+ style[name] = value;
56
+ else if (name === "z-index" && value && Number.isSafeInteger(Number(value)))
57
+ style[name] = value;
58
+ }
59
+ const flags = [];
60
+ for (const name of ["MoveWithCells", "SizeWithCells", "Visible", "AutoFill"]) {
61
+ const field = fields.get(name);
62
+ if (!field)
63
+ continue;
64
+ const text = field.text.trim();
65
+ if (["", "true", "false", "t", "f", "1", "0"].includes(text.toLowerCase()))
66
+ flags.push({ name, text });
67
+ }
68
+ result.set(key, { style, anchor: coordinates.join(", "), flags });
69
+ }
70
+ return result;
71
+ }
@@ -6,5 +6,5 @@ type SourceNode = XmlElement | MetadataNode;
6
6
  export declare function gnode(name: string, attributes?: Readonly<Record<string, string | number>>, children?: readonly ImportedValue[], text?: string): ImportedValue;
7
7
  /** Translate measured sheet metadata into the existing workbook codec model. */
8
8
  export declare function readXlsxMetadata(sheet: SourceNode): readonly UnsupportedRecord[];
9
- export declare function readXlsxComments(comments: XmlElement, context: CapabilityContext): UnsupportedRecord;
9
+ export declare function readXlsxComments(comments: XmlElement, context: CapabilityContext, drawings?: readonly XmlElement[]): UnsupportedRecord;
10
10
  export {};
@@ -168,7 +168,31 @@ export function readXlsxMetadata(sheet) {
168
168
  }
169
169
  return records;
170
170
  }
171
- export function readXlsxComments(comments, context) {
171
+ export function readXlsxComments(comments, context, drawings = []) {
172
+ const printing = new Map();
173
+ const excel = "urn:schemas-microsoft-com:office:excel";
174
+ for (const drawing of drawings)
175
+ for (const shape of drawing.children) {
176
+ context.signal.throwIfAborted();
177
+ if (shape.namespace !== "urn:schemas-microsoft-com:vml" || shape.localName !== "shape")
178
+ continue;
179
+ for (const data of shape.children) {
180
+ if (data.namespace !== excel || data.localName !== "ClientData" || attribute(data, "ObjectType") !== "Note")
181
+ continue;
182
+ const fields = data.children.filter(n => n.namespace === excel);
183
+ const rowText = fields.find(n => n.localName === "Row")?.text.trim(), columnText = fields.find(n => n.localName === "Column")?.text.trim();
184
+ if (!rowText || !columnText)
185
+ continue;
186
+ const row = Number(rowText), column = Number(columnText);
187
+ if (!Number.isInteger(row) || row < 0 || row >= 1048576 || !Number.isInteger(column) || column < 0 || column >= 16384)
188
+ continue;
189
+ const key = formatA1(row, column);
190
+ const flags = fields.filter(n => n.localName === "PrintObject");
191
+ const ambiguous = printing.has(key) || flags.length > 1 || fields.filter(n => n.localName === "Row").length > 1 || fields.filter(n => n.localName === "Column").length > 1;
192
+ const value = flags[0]?.text.trim().toLowerCase();
193
+ printing.set(key, ambiguous ? undefined : ["false", "f", "0"].includes(value ?? "") ? 0 : 1);
194
+ }
195
+ }
172
196
  const authors = comments.children.find(c => c.localName === "authors")?.children
173
197
  .filter(c => c.localName === "author").map(c => decodeXlsxString(c.text)) ?? [];
174
198
  const objects = [];
@@ -179,13 +203,14 @@ export function readXlsxComments(comments, context) {
179
203
  const ref = attribute(comment, "ref");
180
204
  if (!ref)
181
205
  continue;
206
+ const position = parseA1(ref.split(":")[0]);
182
207
  const author = authors[numeric(attribute(comment, "authorId"), 0)];
183
208
  const text = readXlsxString(comment.children.find(c => c.localName === "text"), context);
184
209
  // The Gnumeric markup codec cannot carry colon-bearing font names.
185
210
  // The original comments part retains those rich nodes for XLSX transport.
186
211
  const representable = text.richText?.every(run => typeof run.attributes.family !== "string" ||
187
212
  !run.attributes.family.includes(":"));
188
- objects.push(gnode("CellComment", { ObjectBound: ref.split(":")[0], ObjectOffset: "1 0 1 0", Direction: 17, Print: 1,
213
+ objects.push(gnode("CellComment", { ObjectBound: ref.split(":")[0], ObjectOffset: "1 0 1 0", Direction: 17, Print: printing.get(formatA1(position.row, position.column)) ?? 1,
189
214
  ...(author !== undefined ? { Author: author } : {}), Text: text.value,
190
215
  ...(text.richText?.length && representable ? { TextFormat: writeGnumericRichText(text.richText) } : {}) }));
191
216
  }
@@ -1,3 +1,4 @@
1
+ import { readCommentGeometry } from "./comment-geometry.js";
1
2
  import { parseA1, formatA1 } from "../spreadsheet-ast/index.js";
2
3
  import { SsconvertError } from "../spreadsheet-engine/contracts.js";
3
4
  import { escapeXlsx, metadataNode, writeRichString } from "../spreadsheet-engine/codecs/xlsx-write-support.js";
@@ -176,11 +177,18 @@ export async function writeXlsxSheetMetadata(sheet, number, xml, context, namesp
176
177
  if (comments.length)
177
178
  parts.push({ name: `comments${number}.xml`, relation: "comments", type: "application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml",
178
179
  content: xml("comments", { xmlns: namespace }, xml("authors", {}, authors.map(a => xml("author", {}, escapeXlsx(encodeXlsxString(a)))).join("")) + xml("commentList", {}, comments.map(comment => xml("comment", { ref: comment.attributes.ObjectBound?.split(":")[0] ?? "A1", authorId: comment.attributes.Author === undefined ? undefined : authors.indexOf(comment.attributes.Author) }, commentText(comment))).join(""))) });
180
+ const geometries = readCommentGeometry(records.map(r => r.node), charge);
179
181
  if (comments.length)
180
182
  parts.push({ name: `drawings/vmlDrawing${number}.vml`, relation: "vmlDrawing", type: "application/vnd.openxmlformats-officedocument.vmlDrawing",
181
183
  content: xml("xml", { "xmlns:v": "urn:schemas-microsoft-com:vml", "xmlns:o": "urn:schemas-microsoft-com:office:office", "xmlns:x": "urn:schemas-microsoft-com:office:excel" }, xml("v:shapetype", { id: "_x0000_t202" }) + comments.map((comment, index) => {
182
184
  const position = parseA1(comment.attributes.ObjectBound?.split(":")[0] ?? "A1");
183
- return xml("v:shape", { type: "#_x0000_t202", fillcolor: "#ffffc0", style: `position:absolute;margin-left:${((position.column + 1) * 48).toFixed(2)}pt;margin-top:${(position.row * 12.75).toFixed(2)}pt;width:0.00pt;height:0.00pt;z-index:${index + 1};visibility:hidden;` }, xml("x:ClientData", { ObjectType: "Note" }, xml("x:Anchor", {}, `${position.column + 1}, 15, ${position.row}, 10, ${position.column + 3}, 15, ${position.row + 4}, 4`) + xml("x:MoveWithCells") + xml("x:SizeWithCells") + xml("x:AutoFill", {}, "False") +
185
+ const retained = position && (!comment.attributes.ObjectOffset || comment.attributes.ObjectOffset === "1 0 1 0")
186
+ ? geometries.get(`${position.row}:${position.column}`) : undefined;
187
+ const style = { position: "absolute", "margin-left": `${((position.column + 1) * 48).toFixed(2)}pt`,
188
+ "margin-top": `${(position.row * 12.75).toFixed(2)}pt`, width: "0.00pt", height: "0.00pt", "z-index": String(index + 1), visibility: "hidden", ...retained?.style };
189
+ return xml("v:shape", { type: "#_x0000_t202", fillcolor: "#ffffc0", style: Object.entries(style).map(([key, value]) => `${key}:${value};`).join("") }, xml("x:ClientData", { ObjectType: "Note" }, xml("x:Anchor", {}, retained?.anchor ?? `${position.column + 1}, 15, ${position.row}, 10, ${position.column + 3}, 15, ${position.row + 4}, 4`) +
190
+ (retained ? retained.flags.map(flag => xml(`x:${flag.name}`, {}, escapeXlsx(flag.text))).join("") : xml("x:MoveWithCells") + xml("x:SizeWithCells") + xml("x:AutoFill", {}, "False")) +
191
+ xml("x:PrintObject", {}, ["0", "false", "f"].includes((comment.attributes.Print ?? "1").toLowerCase()) ? "False" : "True") +
184
192
  xml("x:Row", {}, String(position.row)) + xml("x:Column", {}, String(position.column))));
185
193
  }).join("")) });
186
194
  if (objects.children.every(n => ["CellComment", "GnmCellComment"].includes(n.name)))
@@ -1006,8 +1006,7 @@ export async function readXlsx(bytes, context, sourceMode = false) {
1006
1006
  if (comments)
1007
1007
  comments = await recognize(comments, "xlsx_comments_dtd", context);
1008
1008
  records.push(...readXlsxMetadata(source));
1009
- if (comments)
1010
- records.push(readXlsxComments(comments, context));
1009
+ const noteDrawings = [];
1011
1010
  for (const extension of children(child(source, "extLst"), "ext")) {
1012
1011
  if (attr(extension, "uri") === undefined)
1013
1012
  await context.diagnostic?.({ severity: "warning", code: "xlsx-extension",
@@ -1023,9 +1022,15 @@ export async function readXlsx(bytes, context, sourceMode = false) {
1023
1022
  const referencedDrawing = ["drawing", "legacyDrawing", "legacyDrawingHF"].some(type => children(source, type)
1024
1023
  .some(node => attr(node, "id", relationships) === part.id));
1025
1024
  if (["comments", "pivotTable"].some(type => part.type === relationships + "/" + type)
1026
- || referencedDrawing && ["drawing", "vmlDrawing"].some(type => part.type === relationships + "/" + type))
1027
- records.push(record(await opc.document(part.target), part.target));
1025
+ || referencedDrawing && ["drawing", "vmlDrawing"].some(type => part.type === relationships + "/" + type)) {
1026
+ const document = await opc.document(part.target);
1027
+ records.push(record(document, part.target));
1028
+ if (part.type === relationships + "/vmlDrawing" && children(source, "legacyDrawing").some(node => attr(node, "id", relationships) === part.id))
1029
+ noteDrawings.push(document);
1030
+ }
1028
1031
  }
1032
+ if (comments)
1033
+ records.push(readXlsxComments(comments, context, noteDrawings));
1029
1034
  const visibility = attr(sheetNode, "state");
1030
1035
  const sheetView = child(child(source, "sheetViews"), "sheetView");
1031
1036
  const viewAttributes = {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@poe-platform/safe-bash",
3
- "version": "0.1.814",
3
+ "version": "0.1.816",
4
4
  "description": "Extensible virtual shell with pluggable filesystems and streaming commands",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -1407,7 +1407,7 @@
1407
1407
  "access": "public"
1408
1408
  },
1409
1409
  "dependencies": {
1410
- "@poe-platform/safe-fs": "0.1.814",
1410
+ "@poe-platform/safe-fs": "0.1.816",
1411
1411
  "pdf-lib": "1.17.1",
1412
1412
  "@types/node": "^25.2.2",
1413
1413
  "@formatjs/intl-numberformat": "9.4.0",
@@ -1719,6 +1719,7 @@
1719
1719
  "./dist/safe-bash-command-html-to-markdown/options.js",
1720
1720
  "./dist/safe-bash-command-html-to-markdown/parser.js",
1721
1721
  "./dist/safe-bash-command-html-to-markdown/render.js",
1722
+ "./dist/safe-bash-command-html-to-markdown/stored-destination.js",
1722
1723
  "./dist/safe-bash-command-html-to-markdown/stored-text.js",
1723
1724
  "./dist/safe-bash-command-html-to-markdown/text.js",
1724
1725
  "./dist/safe-bash-command-htmlq/index.js",
@@ -2462,7 +2463,6 @@
2462
2463
  "./dist/safe-bash-zip-engine/zip/volumes.js",
2463
2464
  "./dist/safe-bash-zip-engine/zip/zip64.js",
2464
2465
  "./dist/safe-bash/chunks/chunk-5AVCMU3K.js",
2465
- "./dist/safe-bash/chunks/chunk-5JCZEXEM.js",
2466
2466
  "./dist/safe-bash/chunks/chunk-5QZXYRUF.js",
2467
2467
  "./dist/safe-bash/chunks/chunk-5ZS237LB.js",
2468
2468
  "./dist/safe-bash/chunks/chunk-A64DHHCT.js",
@@ -2477,6 +2477,7 @@
2477
2477
  "./dist/safe-bash/chunks/chunk-Q3BXARJD.js",
2478
2478
  "./dist/safe-bash/chunks/chunk-R6ASA7FI.js",
2479
2479
  "./dist/safe-bash/chunks/chunk-RJ7D3WML.js",
2480
+ "./dist/safe-bash/chunks/chunk-SXSEF5E2.js",
2480
2481
  "./dist/safe-bash/chunks/chunk-ZMTSEPTF.js",
2481
2482
  "./dist/safe-bash/commands/apply-patch/index.js",
2482
2483
  "./dist/safe-bash/commands/archive/index.js",
@@ -2845,6 +2846,7 @@
2845
2846
  "./dist/spreadsheet-format-xls/biff-property-range.js",
2846
2847
  "./dist/spreadsheet-format-xls/biff-property-text.js",
2847
2848
  "./dist/spreadsheet-format-xls/biff-property-transcode.js",
2849
+ "./dist/spreadsheet-format-xls/biff-property-values.js",
2848
2850
  "./dist/spreadsheet-format-xls/biff-range.js",
2849
2851
  "./dist/spreadsheet-format-xls/biff-record-storage.js",
2850
2852
  "./dist/spreadsheet-format-xls/biff-shared-strings.js",
@@ -2865,6 +2867,7 @@
2865
2867
  "./dist/spreadsheet-format-xlsx/index.js",
2866
2868
  "./dist/spreadsheet-format-xlsx/xlsx.js",
2867
2869
  "./dist/xlsx-ast/cell-storage.js",
2870
+ "./dist/xlsx-ast/comment-geometry.js",
2868
2871
  "./dist/xlsx-ast/external-link-export.js",
2869
2872
  "./dist/xlsx-ast/external-links.js",
2870
2873
  "./dist/xlsx-ast/formula-semantics.js",