@pyscript/core 0.0.5 → 0.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -0
- package/cjs/custom.js +3 -1
- package/cjs/interpreter/_python.js +8 -0
- package/cjs/interpreter/_utils.js +11 -1
- package/cjs/interpreter/micropython.js +10 -1
- package/cjs/interpreter/pyodide.js +4 -0
- package/cjs/interpreter/ruby-wasm-wasi.js +11 -1
- package/cjs/interpreter/wasmoon.js +12 -1
- package/cjs/listeners.js +2 -6
- package/cjs/script-handler.js +1 -2
- package/cjs/utils.js +2 -1
- package/cjs/worker/xworker.js +1 -1
- package/core.js +1 -1
- package/dev.cjs +33 -0
- package/docs/README.md +29 -36
- package/esm/custom.js +3 -1
- package/esm/interpreter/_python.js +6 -0
- package/esm/interpreter/_utils.js +10 -1
- package/esm/interpreter/micropython.js +10 -1
- package/esm/interpreter/pyodide.js +4 -0
- package/esm/interpreter/ruby-wasm-wasi.js +14 -1
- package/esm/interpreter/wasmoon.js +12 -1
- package/esm/listeners.js +2 -6
- package/esm/script-handler.js +1 -2
- package/esm/utils.js +2 -1
- package/esm/worker/xworker.js +1 -1
- package/package.json +4 -2
- package/pyscript.js +1 -1
- package/types/coincident/window.d.ts +6 -6
- package/types/pyscript/pyscript.core/esm/interpreter/_python.d.ts +2 -0
- package/types/pyscript/pyscript.core/esm/interpreter/_utils.d.ts +1 -0
- package/types/pyscript/pyscript.core/esm/interpreter/micropython.d.ts +4 -0
- package/types/pyscript/pyscript.core/esm/interpreter/pyodide.d.ts +4 -0
- package/types/pyscript/pyscript.core/esm/interpreter/ruby-wasm-wasi.d.ts +3 -0
- package/types/pyscript/pyscript.core/esm/interpreter/wasmoon.d.ts +3 -0
- package/types/pyscript/pyscript.core/esm/utils.d.ts +6 -0
package/README.md
CHANGED
@@ -43,3 +43,7 @@ NO_MIN=1 npm run build
|
|
43
43
|
|
44
44
|
npm run server
|
45
45
|
```
|
46
|
+
|
47
|
+
### Dev Build
|
48
|
+
|
49
|
+
Beside spinning the _localhost_ server via `npm run server`, the `npm run dev` will watch changes in the `./esm` folder and it will build automatically non optimized artifacts out of the box.
|
package/cjs/custom.js
CHANGED
@@ -10,6 +10,9 @@ const runAsync = (interpreter, code) =>
|
|
10
10
|
interpreter.runPythonAsync(clean(code));
|
11
11
|
exports.runAsync = runAsync;
|
12
12
|
|
13
|
+
const getGlobal = (interpreter, name) => interpreter.globals.get(name);
|
14
|
+
exports.getGlobal = getGlobal;
|
15
|
+
|
13
16
|
const setGlobal = (interpreter, name, value) => {
|
14
17
|
interpreter.globals.set(name, value);
|
15
18
|
};
|
@@ -20,6 +23,11 @@ const deleteGlobal = (interpreter, name) => {
|
|
20
23
|
};
|
21
24
|
exports.deleteGlobal = deleteGlobal;
|
22
25
|
|
26
|
+
const registerJSModule = (interpreter, name, value) => {
|
27
|
+
interpreter.registerJsModule(name, value);
|
28
|
+
};
|
29
|
+
exports.registerJSModule = registerJSModule;
|
30
|
+
|
23
31
|
const writeFile = ({ FS }, path, buffer) =>
|
24
32
|
writeFileUtil(FS, path, buffer);
|
25
33
|
exports.writeFile = writeFile;
|
@@ -2,7 +2,7 @@
|
|
2
2
|
require("@ungap/with-resolvers");
|
3
3
|
|
4
4
|
const { getBuffer } = require("../fetch-utils.js");
|
5
|
-
const { absoluteURL } = require("../utils.js");
|
5
|
+
const { absoluteURL, entries } = require("../utils.js");
|
6
6
|
|
7
7
|
/**
|
8
8
|
* Trim code only if it's a single line that prettier or other tools might have modified.
|
@@ -139,3 +139,13 @@ const fetchPaths = (module, interpreter, config_fetch) =>
|
|
139
139
|
),
|
140
140
|
);
|
141
141
|
exports.fetchPaths = fetchPaths;
|
142
|
+
|
143
|
+
// this is a fallback for interpreters unable to register JS modules
|
144
|
+
// all defined keys will end up as globally available references
|
145
|
+
// REQUIRES INTEGRATION TEST
|
146
|
+
/* c8 ignore start */
|
147
|
+
function registerJSModule(interpreter, _, value) {
|
148
|
+
for (const [k, v] of entries(value)) this.setGlobal(interpreter, k, v);
|
149
|
+
}
|
150
|
+
exports.registerJSModule = registerJSModule
|
151
|
+
/* c8 ignore stop */
|
@@ -1,6 +1,13 @@
|
|
1
1
|
'use strict';
|
2
2
|
const { fetchPaths, stdio } = require("./_utils.js");
|
3
|
-
const {
|
3
|
+
const {
|
4
|
+
run,
|
5
|
+
getGlobal,
|
6
|
+
setGlobal,
|
7
|
+
deleteGlobal,
|
8
|
+
registerJSModule,
|
9
|
+
writeFile
|
10
|
+
} = require("./_python.js");
|
4
11
|
|
5
12
|
const type = "micropython";
|
6
13
|
|
@@ -17,8 +24,10 @@ module.exports = {
|
|
17
24
|
if (config.fetch) await fetchPaths(this, interpreter, config.fetch);
|
18
25
|
return interpreter;
|
19
26
|
},
|
27
|
+
getGlobal,
|
20
28
|
setGlobal,
|
21
29
|
deleteGlobal,
|
30
|
+
registerJSModule,
|
22
31
|
run,
|
23
32
|
// TODO: MicroPython doesn't have a Pyodide like top-level await,
|
24
33
|
// this method should still not throw errors once invoked
|
@@ -3,8 +3,10 @@ const { fetchPaths, stdio } = require("./_utils.js");
|
|
3
3
|
const {
|
4
4
|
run,
|
5
5
|
runAsync,
|
6
|
+
getGlobal,
|
6
7
|
setGlobal,
|
7
8
|
deleteGlobal,
|
9
|
+
registerJSModule,
|
8
10
|
writeFile
|
9
11
|
} = require("./_python.js");
|
10
12
|
|
@@ -31,8 +33,10 @@ module.exports = {
|
|
31
33
|
}
|
32
34
|
return interpreter;
|
33
35
|
},
|
36
|
+
getGlobal,
|
34
37
|
setGlobal,
|
35
38
|
deleteGlobal,
|
39
|
+
registerJSModule,
|
36
40
|
run,
|
37
41
|
runAsync,
|
38
42
|
writeFile,
|
@@ -1,5 +1,5 @@
|
|
1
1
|
'use strict';
|
2
|
-
const { clean, fetchPaths } = require("./_utils.js");
|
2
|
+
const { clean, fetchPaths, registerJSModule } = require("./_utils.js");
|
3
3
|
|
4
4
|
const type = "ruby-wasm-wasi";
|
5
5
|
|
@@ -24,6 +24,16 @@ module.exports = {
|
|
24
24
|
if (config.fetch) await fetchPaths(this, interpreter, config.fetch);
|
25
25
|
return interpreter;
|
26
26
|
},
|
27
|
+
registerJSModule,
|
28
|
+
getGlobal(interpreter, name) {
|
29
|
+
try {
|
30
|
+
return this.run(interpreter, name);
|
31
|
+
}
|
32
|
+
catch (_) {
|
33
|
+
const method = this.run(interpreter, `method(:${name})`);
|
34
|
+
return (...args) => method.call(name, ...args.map(value => interpreter.wrap(value)));
|
35
|
+
}
|
36
|
+
},
|
27
37
|
setGlobal(interpreter, name, value) {
|
28
38
|
const id = `__pyscript_ruby_wasm_wasi_${name}`;
|
29
39
|
globalThis[id] = value;
|
@@ -1,8 +1,17 @@
|
|
1
1
|
'use strict';
|
2
|
-
const {
|
2
|
+
const {
|
3
|
+
clean,
|
4
|
+
fetchPaths,
|
5
|
+
stdio,
|
6
|
+
registerJSModule,
|
7
|
+
writeFileShim
|
8
|
+
} = require("./_utils.js");
|
3
9
|
|
4
10
|
const type = "wasmoon";
|
5
11
|
|
12
|
+
// MISSING:
|
13
|
+
// * I've no idea how to import packages
|
14
|
+
|
6
15
|
// REQUIRES INTEGRATION TEST
|
7
16
|
/* c8 ignore start */
|
8
17
|
module.exports = {
|
@@ -19,6 +28,8 @@ module.exports = {
|
|
19
28
|
if (config.fetch) await fetchPaths(this, interpreter, config.fetch);
|
20
29
|
return interpreter;
|
21
30
|
},
|
31
|
+
registerJSModule,
|
32
|
+
getGlobal: (interpreter, name) => interpreter.global.get(name),
|
22
33
|
setGlobal(interpreter, name, value) {
|
23
34
|
interpreter.global.set(name, value);
|
24
35
|
},
|
package/cjs/listeners.js
CHANGED
@@ -42,12 +42,8 @@ const listener = async (event) => {
|
|
42
42
|
el.getAttribute(`${name}-env`) || name,
|
43
43
|
);
|
44
44
|
const handler = registry.get(name);
|
45
|
-
|
46
|
-
|
47
|
-
handler.run(interpreter, value);
|
48
|
-
} finally {
|
49
|
-
handler.deleteGlobal(interpreter, "event");
|
50
|
-
}
|
45
|
+
const callback = handler.getGlobal(interpreter, value);
|
46
|
+
callback(event);
|
51
47
|
}
|
52
48
|
};
|
53
49
|
exports.listener = listener;
|
package/cjs/script-handler.js
CHANGED
@@ -61,11 +61,10 @@ const execute = async (script, source, XWorker, isAsync) => {
|
|
61
61
|
configurable: true,
|
62
62
|
get: () => script,
|
63
63
|
});
|
64
|
-
module.
|
64
|
+
module.registerJSModule(interpreter, "xworker", { XWorker });
|
65
65
|
return module[isAsync ? "runAsync" : "run"](interpreter, content);
|
66
66
|
} finally {
|
67
67
|
delete document.currentScript;
|
68
|
-
module.deleteGlobal(interpreter, "XWorker");
|
69
68
|
}
|
70
69
|
};
|
71
70
|
|
package/cjs/utils.js
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
'use strict';
|
2
2
|
const { isArray } = Array;
|
3
3
|
|
4
|
-
const { assign, create, defineProperties, defineProperty } = Object;
|
4
|
+
const { assign, create, defineProperties, defineProperty, entries } = Object;
|
5
5
|
|
6
6
|
const { all, resolve } = new Proxy(Promise, {
|
7
7
|
get: ($, name) => $[name].bind($),
|
@@ -14,6 +14,7 @@ exports.assign = assign;
|
|
14
14
|
exports.create = create;
|
15
15
|
exports.defineProperties = defineProperties;
|
16
16
|
exports.defineProperty = defineProperty;
|
17
|
+
exports.entries = entries;
|
17
18
|
exports.all = all;
|
18
19
|
exports.resolve = resolve;
|
19
20
|
exports.absoluteURL = absoluteURL;
|
package/cjs/worker/xworker.js
CHANGED
@@ -1,3 +1,3 @@
|
|
1
1
|
'use strict';
|
2
2
|
/* c8 ignore next */
|
3
|
-
module.exports = () => new Worker(URL.createObjectURL(new Blob(["const e=\"object\"==typeof self?self:globalThis,t=t=>((t,r)=>{const n=(e,r)=>(t.set(r,e),e),s=o=>{if(t.has(o))return t.get(o);const[a,i]=r[o];switch(a){case 0:case-1:return n(i,o);case 1:{const e=n([],o);for(const t of i)e.push(s(t));return e}case 2:{const e=n({},o);for(const[t,r]of i)e[s(t)]=s(r);return e}case 3:return n(new Date(i),o);case 4:{const{source:e,flags:t}=i;return n(new RegExp(e,t),o)}case 5:{const e=n(new Map,o);for(const[t,r]of i)e.set(s(t),s(r));return e}case 6:{const e=n(new Set,o);for(const t of i)e.add(s(t));return e}case 7:{const{name:t,message:r}=i;return n(new e[t](r),o)}case 8:return n(BigInt(i),o);case\"BigInt\":return n(Object(BigInt(i)),o)}return n(new e[a](i),o)};return s})(new Map,t)(0),r=\"\",{toString:n}={},{keys:s}=Object,o=e=>{const t=typeof e;if(\"object\"!==t||!e)return[0,t];const s=n.call(e).slice(8,-1);switch(s){case\"Array\":return[1,r];case\"Object\":return[2,r];case\"Date\":return[3,r];case\"RegExp\":return[4,r];case\"Map\":return[5,r];case\"Set\":return[6,r]}return s.includes(\"Array\")?[1,s]:s.includes(\"Error\")?[7,s]:[2,s]},a=([e,t])=>0===e&&(\"function\"===t||\"symbol\"===t),i=(e,{json:t,lossy:r}={})=>{const n=[];return((e,t,r,n)=>{const i=(e,t)=>{const s=n.push(e)-1;return r.set(t,s),s},c=n=>{if(r.has(n))return r.get(n);let[l,u]=o(n);switch(l){case 0:{let t=n;switch(u){case\"bigint\":l=8,t=n.toString();break;case\"function\":case\"symbol\":if(e)throw new TypeError(\"unable to serialize \"+u);t=null;break;case\"undefined\":return i([-1],n)}return i([l,t],n)}case 1:{if(u)return i([u,[...n]],n);const e=[],t=i([l,e],n);for(const t of n)e.push(c(t));return t}case 2:{if(u)switch(u){case\"BigInt\":return i([u,n.toString()],n);case\"Boolean\":case\"Number\":case\"String\":return i([u,n.valueOf()],n)}if(t&&\"toJSON\"in n)return c(n.toJSON());const r=[],f=i([l,r],n);for(const t of s(n))!e&&a(o(n[t]))||r.push([c(t),c(n[t])]);return f}case 3:return i([l,n.toISOString()],n);case 4:{const{source:e,flags:t}=n;return i([l,{source:e,flags:t}],n)}case 5:{const t=[],r=i([l,t],n);for(const[r,s]of n)(e||!a(o(r))&&!a(o(s)))&&t.push([c(r),c(s)]);return r}case 6:{const t=[],r=i([l,t],n);for(const r of n)!e&&a(o(r))||t.push(c(r));return r}}const{message:f}=n;return i([l,{name:u,message:f}],n)};return c})(!(t||r),!!t,new Map,n)(e),n},{parse:c,stringify:l}=JSON,u={json:!0,lossy:!0};var f=Object.freeze({__proto__:null,parse:e=>t(c(e)),stringify:e=>l(i(e,u))}),p=\"2f6fe6d4-8ba8-424a-83c5-8fadca1ea103\",d=e=>({value:new Promise((t=>{let r=new Worker(\"data:application/javascript,\"+encodeURIComponent(\"onmessage=({data:b})=>(Atomics.wait(b,0),postMessage(0))\"));r.onmessage=t,r.postMessage(e)}))})\n/*! (c) Andrea Giammarchi - ISC */;const{Int32Array:w,Map:y,SharedArrayBuffer:h,Uint16Array:g}=globalThis,{BYTES_PER_ELEMENT:m}=w,{BYTES_PER_ELEMENT:b}=g,{isArray:v}=Array,{notify:P,wait:E,waitAsync:S}=Atomics,{fromCharCode:j}=String,A=(e,t)=>e?(S||d)(t,0):(E(t,0),{value:{then:e=>e()}}),M=new WeakSet,k=new WeakMap;let x=0;const _=(e,{parse:t,stringify:r}=JSON)=>{if(!k.has(e)){const n=(t,...r)=>e.postMessage({[p]:r},{transfer:t});k.set(e,new Proxy(new y,{has:(e,t)=>\"string\"==typeof t&&!t.startsWith(\"_\"),get:(r,s)=>\"then\"===s?null:(...r)=>{const o=x++;let a=new w(new h(m)),i=[];M.has(r.at(-1)||i)&&M.delete(i=r.pop()),n(i,o,a,s,r);const c=e instanceof Worker;return A(c,a).value.then((()=>{const e=a[0];if(!e)return;const r=b*e;return a=new w(new h(r+r%m)),n([],o,a),A(c,a).value.then((()=>t(j(...new g(a.buffer).slice(0,e)))))}))},set(t,n,s){if(!t.size){const n=new y;e.addEventListener(\"message\",(async e=>{const s=e.data?.[p];if(v(s)){e.stopImmediatePropagation();const[o,a,...i]=s;if(i.length){const[e,s]=i;if(!t.has(e))throw new Error(`Unsupported action: ${e}`);{const i=r(await t.get(e)(...s));i&&(n.set(o,i),a[0]=i.length)}}else{const e=n.get(o);n.delete(o);for(let t=new g(a.buffer),r=0;r<e.length;r++)t[r]=e.charCodeAt(r)}P(a,0)}}))}return!!t.set(n,s)}}))}return k.get(e)};_.transfer=(...e)=>(M.add(e),e);const $=\"object\",O=\"function\",W=\"number\",R=\"string\",T=\"undefined\",F=\"symbol\",{defineProperty:B,getOwnPropertyDescriptor:I,getPrototypeOf:G,isExtensible:L,ownKeys:U,preventExtensions:N,set:z,setPrototypeOf:D}=Reflect,J=G(Int8Array),C=(e,t)=>{const{get:r,set:n,value:s}=e;return r&&(e.get=t(r)),n&&(e.set=t(n)),s&&(e.value=t(s)),e},q=(e,t)=>[e,t],K=e=>t=>{const r=typeof t;switch(r){case $:if(null==t)return q(\"null\",t);case O:return e(r,t);case\"boolean\":case W:case R:case T:case\"bigint\":return q(r,t);case F:if(Y.has(t))return q(r,Y.get(t))}throw new Error(`Unable to handle this ${r} type`)},Y=new Map(U(Symbol).filter((e=>typeof Symbol[e]===F)).map((e=>[Symbol[e],e]))),V=e=>{for(const[t,r]of Y)if(r===e)return t},H=\"apply\",Q=\"construct\",X=\"defineProperty\",Z=\"deleteProperty\",ee=\"get\",te=\"getOwnPropertyDescriptor\",re=\"getPrototypeOf\",ne=\"has\",se=\"isExtensible\",oe=\"ownKeys\",ae=\"preventExtensions\",ie=\"set\",ce=\"setPrototypeOf\",le=\"delete\";let ue=0;const fe=new Map,pe=new Map,de=new WeakMap;if(globalThis.window===globalThis){const{addEventListener:e}=EventTarget.prototype;B(EventTarget.prototype,\"addEventListener\",{value(t,r,...n){return n.at(0)?.invoke&&(de.has(this)||de.set(this,new Map),de.get(this).set(t,[].concat(n[0].invoke)),delete n[0].invoke),e.call(this,t,r,...n)}})}const we=K(((e,t)=>{if(!fe.has(t)){let e;for(;pe.has(e=ue++););fe.set(t,e),pe.set(e,t)}return q(e,fe.get(t))}));var ye=(e,t,r)=>{const{[r]:n}=e,s=new FinalizationRegistry((e=>{n(le,q(R,e))})),o=([e,t])=>{switch(e){case $:if(null==t)return globalThis;if(typeof t===W)return pe.get(t);if(!(t instanceof J))for(const e in t)t[e]=o(t[e]);return t;case O:if(typeof t===R){if(!pe.has(t)){const e=function(...e){return e.at(0)instanceof Event&&(e=>{const{currentTarget:t,target:r,type:n}=e;for(const s of de.get(t||r)?.get(n)||[])e[s]()})(...e),n(H,q(O,t),we(this),e.map(we))},r=new WeakRef(e);pe.set(t,r),s.register(e,t,r)}return pe.get(t).deref()}return pe.get(t);case F:return V(t)}return t},a={[H]:(e,t,r)=>we(e.apply(t,r)),[Q]:(e,t)=>we(new e(...t)),[X]:(e,t,r)=>we(B(e,t,r)),[Z]:(e,t)=>we(delete e[t]),[re]:e=>we(G(e)),[ee]:(e,t)=>we(e[t]),[te]:(e,t)=>{const r=I(e,t);return r?q($,C(r,we)):q(T,r)},[ne]:(e,t)=>we(t in e),[se]:e=>we(L(e)),[oe]:e=>q($,U(e).map(we)),[ae]:e=>we(N(e)),[ie]:(e,t,r)=>we(z(e,t,r)),[ce]:(e,t)=>we(D(e,t)),[le](e){fe.delete(pe.get(e)),pe.delete(e)}};return e[t]=(e,t,...r)=>{switch(e){case H:r[0]=o(r[0]),r[1]=r[1].map(o);break;case Q:r[0]=r[0].map(o);break;case X:{const[e,t]=r;r[0]=o(e);const{get:n,set:s,value:a}=t;n&&(t.get=o(n)),s&&(t.set=o(s)),a&&(t.value=o(a));break}default:r=r.map(o)}return a[e](o(t),...r)},{proxy:e,window:globalThis,isWindowProxy:()=>!1}};let he=0;const ge=new Map,me=new Map,be=Symbol(),ve=e=>typeof e===O?e():e,Pe=e=>typeof e===$&&!!e&&be in e,Ee=\"isArray\",Se=Array[Ee],je=K(((e,t)=>{if(be in t)return ve(t[be]);if(e===O){if(!me.has(t)){let e;for(;me.has(e=String(he++)););ge.set(t,e),me.set(e,t)}return q(e,ge.get(t))}if(!(t instanceof J))for(const e in t)t[e]=je(t[e]);return q(e,t)}));var Ae=(e,t,r)=>{const{[t]:n}=e,s=new Map,o=new FinalizationRegistry((e=>{s.delete(e),n(le,je(e))})),a=e=>{const[t,r]=e;if(!s.has(r)){const n=t===O?Me.bind(e):e,a=new Proxy(n,l),i=new WeakRef(a);s.set(r,i),o.register(a,r,i)}return s.get(r).deref()},i=e=>{const[t,r]=e;switch(t){case $:return typeof r===W?a(e):r;case O:return typeof r===R?me.get(r):a(e);case F:return V(r)}return r},c=(e,t,...r)=>i(n(e,ve(t),...r)),l={[H]:(e,t,r)=>c(H,e,je(t),r.map(je)),[Q]:(e,t)=>c(Q,e,t.map(je)),[X]:(e,t,r)=>{const{get:n,set:s,value:o}=r;return typeof n===O&&(r.get=je(n)),typeof s===O&&(r.set=je(s)),typeof o===O&&(r.value=je(o)),c(X,e,je(t),r)},[Z]:(e,t)=>c(Z,e,je(t)),[re]:e=>c(re,e),[ee]:(e,t)=>t===be?e:c(ee,e,je(t)),[te]:(e,t)=>{const r=c(te,e,je(t));return r&&C(r,i)},[ne]:(e,t)=>t===be||c(ne,e,je(t)),[se]:e=>c(se,e),[oe]:e=>c(oe,e).map(i),[ae]:e=>c(ae,e),[ie]:(e,t,r)=>c(ie,e,je(t),je(r)),[ce]:(e,t)=>c(ce,e,je(t))};e[r]=(e,t,r,n)=>{switch(e){case H:return i(t).apply(i(r),n.map(i));case le:{const e=i(t);ge.delete(me.get(e)),me.delete(e)}}};const u=new Proxy([$,null],l),f=u.Array[Ee];return B(Array,Ee,{value:e=>Pe(e)?f(e):Se(e)}),{window:u,isWindowProxy:Pe,proxy:e,get global(){return console.warn(\"Deprecated: please access `window` field instead\"),this.window},get isGlobal(){return function(e){return console.warn(\"Deprecated: please access `isWindowProxy` field instead\"),this.isWindowProxy(e)}.bind(this)}}};function Me(){return this}const ke=p+\"M\",xe=p+\"T\",_e=new WeakMap,$e=(e,...t)=>{const r=_(e,...t);if(!_e.has(r)){const t=e instanceof Worker?ye:Ae;_e.set(r,t(r,ke,xe))}return _e.get(r)};$e.transfer=_.transfer;const{isArray:Oe}=Array,{assign:We,create:Re,defineProperties:Te,defineProperty:Fe}=Object,{all:Be,resolve:Ie}=new Proxy(Promise,{get:(e,t)=>e[t].bind(e)}),Ge=(e,t=location.href)=>new URL(e,t).href;Promise.withResolvers||(Promise.withResolvers=function(){var e,t,r=new this((function(r,n){e=r,t=n}));return{resolve:e,reject:t,promise:r}});const Le=e=>e.arrayBuffer(),Ue=e=>e.json(),Ne=e=>e.text(),ze=e=>e.replace(/^[^\\r\\n]+$/,(e=>e.trim())),De=new WeakMap,Je=e=>{const t=e||console,r={stderr:(t.stderr||console.error).bind(t),stdout:(t.stdout||console.log).bind(t)};return{stderr:(...e)=>r.stderr(...e),stdout:(...e)=>r.stdout(...e),async get(e){const t=await e;return De.set(t,r),t}}},Ce=e=>{const t=e.split(\"/\");return t.pop(),t.join(\"/\")},qe=(e,t)=>{const r=[];for(const n of t.split(\"/\"))r.push(n),n&&e.mkdir(r.join(\"/\"))},Ke=(e,t)=>{const r=[];for(const e of t.split(\"/\"))switch(e){case\"\":case\".\":break;case\"..\":r.pop();break;default:r.push(e)}return[e.cwd()].concat(r).join(\"/\").replace(/^\\/+/,\"/\")},Ye=e=>{const t=e.map((e=>e.trim().replace(/(^[/]*|[/]*$)/g,\"\"))).filter((e=>\"\"!==e&&\".\"!==e)).join(\"/\");return e[0].startsWith(\"/\")?`/${t}`:t},Ve=new WeakMap,He=(e,t,r)=>Be((e=>{for(const{files:t,to_file:r,from:n=\"\"}of e){if(void 0!==t&&void 0!==r)throw new Error(\"Cannot use 'to_file' and 'files' parameters together!\");if(void 0===t&&void 0===r&&n.endsWith(\"/\"))throw new Error(`Couldn't determine the filename from the path ${n}, please supply 'to_file' parameter.`)}return e.flatMap((({from:e=\"\",to_folder:t=\".\",to_file:r,files:n})=>{if(Oe(n))return n.map((r=>({url:Ye([e,r]),path:Ye([t,r])})));const s=r||e.slice(1+e.lastIndexOf(\"/\"));return[{url:e,path:Ye([t,s])}]}))})(r).map((({url:n,path:s})=>((e,t)=>fetch(Ge(t,Ve.get(e))))(r,n).then(Le).then((r=>e.writeFile(t,s,r)))))),Qe=(e,t)=>e.runPython(ze(t)),Xe=(e,t,r)=>{e.globals.set(t,r)},Ze=(e,t)=>{e.globals.delete(t)},et=({FS:e},t,r)=>((e,t,r)=>{const{parentPath:n,name:s}=e.analyzePath(t,!0);return e.mkdirTree(n),e.writeFile([n,s].join(\"/\"),new Uint8Array(r),{canOwn:!0})})(e,t,r);var tt={type:\"micropython\",module:(e=\"1.20.0-268\")=>`https://cdn.jsdelivr.net/npm/@micropython/micropython-webassembly-pyscript@${e}/micropython.mjs`,async engine({loadMicroPython:e},t,r){const{stderr:n,stdout:s,get:o}=Je();r=r.replace(/\\.m?js$/,\".wasm\");const a=await o(e({stderr:n,stdout:s,url:r}));return t.fetch&&await He(this,a,t.fetch),a},setGlobal:Xe,deleteGlobal:Ze,run:Qe,async runAsync(...e){return this.run(...e)},writeFile:et};var rt={type:\"pyodide\",module:(e=\"0.23.2\")=>`https://cdn.jsdelivr.net/pyodide/v${e}/full/pyodide.mjs`,async engine({loadPyodide:e},t,r){const{stderr:n,stdout:s,get:o}=Je(),a=r.slice(0,r.lastIndexOf(\"/\")),i=await o(e({stderr:n,stdout:s,indexURL:a}));if(t.fetch&&await He(this,i,t.fetch),t.packages){await i.loadPackage(\"micropip\");const e=await i.pyimport(\"micropip\");await e.install(t.packages),e.destroy()}return i},setGlobal:Xe,deleteGlobal:Ze,run:Qe,runAsync:(e,t)=>e.runPythonAsync(ze(t)),writeFile:et};const nt=\"ruby-wasm-wasi\";var st={type:nt,experimental:!0,module:(e=\"2.0.0\")=>`https://cdn.jsdelivr.net/npm/ruby-3_2-wasm-wasi@${e}/dist/browser.esm.js`,async engine({DefaultRubyVM:e},t,r){const n=await fetch(`${r.slice(0,r.lastIndexOf(\"/\"))}/ruby.wasm`),s=await WebAssembly.compile(await n.arrayBuffer()),{vm:o}=await e(s);return t.fetch&&await He(this,o,t.fetch),o},setGlobal(e,t,r){const n=`__pyscript_ruby_wasm_wasi_${t}`;globalThis[n]=r,this.run(e,`require \"js\";$${t}=JS::eval(\"return ${n}\")`)},deleteGlobal(e,t){const r=`__pyscript_ruby_wasm_wasi_${t}`;this.run(e,`$${t}=nil`),delete globalThis[r]},run:(e,t)=>e.eval(ze(t)),runAsync:(e,t)=>e.evalAsync(ze(t)),writeFile:()=>{throw new Error(`writeFile is not supported in ${nt}`)}};var ot={type:\"wasmoon\",module:(e=\"1.15.0\")=>`https://cdn.jsdelivr.net/npm/wasmoon@${e}/+esm`,async engine({LuaFactory:e,LuaLibraries:t},r){const{stderr:n,stdout:s,get:o}=Je(),a=await o((new e).createEngine());return a.global.getTable(t.Base,(e=>{a.global.setField(e,\"print\",s),a.global.setField(e,\"printErr\",n)})),r.fetch&&await He(this,a,r.fetch),a},setGlobal(e,t,r){e.global.set(t,r)},deleteGlobal(e,t){e.global.set(t,void 0)},run:(e,t)=>e.doStringSync(ze(t)),runAsync:(e,t)=>e.doString(ze(t)),writeFile:({cmodule:{module:{FS:e}}},t,r)=>((e,t,r)=>(t=Ke(e,t),qe(e,Ce(t)),e.writeFile(t,new Uint8Array(r),{canOwn:!0})))(e,t,r)};const at=new Map,it=new Map,ct=new Proxy(new Map,{get(e,t){if(!e.has(t)){const[r,...n]=t.split(\"@\"),s=at.get(r),o=/^https?:\\/\\//i.test(n)?n.join(\"@\"):s.module(...n);e.set(t,{url:o,module:import(o),engine:s.engine.bind(s)})}const{url:r,module:n,engine:s}=e.get(t);return(e,o)=>n.then((n=>{it.set(t,e);const a=e?.fetch;return a&&Ve.set(a,o),s(n,e,r)}))}}),lt=e=>{for(const t of[].concat(e.type))at.set(t,e)};for(const e of[tt,rt,st,ot])lt(e);const ut=async e=>(await import(\"https://cdn.jsdelivr.net/npm/basic-toml@0.3.1/es.js\")).parse(e);try{new SharedArrayBuffer(4)}catch(e){throw new Error([\"Unable to use SharedArrayBuffer due insecure environment.\",\"Please read requirements in MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer#security_requirements\"].join(\"\\n\"))}let ft,pt,dt;const wt=(e,t)=>{addEventListener(e,t||(async t=>{await ft,dt=t,pt(`xworker.on${e}(xworker.event);`,mt)}),!!t&&{once:!0})},{proxy:yt,window:ht,isWindowProxy:gt}=$e(self,f),mt={sync:yt,window:ht,isWindowProxy:gt,onerror(){},onmessage(){},onmessageerror(){},postMessage:postMessage.bind(self),get event(){const e=dt;if(!e)throw new Error(\"Unauthorized event access\");return dt=void 0,e}};wt(\"message\",(({data:{options:e,code:t,hooks:r}})=>{ft=(async()=>{const{type:n,version:s,config:o,async:a}=e,i=await((e,t)=>{let r={};if(t)if(t.endsWith(\".json\"))r=fetch(t).then(Ue);else if(t.endsWith(\".toml\"))r=fetch(t).then(Ne).then(ut);else{try{r=JSON.parse(t)}catch(e){r=ut(t)}t=Ge(\"./config.txt\")}return Ie(r).then((r=>ct[e](r,t)))})(((e,t=\"\")=>`${e}@${t}`.replace(/@$/,\"\"))(n,s),o),c=Re(at.get(n)),l=\"run\"+(a?\"Async\":\"\");if(r){const{beforeRun:e,beforeRunAsync:t,afterRun:n,afterRunAsync:s}=r,o=n||s,a=e||t;if(o){const e=c[l].bind(c);c[l]=(t,r)=>e(t,`${r}\\n${o}`)}if(a){const e=c[l].bind(c);c[l]=(t,r)=>e(t,`${a}\\n${r}`)}}return c.setGlobal(i,\"xworker\",mt),pt=c[l].bind(c,i),pt(t),i})(),wt(\"error\"),wt(\"message\"),wt(\"messageerror\")}));\n"],{type:'application/javascript'})),{type:'module'});
|
3
|
+
module.exports = () => new Worker(URL.createObjectURL(new Blob(["const e=\"object\"==typeof self?self:globalThis,t=t=>((t,r)=>{const n=(e,r)=>(t.set(r,e),e),s=o=>{if(t.has(o))return t.get(o);const[a,i]=r[o];switch(a){case 0:case-1:return n(i,o);case 1:{const e=n([],o);for(const t of i)e.push(s(t));return e}case 2:{const e=n({},o);for(const[t,r]of i)e[s(t)]=s(r);return e}case 3:return n(new Date(i),o);case 4:{const{source:e,flags:t}=i;return n(new RegExp(e,t),o)}case 5:{const e=n(new Map,o);for(const[t,r]of i)e.set(s(t),s(r));return e}case 6:{const e=n(new Set,o);for(const t of i)e.add(s(t));return e}case 7:{const{name:t,message:r}=i;return n(new e[t](r),o)}case 8:return n(BigInt(i),o);case\"BigInt\":return n(Object(BigInt(i)),o)}return n(new e[a](i),o)};return s})(new Map,t)(0),r=\"\",{toString:n}={},{keys:s}=Object,o=e=>{const t=typeof e;if(\"object\"!==t||!e)return[0,t];const s=n.call(e).slice(8,-1);switch(s){case\"Array\":return[1,r];case\"Object\":return[2,r];case\"Date\":return[3,r];case\"RegExp\":return[4,r];case\"Map\":return[5,r];case\"Set\":return[6,r]}return s.includes(\"Array\")?[1,s]:s.includes(\"Error\")?[7,s]:[2,s]},a=([e,t])=>0===e&&(\"function\"===t||\"symbol\"===t),i=(e,{json:t,lossy:r}={})=>{const n=[];return((e,t,r,n)=>{const i=(e,t)=>{const s=n.push(e)-1;return r.set(t,s),s},c=n=>{if(r.has(n))return r.get(n);let[l,u]=o(n);switch(l){case 0:{let t=n;switch(u){case\"bigint\":l=8,t=n.toString();break;case\"function\":case\"symbol\":if(e)throw new TypeError(\"unable to serialize \"+u);t=null;break;case\"undefined\":return i([-1],n)}return i([l,t],n)}case 1:{if(u)return i([u,[...n]],n);const e=[],t=i([l,e],n);for(const t of n)e.push(c(t));return t}case 2:{if(u)switch(u){case\"BigInt\":return i([u,n.toString()],n);case\"Boolean\":case\"Number\":case\"String\":return i([u,n.valueOf()],n)}if(t&&\"toJSON\"in n)return c(n.toJSON());const r=[],f=i([l,r],n);for(const t of s(n))!e&&a(o(n[t]))||r.push([c(t),c(n[t])]);return f}case 3:return i([l,n.toISOString()],n);case 4:{const{source:e,flags:t}=n;return i([l,{source:e,flags:t}],n)}case 5:{const t=[],r=i([l,t],n);for(const[r,s]of n)(e||!a(o(r))&&!a(o(s)))&&t.push([c(r),c(s)]);return r}case 6:{const t=[],r=i([l,t],n);for(const r of n)!e&&a(o(r))||t.push(c(r));return r}}const{message:f}=n;return i([l,{name:u,message:f}],n)};return c})(!(t||r),!!t,new Map,n)(e),n},{parse:c,stringify:l}=JSON,u={json:!0,lossy:!0};var f=Object.freeze({__proto__:null,parse:e=>t(c(e)),stringify:e=>l(i(e,u))}),p=\"2f6fe6d4-8ba8-424a-83c5-8fadca1ea103\",d=e=>({value:new Promise((t=>{let r=new Worker(\"data:application/javascript,\"+encodeURIComponent(\"onmessage=({data:b})=>(Atomics.wait(b,0),postMessage(0))\"));r.onmessage=t,r.postMessage(e)}))})\n/*! (c) Andrea Giammarchi - ISC */;const{Int32Array:w,Map:g,SharedArrayBuffer:h,Uint16Array:y}=globalThis,{BYTES_PER_ELEMENT:m}=w,{BYTES_PER_ELEMENT:b}=y,{isArray:v}=Array,{notify:S,wait:M,waitAsync:P}=Atomics,{fromCharCode:E}=String,j=(e,t)=>e?(P||d)(t,0):(M(t,0),{value:{then:e=>e()}}),A=new WeakSet,k=new WeakMap;let x=0;const $=(e,{parse:t,stringify:r}=JSON)=>{if(!k.has(e)){const n=(t,...r)=>e.postMessage({[p]:r},{transfer:t});k.set(e,new Proxy(new g,{has:(e,t)=>\"string\"==typeof t&&!t.startsWith(\"_\"),get:(r,s)=>\"then\"===s?null:(...r)=>{const o=x++;let a=new w(new h(m)),i=[];A.has(r.at(-1)||i)&&A.delete(i=r.pop()),n(i,o,a,s,r);const c=e instanceof Worker;return j(c,a).value.then((()=>{const e=a[0];if(!e)return;const r=b*e;return a=new w(new h(r+r%m)),n([],o,a),j(c,a).value.then((()=>t(E(...new y(a.buffer).slice(0,e)))))}))},set(t,n,s){if(!t.size){const n=new g;e.addEventListener(\"message\",(async e=>{const s=e.data?.[p];if(v(s)){e.stopImmediatePropagation();const[o,a,...i]=s;if(i.length){const[e,s]=i;if(!t.has(e))throw new Error(`Unsupported action: ${e}`);{const i=r(await t.get(e)(...s));i&&(n.set(o,i),a[0]=i.length)}}else{const e=n.get(o);n.delete(o);for(let t=new y(a.buffer),r=0;r<e.length;r++)t[r]=e.charCodeAt(r)}S(a,0)}}))}return!!t.set(n,s)}}))}return k.get(e)};$.transfer=(...e)=>(A.add(e),e);const _=\"object\",O=\"function\",W=\"number\",R=\"string\",T=\"undefined\",F=\"symbol\",{defineProperty:G,getOwnPropertyDescriptor:B,getPrototypeOf:J,isExtensible:I,ownKeys:L,preventExtensions:U,set:N,setPrototypeOf:z}=Reflect,D=J(Int8Array),C=(e,t)=>{const{get:r,set:n,value:s}=e;return r&&(e.get=t(r)),n&&(e.set=t(n)),s&&(e.value=t(s)),e},q=(e,t)=>[e,t],K=e=>t=>{const r=typeof t;switch(r){case _:if(null==t)return q(\"null\",t);case O:return e(r,t);case\"boolean\":case W:case R:case T:case\"bigint\":return q(r,t);case F:if(Y.has(t))return q(r,Y.get(t))}throw new Error(`Unable to handle this ${r} type`)},Y=new Map(L(Symbol).filter((e=>typeof Symbol[e]===F)).map((e=>[Symbol[e],e]))),V=e=>{for(const[t,r]of Y)if(r===e)return t},H=\"apply\",Q=\"construct\",X=\"defineProperty\",Z=\"deleteProperty\",ee=\"get\",te=\"getOwnPropertyDescriptor\",re=\"getPrototypeOf\",ne=\"has\",se=\"isExtensible\",oe=\"ownKeys\",ae=\"preventExtensions\",ie=\"set\",ce=\"setPrototypeOf\",le=\"delete\";let ue=0;const fe=new Map,pe=new Map,de=new WeakMap;if(globalThis.window===globalThis){const{addEventListener:e}=EventTarget.prototype;G(EventTarget.prototype,\"addEventListener\",{value(t,r,...n){return n.at(0)?.invoke&&(de.has(this)||de.set(this,new Map),de.get(this).set(t,[].concat(n[0].invoke)),delete n[0].invoke),e.call(this,t,r,...n)}})}const we=K(((e,t)=>{if(!fe.has(t)){let e;for(;pe.has(e=ue++););fe.set(t,e),pe.set(e,t)}return q(e,fe.get(t))}));var ge=(e,t,r)=>{const{[r]:n}=e,s=new FinalizationRegistry((e=>{n(le,q(R,e))})),o=([e,t])=>{switch(e){case _:if(null==t)return globalThis;if(typeof t===W)return pe.get(t);if(!(t instanceof D))for(const e in t)t[e]=o(t[e]);return t;case O:if(typeof t===R){if(!pe.has(t)){const e=function(...e){return e.at(0)instanceof Event&&(e=>{const{currentTarget:t,target:r,type:n}=e;for(const s of de.get(t||r)?.get(n)||[])e[s]()})(...e),n(H,q(O,t),we(this),e.map(we))},r=new WeakRef(e);pe.set(t,r),s.register(e,t,r)}return pe.get(t).deref()}return pe.get(t);case F:return V(t)}return t},a={[H]:(e,t,r)=>we(e.apply(t,r)),[Q]:(e,t)=>we(new e(...t)),[X]:(e,t,r)=>we(G(e,t,r)),[Z]:(e,t)=>we(delete e[t]),[re]:e=>we(J(e)),[ee]:(e,t)=>we(e[t]),[te]:(e,t)=>{const r=B(e,t);return r?q(_,C(r,we)):q(T,r)},[ne]:(e,t)=>we(t in e),[se]:e=>we(I(e)),[oe]:e=>q(_,L(e).map(we)),[ae]:e=>we(U(e)),[ie]:(e,t,r)=>we(N(e,t,r)),[ce]:(e,t)=>we(z(e,t)),[le](e){fe.delete(pe.get(e)),pe.delete(e)}};return e[t]=(e,t,...r)=>{switch(e){case H:r[0]=o(r[0]),r[1]=r[1].map(o);break;case Q:r[0]=r[0].map(o);break;case X:{const[e,t]=r;r[0]=o(e);const{get:n,set:s,value:a}=t;n&&(t.get=o(n)),s&&(t.set=o(s)),a&&(t.value=o(a));break}default:r=r.map(o)}return a[e](o(t),...r)},{proxy:e,window:globalThis,isWindowProxy:()=>!1}};let he=0;const ye=new Map,me=new Map,be=Symbol(),ve=e=>typeof e===O?e():e,Se=e=>typeof e===_&&!!e&&be in e,Me=\"isArray\",Pe=Array[Me],Ee=K(((e,t)=>{if(be in t)return ve(t[be]);if(e===O){if(!me.has(t)){let e;for(;me.has(e=String(he++)););ye.set(t,e),me.set(e,t)}return q(e,ye.get(t))}if(!(t instanceof D))for(const e in t)t[e]=Ee(t[e]);return q(e,t)}));var je=(e,t,r)=>{const{[t]:n}=e,s=new Map,o=new FinalizationRegistry((e=>{s.delete(e),n(le,Ee(e))})),a=e=>{const[t,r]=e;if(!s.has(r)){const n=t===O?Ae.bind(e):e,a=new Proxy(n,l),i=new WeakRef(a);s.set(r,i),o.register(a,r,i)}return s.get(r).deref()},i=e=>{const[t,r]=e;switch(t){case _:return typeof r===W?a(e):r;case O:return typeof r===R?me.get(r):a(e);case F:return V(r)}return r},c=(e,t,...r)=>i(n(e,ve(t),...r)),l={[H]:(e,t,r)=>c(H,e,Ee(t),r.map(Ee)),[Q]:(e,t)=>c(Q,e,t.map(Ee)),[X]:(e,t,r)=>{const{get:n,set:s,value:o}=r;return typeof n===O&&(r.get=Ee(n)),typeof s===O&&(r.set=Ee(s)),typeof o===O&&(r.value=Ee(o)),c(X,e,Ee(t),r)},[Z]:(e,t)=>c(Z,e,Ee(t)),[re]:e=>c(re,e),[ee]:(e,t)=>t===be?e:c(ee,e,Ee(t)),[te]:(e,t)=>{const r=c(te,e,Ee(t));return r&&C(r,i)},[ne]:(e,t)=>t===be||c(ne,e,Ee(t)),[se]:e=>c(se,e),[oe]:e=>c(oe,e).map(i),[ae]:e=>c(ae,e),[ie]:(e,t,r)=>c(ie,e,Ee(t),Ee(r)),[ce]:(e,t)=>c(ce,e,Ee(t))};e[r]=(e,t,r,n)=>{switch(e){case H:return i(t).apply(i(r),n.map(i));case le:{const e=i(t);ye.delete(me.get(e)),me.delete(e)}}};const u=new Proxy([_,null],l),f=u.Array[Me];return G(Array,Me,{value:e=>Se(e)?f(e):Pe(e)}),{window:u,isWindowProxy:Se,proxy:e,get global(){return console.warn(\"Deprecated: please access `window` field instead\"),this.window},get isGlobal(){return function(e){return console.warn(\"Deprecated: please access `isWindowProxy` field instead\"),this.isWindowProxy(e)}.bind(this)}}};function Ae(){return this}const ke=p+\"M\",xe=p+\"T\",$e=new WeakMap,_e=(e,...t)=>{const r=$(e,...t);if(!$e.has(r)){const t=e instanceof Worker?ge:je;$e.set(r,t(r,ke,xe))}return $e.get(r)};_e.transfer=$.transfer;const{isArray:Oe}=Array,{assign:We,create:Re,defineProperties:Te,defineProperty:Fe,entries:Ge}=Object,{all:Be,resolve:Je}=new Proxy(Promise,{get:(e,t)=>e[t].bind(e)}),Ie=(e,t=location.href)=>new URL(e,t).href;Promise.withResolvers||(Promise.withResolvers=function(){var e,t,r=new this((function(r,n){e=r,t=n}));return{resolve:e,reject:t,promise:r}});const Le=e=>e.arrayBuffer(),Ue=e=>e.json(),Ne=e=>e.text(),ze=e=>e.replace(/^[^\\r\\n]+$/,(e=>e.trim())),De=new WeakMap,Ce=e=>{const t=e||console,r={stderr:(t.stderr||console.error).bind(t),stdout:(t.stdout||console.log).bind(t)};return{stderr:(...e)=>r.stderr(...e),stdout:(...e)=>r.stdout(...e),async get(e){const t=await e;return De.set(t,r),t}}},qe=e=>{const t=e.split(\"/\");return t.pop(),t.join(\"/\")},Ke=(e,t)=>{const r=[];for(const n of t.split(\"/\"))r.push(n),n&&e.mkdir(r.join(\"/\"))},Ye=(e,t)=>{const r=[];for(const e of t.split(\"/\"))switch(e){case\"\":case\".\":break;case\"..\":r.pop();break;default:r.push(e)}return[e.cwd()].concat(r).join(\"/\").replace(/^\\/+/,\"/\")},Ve=e=>{const t=e.map((e=>e.trim().replace(/(^[/]*|[/]*$)/g,\"\"))).filter((e=>\"\"!==e&&\".\"!==e)).join(\"/\");return e[0].startsWith(\"/\")?`/${t}`:t},He=new WeakMap,Qe=(e,t,r)=>Be((e=>{for(const{files:t,to_file:r,from:n=\"\"}of e){if(void 0!==t&&void 0!==r)throw new Error(\"Cannot use 'to_file' and 'files' parameters together!\");if(void 0===t&&void 0===r&&n.endsWith(\"/\"))throw new Error(`Couldn't determine the filename from the path ${n}, please supply 'to_file' parameter.`)}return e.flatMap((({from:e=\"\",to_folder:t=\".\",to_file:r,files:n})=>{if(Oe(n))return n.map((r=>({url:Ve([e,r]),path:Ve([t,r])})));const s=r||e.slice(1+e.lastIndexOf(\"/\"));return[{url:e,path:Ve([t,s])}]}))})(r).map((({url:n,path:s})=>((e,t)=>fetch(Ie(t,He.get(e))))(r,n).then(Le).then((r=>e.writeFile(t,s,r))))));function Xe(e,t,r){for(const[t,n]of Ge(r))this.setGlobal(e,t,n)}const Ze=(e,t)=>e.runPython(ze(t)),et=(e,t)=>e.globals.get(t),tt=(e,t,r)=>{e.globals.set(t,r)},rt=(e,t)=>{e.globals.delete(t)},nt=(e,t,r)=>{e.registerJsModule(t,r)},st=({FS:e},t,r)=>((e,t,r)=>{const{parentPath:n,name:s}=e.analyzePath(t,!0);return e.mkdirTree(n),e.writeFile([n,s].join(\"/\"),new Uint8Array(r),{canOwn:!0})})(e,t,r);var ot={type:\"micropython\",module:(e=\"1.20.0-268\")=>`https://cdn.jsdelivr.net/npm/@micropython/micropython-webassembly-pyscript@${e}/micropython.mjs`,async engine({loadMicroPython:e},t,r){const{stderr:n,stdout:s,get:o}=Ce();r=r.replace(/\\.m?js$/,\".wasm\");const a=await o(e({stderr:n,stdout:s,url:r}));return t.fetch&&await Qe(this,a,t.fetch),a},getGlobal:et,setGlobal:tt,deleteGlobal:rt,registerJSModule:nt,run:Ze,async runAsync(...e){return this.run(...e)},writeFile:st};var at={type:\"pyodide\",module:(e=\"0.23.2\")=>`https://cdn.jsdelivr.net/pyodide/v${e}/full/pyodide.mjs`,async engine({loadPyodide:e},t,r){const{stderr:n,stdout:s,get:o}=Ce(),a=r.slice(0,r.lastIndexOf(\"/\")),i=await o(e({stderr:n,stdout:s,indexURL:a}));if(t.fetch&&await Qe(this,i,t.fetch),t.packages){await i.loadPackage(\"micropip\");const e=await i.pyimport(\"micropip\");await e.install(t.packages),e.destroy()}return i},getGlobal:et,setGlobal:tt,deleteGlobal:rt,registerJSModule:nt,run:Ze,runAsync:(e,t)=>e.runPythonAsync(ze(t)),writeFile:st};const it=\"ruby-wasm-wasi\";var ct={type:it,experimental:!0,module:(e=\"2.0.0\")=>`https://cdn.jsdelivr.net/npm/ruby-3_2-wasm-wasi@${e}/dist/browser.esm.js`,async engine({DefaultRubyVM:e},t,r){const n=await fetch(`${r.slice(0,r.lastIndexOf(\"/\"))}/ruby.wasm`),s=await WebAssembly.compile(await n.arrayBuffer()),{vm:o}=await e(s);return t.fetch&&await Qe(this,o,t.fetch),o},registerJSModule:Xe,getGlobal(e,t){try{return this.run(e,t)}catch(r){const n=this.run(e,`method(:${t})`);return(...r)=>n.call(t,...r.map((t=>e.wrap(t))))}},setGlobal(e,t,r){const n=`__pyscript_ruby_wasm_wasi_${t}`;globalThis[n]=r,this.run(e,`require \"js\";$${t}=JS::eval(\"return ${n}\")`)},deleteGlobal(e,t){const r=`__pyscript_ruby_wasm_wasi_${t}`;this.run(e,`$${t}=nil`),delete globalThis[r]},run:(e,t)=>e.eval(ze(t)),runAsync:(e,t)=>e.evalAsync(ze(t)),writeFile:()=>{throw new Error(`writeFile is not supported in ${it}`)}};var lt={type:\"wasmoon\",module:(e=\"1.15.0\")=>`https://cdn.jsdelivr.net/npm/wasmoon@${e}/+esm`,async engine({LuaFactory:e,LuaLibraries:t},r){const{stderr:n,stdout:s,get:o}=Ce(),a=await o((new e).createEngine());return a.global.getTable(t.Base,(e=>{a.global.setField(e,\"print\",s),a.global.setField(e,\"printErr\",n)})),r.fetch&&await Qe(this,a,r.fetch),a},registerJSModule:Xe,getGlobal:(e,t)=>e.global.get(t),setGlobal(e,t,r){e.global.set(t,r)},deleteGlobal(e,t){e.global.set(t,void 0)},run:(e,t)=>e.doStringSync(ze(t)),runAsync:(e,t)=>e.doString(ze(t)),writeFile:({cmodule:{module:{FS:e}}},t,r)=>((e,t,r)=>(t=Ye(e,t),Ke(e,qe(t)),e.writeFile(t,new Uint8Array(r),{canOwn:!0})))(e,t,r)};const ut=new Map,ft=new Map,pt=new Proxy(new Map,{get(e,t){if(!e.has(t)){const[r,...n]=t.split(\"@\"),s=ut.get(r),o=/^https?:\\/\\//i.test(n)?n.join(\"@\"):s.module(...n);e.set(t,{url:o,module:import(o),engine:s.engine.bind(s)})}const{url:r,module:n,engine:s}=e.get(t);return(e,o)=>n.then((n=>{ft.set(t,e);const a=e?.fetch;return a&&He.set(a,o),s(n,e,r)}))}}),dt=e=>{for(const t of[].concat(e.type))ut.set(t,e)};for(const e of[ot,at,ct,lt])dt(e);const wt=async e=>(await import(\"https://cdn.jsdelivr.net/npm/basic-toml@0.3.1/es.js\")).parse(e);try{new SharedArrayBuffer(4)}catch(e){throw new Error([\"Unable to use SharedArrayBuffer due insecure environment.\",\"Please read requirements in MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer#security_requirements\"].join(\"\\n\"))}let gt,ht,yt;const mt=(e,t)=>{addEventListener(e,t||(async t=>{await gt,yt=t,ht(`xworker.on${e}(xworker.event);`,Mt)}),!!t&&{once:!0})},{proxy:bt,window:vt,isWindowProxy:St}=_e(self,f),Mt={sync:bt,window:vt,isWindowProxy:St,onerror(){},onmessage(){},onmessageerror(){},postMessage:postMessage.bind(self),get event(){const e=yt;if(!e)throw new Error(\"Unauthorized event access\");return yt=void 0,e}};mt(\"message\",(({data:{options:e,code:t,hooks:r}})=>{gt=(async()=>{const{type:n,version:s,config:o,async:a}=e,i=await((e,t)=>{let r={};if(t)if(t.endsWith(\".json\"))r=fetch(t).then(Ue);else if(t.endsWith(\".toml\"))r=fetch(t).then(Ne).then(wt);else{try{r=JSON.parse(t)}catch(e){r=wt(t)}t=Ie(\"./config.txt\")}return Je(r).then((r=>pt[e](r,t)))})(((e,t=\"\")=>`${e}@${t}`.replace(/@$/,\"\"))(n,s),o),c=Re(ut.get(n)),l=\"run\"+(a?\"Async\":\"\");if(r){const{beforeRun:e,beforeRunAsync:t,afterRun:n,afterRunAsync:s}=r,o=n||s,a=e||t;if(o){const e=c[l].bind(c);c[l]=(t,r)=>e(t,`${r}\\n${o}`)}if(a){const e=c[l].bind(c);c[l]=(t,r)=>e(t,`${a}\\n${r}`)}}return c.registerJSModule(i,\"xworker\",{xworker:Mt}),ht=c[l].bind(c,i),ht(t),i})(),mt(\"error\"),mt(\"message\"),mt(\"messageerror\")}));\n"],{type:'application/javascript'})),{type:'module'});
|
package/core.js
CHANGED
@@ -1,2 +1,2 @@
|
|
1
1
|
const e=(e,t=document)=>[...t.querySelectorAll(e)],t=(e,t=document)=>{const r=(new XPathEvaluator).createExpression(e).evaluate(t,XPathResult.ORDERED_NODE_SNAPSHOT_TYPE),n=[];for(let e=0,{snapshotLength:t}=r;e<t;e++)n.push(r.snapshotItem(e));return n},r="object"==typeof self?self:globalThis,n=e=>((e,t)=>{const n=(t,r)=>(e.set(r,t),t),s=o=>{if(e.has(o))return e.get(o);const[a,i]=t[o];switch(a){case 0:case-1:return n(i,o);case 1:{const e=n([],o);for(const t of i)e.push(s(t));return e}case 2:{const e=n({},o);for(const[t,r]of i)e[s(t)]=s(r);return e}case 3:return n(new Date(i),o);case 4:{const{source:e,flags:t}=i;return n(new RegExp(e,t),o)}case 5:{const e=n(new Map,o);for(const[t,r]of i)e.set(s(t),s(r));return e}case 6:{const e=n(new Set,o);for(const t of i)e.add(s(t));return e}case 7:{const{name:e,message:t}=i;return n(new r[e](t),o)}case 8:return n(BigInt(i),o);case"BigInt":return n(Object(BigInt(i)),o)}return n(new r[a](i),o)};return s})(new Map,e)(0),s="",{toString:o}={},{keys:a}=Object,i=e=>{const t=typeof e;if("object"!==t||!e)return[0,t];const r=o.call(e).slice(8,-1);switch(r){case"Array":return[1,s];case"Object":return[2,s];case"Date":return[3,s];case"RegExp":return[4,s];case"Map":return[5,s];case"Set":return[6,s]}return r.includes("Array")?[1,r]:r.includes("Error")?[7,r]:[2,r]},c=([e,t])=>0===e&&("function"===t||"symbol"===t),l=(e,{json:t,lossy:r}={})=>{const n=[];return((e,t,r,n)=>{const s=(e,t)=>{const s=n.push(e)-1;return r.set(t,s),s},o=n=>{if(r.has(n))return r.get(n);let[l,u]=i(n);switch(l){case 0:{let t=n;switch(u){case"bigint":l=8,t=n.toString();break;case"function":case"symbol":if(e)throw new TypeError("unable to serialize "+u);t=null;break;case"undefined":return s([-1],n)}return s([l,t],n)}case 1:{if(u)return s([u,[...n]],n);const e=[],t=s([l,e],n);for(const t of n)e.push(o(t));return t}case 2:{if(u)switch(u){case"BigInt":return s([u,n.toString()],n);case"Boolean":case"Number":case"String":return s([u,n.valueOf()],n)}if(t&&"toJSON"in n)return o(n.toJSON());const r=[],f=s([l,r],n);for(const t of a(n))!e&&c(i(n[t]))||r.push([o(t),o(n[t])]);return f}case 3:return s([l,n.toISOString()],n);case 4:{const{source:e,flags:t}=n;return s([l,{source:e,flags:t}],n)}case 5:{const t=[],r=s([l,t],n);for(const[r,s]of n)(e||!c(i(r))&&!c(i(s)))&&t.push([o(r),o(s)]);return r}case 6:{const t=[],r=s([l,t],n);for(const r of n)!e&&c(i(r))||t.push(o(r));return r}}const{message:f}=n;return s([l,{name:u,message:f}],n)};return o})(!(t||r),!!t,new Map,n)(e),n},{parse:u,stringify:f}=JSON,p={json:!0,lossy:!0};var d=Object.freeze({__proto__:null,parse:e=>n(u(e)),stringify:e=>f(l(e,p))}),h="2f6fe6d4-8ba8-424a-83c5-8fadca1ea103",w=e=>({value:new Promise((t=>{let r=new Worker("data:application/javascript,"+encodeURIComponent("onmessage=({data:b})=>(Atomics.wait(b,0),postMessage(0))"));r.onmessage=t,r.postMessage(e)}))})
|
2
|
-
/*! (c) Andrea Giammarchi - ISC */;const{Int32Array:y,Map:g,SharedArrayBuffer:m,Uint16Array:b}=globalThis,{BYTES_PER_ELEMENT:v}=y,{BYTES_PER_ELEMENT:E}=b,{isArray:j}=Array,{notify:k,wait:$,waitAsync:A}=Atomics,{fromCharCode:P}=String,S=(e,t)=>e?(A||w)(t,0):($(t,0),{value:{then:e=>e()}}),M=new WeakSet,W=new WeakMap;let x=0;const O=(e,{parse:t,stringify:r}=JSON)=>{if(!W.has(e)){const n=(t,...r)=>e.postMessage({[h]:r},{transfer:t});W.set(e,new Proxy(new g,{has:(e,t)=>"string"==typeof t&&!t.startsWith("_"),get:(r,s)=>"then"===s?null:(...r)=>{const o=x++;let a=new y(new m(v)),i=[];M.has(r.at(-1)||i)&&M.delete(i=r.pop()),n(i,o,a,s,r);const c=e instanceof Worker;return S(c,a).value.then((()=>{const e=a[0];if(!e)return;const r=E*e;return a=new y(new m(r+r%v)),n([],o,a),S(c,a).value.then((()=>t(P(...new b(a.buffer).slice(0,e)))))}))},set(t,n,s){if(!t.size){const n=new g;e.addEventListener("message",(async e=>{const s=e.data?.[h];if(j(s)){e.stopImmediatePropagation();const[o,a,...i]=s;if(i.length){const[e,s]=i;if(!t.has(e))throw new Error(`Unsupported action: ${e}`);{const i=r(await t.get(e)(...s));i&&(n.set(o,i),a[0]=i.length)}}else{const e=n.get(o);n.delete(o);for(let t=new b(a.buffer),r=0;r<e.length;r++)t[r]=e.charCodeAt(r)}k(a,0)}}))}return!!t.set(n,s)}}))}return W.get(e)};O.transfer=(...e)=>(M.add(e),e);const _="object",R="function",T="number",B="string",F="undefined",I="symbol",{defineProperty:G,getOwnPropertyDescriptor:L,getPrototypeOf:N,isExtensible:U,ownKeys:q,preventExtensions:z,set:D,setPrototypeOf:C}=Reflect,J=N(Int8Array),X=(e,t)=>{const{get:r,set:n,value:s}=e;return r&&(e.get=t(r)),n&&(e.set=t(n)),s&&(e.value=t(s)),e},H=(e,t)=>[e,t],Y=e=>t=>{const r=typeof t;switch(r){case _:if(null==t)return H("null",t);case R:return e(r,t);case"boolean":case T:case B:case F:case"bigint":return H(r,t);case I:if(K.has(t))return H(r,K.get(t))}throw new Error(`Unable to handle this ${r} type`)},K=new Map(q(Symbol).filter((e=>typeof Symbol[e]===I)).map((e=>[Symbol[e],e]))),Q=e=>{for(const[t,r]of K)if(r===e)return t},V="apply",Z="construct",ee="defineProperty",te="deleteProperty",re="get",ne="getOwnPropertyDescriptor",se="getPrototypeOf",oe="has",ae="isExtensible",ie="ownKeys",ce="preventExtensions",le="set",ue="setPrototypeOf",fe="delete";let pe=0;const de=new Map,he=new Map,we=new WeakMap;if(globalThis.window===globalThis){const{addEventListener:e}=EventTarget.prototype;G(EventTarget.prototype,"addEventListener",{value(t,r,...n){return n.at(0)?.invoke&&(we.has(this)||we.set(this,new Map),we.get(this).set(t,[].concat(n[0].invoke)),delete n[0].invoke),e.call(this,t,r,...n)}})}const ye=Y(((e,t)=>{if(!de.has(t)){let e;for(;he.has(e=pe++););de.set(t,e),he.set(e,t)}return H(e,de.get(t))}));var ge=(e,t,r)=>{const{[r]:n}=e,s=new FinalizationRegistry((e=>{n(fe,H(B,e))})),o=([e,t])=>{switch(e){case _:if(null==t)return globalThis;if(typeof t===T)return he.get(t);if(!(t instanceof J))for(const e in t)t[e]=o(t[e]);return t;case R:if(typeof t===B){if(!he.has(t)){const e=function(...e){return e.at(0)instanceof Event&&(e=>{const{currentTarget:t,target:r,type:n}=e;for(const s of we.get(t||r)?.get(n)||[])e[s]()})(...e),n(V,H(R,t),ye(this),e.map(ye))},r=new WeakRef(e);he.set(t,r),s.register(e,t,r)}return he.get(t).deref()}return he.get(t);case I:return Q(t)}return t},a={[V]:(e,t,r)=>ye(e.apply(t,r)),[Z]:(e,t)=>ye(new e(...t)),[ee]:(e,t,r)=>ye(G(e,t,r)),[te]:(e,t)=>ye(delete e[t]),[se]:e=>ye(N(e)),[re]:(e,t)=>ye(e[t]),[ne]:(e,t)=>{const r=L(e,t);return r?H(_,X(r,ye)):H(F,r)},[oe]:(e,t)=>ye(t in e),[ae]:e=>ye(U(e)),[ie]:e=>H(_,q(e).map(ye)),[ce]:e=>ye(z(e)),[le]:(e,t,r)=>ye(D(e,t,r)),[ue]:(e,t)=>ye(C(e,t)),[fe](e){de.delete(he.get(e)),he.delete(e)}};return e[t]=(e,t,...r)=>{switch(e){case V:r[0]=o(r[0]),r[1]=r[1].map(o);break;case Z:r[0]=r[0].map(o);break;case ee:{const[e,t]=r;r[0]=o(e);const{get:n,set:s,value:a}=t;n&&(t.get=o(n)),s&&(t.set=o(s)),a&&(t.value=o(a));break}default:r=r.map(o)}return a[e](o(t),...r)},{proxy:e,window:globalThis,isWindowProxy:()=>!1}};let me=0;const be=new Map,ve=new Map,Ee=Symbol(),je=e=>typeof e===R?e():e,ke=e=>typeof e===_&&!!e&&Ee in e,$e="isArray",Ae=Array[$e],Pe=Y(((e,t)=>{if(Ee in t)return je(t[Ee]);if(e===R){if(!ve.has(t)){let e;for(;ve.has(e=String(me++)););be.set(t,e),ve.set(e,t)}return H(e,be.get(t))}if(!(t instanceof J))for(const e in t)t[e]=Pe(t[e]);return H(e,t)}));var Se=(e,t,r)=>{const{[t]:n}=e,s=new Map,o=new FinalizationRegistry((e=>{s.delete(e),n(fe,Pe(e))})),a=e=>{const[t,r]=e;if(!s.has(r)){const n=t===R?Me.bind(e):e,a=new Proxy(n,l),i=new WeakRef(a);s.set(r,i),o.register(a,r,i)}return s.get(r).deref()},i=e=>{const[t,r]=e;switch(t){case _:return typeof r===T?a(e):r;case R:return typeof r===B?ve.get(r):a(e);case I:return Q(r)}return r},c=(e,t,...r)=>i(n(e,je(t),...r)),l={[V]:(e,t,r)=>c(V,e,Pe(t),r.map(Pe)),[Z]:(e,t)=>c(Z,e,t.map(Pe)),[ee]:(e,t,r)=>{const{get:n,set:s,value:o}=r;return typeof n===R&&(r.get=Pe(n)),typeof s===R&&(r.set=Pe(s)),typeof o===R&&(r.value=Pe(o)),c(ee,e,Pe(t),r)},[te]:(e,t)=>c(te,e,Pe(t)),[se]:e=>c(se,e),[re]:(e,t)=>t===Ee?e:c(re,e,Pe(t)),[ne]:(e,t)=>{const r=c(ne,e,Pe(t));return r&&X(r,i)},[oe]:(e,t)=>t===Ee||c(oe,e,Pe(t)),[ae]:e=>c(ae,e),[ie]:e=>c(ie,e).map(i),[ce]:e=>c(ce,e),[le]:(e,t,r)=>c(le,e,Pe(t),Pe(r)),[ue]:(e,t)=>c(ue,e,Pe(t))};e[r]=(e,t,r,n)=>{switch(e){case V:return i(t).apply(i(r),n.map(i));case fe:{const e=i(t);be.delete(ve.get(e)),ve.delete(e)}}};const u=new Proxy([_,null],l),f=u.Array[$e];return G(Array,$e,{value:e=>ke(e)?f(e):Ae(e)}),{window:u,isWindowProxy:ke,proxy:e,get global(){return console.warn("Deprecated: please access `window` field instead"),this.window},get isGlobal(){return function(e){return console.warn("Deprecated: please access `isWindowProxy` field instead"),this.isWindowProxy(e)}.bind(this)}}};function Me(){return this}const We=h+"M",xe=h+"T",Oe=new WeakMap,_e=(e,...t)=>{const r=O(e,...t);if(!Oe.has(r)){const t=e instanceof Worker?ge:Se;Oe.set(r,t(r,We,xe))}return Oe.get(r)};_e.transfer=O.transfer;const{isArray:Re}=Array,{assign:Te,create:Be,defineProperties:Fe,defineProperty:Ie}=Object,{all:Ge,resolve:Le}=new Proxy(Promise,{get:(e,t)=>e[t].bind(e)}),Ne=(e,t=location.href)=>new URL(e,t).href,Ue=e=>e.arrayBuffer(),qe=e=>e.json(),ze=e=>e.text(),De=[["beforeRun","codeBeforeRunWorker"],["beforeRunAsync","codeBeforeRunWorkerAsync"],["afterRun","codeAfterRunWorker"],["afterRunAsync","codeAfterRunWorkerAsync"]];class Ce{constructor(e,t){this.interpreter=e,this.onWorkerReady=t.onWorkerReady;for(const[e,r]of De)this[e]=t[r]?.()}get stringHooks(){const e={};for(const[t]of De)this[t]&&(e[t]=this[t]);return e}}var Je=(...e)=>function(t,r){const n=new Worker(URL.createObjectURL(new Blob(['const e="object"==typeof self?self:globalThis,t=t=>((t,r)=>{const n=(e,r)=>(t.set(r,e),e),s=o=>{if(t.has(o))return t.get(o);const[a,i]=r[o];switch(a){case 0:case-1:return n(i,o);case 1:{const e=n([],o);for(const t of i)e.push(s(t));return e}case 2:{const e=n({},o);for(const[t,r]of i)e[s(t)]=s(r);return e}case 3:return n(new Date(i),o);case 4:{const{source:e,flags:t}=i;return n(new RegExp(e,t),o)}case 5:{const e=n(new Map,o);for(const[t,r]of i)e.set(s(t),s(r));return e}case 6:{const e=n(new Set,o);for(const t of i)e.add(s(t));return e}case 7:{const{name:t,message:r}=i;return n(new e[t](r),o)}case 8:return n(BigInt(i),o);case"BigInt":return n(Object(BigInt(i)),o)}return n(new e[a](i),o)};return s})(new Map,t)(0),r="",{toString:n}={},{keys:s}=Object,o=e=>{const t=typeof e;if("object"!==t||!e)return[0,t];const s=n.call(e).slice(8,-1);switch(s){case"Array":return[1,r];case"Object":return[2,r];case"Date":return[3,r];case"RegExp":return[4,r];case"Map":return[5,r];case"Set":return[6,r]}return s.includes("Array")?[1,s]:s.includes("Error")?[7,s]:[2,s]},a=([e,t])=>0===e&&("function"===t||"symbol"===t),i=(e,{json:t,lossy:r}={})=>{const n=[];return((e,t,r,n)=>{const i=(e,t)=>{const s=n.push(e)-1;return r.set(t,s),s},c=n=>{if(r.has(n))return r.get(n);let[l,u]=o(n);switch(l){case 0:{let t=n;switch(u){case"bigint":l=8,t=n.toString();break;case"function":case"symbol":if(e)throw new TypeError("unable to serialize "+u);t=null;break;case"undefined":return i([-1],n)}return i([l,t],n)}case 1:{if(u)return i([u,[...n]],n);const e=[],t=i([l,e],n);for(const t of n)e.push(c(t));return t}case 2:{if(u)switch(u){case"BigInt":return i([u,n.toString()],n);case"Boolean":case"Number":case"String":return i([u,n.valueOf()],n)}if(t&&"toJSON"in n)return c(n.toJSON());const r=[],f=i([l,r],n);for(const t of s(n))!e&&a(o(n[t]))||r.push([c(t),c(n[t])]);return f}case 3:return i([l,n.toISOString()],n);case 4:{const{source:e,flags:t}=n;return i([l,{source:e,flags:t}],n)}case 5:{const t=[],r=i([l,t],n);for(const[r,s]of n)(e||!a(o(r))&&!a(o(s)))&&t.push([c(r),c(s)]);return r}case 6:{const t=[],r=i([l,t],n);for(const r of n)!e&&a(o(r))||t.push(c(r));return r}}const{message:f}=n;return i([l,{name:u,message:f}],n)};return c})(!(t||r),!!t,new Map,n)(e),n},{parse:c,stringify:l}=JSON,u={json:!0,lossy:!0};var f=Object.freeze({__proto__:null,parse:e=>t(c(e)),stringify:e=>l(i(e,u))}),p="2f6fe6d4-8ba8-424a-83c5-8fadca1ea103",d=e=>({value:new Promise((t=>{let r=new Worker("data:application/javascript,"+encodeURIComponent("onmessage=({data:b})=>(Atomics.wait(b,0),postMessage(0))"));r.onmessage=t,r.postMessage(e)}))})\n/*! (c) Andrea Giammarchi - ISC */;const{Int32Array:w,Map:y,SharedArrayBuffer:h,Uint16Array:g}=globalThis,{BYTES_PER_ELEMENT:m}=w,{BYTES_PER_ELEMENT:b}=g,{isArray:v}=Array,{notify:P,wait:E,waitAsync:S}=Atomics,{fromCharCode:j}=String,A=(e,t)=>e?(S||d)(t,0):(E(t,0),{value:{then:e=>e()}}),M=new WeakSet,k=new WeakMap;let x=0;const _=(e,{parse:t,stringify:r}=JSON)=>{if(!k.has(e)){const n=(t,...r)=>e.postMessage({[p]:r},{transfer:t});k.set(e,new Proxy(new y,{has:(e,t)=>"string"==typeof t&&!t.startsWith("_"),get:(r,s)=>"then"===s?null:(...r)=>{const o=x++;let a=new w(new h(m)),i=[];M.has(r.at(-1)||i)&&M.delete(i=r.pop()),n(i,o,a,s,r);const c=e instanceof Worker;return A(c,a).value.then((()=>{const e=a[0];if(!e)return;const r=b*e;return a=new w(new h(r+r%m)),n([],o,a),A(c,a).value.then((()=>t(j(...new g(a.buffer).slice(0,e)))))}))},set(t,n,s){if(!t.size){const n=new y;e.addEventListener("message",(async e=>{const s=e.data?.[p];if(v(s)){e.stopImmediatePropagation();const[o,a,...i]=s;if(i.length){const[e,s]=i;if(!t.has(e))throw new Error(`Unsupported action: ${e}`);{const i=r(await t.get(e)(...s));i&&(n.set(o,i),a[0]=i.length)}}else{const e=n.get(o);n.delete(o);for(let t=new g(a.buffer),r=0;r<e.length;r++)t[r]=e.charCodeAt(r)}P(a,0)}}))}return!!t.set(n,s)}}))}return k.get(e)};_.transfer=(...e)=>(M.add(e),e);const $="object",O="function",W="number",R="string",T="undefined",F="symbol",{defineProperty:B,getOwnPropertyDescriptor:I,getPrototypeOf:G,isExtensible:L,ownKeys:U,preventExtensions:N,set:z,setPrototypeOf:D}=Reflect,J=G(Int8Array),C=(e,t)=>{const{get:r,set:n,value:s}=e;return r&&(e.get=t(r)),n&&(e.set=t(n)),s&&(e.value=t(s)),e},q=(e,t)=>[e,t],K=e=>t=>{const r=typeof t;switch(r){case $:if(null==t)return q("null",t);case O:return e(r,t);case"boolean":case W:case R:case T:case"bigint":return q(r,t);case F:if(Y.has(t))return q(r,Y.get(t))}throw new Error(`Unable to handle this ${r} type`)},Y=new Map(U(Symbol).filter((e=>typeof Symbol[e]===F)).map((e=>[Symbol[e],e]))),V=e=>{for(const[t,r]of Y)if(r===e)return t},H="apply",Q="construct",X="defineProperty",Z="deleteProperty",ee="get",te="getOwnPropertyDescriptor",re="getPrototypeOf",ne="has",se="isExtensible",oe="ownKeys",ae="preventExtensions",ie="set",ce="setPrototypeOf",le="delete";let ue=0;const fe=new Map,pe=new Map,de=new WeakMap;if(globalThis.window===globalThis){const{addEventListener:e}=EventTarget.prototype;B(EventTarget.prototype,"addEventListener",{value(t,r,...n){return n.at(0)?.invoke&&(de.has(this)||de.set(this,new Map),de.get(this).set(t,[].concat(n[0].invoke)),delete n[0].invoke),e.call(this,t,r,...n)}})}const we=K(((e,t)=>{if(!fe.has(t)){let e;for(;pe.has(e=ue++););fe.set(t,e),pe.set(e,t)}return q(e,fe.get(t))}));var ye=(e,t,r)=>{const{[r]:n}=e,s=new FinalizationRegistry((e=>{n(le,q(R,e))})),o=([e,t])=>{switch(e){case $:if(null==t)return globalThis;if(typeof t===W)return pe.get(t);if(!(t instanceof J))for(const e in t)t[e]=o(t[e]);return t;case O:if(typeof t===R){if(!pe.has(t)){const e=function(...e){return e.at(0)instanceof Event&&(e=>{const{currentTarget:t,target:r,type:n}=e;for(const s of de.get(t||r)?.get(n)||[])e[s]()})(...e),n(H,q(O,t),we(this),e.map(we))},r=new WeakRef(e);pe.set(t,r),s.register(e,t,r)}return pe.get(t).deref()}return pe.get(t);case F:return V(t)}return t},a={[H]:(e,t,r)=>we(e.apply(t,r)),[Q]:(e,t)=>we(new e(...t)),[X]:(e,t,r)=>we(B(e,t,r)),[Z]:(e,t)=>we(delete e[t]),[re]:e=>we(G(e)),[ee]:(e,t)=>we(e[t]),[te]:(e,t)=>{const r=I(e,t);return r?q($,C(r,we)):q(T,r)},[ne]:(e,t)=>we(t in e),[se]:e=>we(L(e)),[oe]:e=>q($,U(e).map(we)),[ae]:e=>we(N(e)),[ie]:(e,t,r)=>we(z(e,t,r)),[ce]:(e,t)=>we(D(e,t)),[le](e){fe.delete(pe.get(e)),pe.delete(e)}};return e[t]=(e,t,...r)=>{switch(e){case H:r[0]=o(r[0]),r[1]=r[1].map(o);break;case Q:r[0]=r[0].map(o);break;case X:{const[e,t]=r;r[0]=o(e);const{get:n,set:s,value:a}=t;n&&(t.get=o(n)),s&&(t.set=o(s)),a&&(t.value=o(a));break}default:r=r.map(o)}return a[e](o(t),...r)},{proxy:e,window:globalThis,isWindowProxy:()=>!1}};let he=0;const ge=new Map,me=new Map,be=Symbol(),ve=e=>typeof e===O?e():e,Pe=e=>typeof e===$&&!!e&&be in e,Ee="isArray",Se=Array[Ee],je=K(((e,t)=>{if(be in t)return ve(t[be]);if(e===O){if(!me.has(t)){let e;for(;me.has(e=String(he++)););ge.set(t,e),me.set(e,t)}return q(e,ge.get(t))}if(!(t instanceof J))for(const e in t)t[e]=je(t[e]);return q(e,t)}));var Ae=(e,t,r)=>{const{[t]:n}=e,s=new Map,o=new FinalizationRegistry((e=>{s.delete(e),n(le,je(e))})),a=e=>{const[t,r]=e;if(!s.has(r)){const n=t===O?Me.bind(e):e,a=new Proxy(n,l),i=new WeakRef(a);s.set(r,i),o.register(a,r,i)}return s.get(r).deref()},i=e=>{const[t,r]=e;switch(t){case $:return typeof r===W?a(e):r;case O:return typeof r===R?me.get(r):a(e);case F:return V(r)}return r},c=(e,t,...r)=>i(n(e,ve(t),...r)),l={[H]:(e,t,r)=>c(H,e,je(t),r.map(je)),[Q]:(e,t)=>c(Q,e,t.map(je)),[X]:(e,t,r)=>{const{get:n,set:s,value:o}=r;return typeof n===O&&(r.get=je(n)),typeof s===O&&(r.set=je(s)),typeof o===O&&(r.value=je(o)),c(X,e,je(t),r)},[Z]:(e,t)=>c(Z,e,je(t)),[re]:e=>c(re,e),[ee]:(e,t)=>t===be?e:c(ee,e,je(t)),[te]:(e,t)=>{const r=c(te,e,je(t));return r&&C(r,i)},[ne]:(e,t)=>t===be||c(ne,e,je(t)),[se]:e=>c(se,e),[oe]:e=>c(oe,e).map(i),[ae]:e=>c(ae,e),[ie]:(e,t,r)=>c(ie,e,je(t),je(r)),[ce]:(e,t)=>c(ce,e,je(t))};e[r]=(e,t,r,n)=>{switch(e){case H:return i(t).apply(i(r),n.map(i));case le:{const e=i(t);ge.delete(me.get(e)),me.delete(e)}}};const u=new Proxy([$,null],l),f=u.Array[Ee];return B(Array,Ee,{value:e=>Pe(e)?f(e):Se(e)}),{window:u,isWindowProxy:Pe,proxy:e,get global(){return console.warn("Deprecated: please access `window` field instead"),this.window},get isGlobal(){return function(e){return console.warn("Deprecated: please access `isWindowProxy` field instead"),this.isWindowProxy(e)}.bind(this)}}};function Me(){return this}const ke=p+"M",xe=p+"T",_e=new WeakMap,$e=(e,...t)=>{const r=_(e,...t);if(!_e.has(r)){const t=e instanceof Worker?ye:Ae;_e.set(r,t(r,ke,xe))}return _e.get(r)};$e.transfer=_.transfer;const{isArray:Oe}=Array,{assign:We,create:Re,defineProperties:Te,defineProperty:Fe}=Object,{all:Be,resolve:Ie}=new Proxy(Promise,{get:(e,t)=>e[t].bind(e)}),Ge=(e,t=location.href)=>new URL(e,t).href;Promise.withResolvers||(Promise.withResolvers=function(){var e,t,r=new this((function(r,n){e=r,t=n}));return{resolve:e,reject:t,promise:r}});const Le=e=>e.arrayBuffer(),Ue=e=>e.json(),Ne=e=>e.text(),ze=e=>e.replace(/^[^\\r\\n]+$/,(e=>e.trim())),De=new WeakMap,Je=e=>{const t=e||console,r={stderr:(t.stderr||console.error).bind(t),stdout:(t.stdout||console.log).bind(t)};return{stderr:(...e)=>r.stderr(...e),stdout:(...e)=>r.stdout(...e),async get(e){const t=await e;return De.set(t,r),t}}},Ce=e=>{const t=e.split("/");return t.pop(),t.join("/")},qe=(e,t)=>{const r=[];for(const n of t.split("/"))r.push(n),n&&e.mkdir(r.join("/"))},Ke=(e,t)=>{const r=[];for(const e of t.split("/"))switch(e){case"":case".":break;case"..":r.pop();break;default:r.push(e)}return[e.cwd()].concat(r).join("/").replace(/^\\/+/,"/")},Ye=e=>{const t=e.map((e=>e.trim().replace(/(^[/]*|[/]*$)/g,""))).filter((e=>""!==e&&"."!==e)).join("/");return e[0].startsWith("/")?`/${t}`:t},Ve=new WeakMap,He=(e,t,r)=>Be((e=>{for(const{files:t,to_file:r,from:n=""}of e){if(void 0!==t&&void 0!==r)throw new Error("Cannot use \'to_file\' and \'files\' parameters together!");if(void 0===t&&void 0===r&&n.endsWith("/"))throw new Error(`Couldn\'t determine the filename from the path ${n}, please supply \'to_file\' parameter.`)}return e.flatMap((({from:e="",to_folder:t=".",to_file:r,files:n})=>{if(Oe(n))return n.map((r=>({url:Ye([e,r]),path:Ye([t,r])})));const s=r||e.slice(1+e.lastIndexOf("/"));return[{url:e,path:Ye([t,s])}]}))})(r).map((({url:n,path:s})=>((e,t)=>fetch(Ge(t,Ve.get(e))))(r,n).then(Le).then((r=>e.writeFile(t,s,r)))))),Qe=(e,t)=>e.runPython(ze(t)),Xe=(e,t,r)=>{e.globals.set(t,r)},Ze=(e,t)=>{e.globals.delete(t)},et=({FS:e},t,r)=>((e,t,r)=>{const{parentPath:n,name:s}=e.analyzePath(t,!0);return e.mkdirTree(n),e.writeFile([n,s].join("/"),new Uint8Array(r),{canOwn:!0})})(e,t,r);var tt={type:"micropython",module:(e="1.20.0-268")=>`https://cdn.jsdelivr.net/npm/@micropython/micropython-webassembly-pyscript@${e}/micropython.mjs`,async engine({loadMicroPython:e},t,r){const{stderr:n,stdout:s,get:o}=Je();r=r.replace(/\\.m?js$/,".wasm");const a=await o(e({stderr:n,stdout:s,url:r}));return t.fetch&&await He(this,a,t.fetch),a},setGlobal:Xe,deleteGlobal:Ze,run:Qe,async runAsync(...e){return this.run(...e)},writeFile:et};var rt={type:"pyodide",module:(e="0.23.2")=>`https://cdn.jsdelivr.net/pyodide/v${e}/full/pyodide.mjs`,async engine({loadPyodide:e},t,r){const{stderr:n,stdout:s,get:o}=Je(),a=r.slice(0,r.lastIndexOf("/")),i=await o(e({stderr:n,stdout:s,indexURL:a}));if(t.fetch&&await He(this,i,t.fetch),t.packages){await i.loadPackage("micropip");const e=await i.pyimport("micropip");await e.install(t.packages),e.destroy()}return i},setGlobal:Xe,deleteGlobal:Ze,run:Qe,runAsync:(e,t)=>e.runPythonAsync(ze(t)),writeFile:et};const nt="ruby-wasm-wasi";var st={type:nt,experimental:!0,module:(e="2.0.0")=>`https://cdn.jsdelivr.net/npm/ruby-3_2-wasm-wasi@${e}/dist/browser.esm.js`,async engine({DefaultRubyVM:e},t,r){const n=await fetch(`${r.slice(0,r.lastIndexOf("/"))}/ruby.wasm`),s=await WebAssembly.compile(await n.arrayBuffer()),{vm:o}=await e(s);return t.fetch&&await He(this,o,t.fetch),o},setGlobal(e,t,r){const n=`__pyscript_ruby_wasm_wasi_${t}`;globalThis[n]=r,this.run(e,`require "js";$${t}=JS::eval("return ${n}")`)},deleteGlobal(e,t){const r=`__pyscript_ruby_wasm_wasi_${t}`;this.run(e,`$${t}=nil`),delete globalThis[r]},run:(e,t)=>e.eval(ze(t)),runAsync:(e,t)=>e.evalAsync(ze(t)),writeFile:()=>{throw new Error(`writeFile is not supported in ${nt}`)}};var ot={type:"wasmoon",module:(e="1.15.0")=>`https://cdn.jsdelivr.net/npm/wasmoon@${e}/+esm`,async engine({LuaFactory:e,LuaLibraries:t},r){const{stderr:n,stdout:s,get:o}=Je(),a=await o((new e).createEngine());return a.global.getTable(t.Base,(e=>{a.global.setField(e,"print",s),a.global.setField(e,"printErr",n)})),r.fetch&&await He(this,a,r.fetch),a},setGlobal(e,t,r){e.global.set(t,r)},deleteGlobal(e,t){e.global.set(t,void 0)},run:(e,t)=>e.doStringSync(ze(t)),runAsync:(e,t)=>e.doString(ze(t)),writeFile:({cmodule:{module:{FS:e}}},t,r)=>((e,t,r)=>(t=Ke(e,t),qe(e,Ce(t)),e.writeFile(t,new Uint8Array(r),{canOwn:!0})))(e,t,r)};const at=new Map,it=new Map,ct=new Proxy(new Map,{get(e,t){if(!e.has(t)){const[r,...n]=t.split("@"),s=at.get(r),o=/^https?:\\/\\//i.test(n)?n.join("@"):s.module(...n);e.set(t,{url:o,module:import(o),engine:s.engine.bind(s)})}const{url:r,module:n,engine:s}=e.get(t);return(e,o)=>n.then((n=>{it.set(t,e);const a=e?.fetch;return a&&Ve.set(a,o),s(n,e,r)}))}}),lt=e=>{for(const t of[].concat(e.type))at.set(t,e)};for(const e of[tt,rt,st,ot])lt(e);const ut=async e=>(await import("https://cdn.jsdelivr.net/npm/basic-toml@0.3.1/es.js")).parse(e);try{new SharedArrayBuffer(4)}catch(e){throw new Error(["Unable to use SharedArrayBuffer due insecure environment.","Please read requirements in MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer#security_requirements"].join("\\n"))}let ft,pt,dt;const wt=(e,t)=>{addEventListener(e,t||(async t=>{await ft,dt=t,pt(`xworker.on${e}(xworker.event);`,mt)}),!!t&&{once:!0})},{proxy:yt,window:ht,isWindowProxy:gt}=$e(self,f),mt={sync:yt,window:ht,isWindowProxy:gt,onerror(){},onmessage(){},onmessageerror(){},postMessage:postMessage.bind(self),get event(){const e=dt;if(!e)throw new Error("Unauthorized event access");return dt=void 0,e}};wt("message",(({data:{options:e,code:t,hooks:r}})=>{ft=(async()=>{const{type:n,version:s,config:o,async:a}=e,i=await((e,t)=>{let r={};if(t)if(t.endsWith(".json"))r=fetch(t).then(Ue);else if(t.endsWith(".toml"))r=fetch(t).then(Ne).then(ut);else{try{r=JSON.parse(t)}catch(e){r=ut(t)}t=Ge("./config.txt")}return Ie(r).then((r=>ct[e](r,t)))})(((e,t="")=>`${e}@${t}`.replace(/@$/,""))(n,s),o),c=Re(at.get(n)),l="run"+(a?"Async":"");if(r){const{beforeRun:e,beforeRunAsync:t,afterRun:n,afterRunAsync:s}=r,o=n||s,a=e||t;if(o){const e=c[l].bind(c);c[l]=(t,r)=>e(t,`${r}\\n${o}`)}if(a){const e=c[l].bind(c);c[l]=(t,r)=>e(t,`${a}\\n${r}`)}}return c.setGlobal(i,"xworker",mt),pt=c[l].bind(c,i),pt(t),i})(),wt("error"),wt("message"),wt("messageerror")}));\n'],{type:"application/javascript"})),{type:"module"}),{postMessage:s}=n,o=this instanceof Ce;if(e.length){const[t,n]=e;(r=Te({},r||{type:t,version:n})).type||(r.type=t)}r?.config&&(r.config=Ne(r.config));const a=fetch(t).then(ze).then((e=>{const t=o?this.stringHooks:void 0;s.call(n,{options:r,code:e,hooks:t})}));return Fe(n,{postMessage:{value:(e,...t)=>a.then((()=>s.call(n,e,...t)))},sync:{value:_e(n,d).proxy}}),o&&this.onWorkerReady?.(this.interpreter,n),n};Promise.withResolvers||(Promise.withResolvers=function(){var e,t,r=new this((function(r,n){e=r,t=n}));return{resolve:e,reject:t,promise:r}});const Xe=e=>e.replace(/^[^\r\n]+$/,(e=>e.trim())),He=new WeakMap,Ye=e=>{const t=e||console,r={stderr:(t.stderr||console.error).bind(t),stdout:(t.stdout||console.log).bind(t)};return{stderr:(...e)=>r.stderr(...e),stdout:(...e)=>r.stdout(...e),async get(e){const t=await e;return He.set(t,r),t}}},Ke=e=>{const t=e.split("/");return t.pop(),t.join("/")},Qe=(e,t)=>{const r=[];for(const n of t.split("/"))r.push(n),n&&e.mkdir(r.join("/"))},Ve=(e,t)=>{const r=[];for(const e of t.split("/"))switch(e){case"":case".":break;case"..":r.pop();break;default:r.push(e)}return[e.cwd()].concat(r).join("/").replace(/^\/+/,"/")},Ze=e=>{const t=e.map((e=>e.trim().replace(/(^[/]*|[/]*$)/g,""))).filter((e=>""!==e&&"."!==e)).join("/");return e[0].startsWith("/")?`/${t}`:t},et=new WeakMap,tt=(e,t,r)=>Ge((e=>{for(const{files:t,to_file:r,from:n=""}of e){if(void 0!==t&&void 0!==r)throw new Error("Cannot use 'to_file' and 'files' parameters together!");if(void 0===t&&void 0===r&&n.endsWith("/"))throw new Error(`Couldn't determine the filename from the path ${n}, please supply 'to_file' parameter.`)}return e.flatMap((({from:e="",to_folder:t=".",to_file:r,files:n})=>{if(Re(n))return n.map((r=>({url:Ze([e,r]),path:Ze([t,r])})));const s=r||e.slice(1+e.lastIndexOf("/"));return[{url:e,path:Ze([t,s])}]}))})(r).map((({url:n,path:s})=>((e,t)=>fetch(Ne(t,et.get(e))))(r,n).then(Ue).then((r=>e.writeFile(t,s,r)))))),rt=(e,t)=>e.runPython(Xe(t)),nt=(e,t,r)=>{e.globals.set(t,r)},st=(e,t)=>{e.globals.delete(t)},ot=({FS:e},t,r)=>((e,t,r)=>{const{parentPath:n,name:s}=e.analyzePath(t,!0);return e.mkdirTree(n),e.writeFile([n,s].join("/"),new Uint8Array(r),{canOwn:!0})})(e,t,r);var at={type:"micropython",module:(e="1.20.0-268")=>`https://cdn.jsdelivr.net/npm/@micropython/micropython-webassembly-pyscript@${e}/micropython.mjs`,async engine({loadMicroPython:e},t,r){const{stderr:n,stdout:s,get:o}=Ye();r=r.replace(/\.m?js$/,".wasm");const a=await o(e({stderr:n,stdout:s,url:r}));return t.fetch&&await tt(this,a,t.fetch),a},setGlobal:nt,deleteGlobal:st,run:rt,async runAsync(...e){return this.run(...e)},writeFile:ot};var it={type:"pyodide",module:(e="0.23.2")=>`https://cdn.jsdelivr.net/pyodide/v${e}/full/pyodide.mjs`,async engine({loadPyodide:e},t,r){const{stderr:n,stdout:s,get:o}=Ye(),a=r.slice(0,r.lastIndexOf("/")),i=await o(e({stderr:n,stdout:s,indexURL:a}));if(t.fetch&&await tt(this,i,t.fetch),t.packages){await i.loadPackage("micropip");const e=await i.pyimport("micropip");await e.install(t.packages),e.destroy()}return i},setGlobal:nt,deleteGlobal:st,run:rt,runAsync:(e,t)=>e.runPythonAsync(Xe(t)),writeFile:ot};const ct="ruby-wasm-wasi";var lt={type:ct,experimental:!0,module:(e="2.0.0")=>`https://cdn.jsdelivr.net/npm/ruby-3_2-wasm-wasi@${e}/dist/browser.esm.js`,async engine({DefaultRubyVM:e},t,r){const n=await fetch(`${r.slice(0,r.lastIndexOf("/"))}/ruby.wasm`),s=await WebAssembly.compile(await n.arrayBuffer()),{vm:o}=await e(s);return t.fetch&&await tt(this,o,t.fetch),o},setGlobal(e,t,r){const n=`__pyscript_ruby_wasm_wasi_${t}`;globalThis[n]=r,this.run(e,`require "js";$${t}=JS::eval("return ${n}")`)},deleteGlobal(e,t){const r=`__pyscript_ruby_wasm_wasi_${t}`;this.run(e,`$${t}=nil`),delete globalThis[r]},run:(e,t)=>e.eval(Xe(t)),runAsync:(e,t)=>e.evalAsync(Xe(t)),writeFile:()=>{throw new Error(`writeFile is not supported in ${ct}`)}};var ut={type:"wasmoon",module:(e="1.15.0")=>`https://cdn.jsdelivr.net/npm/wasmoon@${e}/+esm`,async engine({LuaFactory:e,LuaLibraries:t},r){const{stderr:n,stdout:s,get:o}=Ye(),a=await o((new e).createEngine());return a.global.getTable(t.Base,(e=>{a.global.setField(e,"print",s),a.global.setField(e,"printErr",n)})),r.fetch&&await tt(this,a,r.fetch),a},setGlobal(e,t,r){e.global.set(t,r)},deleteGlobal(e,t){e.global.set(t,void 0)},run:(e,t)=>e.doStringSync(Xe(t)),runAsync:(e,t)=>e.doString(Xe(t)),writeFile:({cmodule:{module:{FS:e}}},t,r)=>((e,t,r)=>(t=Ve(e,t),Qe(e,Ke(t)),e.writeFile(t,new Uint8Array(r),{canOwn:!0})))(e,t,r)};const ft=new Map,pt=new Map,dt=[],ht=[],wt=new Proxy(new Map,{get(e,t){if(!e.has(t)){const[r,...n]=t.split("@"),s=ft.get(r),o=/^https?:\/\//i.test(n)?n.join("@"):s.module(...n);e.set(t,{url:o,module:import(o),engine:s.engine.bind(s)})}const{url:r,module:n,engine:s}=e.get(t);return(e,o)=>n.then((n=>{pt.set(t,e);const a=e?.fetch;return a&&et.set(a,o),s(n,e,r)}))}}),yt=e=>{for(const t of[].concat(e.type))ft.set(t,e),dt.push(`script[type="${t}"]`),ht.push(`${t}-`)};for(const e of[at,it,lt,ut])yt(e);const gt=async e=>(await import("https://cdn.jsdelivr.net/npm/basic-toml@0.3.1/es.js")).parse(e),mt=(e,t)=>{let r={};if(t)if(t.endsWith(".json"))r=fetch(t).then(qe);else if(t.endsWith(".toml"))r=fetch(t).then(ze).then(gt);else{try{r=JSON.parse(t)}catch(e){r=gt(t)}t=Ne("./config.txt")}return Le(r).then((r=>wt[e](r,t)))},bt=(e,t="")=>`${e}@${t}`.replace(/@$/,""),vt=(e,t)=>{const r=(e=>{let t=e;for(;t.parentNode;)t=t.parentNode;return t})(e);return r.getElementById(t)||((e,t=document)=>t.querySelector(e))(t,r)},Et=new WeakMap,jt={get(){let e=Et.get(this);return e||(e=document.createElement(`${this.type}-script`),Et.set(this,e),St(this)),e},set(e){"string"==typeof e?Et.set(this,vt(this,e)):(Et.set(this,e),St(this))}},kt=new WeakMap,$t=new Map,At=(e,t)=>{const r=e?.value;return r?t+r:""},Pt=(e,t,r,n,s)=>{if(!$t.has(t)){const o={interpreter:mt(r,s),queue:Le(),XWorker:Je(e,n)};$t.set(t,o),$t.has(e)||$t.set(e,o)}return $t.get(t)},St=async e=>{if(kt.has(e)){const{target:t}=e;t&&(e.closest("head")?document.body.append(t):e.after(t))}else{const{attributes:{async:t,config:r,env:n,target:s,version:o},src:a,type:i}=e,c=o?.value,l=bt(i,c),u=At(s,"");let f=At(r,"|");const p=At(n,"")||`${l}${f}`;f=f.slice(1),f&&(f=Ne(f));const d=Pt(i,p,l,c,f);kt.set(Ie(e,"target",jt),d),u&&Et.set(e,vt(e,u));const h=a?fetch(a).then(ze):e.textContent;d.queue=d.queue.then((()=>(async(e,t,r,n)=>{const s=ft.get(e.type);s.experimental&&console.warn(`The ${e.type} interpreter is experimental`);const[o,a]=await Ge([kt.get(e).interpreter,t]);try{return Ie(document,"currentScript",{configurable:!0,get:()=>e}),s.setGlobal(o,"XWorker",r),s[n?"runAsync":"run"](o,a)}finally{delete document.currentScript,s.deleteGlobal(o,"XWorker")}})(e,h,d.XWorker,!!t)))}};Ie(globalThis,"pyscript",{value:{env:new Proxy(Be(null),{get:(e,t)=>Mt(t)})}});const Mt=async e=>{if($t.has(e)){const{interpreter:t,queue:r}=$t.get(e);return(await Ge([t,r]))[0]}const t=$t.size?`Available interpreters are: ${[...$t.keys()].map((e=>`"${e}"`)).join(", ")}.`:"There are no interpreters in this page.";throw new Error(`The interpreter "${e}" was not found. ${t}`)},Wt=async e=>{const{type:r,currentTarget:n}=e;for(let{name:s,value:o,ownerElement:a}of t(`./@*[${ht.map((e=>`name()="${e}${r}"`)).join(" or ")}]`,n)){s=s.slice(0,-(r.length+1));const t=await Mt(a.getAttribute(`${s}-env`)||s),n=ft.get(s);try{n.setGlobal(t,"event",e),n.run(t,o)}finally{n.deleteGlobal(t,"event")}}},xt=e=>{for(let{name:r,ownerElement:n}of t(`.//@*[${ht.map((e=>`starts-with(name(),"${e}")`)).join(" or ")}]`,e))r=r.slice(r.lastIndexOf("-")+1),"env"!==r&&n.addEventListener(r,Wt)},Ot=[],_t=new Map,Rt=new Map,Tt=e=>{for(const t of Ot)if(e.matches(t)){const r=_t.get(t),{resolve:n}=Rt.get(r),{options:s,known:o}=Bt.get(r);if(!o.has(e)){o.add(e);const{interpreter:t,version:a,config:i,env:c,onInterpreterReady:l}=s,u=bt(t,a),f=c||`${u}${i?`|${i}`:""}`,{interpreter:p,XWorker:d}=Pt(t,f,u,a,i);p.then((o=>{const a=Be(ft.get(t)),{onBeforeRun:i,onBeforeRunAsync:c,onAfterRun:f,onAfterRunAsync:p}=s,h=new Ce(o,s),w=function(...e){return d.apply(h,e)};for(const[t,[r,n]]of[["run",[i,f]]]){const s=a[t];a[t]=function(t,o){r&&r.call(this,y,e);const a=s.call(this,t,o);return n&&n.call(this,y,e),a}}for(const[t,[r,n]]of[["runAsync",[c,p]]]){const s=a[t];a[t]=async function(t,o){r&&await r.call(this,y,e);const a=await s.call(this,t,o);return n&&await n.call(this,y,e),a}}a.setGlobal(o,"XWorker",w);const y={type:r,interpreter:o,XWorker:w,io:He.get(o),config:structuredClone(pt.get(u)),run:a.run.bind(a,o),runAsync:a.runAsync.bind(a,o)};n(y),l?.(y,e)}))}}},Bt=new Map,Ft=(t,r)=>{if(ft.has(t)||Bt.has(t))throw new Error(`<script type="${t}"> already registered`);if(!ft.has(r?.interpreter))throw new Error("Unspecified interpreter");ft.set(t,ft.get(r?.interpreter)),It(t);const n=[`script[type="${t}"]`,`${t}-script`];for(const e of n)_t.set(e,t);Ot.push(...n),ht.push(`${t}-`),Bt.set(t,{options:Te({env:t},r),known:new WeakSet}),xt(document),e(n.join(",")).forEach(Tt)},It=e=>(Rt.has(e)||Rt.set(e,Promise.withResolvers()),Rt.get(e).promise),Gt=Je(),Lt=dt.join(","),Nt=new MutationObserver((t=>{for(const{type:r,target:n,attributeName:s,addedNodes:o}of t)if("attributes"!==r){for(const t of o)if(1===t.nodeType)if(xt(t),t.matches(Lt))St(t);else{if(e(Lt,t).forEach(St),!Ot.length)continue;Tt(t),e(Ot.join(","),t).forEach(Tt)}}else{const e=s.lastIndexOf("-")+1;if(e){const t=s.slice(0,e);for(const r of ht)if(t===r){const t=s.slice(e);if("env"!==t){const e=n.hasAttribute(s)?"add":"remove";n[`${e}EventListener`](t,Wt)}break}}}})),Ut=e=>(Nt.observe(e,{childList:!0,subtree:!0,attributes:!0}),e),{attachShadow:qt}=Element.prototype;Te(Element.prototype,{attachShadow(e){return Ut(qt.call(this,e))}}),xt(Ut(document)),e(Lt,document).forEach(St);export{Gt as XWorker,Ft as define,It as whenDefined};
|
2
|
+
/*! (c) Andrea Giammarchi - ISC */;const{Int32Array:y,Map:g,SharedArrayBuffer:m,Uint16Array:b}=globalThis,{BYTES_PER_ELEMENT:v}=y,{BYTES_PER_ELEMENT:E}=b,{isArray:M}=Array,{notify:k,wait:S,waitAsync:A}=Atomics,{fromCharCode:$}=String,P=(e,t)=>e?(A||w)(t,0):(S(t,0),{value:{then:e=>e()}}),j=new WeakSet,x=new WeakMap;let _=0;const O=(e,{parse:t,stringify:r}=JSON)=>{if(!x.has(e)){const n=(t,...r)=>e.postMessage({[h]:r},{transfer:t});x.set(e,new Proxy(new g,{has:(e,t)=>"string"==typeof t&&!t.startsWith("_"),get:(r,s)=>"then"===s?null:(...r)=>{const o=_++;let a=new y(new m(v)),i=[];j.has(r.at(-1)||i)&&j.delete(i=r.pop()),n(i,o,a,s,r);const c=e instanceof Worker;return P(c,a).value.then((()=>{const e=a[0];if(!e)return;const r=E*e;return a=new y(new m(r+r%v)),n([],o,a),P(c,a).value.then((()=>t($(...new b(a.buffer).slice(0,e)))))}))},set(t,n,s){if(!t.size){const n=new g;e.addEventListener("message",(async e=>{const s=e.data?.[h];if(M(s)){e.stopImmediatePropagation();const[o,a,...i]=s;if(i.length){const[e,s]=i;if(!t.has(e))throw new Error(`Unsupported action: ${e}`);{const i=r(await t.get(e)(...s));i&&(n.set(o,i),a[0]=i.length)}}else{const e=n.get(o);n.delete(o);for(let t=new b(a.buffer),r=0;r<e.length;r++)t[r]=e.charCodeAt(r)}k(a,0)}}))}return!!t.set(n,s)}}))}return x.get(e)};O.transfer=(...e)=>(j.add(e),e);const W="object",R="function",T="number",G="string",F="undefined",B="symbol",{defineProperty:I,getOwnPropertyDescriptor:L,getPrototypeOf:J,isExtensible:N,ownKeys:U,preventExtensions:q,set:z,setPrototypeOf:D}=Reflect,C=J(Int8Array),X=(e,t)=>{const{get:r,set:n,value:s}=e;return r&&(e.get=t(r)),n&&(e.set=t(n)),s&&(e.value=t(s)),e},H=(e,t)=>[e,t],Y=e=>t=>{const r=typeof t;switch(r){case W:if(null==t)return H("null",t);case R:return e(r,t);case"boolean":case T:case G:case F:case"bigint":return H(r,t);case B:if(Q.has(t))return H(r,Q.get(t))}throw new Error(`Unable to handle this ${r} type`)},Q=new Map(U(Symbol).filter((e=>typeof Symbol[e]===B)).map((e=>[Symbol[e],e]))),K=e=>{for(const[t,r]of Q)if(r===e)return t},V="apply",Z="construct",ee="defineProperty",te="deleteProperty",re="get",ne="getOwnPropertyDescriptor",se="getPrototypeOf",oe="has",ae="isExtensible",ie="ownKeys",ce="preventExtensions",le="set",ue="setPrototypeOf",fe="delete";let pe=0;const de=new Map,he=new Map,we=new WeakMap;if(globalThis.window===globalThis){const{addEventListener:e}=EventTarget.prototype;I(EventTarget.prototype,"addEventListener",{value(t,r,...n){return n.at(0)?.invoke&&(we.has(this)||we.set(this,new Map),we.get(this).set(t,[].concat(n[0].invoke)),delete n[0].invoke),e.call(this,t,r,...n)}})}const ye=Y(((e,t)=>{if(!de.has(t)){let e;for(;he.has(e=pe++););de.set(t,e),he.set(e,t)}return H(e,de.get(t))}));var ge=(e,t,r)=>{const{[r]:n}=e,s=new FinalizationRegistry((e=>{n(fe,H(G,e))})),o=([e,t])=>{switch(e){case W:if(null==t)return globalThis;if(typeof t===T)return he.get(t);if(!(t instanceof C))for(const e in t)t[e]=o(t[e]);return t;case R:if(typeof t===G){if(!he.has(t)){const e=function(...e){return e.at(0)instanceof Event&&(e=>{const{currentTarget:t,target:r,type:n}=e;for(const s of we.get(t||r)?.get(n)||[])e[s]()})(...e),n(V,H(R,t),ye(this),e.map(ye))},r=new WeakRef(e);he.set(t,r),s.register(e,t,r)}return he.get(t).deref()}return he.get(t);case B:return K(t)}return t},a={[V]:(e,t,r)=>ye(e.apply(t,r)),[Z]:(e,t)=>ye(new e(...t)),[ee]:(e,t,r)=>ye(I(e,t,r)),[te]:(e,t)=>ye(delete e[t]),[se]:e=>ye(J(e)),[re]:(e,t)=>ye(e[t]),[ne]:(e,t)=>{const r=L(e,t);return r?H(W,X(r,ye)):H(F,r)},[oe]:(e,t)=>ye(t in e),[ae]:e=>ye(N(e)),[ie]:e=>H(W,U(e).map(ye)),[ce]:e=>ye(q(e)),[le]:(e,t,r)=>ye(z(e,t,r)),[ue]:(e,t)=>ye(D(e,t)),[fe](e){de.delete(he.get(e)),he.delete(e)}};return e[t]=(e,t,...r)=>{switch(e){case V:r[0]=o(r[0]),r[1]=r[1].map(o);break;case Z:r[0]=r[0].map(o);break;case ee:{const[e,t]=r;r[0]=o(e);const{get:n,set:s,value:a}=t;n&&(t.get=o(n)),s&&(t.set=o(s)),a&&(t.value=o(a));break}default:r=r.map(o)}return a[e](o(t),...r)},{proxy:e,window:globalThis,isWindowProxy:()=>!1}};let me=0;const be=new Map,ve=new Map,Ee=Symbol(),Me=e=>typeof e===R?e():e,ke=e=>typeof e===W&&!!e&&Ee in e,Se="isArray",Ae=Array[Se],$e=Y(((e,t)=>{if(Ee in t)return Me(t[Ee]);if(e===R){if(!ve.has(t)){let e;for(;ve.has(e=String(me++)););be.set(t,e),ve.set(e,t)}return H(e,be.get(t))}if(!(t instanceof C))for(const e in t)t[e]=$e(t[e]);return H(e,t)}));var Pe=(e,t,r)=>{const{[t]:n}=e,s=new Map,o=new FinalizationRegistry((e=>{s.delete(e),n(fe,$e(e))})),a=e=>{const[t,r]=e;if(!s.has(r)){const n=t===R?je.bind(e):e,a=new Proxy(n,l),i=new WeakRef(a);s.set(r,i),o.register(a,r,i)}return s.get(r).deref()},i=e=>{const[t,r]=e;switch(t){case W:return typeof r===T?a(e):r;case R:return typeof r===G?ve.get(r):a(e);case B:return K(r)}return r},c=(e,t,...r)=>i(n(e,Me(t),...r)),l={[V]:(e,t,r)=>c(V,e,$e(t),r.map($e)),[Z]:(e,t)=>c(Z,e,t.map($e)),[ee]:(e,t,r)=>{const{get:n,set:s,value:o}=r;return typeof n===R&&(r.get=$e(n)),typeof s===R&&(r.set=$e(s)),typeof o===R&&(r.value=$e(o)),c(ee,e,$e(t),r)},[te]:(e,t)=>c(te,e,$e(t)),[se]:e=>c(se,e),[re]:(e,t)=>t===Ee?e:c(re,e,$e(t)),[ne]:(e,t)=>{const r=c(ne,e,$e(t));return r&&X(r,i)},[oe]:(e,t)=>t===Ee||c(oe,e,$e(t)),[ae]:e=>c(ae,e),[ie]:e=>c(ie,e).map(i),[ce]:e=>c(ce,e),[le]:(e,t,r)=>c(le,e,$e(t),$e(r)),[ue]:(e,t)=>c(ue,e,$e(t))};e[r]=(e,t,r,n)=>{switch(e){case V:return i(t).apply(i(r),n.map(i));case fe:{const e=i(t);be.delete(ve.get(e)),ve.delete(e)}}};const u=new Proxy([W,null],l),f=u.Array[Se];return I(Array,Se,{value:e=>ke(e)?f(e):Ae(e)}),{window:u,isWindowProxy:ke,proxy:e,get global(){return console.warn("Deprecated: please access `window` field instead"),this.window},get isGlobal(){return function(e){return console.warn("Deprecated: please access `isWindowProxy` field instead"),this.isWindowProxy(e)}.bind(this)}}};function je(){return this}const xe=h+"M",_e=h+"T",Oe=new WeakMap,We=(e,...t)=>{const r=O(e,...t);if(!Oe.has(r)){const t=e instanceof Worker?ge:Pe;Oe.set(r,t(r,xe,_e))}return Oe.get(r)};We.transfer=O.transfer;const{isArray:Re}=Array,{assign:Te,create:Ge,defineProperties:Fe,defineProperty:Be,entries:Ie}=Object,{all:Le,resolve:Je}=new Proxy(Promise,{get:(e,t)=>e[t].bind(e)}),Ne=(e,t=location.href)=>new URL(e,t).href,Ue=e=>e.arrayBuffer(),qe=e=>e.json(),ze=e=>e.text(),De=[["beforeRun","codeBeforeRunWorker"],["beforeRunAsync","codeBeforeRunWorkerAsync"],["afterRun","codeAfterRunWorker"],["afterRunAsync","codeAfterRunWorkerAsync"]];class Ce{constructor(e,t){this.interpreter=e,this.onWorkerReady=t.onWorkerReady;for(const[e,r]of De)this[e]=t[r]?.()}get stringHooks(){const e={};for(const[t]of De)this[t]&&(e[t]=this[t]);return e}}var Xe=(...e)=>function(t,r){const n=new Worker(URL.createObjectURL(new Blob(['const e="object"==typeof self?self:globalThis,t=t=>((t,r)=>{const n=(e,r)=>(t.set(r,e),e),s=o=>{if(t.has(o))return t.get(o);const[a,i]=r[o];switch(a){case 0:case-1:return n(i,o);case 1:{const e=n([],o);for(const t of i)e.push(s(t));return e}case 2:{const e=n({},o);for(const[t,r]of i)e[s(t)]=s(r);return e}case 3:return n(new Date(i),o);case 4:{const{source:e,flags:t}=i;return n(new RegExp(e,t),o)}case 5:{const e=n(new Map,o);for(const[t,r]of i)e.set(s(t),s(r));return e}case 6:{const e=n(new Set,o);for(const t of i)e.add(s(t));return e}case 7:{const{name:t,message:r}=i;return n(new e[t](r),o)}case 8:return n(BigInt(i),o);case"BigInt":return n(Object(BigInt(i)),o)}return n(new e[a](i),o)};return s})(new Map,t)(0),r="",{toString:n}={},{keys:s}=Object,o=e=>{const t=typeof e;if("object"!==t||!e)return[0,t];const s=n.call(e).slice(8,-1);switch(s){case"Array":return[1,r];case"Object":return[2,r];case"Date":return[3,r];case"RegExp":return[4,r];case"Map":return[5,r];case"Set":return[6,r]}return s.includes("Array")?[1,s]:s.includes("Error")?[7,s]:[2,s]},a=([e,t])=>0===e&&("function"===t||"symbol"===t),i=(e,{json:t,lossy:r}={})=>{const n=[];return((e,t,r,n)=>{const i=(e,t)=>{const s=n.push(e)-1;return r.set(t,s),s},c=n=>{if(r.has(n))return r.get(n);let[l,u]=o(n);switch(l){case 0:{let t=n;switch(u){case"bigint":l=8,t=n.toString();break;case"function":case"symbol":if(e)throw new TypeError("unable to serialize "+u);t=null;break;case"undefined":return i([-1],n)}return i([l,t],n)}case 1:{if(u)return i([u,[...n]],n);const e=[],t=i([l,e],n);for(const t of n)e.push(c(t));return t}case 2:{if(u)switch(u){case"BigInt":return i([u,n.toString()],n);case"Boolean":case"Number":case"String":return i([u,n.valueOf()],n)}if(t&&"toJSON"in n)return c(n.toJSON());const r=[],f=i([l,r],n);for(const t of s(n))!e&&a(o(n[t]))||r.push([c(t),c(n[t])]);return f}case 3:return i([l,n.toISOString()],n);case 4:{const{source:e,flags:t}=n;return i([l,{source:e,flags:t}],n)}case 5:{const t=[],r=i([l,t],n);for(const[r,s]of n)(e||!a(o(r))&&!a(o(s)))&&t.push([c(r),c(s)]);return r}case 6:{const t=[],r=i([l,t],n);for(const r of n)!e&&a(o(r))||t.push(c(r));return r}}const{message:f}=n;return i([l,{name:u,message:f}],n)};return c})(!(t||r),!!t,new Map,n)(e),n},{parse:c,stringify:l}=JSON,u={json:!0,lossy:!0};var f=Object.freeze({__proto__:null,parse:e=>t(c(e)),stringify:e=>l(i(e,u))}),p="2f6fe6d4-8ba8-424a-83c5-8fadca1ea103",d=e=>({value:new Promise((t=>{let r=new Worker("data:application/javascript,"+encodeURIComponent("onmessage=({data:b})=>(Atomics.wait(b,0),postMessage(0))"));r.onmessage=t,r.postMessage(e)}))})\n/*! (c) Andrea Giammarchi - ISC */;const{Int32Array:w,Map:g,SharedArrayBuffer:h,Uint16Array:y}=globalThis,{BYTES_PER_ELEMENT:m}=w,{BYTES_PER_ELEMENT:b}=y,{isArray:v}=Array,{notify:S,wait:M,waitAsync:P}=Atomics,{fromCharCode:E}=String,j=(e,t)=>e?(P||d)(t,0):(M(t,0),{value:{then:e=>e()}}),A=new WeakSet,k=new WeakMap;let x=0;const $=(e,{parse:t,stringify:r}=JSON)=>{if(!k.has(e)){const n=(t,...r)=>e.postMessage({[p]:r},{transfer:t});k.set(e,new Proxy(new g,{has:(e,t)=>"string"==typeof t&&!t.startsWith("_"),get:(r,s)=>"then"===s?null:(...r)=>{const o=x++;let a=new w(new h(m)),i=[];A.has(r.at(-1)||i)&&A.delete(i=r.pop()),n(i,o,a,s,r);const c=e instanceof Worker;return j(c,a).value.then((()=>{const e=a[0];if(!e)return;const r=b*e;return a=new w(new h(r+r%m)),n([],o,a),j(c,a).value.then((()=>t(E(...new y(a.buffer).slice(0,e)))))}))},set(t,n,s){if(!t.size){const n=new g;e.addEventListener("message",(async e=>{const s=e.data?.[p];if(v(s)){e.stopImmediatePropagation();const[o,a,...i]=s;if(i.length){const[e,s]=i;if(!t.has(e))throw new Error(`Unsupported action: ${e}`);{const i=r(await t.get(e)(...s));i&&(n.set(o,i),a[0]=i.length)}}else{const e=n.get(o);n.delete(o);for(let t=new y(a.buffer),r=0;r<e.length;r++)t[r]=e.charCodeAt(r)}S(a,0)}}))}return!!t.set(n,s)}}))}return k.get(e)};$.transfer=(...e)=>(A.add(e),e);const _="object",O="function",W="number",R="string",T="undefined",F="symbol",{defineProperty:G,getOwnPropertyDescriptor:B,getPrototypeOf:J,isExtensible:I,ownKeys:L,preventExtensions:U,set:N,setPrototypeOf:z}=Reflect,D=J(Int8Array),C=(e,t)=>{const{get:r,set:n,value:s}=e;return r&&(e.get=t(r)),n&&(e.set=t(n)),s&&(e.value=t(s)),e},q=(e,t)=>[e,t],K=e=>t=>{const r=typeof t;switch(r){case _:if(null==t)return q("null",t);case O:return e(r,t);case"boolean":case W:case R:case T:case"bigint":return q(r,t);case F:if(Y.has(t))return q(r,Y.get(t))}throw new Error(`Unable to handle this ${r} type`)},Y=new Map(L(Symbol).filter((e=>typeof Symbol[e]===F)).map((e=>[Symbol[e],e]))),V=e=>{for(const[t,r]of Y)if(r===e)return t},H="apply",Q="construct",X="defineProperty",Z="deleteProperty",ee="get",te="getOwnPropertyDescriptor",re="getPrototypeOf",ne="has",se="isExtensible",oe="ownKeys",ae="preventExtensions",ie="set",ce="setPrototypeOf",le="delete";let ue=0;const fe=new Map,pe=new Map,de=new WeakMap;if(globalThis.window===globalThis){const{addEventListener:e}=EventTarget.prototype;G(EventTarget.prototype,"addEventListener",{value(t,r,...n){return n.at(0)?.invoke&&(de.has(this)||de.set(this,new Map),de.get(this).set(t,[].concat(n[0].invoke)),delete n[0].invoke),e.call(this,t,r,...n)}})}const we=K(((e,t)=>{if(!fe.has(t)){let e;for(;pe.has(e=ue++););fe.set(t,e),pe.set(e,t)}return q(e,fe.get(t))}));var ge=(e,t,r)=>{const{[r]:n}=e,s=new FinalizationRegistry((e=>{n(le,q(R,e))})),o=([e,t])=>{switch(e){case _:if(null==t)return globalThis;if(typeof t===W)return pe.get(t);if(!(t instanceof D))for(const e in t)t[e]=o(t[e]);return t;case O:if(typeof t===R){if(!pe.has(t)){const e=function(...e){return e.at(0)instanceof Event&&(e=>{const{currentTarget:t,target:r,type:n}=e;for(const s of de.get(t||r)?.get(n)||[])e[s]()})(...e),n(H,q(O,t),we(this),e.map(we))},r=new WeakRef(e);pe.set(t,r),s.register(e,t,r)}return pe.get(t).deref()}return pe.get(t);case F:return V(t)}return t},a={[H]:(e,t,r)=>we(e.apply(t,r)),[Q]:(e,t)=>we(new e(...t)),[X]:(e,t,r)=>we(G(e,t,r)),[Z]:(e,t)=>we(delete e[t]),[re]:e=>we(J(e)),[ee]:(e,t)=>we(e[t]),[te]:(e,t)=>{const r=B(e,t);return r?q(_,C(r,we)):q(T,r)},[ne]:(e,t)=>we(t in e),[se]:e=>we(I(e)),[oe]:e=>q(_,L(e).map(we)),[ae]:e=>we(U(e)),[ie]:(e,t,r)=>we(N(e,t,r)),[ce]:(e,t)=>we(z(e,t)),[le](e){fe.delete(pe.get(e)),pe.delete(e)}};return e[t]=(e,t,...r)=>{switch(e){case H:r[0]=o(r[0]),r[1]=r[1].map(o);break;case Q:r[0]=r[0].map(o);break;case X:{const[e,t]=r;r[0]=o(e);const{get:n,set:s,value:a}=t;n&&(t.get=o(n)),s&&(t.set=o(s)),a&&(t.value=o(a));break}default:r=r.map(o)}return a[e](o(t),...r)},{proxy:e,window:globalThis,isWindowProxy:()=>!1}};let he=0;const ye=new Map,me=new Map,be=Symbol(),ve=e=>typeof e===O?e():e,Se=e=>typeof e===_&&!!e&&be in e,Me="isArray",Pe=Array[Me],Ee=K(((e,t)=>{if(be in t)return ve(t[be]);if(e===O){if(!me.has(t)){let e;for(;me.has(e=String(he++)););ye.set(t,e),me.set(e,t)}return q(e,ye.get(t))}if(!(t instanceof D))for(const e in t)t[e]=Ee(t[e]);return q(e,t)}));var je=(e,t,r)=>{const{[t]:n}=e,s=new Map,o=new FinalizationRegistry((e=>{s.delete(e),n(le,Ee(e))})),a=e=>{const[t,r]=e;if(!s.has(r)){const n=t===O?Ae.bind(e):e,a=new Proxy(n,l),i=new WeakRef(a);s.set(r,i),o.register(a,r,i)}return s.get(r).deref()},i=e=>{const[t,r]=e;switch(t){case _:return typeof r===W?a(e):r;case O:return typeof r===R?me.get(r):a(e);case F:return V(r)}return r},c=(e,t,...r)=>i(n(e,ve(t),...r)),l={[H]:(e,t,r)=>c(H,e,Ee(t),r.map(Ee)),[Q]:(e,t)=>c(Q,e,t.map(Ee)),[X]:(e,t,r)=>{const{get:n,set:s,value:o}=r;return typeof n===O&&(r.get=Ee(n)),typeof s===O&&(r.set=Ee(s)),typeof o===O&&(r.value=Ee(o)),c(X,e,Ee(t),r)},[Z]:(e,t)=>c(Z,e,Ee(t)),[re]:e=>c(re,e),[ee]:(e,t)=>t===be?e:c(ee,e,Ee(t)),[te]:(e,t)=>{const r=c(te,e,Ee(t));return r&&C(r,i)},[ne]:(e,t)=>t===be||c(ne,e,Ee(t)),[se]:e=>c(se,e),[oe]:e=>c(oe,e).map(i),[ae]:e=>c(ae,e),[ie]:(e,t,r)=>c(ie,e,Ee(t),Ee(r)),[ce]:(e,t)=>c(ce,e,Ee(t))};e[r]=(e,t,r,n)=>{switch(e){case H:return i(t).apply(i(r),n.map(i));case le:{const e=i(t);ye.delete(me.get(e)),me.delete(e)}}};const u=new Proxy([_,null],l),f=u.Array[Me];return G(Array,Me,{value:e=>Se(e)?f(e):Pe(e)}),{window:u,isWindowProxy:Se,proxy:e,get global(){return console.warn("Deprecated: please access `window` field instead"),this.window},get isGlobal(){return function(e){return console.warn("Deprecated: please access `isWindowProxy` field instead"),this.isWindowProxy(e)}.bind(this)}}};function Ae(){return this}const ke=p+"M",xe=p+"T",$e=new WeakMap,_e=(e,...t)=>{const r=$(e,...t);if(!$e.has(r)){const t=e instanceof Worker?ge:je;$e.set(r,t(r,ke,xe))}return $e.get(r)};_e.transfer=$.transfer;const{isArray:Oe}=Array,{assign:We,create:Re,defineProperties:Te,defineProperty:Fe,entries:Ge}=Object,{all:Be,resolve:Je}=new Proxy(Promise,{get:(e,t)=>e[t].bind(e)}),Ie=(e,t=location.href)=>new URL(e,t).href;Promise.withResolvers||(Promise.withResolvers=function(){var e,t,r=new this((function(r,n){e=r,t=n}));return{resolve:e,reject:t,promise:r}});const Le=e=>e.arrayBuffer(),Ue=e=>e.json(),Ne=e=>e.text(),ze=e=>e.replace(/^[^\\r\\n]+$/,(e=>e.trim())),De=new WeakMap,Ce=e=>{const t=e||console,r={stderr:(t.stderr||console.error).bind(t),stdout:(t.stdout||console.log).bind(t)};return{stderr:(...e)=>r.stderr(...e),stdout:(...e)=>r.stdout(...e),async get(e){const t=await e;return De.set(t,r),t}}},qe=e=>{const t=e.split("/");return t.pop(),t.join("/")},Ke=(e,t)=>{const r=[];for(const n of t.split("/"))r.push(n),n&&e.mkdir(r.join("/"))},Ye=(e,t)=>{const r=[];for(const e of t.split("/"))switch(e){case"":case".":break;case"..":r.pop();break;default:r.push(e)}return[e.cwd()].concat(r).join("/").replace(/^\\/+/,"/")},Ve=e=>{const t=e.map((e=>e.trim().replace(/(^[/]*|[/]*$)/g,""))).filter((e=>""!==e&&"."!==e)).join("/");return e[0].startsWith("/")?`/${t}`:t},He=new WeakMap,Qe=(e,t,r)=>Be((e=>{for(const{files:t,to_file:r,from:n=""}of e){if(void 0!==t&&void 0!==r)throw new Error("Cannot use \'to_file\' and \'files\' parameters together!");if(void 0===t&&void 0===r&&n.endsWith("/"))throw new Error(`Couldn\'t determine the filename from the path ${n}, please supply \'to_file\' parameter.`)}return e.flatMap((({from:e="",to_folder:t=".",to_file:r,files:n})=>{if(Oe(n))return n.map((r=>({url:Ve([e,r]),path:Ve([t,r])})));const s=r||e.slice(1+e.lastIndexOf("/"));return[{url:e,path:Ve([t,s])}]}))})(r).map((({url:n,path:s})=>((e,t)=>fetch(Ie(t,He.get(e))))(r,n).then(Le).then((r=>e.writeFile(t,s,r))))));function Xe(e,t,r){for(const[t,n]of Ge(r))this.setGlobal(e,t,n)}const Ze=(e,t)=>e.runPython(ze(t)),et=(e,t)=>e.globals.get(t),tt=(e,t,r)=>{e.globals.set(t,r)},rt=(e,t)=>{e.globals.delete(t)},nt=(e,t,r)=>{e.registerJsModule(t,r)},st=({FS:e},t,r)=>((e,t,r)=>{const{parentPath:n,name:s}=e.analyzePath(t,!0);return e.mkdirTree(n),e.writeFile([n,s].join("/"),new Uint8Array(r),{canOwn:!0})})(e,t,r);var ot={type:"micropython",module:(e="1.20.0-268")=>`https://cdn.jsdelivr.net/npm/@micropython/micropython-webassembly-pyscript@${e}/micropython.mjs`,async engine({loadMicroPython:e},t,r){const{stderr:n,stdout:s,get:o}=Ce();r=r.replace(/\\.m?js$/,".wasm");const a=await o(e({stderr:n,stdout:s,url:r}));return t.fetch&&await Qe(this,a,t.fetch),a},getGlobal:et,setGlobal:tt,deleteGlobal:rt,registerJSModule:nt,run:Ze,async runAsync(...e){return this.run(...e)},writeFile:st};var at={type:"pyodide",module:(e="0.23.2")=>`https://cdn.jsdelivr.net/pyodide/v${e}/full/pyodide.mjs`,async engine({loadPyodide:e},t,r){const{stderr:n,stdout:s,get:o}=Ce(),a=r.slice(0,r.lastIndexOf("/")),i=await o(e({stderr:n,stdout:s,indexURL:a}));if(t.fetch&&await Qe(this,i,t.fetch),t.packages){await i.loadPackage("micropip");const e=await i.pyimport("micropip");await e.install(t.packages),e.destroy()}return i},getGlobal:et,setGlobal:tt,deleteGlobal:rt,registerJSModule:nt,run:Ze,runAsync:(e,t)=>e.runPythonAsync(ze(t)),writeFile:st};const it="ruby-wasm-wasi";var ct={type:it,experimental:!0,module:(e="2.0.0")=>`https://cdn.jsdelivr.net/npm/ruby-3_2-wasm-wasi@${e}/dist/browser.esm.js`,async engine({DefaultRubyVM:e},t,r){const n=await fetch(`${r.slice(0,r.lastIndexOf("/"))}/ruby.wasm`),s=await WebAssembly.compile(await n.arrayBuffer()),{vm:o}=await e(s);return t.fetch&&await Qe(this,o,t.fetch),o},registerJSModule:Xe,getGlobal(e,t){try{return this.run(e,t)}catch(r){const n=this.run(e,`method(:${t})`);return(...r)=>n.call(t,...r.map((t=>e.wrap(t))))}},setGlobal(e,t,r){const n=`__pyscript_ruby_wasm_wasi_${t}`;globalThis[n]=r,this.run(e,`require "js";$${t}=JS::eval("return ${n}")`)},deleteGlobal(e,t){const r=`__pyscript_ruby_wasm_wasi_${t}`;this.run(e,`$${t}=nil`),delete globalThis[r]},run:(e,t)=>e.eval(ze(t)),runAsync:(e,t)=>e.evalAsync(ze(t)),writeFile:()=>{throw new Error(`writeFile is not supported in ${it}`)}};var lt={type:"wasmoon",module:(e="1.15.0")=>`https://cdn.jsdelivr.net/npm/wasmoon@${e}/+esm`,async engine({LuaFactory:e,LuaLibraries:t},r){const{stderr:n,stdout:s,get:o}=Ce(),a=await o((new e).createEngine());return a.global.getTable(t.Base,(e=>{a.global.setField(e,"print",s),a.global.setField(e,"printErr",n)})),r.fetch&&await Qe(this,a,r.fetch),a},registerJSModule:Xe,getGlobal:(e,t)=>e.global.get(t),setGlobal(e,t,r){e.global.set(t,r)},deleteGlobal(e,t){e.global.set(t,void 0)},run:(e,t)=>e.doStringSync(ze(t)),runAsync:(e,t)=>e.doString(ze(t)),writeFile:({cmodule:{module:{FS:e}}},t,r)=>((e,t,r)=>(t=Ye(e,t),Ke(e,qe(t)),e.writeFile(t,new Uint8Array(r),{canOwn:!0})))(e,t,r)};const ut=new Map,ft=new Map,pt=new Proxy(new Map,{get(e,t){if(!e.has(t)){const[r,...n]=t.split("@"),s=ut.get(r),o=/^https?:\\/\\//i.test(n)?n.join("@"):s.module(...n);e.set(t,{url:o,module:import(o),engine:s.engine.bind(s)})}const{url:r,module:n,engine:s}=e.get(t);return(e,o)=>n.then((n=>{ft.set(t,e);const a=e?.fetch;return a&&He.set(a,o),s(n,e,r)}))}}),dt=e=>{for(const t of[].concat(e.type))ut.set(t,e)};for(const e of[ot,at,ct,lt])dt(e);const wt=async e=>(await import("https://cdn.jsdelivr.net/npm/basic-toml@0.3.1/es.js")).parse(e);try{new SharedArrayBuffer(4)}catch(e){throw new Error(["Unable to use SharedArrayBuffer due insecure environment.","Please read requirements in MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer#security_requirements"].join("\\n"))}let gt,ht,yt;const mt=(e,t)=>{addEventListener(e,t||(async t=>{await gt,yt=t,ht(`xworker.on${e}(xworker.event);`,Mt)}),!!t&&{once:!0})},{proxy:bt,window:vt,isWindowProxy:St}=_e(self,f),Mt={sync:bt,window:vt,isWindowProxy:St,onerror(){},onmessage(){},onmessageerror(){},postMessage:postMessage.bind(self),get event(){const e=yt;if(!e)throw new Error("Unauthorized event access");return yt=void 0,e}};mt("message",(({data:{options:e,code:t,hooks:r}})=>{gt=(async()=>{const{type:n,version:s,config:o,async:a}=e,i=await((e,t)=>{let r={};if(t)if(t.endsWith(".json"))r=fetch(t).then(Ue);else if(t.endsWith(".toml"))r=fetch(t).then(Ne).then(wt);else{try{r=JSON.parse(t)}catch(e){r=wt(t)}t=Ie("./config.txt")}return Je(r).then((r=>pt[e](r,t)))})(((e,t="")=>`${e}@${t}`.replace(/@$/,""))(n,s),o),c=Re(ut.get(n)),l="run"+(a?"Async":"");if(r){const{beforeRun:e,beforeRunAsync:t,afterRun:n,afterRunAsync:s}=r,o=n||s,a=e||t;if(o){const e=c[l].bind(c);c[l]=(t,r)=>e(t,`${r}\\n${o}`)}if(a){const e=c[l].bind(c);c[l]=(t,r)=>e(t,`${a}\\n${r}`)}}return c.registerJSModule(i,"xworker",{xworker:Mt}),ht=c[l].bind(c,i),ht(t),i})(),mt("error"),mt("message"),mt("messageerror")}));\n'],{type:"application/javascript"})),{type:"module"}),{postMessage:s}=n,o=this instanceof Ce;if(e.length){const[t,n]=e;(r=Te({},r||{type:t,version:n})).type||(r.type=t)}r?.config&&(r.config=Ne(r.config));const a=fetch(t).then(ze).then((e=>{const t=o?this.stringHooks:void 0;s.call(n,{options:r,code:e,hooks:t})}));return Fe(n,{postMessage:{value:(e,...t)=>a.then((()=>s.call(n,e,...t)))},sync:{value:We(n,d).proxy}}),o&&this.onWorkerReady?.(this.interpreter,n),n};Promise.withResolvers||(Promise.withResolvers=function(){var e,t,r=new this((function(r,n){e=r,t=n}));return{resolve:e,reject:t,promise:r}});const He=e=>e.replace(/^[^\r\n]+$/,(e=>e.trim())),Ye=new WeakMap,Qe=e=>{const t=e||console,r={stderr:(t.stderr||console.error).bind(t),stdout:(t.stdout||console.log).bind(t)};return{stderr:(...e)=>r.stderr(...e),stdout:(...e)=>r.stdout(...e),async get(e){const t=await e;return Ye.set(t,r),t}}},Ke=e=>{const t=e.split("/");return t.pop(),t.join("/")},Ve=(e,t)=>{const r=[];for(const n of t.split("/"))r.push(n),n&&e.mkdir(r.join("/"))},Ze=(e,t)=>{const r=[];for(const e of t.split("/"))switch(e){case"":case".":break;case"..":r.pop();break;default:r.push(e)}return[e.cwd()].concat(r).join("/").replace(/^\/+/,"/")},et=e=>{const t=e.map((e=>e.trim().replace(/(^[/]*|[/]*$)/g,""))).filter((e=>""!==e&&"."!==e)).join("/");return e[0].startsWith("/")?`/${t}`:t},tt=new WeakMap,rt=(e,t,r)=>Le((e=>{for(const{files:t,to_file:r,from:n=""}of e){if(void 0!==t&&void 0!==r)throw new Error("Cannot use 'to_file' and 'files' parameters together!");if(void 0===t&&void 0===r&&n.endsWith("/"))throw new Error(`Couldn't determine the filename from the path ${n}, please supply 'to_file' parameter.`)}return e.flatMap((({from:e="",to_folder:t=".",to_file:r,files:n})=>{if(Re(n))return n.map((r=>({url:et([e,r]),path:et([t,r])})));const s=r||e.slice(1+e.lastIndexOf("/"));return[{url:e,path:et([t,s])}]}))})(r).map((({url:n,path:s})=>((e,t)=>fetch(Ne(t,tt.get(e))))(r,n).then(Ue).then((r=>e.writeFile(t,s,r))))));function nt(e,t,r){for(const[t,n]of Ie(r))this.setGlobal(e,t,n)}const st=(e,t)=>e.runPython(He(t)),ot=(e,t)=>e.globals.get(t),at=(e,t,r)=>{e.globals.set(t,r)},it=(e,t)=>{e.globals.delete(t)},ct=(e,t,r)=>{e.registerJsModule(t,r)},lt=({FS:e},t,r)=>((e,t,r)=>{const{parentPath:n,name:s}=e.analyzePath(t,!0);return e.mkdirTree(n),e.writeFile([n,s].join("/"),new Uint8Array(r),{canOwn:!0})})(e,t,r);var ut={type:"micropython",module:(e="1.20.0-268")=>`https://cdn.jsdelivr.net/npm/@micropython/micropython-webassembly-pyscript@${e}/micropython.mjs`,async engine({loadMicroPython:e},t,r){const{stderr:n,stdout:s,get:o}=Qe();r=r.replace(/\.m?js$/,".wasm");const a=await o(e({stderr:n,stdout:s,url:r}));return t.fetch&&await rt(this,a,t.fetch),a},getGlobal:ot,setGlobal:at,deleteGlobal:it,registerJSModule:ct,run:st,async runAsync(...e){return this.run(...e)},writeFile:lt};var ft={type:"pyodide",module:(e="0.23.2")=>`https://cdn.jsdelivr.net/pyodide/v${e}/full/pyodide.mjs`,async engine({loadPyodide:e},t,r){const{stderr:n,stdout:s,get:o}=Qe(),a=r.slice(0,r.lastIndexOf("/")),i=await o(e({stderr:n,stdout:s,indexURL:a}));if(t.fetch&&await rt(this,i,t.fetch),t.packages){await i.loadPackage("micropip");const e=await i.pyimport("micropip");await e.install(t.packages),e.destroy()}return i},getGlobal:ot,setGlobal:at,deleteGlobal:it,registerJSModule:ct,run:st,runAsync:(e,t)=>e.runPythonAsync(He(t)),writeFile:lt};const pt="ruby-wasm-wasi";var dt={type:pt,experimental:!0,module:(e="2.0.0")=>`https://cdn.jsdelivr.net/npm/ruby-3_2-wasm-wasi@${e}/dist/browser.esm.js`,async engine({DefaultRubyVM:e},t,r){const n=await fetch(`${r.slice(0,r.lastIndexOf("/"))}/ruby.wasm`),s=await WebAssembly.compile(await n.arrayBuffer()),{vm:o}=await e(s);return t.fetch&&await rt(this,o,t.fetch),o},registerJSModule:nt,getGlobal(e,t){try{return this.run(e,t)}catch(r){const n=this.run(e,`method(:${t})`);return(...r)=>n.call(t,...r.map((t=>e.wrap(t))))}},setGlobal(e,t,r){const n=`__pyscript_ruby_wasm_wasi_${t}`;globalThis[n]=r,this.run(e,`require "js";$${t}=JS::eval("return ${n}")`)},deleteGlobal(e,t){const r=`__pyscript_ruby_wasm_wasi_${t}`;this.run(e,`$${t}=nil`),delete globalThis[r]},run:(e,t)=>e.eval(He(t)),runAsync:(e,t)=>e.evalAsync(He(t)),writeFile:()=>{throw new Error(`writeFile is not supported in ${pt}`)}};var ht={type:"wasmoon",module:(e="1.15.0")=>`https://cdn.jsdelivr.net/npm/wasmoon@${e}/+esm`,async engine({LuaFactory:e,LuaLibraries:t},r){const{stderr:n,stdout:s,get:o}=Qe(),a=await o((new e).createEngine());return a.global.getTable(t.Base,(e=>{a.global.setField(e,"print",s),a.global.setField(e,"printErr",n)})),r.fetch&&await rt(this,a,r.fetch),a},registerJSModule:nt,getGlobal:(e,t)=>e.global.get(t),setGlobal(e,t,r){e.global.set(t,r)},deleteGlobal(e,t){e.global.set(t,void 0)},run:(e,t)=>e.doStringSync(He(t)),runAsync:(e,t)=>e.doString(He(t)),writeFile:({cmodule:{module:{FS:e}}},t,r)=>((e,t,r)=>(t=Ze(e,t),Ve(e,Ke(t)),e.writeFile(t,new Uint8Array(r),{canOwn:!0})))(e,t,r)};const wt=new Map,yt=new Map,gt=[],mt=[],bt=new Proxy(new Map,{get(e,t){if(!e.has(t)){const[r,...n]=t.split("@"),s=wt.get(r),o=/^https?:\/\//i.test(n)?n.join("@"):s.module(...n);e.set(t,{url:o,module:import(o),engine:s.engine.bind(s)})}const{url:r,module:n,engine:s}=e.get(t);return(e,o)=>n.then((n=>{yt.set(t,e);const a=e?.fetch;return a&&tt.set(a,o),s(n,e,r)}))}}),vt=e=>{for(const t of[].concat(e.type))wt.set(t,e),gt.push(`script[type="${t}"]`),mt.push(`${t}-`)};for(const e of[ut,ft,dt,ht])vt(e);const Et=async e=>(await import("https://cdn.jsdelivr.net/npm/basic-toml@0.3.1/es.js")).parse(e),Mt=(e,t)=>{let r={};if(t)if(t.endsWith(".json"))r=fetch(t).then(qe);else if(t.endsWith(".toml"))r=fetch(t).then(ze).then(Et);else{try{r=JSON.parse(t)}catch(e){r=Et(t)}t=Ne("./config.txt")}return Je(r).then((r=>bt[e](r,t)))},kt=(e,t="")=>`${e}@${t}`.replace(/@$/,""),St=(e,t)=>{const r=(e=>{let t=e;for(;t.parentNode;)t=t.parentNode;return t})(e);return r.getElementById(t)||((e,t=document)=>t.querySelector(e))(t,r)},At=new WeakMap,$t={get(){let e=At.get(this);return e||(e=document.createElement(`${this.type}-script`),At.set(this,e),Ot(this)),e},set(e){"string"==typeof e?At.set(this,St(this,e)):(At.set(this,e),Ot(this))}},Pt=new WeakMap,jt=new Map,xt=(e,t)=>{const r=e?.value;return r?t+r:""},_t=(e,t,r,n,s)=>{if(!jt.has(t)){const o={interpreter:Mt(r,s),queue:Je(),XWorker:Xe(e,n)};jt.set(t,o),jt.has(e)||jt.set(e,o)}return jt.get(t)},Ot=async e=>{if(Pt.has(e)){const{target:t}=e;t&&(e.closest("head")?document.body.append(t):e.after(t))}else{const{attributes:{async:t,config:r,env:n,target:s,version:o},src:a,type:i}=e,c=o?.value,l=kt(i,c),u=xt(s,"");let f=xt(r,"|");const p=xt(n,"")||`${l}${f}`;f=f.slice(1),f&&(f=Ne(f));const d=_t(i,p,l,c,f);Pt.set(Be(e,"target",$t),d),u&&At.set(e,St(e,u));const h=a?fetch(a).then(ze):e.textContent;d.queue=d.queue.then((()=>(async(e,t,r,n)=>{const s=wt.get(e.type);s.experimental&&console.warn(`The ${e.type} interpreter is experimental`);const[o,a]=await Le([Pt.get(e).interpreter,t]);try{return Be(document,"currentScript",{configurable:!0,get:()=>e}),s.registerJSModule(o,"xworker",{XWorker:r}),s[n?"runAsync":"run"](o,a)}finally{delete document.currentScript}})(e,h,d.XWorker,!!t)))}};Be(globalThis,"pyscript",{value:{env:new Proxy(Ge(null),{get:(e,t)=>Wt(t)})}});const Wt=async e=>{if(jt.has(e)){const{interpreter:t,queue:r}=jt.get(e);return(await Le([t,r]))[0]}const t=jt.size?`Available interpreters are: ${[...jt.keys()].map((e=>`"${e}"`)).join(", ")}.`:"There are no interpreters in this page.";throw new Error(`The interpreter "${e}" was not found. ${t}`)},Rt=async e=>{const{type:r,currentTarget:n}=e;for(let{name:s,value:o,ownerElement:a}of t(`./@*[${mt.map((e=>`name()="${e}${r}"`)).join(" or ")}]`,n)){s=s.slice(0,-(r.length+1));const t=await Wt(a.getAttribute(`${s}-env`)||s);wt.get(s).getGlobal(t,o)(e)}},Tt=e=>{for(let{name:r,ownerElement:n}of t(`.//@*[${mt.map((e=>`starts-with(name(),"${e}")`)).join(" or ")}]`,e))r=r.slice(r.lastIndexOf("-")+1),"env"!==r&&n.addEventListener(r,Rt)},Gt=[],Ft=new Map,Bt=new Map,It=e=>{for(const t of Gt)if(e.matches(t)){const r=Ft.get(t),{resolve:n}=Bt.get(r),{options:s,known:o}=Lt.get(r);if(!o.has(e)){o.add(e);const{interpreter:t,version:a,config:i,env:c,onInterpreterReady:l}=s,u=kt(t,a),f=c||`${u}${i?`|${i}`:""}`,{interpreter:p,XWorker:d}=_t(t,f,u,a,i);p.then((o=>{const a=Ge(wt.get(t)),{onBeforeRun:i,onBeforeRunAsync:c,onAfterRun:f,onAfterRunAsync:p}=s,h=new Ce(o,s),w=function(...e){return d.apply(h,e)};for(const[t,[r,n]]of[["run",[i,f]]]){const s=a[t];a[t]=function(t,o){r&&r.call(this,y,e);const a=s.call(this,t,o);return n&&n.call(this,y,e),a}}for(const[t,[r,n]]of[["runAsync",[c,p]]]){const s=a[t];a[t]=async function(t,o){r&&await r.call(this,y,e);const a=await s.call(this,t,o);return n&&await n.call(this,y,e),a}}a.registerJSModule(o,"xworker",{XWorker:w});const y={type:r,interpreter:o,XWorker:w,io:Ye.get(o),config:structuredClone(yt.get(u)),run:a.run.bind(a,o),runAsync:a.runAsync.bind(a,o)};n(y),l?.(y,e)}))}}},Lt=new Map,Jt=(t,r)=>{if(wt.has(t)||Lt.has(t))throw new Error(`<script type="${t}"> already registered`);if(!wt.has(r?.interpreter))throw new Error("Unspecified interpreter");wt.set(t,wt.get(r?.interpreter)),Nt(t);const n=[`script[type="${t}"]`,`${t}-script`];for(const e of n)Ft.set(e,t);Gt.push(...n),mt.push(`${t}-`),Lt.set(t,{options:Te({env:t},r),known:new WeakSet}),Tt(document),e(n.join(",")).forEach(It)},Nt=e=>(Bt.has(e)||Bt.set(e,Promise.withResolvers()),Bt.get(e).promise),Ut=Xe(),qt=gt.join(","),zt=new MutationObserver((t=>{for(const{type:r,target:n,attributeName:s,addedNodes:o}of t)if("attributes"!==r){for(const t of o)if(1===t.nodeType)if(Tt(t),t.matches(qt))Ot(t);else{if(e(qt,t).forEach(Ot),!Gt.length)continue;It(t),e(Gt.join(","),t).forEach(It)}}else{const e=s.lastIndexOf("-")+1;if(e){const t=s.slice(0,e);for(const r of mt)if(t===r){const t=s.slice(e);if("env"!==t){const e=n.hasAttribute(s)?"add":"remove";n[`${e}EventListener`](t,Rt)}break}}}})),Dt=e=>(zt.observe(e,{childList:!0,subtree:!0,attributes:!0}),e),{attachShadow:Ct}=Element.prototype;Te(Element.prototype,{attachShadow(e){return Dt(Ct.call(this,e))}}),Tt(Dt(document)),e(qt,document).forEach(Ot);export{Ut as XWorker,Jt as define,Nt as whenDefined};
|
package/dev.cjs
ADDED
@@ -0,0 +1,33 @@
|
|
1
|
+
let queue = Promise.resolve();
|
2
|
+
|
3
|
+
const { exec } = require("node:child_process");
|
4
|
+
|
5
|
+
const build = (fileName) => {
|
6
|
+
if (fileName) console.log(fileName, "changed");
|
7
|
+
else console.log("building without optimizations");
|
8
|
+
queue = queue.then(
|
9
|
+
() =>
|
10
|
+
new Promise((resolve, reject) => {
|
11
|
+
exec(
|
12
|
+
"npm run rollup:xworker && npm run rollup:core && npm run rollup:pyscript",
|
13
|
+
{ cwd: __dirname, env: { ...process.env, NO_MIN: true } },
|
14
|
+
(error) => {
|
15
|
+
if (error) reject(error);
|
16
|
+
else
|
17
|
+
resolve(
|
18
|
+
console.log(fileName || "", "build completed"),
|
19
|
+
);
|
20
|
+
},
|
21
|
+
);
|
22
|
+
}),
|
23
|
+
);
|
24
|
+
};
|
25
|
+
|
26
|
+
const options = {
|
27
|
+
ignored: /\/(?:__template|interpreters|xworker)\.[mc]?js$/,
|
28
|
+
persistent: true,
|
29
|
+
};
|
30
|
+
|
31
|
+
require("chokidar").watch("./esm", options).on("change", build);
|
32
|
+
|
33
|
+
build();
|