@basthon/browser-bundle 0.78.0 → 0.78.2

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 (33) hide show
  1. package/lib/{0.78.0 → 0.78.2}/python3/basthon.tar +0 -0
  2. package/lib/{0.78.0 → 0.78.2}/python3/modules/graphviz-0.0.1-py3-none-any.whl +0 -0
  3. package/lib/{0.78.0 → 0.78.2}/python3/modules/ipython-0.0.1-py3-none-any.whl +0 -0
  4. package/lib/{0.78.0 → 0.78.2}/python3/modules/p5-0.0.1-py3-none-any.whl +0 -0
  5. package/lib/{0.78.0 → 0.78.2}/python3/modules/proj4py-0.0.1-py3-none-any.whl +0 -0
  6. package/lib/{0.78.0 → 0.78.2}/python3/modules/rcviz-0.0.1-py3-none-any.whl +0 -0
  7. package/lib/{0.78.0 → 0.78.2}/python3/modules/requests-0.0.1-py3-none-any.whl +0 -0
  8. package/lib/{0.78.0 → 0.78.2}/python3/modules/turtle-0.0.1-py3-none-any.whl +0 -0
  9. package/lib/{0.78.0 → 0.78.2}/python3/modules/tutor-0.0.1-py3-none-any.whl +0 -0
  10. package/lib/{0.78.0 → 0.78.2}/python3/pyodide-lock.json +1 -1
  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.js +1 -1
  14. package/lib/kernel-base_lib_worker_index_js.js.map +1 -1
  15. package/lib/kernel-base_lib_worker_kernel-main_js.js.map +1 -1
  16. package/lib/kernel-base_lib_worker_kernel-worker_js-_e0870.js +1 -1
  17. package/lib/kernel-base_lib_worker_kernel-worker_js-_e0870.js.map +1 -1
  18. package/lib/kernel-base_lib_worker_kernel-worker_js-_e0871.js +1 -1
  19. package/lib/kernel-base_lib_worker_kernel-worker_js-_e0871.js.map +1 -1
  20. package/lib/kernel-ocaml_lib_comlink-worker_js-_267a0.js +1 -1
  21. package/lib/kernel-ocaml_lib_comlink-worker_js-_267a0.js.map +1 -1
  22. package/lib/kernel-ocaml_lib_comlink-worker_js-_267a1.js +1 -1
  23. package/lib/kernel-ocaml_lib_comlink-worker_js-_267a1.js.map +1 -1
  24. package/package.json +2 -2
  25. /package/lib/{0.78.0 → 0.78.2}/python3/modules/extern/tutor/053e308b29fa94c9768c.png +0 -0
  26. /package/lib/{0.78.0 → 0.78.2}/python3/modules/extern/tutor/43557192d14bec1ce5a1.png +0 -0
  27. /package/lib/{0.78.0 → 0.78.2}/python3/modules/extern/tutor/62dc93aaa1f4a5ab9654.png +0 -0
  28. /package/lib/{0.78.0 → 0.78.2}/python3/modules/extern/tutor/a3c784d737c50501dfcd.png +0 -0
  29. /package/lib/{0.78.0 → 0.78.2}/python3/modules/extern/tutor/a3fa2b0f6d2467fdac56.png +0 -0
  30. /package/lib/{0.78.0 → 0.78.2}/python3/modules/extern/tutor/bundle.js +0 -0
  31. /package/lib/{0.78.0 → 0.78.2}/python3/modules/extern/tutor/bundle.js.LICENSE.txt +0 -0
  32. /package/lib/{0.78.0 → 0.78.2}/python3/modules/extern/tutor/bundle.js.map +0 -0
  33. /package/lib/{0.78.0 → 0.78.2}/python3/modules/extern/tutor/f997956ae061f27f24f5.png +0 -0
