@basthon/browser-bundle 0.74.0 → 0.76.0

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 (34) hide show
  1. package/lib/{0.74.0 → 0.76.0}/python3/basthon.tar +0 -0
  2. package/lib/{0.74.0 → 0.76.0}/python3/modules/graphviz-0.0.1-py3-none-any.whl +0 -0
  3. package/lib/{0.74.0 → 0.76.0}/python3/modules/ipython-0.0.1-py3-none-any.whl +0 -0
  4. package/lib/{0.74.0 → 0.76.0}/python3/modules/p5-0.0.1-py3-none-any.whl +0 -0
  5. package/lib/{0.74.0 → 0.76.0}/python3/modules/proj4py-0.0.1-py3-none-any.whl +0 -0
  6. package/lib/{0.74.0 → 0.76.0}/python3/modules/rcviz-0.0.1-py3-none-any.whl +0 -0
  7. package/lib/{0.74.0 → 0.76.0}/python3/modules/requests-0.0.1-py3-none-any.whl +0 -0
  8. package/lib/{0.74.0 → 0.76.0}/python3/modules/turtle-0.0.1-py3-none-any.whl +0 -0
  9. package/lib/0.76.0/python3/modules/tutor-0.0.1-py3-none-any.whl +0 -0
  10. package/lib/0.76.0/python3/pyodide-lock.json +1 -0
  11. package/lib/kernel-base_lib_commons_js-kernel-base_lib_version_js-kernel-echo_lib_index_js.js +1 -1
  12. package/lib/kernel-base_lib_commons_js-kernel-base_lib_version_js-kernel-echo_lib_index_js.js.map +1 -1
  13. package/lib/kernel-base_lib_worker_index_js-_3c190.js +1 -1
  14. package/lib/kernel-base_lib_worker_index_js-_3c190.js.map +1 -1
  15. package/lib/kernel-base_lib_worker_kernel-worker_js.js +1 -1
  16. package/lib/kernel-base_lib_worker_kernel-worker_js.js.map +1 -1
  17. package/lib/kernel-python3_lib_comlink-worker_js-_e7af0.js +1 -1
  18. package/lib/kernel-python3_lib_comlink-worker_js-_e7af0.js.map +1 -1
  19. package/lib/kernel-python3_lib_comlink-worker_js-_e7af1.js +1 -1
  20. package/lib/kernel-python3_lib_comlink-worker_js-_e7af1.js.map +1 -1
  21. package/lib/kernel-python3_lib_index_js.js +1 -1
  22. package/lib/kernel-python3_lib_index_js.js.map +1 -1
  23. package/package.json +3 -3
  24. package/lib/0.74.0/python3/modules/tutor-0.0.1-py3-none-any.whl +0 -0
  25. package/lib/0.74.0/python3/pyodide-lock.json +0 -1
  26. /package/lib/{0.74.0 → 0.76.0}/python3/modules/extern/tutor/053e308b29fa94c9768c.png +0 -0
  27. /package/lib/{0.74.0 → 0.76.0}/python3/modules/extern/tutor/43557192d14bec1ce5a1.png +0 -0
  28. /package/lib/{0.74.0 → 0.76.0}/python3/modules/extern/tutor/62dc93aaa1f4a5ab9654.png +0 -0
  29. /package/lib/{0.74.0 → 0.76.0}/python3/modules/extern/tutor/a3c784d737c50501dfcd.png +0 -0
  30. /package/lib/{0.74.0 → 0.76.0}/python3/modules/extern/tutor/a3fa2b0f6d2467fdac56.png +0 -0
  31. /package/lib/{0.74.0 → 0.76.0}/python3/modules/extern/tutor/bundle.js +0 -0
  32. /package/lib/{0.74.0 → 0.76.0}/python3/modules/extern/tutor/bundle.js.LICENSE.txt +0 -0
  33. /package/lib/{0.74.0 → 0.76.0}/python3/modules/extern/tutor/bundle.js.map +0 -0
  34. /package/lib/{0.74.0 → 0.76.0}/python3/modules/extern/tutor/f997956ae061f27f24f5.png +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"kernel-base_lib_worker_kernel-worker_js.js","mappings":"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","sources":["webpack://@basthon/browser-bundle/../kernel-base/lib/commons.js","webpack://@basthon/browser-bundle/../kernel-base/lib/version.js","webpack://@basthon/browser-bundle/../kernel-base/lib/worker/kernel-worker.js","webpack://@basthon/browser-bundle/../kernel-base/lib/worker/worker-utils.js"],"sourcesContent":["/**\n * An error thrown by not implemented API functions.\n */\nclass NotImplementedError extends Error {\n constructor(funcName) {\n super(`Function ${funcName} not implemented!`);\n this.name = \"NotImplementedError\";\n }\n}\n/**\n * Convert an Uint8Array to a data URL.\n */\nconst toDataURL = async (content) => {\n return await new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.onloadend = () => {\n resolve(reader.result);\n };\n reader.onerror = reject;\n reader.readAsDataURL(new Blob([content]));\n });\n};\n/* fetch from local FS */\nconst fetchFromLocalFS = async (localfsScheme, url) => {\n const prefix = localfsScheme;\n const path = url.slice(prefix.length);\n let content = null;\n const options = {\n status: 200,\n statusText: \"OK\",\n headers: new Headers(),\n };\n try {\n //@ts-ignore\n content = await self.basthon.getFile(path);\n const dataURL = await toDataURL(content);\n const mime = dataURL.substring(dataURL.indexOf(\":\") + 1, dataURL.indexOf(\";\"));\n content = content.buffer;\n options.headers.append(\"Content-Type\", mime);\n options.headers.append(\"Content-Length\", content.byteLength);\n }\n catch (e) {\n options.status = 404;\n options.statusText = \"Not Found\";\n }\n return new Response(content, options);\n};\n/**\n * Get the origin of an url.\n */\nconst origin = (url) => new URL(url).origin;\n/**\n * Get the parent path of an url.\n */\nconst parent = (url) => {\n const abs = new URL(url).href;\n return abs.substring(0, abs.lastIndexOf(\"/\"));\n};\n/**\n * we mock the fetch function to:\n * - redirect queries to local FS\n * - bypass the worker's opaque origin\n */\nconst mockFetch = (legacy) => {\n // already mocked?\n if (self.fetch.name === \"mockedFetch\")\n return;\n const trueFetch = self.fetch;\n const assetsURL = self._assetsURL;\n async function mockedFetch(request, init) {\n // build new request from init\n request = new Request(request, init);\n const url = request.url;\n const localfsScheme = \"filesystem:/\";\n // in legacy mode, only local FS is mocked\n if (legacy) {\n if (url.startsWith(localfsScheme))\n return await fetchFromLocalFS(localfsScheme, url);\n return await trueFetch(request);\n }\n // not a true worker? -> error\n if (self.importScripts == null || assetsURL == null)\n return Response.error();\n // non-legacy mode (true isolated secure worker)\n // ensure credentials are not sent\n request = new Request(request, { credentials: \"omit\" });\n try {\n // requests towards localfs\n if (url.startsWith(localfsScheme)) {\n return await fetchFromLocalFS(localfsScheme, url);\n }\n else if (origin(url) === origin(assetsURL)) {\n // requests towards same origin\n // only url under the assets folder are proxyied\n if (parent(url).startsWith(assetsURL)) {\n const proxy = self._remoteProxy;\n // request object is not (stuctured) clonable...\n const objReq = JSON.parse(JSON.stringify(request, [\n \"credentials\",\n \"headers\",\n \"method\",\n \"mode\",\n ]));\n const { body, options } = await proxy.fetch(request.url, objReq);\n return new Response(body, options);\n }\n throw new Error(\"Ressource is outside the proxy' scope\");\n }\n return await trueFetch(request);\n }\n catch (e) {\n console.error(`security proxy: request to ${url} throw error: ${e.toString()}`);\n return Response.error();\n }\n }\n self.fetch = mockedFetch;\n};\n/**\n * mock Worker to support sandboxing and keep webpack compatibility\n */\nconst mockWorker = () => {\n // already mocked?\n if (globalThis.Worker.name === \"SandboxedWorker\")\n return;\n class SandboxedWorker extends Worker {\n constructor(url, options) {\n if (options?.sandboxed === true) {\n const absURL = new URL(url).href;\n const assetsURL = absURL.substring(0, absURL.lastIndexOf(\"/\"));\n // worker created with a 'data' url scheme has opaque origin\n // https://html.spec.whatwg.org/multipage/workers.html#script-settings-for-workers:concept-origin-opaque\n const workerScript = `\n self._assetsURL = \"${assetsURL}\";\n globalThis = {importScripts: self.importScripts, location: \"${url}\"};\n importScripts(\"${url}\");\n globalThis = self;\n `.replace(/\\s/g, \"\");\n super(`data:text/javascript;base64,${btoa(workerScript)}`);\n }\n else {\n super(url, options);\n }\n }\n }\n globalThis.Worker = SandboxedWorker;\n};\n/**\n * we mock '(new Image()).src' = to support local fs access\n */\nconst mockHTMLImageSrc = () => {\n // inside main thread?\n if (globalThis?.HTMLImageElement == null)\n return;\n const desc = Object.getOwnPropertyDescriptor(HTMLImageElement.prototype, \"src\");\n // already mocked?\n if (desc?.set?.name === \"mockedSrcSet\")\n return;\n function mockedSrcSet(e) {\n const prefix = \"filesystem:/\";\n if (e.startsWith(prefix)) {\n const path = e.slice(prefix.length);\n (async () => {\n //@ts-ignore\n const content = (await globalThis.Basthon?.getFile?.(path))?.buffer;\n desc?.set?.call(this, await toDataURL(content));\n })();\n }\n else {\n desc?.set?.call(this, e);\n }\n }\n Object.defineProperty(HTMLImageElement.prototype, \"src\", {\n ...desc,\n get: function () {\n return desc?.get?.call(this);\n },\n set: mockedSrcSet,\n });\n};\nexport { NotImplementedError, mockFetch, mockWorker, mockHTMLImageSrc };\n","export const VERSION = \"0.74.0\";\n","import { PromiseDelegate } from \"promise-delegate\";\nimport { NotImplementedError, mockFetch } from \"../commons\";\nimport { wrap } from \"comlink\";\nimport { VERSION } from \"../version\";\nimport { DOMNodeBus } from \"./worker-utils\";\nclass KernelWorkerBase {\n constructor(options) {\n this._ready = new PromiseDelegate();\n this._evalPromises = []; // used to wait all promises emitted during computation\n this._decrypt = (s) => s;\n this._options = options;\n this._legacy = options?.legacy === true;\n this._basthonRoot = self._assetsURL + \"/\" + VERSION + \"/\" + this.language();\n /* we mock the fetch function to:\n * - redirect queries to local FS\n * - bypass the worker's opaque origin\n */\n mockFetch(this.isLegacy());\n // useful for ffi\n self.basthon = this;\n // the window object is not available in a webworker...\n if (self.window == null)\n self.window = self;\n // common way to create a canvas in worker and legacy mode\n self.Canvas = !this.isLegacy()\n ? globalThis.OffscreenCanvas\n : function Canvas(width, height) {\n const canvas = document.createElement(\"canvas\");\n if (width != null)\n canvas.width = width;\n if (height != null)\n canvas.height = height;\n return canvas;\n };\n // global prompt redirected to our input\n if (self._prompt == null)\n self._prompt = globalThis.prompt;\n globalThis.prompt = (p) => this.input(p);\n // DOM node bus in legacy mode\n // (to transfer elements from worker to main thread, they are the same!)\n if (this.isLegacy())\n this._domNodeBus = new DOMNodeBus();\n // not needed anymore\n self._assetsURL = undefined;\n }\n /**\n * Kernel version (same as main thread version() method).\n */\n version() {\n return VERSION;\n }\n /**\n * Language implemented in the kernel (string).\n * Generally lower case.\n */\n language() {\n throw new NotImplementedError(\"language\");\n }\n /**\n * Is this a legacy worker? i.e. not runing in a worker.\n */\n isLegacy() {\n return this._legacy;\n }\n /**\n * The basthon's root directory.\n */\n basthonRoot() {\n return this._basthonRoot;\n }\n /**\n * Is synchronous communication with main thread available?\n * (through SharedArrayBuffer atomic waits)\n */\n syncCommSupport() {\n return this._sab != null;\n }\n /**\n * Special case of starting a legacy kernel.\n */\n async legacyStart() {\n throw new NotImplementedError(\"legacyStart\");\n }\n /**\n * Special case of stoping a legacy kernel.\n */\n async legacyStop() {\n throw new NotImplementedError(\"legacyStop\");\n }\n /**\n * Set SharedArrayBuffer from main thread.\n */\n setSAB(sab) {\n this._sab = sab;\n }\n /**\n * Add a promise we should wait for during eval process.\n */\n addEvalPromise(promise) {\n this._evalPromises.push(promise);\n }\n /*\n * Set fallback API key and encryption pass\n * (if SharedArrayBuffer are not available).\n */\n async setFallbackKeyAndPass(key, pass) {\n this._fallbackKey = key;\n const CryptoJS = await import(\"crypto-js\");\n this._decrypt = (message) => CryptoJS.AES.decrypt(message, pass).toString(CryptoJS.enc.Utf8);\n }\n /*\n * Initialize the kernel. Should be overloaded.\n */\n async _init() { }\n /**\n * Initialize the kernel. It is called by initWorker in KernelBase.\n */\n async init() {\n try {\n await this._init();\n this._ready.resolve();\n }\n catch (error) {\n this._ready.reject(error);\n throw error;\n }\n }\n /**\n * Wait for the kernel to be ready.\n */\n ready() {\n return this._ready.promise;\n }\n /**\n * Set communication port.\n */\n setCommPort(port) {\n this.postMessage = port.postMessage.bind(port);\n port.onmessage = (e) => this.processMainThreadMessage(e.data);\n }\n /**\n * Set the comlink communication port to proxy fetch.\n */\n setProxyPort(port) {\n self._remoteProxy = wrap(port);\n }\n /**\n * Send stream to stdout/stderr.\n */\n sendStream(data, stream, text) {\n this.postMessage?.({\n data,\n type: \"stream\",\n content: { stream, text },\n });\n }\n /**\n * Send stream to stdout.\n */\n sendStdoutStream(data, text) {\n this.sendStream(data, \"stdout\", text);\n }\n /**\n * Send stream to stderr.\n */\n sendStderrStream(data, text) {\n this.sendStream(data, \"stderr\", text);\n }\n async blobToDataURL(blob) {\n return await new Promise((resolve) => {\n const reader = new FileReader();\n reader.onloadend = () => resolve(reader.result);\n reader.readAsDataURL(blob);\n });\n }\n /**\n * Display a blob (only png images are supported).\n */\n async displayBlob(blob, data) {\n if (data == null)\n data = this.clone(this.__eval_data__);\n const dataURL = await this.blobToDataURL(blob);\n const pngPrefix = \"data:image/png;base64,\";\n if (dataURL.startsWith(pngPrefix)) {\n const png = dataURL.slice(pngPrefix.length);\n data[\"display_type\"] = \"multiple\";\n data[\"content\"] = { \"image/png\": png };\n }\n else {\n return;\n }\n this.postMessage?.({ data, type: \"display\" });\n }\n /**\n * Display an element like a canvas, ... in the frontend.\n */\n display(element) {\n const data = this.clone(this.__eval_data__);\n if (globalThis.OffscreenCanvas != null &&\n element instanceof OffscreenCanvas) {\n this.addEvalPromise((async () => {\n const blob = await element.convertToBlob();\n await this.displayBlob(blob, data);\n })());\n }\n else {\n // in legacy mode, send HTML elements via DOM node bus\n if (this.isLegacy() && element instanceof HTMLElement) {\n data[\"display_type\"] = \"dom-node\";\n data[\"content\"] = this._domNodeBus?.push?.(element);\n }\n else {\n data[\"display_type\"] = \"multiple\";\n data[\"content\"] = element;\n }\n this.postMessage?.({ data, type: \"display\" });\n }\n }\n /**\n * Clear the current output.\n */\n clearOutput(wait) {\n const data = this.clone(this.__eval_data__);\n data[\"content\"] = { wait };\n this.postMessage?.({ data, type: \"clear_output\" });\n }\n /**\n * Pop a DOM node from domNodeBus\n * (used to transfer HTMLElement from main thread to worker thread in legacy mode)\n */\n popDOMNode(id) {\n return this._domNodeBus?.pop(id);\n }\n /**\n * Evaluate code and return an object with mime type keys and string value.\n * To be overloaded.\n */\n async _eval(data, code) {\n throw new NotImplementedError(\"_eval\");\n }\n /**\n * Evaluate a string of code. To be called by main thread (through comlink).\n */\n async eval(data, code) {\n this._evalPromises = [];\n this.__eval_data__ = data;\n let res;\n try {\n const result = await this._eval(data, code);\n res = { data, status: \"ok\", result };\n }\n catch (e) {\n const { name, stack, message } = e;\n this.sendStderrStream(data, e.toString());\n res = {\n data,\n status: \"error\",\n error: {\n name: name,\n value: message,\n traceback: stack?.toString(),\n },\n };\n }\n this.postMessage?.({ type: \"eval-end\" }); // for channel syncing\n await Promise.all(this._evalPromises);\n return res;\n }\n /**\n * Put a file on the local (emulated) filesystem.\n */\n putFile(filename, content) {\n throw new NotImplementedError(\"putFile\");\n }\n /**\n * Put an importable module on the local (emulated) filesystem\n * and load dependencies.\n */\n putModule(filename, content) {\n throw new NotImplementedError(\"putModule\");\n }\n /**\n * Complete the submited code.\n */\n async complete(code) {\n return [];\n }\n /**\n * Tell wether we should wait for more code or if it can\n * be run as is.\n *\n * Useful to set ps1/ps2 in console prompt.\n */\n async more(code) {\n throw new NotImplementedError(\"more\");\n }\n /**\n * Send a message to the main thread to download a file.\n */\n download(content, filename) {\n this.postMessage?.({\n type: \"download\",\n content: { content, filename },\n });\n }\n /**\n * Use JSON stringify/parse to copy an object.\n */\n clone(data) {\n return JSON.parse(JSON.stringify(data));\n }\n /**\n * Sync sleep for a certain duration in seconds.\n */\n sleep(duration) {\n duration = duration * 1000; // to milliseconds\n if (this.syncCommSupport()) {\n // ensure value before waiting\n Atomics.store(new Int32Array(this._sab), 0, 0);\n Atomics.wait(new Int32Array(this._sab), 0, 0, duration);\n return;\n }\n else {\n // default to active sleep\n const t0 = Date.now();\n while (Date.now() - t0 < duration)\n ;\n }\n }\n /**\n * Decode the string contained in a SharedArrayBuffer to\n * bypas this issue:\n * https://github.com/whatwg/encoding/issues/172\n */\n decodeSharedArrayBuffer(sab) {\n const array = new Uint8Array(sab);\n let length = array.length;\n for (; length > 0 && array[length - 1] === 0; length--)\n ;\n if (length === 0)\n return \"\";\n const cropped = new Uint8Array(length);\n cropped.set(array.subarray(0, length));\n try {\n return new TextDecoder().decode(cropped);\n }\n catch (e) {\n if (array.length === length)\n throw new Error(\"String too long, can't decode\");\n throw e;\n }\n }\n /**\n * Sync input that does not use the ugly prompt but send\n * an eval.input event to the main thread and wait for the response.\n */\n input(prompt, password = false) {\n const sendInput = () => {\n const data = this.clone(this.__eval_data__);\n this.postMessage?.({\n type: \"input\",\n content: { data, prompt, password },\n });\n };\n if (this.syncCommSupport()) {\n sendInput();\n // ensure value before waiting\n Atomics.store(new Int32Array(this._sab), 0, 0);\n Atomics.wait(new Int32Array(this._sab), 0, 0);\n return this.decodeSharedArrayBuffer(this._sab);\n }\n else if (self._prompt != null) {\n // in legacy context, we default to js' prompt\n return self._prompt(prompt ?? \"\") ?? \"\";\n }\n else {\n sendInput();\n const timeout = 2 * 60 * 1000; // 2 minutes\n const tend = Date.now() + timeout;\n // polling loop\n while (Date.now() < tend) {\n const request = new XMLHttpRequest();\n request.open(\"POST\", \"https://api.basthon.fr/ephemeral\", false); // synchronous request\n request.setRequestHeader(\"X-API-Referer\", this._basthonRoot ?? \"null\");\n request.send(JSON.stringify({ action: \"get\", key: this._fallbackKey }));\n if (request.status === 200)\n return this._decrypt(request.responseText);\n }\n throw new Error(\"Error using the Basthon's network API\");\n }\n }\n /**\n * Process messages from the main thread.\n */\n async processMainThreadMessage(msg) {\n switch (msg.type) {\n case \"toplevel-input\":\n this._toplevelInputPromise?.resolve(msg.content);\n break;\n default: // this should not append...\n break;\n }\n }\n /**\n * Ask for an input in the main thread and wait for the answer\n * then return it.\n */\n async toplevelInput(prompt, password = false, data = undefined) {\n this._toplevelInputPromise = new PromiseDelegate();\n this.postMessage?.({\n type: \"input\",\n content: { data, prompt, password, toplevel: true },\n });\n const res = await this._toplevelInputPromise.promise;\n this._toplevelInputPromise = undefined;\n return res;\n }\n /**\n * Ask main thread to go to the next breakpoint.\n */\n breakpointMoveOn() {\n const data = this.clone(this.__eval_data__);\n this.postMessage?.({ type: \"breakpoint-move-on\", content: { data } });\n }\n /**\n * Create the message channel between kernel and iframe,\n * send one port and the iframe to main thread and return the other one.\n */\n displayKernelIFrame(iframeHTML) {\n const { port1, port2 } = new MessageChannel();\n const content = { html: iframeHTML, port: port1 };\n const display_type = \"kernel-iframe\";\n const data = { ...this.clone(this.__eval_data__), content, display_type };\n this.postMessage?.({ data, type: \"display\" }, [port1]);\n return port2;\n }\n}\nexport { KernelWorkerBase };\n","import { expose as exposeComlink } from \"comlink\";\nconst insideWorker = () => \n//@ts-ignore\ntypeof WorkerGlobalScope !== \"undefined\" && self instanceof WorkerGlobalScope;\nconst expose = (kwc) => {\n if (insideWorker()) {\n // worker\n const listener = (msg) => {\n if (!(msg?.data instanceof MessagePort))\n return;\n removeEventListener(\"message\", listener);\n exposeComlink(kwc, msg.data);\n };\n addEventListener(\"message\", listener);\n }\n else {\n // main thread\n exposeComlink(kwc, self._commPort);\n self._commPort = undefined; // no more needed\n }\n};\n/**\n * DOM node exchanger (Bus) to bypass stringifying\n * messages between frontend and kernel that prevents DOMNode sharing.\n */\nclass DOMNodeBus extends Map {\n /**\n * Push an object to the bus and get back an id to later pop it.\n */\n push(obj) {\n let id = 0;\n for (; id < this.size; id++)\n if (!this.has(id))\n break;\n this.set(id, obj);\n return id;\n }\n /**\n * Remove an object from the bus from its id.\n */\n pop(id) {\n const res = this.get(id);\n this.delete(id);\n return res;\n }\n}\n/**\n * Dynamically load a script (support main thread and worker usage).\n */\nconst loadScript = async (url) => {\n if (globalThis.importScripts != null)\n return importScripts(url);\n // we are probably in main thread\n return new Promise((resolve, reject) => {\n const script = document.createElement(\"script\");\n script.onload = resolve;\n script.onerror = reject;\n script.src = url;\n document.head.appendChild(script);\n });\n};\nexport { expose, DOMNodeBus, loadScript };\n"],"names":["NotImplementedError","_Error","funcName","_this","_classCallCheck","_callSuper","concat","name","_inherits","_createClass","_wrapNativeSuper","Error","toDataURL","_ref","_asyncToGenerator","_regeneratorRuntime","_callee","content","_context","prev","next","Promise","resolve","reject","reader","FileReader","onloadend","result","onerror","readAsDataURL","Blob","abrupt","sent","stop","_x","apply","arguments","fetchFromLocalFS","_ref2","_callee2","localfsScheme","url","prefix","path","options","dataURL","mime","_context2","slice","length","status","statusText","headers","Headers","self","basthon","getFile","substring","indexOf","buffer","append","byteLength","Response","_x2","_x3","origin","URL","parent","abs","href","lastIndexOf","mockFetch","legacy","fetch","trueFetch","assetsURL","_assetsURL","_x4","_x5","_mockedFetch","_callee3","request","init","proxy","objReq","_yield$proxy$fetch","body","_t2","_context3","Request","startsWith","importScripts","error","credentials","_remoteProxy","JSON","parse","stringify","console","toString","mockWorker","globalThis","Worker","SandboxedWorker","_Worker","_this2","sandboxed","absURL","workerScript","replace","btoa","_assertThisInitialized","mockHTMLImageSrc","_desc$set","HTMLImageElement","desc","Object","getOwnPropertyDescriptor","prototype","set","defineProperty","_objectSpread","get","_desc$get","call","this","e","_this3","_callee4","_yield$globalThis$Bas","_globalThis$Basthon","_globalThis$Basthon$g","_desc$set2","_t3","_t4","_t5","_t7","_t8","_context4","Basthon","_desc$set3","VERSION","KernelWorkerBase","_ready","PromiseDelegate","_evalPromises","_decrypt","s","_options","_legacy","_basthonRoot","language","isLegacy","window","Canvas","width","height","canvas","document","createElement","OffscreenCanvas","_prompt","prompt","p","input","_domNodeBus","DOMNodeBus","undefined","key","value","_sab","_legacyStart","_legacyStop","sab","promise","push","_setFallbackKeyAndPass","pass","CryptoJS","_fallbackKey","message","AES","decrypt","enc","Utf8","_init2","_init3","_callee5","_t","_context5","_init","port","postMessage","bind","onmessage","processMainThreadMessage","data","wrap","stream","text","_this$postMessage","type","sendStream","_blobToDataURL","_callee6","blob","_context6","_displayBlob","_callee7","_this$postMessage2","pngPrefix","png","_context7","clone","__eval_data__","blobToDataURL","element","addEvalPromise","_callee8","_context8","convertToBlob","displayBlob","_this$postMessage3","_this$_domNodeBus","_this$_domNodeBus$pus","HTMLElement","wait","_this$postMessage4","id","_this$_domNodeBus2","pop","_eval2","_callee9","code","_context9","_x6","_x7","_eval3","_callee0","_this$postMessage5","res","stack","_context0","_eval","sendStderrStream","traceback","all","_x8","_x9","filename","_complete","_callee1","_context1","_x0","_more","_callee10","_context10","_x1","_this$postMessage6","duration","syncCommSupport","Atomics","store","Int32Array","t0","Date","now","array","Uint8Array","cropped","subarray","TextDecoder","decode","_self$_prompt","_this4","password","sendInput","_this4$postMessage","decodeSharedArrayBuffer","tend","_this$_basthonRoot","XMLHttpRequest","open","setRequestHeader","send","action","responseText","_processMainThreadMessage","_callee11","msg","_this$_toplevelInputP","_context11","_toplevelInputPromise","_x10","_toplevelInput","_callee12","_this$postMessage7","_args12","_context12","toplevel","_x11","_this$postMessage8","iframeHTML","_this$postMessage9","_MessageChannel","MessageChannel","port1","port2","html","display_type","expose","kwc","WorkerGlobalScope","listener","MessagePort","removeEventListener","exposeComlink","addEventListener","_commPort","_Map","obj","size","has","Map","loadScript","script","onload","src","head","appendChild"],"sourceRoot":""}
