@poe-platform/safe-bash 0.1.810 → 0.1.811

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 (248) hide show
  1. package/dist/audio-ast/flac-source.d.ts +13 -0
  2. package/dist/audio-ast/index.d.ts +1 -0
  3. package/dist/audio-ast/index.js +248 -179
  4. package/dist/json-ast/backed-json-parser.d.ts +12 -1
  5. package/dist/json-ast/index.d.ts +1 -1
  6. package/dist/office-xml/index.d.ts +1 -0
  7. package/dist/office-xml/retained-xml-edits.d.ts +22 -0
  8. package/dist/pdf-ast/cos/qpdf-json-document.d.ts +2 -1
  9. package/dist/pdf-ast/index.js +151 -56
  10. package/dist/pdf-ast/retained-document.d.ts +2 -0
  11. package/dist/safe-bash/audio-ast.browser.js +2 -1
  12. package/dist/safe-bash/chunks/{chunk-65TFMAZU.js → chunk-BUYRKFW2.js} +8 -35
  13. package/dist/safe-bash/chunks/{chunk-ZA5FQ34E.js → chunk-TPG55BAQ.js} +0 -2
  14. package/dist/safe-bash/command-chunks/{biff-ORSHM4YX-QYPGRDAZ.js → biff-3EFLKBAH-NYWZOYQS.js} +2141 -2136
  15. package/dist/safe-bash/command-chunks/{chunk-HEHGHIE2.js → chunk-22MOB45U.js} +6 -6
  16. package/dist/safe-bash/command-chunks/{chunk-6DEWZMOL.js → chunk-2CORNDGF.js} +2 -2
  17. package/dist/safe-bash/command-chunks/{chunk-6UHGIWFX.js → chunk-2ZFLMWOX.js} +1 -1
  18. package/dist/safe-bash/command-chunks/{chunk-HONWGFDA.js → chunk-33YCKZZX.js} +6 -6
  19. package/dist/safe-bash/command-chunks/{chunk-AXWPJRY6.js → chunk-36XGIPOG.js} +1 -1
  20. package/dist/safe-bash/command-chunks/{chunk-32ADKP5E.js → chunk-456PHA3L.js} +1 -1
  21. package/dist/safe-bash/command-chunks/{chunk-UJXP3T6R.js → chunk-4CKFNXRN.js} +1 -1
  22. package/dist/safe-bash/command-chunks/{chunk-5L6GHFRW.js → chunk-554Z6IKP.js} +2 -2
  23. package/dist/safe-bash/command-chunks/{chunk-ORZRWT62.js → chunk-56NYSX65.js} +9 -9
  24. package/dist/safe-bash/command-chunks/{chunk-53JP3S6H.js → chunk-5HPU7D36.js} +4 -4
  25. package/dist/safe-bash/command-chunks/{chunk-YTFWPJ3F.js → chunk-5LI2DLNZ.js} +26 -26
  26. package/dist/safe-bash/command-chunks/{chunk-CHR2OD2U.js → chunk-5MB64DWR.js} +9 -9
  27. package/dist/safe-bash/command-chunks/{chunk-3ZWBBS6U.js → chunk-5OO2P27R.js} +340 -34
  28. package/dist/safe-bash/command-chunks/{chunk-IC5GJI7E.js → chunk-5Q22ZLNC.js} +6 -6
  29. package/dist/safe-bash/command-chunks/{chunk-YO3V5RLY.js → chunk-6CCQI6XZ.js} +12 -12
  30. package/dist/safe-bash/command-chunks/{chunk-EO2IVGV7.js → chunk-6M6TM5Z5.js} +3 -3
  31. package/dist/safe-bash/command-chunks/{chunk-Z54Z3KRN.js → chunk-6QBMND4A.js} +1 -1
  32. package/dist/safe-bash/command-chunks/{chunk-INX4JMQ6.js → chunk-6VPQ3CDZ.js} +5 -5
  33. package/dist/safe-bash/command-chunks/{chunk-D5AYP2UM.js → chunk-72C3TZ2U.js} +25 -15
  34. package/dist/safe-bash/command-chunks/{chunk-VGXVN3BX.js → chunk-7GKKMNL6.js} +8 -8
  35. package/dist/safe-bash/command-chunks/{chunk-TZJC67W3.js → chunk-7PVHO47B.js} +6 -6
  36. package/dist/safe-bash/command-chunks/{chunk-CM3C7AXJ.js → chunk-A2CLZMQZ.js} +1 -1
  37. package/dist/safe-bash/command-chunks/{chunk-ASR27KHW.js → chunk-A5FZBR7X.js} +4 -4
  38. package/dist/safe-bash/command-chunks/{chunk-DMDHE5KC.js → chunk-AHA6IWAJ.js} +6 -6
  39. package/dist/safe-bash/command-chunks/{chunk-PTZ55XXN.js → chunk-APEWTWCC.js} +6 -6
  40. package/dist/safe-bash/command-chunks/{chunk-YUVH6CE4.js → chunk-ATTWQVR2.js} +17 -17
  41. package/dist/safe-bash/command-chunks/{chunk-JON5DB3Z.js → chunk-B5LDP7AA.js} +2 -2
  42. package/dist/safe-bash/command-chunks/{chunk-CHJL6JMU.js → chunk-COKYZUBW.js} +1 -1
  43. package/dist/safe-bash/command-chunks/{chunk-KCTV4NVX.js → chunk-CRV2Q3PB.js} +1 -1
  44. package/dist/safe-bash/command-chunks/{chunk-V3WXPCKN.js → chunk-CV7M2QJU.js} +7 -7
  45. package/dist/safe-bash/command-chunks/{chunk-VPDSQPSN.js → chunk-DM2CPMB4.js} +2 -2
  46. package/dist/safe-bash/command-chunks/{chunk-3DTDMEOP.js → chunk-EAGIJ4VW.js} +1 -1
  47. package/dist/safe-bash/command-chunks/{chunk-JW6CMBF2.js → chunk-EHSM5ZQS.js} +8 -8
  48. package/dist/safe-bash/command-chunks/{chunk-WIOH7ZQN.js → chunk-ENT3IV2G.js} +12 -12
  49. package/dist/safe-bash/command-chunks/{chunk-5IE4LJGB.js → chunk-EUT24Y5Z.js} +8 -8
  50. package/dist/safe-bash/command-chunks/{chunk-COKZFXHG.js → chunk-FIIAYCWS.js} +2 -2
  51. package/dist/safe-bash/command-chunks/{chunk-MWVFP2HY.js → chunk-GEM47B2P.js} +7 -7
  52. package/dist/safe-bash/command-chunks/{chunk-EHL6B34L.js → chunk-HDJVJTCK.js} +9 -9
  53. package/dist/safe-bash/command-chunks/{chunk-JMM3MNAY.js → chunk-HKATEVAP.js} +6 -6
  54. package/dist/safe-bash/command-chunks/{chunk-VWY3EAVQ.js → chunk-HTVIYLVB.js} +4 -4
  55. package/dist/safe-bash/command-chunks/{chunk-Z4QJMDK3.js → chunk-IT7TAC3F.js} +16 -16
  56. package/dist/safe-bash/command-chunks/{chunk-EWS4KYJE.js → chunk-JFYWVQ4V.js} +8 -8
  57. package/dist/safe-bash/command-chunks/{chunk-ZCX63QWA.js → chunk-JOCFI7TG.js} +1 -1
  58. package/dist/safe-bash/command-chunks/{chunk-F5WTH4O4.js → chunk-JQVHUSDD.js} +5 -5
  59. package/dist/safe-bash/command-chunks/{chunk-O4VJEGL6.js → chunk-K5GB2YMN.js} +10 -10
  60. package/dist/safe-bash/command-chunks/{chunk-27C3NT5V.js → chunk-KB7DUBVL.js} +5 -5
  61. package/dist/safe-bash/command-chunks/{chunk-4DZ32PI7.js → chunk-KCOJA7EM.js} +7 -7
  62. package/dist/safe-bash/command-chunks/{chunk-CAXJ4RLF.js → chunk-KJ4XXZIL.js} +12 -12
  63. package/dist/safe-bash/command-chunks/{chunk-BYZUOF6X.js → chunk-KL3OIBKB.js} +3742 -3726
  64. package/dist/safe-bash/command-chunks/{chunk-U6QHTC5J.js → chunk-L5MCW6CM.js} +4 -4
  65. package/dist/safe-bash/command-chunks/{chunk-LVL3A7YE.js → chunk-LCZDBW55.js} +5 -5
  66. package/dist/safe-bash/command-chunks/{chunk-DJVRDUCA.js → chunk-LXLLA4PM.js} +17 -17
  67. package/dist/safe-bash/command-chunks/{chunk-K7AGAS3K.js → chunk-M7QE2MN7.js} +6 -6
  68. package/dist/safe-bash/command-chunks/{chunk-SWT6ILF2.js → chunk-MPUHH2KR.js} +3 -3
  69. package/dist/safe-bash/command-chunks/{chunk-DC3OJLRB.js → chunk-NQDIT667.js} +5 -5
  70. package/dist/safe-bash/command-chunks/{chunk-LWZVDDJA.js → chunk-NUGQQDGE.js} +5 -1
  71. package/dist/safe-bash/command-chunks/{chunk-MFLQZLFR.js → chunk-OA75SGN2.js} +7 -7
  72. package/dist/safe-bash/command-chunks/{chunk-5LATYOF7.js → chunk-OEJM666F.js} +5 -5
  73. package/dist/safe-bash/command-chunks/{chunk-AF25YYIO.js → chunk-PMAM4N33.js} +9 -9
  74. package/dist/safe-bash/command-chunks/{chunk-KMMAJ6H6.js → chunk-PNGDJA6M.js} +2 -2
  75. package/dist/safe-bash/command-chunks/{chunk-62BHPSKJ.js → chunk-Q6S57NOQ.js} +7 -7
  76. package/dist/safe-bash/command-chunks/{chunk-KJ3PEDI2.js → chunk-Q73EMLLZ.js} +146 -4
  77. package/dist/safe-bash/command-chunks/{chunk-FXKBM5KJ.js → chunk-QC5RMGSA.js} +3 -3
  78. package/dist/safe-bash/command-chunks/{chunk-UQ6UIZMM.js → chunk-QD7ZRDUN.js} +1 -1
  79. package/dist/safe-bash/command-chunks/{chunk-JHUYZZGV.js → chunk-QYMEASQ6.js} +4 -4
  80. package/dist/safe-bash/command-chunks/{chunk-3GY5VDIX.js → chunk-QZZ73J2O.js} +6 -6
  81. package/dist/safe-bash/command-chunks/{chunk-S2CYIGWH.js → chunk-R6EGGK5M.js} +7 -7
  82. package/dist/safe-bash/command-chunks/{chunk-7AVN3OBH.js → chunk-RHYJVTJO.js} +2 -2
  83. package/dist/safe-bash/command-chunks/{chunk-EWGDSO6U.js → chunk-RID6VYS3.js} +8 -8
  84. package/dist/safe-bash/command-chunks/{chunk-MMBRBANA.js → chunk-RNSKXOG3.js} +6 -6
  85. package/dist/safe-bash/command-chunks/{chunk-D3ZRZTY5.js → chunk-RQIQ75W5.js} +5 -5
  86. package/dist/safe-bash/command-chunks/{chunk-DWKQPLRT.js → chunk-RRL3Y562.js} +11 -11
  87. package/dist/safe-bash/command-chunks/{chunk-NXCMXD74.js → chunk-S6R3IB36.js} +1 -1
  88. package/dist/safe-bash/command-chunks/{chunk-XUPKFHAQ.js → chunk-SDTPO2VV.js} +7 -7
  89. package/dist/safe-bash/command-chunks/{chunk-PIAGKRFW.js → chunk-SPLOIABU.js} +3 -3
  90. package/dist/safe-bash/command-chunks/{chunk-WLTJDNSQ.js → chunk-TVH4JORU.js} +3 -3
  91. package/dist/safe-bash/command-chunks/{chunk-6XVMWFHD.js → chunk-TW73OXPR.js} +6 -6
  92. package/dist/safe-bash/command-chunks/{chunk-SFO43CID.js → chunk-UAXSE3XE.js} +5 -5
  93. package/dist/safe-bash/command-chunks/{chunk-K35BSUHO.js → chunk-UYWSIIUX.js} +7 -7
  94. package/dist/safe-bash/command-chunks/{chunk-DCD32BEY.js → chunk-VU3EQF7F.js} +91 -53
  95. package/dist/safe-bash/command-chunks/{chunk-2E2YEDVB.js → chunk-W5YSINXC.js} +6 -6
  96. package/dist/safe-bash/command-chunks/{chunk-EYNT4OEJ.js → chunk-WGG6G2KG.js} +7 -7
  97. package/dist/safe-bash/command-chunks/{chunk-DVQBZXMQ.js → chunk-WJCN2IXI.js} +2 -2
  98. package/dist/safe-bash/command-chunks/{chunk-XBZ4ZWGL.js → chunk-WVMHRNXZ.js} +3 -3
  99. package/dist/safe-bash/command-chunks/{chunk-7GXUCQI4.js → chunk-WXRYDALR.js} +4 -4
  100. package/dist/safe-bash/command-chunks/{chunk-S4IIOSRA.js → chunk-X7FA7ZD5.js} +8 -8
  101. package/dist/safe-bash/command-chunks/{chunk-SFCERNHU.js → chunk-XPD636C4.js} +3 -3
  102. package/dist/safe-bash/command-chunks/{chunk-HYDWQLJ3.js → chunk-XRVKWGVQ.js} +6 -6
  103. package/dist/safe-bash/command-chunks/{chunk-3UJWHRK4.js → chunk-XVP6V5K3.js} +6 -6
  104. package/dist/safe-bash/command-chunks/{chunk-KTI3BULE.js → chunk-XZ2FWFNV.js} +6 -6
  105. package/dist/safe-bash/command-chunks/{chunk-QK3CHRGL.js → chunk-Y4EYCZFT.js} +10 -10
  106. package/dist/safe-bash/command-chunks/{chunk-GTWVMFBK.js → chunk-YORJDX4V.js} +4 -4
  107. package/dist/safe-bash/command-chunks/{chunk-H6F5SN2N.js → chunk-YSMNXMAO.js} +4 -4
  108. package/dist/safe-bash/command-chunks/{chunk-ZEPDT6I5.js → chunk-YSY6R6AS.js} +21 -25
  109. package/dist/safe-bash/command-chunks/{chunk-SE5SJ4JT.js → chunk-Z2JW6M2D.js} +3 -3
  110. package/dist/safe-bash/command-chunks/{chunk-WC2OCF4H.js → chunk-ZHRGYR7B.js} +7 -7
  111. package/dist/safe-bash/command-chunks/{chunk-HQYFRQ5W.js → chunk-ZIIO6GRY.js} +7 -7
  112. package/dist/safe-bash/command-chunks/{chunk-NTRZMQZP.js → chunk-ZMHEGDU2.js} +2 -2
  113. package/dist/safe-bash/command-chunks/{chunk-EYBXHGA6.js → chunk-ZXR6LXV5.js} +2 -2
  114. package/dist/safe-bash/command-chunks/{engine-MEPOXIXT-WZMRHACG.js → engine-AXXFTGCL-QBQNBI6K.js} +1 -1
  115. package/dist/safe-bash/command-chunks/pdf-XHHFTOT4-UJJYOYJ2.js +573 -0
  116. package/dist/safe-bash/commands/diff-patch/index.js +0 -3
  117. package/dist/safe-bash/commands/diff3/index.js +0 -2
  118. package/dist/safe-bash/full-core.browser.js +2 -2
  119. package/dist/safe-bash/plugins/index.browser.js +2 -2
  120. package/dist/safe-bash/plugins/index.js +3 -1
  121. package/dist/safe-bash/plugins/portable-commands.d.ts +1 -1
  122. package/dist/safe-bash/plugins/portable-commands.js +5 -3
  123. package/dist/safe-bash/registry-entry.browser.js +1 -1
  124. package/dist/safe-bash-command-diff/index.js +0 -2
  125. package/dist/safe-bash-command-diff3/index.js +830 -56
  126. package/dist/safe-bash-command-ffmpeg/index.js +1 -1
  127. package/dist/safe-bash-command-ffprobe/index.js +2 -2
  128. package/dist/safe-bash-command-ffprobe/media.js +2 -2
  129. package/dist/safe-bash-command-html-to-markdown/index.js +75 -21
  130. package/dist/safe-bash-command-pandoc/command.js +3 -3
  131. package/dist/safe-bash-command-pandoc/execution.d.ts +2 -2
  132. package/dist/safe-bash-command-pandoc/index.d.ts +1 -1
  133. package/dist/safe-bash-command-pandoc/index.js +14 -14
  134. package/dist/safe-bash-command-pandoc/lua-filters.js +2 -2
  135. package/dist/safe-bash-command-pandoc/types.d.ts +17 -2
  136. package/dist/safe-bash-command-patch/index.js +1 -1
  137. package/dist/safe-bash-command-patch/patch.js +1 -1
  138. package/dist/safe-bash-command-pdftk/index.js +616 -265
  139. package/dist/safe-bash-command-qpdf/index.js +115 -9
  140. package/dist/safe-bash-command-soffice/index.js +1 -1
  141. package/dist/safe-bash-command-ssconvert/index.js +2 -2
  142. package/dist/safe-bash-command-xq/index.js +45 -29
  143. package/dist/safe-bash-presentation-engine/accessibility.js +30 -30
  144. package/dist/safe-bash-presentation-engine/animation-editing.js +15 -15
  145. package/dist/safe-bash-presentation-engine/animations.js +15 -15
  146. package/dist/safe-bash-presentation-engine/backgrounds.js +16 -16
  147. package/dist/safe-bash-presentation-engine/bytes.js +3 -3
  148. package/dist/safe-bash-presentation-engine/chart-editing.js +33 -33
  149. package/dist/safe-bash-presentation-engine/chart-object-operations.js +24 -24
  150. package/dist/safe-bash-presentation-engine/charts.js +30 -30
  151. package/dist/safe-bash-presentation-engine/command-placeholder.js +55 -55
  152. package/dist/safe-bash-presentation-engine/comments.js +16 -16
  153. package/dist/safe-bash-presentation-engine/connector-operations.js +31 -31
  154. package/dist/safe-bash-presentation-engine/connectors.js +28 -28
  155. package/dist/safe-bash-presentation-engine/content-types.js +4 -4
  156. package/dist/safe-bash-presentation-engine/creation.js +6 -6
  157. package/dist/safe-bash-presentation-engine/diff.js +31 -31
  158. package/dist/safe-bash-presentation-engine/drawing-format.js +19 -19
  159. package/dist/safe-bash-presentation-engine/drawing-operations.js +30 -30
  160. package/dist/safe-bash-presentation-engine/drawing-schema.js +20 -20
  161. package/dist/safe-bash-presentation-engine/equations.js +16 -16
  162. package/dist/safe-bash-presentation-engine/errors.js +2 -2
  163. package/dist/safe-bash-presentation-engine/fields.js +16 -16
  164. package/dist/safe-bash-presentation-engine/font-metrics.js +3 -3
  165. package/dist/safe-bash-presentation-engine/image-extraction.js +19 -19
  166. package/dist/safe-bash-presentation-engine/image-formatting.js +31 -31
  167. package/dist/safe-bash-presentation-engine/image-insertion.js +17 -17
  168. package/dist/safe-bash-presentation-engine/image-replacement.js +20 -20
  169. package/dist/safe-bash-presentation-engine/image-value.js +4 -4
  170. package/dist/safe-bash-presentation-engine/images.js +18 -18
  171. package/dist/safe-bash-presentation-engine/index.d.ts +1 -1
  172. package/dist/safe-bash-presentation-engine/index.js +95 -93
  173. package/dist/safe-bash-presentation-engine/layouts.js +15 -15
  174. package/dist/safe-bash-presentation-engine/length.js +3 -3
  175. package/dist/safe-bash-presentation-engine/links.js +15 -15
  176. package/dist/safe-bash-presentation-engine/masters.js +14 -14
  177. package/dist/safe-bash-presentation-engine/media-editing.js +23 -23
  178. package/dist/safe-bash-presentation-engine/media-extraction.js +16 -16
  179. package/dist/safe-bash-presentation-engine/media.js +15 -15
  180. package/dist/safe-bash-presentation-engine/memberships.js +14 -14
  181. package/dist/safe-bash-presentation-engine/notes.js +15 -15
  182. package/dist/safe-bash-presentation-engine/ole-enum.js +4 -4
  183. package/dist/safe-bash-presentation-engine/ole-insertion.js +19 -19
  184. package/dist/safe-bash-presentation-engine/opaque-objects.js +9 -9
  185. package/dist/safe-bash-presentation-engine/package-reader.js +5 -5
  186. package/dist/safe-bash-presentation-engine/package-tools.js +15 -15
  187. package/dist/safe-bash-presentation-engine/package-uri.js +3 -3
  188. package/dist/safe-bash-presentation-engine/package-writer.js +4 -4
  189. package/dist/safe-bash-presentation-engine/presentation-model.js +54 -54
  190. package/dist/safe-bash-presentation-engine/presentation-settings.js +13 -13
  191. package/dist/safe-bash-presentation-engine/properties.js +15 -15
  192. package/dist/safe-bash-presentation-engine/relationships.js +4 -4
  193. package/dist/safe-bash-presentation-engine/resource-limits.js +1 -1
  194. package/dist/safe-bash-presentation-engine/retained-inspection.js +12 -12
  195. package/dist/safe-bash-presentation-engine/retained-package.js +4 -4
  196. package/dist/safe-bash-presentation-engine/retained-slide-settings.d.ts +15 -0
  197. package/dist/safe-bash-presentation-engine/retained-text.js +17 -17
  198. package/dist/safe-bash-presentation-engine/sanitize.js +16 -16
  199. package/dist/safe-bash-presentation-engine/selectors.js +10 -10
  200. package/dist/safe-bash-presentation-engine/shape-groups.js +30 -30
  201. package/dist/safe-bash-presentation-engine/shape-operations.js +29 -29
  202. package/dist/safe-bash-presentation-engine/shape-path-operations.js +31 -31
  203. package/dist/safe-bash-presentation-engine/shape-paths.js +15 -15
  204. package/dist/safe-bash-presentation-engine/shape-presets.js +3 -3
  205. package/dist/safe-bash-presentation-engine/shape-selection.js +30 -30
  206. package/dist/safe-bash-presentation-engine/shape-transforms.js +17 -17
  207. package/dist/safe-bash-presentation-engine/shapes.js +26 -26
  208. package/dist/safe-bash-presentation-engine/slide-copy.js +16 -16
  209. package/dist/safe-bash-presentation-engine/slide-import.js +17 -17
  210. package/dist/safe-bash-presentation-engine/slide-merge-split.js +19 -19
  211. package/dist/safe-bash-presentation-engine/slide-model.js +42 -42
  212. package/dist/safe-bash-presentation-engine/slide-removal.js +17 -17
  213. package/dist/safe-bash-presentation-engine/slide-transfer-budget.js +9 -9
  214. package/dist/safe-bash-presentation-engine/slides.d.ts +2 -0
  215. package/dist/safe-bash-presentation-engine/slides.js +21 -16
  216. package/dist/safe-bash-presentation-engine/table-operations.js +32 -32
  217. package/dist/safe-bash-presentation-engine/table-spans.js +31 -31
  218. package/dist/safe-bash-presentation-engine/tables.js +30 -30
  219. package/dist/safe-bash-presentation-engine/tags.js +15 -15
  220. package/dist/safe-bash-presentation-engine/template-bindings.js +32 -32
  221. package/dist/safe-bash-presentation-engine/template-repeat.js +39 -39
  222. package/dist/safe-bash-presentation-engine/text-fitting.js +26 -26
  223. package/dist/safe-bash-presentation-engine/text-frames.js +26 -26
  224. package/dist/safe-bash-presentation-engine/text-paragraphs.js +26 -26
  225. package/dist/safe-bash-presentation-engine/text-reading.js +11 -11
  226. package/dist/safe-bash-presentation-engine/text-replacement.js +16 -16
  227. package/dist/safe-bash-presentation-engine/text-runs.js +19 -19
  228. package/dist/safe-bash-presentation-engine/themes.js +15 -15
  229. package/dist/safe-bash-presentation-engine/transitions.js +15 -15
  230. package/dist/safe-bash-presentation-engine/validation.js +9 -9
  231. package/dist/safe-bash-presentation-engine/xml-parts.js +15 -15
  232. package/dist/safe-bash-presentation-engine/xml-view.js +3 -3
  233. package/dist/safe-bash-presentation-engine/xml.js +3 -3
  234. package/dist/safe-bash-xml-engine/json.d.ts +1 -0
  235. package/dist/safe-bash-xml-engine/json.js +203 -0
  236. package/dist/safe-bash-xml-engine/stored-json.d.ts +5 -0
  237. package/dist/spreadsheet-engine/rendering/print/bidi-runs.d.ts +5 -0
  238. package/dist/spreadsheet-engine/rendering/print/bidi-runs.js +35 -0
  239. package/dist/spreadsheet-engine/rendering/print/control-bidi.d.ts +8 -0
  240. package/dist/spreadsheet-engine/rendering/print/control-bidi.js +80 -0
  241. package/dist/spreadsheet-format-xls/biff-encrypted-properties.d.ts +4 -4
  242. package/dist/spreadsheet-format-xls/biff-encrypted-properties.js +36 -23
  243. package/dist/spreadsheet-format-xls/biff-encryption.js +1 -1
  244. package/dist/spreadsheet-format-xls/biff-property-bytes.d.ts +4 -1
  245. package/dist/spreadsheet-format-xls/biff-property-bytes.js +1 -1
  246. package/dist/spreadsheet-format-xls/biff-range.js +1 -1
  247. package/package.json +5 -2
  248. package/dist/safe-bash/command-chunks/pdf-LOZAXXS6-ERI57IAV.js +0 -557
