You're Invited:Meet the Socket Team at BlackHat and DEF CON in Las Vegas, Aug 4-6.RSVP
Socket
Book a DemoInstallSign in
Socket

polyscript

Package Overview
Dependencies
Maintainers
2
Versions
210
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

polyscript - npm Package Compare versions

Comparing version

to
0.17.9

2

esm/interpreter/_python.js

@@ -1,2 +0,2 @@

import * as FLATTED from '@webreflection/coincident/flatted';
import * as FLATTED from 'coincident/flatted';
const JSON = { parse: FLATTED.decode, stringify: FLATTED.encode };

@@ -3,0 +3,0 @@

@@ -30,3 +30,3 @@ import fetch from '@webreflection/fetch';

type,
module: (version = '1.24.1') =>
module: (version = '1.25.0') =>
`https://cdn.jsdelivr.net/npm/@micropython/micropython-webassembly-pyscript@${version}/micropython.mjs`,

@@ -33,0 +33,0 @@ async engine({ loadMicroPython }, config, url, baseURL) {

@@ -10,4 +10,4 @@ // ⚠️ This file is used to generate xworker.js

import { decoder } from '@webreflection/coincident/flatted/decoder';
import coincident from '@webreflection/coincident/window/worker';
import { decoder } from 'coincident/flatted/decoder';
import coincident from 'coincident/window/worker';

@@ -44,2 +44,3 @@ import { assign, create, createFunction, createOverload, createResolved, dispatch, registerJSModules } from '../utils.js';

decoder,
transfer: false,
transform: value => transform ? transform(value) : value

@@ -46,0 +47,0 @@ });

@@ -5,6 +5,6 @@ /* c8 ignore start */

