@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
@@ -1,11 +1,12 @@
1
+ import { BiffMutablePropertyValues } from './biff-property-values.js';
1
2
  import { createBiffPropertyNameEncoder } from "./biff-property-name.js";
2
3
  import { readBiffPropertyText } from "./biff-property-text.js";
3
- import { stageWideBiffProperty } from './biff-property-transcode.js';
4
+ import { wideBiffPropertyBytes } from './biff-property-transcode.js';
4
5
  import { stagePropertyBytes, propertyChunks } from './biff-property-bytes.js';
5
6
  import { SsconvertError } from "../spreadsheet-engine/contracts.js";
6
7
  import { Binary, invalidBiff } from "./biff-binary.js";
7
8
  import { biffPropertyFields, biffPropertyFormats, readBiffProperties } from "./biff-properties.js";
8
- import { propertyRange, readPropertySectionRanges, readPropertyValueRanges } from "./biff-property-range.js";
9
+ import { propertyRange, readPropertySectionRanges, withPropertyValueRanges } from "./biff-property-range.js";
9
10
  /** Rebuild offsets around original opaque spans. Never transcode their codepage. */
10
11
  export async function mergeBiffProperties(book, streams, handled, context, charge, allocate, staged) {
11
12
  const canonical = (name) => ["\u0005SummaryInformation", "\u0005DocumentSummaryInformation"].find(target => target.toUpperCase() === name.toUpperCase());
@@ -89,8 +90,16 @@ export async function mergeBiffProperties(book, streams, handled, context, charg
89
90
  const file = propertyRange(input, context), sections = [];
90
91
  for await (const section of readPropertySectionRanges(file, admit, charge, context)) {
91
92
  const bytes = file.slice(section.offset, section.end - section.offset);
92
- sections.push({ ...section, bytes, ...(biffPropertyFields.has(section.guid) || section.guid === biffPropertyFormats.custom ?
93
- { values: await readPropertyValueRanges(bytes, admit, charge, context) } : {}) });
93
+ let values;
94
+ if (biffPropertyFields.has(section.guid) || section.guid === biffPropertyFormats.custom) {
95
+ values = new BiffMutablePropertyValues(context, charge);
96
+ temporarySources.push(values);
97
+ await withPropertyValueRanges(bytes, admit, charge, context, async (source) => {
98
+ for await (const [id, value] of source.entries())
99
+ await values.set(id, value);
100
+ });
101
+ }
102
+ sections.push({ ...section, bytes, ...(values ? { values } : {}) });
94
103
  }
95
104
  return sections;
96
105
  };
@@ -122,10 +131,10 @@ export async function mergeBiffProperties(book, streams, handled, context, charg
122
131
  }
123
132
  };