@@ -1,22 +1,22 @@
1
1
  import {
2
2
  replacePresentationText
3
- } from "../safe-bash/command-chunks/chunk-3UJWHRK4.js";
4
- import "../safe-bash/command-chunks/chunk-HONWGFDA.js";
5
- import "../safe-bash/command-chunks/chunk-ORZRWT62.js";
6
- import "../safe-bash/command-chunks/chunk-VPDSQPSN.js";
7
- import "../safe-bash/command-chunks/chunk-S4IIOSRA.js";
8
- import "../safe-bash/command-chunks/chunk-SFCERNHU.js";
9
- import "../safe-bash/command-chunks/chunk-KMMAJ6H6.js";
10
- import "../safe-bash/command-chunks/chunk-MMBRBANA.js";
11
- import "../safe-bash/command-chunks/chunk-FXKBM5KJ.js";
12
- import "../safe-bash/command-chunks/chunk-6UHGIWFX.js";
13
- import "../safe-bash/command-chunks/chunk-5L6GHFRW.js";
14
- import "../safe-bash/command-chunks/chunk-DVQBZXMQ.js";
15
- import "../safe-bash/command-chunks/chunk-NTRZMQZP.js";
16
- import "../safe-bash/command-chunks/chunk-AXWPJRY6.js";
3
+ } from "../safe-bash/command-chunks/chunk-XVP6V5K3.js";
4
+ import "../safe-bash/command-chunks/chunk-33YCKZZX.js";
5
+ import "../safe-bash/command-chunks/chunk-56NYSX65.js";
6
+ import "../safe-bash/command-chunks/chunk-DM2CPMB4.js";
7
+ import "../safe-bash/command-chunks/chunk-X7FA7ZD5.js";
8
+ import "../safe-bash/command-chunks/chunk-XPD636C4.js";
9
+ import "../safe-bash/command-chunks/chunk-PNGDJA6M.js";
10
+ import "../safe-bash/command-chunks/chunk-RNSKXOG3.js";
11
+ import "../safe-bash/command-chunks/chunk-QC5RMGSA.js";
12
+ import "../safe-bash/command-chunks/chunk-2ZFLMWOX.js";
13
+ import "../safe-bash/command-chunks/chunk-554Z6IKP.js";
14
+ import "../safe-bash/command-chunks/chunk-WJCN2IXI.js";
15
+ import "../safe-bash/command-chunks/chunk-ZMHEGDU2.js";
16
+ import "../safe-bash/command-chunks/chunk-36XGIPOG.js";
17
17
  import "../safe-bash/command-chunks/chunk-ZITBS2EB.js";
