@pyscript/core 0.6.21 → 0.6.22
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/{core-DGaA3hN0.js → core-D4Jmc4DU.js} +3 -3
- package/dist/{core-DGaA3hN0.js.map → core-D4Jmc4DU.js.map} +1 -1
- package/dist/core.js +1 -1
- package/dist/{deprecations-manager-CbBAEKRj.js → deprecations-manager-C_3dTNm2.js} +2 -2
- package/dist/{deprecations-manager-CbBAEKRj.js.map → deprecations-manager-C_3dTNm2.js.map} +1 -1
- package/dist/donkey-DrzEWswa.js +2 -0
- package/dist/donkey-DrzEWswa.js.map +1 -0
- package/dist/{error-BM4jMxA7.js → error-CkUvEZTz.js} +2 -2
- package/dist/{error-BM4jMxA7.js.map → error-CkUvEZTz.js.map} +1 -1
- package/dist/{mpy-CTF2azbQ.js → mpy-B3O9W3U4.js} +2 -2
- package/dist/{mpy-CTF2azbQ.js.map → mpy-B3O9W3U4.js.map} +1 -1
- package/dist/{py-CyhUGZCa.js → py-CspskKMo.js} +2 -2
- package/dist/{py-CyhUGZCa.js.map → py-CspskKMo.js.map} +1 -1
- package/dist/{py-editor-mP_gi_qg.js → py-editor-79YVhieR.js} +2 -2
- package/dist/{py-editor-mP_gi_qg.js.map → py-editor-79YVhieR.js.map} +1 -1
- package/dist/{py-terminal-gpnjFmCg.js → py-terminal-COxFKASq.js} +2 -2
- package/dist/{py-terminal-gpnjFmCg.js.map → py-terminal-COxFKASq.js.map} +1 -1
- package/dist/storage.js.map +1 -1
- package/package.json +3 -3
- package/src/plugins/donkey.js +2 -1
- package/dist/donkey-BLrRWEiy.js +0 -2
- package/dist/donkey-BLrRWEiy.js.map +0 -1
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@pyscript/core",
|
3
|
-
"version": "0.6.
|
3
|
+
"version": "0.6.22",
|
4
4
|
"type": "module",
|
5
5
|
"description": "PyScript",
|
6
6
|
"module": "./index.js",
|
@@ -63,7 +63,7 @@
|
|
63
63
|
"add-promise-listener": "^0.1.3",
|
64
64
|
"basic-devtools": "^0.1.6",
|
65
65
|
"polyscript": "^0.16.10",
|
66
|
-
"sabayon": "^0.6.
|
66
|
+
"sabayon": "^0.6.1",
|
67
67
|
"sticky-module": "^0.1.1",
|
68
68
|
"to-json-callback": "^0.1.1",
|
69
69
|
"type-checked-collections": "^0.1.7"
|
@@ -88,7 +88,7 @@
|
|
88
88
|
"codemirror": "^6.0.1",
|
89
89
|
"eslint": "^9.16.0",
|
90
90
|
"flatted": "^3.3.2",
|
91
|
-
"rollup": "^4.28.
|
91
|
+
"rollup": "^4.28.1",
|
92
92
|
"rollup-plugin-postcss": "^4.0.2",
|
93
93
|
"rollup-plugin-string": "^3.0.0",
|
94
94
|
"static-handler": "^0.5.3",
|
package/src/plugins/donkey.js
CHANGED
@@ -6,7 +6,8 @@ const { stringify } = JSON;
|
|
6
6
|
const invoke = (name, args) => `${name}(code, ${args.join(", ")})`;
|
7
7
|
|
8
8
|
const donkey = ({ type = "py", persistent, terminal, config }) => {
|
9
|
-
const
|
9
|
+
const globals = terminal ? '{"__terminal__":__terminal__}' : "{}";
|
10
|
+
const args = persistent ? ["globals()", "__locals__"] : [globals, "{}"];
|
10
11
|
|
11
12
|
const src = URL.createObjectURL(
|
12
13
|
new Blob([
|
package/dist/donkey-BLrRWEiy.js
DELETED
@@ -1,2 +0,0 @@
|
|
1
|
-
import{a as e,g as t}from"./core-DGaA3hN0.js";const{get:r}=Reflect,a=["preventDefault","stopPropagation","stopImmediatePropagation"],n={once:!0};class o{#e;constructor(e){this.#e=e}get(e,t){return"currentTarget"===t?this.#e:((e,t)=>"function"==typeof t?t.bind(e):t)(e,r(e,t))}}const{stringify:s}=JSON,c=(e,t)=>`${e}(code, ${t.join(", ")})`,i=({type:e="py",persistent:r,terminal:i,config:l})=>{const _=r?["globals()","__locals__"]:["{}","{}"],u=URL.createObjectURL(new Blob([["from pyscript import sync, config",'__message__ = lambda e,v: f"[31m[1m{e.__name__}[0m: {v}"',"__locals__ = {}",'if config["type"] == "py":',"\timport sys","\tdef __error__(_):","\t\tinfo = sys.exc_info()","\t\treturn __message__(info[0], info[1])","else:","\t__error__ = lambda e: __message__(e.__class__, e.value)","def execute(code):",`\ttry: return ${c("exec",_)};`,"\texcept Exception as e: print(__error__(e));","def evaluate(code):",`\ttry: return ${c("eval",_)};`,"\texcept Exception as e: print(__error__(e));","sync.execute = execute","sync.evaluate = evaluate"].join("\n")])),p=t(document.createElement("script"),{type:e,src:u});return p.toggleAttribute("worker",!0),p.toggleAttribute("terminal",!0),i&&p.setAttribute("target",i),l&&p.setAttribute("config","string"==typeof l?l:s(l)),((e,t,r=null)=>new Promise(((s,c)=>{const i=new o(e);if(r.signal){const e=e=>c(new Proxy(e,i));if(r.signal.addEventListener("abort",e,n),r.signal.aborted)return r.signal.dispatchEvent(new Event("abort"))}e.addEventListener(t,(e=>{for(const t of a)r[t]&&e[t]();s(new Proxy(e,i))}),{...r,...n})})))(document.body.appendChild(p),`${e}:done`,{stopPropagation:!0}).then((()=>(URL.revokeObjectURL(u),p)))},l=async e=>{const t=await i(e),{xworker:r,process:a,terminal:n}=t,{execute:o,evaluate:s}=r.sync;return t.remove(),{xworker:r,process:a,terminal:n,execute:o,evaluate:s}};var _=async(t={})=>{let r=await l(t),a=!1;const n=()=>{r&&(r.xworker.terminate(),r.terminal.dispose(),r=null),a=!1},o=async()=>{n(),r=await l(t)},s=t=>async n=>{a&&await o(),a=!0;try{return await r[t](e(n))}catch(e){console.error(e)}finally{a=!1}},c=e=>async()=>{a?await o():r?.terminal[e]()};return{process:s("process"),execute:s("execute"),evaluate:s("evaluate"),clear:c("clear"),reset:c("reset"),kill:n}};export{_ as default};
|
2
|
-
//# sourceMappingURL=donkey-BLrRWEiy.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"donkey-BLrRWEiy.js","sources":["../node_modules/add-promise-listener/index.js","../src/plugins/donkey.js"],"sourcesContent":["const { defineProperty } = Object;\nconst { get } = Reflect;\n\nconst methods = [\n 'preventDefault',\n 'stopPropagation',\n 'stopImmediatePropagation',\n];\n\nconst once = { once: true };\n\n// avoid event.preventDefault throwing due illegal Proxy invocation\nconst bound = (e, value) => typeof value === 'function' ? value.bind(e) : value;\n\n// traps the `event.currentTarget` to be sure it's available later on\nclass Handler {\n #currentTarget;\n constructor(currentTarget) {\n this.#currentTarget = currentTarget;\n }\n get(e, name) {\n // Did you know? event.currentTarget disappears from events on\n // next tick, which is why this proxy handler needs to exist.\n return name === 'currentTarget' ? this.#currentTarget : bound(e, get(e, name));\n }\n}\n\n/**\n * Add a listener that result as a Promise, fulfilled when the event happens once or rejected if the optional provided signal is aborted.\n * @param {Element} element\n * @param {string} type\n * @param {{ signal?:AbortSignal, capture?:boolean, passive?:boolean, preventDefault?:boolean, stopPropagation?:boolean, stopImmediatePropagation?:boolean }?} options\n * @returns {Promise<Event,Event>}\n */\nexport default (element, type, options = null) => new Promise(\n (resolve, reject) => {\n const handler = new Handler(element);\n if (options.signal) {\n const abort = event => reject(new Proxy(event, handler));\n options.signal.addEventListener('abort', abort, once);\n if (options.signal.aborted)\n return options.signal.dispatchEvent(new Event('abort'));\n }\n element.addEventListener(\n type,\n (event) => {\n for (const method of methods) {\n if (options[method]) event[method]();\n }\n resolve(new Proxy(event, handler));\n },\n { ...options, ...once }\n );\n }\n);\n","import addPromiseListener from \"add-promise-listener\";\nimport { assign, dedent } from \"polyscript/exports\";\n\nconst { stringify } = JSON;\n\nconst invoke = (name, args) => `${name}(code, ${args.join(\", \")})`;\n\nconst donkey = ({ type = \"py\", persistent, terminal, config }) => {\n const args = persistent ? [\"globals()\", \"__locals__\"] : [\"{}\", \"{}\"];\n\n const src = URL.createObjectURL(\n new Blob([\n [\n // this array is to better minify this code once in production\n \"from pyscript import sync, config\",\n '__message__ = lambda e,v: f\"\\x1b[31m\\x1b[1m{e.__name__}\\x1b[0m: {v}\"',\n \"__locals__ = {}\",\n 'if config[\"type\"] == \"py\":',\n \"\timport sys\",\n \"\tdef __error__(_):\",\n \"\t\tinfo = sys.exc_info()\",\n \"\t\treturn __message__(info[0], info[1])\",\n \"else:\",\n \"\t__error__ = lambda e: __message__(e.__class__, e.value)\",\n \"def execute(code):\",\n `\ttry: return ${invoke(\"exec\", args)};`,\n \"\texcept Exception as e: print(__error__(e));\",\n \"def evaluate(code):\",\n `\ttry: return ${invoke(\"eval\", args)};`,\n \"\texcept Exception as e: print(__error__(e));\",\n \"sync.execute = execute\",\n \"sync.evaluate = evaluate\",\n ].join(\"\\n\"),\n ]),\n );\n\n // create the script that exposes the code to execute or evaluate\n const script = assign(document.createElement(\"script\"), { type, src });\n script.toggleAttribute(\"worker\", true);\n script.toggleAttribute(\"terminal\", true);\n if (terminal) script.setAttribute(\"target\", terminal);\n if (config) {\n script.setAttribute(\n \"config\",\n typeof config === \"string\" ? config : stringify(config),\n );\n }\n\n return addPromiseListener(\n document.body.appendChild(script),\n `${type}:done`,\n { stopPropagation: true },\n ).then(() => {\n URL.revokeObjectURL(src);\n return script;\n });\n};\n\nconst utils = async (options) => {\n const script = await donkey(options);\n const { xworker, process, terminal } = script;\n const { execute, evaluate } = xworker.sync;\n script.remove();\n return {\n xworker,\n process,\n terminal,\n execute,\n evaluate,\n };\n};\n\nexport default async (options = {}) => {\n let farmer = await utils(options);\n let working = false;\n const kill = () => {\n if (farmer) {\n farmer.xworker.terminate();\n farmer.terminal.dispose();\n farmer = null;\n }\n working = false;\n };\n const reload = async () => {\n kill();\n farmer = await utils(options);\n };\n const asyncTask = (method) => async (code) => {\n // race condition ... a new task has been\n // assigned while the previous one didn't finish\n if (working) await reload();\n working = true;\n try {\n return await farmer[method](dedent(code));\n } catch (e) {\n console.error(e);\n } finally {\n working = false;\n }\n };\n const asyncMethod = (method) => async () => {\n if (working) await reload();\n else farmer?.terminal[method]();\n };\n return {\n process: asyncTask(\"process\"),\n execute: asyncTask(\"execute\"),\n evaluate: asyncTask(\"evaluate\"),\n clear: asyncMethod(\"clear\"),\n reset: asyncMethod(\"reset\"),\n kill,\n };\n};\n"],"names":["get","Reflect","methods","once","Handler","currentTarget","constructor","this","e","name","value","bind","bound","stringify","JSON","invoke","args","join","donkey","type","persistent","terminal","config","src","URL","createObjectURL","Blob","script","assign","document","createElement","toggleAttribute","setAttribute","element","options","Promise","resolve","reject","handler","signal","abort","event","Proxy","addEventListener","aborted","dispatchEvent","Event","method","addPromiseListener","body","appendChild","stopPropagation","then","revokeObjectURL","utils","async","xworker","process","execute","evaluate","sync","remove","donkey$1","farmer","working","kill","terminate","dispose","reload","asyncTask","code","dedent","console","error","asyncMethod","clear","reset"],"mappings":"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","x_google_ignoreList":[0]}
|