@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,29 @@
1
+ import { type CommandDefinition, type VirtualShellPlugin } from "../../contracts/index.js";
2
+ export interface PptxCommandEngine {
3
+ execute(request: {
4
+ readonly args: readonly Uint8Array[];
5
+ readonly signal: AbortSignal;
6
+ readonly readInput: (path: string, maxBytes: number) => Promise<Uint8Array>;
7
+ readonly publishOutput?: (publication: {
8
+ readonly inputPath?: string;
9
+ readonly protectedInputPaths?: readonly string[];
10
+ readonly outputPath: string;
11
+ readonly bytes: Uint8Array;
12
+ readonly originalBytes: Uint8Array;
13
+ readonly inPlace: boolean;
14
+ readonly force: boolean;
15
+ readonly dryRun: boolean;
16
+ }) => Promise<void>;
17
+ }): Promise<{
18
+ readonly exitCode: number;
19
+ readonly stdout: Uint8Array;
20
+ readonly stderr: Uint8Array;
21
+ }>;
22
+ }
23
+ export interface PptxCommandsOptions {
24
+ readonly engine: PptxCommandEngine;
25
+ readonly replace?: boolean;
26
+ }
27
+ export declare function createPptxCommands(options: PptxCommandsOptions): readonly CommandDefinition[];
28
+ export declare function pptxCommands(options: PptxCommandsOptions): VirtualShellPlugin;
29
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/pptx/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0D,KAAK,iBAAiB,EAAiB,KAAK,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAMlK,MAAM,WAAW,iBAAiB;IAChC,OAAO,CAAC,OAAO,EAAE;QACf,QAAQ,CAAC,IAAI,EAAE,SAAS,UAAU,EAAE,CAAC;QACrC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;QAC7B,QAAQ,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;QAC5E,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,WAAW,EAAE;YACrC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;YAC5B,QAAQ,CAAC,mBAAmB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;YACjD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;YAC5B,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;YAC3B,QAAQ,CAAC,aAAa,EAAE,UAAU,CAAC;YACnC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;YAC1B,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;YACxB,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;SAC1B,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;KACrB,GAAG,OAAO,CAAC;QACV,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAC1B,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;QAC5B,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;KAC7B,CAAC,CAAC;CACJ;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC;IACnC,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,mBAAmB,GAAG,SAAS,iBAAiB,EAAE,CA0G7F;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,kBAAkB,CAO7E"}
@@ -0,0 +1,153 @@
1
+ import { collectBytes, FsError, getCommandArguments, writeBytes } from "../../contracts/index.js";
2
+ import { writeFileOutput } from "../../contracts/filesystem-output.js";
3
+ import { compareObservedEntries } from "../copy-identity.js";
4
+ import { pathOf } from "../internal.js";
5
+ import { inputRequirements } from "../portable-requirements.js";
6
+ export function createPptxCommands(options) {
7
+ if (!options?.engine || typeof options.engine.execute !== "function")
8
+ throw new TypeError("An explicit pptx command engine is required.");
9
+ if (options.replace !== undefined && typeof options.replace !== "boolean")
10
+ throw new TypeError("pptx replace must be boolean");
11
+ const engine = options.engine;
12
+ return [{ name: "pptx", filesystemRequirements: inputRequirements, async execute(context) {
13
+ const arguments_ = getCommandArguments(context);
14
+ const snapshots = new Map();
15
+ const result = await engine.execute({
16
+ args: arguments_.args.map((_, index) => arguments_.bytes(index)),
17
+ signal: context.signal,
18
+ async readInput(path, maxBytes) {
19
+ try {
20
+ context.signal.throwIfAborted();
21
+ if (path === "-")
22
+ return await collectBytes(context.stdin, { maxBytes, signal: context.signal });
23
+ const resolved = pathOf(context, path);
24
+ if (!snapshots.has(resolved)) {
25
+ try {
26
+ snapshots.set(resolved, await context.fs.lstat(resolved, { signal: context.signal }));
27
+ }
28
+ catch {
29
+ context.signal.throwIfAborted();
30
+ }
31
+ }
32
+ const capabilities = await context.fs.capabilitiesFor?.(resolved, { signal: context.signal }) ?? context.fs.capabilities;
33
+ context.signal.throwIfAborted();
34
+ if (context.fs.readStream && capabilities.streamingRead !== false) {
35
+ let emitted = false;
36
+ try {
37
+ const stream = context.fs.readStream(resolved, { signal: context.signal });
38
+ return await collectBytes((async function* () {
39
+ for await (const chunk of stream) {
40
+ if (chunk.byteLength)
41
+ emitted = true;
42
+ yield chunk;
43
+ }
44
+ })(), { maxBytes, signal: context.signal });
45
+ }
46
+ catch (error) {
47
+ context.signal.throwIfAborted();
48
+ if (emitted || !(error instanceof FsError) || error.code !== "ENOTSUP")
49
+ throw error;
50
+ }
51
+ }
52
+ if (capabilities.read === false)
53
+ throw new FsError("ENOTSUP");
54
+ const bytes = await context.fs.readFile(resolved, { maxBytes, signal: context.signal });
55
+ context.signal.throwIfAborted();
56
+ if (bytes.byteLength > maxBytes)
57
+ throw new FsError("EFBIG");
58
+ return bytes;
59
+ }
60
+ catch (error) {
61
+ context.signal.throwIfAborted();
62
+ throw Object.assign(new Error("Input could not be read."), { code: error instanceof FsError && error.code === "EFBIG" ? "resource-limit" : "io-failure" });
63
+ }
64
+ },
65
+ async publishOutput(publication) {
66
+ try {
67
+ const { fs, signal } = context;
68
+ signal.throwIfAborted();
69
+ const input = publication.inputPath === undefined || publication.inputPath === "-" ? undefined : pathOf(context, publication.inputPath);
70
+ const output = pathOf(context, publication.outputPath);
71
+ if (publication.inPlace ? !input || input !== output : input === output)
72
+ throw new FsError("EINVAL");
73
+ const capabilities = await fs.capabilitiesFor?.(output, { signal }) ?? fs.capabilities;
74
+ signal.throwIfAborted();
75
+ if (capabilities.readOnly === true || capabilities.write === false || !capabilities.atomicFileMutation || !fs.writeFileConditional)
76
+ throw new FsError("ENOTSUP");
77
+ let destination;
78
+ try {
79
+ destination = await fs.lstat(output, { signal });
80
+ }
81
+ catch (error) {
82
+ signal.throwIfAborted();
83
+ if (!(error instanceof FsError) || error.code !== "ENOENT")
84
+ throw error;
85
+ destination = null;
86
+ }
87
+ if (destination && destination.type !== "file")
88
+ throw new FsError("EINVAL");
89
+ if (destination) {
90
+ const protectedInputs = new Set((publication.protectedInputPaths ?? []).filter(path => path !== "-").map(path => pathOf(context, path)));
91
+ for (const [source, observed] of snapshots) {
92
+ if (source === input && !protectedInputs.has(source))
93
+ continue;
94
+ const identity = observed.type === "symlink" ? await fs.stat(source, { signal }) : observed;
95
+ if (source === output || await compareObservedEntries(fs, source, identity, fs, output, destination, { signal }) !== "distinct")
96
+ throw new FsError("EINVAL");
97
+ }
98
+ }
99
+ if (destination && !publication.inPlace) {
100
+ if (!publication.force)
101
+ throw new FsError("EEXIST");
102
+ if (input && await compareObservedEntries(fs, input, await fs.stat(input, { signal }), fs, output, destination, { signal }) !== "distinct")
103
+ throw new FsError("EINVAL");
104
+ }
105
+ const parentPath = output.slice(0, output.lastIndexOf("/")) || "/";
106
+ const parent = await fs.stat(parentPath, { signal });
107
+ if (parent.type !== "directory")
108
+ throw new FsError("ENOTDIR");
109
+ if (publication.inPlace) {
110
+ const original = snapshots.get(input);
111
+ if (!original || original.type !== "file" || !destination || original.revision === undefined
112
+ || original.revision !== destination.revision || original.size !== destination.size
113
+ || original.mode !== destination.mode || original.nlink !== destination.nlink
114
+ || original.mtimeMs !== destination.mtimeMs || original.ctimeMs !== destination.ctimeMs
115
+ || await compareObservedEntries(fs, input, original, fs, output, destination, { signal }) !== "same")
116
+ throw new FsError("EAGAIN");
117
+ const current = await fs.readFile(input, { maxBytes: publication.originalBytes.length, signal });
118
+ if (current.length !== publication.originalBytes.length || current.some((byte, index) => byte !== publication.originalBytes[index]))
119
+ throw new FsError("EAGAIN");
120
+ destination = original;
121
+ }
122
+ signal.throwIfAborted();
123
+ if (!publication.dryRun)
124
+ await writeFileOutput(context, publication.bytes, async (bytes) => {
125
+ await fs.writeFileConditional(output, bytes, { parent, expected: destination, signal });
126
+ });
127
+ }
128
+ catch (error) {
129
+ context.signal.throwIfAborted();
130
+ const code = error instanceof FsError && error.code === "EAGAIN" ? "stale-input"
131
+ : error instanceof FsError && error.code === "ENOTSUP" ? "publication-unsupported" : "io-failure";
132
+ throw Object.assign(new Error("Output could not be published."), { code });
133
+ }
134
+ }
135
+ });
136
+ if (result.stdout.length)
137
+ await writeBytes(context.stdout, result.stdout, context.signal);
138
+ if (result.stderr.length)
139
+ await writeBytes(context.stderr, result.stderr, context.signal);
140
+ return { exitCode: result.exitCode };
141
+ } }];
142
+ }
143
+ export function pptxCommands(options) {
144
+ const commands = createPptxCommands(options);
145
+ const replace = options.replace ?? false;
146
+ return { name: "pptx-commands", setup(host) {
147
+ if (!replace && host.commands.has("pptx"))
148
+ throw new Error("Command already registered: pptx");
149
+ for (const command of commands)
150
+ host.commands.register(command, { replace });
151
+ } };
152
+ }
153
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/pptx/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,mBAAmB,EAAE,UAAU,EAAkE,MAAM,0BAA0B,CAAC;AAClK,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AACvE,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AA6BhE,MAAM,UAAU,kBAAkB,CAAC,OAA4B;IAC7D,IAAI,CAAC,OAAO,EAAE,MAAM,IAAI,OAAO,OAAO,CAAC,MAAM,CAAC,OAAO,KAAK,UAAU;QAAE,MAAM,IAAI,SAAS,CAAC,8CAA8C,CAAC,CAAC;IAC1I,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS,IAAI,OAAO,OAAO,CAAC,OAAO,KAAK,SAAS;QAAE,MAAM,IAAI,SAAS,CAAC,8BAA8B,CAAC,CAAC;IAC/H,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAC9B,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO;gBACtF,MAAM,UAAU,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;gBAChD,MAAM,SAAS,GAAG,IAAI,GAAG,EAAoB,CAAC;gBAC9C,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC;oBAClC,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAE,CAAC;oBACjE,MAAM,EAAE,OAAO,CAAC,MAAM;oBACtB,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ;wBAC5B,IAAI,CAAC;4BACH,OAAO,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;4BAChC,IAAI,IAAI,KAAK,GAAG;gCAAE,OAAO,MAAM,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;4BACjG,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;4BACvC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;gCAC7B,IAAI,CAAC;oCAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;gCAAC,CAAC;gCAC9F,MAAM,CAAC;oCAAC,OAAO,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;gCAAC,CAAC;4BAC5C,CAAC;4BACD,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,EAAE,CAAC,eAAe,EAAE,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,IAAI,OAAO,CAAC,EAAE,CAAC,YAAY,CAAC;4BACzH,OAAO,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;4BAChC,IAAI,OAAO,CAAC,EAAE,CAAC,UAAU,IAAI,YAAY,CAAC,aAAa,KAAK,KAAK,EAAE,CAAC;gCAClE,IAAI,OAAO,GAAG,KAAK,CAAC;gCACpB,IAAI,CAAC;oCACH,MAAM,MAAM,GAAG,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;oCAC3E,OAAO,MAAM,YAAY,CAAC,CAAC,KAAK,SAAS,CAAC;wCACxC,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;4CACjC,IAAI,KAAK,CAAC,UAAU;gDAAE,OAAO,GAAG,IAAI,CAAC;4CACrC,MAAM,KAAK,CAAC;wCACd,CAAC;oCACH,CAAC,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;gCAC9C,CAAC;gCAAC,OAAO,KAAK,EAAE,CAAC;oCACf,OAAO,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;oCAChC,IAAI,OAAO,IAAI,CAAC,CAAC,KAAK,YAAY,OAAO,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS;wCAAE,MAAM,KAAK,CAAC;gCACtF,CAAC;4BACH,CAAC;4BACD,IAAI,YAAY,CAAC,IAAI,KAAK,KAAK;gCAAE,MAAM,IAAI,OAAO,CAAC,SAAS,CAAC,CAAC;4BAC9D,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;4BACxF,OAAO,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;4BAChC,IAAI,KAAK,CAAC,UAAU,GAAG,QAAQ;gCAAE,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;4BAC5D,OAAO,KAAK,CAAC;wBACf,CAAC;wBAAC,OAAO,KAAK,EAAE,CAAC;4BACf,OAAO,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;4BAChC,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,0BAA0B,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,YAAY,OAAO,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC;wBAC7J,CAAC;oBACH,CAAC;oBACD,KAAK,CAAC,aAAa,CAAC,WAAW;wBAC7B,IAAI,CAAC;4BACH,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;4BAC/B,MAAM,CAAC,cAAc,EAAE,CAAC;4BACxB,MAAM,KAAK,GAAG,WAAW,CAAC,SAAS,KAAK,SAAS,IAAI,WAAW,CAAC,SAAS,KAAK,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;4BACxI,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,EAAE,WAAW,CAAC,UAAU,CAAC,CAAC;4BACvD,IAAI,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,KAAK,MAAM;gCAAE,MAAM,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC;4BACrG,MAAM,YAAY,GAAG,MAAM,EAAE,CAAC,eAAe,EAAE,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,YAAY,CAAC;4BACvF,MAAM,CAAC,cAAc,EAAE,CAAC;4BACxB,IAAI,YAAY,CAAC,QAAQ,KAAK,IAAI,IAAI,YAAY,CAAC,KAAK,KAAK,KAAK,IAAI,CAAC,YAAY,CAAC,kBAAkB,IAAI,CAAC,EAAE,CAAC,oBAAoB;gCAAE,MAAM,IAAI,OAAO,CAAC,SAAS,CAAC,CAAC;4BACjK,IAAI,WAA4B,CAAC;4BACjC,IAAI,CAAC;gCAAC,WAAW,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;4BAAC,CAAC;4BACzD,OAAO,KAAK,EAAE,CAAC;gCACb,MAAM,CAAC,cAAc,EAAE,CAAC;gCACxB,IAAI,CAAC,CAAC,KAAK,YAAY,OAAO,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ;oCAAE,MAAM,KAAK,CAAC;gCACxE,WAAW,GAAG,IAAI,CAAC;4BACrB,CAAC;4BACD,IAAI,WAAW,IAAI,WAAW,CAAC,IAAI,KAAK,MAAM;gCAAE,MAAM,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC;4BAC5E,IAAI,WAAW,EAAE,CAAC;gCAChB,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,CAAC,WAAW,CAAC,mBAAmB,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;gCACzI,KAAK,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,SAAS,EAAE,CAAC;oCAC3C,IAAI,MAAM,KAAK,KAAK,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC;wCAAE,SAAS;oCAC/D,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;oCAC5F,IAAI,MAAM,KAAK,MAAM,IAAI,MAAM,sBAAsB,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,MAAM,EAAE,CAAC,KAAK,UAAU;wCAAE,MAAM,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC;gCAC/J,CAAC;4BACH,CAAC;4BACD,IAAI,WAAW,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;gCACxC,IAAI,CAAC,WAAW,CAAC,KAAK;oCAAE,MAAM,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC;gCACpD,IAAI,KAAK,IAAI,MAAM,sBAAsB,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,MAAM,EAAE,CAAC,KAAK,UAAU;oCAAE,MAAM,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC;4BAC1K,CAAC;4BACD,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC;4BACnE,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;4BACrD,IAAI,MAAM,CAAC,IAAI,KAAK,WAAW;gCAAE,MAAM,IAAI,OAAO,CAAC,SAAS,CAAC,CAAC;4BAC9D,IAAI,WAAW,CAAC,OAAO,EAAE,CAAC;gCACxB,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,KAAM,CAAC,CAAC;gCACvC,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,WAAW,IAAI,QAAQ,CAAC,QAAQ,KAAK,SAAS;uCACvF,QAAQ,CAAC,QAAQ,KAAK,WAAW,CAAC,QAAQ,IAAI,QAAQ,CAAC,IAAI,KAAK,WAAW,CAAC,IAAI;uCAChF,QAAQ,CAAC,IAAI,KAAK,WAAW,CAAC,IAAI,IAAI,QAAQ,CAAC,KAAK,KAAK,WAAW,CAAC,KAAK;uCAC1E,QAAQ,CAAC,OAAO,KAAK,WAAW,CAAC,OAAO,IAAI,QAAQ,CAAC,OAAO,KAAK,WAAW,CAAC,OAAO;uCACpF,MAAM,sBAAsB,CAAC,EAAE,EAAE,KAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,MAAM,EAAE,CAAC,KAAK,MAAM;oCAAE,MAAM,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC;gCACrI,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,KAAM,EAAE,EAAE,QAAQ,EAAE,WAAW,CAAC,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;gCAClG,IAAI,OAAO,CAAC,MAAM,KAAK,WAAW,CAAC,aAAa,CAAC,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,KAAK,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;oCAAE,MAAM,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC;gCACjK,WAAW,GAAG,QAAQ,CAAC;4BACzB,CAAC;4BACD,MAAM,CAAC,cAAc,EAAE,CAAC;4BACxB,IAAI,CAAC,WAAW,CAAC,MAAM;gCAAE,MAAM,eAAe,CAAC,OAAO,EAAE,WAAW,CAAC,KAAK,EAAE,KAAK,EAAC,KAAK,EAAC,EAAE;oCACvF,MAAM,EAAE,CAAC,oBAAqB,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,CAAC;gCAC3F,CAAC,CAAC,CAAC;wBACL,CAAC;wBAAC,OAAO,KAAK,EAAE,CAAC;4BACf,OAAO,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;4BAChC,MAAM,IAAI,GAAG,KAAK,YAAY,OAAO,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,aAAa;gCAC9E,CAAC,CAAC,KAAK,YAAY,OAAO,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,YAAY,CAAC;4BACpG,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,gCAAgC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;wBAC7E,CAAC;oBACH,CAAC;iBACF,CAAC,CAAC;gBACH,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM;oBAAE,MAAM,UAAU,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;gBAC1F,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM;oBAAE,MAAM,UAAU,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;gBAC1F,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC;YACvC,CAAC,EAAE,CAAC,CAAC;AACP,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,OAA4B;IACvD,MAAM,QAAQ,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAC7C,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,KAAK,CAAC;IACzC,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,CAAC,IAAI;YACxC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;YAC/F,KAAK,MAAM,OAAO,IAAI,QAAQ;gBAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;QAC/E,CAAC,EAAE,CAAC;AACN,CAAC"}
@@ -2,12 +2,14 @@ import {
2
2
  createPrCommand,
3
3
  createPrCommands,
4
4
  prCommands
5
- } from "../../chunks/chunk-PCLOK32J.js";
6
- import "../../chunks/chunk-RNKTWFEM.js";
7
- import "../../chunks/chunk-UYX72YHY.js";
8
- import "../../chunks/chunk-DPJWEGIX.js";
9
- import "../../chunks/chunk-CXMIIXJA.js";
10
- import "../../chunks/chunk-2KL6W6NB.js";
5
+ } from "../../chunks/chunk-PC6BEIAF.js";
6
+ import "../../chunks/chunk-CDBQXRWL.js";
7
+ import "../../chunks/chunk-3E5M2WEL.js";
8
+ import "../../chunks/chunk-THXJ6CLF.js";
9
+ import "../../chunks/chunk-CHHAB5SS.js";
10
+ import "../../chunks/chunk-JLBIUYT3.js";
11
+ import "../../chunks/chunk-WPIOO4NX.js";
12
+ import "../../chunks/chunk-O2EVBRKF.js";
11
13
  export {
12
14
  createPrCommand,
13
15
  createPrCommands,
@@ -31,7 +31,7 @@ export function predicateCommands() {
31
31
  return { exitCode: args[0] ? 0 : 1 };
32
32
  if (args.length === 2 && args[0] === "!")
33
33
  return { exitCode: args[1] ? 1 : 0 };
34
- const unary = new Set(["-n", "-z", "-e", "-a", "-f", "-c", "-d", "-L", "-h", "-s", "-r", "-w", "-x"]);
34
+ const unary = new Set(["-n", "-z", "-e", "-a", "-f", "-d", "-c", "-L", "-h", "-s", "-r", "-w", "-x"]);
35
35
  const binary = new Set(["=", "==", "!=", "<", ">", "-eq", "-ne", "-lt", "-le", "-gt", "-ge", "-nt", "-ot", "-ef"]);
36
36
  let offset = 0;
37
37
  const number = (text) => {
@@ -0,0 +1,3 @@
1
+ /** Executed by CPython after canonical storage and byte streams are installed. */
2
+ export declare const pythonExecution = "\nimport sys, os, json, runpy, traceback, types, warnings, textwrap, io, struct, linecache\n_safe_invocation = json.loads(_safe_invocation_json)\nos.environ.clear()\nos.environ.update(_safe_invocation['env'])\n_safe_args = list(_safe_invocation['args'])\n_safe_exit = 0\n\nclass _SafeOptionError(ValueError):\n pass\n\ndef _safe_system_exit(_error):\n if isinstance(_error.code, int):\n _status = int.__index__(_error.code)\n _long_bound = 1 << (8 * struct.calcsize('@l') - 1)\n status = (_status & 255) if -_long_bound <= _status < _long_bound else 255\n else:\n status = 0 if _error.code is None else 1\n if _error.code is not None and not isinstance(_error.code, int):\n print(_error.code, file=sys.stderr)\n return status\n\ndef _safe_launch():\n args = list(_safe_args)\n unbuffered = False\n ignore_env = bool(sys.flags.ignore_environment)\n safe_path = bool(sys.flags.safe_path)\n native_warning_options = list(sys.warnoptions)\n warning_options = []\n version_count = 0\n options_terminated = False\n while args and args[0].startswith('-') and args[0] != '-':\n option = args.pop(0)\n if option == '--':\n options_terminated = True\n break\n if option in ('--help', '-h', '-?'):\n print('usage: python [-uBEPOsSIbdvqR] [-W filter] [-X option] [-c code | -m module | file | -] [args ...]')\n print('Dedicated Pyodide interpreter; stdin is noninteractive.')\n print('-u: unbuffered binary output; -B: disable bytecode writes; -E: ignore PYTHON* settings')\n print('-P: omit automatic unsafe sys.path entry; -W: Python warning filter')\n print('-O/-OO, -S/-s/-I, -b/-bb, -d/-v/-q/-R: CPython startup flags')\n print('-X: utf8, dev, warn_default_encoding, int_max_str_digits; interactive flags are unsupported.')\n return\n if option == '--version':\n version_count += 1\n continue\n if option.startswith('--'):\n raise _SafeOptionError('unsupported option ' + option)\n index = 1\n while index < len(option):\n flag = option[index]\n if flag in ('h', '?'):\n args = ['--help']\n break\n if flag == 'V':\n version_count += 1\n index += 1\n continue\n if flag in ('c', 'm', 'W', 'X'):\n operand = option[index + 1:] if index + 1 < len(option) else args.pop(0) if args else None\n if operand is None:\n raise _SafeOptionError('argument expected for -' + flag)\n if flag in ('W', 'X'):\n if flag == 'W': warning_options.append(operand)\n break\n args = ['-' + flag, operand] + args\n break\n elif flag in ('O', 'S', 's', 'I', 'b', 'd', 'v', 'q', 'R'):\n pass # Applied by CPython startup configuration before bootstrap.\n elif flag == 'u':\n unbuffered = True\n elif flag == 'B':\n sys.dont_write_bytecode = True\n elif flag == 'E':\n ignore_env = True\n elif flag == 'P':\n safe_path = True\n else:\n raise _SafeOptionError('unsupported option -' + flag)\n index += 1\n if args and args[0] in ('-c', '-m'):\n break\n if version_count:\n print('Python ' + (sys.version if version_count > 1 else sys.version.split()[0]))\n return\n if not ignore_env:\n unbuffered = unbuffered or bool(os.environ.get('PYTHONUNBUFFERED'))\n sys.dont_write_bytecode = sys.dont_write_bytecode or bool(os.environ.get('PYTHONDONTWRITEBYTECODE'))\n safe_path = safe_path or bool(os.environ.get('PYTHONSAFEPATH'))\n path = os.environ.get('PYTHONPATH')\n if path:\n sys.path[0:0] = [os.path.abspath(entry) for entry in path.split(os.pathsep)]\n if os.environ.get('PYTHONWARNINGS'):\n warning_options[0:0] = os.environ['PYTHONWARNINGS'].split(',')\n encoding = os.environ.get('PYTHONIOENCODING')\n if encoding:\n name, separator, errors = encoding.partition(':')\n for stream in (sys.stdin, sys.stdout):\n stream.reconfigure(encoding=name or None, errors=(errors or 'strict'))\n sys.stderr.reconfigure(encoding=name or None, errors='backslashreplace')\n # CPython's -b/-bb filter follows environment and command-line -W filters.\n byte_warning = ('error' if sys.flags.bytes_warning > 1 else 'default') + '::BytesWarning'\n native_before = [value for value in native_warning_options if not (sys.flags.bytes_warning and value == byte_warning)]\n warning_options = native_before + warning_options + ([byte_warning] if sys.flags.bytes_warning else [])\n warnings._processoptions(warning_options)\n sys.warnoptions[:] = warning_options\n if unbuffered:\n for name in ('stdout', 'stderr'):\n stream = getattr(sys, name)\n stream.flush()\n encoding, errors = stream.encoding, stream.errors\n binary = stream.detach()\n raw = binary.detach() if hasattr(binary, 'detach') else binary\n replacement = io.TextIOWrapper(raw, encoding=encoding, errors=errors, write_through=True)\n setattr(sys, name, replacement)\n setattr(sys, '__' + name + '__', replacement)\n main = types.ModuleType('__main__')\n main.__dict__.update(__package__=None, __spec__=None, __loader__=None, __builtins__=__builtins__)\n sys.modules['__main__'] = main\n if not options_terminated and args and args[0] == '-c':\n sys.argv = ['-c'] + args[2:]\n if not safe_path: sys.path.insert(0, '')\n source = textwrap.dedent(args[1])\n code = compile(source, '<string>', 'exec')\n # CPython 3.14 retains -c source for both top-level and nested tracebacks.\n linecache._register_code(code, source, '<string>')\n exec(code, main.__dict__)\n elif not options_terminated and args and args[0] == '-m':\n sys.argv = args[1:]\n if not safe_path: sys.path.insert(0, os.getcwd())\n runpy._run_module_as_main(args[1], alter_argv=True)\n elif not args or args[0] == '-':\n sys.argv = (['-'] + args[1:]) if args else ['']\n if not safe_path: sys.path.insert(0, '')\n main.__file__ = '<stdin>'\n exec(compile(sys.stdin.buffer.read(), '<stdin>', 'exec'), main.__dict__)\n else:\n sys.argv = args\n # CPython makes __file__ absolute without collapsing ./ or ../ components.\n path = args[0] if os.path.isabs(args[0]) else os.path.join(os.getcwd(), args[0])\n importer = __import__('pkgutil').get_importer(path)\n if importer is not None:\n sys.path.insert(0, path)\n runpy._run_module_as_main('__main__', alter_argv=False)\n else:\n if not safe_path: sys.path.insert(0, os.path.dirname(os.path.realpath(path)))\n try:\n with open(path, 'rb') as source:\n code = source.read()\n except OSError as error:\n print(\"python: can't open file \" + repr(path) + ': [Errno ' + str(error.errno) + '] ' + error.strerror, file=sys.stderr)\n return 2\n main.__file__ = path\n main.__loader__ = __import__('importlib.machinery', fromlist=['SourceFileLoader']).SourceFileLoader('__main__', path)\n exec(compile(code, path, 'exec'), main.__dict__)\n return 0\n\ntry:\n _safe_exit = _safe_launch() or 0\nexcept SystemExit as _error:\n _safe_exit = _safe_system_exit(_error)\nexcept _SafeOptionError as _error:\n print('python: ' + str(_error), file=sys.stderr)\n _safe_exit = 2\nexcept BaseException as _error:\n # Hide bridge frames while preserving actual Python frames and chained errors.\n _trace = _error.__traceback__\n while _trace is not None and _trace.tb_frame.f_code.co_filename == '<exec>':\n _trace = _trace.tb_next\n _error.__traceback__ = _trace\n sys.last_exc = _error\n _safe_exit = 130 if isinstance(_error, KeyboardInterrupt) else 1\n try:\n sys.excepthook(type(_error), _error, _trace)\n except SystemExit as _hook_error:\n _safe_exit = _safe_system_exit(_hook_error)\n except BaseException as _hook_error:\n print('Error in sys.excepthook:', file=sys.stderr)\n traceback.print_exception(type(_hook_error), _hook_error, _hook_error.__traceback__.tb_next)\n print('\\nOriginal exception was:', file=sys.stderr)\n sys.__excepthook__(type(_error), _error, _trace)\nfinally:\n for _stream in (sys.stdout, sys.stderr):\n if _stream is not None and not getattr(_stream, 'closed', False):\n try:\n _stream.flush()\n except BaseException:\n _safe_exit = 120\n_safe_exit\n";
3
+ //# sourceMappingURL=execution.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execution.d.ts","sourceRoot":"","sources":["../../../src/commands/python/execution.ts"],"names":[],"mappings":"AAAA,kFAAkF;AAClF,eAAO,MAAM,eAAe,yuPA8L3B,CAAC"}
@@ -0,0 +1,193 @@
1
+ /** Executed by CPython after canonical storage and byte streams are installed. */
2
+ export const pythonExecution = `
3
+ import sys, os, json, runpy, traceback, types, warnings, textwrap, io, struct, linecache
4
+ _safe_invocation = json.loads(_safe_invocation_json)
5
+ os.environ.clear()
6
+ os.environ.update(_safe_invocation['env'])
7
+ _safe_args = list(_safe_invocation['args'])
8
+ _safe_exit = 0
9
+
10
+ class _SafeOptionError(ValueError):
11
+ pass
12
+
13
+ def _safe_system_exit(_error):
14
+ if isinstance(_error.code, int):
15
+ _status = int.__index__(_error.code)
16
+ _long_bound = 1 << (8 * struct.calcsize('@l') - 1)
17
+ status = (_status & 255) if -_long_bound <= _status < _long_bound else 255
18
+ else:
19
+ status = 0 if _error.code is None else 1
20
+ if _error.code is not None and not isinstance(_error.code, int):
21
+ print(_error.code, file=sys.stderr)
22
+ return status
23
+
24
+ def _safe_launch():
25
+ args = list(_safe_args)
26
+ unbuffered = False
27
+ ignore_env = bool(sys.flags.ignore_environment)
28
+ safe_path = bool(sys.flags.safe_path)
29
+ native_warning_options = list(sys.warnoptions)
30
+ warning_options = []
31
+ version_count = 0
32
+ options_terminated = False
33
+ while args and args[0].startswith('-') and args[0] != '-':
34
+ option = args.pop(0)
35
+ if option == '--':
36
+ options_terminated = True
37
+ break
38
+ if option in ('--help', '-h', '-?'):
39
+ print('usage: python [-uBEPOsSIbdvqR] [-W filter] [-X option] [-c code | -m module | file | -] [args ...]')
40
+ print('Dedicated Pyodide interpreter; stdin is noninteractive.')
41
+ print('-u: unbuffered binary output; -B: disable bytecode writes; -E: ignore PYTHON* settings')
42
+ print('-P: omit automatic unsafe sys.path entry; -W: Python warning filter')
43
+ print('-O/-OO, -S/-s/-I, -b/-bb, -d/-v/-q/-R: CPython startup flags')
44
+ print('-X: utf8, dev, warn_default_encoding, int_max_str_digits; interactive flags are unsupported.')
45
+ return
46
+ if option == '--version':
47
+ version_count += 1
48
+ continue
49
+ if option.startswith('--'):
50
+ raise _SafeOptionError('unsupported option ' + option)
51
+ index = 1
52
+ while index < len(option):
53
+ flag = option[index]
54
+ if flag in ('h', '?'):
55
+ args = ['--help']
56
+ break
57
+ if flag == 'V':
58
+ version_count += 1
59
+ index += 1
60
+ continue
61
+ if flag in ('c', 'm', 'W', 'X'):
62
+ operand = option[index + 1:] if index + 1 < len(option) else args.pop(0) if args else None
63
+ if operand is None:
64
+ raise _SafeOptionError('argument expected for -' + flag)
65
+ if flag in ('W', 'X'):
66
+ if flag == 'W': warning_options.append(operand)
67
+ break
68
+ args = ['-' + flag, operand] + args
69
+ break
70
+ elif flag in ('O', 'S', 's', 'I', 'b', 'd', 'v', 'q', 'R'):
71
+ pass # Applied by CPython startup configuration before bootstrap.
72
+ elif flag == 'u':
73
+ unbuffered = True
74
+ elif flag == 'B':
75
+ sys.dont_write_bytecode = True
76
+ elif flag == 'E':
77
+ ignore_env = True
78
+ elif flag == 'P':
79
+ safe_path = True
80
+ else:
81
+ raise _SafeOptionError('unsupported option -' + flag)
82
+ index += 1
83
+ if args and args[0] in ('-c', '-m'):
84
+ break
85
+ if version_count:
86
+ print('Python ' + (sys.version if version_count > 1 else sys.version.split()[0]))
87
+ return
88
+ if not ignore_env:
89
+ unbuffered = unbuffered or bool(os.environ.get('PYTHONUNBUFFERED'))
90
+ sys.dont_write_bytecode = sys.dont_write_bytecode or bool(os.environ.get('PYTHONDONTWRITEBYTECODE'))
91
+ safe_path = safe_path or bool(os.environ.get('PYTHONSAFEPATH'))
92
+ path = os.environ.get('PYTHONPATH')
93
+ if path:
94
+ sys.path[0:0] = [os.path.abspath(entry) for entry in path.split(os.pathsep)]
95
+ if os.environ.get('PYTHONWARNINGS'):
96
+ warning_options[0:0] = os.environ['PYTHONWARNINGS'].split(',')
97
+ encoding = os.environ.get('PYTHONIOENCODING')
98
+ if encoding:
99
+ name, separator, errors = encoding.partition(':')
100
+ for stream in (sys.stdin, sys.stdout):
101
+ stream.reconfigure(encoding=name or None, errors=(errors or 'strict'))
102
+ sys.stderr.reconfigure(encoding=name or None, errors='backslashreplace')
103
+ # CPython's -b/-bb filter follows environment and command-line -W filters.
104
+ byte_warning = ('error' if sys.flags.bytes_warning > 1 else 'default') + '::BytesWarning'
105
+ native_before = [value for value in native_warning_options if not (sys.flags.bytes_warning and value == byte_warning)]
106
+ warning_options = native_before + warning_options + ([byte_warning] if sys.flags.bytes_warning else [])
107
+ warnings._processoptions(warning_options)
108
+ sys.warnoptions[:] = warning_options
109
+ if unbuffered:
110
+ for name in ('stdout', 'stderr'):
111
+ stream = getattr(sys, name)
112
+ stream.flush()
113
+ encoding, errors = stream.encoding, stream.errors
114
+ binary = stream.detach()
115
+ raw = binary.detach() if hasattr(binary, 'detach') else binary
116
+ replacement = io.TextIOWrapper(raw, encoding=encoding, errors=errors, write_through=True)
117
+ setattr(sys, name, replacement)
118
+ setattr(sys, '__' + name + '__', replacement)
119
+ main = types.ModuleType('__main__')
120
+ main.__dict__.update(__package__=None, __spec__=None, __loader__=None, __builtins__=__builtins__)
121
+ sys.modules['__main__'] = main
122
+ if not options_terminated and args and args[0] == '-c':
123
+ sys.argv = ['-c'] + args[2:]
124
+ if not safe_path: sys.path.insert(0, '')
125
+ source = textwrap.dedent(args[1])
126
+ code = compile(source, '<string>', 'exec')
127
+ # CPython 3.14 retains -c source for both top-level and nested tracebacks.
128
+ linecache._register_code(code, source, '<string>')
129
+ exec(code, main.__dict__)
130
+ elif not options_terminated and args and args[0] == '-m':
131
+ sys.argv = args[1:]
132
+ if not safe_path: sys.path.insert(0, os.getcwd())
133
+ runpy._run_module_as_main(args[1], alter_argv=True)
134
+ elif not args or args[0] == '-':
135
+ sys.argv = (['-'] + args[1:]) if args else ['']
136
+ if not safe_path: sys.path.insert(0, '')
137
+ main.__file__ = '<stdin>'
138
+ exec(compile(sys.stdin.buffer.read(), '<stdin>', 'exec'), main.__dict__)
139
+ else:
140
+ sys.argv = args
141
+ # CPython makes __file__ absolute without collapsing ./ or ../ components.
142
+ path = args[0] if os.path.isabs(args[0]) else os.path.join(os.getcwd(), args[0])
143
+ importer = __import__('pkgutil').get_importer(path)
144
+ if importer is not None:
145
+ sys.path.insert(0, path)
146
+ runpy._run_module_as_main('__main__', alter_argv=False)
147
+ else:
148
+ if not safe_path: sys.path.insert(0, os.path.dirname(os.path.realpath(path)))
149
+ try:
150
+ with open(path, 'rb') as source:
151
+ code = source.read()
152
+ except OSError as error:
153
+ print("python: can't open file " + repr(path) + ': [Errno ' + str(error.errno) + '] ' + error.strerror, file=sys.stderr)
154
+ return 2
155
+ main.__file__ = path
156
+ main.__loader__ = __import__('importlib.machinery', fromlist=['SourceFileLoader']).SourceFileLoader('__main__', path)
157
+ exec(compile(code, path, 'exec'), main.__dict__)
158
+ return 0
159
+
160
+ try:
161
+ _safe_exit = _safe_launch() or 0
162
+ except SystemExit as _error:
163
+ _safe_exit = _safe_system_exit(_error)
164
+ except _SafeOptionError as _error:
165
+ print('python: ' + str(_error), file=sys.stderr)
166
+ _safe_exit = 2
167
+ except BaseException as _error:
168
+ # Hide bridge frames while preserving actual Python frames and chained errors.
169
+ _trace = _error.__traceback__
170
+ while _trace is not None and _trace.tb_frame.f_code.co_filename == '<exec>':
171
+ _trace = _trace.tb_next
172
+ _error.__traceback__ = _trace
173
+ sys.last_exc = _error
174
+ _safe_exit = 130 if isinstance(_error, KeyboardInterrupt) else 1
175
+ try:
176
+ sys.excepthook(type(_error), _error, _trace)
177
+ except SystemExit as _hook_error:
178
+ _safe_exit = _safe_system_exit(_hook_error)
179
+ except BaseException as _hook_error:
180
+ print('Error in sys.excepthook:', file=sys.stderr)
181
+ traceback.print_exception(type(_hook_error), _hook_error, _hook_error.__traceback__.tb_next)
182
+ print('\\nOriginal exception was:', file=sys.stderr)
183
+ sys.__excepthook__(type(_error), _error, _trace)
184
+ finally:
185
+ for _stream in (sys.stdout, sys.stderr):
186
+ if _stream is not None and not getattr(_stream, 'closed', False):
187
+ try:
188
+ _stream.flush()
189
+ except BaseException:
190
+ _safe_exit = 120
191
+ _safe_exit
192
+ `;
193
+ //# sourceMappingURL=execution.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execution.js","sourceRoot":"","sources":["../../../src/commands/python/execution.ts"],"names":[],"mappings":"AAAA,kFAAkF;AAClF,MAAM,CAAC,MAAM,eAAe,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8L9B,CAAC"}
@@ -0,0 +1,21 @@
1
+ import {
2
+ createPythonCommands,
3
+ createPythonPackageEnvironment,
4
+ pythonCommands,
5
+ pythonDocumentPackages
6
+ } from "../../chunks/chunk-GPV7ZFYS.js";
7
+ import "../../chunks/chunk-2E4KBFO6.js";
8
+ import "../../chunks/chunk-JZDO5MC3.js";
9
+ import "../../chunks/chunk-CDBQXRWL.js";
10
+ import "../../chunks/chunk-THXJ6CLF.js";
11
+ import "../../chunks/chunk-CHHAB5SS.js";
12
+ import "../../chunks/chunk-JLBIUYT3.js";
13
+ import "../../chunks/chunk-WPIOO4NX.js";
14
+ import "../../chunks/chunk-O2EVBRKF.js";
15
+ export {
16
+ createPythonCommands,
17
+ createPythonPackageEnvironment,
18
+ pythonCommands,
19
+ pythonDocumentPackages
20
+ };
21
+ //# sourceMappingURL=index.browser.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "sourcesContent": [],
5
+ "mappings": "",
6
+ "names": []
7
+ }
@@ -0,0 +1,49 @@
1
+ import type { CommandDefinition, VirtualShellPlugin } from '../../contracts/index.js';
2
+ import { type PythonPackageOptions, type PythonPackageStart } from './provisioning.js';
3
+ /** A dedicated interpreter worker. The service event loop must never block. */
4
+ export interface PythonWorkerEndpoint {
5
+ postMessage(value: unknown): void;
6
+ subscribe(listener: (value: unknown) => void, onError: (error: unknown) => void): () => void;
7
+ terminate(): void | Promise<void>;
8
+ }
9
+ export interface PythonInitializationProgress {
10
+ readonly phase: 'initializing' | 'ready' | 'finished';
11
+ readonly command: string;
12
+ }
13
+ export interface PythonCommandsOptions {
14
+ readonly createWorker: () => PythonWorkerEndpoint;
15
+ /** Explicit distribution requirements; no import scanning or implicit package downloads. */
16
+ readonly packages?: readonly string[];
17
+ /** Requirements files in the canonical filesystem. */
18
+ readonly requirements?: readonly string[];
19
+ readonly packageProfile?: 'documents';
20
+ readonly provisioning?: PythonPackageOptions;
21
+ /** Host UI lifecycle; never written to guest stdout/stderr. */
22
+ readonly onProgress?: (event: PythonInitializationProgress) => void;
23
+ readonly runtimeMount?: string;
24
+ readonly maxTransferBytes?: number;
25
+ readonly maxOpenFiles?: number;
26
+ /** Fail immediately at capacity; queued pipeline stages can deadlock. Shared by both aliases. */
27
+ readonly maxConcurrentWorkers?: number;
28
+ /** Largest upstream stdin fragment retained by the bridge, independent of transfer size. */
29
+ readonly maxInputChunkBytes?: number;
30
+ readonly replace?: boolean;
31
+ }
32
+ export interface PythonWorkerStart {
33
+ readonly type: 'start';
34
+ readonly packages?: PythonPackageStart;
35
+ readonly installOnly?: boolean;
36
+ readonly shared: SharedArrayBuffer;
37
+ readonly invocation: {
38
+ readonly args: readonly string[];
39
+ readonly cwd: string;
40
+ readonly env: Readonly<Record<string, string>>;
41
+ };
42
+ readonly runtimeMount: string;
43
+ readonly maxTransferBytes: number;
44
+ }
45
+ export declare function createPythonCommands(options: PythonCommandsOptions): readonly CommandDefinition[];
46
+ export declare function pythonCommands(options: PythonCommandsOptions): VirtualShellPlugin;
47
+ export { createPythonPackageEnvironment, pythonDocumentPackages } from './provisioning.js';
48
+ export type { PythonPackageOptions, PythonPackageCache, PythonPackageProgress, PythonPackageStart, PythonPackageContext } from './provisioning.js';
49
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/python/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAkB,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAMtG,OAAO,EAAkC,KAAK,oBAAoB,EAAE,KAAK,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAOvH,+EAA+E;AAC/E,MAAM,WAAW,oBAAoB;IACnC,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC;IAClC,SAAS,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,GAAG,MAAM,IAAI,CAAC;IAC7F,SAAS,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACnC;AACD,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,GAAG,UAAU,CAAC;IACtD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AACD,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,YAAY,EAAE,MAAM,oBAAoB,CAAC;IAClD,4FAA4F;IAC5F,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,sDAAsD;IACtD,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1C,QAAQ,CAAC,cAAc,CAAC,EAAE,WAAW,CAAC;IACtC,QAAQ,CAAC,YAAY,CAAC,EAAE,oBAAoB,CAAC;IAC7C,+DAA+D;IAC/D,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,4BAA4B,KAAK,IAAI,CAAC;IACpE,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,iGAAiG;IACjG,QAAQ,CAAC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IACvC,4FAA4F;IAC5F,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;CAC5B;AACD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,QAAQ,CAAC,EAAE,kBAAkB,CAAC;IACvC,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC;IACnC,QAAQ,CAAC,UAAU,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;QAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;KAAE,CAAC;IAChI,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;CACnC;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,qBAAqB,GAAG,SAAS,iBAAiB,EAAE,CAgOjG;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,qBAAqB,GAAG,kBAAkB,CAMjF;AAED,OAAO,EAAE,8BAA8B,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAC3F,YAAY,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC"}