18
- import "../safe-bash/command-chunks/chunk-NXCMXD74.js";
19
- import "../safe-bash/command-chunks/chunk-KJ3PEDI2.js";
18
+ import "../safe-bash/command-chunks/chunk-S6R3IB36.js";
19
+ import "../safe-bash/command-chunks/chunk-Q73EMLLZ.js";
20
20
  import "../safe-bash/command-chunks/chunk-37XCUS43.js";
21
21
  import "../safe-bash/command-chunks/chunk-IOEUZ4EA.js";
22
22
  import "../safe-bash/command-chunks/chunk-E6SK3OU2.js";
@@ -8,27 +8,27 @@ import {
8
8
  textStrikeStyles,
9
9
  textUnderlineStyles,
10
10
  validateTextRunOptions
11
- } from "../safe-bash/command-chunks/chunk-KTI3BULE.js";
12
- import "../safe-bash/command-chunks/chunk-HONWGFDA.js";
13
- import "../safe-bash/command-chunks/chunk-53JP3S6H.js";
14
- import "../safe-bash/command-chunks/chunk-7AVN3OBH.js";
15
- import "../safe-bash/command-chunks/chunk-KCTV4NVX.js";
11
+ } from "../safe-bash/command-chunks/chunk-XZ2FWFNV.js";
12
+ import "../safe-bash/command-chunks/chunk-33YCKZZX.js";
13
+ import "../safe-bash/command-chunks/chunk-5HPU7D36.js";
14
+ import "../safe-bash/command-chunks/chunk-RHYJVTJO.js";
15
+ import "../safe-bash/command-chunks/chunk-CRV2Q3PB.js";
16
16
  import "../safe-bash/command-chunks/chunk-HR2Y6YEP.js";
