@poe-platform/safe-bash 0.1.629 → 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 (377) hide show
  1. package/README.md +2 -2
  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-WPEMUXV4.js → chunk-3LD67SER.js} +12 -10
  12. package/dist/safe-bash/chunks/{chunk-WPEMUXV4.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-KYNRHYHP.js → chunk-EI4X5ETX.js} +15 -13
  21. package/dist/safe-bash/chunks/{chunk-KYNRHYHP.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-HHJSJWUD.js → chunk-V73A742N.js} +57 -15
  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-WECHUK3Y.js +4285 -0
  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/browser.d.ts +2 -0
  117. package/dist/safe-bash/commands/node/browser.d.ts.map +1 -0
  118. package/dist/safe-bash/commands/node/browser.js +2 -0
  119. package/dist/safe-bash/commands/node/browser.js.map +1 -0
  120. package/dist/safe-bash/commands/node/index.browser.js +18 -0
  121. package/dist/safe-bash/commands/node/index.browser.js.map +7 -0
  122. package/dist/safe-bash/commands/node/safejs.d.ts +6 -0
  123. package/dist/safe-bash/commands/node/safejs.d.ts.map +1 -1
  124. package/dist/safe-bash/commands/node/safejs.js +25 -1
  125. package/dist/safe-bash/commands/node/safejs.js.map +1 -1
  126. package/dist/safe-bash/commands/op/index.browser.js +3 -3
  127. package/dist/safe-bash/commands/op/index.js +0 -1
  128. package/dist/safe-bash/commands/op/index.js.map +2 -2
  129. package/dist/safe-bash/commands/pptx/index.d.ts +29 -0
  130. package/dist/safe-bash/commands/pptx/index.d.ts.map +1 -0
  131. package/dist/safe-bash/commands/pptx/index.js +153 -0
  132. package/dist/safe-bash/commands/pptx/index.js.map +1 -0
  133. package/dist/safe-bash/commands/pr/index.browser.js +8 -6
  134. package/dist/safe-bash/commands/predicates.js +1 -1
  135. package/dist/safe-bash/commands/python/execution.d.ts +3 -0
  136. package/dist/safe-bash/commands/python/execution.d.ts.map +1 -0
  137. package/dist/safe-bash/commands/python/execution.js +193 -0
  138. package/dist/safe-bash/commands/python/execution.js.map +1 -0
  139. package/dist/safe-bash/commands/python/index.browser.js +21 -0
  140. package/dist/safe-bash/commands/python/index.browser.js.map +7 -0
  141. package/dist/safe-bash/commands/python/index.d.ts +49 -0
  142. package/dist/safe-bash/commands/python/index.d.ts.map +1 -0
  143. package/dist/safe-bash/commands/python/index.js +317 -0
  144. package/dist/safe-bash/commands/python/index.js.map +1 -0
  145. package/dist/safe-bash/commands/python/installation.d.ts +9 -0
  146. package/dist/safe-bash/commands/python/installation.d.ts.map +1 -0
  147. package/dist/safe-bash/commands/python/installation.js +80 -0
  148. package/dist/safe-bash/commands/python/installation.js.map +1 -0
  149. package/dist/safe-bash/commands/python/invocation.d.ts +10 -0
  150. package/dist/safe-bash/commands/python/invocation.d.ts.map +1 -0
  151. package/dist/safe-bash/commands/python/invocation.js +81 -0
  152. package/dist/safe-bash/commands/python/invocation.js.map +1 -0
  153. package/dist/safe-bash/commands/python/node.d.ts +12 -0
  154. package/dist/safe-bash/commands/python/node.d.ts.map +1 -0
  155. package/dist/safe-bash/commands/python/node.js +33 -0
  156. package/dist/safe-bash/commands/python/node.js.map +1 -0
  157. package/dist/safe-bash/commands/python/provisioning-runtime.d.ts +5 -0
  158. package/dist/safe-bash/commands/python/provisioning-runtime.d.ts.map +1 -0
  159. package/dist/safe-bash/commands/python/provisioning-runtime.js +179 -0
  160. package/dist/safe-bash/commands/python/provisioning-runtime.js.map +1 -0
  161. package/dist/safe-bash/commands/python/provisioning.d.ts +49 -0
  162. package/dist/safe-bash/commands/python/provisioning.d.ts.map +1 -0
  163. package/dist/safe-bash/commands/python/provisioning.js +320 -0
  164. package/dist/safe-bash/commands/python/provisioning.js.map +1 -0
  165. package/dist/safe-bash/commands/python/reply.d.ts +3 -0
  166. package/dist/safe-bash/commands/python/reply.d.ts.map +1 -0
  167. package/dist/safe-bash/commands/python/reply.js +103 -0
  168. package/dist/safe-bash/commands/python/reply.js.map +1 -0
  169. package/dist/safe-bash/commands/python/worker.browser.js +736 -0
  170. package/dist/safe-bash/commands/python/worker.browser.js.map +7 -0
  171. package/dist/safe-bash/commands/python/worker.d.ts +47 -0
  172. package/dist/safe-bash/commands/python/worker.d.ts.map +1 -0
  173. package/dist/safe-bash/commands/python/worker.js +373 -0
  174. package/dist/safe-bash/commands/python/worker.js.map +1 -0
  175. package/dist/safe-bash/commands/safejs/index.d.ts +5 -17
  176. package/dist/safe-bash/commands/safejs/index.d.ts.map +1 -1
  177. package/dist/safe-bash/commands/safejs/index.js +3 -202
  178. package/dist/safe-bash/commands/safejs/index.js.map +1 -1
  179. package/dist/safe-bash/commands/safejs/runtime.d.ts +15 -0
  180. package/dist/safe-bash/commands/safejs/runtime.d.ts.map +1 -0
  181. package/dist/safe-bash/commands/safejs/runtime.js +190 -0
  182. package/dist/safe-bash/commands/safejs/runtime.js.map +1 -0
  183. package/dist/safe-bash/commands/tsort/index.browser.js +8 -6
  184. package/dist/safe-bash/commands/xml/index.browser.js +9 -7
  185. package/dist/safe-bash/commands/yq/index.browser.js +10 -8
  186. package/dist/safe-bash/commands/yq/index.d.ts.map +1 -1
  187. package/dist/safe-bash/commands/yq/index.js +32 -4
  188. package/dist/safe-bash/commands/yq/index.js.map +1 -1
  189. package/dist/safe-bash/commands/yq/parser.d.ts.map +1 -1
  190. package/dist/safe-bash/commands/yq/parser.js +21 -5
  191. package/dist/safe-bash/commands/yq/parser.js.map +1 -1
  192. package/dist/safe-bash/contracts/command.d.ts +2 -0
  193. package/dist/safe-bash/contracts/command.d.ts.map +1 -1
  194. package/dist/safe-bash/contracts/command.js +6 -2
  195. package/dist/safe-bash/contracts/command.js.map +1 -1
  196. package/dist/safe-bash/contracts/filesystem-descriptor.d.ts +13 -0
  197. package/dist/safe-bash/contracts/filesystem-descriptor.d.ts.map +1 -0
  198. package/dist/safe-bash/contracts/filesystem-descriptor.js +189 -0
  199. package/dist/safe-bash/contracts/filesystem-descriptor.js.map +1 -0
  200. package/dist/safe-bash/contracts/filesystem-output-budget.d.ts +15 -0
  201. package/dist/safe-bash/contracts/filesystem-output-budget.d.ts.map +1 -0
  202. package/dist/safe-bash/contracts/filesystem-output-budget.js +69 -0
  203. package/dist/safe-bash/contracts/filesystem-output-budget.js.map +1 -0
  204. package/dist/safe-bash/contracts/filesystem-output.d.ts +11 -5
  205. package/dist/safe-bash/contracts/filesystem-output.d.ts.map +1 -1
  206. package/dist/safe-bash/contracts/filesystem-output.js +229 -20
  207. package/dist/safe-bash/contracts/filesystem-output.js.map +1 -1
  208. package/dist/safe-bash/contracts/io.d.ts +29 -0
  209. package/dist/safe-bash/contracts/io.d.ts.map +1 -1
  210. package/dist/safe-bash/contracts/io.js +317 -37
  211. package/dist/safe-bash/contracts/io.js.map +1 -1
  212. package/dist/safe-bash/core.browser.js +5963 -6522
  213. package/dist/safe-bash/core.browser.js.map +4 -4
  214. package/dist/safe-bash/core.d.ts +2 -0
  215. package/dist/safe-bash/core.d.ts.map +1 -1
  216. package/dist/safe-bash/core.js +2 -0
  217. package/dist/safe-bash/core.js.map +1 -1
  218. package/dist/safe-bash/index.d.ts +1 -0
  219. package/dist/safe-bash/index.d.ts.map +1 -1
  220. package/dist/safe-bash/index.js +1 -0
  221. package/dist/safe-bash/index.js.map +1 -1
  222. package/dist/safe-bash/opt-in/commands/cmp/compare.js +95 -0
  223. package/dist/safe-bash/opt-in/commands/cmp/index.d.ts +6 -0
  224. package/dist/safe-bash/opt-in/commands/cmp/index.js +99 -0
  225. package/dist/safe-bash/opt-in/commands/cmp/io.js +218 -0
  226. package/dist/safe-bash/opt-in/commands/cmp/options.d.ts +24 -0
  227. package/dist/safe-bash/opt-in/commands/cmp/options.js +195 -0
  228. package/dist/safe-bash/opt-in/commands/dd/conversions.js +152 -0
  229. package/dist/safe-bash/opt-in/commands/dd/index.d.ts +18 -0
  230. package/dist/safe-bash/opt-in/commands/dd/index.js +561 -0
  231. package/dist/safe-bash/opt-in/commands/dd/io.d.ts +31 -0
  232. package/dist/safe-bash/opt-in/commands/dd/io.js +244 -0
  233. package/dist/safe-bash/opt-in/commands/dd/options.js +184 -0
  234. package/dist/safe-bash/opt-in/commands/dd/report.js +69 -0
  235. package/dist/safe-bash/opt-in/commands/install/arguments.js +224 -0
  236. package/dist/safe-bash/opt-in/commands/install/index.d.ts +6 -0
  237. package/dist/safe-bash/opt-in/commands/install/index.js +678 -0
  238. package/dist/safe-bash/opt-in/commands/install/mode.js +71 -0
  239. package/dist/safe-bash/opt-in/commands/install/options.d.ts +36 -0
  240. package/dist/safe-bash/opt-in/commands/install/options.js +27 -0
  241. package/dist/safe-bash/opt-in/commands/shuf/args.js +179 -0
  242. package/dist/safe-bash/opt-in/commands/shuf/index.d.ts +6 -0
  243. package/dist/safe-bash/opt-in/commands/shuf/index.js +20 -0
  244. package/dist/safe-bash/opt-in/commands/shuf/input.js +93 -0
  245. package/dist/safe-bash/opt-in/commands/shuf/options.d.ts +9 -0
  246. package/dist/safe-bash/opt-in/commands/shuf/options.js +8 -0
  247. package/dist/safe-bash/opt-in/commands/shuf/random.js +114 -0
  248. package/dist/safe-bash/opt-in/commands/shuf/shuf.d.ts +3 -0
  249. package/dist/safe-bash/opt-in/commands/shuf/shuf.js +230 -0
  250. package/dist/safe-bash/opt-in/commands/shuf/usage.js +24 -0
  251. package/dist/safe-bash/opt-in/commands/truncate/arguments.js +186 -0
  252. package/dist/safe-bash/opt-in/commands/truncate/index.d.ts +9 -0
  253. package/dist/safe-bash/opt-in/commands/truncate/index.js +244 -0
  254. package/dist/safe-bash/opt-in/commands/yes/index.d.ts +11 -0
  255. package/dist/safe-bash/opt-in/commands/yes/index.js +167 -0
  256. package/dist/safe-bash/opt-in/commands/yq/arguments.js +177 -0
  257. package/dist/safe-bash/opt-in/commands/yq/evaluate.js +564 -0
  258. package/dist/safe-bash/opt-in/commands/yq/expression.js +183 -0
  259. package/dist/safe-bash/opt-in/commands/yq/inplace.js +65 -0
  260. package/dist/safe-bash/opt-in/commands/yq/mike.d.ts +9 -0
  261. package/dist/safe-bash/opt-in/commands/yq/mike.js +192 -0
  262. package/dist/safe-bash/opt-in/commands/yq/native-encoder.js +165 -0
  263. package/dist/safe-bash/opt-in/commands/yq/native-work.d.ts +44 -0
  264. package/dist/safe-bash/opt-in/commands/yq/native-work.js +188 -0
  265. package/dist/safe-bash/opt-in/commands/yq/nodes.js +621 -0
  266. package/dist/safe-bash/opt-in/entrypoints/arrays.d.ts +1 -0
  267. package/dist/safe-bash/opt-in/entrypoints/arrays.js +1 -0
  268. package/dist/safe-bash/opt-in/entrypoints/cmp.d.ts +2 -0
  269. package/dist/safe-bash/opt-in/entrypoints/cmp.js +1 -0
  270. package/dist/safe-bash/opt-in/entrypoints/dd.d.ts +2 -0
  271. package/dist/safe-bash/opt-in/entrypoints/dd.js +1 -0
  272. package/dist/safe-bash/opt-in/entrypoints/devices.d.ts +2 -0
  273. package/dist/safe-bash/opt-in/entrypoints/devices.js +1 -0
  274. package/dist/safe-bash/opt-in/entrypoints/install.d.ts +2 -0
  275. package/dist/safe-bash/opt-in/entrypoints/install.js +1 -0
  276. package/dist/safe-bash/opt-in/entrypoints/jobs.d.ts +1 -0
  277. package/dist/safe-bash/opt-in/entrypoints/jobs.js +1 -0
  278. package/dist/safe-bash/opt-in/entrypoints/mapfile.d.ts +1 -0
  279. package/dist/safe-bash/opt-in/entrypoints/mapfile.js +1 -0
  280. package/dist/safe-bash/opt-in/entrypoints/read.d.ts +2 -0
  281. package/dist/safe-bash/opt-in/entrypoints/read.js +1 -0
  282. package/dist/safe-bash/opt-in/entrypoints/shuf.d.ts +2 -0
  283. package/dist/safe-bash/opt-in/entrypoints/shuf.js +1 -0
  284. package/dist/safe-bash/opt-in/entrypoints/trap.d.ts +2 -0
  285. package/dist/safe-bash/opt-in/entrypoints/trap.js +1 -0
  286. package/dist/safe-bash/opt-in/entrypoints/truncate.d.ts +2 -0
  287. package/dist/safe-bash/opt-in/entrypoints/truncate.js +1 -0
  288. package/dist/safe-bash/opt-in/entrypoints/yes.d.ts +2 -0
  289. package/dist/safe-bash/opt-in/entrypoints/yes.js +1 -0
  290. package/dist/safe-bash/opt-in/entrypoints/yq.d.ts +3 -0
  291. package/dist/safe-bash/opt-in/entrypoints/yq.js +1 -0
  292. package/dist/safe-bash/opt-in/fs/devices/index.d.ts +8 -0
  293. package/dist/safe-bash/opt-in/fs/devices/index.js +292 -0
  294. package/dist/safe-bash/opt-in/optional.d.ts +28 -0
  295. package/dist/safe-bash/opt-in/optional.js +14 -0
  296. package/dist/safe-bash/opt-in/shell/extensions/arrays/index.d.ts +2 -0
  297. package/dist/safe-bash/opt-in/shell/extensions/arrays/index.js +4 -0
  298. package/dist/safe-bash/opt-in/shell/extensions/jobs/index.d.ts +2 -0
  299. package/dist/safe-bash/opt-in/shell/extensions/jobs/index.js +291 -0
  300. package/dist/safe-bash/opt-in/shell/extensions/jobs/state.js +374 -0
  301. package/dist/safe-bash/opt-in/shell/extensions/mapfile/index.d.ts +24 -0
  302. package/dist/safe-bash/opt-in/shell/extensions/mapfile/index.js +338 -0
  303. package/dist/safe-bash/opt-in/shell/extensions/read/index.d.ts +5 -0
  304. package/dist/safe-bash/opt-in/shell/extensions/read/index.js +351 -0
  305. package/dist/safe-bash/opt-in/shell/extensions/trap/index.d.ts +9 -0
  306. package/dist/safe-bash/opt-in/shell/extensions/trap/index.js +210 -0
  307. package/dist/safe-bash/optional-host.d.ts +5 -0
  308. package/dist/safe-bash/optional-host.d.ts.map +1 -0
  309. package/dist/safe-bash/optional-host.js +3 -0
  310. package/dist/safe-bash/optional-host.js.map +1 -0
  311. package/dist/safe-bash/shell/arrays/bindings.d.ts +15 -5
  312. package/dist/safe-bash/shell/arrays/bindings.d.ts.map +1 -1
  313. package/dist/safe-bash/shell/arrays/bindings.js +131 -23
  314. package/dist/safe-bash/shell/arrays/bindings.js.map +1 -1
  315. package/dist/safe-bash/shell/arrays/ledger.d.ts +1 -0
  316. package/dist/safe-bash/shell/arrays/ledger.d.ts.map +1 -1
  317. package/dist/safe-bash/shell/arrays/ledger.js +19 -0
  318. package/dist/safe-bash/shell/arrays/ledger.js.map +1 -1
  319. package/dist/safe-bash/shell/arrays/state.d.ts.map +1 -1
  320. package/dist/safe-bash/shell/arrays/state.js +3 -1
  321. package/dist/safe-bash/shell/arrays/state.js.map +1 -1
  322. package/dist/safe-bash/shell/arrays/syntax.d.ts +4 -1
  323. package/dist/safe-bash/shell/arrays/syntax.d.ts.map +1 -1
  324. package/dist/safe-bash/shell/arrays/syntax.js +3 -3
  325. package/dist/safe-bash/shell/arrays/syntax.js.map +1 -1
  326. package/dist/safe-bash/shell/conditional.js +1 -1
  327. package/dist/safe-bash/shell/descriptors.d.ts +31 -0
  328. package/dist/safe-bash/shell/descriptors.d.ts.map +1 -0
  329. package/dist/safe-bash/shell/descriptors.js +234 -0
  330. package/dist/safe-bash/shell/descriptors.js.map +1 -0
  331. package/dist/safe-bash/shell/diagnostic-name-ranges.d.ts +2 -0
  332. package/dist/safe-bash/shell/diagnostic-name-ranges.d.ts.map +1 -0
  333. package/dist/safe-bash/shell/diagnostic-name-ranges.js +717 -0
  334. package/dist/safe-bash/shell/diagnostic-name-ranges.js.map +1 -0
  335. package/dist/safe-bash/shell/diagnostic-name.d.ts +3 -0
  336. package/dist/safe-bash/shell/diagnostic-name.d.ts.map +1 -0
  337. package/dist/safe-bash/shell/diagnostic-name.js +89 -0
  338. package/dist/safe-bash/shell/diagnostic-name.js.map +1 -0
  339. package/dist/safe-bash/shell/display.js +1 -1
  340. package/dist/safe-bash/shell/display.js.map +1 -1
  341. package/dist/safe-bash/shell/extensions.d.ts +188 -0
  342. package/dist/safe-bash/shell/extensions.d.ts.map +1 -0
  343. package/dist/safe-bash/shell/extensions.js +141 -0
  344. package/dist/safe-bash/shell/extensions.js.map +1 -0
  345. package/dist/safe-bash/shell/input.d.ts +66 -14
  346. package/dist/safe-bash/shell/input.d.ts.map +1 -1
  347. package/dist/safe-bash/shell/input.js +947 -173
  348. package/dist/safe-bash/shell/input.js.map +1 -1
  349. package/dist/safe-bash/shell/parser.d.ts +38 -6
  350. package/dist/safe-bash/shell/parser.d.ts.map +1 -1
  351. package/dist/safe-bash/shell/parser.js +339 -52
  352. package/dist/safe-bash/shell/parser.js.map +1 -1
  353. package/dist/safe-bash/shell/runtime.d.ts +92 -20
  354. package/dist/safe-bash/shell/runtime.d.ts.map +1 -1
  355. package/dist/safe-bash/shell/runtime.js +2547 -689
  356. package/dist/safe-bash/shell/runtime.js.map +1 -1
  357. package/dist/safe-bash/shell/shell.d.ts.map +1 -1
  358. package/dist/safe-bash/shell/shell.js +52 -21
  359. package/dist/safe-bash/shell/shell.js.map +1 -1
  360. package/dist/safe-bash/shell/types.d.ts +4 -0
  361. package/dist/safe-bash/shell/types.d.ts.map +1 -1
  362. package/dist/safe-bash/shell/types.js.map +1 -1
  363. package/package.json +99 -5
  364. package/dist/safe-bash/chunks/chunk-4DBWBEU7.js +0 -194
  365. package/dist/safe-bash/chunks/chunk-4DBWBEU7.js.map +0 -7
  366. package/dist/safe-bash/chunks/chunk-CXMIIXJA.js +0 -178
  367. package/dist/safe-bash/chunks/chunk-CXMIIXJA.js.map +0 -7
  368. package/dist/safe-bash/chunks/chunk-HHJSJWUD.js.map +0 -7
  369. /package/dist/safe-bash/chunks/{bz2-B2RXT4EX.js.map → bz2-ACU4EOVE.js.map} +0 -0
  370. /package/dist/safe-bash/chunks/{chunk-RNKTWFEM.js.map → chunk-CDBQXRWL.js.map} +0 -0
  371. /package/dist/safe-bash/chunks/{chunk-AFH57PPL.js.map → chunk-IEKESMO4.js.map} +0 -0
  372. /package/dist/safe-bash/chunks/{chunk-DPJWEGIX.js.map → chunk-JLBIUYT3.js.map} +0 -0
  373. /package/dist/safe-bash/chunks/{chunk-PVJJFCGA.js.map → chunk-M3GPCYSP.js.map} +0 -0
  374. /package/dist/safe-bash/chunks/{chunk-2KL6W6NB.js.map → chunk-O2EVBRKF.js.map} +0 -0
  375. /package/dist/safe-bash/chunks/{chunk-C7QNJ3D4.js.map → chunk-WYTI64IU.js.map} +0 -0
  376. /package/dist/safe-bash/chunks/{xz-AVXFDXW4.js.map → xz-U4QDTPZL.js.map} +0 -0
  377. /package/dist/safe-bash/chunks/{zstd-R6RPHJYO.js.map → zstd-OG5RPYXO.js.map} +0 -0
@@ -0,0 +1,443 @@
1
+ import {
2
+ init_platform
3
+ } from "./chunk-O2EVBRKF.js";
4
+
5
+ // packages/safe-bash/src/contracts/errors.ts
6
+ init_platform();
7
+ import { isErrnoCode, isFsError, toFsError, FsError } from "@poe-platform/safe-fs/core";
8
+
9
+ // packages/safe-bash/src/contracts/io.ts
10
+ init_platform();
11
+ import { collectBytes, readBytes } from "@poe-platform/safe-fs/core";
12
+ import { collectBytes as collectBytes2, readBytes as readBytes2, toByteSource } from "@poe-platform/safe-fs/core";
13
+ var outputFailure = /* @__PURE__ */ Symbol("output failure");
14
+ function createBytePipe(options = {}) {
15
+ const highWaterMark = options.highWaterMark ?? 64 * 1024;
16
+ const signal = options.signal;
17
+ if (!Number.isSafeInteger(highWaterMark) || highWaterMark < 1) {
18
+ throw new RangeError("highWaterMark must be a positive safe integer");
19
+ }
20
+ const maximumObservationWaiters = 64;
21
+ const buffered = /* @__PURE__ */ new Set();
22
+ const reads = /* @__PURE__ */ new Set();
23
+ const writes = /* @__PURE__ */ new Set();
24
+ const observers = /* @__PURE__ */ new Set();
25
+ let availableBytes = 0;
26
+ let readerReferences = 0;
27
+ let writerReferences = 0;
28
+ let revision = 0n;
29
+ let failed = false;
30
+ let failure;
31
+ let closePromise;
32
+ let abortPromise;
33
+ let finished = false;
34
+ const consumer = new AbortController();
35
+ const brokenPipe = () => new FsError("EPIPE", { syscall: "pipe" });
36
+ const checkFailure = () => {
37
+ if (failed) throw failure;
38
+ };
39
+ const checkEndpoint = (endpoint) => {
40
+ checkFailure();
41
+ signal?.throwIfAborted();
42
+ if (!endpoint.open) throw new FsError("EBADF", { syscall: "pipe" });
43
+ };
44
+ const changed = () => {
45
+ revision++;
46
+ for (const observer of [...observers]) observer.changed();
47
+ };
48
+ const removeRead = (request) => {
49
+ reads.delete(request);
50
+ request.lease.pending.delete(request);
51
+ };
52
+ const removeWrite = (request) => {
53
+ writes.delete(request);
54
+ request.endpoint.writes.delete(request);
55
+ };
56
+ const cleanup = () => {
57
+ if (!observers.size) signal?.removeEventListener("abort", onAbort);
58
+ };
59
+ const pump = () => {
60
+ if (failed) return;
61
+ while (true) {
62
+ const reading = reads.values().next().value;
63
+ const chunk = buffered.values().next().value;
64
+ if (reading && chunk) {
65
+ removeRead(reading);
66
+ buffered.delete(chunk);
67
+ availableBytes -= chunk.byteLength;
68
+ reading.resolve({ done: false, value: chunk });
69
+ changed();
70
+ continue;
71
+ }
72
+ const writing = writes.values().next().value;
73
+ if (writing && (reading || availableBytes < highWaterMark)) {
74
+ removeWrite(writing);
75
+ buffered.add(writing.chunk);
76
+ availableBytes += writing.chunk.byteLength;
77
+ writing.resolve();
78
+ changed();
79
+ continue;
80
+ }
81
+ if (!writerReferences && !writes.size && !buffered.size && reads.size) {
82
+ finished = true;
83
+ for (const request of reads) {
84
+ removeRead(request);
85
+ request.lease.done = true;
86
+ request.resolve({ done: true, value: void 0 });
87
+ }
88
+ cleanup();
89
+ }
90
+ break;
91
+ }
92
+ };
93
+ const fail = (reason) => {
94
+ if (abortPromise) return abortPromise;
95
+ if (finished) {
96
+ for (const observer of [...observers]) observer.aborted(reason);
97
+ return Promise.resolve();
98
+ }
99
+ abortPromise = Promise.resolve();
100
+ failed = true;
101
+ failure = reason;
102
+ buffered.clear();
103
+ availableBytes = 0;
104
+ for (const request of reads) {
105
+ removeRead(request);
106
+ request.lease.done = true;
107
+ request.reject(reason);
108
+ }
109
+ for (const request of writes) {
110
+ removeWrite(request);
111
+ request.reject(reason);
112
+ }
113
+ consumer.abort(reason);
114
+ changed();
115
+ cleanup();
116
+ return abortPromise;
117
+ };
118
+ const abort = (reason = new FsError("EPIPE", { syscall: "pipe" })) => fail(reason);
119
+ const onAbort = () => {
120
+ void fail(signal?.reason);
121
+ };
122
+ const probe = (endpoint) => {
123
+ checkEndpoint(endpoint);
124
+ const peerClosed = endpoint.direction === "read" ? writerReferences === 0 : readerReferences === 0;
125
+ return Object.freeze({ revision, ready: peerClosed || endpoint.direction === "read" && availableBytes > 0, peerClosed });
126
+ };
127
+ const waitForChange = (endpoint, previous, options2) => {
128
+ try {
129
+ const { signal: waitingSignal, timeoutMs } = options2;
130
+ const localSignal = waitingSignal === signal ? void 0 : waitingSignal;
131
+ checkFailure();
132
+ signal?.throwIfAborted();
133
+ waitingSignal?.throwIfAborted();
134
+ checkEndpoint(endpoint);
135
+ if (!Number.isSafeInteger(timeoutMs) || timeoutMs < 0 || timeoutMs > 2147483647) throw new RangeError("timeoutMs must be an integer between zero and 2147483647");
136
+ if (typeof previous !== "bigint" || previous < 0n || previous > revision) throw new RangeError("Invalid pipe observation revision");
137
+ if (previous !== revision) return Promise.resolve(probe(endpoint));
138
+ if (!timeoutMs) return Promise.resolve(void 0);
139
+ if (observers.size >= maximumObservationWaiters) throw new RangeError("Too many pending pipe endpoint observations");
140
+ return new Promise((resolve, reject) => {
141
+ let settled = false;
142
+ let timer;
143
+ const retire = () => {
144
+ if (settled) return false;
145
+ settled = true;
146
+ observers.delete(observer);
147
+ if (timer !== void 0) clearTimeout(timer);
148
+ localSignal?.removeEventListener("abort", interrupted);
149
+ if (finished || failed || !readerReferences && !writerReferences) cleanup();
150
+ return true;
151
+ };
152
+ const settle = (timedOut = false) => {
153
+ if (!retire()) return;
154
+ try {
155
+ checkFailure();
156
+ signal?.throwIfAborted();
157
+ waitingSignal?.throwIfAborted();
158
+ checkEndpoint(endpoint);
159
+ resolve(timedOut ? void 0 : probe(endpoint));
160
+ } catch (reason) {
161
+ reject(reason);
162
+ }
163
+ };
164
+ const interrupted = () => settle();
165
+ const observer = {
166
+ changed: () => settle(),
167
+ aborted(reason) {
168
+ if (retire()) reject(signal?.aborted ? signal.reason : reason);
169
+ }
170
+ };
171
+ observers.add(observer);
172
+ try {
173
+ signal?.addEventListener("abort", onAbort, { once: true });
174
+ localSignal?.addEventListener("abort", interrupted, { once: true });
175
+ if (settled) {
176
+ localSignal?.removeEventListener("abort", interrupted);
177
+ if (finished || failed || !readerReferences && !writerReferences) cleanup();
178
+ }
179
+ if (signal?.aborted || waitingSignal?.aborted || revision !== previous || !endpoint.open || failed) settle();
180
+ if (!settled) timer = setTimeout(() => settle(true), timeoutMs);
181
+ } catch (reason) {
182
+ if (retire()) reject(reason);
183
+ }
184
+ });
185
+ } catch (reason) {
186
+ return Promise.reject(reason);
187
+ }
188
+ };
189
+ const closeEndpoint = (endpoint) => {
190
+ if (endpoint.closing) return endpoint.closing;
191
+ let closed;
192
+ endpoint.closing = new Promise((resolve) => {
193
+ closed = resolve;
194
+ });
195
+ endpoint.open = false;
196
+ const admittedWrites = [...endpoint.writes].map((request) => request.completion);
197
+ if (endpoint.direction === "read") {
198
+ readerReferences--;
199
+ for (const request of reads) if (request.lease.endpoint === endpoint) {
200
+ removeRead(request);
201
+ request.lease.done = true;
202
+ request.reject(failed ? failure : new FsError("EBADF", { syscall: "read" }));
203
+ }
204
+ if (!readerReferences) {
205
+ buffered.clear();
206
+ availableBytes = 0;
207
+ const reason = brokenPipe();
208
+ for (const request of writes) {
209
+ removeWrite(request);
210
+ request.reject(failed ? failure : reason);
211
+ }
212
+ consumer.abort(reason);
213
+ }
214
+ } else writerReferences--;
215
+ changed();
216
+ pump();
217
+ if (!readerReferences && !writerReferences) cleanup();
218
+ void Promise.allSettled(admittedWrites).then(closed);
219
+ return endpoint.closing;
220
+ };
221
+ const borrow = (endpoint) => {
222
+ const lease = { endpoint, pending: /* @__PURE__ */ new Set(), done: false };
223
+ const release = () => {
224
+ lease.done = true;
225
+ for (const request of lease.pending) {
226
+ removeRead(request);
227
+ request.resolve({ done: true, value: void 0 });
228
+ }
229
+ return { done: true, value: void 0 };
230
+ };
231
+ return {
232
+ [Symbol.asyncIterator]() {
233
+ return this;
234
+ },
235
+ next() {
236
+ if (lease.done) return Promise.resolve({ done: true, value: void 0 });
237
+ try {
238
+ checkEndpoint(endpoint);
239
+ } catch (reason) {
240
+ lease.done = true;
241
+ return Promise.reject(reason);
242
+ }
243
+ return new Promise((resolve, reject) => {
244
+ const request = { lease, resolve, reject };
245
+ reads.add(request);
246
+ lease.pending.add(request);
247
+ pump();
248
+ });
249
+ },
250
+ async return() {
251
+ return release();
252
+ },
253
+ async throw(reason) {
254
+ release();
255
+ throw reason;
256
+ }
257
+ };
258
+ };
259
+ const write = (endpoint, chunk, legacy = false) => {
260
+ try {
261
+ checkFailure();
262
+ if (!legacy) signal?.throwIfAborted();
263
+ if (!endpoint.open) throw new FsError(legacy ? "EPIPE" : "EBADF", { syscall: "write" });
264
+ if (!readerReferences) throw brokenPipe();
265
+ if (!(chunk instanceof Uint8Array)) throw new TypeError("Byte sinks require Uint8Array chunks");
266
+ if (!chunk.byteLength) return Promise.resolve();
267
+ const owned = new Uint8Array(chunk);
268
+ let resolve;
269
+ let reject;
270
+ const completion = new Promise((accept, refuse) => {
271
+ resolve = accept;
272
+ reject = refuse;
273
+ });
274
+ const request = { endpoint, chunk: owned, completion, resolve, reject };
275
+ endpoint.writes.add(request);
276
+ writes.add(request);
277
+ pump();
278
+ return completion;
279
+ } catch (reason) {
280
+ return Promise.reject(reason);
281
+ }
282
+ };
283
+ const createState = (direction) => {
284
+ if (direction === "read") readerReferences++;
285
+ else writerReferences++;
286
+ changed();
287
+ return { direction, writes: /* @__PURE__ */ new Set(), open: true, closing: void 0 };
288
+ };
289
+ const createReadEndpoint = (state) => ({
290
+ direction: "read",
291
+ readable: { [Symbol.asyncIterator]: () => borrow(state) },
292
+ acquire() {
293
+ checkEndpoint(state);
294
+ return createReadEndpoint(createState("read"));
295
+ },
296
+ probe: () => probe(state),
297
+ waitForChange: (previous, options2) => waitForChange(state, previous, options2),
298
+ close: () => closeEndpoint(state)
299
+ });
300
+ const createWriteEndpoint = (state) => {
301
+ const writing = (chunk) => write(state, chunk);
302
+ return {
303
+ direction: "write",
304
+ writable: { write: writing, [outputFailure]: fail, ownedOutput: { consumerClosed: consumer.signal, write: writing } },
305
+ acquire() {
306
+ checkEndpoint(state);
307
+ return createWriteEndpoint(createState("write"));
308
+ },
309
+ probe: () => probe(state),
310
+ waitForChange: (previous, options2) => waitForChange(state, previous, options2),
311
+ close: () => closeEndpoint(state)
312
+ };
313
+ };
314
+ const readState = createState("read");
315
+ const writeState = createState("write");
316
+ const endpoints = { read: createReadEndpoint(readState), write: createWriteEndpoint(writeState) };
317
+ const reader = borrow(readState);
318
+ const iterator = (async function* () {
319
+ try {
320
+ while (true) {
321
+ if (failed) throw failure;
322
+ const result = await reader.next();
323
+ if (failed) throw failure;
324
+ if (result.done) {
325
+ finished = true;
326
+ return;
327
+ }
328
+ yield result.value;
329
+ }
330
+ } finally {
331
+ if (!finished) await abort();
332
+ await reader.return?.();
333
+ }
334
+ })();
335
+ const readable = {
336
+ [Symbol.asyncIterator]() {
337
+ return this;
338
+ },
339
+ next() {
340
+ return iterator.next();
341
+ },
342
+ async return() {
343
+ if (!finished) await abort();
344
+ try {
345
+ return await iterator.return(void 0);
346
+ } finally {
347
+ await reader.return?.();
348
+ }
349
+ },
350
+ async throw(reason) {
351
+ await fail(reason);
352
+ try {
353
+ return await iterator.throw(reason);
354
+ } finally {
355
+ await reader.return?.();
356
+ }
357
+ }
358
+ };
359
+ const legacyWrite = (chunk) => write(writeState, chunk, true);
360
+ if (signal?.aborted) onAbort();
361
+ else signal?.addEventListener("abort", onAbort, { once: true });
362
+ return {
363
+ readable,
364
+ endpoints,
365
+ readiness() {
366
+ if (failed) throw failure;
367
+ return availableBytes > 0 ? "ready" : !writerReferences && !writes.size ? "eof" : "blocked";
368
+ },
369
+ writable: {
370
+ write: legacyWrite,
371
+ [outputFailure]: fail,
372
+ ownedOutput: { consumerClosed: consumer.signal, write: legacyWrite }
373
+ },
374
+ close() {
375
+ if (failed) return Promise.reject(failure);
376
+ closePromise ??= closeEndpoint(writeState).then(() => {
377
+ checkFailure();
378
+ });
379
+ return closePromise;
380
+ },
381
+ abort
382
+ };
383
+ }
384
+ async function writeText(sink, text) {
385
+ await sink.write(new TextEncoder().encode(text));
386
+ }
387
+ async function writeBytes(sink, chunk, signal) {
388
+ if (!(chunk instanceof Uint8Array)) throw new TypeError("Byte sinks require Uint8Array chunks");
389
+ await abortable(() => sink.write(chunk), signal);
390
+ }
391
+ async function pipeBytes(source, sink, signal) {
392
+ signal?.throwIfAborted();
393
+ for await (const chunk of readBytes(source, signal)) {
394
+ await writeBytes(sink, chunk, signal);
395
+ }
396
+ signal?.throwIfAborted();
397
+ }
398
+ async function collectText(source, options) {
399
+ return new TextDecoder().decode(await collectBytes(source, options));
400
+ }
401
+ async function abortable(operation, signal) {
402
+ signal?.throwIfAborted();
403
+ if (!signal) return operation();
404
+ return new Promise((resolve, reject) => {
405
+ const onAbort = () => {
406
+ signal.removeEventListener("abort", onAbort);
407
+ reject(signal.reason);
408
+ };
409
+ signal.addEventListener("abort", onAbort, { once: true });
410
+ try {
411
+ Promise.resolve(operation()).then(
412
+ (result) => {
413
+ signal.removeEventListener("abort", onAbort);
414
+ resolve(result);
415
+ },
416
+ (error) => {
417
+ signal.removeEventListener("abort", onAbort);
418
+ reject(error);
419
+ }
420
+ );
421
+ } catch (error) {
422
+ signal.removeEventListener("abort", onAbort);
423
+ reject(error);
424
+ }
425
+ });
426
+ }
427
+
428
+ export {
429
+ isErrnoCode,
430
+ isFsError,
431
+ toFsError,
432
+ FsError,
433
+ outputFailure,
434
+ createBytePipe,
435
+ writeText,
436
+ writeBytes,
437
+ pipeBytes,
438
+ collectText,
439
+ collectBytes2 as collectBytes,
440
+ readBytes2 as readBytes,
441
+ toByteSource
442
+ };
443
+ //# sourceMappingURL=chunk-WPIOO4NX.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/contracts/errors.ts", "../../src/contracts/io.ts"],
4
+ "sourcesContent": ["export { isErrnoCode, isFsError, toFsError, FsError } from \"poe-code/safe-fs/core\";\nexport type { ErrnoCode, FsErrorOptions } from \"poe-code/safe-fs/core\";\n", "import { collectBytes, readBytes } from \"poe-code/safe-fs/core\";\nimport type { ByteSource, CollectOptions } from \"poe-code/safe-fs/core\";\nexport { collectBytes, readBytes, toByteSource } from \"poe-code/safe-fs/core\";\nexport type { ByteSource, CollectOptions } from \"poe-code/safe-fs/core\";\nimport { FsError } from \"./errors.js\";\n\nexport const outputFailure = Symbol(\"output failure\");\n\nexport interface ByteSink {\n write(chunk: Uint8Array): Promise<void>;\n readonly [outputFailure]?: (reason: unknown) => Promise<void>;\n readonly ownedOutput?: {\n readonly consumerClosed: AbortSignal;\n write(chunk: Uint8Array): Promise<void>;\n };\n}\n\nexport interface BytePipe {\n readonly readable: ByteSource;\n readonly writable: ByteSink;\n readonly endpoints?: { readonly read: PipeReadEndpoint; readonly write: PipeWriteEndpoint };\n readiness(): \"ready\" | \"eof\" | \"blocked\";\n close(): Promise<void>;\n abort(reason?: unknown): Promise<void>;\n}\n\nexport interface PipeEndpointObservation {\n readonly revision: bigint;\n readonly ready: boolean;\n readonly peerClosed: boolean;\n}\n\nexport interface PipeEndpointWaitOptions {\n readonly timeoutMs: number;\n readonly signal?: AbortSignal | undefined;\n}\n\ninterface PipeEndpoint {\n probe(): PipeEndpointObservation;\n waitForChange(revision: bigint, options: PipeEndpointWaitOptions): Promise<PipeEndpointObservation | undefined>;\n close(): Promise<void>;\n}\n\nexport interface PipeReadEndpoint extends PipeEndpoint {\n readonly direction: \"read\";\n readonly readable: ByteSource;\n acquire(): PipeReadEndpoint;\n}\n\nexport interface PipeWriteEndpoint extends PipeEndpoint {\n readonly direction: \"write\";\n readonly writable: ByteSink;\n acquire(): PipeWriteEndpoint;\n}\n\nexport interface BytePipeOptions {\n readonly highWaterMark?: number;\n readonly signal?: AbortSignal;\n}\n\nexport function createBytePipe(options: BytePipeOptions = {}): BytePipe {\n const highWaterMark = options.highWaterMark ?? 64 * 1024;\n const signal = options.signal;\n if (!Number.isSafeInteger(highWaterMark) || highWaterMark < 1) {\n throw new RangeError(\"highWaterMark must be a positive safe integer\");\n }\n interface EndpointState {\n readonly direction: \"read\" | \"write\";\n readonly writes: Set<WriteRequest>;\n open: boolean;\n closing: Promise<void> | undefined;\n }\n interface ReadLease {\n readonly endpoint: EndpointState;\n readonly pending: Set<ReadRequest>;\n done: boolean;\n }\n interface ReadRequest {\n readonly lease: ReadLease;\n readonly resolve: (result: IteratorResult<Uint8Array>) => void;\n readonly reject: (reason: unknown) => void;\n }\n interface WriteRequest {\n readonly endpoint: EndpointState;\n readonly chunk: Uint8Array;\n readonly completion: Promise<void>;\n readonly resolve: () => void;\n readonly reject: (reason: unknown) => void;\n }\n interface ObservationWaiter { changed(): void; aborted(reason: unknown): void; }\n const maximumObservationWaiters = 64;\n const buffered = new Set<Uint8Array>();\n const reads = new Set<ReadRequest>();\n const writes = new Set<WriteRequest>();\n const observers = new Set<ObservationWaiter>();\n let availableBytes = 0;\n let readerReferences = 0;\n let writerReferences = 0;\n let revision = 0n;\n let failed = false;\n let failure: unknown;\n let closePromise: Promise<void> | undefined;\n let abortPromise: Promise<void> | undefined;\n let finished = false;\n const consumer = new AbortController();\n const brokenPipe = (): FsError => new FsError(\"EPIPE\", { syscall: \"pipe\" });\n const checkFailure = (): void => { if (failed) throw failure; };\n const checkEndpoint = (endpoint: EndpointState): void => {\n checkFailure();\n signal?.throwIfAborted();\n if (!endpoint.open) throw new FsError(\"EBADF\", { syscall: \"pipe\" });\n };\n const changed = (): void => {\n revision++;\n for (const observer of [...observers]) observer.changed();\n };\n const removeRead = (request: ReadRequest): void => {\n reads.delete(request);\n request.lease.pending.delete(request);\n };\n const removeWrite = (request: WriteRequest): void => {\n writes.delete(request);\n request.endpoint.writes.delete(request);\n };\n const cleanup = (): void => { if (!observers.size) signal?.removeEventListener(\"abort\", onAbort); };\n const pump = (): void => {\n if (failed) return;\n while (true) {\n const reading = reads.values().next().value as ReadRequest | undefined;\n const chunk = buffered.values().next().value as Uint8Array | undefined;\n if (reading && chunk) {\n removeRead(reading);\n buffered.delete(chunk);\n availableBytes -= chunk.byteLength;\n reading.resolve({ done: false, value: chunk });\n changed();\n continue;\n }\n const writing = writes.values().next().value as WriteRequest | undefined;\n if (writing && (reading || availableBytes < highWaterMark)) {\n removeWrite(writing);\n buffered.add(writing.chunk);\n availableBytes += writing.chunk.byteLength;\n writing.resolve();\n changed();\n continue;\n }\n if (!writerReferences && !writes.size && !buffered.size && reads.size) {\n finished = true;\n for (const request of reads) {\n removeRead(request);\n request.lease.done = true;\n request.resolve({ done: true, value: undefined });\n }\n cleanup();\n }\n break;\n }\n };\n const fail = (reason: unknown): Promise<void> => {\n if (abortPromise) return abortPromise;\n if (finished) {\n for (const observer of [...observers]) observer.aborted(reason);\n return Promise.resolve();\n }\n abortPromise = Promise.resolve();\n failed = true;\n failure = reason;\n buffered.clear();\n availableBytes = 0;\n for (const request of reads) {\n removeRead(request);\n request.lease.done = true;\n request.reject(reason);\n }\n for (const request of writes) {\n removeWrite(request);\n request.reject(reason);\n }\n consumer.abort(reason);\n changed();\n cleanup();\n return abortPromise;\n };\n const abort = (reason: unknown = new FsError(\"EPIPE\", { syscall: \"pipe\" })): Promise<void> => fail(reason);\n const onAbort = (): void => { void fail(signal?.reason); };\n const probe = (endpoint: EndpointState): PipeEndpointObservation => {\n checkEndpoint(endpoint);\n const peerClosed = endpoint.direction === \"read\" ? writerReferences === 0 : readerReferences === 0;\n return Object.freeze({ revision, ready: peerClosed || endpoint.direction === \"read\" && availableBytes > 0, peerClosed });\n };\n const waitForChange = (endpoint: EndpointState, previous: bigint, options: PipeEndpointWaitOptions): Promise<PipeEndpointObservation | undefined> => {\n try {\n const { signal: waitingSignal, timeoutMs } = options;\n const localSignal = waitingSignal === signal ? undefined : waitingSignal;\n checkFailure();\n signal?.throwIfAborted();\n waitingSignal?.throwIfAborted();\n checkEndpoint(endpoint);\n if (!Number.isSafeInteger(timeoutMs) || timeoutMs < 0 || timeoutMs > 2_147_483_647) throw new RangeError(\"timeoutMs must be an integer between zero and 2147483647\");\n if (typeof previous !== \"bigint\" || previous < 0n || previous > revision) throw new RangeError(\"Invalid pipe observation revision\");\n if (previous !== revision) return Promise.resolve(probe(endpoint));\n if (!timeoutMs) return Promise.resolve(undefined);\n if (observers.size >= maximumObservationWaiters) throw new RangeError(\"Too many pending pipe endpoint observations\");\n return new Promise((resolve, reject) => {\n let settled = false;\n let timer: ReturnType<typeof setTimeout> | undefined;\n const retire = (): boolean => {\n if (settled) return false;\n settled = true;\n observers.delete(observer);\n if (timer !== undefined) clearTimeout(timer);\n localSignal?.removeEventListener(\"abort\", interrupted);\n if (finished || failed || !readerReferences && !writerReferences) cleanup();\n return true;\n };\n const settle = (timedOut = false): void => {\n if (!retire()) return;\n try {\n checkFailure();\n signal?.throwIfAborted();\n waitingSignal?.throwIfAborted();\n checkEndpoint(endpoint);\n resolve(timedOut ? undefined : probe(endpoint));\n } catch (reason) { reject(reason); }\n };\n const interrupted = (): void => settle();\n const observer: ObservationWaiter = {\n changed: () => settle(),\n aborted(reason) { if (retire()) reject(signal?.aborted ? signal.reason : reason); },\n };\n observers.add(observer);\n try {\n signal?.addEventListener(\"abort\", onAbort, { once: true });\n localSignal?.addEventListener(\"abort\", interrupted, { once: true });\n if (settled) {\n localSignal?.removeEventListener(\"abort\", interrupted);\n if (finished || failed || !readerReferences && !writerReferences) cleanup();\n }\n if (signal?.aborted || waitingSignal?.aborted || revision !== previous || !endpoint.open || failed) settle();\n if (!settled) timer = setTimeout(() => settle(true), timeoutMs);\n } catch (reason) { if (retire()) reject(reason); }\n });\n } catch (reason) { return Promise.reject(reason); }\n };\n const closeEndpoint = (endpoint: EndpointState): Promise<void> => {\n if (endpoint.closing) return endpoint.closing;\n let closed!: () => void;\n endpoint.closing = new Promise(resolve => { closed = resolve; });\n endpoint.open = false;\n const admittedWrites = [...endpoint.writes].map(request => request.completion);\n if (endpoint.direction === \"read\") {\n readerReferences--;\n for (const request of reads) if (request.lease.endpoint === endpoint) {\n removeRead(request);\n request.lease.done = true;\n request.reject(failed ? failure : new FsError(\"EBADF\", { syscall: \"read\" }));\n }\n if (!readerReferences) {\n buffered.clear();\n availableBytes = 0;\n const reason = brokenPipe();\n for (const request of writes) {\n removeWrite(request);\n request.reject(failed ? failure : reason);\n }\n consumer.abort(reason);\n }\n } else writerReferences--;\n changed();\n pump();\n if (!readerReferences && !writerReferences) cleanup();\n void Promise.allSettled(admittedWrites).then(closed);\n return endpoint.closing;\n };\n const borrow = (endpoint: EndpointState): AsyncIterableIterator<Uint8Array> => {\n const lease: ReadLease = { endpoint, pending: new Set(), done: false };\n const release = (): IteratorResult<Uint8Array> => {\n lease.done = true;\n for (const request of lease.pending) {\n removeRead(request);\n request.resolve({ done: true, value: undefined });\n }\n return { done: true, value: undefined };\n };\n return {\n [Symbol.asyncIterator]() { return this; },\n next() {\n if (lease.done) return Promise.resolve({ done: true, value: undefined });\n try { checkEndpoint(endpoint); }\n catch (reason) { lease.done = true; return Promise.reject(reason); }\n return new Promise((resolve, reject) => {\n const request: ReadRequest = { lease, resolve, reject };\n reads.add(request);\n lease.pending.add(request);\n pump();\n });\n },\n async return() { return release(); },\n async throw(reason) { release(); throw reason; },\n };\n };\n const write = (endpoint: EndpointState, chunk: Uint8Array, legacy = false): Promise<void> => {\n try {\n checkFailure();\n if (!legacy) signal?.throwIfAborted();\n if (!endpoint.open) throw new FsError(legacy ? \"EPIPE\" : \"EBADF\", { syscall: \"write\" });\n if (!readerReferences) throw brokenPipe();\n if (!(chunk instanceof Uint8Array)) throw new TypeError(\"Byte sinks require Uint8Array chunks\");\n if (!chunk.byteLength) return Promise.resolve();\n const owned = new Uint8Array(chunk);\n let resolve!: () => void;\n let reject!: (reason: unknown) => void;\n const completion = new Promise<void>((accept, refuse) => { resolve = accept; reject = refuse; });\n const request: WriteRequest = { endpoint, chunk: owned, completion, resolve, reject };\n endpoint.writes.add(request);\n writes.add(request);\n pump();\n return completion;\n } catch (reason) { return Promise.reject(reason); }\n };\n const createState = (direction: \"read\" | \"write\"): EndpointState => {\n if (direction === \"read\") readerReferences++;\n else writerReferences++;\n changed();\n return { direction, writes: new Set(), open: true, closing: undefined };\n };\n const createReadEndpoint = (state: EndpointState): PipeReadEndpoint => ({\n direction: \"read\",\n readable: { [Symbol.asyncIterator]: () => borrow(state) },\n acquire() { checkEndpoint(state); return createReadEndpoint(createState(\"read\")); },\n probe: () => probe(state),\n waitForChange: (previous, options) => waitForChange(state, previous, options),\n close: () => closeEndpoint(state),\n });\n const createWriteEndpoint = (state: EndpointState): PipeWriteEndpoint => {\n const writing = (chunk: Uint8Array): Promise<void> => write(state, chunk);\n return {\n direction: \"write\",\n writable: { write: writing, [outputFailure]: fail, ownedOutput: { consumerClosed: consumer.signal, write: writing } },\n acquire() { checkEndpoint(state); return createWriteEndpoint(createState(\"write\")); },\n probe: () => probe(state),\n waitForChange: (previous, options) => waitForChange(state, previous, options),\n close: () => closeEndpoint(state),\n };\n };\n const readState = createState(\"read\");\n const writeState = createState(\"write\");\n const endpoints = { read: createReadEndpoint(readState), write: createWriteEndpoint(writeState) };\n const reader = borrow(readState);\n const iterator = (async function* (): AsyncGenerator<Uint8Array> {\n try {\n while (true) {\n if (failed) throw failure;\n const result = await reader.next();\n if (failed) throw failure;\n if (result.done) {\n finished = true;\n return;\n }\n yield result.value;\n }\n } finally {\n if (!finished) await abort();\n await reader.return?.();\n }\n })();\n const readable: AsyncIterableIterator<Uint8Array> = {\n [Symbol.asyncIterator]() { return this; },\n next() { return iterator.next(); },\n async return() {\n if (!finished) await abort();\n try {\n return await iterator.return(undefined);\n } finally {\n await reader.return?.();\n }\n },\n async throw(reason) {\n await fail(reason);\n try {\n return await iterator.throw(reason);\n } finally {\n await reader.return?.();\n }\n },\n };\n const legacyWrite = (chunk: Uint8Array): Promise<void> => write(writeState, chunk, true);\n if (signal?.aborted) onAbort();\n else signal?.addEventListener(\"abort\", onAbort, { once: true });\n return {\n readable,\n endpoints,\n readiness() {\n if (failed) throw failure;\n return availableBytes > 0 ? \"ready\" : !writerReferences && !writes.size ? \"eof\" : \"blocked\";\n },\n writable: {\n write: legacyWrite,\n [outputFailure]: fail,\n ownedOutput: { consumerClosed: consumer.signal, write: legacyWrite },\n },\n close() {\n if (failed) return Promise.reject(failure);\n closePromise ??= closeEndpoint(writeState).then(() => { checkFailure(); });\n return closePromise;\n },\n abort,\n };\n}\n\nexport async function writeText(sink: ByteSink, text: string): Promise<void> {\n await sink.write(new TextEncoder().encode(text));\n}\n\nexport async function writeBytes(sink: ByteSink, chunk: Uint8Array, signal?: AbortSignal): Promise<void> {\n if (!(chunk instanceof Uint8Array)) throw new TypeError(\"Byte sinks require Uint8Array chunks\");\n await abortable(() => sink.write(chunk), signal);\n}\n\nexport async function pipeBytes(source: ByteSource, sink: ByteSink, signal?: AbortSignal): Promise<void> {\n signal?.throwIfAborted();\n for await (const chunk of readBytes(source, signal)) {\n await writeBytes(sink, chunk, signal);\n }\n signal?.throwIfAborted();\n}\n\nexport async function collectText(source: ByteSource, options: CollectOptions): Promise<string> {\n return new TextDecoder().decode(await collectBytes(source, options));\n}\n\nasync function abortable<Result>(operation: () => PromiseLike<Result>, signal?: AbortSignal): Promise<Result> {\n signal?.throwIfAborted();\n if (!signal) return operation();\n return new Promise<Result>((resolve, reject) => {\n const onAbort = (): void => {\n signal.removeEventListener(\"abort\", onAbort);\n reject(signal.reason);\n };\n signal.addEventListener(\"abort\", onAbort, { once: true });\n try {\n Promise.resolve(operation()).then(\n (result) => {\n signal.removeEventListener(\"abort\", onAbort);\n resolve(result);\n },\n (error: unknown) => {\n signal.removeEventListener(\"abort\", onAbort);\n reject(error);\n },\n );\n } catch (error) {\n signal.removeEventListener(\"abort\", onAbort);\n reject(error);\n }\n });\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["collectBytes", "readBytes", "options"]
7
+ }
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  init_platform
3
- } from "./chunk-2KL6W6NB.js";
3
+ } from "./chunk-O2EVBRKF.js";
4
4
 
