@poe-platform/safe-bash 0.1.630 → 0.1.631

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 (357) hide show
  1. package/README.md +1 -0
  2. package/dist/office-package/compression.d.ts +19 -0
  3. package/dist/office-package/compression.js +186 -0
  4. package/dist/office-package/runtime.d.ts +11 -0
  5. package/dist/office-package/runtime.js +28 -0
  6. package/dist/safe-bash/chunks/{bz2-B2RXT4EX.js → bz2-ACU4EOVE.js} +2 -2
  7. package/dist/safe-bash/chunks/chunk-2E4KBFO6.js +239 -0
  8. package/dist/safe-bash/chunks/chunk-2E4KBFO6.js.map +7 -0
  9. package/dist/safe-bash/chunks/chunk-3E5M2WEL.js +33 -0
  10. package/dist/safe-bash/chunks/chunk-3E5M2WEL.js.map +7 -0
  11. package/dist/safe-bash/chunks/{chunk-KQ6J7JHQ.js → chunk-3LD67SER.js} +12 -10
  12. package/dist/safe-bash/chunks/{chunk-KQ6J7JHQ.js.map → chunk-3LD67SER.js.map} +1 -1
  13. package/dist/safe-bash/chunks/{chunk-6LSSEOG7.js → chunk-6HNK7Q66.js} +11 -7
  14. package/dist/safe-bash/chunks/{chunk-6LSSEOG7.js.map → chunk-6HNK7Q66.js.map} +1 -1
  15. package/dist/safe-bash/chunks/{chunk-AD7UAP5B.js → chunk-7EEWZY5S.js} +10 -8
  16. package/dist/safe-bash/chunks/{chunk-AD7UAP5B.js.map → chunk-7EEWZY5S.js.map} +1 -1
  17. package/dist/safe-bash/chunks/{chunk-RNKTWFEM.js → chunk-CDBQXRWL.js} +3 -3
  18. package/dist/safe-bash/chunks/{chunk-UYX72YHY.js → chunk-CHHAB5SS.js} +10 -74
  19. package/dist/safe-bash/chunks/{chunk-UYX72YHY.js.map → chunk-CHHAB5SS.js.map} +3 -3
  20. package/dist/safe-bash/chunks/{chunk-6YSBXTTJ.js → chunk-EI4X5ETX.js} +12 -10
  21. package/dist/safe-bash/chunks/{chunk-6YSBXTTJ.js.map → chunk-EI4X5ETX.js.map} +1 -1
  22. package/dist/safe-bash/chunks/{chunk-KZ7QCYNT.js → chunk-GIBLUW2U.js} +13 -9
  23. package/dist/safe-bash/chunks/{chunk-KZ7QCYNT.js.map → chunk-GIBLUW2U.js.map} +1 -1
  24. package/dist/safe-bash/chunks/chunk-GPV7ZFYS.js +1528 -0
  25. package/dist/safe-bash/chunks/chunk-GPV7ZFYS.js.map +7 -0
  26. package/dist/safe-bash/chunks/{chunk-N5CYTGBN.js → chunk-H3E67KTZ.js} +13 -9
  27. package/dist/safe-bash/chunks/{chunk-N5CYTGBN.js.map → chunk-H3E67KTZ.js.map} +1 -1
  28. package/dist/safe-bash/chunks/{chunk-AFH57PPL.js → chunk-IEKESMO4.js} +3 -3
  29. package/dist/safe-bash/chunks/{chunk-DPJWEGIX.js → chunk-JLBIUYT3.js} +2 -2
  30. package/dist/safe-bash/chunks/chunk-JZDO5MC3.js +77 -0
  31. package/dist/safe-bash/chunks/chunk-JZDO5MC3.js.map +7 -0
  32. package/dist/safe-bash/chunks/{chunk-GFZKQIPL.js → chunk-LA6BX562.js} +8 -6
  33. package/dist/safe-bash/chunks/{chunk-GFZKQIPL.js.map → chunk-LA6BX562.js.map} +1 -1
  34. package/dist/safe-bash/chunks/{chunk-PVJJFCGA.js → chunk-M3GPCYSP.js} +2 -2
  35. package/dist/safe-bash/chunks/{chunk-FWDMJTQO.js → chunk-NDCZ3UBP.js} +13 -9
  36. package/dist/safe-bash/chunks/{chunk-FWDMJTQO.js.map → chunk-NDCZ3UBP.js.map} +1 -1
  37. package/dist/safe-bash/chunks/{chunk-2KL6W6NB.js → chunk-O2EVBRKF.js} +1 -2
  38. package/dist/safe-bash/chunks/chunk-OFT77XIB.js +389 -0
  39. package/dist/safe-bash/chunks/chunk-OFT77XIB.js.map +7 -0
  40. package/dist/safe-bash/chunks/{chunk-PCLOK32J.js → chunk-PC6BEIAF.js} +13 -9
  41. package/dist/safe-bash/chunks/{chunk-PCLOK32J.js.map → chunk-PC6BEIAF.js.map} +1 -1
  42. package/dist/safe-bash/chunks/{chunk-3M5F7LD5.js → chunk-QWKP7ZU7.js} +13 -9
  43. package/dist/safe-bash/chunks/{chunk-3M5F7LD5.js.map → chunk-QWKP7ZU7.js.map} +1 -1
  44. package/dist/safe-bash/chunks/chunk-THXJ6CLF.js +53 -0
  45. package/dist/safe-bash/chunks/chunk-THXJ6CLF.js.map +7 -0
  46. package/dist/safe-bash/chunks/{chunk-K7W6Q6FN.js → chunk-V73A742N.js} +58 -16
  47. package/dist/safe-bash/chunks/chunk-V73A742N.js.map +7 -0
  48. package/dist/safe-bash/chunks/{chunk-4BYUV5PA.js → chunk-VN3ZGME3.js} +12 -8
  49. package/dist/safe-bash/chunks/{chunk-4BYUV5PA.js.map → chunk-VN3ZGME3.js.map} +1 -1
  50. package/dist/safe-bash/chunks/{chunk-3BZ5NQ73.js → chunk-WECHUK3Y.js} +369 -36
  51. package/dist/safe-bash/chunks/chunk-WECHUK3Y.js.map +7 -0
  52. package/dist/safe-bash/chunks/{chunk-X55AMTNM.js → chunk-WIOEUR7D.js} +14 -10
  53. package/dist/safe-bash/chunks/{chunk-X55AMTNM.js.map → chunk-WIOEUR7D.js.map} +1 -1
  54. package/dist/safe-bash/chunks/chunk-WPIOO4NX.js +443 -0
  55. package/dist/safe-bash/chunks/chunk-WPIOO4NX.js.map +7 -0
  56. package/dist/safe-bash/chunks/{chunk-C7QNJ3D4.js → chunk-WYTI64IU.js} +2 -2
  57. package/dist/safe-bash/chunks/{xz-AVXFDXW4.js → xz-U4QDTPZL.js} +2 -2
  58. package/dist/safe-bash/chunks/{zstd-R6RPHJYO.js → zstd-OG5RPYXO.js} +2 -2
  59. package/dist/safe-bash/commands/archive/zip/crc.d.ts +2 -0
  60. package/dist/safe-bash/commands/archive/zip/crc.d.ts.map +1 -0
  61. package/dist/safe-bash/commands/archive/zip/crc.js +7 -0
  62. package/dist/safe-bash/commands/archive/zip/crc.js.map +1 -0
  63. package/dist/safe-bash/commands/archive/zip/crypto.d.ts +4 -0
  64. package/dist/safe-bash/commands/archive/zip/crypto.d.ts.map +1 -0
  65. package/dist/safe-bash/commands/archive/zip/crypto.js +34 -0
  66. package/dist/safe-bash/commands/archive/zip/crypto.js.map +1 -0
  67. package/dist/safe-bash/commands/archive/zip/help.d.ts +3 -0
  68. package/dist/safe-bash/commands/archive/zip/help.d.ts.map +1 -0
  69. package/dist/safe-bash/commands/archive/zip/help.js +87 -0
  70. package/dist/safe-bash/commands/archive/zip/help.js.map +1 -0
  71. package/dist/safe-bash/commands/archive/zip/move.d.ts +12 -0
  72. package/dist/safe-bash/commands/archive/zip/move.d.ts.map +1 -0
  73. package/dist/safe-bash/commands/archive/zip/move.js +60 -0
  74. package/dist/safe-bash/commands/archive/zip/move.js.map +1 -0
  75. package/dist/safe-bash/commands/archive/zip/options.js +5 -5
  76. package/dist/safe-bash/commands/archive/zip/options.js.map +1 -1
  77. package/dist/safe-bash/commands/archive/zip-format.d.ts +1 -1
  78. package/dist/safe-bash/commands/archive/zip-format.d.ts.map +1 -1
  79. package/dist/safe-bash/commands/archive/zip-format.js +14 -17
  80. package/dist/safe-bash/commands/archive/zip-format.js.map +1 -1
  81. package/dist/safe-bash/commands/archive/zip.d.ts.map +1 -1
  82. package/dist/safe-bash/commands/archive/zip.js +45 -15
  83. package/dist/safe-bash/commands/archive/zip.js.map +1 -1
  84. package/dist/safe-bash/commands/bytes/compression/bounded-codec.d.ts +2 -0
  85. package/dist/safe-bash/commands/bytes/compression/bounded-codec.d.ts.map +1 -1
  86. package/dist/safe-bash/commands/bytes/compression/bounded-codec.js +4 -0
  87. package/dist/safe-bash/commands/bytes/compression/bounded-codec.js.map +1 -1
  88. package/dist/safe-bash/commands/bytes/compression/codec.d.ts +4 -24
  89. package/dist/safe-bash/commands/bytes/compression/codec.d.ts.map +1 -1
  90. package/dist/safe-bash/commands/bytes/compression/codec.js +12 -168
  91. package/dist/safe-bash/commands/bytes/compression/codec.js.map +1 -1
  92. package/dist/safe-bash/commands/cmp.js +1 -1
  93. package/dist/safe-bash/commands/cmp.js.map +1 -1
  94. package/dist/safe-bash/commands/csplit/index.browser.js +10 -7
  95. package/dist/safe-bash/commands/docx/index.browser.js +54 -0
  96. package/dist/safe-bash/commands/docx/index.browser.js.map +7 -0
  97. package/dist/safe-bash/commands/docx/index.d.ts +25 -0
  98. package/dist/safe-bash/commands/docx/index.d.ts.map +1 -0
  99. package/dist/safe-bash/commands/docx/index.js +42 -0
  100. package/dist/safe-bash/commands/docx/index.js.map +1 -0
  101. package/dist/safe-bash/commands/docx/io.d.ts +15 -0
  102. package/dist/safe-bash/commands/docx/io.d.ts.map +1 -0
  103. package/dist/safe-bash/commands/docx/io.js +16 -0
  104. package/dist/safe-bash/commands/docx/io.js.map +1 -0
  105. package/dist/safe-bash/commands/factor/index.browser.js +7 -5
  106. package/dist/safe-bash/commands/filesystem.d.ts.map +1 -1
  107. package/dist/safe-bash/commands/filesystem.js +9 -1
  108. package/dist/safe-bash/commands/filesystem.js.map +1 -1
  109. package/dist/safe-bash/commands/getopt/index.browser.js +7 -5
  110. package/dist/safe-bash/commands/hexdump/index.browser.js +8 -6
  111. package/dist/safe-bash/commands/iconv/index.browser.js +8 -6
  112. package/dist/safe-bash/commands/line-endings/index.browser.js +10 -7
  113. package/dist/safe-bash/commands/llm/index.browser.js +10 -8
  114. package/dist/safe-bash/commands/llm/providers/index.browser.js +3 -3
  115. package/dist/safe-bash/commands/network/index.browser.js +11 -8
  116. package/dist/safe-bash/commands/node/index.browser.js +8 -6
  117. package/dist/safe-bash/commands/op/index.browser.js +3 -3
  118. package/dist/safe-bash/commands/op/index.js +0 -1
  119. package/dist/safe-bash/commands/op/index.js.map +2 -2
  120. package/dist/safe-bash/commands/pptx/index.d.ts +29 -0
  121. package/dist/safe-bash/commands/pptx/index.d.ts.map +1 -0
  122. package/dist/safe-bash/commands/pptx/index.js +153 -0
  123. package/dist/safe-bash/commands/pptx/index.js.map +1 -0
  124. package/dist/safe-bash/commands/pr/index.browser.js +8 -6
  125. package/dist/safe-bash/commands/predicates.js +1 -1
  126. package/dist/safe-bash/commands/python/execution.d.ts +3 -0
  127. package/dist/safe-bash/commands/python/execution.d.ts.map +1 -0
  128. package/dist/safe-bash/commands/python/execution.js +193 -0
  129. package/dist/safe-bash/commands/python/execution.js.map +1 -0
  130. package/dist/safe-bash/commands/python/index.browser.js +21 -0
  131. package/dist/safe-bash/commands/python/index.browser.js.map +7 -0
  132. package/dist/safe-bash/commands/python/index.d.ts +49 -0
  133. package/dist/safe-bash/commands/python/index.d.ts.map +1 -0
  134. package/dist/safe-bash/commands/python/index.js +317 -0
  135. package/dist/safe-bash/commands/python/index.js.map +1 -0
  136. package/dist/safe-bash/commands/python/installation.d.ts +9 -0
  137. package/dist/safe-bash/commands/python/installation.d.ts.map +1 -0
  138. package/dist/safe-bash/commands/python/installation.js +80 -0
  139. package/dist/safe-bash/commands/python/installation.js.map +1 -0
  140. package/dist/safe-bash/commands/python/invocation.d.ts +10 -0
  141. package/dist/safe-bash/commands/python/invocation.d.ts.map +1 -0
  142. package/dist/safe-bash/commands/python/invocation.js +81 -0
  143. package/dist/safe-bash/commands/python/invocation.js.map +1 -0
  144. package/dist/safe-bash/commands/python/node.d.ts +12 -0
  145. package/dist/safe-bash/commands/python/node.d.ts.map +1 -0
  146. package/dist/safe-bash/commands/python/node.js +33 -0
  147. package/dist/safe-bash/commands/python/node.js.map +1 -0
  148. package/dist/safe-bash/commands/python/provisioning-runtime.d.ts +5 -0
  149. package/dist/safe-bash/commands/python/provisioning-runtime.d.ts.map +1 -0
  150. package/dist/safe-bash/commands/python/provisioning-runtime.js +179 -0
  151. package/dist/safe-bash/commands/python/provisioning-runtime.js.map +1 -0
  152. package/dist/safe-bash/commands/python/provisioning.d.ts +49 -0
  153. package/dist/safe-bash/commands/python/provisioning.d.ts.map +1 -0
  154. package/dist/safe-bash/commands/python/provisioning.js +320 -0
  155. package/dist/safe-bash/commands/python/provisioning.js.map +1 -0
  156. package/dist/safe-bash/commands/python/reply.d.ts +3 -0
  157. package/dist/safe-bash/commands/python/reply.d.ts.map +1 -0
  158. package/dist/safe-bash/commands/python/reply.js +103 -0
  159. package/dist/safe-bash/commands/python/reply.js.map +1 -0
  160. package/dist/safe-bash/commands/python/worker.browser.js +736 -0
  161. package/dist/safe-bash/commands/python/worker.browser.js.map +7 -0
  162. package/dist/safe-bash/commands/python/worker.d.ts +47 -0
  163. package/dist/safe-bash/commands/python/worker.d.ts.map +1 -0
  164. package/dist/safe-bash/commands/python/worker.js +373 -0
  165. package/dist/safe-bash/commands/python/worker.js.map +1 -0
  166. package/dist/safe-bash/commands/tsort/index.browser.js +8 -6
  167. package/dist/safe-bash/commands/xml/index.browser.js +9 -7
  168. package/dist/safe-bash/commands/yq/index.browser.js +10 -8
  169. package/dist/safe-bash/commands/yq/index.d.ts.map +1 -1
  170. package/dist/safe-bash/commands/yq/index.js +32 -4
  171. package/dist/safe-bash/commands/yq/index.js.map +1 -1
  172. package/dist/safe-bash/commands/yq/parser.d.ts.map +1 -1
  173. package/dist/safe-bash/commands/yq/parser.js +21 -5
  174. package/dist/safe-bash/commands/yq/parser.js.map +1 -1
  175. package/dist/safe-bash/contracts/command.d.ts +2 -0
  176. package/dist/safe-bash/contracts/command.d.ts.map +1 -1
  177. package/dist/safe-bash/contracts/command.js +6 -2
  178. package/dist/safe-bash/contracts/command.js.map +1 -1
  179. package/dist/safe-bash/contracts/filesystem-descriptor.d.ts +13 -0
  180. package/dist/safe-bash/contracts/filesystem-descriptor.d.ts.map +1 -0
  181. package/dist/safe-bash/contracts/filesystem-descriptor.js +189 -0
  182. package/dist/safe-bash/contracts/filesystem-descriptor.js.map +1 -0
  183. package/dist/safe-bash/contracts/filesystem-output-budget.d.ts +15 -0
  184. package/dist/safe-bash/contracts/filesystem-output-budget.d.ts.map +1 -0
  185. package/dist/safe-bash/contracts/filesystem-output-budget.js +69 -0
  186. package/dist/safe-bash/contracts/filesystem-output-budget.js.map +1 -0
  187. package/dist/safe-bash/contracts/filesystem-output.d.ts +11 -5
  188. package/dist/safe-bash/contracts/filesystem-output.d.ts.map +1 -1
  189. package/dist/safe-bash/contracts/filesystem-output.js +229 -20
  190. package/dist/safe-bash/contracts/filesystem-output.js.map +1 -1
  191. package/dist/safe-bash/contracts/io.d.ts +29 -0
  192. package/dist/safe-bash/contracts/io.d.ts.map +1 -1
  193. package/dist/safe-bash/contracts/io.js +317 -37
  194. package/dist/safe-bash/contracts/io.js.map +1 -1
  195. package/dist/safe-bash/core.browser.js +5502 -2210
  196. package/dist/safe-bash/core.browser.js.map +4 -4
  197. package/dist/safe-bash/core.d.ts +1 -0
  198. package/dist/safe-bash/core.d.ts.map +1 -1
  199. package/dist/safe-bash/core.js +1 -0
  200. package/dist/safe-bash/core.js.map +1 -1
  201. package/dist/safe-bash/opt-in/commands/cmp/compare.js +95 -0
  202. package/dist/safe-bash/opt-in/commands/cmp/index.d.ts +6 -0
  203. package/dist/safe-bash/opt-in/commands/cmp/index.js +99 -0
  204. package/dist/safe-bash/opt-in/commands/cmp/io.js +218 -0
  205. package/dist/safe-bash/opt-in/commands/cmp/options.d.ts +24 -0
  206. package/dist/safe-bash/opt-in/commands/cmp/options.js +195 -0
  207. package/dist/safe-bash/opt-in/commands/dd/conversions.js +152 -0
  208. package/dist/safe-bash/opt-in/commands/dd/index.d.ts +18 -0
  209. package/dist/safe-bash/opt-in/commands/dd/index.js +561 -0
  210. package/dist/safe-bash/opt-in/commands/dd/io.d.ts +31 -0
  211. package/dist/safe-bash/opt-in/commands/dd/io.js +244 -0
  212. package/dist/safe-bash/opt-in/commands/dd/options.js +184 -0
  213. package/dist/safe-bash/opt-in/commands/dd/report.js +69 -0
  214. package/dist/safe-bash/opt-in/commands/install/arguments.js +224 -0
  215. package/dist/safe-bash/opt-in/commands/install/index.d.ts +6 -0
  216. package/dist/safe-bash/opt-in/commands/install/index.js +678 -0
  217. package/dist/safe-bash/opt-in/commands/install/mode.js +71 -0
  218. package/dist/safe-bash/opt-in/commands/install/options.d.ts +36 -0
  219. package/dist/safe-bash/opt-in/commands/install/options.js +27 -0
  220. package/dist/safe-bash/opt-in/commands/shuf/args.js +179 -0
  221. package/dist/safe-bash/opt-in/commands/shuf/index.d.ts +6 -0
  222. package/dist/safe-bash/opt-in/commands/shuf/index.js +20 -0
  223. package/dist/safe-bash/opt-in/commands/shuf/input.js +93 -0
  224. package/dist/safe-bash/opt-in/commands/shuf/options.d.ts +9 -0
  225. package/dist/safe-bash/opt-in/commands/shuf/options.js +8 -0
  226. package/dist/safe-bash/opt-in/commands/shuf/random.js +114 -0
  227. package/dist/safe-bash/opt-in/commands/shuf/shuf.d.ts +3 -0
  228. package/dist/safe-bash/opt-in/commands/shuf/shuf.js +230 -0
  229. package/dist/safe-bash/opt-in/commands/shuf/usage.js +24 -0
  230. package/dist/safe-bash/opt-in/commands/truncate/arguments.js +186 -0
  231. package/dist/safe-bash/opt-in/commands/truncate/index.d.ts +9 -0
  232. package/dist/safe-bash/opt-in/commands/truncate/index.js +244 -0
  233. package/dist/safe-bash/opt-in/commands/yes/index.d.ts +11 -0
  234. package/dist/safe-bash/opt-in/commands/yes/index.js +167 -0
  235. package/dist/safe-bash/opt-in/commands/yq/arguments.js +177 -0
  236. package/dist/safe-bash/opt-in/commands/yq/evaluate.js +564 -0
  237. package/dist/safe-bash/opt-in/commands/yq/expression.js +183 -0
  238. package/dist/safe-bash/opt-in/commands/yq/inplace.js +65 -0
  239. package/dist/safe-bash/opt-in/commands/yq/mike.d.ts +9 -0
  240. package/dist/safe-bash/opt-in/commands/yq/mike.js +192 -0
  241. package/dist/safe-bash/opt-in/commands/yq/native-encoder.js +165 -0
  242. package/dist/safe-bash/opt-in/commands/yq/native-work.d.ts +44 -0
  243. package/dist/safe-bash/opt-in/commands/yq/native-work.js +188 -0
  244. package/dist/safe-bash/opt-in/commands/yq/nodes.js +621 -0
  245. package/dist/safe-bash/opt-in/entrypoints/arrays.d.ts +1 -0
  246. package/dist/safe-bash/opt-in/entrypoints/arrays.js +1 -0
  247. package/dist/safe-bash/opt-in/entrypoints/cmp.d.ts +2 -0
  248. package/dist/safe-bash/opt-in/entrypoints/cmp.js +1 -0
  249. package/dist/safe-bash/opt-in/entrypoints/dd.d.ts +2 -0
  250. package/dist/safe-bash/opt-in/entrypoints/dd.js +1 -0
  251. package/dist/safe-bash/opt-in/entrypoints/devices.d.ts +2 -0
  252. package/dist/safe-bash/opt-in/entrypoints/devices.js +1 -0
  253. package/dist/safe-bash/opt-in/entrypoints/install.d.ts +2 -0
  254. package/dist/safe-bash/opt-in/entrypoints/install.js +1 -0
  255. package/dist/safe-bash/opt-in/entrypoints/jobs.d.ts +1 -0
  256. package/dist/safe-bash/opt-in/entrypoints/jobs.js +1 -0
  257. package/dist/safe-bash/opt-in/entrypoints/mapfile.d.ts +1 -0
  258. package/dist/safe-bash/opt-in/entrypoints/mapfile.js +1 -0
  259. package/dist/safe-bash/opt-in/entrypoints/read.d.ts +2 -0
  260. package/dist/safe-bash/opt-in/entrypoints/read.js +1 -0
  261. package/dist/safe-bash/opt-in/entrypoints/shuf.d.ts +2 -0
  262. package/dist/safe-bash/opt-in/entrypoints/shuf.js +1 -0
  263. package/dist/safe-bash/opt-in/entrypoints/trap.d.ts +2 -0
  264. package/dist/safe-bash/opt-in/entrypoints/trap.js +1 -0
  265. package/dist/safe-bash/opt-in/entrypoints/truncate.d.ts +2 -0
  266. package/dist/safe-bash/opt-in/entrypoints/truncate.js +1 -0
  267. package/dist/safe-bash/opt-in/entrypoints/yes.d.ts +2 -0
  268. package/dist/safe-bash/opt-in/entrypoints/yes.js +1 -0
  269. package/dist/safe-bash/opt-in/entrypoints/yq.d.ts +3 -0
  270. package/dist/safe-bash/opt-in/entrypoints/yq.js +1 -0
  271. package/dist/safe-bash/opt-in/fs/devices/index.d.ts +8 -0
  272. package/dist/safe-bash/opt-in/fs/devices/index.js +292 -0
  273. package/dist/safe-bash/opt-in/optional.d.ts +28 -0
  274. package/dist/safe-bash/opt-in/optional.js +14 -0
  275. package/dist/safe-bash/opt-in/shell/extensions/arrays/index.d.ts +2 -0
  276. package/dist/safe-bash/opt-in/shell/extensions/arrays/index.js +4 -0
  277. package/dist/safe-bash/opt-in/shell/extensions/jobs/index.d.ts +2 -0
  278. package/dist/safe-bash/opt-in/shell/extensions/jobs/index.js +291 -0
  279. package/dist/safe-bash/opt-in/shell/extensions/jobs/state.js +374 -0
  280. package/dist/safe-bash/opt-in/shell/extensions/mapfile/index.d.ts +24 -0
  281. package/dist/safe-bash/opt-in/shell/extensions/mapfile/index.js +338 -0
  282. package/dist/safe-bash/opt-in/shell/extensions/read/index.d.ts +5 -0
  283. package/dist/safe-bash/opt-in/shell/extensions/read/index.js +351 -0
  284. package/dist/safe-bash/opt-in/shell/extensions/trap/index.d.ts +9 -0
  285. package/dist/safe-bash/opt-in/shell/extensions/trap/index.js +210 -0
  286. package/dist/safe-bash/optional-host.d.ts +5 -0
  287. package/dist/safe-bash/optional-host.d.ts.map +1 -0
  288. package/dist/safe-bash/optional-host.js +3 -0
  289. package/dist/safe-bash/optional-host.js.map +1 -0
  290. package/dist/safe-bash/shell/arrays/bindings.d.ts +15 -5
  291. package/dist/safe-bash/shell/arrays/bindings.d.ts.map +1 -1
  292. package/dist/safe-bash/shell/arrays/bindings.js +131 -23
  293. package/dist/safe-bash/shell/arrays/bindings.js.map +1 -1
  294. package/dist/safe-bash/shell/arrays/ledger.d.ts +1 -0
  295. package/dist/safe-bash/shell/arrays/ledger.d.ts.map +1 -1
  296. package/dist/safe-bash/shell/arrays/ledger.js +19 -0
  297. package/dist/safe-bash/shell/arrays/ledger.js.map +1 -1
  298. package/dist/safe-bash/shell/arrays/state.d.ts.map +1 -1
  299. package/dist/safe-bash/shell/arrays/state.js +3 -1
  300. package/dist/safe-bash/shell/arrays/state.js.map +1 -1
  301. package/dist/safe-bash/shell/arrays/syntax.d.ts +4 -1
  302. package/dist/safe-bash/shell/arrays/syntax.d.ts.map +1 -1
  303. package/dist/safe-bash/shell/arrays/syntax.js +3 -3
  304. package/dist/safe-bash/shell/arrays/syntax.js.map +1 -1
  305. package/dist/safe-bash/shell/conditional.js +1 -1
  306. package/dist/safe-bash/shell/descriptors.d.ts +31 -0
  307. package/dist/safe-bash/shell/descriptors.d.ts.map +1 -0
  308. package/dist/safe-bash/shell/descriptors.js +234 -0
  309. package/dist/safe-bash/shell/descriptors.js.map +1 -0
  310. package/dist/safe-bash/shell/diagnostic-name-ranges.d.ts +2 -0
  311. package/dist/safe-bash/shell/diagnostic-name-ranges.d.ts.map +1 -0
  312. package/dist/safe-bash/shell/diagnostic-name-ranges.js +717 -0
  313. package/dist/safe-bash/shell/diagnostic-name-ranges.js.map +1 -0
  314. package/dist/safe-bash/shell/diagnostic-name.d.ts +3 -0
  315. package/dist/safe-bash/shell/diagnostic-name.d.ts.map +1 -0
  316. package/dist/safe-bash/shell/diagnostic-name.js +89 -0
  317. package/dist/safe-bash/shell/diagnostic-name.js.map +1 -0
  318. package/dist/safe-bash/shell/display.js +1 -1
  319. package/dist/safe-bash/shell/display.js.map +1 -1
  320. package/dist/safe-bash/shell/extensions.d.ts +188 -0
  321. package/dist/safe-bash/shell/extensions.d.ts.map +1 -0
  322. package/dist/safe-bash/shell/extensions.js +141 -0
  323. package/dist/safe-bash/shell/extensions.js.map +1 -0
  324. package/dist/safe-bash/shell/input.d.ts +66 -14
  325. package/dist/safe-bash/shell/input.d.ts.map +1 -1
  326. package/dist/safe-bash/shell/input.js +947 -173
  327. package/dist/safe-bash/shell/input.js.map +1 -1
  328. package/dist/safe-bash/shell/parser.d.ts +38 -6
  329. package/dist/safe-bash/shell/parser.d.ts.map +1 -1
  330. package/dist/safe-bash/shell/parser.js +339 -52
  331. package/dist/safe-bash/shell/parser.js.map +1 -1
  332. package/dist/safe-bash/shell/runtime.d.ts +92 -20
  333. package/dist/safe-bash/shell/runtime.d.ts.map +1 -1
  334. package/dist/safe-bash/shell/runtime.js +2547 -689
  335. package/dist/safe-bash/shell/runtime.js.map +1 -1
  336. package/dist/safe-bash/shell/shell.d.ts.map +1 -1
  337. package/dist/safe-bash/shell/shell.js +52 -21
  338. package/dist/safe-bash/shell/shell.js.map +1 -1
  339. package/dist/safe-bash/shell/types.d.ts +4 -0
  340. package/dist/safe-bash/shell/types.d.ts.map +1 -1
  341. package/dist/safe-bash/shell/types.js.map +1 -1
  342. package/package.json +92 -4
  343. package/dist/safe-bash/chunks/chunk-3BZ5NQ73.js.map +0 -7
  344. package/dist/safe-bash/chunks/chunk-4DBWBEU7.js +0 -194
  345. package/dist/safe-bash/chunks/chunk-4DBWBEU7.js.map +0 -7
  346. package/dist/safe-bash/chunks/chunk-CXMIIXJA.js +0 -178
  347. package/dist/safe-bash/chunks/chunk-CXMIIXJA.js.map +0 -7
  348. package/dist/safe-bash/chunks/chunk-K7W6Q6FN.js.map +0 -7
  349. /package/dist/safe-bash/chunks/{bz2-B2RXT4EX.js.map → bz2-ACU4EOVE.js.map} +0 -0
  350. /package/dist/safe-bash/chunks/{chunk-RNKTWFEM.js.map → chunk-CDBQXRWL.js.map} +0 -0
  351. /package/dist/safe-bash/chunks/{chunk-AFH57PPL.js.map → chunk-IEKESMO4.js.map} +0 -0
  352. /package/dist/safe-bash/chunks/{chunk-DPJWEGIX.js.map → chunk-JLBIUYT3.js.map} +0 -0
  353. /package/dist/safe-bash/chunks/{chunk-PVJJFCGA.js.map → chunk-M3GPCYSP.js.map} +0 -0
  354. /package/dist/safe-bash/chunks/{chunk-2KL6W6NB.js.map → chunk-O2EVBRKF.js.map} +0 -0
  355. /package/dist/safe-bash/chunks/{chunk-C7QNJ3D4.js.map → chunk-WYTI64IU.js.map} +0 -0
  356. /package/dist/safe-bash/chunks/{xz-AVXFDXW4.js.map → xz-U4QDTPZL.js.map} +0 -0
  357. /package/dist/safe-bash/chunks/{zstd-R6RPHJYO.js.map → zstd-OG5RPYXO.js.map} +0 -0