17
- import "../safe-bash/command-chunks/chunk-ORZRWT62.js";
18
- import "../safe-bash/command-chunks/chunk-VPDSQPSN.js";
19
- import "../safe-bash/command-chunks/chunk-S4IIOSRA.js";
20
- import "../safe-bash/command-chunks/chunk-SFCERNHU.js";
21
- import "../safe-bash/command-chunks/chunk-KMMAJ6H6.js";
22
- import "../safe-bash/command-chunks/chunk-MMBRBANA.js";
23
- import "../safe-bash/command-chunks/chunk-FXKBM5KJ.js";
24
- import "../safe-bash/command-chunks/chunk-6UHGIWFX.js";
25
- import "../safe-bash/command-chunks/chunk-5L6GHFRW.js";
26
- import "../safe-bash/command-chunks/chunk-DVQBZXMQ.js";
27
- import "../safe-bash/command-chunks/chunk-NTRZMQZP.js";
28
- import "../safe-bash/command-chunks/chunk-AXWPJRY6.js";
17
+ import "../safe-bash/command-chunks/chunk-56NYSX65.js";
18
+ import "../safe-bash/command-chunks/chunk-DM2CPMB4.js";
19
+ import "../safe-bash/command-chunks/chunk-X7FA7ZD5.js";
20
+ import "../safe-bash/command-chunks/chunk-XPD636C4.js";
21
+ import "../safe-bash/command-chunks/chunk-PNGDJA6M.js";
22
+ import "../safe-bash/command-chunks/chunk-RNSKXOG3.js";
23
+ import "../safe-bash/command-chunks/chunk-QC5RMGSA.js";
24
+ import "../safe-bash/command-chunks/chunk-2ZFLMWOX.js";
25
+ import "../safe-bash/command-chunks/chunk-554Z6IKP.js";
26
+ import "../safe-bash/command-chunks/chunk-WJCN2IXI.js";
27
+ import "../safe-bash/command-chunks/chunk-ZMHEGDU2.js";
28
+ import "../safe-bash/command-chunks/chunk-36XGIPOG.js";
29
29
  import "../safe-bash/command-chunks/chunk-ZITBS2EB.js";
30
- import "../safe-bash/command-chunks/chunk-NXCMXD74.js";
31
- import "../safe-bash/command-chunks/chunk-KJ3PEDI2.js";
30
+ import "../safe-bash/command-chunks/chunk-S6R3IB36.js";
31
+ import "../safe-bash/command-chunks/chunk-Q73EMLLZ.js";
32
32
  import "../safe-bash/command-chunks/chunk-37XCUS43.js";
33
33
  import "../safe-bash/command-chunks/chunk-IOEUZ4EA.js";
34
34
  import "../safe-bash/command-chunks/chunk-E6SK3OU2.js";
@@ -4,22 +4,22 @@ import {
4
4
  themeColorSlots,
5
5
  themeFontSlots,
6
6
  validateColor
7
- } from "../safe-bash/command-chunks/chunk-7AVN3OBH.js";
8
- import "../safe-bash/command-chunks/chunk-ORZRWT62.js";
9
- import "../safe-bash/command-chunks/chunk-VPDSQPSN.js";
10
- import "../safe-bash/command-chunks/chunk-S4IIOSRA.js";
11
- import "../safe-bash/command-chunks/chunk-SFCERNHU.js";
12
- import "../safe-bash/command-chunks/chunk-KMMAJ6H6.js";
13
- import "../safe-bash/command-chunks/chunk-MMBRBANA.js";
14
- import "../safe-bash/command-chunks/chunk-FXKBM5KJ.js";
15
- import "../safe-bash/command-chunks/chunk-6UHGIWFX.js";
16
- import "../safe-bash/command-chunks/chunk-5L6GHFRW.js";
17
- import "../safe-bash/command-chunks/chunk-DVQBZXMQ.js";
18
- import "../safe-bash/command-chunks/chunk-NTRZMQZP.js";
19
- import "../safe-bash/command-chunks/chunk-AXWPJRY6.js";
7
+ } from "../safe-bash/command-chunks/chunk-RHYJVTJO.js";
8
+ import "../safe-bash/command-chunks/chunk-56NYSX65.js";
9
+ import "../safe-bash/command-chunks/chunk-DM2CPMB4.js";
10
+ import "../safe-bash/command-chunks/chunk-X7FA7ZD5.js";
11
+ import "../safe-bash/command-chunks/chunk-XPD636C4.js";
12
+ import "../safe-bash/command-chunks/chunk-PNGDJA6M.js";
13
+ import "../safe-bash/command-chunks/chunk-RNSKXOG3.js";
14
+ import "../safe-bash/command-chunks/chunk-QC5RMGSA.js";
15
+ import "../safe-bash/command-chunks/chunk-2ZFLMWOX.js";
16
+ import "../safe-bash/command-chunks/chunk-554Z6IKP.js";
17
+ import "../safe-bash/command-chunks/chunk-WJCN2IXI.js";
18
+ import "../safe-bash/command-chunks/chunk-ZMHEGDU2.js";
19
+ import "../safe-bash/command-chunks/chunk-36XGIPOG.js";
20
20
  import "../safe-bash/command-chunks/chunk-ZITBS2EB.js";
21
- import "../safe-bash/command-chunks/chunk-NXCMXD74.js";
22
- import "../safe-bash/command-chunks/chunk-KJ3PEDI2.js";
21
+ import "../safe-bash/command-chunks/chunk-S6R3IB36.js";
22
+ import "../safe-bash/command-chunks/chunk-Q73EMLLZ.js";
23
23
  import "../safe-bash/command-chunks/chunk-37XCUS43.js";
24
24
  import "../safe-bash/command-chunks/chunk-IOEUZ4EA.js";
25
25
  import "../safe-bash/command-chunks/chunk-E6SK3OU2.js";
@@ -2,22 +2,22 @@ import {
2
2
  mutateTransitions,
3
3
  readTransitions,
4
4
  validateTransitionOptions
5
- } from "../safe-bash/command-chunks/chunk-SE5SJ4JT.js";
6
- import "../safe-bash/command-chunks/chunk-ORZRWT62.js";
7
- import "../safe-bash/command-chunks/chunk-VPDSQPSN.js";
8
- import "../safe-bash/command-chunks/chunk-S4IIOSRA.js";
9
- import "../safe-bash/command-chunks/chunk-SFCERNHU.js";
10
- import "../safe-bash/command-chunks/chunk-KMMAJ6H6.js";
11
- import "../safe-bash/command-chunks/chunk-MMBRBANA.js";
12
- import "../safe-bash/command-chunks/chunk-FXKBM5KJ.js";
13
- import "../safe-bash/command-chunks/chunk-6UHGIWFX.js";
14
- import "../safe-bash/command-chunks/chunk-5L6GHFRW.js";
15
- import "../safe-bash/command-chunks/chunk-DVQBZXMQ.js";
16
- import "../safe-bash/command-chunks/chunk-NTRZMQZP.js";
17
- import "../safe-bash/command-chunks/chunk-AXWPJRY6.js";
5
+ } from "../safe-bash/command-chunks/chunk-Z2JW6M2D.js";
6
+ import "../safe-bash/command-chunks/chunk-56NYSX65.js";
7
+ import "../safe-bash/command-chunks/chunk-DM2CPMB4.js";
8
+ import "../safe-bash/command-chunks/chunk-X7FA7ZD5.js";
9
+ import "../safe-bash/command-chunks/chunk-XPD636C4.js";
10
+ import "../safe-bash/command-chunks/chunk-PNGDJA6M.js";
11
+ import "../safe-bash/command-chunks/chunk-RNSKXOG3.js";
12
+ import "../safe-bash/command-chunks/chunk-QC5RMGSA.js";
13
+ import "../safe-bash/command-chunks/chunk-2ZFLMWOX.js";
14
+ import "../safe-bash/command-chunks/chunk-554Z6IKP.js";
15
+ import "../safe-bash/command-chunks/chunk-WJCN2IXI.js";
16
+ import "../safe-bash/command-chunks/chunk-ZMHEGDU2.js";
17
+ import "../safe-bash/command-chunks/chunk-36XGIPOG.js";
18
18
  import "../safe-bash/command-chunks/chunk-ZITBS2EB.js";
19
- import "../safe-bash/command-chunks/chunk-NXCMXD74.js";
20
- import "../safe-bash/command-chunks/chunk-KJ3PEDI2.js";
19
+ import "../safe-bash/command-chunks/chunk-S6R3IB36.js";
20
+ import "../safe-bash/command-chunks/chunk-Q73EMLLZ.js";
21
21
  import "../safe-bash/command-chunks/chunk-37XCUS43.js";
22
22
  import "../safe-bash/command-chunks/chunk-IOEUZ4EA.js";
23
23
  import "../safe-bash/command-chunks/chunk-E6SK3OU2.js";
@@ -1,16 +1,16 @@
1
1
  import {
2
2
  openRetainedPresentationValidation,
3
3
  validatePresentation
4
- } from "../safe-bash/command-chunks/chunk-MMBRBANA.js";
5
- import "../safe-bash/command-chunks/chunk-FXKBM5KJ.js";
6
- import "../safe-bash/command-chunks/chunk-6UHGIWFX.js";
7
- import "../safe-bash/command-chunks/chunk-5L6GHFRW.js";
8
- import "../safe-bash/command-chunks/chunk-DVQBZXMQ.js";
9
- import "../safe-bash/command-chunks/chunk-NTRZMQZP.js";
10
- import "../safe-bash/command-chunks/chunk-AXWPJRY6.js";
4
+ } from "../safe-bash/command-chunks/chunk-RNSKXOG3.js";
5
+ import "../safe-bash/command-chunks/chunk-QC5RMGSA.js";
6
+ import "../safe-bash/command-chunks/chunk-2ZFLMWOX.js";
7
+ import "../safe-bash/command-chunks/chunk-554Z6IKP.js";
8
+ import "../safe-bash/command-chunks/chunk-WJCN2IXI.js";
9
+ import "../safe-bash/command-chunks/chunk-ZMHEGDU2.js";
10
+ import "../safe-bash/command-chunks/chunk-36XGIPOG.js";
11
11
  import "../safe-bash/command-chunks/chunk-ZITBS2EB.js";