5
5
  // packages/safe-bash/src/commands/llm/providers/index.ts
6
6
  init_platform();
@@ -10,4 +10,4 @@ init_platform();
10
10
 
11
11
  // packages/safe-bash/src/commands/llm/providers/elevenlabs.ts
12
12
  init_platform();
13
- //# sourceMappingURL=chunk-C7QNJ3D4.js.map
13
+ //# sourceMappingURL=chunk-WYTI64IU.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  init_platform
3
- } from "./chunk-2KL6W6NB.js";
3
+ } from "./chunk-O2EVBRKF.js";
4
4
 
5
5
  // packages/safe-bash/src/commands/bytes/compression/native/generated/xz.mjs
6
6
  init_platform();
@@ -6039,4 +6039,4 @@ export {
6039
6039
  l8 as default
6040
6040
  };
6041
6041
  /*! Native codec: xz v5.8.3. See ../LICENSES.txt and ../sources.json. */
6042
- //# sourceMappingURL=xz-AVXFDXW4.js.map
6042
+ //# sourceMappingURL=xz-U4QDTPZL.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  init_platform
3
- } from "./chunk-2KL6W6NB.js";
3
+ } from "./chunk-O2EVBRKF.js";
4
4
 
5
5
  // packages/safe-bash/src/commands/bytes/compression/native/generated/zstd.mjs