@@ -0,0 +1,389 @@
1
+ import {
2
+ filesystemOutputBudgets,
3
+ openCommandFile
4
+ } from "./chunk-2E4KBFO6.js";
5
+ import {
6
+ createOutputOperation
7
+ } from "./chunk-CDBQXRWL.js";
8
+ import {
9
+ FsError,
10
+ createBytePipe,
11
+ outputFailure
12
+ } from "./chunk-WPIOO4NX.js";
13
+ import {
14
+ init_platform
15
+ } from "./chunk-O2EVBRKF.js";
16
+
17
+ // packages/safe-bash/src/contracts/filesystem-output.ts
18
+ init_platform();
19
+ async function writeFileOutput(context, bytes, write) {
20
+ context.signal.throwIfAborted();
21
+ const budget = context.registerCleanup && filesystemOutputBudgets.get(context.registerCleanup);
22
+ let pending;
23
+ const destination = { write(chunk) {
24
+ context.signal.throwIfAborted();
25
+ return pending = (async () => {
26
+ await write(chunk);
27
+ })();
28
+ } };
29
+ try {
30
+ await (budget?.sinkBudget(destination) ?? destination).write(bytes);
31
+ } catch (error) {
32
+ await pending?.catch(() => {
33
+ });
34
+ context.signal.throwIfAborted();
35
+ throw error;
36
+ }
37
+ context.signal.throwIfAborted();
38
+ }
39
+ async function openDescriptorOutput(context, path, options) {
40
+ const { flag, mode } = options;
41
+ const { cleanupFailurePrioritySignal } = context;
42
+ if (flag !== "w" && flag !== "a" && flag !== "wx") throw new TypeError("Invalid descriptor output flag");
43
+ const controller = new AbortController();
44
+ const signal = AbortSignal.any([context.signal, controller.signal]);
45
+ const cleanups = [];
46
+ let descriptor;
47
+ let accepting = true;
48
+ let completed = false;
49
+ let failure;
50
+ let retirementFailure;
51
+ let closeFailureAcknowledged = false;
52
+ let writes = Promise.resolve();
53
+ let closing;
54
+ let finishing;
55
+ let aborting;
56
+ let acquired;
57
+ const acquisition = new Promise((resolve) => {
58
+ acquired = resolve;
59
+ });
60
+ const check = () => {
61
+ context.signal.throwIfAborted();
62
+ if (failure) throw failure.reason;
63
+ signal.throwIfAborted();
64
+ };
65
+ const retire = () => {
66
+ accepting = false;
67
+ closing ??= (async () => {
68
+ await acquisition;
69
+ await writes;
70
+ try {
71
+ await descriptor?.close();
72
+ } catch (reason) {
73
+ retirementFailure = { reason };
74
+ throw reason;
75
+ } finally {
76
+ context.signal.removeEventListener("abort", interrupted);
77
+ }
78
+ })();
79
+ void closing.catch(() => {
80
+ });
81
+ return closing;
82
+ };
83
+ const interrupted = () => {
84
+ void retire().catch(() => {
85
+ });
86
+ };
87
+ const cleanup = async () => {
88
+ await retire().catch(() => {
89
+ });
90
+ let cleanupFailure;
91
+ for (const close of cleanups) {
92
+ try {
93
+ await close();
94
+ } catch (reason) {
95
+ cleanupFailure ??= { reason };
96
+ }
97
+ }
98
+ (cleanupFailurePrioritySignal ?? context.signal).throwIfAborted();
99
+ if (retirementFailure && !closeFailureAcknowledged && (!failure || cleanupFailurePrioritySignal !== void 0 && failure.cancellation)) throw retirementFailure.reason;
100
+ if (!failure && cleanupFailure && (cleanupFailurePrioritySignal === void 0 || !signal.aborted)) throw cleanupFailure.reason;
101
+ };
102
+ const registerCleanup = (close) => {
103
+ cleanups.push(close);
104
+ };
105
+ const budget = context.registerCleanup && filesystemOutputBudgets.get(context.registerCleanup);
106
+ if (budget) filesystemOutputBudgets.set(registerCleanup, budget);
107
+ try {
108
+ context.registerCleanup?.(cleanup);
109
+ context.signal.addEventListener("abort", interrupted, { once: true });
110
+ check();
111
+ const capabilities = await context.fs.capabilitiesFor?.(path, { signal }) ?? context.fs.capabilities;
112
+ check();
113
+ if (!accepting) throw new FsError("EBADF", { path, syscall: "open" });
114
+ if (capabilities.readOnly === true) throw new FsError("EROFS", { path, syscall: "open" });
115
+ if (flag === "a" ? capabilities.append === false : capabilities.write === false) throw new FsError("ENOTSUP", { path, syscall: "open" });
116
+ if (flag === "wx" && capabilities.exclusiveCreate !== true) throw new FsError("ENOTSUP", { path, syscall: "open" });
117
+ descriptor = await openCommandFile({ fs: context.fs, signal, registerCleanup, cleanupFailurePrioritySignal: cleanupFailurePrioritySignal ?? context.signal }, path, {
118
+ access: "write",
119
+ creation: flag === "wx" ? "exclusive" : "ifMissing",
120
+ truncate: flag === "w",
121
+ append: flag === "a",
122
+ ...mode === void 0 ? {} : { mode }
123
+ });
124
+ acquired();
125
+ check();
126
+ if (!accepting) throw new FsError("EBADF", { path, syscall: "open" });
127
+ const retained = descriptor;
128
+ const probeRead = retained.capabilities.readObservation === true ? retained.probeRead : void 0;
129
+ if (retained.capabilities.readObservation === true && typeof probeRead !== "function") throw new FsError("ENOTSUP", { path, syscall: "probeRead" });
130
+ const admit = (syscall, forwarded, action) => {
131
+ try {
132
+ const operationSignal = forwarded.signal;
133
+ context.signal.throwIfAborted();
134
+ signal.throwIfAborted();
135
+ operationSignal?.throwIfAborted();
136
+ if (!accepting) throw new FsError("EBADF", { path, syscall });
137
+ return action(operationSignal === void 0 ? {} : { signal: operationSignal });
138
+ } catch (reason) {
139
+ return Promise.reject(reason);
140
+ }
141
+ };
142
+ const exposed = {
143
+ capabilities: retained.capabilities,
144
+ ...probeRead === void 0 ? {} : { probeRead: (forwarded = {}) => admit("probeRead", forwarded, (supplied) => probeRead.call(retained, supplied)) },
145
+ ...retained.getPosition ? { getPosition: (forwarded = {}) => admit("getPosition", forwarded, (supplied) => retained.getPosition(supplied)) } : {},
146
+ stat: (forwarded = {}) => admit("fstat", forwarded, (supplied) => retained.stat(supplied)),
147
+ read: (buffer, position, forwarded = {}) => admit("read", forwarded, (supplied) => retained.read(buffer, position, supplied)),
148
+ write: (buffer, position, forwarded = {}) => admit("write", forwarded, (supplied) => retained.write(buffer, position, supplied)),
149
+ truncate: (length, forwarded = {}) => admit("ftruncate", forwarded, (supplied) => retained.truncate(length, supplied)),
150
+ sync: (dataOnly, forwarded = {}) => admit(dataOnly ? "fdatasync" : "fsync", forwarded, (supplied) => retained.sync(dataOnly, supplied)),
151
+ close: retire,
152
+ acknowledgeCloseFailure(reason) {
153
+ const acknowledged = retained.acknowledgeCloseFailure(reason);
154
+ if (acknowledged) closeFailureAcknowledged = true;
155
+ return acknowledged;
156
+ }
157
+ };
158
+ const write = (chunk) => {
159
+ try {
160
+ check();
161
+ if (!accepting) throw new FsError("EBADF", { path, syscall: "write" });
162
+ if (!(chunk instanceof Uint8Array)) throw new TypeError("Byte sinks require Uint8Array chunks");
163
+ } catch (reason) {
164
+ return Promise.reject(reason);
165
+ }
166
+ const writing = writes.then(async () => {
167
+ try {
168
+ check();
169
+ for (let offset = 0; offset < chunk.byteLength; ) {
170
+ const end = Math.min(offset + 64 * 1024, chunk.byteLength);
171
+ const count = await descriptor.write(chunk.subarray(offset, end), null);
172
+ check();
173
+ if (!count) throw new FsError("EIO", { path, syscall: "write", message: "descriptor write made no progress" });
174
+ offset += count;
175
+ }
176
+ } catch (reason) {
177
+ failure ??= { reason: context.signal.aborted ? context.signal.reason : reason, cancellation: context.signal.aborted };
178
+ controller.abort(failure.reason);
179
+ check();
180
+ }
181
+ });
182
+ writes = writing.then(() => {
183
+ }, () => {
184
+ });
185
+ return writing;
186
+ };
187
+ const abort = (reason) => {
188
+ if (!completed && !retirementFailure) {
189
+ failure ??= { reason, cancellation: context.signal.aborted };
190
+ controller.abort(failure.reason);
191
+ }
192
+ return aborting ??= cleanup();
193
+ };
194
+ return {
195
+ descriptor: exposed,
196
+ signal,
197
+ sink: { write, [outputFailure]: abort, ownedOutput: { consumerClosed: controller.signal, write } },
198
+ finish() {
199
+ const retired = retire();
200
+ finishing ??= (async () => {
201
+ let closeFailure;
202
+ try {
203
+ await retired;
204
+ } catch (reason) {
205
+ closeFailure = { reason };
206
+ }
207
+ check();
208
+ if (closeFailure) throw closeFailure.reason;
209
+ completed = true;
210
+ })();
211
+ return finishing;
212
+ },
213
+ abort
214
+ };
215
+ } catch (reason) {
216
+ failure ??= { reason, cancellation: context.signal.aborted };
217
+ acquired();
218
+ await cleanup().catch(() => {
219
+ });
220
+ context.signal.throwIfAborted();
221
+ throw failure.reason;
222
+ }
223
+ }
224
+ async function openFileOutput(context, path, options, incremental) {
225
+ if (typeof options !== "string") {
226
+ if (options.descriptor !== void 0 && typeof options.descriptor !== "boolean") throw new TypeError("Invalid descriptor output option");
227
+ if (options.descriptor === true) return openDescriptorOutput(context, path, options);
228
+ }
229
+ const { flag, mode } = typeof options === "string" ? { flag: options, mode: void 0 } : options;
230
+ let pipe;
231
+ let task;
232
+ let completed = false;
233
+ let ended = false;
234
+ let closing = false;
235
+ let failure;
236
+ const consumer = new AbortController();
237
+ let writes = Promise.resolve();
238
+ let acknowledge;
239
+ const acknowledgeWrite = () => {
240
+ const accepted = acknowledge;
241
+ acknowledge = void 0;
242
+ accepted?.();
243
+ };
244
+ let ready;
245
+ const opened = new Promise((resolve) => {
246
+ ready = resolve;
247
+ });
248
+ const destination = {
249
+ [outputFailure]: (reason) => operation.abort(reason),
250
+ async write(chunk) {
251
+ if (closing) throw new FsError("EBADF", { path, syscall: "write" });
252
+ const writing = writes.then(async () => {
253
+ for (let offset = 0; offset < chunk.byteLength; offset += 64 * 1024) {
254
+ const accepted = new Promise((resolve) => {
255
+ acknowledge = resolve;
256
+ });
257
+ await pipe.writable.write(chunk.subarray(offset, offset + 64 * 1024));
258
+ await accepted;
259
+ if (failure) throw failure.reason;
260
+ operation.signal.throwIfAborted();
261
+ }
262
+ });
263
+ writes = writing.catch(() => {
264
+ });
265
+ await writing;
266
+ }
267
+ };
268
+ const budget = context.outputBudget !== "independent" && context.registerCleanup ? filesystemOutputBudgets.get(context.registerCleanup) : void 0;
269
+ const operation = createOutputOperation(context, budget?.sinkBudget(destination) ?? destination);
270
+ operation.registerCleanup(async () => {
271
+ closing = true;
272
+ if (!completed) {
273
+ void operation.abort(operation.signal.aborted ? operation.signal.reason : new FsError("ECANCELED", { path, syscall: "write" }));
274
+ await pipe?.abort(operation.signal.reason);
275
+ }
276
+ await task?.catch(() => {
277
+ });
278
+ await writes;
279
+ });
280
+ try {
281
+ pipe = createBytePipe({ highWaterMark: 1, signal: operation.signal });
282
+ let reading = false;
283
+ const source = {
284
+ [Symbol.asyncIterator]() {
285
+ return (async function* () {
286
+ reading = true;
287
+ ready();
288
+ for await (const chunk of pipe.readable) {
289
+ yield chunk;
290
+ acknowledgeWrite();
291
+ }
292
+ operation.signal.throwIfAborted();
293
+ ended = true;
294
+ })();
295
+ }
296
+ };
297
+ task = (async () => {
298
+ const { fs } = context;
299
+ const signal = operation.signal;
300
+ signal.throwIfAborted();
301
+ const capabilities = await fs.capabilitiesFor?.(path, { signal }) ?? fs.capabilities;
302
+ if (capabilities.readOnly === true) throw new FsError("EROFS", { path, syscall: "write" });
303
+ if (incremental && (flag === "wx" || mode !== void 0)) throw new FsError("ENOTSUP", { path, syscall: "write", message: "incremental callback cannot honor exclusive creation or initial mode" });
304
+ if (flag === "wx") {
305
+ if (capabilities.exclusiveCreate !== true) throw new FsError("ENOTSUP", { path, syscall: "write", message: "exclusive creation is not supported" });
306
+ } else {
307
+ try {
308
+ await fs.access(path, 2, { signal });
309
+ } catch (error) {
310
+ signal.throwIfAborted();
311
+ if (!(error instanceof FsError) || error.code !== "ENOENT" && error.code !== "ENOTSUP") throw error;
312
+ }
313
+ }
314
+ signal.throwIfAborted();
315
+ const fsOptions = { signal, ...mode === void 0 ? {} : { mode } };
316
+ const streaming = flag === "a" ? capabilities.streamingAppend ?? capabilities.streamingWrite : capabilities.streamingWrite;
317
+ if ((!incremental || capabilities.descriptorWriteStream === true) && streaming !== false && fs.writeStream) {
318
+ try {
319
+ await fs.writeStream(path, source, { ...fsOptions, flag });
320
+ if (!ended) throw new FsError("EIO", { path, message: "Streaming writer returned before consuming output" });
321
+ return;
322
+ } catch (error) {
323
+ signal.throwIfAborted();
324
+ if (flag === "wx" || reading || !(error instanceof FsError) || error.code !== "ENOTSUP") throw error;
325
+ }
326
+ }
327
+ if (flag === "wx") throw new FsError("ENOTSUP", { path, syscall: "writeStream", message: "exclusive output requires streaming support" });
328
+ if (flag === "w" && capabilities.write === false) throw new FsError("ENOTSUP", { path, syscall: "writeFile" });
329
+ if ((!incremental || flag === "a") && capabilities.append === false) throw new FsError("ENOTSUP", { path, syscall: "appendFile" });
330
+ const sink = incremental ? await incremental() : await (async () => {
331
+ if (flag === "a") await fs.appendFile(path, new Uint8Array(), fsOptions);
332
+ else await fs.writeFile(path, new Uint8Array(), { ...fsOptions, flag });
333
+ return { write: (chunk) => fs.appendFile(path, chunk, fsOptions) };
334
+ })();
335
+ for await (const chunk of source) {
336
+ signal.throwIfAborted();
337
+ await sink.write(chunk);
338
+ }
339
+ })();
340
+ void task.then(acknowledgeWrite, (error) => {
341
+ failure = { reason: error };
342
+ acknowledgeWrite();
343
+ if (!operation.signal.aborted) consumer.abort(error);
344
+ void operation.abort(error).catch(() => {
345
+ });
346
+ });
347
+ await Promise.race([opened, task]);
348
+ operation.signal.throwIfAborted();
349
+ const write = async (chunk) => {
350
+ try {
351
+ await operation.output.write(chunk);
352
+ } catch (error) {
353
+ throw failure ? failure.reason : error;
354
+ }
355
+ };
356
+ return {
357
+ signal: operation.signal,
358
+ sink: {
359
+ [outputFailure]: destination[outputFailure],
360
+ ownedOutput: { consumerClosed: consumer.signal, write },
361
+ write
362
+ },
363
+ async finish() {
364
+ closing = true;
365
+ try {
366
+ await writes;
367
+ await pipe.close();
368
+ await task;
369
+ operation.signal.throwIfAborted();
370
+ completed = true;
371
+ } catch (error) {
372
+ throw failure ? failure.reason : error;
373
+ } finally {
374
+ await operation.close();
375
+ }
376
+ },
377
+ abort: (reason) => operation.abort(reason)
378
+ };
379
+ } catch (error) {
380
+ await operation.abort(error);
381
+ throw error;
382
+ }
383
+ }
384
+
385
+ export {
386
+ writeFileOutput,
387
+ openFileOutput
388
+ };
389
+ //# sourceMappingURL=chunk-OFT77XIB.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/contracts/filesystem-output.ts"],
4
+ "sourcesContent": ["import { FsError } from \"./errors.js\";\nimport type { CommandContext } from \"./command.js\";\nimport type { FsOptions } from \"./filesystem.js\";\nimport { createBytePipe, outputFailure, type BytePipe, type ByteSink, type ByteSource } from \"./io.js\";\nimport { createOutputOperation } from \"./output.js\";\n\nimport { filesystemOutputBudgets, type FileOutputContext } from \"./filesystem-output-budget.js\";\nimport { openCommandFile, type CommandFileDescriptor } from \"./filesystem-descriptor.js\";\nexport { bindFileOutputBudget, assertCountedFileOutput, writeFileOutputCounted } from \"./filesystem-output-budget.js\";\nexport type { CountedFileWrite, FileOutputContext } from \"./filesystem-output-budget.js\";\n\n\nexport async function writeFileOutput(context: Pick<CommandContext, \"signal\" | \"registerCleanup\">, bytes: Uint8Array, write: (bytes: Uint8Array) => Promise<void>): Promise<void> {\n context.signal.throwIfAborted();\n const budget = context.registerCleanup && filesystemOutputBudgets.get(context.registerCleanup);\n let pending: Promise<void> | undefined;\n const destination: ByteSink = { write(chunk) {\n context.signal.throwIfAborted();\n return pending = (async () => { await write(chunk); })();\n } };\n try { await (budget?.sinkBudget(destination) ?? destination).write(bytes); }\n catch (error) {\n // Shell sink cancellation may win its race before the direct host call.\n // Keep the original awaited-write lifetime without a retained cleanup hook.\n await pending?.catch(() => {});\n context.signal.throwIfAborted();\n throw error;\n }\n context.signal.throwIfAborted();\n}\n\nexport interface FileOutput {\n readonly sink: ByteSink;\n readonly signal: AbortSignal;\n readonly descriptor?: CommandFileDescriptor;\n finish(): Promise<void>;\n abort(reason: unknown): Promise<void>;\n}\n\nexport interface FileOutputOpenOptions {\n readonly flag: \"w\" | \"a\" | \"wx\";\n readonly mode?: number;\n readonly descriptor?: boolean;\n}\n\nasync function openDescriptorOutput(context: FileOutputContext, path: string, options: FileOutputOpenOptions): Promise<FileOutput> {\n const { flag, mode } = options;\n const { cleanupFailurePrioritySignal } = context;\n if (flag !== \"w\" && flag !== \"a\" && flag !== \"wx\") throw new TypeError(\"Invalid descriptor output flag\");\n const controller = new AbortController();\n const signal = AbortSignal.any([context.signal, controller.signal]);\n const cleanups: (() => void | Promise<void>)[] = [];\n let descriptor: CommandFileDescriptor | undefined;\n let accepting = true;\n let completed = false;\n let failure: { reason: unknown; cancellation: boolean } | undefined;\n let retirementFailure: { reason: unknown } | undefined;\n let closeFailureAcknowledged = false;\n let writes: Promise<void> = Promise.resolve();\n let closing: Promise<void> | undefined;\n let finishing: Promise<void> | undefined;\n let aborting: Promise<void> | undefined;\n let acquired!: () => void;\n const acquisition = new Promise<void>(resolve => { acquired = resolve; });\n const check = (): void => {\n context.signal.throwIfAborted();\n if (failure) throw failure.reason;\n signal.throwIfAborted();\n };\n const retire = (): Promise<void> => {\n accepting = false;\n closing ??= (async () => {\n await acquisition;\n await writes;\n try { await descriptor?.close(); }\n catch (reason) { retirementFailure = { reason }; throw reason; }\n finally { context.signal.removeEventListener(\"abort\", interrupted); }\n })();\n void closing.catch(() => {});\n return closing;\n };\n const interrupted = (): void => { void retire().catch(() => {}); };\n const cleanup = async (): Promise<void> => {\n await retire().catch(() => {});\n let cleanupFailure: { reason: unknown } | undefined;\n for (const close of cleanups) {\n try { await close(); } catch (reason) { cleanupFailure ??= { reason }; }\n }\n (cleanupFailurePrioritySignal ?? context.signal).throwIfAborted();\n if (retirementFailure && !closeFailureAcknowledged && (!failure || cleanupFailurePrioritySignal !== undefined && failure.cancellation)) throw retirementFailure.reason;\n if (!failure && cleanupFailure && (cleanupFailurePrioritySignal === undefined || !signal.aborted)) throw cleanupFailure.reason;\n };\n const registerCleanup = (close: () => void | Promise<void>): void => { cleanups.push(close); };\n const budget = context.registerCleanup && filesystemOutputBudgets.get(context.registerCleanup);\n if (budget) filesystemOutputBudgets.set(registerCleanup, budget);\n try {\n context.registerCleanup?.(cleanup);\n context.signal.addEventListener(\"abort\", interrupted, { once: true });\n check();\n const capabilities = await context.fs.capabilitiesFor?.(path, { signal }) ?? context.fs.capabilities;\n check();\n if (!accepting) throw new FsError(\"EBADF\", { path, syscall: \"open\" });\n if (capabilities.readOnly === true) throw new FsError(\"EROFS\", { path, syscall: \"open\" });\n if (flag === \"a\" ? capabilities.append === false : capabilities.write === false) throw new FsError(\"ENOTSUP\", { path, syscall: \"open\" });\n if (flag === \"wx\" && capabilities.exclusiveCreate !== true) throw new FsError(\"ENOTSUP\", { path, syscall: \"open\" });\n descriptor = await openCommandFile({ fs: context.fs, signal, registerCleanup, cleanupFailurePrioritySignal: cleanupFailurePrioritySignal ?? context.signal }, path, {\n access: \"write\", creation: flag === \"wx\" ? \"exclusive\" : \"ifMissing\",\n truncate: flag === \"w\", append: flag === \"a\", ...(mode === undefined ? {} : { mode }),\n });\n acquired();\n check();\n if (!accepting) throw new FsError(\"EBADF\", { path, syscall: \"open\" });\n const retained = descriptor;\n const probeRead = retained.capabilities.readObservation === true ? retained.probeRead : undefined;\n if (retained.capabilities.readObservation === true && typeof probeRead !== \"function\") throw new FsError(\"ENOTSUP\", { path, syscall: \"probeRead\" });\n const admit = <Result>(syscall: string, forwarded: FsOptions, action: (options: FsOptions) => Promise<Result>): Promise<Result> => {\n try {\n const operationSignal = forwarded.signal;\n context.signal.throwIfAborted();\n signal.throwIfAborted();\n operationSignal?.throwIfAborted();\n if (!accepting) throw new FsError(\"EBADF\", { path, syscall });\n return action(operationSignal === undefined ? {} : { signal: operationSignal });\n } catch (reason) { return Promise.reject(reason); }\n };\n const exposed: CommandFileDescriptor = {\n capabilities: retained.capabilities,\n ...(probeRead === undefined ? {} : { probeRead: (forwarded: FsOptions = {}) => admit(\"probeRead\", forwarded, supplied => probeRead.call(retained, supplied)) }),\n ...(retained.getPosition ? { getPosition: (forwarded = {}) => admit(\"getPosition\", forwarded, supplied => retained.getPosition!(supplied)) } : {}),\n stat: (forwarded = {}) => admit(\"fstat\", forwarded, supplied => retained.stat(supplied)),\n read: (buffer, position, forwarded = {}) => admit(\"read\", forwarded, supplied => retained.read(buffer, position, supplied)),\n write: (buffer, position, forwarded = {}) => admit(\"write\", forwarded, supplied => retained.write(buffer, position, supplied)),\n truncate: (length, forwarded = {}) => admit(\"ftruncate\", forwarded, supplied => retained.truncate(length, supplied)),\n sync: (dataOnly, forwarded = {}) => admit(dataOnly ? \"fdatasync\" : \"fsync\", forwarded, supplied => retained.sync(dataOnly, supplied)),\n close: retire,\n acknowledgeCloseFailure(reason) {\n const acknowledged = retained.acknowledgeCloseFailure(reason);\n if (acknowledged) closeFailureAcknowledged = true;\n return acknowledged;\n },\n };\n const write = (chunk: Uint8Array): Promise<void> => {\n try {\n check();\n if (!accepting) throw new FsError(\"EBADF\", { path, syscall: \"write\" });\n if (!(chunk instanceof Uint8Array)) throw new TypeError(\"Byte sinks require Uint8Array chunks\");\n } catch (reason) { return Promise.reject(reason); }\n const writing = writes.then(async () => {\n try {\n check();\n for (let offset = 0; offset < chunk.byteLength;) {\n const end = Math.min(offset + 64 * 1024, chunk.byteLength);\n const count = await descriptor!.write(chunk.subarray(offset, end), null);\n check();\n if (!count) throw new FsError(\"EIO\", { path, syscall: \"write\", message: \"descriptor write made no progress\" });\n offset += count;\n }\n } catch (reason) {\n failure ??= { reason: context.signal.aborted ? context.signal.reason : reason, cancellation: context.signal.aborted };\n controller.abort(failure.reason);\n check();\n }\n });\n writes = writing.then(() => {}, () => {});\n return writing;\n };\n const abort = (reason: unknown): Promise<void> => {\n if (!completed && !retirementFailure) {\n failure ??= { reason, cancellation: context.signal.aborted };\n controller.abort(failure.reason);\n }\n return aborting ??= cleanup();\n };\n return {\n descriptor: exposed, signal,\n sink: { write, [outputFailure]: abort, ownedOutput: { consumerClosed: controller.signal, write } },\n finish() {\n const retired = retire();\n finishing ??= (async () => {\n let closeFailure: { reason: unknown } | undefined;\n try { await retired; } catch (reason) { closeFailure = { reason }; }\n check();\n if (closeFailure) throw closeFailure.reason;\n completed = true;\n })();\n return finishing;\n },\n abort,\n };\n } catch (reason) {\n failure ??= { reason, cancellation: context.signal.aborted };\n acquired();\n await cleanup().catch(() => {});\n context.signal.throwIfAborted();\n throw failure.reason;\n }\n}\n\nexport async function openFileOutput(context: FileOutputContext, path: string, options: \"w\" | \"a\" | FileOutputOpenOptions, incremental?: () => Promise<ByteSink>): Promise<FileOutput> {\n if (typeof options !== \"string\") {\n if (options.descriptor !== undefined && typeof options.descriptor !== \"boolean\") throw new TypeError(\"Invalid descriptor output option\");\n if (options.descriptor === true) return openDescriptorOutput(context, path, options);\n }\n const { flag, mode } = typeof options === \"string\" ? { flag: options, mode: undefined } : options;\n let pipe: BytePipe | undefined;\n let task: Promise<void> | undefined;\n let completed = false;\n let ended = false;\n let closing = false;\n let failure: { reason: unknown } | undefined;\n const consumer = new AbortController();\n let writes = Promise.resolve();\n let acknowledge: (() => void) | undefined;\n const acknowledgeWrite = (): void => {\n const accepted = acknowledge;\n acknowledge = undefined;\n accepted?.();\n };\n let ready!: () => void;\n const opened = new Promise<void>(resolve => { ready = resolve; });\n const destination: ByteSink = {\n [outputFailure]: reason => operation.abort(reason),\n async write(chunk) {\n if (closing) throw new FsError(\"EBADF\", { path, syscall: \"write\" });\n const writing = writes.then(async () => {\n for (let offset = 0; offset < chunk.byteLength; offset += 64 * 1024) {\n const accepted = new Promise<void>(resolve => { acknowledge = resolve; });\n await pipe!.writable.write(chunk.subarray(offset, offset + 64 * 1024));\n await accepted;\n if (failure) throw failure.reason;\n operation.signal.throwIfAborted();\n }\n });\n writes = writing.catch(() => {});\n await writing;\n },\n };\n const budget = context.outputBudget !== \"independent\" && context.registerCleanup\n ? filesystemOutputBudgets.get(context.registerCleanup) : undefined;\n const operation = createOutputOperation(context, budget?.sinkBudget(destination) ?? destination);\n operation.registerCleanup(async () => {\n closing = true;\n if (!completed) {\n void operation.abort(operation.signal.aborted ? operation.signal.reason : new FsError(\"ECANCELED\", { path, syscall: \"write\" }));\n await pipe?.abort(operation.signal.reason);\n }\n await task?.catch(() => {});\n await writes;\n });\n try {\n pipe = createBytePipe({ highWaterMark: 1, signal: operation.signal });\n let reading = false;\n const source: ByteSource = {\n [Symbol.asyncIterator]() {\n return (async function* () {\n reading = true;\n ready();\n for await (const chunk of pipe!.readable) {\n yield chunk;\n acknowledgeWrite();\n }\n operation.signal.throwIfAborted();\n ended = true;\n })();\n },\n };\n task = (async () => {\n const { fs } = context;\n const signal = operation.signal;\n signal.throwIfAborted();\n const capabilities = await fs.capabilitiesFor?.(path, { signal }) ?? fs.capabilities;\n if (capabilities.readOnly === true) throw new FsError(\"EROFS\", { path, syscall: \"write\" });\n if (incremental && (flag === \"wx\" || mode !== undefined)) throw new FsError(\"ENOTSUP\", { path, syscall: \"write\", message: \"incremental callback cannot honor exclusive creation or initial mode\" });\n if (flag === \"wx\") {\n if (capabilities.exclusiveCreate !== true) throw new FsError(\"ENOTSUP\", { path, syscall: \"write\", message: \"exclusive creation is not supported\" });\n } else {\n try { await fs.access(path, 2, { signal }); }\n catch (error) {\n signal.throwIfAborted();\n if (!(error instanceof FsError) || error.code !== \"ENOENT\" && error.code !== \"ENOTSUP\") throw error;\n }\n }\n signal.throwIfAborted();\n const fsOptions = { signal, ...(mode === undefined ? {} : { mode }) };\n const streaming = flag === \"a\" ? capabilities.streamingAppend ?? capabilities.streamingWrite : capabilities.streamingWrite;\n if ((!incremental || capabilities.descriptorWriteStream === true) && streaming !== false && fs.writeStream) {\n try {\n await fs.writeStream(path, source, { ...fsOptions, flag });\n if (!ended) throw new FsError(\"EIO\", { path, message: \"Streaming writer returned before consuming output\" });\n return;\n } catch (error) {\n signal.throwIfAborted();\n if (flag === \"wx\" || reading || !(error instanceof FsError) || error.code !== \"ENOTSUP\") throw error;\n }\n }\n if (flag === \"wx\") throw new FsError(\"ENOTSUP\", { path, syscall: \"writeStream\", message: \"exclusive output requires streaming support\" });\n if (flag === \"w\" && capabilities.write === false) throw new FsError(\"ENOTSUP\", { path, syscall: \"writeFile\" });\n if ((!incremental || flag === \"a\") && capabilities.append === false) throw new FsError(\"ENOTSUP\", { path, syscall: \"appendFile\" });\n const sink = incremental ? await incremental() : await (async (): Promise<ByteSink> => {\n if (flag === \"a\") await fs.appendFile(path, new Uint8Array(), fsOptions);\n else await fs.writeFile(path, new Uint8Array(), { ...fsOptions, flag });\n return { write: chunk => fs.appendFile(path, chunk, fsOptions) };\n })();\n for await (const chunk of source) {\n signal.throwIfAborted();\n await sink.write(chunk);\n }\n })();\n void task.then(acknowledgeWrite, error => {\n failure = { reason: error };\n acknowledgeWrite();\n if (!operation.signal.aborted) consumer.abort(error);\n void operation.abort(error).catch(() => {});\n });\n await Promise.race([opened, task]);\n operation.signal.throwIfAborted();\n const write = async (chunk: Uint8Array): Promise<void> => {\n try { await operation.output.write(chunk); }\n catch (error) { throw failure ? failure.reason : error; }\n };\n return {\n signal: operation.signal,\n sink: {\n [outputFailure]: destination[outputFailure]!,\n ownedOutput: { consumerClosed: consumer.signal, write },\n write,\n },\n async finish() {\n closing = true;\n try {\n await writes;\n await pipe!.close();\n await task;\n operation.signal.throwIfAborted();\n completed = true;\n } catch (error) { throw failure ? failure.reason : error; }\n finally { await operation.close(); }\n },\n abort: reason => operation.abort(reason),\n };\n } catch (error) {\n await operation.abort(error);\n throw error;\n }\n}\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -1,23 +1,27 @@
1
1
  import {
2
2
  createOutputOperation
3
- } from "./chunk-RNKTWFEM.js";
3
+ } from "./chunk-CDBQXRWL.js";
4
4
  import {
5
5
  PublicDiagnostic,
6
+ publicDiagnosticMessage
7
+ } from "./chunk-3E5M2WEL.js";
8
+ import {
9
+ yieldTurn
10
+ } from "./chunk-THXJ6CLF.js";
11
+ import {
6
12
  getCommandArguments,
7
- publicDiagnosticMessage,
8
13
  shellValueByteLength,
9
- shellValueBytes,
10
- yieldTurn
11
- } from "./chunk-UYX72YHY.js";
14
+ shellValueBytes
15
+ } from "./chunk-CHHAB5SS.js";
12
16
  import {
13
17
  resolvePath
14
- } from "./chunk-DPJWEGIX.js";
18
+ } from "./chunk-JLBIUYT3.js";
15
19
  import {
16
20
  FsError
17
- } from "./chunk-CXMIIXJA.js";
21
+ } from "./chunk-WPIOO4NX.js";
18
22
  import {
19
23
  init_platform
20
- } from "./chunk-2KL6W6NB.js";
24
+ } from "./chunk-O2EVBRKF.js";
21
25
 
22
26
  // packages/safe-bash/src/commands/pr/index.ts
23
27
  init_platform();
@@ -1272,4 +1276,4 @@ export {
1272
1276
  createPrCommands,
1273
1277
  prCommands
1274
1278
  };
1275
- //# sourceMappingURL=chunk-PCLOK32J.js.map
1279
+ //# sourceMappingURL=chunk-PC6BEIAF.js.map