12
- import "../safe-bash/command-chunks/chunk-NXCMXD74.js";
13
- import "../safe-bash/command-chunks/chunk-KJ3PEDI2.js";
12
+ import "../safe-bash/command-chunks/chunk-S6R3IB36.js";
13
+ import "../safe-bash/command-chunks/chunk-Q73EMLLZ.js";
14
14
  import "../safe-bash/command-chunks/chunk-IOEUZ4EA.js";
15
15
  import "../safe-bash/command-chunks/chunk-E6SK3OU2.js";
16
16
  import "../safe-bash/command-chunks/chunk-65DS4IOB.js";
@@ -4,22 +4,22 @@ import {
4
4
  replaceXmlPart,
5
5
  stageRetainedXmlPart,
6
6
  validateXmlPartReplacement
7
- } from "../safe-bash/command-chunks/chunk-CAXJ4RLF.js";
8
- import "../safe-bash/command-chunks/chunk-U6QHTC5J.js";
9
- import "../safe-bash/command-chunks/chunk-VPDSQPSN.js";
10
- import "../safe-bash/command-chunks/chunk-S4IIOSRA.js";
11
- import "../safe-bash/command-chunks/chunk-SFCERNHU.js";
12
- import "../safe-bash/command-chunks/chunk-KMMAJ6H6.js";
13
- import "../safe-bash/command-chunks/chunk-MMBRBANA.js";
14
- import "../safe-bash/command-chunks/chunk-FXKBM5KJ.js";
15
- import "../safe-bash/command-chunks/chunk-6UHGIWFX.js";
16
- import "../safe-bash/command-chunks/chunk-5L6GHFRW.js";
17
- import "../safe-bash/command-chunks/chunk-DVQBZXMQ.js";
18
- import "../safe-bash/command-chunks/chunk-NTRZMQZP.js";
19
- import "../safe-bash/command-chunks/chunk-AXWPJRY6.js";
7
+ } from "../safe-bash/command-chunks/chunk-KJ4XXZIL.js";
8
+ import "../safe-bash/command-chunks/chunk-L5MCW6CM.js";
9
+ import "../safe-bash/command-chunks/chunk-DM2CPMB4.js";
10
+ import "../safe-bash/command-chunks/chunk-X7FA7ZD5.js";
11
+ import "../safe-bash/command-chunks/chunk-XPD636C4.js";
12
+ import "../safe-bash/command-chunks/chunk-PNGDJA6M.js";
13
+ import "../safe-bash/command-chunks/chunk-RNSKXOG3.js";
14
+ import "../safe-bash/command-chunks/chunk-QC5RMGSA.js";
15
+ import "../safe-bash/command-chunks/chunk-2ZFLMWOX.js";
16
+ import "../safe-bash/command-chunks/chunk-554Z6IKP.js";
17
+ import "../safe-bash/command-chunks/chunk-WJCN2IXI.js";
18
+ import "../safe-bash/command-chunks/chunk-ZMHEGDU2.js";
19
+ import "../safe-bash/command-chunks/chunk-36XGIPOG.js";
20
20
  import "../safe-bash/command-chunks/chunk-ZITBS2EB.js";
21
- import "../safe-bash/command-chunks/chunk-NXCMXD74.js";
22
- import "../safe-bash/command-chunks/chunk-KJ3PEDI2.js";
21
+ import "../safe-bash/command-chunks/chunk-S6R3IB36.js";
22
+ import "../safe-bash/command-chunks/chunk-Q73EMLLZ.js";
23
23
  import "../safe-bash/command-chunks/chunk-37XCUS43.js";
24
24
  import "../safe-bash/command-chunks/chunk-IOEUZ4EA.js";
25
25
  import "../safe-bash/command-chunks/chunk-E6SK3OU2.js";
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  createXmlElementView
3
- } from "../safe-bash/command-chunks/chunk-UJXP3T6R.js";
4
- import "../safe-bash/command-chunks/chunk-NXCMXD74.js";
5
- import "../safe-bash/command-chunks/chunk-KJ3PEDI2.js";
3
+ } from "../safe-bash/command-chunks/chunk-4CKFNXRN.js";
4
+ import "../safe-bash/command-chunks/chunk-S6R3IB36.js";
5
+ import "../safe-bash/command-chunks/chunk-Q73EMLLZ.js";
6
6
  import "../safe-bash/command-chunks/chunk-IOEUZ4EA.js";
7
7
  import "../safe-bash/command-chunks/chunk-E6SK3OU2.js";
8
8
  import "../safe-bash/command-chunks/chunk-65DS4IOB.js";
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  parseXmlPart
3
- } from "../safe-bash/command-chunks/chunk-5L6GHFRW.js";
4
- import "../safe-bash/command-chunks/chunk-NXCMXD74.js";
5
- import "../safe-bash/command-chunks/chunk-KJ3PEDI2.js";
3
+ } from "../safe-bash/command-chunks/chunk-554Z6IKP.js";
4
+ import "../safe-bash/command-chunks/chunk-S6R3IB36.js";
5
+ import "../safe-bash/command-chunks/chunk-Q73EMLLZ.js";
6
6
  import "../safe-bash/command-chunks/chunk-IOEUZ4EA.js";
7
7
  import "../safe-bash/command-chunks/chunk-E6SK3OU2.js";
8
8
  import "../safe-bash/command-chunks/chunk-65DS4IOB.js";
@@ -2,3 +2,4 @@ import type { XmlElement } from "@poe-platform/safe-fs/core";
2
2
  import type { Json } from "../safe-bash-query-engine/limits.js";
3
3
  import type { XmlBudget } from "./limits.js";
4
4
  export declare function xmlToJson(root: XmlElement, budget: XmlBudget): Promise<Json>;
5
+ export { storedXmlToJson } from "./stored-json.js";
@@ -1,5 +1,207 @@
1
1
  import "../safe-bash/command-chunks/chunk-65DS4IOB.js";
2
2
 
