@pyscript/core 0.3.14 → 0.3.15

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.
Files changed (40) hide show
  1. package/dist/{codemirror-ka0qQBe9.js → codemirror-EuF8OLzC.js} +2 -2
  2. package/dist/{codemirror-ka0qQBe9.js.map → codemirror-EuF8OLzC.js.map} +1 -1
  3. package/dist/codemirror_commands-ULiSmQ_a.js +2 -0
  4. package/dist/codemirror_commands-ULiSmQ_a.js.map +1 -0
  5. package/dist/{codemirror_lang-python-e_MPHeKq.js → codemirror_lang-python-FpZklSdz.js} +2 -2
  6. package/dist/{codemirror_lang-python-e_MPHeKq.js.map → codemirror_lang-python-FpZklSdz.js.map} +1 -1
  7. package/dist/codemirror_language-9xJdz9Jq.js +2 -0
  8. package/dist/codemirror_language-9xJdz9Jq.js.map +1 -0
  9. package/dist/codemirror_state-W084kUeH.js +2 -0
  10. package/dist/codemirror_state-W084kUeH.js.map +1 -0
  11. package/dist/codemirror_view-nQOl-mcb.js +2 -0
  12. package/dist/codemirror_view-nQOl-mcb.js.map +1 -0
  13. package/dist/core-Ij4b_wSZ.js +3 -0
  14. package/dist/core-Ij4b_wSZ.js.map +1 -0
  15. package/dist/core.js +1 -1
  16. package/dist/{deprecations-manager-divRBX4C.js → deprecations-manager-PMIHN7WZ.js} +2 -2
  17. package/dist/{deprecations-manager-divRBX4C.js.map → deprecations-manager-PMIHN7WZ.js.map} +1 -1
  18. package/dist/{error-08r2a_lb.js → error-dblXnmz2.js} +2 -2
  19. package/dist/{error-08r2a_lb.js.map → error-dblXnmz2.js.map} +1 -1
  20. package/dist/{index-gDfKwr5W.js → index-h3XLQgZ-.js} +2 -2
  21. package/dist/{index-gDfKwr5W.js.map → index-h3XLQgZ-.js.map} +1 -1
  22. package/dist/{py-editor-kvT0Y6Ml.js → py-editor-igEaIfqI.js} +2 -2
  23. package/dist/{py-editor-kvT0Y6Ml.js.map → py-editor-igEaIfqI.js.map} +1 -1
  24. package/dist/{py-terminal-CpWO5MXf.js → py-terminal-bjj1WoAX.js} +2 -2
  25. package/dist/py-terminal-bjj1WoAX.js.map +1 -0
  26. package/package.json +7 -7
  27. package/src/plugins/py-terminal.js +24 -6
  28. package/src/stdlib/pyscript/magic_js.py +1 -1
  29. package/src/stdlib/pyscript.js +1 -1
  30. package/dist/codemirror_commands-76da_Zjn.js +0 -2
  31. package/dist/codemirror_commands-76da_Zjn.js.map +0 -1
  32. package/dist/codemirror_language-_x_LhvBl.js +0 -2
  33. package/dist/codemirror_language-_x_LhvBl.js.map +0 -1
  34. package/dist/codemirror_state-zH-H1oSI.js +0 -2
  35. package/dist/codemirror_state-zH-H1oSI.js.map +0 -1
  36. package/dist/codemirror_view-7AFhckRk.js +0 -2
  37. package/dist/codemirror_view-7AFhckRk.js.map +0 -1
  38. package/dist/core-6rZeXUyU.js +0 -3
  39. package/dist/core-6rZeXUyU.js.map +0 -1
  40. package/dist/py-terminal-CpWO5MXf.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"py-terminal-CpWO5MXf.js","sources":["../src/plugins/py-terminal.js"],"sourcesContent":["// PyScript py-terminal plugin\nimport { TYPES, hooks } from \"../core.js\";\nimport { notify } from \"./error.js\";\nimport { defineProperty } from \"polyscript/exports\";\n\nconst SELECTOR = [...TYPES.keys()]\n .map((type) => `script[type=\"${type}\"][terminal],${type}-script[terminal]`)\n .join(\",\");\n\n// show the error on main and\n// stops the module from keep executing\nconst notifyAndThrow = (message) => {\n notify(message);\n throw new Error(message);\n};\n\nconst pyTerminal = async () => {\n const terminals = document.querySelectorAll(SELECTOR);\n\n // no results will look further for runtime nodes\n if (!terminals.length) return;\n\n // if we arrived this far, let's drop the MutationObserver\n // as we only support one terminal per page (right now).\n mo.disconnect();\n\n // we currently support only one terminal as in \"classic\"\n if (terminals.length > 1) notifyAndThrow(\"You can use at most 1 terminal.\");\n\n const [element] = terminals;\n // hopefully to be removed in the near future!\n if (element.matches('script[type=\"mpy\"],mpy-script'))\n notifyAndThrow(\"Unsupported terminal.\");\n\n // import styles lazily\n document.head.append(\n Object.assign(document.createElement(\"link\"), {\n rel: \"stylesheet\",\n href: new URL(\"./xterm.css\", import.meta.url),\n }),\n );\n\n // lazy load these only when a valid terminal is found\n const [{ Terminal }, { Readline }, { FitAddon }] = await Promise.all([\n import(/* webpackIgnore: true */ \"../3rd-party/xterm.js\"),\n import(/* webpackIgnore: true */ \"../3rd-party/xterm-readline.js\"),\n import(/* webpackIgnore: true */ \"../3rd-party/xterm_addon-fit.js\"),\n ]);\n\n const readline = new Readline();\n\n // common main thread initialization for both worker\n // or main case, bootstrapping the terminal on its target\n const init = (options) => {\n let target = element;\n const selector = element.getAttribute(\"target\");\n if (selector) {\n target =\n document.getElementById(selector) ||\n document.querySelector(selector);\n if (!target) throw new Error(`Unknown target ${selector}`);\n } else {\n target = document.createElement(\"py-terminal\");\n target.style.display = \"block\";\n element.after(target);\n }\n const terminal = new Terminal({\n theme: {\n background: \"#191A19\",\n foreground: \"#F5F2E7\",\n },\n ...options,\n });\n const fitAddon = new FitAddon();\n terminal.loadAddon(fitAddon);\n terminal.loadAddon(readline);\n terminal.open(target);\n fitAddon.fit();\n terminal.focus();\n defineProperty(element, \"terminal\", { value: terminal });\n };\n\n // branch logic for the worker\n if (element.hasAttribute(\"worker\")) {\n // when the remote thread onReady triggers:\n // setup the interpreter stdout and stderr\n const workerReady = ({ interpreter }, { sync }) => {\n sync.pyterminal_drop_hooks();\n const decoder = new TextDecoder();\n let data = \"\";\n const generic = {\n isatty: true,\n write(buffer) {\n data = decoder.decode(buffer);\n sync.pyterminal_write(data);\n return buffer.length;\n },\n };\n interpreter.setStdout(generic);\n interpreter.setStderr(generic);\n interpreter.setStdin({\n isatty: true,\n stdin: () => sync.pyterminal_read(data),\n });\n };\n\n // add a hook on the main thread to setup all sync helpers\n // also bootstrapping the XTerm target on main\n hooks.main.onWorker.add(function worker(_, xworker) {\n hooks.main.onWorker.delete(worker);\n init({\n disableStdin: false,\n cursorBlink: true,\n cursorStyle: \"block\",\n });\n xworker.sync.pyterminal_read = readline.read.bind(readline);\n xworker.sync.pyterminal_write = readline.write.bind(readline);\n // allow a worker to drop main thread hooks ASAP\n xworker.sync.pyterminal_drop_hooks = () => {\n hooks.worker.onReady.delete(workerReady);\n };\n });\n\n // setup remote thread JS/Python code for whenever the\n // worker is ready to become a terminal\n hooks.worker.onReady.add(workerReady);\n } else {\n // in the main case, just bootstrap XTerm without\n // allowing any input as that's not possible / awkward\n hooks.main.onReady.add(function main({ io }) {\n console.warn(\"py-terminal is read only on main thread\");\n hooks.main.onReady.delete(main);\n init({\n disableStdin: true,\n cursorBlink: false,\n cursorStyle: \"underline\",\n });\n io.stdout = (value) => {\n readline.write(`${value}\\n`);\n };\n io.stderr = (error) => {\n readline.write(`${error.message || error}\\n`);\n };\n });\n }\n};\n\nconst mo = new MutationObserver(pyTerminal);\nmo.observe(document, { childList: true, subtree: true });\n\n// try to check the current document ASAP\nexport default pyTerminal();\n"],"names":["SELECTOR","TYPES","keys","map","type","join","notifyAndThrow","message","notify","Error","pyTerminal","async","terminals","document","querySelectorAll","length","mo","disconnect","element","matches","head","append","Object","assign","createElement","rel","href","URL","url","Terminal","Readline","FitAddon","Promise","all","import","readline","init","options","target","selector","getAttribute","getElementById","querySelector","style","display","after","terminal","theme","background","foreground","fitAddon","loadAddon","open","fit","focus","defineProperty","value","hasAttribute","workerReady","interpreter","sync","pyterminal_drop_hooks","decoder","TextDecoder","data","generic","isatty","write","buffer","decode","pyterminal_write","setStdout","setStderr","setStdin","stdin","pyterminal_read","hooks","main","onWorker","add","worker","_","xworker","delete","disableStdin","cursorBlink","cursorStyle","read","bind","onReady","io","console","warn","stdout","stderr","error","MutationObserver","observe","childList","subtree","pyTerminal$1"],"mappings":"kGAKA,MAAMA,EAAW,IAAIC,EAAMC,QACtBC,KAAKC,GAAS,gBAAgBA,iBAAoBA,uBAClDC,KAAK,KAIJC,EAAkBC,IAEpB,MADAC,EAAOD,GACD,IAAIE,MAAMF,EAAQ,EAGtBG,EAAaC,UACf,MAAMC,EAAYC,SAASC,iBAAiBd,GAG5C,IAAKY,EAAUG,OAAQ,OAIvBC,EAAGC,aAGCL,EAAUG,OAAS,GAAGT,EAAe,mCAEzC,MAAOY,GAAWN,EAEdM,EAAQC,QAAQ,kCAChBb,EAAe,yBAGnBO,SAASO,KAAKC,OACVC,OAAOC,OAAOV,SAASW,cAAc,QAAS,CAC1CC,IAAK,aACLC,KAAM,IAAIC,IAAI,0BAA2BC,QAKjD,OAAOC,SAAEA,IAAYC,SAAEA,IAAYC,SAAEA,UAAoBC,QAAQC,IAAI,CACjEC,OAAiC,uBACjCA,OAAiC,gCACjCA,OAAiC,mCAG/BC,EAAW,IAAIL,EAIfM,EAAQC,IACV,IAAIC,EAASpB,EACb,MAAMqB,EAAWrB,EAAQsB,aAAa,UACtC,GAAID,GAIA,GAHAD,EACIzB,SAAS4B,eAAeF,IACxB1B,SAAS6B,cAAcH,IACtBD,EAAQ,MAAM,IAAI7B,MAAM,kBAAkB8B,UAE/CD,EAASzB,SAASW,cAAc,eAChCc,EAAOK,MAAMC,QAAU,QACvB1B,EAAQ2B,MAAMP,GAElB,MAAMQ,EAAW,IAAIjB,EAAS,CAC1BkB,MAAO,CACHC,WAAY,UACZC,WAAY,cAEbZ,IAEDa,EAAW,IAAInB,EACrBe,EAASK,UAAUD,GACnBJ,EAASK,UAAUhB,GACnBW,EAASM,KAAKd,GACdY,EAASG,MACTP,EAASQ,QACTC,EAAerC,EAAS,WAAY,CAAEsC,MAAOV,GAAW,EAI5D,GAAI5B,EAAQuC,aAAa,UAAW,CAGhC,MAAMC,EAAc,EAAGC,gBAAiBC,WACpCA,EAAKC,wBACL,MAAMC,EAAU,IAAIC,YACpB,IAAIC,EAAO,GACX,MAAMC,EAAU,CACZC,QAAQ,EACRC,MAAMC,IACFJ,EAAOF,EAAQO,OAAOD,GACtBR,EAAKU,iBAAiBN,GACfI,EAAOrD,SAGtB4C,EAAYY,UAAUN,GACtBN,EAAYa,UAAUP,GACtBN,EAAYc,SAAS,CACjBP,QAAQ,EACRQ,MAAO,IAAMd,EAAKe,gBAAgBX,IACpC,EAKNY,EAAMC,KAAKC,SAASC,KAAI,SAASC,EAAOC,EAAGC,GACvCN,EAAMC,KAAKC,SAASK,OAAOH,GAC3B5C,EAAK,CACDgD,cAAc,EACdC,aAAa,EACbC,YAAa,UAEjBJ,EAAQtB,KAAKe,gBAAkBxC,EAASoD,KAAKC,KAAKrD,GAClD+C,EAAQtB,KAAKU,iBAAmBnC,EAASgC,MAAMqB,KAAKrD,GAEpD+C,EAAQtB,KAAKC,sBAAwB,KACjCe,EAAMI,OAAOS,QAAQN,OAAOzB,EAAY,CAExD,IAIQkB,EAAMI,OAAOS,QAAQV,IAAIrB,EACjC,MAGQkB,EAAMC,KAAKY,QAAQV,KAAI,SAASF,GAAKa,GAAEA,IACnCC,QAAQC,KAAK,2CACbhB,EAAMC,KAAKY,QAAQN,OAAON,GAC1BzC,EAAK,CACDgD,cAAc,EACdC,aAAa,EACbC,YAAa,cAEjBI,EAAGG,OAAUrC,IACTrB,EAASgC,MAAM,GAAGX,MAAU,EAEhCkC,EAAGI,OAAUC,IACT5D,EAASgC,MAAM,GAAG4B,EAAMxF,SAAWwF,MAAU,CAE7D,GACK,EAGC/E,EAAK,IAAIgF,iBAAiBtF,GAChCM,EAAGiF,QAAQpF,SAAU,CAAEqF,WAAW,EAAMC,SAAS,IAGjD,IAAAC,EAAe1F"}