Files
mixly3/boards/default/python_pyodide/97.bundle.2c190343.js

1 line
5.8 KiB
JavaScript

"use strict";(self.webpackChunk_mixly_python_pyodide=self.webpackChunk_mixly_python_pyodide||[]).push([[97],{6998:(t,e,n)=>{n.d(e,{z:()=>a});var o=n(9610);const s="filesystem:/";!function(){var t;const e=async t=>await new Promise(((e,n)=>{const o=new FileReader;o.onloadend=()=>{e(o.result)},o.onerror=n,o.readAsDataURL(new Blob([t]))}));window._fetch=null!==(t=window._fetch)&&void 0!==t?t:window.fetch,window.fetch=async function(t,n){var o;const r=null!==(o=t.url)&&void 0!==o?o:t.toString(),i=s;if(r.startsWith(i)){const t=r.slice(12);let n=null;const o={status:200,statusText:"OK",headers:new Headers};try{n=window.Basthon.getFile(t);const s=await e(n),r=s.substring(s.indexOf(":")+1,s.indexOf(";"));n=n.buffer,o.headers.append("Content-Type",r),o.headers.append("Content-Length",n.byteLength)}catch(t){o.status=404,o.statusText="Not Found"}return new Response(n,o)}return await window._fetch(t,n)};const n=Object.getOwnPropertyDescriptor(HTMLImageElement.prototype,"src");Object.defineProperty(HTMLImageElement.prototype,"src",{...n,get:function(){var t;return null===(t=null==n?void 0:n.get)||void 0===t?void 0:t.call(this)},set:function(t){var o;const r=s;if(t.startsWith(r)){const o=t.slice(12),s=window.Basthon.getFile(o).buffer;(async()=>{var t;null===(t=null==n?void 0:n.set)||void 0===t||t.call(this,await e(s))})()}else null===(o=null==n?void 0:n.set)||void 0===o||o.call(this,t)}})}();class r extends Error{constructor(t){super(`Function ${t} not implemented!`),this.name="NotImplementedError"}}class i extends Event{constructor(t,e){super(t),this.detail=e}}class a{constructor(t){this._ready=!1,this._loaded=new o.D,this._execution_count=0,this._pendingInput=!1,this._listeners=new Map,this._rootPath=t.rootPath}version(){return"0.62.21"}language(){throw new r("language")}languageName(){throw new r("languageName")}moduleExts(){throw new r("moduleExts")}async launch(){throw new r("launch")}get execution_count(){return this._execution_count}evalAsync(t,e,n,o=null){throw new r("evalAsync")}restart(){throw new r("restart")}async putFile(t,e){throw new r("putFile")}async putModule(t,e){throw new r("putModule")}userModules(){return[]}getFile(t){throw new r("getFile")}getUserModuleFile(t){throw new r("getUserModuleFile")}more(t){throw new r("more")}complete(t){return[]}banner(){return`Welcome to the ${this.languageName()} REPL!`}ps1(){return">>> "}ps2(){return"... "}async init(){try{await this.launch()}catch(t){return void this._loaded.reject(t)}this.addEventListener("eval.request",this.evalFromEvent.bind(this)),this._ready=!0,this._loaded.resolve()}get ready(){return this._ready}async loaded(){await this._loaded.promise}basthonRoot(t=!1){let e=this._rootPath+"/"+this.version()+"/"+this.language();if(t&&!e.startsWith("http")){const t=window.location.origin+window.location.pathname;e=t.substring(0,t.lastIndexOf("/"))+"/"+e}return e}download(t,e){if(!("string"==typeof t||t instanceof String)){const e=new Blob([t],{type:"application/octet-stream"});t=window.URL.createObjectURL(e)}const n=document.createElement("a");n.download=e,n.href=t,n.target="_blank",n.style.display="none",document.body.appendChild(n),n.click(),document.body.removeChild(n)}static loadScript(t){return new Promise((function(e,n){let o=document.createElement("script");o.onload=e,o.onerror=n,o.src=t,document.head.appendChild(o)}))}dispatchEvent(t,e){document.dispatchEvent(new i(`basthon.${t}`,e))}addEventListener(t,e){const n=t=>e(t.detail);document.addEventListener(`basthon.${t}`,n);let o=this._listeners.get(t);null==o&&(o=new Map,this._listeners.set(t,o)),o.set(e,n)}removeEventListener(t,e){const n=this._listeners.get(t);document.removeEventListener(`basthon.${t}`,null==n?void 0:n.get(e))}async inputAsync(t,e=!1,n=void 0){(n=this.clone(n)).content={prompt:t,password:e};const o=new Promise((function(t,e){n.resolve=t,n.reject=e}));this._pendingInput=!0,this.dispatchEvent("eval.input",n);const s=await o;return this._pendingInput=!1,s}clone(t){return JSON.parse(JSON.stringify(t))}async putRessource(t,e){var n;const o=null!==(n=t.split(".").pop())&&void 0!==n?n:"";return this.moduleExts().includes(o)?await this.putModule(t,e):await this.putFile(t,e)}pendingInput(){return this._pendingInput}async evalFromEvent(t){const e=e=>n=>{let o=this.clone(t);o.stream=e,o.content=n,this.dispatchEvent("eval.output",o)},n=e("stdout"),o=e("stderr");let s;try{s=await this.evalAsync(t.code,n,o,t)}catch(e){o(e.toString());const n=this.clone(t);return n.error=e,n.execution_count=this.execution_count,void this.dispatchEvent("eval.error",n)}if(null==s)return;const r=s[0],i=s[1];let a=this.clone(t);a.execution_count=i,null!=r&&(a.result=r),this.dispatchEvent("eval.finished",a)}}},4097:(t,e,n)=>{n.d(e,{KernelJavaScript:()=>s});var o=n(6998);class s extends o.z{constructor(t){super(t),this._context={Basthon:void 0,Jupyter:void 0,window:void 0},this._execution_count=0}language(){return"javascript"}languageName(){return"Javascript"}moduleExts(){return["js"]}async launch(){}eval(t){try{return window.eval(`with(Basthon._context) { ${t} }`)}catch(e){if(e instanceof SyntaxError)return new Function(`with(this) { ${t} }`).call(this._context);throw e}}async evalAsync(t,e,n,o=null){o.interactive=!0;const s=console.log,r=console.error;let i;console.log=e,console.error=n,this._execution_count++;try{i=this.eval(t)}catch(t){console.error(`Uncaught ${t.name||""}: ${null==t?void 0:t.message}`)}return console.log=s,console.error=r,void 0!==i&&(i={"text/plain":JSON.stringify(i)}),[i,this._execution_count]}ps1(){return" js> "}ps2(){return"...> "}restart(){this._execution_count=0}more(t){return!1}complete(t){return[]}async putFile(t,e){console.error(`Fichier ${t} not added since putFile has no mean in the JS context.`)}async putModule(t,e){e=new Uint8Array(e);if("js"!==t.split(".").pop())throw{message:"Only '.js' files supported."};{const t=new TextDecoder("utf-8").decode(e);this.eval(t)}}}}}]);