3
+ // packages/safe-bash-xml-engine/src/stored-json.ts
4
+ import { IntegerTable } from "@poe-platform/safe-fs/storage";
5
+ async function* quoted(parts) {
6
+ yield '"';
7
+ for await (const part of parts) for (let start = 0; start < part.length; ) {
8
+ let end = Math.min(start + 1024, part.length);
9
+ if (end < part.length && part.charCodeAt(end - 1) >= 55296 && part.charCodeAt(end - 1) <= 56319) end--;
10
+ yield JSON.stringify(part.slice(start, end)).slice(1, -1);
11
+ start = end;
12
+ }
13
+ yield '"';
14
+ }
15
+ async function* storedXmlToJson(document, budget) {
16
+ const storage = document.storage;
17
+ const parents = new IntegerTable(storage, 128), hashes = new IntegerTable(storage, 128);
18
+ const encoder = new TextEncoder();
19
+ let cached;
20
+ async function node(reference) {
21
+ if (cached?.reference === reference) return cached.value;
22
+ const value = await document.node(reference);
23
+ if (value.kind !== "element") throw new TypeError("XML JSON conversion expected an element");
24
+ cached = { reference, value };
25
+ return value;
26
+ }
27
+ async function record(values) {
28
+ const bytes = new Uint8Array(values.length * 8), view = new DataView(bytes.buffer);
29
+ for (let index = 0; index < values.length; index++) view.setFloat64(index * 8, values[index], true);
30
+ return storage.append(bytes);
31
+ }
32
+ async function fields(reference, count) {
33
+ const bytes = await storage.read(reference, count * 8), view = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength);
34
+ return Array.from({ length: count }, (_, index) => view.getFloat64(index * 8, true));
35
+ }
36
+ async function set(reference, index, value) {
37
+ const bytes = new Uint8Array(8);
38
+ new DataView(bytes.buffer).setFloat64(0, value, true);
39
+ await storage.write(reference + index * 8, bytes);
40
+ }
41
+ async function hash(parent, name) {
42
+ let value = 14695981039346656037n;
43
+ for (const part of [String(parent), ":", name]) for (const character of part) {
44
+ const checkpoint = budget.tick();
45
+ if (checkpoint) await checkpoint;
46
+ value = BigInt.asUintN(64, (value ^ BigInt(character.codePointAt(0))) * 1099511628211n);
47
+ }
48
+ return value;
49
+ }
50
+ for await (const entry of document.walk(document.root)) {
51
+ if (entry.closing || entry.reference === document.root) continue;
52
+ const current = await document.node(entry.reference);
53
+ if (current.kind !== "element") continue;
54
+ const parent = await document.parent(entry.reference), key = await hash(parent, current.name);
55
+ const bucket = Number(await hashes.get(key) ?? 0n);
56
+ let group = bucket;
57
+ while (group) {
58
+ const value = await fields(group, 8);
59
+ const checkpoint = budget.tick(current.name.length + 1);
60
+ if (checkpoint) await checkpoint;
61
+ if (value[0] === parent && (await node(value[1])).name === current.name) break;
62
+ group = value[6];
63
+ }
64
+ const member = await record([entry.reference, 0]);
65
+ if (group) {
66
+ const value = await fields(group, 8);
67
+ await set(value[3], 1, member);
68
+ await set(group, 3, member);
69
+ await set(group, 7, value[7] + 1);
70
+ } else {
71
+ let owner = Number(await parents.get(BigInt(parent)) ?? 0n);
72
+ if (!owner) {
73
+ owner = await record([0, 0]);
74
+ await parents.set(BigInt(parent), BigInt(owner));
75
+ }
76
+ const ends = await fields(owner, 2);
77
+ group = await record([parent, entry.reference, member, member, ends[1], 0, bucket, 1]);
78
+ if (ends[1]) await set(ends[1], 5, group);
79
+ else await set(owner, 0, group);
80
+ await set(owner, 1, group);
81
+ await hashes.set(key, BigInt(group));
82
+ }
83
+ }
84
+ async function* directText(reference, first = 0, last = Infinity) {
85
+ let offset = 0;
86
+ for await (const child of document.children(reference)) {
87
+ const value = await document.node(child);
88
+ if (value.kind !== "text" && value.kind !== "cdata") continue;
89
+ for await (const part of document.text(child)) {
90
+ const end = offset + part.length;
91
+ if (end > first && offset < last) yield part.slice(Math.max(0, first - offset), Math.min(part.length, last - offset));
92
+ offset = end;
93
+ }
94
+ }
95
+ }
96
+ let head = 0;
97
+ async function push(task) {
98
+ const checkpoint = budget.tick();
99
+ if (checkpoint) await checkpoint;
100
+ const bytes = encoder.encode(JSON.stringify(task));
101
+ const reference = await record([head, bytes.length]);
102
+ await storage.append(bytes);
103
+ head = reference;
104
+ }
105
+ async function pop() {
106
+ if (!head) return void 0;
107
+ const reference = head, value = await fields(reference, 2);
108
+ head = value[0];
109
+ return JSON.parse(new TextDecoder().decode(await storage.read(reference + 16, value[1])));
110
+ }
111
+ async function* output() {
112
+ const root = await node(document.root);
113
+ yield "{";
114
+ yield* quoted([root.name]);
115
+ yield ":";
116
+ await push({ kind: "literal", value: "}" });
117
+ await push({ kind: "element", reference: document.root });
118
+ while (true) {
119
+ const checkpoint = budget.tick();
120
+ if (checkpoint) await checkpoint;
121
+ const task = await pop();
122
+ if (!task) break;
123
+ if (task.kind === "literal") {
124
+ yield task.value;
125
+ continue;
126
+ }
127
+ if (task.kind === "attribute") {
128
+ const attribute = (await node(task.reference)).attributes[task.index];
129
+ yield* quoted(["@" + attribute.name]);
130
+ yield ":";
131
+ yield* quoted([attribute.value]);
132
+ continue;
133
+ }
134
+ if (task.kind === "text") {
135
+ yield* quoted(directText(task.reference, task.first, task.last));
136
+ continue;
137
+ }
138
+ if (task.kind === "members") {
139
+ const member = await fields(task.reference, 2);
140
+ if (member[1]) {
141
+ await push({ kind: "members", reference: member[1] });
142
+ await push({ kind: "literal", value: "," });
143
+ }
144
+ await push({ kind: "element", reference: member[0] });
145
+ continue;
146
+ }
147
+ if (task.kind === "group") {
148
+ const group = await fields(task.reference, 8);
149
+ yield* quoted([(await node(group[1])).name]);
150
+ yield ":";
151
+ if (group[7] === 1) await push({ kind: "element", reference: group[1] });
152
+ else {
153
+ yield "[";
154
+ await push({ kind: "literal", value: "]" });
155
+ await push({ kind: "members", reference: group[2] });
156
+ }
157
+ continue;
158
+ }
159
+ const current = await node(task.reference);
160
+ let first = -1, last = 0, offset = 0;
161
+ for await (const part of directText(task.reference)) for (const character of part) {
162
+ const checkpoint2 = budget.tick();
163
+ if (checkpoint2) await checkpoint2;
164
+ if (character.trim()) {
165
+ if (first < 0) first = offset;
166
+ last = offset + character.length;
167
+ }
168
+ offset += character.length;
169
+ }
170
+ const owner = Number(await parents.get(BigInt(task.reference)) ?? 0n);
171
+ if (!owner && !current.attributes.length) {
172
+ if (first < 0) yield "null";
173
+ else yield* quoted(directText(task.reference, first, last));
174
+ continue;
175
+ }
176
+ yield "{";
177
+ await push({ kind: "literal", value: "}" });
178
+ if (first >= 0) {
179
+ await push({ kind: "text", reference: task.reference, first, last });
180
+ await push({ kind: "literal", value: ',"#text":' });
181
+ }
182
+ if (owner) {
183
+ let group = (await fields(owner, 2))[1];
184
+ while (group) {
185
+ const value = await fields(group, 8);
186
+ await push({ kind: "group", reference: group });
187
+ if (value[4] || current.attributes.length) await push({ kind: "literal", value: "," });
188
+ group = value[4];
189
+ }
190
+ }
191
+ for (let index = current.attributes.length - 1; index >= 0; index--) {
192
+ await push({ kind: "attribute", reference: task.reference, index });
193
+ if (index) await push({ kind: "literal", value: "," });
194
+ }
195
+ }
196
+ yield "\n";
197
+ }
198
+ for await (const part of output()) {
199
+ const checkpoint = budget.tick(part.length);
200
+ if (checkpoint) await checkpoint;
201
+ yield encoder.encode(part);
202
+ }
203
+ }
204
+
3
205
  // packages/safe-bash-xml-engine/src/json.ts