124
133
  const dictionary = async function* (section, names = true) {
125
- const data = section.values?.get(0);
134
+ const data = await section.values?.get(0);
126
135
  if (!data)
127
136
  return;
128
- const cp = await section.values?.get(1)?.u16(4) ?? 1252, count = await data.u32(0);
137
+ const cp = await (await section.values?.get(1))?.u16(4) ?? 1252, count = await data.u32(0);
129
138
  data.check(4, count * 9);
130
139
  if (names) {
131
140
  charge(data.size);
@@ -152,6 +161,12 @@ export async function mergeBiffProperties(book, streams, handled, context, charg
152
161
  yield { id, name, bytes: data.slice(start, at - start) };
153
162
  }
154
163
  };
164
+ const reserve = staged?.reserve ?? ((length) => {
165
+ charge(length);
166
+ if (length > 0xffffffff || length > context.limits.outputBytes)
167
+ throw new SsconvertError("resource-limit", "ssconvert BIFF property output bytes limit exceeded");
168
+ return length;
169
+ });
155
170
  const writeDictionary = async (section, plan) => {
156
171
  const output = { length: plan.length, async *chunks() {
157
172
  const header = new Uint8Array(4);
@@ -163,15 +178,13 @@ export async function mergeBiffProperties(book, streams, handled, context, charg
163
178
  yield* chunks(entry.bytes);
164
179
  }
165
180
  if (plan.append) {
166
- charge(plan.append.size);
167
- yield* chunks(plan.append);
181
+ charge(plan.append.length);
182
+ yield* propertyChunks(plan.append);
168
183
  }
169
184
  } };
170
185
  if (staged) {
171
186
  staged.reserve(plan.length);
172
- const source = await stagePropertyBytes(output, context);
173
- temporarySources.push(source);
174
- section.values.set(0, propertyRange(source, context));
187
+ await section.values.set(0, { size: plan.length, chunks: output.chunks });
175
188
  }
176
189
  else {
177
190
  const bytes = allocate(plan.length);
@@ -180,11 +193,11 @@ export async function mergeBiffProperties(book, streams, handled, context, charg
180
193
  bytes.set(part, at);
181
194
  at += part.length;
182
195
  }
183
- section.values.set(0, propertyRange(bytes, context));
196
+ await section.values.set(0, propertyRange(bytes, context));
184
197
  }
185
198
  };
186
199
  const remove = async (section, id) => {
187
- section.values.delete(id);
200
+ await section.values.delete(id);
188
201
  if (section.guid === biffPropertyFormats.custom) {
189
202
  let length = 4, count = 0;
190
203
  for await (const entry of dictionary(section))
@@ -198,18 +211,16 @@ export async function mergeBiffProperties(book, streams, handled, context, charg
198
211
  const take = async (property) => {
199
212
  charge(fresh.get(property.stream).length);
200
213
  const section = fresh.get(property.stream).find(section => section.offset === property.section);
201
- const value = section.values.get(property.id);
214
+ const value = (await section.values.get(property.id));
202
215
  await remove(section, property.id);
203
216
  pending.delete(property.key);
204
217
  return value;
205
218
  };
206
219
  const wide = async (source, section) => {
207
- if (await source.u32(0) !== 30 || (await section.values.get(1)?.u16(4) ?? 1252) === 65001)
220
+ if (await source.u32(0) !== 30 || (await (await section.values.get(1))?.u16(4) ?? 1252) === 65001)
208
221
  return source;
209
222
  if (staged) {
210
- const output = await stageWideBiffProperty(source, context, charge, staged.reserve);
211
- temporarySources.push(output);
212
- return propertyRange(output, context);
223
+ return wideBiffPropertyBytes(source, context, charge, staged.reserve);
213
224
  }
214
225
  const data = await materialize(source);
215
226
  const value = new TextDecoder("utf-8", { fatal: true, ignoreBOM: true }).decode(data.slice(8, data.u32(4) - 1));
@@ -229,9 +240,11 @@ export async function mergeBiffProperties(book, streams, handled, context, charg
229
240
  };
230
241
  for (const [name, snapshot] of snapshots) {
231
242
  const seen = new Set();
232
- let modeled = snapshot.modeled;
233
- if (!modeled) {
234
- modeled = [];
243
+ function* modeled() {
244
+ if (snapshot.modeled) {
245
+ yield* snapshot.modeled;
246
+ return;
247
+ }
235
248
  // SummaryInformation is read first. A legacy document-only snapshot lacks
236
249
  // that earlier stream's ownership decisions: infer only unchanged values.
237
250
  for (const property of original.values()) {
@@ -241,11 +254,11 @@ export async function mergeBiffProperties(book, streams, handled, context, charg
241
254
  if (name === "\u0005SummaryInformation" || snapshots.has("\u0005SummaryInformation") ||
242
255
  Object.hasOwn(book.properties ?? {}, property.key) && same(property.value, book.properties?.[property.key])) {
243
256
  admit(1);
244
- modeled.push([property.section, property.id, property.key]);
257
+ yield [property.section, property.id, property.key];
245
258
  }
246
259
  }
247
260
  }
248
- for (const entry of modeled) {
261
+ for (const entry of modeled()) {
249
262
  admit(1);
250
263
  if (!Array.isArray(entry) || entry.length !== 3 || typeof entry[0] !== "number" || typeof entry[1] !== "number" || typeof entry[2] !== "string")
251
264
  invalidBiff("invalid retained property identity");
@@ -265,7 +278,7 @@ export async function mergeBiffProperties(book, streams, handled, context, charg
265
278
  await take(replacement);
266
279
  }
267
280
  else if (replacement)
268
- section.values.set(id, await wide(await take(replacement), section));
281
+ await section.values.set(id, await wide(await take(replacement), section));
269
282
  }
270
283
  }
271
284
  const encodeName = createBiffPropertyNameEncoder(context, charge, accountText);
@@ -301,13 +314,13 @@ export async function mergeBiffProperties(book, streams, handled, context, charg
301
314
  await warn(property.key, "opaque name collision");
302
315
  continue;
303
316
  }
304
- const cp = await values.get(1)?.u16(4) ?? 1252, text = encodeName(property.key, cp);
317
+ const cp = await (await values.get(1))?.u16(4) ?? 1252, text = encodeName(property.key, cp);
305
318
  if (!text) {
306
319
  await warn(property.key, "name cannot be encoded in the original codepage");
307
320
  continue;
308
321
  }
309
322
  id = maximumId;
310
- for (const key of values.keys())
323
+ for await (const [key] of values.entries())
311
324
  id = Math.max(id, key);
312
325
  id++;
313
326
  if (id > 0xffffffff) {
@@ -324,52 +337,29 @@ export async function mergeBiffProperties(book, streams, handled, context, charg
324
337
  if (length > size)
325
338
  yield new Uint8Array(length - size);
326
339
  } };
327
- let bytes;
328
- if (staged) {
329
- staged.reserve(length);
330
- const source = await stagePropertyBytes(entry, context);
331
- temporarySources.push(source);
332
- bytes = propertyRange(source, context);
333
- }
334
- else {
335
- const data = allocate(length);
336
- let at = 0;
337
- for (const part of entry.chunks()) {
338
- data.set(part, at);
339
- at += part.length;
340
- }
341
- bytes = propertyRange(data, context);
342
- }
343
- await writeDictionary(target, { length: dictionaryLength + bytes.size, count: count + 1, append: bytes });
340
+ // Preserve admission for the entry while writing its chunks directly into
341
+ // the rebuilt dictionary, without a separate store per inserted name.
342
+ reserve(length);
343
+ await writeDictionary(target, { length: dictionaryLength + length, count: count + 1, append: entry });
344
344
  }
345
- else if (values.has(id)) {
345
+ else if (await values.get(id)) {
346
346
  await warn(property.key, "opaque property ID collision");
347
347
  continue;
348
348
  }
349
- values.set(id, await wide(value, target));
349
+ await values.set(id, await wide(value, target));
350
350
  }
351
- const reserve = staged?.reserve ?? ((length) => {
352
- charge(length);
353
- if (length > 0xffffffff || length > context.limits.outputBytes)
354
- throw new SsconvertError("resource-limit", "ssconvert BIFF property output bytes limit exceeded");
355
- return length;
356
- });
357
351
  const encodeSection = (section) => {
358
352
  if (!section.values)
359
353
  return { length: section.bytes.size, chunks: () => chunks(section.bytes) };
360
354
  const values = section.values;
361
- let length = 8 + values.size * 8;
362
- for (const value of values.values())
363
- length += Math.ceil(value.size / 4) * 4;
364
- // Buffered output charges the section size here, as the old allocation did.
365
- reserve(length);
355
+ const length = values.serializedSize;
366
356
  return { length, async *chunks() {
367
357
  const header = new Uint8Array(8), view = new DataView(header.buffer);
368
358
  view.setUint32(0, length, true);
369
359
  view.setUint32(4, values.size, true);
370
360
  yield header;
371
361
  let at = 8 + values.size * 8;
372
- for (const [id, value] of values) {
362
+ for await (const [id, value] of values.entries()) {
373
363
  charge(value.size);
374
364
  const entry = new Uint8Array(8), view = new DataView(entry.buffer);
375
365
  view.setUint32(0, id, true);
@@ -377,7 +367,7 @@ export async function mergeBiffProperties(book, streams, handled, context, charg
377
367
  yield entry;
378
368
  at += Math.ceil(value.size / 4) * 4;
379
369
  }
380
- for (const value of values.values()) {
370
+ for await (const [, value] of values.entries()) {
381
371
  yield* chunks(value);
382
372
  const padding = (4 - value.size % 4) % 4;
383
373
  if (padding)
@@ -388,36 +378,61 @@ export async function mergeBiffProperties(book, streams, handled, context, charg
388
378
  for (const name of new Set([...streams.keys(), ...snapshots.keys()])) {
389
379
  for (const section of fresh.get(name) ?? [])
390
380
  charge(1 + section.values.size);
391
- const remaining = fresh.get(name)?.filter(section => [...section.values.keys()].some(id => id >= 2)) ?? [];
392
- if (!old.has(name) && remaining.some(section => section.guid === biffPropertyFormats.custom) &&
393
- !remaining.some(section => section.guid === biffPropertyFormats.document)) {
394
- const builtin = fresh.get(name)?.find(section => section.guid === biffPropertyFormats.document);
381
+ const remaining = async function* () {
382
+ for (const section of fresh.get(name) ?? []) {
383
+ charge(1);
384
+ for await (const [id] of section.values.entries()) {
385
+ charge(1);
386
+ if (id >= 2) {
387
+ yield section;
388
+ break;
389
+ }
390
+ }
391
+ }
392
+ };
393
+ let custom = false, document = false;
394
+ if (!old.has(name))
395
+ for await (const section of remaining()) {
396
+ custom ||= section.guid === biffPropertyFormats.custom;
397
+ document ||= section.guid === biffPropertyFormats.document;
398
+ }
399
+ const builtin = custom && !document ? fresh.get(name)?.find(section => section.guid === biffPropertyFormats.document) : undefined;
400
+ const sections = async function* () {
401
+ yield* old.get(name) ?? [];
395
402
  if (builtin)
396
- remaining.unshift(builtin);
403
+ yield builtin;
404
+ yield* remaining();
405
+ };
406
+ let count = 0, length = 28;
407
+ for await (const section of sections()) {
408
+ charge(1);
409
+ count++;
410
+ const size = section.values?.serializedSize ?? section.bytes.size;
411
+ if (section.values)
412
+ reserve(size);
413
+ length += 20 + size;
397
414
  }
398
- const sections = [...old.get(name) ?? [], ...remaining];
399
- if (!sections.length) {
415
+ if (!count) {
400
416
  streams.delete(name);
401
417
  continue;
402
418
  }
403
- const bodies = sections.map(encodeSection), length = 28 + sections.length * 20 + bodies.reduce((sum, body) => sum + body.length, 0);
404
419
  const originalHeader = await (snapshots.get(name)?.bytes ?? propertyRange(streams.get(name), context)).read(0, 28);
405
420
  const output = { length, async *chunks() {
406
421
  const header = new Uint8Array(originalHeader);
407
- new DataView(header.buffer).setUint32(24, sections.length, true);
422
+ new DataView(header.buffer).setUint32(24, count, true);
408
423
  yield header;
409
- let at = 28 + sections.length * 20;
410
- for (let i = 0; i < sections.length; i++) {
424
+ let at = 28 + count * 20;
425
+ for await (const section of sections()) {
411
426
  charge(1);
412
427
  const entry = new Uint8Array(20), view = new DataView(entry.buffer);
413
428
  for (let j = 0; j < 16; j++)
414
- entry[j] = parseInt(sections[i].guid.slice(j * 2, j * 2 + 2), 16);
429
+ entry[j] = parseInt(section.guid.slice(j * 2, j * 2 + 2), 16);
415
430
  view.setUint32(16, at, true);
416
431
  yield entry;
417
- at += bodies[i].length;
432
+ at += section.values?.serializedSize ?? section.bytes.size;
418
433
  }
419
- for (const body of bodies)
420
- yield* body.chunks();
434
+ for await (const section of sections())
435
+ yield* encodeSection(section).chunks();
421
436
  } };
422
437
  if (staged) {
423
438
  reserve(length);
@@ -46,7 +46,7 @@ export async function readBiffProperties(streams, context, accountText, accountW
46
46
  accountWork(file.size);
47
47
  const sections = readPropertySectionRanges(file, admit, accountWork, context);
48
48
  let unknown = false;
49
- const modeled = [];
49
+ const modeled = retained ? [] : undefined;
50
50
  for await (const { guid, offset, end } of sections) {
51
51
  if (!biffPropertyFields.has(guid) && guid !== custom) {
52
52
  unknown = true;
@@ -140,7 +140,7 @@ export async function readBiffProperties(streams, context, accountText, accountW
140
140
  }
141
141
  accountText(key);
142
142
  properties[key] = value;
143
- modeled.push([offset, id, key]);
143
+ modeled?.push([offset, id, key]);
144
144
  observe?.({ stream: streamName, section: offset, id, key, value });
145
145
  }
146
146
  });
@@ -148,7 +148,7 @@ export async function readBiffProperties(streams, context, accountText, accountW
148
148
  unknown = true;
149
149
  });
150
150
  }
151
- if (unknown && retained) {
151
+ if (unknown && retained && modeled) {
152
152
  if (file.size * 2 > (context.limits.workbookTextBytes ?? context.limits.inputBytes * 2))
153
153
  throw new SsconvertError("resource-limit", "ssconvert BIFF property retention limit exceeded");
154
154
  let encoded = "";
@@ -1,5 +1,10 @@
1
1
  import type { CapabilityContext } from "../spreadsheet-engine/contracts.js";
2
2
  import type { BiffPropertyRange } from './biff-property-range.js';
3
3
  import type { BiffPropertySource } from './biff-encrypted-properties-write.js';
4
- /** Count UTF-16 units before staging; both passes retain only a bounded decoder window. */
4
+ /** Count UTF-16 units before serialization; both passes retain only a bounded decoder window. */
5
+ export declare function wideBiffPropertyBytes(source: BiffPropertyRange, context: CapabilityContext, charge: (amount: number) => void, reserve: (length: number) => number): Promise<{
6
+ size: number;
7
+ chunks(): AsyncIterable<Uint8Array>;
8
+ }>;
9
+ /** Convenience API for callers that need an independently owned range source. */
5
10
  export declare function stageWideBiffProperty(source: BiffPropertyRange, context: CapabilityContext, charge: (amount: number) => void, reserve: (length: number) => number): Promise<BiffPropertySource>;
@@ -1,20 +1,24 @@
1
1
  import { stagePropertyBytes } from './biff-property-bytes.js';
2
- /** Count UTF-16 units before staging; both passes retain only a bounded decoder window. */
3
- export async function stageWideBiffProperty(source, context, charge, reserve) {
2
+ /** Count UTF-16 units before serialization; both passes retain only a bounded decoder window. */
3
+ export async function wideBiffPropertyBytes(source, context, charge, reserve) {
4
4
  reserve(source.size);
5
5
  const text = source.slice(8, await source.u32(4) - 1);
6
6
  const parts = async function* () {
7
+ context.signal.throwIfAborted();
7
8
  const decoder = new TextDecoder('utf-8', { fatal: true, ignoreBOM: true });
8
9
  for (let at = 0; at < text.size;) {
10
+ context.signal.throwIfAborted();
9
11
  const bytes = await text.read(at, Math.min(8192, text.size - at));
10
12
  at += bytes.length;
11
13
  try {
14
+ context.signal.throwIfAborted();
12
15
  yield decoder.decode(bytes, { stream: true });
13
16
  }
14
17
  finally {
15
18
  bytes.fill(0);
16
19
  }
17
20
  }
21
+ context.signal.throwIfAborted();
18
22
  yield decoder.decode();
19
23
  };
20
24
  let units = 0;
@@ -22,7 +26,8 @@ export async function stageWideBiffProperty(source, context, charge, reserve) {
22
26
  units += part.length;
23
27
  charge(units);
24
28
  const length = reserve(8 + (units + 1) * 2);
25
- return stagePropertyBytes({ length, async *chunks() {
29
+ return { size: length, async *chunks() {
30
+ context.signal.throwIfAborted();
26
31
  const header = new Uint8Array(8), view = new DataView(header.buffer);
27
32
  view.setUint32(0, 31, true);
28
33
  view.setUint32(4, units + 1, true);
@@ -36,10 +41,16 @@ export async function stageWideBiffProperty(source, context, charge, reserve) {
36
41
  output.setUint16(i * 2, part.charCodeAt(at + i), true);
37
42
  yield buffer.subarray(0, size * 2);
38
43
  }
44
+ context.signal.throwIfAborted();
39
45
  yield new Uint8Array(2);
40
46
  }
41
47
  finally {
42
48
  buffer.fill(0);
43
49
  }
44
- } }, context);
50
+ } };
51
+ }
52
+ /** Convenience API for callers that need an independently owned range source. */
53
+ export async function stageWideBiffProperty(source, context, charge, reserve) {
54
+ const output = await wideBiffPropertyBytes(source, context, charge, reserve);
55
+ return stagePropertyBytes({ length: output.size, chunks: output.chunks }, context);
45
56
  }
@@ -0,0 +1,36 @@
1
+ import { type CapabilityContext } from "../spreadsheet-engine/contracts.js";
2
+ import { BiffPropertyRange } from './biff-property-range.js';
3
+ /** Mutable insertion order with immutable payload snapshots. Deleted payloads remain
4
+ * readable until close, so values can be moved between independently edited sections. */
5
+ export declare class BiffMutablePropertyValues {
6
+ private readonly context;
7
+ private readonly charge;
8
+ private readonly storage;
9
+ private readonly index;
10
+ private readonly fallback;
11
+ private pending;
12
+ private closing;
13
+ private closed;
14
+ private initialized;
15
+ private first;
16
+ private last;
17
+ private count;
18
+ private paddedSize;
19
+ private readonly root;
20
+ constructor(context: CapabilityContext, charge: (amount: number) => void);
21
+ get size(): number;
22
+ get serializedSize(): number;
23
+ private check;
24
+ private allocate;
25
+ private io;
26
+ private read;
27
+ private write;
28
+ get(id: number): Promise<BiffPropertyRange | undefined>;
29
+ set(id: number, value: BiffPropertyRange | {
30
+ readonly size: number;
31
+ chunks(): AsyncIterable<Uint8Array>;
32
+ }): Promise<void>;
33
+ delete(id: number): Promise<boolean>;
34
+ entries(): AsyncGenerator<readonly [number, BiffPropertyRange]>;
35
+ close(): Promise<void>;
36
+ }