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