@poe-platform/safe-bash 0.1.823 → 0.1.824
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/dist/safe-bash/command-chunks/{chunk-LDR3PPM3.js → chunk-22QEL76N.js} +3 -3
- package/dist/safe-bash/command-chunks/{chunk-BSLXS4PE.js → chunk-3DH5QBZC.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-64HIOP7Q.js → chunk-3EBQOZET.js} +33 -353
- package/dist/safe-bash/command-chunks/{chunk-KQE2D7PX.js → chunk-3HUCLYKJ.js} +2 -2
- package/dist/safe-bash/command-chunks/{chunk-J4I7KCQQ.js → chunk-4JABZEDO.js} +4 -4
- package/dist/safe-bash/command-chunks/{chunk-PVKSBXHB.js → chunk-4M6D4IUB.js} +4 -4
- package/dist/safe-bash/command-chunks/{chunk-UVM6QG2H.js → chunk-4MVQE6CT.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-QWQHLMDX.js → chunk-4VTB4DGE.js} +3 -3
- package/dist/safe-bash/command-chunks/{chunk-JQPDVCBU.js → chunk-565AAQTV.js} +3 -3
- package/dist/safe-bash/command-chunks/{chunk-JSW6YH6T.js → chunk-5PRXCH54.js} +5 -5
- package/dist/safe-bash/command-chunks/{chunk-42OQIFPW.js → chunk-5RLK2QSY.js} +3 -3
- package/dist/safe-bash/command-chunks/{chunk-PYYAX5FB.js → chunk-63WEGFLL.js} +16 -16
- package/dist/safe-bash/command-chunks/{chunk-5QR4LTAK.js → chunk-6KZXFPOT.js} +6 -6
- package/dist/safe-bash/command-chunks/{chunk-LJLB7TBN.js → chunk-6YTXU3NF.js} +6 -6
- package/dist/safe-bash/command-chunks/{chunk-NNYOPI7K.js → chunk-7NF44M2V.js} +5 -5
- package/dist/safe-bash/command-chunks/{chunk-ZRHKXN6W.js → chunk-7RQGRFHJ.js} +2 -2
- package/dist/safe-bash/command-chunks/{chunk-QGSY4ZAU.js → chunk-7UYBNOOM.js} +2 -2
- package/dist/safe-bash/command-chunks/{chunk-6REH56FL.js → chunk-AA254KE5.js} +4 -4
- package/dist/safe-bash/command-chunks/{chunk-2VSNIHIW.js → chunk-APUXNXXQ.js} +11 -11
- package/dist/safe-bash/command-chunks/{chunk-XE75H5ZZ.js → chunk-AVXSR5MO.js} +6 -6
- package/dist/safe-bash/command-chunks/{chunk-22D6Q6SW.js → chunk-BKCVCMUX.js} +2 -2
- package/dist/safe-bash/command-chunks/{chunk-UDRJKA3P.js → chunk-C23L4HZB.js} +2 -2
- package/dist/safe-bash/command-chunks/{chunk-PAEAEFK3.js → chunk-C3EEMMQL.js} +3 -3
- package/dist/safe-bash/command-chunks/{chunk-NDJPULBE.js → chunk-CEKBIZGU.js} +2 -2
- package/dist/safe-bash/command-chunks/{chunk-75OUKYCM.js → chunk-CH5JDE3C.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-XNVL6AOV.js → chunk-CIYGC7WU.js} +6 -6
- package/dist/safe-bash/command-chunks/{chunk-RUXY7GN5.js → chunk-CMJBRGU2.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-DGFMOT4O.js → chunk-CO4HYNPS.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-TMJG745A.js → chunk-CQLZM75U.js} +3 -3
- package/dist/safe-bash/command-chunks/{chunk-T2LZWXWF.js → chunk-DBCTHLB5.js} +4 -4
- package/dist/safe-bash/command-chunks/{chunk-6RE4MZYM.js → chunk-DBEJMI7J.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-XXUMECE4.js → chunk-DEEZYCOQ.js} +6 -6
- package/dist/safe-bash/command-chunks/{chunk-YJMS5Q4Y.js → chunk-DHTTI7CE.js} +8 -8
- package/dist/safe-bash/command-chunks/{chunk-D3WMD32B.js → chunk-DLLGOC4Q.js} +6 -6
- package/dist/safe-bash/command-chunks/{chunk-HVLF3Y4B.js → chunk-DYCYAIET.js} +5 -5
- package/dist/safe-bash/command-chunks/{chunk-5NC2IQMQ.js → chunk-EV7A5FNN.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-2YC6MWQB.js → chunk-EY3UE26F.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-ZQ4NQ24M.js → chunk-FJLVISSD.js} +4 -4
- package/dist/safe-bash/command-chunks/{chunk-WOO3YO2X.js → chunk-HTMGN3KL.js} +4 -4
- package/dist/safe-bash/command-chunks/{chunk-2E53ZL5D.js → chunk-HU72CZBN.js} +4 -4
- package/dist/safe-bash/command-chunks/{chunk-AH3ZEPAN.js → chunk-IGHFIRXK.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-WDTWJFPK.js → chunk-IKBTII7C.js} +35 -73
- package/dist/safe-bash/command-chunks/{chunk-J3ISXTYB.js → chunk-JTEAYB72.js} +2 -2
- package/dist/safe-bash/command-chunks/{chunk-NR7POLKP.js → chunk-KCS25XUJ.js} +2 -2
- package/dist/safe-bash/command-chunks/chunk-LKAFLJ5L.js +123 -0
- package/dist/safe-bash/command-chunks/{chunk-EU5SR3LS.js → chunk-LSH6UKCT.js} +2 -2
- package/dist/safe-bash/command-chunks/{chunk-WV3C6BRD.js → chunk-MHZ7UTRX.js} +5 -5
- package/dist/safe-bash/command-chunks/{chunk-K6J3KFQ2.js → chunk-MSA5BQFK.js} +3 -3
- package/dist/safe-bash/command-chunks/{chunk-OMD45J52.js → chunk-MW3L6JB7.js} +6 -6
- package/dist/safe-bash/command-chunks/{chunk-AR65HNNX.js → chunk-N2TN7IBE.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-EO3RYGUZ.js → chunk-NNGWTDVJ.js} +476 -75
- package/dist/safe-bash/command-chunks/{chunk-NWA7ZJDV.js → chunk-NU64GWGN.js} +3 -3
- package/dist/safe-bash/command-chunks/{chunk-RGKHTSUY.js → chunk-NW3S6T6R.js} +1 -1
- package/dist/safe-bash/command-chunks/chunk-NXCJNPL3.js +47 -0
- package/dist/safe-bash/command-chunks/{chunk-GAYTDZPP.js → chunk-ORWYNKKL.js} +3 -3
- package/dist/safe-bash/command-chunks/{chunk-FCGMSOF6.js → chunk-P6YTNXRV.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-3RDEX4AF.js → chunk-PAS4YSNN.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-TTPT3OME.js → chunk-PSNTCRL5.js} +4 -4
- package/dist/safe-bash/command-chunks/{chunk-FGK6HLSY.js → chunk-QC2RWSYM.js} +3 -3
- package/dist/safe-bash/command-chunks/{chunk-HCZITM4C.js → chunk-QPY3NCMC.js} +5 -5
- package/dist/safe-bash/command-chunks/{chunk-3TXPZLFI.js → chunk-R6RVR6ZZ.js} +5 -5
- package/dist/safe-bash/command-chunks/{chunk-HQFX5XKV.js → chunk-RB7XAYO2.js} +3 -3
- package/dist/safe-bash/command-chunks/{chunk-6PDXNY3T.js → chunk-RF5VEKFU.js} +9 -9
- package/dist/safe-bash/command-chunks/{chunk-VAMBWXDV.js → chunk-RUAGHZNF.js} +18 -18
- package/dist/safe-bash/command-chunks/{chunk-3MFYCMQU.js → chunk-S2T7DDGY.js} +16 -16
- package/dist/safe-bash/command-chunks/{chunk-LZHFVNEV.js → chunk-S3QYSI5E.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-ZLMCWAAU.js → chunk-STTXZKR6.js} +3 -3
- package/dist/safe-bash/command-chunks/{chunk-AXUHORS3.js → chunk-SUYSZJI3.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-C5SLY3RB.js → chunk-U2C6A3QO.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-HCJWEB6P.js → chunk-U6IEK2CI.js} +7 -7
- package/dist/safe-bash/command-chunks/{chunk-NN6OWOJG.js → chunk-UC6DUY3K.js} +2 -2
- package/dist/safe-bash/command-chunks/{chunk-64L57DEI.js → chunk-UQTU7H6T.js} +9 -9
- package/dist/safe-bash/command-chunks/{chunk-ARA57PMC.js → chunk-V5PVNBOS.js} +4 -4
- package/dist/safe-bash/command-chunks/{chunk-ZZ6EIACJ.js → chunk-VGHRMAI4.js} +5 -5
- package/dist/safe-bash/command-chunks/{chunk-DZTT5SLG.js → chunk-VP7R7HKY.js} +5 -5
- package/dist/safe-bash/command-chunks/{chunk-TP5MZHCB.js → chunk-W5Y7Y7PS.js} +3 -3
- package/dist/safe-bash/command-chunks/{chunk-ZTW2E5OT.js → chunk-WAE3OCOU.js} +3 -3
- package/dist/safe-bash/command-chunks/{chunk-DBYY7IDI.js → chunk-WCM47S5A.js} +10 -10
- package/dist/safe-bash/command-chunks/{chunk-U6VSRO6E.js → chunk-WNVBS4GV.js} +4 -4
- package/dist/safe-bash/command-chunks/{chunk-CXOAMPOV.js → chunk-WUIS2INH.js} +13 -13
- package/dist/safe-bash/command-chunks/{chunk-4HJEZGYN.js → chunk-YODHIRPW.js} +7 -7
- package/dist/safe-bash/command-chunks/{chunk-C3FERGHU.js → chunk-YRMTOLG5.js} +3 -3
- package/dist/safe-bash/command-chunks/{chunk-YXIJOYT6.js → chunk-ZUOCXDYW.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-LBBJ5S3W.js → chunk-ZZKJPLIH.js} +1 -1
- package/dist/safe-bash/command-chunks/{engine-UPLVIV72-IGXUDNO5.js → engine-UPLVIV72-MSSFJLK4.js} +1 -1
- package/dist/safe-bash/commands/python/source-archive.d.ts +2 -0
- package/dist/safe-bash/commands/python/source-archive.js +2 -0
- package/dist/safe-bash/commands/python/source-zip.d.ts +2 -0
- package/dist/safe-bash/commands/python/source-zip.js +2 -0
- package/dist/safe-bash-command-exiftool/index.js +41 -0
- package/dist/safe-bash-command-git/git_rust.wasm +0 -0
- package/dist/safe-bash-command-playwright-cli/index.js +36 -36
- package/dist/safe-bash-command-playwright-cli/playwright/abilities.js +7 -7
- package/dist/safe-bash-command-playwright-cli/playwright/adapter.js +3 -3
- package/dist/safe-bash-command-playwright-cli/playwright/capability-events.js +1 -1
- package/dist/safe-bash-command-playwright-cli/playwright/capability-result.js +1 -1
- package/dist/safe-bash-command-playwright-cli/playwright/controller.js +15 -15
- package/dist/safe-bash-command-playwright-cli/playwright/download-capabilities.js +1 -1
- package/dist/safe-bash-command-playwright-cli/playwright/drop-capability.js +1 -1
- package/dist/safe-bash-command-playwright-cli/playwright/index.js +35 -35
- package/dist/safe-bash-command-playwright-cli/playwright/modal-capabilities.js +1 -1
- package/dist/safe-bash-command-playwright-cli/playwright/native-evaluation.js +1 -1
- package/dist/safe-bash-command-playwright-cli/playwright/native-json-snapshot.js +1 -1
- package/dist/safe-bash-command-playwright-cli/playwright/native-snapshot.js +1 -1
- package/dist/safe-bash-command-playwright-cli/playwright/native-storage-replacement.js +2 -2
- package/dist/safe-bash-command-playwright-cli/playwright/profile.js +3 -3
- package/dist/safe-bash-command-playwright-cli/playwright/recording-capabilities.js +1 -1
- package/dist/safe-bash-command-playwright-cli/playwright/route-capabilities.js +1 -1
- package/dist/safe-bash-command-playwright-cli/playwright/snapshot.js +1 -1
- package/dist/safe-bash-command-playwright-cli/playwright/standard-capabilities.js +6 -6
- package/dist/safe-bash-command-playwright-cli/playwright/storage-capabilities.js +5 -5
- package/dist/safe-bash-command-playwright-cli/playwright/tracing-capabilities.js +1 -1
- package/dist/safe-bash-command-playwright-cli/playwright/webmcp-capabilities.js +1 -1
- package/dist/safe-bash-command-python/build-backend.d.ts +45 -3
- package/dist/safe-bash-command-python/build-dependencies.d.ts +2 -1
- package/dist/safe-bash-command-python/executor.d.ts +1 -1
- package/dist/safe-bash-command-python/executor.js +5 -4
- package/dist/safe-bash-command-python/index.js +5 -4
- package/dist/safe-bash-command-python/jspi.js +2 -2
- package/dist/safe-bash-command-python/manifest.d.ts +5 -1
- package/dist/safe-bash-command-python/provisioning.d.ts +7 -3
- package/dist/safe-bash-command-python/provisioning.js +2 -1
- package/dist/safe-bash-command-python/source-archive.d.ts +4 -0
- package/dist/safe-bash-command-python/source-archive.js +136 -0
- package/dist/safe-bash-command-python/source-environment.d.ts +4 -1
- package/dist/safe-bash-command-python/source-zip.d.ts +8 -0
- package/dist/safe-bash-command-python/source-zip.js +8 -0
- package/dist/safe-bash-command-python/worker.js +1 -1
- package/dist/safe-bash-command-safejs/index.js +5 -5
- package/dist/safe-bash-command-safejs/runtime.js +3 -3
- package/dist/safe-bash-command-ssconvert/index.js +8 -8
- package/dist/safe-bash-compression-engine/bounded-codec.js +2 -2
- package/dist/safe-bash-compression-engine/codec-loader.js +1 -1
- package/dist/safe-bash-compression-engine/files.js +5 -5
- package/dist/safe-bash-compression-engine/index.js +4 -4
- package/dist/safe-bash-compression-engine/operand.js +5 -5
- package/dist/safe-bash-compression-engine/stream.js +4 -4
- package/dist/safe-bash-compression-engine/zstd-decode.js +3 -3
- package/dist/safe-bash-presentation-engine/accessibility.js +15 -15
- package/dist/safe-bash-presentation-engine/animation-editing.js +5 -5
- package/dist/safe-bash-presentation-engine/animations.js +5 -5
- package/dist/safe-bash-presentation-engine/backgrounds.js +6 -6
- package/dist/safe-bash-presentation-engine/chart-editing.js +18 -18
- package/dist/safe-bash-presentation-engine/chart-object-operations.js +12 -12
- package/dist/safe-bash-presentation-engine/charts.js +15 -15
- package/dist/safe-bash-presentation-engine/command-placeholder.js +39 -39
- package/dist/safe-bash-presentation-engine/comments.js +6 -6
- package/dist/safe-bash-presentation-engine/connector-operations.js +16 -16
- package/dist/safe-bash-presentation-engine/connectors.js +13 -13
- package/dist/safe-bash-presentation-engine/diff.js +21 -21
- package/dist/safe-bash-presentation-engine/drawing-format.js +7 -7
- package/dist/safe-bash-presentation-engine/drawing-operations.js +15 -15
- package/dist/safe-bash-presentation-engine/drawing-schema.js +8 -8
- package/dist/safe-bash-presentation-engine/equations.js +6 -6
- package/dist/safe-bash-presentation-engine/fields.js +6 -6
- package/dist/safe-bash-presentation-engine/image-extraction.js +7 -7
- package/dist/safe-bash-presentation-engine/image-formatting.js +16 -16
- package/dist/safe-bash-presentation-engine/image-insertion.js +6 -6
- package/dist/safe-bash-presentation-engine/image-replacement.js +7 -7
- package/dist/safe-bash-presentation-engine/images.js +6 -6
- package/dist/safe-bash-presentation-engine/index.js +104 -104
- package/dist/safe-bash-presentation-engine/layouts.js +5 -5
- package/dist/safe-bash-presentation-engine/links.js +5 -5
- package/dist/safe-bash-presentation-engine/masters.js +4 -4
- package/dist/safe-bash-presentation-engine/media-editing.js +13 -13
- package/dist/safe-bash-presentation-engine/media-extraction.js +7 -7
- package/dist/safe-bash-presentation-engine/media.js +6 -6
- package/dist/safe-bash-presentation-engine/memberships.js +5 -5
- package/dist/safe-bash-presentation-engine/notes.js +6 -6
- package/dist/safe-bash-presentation-engine/ole-insertion.js +6 -6
- package/dist/safe-bash-presentation-engine/opaque-objects.js +2 -2
- package/dist/safe-bash-presentation-engine/package-tools.js +6 -6
- package/dist/safe-bash-presentation-engine/presentation-model.js +38 -38
- package/dist/safe-bash-presentation-engine/presentation-settings.js +5 -5
- package/dist/safe-bash-presentation-engine/properties.js +6 -6
- package/dist/safe-bash-presentation-engine/retained-inspection.js +3 -3
- package/dist/safe-bash-presentation-engine/retained-text.js +16 -16
- package/dist/safe-bash-presentation-engine/sanitize.js +7 -7
- package/dist/safe-bash-presentation-engine/selectors.js +2 -2
- package/dist/safe-bash-presentation-engine/shape-groups.js +15 -15
- package/dist/safe-bash-presentation-engine/shape-operations.js +14 -14
- package/dist/safe-bash-presentation-engine/shape-path-operations.js +16 -16
- package/dist/safe-bash-presentation-engine/shape-paths.js +5 -5
- package/dist/safe-bash-presentation-engine/shape-selection.js +15 -15
- package/dist/safe-bash-presentation-engine/shape-transforms.js +5 -5
- package/dist/safe-bash-presentation-engine/shapes.js +11 -11
- package/dist/safe-bash-presentation-engine/slide-copy.js +7 -7
- package/dist/safe-bash-presentation-engine/slide-import.js +6 -6
- package/dist/safe-bash-presentation-engine/slide-merge-split.js +8 -8
- package/dist/safe-bash-presentation-engine/slide-model.js +25 -25
- package/dist/safe-bash-presentation-engine/slide-removal.js +7 -7
- package/dist/safe-bash-presentation-engine/slide-transfer-budget.js +2 -2
- package/dist/safe-bash-presentation-engine/slides.js +5 -5
- package/dist/safe-bash-presentation-engine/table-operations.js +17 -17
- package/dist/safe-bash-presentation-engine/table-spans.js +16 -16
- package/dist/safe-bash-presentation-engine/tables.js +15 -15
- package/dist/safe-bash-presentation-engine/tags.js +6 -6
- package/dist/safe-bash-presentation-engine/template-bindings.js +16 -16
- package/dist/safe-bash-presentation-engine/template-repeat.js +26 -26
- package/dist/safe-bash-presentation-engine/text-fitting.js +11 -11
- package/dist/safe-bash-presentation-engine/text-frames.js +11 -11
- package/dist/safe-bash-presentation-engine/text-paragraphs.js +11 -11
- package/dist/safe-bash-presentation-engine/text-reading.js +3 -3
- package/dist/safe-bash-presentation-engine/text-replacement.js +6 -6
- package/dist/safe-bash-presentation-engine/text-runs.js +8 -8
- package/dist/safe-bash-presentation-engine/themes.js +5 -5
- package/dist/safe-bash-presentation-engine/transitions.js +6 -6
- package/dist/safe-bash-presentation-engine/validation.js +2 -2
- package/dist/safe-bash-presentation-engine/xml-parts.js +5 -5
- package/package.json +12 -2
- package/dist/safe-bash/command-chunks/{biff-AYJZR2YV-YFF3BK43.js → biff-AYJZR2YV-2BK47I2W.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-SKDJCMGI.js → chunk-ATUZ7J3B.js} +3 -3
- package/dist/safe-bash/command-chunks/{chunk-4Q4R3VZU.js → chunk-ETFJ4L7F.js} +0 -0
- package/dist/safe-bash/command-chunks/{chunk-QWHBQBPB.js → chunk-EXDMIGZY.js} +6 -6
- package/dist/safe-bash/command-chunks/{chunk-SKF6PGA5.js → chunk-I2OKE2NI.js} +3 -3
- package/dist/safe-bash/command-chunks/{chunk-2H6RJPCQ.js → chunk-JDDZRKC4.js} +3 -3
- package/dist/safe-bash/command-chunks/{chunk-3TP4SSPS.js → chunk-SRXARACJ.js} +3 -3
- package/dist/safe-bash/command-chunks/{chunk-D54L2IOZ.js → chunk-Y7UXJ77P.js} +3 -3
- package/dist/safe-bash/command-chunks/{dif-BXKPQOCO-FVJYYGYB.js → dif-BXKPQOCO-4KB3RC6G.js} +4 -4
- package/dist/safe-bash/command-chunks/{sylk-25D7TL2Y-NJKBZZTF.js → sylk-25D7TL2Y-RU6ANKGT.js} +4 -4
|
@@ -2,7 +2,7 @@ import {
|
|
|
2
2
|
nodeFor,
|
|
3
3
|
selected,
|
|
4
4
|
validateSelection
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-YODHIRPW.js";
|
|
6
6
|
import {
|
|
7
7
|
Length
|
|
8
8
|
} from "./chunk-GNVAW6NL.js";
|
|
@@ -11,10 +11,10 @@ import {
|
|
|
11
11
|
child,
|
|
12
12
|
loadShared,
|
|
13
13
|
required
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-C23L4HZB.js";
|
|
15
15
|
import {
|
|
16
16
|
SelectionError
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-I2OKE2NI.js";
|
|
18
18
|
import {
|
|
19
19
|
OfficeError
|
|
20
20
|
} from "./chunk-VJQ5OWS5.js";
|
|
@@ -67,66 +67,29 @@ function parsePythonInvocation(args, env) {
|
|
|
67
67
|
return { startupArgs, env: runtimeEnv, module };
|
|
68
68
|
}
|
|
69
69
|
|
|
70
|
-
// packages/safe-bash-command-python/src/
|
|
71
|
-
var
|
|
72
|
-
def _safe_extract_native_wheel(read, serialized):
|
|
73
|
-
import io as _native_io, json as _native_json, shutil as _native_shutil
|
|
74
|
-
from pathlib import Path as _NativePath
|
|
75
|
-
from zipfile import ZipFile as _NativeZip
|
|
76
|
-
from pyodide import _package_loader as _native_loader
|
|
77
|
-
from pyodide.ffi import run_sync as _native_sync
|
|
70
|
+
// packages/safe-bash-command-python/src/package-program.generated.ts
|
|
71
|
+
var pythonPackageProgramGzip = "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";
|
|
78
72
|
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
def seekable(self):
|
|
85
|
-
return True
|
|
86
|
-
def tell(self):
|
|
87
|
-
return self.position
|
|
88
|
-
def seek(self, offset, whence=0):
|
|
89
|
-
if whence not in (0, 1, 2):
|
|
90
|
-
raise ValueError('invalid whence')
|
|
91
|
-
position = offset + (0, self.position, self.size)[whence]
|
|
92
|
-
if position < 0:
|
|
93
|
-
raise OSError(22, 'Invalid argument')
|
|
94
|
-
self.position = position
|
|
95
|
-
return position
|
|
96
|
-
def read(self, size=-1):
|
|
97
|
-
remaining = max(0, self.size - self.position)
|
|
98
|
-
size = remaining if size is None or size < 0 else min(size, remaining)
|
|
99
|
-
output = bytearray()
|
|
100
|
-
while len(output) < size:
|
|
101
|
-
result = read(self.position, min(size-len(output), 65536))
|
|
102
|
-
if hasattr(result, 'then'):
|
|
103
|
-
result = _native_sync(result)
|
|
104
|
-
chunk = bytes(result)
|
|
105
|
-
if not chunk or len(chunk) > size-len(output):
|
|
106
|
-
raise OSError('Invalid Python package chunk')
|
|
107
|
-
output.extend(chunk)
|
|
108
|
-
self.position += len(chunk)
|
|
109
|
-
return bytes(output)
|
|
73
|
+
// packages/safe-bash-command-python/src/package-program.ts
|
|
74
|
+
var decoded;
|
|
75
|
+
function loadPythonPackageProgram() {
|
|
76
|
+
return decoded ??= new Response(new Blob([Uint8Array.from(atob(pythonPackageProgramGzip), (character) => character.charCodeAt(0))]).stream().pipeThrough(new DecompressionStream("gzip"))).text();
|
|
77
|
+
}
|
|
110
78
|
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
_native_loader.install_datafiles(_native_config['filename'], _native_zip, _native_target)
|
|
126
|
-
_native_dynlibs = _native_loader.get_dynlibs(_native_archive, _NativePath(_native_config['filename']).suffix, _native_target)
|
|
127
|
-
return _native_json.dumps(_native_dynlibs)
|
|
128
|
-
_safe_extract_native_wheel(_safe_native_wheel_read, _safe_native_wheel_config)
|
|
129
|
-
`;
|
|
79
|
+
// packages/safe-bash-command-python/src/native-wheel.generated.ts
|
|
80
|
+
var pythonNativeWheelGzip = "H4sIAAAAAAACA51WTW/cNhC976+Y5iIJltWNgwSFYRVw0RTIoUnQGi3gYCHQ0mg1XYkUSMq7619f8ENaSl67aG7icGbe45vhUKsKaygUq7HAg5as1AVnmh6x2DeIbSyRVSkolMRaesIquV4Bdb2QGkgAUzC6k0jhHyV4aDPrFFQzaGpDu7OsoJaig57ppqWHMetXphvr+9n6mqV3fKK+phZHx3vqfzPLk+899WPOo6iomlyLnpU7tsWiFaxCGVJxlnlYVtc0hsqBF+rIyxn9Iy9XKyhbpibsv61aJzGyP9j+05dfmEKjGFiVC+KkiyJW2NYpKHpye2DWmVmm7rMXijQJDjk469pnMMVgDy3aDC5Woh4khzs5oHdSiLv/dNLYts8dZuhBOs9Y1LVCncK+QV5ivnaxVHsDcKGBOMTrFN6mcOW2QTJSCH+xdsCPUgoZR8QfWUuVD4sS4xac2cHAhU00o5SepEq+ueiNpzDF38A6xP3ypwO9ukoh+uSBmdwOHXLtoJeaBwKMwiw0MXUIqphfvh1l7Bhx4lvIoWOHib9xgss5kIM2G3kQR7WzkYLPgiMI6dY3sAZsFUJHPHZNMQXZTGLQ/aAhh4ejRiYlO8bWvm/MHWmRx84jgRub0WuEami1ZeBPFGg9Ql0G0Sl8eP/+3YfE5jZsG6aY1jJ2mVKIdIM88qU/5Q+vjvd1Kcpm4DtPW812qLYN5RyEtGewiwR+hiWvEW9W86neX4+6ERz8FHApXe29bhkeNPLK57cb8664yAP8oDEcbU9itZrOWQpe0zY4uBmFmRk2Kg6G6Qr2pJvzM8Sl+BaZo0abJBxATJYNPdoaUg0RcY1bSfoYmes3j3dX1M2yhikzaY2FtVshSTddCnjosdRYBWRH6FNie83KBsudGjrIx1QZx3085QoazlXtOl9SzmyjuR669g3gkmZDXzGNgcRUnzYbPFS0RaXjBH7IJ84vTZhFwadzQEeqY7psriGCC5gz9yWN3ryJvLAdalYxzQrOOnxJXPtydFRK0VOfjSGj5vYVLSpSuiBei6Ki2fMzIVQkp2SLh27xIt5T7x5FmDXPPfXxQuxZzzxR79Qy762p9el9jc+xiYPA9FlnzJXZJAn8CNHvH+9uf729u438bLFyzi5ANXS9iucHmQMpLWPDMElsqxQaDzpGXoqK+DaPBl1f/hTZ8TOGaSa3qF840ch3/LepSEYbW9vQ8ryybtjOfxKyLZoiKs3adqbQCOKYGDWe0cu6nYnomUSuVW5eYnPzTFuInV2GMe7/KCsGbjq48P2wLG+6wDAZvqcjqH5VOgPtq5ypoa7pAHkOUbZv2sh11EImhdr9PE799ErOFM72mTvRy30XbZJz0FN1mGYGQ30vcliN6shbelDBfAz6wW+eqc3/kvQM/iv3Z04sWb3y/+62QlPhfunPbDh6yepfGFf6SBQMAAA=";
|
|
81
|
+
|
|
82
|
+
// packages/safe-bash-command-python/src/native-wheel.ts
|
|
83
|
+
var decoded2;
|
|
84
|
+
function loadPythonNativeWheel() {
|
|
85
|
+
return decoded2 ??= new Response(new Blob([Uint8Array.from(atob(pythonNativeWheelGzip), (character) => character.charCodeAt(0))]).stream().pipeThrough(new DecompressionStream("gzip"))).text();
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
// packages/safe-bash-command-python/src/package-url-hash.ts
|
|
89
|
+
function pythonPackageUrlHash(url) {
|
|
90
|
+
const match = /(sha1|sha224|sha384|sha256|sha512|md5)=([a-f0-9]+)/.exec(url);
|
|
91
|
+
return match ? [match[1], match[2]] : void 0;
|
|
92
|
+
}
|
|
130
93
|
|
|
131
94
|
// packages/safe-bash-command-python/src/provisioning-runtime.ts
|
|
132
95
|
async function installPythonPackages(supplied, start, request, maxTransferBytes) {
|
|
@@ -179,7 +142,7 @@ async function installPythonPackages(supplied, start, request, maxTransferBytes)
|
|
|
179
142
|
try {
|
|
180
143
|
runtime.globals.set(globals[0], read);
|
|
181
144
|
runtime.globals.set(globals[1], JSON.stringify({ ...configuration, size }));
|
|
182
|
-
const result = JSON.parse(await runtime.runPythonAsync(
|
|
145
|
+
const result = JSON.parse(await runtime.runPythonAsync(await loadPythonNativeWheel()));
|
|
183
146
|
if (Array.isArray(result)) for (const path of result) await runtime._api.loadDynlib(path);
|
|
184
147
|
return result;
|
|
185
148
|
} finally {
|
|
@@ -236,14 +199,16 @@ async function installPythonPackages(supplied, start, request, maxTransferBytes)
|
|
|
236
199
|
installedGlobals.push(name);
|
|
237
200
|
};
|
|
238
201
|
try {
|
|
239
|
-
await loadPackages(["micropip"]);
|
|
202
|
+
await loadPackages(["micropip", ...start.bootstrapPackages ?? []]);
|
|
240
203
|
bind("_safe_package_native", loadPackages);
|
|
241
204
|
bind("_safe_package_bytes", async (url, hash) => (await fetch(url, hash)).bytes);
|
|
242
205
|
bind("_safe_package_metadata", async (url) => {
|
|
243
206
|
const result = await fetch(url, void 0, "metadata");
|
|
244
207
|
return JSON.stringify({ text: new TextDecoder().decode(result.bytes), headers: Object.fromEntries(result.headers.map(([name, value]) => [name.toLowerCase(), value])) });
|
|
245
208
|
});
|
|
246
|
-
bind("_safe_package_wheel_download", async (url, expected) => withArtifact(url, expected, void 0, async (opened) => {
|
|
209
|
+
bind("_safe_package_wheel_download", async (url, expected) => withArtifact(url, expected, void 0, async (opened, read) => {
|
|
210
|
+
const hash = pythonPackageUrlHash(url);
|
|
211
|
+
if (hash) await wheel(opened.size, read, { integrity: hash });
|
|
247
212
|
return JSON.stringify(await request("package-retain", start.session, opened.key));
|
|
248
213
|
}));
|
|
249
214
|
bind("_safe_package_wheel_metadata", async (serialized) => transfer(async () => {
|
|
@@ -279,303 +244,13 @@ async function installPythonPackages(supplied, start, request, maxTransferBytes)
|
|
|
279
244
|
}
|
|
280
245
|
return new TextDecoder().decode(Uint8Array.from(bytes));
|
|
281
246
|
});
|
|
282
|
-
await runtime.runPythonAsync(
|
|
283
|
-
import json as _safe_json
|
|
284
|
-
import importlib.metadata as _safe_metadata
|
|
285
|
-
_safe_preloaded = [d.metadata['Name'] for d in _safe_metadata.distributions() if d.metadata['Name']]
|
|
286
|
-
from micropip._compat import compatibility_layer as _safe_compat
|
|
287
|
-
from micropip.package_manager import PackageManager as _SafePackageManager
|
|
288
|
-
from micropip.wheelinfo import WheelInfo as _SafeWheelInfo
|
|
289
|
-
from micropip._utils import check_compatible as _safe_check_compatible
|
|
290
|
-
from micropip._vendored.packaging.src.packaging.requirements import Requirement as _SafeRequirement, InvalidRequirement as _SafeInvalidRequirement
|
|
291
|
-
from micropip._vendored.packaging.src.packaging.utils import canonicalize_name as _safe_name
|
|
292
|
-
|
|
293
|
-
class _SafePackageCompatibility(_safe_compat):
|
|
294
|
-
@staticmethod
|
|
295
|
-
async def loadPackage(names):
|
|
296
|
-
return await _safe_package_native(names)
|
|
297
|
-
@staticmethod
|
|
298
|
-
async def fetch_bytes(url, kwargs):
|
|
299
|
-
return (await _safe_package_bytes(url)).to_bytes()
|
|
300
|
-
@staticmethod
|
|
301
|
-
async def fetch_string_and_headers(url, kwargs):
|
|
302
|
-
value = _safe_json.loads(await _safe_package_metadata(url))
|
|
303
|
-
return value['text'], value['headers']
|
|
304
|
-
|
|
305
|
-
async def _safe_wheel_fetch(self, url, kwargs, compat):
|
|
306
|
-
expected = self.sha256 if url == self.url else None
|
|
307
|
-
if url == self.metadata_url and isinstance(self.core_metadata, dict):
|
|
308
|
-
expected = self.core_metadata.get('sha256')
|
|
309
|
-
return (await _safe_package_bytes(url, expected)).to_bytes()
|
|
310
|
-
_SafeWheelInfo._fetch_bytes = _safe_wheel_fetch
|
|
311
|
-
from micropip.metadata import Metadata as _SafeWheelMetadata
|
|
312
|
-
async def _safe_wheel_download(self, fetch_kwargs, compat_layer):
|
|
313
|
-
if self._data is not None:
|
|
314
|
-
return
|
|
315
|
-
self._data = _safe_json.loads(await _safe_package_wheel_download(self.url, self.sha256))
|
|
316
|
-
if self._metadata is None:
|
|
317
|
-
metadata = await _safe_package_wheel_metadata(_safe_json.dumps({'source': self._data, 'name': self.name}))
|
|
318
|
-
self._metadata = _SafeWheelMetadata(metadata.encode('utf-8'))
|
|
319
|
-
async def _safe_wheel_install(self, target, compat_layer):
|
|
320
|
-
if not self._data:
|
|
321
|
-
raise RuntimeError('Micropip internal error: attempted to install wheel before downloading it?')
|
|
322
|
-
source = 'pypi' if self.sha256 is not None else self.url
|
|
323
|
-
metadata = {'PYODIDE_SOURCE': source, 'PYODIDE_URL': self.url, 'PYODIDE_SHA256': self._data['key'], 'INSTALLER': 'micropip'}
|
|
324
|
-
if self._requires:
|
|
325
|
-
metadata['PYODIDE_REQUIRES'] = _safe_json.dumps(sorted(x.name for x in self._requires))
|
|
326
|
-
await _safe_package_wheel_install(_safe_json.dumps({'source': self._data, 'filename': self.filename, 'extract_dir': str(target), 'metadata': metadata}))
|
|
327
|
-
setattr(compat_layer.loadedPackages, self._project_name, source)
|
|
328
|
-
_SafeWheelInfo.download = _safe_wheel_download
|
|
329
|
-
_SafeWheelInfo.install = _safe_wheel_install
|
|
330
|
-
_safe_preloaded = {_safe_name(name) for name in _safe_preloaded}
|
|
331
|
-
_safe_manager = _SafePackageManager(_SafePackageCompatibility)
|
|
332
|
-
async def _safe_parse_sources(sources, download=True):
|
|
333
|
-
roots = []
|
|
334
|
-
for source in sources:
|
|
335
|
-
try:
|
|
336
|
-
root = _SafeRequirement(source)
|
|
337
|
-
if root.name.endswith('.whl'):
|
|
338
|
-
raise _SafeInvalidRequirement(source)
|
|
339
|
-
except _SafeInvalidRequirement:
|
|
340
|
-
wheel = _SafeWheelInfo.from_url(source)
|
|
341
|
-
root = _SafeRequirement(wheel.name + ' @ ' + source)
|
|
342
|
-
roots.append(root)
|
|
343
|
-
if (not root.marker or root.marker.evaluate({'extra': ''})) and root.url:
|
|
344
|
-
direct = _SafeWheelInfo.from_url(root.url)
|
|
345
|
-
_safe_check_compatible(direct.filename)
|
|
346
|
-
if download:
|
|
347
|
-
await direct.download({}, _SafePackageCompatibility)
|
|
348
|
-
return roots
|
|
349
|
-
|
|
350
|
-
def _safe_validate(roots):
|
|
351
|
-
for root in roots:
|
|
352
|
-
if root.marker and not root.marker.evaluate({'extra': ''}):
|
|
353
|
-
continue
|
|
354
|
-
version = _safe_metadata.version(root.name)
|
|
355
|
-
if not root.specifier.contains(version, prereleases=True):
|
|
356
|
-
raise ValueError('Python package version conflict: ' + str(root))
|
|
357
|
-
if root.url:
|
|
358
|
-
wheel = _SafeWheelInfo.from_url(root.url)
|
|
359
|
-
pin = _SafeRequirement(wheel.name + '==' + str(wheel.version))
|
|
360
|
-
if _safe_name(wheel.name) != _safe_name(root.name) or not pin.specifier.contains(version, prereleases=True):
|
|
361
|
-
raise ValueError('Python package wheel version conflict: ' + str(root))
|
|
362
|
-
async def _safe_resolve(_safe_roots, upgrade=False, force=False):
|
|
363
|
-
_safe_extras = {}
|
|
364
|
-
for _safe_root in _safe_roots:
|
|
365
|
-
if not _safe_root.marker or _safe_root.marker.evaluate({'extra': ''}):
|
|
366
|
-
_safe_extras.setdefault(_safe_name(_safe_root.name), set()).update(_safe_root.extras)
|
|
367
|
-
for _safe_root in _safe_roots:
|
|
368
|
-
_safe_root.extras.update(_safe_extras.get(_safe_name(_safe_root.name), set()))
|
|
369
|
-
_safe_requested_names = set(_safe_extras)
|
|
370
|
-
import micropip.package_manager as _safe_pm
|
|
371
|
-
_SafeTransaction = _safe_pm.Transaction
|
|
372
|
-
class _SafeReplacementTransaction(_SafeTransaction):
|
|
373
|
-
def check_version_satisfied(self, req, *, allow_reinstall=False):
|
|
374
|
-
if req.url:
|
|
375
|
-
wheel = _SafeWheelInfo.from_url(req.url)
|
|
376
|
-
if _safe_name(wheel.name) != req.name:
|
|
377
|
-
raise ValueError('Python package wheel name conflict: ' + str(req))
|
|
378
|
-
req = _SafeRequirement(req.name + '==' + str(wheel.version))
|
|
379
|
-
if req.name in _safe_preloaded or req.name in self.locked:
|
|
380
|
-
return super().check_version_satisfied(req)
|
|
381
|
-
if force or (upgrade and req.name in _safe_requested_names):
|
|
382
|
-
return False, ''
|
|
383
|
-
return super().check_version_satisfied(req, allow_reinstall=allow_reinstall)
|
|
384
|
-
async def _safe_install(requirements):
|
|
385
|
-
_safe_pm.Transaction = _SafeReplacementTransaction
|
|
386
|
-
try:
|
|
387
|
-
await _safe_manager.install(requirements, deps=True, pre=_safe_package_pre, reinstall=True)
|
|
388
|
-
finally:
|
|
389
|
-
_safe_pm.Transaction = _SafeTransaction
|
|
390
|
-
_safe_validate([root for root in _safe_roots if _safe_name(root.name) in _safe_preloaded])
|
|
391
|
-
await _safe_install([str(root) for root in _safe_roots])
|
|
392
|
-
_safe_managed = set(_safe_requested_names)
|
|
393
|
-
_safe_previous_pending = set()
|
|
394
|
-
while True:
|
|
395
|
-
_safe_distributions = [d for d in _safe_metadata.distributions() if d.metadata['Name']]
|
|
396
|
-
_safe_versions = {_safe_name(d.metadata['Name']): d.version for d in _safe_distributions}
|
|
397
|
-
while True:
|
|
398
|
-
_safe_changed = False
|
|
399
|
-
_safe_dependencies = []
|
|
400
|
-
for _safe_dist in _safe_distributions:
|
|
401
|
-
if _safe_name(_safe_dist.metadata['Name']) not in _safe_managed:
|
|
402
|
-
continue
|
|
403
|
-
_safe_contexts = {''} | _safe_extras.get(_safe_name(_safe_dist.metadata['Name']), set())
|
|
404
|
-
for _safe_dep in _safe_dist.requires or []:
|
|
405
|
-
_safe_requirement = _SafeRequirement(_safe_dep)
|
|
406
|
-
if _safe_requirement.marker and not any(_safe_requirement.marker.evaluate({'extra': extra}) for extra in _safe_contexts):
|
|
407
|
-
continue
|
|
408
|
-
_safe_requirement.marker = None
|
|
409
|
-
_safe_dependencies.append(_safe_requirement)
|
|
410
|
-
_safe_dependency_name = _safe_name(_safe_requirement.name)
|
|
411
|
-
if _safe_dependency_name not in _safe_managed:
|
|
412
|
-
_safe_managed.add(_safe_dependency_name)
|
|
413
|
-
_safe_changed = True
|
|
414
|
-
_safe_selected = _safe_extras.setdefault(_safe_name(_safe_requirement.name), set())
|
|
415
|
-
if not _safe_requirement.extras.issubset(_safe_selected):
|
|
416
|
-
_safe_selected.update(_safe_requirement.extras)
|
|
417
|
-
_safe_changed = True
|
|
418
|
-
if not _safe_changed:
|
|
419
|
-
break
|
|
420
|
-
_safe_pending = set()
|
|
421
|
-
for _safe_requirement in _safe_dependencies:
|
|
422
|
-
_safe_version = _safe_versions.get(_safe_name(_safe_requirement.name))
|
|
423
|
-
if _safe_version is None or not _safe_requirement.specifier.contains(_safe_version, prereleases=True):
|
|
424
|
-
_safe_pending.add(str(_safe_requirement))
|
|
425
|
-
if not _safe_pending:
|
|
426
|
-
break
|
|
427
|
-
if frozenset(_safe_pending) in _safe_previous_pending:
|
|
428
|
-
raise ValueError('Python package dependencies remain missing: ' + ', '.join(sorted(_safe_pending)))
|
|
429
|
-
_safe_previous_pending.add(frozenset(_safe_pending))
|
|
430
|
-
await _safe_install(sorted(_safe_pending))
|
|
431
|
-
_safe_validate(_safe_roots)
|
|
432
|
-
return _safe_managed
|
|
433
|
-
def _safe_removal_listing(_safe_dist):
|
|
434
|
-
from micropip._utils import get_files_in_distribution as _safe_distribution_files
|
|
435
|
-
import os as _safe_os
|
|
436
|
-
def _safe_compact(paths):
|
|
437
|
-
compact = []
|
|
438
|
-
for path in sorted(paths, key=len):
|
|
439
|
-
if not any(path.startswith(parent.rstrip('*').rstrip('/') + '/') for parent in compact):
|
|
440
|
-
compact.append(path)
|
|
441
|
-
return compact
|
|
442
|
-
_safe_files = {str(path) for path in _safe_distribution_files(_safe_dist) if not str(path).endswith('.pyc')}
|
|
443
|
-
_safe_folders = _safe_compact({_safe_os.path.dirname(path) for path in _safe_files if path.endswith('__init__.py') or '.dist-info' in path})
|
|
444
|
-
_safe_skipped = set()
|
|
445
|
-
for _safe_folder in _safe_folders:
|
|
446
|
-
for _safe_dir, _, _safe_names in _safe_os.walk(_safe_folder):
|
|
447
|
-
for _safe_name_ in _safe_names:
|
|
448
|
-
_safe_path = _safe_os.path.join(_safe_dir, _safe_name_)
|
|
449
|
-
if not _safe_name_.endswith('.pyc') and _safe_os.path.isfile(_safe_path) and _safe_path not in _safe_files:
|
|
450
|
-
_safe_skipped.add(_safe_path)
|
|
451
|
-
_safe_listing = set(_safe_files) | {_safe_os.path.join(folder, '*') for folder in _safe_folders}
|
|
452
|
-
return [sorted(_safe_compact(_safe_listing)), sorted(_safe_compact(_safe_skipped))]
|
|
453
|
-
_safe_uninstall = _safe_json.loads(_safe_package_uninstall_json)
|
|
454
|
-
_safe_records = _safe_json.loads(_safe_package_records_json)
|
|
455
|
-
_safe_metadata_only = _safe_uninstall is not None and _safe_records is not None
|
|
456
|
-
_safe_record_by_name = {}
|
|
457
|
-
_safe_snapshot_paths = {}
|
|
458
|
-
if _safe_records is not None:
|
|
459
|
-
for _safe_record in _safe_records:
|
|
460
|
-
_safe_record_name = _safe_record[0]
|
|
461
|
-
if _SafeRequirement(_safe_record_name).name != _safe_record_name or _safe_name(_safe_record_name) != _safe_record_name or _safe_record_name in _safe_record_by_name:
|
|
462
|
-
raise ValueError('Invalid Python package metadata snapshot')
|
|
463
|
-
_safe_record_by_name[_safe_record_name] = _safe_record
|
|
464
|
-
if _safe_metadata_only:
|
|
465
|
-
from pathlib import Path as _SafePath
|
|
466
|
-
import sysconfig as _safe_sysconfig
|
|
467
|
-
for _safe_record_name, _safe_record in _safe_record_by_name.items():
|
|
468
|
-
if _safe_record_name in _safe_preloaded:
|
|
469
|
-
continue
|
|
470
|
-
_safe_path = (_SafePath(_safe_sysconfig.get_path('purelib')) / (_safe_record_name.replace('-', '_') + '-snapshot.dist-info')).resolve()
|
|
471
|
-
_safe_path.mkdir()
|
|
472
|
-
(_safe_path / 'METADATA').write_text(_safe_record[1])
|
|
473
|
-
(_safe_path / 'PYODIDE_URL').write_text(_safe_record[2])
|
|
474
|
-
(_safe_path / 'RECORD').write_text('')
|
|
475
|
-
_safe_dist = _safe_metadata.Distribution.at(_safe_path)
|
|
476
|
-
if _safe_name(_safe_dist.metadata['Name']) != _safe_record_name:
|
|
477
|
-
raise ValueError('Python package metadata name conflict: ' + _safe_record_name)
|
|
478
|
-
_SafeRequirement(_safe_record_name + '==' + _safe_dist.version)
|
|
479
|
-
_safe_snapshot_paths[_safe_record_name] = str(_safe_path)
|
|
480
|
-
_safe_metadata.MetadataPathFinder.invalidate_caches()
|
|
481
|
-
_safe_restore = _safe_json.loads(_safe_package_restore_json)
|
|
482
|
-
_safe_restored_roots = await _safe_parse_sources(_safe_restore, not _safe_metadata_only)
|
|
483
|
-
if _safe_package_legacy:
|
|
484
|
-
_safe_restored_names = await _safe_resolve(_safe_restored_roots)
|
|
485
|
-
else:
|
|
486
|
-
if not _safe_metadata_only:
|
|
487
|
-
await _safe_manager.install(_safe_restore, deps=False)
|
|
488
|
-
_safe_validate(_safe_restored_roots)
|
|
489
|
-
_safe_restored_names = {_safe_name(root.name) for root in _safe_restored_roots if not root.marker or root.marker.evaluate({'extra': ''})}
|
|
490
|
-
if _safe_metadata_only and set(_safe_record_by_name) != _safe_restored_names:
|
|
491
|
-
raise ValueError('Python package metadata snapshot does not match installed requirements')
|
|
492
|
-
_safe_roots = await _safe_parse_sources(_safe_json.loads(_safe_package_requirements_json), not _safe_metadata_only)
|
|
493
|
-
if _safe_metadata_only:
|
|
494
|
-
for _safe_root in _safe_roots:
|
|
495
|
-
if _safe_root.url and _safe_name(_safe_root.name) in _safe_snapshot_paths:
|
|
496
|
-
_safe_wheel = _SafeWheelInfo.from_url(_safe_root.url)
|
|
497
|
-
if _safe_name(_safe_wheel.name) == _safe_name(_safe_root.name) and str(_safe_wheel.version) == _safe_metadata.version(_safe_root.name):
|
|
498
|
-
_safe_root.url = None
|
|
499
|
-
_safe_root.specifier = _SafeRequirement(_safe_root.name + '==' + str(_safe_wheel.version)).specifier
|
|
500
|
-
_safe_managed = await _safe_resolve(_safe_roots, _safe_package_upgrade, _safe_package_forceReinstall)
|
|
501
|
-
_safe_distributions = [d for d in _safe_metadata.distributions() if d.metadata['Name']]
|
|
502
|
-
_safe_versions = {_safe_name(d.metadata['Name']): d.version for d in _safe_distributions}
|
|
503
|
-
_safe_removed = []
|
|
504
|
-
if _safe_uninstall:
|
|
505
|
-
_safe_targets = list(dict.fromkeys(_safe_name(_SafeRequirement(source).name) for source in _safe_uninstall['packages']))
|
|
506
|
-
for _safe_target in _safe_targets:
|
|
507
|
-
if _safe_target in _safe_preloaded or _safe_target in _safe_managed:
|
|
508
|
-
raise ValueError('Cannot uninstall host-required Python package: ' + _safe_target)
|
|
509
|
-
for _safe_target in _safe_targets:
|
|
510
|
-
if _safe_target not in _safe_versions:
|
|
511
|
-
await _safe_package_emit('stderr', 'WARNING: Skipping ' + _safe_target + ' as it is not installed.\\n')
|
|
512
|
-
continue
|
|
513
|
-
_safe_dist = _safe_metadata.distribution(_safe_target)
|
|
514
|
-
_safe_version = _safe_dist.version
|
|
515
|
-
await _safe_package_emit('stdout', 'Found existing installation: ' + _safe_target + ' ' + _safe_version + '\\nUninstalling ' + _safe_target + '-' + _safe_version + ':\\n')
|
|
516
|
-
if not _safe_uninstall['yes']:
|
|
517
|
-
_safe_record = _safe_record_by_name.get(_safe_target)
|
|
518
|
-
_safe_lists = _safe_record[3:] if _safe_snapshot_paths.get(_safe_target) == str(_safe_dist._path) else _safe_removal_listing(_safe_dist)
|
|
519
|
-
for _safe_heading, _safe_paths in zip(['Would remove:', 'Would not remove (might be manually added):'], _safe_lists):
|
|
520
|
-
if _safe_paths:
|
|
521
|
-
await _safe_package_emit('stdout', ' ' + _safe_heading + '\\n')
|
|
522
|
-
for _safe_path in _safe_paths:
|
|
523
|
-
await _safe_package_emit('stdout', ' ' + _safe_path + '\\n')
|
|
524
|
-
while True:
|
|
525
|
-
await _safe_package_emit('stdout', 'Proceed (Y/n)? ')
|
|
526
|
-
_safe_answer = (await _safe_package_line()).strip().lower()
|
|
527
|
-
if _safe_answer in ('y', 'n', ''):
|
|
528
|
-
break
|
|
529
|
-
await _safe_package_emit('stdout', 'Your response (' + repr(_safe_answer) + ') was not one of the expected responses: y, n, \\n')
|
|
530
|
-
if _safe_answer == 'n':
|
|
531
|
-
continue
|
|
532
|
-
import logging as _safe_logging
|
|
533
|
-
_safe_logger = _safe_logging.getLogger('micropip')
|
|
534
|
-
_safe_disabled = _safe_logger.disabled
|
|
535
|
-
try:
|
|
536
|
-
_safe_logger.disabled = True
|
|
537
|
-
_safe_manager.uninstall([_safe_target])
|
|
538
|
-
finally:
|
|
539
|
-
_safe_logger.disabled = _safe_disabled
|
|
540
|
-
_safe_metadata.MetadataPathFinder.invalidate_caches()
|
|
541
|
-
try:
|
|
542
|
-
_safe_metadata.distribution(_safe_target)
|
|
543
|
-
except _safe_metadata.PackageNotFoundError:
|
|
544
|
-
pass
|
|
545
|
-
else:
|
|
546
|
-
raise ValueError('Python package removal did not complete: ' + _safe_target)
|
|
547
|
-
_safe_restored_names.discard(_safe_target)
|
|
548
|
-
_safe_removed.append(_safe_target + '-' + _safe_version)
|
|
549
|
-
_safe_distributions = [d for d in _safe_metadata.distributions() if d.metadata['Name']]
|
|
550
|
-
_safe_versions = {_safe_name(d.metadata['Name']): d.version for d in _safe_distributions}
|
|
551
|
-
_safe_uninstalled_json = _safe_json.dumps(_safe_removed)
|
|
552
|
-
_safe_managed.update(_safe_restored_names)
|
|
553
|
-
_safe_sources = []
|
|
554
|
-
_safe_final_records = []
|
|
555
|
-
for _safe_dist in _safe_distributions:
|
|
556
|
-
_safe_dist_name = _safe_name(_safe_dist.metadata['Name'])
|
|
557
|
-
if _safe_dist_name in _safe_managed:
|
|
558
|
-
_safe_origin = _safe_dist.read_text('PYODIDE_URL')
|
|
559
|
-
if _safe_origin:
|
|
560
|
-
_safe_sources.append(_safe_dist_name + ' @ ' + _safe_origin.strip())
|
|
561
|
-
if _safe_snapshot_paths.get(_safe_dist_name) == str(_safe_dist._path):
|
|
562
|
-
_safe_final_records.append(_safe_record_by_name[_safe_dist_name])
|
|
563
|
-
else:
|
|
564
|
-
_safe_headers = _safe_dist.metadata
|
|
565
|
-
_safe_metadata_text = ''.join(key + ': ' + value + '\\n' for key in ['Metadata-Version', 'Name', 'Version', 'Requires-Python', 'Requires-Dist', 'Provides-Extra'] for value in _safe_headers.get_all(key, []))
|
|
566
|
-
_safe_final_records.append([_safe_dist_name, _safe_metadata_text, (_safe_origin or '').strip(), *_safe_removal_listing(_safe_dist)])
|
|
567
|
-
_safe_installed_json = _safe_json.dumps(_safe_sources + [name + '==' + version for name, version in sorted(_safe_versions.items()) if name in _safe_managed])
|
|
568
|
-
_safe_records_json = _safe_json.dumps(_safe_final_records)
|
|
569
|
-
_safe_metadata.MetadataPathFinder.invalidate_caches()
|
|
570
|
-
import gc as _safe_gc
|
|
571
|
-
_safe_gc.collect()
|
|
572
|
-
`);
|
|
247
|
+
await runtime.runPythonAsync(await loadPythonPackageProgram());
|
|
573
248
|
await installing;
|
|
574
249
|
accepting = false;
|
|
575
250
|
await pending;
|
|
576
251
|
if (transportFailure) throw transportFailure.error;
|
|
577
252
|
const pinned = JSON.parse(runtime.runPython("_safe_installed_json"));
|
|
578
|
-
await request("package-commit", start.session, start.restore === void 0 ? pinned : { version:
|
|
253
|
+
await request("package-commit", start.session, start.restore === void 0 ? pinned : { version: 3, installed: pinned, records: JSON.parse(runtime.runPython("_safe_records_json")) });
|
|
579
254
|
if (start.uninstall) {
|
|
580
255
|
const removed = JSON.parse(runtime.runPython("_safe_uninstalled_json"));
|
|
581
256
|
for (const name of removed) {
|
|
@@ -724,6 +399,10 @@ def _safe_launch():
|
|
|
724
399
|
main = types.ModuleType('__main__')
|
|
725
400
|
main.__dict__.update(__package__=None, __spec__=None, __loader__=__import__('importlib.machinery', fromlist=['BuiltinImporter']).BuiltinImporter, __builtins__=__builtins__)
|
|
726
401
|
sys.modules['__main__'] = main
|
|
402
|
+
if not sys.flags.no_site:
|
|
403
|
+
sys.argv = [args[0]] + args[2:] if not options_terminated and args and args[0] in ('-c', '-m') else args or ['']
|
|
404
|
+
import site
|
|
405
|
+
site.addsitepackages(site.addusersitepackages(None), [_safe_runtime_mount])
|
|
727
406
|
if not options_terminated and args and args[0] == '-c':
|
|
728
407
|
sys.argv = ['-c'] + args[2:]
|
|
729
408
|
if not safe_path: sys.path.insert(0, '')
|
|
@@ -982,6 +661,7 @@ shutil._rmtree_impl = _safe_rmtree_impl
|
|
|
982
661
|
export {
|
|
983
662
|
PythonInvocationError,
|
|
984
663
|
parsePythonInvocation,
|
|
664
|
+
pythonPackageUrlHash,
|
|
985
665
|
installPythonPackages,
|
|
986
666
|
pythonExecution,
|
|
987
667
|
pythonRuntimeRelocation,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
validateColor
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-CH5JDE3C.js";
|
|
4
4
|
import {
|
|
5
5
|
attr,
|
|
6
6
|
child,
|
|
@@ -12,7 +12,7 @@ import {
|
|
|
12
12
|
relPart,
|
|
13
13
|
required,
|
|
14
14
|
unique
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-C23L4HZB.js";
|
|
16
16
|
import {
|
|
17
17
|
parseXmlPart
|
|
18
18
|
} from "./chunk-YWP62BAZ.js";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
openRetainedPresentationIndex
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-S3QYSI5E.js";
|
|
4
4
|
import {
|
|
5
5
|
stageRetainedOutput,
|
|
6
6
|
streamJson
|
|
@@ -10,13 +10,13 @@ import {
|
|
|
10
10
|
child,
|
|
11
11
|
invalid,
|
|
12
12
|
loadShared
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-C23L4HZB.js";
|
|
14
14
|
import {
|
|
15
15
|
SelectionError
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-I2OKE2NI.js";
|
|
17
17
|
import {
|
|
18
18
|
openRetainedPresentationValidation
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-ATUZ7J3B.js";
|
|
20
20
|
import {
|
|
21
21
|
OfficeError,
|
|
22
22
|
RetainedValues,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
openRetainedPresentationIndex
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-S3QYSI5E.js";
|
|
4
4
|
import {
|
|
5
5
|
stageRetainedOutput,
|
|
6
6
|
streamJson
|
|
@@ -14,13 +14,13 @@ import {
|
|
|
14
14
|
nextRel,
|
|
15
15
|
relPart,
|
|
16
16
|
required
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-C23L4HZB.js";
|
|
18
18
|
import {
|
|
19
19
|
SelectionError
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-I2OKE2NI.js";
|
|
21
21
|
import {
|
|
22
22
|
openRetainedPresentationValidation
|
|
23
|
-
} from "./chunk-
|
|
23
|
+
} from "./chunk-ATUZ7J3B.js";
|
|
24
24
|
import {
|
|
25
25
|
dialects
|
|
26
26
|
} from "./chunk-P3LHQOX7.js";
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
} from "./chunk-52DDLGBS.js";
|
|
4
4
|
import {
|
|
5
5
|
boundedCodec
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-CMJBRGU2.js";
|
|
7
7
|
|
|
8
8
|
// packages/safe-bash-compression-engine/src/zstd-decode.ts
|
|
9
9
|
import { PublicDiagnostic } from "../../safe-bash-contracts/diagnostics.js";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
requireLegacyCommentRemapping
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-N2TN7IBE.js";
|
|
4
4
|
import {
|
|
5
5
|
attr,
|
|
6
6
|
child,
|
|
@@ -9,11 +9,11 @@ import {
|
|
|
9
9
|
loadShared,
|
|
10
10
|
nextRel,
|
|
11
11
|
relPart
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-C23L4HZB.js";
|
|
13
13
|
import {
|
|
14
14
|
SelectionError,
|
|
15
15
|
decodeSelectionToken
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-I2OKE2NI.js";
|
|
17
17
|
import {
|
|
18
18
|
parseXmlPart
|
|
19
19
|
} from "./chunk-YWP62BAZ.js";
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import {
|
|
2
2
|
nodeFor
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-YODHIRPW.js";
|
|
4
4
|
import {
|
|
5
5
|
TextFrame,
|
|
6
6
|
applyFrameFormatting,
|
|
7
7
|
readShape
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-UQTU7H6T.js";
|
|
9
9
|
import {
|
|
10
10
|
Length
|
|
11
11
|
} from "./chunk-GNVAW6NL.js";
|
|
@@ -13,7 +13,7 @@ import {
|
|
|
13
13
|
attr,
|
|
14
14
|
child,
|
|
15
15
|
required
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-C23L4HZB.js";
|
|
17
17
|
import {
|
|
18
18
|
parseXmlPart
|
|
19
19
|
} from "./chunk-YWP62BAZ.js";
|
|
@@ -3,26 +3,26 @@ import {
|
|
|
3
3
|
readShapePath,
|
|
4
4
|
shapePathXml,
|
|
5
5
|
validateShapePath
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-3DH5QBZC.js";
|
|
7
7
|
import {
|
|
8
8
|
addShape,
|
|
9
9
|
nodeFor,
|
|
10
10
|
selected,
|
|
11
11
|
validateSelection
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-YODHIRPW.js";
|
|
13
13
|
import {
|
|
14
14
|
validateShapeOptions
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-UQTU7H6T.js";
|
|
16
16
|
import {
|
|
17
17
|
Length
|
|
18
18
|
} from "./chunk-GNVAW6NL.js";
|
|
19
19
|
import {
|
|
20
20
|
loadShared,
|
|
21
21
|
required
|
|
22
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-C23L4HZB.js";
|
|
23
23
|
import {
|
|
24
24
|
SelectionError
|
|
25
|
-
} from "./chunk-
|
|
25
|
+
} from "./chunk-I2OKE2NI.js";
|
|
26
26
|
import {
|
|
27
27
|
OfficeError
|
|
28
28
|
} from "./chunk-VJQ5OWS5.js";
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
import {
|
|
2
|
+
playwrightStorageAbilities
|
|
3
|
+
} from "./chunk-U6IEK2CI.js";
|
|
1
4
|
import {
|
|
2
5
|
playwrightTracingStart,
|
|
3
6
|
playwrightTracingStop
|
|
@@ -9,9 +12,6 @@ import {
|
|
|
9
12
|
playwrightRouteAbilities,
|
|
10
13
|
setPlaywrightNetworkState
|
|
11
14
|
} from "./chunk-PH6IMF5Z.js";
|
|
12
|
-
import {
|
|
13
|
-
playwrightStorageAbilities
|
|
14
|
-
} from "./chunk-HCJWEB6P.js";
|
|
15
15
|
import {
|
|
16
16
|
playwrightRecordingAbilities
|
|
17
17
|
} from "./chunk-XPUHDPMZ.js";
|