6
6
  init_platform();
@@ -27107,4 +27107,4 @@ export {
27107
27107
  b4 as default
27108
27108
  };
27109
27109
  /*! Native codec: zstd v1.5.7. See ../LICENSES.txt and ../sources.json. */
27110
- //# sourceMappingURL=zstd-R6RPHJYO.js.map
27110
+ //# sourceMappingURL=zstd-OG5RPYXO.js.map
@@ -0,0 +1,2 @@
1
+ export declare const crcTable: Uint32Array<ArrayBuffer>;
2
+ //# sourceMappingURL=crc.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crc.d.ts","sourceRoot":"","sources":["../../../../src/commands/archive/zip/crc.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,QAAQ,0BAInB,CAAC"}
@@ -0,0 +1,7 @@
1
+ export const crcTable = Uint32Array.from({ length: 256 }, (_, index) => {
2
+ let value = index;
3
+ for (let bit = 0; bit < 8; bit++)
4
+ value = (value >>> 1) ^ (value & 1 ? 0xedb88320 : 0);
5
+ return value >>> 0;
6
+ });
7
+ //# sourceMappingURL=crc.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crc.js","sourceRoot":"","sources":["../../../../src/commands/archive/zip/crc.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE;IACrE,IAAI,KAAK,GAAG,KAAK,CAAC;IAClB,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,EAAE;QAAE,KAAK,GAAG,CAAC,KAAK,KAAK,CAAC,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACvF,OAAO,KAAK,KAAK,CAAC,CAAC;AACrB,CAAC,CAAC,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { type ByteSource } from "../../../contracts/index.js";
2
+ /** Traditional PKZIP byte transformation; callers own header/password checks. */
3
+ export declare function zipCrypto(source: ByteSource, password: Uint8Array, decode: boolean, signal: AbortSignal): AsyncGenerator<Uint8Array>;
4
+ //# sourceMappingURL=crypto.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crypto.d.ts","sourceRoot":"","sources":["../../../../src/commands/archive/zip/crypto.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,KAAK,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAIzE,iFAAiF;AACjF,wBAAuB,SAAS,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,GAAG,cAAc,CAAC,UAAU,CAAC,CA2B3I"}
@@ -0,0 +1,34 @@
1
+ import { readBytes } from "../../../contracts/index.js";
2
+ import { yieldTurn } from "../../../contracts/yield.js";
3
+ import { crcTable } from "./crc.js";
4
+ /** Traditional PKZIP byte transformation; callers own header/password checks. */
5
+ export async function* zipCrypto(source, password, decode, signal) {
6
+ signal.throwIfAborted();
7
+ let key0 = 0x12345678, key1 = 0x23456789, key2 = 0x34567890;
8
+ const update = (byte) => {
9
+ key0 = (key0 >>> 8 ^ crcTable[(key0 ^ byte) & 255]) >>> 0;
10
+ key1 = (Math.imul(key1 + (key0 & 255), 134775813) + 1) >>> 0;
11
+ key2 = (key2 >>> 8 ^ crcTable[(key2 ^ key1 >>> 24) & 255]) >>> 0;
12
+ };
13
+ for (let index = 0; index < password.length; index++) {
14
+ update(password[index]);
15
+ if ((index + 1) % 65536 === 0)
16
+ await yieldTurn(signal);
17
+ }
18
+ for await (const bytes of readBytes(source, signal)) {
19
+ for (let offset = 0; offset < bytes.length; offset += 65536) {
20
+ signal.throwIfAborted();
21
+ const output = new Uint8Array(Math.min(65536, bytes.length - offset));
22
+ for (let index = 0; index < output.length; index++) {
23
+ const value = bytes[offset + index];
24
+ const temporary = (key2 & 65535) | 2;
25
+ const transformed = value ^ (Math.imul(temporary, temporary ^ 1) >>> 8 & 255);
26
+ update(decode ? transformed : value);
27
+ output[index] = transformed;
28
+ }
29
+ yield output;
30
+ await yieldTurn(signal);
31
+ }
32
+ }
33
+ }
34
+ //# sourceMappingURL=crypto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crypto.js","sourceRoot":"","sources":["../../../../src/commands/archive/zip/crypto.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAmB,MAAM,6BAA6B,CAAC;AACzE,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEpC,iFAAiF;AACjF,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,SAAS,CAAC,MAAkB,EAAE,QAAoB,EAAE,MAAe,EAAE,MAAmB;IAC7G,MAAM,CAAC,cAAc,EAAE,CAAC;IACxB,IAAI,IAAI,GAAG,UAAU,EAAE,IAAI,GAAG,UAAU,EAAE,IAAI,GAAG,UAAU,CAAC;IAC5D,MAAM,MAAM,GAAG,CAAC,IAAY,EAAQ,EAAE;QACpC,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC,GAAG,QAAQ,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG,CAAE,CAAC,KAAK,CAAC,CAAC;QAC3D,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;QAC7D,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC,GAAG,QAAQ,CAAC,CAAC,IAAI,GAAG,IAAI,KAAK,EAAE,CAAC,GAAG,GAAG,CAAE,CAAC,KAAK,CAAC,CAAC;IACpE,CAAC,CAAC;IACF,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;QACrD,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAE,CAAC,CAAC;QACzB,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,KAAK,KAAK,CAAC;YAAE,MAAM,SAAS,CAAC,MAAM,CAAC,CAAC;IACzD,CAAC;IACD,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;QACpD,KAAK,IAAI,MAAM,GAAG,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE,MAAM,IAAI,KAAK,EAAE,CAAC;YAC5D,MAAM,CAAC,cAAc,EAAE,CAAC;YACxB,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC;YACtE,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;gBACnD,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,GAAG,KAAK,CAAE,CAAC;gBACrC,MAAM,SAAS,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;gBACrC,MAAM,WAAW,GAAG,KAAK,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC;gBAC9E,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;gBACrC,MAAM,CAAC,KAAK,CAAC,GAAG,WAAW,CAAC;YAC9B,CAAC;YACD,MAAM,MAAM,CAAC;YACb,MAAM,SAAS,CAAC,MAAM,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -0,0 +1,3 @@
1
+ export declare const zipHelp = "safe-bash zip\nUsage: zip [options] archive [file ...]\n zip [options] - [file ...] write an archive to stdout\n zip [options] archive - read a member from stdin\n\n -r recurse into directories\n -j store basenames, discarding directory paths\n -q suppress progress messages\n -0 store without compression\n -1 .. -9 select compression effort\n -Z METHOD select store, deflate, or bzip2 compression\n -n SUFFIXES store matching suffixes (colon-separated)\n -u / -f update / freshen existing members\n -d / -U delete / copy selected archive members\n -FS synchronize selected members with filesystem sources\n -O FILE write to a separate output archive\n -m remove archived sources after successful publication\n -D / -y omit directory entries / store symlinks\n -i / -x include / exclude matching names\n -@ read filenames from stdin\n -t / -tt select files from / before a date\n -T test archive integrity before replacement\n -z / -c read archive / entry comments from stdin\n -o set archive time to the latest member time\n -l convert text LF line endings to CRLF\n -X strip optional metadata\n -fz / -fz- force / disable ZIP64 output\n -fd force data descriptors\n -h show this help\n\nUse -- after the archive name to pass filenames beginning with '-'.\nLong option equivalents are accepted, for example --junk-paths and\n--compression-method=bzip2. All filesystem operations use the virtual filesystem.\n";
2
+ export declare const zipExtendedHelp = "safe-bash zip\nUsage: zip [options] archive [file ...]\n zip [options] - [file ...] write an archive to stdout\n zip [options] archive - read a member from stdin\n\n -r recurse into directories\n -j store basenames, discarding directory paths\n -q suppress progress messages\n -0 store without compression\n -1 .. -9 select compression effort\n -Z METHOD select store, deflate, or bzip2 compression\n -n SUFFIXES store matching suffixes (colon-separated)\n -u / -f update / freshen existing members\n -d / -U delete / copy selected archive members\n -FS synchronize selected members with filesystem sources\n -O FILE write to a separate output archive\n -m remove archived sources after successful publication\n -D / -y omit directory entries / store symlinks\n -i / -x include / exclude matching names\n -@ read filenames from stdin\n -t / -tt select files from / before a date\n -T test archive integrity before replacement\n -z / -c read archive / entry comments from stdin\n -o set archive time to the latest member time\n -l convert text LF line endings to CRLF\n -X strip optional metadata\n -fz / -fz- force / disable ZIP64 output\n -fd force data descriptors\n -h show this help\n\nUse -- after the archive name to pass filenames beginning with '-'.\nLong option equivalents are accepted, for example --junk-paths and\n--compression-method=bzip2. All filesystem operations use the virtual filesystem.\n\nSelection\n -r traverses listed directories; -R recursively searches matching names.\n Do not combine -r and -R. -D omits directory records without stopping traversal.\n -i patterns and -x patterns accept lists ending at another option or at @.\n Quote patterns to prevent the shell expanding them before zip receives them.\n Exclusions take precedence over inclusions. -j flattens selected source names;\n duplicate basenames fail before the archive is replaced.\n -nw disables wildcard interpretation; -ws prevents wildcards crossing '/'.\n -MM makes missing input matches fatal. -t includes files from a date; -tt\n selects files before a date. Dates accept mmddyyyy or yyyy-mm-dd.\n -y stores the symbolic link itself; otherwise its target is read.\n -p accepts the native paths compatibility flag and does not undo -j.\n\nArchive operations\n The default action adds new members and replaces selected existing members.\n -u updates changed/new sources; -f freshens existing members only.\n -d deletes matching archive members; -U copies matching archive members.\n -FS synchronizes selected existing members, including missing sources.\n -O output.zip preserves the input archive and publishes a separate output.\n -m removes sources only after successful publication or stdout completion.\n Removal needs atomic filesystem support; excluded/nonempty directories remain.\n -T checks integrity before replacement. With stdout output it is ignored.\n -z reads an archive comment; -c reads selected member comments in archive order.\n -X strips optional metadata; -X- preserves available metadata.\n -o sets the archive timestamp to the newest resulting member timestamp.\n\nCompression and format\n -Z selects store, deflate, or bzip2; method names accept unique prefixes.\n -1 through -9 select effort. Store selection remains through later levels.\n -n .jpg:.png stores matching suffixes; -9 overrides suffix-based storage.\n Compression may fall back to STORE for regular files when it expands data.\n -l converts text LF to CRLF, leaving detected binary input unchanged.\n -fz forces ZIP64; -fz- disables it. -fd forces signed data descriptors.\n BZIP2 members use extraction version 4.6, including with ZIP64 records.\n\nStreaming\n A '-' input filename reads one member from stdin, named '-'.\n A '-' archive name writes binary archive bytes to stdout and progress to stderr.\n With no archive or file operands, zip acts as a stdin-to-stdout filter.\n Streamed members retain compression even if it expands their data.\n -@ instead reads newline-separated input filenames; it cannot also read a '-'\n payload from the same stdin. Empty filename lines are ignored.\n Complete the output stream before using the resulting archive.\n\nArguments and ZIPOPT\n Long options accept unique abbreviations and --option=value where appropriate.\n Use -- after the archive name for literal filenames beginning with '-'.\n ZIPOPT supplies default arguments before the command arguments. Double quotes\n group words inside ZIPOPT; shell expansion is not performed on these defaults.\n -h and -h2 print basic and extended help as soon as they are encountered.\n";
3
+ //# sourceMappingURL=help.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"help.d.ts","sourceRoot":"","sources":["../../../../src/commands/archive/zip/help.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,8kDAiCnB,CAAC;AAEF,eAAO,MAAM,eAAe,4sJAmD3B,CAAC"}