@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.
- package/README.md +2 -2
- package/dist/office-package/compression.d.ts +19 -0
- package/dist/office-package/compression.js +186 -0
- package/dist/office-package/runtime.d.ts +11 -0
- package/dist/office-package/runtime.js +28 -0
- package/dist/safe-bash/chunks/{bz2-B2RXT4EX.js → bz2-ACU4EOVE.js} +2 -2
- package/dist/safe-bash/chunks/chunk-2E4KBFO6.js +239 -0
- package/dist/safe-bash/chunks/chunk-2E4KBFO6.js.map +7 -0
- package/dist/safe-bash/chunks/chunk-3E5M2WEL.js +33 -0
- package/dist/safe-bash/chunks/chunk-3E5M2WEL.js.map +7 -0
- package/dist/safe-bash/chunks/{chunk-WPEMUXV4.js → chunk-3LD67SER.js} +12 -10
- package/dist/safe-bash/chunks/{chunk-WPEMUXV4.js.map → chunk-3LD67SER.js.map} +1 -1
- package/dist/safe-bash/chunks/{chunk-6LSSEOG7.js → chunk-6HNK7Q66.js} +11 -7
- package/dist/safe-bash/chunks/{chunk-6LSSEOG7.js.map → chunk-6HNK7Q66.js.map} +1 -1
- package/dist/safe-bash/chunks/{chunk-AD7UAP5B.js → chunk-7EEWZY5S.js} +10 -8
- package/dist/safe-bash/chunks/{chunk-AD7UAP5B.js.map → chunk-7EEWZY5S.js.map} +1 -1
- package/dist/safe-bash/chunks/{chunk-RNKTWFEM.js → chunk-CDBQXRWL.js} +3 -3
- package/dist/safe-bash/chunks/{chunk-UYX72YHY.js → chunk-CHHAB5SS.js} +10 -74
- package/dist/safe-bash/chunks/{chunk-UYX72YHY.js.map → chunk-CHHAB5SS.js.map} +3 -3
- package/dist/safe-bash/chunks/{chunk-KYNRHYHP.js → chunk-EI4X5ETX.js} +15 -13
- package/dist/safe-bash/chunks/{chunk-KYNRHYHP.js.map → chunk-EI4X5ETX.js.map} +1 -1
- package/dist/safe-bash/chunks/{chunk-KZ7QCYNT.js → chunk-GIBLUW2U.js} +13 -9
- package/dist/safe-bash/chunks/{chunk-KZ7QCYNT.js.map → chunk-GIBLUW2U.js.map} +1 -1
- package/dist/safe-bash/chunks/chunk-GPV7ZFYS.js +1528 -0
- package/dist/safe-bash/chunks/chunk-GPV7ZFYS.js.map +7 -0
- package/dist/safe-bash/chunks/{chunk-N5CYTGBN.js → chunk-H3E67KTZ.js} +13 -9
- package/dist/safe-bash/chunks/{chunk-N5CYTGBN.js.map → chunk-H3E67KTZ.js.map} +1 -1
- package/dist/safe-bash/chunks/{chunk-AFH57PPL.js → chunk-IEKESMO4.js} +3 -3
- package/dist/safe-bash/chunks/{chunk-DPJWEGIX.js → chunk-JLBIUYT3.js} +2 -2
- package/dist/safe-bash/chunks/chunk-JZDO5MC3.js +77 -0
- package/dist/safe-bash/chunks/chunk-JZDO5MC3.js.map +7 -0
- package/dist/safe-bash/chunks/{chunk-GFZKQIPL.js → chunk-LA6BX562.js} +8 -6
- package/dist/safe-bash/chunks/{chunk-GFZKQIPL.js.map → chunk-LA6BX562.js.map} +1 -1
- package/dist/safe-bash/chunks/{chunk-PVJJFCGA.js → chunk-M3GPCYSP.js} +2 -2
- package/dist/safe-bash/chunks/{chunk-FWDMJTQO.js → chunk-NDCZ3UBP.js} +13 -9
- package/dist/safe-bash/chunks/{chunk-FWDMJTQO.js.map → chunk-NDCZ3UBP.js.map} +1 -1
- package/dist/safe-bash/chunks/{chunk-2KL6W6NB.js → chunk-O2EVBRKF.js} +1 -2
- package/dist/safe-bash/chunks/chunk-OFT77XIB.js +389 -0
- package/dist/safe-bash/chunks/chunk-OFT77XIB.js.map +7 -0
- package/dist/safe-bash/chunks/{chunk-PCLOK32J.js → chunk-PC6BEIAF.js} +13 -9
- package/dist/safe-bash/chunks/{chunk-PCLOK32J.js.map → chunk-PC6BEIAF.js.map} +1 -1
- package/dist/safe-bash/chunks/{chunk-3M5F7LD5.js → chunk-QWKP7ZU7.js} +13 -9
- package/dist/safe-bash/chunks/{chunk-3M5F7LD5.js.map → chunk-QWKP7ZU7.js.map} +1 -1
- package/dist/safe-bash/chunks/chunk-THXJ6CLF.js +53 -0
- package/dist/safe-bash/chunks/chunk-THXJ6CLF.js.map +7 -0
- package/dist/safe-bash/chunks/{chunk-HHJSJWUD.js → chunk-V73A742N.js} +57 -15
- package/dist/safe-bash/chunks/chunk-V73A742N.js.map +7 -0
- package/dist/safe-bash/chunks/{chunk-4BYUV5PA.js → chunk-VN3ZGME3.js} +12 -8
- package/dist/safe-bash/chunks/{chunk-4BYUV5PA.js.map → chunk-VN3ZGME3.js.map} +1 -1
- package/dist/safe-bash/chunks/chunk-WECHUK3Y.js +4285 -0
- package/dist/safe-bash/chunks/chunk-WECHUK3Y.js.map +7 -0
- package/dist/safe-bash/chunks/{chunk-X55AMTNM.js → chunk-WIOEUR7D.js} +14 -10
- package/dist/safe-bash/chunks/{chunk-X55AMTNM.js.map → chunk-WIOEUR7D.js.map} +1 -1
- package/dist/safe-bash/chunks/chunk-WPIOO4NX.js +443 -0
- package/dist/safe-bash/chunks/chunk-WPIOO4NX.js.map +7 -0
- package/dist/safe-bash/chunks/{chunk-C7QNJ3D4.js → chunk-WYTI64IU.js} +2 -2
- package/dist/safe-bash/chunks/{xz-AVXFDXW4.js → xz-U4QDTPZL.js} +2 -2
- package/dist/safe-bash/chunks/{zstd-R6RPHJYO.js → zstd-OG5RPYXO.js} +2 -2
- package/dist/safe-bash/commands/archive/zip/crc.d.ts +2 -0
- package/dist/safe-bash/commands/archive/zip/crc.d.ts.map +1 -0
- package/dist/safe-bash/commands/archive/zip/crc.js +7 -0
- package/dist/safe-bash/commands/archive/zip/crc.js.map +1 -0
- package/dist/safe-bash/commands/archive/zip/crypto.d.ts +4 -0
- package/dist/safe-bash/commands/archive/zip/crypto.d.ts.map +1 -0
- package/dist/safe-bash/commands/archive/zip/crypto.js +34 -0
- package/dist/safe-bash/commands/archive/zip/crypto.js.map +1 -0
- package/dist/safe-bash/commands/archive/zip/help.d.ts +3 -0
- package/dist/safe-bash/commands/archive/zip/help.d.ts.map +1 -0
- package/dist/safe-bash/commands/archive/zip/help.js +87 -0
- package/dist/safe-bash/commands/archive/zip/help.js.map +1 -0
- package/dist/safe-bash/commands/archive/zip/move.d.ts +12 -0
- package/dist/safe-bash/commands/archive/zip/move.d.ts.map +1 -0
- package/dist/safe-bash/commands/archive/zip/move.js +60 -0
- package/dist/safe-bash/commands/archive/zip/move.js.map +1 -0
- package/dist/safe-bash/commands/archive/zip/options.js +5 -5
- package/dist/safe-bash/commands/archive/zip/options.js.map +1 -1
- package/dist/safe-bash/commands/archive/zip-format.d.ts +1 -1
- package/dist/safe-bash/commands/archive/zip-format.d.ts.map +1 -1
- package/dist/safe-bash/commands/archive/zip-format.js +14 -17
- package/dist/safe-bash/commands/archive/zip-format.js.map +1 -1
- package/dist/safe-bash/commands/archive/zip.d.ts.map +1 -1
- package/dist/safe-bash/commands/archive/zip.js +45 -15
- package/dist/safe-bash/commands/archive/zip.js.map +1 -1
- package/dist/safe-bash/commands/bytes/compression/bounded-codec.d.ts +2 -0
- package/dist/safe-bash/commands/bytes/compression/bounded-codec.d.ts.map +1 -1
- package/dist/safe-bash/commands/bytes/compression/bounded-codec.js +4 -0
- package/dist/safe-bash/commands/bytes/compression/bounded-codec.js.map +1 -1
- package/dist/safe-bash/commands/bytes/compression/codec.d.ts +4 -24
- package/dist/safe-bash/commands/bytes/compression/codec.d.ts.map +1 -1
- package/dist/safe-bash/commands/bytes/compression/codec.js +12 -168
- package/dist/safe-bash/commands/bytes/compression/codec.js.map +1 -1
- package/dist/safe-bash/commands/cmp.js +1 -1
- package/dist/safe-bash/commands/cmp.js.map +1 -1
- package/dist/safe-bash/commands/csplit/index.browser.js +10 -7
- package/dist/safe-bash/commands/docx/index.browser.js +54 -0
- package/dist/safe-bash/commands/docx/index.browser.js.map +7 -0
- package/dist/safe-bash/commands/docx/index.d.ts +25 -0
- package/dist/safe-bash/commands/docx/index.d.ts.map +1 -0
- package/dist/safe-bash/commands/docx/index.js +42 -0
- package/dist/safe-bash/commands/docx/index.js.map +1 -0
- package/dist/safe-bash/commands/docx/io.d.ts +15 -0
- package/dist/safe-bash/commands/docx/io.d.ts.map +1 -0
- package/dist/safe-bash/commands/docx/io.js +16 -0
- package/dist/safe-bash/commands/docx/io.js.map +1 -0
- package/dist/safe-bash/commands/factor/index.browser.js +7 -5
- package/dist/safe-bash/commands/filesystem.d.ts.map +1 -1
- package/dist/safe-bash/commands/filesystem.js +9 -1
- package/dist/safe-bash/commands/filesystem.js.map +1 -1
- package/dist/safe-bash/commands/getopt/index.browser.js +7 -5
- package/dist/safe-bash/commands/hexdump/index.browser.js +8 -6
- package/dist/safe-bash/commands/iconv/index.browser.js +8 -6
- package/dist/safe-bash/commands/line-endings/index.browser.js +10 -7
- package/dist/safe-bash/commands/llm/index.browser.js +10 -8
- package/dist/safe-bash/commands/llm/providers/index.browser.js +3 -3
- package/dist/safe-bash/commands/network/index.browser.js +11 -8
- package/dist/safe-bash/commands/node/browser.d.ts +2 -0
- package/dist/safe-bash/commands/node/browser.d.ts.map +1 -0
- package/dist/safe-bash/commands/node/browser.js +2 -0
- package/dist/safe-bash/commands/node/browser.js.map +1 -0
- package/dist/safe-bash/commands/node/index.browser.js +18 -0
- package/dist/safe-bash/commands/node/index.browser.js.map +7 -0
- package/dist/safe-bash/commands/node/safejs.d.ts +6 -0
- package/dist/safe-bash/commands/node/safejs.d.ts.map +1 -1
- package/dist/safe-bash/commands/node/safejs.js +25 -1
- package/dist/safe-bash/commands/node/safejs.js.map +1 -1
- package/dist/safe-bash/commands/op/index.browser.js +3 -3
- package/dist/safe-bash/commands/op/index.js +0 -1
- package/dist/safe-bash/commands/op/index.js.map +2 -2
- package/dist/safe-bash/commands/pptx/index.d.ts +29 -0
- package/dist/safe-bash/commands/pptx/index.d.ts.map +1 -0
- package/dist/safe-bash/commands/pptx/index.js +153 -0
- package/dist/safe-bash/commands/pptx/index.js.map +1 -0
- package/dist/safe-bash/commands/pr/index.browser.js +8 -6
- package/dist/safe-bash/commands/predicates.js +1 -1
- package/dist/safe-bash/commands/python/execution.d.ts +3 -0
- package/dist/safe-bash/commands/python/execution.d.ts.map +1 -0
- package/dist/safe-bash/commands/python/execution.js +193 -0
- package/dist/safe-bash/commands/python/execution.js.map +1 -0
- package/dist/safe-bash/commands/python/index.browser.js +21 -0
- package/dist/safe-bash/commands/python/index.browser.js.map +7 -0
- package/dist/safe-bash/commands/python/index.d.ts +49 -0
- package/dist/safe-bash/commands/python/index.d.ts.map +1 -0
- package/dist/safe-bash/commands/python/index.js +317 -0
- package/dist/safe-bash/commands/python/index.js.map +1 -0
- package/dist/safe-bash/commands/python/installation.d.ts +9 -0
- package/dist/safe-bash/commands/python/installation.d.ts.map +1 -0
- package/dist/safe-bash/commands/python/installation.js +80 -0
- package/dist/safe-bash/commands/python/installation.js.map +1 -0
- package/dist/safe-bash/commands/python/invocation.d.ts +10 -0
- package/dist/safe-bash/commands/python/invocation.d.ts.map +1 -0
- package/dist/safe-bash/commands/python/invocation.js +81 -0
- package/dist/safe-bash/commands/python/invocation.js.map +1 -0
- package/dist/safe-bash/commands/python/node.d.ts +12 -0
- package/dist/safe-bash/commands/python/node.d.ts.map +1 -0
- package/dist/safe-bash/commands/python/node.js +33 -0
- package/dist/safe-bash/commands/python/node.js.map +1 -0
- package/dist/safe-bash/commands/python/provisioning-runtime.d.ts +5 -0
- package/dist/safe-bash/commands/python/provisioning-runtime.d.ts.map +1 -0
- package/dist/safe-bash/commands/python/provisioning-runtime.js +179 -0
- package/dist/safe-bash/commands/python/provisioning-runtime.js.map +1 -0
- package/dist/safe-bash/commands/python/provisioning.d.ts +49 -0
- package/dist/safe-bash/commands/python/provisioning.d.ts.map +1 -0
- package/dist/safe-bash/commands/python/provisioning.js +320 -0
- package/dist/safe-bash/commands/python/provisioning.js.map +1 -0
- package/dist/safe-bash/commands/python/reply.d.ts +3 -0
- package/dist/safe-bash/commands/python/reply.d.ts.map +1 -0
- package/dist/safe-bash/commands/python/reply.js +103 -0
- package/dist/safe-bash/commands/python/reply.js.map +1 -0
- package/dist/safe-bash/commands/python/worker.browser.js +736 -0
- package/dist/safe-bash/commands/python/worker.browser.js.map +7 -0
- package/dist/safe-bash/commands/python/worker.d.ts +47 -0
- package/dist/safe-bash/commands/python/worker.d.ts.map +1 -0
- package/dist/safe-bash/commands/python/worker.js +373 -0
- package/dist/safe-bash/commands/python/worker.js.map +1 -0
- package/dist/safe-bash/commands/safejs/index.d.ts +5 -17
- package/dist/safe-bash/commands/safejs/index.d.ts.map +1 -1
- package/dist/safe-bash/commands/safejs/index.js +3 -202
- package/dist/safe-bash/commands/safejs/index.js.map +1 -1
- package/dist/safe-bash/commands/safejs/runtime.d.ts +15 -0
- package/dist/safe-bash/commands/safejs/runtime.d.ts.map +1 -0
- package/dist/safe-bash/commands/safejs/runtime.js +190 -0
- package/dist/safe-bash/commands/safejs/runtime.js.map +1 -0
- package/dist/safe-bash/commands/tsort/index.browser.js +8 -6
- package/dist/safe-bash/commands/xml/index.browser.js +9 -7
- package/dist/safe-bash/commands/yq/index.browser.js +10 -8
- package/dist/safe-bash/commands/yq/index.d.ts.map +1 -1
- package/dist/safe-bash/commands/yq/index.js +32 -4
- package/dist/safe-bash/commands/yq/index.js.map +1 -1
- package/dist/safe-bash/commands/yq/parser.d.ts.map +1 -1
- package/dist/safe-bash/commands/yq/parser.js +21 -5
- package/dist/safe-bash/commands/yq/parser.js.map +1 -1
- package/dist/safe-bash/contracts/command.d.ts +2 -0
- package/dist/safe-bash/contracts/command.d.ts.map +1 -1
- package/dist/safe-bash/contracts/command.js +6 -2
- package/dist/safe-bash/contracts/command.js.map +1 -1
- package/dist/safe-bash/contracts/filesystem-descriptor.d.ts +13 -0
- package/dist/safe-bash/contracts/filesystem-descriptor.d.ts.map +1 -0
- package/dist/safe-bash/contracts/filesystem-descriptor.js +189 -0
- package/dist/safe-bash/contracts/filesystem-descriptor.js.map +1 -0
- package/dist/safe-bash/contracts/filesystem-output-budget.d.ts +15 -0
- package/dist/safe-bash/contracts/filesystem-output-budget.d.ts.map +1 -0
- package/dist/safe-bash/contracts/filesystem-output-budget.js +69 -0
- package/dist/safe-bash/contracts/filesystem-output-budget.js.map +1 -0
- package/dist/safe-bash/contracts/filesystem-output.d.ts +11 -5
- package/dist/safe-bash/contracts/filesystem-output.d.ts.map +1 -1
- package/dist/safe-bash/contracts/filesystem-output.js +229 -20
- package/dist/safe-bash/contracts/filesystem-output.js.map +1 -1
- package/dist/safe-bash/contracts/io.d.ts +29 -0
- package/dist/safe-bash/contracts/io.d.ts.map +1 -1
- package/dist/safe-bash/contracts/io.js +317 -37
- package/dist/safe-bash/contracts/io.js.map +1 -1
- package/dist/safe-bash/core.browser.js +5963 -6522
- package/dist/safe-bash/core.browser.js.map +4 -4
- package/dist/safe-bash/core.d.ts +2 -0
- package/dist/safe-bash/core.d.ts.map +1 -1
- package/dist/safe-bash/core.js +2 -0
- package/dist/safe-bash/core.js.map +1 -1
- package/dist/safe-bash/index.d.ts +1 -0
- package/dist/safe-bash/index.d.ts.map +1 -1
- package/dist/safe-bash/index.js +1 -0
- package/dist/safe-bash/index.js.map +1 -1
- package/dist/safe-bash/opt-in/commands/cmp/compare.js +95 -0
- package/dist/safe-bash/opt-in/commands/cmp/index.d.ts +6 -0
- package/dist/safe-bash/opt-in/commands/cmp/index.js +99 -0
- package/dist/safe-bash/opt-in/commands/cmp/io.js +218 -0
- package/dist/safe-bash/opt-in/commands/cmp/options.d.ts +24 -0
- package/dist/safe-bash/opt-in/commands/cmp/options.js +195 -0
- package/dist/safe-bash/opt-in/commands/dd/conversions.js +152 -0
- package/dist/safe-bash/opt-in/commands/dd/index.d.ts +18 -0
- package/dist/safe-bash/opt-in/commands/dd/index.js +561 -0
- package/dist/safe-bash/opt-in/commands/dd/io.d.ts +31 -0
- package/dist/safe-bash/opt-in/commands/dd/io.js +244 -0
- package/dist/safe-bash/opt-in/commands/dd/options.js +184 -0
- package/dist/safe-bash/opt-in/commands/dd/report.js +69 -0
- package/dist/safe-bash/opt-in/commands/install/arguments.js +224 -0
- package/dist/safe-bash/opt-in/commands/install/index.d.ts +6 -0
- package/dist/safe-bash/opt-in/commands/install/index.js +678 -0
- package/dist/safe-bash/opt-in/commands/install/mode.js +71 -0
- package/dist/safe-bash/opt-in/commands/install/options.d.ts +36 -0
- package/dist/safe-bash/opt-in/commands/install/options.js +27 -0
- package/dist/safe-bash/opt-in/commands/shuf/args.js +179 -0
- package/dist/safe-bash/opt-in/commands/shuf/index.d.ts +6 -0
- package/dist/safe-bash/opt-in/commands/shuf/index.js +20 -0
- package/dist/safe-bash/opt-in/commands/shuf/input.js +93 -0
- package/dist/safe-bash/opt-in/commands/shuf/options.d.ts +9 -0
- package/dist/safe-bash/opt-in/commands/shuf/options.js +8 -0
- package/dist/safe-bash/opt-in/commands/shuf/random.js +114 -0
- package/dist/safe-bash/opt-in/commands/shuf/shuf.d.ts +3 -0
- package/dist/safe-bash/opt-in/commands/shuf/shuf.js +230 -0
- package/dist/safe-bash/opt-in/commands/shuf/usage.js +24 -0
- package/dist/safe-bash/opt-in/commands/truncate/arguments.js +186 -0
- package/dist/safe-bash/opt-in/commands/truncate/index.d.ts +9 -0
- package/dist/safe-bash/opt-in/commands/truncate/index.js +244 -0
- package/dist/safe-bash/opt-in/commands/yes/index.d.ts +11 -0
- package/dist/safe-bash/opt-in/commands/yes/index.js +167 -0
- package/dist/safe-bash/opt-in/commands/yq/arguments.js +177 -0
- package/dist/safe-bash/opt-in/commands/yq/evaluate.js +564 -0
- package/dist/safe-bash/opt-in/commands/yq/expression.js +183 -0
- package/dist/safe-bash/opt-in/commands/yq/inplace.js +65 -0
- package/dist/safe-bash/opt-in/commands/yq/mike.d.ts +9 -0
- package/dist/safe-bash/opt-in/commands/yq/mike.js +192 -0
- package/dist/safe-bash/opt-in/commands/yq/native-encoder.js +165 -0
- package/dist/safe-bash/opt-in/commands/yq/native-work.d.ts +44 -0
- package/dist/safe-bash/opt-in/commands/yq/native-work.js +188 -0
- package/dist/safe-bash/opt-in/commands/yq/nodes.js +621 -0
- package/dist/safe-bash/opt-in/entrypoints/arrays.d.ts +1 -0
- package/dist/safe-bash/opt-in/entrypoints/arrays.js +1 -0
- package/dist/safe-bash/opt-in/entrypoints/cmp.d.ts +2 -0
- package/dist/safe-bash/opt-in/entrypoints/cmp.js +1 -0
- package/dist/safe-bash/opt-in/entrypoints/dd.d.ts +2 -0
- package/dist/safe-bash/opt-in/entrypoints/dd.js +1 -0
- package/dist/safe-bash/opt-in/entrypoints/devices.d.ts +2 -0
- package/dist/safe-bash/opt-in/entrypoints/devices.js +1 -0
- package/dist/safe-bash/opt-in/entrypoints/install.d.ts +2 -0
- package/dist/safe-bash/opt-in/entrypoints/install.js +1 -0
- package/dist/safe-bash/opt-in/entrypoints/jobs.d.ts +1 -0
- package/dist/safe-bash/opt-in/entrypoints/jobs.js +1 -0
- package/dist/safe-bash/opt-in/entrypoints/mapfile.d.ts +1 -0
- package/dist/safe-bash/opt-in/entrypoints/mapfile.js +1 -0
- package/dist/safe-bash/opt-in/entrypoints/read.d.ts +2 -0
- package/dist/safe-bash/opt-in/entrypoints/read.js +1 -0
- package/dist/safe-bash/opt-in/entrypoints/shuf.d.ts +2 -0
- package/dist/safe-bash/opt-in/entrypoints/shuf.js +1 -0
- package/dist/safe-bash/opt-in/entrypoints/trap.d.ts +2 -0
- package/dist/safe-bash/opt-in/entrypoints/trap.js +1 -0
- package/dist/safe-bash/opt-in/entrypoints/truncate.d.ts +2 -0
- package/dist/safe-bash/opt-in/entrypoints/truncate.js +1 -0
- package/dist/safe-bash/opt-in/entrypoints/yes.d.ts +2 -0
- package/dist/safe-bash/opt-in/entrypoints/yes.js +1 -0
- package/dist/safe-bash/opt-in/entrypoints/yq.d.ts +3 -0
- package/dist/safe-bash/opt-in/entrypoints/yq.js +1 -0
- package/dist/safe-bash/opt-in/fs/devices/index.d.ts +8 -0
- package/dist/safe-bash/opt-in/fs/devices/index.js +292 -0
- package/dist/safe-bash/opt-in/optional.d.ts +28 -0
- package/dist/safe-bash/opt-in/optional.js +14 -0
- package/dist/safe-bash/opt-in/shell/extensions/arrays/index.d.ts +2 -0
- package/dist/safe-bash/opt-in/shell/extensions/arrays/index.js +4 -0
- package/dist/safe-bash/opt-in/shell/extensions/jobs/index.d.ts +2 -0
- package/dist/safe-bash/opt-in/shell/extensions/jobs/index.js +291 -0
- package/dist/safe-bash/opt-in/shell/extensions/jobs/state.js +374 -0
- package/dist/safe-bash/opt-in/shell/extensions/mapfile/index.d.ts +24 -0
- package/dist/safe-bash/opt-in/shell/extensions/mapfile/index.js +338 -0
- package/dist/safe-bash/opt-in/shell/extensions/read/index.d.ts +5 -0
- package/dist/safe-bash/opt-in/shell/extensions/read/index.js +351 -0
- package/dist/safe-bash/opt-in/shell/extensions/trap/index.d.ts +9 -0
- package/dist/safe-bash/opt-in/shell/extensions/trap/index.js +210 -0
- package/dist/safe-bash/optional-host.d.ts +5 -0
- package/dist/safe-bash/optional-host.d.ts.map +1 -0
- package/dist/safe-bash/optional-host.js +3 -0
- package/dist/safe-bash/optional-host.js.map +1 -0
- package/dist/safe-bash/shell/arrays/bindings.d.ts +15 -5
- package/dist/safe-bash/shell/arrays/bindings.d.ts.map +1 -1
- package/dist/safe-bash/shell/arrays/bindings.js +131 -23
- package/dist/safe-bash/shell/arrays/bindings.js.map +1 -1
- package/dist/safe-bash/shell/arrays/ledger.d.ts +1 -0
- package/dist/safe-bash/shell/arrays/ledger.d.ts.map +1 -1
- package/dist/safe-bash/shell/arrays/ledger.js +19 -0
- package/dist/safe-bash/shell/arrays/ledger.js.map +1 -1
- package/dist/safe-bash/shell/arrays/state.d.ts.map +1 -1
- package/dist/safe-bash/shell/arrays/state.js +3 -1
- package/dist/safe-bash/shell/arrays/state.js.map +1 -1
- package/dist/safe-bash/shell/arrays/syntax.d.ts +4 -1
- package/dist/safe-bash/shell/arrays/syntax.d.ts.map +1 -1
- package/dist/safe-bash/shell/arrays/syntax.js +3 -3
- package/dist/safe-bash/shell/arrays/syntax.js.map +1 -1
- package/dist/safe-bash/shell/conditional.js +1 -1
- package/dist/safe-bash/shell/descriptors.d.ts +31 -0
- package/dist/safe-bash/shell/descriptors.d.ts.map +1 -0
- package/dist/safe-bash/shell/descriptors.js +234 -0
- package/dist/safe-bash/shell/descriptors.js.map +1 -0
- package/dist/safe-bash/shell/diagnostic-name-ranges.d.ts +2 -0
- package/dist/safe-bash/shell/diagnostic-name-ranges.d.ts.map +1 -0
- package/dist/safe-bash/shell/diagnostic-name-ranges.js +717 -0
- package/dist/safe-bash/shell/diagnostic-name-ranges.js.map +1 -0
- package/dist/safe-bash/shell/diagnostic-name.d.ts +3 -0
- package/dist/safe-bash/shell/diagnostic-name.d.ts.map +1 -0
- package/dist/safe-bash/shell/diagnostic-name.js +89 -0
- package/dist/safe-bash/shell/diagnostic-name.js.map +1 -0
- package/dist/safe-bash/shell/display.js +1 -1
- package/dist/safe-bash/shell/display.js.map +1 -1
- package/dist/safe-bash/shell/extensions.d.ts +188 -0
- package/dist/safe-bash/shell/extensions.d.ts.map +1 -0
- package/dist/safe-bash/shell/extensions.js +141 -0
- package/dist/safe-bash/shell/extensions.js.map +1 -0
- package/dist/safe-bash/shell/input.d.ts +66 -14
- package/dist/safe-bash/shell/input.d.ts.map +1 -1
- package/dist/safe-bash/shell/input.js +947 -173
- package/dist/safe-bash/shell/input.js.map +1 -1
- package/dist/safe-bash/shell/parser.d.ts +38 -6
- package/dist/safe-bash/shell/parser.d.ts.map +1 -1
- package/dist/safe-bash/shell/parser.js +339 -52
- package/dist/safe-bash/shell/parser.js.map +1 -1
- package/dist/safe-bash/shell/runtime.d.ts +92 -20
- package/dist/safe-bash/shell/runtime.d.ts.map +1 -1
- package/dist/safe-bash/shell/runtime.js +2547 -689
- package/dist/safe-bash/shell/runtime.js.map +1 -1
- package/dist/safe-bash/shell/shell.d.ts.map +1 -1
- package/dist/safe-bash/shell/shell.js +52 -21
- package/dist/safe-bash/shell/shell.js.map +1 -1
- package/dist/safe-bash/shell/types.d.ts +4 -0
- package/dist/safe-bash/shell/types.d.ts.map +1 -1
- package/dist/safe-bash/shell/types.js.map +1 -1
- package/package.json +99 -5
- package/dist/safe-bash/chunks/chunk-4DBWBEU7.js +0 -194
- package/dist/safe-bash/chunks/chunk-4DBWBEU7.js.map +0 -7
- package/dist/safe-bash/chunks/chunk-CXMIIXJA.js +0 -178
- package/dist/safe-bash/chunks/chunk-CXMIIXJA.js.map +0 -7
- package/dist/safe-bash/chunks/chunk-HHJSJWUD.js.map +0 -7
- /package/dist/safe-bash/chunks/{bz2-B2RXT4EX.js.map → bz2-ACU4EOVE.js.map} +0 -0
- /package/dist/safe-bash/chunks/{chunk-RNKTWFEM.js.map → chunk-CDBQXRWL.js.map} +0 -0
- /package/dist/safe-bash/chunks/{chunk-AFH57PPL.js.map → chunk-IEKESMO4.js.map} +0 -0
- /package/dist/safe-bash/chunks/{chunk-DPJWEGIX.js.map → chunk-JLBIUYT3.js.map} +0 -0
- /package/dist/safe-bash/chunks/{chunk-PVJJFCGA.js.map → chunk-M3GPCYSP.js.map} +0 -0
- /package/dist/safe-bash/chunks/{chunk-2KL6W6NB.js.map → chunk-O2EVBRKF.js.map} +0 -0
- /package/dist/safe-bash/chunks/{chunk-C7QNJ3D4.js.map → chunk-WYTI64IU.js.map} +0 -0
- /package/dist/safe-bash/chunks/{xz-AVXFDXW4.js.map → xz-U4QDTPZL.js.map} +0 -0
- /package/dist/safe-bash/chunks/{zstd-R6RPHJYO.js.map → zstd-OG5RPYXO.js.map} +0 -0
|
@@ -0,0 +1,317 @@
|
|
|
1
|
+
import { PythonFileSystem, PythonStatTranslator } from "@poe-platform/safe-fs/core";
|
|
2
|
+
import { validateExitCode } from '../../contracts/command.js';
|
|
3
|
+
import { openCommandFile } from '../../contracts/filesystem-descriptor.js';
|
|
4
|
+
import { encodePythonReply } from './reply.js';
|
|
5
|
+
import { parsePythonInvocation, PythonInvocationError } from './invocation.js';
|
|
6
|
+
import { parsePythonInstallation, pythonInstallationHelp } from './installation.js';
|
|
7
|
+
import { createPythonPackageEnvironment } from './provisioning.js';
|
|
8
|
+
import { readBytes, writeBytes } from '../../contracts/io.js';
|
|
9
|
+
import { createOutputOperation } from '../../contracts/output.js';
|
|
10
|
+
import { inheritYieldCheckpoint, yieldTurn } from '../../contracts/yield.js';
|
|
11
|
+
class PythonInputChunkError extends RangeError {
|
|
12
|
+
}
|
|
13
|
+
export function createPythonCommands(options) {
|
|
14
|
+
if (typeof options?.createWorker !== 'function')
|
|
15
|
+
throw new TypeError('Python requires an explicit interpreter worker factory');
|
|
16
|
+
const maxTransferBytes = options.maxTransferBytes ?? 65536;
|
|
17
|
+
const maxOpenFiles = options.maxOpenFiles ?? 256;
|
|
18
|
+
const maxConcurrentWorkers = options.maxConcurrentWorkers ?? 4;
|
|
19
|
+
const maxInputChunkBytes = options.maxInputChunkBytes ?? 1048576;
|
|
20
|
+
if (!Number.isSafeInteger(maxConcurrentWorkers) || maxConcurrentWorkers < 1 || maxConcurrentWorkers > 64)
|
|
21
|
+
throw new RangeError('Invalid Python worker concurrency limit');
|
|
22
|
+
if (!Number.isSafeInteger(maxInputChunkBytes) || maxInputChunkBytes < 1 || maxInputChunkBytes > 16777216)
|
|
23
|
+
throw new RangeError('Invalid Python input chunk limit');
|
|
24
|
+
let activeWorkers = 0;
|
|
25
|
+
for (const size of [maxTransferBytes, maxOpenFiles])
|
|
26
|
+
if (!Number.isSafeInteger(size) || size < 1 || size > 1048576)
|
|
27
|
+
throw new RangeError('Invalid Python resource limit');
|
|
28
|
+
const runtimeMount = options.runtimeMount ?? '/.pyodide-runtime';
|
|
29
|
+
if (!runtimeMount.startsWith('/') || runtimeMount === '/' || runtimeMount.slice(1).includes('/') || runtimeMount.includes('\0') || runtimeMount.split('/').some(part => part === '..' || part === '.'))
|
|
30
|
+
throw new TypeError('Python runtime mount must be an absolute top-level canonical path');
|
|
31
|
+
const environment = createPythonPackageEnvironment({
|
|
32
|
+
...options.provisioning,
|
|
33
|
+
requirements: [...(options.provisioning?.requirements ?? []), ...(options.packages ?? [])],
|
|
34
|
+
requirementFiles: [...(options.provisioning?.requirementFiles ?? []), ...(options.requirements ?? [])],
|
|
35
|
+
...(options.packageProfile ? { profile: options.packageProfile } : {}),
|
|
36
|
+
});
|
|
37
|
+
const execute = async (context) => {
|
|
38
|
+
let installation;
|
|
39
|
+
try {
|
|
40
|
+
parsePythonInvocation(context.args, context.env);
|
|
41
|
+
installation = parsePythonInstallation(context.args);
|
|
42
|
+
}
|
|
43
|
+
catch (error) {
|
|
44
|
+
if (!(error instanceof PythonInvocationError))
|
|
45
|
+
throw error;
|
|
46
|
+
await writeBytes(context.stderr, new TextEncoder().encode('python: ' + error.message + '\n'), context.signal);
|
|
47
|
+
return { exitCode: 2 };
|
|
48
|
+
}
|
|
49
|
+
if (installation?.help) {
|
|
50
|
+
await writeBytes(context.stdout, new TextEncoder().encode(pythonInstallationHelp), context.signal);
|
|
51
|
+
return { exitCode: 0 };
|
|
52
|
+
}
|
|
53
|
+
context.signal.throwIfAborted();
|
|
54
|
+
if (activeWorkers >= maxConcurrentWorkers) {
|
|
55
|
+
await writeBytes(context.stderr, new TextEncoder().encode('python: worker capacity exhausted\n'), context.signal);
|
|
56
|
+
return { exitCode: 1 };
|
|
57
|
+
}
|
|
58
|
+
const controller = new AbortController();
|
|
59
|
+
const signal = AbortSignal.any([context.signal, controller.signal]);
|
|
60
|
+
inheritYieldCheckpoint(context.signal, signal);
|
|
61
|
+
// The service is the single registered owner of descriptors and late acquisition.
|
|
62
|
+
const fileContext = { ...context, descriptorCleanup: "caller" };
|
|
63
|
+
const metadata = new PythonStatTranslator();
|
|
64
|
+
const service = new PythonFileSystem(context.fs, { cwd: context.cwd, signal, maxTransferBytes, maxOpenFiles,
|
|
65
|
+
open: (path, settings) => openCommandFile(fileContext, path, settings) });
|
|
66
|
+
let stdoutOperation;
|
|
67
|
+
let stderrOperation;
|
|
68
|
+
let endpoint;
|
|
69
|
+
let packages;
|
|
70
|
+
let unsubscribe;
|
|
71
|
+
let admitted = false;
|
|
72
|
+
let closed = false;
|
|
73
|
+
let closing;
|
|
74
|
+
const pending = new Set();
|
|
75
|
+
const input = readBytes(context.stdin, signal)[Symbol.asyncIterator]();
|
|
76
|
+
let fragment;
|
|
77
|
+
let offset = 0;
|
|
78
|
+
let inputBytes = 0;
|
|
79
|
+
let rejectRun;
|
|
80
|
+
const close = () => {
|
|
81
|
+
if (closing)
|
|
82
|
+
return closing;
|
|
83
|
+
let finish;
|
|
84
|
+
let fail;
|
|
85
|
+
closing = new Promise((resolve, reject) => { finish = resolve; fail = reject; });
|
|
86
|
+
closed = true;
|
|
87
|
+
controller.abort(new Error('Python invocation retired'));
|
|
88
|
+
void (async () => {
|
|
89
|
+
signal.removeEventListener('abort', aborted);
|
|
90
|
+
const subscription = Promise.resolve().then(() => unsubscribe?.());
|
|
91
|
+
const termination = Promise.resolve().then(() => endpoint?.terminate());
|
|
92
|
+
const results = await Promise.allSettled([subscription, termination, service.close(), stdoutOperation?.close(), stderrOperation?.close(), ...pending]);
|
|
93
|
+
await input.return?.(undefined);
|
|
94
|
+
fragment = undefined;
|
|
95
|
+
if (packages)
|
|
96
|
+
environment.finish(packages);
|
|
97
|
+
for (const result of results)
|
|
98
|
+
if (result.status === 'rejected')
|
|
99
|
+
throw result.reason;
|
|
100
|
+
})().then(() => {
|
|
101
|
+
if (admitted) {
|
|
102
|
+
activeWorkers--;
|
|
103
|
+
admitted = false;
|
|
104
|
+
}
|
|
105
|
+
finish();
|
|
106
|
+
}, reason => {
|
|
107
|
+
// A failed termination cannot establish retirement: retain its capacity slot.
|
|
108
|
+
fail(reason);
|
|
109
|
+
});
|
|
110
|
+
return closing;
|
|
111
|
+
};
|
|
112
|
+
const aborted = () => { rejectRun?.(signal.reason); };
|
|
113
|
+
context.registerCleanup?.(close);
|
|
114
|
+
let primary;
|
|
115
|
+
let result = 1;
|
|
116
|
+
try {
|
|
117
|
+
signal.throwIfAborted();
|
|
118
|
+
activeWorkers++;
|
|
119
|
+
admitted = true;
|
|
120
|
+
const outputContext = { signal, ...(context.registerCleanup ? { registerCleanup: context.registerCleanup } : {}) };
|
|
121
|
+
stdoutOperation = createOutputOperation(outputContext, context.stdout);
|
|
122
|
+
stderrOperation = createOutputOperation(outputContext, context.stderr);
|
|
123
|
+
if (typeof SharedArrayBuffer !== 'function')
|
|
124
|
+
throw new Error('Python worker filesystem requires SharedArrayBuffer');
|
|
125
|
+
const shared = new SharedArrayBuffer(8 + maxTransferBytes * 6 + 65536);
|
|
126
|
+
const control = new Int32Array(shared, 0, 2);
|
|
127
|
+
const payload = new Uint8Array(shared, 8);
|
|
128
|
+
const reply = (value, status) => {
|
|
129
|
+
if (closed)
|
|
130
|
+
return;
|
|
131
|
+
let bytes;
|
|
132
|
+
try {
|
|
133
|
+
bytes = encodePythonReply(value, payload.length);
|
|
134
|
+
}
|
|
135
|
+
catch (error) {
|
|
136
|
+
if (typeof error !== 'object' || error === null || !('code' in error) || error.code !== 'EFBIG')
|
|
137
|
+
throw error;
|
|
138
|
+
bytes = encodePythonReply({ code: 'EFBIG' }, payload.length);
|
|
139
|
+
status = 2;
|
|
140
|
+
}
|
|
141
|
+
payload.set(bytes);
|
|
142
|
+
Atomics.store(control, 1, bytes.length);
|
|
143
|
+
Atomics.store(control, 0, status);
|
|
144
|
+
Atomics.notify(control, 0);
|
|
145
|
+
};
|
|
146
|
+
const dispatch = async (request) => {
|
|
147
|
+
signal.throwIfAborted();
|
|
148
|
+
if (request.op.startsWith('package-'))
|
|
149
|
+
return environment.dispatch(request.op, request.args, { fs: context.fs, cwd: context.cwd, signal });
|
|
150
|
+
if (request.op === 'stdin') {
|
|
151
|
+
const length = request.args[0];
|
|
152
|
+
if (!Number.isSafeInteger(length) || length < 1 || length > maxTransferBytes)
|
|
153
|
+
throw new RangeError('Invalid Python input request');
|
|
154
|
+
let pulls = 0;
|
|
155
|
+
while (!fragment || offset === fragment.length) {
|
|
156
|
+
if (++pulls % 128 === 0)
|
|
157
|
+
await yieldTurn(signal);
|
|
158
|
+
const next = await input.next();
|
|
159
|
+
if (next.done)
|
|
160
|
+
return [];
|
|
161
|
+
inputBytes += next.value.length;
|
|
162
|
+
context.inputBudget?.check(inputBytes);
|
|
163
|
+
if (next.value.length > maxInputChunkBytes)
|
|
164
|
+
throw new PythonInputChunkError('Python input chunk exceeds maxInputChunkBytes');
|
|
165
|
+
// The retained fragment owns its bytes before producer advancement/finalization.
|
|
166
|
+
fragment = Uint8Array.from(next.value);
|
|
167
|
+
offset = 0;
|
|
168
|
+
}
|
|
169
|
+
const end = Math.min(fragment.length, offset + length);
|
|
170
|
+
const bytes = Array.from(fragment.subarray(offset, end));
|
|
171
|
+
offset = end;
|
|
172
|
+
return bytes;
|
|
173
|
+
}
|
|
174
|
+
if (request.op === 'stdout' || request.op === 'stderr') {
|
|
175
|
+
const bytes = request.args[0];
|
|
176
|
+
if (!Array.isArray(bytes) || bytes.length > maxTransferBytes || bytes.some(value => !Number.isInteger(value) || value < 0 || value > 255))
|
|
177
|
+
throw new TypeError('Invalid Python output bytes');
|
|
178
|
+
const operation = request.op === 'stdout' ? stdoutOperation : stderrOperation;
|
|
179
|
+
await writeBytes(operation.output, Uint8Array.from(bytes), signal);
|
|
180
|
+
return bytes.length;
|
|
181
|
+
}
|
|
182
|
+
const value = await service.dispatch(request);
|
|
183
|
+
return request.op === 'stat' || request.op === 'lstat' || request.op === 'fstat'
|
|
184
|
+
? metadata.translate(value) : value;
|
|
185
|
+
};
|
|
186
|
+
options.onProgress?.({ phase: 'initializing', command: context.command });
|
|
187
|
+
const preparation = environment.prepare({ fs: context.fs, cwd: context.cwd, signal,
|
|
188
|
+
...(installation ? { requirements: installation.packages, requirementFiles: installation.requirements } : {}),
|
|
189
|
+
}).then(value => { packages = value; });
|
|
190
|
+
pending.add(preparation);
|
|
191
|
+
try {
|
|
192
|
+
await preparation;
|
|
193
|
+
}
|
|
194
|
+
finally {
|
|
195
|
+
pending.delete(preparation);
|
|
196
|
+
}
|
|
197
|
+
signal.throwIfAborted();
|
|
198
|
+
endpoint = options.createWorker();
|
|
199
|
+
signal.throwIfAborted();
|
|
200
|
+
result = await new Promise((resolve, reject) => {
|
|
201
|
+
let settled = false;
|
|
202
|
+
const fail = (reason) => { settled = true; reject(reason); };
|
|
203
|
+
rejectRun = fail;
|
|
204
|
+
signal.addEventListener('abort', aborted, { once: true });
|
|
205
|
+
unsubscribe = endpoint.subscribe(value => {
|
|
206
|
+
if (closed || settled)
|
|
207
|
+
return;
|
|
208
|
+
if (typeof value !== 'object' || value === null) {
|
|
209
|
+
fail(new TypeError('Invalid Python worker message'));
|
|
210
|
+
return;
|
|
211
|
+
}
|
|
212
|
+
const message = value;
|
|
213
|
+
if (message.type === 'ready') {
|
|
214
|
+
try {
|
|
215
|
+
options.onProgress?.({ phase: 'ready', command: context.command });
|
|
216
|
+
}
|
|
217
|
+
catch (error) {
|
|
218
|
+
fail(error);
|
|
219
|
+
}
|
|
220
|
+
return;
|
|
221
|
+
}
|
|
222
|
+
if (message.type === 'exit') {
|
|
223
|
+
if (pending.size) {
|
|
224
|
+
fail(new TypeError('Python worker exited with an outstanding request'));
|
|
225
|
+
return;
|
|
226
|
+
}
|
|
227
|
+
try {
|
|
228
|
+
const status = validateExitCode(message.exitCode);
|
|
229
|
+
settled = true;
|
|
230
|
+
resolve(status);
|
|
231
|
+
}
|
|
232
|
+
catch (error) {
|
|
233
|
+
fail(error);
|
|
234
|
+
}
|
|
235
|
+
return;
|
|
236
|
+
}
|
|
237
|
+
if (message.type === 'error') {
|
|
238
|
+
settled = true;
|
|
239
|
+
const diagnostic = 'python: ' + (typeof message.message === 'string' ? message.message : 'Python worker failed') + '\n';
|
|
240
|
+
const work = writeBytes(stderrOperation.output, new TextEncoder().encode(diagnostic), signal).then(() => { pending.delete(work); resolve(1); }, error => { pending.delete(work); reject(error); });
|
|
241
|
+
pending.add(work);
|
|
242
|
+
return;
|
|
243
|
+
}
|
|
244
|
+
if (typeof message.op !== 'string' || !Array.isArray(message.args) || pending.size) {
|
|
245
|
+
fail(new TypeError('Invalid concurrent Python worker request'));
|
|
246
|
+
return;
|
|
247
|
+
}
|
|
248
|
+
const work = dispatch({ op: message.op, args: message.args }).then(value => { pending.delete(work); reply(value, 1); }, error => {
|
|
249
|
+
pending.delete(work);
|
|
250
|
+
if (signal.aborted) {
|
|
251
|
+
fail(signal.reason);
|
|
252
|
+
return;
|
|
253
|
+
}
|
|
254
|
+
if (typeof message.op === 'string' && message.op.startsWith('package-')) {
|
|
255
|
+
reply({ code: 'EPACKAGE', message: error instanceof Error ? error.message : String(error) }, 2);
|
|
256
|
+
return;
|
|
257
|
+
}
|
|
258
|
+
if (typeof error !== 'object' || error === null || !('code' in error) || typeof error.code !== 'string') {
|
|
259
|
+
fail(error);
|
|
260
|
+
return;
|
|
261
|
+
}
|
|
262
|
+
reply({ code: error.code }, 2);
|
|
263
|
+
});
|
|
264
|
+
pending.add(work);
|
|
265
|
+
void work.catch(fail);
|
|
266
|
+
}, fail);
|
|
267
|
+
if (settled)
|
|
268
|
+
return;
|
|
269
|
+
const start = { type: 'start', shared, invocation: { args: [...context.args], cwd: context.cwd, env: { ...context.env } }, runtimeMount, maxTransferBytes, ...(packages ? { packages } : {}), installOnly: !!installation };
|
|
270
|
+
signal.throwIfAborted();
|
|
271
|
+
endpoint.postMessage(start);
|
|
272
|
+
});
|
|
273
|
+
}
|
|
274
|
+
catch (reason) {
|
|
275
|
+
if (!signal.aborted && (reason instanceof PythonInputChunkError || (reason instanceof Error && 'code' in reason && reason.code === 'EPACKAGE'))) {
|
|
276
|
+
try {
|
|
277
|
+
await writeBytes(stderrOperation.output, new TextEncoder().encode('python: ' + reason.message + '\n'), signal);
|
|
278
|
+
}
|
|
279
|
+
catch (error) {
|
|
280
|
+
primary = { reason: error };
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
else
|
|
284
|
+
primary = { reason };
|
|
285
|
+
}
|
|
286
|
+
try {
|
|
287
|
+
await close();
|
|
288
|
+
}
|
|
289
|
+
catch (reason) {
|
|
290
|
+
primary ??= { reason };
|
|
291
|
+
}
|
|
292
|
+
try {
|
|
293
|
+
options.onProgress?.({ phase: 'finished', command: context.command });
|
|
294
|
+
}
|
|
295
|
+
catch (reason) {
|
|
296
|
+
primary ??= { reason };
|
|
297
|
+
}
|
|
298
|
+
context.signal.throwIfAborted();
|
|
299
|
+
if (primary)
|
|
300
|
+
throw primary.reason;
|
|
301
|
+
return { exitCode: result };
|
|
302
|
+
};
|
|
303
|
+
return ['python', 'python3'].map(name => ({ name, description: 'Python with an explicit synchronous interpreter worker and canonical filesystem', execute }));
|
|
304
|
+
}
|
|
305
|
+
export function pythonCommands(options) {
|
|
306
|
+
const commands = createPythonCommands(options);
|
|
307
|
+
return { name: 'python-commands', setup(host) {
|
|
308
|
+
if (!options.replace)
|
|
309
|
+
for (const command of commands)
|
|
310
|
+
if (host.commands.has(command.name))
|
|
311
|
+
throw new Error(`Command already registered: ${command.name}`);
|
|
312
|
+
for (const command of commands)
|
|
313
|
+
host.commands.register(command, { replace: options.replace ?? false });
|
|
314
|
+
} };
|
|
315
|
+
}
|
|
316
|
+
export { createPythonPackageEnvironment, pythonDocumentPackages } from './provisioning.js';
|
|
317
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/python/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export interface PythonInstallation {
|
|
2
|
+
readonly packages: readonly string[];
|
|
3
|
+
readonly requirements: readonly string[];
|
|
4
|
+
readonly help: boolean;
|
|
5
|
+
}
|
|
6
|
+
export declare const pythonInstallationHelp = "Usage: python -m pip install [-r FILE | --requirement FILE] PACKAGE ...\nInstalls compatible wheels and dependencies using the configured Pyodide installer.\nPACKAGE is a package requirement or a canonical filesystem wheel path.\nSupported options: -r, --requirement, -h, --help, --.\nAll other pip options and commands are unsupported, including --upgrade,\n--force-reinstall, --no-index, --no-deps, --target, --user, --prefix, --root, --editable,\n--index-url, --extra-index-url, --find-links, --trusted-host, --require-hashes,\n--constraint, --dry-run, --quiet, --verbose and cache/build/configuration flags.\nConfigure transport and integrity through the Python package SDK configuration.\n";
|
|
7
|
+
/** Recognize only the actual -m pip entrypoint, never application arguments. */
|
|
8
|
+
export declare function parsePythonInstallation(args: readonly string[]): PythonInstallation | undefined;
|
|
9
|
+
//# sourceMappingURL=installation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"installation.d.ts","sourceRoot":"","sources":["../../../src/commands/python/installation.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IACzC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;CACxB;AAED,eAAO,MAAM,sBAAsB,2rBASlC,CAAC;AAEF,gFAAgF;AAChF,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,kBAAkB,GAAG,SAAS,CA+C/F"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { PythonInvocationError } from './invocation.js';
|
|
2
|
+
export const pythonInstallationHelp = `Usage: python -m pip install [-r FILE | --requirement FILE] PACKAGE ...
|
|
3
|
+
Installs compatible wheels and dependencies using the configured Pyodide installer.
|
|
4
|
+
PACKAGE is a package requirement or a canonical filesystem wheel path.
|
|
5
|
+
Supported options: -r, --requirement, -h, --help, --.
|
|
6
|
+
All other pip options and commands are unsupported, including --upgrade,
|
|
7
|
+
--force-reinstall, --no-index, --no-deps, --target, --user, --prefix, --root, --editable,
|
|
8
|
+
--index-url, --extra-index-url, --find-links, --trusted-host, --require-hashes,
|
|
9
|
+
--constraint, --dry-run, --quiet, --verbose and cache/build/configuration flags.
|
|
10
|
+
Configure transport and integrity through the Python package SDK configuration.
|
|
11
|
+
`;
|
|
12
|
+
/** Recognize only the actual -m pip entrypoint, never application arguments. */
|
|
13
|
+
export function parsePythonInstallation(args) {
|
|
14
|
+
let pipArgs;
|
|
15
|
+
scan: for (let index = 0; index < args.length; index++) {
|
|
16
|
+
const option = args[index];
|
|
17
|
+
if (option === '--' || option === '-' || !option.startsWith('-') || option.startsWith('--'))
|
|
18
|
+
return undefined;
|
|
19
|
+
for (let offset = 1; offset < option.length; offset++) {
|
|
20
|
+
const flag = option[offset];
|
|
21
|
+
if ('h?V'.includes(flag))
|
|
22
|
+
return undefined;
|
|
23
|
+
if ('cmWX'.includes(flag)) {
|
|
24
|
+
const operand = option.slice(offset + 1) || args[++index];
|
|
25
|
+
if (flag === 'c')
|
|
26
|
+
return undefined;
|
|
27
|
+
if (flag === 'm') {
|
|
28
|
+
if (operand !== 'pip')
|
|
29
|
+
return undefined;
|
|
30
|
+
pipArgs = args.slice(index + 1);
|
|
31
|
+
break scan;
|
|
32
|
+
}
|
|
33
|
+
break;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
if (!pipArgs)
|
|
38
|
+
return undefined;
|
|
39
|
+
const packages = [];
|
|
40
|
+
const requirements = [];
|
|
41
|
+
if (pipArgs.length === 0)
|
|
42
|
+
return { packages, requirements, help: true };
|
|
43
|
+
if (pipArgs[0] === '--help' || pipArgs[0] === '-h') {
|
|
44
|
+
if (pipArgs.length > 1)
|
|
45
|
+
throw new PythonInvocationError('unsupported pip option or argument after help: ' + pipArgs[1]);
|
|
46
|
+
return { packages, requirements, help: true };
|
|
47
|
+
}
|
|
48
|
+
if (pipArgs[0] !== 'install')
|
|
49
|
+
throw new PythonInvocationError('unsupported pip command ' + pipArgs[0]);
|
|
50
|
+
let operands = false;
|
|
51
|
+
let help = false;
|
|
52
|
+
for (let index = 1; index < pipArgs.length; index++) {
|
|
53
|
+
const option = pipArgs[index];
|
|
54
|
+
if (operands || !option.startsWith('-')) {
|
|
55
|
+
packages.push(option);
|
|
56
|
+
continue;
|
|
57
|
+
}
|
|
58
|
+
if (option === '--') {
|
|
59
|
+
operands = true;
|
|
60
|
+
continue;
|
|
61
|
+
}
|
|
62
|
+
if (option === '--help' || option === '-h') {
|
|
63
|
+
help = true;
|
|
64
|
+
continue;
|
|
65
|
+
}
|
|
66
|
+
if (option === '-r' || option === '--requirement' || option.startsWith('--requirement=') || option.startsWith('-r')) {
|
|
67
|
+
const path = option.startsWith('--requirement=') ? option.slice('--requirement='.length)
|
|
68
|
+
: option !== '-r' && option.startsWith('-r') ? option.slice(2) : pipArgs[++index];
|
|
69
|
+
if (!path || path.startsWith('-'))
|
|
70
|
+
throw new PythonInvocationError(option + ' requires a path');
|
|
71
|
+
requirements.push(path);
|
|
72
|
+
continue;
|
|
73
|
+
}
|
|
74
|
+
throw new PythonInvocationError('unsupported pip option ' + option);
|
|
75
|
+
}
|
|
76
|
+
if (!help && packages.length === 0 && requirements.length === 0)
|
|
77
|
+
throw new PythonInvocationError('pip install requires at least one package or requirements file');
|
|
78
|
+
return { packages, requirements, help };
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=installation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"installation.js","sourceRoot":"","sources":["../../../src/commands/python/installation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/** An explicit compatibility failure, rendered as Python usage status 2. */
|
|
2
|
+
export declare class PythonInvocationError extends Error {
|
|
3
|
+
constructor(message: string);
|
|
4
|
+
}
|
|
5
|
+
/** Extract native initialization flags without consuming script/module arguments. */
|
|
6
|
+
export declare function parsePythonInvocation(args: readonly string[], env: Readonly<Record<string, string>>): {
|
|
7
|
+
readonly startupArgs: string[];
|
|
8
|
+
readonly env: Record<string, string>;
|
|
9
|
+
};
|
|
10
|
+
//# sourceMappingURL=invocation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"invocation.d.ts","sourceRoot":"","sources":["../../../src/commands/python/invocation.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,qBAAa,qBAAsB,SAAQ,KAAK;gBAClC,OAAO,EAAE,MAAM;CAC5B;AAED,qFAAqF;AACrF,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,EAAE,GAAG,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG;IACrG,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,CAAC;IAC/B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACtC,CAoDA"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/** An explicit compatibility failure, rendered as Python usage status 2. */
|
|
2
|
+
export class PythonInvocationError extends Error {
|
|
3
|
+
constructor(message) { super(message); this.name = 'PythonInvocationError'; }
|
|
4
|
+
}
|
|
5
|
+
/** Extract native initialization flags without consuming script/module arguments. */
|
|
6
|
+
export function parsePythonInvocation(args, env) {
|
|
7
|
+
const startupArgs = [];
|
|
8
|
+
let informational = false;
|
|
9
|
+
scan: for (let index = 0; index < args.length; index++) {
|
|
10
|
+
const option = args[index];
|
|
11
|
+
if (option === '--' || option === '-' || !option.startsWith('-'))
|
|
12
|
+
break;
|
|
13
|
+
if (option === '--help') {
|
|
14
|
+
informational = true;
|
|
15
|
+
break;
|
|
16
|
+
}
|
|
17
|
+
if (option === '--version') {
|
|
18
|
+
informational = true;
|
|
19
|
+
continue;
|
|
20
|
+
}
|
|
21
|
+
if (option.startsWith('--'))
|
|
22
|
+
throw new PythonInvocationError('unsupported option ' + option);
|
|
23
|
+
for (let offset = 1; offset < option.length; offset++) {
|
|
24
|
+
const flag = option[offset];
|
|
25
|
+
if (flag === 'h' || flag === '?') {
|
|
26
|
+
informational = true;
|
|
27
|
+
break scan;
|
|
28
|
+
}
|
|
29
|
+
if (flag === 'V') {
|
|
30
|
+
informational = true;
|
|
31
|
+
continue;
|
|
32
|
+
}
|
|
33
|
+
if ('cmWX'.includes(flag)) {
|
|
34
|
+
const operand = option.slice(offset + 1) || args[++index];
|
|
35
|
+
if (operand === undefined)
|
|
36
|
+
throw new PythonInvocationError('argument expected for -' + flag);
|
|
37
|
+
if (flag === 'c' || flag === 'm')
|
|
38
|
+
break scan;
|
|
39
|
+
if (flag === 'X') {
|
|
40
|
+
const separator = operand.indexOf('=');
|
|
41
|
+
const name = separator < 0 ? operand : operand.slice(0, separator);
|
|
42
|
+
const value = separator < 0 ? undefined : operand.slice(separator + 1);
|
|
43
|
+
let decimal = value ?? '';
|
|
44
|
+
while (decimal.length && ' \t\n\r\v\f'.includes(decimal[0]))
|
|
45
|
+
decimal = decimal.slice(1);
|
|
46
|
+
if (decimal[0] === '+' || decimal[0] === '-')
|
|
47
|
+
decimal = decimal.slice(1);
|
|
48
|
+
const digits = decimal.length > 0 && [...decimal].every(character => character >= '0' && character <= '9');
|
|
49
|
+
const supported = (name === 'utf8' && (value === undefined || value === '0' || value === '1'))
|
|
50
|
+
|| ((name === 'dev' || name === 'warn_default_encoding') && value === undefined)
|
|
51
|
+
|| (name === 'int_max_str_digits' && digits && Number.isSafeInteger(Number(value)) && Number(value) <= 2147483647 && (Number(value) === 0 || Number(value) >= 640));
|
|
52
|
+
if (!supported)
|
|
53
|
+
throw new PythonInvocationError('unsupported -X option ' + operand);
|
|
54
|
+
startupArgs.push('-X', operand);
|
|
55
|
+
}
|
|
56
|
+
// Warning-as-error can prevent Pyodide bootstrap; apply -W after bootstrap.
|
|
57
|
+
break;
|
|
58
|
+
}
|
|
59
|
+
if (!'BEPOusISbdvqR'.includes(flag))
|
|
60
|
+
throw new PythonInvocationError('unsupported option -' + flag);
|
|
61
|
+
startupArgs.push('-' + flag);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
if (!informational && !startupArgs.includes('-E') && !startupArgs.includes('-I')) {
|
|
65
|
+
if (env.PYTHONINSPECT)
|
|
66
|
+
throw new PythonInvocationError('PYTHONINSPECT requires an interactive terminal, which the shell does not expose');
|
|
67
|
+
if (env.PYTHONHOME)
|
|
68
|
+
throw new PythonInvocationError('PYTHONHOME cannot replace the configured Pyodide runtime');
|
|
69
|
+
}
|
|
70
|
+
const runtimeEnv = { ...env };
|
|
71
|
+
// These paths belong to the canonical filesystem, mounted after bootstrap.
|
|
72
|
+
delete runtimeEnv.PYTHONPATH;
|
|
73
|
+
delete runtimeEnv.PYTHONHOME;
|
|
74
|
+
delete runtimeEnv.PYTHONWARNINGS;
|
|
75
|
+
// Pyodide otherwise supplies PYTHONINSPECT=1, including with a -c operand.
|
|
76
|
+
runtimeEnv.PYTHONINSPECT = '';
|
|
77
|
+
// Without a command Pyodide initializes CPython in inspect mode.
|
|
78
|
+
startupArgs.push('-c', '');
|
|
79
|
+
return { startupArgs, env: runtimeEnv };
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=invocation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"invocation.js","sourceRoot":"","sources":["../../../src/commands/python/invocation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { PythonWorkerEndpoint } from './index.js';
|
|
2
|
+
export interface NodePythonWorkerOptions {
|
|
3
|
+
/** Required acknowledgement: guest JavaScript interoperability is not host isolation. */
|
|
4
|
+
readonly trustedPython: true;
|
|
5
|
+
/** Explicit trusted Pyodide ES module URL; no installation or host Python fallback. */
|
|
6
|
+
readonly runtimeModuleURL: string;
|
|
7
|
+
/** Runtime asset directory, defaulting to the module's containing directory. */
|
|
8
|
+
readonly indexURL?: string;
|
|
9
|
+
}
|
|
10
|
+
/** Each endpoint owns a new worker and a new interpreter, including module state. */
|
|
11
|
+
export declare function createNodePythonWorker(options: NodePythonWorkerOptions): PythonWorkerEndpoint;
|
|
12
|
+
//# sourceMappingURL=node.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../../src/commands/python/node.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAEvD,MAAM,WAAW,uBAAuB;IACtC,yFAAyF;IACzF,QAAQ,CAAC,aAAa,EAAE,IAAI,CAAC;IAC7B,uFAAuF;IACvF,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,gFAAgF;IAChF,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,qFAAqF;AACrF,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,uBAAuB,GAAG,oBAAoB,CAyB7F"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { fileURLToPath } from 'node:url';
|
|
2
|
+
import { Worker } from 'node:worker_threads';
|
|
3
|
+
/** Each endpoint owns a new worker and a new interpreter, including module state. */
|
|
4
|
+
export function createNodePythonWorker(options) {
|
|
5
|
+
if (options.trustedPython !== true)
|
|
6
|
+
throw new TypeError('Node Python requires trustedPython: true; Pyodide JavaScript interoperability is not a sandbox');
|
|
7
|
+
const runtimeModuleURL = new URL(options.runtimeModuleURL).href;
|
|
8
|
+
const worker = new Worker(`
|
|
9
|
+
import('node:worker_threads').then(({ parentPort, workerData }) => {
|
|
10
|
+
parentPort.once('message', async start => {
|
|
11
|
+
try {
|
|
12
|
+
const { runPythonWorker } = await import(workerData.runner);
|
|
13
|
+
const { loadPyodide } = await import(workerData.runtimeModuleURL);
|
|
14
|
+
await runPythonWorker({ start, loadRuntime: configuration => loadPyodide({...configuration, indexURL: workerData.indexURL}),
|
|
15
|
+
postMessage: message => parentPort.postMessage(message) });
|
|
16
|
+
} catch (error) { parentPort.postMessage({type:'error', message:String(error)}); }
|
|
17
|
+
});
|
|
18
|
+
});
|
|
19
|
+
`, { eval: true, workerData: { runner: import.meta.resolve('poe-code/safe-bash/commands/python/worker'),
|
|
20
|
+
runtimeModuleURL, indexURL: options.indexURL ?? (runtimeModuleURL.startsWith('file:') ? fileURLToPath(new URL('.', runtimeModuleURL)) : new URL('.', runtimeModuleURL).href) } });
|
|
21
|
+
return {
|
|
22
|
+
postMessage(message) { worker.postMessage(message); },
|
|
23
|
+
subscribe(onMessage, onError) {
|
|
24
|
+
const onExit = (code) => onError(new Error(`Python worker exited unexpectedly (${code})`));
|
|
25
|
+
worker.on('message', onMessage);
|
|
26
|
+
worker.on('error', onError);
|
|
27
|
+
worker.on('exit', onExit);
|
|
28
|
+
return () => { worker.off('message', onMessage); worker.off('error', onError); worker.off('exit', onExit); };
|
|
29
|
+
},
|
|
30
|
+
async terminate() { await worker.terminate(); },
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=node.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node.js","sourceRoot":"","sources":["../../../src/commands/python/node.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAY7C,qFAAqF;AACrF,MAAM,UAAU,sBAAsB,CAAC,OAAgC;IACrE,IAAI,OAAO,CAAC,aAAa,KAAK,IAAI;QAAE,MAAM,IAAI,SAAS,CAAC,gGAAgG,CAAC,CAAC;IAC1J,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC;IAChE,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC;;;;;;;;;;;GAWzB,EAAE,EAAC,IAAI,EAAC,IAAI,EAAE,UAAU,EAAC,EAAC,MAAM,EAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,2CAA2C,CAAC;YAChG,gBAAgB,EAAE,QAAQ,EAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,GAAG,CAAC,GAAG,EAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,GAAG,EAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,EAAC,EAAC,CAAC,CAAC;IAC/K,OAAO;QACL,WAAW,CAAC,OAAO,IAAI,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACrD,SAAS,CAAC,SAAS,EAAE,OAAO;YAC1B,MAAM,MAAM,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,sCAAsC,IAAI,GAAG,CAAC,CAAC,CAAC;YACnG,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;YAAC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YACxF,OAAO,GAAG,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/G,CAAC;QACD,KAAK,CAAC,SAAS,KAAK,MAAM,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;KAChD,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { PythonWorkerRuntime } from './worker.js';
|
|
2
|
+
import type { PythonPackageStart } from './provisioning.js';
|
|
3
|
+
/** Pinned installer ABI; all package transport is serviced by the host, before user execution. */
|
|
4
|
+
export declare function installPythonPackages(supplied: PythonWorkerRuntime, start: PythonPackageStart, request: (operation: string, ...args: any[]) => any, maxTransferBytes: number): Promise<void>;
|
|
5
|
+
//# sourceMappingURL=provisioning-runtime.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provisioning-runtime.d.ts","sourceRoot":"","sources":["../../../src/commands/python/provisioning-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAc5D,kGAAkG;AAClG,wBAAsB,qBAAqB,CAC1C,QAAQ,EAAE,mBAAmB,EAC7B,KAAK,EAAE,kBAAkB,EACzB,OAAO,EAAC,CAAC,SAAS,EAAC,MAAM,EAAC,GAAG,IAAI,EAAC,GAAG,EAAE,KAAG,GAAG,EAC7C,gBAAgB,EAAC,MAAM,GACtB,OAAO,CAAC,IAAI,CAAC,CAoKd"}
|