4
206
  async function xmlToJson(root, budget) {
5
207
  async function element(node) {
@@ -36,5 +238,6 @@ async function xmlToJson(root, budget) {
36
238
  return result;
37
239
  }
38
240
  export {
241
+ storedXmlToJson,
39
242
  xmlToJson
40
243
  };
@@ -0,0 +1,5 @@
1
+ import type { XmlBudget } from "./limits.js";
2
+ import type { StoredXmlDocument } from "./stored-document.js";
3
+ /** xmltodict grouping and traversal use caller-backed records. Only the current
4
+ * node's metadata and a fixed page cache are resident; jq owns its input values. */
5
+ export declare function storedXmlToJson(document: StoredXmlDocument, budget: XmlBudget): AsyncGenerator<Uint8Array>;
@@ -0,0 +1,5 @@
1
+ /** Visual run order with logical text retained for the font shaper. */
2
+ export declare function printBidiRuns(text: string, direction: "ltr" | "rtl", tick: (amount?: number) => void): {
3
+ text: string;
4
+ direction: "ltr" | "rtl";
5
+ }[];
@@ -0,0 +1,35 @@
1
+ import createBidi from "bidi-js";
2
+ // The CommonJS factory is published with an ESM-shaped declaration.
3
+ const bidi = createBidi();
4
+ /** Visual run order with logical text retained for the font shaper. */
5
+ export function printBidiRuns(text, direction, tick) {
6
+ // UAX #9 caps embedding depth at 125; reserve synchronous resolver work.
7
+ tick(text.length * 128);
8
+ if (!text)
9
+ return [];
10
+ const embedding = bidi.getEmbeddingLevels(text, direction);
11
+ const groups = [];
12
+ const membership = [];
13
+ let previous = -1;
14
+ for (let index = 0; index < text.length; index++) {
15
+ tick();
16
+ const level = embedding.levels[index];
17
+ if (level !== previous) {
18
+ groups.push({ text: "", direction: level % 2 ? "rtl" : "ltr" });
19
+ previous = level;
20
+ }
21
+ groups[groups.length - 1].text += text[index];
22
+ membership.push(groups.length - 1);
23
+ }
24
+ const seen = new Set();
25
+ const result = [];
26
+ for (const index of bidi.getReorderedIndices(text, embedding)) {
27
+ tick();
28
+ const group = membership[index];
29
+ if (!seen.has(group)) {
30
+ seen.add(group);
31
+ result.push(groups[group]);
32
+ }
33
+ }
34
+ return result;
35
+ }
@@ -0,0 +1,8 @@
1
+ /** Pango's single-paragraph FriBidi profile for mixed letter/tab/control runs. */
2
+ export declare function controlBidiItems(text: string, direction: "ltr" | "rtl", tick: (amount?: number) => void): {
3
+ items: {
4
+ text: string;
5
+ direction: "ltr" | "rtl";
6
+ }[];
7
+ order: number[];
8
+ } | undefined;
@@ -0,0 +1,80 @@
1
+ import createBidi from "bidi-js";
2
+ const bidi = createBidi();
3
+ /** Pango's single-paragraph FriBidi profile for mixed letter/tab/control runs. */
4
+ export function controlBidiItems(text, direction, tick) {
5
+ tick(text.length * 128);
6
+ const types = Array.from(text, char => bidi.getBidiCharTypeName(char));
7
+ // Wider weak/neutral/explicit profiles need independent native qualification.
8
+ if (!types.includes("L") || !types.includes("R") || types.some(type => !["L", "R", "BN", "B", "S"].includes(type)))
9
+ return;
10
+ const levels = new Uint8Array(text.length);
11
+ let start = 0;
12
+ for (let index = 0; index <= text.length; index++) {
13
+ tick();
14
+ if (index < text.length && text[index] !== "\r" && text[index] !== "\u2029")
15
+ continue;
16
+ // FriBidi X8 stops explicit-level assignment at the first B. Later
17
+ // letters retain the initialized zero base before implicit resolution.
18
+ levels.set(bidi.getEmbeddingLevels(text.slice(start, index), start === 0 ? direction : "ltr").levels, start);
19
+ if (index < text.length)
20
+ levels[index] = direction === "rtl" ? 1 : 0;
21
+ start = index + 1;
22
+ }
23
+ // FriBidi L1 restores segment/paragraph separators to the original base.
24
+ let afterParagraph = false;
25
+ for (let index = 0; index < text.length; index++) {
26
+ tick();
27
+ if (text[index] === "\r" || text[index] === "\u2029")
28
+ afterParagraph = true;
29
+ if (afterParagraph && bidi.getBidiCharTypeName(text[index]) === "BN")
30
+ levels[index] = 0;
31
+ if (text[index] === "\t")
32
+ levels[index] = direction === "rtl" ? 1 : 0;
33
+ }
34
+ let reset = true;
35
+ for (let index = text.length - 1; index >= 0; index--) {
36
+ tick();
37
+ const char = text[index];
38
+ if (char === "\t" || char === "\r" || char === "\u2029")
39
+ reset = true;
40
+ else if (bidi.getBidiCharTypeName(char) !== "BN")
41
+ reset = false;
42
+ if (reset)
43
+ levels[index] = direction === "rtl" ? 1 : 0;
44
+ }
45
+ const items = [];
46
+ const itemLevels = [];
47
+ let previousControl = true;
48
+ for (let index = 0; index < text.length; index++) {
49
+ tick();
50
+ const char = text[index], level = levels[index];
51
+ const control = char === "\t" || char === "\r" || char === "\u2029";
52
+ if (control || previousControl || level !== itemLevels.at(-1)) {
53
+ items.push({ text: "", direction: level % 2 ? "rtl" : "ltr" });
54
+ itemLevels.push(level);
55
+ }
56
+ items.at(-1).text += char;
57
+ previousControl = control;
58
+ }
59
+ const order = items.map((_, index) => index);
60
+ const max = itemLevels.reduce((max, level) => Math.max(max, level), 0);
61
+ // Reorder the single rendered line, including controls, as Pango does.
62
+ for (let level = max; level >= 1; level--) {
63
+ for (let first = 0; first < order.length;) {
64
+ tick();
65
+ if (itemLevels[order[first]] < level) {
66
+ first++;
67
+ continue;
68
+ }
69
+ let last = first;
70
+ while (last < order.length && itemLevels[order[last]] >= level) {
71
+ tick();
72
+ last++;
73
+ }
74
+ for (let a = first, b = last - 1; a < b; a++, b--)
75
+ [order[a], order[b]] = [order[b], order[a]];
76
+ first = last;
77
+ }
78
+ }
79
+ return { items, order };
80
+ }
@@ -3,10 +3,10 @@ import type { BiffPropertySource } from "./biff-encrypted-properties-write.js";
3
3
  import type { BiffRc4Cipher } from "./biff-encryption.js";
4
4
  /** Admit the outer container and reject hidden plaintext property collisions
5
5
  * before asking for a password. POI emits an empty document-summary placeholder. */
6
- export declare function encryptedBiffPropertyStream(streams: ReadonlyMap<string, Uint8Array> | undefined, context: CapabilityContext, charge: (amount: number) => void, propertySources?: ReadonlyMap<string, RangeSource>): Promise<Uint8Array>;
6
+ export declare function encryptedBiffPropertyStream(streams: ReadonlyMap<string, Uint8Array> | undefined, context: CapabilityContext, charge: (amount: number) => void, propertySources?: ReadonlyMap<string, RangeSource>): Promise<Uint8Array | RangeSource>;
7
7
  /** MS-OFFCRYPTO 2.3.5.4: header/table restart block 0; each payload restarts its
8
8
  * descriptor block. These are not Workbook's absolute-position 1024-byte chunks. */
9
9
  export declare function decryptBiffPropertyContainer(encrypted: Uint8Array, keyStream: (block: number, length: number) => Uint8Array, context: CapabilityContext, charge: (amount: number) => void, createCipher?: (block: number) => BiffRc4Cipher): ReadonlyMap<string, Uint8Array>;
10
- /** Decrypt payloads directly into caller storage. Container bytes and the validated
11
- * descriptor table are still buffered; payload plaintext never accumulates in RAM. */
12
- export declare function decryptBiffPropertySources(encrypted: Uint8Array, createCipher: (block: number) => BiffRc4Cipher, context: CapabilityContext, charge: (amount: number) => void): Promise<ReadonlyMap<string, BiffPropertySource>>;
10
+ /** Decrypt retained ciphertext directly into caller storage. Only the descriptor
11
+ * table is buffered; payload plaintext never accumulates in RAM. */
12
+ export declare function decryptBiffPropertySources(encrypted: Uint8Array | RangeSource, createCipher: (block: number) => BiffRc4Cipher, context: CapabilityContext, charge: (amount: number) => void): Promise<ReadonlyMap<string, BiffPropertySource>>;