const place = (_,q,f) => `import(${q}${new URL(f,url).href}${q})`;
import { encoder } from '@webreflection/coincident/flatted/encoder';
import coincident from '@webreflection/coincident/window/main';
const { Worker } = coincident({ encoder });
export default (...args) => new Worker(URL.createObjectURL(new Blob(["const{assign:e}=Object,t=\"entries\",n=\"readonly\",r=\"readwrite\",s={durability:\"default\",prefix:\"IDBMap\"},o=({target:{result:e}})=>e;class a extends EventTarget{#e;#t;#n;async#r(n,r){const s=(await this.#e).transaction(t,r,this.#t);return new Promise(((r,o)=>e(n(s.objectStore(t)),{onsuccess:r,onerror:o})))}constructor(n,{durability:r=s.durability,prefix:a=s.prefix}=s){super(),this.#n=a,this.#t={durability:r},this.#e=new Promise(((r,s)=>{e(indexedDB.open(`${this.#n}/${n}`),{onupgradeneeded({target:{result:e,transaction:n}}){e.objectStoreNames.length||e.createObjectStore(t),n.oncomplete=()=>r(e)},onsuccess(e){r(o(e))},onerror(e){s(e),this.dispatchEvent(e)}})})).then((e=>{const t=this.dispatchEvent.bind(this);for(const n in e)n.startsWith(\"on\")&&(e[n]=t);return e}))}dispatchEvent(t){const{type:n,message:r,isTrusted:s}=t;return super.dispatchEvent(s?e(new Event(n),{message:r}):t)}async close(){(await this.#e).close()}get size(){return this.#r((e=>e.count()),n).then(o)}async clear(){await this.#r((e=>e.clear()),r)}async delete(e){await this.#r((t=>t.delete(e)),r)}async entries(){const e=await this.keys();return Promise.all(e.map((e=>this.get(e).then((t=>[e,t])))))}async forEach(e,t=this){for(const[n,r]of await this.entries())await e.call(t,r,n,this)}async get(e){return await this.#r((t=>t.get(e)),n).then(o)}async has(e){return void 0!==await this.#r((t=>t.getKey(e)),n).then(o)}async keys(){return await this.#r((e=>e.getAllKeys()),n).then(o)}async set(e,t){return await this.#r((n=>n.put(t,e)),r),this}async values(){const e=await this.keys();return Promise.all(e.map((e=>this.get(e))))}get[Symbol.toStringTag](){return this.#n}}class i extends Map{#s;#o;constructor(...e){super(),this.#s=new a(...e),this.#o=this.#s.entries().then((e=>{for(const[t,n]of e)super.set(t,n)}))}async close(){await this.#o,await this.#s.close()}async sync(){await this.#o}clear(){return this.#o=this.#o.then((()=>this.#s.clear())),super.clear()}delete(e){return this.#o=this.#o.then((()=>this.#s.delete(e))),super.delete(e)}set(e,t){return this.#o=this.#o.then((()=>this.#s.set(e,t))),super.set(e,t)}}let c=\"coincident-\";try{new SharedArrayBuffer(4,{maxByteLength:8}),c+=crypto.randomUUID()}catch(An){c+=Math.random().toString(36).substring(2)}const{fromCharCode:l}=String,{min:u}=Math;const{defineProperty:p}=Object,d=e=>{switch(e[y++]){case 1:{const t=e[y++],n=[];e[y-2]=n;for(let r=0;r<t;r++)n[r]=d(e);return n}case 2:{const t=e[y++],n={};e[y-2]=n;for(let r=0;r<t;r++)n[d(e)]=d(e);return n}case 4:{const t=e[y++];return e[y-2]=t,t}case 0:return e[e[y++]];case 3:return e[y++];case 12:return BigInt(e[y++]);case 5:return!0;case 6:return!1;case 7:return null;case 13:return;case 8:{const t=e[y++],n=e[y++],r=[t];n&&r.push({maxByteLength:n});const s=new ArrayBuffer(...r);e[y-3]=s;const o=new Uint8Array(s,0,t);for(let n=0;n<t;n++)o[n]=e[y++];return s}case 9:{const t=e[y++],n=e[y++],r=e[y++],s=[d(e),n];r&&s.push(r);const o=new globalThis[t](...s);return e[y-4]=o,o}case 10:return(t=e[y++]).startsWith(\"Symbol.\")?Symbol[t.slice(t.indexOf(\".\")+1)]:Symbol.for(t);case 11:{const t=new Date(e[y++]);return e[y-2]=t,t}case 14:{const t=e[y++],n=new Map;e[y-2]=n;for(let r=0;r<t;r++){const t=d(e),r=d(e);void 0!==t&&n.set(t,r)}return n}case 15:{const t=e[y++],n=new Set;e[y-2]=n;for(let r=0;r<t;r++){const t=d(e);void 0!==t&&n.add(t)}return n}case 16:{const t=e[y++],n=e[y++],r=new RegExp(t,n);return e[y-3]=r,r}case 17:{const t=globalThis[e[y++]]||Error,n=e[y++],r=e[y++],s=new t(n,{cause:e[y++]});return e[y-5]=p(s,\"stack\",{value:r}),s}default:throw new Error(`Unknown type: ${e[y-1]}`)}var t},{parse:f}=JSON;let y=0;const h=(e=>({byteOffset:t})=>(n,r)=>{const s=new Uint16Array(r,t,n);let o=\"\",a=0;for(;a<n;){const e=u(a+65535,n);o+=l.apply(null,s.subarray(a,e)),a=e}return e(o)})((e=>{y=0;const t=f(e);return t.length?d(t):void 0})),m=\"592e34ef\",w=\"=\"+m,g=\"-\"+m,{create:b}=Object;let _=\"coincident-\",A=!0;try{new SharedArrayBuffer(4,{maxByteLength:8}),_+=crypto.randomUUID()}catch(e){A=!1,_+=Math.random().toString(36).substring(2)}const E=2*Int32Array.BYTES_PER_ELEMENT,v={byteOffset:E,useUTF16:!0,circular:!0},S=new Map,k=(e,t,n)=>{const r=\"then\"!==t;return r&&(e[t]=n),r},x=()=>Promise.withResolvers(),{fromCharCode:j}=String,{min:B}=Math;var P=e=>({byteOffset:t})=>(n,r)=>{const s=new Uint16Array(r,t,n);let o=\"\",a=0;for(;a<n;){const e=B(a+65535,n);o+=j.apply(null,s.subarray(a,e)),a=e}return e(o)};const{parse:$}=JSON,O=P($),F=\"array\",T=\"bigint\",R=\"function\",M=\"null\",D=\"number\",L=\"object\",C=\"symbol\",I=\"undefined\";var N=Object.fromEntries([F,T,\"boolean\",R,M,D,L,\"string\",C,I,\"view\"].map(((e,t)=>[e,t])));const{parse:U}=JSON,H=P((e=>{const t=U(e);switch(t[0]){case N.view:{const[e,n]=t[1],r=new Uint8Array(n);t[1]=new globalThis[e](r.buffer);break}case N[I]:t[1]=void 0;break;case N[T]:t[1]=BigInt(t[1])}return t})),W=x();addEventListener(\"message\",(e=>{(e=>{e.stopImmediatePropagation(),e.preventDefault()})(e),W.resolve([e.data,e.ports[0]])}),{once:!0});var J=async e=>{const[t,n]=await W.promise,r=A&&!!t,s=e?.transform,o=(e?.decoder||O)(v);let a,i;if(A){const t=new SharedArrayBuffer(e?.minByteLength||65535,{maxByteLength:e?.maxByteLength||16777216});a=new Int32Array(t),i=Atomics.wait}const[c,l]=((e,t=0)=>[n=>{const r=x();do{n=e(t++)}while(S.has(n));return S.set(n,r),[n,r]},(e,t,n)=>{const r=S.get(e);S.delete(e),n?r.reject(n):r.resolve(t)}])(String),u=new Map,p=b(null),d=new Proxy(p,{get(e,l){if(\"then\"===l)return;let p=u.get(l);return p||u.set(l,p=(...e)=>{const u=[a,l,s?e.map(s):e];if(A){r?postMessage({ID:t,data:u}):n.postMessage(u),i(a,0),a[0]=0;const e=a[1]?o(a[1],a.buffer):void 0;if(e instanceof Error)throw e;return e}{const[e,t]=c();return u[0]=e,n.postMessage(u),t.promise}}),p},set:k});return n.onmessage=async({data:e})=>{\"string\"==typeof e[0]?l.apply(null,e):(await(async(e,t,n)=>{try{const r=await t[e[1]].apply(null,e[2]);e[1]=n?n(r):r,e[2]=null}catch(t){e[2]=t}})(e,p,s),n.postMessage(e))},{native:A,proxy:d}};const q=\"apply\",z=\"construct\",K=\"defineProperty\",G=\"deleteProperty\",Y=\"get\",V=\"getOwnPropertyDescriptor\",X=\"getPrototypeOf\",Z=\"has\",Q=\"isExtensible\",ee=\"ownKeys\",te=\"preventExtensions\",ne=\"set\",re=\"setPrototypeOf\";var se=Object.freeze({__proto__:null,APPLY:q,CONSTRUCT:z,DEFINE_PROPERTY:K,DELETE_PROPERTY:G,GET:Y,GET_OWN_PROPERTY_DESCRIPTOR:V,GET_PROTOTYPE_OF:X,HAS:Z,IS_EXTENSIBLE:Q,OWN_KEYS:ee,PREVENT_EXTENSION:te,SET:ne,SET_PROTOTYPE_OF:re});const oe=\"destruct\";function ae(){return this}const ie=new FinalizationRegistry((([e,t,n])=>{n&&console.debug(`%c${String(t)}`,\"font-weight:bold\",\"collected\"),e(t)})),ce=Object.create(null),le=(e,t,{debug:n,handler:r,return:s,token:o=e}=ce)=>{const a=s||new Proxy(e,r||ce),i=[a,[t,e,!!n]];return!1!==o&&i.push(o),ie.register(...i),a},{Object:ue,Proxy:pe,Reflect:de}=globalThis,{isArray:fe}=Array,{ownKeys:ye}=de,{create:he,hasOwn:me,values:we}=ue,ge=(e,t)=>t===F?e[0]:t===R?e():t===L?e.$:e,be=(e,t,n,r)=>{const s={type:{value:t}},o=me(e,\"valueOf\");for(const a of we(se)){let i=r(e[a]||de[a]);if(o&&a===Y){const{valueOf:r}=e,{value:s}=i;i={value(e,o,...a){return o===n?r.call(this,ge(e,t)):s.call(this,e,o,...a)}}}s[a]=i}return he(e,s)},_e=(e,t,n,r=e)=>{if(r===e)switch(typeof e){case L:case I:r||(r=!1);case R:break;default:r=!1,t===e&&(t=ue(e))}const s=new pe(t,n),{destruct:o}=n;return o?le(e,o,{token:r,return:s}):s},Ae=e=>t=>{const n=typeof t;return n===L?t?e.get(t)?.[0]??(e=>fe(e)?F:L)(t):M:n},Ee=e=>t=>{let n=typeof t;switch(n){case L:if(!t){n=M;break}case R:const r=e.get(t);r&&([n,t]=r)}return[n,t]},ve=e=>((e=>{ie.unregister(e)})(e),e);var Se=e=>{const t=new WeakMap,n=Symbol(),r={},s=(e,n,r)=>(t.set(e,[n,r]),e),o={proxy:r,release:ve,pair:Ee(t),typeOf:Ae(t),isProxy:e=>t.has(e),valueOf:e=>e[n]??e.valueOf()};for(const t of ye(e)){if(me(o,t))continue;const a=e[t];switch(t){case F:{const e=be(a,t,n,(e=>({value([t],...n){return e.call(this,t,...n)}})));r[t]=(t,...n)=>s(_e(t,[t],e,...n),F,t);break}case R:{const e=be(a,t,n,(e=>({value(t,...n){return e.call(this,t(),...n)}})));r[t]=(t,...n)=>{return s(_e(t,(r=t,ae.bind(r)),e,...n),R,t);var r};break}case L:{const e=be(a,t,n,(e=>({value({$:t},...n){return e.call(this,t,...n)}})));r[t]=(t,...n)=>s(_e(t,{$:t},e,...n),L,t);break}default:{const e=be(a,t,n,(e=>({value:e})));r[t]=(n,...r)=>s(_e(n,n,e,...r),t,n);break}}}return o};const{drop:ke,get:xe,hold:je}=(()=>{const e=new Map,t=new Map;let n=0;return{clear:()=>{e.clear(),t.clear()},drop:n=>{const[r,s]=typeof n===D?[t,e]:[e,t],o=r.has(n);return o&&(s.delete(r.get(n)),r.delete(n)),o},get:e=>t.get(e),hold:r=>{if(!e.has(r)){let s;for(;t.has(s=n++););e.set(r,s),t.set(s,r)}return e.get(r)}}})(),Be=new Map;for(const e of Reflect.ownKeys(Symbol))typeof Symbol[e]===C&&(Be.set(Symbol[e],e),Be.set(e,Symbol[e]));const Pe=e=>Be.get(e)||`.${Symbol.keyFor(e)||\"\"}`,{isArray:$e}=Array,{isView:Oe}=ArrayBuffer,{[q]:Fe}=Reflect;var Te=(e,t)=>{const n=new Map,r=(e,t)=>{let r=n.get(e)?.deref();return r||n.set(e,new WeakRef(r=t(e))),r},s=([e,t])=>{switch(e){case N[L]:return null==t?globalThis:typeof t===D?r(t,l.object):t;case N[F]:return typeof t===D?r(t,l.array):t;case N[R]:return typeof t===D?r(t,l.function):xe(parseInt(t));case N[C]:return(e=>Be.get(e)||Symbol.for(e.slice(1)))(t);default:return t}},o=e=>{let[n,r]=p(e);switch(n){case L:if(r==globalThis||null==r)r=null;else if(typeof r===L){if(r=t(r),$e(r))return[N[F],r.map(o)];if(Oe(r))return[N.view,r];{const e={};for(const t in r)e[t]=o(r[t]);r=e}}return[N[L],r];case F:return[N[F],typeof r===D?r:t(r).map(o)];case R:return[N[R],typeof r===R?String(je(t(r))):r];case C:return[N[C],Pe(e)];default:return[N[n],r]}},a=(...t)=>s(e(...t)),i={[K]:(e,t,n)=>a(K,e,o(t),o(n)),[G]:(e,t)=>a(G,e,o(t)),[Y]:(e,t)=>a(Y,e,o(t)),[X]:e=>a(X,e),[V]:(e,t)=>{const n=a(V,e,o(t));if(n){const{get:e,set:t,value:r}=n;e&&(n.get=s(e)),t&&(n.set=s(t)),r&&(n.value=s(r))}return n},[Z]:(e,t)=>a(Z,e,o(t)),[Q]:e=>a(Q,e),[ee]:e=>a(ee,e).map(s),[te]:e=>a(te,e),[ne]:(e,t,n)=>a(ne,e,o(t),o(n)),[re]:(e,t)=>a(re,e,o(t)),[oe](t){n.delete(t),e(oe,t)}},c={[L]:i,[F]:i,[R]:{...i,[q]:(e,...t)=>a(q,e,...t.map(o)),[z]:(e,...t)=>a(z,e,...t.map(o))}},{proxy:l,isProxy:u,pair:p}=Se(c);return{isProxy:u,global:l.object(null),method:async(e,t,...n)=>{const r=parseInt(t);switch(e){case q:{const[e,t]=n;return o(await Fe(xe(r),s(e),t.map(s)))}case oe:ke(r)}}}};const Re={object(...e){return this.string(function(e){for(var t=e[0],n=1,r=arguments.length;n<r;n++)t+=arguments[n]+e[n];return t}(...e))},string(e){for(const t of e.split(/[\\r\\n]+/))if(t.trim().length){/^(\\s+)/.test(t)&&(e=e.replace(new RegExp(\"^\"+RegExp.$1,\"gm\"),\"\"));break}return e}},Me=new WeakMap,De=e=>{const t=e||console,n={buffered:Ce,stderr:(t.stderr||console.error).bind(t),stdout:(t.stdout||console.log).bind(t)};return{stderr:(...e)=>n.stderr(...e),stdout:(...e)=>n.stdout(...e),async get(e){const t=await e;return Me.set(t,n),t}}},Le=new TextDecoder,Ce=(e,t=10)=>{const n=[];return r=>{if(r instanceof Uint8Array)for(const s of r)s===t?e(Le.decode(new Uint8Array(n.splice(0)))):n.push(s);else e(r)}},Ie=(e,...t)=>Re[typeof e](e,...t),{isArray:Ne}=Array,{assign:Ue,create:He,defineProperty:We,entries:Je}=Object,{all:qe,resolve:ze}=new Proxy(Promise,{get:(e,t)=>e[t].bind(e)}),Ke=(e,t=location.href)=>new URL(e,t.replace(/^blob:/,\"\")).href;function Ge(e){return e.startsWith(\".\")?Ke(e,this):e}const Ye=(e,t,n,r=!1,s=CustomEvent)=>{e.dispatchEvent(new s(`${t}:${n}`,{bubbles:!0,detail:{worker:r}}))},Ve=e=>Function(`'use strict';return (${e})`)(),Xe=e=>e.replace(/^(?:\\n|\\r\\n)/,\"\"),Ze=Symbol.for(\"polyscript.js_modules\"),Qe=new Map;We(globalThis,Ze,{value:Qe}),new Proxy(Qe,{get:(e,t)=>e.get(t),has:(e,t)=>e.has(t),ownKeys:e=>[...e.keys()]});const et=(e,t)=>!t.startsWith(\"_\"),tt=(e,t)=>new Proxy(e,{has:et,get:(e,n)=>e[t][n]}),nt=(e,t)=>import(e).then((e=>{Qe.set(t,{...e})})),rt=e=>new Promise(((t,n)=>{document.querySelector(`link[rel=\"stylesheet\"][href=\"${e}\"]`)?t():document.head.append(Ue(document.createElement(\"link\"),{rel:\"stylesheet\",href:e,onload:t,onerror:n}))})),st=e=>/\\.css$/i.test(new URL(e).pathname),ot=(e,t)=>e.has(t),at=e=>[...e.keys()];var it=(e,t,n,r)=>{const s=globalThis[Ze];if(n)for(let[e,t]of Je(n)){let n=s.get(t);n&&!Ne(n)||(s.set(t,n||(n=[])),n.push(e))}return((e,t,n,r)=>new Proxy(e,{has:ot,ownKeys:at,get:(e,s)=>{let o=e.get(s);if(Ne(o)){let a=o;o=null;for(let e of a)e=Ke(e,r),st(e)?n.importCSS(e):(n.importJS(e,s),o=t[Ze].get(s));e.set(s,o)}return o}}))(s,e,t,r)};const ct=new Map,lt=e=>ct.get(e),ut=(e,t)=>{try{return Function(\"require\",t)(lt)}catch(t){Me.get(e).stderr(t)}};var pt={type:\"dummy\",module:()=>\"data:application/javascript,\",engine:e=>De().get(e),registerJSModule(e,t,n){ct.set(t,n)},run:ut,runAsync:ut,runEvent:async(e,t,n)=>{try{await Function(\"require\",\"e\",`return ${t}(e)`)(lt,n)}catch(t){Me.get(e).stderr(t)}},transform:(e,t)=>t,writeFile(){}};const dt=Object.getOwnPropertyDescriptors(Response.prototype),ft=e=>\"function\"==typeof e,yt={get:(e,t)=>dt.hasOwnProperty(t)?((e,t,{get:n,value:r})=>n||!ft(r)?e.then((e=>e[t])):(...n)=>e.then((e=>e[t](...n))))(e,t,dt[t]):((e,t)=>ft(t)?t.bind(e):t)(e,e[t])};var ht=(e,...t)=>new Proxy(fetch(e,...t),yt);Promise.withResolvers||(Promise.withResolvers=function(){var e,t,n=new this((function(n,r){e=n,t=r}));return{resolve:e,reject:t,promise:n}});const mt=!globalThis.window,wt=({FS:e,PATH:t,PATH_FS:n},r,s)=>{const o=n.resolve(r),a=t.dirname(o);return e.mkdirTree?e.mkdirTree(a):bt(e,a),e.writeFile(o,new Uint8Array(s),{canOwn:!0})},gt=e=>{const t=e.split(\"/\");return t.pop(),t.join(\"/\")},bt=(e,t)=>{const n=[];for(const r of t.split(\"/\"))\".\"!==r&&\"..\"!==r&&(n.push(r),r&&e.mkdir(n.join(\"/\")))},_t=(e,t)=>{const n=[];for(const e of t.split(\"/\"))switch(e){case\"\":case\".\":break;case\"..\":n.pop();break;default:n.push(e)}return[e.cwd()].concat(n).join(\"/\").replace(/^\\/+/,\"/\")},At=e=>{const t=e.map((e=>e.trim().replace(/(^[/]*|[/]*$)/g,\"\"))).filter((e=>\"\"!==e&&\".\"!==e)).join(\"/\");return e[0].startsWith(\"/\")?`/${t}`:t},Et=(e,t)=>ht(Ke(e,t)).arrayBuffer(),vt=(e,t,n,r)=>qe((e=>{for(const{files:t,to_file:n,from:r=\"\"}of e){if(void 0!==t&&void 0!==n)throw new Error(\"Cannot use 'to_file' and 'files' parameters together!\");if(void 0===t&&void 0===n&&r.endsWith(\"/\"))throw new Error(`Couldn't determine the filename from the path ${r}, please supply 'to_file' parameter.`)}return e.flatMap((({from:e=\"\",to_folder:t=\".\",to_file:n,files:r})=>{if(Ne(r))return r.map((n=>({url:At([e,n]),path:At([t,n])})));const s=n||e.slice(1+e.lastIndexOf(\"/\"));return[{url:e,path:At([t,s])}]}))})(n).map((({url:n,path:s})=>Et(n,r).then((n=>e.writeFile(t,s,n)))))),St=(e,t)=>t.endsWith(\"/\")?`${t}${e.split(\"/\").pop()}`:t,kt=(e,t)=>e.replace(/\\{.+?\\}/g,(e=>{if(!t.has(e))throw new SyntaxError(`Invalid template: ${e}`);return t.get(e)})),xt=(e,t,n,r)=>qe((e=>{const t=new Map,n=new Set,r=[];for(const[s,o]of Je(e))if(/^\\{.+\\}$/.test(s)){if(t.has(s))throw new SyntaxError(`Duplicated template: ${s}`);t.set(s,kt(o,t))}else{const e=kt(s,t),a=St(e,kt(o||\"./\",t));if(n.has(a)&&!a.endsWith(\"/*\"))throw new SyntaxError(`Duplicated destination: ${a}`);n.add(a),r.push({url:e,path:a})}return r})(n).map((({url:n,path:s})=>Et(n,r).then((r=>e.writeFile(t,s,r,n)))))),jt=({main:e,worker:t},n)=>{const r=[];if(t&&mt)for(let[e,s]of Je(t))e=Ke(e,n),r.push(nt(e,s));if(e&&!mt)for(let[t,s]of Je(e))t=Ke(t,n),st(t)?rt(t):r.push(nt(t,s));return qe(r)},Bt=e=>t=>{dispatchEvent(new CustomEvent(`${e}:progress`,{detail:t}))},{getPrototypeOf:Pt}=Object,$t=e=>{const t=typeof e;switch(t){case\"function\":case\"undefined\":return\"\";case\"object\":return null===e?\"null\":\"object\";default:return t}};let Ot=\"coincident-\";try{new SharedArrayBuffer(4,{maxByteLength:8}),Ot+=crypto.randomUUID()}catch(Pt){Ot+=Math.random().toString(36).substring(2)}var Ft={ref:0,array:1,object:2,number:3,string:4,true:5,false:6,null:7,buffer:8,view:9,symbol:10,date:11,bigint:12,undefined:13,map:14,set:15,regexp:16,error:17};const{defineProperty:Tt}=Object,Rt=e=>{switch(e[Dt++]){case Ft.array:{const t=e[Dt++],n=[];e[Dt-2]=n;for(let r=0;r<t;r++)n[r]=Rt(e);return n}case Ft.object:{const t=e[Dt++],n={};e[Dt-2]=n;for(let r=0;r<t;r++)n[Rt(e)]=Rt(e);return n}case Ft.string:{const t=e[Dt++];return e[Dt-2]=t,t}case Ft.ref:return e[e[Dt++]];case Ft.number:return e[Dt++];case Ft.bigint:return BigInt(e[Dt++]);case Ft.true:return!0;case Ft.false:return!1;case Ft.null:return null;case Ft.undefined:return;case Ft.buffer:{const t=e[Dt++],n=e[Dt++],r=[t];n&&r.push({maxByteLength:n});const s=new ArrayBuffer(...r);e[Dt-3]=s;const o=new Uint8Array(s,0,t);for(let n=0;n<t;n++)o[n]=e[Dt++];return s}case Ft.view:{const t=e[Dt++],n=e[Dt++],r=e[Dt++],s=[Rt(e),n];r&&s.push(r);const o=new globalThis[t](...s);return e[Dt-4]=o,o}case Ft.symbol:return(t=e[Dt++]).startsWith(\"Symbol.\")?Symbol[t.slice(t.indexOf(\".\")+1)]:Symbol.for(t);case Ft.date:{const t=new Date(e[Dt++]);return e[Dt-2]=t,t}case Ft.map:{const t=e[Dt++],n=new Map;e[Dt-2]=n;for(let r=0;r<t;r++){const t=Rt(e),r=Rt(e);void 0!==t&&n.set(t,r)}return n}case Ft.set:{const t=e[Dt++],n=new Set;e[Dt-2]=n;for(let r=0;r<t;r++){const t=Rt(e);void 0!==t&&n.add(t)}return n}case Ft.regexp:{const t=e[Dt++],n=e[Dt++],r=new RegExp(t,n);return e[Dt-3]=r,r}case Ft.error:{const t=globalThis[e[Dt++]]||Error,n=e[Dt++],r=e[Dt++],s=new t(n,{cause:e[Dt++]});return e[Dt-5]=Tt(s,\"stack\",{value:r}),s}default:throw new Error(`Unknown type: ${e[Dt-1]}`)}var t},{parse:Mt}=JSON;let Dt=0;const{isArray:Lt}=Array,{isView:Ct}=ArrayBuffer,{stringify:It}=JSON,Nt=(e,t,n)=>{const r=t.get(n);return\"number\"==typeof r?(e.push(Ft.ref,r),!0):(t.set(n,e.length),!1)},Ut=(e,t,n,r=$t(n))=>{switch(r){case\"null\":e.push(Ft.null);break;case\"object\":if(Nt(e,t,n))break;switch(!0){case Lt(n):{const r=n.length;e.push(Ft.array,r);for(let s=0;s<r;s++)Ut(e,t,n[s]);break}case Ct(n):{const{BYTES_PER_ELEMENT:r,buffer:s,byteOffset:o,length:a}=n;if(e.push(Ft.view,(e=>{for(;!(e.name in globalThis);)e=Pt(e);return e.name})(n.constructor),o,a!==(s.byteLength-o)/r?a:0),Nt(e,t,s))break;n=s}case n instanceof ArrayBuffer:{const t=n.byteLength,r=n.resizable?n.maxByteLength:0;if(e.push(Ft.buffer,t,r),t){const r=new Uint8Array(n,0,t);for(let t=0;t<r.length;t+=65535)e.push.apply(e,r.subarray(t,t+65535))}break}case n instanceof Date:e.push(Ft.date,+n);break;case n instanceof Map:{const r=e.push(Ft.map,0);let s=0;for(const[r,o]of n){const n=$t(r),a=$t(o);n&&a&&(Ut(e,t,r,n),Ut(e,t,o,a),s++)}e[r-1]=s;break}case n instanceof Set:{const r=e.push(Ft.set,0);let s=0;for(const r of n){const n=$t(r);n&&(Ut(e,t,r,n),s++)}e[r-1]=s;break}case n instanceof RegExp:e.push(Ft.regexp,n.source,n.flags);break;case n instanceof Error:e.push(Ft.error,n.name,n.message,n.stack,n.cause);break;default:{if(\"toJSON\"in n){const r=n.toJSON();if(r===n){e.push(Ft.object,0);break}if(Nt(e,t,n=r))break}const r=e.push(Ft.object,0);let s=0;for(const r in n){const o=n[r],a=$t(o);a&&(Ut(e,t,r,\"string\"),Ut(e,t,o,a),s++)}e[r-1]=s;break}}break;case\"boolean\":e.push(n?Ft.true:Ft.false);break;case\"string\":if(Nt(e,t,n))break;e.push(Ft.string,n);break;case\"bigint\":e.push(Ft[r],n.toString());break;case\"symbol\":{const t=(e=>{const t=String(e).slice(7,-1);return t.startsWith(\"Symbol.\")||Symbol.keyFor(e)?t:\"\"})(n);if(t){e.push(Ft[r],t);break}}case\"\":e.push(Ft.undefined);break;default:e.push(Ft[r],n)}},Ht={parse:e=>{Dt=0;const t=Mt(e);return t.length?Rt(t):void 0},stringify:e=>{const t=[];return Ut(t,new Map,e),It(t)}},Wt=new WeakMap,Jt=async(e,t,n,r,s)=>{r.files&&(t(\"Loading files\"),await xt(e,n,r.files,s),t(\"Loaded files\")),r.fetch&&(t(\"Loading fetch\"),await vt(e,n,r.fetch,s),t(\"Loaded fetch\")),r.js_modules&&(t(\"Loading JS modules\"),await jt(r.js_modules,s),t(\"Loaded JS modules\"))},qt=(e,t,n)=>{\"polyscript\"===t&&(n.lazy_py_modules=async(...t)=>(await Wt.get(e)(t),t.map((t=>e.pyimport(t)))),n.storage=async e=>{const t=new i(e);return await t.sync(),t},n.JSON=Ht),e.registerJsModule(t,n)},zt=(e,t)=>{if(e.endsWith(\"/*\")){if(/\\.(zip|whl|tgz|tar(?:\\.gz)?)$/.test(t))return RegExp.$1;throw new Error(`Unsupported archive ${t}`)}return\"\"},Kt=(e,t,...n)=>{try{return e.runPython(Ie(t),...n)}catch(t){Me.get(e).stderr(t)}},Gt=async(e,t,...n)=>{try{return await e.runPythonAsync(Ie(t),...n)}catch(t){Me.get(e).stderr(t)}},Yt=async(e,t,n)=>{const[r,...s]=t.split(\".\");let o,a=e.globals.get(r);for(const e of s)[o,a]=[a,a[e]];try{await a.call(o,n)}catch(t){Me.get(e).stderr(t)}};var Vt=(new TextEncoder).encode(\"_F='github:'\\n_E='user-agent'\\n_D=True\\n_C=False\\n_B='/'\\n_A=None\\nfrom uio import StringIO\\nimport sys\\nclass Response:\\n\\tdef __init__(A,f):A.raw=f;A.encoding='utf-8';A._cached=_A\\n\\tdef close(A):\\n\\t\\tif A.raw:A.raw.close();A.raw=_A\\n\\t\\tA._cached=_A\\n\\t@property\\n\\tdef content(self):\\n\\t\\tA=self\\n\\t\\tif A._cached is _A:\\n\\t\\t\\ttry:A._cached=A.raw.read()\\n\\t\\t\\tfinally:A.raw.close();A.raw=_A\\n\\t\\treturn A._cached\\n\\t@property\\n\\tdef text(self):return str(self.content,self.encoding)\\n\\tdef json(A):import ujson;return ujson.loads(A.content)\\nHEADERS_TO_IGNORE=_E,\\ntry:import js\\nexcept Exception as err:raise OSError('This version of urequests can only be used in the browser')\\nHEADERS_TO_IGNORE=_E,\\ndef request(method,url,data=_A,json=_A,headers={},stream=_A,auth=_A,timeout=_A,parse_headers=_D):\\n\\tE=timeout;D=method;C=data;from js import XMLHttpRequest as G;A=G.new();A.withCredentials=_C\\n\\tif auth is not _A:import ubinascii;H,I=auth;A.open(D,url,_C,H,I)\\n\\telse:A.open(D,url,_C)\\n\\tfor(F,J)in headers.items():\\n\\t\\tif F.lower()not in HEADERS_TO_IGNORE:A.setRequestHeader(F,J)\\n\\tif E:A.timeout=int(E*1000)\\n\\tif json is not _A:assert C is _A;import ujson;C=ujson.dumps(json);A.setRequestHeader('Content-Type','application/json')\\n\\tA.send(C);B=Response(StringIO(A.responseText));B.status_code=A.status;B.reason=A.statusText;B.headers=A.getAllResponseHeaders();return B\\ndef get(url,**A):return request('GET',url,**A)\\n_PACKAGE_INDEX=const('https://micropython.org/pi/v2')\\n_CHUNK_SIZE=128\\ndef _ensure_path_exists(path):\\n\\timport os;A=path.split(_B)\\n\\tif not A[0]:A.pop(0);A[0]=_B+A[0]\\n\\tB=''\\n\\tfor C in range(len(A)-1):\\n\\t\\tB+=A[C]\\n\\t\\ttry:os.stat(B)\\n\\t\\texcept:os.mkdir(B)\\n\\t\\tB+=_B\\ndef _chunk(src,dest):\\n\\tA=memoryview(bytearray(_CHUNK_SIZE))\\n\\twhile _D:\\n\\t\\tB=src.readinto(A)\\n\\t\\tif B==0:break\\n\\t\\tdest(A if B==_CHUNK_SIZE else A[:B])\\ndef _check_exists(path,short_hash):\\n\\tA=short_hash;import os\\n\\ttry:\\n\\t\\timport binascii as C,hashlib as D\\n\\t\\twith open(path,'rb')as E:B=D.sha256();_chunk(E,B.update);F=str(C.hexlify(B.digest())[:len(A)],'utf-8');return F==A\\n\\texcept:return _C\\ndef _rewrite_url(url,branch=_A):\\n\\tB=branch;A=url\\n\\tif not B:B='HEAD'\\n\\tif A.startswith(_F):A=A[7:].split(_B);A='https://raw.githubusercontent.com/'+A[0]+_B+A[1]+_B+B+_B+_B.join(A[2:])\\n\\treturn A\\ndef _download_file(url,dest):\\n\\tB=dest;A=get(url)\\n\\ttry:\\n\\t\\tif A.status_code!=200:print('Error',A.status_code,'requesting',url);return _C\\n\\t\\tprint('Copying:',B);_ensure_path_exists(B)\\n\\t\\twith open(B,'wb')as C:_chunk(A.raw,C.write)\\n\\t\\treturn _D\\n\\tfinally:A.close()\\ndef _install_json(package_json_url,index,target,version,mpy):\\n\\tK='File not found: {} {}';I=version;H=index;G=package_json_url;D=target;E=get(_rewrite_url(G,I))\\n\\ttry:\\n\\t\\tif E.status_code!=200:print('Package not found:',G);return _C\\n\\t\\tF=E.json()\\n\\tfinally:E.close()\\n\\tfor(A,C)in F.get('hashes',()):\\n\\t\\tB=D+_B+A\\n\\t\\tif _check_exists(B,C):print('Exists:',B)\\n\\t\\telse:\\n\\t\\t\\tL='{}/file/{}/{}'.format(H,C[:2],C)\\n\\t\\t\\tif not _download_file(L,B):print(K.format(A,C));return _C\\n\\tfor(A,J)in F.get('urls',()):\\n\\t\\tB=D+_B+A\\n\\t\\tif not _download_file(_rewrite_url(J,I),B):print(K.format(A,J));return _C\\n\\tfor(M,N)in F.get('deps',()):\\n\\t\\tif not _install_package(M,H,D,N,mpy):return _C\\n\\treturn _D\\ndef _install_package(package,index,target,version,mpy):\\n\\tD=index;C=target;B=version;A=package\\n\\tif A.startswith('http://')or A.startswith('https://')or A.startswith(_F):\\n\\t\\tif A.endswith('.py')or A.endswith('.mpy'):print('Downloading {} to {}'.format(A,C));return _download_file(_rewrite_url(A,B),C+_B+A.rsplit(_B)[-1])\\n\\t\\telse:\\n\\t\\t\\tif not A.endswith('.json'):\\n\\t\\t\\t\\tif not A.endswith(_B):A+=_B\\n\\t\\t\\t\\tA+='package.json'\\n\\t\\t\\tprint('Installing {} to {}'.format(A,C))\\n\\telse:\\n\\t\\tif not B:B='latest'\\n\\t\\tprint('Installing {} ({}) from {} to {}'.format(A,B,D,C));E=sys.implementation._mpy&255 if mpy and hasattr(sys.implementation,'_mpy')else'py';A='{}/package/{}/{}/{}.json'.format(D,'py',A,B)\\n\\treturn _install_json(A,D,C,B,mpy)\\ndef install(package,index=_A,target=_A,version=_A,mpy=_D):\\n\\tB=target;A=index\\n\\tif not B:\\n\\t\\tfor C in sys.path:\\n\\t\\t\\tif C.endswith('/lib'):B=C;break\\n\\t\\telse:print('Unable to find lib dir in sys.path');return\\n\\tif not A:A=_PACKAGE_INDEX\\n\\tif _install_package(package,A.rstrip(_B),B,version,mpy):print('Done')\\n\\telse:print('Package may be partially installed')\");const Xt=async e=>(await import(\"./toml-DiUM0_qs.js\")).parse(e);async function Zt(e,t){return new Promise(((n,r)=>{e.syncfs(t,(e=>{e?r(e):n()}))}))}function Qt(e){const t=e.FS,n=e.FS.filesystems.MEMFS,r=e.PATH,s={DIR_MODE:16895,FILE_MODE:33279,mount:function(e){if(!e.opts.fileSystemHandle)throw new Error(\"opts.fileSystemHandle is required\");return n.mount.apply(null,arguments)},syncfs:async(e,t,n)=>{try{const r=s.getLocalSet(e),o=await s.getRemoteSet(e),a=t?o:r,i=t?r:o;await s.reconcile(e,a,i),n(null)}catch(e){n(e)}},getLocalSet:e=>{let n=Object.create(null);function s(e){return\".\"!==e&&\"..\"!==e}function o(e){return t=>r.join2(e,t)}let a=t.readdir(e.mountpoint).filter(s).map(o(e.mountpoint));for(;a.length;){let e=a.pop(),r=t.stat(e);t.isDir(r.mode)&&a.push.apply(a,t.readdir(e).filter(s).map(o(e))),n[e]={timestamp:r.mtime,mode:r.mode}}return{type:\"local\",entries:n}},getRemoteSet:async e=>{const t=Object.create(null),n=await en(e.opts.fileSystemHandle);for(const[o,a]of n)\".\"!==o&&(t[r.join2(e.mountpoint,o)]={timestamp:\"file\"===a.kind?(await a.getFile()).lastModifiedDate:new Date,mode:\"file\"===a.kind?s.FILE_MODE:s.DIR_MODE});return{type:\"remote\",entries:t,handles:n}},loadLocalEntry:e=>{const r=t.lookupPath(e).node,s=t.stat(e);if(t.isDir(s.mode))return{timestamp:s.mtime,mode:s.mode};if(t.isFile(s.mode))return r.contents=n.getFileDataAsTypedArray(r),{timestamp:s.mtime,mode:s.mode,contents:r.contents};throw new Error(\"node type not supported\")},storeLocalEntry:(e,n)=>{if(t.isDir(n.mode))t.mkdirTree(e,n.mode);else{if(!t.isFile(n.mode))throw new Error(\"node type not supported\");t.writeFile(e,n.contents,{canOwn:!0})}t.chmod(e,n.mode),t.utime(e,n.timestamp,n.timestamp)},removeLocalEntry:e=>{var n=t.stat(e);t.isDir(n.mode)?t.rmdir(e):t.isFile(n.mode)&&t.unlink(e)},loadRemoteEntry:async e=>{if(\"file\"===e.kind){const t=await e.getFile();return{contents:new Uint8Array(await t.arrayBuffer()),mode:s.FILE_MODE,timestamp:t.lastModifiedDate}}if(\"directory\"===e.kind)return{mode:s.DIR_MODE,timestamp:new Date};throw new Error(\"unknown kind: \"+e.kind)},storeRemoteEntry:async(e,n,s)=>{const o=e.get(r.dirname(n)),a=t.isFile(s.mode)?await o.getFileHandle(r.basename(n),{create:!0}):await o.getDirectoryHandle(r.basename(n),{create:!0});if(\"file\"===a.kind){const e=await a.createWritable();await e.write(s.contents),await e.close()}e.set(n,a)},removeRemoteEntry:async(e,t)=>{const n=e.get(r.dirname(t));await n.removeEntry(r.basename(t)),e.delete(t)},reconcile:async(e,n,o)=>{let a=0;const i=[];Object.keys(n.entries).forEach((function(e){const r=n.entries[e],s=o.entries[e];(!s||t.isFile(r.mode)&&r.timestamp.getTime()>s.timestamp.getTime())&&(i.push(e),a++)})),i.sort();const c=[];if(Object.keys(o.entries).forEach((function(e){n.entries[e]||(c.push(e),a++)})),c.sort().reverse(),!a)return;const l=\"remote\"===n.type?n.handles:o.handles;for(const t of i){const n=r.normalize(t.replace(e.mountpoint,\"/\")).substring(1);if(\"local\"===o.type){const e=l.get(n),r=await s.loadRemoteEntry(e);s.storeLocalEntry(t,r)}else{const e=s.loadLocalEntry(t);await s.storeRemoteEntry(l,n,e)}}for(const t of c)if(\"local\"===o.type)s.removeLocalEntry(t);else{const n=r.normalize(t.replace(e.mountpoint,\"/\")).substring(1);await s.removeRemoteEntry(l,n)}}};return e.FS.filesystems.NATIVEFS_ASYNC=s,async function(e,n){if(\"FileSystemDirectoryHandle\"!==n.constructor.name)throw new TypeError(\"Expected argument 'fileSystemHandle' to be a FileSystemDirectoryHandle\");return function(e){t.mkdirTree?t.mkdirTree(e):bt(t,e);const{node:n}=t.lookupPath(e,{follow_mount:!1});if(t.isMountpoint(n))throw new Error(`path '${e}' is already a file system mount point`);if(!t.isDir(n.mode))throw new Error(`path '${e}' points to a file not a directory`);for(const t in n.contents)throw new Error(`directory '${e}' is not empty`)}(e),t.mount(t.filesystems.NATIVEFS_ASYNC,{fileSystemHandle:n},e),await Zt(t,!0),{syncfs:async()=>await Zt(t,!1)}}}const en=async e=>{const t=[];await async function e(n){for await(const r of n.values())t.push(r),\"directory\"===r.kind&&await e(r)}(e);const n=new Map;n.set(\".\",e);for(const r of t){const t=(await e.resolve(r)).join(\"/\");n.set(t,r)}return n},tn=(e,t)=>{try{e.mkdir(t)}catch(e){}},nn=Bt(\"mpy\");var rn={type:\"micropython\",module:(e=\"1.24.1\")=>`https://cdn.jsdelivr.net/npm/@micropython/micropython-webassembly-pyscript@${e}/micropython.mjs`,async engine({loadMicroPython:e},t,n,r){const{stderr:s,stdout:o,get:a}=De({stderr:Ce(console.error),stdout:Ce(console.log)});n=n.replace(/\\.m?js$/,\".wasm\"),nn(\"Loading MicroPython\");const i=await a(e({linebuffer:!1,stderr:s,stdout:o,url:n})),c=sn.bind(this,i,r);return Wt.set(i,c),await Jt(this,nn,i,t,r),this.writeFile(i,\"./mip.py\",Vt),t.packages&&(nn(\"Loading packages\"),await c(t.packages.map(Ge,r)),nn(\"Loaded packages\")),nn(\"Loaded MicroPython\"),i.mountNativeFS||(i.mountNativeFS=Qt(i._module)),i},registerJSModule:qt,run:Kt,runAsync:Gt,runEvent:Yt,transform:(e,t)=>e.PyProxy.toJs(t),writeFile:(e,t,n,r)=>{const{FS:s,_module:{PATH:o,PATH_FS:a}}=e,i={FS:s,PATH:o,PATH_FS:a},c=zt(t,r);if(c){const r=t.slice(0,-1);switch(\"./\"!==r&&s.mkdir(r),c){case\"whl\":case\"zip\":{const e=new Blob([n],{type:\"application/zip\"});return import(\"./zip-DxlTOqbw.js\").then((async({BlobReader:t,Uint8ArrayWriter:n,ZipReader:a})=>{const i=new a(new t(e));for(const e of await i.getEntries()){const{directory:t,filename:a}=e,i=r+a;if(t)tn(s,i);else{tn(s,o.dirname(i));const t=await e.getData(new n);s.writeFile(i,t,{canOwn:!0})}}i.close()}))}case\"tgz\":case\"tar.gz\":{const t=\"./_.tar.gz\";return wt(i,t,n),void e.runPython(`\\n import os, gzip, tarfile\\n tar = tarfile.TarFile(fileobj=gzip.GzipFile(fileobj=open(\"${t}\", \"rb\")))\\n for f in tar:\\n name = f\"${r}{f.name}\"\\n if f.type == tarfile.DIRTYPE:\\n if f.name != \"./\":\\n os.mkdir(name.strip(\"/\"))\\n else:\\n dir = os.path.dirname(name)\\n if not os.path.exists(dir):\\n os.mkdir(dir)\\n source = tar.extractfile(f)\\n with open(name, \"wb\") as dest:\\n dest.write(source.read())\\n dest.close()\\n tar.close()\\n os.remove(\"${t}\")\\n `)}}}return wt(i,t,n)}};async function sn(e,t,n){let r;for(const s of n)if(s.endsWith(\".whl\")){const n=Ke(s,t),r=await ht(n).arrayBuffer();await this.writeFile(e,\"./*\",r,n)}else r||(r=e.pyimport(\"mip\")),r.install(s)}const on={dict_converter:Object.fromEntries},{stringify:an}=JSON;let cn=!1;const ln=e=>(...t)=>{try{return cn=!0,e(...t)}finally{cn=!1}};let un=!1;const pn=()=>{if(un)return;un=!0;const e=new WeakMap,t=e=>e.destroy(),n=n=>{for(let r=0;r<n.length;r++){const s=n[r];if(\"function\"==typeof s&&\"copy\"in s){cn=!1;let o=e.get(s)?.deref();if(!o)try{o=le(s.copy(),t),e.set(s,new WeakRef(o))}catch(e){console.error(e)}o&&(n[r]=o),cn=!0}}},{call:r}=Function,s=r.bind(r,r.apply);Object.defineProperties(Function.prototype,{apply:{value(e,t){return cn&&n(t),s(this,e,t)}},call:{value(e,...t){return cn&&n(t),s(this,e,t)}}})},dn=Bt(\"py\"),fn=new WeakMap;var yn={type:\"pyodide\",module:(e=\"0.27.5\")=>`https://cdn.jsdelivr.net/pyodide/v${e}/full/pyodide.mjs`,async engine({loadPyodide:e},t,n,r){mt||\"auto\"!==t.experimental_create_proxy||pn(),dn(\"Loading Pyodide\");let{packages:s,index_urls:o}=t;s&&(s=s.map(Ge,r)),dn(\"Loading Storage\");const a=n.slice(0,n.lastIndexOf(\"/\")),c=new i(a),l={indexURL:a},u=\"never\"!==t.packages_cache;if(await c.sync(),u){if(s){s=s.sort();const e=an(s);if(c.has(e)){const t=new Blob([c.get(e)],{type:\"application/json\"});l.lockFileURL=URL.createObjectURL(t),l.packages=s.map((e=>e.split(/[>=<]=/)[0])),s=null}}}else c.clear();dn(\"Loaded Storage\");const{stderr:p,stdout:d,get:f}=De(),y=await f(e({stderr:p,stdout:d,...l})),h=mn.bind(y);return o&&fn.set(y,o),Wt.set(y,h),await Jt(this,dn,y,t,r),s&&await h(s,c,u),await c.close(),l.lockFileURL&&URL.revokeObjectURL(l.lockFileURL),dn(\"Loaded Pyodide\"),y},registerJSModule:qt,run:ln(Kt),runAsync:ln(Gt),runEvent:ln(Yt),transform:(e,t)=>hn.call(e,t),writeFile:(e,t,n,r)=>{const s=zt(t,r);if(s)return e.unpackArchive(n,s,{extractDir:t.slice(0,-1)});const{FS:o,PATH:a,_module:{PATH_FS:i}}=e;return wt({FS:o,PATH:a,PATH_FS:i},t,n)}};function hn(e){const{ffi:{PyProxy:t}}=this;if(e&&\"object\"==typeof e){if(e instanceof t)return e.toJs(on);if(e instanceof Map)return new Map([...e.entries()]);if(Ne(e))return e.map(hn,this)}return e}async function mn(e,t,n=!1){const{log:r}=console,s=(e,...t)=>{r(e,...t),console.log=r,dn(e),console.log=s};console.log=s,await this.loadPackage(\"micropip\");const o=this.pyimport(\"micropip\");if(fn.has(this)&&o.set_index_urls(fn.get(this)),await o.install(e,{keep_going:!0}),console.log=r,n&&t instanceof i){const n=o.freeze();t.set(an(e),n)}o.destroy()}const wn=\"ruby-wasm-wasi\",gn=wn.replace(/\\W+/g,\"_\");var bn={type:wn,experimental:!0,module:(e=\"2.7.1\")=>`https://cdn.jsdelivr.net/npm/@ruby/3.2-wasm-wasi@${e}/dist/browser/+esm`,async engine({DefaultRubyVM:e},t,n,r){n=n.replace(/\\/browser\\/\\+esm$/,\"/ruby.wasm\");const s=await ht(n).arrayBuffer(),o=await WebAssembly.compile(s),{vm:a}=await e(o);return t.files&&await xt(this,a,t.files,r),t.fetch&&await vt(this,a,t.fetch,r),t.js_modules&&await jt(t.js_modules,r),a},registerJSModule(e,t,n){t=t.replace(/\\W+/g,\"__\");const r=`__module_${gn}_${t}`;globalThis[r]=n,this.run(e,`require \"js\";$${t}=JS.global[:${r}]`),delete globalThis[r]},run:(e,t,...n)=>e.eval(Ie(t),...n),runAsync:(e,t,...n)=>e.evalAsync(Ie(t),...n),async runEvent(e,t,n){if(/^xworker\\.(on\\w+)$/.test(t)){const{$1:t}=RegExp,r=`__module_${gn}_event`;globalThis[r]=n,this.run(e,`require \"js\";$xworker.call(\"${t}\",JS.global[:${r}])`),delete globalThis[r]}else{const r=this.run(e,`method(:${t})`);await r.call(t,e.wrap(n))}},transform:(e,t)=>t,writeFile:()=>{throw new Error(`writeFile is not supported in ${wn}`)}};var _n={type:\"wasmoon\",module:(e=\"1.16.0\")=>`https://cdn.jsdelivr.net/npm/wasmoon@${e}/+esm`,async engine({LuaFactory:e,LuaLibraries:t},n,r,s){const{stderr:o,stdout:a,get:i}=De(),c=await i((new e).createEngine());return c.global.getTable(t.Base,(e=>{c.global.setField(e,\"print\",a),c.global.setField(e,\"printErr\",o)})),n.files&&await xt(this,c,n.files,s),n.fetch&&await vt(this,c,n.fetch,s),n.js_modules&&await jt(n.js_modules,s),c},registerJSModule:(e,t,n)=>{e.global.set(t,n)},run:(e,t,...n)=>{try{return e.doStringSync(Ie(t),...n)}catch(t){Me.get(e).stderr(t)}},runAsync:async(e,t,...n)=>{try{return await e.doString(Ie(t),...n)}catch(t){Me.get(e).stderr(t)}},runEvent:async(e,t,n)=>{const[r,...s]=t.split(\".\");let o,a=e.global.get(r);for(const e of s)[o,a]=[a,a[e]];try{await a.call(o,n)}catch(t){Me.get(e).stderr(t)}},transform:(e,t)=>t,writeFile:({cmodule:{module:{FS:e}}},t,n)=>((e,t,n)=>(bt(e,gt(t)),t=_t(e,t),e.writeFile(t,new Uint8Array(n),{canOwn:!0})))(e,t,n)};const An=new WeakMap,En=async(e,t)=>{const{shelter:n,destroy:r,io:s}=An.get(e),{output:o,result:a}=await n.captureR(Ie(t));for(const{type:e,data:t}of o)s[e](t);return le(a,r,{token:!1})};var vn={type:\"webr\",experimental:!0,module:(e=\"0.4.2\")=>`https://cdn.jsdelivr.net/npm/webr@${e}/dist/webr.mjs`,async engine(e,t,n,r){const{get:s}=De(),o=new e.WebR;await s(o.init().then((()=>o)));const a=await new o.Shelter;return An.set(o,{module:e,shelter:a,destroy:a.destroy.bind(a),io:Me.get(o)}),t.files&&await xt(this,o,t.files,r),t.fetch&&await vt(this,o,t.fetch,r),t.js_modules&&await jt(t.js_modules,r),o},registerJSModule(e,t){console.warn(`Experimental interpreter: module ${t} is not supported (yet)`)},run:En,runAsync:En,async runEvent(e,t,n){await e.evalRVoid(`${t}(event)`,{env:{event:{type:[n.type]}}})},transform:(e,t)=>(console.log(\"transforming\",t),t),writeFile:()=>{}};const Sn=new Map,kn=new Map,xn=new Proxy(new Map,{get(e,t){if(!e.has(t)){const[n,...r]=t.split(\"@\"),s=Sn.get(n),o=/^(?:\\.?\\.?\\/|[a-z0-9-]+:\\/\\/)/i.test(r)?r.join(\"@\"):s.module(...r);e.set(t,{url:o,module:import(o),engine:s.engine.bind(s)})}const{url:n,module:r,engine:s}=e.get(t);return(e,o)=>r.then((r=>(kn.set(t,e),s(r,e,n,o))))}}),jn=e=>{for(const t of[].concat(e.type))Sn.set(t,e)};for(const e of[pt,rn,yn,bn,_n,vn])jn(e);const{parse:Bn}=JSON,Pn=(e,t,n={})=>{const[r,s]=((e,t=\"./config.txt\")=>{let n=typeof e;return\"string\"===n&&/\\.(json|toml|txt)$/.test(e)?n=RegExp.$1:e=t,[Ke(e),n]})(e,t);return\"json\"===s?n=ht(r).json():\"toml\"===s?n=ht(r).text().then(Xt):\"string\"===s?n=$n(e):\"object\"===s&&e?n=e:\"txt\"===s&&\"string\"==typeof n&&(n=$n(n)),[n,e=r]},$n=e=>{try{return Bn(e)}catch(t){return Xt(e)}},On=\"BeforeRun\",Fn=\"AfterRun\",Tn=[`code${On}`,`code${On}Async`,`code${Fn}`,`code${Fn}Async`],Rn=[\"onWorker\",\"onReady\",`on${On}`,`on${On}Async`,`on${Fn}`,`on${Fn}Async`];function Mn(e,t){const{run:n,runAsync:r}=Sn.get(this.type);return{...e,run:n.bind(this,t),runAsync:r.bind(this,t)}}const Dn=(e,t,n,r,s,o)=>{if(s||o){const a=Mn.bind(e,t),i=r?\"runAsync\":\"run\",c=e[i];e[i]=r?async function(e,t,...r){s&&await s.call(this,a(e),n);const i=await c.call(this,e,t,...r);return o&&await o.call(this,a(e),n),i}:function(e,t,...r){s&&s.call(this,a(e),n);const i=c.call(this,e,t,...r);return o&&o.call(this,a(e),n),i}}};let Ln,Cn,In;const Nn=(e,t)=>{addEventListener(e,t||(async t=>{try{await Ln,Cn(`xworker.on${e}`,t)}catch(e){postMessage(e)}}),!!t&&{once:!0})},{proxy:Un,native:Hn,window:Wn,isWindowProxy:Jn}=await(async e=>{let t=!1;const n=e?.decoder||O,r=await J({...e,decoder(e){const r=n(e),s=H(e);return(e,n)=>t?(t=!1,s(e,n)):r(e,n)}}),s=r.proxy[w],{isProxy:o,global:a,method:i}=Te((function(...e){return t=!0,s.apply(this,e)}),e?.transform||(e=>e));return r.proxy[g]=i,{...r,window:a,isWindowProxy:o}})({decoder:h,transform:e=>In?In(e):e}),qn={polyfill:!Hn,sync:Un,window:Hn?Wn:null,isWindowProxy:Jn,onmessage:console.info,onerror:console.error,onmessageerror:console.warn,postMessage:postMessage.bind(self)};Nn(\"message\",(({data:{options:e,config:t,configURL:n,code:r,hooks:s}})=>{Ln=(async()=>{try{const{id:o,tag:c,type:l,custom:u,version:p,config:d,async:f}=e,y=((e,t=\"\")=>`${e}@${t}`.replace(/@$/,\"\"))(l,p),h=await((e,t,n,r={})=>(t&&([r,t]=Pn(t,n,r)),ze(r).then((n=>xn[e](n,t)))))(y,t,n,d),{js_modules:m}=kn.get(y),w=m?.main,g=He(Sn.get(l)),b=((e,t,n,r)=>({type:t,config:n,interpreter:r,io:Me.get(r),run:(t,...n)=>e.run(r,t,...n),runAsync:(t,...n)=>e.runAsync(r,t,...n),runEvent:(...t)=>e.runEvent(r,...t)}))(g,u||l,d||{},h);let _=\"run\";if(f&&(_+=\"Async\"),s){let e,t,n=\"\",r=\"\";for(const e of Tn){const t=s[e];if(t){const s=e.endsWith(\"Async\");(s&&f||!s&&!f)&&(e.startsWith(\"codeBefore\")?n=t:r=t)}}(n||r)&&((e,t,n,r)=>{const s=e[t].bind(e);e[t]=\"run\"===t?(e,t,...o)=>{n&&s(e,n,...o);const a=s(e,Xe(t),...o);return r&&s(e,r,...o),a}:async(e,t,...o)=>{n&&await s(e,n,...o);const a=await s(e,Xe(t),...o);return r&&await s(e,r,...o),a}})(g,_,n,r);for(const n of Rn.slice(2)){const r=s[n];if(r){const s=n.endsWith(\"Async\");if(s&&f||!s&&!f){const s=Ve(r);n.startsWith(\"onBefore\")?e=s:t=s}}}Dn(g,b,qn,f,e,t)}let A,E,v,S=null,k=\"\";Hn&&(({CustomEvent:A,document:E}=Wn),S=o&&E.getElementById(o)||null,v=e=>Ye(S,u||l,e,!0,A));const x=it(Wn,Un,w,t);if(((e,t,n,r)=>{if(\"pyodide\"===e)return;const s=\"polyscript.js_modules\";for(const e of Reflect.ownKeys(r))t.registerJSModule(n,`${s}.${e}`,tt(r,e));t.registerJSModule(n,s,r)})(l,g,h,x),g.registerJSModule(h,\"polyscript\",{IDBMap:a,IDBMapSync:i,xworker:qn,currentScript:S,config:b.config,js_modules:x,get target(){return!k&&S&&(\"SCRIPT\"===c?S.after(Ue(Wn.document.createElement(`script-${u||l}`),{id:k=`${o}-target`})):(k=o,S.replaceChildren(),S.style.display=\"block\")),k}}),Cn=g.runEvent.bind(g,h),In=g.transform.bind(g,h),S&&v(\"ready\"),s?.onReady&&Ve(s?.onReady).call(g,Mn.call(g,b,h),qn),await g[_](h,r),[\"micropython\",\"pyodide\"].includes(g.type)){const e=\"polyscript\",t=`__${e}_workers__`,n=\"__export__\";h.runPython([`import js as ${t}`,`${t}.${t} = \"${n}\" in locals() and ${n} or []`,`del ${t}`].join(\"\\n\"));const r=[...globalThis[t]];delete globalThis[t],r.length&&h.runPython([`from ${e} import xworker as ${t}`,...r.map((e=>`${t}.sync.${e} = ${e}`)),`del ${t}`].join(\"\\n\"))}return S&&v(\"done\"),postMessage(\"polyscript:done\"),h}catch(e){postMessage(e)}})(),Nn(\"error\"),Nn(\"message\"),Nn(\"messageerror\"),Hn&&addEventListener(\"py:progress\",(({type:e,detail:t})=>{Wn.dispatchEvent(new Wn.CustomEvent(e,{detail:t}))}))}));\n".replace(re,place)],{type:'application/javascript'})), ...args)
import { encoder } from 'coincident/flatted/encoder';
import coincident from 'coincident/window/main';
const { Worker } = coincident({ encoder, transfer: false });
export default (...args) => new Worker(URL.createObjectURL(new Blob(["const{assign:e}=Object,t=\"entries\",n=\"readonly\",r=\"readwrite\",s={durability:\"default\",prefix:\"IDBMap\"},o=({target:{result:e}})=>e;class a extends EventTarget{#e;#t;#n;async#r(n,r){const s=(await this.#e).transaction(t,r,this.#t);return new Promise(((r,o)=>e(n(s.objectStore(t)),{onsuccess:r,onerror:o})))}constructor(n,{durability:r=s.durability,prefix:a=s.prefix}=s){super(),this.#n=a,this.#t={durability:r},this.#e=new Promise(((r,s)=>{e(indexedDB.open(`${this.#n}/${n}`),{onupgradeneeded({target:{result:e,transaction:n}}){e.objectStoreNames.length||e.createObjectStore(t),n.oncomplete=()=>r(e)},onsuccess(e){r(o(e))},onerror(e){s(e),this.dispatchEvent(e)}})})).then((e=>{const t=this.dispatchEvent.bind(this);for(const n in e)n.startsWith(\"on\")&&(e[n]=t);return e}))}dispatchEvent(t){const{type:n,message:r,isTrusted:s}=t;return super.dispatchEvent(s?e(new Event(n),{message:r}):t)}async close(){(await this.#e).close()}get size(){return this.#r((e=>e.count()),n).then(o)}async clear(){await this.#r((e=>e.clear()),r)}async delete(e){await this.#r((t=>t.delete(e)),r)}async entries(){const e=await this.keys();return Promise.all(e.map((e=>this.get(e).then((t=>[e,t])))))}async forEach(e,t=this){for(const[n,r]of await this.entries())await e.call(t,r,n,this)}async get(e){return await this.#r((t=>t.get(e)),n).then(o)}async has(e){return void 0!==await this.#r((t=>t.getKey(e)),n).then(o)}async keys(){return await this.#r((e=>e.getAllKeys()),n).then(o)}async set(e,t){return await this.#r((n=>n.put(t,e)),r),this}async values(){const e=await this.keys();return Promise.all(e.map((e=>this.get(e))))}get[Symbol.toStringTag](){return this.#n}}class i extends Map{#s;#o;constructor(...e){super(),this.#s=new a(...e),this.#o=this.#s.entries().then((e=>{for(const[t,n]of e)super.set(t,n)}))}async close(){await this.#o,await this.#s.close()}async sync(){await this.#o}clear(){return this.#o=this.#o.then((()=>this.#s.clear())),super.clear()}delete(e){return this.#o=this.#o.then((()=>this.#s.delete(e))),super.delete(e)}set(e,t){return this.#o=this.#o.then((()=>this.#s.set(e,t))),super.set(e,t)}}let c=\"coincident-\";try{new SharedArrayBuffer(4,{maxByteLength:8}),c+=crypto.randomUUID()}catch(kn){c+=Math.random().toString(36).substring(2)}const{fromCharCode:l}=String,{min:u}=Math;const{defineProperty:p}=Object,d=e=>{switch(e[y++]){case 1:{const t=e[y++],n=[];e[y-2]=n;for(let r=0;r<t;r++)n[r]=d(e);return n}case 2:{const t=e[y++],n={};e[y-2]=n;for(let r=0;r<t;r++)n[d(e)]=d(e);return n}case 4:{const t=e[y++];return e[y-2]=t,t}case 0:return e[e[y++]];case 3:return e[y++];case 12:return BigInt(e[y++]);case 5:return!0;case 6:return!1;case 7:return null;case 13:return;case 8:{const t=e[y++],n=e[y++],r=[t];n&&r.push({maxByteLength:n});const s=new ArrayBuffer(...r);e[y-3]=s;const o=new Uint8Array(s,0,t);for(let n=0;n<t;n++)o[n]=e[y++];return s}case 9:{const t=e[y++],n=e[y++],r=e[y++],s=y-4,o=[d(e),n];r&&o.push(r);const a=new globalThis[t](...o);return e[s]=a,a}case 10:return(t=e[y++]).startsWith(\"Symbol.\")?Symbol[t.slice(t.indexOf(\".\")+1)]:Symbol.for(t);case 11:{const t=new Date(e[y++]);return e[y-2]=t,t}case 14:{const t=e[y++],n=new Map;e[y-2]=n;for(let r=0;r<t;r++){const t=d(e),r=d(e);void 0!==t&&n.set(t,r)}return n}case 15:{const t=e[y++],n=new Set;e[y-2]=n;for(let r=0;r<t;r++){const t=d(e);void 0!==t&&n.add(t)}return n}case 16:{const t=e[y++],n=e[y++],r=new RegExp(t,n);return e[y-3]=r,r}case 17:{const t=globalThis[e[y++]]||Error,n=e[y++],r=e[y++],s=new t(n,{cause:e[y++]});return e[y-5]=p(s,\"stack\",{value:r}),s}default:throw new TypeError(`Unknown type: ${e[y-1]}`)}var t},{parse:f}=JSON;let y=0;const h=(e=>({byteOffset:t=0}={})=>(n,r)=>{const s=new Uint16Array(r,t,n);let o=\"\",a=0;for(;a<n;){const e=u(a+32767,n);o+=l.apply(null,s.subarray(a,e)),a=e}return e(o)})((e=>(e=>(y=0,e.length?d(e):void 0))(f(e)))),m=\"cea177e6\",w=\"=\"+m,g=\"-\"+m,{create:b}=Object;let _=\"coincident-\",A=!0;try{new SharedArrayBuffer(4,{maxByteLength:8}),_+=crypto.randomUUID()}catch(e){A=!1,_+=Math.random().toString(36).substring(2)}const E=2*Int32Array.BYTES_PER_ELEMENT,v={byteOffset:E,useUTF16:!0,circular:!0},S=(e,t,n)=>{const r=\"then\"!==t;return r&&(e[t]=n),r},{fromCharCode:k}=String,{min:x}=Math;var j=e=>({byteOffset:t=0}={})=>(n,r)=>{const s=new Uint16Array(r,t,n);let o=\"\",a=0;for(;a<n;){const e=x(a+32767,n);o+=k.apply(null,s.subarray(a,e)),a=e}return e(o)};const{parse:B}=JSON,P=j(B),$=\"array\",T=\"bigint\",F=\"boolean\",O=\"function\",R=\"null\",M=\"number\",D=\"object\",L=\"string\",C=\"symbol\",I=\"undefined\";var N={[$]:0,[T]:1,[F]:2,[O]:3,[R]:4,[M]:5,[D]:6,[L]:7,[C]:8,[I]:9,view:10};const{parse:U}=JSON,H=j((e=>{const t=U(e);switch(t[0]){case N.view:{const[e,n]=t[1],r=new Uint8Array(n);t[1]=new globalThis[e](r.buffer);break}case N[I]:t[1]=void 0;break;case N[T]:t[1]=BigInt(t[1])}return t})),W=Promise.withResolvers.bind(Promise);const J=[],q=new WeakSet,z=(...e)=>(q.add(e),e),K=Promise.withResolvers();addEventListener(\"message\",(e=>{(e=>{e.stopImmediatePropagation(),e.preventDefault()})(e),K.resolve([e.data,e.ports[0]])}),{once:!0});var G=async e=>{const[t,n]=await K.promise,r=A&&!!t,s=e?.transform,o=(e?.decoder||P)(v),a=!1!==e?.transfer;let i,c;if(A){const t=new SharedArrayBuffer(e?.minByteLength||32767,{maxByteLength:e?.maxByteLength||16777216});i=new Int32Array(t),c=Atomics.wait}const[l,u]=((e=e=>e)=>{const t=new Map;let n=0;return[()=>{let r;do{r=e(n++)}while(t.has(r));const s=W();return t.set(r,s),[r,s.promise]},(e,n,r)=>{const s=t.get(e);t.delete(e),r?s?.reject(r):s?.resolve(n)}]})(String),p=new Map,d=b(null),f=new Proxy(d,{get(e,u){if(\"then\"===u)return;let d=p.get(u);return d||p.set(u,d=(...e)=>{const p=((e,t)=>{let n=J;return e&&q.has(t.at(-1)||J)&&(n=t.pop(),q.delete(n)),n})(a,e),d=[i,u,s?e.map(s):e];if(A){r?postMessage({ID:t,data:d},p):n.postMessage(d,p),c(i,0),i[0]=0;const e=i[1]?o(i[1],i.buffer):void 0;if(e instanceof Error)throw e;return e}{const[e,t]=l();return d[0]=e,n.postMessage(d,p),t}}),d},set:S});return n.onmessage=async({data:e})=>{\"string\"==typeof e[0]?u.apply(null,e):(await(async(e,t,n)=>{try{const r=await t[e[1]].apply(null,e[2]);e[1]=n?n(r):r,e[2]=null}catch(t){e[2]=t}})(e,d,s),n.postMessage(e))},{native:A,proxy:f,transfer:z}};const Y=\"apply\",V=\"construct\",X=\"defineProperty\",Z=\"deleteProperty\",Q=\"get\",ee=\"getOwnPropertyDescriptor\",te=\"getPrototypeOf\",ne=\"has\",re=\"isExtensible\",se=\"ownKeys\",oe=\"preventExtensions\",ae=\"set\",ie=\"setPrototypeOf\";var ce=Object.freeze({__proto__:null,APPLY:Y,CONSTRUCT:V,DEFINE_PROPERTY:X,DELETE_PROPERTY:Z,GET:Q,GET_OWN_PROPERTY_DESCRIPTOR:ee,GET_PROTOTYPE_OF:te,HAS:ne,IS_EXTENSIBLE:re,OWN_KEYS:se,PREVENT_EXTENSION:oe,SET:ae,SET_PROTOTYPE_OF:ie});const le=\"destruct\";function ue(){return this}const pe=new FinalizationRegistry((([e,t,n])=>{n&&console.debug(`%c${String(t)}`,\"font-weight:bold\",\"collected\"),e(t)})),de=Object.create(null),fe=(e,t,{debug:n,handler:r,return:s,token:o=e}=de)=>{const a=s||new Proxy(e,r||de),i=[a,[t,e,!!n]];return!1!==o&&i.push(o),pe.register(...i),a},{Object:ye,Proxy:he,Reflect:me}=globalThis,{isArray:we}=Array,{ownKeys:ge}=me,{create:be,hasOwn:_e,values:Ae}=ye,Ee=(e,t)=>t===$?e[0]:t===O?e():t===D?e.$:e,ve=(e,t,n,r)=>{const s={type:{value:t}},o=_e(e,\"valueOf\");for(const a of Ae(ce)){let i=r(e[a]||me[a]);if(o&&a===Q){const{valueOf:r}=e,{value:s}=i;i={value(e,o,...a){return o===n?r.call(this,Ee(e,t)):s.call(this,e,o,...a)}}}s[a]=i}return be(e,s)},Se=(e,t,n,r=e)=>{if(r===e)switch(typeof e){case D:case I:r||(r=!1);case O:break;default:r=!1,t===e&&(t=ye(e))}const s=new he(t,n),{destruct:o}=n;return o?fe(e,o,{token:r,return:s}):s},ke=e=>t=>{const n=typeof t;return n===D?t?e.get(t)?.[0]??(e=>we(e)?$:D)(t):R:n},xe=e=>t=>{let n=typeof t;switch(n){case D:if(!t){n=R;break}case O:const r=e.get(t);r&&([n,t]=r)}return[n,t]},je=e=>((e=>{pe.unregister(e)})(e),e);var Be=e=>{const t=new WeakMap,n=Symbol(),r={},s=(e,n,r)=>(t.set(e,[n,r]),e),o={proxy:r,release:je,pair:xe(t),typeOf:ke(t),isProxy:e=>t.has(e),valueOf:e=>e[n]??e.valueOf()};for(const t of ge(e)){if(_e(o,t))continue;const a=e[t];switch(t){case $:{const e=ve(a,t,n,(e=>({value([t],...n){return e.call(this,t,...n)}})));r[t]=(t,...n)=>s(Se(t,[t],e,...n),$,t);break}case O:{const e=ve(a,t,n,(e=>({value(t,...n){return e.call(this,t(),...n)}})));r[t]=(t,...n)=>{return s(Se(t,(r=t,ue.bind(r)),e,...n),O,t);var r};break}case D:{const e=ve(a,t,n,(e=>({value({$:t},...n){return e.call(this,t,...n)}})));r[t]=(t,...n)=>s(Se(t,{$:t},e,...n),D,t);break}default:{const e=ve(a,t,n,(e=>({value:e})));r[t]=(n,...r)=>s(Se(n,n,e,...r),t,n);break}}}return o};const{drop:Pe,get:$e,hold:Te}=(()=>{const e=new Map,t=new Map;let n=0;return{clear:()=>{e.clear(),t.clear()},drop:n=>{const[r,s]=typeof n===M?[t,e]:[e,t],o=r.has(n);return o&&(s.delete(r.get(n)),r.delete(n)),o},get:e=>t.get(e),hold:r=>{if(!e.has(r)){let s;for(;t.has(s=n++););e.set(r,s),t.set(s,r)}return e.get(r)}}})(),Fe=new Map;for(const e of Reflect.ownKeys(Symbol))typeof Symbol[e]===C&&(Fe.set(Symbol[e],e),Fe.set(e,Symbol[e]));const Oe=e=>Fe.get(e)||`.${Symbol.keyFor(e)||\"\"}`,{isArray:Re}=Array,{isView:Me}=ArrayBuffer,{[Y]:De}=Reflect;var Le=(e,t)=>{const n=new Map,r=(e,t)=>{let r=n.get(e)?.deref();return r||n.set(e,new WeakRef(r=t(e))),r},s=([e,t])=>{switch(e){case N[D]:return null==t?globalThis:typeof t===M?r(t,l.object):t;case N[$]:return typeof t===M?r(t,l.array):t;case N[O]:return typeof t===M?r(t,l.function):$e(parseInt(t));case N[C]:return(e=>Fe.get(e)||Symbol.for(e.slice(1)))(t);default:return t}},o=e=>{let[n,r]=p(e);switch(n){case D:if(r==globalThis||null==r)r=null;else if(typeof r===D){if(r=t(r),Re(r))return[N[$],r.map(o)];if(Me(r))return[N.view,r];{const e={};for(const t in r)e[t]=o(r[t]);r=e}}return[N[D],r];case $:return[N[$],typeof r===M?r:t(r).map(o)];case O:return[N[O],typeof r===O?String(Te(t(r))):r];case C:return[N[C],Oe(e)];default:return[N[n],r]}},a=(...t)=>s(e(...t)),i={[X]:(e,t,n)=>a(X,e,o(t),o(n)),[Z]:(e,t)=>a(Z,e,o(t)),[Q]:(e,t)=>a(Q,e,o(t)),[te]:e=>a(te,e),[ee]:(e,t)=>{const n=a(ee,e,o(t));if(n){const{get:e,set:t,value:r}=n;e&&(n.get=s(e)),t&&(n.set=s(t)),r&&(n.value=s(r))}return n},[ne]:(e,t)=>a(ne,e,o(t)),[re]:e=>a(re,e),[se]:e=>a(se,e).map(s),[oe]:e=>a(oe,e),[ae]:(e,t,n)=>a(ae,e,o(t),o(n)),[ie]:(e,t)=>a(ie,e,o(t)),[le](t){n.delete(t),e(le,t)}},c={[D]:i,[$]:i,[O]:{...i,[Y]:(e,...t)=>a(Y,e,...t.map(o)),[V]:(e,...t)=>a(V,e,...t.map(o))}},{proxy:l,isProxy:u,pair:p}=Be(c);return{isProxy:u,global:l.object(null),method:async(e,t,...n)=>{const r=parseInt(t);switch(e){case Y:{const[e,t]=n;return o(await De($e(r),s(e),t.map(s)))}case le:Pe(r)}}}};const Ce={object(...e){return this.string(function(e){for(var t=e[0],n=1,r=arguments.length;n<r;n++)t+=arguments[n]+e[n];return t}(...e))},string(e){for(const t of e.split(/[\\r\\n]+/))if(t.trim().length){/^(\\s+)/.test(t)&&(e=e.replace(new RegExp(\"^\"+RegExp.$1,\"gm\"),\"\"));break}return e}},Ie=new WeakMap,Ne=e=>{const t=e||console,n={buffered:He,stderr:(t.stderr||console.error).bind(t),stdout:(t.stdout||console.log).bind(t)};return{stderr:(...e)=>n.stderr(...e),stdout:(...e)=>n.stdout(...e),async get(e){const t=await e;return Ie.set(t,n),t}}},Ue=new TextDecoder,He=(e,t=10)=>{const n=[];return r=>{if(r instanceof Uint8Array)for(const s of r)s===t?e(Ue.decode(new Uint8Array(n.splice(0)))):n.push(s);else e(r)}},We=(e,...t)=>Ce[typeof e](e,...t),{isArray:Je}=Array,{assign:qe,create:ze,defineProperty:Ke,entries:Ge}=Object,{all:Ye,resolve:Ve}=new Proxy(Promise,{get:(e,t)=>e[t].bind(e)}),Xe=(e,t=location.href)=>new URL(e,t.replace(/^blob:/,\"\")).href;function Ze(e){return e.startsWith(\".\")?Xe(e,this):e}const Qe=(e,t,n,r=!1,s=CustomEvent)=>{e.dispatchEvent(new s(`${t}:${n}`,{bubbles:!0,detail:{worker:r}}))},et=e=>Function(`'use strict';return (${e})`)(),tt=e=>e.replace(/^(?:\\n|\\r\\n)/,\"\"),nt=Symbol.for(\"polyscript.js_modules\"),rt=new Map;Ke(globalThis,nt,{value:rt}),new Proxy(rt,{get:(e,t)=>e.get(t),has:(e,t)=>e.has(t),ownKeys:e=>[...e.keys()]});const st=(e,t)=>!t.startsWith(\"_\"),ot=(e,t)=>new Proxy(e,{has:st,get:(e,n)=>e[t][n]}),at=(e,t)=>import(e).then((e=>{rt.set(t,{...e})})),it=e=>new Promise(((t,n)=>{document.querySelector(`link[rel=\"stylesheet\"][href=\"${e}\"]`)?t():document.head.append(qe(document.createElement(\"link\"),{rel:\"stylesheet\",href:e,onload:t,onerror:n}))})),ct=e=>/\\.css$/i.test(new URL(e).pathname),lt=(e,t)=>e.has(t),ut=e=>[...e.keys()];var pt=(e,t,n,r)=>{const s=globalThis[nt];if(n)for(let[e,t]of Ge(n)){let n=s.get(t);n&&!Je(n)||(s.set(t,n||(n=[])),n.push(e))}return((e,t,n,r)=>new Proxy(e,{has:lt,ownKeys:ut,get:(e,s)=>{let o=e.get(s);if(Je(o)){let a=o;o=null;for(let e of a)e=Xe(e,r),ct(e)?n.importCSS(e):(n.importJS(e,s),o=t[nt].get(s));e.set(s,o)}return o}}))(s,e,t,r)};const dt=new Map,ft=e=>dt.get(e),yt=(e,t)=>{try{return Function(\"require\",t)(ft)}catch(t){Ie.get(e).stderr(t)}};var ht={type:\"dummy\",module:()=>\"data:application/javascript,\",engine:e=>Ne().get(e),registerJSModule(e,t,n){dt.set(t,n)},run:yt,runAsync:yt,runEvent:async(e,t,n)=>{try{await Function(\"require\",\"e\",`return ${t}(e)`)(ft,n)}catch(t){Ie.get(e).stderr(t)}},transform:(e,t)=>t,writeFile(){}};const mt=Object.getOwnPropertyDescriptors(Response.prototype),wt=e=>\"function\"==typeof e,gt={get:(e,t)=>mt.hasOwnProperty(t)?((e,t,{get:n,value:r})=>n||!wt(r)?e.then((e=>e[t])):(...n)=>e.then((e=>e[t](...n))))(e,t,mt[t]):((e,t)=>wt(t)?t.bind(e):t)(e,e[t])};var bt=(e,...t)=>new Proxy(fetch(e,...t),gt);Promise.withResolvers||(Promise.withResolvers=function(){var e,t,n=new this((function(n,r){e=n,t=r}));return{resolve:e,reject:t,promise:n}});const _t=!globalThis.window,At=({FS:e,PATH:t,PATH_FS:n},r,s)=>{const o=n.resolve(r),a=t.dirname(o);return e.mkdirTree?e.mkdirTree(a):vt(e,a),e.writeFile(o,new Uint8Array(s),{canOwn:!0})},Et=e=>{const t=e.split(\"/\");return t.pop(),t.join(\"/\")},vt=(e,t)=>{const n=[];for(const r of t.split(\"/\"))\".\"!==r&&\"..\"!==r&&(n.push(r),r&&e.mkdir(n.join(\"/\")))},St=(e,t)=>{const n=[];for(const e of t.split(\"/\"))switch(e){case\"\":case\".\":break;case\"..\":n.pop();break;default:n.push(e)}return[e.cwd()].concat(n).join(\"/\").replace(/^\\/+/,\"/\")},kt=e=>{const t=e.map((e=>e.trim().replace(/(^[/]*|[/]*$)/g,\"\"))).filter((e=>\"\"!==e&&\".\"!==e)).join(\"/\");return e[0].startsWith(\"/\")?`/${t}`:t},xt=(e,t)=>bt(Xe(e,t)).arrayBuffer(),jt=(e,t,n,r)=>Ye((e=>{for(const{files:t,to_file:n,from:r=\"\"}of e){if(void 0!==t&&void 0!==n)throw new Error(\"Cannot use 'to_file' and 'files' parameters together!\");if(void 0===t&&void 0===n&&r.endsWith(\"/\"))throw new Error(`Couldn't determine the filename from the path ${r}, please supply 'to_file' parameter.`)}return e.flatMap((({from:e=\"\",to_folder:t=\".\",to_file:n,files:r})=>{if(Je(r))return r.map((n=>({url:kt([e,n]),path:kt([t,n])})));const s=n||e.slice(1+e.lastIndexOf(\"/\"));return[{url:e,path:kt([t,s])}]}))})(n).map((({url:n,path:s})=>xt(n,r).then((n=>e.writeFile(t,s,n)))))),Bt=(e,t)=>t.endsWith(\"/\")?`${t}${e.split(\"/\").pop()}`:t,Pt=(e,t)=>e.replace(/\\{.+?\\}/g,(e=>{if(!t.has(e))throw new SyntaxError(`Invalid template: ${e}`);return t.get(e)})),$t=(e,t,n,r)=>Ye((e=>{const t=new Map,n=new Set,r=[];for(const[s,o]of Ge(e))if(/^\\{.+\\}$/.test(s)){if(t.has(s))throw new SyntaxError(`Duplicated template: ${s}`);t.set(s,Pt(o,t))}else{const e=Pt(s,t),a=Bt(e,Pt(o||\"./\",t));if(n.has(a)&&!a.endsWith(\"/*\"))throw new SyntaxError(`Duplicated destination: ${a}`);n.add(a),r.push({url:e,path:a})}return r})(n).map((({url:n,path:s})=>xt(n,r).then((r=>e.writeFile(t,s,r,n)))))),Tt=({main:e,worker:t},n)=>{const r=[];if(t&&_t)for(let[e,s]of Ge(t))e=Xe(e,n),r.push(at(e,s));if(e&&!_t)for(let[t,s]of Ge(e))t=Xe(t,n),ct(t)?it(t):r.push(at(t,s));return Ye(r)},Ft=e=>t=>{dispatchEvent(new CustomEvent(`${e}:progress`,{detail:t}))},{getPrototypeOf:Ot}=Object,Rt=e=>{const t=typeof e;switch(t){case\"function\":case\"undefined\":return\"\";case\"object\":return null===e?\"null\":\"object\";default:return t}};let Mt=\"coincident-\";try{new SharedArrayBuffer(4,{maxByteLength:8}),Mt+=crypto.randomUUID()}catch(Ot){Mt+=Math.random().toString(36).substring(2)}var Dt={ref:0,array:1,object:2,number:3,string:4,true:5,false:6,null:7,buffer:8,view:9,symbol:10,date:11,bigint:12,undefined:13,map:14,set:15,regexp:16,error:17};const{defineProperty:Lt}=Object,Ct=e=>{switch(e[Nt++]){case Dt.array:{const t=e[Nt++],n=[];e[Nt-2]=n;for(let r=0;r<t;r++)n[r]=Ct(e);return n}case Dt.object:{const t=e[Nt++],n={};e[Nt-2]=n;for(let r=0;r<t;r++)n[Ct(e)]=Ct(e);return n}case Dt.string:{const t=e[Nt++];return e[Nt-2]=t,t}case Dt.ref:return e[e[Nt++]];case Dt.number:return e[Nt++];case Dt.bigint:return BigInt(e[Nt++]);case Dt.true:return!0;case Dt.false:return!1;case Dt.null:return null;case Dt.undefined:return;case Dt.buffer:{const t=e[Nt++],n=e[Nt++],r=[t];n&&r.push({maxByteLength:n});const s=new ArrayBuffer(...r);e[Nt-3]=s;const o=new Uint8Array(s,0,t);for(let n=0;n<t;n++)o[n]=e[Nt++];return s}case Dt.view:{const t=e[Nt++],n=e[Nt++],r=e[Nt++],s=Nt-4,o=[Ct(e),n];r&&o.push(r);const a=new globalThis[t](...o);return e[s]=a,a}case Dt.symbol:return(t=e[Nt++]).startsWith(\"Symbol.\")?Symbol[t.slice(t.indexOf(\".\")+1)]:Symbol.for(t);case Dt.date:{const t=new Date(e[Nt++]);return e[Nt-2]=t,t}case Dt.map:{const t=e[Nt++],n=new Map;e[Nt-2]=n;for(let r=0;r<t;r++){const t=Ct(e),r=Ct(e);void 0!==t&&n.set(t,r)}return n}case Dt.set:{const t=e[Nt++],n=new Set;e[Nt-2]=n;for(let r=0;r<t;r++){const t=Ct(e);void 0!==t&&n.add(t)}return n}case Dt.regexp:{const t=e[Nt++],n=e[Nt++],r=new RegExp(t,n);return e[Nt-3]=r,r}case Dt.error:{const t=globalThis[e[Nt++]]||Error,n=e[Nt++],r=e[Nt++],s=new t(n,{cause:e[Nt++]});return e[Nt-5]=Lt(s,\"stack\",{value:r}),s}default:throw new TypeError(`Unknown type: ${e[Nt-1]}`)}var t},{parse:It}=JSON;let Nt=0;const{isArray:Ut}=Array,{isView:Ht}=ArrayBuffer,{stringify:Wt}=JSON,Jt=(e,t,n)=>{const r=t.get(n);return\"number\"==typeof r?(e.push(Dt.ref,r),!0):(t.set(n,e.length),!1)},qt=(e,t,n,r=Rt(n))=>{switch(r){case\"null\":e.push(Dt.null);break;case\"object\":if(Jt(e,t,n))break;switch(!0){case Ut(n):{const r=n.length;e.push(Dt.array,r);for(let s=0;s<r;s++)qt(e,t,n[s]);break}case Ht(n):{const{BYTES_PER_ELEMENT:r,buffer:s,byteOffset:o,length:a}=n;if(e.push(Dt.view,(e=>{for(;!(e.name in globalThis);)e=Ot(e);return e.name})(n.constructor),o,a!==(s.byteLength-o)/r?a:0),Jt(e,t,s))break;n=s}case n instanceof ArrayBuffer:{const t=n.byteLength,r=n.resizable?n.maxByteLength:0;if(e.push(Dt.buffer,t,r),t){const r=new Uint8Array(n,0,t);for(let t=0;t<r.length;t+=32767)e.push.apply(e,r.subarray(t,t+32767))}break}case n instanceof Date:e.push(Dt.date,+n);break;case n instanceof Map:{const r=e.push(Dt.map,0);let s=0;for(const[r,o]of n){const n=Rt(r),a=Rt(o);n&&a&&(qt(e,t,r,n),qt(e,t,o,a),s++)}e[r-1]=s;break}case n instanceof Set:{const r=e.push(Dt.set,0);let s=0;for(const r of n){const n=Rt(r);n&&(qt(e,t,r,n),s++)}e[r-1]=s;break}case n instanceof RegExp:e.push(Dt.regexp,n.source,n.flags);break;case n instanceof Error:e.push(Dt.error,n.name,n.message,n.stack,n.cause);break;default:{if(\"toJSON\"in n){const r=n.toJSON();if(r===n){e.push(Dt.object,0);break}if(Jt(e,t,n=r))break}const r=e.push(Dt.object,0);let s=0;for(const r in n){const o=n[r],a=Rt(o);a&&(qt(e,t,r,\"string\"),qt(e,t,o,a),s++)}e[r-1]=s;break}}break;case\"boolean\":e.push(n?Dt.true:Dt.false);break;case\"string\":if(Jt(e,t,n))break;e.push(Dt.string,n);break;case\"bigint\":e.push(Dt[r],n.toString());break;case\"symbol\":{const t=(e=>{const t=String(e).slice(7,-1);return t.startsWith(\"Symbol.\")||Symbol.keyFor(e)?t:\"\"})(n);if(t){e.push(Dt[r],t);break}}case\"\":e.push(Dt.undefined);break;default:e.push(Dt[r],n)}},zt={parse:e=>{return t=It(e),Nt=0,t.length?Ct(t):void 0;var t},stringify:e=>Wt((e=>{const t=[];return qt(t,new Map,e),t})(e))},Kt=new WeakMap,Gt=async(e,t,n,r,s)=>{r.files&&(t(\"Loading files\"),await $t(e,n,r.files,s),t(\"Loaded files\")),r.fetch&&(t(\"Loading fetch\"),await jt(e,n,r.fetch,s),t(\"Loaded fetch\")),r.js_modules&&(t(\"Loading JS modules\"),await Tt(r.js_modules,s),t(\"Loaded JS modules\"))},Yt=(e,t,n)=>{\"polyscript\"===t&&(n.lazy_py_modules=async(...t)=>(await Kt.get(e)(t),t.map((t=>e.pyimport(t)))),n.storage=async e=>{const t=new i(e);return await t.sync(),t},n.JSON=zt),e.registerJsModule(t,n)},Vt=(e,t)=>{if(e.endsWith(\"/*\")){if(/\\.(zip|whl|tgz|tar(?:\\.gz)?)$/.test(t))return RegExp.$1;throw new Error(`Unsupported archive ${t}`)}return\"\"},Xt=(e,t,...n)=>{try{return e.runPython(We(t),...n)}catch(t){Ie.get(e).stderr(t)}},Zt=async(e,t,...n)=>{try{return await e.runPythonAsync(We(t),...n)}catch(t){Ie.get(e).stderr(t)}},Qt=async(e,t,n)=>{const[r,...s]=t.split(\".\");let o,a=e.globals.get(r);for(const e of s)[o,a]=[a,a[e]];try{await a.call(o,n)}catch(t){Ie.get(e).stderr(t)}};var en=(new TextEncoder).encode(\"_F='github:'\\n_E='user-agent'\\n_D=True\\n_C=False\\n_B='/'\\n_A=None\\nfrom uio import StringIO\\nimport sys\\nclass Response:\\n\\tdef __init__(A,f):A.raw=f;A.encoding='utf-8';A._cached=_A\\n\\tdef close(A):\\n\\t\\tif A.raw:A.raw.close();A.raw=_A\\n\\t\\tA._cached=_A\\n\\t@property\\n\\tdef content(self):\\n\\t\\tA=self\\n\\t\\tif A._cached is _A:\\n\\t\\t\\ttry:A._cached=A.raw.read()\\n\\t\\t\\tfinally:A.raw.close();A.raw=_A\\n\\t\\treturn A._cached\\n\\t@property\\n\\tdef text(self):return str(self.content,self.encoding)\\n\\tdef json(A):import ujson;return ujson.loads(A.content)\\nHEADERS_TO_IGNORE=_E,\\ntry:import js\\nexcept Exception as err:raise OSError('This version of urequests can only be used in the browser')\\nHEADERS_TO_IGNORE=_E,\\ndef request(method,url,data=_A,json=_A,headers={},stream=_A,auth=_A,timeout=_A,parse_headers=_D):\\n\\tE=timeout;D=method;C=data;from js import XMLHttpRequest as G;A=G.new();A.withCredentials=_C\\n\\tif auth is not _A:import ubinascii;H,I=auth;A.open(D,url,_C,H,I)\\n\\telse:A.open(D,url,_C)\\n\\tfor(F,J)in headers.items():\\n\\t\\tif F.lower()not in HEADERS_TO_IGNORE:A.setRequestHeader(F,J)\\n\\tif E:A.timeout=int(E*1000)\\n\\tif json is not _A:assert C is _A;import ujson;C=ujson.dumps(json);A.setRequestHeader('Content-Type','application/json')\\n\\tA.send(C);B=Response(StringIO(A.responseText));B.status_code=A.status;B.reason=A.statusText;B.headers=A.getAllResponseHeaders();return B\\ndef get(url,**A):return request('GET',url,**A)\\n_PACKAGE_INDEX=const('https://micropython.org/pi/v2')\\n_CHUNK_SIZE=128\\ndef _ensure_path_exists(path):\\n\\timport os;A=path.split(_B)\\n\\tif not A[0]:A.pop(0);A[0]=_B+A[0]\\n\\tB=''\\n\\tfor C in range(len(A)-1):\\n\\t\\tB+=A[C]\\n\\t\\ttry:os.stat(B)\\n\\t\\texcept:os.mkdir(B)\\n\\t\\tB+=_B\\ndef _chunk(src,dest):\\n\\tA=memoryview(bytearray(_CHUNK_SIZE))\\n\\twhile _D:\\n\\t\\tB=src.readinto(A)\\n\\t\\tif B==0:break\\n\\t\\tdest(A if B==_CHUNK_SIZE else A[:B])\\ndef _check_exists(path,short_hash):\\n\\tA=short_hash;import os\\n\\ttry:\\n\\t\\timport binascii as C,hashlib as D\\n\\t\\twith open(path,'rb')as E:B=D.sha256();_chunk(E,B.update);F=str(C.hexlify(B.digest())[:len(A)],'utf-8');return F==A\\n\\texcept:return _C\\ndef _rewrite_url(url,branch=_A):\\n\\tB=branch;A=url\\n\\tif not B:B='HEAD'\\n\\tif A.startswith(_F):A=A[7:].split(_B);A='https://raw.githubusercontent.com/'+A[0]+_B+A[1]+_B+B+_B+_B.join(A[2:])\\n\\treturn A\\ndef _download_file(url,dest):\\n\\tB=dest;A=get(url)\\n\\ttry:\\n\\t\\tif A.status_code!=200:print('Error',A.status_code,'requesting',url);return _C\\n\\t\\tprint('Copying:',B);_ensure_path_exists(B)\\n\\t\\twith open(B,'wb')as C:_chunk(A.raw,C.write)\\n\\t\\treturn _D\\n\\tfinally:A.close()\\ndef _install_json(package_json_url,index,target,version,mpy):\\n\\tK='File not found: {} {}';I=version;H=index;G=package_json_url;D=target;E=get(_rewrite_url(G,I))\\n\\ttry:\\n\\t\\tif E.status_code!=200:print('Package not found:',G);return _C\\n\\t\\tF=E.json()\\n\\tfinally:E.close()\\n\\tfor(A,C)in F.get('hashes',()):\\n\\t\\tB=D+_B+A\\n\\t\\tif _check_exists(B,C):print('Exists:',B)\\n\\t\\telse:\\n\\t\\t\\tL='{}/file/{}/{}'.format(H,C[:2],C)\\n\\t\\t\\tif not _download_file(L,B):print(K.format(A,C));return _C\\n\\tfor(A,J)in F.get('urls',()):\\n\\t\\tB=D+_B+A\\n\\t\\tif not _download_file(_rewrite_url(J,I),B):print(K.format(A,J));return _C\\n\\tfor(M,N)in F.get('deps',()):\\n\\t\\tif not _install_package(M,H,D,N,mpy):return _C\\n\\treturn _D\\ndef _install_package(package,index,target,version,mpy):\\n\\tD=index;C=target;B=version;A=package\\n\\tif A.startswith('http://')or A.startswith('https://')or A.startswith(_F):\\n\\t\\tif A.endswith('.py')or A.endswith('.mpy'):print('Downloading {} to {}'.format(A,C));return _download_file(_rewrite_url(A,B),C+_B+A.rsplit(_B)[-1])\\n\\t\\telse:\\n\\t\\t\\tif not A.endswith('.json'):\\n\\t\\t\\t\\tif not A.endswith(_B):A+=_B\\n\\t\\t\\t\\tA+='package.json'\\n\\t\\t\\tprint('Installing {} to {}'.format(A,C))\\n\\telse:\\n\\t\\tif not B:B='latest'\\n\\t\\tprint('Installing {} ({}) from {} to {}'.format(A,B,D,C));E=sys.implementation._mpy&255 if mpy and hasattr(sys.implementation,'_mpy')else'py';A='{}/package/{}/{}/{}.json'.format(D,'py',A,B)\\n\\treturn _install_json(A,D,C,B,mpy)\\ndef install(package,index=_A,target=_A,version=_A,mpy=_D):\\n\\tB=target;A=index\\n\\tif not B:\\n\\t\\tfor C in sys.path:\\n\\t\\t\\tif C.endswith('/lib'):B=C;break\\n\\t\\telse:print('Unable to find lib dir in sys.path');return\\n\\tif not A:A=_PACKAGE_INDEX\\n\\tif _install_package(package,A.rstrip(_B),B,version,mpy):print('Done')\\n\\telse:print('Package may be partially installed')\");const tn=async e=>(await import(\"./toml-DiUM0_qs.js\")).parse(e);async function nn(e,t){return new Promise(((n,r)=>{e.syncfs(t,(e=>{e?r(e):n()}))}))}function rn(e){const t=e.FS,n=e.FS.filesystems.MEMFS,r=e.PATH,s={DIR_MODE:16895,FILE_MODE:33279,mount:function(e){if(!e.opts.fileSystemHandle)throw new Error(\"opts.fileSystemHandle is required\");return n.mount.apply(null,arguments)},syncfs:async(e,t,n)=>{try{const r=s.getLocalSet(e),o=await s.getRemoteSet(e),a=t?o:r,i=t?r:o;await s.reconcile(e,a,i),n(null)}catch(e){n(e)}},getLocalSet:e=>{let n=Object.create(null);function s(e){return\".\"!==e&&\"..\"!==e}function o(e){return t=>r.join2(e,t)}let a=t.readdir(e.mountpoint).filter(s).map(o(e.mountpoint));for(;a.length;){let e=a.pop(),r=t.stat(e);t.isDir(r.mode)&&a.push.apply(a,t.readdir(e).filter(s).map(o(e))),n[e]={timestamp:r.mtime,mode:r.mode}}return{type:\"local\",entries:n}},getRemoteSet:async e=>{const t=Object.create(null),n=await sn(e.opts.fileSystemHandle);for(const[o,a]of n)\".\"!==o&&(t[r.join2(e.mountpoint,o)]={timestamp:\"file\"===a.kind?(await a.getFile()).lastModifiedDate:new Date,mode:\"file\"===a.kind?s.FILE_MODE:s.DIR_MODE});return{type:\"remote\",entries:t,handles:n}},loadLocalEntry:e=>{const r=t.lookupPath(e).node,s=t.stat(e);if(t.isDir(s.mode))return{timestamp:s.mtime,mode:s.mode};if(t.isFile(s.mode))return r.contents=n.getFileDataAsTypedArray(r),{timestamp:s.mtime,mode:s.mode,contents:r.contents};throw new Error(\"node type not supported\")},storeLocalEntry:(e,n)=>{if(t.isDir(n.mode))t.mkdirTree(e,n.mode);else{if(!t.isFile(n.mode))throw new Error(\"node type not supported\");t.writeFile(e,n.contents,{canOwn:!0})}t.chmod(e,n.mode),t.utime(e,n.timestamp,n.timestamp)},removeLocalEntry:e=>{var n=t.stat(e);t.isDir(n.mode)?t.rmdir(e):t.isFile(n.mode)&&t.unlink(e)},loadRemoteEntry:async e=>{if(\"file\"===e.kind){const t=await e.getFile();return{contents:new Uint8Array(await t.arrayBuffer()),mode:s.FILE_MODE,timestamp:t.lastModifiedDate}}if(\"directory\"===e.kind)return{mode:s.DIR_MODE,timestamp:new Date};throw new Error(\"unknown kind: \"+e.kind)},storeRemoteEntry:async(e,n,s)=>{const o=e.get(r.dirname(n)),a=t.isFile(s.mode)?await o.getFileHandle(r.basename(n),{create:!0}):await o.getDirectoryHandle(r.basename(n),{create:!0});if(\"file\"===a.kind){const e=await a.createWritable();await e.write(s.contents),await e.close()}e.set(n,a)},removeRemoteEntry:async(e,t)=>{const n=e.get(r.dirname(t));await n.removeEntry(r.basename(t)),e.delete(t)},reconcile:async(e,n,o)=>{let a=0;const i=[];Object.keys(n.entries).forEach((function(e){const r=n.entries[e],s=o.entries[e];(!s||t.isFile(r.mode)&&r.timestamp.getTime()>s.timestamp.getTime())&&(i.push(e),a++)})),i.sort();const c=[];if(Object.keys(o.entries).forEach((function(e){n.entries[e]||(c.push(e),a++)})),c.sort().reverse(),!a)return;const l=\"remote\"===n.type?n.handles:o.handles;for(const t of i){const n=r.normalize(t.replace(e.mountpoint,\"/\")).substring(1);if(\"local\"===o.type){const e=l.get(n),r=await s.loadRemoteEntry(e);s.storeLocalEntry(t,r)}else{const e=s.loadLocalEntry(t);await s.storeRemoteEntry(l,n,e)}}for(const t of c)if(\"local\"===o.type)s.removeLocalEntry(t);else{const n=r.normalize(t.replace(e.mountpoint,\"/\")).substring(1);await s.removeRemoteEntry(l,n)}}};return e.FS.filesystems.NATIVEFS_ASYNC=s,async function(e,n){if(\"FileSystemDirectoryHandle\"!==n.constructor.name)throw new TypeError(\"Expected argument 'fileSystemHandle' to be a FileSystemDirectoryHandle\");return function(e){t.mkdirTree?t.mkdirTree(e):vt(t,e);const{node:n}=t.lookupPath(e,{follow_mount:!1});if(t.isMountpoint(n))throw new Error(`path '${e}' is already a file system mount point`);if(!t.isDir(n.mode))throw new Error(`path '${e}' points to a file not a directory`);for(const t in n.contents)throw new Error(`directory '${e}' is not empty`)}(e),t.mount(t.filesystems.NATIVEFS_ASYNC,{fileSystemHandle:n},e),await nn(t,!0),{syncfs:async()=>await nn(t,!1)}}}const sn=async e=>{const t=[];await async function e(n){for await(const r of n.values())t.push(r),\"directory\"===r.kind&&await e(r)}(e);const n=new Map;n.set(\".\",e);for(const r of t){const t=(await e.resolve(r)).join(\"/\");n.set(t,r)}return n},on=(e,t)=>{try{e.mkdir(t)}catch(e){}},an=Ft(\"mpy\");var cn={type:\"micropython\",module:(e=\"1.25.0\")=>`https://cdn.jsdelivr.net/npm/@micropython/micropython-webassembly-pyscript@${e}/micropython.mjs`,async engine({loadMicroPython:e},t,n,r){const{stderr:s,stdout:o,get:a}=Ne({stderr:He(console.error),stdout:He(console.log)});n=n.replace(/\\.m?js$/,\".wasm\"),an(\"Loading MicroPython\");const i=await a(e({linebuffer:!1,stderr:s,stdout:o,url:n})),c=ln.bind(this,i,r);return Kt.set(i,c),await Gt(this,an,i,t,r),this.writeFile(i,\"./mip.py\",en),t.packages&&(an(\"Loading packages\"),await c(t.packages.map(Ze,r)),an(\"Loaded packages\")),an(\"Loaded MicroPython\"),i.mountNativeFS||(i.mountNativeFS=rn(i._module)),i},registerJSModule:Yt,run:Xt,runAsync:Zt,runEvent:Qt,transform:(e,t)=>e.PyProxy.toJs(t),writeFile:(e,t,n,r)=>{const{FS:s,_module:{PATH:o,PATH_FS:a}}=e,i={FS:s,PATH:o,PATH_FS:a},c=Vt(t,r);if(c){const r=t.slice(0,-1);switch(\"./\"!==r&&s.mkdir(r),c){case\"whl\":case\"zip\":{const e=new Blob([n],{type:\"application/zip\"});return import(\"./zip-DxlTOqbw.js\").then((async({BlobReader:t,Uint8ArrayWriter:n,ZipReader:a})=>{const i=new a(new t(e));for(const e of await i.getEntries()){const{directory:t,filename:a}=e,i=r+a;if(t)on(s,i);else{on(s,o.dirname(i));const t=await e.getData(new n);s.writeFile(i,t,{canOwn:!0})}}i.close()}))}case\"tgz\":case\"tar.gz\":{const t=\"./_.tar.gz\";return At(i,t,n),void e.runPython(`\\n import os, gzip, tarfile\\n tar = tarfile.TarFile(fileobj=gzip.GzipFile(fileobj=open(\"${t}\", \"rb\")))\\n for f in tar:\\n name = f\"${r}{f.name}\"\\n if f.type == tarfile.DIRTYPE:\\n if f.name != \"./\":\\n os.mkdir(name.strip(\"/\"))\\n else:\\n dir = os.path.dirname(name)\\n if not os.path.exists(dir):\\n os.mkdir(dir)\\n source = tar.extractfile(f)\\n with open(name, \"wb\") as dest:\\n dest.write(source.read())\\n dest.close()\\n tar.close()\\n os.remove(\"${t}\")\\n `)}}}return At(i,t,n)}};async function ln(e,t,n){let r;for(const s of n)if(s.endsWith(\".whl\")){const n=Xe(s,t),r=await bt(n).arrayBuffer();await this.writeFile(e,\"./*\",r,n)}else r||(r=e.pyimport(\"mip\")),r.install(s)}const un={dict_converter:Object.fromEntries},{stringify:pn}=JSON;let dn=!1;const fn=e=>(...t)=>{try{return dn=!0,e(...t)}finally{dn=!1}};let yn=!1;const hn=()=>{if(yn)return;yn=!0;const e=new WeakMap,t=e=>e.destroy(),n=n=>{for(let r=0;r<n.length;r++){const s=n[r];if(\"function\"==typeof s&&\"copy\"in s){dn=!1;let o=e.get(s)?.deref();if(!o)try{o=fe(s.copy(),t),e.set(s,new WeakRef(o))}catch(e){console.error(e)}o&&(n[r]=o),dn=!0}}},{call:r}=Function,s=r.bind(r,r.apply);Object.defineProperties(Function.prototype,{apply:{value(e,t){return dn&&n(t),s(this,e,t)}},call:{value(e,...t){return dn&&n(t),s(this,e,t)}}})},mn=Ft(\"py\"),wn=new WeakMap;var gn={type:\"pyodide\",module:(e=\"0.27.5\")=>`https://cdn.jsdelivr.net/pyodide/v${e}/full/pyodide.mjs`,async engine({loadPyodide:e},t,n,r){_t||\"auto\"!==t.experimental_create_proxy||hn(),mn(\"Loading Pyodide\");let{packages:s,index_urls:o}=t;s&&(s=s.map(Ze,r)),mn(\"Loading Storage\");const a=n.slice(0,n.lastIndexOf(\"/\")),c=new i(a),l={indexURL:a},u=\"never\"!==t.packages_cache;if(await c.sync(),u){if(s){s=s.sort();const e=pn(s);if(c.has(e)){const t=new Blob([c.get(e)],{type:\"application/json\"});l.lockFileURL=URL.createObjectURL(t),l.packages=s.map((e=>e.split(/[>=<]=/)[0])),s=null}}}else c.clear();mn(\"Loaded Storage\");const{stderr:p,stdout:d,get:f}=Ne(),y=await f(e({stderr:p,stdout:d,...l})),h=_n.bind(y);return o&&wn.set(y,o),Kt.set(y,h),await Gt(this,mn,y,t,r),s&&await h(s,c,u),await c.close(),l.lockFileURL&&URL.revokeObjectURL(l.lockFileURL),mn(\"Loaded Pyodide\"),y},registerJSModule:Yt,run:fn(Xt),runAsync:fn(Zt),runEvent:fn(Qt),transform:(e,t)=>bn.call(e,t),writeFile:(e,t,n,r)=>{const s=Vt(t,r);if(s)return e.unpackArchive(n,s,{extractDir:t.slice(0,-1)});const{FS:o,PATH:a,_module:{PATH_FS:i}}=e;return At({FS:o,PATH:a,PATH_FS:i},t,n)}};function bn(e){const{ffi:{PyProxy:t}}=this;if(e&&\"object\"==typeof e){if(e instanceof t)return e.toJs(un);if(e instanceof Map)return new Map([...e.entries()]);if(Je(e))return e.map(bn,this)}return e}async function _n(e,t,n=!1){const{log:r}=console,s=(e,...t)=>{r(e,...t),console.log=r,mn(e),console.log=s};console.log=s,await this.loadPackage(\"micropip\");const o=this.pyimport(\"micropip\");if(wn.has(this)&&o.set_index_urls(wn.get(this)),await o.install(e,{keep_going:!0}),console.log=r,n&&t instanceof i){const n=o.freeze();t.set(pn(e),n)}o.destroy()}const An=\"ruby-wasm-wasi\",En=An.replace(/\\W+/g,\"_\");var vn={type:An,experimental:!0,module:(e=\"2.7.1\")=>`https://cdn.jsdelivr.net/npm/@ruby/3.2-wasm-wasi@${e}/dist/browser/+esm`,async engine({DefaultRubyVM:e},t,n,r){n=n.replace(/\\/browser\\/\\+esm$/,\"/ruby.wasm\");const s=await bt(n).arrayBuffer(),o=await WebAssembly.compile(s),{vm:a}=await e(o);return t.files&&await $t(this,a,t.files,r),t.fetch&&await jt(this,a,t.fetch,r),t.js_modules&&await Tt(t.js_modules,r),a},registerJSModule(e,t,n){t=t.replace(/\\W+/g,\"__\");const r=`__module_${En}_${t}`;globalThis[r]=n,this.run(e,`require \"js\";$${t}=JS.global[:${r}]`),delete globalThis[r]},run:(e,t,...n)=>e.eval(We(t),...n),runAsync:(e,t,...n)=>e.evalAsync(We(t),...n),async runEvent(e,t,n){if(/^xworker\\.(on\\w+)$/.test(t)){const{$1:t}=RegExp,r=`__module_${En}_event`;globalThis[r]=n,this.run(e,`require \"js\";$xworker.call(\"${t}\",JS.global[:${r}])`),delete globalThis[r]}else{const r=this.run(e,`method(:${t})`);await r.call(t,e.wrap(n))}},transform:(e,t)=>t,writeFile:()=>{throw new Error(`writeFile is not supported in ${An}`)}};var Sn={type:\"wasmoon\",module:(e=\"1.16.0\")=>`https://cdn.jsdelivr.net/npm/wasmoon@${e}/+esm`,async engine({LuaFactory:e,LuaLibraries:t},n,r,s){const{stderr:o,stdout:a,get:i}=Ne(),c=await i((new e).createEngine());return c.global.getTable(t.Base,(e=>{c.global.setField(e,\"print\",a),c.global.setField(e,\"printErr\",o)})),n.files&&await $t(this,c,n.files,s),n.fetch&&await jt(this,c,n.fetch,s),n.js_modules&&await Tt(n.js_modules,s),c},registerJSModule:(e,t,n)=>{e.global.set(t,n)},run:(e,t,...n)=>{try{return e.doStringSync(We(t),...n)}catch(t){Ie.get(e).stderr(t)}},runAsync:async(e,t,...n)=>{try{return await e.doString(We(t),...n)}catch(t){Ie.get(e).stderr(t)}},runEvent:async(e,t,n)=>{const[r,...s]=t.split(\".\");let o,a=e.global.get(r);for(const e of s)[o,a]=[a,a[e]];try{await a.call(o,n)}catch(t){Ie.get(e).stderr(t)}},transform:(e,t)=>t,writeFile:({cmodule:{module:{FS:e}}},t,n)=>((e,t,n)=>(vt(e,Et(t)),t=St(e,t),e.writeFile(t,new Uint8Array(n),{canOwn:!0})))(e,t,n)};const kn=new WeakMap,xn=async(e,t)=>{const{shelter:n,destroy:r,io:s}=kn.get(e),{output:o,result:a}=await n.captureR(We(t));for(const{type:e,data:t}of o)s[e](t);return fe(a,r,{token:!1})};var jn={type:\"webr\",experimental:!0,module:(e=\"0.4.2\")=>`https://cdn.jsdelivr.net/npm/webr@${e}/dist/webr.mjs`,async engine(e,t,n,r){const{get:s}=Ne(),o=new e.WebR;await s(o.init().then((()=>o)));const a=await new o.Shelter;return kn.set(o,{module:e,shelter:a,destroy:a.destroy.bind(a),io:Ie.get(o)}),t.files&&await $t(this,o,t.files,r),t.fetch&&await jt(this,o,t.fetch,r),t.js_modules&&await Tt(t.js_modules,r),o},registerJSModule(e,t){console.warn(`Experimental interpreter: module ${t} is not supported (yet)`)},run:xn,runAsync:xn,async runEvent(e,t,n){await e.evalRVoid(`${t}(event)`,{env:{event:{type:[n.type]}}})},transform:(e,t)=>(console.log(\"transforming\",t),t),writeFile:()=>{}};const Bn=new Map,Pn=new Map,$n=new Proxy(new Map,{get(e,t){if(!e.has(t)){const[n,...r]=t.split(\"@\"),s=Bn.get(n),o=/^(?:\\.?\\.?\\/|[a-z0-9-]+:\\/\\/)/i.test(r)?r.join(\"@\"):s.module(...r);e.set(t,{url:o,module:import(o),engine:s.engine.bind(s)})}const{url:n,module:r,engine:s}=e.get(t);return(e,o)=>r.then((r=>(Pn.set(t,e),s(r,e,n,o))))}}),Tn=e=>{for(const t of[].concat(e.type))Bn.set(t,e)};for(const e of[ht,cn,gn,vn,Sn,jn])Tn(e);const{parse:Fn}=JSON,On=(e,t,n={})=>{const[r,s]=((e,t=\"./config.txt\")=>{let n=typeof e;return\"string\"===n&&/\\.(json|toml|txt)$/.test(e)?n=RegExp.$1:e=t,[Xe(e),n]})(e,t);return\"json\"===s?n=bt(r).json():\"toml\"===s?n=bt(r).text().then(tn):\"string\"===s?n=Rn(e):\"object\"===s&&e?n=e:\"txt\"===s&&\"string\"==typeof n&&(n=Rn(n)),[n,e=r]},Rn=e=>{try{return Fn(e)}catch(t){return tn(e)}},Mn=\"BeforeRun\",Dn=\"AfterRun\",Ln=[`code${Mn}`,`code${Mn}Async`,`code${Dn}`,`code${Dn}Async`],Cn=[\"onWorker\",\"onReady\",`on${Mn}`,`on${Mn}Async`,`on${Dn}`,`on${Dn}Async`];function In(e,t){const{run:n,runAsync:r}=Bn.get(this.type);return{...e,run:n.bind(this,t),runAsync:r.bind(this,t)}}const Nn=(e,t,n,r,s,o)=>{if(s||o){const a=In.bind(e,t),i=r?\"runAsync\":\"run\",c=e[i];e[i]=r?async function(e,t,...r){s&&await s.call(this,a(e),n);const i=await c.call(this,e,t,...r);return o&&await o.call(this,a(e),n),i}:function(e,t,...r){s&&s.call(this,a(e),n);const i=c.call(this,e,t,...r);return o&&o.call(this,a(e),n),i}}};let Un,Hn,Wn;const Jn=(e,t)=>{addEventListener(e,t||(async t=>{try{await Un,Hn(`xworker.on${e}`,t)}catch(e){postMessage(e)}}),!!t&&{once:!0})},{proxy:qn,native:zn,window:Kn,isWindowProxy:Gn}=await(async e=>{let t=!1;const n=e?.decoder||P,r=await G({...e,decoder(e){const r=n(e),s=H(e);return(e,n)=>t?(t=!1,s(e,n)):r(e,n)}}),s=r.proxy[w],{isProxy:o,global:a,method:i}=Le((function(...e){return t=!0,s.apply(this,e)}),e?.transform||(e=>e));return r.proxy[g]=i,{...r,window:a,isWindowProxy:o}})({decoder:h,transfer:!1,transform:e=>Wn?Wn(e):e}),Yn={polyfill:!zn,sync:qn,window:zn?Kn:null,isWindowProxy:Gn,onmessage:console.info,onerror:console.error,onmessageerror:console.warn,postMessage:postMessage.bind(self)};Jn(\"message\",(({data:{options:e,config:t,configURL:n,code:r,hooks:s}})=>{Un=(async()=>{try{const{id:o,tag:c,type:l,custom:u,version:p,config:d,async:f}=e,y=((e,t=\"\")=>`${e}@${t}`.replace(/@$/,\"\"))(l,p),h=await((e,t,n,r={})=>(t&&([r,t]=On(t,n,r)),Ve(r).then((n=>$n[e](n,t)))))(y,t,n,d),{js_modules:m}=Pn.get(y),w=m?.main,g=ze(Bn.get(l)),b=((e,t,n,r)=>({type:t,config:n,interpreter:r,io:Ie.get(r),run:(t,...n)=>e.run(r,t,...n),runAsync:(t,...n)=>e.runAsync(r,t,...n),runEvent:(...t)=>e.runEvent(r,...t)}))(g,u||l,d||{},h);let _=\"run\";if(f&&(_+=\"Async\"),s){let e,t,n=\"\",r=\"\";for(const e of Ln){const t=s[e];if(t){const s=e.endsWith(\"Async\");(s&&f||!s&&!f)&&(e.startsWith(\"codeBefore\")?n=t:r=t)}}(n||r)&&((e,t,n,r)=>{const s=e[t].bind(e);e[t]=\"run\"===t?(e,t,...o)=>{n&&s(e,n,...o);const a=s(e,tt(t),...o);return r&&s(e,r,...o),a}:async(e,t,...o)=>{n&&await s(e,n,...o);const a=await s(e,tt(t),...o);return r&&await s(e,r,...o),a}})(g,_,n,r);for(const n of Cn.slice(2)){const r=s[n];if(r){const s=n.endsWith(\"Async\");if(s&&f||!s&&!f){const s=et(r);n.startsWith(\"onBefore\")?e=s:t=s}}}Nn(g,b,Yn,f,e,t)}let A,E,v,S=null,k=\"\";zn&&(({CustomEvent:A,document:E}=Kn),S=o&&E.getElementById(o)||null,v=e=>Qe(S,u||l,e,!0,A));const x=pt(Kn,qn,w,t);if(((e,t,n,r)=>{if(\"pyodide\"===e)return;const s=\"polyscript.js_modules\";for(const e of Reflect.ownKeys(r))t.registerJSModule(n,`${s}.${e}`,ot(r,e));t.registerJSModule(n,s,r)})(l,g,h,x),g.registerJSModule(h,\"polyscript\",{IDBMap:a,IDBMapSync:i,xworker:Yn,currentScript:S,config:b.config,js_modules:x,get target(){return!k&&S&&(\"SCRIPT\"===c?S.after(qe(Kn.document.createElement(`script-${u||l}`),{id:k=`${o}-target`})):(k=o,S.replaceChildren(),S.style.display=\"block\")),k}}),Hn=g.runEvent.bind(g,h),Wn=g.transform.bind(g,h),S&&v(\"ready\"),s?.onReady&&et(s?.onReady).call(g,In.call(g,b,h),Yn),await g[_](h,r),[\"micropython\",\"pyodide\"].includes(g.type)){const e=\"polyscript\",t=`__${e}_workers__`,n=\"__export__\";h.runPython([`import js as ${t}`,`${t}.${t} = \"${n}\" in locals() and ${n} or []`,`del ${t}`].join(\"\\n\"));const r=[...globalThis[t]];delete globalThis[t],r.length&&h.runPython([`from ${e} import xworker as ${t}`,...r.map((e=>`${t}.sync.${e} = ${e}`)),`del ${t}`].join(\"\\n\"))}return S&&v(\"done\"),postMessage(\"polyscript:done\"),h}catch(e){postMessage(e)}})(),Jn(\"error\"),Jn(\"message\"),Jn(\"messageerror\"),zn&&addEventListener(\"py:progress\",(({type:e,detail:t})=>{Kn.dispatchEvent(new Kn.CustomEvent(e,{detail:t}))}))}));\n".replace(re,place)],{type:'application/javascript'})), ...args)
/* c8 ignore stop */
{
"name": "polyscript",
"version": "0.17.8",
"version": "0.17.9",
"description": "PyScript single core to rule them all",

@@ -50,3 +50,3 @@ "main": "./esm/index.js",

"@node-loader/import-maps": "^1.1.0",
"@playwright/test": "^1.51.1",
"@playwright/test": "^1.52.0",
"@rollup/plugin-node-resolve": "^16.0.1",

@@ -57,5 +57,5 @@ "@rollup/plugin-terser": "^0.4.4",

"chokidar": "^4.0.3",
"eslint": "^9.24.0",
"eslint": "^9.25.1",
"linkedom": "^0.18.9",
"rollup": "^4.39.0",
"rollup": "^4.40.0",
"static-handler": "^0.5.3",

@@ -87,3 +87,2 @@ "typescript": "^5.8.3"

"@ungap/with-resolvers": "^0.1.0",
"@webreflection/coincident": "^0.2.13",
"@webreflection/fetch": "^0.1.5",

@@ -93,2 +92,3 @@ "@webreflection/idb-map": "^0.3.2",

"codedent": "^0.1.2",
"coincident": "^3.0.2",
"gc-hook": "^0.4.1",

@@ -101,4 +101,4 @@ "html-escaper": "^3.0.3",

"worker": {
"blob": "sha256-Pt5ry63tlrJnXUelto/vTeeI0Ra4aTpqrOuo1grE0bg="
"blob": "sha256-iaE9TznK/Chitl2RyGnEcVbganaVJtMNGrTY6src9DA="
}
}

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet