@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,179 @@
1
+ /** Pinned installer ABI; all package transport is serviced by the host, before user execution. */
2
+ export async function installPythonPackages(supplied, start, request, maxTransferBytes) {
3
+ if (start.requirements.length === 0)
4
+ return;
5
+ const runtime = supplied;
6
+ if (runtime.version !== '314.0.6' || !runtime._api?.packageManager || !runtime._api.lockfile_packages || typeof runtime.loadPackage !== 'function' || typeof runtime.runPythonAsync !== 'function')
7
+ throw new Error('Python package installer ABI requires Pyodide 314.0.6');
8
+ const fetch = (url, expected) => {
9
+ const opened = request('package-open', start.session, url, expected);
10
+ try {
11
+ const bytes = new Uint8Array(opened.size);
12
+ for (let offset = 0; offset < bytes.length;) {
13
+ const chunk = request('package-read', start.session, opened.key, offset, Math.min(maxTransferBytes, 65536, bytes.length - offset));
14
+ if (!Array.isArray(chunk) || chunk.length === 0 || offset + chunk.length > bytes.length)
15
+ throw new Error('Invalid Python package chunk');
16
+ bytes.set(chunk, offset);
17
+ offset += chunk.length;
18
+ }
19
+ return { bytes, headers: opened.headers };
20
+ }
21
+ finally {
22
+ request('package-close', start.session, opened.key);
23
+ }
24
+ };
25
+ // The pinned loader still owns dependency ordering, wheel extraction and dynamic linking.
26
+ // Replacing only its download operation prevents implicit Node/CDN network fallbacks.
27
+ runtime._api.packageManager.downloadPackage = async (metadata) => {
28
+ if (metadata.channel === runtime._api.packageManager.defaultChannel) {
29
+ const pkg = runtime._api.lockfile_packages[metadata.normalizedName];
30
+ if (!pkg)
31
+ throw new Error(`Missing matching Pyodide package: ${metadata.normalizedName}`);
32
+ return fetch(new URL(pkg.file_name, 'https://cdn.jsdelivr.net/pyodide/v314.0.6/full/').href, pkg.sha256).bytes;
33
+ }
34
+ return fetch(metadata.channel).bytes;
35
+ };
36
+ const loadPackages = async (names) => {
37
+ const errors = [];
38
+ await runtime.loadPackage(names, { messageCallback() { }, errorCallback(message) { errors.push(message); } });
39
+ if (errors.length)
40
+ throw new Error(errors.join('\n'));
41
+ };
42
+ const installedGlobals = [];
43
+ try {
44
+ await loadPackages(['micropip']);
45
+ runtime.globals.set('_safe_package_native', loadPackages);
46
+ installedGlobals.push('_safe_package_native');
47
+ runtime.globals.set('_safe_package_bytes', (url, hash) => fetch(url, hash).bytes);
48
+ installedGlobals.push('_safe_package_bytes');
49
+ runtime.globals.set('_safe_package_metadata', (url) => {
50
+ const result = fetch(url);
51
+ return JSON.stringify({ text: new TextDecoder().decode(result.bytes), headers: Object.fromEntries(result.headers.map(([name, value]) => [name.toLowerCase(), value])) });
52
+ });
53
+ installedGlobals.push('_safe_package_metadata');
54
+ runtime.globals.set('_safe_package_requirements_json', JSON.stringify(start.requirements));
55
+ installedGlobals.push('_safe_package_requirements_json');
56
+ await runtime.runPythonAsync(`
57
+ import json as _safe_json
58
+ import micropip as _safe_micropip
59
+ from micropip._compat import compatibility_layer as _safe_compat
60
+ from micropip.package_manager import PackageManager as _SafePackageManager
61
+ from micropip.wheelinfo import WheelInfo as _SafeWheelInfo
62
+ from micropip._utils import check_compatible as _safe_check_compatible
63
+ from micropip._vendored.packaging.src.packaging.requirements import Requirement as _SafeRequirement, InvalidRequirement as _SafeInvalidRequirement
64
+ from micropip._vendored.packaging.src.packaging.utils import canonicalize_name as _safe_name
65
+
66
+ class _SafePackageCompatibility(_safe_compat):
67
+ @staticmethod
68
+ async def loadPackage(names):
69
+ return await _safe_package_native(names)
70
+ @staticmethod
71
+ async def fetch_bytes(url, kwargs):
72
+ return _safe_package_bytes(url).to_bytes()
73
+ @staticmethod
74
+ async def fetch_string_and_headers(url, kwargs):
75
+ value = _safe_json.loads(_safe_package_metadata(url))
76
+ return value['text'], value['headers']
77
+
78
+ # Require index/URL digests before publishing wheel bytes to the host cache.
79
+ # Local wheels are host-trusted inputs and receive a content digest on first read.
80
+ async def _safe_wheel_fetch(self, url, kwargs, compat):
81
+ expected = self.sha256 if url == self.url else None
82
+ if url == self.metadata_url and isinstance(self.core_metadata, dict):
83
+ expected = self.core_metadata.get('sha256')
84
+ return _safe_package_bytes(url, expected).to_bytes()
85
+ _SafeWheelInfo._fetch_bytes = _safe_wheel_fetch
86
+ _safe_manager = _SafePackageManager(_SafePackageCompatibility)
87
+ _safe_requirements = _safe_json.loads(_safe_package_requirements_json)
88
+ # A persisted base wheel may be visited before a newly requested extra. Micropip
89
+ # skips already locked names, so every occurrence must carry the requested extras.
90
+ _safe_roots = []
91
+ _safe_extras = {}
92
+ for _safe_source in _safe_requirements:
93
+ try:
94
+ _safe_root = _SafeRequirement(_safe_source)
95
+ if _safe_root.name.endswith('.whl'):
96
+ raise _SafeInvalidRequirement(_safe_source)
97
+ except _SafeInvalidRequirement:
98
+ _safe_wheel = _SafeWheelInfo.from_url(_safe_source)
99
+ _safe_root = _SafeRequirement(_safe_wheel.name + ' @ ' + _safe_source)
100
+ _safe_roots.append(_safe_root)
101
+ if not _safe_root.marker or _safe_root.marker.evaluate({'extra': ''}):
102
+ # Named requirements may be skipped when already locked. Validate direct
103
+ # wheels even then, rather than letting an incompatible URL report success.
104
+ if _safe_root.url:
105
+ _safe_direct_wheel = _SafeWheelInfo.from_url(_safe_root.url)
106
+ _safe_check_compatible(_safe_direct_wheel.filename)
107
+ # Validate the actual archive and host-checked digest even if micropip's
108
+ # satisfied-name fast path will skip installing this explicit operand.
109
+ await _safe_direct_wheel.download({}, _SafePackageCompatibility)
110
+ _safe_extras.setdefault(_safe_name(_safe_root.name), set()).update(_safe_root.extras)
111
+ for _safe_root in _safe_roots:
112
+ _safe_root.extras.update(_safe_extras.get(_safe_name(_safe_root.name), set()))
113
+ await _safe_manager.install([str(root) for root in _safe_roots], deps=True)
114
+ # Resolve selected extras from distribution metadata, including extras added to
115
+ # an already satisfied transitive dependency. Micropip skips those names early.
116
+ # Keep its installer and conflict policy; do not infer dependencies from imports.
117
+ import importlib.metadata as _safe_metadata
118
+ _safe_previous_pending = None
119
+ while True:
120
+ _safe_distributions = [d for d in _safe_metadata.distributions() if d.metadata['Name']]
121
+ _safe_versions = {_safe_name(d.metadata['Name']): d.version for d in _safe_distributions}
122
+ while True:
123
+ _safe_changed = False
124
+ _safe_dependencies = []
125
+ for _safe_dist in _safe_distributions:
126
+ _safe_contexts = {''} | _safe_extras.get(_safe_name(_safe_dist.metadata['Name']), set())
127
+ for _safe_dep in _safe_dist.requires or []:
128
+ _safe_requirement = _SafeRequirement(_safe_dep)
129
+ if _safe_requirement.marker and not any(_safe_requirement.marker.evaluate({'extra': extra}) for extra in _safe_contexts):
130
+ continue
131
+ # The marker belongs to the requesting distribution's extra context, already
132
+ # evaluated above; a separate installer transaction must not reinterpret it.
133
+ _safe_requirement.marker = None
134
+ _safe_dependencies.append(_safe_requirement)
135
+ _safe_selected = _safe_extras.setdefault(_safe_name(_safe_requirement.name), set())
136
+ if not _safe_requirement.extras.issubset(_safe_selected):
137
+ _safe_selected.update(_safe_requirement.extras)
138
+ _safe_changed = True
139
+ if not _safe_changed:
140
+ break
141
+ _safe_pending = set()
142
+ for _safe_requirement in _safe_dependencies:
143
+ _safe_version = _safe_versions.get(_safe_name(_safe_requirement.name))
144
+ if _safe_version is None:
145
+ _safe_pending.add(str(_safe_requirement))
146
+ elif not _safe_requirement.specifier.contains(_safe_version, prereleases=True):
147
+ raise ValueError('Python package dependency conflict: ' + str(_safe_requirement))
148
+ if not _safe_pending:
149
+ break
150
+ if _safe_pending == _safe_previous_pending:
151
+ raise ValueError('Python package dependencies remain missing: ' + ', '.join(sorted(_safe_pending)))
152
+ _safe_previous_pending = _safe_pending
153
+ await _safe_manager.install(sorted(_safe_pending), deps=True)
154
+ # Explicit roots also constrain the result: direct URLs can bypass micropip's
155
+ # already-installed version check, including when another root pins that name.
156
+ for _safe_root in _safe_roots:
157
+ if _safe_root.marker and not _safe_root.marker.evaluate({'extra': ''}):
158
+ continue
159
+ _safe_version = _safe_versions.get(_safe_name(_safe_root.name))
160
+ if _safe_version is None or not _safe_root.specifier.contains(_safe_version, prereleases=True):
161
+ raise ValueError('Python package version conflict: ' + str(_safe_root))
162
+ if _safe_root.url:
163
+ _safe_wheel = _SafeWheelInfo.from_url(_safe_root.url)
164
+ _safe_wheel_pin = _SafeRequirement(_safe_wheel.name + '==' + str(_safe_wheel.version))
165
+ if _safe_name(_safe_wheel.name) != _safe_name(_safe_root.name) or not _safe_wheel_pin.specifier.contains(_safe_version, prereleases=True):
166
+ raise ValueError('Python package wheel version conflict: ' + str(_safe_root))
167
+ _safe_installed_json = _safe_json.dumps([name + '==' + version for name, version in sorted(_safe_versions.items())])
168
+ `);
169
+ const pinned = JSON.parse(runtime.runPython('_safe_installed_json'));
170
+ request('package-commit', start.session, pinned);
171
+ }
172
+ finally {
173
+ runtime._api.packageManager.downloadPackage = async () => { throw new Error('Python package transport is only available during installation'); };
174
+ // These bridge callbacks are not an application Python networking capability.
175
+ for (const name of installedGlobals)
176
+ runtime.globals.delete(name);
177
+ }
178
+ }
179
+ //# sourceMappingURL=provisioning-runtime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provisioning-runtime.js","sourceRoot":"","sources":["../../../src/commands/python/provisioning-runtime.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ import type { FileSystem } from '../../contracts/filesystem.js';
2
+ import type { HttpTransport, NetworkAuthorizer } from '../network/types.js';
3
+ export interface PythonPackageCache {
4
+ get(key: string): Promise<Uint8Array | undefined>;
5
+ set(key: string, bytes: Uint8Array): Promise<void>;
6
+ }
7
+ export interface PythonPackageProgress {
8
+ readonly phase: 'download' | 'cached' | 'installed';
9
+ readonly url?: string;
10
+ readonly bytes?: number;
11
+ readonly totalBytes?: number;
12
+ }
13
+ export interface PythonPackageOptions {
14
+ readonly requirements?: readonly string[];
15
+ readonly requirementFiles?: readonly string[];
16
+ readonly profile?: 'documents';
17
+ readonly offline?: boolean;
18
+ readonly transport?: HttpTransport;
19
+ readonly authorize?: NetworkAuthorizer;
20
+ readonly cache?: PythonPackageCache;
21
+ /** Canonical filesystem directory, scoped to this package environment. */
22
+ readonly cacheDirectory?: string;
23
+ readonly maxDownloadBytes?: number;
24
+ /** Byte budget for the built-in memory cache; external cache retention belongs to its owner. */
25
+ readonly maxCacheBytes?: number;
26
+ readonly onProgress?: (event: PythonPackageProgress) => void;
27
+ }
28
+ export interface PythonPackageStart {
29
+ readonly session: string;
30
+ readonly requirements: readonly string[];
31
+ readonly offline: boolean;
32
+ }
33
+ export interface PythonPackageContext {
34
+ readonly fs: FileSystem;
35
+ readonly cwd: string;
36
+ readonly signal: AbortSignal;
37
+ }
38
+ export declare const pythonDocumentPackages: readonly string[];
39
+ /** Trusted host cache; content is rehashed on every read. No runtime or network work at construction. */
40
+ export declare function createPythonPackageEnvironment(options?: PythonPackageOptions): {
41
+ prepare: (context: PythonPackageContext & {
42
+ requirements?: readonly string[];
43
+ requirementFiles?: readonly string[];
44
+ offline?: boolean;
45
+ }) => Promise<PythonPackageStart>;
46
+ dispatch: (op: string, args: unknown[], _context: PythonPackageContext) => Promise<unknown>;
47
+ finish(start: PythonPackageStart): void;
48
+ };
49
+ //# sourceMappingURL=provisioning.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provisioning.d.ts","sourceRoot":"","sources":["../../../src/commands/python/provisioning.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAEhE,OAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAE5E,MAAM,WAAW,kBAAkB;IAClC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC,CAAC;IAClD,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACnD;AACD,MAAM,WAAW,qBAAqB;IACrC,QAAQ,CAAC,KAAK,EAAE,UAAU,GAAG,QAAQ,GAAG,WAAW,CAAC;IACpD,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC7B;AACD,MAAM,WAAW,oBAAoB;IACpC,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1C,QAAQ,CAAC,gBAAgB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC9C,QAAQ,CAAC,OAAO,CAAC,EAAE,WAAW,CAAC;IAC/B,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,SAAS,CAAC,EAAE,aAAa,CAAC;IACnC,QAAQ,CAAC,SAAS,CAAC,EAAE,iBAAiB,CAAC;IACvC,QAAQ,CAAC,KAAK,CAAC,EAAE,kBAAkB,CAAC;IACpC,0EAA0E;IAC1E,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,gGAAgG;IAChG,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,qBAAqB,KAAK,IAAI,CAAC;CAC7D;AACD,MAAM,WAAW,kBAAkB;IAAG,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;CAAE;AACrI,MAAM,WAAW,oBAAoB;IAAG,QAAQ,CAAC,EAAE,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAA;CAAE;AACrH,eAAO,MAAM,sBAAsB,EAAE,SAAS,MAAM,EAGlD,CAAC;AA6BH,yGAAyG;AACzG,wBAAgB,8BAA8B,CAAC,OAAO,GAAE,oBAAyB;uBA2BhD,oBAAoB,GAAG;QAAC,YAAY,CAAC,EAAC,SAAS,MAAM,EAAE,CAAC;QAAA,gBAAgB,CAAC,EAAC,SAAS,MAAM,EAAE,CAAC;QAAA,OAAO,CAAC,EAAC,OAAO,CAAA;KAAC,KAAG,OAAO,CAAC,kBAAkB,CAAC;mBAmChJ,MAAM,QAAM,OAAO,EAAE,YAAU,oBAAoB,KAAE,OAAO,CAAC,OAAO,CAAC;kBA8G1D,kBAAkB;EACxD"}
@@ -0,0 +1,320 @@
1
+ import { sha256 } from '@noble/hashes/sha2.js';
2
+ import { resolvePath as resolve, dirname } from '../../contracts/path.js';
3
+ export const pythonDocumentPackages = Object.freeze([
4
+ 'lxml==6.0.2', 'pillow==12.2.0', 'python-docx==1.2.0', 'openpyxl==3.1.5', 'XlsxWriter==3.2.9',
5
+ 'pypdf==6.18.1', 'fpdf2==2.8.8', 'fonttools==4.65.0', 'defusedxml==0.7.1', 'et-xmlfile==2.0.0', 'typing-extensions==4.16.0',
6
+ ]);
7
+ const encoder = new TextEncoder();
8
+ const decoder = new TextDecoder();
9
+ const runtimeKey = 'pyodide-314.0.6-cp314-emscripten-wasm32-v1';
10
+ function digest(value) { return Array.from(sha256(value), byte => byte.toString(16).padStart(2, '0')).join(''); }
11
+ function failure(message) { return Object.assign(new Error(message), { code: 'EPACKAGE' }); }
12
+ function missing(error) { return typeof error === 'object' && error !== null && 'code' in error && error.code === 'ENOENT'; }
13
+ function normalizeRequirement(value, cwd) {
14
+ const requirement = value.trim();
15
+ if (!requirement || requirement.startsWith('-'))
16
+ throw failure(`Unsupported requirement: ${value}`);
17
+ if (requirement.endsWith('.whl') && !requirement.includes('://'))
18
+ return 'file://' + resolve(cwd, requirement).split('/').map(encodeURIComponent).join('/');
19
+ return requirement;
20
+ }
21
+ function checkSession(session) {
22
+ session.signal.throwIfAborted();
23
+ if (session.closed)
24
+ throw failure('Python package session is closed');
25
+ }
26
+ /** Trusted host cache; content is rehashed on every read. No runtime or network work at construction. */
27
+ export function createPythonPackageEnvironment(options = {}) {
28
+ if (options.cache && options.cacheDirectory)
29
+ throw new TypeError('Choose package cache or cacheDirectory, not both');
30
+ if (options.profile !== undefined && options.profile !== 'documents')
31
+ throw new TypeError('Unknown Python package profile');
32
+ const maxBytes = options.maxDownloadBytes ?? 64 * 1024 * 1024;
33
+ if (!Number.isSafeInteger(maxBytes) || maxBytes < 1)
34
+ throw new RangeError('maxDownloadBytes must be a positive integer');
35
+ const maxCacheBytes = options.maxCacheBytes ?? 128 * 1024 * 1024;
36
+ if (!Number.isSafeInteger(maxCacheBytes) || maxCacheBytes < 1)
37
+ throw new RangeError('maxCacheBytes must be a positive integer');
38
+ const memory = new Map();
39
+ let memoryBytes = 0;
40
+ const defaultCache = {
41
+ async get(key) { return memory.get(key)?.slice(); },
42
+ async set(key, value) {
43
+ const manifestKey = runtimeKey + '-environment';
44
+ if (key === manifestKey && value.length > maxCacheBytes)
45
+ throw failure('Python package manifest exceeds maxCacheBytes');
46
+ const previous = memory.get(key);
47
+ if (previous) {
48
+ memoryBytes -= previous.length;
49
+ memory.delete(key);
50
+ }
51
+ if (value.length > maxCacheBytes)
52
+ return;
53
+ while (memory.size && (memoryBytes + value.length > maxCacheBytes || memory.size >= 1024)) {
54
+ const oldest = Array.from(memory.keys()).find(entry => entry !== manifestKey);
55
+ if (oldest === undefined)
56
+ return;
57
+ memoryBytes -= memory.get(oldest).length;
58
+ memory.delete(oldest);
59
+ }
60
+ memory.set(key, value.slice());
61
+ memoryBytes += value.length;
62
+ },
63
+ };
64
+ const sessions = new Map();
65
+ let counter = 0;
66
+ let committing = Promise.resolve();
67
+ async function prepare(context) {
68
+ context.signal.throwIfAborted();
69
+ const directory = options.cacheDirectory === undefined ? undefined : resolve(context.cwd, options.cacheDirectory, runtimeKey);
70
+ const cache = options.cache ?? (directory === undefined ? defaultCache : {
71
+ async get(key) { try {
72
+ return await context.fs.readFile(resolve(directory, key), { signal: context.signal, maxBytes });
73
+ }
74
+ catch (error) {
75
+ if (missing(error))
76
+ return undefined;
77
+ throw error;
78
+ } },
79
+ async set(key, bytes) { await context.fs.mkdir(directory, { recursive: true, signal: context.signal }); await context.fs.writeFile(resolve(directory, key), bytes, { signal: context.signal }); },
80
+ });
81
+ const stored = await cache.get(runtimeKey + '-environment');
82
+ context.signal.throwIfAborted();
83
+ if (stored && stored.length > maxBytes)
84
+ throw failure('Python package manifest exceeds maxDownloadBytes');
85
+ const manifest = stored === undefined ? '' : decoder.decode(stored);
86
+ let previous;
87
+ try {
88
+ previous = stored === undefined ? [] : JSON.parse(manifest);
89
+ }
90
+ catch {
91
+ throw failure('Invalid Python package environment manifest');
92
+ }
93
+ if (!Array.isArray(previous) || previous.some(value => typeof value !== 'string'))
94
+ throw failure('Invalid Python package environment manifest');
95
+ const requirements = [...previous, ...(options.profile === 'documents' ? pythonDocumentPackages : []), ...(options.requirements ?? []), ...(context.requirements ?? [])].map(value => normalizeRequirement(value, context.cwd));
96
+ for (const file of [...options.requirementFiles ?? [], ...context.requirementFiles ?? []]) {
97
+ const path = resolve(context.cwd, file);
98
+ let source;
99
+ try {
100
+ source = decoder.decode(await context.fs.readFile(path, { signal: context.signal, maxBytes: 1024 * 1024 }));
101
+ }
102
+ catch (error) {
103
+ context.signal.throwIfAborted();
104
+ throw failure(`Cannot read Python requirements ${path}: ${error instanceof Error ? error.message : String(error)}`);
105
+ }
106
+ for (const line of source.split('\n')) {
107
+ const text = line.trim();
108
+ if (!text || text.startsWith('#'))
109
+ continue;
110
+ if (text.endsWith('\\') || text.startsWith('-'))
111
+ throw failure(`Unsupported requirements option or continuation in ${path}: ${text}`);
112
+ // Hash fragments on direct wheel URLs remain part of the requirement.
113
+ const comment = text.indexOf(' #');
114
+ requirements.push(normalizeRequirement(comment < 0 ? text : text.slice(0, comment), dirname(path)));
115
+ }
116
+ }
117
+ context.signal.throwIfAborted();
118
+ const session = String(++counter);
119
+ const unique = [...new Set(requirements)];
120
+ const aborted = () => { const current = sessions.get(session); if (current) {
121
+ current.closed = true;
122
+ current.opened.clear();
123
+ } sessions.delete(session); };
124
+ sessions.set(session, { ...context, cache, offline: context.offline ?? options.offline ?? false, requirements: unique, opened: new Map(), opening: false, closed: false, manifest, aborted });
125
+ context.signal.addEventListener('abort', aborted, { once: true });
126
+ return { session, requirements: unique, offline: context.offline ?? options.offline ?? false };
127
+ }
128
+ async function dispatch(op, args, _context) {
129
+ _context.signal.throwIfAborted();
130
+ const session = sessions.get(String(args[0]));
131
+ if (!session)
132
+ throw failure('Python package session is closed');
133
+ checkSession(session);
134
+ if (op === 'package-commit') {
135
+ const pinned = args[1];
136
+ if (!Array.isArray(pinned) || pinned.some(value => typeof value !== 'string'))
137
+ throw failure('Invalid installed package manifest');
138
+ // Pins supplement the original sources (including canonical local wheels).
139
+ const merged = [...new Set([...session.requirements, ...pinned])];
140
+ const manifestBytes = encoder.encode(JSON.stringify(merged));
141
+ if (manifestBytes.length > maxBytes)
142
+ throw failure('Python package manifest exceeds maxDownloadBytes');
143
+ const commit = committing.then(async () => {
144
+ checkSession(session);
145
+ const current = await session.cache.get(runtimeKey + '-environment');
146
+ checkSession(session);
147
+ if (current && current.length > maxBytes)
148
+ throw failure('Python package manifest exceeds maxDownloadBytes');
149
+ if ((current === undefined ? '' : decoder.decode(current)) !== session.manifest)
150
+ throw failure('Python package environment changed during installation; retry the command');
151
+ await session.cache.set(runtimeKey + '-environment', manifestBytes);
152
+ checkSession(session);
153
+ });
154
+ committing = commit.catch(() => { });
155
+ await commit;
156
+ options.onProgress?.({ phase: 'installed' });
157
+ return null;
158
+ }
159
+ if (op === 'package-read') {
160
+ const bytes = session.opened.get(String(args[1]));
161
+ const offset = args[2];
162
+ const length = args[3];
163
+ if (!bytes || !Number.isSafeInteger(offset) || !Number.isSafeInteger(length) || offset < 0 || length < 1 || length > 65536)
164
+ throw failure('Invalid package chunk request');
165
+ return Array.from(bytes.subarray(offset, offset + length));
166
+ }
167
+ if (op === 'package-close') {
168
+ session.opened.delete(String(args[1]));
169
+ return null;
170
+ }
171
+ if (op !== 'package-open' || typeof args[1] !== 'string')
172
+ throw failure('Invalid package operation');
173
+ if (session.opening)
174
+ throw failure('Package download already in progress');
175
+ session.opening = true;
176
+ session.opened.clear();
177
+ try {
178
+ const url = args[1];
179
+ const expected = args[2];
180
+ if (expected !== undefined && expected !== null && (typeof expected !== 'string' || expected.length !== 64 || Array.from(expected).some(c => !'0123456789abcdef'.includes(c))))
181
+ throw failure('Invalid SHA-256 package integrity value');
182
+ const address = runtimeKey + '-url-' + digest(encoder.encode(url));
183
+ const metadata = await session.cache.get(address);
184
+ checkSession(session);
185
+ let bytes;
186
+ let headers = [];
187
+ if (metadata) {
188
+ if (metadata.length > maxBytes)
189
+ throw failure('Python package cache metadata exceeds maxDownloadBytes');
190
+ let record;
191
+ try {
192
+ record = JSON.parse(decoder.decode(metadata));
193
+ }
194
+ catch {
195
+ throw failure(`Invalid package cache metadata: ${url}`);
196
+ }
197
+ if (typeof record !== 'object' || record === null || typeof record.digest !== 'string' || record.digest.length !== 64 || Array.from(record.digest).some(char => !'0123456789abcdef'.includes(char)) || !Array.isArray(record.headers) || record.headers.some(pair => !Array.isArray(pair) || pair.length !== 2 || pair.some(value => typeof value !== 'string')))
198
+ throw failure(`Invalid package cache metadata: ${url}`);
199
+ bytes = await session.cache.get(runtimeKey + '-sha256-' + record.digest);
200
+ headers = record.headers;
201
+ checkSession(session);
202
+ if (bytes && bytes.length > maxBytes)
203
+ throw failure('Cached package exceeds maxDownloadBytes');
204
+ // Cache implementations may lend mutable buffers; retain the bytes we authenticate.
205
+ if (bytes)
206
+ bytes = Uint8Array.from(bytes);
207
+ if (bytes && digest(bytes) !== record.digest)
208
+ throw failure(`Package cache integrity mismatch: ${url}`);
209
+ if (bytes)
210
+ options.onProgress?.({ phase: 'cached', url, bytes: bytes.length });
211
+ }
212
+ if (!bytes) {
213
+ if (url.startsWith('file:') || url.startsWith('emfs:')) {
214
+ const path = new URL(url);
215
+ if (path.host && path.host !== 'localhost')
216
+ throw failure('Local wheels must use the canonical filesystem');
217
+ try {
218
+ bytes = await session.fs.readFile(decodeURIComponent(path.pathname), { signal: session.signal, maxBytes });
219
+ }
220
+ catch (error) {
221
+ checkSession(session);
222
+ throw failure(`Cannot read canonical Python wheel ${path.pathname}: ${error instanceof Error ? error.message : String(error)}`);
223
+ }
224
+ }
225
+ else {
226
+ if (session.offline)
227
+ throw failure(`Offline package cache miss: ${url}`);
228
+ if (!options.transport || !options.authorize)
229
+ throw failure('Python package download requires configured transport and authorization');
230
+ let current = new URL(url);
231
+ let redirectFrom;
232
+ for (let redirect = 0;; redirect++) {
233
+ if (current.protocol !== 'https:' && current.protocol !== 'http:')
234
+ throw failure(`Unsupported package transport protocol: ${current.protocol}`);
235
+ if (current.username || current.password)
236
+ throw failure('Package URLs with credentials are unsupported');
237
+ let denyPrivate = false;
238
+ const allowed = await options.authorize({ url: current.href, method: 'GET', attempt: 0, signal: session.signal, ...redirectFrom === undefined ? {} : { redirectFrom }, requirePrivateNetworkDeny() { denyPrivate = true; } });
239
+ checkSession(session);
240
+ if (!allowed)
241
+ throw failure(`Python package download authorization denied: ${current.href}`);
242
+ if (denyPrivate && !options.transport.supportsPrivateNetworkDeny)
243
+ throw failure('Package transport cannot enforce private network denial');
244
+ checkSession(session);
245
+ const response = await options.transport({ url: current.href, method: 'GET', headers: [['accept', 'application/vnd.pypi.simple.v1+json, application/json;q=0.9, */*;q=0.1']], signal: session.signal, ...denyPrivate ? { denyPrivateNetworks: true } : {} });
246
+ try {
247
+ checkSession(session);
248
+ if ([301, 302, 303, 307, 308].includes(response.status)) {
249
+ if (redirect >= 5)
250
+ throw failure('Too many package redirects');
251
+ const location = response.headers.find(([key]) => key.toLowerCase() === 'location')?.[1];
252
+ if (!location)
253
+ throw failure('Package redirect has no location');
254
+ redirectFrom = current.href;
255
+ current = new URL(location, current);
256
+ continue;
257
+ }
258
+ if (response.status < 200 || response.status >= 300)
259
+ throw failure(`Package download failed: HTTP ${response.status} ${current.href}`);
260
+ headers = response.headers;
261
+ const encoding = headers.find(([key]) => key.toLowerCase() === 'content-encoding')?.[1].trim().toLowerCase();
262
+ const length = headers.find(([key]) => key.toLowerCase() === 'content-length')?.[1];
263
+ const total = length === undefined || (encoding !== undefined && encoding !== 'identity') ? undefined : Number(length);
264
+ if (total !== undefined && Number.isFinite(total) && total > maxBytes)
265
+ throw failure('Package download exceeds maxDownloadBytes');
266
+ const chunks = [];
267
+ let count = 0;
268
+ for await (const chunk of response.body) {
269
+ checkSession(session);
270
+ if (chunk.length === 0)
271
+ continue;
272
+ count += chunk.length;
273
+ if (count > maxBytes)
274
+ throw failure('Package download exceeds maxDownloadBytes');
275
+ chunks.push(Uint8Array.from(chunk));
276
+ options.onProgress?.({ phase: 'download', url, bytes: count, ...typeof total === 'number' && Number.isSafeInteger(total) ? { totalBytes: total } : {} });
277
+ }
278
+ bytes = new Uint8Array(count);
279
+ let offset = 0;
280
+ for (const chunk of chunks) {
281
+ bytes.set(chunk, offset);
282
+ offset += chunk.length;
283
+ }
284
+ break;
285
+ }
286
+ finally {
287
+ await response.dispose();
288
+ }
289
+ }
290
+ }
291
+ checkSession(session);
292
+ if (expected && digest(bytes) !== expected)
293
+ throw failure(`Package integrity mismatch: ${url}`);
294
+ const hash = digest(bytes);
295
+ const metadataBytes = encoder.encode(JSON.stringify({ digest: hash, headers }));
296
+ if (metadataBytes.length > maxBytes)
297
+ throw failure('Python package cache metadata exceeds maxDownloadBytes');
298
+ await session.cache.set(runtimeKey + '-sha256-' + hash, Uint8Array.from(bytes));
299
+ checkSession(session);
300
+ await session.cache.set(address, metadataBytes);
301
+ checkSession(session);
302
+ }
303
+ checkSession(session);
304
+ if (expected && digest(bytes) !== expected)
305
+ throw failure(`Package integrity mismatch: ${url}`);
306
+ const key = digest(bytes);
307
+ session.opened.set(key, bytes);
308
+ return { key, size: bytes.length, headers };
309
+ }
310
+ finally {
311
+ session.opening = false;
312
+ }
313
+ }
314
+ return { prepare, dispatch, finish(start) { const session = sessions.get(start.session); if (session) {
315
+ session.closed = true;
316
+ session.opened.clear();
317
+ session.signal.removeEventListener('abort', session.aborted);
318
+ } sessions.delete(start.session); } };
319
+ }
320
+ //# sourceMappingURL=provisioning.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provisioning.js","sourceRoot":"","sources":["../../../src/commands/python/provisioning.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ /** Own and admit a finite wire value before allocating its serialized payload. */
2
+ export declare function encodePythonReply(value: unknown, maxBytes: number): Uint8Array;
3
+ //# sourceMappingURL=reply.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reply.d.ts","sourceRoot":"","sources":["../../../src/commands/python/reply.ts"],"names":[],"mappings":"AAEA,kFAAkF;AAClF,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,UAAU,CAgE9E"}