1
+ {"version":3,"file":"kernel-base_lib_worker_kernel-worker_js.js","mappings":"ooCAAA,IAGMA,EAAmB,SAAAC,GACrB,SAAAD,EAAYE,GAAU,IAAAC,EAEgB,OAFhBC,EAAAA,EAAAA,GAAA,KAAAJ,IAClBG,EAAAE,EAAA,KAAAL,EAAA,aAAAM,OAAkBJ,EAAQ,wBACrBK,KAAO,sBAAsBJ,CACtC,CAAC,OAAAK,EAAAA,EAAAA,GAAAR,EAAAC,IAAAQ,EAAAA,EAAAA,GAAAT,EAAA,CAJoB,EAIpBU,EAAAA,EAAAA,GAJ6BC,QAS5BC,EAAS,eAAAC,GAAAC,EAAAA,EAAAA,GAAAC,IAAAA,KAAG,SAAAC,EAAOC,GAAO,OAAAF,IAAAA,KAAA,SAAAG,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAAAF,EAAAE,KAAA,EACf,IAAIC,QAAQ,SAACC,EAASC,GAC/B,IAAMC,EAAS,IAAIC,WACnBD,EAAOE,UAAY,WACfJ,EAAQE,EAAOG,OACnB,EACAH,EAAOI,QAAUL,EACjBC,EAAOK,cAAc,IAAIC,KAAK,CAACb,IACnC,GAAE,cAAAC,EAAAa,OAAA,SAAAb,EAAAc,MAAA,wBAAAd,EAAAe,OAAA,EAAAjB,EAAA,IACL,gBATckB,GAAA,OAAArB,EAAAsB,MAAA,KAAAC,UAAA,KAWTC,EAAgB,eAAAC,GAAAxB,EAAAA,EAAAA,GAAAC,IAAAA,KAAG,SAAAwB,EAAOC,EAAeC,GAAG,IAAAC,EAAAC,EAAA1B,EAAA2B,EAAAC,EAAAC,EAAA,OAAA/B,IAAAA,KAAA,SAAAgC,GAAA,cAAAA,EAAA5B,KAAA4B,EAAA3B,MAAA,OAQ7C,OAPKsB,EAASF,EACTG,EAAOF,EAAIO,MAAMN,EAAOO,QAC1BhC,EAAU,KACR2B,EAAU,CACZM,OAAQ,IACRC,WAAY,KACZC,QAAS,IAAIC,SAChBN,EAAA5B,KAAA,EAAA4B,EAAA3B,KAAA,EAGmBkC,KAAKC,QAAQC,QAAQb,GAAK,OAAnC,OAAP1B,EAAO8B,EAAAf,KAAAe,EAAA3B,KAAG,EACYR,EAAUK,GAAQ,OAAlC4B,EAAOE,EAAAf,KACPc,EAAOD,EAAQY,UAAUZ,EAAQa,QAAQ,KAAO,EAAGb,EAAQa,QAAQ,MACzEzC,EAAUA,EAAQ0C,OAClBf,EAAQQ,QAAQQ,OAAO,eAAgBd,GACvCF,EAAQQ,QAAQQ,OAAO,iBAAkB3C,EAAQ4C,YAAYd,EAAA3B,KAAA,eAAA2B,EAAA5B,KAAA,EAAA4B,EAAA,SAG7DH,EAAQM,OAAS,IACjBN,EAAQO,WAAa,YAAY,cAAAJ,EAAAhB,OAAA,SAE9B,IAAI+B,SAAS7C,EAAS2B,IAAQ,wBAAAG,EAAAd,OAAA,EAAAM,EAAA,iBACxC,gBAvBqBwB,EAAAC,GAAA,OAAA1B,EAAAH,MAAA,KAAAC,UAAA,KA2BhB6B,EAAS,SAACxB,GAAG,OAAK,IAAIyB,IAAIzB,GAAKwB,MAAM,EAIrCE,EAAS,SAAC1B,GACZ,IAAM2B,EAAM,IAAIF,IAAIzB,GAAK4B,KACzB,OAAOD,EAAIX,UAAU,EAAGW,EAAIE,YAAY,KAC5C,EAMMC,EAAY,SAACC,GAEf,GAAwB,gBAApBlB,KAAKmB,MAAMlE,KAAf,CAEA,IAAMmE,EAAYpB,KAAKmB,MACjBE,EAAYrB,KAAKsB,WA+CvBtB,KAAKmB,MA/C6B,SACRI,EAAAC,GAAA,OAAAC,EAAA5C,MAAC,KAADC,UAAA,CAHhB,CAGgB,SAAA2C,IA6CzB,OA7CyBA,GAAAjE,EAAAA,EAAAA,GAAAC,IAAAA,KAA1B,SAAAiE,EAA2BC,EAASC,GAAI,IAAAzC,EAAAD,EAAA2C,EAAAC,EAAAC,EAAAC,EAAA1C,EAAA2C,EAAA,OAAAxE,IAAAA,KAAA,SAAAyE,GAAA,cAAAA,EAAArE,KAAAqE,EAAApE,MAAA,OAKpC,GAHA6D,EAAU,IAAIQ,QAAQR,EAASC,GACzBzC,EAAMwC,EAAQxC,IACdD,EAAgB,gBAElBgC,EAAQ,CAAFgB,EAAApE,KAAA,YACFqB,EAAIiD,WAAWlD,GAAc,CAAAgD,EAAApE,KAAA,eAAAoE,EAAApE,KAAA,EAChBiB,EAAiBG,EAAeC,GAAI,OACtB,OAWsB,OAmBtB,eAAA+C,EAAAzD,OAAA,SAAAyD,EAAAxD,MA/BsB,cAAAwD,EAAApE,KAAA,EACxCsD,EAAUO,GAAQ,UAGT,MAAtB3B,KAAKqC,eAAsC,MAAbhB,EAAiB,CAAAa,EAAApE,KAAA,eAAAoE,EAAAzD,OAAA,SACxC+B,SAAS8B,SAAO,OAG6B,GAAxDX,EAAU,IAAIQ,QAAQR,EAAS,CAAEY,YAAa,SAAUL,EAAArE,KAAA,GAGhDsB,EAAIiD,WAAWlD,GAAgB,CAAFgD,EAAApE,KAAA,eAAAoE,EAAApE,KAAA,EAChBiB,EAAiBG,EAAeC,GAAI,UAE5CwB,EAAOxB,KAASwB,EAAOU,GAAU,CAAAa,EAAApE,KAAA,aAGlC+C,EAAO1B,GAAKiD,WAAWf,GAAY,CAAFa,EAAApE,KAAA,SAQ9B,OAPG+D,EAAQ7B,KAAKwC,aAEbV,EAASW,KAAKC,MAAMD,KAAKE,UAAUhB,EAAS,CAC9C,cACA,UACA,SACA,UACDO,EAAApE,KAAA,EAC6B+D,EAAMV,MAAMQ,EAAQxC,IAAK2C,GAAO,OAA3C,OAA2CC,EAAAG,EAAAxD,KAAxDsD,EAAID,EAAJC,KAAM1C,EAAOyC,EAAPzC,QAAO4C,EAAAzD,OAAA,SACd,IAAI+B,SAASwB,EAAM1C,IAAQ,cAEhC,IAAIjC,MAAM,yCAAwC,eAAA6E,EAAApE,KAAA,GAE/CsD,EAAUO,GAAQ,QAGiD,OAHjDO,EAAArE,KAAA,GAAAoE,EAAAC,EAAA,SAG/BU,QAAQN,MAAM,8BAADtF,OAA+BmC,EAAG,kBAAAnC,OAAiBiF,EAAEY,aAAcX,EAAAzD,OAAA,SACzE+B,SAAS8B,SAAO,yBAAAJ,EAAAvD,OAAA,EAAA+C,EAAA,mBAE9B7C,MAAA,KAAAC,UAAA,CAEL,EAIMgE,EAAa,WAEf,GAA+B,oBAA3BC,WAAWC,OAAO/F,KAAtB,CACW,IACLgG,EAAe,SAAAC,GACjB,SAAAD,EAAY9D,EAAKG,GAAS,IAAA6D,EACtB,IADsBrG,EAAAA,EAAAA,GAAA,KAAAmG,IACK,KAAvB3D,aAAO,EAAPA,EAAS8D,WAAoB,CAC7B,IAAMC,EAAS,IAAIzC,IAAIzB,GAAK4B,KACtBM,EAAYgC,EAAOlD,UAAU,EAAGkD,EAAOrC,YAAY,MAGnDsC,EAAe,mCAAAtG,OACLqE,EAAS,+EAAArE,OACgCmC,EAAG,mCAAAnC,OAChDmC,EAAG,gDAErBoE,QAAQ,MAAO,IACTJ,EAAApG,EAAA,KAAAkG,EAAA,gCAAAjG,OAAqCwG,KAAKF,KAC9C,MAEIH,EAAApG,EAAA,KAAAkG,EAAA,CAAM9D,EAAKG,IACd,OAAAmE,EAAAA,EAAAA,GAAAN,EACL,CAAC,OAAAjG,EAAAA,EAAAA,GAAA+F,EAAAC,IAAA/F,EAAAA,EAAAA,GAAA8F,EAAA,CAlBgB,EAkBhB7F,EAAAA,EAAAA,GAlByB4F,SAoB9BD,WAAWC,OAASC,CArBV,CAsBd,EAIMS,EAAmB,WAAM,IAAAC,EAE3B,GAAoC,OAAtB,OAAVZ,iBAAU,IAAVA,gBAAU,EAAVA,WAAYa,kBAAhB,CAEA,IAAMC,EAAOC,OAAOC,yBAAyBH,iBAAiBI,UAAW,OAEjD,kBAApBH,SAAS,QAALF,EAAJE,EAAMI,WAAG,IAAAN,OAAA,EAATA,EAAW1G,OAgBf6G,OAAOI,eAAeN,iBAAiBI,UAAW,MAAKG,EAAAA,EAAA,GAChDN,GAAI,IACPO,IAAK,WAAY,IAAAC,EACb,OAAOR,SAAS,QAALQ,EAAJR,EAAMO,WAAG,IAAAC,OAAA,EAATA,EAAWC,KAAKC,KAC3B,EACAN,IAnBJ,SAAsBO,GAAG,IAAAC,EAAA,KACfrF,EAAS,eACf,GAAIoF,EAAEpC,WAAWhD,GAAS,CACtB,IAAMC,EAAOmF,EAAE9E,MAAMN,KACrB5B,EAAAA,EAAAA,GAAAC,IAAAA,KAAC,SAAAiH,IAAA,IAAAC,EAAAC,EAAAC,EAAAC,EAAAnH,EAAAoH,EAAAC,EAAAC,EAAAC,EAAAC,EAAA,OAAA1H,IAAAA,KAAA,SAAA2H,GAAA,cAAAA,EAAAvH,KAAAuH,EAAAtH,MAAA,cAAAsH,EAAAtH,KAAA,EAE4C,QAF5C8G,EAE0B7B,WAAWsC,eAAO,IAAAT,GAAS,QAATC,EAAlBD,EAAoB1E,eAAO,IAAA2E,OAAA,EAA3BA,EAAAP,KAAAM,EAA8BvF,GAAK,UAAA2F,EAAAL,EAAAS,EAAA1G,KAAAqG,EAAA,OAAAC,EAAA,CAAAI,EAAAtH,KAAA,QAAAiH,OAAA,IAAAJ,EAAA,WAAAI,EAAA,CAAAK,EAAAtH,KAAA,QAAAmH,OAAA,EAAAG,EAAAtH,KAAA,eAAAmH,EAA1CN,EAA6CtE,OAAM,OAC1D,GADH1C,EAAOsH,EACbpB,SAAS,QAALiB,EAAJjB,EAAMI,WAAG,IAAAa,EAAA,CAAAM,EAAAtH,KAAA,QAAW,OAAXoH,EAAAJ,EAAAK,EAAOV,EAAIW,EAAAtH,KAAA,EAAQR,EAAUK,GAAQ,OAAAuH,EAAnCZ,KAAIA,KAAAY,EAAAC,EAAAC,EAAA1G,MAAA,wBAAA0G,EAAAzG,OAAA,EAAA+F,EAAA,GAHnBlH,EAKJ,KACK,KAAA8H,EACDzB,SAAS,QAALyB,EAAJzB,EAAMI,WAAG,IAAAqB,GAATA,EAAWhB,KAAKC,KAAMC,EAC1B,CACJ,IAlBU,CA0Bd,C,iCClLO,IAAMe,EAAU,Q,+sBCIqB,IACtCC,EAAgB,WAwClB,OAAArI,EAAAA,EAAAA,GAvCA,SAAAqI,EAAYlG,GAAS,IAAAzC,EAAA,MAAAC,EAAAA,EAAAA,GAAA,KAAA0I,GACjBjB,KAAKkB,OAAS,IAAIC,EAAAA,EAClBnB,KAAKoB,cAAgB,GACrBpB,KAAKqB,SAAW,SAACC,GAAC,OAAKA,CAAC,EACxBtB,KAAKuB,SAAWxG,EAChBiF,KAAKwB,SAA8B,KAApBzG,aAAO,EAAPA,EAAS4B,QACxBqD,KAAKyB,aAAehG,KAAKsB,WAAa,IAAMiE,EAAAA,EAAU,IAAMhB,KAAK0B,YAKjEhF,EAAAA,EAAAA,IAAUsD,KAAK2B,YAEflG,KAAKC,QAAUsE,KAEI,MAAfvE,KAAKmG,SACLnG,KAAKmG,OAASnG,MAElBA,KAAKoG,OAAU7B,KAAK2B,WAEd,SAAgBG,EAAOC,GACrB,IAAMC,EAASC,SAASC,cAAc,UAKtC,OAJa,MAATJ,IACAE,EAAOF,MAAQA,GACL,MAAVC,IACAC,EAAOD,OAASA,GACbC,CACX,EARExD,WAAW2D,gBAUG,MAAhB1G,KAAK2G,UACL3G,KAAK2G,QAAU5D,WAAW6D,QAC9B7D,WAAW6D,OAAS,SAACC,GAAC,OAAKhK,EAAKiK,MAAMD,EAAE,EAGpCtC,KAAK2B,aACL3B,KAAKwC,YAAc,IAAIC,EAAAA,IAE3BhH,KAAKsB,gBAAa2F,CACtB,EACA,EAAAC,IAAA,UAAAC,MAGA,WACI,OAAO5B,EAAAA,CACX,GACA,CAAA2B,IAAA,WAAAC,MAIA,WACI,MAAM,IAAIzK,EAAAA,GAAoB,WAClC,GACA,CAAAwK,IAAA,WAAAC,MAGA,WACI,OAAO5C,KAAKwB,OAChB,GACA,CAAAmB,IAAA,cAAAC,MAGA,WACI,OAAO5C,KAAKyB,YAChB,GACA,CAAAkB,IAAA,kBAAAC,MAIA,WACI,OAAoB,MAAb5C,KAAK6C,IAChB,GACA,CAAAF,IAAA,cAAAC,OAAAE,GAAA7J,EAAAA,EAAAA,GAAAC,IAAAA,KAGA,SAAAC,IAAA,OAAAD,IAAAA,KAAA,SAAAG,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,aACU,IAAIpB,EAAAA,GAAoB,eAAc,wBAAAkB,EAAAe,OAAA,EAAAjB,EAAA,IAC/C,WAFgB,OAAA2J,EAAAxI,MAAC,KAADC,UAAA,IAGjB,CAAAoI,IAAA,aAAAC,OAAAG,GAAA9J,EAAAA,EAAAA,GAAAC,IAAAA,KAGA,SAAAwB,IAAA,OAAAxB,IAAAA,KAAA,SAAAgC,GAAA,cAAAA,EAAA5B,KAAA4B,EAAA3B,MAAA,aACU,IAAIpB,EAAAA,GAAoB,cAAa,wBAAA+C,EAAAd,OAAA,EAAAM,EAAA,IAC9C,WAFe,OAAAqI,EAAAzI,MAAC,KAADC,UAAA,IAGhB,CAAAoI,IAAA,SAAAC,MAGA,SAAOI,GACHhD,KAAK6C,KAAOG,CAChB,GACA,CAAAL,IAAA,iBAAAC,MAGA,SAAeK,GACXjD,KAAKoB,cAAc8B,KAAKD,EAC5B,GACA,CAAAN,IAAA,wBAAAC,OAAAO,GAAAlK,EAAAA,EAAAA,GAAAC,IAAAA,KAIA,SAAAiE,EAA4BwF,EAAKS,GAAI,IAAAC,EAAA,OAAAnK,IAAAA,KAAA,SAAAyE,GAAA,cAAAA,EAAArE,KAAAqE,EAAApE,MAAA,OACT,OAAxByG,KAAKsD,aAAeX,EAAIhF,EAAApE,KAAA,EACD,mJAAmB,OAApC8J,EAAQ1F,EAAAxD,KACd6F,KAAKqB,SAAW,SAACkC,GAAO,OAAKF,EAASG,IAAIC,QAAQF,EAASH,GAAM9E,SAAS+E,EAASK,IAAIC,KAAK,EAAC,wBAAAhG,EAAAvD,OAAA,EAAA+C,EAAA,SAChG,SAJ0B9C,EAAA6B,GAAA,OAAAiH,EAAA7I,MAAC,KAADC,UAAA,IAK3B,CAAAoI,IAAA,QAAAC,OAAAgB,GAAA3K,EAAAA,EAAAA,GAAAC,IAAAA,KAGA,SAAAiH,IAAA,OAAAjH,IAAAA,KAAA,SAAA2H,GAAA,cAAAA,EAAAvH,KAAAuH,EAAAtH,MAAA,wBAAAsH,EAAAzG,OAAA,EAAA+F,EAAA,IAAiB,WAAN,OAAAyD,EAAAtJ,MAAC,KAADC,UAAA,IACX,CAAAoI,IAAA,OAAAC,OAAAiB,GAAA5K,EAAAA,EAAAA,GAAAC,IAAAA,KAGA,SAAA4K,IAAA,IAAAC,EAAA,OAAA7K,IAAAA,KAAA,SAAA8K,GAAA,cAAAA,EAAA1K,KAAA0K,EAAAzK,MAAA,cAAAyK,EAAA1K,KAAA,EAAA0K,EAAAzK,KAAA,EAEcyG,KAAKiE,QAAO,OAClBjE,KAAKkB,OAAOzH,UAAUuK,EAAAzK,KAAA,eAGI,MAHJyK,EAAA1K,KAAA,EAAAyK,EAAAC,EAAA,SAGtBhE,KAAKkB,OAAOxH,OAAMqK,GAAQA,EAAA,wBAAAC,EAAA5J,OAAA,EAAA0J,EAAA,iBAGjC,WATS,OAAAD,EAAAvJ,MAAC,KAADC,UAAA,IAUV,CAAAoI,IAAA,QAAAC,MAGA,WACI,OAAO5C,KAAKkB,OAAO+B,OACvB,GACA,CAAAN,IAAA,cAAAC,MAGA,SAAYsB,GAAM,IAAAtF,EAAA,KACdoB,KAAKmE,YAAcD,EAAKC,YAAYC,KAAKF,GACzCA,EAAKG,UAAY,SAACpE,GAAC,OAAKrB,EAAK0F,yBAAyBrE,EAAEsE,KAAK,CACjE,GACA,CAAA5B,IAAA,eAAAC,MAGA,SAAasB,GACTzI,KAAKwC,cAAeuG,EAAAA,EAAAA,IAAKN,EAC7B,GACA,CAAAvB,IAAA,aAAAC,MAGA,SAAW2B,EAAME,EAAQC,GAAM,IAAAC,EACX,QAAhBA,EAAA3E,KAAKmE,mBAAW,IAAAQ,GAAhBA,EAAA5E,KAAAC,KAAmB,CACfuE,KAAAA,EACAK,KAAM,SACNxL,QAAS,CAAEqL,OAAAA,EAAQC,KAAAA,IAE3B,GACA,CAAA/B,IAAA,mBAAAC,MAGA,SAAiB2B,EAAMG,GACnB1E,KAAK6E,WAAWN,EAAM,SAAUG,EACpC,GACA,CAAA/B,IAAA,mBAAAC,MAGA,SAAiB2B,EAAMG,GACnB1E,KAAK6E,WAAWN,EAAM,SAAUG,EACpC,GAAC,CAAA/B,IAAA,gBAAAC,OAAAkC,GAAA7L,EAAAA,EAAAA,GAAAC,IAAAA,KACD,SAAA6L,EAAoBC,GAAI,OAAA9L,IAAAA,KAAA,SAAA+L,GAAA,cAAAA,EAAA3L,KAAA2L,EAAA1L,MAAA,cAAA0L,EAAA1L,KAAA,EACP,IAAIC,QAAQ,SAACC,GACtB,IAAME,EAAS,IAAIC,WACnBD,EAAOE,UAAY,kBAAMJ,EAAQE,EAAOG,OAAO,EAC/CH,EAAOK,cAAcgL,EACzB,GAAE,cAAAC,EAAA/K,OAAA,SAAA+K,EAAA9K,MAAA,wBAAA8K,EAAA7K,OAAA,EAAA2K,EAAA,IACL,SANkB5I,GAAA,OAAA2I,EAAAxK,MAAC,KAADC,UAAA,IAOnB,CAAAoI,IAAA,cAAAC,OAAAsC,GAAAjM,EAAAA,EAAAA,GAAAC,IAAAA,KAGA,SAAAiM,EAAkBH,EAAMT,GAAI,IAAAa,EAAApK,EAAAqK,EAAAC,EAAA,OAAApM,IAAAA,KAAA,SAAAqM,GAAA,cAAAA,EAAAjM,KAAAiM,EAAAhM,MAAA,OAEkB,OAD9B,MAARgL,IACAA,EAAOvE,KAAKwF,MAAMxF,KAAKyF,gBAAeF,EAAAhM,KAAA,EACpByG,KAAK0F,cAAcV,GAAK,OACJ,GADpChK,EAAOuK,EAAApL,KACPkL,EAAY,0BACdrK,EAAQ6C,WAAWwH,GAAY,CAAFE,EAAAhM,KAAA,QACvB+L,EAAMtK,EAAQG,MAAMkK,IAC1Bd,EAAmB,aAAI,WACvBA,EAAc,QAAI,CAAE,YAAae,GAAMC,EAAAhM,KAAA,sBAAAgM,EAAArL,OAAA,iBAK3B,QAAhBkL,EAAApF,KAAKmE,mBAAW,IAAAiB,GAAhBA,EAAArF,KAAAC,KAAmB,CAAEuE,KAAAA,EAAMK,KAAM,YAAa,wBAAAW,EAAAnL,OAAA,EAAA+K,EAAA,SACjD,SAdgBnI,EAAAC,GAAA,OAAAiI,EAAA5K,MAAC,KAADC,UAAA,IAejB,CAAAoI,IAAA,UAAAC,MAGA,SAAQ+C,GAAS,IAAAzF,EAAA,KACPqE,EAAOvE,KAAKwF,MAAMxF,KAAKyF,eAC7B,GAAkC,MAA9BjH,WAAW2D,iBACXwD,aAAmBxD,gBACnBnC,KAAK4F,gBAAe3M,EAAAA,EAAAA,GAAAC,IAAAA,KAAC,SAAA2M,IAAA,IAAAb,EAAA,OAAA9L,IAAAA,KAAA,SAAA4M,GAAA,cAAAA,EAAAxM,KAAAwM,EAAAvM,MAAA,cAAAuM,EAAAvM,KAAA,EACEoM,EAAQI,gBAAe,OAAhC,OAAJf,EAAIc,EAAA3L,KAAA2L,EAAAvM,KAAG,EACP2G,EAAK8F,YAAYhB,EAAMT,GAAK,wBAAAuB,EAAA1L,OAAA,EAAAyL,EAAA,GAFlB5M,QAKnB,KAAAgN,EAEsDC,EAAAC,EAAvD,GAAInG,KAAK2B,YAAcgE,aAAmBS,YACtC7B,EAAmB,aAAI,WACvBA,EAAc,QAAoB,QAAnB2B,EAAGlG,KAAKwC,mBAAW,IAAA0D,GAAM,QAANC,EAAhBD,EAAkBhD,YAAI,IAAAiD,OAAA,EAAtBA,EAAApG,KAAAmG,EAAyBP,QAG3CpB,EAAmB,aAAI,WACvBA,EAAc,QAAIoB,EAEN,QAAhBM,EAAAjG,KAAKmE,mBAAW,IAAA8B,GAAhBA,EAAAlG,KAAAC,KAAmB,CAAEuE,KAAAA,EAAMK,KAAM,WACrC,CACJ,GACA,CAAAjC,IAAA,cAAAC,MAGA,SAAYyD,GAAM,IAAAC,EACR/B,EAAOvE,KAAKwF,MAAMxF,KAAKyF,eAC7BlB,EAAc,QAAI,CAAE8B,KAAAA,GACJ,QAAhBC,EAAAtG,KAAKmE,mBAAW,IAAAmC,GAAhBA,EAAAvG,KAAAC,KAAmB,CAAEuE,KAAAA,EAAMK,KAAM,gBACrC,GACA,CAAAjC,IAAA,aAAAC,MAIA,SAAW2D,GAAI,IAAAC,EACX,OAAuB,QAAvBA,EAAOxG,KAAKwC,mBAAW,IAAAgE,OAAA,EAAhBA,EAAkBC,IAAIF,EACjC,GACA,CAAA5D,IAAA,QAAAC,OAAA8D,GAAAzN,EAAAA,EAAAA,GAAAC,IAAAA,KAIA,SAAAyN,EAAYpC,EAAMqC,GAAI,OAAA1N,IAAAA,KAAA,SAAA2N,GAAA,cAAAA,EAAAvN,KAAAuN,EAAAtN,MAAA,aACZ,IAAIpB,EAAAA,GAAoB,SAAQ,wBAAA0O,EAAAzM,OAAA,EAAAuM,EAAA,IACzC,SAFUG,EAAAC,GAAA,OAAAL,EAAApM,MAAC,KAADC,UAAA,IAGX,CAAAoI,IAAA,OAAAC,OAAAoE,GAAA/N,EAAAA,EAAAA,GAAAC,IAAAA,KAGA,SAAA+N,EAAW1C,EAAMqC,GAAI,IAAAM,EAAAC,EAAArN,EAAApB,EAAA0O,EAAA7D,EAAA7F,EAAA,OAAAxE,IAAAA,KAAA,SAAAmO,GAAA,cAAAA,EAAA/N,KAAA+N,EAAA9N,MAAA,OAES,OAD1ByG,KAAKoB,cAAgB,GACrBpB,KAAKyF,cAAgBlB,EAAK8C,EAAA/N,KAAA,EAAA+N,EAAA9N,KAAA,EAGDyG,KAAKsH,MAAM/C,EAAMqC,GAAK,OAArC9M,EAAMuN,EAAAlN,KACZgN,EAAM,CAAE5C,KAAAA,EAAMlJ,OAAQ,KAAMvB,OAAAA,GAASuN,EAAA9N,KAAA,eAAA8N,EAAA/N,KAAA,EAAAoE,EAAA2J,EAAA,SAG7B3O,EAAIgF,EAAJhF,KAAM0O,EAAK1J,EAAL0J,MAAO7D,EAAO7F,EAAP6F,QACrBvD,KAAKuH,iBAAiBhD,EAAM7G,EAAEY,YAC9B6I,EAAM,CACF5C,KAAAA,EACAlJ,OAAQ,QACR0C,MAAO,CACHrF,KAAMA,EACNkK,MAAOW,EACPiE,UAAWJ,aAAK,EAALA,EAAO9I,aAExB,OAEoC,OAA1B,QAAhB4I,EAAAlH,KAAKmE,mBAAW,IAAA+C,GAAhBA,EAAAnH,KAAAC,KAAmB,CAAE4E,KAAM,aAAeyC,EAAA9N,KAAA,EACpCC,QAAQiO,IAAIzH,KAAKoB,eAAc,cAAAiG,EAAAnN,OAAA,SAC9BiN,GAAG,wBAAAE,EAAAjN,OAAA,EAAA6M,EAAA,iBACb,SAxBSS,EAAAC,GAAA,OAAAX,EAAA1M,MAAC,KAADC,UAAA,IAyBV,CAAAoI,IAAA,UAAAC,MAGA,SAAQgF,EAAUxO,GACd,MAAM,IAAIjB,EAAAA,GAAoB,UAClC,GACA,CAAAwK,IAAA,YAAAC,MAIA,SAAUgF,EAAUxO,GAChB,MAAM,IAAIjB,EAAAA,GAAoB,YAClC,GACA,CAAAwK,IAAA,WAAAC,OAAAiF,GAAA5O,EAAAA,EAAAA,GAAAC,IAAAA,KAGA,SAAA4O,EAAelB,GAAI,OAAA1N,IAAAA,KAAA,SAAA6O,GAAA,cAAAA,EAAAzO,KAAAyO,EAAAxO,MAAA,cAAAwO,EAAA7N,OAAA,SACR,IAAE,wBAAA6N,EAAA3N,OAAA,EAAA0N,EAAA,IACZ,SAFaE,GAAA,OAAAH,EAAAvN,MAAC,KAADC,UAAA,IAGd,CAAAoI,IAAA,OAAAC,OAAAqF,GAAAhP,EAAAA,EAAAA,GAAAC,IAAAA,KAMA,SAAAgP,EAAWtB,GAAI,OAAA1N,IAAAA,KAAA,SAAAiP,GAAA,cAAAA,EAAA7O,KAAA6O,EAAA5O,MAAA,aACL,IAAIpB,EAAAA,GAAoB,QAAO,wBAAAgQ,EAAA/N,OAAA,EAAA8N,EAAA,IACxC,SAFSE,GAAA,OAAAH,EAAA3N,MAAC,KAADC,UAAA,IAGV,CAAAoI,IAAA,WAAAC,MAGA,SAASxJ,EAASwO,GAAU,IAAAS,EACR,QAAhBA,EAAArI,KAAKmE,mBAAW,IAAAkE,GAAhBA,EAAAtI,KAAAC,KAAmB,CACf4E,KAAM,WACNxL,QAAS,CAAEA,QAAAA,EAASwO,SAAAA,IAE5B,GACA,CAAAjF,IAAA,QAAAC,MAGA,SAAM2B,GACF,OAAOrG,KAAKC,MAAMD,KAAKE,UAAUmG,GACrC,GACA,CAAA5B,IAAA,QAAAC,MAGA,SAAM0F,GAEF,GADAA,GAAsB,IAClBtI,KAAKuI,kBAIL,OAFAC,QAAQC,MAAM,IAAIC,WAAW1I,KAAK6C,MAAO,EAAG,QAC5C2F,QAAQnC,KAAK,IAAIqC,WAAW1I,KAAK6C,MAAO,EAAG,EAAGyF,GAM9C,IADA,IAAMK,EAAKC,KAAKC,MACTD,KAAKC,MAAQF,EAAKL,IAGjC,GACA,CAAA3F,IAAA,0BAAAC,MAKA,SAAwBI,GAGpB,IAFA,IAAM8F,EAAQ,IAAIC,WAAW/F,GACzB5H,EAAS0N,EAAM1N,OACZA,EAAS,GAA2B,IAAtB0N,EAAM1N,EAAS,GAAUA,KAE9C,GAAe,IAAXA,EACA,MAAO,GACX,IAAM4N,EAAU,IAAID,WAAW3N,GAC/B4N,EAAQtJ,IAAIoJ,EAAMG,SAAS,EAAG7N,IAC9B,IACI,OAAO,IAAI8N,aAAcC,OAAOH,EACpC,CACA,MAAO/I,GACH,GAAI6I,EAAM1N,SAAWA,EACjB,MAAM,IAAItC,MAAM,iCACpB,MAAMmH,CACV,CACJ,GACA,CAAA0C,IAAA,QAAAC,MAIA,SAAMP,GAA0B,IAeG+G,EAfHC,EAAA,KAAlBC,EAAQ/O,UAAAa,OAAA,QAAAsH,IAAAnI,UAAA,IAAAA,UAAA,GACZgP,EAAY,WAAM,IAAAC,EACdjF,EAAO8E,EAAK7D,MAAM6D,EAAK5D,eACb,QAAhB+D,EAAAH,EAAKlF,mBAAW,IAAAqF,GAAhBA,EAAAzJ,KAAAsJ,EAAmB,CACfzE,KAAM,QACNxL,QAAS,CAAEmL,KAAAA,EAAMlC,OAAAA,EAAQiH,SAAAA,IAEjC,EACA,GAAItJ,KAAKuI,kBAKL,OAJAgB,IAEAf,QAAQC,MAAM,IAAIC,WAAW1I,KAAK6C,MAAO,EAAG,GAC5C2F,QAAQnC,KAAK,IAAIqC,WAAW1I,KAAK6C,MAAO,EAAG,GACpC7C,KAAKyJ,wBAAwBzJ,KAAK6C,MAExC,GAAoB,MAAhBpH,KAAK2G,QAEV,OAAiC,QAAjCgH,EAAO3N,KAAK2G,QAAQC,QAAAA,EAAU,WAAG,IAAA+G,EAAAA,EAAI,GAGrCG,IAIA,IAHA,IACMG,EAAOd,KAAKC,MADF,KAGTD,KAAKC,MAAQa,GAAM,KAAAC,EAChBvM,EAAU,IAAIwM,eAIpB,GAHAxM,EAAQyM,KAAK,OAAQ,oCAAoC,GACzDzM,EAAQ0M,iBAAiB,gBAAkC,QAAnBH,EAAE3J,KAAKyB,oBAAY,IAAAkI,EAAAA,EAAI,QAC/DvM,EAAQ2M,KAAK7L,KAAKE,UAAU,CAAE4L,OAAQ,MAAOrH,IAAK3C,KAAKsD,gBAChC,MAAnBlG,EAAQ/B,OACR,OAAO2E,KAAKqB,SAASjE,EAAQ6M,aACrC,CACA,MAAM,IAAInR,MAAM,wCAExB,GACA,CAAA6J,IAAA,2BAAAC,OAAAsH,GAAAjR,EAAAA,EAAAA,GAAAC,IAAAA,KAGA,SAAAiR,EAA+BC,GAAG,IAAAC,EAAA7J,EAAA,OAAAtH,IAAAA,KAAA,SAAAoR,GAAA,cAAAA,EAAAhR,KAAAgR,EAAA/Q,MAAA,OAAAiH,EACtB4J,EAAIxF,KAAI0F,EAAA/Q,KACP,mBADOiH,EACS,iBACgC,OAAvB,QAA1B6J,EAAArK,KAAKuK,6BAAqB,IAAAF,GAA1BA,EAA4B5Q,QAAQ2Q,EAAIhR,SAASkR,EAAApQ,OAAA,4BAAAoQ,EAAApQ,OAAA,sCAAAoQ,EAAAlQ,OAAA,EAAA+P,EAAA,SAK5D,SAR6BK,GAAA,OAAAN,EAAA5P,MAAC,KAADC,UAAA,IAS9B,CAAAoI,IAAA,gBAAAC,OAAA6H,GAAAxR,EAAAA,EAAAA,GAAAC,IAAAA,KAIA,SAAAwR,EAAoBrI,GAAM,IAAAsI,EAAArB,EAAA/E,EAAA4C,EAAAyD,EAAArQ,UAAA,OAAArB,IAAAA,KAAA,SAAA2R,GAAA,cAAAA,EAAAvR,KAAAuR,EAAAtR,MAAA,OAKnB,OALqB+P,EAAQsB,EAAAxP,OAAA,QAAAsH,IAAAkI,EAAA,IAAAA,EAAA,GAAUrG,EAAIqG,EAAAxP,OAAA,QAAAsH,IAAAkI,EAAA,GAAAA,EAAA,QAAGlI,EACjD1C,KAAKuK,sBAAwB,IAAIpJ,EAAAA,EACjB,QAAhBwJ,EAAA3K,KAAKmE,mBAAW,IAAAwG,GAAhBA,EAAA5K,KAAAC,KAAmB,CACf4E,KAAM,QACNxL,QAAS,CAAEmL,KAAAA,EAAMlC,OAAAA,EAAQiH,SAAAA,EAAUwB,UAAU,KAC9CD,EAAAtR,KAAA,EACeyG,KAAKuK,sBAAsBtH,QAAO,OACb,OADjCkE,EAAG0D,EAAA1Q,KACT6F,KAAKuK,2BAAwB7H,EAAUmI,EAAA3Q,OAAA,SAChCiN,GAAG,wBAAA0D,EAAAzQ,OAAA,EAAAsQ,EAAA,SACb,SATkBK,GAAA,OAAAN,EAAAnQ,MAAC,KAADC,UAAA,IAUnB,CAAAoI,IAAA,mBAAAC,MAGA,WAAmB,IAAAoI,EACTzG,EAAOvE,KAAKwF,MAAMxF,KAAKyF,eACb,QAAhBuF,EAAAhL,KAAKmE,mBAAW,IAAA6G,GAAhBA,EAAAjL,KAAAC,KAAmB,CAAE4E,KAAM,qBAAsBxL,QAAS,CAAEmL,KAAAA,IAChE,GACA,CAAA5B,IAAA,sBAAAC,MAIA,SAAoBqI,GAAY,IAAAC,EAC5BC,EAAyB,IAAIC,eAArBC,EAAKF,EAALE,MAAOC,EAAKH,EAALG,MACTlS,EAAU,CAAEmS,KAAMN,EAAY/G,KAAMmH,GAEpC9G,EAAI3E,EAAAA,EAAA,GAAQI,KAAKwF,MAAMxF,KAAKyF,gBAAc,IAAErM,QAAAA,EAASoS,aADtC,kBAGrB,OADgB,QAAhBN,EAAAlL,KAAKmE,mBAAW,IAAA+G,GAAhBA,EAAAnL,KAAAC,KAAmB,CAAEuE,KAAAA,EAAMK,KAAM,WAAa,CAACyG,IACxCC,CACX,KAhCA,IAAAb,EAZAP,EAxGAjC,EANAJ,EAzCAb,EAPAN,EA1DAxB,EARCJ,EArDDjB,EAJAD,EATAT,EAlBAJ,EANAD,CAsWC,CA9aiB,E,ySCJtB,IAGM2I,EAAS,SAACC,GACZ,GAFyB,oBAAtBC,mBAAqClQ,gBAAgBkQ,kBAEpC,CAEhB,IAAMC,EAAW,SAACxB,IACRA,aAAG,EAAHA,EAAK7F,gBAAgBsH,cAE3BC,oBAAoB,UAAWF,IAC/BG,EAAAA,EAAAA,GAAcL,EAAKtB,EAAI7F,MAC3B,EACAyH,iBAAiB,UAAWJ,EAChC,MAGIG,EAAAA,EAAAA,GAAcL,EAAKjQ,KAAKwQ,WACxBxQ,KAAKwQ,eAAYvJ,CAEzB,EAKMD,EAAU,SAAAyJ,GAAA,SAAAzJ,IAAA,OAAAlK,EAAAA,EAAAA,GAAA,KAAAkK,G,EAAA,K,EAAAA,E,EAAAlI,U,oGAAA,QAAA5B,EAAAA,EAAAA,GAAA8J,EAAAyJ,IAAAtT,EAAAA,EAAAA,GAAA6J,EAAA,EAAAE,IAAA,OAAAC,MAIZ,SAAKuJ,GAED,IADA,IAAI5F,EAAK,EACFA,EAAKvG,KAAKoM,MACRpM,KAAKqM,IAAI9F,GADKA,KAIvB,OADAvG,KAAKN,IAAI6G,EAAI4F,GACN5F,CACX,GACA,CAAA5D,IAAA,MAAAC,MAGA,SAAI2D,GACA,IAAMY,EAAMnH,KAAKH,IAAI0G,GAErB,OADAvG,KAAI,OAAQuG,GACLY,CACX,IAAC,CAnBW,EAmBXtO,EAAAA,EAAAA,GAnBoByT,MAwBnBC,EAAU,eAAAvT,GAAAC,EAAAA,EAAAA,GAAAC,IAAAA,KAAG,SAAAC,EAAOyB,GAAG,OAAA1B,IAAAA,KAAA,SAAAG,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,UACO,MAA5BiF,WAAWV,cAAqB,CAAAzE,EAAAE,KAAA,eAAAF,EAAAa,OAAA,SACzB4D,cAAclD,IAAI,cAAAvB,EAAAa,OAAA,SAEtB,IAAIV,QAAQ,SAACC,EAASC,GACzB,IAAM8S,EAASvK,SAASC,cAAc,UACtCsK,EAAOC,OAAShT,EAChB+S,EAAOzS,QAAUL,EACjB8S,EAAOE,IAAM9R,EACbqH,SAAS0K,KAAKC,YAAYJ,EAC9B,IAAE,wBAAAnT,EAAAe,OAAA,EAAAjB,EAAA,IACL,gBAXekB,GAAA,OAAArB,EAAAsB,MAAA,KAAAC,UAAA,I","sources":["webpack://@basthon/browser-bundle/../kernel-base/lib/commons.js","webpack://@basthon/browser-bundle/../kernel-base/lib/version.js","webpack://@basthon/browser-bundle/../kernel-base/lib/worker/kernel-worker.js","webpack://@basthon/browser-bundle/../kernel-base/lib/worker/worker-utils.js"],"sourcesContent":["/**\n * An error thrown by not implemented API functions.\n */\nclass NotImplementedError extends Error {\n constructor(funcName) {\n super(`Function ${funcName} not implemented!`);\n this.name = \"NotImplementedError\";\n }\n}\n/**\n * Convert an Uint8Array to a data URL.\n */\nconst toDataURL = async (content) => {\n return await new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.onloadend = () => {\n resolve(reader.result);\n };\n reader.onerror = reject;\n reader.readAsDataURL(new Blob([content]));\n });\n};\n/* fetch from local FS */\nconst fetchFromLocalFS = async (localfsScheme, url) => {\n const prefix = localfsScheme;\n const path = url.slice(prefix.length);\n let content = null;\n const options = {\n status: 200,\n statusText: \"OK\",\n headers: new Headers(),\n };\n try {\n //@ts-ignore\n content = await self.basthon.getFile(path);\n const dataURL = await toDataURL(content);\n const mime = dataURL.substring(dataURL.indexOf(\":\") + 1, dataURL.indexOf(\";\"));\n content = content.buffer;\n options.headers.append(\"Content-Type\", mime);\n options.headers.append(\"Content-Length\", content.byteLength);\n }\n catch (e) {\n options.status = 404;\n options.statusText = \"Not Found\";\n }\n return new Response(content, options);\n};\n/**\n * Get the origin of an url.\n */\nconst origin = (url) => new URL(url).origin;\n/**\n * Get the parent path of an url.\n */\nconst parent = (url) => {\n const abs = new URL(url).href;\n return abs.substring(0, abs.lastIndexOf(\"/\"));\n};\n/**\n * we mock the fetch function to:\n * - redirect queries to local FS\n * - bypass the worker's opaque origin\n */\nconst mockFetch = (legacy) => {\n // already mocked?\n if (self.fetch.name === \"mockedFetch\")\n return;\n const trueFetch = self.fetch;\n const assetsURL = self._assetsURL;\n async function mockedFetch(request, init) {\n // build new request from init\n request = new Request(request, init);\n const url = request.url;\n const localfsScheme = \"filesystem:/\";\n // in legacy mode, only local FS is mocked\n if (legacy) {\n if (url.startsWith(localfsScheme))\n return await fetchFromLocalFS(localfsScheme, url);\n return await trueFetch(request);\n }\n // not a true worker? -> error\n if (self.importScripts == null || assetsURL == null)\n return Response.error();\n // non-legacy mode (true isolated secure worker)\n // ensure credentials are not sent\n request = new Request(request, { credentials: \"omit\" });\n try {\n // requests towards localfs\n if (url.startsWith(localfsScheme)) {\n return await fetchFromLocalFS(localfsScheme, url);\n }\n else if (origin(url) === origin(assetsURL)) {\n // requests towards same origin\n // only url under the assets folder are proxyied\n if (parent(url).startsWith(assetsURL)) {\n const proxy = self._remoteProxy;\n // request object is not (stuctured) clonable...\n const objReq = JSON.parse(JSON.stringify(request, [\n \"credentials\",\n \"headers\",\n \"method\",\n \"mode\",\n ]));\n const { body, options } = await proxy.fetch(request.url, objReq);\n return new Response(body, options);\n }\n throw new Error(\"Ressource is outside the proxy' scope\");\n }\n return await trueFetch(request);\n }\n catch (e) {\n console.error(`security proxy: request to ${url} throw error: ${e.toString()}`);\n return Response.error();\n }\n }\n self.fetch = mockedFetch;\n};\n/**\n * mock Worker to support sandboxing and keep webpack compatibility\n */\nconst mockWorker = () => {\n // already mocked?\n if (globalThis.Worker.name === \"SandboxedWorker\")\n return;\n class SandboxedWorker extends Worker {\n constructor(url, options) {\n if (options?.sandboxed === true) {\n const absURL = new URL(url).href;\n const assetsURL = absURL.substring(0, absURL.lastIndexOf(\"/\"));\n // worker created with a 'data' url scheme has opaque origin\n // https://html.spec.whatwg.org/multipage/workers.html#script-settings-for-workers:concept-origin-opaque\n const workerScript = `\n self._assetsURL = \"${assetsURL}\";\n globalThis = {importScripts: self.importScripts, location: \"${url}\"};\n importScripts(\"${url}\");\n globalThis = self;\n `.replace(/\\s/g, \"\");\n super(`data:text/javascript;base64,${btoa(workerScript)}`);\n }\n else {\n super(url, options);\n }\n }\n }\n globalThis.Worker = SandboxedWorker;\n};\n/**\n * we mock '(new Image()).src' = to support local fs access\n */\nconst mockHTMLImageSrc = () => {\n // inside main thread?\n if (globalThis?.HTMLImageElement == null)\n return;\n const desc = Object.getOwnPropertyDescriptor(HTMLImageElement.prototype, \"src\");\n // already mocked?\n if (desc?.set?.name === \"mockedSrcSet\")\n return;\n function mockedSrcSet(e) {\n const prefix = \"filesystem:/\";\n if (e.startsWith(prefix)) {\n const path = e.slice(prefix.length);\n (async () => {\n //@ts-ignore\n const content = (await globalThis.Basthon?.getFile?.(path))?.buffer;\n desc?.set?.call(this, await toDataURL(content));\n })();\n }\n else {\n desc?.set?.call(this, e);\n }\n }\n Object.defineProperty(HTMLImageElement.prototype, \"src\", {\n ...desc,\n get: function () {\n return desc?.get?.call(this);\n },\n set: mockedSrcSet,\n });\n};\nexport { NotImplementedError, mockFetch, mockWorker, mockHTMLImageSrc };\n","export const VERSION = \"0.76.0\";\n","import { PromiseDelegate } from \"promise-delegate\";\nimport { NotImplementedError, mockFetch } from \"../commons\";\nimport { wrap } from \"comlink\";\nimport { VERSION } from \"../version\";\nimport { DOMNodeBus } from \"./worker-utils\";\nclass KernelWorkerBase {\n constructor(options) {\n this._ready = new PromiseDelegate();\n this._evalPromises = []; // used to wait all promises emitted during computation\n this._decrypt = (s) => s;\n this._options = options;\n this._legacy = options?.legacy === true;\n this._basthonRoot = self._assetsURL + \"/\" + VERSION + \"/\" + this.language();\n /* we mock the fetch function to:\n * - redirect queries to local FS\n * - bypass the worker's opaque origin\n */\n mockFetch(this.isLegacy());\n // useful for ffi\n self.basthon = this;\n // the window object is not available in a webworker...\n if (self.window == null)\n self.window = self;\n // common way to create a canvas in worker and legacy mode\n self.Canvas = !this.isLegacy()\n ? globalThis.OffscreenCanvas\n : function Canvas(width, height) {\n const canvas = document.createElement(\"canvas\");\n if (width != null)\n canvas.width = width;\n if (height != null)\n canvas.height = height;\n return canvas;\n };\n // global prompt redirected to our input\n if (self._prompt == null)\n self._prompt = globalThis.prompt;\n globalThis.prompt = (p) => this.input(p);\n // DOM node bus in legacy mode\n // (to transfer elements from worker to main thread, they are the same!)\n if (this.isLegacy())\n this._domNodeBus = new DOMNodeBus();\n // not needed anymore\n self._assetsURL = undefined;\n }\n /**\n * Kernel version (same as main thread version() method).\n */\n version() {\n return VERSION;\n }\n /**\n * Language implemented in the kernel (string).\n * Generally lower case.\n */\n language() {\n throw new NotImplementedError(\"language\");\n }\n /**\n * Is this a legacy worker? i.e. not runing in a worker.\n */\n isLegacy() {\n return this._legacy;\n }\n /**\n * The basthon's root directory.\n */\n basthonRoot() {\n return this._basthonRoot;\n }\n /**\n * Is synchronous communication with main thread available?\n * (through SharedArrayBuffer atomic waits)\n */\n syncCommSupport() {\n return this._sab != null;\n }\n /**\n * Special case of starting a legacy kernel.\n */\n async legacyStart() {\n throw new NotImplementedError(\"legacyStart\");\n }\n /**\n * Special case of stoping a legacy kernel.\n */\n async legacyStop() {\n throw new NotImplementedError(\"legacyStop\");\n }\n /**\n * Set SharedArrayBuffer from main thread.\n */\n setSAB(sab) {\n this._sab = sab;\n }\n /**\n * Add a promise we should wait for during eval process.\n */\n addEvalPromise(promise) {\n this._evalPromises.push(promise);\n }\n /*\n * Set fallback API key and encryption pass\n * (if SharedArrayBuffer are not available).\n */\n async setFallbackKeyAndPass(key, pass) {\n this._fallbackKey = key;\n const CryptoJS = await import(\"crypto-js\");\n this._decrypt = (message) => CryptoJS.AES.decrypt(message, pass).toString(CryptoJS.enc.Utf8);\n }\n /*\n * Initialize the kernel. Should be overloaded.\n */\n async _init() { }\n /**\n * Initialize the kernel. It is called by initWorker in KernelBase.\n */\n async init() {\n try {\n await this._init();\n this._ready.resolve();\n }\n catch (error) {\n this._ready.reject(error);\n throw error;\n }\n }\n /**\n * Wait for the kernel to be ready.\n */\n ready() {\n return this._ready.promise;\n }\n /**\n * Set communication port.\n */\n setCommPort(port) {\n this.postMessage = port.postMessage.bind(port);\n port.onmessage = (e) => this.processMainThreadMessage(e.data);\n }\n /**\n * Set the comlink communication port to proxy fetch.\n */\n setProxyPort(port) {\n self._remoteProxy = wrap(port);\n }\n /**\n * Send stream to stdout/stderr.\n */\n sendStream(data, stream, text) {\n this.postMessage?.({\n data,\n type: \"stream\",\n content: { stream, text },\n });\n }\n /**\n * Send stream to stdout.\n */\n sendStdoutStream(data, text) {\n this.sendStream(data, \"stdout\", text);\n }\n /**\n * Send stream to stderr.\n */\n sendStderrStream(data, text) {\n this.sendStream(data, \"stderr\", text);\n }\n async blobToDataURL(blob) {\n return await new Promise((resolve) => {\n const reader = new FileReader();\n reader.onloadend = () => resolve(reader.result);\n reader.readAsDataURL(blob);\n });\n }\n /**\n * Display a blob (only png images are supported).\n */\n async displayBlob(blob, data) {\n if (data == null)\n data = this.clone(this.__eval_data__);\n const dataURL = await this.blobToDataURL(blob);\n const pngPrefix = \"data:image/png;base64,\";\n if (dataURL.startsWith(pngPrefix)) {\n const png = dataURL.slice(pngPrefix.length);\n data[\"display_type\"] = \"multiple\";\n data[\"content\"] = { \"image/png\": png };\n }\n else {\n return;\n }\n this.postMessage?.({ data, type: \"display\" });\n }\n /**\n * Display an element like a canvas, ... in the frontend.\n */\n display(element) {\n const data = this.clone(this.__eval_data__);\n if (globalThis.OffscreenCanvas != null &&\n element instanceof OffscreenCanvas) {\n this.addEvalPromise((async () => {\n const blob = await element.convertToBlob();\n await this.displayBlob(blob, data);\n })());\n }\n else {\n // in legacy mode, send HTML elements via DOM node bus\n if (this.isLegacy() && element instanceof HTMLElement) {\n data[\"display_type\"] = \"dom-node\";\n data[\"content\"] = this._domNodeBus?.push?.(element);\n }\n else {\n data[\"display_type\"] = \"multiple\";\n data[\"content\"] = element;\n }\n this.postMessage?.({ data, type: \"display\" });\n }\n }\n /**\n * Clear the current output.\n */\n clearOutput(wait) {\n const data = this.clone(this.__eval_data__);\n data[\"content\"] = { wait };\n this.postMessage?.({ data, type: \"clear_output\" });\n }\n /**\n * Pop a DOM node from domNodeBus\n * (used to transfer HTMLElement from main thread to worker thread in legacy mode)\n */\n popDOMNode(id) {\n return this._domNodeBus?.pop(id);\n }\n /**\n * Evaluate code and return an object with mime type keys and string value.\n * To be overloaded.\n */\n async _eval(data, code) {\n throw new NotImplementedError(\"_eval\");\n }\n /**\n * Evaluate a string of code. To be called by main thread (through comlink).\n */\n async eval(data, code) {\n this._evalPromises = [];\n this.__eval_data__ = data;\n let res;\n try {\n const result = await this._eval(data, code);\n res = { data, status: \"ok\", result };\n }\n catch (e) {\n const { name, stack, message } = e;\n this.sendStderrStream(data, e.toString());\n res = {\n data,\n status: \"error\",\n error: {\n name: name,\n value: message,\n traceback: stack?.toString(),\n },\n };\n }\n this.postMessage?.({ type: \"eval-end\" }); // for channel syncing\n await Promise.all(this._evalPromises);\n return res;\n }\n /**\n * Put a file on the local (emulated) filesystem.\n */\n putFile(filename, content) {\n throw new NotImplementedError(\"putFile\");\n }\n /**\n * Put an importable module on the local (emulated) filesystem\n * and load dependencies.\n */\n putModule(filename, content) {\n throw new NotImplementedError(\"putModule\");\n }\n /**\n * Complete the submited code.\n */\n async complete(code) {\n return [];\n }\n /**\n * Tell wether we should wait for more code or if it can\n * be run as is.\n *\n * Useful to set ps1/ps2 in console prompt.\n */\n async more(code) {\n throw new NotImplementedError(\"more\");\n }\n /**\n * Send a message to the main thread to download a file.\n */\n download(content, filename) {\n this.postMessage?.({\n type: \"download\",\n content: { content, filename },\n });\n }\n /**\n * Use JSON stringify/parse to copy an object.\n */\n clone(data) {\n return JSON.parse(JSON.stringify(data));\n }\n /**\n * Sync sleep for a certain duration in seconds.\n */\n sleep(duration) {\n duration = duration * 1000; // to milliseconds\n if (this.syncCommSupport()) {\n // ensure value before waiting\n Atomics.store(new Int32Array(this._sab), 0, 0);\n Atomics.wait(new Int32Array(this._sab), 0, 0, duration);\n return;\n }\n else {\n // default to active sleep\n const t0 = Date.now();\n while (Date.now() - t0 < duration)\n ;\n }\n }\n /**\n * Decode the string contained in a SharedArrayBuffer to\n * bypas this issue:\n * https://github.com/whatwg/encoding/issues/172\n */\n decodeSharedArrayBuffer(sab) {\n const array = new Uint8Array(sab);\n let length = array.length;\n for (; length > 0 && array[length - 1] === 0; length--)\n ;\n if (length === 0)\n return \"\";\n const cropped = new Uint8Array(length);\n cropped.set(array.subarray(0, length));\n try {\n return new TextDecoder().decode(cropped);\n }\n catch (e) {\n if (array.length === length)\n throw new Error(\"String too long, can't decode\");\n throw e;\n }\n }\n /**\n * Sync input that does not use the ugly prompt but send\n * an eval.input event to the main thread and wait for the response.\n */\n input(prompt, password = false) {\n const sendInput = () => {\n const data = this.clone(this.__eval_data__);\n this.postMessage?.({\n type: \"input\",\n content: { data, prompt, password },\n });\n };\n if (this.syncCommSupport()) {\n sendInput();\n // ensure value before waiting\n Atomics.store(new Int32Array(this._sab), 0, 0);\n Atomics.wait(new Int32Array(this._sab), 0, 0);\n return this.decodeSharedArrayBuffer(this._sab);\n }\n else if (self._prompt != null) {\n // in legacy context, we default to js' prompt\n return self._prompt(prompt ?? \"\") ?? \"\";\n }\n else {\n sendInput();\n const timeout = 2 * 60 * 1000; // 2 minutes\n const tend = Date.now() + timeout;\n // polling loop\n while (Date.now() < tend) {\n const request = new XMLHttpRequest();\n request.open(\"POST\", \"https://api.basthon.fr/ephemeral\", false); // synchronous request\n request.setRequestHeader(\"X-API-Referer\", this._basthonRoot ?? \"null\");\n request.send(JSON.stringify({ action: \"get\", key: this._fallbackKey }));\n if (request.status === 200)\n return this._decrypt(request.responseText);\n }\n throw new Error(\"Error using the Basthon's network API\");\n }\n }\n /**\n * Process messages from the main thread.\n */\n async processMainThreadMessage(msg) {\n switch (msg.type) {\n case \"toplevel-input\":\n this._toplevelInputPromise?.resolve(msg.content);\n break;\n default: // this should not append...\n break;\n }\n }\n /**\n * Ask for an input in the main thread and wait for the answer\n * then return it.\n */\n async toplevelInput(prompt, password = false, data = undefined) {\n this._toplevelInputPromise = new PromiseDelegate();\n this.postMessage?.({\n type: \"input\",\n content: { data, prompt, password, toplevel: true },\n });\n const res = await this._toplevelInputPromise.promise;\n this._toplevelInputPromise = undefined;\n return res;\n }\n /**\n * Ask main thread to go to the next breakpoint.\n */\n breakpointMoveOn() {\n const data = this.clone(this.__eval_data__);\n this.postMessage?.({ type: \"breakpoint-move-on\", content: { data } });\n }\n /**\n * Create the message channel between kernel and iframe,\n * send one port and the iframe to main thread and return the other one.\n */\n displayKernelIFrame(iframeHTML) {\n const { port1, port2 } = new MessageChannel();\n const content = { html: iframeHTML, port: port1 };\n const display_type = \"kernel-iframe\";\n const data = { ...this.clone(this.__eval_data__), content, display_type };\n this.postMessage?.({ data, type: \"display\" }, [port1]);\n return port2;\n }\n}\nexport { KernelWorkerBase };\n","import { expose as exposeComlink } from \"comlink\";\nconst insideWorker = () => \n//@ts-ignore\ntypeof WorkerGlobalScope !== \"undefined\" && self instanceof WorkerGlobalScope;\nconst expose = (kwc) => {\n if (insideWorker()) {\n // worker\n const listener = (msg) => {\n if (!(msg?.data instanceof MessagePort))\n return;\n removeEventListener(\"message\", listener);\n exposeComlink(kwc, msg.data);\n };\n addEventListener(\"message\", listener);\n }\n else {\n // main thread\n exposeComlink(kwc, self._commPort);\n self._commPort = undefined; // no more needed\n }\n};\n/**\n * DOM node exchanger (Bus) to bypass stringifying\n * messages between frontend and kernel that prevents DOMNode sharing.\n */\nclass DOMNodeBus extends Map {\n /**\n * Push an object to the bus and get back an id to later pop it.\n */\n push(obj) {\n let id = 0;\n for (; id < this.size; id++)\n if (!this.has(id))\n break;\n this.set(id, obj);\n return id;\n }\n /**\n * Remove an object from the bus from its id.\n */\n pop(id) {\n const res = this.get(id);\n this.delete(id);\n return res;\n }\n}\n/**\n * Dynamically load a script (support main thread and worker usage).\n */\nconst loadScript = async (url) => {\n if (globalThis.importScripts != null)\n return importScripts(url);\n // we are probably in main thread\n return new Promise((resolve, reject) => {\n const script = document.createElement(\"script\");\n script.onload = resolve;\n script.onerror = reject;\n script.src = url;\n document.head.appendChild(script);\n });\n};\nexport { expose, DOMNodeBus, loadScript };\n"],"names":["NotImplementedError","_Error","funcName","_this","_classCallCheck","_callSuper","concat","name","_inherits","_createClass","_wrapNativeSuper","Error","toDataURL","_ref","_asyncToGenerator","_regeneratorRuntime","_callee","content","_context","prev","next","Promise","resolve","reject","reader","FileReader","onloadend","result","onerror","readAsDataURL","Blob","abrupt","sent","stop","_x","apply","arguments","fetchFromLocalFS","_ref2","_callee2","localfsScheme","url","prefix","path","options","dataURL","mime","_context2","slice","length","status","statusText","headers","Headers","self","basthon","getFile","substring","indexOf","buffer","append","byteLength","Response","_x2","_x3","origin","URL","parent","abs","href","lastIndexOf","mockFetch","legacy","fetch","trueFetch","assetsURL","_assetsURL","_x4","_x5","_mockedFetch","_callee3","request","init","proxy","objReq","_yield$proxy$fetch","body","_t2","_context3","Request","startsWith","importScripts","error","credentials","_remoteProxy","JSON","parse","stringify","console","toString","mockWorker","globalThis","Worker","SandboxedWorker","_Worker","_this2","sandboxed","absURL","workerScript","replace","btoa","_assertThisInitialized","mockHTMLImageSrc","_desc$set","HTMLImageElement","desc","Object","getOwnPropertyDescriptor","prototype","set","defineProperty","_objectSpread","get","_desc$get","call","this","e","_this3","_callee4","_yield$globalThis$Bas","_globalThis$Basthon","_globalThis$Basthon$g","_desc$set2","_t3","_t4","_t5","_t7","_t8","_context4","Basthon","_desc$set3","VERSION","KernelWorkerBase","_ready","PromiseDelegate","_evalPromises","_decrypt","s","_options","_legacy","_basthonRoot","language","isLegacy","window","Canvas","width","height","canvas","document","createElement","OffscreenCanvas","_prompt","prompt","p","input","_domNodeBus","DOMNodeBus","undefined","key","value","_sab","_legacyStart","_legacyStop","sab","promise","push","_setFallbackKeyAndPass","pass","CryptoJS","_fallbackKey","message","AES","decrypt","enc","Utf8","_init2","_init3","_callee5","_t","_context5","_init","port","postMessage","bind","onmessage","processMainThreadMessage","data","wrap","stream","text","_this$postMessage","type","sendStream","_blobToDataURL","_callee6","blob","_context6","_displayBlob","_callee7","_this$postMessage2","pngPrefix","png","_context7","clone","__eval_data__","blobToDataURL","element","addEvalPromise","_callee8","_context8","convertToBlob","displayBlob","_this$postMessage3","_this$_domNodeBus","_this$_domNodeBus$pus","HTMLElement","wait","_this$postMessage4","id","_this$_domNodeBus2","pop","_eval2","_callee9","code","_context9","_x6","_x7","_eval3","_callee0","_this$postMessage5","res","stack","_context0","_eval","sendStderrStream","traceback","all","_x8","_x9","filename","_complete","_callee1","_context1","_x0","_more","_callee10","_context10","_x1","_this$postMessage6","duration","syncCommSupport","Atomics","store","Int32Array","t0","Date","now","array","Uint8Array","cropped","subarray","TextDecoder","decode","_self$_prompt","_this4","password","sendInput","_this4$postMessage","decodeSharedArrayBuffer","tend","_this$_basthonRoot","XMLHttpRequest","open","setRequestHeader","send","action","responseText","_processMainThreadMessage","_callee11","msg","_this$_toplevelInputP","_context11","_toplevelInputPromise","_x10","_toplevelInput","_callee12","_this$postMessage7","_args12","_context12","toplevel","_x11","_this$postMessage8","iframeHTML","_this$postMessage9","_MessageChannel","MessageChannel","port1","port2","html","display_type","expose","kwc","WorkerGlobalScope","listener","MessagePort","removeEventListener","exposeComlink","addEventListener","_commPort","_Map","obj","size","has","Map","loadScript","script","onload","src","head","appendChild"],"sourceRoot":""}
@@ -1,2 +1,2 @@
1
- (()=>{"use strict";var e,r,t,n,o={2069:(e,r,t)=>{t.d(r,{fI:()=>n.f,k0:()=>o.k0,p:()=>o.p});t(1428);var n=t(5607),o=t(6743)},4499:(e,r,t)=>{var n=t(2069),o=t(6330),a=t(5152),s=t(414),i=t(5309),u=t(2715),c=t(9296),l=t(5799),p=t.n(l);function f(e,r){var t="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!t){if(Array.isArray(e)||(t=function(e,r){if(e){if("string"==typeof e)return d(e,r);var t={}.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?d(e,r):void 0}}(e))||r&&e&&"number"==typeof e.length){t&&(e=t);var n=0,o=function(){};return{s:o,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,s=!0,i=!1;return{s:function(){t=t.call(e)},n:function(){var e=t.next();return s=e.done,e},e:function(e){i=!0,a=e},f:function(){try{s||null==t.return||t.return()}finally{if(i)throw a}}}}function d(e,r){(null==r||r>e.length)&&(r=e.length);for(var t=0,n=Array(r);t<r;t++)n[t]=e[t];return n}function _(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(_=function(){return!!e})()}var h=function(e){function r(e){var t,n,o,s,c;return(0,a.A)(this,r),o=this,s=r,c=[e],s=(0,u.A)(s),(n=(0,i.A)(o,_()?Reflect.construct(s,c||[],(0,u.A)(o).constructor):s.apply(o,c)))._pyodideURLs=["https://pyodide.basthon.fr/{PYODIDE_VERSION}/full/pyodide/pyodide.js","https://cdn.jsdelivr.net/pyodide/v{PYODIDE_VERSION}/full/pyodide.js"],n.__kernel__=null,n.pythonVersion="",n._pyodideURLs.unshift("".concat(n.basthonRoot(),"/pyodide/pyodide.js")),n._pyodideURLs=null!==(t=null==e?void 0:e.pyodideURLs)&&void 0!==t?t:n._pyodideURLs,n}return(0,c.A)(r,e),(0,s.A)(r,[{key:"language",value:function(){return"python3"}},{key:"basthonModulesRoot",value:function(){return this.basthonRoot()+"/modules"}},{key:"_onload",value:(j=(0,o.A)(p().mark(function e(){var r,t,n,o,a,s;return p().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:for(r=self.pyodide,t=r._api.lockfile_packages,n=0,o=Object.keys(t);n<o.length;n++)a=o[n],(s=t[a]).file_name=s.file_name.replace("{basthonRoot}",this.basthonRoot());return this.pythonVersion=r.runPython("import platform ; platform.python_version()"),e.next=1,r.loadPackage("basthon");case 1:this.__kernel__=r.pyimport("basthon").__kernel__,this.__kernel__.start();case 2:case"end":return e.stop()}},e,this)})),function(){return j.apply(this,arguments)})},{key:"_init",value:(x=(0,o.A)(p().mark(function e(){var r,t,o,a,s,i,u;return p().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:r=this._pyodideURLs[0],t=f(this._pyodideURLs),e.prev=1,t.s();case 2:if((o=t.n()).done){e.next=8;break}return a=(a=o.value).replace("{PYODIDE_VERSION}","0.24.1"),e.prev=3,e.next=4,fetch(a,{method:"HEAD"});case 4:if(!e.sent.ok){e.next=5;break}return r=a,e.abrupt("continue",8);case 5:e.next=7;break;case 6:e.prev=6,e.catch(3);case 7:e.next=2;break;case 8:e.next=10;break;case 9:e.prev=9,s=e.catch(1),t.e(s);case 10:return e.prev=10,t.f(),e.finish(10);case 11:return e.prev=11,e.next=12,(0,n.k0)(r);case 12:e.next=14;break;case 13:throw e.prev=13,i=e.catch(11),console.log(i),console.error("Can't load pyodide.js"),i;case 14:if(null!=self.loadPyodide){e.next=15;break}throw console.log("self.loadPyodide is null!"),new Error("Can't load pyodide.js");case 15:return e.prev=15,e.next=16,self.loadPyodide({lockFileURL:this.basthonRoot()+"/pyodide-lock.json"});case 16:self.pyodide=e.sent,e.next=18;break;case 17:throw e.prev=17,u=e.catch(15),console.log(u),console.error("Can't load Python from Pyodide"),u;case 18:return e.next=19,this._onload();case 19:case"end":return e.stop()}},e,this,[[1,9,10,11],[3,6],[11,13],[15,17]])})),function(){return x.apply(this,arguments)})},{key:"execution_count",get:function(){return this.__kernel__.execution_count()}},{key:"_eval",value:(g=(0,o.A)(p().mark(function e(r,t){var n,o,a,s,i=this;return p().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return n=function(e){return i.sendStdoutStream(r,e)},o=function(e){return i.sendStderrStream(r,e)},e.next=1,this.__kernel__.eval(t,n,o,r);case 1:if((a=e.sent)instanceof self.pyodide.ffi.PyProxy){e.next=2;break}throw a;case 2:return s=a.toJs({create_proxies:!1,dict_converter:Object.fromEntries}),a.destroy(),e.abrupt("return",s[0]);case 3:case"end":return e.stop()}},e,this)})),function(e,r){return g.apply(this,arguments)})},{key:"legacyStart",value:(w=(0,o.A)(p().mark(function e(){return p().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:this.__kernel__.start();case 1:case"end":return e.stop()}},e,this)})),function(){return w.apply(this,arguments)})},{key:"legacyStop",value:(m=(0,o.A)(p().mark(function e(){return p().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:this.__kernel__.stop();case 1:case"end":return e.stop()}},e,this)})),function(){return m.apply(this,arguments)})},{key:"complete",value:(b=(0,o.A)(p().mark(function e(r){var t,n;return p().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if((t=this.__kernel__.complete(r))instanceof self.pyodide.ffi.PyProxy){e.next=1;break}return e.abrupt("return",t);case 1:return n=t.toJs(),t.destroy(),e.abrupt("return",n);case 2:case"end":return e.stop()}},e,this)})),function(e){return b.apply(this,arguments)})},{key:"more",value:(k=(0,o.A)(p().mark(function e(r){return p().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.__kernel__.more(r));case 1:case"end":return e.stop()}},e,this)})),function(e){return k.apply(this,arguments)})},{key:"readdir",value:function(e){return self.pyodide._module.FS.readdir(e)}},{key:"chdir",value:function(e){self.pyodide._module.FS.chdir(e)}},{key:"mkdir",value:function(e){self.pyodide._module.FS.mkdir(e)}},{key:"putFile",value:(v=(0,o.A)(p().mark(function e(r,t){return p().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:this.__kernel__.put_file(r,t);case 1:case"end":return e.stop()}},e,this)})),function(e,r){return v.apply(this,arguments)})},{key:"getFile",value:(y=(0,o.A)(p().mark(function e(r){return p().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.__kernel__.get_file(r).toJs());case 1:case"end":return e.stop()}},e,this)})),function(e){return y.apply(this,arguments)})},{key:"putModule",value:(h=(0,o.A)(p().mark(function e(r,t){return p().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=1,this.__kernel__.put_module(r,t);case 1:return e.abrupt("return",e.sent);case 2:case"end":return e.stop()}},e,this)})),function(e,r){return h.apply(this,arguments)})},{key:"getUserModuleFile",value:(d=(0,o.A)(p().mark(function e(r){return p().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.__kernel__.get_user_module_file(r).toJs());case 1:case"end":return e.stop()}},e,this)})),function(e){return d.apply(this,arguments)})},{key:"userModules",value:(l=(0,o.A)(p().mark(function e(){var r,t;return p().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if((r=this.__kernel__.user_modules())instanceof self.pyodide.ffi.PyProxy){e.next=1;break}return e.abrupt("return",r);case 1:return t=r.toJs(),r.destroy(),e.abrupt("return",t);case 2:case"end":return e.stop()}},e,this)})),function(){return l.apply(this,arguments)})},{key:"displayMatplotlibIFrame",value:(t=(0,o.A)(p().mark(function e(r){var t;return p().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:(t=this.displayKernelIFrame(r)).onmessage=function(e){console.log("Kernel Worker says: 'Message received from iframe: "+e.data+"'"),t.postMessage("hello from kernel worker")};case 1:case"end":return e.stop()}},e,this)})),function(e){return t.apply(this,arguments)})}]);var t,l,d,h,y,v,k,b,m,w,g,x,j}(n.fI);(0,n.p)(h)}},a={};function s(e){var r=a[e];if(void 0!==r)return r.exports;var t=a[e]={exports:{}};return o[e].call(t.exports,t,t.exports,s),t.exports}s.m=o,s.x=()=>{var e=s.O(void 0,["vendors-node_modules_promise-delegate_dist_es_PromiseDelegate_js-node_modules_babel_runtime_r-2b2010","kernel-base_lib_worker_kernel-worker_js","kernel-base_lib_worker_kernel-main_js"],()=>s(4499));return e=s.O(e)},e=[],s.O=(r,t,n,o)=>{if(!t){var a=1/0;for(l=0;l<e.length;l++){for(var[t,n,o]=e[l],i=!0,u=0;u<t.length;u++)(!1&o||a>=o)&&Object.keys(s.O).every(e=>s.O[e](t[u]))?t.splice(u--,1):(i=!1,o<a&&(a=o));if(i){e.splice(l--,1);var c=n();void 0!==c&&(r=c)}}return r}o=o||0;for(var l=e.length;l>0&&e[l-1][2]>o;l--)e[l]=e[l-1];e[l]=[t,n,o]},s.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return s.d(r,{a:r}),r},t=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,s.t=function(e,n){if(1&n&&(e=this(e)),8&n)return e;if("object"==typeof e&&e){if(4&n&&e.__esModule)return e;if(16&n&&"function"==typeof e.then)return e}var o=Object.create(null);s.r(o);var a={};r=r||[null,t({}),t([]),t(t)];for(var i=2&n&&e;("object"==typeof i||"function"==typeof i)&&!~r.indexOf(i);i=t(i))Object.getOwnPropertyNames(i).forEach(r=>a[r]=()=>e[r]);return a.default=()=>e,s.d(o,a),o},s.d=(e,r)=>{for(var t in r)s.o(r,t)&&!s.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:r[t]})},s.f={},s.e=e=>Promise.all(Object.keys(s.f).reduce((r,t)=>(s.f[t](e,r),r),[])),s.u=e=>e+".js",s.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),s.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),s.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{var e;s.g.importScripts&&(e=s.g.location+"");var r=s.g.document;if(!e&&r&&(r.currentScript&&"SCRIPT"===r.currentScript.tagName.toUpperCase()&&(e=r.currentScript.src),!e)){var t=r.getElementsByTagName("script");if(t.length)for(var n=t.length-1;n>-1&&(!e||!/^http(s?):/.test(e));)e=t[n--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),s.p=e})(),(()=>{s.b=self.location+"";var e={"kernel-python3_lib_comlink-worker_js-_e7af0":1,"kernel-python3_lib_comlink-worker_js-_e7af1":1};s.f.i=(r,t)=>{e[r]||importScripts(s.p+s.u(r))};var r=self.webpackChunk_basthon_browser_bundle=self.webpackChunk_basthon_browser_bundle||[],t=r.push.bind(r);r.push=r=>{var[n,o,a]=r;for(var i in o)s.o(o,i)&&(s.m[i]=o[i]);for(a&&a(s);n.length;)e[n.pop()]=1;t(r)}})(),n=s.x,s.x=()=>Promise.all(["vendors-node_modules_promise-delegate_dist_es_PromiseDelegate_js-node_modules_babel_runtime_r-2b2010","kernel-base_lib_worker_kernel-worker_js","kernel-base_lib_worker_kernel-main_js"].map(s.e,s)).then(n);s.x()})();
1
+ (()=>{"use strict";var e,r,t,n,o={2069:(e,r,t)=>{t.d(r,{fI:()=>n.f,k0:()=>o.k0,p:()=>o.p});t(1428);var n=t(5607),o=t(6743)},4499:(e,r,t)=>{var n=t(2069),o=t(6330),a=t(5152),s=t(414),i=t(5309),u=t(2715),c=t(9296),l=t(5799),p=t.n(l);function f(e,r){var t="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!t){if(Array.isArray(e)||(t=function(e,r){if(e){if("string"==typeof e)return d(e,r);var t={}.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?d(e,r):void 0}}(e))||r&&e&&"number"==typeof e.length){t&&(e=t);var n=0,o=function(){};return{s:o,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,s=!0,i=!1;return{s:function(){t=t.call(e)},n:function(){var e=t.next();return s=e.done,e},e:function(e){i=!0,a=e},f:function(){try{s||null==t.return||t.return()}finally{if(i)throw a}}}}function d(e,r){(null==r||r>e.length)&&(r=e.length);for(var t=0,n=Array(r);t<r;t++)n[t]=e[t];return n}function _(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(_=function(){return!!e})()}var h=function(e){function r(e){var t,n,o,s,c;return(0,a.A)(this,r),o=this,s=r,c=[e],s=(0,u.A)(s),(n=(0,i.A)(o,_()?Reflect.construct(s,c||[],(0,u.A)(o).constructor):s.apply(o,c)))._pyodideURLs=["https://pyodide.basthon.fr/{PYODIDE_VERSION}/full/pyodide/pyodide.js","https://cdn.jsdelivr.net/pyodide/v{PYODIDE_VERSION}/full/pyodide.js"],n.__kernel__=null,n.pythonVersion="",n._pyodideURLs.unshift("".concat(n.basthonRoot(),"/pyodide/pyodide.js")),n._pyodideURLs=null!==(t=null==e?void 0:e.pyodideURLs)&&void 0!==t?t:n._pyodideURLs,n}return(0,c.A)(r,e),(0,s.A)(r,[{key:"language",value:function(){return"python3"}},{key:"basthonModulesRoot",value:function(){return this.basthonRoot()+"/modules"}},{key:"_onload",value:(j=(0,o.A)(p().mark(function e(){var r,t,n,o,a,s;return p().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:for(r=self.pyodide,t=r._api.lockfile_packages,n=0,o=Object.keys(t);n<o.length;n++)a=o[n],(s=t[a]).file_name=s.file_name.replace("{basthonRoot}",this.basthonRoot());return this.pythonVersion=r.runPython("import platform ; platform.python_version()"),e.next=1,r.loadPackage("basthon");case 1:this.__kernel__=r.pyimport("basthon").__kernel__,this.__kernel__.start();case 2:case"end":return e.stop()}},e,this)})),function(){return j.apply(this,arguments)})},{key:"_init",value:(x=(0,o.A)(p().mark(function e(){var r,t,o,a,s,i,u;return p().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:r=this._pyodideURLs[0],t=f(this._pyodideURLs),e.prev=1,t.s();case 2:if((o=t.n()).done){e.next=8;break}return a=(a=o.value).replace("{PYODIDE_VERSION}","0.26.4"),e.prev=3,e.next=4,fetch(a,{method:"HEAD"});case 4:if(!e.sent.ok){e.next=5;break}return r=a,e.abrupt("continue",8);case 5:e.next=7;break;case 6:e.prev=6,e.catch(3);case 7:e.next=2;break;case 8:e.next=10;break;case 9:e.prev=9,s=e.catch(1),t.e(s);case 10:return e.prev=10,t.f(),e.finish(10);case 11:return e.prev=11,e.next=12,(0,n.k0)(r);case 12:e.next=14;break;case 13:throw e.prev=13,i=e.catch(11),console.log(i),console.error("Can't load pyodide.js"),i;case 14:if(null!=self.loadPyodide){e.next=15;break}throw console.log("self.loadPyodide is null!"),new Error("Can't load pyodide.js");case 15:return e.prev=15,e.next=16,self.loadPyodide({lockFileURL:this.basthonRoot()+"/pyodide-lock.json"});case 16:self.pyodide=e.sent,e.next=18;break;case 17:throw e.prev=17,u=e.catch(15),console.log(u),console.error("Can't load Python from Pyodide"),u;case 18:return e.next=19,this._onload();case 19:case"end":return e.stop()}},e,this,[[1,9,10,11],[3,6],[11,13],[15,17]])})),function(){return x.apply(this,arguments)})},{key:"execution_count",get:function(){return this.__kernel__.execution_count()}},{key:"_eval",value:(g=(0,o.A)(p().mark(function e(r,t){var n,o,a,s,i=this;return p().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return n=function(e){return i.sendStdoutStream(r,e)},o=function(e){return i.sendStderrStream(r,e)},e.next=1,this.__kernel__.eval(t,n,o,r);case 1:if((a=e.sent)instanceof self.pyodide.ffi.PyProxy){e.next=2;break}throw a;case 2:return s=a.toJs({create_proxies:!1,dict_converter:Object.fromEntries}),a.destroy(),e.abrupt("return",s[0]);case 3:case"end":return e.stop()}},e,this)})),function(e,r){return g.apply(this,arguments)})},{key:"legacyStart",value:(w=(0,o.A)(p().mark(function e(){return p().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:this.__kernel__.start();case 1:case"end":return e.stop()}},e,this)})),function(){return w.apply(this,arguments)})},{key:"legacyStop",value:(m=(0,o.A)(p().mark(function e(){return p().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:this.__kernel__.stop();case 1:case"end":return e.stop()}},e,this)})),function(){return m.apply(this,arguments)})},{key:"complete",value:(b=(0,o.A)(p().mark(function e(r){var t,n;return p().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if((t=this.__kernel__.complete(r))instanceof self.pyodide.ffi.PyProxy){e.next=1;break}return e.abrupt("return",t);case 1:return n=t.toJs(),t.destroy(),e.abrupt("return",n);case 2:case"end":return e.stop()}},e,this)})),function(e){return b.apply(this,arguments)})},{key:"more",value:(k=(0,o.A)(p().mark(function e(r){return p().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.__kernel__.more(r));case 1:case"end":return e.stop()}},e,this)})),function(e){return k.apply(this,arguments)})},{key:"readdir",value:function(e){return self.pyodide._module.FS.readdir(e)}},{key:"chdir",value:function(e){self.pyodide._module.FS.chdir(e)}},{key:"mkdir",value:function(e){self.pyodide._module.FS.mkdir(e)}},{key:"putFile",value:(v=(0,o.A)(p().mark(function e(r,t){return p().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:this.__kernel__.put_file(r,t);case 1:case"end":return e.stop()}},e,this)})),function(e,r){return v.apply(this,arguments)})},{key:"getFile",value:(y=(0,o.A)(p().mark(function e(r){return p().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.__kernel__.get_file(r).toJs());case 1:case"end":return e.stop()}},e,this)})),function(e){return y.apply(this,arguments)})},{key:"putModule",value:(h=(0,o.A)(p().mark(function e(r,t){return p().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=1,this.__kernel__.put_module(r,t);case 1:return e.abrupt("return",e.sent);case 2:case"end":return e.stop()}},e,this)})),function(e,r){return h.apply(this,arguments)})},{key:"getUserModuleFile",value:(d=(0,o.A)(p().mark(function e(r){return p().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.__kernel__.get_user_module_file(r).toJs());case 1:case"end":return e.stop()}},e,this)})),function(e){return d.apply(this,arguments)})},{key:"userModules",value:(l=(0,o.A)(p().mark(function e(){var r,t;return p().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if((r=this.__kernel__.user_modules())instanceof self.pyodide.ffi.PyProxy){e.next=1;break}return e.abrupt("return",r);case 1:return t=r.toJs(),r.destroy(),e.abrupt("return",t);case 2:case"end":return e.stop()}},e,this)})),function(){return l.apply(this,arguments)})},{key:"displayMatplotlibIFrame",value:(t=(0,o.A)(p().mark(function e(r){var t;return p().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:(t=this.displayKernelIFrame(r)).onmessage=function(e){console.log("Kernel Worker says: 'Message received from iframe: "+e.data+"'"),t.postMessage("hello from kernel worker")};case 1:case"end":return e.stop()}},e,this)})),function(e){return t.apply(this,arguments)})}]);var t,l,d,h,y,v,k,b,m,w,g,x,j}(n.fI);(0,n.p)(h)}},a={};function s(e){var r=a[e];if(void 0!==r)return r.exports;var t=a[e]={exports:{}};return o[e].call(t.exports,t,t.exports,s),t.exports}s.m=o,s.x=()=>{var e=s.O(void 0,["vendors-node_modules_promise-delegate_dist_es_PromiseDelegate_js-node_modules_babel_runtime_r-2b2010","kernel-base_lib_worker_kernel-worker_js","kernel-base_lib_worker_kernel-main_js"],()=>s(4499));return e=s.O(e)},e=[],s.O=(r,t,n,o)=>{if(!t){var a=1/0;for(l=0;l<e.length;l++){for(var[t,n,o]=e[l],i=!0,u=0;u<t.length;u++)(!1&o||a>=o)&&Object.keys(s.O).every(e=>s.O[e](t[u]))?t.splice(u--,1):(i=!1,o<a&&(a=o));if(i){e.splice(l--,1);var c=n();void 0!==c&&(r=c)}}return r}o=o||0;for(var l=e.length;l>0&&e[l-1][2]>o;l--)e[l]=e[l-1];e[l]=[t,n,o]},s.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return s.d(r,{a:r}),r},t=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,s.t=function(e,n){if(1&n&&(e=this(e)),8&n)return e;if("object"==typeof e&&e){if(4&n&&e.__esModule)return e;if(16&n&&"function"==typeof e.then)return e}var o=Object.create(null);s.r(o);var a={};r=r||[null,t({}),t([]),t(t)];for(var i=2&n&&e;("object"==typeof i||"function"==typeof i)&&!~r.indexOf(i);i=t(i))Object.getOwnPropertyNames(i).forEach(r=>a[r]=()=>e[r]);return a.default=()=>e,s.d(o,a),o},s.d=(e,r)=>{for(var t in r)s.o(r,t)&&!s.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:r[t]})},s.f={},s.e=e=>Promise.all(Object.keys(s.f).reduce((r,t)=>(s.f[t](e,r),r),[])),s.u=e=>e+".js",s.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),s.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),s.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{var e;s.g.importScripts&&(e=s.g.location+"");var r=s.g.document;if(!e&&r&&(r.currentScript&&"SCRIPT"===r.currentScript.tagName.toUpperCase()&&(e=r.currentScript.src),!e)){var t=r.getElementsByTagName("script");if(t.length)for(var n=t.length-1;n>-1&&(!e||!/^http(s?):/.test(e));)e=t[n--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),s.p=e})(),(()=>{s.b=self.location+"";var e={"kernel-python3_lib_comlink-worker_js-_e7af0":1,"kernel-python3_lib_comlink-worker_js-_e7af1":1};s.f.i=(r,t)=>{e[r]||importScripts(s.p+s.u(r))};var r=self.webpackChunk_basthon_browser_bundle=self.webpackChunk_basthon_browser_bundle||[],t=r.push.bind(r);r.push=r=>{var[n,o,a]=r;for(var i in o)s.o(o,i)&&(s.m[i]=o[i]);for(a&&a(s);n.length;)e[n.pop()]=1;t(r)}})(),n=s.x,s.x=()=>Promise.all(["vendors-node_modules_promise-delegate_dist_es_PromiseDelegate_js-node_modules_babel_runtime_r-2b2010","kernel-base_lib_worker_kernel-worker_js","kernel-base_lib_worker_kernel-main_js"].map(s.e,s)).then(n);s.x()})();
2
2
  //# sourceMappingURL=kernel-python3_lib_comlink-worker_js-_e7af0.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"kernel-python3_lib_comlink-worker_js-_e7af0.js","mappings":"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","sources":["webpack://@basthon/browser-bundle/webpack/runtime/chunk loaded","webpack://@basthon/browser-bundle/webpack/runtime/create fake namespace object","webpack://@basthon/browser-bundle/webpack/runtime/startup chunk dependencies","webpack://@basthon/browser-bundle/../kernel-python3/lib/worker.js","webpack://@basthon/browser-bundle/../kernel-python3/lib/comlink-worker.js","webpack://@basthon/browser-bundle/webpack/bootstrap","webpack://@basthon/browser-bundle/webpack/runtime/compat get default export","webpack://@basthon/browser-bundle/webpack/runtime/define property getters","webpack://@basthon/browser-bundle/webpack/runtime/ensure chunk","webpack://@basthon/browser-bundle/webpack/runtime/get javascript chunk filename","webpack://@basthon/browser-bundle/webpack/runtime/global","webpack://@basthon/browser-bundle/webpack/runtime/hasOwnProperty shorthand","webpack://@basthon/browser-bundle/webpack/runtime/make namespace object","webpack://@basthon/browser-bundle/webpack/runtime/publicPath","webpack://@basthon/browser-bundle/webpack/runtime/importScripts chunk loading","webpack://@basthon/browser-bundle/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar [chunkIds, fn, priority] = deferred[i];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__);\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; (typeof current == 'object' || typeof current == 'function') && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach((key) => (def[key] = () => (value[key])));\n\t}\n\tdef['default'] = () => (value);\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","var next = __webpack_require__.x;\n__webpack_require__.x = () => {\n\treturn Promise.all([\"vendors-node_modules_promise-delegate_dist_es_PromiseDelegate_js-node_modules_babel_runtime_r-2b2010\",\"kernel-base_lib_worker_kernel-worker_js\",\"kernel-base_lib_worker_kernel-main_js\"].map(__webpack_require__.e, __webpack_require__)).then(next);\n};","import { KernelWorkerBase, loadScript } from \"@basthon/kernel-base/worker\";\nconst PYODIDE_VERSION = \"0.24.1\";\nexport class Python3KernelWorker extends KernelWorkerBase {\n constructor(options) {\n // do not forget to call the parent constructor\n super(options);\n /**\n * Where to find pyodide.js (private).\n */\n this._pyodideURLs = [\n `https://pyodide.basthon.fr/{PYODIDE_VERSION}/full/pyodide/pyodide.js`,\n `https://cdn.jsdelivr.net/pyodide/v{PYODIDE_VERSION}/full/pyodide.js`,\n ];\n this.__kernel__ = null;\n this.pythonVersion = \"\";\n // for locally installed Pyodide\n this._pyodideURLs.unshift(`${this.basthonRoot()}/pyodide/pyodide.js`);\n this._pyodideURLs = options?.pyodideURLs ?? this._pyodideURLs;\n }\n language() {\n return \"python3\";\n }\n /**\n * Get the URL of Basthon modules dir.\n */\n basthonModulesRoot() {\n return this.basthonRoot() + \"/modules\";\n }\n /**\n * What to do when loaded (private).\n */\n async _onload() {\n const pyodide = self.pyodide;\n // reformat lockfile\n const packages = pyodide._api.lockfile_packages;\n for (let p of Object.keys(packages)) {\n const item = packages[p];\n item.file_name = item.file_name.replace(\"{basthonRoot}\", this.basthonRoot());\n }\n // get the version of Python from Python\n this.pythonVersion = pyodide.runPython(\"import platform ; platform.python_version()\");\n // load basthon and get kernel\n await pyodide.loadPackage(\"basthon\");\n this.__kernel__ = pyodide.pyimport(\"basthon\").__kernel__;\n this.__kernel__.start();\n }\n /*\n * Initialize the kernel.\n */\n async _init() {\n let pyodideURL = this._pyodideURLs[0];\n for (let url of this._pyodideURLs) {\n url = url.replace(\"{PYODIDE_VERSION}\", PYODIDE_VERSION);\n try {\n const response = await fetch(url, { method: \"HEAD\" });\n if (response.ok) {\n pyodideURL = url;\n break;\n }\n }\n catch (e) { }\n }\n try {\n await loadScript(pyodideURL);\n }\n catch (error) {\n console.log(error);\n console.error(\"Can't load pyodide.js\");\n throw error;\n }\n if (self.loadPyodide == null) {\n console.log(\"self.loadPyodide is null!\");\n throw new Error(\"Can't load pyodide.js\");\n }\n try {\n // loading with custom pyodide-lock.json\n self.pyodide = await self.loadPyodide({\n lockFileURL: this.basthonRoot() + \"/pyodide-lock.json\",\n });\n }\n catch (error) {\n console.log(error);\n console.error(\"Can't load Python from Pyodide\");\n throw error;\n }\n await this._onload();\n }\n /**\n * Execution count getter overload.\n */\n get execution_count() {\n return this.__kernel__.execution_count();\n }\n /**\n * Basthon async code evaluation function.\n */\n async _eval(data, code) {\n const outCallback = (msg) => this.sendStdoutStream(data, msg);\n const errCallback = (msg) => this.sendStderrStream(data, msg);\n // dependencies are loaded by eval\n const proxy = await this.__kernel__.eval(code, outCallback, errCallback, data);\n // when an error occures, proxy should be the error message\n if (!(proxy instanceof self.pyodide.ffi.PyProxy))\n throw proxy;\n const res = proxy.toJs({\n create_proxies: false,\n dict_converter: Object.fromEntries,\n });\n proxy.destroy();\n return res[0];\n }\n /**\n * Special case of starting a legacy kernel.\n */\n async legacyStart() {\n this.__kernel__.start();\n }\n /**\n * Special case of stoping a legacy kernel.\n */\n async legacyStop() {\n this.__kernel__.stop();\n }\n /**\n * Complete a code at the end (usefull for tab completion).\n *\n * Returns an array of two elements: the list of completions\n * and the start index.\n */\n async complete(code) {\n const proxy = this.__kernel__.complete(code);\n if (!(proxy instanceof self.pyodide.ffi.PyProxy))\n return proxy;\n const res = proxy.toJs();\n proxy.destroy();\n return res;\n }\n /**\n * Is the source ready to be evaluated or want we more?\n * Usefull to set ps1/ps2 for teminal prompt.\n */\n async more(source) {\n return this.__kernel__.more(source);\n }\n /**\n * List content of directory (Python's virtual FS).\n */\n readdir(path) {\n return self.pyodide._module.FS.readdir(path);\n }\n /**\n * Change current directory (Python's virtual FS).\n */\n chdir(path) {\n self.pyodide._module.FS.chdir(path);\n }\n /**\n * Create directory (Python's virtual FS).\n */\n mkdir(path) {\n self.pyodide._module.FS.mkdir(path);\n }\n /**\n * Put a file on the local (emulated) filesystem.\n */\n async putFile(filename, content) {\n this.__kernel__.put_file(filename, content);\n }\n /**\n * Get a file content from the VFS.\n */\n async getFile(path) {\n return this.__kernel__.get_file(path).toJs();\n }\n /**\n * Put an importable module on the local (emulated) filesystem\n * and load dependencies.\n */\n async putModule(filename, content) {\n return await this.__kernel__.put_module(filename, content);\n }\n /**\n * Get a user module file content.\n */\n async getUserModuleFile(filename) {\n return this.__kernel__.get_user_module_file(filename).toJs();\n }\n /**\n * List modules launched via putModule.\n */\n async userModules() {\n const proxy = this.__kernel__.user_modules();\n if (!(proxy instanceof self.pyodide.ffi.PyProxy))\n return proxy;\n const res = proxy.toJs();\n proxy.destroy();\n return res;\n }\n /**\n * Display a matplotlib kernel iframe from its html code.\n */\n async displayMatplotlibIFrame(iframeHTML) {\n const port = this.displayKernelIFrame(iframeHTML);\n port.onmessage = (event) => {\n console.log(\"Kernel Worker says: 'Message received from iframe: \" +\n event.data +\n \"'\");\n port.postMessage(\"hello from kernel worker\");\n };\n }\n}\n","import { expose } from \"@basthon/kernel-base/worker\";\nimport { Python3KernelWorker } from \"./worker\";\nexpose(Python3KernelWorker);\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n// the startup function\n__webpack_require__.x = () => {\n\t// Load entry module and return exports\n\t// This entry module depends on other loaded chunks and execution need to be delayed\n\tvar __webpack_exports__ = __webpack_require__.O(undefined, [\"vendors-node_modules_promise-delegate_dist_es_PromiseDelegate_js-node_modules_babel_runtime_r-2b2010\",\"kernel-base_lib_worker_kernel-worker_js\",\"kernel-base_lib_worker_kernel-main_js\"], () => (__webpack_require__(4499)))\n\t__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n\treturn __webpack_exports__;\n};\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks and chunks that the entrypoint depends on\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"\" + chunkId + \".js\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","var scriptUrl;\nif (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + \"\";\nvar document = __webpack_require__.g.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript && document.currentScript.tagName.toUpperCase() === 'SCRIPT')\n\t\tscriptUrl = document.currentScript.src;\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) {\n\t\t\tvar i = scripts.length - 1;\n\t\t\twhile (i > -1 && (!scriptUrl || !/^http(s?):/.test(scriptUrl))) scriptUrl = scripts[i--].src;\n\t\t}\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/^blob:/, \"\").replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","__webpack_require__.b = self.location + \"\";\n\n// object to store loaded chunks\n// \"1\" means \"already loaded\"\nvar installedChunks = {\n\t\"kernel-python3_lib_comlink-worker_js-_e7af0\": 1,\n\t\"kernel-python3_lib_comlink-worker_js-_e7af1\": 1\n};\n\n// importScripts chunk loading\nvar installChunk = (data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\tfor(var moduleId in moreModules) {\n\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t}\n\t}\n\tif(runtime) runtime(__webpack_require__);\n\twhile(chunkIds.length)\n\t\tinstalledChunks[chunkIds.pop()] = 1;\n\tparentChunkLoadingFunction(data);\n};\n__webpack_require__.f.i = (chunkId, promises) => {\n\t// \"1\" is the signal for \"already loaded\"\n\tif(!installedChunks[chunkId]) {\n\t\tif(true) { // all chunks have JS\n\t\t\timportScripts(__webpack_require__.p + __webpack_require__.u(chunkId));\n\t\t}\n\t}\n};\n\nvar chunkLoadingGlobal = self[\"webpackChunk_basthon_browser_bundle\"] = self[\"webpackChunk_basthon_browser_bundle\"] || [];\nvar parentChunkLoadingFunction = chunkLoadingGlobal.push.bind(chunkLoadingGlobal);\nchunkLoadingGlobal.push = installChunk;\n\n// no HMR\n\n// no HMR manifest","// run startup\nvar __webpack_exports__ = __webpack_require__.x();\n"],"names":["deferred","leafPrototypes","getProto","next","Python3KernelWorker","_KernelWorkerBase","options","_options$pyodideURLs","_this","_classCallCheck","_pyodideURLs","__kernel__","pythonVersion","unshift","concat","basthonRoot","pyodideURLs","_inherits","_createClass","key","value","this","_onload2","_asyncToGenerator","_regeneratorRuntime","_callee","pyodide","packages","_i","_Object$keys","p","item","_context","prev","self","_api","lockfile_packages","Object","keys","length","file_name","replace","runPython","loadPackage","pyimport","start","stop","apply","arguments","_init2","_callee2","pyodideURL","_iterator","_step","url","_t2","_t3","_t4","_context2","_createForOfIteratorHelper","s","n","done","fetch","method","sent","ok","abrupt","e","f","finish","loadScript","console","log","error","loadPyodide","Error","lockFileURL","_onload","get","execution_count","_eval2","_callee3","data","code","outCallback","errCallback","proxy","res","_this2","_context3","msg","sendStdoutStream","sendStderrStream","eval","ffi","PyProxy","toJs","create_proxies","dict_converter","fromEntries","destroy","_x","_x2","_legacyStart","_callee4","_context4","_legacyStop","_callee5","_context5","_complete","_callee6","_context6","complete","_x3","_more","_callee7","source","_context7","more","_x4","path","_module","FS","readdir","chdir","mkdir","_putFile","_callee8","filename","content","_context8","put_file","_x5","_x6","_getFile","_callee9","_context9","get_file","_x7","_putModule","_callee0","_context0","put_module","_x8","_x9","_getUserModuleFile","_callee1","_context1","get_user_module_file","_x0","_userModules","_callee10","_context10","user_modules","_displayMatplotlibIFrame","_callee11","iframeHTML","port","_context11","displayKernelIFrame","onmessage","event","postMessage","_x1","KernelWorkerBase","expose","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","exports","module","__webpack_modules__","call","m","x","__webpack_exports__","O","result","chunkIds","fn","priority","notFulfilled","Infinity","i","fulfilled","j","every","splice","r","getter","__esModule","d","a","getPrototypeOf","obj","t","mode","then","ns","create","def","current","indexOf","getOwnPropertyNames","forEach","definition","o","defineProperty","enumerable","chunkId","Promise","all","reduce","promises","u","g","globalThis","Function","window","prop","prototype","hasOwnProperty","Symbol","toStringTag","scriptUrl","importScripts","location","document","currentScript","tagName","toUpperCase","src","scripts","getElementsByTagName","test","b","installedChunks","chunkLoadingGlobal","parentChunkLoadingFunction","push","bind","moreModules","runtime","pop","map"],"sourceRoot":""}
1
+ {"version":3,"file":"kernel-python3_lib_comlink-worker_js-_e7af0.js","mappings":"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","sources":["webpack://@basthon/browser-bundle/webpack/runtime/chunk loaded","webpack://@basthon/browser-bundle/webpack/runtime/create fake namespace object","webpack://@basthon/browser-bundle/webpack/runtime/startup chunk dependencies","webpack://@basthon/browser-bundle/../kernel-python3/lib/worker.js","webpack://@basthon/browser-bundle/../kernel-python3/lib/comlink-worker.js","webpack://@basthon/browser-bundle/webpack/bootstrap","webpack://@basthon/browser-bundle/webpack/runtime/compat get default export","webpack://@basthon/browser-bundle/webpack/runtime/define property getters","webpack://@basthon/browser-bundle/webpack/runtime/ensure chunk","webpack://@basthon/browser-bundle/webpack/runtime/get javascript chunk filename","webpack://@basthon/browser-bundle/webpack/runtime/global","webpack://@basthon/browser-bundle/webpack/runtime/hasOwnProperty shorthand","webpack://@basthon/browser-bundle/webpack/runtime/make namespace object","webpack://@basthon/browser-bundle/webpack/runtime/publicPath","webpack://@basthon/browser-bundle/webpack/runtime/importScripts chunk loading","webpack://@basthon/browser-bundle/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar [chunkIds, fn, priority] = deferred[i];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__);\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; (typeof current == 'object' || typeof current == 'function') && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach((key) => (def[key] = () => (value[key])));\n\t}\n\tdef['default'] = () => (value);\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","var next = __webpack_require__.x;\n__webpack_require__.x = () => {\n\treturn Promise.all([\"vendors-node_modules_promise-delegate_dist_es_PromiseDelegate_js-node_modules_babel_runtime_r-2b2010\",\"kernel-base_lib_worker_kernel-worker_js\",\"kernel-base_lib_worker_kernel-main_js\"].map(__webpack_require__.e, __webpack_require__)).then(next);\n};","import { KernelWorkerBase, loadScript } from \"@basthon/kernel-base/worker\";\nconst PYODIDE_VERSION = \"0.26.4\";\nexport class Python3KernelWorker extends KernelWorkerBase {\n constructor(options) {\n // do not forget to call the parent constructor\n super(options);\n /**\n * Where to find pyodide.js (private).\n */\n this._pyodideURLs = [\n `https://pyodide.basthon.fr/{PYODIDE_VERSION}/full/pyodide/pyodide.js`,\n `https://cdn.jsdelivr.net/pyodide/v{PYODIDE_VERSION}/full/pyodide.js`,\n ];\n this.__kernel__ = null;\n this.pythonVersion = \"\";\n // for locally installed Pyodide\n this._pyodideURLs.unshift(`${this.basthonRoot()}/pyodide/pyodide.js`);\n this._pyodideURLs = options?.pyodideURLs ?? this._pyodideURLs;\n }\n language() {\n return \"python3\";\n }\n /**\n * Get the URL of Basthon modules dir.\n */\n basthonModulesRoot() {\n return this.basthonRoot() + \"/modules\";\n }\n /**\n * What to do when loaded (private).\n */\n async _onload() {\n const pyodide = self.pyodide;\n // reformat lockfile\n const packages = pyodide._api.lockfile_packages;\n for (let p of Object.keys(packages)) {\n const item = packages[p];\n item.file_name = item.file_name.replace(\"{basthonRoot}\", this.basthonRoot());\n }\n // get the version of Python from Python\n this.pythonVersion = pyodide.runPython(\"import platform ; platform.python_version()\");\n // load basthon and get kernel\n await pyodide.loadPackage(\"basthon\");\n this.__kernel__ = pyodide.pyimport(\"basthon\").__kernel__;\n this.__kernel__.start();\n }\n /*\n * Initialize the kernel.\n */\n async _init() {\n let pyodideURL = this._pyodideURLs[0];\n for (let url of this._pyodideURLs) {\n url = url.replace(\"{PYODIDE_VERSION}\", PYODIDE_VERSION);\n try {\n const response = await fetch(url, { method: \"HEAD\" });\n if (response.ok) {\n pyodideURL = url;\n break;\n }\n }\n catch (e) { }\n }\n try {\n await loadScript(pyodideURL);\n }\n catch (error) {\n console.log(error);\n console.error(\"Can't load pyodide.js\");\n throw error;\n }\n if (self.loadPyodide == null) {\n console.log(\"self.loadPyodide is null!\");\n throw new Error(\"Can't load pyodide.js\");\n }\n try {\n // loading with custom pyodide-lock.json\n self.pyodide = await self.loadPyodide({\n lockFileURL: this.basthonRoot() + \"/pyodide-lock.json\",\n });\n }\n catch (error) {\n console.log(error);\n console.error(\"Can't load Python from Pyodide\");\n throw error;\n }\n await this._onload();\n }\n /**\n * Execution count getter overload.\n */\n get execution_count() {\n return this.__kernel__.execution_count();\n }\n /**\n * Basthon async code evaluation function.\n */\n async _eval(data, code) {\n const outCallback = (msg) => this.sendStdoutStream(data, msg);\n const errCallback = (msg) => this.sendStderrStream(data, msg);\n // dependencies are loaded by eval\n const proxy = await this.__kernel__.eval(code, outCallback, errCallback, data);\n // when an error occures, proxy should be the error message\n if (!(proxy instanceof self.pyodide.ffi.PyProxy))\n throw proxy;\n const res = proxy.toJs({\n create_proxies: false,\n dict_converter: Object.fromEntries,\n });\n proxy.destroy();\n return res[0];\n }\n /**\n * Special case of starting a legacy kernel.\n */\n async legacyStart() {\n this.__kernel__.start();\n }\n /**\n * Special case of stoping a legacy kernel.\n */\n async legacyStop() {\n this.__kernel__.stop();\n }\n /**\n * Complete a code at the end (usefull for tab completion).\n *\n * Returns an array of two elements: the list of completions\n * and the start index.\n */\n async complete(code) {\n const proxy = this.__kernel__.complete(code);\n if (!(proxy instanceof self.pyodide.ffi.PyProxy))\n return proxy;\n const res = proxy.toJs();\n proxy.destroy();\n return res;\n }\n /**\n * Is the source ready to be evaluated or want we more?\n * Usefull to set ps1/ps2 for teminal prompt.\n */\n async more(source) {\n return this.__kernel__.more(source);\n }\n /**\n * List content of directory (Python's virtual FS).\n */\n readdir(path) {\n return self.pyodide._module.FS.readdir(path);\n }\n /**\n * Change current directory (Python's virtual FS).\n */\n chdir(path) {\n self.pyodide._module.FS.chdir(path);\n }\n /**\n * Create directory (Python's virtual FS).\n */\n mkdir(path) {\n self.pyodide._module.FS.mkdir(path);\n }\n /**\n * Put a file on the local (emulated) filesystem.\n */\n async putFile(filename, content) {\n this.__kernel__.put_file(filename, content);\n }\n /**\n * Get a file content from the VFS.\n */\n async getFile(path) {\n return this.__kernel__.get_file(path).toJs();\n }\n /**\n * Put an importable module on the local (emulated) filesystem\n * and load dependencies.\n */\n async putModule(filename, content) {\n return await this.__kernel__.put_module(filename, content);\n }\n /**\n * Get a user module file content.\n */\n async getUserModuleFile(filename) {\n return this.__kernel__.get_user_module_file(filename).toJs();\n }\n /**\n * List modules launched via putModule.\n */\n async userModules() {\n const proxy = this.__kernel__.user_modules();\n if (!(proxy instanceof self.pyodide.ffi.PyProxy))\n return proxy;\n const res = proxy.toJs();\n proxy.destroy();\n return res;\n }\n /**\n * Display a matplotlib kernel iframe from its html code.\n */\n async displayMatplotlibIFrame(iframeHTML) {\n const port = this.displayKernelIFrame(iframeHTML);\n port.onmessage = (event) => {\n console.log(\"Kernel Worker says: 'Message received from iframe: \" +\n event.data +\n \"'\");\n port.postMessage(\"hello from kernel worker\");\n };\n }\n}\n","import { expose } from \"@basthon/kernel-base/worker\";\nimport { Python3KernelWorker } from \"./worker\";\nexpose(Python3KernelWorker);\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n// the startup function\n__webpack_require__.x = () => {\n\t// Load entry module and return exports\n\t// This entry module depends on other loaded chunks and execution need to be delayed\n\tvar __webpack_exports__ = __webpack_require__.O(undefined, [\"vendors-node_modules_promise-delegate_dist_es_PromiseDelegate_js-node_modules_babel_runtime_r-2b2010\",\"kernel-base_lib_worker_kernel-worker_js\",\"kernel-base_lib_worker_kernel-main_js\"], () => (__webpack_require__(4499)))\n\t__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n\treturn __webpack_exports__;\n};\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks and chunks that the entrypoint depends on\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"\" + chunkId + \".js\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","var scriptUrl;\nif (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + \"\";\nvar document = __webpack_require__.g.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript && document.currentScript.tagName.toUpperCase() === 'SCRIPT')\n\t\tscriptUrl = document.currentScript.src;\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) {\n\t\t\tvar i = scripts.length - 1;\n\t\t\twhile (i > -1 && (!scriptUrl || !/^http(s?):/.test(scriptUrl))) scriptUrl = scripts[i--].src;\n\t\t}\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/^blob:/, \"\").replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","__webpack_require__.b = self.location + \"\";\n\n// object to store loaded chunks\n// \"1\" means \"already loaded\"\nvar installedChunks = {\n\t\"kernel-python3_lib_comlink-worker_js-_e7af0\": 1,\n\t\"kernel-python3_lib_comlink-worker_js-_e7af1\": 1\n};\n\n// importScripts chunk loading\nvar installChunk = (data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\tfor(var moduleId in moreModules) {\n\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t}\n\t}\n\tif(runtime) runtime(__webpack_require__);\n\twhile(chunkIds.length)\n\t\tinstalledChunks[chunkIds.pop()] = 1;\n\tparentChunkLoadingFunction(data);\n};\n__webpack_require__.f.i = (chunkId, promises) => {\n\t// \"1\" is the signal for \"already loaded\"\n\tif(!installedChunks[chunkId]) {\n\t\tif(true) { // all chunks have JS\n\t\t\timportScripts(__webpack_require__.p + __webpack_require__.u(chunkId));\n\t\t}\n\t}\n};\n\nvar chunkLoadingGlobal = self[\"webpackChunk_basthon_browser_bundle\"] = self[\"webpackChunk_basthon_browser_bundle\"] || [];\nvar parentChunkLoadingFunction = chunkLoadingGlobal.push.bind(chunkLoadingGlobal);\nchunkLoadingGlobal.push = installChunk;\n\n// no HMR\n\n// no HMR manifest","// run startup\nvar __webpack_exports__ = __webpack_require__.x();\n"],"names":["deferred","leafPrototypes","getProto","next","Python3KernelWorker","_KernelWorkerBase","options","_options$pyodideURLs","_this","_classCallCheck","_pyodideURLs","__kernel__","pythonVersion","unshift","concat","basthonRoot","pyodideURLs","_inherits","_createClass","key","value","this","_onload2","_asyncToGenerator","_regeneratorRuntime","_callee","pyodide","packages","_i","_Object$keys","p","item","_context","prev","self","_api","lockfile_packages","Object","keys","length","file_name","replace","runPython","loadPackage","pyimport","start","stop","apply","arguments","_init2","_callee2","pyodideURL","_iterator","_step","url","_t2","_t3","_t4","_context2","_createForOfIteratorHelper","s","n","done","fetch","method","sent","ok","abrupt","e","f","finish","loadScript","console","log","error","loadPyodide","Error","lockFileURL","_onload","get","execution_count","_eval2","_callee3","data","code","outCallback","errCallback","proxy","res","_this2","_context3","msg","sendStdoutStream","sendStderrStream","eval","ffi","PyProxy","toJs","create_proxies","dict_converter","fromEntries","destroy","_x","_x2","_legacyStart","_callee4","_context4","_legacyStop","_callee5","_context5","_complete","_callee6","_context6","complete","_x3","_more","_callee7","source","_context7","more","_x4","path","_module","FS","readdir","chdir","mkdir","_putFile","_callee8","filename","content","_context8","put_file","_x5","_x6","_getFile","_callee9","_context9","get_file","_x7","_putModule","_callee0","_context0","put_module","_x8","_x9","_getUserModuleFile","_callee1","_context1","get_user_module_file","_x0","_userModules","_callee10","_context10","user_modules","_displayMatplotlibIFrame","_callee11","iframeHTML","port","_context11","displayKernelIFrame","onmessage","event","postMessage","_x1","KernelWorkerBase","expose","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","exports","module","__webpack_modules__","call","m","x","__webpack_exports__","O","result","chunkIds","fn","priority","notFulfilled","Infinity","i","fulfilled","j","every","splice","r","getter","__esModule","d","a","getPrototypeOf","obj","t","mode","then","ns","create","def","current","indexOf","getOwnPropertyNames","forEach","definition","o","defineProperty","enumerable","chunkId","Promise","all","reduce","promises","u","g","globalThis","Function","window","prop","prototype","hasOwnProperty","Symbol","toStringTag","scriptUrl","importScripts","location","document","currentScript","tagName","toUpperCase","src","scripts","getElementsByTagName","test","b","installedChunks","chunkLoadingGlobal","parentChunkLoadingFunction","push","bind","moreModules","runtime","pop","map"],"sourceRoot":""}
@@ -1,2 +1,2 @@
1
- "use strict";(self.webpackChunk_basthon_browser_bundle=self.webpackChunk_basthon_browser_bundle||[]).push([["kernel-python3_lib_comlink-worker_js-_e7af1"],{4499:(e,t,r)=>{var n=r(2069),o=r(6330),a=r(5152),s=r(414),i=r(5309),u=r(2715),c=r(9296),l=r(5799),p=r.n(l);function f(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=function(e,t){if(e){if("string"==typeof e)return d(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?d(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0,o=function(){};return{s:o,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,s=!0,i=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return s=e.done,e},e:function(e){i=!0,a=e},f:function(){try{s||null==r.return||r.return()}finally{if(i)throw a}}}}function d(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function h(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(h=function(){return!!e})()}var y=function(e){function t(e){var r,n,o,s,c;return(0,a.A)(this,t),o=this,s=t,c=[e],s=(0,u.A)(s),(n=(0,i.A)(o,h()?Reflect.construct(s,c||[],(0,u.A)(o).constructor):s.apply(o,c)))._pyodideURLs=["https://pyodide.basthon.fr/{PYODIDE_VERSION}/full/pyodide/pyodide.js","https://cdn.jsdelivr.net/pyodide/v{PYODIDE_VERSION}/full/pyodide.js"],n.__kernel__=null,n.pythonVersion="",n._pyodideURLs.unshift("".concat(n.basthonRoot(),"/pyodide/pyodide.js")),n._pyodideURLs=null!==(r=null==e?void 0:e.pyodideURLs)&&void 0!==r?r:n._pyodideURLs,n}return(0,c.A)(t,e),(0,s.A)(t,[{key:"language",value:function(){return"python3"}},{key:"basthonModulesRoot",value:function(){return this.basthonRoot()+"/modules"}},{key:"_onload",value:(A=(0,o.A)(p().mark(function e(){var t,r,n,o,a,s;return p().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:for(t=self.pyodide,r=t._api.lockfile_packages,n=0,o=Object.keys(r);n<o.length;n++)a=o[n],(s=r[a]).file_name=s.file_name.replace("{basthonRoot}",this.basthonRoot());return this.pythonVersion=t.runPython("import platform ; platform.python_version()"),e.next=1,t.loadPackage("basthon");case 1:this.__kernel__=t.pyimport("basthon").__kernel__,this.__kernel__.start();case 2:case"end":return e.stop()}},e,this)})),function(){return A.apply(this,arguments)})},{key:"_init",value:(g=(0,o.A)(p().mark(function e(){var t,r,o,a,s,i,u;return p().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:t=this._pyodideURLs[0],r=f(this._pyodideURLs),e.prev=1,r.s();case 2:if((o=r.n()).done){e.next=8;break}return a=(a=o.value).replace("{PYODIDE_VERSION}","0.24.1"),e.prev=3,e.next=4,fetch(a,{method:"HEAD"});case 4:if(!e.sent.ok){e.next=5;break}return t=a,e.abrupt("continue",8);case 5:e.next=7;break;case 6:e.prev=6,e.catch(3);case 7:e.next=2;break;case 8:e.next=10;break;case 9:e.prev=9,s=e.catch(1),r.e(s);case 10:return e.prev=10,r.f(),e.finish(10);case 11:return e.prev=11,e.next=12,(0,n.k0)(t);case 12:e.next=14;break;case 13:throw e.prev=13,i=e.catch(11),console.log(i),console.error("Can't load pyodide.js"),i;case 14:if(null!=self.loadPyodide){e.next=15;break}throw console.log("self.loadPyodide is null!"),new Error("Can't load pyodide.js");case 15:return e.prev=15,e.next=16,self.loadPyodide({lockFileURL:this.basthonRoot()+"/pyodide-lock.json"});case 16:self.pyodide=e.sent,e.next=18;break;case 17:throw e.prev=17,u=e.catch(15),console.log(u),console.error("Can't load Python from Pyodide"),u;case 18:return e.next=19,this._onload();case 19:case"end":return e.stop()}},e,this,[[1,9,10,11],[3,6],[11,13],[15,17]])})),function(){return g.apply(this,arguments)})},{key:"execution_count",get:function(){return this.__kernel__.execution_count()}},{key:"_eval",value:(x=(0,o.A)(p().mark(function e(t,r){var n,o,a,s,i=this;return p().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return n=function(e){return i.sendStdoutStream(t,e)},o=function(e){return i.sendStderrStream(t,e)},e.next=1,this.__kernel__.eval(r,n,o,t);case 1:if((a=e.sent)instanceof self.pyodide.ffi.PyProxy){e.next=2;break}throw a;case 2:return s=a.toJs({create_proxies:!1,dict_converter:Object.fromEntries}),a.destroy(),e.abrupt("return",s[0]);case 3:case"end":return e.stop()}},e,this)})),function(e,t){return x.apply(this,arguments)})},{key:"legacyStart",value:(w=(0,o.A)(p().mark(function e(){return p().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:this.__kernel__.start();case 1:case"end":return e.stop()}},e,this)})),function(){return w.apply(this,arguments)})},{key:"legacyStop",value:(b=(0,o.A)(p().mark(function e(){return p().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:this.__kernel__.stop();case 1:case"end":return e.stop()}},e,this)})),function(){return b.apply(this,arguments)})},{key:"complete",value:(m=(0,o.A)(p().mark(function e(t){var r,n;return p().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if((r=this.__kernel__.complete(t))instanceof self.pyodide.ffi.PyProxy){e.next=1;break}return e.abrupt("return",r);case 1:return n=r.toJs(),r.destroy(),e.abrupt("return",n);case 2:case"end":return e.stop()}},e,this)})),function(e){return m.apply(this,arguments)})},{key:"more",value:(v=(0,o.A)(p().mark(function e(t){return p().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.__kernel__.more(t));case 1:case"end":return e.stop()}},e,this)})),function(e){return v.apply(this,arguments)})},{key:"readdir",value:function(e){return self.pyodide._module.FS.readdir(e)}},{key:"chdir",value:function(e){self.pyodide._module.FS.chdir(e)}},{key:"mkdir",value:function(e){self.pyodide._module.FS.mkdir(e)}},{key:"putFile",value:(k=(0,o.A)(p().mark(function e(t,r){return p().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:this.__kernel__.put_file(t,r);case 1:case"end":return e.stop()}},e,this)})),function(e,t){return k.apply(this,arguments)})},{key:"getFile",value:(_=(0,o.A)(p().mark(function e(t){return p().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.__kernel__.get_file(t).toJs());case 1:case"end":return e.stop()}},e,this)})),function(e){return _.apply(this,arguments)})},{key:"putModule",value:(y=(0,o.A)(p().mark(function e(t,r){return p().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=1,this.__kernel__.put_module(t,r);case 1:return e.abrupt("return",e.sent);case 2:case"end":return e.stop()}},e,this)})),function(e,t){return y.apply(this,arguments)})},{key:"getUserModuleFile",value:(d=(0,o.A)(p().mark(function e(t){return p().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.__kernel__.get_user_module_file(t).toJs());case 1:case"end":return e.stop()}},e,this)})),function(e){return d.apply(this,arguments)})},{key:"userModules",value:(l=(0,o.A)(p().mark(function e(){var t,r;return p().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if((t=this.__kernel__.user_modules())instanceof self.pyodide.ffi.PyProxy){e.next=1;break}return e.abrupt("return",t);case 1:return r=t.toJs(),t.destroy(),e.abrupt("return",r);case 2:case"end":return e.stop()}},e,this)})),function(){return l.apply(this,arguments)})},{key:"displayMatplotlibIFrame",value:(r=(0,o.A)(p().mark(function e(t){var r;return p().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:(r=this.displayKernelIFrame(t)).onmessage=function(e){console.log("Kernel Worker says: 'Message received from iframe: "+e.data+"'"),r.postMessage("hello from kernel worker")};case 1:case"end":return e.stop()}},e,this)})),function(e){return r.apply(this,arguments)})}]);var r,l,d,y,_,k,v,m,b,w,x,g,A}(n.fI);(0,n.p)(y)}}]);
1
+ "use strict";(self.webpackChunk_basthon_browser_bundle=self.webpackChunk_basthon_browser_bundle||[]).push([["kernel-python3_lib_comlink-worker_js-_e7af1"],{4499:(e,t,r)=>{var n=r(2069),o=r(6330),a=r(5152),s=r(414),i=r(5309),u=r(2715),c=r(9296),l=r(5799),p=r.n(l);function f(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=function(e,t){if(e){if("string"==typeof e)return d(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?d(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0,o=function(){};return{s:o,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,s=!0,i=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return s=e.done,e},e:function(e){i=!0,a=e},f:function(){try{s||null==r.return||r.return()}finally{if(i)throw a}}}}function d(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function h(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(h=function(){return!!e})()}var y=function(e){function t(e){var r,n,o,s,c;return(0,a.A)(this,t),o=this,s=t,c=[e],s=(0,u.A)(s),(n=(0,i.A)(o,h()?Reflect.construct(s,c||[],(0,u.A)(o).constructor):s.apply(o,c)))._pyodideURLs=["https://pyodide.basthon.fr/{PYODIDE_VERSION}/full/pyodide/pyodide.js","https://cdn.jsdelivr.net/pyodide/v{PYODIDE_VERSION}/full/pyodide.js"],n.__kernel__=null,n.pythonVersion="",n._pyodideURLs.unshift("".concat(n.basthonRoot(),"/pyodide/pyodide.js")),n._pyodideURLs=null!==(r=null==e?void 0:e.pyodideURLs)&&void 0!==r?r:n._pyodideURLs,n}return(0,c.A)(t,e),(0,s.A)(t,[{key:"language",value:function(){return"python3"}},{key:"basthonModulesRoot",value:function(){return this.basthonRoot()+"/modules"}},{key:"_onload",value:(A=(0,o.A)(p().mark(function e(){var t,r,n,o,a,s;return p().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:for(t=self.pyodide,r=t._api.lockfile_packages,n=0,o=Object.keys(r);n<o.length;n++)a=o[n],(s=r[a]).file_name=s.file_name.replace("{basthonRoot}",this.basthonRoot());return this.pythonVersion=t.runPython("import platform ; platform.python_version()"),e.next=1,t.loadPackage("basthon");case 1:this.__kernel__=t.pyimport("basthon").__kernel__,this.__kernel__.start();case 2:case"end":return e.stop()}},e,this)})),function(){return A.apply(this,arguments)})},{key:"_init",value:(g=(0,o.A)(p().mark(function e(){var t,r,o,a,s,i,u;return p().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:t=this._pyodideURLs[0],r=f(this._pyodideURLs),e.prev=1,r.s();case 2:if((o=r.n()).done){e.next=8;break}return a=(a=o.value).replace("{PYODIDE_VERSION}","0.26.4"),e.prev=3,e.next=4,fetch(a,{method:"HEAD"});case 4:if(!e.sent.ok){e.next=5;break}return t=a,e.abrupt("continue",8);case 5:e.next=7;break;case 6:e.prev=6,e.catch(3);case 7:e.next=2;break;case 8:e.next=10;break;case 9:e.prev=9,s=e.catch(1),r.e(s);case 10:return e.prev=10,r.f(),e.finish(10);case 11:return e.prev=11,e.next=12,(0,n.k0)(t);case 12:e.next=14;break;case 13:throw e.prev=13,i=e.catch(11),console.log(i),console.error("Can't load pyodide.js"),i;case 14:if(null!=self.loadPyodide){e.next=15;break}throw console.log("self.loadPyodide is null!"),new Error("Can't load pyodide.js");case 15:return e.prev=15,e.next=16,self.loadPyodide({lockFileURL:this.basthonRoot()+"/pyodide-lock.json"});case 16:self.pyodide=e.sent,e.next=18;break;case 17:throw e.prev=17,u=e.catch(15),console.log(u),console.error("Can't load Python from Pyodide"),u;case 18:return e.next=19,this._onload();case 19:case"end":return e.stop()}},e,this,[[1,9,10,11],[3,6],[11,13],[15,17]])})),function(){return g.apply(this,arguments)})},{key:"execution_count",get:function(){return this.__kernel__.execution_count()}},{key:"_eval",value:(x=(0,o.A)(p().mark(function e(t,r){var n,o,a,s,i=this;return p().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return n=function(e){return i.sendStdoutStream(t,e)},o=function(e){return i.sendStderrStream(t,e)},e.next=1,this.__kernel__.eval(r,n,o,t);case 1:if((a=e.sent)instanceof self.pyodide.ffi.PyProxy){e.next=2;break}throw a;case 2:return s=a.toJs({create_proxies:!1,dict_converter:Object.fromEntries}),a.destroy(),e.abrupt("return",s[0]);case 3:case"end":return e.stop()}},e,this)})),function(e,t){return x.apply(this,arguments)})},{key:"legacyStart",value:(w=(0,o.A)(p().mark(function e(){return p().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:this.__kernel__.start();case 1:case"end":return e.stop()}},e,this)})),function(){return w.apply(this,arguments)})},{key:"legacyStop",value:(b=(0,o.A)(p().mark(function e(){return p().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:this.__kernel__.stop();case 1:case"end":return e.stop()}},e,this)})),function(){return b.apply(this,arguments)})},{key:"complete",value:(m=(0,o.A)(p().mark(function e(t){var r,n;return p().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if((r=this.__kernel__.complete(t))instanceof self.pyodide.ffi.PyProxy){e.next=1;break}return e.abrupt("return",r);case 1:return n=r.toJs(),r.destroy(),e.abrupt("return",n);case 2:case"end":return e.stop()}},e,this)})),function(e){return m.apply(this,arguments)})},{key:"more",value:(v=(0,o.A)(p().mark(function e(t){return p().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.__kernel__.more(t));case 1:case"end":return e.stop()}},e,this)})),function(e){return v.apply(this,arguments)})},{key:"readdir",value:function(e){return self.pyodide._module.FS.readdir(e)}},{key:"chdir",value:function(e){self.pyodide._module.FS.chdir(e)}},{key:"mkdir",value:function(e){self.pyodide._module.FS.mkdir(e)}},{key:"putFile",value:(k=(0,o.A)(p().mark(function e(t,r){return p().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:this.__kernel__.put_file(t,r);case 1:case"end":return e.stop()}},e,this)})),function(e,t){return k.apply(this,arguments)})},{key:"getFile",value:(_=(0,o.A)(p().mark(function e(t){return p().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.__kernel__.get_file(t).toJs());case 1:case"end":return e.stop()}},e,this)})),function(e){return _.apply(this,arguments)})},{key:"putModule",value:(y=(0,o.A)(p().mark(function e(t,r){return p().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=1,this.__kernel__.put_module(t,r);case 1:return e.abrupt("return",e.sent);case 2:case"end":return e.stop()}},e,this)})),function(e,t){return y.apply(this,arguments)})},{key:"getUserModuleFile",value:(d=(0,o.A)(p().mark(function e(t){return p().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.__kernel__.get_user_module_file(t).toJs());case 1:case"end":return e.stop()}},e,this)})),function(e){return d.apply(this,arguments)})},{key:"userModules",value:(l=(0,o.A)(p().mark(function e(){var t,r;return p().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if((t=this.__kernel__.user_modules())instanceof self.pyodide.ffi.PyProxy){e.next=1;break}return e.abrupt("return",t);case 1:return r=t.toJs(),t.destroy(),e.abrupt("return",r);case 2:case"end":return e.stop()}},e,this)})),function(){return l.apply(this,arguments)})},{key:"displayMatplotlibIFrame",value:(r=(0,o.A)(p().mark(function e(t){var r;return p().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:(r=this.displayKernelIFrame(t)).onmessage=function(e){console.log("Kernel Worker says: 'Message received from iframe: "+e.data+"'"),r.postMessage("hello from kernel worker")};case 1:case"end":return e.stop()}},e,this)})),function(e){return r.apply(this,arguments)})}]);var r,l,d,y,_,k,v,m,b,w,x,g,A}(n.fI);(0,n.p)(y)}}]);
2
2
  //# sourceMappingURL=kernel-python3_lib_comlink-worker_js-_e7af1.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"kernel-python3_lib_comlink-worker_js-_e7af1.js","mappings":"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","sources":["webpack://@basthon/browser-bundle/../kernel-python3/lib/worker.js","webpack://@basthon/browser-bundle/../kernel-python3/lib/comlink-worker.js"],"sourcesContent":["import { KernelWorkerBase, loadScript } from \"@basthon/kernel-base/worker\";\nconst PYODIDE_VERSION = \"0.24.1\";\nexport class Python3KernelWorker extends KernelWorkerBase {\n constructor(options) {\n // do not forget to call the parent constructor\n super(options);\n /**\n * Where to find pyodide.js (private).\n */\n this._pyodideURLs = [\n `https://pyodide.basthon.fr/{PYODIDE_VERSION}/full/pyodide/pyodide.js`,\n `https://cdn.jsdelivr.net/pyodide/v{PYODIDE_VERSION}/full/pyodide.js`,\n ];\n this.__kernel__ = null;\n this.pythonVersion = \"\";\n // for locally installed Pyodide\n this._pyodideURLs.unshift(`${this.basthonRoot()}/pyodide/pyodide.js`);\n this._pyodideURLs = options?.pyodideURLs ?? this._pyodideURLs;\n }\n language() {\n return \"python3\";\n }\n /**\n * Get the URL of Basthon modules dir.\n */\n basthonModulesRoot() {\n return this.basthonRoot() + \"/modules\";\n }\n /**\n * What to do when loaded (private).\n */\n async _onload() {\n const pyodide = self.pyodide;\n // reformat lockfile\n const packages = pyodide._api.lockfile_packages;\n for (let p of Object.keys(packages)) {\n const item = packages[p];\n item.file_name = item.file_name.replace(\"{basthonRoot}\", this.basthonRoot());\n }\n // get the version of Python from Python\n this.pythonVersion = pyodide.runPython(\"import platform ; platform.python_version()\");\n // load basthon and get kernel\n await pyodide.loadPackage(\"basthon\");\n this.__kernel__ = pyodide.pyimport(\"basthon\").__kernel__;\n this.__kernel__.start();\n }\n /*\n * Initialize the kernel.\n */\n async _init() {\n let pyodideURL = this._pyodideURLs[0];\n for (let url of this._pyodideURLs) {\n url = url.replace(\"{PYODIDE_VERSION}\", PYODIDE_VERSION);\n try {\n const response = await fetch(url, { method: \"HEAD\" });\n if (response.ok) {\n pyodideURL = url;\n break;\n }\n }\n catch (e) { }\n }\n try {\n await loadScript(pyodideURL);\n }\n catch (error) {\n console.log(error);\n console.error(\"Can't load pyodide.js\");\n throw error;\n }\n if (self.loadPyodide == null) {\n console.log(\"self.loadPyodide is null!\");\n throw new Error(\"Can't load pyodide.js\");\n }\n try {\n // loading with custom pyodide-lock.json\n self.pyodide = await self.loadPyodide({\n lockFileURL: this.basthonRoot() + \"/pyodide-lock.json\",\n });\n }\n catch (error) {\n console.log(error);\n console.error(\"Can't load Python from Pyodide\");\n throw error;\n }\n await this._onload();\n }\n /**\n * Execution count getter overload.\n */\n get execution_count() {\n return this.__kernel__.execution_count();\n }\n /**\n * Basthon async code evaluation function.\n */\n async _eval(data, code) {\n const outCallback = (msg) => this.sendStdoutStream(data, msg);\n const errCallback = (msg) => this.sendStderrStream(data, msg);\n // dependencies are loaded by eval\n const proxy = await this.__kernel__.eval(code, outCallback, errCallback, data);\n // when an error occures, proxy should be the error message\n if (!(proxy instanceof self.pyodide.ffi.PyProxy))\n throw proxy;\n const res = proxy.toJs({\n create_proxies: false,\n dict_converter: Object.fromEntries,\n });\n proxy.destroy();\n return res[0];\n }\n /**\n * Special case of starting a legacy kernel.\n */\n async legacyStart() {\n this.__kernel__.start();\n }\n /**\n * Special case of stoping a legacy kernel.\n */\n async legacyStop() {\n this.__kernel__.stop();\n }\n /**\n * Complete a code at the end (usefull for tab completion).\n *\n * Returns an array of two elements: the list of completions\n * and the start index.\n */\n async complete(code) {\n const proxy = this.__kernel__.complete(code);\n if (!(proxy instanceof self.pyodide.ffi.PyProxy))\n return proxy;\n const res = proxy.toJs();\n proxy.destroy();\n return res;\n }\n /**\n * Is the source ready to be evaluated or want we more?\n * Usefull to set ps1/ps2 for teminal prompt.\n */\n async more(source) {\n return this.__kernel__.more(source);\n }\n /**\n * List content of directory (Python's virtual FS).\n */\n readdir(path) {\n return self.pyodide._module.FS.readdir(path);\n }\n /**\n * Change current directory (Python's virtual FS).\n */\n chdir(path) {\n self.pyodide._module.FS.chdir(path);\n }\n /**\n * Create directory (Python's virtual FS).\n */\n mkdir(path) {\n self.pyodide._module.FS.mkdir(path);\n }\n /**\n * Put a file on the local (emulated) filesystem.\n */\n async putFile(filename, content) {\n this.__kernel__.put_file(filename, content);\n }\n /**\n * Get a file content from the VFS.\n */\n async getFile(path) {\n return this.__kernel__.get_file(path).toJs();\n }\n /**\n * Put an importable module on the local (emulated) filesystem\n * and load dependencies.\n */\n async putModule(filename, content) {\n return await this.__kernel__.put_module(filename, content);\n }\n /**\n * Get a user module file content.\n */\n async getUserModuleFile(filename) {\n return this.__kernel__.get_user_module_file(filename).toJs();\n }\n /**\n * List modules launched via putModule.\n */\n async userModules() {\n const proxy = this.__kernel__.user_modules();\n if (!(proxy instanceof self.pyodide.ffi.PyProxy))\n return proxy;\n const res = proxy.toJs();\n proxy.destroy();\n return res;\n }\n /**\n * Display a matplotlib kernel iframe from its html code.\n */\n async displayMatplotlibIFrame(iframeHTML) {\n const port = this.displayKernelIFrame(iframeHTML);\n port.onmessage = (event) => {\n console.log(\"Kernel Worker says: 'Message received from iframe: \" +\n event.data +\n \"'\");\n port.postMessage(\"hello from kernel worker\");\n };\n }\n}\n","import { expose } from \"@basthon/kernel-base/worker\";\nimport { Python3KernelWorker } from \"./worker\";\nexpose(Python3KernelWorker);\n"],"names":["Python3KernelWorker","_KernelWorkerBase","options","_options$pyodideURLs","_this","_classCallCheck","_pyodideURLs","__kernel__","pythonVersion","unshift","concat","basthonRoot","pyodideURLs","_inherits","_createClass","key","value","this","_onload2","_asyncToGenerator","_regeneratorRuntime","_callee","pyodide","packages","_i","_Object$keys","p","item","_context","prev","next","self","_api","lockfile_packages","Object","keys","length","file_name","replace","runPython","loadPackage","pyimport","start","stop","apply","arguments","_init2","_callee2","pyodideURL","_iterator","_step","url","_t2","_t3","_t4","_context2","_createForOfIteratorHelper","s","n","done","fetch","method","sent","ok","abrupt","e","f","finish","loadScript","console","log","error","loadPyodide","Error","lockFileURL","_onload","get","execution_count","_eval2","_callee3","data","code","outCallback","errCallback","proxy","res","_this2","_context3","msg","sendStdoutStream","sendStderrStream","eval","ffi","PyProxy","toJs","create_proxies","dict_converter","fromEntries","destroy","_x","_x2","_legacyStart","_callee4","_context4","_legacyStop","_callee5","_context5","_complete","_callee6","_context6","complete","_x3","_more","_callee7","source","_context7","more","_x4","path","_module","FS","readdir","chdir","mkdir","_putFile","_callee8","filename","content","_context8","put_file","_x5","_x6","_getFile","_callee9","_context9","get_file","_x7","_putModule","_callee0","_context0","put_module","_x8","_x9","_getUserModuleFile","_callee1","_context1","get_user_module_file","_x0","_userModules","_callee10","_context10","user_modules","_displayMatplotlibIFrame","_callee11","iframeHTML","port","_context11","displayKernelIFrame","onmessage","event","postMessage","_x1","KernelWorkerBase","expose"],"sourceRoot":""}
