sliccy 5.19.2 → 5.20.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ui/assets/__vite-browser-external-BXIFVS_m.js +1 -0
- package/dist/ui/assets/{account-store-BmxI91dA.js → account-store-BcSycxbc.js} +2 -2
- package/dist/ui/assets/{account-store-C29Q2_1P.js → account-store-DW6iW9iB.js} +1 -1
- package/dist/ui/assets/{adobe-S_N8RmpS.js → adobe-Br0Ja7Gs.js} +1 -1
- package/dist/ui/assets/{adobe-3z76LuuB.js → adobe-Z8GfJZNM.js} +1 -1
- package/dist/ui/assets/{adobe-oauth-state-29kzXy6A.js → adobe-oauth-state-BDetyX7s.js} +1 -1
- package/dist/ui/assets/{agent-message-to-chat-MTcmAlDv.js → agent-message-to-chat-BTNDVg0T.js} +1 -1
- package/dist/ui/assets/{apps-BTbhV_WH.js → apps-BG6_XrX1.js} +1 -1
- package/dist/ui/assets/{azure-openai-BYC93D7I.js → azure-openai-CcEaijCE.js} +1 -1
- package/dist/ui/assets/{azure-openai-DNZwRlzV.js → azure-openai-tF-mnQdH.js} +1 -1
- package/dist/ui/assets/{connect-surface-nOvU-mzS.js → connect-surface-CTYqOLeq.js} +1 -1
- package/dist/ui/assets/dip-Ctf6phXp.js +1 -0
- package/dist/ui/assets/{dist-BafxlePp.js → dist-C6Qm47PL.js} +1 -1
- package/dist/ui/assets/{dist-DEa2AyxC.js → dist-ilEkxLip.js} +1 -1
- package/dist/ui/assets/{ensure-speech-assets-B9nEbwAU.js → ensure-speech-assets-BDz63X1e.js} +1 -1
- package/dist/ui/assets/esp8266-Dip6PaRZ.js +1 -0
- package/dist/ui/assets/{esptool-operations-DOLHZ3lh.js → esptool-operations-CPcOtBiB.js} +2 -2
- package/dist/ui/assets/{fs-GCp_miGo.js → fs-DbLSBgrZ.js} +1 -1
- package/dist/ui/assets/{fs-BXbkZdm4.js → fs-DcZIOhoO.js} +2 -2
- package/dist/ui/assets/{github-C_4arGR0.js → github-BzKzkG3E.js} +1 -1
- package/dist/ui/assets/{github-Bz1ni-OU.js → github-CXss2hVj.js} +2 -2
- package/dist/ui/assets/{github-copilot-Dfmfbira.js → github-copilot-BNt1sOpn.js} +1 -1
- package/dist/ui/assets/{github-copilot-CgjQ3oCm.js → github-copilot-B_VwFjgU.js} +1 -1
- package/dist/ui/assets/{hear-WZ7KsFPa.js → hear-qmyN_TI6.js} +1 -1
- package/dist/ui/assets/{kernel-worker-DfBOBrG4.js → kernel-worker-DRvGOqpl.js} +816 -790
- package/dist/ui/assets/{kokoro-engine-CZdBdTQm.js → kokoro-engine-D55VqYz2.js} +1 -1
- package/dist/ui/assets/{lick-ws-bridge-DvKspKHX.js → lick-ws-bridge-OUe2lv5x.js} +1 -1
- package/dist/ui/assets/{lick-ws-bridge-Cu7dpa8i.js → lick-ws-bridge-ch4l1RN0.js} +1 -1
- package/dist/ui/assets/{local-llm-BQ8OSWey.js → local-llm-Bu7XdX-8.js} +1 -1
- package/dist/ui/assets/{main-BwuI7fRl.js → main-Cmvs-4b3.js} +4 -4
- package/dist/ui/assets/{mount-DtlHau7q.js → mount-Dugwl_G8.js} +1 -1
- package/dist/ui/assets/{mount-B_Fai0cB.js → mount-awie1rkj.js} +2 -2
- package/dist/ui/assets/{new-session-xEsEQMaP.js → new-session-B8DDDliN.js} +2 -2
- package/dist/ui/assets/{oauth-bootstrap-u1jC7Drj.js → oauth-bootstrap-Btw1wnpp.js} +2 -2
- package/dist/ui/assets/{openai-codex-B7hWdu3I.js → openai-codex-DpsqbdWi.js} +1 -1
- package/dist/ui/assets/{openai-codex-TQ8snEf1.js → openai-codex-Rh4T6H6N.js} +1 -1
- package/dist/ui/assets/{page-follower-tray-Dv2c9MjS.js → page-follower-tray-MKfvq2UU.js} +1 -1
- package/dist/ui/assets/{panel-rpc-handlers-sRKKwsAQ.js → panel-rpc-handlers-BbynP3ze.js} +2 -2
- package/dist/ui/assets/{provider-Cw7y1s3Y.js → provider-ByecteLA.js} +2 -2
- package/dist/ui/assets/{provider-toCTMFh6.js → provider-C5NbfXV8.js} +1 -1
- package/dist/ui/assets/provider-store-access-CIXaM1mT.js +1 -0
- package/dist/ui/assets/provider-store-access-DShcDXEP.js +1 -0
- package/dist/ui/assets/{providers-K4HcOMJ-.js → providers-C62sFch1.js} +1 -1
- package/dist/ui/assets/{providers-DDWD7k0v.js → providers-DdXvCdOY.js} +2 -2
- package/dist/ui/assets/py-realm-worker-M50pZEAO.js +244 -0
- package/dist/ui/assets/pyodide-CPgzyJWn.js +3 -0
- package/dist/ui/assets/pyodide-CY7aNvge.js +3 -0
- package/dist/ui/assets/{quick-llm-AORy1zgk.js → quick-llm-BpD0afu9.js} +1 -1
- package/dist/ui/assets/session-freezer-BWrnpCKi.js +1 -0
- package/dist/ui/assets/{speak-DzOzO6t_.js → speak-BKvofAdv.js} +1 -1
- package/dist/ui/assets/{sprinkle-manager-BHP5wWBw.js → sprinkle-manager-DTMfl-8d.js} +1 -1
- package/dist/ui/assets/{store-BU91i2F0.js → store-B1opGpoU.js} +1 -1
- package/dist/ui/assets/{sudo-D3Ls3Dkb.js → sudo-DUBeKEp5.js} +1 -1
- package/dist/ui/assets/{transformers-env-CcquuulE.js → transformers-env-CBrLOjgc.js} +1 -1
- package/dist/ui/assets/{tray-leader-Wknn0eO7.js → tray-leader-CxCeXLrs.js} +1 -1
- package/dist/ui/assets/{tray-leave-runtime-D5R9x5pb.js → tray-leave-runtime-C9Xd-K2T.js} +1 -1
- package/dist/ui/assets/{upgrade-detection-DPNjw--9.js → upgrade-detection-DXvKThLg.js} +1 -1
- package/dist/ui/assets/{voice-reply-BU4Ra94P.js → voice-reply-GoJBsykV.js} +1 -1
- package/dist/ui/assets/{wc-attach-DzZX7Bvl.js → wc-attach-BGBVAYe2.js} +2 -2
- package/dist/ui/assets/{wc-detached-BH_F26OY.js → wc-detached-ItX-R0IR.js} +1 -1
- package/dist/ui/assets/{wc-extension-BJpxZWmM.js → wc-extension-CQ58ZdmG.js} +2 -2
- package/dist/ui/assets/{wc-follower-Osw_cypJ.js → wc-follower-0S4vw_pW.js} +2 -2
- package/dist/ui/assets/{wc-live-C0Qhb3-a.js → wc-live-CXSudFHs.js} +5 -5
- package/dist/ui/assets/{wc-nav-CsdChxu5.js → wc-nav-C8BwJGKu.js} +2 -2
- package/dist/ui/assets/{wc-onboarding-NGf5gmhr.js → wc-onboarding-DWTOlhtm.js} +2 -2
- package/dist/ui/assets/{wc-placeholder-CHAA0tTq.js → wc-placeholder-Bmev8Pr0.js} +3 -3
- package/dist/ui/assets/{wc-settings-8GO2gzZ3.js → wc-settings-Dd9as02P.js} +2 -2
- package/dist/ui/assets/{wc-shell-CcQ2DALv.js → wc-shell-Cizp69uj.js} +78 -84
- package/dist/ui/assets/{wc-sprinkles-BJhExykW.js → wc-sprinkles-DuT_Z4Wm.js} +2 -2
- package/dist/ui/assets/{wc-tray-CLJNNdrx.js → wc-tray-DgcABRek.js} +2 -2
- package/dist/ui/assets/{whisper-engine-C-8IWV1j.js → whisper-engine-DU-d00q8.js} +1 -1
- package/dist/ui/assets/{xai-grok-DfeZ-LOu.js → xai-grok-Bo2MbOzF.js} +1 -1
- package/dist/ui/assets/{xai-grok-BPdOb0AZ.js → xai-grok-CT2UxaTl.js} +1 -1
- package/dist/ui/index.html +3 -3
- package/dist/ui/packages/webapp/index.html +3 -3
- package/package.json +2 -2
- package/dist/ui/assets/__vite-browser-external-ccPY92C6.js +0 -1
- package/dist/ui/assets/dip-BgeReDuU.js +0 -1
- package/dist/ui/assets/esp8266-BN31NBrB.js +0 -1
- package/dist/ui/assets/provider-store-access-BHi8qJ_0.js +0 -1
- package/dist/ui/assets/provider-store-access-BTHab7Ze.js +0 -1
- package/dist/ui/assets/py-realm-worker-hOFi8vjM.js +0 -242
- package/dist/ui/assets/pyodide-CqQhZelL.js +0 -3
- package/dist/ui/assets/pyodide-M7UA50Oh.js +0 -3
- package/dist/ui/assets/session-freezer-M1gjbtjP.js +0 -1
- package/dist/ui/assets/voice-input-BwyW3uqq.js +0 -1
- package/dist/ui/assets/wc-voice-erm0EtRv.js +0 -1
|
@@ -1,242 +0,0 @@
|
|
|
1
|
-
const e=new Set([`fs`,`path`,`crypto`,`process`,`buffer`,`assert`,`assert/strict`,`util`]),t=new Set(`assert.assert/strict.async_hooks.buffer.child_process.cluster.console.constants.crypto.dgram.diagnostics_channel.dns.dns/promises.domain.events.fs.fs/promises.http.http2.https.inspector.inspector/promises.module.net.os.path.path/posix.path/win32.perf_hooks.process.punycode.querystring.readline.readline/promises.repl.stream.stream/consumers.stream/promises.stream/web.string_decoder.sys.timers.timers/promises.tls.trace_events.tty.url.util.util/types.v8.vm.wasi.worker_threads.zlib`.split(`.`));new Set([...t].filter(t=>!e.has(t))),new TextDecoder,[`unpkg`,`com`].join(`.`),[`cdn`,`jsdelivr`,`net`].join(`.`),[`registry`,`npmjs`,`org`].join(`.`);function n(e,t){if(typeof t!=`string`||!/^\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?$/.test(t))throw Error(`${e} must use an exact semver version in package.json`);return t}const r={EBADF:8,EEXIST:20,EINVAL:28,EIO:29,EISDIR:31,ENOENT:44,ENOTDIR:54,ENOTEMPTY:55,EPERM:63},i=16877;async function a(e){let t=new Map;t.set(``,{kind:`directory`,dirHandle:e});async function n(e,r){let i=e;for await(let[e,a]of i){let i=r===``?e:`${r}/${e}`;if(a.kind===`directory`)t.set(i,{kind:`directory`,dirHandle:a}),await n(a,i);else{let e=a,n=await e.getFile();t.set(i,{kind:`file`,fileHandle:e,size:n.size,mtime:n.lastModified})}}}return await n(e,``),{entries:t}}function o(e,t){return e===``?t:`${e}/${t}`}function s(e,t){return{getattr(t){let n=e.isDir(t.mode),r=e.isLink(t.mode)?t.opfs.linkTarget?.length??0:n?4096:t.opfs.size,i=new Date(t.opfs.mtime||t.timestamp);return{dev:1,ino:t.id,mode:t.mode,nlink:1,uid:0,gid:0,rdev:0,size:r,atime:i,mtime:i,ctime:i,blksize:4096,blocks:Math.ceil(r/4096)}},setattr(t,n){if(n.mode!==void 0&&(t.mode=t.mode&61440|n.mode&-61441),n.size!==void 0&&e.isFile(t.mode)){let e=n.size;t.opfs.size=e;let r=e;f(t.mount,async()=>{if(t.opfs.size>r)return;let n=await _(t),i=t.mount.opts.sahProvider.acquire(t.opfs.relPath,n);try{i.truncate(e),i.flush()}finally{i.close(),t.mount.opts.sahProvider.release(t.opfs.relPath)}})}if(n.mtime!==void 0){let e=n.mtime.getTime();t.opfs.mtime=e,t.timestamp=e}},lookup(t,n){let i=t.opfs.children?.get(n);if(!i)throw new e.ErrnoError(r.ENOENT);return i},mknod(n,i,a,o){if(n.opfs.children?.has(i))throw new e.ErrnoError(r.EEXIST);let s=t.createNode(n,i,a,o);return n.opfs.children?.set(i,s),e.isDir(a)?f(n.mount,async()=>{let e=await(await g(n)).getDirectoryHandle(i,{create:!0});s.opfs.dirHandle=e}):e.isFile(a)&&f(n.mount,async()=>{let e=await(await g(n)).getFileHandle(i,{create:!0});s.opfs.fileHandle=e}),s},rename(t,n,i){let a=t.parent,s=t.name;if(!(s===i&&a===n)){if(n.opfs.children?.has(i))throw new e.ErrnoError(r.EEXIST);a.opfs.children?.delete(s),n.opfs.children?.set(i,t),t.name=i,t.parent=n,v(t,o(n.opfs.relPath,i)),e.isFile(t.mode)?f(t.mount,()=>y(t,a,s,n,i)):e.isDir(t.mode)&&f(t.mount,()=>b(t,a,s,n,i))}},unlink(t,n){let i=t.opfs.children?.get(n);if(!i)throw new e.ErrnoError(r.ENOENT);if(e.isDir(i.mode))throw new e.ErrnoError(r.EISDIR);t.opfs.children?.delete(n),e.isFile(i.mode)&&f(t.mount,async()=>{try{t.mount.opts.sahProvider.release(i.opfs.relPath)}catch{}await(await g(t)).removeEntry(n)})},rmdir(t,n){let i=t.opfs.children?.get(n);if(!i)throw new e.ErrnoError(r.ENOENT);if(!e.isDir(i.mode))throw new e.ErrnoError(r.ENOTDIR);if((i.opfs.children?.size??0)>0)throw new e.ErrnoError(r.ENOTEMPTY);t.opfs.children?.delete(n),f(t.mount,async()=>{await(await g(t)).removeEntry(n)})},readdir(t){if(!e.isDir(t.mode))throw new e.ErrnoError(r.ENOTDIR);let n=[`.`,`..`];for(let e of t.opfs.children?.keys()??[])n.push(e);return n},symlink(n,i,a){if(n.opfs.children?.has(i))throw new e.ErrnoError(r.EEXIST);let o=t.createNode(n,i,41471,0);return o.opfs.linkTarget=a,n.opfs.children?.set(i,o),o},readlink(t){if(!e.isLink(t.mode))throw new e.ErrnoError(r.EINVAL);return t.opfs.linkTarget??``}}}function c(e){return{open(t){let n=t.node;if(e.isDir(n.mode)||!e.isFile(n.mode))return;let r=n.mount.opts.sahProvider.acquire(n.opfs.relPath,n.opfs.fileHandle);t.sah=r,t.flags!==void 0&&t.flags&512?(r.truncate(0),n.opfs.size=0):n.opfs.size=r.getSize()},close(e){let t=e.sah;if(t)try{t.flush()}finally{t.close(),e.node.mount.opts.sahProvider.release(e.node.opfs.relPath),e.sah=void 0}},read(t,n,i,a,o){let s=t.sah;if(!s)throw new e.ErrnoError(r.EBADF);let c=new Uint8Array(n.buffer,n.byteOffset+i,a);return s.read(c,{at:o})},write(t,n,i,a,o){let s=t.sah;if(!s)throw new e.ErrnoError(r.EBADF);let c=new Uint8Array(n.buffer,n.byteOffset+i,a),l=s.write(c,{at:o}),u=Math.max(t.node.opfs.size,o+l);return t.node.opfs.size=u,t.node.opfs.mtime=Date.now(),t.node.timestamp=t.node.opfs.mtime,l},llseek(t,n,i){let a=n;if(i===1)a=t.position+n;else if(i===2){let e=t.sah;a=(e?e.getSize():t.node.opfs.size)+n}if(a<0)throw new e.ErrnoError(r.EINVAL);return t.position=a,a}}}function l(e,t,n,a){for(let[o,s]of a.entries){if(o===``)continue;let a=o.split(`/`),c=n;for(let t=0;t<a.length-1;t++){let n=a[t],i=c.opfs.children?.get(n);if(!i)throw new e.ErrnoError(r.EIO);c=i}let l=a[a.length-1];if(s.kind===`directory`){let e=t.createNode(c,l,i,0);e.opfs.dirHandle=s.dirHandle,e.opfs.children=new Map,c.opfs.children?.set(l,e)}else{let e=t.createNode(c,l,33188,0);e.opfs.fileHandle=s.fileHandle,e.opfs.size=s.size,e.opfs.mtime=s.mtime,e.timestamp=s.mtime,c.opfs.children?.set(l,e)}}}function u(e){let t={mount(n){let{prewalk:a}=n.opts,o=a.entries.get(``);if(o?.kind!==`directory`)throw new e.ErrnoError(r.EINVAL);let s=t.createNode(null,`/`,i,0);return s.mount=n,s.opfs.dirHandle=o.dirHandle,s.opfs.children=new Map,l(e,t,s,a),s},createNode(n,i,a,s=0){if(!e.isDir(a)&&!e.isFile(a)&&!e.isLink(a))throw new e.ErrnoError(r.EINVAL);let c=n===null?``:o(n.opfs?.relPath??``,i),l=e.createNode(n,i,a,s);return l.node_ops=t.node_ops,l.stream_ops=t.stream_ops,l.timestamp=Date.now(),n!==null&&(l.mount=n.mount),l.opfs={relPath:c,size:0,mtime:l.timestamp},e.isDir(a)&&(l.opfs.children=new Map),l},node_ops:void 0,stream_ops:void 0};return t.node_ops=s(e,t),t.stream_ops=c(e),t}const d=new WeakMap;function f(e,t){let n=(d.get(e)??Promise.resolve()).then(t,t);d.set(e,n),e.opts.flush||(e.opts.flush=()=>d.get(e)??Promise.resolve())}async function p(e){await(d.get(e)??Promise.resolve())}var m=class{backing;onClose;constructor(e,t){this.backing=e,this.onClose=t}read(e,t){let n=t?.at??0,r=new Uint8Array(e.buffer,e.byteOffset,e.byteLength),i=Math.min(this.backing.data.length,n+r.byteLength),a=Math.max(0,i-n);return r.set(this.backing.data.subarray(n,n+a),0),a}write(e,t){let n=t?.at??0,r=new Uint8Array(e.buffer,e.byteOffset,e.byteLength),i=n+r.byteLength;if(i>this.backing.data.length){let e=new Uint8Array(i);e.set(this.backing.data),this.backing.data=e}return this.backing.data.set(r,n),this.backing.dirty=!0,r.byteLength}truncate(e){if(e===this.backing.data.length)return;let t=new Uint8Array(e);t.set(this.backing.data.subarray(0,Math.min(e,this.backing.data.length))),this.backing.data=t,this.backing.dirty=!0}getSize(){return this.backing.data.length}flush(){}close(){this.onClose()}};function h(){let e=new Map,t=new Set,n=new Set;return{provider:{acquire(r,i){if(n.has(r))throw Error(`OPFS SAH lease conflict: ${r}`);n.add(r);let a=e.get(r);return a||(a={data:new Uint8Array,dirty:!0},e.set(r,a),t.add(r)),new m(a,()=>{n.delete(r),a.dirty&&t.add(r)})},release(e){n.delete(e)}},async preload(t){for(let[n,r]of t.entries){if(r.kind!==`file`)continue;let t=await r.fileHandle.getFile(),i=new Uint8Array(await t.arrayBuffer());e.set(n,{data:i,dirty:!1})}},async flush(t){for(let[n,r]of e){if(!r.dirty)continue;let e=n.split(`/`),i=t;for(let t of e.slice(0,-1))i=await i.getDirectoryHandle(t,{create:!0});let a=await(await i.getFileHandle(e[e.length-1],{create:!0})).createWritable(),o=new ArrayBuffer(r.data.byteLength);new Uint8Array(o).set(r.data),await a.write(o),await a.close(),r.dirty=!1}},getDirtyPaths(){return[...t]}}}async function g(e){if(e.opfs.dirHandle)return e.opfs.dirHandle;let t=e.opfs.relPath.split(`/`).filter(Boolean),n=e.mount.root.opfs.dirHandle;for(let e of t)n=await n.getDirectoryHandle(e,{create:!0});return e.opfs.dirHandle=n,n}async function _(e){if(e.opfs.fileHandle)return e.opfs.fileHandle;let t=await(await g(e.parent)).getFileHandle(e.name,{create:!0});return e.opfs.fileHandle=t,t}function v(e,t){if(e.opfs.relPath=t,e.opfs.children)for(let[n,r]of e.opfs.children)v(r,o(t,n))}async function y(e,t,n,r,i){let a=await g(t),o=await g(r),s=await(await a.getFileHandle(n)).getFile(),c=new Uint8Array(await s.arrayBuffer()),l=await o.getFileHandle(i,{create:!0}),u=e.mount.opts.sahProvider.acquire(e.opfs.relPath,l);try{u.truncate(0),c.byteLength>0&&u.write(c,{at:0}),u.flush()}finally{u.close(),e.mount.opts.sahProvider.release(e.opfs.relPath)}await a.removeEntry(n),e.opfs.fileHandle=l}async function b(e,t,n,r,i){let a=await g(t),o=await g(r),s=await a.getDirectoryHandle(n),c=await o.getDirectoryHandle(i,{create:!0});await x(s,c),await a.removeEntry(n,{recursive:!0}),e.opfs.dirHandle=c}async function x(e,t){let n=e;for await(let[e,r]of n)if(r.kind===`directory`)await x(r,await t.getDirectoryHandle(e,{create:!0}));else{let n=await r.getFile(),i=new Uint8Array(await n.arrayBuffer()),a=await(await t.getFileHandle(e,{create:!0})).createWritable();await a.write(i),await a.close()}}function S(e){return`slicc: synchronous access to mounted path '${e}' is not supported. Use the async slicc.fs module (e.g. \`await slicc.fs.read_text('${e}')\` or \`await slicc.fs.listdir('${e}')\`), or copy the file into the VFS first (\`await slicc.fs.read_bytes('${e}/<file>')\` then write it under /tmp).`}function C(e,t){let n=new e.ErrnoError(r.EIO);return n.message=S(t),n}function w(e){let t={mount(n){let r=e.createNode(null,`/`,16877,0);return r.node_ops=t.node_ops,r.stream_ops=t.stream_ops,r.mount=n,r},createNode(n,r,i,a=0){let o=e.createNode(n,r,i,a);return o.node_ops=t.node_ops,o.stream_ops=t.stream_ops,n!==null&&(o.mount=n.mount),o},node_ops:{getattr:e=>{throw C(n(e),T(e))},setattr:e=>{throw C(n(e),T(e))},lookup:e=>{throw C(n(e),T(e))},mknod:e=>{throw C(n(e),T(e))},rename:e=>{throw C(n(e),T(e))},unlink:e=>{throw C(n(e),T(e))},rmdir:e=>{throw C(n(e),T(e))},readdir:e=>{throw C(n(e),T(e))},symlink:e=>{throw C(n(e),T(e))},readlink:e=>{throw C(n(e),T(e))}},stream_ops:{open:e=>{throw C(n(e.node),T(e.node))},close:()=>{},read:e=>{throw C(n(e.node),T(e.node))},write:e=>{throw C(n(e.node),T(e.node))},llseek:e=>{throw C(n(e.node),T(e.node))}}};function n(t){return e}return t}function T(e){let t=e.mount;return t?.opts?.mountPath??t?.mountpoint??`<unknown mount>`}function E(e,t){let n=e.MOUNT_BOMB_FS;return n||(n=w(t),e.MOUNT_BOMB_FS=n),n}function D(e,t,n=()=>{}){if(t.length===0)return;let r=E(e.filesystems,e);for(let i of t)try{try{e.stat(i)}catch{e.mkdirTree(i)}e.mount(r,{mountPath:i},i)}catch(e){n(`mount '${i}': bomb overlay failed: ${e instanceof Error?e.message:String(e)}`)}}function O(e){return S(e)}async function k(e,t){if(t.length===0)return;let n={};for(let e of t)n[e]=O(e);let r=JSON.stringify({prefixes:t,messages:n});e.globals.set(`__slicc_mount_data`,r);try{await e.runPythonAsync(`
|
|
2
|
-
import builtins as _slicc_builtins
|
|
3
|
-
import io as _slicc_io
|
|
4
|
-
import os as _slicc_os
|
|
5
|
-
import os.path as _slicc_osp
|
|
6
|
-
import errno as _slicc_errno
|
|
7
|
-
import json as _slicc_json
|
|
8
|
-
|
|
9
|
-
_slicc_data = _slicc_json.loads(__slicc_mount_data)
|
|
10
|
-
_slicc_mount_prefixes = list(_slicc_data['prefixes'])
|
|
11
|
-
_slicc_mount_messages = dict(_slicc_data['messages'])
|
|
12
|
-
del _slicc_data
|
|
13
|
-
|
|
14
|
-
def _slicc_match_mount_prefix(path):
|
|
15
|
-
if path is None:
|
|
16
|
-
return None
|
|
17
|
-
if isinstance(path, int):
|
|
18
|
-
return None
|
|
19
|
-
try:
|
|
20
|
-
s = _slicc_os.fspath(path)
|
|
21
|
-
except TypeError:
|
|
22
|
-
return None
|
|
23
|
-
if isinstance(s, bytes):
|
|
24
|
-
try:
|
|
25
|
-
s = s.decode('utf-8', 'surrogateescape')
|
|
26
|
-
except Exception:
|
|
27
|
-
return None
|
|
28
|
-
if not isinstance(s, str):
|
|
29
|
-
return None
|
|
30
|
-
try:
|
|
31
|
-
resolved = _slicc_osp.abspath(s)
|
|
32
|
-
except Exception:
|
|
33
|
-
return None
|
|
34
|
-
for prefix in _slicc_mount_prefixes:
|
|
35
|
-
if resolved == prefix or resolved.startswith(prefix + '/'):
|
|
36
|
-
return prefix
|
|
37
|
-
return None
|
|
38
|
-
|
|
39
|
-
def _slicc_raise_mount_guard(path, prefix):
|
|
40
|
-
msg = _slicc_mount_messages.get(prefix)
|
|
41
|
-
if not msg:
|
|
42
|
-
msg = "slicc: synchronous access to mounted path '" + prefix + "' is not supported; use the async slicc.fs module."
|
|
43
|
-
raise OSError(_slicc_errno.EIO, msg, str(path))
|
|
44
|
-
|
|
45
|
-
_slicc_orig_builtins_open = _slicc_builtins.open
|
|
46
|
-
_slicc_orig_io_open = _slicc_io.open
|
|
47
|
-
_slicc_orig_listdir = _slicc_os.listdir
|
|
48
|
-
_slicc_orig_scandir = _slicc_os.scandir
|
|
49
|
-
_slicc_orig_stat = _slicc_os.stat
|
|
50
|
-
_slicc_orig_lstat = _slicc_os.lstat
|
|
51
|
-
_slicc_orig_mkdir = _slicc_os.mkdir
|
|
52
|
-
_slicc_orig_remove = _slicc_os.remove
|
|
53
|
-
_slicc_orig_rename = _slicc_os.rename
|
|
54
|
-
|
|
55
|
-
def _slicc_guarded_builtins_open(file, *args, **kwargs):
|
|
56
|
-
if isinstance(file, int):
|
|
57
|
-
return _slicc_orig_builtins_open(file, *args, **kwargs)
|
|
58
|
-
prefix = _slicc_match_mount_prefix(file)
|
|
59
|
-
if prefix is not None:
|
|
60
|
-
_slicc_raise_mount_guard(file, prefix)
|
|
61
|
-
return _slicc_orig_builtins_open(file, *args, **kwargs)
|
|
62
|
-
|
|
63
|
-
def _slicc_guarded_io_open(file, *args, **kwargs):
|
|
64
|
-
if isinstance(file, int):
|
|
65
|
-
return _slicc_orig_io_open(file, *args, **kwargs)
|
|
66
|
-
prefix = _slicc_match_mount_prefix(file)
|
|
67
|
-
if prefix is not None:
|
|
68
|
-
_slicc_raise_mount_guard(file, prefix)
|
|
69
|
-
return _slicc_orig_io_open(file, *args, **kwargs)
|
|
70
|
-
|
|
71
|
-
def _slicc_make_path_guard(orig):
|
|
72
|
-
def _guarded(path, *args, **kwargs):
|
|
73
|
-
prefix = _slicc_match_mount_prefix(path)
|
|
74
|
-
if prefix is not None:
|
|
75
|
-
_slicc_raise_mount_guard(path, prefix)
|
|
76
|
-
return orig(path, *args, **kwargs)
|
|
77
|
-
return _guarded
|
|
78
|
-
|
|
79
|
-
def _slicc_guarded_rename(src, dst, *args, **kwargs):
|
|
80
|
-
for p in (src, dst):
|
|
81
|
-
prefix = _slicc_match_mount_prefix(p)
|
|
82
|
-
if prefix is not None:
|
|
83
|
-
_slicc_raise_mount_guard(p, prefix)
|
|
84
|
-
return _slicc_orig_rename(src, dst, *args, **kwargs)
|
|
85
|
-
|
|
86
|
-
_slicc_builtins.open = _slicc_guarded_builtins_open
|
|
87
|
-
_slicc_io.open = _slicc_guarded_io_open
|
|
88
|
-
_slicc_os.listdir = _slicc_make_path_guard(_slicc_orig_listdir)
|
|
89
|
-
_slicc_os.scandir = _slicc_make_path_guard(_slicc_orig_scandir)
|
|
90
|
-
_slicc_os.stat = _slicc_make_path_guard(_slicc_orig_stat)
|
|
91
|
-
_slicc_os.lstat = _slicc_make_path_guard(_slicc_orig_lstat)
|
|
92
|
-
_slicc_os.mkdir = _slicc_make_path_guard(_slicc_orig_mkdir)
|
|
93
|
-
_slicc_os.remove = _slicc_make_path_guard(_slicc_orig_remove)
|
|
94
|
-
_slicc_os.rename = _slicc_guarded_rename
|
|
95
|
-
`)}finally{try{e.runPython(`del __slicc_mount_data`)}catch{}}}var A=class{port;nextId=1;pending=new Map;eventSubscribers=new Map;handler;disposed=!1;constructor(e){this.port=e,this.handler=e=>{let t=e.data;if(t?.type===`realm-rpc-res`){let t=e.data,n=this.pending.get(t.id);if(!n)return;this.pending.delete(t.id),typeof t.error==`string`?n.reject(Error(t.error)):n.resolve(t.result);return}if(t?.type===`realm-event`){let t=e.data,n=this.eventSubscribers.get(t.channel);if(!n)return;for(let e of[...n])try{e(t.payload)}catch{}}},e.addEventListener(`message`,this.handler),e.start?.()}get pendingCount(){return this.pending.size}call(e,t,n=[]){if(this.disposed)return Promise.reject(Error(`realm-rpc: client disposed`));let r=this.nextId++,i={type:`realm-rpc-req`,id:r,channel:e,op:t,args:n};return new Promise((e,t)=>{this.pending.set(r,{resolve:e,reject:t}),this.port.postMessage(i)})}onEvent(e,t){if(this.disposed)return()=>{};let n=this.eventSubscribers.get(e);return n||(n=new Set,this.eventSubscribers.set(e,n)),n.add(t),()=>{let n=this.eventSubscribers.get(e);n&&(n.delete(t),n.size===0&&this.eventSubscribers.delete(e))}}dispose(){if(this.disposed)return;this.disposed=!0,this.port.removeEventListener(`message`,this.handler);let e=Error(`realm-rpc: client disposed`);for(let t of this.pending.values())t.reject(e);this.pending.clear(),this.eventSubscribers.clear()}};function j(e){return{listdir(t){return e.call(`vfs`,`readDir`,[t])},async readBytes(t){let n=await e.call(`vfs`,`readFileBinary`,[t]);return n instanceof Uint8Array?n:new Uint8Array(n)},async writeBytes(t,n){await e.call(`vfs`,`writeFileBinary`,[t,n])},stat(t){return e.call(`vfs`,`stat`,[t])},exists(t){return e.call(`vfs`,`exists`,[t])},async mkdir(t){await e.call(`vfs`,`mkdir`,[t])},async remove(t){await e.call(`vfs`,`rm`,[t])}}}async function M(e,t){let n=j(t);e.registerJsModule(`_slicc_fs_js`,n),await e.runPythonAsync(`
|
|
96
|
-
import sys
|
|
97
|
-
import types
|
|
98
|
-
import js
|
|
99
|
-
|
|
100
|
-
def _build_slicc_module(_bridge):
|
|
101
|
-
fs_module = types.ModuleType("slicc.fs")
|
|
102
|
-
|
|
103
|
-
async def listdir(path):
|
|
104
|
-
result = await _bridge.listdir(path)
|
|
105
|
-
return [str(name) for name in result.to_py()] if hasattr(result, "to_py") else [str(name) for name in result]
|
|
106
|
-
|
|
107
|
-
async def read_bytes(path):
|
|
108
|
-
result = await _bridge.readBytes(path)
|
|
109
|
-
# Pyodide returns JS Uint8Array as memoryview; coerce to bytes.
|
|
110
|
-
if hasattr(result, "to_bytes"):
|
|
111
|
-
return result.to_bytes()
|
|
112
|
-
if isinstance(result, memoryview):
|
|
113
|
-
return bytes(result)
|
|
114
|
-
return bytes(result)
|
|
115
|
-
|
|
116
|
-
async def read_text(path, encoding="utf-8"):
|
|
117
|
-
data = await read_bytes(path)
|
|
118
|
-
return data.decode(encoding)
|
|
119
|
-
|
|
120
|
-
async def write_bytes(path, data):
|
|
121
|
-
if isinstance(data, str):
|
|
122
|
-
raise TypeError("write_bytes expects bytes-like; use write_text for str")
|
|
123
|
-
if isinstance(data, (bytes, bytearray, memoryview)):
|
|
124
|
-
payload = bytes(data)
|
|
125
|
-
else:
|
|
126
|
-
payload = bytes(data)
|
|
127
|
-
# Convert Python bytes to a real JS Uint8Array before crossing
|
|
128
|
-
# the realm RPC boundary. The bridge call ultimately hits
|
|
129
|
-
# \`port.postMessage\` (see realm-rpc.ts), which structured-
|
|
130
|
-
# clones its argument; a Python \`bytes\` would arrive as a
|
|
131
|
-
# PyProxy and trigger DataCloneError. \`js.Uint8Array.new\`
|
|
132
|
-
# copies the buffer into a JS typed array that clones cleanly.
|
|
133
|
-
await _bridge.writeBytes(path, js.Uint8Array.new(payload))
|
|
134
|
-
|
|
135
|
-
async def write_text(path, text, encoding="utf-8"):
|
|
136
|
-
if not isinstance(text, str):
|
|
137
|
-
raise TypeError("write_text expects str; use write_bytes for bytes")
|
|
138
|
-
await write_bytes(path, text.encode(encoding))
|
|
139
|
-
|
|
140
|
-
async def stat(path):
|
|
141
|
-
result = await _bridge.stat(path)
|
|
142
|
-
obj = result.to_py() if hasattr(result, "to_py") else result
|
|
143
|
-
if isinstance(obj, dict):
|
|
144
|
-
return {
|
|
145
|
-
"isDirectory": bool(obj.get("isDirectory", False)),
|
|
146
|
-
"isFile": bool(obj.get("isFile", False)),
|
|
147
|
-
"size": int(obj.get("size", 0)),
|
|
148
|
-
}
|
|
149
|
-
return {
|
|
150
|
-
"isDirectory": bool(getattr(obj, "isDirectory", False)),
|
|
151
|
-
"isFile": bool(getattr(obj, "isFile", False)),
|
|
152
|
-
"size": int(getattr(obj, "size", 0)),
|
|
153
|
-
}
|
|
154
|
-
|
|
155
|
-
async def exists(path):
|
|
156
|
-
result = await _bridge.exists(path)
|
|
157
|
-
return bool(result)
|
|
158
|
-
|
|
159
|
-
async def mkdir(path, parents=False):
|
|
160
|
-
# The underlying vfs.mkdir is recursive ({recursive: true} in
|
|
161
|
-
# realm-host.ts), matching parents=True semantics. With
|
|
162
|
-
# parents=False we raise FileExistsError when the target
|
|
163
|
-
# already exists, mirroring pathlib.Path.mkdir(parents=False).
|
|
164
|
-
if not parents:
|
|
165
|
-
try:
|
|
166
|
-
already = await exists(path)
|
|
167
|
-
except Exception:
|
|
168
|
-
already = False
|
|
169
|
-
if already:
|
|
170
|
-
raise FileExistsError(path)
|
|
171
|
-
await _bridge.mkdir(path)
|
|
172
|
-
|
|
173
|
-
async def remove(path):
|
|
174
|
-
await _bridge.remove(path)
|
|
175
|
-
|
|
176
|
-
async def walk(path):
|
|
177
|
-
results = []
|
|
178
|
-
async def _visit(current):
|
|
179
|
-
names = await listdir(current)
|
|
180
|
-
dirnames = []
|
|
181
|
-
filenames = []
|
|
182
|
-
for name in names:
|
|
183
|
-
child = current + "/" + name if current != "/" else "/" + name
|
|
184
|
-
try:
|
|
185
|
-
st = await stat(child)
|
|
186
|
-
except Exception:
|
|
187
|
-
continue
|
|
188
|
-
if st["isDirectory"]:
|
|
189
|
-
dirnames.append(name)
|
|
190
|
-
elif st["isFile"]:
|
|
191
|
-
filenames.append(name)
|
|
192
|
-
results.append((current, dirnames, filenames))
|
|
193
|
-
for d in list(dirnames):
|
|
194
|
-
child = current + "/" + d if current != "/" else "/" + d
|
|
195
|
-
await _visit(child)
|
|
196
|
-
await _visit(path)
|
|
197
|
-
return results
|
|
198
|
-
|
|
199
|
-
fs_module.listdir = listdir
|
|
200
|
-
fs_module.read_bytes = read_bytes
|
|
201
|
-
fs_module.read_text = read_text
|
|
202
|
-
fs_module.write_bytes = write_bytes
|
|
203
|
-
fs_module.write_text = write_text
|
|
204
|
-
fs_module.stat = stat
|
|
205
|
-
fs_module.exists = exists
|
|
206
|
-
fs_module.mkdir = mkdir
|
|
207
|
-
fs_module.remove = remove
|
|
208
|
-
fs_module.walk = walk
|
|
209
|
-
|
|
210
|
-
slicc_module = types.ModuleType("slicc")
|
|
211
|
-
slicc_module.fs = fs_module
|
|
212
|
-
sys.modules["slicc"] = slicc_module
|
|
213
|
-
sys.modules["slicc.fs"] = fs_module
|
|
214
|
-
return slicc_module
|
|
215
|
-
|
|
216
|
-
import _slicc_fs_js as _bridge
|
|
217
|
-
_build_slicc_module(_bridge)
|
|
218
|
-
del _build_slicc_module
|
|
219
|
-
del _bridge
|
|
220
|
-
`)}const N=n(`pyodide`,`0.29.4`);`${N}`;const P=`pyodide is not installed in node_modules: run \`ipk add pyodide@${N}\` (no network fallback)`,F={asmJs:`pyodide.asm.js`,asmWasm:`pyodide.asm.wasm`,stdlibZip:`python_stdlib.zip`,lockJson:`pyodide-lock.json`};async function I(e,t){try{let[n,r,i,a]=await Promise.all([e.call(`vfs`,`readFile`,[`${t}/${F.asmJs}`]),e.call(`vfs`,`readFileBinary`,[`${t}/${F.asmWasm}`]),e.call(`vfs`,`readFileBinary`,[`${t}/${F.stdlibZip}`]),e.call(`vfs`,`readFile`,[`${t}/${F.lockJson}`])]);return{asmJsSource:n,asmWasmBytes:r instanceof Uint8Array?r:new Uint8Array(r),stdlibBytes:i instanceof Uint8Array?i:new Uint8Array(i),lockJsonString:a}}catch{return null}}function L(e,t){let n=e+F.asmWasm,r=globalThis.fetch,i=!0,a=(e,i)=>(typeof e==`string`?e:e instanceof URL?e.href:e.url)===n?Promise.resolve(new Response(t,{headers:{"Content-Type":`application/wasm`}})):r(e,i);return globalThis.fetch=a,{restore:()=>{i&&(i=!1,globalThis.fetch===a&&(globalThis.fetch=r))}}}async function R(e,t,n){let r=await I(n,t);if(!r)throw Error(P);let i=URL.createObjectURL(new Blob([r.asmJsSource],{type:`text/javascript`})),a=URL.createObjectURL(new Blob([r.stdlibBytes],{type:`application/zip`})),o=`slicc-pyodide://local/${crypto.randomUUID()}/`,s=L(o,r.asmWasmBytes);try{return await import(i),await e.loadPyodide({indexURL:o,lockFileContents:r.lockJsonString,stdLibURL:a,fullStdLib:!1})}finally{s.restore(),URL.revokeObjectURL(i),URL.revokeObjectURL(a)}}async function z(e,t,n=()=>import(`./pyodide-M7UA50Oh.js`)){let r=[],i=[],a=new A(t),o;try{let t=await n();o=e.pyodideAssetRoot?await R(t,e.pyodideAssetRoot,a):await t.loadPyodide({indexURL:e.pyodideIndexURL,fullStdLib:!1})}catch(e){a.dispose();let n={type:`realm-error`,message:`loadPyodide: ${e instanceof Error?e.message:String(e)}`};t.postMessage(n);return}let s=e=>{i.push(`Warning: ${e}\n`)},c=await B(o,e,s);await V(o,e,s),await H(o,a,s);try{o.FS.chdir(e.cwd)}catch{}U(o,e,r,i);let l=await W(o,i);await G(c,e,a,s),a.dispose();let u={type:`realm-done`,stdout:r.join(``),stderr:i.join(``),exitCode:l};t.postMessage(u)}async function B(e,t,n){if(t.opfsMountDbName===void 0)return[];let r=t.pyodideMountDirs??[t.cwd,`/tmp`],i=t.mountPoints??[],a=new Set(i.map(e=>e.path));try{return(await Y(e,r,t.opfsMountDbName,n,{skipMountPaths:a})).mounts}catch(e){return n(`VFS→Pyodide OPFS mount failed: ${q(e)}`),[]}}async function V(e,t,n){let r=t.mountPoints??[];if(r.length!==0){try{D(e.FS,r.map(e=>e.path),n)}catch(e){n(`bomb overlay install failed: ${q(e)}`)}try{await k(e,r.map(e=>e.path))}catch(e){n(`python mount guard install failed: ${q(e)}`)}}}async function H(e,t,n){try{await M(e,t)}catch(e){n(`slicc.fs registration failed: ${q(e)}`)}}function U(e,t,n,r){e.setStdout({batched:e=>n.push(e+`
|
|
221
|
-
`)}),e.setStderr({batched:e=>r.push(e+`
|
|
222
|
-
`)});let i=!1;e.setStdin({stdin:()=>i||!t.stdin?null:(i=!0,t.stdin)}),e.globals.set(`__slicc_code`,t.code),e.globals.set(`__slicc_filename`,t.filename),e.globals.set(`__slicc_argv`,t.argv)}async function W(e,t){let n;try{await e.runPythonAsync(`
|
|
223
|
-
import sys
|
|
224
|
-
import traceback
|
|
225
|
-
|
|
226
|
-
__slicc_exit_code = 0
|
|
227
|
-
try:
|
|
228
|
-
sys.argv = __slicc_argv
|
|
229
|
-
exec(compile(__slicc_code, __slicc_filename, "exec"), {"__name__": "__main__", "__file__": __slicc_filename})
|
|
230
|
-
except SystemExit as exc:
|
|
231
|
-
code = exc.code
|
|
232
|
-
if code is None:
|
|
233
|
-
__slicc_exit_code = 0
|
|
234
|
-
elif isinstance(code, int):
|
|
235
|
-
__slicc_exit_code = code
|
|
236
|
-
else:
|
|
237
|
-
print(code, file=sys.stderr)
|
|
238
|
-
__slicc_exit_code = 1
|
|
239
|
-
except BaseException:
|
|
240
|
-
traceback.print_exc()
|
|
241
|
-
__slicc_exit_code = 1
|
|
242
|
-
`);let t=e.globals.get(`__slicc_exit_code`);n=typeof t==`number`?t:Number(t??1)}catch(e){let r=e instanceof Error?e.message:String(e);t.push(`${r}\n`),n=1}try{e.runPython(`del __slicc_code, __slicc_filename, __slicc_argv, __slicc_exit_code`)}catch{}return n}async function G(e,t,n,r){if(t.opfsMountDbName!==void 0){try{await Q(e)}catch(e){r(`Pyodide→VFS OPFS flush failed: ${e instanceof Error?e.message:String(e)}`)}try{await $(e,n)}catch(e){r(`Pyodide→kernel VFS invalidation failed: ${q(e)}`)}}}const K=new Set([`dev`,`proc`,`lib`,`tmp`,`home`]);function q(e){if(e&&typeof e==`object`){let t=e,n=typeof t.errno==`number`,r=typeof t.code==`string`;if(n||r){let e=typeof t.name==`string`&&t.name?t.name:`Error`,i=typeof t.message==`string`?t.message:``,a=[];n&&a.push(`errno ${t.errno}`),r&&a.push(t.code);let o=a.length?` (${a.join(`, `)})`:``;return i?`${e}: ${i}${o}`:`${e}${o}`}}return e instanceof Error?e.message:String(e)}function J(e){let t=e.FS.filesystems,n=t.OPFS_SYNC_FS;return n||(n=u(e.FS),t.OPFS_SYNC_FS=n),n}async function Y(e,t,n,r=()=>{},i={}){let a=[],o=i.skipMountPaths??new Set,s=navigator.storage;if(!s?.getDirectory)return r(`VFS→Pyodide OPFS mount skipped: navigator.storage.getDirectory unavailable`),{mounts:a};let c;try{c=await s.getDirectory()}catch(e){return r(`VFS→Pyodide OPFS mount: getDirectory() failed: ${q(e)}`),{mounts:a}}let l;try{l=await c.getDirectoryHandle(n,{create:!0})}catch(e){return r(`VFS→Pyodide OPFS mount: opening '${n}' failed: ${q(e)}`),{mounts:a}}let u=J(e);for(let n of t){if(n===`/`){await X(e,u,l,o,a,r);continue}if(!o.has(n))try{let t=l;for(let e of n.split(`/`).filter(Boolean))t=await t.getDirectoryHandle(e,{create:!0});await Z(e,u,n,t,a)}catch(e){r(`VFS→Pyodide OPFS mount '${n}' failed: ${q(e)}`)}}return{mounts:a}}async function X(e,t,n,r,i,a){try{let o=n;for await(let[n,s]of o){if(s.kind!==`directory`||K.has(n))continue;let o=`/${n}`;if(!r.has(o))try{await Z(e,t,o,s,i)}catch(e){a(`VFS→Pyodide OPFS mount '${o}' failed: ${q(e)}`)}}}catch(e){a(`VFS→Pyodide OPFS mount '/' failed: ${q(e)}`)}}async function Z(e,t,n,r,i){try{e.FS.stat(n)}catch{e.FS.mkdirTree(n)}let o=await a(r),s=h();await s.preload(o);let c={rootHandle:r,prewalk:o,sahProvider:s.provider},l=e.FS.mount(t,c,n),u=l?.mount??{opts:c,mountpoint:n,root:l};i.push({pyPath:n,mount:u,rootHandle:r,flushBuffers:s.flush,getDirtyPaths:s.getDirtyPaths})}async function Q(e){for(let t of e)await p(t.mount),await t.flushBuffers(t.rootHandle)}async function $(e,t){let n=[];for(let t of e)for(let e of t.getDirtyPaths())n.push(t.pyPath===`/`?`/${e}`:`${t.pyPath}/${e}`);n.length>0&&await t.call(`vfs`,`invalidatePaths`,[n])}const ee={postMessage:(e,t)=>t?self.postMessage(e,t):self.postMessage(e),addEventListener:(e,t)=>self.addEventListener(e,t),removeEventListener:(e,t)=>self.removeEventListener(e,t)};self.addEventListener(`message`,e=>{if(e.data?.type!==`realm-init`)return;let t=e.data;t.kind===`py`&&z(t,ee).catch(e=>{let t={type:`realm-error`,message:e instanceof Error?e.message:String(e)};self.postMessage(t)})});
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import{i as e,r as t}from"./chunk-aKtaBQYM.js";var n=Object.defineProperty,r=(e,t)=>n(e,`name`,{value:t,configurable:!0}),i=(e=>typeof t<`u`?t:typeof Proxy<`u`?new Proxy(e,{get:(e,n)=>(typeof t<`u`?t:e)[n]}):e)(function(e){if(typeof t<`u`)return t.apply(this,arguments);throw Error(`Dynamic require of "`+e+`" is not supported`)}),a=(()=>{for(var e=new Uint8Array(128),t=0;t<64;t++)e[t<26?t+65:t<52?t+71:t<62?t-4:t*4-205]=t;return t=>{for(var n=t.length,r=new Uint8Array((n-(t[n-1]==`=`)-(t[n-2]==`=`))*3/4|0),i=0,a=0;i<n;){var o=e[t.charCodeAt(i++)],s=e[t.charCodeAt(i++)],c=e[t.charCodeAt(i++)],l=e[t.charCodeAt(i++)];r[a++]=o<<2|s>>4,r[a++]=s<<4|c>>2,r[a++]=c<<6|l}return r}})();function o(e){return!isNaN(parseFloat(e))&&isFinite(e)}r(o,`_isNumber`);function s(e){return e.charAt(0).toUpperCase()+e.substring(1)}r(s,`_capitalize`);function c(e){return function(){return this[e]}}r(c,`_getter`);var l=[`isConstructor`,`isEval`,`isNative`,`isToplevel`],u=[`columnNumber`,`lineNumber`],d=[`fileName`,`functionName`,`source`],f=l.concat(u,d,[`args`],[`evalOrigin`]);function p(e){if(e)for(var t=0;t<f.length;t++)e[f[t]]!==void 0&&this[`set`+s(f[t])](e[f[t]])}for(r(p,`StackFrame`),p.prototype={getArgs:r(function(){return this.args},`getArgs`),setArgs:r(function(e){if(Object.prototype.toString.call(e)!==`[object Array]`)throw TypeError(`Args must be an Array`);this.args=e},`setArgs`),getEvalOrigin:r(function(){return this.evalOrigin},`getEvalOrigin`),setEvalOrigin:r(function(e){if(e instanceof p)this.evalOrigin=e;else if(e instanceof Object)this.evalOrigin=new p(e);else throw TypeError(`Eval Origin must be an Object or StackFrame`)},`setEvalOrigin`),toString:r(function(){var e=this.getFileName()||``,t=this.getLineNumber()||``,n=this.getColumnNumber()||``,r=this.getFunctionName()||``;return this.getIsEval()?e?`[eval] (`+e+`:`+t+`:`+n+`)`:`[eval]:`+t+`:`+n:r?r+` (`+e+`:`+t+`:`+n+`)`:e+`:`+t+`:`+n},`toString`)},p.fromString=r(function(e){var t=e.indexOf(`(`),n=e.lastIndexOf(`)`),r=e.substring(0,t),i=e.substring(t+1,n).split(`,`),a=e.substring(n+1);if(a.indexOf(`@`)===0)var o=/@(.+?)(?::(\d+))?(?::(\d+))?$/.exec(a,``),s=o[1],c=o[2],l=o[3];return new p({functionName:r,args:i||void 0,fileName:s,lineNumber:c||void 0,columnNumber:l||void 0})},`StackFrame$$fromString`),m=0;m<l.length;m++)p.prototype[`get`+s(l[m])]=c(l[m]),p.prototype[`set`+s(l[m])]=function(e){return function(t){this[e]=!!t}}(l[m]);var m;for(h=0;h<u.length;h++)p.prototype[`get`+s(u[h])]=c(u[h]),p.prototype[`set`+s(u[h])]=function(e){return function(t){if(!o(t))throw TypeError(e+` must be a Number`);this[e]=Number(t)}}(u[h]);var h;for(g=0;g<d.length;g++)p.prototype[`get`+s(d[g])]=c(d[g]),p.prototype[`set`+s(d[g])]=function(e){return function(t){this[e]=String(t)}}(d[g]);var g,_=p;function v(){var e=/^\s*at .*(\S+:\d+|\(native\))/m,t=/^(eval@)?(\[native code])?$/;return{parse:r(function(t){if(t.stack&&t.stack.match(e))return this.parseV8OrIE(t);if(t.stack)return this.parseFFOrSafari(t);throw Error(`Cannot parse given Error object`)},`ErrorStackParser$$parse`),extractLocation:r(function(e){if(e.indexOf(`:`)===-1)return[e];var t=/(.+?)(?::(\d+))?(?::(\d+))?$/.exec(e.replace(/[()]/g,``));return[t[1],t[2]||void 0,t[3]||void 0]},`ErrorStackParser$$extractLocation`),parseV8OrIE:r(function(t){return t.stack.split(`
|
|
2
|
-
`).filter(function(t){return!!t.match(e)},this).map(function(e){e.indexOf(`(eval `)>-1&&(e=e.replace(/eval code/g,`eval`).replace(/(\(eval at [^()]*)|(,.*$)/g,``));var t=e.replace(/^\s+/,``).replace(/\(eval code/g,`(`).replace(/^.*?\s+/,``),n=t.match(/ (\(.+\)$)/);t=n?t.replace(n[0],``):t;var r=this.extractLocation(n?n[1]:t);return new _({functionName:n&&t||void 0,fileName:[`eval`,`<anonymous>`].indexOf(r[0])>-1?void 0:r[0],lineNumber:r[1],columnNumber:r[2],source:e})},this)},`ErrorStackParser$$parseV8OrIE`),parseFFOrSafari:r(function(e){return e.stack.split(`
|
|
3
|
-
`).filter(function(e){return!e.match(t)},this).map(function(e){if(e.indexOf(` > eval`)>-1&&(e=e.replace(/ line (\d+)(?: > eval line \d+)* > eval:\d+:\d+/g,`:$1`)),e.indexOf(`@`)===-1&&e.indexOf(`:`)===-1)return new _({functionName:e});var t=/((.*".+"[^@]*)?[^@]*)(?:@)/,n=e.match(t),r=n&&n[1]?n[1]:void 0,i=this.extractLocation(e.replace(t,``));return new _({functionName:r,fileName:i[0],lineNumber:i[1],columnNumber:i[2],source:e})},this)},`ErrorStackParser$$parseFFOrSafari`)}}r(v,`ErrorStackParser`);var ee=new v;function y(){return typeof API<`u`&&API!==globalThis.API?API.runtimeEnv:x({IN_BUN:typeof Bun<`u`,IN_DENO:typeof Deno<`u`,IN_NODE:typeof process==`object`&&typeof process.versions==`object`&&typeof process.versions.node==`string`&&!process.browser,IN_SAFARI:typeof navigator==`object`&&typeof navigator.userAgent==`string`&&navigator.userAgent.indexOf(`Chrome`)===-1&&navigator.userAgent.indexOf(`Safari`)>-1,IN_SHELL:typeof read==`function`&&typeof load==`function`})}r(y,`getGlobalRuntimeEnv`);var b=y();function x(e){let t=e.IN_NODE&&typeof module<`u`&&module.exports&&typeof i==`function`&&typeof __dirname==`string`,n=e.IN_NODE&&!t,r=!e.IN_NODE&&!e.IN_DENO&&!e.IN_BUN,a=r&&typeof window<`u`&&typeof window.document<`u`&&typeof document.createElement==`function`&&`sessionStorage`in window&&typeof globalThis.importScripts!=`function`,o=r&&typeof globalThis.WorkerGlobalScope<`u`&&typeof globalThis.self<`u`&&globalThis.self instanceof globalThis.WorkerGlobalScope;return{...e,IN_BROWSER:r,IN_BROWSER_MAIN_THREAD:a,IN_BROWSER_WEB_WORKER:o,IN_NODE_COMMONJS:t,IN_NODE_ESM:n}}r(x,`calculateDerivedFlags`);var S,C,te,ne,w;async function T(){if(!b.IN_NODE||(S=(await import(`./__vite-browser-external-C7iut881.js`).then(t=>e(t.t(),1))).default,ne=await import(`./__vite-browser-external-C7iut881.js`).then(t=>e(t.t(),1)),w=await import(`./__vite-browser-external-C7iut881.js`).then(t=>e(t.t(),1)),te=(await import(`./__vite-browser-external-C7iut881.js`).then(t=>e(t.t(),1))).default,C=await import(`./__vite-browser-external-C7iut881.js`).then(t=>e(t.t(),1)),k=C.sep,typeof i<`u`))return;let t={fs:ne,crypto:await import(`./__vite-browser-external-C7iut881.js`).then(t=>e(t.t(),1)),ws:await import(`./__vite-browser-external-C7iut881.js`).then(t=>e(t.t(),1)),child_process:await import(`./__vite-browser-external-C7iut881.js`).then(t=>e(t.t(),1))};globalThis.require=function(e){return t[e]}}r(T,`initNodeModules`);function E(e,t){return C.resolve(t||`.`,e)}r(E,`node_resolvePath`);function D(e,t){return t===void 0&&(t=location),new URL(e,t).toString()}r(D,`browser_resolvePath`);var O=b.IN_NODE?E:b.IN_SHELL?r(e=>e,`resolvePath`):D,k;b.IN_NODE||(k=`/`);function A(e,t){return e.startsWith(`file://`)&&(e=e.slice(7)),e.includes(`://`)?{response:fetch(e)}:{binary:w.readFile(e).then(e=>new Uint8Array(e.buffer,e.byteOffset,e.byteLength))}}r(A,`node_getBinaryResponse`);function j(e,t){if(e.startsWith(`file://`)&&(e=e.slice(7)),e.includes(`://`))throw Error(`Shell cannot fetch urls`);return{binary:Promise.resolve(new Uint8Array(readbuffer(e)))}}r(j,`shell_getBinaryResponse`);function M(e,t){let n=new URL(e,location);return{response:fetch(n,t?{integrity:t}:{})}}r(M,`browser_getBinaryResponse`);var N=b.IN_NODE?A:b.IN_SHELL?j:M;async function P(e,t){let{response:n,binary:r}=N(e,t);if(r)return r;let i=await n;if(!i.ok)throw Error(`Failed to load '${e}': request failed.`);return new Uint8Array(await i.arrayBuffer())}r(P,`loadBinaryFile`);var F;if(b.IN_BROWSER_MAIN_THREAD)F=r(async e=>await import(e),`loadScript`);else if(b.IN_BROWSER_WEB_WORKER)F=r(async e=>{try{globalThis.importScripts(e)}catch(t){if(t instanceof TypeError)await import(e);else throw t}},`loadScript`);else if(b.IN_NODE)F=I;else if(b.IN_SHELL)F=load;else throw Error(`Cannot determine runtime environment`);async function I(e){e.startsWith(`file://`)&&(e=e.slice(7)),e.includes(`://`)?te.runInThisContext(await(await fetch(e)).text()):await import(S.pathToFileURL(e).href)}r(I,`nodeLoadScript`);async function L(e){if(b.IN_NODE){await T();let t=await w.readFile(e,{encoding:`utf8`});return JSON.parse(t)}else if(b.IN_SHELL){let t=read(e);return JSON.parse(t)}else return await(await fetch(e)).json()}r(L,`loadLockFile`);async function R(){if(b.IN_NODE_COMMONJS)return __dirname;let t;try{throw Error()}catch(e){t=e}let n=ee.parse(t)[0].fileName;if(b.IN_NODE&&!n.startsWith(`file://`)&&(n=`file://${n}`),b.IN_NODE_ESM){let t=await import(`./__vite-browser-external-C7iut881.js`).then(t=>e(t.t(),1));return(await import(`./__vite-browser-external-C7iut881.js`).then(t=>e(t.t(),1))).fileURLToPath(t.dirname(n))}let r=n.lastIndexOf(k);if(r===-1)throw Error(`Could not extract indexURL path from pyodide module location. Please pass the indexURL explicitly to loadPyodide.`);return n.slice(0,r)}r(R,`calculateDirname`);function z(e){return e.substring(0,e.lastIndexOf(`/`)+1)||globalThis.location?.toString()||`.`}r(z,`calculateInstallBaseUrl`);function B(e){let t=e.FS,n=e.FS.filesystems.MEMFS,i=e.PATH,a={DIR_MODE:16895,FILE_MODE:33279,mount:r(function(e){if(!e.opts.fileSystemHandle)throw Error(`opts.fileSystemHandle is required`);return n.mount.apply(null,arguments)},`mount`),syncfs:r(async(e,t,n)=>{try{let r=a.getLocalSet(e),i=await a.getRemoteSet(e),o=t?i:r,s=t?r:i;await a.reconcile(e,o,s),n(null)}catch(e){n(e)}},`syncfs`),getLocalSet:r(e=>{let n=Object.create(null);function a(e){return e!==`.`&&e!==`..`}r(a,`isRealDir`);function o(e){return t=>i.join2(e,t)}r(o,`toAbsolute`);let s=t.readdir(e.mountpoint).filter(a).map(o(e.mountpoint));for(;s.length;){let e=s.pop(),r=t.stat(e);t.isDir(r.mode)&&s.push.apply(s,t.readdir(e).filter(a).map(o(e))),n[e]={timestamp:r.mtime,mode:r.mode}}return{type:`local`,entries:n}},`getLocalSet`),getRemoteSet:r(async e=>{let t=Object.create(null),n=await re(e.opts.fileSystemHandle);for(let[r,o]of n)r!==`.`&&(t[i.join2(e.mountpoint,r)]={timestamp:o.kind===`file`?new Date((await o.getFile()).lastModified):new Date,mode:o.kind===`file`?a.FILE_MODE:a.DIR_MODE});return{type:`remote`,entries:t,handles:n}},`getRemoteSet`),loadLocalEntry:r(e=>{let r=t.lookupPath(e,{}).node,i=t.stat(e);if(t.isDir(i.mode))return{timestamp:i.mtime,mode:i.mode};if(t.isFile(i.mode))return r.contents=n.getFileDataAsTypedArray(r),{timestamp:i.mtime,mode:i.mode,contents:r.contents};throw Error(`node type not supported`)},`loadLocalEntry`),storeLocalEntry:r((e,n)=>{if(t.isDir(n.mode))t.mkdirTree(e,n.mode);else if(t.isFile(n.mode))t.writeFile(e,n.contents,{canOwn:!0});else throw Error(`node type not supported`);t.chmod(e,n.mode),t.utime(e,n.timestamp,n.timestamp)},`storeLocalEntry`),removeLocalEntry:r(e=>{var n=t.stat(e);t.isDir(n.mode)?t.rmdir(e):t.isFile(n.mode)&&t.unlink(e)},`removeLocalEntry`),loadRemoteEntry:r(async e=>{if(e.kind===`file`){let t=await e.getFile();return{contents:new Uint8Array(await t.arrayBuffer()),mode:a.FILE_MODE,timestamp:new Date(t.lastModified)}}else{if(e.kind===`directory`)return{mode:a.DIR_MODE,timestamp:new Date};throw Error(`unknown kind: `+e.kind)}},`loadRemoteEntry`),storeRemoteEntry:r(async(e,n,r)=>{let a=e.get(i.dirname(n)),o=t.isFile(r.mode)?await a.getFileHandle(i.basename(n),{create:!0}):await a.getDirectoryHandle(i.basename(n),{create:!0});if(o.kind===`file`){let e=await o.createWritable();await e.write(r.contents),await e.close()}e.set(n,o)},`storeRemoteEntry`),removeRemoteEntry:r(async(e,t)=>{await e.get(i.dirname(t)).removeEntry(i.basename(t)),e.delete(t)},`removeRemoteEntry`),reconcile:r(async(e,n,r)=>{let o=0,s=[];Object.keys(n.entries).forEach(function(e){let i=n.entries[e],a=r.entries[e];(!a||t.isFile(i.mode)&&i.timestamp.getTime()>a.timestamp.getTime())&&(s.push(e),o++)}),s.sort();let c=[];if(Object.keys(r.entries).forEach(function(e){n.entries[e]||(c.push(e),o++)}),c.sort().reverse(),!o)return;let l=n.type===`remote`?n.handles:r.handles;for(let t of s){let n=i.normalize(t.replace(e.mountpoint,`/`)).substring(1);if(r.type===`local`){let e=l.get(n),r=await a.loadRemoteEntry(e);a.storeLocalEntry(t,r)}else{let e=a.loadLocalEntry(t);await a.storeRemoteEntry(l,n,e)}}for(let t of c)if(r.type===`local`)a.removeLocalEntry(t);else{let n=i.normalize(t.replace(e.mountpoint,`/`)).substring(1);await a.removeRemoteEntry(l,n)}},`reconcile`)};e.FS.filesystems.NATIVEFS_ASYNC=a}r(B,`initializeNativeFS`);var re=r(async e=>{let t=[];async function n(e){for await(let r of e.values())t.push(r),r.kind===`directory`&&await n(r)}r(n,`collect`),await n(e);let i=new Map;i.set(`.`,e);for(let n of t){let t=(await e.resolve(n)).join(`/`);i.set(t,n)}return i},`getFsHandles`),ie=a(`AGFzbQEAAAABDANfAGAAAW9gAW8BfwMDAgECByECD2NyZWF0ZV9zZW50aW5lbAAAC2lzX3NlbnRpbmVsAAEKEwIHAPsBAPsbCwkAIAD7GvsUAAs=`),ae=async function(){if(!(globalThis.navigator&&(/iPad|iPhone|iPod/.test(navigator.userAgent)||navigator.platform===`MacIntel`&&typeof navigator.maxTouchPoints<`u`&&navigator.maxTouchPoints>1)))try{let e=await WebAssembly.compile(ie);return await WebAssembly.instantiate(e)}catch(e){if(e instanceof WebAssembly.CompileError)return;throw e}}();async function V(){let e=await ae;if(e)return e.exports;let t=Symbol(`error marker`);return{create_sentinel:r(()=>t,`create_sentinel`),is_sentinel:r(e=>e===t,`is_sentinel`)}}r(V,`getSentinelImport`);function H(e){let t={config:e,runtimeEnv:b},n={noImageDecoding:!0,noAudioDecoding:!0,noWasmDecoding:!1,preRun:J(e),print:e.stdout,printErr:e.stderr,onExit(e){n.exitCode=e},thisProgram:e._sysExecutable,arguments:e.args,API:t,locateFile:r(t=>e.indexURL+t,`locateFile`),instantiateWasm:Y(e.indexURL)};return n}r(H,`createSettings`);function U(e){return function(t){try{t.FS.mkdirTree(e)}catch(t){console.error(`Error occurred while making a home directory '${e}':`),console.error(t),console.error(`Using '/' for a home directory instead`),e=`/`}t.FS.chdir(e)}}r(U,`createHomeDirectory`);function W(e){return function(t){Object.assign(t.ENV,e)}}r(W,`setEnvironment`);function G(e){return e?[async t=>{t.addRunDependency(`fsInitHook`);try{await e(t.FS,{sitePackages:t.API.sitePackages})}finally{t.removeRunDependency(`fsInitHook`)}}]:[]}r(G,`callFsInitHook`);function K(e){let t=e.HEAPU32[e._Py_Version>>>2];return[t>>>24&255,t>>>16&255,t>>>8&255]}r(K,`computeVersionTuple`);function q(e){let t=P(e);return async e=>{e.API.pyVersionTuple=K(e);let[n,r]=e.API.pyVersionTuple;e.FS.mkdirTree(`/lib`),e.API.sitePackages=`/lib/python${n}.${r}/site-packages`,e.FS.mkdirTree(e.API.sitePackages),e.addRunDependency(`install-stdlib`);try{let i=await t;e.FS.writeFile(`/lib/python${n}${r}.zip`,i)}catch(e){console.error(`Error occurred while installing the standard library:`),console.error(e)}finally{e.removeRunDependency(`install-stdlib`)}}}r(q,`installStdlib`);function J(e){let t;return t=e.stdLibURL==null?e.indexURL+`python_stdlib.zip`:e.stdLibURL,[q(t),U(e.env.HOME),W(e.env),B,...G(e.fsInit)]}r(J,`getFileSystemInitializationFuncs`);function Y(e){if(typeof WasmOffsetConverter<`u`)return;let{binary:t,response:n}=N(e+`pyodide.asm.wasm`),r=V();return function(e,i){return async function(){e.sentinel=await r;try{let r;r=n?await WebAssembly.instantiateStreaming(n,e):await WebAssembly.instantiate(await t,e);let{instance:a,module:o}=r;i(a,o)}catch(e){console.warn(`wasm instantiation failed!`),console.warn(e)}}(),{}}}r(Y,`getInstantiateWasmFunc`);var oe=`0.29.4`;function X(e){return e===void 0||e.endsWith(`/`)?e:e+`/`}r(X,`withTrailingSlash`);var Z=oe;async function Q(e={}){if(await T(),e.lockFileContents&&e.lockFileURL)throw Error(`Can't pass both lockFileContents and lockFileURL`);let t=e.indexURL||await R();if(t=X(O(t)),e.packageBaseUrl=X(e.packageBaseUrl),e.cdnUrl=X(e.packageBaseUrl??`https://cdn.jsdelivr.net/pyodide/v0.29.4/full/`),!e.lockFileContents){let n=e.lockFileURL??t+`pyodide-lock.json`;e.lockFileContents=L(n),e.packageBaseUrl??=z(n)}e.indexURL=t,e.packageCacheDir&&=X(O(e.packageCacheDir));let n={fullStdLib:!1,jsglobals:globalThis,stdin:globalThis.prompt?()=>globalThis.prompt():void 0,args:[],env:{},packages:[],packageCacheDir:e.packageBaseUrl,enableRunUntilComplete:!0,checkAPIVersion:!0,BUILD_ID:`9ad695efc6a269d9e0a764721c629a728308ddb40e060fe4513bb5c162585079`},r=Object.assign(n,e);return r.env.HOME??=`/home/pyodide`,r.env.PYTHONINSPECT??=`1`,r}r(Q,`initializeConfiguration`);function $(e){let t=H(e),n=t.API;return n.lockFilePromise=Promise.resolve(e.lockFileContents),t}r($,`createEmscriptenSettings`);async function se(e){if(typeof _createPyodideModule!=`function`){let t=`${e.indexURL}pyodide.asm.js`;await F(t)}}r(se,`loadWasmScript`);async function ce(e,t){if(!e._loadSnapshot)return;let n=await e._loadSnapshot,r=ArrayBuffer.isView(n)?n:new Uint8Array(n);return t.noInitialRun=!0,t.INITIAL_MEMORY=r.length,r}r(ce,`prepareSnapshot`);async function le(e){let t=await _createPyodideModule(e);if(e.exitCode!==void 0)throw new t.ExitStatus(e.exitCode);return t}r(le,`createPyodideModule`);function ue(e,t){let n=e.API;if(t.pyproxyToStringRepr&&n.setPyProxyToStringMethod(!0),t.convertNullToNone&&n.setCompatNullToNone(!0),t.toJsLiteralMap&&n.setCompatToJsLiteralMap(!0),n.version!==`0.29.4`&&t.checkAPIVersion)throw Error(`Pyodide version does not match: '${Z}' <==> '${n.version}'. If you updated the Pyodide version, make sure you also updated the 'indexURL' parameter passed to loadPyodide.`);e.locateFile=e=>{throw e.endsWith(`.so`)?Error(`Failed to find dynamic library "${e}"`):Error(`Unexpected call to locateFile("${e}")`)}}r(ue,`configureAPI`);function de(e,t,n){let r=e.API,i;return t&&(i=r.restoreSnapshot(t)),r.finalizeBootstrap(i,n._snapshotDeserializer)}r(de,`bootstrapPyodide`);async function fe(e,t){let n=e._api;return n.sys.path.insert(0,``),n._pyodide.set_excepthook(),await n.packageIndexReady,n.initializeStreams(t.stdin,t.stdout,t.stderr),e}r(fe,`finalizeSetup`);async function pe(e={}){let t=await Q(e),n=$(t);await se(t);let r=await ce(t,n),i=await le(n);return ue(i,t),await fe(de(i,r,t),t)}r(pe,`loadPyodide`);export{pe as loadPyodide,Z as version};
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),s=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},c=(n,r,a)=>(a=n==null?{}:e(i(n)),s(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n)),l=(e=>typeof require<`u`?require:typeof Proxy<`u`?new Proxy(e,{get:(e,t)=>(typeof require<`u`?require:e)[t]}):e)(function(e){if(typeof require<`u`)return require.apply(this,arguments);throw Error('Calling `require` for "'+e+"\" in an environment that doesn't expose the `require` function. See https://rolldown.rs/in-depth/bundling-cjs#require-external-modules for more details.")}),u=Object.defineProperty,d=(e,t)=>u(e,`name`,{value:t,configurable:!0}),ee=(e=>typeof l<`u`?l:typeof Proxy<`u`?new Proxy(e,{get:(e,t)=>(typeof l<`u`?l:e)[t]}):e)(function(e){if(typeof l<`u`)return l.apply(this,arguments);throw Error(`Dynamic require of "`+e+`" is not supported`)}),te=(()=>{for(var e=new Uint8Array(128),t=0;t<64;t++)e[t<26?t+65:t<52?t+71:t<62?t-4:t*4-205]=t;return t=>{for(var n=t.length,r=new Uint8Array((n-(t[n-1]==`=`)-(t[n-2]==`=`))*3/4|0),i=0,a=0;i<n;){var o=e[t.charCodeAt(i++)],s=e[t.charCodeAt(i++)],c=e[t.charCodeAt(i++)],l=e[t.charCodeAt(i++)];r[a++]=o<<2|s>>4,r[a++]=s<<4|c>>2,r[a++]=c<<6|l}return r}})();function f(e){return!isNaN(parseFloat(e))&&isFinite(e)}d(f,`_isNumber`);function p(e){return e.charAt(0).toUpperCase()+e.substring(1)}d(p,`_capitalize`);function m(e){return function(){return this[e]}}d(m,`_getter`);var h=[`isConstructor`,`isEval`,`isNative`,`isToplevel`],g=[`columnNumber`,`lineNumber`],_=[`fileName`,`functionName`,`source`],v=h.concat(g,_,[`args`],[`evalOrigin`]);function y(e){if(e)for(var t=0;t<v.length;t++)e[v[t]]!==void 0&&this[`set`+p(v[t])](e[v[t]])}for(d(y,`StackFrame`),y.prototype={getArgs:d(function(){return this.args},`getArgs`),setArgs:d(function(e){if(Object.prototype.toString.call(e)!==`[object Array]`)throw TypeError(`Args must be an Array`);this.args=e},`setArgs`),getEvalOrigin:d(function(){return this.evalOrigin},`getEvalOrigin`),setEvalOrigin:d(function(e){if(e instanceof y)this.evalOrigin=e;else if(e instanceof Object)this.evalOrigin=new y(e);else throw TypeError(`Eval Origin must be an Object or StackFrame`)},`setEvalOrigin`),toString:d(function(){var e=this.getFileName()||``,t=this.getLineNumber()||``,n=this.getColumnNumber()||``,r=this.getFunctionName()||``;return this.getIsEval()?e?`[eval] (`+e+`:`+t+`:`+n+`)`:`[eval]:`+t+`:`+n:r?r+` (`+e+`:`+t+`:`+n+`)`:e+`:`+t+`:`+n},`toString`)},y.fromString=d(function(e){var t=e.indexOf(`(`),n=e.lastIndexOf(`)`),r=e.substring(0,t),i=e.substring(t+1,n).split(`,`),a=e.substring(n+1);if(a.indexOf(`@`)===0)var o=/@(.+?)(?::(\d+))?(?::(\d+))?$/.exec(a,``),s=o[1],c=o[2],l=o[3];return new y({functionName:r,args:i||void 0,fileName:s,lineNumber:c||void 0,columnNumber:l||void 0})},`StackFrame$$fromString`),b=0;b<h.length;b++)y.prototype[`get`+p(h[b])]=m(h[b]),y.prototype[`set`+p(h[b])]=function(e){return function(t){this[e]=!!t}}(h[b]);var b;for(x=0;x<g.length;x++)y.prototype[`get`+p(g[x])]=m(g[x]),y.prototype[`set`+p(g[x])]=function(e){return function(t){if(!f(t))throw TypeError(e+` must be a Number`);this[e]=Number(t)}}(g[x]);var x;for(S=0;S<_.length;S++)y.prototype[`get`+p(_[S])]=m(_[S]),y.prototype[`set`+p(_[S])]=function(e){return function(t){this[e]=String(t)}}(_[S]);var S,C=y;function w(){var e=/^\s*at .*(\S+:\d+|\(native\))/m,t=/^(eval@)?(\[native code])?$/;return{parse:d(function(t){if(t.stack&&t.stack.match(e))return this.parseV8OrIE(t);if(t.stack)return this.parseFFOrSafari(t);throw Error(`Cannot parse given Error object`)},`ErrorStackParser$$parse`),extractLocation:d(function(e){if(e.indexOf(`:`)===-1)return[e];var t=/(.+?)(?::(\d+))?(?::(\d+))?$/.exec(e.replace(/[()]/g,``));return[t[1],t[2]||void 0,t[3]||void 0]},`ErrorStackParser$$extractLocation`),parseV8OrIE:d(function(t){return t.stack.split(`
|
|
2
|
-
`).filter(function(t){return!!t.match(e)},this).map(function(e){e.indexOf(`(eval `)>-1&&(e=e.replace(/eval code/g,`eval`).replace(/(\(eval at [^()]*)|(,.*$)/g,``));var t=e.replace(/^\s+/,``).replace(/\(eval code/g,`(`).replace(/^.*?\s+/,``),n=t.match(/ (\(.+\)$)/);t=n?t.replace(n[0],``):t;var r=this.extractLocation(n?n[1]:t);return new C({functionName:n&&t||void 0,fileName:[`eval`,`<anonymous>`].indexOf(r[0])>-1?void 0:r[0],lineNumber:r[1],columnNumber:r[2],source:e})},this)},`ErrorStackParser$$parseV8OrIE`),parseFFOrSafari:d(function(e){return e.stack.split(`
|
|
3
|
-
`).filter(function(e){return!e.match(t)},this).map(function(e){if(e.indexOf(` > eval`)>-1&&(e=e.replace(/ line (\d+)(?: > eval line \d+)* > eval:\d+:\d+/g,`:$1`)),e.indexOf(`@`)===-1&&e.indexOf(`:`)===-1)return new C({functionName:e});var t=/((.*".+"[^@]*)?[^@]*)(?:@)/,n=e.match(t),r=n&&n[1]?n[1]:void 0,i=this.extractLocation(e.replace(t,``));return new C({functionName:r,fileName:i[0],lineNumber:i[1],columnNumber:i[2],source:e})},this)},`ErrorStackParser$$parseFFOrSafari`)}}d(w,`ErrorStackParser`);var ne=new w;function T(){return typeof API<`u`&&API!==globalThis.API?API.runtimeEnv:re({IN_BUN:typeof Bun<`u`,IN_DENO:typeof Deno<`u`,IN_NODE:typeof process==`object`&&typeof process.versions==`object`&&typeof process.versions.node==`string`&&!process.browser,IN_SAFARI:typeof navigator==`object`&&typeof navigator.userAgent==`string`&&navigator.userAgent.indexOf(`Chrome`)===-1&&navigator.userAgent.indexOf(`Safari`)>-1,IN_SHELL:typeof read==`function`&&typeof load==`function`})}d(T,`getGlobalRuntimeEnv`);var E=T();function re(e){let t=e.IN_NODE&&typeof module<`u`&&module.exports&&typeof ee==`function`&&typeof __dirname==`string`,n=e.IN_NODE&&!t,r=!e.IN_NODE&&!e.IN_DENO&&!e.IN_BUN,i=r&&typeof window<`u`&&typeof window.document<`u`&&typeof document.createElement==`function`&&`sessionStorage`in window&&typeof globalThis.importScripts!=`function`,a=r&&typeof globalThis.WorkerGlobalScope<`u`&&typeof globalThis.self<`u`&&globalThis.self instanceof globalThis.WorkerGlobalScope;return{...e,IN_BROWSER:r,IN_BROWSER_MAIN_THREAD:i,IN_BROWSER_WEB_WORKER:a,IN_NODE_COMMONJS:t,IN_NODE_ESM:n}}d(re,`calculateDerivedFlags`);var D,O,k,A,j;async function M(){if(!E.IN_NODE||(D=(await import(`./__vite-browser-external-ccPY92C6.js`).then(e=>c(e.default,1))).default,A=await import(`./__vite-browser-external-ccPY92C6.js`).then(e=>c(e.default,1)),j=await import(`./__vite-browser-external-ccPY92C6.js`).then(e=>c(e.default,1)),k=(await import(`./__vite-browser-external-ccPY92C6.js`).then(e=>c(e.default,1))).default,O=await import(`./__vite-browser-external-ccPY92C6.js`).then(e=>c(e.default,1)),I=O.sep,typeof ee<`u`))return;let e={fs:A,crypto:await import(`./__vite-browser-external-ccPY92C6.js`).then(e=>c(e.default,1)),ws:await import(`./__vite-browser-external-ccPY92C6.js`).then(e=>c(e.default,1)),child_process:await import(`./__vite-browser-external-ccPY92C6.js`).then(e=>c(e.default,1))};globalThis.require=function(t){return e[t]}}d(M,`initNodeModules`);function N(e,t){return O.resolve(t||`.`,e)}d(N,`node_resolvePath`);function P(e,t){return t===void 0&&(t=location),new URL(e,t).toString()}d(P,`browser_resolvePath`);var F=E.IN_NODE?N:E.IN_SHELL?d(e=>e,`resolvePath`):P,I;E.IN_NODE||(I=`/`);function L(e,t){return e.startsWith(`file://`)&&(e=e.slice(7)),e.includes(`://`)?{response:fetch(e)}:{binary:j.readFile(e).then(e=>new Uint8Array(e.buffer,e.byteOffset,e.byteLength))}}d(L,`node_getBinaryResponse`);function R(e,t){if(e.startsWith(`file://`)&&(e=e.slice(7)),e.includes(`://`))throw Error(`Shell cannot fetch urls`);return{binary:Promise.resolve(new Uint8Array(readbuffer(e)))}}d(R,`shell_getBinaryResponse`);function z(e,t){let n=new URL(e,location);return{response:fetch(n,t?{integrity:t}:{})}}d(z,`browser_getBinaryResponse`);var B=E.IN_NODE?L:E.IN_SHELL?R:z;async function V(e,t){let{response:n,binary:r}=B(e,t);if(r)return r;let i=await n;if(!i.ok)throw Error(`Failed to load '${e}': request failed.`);return new Uint8Array(await i.arrayBuffer())}d(V,`loadBinaryFile`);var H;if(E.IN_BROWSER_MAIN_THREAD)H=d(async e=>await import(e),`loadScript`);else if(E.IN_BROWSER_WEB_WORKER)H=d(async e=>{try{globalThis.importScripts(e)}catch(t){if(t instanceof TypeError)await import(e);else throw t}},`loadScript`);else if(E.IN_NODE)H=U;else if(E.IN_SHELL)H=load;else throw Error(`Cannot determine runtime environment`);async function U(e){e.startsWith(`file://`)&&(e=e.slice(7)),e.includes(`://`)?k.runInThisContext(await(await fetch(e)).text()):await import(D.pathToFileURL(e).href)}d(U,`nodeLoadScript`);async function W(e){if(E.IN_NODE){await M();let t=await j.readFile(e,{encoding:`utf8`});return JSON.parse(t)}else if(E.IN_SHELL){let t=read(e);return JSON.parse(t)}else return await(await fetch(e)).json()}d(W,`loadLockFile`);async function G(){if(E.IN_NODE_COMMONJS)return __dirname;let e;try{throw Error()}catch(t){e=t}let t=ne.parse(e)[0].fileName;if(E.IN_NODE&&!t.startsWith(`file://`)&&(t=`file://${t}`),E.IN_NODE_ESM){let e=await import(`./__vite-browser-external-ccPY92C6.js`).then(e=>c(e.default,1));return(await import(`./__vite-browser-external-ccPY92C6.js`).then(e=>c(e.default,1))).fileURLToPath(e.dirname(t))}let n=t.lastIndexOf(I);if(n===-1)throw Error(`Could not extract indexURL path from pyodide module location. Please pass the indexURL explicitly to loadPyodide.`);return t.slice(0,n)}d(G,`calculateDirname`);function ie(e){return e.substring(0,e.lastIndexOf(`/`)+1)||globalThis.location?.toString()||`.`}d(ie,`calculateInstallBaseUrl`);function K(e){let t=e.FS,n=e.FS.filesystems.MEMFS,r=e.PATH,i={DIR_MODE:16895,FILE_MODE:33279,mount:d(function(e){if(!e.opts.fileSystemHandle)throw Error(`opts.fileSystemHandle is required`);return n.mount.apply(null,arguments)},`mount`),syncfs:d(async(e,t,n)=>{try{let r=i.getLocalSet(e),a=await i.getRemoteSet(e),o=t?a:r,s=t?r:a;await i.reconcile(e,o,s),n(null)}catch(e){n(e)}},`syncfs`),getLocalSet:d(e=>{let n=Object.create(null);function i(e){return e!==`.`&&e!==`..`}d(i,`isRealDir`);function a(e){return t=>r.join2(e,t)}d(a,`toAbsolute`);let o=t.readdir(e.mountpoint).filter(i).map(a(e.mountpoint));for(;o.length;){let e=o.pop(),r=t.stat(e);t.isDir(r.mode)&&o.push.apply(o,t.readdir(e).filter(i).map(a(e))),n[e]={timestamp:r.mtime,mode:r.mode}}return{type:`local`,entries:n}},`getLocalSet`),getRemoteSet:d(async e=>{let t=Object.create(null),n=await ae(e.opts.fileSystemHandle);for(let[a,o]of n)a!==`.`&&(t[r.join2(e.mountpoint,a)]={timestamp:o.kind===`file`?new Date((await o.getFile()).lastModified):new Date,mode:o.kind===`file`?i.FILE_MODE:i.DIR_MODE});return{type:`remote`,entries:t,handles:n}},`getRemoteSet`),loadLocalEntry:d(e=>{let r=t.lookupPath(e,{}).node,i=t.stat(e);if(t.isDir(i.mode))return{timestamp:i.mtime,mode:i.mode};if(t.isFile(i.mode))return r.contents=n.getFileDataAsTypedArray(r),{timestamp:i.mtime,mode:i.mode,contents:r.contents};throw Error(`node type not supported`)},`loadLocalEntry`),storeLocalEntry:d((e,n)=>{if(t.isDir(n.mode))t.mkdirTree(e,n.mode);else if(t.isFile(n.mode))t.writeFile(e,n.contents,{canOwn:!0});else throw Error(`node type not supported`);t.chmod(e,n.mode),t.utime(e,n.timestamp,n.timestamp)},`storeLocalEntry`),removeLocalEntry:d(e=>{var n=t.stat(e);t.isDir(n.mode)?t.rmdir(e):t.isFile(n.mode)&&t.unlink(e)},`removeLocalEntry`),loadRemoteEntry:d(async e=>{if(e.kind===`file`){let t=await e.getFile();return{contents:new Uint8Array(await t.arrayBuffer()),mode:i.FILE_MODE,timestamp:new Date(t.lastModified)}}else{if(e.kind===`directory`)return{mode:i.DIR_MODE,timestamp:new Date};throw Error(`unknown kind: `+e.kind)}},`loadRemoteEntry`),storeRemoteEntry:d(async(e,n,i)=>{let a=e.get(r.dirname(n)),o=t.isFile(i.mode)?await a.getFileHandle(r.basename(n),{create:!0}):await a.getDirectoryHandle(r.basename(n),{create:!0});if(o.kind===`file`){let e=await o.createWritable();await e.write(i.contents),await e.close()}e.set(n,o)},`storeRemoteEntry`),removeRemoteEntry:d(async(e,t)=>{await e.get(r.dirname(t)).removeEntry(r.basename(t)),e.delete(t)},`removeRemoteEntry`),reconcile:d(async(e,n,a)=>{let o=0,s=[];Object.keys(n.entries).forEach(function(e){let r=n.entries[e],i=a.entries[e];(!i||t.isFile(r.mode)&&r.timestamp.getTime()>i.timestamp.getTime())&&(s.push(e),o++)}),s.sort();let c=[];if(Object.keys(a.entries).forEach(function(e){n.entries[e]||(c.push(e),o++)}),c.sort().reverse(),!o)return;let l=n.type===`remote`?n.handles:a.handles;for(let t of s){let n=r.normalize(t.replace(e.mountpoint,`/`)).substring(1);if(a.type===`local`){let e=l.get(n),r=await i.loadRemoteEntry(e);i.storeLocalEntry(t,r)}else{let e=i.loadLocalEntry(t);await i.storeRemoteEntry(l,n,e)}}for(let t of c)if(a.type===`local`)i.removeLocalEntry(t);else{let n=r.normalize(t.replace(e.mountpoint,`/`)).substring(1);await i.removeRemoteEntry(l,n)}},`reconcile`)};e.FS.filesystems.NATIVEFS_ASYNC=i}d(K,`initializeNativeFS`);var ae=d(async e=>{let t=[];async function n(e){for await(let r of e.values())t.push(r),r.kind===`directory`&&await n(r)}d(n,`collect`),await n(e);let r=new Map;r.set(`.`,e);for(let n of t){let t=(await e.resolve(n)).join(`/`);r.set(t,n)}return r},`getFsHandles`),oe=te(`AGFzbQEAAAABDANfAGAAAW9gAW8BfwMDAgECByECD2NyZWF0ZV9zZW50aW5lbAAAC2lzX3NlbnRpbmVsAAEKEwIHAPsBAPsbCwkAIAD7GvsUAAs=`),se=async function(){if(!(globalThis.navigator&&(/iPad|iPhone|iPod/.test(navigator.userAgent)||navigator.platform===`MacIntel`&&typeof navigator.maxTouchPoints<`u`&&navigator.maxTouchPoints>1)))try{let e=await WebAssembly.compile(oe);return await WebAssembly.instantiate(e)}catch(e){if(e instanceof WebAssembly.CompileError)return;throw e}}();async function q(){let e=await se;if(e)return e.exports;let t=Symbol(`error marker`);return{create_sentinel:d(()=>t,`create_sentinel`),is_sentinel:d(e=>e===t,`is_sentinel`)}}d(q,`getSentinelImport`);function J(e){let t={config:e,runtimeEnv:E},n={noImageDecoding:!0,noAudioDecoding:!0,noWasmDecoding:!1,preRun:ue(e),print:e.stdout,printErr:e.stderr,onExit(e){n.exitCode=e},thisProgram:e._sysExecutable,arguments:e.args,API:t,locateFile:d(t=>e.indexURL+t,`locateFile`),instantiateWasm:de(e.indexURL)};return n}d(J,`createSettings`);function Y(e){return function(t){try{t.FS.mkdirTree(e)}catch(t){console.error(`Error occurred while making a home directory '${e}':`),console.error(t),console.error(`Using '/' for a home directory instead`),e=`/`}t.FS.chdir(e)}}d(Y,`createHomeDirectory`);function X(e){return function(t){Object.assign(t.ENV,e)}}d(X,`setEnvironment`);function Z(e){return e?[async t=>{t.addRunDependency(`fsInitHook`);try{await e(t.FS,{sitePackages:t.API.sitePackages})}finally{t.removeRunDependency(`fsInitHook`)}}]:[]}d(Z,`callFsInitHook`);function ce(e){let t=e.HEAPU32[e._Py_Version>>>2];return[t>>>24&255,t>>>16&255,t>>>8&255]}d(ce,`computeVersionTuple`);function le(e){let t=V(e);return async e=>{e.API.pyVersionTuple=ce(e);let[n,r]=e.API.pyVersionTuple;e.FS.mkdirTree(`/lib`),e.API.sitePackages=`/lib/python${n}.${r}/site-packages`,e.FS.mkdirTree(e.API.sitePackages),e.addRunDependency(`install-stdlib`);try{let i=await t;e.FS.writeFile(`/lib/python${n}${r}.zip`,i)}catch(e){console.error(`Error occurred while installing the standard library:`),console.error(e)}finally{e.removeRunDependency(`install-stdlib`)}}}d(le,`installStdlib`);function ue(e){let t;return t=e.stdLibURL==null?e.indexURL+`python_stdlib.zip`:e.stdLibURL,[le(t),Y(e.env.HOME),X(e.env),K,...Z(e.fsInit)]}d(ue,`getFileSystemInitializationFuncs`);function de(e){if(typeof WasmOffsetConverter<`u`)return;let{binary:t,response:n}=B(e+`pyodide.asm.wasm`),r=q();return function(e,i){return async function(){e.sentinel=await r;try{let r;r=n?await WebAssembly.instantiateStreaming(n,e):await WebAssembly.instantiate(await t,e);let{instance:a,module:o}=r;i(a,o)}catch(e){console.warn(`wasm instantiation failed!`),console.warn(e)}}(),{}}}d(de,`getInstantiateWasmFunc`);var fe=`0.29.4`;function Q(e){return e===void 0||e.endsWith(`/`)?e:e+`/`}d(Q,`withTrailingSlash`);var pe=fe;async function $(e={}){if(await M(),e.lockFileContents&&e.lockFileURL)throw Error(`Can't pass both lockFileContents and lockFileURL`);let t=e.indexURL||await G();if(t=Q(F(t)),e.packageBaseUrl=Q(e.packageBaseUrl),e.cdnUrl=Q(e.packageBaseUrl??`https://cdn.jsdelivr.net/pyodide/v0.29.4/full/`),!e.lockFileContents){let n=e.lockFileURL??t+`pyodide-lock.json`;e.lockFileContents=W(n),e.packageBaseUrl??=ie(n)}e.indexURL=t,e.packageCacheDir&&=Q(F(e.packageCacheDir));let n={fullStdLib:!1,jsglobals:globalThis,stdin:globalThis.prompt?()=>globalThis.prompt():void 0,args:[],env:{},packages:[],packageCacheDir:e.packageBaseUrl,enableRunUntilComplete:!0,checkAPIVersion:!0,BUILD_ID:`9ad695efc6a269d9e0a764721c629a728308ddb40e060fe4513bb5c162585079`},r=Object.assign(n,e);return r.env.HOME??=`/home/pyodide`,r.env.PYTHONINSPECT??=`1`,r}d($,`initializeConfiguration`);function me(e){let t=J(e),n=t.API;return n.lockFilePromise=Promise.resolve(e.lockFileContents),t}d(me,`createEmscriptenSettings`);async function he(e){if(typeof _createPyodideModule!=`function`){let t=`${e.indexURL}pyodide.asm.js`;await H(t)}}d(he,`loadWasmScript`);async function ge(e,t){if(!e._loadSnapshot)return;let n=await e._loadSnapshot,r=ArrayBuffer.isView(n)?n:new Uint8Array(n);return t.noInitialRun=!0,t.INITIAL_MEMORY=r.length,r}d(ge,`prepareSnapshot`);async function _e(e){let t=await _createPyodideModule(e);if(e.exitCode!==void 0)throw new t.ExitStatus(e.exitCode);return t}d(_e,`createPyodideModule`);function ve(e,t){let n=e.API;if(t.pyproxyToStringRepr&&n.setPyProxyToStringMethod(!0),t.convertNullToNone&&n.setCompatNullToNone(!0),t.toJsLiteralMap&&n.setCompatToJsLiteralMap(!0),n.version!==`0.29.4`&&t.checkAPIVersion)throw Error(`Pyodide version does not match: '${pe}' <==> '${n.version}'. If you updated the Pyodide version, make sure you also updated the 'indexURL' parameter passed to loadPyodide.`);e.locateFile=e=>{throw e.endsWith(`.so`)?Error(`Failed to find dynamic library "${e}"`):Error(`Unexpected call to locateFile("${e}")`)}}d(ve,`configureAPI`);function ye(e,t,n){let r=e.API,i;return t&&(i=r.restoreSnapshot(t)),r.finalizeBootstrap(i,n._snapshotDeserializer)}d(ye,`bootstrapPyodide`);async function be(e,t){let n=e._api;return n.sys.path.insert(0,``),n._pyodide.set_excepthook(),await n.packageIndexReady,n.initializeStreams(t.stdin,t.stdout,t.stderr),e}d(be,`finalizeSetup`);async function xe(e={}){let t=await $(e),n=me(t);await he(t);let r=await ge(t,n),i=await _e(n);return ve(i,t),await be(ye(i,r,t),t)}d(xe,`loadPyodide`);export{xe as loadPyodide,o as t,pe as version};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{c as e}from"./wc-live-C0Qhb3-a.js";export{e as readSessionsIndex};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e={"not-allowed":`Microphone access denied. Check Chrome site permissions.`,"no-speech":`No speech detected. Try again.`,"audio-capture":`No microphone found. Check your audio input device.`,network:`Voice input requires an internet connection.`,aborted:`Voice input was interrupted.`,"service-not-available":`Speech recognition service unavailable. Try again later.`,"start-failed":`Failed to start speech recognition.`,"not-supported":`Speech recognition is not supported in this browser.`};function t(){return typeof chrome<`u`&&!!chrome?.runtime?.id}function n(){return typeof window>`u`?null:window.SpeechRecognition||window.webkitSpeechRecognition||null}var r=class r{recognition=null;_isListening=!1;shouldBeListening=!1;options;debounceTimer=null;autoSendTimer=null;pendingTranscript=``;consecutiveRestarts=0;inactivityTimer=null;messageListener=null;popupWindowId=null;constructor(e){this.options=e}start(){if(this._isListening)return;this.debounceTimer&&=(clearTimeout(this.debounceTimer),null);let r=n();if(!r){this.options.onError(`Speech recognition is not supported in this browser.`),this.options.onStateChange(`error`);return}this.shouldBeListening=!0,this.pendingTranscript=``,this.consecutiveRestarts=0,this.cancelAutoSend(),this.resetInactivityTimer(),navigator.mediaDevices?.getUserMedia?navigator.mediaDevices.getUserMedia({audio:!0}).then(e=>{for(let t of e.getTracks())t.stop();this.shouldBeListening&&this.startRecognition(new r)}).catch(n=>{if(this.shouldBeListening)if(t())this.startExtensionPopup();else{this.shouldBeListening=!1;let t=n?.name,r=e[`not-allowed`];t===`NotFoundError`?r=e[`audio-capture`]:t===`NotReadableError`&&(r=`Microphone is in use by another app. Try again.`),this.options.onError(r),this.options.onStateChange(`error`)}}):this.startRecognition(new r)}startExtensionPopup(){let e=this.options.lang??`en-US`,t=chrome.runtime.getURL(`voice-popup.html?lang=${encodeURIComponent(e)}`);chrome.windows.create({url:t,type:`popup`,width:300,height:68,focused:!0}).then(e=>{this.shouldBeListening&&(this.setupExtensionListener(),e?.id&&(this.popupWindowId=e.id))}).catch(()=>{this.shouldBeListening=!1,this.options.onError(`Failed to open voice input window.`),this.options.onStateChange(`error`)})}setupExtensionListener(){this.messageListener||(this.messageListener=t=>{if(t.source===`voice-popup`)switch(t.type){case`speech-result`:if(t.isFinal)this.pendingTranscript+=(this.pendingTranscript?` `:``)+t.text,this.options.onTranscript(this.pendingTranscript,!0),this.scheduleAutoSend();else{let e=this.pendingTranscript?this.pendingTranscript+` `+t.text:t.text;this.options.onTranscript(e,!1),this.cancelAutoSend()}break;case`speech-error`:{let n=e[t.error]??`Speech recognition error: ${t.error}`;this.options.onError(n),t.fatal&&(this._isListening=!1,this.shouldBeListening=!1,this.popupWindowId=null,this.options.onStateChange(`error`));break}case`speech-state`:t.state===`listening`&&(this._isListening=!0,this.options.onStateChange(`listening`));break;case`speech-end`:this._isListening=!1,this.shouldBeListening=!1,this.popupWindowId=null,this.options.onStateChange(`idle`);break}},chrome.runtime.onMessage.addListener(this.messageListener))}removeExtensionListener(){this.messageListener&&=(chrome.runtime.onMessage.removeListener(this.messageListener),null)}startRecognition(t){this.recognition=t,this.recognition.continuous=!0,this.recognition.interimResults=!0,this.recognition.lang=this.options.lang??`en-US`,this.recognition.onresult=e=>{this.consecutiveRestarts=0,this.resetInactivityTimer();let t=``,n=``;for(let r=e.resultIndex;r<e.results.length;r++){let i=e.results[r];i.isFinal?n+=i[0].transcript:t+=i[0].transcript}if(n)this.pendingTranscript+=(this.pendingTranscript?` `:``)+n,this.options.onTranscript(this.pendingTranscript,!0),this.scheduleAutoSend();else if(t){let e=this.pendingTranscript?this.pendingTranscript+` `+t:t;this.options.onTranscript(e,!1),this.cancelAutoSend()}},this.recognition.onerror=t=>{let n=t.error,r=e[n]??`Speech recognition error: ${n}`;if(n===`no-speech`){this.options.onError(r);return}n!==`aborted`&&(this._isListening=!1,this.shouldBeListening=!1,this.options.onError(r),this.options.onStateChange(`error`))},this.recognition.onend=()=>{if(this._isListening=!1,this.recognition&&=(this.recognition.onresult=null,this.recognition.onerror=null,this.recognition.onend=null,null),this.shouldBeListening){this.consecutiveRestarts++;let e=Math.min(300*2**(this.consecutiveRestarts-1),5e3),t=n();this.debounceTimer=setTimeout(()=>{this.debounceTimer=null,this.shouldBeListening&&t?this.startRecognition(new t):this.shouldBeListening&&(this.shouldBeListening=!1,this.options.onStateChange(`idle`))},e);return}this.options.onStateChange(`idle`)};try{this.recognition.start(),this._isListening=!0,this.options.onStateChange(`listening`)}catch{this.shouldBeListening=!1,this.options.onError(`Failed to start speech recognition.`),this.options.onStateChange(`error`)}}static SEND_DELAY_MS=2500;static INACTIVITY_TIMEOUT_MS=12e4;scheduleAutoSend(){this.cancelAutoSend(),this.options.autoSend&&(this.autoSendTimer=setTimeout(()=>{this.autoSendTimer=null;let e=this.pendingTranscript.trim();e&&(this.pendingTranscript=``,this.options.onAutoSend(e))},r.SEND_DELAY_MS))}cancelAutoSend(){this.autoSendTimer&&=(clearTimeout(this.autoSendTimer),null)}resetInactivityTimer(){this.clearInactivityTimer(),this.options.onAutoDisable&&(this.inactivityTimer=setTimeout(()=>{this.inactivityTimer=null,this.stop(),this.options.onAutoDisable?.()},r.INACTIVITY_TIMEOUT_MS))}clearInactivityTimer(){this.inactivityTimer&&=(clearTimeout(this.inactivityTimer),null)}stop(){if(this.shouldBeListening=!1,this.cancelAutoSend(),this.clearInactivityTimer(),this.pendingTranscript=``,this.debounceTimer&&=(clearTimeout(this.debounceTimer),null),this.popupWindowId!=null){try{chrome.runtime.sendMessage({target:`voice-popup`,type:`voice-stop`})}catch{}chrome.windows.remove(this.popupWindowId).catch(()=>{}),this.popupWindowId=null}else if(this.recognition){this.recognition.onresult=null,this.recognition.onerror=null,this.recognition.onend=null;try{this.recognition.stop()}catch{}this.recognition=null}this._isListening=!1,this.options.onStateChange(`idle`)}toggle(){this._isListening||this.shouldBeListening?this.stop():this.start()}isListening(){return this._isListening||this.shouldBeListening}setAutoSend(e){this.options.autoSend=e}destroy(){this.stop(),this.removeExtensionListener(),this.recognition=null}},i={autoSend:`voice-auto-send`,lang:`voice-lang`};function a(){return localStorage.getItem(i.autoSend)!==`false`}function o(){return localStorage.getItem(i.lang)||`en-US`}export{r as VoiceInput,a as getVoiceAutoSend,o as getVoiceLang};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./preload-helper-zJ_50EbN.js";var t=`data-listening`;function n(e,t){let n=e.getAttribute(`value`)??``,r=n&&!n.endsWith(` `)?`${n} ${t}`:n+t;e.setAttribute(`value`,r)}async function r(r){let{refs:i,send:a,log:o}=r,{getVoiceAutoSend:s,getVoiceLang:c,VoiceInput:l}=await e(async()=>{let{getVoiceAutoSend:e,getVoiceLang:t,VoiceInput:n}=await import(`./voice-input-BwyW3uqq.js`);return{getVoiceAutoSend:e,getVoiceLang:t,VoiceInput:n}},[]),u=document.createElement(`slicc-icon-button`);u.setAttribute(`icon`,`mic`),u.setAttribute(`label`,`Voice input`),i.composerMeta.append(u);let d=new l({onTranscript:(e,t)=>{t&&!s()&&n(i.inputCard,e)},onStateChange:e=>{u.toggleAttribute(t,e===`listening`),u.setAttribute(`icon`,e===`listening`?`mic-off`:`mic`)},onError:e=>o.warn(`WC voice input error`,{error:e}),autoSend:s(),onAutoSend:e=>a(e),lang:c()});u.addEventListener(`click`,()=>{d.isListening()?d.stop():d.start()}),window.addEventListener(`beforeunload`,()=>d.destroy(),{once:!0})}export{r as wireWcVoice};
|