From 8ec33817896290ea505f40d128bfb36927d49a58 Mon Sep 17 00:00:00 2001 From: Andrea Giammarchi Date: Tue, 7 May 2024 10:02:55 +0200 Subject: [PATCH] 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> --- pyscript.core/package-lock.json | 124 ++++++++++++------------- pyscript.core/package.json | 10 +- pyscript.core/src/core.js | 5 +- pyscript.core/src/plugins/py-editor.js | 5 +- pyscript.core/types/core.d.ts | 1 + 5 files changed, 74 insertions(+), 71 deletions(-) diff --git a/pyscript.core/package-lock.json b/pyscript.core/package-lock.json index eecbd82a..eb9b483d 100644 --- a/pyscript.core/package-lock.json +++ b/pyscript.core/package-lock.json @@ -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", diff --git a/pyscript.core/package.json b/pyscript.core/package.json index 95d5cd74..aa27e4af 100644 --- a/pyscript.core/package.json +++ b/pyscript.core/package.json @@ -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", diff --git a/pyscript.core/src/core.js b/pyscript.core/src/core.js index fb7092ab..735d9c56 100644 --- a/pyscript.core/src/core.js +++ b/pyscript.core/src/core.js @@ -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); }, diff --git a/pyscript.core/src/plugins/py-editor.js b/pyscript.core/src/plugins/py-editor.js index ee5ed5c3..47be2b08 100644 --- a/pyscript.core/src/plugins/py-editor.js +++ b/pyscript.core/src/plugins/py-editor.js @@ -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 = ``; @@ -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); diff --git a/pyscript.core/types/core.d.ts b/pyscript.core/types/core.d.ts index 629011e3..0b3f20b6 100644 --- a/pyscript.core/types/core.d.ts +++ b/pyscript.core/types/core.d.ts @@ -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";