1
+ {"version":3,"file":"kernel-python3_lib_comlink-worker_js-_e7af1.js","mappings":"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","sources":["webpack://@basthon/browser-bundle/../kernel-python3/lib/worker.js","webpack://@basthon/browser-bundle/../kernel-python3/lib/comlink-worker.js"],"sourcesContent":["import { KernelWorkerBase, loadScript } from \"@basthon/kernel-base/worker\";\nconst PYODIDE_VERSION = \"0.26.4\";\nexport class Python3KernelWorker extends KernelWorkerBase {\n constructor(options) {\n // do not forget to call the parent constructor\n super(options);\n /**\n * Where to find pyodide.js (private).\n */\n this._pyodideURLs = [\n `https://pyodide.basthon.fr/{PYODIDE_VERSION}/full/pyodide/pyodide.js`,\n `https://cdn.jsdelivr.net/pyodide/v{PYODIDE_VERSION}/full/pyodide.js`,\n ];\n this.__kernel__ = null;\n this.pythonVersion = \"\";\n // for locally installed Pyodide\n this._pyodideURLs.unshift(`${this.basthonRoot()}/pyodide/pyodide.js`);\n this._pyodideURLs = options?.pyodideURLs ?? this._pyodideURLs;\n }\n language() {\n return \"python3\";\n }\n /**\n * Get the URL of Basthon modules dir.\n */\n basthonModulesRoot() {\n return this.basthonRoot() + \"/modules\";\n }\n /**\n * What to do when loaded (private).\n */\n async _onload() {\n const pyodide = self.pyodide;\n // reformat lockfile\n const packages = pyodide._api.lockfile_packages;\n for (let p of Object.keys(packages)) {\n const item = packages[p];\n item.file_name = item.file_name.replace(\"{basthonRoot}\", this.basthonRoot());\n }\n // get the version of Python from Python\n this.pythonVersion = pyodide.runPython(\"import platform ; platform.python_version()\");\n // load basthon and get kernel\n await pyodide.loadPackage(\"basthon\");\n this.__kernel__ = pyodide.pyimport(\"basthon\").__kernel__;\n this.__kernel__.start();\n }\n /*\n * Initialize the kernel.\n */\n async _init() {\n let pyodideURL = this._pyodideURLs[0];\n for (let url of this._pyodideURLs) {\n url = url.replace(\"{PYODIDE_VERSION}\", PYODIDE_VERSION);\n try {\n const response = await fetch(url, { method: \"HEAD\" });\n if (response.ok) {\n pyodideURL = url;\n break;\n }\n }\n catch (e) { }\n }\n try {\n await loadScript(pyodideURL);\n }\n catch (error) {\n console.log(error);\n console.error(\"Can't load pyodide.js\");\n throw error;\n }\n if (self.loadPyodide == null) {\n console.log(\"self.loadPyodide is null!\");\n throw new Error(\"Can't load pyodide.js\");\n }\n try {\n // loading with custom pyodide-lock.json\n self.pyodide = await self.loadPyodide({\n lockFileURL: this.basthonRoot() + \"/pyodide-lock.json\",\n });\n }\n catch (error) {\n console.log(error);\n console.error(\"Can't load Python from Pyodide\");\n throw error;\n }\n await this._onload();\n }\n /**\n * Execution count getter overload.\n */\n get execution_count() {\n return this.__kernel__.execution_count();\n }\n /**\n * Basthon async code evaluation function.\n */\n async _eval(data, code) {\n const outCallback = (msg) => this.sendStdoutStream(data, msg);\n const errCallback = (msg) => this.sendStderrStream(data, msg);\n // dependencies are loaded by eval\n const proxy = await this.__kernel__.eval(code, outCallback, errCallback, data);\n // when an error occures, proxy should be the error message\n if (!(proxy instanceof self.pyodide.ffi.PyProxy))\n throw proxy;\n const res = proxy.toJs({\n create_proxies: false,\n dict_converter: Object.fromEntries,\n });\n proxy.destroy();\n return res[0];\n }\n /**\n * Special case of starting a legacy kernel.\n */\n async legacyStart() {\n this.__kernel__.start();\n }\n /**\n * Special case of stoping a legacy kernel.\n */\n async legacyStop() {\n this.__kernel__.stop();\n }\n /**\n * Complete a code at the end (usefull for tab completion).\n *\n * Returns an array of two elements: the list of completions\n * and the start index.\n */\n async complete(code) {\n const proxy = this.__kernel__.complete(code);\n if (!(proxy instanceof self.pyodide.ffi.PyProxy))\n return proxy;\n const res = proxy.toJs();\n proxy.destroy();\n return res;\n }\n /**\n * Is the source ready to be evaluated or want we more?\n * Usefull to set ps1/ps2 for teminal prompt.\n */\n async more(source) {\n return this.__kernel__.more(source);\n }\n /**\n * List content of directory (Python's virtual FS).\n */\n readdir(path) {\n return self.pyodide._module.FS.readdir(path);\n }\n /**\n * Change current directory (Python's virtual FS).\n */\n chdir(path) {\n self.pyodide._module.FS.chdir(path);\n }\n /**\n * Create directory (Python's virtual FS).\n */\n mkdir(path) {\n self.pyodide._module.FS.mkdir(path);\n }\n /**\n * Put a file on the local (emulated) filesystem.\n */\n async putFile(filename, content) {\n this.__kernel__.put_file(filename, content);\n }\n /**\n * Get a file content from the VFS.\n */\n async getFile(path) {\n return this.__kernel__.get_file(path).toJs();\n }\n /**\n * Put an importable module on the local (emulated) filesystem\n * and load dependencies.\n */\n async putModule(filename, content) {\n return await this.__kernel__.put_module(filename, content);\n }\n /**\n * Get a user module file content.\n */\n async getUserModuleFile(filename) {\n return this.__kernel__.get_user_module_file(filename).toJs();\n }\n /**\n * List modules launched via putModule.\n */\n async userModules() {\n const proxy = this.__kernel__.user_modules();\n if (!(proxy instanceof self.pyodide.ffi.PyProxy))\n return proxy;\n const res = proxy.toJs();\n proxy.destroy();\n return res;\n }\n /**\n * Display a matplotlib kernel iframe from its html code.\n */\n async displayMatplotlibIFrame(iframeHTML) {\n const port = this.displayKernelIFrame(iframeHTML);\n port.onmessage = (event) => {\n console.log(\"Kernel Worker says: 'Message received from iframe: \" +\n event.data +\n \"'\");\n port.postMessage(\"hello from kernel worker\");\n };\n }\n}\n","import { expose } from \"@basthon/kernel-base/worker\";\nimport { Python3KernelWorker } from \"./worker\";\nexpose(Python3KernelWorker);\n"],"names":["Python3KernelWorker","_KernelWorkerBase","options","_options$pyodideURLs","_this","_classCallCheck","_pyodideURLs","__kernel__","pythonVersion","unshift","concat","basthonRoot","pyodideURLs","_inherits","_createClass","key","value","this","_onload2","_asyncToGenerator","_regeneratorRuntime","_callee","pyodide","packages","_i","_Object$keys","p","item","_context","prev","next","self","_api","lockfile_packages","Object","keys","length","file_name","replace","runPython","loadPackage","pyimport","start","stop","apply","arguments","_init2","_callee2","pyodideURL","_iterator","_step","url","_t2","_t3","_t4","_context2","_createForOfIteratorHelper","s","n","done","fetch","method","sent","ok","abrupt","e","f","finish","loadScript","console","log","error","loadPyodide","Error","lockFileURL","_onload","get","execution_count","_eval2","_callee3","data","code","outCallback","errCallback","proxy","res","_this2","_context3","msg","sendStdoutStream","sendStderrStream","eval","ffi","PyProxy","toJs","create_proxies","dict_converter","fromEntries","destroy","_x","_x2","_legacyStart","_callee4","_context4","_legacyStop","_callee5","_context5","_complete","_callee6","_context6","complete","_x3","_more","_callee7","source","_context7","more","_x4","path","_module","FS","readdir","chdir","mkdir","_putFile","_callee8","filename","content","_context8","put_file","_x5","_x6","_getFile","_callee9","_context9","get_file","_x7","_putModule","_callee0","_context0","put_module","_x8","_x9","_getUserModuleFile","_callee1","_context1","get_user_module_file","_x0","_userModules","_callee10","_context10","user_modules","_displayMatplotlibIFrame","_callee11","iframeHTML","port","_context11","displayKernelIFrame","onmessage","event","postMessage","_x1","KernelWorkerBase","expose"],"sourceRoot":""}