var Q=Object.create;var P=Object.defineProperty;var Z=Object.getOwnPropertyDescriptor;var ee=Object.getOwnPropertyNames;var te=Object.getPrototypeOf,re=Object.prototype.hasOwnProperty;var m=(e,t)=>P(e,"name",{value:t,configurable:!0}),L=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(t,s)=>(typeof require<"u"?require:t)[s]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw new Error('Dynamic require of "'+e+'" is not supported')});var T=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var ne=(e,t,s,a)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of ee(t))!re.call(e,o)&&o!==s&&P(e,o,{get:()=>t[o],enumerable:!(a=Z(t,o))||a.enumerable});return e};var ie=(e,t,s)=>(s=e!=null?Q(te(e)):{},ne(t||!e||!e.__esModule?P(s,"default",{value:e,enumerable:!0}):s,e));var U=T((x,D)=>{(function(e,t){"use strict";typeof define=="function"&&define.amd?define("stackframe",[],t):typeof x=="object"?D.exports=t():e.StackFrame=t()})(x,function(){"use strict";function e(u){return!isNaN(parseFloat(u))&&isFinite(u)}m(e,"_isNumber");function t(u){return u.charAt(0).toUpperCase()+u.substring(1)}m(t,"_capitalize");function s(u){return function(){return this[u]}}m(s,"_getter");var a=["isConstructor","isEval","isNative","isToplevel"],o=["columnNumber","lineNumber"],r=["fileName","functionName","source"],n=["args"],c=["evalOrigin"],i=a.concat(o,r,n,c);function l(u){if(u)for(var y=0;y<i.length;y++)u[i[y]]!==void 0&&this["set"+t(i[y])](u[i[y]])}m(l,"StackFrame"),l.prototype={getArgs:function(){return this.args},setArgs:function(u){if(Object.prototype.toString.call(u)!=="[object Array]")throw new TypeError("Args must be an Array");this.args=u},getEvalOrigin:function(){return this.evalOrigin},setEvalOrigin:function(u){if(u instanceof l)this.evalOrigin=u;else if(u instanceof Object)this.evalOrigin=new l(u);else throw new TypeError("Eval Origin must be an Object or StackFrame")},toString:function(){var u=this.getFileName()||"",y=this.getLineNumber()||"",g=this.getColumnNumber()||"",b=this.getFunctionName()||"";return this.getIsEval()?u?"[eval] ("+u+":"+y+":"+g+")":"[eval]:"+y+":"+g:b?b+" ("+u+":"+y+":"+g+")":u+":"+y+":"+g}},l.fromString=m(function(y){var g=y.indexOf("("),b=y.lastIndexOf(")"),q=y.substring(0,g),K=y.substring(g+1,b).split(","),N=y.substring(b+1);if(N.indexOf("@")===0)var F=/@(.+?)(?::(\d+))?(?::(\d+))?$/.exec(N,""),X=F[1],Y=F[2],J=F[3];return new l({functionName:q,args:K||void 0,fileName:X,lineNumber:Y||void 0,columnNumber:J||void 0})},"StackFrame$$fromString");for(var d=0;d<a.length;d++)l.prototype["get"+t(a[d])]=s(a[d]),l.prototype["set"+t(a[d])]=function(u){return function(y){this[u]=!!y}}(a[d]);for(var p=0;p<o.length;p++)l.prototype["get"+t(o[p])]=s(o[p]),l.prototype["set"+t(o[p])]=function(u){return function(y){if(!e(y))throw new TypeError(u+" must be a Number");this[u]=Number(y)}}(o[p]);for(var f=0;f<r.length;f++)l.prototype["get"+t(r[f])]=s(r[f]),l.prototype["set"+t(r[f])]=function(u){return function(y){this[u]=String(y)}}(r[f]);return l})});var j=T((O,$)=>{(function(e,t){"use strict";typeof define=="function"&&define.amd?define("error-stack-parser",["stackframe"],t):typeof O=="object"?$.exports=t(U()):e.ErrorStackParser=t(e.StackFrame)})(O,m(function(t){"use strict";var s=/(^|@)\S+:\d+/,a=/^\s*at .*(\S+:\d+|\(native\))/m,o=/^(eval@)?(\[native code])?$/;return{parse:m(function(n){if(typeof n.stacktrace<"u"||typeof n["opera#sourceloc"]<"u")return this.parseOpera(n);if(n.stack&&n.stack.match(a))return this.parseV8OrIE(n);if(n.stack)return this.parseFFOrSafari(n);throw new Error("Cannot parse given Error object")},"ErrorStackParser$$parse"),extractLocation:m(function(n){if(n.indexOf(":")===-1)return[n];var c=/(.+?)(?::(\d+))?(?::(\d+))?$/,i=c.exec(n.replace(/[()]/g,""));return[i[1],i[2]||void 0,i[3]||void 0]},"ErrorStackParser$$extractLocation"),parseV8OrIE:m(function(n){var c=n.stack.split(`
`).filter(function(i){return!!i.match(a)},this);return c.map(function(i){i.indexOf("(eval ")>-1&&(i=i.replace(/eval code/g,"eval").replace(/(\(eval at [^()]*)|(,.*$)/g,""));var l=i.replace(/^\s+/,"").replace(/\(eval code/g,"(").replace(/^.*?\s+/,""),d=l.match(/ (\(.+\)$)/);l=d?l.replace(d[0],""):l;var p=this.extractLocation(d?d[1]:l),f=d&&l||void 0,u=["eval","<anonymous>"].indexOf(p[0])>-1?void 0:p[0];return new t({functionName:f,fileName:u,lineNumber:p[1],columnNumber:p[2],source:i})},this)},"ErrorStackParser$$parseV8OrIE"),parseFFOrSafari:m(function(n){var c=n.stack.split(`
`).filter(function(i){return!i.match(o)},this);return c.map(function(i){if(i.indexOf(" > eval")>-1&&(i=i.replace(/ line (\d+)(?: > eval line \d+)* > eval:\d+:\d+/g,":$1")),i.indexOf("@")===-1&&i.indexOf(":")===-1)return new t({functionName:i});var l=/((.*".+"[^@]*)?[^@]*)(?:@)/,d=i.match(l),p=d&&d[1]?d[1]:void 0,f=this.extractLocation(i.replace(l,""));return new t({functionName:p,fileName:f[0],lineNumber:f[1],columnNumber:f[2],source:i})},this)},"ErrorStackParser$$parseFFOrSafari"),parseOpera:m(function(n){return!n.stacktrace||n.message.indexOf(`
`)>-1&&n.message.split(`
`).length>n.stacktrace.split(`
`).length?this.parseOpera9(n):n.stack?this.parseOpera11(n):this.parseOpera10(n)},"ErrorStackParser$$parseOpera"),parseOpera9:m(function(n){for(var c=/Line (\d+).*script (?:in )?(\S+)/i,i=n.message.split(`
`),l=[],d=2,p=i.length;d<p;d+=2){var f=c.exec(i[d]);f&&l.push(new t({fileName:f[2],lineNumber:f[1],source:i[d]}))}return l},"ErrorStackParser$$parseOpera9"),parseOpera10:m(function(n){for(var c=/Line (\d+).*script (?:in )?(\S+)(?:: In function (\S+))?$/i,i=n.stacktrace.split(`
`),l=[],d=0,p=i.length;d<p;d+=2){var f=c.exec(i[d]);f&&l.push(new t({functionName:f[3]||void 0,fileName:f[2],lineNumber:f[1],source:i[d]}))}return l},"ErrorStackParser$$parseOpera10"),parseOpera11:m(function(n){var c=n.stack.split(`
`).filter(function(i){return!!i.match(s)&&!i.match(/^Error created at/)},this);return c.map(function(i){var l=i.split("@"),d=this.extractLocation(l.pop()),p=l.shift()||"",f=p.replace(/<anonymous function(: (\w+))?>/,"$2").replace(/\([^)]*\)/g,"")||void 0,u;p.match(/\(([^)]*)\)/)&&(u=p.replace(/^[^(]+\(([^)]*)\)$/,"$1"));var y=u===void 0||u==="[arguments not available]"?void 0:u.split(",");return new t({functionName:f,args:y,fileName:d[0],lineNumber:d[1],columnNumber:d[2],source:i})},this)},"ErrorStackParser$$parseOpera11")}},"ErrorStackParser"))});var V=ie(j());var _=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string"&&typeof process.browser=="undefined",C,w,R,M,A;async function B(){if(!_||(C=(await import("url")).default,A=await import("fs/promises"),globalThis.fetch?w=fetch:w=(await import("node-fetch")).default,M=(await import("vm")).default,R=await import("path"),E=R.sep,typeof L!="undefined"))return;let e=await import("fs"),t=await import("crypto"),s=await import("ws"),a=await import("child_process"),o={fs:e,crypto:t,ws:s,child_process:a};globalThis.require=function(r){return o[r]}}m(B,"initNodeModules");function oe(e,t){return R.resolve(t||".",e)}m(oe,"node_resolvePath");function ae(e,t){return t===void 0&&(t=location),new URL(e,t).toString()}m(ae,"browser_resolvePath");var S;_?S=oe:S=ae;var E;_||(E="/");function se(e,t){return e.startsWith("file://")&&(e=e.slice(7)),e.includes("://")?{response:w(e)}:{binary:A.readFile(e).then(s=>new Uint8Array(s.buffer,s.byteOffset,s.byteLength))}}m(se,"node_getBinaryResponse");function le(e,t){let s=new URL(e,location);return{response:fetch(s,t?{integrity:t}:{})}}m(le,"browser_getBinaryResponse");var v;_?v=se:v=le;async function W(e,t){let{response:s,binary:a}=v(e,t);if(a)return a;let o=await s;if(!o.ok)throw new Error(`Failed to load '${e}': request failed.`);return new Uint8Array(await o.arrayBuffer())}m(W,"loadBinaryFile");var h;if(globalThis.document)h=m(async e=>await import(e),"loadScript");else if(globalThis.importScripts)h=m(async e=>{try{globalThis.importScripts(e)}catch(t){if(t instanceof TypeError)await import(e);else throw t}},"loadScript");else if(_)h=de;else throw new Error("Cannot determine runtime environment");async function de(e){e.startsWith("file://")&&(e=e.slice(7)),e.includes("://")?M.runInThisContext(await(await w(e)).text()):await import(C.pathToFileURL(e).href)}m(de,"nodeLoadScript");function H(e){let t=e.FS,s=e.FS.filesystems.MEMFS,a=e.PATH,o={DIR_MODE:16895,FILE_MODE:33279,mount:function(r){if(!r.opts.fileSystemHandle)throw new Error("opts.fileSystemHandle is required");return s.mount.apply(null,arguments)},syncfs:async(r,n,c)=>{try{let i=o.getLocalSet(r),l=await o.getRemoteSet(r),d=n?l:i,p=n?i:l;await o.reconcile(r,d,p),c(null)}catch(i){c(i)}},getLocalSet:r=>{let n=Object.create(null);function c(d){return d!=="."&&d!==".."}m(c,"isRealDir");function i(d){return p=>a.join2(d,p)}m(i,"toAbsolute");let l=t.readdir(r.mountpoint).filter(c).map(i(r.mountpoint));for(;l.length;){let d=l.pop(),p=t.stat(d);t.isDir(p.mode)&&l.push.apply(l,t.readdir(d).filter(c).map(i(d))),n[d]={timestamp:p.mtime,mode:p.mode}}return{type:"local",entries:n}},getRemoteSet:async r=>{let n=Object.create(null),c=await ce(r.opts.fileSystemHandle);for(let[i,l]of c)i!=="."&&(n[a.join2(r.mountpoint,i)]={timestamp:l.kind==="file"?(await l.getFile()).lastModifiedDate:new Date,mode:l.kind==="file"?o.FILE_MODE:o.DIR_MODE});return{type:"remote",entries:n,handles:c}},loadLocalEntry:r=>{let c=t.lookupPath(r).node,i=t.stat(r);if(t.isDir(i.mode))return{timestamp:i.mtime,mode:i.mode};if(t.isFile(i.mode))return c.contents=s.getFileDataAsTypedArray(c),{timestamp:i.mtime,mode:i.mode,contents:c.contents};throw new Error("node type not supported")},storeLocalEntry:(r,n)=>{if(t.isDir(n.mode))t.mkdirTree(r,n.mode);else if(t.isFile(n.mode))t.writeFile(r,n.contents,{canOwn:!0});else throw new Error("node type not supported");t.chmod(r,n.mode),t.utime(r,n.timestamp,n.timestamp)},removeLocalEntry:r=>{var n=t.stat(r);t.isDir(n.mode)?t.rmdir(r):t.isFile(n.mode)&&t.unlink(r)},loadRemoteEntry:async r=>{if(r.kind==="file"){let n=await r.getFile();return{contents:new Uint8Array(await n.arrayBuffer()),mode:o.FILE_MODE,timestamp:n.lastModifiedDate}}else{if(r.kind==="directory")return{mode:o.DIR_MODE,timestamp:new Date};throw new Error("unknown kind: "+r.kind)}},storeRemoteEntry:async(r,n,c)=>{let i=r.get(a.dirname(n)),l=t.isFile(c.mode)?await i.getFileHandle(a.basename(n),{create:!0}):await i.getDirectoryHandle(a.basename(n),{create:!0});if(l.kind==="file"){let d=await l.createWritable();await d.write(c.contents),await d.close()}r.set(n,l)},removeRemoteEntry:async(r,n)=>{await r.get(a.dirname(n)).removeEntry(a.basename(n)),r.delete(n)},reconcile:async(r,n,c)=>{let i=0,l=[];Object.keys(n.entries).forEach(function(f){let u=n.entries[f],y=c.entries[f];(!y||t.isFile(u.mode)&&u.timestamp.getTime()>y.timestamp.getTime())&&(l.push(f),i++)}),l.sort();let d=[];if(Object.keys(c.entries).forEach(function(f){n.entries[f]||(d.push(f),i++)}),d.sort().reverse(),!i)return;let p=n.type==="remote"?n.handles:c.handles;for(let f of l){let u=a.normalize(f.replace(r.mountpoint,"/")).substring(1);if(c.type==="local"){let y=p.get(u),g=await o.loadRemoteEntry(y);o.storeLocalEntry(f,g)}else{let y=o.loadLocalEntry(f);await o.storeRemoteEntry(p,u,y)}}for(let f of d)if(c.type==="local")o.removeLocalEntry(f);else{let u=a.normalize(f.replace(r.mountpoint,"/")).substring(1);await o.removeRemoteEntry(p,u)}}};e.FS.filesystems.NATIVEFS_ASYNC=o}m(H,"initializeNativeFS");var ce=m(async e=>{let t=[];async function s(o){for await(let r of o.values())t.push(r),r.kind==="directory"&&await s(r)}m(s,"collect"),await s(e);let a=new Map;a.set(".",e);for(let o of t){let r=(await e.resolve(o)).join("/");a.set(r,o)}return a},"getFsHandles");function I(){let e={};return e.noImageDecoding=!0,e.noAudioDecoding=!0,e.noWasmDecoding=!1,e.preRun=[],e.quit=(t,s)=>{throw e.exited={status:t,toThrow:s},s},e}m(I,"createModule");function ue(e,t){e.preRun.push(function(){let s="/";try{e.FS.mkdirTree(t)}catch(a){console.error(`Error occurred while making a home directory '${t}':`),console.error(a),console.error(`Using '${s}' for a home directory instead`),t=s}e.FS.chdir(t)})}m(ue,"createHomeDirectory");function fe(e,t){e.preRun.push(function(){Object.assign(e.ENV,t)})}m(fe,"setEnvironment");function me(e,t){e.preRun.push(()=>{for(let s of t)e.FS.mkdirTree(s),e.FS.mount(e.FS.filesystems.NODEFS,{root:s},s)})}m(me,"mountLocalDirectories");function pe(e,t){let s=W(t);e.preRun.push(()=>{let a=e._py_version_major(),o=e._py_version_minor();e.FS.mkdirTree("/lib"),e.FS.mkdirTree(`/lib/python${a}.${o}/site-packages`),e.addRunDependency("install-stdlib"),s.then(r=>{e.FS.writeFile(`/lib/python${a}${o}.zip`,r)}).catch(r=>{console.error("Error occurred while installing the standard library:"),console.error(r)}).finally(()=>{e.removeRunDependency("install-stdlib")})})}m(pe,"installStdlib");function z(e,t){let s;t.stdLibURL!=null?s=t.stdLibURL:s=t.indexURL+"python_stdlib.zip",pe(e,s),ue(e,t.env.HOME),fe(e,t.env),me(e,t._node_mounts),e.preRun.push(()=>H(e))}m(z,"initializeFileSystem");function G(e,t){let{binary:s,response:a}=v(t+"pyodide.asm.wasm");e.instantiateWasm=function(o,r){return async function(){try{let n;a?n=await WebAssembly.instantiateStreaming(a,o):n=await WebAssembly.instantiate(await s,o);let{instance:c,module:i}=n;typeof WasmOffsetConverter!="undefined"&&(wasmOffsetConverter=new WasmOffsetConverter(wasmBinary,i)),r(c,i)}catch(n){console.warn("wasm instantiation failed!"),console.warn(n)}}(),{}}}m(G,"preloadWasm");var k="0.24.1";function ye(e,t){return new Proxy(e,{get(s,a){return a==="get"?o=>{let r=s.get(o);return r===void 0&&(r=t.get(o)),r}:a==="has"?o=>s.has(o)||t.has(o):Reflect.get(s,a)}})}m(ye,"wrapPythonGlobals");function ge(e,t){e.runPythonInternal_dict=e._pyodide._base.eval_code("{}"),e.importlib=e.runPythonInternal("import importlib; importlib");let s=e.importlib.import_module;e.sys=s("sys"),e.sys.path.insert(0,t.env.HOME),e.os=s("os");let a=e.runPythonInternal("import __main__; __main__.__dict__"),o=e.runPythonInternal("import builtins; builtins.__dict__");e.globals=ye(a,o);let r=e._pyodide._importhook;function n(i){"__all__"in i||Object.defineProperty(i,"__all__",{get:()=>c.toPy(Object.getOwnPropertyNames(i).filter(l=>l!=="__all__")),enumerable:!1,configurable:!0})}m(n,"jsFinderHook"),r.register_js_finder.callKwargs({hook:n}),r.register_js_module("js",t.jsglobals);let c=e.makePublicAPI();return r.register_js_module("pyodide_js",c),e.pyodide_py=s("pyodide"),e.pyodide_code=s("pyodide.code"),e.pyodide_ffi=s("pyodide.ffi"),e.package_loader=s("pyodide._package_loader"),e.sitepackages=e.package_loader.SITE_PACKAGES.__str__(),e.dsodir=e.package_loader.DSO_DIR.__str__(),e.defaultLdLibraryPath=[e.dsodir,e.sitepackages],e.os.environ.__setitem__("LD_LIBRARY_PATH",e.defaultLdLibraryPath.join(":")),c.pyodide_py=e.pyodide_py,c.globals=e.globals,c}m(ge,"finalizeBootstrap");function be(){if(typeof __dirname=="string")return __dirname;let e;try{throw new Error}catch(a){e=a}let t=V.default.parse(e)[0].fileName,s=t.lastIndexOf(E);if(s===-1)throw new Error("Could not extract indexURL path from pyodide module location");return t.slice(0,s)}m(be,"calculateIndexURL");async function De(e={}){await B();let t=e.indexURL||be();t=S(t),t.endsWith("/")||(t+="/"),e.indexURL=t;let s={fullStdLib:!1,jsglobals:globalThis,stdin:globalThis.prompt?globalThis.prompt:void 0,lockFileURL:t+"pyodide-lock.json",args:[],_node_mounts:[],env:{},packageCacheDir:t,packages:[]},a=Object.assign(s,e);if(e.homedir){if(console.warn("The homedir argument to loadPyodide is deprecated. Use 'env: { HOME: value }' instead of 'homedir: value'."),e.env&&e.env.HOME)throw new Error("Set both env.HOME and homedir arguments");a.env.HOME=a.homedir}a.env.HOME||(a.env.HOME="/home/pyodide");let o=I();o.print=a.stdout,o.printErr=a.stderr,o.arguments=a.args;let r={config:a};o.API=r,G(o,t),z(o,a);let n=new Promise(f=>o.postRun=f),c;if(r.bootstrapFinalizedPromise=new Promise(f=>c=f),o.locateFile=f=>a.indexURL+f,typeof _createPyodideModule!="function"){let f=`${a.indexURL}pyodide.asm.js`;await h(f)}if(await _createPyodideModule(o),await n,o.exited)throw o.exited.toThrow;if(r.version!==k)throw new Error(`Pyodide version does not match: '${k}' <==> '${r.version}'. If you updated the Pyodide version, make sure you also updated the 'indexURL' parameter passed to loadPyodide.`);o.locateFile=f=>{throw new Error("Didn't expect to load any more file_packager files!")};let[i,l]=r.rawRun("import _pyodide_core");i&&o.API.fatal_loading_error(`Failed to import _pyodide_core
`,l);let d=ge(r,a);if(c(),d.version.includes("dev")||r.setCdnUrl(`https://cdn.jsdelivr.net/pyodide/v${d.version}/full/`),await r.packageIndexReady,r._pyodide._importhook.register_module_not_found_hook(r._import_name_to_package_name,r.lockfile_unvendored_stdlibs_and_test),r.lockfile_info.version!==k)throw new Error("Lock file version doesn't match Pyodide version");return r.package_loader.init_loaded_packages(),a.fullStdLib&&await d.loadPackage(r.lockfile_unvendored_stdlibs),r.initializeStreams(a.stdin,a.stdout,a.stderr),d}m(De,"loadPyodide");export{De as loadPyodide,k as version};
//# sourceMappingURL=pyodide.mjs.map