@@ -1,2 +1,2 @@
1
- "use strict";(self.webpackChunk_basthon_browser_bundle=self.webpackChunk_basthon_browser_bundle||[]).push([["kernel-base_lib_commons_js-kernel-base_lib_version_js-kernel-echo_lib_index_js"],{780:(e,t,r)=>{r.r(t),r.d(t,{EchoKernel:()=>p});var n=r(6330),s=r(5152),o=r(414),a=r(5309),c=r(2715),u=r(9296),i=r(5799),l=r.n(i);function f(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(f=function(){return!!e})()}var p=function(e){function t(e){return(0,s.A)(this,t),r=this,n=t,o=[e],n=(0,c.A)(n),(0,a.A)(r,f()?Reflect.construct(n,o||[],(0,c.A)(r).constructor):n.apply(r,o));var r,n,o}return(0,u.A)(t,e),(0,o.A)(t,[{key:"language",value:function(){return"echo"}},{key:"languageName",value:function(){return"Echo"}},{key:"moduleExts",value:function(){return[]}},{key:"ps1",value:function(){return"echo> "}},{key:"ps2",value:function(){return"...> "}},{key:"more",value:(i=(0,n.A)(l().mark(function e(t){return l().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",!1);case 1:case"end":return e.stop()}},e)})),function(e){return i.apply(this,arguments)})},{key:"evalAsync",value:(r=(0,n.A)(l().mark(function e(t,r,n){var s=arguments;return l().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return(s.length>3&&void 0!==s[3]?s[3]:null).interactive=!0,this._execution_count++,r(t+"\n"),e.abrupt("return",[void 0,this._execution_count]);case 1:case"end":return e.stop()}},e,this)})),function(e,t,n){return r.apply(this,arguments)})}]);var r,i}(r(5924).z)},5179:(e,t,r)=>{r.d(t,{EH:()=>x,JQ:()=>O,Te:()=>_,t:()=>A});var n=r(4586),s=r(2474),o=r(6330),a=r(414),c=r(5152),u=r(5309),i=r(2715),l=r(9296),f=r(2779),p=r(5799),h=r.n(p);function v(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function b(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?v(Object(r),!0).forEach(function(t){(0,n.A)(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):v(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function d(e,t,r){return t=(0,i.A)(t),(0,u.A)(e,y()?Reflect.construct(t,r||[],(0,i.A)(e).constructor):t.apply(e,r))}function y(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(y=function(){return!!e})()}var x=function(e){function t(e){var r;return(0,c.A)(this,t),(r=d(this,t,["Function ".concat(e," not implemented!")])).name="NotImplementedError",r}return(0,l.A)(t,e),(0,a.A)(t)}((0,f.A)(Error)),m=function(){var e=(0,o.A)(h().mark(function e(t){return h().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=1,new Promise(function(e,r){var n=new FileReader;n.onloadend=function(){e(n.result)},n.onerror=r,n.readAsDataURL(new Blob([t]))});case 1:return e.abrupt("return",e.sent);case 2:case"end":return e.stop()}},e)}));return function(t){return e.apply(this,arguments)}}(),g=function(){var e=(0,o.A)(h().mark(function e(t,r){var n,s,o,a,c,u;return h().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return n=t,s=r.slice(n.length),o=null,a={status:200,statusText:"OK",headers:new Headers},e.prev=1,e.next=2,self.basthon.getFile(s);case 2:return o=e.sent,e.next=3,m(o);case 3:c=e.sent,u=c.substring(c.indexOf(":")+1,c.indexOf(";")),o=o.buffer,a.headers.append("Content-Type",u),a.headers.append("Content-Length",o.byteLength),e.next=5;break;case 4:e.prev=4,e.catch(1),a.status=404,a.statusText="Not Found";case 5:return e.abrupt("return",new Response(o,a));case 6:case"end":return e.stop()}},e,null,[[1,4]])}));return function(t,r){return e.apply(this,arguments)}}(),k=function(e){return new URL(e).origin},w=function(e){var t=new URL(e).href;return t.substring(0,t.lastIndexOf("/"))},O=function(e){if("mockedFetch"!==self.fetch.name){var t=self.fetch,r=self._assetsURL;self.fetch=function(e,t){return n.apply(this,arguments)}}function n(){return(n=(0,o.A)(h().mark(function n(s,o){var a,c,u,i,l,f,p,v;return h().wrap(function(n){for(;;)switch(n.prev=n.next){case 0:if(s=new Request(s,o),a=s.url,c="filesystem:/",!e){n.next=4;break}if(!a.startsWith(c)){n.next=2;break}return n.next=1,g(c,a);case 1:case 3:case 7:case 12:return n.abrupt("return",n.sent);case 2:return n.next=3,t(s);case 4:if(null!=self.importScripts&&null!=r){n.next=5;break}return n.abrupt("return",Response.error());case 5:if(s=new Request(s,{credentials:"omit"}),n.prev=6,!a.startsWith(c)){n.next=8;break}return n.next=7,g(c,a);case 8:if(k(a)!==k(r)){n.next=11;break}if(!w(a).startsWith(r)){n.next=10;break}return u=self._remoteProxy,i=JSON.parse(JSON.stringify(s,["credentials","headers","method","mode"])),n.next=9,u.fetch(s.url,i);case 9:return l=n.sent,f=l.body,p=l.options,n.abrupt("return",new Response(f,p));case 10:throw new Error("Ressource is outside the proxy' scope");case 11:return n.next=12,t(s);case 13:return n.prev=13,v=n.catch(6),console.error("security proxy: request to ".concat(a," throw error: ").concat(v.toString())),n.abrupt("return",Response.error());case 14:case"end":return n.stop()}},n,null,[[6,13]])}))).apply(this,arguments)}},A=function(){if("SandboxedWorker"!==globalThis.Worker.name){var e=function(e){function t(e,r){var n;if((0,c.A)(this,t),!0===(null==r?void 0:r.sandboxed)){var o=new URL(e).href,a=o.substring(0,o.lastIndexOf("/")),u='\n self._assetsURL = "'.concat(a,'";\n globalThis = {importScripts: self.importScripts, location: "').concat(e,'"};\n importScripts("').concat(e,'");\n globalThis = self;\n ').replace(/\s/g,"");n=d(this,t,["data:text/javascript;base64,".concat(btoa(u))])}else n=d(this,t,[e,r]);return(0,s.A)(n)}return(0,l.A)(t,e),(0,a.A)(t)}((0,f.A)(Worker));globalThis.Worker=e}},_=function(){var e;if(null!=(null===globalThis||void 0===globalThis?void 0:globalThis.HTMLImageElement)){var t=Object.getOwnPropertyDescriptor(HTMLImageElement.prototype,"src");"mockedSrcSet"!==(null==t||null===(e=t.set)||void 0===e?void 0:e.name)&&Object.defineProperty(HTMLImageElement.prototype,"src",b(b({},t),{},{get:function(){var e;return null==t||null===(e=t.get)||void 0===e?void 0:e.call(this)},set:function(e){var r=this,n="filesystem:/";if(e.startsWith(n)){var s=e.slice(12);(0,o.A)(h().mark(function e(){var n,o,a,c,u,i,l,f,p,v;return h().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=1,null===(o=globalThis.Basthon)||void 0===o||null===(a=o.getFile)||void 0===a?void 0:a.call(o,s);case 1:if(l=n=e.sent,i=null===l){e.next=2;break}i=void 0===n;case 2:if(!i){e.next=3;break}f=void 0,e.next=4;break;case 3:f=n.buffer;case 4:if(u=f,null==t||null===(c=t.set)||void 0===c){e.next=6;break}return p=c,v=r,e.next=5,m(u);case 5:p.call.call(p,v,e.sent);case 6:case"end":return e.stop()}},e)}))()}else{var a;null==t||null===(a=t.set)||void 0===a||a.call(this,e)}}}))}}},9501:(e,t,r)=>{r.d(t,{x:()=>n});var n="0.78.0"}}]);
1
+ "use strict";(self.webpackChunk_basthon_browser_bundle=self.webpackChunk_basthon_browser_bundle||[]).push([["kernel-base_lib_commons_js-kernel-base_lib_version_js-kernel-echo_lib_index_js"],{780:(e,t,r)=>{r.r(t),r.d(t,{EchoKernel:()=>p});var n=r(6330),s=r(5152),o=r(414),a=r(5309),c=r(2715),u=r(9296),i=r(5799),l=r.n(i);function f(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(f=function(){return!!e})()}var p=function(e){function t(e){return(0,s.A)(this,t),r=this,n=t,o=[e],n=(0,c.A)(n),(0,a.A)(r,f()?Reflect.construct(n,o||[],(0,c.A)(r).constructor):n.apply(r,o));var r,n,o}return(0,u.A)(t,e),(0,o.A)(t,[{key:"language",value:function(){return"echo"}},{key:"languageName",value:function(){return"Echo"}},{key:"moduleExts",value:function(){return[]}},{key:"ps1",value:function(){return"echo> "}},{key:"ps2",value:function(){return"...> "}},{key:"more",value:(i=(0,n.A)(l().mark(function e(t){return l().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",!1);case 1:case"end":return e.stop()}},e)})),function(e){return i.apply(this,arguments)})},{key:"evalAsync",value:(r=(0,n.A)(l().mark(function e(t,r,n){var s=arguments;return l().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return(s.length>3&&void 0!==s[3]?s[3]:null).interactive=!0,this._execution_count++,r(t+"\n"),e.abrupt("return",[void 0,this._execution_count]);case 1:case"end":return e.stop()}},e,this)})),function(e,t,n){return r.apply(this,arguments)})}]);var r,i}(r(5924).z)},5179:(e,t,r)=>{r.d(t,{EH:()=>x,JQ:()=>O,Te:()=>_,t:()=>A});var n=r(4586),s=r(2474),o=r(6330),a=r(414),c=r(5152),u=r(5309),i=r(2715),l=r(9296),f=r(2779),p=r(5799),h=r.n(p);function v(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function b(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?v(Object(r),!0).forEach(function(t){(0,n.A)(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):v(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function d(e,t,r){return t=(0,i.A)(t),(0,u.A)(e,y()?Reflect.construct(t,r||[],(0,i.A)(e).constructor):t.apply(e,r))}function y(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(y=function(){return!!e})()}var x=function(e){function t(e){var r;return(0,c.A)(this,t),(r=d(this,t,["Function ".concat(e," not implemented!")])).name="NotImplementedError",r}return(0,l.A)(t,e),(0,a.A)(t)}((0,f.A)(Error)),m=function(){var e=(0,o.A)(h().mark(function e(t){return h().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=1,new Promise(function(e,r){var n=new FileReader;n.onloadend=function(){e(n.result)},n.onerror=r,n.readAsDataURL(new Blob([t]))});case 1:return e.abrupt("return",e.sent);case 2:case"end":return e.stop()}},e)}));return function(t){return e.apply(this,arguments)}}(),g=function(){var e=(0,o.A)(h().mark(function e(t,r){var n,s,o,a,c,u;return h().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return n=t,s=r.slice(n.length),o=null,a={status:200,statusText:"OK",headers:new Headers},e.prev=1,e.next=2,self.basthon.getFile(s);case 2:return o=e.sent,e.next=3,m(o);case 3:c=e.sent,u=c.substring(c.indexOf(":")+1,c.indexOf(";")),o=o.buffer,a.headers.append("Content-Type",u),a.headers.append("Content-Length",o.byteLength),e.next=5;break;case 4:e.prev=4,e.catch(1),a.status=404,a.statusText="Not Found";case 5:return e.abrupt("return",new Response(o,a));case 6:case"end":return e.stop()}},e,null,[[1,4]])}));return function(t,r){return e.apply(this,arguments)}}(),k=function(e){return new URL(e).origin},w=function(e){var t=new URL(e).href;return t.substring(0,t.lastIndexOf("/"))},O=function(e){if("mockedFetch"!==self.fetch.name){var t=self.fetch,r=self._assetsURL;self.fetch=function(e,t){return n.apply(this,arguments)}}function n(){return(n=(0,o.A)(h().mark(function n(s,o){var a,c,u,i,l,f,p,v;return h().wrap(function(n){for(;;)switch(n.prev=n.next){case 0:if(s=new Request(s,o),a=s.url,c="filesystem:/",!e){n.next=4;break}if(!a.startsWith(c)){n.next=2;break}return n.next=1,g(c,a);case 1:case 3:case 7:case 12:return n.abrupt("return",n.sent);case 2:return n.next=3,t(s);case 4:if(null!=self.importScripts&&null!=r){n.next=5;break}return n.abrupt("return",Response.error());case 5:if(s=new Request(s,{credentials:"omit"}),n.prev=6,!a.startsWith(c)){n.next=8;break}return n.next=7,g(c,a);case 8:if(k(a)!==k(r)){n.next=11;break}if(!w(a).startsWith(r)){n.next=10;break}return u=self._remoteProxy,i=JSON.parse(JSON.stringify(s,["credentials","headers","method","mode"])),n.next=9,u.fetch(s.url,i);case 9:return l=n.sent,f=l.body,p=l.options,n.abrupt("return",new Response(f,p));case 10:throw new Error("Ressource is outside the proxy' scope");case 11:return n.next=12,t(s);case 13:return n.prev=13,v=n.catch(6),console.error("security proxy: request to ".concat(a," throw error: ").concat(v.toString())),n.abrupt("return",Response.error());case 14:case"end":return n.stop()}},n,null,[[6,13]])}))).apply(this,arguments)}},A=function(){if("SandboxedWorker"!==globalThis.Worker.name){var e=function(e){function t(e,r){var n;if((0,c.A)(this,t),!0===(null==r?void 0:r.sandboxed)){var o=new URL(e).href,a=o.substring(0,o.lastIndexOf("/")),u='\n self._assetsURL = "'.concat(a,'";\n globalThis = {importScripts: self.importScripts, location: "').concat(e,'"};\n importScripts("').concat(e,'");\n globalThis = self;\n ').replace(/\s/g,"");n=d(this,t,["data:text/javascript;base64,".concat(btoa(u))])}else n=d(this,t,[e,r]);return(0,s.A)(n)}return(0,l.A)(t,e),(0,a.A)(t)}((0,f.A)(Worker));globalThis.Worker=e}},_=function(){var e;if(null!=(null===globalThis||void 0===globalThis?void 0:globalThis.HTMLImageElement)){var t=Object.getOwnPropertyDescriptor(HTMLImageElement.prototype,"src");"mockedSrcSet"!==(null==t||null===(e=t.set)||void 0===e?void 0:e.name)&&Object.defineProperty(HTMLImageElement.prototype,"src",b(b({},t),{},{get:function(){var e;return null==t||null===(e=t.get)||void 0===e?void 0:e.call(this)},set:function(e){var r=this,n="filesystem:/";if(e.startsWith(n)){var s=e.slice(12);(0,o.A)(h().mark(function e(){var n,o,a,c,u,i,l,f,p,v;return h().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=1,null===(o=globalThis.Basthon)||void 0===o||null===(a=o.getFile)||void 0===a?void 0:a.call(o,s);case 1:if(l=n=e.sent,i=null===l){e.next=2;break}i=void 0===n;case 2:if(!i){e.next=3;break}f=void 0,e.next=4;break;case 3:f=n.buffer;case 4:if(u=f,null==t||null===(c=t.set)||void 0===c){e.next=6;break}return p=c,v=r,e.next=5,m(u);case 5:p.call.call(p,v,e.sent);case 6:case"end":return e.stop()}},e)}))()}else{var a;null==t||null===(a=t.set)||void 0===a||a.call(this,e)}}}))}}},9501:(e,t,r)=>{r.d(t,{x:()=>n});var n="0.78.2"}}]);
2
2
  //# sourceMappingURL=kernel-base_lib_commons_js-kernel-base_lib_version_js-kernel-echo_lib_index_js.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"kernel-base_lib_commons_js-kernel-base_lib_version_js-kernel-echo_lib_index_js.js","mappings":"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","sources":["webpack://@basthon/browser-bundle/../kernel-echo/lib/kernel.js","webpack://@basthon/browser-bundle/../kernel-base/lib/commons.js","webpack://@basthon/browser-bundle/../kernel-base/lib/version.js"],"sourcesContent":["import { KernelBase } from \"@basthon/kernel-base\";\nexport class EchoKernel extends KernelBase {\n constructor(options) {\n super(options);\n }\n language() {\n return \"echo\";\n }\n languageName() {\n return \"Echo\";\n }\n moduleExts() {\n return [];\n }\n ps1() {\n return \"echo> \";\n }\n ps2() {\n return \"...> \";\n }\n async more(source) {\n return false;\n }\n async evalAsync(code, outCallback, errCallback, data = null) {\n data.interactive = true;\n this._execution_count++;\n outCallback(code + \"\\n\");\n return [undefined, this._execution_count];\n }\n}\n","/**\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.78.0\";\n"],"names":["EchoKernel","_KernelBase","options","_classCallCheck","_inherits","_createClass","key","value","_more","_asyncToGenerator","_regeneratorRuntime","_callee","source","_context","prev","next","abrupt","stop","_x","apply","arguments","_evalAsync","_callee2","code","outCallback","errCallback","_args2","_context2","length","undefined","interactive","this","_execution_count","_x2","_x3","_x4","KernelBase","NotImplementedError","_Error","funcName","_this","_callSuper","concat","name","_wrapNativeSuper","Error","toDataURL","_ref","content","Promise","resolve","reject","reader","FileReader","onloadend","result","onerror","readAsDataURL","Blob","sent","fetchFromLocalFS","_ref2","localfsScheme","url","prefix","path","dataURL","mime","slice","status","statusText","headers","Headers","self","basthon","getFile","substring","indexOf","buffer","append","byteLength","Response","origin","URL","parent","abs","href","lastIndexOf","mockFetch","legacy","fetch","trueFetch","assetsURL","_assetsURL","_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","e","_this3","_callee4","_yield$globalThis$Bas","_globalThis$Basthon","_globalThis$Basthon$g","_desc$set2","_t3","_t4","_t5","_t7","_t8","_context4","Basthon","_desc$set3","VERSION"],"sourceRoot":""}
1
+ {"version":3,"file":"kernel-base_lib_commons_js-kernel-base_lib_version_js-kernel-echo_lib_index_js.js","mappings":"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","sources":["webpack://@basthon/browser-bundle/../kernel-echo/lib/kernel.js","webpack://@basthon/browser-bundle/../kernel-base/lib/commons.js","webpack://@basthon/browser-bundle/../kernel-base/lib/version.js"],"sourcesContent":["import { KernelBase } from \"@basthon/kernel-base\";\nexport class EchoKernel extends KernelBase {\n constructor(options) {\n super(options);\n }\n language() {\n return \"echo\";\n }\n languageName() {\n return \"Echo\";\n }\n moduleExts() {\n return [];\n }\n ps1() {\n return \"echo> \";\n }\n ps2() {\n return \"...> \";\n }\n async more(source) {\n return false;\n }\n async evalAsync(code, outCallback, errCallback, data = null) {\n data.interactive = true;\n this._execution_count++;\n outCallback(code + \"\\n\");\n return [undefined, this._execution_count];\n }\n}\n","/**\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.78.2\";\n"],"names":["EchoKernel","_KernelBase","options","_classCallCheck","_inherits","_createClass","key","value","_more","_asyncToGenerator","_regeneratorRuntime","_callee","source","_context","prev","next","abrupt","stop","_x","apply","arguments","_evalAsync","_callee2","code","outCallback","errCallback","_args2","_context2","length","undefined","interactive","this","_execution_count","_x2","_x3","_x4","KernelBase","NotImplementedError","_Error","funcName","_this","_callSuper","concat","name","_wrapNativeSuper","Error","toDataURL","_ref","content","Promise","resolve","reject","reader","FileReader","onloadend","result","onerror","readAsDataURL","Blob","sent","fetchFromLocalFS","_ref2","localfsScheme","url","prefix","path","dataURL","mime","slice","status","statusText","headers","Headers","self","basthon","getFile","substring","indexOf","buffer","append","byteLength","Response","origin","URL","parent","abs","href","lastIndexOf","mockFetch","legacy","fetch","trueFetch","assetsURL","_assetsURL","_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","e","_this3","_callee4","_yield$globalThis$Bas","_globalThis$Basthon","_globalThis$Basthon$g","_desc$set2","_t3","_t4","_t5","_t7","_t8","_context4","Basthon","_desc$set3","VERSION"],"sourceRoot":""}
@@ -1,3 +1,3 @@
1
1
  /*! For license information please see kernel-base_lib_worker_index_js.js.LICENSE.txt */
2
- "use strict";(self.webpackChunk_basthon_browser_bundle=self.webpackChunk_basthon_browser_bundle||[]).push([["kernel-base_lib_worker_index_js"],{5018:(e,t,n)=>{n.d(t,{A:()=>a});var r=n(2715);function a(){return a="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(e,t,n){var a=function(e,t){for(;!{}.hasOwnProperty.call(e,t)&&null!==(e=(0,r.A)(e)););return e}(e,t);if(a){var s=Object.getOwnPropertyDescriptor(a,t);return s.get?s.get.call(arguments.length<3?e:n):s.value}},a.apply(null,arguments)}},6457:(e,t,n)=>{n.d(t,{I:()=>m});var r=n(6330),a=n(5152),s=n(414),o=n(5309),i=n(2715),c=n(5018),u=n(9296),l=n(5799),p=n.n(l),h=n(7695),f=n(5179),d=n(5924),v=n(9253);function y(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(y=function(){return!!e})()}function b(e,t,n,r){var a=(0,c.A)((0,i.A)(1&r?e.prototype:e),t,n);return 2&r&&"function"==typeof a?function(e){return a.apply(n,e)}:a}(0,f.t)(),(0,f.Te)();var m=function(e){function t(e){var n,r,s,c,u;return(0,a.A)(this,t),s=this,c=t,u=[e],c=(0,i.A)(c),(r=(0,o.A)(s,y()?Reflect.construct(c,u||[],(0,i.A)(s).constructor):c.apply(s,u)))._channelSyncer=new v.D,r._encrypt=function(e){return e},r._legacy=!0===(null==e?void 0:e.legacy),r.isLegacy()||(globalThis.crossOriginIsolated?r._sab=new SharedArrayBuffer(1024):r._fallbackKey=globalThis.crypto.randomUUID()),r._ephemeralAPI=null!==(n=null==e?void 0:e.ephemeralAPI)&&void 0!==n?n:"https://api.basthon.fr/ephemeral",r}return(0,u.A)(t,e),(0,s.A)(t,[{key:"isLegacy",value:function(){return this._legacy}},{key:"syncCommSupport",value:function(){return null!=this._sab}},{key:"safeKernel",value:function(){return!this.isLegacy()}},{key:"newWorker",value:function(){throw new f.EH("newWorker")}},{key:"importLegacyWorker",value:(A=(0,r.A)(p().mark(function e(){return p().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:throw new f.EH("importLegacyWorker");case 1:case"end":return e.stop()}},e)})),function(){return A.apply(this,arguments)})},{key:"setupWorker",value:(_=(0,r.A)(p().mark(function e(){var t,n,r,a,s,o,i,c=this;return p().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(n=new MessageChannel,!this.isLegacy()){e.next=2;break}return self._commPort=n.port1,self._assetsURL=this.assetsURL(!0),e.next=1,this.importLegacyWorker();case 1:e.next=3;break;case 2:(r=this.newWorker()).postMessage(n.port1,[n.port1]),this._worker=r;case 3:return a=(0,h.LV)(n.port2),e.next=4,new a(this._options);case 4:return this._remote=e.sent,s=new MessageChannel,o=s.port1,(i=s.port2).onmessage=function(e){return c.processWorkerMessage(e.data)},this.postMessageToWorker=i.postMessage.bind(i),e.next=5,null===(t=this.remote)||void 0===t?void 0:t.setCommPort((0,h.k0)(o,[o]));case 5:case"end":return e.stop()}},e,this)})),function(){return _.apply(this,arguments)})},{key:"_start",value:(x=(0,r.A)(p().mark(function e(){var r,a,s,o,i,c,u,l,f,d,v;return p().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=1,b(t,"_start",this,3)([]);case 1:if(!this.isLegacy()||null==this.remote){e.next=3;break}return e.next=2,null===(o=this.remote)||void 0===o?void 0:o.legacyStart();case 2:return e.abrupt("return");case 3:return i=new Worker(new URL(n.p+n.u("kernel-base_lib_worker_comlink-proxy_js"),n.b)),c=(0,h.LV)(i),e.next=4,this.setupWorker();case 4:return e.next=5,null===(r=this.remote)||void 0===r?void 0:r.setEphemeralAPI(this._ephemeralAPI);case 5:if(!this.syncCommSupport()){e.next=7;break}return console.log("Using SharedArrayBuffer for synchronous worker communication."),e.next=6,null===(u=this._remote)||void 0===u?void 0:u.setSAB(this._sab);case 6:e.next=10;break;case 7:if(null==this._fallbackKey){e.next=10;break}return console.warn("SharedArrayBuffer not available, falling back to using third-party server for synchronous worker communication."),f=globalThis.crypto.randomUUID(),e.next=8,null===(l=this.remote)||void 0===l?void 0:l.setFallbackKeyAndPass(this._fallbackKey,f);case 8:return e.next=9,Promise.all([n.e("vendors-node_modules_crypto-js_aes_js"),n.e("_ad750")]).then(n.t.bind(n,6598,23));case 9:d=e.sent,this._encrypt=function(e){return d.encrypt(e,f).toString()};case 10:return e.next=11,c[h.UD]();case 11:return v=e.sent,e.next=12,null===(a=this.remote)||void 0===a?void 0:a.setProxyPort((0,h.k0)(v,[v]));case 12:return e.next=13,null===(s=this.remote)||void 0===s?void 0:s.init();case 13:case"end":return e.stop()}},e,this)})),function(){return x.apply(this,arguments)})},{key:"remote",get:function(){return this._remote}},{key:"_stop",value:(w=(0,r.A)(p().mark(function e(){var n,r;return p().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(!this.isLegacy()){e.next=2;break}return e.next=1,null===(n=this.remote)||void 0===n?void 0:n.legacyStop();case 1:e.next=3;break;case 2:null===(r=this._worker)||void 0===r||r.terminate(),this._worker=void 0,this._remote=void 0;case 3:return e.next=4,b(t,"_stop",this,3)([]);case 4:case"end":return e.stop()}},e,this)})),function(){return w.apply(this,arguments)})},{key:"processWorkerMessage",value:(g=(0,r.A)(p().mark(function e(t){var n,r,a,s,o,i,c,u,l,h,f,d,y,b,m,k,g,w,x,_,A,E,T,S;return p().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:S=t.type,e.next="eval-end"===S?1:"stream"===S?2:"download"===S?3:"display"===S?4:"clear_output"===S?8:"input"===S?9:"log-validation"===S?15:"breakpoint-move-on"===S?16:17;break;case 1:return this._channelSyncer.resolve(),this._channelSyncer=new v.D,e.abrupt("continue",17);case 2:return o=t.content,i=o.stream,c=o.text,(u=this.clone(t.data)).stream=i,u.content=c,this.dispatchEvent("eval.output",u),e.abrupt("continue",17);case 3:return l=t.content,h=l.content,f=l.filename,this.download(h,f),e.abrupt("continue",17);case 4:if("dom-node"!==(null===(n=t.data)||void 0===n?void 0:n.display_type)){e.next=7;break}if(this.isLegacy()){e.next=5;break}throw new Error("internal error");case 5:return b=null===(d=t.data)||void 0===d?void 0:d.content,e.next=6,null===(y=self.basthon)||void 0===y?void 0:y.popDOMNode(b);case 6:t.data.content=e.sent;case 7:return this.dispatchEvent("eval.display",t.data),e.abrupt("continue",17);case 8:return this.dispatchEvent("eval.clear-output",t.data),e.abrupt("continue",17);case 9:return m=t.content,k=m.prompt,g=m.password,w=m.data,e.next=10,this.inputAsync(k,g,w);case 10:if(x=e.sent,!0!==t.content.toplevel){e.next=11;break}this.postMessageToWorker({type:"toplevel-input",content:x,data:w}),e.next=14;break;case 11:if(!this.syncCommSupport()){e.next=12;break}_=(new TextEncoder).encode(x),new Uint8Array(this._sab).set(_.subarray(0,this._sab.byteLength)),Atomics.notify(new Int32Array(this._sab),0,1),e.next=14;break;case 12:return e.next=13,fetch(this._ephemeralAPI,{method:"POST",headers:{"X-API-Referer":self.location.href},body:JSON.stringify({action:"post",key:this._fallbackKey,payload:this._encrypt(x)})});case 13:if((A=e.sent).ok){e.next=14;break}throw new Error("Basthon's network API error: ".concat(A.status));case 14:return e.abrupt("continue",17);case 15:return this.dispatchEvent("validation.log",t.content),e.abrupt("continue",17);case 16:return E=null===(r=Jupyter)||void 0===r?void 0:r.notebook,T=null===(a=t.content.data)||void 0===a||null===(a=a.parent_msg)||void 0===a||null===(a=a.content)||void 0===a?void 0:a.cell_id,null==E||null===(s=E.next_breakpoint_cell)||void 0===s||s.call(E,T),e.abrupt("continue",17);case 17:case"end":return e.stop()}},e,this)})),function(e){return g.apply(this,arguments)})},{key:"evalAsync",value:(k=(0,r.A)(p().mark(function e(t,n,r){var a,s,o,i,c,u,l=arguments;return p().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return(s=l.length>3&&void 0!==l[3]?l[3]:null).interactive=!0,this._execution_count++,o=this._channelSyncer.promise,e.next=1,null===(a=this.remote)||void 0===a?void 0:a.eval(s,t);case 1:return i=e.sent,e.next=2,o;case 2:u=null==i?void 0:i.status,e.next="ok"===u?3:"error"===u?4:5;break;case 3:return c=i.result,e.abrupt("continue",5);case 4:return e.abrupt("continue",5);case 5:return e.abrupt("return",[c,this._execution_count]);case 6:case"end":return e.stop()}},e,this)})),function(e,t,n){return k.apply(this,arguments)})},{key:"putFile",value:(m=(0,r.A)(p().mark(function e(n,r){var a;return p().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=1,b(t,"putFile",this,3)([n,r]);case 1:return e.next=2,null===(a=this.remote)||void 0===a?void 0:a.putFile(n,r);case 2:case"end":return e.stop()}},e,this)})),function(e,t){return m.apply(this,arguments)})},{key:"putModule",value:(d=(0,r.A)(p().mark(function e(n,r){var a;return p().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=1,b(t,"putModule",this,3)([n,r]);case 1:return e.next=2,null===(a=this.remote)||void 0===a?void 0:a.putModule(n,r);case 2:case"end":return e.stop()}},e,this)})),function(e,t){return d.apply(this,arguments)})},{key:"complete",value:(l=(0,r.A)(p().mark(function e(t){var n,r,a,s,o;return p().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=1,null===(r=this.remote)||void 0===r?void 0:r.complete(t);case 1:if(s=n=e.sent,!(a=null!==s)){e.next=2;break}a=void 0!==n;case 2:if(!a){e.next=3;break}o=n,e.next=4;break;case 3:o=[];case 4:return e.abrupt("return",o);case 5:case"end":return e.stop()}},e,this)})),function(e){return l.apply(this,arguments)})},{key:"more",value:(c=(0,r.A)(p().mark(function e(t){var n,r,a,s,o;return p().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=1,null===(r=this.remote)||void 0===r?void 0:r.more(t);case 1:if(s=n=e.sent,!(a=null!==s)){e.next=2;break}a=void 0!==n;case 2:if(!a){e.next=3;break}o=n,e.next=4;break;case 3:o=!1;case 4:return e.abrupt("return",o);case 5:case"end":return e.stop()}},e,this)})),function(e){return c.apply(this,arguments)})}]);var c,l,d,m,k,g,w,x,_,A}(d.z)},7200:(e,t,n)=>{n.d(t,{Ij:()=>r.I,fI:()=>a.f,k0:()=>s.k0,p:()=>s.p});var r=n(6457),a=n(2086),s=n(8968)},7695:(e,t,n)=>{n.d(t,{LV:()=>h,UD:()=>a,k0:()=>g,p:()=>l}),null==self.globalThis&&(self.globalThis=self),null==self.globalThis&&(self.globalThis=self),null==self.globalThis&&(self.globalThis=self),null==self.globalThis&&(self.globalThis=self),null==self.globalThis&&(self.globalThis=self),null==self.globalThis&&(self.globalThis=self),null==self.globalThis&&(self.globalThis=self);const r=Symbol("Comlink.proxy"),a=Symbol("Comlink.endpoint"),s=Symbol("Comlink.releaseProxy"),o=Symbol("Comlink.finalizer"),i=Symbol("Comlink.thrown"),c=e=>"object"==typeof e&&null!==e||"function"==typeof e,u=new Map([["proxy",{canHandle:e=>c(e)&&e[r],serialize(e){const{port1:t,port2:n}=new MessageChannel;return l(e,t),[n,[n]]},deserialize:e=>(e.start(),h(e))}],["throw",{canHandle:e=>c(e)&&i in e,serialize({value:e}){let t;return t=e instanceof Error?{isError:!0,value:{message:e.message,name:e.name,stack:e.stack}}:{isError:!1,value:e},[t,[]]},deserialize(e){if(e.isError)throw Object.assign(new Error(e.value.message),e.value);throw e.value}}]]);function l(e,t=globalThis,n=["*"]){t.addEventListener("message",function a(s){if(!s||!s.data)return;if(!function(e,t){for(const n of e){if(t===n||"*"===n)return!0;if(n instanceof RegExp&&n.test(t))return!0}return!1}(n,s.origin))return void console.warn(`Invalid origin '${s.origin}' for comlink proxy`);const{id:c,type:u,path:h}=Object.assign({path:[]},s.data),f=(s.data.argumentList||[]).map(x);let d;try{const t=h.slice(0,-1).reduce((e,t)=>e[t],e),n=h.reduce((e,t)=>e[t],e);switch(u){case"GET":d=n;break;case"SET":t[h.slice(-1)[0]]=x(s.data.value),d=!0;break;case"APPLY":d=n.apply(t,f);break;case"CONSTRUCT":d=function(e){return Object.assign(e,{[r]:!0})}(new n(...f));break;case"ENDPOINT":{const{port1:t,port2:n}=new MessageChannel;l(e,n),d=g(t,[t])}break;case"RELEASE":d=void 0;break;default:return}}catch(e){d={value:e,[i]:0}}Promise.resolve(d).catch(e=>({value:e,[i]:0})).then(n=>{const[r,s]=w(n);t.postMessage(Object.assign(Object.assign({},r),{id:c}),s),"RELEASE"===u&&(t.removeEventListener("message",a),p(t),o in e&&"function"==typeof e[o]&&e[o]())}).catch(e=>{const[n,r]=w({value:new TypeError("Unserializable return value"),[i]:0});t.postMessage(Object.assign(Object.assign({},n),{id:c}),r)})}),t.start&&t.start()}function p(e){(function(e){return"MessagePort"===e.constructor.name})(e)&&e.close()}function h(e,t){const n=new Map;return e.addEventListener("message",function(e){const{data:t}=e;if(!t||!t.id)return;const r=n.get(t.id);if(r)try{r(t)}finally{n.delete(t.id)}}),b(e,n,[],t)}function f(e){if(e)throw new Error("Proxy has been released and is not useable")}function d(e){return _(e,new Map,{type:"RELEASE"}).then(()=>{p(e)})}const v=new WeakMap,y="FinalizationRegistry"in globalThis&&new FinalizationRegistry(e=>{const t=(v.get(e)||0)-1;v.set(e,t),0===t&&d(e)});function b(e,t,n=[],r=function(){}){let o=!1;const i=new Proxy(r,{get(r,a){if(f(o),a===s)return()=>{!function(e){y&&y.unregister(e)}(i),d(e),t.clear(),o=!0};if("then"===a){if(0===n.length)return{then:()=>i};const r=_(e,t,{type:"GET",path:n.map(e=>e.toString())}).then(x);return r.then.bind(r)}return b(e,t,[...n,a])},set(r,a,s){f(o);const[i,c]=w(s);return _(e,t,{type:"SET",path:[...n,a].map(e=>e.toString()),value:i},c).then(x)},apply(r,s,i){f(o);const c=n[n.length-1];if(c===a)return _(e,t,{type:"ENDPOINT"}).then(x);if("bind"===c)return b(e,t,n.slice(0,-1));const[u,l]=m(i);return _(e,t,{type:"APPLY",path:n.map(e=>e.toString()),argumentList:u},l).then(x)},construct(r,a){f(o);const[s,i]=m(a);return _(e,t,{type:"CONSTRUCT",path:n.map(e=>e.toString()),argumentList:s},i).then(x)}});return function(e,t){const n=(v.get(t)||0)+1;v.set(t,n),y&&y.register(e,t,e)}(i,e),i}function m(e){const t=e.map(w);return[t.map(e=>e[0]),(n=t.map(e=>e[1]),Array.prototype.concat.apply([],n))];var n}const k=new WeakMap;function g(e,t){return k.set(e,t),e}function w(e){for(const[t,n]of u)if(n.canHandle(e)){const[r,a]=n.serialize(e);return[{type:"HANDLER",name:t,value:r},a]}return[{type:"RAW",value:e},k.get(e)||[]]}function x(e){switch(e.type){case"HANDLER":return u.get(e.name).deserialize(e.value);case"RAW":return e.value}}function _(e,t,n,r){return new Promise(a=>{const s=new Array(4).fill(0).map(()=>Math.floor(Math.random()*Number.MAX_SAFE_INTEGER).toString(16)).join("-");t.set(s,a),e.start&&e.start(),e.postMessage(Object.assign({id:s},n),r)})}}}]);
2
+ "use strict";(self.webpackChunk_basthon_browser_bundle=self.webpackChunk_basthon_browser_bundle||[]).push([["kernel-base_lib_worker_index_js"],{5018:(e,t,n)=>{n.d(t,{A:()=>a});var r=n(2715);function a(){return a="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(e,t,n){var a=function(e,t){for(;!{}.hasOwnProperty.call(e,t)&&null!==(e=(0,r.A)(e)););return e}(e,t);if(a){var s=Object.getOwnPropertyDescriptor(a,t);return s.get?s.get.call(arguments.length<3?e:n):s.value}},a.apply(null,arguments)}},6457:(e,t,n)=>{n.d(t,{I:()=>m});var r=n(6330),a=n(5152),s=n(414),o=n(5309),i=n(2715),u=n(5018),c=n(9296),l=n(5799),p=n.n(l),h=n(7695),f=n(5179),d=n(5924),v=n(9253);function y(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(y=function(){return!!e})()}function b(e,t,n,r){var a=(0,u.A)((0,i.A)(1&r?e.prototype:e),t,n);return 2&r&&"function"==typeof a?function(e){return a.apply(n,e)}:a}(0,f.t)(),(0,f.Te)();var m=function(e){function t(e){var n,r,s,u,c;return(0,a.A)(this,t),s=this,u=t,c=[e],u=(0,i.A)(u),(r=(0,o.A)(s,y()?Reflect.construct(u,c||[],(0,i.A)(s).constructor):u.apply(s,c)))._channelSyncer=new v.D,r._encrypt=function(e){return e},r._conversionCanvas=document.createElement("canvas"),r._legacy=!0===(null==e?void 0:e.legacy),r.isLegacy()||(globalThis.crossOriginIsolated?r._sab=new SharedArrayBuffer(1024):r._fallbackKey=globalThis.crypto.randomUUID()),r._ephemeralAPI=null!==(n=null==e?void 0:e.ephemeralAPI)&&void 0!==n?n:"https://api.basthon.fr/ephemeral",r}return(0,c.A)(t,e),(0,s.A)(t,[{key:"isLegacy",value:function(){return this._legacy}},{key:"syncCommSupport",value:function(){return null!=this._sab}},{key:"safeKernel",value:function(){return!this.isLegacy()}},{key:"newWorker",value:function(){throw new f.EH("newWorker")}},{key:"importLegacyWorker",value:(E=(0,r.A)(p().mark(function e(){return p().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:throw new f.EH("importLegacyWorker");case 1:case"end":return e.stop()}},e)})),function(){return E.apply(this,arguments)})},{key:"setupWorker",value:(A=(0,r.A)(p().mark(function e(){var t,n,r,a,s,o,i,u=this;return p().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(n=new MessageChannel,!this.isLegacy()){e.next=2;break}return self._commPort=n.port1,self._assetsURL=this.assetsURL(!0),e.next=1,this.importLegacyWorker();case 1:e.next=3;break;case 2:(r=this.newWorker()).postMessage(n.port1,[n.port1]),this._worker=r;case 3:return a=(0,h.LV)(n.port2),e.next=4,new a(this._options);case 4:return this._remote=e.sent,s=new MessageChannel,o=s.port1,(i=s.port2).onmessage=function(e){return u.processWorkerMessage(e.data)},this.postMessageToWorker=i.postMessage.bind(i),e.next=5,null===(t=this.remote)||void 0===t?void 0:t.setCommPort((0,h.k0)(o,[o]));case 5:case"end":return e.stop()}},e,this)})),function(){return A.apply(this,arguments)})},{key:"_start",value:(_=(0,r.A)(p().mark(function e(){var r,a,s,o,i,u,c,l,f,d,v;return p().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=1,b(t,"_start",this,3)([]);case 1:if(!this.isLegacy()||null==this.remote){e.next=3;break}return e.next=2,null===(o=this.remote)||void 0===o?void 0:o.legacyStart();case 2:return e.abrupt("return");case 3:return i=new Worker(new URL(n.p+n.u("kernel-base_lib_worker_comlink-proxy_js"),n.b)),u=(0,h.LV)(i),e.next=4,this.setupWorker();case 4:return e.next=5,null===(r=this.remote)||void 0===r?void 0:r.setEphemeralAPI(this._ephemeralAPI);case 5:if(!this.syncCommSupport()){e.next=7;break}return console.log("Using SharedArrayBuffer for synchronous worker communication."),e.next=6,null===(c=this._remote)||void 0===c?void 0:c.setSAB(this._sab);case 6:e.next=10;break;case 7:if(null==this._fallbackKey){e.next=10;break}return console.warn("SharedArrayBuffer not available, falling back to using third-party server for synchronous worker communication."),f=globalThis.crypto.randomUUID(),e.next=8,null===(l=this.remote)||void 0===l?void 0:l.setFallbackKeyAndPass(this._fallbackKey,f);case 8:return e.next=9,Promise.all([n.e("vendors-node_modules_crypto-js_aes_js"),n.e("_ad750")]).then(n.t.bind(n,6598,23));case 9:d=e.sent,this._encrypt=function(e){return d.encrypt(e,f).toString()};case 10:return e.next=11,u[h.UD]();case 11:return v=e.sent,e.next=12,null===(a=this.remote)||void 0===a?void 0:a.setProxyPort((0,h.k0)(v,[v]));case 12:return e.next=13,null===(s=this.remote)||void 0===s?void 0:s.init();case 13:case"end":return e.stop()}},e,this)})),function(){return _.apply(this,arguments)})},{key:"remote",get:function(){return this._remote}},{key:"_stop",value:(x=(0,r.A)(p().mark(function e(){var n,r;return p().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(!this.isLegacy()){e.next=2;break}return e.next=1,null===(n=this.remote)||void 0===n?void 0:n.legacyStop();case 1:e.next=3;break;case 2:null===(r=this._worker)||void 0===r||r.terminate(),this._worker=void 0,this._remote=void 0;case 3:return e.next=4,b(t,"_stop",this,3)([]);case 4:case"end":return e.stop()}},e,this)})),function(){return x.apply(this,arguments)})},{key:"canvasArrayToPNGDataURL",value:(w=(0,r.A)(p().mark(function e(t,n,r){var a,s,o,i,u;return p().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if((a=this._conversionCanvas).width=t,a.height=n,null!==(s=a.getContext("2d"))){e.next=1;break}return e.abrupt("return");case 1:if(o=new ImageData(new Uint8ClampedArray(r),t,n),s.putImageData(o,0,0),i=a.toDataURL("image/png"),a.width=0,a.height=0,u="data:image/png;base64,",!i.startsWith(u)){e.next=2;break}return e.abrupt("return",i.slice(22));case 2:case"end":return e.stop()}},e,this)})),function(e,t,n){return w.apply(this,arguments)})},{key:"processWorkerMessage",value:(k=(0,r.A)(p().mark(function e(t){var n,r,a,s,o,i,u,c,l,h,f,d,y,b,m,g,k,w,x,_,A,E,T,S,L,P,M,R,C,I;return p().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:I=t.type,e.next="eval-end"===I?1:"stream"===I?2:"download"===I?3:"display"===I?4:"clear_output"===I?11:"input"===I?12:"log-validation"===I?18:"breakpoint-move-on"===I?19:20;break;case 1:return this._channelSyncer.resolve(),this._channelSyncer=new v.D,e.abrupt("continue",20);case 2:return i=t.content,u=i.stream,c=i.text,(l=this.clone(t.data)).stream=u,l.content=c,this.dispatchEvent("eval.output",l),e.abrupt("continue",20);case 3:return h=t.content,f=h.content,d=h.filename,this.download(f,d),e.abrupt("continue",20);case 4:if("dom-node"!==(null===(n=t.data)||void 0===n?void 0:n.display_type)){e.next=7;break}if(this.isLegacy()){e.next=5;break}throw new Error("internal error");case 5:return m=null===(y=t.data)||void 0===y?void 0:y.content,e.next=6,null===(b=self.basthon)||void 0===b?void 0:b.popDOMNode(m);case 6:t.data.content=e.sent,e.next=10;break;case 7:if("canvas"!==(null===(r=t.data)||void 0===r?void 0:r.display_type)){e.next=10;break}return g=t.data.content,k=g.width,w=g.height,x=g.buffer,e.next=8,this.canvasArrayToPNGDataURL(k,w,x);case 8:if(null!=(_=e.sent)){e.next=9;break}return e.abrupt("return");case 9:t.data.display_type="multiple",t.data.content={"image/png":_};case 10:return this.dispatchEvent("eval.display",t.data),e.abrupt("continue",20);case 11:return this.dispatchEvent("eval.clear-output",t.data),e.abrupt("continue",20);case 12:return A=t.content,E=A.prompt,T=A.password,S=A.data,e.next=13,this.inputAsync(E,T,S);case 13:if(L=e.sent,!0!==t.content.toplevel){e.next=14;break}this.postMessageToWorker({type:"toplevel-input",content:L,data:S}),e.next=17;break;case 14:if(!this.syncCommSupport()){e.next=15;break}P=(new TextEncoder).encode(L),new Uint8Array(this._sab).set(P.subarray(0,this._sab.byteLength)),Atomics.notify(new Int32Array(this._sab),0,1),e.next=17;break;case 15:return e.next=16,fetch(this._ephemeralAPI,{method:"POST",headers:{"X-API-Referer":self.location.href},body:JSON.stringify({action:"post",key:this._fallbackKey,payload:this._encrypt(L)})});case 16:if((M=e.sent).ok){e.next=17;break}throw new Error("Basthon's network API error: ".concat(M.status));case 17:return e.abrupt("continue",20);case 18:return this.dispatchEvent("validation.log",t.content),e.abrupt("continue",20);case 19:return R=null===(a=Jupyter)||void 0===a?void 0:a.notebook,C=null===(s=t.content.data)||void 0===s||null===(s=s.parent_msg)||void 0===s||null===(s=s.content)||void 0===s?void 0:s.cell_id,null==R||null===(o=R.next_breakpoint_cell)||void 0===o||o.call(R,C),e.abrupt("continue",20);case 20:case"end":return e.stop()}},e,this)})),function(e){return k.apply(this,arguments)})},{key:"evalAsync",value:(g=(0,r.A)(p().mark(function e(t,n,r){var a,s,o,i,u,c,l=arguments;return p().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return(s=l.length>3&&void 0!==l[3]?l[3]:null).interactive=!0,this._execution_count++,o=this._channelSyncer.promise,e.next=1,null===(a=this.remote)||void 0===a?void 0:a.eval(s,t);case 1:return i=e.sent,e.next=2,o;case 2:c=null==i?void 0:i.status,e.next="ok"===c?3:"error"===c?4:5;break;case 3:return u=i.result,e.abrupt("continue",5);case 4:return e.abrupt("continue",5);case 5:return e.abrupt("return",[u,this._execution_count]);case 6:case"end":return e.stop()}},e,this)})),function(e,t,n){return g.apply(this,arguments)})},{key:"putFile",value:(m=(0,r.A)(p().mark(function e(n,r){var a;return p().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=1,b(t,"putFile",this,3)([n,r]);case 1:return e.next=2,null===(a=this.remote)||void 0===a?void 0:a.putFile(n,r);case 2:case"end":return e.stop()}},e,this)})),function(e,t){return m.apply(this,arguments)})},{key:"putModule",value:(d=(0,r.A)(p().mark(function e(n,r){var a;return p().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=1,b(t,"putModule",this,3)([n,r]);case 1:return e.next=2,null===(a=this.remote)||void 0===a?void 0:a.putModule(n,r);case 2:case"end":return e.stop()}},e,this)})),function(e,t){return d.apply(this,arguments)})},{key:"complete",value:(l=(0,r.A)(p().mark(function e(t){var n,r,a,s,o;return p().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=1,null===(r=this.remote)||void 0===r?void 0:r.complete(t);case 1:if(s=n=e.sent,!(a=null!==s)){e.next=2;break}a=void 0!==n;case 2:if(!a){e.next=3;break}o=n,e.next=4;break;case 3:o=[];case 4:return e.abrupt("return",o);case 5:case"end":return e.stop()}},e,this)})),function(e){return l.apply(this,arguments)})},{key:"more",value:(u=(0,r.A)(p().mark(function e(t){var n,r,a,s,o;return p().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=1,null===(r=this.remote)||void 0===r?void 0:r.more(t);case 1:if(s=n=e.sent,!(a=null!==s)){e.next=2;break}a=void 0!==n;case 2:if(!a){e.next=3;break}o=n,e.next=4;break;case 3:o=!1;case 4:return e.abrupt("return",o);case 5:case"end":return e.stop()}},e,this)})),function(e){return u.apply(this,arguments)})}]);var u,l,d,m,g,k,w,x,_,A,E}(d.z)},7200:(e,t,n)=>{n.d(t,{Ij:()=>r.I,fI:()=>a.f,k0:()=>s.k0,p:()=>s.p});var r=n(6457),a=n(2086),s=n(8968)},7695:(e,t,n)=>{n.d(t,{LV:()=>h,UD:()=>a,k0:()=>k,p:()=>l}),null==self.globalThis&&(self.globalThis=self),null==self.globalThis&&(self.globalThis=self),null==self.globalThis&&(self.globalThis=self),null==self.globalThis&&(self.globalThis=self),null==self.globalThis&&(self.globalThis=self),null==self.globalThis&&(self.globalThis=self),null==self.globalThis&&(self.globalThis=self);const r=Symbol("Comlink.proxy"),a=Symbol("Comlink.endpoint"),s=Symbol("Comlink.releaseProxy"),o=Symbol("Comlink.finalizer"),i=Symbol("Comlink.thrown"),u=e=>"object"==typeof e&&null!==e||"function"==typeof e,c=new Map([["proxy",{canHandle:e=>u(e)&&e[r],serialize(e){const{port1:t,port2:n}=new MessageChannel;return l(e,t),[n,[n]]},deserialize:e=>(e.start(),h(e))}],["throw",{canHandle:e=>u(e)&&i in e,serialize({value:e}){let t;return t=e instanceof Error?{isError:!0,value:{message:e.message,name:e.name,stack:e.stack}}:{isError:!1,value:e},[t,[]]},deserialize(e){if(e.isError)throw Object.assign(new Error(e.value.message),e.value);throw e.value}}]]);function l(e,t=globalThis,n=["*"]){t.addEventListener("message",function a(s){if(!s||!s.data)return;if(!function(e,t){for(const n of e){if(t===n||"*"===n)return!0;if(n instanceof RegExp&&n.test(t))return!0}return!1}(n,s.origin))return void console.warn(`Invalid origin '${s.origin}' for comlink proxy`);const{id:u,type:c,path:h}=Object.assign({path:[]},s.data),f=(s.data.argumentList||[]).map(x);let d;try{const t=h.slice(0,-1).reduce((e,t)=>e[t],e),n=h.reduce((e,t)=>e[t],e);switch(c){case"GET":d=n;break;case"SET":t[h.slice(-1)[0]]=x(s.data.value),d=!0;break;case"APPLY":d=n.apply(t,f);break;case"CONSTRUCT":d=function(e){return Object.assign(e,{[r]:!0})}(new n(...f));break;case"ENDPOINT":{const{port1:t,port2:n}=new MessageChannel;l(e,n),d=k(t,[t])}break;case"RELEASE":d=void 0;break;default:return}}catch(e){d={value:e,[i]:0}}Promise.resolve(d).catch(e=>({value:e,[i]:0})).then(n=>{const[r,s]=w(n);t.postMessage(Object.assign(Object.assign({},r),{id:u}),s),"RELEASE"===c&&(t.removeEventListener("message",a),p(t),o in e&&"function"==typeof e[o]&&e[o]())}).catch(e=>{const[n,r]=w({value:new TypeError("Unserializable return value"),[i]:0});t.postMessage(Object.assign(Object.assign({},n),{id:u}),r)})}),t.start&&t.start()}function p(e){(function(e){return"MessagePort"===e.constructor.name})(e)&&e.close()}function h(e,t){const n=new Map;return e.addEventListener("message",function(e){const{data:t}=e;if(!t||!t.id)return;const r=n.get(t.id);if(r)try{r(t)}finally{n.delete(t.id)}}),b(e,n,[],t)}function f(e){if(e)throw new Error("Proxy has been released and is not useable")}function d(e){return _(e,new Map,{type:"RELEASE"}).then(()=>{p(e)})}const v=new WeakMap,y="FinalizationRegistry"in globalThis&&new FinalizationRegistry(e=>{const t=(v.get(e)||0)-1;v.set(e,t),0===t&&d(e)});function b(e,t,n=[],r=function(){}){let o=!1;const i=new Proxy(r,{get(r,a){if(f(o),a===s)return()=>{!function(e){y&&y.unregister(e)}(i),d(e),t.clear(),o=!0};if("then"===a){if(0===n.length)return{then:()=>i};const r=_(e,t,{type:"GET",path:n.map(e=>e.toString())}).then(x);return r.then.bind(r)}return b(e,t,[...n,a])},set(r,a,s){f(o);const[i,u]=w(s);return _(e,t,{type:"SET",path:[...n,a].map(e=>e.toString()),value:i},u).then(x)},apply(r,s,i){f(o);const u=n[n.length-1];if(u===a)return _(e,t,{type:"ENDPOINT"}).then(x);if("bind"===u)return b(e,t,n.slice(0,-1));const[c,l]=m(i);return _(e,t,{type:"APPLY",path:n.map(e=>e.toString()),argumentList:c},l).then(x)},construct(r,a){f(o);const[s,i]=m(a);return _(e,t,{type:"CONSTRUCT",path:n.map(e=>e.toString()),argumentList:s},i).then(x)}});return function(e,t){const n=(v.get(t)||0)+1;v.set(t,n),y&&y.register(e,t,e)}(i,e),i}function m(e){const t=e.map(w);return[t.map(e=>e[0]),(n=t.map(e=>e[1]),Array.prototype.concat.apply([],n))];var n}const g=new WeakMap;function k(e,t){return g.set(e,t),e}function w(e){for(const[t,n]of c)if(n.canHandle(e)){const[r,a]=n.serialize(e);return[{type:"HANDLER",name:t,value:r},a]}return[{type:"RAW",value:e},g.get(e)||[]]}function x(e){switch(e.type){case"HANDLER":return c.get(e.name).deserialize(e.value);case"RAW":return e.value}}function _(e,t,n,r){return new Promise(a=>{const s=new Array(4).fill(0).map(()=>Math.floor(Math.random()*Number.MAX_SAFE_INTEGER).toString(16)).join("-");t.set(s,a),e.start&&e.start(),e.postMessage(Object.assign({id:s},n),r)})}}}]);
3
3
  //# sourceMappingURL=kernel-base_lib_worker_index_js.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"kernel-base_lib_worker_index_js.js","mappings":"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","sources":["webpack://@basthon/browser-bundle/../../node_modules/@babel/runtime/helpers/esm/get.js","webpack://@basthon/browser-bundle/../../node_modules/@babel/runtime/helpers/esm/superPropBase.js","webpack://@basthon/browser-bundle/../kernel-base/lib/worker/kernel-main.js","webpack://@basthon/browser-bundle/../../node_modules/comlink/dist/esm/comlink.mjs"],"sourcesContent":["import superPropBase from \"./superPropBase.js\";\nfunction _get() {\n return _get = \"undefined\" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) {\n var p = superPropBase(e, t);\n if (p) {\n var n = Object.getOwnPropertyDescriptor(p, t);\n return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value;\n }\n }, _get.apply(null, arguments);\n}\nexport { _get as default };","import getPrototypeOf from \"./getPrototypeOf.js\";\nfunction _superPropBase(t, o) {\n for (; !{}.hasOwnProperty.call(t, o) && null !== (t = getPrototypeOf(t)););\n return t;\n}\nexport { _superPropBase as default };","import { wrap, createEndpoint, transfer } from \"comlink\";\nimport { NotImplementedError, mockWorker, mockHTMLImageSrc } from \"../commons\";\nimport { KernelBase } from \"../kernel\";\nimport { PromiseDelegate } from \"promise-delegate\";\n// mock Worker to support sandboxing and keep webpack compatibility\nmockWorker();\n// mock HTMLImageElement.src to support localfs access\nmockHTMLImageSrc();\nexport class KernelMainBase extends KernelBase {\n constructor(options) {\n super(options);\n // synchronise comlink and communication channels\n this._channelSyncer = new PromiseDelegate();\n this._encrypt = (s) => s;\n this._legacy = options?.legacy === true;\n // synchronous wait on SAB cannot be used in a legacy context\n // (atomic wait will block the main thread)\n if (!this.isLegacy()) {\n if (globalThis.crossOriginIsolated)\n this._sab = new SharedArrayBuffer(1024);\n else\n this._fallbackKey = globalThis.crypto.randomUUID();\n }\n // get ephemeral API URL or fallback to default\n this._ephemeralAPI =\n options?.ephemeralAPI ?? \"https://api.basthon.fr/ephemeral\";\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 * Is synchrnous communication with worker available?\n * (through SharedArrayBuffer atomic waits)\n */\n syncCommSupport() {\n return this._sab != null;\n }\n /**\n * Is this kernel safe? (loaded in an isolated web worker)\n */\n safeKernel() {\n return !this.isLegacy();\n }\n /**\n * Get a new worker (should be overloaded).\n */\n newWorker() {\n throw new NotImplementedError(\"newWorker\");\n }\n /**\n * Import the code for a legacy worker (running in the main thread).\n */\n async importLegacyWorker() {\n throw new NotImplementedError(\"importLegacyWorker\");\n }\n /**\n * Create the kernel webworker and setup communication.\n */\n async setupWorker() {\n const comlinkChannel = new MessageChannel();\n if (this.isLegacy()) {\n // running in main thread via message channel (fake worker)\n //@ts-ignore\n self._commPort = comlinkChannel.port1;\n // this global variable will be removed by worker\n self._assetsURL = this.assetsURL(true);\n await this.importLegacyWorker();\n }\n else {\n // setup the kernel worker\n const worker = this.newWorker();\n // send communication port\n worker.postMessage(comlinkChannel.port1, [comlinkChannel.port1]);\n this._worker = worker;\n }\n const KernelWorker = wrap(comlinkChannel.port2);\n // why typescript complains about this call? yet, this is advertised in\n // https://github.com/GoogleChromeLabs/comlink/blob/dffe9050f63b1b39f30213adeb1dd4b9ed7d2594/docs/examples/03-classes-example/index.html#L15\n //@ts-ignore\n this._remote = await new KernelWorker(this._options);\n // setup the communication channel\n const { port1, port2 } = new MessageChannel();\n port2.onmessage = (e) => this.processWorkerMessage(e.data);\n this.postMessageToWorker = port2.postMessage.bind(port2);\n await this.remote?.setCommPort(transfer(port1, [port1]));\n // WARNING: without the setCommPort call, KernelWorker (proxy)\n // is garbage collected and comlink releases the proxy,\n // breaking all the communications... (don't know really why)\n // If you experience this, just keep a ref on the proxy with e.g.\n // this.PROXY = KernelWorker\n }\n /**\n * Start the worker.\n */\n async _start() {\n await super._start();\n // kernel restart in legacy mode is lazy, not a full restart\n if (this.isLegacy() && this.remote != null) {\n await this.remote?.legacyStart();\n return;\n }\n // setup the proxy worker\n const proxyWorker = new Worker(new URL(\"./comlink-proxy.js\", import.meta.url));\n const proxy = wrap(proxyWorker);\n // setup the kernel worker\n await this.setupWorker();\n // always set... but not always useful\n await this.remote?.setEphemeralAPI(this._ephemeralAPI);\n if (this.syncCommSupport()) {\n console.log(\"Using SharedArrayBuffer for synchronous worker communication.\");\n await this._remote?.setSAB(this._sab);\n }\n else if (this._fallbackKey != null) {\n console.warn(\"SharedArrayBuffer not available, falling back to \" +\n \"using third-party server for synchronous worker communication.\");\n const pass = globalThis.crypto.randomUUID();\n await this.remote?.setFallbackKeyAndPass(this._fallbackKey, pass);\n const AES = await import(\"crypto-js/aes\");\n this._encrypt = (message) => AES.encrypt(message, pass).toString();\n }\n // bind ports\n const port = await proxy[createEndpoint]();\n await this.remote?.setProxyPort(transfer(port, [port]));\n // init remote\n await this.remote?.init();\n }\n /**\n * Comlink remote getter.\n */\n get remote() {\n return this._remote;\n }\n /**\n * Stop the worker.\n */\n async _stop() {\n if (this.isLegacy()) {\n await this.remote?.legacyStop();\n }\n else {\n this._worker?.terminate();\n this._worker = undefined;\n this._remote = undefined;\n }\n await super._stop();\n }\n /**\n * Process messages from worker (if any).\n */\n async processWorkerMessage(msg) {\n switch (msg.type) {\n case \"eval-end\":\n this._channelSyncer.resolve();\n this._channelSyncer = new PromiseDelegate();\n break;\n case \"stream\":\n const { stream, text } = msg.content;\n const dataEvent = this.clone(msg.data);\n dataEvent.stream = stream;\n dataEvent.content = text;\n this.dispatchEvent(\"eval.output\", dataEvent);\n break;\n case \"download\":\n const { content, filename } = msg.content;\n this.download(content, filename);\n break;\n case \"display\":\n if (msg.data?.display_type === \"dom-node\") {\n // we should be in legacy mode here\n if (!this.isLegacy())\n throw new Error(\"internal error\");\n const id = msg.data?.content;\n //@ts-ignore\n msg.data.content = await self.basthon?.popDOMNode(id);\n }\n this.dispatchEvent(\"eval.display\", msg.data);\n break;\n case \"clear_output\":\n this.dispatchEvent(\"eval.clear-output\", msg.data);\n break;\n case \"input\":\n const { prompt, password, data } = msg.content;\n const res = (await this.inputAsync(prompt, password, data));\n if (msg.content.toplevel === true) {\n this.postMessageToWorker({\n type: \"toplevel-input\",\n content: res,\n data,\n });\n }\n else if (this.syncCommSupport()) {\n const encodedRes = new TextEncoder().encode(res);\n new Uint8Array(this._sab).set(encodedRes.subarray(0, this._sab.byteLength));\n Atomics.notify(new Int32Array(this._sab), 0, 1);\n }\n else {\n const response = await fetch(this._ephemeralAPI, {\n method: \"POST\",\n headers: {\n \"X-API-Referer\": self.location.href,\n },\n body: JSON.stringify({\n action: \"post\",\n key: this._fallbackKey,\n payload: this._encrypt(res),\n }),\n });\n if (!response.ok)\n throw new Error(`Basthon's network API error: ${response.status}`);\n }\n break;\n case \"log-validation\":\n this.dispatchEvent(\"validation.log\", msg.content);\n break;\n case \"breakpoint-move-on\":\n //@ts-ignore\n const notebook = Jupyter?.notebook;\n const cell_id = msg.content.data?.parent_msg?.content?.cell_id;\n notebook?.next_breakpoint_cell?.(cell_id);\n break;\n default: // ignoring (probably a comlink message)\n }\n }\n async evalAsync(code, outCallback, errCallback, data = null) {\n // force interactivity in all modes\n data.interactive = true;\n this._execution_count++;\n // to be sure we do not miss communications\n const syncChannels = this._channelSyncer.promise;\n // evaluation\n const execResult = (await this.remote?.eval(data, code));\n // wait for all communications to end\n await syncChannels;\n // return result\n let result;\n switch (execResult?.status) {\n case \"ok\":\n result = execResult.result;\n break;\n case \"error\":\n break;\n }\n return [result, this._execution_count];\n }\n /**\n * Put a file on the local (emulated) filesystem.\n */\n async putFile(filename, content) {\n await super.putFile(filename, content);\n await this.remote?.putFile(filename, content);\n }\n /**\n * Put an importable module on the local (emulated) filesystem\n * and load dependencies.\n */\n async putModule(filename, content) {\n await super.putModule(filename, content);\n await this.remote?.putModule(filename, content);\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 return (await this.remote?.complete(code)) ?? [];\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 return (await this.remote?.more(code)) ?? false;\n }\n}\n","// pollyfill\nif (self.globalThis == null) self.globalThis = self;\n\n// pollyfill\nif (self.globalThis == null) self.globalThis = self;\n\n// pollyfill\nif (self.globalThis == null) self.globalThis = self;\n\n// pollyfill\nif (self.globalThis == null) self.globalThis = self;\n\n// pollyfill\nif (self.globalThis == null) self.globalThis = self;\n\n// pollyfill\nif (self.globalThis == null) self.globalThis = self;\n\n// pollyfill\nif (self.globalThis == null) self.globalThis = self;\n\n/**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nconst proxyMarker = Symbol(\"Comlink.proxy\");\nconst createEndpoint = Symbol(\"Comlink.endpoint\");\nconst releaseProxy = Symbol(\"Comlink.releaseProxy\");\nconst finalizer = Symbol(\"Comlink.finalizer\");\nconst throwMarker = Symbol(\"Comlink.thrown\");\nconst isObject = (val) => (typeof val === \"object\" && val !== null) || typeof val === \"function\";\n/**\n * Internal transfer handle to handle objects marked to proxy.\n */\nconst proxyTransferHandler = {\n canHandle: (val) => isObject(val) && val[proxyMarker],\n serialize(obj) {\n const { port1, port2 } = new MessageChannel();\n expose(obj, port1);\n return [port2, [port2]];\n },\n deserialize(port) {\n port.start();\n return wrap(port);\n },\n};\n/**\n * Internal transfer handler to handle thrown exceptions.\n */\nconst throwTransferHandler = {\n canHandle: (value) => isObject(value) && throwMarker in value,\n serialize({ value }) {\n let serialized;\n if (value instanceof Error) {\n serialized = {\n isError: true,\n value: {\n message: value.message,\n name: value.name,\n stack: value.stack,\n },\n };\n }\n else {\n serialized = { isError: false, value };\n }\n return [serialized, []];\n },\n deserialize(serialized) {\n if (serialized.isError) {\n throw Object.assign(new Error(serialized.value.message), serialized.value);\n }\n throw serialized.value;\n },\n};\n/**\n * Allows customizing the serialization of certain values.\n */\nconst transferHandlers = new Map([\n [\"proxy\", proxyTransferHandler],\n [\"throw\", throwTransferHandler],\n]);\nfunction isAllowedOrigin(allowedOrigins, origin) {\n for (const allowedOrigin of allowedOrigins) {\n if (origin === allowedOrigin || allowedOrigin === \"*\") {\n return true;\n }\n if (allowedOrigin instanceof RegExp && allowedOrigin.test(origin)) {\n return true;\n }\n }\n return false;\n}\nfunction expose(obj, ep = globalThis, allowedOrigins = [\"*\"]) {\n ep.addEventListener(\"message\", function callback(ev) {\n if (!ev || !ev.data) {\n return;\n }\n if (!isAllowedOrigin(allowedOrigins, ev.origin)) {\n console.warn(`Invalid origin '${ev.origin}' for comlink proxy`);\n return;\n }\n const { id, type, path } = Object.assign({ path: [] }, ev.data);\n const argumentList = (ev.data.argumentList || []).map(fromWireValue);\n let returnValue;\n try {\n const parent = path.slice(0, -1).reduce((obj, prop) => obj[prop], obj);\n const rawValue = path.reduce((obj, prop) => obj[prop], obj);\n switch (type) {\n case \"GET\" /* MessageType.GET */:\n {\n returnValue = rawValue;\n }\n break;\n case \"SET\" /* MessageType.SET */:\n {\n parent[path.slice(-1)[0]] = fromWireValue(ev.data.value);\n returnValue = true;\n }\n break;\n case \"APPLY\" /* MessageType.APPLY */:\n {\n returnValue = rawValue.apply(parent, argumentList);\n }\n break;\n case \"CONSTRUCT\" /* MessageType.CONSTRUCT */:\n {\n const value = new rawValue(...argumentList);\n returnValue = proxy(value);\n }\n break;\n case \"ENDPOINT\" /* MessageType.ENDPOINT */:\n {\n const { port1, port2 } = new MessageChannel();\n expose(obj, port2);\n returnValue = transfer(port1, [port1]);\n }\n break;\n case \"RELEASE\" /* MessageType.RELEASE */:\n {\n returnValue = undefined;\n }\n break;\n default:\n return;\n }\n }\n catch (value) {\n returnValue = { value, [throwMarker]: 0 };\n }\n Promise.resolve(returnValue)\n .catch((value) => {\n return { value, [throwMarker]: 0 };\n })\n .then((returnValue) => {\n const [wireValue, transferables] = toWireValue(returnValue);\n ep.postMessage(Object.assign(Object.assign({}, wireValue), { id }), transferables);\n if (type === \"RELEASE\" /* MessageType.RELEASE */) {\n // detach and deactive after sending release response above.\n ep.removeEventListener(\"message\", callback);\n closeEndPoint(ep);\n if (finalizer in obj && typeof obj[finalizer] === \"function\") {\n obj[finalizer]();\n }\n }\n })\n .catch((error) => {\n // Send Serialization Error To Caller\n const [wireValue, transferables] = toWireValue({\n value: new TypeError(\"Unserializable return value\"),\n [throwMarker]: 0,\n });\n ep.postMessage(Object.assign(Object.assign({}, wireValue), { id }), transferables);\n });\n });\n if (ep.start) {\n ep.start();\n }\n}\nfunction isMessagePort(endpoint) {\n return endpoint.constructor.name === \"MessagePort\";\n}\nfunction closeEndPoint(endpoint) {\n if (isMessagePort(endpoint))\n endpoint.close();\n}\nfunction wrap(ep, target) {\n const pendingListeners = new Map();\n ep.addEventListener(\"message\", function handleMessage(ev) {\n const { data } = ev;\n if (!data || !data.id) {\n return;\n }\n const resolver = pendingListeners.get(data.id);\n if (!resolver) {\n return;\n }\n try {\n resolver(data);\n }\n finally {\n pendingListeners.delete(data.id);\n }\n });\n return createProxy(ep, pendingListeners, [], target);\n}\nfunction throwIfProxyReleased(isReleased) {\n if (isReleased) {\n throw new Error(\"Proxy has been released and is not useable\");\n }\n}\nfunction releaseEndpoint(ep) {\n return requestResponseMessage(ep, new Map(), {\n type: \"RELEASE\" /* MessageType.RELEASE */,\n }).then(() => {\n closeEndPoint(ep);\n });\n}\nconst proxyCounter = new WeakMap();\nconst proxyFinalizers = \"FinalizationRegistry\" in globalThis &&\n new FinalizationRegistry((ep) => {\n const newCount = (proxyCounter.get(ep) || 0) - 1;\n proxyCounter.set(ep, newCount);\n if (newCount === 0) {\n releaseEndpoint(ep);\n }\n });\nfunction registerProxy(proxy, ep) {\n const newCount = (proxyCounter.get(ep) || 0) + 1;\n proxyCounter.set(ep, newCount);\n if (proxyFinalizers) {\n proxyFinalizers.register(proxy, ep, proxy);\n }\n}\nfunction unregisterProxy(proxy) {\n if (proxyFinalizers) {\n proxyFinalizers.unregister(proxy);\n }\n}\nfunction createProxy(ep, pendingListeners, path = [], target = function () { }) {\n let isProxyReleased = false;\n const proxy = new Proxy(target, {\n get(_target, prop) {\n throwIfProxyReleased(isProxyReleased);\n if (prop === releaseProxy) {\n return () => {\n unregisterProxy(proxy);\n releaseEndpoint(ep);\n pendingListeners.clear();\n isProxyReleased = true;\n };\n }\n if (prop === \"then\") {\n if (path.length === 0) {\n return { then: () => proxy };\n }\n const r = requestResponseMessage(ep, pendingListeners, {\n type: \"GET\" /* MessageType.GET */,\n path: path.map((p) => p.toString()),\n }).then(fromWireValue);\n return r.then.bind(r);\n }\n return createProxy(ep, pendingListeners, [...path, prop]);\n },\n set(_target, prop, rawValue) {\n throwIfProxyReleased(isProxyReleased);\n // FIXME: ES6 Proxy Handler `set` methods are supposed to return a\n // boolean. To show good will, we return true asynchronously ¯\\_(ツ)_/¯\n const [value, transferables] = toWireValue(rawValue);\n return requestResponseMessage(ep, pendingListeners, {\n type: \"SET\" /* MessageType.SET */,\n path: [...path, prop].map((p) => p.toString()),\n value,\n }, transferables).then(fromWireValue);\n },\n apply(_target, _thisArg, rawArgumentList) {\n throwIfProxyReleased(isProxyReleased);\n const last = path[path.length - 1];\n if (last === createEndpoint) {\n return requestResponseMessage(ep, pendingListeners, {\n type: \"ENDPOINT\" /* MessageType.ENDPOINT */,\n }).then(fromWireValue);\n }\n // We just pretend that `bind()` didn’t happen.\n if (last === \"bind\") {\n return createProxy(ep, pendingListeners, path.slice(0, -1));\n }\n const [argumentList, transferables] = processArguments(rawArgumentList);\n return requestResponseMessage(ep, pendingListeners, {\n type: \"APPLY\" /* MessageType.APPLY */,\n path: path.map((p) => p.toString()),\n argumentList,\n }, transferables).then(fromWireValue);\n },\n construct(_target, rawArgumentList) {\n throwIfProxyReleased(isProxyReleased);\n const [argumentList, transferables] = processArguments(rawArgumentList);\n return requestResponseMessage(ep, pendingListeners, {\n type: \"CONSTRUCT\" /* MessageType.CONSTRUCT */,\n path: path.map((p) => p.toString()),\n argumentList,\n }, transferables).then(fromWireValue);\n },\n });\n registerProxy(proxy, ep);\n return proxy;\n}\nfunction myFlat(arr) {\n return Array.prototype.concat.apply([], arr);\n}\nfunction processArguments(argumentList) {\n const processed = argumentList.map(toWireValue);\n return [processed.map((v) => v[0]), myFlat(processed.map((v) => v[1]))];\n}\nconst transferCache = new WeakMap();\nfunction transfer(obj, transfers) {\n transferCache.set(obj, transfers);\n return obj;\n}\nfunction proxy(obj) {\n return Object.assign(obj, { [proxyMarker]: true });\n}\nfunction windowEndpoint(w, context = globalThis, targetOrigin = \"*\") {\n return {\n postMessage: (msg, transferables) => w.postMessage(msg, targetOrigin, transferables),\n addEventListener: context.addEventListener.bind(context),\n removeEventListener: context.removeEventListener.bind(context),\n };\n}\nfunction toWireValue(value) {\n for (const [name, handler] of transferHandlers) {\n if (handler.canHandle(value)) {\n const [serializedValue, transferables] = handler.serialize(value);\n return [\n {\n type: \"HANDLER\" /* WireValueType.HANDLER */,\n name,\n value: serializedValue,\n },\n transferables,\n ];\n }\n }\n return [\n {\n type: \"RAW\" /* WireValueType.RAW */,\n value,\n },\n transferCache.get(value) || [],\n ];\n}\nfunction fromWireValue(value) {\n switch (value.type) {\n case \"HANDLER\" /* WireValueType.HANDLER */:\n return transferHandlers.get(value.name).deserialize(value.value);\n case \"RAW\" /* WireValueType.RAW */:\n return value.value;\n }\n}\nfunction requestResponseMessage(ep, pendingListeners, msg, transfers) {\n return new Promise((resolve) => {\n const id = generateUUID();\n pendingListeners.set(id, resolve);\n if (ep.start) {\n ep.start();\n }\n ep.postMessage(Object.assign({ id }, msg), transfers);\n });\n}\nfunction generateUUID() {\n return new Array(4)\n .fill(0)\n .map(() => Math.floor(Math.random() * Number.MAX_SAFE_INTEGER).toString(16))\n .join(\"-\");\n}\n\nexport { createEndpoint, expose, finalizer, proxy, proxyMarker, releaseProxy, transfer, transferHandlers, windowEndpoint, wrap };\n//# sourceMappingURL=comlink.mjs.map\n"],"names":["_get","Reflect","get","bind","e","t","r","p","o","hasOwnProperty","call","getPrototypeOf","n","Object","getOwnPropertyDescriptor","arguments","length","value","apply","mockWorker","mockHTMLImageSrc","KernelMainBase","_KernelBase","options","_options$ephemeralAPI","_this","_classCallCheck","_channelSyncer","PromiseDelegate","_encrypt","s","_legacy","legacy","isLegacy","globalThis","crossOriginIsolated","_sab","SharedArrayBuffer","_fallbackKey","crypto","randomUUID","_ephemeralAPI","ephemeralAPI","_inherits","_createClass","key","this","NotImplementedError","_importLegacyWorker","_asyncToGenerator","_regeneratorRuntime","_callee","_context","prev","next","stop","_setupWorker","_callee2","_this$remote","comlinkChannel","worker","KernelWorker","_MessageChannel","port1","port2","_this2","_context2","MessageChannel","self","_commPort","_assetsURL","assetsURL","importLegacyWorker","newWorker","postMessage","_worker","wrap","_options","_remote","sent","onmessage","processWorkerMessage","data","postMessageToWorker","remote","setCommPort","transfer","_start2","_callee3","_this$remote3","_this$remote5","_this$remote6","_this$remote2","proxyWorker","proxy","_this$_remote","_this$remote4","pass","AES","port","_context3","_superPropGet","legacyStart","abrupt","Worker","URL","setupWorker","setEphemeralAPI","syncCommSupport","console","log","setSAB","warn","setFallbackKeyAndPass","message","encrypt","toString","createEndpoint","setProxyPort","init","_stop2","_callee4","_this$remote7","_this$_worker","_context4","legacyStop","terminate","undefined","_processWorkerMessage","_callee5","msg","_msg$data","_Jupyter","_msg$content$data","_notebook$next_breakp","_msg$content","stream","text","dataEvent","_msg$content2","content","filename","_msg$data2","_self$basthon","id","_msg$content3","prompt","password","res","encodedRes","response","notebook","cell_id","_t","_context5","type","resolve","clone","dispatchEvent","download","display_type","Error","basthon","popDOMNode","inputAsync","toplevel","TextEncoder","encode","Uint8Array","set","subarray","byteLength","Atomics","notify","Int32Array","fetch","method","headers","location","href","body","JSON","stringify","action","payload","ok","concat","status","Jupyter","parent_msg","next_breakpoint_cell","_x","_evalAsync","_callee6","code","outCallback","errCallback","_this$remote8","syncChannels","execResult","result","_t2","_args6","_context6","interactive","_execution_count","promise","eval","_x2","_x3","_x4","_putFile","_callee7","_this$remote9","_context7","putFile","_x5","_x6","_putModule","_callee8","_this$remote0","_context8","putModule","_x7","_x8","_complete","_callee9","_yield$this$remote$co","_this$remote1","_t3","_t4","_t5","_context9","complete","_x9","_more","_callee0","_yield$this$remote$mo","_this$remote10","_t6","_t7","_t8","_context0","more","_x0","KernelBase","proxyMarker","Symbol","releaseProxy","finalizer","throwMarker","isObject","val","transferHandlers","Map","canHandle","serialize","obj","expose","deserialize","start","serialized","isError","name","stack","assign","ep","allowedOrigins","addEventListener","callback","ev","origin","allowedOrigin","RegExp","test","isAllowedOrigin","path","argumentList","map","fromWireValue","returnValue","parent","slice","reduce","prop","rawValue","Promise","catch","then","wireValue","transferables","toWireValue","removeEventListener","closeEndPoint","error","TypeError","endpoint","constructor","isMessagePort","close","target","pendingListeners","resolver","delete","createProxy","throwIfProxyReleased","isReleased","releaseEndpoint","requestResponseMessage","proxyCounter","WeakMap","proxyFinalizers","FinalizationRegistry","newCount","isProxyReleased","Proxy","_target","unregister","unregisterProxy","clear","_thisArg","rawArgumentList","last","processArguments","construct","register","registerProxy","processed","v","arr","Array","prototype","transferCache","transfers","handler","serializedValue","fill","Math","floor","random","Number","MAX_SAFE_INTEGER","join"],"sourceRoot":""}
1
+ {"version":3,"file":"kernel-base_lib_worker_index_js.js","mappings":";8LACA,SAASA,IACP,OAAOA,EAAO,oBAAsBC,SAAWA,QAAQC,IAAMD,QAAQC,IAAIC,OAAS,SAAUC,EAAGC,EAAGC,GAChG,IAAIC,ECFR,SAAwBF,EAAGG,GACzB,MAAQ,CAAC,EAAEC,eAAeC,KAAKL,EAAGG,IAAM,QAAUH,GAAI,EAAAM,EAAA,GAAeN,MACrE,OAAOA,CACT,CDDY,CAAcD,EAAGC,GACzB,GAAIE,EAAG,CACL,IAAIK,EAAIC,OAAOC,yBAAyBP,EAAGF,GAC3C,OAAOO,EAAEV,IAAMU,EAAEV,IAAIQ,KAAKK,UAAUC,OAAS,EAAIZ,EAAIE,GAAKM,EAAEK,KAC9D,CACF,EAAGjB,EAAKkB,MAAM,KAAMH,UACtB,C,4bEJAI,EAAAA,EAAAA,MAEAC,EAAAA,EAAAA,MACO,IAAMC,EAAc,SAAAC,GACvB,SAAAD,EAAYE,GAAS,IAAAC,EAAAC,E,MAiB+C,OAjB/CC,EAAAA,EAAAA,GAAA,KAAAL,G,EACjB,K,EAAAA,E,EAAA,CAAME,G,cAANE,G,8EAEKE,eAAiB,IAAIC,EAAAA,EAC1BH,EAAKI,SAAW,SAACC,GAAC,OAAKA,CAAC,EACxBL,EAAKM,kBAAoBC,SAASC,cAAc,UAChDR,EAAKS,SAA8B,KAApBX,aAAO,EAAPA,EAASY,QAGnBV,EAAKW,aACFC,WAAWC,oBACXb,EAAKc,KAAO,IAAIC,kBAAkB,MAElCf,EAAKgB,aAAeJ,WAAWK,OAAOC,cAG9ClB,EAAKmB,cACoB,QADPpB,EACdD,aAAO,EAAPA,EAASsB,oBAAY,IAAArB,EAAAA,EAAI,mCAAmCC,CACpE,CACA,OAAAqB,EAAAA,EAAAA,GAAAzB,EAAAC,IAAAyB,EAAAA,EAAAA,GAAA1B,EAAA,EAAA2B,IAAA,WAAA/B,MAGA,WACI,OAAOgC,KAAKf,OAChB,GACA,CAAAc,IAAA,kBAAA/B,MAIA,WACI,OAAoB,MAAbgC,KAAKV,IAChB,GACA,CAAAS,IAAA,aAAA/B,MAGA,WACI,OAAQgC,KAAKb,UACjB,GACA,CAAAY,IAAA,YAAA/B,MAGA,WACI,MAAM,IAAIiC,EAAAA,GAAoB,YAClC,GACA,CAAAF,IAAA,qBAAA/B,OAAAkC,GAAAC,EAAAA,EAAAA,GAAAC,IAAAA,KAGA,SAAAC,IAAA,OAAAD,IAAAA,KAAA,SAAAE,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,aACU,IAAIP,EAAAA,GAAoB,sBAAqB,wBAAAK,EAAAG,OAAA,EAAAJ,EAAA,IACtD,WAFuB,OAAAH,EAAAjC,MAAC,KAADH,UAAA,IAGxB,CAAAiC,IAAA,cAAA/B,OAAA0C,GAAAP,EAAAA,EAAAA,GAAAC,IAAAA,KAGA,SAAAO,IAAA,IAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAA,YAAAf,IAAAA,KAAA,SAAAgB,GAAA,cAAAA,EAAAb,KAAAa,EAAAZ,MAAA,OAC+C,GAArCK,EAAiB,IAAIQ,gBACvBrB,KAAKb,WAAY,CAAFiC,EAAAZ,KAAA,QAKwB,OAFvCc,KAAKC,UAAYV,EAAeI,MAEhCK,KAAKE,WAAaxB,KAAKyB,WAAU,GAAML,EAAAZ,KAAA,EACjCR,KAAK0B,qBAAoB,OAAAN,EAAAZ,KAAA,gBAIzBM,EAASd,KAAK2B,aAEbC,YAAYf,EAAeI,MAAO,CAACJ,EAAeI,QACzDjB,KAAK6B,QAAUf,EAAO,OAK1B,OAHMC,GAAee,EAAAA,EAAAA,IAAKjB,EAAeK,OAGzCE,EAAAZ,KAAA,EACqB,IAAIO,EAAaf,KAAK+B,UAAS,OAIK,OAJzD/B,KAAKgC,QAAOZ,EAAAa,KACZjB,EACyB,IAAIK,eAArBJ,EAAKD,EAALC,OAAOC,EAAKF,EAALE,OACTgB,UAAY,SAAC/E,GAAC,OAAKgE,EAAKgB,qBAAqBhF,EAAEiF,KAAK,EAC1DpC,KAAKqC,oBAAsBnB,EAAMU,YAAY1E,KAAKgE,GAAOE,EAAAZ,KAAA,EACxC,QADwCI,EACnDZ,KAAKsC,cAAM,IAAA1B,OAAA,EAAXA,EAAa2B,aAAYC,EAAAA,EAAAA,IAASvB,EAAO,CAACA,KAAQ,wBAAAG,EAAAX,OAAA,EAAAE,EAAA,SAM3D,WAhCgB,OAAAD,EAAAzC,MAAC,KAADH,UAAA,IAiCjB,CAAAiC,IAAA,SAAA/B,OAAAyE,GAAAtC,EAAAA,EAAAA,GAAAC,IAAAA,KAGA,SAAAsC,IAAA,IAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAA,OAAAjD,IAAAA,KAAA,SAAAkD,GAAA,cAAAA,EAAA/C,KAAA+C,EAAA9C,MAAA,cAAA8C,EAAA9C,KAAA,EAAA+C,EAAAnF,EAAA,gBAAAmF,CAAA,eAGQvD,KAAKb,YAA6B,MAAfa,KAAKsC,OAAc,CAAAgB,EAAA9C,KAAA,eAAA8C,EAAA9C,KAAA,EACrB,QADqBsC,EAChC9C,KAAKsC,cAAM,IAAAQ,OAAA,EAAXA,EAAaU,cAAa,cAAAF,EAAAG,OAAA,iBAMpC,OAFMV,EAAc,IAAIW,OAAO,IAAIC,IAAI,yDACjCX,GAAQlB,EAAAA,EAAAA,IAAKiB,GACnBO,EAAA9C,KAAA,EACMR,KAAK4D,cAAa,cAAAN,EAAA9C,KAAA,EAEP,QAFOmC,EAElB3C,KAAKsC,cAAM,IAAAK,OAAA,EAAXA,EAAakB,gBAAgB7D,KAAKL,eAAc,WAClDK,KAAK8D,kBAAmB,CAAFR,EAAA9C,KAAA,QACuD,OAA7EuD,QAAQC,IAAI,iEAAiEV,EAAA9C,KAAA,EAC3D,QAD2DyC,EACvEjD,KAAKgC,eAAO,IAAAiB,OAAA,EAAZA,EAAcgB,OAAOjE,KAAKV,MAAK,OAAAgE,EAAA9C,KAAA,mBAEX,MAArBR,KAAKR,aAAoB,CAAA8D,EAAA9C,KAAA,SAGa,OAF3CuD,QAAQG,KAAK,mHAEPf,EAAO/D,WAAWK,OAAOC,aAAY4D,EAAA9C,KAAA,EAC1B,QAD0B0C,EACrClD,KAAKsC,cAAM,IAAAY,OAAA,EAAXA,EAAaiB,sBAAsBnE,KAAKR,aAAc2D,GAAK,cAAAG,EAAA9C,KAAA,EAC/C,oGAAuB,OAAnC4C,EAAGE,EAAArB,KACTjC,KAAKpB,SAAW,SAACwF,GAAO,OAAKhB,EAAIiB,QAAQD,EAASjB,GAAMmB,UAAU,EAAC,eAAAhB,EAAA9C,KAAA,GAGpDwC,EAAMuB,EAAAA,MAAiB,QAAhC,OAAJlB,EAAIC,EAAArB,KAAAqB,EAAA9C,KAAG,GACI,QADPoC,EACJ5C,KAAKsC,cAAM,IAAAM,OAAA,EAAXA,EAAa4B,cAAahC,EAAAA,EAAAA,IAASa,EAAM,CAACA,KAAO,eAAAC,EAAA9C,KAAA,GAEtC,QAFsCqC,EAEjD7C,KAAKsC,cAAM,IAAAO,OAAA,EAAXA,EAAa4B,OAAM,yBAAAnB,EAAA7C,OAAA,EAAAiC,EAAA,SAC5B,WA/BW,OAAAD,EAAAxE,MAAC,KAADH,UAAA,IAgCZ,CAAAiC,IAAA,SAAA9C,IAGA,WACI,OAAO+C,KAAKgC,OAChB,GACA,CAAAjC,IAAA,QAAA/B,OAAA0G,GAAAvE,EAAAA,EAAAA,GAAAC,IAAAA,KAGA,SAAAuE,IAAA,IAAAC,EAAAC,EAAA,OAAAzE,IAAAA,KAAA,SAAA0E,GAAA,cAAAA,EAAAvE,KAAAuE,EAAAtE,MAAA,WACQR,KAAKb,WAAY,CAAF2F,EAAAtE,KAAA,eAAAsE,EAAAtE,KAAA,EACE,QADFoE,EACT5E,KAAKsC,cAAM,IAAAsC,OAAA,EAAXA,EAAaG,aAAY,OAAAD,EAAAtE,KAAA,eAGnB,QAAZqE,EAAA7E,KAAK6B,eAAO,IAAAgD,GAAZA,EAAcG,YACdhF,KAAK6B,aAAUoD,EACfjF,KAAKgC,aAAUiD,EAAU,cAAAH,EAAAtE,KAAA,EAAA+C,EAAAnF,EAAA,eAAAmF,CAAA,4BAAAuB,EAAArE,OAAA,EAAAkE,EAAA,SAGhC,WAVU,OAAAD,EAAAzG,MAAC,KAADH,UAAA,IAWX,CAAAiC,IAAA,0BAAA/B,OAAAkH,GAAA/E,EAAAA,EAAAA,GAAAC,IAAAA,KAGA,SAAA+E,EAA8BC,EAAOC,EAAQC,GAAM,IAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAA,OAAAvF,IAAAA,KAAA,SAAAwF,GAAA,cAAAA,EAAArF,KAAAqF,EAAApF,MAAA,OAIZ,IAH7B+E,EAASvF,KAAKlB,mBACbsG,MAAQA,EACfG,EAAOF,OAASA,EAEJ,QADNG,EAAMD,EAAOM,WAAW,OACd,CAAAD,EAAApF,KAAA,eAAAoF,EAAAnC,OAAA,iBAO0B,GALpCgC,EAAY,IAAIK,UAAU,IAAIC,kBAAkBT,GAASF,EAAOC,GACtEG,EAAIQ,aAAaP,EAAW,EAAG,GACzBC,EAAUH,EAAOU,UAAU,aACjCV,EAAOH,MAAQ,EACfG,EAAOF,OAAS,EACVM,EAAY,0BACdD,EAAQQ,WAAWP,GAAU,CAAAC,EAAApF,KAAA,eAAAoF,EAAAnC,OAAA,SACtBiC,EAAQS,MAAMR,KAAiB,wBAAAC,EAAAnF,OAAA,EAAA0E,EAAA,SAC7C,SAf4BiB,EAAAC,EAAAC,GAAA,OAAApB,EAAAjH,MAAC,KAADH,UAAA,IAgB7B,CAAAiC,IAAA,uBAAA/B,OAAAuI,GAAApG,EAAAA,EAAAA,GAAAC,IAAAA,KAGA,SAAAoG,EAA2BC,GAAG,IAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAArC,EAAAC,EAAAC,EAAAoC,EAAAC,EAAAC,EAAAC,EAAAzF,EAAA0F,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAA,OAAA/H,IAAAA,KAAA,SAAAgI,GAAA,cAAAA,EAAA7H,KAAA6H,EAAA5H,MAAA,OAAA2H,EAClB1B,EAAI4B,KAAID,EAAA5H,KACP,aADO2H,EACG,EAIV,WAJUA,EAIF,EAOR,aAPQA,EAOE,EAIV,YAJUA,EAID,EAmBT,iBAnBSA,EAmBK,GAGd,UAHcA,EAGP,GA+BP,mBA/BOA,EA+BS,GAGhB,uBAHgBA,EAGI,mBArEuB,OAD5CnI,KAAKtB,eAAe4J,UACpBtI,KAAKtB,eAAiB,IAAIC,EAAAA,EAAkByJ,EAAA3E,OAAA,sBAOC,OAPDsD,EAGnBN,EAAIW,QAArBJ,EAAMD,EAANC,OAAQC,EAAIF,EAAJE,MACVC,EAAYlH,KAAKuI,MAAM9B,EAAIrE,OACvB4E,OAASA,EACnBE,EAAUE,QAAUH,EACpBjH,KAAKwI,cAAc,cAAetB,GAAWkB,EAAA3E,OAAA,sBAIZ,OAJY0D,EAGfV,EAAIW,QAA1BA,EAAOD,EAAPC,QAASC,EAAQF,EAARE,SACjBrH,KAAKyI,SAASrB,EAASC,GAAUe,EAAA3E,OAAA,yBAGF,cAAnB,QAARiD,EAAAD,EAAIrE,YAAI,IAAAsE,OAAA,EAARA,EAAUgC,cAA2B,CAAAN,EAAA5H,KAAA,WAEhCR,KAAKb,WAAU,CAAAiJ,EAAA5H,KAAA,cACV,IAAImI,MAAM,kBAAiB,OAErC,OADMnB,EAAa,QAAXF,EAAGb,EAAIrE,YAAI,IAAAkF,OAAA,EAARA,EAAUF,QACrBgB,EAAA5H,KAAA,EACqC,QADrC+G,EACyBjG,KAAKsH,eAAO,IAAArB,OAAA,EAAZA,EAAcsB,WAAWrB,GAAG,OAArDf,EAAIrE,KAAKgF,QAAOgB,EAAAnG,KAAAmG,EAAA5H,KAAG,GAAH,gBAEgB,YAAnB,QAARmG,EAAAF,EAAIrE,YAAI,IAAAuE,OAAA,EAARA,EAAU+B,cAAyB,CAAAN,EAAA5H,KAAA,SACX,OADWiH,EACNhB,EAAIrE,KAAKgF,QAAnChC,EAAKqC,EAALrC,MAAOC,EAAMoC,EAANpC,OAAQC,EAAMmC,EAANnC,OAAM8C,EAAA5H,KAAA,EACXR,KAAK8I,wBAAwB1D,EAAOC,EAAQC,GAAO,OAA5D,GACE,OADLoC,EAAGU,EAAAnG,MACM,CAAAmG,EAAA5H,KAAA,eAAA4H,EAAA3E,OAAA,iBAEfgD,EAAIrE,KAAKsG,aAAe,WACxBjC,EAAIrE,KAAKgF,QAAU,CAAE,YAAaM,GAAM,QAEC,OAA7C1H,KAAKwI,cAAc,eAAgB/B,EAAIrE,MAAMgG,EAAA3E,OAAA,uBAGK,OAAlDzD,KAAKwI,cAAc,oBAAqB/B,EAAIrE,MAAMgG,EAAA3E,OAAA,uBAGpB,OAHoBkE,EAGflB,EAAIW,QAA/BQ,EAAMD,EAANC,OAAQC,EAAQF,EAARE,SAAUzF,EAAIuF,EAAJvF,KAAIgG,EAAA5H,KAAA,GACXR,KAAK+I,WAAWnB,EAAQC,EAAUzF,GAAK,QAAjD,GAAH0F,EAAGM,EAAAnG,MACoB,IAAzBwE,EAAIW,QAAQ4B,SAAiB,CAAAZ,EAAA5H,KAAA,SAC7BR,KAAKqC,oBAAoB,CACrBgG,KAAM,iBACNjB,QAASU,EACT1F,KAAAA,IACDgG,EAAA5H,KAAA,qBAEER,KAAK8D,kBAAmB,CAAFsE,EAAA5H,KAAA,SACrBuH,GAAa,IAAIkB,aAAcC,OAAOpB,GAC5C,IAAIqB,WAAWnJ,KAAKV,MAAM8J,IAAIrB,EAAWsB,SAAS,EAAGrJ,KAAKV,KAAKgK,aAC/DC,QAAQC,OAAO,IAAIC,WAAWzJ,KAAKV,MAAO,EAAG,GAAG8I,EAAA5H,KAAA,wBAAA4H,EAAA5H,KAAA,GAGzBkJ,MAAM1J,KAAKL,cAAe,CAC7CgK,OAAQ,OACRC,QAAS,CACL,gBAAiBtI,KAAKuI,SAASC,MAEnCC,KAAMC,KAAKC,UAAU,CACjBC,OAAQ,OACRnK,IAAKC,KAAKR,aACV2K,QAASnK,KAAKpB,SAASkJ,OAE7B,QAVY,IAARE,EAAQI,EAAAnG,MAWAmI,GAAE,CAAAhC,EAAA5H,KAAA,eACN,IAAImI,MAAM,gCAAD0B,OAAiCrC,EAASsC,SAAS,eAAAlC,EAAA3E,OAAA,uBAIxB,OAAlDzD,KAAKwI,cAAc,iBAAkB/B,EAAIW,SAASgB,EAAA3E,OAAA,uBAMR,OAFpCwE,EAAkB,QAAVrB,EAAG2D,eAAO,IAAA3D,OAAA,EAAPA,EAASqB,SACpBC,EAA0B,QAAnBrB,EAAGJ,EAAIW,QAAQhF,YAAI,IAAAyE,GAAY,QAAZA,EAAhBA,EAAkB2D,kBAAU,IAAA3D,GAAS,QAATA,EAA5BA,EAA8BO,eAAO,IAAAP,OAAA,EAArCA,EAAuCqB,QACvDD,SAA8B,QAAtBnB,EAARmB,EAAUwC,4BAAoB,IAAA3D,GAA9BA,EAAArJ,KAAAwK,EAAiCC,GAASE,EAAA3E,OAAA,wCAAA2E,EAAA3H,OAAA,EAAA+F,EAAA,SAIrD,SAjFyBkE,GAAA,OAAAnE,EAAAtI,MAAC,KAADH,UAAA,KAAAiC,IAAA,YAAA/B,OAAA2M,GAAAxK,EAAAA,EAAAA,GAAAC,IAAAA,KAkF1B,SAAAwK,EAAgBC,EAAMC,EAAaC,GAAW,IAAAC,EAAA5I,EAAA6I,EAAAC,EAAAC,EAAAC,EAAAC,EAAAvN,UAAA,OAAAsC,IAAAA,KAAA,SAAAkL,GAAA,cAAAA,EAAA/K,KAAA+K,EAAA9K,MAAA,OAM1C,OAN4C4B,EAAIiJ,EAAAtN,OAAA,QAAAkH,IAAAoG,EAAA,GAAAA,EAAA,GAAG,MAE9CE,aAAc,EACnBvL,KAAKwL,mBAECP,EAAejL,KAAKtB,eAAe+M,QACzCH,EAAA9K,KAAA,EACqC,QADrCwK,EAC0BhL,KAAKsC,cAAM,IAAA0I,OAAA,EAAXA,EAAaU,KAAKtJ,EAAMyI,GAAK,OAAvC,OAAVK,EAAUI,EAAArJ,KAAAqJ,EAAA9K,KAAG,EAEbyK,EAAY,OAAAG,EAGVF,aAAU,EAAVA,EAAYZ,OAAMgB,EAAA9K,KACjB,OADiB4K,EACb,EAGJ,UAHIA,EAGG,iBAFmB,OAA3BD,EAASD,EAAWC,OAAOG,EAAA7H,OAAA,4BAAA6H,EAAA7H,OAAA,4BAAA6H,EAAA7H,OAAA,SAK5B,CAAC0H,EAAQnL,KAAKwL,mBAAiB,wBAAAF,EAAA7K,OAAA,EAAAmK,EAAA,SACzC,SApBce,EAAAC,EAAAC,GAAA,OAAAlB,EAAA1M,MAAC,KAADH,UAAA,IAqBf,CAAAiC,IAAA,UAAA/B,OAAA8N,GAAA3L,EAAAA,EAAAA,GAAAC,IAAAA,KAGA,SAAA2L,EAAc1E,EAAUD,GAAO,IAAA4E,EAAA,OAAA5L,IAAAA,KAAA,SAAA6L,GAAA,cAAAA,EAAA1L,KAAA0L,EAAAzL,MAAA,cAAAyL,EAAAzL,KAAA,EAAA+C,EAAAnF,EAAA,iBAAAmF,CAAA,CACP8D,EAAUD,IAAO,cAAA6E,EAAAzL,KAAA,EACpB,QADoBwL,EAC/BhM,KAAKsC,cAAM,IAAA0J,OAAA,EAAXA,EAAaE,QAAQ7E,EAAUD,GAAQ,wBAAA6E,EAAAxL,OAAA,EAAAsL,EAAA,SAChD,SAHYI,EAAAC,GAAA,OAAAN,EAAA7N,MAAC,KAADH,UAAA,IAIb,CAAAiC,IAAA,YAAA/B,OAAAqO,GAAAlM,EAAAA,EAAAA,GAAAC,IAAAA,KAIA,SAAAkM,EAAgBjF,EAAUD,GAAO,IAAAmF,EAAA,OAAAnM,IAAAA,KAAA,SAAAoM,GAAA,cAAAA,EAAAjM,KAAAiM,EAAAhM,MAAA,cAAAgM,EAAAhM,KAAA,EAAA+C,EAAAnF,EAAA,mBAAAmF,CAAA,CACP8D,EAAUD,IAAO,cAAAoF,EAAAhM,KAAA,EACtB,QADsB+L,EACjCvM,KAAKsC,cAAM,IAAAiK,OAAA,EAAXA,EAAaE,UAAUpF,EAAUD,GAAQ,wBAAAoF,EAAA/L,OAAA,EAAA6L,EAAA,SAClD,SAHcI,EAAAC,GAAA,OAAAN,EAAApO,MAAC,KAADH,UAAA,IAIf,CAAAiC,IAAA,WAAA/B,OAAA4O,GAAAzM,EAAAA,EAAAA,GAAAC,IAAAA,KAMA,SAAAyM,EAAehC,GAAI,IAAAiC,EAAAC,EAAAC,EAAAC,EAAAC,EAAA,OAAA9M,IAAAA,KAAA,SAAA+M,GAAA,cAAAA,EAAA5M,KAAA4M,EAAA3M,MAAA,cAAA2M,EAAA3M,KAAA,EACU,QADVuM,EACD/M,KAAKsC,cAAM,IAAAyK,OAAA,EAAXA,EAAaK,SAASvC,GAAK,UAAAoC,EAAAH,EAAAK,EAAAlL,OAAA+K,EAAA,OAAAC,GAAE,CAAFE,EAAA3M,KAAA,QAAAwM,OAAA,IAAAF,EAAA,WAAAE,EAAE,CAAFG,EAAA3M,KAAA,QAAA0M,EAAAJ,EAAAK,EAAA3M,KAAA,eAAA0M,EAAK,GAAE,cAAAC,EAAA1J,OAAA,SAAAyJ,GAAA,wBAAAC,EAAA1M,OAAA,EAAAoM,EAAA,SACnD,SAFaQ,GAAA,OAAAT,EAAA3O,MAAC,KAADH,UAAA,IAGd,CAAAiC,IAAA,OAAA/B,OAAAsP,GAAAnN,EAAAA,EAAAA,GAAAC,IAAAA,KAMA,SAAAmN,EAAW1C,GAAI,IAAA2C,EAAAC,EAAAC,EAAAC,EAAAC,EAAA,OAAAxN,IAAAA,KAAA,SAAAyN,GAAA,cAAAA,EAAAtN,KAAAsN,EAAArN,MAAA,cAAAqN,EAAArN,KAAA,EACc,QADdiN,EACGzN,KAAKsC,cAAM,IAAAmL,OAAA,EAAXA,EAAaK,KAAKjD,GAAK,UAAA8C,EAAAH,EAAAK,EAAA5L,OAAAyL,EAAA,OAAAC,GAAE,CAAFE,EAAArN,KAAA,QAAAkN,OAAA,IAAAF,EAAA,WAAAE,EAAE,CAAFG,EAAArN,KAAA,QAAAoN,EAAAJ,EAAAK,EAAArN,KAAA,eAAAoN,GAAK,EAAK,cAAAC,EAAApK,OAAA,SAAAmK,GAAA,wBAAAC,EAAApN,OAAA,EAAA8M,EAAA,SAClD,SAFSQ,GAAA,OAAAT,EAAArP,MAAC,KAADH,UAAA,MANV,IAAAwP,EATAV,EARAP,EAPAP,EAvG0BnB,EAH1BpE,EAnBArB,EAdAR,EAzCAjC,EApCA/B,EANAR,CA4PU,CAzSa,CAAS8N,EAAAA,E,oKCPb,MAAnB1M,KAAKlC,aAAoBkC,KAAKlC,WAAakC,MAGxB,MAAnBA,KAAKlC,aAAoBkC,KAAKlC,WAAakC,MAGxB,MAAnBA,KAAKlC,aAAoBkC,KAAKlC,WAAakC,MAGxB,MAAnBA,KAAKlC,aAAoBkC,KAAKlC,WAAakC,MAGxB,MAAnBA,KAAKlC,aAAoBkC,KAAKlC,WAAakC,MAGxB,MAAnBA,KAAKlC,aAAoBkC,KAAKlC,WAAakC,MAGxB,MAAnBA,KAAKlC,aAAoBkC,KAAKlC,WAAakC,MAO/C,MAAM2M,EAAcC,OAAO,iBACrB3J,EAAiB2J,OAAO,oBACxBC,EAAeD,OAAO,wBACtBE,EAAYF,OAAO,qBACnBG,EAAcH,OAAO,kBACrBI,EAAYC,GAAwB,iBAARA,GAA4B,OAARA,GAAgC,mBAARA,EAgDxEC,EAAmB,IAAIC,IAAI,CAC7B,CAAC,QA7CwB,CACzBC,UAAYH,GAAQD,EAASC,IAAQA,EAAIN,GACzC,SAAAU,CAAUC,GACN,MAAM,MAAE3N,EAAK,MAAEC,GAAU,IAAIG,eAE7B,OADAwN,EAAOD,EAAK3N,GACL,CAACC,EAAO,CAACA,GACpB,EACA4N,YAAYzL,IACRA,EAAK0L,QACEjN,EAAKuB,MAqChB,CAAC,QA/BwB,CACzBqL,UAAY1Q,GAAUsQ,EAAStQ,IAAUqQ,KAAerQ,EACxD,SAAA2Q,EAAU,MAAE3Q,IACR,IAAIgR,EAcJ,OAZIA,EADAhR,aAAiB2K,MACJ,CACTsG,SAAS,EACTjR,MAAO,CACHoG,QAASpG,EAAMoG,QACf8K,KAAMlR,EAAMkR,KACZC,MAAOnR,EAAMmR,QAKR,CAAEF,SAAS,EAAOjR,SAE5B,CAACgR,EAAY,GACxB,EACA,WAAAF,CAAYE,GACR,GAAIA,EAAWC,QACX,MAAMrR,OAAOwR,OAAO,IAAIzG,MAAMqG,EAAWhR,MAAMoG,SAAU4K,EAAWhR,OAExE,MAAMgR,EAAWhR,KACrB,MAoBJ,SAAS6Q,EAAOD,EAAKS,EAAKjQ,WAAYkQ,EAAiB,CAAC,MACpDD,EAAGE,iBAAiB,UAAW,SAASC,EAASC,GAC7C,IAAKA,IAAOA,EAAGrN,KACX,OAEJ,IAhBR,SAAyBkN,EAAgBI,GACrC,IAAK,MAAMC,KAAiBL,EAAgB,CACxC,GAAII,IAAWC,GAAmC,MAAlBA,EAC5B,OAAO,EAEX,GAAIA,aAAyBC,QAAUD,EAAcE,KAAKH,GACtD,OAAO,CAEf,CACA,OAAO,CACX,CAMaI,CAAgBR,EAAgBG,EAAGC,QAEpC,YADA3L,QAAQG,KAAK,mBAAmBuL,EAAGC,6BAGvC,MAAM,GAAElI,EAAE,KAAEa,EAAI,KAAE0H,GAASnS,OAAOwR,OAAO,CAAEW,KAAM,IAAMN,EAAGrN,MACpD4N,GAAgBP,EAAGrN,KAAK4N,cAAgB,IAAIC,IAAIC,GACtD,IAAIC,EACJ,IACI,MAAMC,EAASL,EAAK5J,MAAM,GAAI,GAAGkK,OAAO,CAACzB,EAAK0B,IAAS1B,EAAI0B,GAAO1B,GAC5D2B,EAAWR,EAAKM,OAAO,CAACzB,EAAK0B,IAAS1B,EAAI0B,GAAO1B,GACvD,OAAQvG,GACJ,IAAK,MAEG8H,EAAcI,EAElB,MACJ,IAAK,MAEGH,EAAOL,EAAK5J,OAAO,GAAG,IAAM+J,EAAcT,EAAGrN,KAAKpE,OAClDmS,GAAc,EAElB,MACJ,IAAK,QAEGA,EAAcI,EAAStS,MAAMmS,EAAQJ,GAEzC,MACJ,IAAK,YAGGG,EA+LxB,SAAevB,GACX,OAAOhR,OAAOwR,OAAOR,EAAK,CAAE,CAACX,IAAc,GAC/C,CAjMsCjL,CADA,IAAIuN,KAAYP,IAGlC,MACJ,IAAK,WACD,CACI,MAAM,MAAE/O,EAAK,MAAEC,GAAU,IAAIG,eAC7BwN,EAAOD,EAAK1N,GACZiP,EAAc3N,EAASvB,EAAO,CAACA,GACnC,CACA,MACJ,IAAK,UAEGkP,OAAclL,EAElB,MACJ,QACI,OAEZ,CACA,MAAOjH,GACHmS,EAAc,CAAEnS,QAAO,CAACqQ,GAAc,EAC1C,CACAmC,QAAQlI,QAAQ6H,GACXM,MAAOzS,IACD,CAAEA,QAAO,CAACqQ,GAAc,KAE9BqC,KAAMP,IACP,MAAOQ,EAAWC,GAAiBC,EAAYV,GAC/Cd,EAAGzN,YAAYhE,OAAOwR,OAAOxR,OAAOwR,OAAO,CAAC,EAAGuB,GAAY,CAAEnJ,OAAOoJ,GACvD,YAATvI,IAEAgH,EAAGyB,oBAAoB,UAAWtB,GAClCuB,EAAc1B,GACVjB,KAAaQ,GAAiC,mBAAnBA,EAAIR,IAC/BQ,EAAIR,QAIXqC,MAAOO,IAER,MAAOL,EAAWC,GAAiBC,EAAY,CAC3C7S,MAAO,IAAIiT,UAAU,+BACrB,CAAC5C,GAAc,IAEnBgB,EAAGzN,YAAYhE,OAAOwR,OAAOxR,OAAOwR,OAAO,CAAC,EAAGuB,GAAY,CAAEnJ,OAAOoJ,IAE5E,GACIvB,EAAGN,OACHM,EAAGN,OAEX,CAIA,SAASgC,EAAcG,IAHvB,SAAuBA,GACnB,MAAqC,gBAA9BA,EAASC,YAAYjC,IAChC,EAEQkC,CAAcF,IACdA,EAASG,OACjB,CACA,SAASvP,EAAKuN,EAAIiC,GACd,MAAMC,EAAmB,IAAI9C,IAiB7B,OAhBAY,EAAGE,iBAAiB,UAAW,SAAuBE,GAClD,MAAM,KAAErN,GAASqN,EACjB,IAAKrN,IAASA,EAAKoF,GACf,OAEJ,MAAMgK,EAAWD,EAAiBtU,IAAImF,EAAKoF,IAC3C,GAAKgK,EAGL,IACIA,EAASpP,EACb,CACA,QACImP,EAAiBE,OAAOrP,EAAKoF,GACjC,CACJ,GACOkK,EAAYrC,EAAIkC,EAAkB,GAAID,EACjD,CACA,SAASK,EAAqBC,GAC1B,GAAIA,EACA,MAAM,IAAIjJ,MAAM,6CAExB,CACA,SAASkJ,EAAgBxC,GACrB,OAAOyC,EAAuBzC,EAAI,IAAIZ,IAAO,CACzCpG,KAAM,YACPqI,KAAK,KACJK,EAAc1B,IAEtB,CACA,MAAM0C,EAAe,IAAIC,QACnBC,EAAkB,yBAA0B7S,YAC9C,IAAI8S,qBAAsB7C,IACtB,MAAM8C,GAAYJ,EAAa9U,IAAIoS,IAAO,GAAK,EAC/C0C,EAAa3I,IAAIiG,EAAI8C,GACJ,IAAbA,GACAN,EAAgBxC,KAe5B,SAASqC,EAAYrC,EAAIkC,EAAkBxB,EAAO,GAAIuB,EAAS,WAAc,GACzE,IAAIc,GAAkB,EACtB,MAAMpP,EAAQ,IAAIqP,MAAMf,EAAQ,CAC5B,GAAArU,CAAIqV,EAAShC,GAET,GADAqB,EAAqBS,GACjB9B,IAASnC,EACT,MAAO,MAXvB,SAAyBnL,GACjBiP,GACAA,EAAgBM,WAAWvP,EAEnC,CAQoBwP,CAAgBxP,GAChB6O,EAAgBxC,GAChBkC,EAAiBkB,QACjBL,GAAkB,GAG1B,GAAa,SAAT9B,EAAiB,CACjB,GAAoB,IAAhBP,EAAKhS,OACL,MAAO,CAAE2S,KAAM,IAAM1N,GAEzB,MAAM3F,EAAIyU,EAAuBzC,EAAIkC,EAAkB,CACnDlJ,KAAM,MACN0H,KAAMA,EAAKE,IAAK3S,GAAMA,EAAEgH,cACzBoM,KAAKR,GACR,OAAO7S,EAAEqT,KAAKxT,KAAKG,EACvB,CACA,OAAOqU,EAAYrC,EAAIkC,EAAkB,IAAIxB,EAAMO,GACvD,EACA,GAAAlH,CAAIkJ,EAAShC,EAAMC,GACfoB,EAAqBS,GAGrB,MAAOpU,EAAO4S,GAAiBC,EAAYN,GAC3C,OAAOuB,EAAuBzC,EAAIkC,EAAkB,CAChDlJ,KAAM,MACN0H,KAAM,IAAIA,EAAMO,GAAML,IAAK3S,GAAMA,EAAEgH,YACnCtG,SACD4S,GAAeF,KAAKR,EAC3B,EACA,KAAAjS,CAAMqU,EAASI,EAAUC,GACrBhB,EAAqBS,GACrB,MAAMQ,EAAO7C,EAAKA,EAAKhS,OAAS,GAChC,GAAI6U,IAASrO,EACT,OAAOuN,EAAuBzC,EAAIkC,EAAkB,CAChDlJ,KAAM,aACPqI,KAAKR,GAGZ,GAAa,SAAT0C,EACA,OAAOlB,EAAYrC,EAAIkC,EAAkBxB,EAAK5J,MAAM,GAAI,IAE5D,MAAO6J,EAAcY,GAAiBiC,EAAiBF,GACvD,OAAOb,EAAuBzC,EAAIkC,EAAkB,CAChDlJ,KAAM,QACN0H,KAAMA,EAAKE,IAAK3S,GAAMA,EAAEgH,YACxB0L,gBACDY,GAAeF,KAAKR,EAC3B,EACA,SAAA4C,CAAUR,EAASK,GACfhB,EAAqBS,GACrB,MAAOpC,EAAcY,GAAiBiC,EAAiBF,GACvD,OAAOb,EAAuBzC,EAAIkC,EAAkB,CAChDlJ,KAAM,YACN0H,KAAMA,EAAKE,IAAK3S,GAAMA,EAAEgH,YACxB0L,gBACDY,GAAeF,KAAKR,EAC3B,IAGJ,OA9EJ,SAAuBlN,EAAOqM,GAC1B,MAAM8C,GAAYJ,EAAa9U,IAAIoS,IAAO,GAAK,EAC/C0C,EAAa3I,IAAIiG,EAAI8C,GACjBF,GACAA,EAAgBc,SAAS/P,EAAOqM,EAAIrM,EAE5C,CAuEIgQ,CAAchQ,EAAOqM,GACdrM,CACX,CAIA,SAAS6P,EAAiB7C,GACtB,MAAMiD,EAAYjD,EAAaC,IAAIY,GACnC,MAAO,CAACoC,EAAUhD,IAAKiD,GAAMA,EAAE,KALnBC,EAK+BF,EAAUhD,IAAKiD,GAAMA,EAAE,IAJ3DE,MAAMC,UAAUhJ,OAAOpM,MAAM,GAAIkV,KAD5C,IAAgBA,CAMhB,CACA,MAAMG,EAAgB,IAAItB,QAC1B,SAASxP,EAASoM,EAAK2E,GAEnB,OADAD,EAAclK,IAAIwF,EAAK2E,GAChB3E,CACX,CAWA,SAASiC,EAAY7S,GACjB,IAAK,MAAOkR,EAAMsE,KAAYhF,EAC1B,GAAIgF,EAAQ9E,UAAU1Q,GAAQ,CAC1B,MAAOyV,EAAiB7C,GAAiB4C,EAAQ7E,UAAU3Q,GAC3D,MAAO,CACH,CACIqK,KAAM,UACN6G,OACAlR,MAAOyV,GAEX7C,EAER,CAEJ,MAAO,CACH,CACIvI,KAAM,MACNrK,SAEJsV,EAAcrW,IAAIe,IAAU,GAEpC,CACA,SAASkS,EAAclS,GACnB,OAAQA,EAAMqK,MACV,IAAK,UACD,OAAOmG,EAAiBvR,IAAIe,EAAMkR,MAAMJ,YAAY9Q,EAAMA,OAC9D,IAAK,MACD,OAAOA,EAAMA,MAEzB,CACA,SAAS8T,EAAuBzC,EAAIkC,EAAkB9K,EAAK8M,GACvD,OAAO,IAAI/C,QAASlI,IAChB,MAAMd,EASH,IAAI4L,MAAM,GACZM,KAAK,GACLzD,IAAI,IAAM0D,KAAKC,MAAMD,KAAKE,SAAWC,OAAOC,kBAAkBzP,SAAS,KACvE0P,KAAK,KAXNzC,EAAiBnI,IAAI5B,EAAIc,GACrB+G,EAAGN,OACHM,EAAGN,QAEPM,EAAGzN,YAAYhE,OAAOwR,OAAO,CAAE5H,MAAMf,GAAM8M,IAEnD,C","sources":["webpack://@basthon/browser-bundle/../../node_modules/@babel/runtime/helpers/esm/get.js","webpack://@basthon/browser-bundle/../../node_modules/@babel/runtime/helpers/esm/superPropBase.js","webpack://@basthon/browser-bundle/../kernel-base/lib/worker/kernel-main.js","webpack://@basthon/browser-bundle/../../node_modules/comlink/dist/esm/comlink.mjs"],"sourcesContent":["import superPropBase from \"./superPropBase.js\";\nfunction _get() {\n return _get = \"undefined\" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) {\n var p = superPropBase(e, t);\n if (p) {\n var n = Object.getOwnPropertyDescriptor(p, t);\n return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value;\n }\n }, _get.apply(null, arguments);\n}\nexport { _get as default };","import getPrototypeOf from \"./getPrototypeOf.js\";\nfunction _superPropBase(t, o) {\n for (; !{}.hasOwnProperty.call(t, o) && null !== (t = getPrototypeOf(t)););\n return t;\n}\nexport { _superPropBase as default };","import { wrap, createEndpoint, transfer } from \"comlink\";\nimport { NotImplementedError, mockWorker, mockHTMLImageSrc } from \"../commons\";\nimport { KernelBase } from \"../kernel\";\nimport { PromiseDelegate } from \"promise-delegate\";\n// mock Worker to support sandboxing and keep webpack compatibility\nmockWorker();\n// mock HTMLImageElement.src to support localfs access\nmockHTMLImageSrc();\nexport class KernelMainBase extends KernelBase {\n constructor(options) {\n super(options);\n // synchronise comlink and communication channels\n this._channelSyncer = new PromiseDelegate();\n this._encrypt = (s) => s;\n this._conversionCanvas = document.createElement(\"canvas\");\n this._legacy = options?.legacy === true;\n // synchronous wait on SAB cannot be used in a legacy context\n // (atomic wait will block the main thread)\n if (!this.isLegacy()) {\n if (globalThis.crossOriginIsolated)\n this._sab = new SharedArrayBuffer(1024);\n else\n this._fallbackKey = globalThis.crypto.randomUUID();\n }\n // get ephemeral API URL or fallback to default\n this._ephemeralAPI =\n options?.ephemeralAPI ?? \"https://api.basthon.fr/ephemeral\";\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 * Is synchrnous communication with worker available?\n * (through SharedArrayBuffer atomic waits)\n */\n syncCommSupport() {\n return this._sab != null;\n }\n /**\n * Is this kernel safe? (loaded in an isolated web worker)\n */\n safeKernel() {\n return !this.isLegacy();\n }\n /**\n * Get a new worker (should be overloaded).\n */\n newWorker() {\n throw new NotImplementedError(\"newWorker\");\n }\n /**\n * Import the code for a legacy worker (running in the main thread).\n */\n async importLegacyWorker() {\n throw new NotImplementedError(\"importLegacyWorker\");\n }\n /**\n * Create the kernel webworker and setup communication.\n */\n async setupWorker() {\n const comlinkChannel = new MessageChannel();\n if (this.isLegacy()) {\n // running in main thread via message channel (fake worker)\n //@ts-ignore\n self._commPort = comlinkChannel.port1;\n // this global variable will be removed by worker\n self._assetsURL = this.assetsURL(true);\n await this.importLegacyWorker();\n }\n else {\n // setup the kernel worker\n const worker = this.newWorker();\n // send communication port\n worker.postMessage(comlinkChannel.port1, [comlinkChannel.port1]);\n this._worker = worker;\n }\n const KernelWorker = wrap(comlinkChannel.port2);\n // why typescript complains about this call? yet, this is advertised in\n // https://github.com/GoogleChromeLabs/comlink/blob/dffe9050f63b1b39f30213adeb1dd4b9ed7d2594/docs/examples/03-classes-example/index.html#L15\n //@ts-ignore\n this._remote = await new KernelWorker(this._options);\n // setup the communication channel\n const { port1, port2 } = new MessageChannel();\n port2.onmessage = (e) => this.processWorkerMessage(e.data);\n this.postMessageToWorker = port2.postMessage.bind(port2);\n await this.remote?.setCommPort(transfer(port1, [port1]));\n // WARNING: without the setCommPort call, KernelWorker (proxy)\n // is garbage collected and comlink releases the proxy,\n // breaking all the communications... (don't know really why)\n // If you experience this, just keep a ref on the proxy with e.g.\n // this.PROXY = KernelWorker\n }\n /**\n * Start the worker.\n */\n async _start() {\n await super._start();\n // kernel restart in legacy mode is lazy, not a full restart\n if (this.isLegacy() && this.remote != null) {\n await this.remote?.legacyStart();\n return;\n }\n // setup the proxy worker\n const proxyWorker = new Worker(new URL(\"./comlink-proxy.js\", import.meta.url));\n const proxy = wrap(proxyWorker);\n // setup the kernel worker\n await this.setupWorker();\n // always set... but not always useful\n await this.remote?.setEphemeralAPI(this._ephemeralAPI);\n if (this.syncCommSupport()) {\n console.log(\"Using SharedArrayBuffer for synchronous worker communication.\");\n await this._remote?.setSAB(this._sab);\n }\n else if (this._fallbackKey != null) {\n console.warn(\"SharedArrayBuffer not available, falling back to \" +\n \"using third-party server for synchronous worker communication.\");\n const pass = globalThis.crypto.randomUUID();\n await this.remote?.setFallbackKeyAndPass(this._fallbackKey, pass);\n const AES = await import(\"crypto-js/aes\");\n this._encrypt = (message) => AES.encrypt(message, pass).toString();\n }\n // bind ports\n const port = await proxy[createEndpoint]();\n await this.remote?.setProxyPort(transfer(port, [port]));\n // init remote\n await this.remote?.init();\n }\n /**\n * Comlink remote getter.\n */\n get remote() {\n return this._remote;\n }\n /**\n * Stop the worker.\n */\n async _stop() {\n if (this.isLegacy()) {\n await this.remote?.legacyStop();\n }\n else {\n this._worker?.terminate();\n this._worker = undefined;\n this._remote = undefined;\n }\n await super._stop();\n }\n /**\n * Convert a canvas array buffer to a PNG data URL (base64 encoded).\n */\n async canvasArrayToPNGDataURL(width, height, buffer) {\n const canvas = this._conversionCanvas;\n canvas.width = width;\n canvas.height = height;\n const ctx = canvas.getContext(\"2d\");\n if (ctx === null)\n return;\n const imageData = new ImageData(new Uint8ClampedArray(buffer), width, height);\n ctx.putImageData(imageData, 0, 0);\n const dataURL = canvas.toDataURL(\"image/png\");\n canvas.width = 0;\n canvas.height = 0;\n const pngPrefix = \"data:image/png;base64,\";\n if (dataURL.startsWith(pngPrefix))\n return dataURL.slice(pngPrefix.length);\n }\n /**\n * Process messages from worker (if any).\n */\n async processWorkerMessage(msg) {\n switch (msg.type) {\n case \"eval-end\":\n this._channelSyncer.resolve();\n this._channelSyncer = new PromiseDelegate();\n break;\n case \"stream\":\n const { stream, text } = msg.content;\n const dataEvent = this.clone(msg.data);\n dataEvent.stream = stream;\n dataEvent.content = text;\n this.dispatchEvent(\"eval.output\", dataEvent);\n break;\n case \"download\":\n const { content, filename } = msg.content;\n this.download(content, filename);\n break;\n case \"display\":\n if (msg.data?.display_type === \"dom-node\") {\n // we should be in legacy mode here\n if (!this.isLegacy())\n throw new Error(\"internal error\");\n const id = msg.data?.content;\n //@ts-ignore\n msg.data.content = await self.basthon?.popDOMNode(id);\n }\n else if (msg.data?.display_type === \"canvas\") {\n const { width, height, buffer } = msg.data.content;\n const png = await this.canvasArrayToPNGDataURL(width, height, buffer);\n if (png == null)\n return;\n msg.data.display_type = \"multiple\";\n msg.data.content = { \"image/png\": png };\n }\n this.dispatchEvent(\"eval.display\", msg.data);\n break;\n case \"clear_output\":\n this.dispatchEvent(\"eval.clear-output\", msg.data);\n break;\n case \"input\":\n const { prompt, password, data } = msg.content;\n const res = (await this.inputAsync(prompt, password, data));\n if (msg.content.toplevel === true) {\n this.postMessageToWorker({\n type: \"toplevel-input\",\n content: res,\n data,\n });\n }\n else if (this.syncCommSupport()) {\n const encodedRes = new TextEncoder().encode(res);\n new Uint8Array(this._sab).set(encodedRes.subarray(0, this._sab.byteLength));\n Atomics.notify(new Int32Array(this._sab), 0, 1);\n }\n else {\n const response = await fetch(this._ephemeralAPI, {\n method: \"POST\",\n headers: {\n \"X-API-Referer\": self.location.href,\n },\n body: JSON.stringify({\n action: \"post\",\n key: this._fallbackKey,\n payload: this._encrypt(res),\n }),\n });\n if (!response.ok)\n throw new Error(`Basthon's network API error: ${response.status}`);\n }\n break;\n case \"log-validation\":\n this.dispatchEvent(\"validation.log\", msg.content);\n break;\n case \"breakpoint-move-on\":\n //@ts-ignore\n const notebook = Jupyter?.notebook;\n const cell_id = msg.content.data?.parent_msg?.content?.cell_id;\n notebook?.next_breakpoint_cell?.(cell_id);\n break;\n default: // ignoring (probably a comlink message)\n }\n }\n async evalAsync(code, outCallback, errCallback, data = null) {\n // force interactivity in all modes\n data.interactive = true;\n this._execution_count++;\n // to be sure we do not miss communications\n const syncChannels = this._channelSyncer.promise;\n // evaluation\n const execResult = (await this.remote?.eval(data, code));\n // wait for all communications to end\n await syncChannels;\n // return result\n let result;\n switch (execResult?.status) {\n case \"ok\":\n result = execResult.result;\n break;\n case \"error\":\n break;\n }\n return [result, this._execution_count];\n }\n /**\n * Put a file on the local (emulated) filesystem.\n */\n async putFile(filename, content) {\n await super.putFile(filename, content);\n await this.remote?.putFile(filename, content);\n }\n /**\n * Put an importable module on the local (emulated) filesystem\n * and load dependencies.\n */\n async putModule(filename, content) {\n await super.putModule(filename, content);\n await this.remote?.putModule(filename, content);\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 return (await this.remote?.complete(code)) ?? [];\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 return (await this.remote?.more(code)) ?? false;\n }\n}\n","// pollyfill\nif (self.globalThis == null) self.globalThis = self;\n\n// pollyfill\nif (self.globalThis == null) self.globalThis = self;\n\n// pollyfill\nif (self.globalThis == null) self.globalThis = self;\n\n// pollyfill\nif (self.globalThis == null) self.globalThis = self;\n\n// pollyfill\nif (self.globalThis == null) self.globalThis = self;\n\n// pollyfill\nif (self.globalThis == null) self.globalThis = self;\n\n// pollyfill\nif (self.globalThis == null) self.globalThis = self;\n\n/**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nconst proxyMarker = Symbol(\"Comlink.proxy\");\nconst createEndpoint = Symbol(\"Comlink.endpoint\");\nconst releaseProxy = Symbol(\"Comlink.releaseProxy\");\nconst finalizer = Symbol(\"Comlink.finalizer\");\nconst throwMarker = Symbol(\"Comlink.thrown\");\nconst isObject = (val) => (typeof val === \"object\" && val !== null) || typeof val === \"function\";\n/**\n * Internal transfer handle to handle objects marked to proxy.\n */\nconst proxyTransferHandler = {\n canHandle: (val) => isObject(val) && val[proxyMarker],\n serialize(obj) {\n const { port1, port2 } = new MessageChannel();\n expose(obj, port1);\n return [port2, [port2]];\n },\n deserialize(port) {\n port.start();\n return wrap(port);\n },\n};\n/**\n * Internal transfer handler to handle thrown exceptions.\n */\nconst throwTransferHandler = {\n canHandle: (value) => isObject(value) && throwMarker in value,\n serialize({ value }) {\n let serialized;\n if (value instanceof Error) {\n serialized = {\n isError: true,\n value: {\n message: value.message,\n name: value.name,\n stack: value.stack,\n },\n };\n }\n else {\n serialized = { isError: false, value };\n }\n return [serialized, []];\n },\n deserialize(serialized) {\n if (serialized.isError) {\n throw Object.assign(new Error(serialized.value.message), serialized.value);\n }\n throw serialized.value;\n },\n};\n/**\n * Allows customizing the serialization of certain values.\n */\nconst transferHandlers = new Map([\n [\"proxy\", proxyTransferHandler],\n [\"throw\", throwTransferHandler],\n]);\nfunction isAllowedOrigin(allowedOrigins, origin) {\n for (const allowedOrigin of allowedOrigins) {\n if (origin === allowedOrigin || allowedOrigin === \"*\") {\n return true;\n }\n if (allowedOrigin instanceof RegExp && allowedOrigin.test(origin)) {\n return true;\n }\n }\n return false;\n}\nfunction expose(obj, ep = globalThis, allowedOrigins = [\"*\"]) {\n ep.addEventListener(\"message\", function callback(ev) {\n if (!ev || !ev.data) {\n return;\n }\n if (!isAllowedOrigin(allowedOrigins, ev.origin)) {\n console.warn(`Invalid origin '${ev.origin}' for comlink proxy`);\n return;\n }\n const { id, type, path } = Object.assign({ path: [] }, ev.data);\n const argumentList = (ev.data.argumentList || []).map(fromWireValue);\n let returnValue;\n try {\n const parent = path.slice(0, -1).reduce((obj, prop) => obj[prop], obj);\n const rawValue = path.reduce((obj, prop) => obj[prop], obj);\n switch (type) {\n case \"GET\" /* MessageType.GET */:\n {\n returnValue = rawValue;\n }\n break;\n case \"SET\" /* MessageType.SET */:\n {\n parent[path.slice(-1)[0]] = fromWireValue(ev.data.value);\n returnValue = true;\n }\n break;\n case \"APPLY\" /* MessageType.APPLY */:\n {\n returnValue = rawValue.apply(parent, argumentList);\n }\n break;\n case \"CONSTRUCT\" /* MessageType.CONSTRUCT */:\n {\n const value = new rawValue(...argumentList);\n returnValue = proxy(value);\n }\n break;\n case \"ENDPOINT\" /* MessageType.ENDPOINT */:\n {\n const { port1, port2 } = new MessageChannel();\n expose(obj, port2);\n returnValue = transfer(port1, [port1]);\n }\n break;\n case \"RELEASE\" /* MessageType.RELEASE */:\n {\n returnValue = undefined;\n }\n break;\n default:\n return;\n }\n }\n catch (value) {\n returnValue = { value, [throwMarker]: 0 };\n }\n Promise.resolve(returnValue)\n .catch((value) => {\n return { value, [throwMarker]: 0 };\n })\n .then((returnValue) => {\n const [wireValue, transferables] = toWireValue(returnValue);\n ep.postMessage(Object.assign(Object.assign({}, wireValue), { id }), transferables);\n if (type === \"RELEASE\" /* MessageType.RELEASE */) {\n // detach and deactive after sending release response above.\n ep.removeEventListener(\"message\", callback);\n closeEndPoint(ep);\n if (finalizer in obj && typeof obj[finalizer] === \"function\") {\n obj[finalizer]();\n }\n }\n })\n .catch((error) => {\n // Send Serialization Error To Caller\n const [wireValue, transferables] = toWireValue({\n value: new TypeError(\"Unserializable return value\"),\n [throwMarker]: 0,\n });\n ep.postMessage(Object.assign(Object.assign({}, wireValue), { id }), transferables);\n });\n });\n if (ep.start) {\n ep.start();\n }\n}\nfunction isMessagePort(endpoint) {\n return endpoint.constructor.name === \"MessagePort\";\n}\nfunction closeEndPoint(endpoint) {\n if (isMessagePort(endpoint))\n endpoint.close();\n}\nfunction wrap(ep, target) {\n const pendingListeners = new Map();\n ep.addEventListener(\"message\", function handleMessage(ev) {\n const { data } = ev;\n if (!data || !data.id) {\n return;\n }\n const resolver = pendingListeners.get(data.id);\n if (!resolver) {\n return;\n }\n try {\n resolver(data);\n }\n finally {\n pendingListeners.delete(data.id);\n }\n });\n return createProxy(ep, pendingListeners, [], target);\n}\nfunction throwIfProxyReleased(isReleased) {\n if (isReleased) {\n throw new Error(\"Proxy has been released and is not useable\");\n }\n}\nfunction releaseEndpoint(ep) {\n return requestResponseMessage(ep, new Map(), {\n type: \"RELEASE\" /* MessageType.RELEASE */,\n }).then(() => {\n closeEndPoint(ep);\n });\n}\nconst proxyCounter = new WeakMap();\nconst proxyFinalizers = \"FinalizationRegistry\" in globalThis &&\n new FinalizationRegistry((ep) => {\n const newCount = (proxyCounter.get(ep) || 0) - 1;\n proxyCounter.set(ep, newCount);\n if (newCount === 0) {\n releaseEndpoint(ep);\n }\n });\nfunction registerProxy(proxy, ep) {\n const newCount = (proxyCounter.get(ep) || 0) + 1;\n proxyCounter.set(ep, newCount);\n if (proxyFinalizers) {\n proxyFinalizers.register(proxy, ep, proxy);\n }\n}\nfunction unregisterProxy(proxy) {\n if (proxyFinalizers) {\n proxyFinalizers.unregister(proxy);\n }\n}\nfunction createProxy(ep, pendingListeners, path = [], target = function () { }) {\n let isProxyReleased = false;\n const proxy = new Proxy(target, {\n get(_target, prop) {\n throwIfProxyReleased(isProxyReleased);\n if (prop === releaseProxy) {\n return () => {\n unregisterProxy(proxy);\n releaseEndpoint(ep);\n pendingListeners.clear();\n isProxyReleased = true;\n };\n }\n if (prop === \"then\") {\n if (path.length === 0) {\n return { then: () => proxy };\n }\n const r = requestResponseMessage(ep, pendingListeners, {\n type: \"GET\" /* MessageType.GET */,\n path: path.map((p) => p.toString()),\n }).then(fromWireValue);\n return r.then.bind(r);\n }\n return createProxy(ep, pendingListeners, [...path, prop]);\n },\n set(_target, prop, rawValue) {\n throwIfProxyReleased(isProxyReleased);\n // FIXME: ES6 Proxy Handler `set` methods are supposed to return a\n // boolean. To show good will, we return true asynchronously ¯\\_(ツ)_/¯\n const [value, transferables] = toWireValue(rawValue);\n return requestResponseMessage(ep, pendingListeners, {\n type: \"SET\" /* MessageType.SET */,\n path: [...path, prop].map((p) => p.toString()),\n value,\n }, transferables).then(fromWireValue);\n },\n apply(_target, _thisArg, rawArgumentList) {\n throwIfProxyReleased(isProxyReleased);\n const last = path[path.length - 1];\n if (last === createEndpoint) {\n return requestResponseMessage(ep, pendingListeners, {\n type: \"ENDPOINT\" /* MessageType.ENDPOINT */,\n }).then(fromWireValue);\n }\n // We just pretend that `bind()` didn’t happen.\n if (last === \"bind\") {\n return createProxy(ep, pendingListeners, path.slice(0, -1));\n }\n const [argumentList, transferables] = processArguments(rawArgumentList);\n return requestResponseMessage(ep, pendingListeners, {\n type: \"APPLY\" /* MessageType.APPLY */,\n path: path.map((p) => p.toString()),\n argumentList,\n }, transferables).then(fromWireValue);\n },\n construct(_target, rawArgumentList) {\n throwIfProxyReleased(isProxyReleased);\n const [argumentList, transferables] = processArguments(rawArgumentList);\n return requestResponseMessage(ep, pendingListeners, {\n type: \"CONSTRUCT\" /* MessageType.CONSTRUCT */,\n path: path.map((p) => p.toString()),\n argumentList,\n }, transferables).then(fromWireValue);\n },\n });\n registerProxy(proxy, ep);\n return proxy;\n}\nfunction myFlat(arr) {\n return Array.prototype.concat.apply([], arr);\n}\nfunction processArguments(argumentList) {\n const processed = argumentList.map(toWireValue);\n return [processed.map((v) => v[0]), myFlat(processed.map((v) => v[1]))];\n}\nconst transferCache = new WeakMap();\nfunction transfer(obj, transfers) {\n transferCache.set(obj, transfers);\n return obj;\n}\nfunction proxy(obj) {\n return Object.assign(obj, { [proxyMarker]: true });\n}\nfunction windowEndpoint(w, context = globalThis, targetOrigin = \"*\") {\n return {\n postMessage: (msg, transferables) => w.postMessage(msg, targetOrigin, transferables),\n addEventListener: context.addEventListener.bind(context),\n removeEventListener: context.removeEventListener.bind(context),\n };\n}\nfunction toWireValue(value) {\n for (const [name, handler] of transferHandlers) {\n if (handler.canHandle(value)) {\n const [serializedValue, transferables] = handler.serialize(value);\n return [\n {\n type: \"HANDLER\" /* WireValueType.HANDLER */,\n name,\n value: serializedValue,\n },\n transferables,\n ];\n }\n }\n return [\n {\n type: \"RAW\" /* WireValueType.RAW */,\n value,\n },\n transferCache.get(value) || [],\n ];\n}\nfunction fromWireValue(value) {\n switch (value.type) {\n case \"HANDLER\" /* WireValueType.HANDLER */:\n return transferHandlers.get(value.name).deserialize(value.value);\n case \"RAW\" /* WireValueType.RAW */:\n return value.value;\n }\n}\nfunction requestResponseMessage(ep, pendingListeners, msg, transfers) {\n return new Promise((resolve) => {\n const id = generateUUID();\n pendingListeners.set(id, resolve);\n if (ep.start) {\n ep.start();\n }\n ep.postMessage(Object.assign({ id }, msg), transfers);\n });\n}\nfunction generateUUID() {\n return new Array(4)\n .fill(0)\n .map(() => Math.floor(Math.random() * Number.MAX_SAFE_INTEGER).toString(16))\n .join(\"-\");\n}\n\nexport { createEndpoint, expose, finalizer, proxy, proxyMarker, releaseProxy, transfer, transferHandlers, windowEndpoint, wrap };\n//# sourceMappingURL=comlink.mjs.map\n"],"names":["_get","Reflect","get","bind","e","t","r","p","o","hasOwnProperty","call","getPrototypeOf","n","Object","getOwnPropertyDescriptor","arguments","length","value","apply","mockWorker","mockHTMLImageSrc","KernelMainBase","_KernelBase","options","_options$ephemeralAPI","_this","_classCallCheck","_channelSyncer","PromiseDelegate","_encrypt","s","_conversionCanvas","document","createElement","_legacy","legacy","isLegacy","globalThis","crossOriginIsolated","_sab","SharedArrayBuffer","_fallbackKey","crypto","randomUUID","_ephemeralAPI","ephemeralAPI","_inherits","_createClass","key","this","NotImplementedError","_importLegacyWorker","_asyncToGenerator","_regeneratorRuntime","_callee","_context","prev","next","stop","_setupWorker","_callee2","_this$remote","comlinkChannel","worker","KernelWorker","_MessageChannel","port1","port2","_this2","_context2","MessageChannel","self","_commPort","_assetsURL","assetsURL","importLegacyWorker","newWorker","postMessage","_worker","wrap","_options","_remote","sent","onmessage","processWorkerMessage","data","postMessageToWorker","remote","setCommPort","transfer","_start2","_callee3","_this$remote3","_this$remote5","_this$remote6","_this$remote2","proxyWorker","proxy","_this$_remote","_this$remote4","pass","AES","port","_context3","_superPropGet","legacyStart","abrupt","Worker","URL","setupWorker","setEphemeralAPI","syncCommSupport","console","log","setSAB","warn","setFallbackKeyAndPass","message","encrypt","toString","createEndpoint","setProxyPort","init","_stop2","_callee4","_this$remote7","_this$_worker","_context4","legacyStop","terminate","undefined","_canvasArrayToPNGDataURL","_callee5","width","height","buffer","canvas","ctx","imageData","dataURL","pngPrefix","_context5","getContext","ImageData","Uint8ClampedArray","putImageData","toDataURL","startsWith","slice","_x","_x2","_x3","_processWorkerMessage","_callee6","msg","_msg$data","_msg$data3","_Jupyter","_msg$content$data","_notebook$next_breakp","_msg$content","stream","text","dataEvent","_msg$content2","content","filename","_msg$data2","_self$basthon","id","_msg$data$content","png","_msg$content3","prompt","password","res","encodedRes","response","notebook","cell_id","_t","_context6","type","resolve","clone","dispatchEvent","download","display_type","Error","basthon","popDOMNode","canvasArrayToPNGDataURL","inputAsync","toplevel","TextEncoder","encode","Uint8Array","set","subarray","byteLength","Atomics","notify","Int32Array","fetch","method","headers","location","href","body","JSON","stringify","action","payload","ok","concat","status","Jupyter","parent_msg","next_breakpoint_cell","_x4","_evalAsync","_callee7","code","outCallback","errCallback","_this$remote8","syncChannels","execResult","result","_t2","_args7","_context7","interactive","_execution_count","promise","eval","_x5","_x6","_x7","_putFile","_callee8","_this$remote9","_context8","putFile","_x8","_x9","_putModule","_callee9","_this$remote0","_context9","putModule","_x0","_x1","_complete","_callee0","_yield$this$remote$co","_this$remote1","_t3","_t4","_t5","_context0","complete","_x10","_more","_callee1","_yield$this$remote$mo","_this$remote10","_t6","_t7","_t8","_context1","more","_x11","KernelBase","proxyMarker","Symbol","releaseProxy","finalizer","throwMarker","isObject","val","transferHandlers","Map","canHandle","serialize","obj","expose","deserialize","start","serialized","isError","name","stack","assign","ep","allowedOrigins","addEventListener","callback","ev","origin","allowedOrigin","RegExp","test","isAllowedOrigin","path","argumentList","map","fromWireValue","returnValue","parent","reduce","prop","rawValue","Promise","catch","then","wireValue","transferables","toWireValue","removeEventListener","closeEndPoint","error","TypeError","endpoint","constructor","isMessagePort","close","target","pendingListeners","resolver","delete","createProxy","throwIfProxyReleased","isReleased","releaseEndpoint","requestResponseMessage","proxyCounter","WeakMap","proxyFinalizers","FinalizationRegistry","newCount","isProxyReleased","Proxy","_target","unregister","unregisterProxy","clear","_thisArg","rawArgumentList","last","processArguments","construct","register","registerProxy","processed","v","arr","Array","prototype","transferCache","transfers","handler","serializedValue","fill","Math","floor","random","Number","MAX_SAFE_INTEGER","join"],"sourceRoot":""}
@@ -1 +1 @@
1
- {"version":3,"file":"kernel-base_lib_worker_kernel-main_js.js","mappings":"oPAKAA,EAAAA,EAAAA,MAEAC,EAAAA,EAAAA,K","sources":["webpack://@basthon/browser-bundle/../kernel-base/lib/worker/kernel-main.js"],"sourcesContent":["import { wrap, createEndpoint, transfer } from \"comlink\";\nimport { NotImplementedError, mockWorker, mockHTMLImageSrc } from \"../commons\";\nimport { KernelBase } from \"../kernel\";\nimport { PromiseDelegate } from \"promise-delegate\";\n// mock Worker to support sandboxing and keep webpack compatibility\nmockWorker();\n// mock HTMLImageElement.src to support localfs access\nmockHTMLImageSrc();\nexport class KernelMainBase extends KernelBase {\n constructor(options) {\n super(options);\n // synchronise comlink and communication channels\n this._channelSyncer = new PromiseDelegate();\n this._encrypt = (s) => s;\n this._legacy = options?.legacy === true;\n // synchronous wait on SAB cannot be used in a legacy context\n // (atomic wait will block the main thread)\n if (!this.isLegacy()) {\n if (globalThis.crossOriginIsolated)\n this._sab = new SharedArrayBuffer(1024);\n else\n this._fallbackKey = globalThis.crypto.randomUUID();\n }\n // get ephemeral API URL or fallback to default\n this._ephemeralAPI =\n options?.ephemeralAPI ?? \"https://api.basthon.fr/ephemeral\";\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 * Is synchrnous communication with worker available?\n * (through SharedArrayBuffer atomic waits)\n */\n syncCommSupport() {\n return this._sab != null;\n }\n /**\n * Is this kernel safe? (loaded in an isolated web worker)\n */\n safeKernel() {\n return !this.isLegacy();\n }\n /**\n * Get a new worker (should be overloaded).\n */\n newWorker() {\n throw new NotImplementedError(\"newWorker\");\n }\n /**\n * Import the code for a legacy worker (running in the main thread).\n */\n async importLegacyWorker() {\n throw new NotImplementedError(\"importLegacyWorker\");\n }\n /**\n * Create the kernel webworker and setup communication.\n */\n async setupWorker() {\n const comlinkChannel = new MessageChannel();\n if (this.isLegacy()) {\n // running in main thread via message channel (fake worker)\n //@ts-ignore\n self._commPort = comlinkChannel.port1;\n // this global variable will be removed by worker\n self._assetsURL = this.assetsURL(true);\n await this.importLegacyWorker();\n }\n else {\n // setup the kernel worker\n const worker = this.newWorker();\n // send communication port\n worker.postMessage(comlinkChannel.port1, [comlinkChannel.port1]);\n this._worker = worker;\n }\n const KernelWorker = wrap(comlinkChannel.port2);\n // why typescript complains about this call? yet, this is advertised in\n // https://github.com/GoogleChromeLabs/comlink/blob/dffe9050f63b1b39f30213adeb1dd4b9ed7d2594/docs/examples/03-classes-example/index.html#L15\n //@ts-ignore\n this._remote = await new KernelWorker(this._options);\n // setup the communication channel\n const { port1, port2 } = new MessageChannel();\n port2.onmessage = (e) => this.processWorkerMessage(e.data);\n this.postMessageToWorker = port2.postMessage.bind(port2);\n await this.remote?.setCommPort(transfer(port1, [port1]));\n // WARNING: without the setCommPort call, KernelWorker (proxy)\n // is garbage collected and comlink releases the proxy,\n // breaking all the communications... (don't know really why)\n // If you experience this, just keep a ref on the proxy with e.g.\n // this.PROXY = KernelWorker\n }\n /**\n * Start the worker.\n */\n async _start() {\n await super._start();\n // kernel restart in legacy mode is lazy, not a full restart\n if (this.isLegacy() && this.remote != null) {\n await this.remote?.legacyStart();\n return;\n }\n // setup the proxy worker\n const proxyWorker = new Worker(new URL(\"./comlink-proxy.js\", import.meta.url));\n const proxy = wrap(proxyWorker);\n // setup the kernel worker\n await this.setupWorker();\n // always set... but not always useful\n await this.remote?.setEphemeralAPI(this._ephemeralAPI);\n if (this.syncCommSupport()) {\n console.log(\"Using SharedArrayBuffer for synchronous worker communication.\");\n await this._remote?.setSAB(this._sab);\n }\n else if (this._fallbackKey != null) {\n console.warn(\"SharedArrayBuffer not available, falling back to \" +\n \"using third-party server for synchronous worker communication.\");\n const pass = globalThis.crypto.randomUUID();\n await this.remote?.setFallbackKeyAndPass(this._fallbackKey, pass);\n const AES = await import(\"crypto-js/aes\");\n this._encrypt = (message) => AES.encrypt(message, pass).toString();\n }\n // bind ports\n const port = await proxy[createEndpoint]();\n await this.remote?.setProxyPort(transfer(port, [port]));\n // init remote\n await this.remote?.init();\n }\n /**\n * Comlink remote getter.\n */\n get remote() {\n return this._remote;\n }\n /**\n * Stop the worker.\n */\n async _stop() {\n if (this.isLegacy()) {\n await this.remote?.legacyStop();\n }\n else {\n this._worker?.terminate();\n this._worker = undefined;\n this._remote = undefined;\n }\n await super._stop();\n }\n /**\n * Process messages from worker (if any).\n */\n async processWorkerMessage(msg) {\n switch (msg.type) {\n case \"eval-end\":\n this._channelSyncer.resolve();\n this._channelSyncer = new PromiseDelegate();\n break;\n case \"stream\":\n const { stream, text } = msg.content;\n const dataEvent = this.clone(msg.data);\n dataEvent.stream = stream;\n dataEvent.content = text;\n this.dispatchEvent(\"eval.output\", dataEvent);\n break;\n case \"download\":\n const { content, filename } = msg.content;\n this.download(content, filename);\n break;\n case \"display\":\n if (msg.data?.display_type === \"dom-node\") {\n // we should be in legacy mode here\n if (!this.isLegacy())\n throw new Error(\"internal error\");\n const id = msg.data?.content;\n //@ts-ignore\n msg.data.content = await self.basthon?.popDOMNode(id);\n }\n this.dispatchEvent(\"eval.display\", msg.data);\n break;\n case \"clear_output\":\n this.dispatchEvent(\"eval.clear-output\", msg.data);\n break;\n case \"input\":\n const { prompt, password, data } = msg.content;\n const res = (await this.inputAsync(prompt, password, data));\n if (msg.content.toplevel === true) {\n this.postMessageToWorker({\n type: \"toplevel-input\",\n content: res,\n data,\n });\n }\n else if (this.syncCommSupport()) {\n const encodedRes = new TextEncoder().encode(res);\n new Uint8Array(this._sab).set(encodedRes.subarray(0, this._sab.byteLength));\n Atomics.notify(new Int32Array(this._sab), 0, 1);\n }\n else {\n const response = await fetch(this._ephemeralAPI, {\n method: \"POST\",\n headers: {\n \"X-API-Referer\": self.location.href,\n },\n body: JSON.stringify({\n action: \"post\",\n key: this._fallbackKey,\n payload: this._encrypt(res),\n }),\n });\n if (!response.ok)\n throw new Error(`Basthon's network API error: ${response.status}`);\n }\n break;\n case \"log-validation\":\n this.dispatchEvent(\"validation.log\", msg.content);\n break;\n case \"breakpoint-move-on\":\n //@ts-ignore\n const notebook = Jupyter?.notebook;\n const cell_id = msg.content.data?.parent_msg?.content?.cell_id;\n notebook?.next_breakpoint_cell?.(cell_id);\n break;\n default: // ignoring (probably a comlink message)\n }\n }\n async evalAsync(code, outCallback, errCallback, data = null) {\n // force interactivity in all modes\n data.interactive = true;\n this._execution_count++;\n // to be sure we do not miss communications\n const syncChannels = this._channelSyncer.promise;\n // evaluation\n const execResult = (await this.remote?.eval(data, code));\n // wait for all communications to end\n await syncChannels;\n // return result\n let result;\n switch (execResult?.status) {\n case \"ok\":\n result = execResult.result;\n break;\n case \"error\":\n break;\n }\n return [result, this._execution_count];\n }\n /**\n * Put a file on the local (emulated) filesystem.\n */\n async putFile(filename, content) {\n await super.putFile(filename, content);\n await this.remote?.putFile(filename, content);\n }\n /**\n * Put an importable module on the local (emulated) filesystem\n * and load dependencies.\n */\n async putModule(filename, content) {\n await super.putModule(filename, content);\n await this.remote?.putModule(filename, content);\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 return (await this.remote?.complete(code)) ?? [];\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 return (await this.remote?.more(code)) ?? false;\n }\n}\n"],"names":["mockWorker","mockHTMLImageSrc"],"sourceRoot":""}
1
+ {"version":3,"file":"kernel-base_lib_worker_kernel-main_js.js","mappings":"oPAKAA,EAAAA,EAAAA,MAEAC,EAAAA,EAAAA,K","sources":["webpack://@basthon/browser-bundle/../kernel-base/lib/worker/kernel-main.js"],"sourcesContent":["import { wrap, createEndpoint, transfer } from \"comlink\";\nimport { NotImplementedError, mockWorker, mockHTMLImageSrc } from \"../commons\";\nimport { KernelBase } from \"../kernel\";\nimport { PromiseDelegate } from \"promise-delegate\";\n// mock Worker to support sandboxing and keep webpack compatibility\nmockWorker();\n// mock HTMLImageElement.src to support localfs access\nmockHTMLImageSrc();\nexport class KernelMainBase extends KernelBase {\n constructor(options) {\n super(options);\n // synchronise comlink and communication channels\n this._channelSyncer = new PromiseDelegate();\n this._encrypt = (s) => s;\n this._conversionCanvas = document.createElement(\"canvas\");\n this._legacy = options?.legacy === true;\n // synchronous wait on SAB cannot be used in a legacy context\n // (atomic wait will block the main thread)\n if (!this.isLegacy()) {\n if (globalThis.crossOriginIsolated)\n this._sab = new SharedArrayBuffer(1024);\n else\n this._fallbackKey = globalThis.crypto.randomUUID();\n }\n // get ephemeral API URL or fallback to default\n this._ephemeralAPI =\n options?.ephemeralAPI ?? \"https://api.basthon.fr/ephemeral\";\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 * Is synchrnous communication with worker available?\n * (through SharedArrayBuffer atomic waits)\n */\n syncCommSupport() {\n return this._sab != null;\n }\n /**\n * Is this kernel safe? (loaded in an isolated web worker)\n */\n safeKernel() {\n return !this.isLegacy();\n }\n /**\n * Get a new worker (should be overloaded).\n */\n newWorker() {\n throw new NotImplementedError(\"newWorker\");\n }\n /**\n * Import the code for a legacy worker (running in the main thread).\n */\n async importLegacyWorker() {\n throw new NotImplementedError(\"importLegacyWorker\");\n }\n /**\n * Create the kernel webworker and setup communication.\n */\n async setupWorker() {\n const comlinkChannel = new MessageChannel();\n if (this.isLegacy()) {\n // running in main thread via message channel (fake worker)\n //@ts-ignore\n self._commPort = comlinkChannel.port1;\n // this global variable will be removed by worker\n self._assetsURL = this.assetsURL(true);\n await this.importLegacyWorker();\n }\n else {\n // setup the kernel worker\n const worker = this.newWorker();\n // send communication port\n worker.postMessage(comlinkChannel.port1, [comlinkChannel.port1]);\n this._worker = worker;\n }\n const KernelWorker = wrap(comlinkChannel.port2);\n // why typescript complains about this call? yet, this is advertised in\n // https://github.com/GoogleChromeLabs/comlink/blob/dffe9050f63b1b39f30213adeb1dd4b9ed7d2594/docs/examples/03-classes-example/index.html#L15\n //@ts-ignore\n this._remote = await new KernelWorker(this._options);\n // setup the communication channel\n const { port1, port2 } = new MessageChannel();\n port2.onmessage = (e) => this.processWorkerMessage(e.data);\n this.postMessageToWorker = port2.postMessage.bind(port2);\n await this.remote?.setCommPort(transfer(port1, [port1]));\n // WARNING: without the setCommPort call, KernelWorker (proxy)\n // is garbage collected and comlink releases the proxy,\n // breaking all the communications... (don't know really why)\n // If you experience this, just keep a ref on the proxy with e.g.\n // this.PROXY = KernelWorker\n }\n /**\n * Start the worker.\n */\n async _start() {\n await super._start();\n // kernel restart in legacy mode is lazy, not a full restart\n if (this.isLegacy() && this.remote != null) {\n await this.remote?.legacyStart();\n return;\n }\n // setup the proxy worker\n const proxyWorker = new Worker(new URL(\"./comlink-proxy.js\", import.meta.url));\n const proxy = wrap(proxyWorker);\n // setup the kernel worker\n await this.setupWorker();\n // always set... but not always useful\n await this.remote?.setEphemeralAPI(this._ephemeralAPI);\n if (this.syncCommSupport()) {\n console.log(\"Using SharedArrayBuffer for synchronous worker communication.\");\n await this._remote?.setSAB(this._sab);\n }\n else if (this._fallbackKey != null) {\n console.warn(\"SharedArrayBuffer not available, falling back to \" +\n \"using third-party server for synchronous worker communication.\");\n const pass = globalThis.crypto.randomUUID();\n await this.remote?.setFallbackKeyAndPass(this._fallbackKey, pass);\n const AES = await import(\"crypto-js/aes\");\n this._encrypt = (message) => AES.encrypt(message, pass).toString();\n }\n // bind ports\n const port = await proxy[createEndpoint]();\n await this.remote?.setProxyPort(transfer(port, [port]));\n // init remote\n await this.remote?.init();\n }\n /**\n * Comlink remote getter.\n */\n get remote() {\n return this._remote;\n }\n /**\n * Stop the worker.\n */\n async _stop() {\n if (this.isLegacy()) {\n await this.remote?.legacyStop();\n }\n else {\n this._worker?.terminate();\n this._worker = undefined;\n this._remote = undefined;\n }\n await super._stop();\n }\n /**\n * Convert a canvas array buffer to a PNG data URL (base64 encoded).\n */\n async canvasArrayToPNGDataURL(width, height, buffer) {\n const canvas = this._conversionCanvas;\n canvas.width = width;\n canvas.height = height;\n const ctx = canvas.getContext(\"2d\");\n if (ctx === null)\n return;\n const imageData = new ImageData(new Uint8ClampedArray(buffer), width, height);\n ctx.putImageData(imageData, 0, 0);\n const dataURL = canvas.toDataURL(\"image/png\");\n canvas.width = 0;\n canvas.height = 0;\n const pngPrefix = \"data:image/png;base64,\";\n if (dataURL.startsWith(pngPrefix))\n return dataURL.slice(pngPrefix.length);\n }\n /**\n * Process messages from worker (if any).\n */\n async processWorkerMessage(msg) {\n switch (msg.type) {\n case \"eval-end\":\n this._channelSyncer.resolve();\n this._channelSyncer = new PromiseDelegate();\n break;\n case \"stream\":\n const { stream, text } = msg.content;\n const dataEvent = this.clone(msg.data);\n dataEvent.stream = stream;\n dataEvent.content = text;\n this.dispatchEvent(\"eval.output\", dataEvent);\n break;\n case \"download\":\n const { content, filename } = msg.content;\n this.download(content, filename);\n break;\n case \"display\":\n if (msg.data?.display_type === \"dom-node\") {\n // we should be in legacy mode here\n if (!this.isLegacy())\n throw new Error(\"internal error\");\n const id = msg.data?.content;\n //@ts-ignore\n msg.data.content = await self.basthon?.popDOMNode(id);\n }\n else if (msg.data?.display_type === \"canvas\") {\n const { width, height, buffer } = msg.data.content;\n const png = await this.canvasArrayToPNGDataURL(width, height, buffer);\n if (png == null)\n return;\n msg.data.display_type = \"multiple\";\n msg.data.content = { \"image/png\": png };\n }\n this.dispatchEvent(\"eval.display\", msg.data);\n break;\n case \"clear_output\":\n this.dispatchEvent(\"eval.clear-output\", msg.data);\n break;\n case \"input\":\n const { prompt, password, data } = msg.content;\n const res = (await this.inputAsync(prompt, password, data));\n if (msg.content.toplevel === true) {\n this.postMessageToWorker({\n type: \"toplevel-input\",\n content: res,\n data,\n });\n }\n else if (this.syncCommSupport()) {\n const encodedRes = new TextEncoder().encode(res);\n new Uint8Array(this._sab).set(encodedRes.subarray(0, this._sab.byteLength));\n Atomics.notify(new Int32Array(this._sab), 0, 1);\n }\n else {\n const response = await fetch(this._ephemeralAPI, {\n method: \"POST\",\n headers: {\n \"X-API-Referer\": self.location.href,\n },\n body: JSON.stringify({\n action: \"post\",\n key: this._fallbackKey,\n payload: this._encrypt(res),\n }),\n });\n if (!response.ok)\n throw new Error(`Basthon's network API error: ${response.status}`);\n }\n break;\n case \"log-validation\":\n this.dispatchEvent(\"validation.log\", msg.content);\n break;\n case \"breakpoint-move-on\":\n //@ts-ignore\n const notebook = Jupyter?.notebook;\n const cell_id = msg.content.data?.parent_msg?.content?.cell_id;\n notebook?.next_breakpoint_cell?.(cell_id);\n break;\n default: // ignoring (probably a comlink message)\n }\n }\n async evalAsync(code, outCallback, errCallback, data = null) {\n // force interactivity in all modes\n data.interactive = true;\n this._execution_count++;\n // to be sure we do not miss communications\n const syncChannels = this._channelSyncer.promise;\n // evaluation\n const execResult = (await this.remote?.eval(data, code));\n // wait for all communications to end\n await syncChannels;\n // return result\n let result;\n switch (execResult?.status) {\n case \"ok\":\n result = execResult.result;\n break;\n case \"error\":\n break;\n }\n return [result, this._execution_count];\n }\n /**\n * Put a file on the local (emulated) filesystem.\n */\n async putFile(filename, content) {\n await super.putFile(filename, content);\n await this.remote?.putFile(filename, content);\n }\n /**\n * Put an importable module on the local (emulated) filesystem\n * and load dependencies.\n */\n async putModule(filename, content) {\n await super.putModule(filename, content);\n await this.remote?.putModule(filename, content);\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 return (await this.remote?.complete(code)) ?? [];\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 return (await this.remote?.more(code)) ?? false;\n }\n}\n"],"names":["mockWorker","mockHTMLImageSrc"],"sourceRoot":""}