Even better PyEditor offline use case (#2050)

* Even better PyEditor offline use case

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
This commit is contained in:
Andrea Giammarchi
2024-05-07 10:02:55 +02:00
committed by GitHub
parent 9bd4737708
commit 8ec3381789
5 changed files with 74 additions and 71 deletions

View File

@@ -1,17 +1,17 @@
{
"name": "@pyscript/core",
"version": "0.4.27",
"version": "0.4.31",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@pyscript/core",
"version": "0.4.27",
"version": "0.4.31",
"license": "APACHE-2.0",
"dependencies": {
"@ungap/with-resolvers": "^0.1.0",
"basic-devtools": "^0.1.6",
"polyscript": "^0.12.7",
"polyscript": "^0.12.8",
"sticky-module": "^0.1.1",
"to-json-callback": "^0.1.1",
"type-checked-collections": "^0.1.7"
@@ -22,17 +22,17 @@
"@codemirror/language": "^6.10.1",
"@codemirror/state": "^6.4.1",
"@codemirror/view": "^6.26.3",
"@playwright/test": "^1.43.1",
"@playwright/test": "^1.44.0",
"@rollup/plugin-commonjs": "^25.0.7",
"@rollup/plugin-node-resolve": "^15.2.3",
"@rollup/plugin-terser": "^0.4.4",
"@webreflection/toml-j0.4": "^1.1.3",
"@xterm/addon-fit": "^0.10.0",
"@xterm/addon-web-links": "^0.11.0",
"bun": "^1.1.6",
"bun": "^1.1.7",
"chokidar": "^3.6.0",
"codemirror": "^6.0.1",
"eslint": "^9.1.1",
"eslint": "^9.2.0",
"rollup": "^4.17.2",
"rollup-plugin-postcss": "^4.0.2",
"rollup-plugin-string": "^3.0.0",
@@ -195,9 +195,9 @@
}
},
"node_modules/@eslint/js": {
"version": "9.1.1",
"resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.1.1.tgz",
"integrity": "sha512-5WoDz3Y19Bg2BnErkZTp0en+c/i9PvgFS7MBe1+m60HjFr0hrphlAGp4yzI7pxpt4xShln4ZyYp4neJm8hmOkQ==",
"version": "9.2.0",
"resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.2.0.tgz",
"integrity": "sha512-ESiIudvhoYni+MdsI8oD7skpprZ89qKocwRM2KEvhhBJ9nl5MRh7BXU5GTod7Mdygq+AUl+QzId6iWJKR/wABA==",
"dev": true,
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -378,9 +378,9 @@
}
},
"node_modules/@oven/bun-darwin-aarch64": {
"version": "1.1.6",
"resolved": "https://registry.npmjs.org/@oven/bun-darwin-aarch64/-/bun-darwin-aarch64-1.1.6.tgz",
"integrity": "sha512-1GQb0gugo/qndj5ehktgHRAoyCM5fWisbLEBLq6YorHTc71T5cqFWCQ6uPcfy3k9cxEDd8tUpejekyi8EsCxgw==",
"version": "1.1.7",
"resolved": "https://registry.npmjs.org/@oven/bun-darwin-aarch64/-/bun-darwin-aarch64-1.1.7.tgz",
"integrity": "sha512-6xH96IjcQlnbsGziUELOhewuobKyzcc+/mV1fSQkY8+c5crgca1nnArS8ja7GaduDWCGuSvMiURFUtf/EAZYtg==",
"cpu": [
"arm64"
],
@@ -391,9 +391,9 @@
]
},
"node_modules/@oven/bun-darwin-x64": {
"version": "1.1.6",
"resolved": "https://registry.npmjs.org/@oven/bun-darwin-x64/-/bun-darwin-x64-1.1.6.tgz",
"integrity": "sha512-NK8py4eJNkN6iNfvaM8pzmmNNNkbyzRvnc/pmrDLFPPfgJklJ2esm8OBCALDe9RvP1USDo8H1I4IXCtQQIu3SQ==",
"version": "1.1.7",
"resolved": "https://registry.npmjs.org/@oven/bun-darwin-x64/-/bun-darwin-x64-1.1.7.tgz",
"integrity": "sha512-VL0yT0rfdxU3NHts5aGjve1ui977BDJ9xb1Obw0LALWL4EzgQbiF8q8nUE6B25LwrQLzydUNTgMY0YYVLR2UkA==",
"cpu": [
"x64"
],
@@ -404,9 +404,9 @@
]
},
"node_modules/@oven/bun-darwin-x64-baseline": {
"version": "1.1.6",
"resolved": "https://registry.npmjs.org/@oven/bun-darwin-x64-baseline/-/bun-darwin-x64-baseline-1.1.6.tgz",
"integrity": "sha512-amG6o1y1ksjwOUKS97IW5VQE/UPfEa4Edket1+VUa0UGvo/0z3+2gVYF3Bt+pZA45glJKXM3nI9wYlmVeE/AcQ==",
"version": "1.1.7",
"resolved": "https://registry.npmjs.org/@oven/bun-darwin-x64-baseline/-/bun-darwin-x64-baseline-1.1.7.tgz",
"integrity": "sha512-oMKWmT5lqrnew/cmB+Mmuy/X7X0dBXnyJgsPp1RmV665u7UlNgRGncXhaW/EXlPJk4vaXh6UQQ8bLlg6mnQNgg==",
"cpu": [
"x64"
],
@@ -417,9 +417,9 @@
]
},
"node_modules/@oven/bun-linux-aarch64": {
"version": "1.1.6",
"resolved": "https://registry.npmjs.org/@oven/bun-linux-aarch64/-/bun-linux-aarch64-1.1.6.tgz",
"integrity": "sha512-FOlZBeIrk7DlOsktWwahmxJwaKxCG9C+pKPMj8s+u08WhAKtfMBpgHvHsilBKE9W1twta+jB+geW4kU1KZSNZg==",
"version": "1.1.7",
"resolved": "https://registry.npmjs.org/@oven/bun-linux-aarch64/-/bun-linux-aarch64-1.1.7.tgz",
"integrity": "sha512-/oVeD+f4S2tfIoKXVALuQv68k9O/91aMRCJ8+TlnVvZgZEpE6xdtbrSa+iP1wbAvBUy9ags0AgQOJg1QJzK/ow==",
"cpu": [
"arm64"
],
@@ -430,9 +430,9 @@
]
},
"node_modules/@oven/bun-linux-x64": {
"version": "1.1.6",
"resolved": "https://registry.npmjs.org/@oven/bun-linux-x64/-/bun-linux-x64-1.1.6.tgz",
"integrity": "sha512-PN/5XSPCWCuIgOEhxWfx5ViVEY9ZfpEpJkadDiZi9IY17mb/aZVvt0Lll4doe6B7hjbglb1nI++GXcpqU/fonw==",
"version": "1.1.7",
"resolved": "https://registry.npmjs.org/@oven/bun-linux-x64/-/bun-linux-x64-1.1.7.tgz",
"integrity": "sha512-b+yTqZREacwPXcsg6/ps+qAZ/rlyuRztzptX6oNnc42+xd7BpdvKpdu2p8hbN0IoKBMqlAqFedffxFimIOMWFA==",
"cpu": [
"x64"
],
@@ -443,9 +443,9 @@
]
},
"node_modules/@oven/bun-linux-x64-baseline": {
"version": "1.1.6",
"resolved": "https://registry.npmjs.org/@oven/bun-linux-x64-baseline/-/bun-linux-x64-baseline-1.1.6.tgz",
"integrity": "sha512-a/Wx5ZTl0BDq9WH5nJfl8rw0YX5/dWmxmy3pYki6EBbwjcsA8iMzjkRpp5k8NEV2SpyaDMdS+xCb/HiaO4RWoQ==",
"version": "1.1.7",
"resolved": "https://registry.npmjs.org/@oven/bun-linux-x64-baseline/-/bun-linux-x64-baseline-1.1.7.tgz",
"integrity": "sha512-JklT4tgXi83nDyPLcWEfHxLKQnJdtpHG9sSOxpke6TlBwnj84lXbZ+CWhQL/aL9ye1lCTUjEIEbbZph8IhWlWg==",
"cpu": [
"x64"
],
@@ -456,9 +456,9 @@
]
},
"node_modules/@oven/bun-windows-x64": {
"version": "1.1.6",
"resolved": "https://registry.npmjs.org/@oven/bun-windows-x64/-/bun-windows-x64-1.1.6.tgz",
"integrity": "sha512-knJePhYbqtYv5RNUrnkMFrK4z3dDIPzom402yjSLkESZhsnO16xtLkULocV2yk0KDXKo2C3BqoZKHATCK6LxqQ==",
"version": "1.1.7",
"resolved": "https://registry.npmjs.org/@oven/bun-windows-x64/-/bun-windows-x64-1.1.7.tgz",
"integrity": "sha512-y8qrlwv09UIYKEm9+X1KzHHtaudWWWn7GGwSqCT6c7XYfR70fbnriyCm2i0qUAUTmgtuhY7dwFtAKf1UkQJ2SQ==",
"cpu": [
"x64"
],
@@ -469,9 +469,9 @@
]
},
"node_modules/@oven/bun-windows-x64-baseline": {
"version": "1.1.6",
"resolved": "https://registry.npmjs.org/@oven/bun-windows-x64-baseline/-/bun-windows-x64-baseline-1.1.6.tgz",
"integrity": "sha512-8VVPdKTYEsQPwlCasLWmTsHPcC9om9FaZlH9j7Gs9jBYje3FDXMyLI3DalVQ/VBY+uwQ8qoXhtDrh83nLuawhA==",
"version": "1.1.7",
"resolved": "https://registry.npmjs.org/@oven/bun-windows-x64-baseline/-/bun-windows-x64-baseline-1.1.7.tgz",
"integrity": "sha512-DkclScCfTR8YsNMATn2WVqbIf8cyD/UhIdFa4/R0Qsf+C1BB9jPquXoogSrAUJJyPMSbkBf2KshlROiFjYrjkw==",
"cpu": [
"x64"
],
@@ -482,12 +482,12 @@
]
},
"node_modules/@playwright/test": {
"version": "1.43.1",
"resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.43.1.tgz",
"integrity": "sha512-HgtQzFgNEEo4TE22K/X7sYTYNqEMMTZmFS8kTq6m8hXj+m1D8TgwgIbumHddJa9h4yl4GkKb8/bgAl2+g7eDgA==",
"version": "1.44.0",
"resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.44.0.tgz",
"integrity": "sha512-rNX5lbNidamSUorBhB4XZ9SQTjAqfe5M+p37Z8ic0jPFBMo5iCtQz1kRWkEMg+rYOKSlVycpQmpqjSFq7LXOfg==",
"dev": true,
"dependencies": {
"playwright": "1.43.1"
"playwright": "1.44.0"
},
"bin": {
"playwright": "cli.js"
@@ -1044,9 +1044,9 @@
}
},
"node_modules/bun": {
"version": "1.1.6",
"resolved": "https://registry.npmjs.org/bun/-/bun-1.1.6.tgz",
"integrity": "sha512-0oKx5dVZ8LpsAvXdW2DTR5Zt3KS81Ifjx9T2ma7RjDPKbvGIlDXOPt++tr1SndxhFNFsMFeE4i6VKvlL7IR0Zw==",
"version": "1.1.7",
"resolved": "https://registry.npmjs.org/bun/-/bun-1.1.7.tgz",
"integrity": "sha512-4Q/ySjXfSTOsehxektQuo376FfI/QMPSjnsBAwQAZsRFW37Hb8IdctOABDEBQcrYmiwgDGKlgdWTQ8/5H0N2ww==",
"cpu": [
"arm64",
"x64"
@@ -1063,14 +1063,14 @@
"bunx": "bin/bun.exe"
},
"optionalDependencies": {
"@oven/bun-darwin-aarch64": "1.1.6",
"@oven/bun-darwin-x64": "1.1.6",
"@oven/bun-darwin-x64-baseline": "1.1.6",
"@oven/bun-linux-aarch64": "1.1.6",
"@oven/bun-linux-x64": "1.1.6",
"@oven/bun-linux-x64-baseline": "1.1.6",
"@oven/bun-windows-x64": "1.1.6",
"@oven/bun-windows-x64-baseline": "1.1.6"
"@oven/bun-darwin-aarch64": "1.1.7",
"@oven/bun-darwin-x64": "1.1.7",
"@oven/bun-darwin-x64-baseline": "1.1.7",
"@oven/bun-linux-aarch64": "1.1.7",
"@oven/bun-linux-x64": "1.1.7",
"@oven/bun-linux-x64-baseline": "1.1.7",
"@oven/bun-windows-x64": "1.1.7",
"@oven/bun-windows-x64-baseline": "1.1.7"
}
},
"node_modules/callsites": {
@@ -1548,15 +1548,15 @@
}
},
"node_modules/eslint": {
"version": "9.1.1",
"resolved": "https://registry.npmjs.org/eslint/-/eslint-9.1.1.tgz",
"integrity": "sha512-b4cRQ0BeZcSEzPpY2PjFY70VbO32K7BStTGtBsnIGdTSEEQzBi8hPBcGQmTG2zUvFr9uLe0TK42bw8YszuHEqg==",
"version": "9.2.0",
"resolved": "https://registry.npmjs.org/eslint/-/eslint-9.2.0.tgz",
"integrity": "sha512-0n/I88vZpCOzO+PQpt0lbsqmn9AsnsJAQseIqhZFI8ibQT0U1AkEKRxA3EVMos0BoHSXDQvCXY25TUjB5tr8Og==",
"dev": true,
"dependencies": {
"@eslint-community/eslint-utils": "^4.2.0",
"@eslint-community/regexpp": "^4.6.1",
"@eslint/eslintrc": "^3.0.2",
"@eslint/js": "9.1.1",
"@eslint/js": "9.2.0",
"@humanwhocodes/config-array": "^0.13.0",
"@humanwhocodes/module-importer": "^1.0.1",
"@humanwhocodes/retry": "^0.2.3",
@@ -2556,12 +2556,12 @@
"integrity": "sha512-yyVAOFKTAElc7KdLt2+UKGExNYwYb/Y/WE9i+1ezCQsJE8gbKSjewfpRqK2nQgZ4d4hhAAGgDCOcIZVilqE5UA=="
},
"node_modules/playwright": {
"version": "1.43.1",
"resolved": "https://registry.npmjs.org/playwright/-/playwright-1.43.1.tgz",
"integrity": "sha512-V7SoH0ai2kNt1Md9E3Gwas5B9m8KR2GVvwZnAI6Pg0m3sh7UvgiYhRrhsziCmqMJNouPckiOhk8T+9bSAK0VIA==",
"version": "1.44.0",
"resolved": "https://registry.npmjs.org/playwright/-/playwright-1.44.0.tgz",
"integrity": "sha512-F9b3GUCLQ3Nffrfb6dunPOkE5Mh68tR7zN32L4jCk4FjQamgesGay7/dAAe1WaMEGV04DkdJfcJzjoCKygUaRQ==",
"dev": true,
"dependencies": {
"playwright-core": "1.43.1"
"playwright-core": "1.44.0"
},
"bin": {
"playwright": "cli.js"
@@ -2574,9 +2574,9 @@
}
},
"node_modules/playwright-core": {
"version": "1.43.1",
"resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.43.1.tgz",
"integrity": "sha512-EI36Mto2Vrx6VF7rm708qSnesVQKbxEWvPrfA1IPY6HgczBplDx7ENtx+K2n4kJ41sLLkuGfmb0ZLSSXlDhqPg==",
"version": "1.44.0",
"resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.44.0.tgz",
"integrity": "sha512-ZTbkNpFfYcGWohvTTl+xewITm7EOuqIqex0c7dNZ+aXsbrLj0qI8XlGKfPpipjm0Wny/4Lt4CJsWJk1stVS5qQ==",
"dev": true,
"bin": {
"playwright-core": "cli.js"
@@ -2600,9 +2600,9 @@
}
},
"node_modules/polyscript": {
"version": "0.12.7",
"resolved": "https://registry.npmjs.org/polyscript/-/polyscript-0.12.7.tgz",
"integrity": "sha512-Aaw/UCFNEuBkEcT00wok8ks+llVINunx98x4FdXZueUlFsr5+B41OVV3DptsJ3+7tzjqmJwhxe7cBTpMolLG/Q==",
"version": "0.12.8",
"resolved": "https://registry.npmjs.org/polyscript/-/polyscript-0.12.8.tgz",
"integrity": "sha512-kcG3W9jU/s1sYjWOTAa2jAh5D2jm3zJRi+glSTsC+lA3D1b/Sd67pEIGpyL9bWNKYSimqAx4se6jAhQjJZ7+jQ==",
"dependencies": {
"@ungap/structured-clone": "^1.2.0",
"@ungap/with-resolvers": "^0.1.0",

View File

@@ -1,6 +1,6 @@
{
"name": "@pyscript/core",
"version": "0.4.27",
"version": "0.4.31",
"type": "module",
"description": "PyScript",
"module": "./index.js",
@@ -43,7 +43,7 @@
"dependencies": {
"@ungap/with-resolvers": "^0.1.0",
"basic-devtools": "^0.1.6",
"polyscript": "^0.12.7",
"polyscript": "^0.12.8",
"sticky-module": "^0.1.1",
"to-json-callback": "^0.1.1",
"type-checked-collections": "^0.1.7"
@@ -54,17 +54,17 @@
"@codemirror/language": "^6.10.1",
"@codemirror/state": "^6.4.1",
"@codemirror/view": "^6.26.3",
"@playwright/test": "^1.43.1",
"@playwright/test": "^1.44.0",
"@rollup/plugin-commonjs": "^25.0.7",
"@rollup/plugin-node-resolve": "^15.2.3",
"@rollup/plugin-terser": "^0.4.4",
"@webreflection/toml-j0.4": "^1.1.3",
"@xterm/addon-fit": "^0.10.0",
"@xterm/addon-web-links": "^0.11.0",
"bun": "^1.1.6",
"bun": "^1.1.7",
"chokidar": "^3.6.0",
"codemirror": "^6.0.1",
"eslint": "^9.1.1",
"eslint": "^9.2.0",
"rollup": "^4.17.2",
"rollup-plugin-postcss": "^4.0.2",
"rollup-plugin-string": "^3.0.0",

View File

@@ -84,6 +84,9 @@ export {
exportedWhenDefined as whenDefined,
};
export const offline_interpreter = (config) =>
config?.interpreter && new URL(config.interpreter, location.href).href;
const hooked = new Map();
for (const [TYPE, interpreter] of TYPES) {
@@ -294,7 +297,7 @@ for (const [TYPE, interpreter] of TYPES) {
interpreter,
hooks,
env: `${TYPE}-script`,
version: config?.interpreter,
version: offline_interpreter(config),
onerror(error, element) {
errors.set(element, error);
},

View File

@@ -1,6 +1,6 @@
// PyScript py-editor plugin
import { Hook, XWorker, dedent } from "polyscript/exports";
import { TYPES, stdlib } from "../core.js";
import { TYPES, offline_interpreter, stdlib } from "../core.js";
const RUN_BUTTON = `<svg style="height:20px;width:20px;vertical-align:-.125em;transform-origin:center;overflow:visible;color:green" viewBox="0 0 384 512" aria-hidden="true" role="img" xmlns="http://www.w3.org/2000/svg"><g transform="translate(192 256)" transform-origin="96 0"><g transform="translate(0,0) scale(1,1)"><path d="M361 215C375.3 223.8 384 239.3 384 256C384 272.7 375.3 288.2 361 296.1L73.03 472.1C58.21 482 39.66 482.4 24.52 473.9C9.377 465.4 0 449.4 0 432V80C0 62.64 9.377 46.63 24.52 38.13C39.66 29.64 58.21 29.99 73.03 39.04L361 215z" fill="currentColor" transform="translate(-192 -256)"></path></g></g></svg>`;
@@ -42,8 +42,7 @@ async function execute({ currentTarget }) {
? await import(/* webpackIgnore: true */ "../3rd-party/toml.js")
: JSON;
details.config = parse(await fetch(config).then((r) => r.text()));
const { interpreter } = details.config;
if (interpreter) details.version = interpreter;
details.version = offline_interpreter(details.config);
}
const xworker = XWorker.call(new Hook(null, hooks), srcLink, details);

View File

@@ -1,3 +1,4 @@
export function offline_interpreter(config: any): string;
import { stdlib } from "./stdlib.js";
import { optional } from "./stdlib.js";
import TYPES from "./types.js";