shadow-claw 1.29.0 → 1.30.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/.agents/skills/main/skill-creator/SKILL.md +3 -2
- package/.agents/skills/main/skill-creator/references/frontmatter-spec.md +5 -3
- package/.well-known/agent-skills/index.json +1 -1
- package/.well-known/mcp/server-card.json +1 -1
- package/.well-known/mcp.json +1 -1
- package/dist/lib/{app-routes-CqBOeA5q.js → app-routes-BAEMLu9g.js} +3 -2
- package/dist/lib/app-routes-BAEMLu9g.js.map +1 -0
- package/dist/lib/{bundler-8JNIKwOs.js → bundler-CsL7hHMq.js} +4 -9
- package/dist/lib/{bundler-8JNIKwOs.js.map → bundler-CsL7hHMq.js.map} +1 -1
- package/dist/lib/components/index.js +26 -26
- package/dist/lib/components/settings/shadow-claw-accounts.js +1 -1
- package/dist/lib/components/settings/shadow-claw-channel-config.js +1 -1
- package/dist/lib/components/settings/shadow-claw-control-plane.js +1 -1
- package/dist/lib/components/settings/shadow-claw-git.js +1 -1
- package/dist/lib/components/settings/shadow-claw-integrations.js +1 -1
- package/dist/lib/components/settings/shadow-claw-llm.js +1 -1
- package/dist/lib/components/settings/shadow-claw-mcp-remote.js +1 -1
- package/dist/lib/components/settings/shadow-claw-networking.js +1 -1
- package/dist/lib/components/settings/shadow-claw-notifications.js +1 -1
- package/dist/lib/components/settings/shadow-claw-peerjs.js +1 -1
- package/dist/lib/components/settings/shadow-claw-storage.js +1 -1
- package/dist/lib/components/settings/shadow-claw-task-server.js +1 -1
- package/dist/lib/components/settings/shadow-claw-webvm.js +1 -1
- package/dist/lib/components/shadow-claw-a2ui.js +1 -1
- package/dist/lib/components/shadow-claw-accounts.js +1 -1
- package/dist/lib/components/shadow-claw-channel-config.js +1 -1
- package/dist/lib/components/shadow-claw-channels.js +1 -1
- package/dist/lib/components/shadow-claw-chat.js +1 -1
- package/dist/lib/components/shadow-claw-control-plane.js +1 -1
- package/dist/lib/components/shadow-claw-conversations.js +1 -1
- package/dist/lib/components/shadow-claw-file-viewer.js +1 -1
- package/dist/lib/components/shadow-claw-files.js +1 -1
- package/dist/lib/components/shadow-claw-git.js +1 -1
- package/dist/lib/components/shadow-claw-integrations.js +1 -1
- package/dist/lib/components/shadow-claw-llm.js +1 -1
- package/dist/lib/components/shadow-claw-mcp-remote.js +1 -1
- package/dist/lib/components/shadow-claw-networking.js +1 -1
- package/dist/lib/components/shadow-claw-notifications.js +1 -1
- package/dist/lib/components/shadow-claw-page-header.js +1 -1
- package/dist/lib/components/shadow-claw-pages.js +1 -1
- package/dist/lib/components/shadow-claw-peerjs.js +1 -1
- package/dist/lib/components/shadow-claw-settings.js +1 -1
- package/dist/lib/components/shadow-claw-storage.js +1 -1
- package/dist/lib/components/shadow-claw-task-server.js +1 -1
- package/dist/lib/components/shadow-claw-tasks.js +1 -1
- package/dist/lib/components/shadow-claw-terminal.js +1 -1
- package/dist/lib/components/shadow-claw-tools.js +1 -1
- package/dist/lib/components/shadow-claw-webvm.js +1 -1
- package/dist/lib/components/shadow-claw.js +1 -1
- package/dist/lib/{config--CFrw3J3.js → config-DjZ9QWc4.js} +2 -2
- package/dist/lib/{config--CFrw3J3.js.map → config-DjZ9QWc4.js.map} +1 -1
- package/dist/lib/{configurePeerJs-DG4hliKp.js → configurePeerJs-H0WaoT0w.js} +3 -3
- package/dist/lib/{configurePeerJs-DG4hliKp.js.map → configurePeerJs-H0WaoT0w.js.map} +1 -1
- package/dist/lib/{connections-DwjzwVz0.js → connections-BURqMIUv.js} +2 -2
- package/dist/lib/{connections-DwjzwVz0.js.map → connections-BURqMIUv.js.map} +1 -1
- package/dist/lib/content/markdown-links.d.ts +19 -0
- package/dist/lib/core/app-routes.d.ts +1 -0
- package/dist/lib/{downloadGroupFile-DmcBQU1n.js → downloadGroupFile-B8J4up2a.js} +2 -2
- package/dist/lib/{downloadGroupFile-DmcBQU1n.js.map → downloadGroupFile-B8J4up2a.js.map} +1 -1
- package/dist/lib/{file-viewer-C3YKnq_-.js → file-viewer-CwvhxAAG.js} +5 -5
- package/dist/lib/{file-viewer-C3YKnq_-.js.map → file-viewer-CwvhxAAG.js.map} +1 -1
- package/dist/lib/{getGroupDir-m0f-ekgX.js → getGroupDir-QrN2aTo8.js} +4 -4
- package/dist/lib/{getGroupDir-m0f-ekgX.js.map → getGroupDir-QrN2aTo8.js.map} +1 -1
- package/dist/lib/{git-C-Q6-IVe.js → git-DhZoe1SE.js} +3 -3
- package/dist/lib/{git-C-Q6-IVe.js.map → git-DhZoe1SE.js.map} +1 -1
- package/dist/lib/{iframe-sanitizer-CUqHuWQ-.js → iframe-sanitizer-Bujgq14T.js} +2 -2
- package/dist/lib/{iframe-sanitizer-CUqHuWQ-.js.map → iframe-sanitizer-Bujgq14T.js.map} +1 -1
- package/dist/lib/index.js +27 -27
- package/dist/lib/{initChatSplitResize-yyBTU6h9.js → initChatSplitResize-BjiWoqC_.js} +2 -2
- package/dist/lib/{initChatSplitResize-yyBTU6h9.js.map → initChatSplitResize-BjiWoqC_.js.map} +1 -1
- package/dist/lib/{initControlPlane-DnpAzphg.js → initControlPlane-C9JxQCDh.js} +16 -16
- package/dist/lib/{initControlPlane-DnpAzphg.js.map → initControlPlane-C9JxQCDh.js.map} +1 -1
- package/dist/lib/{markdown-DgdSt2GD.js → markdown-DYHmNjC4.js} +126 -5
- package/dist/lib/markdown-DYHmNjC4.js.map +1 -0
- package/dist/lib/{mcp-reconnect-C86MR3z8.js → mcp-reconnect-BxJ77WSb.js} +2 -2
- package/dist/lib/{mcp-reconnect-C86MR3z8.js.map → mcp-reconnect-BxJ77WSb.js.map} +1 -1
- package/dist/lib/{memoryStorage-UR8E8K-H.js → memoryStorage-D3FBwO9T.js} +2 -2
- package/dist/lib/{memoryStorage-UR8E8K-H.js.map → memoryStorage-D3FBwO9T.js.map} +1 -1
- package/dist/lib/{orchestrator-ClXbJ4Mb.js → orchestrator-C6dc-2OQ.js} +130 -27
- package/dist/lib/{orchestrator-ClXbJ4Mb.js.map → orchestrator-C6dc-2OQ.js.map} +1 -1
- package/dist/lib/{orchestrator-CjEau_RG.js → orchestrator-DVkyd8K9.js} +27 -17
- package/dist/lib/orchestrator-DVkyd8K9.js.map +1 -0
- package/dist/lib/{peerjs-BdfpltIe.js → peerjs-BUS9O04I.js} +274 -60
- package/dist/lib/peerjs-BUS9O04I.js.map +1 -0
- package/dist/lib/{push-client-DjwKknNg.js → push-client-4JsQGmQa.js} +3 -3
- package/dist/lib/{push-client-DjwKknNg.js.map → push-client-4JsQGmQa.js.map} +1 -1
- package/dist/lib/{readGroupFileBytes-C8oOe8Iu.js → readGroupFileBytes-CSA7u-nJ.js} +2 -2
- package/dist/lib/{readGroupFileBytes-C8oOe8Iu.js.map → readGroupFileBytes-CSA7u-nJ.js.map} +1 -1
- package/dist/lib/{shadow-claw-DcPGKenn.js → shadow-claw-BMoF8Auf.js} +11 -11
- package/dist/lib/{shadow-claw-DcPGKenn.js.map → shadow-claw-BMoF8Auf.js.map} +1 -1
- package/dist/lib/{shadow-claw-a2ui-CpZUTzlh.js → shadow-claw-a2ui-2I5nffIn.js} +2 -2
- package/dist/lib/{shadow-claw-a2ui-CpZUTzlh.js.map → shadow-claw-a2ui-2I5nffIn.js.map} +1 -1
- package/dist/lib/{shadow-claw-accounts-03oJ__XC.js → shadow-claw-accounts-BCjlgvzy.js} +3 -3
- package/dist/lib/{shadow-claw-accounts-03oJ__XC.js.map → shadow-claw-accounts-BCjlgvzy.js.map} +1 -1
- package/dist/lib/{shadow-claw-channel-config-DEL-aZ7N.js → shadow-claw-channel-config-CxQAmlDE.js} +3 -3
- package/dist/lib/{shadow-claw-channel-config-DEL-aZ7N.js.map → shadow-claw-channel-config-CxQAmlDE.js.map} +1 -1
- package/dist/lib/{shadow-claw-channels-BgaJiPdE.js → shadow-claw-channels-CuYMUVAG.js} +3 -3
- package/dist/lib/{shadow-claw-channels-BgaJiPdE.js.map → shadow-claw-channels-CuYMUVAG.js.map} +1 -1
- package/dist/lib/{shadow-claw-chat-mXPQZbwT.js → shadow-claw-chat-RFtPmmyl.js} +13 -12
- package/dist/lib/shadow-claw-chat-RFtPmmyl.js.map +1 -0
- package/dist/lib/{shadow-claw-control-plane-DO6foOLV.js → shadow-claw-control-plane-siqmRzR1.js} +7 -7
- package/dist/lib/{shadow-claw-control-plane-DO6foOLV.js.map → shadow-claw-control-plane-siqmRzR1.js.map} +1 -1
- package/dist/lib/{shadow-claw-conversations-BLwHTwdW.js → shadow-claw-conversations-DygK5y1e.js} +7 -7
- package/dist/lib/{shadow-claw-conversations-BLwHTwdW.js.map → shadow-claw-conversations-DygK5y1e.js.map} +1 -1
- package/dist/lib/{shadow-claw-file-viewer-BSbZvSl-.js → shadow-claw-file-viewer-DGMA7d7H.js} +11 -11
- package/dist/lib/shadow-claw-file-viewer-DGMA7d7H.js.map +1 -0
- package/dist/lib/{shadow-claw-files-BLVr9Pua.js → shadow-claw-files-CgD1B9J7.js} +8 -8
- package/dist/lib/{shadow-claw-files-BLVr9Pua.js.map → shadow-claw-files-CgD1B9J7.js.map} +1 -1
- package/dist/lib/{shadow-claw-git-CHC1H86J.js → shadow-claw-git-Bw1jGRrf.js} +6 -6
- package/dist/lib/{shadow-claw-git-CHC1H86J.js.map → shadow-claw-git-Bw1jGRrf.js.map} +1 -1
- package/dist/lib/{shadow-claw-integrations-Ds-CLPhj.js → shadow-claw-integrations-ChaXtvsg.js} +4 -4
- package/dist/lib/{shadow-claw-integrations-Ds-CLPhj.js.map → shadow-claw-integrations-ChaXtvsg.js.map} +1 -1
- package/dist/lib/{shadow-claw-llm-CKXfxd3D.js → shadow-claw-llm-CDM4Akjc.js} +6 -6
- package/dist/lib/{shadow-claw-llm-CKXfxd3D.js.map → shadow-claw-llm-CDM4Akjc.js.map} +1 -1
- package/dist/lib/{shadow-claw-mcp-remote-CT5Q-54E.js → shadow-claw-mcp-remote-BLxs_Z4I.js} +4 -4
- package/dist/lib/{shadow-claw-mcp-remote-CT5Q-54E.js.map → shadow-claw-mcp-remote-BLxs_Z4I.js.map} +1 -1
- package/dist/lib/{shadow-claw-networking-dpYvfchh.js → shadow-claw-networking-BYt-kMSI.js} +2 -2
- package/dist/lib/{shadow-claw-networking-dpYvfchh.js.map → shadow-claw-networking-BYt-kMSI.js.map} +1 -1
- package/dist/lib/{shadow-claw-notifications-_YeAVPga.js → shadow-claw-notifications-Dpe4EtZI.js} +3 -3
- package/dist/lib/{shadow-claw-notifications-_YeAVPga.js.map → shadow-claw-notifications-Dpe4EtZI.js.map} +1 -1
- package/dist/lib/{shadow-claw-page-header-Cti2fzf-.js → shadow-claw-page-header-P4EvWyUr.js} +2 -2
- package/dist/lib/{shadow-claw-page-header-Cti2fzf-.js.map → shadow-claw-page-header-P4EvWyUr.js.map} +1 -1
- package/dist/lib/{shadow-claw-pages-DVzZriZ7.js → shadow-claw-pages-DWd_c4d6.js} +10 -10
- package/dist/lib/{shadow-claw-pages-DVzZriZ7.js.map → shadow-claw-pages-DWd_c4d6.js.map} +1 -1
- package/dist/lib/{shadow-claw-peerjs-BvixjeBz.js → shadow-claw-peerjs-D928817m.js} +3 -3
- package/dist/lib/{shadow-claw-peerjs-BvixjeBz.js.map → shadow-claw-peerjs-D928817m.js.map} +1 -1
- package/dist/lib/{shadow-claw-settings-DV9-gD4Q.js → shadow-claw-settings-C8OPrSqs.js} +8 -8
- package/dist/lib/{shadow-claw-settings-DV9-gD4Q.js.map → shadow-claw-settings-C8OPrSqs.js.map} +1 -1
- package/dist/lib/{shadow-claw-storage-Bv__kXG6.js → shadow-claw-storage-CZ2uZJNw.js} +5 -5
- package/dist/lib/{shadow-claw-storage-Bv__kXG6.js.map → shadow-claw-storage-CZ2uZJNw.js.map} +1 -1
- package/dist/lib/{shadow-claw-task-server-DNOe8PWK.js → shadow-claw-task-server-CLT018BX.js} +2 -2
- package/dist/lib/{shadow-claw-task-server-DNOe8PWK.js.map → shadow-claw-task-server-CLT018BX.js.map} +1 -1
- package/dist/lib/{shadow-claw-tasks-qmcDT4PU.js → shadow-claw-tasks-D5h-lGmq.js} +9 -8
- package/dist/lib/shadow-claw-tasks-D5h-lGmq.js.map +1 -0
- package/dist/lib/{shadow-claw-terminal-0QUWP8of.js → shadow-claw-terminal-Cy1O6KVM.js} +2 -2
- package/dist/lib/{shadow-claw-terminal-0QUWP8of.js.map → shadow-claw-terminal-Cy1O6KVM.js.map} +1 -1
- package/dist/lib/{shadow-claw-tools-Bs_bmI6-.js → shadow-claw-tools-CVD06bCR.js} +9 -9
- package/dist/lib/{shadow-claw-tools-Bs_bmI6-.js.map → shadow-claw-tools-CVD06bCR.js.map} +1 -1
- package/dist/lib/{shadow-claw-webvm-DYaoL7QY.js → shadow-claw-webvm-DoGl5ZSJ.js} +3 -3
- package/dist/lib/{shadow-claw-webvm-DYaoL7QY.js.map → shadow-claw-webvm-DoGl5ZSJ.js.map} +1 -1
- package/dist/lib/subsystems/channels/peerjs.d.ts +37 -4
- package/dist/lib/subsystems/channels/room.d.ts +4 -0
- package/dist/lib/{syncWebMcpRegistration-BhbqI6R2.js → syncWebMcpRegistration-BeYkQEvj.js} +5 -5
- package/dist/lib/{syncWebMcpRegistration-BhbqI6R2.js.map → syncWebMcpRegistration-BeYkQEvj.js.map} +1 -1
- package/dist/lib/tools-C3Kft940.js +1 -0
- package/dist/lib/{tools-DBaMRiEu.js → tools-DKzPWc0q.js} +2 -2
- package/dist/lib/{tools-DBaMRiEu.js.map → tools-DKzPWc0q.js.map} +1 -1
- package/dist/lib/{tools-DwwB9RBa.js → tools-DqcJe8LS.js} +5 -5
- package/dist/lib/{tools-DwwB9RBa.js.map → tools-DqcJe8LS.js.map} +1 -1
- package/dist/lib/{trusted-types-Dx0RZlrd.js → trusted-types-Oz7xXJAY.js} +4 -4
- package/dist/lib/{trusted-types-Dx0RZlrd.js.map → trusted-types-Oz7xXJAY.js.map} +1 -1
- package/dist/lib/utils/index.js +1 -1
- package/dist/lib/utils/namespacedStorage.js +1 -1
- package/dist/lib/utils/utils.js +1 -1
- package/dist/lib/{webmcp-j_1_T3wf.js → webmcp-BC8_WafM.js} +4 -4
- package/dist/lib/{webmcp-j_1_T3wf.js.map → webmcp-BC8_WafM.js.map} +1 -1
- package/dist/lib/worker/utils/system-prompt.d.ts +4 -1
- package/dist/public/.agents/skills/main/skill-creator/SKILL.md +3 -2
- package/dist/public/.agents/skills/main/skill-creator/references/frontmatter-spec.md +5 -3
- package/dist/public/.well-known/agent-skills/index.json +1 -1
- package/dist/public/.well-known/mcp/server-card.json +1 -1
- package/dist/public/.well-known/mcp.json +1 -1
- package/dist/public/agent.worker.js +18 -17
- package/dist/public/app-routes-BMQ4HFaM.js +1 -0
- package/dist/public/{bundler-Ca-Xwln8.js → bundler-0if-QelV.js} +4 -4
- package/dist/public/{config-CrHchneq.js → config-Bnwx4EfS.js} +1 -1
- package/dist/public/{configurePeerJs-B470pdeU.js → configurePeerJs-DkyGvwk_.js} +1 -1
- package/dist/public/{connections-DvbgdkaB.js → connections-6575KDGE.js} +1 -1
- package/dist/public/{custom-element-security-FU04Cq05.js → custom-element-security-BQJQ_oKz.js} +1 -1
- package/dist/public/docs/example/article/index.html +2 -2
- package/dist/public/docs/publishing/index.html +2 -2
- package/dist/public/docs/skill-creator/index.html +2 -2
- package/dist/public/docs/subsystems/skills.md +3 -1
- package/dist/public/{downloadGroupFile-D8KRJGGL.js → downloadGroupFile-Wo1Sxdhr.js} +1 -1
- package/dist/public/{e2e-bridge-CSW0S5Yz.js → e2e-bridge-CvLCUU2O.js} +1 -1
- package/dist/public/{file-viewer-Cs-riNvy.js → file-viewer-CIjqAvNF.js} +1 -1
- package/dist/public/{getGroupDir-P1h9wl6S.js → getGroupDir-BwprrdrQ.js} +1 -1
- package/dist/public/{git-7Vq_SJSp.js → git-BSnY2D-A.js} +2 -2
- package/dist/public/{iframe-sanitizer-y2Z1pPwY.js → iframe-sanitizer-viROQkRn.js} +1 -1
- package/dist/public/index.html +2 -2
- package/dist/public/index.js +1 -1
- package/dist/public/{initChatSplitResize-CzV2E7Ul.js → initChatSplitResize-BA18wLQQ.js} +1 -1
- package/dist/public/{initControlPlane-BqCY0NQy.js → initControlPlane-L96uJkRA.js} +1 -1
- package/dist/public/main/index.html +2 -2
- package/dist/public/main/memory/index.html +2 -2
- package/dist/public/{markdown-Cw7vCtTg.js → markdown-DGjZAm_w.js} +17 -14
- package/dist/public/{mcp-reconnect-9emsqGRe.js → mcp-reconnect-CBHuaYdF.js} +1 -1
- package/dist/public/{memoryStorage-C0KvLNUp.js → memoryStorage-C1llaYus.js} +1 -1
- package/dist/public/orchestrator-C0VOoTiK.js +15 -0
- package/dist/public/{orchestrator-DpkkeD6T.js → orchestrator-DMWi--Dc.js} +20 -19
- package/dist/public/peerjs-Bf6ZxfbA.js +1 -0
- package/dist/public/{push-client-CHjSbrWs.js → push-client-BD4YalBa.js} +1 -1
- package/dist/public/service-worker.js +1 -1
- package/dist/public/{shadow-claw-BBPV_9X8.js → shadow-claw-DRy-D4Qi.js} +2 -2
- package/dist/public/{shadow-claw-accounts-xUOLBsQZ.js → shadow-claw-accounts-DnfmA8cb.js} +1 -1
- package/dist/public/{shadow-claw-channels-BJvrKQjg.js → shadow-claw-channels-8UkycZAa.js} +1 -1
- package/dist/public/{shadow-claw-chat-BG2EaRaw.js → shadow-claw-chat-Cf5LUiul.js} +9 -9
- package/dist/public/{shadow-claw-control-plane-BBa7WbTg.js → shadow-claw-control-plane-UsBF-Nvd.js} +2 -2
- package/dist/public/{shadow-claw-conversations-CFaWFmkm.js → shadow-claw-conversations-Aoe61Y21.js} +1 -1
- package/dist/public/{shadow-claw-file-viewer-Z-GIKaE9.js → shadow-claw-file-viewer-D28dSSEn.js} +6 -6
- package/dist/public/{shadow-claw-files-BBx4iMsk.js → shadow-claw-files-CaDUlPEU.js} +1 -1
- package/dist/public/{shadow-claw-git-vTOKatwd.js → shadow-claw-git-DYNcZMWA.js} +2 -2
- package/dist/public/{shadow-claw-integrations-BBVnO0Fc.js → shadow-claw-integrations-BJf_hQVv.js} +1 -1
- package/dist/public/{shadow-claw-llm-Ce1Ax6-x.js → shadow-claw-llm-BqK2SIRf.js} +2 -2
- package/dist/public/{shadow-claw-mcp-remote-Bkx0gsmF.js → shadow-claw-mcp-remote-B_dDG990.js} +1 -1
- package/dist/public/{shadow-claw-networking-q4XIzdB5.js → shadow-claw-networking-D8LxOofv.js} +1 -1
- package/dist/public/{shadow-claw-notifications-D2cz0gmm.js → shadow-claw-notifications-DpVyiNG_.js} +1 -1
- package/dist/public/{shadow-claw-page-header-BccSHItx.js → shadow-claw-page-header-DdC7bJuW.js} +1 -1
- package/dist/public/{shadow-claw-pages-3335lmSC.js → shadow-claw-pages-CYMl4J-6.js} +3 -3
- package/dist/public/{shadow-claw-settings-4ptYuJwO.js → shadow-claw-settings-Da_8Oy3O.js} +3 -3
- package/dist/public/{shadow-claw-storage-bIrPKFhF.js → shadow-claw-storage-DXIm86_-.js} +1 -1
- package/dist/public/{shadow-claw-task-server-5yqVBxy1.js → shadow-claw-task-server-BCceBD0G.js} +1 -1
- package/dist/public/{shadow-claw-tasks-DcqYHPLZ.js → shadow-claw-tasks-BW1QZ5L3.js} +19 -19
- package/dist/public/{shadow-claw-terminal-fARaDONr.js → shadow-claw-terminal-vqfsxhcK.js} +1 -1
- package/dist/public/{shadow-claw-tools-paEAhcJr.js → shadow-claw-tools-l0Jsa7UJ.js} +1 -1
- package/dist/public/{shadow-claw-webvm-CbzH_vyX.js → shadow-claw-webvm-CDPOWZm7.js} +1 -1
- package/dist/public/skills/main/skill-creator/SKILL.md +3 -2
- package/dist/public/skills/main/skill-creator/references/frontmatter-spec.md +5 -3
- package/dist/public/static-main-manifest.json +2 -2
- package/dist/public/{syncWebMcpRegistration-CWSYaHex.js → syncWebMcpRegistration-5b5FkP9_.js} +1 -1
- package/dist/public/tools-B-PzsLc2.js +1 -0
- package/dist/public/{tools-C8x3nmo4.js → tools-CcgG5XuA.js} +1 -1
- package/dist/public/{tools-DvckJZG2.js → tools-VSOY66vs.js} +1 -1
- package/dist/public/{webmcp-DAjmliCx.js → webmcp-DBONjQWd.js} +1 -1
- package/dist/server.js +2 -2
- package/package.json +2 -2
- package/src/__mocks__/marked.cjs +14 -0
- package/src/components/shadow-claw-chat/shadow-claw-chat.test.ts +17 -0
- package/src/components/shadow-claw-chat/shadow-claw-chat.ts +5 -1
- package/src/components/shadow-claw-file-viewer/shadow-claw-file-viewer.test.ts +78 -0
- package/src/components/shadow-claw-file-viewer/shadow-claw-file-viewer.ts +6 -2
- package/src/components/shadow-claw-pages/utils/resolveWorkspaceLinkPath.test.ts +56 -0
- package/src/components/shadow-claw-tasks/shadow-claw-tasks.test.ts +22 -0
- package/src/components/shadow-claw-tasks/shadow-claw-tasks.ts +5 -1
- package/src/content/markdown-links.test.ts +109 -0
- package/src/content/markdown-links.ts +187 -0
- package/src/content/markdown.test.ts +33 -0
- package/src/content/markdown.ts +6 -1
- package/src/core/app-routes.test.ts +65 -0
- package/src/core/app-routes.ts +1 -1
- package/src/core/orchestrator/orchestrator.ts +3 -0
- package/src/core/orchestrator/utils/compactContext.ts +2 -0
- package/src/core/orchestrator/utils/invokeAgent.ts +1 -0
- package/src/subsystems/accounts/service-accounts.test.ts +0 -1
- package/src/subsystems/channels/peerjs.test.ts +479 -1
- package/src/subsystems/channels/peerjs.ts +420 -75
- package/src/subsystems/channels/room.test.ts +35 -0
- package/src/subsystems/channels/room.ts +15 -0
- package/src/subsystems/skills/activateSkill.test.ts +38 -5
- package/src/subsystems/skills/activateSkill.ts +25 -3
- package/src/subsystems/skills/parseSkill.test.ts +71 -0
- package/src/subsystems/skills/parseSkill.ts +185 -25
- package/src/subsystems/tools/files.ts +4 -4
- package/src/worker/tools/spawn-subagent/spawn-subagent.test.ts +22 -23
- package/src/worker/tools/workspace/send-file.test.ts +24 -1
- package/src/worker/tools/workspace/send-file.ts +6 -3
- package/src/worker/utils/handleCompact.test.ts +3 -4
- package/src/worker/utils/handleInvoke.test.ts +13 -11
- package/src/worker/utils/handleInvoke.ts +3 -0
- package/src/worker/utils/handleMessage.test.ts +0 -1
- package/src/worker/utils/post.test.ts +3 -4
- package/src/worker/utils/sandboxedEval.test.ts +1 -2
- package/src/worker/utils/system-prompt.test.ts +59 -0
- package/src/worker/utils/system-prompt.ts +21 -1
- package/src/worker/utils/withRetry.test.ts +3 -16
- package/dist/lib/app-routes-CqBOeA5q.js.map +0 -1
- package/dist/lib/markdown-DgdSt2GD.js.map +0 -1
- package/dist/lib/orchestrator-CjEau_RG.js.map +0 -1
- package/dist/lib/peerjs-BdfpltIe.js.map +0 -1
- package/dist/lib/shadow-claw-chat-mXPQZbwT.js.map +0 -1
- package/dist/lib/shadow-claw-file-viewer-BSbZvSl-.js.map +0 -1
- package/dist/lib/shadow-claw-tasks-qmcDT4PU.js.map +0 -1
- package/dist/lib/tools-D4Pp-nUw.js +0 -1
- package/dist/public/app-routes-Bs-riIvr.js +0 -1
- package/dist/public/orchestrator-BWkHHO9Y.js +0 -15
- package/dist/public/peerjs-tf2EmWjB.js +0 -1
- package/dist/public/tools-COduyYJ0.js +0 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-aKtaBQYM.js";import{o as t}from"./config-
|
|
1
|
+
import{n as e}from"./rolldown-runtime-aKtaBQYM.js";import{o as t}from"./config-Bnwx4EfS.js";import{t as n}from"./tools-CcgG5XuA.js";import"./tools-B-PzsLc2.js";function r(e,t){let n=typeof e;if(n!==typeof t)return!1;if(Array.isArray(e)){if(!Array.isArray(t))return!1;let n=e.length;if(n!==t.length)return!1;for(let i=0;i<n;i++)if(!r(e[i],t[i]))return!1;return!0}if(n===`object`){if(!e||!t)return e===t;let n=Object.keys(e),i=Object.keys(t);if(n.length!==i.length)return!1;for(let i of n)if(!r(e[i],t[i]))return!1;return!0}return e===t}function i(e){return encodeURI(a(e))}function a(e){return e.replace(/~/g,`~0`).replace(/\//g,`~1`)}const o={prefixItems:!0,items:!0,allOf:!0,anyOf:!0,oneOf:!0},s={$defs:!0,definitions:!0,properties:!0,patternProperties:!0,dependentSchemas:!0},c={id:!0,$id:!0,$ref:!0,$schema:!0,$anchor:!0,$vocabulary:!0,$comment:!0,default:!0,enum:!0,const:!0,required:!0,type:!0,maximum:!0,minimum:!0,exclusiveMaximum:!0,exclusiveMinimum:!0,multipleOf:!0,maxLength:!0,minLength:!0,pattern:!0,format:!0,maxItems:!0,minItems:!0,uniqueItems:!0,maxProperties:!0,minProperties:!0};let l=typeof self<`u`&&self.location&&self.location.origin!==`null`?new URL(self.location.origin+self.location.pathname+location.search):new URL(`https://github.com/cfworker`);function u(e,t=Object.create(null),n=l,r=``){if(e&&typeof e==`object`&&!Array.isArray(e)){let i=e.$id||e.id;if(i){let a=new URL(i,n.href);a.hash.length>1?t[a.href]=e:(a.hash=``,r===``?n=a:u(e,t,n))}}else if(e!==!0&&e!==!1)return t;let a=n.href+(r?`#`+r:``);if(t[a]!==void 0)throw Error(`Duplicate schema URI "${a}".`);if(t[a]=e,e===!0||e===!1)return t;if(e.__absolute_uri__===void 0&&Object.defineProperty(e,"__absolute_uri__",{enumerable:!1,value:a}),e.$ref&&e.__absolute_ref__===void 0){let t=new URL(e.$ref,n.href);t.hash=t.hash,Object.defineProperty(e,"__absolute_ref__",{enumerable:!1,value:t.href})}if(e.$recursiveRef&&e.__absolute_recursive_ref__===void 0){let t=new URL(e.$recursiveRef,n.href);t.hash=t.hash,Object.defineProperty(e,"__absolute_recursive_ref__",{enumerable:!1,value:t.href})}if(e.$anchor){let r=new URL(`#`+e.$anchor,n.href);t[r.href]=e}for(let a in e){if(c[a])continue;let l=`${r}/${i(a)}`,d=e[a];if(Array.isArray(d)){if(o[a]){let e=d.length;for(let r=0;r<e;r++)u(d[r],t,n,`${l}/${r}`)}}else if(s[a])for(let e in d)u(d[e],t,n,`${l}/${i(e)}`);else u(d,t,n,l)}return t}const d=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,f=[0,31,28,31,30,31,30,31,31,30,31,30,31],p=/^(\d\d):(\d\d):(\d\d)(\.\d+)?(z|[+-]\d\d(?::?\d\d)?)?$/i,m=/^(?=.{1,253}\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\.?$/i,ee=/^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\?(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,h=/^(?:(?:[^\x00-\x20"'<>%\\^`{|}]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i,g=/^(?:(?:https?|ftp):\/\/)(?:\S+(?::\S*)?@)?(?:(?!10(?:\.\d{1,3}){3})(?!127(?:\.\d{1,3}){3})(?!169\.254(?:\.\d{1,3}){2})(?!192\.168(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\u{00a1}-\u{ffff}0-9]+-?)*[a-z\u{00a1}-\u{ffff}0-9]+)(?:\.(?:[a-z\u{00a1}-\u{ffff}0-9]+-?)*[a-z\u{00a1}-\u{ffff}0-9]+)*(?:\.(?:[a-z\u{00a1}-\u{ffff}]{2,})))(?::\d{2,5})?(?:\/[^\s]*)?$/iu,_=/^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,v=/^(?:\/(?:[^~/]|~0|~1)*)*$/,te=/^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i,ne=/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/,y=e=>{if(e[0]===`"`)return!1;let[t,n,...r]=e.split(`@`);return!t||!n||r.length!==0||t.length>64||n.length>253||t[0]===`.`||t.endsWith(`.`)||t.includes(`..`)||!/^[a-z0-9.-]+$/i.test(n)||!/^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+$/i.test(t)?!1:n.split(`.`).every(e=>/^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$/i.test(e))},b=/^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,re=/^((([0-9a-f]{1,4}:){7}([0-9a-f]{1,4}|:))|(([0-9a-f]{1,4}:){6}(:[0-9a-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){5}(((:[0-9a-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){4}(((:[0-9a-f]{1,4}){1,3})|((:[0-9a-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){3}(((:[0-9a-f]{1,4}){1,4})|((:[0-9a-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){2}(((:[0-9a-f]{1,4}){1,5})|((:[0-9a-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){1}(((:[0-9a-f]{1,4}){1,6})|((:[0-9a-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9a-f]{1,4}){1,7})|((:[0-9a-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))$/i,ie=e=>e.length>1&&e.length<80&&(/^P\d+([.,]\d+)?W$/.test(e)||/^P[\dYMDTHS]*(\d[.,]\d+)?[YMDHS]$/.test(e)&&/^P([.,\d]+Y)?([.,\d]+M)?([.,\d]+D)?(T([.,\d]+H)?([.,\d]+M)?([.,\d]+S)?)?$/.test(e));function x(e){return e.test.bind(e)}const ae={date:S,time:C.bind(void 0,!1),"date-time":se,duration:ie,uri:E,"uri-reference":x(ee),"uri-template":x(h),url:x(g),email:y,hostname:x(m),ipv4:x(b),ipv6:x(re),regex:D,uuid:x(_),"json-pointer":x(v),"json-pointer-uri-fragment":x(te),"relative-json-pointer":x(ne)};function oe(e){return e%4==0&&(e%100!=0||e%400==0)}function S(e){let t=e.match(d);if(!t)return!1;let n=+t[1],r=+t[2],i=+t[3];return r>=1&&r<=12&&i>=1&&i<=(r==2&&oe(n)?29:f[r])}function C(e,t){let n=t.match(p);if(!n)return!1;let r=+n[1],i=+n[2],a=+n[3],o=!!n[5];return(r<=23&&i<=59&&a<=59||r==23&&i==59&&a==60)&&(!e||o)}const w=/t|\s/i;function se(e){let t=e.split(w);return t.length==2&&S(t[0])&&C(!0,t[1])}const ce=/\/|:/,T=/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\?(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i;function E(e){return ce.test(e)&&T.test(e)}const le=/[^\\]\\Z/;function D(e){if(le.test(e))return!1;try{return new RegExp(e,`u`),!0}catch{return!1}}function ue(e){let t=0,n=e.length,r=0,i;for(;r<n;)t++,i=e.charCodeAt(r++),i>=55296&&i<=56319&&r<n&&(i=e.charCodeAt(r),(i&64512)==56320&&r++);return t}function O(e,t,n=`2019-09`,a=u(t),o=!0,s=null,c=`#`,l=`#`,d=Object.create(null)){if(t===!0)return{valid:!0,errors:[]};if(t===!1)return{valid:!1,errors:[{instanceLocation:c,keyword:`false`,keywordLocation:c,error:`False boolean schema.`}]};let f=typeof e,p;switch(f){case`boolean`:case`number`:case`string`:p=f;break;case`object`:p=e===null?`null`:Array.isArray(e)?`array`:`object`;break;default:throw Error(`Instances of "${f}" type are not supported.`)}let{$ref:m,$recursiveRef:ee,$recursiveAnchor:h,type:g,const:_,enum:v,required:te,not:ne,anyOf:y,allOf:b,oneOf:re,if:ie,then:x,else:oe,format:S,properties:C,patternProperties:w,additionalProperties:se,unevaluatedProperties:ce,minProperties:T,maxProperties:E,propertyNames:le,dependentRequired:D,dependentSchemas:k,dependencies:A,prefixItems:j,items:M,additionalItems:N,unevaluatedItems:de,contains:P,minContains:F,maxContains:I,minItems:L,maxItems:R,uniqueItems:fe,minimum:z,maximum:B,exclusiveMinimum:V,exclusiveMaximum:H,multipleOf:U,minLength:W,maxLength:G,pattern:pe,__absolute_ref__:K,__absolute_recursive_ref__:q}=t,J=[];if(h===!0&&s===null&&(s=t),ee===`#`){let r=s===null?a[q]:s,i=`${l}/$recursiveRef`,u=O(e,s===null?t:s,n,a,o,r,c,i,d);u.valid||J.push({instanceLocation:c,keyword:`$recursiveRef`,keywordLocation:i,error:`A subschema had errors.`},...u.errors)}if(m!==void 0){let t=a[K||m];if(t===void 0){let e=`Unresolved $ref "${m}".`;throw K&&K!==m&&(e+=` Absolute URI "${K}".`),e+=`\nKnown schemas:\n- ${Object.keys(a).join(`
|
|
2
2
|
- `)}`,Error(e)}let r=`${l}/$ref`,i=O(e,t,n,a,o,s,c,r,d);if(i.valid||J.push({instanceLocation:c,keyword:`$ref`,keywordLocation:r,error:`A subschema had errors.`},...i.errors),n===`4`||n===`7`)return{valid:J.length===0,errors:J}}if(Array.isArray(g)){let t=g.length,n=!1;for(let r=0;r<t;r++)if(p===g[r]||g[r]===`integer`&&p===`number`&&e%1==0&&e===e){n=!0;break}n||J.push({instanceLocation:c,keyword:`type`,keywordLocation:`${l}/type`,error:`Instance type "${p}" is invalid. Expected "${g.join(`", "`)}".`})}else g===`integer`?(p!==`number`||e%1||e!==e)&&J.push({instanceLocation:c,keyword:`type`,keywordLocation:`${l}/type`,error:`Instance type "${p}" is invalid. Expected "${g}".`}):g!==void 0&&p!==g&&J.push({instanceLocation:c,keyword:`type`,keywordLocation:`${l}/type`,error:`Instance type "${p}" is invalid. Expected "${g}".`});if(_!==void 0&&(p===`object`||p===`array`?r(e,_)||J.push({instanceLocation:c,keyword:`const`,keywordLocation:`${l}/const`,error:`Instance does not match ${JSON.stringify(_)}.`}):e!==_&&J.push({instanceLocation:c,keyword:`const`,keywordLocation:`${l}/const`,error:`Instance does not match ${JSON.stringify(_)}.`})),v!==void 0&&(p===`object`||p===`array`?v.some(t=>r(e,t))||J.push({instanceLocation:c,keyword:`enum`,keywordLocation:`${l}/enum`,error:`Instance does not match any of ${JSON.stringify(v)}.`}):v.some(t=>e===t)||J.push({instanceLocation:c,keyword:`enum`,keywordLocation:`${l}/enum`,error:`Instance does not match any of ${JSON.stringify(v)}.`})),ne!==void 0){let t=`${l}/not`;O(e,ne,n,a,o,s,c,t).valid&&J.push({instanceLocation:c,keyword:`not`,keywordLocation:t,error:`Instance matched "not" schema.`})}let Y=[];if(y!==void 0){let t=`${l}/anyOf`,r=J.length,i=!1;for(let r=0;r<y.length;r++){let l=y[r],u=Object.create(d),f=O(e,l,n,a,o,h===!0?s:null,c,`${t}/${r}`,u);J.push(...f.errors),i||=f.valid,f.valid&&Y.push(u)}i?J.length=r:J.splice(r,0,{instanceLocation:c,keyword:`anyOf`,keywordLocation:t,error:`Instance does not match any subschemas.`})}if(b!==void 0){let t=`${l}/allOf`,r=J.length,i=!0;for(let r=0;r<b.length;r++){let l=b[r],u=Object.create(d),f=O(e,l,n,a,o,h===!0?s:null,c,`${t}/${r}`,u);J.push(...f.errors),i&&=f.valid,f.valid&&Y.push(u)}i?J.length=r:J.splice(r,0,{instanceLocation:c,keyword:`allOf`,keywordLocation:t,error:`Instance does not match every subschema.`})}if(re!==void 0){let t=`${l}/oneOf`,r=J.length,i=re.filter((r,i)=>{let l=Object.create(d),u=O(e,r,n,a,o,h===!0?s:null,c,`${t}/${i}`,l);return J.push(...u.errors),u.valid&&Y.push(l),u.valid}).length;i===1?J.length=r:J.splice(r,0,{instanceLocation:c,keyword:`oneOf`,keywordLocation:t,error:`Instance does not match exactly one subschema (${i} matches).`})}if((p===`object`||p===`array`)&&Object.assign(d,...Y),ie!==void 0){let t=`${l}/if`;if(O(e,ie,n,a,o,s,c,t,d).valid){if(x!==void 0){let r=O(e,x,n,a,o,s,c,`${l}/then`,d);r.valid||J.push({instanceLocation:c,keyword:`if`,keywordLocation:t,error:`Instance does not match "then" schema.`},...r.errors)}}else if(oe!==void 0){let r=O(e,oe,n,a,o,s,c,`${l}/else`,d);r.valid||J.push({instanceLocation:c,keyword:`if`,keywordLocation:t,error:`Instance does not match "else" schema.`},...r.errors)}}if(p===`object`){if(te!==void 0)for(let t of te)t in e||J.push({instanceLocation:c,keyword:`required`,keywordLocation:`${l}/required`,error:`Instance does not have required property "${t}".`});let t=Object.keys(e);if(T!==void 0&&t.length<T&&J.push({instanceLocation:c,keyword:`minProperties`,keywordLocation:`${l}/minProperties`,error:`Instance does not have at least ${T} properties.`}),E!==void 0&&t.length>E&&J.push({instanceLocation:c,keyword:`maxProperties`,keywordLocation:`${l}/maxProperties`,error:`Instance does not have at least ${E} properties.`}),le!==void 0){let t=`${l}/propertyNames`;for(let r in e){let e=`${c}/${i(r)}`,l=O(r,le,n,a,o,s,e,t);l.valid||J.push({instanceLocation:c,keyword:`propertyNames`,keywordLocation:t,error:`Property name "${r}" does not match schema.`},...l.errors)}}if(D!==void 0){let t=`${l}/dependantRequired`;for(let n in D)if(n in e){let r=D[n];for(let i of r)i in e||J.push({instanceLocation:c,keyword:`dependentRequired`,keywordLocation:t,error:`Instance has "${n}" but does not have "${i}".`})}}if(k!==void 0)for(let t in k){let r=`${l}/dependentSchemas`;if(t in e){let l=O(e,k[t],n,a,o,s,c,`${r}/${i(t)}`,d);l.valid||J.push({instanceLocation:c,keyword:`dependentSchemas`,keywordLocation:r,error:`Instance has "${t}" but does not match dependant schema.`},...l.errors)}}if(A!==void 0){let t=`${l}/dependencies`;for(let r in A)if(r in e){let l=A[r];if(Array.isArray(l))for(let n of l)n in e||J.push({instanceLocation:c,keyword:`dependencies`,keywordLocation:t,error:`Instance has "${r}" but does not have "${n}".`});else{let u=O(e,l,n,a,o,s,c,`${t}/${i(r)}`);u.valid||J.push({instanceLocation:c,keyword:`dependencies`,keywordLocation:t,error:`Instance has "${r}" but does not match dependant schema.`},...u.errors)}}}let r=Object.create(null),u=!1;if(C!==void 0){let t=`${l}/properties`;for(let l in C){if(!(l in e))continue;let f=`${c}/${i(l)}`,p=O(e[l],C[l],n,a,o,s,f,`${t}/${i(l)}`);if(p.valid)d[l]=r[l]=!0;else if(u=o,J.push({instanceLocation:c,keyword:`properties`,keywordLocation:t,error:`Property "${l}" does not match schema.`},...p.errors),u)break}}if(!u&&w!==void 0){let t=`${l}/patternProperties`;for(let l in w){let f=new RegExp(l,`u`),p=w[l];for(let m in e){if(!f.test(m))continue;let ee=`${c}/${i(m)}`,h=O(e[m],p,n,a,o,s,ee,`${t}/${i(l)}`);h.valid?d[m]=r[m]=!0:(u=o,J.push({instanceLocation:c,keyword:`patternProperties`,keywordLocation:t,error:`Property "${m}" matches pattern "${l}" but does not match associated schema.`},...h.errors))}}}if(!u&&se!==void 0){let t=`${l}/additionalProperties`;for(let l in e){if(r[l])continue;let f=`${c}/${i(l)}`,p=O(e[l],se,n,a,o,s,f,t);p.valid?d[l]=!0:(u=o,J.push({instanceLocation:c,keyword:`additionalProperties`,keywordLocation:t,error:`Property "${l}" does not match additional properties schema.`},...p.errors))}}else if(!u&&ce!==void 0){let t=`${l}/unevaluatedProperties`;for(let r in e)if(!d[r]){let l=`${c}/${i(r)}`,u=O(e[r],ce,n,a,o,s,l,t);u.valid?d[r]=!0:J.push({instanceLocation:c,keyword:`unevaluatedProperties`,keywordLocation:t,error:`Property "${r}" does not match unevaluated properties schema.`},...u.errors)}}}else if(p===`array`){R!==void 0&&e.length>R&&J.push({instanceLocation:c,keyword:`maxItems`,keywordLocation:`${l}/maxItems`,error:`Array has too many items (${e.length} > ${R}).`}),L!==void 0&&e.length<L&&J.push({instanceLocation:c,keyword:`minItems`,keywordLocation:`${l}/minItems`,error:`Array has too few items (${e.length} < ${L}).`});let t=e.length,i=0,u=!1;if(j!==void 0){let r=`${l}/prefixItems`,f=Math.min(j.length,t);for(;i<f;i++){let t=O(e[i],j[i],n,a,o,s,`${c}/${i}`,`${r}/${i}`);if(d[i]=!0,!t.valid&&(u=o,J.push({instanceLocation:c,keyword:`prefixItems`,keywordLocation:r,error:`Items did not match schema.`},...t.errors),u))break}}if(M!==void 0){let r=`${l}/items`;if(Array.isArray(M)){let l=Math.min(M.length,t);for(;i<l;i++){let t=O(e[i],M[i],n,a,o,s,`${c}/${i}`,`${r}/${i}`);if(d[i]=!0,!t.valid&&(u=o,J.push({instanceLocation:c,keyword:`items`,keywordLocation:r,error:`Items did not match schema.`},...t.errors),u))break}}else for(;i<t;i++){let t=O(e[i],M,n,a,o,s,`${c}/${i}`,r);if(d[i]=!0,!t.valid&&(u=o,J.push({instanceLocation:c,keyword:`items`,keywordLocation:r,error:`Items did not match schema.`},...t.errors),u))break}if(!u&&N!==void 0){let r=`${l}/additionalItems`;for(;i<t;i++){let t=O(e[i],N,n,a,o,s,`${c}/${i}`,r);d[i]=!0,t.valid||(u=o,J.push({instanceLocation:c,keyword:`additionalItems`,keywordLocation:r,error:`Items did not match additional items schema.`},...t.errors))}}}if(P!==void 0)if(t===0&&F===void 0)J.push({instanceLocation:c,keyword:`contains`,keywordLocation:`${l}/contains`,error:`Array is empty. It must contain at least one item matching the schema.`});else if(F!==void 0&&t<F)J.push({instanceLocation:c,keyword:`minContains`,keywordLocation:`${l}/minContains`,error:`Array has less items (${t}) than minContains (${F}).`});else{let r=`${l}/contains`,i=J.length,u=0;for(let i=0;i<t;i++){let t=O(e[i],P,n,a,o,s,`${c}/${i}`,r);t.valid?(d[i]=!0,u++):J.push(...t.errors)}u>=(F||0)&&(J.length=i),F===void 0&&I===void 0&&u===0?J.splice(i,0,{instanceLocation:c,keyword:`contains`,keywordLocation:r,error:`Array does not contain item matching schema.`}):F!==void 0&&u<F?J.push({instanceLocation:c,keyword:`minContains`,keywordLocation:`${l}/minContains`,error:`Array must contain at least ${F} items matching schema. Only ${u} items were found.`}):I!==void 0&&u>I&&J.push({instanceLocation:c,keyword:`maxContains`,keywordLocation:`${l}/maxContains`,error:`Array may contain at most ${I} items matching schema. ${u} items were found.`})}if(!u&&de!==void 0){let r=`${l}/unevaluatedItems`;for(;i<t;i++){if(d[i])continue;let t=O(e[i],de,n,a,o,s,`${c}/${i}`,r);d[i]=!0,t.valid||J.push({instanceLocation:c,keyword:`unevaluatedItems`,keywordLocation:r,error:`Items did not match unevaluated items schema.`},...t.errors)}}if(fe)for(let n=0;n<t;n++){let i=e[n],a=typeof i==`object`&&!!i;for(let o=0;o<t;o++){if(n===o)continue;let t=e[o];(i===t||a&&typeof t==`object`&&t&&r(i,t))&&(J.push({instanceLocation:c,keyword:`uniqueItems`,keywordLocation:`${l}/uniqueItems`,error:`Duplicate items at indexes ${n} and ${o}.`}),n=2**53-1,o=2**53-1)}}}else if(p===`number`){if(n===`4`?(z!==void 0&&(V===!0&&e<=z||e<z)&&J.push({instanceLocation:c,keyword:`minimum`,keywordLocation:`${l}/minimum`,error:`${e} is less than ${V?`or equal to `:``} ${z}.`}),B!==void 0&&(H===!0&&e>=B||e>B)&&J.push({instanceLocation:c,keyword:`maximum`,keywordLocation:`${l}/maximum`,error:`${e} is greater than ${H?`or equal to `:``} ${B}.`})):(z!==void 0&&e<z&&J.push({instanceLocation:c,keyword:`minimum`,keywordLocation:`${l}/minimum`,error:`${e} is less than ${z}.`}),B!==void 0&&e>B&&J.push({instanceLocation:c,keyword:`maximum`,keywordLocation:`${l}/maximum`,error:`${e} is greater than ${B}.`}),V!==void 0&&e<=V&&J.push({instanceLocation:c,keyword:`exclusiveMinimum`,keywordLocation:`${l}/exclusiveMinimum`,error:`${e} is less than ${V}.`}),H!==void 0&&e>=H&&J.push({instanceLocation:c,keyword:`exclusiveMaximum`,keywordLocation:`${l}/exclusiveMaximum`,error:`${e} is greater than or equal to ${H}.`})),U!==void 0){let t=e%U;Math.abs(0-t)>=1.1920929e-7&&Math.abs(U-t)>=1.1920929e-7&&J.push({instanceLocation:c,keyword:`multipleOf`,keywordLocation:`${l}/multipleOf`,error:`${e} is not a multiple of ${U}.`})}}else if(p===`string`){let t=W===void 0&&G===void 0?0:ue(e);W!==void 0&&t<W&&J.push({instanceLocation:c,keyword:`minLength`,keywordLocation:`${l}/minLength`,error:`String is too short (${t} < ${W}).`}),G!==void 0&&t>G&&J.push({instanceLocation:c,keyword:`maxLength`,keywordLocation:`${l}/maxLength`,error:`String is too long (${t} > ${G}).`}),pe!==void 0&&!new RegExp(pe,`u`).test(e)&&J.push({instanceLocation:c,keyword:`pattern`,keywordLocation:`${l}/pattern`,error:`String does not match pattern.`}),S!==void 0&&ae[S]&&!ae[S](e)&&J.push({instanceLocation:c,keyword:`format`,keywordLocation:`${l}/format`,error:`String does not match format "${S}".`})}return{valid:J.length===0,errors:J}}var k=class{schema;draft;shortCircuit;lookup;constructor(e,t=`2019-09`,n=!0){this.schema=e,this.draft=t,this.shortCircuit=n,this.lookup=u(e)}validate(e){return O(e,this.schema,this.draft,this.lookup,this.shortCircuit)}addSchema(e,t){t&&(e={...e,$id:t}),u(e,this.lookup)}};const A=`Failed to parse input arguments`,j=`Tool was executed but the invocation failed. For example, the script function threw an error`,M=`Tool was cancelled`,N={type:`object`,properties:{}},de=[`draft-2020-12`,`draft-07`],P=Symbol(`standardValidator`),F={installed:!1,previousNavigatorModelContextDescriptor:void 0,previousNavigatorModelContextTestingDescriptor:void 0,previousDocumentModelContextDescriptor:void 0,installedNavigatorModelContext:!1,installedNavigatorModelContextTesting:!1,installedDocumentModelContext:!1};var I=class extends EventTarget{tools=new Map;testingShim=null;_ontoolchange=null;unregisterToolDeprecationWarned=!1;get ontoolchange(){return this._ontoolchange}set ontoolchange(e){this._ontoolchange=e}registerTool(e,t){let n=t?.signal;if(n?.aborted){console.warn(`[WebMCPPolyfill] registerTool("${e?.name??`<unknown>`}") skipped: options.signal was already aborted.`);return}let r=J(e,this.tools);this.tools.set(r.name,r),this.notifyToolsChanged(),n&&n.addEventListener(`abort`,()=>{this.tools.delete(r.name)&&this.notifyToolsChanged()},{once:!0})}unregisterTool(e){this.warnUnregisterToolDeprecationOnce();let t=z(e);this.tools.delete(t)&&this.notifyToolsChanged()}getTools(){return Promise.resolve(this.getRegisteredToolInfos())}executeTool(e,t,n){return this.executeToolByName(e.name,t,n,!1)}getTestingShim(){return this.testingShim||=new L(this),this.testingShim}getToolInfos(){return[...this.tools.values()].map(e=>{let t;try{t=JSON.stringify(e.inputSchema??{type:`object`})}catch{t=`{"type":"object"}`}return{name:e.name,description:e.description,inputSchema:t}})}getRegisteredToolInfos(){return this.getToolInfos().map(e=>{let t=this.tools.get(e.name);return{...e,title:t?.title??``,origin:globalThis.location?.origin??``,window:globalThis.window}})}async executeToolForTesting(e,t,n){return this.executeToolByName(e,t,n,!0)}async executeToolByName(e,t,n,r){if(n?.signal?.aborted)throw R(M);let i=this.tools.get(e);if(!i)throw R(`Tool not found: ${e}`);let a=fe(t),o=await ge(a,i);if(o)throw R(o);let s=!0,c={requestUserInteraction:async t=>{if(!s)throw Error(`ModelContextClient for tool "${e}" is no longer active after execute() resolved`);if(typeof t!=`function`)throw TypeError(`requestUserInteraction(callback) requires a function callback`);return t()}};try{let e=i.execute(a,c),t=await we(Promise.resolve(e),n?.signal);if(r)return Ce(xe(t));let o=JSON.stringify(t);return o===void 0?null:o}catch(e){throw R(e instanceof Error?`${j}: ${e.message}`:j)}finally{s=!1}}notifyToolsChanged(){queueMicrotask(()=>{let e=new Event(`toolchange`);try{this._ontoolchange?.call(this,e)}catch(e){console.warn(`[WebMCPPolyfill] navigator.modelContext.ontoolchange handler threw:`,e)}this.dispatchEvent(e),this.testingShim?.dispatchToolChange()})}warnUnregisterToolDeprecationOnce(){this.unregisterToolDeprecationWarned||(this.unregisterToolDeprecationWarned=!0,console.warn(`[WebMCPPolyfill] navigator.modelContext.unregisterTool() is deprecated. The April 23, 2026 WebMCP draft removed it in favor of registerTool(tool, { signal }) — pass an AbortSignal and abort it to unregister.`))}},L=class extends EventTarget{context;_ontoolchange=null;constructor(e){super(),this.context=e}listTools(){return this.context.getToolInfos()}executeTool(e,t,n){return this.context.executeToolForTesting(e,t,n)}getCrossDocumentScriptToolResult(){return Promise.resolve(`[]`)}get ontoolchange(){return this._ontoolchange}set ontoolchange(e){this._ontoolchange=e}registerToolsChangedCallback(e){if(typeof e!=`function`)throw TypeError(`Failed to execute 'registerToolsChangedCallback' on 'ModelContextTesting': parameter 1 is not of type 'Function'.`);this.addEventListener(`toolchange`,e)}dispatchToolChange(){let e=new Event(`toolchange`);try{this._ontoolchange?.call(this,e)}catch(e){console.warn(`[WebMCPPolyfill] ontoolchange handler threw:`,e)}this.dispatchEvent(e),this.dispatchEvent(new Event(`toolschanged`))}};function R(e){try{return new DOMException(e,`UnknownError`)}catch{let t=Error(e);return t.name=`UnknownError`,t}}function fe(e){let t;try{t=JSON.parse(e)}catch{throw R(A)}if(!t||typeof t!=`object`||Array.isArray(t))throw R(A);return t}function z(e){if(typeof e==`string`)return e;if(B(e)&&typeof e.name==`string`)return e.name;throw TypeError(`Failed to execute 'unregisterTool' on 'ModelContext': parameter 1 must be a string or an object with a string name.`)}function B(e){return!!e&&typeof e==`object`&&!Array.isArray(e)}function V(e){if(!B(e))return null;let t=e[`~standard`];return B(t)?t:null}function H(e){let t=V(e);return!!(t&&t.version===1&&typeof t.validate==`function`)}function U(e){let t=V(e);return!t||t.version!==1||!B(t.jsonSchema)?!1:typeof t.jsonSchema.input==`function`}function W(e){return{"~standard":{version:1,vendor:`@mcp-b/webmcp-polyfill-json-schema`,validate(t){if(!B(t))return{issues:[{message:`expected object arguments`}]};let n=Y(t,e);return n?{issues:[n]}:{value:t}}}}}function G(e){for(let t of de)try{let n=e[`~standard`].jsonSchema.input({target:t});return K(n),n}catch(e){console.warn(`[WebMCPPolyfill] Standard JSON Schema conversion failed for target "${t}":`,e)}throw Error(`Failed to convert Standard JSON Schema inputSchema to a JSON Schema object`)}function pe(e){if(e===void 0){let e=N;return{inputSchema:e,standardValidator:W(e)}}if(U(e)){let t=G(e);return{inputSchema:t,standardValidator:W(t)}}if(H(e))return{inputSchema:N,standardValidator:e};if(K(e),Object.keys(e).length===0)return{inputSchema:N,standardValidator:W(N)};let t=e.type===void 0?{type:`object`,...e}:e;return{inputSchema:t,standardValidator:W(t)}}function K(e){if(!B(e))throw Error(`inputSchema must be a JSON Schema object`);q(e,`$`)}function q(e,t){let n=e.type;if(n!==void 0&&typeof n!=`string`&&!(Array.isArray(n)&&n.every(e=>typeof e==`string`&&e.length>0)))throw Error(`Invalid JSON Schema at ${t}: "type" must be a string or string[]`);let r=e.required;if(r!==void 0&&!(Array.isArray(r)&&r.every(e=>typeof e==`string`)))throw Error(`Invalid JSON Schema at ${t}: "required" must be an array of strings`);let i=e.properties;if(i!==void 0){if(!B(i))throw Error(`Invalid JSON Schema at ${t}: "properties" must be an object`);for(let[e,n]of Object.entries(i)){if(!B(n))throw Error(`Invalid JSON Schema at ${t}.properties.${e}: expected object schema`);q(n,`${t}.properties.${e}`)}}let a=e.items;if(a!==void 0)if(Array.isArray(a))for(let[e,n]of a.entries()){if(!B(n))throw Error(`Invalid JSON Schema at ${t}.items[${e}]: expected object schema`);q(n,`${t}.items[${e}]`)}else if(B(a))q(a,`${t}.items`);else throw Error(`Invalid JSON Schema at ${t}: "items" must be an object or object[]`);for(let n of[`allOf`,`anyOf`,`oneOf`]){let r=e[n];if(r!==void 0){if(!Array.isArray(r))throw Error(`Invalid JSON Schema at ${t}: "${n}" must be an array`);for(let[e,i]of r.entries()){if(!B(i))throw Error(`Invalid JSON Schema at ${t}.${n}[${e}]: expected object schema`);q(i,`${t}.${n}[${e}]`)}}}let o=e.not;if(o!==void 0){if(!B(o))throw Error(`Invalid JSON Schema at ${t}: "not" must be an object schema`);q(o,`${t}.not`)}try{JSON.stringify(e)}catch{throw Error(`Invalid JSON Schema at ${t}: schema must be JSON-serializable`)}}function J(e,t){if(!e||typeof e!=`object`)throw TypeError(`registerTool(tool) requires a tool object`);if(typeof e.name!=`string`||e.name.length===0)throw TypeError(`Tool "name" must be a non-empty string`);if(typeof e.description!=`string`||e.description.length===0)throw TypeError(`Tool "description" must be a non-empty string`);if(typeof e.execute!=`function`)throw TypeError(`Tool "execute" must be a function`);if(t.has(e.name))throw Error(`Tool already registered: ${e.name}`);let n=pe(e.inputSchema),r=e.annotations,i=r?{...r,...r.readOnlyHint===`true`?{readOnlyHint:!0}:r.readOnlyHint===`false`?{readOnlyHint:!1}:{},...r.destructiveHint===`true`?{destructiveHint:!0}:r.destructiveHint===`false`?{destructiveHint:!1}:{},...r.idempotentHint===`true`?{idempotentHint:!0}:r.idempotentHint===`false`?{idempotentHint:!1}:{},...r.openWorldHint===`true`?{openWorldHint:!0}:r.openWorldHint===`false`?{openWorldHint:!1}:{}}:void 0;return{...e,...i?{annotations:i}:{},inputSchema:n.inputSchema,[P]:n.standardValidator}}function Y(e,t){let n=new k(t,`2020-12`,!0).validate(e);if(n.valid)return null;let r=n.errors[n.errors.length-1];return r?{message:r.error}:{message:`Input validation failed`}}function me(e){if(!e||e.length===0)return null;let t=e.map(e=>B(e)&&`key`in e?e.key:e).map(e=>String(e)).filter(e=>e.length>0);return t.length===0?null:t.join(`.`)}async function he(e,t){let n;try{n=await Promise.resolve(t[`~standard`].validate(e))}catch(e){let t=e instanceof Error?`: ${e.message}`:``;return console.error(`[WebMCPPolyfill] Standard Schema validation threw unexpectedly:`,e),`Input validation error: schema validation failed${t}`}if(!n.issues||n.issues.length===0)return null;let r=n.issues[0];if(!r)return`Input validation error`;let i=me(r?.path);return i?`Input validation error: ${r.message} at ${i}`:`Input validation error: ${r.message}`}async function ge(e,t){return he(e,t[P])}function _e(e){return B(e)&&Array.isArray(e.content)}function ve(e){return e===null||typeof e==`string`||typeof e==`number`||typeof e==`boolean`}function X(e){return ve(e)?Number.isFinite(e)||typeof e!=`number`:Array.isArray(e)?e.every(e=>X(e)):B(e)?Object.values(e).every(e=>X(e)):!1}function ye(e){if(!(!B(e)||!X(e)))return e}function be(e){if(typeof e==`string`)return e;try{return JSON.stringify(e)??String(e)}catch{return String(e)}}function xe(e){if(_e(e))return e;let t=ye(e);return{content:[{type:`text`,text:be(e)}],...t?{structuredContent:t}:{},isError:!1}}function Se(e){for(let t of e.content??[])if(t.type===`text`&&`text`in t&&typeof t.text==`string`)return t.text;return null}function Ce(e){if(e.isError)throw R(Se(e)?.replace(/^Error:\s*/i,``).trim()||j);let t=e.metadata;if(t&&typeof t==`object`&&t.willNavigate)return null;try{return JSON.stringify(e)}catch{throw R(j)}}function we(e,t){return t?t.aborted?Promise.reject(R(M)):new Promise((n,r)=>{let i=()=>{a(),r(R(M))},a=()=>{t.removeEventListener(`abort`,i)};t.addEventListener(`abort`,i,{once:!0}),e.then(e=>{a(),n(e)},e=>{a(),r(e)})}):e}function Te(){return typeof navigator<`u`?navigator:null}function Ee(){return typeof document<`u`?document:null}function De(e,t,n){Object.defineProperty(e,t,{configurable:!0,enumerable:!0,writable:!1,value:n})}function Oe(e,t){Object.defineProperty(e,"modelContext",{configurable:!0,enumerable:!0,writable:!1,value:t})}let Z=!1;function ke(e,t){Object.defineProperty(e,"modelContext",{configurable:!0,enumerable:!0,get(){return Z||(Z=!0,console.warn(`[WebMCPPolyfill] navigator.modelContext is deprecated. The May 27, 2026 WebMCP draft moved the modelContext getter from Navigator to Document — use document.modelContext instead. See https://github.com/webmachinelearning/webmcp/pull/184.`)),t}})}function Ae(e){let t=Te(),n=Ee();if(!t&&!n||n?.modelContext)return;let r=t?.modelContext,i=!!r;if(F.installed&&je(),n&&r){F.previousDocumentModelContextDescriptor=Object.getOwnPropertyDescriptor(n,`modelContext`),Oe(n,r),F.installedDocumentModelContext=!0,F.installed=!0;return}if(i)return;let a=new I,o=a;if(o.__isWebMCPPolyfill=!0,n&&(F.previousDocumentModelContextDescriptor=Object.getOwnPropertyDescriptor(n,`modelContext`),Oe(n,o),F.installedDocumentModelContext=!0),t){F.previousNavigatorModelContextDescriptor=Object.getOwnPropertyDescriptor(t,`modelContext`),F.previousNavigatorModelContextTestingDescriptor=Object.getOwnPropertyDescriptor(t,`modelContextTesting`),Z=!1,ke(t,o),F.installedNavigatorModelContext=!0;let n=e?.installTestingShim??`if-missing`,r=!!t.modelContextTesting;(n===`always`||(n===!0||n===`if-missing`)&&!r)&&(De(t,`modelContextTesting`,a.getTestingShim()),F.installedNavigatorModelContextTesting=!0)}F.installed=!0}function je(){if(!F.installed)return;let e=(e,t,n)=>{if(n){Object.defineProperty(e,t,n);return}delete e[t]},t=Te(),n=Ee();n&&F.installedDocumentModelContext&&e(n,`modelContext`,F.previousDocumentModelContextDescriptor),t&&F.installedNavigatorModelContext&&e(t,`modelContext`,F.previousNavigatorModelContextDescriptor),t&&F.installedNavigatorModelContextTesting&&e(t,`modelContextTesting`,F.previousNavigatorModelContextTestingDescriptor),F.installed=!1,F.previousDocumentModelContextDescriptor=void 0,F.previousNavigatorModelContextDescriptor=void 0,F.previousNavigatorModelContextTestingDescriptor=void 0,F.installedDocumentModelContext=!1,F.installedNavigatorModelContext=!1,F.installedNavigatorModelContextTesting=!1,Z=!1}if(typeof window<`u`&&typeof document<`u`){let e=window.__webMCPPolyfillOptions;if(e?.autoInitialize!==!1)try{Ae(e)}catch(e){console.error(`[WebMCPPolyfill] Auto-initialization failed:`,e)}}var Me=e({extractAbortSignal:()=>ze,getWebMcpMode:()=>Fe,getWebMcpTools:()=>Be,parseWebMcpInputSchema:()=>Re,registerWebMcpTools:()=>Ve,setWebMcpMode:()=>Pe,unregisterWebMcpTools:()=>He});const Q=new Map,$=new Set;let Ne=`polyfill`;function Pe(e){Ne=e}function Fe(){return Ne}function Ie(){try{Ae()}catch(e){console.warn(`WebMCP polyfill initialization failed:`,e)}}function Le(){if(typeof document>`u`&&typeof navigator>`u`)return null;Ne===`polyfill`&&Ie();try{let e=typeof document<`u`&&document.modelContext!==void 0?Reflect.get(document,`modelContext`):typeof navigator<`u`&&navigator.modelContext!==void 0?Reflect.get(navigator,`modelContext`):void 0;if(!e||typeof e!=`object`)return null;let t=e;return typeof t.registerTool==`function`?t:null}catch(e){return console.warn(`WebMCP modelContext access failed:`,e),null}}function Re(e){if(typeof e==`string`){try{let t=JSON.parse(e);if(t&&typeof t==`object`&&!Array.isArray(t))return t}catch{}return{type:`object`,properties:{}}}return e&&typeof e==`object`&&!Array.isArray(e)?e:{type:`object`,properties:{}}}function ze(e){if(e){if(typeof AbortSignal<`u`&&e instanceof AbortSignal)return e;if(typeof e==`object`&&`signal`in e&&typeof AbortSignal<`u`&&e.signal instanceof AbortSignal)return e.signal}}async function Be(){let e=Le();if(!e||typeof e.getTools!=`function`)return[];try{let t=await e.getTools();return Array.isArray(t)?t.map(e=>({name:e.name,...e.description?{description:e.description}:{},inputSchema:Re(e.inputSchema),...e.annotations?{annotations:e.annotations}:{},...e.execute?{execute:e.execute}:{}})):[]}catch(e){return console.warn(`Failed to retrieve WebMCP tools via getTools():`,e),[]}}async function Ve(e,r,i=t,a){let o=Array.isArray(a)?a:n;if(o.length===0)return!0;let s=Le();if(!s)return!1;for(let t of o){if($.has(t.name))continue;let n=new AbortController;Q.set(t.name,n),$.add(t.name);try{let r={name:t.name,description:t.description,inputSchema:Re(t.input_schema),annotations:{readOnlyHint:!1,untrustedContentHint:!0},execute:(n,r)=>{if(!e)throw Error(`Cannot execute tool: agent worker is not ready`);let a=ze(r);return a?.aborted?Promise.reject(Error(`Tool execution aborted`)):new Promise((r,o)=>{let s=Date.now().toString(36)+Math.random().toString(36).slice(2),c=null,l=()=>{c!==null&&(clearTimeout(c),c=null),e?.removeEventListener(`message`,d),a&&u&&a.removeEventListener(`abort`,u)},u=()=>{l(),o(Error(`Tool execution aborted`))};a&&a.addEventListener(`abort`,u,{once:!0}),c=setTimeout(()=>{l(),o(Error(`Timeout waiting for tool execution`))},6e5);let d=e=>{let t=e.data;t&&t.type===`execute-tool-result`&&t.callId===s&&(l(),t.error?o(Error(t.error)):r(t.result))};e.addEventListener(`message`,d),e.postMessage({type:`execute-tool`,callId:s,payload:{name:t.name,input:n||{},groupId:i}})})}};await s.registerTool(r,{signal:n.signal}),await new Promise(e=>setTimeout(e,0))}catch(e){if(Q.delete(t.name),$.delete(t.name),!(e instanceof Error&&(e.message.includes(`already registered`)||e.message.includes(`Duplicate tool name`))))throw console.error(`Failed to register tool ${t.name}:`,e),e}}return!0}function He(){for(let e of Q.values())try{e.abort()}catch{}Q.clear(),$.clear()}export{Me as a,He as i,Ve as n,Pe as r,Fe as t};
|
package/dist/server.js
CHANGED
|
@@ -1047,13 +1047,13 @@ t=0 0\r
|
|
|
1047
1047
|
`},n.getDirection=function(e,t){let r=n.splitLines(e);for(let e=0;e<r.length;e++)switch(r[e]){case`a=sendrecv`:case`a=sendonly`:case`a=recvonly`:case`a=inactive`:return r[e].substring(2);default:}return t?n.getDirection(t):`sendrecv`},n.getKind=function(e){return n.splitLines(e)[0].split(` `)[0].substring(2)},n.isRejected=function(e){return e.split(` `,2)[1]===`0`},n.parseMLine=function(e){let t=n.splitLines(e)[0].substring(2).split(` `);return{kind:t[0],port:parseInt(t[1],10),protocol:t[2],fmt:t.slice(3).join(` `)}},n.parseOLine=function(e){let t=n.matchPrefix(e,`o=`)[0].substring(2).split(` `);return{username:t[0],sessionId:t[1],sessionVersion:parseInt(t[2],10),netType:t[3],addressType:t[4],address:t[5]}},n.isValidSDP=function(e){if(typeof e!=`string`||e.length===0)return!1;let t=n.splitLines(e);for(let e=0;e<t.length;e++)if(t[e].length<2||t[e].charAt(1)!==`=`)return!1;return!0},typeof t==`object`&&(t.exports=n)})),EP=V((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.removeExtmapAllowMixed=d,e.shimAddIceCandidateNullOrEmpty=f,e.shimConnectionState=u,e.shimMaxMessageSize=c,e.shimParameterlessSetLocalDescription=p,e.shimRTCIceCandidate=o,e.shimRTCIceCandidateRelayProtocol=s,e.shimSendThrowTypeError=l;var t=i(TP()),n=r(vP());function r(e,t){if(typeof WeakMap==`function`)var n=new WeakMap,i=new WeakMap;return(r=function(e,t){if(!t&&e&&e.__esModule)return e;var r,o,s={__proto__:null,default:e};if(e===null||a(e)!=`object`&&typeof e!=`function`)return s;if(r=t?i:n){if(r.has(e))return r.get(e);r.set(e,s)}for(var c in e)c!=="default"&&{}.hasOwnProperty.call(e,c)&&((o=(r=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,c))&&(o.get||o.set)?r(s,c,o):s[c]=e[c]);return s})(e,t)}function i(e){return e&&e.__esModule?e:{default:e}}function a(e){"@babel/helpers - typeof";return a=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},a(e)}function o(e){if(!(!e.RTCIceCandidate||e.RTCIceCandidate&&`foundation`in e.RTCIceCandidate.prototype)){var r=e.RTCIceCandidate;e.RTCIceCandidate=function(e){if(a(e)===`object`&&e.candidate&&e.candidate.indexOf(`a=`)===0&&(e=JSON.parse(JSON.stringify(e)),e.candidate=e.candidate.substring(2)),e.candidate&&e.candidate.length){var n=new r(e),i=t.default.parseCandidate(e.candidate);for(var o in i)o in n||Object.defineProperty(n,o,{value:i[o]});return n.toJSON=function(){return{candidate:n.candidate,sdpMid:n.sdpMid,sdpMLineIndex:n.sdpMLineIndex,usernameFragment:n.usernameFragment}},n}return new r(e)},e.RTCIceCandidate.prototype=r.prototype,n.wrapPeerConnectionEvent(e,`icecandidate`,function(t){return t.candidate&&Object.defineProperty(t,"candidate",{value:new e.RTCIceCandidate(t.candidate),writable:`false`}),t})}}function s(e){!e.RTCIceCandidate||e.RTCIceCandidate&&`relayProtocol`in e.RTCIceCandidate.prototype||n.wrapPeerConnectionEvent(e,`icecandidate`,function(e){if(e.candidate){var n=t.default.parseCandidate(e.candidate.candidate);n.type===`relay`&&(e.candidate.relayProtocol={0:`tls`,1:`tcp`,2:`udp`}[n.priority>>24])}return e})}function c(e,n){if(e.RTCPeerConnection){`sctp`in e.RTCPeerConnection.prototype||Object.defineProperty(e.RTCPeerConnection.prototype,"sctp",{get:function(){return this._sctp===void 0?null:this._sctp}});var r=function(e){if(!e||!e.sdp)return!1;var n=t.default.splitSections(e.sdp);return n.shift(),n.some(function(e){var n=t.default.parseMLine(e);return n&&n.kind===`application`&&n.protocol.indexOf(`SCTP`)!==-1})},i=function(e){var t=e.sdp.match(/mozilla...THIS_IS_SDPARTA-(\d+)/);if(t===null||t.length<2)return-1;var n=parseInt(t[1],10);return n===n?n:-1},a=function(e){var t=65536;return n.browser===`firefox`&&(t=n.version<57?e===-1?16384:2147483637:n.version<60?n.version===57?65535:65536:2147483637),t},o=function(e,r){var i=65536;n.browser===`firefox`&&n.version===57&&(i=65535);var a=t.default.matchPrefix(e.sdp,`a=max-message-size:`);return a.length>0?i=parseInt(a[0].substring(19),10):n.browser===`firefox`&&r!==-1&&(i=2147483637),i},s=e.RTCPeerConnection.prototype.setRemoteDescription;e.RTCPeerConnection.prototype.setRemoteDescription=function(){if(this._sctp=null,n.browser===`chrome`&&n.version>=76&&this.getConfiguration().sdpSemantics===`plan-b`&&Object.defineProperty(this,"sctp",{get:function(){return this._sctp===void 0?null:this._sctp},enumerable:!0,configurable:!0}),r(arguments[0])){var e=i(arguments[0]),t=a(e),c=o(arguments[0],e),l=t===0&&c===0?1/0:t===0||c===0?Math.max(t,c):Math.min(t,c),u={};Object.defineProperty(u,"maxMessageSize",{get:function(){return l}}),this._sctp=u}return s.apply(this,arguments)}}}function l(e,t){if(!(e.RTCPeerConnection&&`createDataChannel`in e.RTCPeerConnection.prototype)||t.browser===`chrome`&&t.version>149||t.browser===`firefox`&&t.version>60)return;function r(e,t){var n=e.send;e.send=function(){var r=arguments[0],i=r.length||r.size||r.byteLength;if(e.readyState===`open`&&t.sctp&&i>t.sctp.maxMessageSize)throw TypeError(`Message too large (can send a maximum of `+t.sctp.maxMessageSize+` bytes)`);return n.apply(e,arguments)}}var i=e.RTCPeerConnection.prototype.createDataChannel;e.RTCPeerConnection.prototype.createDataChannel=function(){var e=i.apply(this,arguments);return r(e,this),e},n.wrapPeerConnectionEvent(e,`datachannel`,function(e){return r(e.channel,e.target),e})}function u(e){if(!(!e.RTCPeerConnection||`connectionState`in e.RTCPeerConnection.prototype)){var t=e.RTCPeerConnection.prototype;Object.defineProperty(t,"connectionState",{get:function(){return{completed:`connected`,checking:`connecting`}[this.iceConnectionState]||this.iceConnectionState},enumerable:!0,configurable:!0}),Object.defineProperty(t,"onconnectionstatechange",{get:function(){return this._onconnectionstatechange||null},set:function(e){this._onconnectionstatechange&&(this.removeEventListener(`connectionstatechange`,this._onconnectionstatechange),delete this._onconnectionstatechange),e&&this.addEventListener(`connectionstatechange`,this._onconnectionstatechange=e)},enumerable:!0,configurable:!0}),[`setLocalDescription`,`setRemoteDescription`].forEach(function(e){var n=t[e];t[e]=function(){return this._connectionstatechangepoly||(this._connectionstatechangepoly=function(e){var t=e.target;if(t._lastConnectionState!==t.connectionState){t._lastConnectionState=t.connectionState;var n=new Event(`connectionstatechange`,e);t.dispatchEvent(n)}return e},this.addEventListener(`iceconnectionstatechange`,this._connectionstatechangepoly)),n.apply(this,arguments)}})}}function d(e,t){if(e.RTCPeerConnection&&!(t.browser===`chrome`&&t.version>=71)&&!(t.browser===`safari`&&t._safariVersion>=13.1)){var n=e.RTCPeerConnection.prototype.setRemoteDescription;e.RTCPeerConnection.prototype.setRemoteDescription=function(t){if(t&&t.sdp&&t.sdp.indexOf(`
|
|
1048
1048
|
a=extmap-allow-mixed`)!==-1){var r=t.sdp.split(`
|
|
1049
1049
|
`).filter(function(e){return e.trim()!==`a=extmap-allow-mixed`}).join(`
|
|
1050
|
-
`);e.RTCSessionDescription&&t instanceof e.RTCSessionDescription?arguments[0]=new e.RTCSessionDescription({type:t.type,sdp:r}):t.sdp=r}return n.apply(this,arguments)}}}function f(e,t){if(e.RTCPeerConnection&&e.RTCPeerConnection.prototype){var n=e.RTCPeerConnection.prototype.addIceCandidate;!n||n.length===0||(e.RTCPeerConnection.prototype.addIceCandidate=function(){return arguments[0]?(t.browser===`chrome`&&t.version<78||t.browser===`firefox`&&t.version<68||t.browser===`safari`)&&arguments[0]&&arguments[0].candidate===``?Promise.resolve():n.apply(this,arguments):(arguments[1]&&arguments[1].apply(null),Promise.resolve())})}}function p(e,t){if(e.RTCPeerConnection&&e.RTCPeerConnection.prototype){var n=e.RTCPeerConnection.prototype.setLocalDescription;!n||n.length===0||(e.RTCPeerConnection.prototype.setLocalDescription=function(){var e=this,t=arguments[0]||{};if(a(t)!==`object`||t.type&&t.sdp)return n.apply(this,arguments);if(t={type:t.type,sdp:t.sdp},!t.type)switch(this.signalingState){case`stable`:case`have-local-offer`:case`have-remote-pranswer`:t.type=`offer`;break;default:t.type=`answer`;break}return t.sdp||t.type!==`offer`&&t.type!==`answer`?n.apply(this,[t]):(t.type===`offer`?this.createOffer:this.createAnswer).apply(this).then(function(t){return n.apply(e,[t])})})}}})),DP=V((e=>{function t(e){"@babel/helpers - typeof";return t=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},t(e)}Object.defineProperty(e,"__esModule",{value:!0}),e.adapterFactory=l;var n=c(vP()),r=c(bP()),i=c(CP()),a=c(wP()),o=c(EP()),s=c(TP());function c(e,n){if(typeof WeakMap==`function`)var r=new WeakMap,i=new WeakMap;return(c=function(e,n){if(!n&&e&&e.__esModule)return e;var a,o,s={__proto__:null,default:e};if(e===null||t(e)!=`object`&&typeof e!=`function`)return s;if(a=n?i:r){if(a.has(e))return a.get(e);a.set(e,s)}for(var c in e)c!=="default"&&{}.hasOwnProperty.call(e,c)&&((o=(a=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,c))&&(o.get||o.set)?a(s,c,o):s[c]=e[c]);return s})(e,n)}function l(){var e=(arguments.length>0&&arguments[0]!==void 0?arguments[0]:{}).window,t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{shimChrome:!0,shimFirefox:!0,shimSafari:!0},c=n.log,l=n.detectBrowser(e),u={browserDetails:l,commonShim:o,extractVersion:n.extractVersion,disableLog:n.disableLog,disableWarnings:n.disableWarnings,sdp:s};switch(l.browser){case`chrome`:if(!r||!r.shimPeerConnection||!t.shimChrome)return c(`Chrome shim is not included in this adapter release.`),u;if(l.version===null)return c(`Chrome shim can not determine version, not shimming.`),u;c(`adapter.js shimming chrome.`),u.browserShim=r,o.shimAddIceCandidateNullOrEmpty(e,l),o.shimParameterlessSetLocalDescription(e,l),r.shimGetUserMedia(e,l),r.shimMediaStream(e,l),r.shimPeerConnection(e,l),r.shimOnTrack(e,l),r.shimAddTrackRemoveTrack(e,l),r.shimGetSendersWithDtmf(e,l),r.shimSenderReceiverGetStats(e,l),r.fixNegotiationNeeded(e,l),o.shimRTCIceCandidate(e,l),o.shimRTCIceCandidateRelayProtocol(e,l),o.shimConnectionState(e,l),o.shimMaxMessageSize(e,l),o.shimSendThrowTypeError(e,l),o.removeExtmapAllowMixed(e,l);break;case`firefox`:if(!i||!i.shimPeerConnection||!t.shimFirefox)return c(`Firefox shim is not included in this adapter release.`),u;c(`adapter.js shimming firefox.`),u.browserShim=i,o.shimAddIceCandidateNullOrEmpty(e,l),o.shimParameterlessSetLocalDescription(e,l),i.shimGetUserMedia(e,l),i.shimPeerConnection(e,l),i.shimGetStats(e,l),i.shimOnTrack(e,l),i.shimRemoveStream(e,l),i.shimSenderGetStats(e,l),i.shimReceiverGetStats(e,l),i.shimRTCDataChannel(e,l),i.shimAddTransceiver(e,l),i.shimGetParameters(e,l),i.shimCreateOffer(e,l),i.shimCreateAnswer(e,l),o.shimRTCIceCandidate(e,l),o.shimConnectionState(e,l),o.shimMaxMessageSize(e,l),o.shimSendThrowTypeError(e,l);break;case`safari`:if(!a||!t.shimSafari)return c(`Safari shim is not included in this adapter release.`),u;c(`adapter.js shimming safari.`),u.browserShim=a,o.shimAddIceCandidateNullOrEmpty(e,l),o.shimParameterlessSetLocalDescription(e,l),a.shimRTCIceServerUrls(e,l),a.shimCreateOfferLegacy(e,l),a.shimCallbacksAPI(e,l),a.shimLocalStreamsAPI(e,l),a.shimRemoteStreamsAPI(e,l),a.shimTrackEventTransceiver(e,l),a.shimGetUserMedia(e,l),a.shimAudioContext(e,l),o.shimRTCIceCandidate(e,l),o.shimRTCIceCandidateRelayProtocol(e,l),o.shimMaxMessageSize(e,l),o.shimSendThrowTypeError(e,l),o.removeExtmapAllowMixed(e,l);break;default:c(`Unsupported browser!`);break}return u}})),OP=V((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0,e.default=(0,DP().adapterFactory)({window:typeof window>`u`?void 0:window})})),kP=V(((e,t)=>{var n=Object.prototype.hasOwnProperty,r=`~`;function i(){}Object.create&&(i.prototype=Object.create(null),new i().__proto__||(r=!1));function a(e,t,n){this.fn=e,this.context=t,this.once=n||!1}function o(e,t,n,i,o){if(typeof n!=`function`)throw TypeError(`The listener must be a function`);var s=new a(n,i||e,o),c=r?r+t:t;return e._events[c]?e._events[c].fn?e._events[c]=[e._events[c],s]:e._events[c].push(s):(e._events[c]=s,e._eventsCount++),e}function s(e,t){--e._eventsCount===0?e._events=new i:delete e._events[t]}function c(){this._events=new i,this._eventsCount=0}c.prototype.eventNames=function(){var e=[],t,i;if(this._eventsCount===0)return e;for(i in t=this._events)n.call(t,i)&&e.push(r?i.slice(1):i);return Object.getOwnPropertySymbols?e.concat(Object.getOwnPropertySymbols(t)):e},c.prototype.listeners=function(e){var t=r?r+e:e,n=this._events[t];if(!n)return[];if(n.fn)return[n.fn];for(var i=0,a=n.length,o=Array(a);i<a;i++)o[i]=n[i].fn;return o},c.prototype.listenerCount=function(e){var t=r?r+e:e,n=this._events[t];return n?n.fn?1:n.length:0},c.prototype.emit=function(e,t,n,i,a,o){var s=r?r+e:e;if(!this._events[s])return!1;var c=this._events[s],l=arguments.length,u,d;if(c.fn){switch(c.once&&this.removeListener(e,c.fn,void 0,!0),l){case 1:return c.fn.call(c.context),!0;case 2:return c.fn.call(c.context,t),!0;case 3:return c.fn.call(c.context,t,n),!0;case 4:return c.fn.call(c.context,t,n,i),!0;case 5:return c.fn.call(c.context,t,n,i,a),!0;case 6:return c.fn.call(c.context,t,n,i,a,o),!0}for(d=1,u=Array(l-1);d<l;d++)u[d-1]=arguments[d];c.fn.apply(c.context,u)}else{var f=c.length,p;for(d=0;d<f;d++)switch(c[d].once&&this.removeListener(e,c[d].fn,void 0,!0),l){case 1:c[d].fn.call(c[d].context);break;case 2:c[d].fn.call(c[d].context,t);break;case 3:c[d].fn.call(c[d].context,t,n);break;case 4:c[d].fn.call(c[d].context,t,n,i);break;default:if(!u)for(p=1,u=Array(l-1);p<l;p++)u[p-1]=arguments[p];c[d].fn.apply(c[d].context,u)}}return!0},c.prototype.on=function(e,t,n){return o(this,e,t,n,!1)},c.prototype.once=function(e,t,n){return o(this,e,t,n,!0)},c.prototype.removeListener=function(e,t,n,i){var a=r?r+e:e;if(!this._events[a])return this;if(!t)return s(this,a),this;var o=this._events[a];if(o.fn)o.fn===t&&(!i||o.once)&&(!n||o.context===n)&&s(this,a);else{for(var c=0,l=[],u=o.length;c<u;c++)(o[c].fn!==t||i&&!o[c].once||n&&o[c].context!==n)&&l.push(o[c]);l.length?this._events[a]=l.length===1?l[0]:l:s(this,a)}return this},c.prototype.removeAllListeners=function(e){var t;return e?(t=r?r+e:e,this._events[t]&&s(this,t)):(this._events=new i,this._eventsCount=0),this},c.prototype.off=c.prototype.removeListener,c.prototype.addListener=c.prototype.on,c.prefixed=r,c.EventEmitter=c,t!==void 0&&(t.exports=c)})),AP=V((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.getUint64=e.getInt64=e.setInt64=e.setUint64=e.UINT32_MAX=void 0,e.UINT32_MAX=4294967295;function t(e,t,n){let r=n/4294967296,i=n;e.setUint32(t,r),e.setUint32(t+4,i)}e.setUint64=t;function n(e,t,n){let r=Math.floor(n/4294967296),i=n;e.setUint32(t,r),e.setUint32(t+4,i)}e.setInt64=n;function r(e,t){let n=e.getInt32(t),r=e.getUint32(t+4);return n*4294967296+r}e.getInt64=r;function i(e,t){let n=e.getUint32(t),r=e.getUint32(t+4);return n*4294967296+r}e.getUint64=i})),jP=V((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.utf8DecodeTD=e.TEXT_DECODER_THRESHOLD=e.utf8DecodeJs=e.utf8EncodeTE=e.TEXT_ENCODER_THRESHOLD=e.utf8EncodeJs=e.utf8Count=void 0;let t=AP(),r=(n===void 0||n?.env?.TEXT_ENCODING!==`never`)&&typeof TextEncoder<`u`&&typeof TextDecoder<`u`;function i(e){let t=e.length,n=0,r=0;for(;r<t;){let i=e.charCodeAt(r++);if(!(i&4294967168)){n++;continue}else if(!(i&4294965248))n+=2;else{if(i>=55296&&i<=56319&&r<t){let t=e.charCodeAt(r);(t&64512)==56320&&(++r,i=((i&1023)<<10)+(t&1023)+65536)}i&4294901760?n+=4:n+=3}}return n}e.utf8Count=i;function a(e,t,n){let r=e.length,i=n,a=0;for(;a<r;){let n=e.charCodeAt(a++);if(!(n&4294967168)){t[i++]=n;continue}else if(!(n&4294965248))t[i++]=n>>6&31|192;else{if(n>=55296&&n<=56319&&a<r){let t=e.charCodeAt(a);(t&64512)==56320&&(++a,n=((n&1023)<<10)+(t&1023)+65536)}n&4294901760?(t[i++]=n>>18&7|240,t[i++]=n>>12&63|128,t[i++]=n>>6&63|128):(t[i++]=n>>12&15|224,t[i++]=n>>6&63|128)}t[i++]=n&63|128}}e.utf8EncodeJs=a;let o=r?new TextEncoder:void 0;e.TEXT_ENCODER_THRESHOLD=r?n!==void 0&&n?.env?.TEXT_ENCODING!==`force`?200:0:t.UINT32_MAX;function s(e,t,n){t.set(o.encode(e),n)}function c(e,t,n){o.encodeInto(e,t.subarray(n))}e.utf8EncodeTE=o?.encodeInto?c:s;function l(e,t,n){let r=t,i=r+n,a=[],o=``;for(;r<i;){let t=e[r++];if(!(t&128))a.push(t);else if((t&224)==192){let n=e[r++]&63;a.push((t&31)<<6|n)}else if((t&240)==224){let n=e[r++]&63,i=e[r++]&63;a.push((t&31)<<12|n<<6|i)}else if((t&248)==240){let n=e[r++]&63,i=e[r++]&63,o=e[r++]&63,s=(t&7)<<18|n<<12|i<<6|o;s>65535&&(s-=65536,a.push(s>>>10&1023|55296),s=56320|s&1023),a.push(s)}else a.push(t);a.length>=4096&&(o+=String.fromCharCode(...a),a.length=0)}return a.length>0&&(o+=String.fromCharCode(...a)),o}e.utf8DecodeJs=l;let u=r?new TextDecoder:null;e.TEXT_DECODER_THRESHOLD=r?n!==void 0&&n?.env?.TEXT_DECODER!==`force`?200:0:t.UINT32_MAX;function d(e,t,n){let r=e.subarray(t,t+n);return u.decode(r)}e.utf8DecodeTD=d})),MP=V((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.ExtData=void 0,e.ExtData=class{constructor(e,t){this.type=e,this.data=t}}})),NP=V((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.DecodeError=void 0,e.DecodeError=class e extends Error{constructor(t){super(t);let n=Object.create(e.prototype);Object.setPrototypeOf(this,n),Object.defineProperty(this,"name",{configurable:!0,enumerable:!1,value:e.name})}}})),PP=V((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.timestampExtension=e.decodeTimestampExtension=e.decodeTimestampToTimeSpec=e.encodeTimestampExtension=e.encodeDateToTimeSpec=e.encodeTimeSpecToTimestamp=e.EXT_TIMESTAMP=void 0;let t=NP(),n=AP();e.EXT_TIMESTAMP=-1;function r({sec:e,nsec:t}){if(e>=0&&t>=0&&e<=17179869183)if(t===0&&e<=4294967295){let t=new Uint8Array(4);return new DataView(t.buffer).setUint32(0,e),t}else{let n=e/4294967296,r=e&4294967295,i=new Uint8Array(8),a=new DataView(i.buffer);return a.setUint32(0,t<<2|n&3),a.setUint32(4,r),i}else{let r=new Uint8Array(12),i=new DataView(r.buffer);return i.setUint32(0,t),(0,n.setInt64)(i,4,e),r}}e.encodeTimeSpecToTimestamp=r;function i(e){let t=e.getTime(),n=Math.floor(t/1e3),r=(t-n*1e3)*1e6,i=Math.floor(r/1e9);return{sec:n+i,nsec:r-i*1e9}}e.encodeDateToTimeSpec=i;function a(e){return e instanceof Date?r(i(e)):null}e.encodeTimestampExtension=a;function o(e){let r=new DataView(e.buffer,e.byteOffset,e.byteLength);switch(e.byteLength){case 4:return{sec:r.getUint32(0),nsec:0};case 8:{let e=r.getUint32(0),t=r.getUint32(4);return{sec:(e&3)*4294967296+t,nsec:e>>>2}}case 12:return{sec:(0,n.getInt64)(r,4),nsec:r.getUint32(0)};default:throw new t.DecodeError(`Unrecognized data size for timestamp (expected 4, 8, or 12): ${e.length}`)}}e.decodeTimestampToTimeSpec=o;function s(e){let t=o(e);return new Date(t.sec*1e3+t.nsec/1e6)}e.decodeTimestampExtension=s,e.timestampExtension={type:e.EXT_TIMESTAMP,encode:a,decode:s}})),FP=V((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.ExtensionCodec=void 0;let t=MP(),n=PP();var r=class{constructor(){this.builtInEncoders=[],this.builtInDecoders=[],this.encoders=[],this.decoders=[],this.register(n.timestampExtension)}register({type:e,encode:t,decode:n}){if(e>=0)this.encoders[e]=t,this.decoders[e]=n;else{let r=1+e;this.builtInEncoders[r]=t,this.builtInDecoders[r]=n}}tryToEncode(e,n){for(let r=0;r<this.builtInEncoders.length;r++){let i=this.builtInEncoders[r];if(i!=null){let a=i(e,n);if(a!=null){let e=-1-r;return new t.ExtData(e,a)}}}for(let r=0;r<this.encoders.length;r++){let i=this.encoders[r];if(i!=null){let a=i(e,n);if(a!=null){let e=r;return new t.ExtData(e,a)}}}return e instanceof t.ExtData?e:null}decode(e,n,r){let i=n<0?this.builtInDecoders[-1-n]:this.decoders[n];return i?i(e,n,r):new t.ExtData(n,e)}};e.ExtensionCodec=r,r.defaultCodec=new r})),IP=V((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.createDataView=e.ensureUint8Array=void 0;function t(e){return e instanceof Uint8Array?e:ArrayBuffer.isView(e)?new Uint8Array(e.buffer,e.byteOffset,e.byteLength):e instanceof ArrayBuffer?new Uint8Array(e):Uint8Array.from(e)}e.ensureUint8Array=t;function n(e){if(e instanceof ArrayBuffer)return new DataView(e);let n=t(e);return new DataView(n.buffer,n.byteOffset,n.byteLength)}e.createDataView=n})),LP=V((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.Encoder=e.DEFAULT_INITIAL_BUFFER_SIZE=e.DEFAULT_MAX_DEPTH=void 0;let t=jP(),n=FP(),r=AP(),i=IP();e.DEFAULT_MAX_DEPTH=100,e.DEFAULT_INITIAL_BUFFER_SIZE=2048,e.Encoder=class{constructor(t=n.ExtensionCodec.defaultCodec,r=void 0,i=e.DEFAULT_MAX_DEPTH,a=e.DEFAULT_INITIAL_BUFFER_SIZE,o=!1,s=!1,c=!1,l=!1){this.extensionCodec=t,this.context=r,this.maxDepth=i,this.initialBufferSize=a,this.sortKeys=o,this.forceFloat32=s,this.ignoreUndefined=c,this.forceIntegerToFloat=l,this.pos=0,this.view=new DataView(new ArrayBuffer(this.initialBufferSize)),this.bytes=new Uint8Array(this.view.buffer)}reinitializeState(){this.pos=0}encodeSharedRef(e){return this.reinitializeState(),this.doEncode(e,1),this.bytes.subarray(0,this.pos)}encode(e){return this.reinitializeState(),this.doEncode(e,1),this.bytes.slice(0,this.pos)}doEncode(e,t){if(t>this.maxDepth)throw Error(`Too deep objects in depth ${t}`);e==null?this.encodeNil():typeof e==`boolean`?this.encodeBoolean(e):typeof e==`number`?this.encodeNumber(e):typeof e==`string`?this.encodeString(e):this.encodeObject(e,t)}ensureBufferSizeToWrite(e){let t=this.pos+e;this.view.byteLength<t&&this.resizeBuffer(t*2)}resizeBuffer(e){let t=new ArrayBuffer(e),n=new Uint8Array(t),r=new DataView(t);n.set(this.bytes),this.view=r,this.bytes=n}encodeNil(){this.writeU8(192)}encodeBoolean(e){e===!1?this.writeU8(194):this.writeU8(195)}encodeNumber(e){Number.isSafeInteger(e)&&!this.forceIntegerToFloat?e>=0?e<128?this.writeU8(e):e<256?(this.writeU8(204),this.writeU8(e)):e<65536?(this.writeU8(205),this.writeU16(e)):e<4294967296?(this.writeU8(206),this.writeU32(e)):(this.writeU8(207),this.writeU64(e)):e>=-32?this.writeU8(224|e+32):e>=-128?(this.writeU8(208),this.writeI8(e)):e>=-32768?(this.writeU8(209),this.writeI16(e)):e>=-2147483648?(this.writeU8(210),this.writeI32(e)):(this.writeU8(211),this.writeI64(e)):this.forceFloat32?(this.writeU8(202),this.writeF32(e)):(this.writeU8(203),this.writeF64(e))}writeStringHeader(e){if(e<32)this.writeU8(160+e);else if(e<256)this.writeU8(217),this.writeU8(e);else if(e<65536)this.writeU8(218),this.writeU16(e);else if(e<4294967296)this.writeU8(219),this.writeU32(e);else throw Error(`Too long string: ${e} bytes in UTF-8`)}encodeString(e){if(e.length>t.TEXT_ENCODER_THRESHOLD){let n=(0,t.utf8Count)(e);this.ensureBufferSizeToWrite(5+n),this.writeStringHeader(n),(0,t.utf8EncodeTE)(e,this.bytes,this.pos),this.pos+=n}else{let n=(0,t.utf8Count)(e);this.ensureBufferSizeToWrite(5+n),this.writeStringHeader(n),(0,t.utf8EncodeJs)(e,this.bytes,this.pos),this.pos+=n}}encodeObject(e,t){let n=this.extensionCodec.tryToEncode(e,this.context);if(n!=null)this.encodeExtension(n);else if(Array.isArray(e))this.encodeArray(e,t);else if(ArrayBuffer.isView(e))this.encodeBinary(e);else if(typeof e==`object`)this.encodeMap(e,t);else throw Error(`Unrecognized object: ${Object.prototype.toString.apply(e)}`)}encodeBinary(e){let t=e.byteLength;if(t<256)this.writeU8(196),this.writeU8(t);else if(t<65536)this.writeU8(197),this.writeU16(t);else if(t<4294967296)this.writeU8(198),this.writeU32(t);else throw Error(`Too large binary: ${t}`);let n=(0,i.ensureUint8Array)(e);this.writeU8a(n)}encodeArray(e,t){let n=e.length;if(n<16)this.writeU8(144+n);else if(n<65536)this.writeU8(220),this.writeU16(n);else if(n<4294967296)this.writeU8(221),this.writeU32(n);else throw Error(`Too large array: ${n}`);for(let n of e)this.doEncode(n,t+1)}countWithoutUndefined(e,t){let n=0;for(let r of t)e[r]!==void 0&&n++;return n}encodeMap(e,t){let n=Object.keys(e);this.sortKeys&&n.sort();let r=this.ignoreUndefined?this.countWithoutUndefined(e,n):n.length;if(r<16)this.writeU8(128+r);else if(r<65536)this.writeU8(222),this.writeU16(r);else if(r<4294967296)this.writeU8(223),this.writeU32(r);else throw Error(`Too large map object: ${r}`);for(let r of n){let n=e[r];this.ignoreUndefined&&n===void 0||(this.encodeString(r),this.doEncode(n,t+1))}}encodeExtension(e){let t=e.data.length;if(t===1)this.writeU8(212);else if(t===2)this.writeU8(213);else if(t===4)this.writeU8(214);else if(t===8)this.writeU8(215);else if(t===16)this.writeU8(216);else if(t<256)this.writeU8(199),this.writeU8(t);else if(t<65536)this.writeU8(200),this.writeU16(t);else if(t<4294967296)this.writeU8(201),this.writeU32(t);else throw Error(`Too large extension object: ${t}`);this.writeI8(e.type),this.writeU8a(e.data)}writeU8(e){this.ensureBufferSizeToWrite(1),this.view.setUint8(this.pos,e),this.pos++}writeU8a(e){let t=e.length;this.ensureBufferSizeToWrite(t),this.bytes.set(e,this.pos),this.pos+=t}writeI8(e){this.ensureBufferSizeToWrite(1),this.view.setInt8(this.pos,e),this.pos++}writeU16(e){this.ensureBufferSizeToWrite(2),this.view.setUint16(this.pos,e),this.pos+=2}writeI16(e){this.ensureBufferSizeToWrite(2),this.view.setInt16(this.pos,e),this.pos+=2}writeU32(e){this.ensureBufferSizeToWrite(4),this.view.setUint32(this.pos,e),this.pos+=4}writeI32(e){this.ensureBufferSizeToWrite(4),this.view.setInt32(this.pos,e),this.pos+=4}writeF32(e){this.ensureBufferSizeToWrite(4),this.view.setFloat32(this.pos,e),this.pos+=4}writeF64(e){this.ensureBufferSizeToWrite(8),this.view.setFloat64(this.pos,e),this.pos+=8}writeU64(e){this.ensureBufferSizeToWrite(8),(0,r.setUint64)(this.view,this.pos,e),this.pos+=8}writeI64(e){this.ensureBufferSizeToWrite(8),(0,r.setInt64)(this.view,this.pos,e),this.pos+=8}}})),RP=V((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.encode=void 0;let t=LP(),n={};function r(e,r=n){return new t.Encoder(r.extensionCodec,r.context,r.maxDepth,r.initialBufferSize,r.sortKeys,r.forceFloat32,r.ignoreUndefined,r.forceIntegerToFloat).encodeSharedRef(e)}e.encode=r})),zP=V((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.prettyByte=void 0;function t(e){return`${e<0?`-`:``}0x${Math.abs(e).toString(16).padStart(2,`0`)}`}e.prettyByte=t})),BP=V((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.CachedKeyDecoder=void 0;let t=jP();e.CachedKeyDecoder=class{constructor(e=16,t=16){this.maxKeyLength=e,this.maxLengthPerKey=t,this.hit=0,this.miss=0,this.caches=[];for(let e=0;e<this.maxKeyLength;e++)this.caches.push([])}canBeCached(e){return e>0&&e<=this.maxKeyLength}find(e,t,n){let r=this.caches[n-1];FIND_CHUNK:for(let i of r){let r=i.bytes;for(let i=0;i<n;i++)if(r[i]!==e[t+i])continue FIND_CHUNK;return i.str}return null}store(e,t){let n=this.caches[e.length-1],r={bytes:e,str:t};n.length>=this.maxLengthPerKey?n[Math.random()*n.length|0]=r:n.push(r)}decode(e,n,r){let i=this.find(e,n,r);if(i!=null)return this.hit++,i;this.miss++;let a=(0,t.utf8DecodeJs)(e,n,r),o=Uint8Array.prototype.slice.call(e,n,n+r);return this.store(o,a),a}}})),VP=V((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.Decoder=e.DataViewIndexOutOfBoundsError=void 0;let t=zP(),n=FP(),r=AP(),i=jP(),a=IP(),o=BP(),s=NP(),c=e=>{let t=typeof e;return t===`string`||t===`number`},l=new DataView(new ArrayBuffer(0)),u=new Uint8Array(l.buffer);e.DataViewIndexOutOfBoundsError=(()=>{try{l.getInt8(0)}catch(e){return e.constructor}throw Error(`never reached`)})();let d=new e.DataViewIndexOutOfBoundsError(`Insufficient data`),f=new o.CachedKeyDecoder;e.Decoder=class{constructor(e=n.ExtensionCodec.defaultCodec,t=void 0,i=r.UINT32_MAX,a=r.UINT32_MAX,o=r.UINT32_MAX,s=r.UINT32_MAX,c=r.UINT32_MAX,d=f){this.extensionCodec=e,this.context=t,this.maxStrLength=i,this.maxBinLength=a,this.maxArrayLength=o,this.maxMapLength=s,this.maxExtLength=c,this.keyDecoder=d,this.totalPos=0,this.pos=0,this.view=l,this.bytes=u,this.headByte=-1,this.stack=[]}reinitializeState(){this.totalPos=0,this.headByte=-1,this.stack.length=0}setBuffer(e){this.bytes=(0,a.ensureUint8Array)(e),this.view=(0,a.createDataView)(this.bytes),this.pos=0}appendBuffer(e){if(this.headByte===-1&&!this.hasRemaining(1))this.setBuffer(e);else{let t=this.bytes.subarray(this.pos),n=(0,a.ensureUint8Array)(e),r=new Uint8Array(t.length+n.length);r.set(t),r.set(n,t.length),this.setBuffer(r)}}hasRemaining(e){return this.view.byteLength-this.pos>=e}createExtraByteError(e){let{view:t,pos:n}=this;return RangeError(`Extra ${t.byteLength-n} of ${t.byteLength} byte(s) found at buffer[${e}]`)}decode(e){this.reinitializeState(),this.setBuffer(e);let t=this.doDecodeSync();if(this.hasRemaining(1))throw this.createExtraByteError(this.pos);return t}*decodeMulti(e){for(this.reinitializeState(),this.setBuffer(e);this.hasRemaining(1);)yield this.doDecodeSync()}async decodeAsync(n){let r=!1,i;for await(let t of n){if(r)throw this.createExtraByteError(this.totalPos);this.appendBuffer(t);try{i=this.doDecodeSync(),r=!0}catch(t){if(!(t instanceof e.DataViewIndexOutOfBoundsError))throw t}this.totalPos+=this.pos}if(r){if(this.hasRemaining(1))throw this.createExtraByteError(this.totalPos);return i}let{headByte:a,pos:o,totalPos:s}=this;throw RangeError(`Insufficient data in parsing ${(0,t.prettyByte)(a)} at ${s} (${o} in the current buffer)`)}decodeArrayStream(e){return this.decodeMultiAsync(e,!0)}decodeStream(e){return this.decodeMultiAsync(e,!1)}async*decodeMultiAsync(t,n){let r=n,i=-1;for await(let a of t){if(n&&i===0)throw this.createExtraByteError(this.totalPos);this.appendBuffer(a),r&&(i=this.readArraySize(),r=!1,this.complete());try{for(;yield this.doDecodeSync(),--i!==0;);}catch(t){if(!(t instanceof e.DataViewIndexOutOfBoundsError))throw t}this.totalPos+=this.pos}}doDecodeSync(){DECODE:for(;;){let e=this.readHeadByte(),n;if(e>=224)n=e-256;else if(e<192)if(e<128)n=e;else if(e<144){let t=e-128;if(t!==0){this.pushMapState(t),this.complete();continue DECODE}else n={}}else if(e<160){let t=e-144;if(t!==0){this.pushArrayState(t),this.complete();continue DECODE}else n=[]}else{let t=e-160;n=this.decodeUtf8String(t,0)}else if(e===192)n=null;else if(e===194)n=!1;else if(e===195)n=!0;else if(e===202)n=this.readF32();else if(e===203)n=this.readF64();else if(e===204)n=this.readU8();else if(e===205)n=this.readU16();else if(e===206)n=this.readU32();else if(e===207)n=this.readU64();else if(e===208)n=this.readI8();else if(e===209)n=this.readI16();else if(e===210)n=this.readI32();else if(e===211)n=this.readI64();else if(e===217){let e=this.lookU8();n=this.decodeUtf8String(e,1)}else if(e===218){let e=this.lookU16();n=this.decodeUtf8String(e,2)}else if(e===219){let e=this.lookU32();n=this.decodeUtf8String(e,4)}else if(e===220){let e=this.readU16();if(e!==0){this.pushArrayState(e),this.complete();continue DECODE}else n=[]}else if(e===221){let e=this.readU32();if(e!==0){this.pushArrayState(e),this.complete();continue DECODE}else n=[]}else if(e===222){let e=this.readU16();if(e!==0){this.pushMapState(e),this.complete();continue DECODE}else n={}}else if(e===223){let e=this.readU32();if(e!==0){this.pushMapState(e),this.complete();continue DECODE}else n={}}else if(e===196){let e=this.lookU8();n=this.decodeBinary(e,1)}else if(e===197){let e=this.lookU16();n=this.decodeBinary(e,2)}else if(e===198){let e=this.lookU32();n=this.decodeBinary(e,4)}else if(e===212)n=this.decodeExtension(1,0);else if(e===213)n=this.decodeExtension(2,0);else if(e===214)n=this.decodeExtension(4,0);else if(e===215)n=this.decodeExtension(8,0);else if(e===216)n=this.decodeExtension(16,0);else if(e===199){let e=this.lookU8();n=this.decodeExtension(e,1)}else if(e===200){let e=this.lookU16();n=this.decodeExtension(e,2)}else if(e===201){let e=this.lookU32();n=this.decodeExtension(e,4)}else throw new s.DecodeError(`Unrecognized type byte: ${(0,t.prettyByte)(e)}`);this.complete();let r=this.stack;for(;r.length>0;){let e=r[r.length-1];if(e.type===0)if(e.array[e.position]=n,e.position++,e.position===e.size)r.pop(),n=e.array;else continue DECODE;else if(e.type===1){if(!c(n))throw new s.DecodeError(`The type of key must be string or number but `+typeof n);if(n===`__proto__`)throw new s.DecodeError(`The key __proto__ is not allowed`);e.key=n,e.type=2;continue DECODE}else if(e.map[e.key]=n,e.readCount++,e.readCount===e.size)r.pop(),n=e.map;else{e.key=null,e.type=1;continue DECODE}}return n}}readHeadByte(){return this.headByte===-1&&(this.headByte=this.readU8()),this.headByte}complete(){this.headByte=-1}readArraySize(){let e=this.readHeadByte();switch(e){case 220:return this.readU16();case 221:return this.readU32();default:if(e<160)return e-144;throw new s.DecodeError(`Unrecognized array type byte: ${(0,t.prettyByte)(e)}`)}}pushMapState(e){if(e>this.maxMapLength)throw new s.DecodeError(`Max length exceeded: map length (${e}) > maxMapLengthLength (${this.maxMapLength})`);this.stack.push({type:1,size:e,key:null,readCount:0,map:{}})}pushArrayState(e){if(e>this.maxArrayLength)throw new s.DecodeError(`Max length exceeded: array length (${e}) > maxArrayLength (${this.maxArrayLength})`);this.stack.push({type:0,size:e,array:Array(e),position:0})}decodeUtf8String(e,t){if(e>this.maxStrLength)throw new s.DecodeError(`Max length exceeded: UTF-8 byte length (${e}) > maxStrLength (${this.maxStrLength})`);if(this.bytes.byteLength<this.pos+t+e)throw d;let n=this.pos+t,r;return r=this.stateIsMapKey()&&this.keyDecoder?.canBeCached(e)?this.keyDecoder.decode(this.bytes,n,e):e>i.TEXT_DECODER_THRESHOLD?(0,i.utf8DecodeTD)(this.bytes,n,e):(0,i.utf8DecodeJs)(this.bytes,n,e),this.pos+=t+e,r}stateIsMapKey(){return this.stack.length>0&&this.stack[this.stack.length-1].type===1}decodeBinary(e,t){if(e>this.maxBinLength)throw new s.DecodeError(`Max length exceeded: bin length (${e}) > maxBinLength (${this.maxBinLength})`);if(!this.hasRemaining(e+t))throw d;let n=this.pos+t,r=this.bytes.subarray(n,n+e);return this.pos+=t+e,r}decodeExtension(e,t){if(e>this.maxExtLength)throw new s.DecodeError(`Max length exceeded: ext length (${e}) > maxExtLength (${this.maxExtLength})`);let n=this.view.getInt8(this.pos+t),r=this.decodeBinary(e,t+1);return this.extensionCodec.decode(r,n,this.context)}lookU8(){return this.view.getUint8(this.pos)}lookU16(){return this.view.getUint16(this.pos)}lookU32(){return this.view.getUint32(this.pos)}readU8(){let e=this.view.getUint8(this.pos);return this.pos++,e}readI8(){let e=this.view.getInt8(this.pos);return this.pos++,e}readU16(){let e=this.view.getUint16(this.pos);return this.pos+=2,e}readI16(){let e=this.view.getInt16(this.pos);return this.pos+=2,e}readU32(){let e=this.view.getUint32(this.pos);return this.pos+=4,e}readI32(){let e=this.view.getInt32(this.pos);return this.pos+=4,e}readU64(){let e=(0,r.getUint64)(this.view,this.pos);return this.pos+=8,e}readI64(){let e=(0,r.getInt64)(this.view,this.pos);return this.pos+=8,e}readF32(){let e=this.view.getFloat32(this.pos);return this.pos+=4,e}readF64(){let e=this.view.getFloat64(this.pos);return this.pos+=8,e}}})),HP=V((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.decodeMulti=e.decode=e.defaultDecodeOptions=void 0;let t=VP();e.defaultDecodeOptions={};function n(n,r=e.defaultDecodeOptions){return new t.Decoder(r.extensionCodec,r.context,r.maxStrLength,r.maxBinLength,r.maxArrayLength,r.maxMapLength,r.maxExtLength).decode(n)}e.decode=n;function r(n,r=e.defaultDecodeOptions){return new t.Decoder(r.extensionCodec,r.context,r.maxStrLength,r.maxBinLength,r.maxArrayLength,r.maxMapLength,r.maxExtLength).decodeMulti(n)}e.decodeMulti=r})),UP=V((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.ensureAsyncIterable=e.asyncIterableFromStream=e.isAsyncIterable=void 0;function t(e){return e[Symbol.asyncIterator]!=null}e.isAsyncIterable=t;function n(e){if(e==null)throw Error(`Assertion Failure: value must not be null nor undefined`)}async function*r(e){let t=e.getReader();try{for(;;){let{done:e,value:r}=await t.read();if(e)return;n(r),yield r}}finally{t.releaseLock()}}e.asyncIterableFromStream=r;function i(e){return t(e)?e:r(e)}e.ensureAsyncIterable=i})),WP=V((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.decodeStream=e.decodeMultiStream=e.decodeArrayStream=e.decodeAsync=void 0;let t=VP(),n=UP(),r=HP();async function i(e,i=r.defaultDecodeOptions){let a=(0,n.ensureAsyncIterable)(e);return new t.Decoder(i.extensionCodec,i.context,i.maxStrLength,i.maxBinLength,i.maxArrayLength,i.maxMapLength,i.maxExtLength).decodeAsync(a)}e.decodeAsync=i;function a(e,i=r.defaultDecodeOptions){let a=(0,n.ensureAsyncIterable)(e);return new t.Decoder(i.extensionCodec,i.context,i.maxStrLength,i.maxBinLength,i.maxArrayLength,i.maxMapLength,i.maxExtLength).decodeArrayStream(a)}e.decodeArrayStream=a;function o(e,i=r.defaultDecodeOptions){let a=(0,n.ensureAsyncIterable)(e);return new t.Decoder(i.extensionCodec,i.context,i.maxStrLength,i.maxBinLength,i.maxArrayLength,i.maxMapLength,i.maxExtLength).decodeStream(a)}e.decodeMultiStream=o;function s(e,t=r.defaultDecodeOptions){return o(e,t)}e.decodeStream=s})),GP=V((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.decodeTimestampExtension=e.encodeTimestampExtension=e.decodeTimestampToTimeSpec=e.encodeTimeSpecToTimestamp=e.encodeDateToTimeSpec=e.EXT_TIMESTAMP=e.ExtData=e.ExtensionCodec=e.Encoder=e.DataViewIndexOutOfBoundsError=e.DecodeError=e.Decoder=e.decodeStream=e.decodeMultiStream=e.decodeArrayStream=e.decodeAsync=e.decodeMulti=e.decode=e.encode=void 0;let t=RP();Object.defineProperty(e,"encode",{enumerable:!0,get:function(){return t.encode}});let n=HP();Object.defineProperty(e,"decode",{enumerable:!0,get:function(){return n.decode}}),Object.defineProperty(e,"decodeMulti",{enumerable:!0,get:function(){return n.decodeMulti}});let r=WP();Object.defineProperty(e,"decodeAsync",{enumerable:!0,get:function(){return r.decodeAsync}}),Object.defineProperty(e,"decodeArrayStream",{enumerable:!0,get:function(){return r.decodeArrayStream}}),Object.defineProperty(e,"decodeMultiStream",{enumerable:!0,get:function(){return r.decodeMultiStream}}),Object.defineProperty(e,"decodeStream",{enumerable:!0,get:function(){return r.decodeStream}});let i=VP();Object.defineProperty(e,"Decoder",{enumerable:!0,get:function(){return i.Decoder}}),Object.defineProperty(e,"DataViewIndexOutOfBoundsError",{enumerable:!0,get:function(){return i.DataViewIndexOutOfBoundsError}});let a=NP();Object.defineProperty(e,"DecodeError",{enumerable:!0,get:function(){return a.DecodeError}});let o=LP();Object.defineProperty(e,"Encoder",{enumerable:!0,get:function(){return o.Encoder}});let s=FP();Object.defineProperty(e,"ExtensionCodec",{enumerable:!0,get:function(){return s.ExtensionCodec}});let c=MP();Object.defineProperty(e,"ExtData",{enumerable:!0,get:function(){return c.ExtData}});let l=PP();Object.defineProperty(e,"EXT_TIMESTAMP",{enumerable:!0,get:function(){return l.EXT_TIMESTAMP}}),Object.defineProperty(e,"encodeDateToTimeSpec",{enumerable:!0,get:function(){return l.encodeDateToTimeSpec}}),Object.defineProperty(e,"encodeTimeSpecToTimestamp",{enumerable:!0,get:function(){return l.encodeTimeSpecToTimestamp}}),Object.defineProperty(e,"decodeTimestampToTimeSpec",{enumerable:!0,get:function(){return l.decodeTimestampToTimeSpec}}),Object.defineProperty(e,"encodeTimestampExtension",{enumerable:!0,get:function(){return l.encodeTimestampExtension}}),Object.defineProperty(e,"decodeTimestampExtension",{enumerable:!0,get:function(){return l.decodeTimestampExtension}})})),KP=V(((e,t)=>{var n=_P(),r=OP(),i=kP(),a=GP();function o(e){Object.defineProperty(e,"__esModule",{value:!0,configurable:!0})}function s(e,t){return Object.keys(t).forEach(function(n){n==="default"||n==="__esModule"||Object.prototype.hasOwnProperty.call(e,n)||Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})}),e}function c(e,t,n,r){Object.defineProperty(e,t,{get:n,set:r,enumerable:!0,configurable:!0})}function l(e){return e&&e.__esModule?e.default:e}o(t.exports),c(t.exports,`default`,()=>ae),c(t.exports,`util`,()=>_),c(t.exports,`BufferedConnection`,()=>I),c(t.exports,`StreamConnection`,()=>R),c(t.exports,`MsgPack`,()=>re),c(t.exports,`Peer`,()=>ne),c(t.exports,`MsgPackPeer`,()=>ie),c(t.exports,`PeerError`,()=>j);var u=class{constructor(){this.chunkedMTU=16300,this._dataCount=1,this.chunk=e=>{let t=[],n=e.byteLength,r=Math.ceil(n/this.chunkedMTU),i=0,a=0;for(;a<n;){let o=Math.min(n,a+this.chunkedMTU),s=e.slice(a,o),c={__peerData:this._dataCount,n:i,data:s,total:r};t.push(c),a=o,i++}return this._dataCount++,t}}};function d(e){let t=0;for(let n of e)t+=n.byteLength;let n=new Uint8Array(t),r=0;for(let t of e)n.set(t,r),r+=t.byteLength;return n}let f=l(r).default||l(r),p=new class{isWebRTCSupported(){return typeof RTCPeerConnection<`u`}isBrowserSupported(){let e=this.getBrowser(),t=this.getVersion();return this.supportedBrowsers.includes(e)?e===`chrome`?t>=this.minChromeVersion:e===`firefox`?t>=this.minFirefoxVersion:e===`safari`&&!this.isIOS&&t>=this.minSafariVersion:!1}getBrowser(){return f.browserDetails.browser}getVersion(){return f.browserDetails.version||0}isUnifiedPlanSupported(){let e=this.getBrowser(),t=f.browserDetails.version||0;if(e===`chrome`&&t<this.minChromeVersion)return!1;if(e===`firefox`&&t>=this.minFirefoxVersion)return!0;if(!window.RTCRtpTransceiver||!(`currentDirection`in RTCRtpTransceiver.prototype))return!1;let n,r=!1;try{n=new RTCPeerConnection,n.addTransceiver(`audio`),r=!0}catch{}finally{n&&n.close()}return r}toString(){return`Supports:
|
|
1050
|
+
`);e.RTCSessionDescription&&t instanceof e.RTCSessionDescription?arguments[0]=new e.RTCSessionDescription({type:t.type,sdp:r}):t.sdp=r}return n.apply(this,arguments)}}}function f(e,t){if(e.RTCPeerConnection&&e.RTCPeerConnection.prototype){var n=e.RTCPeerConnection.prototype.addIceCandidate;!n||n.length===0||(e.RTCPeerConnection.prototype.addIceCandidate=function(){return arguments[0]?(t.browser===`chrome`&&t.version<78||t.browser===`firefox`&&t.version<68||t.browser===`safari`)&&arguments[0]&&arguments[0].candidate===``?Promise.resolve():n.apply(this,arguments):(arguments[1]&&arguments[1].apply(null),Promise.resolve())})}}function p(e,t){if(e.RTCPeerConnection&&e.RTCPeerConnection.prototype){var n=e.RTCPeerConnection.prototype.setLocalDescription;!n||n.length===0||(e.RTCPeerConnection.prototype.setLocalDescription=function(){var e=this,t=arguments[0]||{};if(a(t)!==`object`||t.type&&t.sdp)return n.apply(this,arguments);if(t={type:t.type,sdp:t.sdp},!t.type)switch(this.signalingState){case`stable`:case`have-local-offer`:case`have-remote-pranswer`:t.type=`offer`;break;default:t.type=`answer`;break}return t.sdp||t.type!==`offer`&&t.type!==`answer`?n.apply(this,[t]):(t.type===`offer`?this.createOffer:this.createAnswer).apply(this).then(function(t){return n.apply(e,[t])})})}}})),DP=V((e=>{function t(e){"@babel/helpers - typeof";return t=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},t(e)}Object.defineProperty(e,"__esModule",{value:!0}),e.adapterFactory=l;var n=c(vP()),r=c(bP()),i=c(CP()),a=c(wP()),o=c(EP()),s=c(TP());function c(e,n){if(typeof WeakMap==`function`)var r=new WeakMap,i=new WeakMap;return(c=function(e,n){if(!n&&e&&e.__esModule)return e;var a,o,s={__proto__:null,default:e};if(e===null||t(e)!=`object`&&typeof e!=`function`)return s;if(a=n?i:r){if(a.has(e))return a.get(e);a.set(e,s)}for(var c in e)c!=="default"&&{}.hasOwnProperty.call(e,c)&&((o=(a=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,c))&&(o.get||o.set)?a(s,c,o):s[c]=e[c]);return s})(e,n)}function l(){var e=(arguments.length>0&&arguments[0]!==void 0?arguments[0]:{}).window,t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{shimChrome:!0,shimFirefox:!0,shimSafari:!0},c=n.log,l=n.detectBrowser(e),u={browserDetails:l,commonShim:o,extractVersion:n.extractVersion,disableLog:n.disableLog,disableWarnings:n.disableWarnings,sdp:s};switch(l.browser){case`chrome`:if(!r||!r.shimPeerConnection||!t.shimChrome)return c(`Chrome shim is not included in this adapter release.`),u;if(l.version===null)return c(`Chrome shim can not determine version, not shimming.`),u;c(`adapter.js shimming chrome.`),u.browserShim=r,o.shimAddIceCandidateNullOrEmpty(e,l),o.shimParameterlessSetLocalDescription(e,l),r.shimGetUserMedia(e,l),r.shimMediaStream(e,l),r.shimPeerConnection(e,l),r.shimOnTrack(e,l),r.shimAddTrackRemoveTrack(e,l),r.shimGetSendersWithDtmf(e,l),r.shimSenderReceiverGetStats(e,l),r.fixNegotiationNeeded(e,l),o.shimRTCIceCandidate(e,l),o.shimRTCIceCandidateRelayProtocol(e,l),o.shimConnectionState(e,l),o.shimMaxMessageSize(e,l),o.shimSendThrowTypeError(e,l),o.removeExtmapAllowMixed(e,l);break;case`firefox`:if(!i||!i.shimPeerConnection||!t.shimFirefox)return c(`Firefox shim is not included in this adapter release.`),u;c(`adapter.js shimming firefox.`),u.browserShim=i,o.shimAddIceCandidateNullOrEmpty(e,l),o.shimParameterlessSetLocalDescription(e,l),i.shimGetUserMedia(e,l),i.shimPeerConnection(e,l),i.shimGetStats(e,l),i.shimOnTrack(e,l),i.shimRemoveStream(e,l),i.shimSenderGetStats(e,l),i.shimReceiverGetStats(e,l),i.shimRTCDataChannel(e,l),i.shimAddTransceiver(e,l),i.shimGetParameters(e,l),i.shimCreateOffer(e,l),i.shimCreateAnswer(e,l),o.shimRTCIceCandidate(e,l),o.shimConnectionState(e,l),o.shimMaxMessageSize(e,l),o.shimSendThrowTypeError(e,l);break;case`safari`:if(!a||!t.shimSafari)return c(`Safari shim is not included in this adapter release.`),u;c(`adapter.js shimming safari.`),u.browserShim=a,o.shimAddIceCandidateNullOrEmpty(e,l),o.shimParameterlessSetLocalDescription(e,l),a.shimRTCIceServerUrls(e,l),a.shimCreateOfferLegacy(e,l),a.shimCallbacksAPI(e,l),a.shimLocalStreamsAPI(e,l),a.shimRemoteStreamsAPI(e,l),a.shimTrackEventTransceiver(e,l),a.shimGetUserMedia(e,l),a.shimAudioContext(e,l),o.shimRTCIceCandidate(e,l),o.shimRTCIceCandidateRelayProtocol(e,l),o.shimMaxMessageSize(e,l),o.shimSendThrowTypeError(e,l),o.removeExtmapAllowMixed(e,l);break;default:c(`Unsupported browser!`);break}return u}})),OP=V((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0,e.default=(0,DP().adapterFactory)({window:typeof window>`u`?void 0:window})})),kP=V(((e,t)=>{var n=Object.prototype.hasOwnProperty,r=`~`;function i(){}Object.create&&(i.prototype=Object.create(null),new i().__proto__||(r=!1));function a(e,t,n){this.fn=e,this.context=t,this.once=n||!1}function o(e,t,n,i,o){if(typeof n!=`function`)throw TypeError(`The listener must be a function`);var s=new a(n,i||e,o),c=r?r+t:t;return e._events[c]?e._events[c].fn?e._events[c]=[e._events[c],s]:e._events[c].push(s):(e._events[c]=s,e._eventsCount++),e}function s(e,t){--e._eventsCount===0?e._events=new i:delete e._events[t]}function c(){this._events=new i,this._eventsCount=0}c.prototype.eventNames=function(){var e=[],t,i;if(this._eventsCount===0)return e;for(i in t=this._events)n.call(t,i)&&e.push(r?i.slice(1):i);return Object.getOwnPropertySymbols?e.concat(Object.getOwnPropertySymbols(t)):e},c.prototype.listeners=function(e){var t=r?r+e:e,n=this._events[t];if(!n)return[];if(n.fn)return[n.fn];for(var i=0,a=n.length,o=Array(a);i<a;i++)o[i]=n[i].fn;return o},c.prototype.listenerCount=function(e){var t=r?r+e:e,n=this._events[t];return n?n.fn?1:n.length:0},c.prototype.emit=function(e,t,n,i,a,o){var s=r?r+e:e;if(!this._events[s])return!1;var c=this._events[s],l=arguments.length,u,d;if(c.fn){switch(c.once&&this.removeListener(e,c.fn,void 0,!0),l){case 1:return c.fn.call(c.context),!0;case 2:return c.fn.call(c.context,t),!0;case 3:return c.fn.call(c.context,t,n),!0;case 4:return c.fn.call(c.context,t,n,i),!0;case 5:return c.fn.call(c.context,t,n,i,a),!0;case 6:return c.fn.call(c.context,t,n,i,a,o),!0}for(d=1,u=Array(l-1);d<l;d++)u[d-1]=arguments[d];c.fn.apply(c.context,u)}else{var f=c.length,p;for(d=0;d<f;d++)switch(c[d].once&&this.removeListener(e,c[d].fn,void 0,!0),l){case 1:c[d].fn.call(c[d].context);break;case 2:c[d].fn.call(c[d].context,t);break;case 3:c[d].fn.call(c[d].context,t,n);break;case 4:c[d].fn.call(c[d].context,t,n,i);break;default:if(!u)for(p=1,u=Array(l-1);p<l;p++)u[p-1]=arguments[p];c[d].fn.apply(c[d].context,u)}}return!0},c.prototype.on=function(e,t,n){return o(this,e,t,n,!1)},c.prototype.once=function(e,t,n){return o(this,e,t,n,!0)},c.prototype.removeListener=function(e,t,n,i){var a=r?r+e:e;if(!this._events[a])return this;if(!t)return s(this,a),this;var o=this._events[a];if(o.fn)o.fn===t&&(!i||o.once)&&(!n||o.context===n)&&s(this,a);else{for(var c=0,l=[],u=o.length;c<u;c++)(o[c].fn!==t||i&&!o[c].once||n&&o[c].context!==n)&&l.push(o[c]);l.length?this._events[a]=l.length===1?l[0]:l:s(this,a)}return this},c.prototype.removeAllListeners=function(e){var t;return e?(t=r?r+e:e,this._events[t]&&s(this,t)):(this._events=new i,this._eventsCount=0),this},c.prototype.off=c.prototype.removeListener,c.prototype.addListener=c.prototype.on,c.prefixed=r,c.EventEmitter=c,t!==void 0&&(t.exports=c)})),AP=V((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.getUint64=e.getInt64=e.setInt64=e.setUint64=e.UINT32_MAX=void 0,e.UINT32_MAX=4294967295;function t(e,t,n){let r=n/4294967296,i=n;e.setUint32(t,r),e.setUint32(t+4,i)}e.setUint64=t;function n(e,t,n){let r=Math.floor(n/4294967296),i=n;e.setUint32(t,r),e.setUint32(t+4,i)}e.setInt64=n;function r(e,t){let n=e.getInt32(t),r=e.getUint32(t+4);return n*4294967296+r}e.getInt64=r;function i(e,t){let n=e.getUint32(t),r=e.getUint32(t+4);return n*4294967296+r}e.getUint64=i})),jP=V((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.utf8DecodeTD=e.TEXT_DECODER_THRESHOLD=e.utf8DecodeJs=e.utf8EncodeTE=e.TEXT_ENCODER_THRESHOLD=e.utf8EncodeJs=e.utf8Count=void 0;let t=AP(),r=(n===void 0||n?.env?.TEXT_ENCODING!==`never`)&&typeof TextEncoder<`u`&&typeof TextDecoder<`u`;function i(e){let t=e.length,n=0,r=0;for(;r<t;){let i=e.charCodeAt(r++);if(!(i&4294967168)){n++;continue}else if(!(i&4294965248))n+=2;else{if(i>=55296&&i<=56319&&r<t){let t=e.charCodeAt(r);(t&64512)==56320&&(++r,i=((i&1023)<<10)+(t&1023)+65536)}i&4294901760?n+=4:n+=3}}return n}e.utf8Count=i;function a(e,t,n){let r=e.length,i=n,a=0;for(;a<r;){let n=e.charCodeAt(a++);if(!(n&4294967168)){t[i++]=n;continue}else if(!(n&4294965248))t[i++]=n>>6&31|192;else{if(n>=55296&&n<=56319&&a<r){let t=e.charCodeAt(a);(t&64512)==56320&&(++a,n=((n&1023)<<10)+(t&1023)+65536)}n&4294901760?(t[i++]=n>>18&7|240,t[i++]=n>>12&63|128,t[i++]=n>>6&63|128):(t[i++]=n>>12&15|224,t[i++]=n>>6&63|128)}t[i++]=n&63|128}}e.utf8EncodeJs=a;let o=r?new TextEncoder:void 0;e.TEXT_ENCODER_THRESHOLD=r?n!==void 0&&n?.env?.TEXT_ENCODING!==`force`?200:0:t.UINT32_MAX;function s(e,t,n){t.set(o.encode(e),n)}function c(e,t,n){o.encodeInto(e,t.subarray(n))}e.utf8EncodeTE=o?.encodeInto?c:s;function l(e,t,n){let r=t,i=r+n,a=[],o=``;for(;r<i;){let t=e[r++];if(!(t&128))a.push(t);else if((t&224)==192){let n=e[r++]&63;a.push((t&31)<<6|n)}else if((t&240)==224){let n=e[r++]&63,i=e[r++]&63;a.push((t&31)<<12|n<<6|i)}else if((t&248)==240){let n=e[r++]&63,i=e[r++]&63,o=e[r++]&63,s=(t&7)<<18|n<<12|i<<6|o;s>65535&&(s-=65536,a.push(s>>>10&1023|55296),s=56320|s&1023),a.push(s)}else a.push(t);a.length>=4096&&(o+=String.fromCharCode(...a),a.length=0)}return a.length>0&&(o+=String.fromCharCode(...a)),o}e.utf8DecodeJs=l;let u=r?new TextDecoder:null;e.TEXT_DECODER_THRESHOLD=r?n!==void 0&&n?.env?.TEXT_DECODER!==`force`?200:0:t.UINT32_MAX;function d(e,t,n){let r=e.subarray(t,t+n);return u.decode(r)}e.utf8DecodeTD=d})),MP=V((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.ExtData=void 0,e.ExtData=class{constructor(e,t){this.type=e,this.data=t}}})),NP=V((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.DecodeError=void 0,e.DecodeError=class e extends Error{constructor(t){super(t);let n=Object.create(e.prototype);Object.setPrototypeOf(this,n),Object.defineProperty(this,"name",{configurable:!0,enumerable:!1,value:e.name})}}})),PP=V((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.timestampExtension=e.decodeTimestampExtension=e.decodeTimestampToTimeSpec=e.encodeTimestampExtension=e.encodeDateToTimeSpec=e.encodeTimeSpecToTimestamp=e.EXT_TIMESTAMP=void 0;let t=NP(),n=AP();e.EXT_TIMESTAMP=-1;function r({sec:e,nsec:t}){if(e>=0&&t>=0&&e<=17179869183)if(t===0&&e<=4294967295){let t=new Uint8Array(4);return new DataView(t.buffer).setUint32(0,e),t}else{let n=e/4294967296,r=e&4294967295,i=new Uint8Array(8),a=new DataView(i.buffer);return a.setUint32(0,t<<2|n&3),a.setUint32(4,r),i}else{let r=new Uint8Array(12),i=new DataView(r.buffer);return i.setUint32(0,t),(0,n.setInt64)(i,4,e),r}}e.encodeTimeSpecToTimestamp=r;function i(e){let t=e.getTime(),n=Math.floor(t/1e3),r=(t-n*1e3)*1e6,i=Math.floor(r/1e9);return{sec:n+i,nsec:r-i*1e9}}e.encodeDateToTimeSpec=i;function a(e){return e instanceof Date?r(i(e)):null}e.encodeTimestampExtension=a;function o(e){let r=new DataView(e.buffer,e.byteOffset,e.byteLength);switch(e.byteLength){case 4:return{sec:r.getUint32(0),nsec:0};case 8:{let e=r.getUint32(0),t=r.getUint32(4);return{sec:(e&3)*4294967296+t,nsec:e>>>2}}case 12:return{sec:(0,n.getInt64)(r,4),nsec:r.getUint32(0)};default:throw new t.DecodeError(`Unrecognized data size for timestamp (expected 4, 8, or 12): ${e.length}`)}}e.decodeTimestampToTimeSpec=o;function s(e){let t=o(e);return new Date(t.sec*1e3+t.nsec/1e6)}e.decodeTimestampExtension=s,e.timestampExtension={type:e.EXT_TIMESTAMP,encode:a,decode:s}})),FP=V((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.ExtensionCodec=void 0;let t=MP(),n=PP();var r=class{constructor(){this.builtInEncoders=[],this.builtInDecoders=[],this.encoders=[],this.decoders=[],this.register(n.timestampExtension)}register({type:e,encode:t,decode:n}){if(e>=0)this.encoders[e]=t,this.decoders[e]=n;else{let r=1+e;this.builtInEncoders[r]=t,this.builtInDecoders[r]=n}}tryToEncode(e,n){for(let r=0;r<this.builtInEncoders.length;r++){let i=this.builtInEncoders[r];if(i!=null){let a=i(e,n);if(a!=null){let e=-1-r;return new t.ExtData(e,a)}}}for(let r=0;r<this.encoders.length;r++){let i=this.encoders[r];if(i!=null){let a=i(e,n);if(a!=null){let e=r;return new t.ExtData(e,a)}}}return e instanceof t.ExtData?e:null}decode(e,n,r){let i=n<0?this.builtInDecoders[-1-n]:this.decoders[n];return i?i(e,n,r):new t.ExtData(n,e)}};e.ExtensionCodec=r,r.defaultCodec=new r})),IP=V((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.createDataView=e.ensureUint8Array=void 0;function t(e){return e instanceof Uint8Array?e:ArrayBuffer.isView(e)?new Uint8Array(e.buffer,e.byteOffset,e.byteLength):e instanceof ArrayBuffer?new Uint8Array(e):Uint8Array.from(e)}e.ensureUint8Array=t;function n(e){if(e instanceof ArrayBuffer)return new DataView(e);let n=t(e);return new DataView(n.buffer,n.byteOffset,n.byteLength)}e.createDataView=n})),LP=V((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.Encoder=e.DEFAULT_INITIAL_BUFFER_SIZE=e.DEFAULT_MAX_DEPTH=void 0;let t=jP(),n=FP(),r=AP(),i=IP();e.DEFAULT_MAX_DEPTH=100,e.DEFAULT_INITIAL_BUFFER_SIZE=2048,e.Encoder=class{constructor(t=n.ExtensionCodec.defaultCodec,r=void 0,i=e.DEFAULT_MAX_DEPTH,a=e.DEFAULT_INITIAL_BUFFER_SIZE,o=!1,s=!1,c=!1,l=!1){this.extensionCodec=t,this.context=r,this.maxDepth=i,this.initialBufferSize=a,this.sortKeys=o,this.forceFloat32=s,this.ignoreUndefined=c,this.forceIntegerToFloat=l,this.pos=0,this.view=new DataView(new ArrayBuffer(this.initialBufferSize)),this.bytes=new Uint8Array(this.view.buffer)}reinitializeState(){this.pos=0}encodeSharedRef(e){return this.reinitializeState(),this.doEncode(e,1),this.bytes.subarray(0,this.pos)}encode(e){return this.reinitializeState(),this.doEncode(e,1),this.bytes.slice(0,this.pos)}doEncode(e,t){if(t>this.maxDepth)throw Error(`Too deep objects in depth ${t}`);e==null?this.encodeNil():typeof e==`boolean`?this.encodeBoolean(e):typeof e==`number`?this.encodeNumber(e):typeof e==`string`?this.encodeString(e):this.encodeObject(e,t)}ensureBufferSizeToWrite(e){let t=this.pos+e;this.view.byteLength<t&&this.resizeBuffer(t*2)}resizeBuffer(e){let t=new ArrayBuffer(e),n=new Uint8Array(t),r=new DataView(t);n.set(this.bytes),this.view=r,this.bytes=n}encodeNil(){this.writeU8(192)}encodeBoolean(e){e===!1?this.writeU8(194):this.writeU8(195)}encodeNumber(e){Number.isSafeInteger(e)&&!this.forceIntegerToFloat?e>=0?e<128?this.writeU8(e):e<256?(this.writeU8(204),this.writeU8(e)):e<65536?(this.writeU8(205),this.writeU16(e)):e<4294967296?(this.writeU8(206),this.writeU32(e)):(this.writeU8(207),this.writeU64(e)):e>=-32?this.writeU8(224|e+32):e>=-128?(this.writeU8(208),this.writeI8(e)):e>=-32768?(this.writeU8(209),this.writeI16(e)):e>=-2147483648?(this.writeU8(210),this.writeI32(e)):(this.writeU8(211),this.writeI64(e)):this.forceFloat32?(this.writeU8(202),this.writeF32(e)):(this.writeU8(203),this.writeF64(e))}writeStringHeader(e){if(e<32)this.writeU8(160+e);else if(e<256)this.writeU8(217),this.writeU8(e);else if(e<65536)this.writeU8(218),this.writeU16(e);else if(e<4294967296)this.writeU8(219),this.writeU32(e);else throw Error(`Too long string: ${e} bytes in UTF-8`)}encodeString(e){if(e.length>t.TEXT_ENCODER_THRESHOLD){let n=(0,t.utf8Count)(e);this.ensureBufferSizeToWrite(5+n),this.writeStringHeader(n),(0,t.utf8EncodeTE)(e,this.bytes,this.pos),this.pos+=n}else{let n=(0,t.utf8Count)(e);this.ensureBufferSizeToWrite(5+n),this.writeStringHeader(n),(0,t.utf8EncodeJs)(e,this.bytes,this.pos),this.pos+=n}}encodeObject(e,t){let n=this.extensionCodec.tryToEncode(e,this.context);if(n!=null)this.encodeExtension(n);else if(Array.isArray(e))this.encodeArray(e,t);else if(ArrayBuffer.isView(e))this.encodeBinary(e);else if(typeof e==`object`)this.encodeMap(e,t);else throw Error(`Unrecognized object: ${Object.prototype.toString.apply(e)}`)}encodeBinary(e){let t=e.byteLength;if(t<256)this.writeU8(196),this.writeU8(t);else if(t<65536)this.writeU8(197),this.writeU16(t);else if(t<4294967296)this.writeU8(198),this.writeU32(t);else throw Error(`Too large binary: ${t}`);let n=(0,i.ensureUint8Array)(e);this.writeU8a(n)}encodeArray(e,t){let n=e.length;if(n<16)this.writeU8(144+n);else if(n<65536)this.writeU8(220),this.writeU16(n);else if(n<4294967296)this.writeU8(221),this.writeU32(n);else throw Error(`Too large array: ${n}`);for(let n of e)this.doEncode(n,t+1)}countWithoutUndefined(e,t){let n=0;for(let r of t)e[r]!==void 0&&n++;return n}encodeMap(e,t){let n=Object.keys(e);this.sortKeys&&n.sort();let r=this.ignoreUndefined?this.countWithoutUndefined(e,n):n.length;if(r<16)this.writeU8(128+r);else if(r<65536)this.writeU8(222),this.writeU16(r);else if(r<4294967296)this.writeU8(223),this.writeU32(r);else throw Error(`Too large map object: ${r}`);for(let r of n){let n=e[r];this.ignoreUndefined&&n===void 0||(this.encodeString(r),this.doEncode(n,t+1))}}encodeExtension(e){let t=e.data.length;if(t===1)this.writeU8(212);else if(t===2)this.writeU8(213);else if(t===4)this.writeU8(214);else if(t===8)this.writeU8(215);else if(t===16)this.writeU8(216);else if(t<256)this.writeU8(199),this.writeU8(t);else if(t<65536)this.writeU8(200),this.writeU16(t);else if(t<4294967296)this.writeU8(201),this.writeU32(t);else throw Error(`Too large extension object: ${t}`);this.writeI8(e.type),this.writeU8a(e.data)}writeU8(e){this.ensureBufferSizeToWrite(1),this.view.setUint8(this.pos,e),this.pos++}writeU8a(e){let t=e.length;this.ensureBufferSizeToWrite(t),this.bytes.set(e,this.pos),this.pos+=t}writeI8(e){this.ensureBufferSizeToWrite(1),this.view.setInt8(this.pos,e),this.pos++}writeU16(e){this.ensureBufferSizeToWrite(2),this.view.setUint16(this.pos,e),this.pos+=2}writeI16(e){this.ensureBufferSizeToWrite(2),this.view.setInt16(this.pos,e),this.pos+=2}writeU32(e){this.ensureBufferSizeToWrite(4),this.view.setUint32(this.pos,e),this.pos+=4}writeI32(e){this.ensureBufferSizeToWrite(4),this.view.setInt32(this.pos,e),this.pos+=4}writeF32(e){this.ensureBufferSizeToWrite(4),this.view.setFloat32(this.pos,e),this.pos+=4}writeF64(e){this.ensureBufferSizeToWrite(8),this.view.setFloat64(this.pos,e),this.pos+=8}writeU64(e){this.ensureBufferSizeToWrite(8),(0,r.setUint64)(this.view,this.pos,e),this.pos+=8}writeI64(e){this.ensureBufferSizeToWrite(8),(0,r.setInt64)(this.view,this.pos,e),this.pos+=8}}})),RP=V((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.encode=void 0;let t=LP(),n={};function r(e,r=n){return new t.Encoder(r.extensionCodec,r.context,r.maxDepth,r.initialBufferSize,r.sortKeys,r.forceFloat32,r.ignoreUndefined,r.forceIntegerToFloat).encodeSharedRef(e)}e.encode=r})),zP=V((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.prettyByte=void 0;function t(e){return`${e<0?`-`:``}0x${Math.abs(e).toString(16).padStart(2,`0`)}`}e.prettyByte=t})),BP=V((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.CachedKeyDecoder=void 0;let t=jP();e.CachedKeyDecoder=class{constructor(e=16,t=16){this.maxKeyLength=e,this.maxLengthPerKey=t,this.hit=0,this.miss=0,this.caches=[];for(let e=0;e<this.maxKeyLength;e++)this.caches.push([])}canBeCached(e){return e>0&&e<=this.maxKeyLength}find(e,t,n){let r=this.caches[n-1];FIND_CHUNK:for(let i of r){let r=i.bytes;for(let i=0;i<n;i++)if(r[i]!==e[t+i])continue FIND_CHUNK;return i.str}return null}store(e,t){let n=this.caches[e.length-1],r={bytes:e,str:t};n.length>=this.maxLengthPerKey?n[Math.random()*n.length|0]=r:n.push(r)}decode(e,n,r){let i=this.find(e,n,r);if(i!=null)return this.hit++,i;this.miss++;let a=(0,t.utf8DecodeJs)(e,n,r),o=Uint8Array.prototype.slice.call(e,n,n+r);return this.store(o,a),a}}})),VP=V((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.Decoder=e.DataViewIndexOutOfBoundsError=void 0;let t=zP(),n=FP(),r=AP(),i=jP(),a=IP(),o=BP(),s=NP(),c=e=>{let t=typeof e;return t===`string`||t===`number`},l=new DataView(new ArrayBuffer(0)),u=new Uint8Array(l.buffer);e.DataViewIndexOutOfBoundsError=(()=>{try{l.getInt8(0)}catch(e){return e.constructor}throw Error(`never reached`)})();let d=new e.DataViewIndexOutOfBoundsError(`Insufficient data`),f=new o.CachedKeyDecoder;e.Decoder=class{constructor(e=n.ExtensionCodec.defaultCodec,t=void 0,i=r.UINT32_MAX,a=r.UINT32_MAX,o=r.UINT32_MAX,s=r.UINT32_MAX,c=r.UINT32_MAX,d=f){this.extensionCodec=e,this.context=t,this.maxStrLength=i,this.maxBinLength=a,this.maxArrayLength=o,this.maxMapLength=s,this.maxExtLength=c,this.keyDecoder=d,this.totalPos=0,this.pos=0,this.view=l,this.bytes=u,this.headByte=-1,this.stack=[]}reinitializeState(){this.totalPos=0,this.headByte=-1,this.stack.length=0}setBuffer(e){this.bytes=(0,a.ensureUint8Array)(e),this.view=(0,a.createDataView)(this.bytes),this.pos=0}appendBuffer(e){if(this.headByte===-1&&!this.hasRemaining(1))this.setBuffer(e);else{let t=this.bytes.subarray(this.pos),n=(0,a.ensureUint8Array)(e),r=new Uint8Array(t.length+n.length);r.set(t),r.set(n,t.length),this.setBuffer(r)}}hasRemaining(e){return this.view.byteLength-this.pos>=e}createExtraByteError(e){let{view:t,pos:n}=this;return RangeError(`Extra ${t.byteLength-n} of ${t.byteLength} byte(s) found at buffer[${e}]`)}decode(e){this.reinitializeState(),this.setBuffer(e);let t=this.doDecodeSync();if(this.hasRemaining(1))throw this.createExtraByteError(this.pos);return t}*decodeMulti(e){for(this.reinitializeState(),this.setBuffer(e);this.hasRemaining(1);)yield this.doDecodeSync()}async decodeAsync(n){let r=!1,i;for await(let t of n){if(r)throw this.createExtraByteError(this.totalPos);this.appendBuffer(t);try{i=this.doDecodeSync(),r=!0}catch(t){if(!(t instanceof e.DataViewIndexOutOfBoundsError))throw t}this.totalPos+=this.pos}if(r){if(this.hasRemaining(1))throw this.createExtraByteError(this.totalPos);return i}let{headByte:a,pos:o,totalPos:s}=this;throw RangeError(`Insufficient data in parsing ${(0,t.prettyByte)(a)} at ${s} (${o} in the current buffer)`)}decodeArrayStream(e){return this.decodeMultiAsync(e,!0)}decodeStream(e){return this.decodeMultiAsync(e,!1)}async*decodeMultiAsync(t,n){let r=n,i=-1;for await(let a of t){if(n&&i===0)throw this.createExtraByteError(this.totalPos);this.appendBuffer(a),r&&(i=this.readArraySize(),r=!1,this.complete());try{for(;yield this.doDecodeSync(),--i!==0;);}catch(t){if(!(t instanceof e.DataViewIndexOutOfBoundsError))throw t}this.totalPos+=this.pos}}doDecodeSync(){DECODE:for(;;){let e=this.readHeadByte(),n;if(e>=224)n=e-256;else if(e<192)if(e<128)n=e;else if(e<144){let t=e-128;if(t!==0){this.pushMapState(t),this.complete();continue DECODE}else n={}}else if(e<160){let t=e-144;if(t!==0){this.pushArrayState(t),this.complete();continue DECODE}else n=[]}else{let t=e-160;n=this.decodeUtf8String(t,0)}else if(e===192)n=null;else if(e===194)n=!1;else if(e===195)n=!0;else if(e===202)n=this.readF32();else if(e===203)n=this.readF64();else if(e===204)n=this.readU8();else if(e===205)n=this.readU16();else if(e===206)n=this.readU32();else if(e===207)n=this.readU64();else if(e===208)n=this.readI8();else if(e===209)n=this.readI16();else if(e===210)n=this.readI32();else if(e===211)n=this.readI64();else if(e===217){let e=this.lookU8();n=this.decodeUtf8String(e,1)}else if(e===218){let e=this.lookU16();n=this.decodeUtf8String(e,2)}else if(e===219){let e=this.lookU32();n=this.decodeUtf8String(e,4)}else if(e===220){let e=this.readU16();if(e!==0){this.pushArrayState(e),this.complete();continue DECODE}else n=[]}else if(e===221){let e=this.readU32();if(e!==0){this.pushArrayState(e),this.complete();continue DECODE}else n=[]}else if(e===222){let e=this.readU16();if(e!==0){this.pushMapState(e),this.complete();continue DECODE}else n={}}else if(e===223){let e=this.readU32();if(e!==0){this.pushMapState(e),this.complete();continue DECODE}else n={}}else if(e===196){let e=this.lookU8();n=this.decodeBinary(e,1)}else if(e===197){let e=this.lookU16();n=this.decodeBinary(e,2)}else if(e===198){let e=this.lookU32();n=this.decodeBinary(e,4)}else if(e===212)n=this.decodeExtension(1,0);else if(e===213)n=this.decodeExtension(2,0);else if(e===214)n=this.decodeExtension(4,0);else if(e===215)n=this.decodeExtension(8,0);else if(e===216)n=this.decodeExtension(16,0);else if(e===199){let e=this.lookU8();n=this.decodeExtension(e,1)}else if(e===200){let e=this.lookU16();n=this.decodeExtension(e,2)}else if(e===201){let e=this.lookU32();n=this.decodeExtension(e,4)}else throw new s.DecodeError(`Unrecognized type byte: ${(0,t.prettyByte)(e)}`);this.complete();let r=this.stack;for(;r.length>0;){let e=r[r.length-1];if(e.type===0)if(e.array[e.position]=n,e.position++,e.position===e.size)r.pop(),n=e.array;else continue DECODE;else if(e.type===1){if(!c(n))throw new s.DecodeError(`The type of key must be string or number but `+typeof n);if(n===`__proto__`)throw new s.DecodeError(`The key __proto__ is not allowed`);e.key=n,e.type=2;continue DECODE}else if(e.map[e.key]=n,e.readCount++,e.readCount===e.size)r.pop(),n=e.map;else{e.key=null,e.type=1;continue DECODE}}return n}}readHeadByte(){return this.headByte===-1&&(this.headByte=this.readU8()),this.headByte}complete(){this.headByte=-1}readArraySize(){let e=this.readHeadByte();switch(e){case 220:return this.readU16();case 221:return this.readU32();default:if(e<160)return e-144;throw new s.DecodeError(`Unrecognized array type byte: ${(0,t.prettyByte)(e)}`)}}pushMapState(e){if(e>this.maxMapLength)throw new s.DecodeError(`Max length exceeded: map length (${e}) > maxMapLengthLength (${this.maxMapLength})`);this.stack.push({type:1,size:e,key:null,readCount:0,map:{}})}pushArrayState(e){if(e>this.maxArrayLength)throw new s.DecodeError(`Max length exceeded: array length (${e}) > maxArrayLength (${this.maxArrayLength})`);this.stack.push({type:0,size:e,array:Array(e),position:0})}decodeUtf8String(e,t){if(e>this.maxStrLength)throw new s.DecodeError(`Max length exceeded: UTF-8 byte length (${e}) > maxStrLength (${this.maxStrLength})`);if(this.bytes.byteLength<this.pos+t+e)throw d;let n=this.pos+t,r;return r=this.stateIsMapKey()&&this.keyDecoder?.canBeCached(e)?this.keyDecoder.decode(this.bytes,n,e):e>i.TEXT_DECODER_THRESHOLD?(0,i.utf8DecodeTD)(this.bytes,n,e):(0,i.utf8DecodeJs)(this.bytes,n,e),this.pos+=t+e,r}stateIsMapKey(){return this.stack.length>0&&this.stack[this.stack.length-1].type===1}decodeBinary(e,t){if(e>this.maxBinLength)throw new s.DecodeError(`Max length exceeded: bin length (${e}) > maxBinLength (${this.maxBinLength})`);if(!this.hasRemaining(e+t))throw d;let n=this.pos+t,r=this.bytes.subarray(n,n+e);return this.pos+=t+e,r}decodeExtension(e,t){if(e>this.maxExtLength)throw new s.DecodeError(`Max length exceeded: ext length (${e}) > maxExtLength (${this.maxExtLength})`);let n=this.view.getInt8(this.pos+t),r=this.decodeBinary(e,t+1);return this.extensionCodec.decode(r,n,this.context)}lookU8(){return this.view.getUint8(this.pos)}lookU16(){return this.view.getUint16(this.pos)}lookU32(){return this.view.getUint32(this.pos)}readU8(){let e=this.view.getUint8(this.pos);return this.pos++,e}readI8(){let e=this.view.getInt8(this.pos);return this.pos++,e}readU16(){let e=this.view.getUint16(this.pos);return this.pos+=2,e}readI16(){let e=this.view.getInt16(this.pos);return this.pos+=2,e}readU32(){let e=this.view.getUint32(this.pos);return this.pos+=4,e}readI32(){let e=this.view.getInt32(this.pos);return this.pos+=4,e}readU64(){let e=(0,r.getUint64)(this.view,this.pos);return this.pos+=8,e}readI64(){let e=(0,r.getInt64)(this.view,this.pos);return this.pos+=8,e}readF32(){let e=this.view.getFloat32(this.pos);return this.pos+=4,e}readF64(){let e=this.view.getFloat64(this.pos);return this.pos+=8,e}}})),HP=V((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.decodeMulti=e.decode=e.defaultDecodeOptions=void 0;let t=VP();e.defaultDecodeOptions={};function n(n,r=e.defaultDecodeOptions){return new t.Decoder(r.extensionCodec,r.context,r.maxStrLength,r.maxBinLength,r.maxArrayLength,r.maxMapLength,r.maxExtLength).decode(n)}e.decode=n;function r(n,r=e.defaultDecodeOptions){return new t.Decoder(r.extensionCodec,r.context,r.maxStrLength,r.maxBinLength,r.maxArrayLength,r.maxMapLength,r.maxExtLength).decodeMulti(n)}e.decodeMulti=r})),UP=V((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.ensureAsyncIterable=e.asyncIterableFromStream=e.isAsyncIterable=void 0;function t(e){return e[Symbol.asyncIterator]!=null}e.isAsyncIterable=t;function n(e){if(e==null)throw Error(`Assertion Failure: value must not be null nor undefined`)}async function*r(e){let t=e.getReader();try{for(;;){let{done:e,value:r}=await t.read();if(e)return;n(r),yield r}}finally{t.releaseLock()}}e.asyncIterableFromStream=r;function i(e){return t(e)?e:r(e)}e.ensureAsyncIterable=i})),WP=V((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.decodeStream=e.decodeMultiStream=e.decodeArrayStream=e.decodeAsync=void 0;let t=VP(),n=UP(),r=HP();async function i(e,i=r.defaultDecodeOptions){let a=(0,n.ensureAsyncIterable)(e);return new t.Decoder(i.extensionCodec,i.context,i.maxStrLength,i.maxBinLength,i.maxArrayLength,i.maxMapLength,i.maxExtLength).decodeAsync(a)}e.decodeAsync=i;function a(e,i=r.defaultDecodeOptions){let a=(0,n.ensureAsyncIterable)(e);return new t.Decoder(i.extensionCodec,i.context,i.maxStrLength,i.maxBinLength,i.maxArrayLength,i.maxMapLength,i.maxExtLength).decodeArrayStream(a)}e.decodeArrayStream=a;function o(e,i=r.defaultDecodeOptions){let a=(0,n.ensureAsyncIterable)(e);return new t.Decoder(i.extensionCodec,i.context,i.maxStrLength,i.maxBinLength,i.maxArrayLength,i.maxMapLength,i.maxExtLength).decodeStream(a)}e.decodeMultiStream=o;function s(e,t=r.defaultDecodeOptions){return o(e,t)}e.decodeStream=s})),GP=V((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.decodeTimestampExtension=e.encodeTimestampExtension=e.decodeTimestampToTimeSpec=e.encodeTimeSpecToTimestamp=e.encodeDateToTimeSpec=e.EXT_TIMESTAMP=e.ExtData=e.ExtensionCodec=e.Encoder=e.DataViewIndexOutOfBoundsError=e.DecodeError=e.Decoder=e.decodeStream=e.decodeMultiStream=e.decodeArrayStream=e.decodeAsync=e.decodeMulti=e.decode=e.encode=void 0;let t=RP();Object.defineProperty(e,"encode",{enumerable:!0,get:function(){return t.encode}});let n=HP();Object.defineProperty(e,"decode",{enumerable:!0,get:function(){return n.decode}}),Object.defineProperty(e,"decodeMulti",{enumerable:!0,get:function(){return n.decodeMulti}});let r=WP();Object.defineProperty(e,"decodeAsync",{enumerable:!0,get:function(){return r.decodeAsync}}),Object.defineProperty(e,"decodeArrayStream",{enumerable:!0,get:function(){return r.decodeArrayStream}}),Object.defineProperty(e,"decodeMultiStream",{enumerable:!0,get:function(){return r.decodeMultiStream}}),Object.defineProperty(e,"decodeStream",{enumerable:!0,get:function(){return r.decodeStream}});let i=VP();Object.defineProperty(e,"Decoder",{enumerable:!0,get:function(){return i.Decoder}}),Object.defineProperty(e,"DataViewIndexOutOfBoundsError",{enumerable:!0,get:function(){return i.DataViewIndexOutOfBoundsError}});let a=NP();Object.defineProperty(e,"DecodeError",{enumerable:!0,get:function(){return a.DecodeError}});let o=LP();Object.defineProperty(e,"Encoder",{enumerable:!0,get:function(){return o.Encoder}});let s=FP();Object.defineProperty(e,"ExtensionCodec",{enumerable:!0,get:function(){return s.ExtensionCodec}});let c=MP();Object.defineProperty(e,"ExtData",{enumerable:!0,get:function(){return c.ExtData}});let l=PP();Object.defineProperty(e,"EXT_TIMESTAMP",{enumerable:!0,get:function(){return l.EXT_TIMESTAMP}}),Object.defineProperty(e,"encodeDateToTimeSpec",{enumerable:!0,get:function(){return l.encodeDateToTimeSpec}}),Object.defineProperty(e,"encodeTimeSpecToTimestamp",{enumerable:!0,get:function(){return l.encodeTimeSpecToTimestamp}}),Object.defineProperty(e,"decodeTimestampToTimeSpec",{enumerable:!0,get:function(){return l.decodeTimestampToTimeSpec}}),Object.defineProperty(e,"encodeTimestampExtension",{enumerable:!0,get:function(){return l.encodeTimestampExtension}}),Object.defineProperty(e,"decodeTimestampExtension",{enumerable:!0,get:function(){return l.decodeTimestampExtension}})})),KP=V(((e,t)=>{var n=_P(),r=OP(),i=kP(),a=GP();function o(e){Object.defineProperty(e,"__esModule",{value:!0,configurable:!0})}function s(e,t){return Object.keys(t).forEach(function(n){n==="default"||n==="__esModule"||Object.prototype.hasOwnProperty.call(e,n)||Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})}),e}function c(e,t,n,r){Object.defineProperty(e,t,{get:n,set:r,enumerable:!0,configurable:!0})}function l(e){return e&&e.__esModule?e.default:e}o(t.exports),c(t.exports,`default`,()=>ie),c(t.exports,`util`,()=>_),c(t.exports,`BufferedConnection`,()=>F),c(t.exports,`StreamConnection`,()=>ne),c(t.exports,`MsgPack`,()=>R),c(t.exports,`Peer`,()=>te),c(t.exports,`MsgPackPeer`,()=>re),c(t.exports,`PeerError`,()=>A);var u=class{constructor(){this.chunkedMTU=16300,this._dataCount=1,this.chunk=e=>{let t=[],n=e.byteLength,r=Math.ceil(n/this.chunkedMTU),i=0,a=0;for(;a<n;){let o=Math.min(n,a+this.chunkedMTU),s=e.slice(a,o),c={__peerData:this._dataCount,n:i,data:s,total:r};t.push(c),a=o,i++}return this._dataCount++,t}}};function d(e){let t=0;for(let n of e)t+=n.byteLength;let n=new Uint8Array(t),r=0;for(let t of e)n.set(t,r),r+=t.byteLength;return n}let f=l(r).default||l(r),p=new class{isWebRTCSupported(){return typeof RTCPeerConnection<`u`}isBrowserSupported(){let e=this.getBrowser(),t=this.getVersion();return this.supportedBrowsers.includes(e)?e===`chrome`?t>=this.minChromeVersion:e===`firefox`?t>=this.minFirefoxVersion:e===`safari`&&!this.isIOS&&t>=this.minSafariVersion:!1}getBrowser(){return f.browserDetails.browser}getVersion(){return f.browserDetails.version||0}isUnifiedPlanSupported(){let e=this.getBrowser(),t=f.browserDetails.version||0;if(e===`chrome`&&t<this.minChromeVersion)return!1;if(e===`firefox`&&t>=this.minFirefoxVersion)return!0;if(!window.RTCRtpTransceiver||!(`currentDirection`in RTCRtpTransceiver.prototype))return!1;let n,r=!1;try{n=new RTCPeerConnection,n.addTransceiver(`audio`),r=!0}catch{}finally{n&&n.close()}return r}toString(){return`Supports:
|
|
1051
1051
|
browser:${this.getBrowser()}
|
|
1052
1052
|
version:${this.getVersion()}
|
|
1053
1053
|
isIOS:${this.isIOS}
|
|
1054
1054
|
isWebRTCSupported:${this.isWebRTCSupported()}
|
|
1055
1055
|
isBrowserSupported:${this.isBrowserSupported()}
|
|
1056
|
-
isUnifiedPlanSupported:${this.isUnifiedPlanSupported()}`}constructor(){this.isIOS=typeof navigator<`u`&&[`iPad`,`iPhone`,`iPod`].includes(navigator.platform),this.supportedBrowsers=[`firefox`,`chrome`,`safari`],this.minFirefoxVersion=59,this.minChromeVersion=72,this.minSafariVersion=605}},m=e=>!e||/^[A-Za-z0-9]+(?:[ _-][A-Za-z0-9]+)*$/.test(e),h=()=>Math.random().toString(36).slice(2),g={iceServers:[{urls:`stun:stun.l.google.com:19302`},{urls:[`turn:eu-0.turn.peerjs.com:3478`,`turn:us-0.turn.peerjs.com:3478`],username:`peerjs`,credential:`peerjsp`}],sdpSemantics:`unified-plan`},_=new class extends u{noop(){}blobToArrayBuffer(e,t){let n=new FileReader;return n.onload=function(e){e.target&&t(e.target.result)},n.readAsArrayBuffer(e),n}binaryStringToArrayBuffer(e){let t=new Uint8Array(e.length);for(let n=0;n<e.length;n++)t[n]=e.charCodeAt(n)&255;return t.buffer}isSecure(){return location.protocol===`https:`}constructor(...e){super(...e),this.CLOUD_HOST=`0.peerjs.com`,this.CLOUD_PORT=443,this.chunkedBrowsers={Chrome:1,chrome:1},this.defaultConfig=g,this.browser=p.getBrowser(),this.browserVersion=p.getVersion(),this.pack=n.pack,this.unpack=n.unpack,this.supports=function(){let e={browser:p.isBrowserSupported(),webRTC:p.isWebRTCSupported(),audioVideo:!1,data:!1,binaryBlob:!1,reliable:!1};if(!e.webRTC)return e;let t;try{t=new RTCPeerConnection(g),e.audioVideo=!0;let n;try{n=t.createDataChannel(`_PEERJSTEST`,{ordered:!0}),e.data=!0,e.reliable=!!n.ordered;try{n.binaryType=`blob`,e.binaryBlob=!p.isIOS}catch{}}catch{}finally{n&&n.close()}}catch{}finally{t&&t.close()}return e}(),this.validateId=m,this.randomToken=h}};var v=new class{get logLevel(){return this._logLevel}set logLevel(e){this._logLevel=e}log(...e){this._logLevel>=3&&this._print(3,...e)}warn(...e){this._logLevel>=2&&this._print(2,...e)}error(...e){this._logLevel>=1&&this._print(1,...e)}setLogFunction(e){this._print=e}_print(e,...t){let n=[`PeerJS: `,...t];for(let e in n)n[e]instanceof Error&&(n[e]=`(`+n[e].name+`) `+n[e].message);e>=3?console.log(...n):e>=2?console.warn(`WARNING`,...n):e>=1&&console.error(`ERROR`,...n)}constructor(){this._logLevel=0}},y={};c(y,`ConnectionType`,()=>b),c(y,`PeerErrorType`,()=>x),c(y,`BaseConnectionErrorType`,()=>S),c(y,`DataConnectionErrorType`,()=>C),c(y,`SerializationType`,()=>w),c(y,`SocketEventType`,()=>T),c(y,`ServerMessageType`,()=>E);var b=function(e){return e.Data=`data`,e.Media=`media`,e}({}),x=function(e){return e.BrowserIncompatible=`browser-incompatible`,e.Disconnected=`disconnected`,e.InvalidID=`invalid-id`,e.InvalidKey=`invalid-key`,e.Network=`network`,e.PeerUnavailable=`peer-unavailable`,e.SslUnavailable=`ssl-unavailable`,e.ServerError=`server-error`,e.SocketError=`socket-error`,e.SocketClosed=`socket-closed`,e.UnavailableID=`unavailable-id`,e.WebRTC=`webrtc`,e}({}),S=function(e){return e.NegotiationFailed=`negotiation-failed`,e.ConnectionClosed=`connection-closed`,e}({}),C=function(e){return e.NotOpenYet=`not-open-yet`,e.MessageToBig=`message-too-big`,e}({}),w=function(e){return e.Binary=`binary`,e.BinaryUTF8=`binary-utf8`,e.JSON=`json`,e.None=`raw`,e}({}),T=function(e){return e.Message=`message`,e.Disconnected=`disconnected`,e.Error=`error`,e.Close=`close`,e}({}),E=function(e){return e.Heartbeat=`HEARTBEAT`,e.Candidate=`CANDIDATE`,e.Offer=`OFFER`,e.Answer=`ANSWER`,e.Open=`OPEN`,e.Error=`ERROR`,e.IdTaken=`ID-TAKEN`,e.InvalidKey=`INVALID-KEY`,e.Leave=`LEAVE`,e.Expire=`EXPIRE`,e}({}),D={};D=JSON.parse(`{"name":"peerjs","version":"1.5.4-custom-events.0","keywords":["peerjs","webrtc","p2p","rtc"],"description":"PeerJS client","homepage":"https://peerjs.com","bugs":{"url":"https://github.com/peers/peerjs/issues"},"repository":{"type":"git","url":"https://github.com/peers/peerjs"},"license":"MIT","contributors":["Michelle Bu <michelle@michellebu.com>","afrokick <devbyru@gmail.com>","ericz <really.ez@gmail.com>","Jairo <kidandcat@gmail.com>","Jonas Gloning <34194370+jonasgloning@users.noreply.github.com>","Jairo Caro-Accino Viciana <jairo@galax.be>","Carlos Caballero <carlos.caballero.gonzalez@gmail.com>","hc <hheennrryy@gmail.com>","Muhammad Asif <capripio@gmail.com>","PrashoonB <prashoonbhattacharjee@gmail.com>","Harsh Bardhan Mishra <47351025+HarshCasper@users.noreply.github.com>","akotynski <aleksanderkotbury@gmail.com>","lmb <i@lmb.io>","Jairooo <jairocaro@msn.com>","Moritz Stückler <moritz.stueckler@gmail.com>","Simon <crydotsnakegithub@gmail.com>","Denis Lukov <denismassters@gmail.com>","Philipp Hancke <fippo@andyet.net>","Hans Oksendahl <hansoksendahl@gmail.com>","Jess <jessachandler@gmail.com>","khankuan <khankuan@gmail.com>","DUODVK <kurmanov.work@gmail.com>","XiZhao <kwang1imsa@gmail.com>","Matthias Lohr <matthias@lohr.me>","=frank tree <=frnktrb@googlemail.com>","Andre Eckardt <aeckardt@outlook.com>","Chris Cowan <agentme49@gmail.com>","Alex Chuev <alex@chuev.com>","alxnull <alxnull@e.mail.de>","Yemel Jardi <angel.jardi@gmail.com>","Ben Parnell <benjaminparnell.94@gmail.com>","Benny Lichtner <bennlich@gmail.com>","fresheneesz <bitetrudpublic@gmail.com>","bob.barstead@exaptive.com <bob.barstead@exaptive.com>","chandika <chandika@gmail.com>","emersion <contact@emersion.fr>","Christopher Van <cvan@users.noreply.github.com>","eddieherm <edhermoso@gmail.com>","Eduardo Pinho <enet4mikeenet@gmail.com>","Evandro Zanatta <ezanatta@tray.net.br>","Gardner Bickford <gardner@users.noreply.github.com>","Gian Luca <gianluca.cecchi@cynny.com>","PatrickJS <github@gdi2290.com>","jonnyf <github@jonathanfoss.co.uk>","Hizkia Felix <hizkifw@gmail.com>","Hristo Oskov <hristo.oskov@gmail.com>","Isaac Madwed <i.madwed@gmail.com>","Ilya Konanykhin <ilya.konanykhin@gmail.com>","jasonbarry <jasbarry@me.com>","Jonathan Burke <jonathan.burke.1311@googlemail.com>","Josh Hamit <josh.hamit@gmail.com>","Jordan Austin <jrax86@gmail.com>","Joel Wetzell <jwetzell@yahoo.com>","xizhao <kevin.wang@cloudera.com>","Alberto Torres <kungfoobar@gmail.com>","Jonathan Mayol <mayoljonathan@gmail.com>","Jefferson Felix <me@jsfelix.dev>","Rolf Erik Lekang <me@rolflekang.com>","Kevin Mai-Husan Chia <mhchia@users.noreply.github.com>","Pepijn de Vos <pepijndevos@gmail.com>","JooYoung <qkdlql@naver.com>","Tobias Speicher <rootcommander@gmail.com>","Steve Blaurock <sblaurock@gmail.com>","Kyrylo Shegeda <shegeda@ualberta.ca>","Diwank Singh Tomer <singh@diwank.name>","Sören Balko <Soeren.Balko@gmail.com>","Arpit Solanki <solankiarpit1997@gmail.com>","Yuki Ito <yuki@gnnk.net>","Artur Zayats <zag2art@gmail.com>"],"funding":{"type":"opencollective","url":"https://opencollective.com/peer"},"collective":{"type":"opencollective","url":"https://opencollective.com/peer"},"files":["dist/*"],"sideEffects":["lib/global.ts","lib/supports.ts"],"main":"dist/bundler.cjs","module":"dist/bundler.mjs","browser-minified":"dist/peerjs.min.js","browser-unminified":"dist/peerjs.js","browser-minified-msgpack":"dist/serializer.msgpack.mjs","types":"dist/types.d.ts","engines":{"node":">= 14"},"targets":{"types":{"source":"lib/exports.ts"},"main":{"source":"lib/exports.ts","sourceMap":{"inlineSources":true}},"module":{"source":"lib/exports.ts","includeNodeModules":["eventemitter3"],"sourceMap":{"inlineSources":true}},"browser-minified":{"context":"browser","outputFormat":"global","optimize":true,"engines":{"browsers":"chrome >= 83, edge >= 83, firefox >= 80, safari >= 15"},"source":"lib/global.ts"},"browser-unminified":{"context":"browser","outputFormat":"global","optimize":false,"engines":{"browsers":"chrome >= 83, edge >= 83, firefox >= 80, safari >= 15"},"source":"lib/global.ts"},"browser-minified-msgpack":{"context":"browser","outputFormat":"esmodule","isLibrary":true,"optimize":true,"engines":{"browsers":"chrome >= 83, edge >= 83, firefox >= 102, safari >= 15"},"source":"lib/dataconnection/StreamConnection/MsgPack.ts"}},"scripts":{"contributors":"git-authors-cli --print=false && prettier --write package.json && git add package.json package-lock.json && git commit -m \\"chore(contributors): update and sort contributors list\\"","check":"tsc --noEmit && tsc -p e2e/tsconfig.json --noEmit","watch":"parcel watch","build":"rm -rf dist && parcel build","prepublishOnly":"npm run build","test":"jest","test:watch":"jest --watch","coverage":"jest --coverage --collectCoverageFrom=\\"./lib/**\\"","format":"prettier --write .","format:check":"prettier --check .","semantic-release":"semantic-release","e2e":"wdio run e2e/wdio.local.conf.ts","e2e:bstack":"wdio run e2e/wdio.bstack.conf.ts"},"devDependencies":{"@parcel/config-default":"^2.9.3","@parcel/packager-ts":"^2.9.3","@parcel/transformer-typescript-tsc":"^2.9.3","@parcel/transformer-typescript-types":"^2.9.3","@semantic-release/changelog":"^6.0.1","@semantic-release/git":"^10.0.1","@swc/core":"^1.3.27","@swc/jest":"^0.2.24","@types/jasmine":"^5.0.0","@wdio/browserstack-service":"^8.11.2","@wdio/cli":"^8.11.2","@wdio/globals":"^8.11.2","@wdio/jasmine-framework":"^8.11.2","@wdio/local-runner":"^8.11.2","@wdio/spec-reporter":"^8.11.2","@wdio/types":"^8.10.4","http-server":"^14.1.1","jest":"^29.3.1","jest-environment-jsdom":"^29.3.1","mock-socket":"^9.0.0","parcel":"^2.9.3","prettier":"^3.0.0","semantic-release":"^23.0.0","ts-node":"^10.9.1","typescript":"^5.0.0","wdio-geckodriver-service":"^5.0.1"},"dependencies":{"@msgpack/msgpack":"^2.8.0","eventemitter3":"^4.0.7","peerjs-js-binarypack":"^2.1.0","webrtc-adapter":"^9.0.0"},"alias":{"process":false,"buffer":false}}`);var O=class extends i.EventEmitter{constructor(e,t,n,r,i,a=5e3){super(),this.pingInterval=a,this._disconnected=!0,this._messagesQueue=[];let o=e?`wss://`:`ws://`;this._baseUrl=o+t+`:`+n+r+`peerjs?key=`+i}start(e,t){this._id=e;let n=`${this._baseUrl}&id=${e}&token=${t}`;this._socket||!this._disconnected||(this._socket=new WebSocket(n+`&version=`+D.version),this._disconnected=!1,this._socket.onmessage=e=>{let t;try{t=JSON.parse(e.data),v.log(`Server message received:`,t)}catch{v.log(`Invalid server message`,e.data);return}this.emit(T.Message,t)},this._socket.onclose=e=>{this._disconnected||(v.log(`Socket closed.`,e),this._cleanup(),this._disconnected=!0,this.emit(T.Disconnected))},this._socket.onopen=()=>{this._disconnected||(this._sendQueuedMessages(),v.log(`Socket open`),this._scheduleHeartbeat())})}_scheduleHeartbeat(){this._wsPingTimer=setTimeout(()=>{this._sendHeartbeat()},this.pingInterval)}_sendHeartbeat(){if(!this._wsOpen()){v.log(`Cannot send heartbeat, because socket closed`);return}let e=JSON.stringify({type:E.Heartbeat});this._socket.send(e),this._scheduleHeartbeat()}_wsOpen(){return!!this._socket&&this._socket.readyState===1}_sendQueuedMessages(){let e=[...this._messagesQueue];this._messagesQueue=[];for(let t of e)this.send(t)}send(e){if(this._disconnected)return;if(!this._id){this._messagesQueue.push(e);return}if(!e.type){this.emit(T.Error,`Invalid message`);return}if(!this._wsOpen())return;let t=JSON.stringify(e);this._socket.send(t)}close(){this._disconnected||=(this._cleanup(),!0)}_cleanup(){this._socket&&=(this._socket.onopen=this._socket.onmessage=this._socket.onclose=null,this._socket.close(),void 0),clearTimeout(this._wsPingTimer)}},k=class{constructor(e){this.connection=e}startConnection(e){let t=this._startPeerConnection();if(this.connection.peerConnection=t,this.connection.type===b.Media&&e._stream&&this._addTracksToConnection(e._stream,t),e.originator){let n=this.connection,r={ordered:!!e.reliable},i=t.createDataChannel(n.label,r);n._initializeDataChannel(i),this._makeOffer()}else this.handleSDP(`OFFER`,e.sdp)}_startPeerConnection(){v.log(`Creating RTCPeerConnection.`);let e=new RTCPeerConnection(this.connection.provider.options.config);return this._setupListeners(e),e}_setupListeners(e){let t=this.connection.peer,n=this.connection.connectionId,r=this.connection.type,i=this.connection.provider;v.log(`Listening for ICE candidates.`),e.onicecandidate=e=>{!e.candidate||!e.candidate.candidate||(v.log(`Received ICE candidates for ${t}:`,e.candidate),i.socket.send({type:E.Candidate,payload:{candidate:e.candidate,type:r,connectionId:n},dst:t}))},e.oniceconnectionstatechange=()=>{switch(e.iceConnectionState){case`failed`:v.log(`iceConnectionState is failed, closing connections to `+t),this.connection.emitError(S.NegotiationFailed,`Negotiation of connection to `+t+` failed.`),this.connection.close();break;case`closed`:v.log(`iceConnectionState is closed, closing connections to `+t),this.connection.emitError(S.ConnectionClosed,`Connection to `+t+` closed.`),this.connection.close();break;case`disconnected`:v.log(`iceConnectionState changed to disconnected on the connection with `+t);break;case`completed`:e.onicecandidate=()=>{};break}this.connection.emit(`iceStateChanged`,e.iceConnectionState)},v.log(`Listening for data channel`),e.ondatachannel=e=>{v.log(`Received data channel`);let r=e.channel;i.getConnection(t,n)._initializeDataChannel(r)},v.log(`Listening for remote stream`),e.ontrack=e=>{v.log(`Received remote stream`);let r=e.streams[0],a=i.getConnection(t,n);if(a.type===b.Media){let e=a;this._addStreamToMediaConnection(r,e)}}}cleanup(){v.log(`Cleaning up PeerConnection to `+this.connection.peer);let e=this.connection.peerConnection;if(!e)return;this.connection.peerConnection=null,e.onicecandidate=e.oniceconnectionstatechange=e.ondatachannel=e.ontrack=()=>{};let t=e.signalingState!==`closed`,n=!1,r=this.connection.dataChannel;r&&(n=!!r.readyState&&r.readyState!==`closed`),(t||n)&&e.close()}async _makeOffer(){let e=this.connection.peerConnection,t=this.connection.provider;try{let n=await e.createOffer(this.connection.options.constraints);v.log(`Created offer.`),this.connection.options.sdpTransform&&typeof this.connection.options.sdpTransform==`function`&&(n.sdp=this.connection.options.sdpTransform(n.sdp)||n.sdp);try{await e.setLocalDescription(n),v.log(`Set localDescription:`,n,`for:${this.connection.peer}`);let r={sdp:n,type:this.connection.type,connectionId:this.connection.connectionId,metadata:this.connection.metadata};if(this.connection.type===b.Data){let e=this.connection;r={...r,label:e.label,reliable:e.reliable,serialization:e.serialization}}t.socket.send({type:E.Offer,payload:r,dst:this.connection.peer})}catch(e){e!=`OperationError: Failed to set local offer sdp: Called in wrong state: kHaveRemoteOffer`&&(t.emitError(x.WebRTC,e),v.log(`Failed to setLocalDescription, `,e))}}catch(e){t.emitError(x.WebRTC,e),v.log(`Failed to createOffer, `,e)}}async _makeAnswer(){let e=this.connection.peerConnection,t=this.connection.provider;try{let n=await e.createAnswer();v.log(`Created answer.`),this.connection.options.sdpTransform&&typeof this.connection.options.sdpTransform==`function`&&(n.sdp=this.connection.options.sdpTransform(n.sdp)||n.sdp);try{await e.setLocalDescription(n),v.log(`Set localDescription:`,n,`for:${this.connection.peer}`),t.socket.send({type:E.Answer,payload:{sdp:n,type:this.connection.type,connectionId:this.connection.connectionId},dst:this.connection.peer})}catch(e){t.emitError(x.WebRTC,e),v.log(`Failed to setLocalDescription, `,e)}}catch(e){t.emitError(x.WebRTC,e),v.log(`Failed to create answer, `,e)}}async handleSDP(e,t){t=new RTCSessionDescription(t);let n=this.connection.peerConnection,r=this.connection.provider;v.log(`Setting remote description`,t);let i=this;try{await n.setRemoteDescription(t),v.log(`Set remoteDescription:${e} for:${this.connection.peer}`),e===`OFFER`&&await i._makeAnswer()}catch(e){r.emitError(x.WebRTC,e),v.log(`Failed to setRemoteDescription, `,e)}}async handleCandidate(e){v.log(`handleCandidate:`,e);try{await this.connection.peerConnection.addIceCandidate(e),v.log(`Added ICE candidate for:${this.connection.peer}`)}catch(e){this.connection.provider.emitError(x.WebRTC,e),v.log(`Failed to handleCandidate, `,e)}}_addTracksToConnection(e,t){if(v.log(`add tracks from stream ${e.id} to peer connection`),!t.addTrack)return v.error(`Your browser does't support RTCPeerConnection#addTrack. Ignored.`);e.getTracks().forEach(n=>{t.addTrack(n,e)})}_addStreamToMediaConnection(e,t){v.log(`add stream ${e.id} to media connection ${t.connectionId}`),t.addStream(e)}},A=class extends i.EventEmitter{emitError(e,t){v.error(`Error:`,t),this.emit(`error`,new j(`${e}`,t))}},j=class extends Error{constructor(e,t){typeof t==`string`?super(t):(super(),Object.assign(this,t)),this.type=e}},M=class extends A{get open(){return this._open}constructor(e,t,n){super(),this.peer=e,this.provider=t,this.options=n,this._open=!1,this.metadata=n.metadata}},N=class e extends M{static#e=this.ID_PREFIX=`mc_`;get type(){return b.Media}get localStream(){return this._localStream}get remoteStream(){return this._remoteStream}constructor(t,n,r){super(t,n,r),this._localStream=this.options._stream,this.connectionId=this.options.connectionId||e.ID_PREFIX+_.randomToken(),this._negotiator=new k(this),this._localStream&&this._negotiator.startConnection({_stream:this._localStream,originator:!0})}_initializeDataChannel(e){this.dataChannel=e,this.dataChannel.onopen=()=>{v.log(`DC#${this.connectionId} dc connection success`),this.emit(`willCloseOnRemote`)},this.dataChannel.onclose=()=>{v.log(`DC#${this.connectionId} dc closed for:`,this.peer),this.close()}}addStream(e){v.log(`Receiving stream`,e),this._remoteStream=e,super.emit(`stream`,e)}handleMessage(e){let t=e.type,n=e.payload;switch(e.type){case E.Answer:this._negotiator.handleSDP(t,n.sdp),this._open=!0;break;case E.Candidate:this._negotiator.handleCandidate(n.candidate);break;default:v.warn(`Unrecognized message type:${t} from peer:${this.peer}`);break}}answer(e,t={}){if(this._localStream){v.warn(`Local stream already exists on this MediaConnection. Are you answering a call twice?`);return}this._localStream=e,t&&t.sdpTransform&&(this.options.sdpTransform=t.sdpTransform),this._negotiator.startConnection({...this.options._payload,_stream:e});let n=this.provider._getMessages(this.connectionId);for(let e of n)this.handleMessage(e);this._open=!0}close(){this._negotiator&&=(this._negotiator.cleanup(),null),this._localStream=null,this._remoteStream=null,this.provider&&=(this.provider._removeConnection(this),null),this.options&&this.options._stream&&(this.options._stream=null),this.open&&(this._open=!1,super.emit(`close`))}},P=class{constructor(e){this._options=e}_buildRequest(e){let t=this._options.secure?`https`:`http`,{host:n,port:r,path:i,key:a}=this._options,o=new URL(`${t}://${n}:${r}${i}${a}/${e}`);return o.searchParams.set(`ts`,`${Date.now()}${Math.random()}`),o.searchParams.set(`version`,D.version),fetch(o.href,{referrerPolicy:this._options.referrerPolicy})}async retrieveId(){try{let e=await this._buildRequest(`id`);if(e.status!==200)throw Error(`Error. Status:${e.status}`);return e.text()}catch(e){v.error(`Error retrieving ID`,e);let t=``;throw this._options.path===`/`&&this._options.host!==_.CLOUD_HOST&&(t=" If you passed in a `path` to your self-hosted PeerServer, you'll also need to pass in that same path when creating a new Peer."),Error(`Could not get an ID from the server.`+t)}}async listAllPeers(){try{let e=await this._buildRequest(`peers`);if(e.status!==200){if(e.status===401){let e=``;throw e=this._options.host===_.CLOUD_HOST?`It looks like you're using the cloud server. You can email team@peerjs.com to enable peer listing for your API key.`:"You need to enable `allow_discovery` on your self-hosted PeerServer to use this feature.",Error(`It doesn't look like you have permission to list peers IDs. `+e)}throw Error(`Error. Status:${e.status}`)}return e.json()}catch(e){throw v.error(`Error retrieving list peers`,e),Error(`Could not get list peers from the server.`+e)}}},F=class e extends M{static#e=this.ID_PREFIX=`dc_`;static#t=this.MAX_BUFFERED_AMOUNT=8388608;get type(){return b.Data}constructor(t,n,r){super(t,n,r),this.connectionId=this.options.connectionId||e.ID_PREFIX+h(),this.label=this.options.label||this.connectionId,this.reliable=!!this.options.reliable,this._negotiator=new k(this),this._negotiator.startConnection(this.options._payload||{originator:!0,reliable:this.reliable})}_initializeDataChannel(e){this.dataChannel=e,this.dataChannel.onopen=()=>{v.log(`DC#${this.connectionId} dc connection success`),this._open=!0,this.emit(`open`)},this.dataChannel.onmessage=e=>{v.log(`DC#${this.connectionId} dc onmessage:`,e.data)},this.dataChannel.onclose=()=>{v.log(`DC#${this.connectionId} dc closed for:`,this.peer),this.close()}}close(e){if(e?.flush){this.send({__peerData:{type:`close`}});return}this._negotiator&&=(this._negotiator.cleanup(),null),this.provider&&=(this.provider._removeConnection(this),null),this.dataChannel&&=(this.dataChannel.onopen=null,this.dataChannel.onmessage=null,this.dataChannel.onclose=null,null),this.open&&(this._open=!1,super.emit(`close`))}send(e,t=!1){if(!this.open){this.emitError(C.NotOpenYet,"Connection is not open. You should listen for the `open` event before sending messages.");return}return this._send(e,t)}async handleMessage(e){let t=e.payload;switch(e.type){case E.Answer:await this._negotiator.handleSDP(e.type,t.sdp);break;case E.Candidate:await this._negotiator.handleCandidate(t.candidate);break;default:v.warn(`Unrecognized message type:`,e.type,`from peer:`,this.peer);break}}},I=class extends F{get bufferSize(){return this._bufferSize}_initializeDataChannel(e){super._initializeDataChannel(e),this.dataChannel.binaryType=`arraybuffer`,this.dataChannel.addEventListener(`message`,e=>this._handleDataMessage(e))}_bufferedSend(e){(this._buffering||!this._trySend(e))&&(this._buffer.push(e),this._bufferSize=this._buffer.length)}_trySend(e){if(!this.open)return!1;if(this.dataChannel.bufferedAmount>F.MAX_BUFFERED_AMOUNT)return this._buffering=!0,setTimeout(()=>{this._buffering=!1,this._tryBuffer()},50),!1;try{this.dataChannel.send(e)}catch(e){return v.error(`DC#:${this.connectionId} Error when sending:`,e),this._buffering=!0,this.close(),!1}return!0}_tryBuffer(){if(!this.open||this._buffer.length===0)return;let e=this._buffer[0];this._trySend(e)&&(this._buffer.shift(),this._bufferSize=this._buffer.length,this._tryBuffer())}close(e){if(e?.flush){this.send({__peerData:{type:`close`}});return}this._buffer=[],this._bufferSize=0,super.close()}constructor(...e){super(...e),this._buffer=[],this._bufferSize=0,this._buffering=!1}},L=class extends I{close(e){super.close(e),this._chunkedData={}}constructor(e,t,n){super(e,t,n),this.chunker=new u,this.serialization=w.Binary,this._chunkedData={}}_handleDataMessage({data:e}){let t=(0,n.unpack)(e),r=t.__peerData;if(r){if(r.type===`close`){this.close();return}this._handleChunk(t);return}this.emit(`data`,t)}_handleChunk(e){let t=e.__peerData,n=this._chunkedData[t]||{data:[],count:0,total:e.total};if(globalThis.dispatchEvent(new CustomEvent(`peerjs-dc-handle-chunk`,{detail:{chunkInfo:{count:n.count,total:n.total}}})),n.data[e.n]=new Uint8Array(e.data),n.count++,this._chunkedData[t]=n,n.total===n.count){delete this._chunkedData[t];let e=d(n.data);this._handleDataMessage({data:e})}}_send(e,t){let r=(0,n.pack)(e);if(r instanceof Promise)return this._send_blob(r);if(!t&&r.byteLength>this.chunker.chunkedMTU){this._sendChunks(r);return}this._bufferedSend(r)}async _send_blob(e){let t=await e;if(t.byteLength>this.chunker.chunkedMTU){this._sendChunks(t);return}this._bufferedSend(t)}_sendChunks(e){let t=this.chunker.chunk(e);v.log(`DC#${this.connectionId} Try to send ${t.length} chunks...`);for(let e of t)this.send(e,!0)}},ee=class extends I{_handleDataMessage({data:e}){super.emit(`data`,e)}_send(e,t){this._bufferedSend(e)}constructor(...e){super(...e),this.serialization=w.None}},te=class extends I{_handleDataMessage({data:e}){let t=this.parse(this.decoder.decode(e)),n=t.__peerData;if(n&&n.type===`close`){this.close();return}this.emit(`data`,t)}_send(e,t){let n=this.encoder.encode(this.stringify(e));if(n.byteLength>=_.chunkedMTU){this.emitError(C.MessageToBig,`Message too big for JSON channel`);return}this._bufferedSend(n)}constructor(...e){super(...e),this.serialization=w.JSON,this.encoder=new TextEncoder,this.decoder=new TextDecoder,this.stringify=JSON.stringify,this.parse=JSON.parse}},ne=class e extends A{static#e=this.DEFAULT_KEY=`peerjs`;get id(){return this._id}get options(){return this._options}get open(){return this._open}get socket(){return this._socket}get connections(){let e=Object.create(null);for(let[t,n]of this._connections)e[t]=n;return e}get destroyed(){return this._destroyed}get disconnected(){return this._disconnected}constructor(t,n){super(),this._serializers={raw:ee,json:te,binary:L,"binary-utf8":L,default:L},this._id=null,this._lastServerId=null,this._destroyed=!1,this._disconnected=!1,this._open=!1,this._connections=new Map,this._lostMessages=new Map;let r;if(t&&t.constructor==Object?n=t:t&&(r=t.toString()),n={debug:0,host:_.CLOUD_HOST,port:_.CLOUD_PORT,path:`/`,key:e.DEFAULT_KEY,token:_.randomToken(),config:_.defaultConfig,referrerPolicy:`strict-origin-when-cross-origin`,serializers:{},...n},this._options=n,this._serializers={...this._serializers,...this.options.serializers},this._options.host===`/`&&(this._options.host=window.location.hostname),this._options.path&&(this._options.path[0]!==`/`&&(this._options.path=`/`+this._options.path),this._options.path[this._options.path.length-1]!==`/`&&(this._options.path+=`/`)),this._options.secure===void 0&&this._options.host!==_.CLOUD_HOST?this._options.secure=_.isSecure():this._options.host==_.CLOUD_HOST&&(this._options.secure=!0),this._options.logFunction&&v.setLogFunction(this._options.logFunction),v.logLevel=this._options.debug||0,this._api=new P(n),this._socket=this._createServerConnection(),!_.supports.audioVideo&&!_.supports.data){this._delayedAbort(x.BrowserIncompatible,`The current browser does not support WebRTC`);return}if(r&&!_.validateId(r)){this._delayedAbort(x.InvalidID,`ID "${r}" is invalid`);return}r?this._initialize(r):this._api.retrieveId().then(e=>this._initialize(e)).catch(e=>this._abort(x.ServerError,e))}_createServerConnection(){let e=new O(this._options.secure,this._options.host,this._options.port,this._options.path,this._options.key,this._options.pingInterval);return e.on(T.Message,e=>{this._handleMessage(e)}),e.on(T.Error,e=>{this._abort(x.SocketError,e)}),e.on(T.Disconnected,()=>{this.disconnected||(this.emitError(x.Network,`Lost connection to server.`),this.disconnect())}),e.on(T.Close,()=>{this.disconnected||this._abort(x.SocketClosed,`Underlying socket is already closed.`)}),e}_initialize(e){this._id=e,this.socket.start(e,this._options.token)}_handleMessage(e){let t=e.type,n=e.payload,r=e.src;switch(t){case E.Open:this._lastServerId=this.id,this._open=!0,this.emit(`open`,this.id);break;case E.Error:this._abort(x.ServerError,n.msg);break;case E.IdTaken:this._abort(x.UnavailableID,`ID "${this.id}" is taken`);break;case E.InvalidKey:this._abort(x.InvalidKey,`API KEY "${this._options.key}" is invalid`);break;case E.Leave:v.log(`Received leave message from ${r}`),this._cleanupPeer(r),this._connections.delete(r);break;case E.Expire:this.emitError(x.PeerUnavailable,`Could not connect to peer ${r}`);break;case E.Offer:{let e=n.connectionId,t=this.getConnection(r,e);if(t&&(t.close(),v.warn(`Offer received for existing Connection ID:${e}`)),n.type===b.Media){let i=new N(r,this,{connectionId:e,_payload:n,metadata:n.metadata});t=i,this._addConnection(r,t),this.emit(`call`,i)}else if(n.type===b.Data){let i=new this._serializers[n.serialization](r,this,{connectionId:e,_payload:n,metadata:n.metadata,label:n.label,serialization:n.serialization,reliable:n.reliable});t=i,this._addConnection(r,t),this.emit(`connection`,i)}else{v.warn(`Received malformed connection type:${n.type}`);return}let i=this._getMessages(e);for(let e of i)t.handleMessage(e);break}default:{if(!n){v.warn(`You received a malformed message from ${r} of type ${t}`);return}let i=n.connectionId,a=this.getConnection(r,i);a&&a.peerConnection?a.handleMessage(e):i?this._storeMessage(i,e):v.warn(`You received an unrecognized message:`,e);break}}}_storeMessage(e,t){this._lostMessages.has(e)||this._lostMessages.set(e,[]),this._lostMessages.get(e).push(t)}_getMessages(e){let t=this._lostMessages.get(e);return t?(this._lostMessages.delete(e),t):[]}connect(e,t={}){if(t={serialization:`default`,...t},this.disconnected){v.warn(`You cannot connect to a new Peer because you called .disconnect() on this Peer and ended your connection with the server. You can create a new Peer to reconnect, or call reconnect on this peer if you believe its ID to still be available.`),this.emitError(x.Disconnected,`Cannot connect to new Peer after disconnecting from server.`);return}let n=new this._serializers[t.serialization](e,this,t);return this._addConnection(e,n),n}call(e,t,n={}){if(this.disconnected){v.warn(`You cannot connect to a new Peer because you called .disconnect() on this Peer and ended your connection with the server. You can create a new Peer to reconnect.`),this.emitError(x.Disconnected,`Cannot connect to new Peer after disconnecting from server.`);return}if(!t){v.error("To call a peer, you must provide a stream from your browser's `getUserMedia`.");return}let r=new N(e,this,{...n,_stream:t});return this._addConnection(e,r),r}_addConnection(e,t){v.log(`add connection ${t.type}:${t.connectionId} to peerId:${e}`),this._connections.has(e)||this._connections.set(e,[]),this._connections.get(e).push(t)}_removeConnection(e){let t=this._connections.get(e.peer);if(t){let n=t.indexOf(e);n!==-1&&t.splice(n,1)}this._lostMessages.delete(e.connectionId)}getConnection(e,t){let n=this._connections.get(e);if(!n)return null;for(let e of n)if(e.connectionId===t)return e;return null}_delayedAbort(e,t){setTimeout(()=>{this._abort(e,t)},0)}_abort(e,t){v.error(`Aborting!`),this.emitError(e,t),this._lastServerId?this.disconnect():this.destroy()}destroy(){this.destroyed||(v.log(`Destroy peer with ID:${this.id}`),this.disconnect(),this._cleanup(),this._destroyed=!0,this.emit(`close`))}_cleanup(){for(let e of this._connections.keys())this._cleanupPeer(e),this._connections.delete(e);this.socket.removeAllListeners()}_cleanupPeer(e){let t=this._connections.get(e);if(t)for(let e of t)e.close()}disconnect(){if(this.disconnected)return;let e=this.id;v.log(`Disconnect peer with ID:${e}`),this._disconnected=!0,this._open=!1,this.socket.close(),this._lastServerId=e,this._id=null,this.emit(`disconnected`,e)}reconnect(){if(this.disconnected&&!this.destroyed)v.log(`Attempting reconnection to server with ID ${this._lastServerId}`),this._disconnected=!1,this._initialize(this._lastServerId);else if(this.destroyed)throw Error(`This peer cannot reconnect to the server. It has already been destroyed.`);else if(!this.disconnected&&!this.open)v.error(`In a hurry? We're still trying to make the initial connection!`);else throw Error(`Peer ${this.id} cannot reconnect because it is not disconnected from the server!`)}listAllPeers(e=e=>{}){this._api.listAllPeers().then(t=>e(t)).catch(e=>this._abort(x.ServerError,e))}},R=class extends F{constructor(e,t,n){super(e,t,{...n,reliable:!0}),this._CHUNK_SIZE=32768,this._splitStream=new TransformStream({transform:(e,t)=>{for(let n=0;n<e.length;n+=this._CHUNK_SIZE)t.enqueue(e.subarray(n,n+this._CHUNK_SIZE))}}),this._rawSendStream=new WritableStream({write:async(e,t)=>{let n=new Promise(e=>this.dataChannel.addEventListener(`bufferedamountlow`,e,{once:!0}));await(this.dataChannel.bufferedAmount<=F.MAX_BUFFERED_AMOUNT-e.byteLength||n);try{this.dataChannel.send(e)}catch(e){v.error(`DC#:${this.connectionId} Error when sending:`,e),t.error(e),this.close()}}}),this.writer=this._splitStream.writable.getWriter(),this._rawReadStream=new ReadableStream({start:e=>{this.once(`open`,()=>{this.dataChannel.addEventListener(`message`,t=>{e.enqueue(t.data)})})}}),this._splitStream.readable.pipeTo(this._rawSendStream)}_initializeDataChannel(e){super._initializeDataChannel(e),this.dataChannel.binaryType=`arraybuffer`,this.dataChannel.bufferedAmountLowThreshold=F.MAX_BUFFERED_AMOUNT/2}},re=class extends R{constructor(e,t,n){super(e,t,n),this.serialization=`MsgPack`,this._encoder=new a.Encoder,(async()=>{for await(let e of(0,a.decodeMultiStream)(this._rawReadStream)){if(e.__peerData?.type===`close`){this.close();return}this.emit(`data`,e)}})()}_send(e){return this.writer.write(this._encoder.encode(e))}},ie=class extends ne{constructor(...e){super(...e),this._serializers={MsgPack:re,default:re}}},ae=ne;s(t.exports,y)}));let qP=null;async function JP(){if(typeof globalThis<`u`&&globalThis.RTCPeerConnection!==void 0)return qP=!0,!0;if(qP!==null)return qP;try{let e=await Promise.resolve().then(()=>(gP(),mP));if(e&&e.RTCPeerConnection)return Object.assign(globalThis,{RTCPeerConnection:e.RTCPeerConnection,RTCSessionDescription:e.RTCSessionDescription,RTCIceCandidate:e.RTCIceCandidate}),qP=!0,!0}catch(e){console.warn(`[webrtc] Failed to load node-datachannel WebRTC polyfill:`,e instanceof Error?e.message:String(e))}return qP=!1,!1}async function YP(){await JP();let e=await Promise.resolve().then(()=>Pe(KP(),1));return e.default?.Peer||e.default||e.Peer}var XP=class{_peerId;_host;_port;_path;_secure;_verbose;_peer=null;_connections=new Map;_pendingCommands=new Map;_handlers=new Map;_isOpen=!1;constructor(e={}){if(this._peerId=e.peerId||`server-${qA().toLowerCase()}`,this._host=e.host||`127.0.0.1`,this._port=e.port||8888,this._path=e.path||`/`,this._secure=e.secure??!1,this._verbose=e.verbose??!1,e.handlers)for(let[t,n]of Object.entries(e.handlers))this._handlers.set(t,n)}get peerId(){return this._peerId}get isOpen(){return this._isOpen}log(e){this._verbose&&console.log(`[server-peer] ${e}`)}async start(){let e=await YP();return new Promise((t,n)=>{try{let r=new e(this._peerId,{host:this._host,port:this._port,path:this._path,secure:this._secure});this._peer=r,r.on(`open`,e=>{this._peerId=e,this._isOpen=!0,this.log(`Server peer opened with ID: ${e}`),t(e)}),r.on(`connection`,e=>{this._setupConnection(e)}),r.on(`error`,e=>{this.log(`Server peer error: ${e.message||String(e)}`),this._isOpen||n(e)}),r.on(`close`,()=>{this._isOpen=!1,this._connections.clear(),this.log(`Server peer closed`)})}catch(e){n(e)}})}_setupConnection(e){let t=e.peer;e.on(`open`,()=>{this._connections.set(t,e),this.log(`DataChannel connected with peer: ${t}`)}),e.on(`data`,n=>{this._handleData(t,e,n)}),e.on(`close`,()=>{this._connections.delete(t),this.log(`DataChannel closed for peer: ${t}`)}),e.on(`error`,e=>{this.log(`DataChannel error with ${t}: ${e.message}`)})}async _handleData(e,t,n){let r=n;if(typeof n==`string`)try{r=JSON.parse(n)}catch{return}if(!(!r||typeof r!=`object`)){if(r.type===`command:execute`){let{commandId:e,action:n,args:i}=r.payload||{},a=this._handlers.get(n);if(!a){let i={id:qA(),type:`command:result`,replyTo:r.id,payload:{commandId:e,success:!1,error:`Unknown action: ${n}`}};t.send(i);return}try{let n=await a(i),o={id:qA(),type:`command:result`,replyTo:r.id,payload:{commandId:e,success:!0,data:n}};t.send(o)}catch(n){let i={id:qA(),type:`command:result`,replyTo:r.id,payload:{commandId:e,success:!1,error:n.message||String(n)}};t.send(i)}return}if(r.type===`command:result`){let e=r.payload;if(e?.commandId&&this._pendingCommands.has(e.commandId)){let t=this._pendingCommands.get(e.commandId);clearTimeout(t.timeout),this._pendingCommands.delete(e.commandId),t.resolve(e)}return}}}isPeerConnected(e){let t=this._connections.get(e);return!!t&&(t.open||t._open)}getConnectedPeers(){return Array.from(this._connections.keys())}async sendCommand(e,t,n={},r=3e4){if(!this._peer||!this._isOpen)throw Error(`Server peer is not running`);let i=this._connections.get(e);(!i||!i.open)&&(i=this._peer.connect(e,{reliable:!0,serialization:`binary`}),this._setupConnection(i),await new Promise((t,n)=>{let a=setTimeout(()=>{n(Error(`Connection to peer ${e} timed out after ${r}ms`))},Math.min(1e4,r));i.on(`open`,()=>{clearTimeout(a),t()}),i.on(`error`,e=>{clearTimeout(a),n(e)})}));let a=qA(),o={commandId:a,action:t,args:n},s={id:qA(),type:`command:execute`,payload:o};return new Promise((n,o)=>{let c=setTimeout(()=>{this._pendingCommands.delete(a),o(Error(`Command ${t} to peer ${e} timed out after ${r}ms`))},r);this._pendingCommands.set(a,{resolve:n,reject:o,timeout:c});try{i.send(s)}catch(e){clearTimeout(c),this._pendingCommands.delete(a),o(e)}})}close(){this._isOpen=!1;for(let[,e]of this._pendingCommands)clearTimeout(e.timeout),e.reject(Error(`Server peer closed`));this._pendingCommands.clear();for(let e of this._connections.values())try{e.close()}catch{}if(this._connections.clear(),this._peer){try{this._peer.destroy()}catch{}this._peer=null}}},ZP=V((e=>{var t=class extends Error{constructor(e,t,n){super(n),Error.captureStackTrace(this,this.constructor),this.name=this.constructor.name,this.code=t,this.exitCode=e,this.nestedError=void 0}},n=class extends t{constructor(e){super(1,`commander.invalidArgument`,e),Error.captureStackTrace(this,this.constructor),this.name=this.constructor.name}};e.CommanderError=t,e.InvalidArgumentError=n})),QP=V((e=>{let{InvalidArgumentError:t}=ZP();var n=class{constructor(e,t){switch(this.description=t||``,this.variadic=!1,this.parseArg=void 0,this.defaultValue=void 0,this.defaultValueDescription=void 0,this.argChoices=void 0,e[0]){case`<`:this.required=!0,this._name=e.slice(1,-1);break;case`[`:this.required=!1,this._name=e.slice(1,-1);break;default:this.required=!0,this._name=e;break}this._name.endsWith(`...`)&&(this.variadic=!0,this._name=this._name.slice(0,-3))}name(){return this._name}_collectValue(e,t){return t===this.defaultValue||!Array.isArray(t)?[e]:(t.push(e),t)}default(e,t){return this.defaultValue=e,this.defaultValueDescription=t,this}argParser(e){return this.parseArg=e,this}choices(e){return this.argChoices=e.slice(),this.parseArg=(e,n)=>{if(!this.argChoices.includes(e))throw new t(`Allowed choices are ${this.argChoices.join(`, `)}.`);return this.variadic?this._collectValue(e,n):e},this}argRequired(){return this.required=!0,this}argOptional(){return this.required=!1,this}};function r(e){let t=e.name()+(e.variadic===!0?`...`:``);return e.required?`<`+t+`>`:`[`+t+`]`}e.Argument=n,e.humanReadableArgName=r})),$P=V((e=>{let{humanReadableArgName:t}=QP();var n=class{constructor(){this.helpWidth=void 0,this.minWidthToWrap=40,this.sortSubcommands=!1,this.sortOptions=!1,this.showGlobalOptions=!1}prepareContext(e){this.helpWidth=this.helpWidth??e.helpWidth??80}visibleCommands(e){let t=e.commands.filter(e=>!e._hidden),n=e._getHelpCommand();return n&&!n._hidden&&t.push(n),this.sortSubcommands&&t.sort((e,t)=>e.name().localeCompare(t.name())),t}compareOptions(e,t){let n=e=>e.short?e.short.replace(/^-/,``):e.long.replace(/^--/,``);return n(e).localeCompare(n(t))}visibleOptions(e){let t=e.options.filter(e=>!e.hidden),n=e._getHelpOption();if(n&&!n.hidden){let r=n.short&&e._findOption(n.short),i=n.long&&e._findOption(n.long);!r&&!i?t.push(n):n.long&&!i?t.push(e.createOption(n.long,n.description)):n.short&&!r&&t.push(e.createOption(n.short,n.description))}return this.sortOptions&&t.sort(this.compareOptions),t}visibleGlobalOptions(e){if(!this.showGlobalOptions)return[];let t=[];for(let n=e.parent;n;n=n.parent){let e=n.options.filter(e=>!e.hidden);t.push(...e)}return this.sortOptions&&t.sort(this.compareOptions),t}visibleArguments(e){return e._argsDescription&&e.registeredArguments.forEach(t=>{t.description=t.description||e._argsDescription[t.name()]||``}),e.registeredArguments.find(e=>e.description)?e.registeredArguments:[]}subcommandTerm(e){let n=e.registeredArguments.map(e=>t(e)).join(` `);return e._name+(e._aliases[0]?`|`+e._aliases[0]:``)+(e.options.length?` [options]`:``)+(n?` `+n:``)}optionTerm(e){return e.flags}argumentTerm(e){return e.name()}longestSubcommandTermLength(e,t){return t.visibleCommands(e).reduce((e,n)=>Math.max(e,this.displayWidth(t.styleSubcommandTerm(t.subcommandTerm(n)))),0)}longestOptionTermLength(e,t){return t.visibleOptions(e).reduce((e,n)=>Math.max(e,this.displayWidth(t.styleOptionTerm(t.optionTerm(n)))),0)}longestGlobalOptionTermLength(e,t){return t.visibleGlobalOptions(e).reduce((e,n)=>Math.max(e,this.displayWidth(t.styleOptionTerm(t.optionTerm(n)))),0)}longestArgumentTermLength(e,t){return t.visibleArguments(e).reduce((e,n)=>Math.max(e,this.displayWidth(t.styleArgumentTerm(t.argumentTerm(n)))),0)}commandUsage(e){let t=e._name;e._aliases[0]&&(t=t+`|`+e._aliases[0]);let n=``;for(let t=e.parent;t;t=t.parent)n=t.name()+` `+n;return n+t+` `+e.usage()}commandDescription(e){return e.description()}subcommandDescription(e){return e.summary()||e.description()}optionDescription(e){let t=[];if(e.argChoices&&t.push(`choices: ${e.argChoices.map(e=>JSON.stringify(e)).join(`, `)}`),e.defaultValue!==void 0&&(e.required||e.optional||e.isBoolean()&&typeof e.defaultValue==`boolean`)&&t.push(`default: ${e.defaultValueDescription||JSON.stringify(e.defaultValue)}`),e.presetArg!==void 0&&e.optional&&t.push(`preset: ${JSON.stringify(e.presetArg)}`),e.envVar!==void 0&&t.push(`env: ${e.envVar}`),t.length>0){let n=`(${t.join(`, `)})`;return e.description?`${e.description} ${n}`:n}return e.description}argumentDescription(e){let t=[];if(e.argChoices&&t.push(`choices: ${e.argChoices.map(e=>JSON.stringify(e)).join(`, `)}`),e.defaultValue!==void 0&&t.push(`default: ${e.defaultValueDescription||JSON.stringify(e.defaultValue)}`),t.length>0){let n=`(${t.join(`, `)})`;return e.description?`${e.description} ${n}`:n}return e.description}formatItemList(e,t,n){return t.length===0?[]:[n.styleTitle(e),...t,``]}groupItems(e,t,n){let r=new Map;return e.forEach(e=>{let t=n(e);r.has(t)||r.set(t,[])}),t.forEach(e=>{let t=n(e);r.has(t)||r.set(t,[]),r.get(t).push(e)}),r}formatHelp(e,t){let n=t.padWidth(e,t),r=t.helpWidth??80;function i(e,r){return t.formatItem(e,n,r,t)}let a=[`${t.styleTitle(`Usage:`)} ${t.styleUsage(t.commandUsage(e))}`,``],o=t.commandDescription(e);o.length>0&&(a=a.concat([t.boxWrap(t.styleCommandDescription(o),r),``]));let s=t.visibleArguments(e).map(e=>i(t.styleArgumentTerm(t.argumentTerm(e)),t.styleArgumentDescription(t.argumentDescription(e))));if(a=a.concat(this.formatItemList(`Arguments:`,s,t)),this.groupItems(e.options,t.visibleOptions(e),e=>e.helpGroupHeading??`Options:`).forEach((e,n)=>{let r=e.map(e=>i(t.styleOptionTerm(t.optionTerm(e)),t.styleOptionDescription(t.optionDescription(e))));a=a.concat(this.formatItemList(n,r,t))}),t.showGlobalOptions){let n=t.visibleGlobalOptions(e).map(e=>i(t.styleOptionTerm(t.optionTerm(e)),t.styleOptionDescription(t.optionDescription(e))));a=a.concat(this.formatItemList(`Global Options:`,n,t))}return this.groupItems(e.commands,t.visibleCommands(e),e=>e.helpGroup()||`Commands:`).forEach((e,n)=>{let r=e.map(e=>i(t.styleSubcommandTerm(t.subcommandTerm(e)),t.styleSubcommandDescription(t.subcommandDescription(e))));a=a.concat(this.formatItemList(n,r,t))}),a.join(`
|
|
1056
|
+
isUnifiedPlanSupported:${this.isUnifiedPlanSupported()}`}constructor(){this.isIOS=typeof navigator<`u`&&[`iPad`,`iPhone`,`iPod`].includes(navigator.platform),this.supportedBrowsers=[`firefox`,`chrome`,`safari`],this.minFirefoxVersion=59,this.minChromeVersion=72,this.minSafariVersion=605}},m=e=>!e||/^[A-Za-z0-9]+(?:[ _-][A-Za-z0-9]+)*$/.test(e),h=()=>Math.random().toString(36).slice(2),g={iceServers:[{urls:`stun:stun.l.google.com:19302`},{urls:[`turn:eu-0.turn.peerjs.com:3478`,`turn:us-0.turn.peerjs.com:3478`],username:`peerjs`,credential:`peerjsp`}],sdpSemantics:`unified-plan`},_=new class extends u{noop(){}blobToArrayBuffer(e,t){let n=new FileReader;return n.onload=function(e){e.target&&t(e.target.result)},n.readAsArrayBuffer(e),n}binaryStringToArrayBuffer(e){let t=new Uint8Array(e.length);for(let n=0;n<e.length;n++)t[n]=e.charCodeAt(n)&255;return t.buffer}isSecure(){return location.protocol===`https:`}constructor(...e){super(...e),this.CLOUD_HOST=`0.peerjs.com`,this.CLOUD_PORT=443,this.chunkedBrowsers={Chrome:1,chrome:1},this.defaultConfig=g,this.browser=p.getBrowser(),this.browserVersion=p.getVersion(),this.pack=n.pack,this.unpack=n.unpack,this.supports=function(){let e={browser:p.isBrowserSupported(),webRTC:p.isWebRTCSupported(),audioVideo:!1,data:!1,binaryBlob:!1,reliable:!1};if(!e.webRTC)return e;let t;try{t=new RTCPeerConnection(g),e.audioVideo=!0;let n;try{n=t.createDataChannel(`_PEERJSTEST`,{ordered:!0}),e.data=!0,e.reliable=!!n.ordered;try{n.binaryType=`blob`,e.binaryBlob=!p.isIOS}catch{}}catch{}finally{n&&n.close()}}catch{}finally{t&&t.close()}return e}(),this.validateId=m,this.randomToken=h}};var v=new class{get logLevel(){return this._logLevel}set logLevel(e){this._logLevel=e}log(...e){this._logLevel>=3&&this._print(3,...e)}warn(...e){this._logLevel>=2&&this._print(2,...e)}error(...e){this._logLevel>=1&&this._print(1,...e)}setLogFunction(e){this._print=e}_print(e,...t){let n=[`PeerJS: `,...t];for(let e in n)n[e]instanceof Error&&(n[e]=`(`+n[e].name+`) `+n[e].message);e>=3?console.log(...n):e>=2?console.warn(`WARNING`,...n):e>=1&&console.error(`ERROR`,...n)}constructor(){this._logLevel=0}},y={};c(y,`ConnectionType`,()=>b),c(y,`PeerErrorType`,()=>x),c(y,`BaseConnectionErrorType`,()=>S),c(y,`DataConnectionErrorType`,()=>C),c(y,`SerializationType`,()=>w),c(y,`SocketEventType`,()=>T),c(y,`ServerMessageType`,()=>E);var b=function(e){return e.Data=`data`,e.Media=`media`,e}({}),x=function(e){return e.BrowserIncompatible=`browser-incompatible`,e.Disconnected=`disconnected`,e.InvalidID=`invalid-id`,e.InvalidKey=`invalid-key`,e.Network=`network`,e.PeerUnavailable=`peer-unavailable`,e.SslUnavailable=`ssl-unavailable`,e.ServerError=`server-error`,e.SocketError=`socket-error`,e.SocketClosed=`socket-closed`,e.UnavailableID=`unavailable-id`,e.WebRTC=`webrtc`,e}({}),S=function(e){return e.NegotiationFailed=`negotiation-failed`,e.ConnectionClosed=`connection-closed`,e}({}),C=function(e){return e.NotOpenYet=`not-open-yet`,e.MessageToBig=`message-too-big`,e}({}),w=function(e){return e.Binary=`binary`,e.BinaryUTF8=`binary-utf8`,e.JSON=`json`,e.None=`raw`,e}({}),T=function(e){return e.Message=`message`,e.Disconnected=`disconnected`,e.Error=`error`,e.Close=`close`,e}({}),E=function(e){return e.Heartbeat=`HEARTBEAT`,e.Candidate=`CANDIDATE`,e.Offer=`OFFER`,e.Answer=`ANSWER`,e.Open=`OPEN`,e.Error=`ERROR`,e.IdTaken=`ID-TAKEN`,e.InvalidKey=`INVALID-KEY`,e.Leave=`LEAVE`,e.Expire=`EXPIRE`,e}({}),D=class extends i.EventEmitter{constructor(e,t,n,r,i,a=5e3){super(),this.pingInterval=a,this._disconnected=!0,this._messagesQueue=[];let o=e?`wss://`:`ws://`;this._baseUrl=o+t+`:`+n+r+`peerjs?key=`+i}start(e,t){this._id=e;let n=`${this._baseUrl}&id=${e}&token=${t}`;this._socket||!this._disconnected||(this._socket=new WebSocket(n+`&version=1.5.5`),this._disconnected=!1,this._socket.onmessage=e=>{let t;try{t=JSON.parse(e.data),v.log(`Server message received:`,t)}catch{v.log(`Invalid server message`,e.data);return}this.emit(T.Message,t)},this._socket.onclose=e=>{this._disconnected||(v.log(`Socket closed.`,e),this._cleanup(),this._disconnected=!0,this.emit(T.Disconnected))},this._socket.onopen=()=>{this._disconnected||(this._sendQueuedMessages(),v.log(`Socket open`),this._scheduleHeartbeat())})}_scheduleHeartbeat(){this._wsPingTimer=setTimeout(()=>{this._sendHeartbeat()},this.pingInterval)}_sendHeartbeat(){if(!this._wsOpen()){v.log(`Cannot send heartbeat, because socket closed`);return}let e=JSON.stringify({type:E.Heartbeat});this._socket.send(e),this._scheduleHeartbeat()}_wsOpen(){return!!this._socket&&this._socket.readyState===1}_sendQueuedMessages(){let e=[...this._messagesQueue];this._messagesQueue=[];for(let t of e)this.send(t)}send(e){if(this._disconnected)return;if(!this._id){this._messagesQueue.push(e);return}if(!e.type){this.emit(T.Error,`Invalid message`);return}if(!this._wsOpen())return;let t=JSON.stringify(e);this._socket.send(t)}close(){this._disconnected||=(this._cleanup(),!0)}_cleanup(){this._socket&&=(this._socket.onopen=this._socket.onmessage=this._socket.onclose=null,this._socket.close(),void 0),clearTimeout(this._wsPingTimer)}},O=class{constructor(e){this.connection=e}startConnection(e){let t=this._startPeerConnection();if(this.connection.peerConnection=t,this.connection.type===b.Media&&e._stream&&this._addTracksToConnection(e._stream,t),e.originator){let n=this.connection,r={ordered:!!e.reliable},i=t.createDataChannel(n.label,r);n._initializeDataChannel(i),this._makeOffer()}else this.handleSDP(`OFFER`,e.sdp)}_startPeerConnection(){v.log(`Creating RTCPeerConnection.`);let e=new RTCPeerConnection(this.connection.provider.options.config);return this._setupListeners(e),e}_setupListeners(e){let t=this.connection.peer,n=this.connection.connectionId,r=this.connection.type,i=this.connection.provider;v.log(`Listening for ICE candidates.`),e.onicecandidate=e=>{!e.candidate||!e.candidate.candidate||(v.log(`Received ICE candidates for ${t}:`,e.candidate),i.socket.send({type:E.Candidate,payload:{candidate:e.candidate,type:r,connectionId:n},dst:t}))},e.oniceconnectionstatechange=()=>{switch(e.iceConnectionState){case`failed`:v.log(`iceConnectionState is failed, closing connections to `+t),this.connection.emitError(S.NegotiationFailed,`Negotiation of connection to `+t+` failed.`),this.connection.close();break;case`closed`:v.log(`iceConnectionState is closed, closing connections to `+t),this.connection.emitError(S.ConnectionClosed,`Connection to `+t+` closed.`),this.connection.close();break;case`disconnected`:v.log(`iceConnectionState changed to disconnected on the connection with `+t);break;case`completed`:e.onicecandidate=()=>{};break}this.connection.emit(`iceStateChanged`,e.iceConnectionState)},v.log(`Listening for data channel`),e.ondatachannel=e=>{v.log(`Received data channel`);let r=e.channel;i.getConnection(t,n)._initializeDataChannel(r)},v.log(`Listening for remote stream`),e.ontrack=e=>{v.log(`Received remote stream`);let r=e.streams[0],a=i.getConnection(t,n);if(a.type===b.Media){let e=a;this._addStreamToMediaConnection(r,e)}}}cleanup(){v.log(`Cleaning up PeerConnection to `+this.connection.peer);let e=this.connection.peerConnection;if(!e)return;this.connection.peerConnection=null,e.onicecandidate=e.oniceconnectionstatechange=e.ondatachannel=e.ontrack=()=>{};let t=e.signalingState!==`closed`,n=!1,r=this.connection.dataChannel;r&&(n=!!r.readyState&&r.readyState!==`closed`),(t||n)&&e.close()}async _makeOffer(){let e=this.connection.peerConnection,t=this.connection.provider;try{let n=await e.createOffer(this.connection.options.constraints);v.log(`Created offer.`),this.connection.options.sdpTransform&&typeof this.connection.options.sdpTransform==`function`&&(n.sdp=this.connection.options.sdpTransform(n.sdp)||n.sdp);try{await e.setLocalDescription(n),v.log(`Set localDescription:`,n,`for:${this.connection.peer}`);let r={sdp:n,type:this.connection.type,connectionId:this.connection.connectionId,metadata:this.connection.metadata};if(this.connection.type===b.Data){let e=this.connection;r={...r,label:e.label,reliable:e.reliable,serialization:e.serialization}}t.socket.send({type:E.Offer,payload:r,dst:this.connection.peer})}catch(e){e!=`OperationError: Failed to set local offer sdp: Called in wrong state: kHaveRemoteOffer`&&(t.emitError(x.WebRTC,e),v.log(`Failed to setLocalDescription, `,e))}}catch(e){t.emitError(x.WebRTC,e),v.log(`Failed to createOffer, `,e)}}async _makeAnswer(){let e=this.connection.peerConnection,t=this.connection.provider;try{let n=await e.createAnswer();v.log(`Created answer.`),this.connection.options.sdpTransform&&typeof this.connection.options.sdpTransform==`function`&&(n.sdp=this.connection.options.sdpTransform(n.sdp)||n.sdp);try{await e.setLocalDescription(n),v.log(`Set localDescription:`,n,`for:${this.connection.peer}`),t.socket.send({type:E.Answer,payload:{sdp:n,type:this.connection.type,connectionId:this.connection.connectionId},dst:this.connection.peer})}catch(e){t.emitError(x.WebRTC,e),v.log(`Failed to setLocalDescription, `,e)}}catch(e){t.emitError(x.WebRTC,e),v.log(`Failed to create answer, `,e)}}async handleSDP(e,t){t=new RTCSessionDescription(t);let n=this.connection.peerConnection,r=this.connection.provider;v.log(`Setting remote description`,t);let i=this;try{await n.setRemoteDescription(t),v.log(`Set remoteDescription:${e} for:${this.connection.peer}`),e===`OFFER`&&await i._makeAnswer()}catch(e){r.emitError(x.WebRTC,e),v.log(`Failed to setRemoteDescription, `,e)}}async handleCandidate(e){v.log(`handleCandidate:`,e);try{await this.connection.peerConnection.addIceCandidate(e),v.log(`Added ICE candidate for:${this.connection.peer}`)}catch(e){this.connection.provider.emitError(x.WebRTC,e),v.log(`Failed to handleCandidate, `,e)}}_addTracksToConnection(e,t){if(v.log(`add tracks from stream ${e.id} to peer connection`),!t.addTrack)return v.error(`Your browser does't support RTCPeerConnection#addTrack. Ignored.`);e.getTracks().forEach(n=>{t.addTrack(n,e)})}_addStreamToMediaConnection(e,t){v.log(`add stream ${e.id} to media connection ${t.connectionId}`),t.addStream(e)}},k=class extends i.EventEmitter{emitError(e,t){v.error(`Error:`,t),this.emit(`error`,new A(`${e}`,t))}},A=class extends Error{constructor(e,t){typeof t==`string`?super(t):(super(),Object.assign(this,t)),this.type=e}},j=class extends k{get open(){return this._open}constructor(e,t,n){super(),this.peer=e,this.provider=t,this.options=n,this._open=!1,this.metadata=n.metadata}},M=class e extends j{static#e=this.ID_PREFIX=`mc_`;get type(){return b.Media}get localStream(){return this._localStream}get remoteStream(){return this._remoteStream}constructor(t,n,r){super(t,n,r),this._localStream=this.options._stream,this.connectionId=this.options.connectionId||e.ID_PREFIX+_.randomToken(),this._negotiator=new O(this),this._localStream&&this._negotiator.startConnection({_stream:this._localStream,originator:!0})}_initializeDataChannel(e){this.dataChannel=e,this.dataChannel.onopen=()=>{v.log(`DC#${this.connectionId} dc connection success`),this.emit(`willCloseOnRemote`)},this.dataChannel.onclose=()=>{v.log(`DC#${this.connectionId} dc closed for:`,this.peer),this.close()}}addStream(e){v.log(`Receiving stream`,e),this._remoteStream=e,super.emit(`stream`,e)}handleMessage(e){let t=e.type,n=e.payload;switch(e.type){case E.Answer:this._negotiator.handleSDP(t,n.sdp),this._open=!0;break;case E.Candidate:this._negotiator.handleCandidate(n.candidate);break;default:v.warn(`Unrecognized message type:${t} from peer:${this.peer}`);break}}answer(e,t={}){if(this._localStream){v.warn(`Local stream already exists on this MediaConnection. Are you answering a call twice?`);return}this._localStream=e,t&&t.sdpTransform&&(this.options.sdpTransform=t.sdpTransform),this._negotiator.startConnection({...this.options._payload,_stream:e});let n=this.provider._getMessages(this.connectionId);for(let e of n)this.handleMessage(e);this._open=!0}close(){this._negotiator&&=(this._negotiator.cleanup(),null),this._localStream=null,this._remoteStream=null,this.provider&&=(this.provider._removeConnection(this),null),this.options&&this.options._stream&&(this.options._stream=null),this.open&&(this._open=!1,super.emit(`close`))}},N=class{constructor(e){this._options=e}_buildRequest(e){let t=this._options.secure?`https`:`http`,{host:n,port:r,path:i,key:a}=this._options,o=new URL(`${t}://${n}:${r}${i}${a}/${e}`);return o.searchParams.set(`ts`,`${Date.now()}${Math.random()}`),o.searchParams.set(`version`,`1.5.5`),fetch(o.href,{referrerPolicy:this._options.referrerPolicy})}async retrieveId(){try{let e=await this._buildRequest(`id`);if(e.status!==200)throw Error(`Error. Status:${e.status}`);return e.text()}catch(e){v.error(`Error retrieving ID`,e);let t=``;throw this._options.path===`/`&&this._options.host!==_.CLOUD_HOST&&(t=" If you passed in a `path` to your self-hosted PeerServer, you'll also need to pass in that same path when creating a new Peer."),Error(`Could not get an ID from the server.`+t)}}async listAllPeers(){try{let e=await this._buildRequest(`peers`);if(e.status!==200){if(e.status===401){let e=``;throw e=this._options.host===_.CLOUD_HOST?`It looks like you're using the cloud server. You can email team@peerjs.com to enable peer listing for your API key.`:"You need to enable `allow_discovery` on your self-hosted PeerServer to use this feature.",Error(`It doesn't look like you have permission to list peers IDs. `+e)}throw Error(`Error. Status:${e.status}`)}return e.json()}catch(e){throw v.error(`Error retrieving list peers`,e),Error(`Could not get list peers from the server.`+e)}}},P=class e extends j{static#e=this.ID_PREFIX=`dc_`;static#t=this.MAX_BUFFERED_AMOUNT=8388608;get type(){return b.Data}constructor(t,n,r){super(t,n,r),this.connectionId=this.options.connectionId||e.ID_PREFIX+h(),this.label=this.options.label||this.connectionId,this.reliable=!!this.options.reliable,this._negotiator=new O(this),this._negotiator.startConnection(this.options._payload||{originator:!0,reliable:this.reliable})}_initializeDataChannel(e){this.dataChannel=e,this.dataChannel.onopen=()=>{v.log(`DC#${this.connectionId} dc connection success`),this._open=!0,this.emit(`open`)},this.dataChannel.onmessage=e=>{v.log(`DC#${this.connectionId} dc onmessage:`,e.data)},this.dataChannel.onclose=()=>{v.log(`DC#${this.connectionId} dc closed for:`,this.peer),this.close()}}close(e){if(e?.flush){this.send({__peerData:{type:`close`}});return}this._negotiator&&=(this._negotiator.cleanup(),null),this.provider&&=(this.provider._removeConnection(this),null),this.dataChannel&&=(this.dataChannel.onopen=null,this.dataChannel.onmessage=null,this.dataChannel.onclose=null,null),this.open&&(this._open=!1,super.emit(`close`))}send(e,t=!1){if(!this.open){this.emitError(C.NotOpenYet,"Connection is not open. You should listen for the `open` event before sending messages.");return}return this._send(e,t)}async handleMessage(e){let t=e.payload;switch(e.type){case E.Answer:await this._negotiator.handleSDP(e.type,t.sdp);break;case E.Candidate:await this._negotiator.handleCandidate(t.candidate);break;default:v.warn(`Unrecognized message type:`,e.type,`from peer:`,this.peer);break}}},F=class extends P{get bufferSize(){return this._bufferSize}_initializeDataChannel(e){super._initializeDataChannel(e),this.dataChannel.binaryType=`arraybuffer`,this.dataChannel.addEventListener(`message`,e=>this._handleDataMessage(e))}_bufferedSend(e){(this._buffering||!this._trySend(e))&&(this._buffer.push(e),this._bufferSize=this._buffer.length)}_trySend(e){if(!this.open)return!1;if(this.dataChannel.bufferedAmount>P.MAX_BUFFERED_AMOUNT)return this._buffering=!0,setTimeout(()=>{this._buffering=!1,this._tryBuffer()},50),!1;try{this.dataChannel.send(e)}catch(e){return v.error(`DC#:${this.connectionId} Error when sending:`,e),this._buffering=!0,this.close(),!1}return!0}_tryBuffer(){if(!this.open||this._buffer.length===0)return;let e=this._buffer[0];this._trySend(e)&&(this._buffer.shift(),this._bufferSize=this._buffer.length,this._tryBuffer())}close(e){if(e?.flush){this.send({__peerData:{type:`close`}});return}this._buffer=[],this._bufferSize=0,super.close()}constructor(...e){super(...e),this._buffer=[],this._bufferSize=0,this._buffering=!1}},I=class extends F{close(e){super.close(e),this._chunkedData={}}constructor(e,t,n){super(e,t,n),this.chunker=new u,this.serialization=w.Binary,this._chunkedData={}}_handleDataMessage({data:e}){let t=(0,n.unpack)(e),r=t.__peerData;if(r){if(r.type===`close`){this.close();return}this._handleChunk(t);return}this.emit(`data`,t)}_handleChunk(e){let t=e.__peerData,n=this._chunkedData[t]||{data:[],count:0,total:e.total};if(n.data[e.n]=new Uint8Array(e.data),n.count++,this._chunkedData[t]=n,n.total===n.count){delete this._chunkedData[t];let e=d(n.data);this._handleDataMessage({data:e})}}_send(e,t){let r=(0,n.pack)(e);if(r instanceof Promise)return this._send_blob(r);if(!t&&r.byteLength>this.chunker.chunkedMTU){this._sendChunks(r);return}this._bufferedSend(r)}async _send_blob(e){let t=await e;if(t.byteLength>this.chunker.chunkedMTU){this._sendChunks(t);return}this._bufferedSend(t)}_sendChunks(e){let t=this.chunker.chunk(e);v.log(`DC#${this.connectionId} Try to send ${t.length} chunks...`);for(let e of t)this.send(e,!0)}},L=class extends F{_handleDataMessage({data:e}){super.emit(`data`,e)}_send(e,t){this._bufferedSend(e)}constructor(...e){super(...e),this.serialization=w.None}},ee=class extends F{_handleDataMessage({data:e}){let t=this.parse(this.decoder.decode(e)),n=t.__peerData;if(n&&n.type===`close`){this.close();return}this.emit(`data`,t)}_send(e,t){let n=this.encoder.encode(this.stringify(e));if(n.byteLength>=_.chunkedMTU){this.emitError(C.MessageToBig,`Message too big for JSON channel`);return}this._bufferedSend(n)}constructor(...e){super(...e),this.serialization=w.JSON,this.encoder=new TextEncoder,this.decoder=new TextDecoder,this.stringify=JSON.stringify,this.parse=JSON.parse}},te=class e extends k{static#e=this.DEFAULT_KEY=`peerjs`;get id(){return this._id}get options(){return this._options}get open(){return this._open}get socket(){return this._socket}get connections(){let e=Object.create(null);for(let[t,n]of this._connections)e[t]=n;return e}get destroyed(){return this._destroyed}get disconnected(){return this._disconnected}constructor(t,n){super(),this._serializers={raw:L,json:ee,binary:I,"binary-utf8":I,default:I},this._id=null,this._lastServerId=null,this._destroyed=!1,this._disconnected=!1,this._open=!1,this._connections=new Map,this._lostMessages=new Map;let r;if(t&&t.constructor==Object?n=t:t&&(r=t.toString()),n={debug:0,host:_.CLOUD_HOST,port:_.CLOUD_PORT,path:`/`,key:e.DEFAULT_KEY,token:_.randomToken(),config:_.defaultConfig,referrerPolicy:`strict-origin-when-cross-origin`,serializers:{},...n},this._options=n,this._serializers={...this._serializers,...this.options.serializers},this._options.host===`/`&&(this._options.host=window.location.hostname),this._options.path&&(this._options.path[0]!==`/`&&(this._options.path=`/`+this._options.path),this._options.path[this._options.path.length-1]!==`/`&&(this._options.path+=`/`)),this._options.secure===void 0&&this._options.host!==_.CLOUD_HOST?this._options.secure=_.isSecure():this._options.host==_.CLOUD_HOST&&(this._options.secure=!0),this._options.logFunction&&v.setLogFunction(this._options.logFunction),v.logLevel=this._options.debug||0,this._api=new N(n),this._socket=this._createServerConnection(),!_.supports.audioVideo&&!_.supports.data){this._delayedAbort(x.BrowserIncompatible,`The current browser does not support WebRTC`);return}if(r&&!_.validateId(r)){this._delayedAbort(x.InvalidID,`ID "${r}" is invalid`);return}r?this._initialize(r):this._api.retrieveId().then(e=>this._initialize(e)).catch(e=>this._abort(x.ServerError,e))}_createServerConnection(){let e=new D(this._options.secure,this._options.host,this._options.port,this._options.path,this._options.key,this._options.pingInterval);return e.on(T.Message,e=>{this._handleMessage(e)}),e.on(T.Error,e=>{this._abort(x.SocketError,e)}),e.on(T.Disconnected,()=>{this.disconnected||(this.emitError(x.Network,`Lost connection to server.`),this.disconnect())}),e.on(T.Close,()=>{this.disconnected||this._abort(x.SocketClosed,`Underlying socket is already closed.`)}),e}_initialize(e){this._id=e,this.socket.start(e,this._options.token)}_handleMessage(e){let t=e.type,n=e.payload,r=e.src;switch(t){case E.Open:this._lastServerId=this.id,this._open=!0,this.emit(`open`,this.id);break;case E.Error:this._abort(x.ServerError,n.msg);break;case E.IdTaken:this._abort(x.UnavailableID,`ID "${this.id}" is taken`);break;case E.InvalidKey:this._abort(x.InvalidKey,`API KEY "${this._options.key}" is invalid`);break;case E.Leave:v.log(`Received leave message from ${r}`),this._cleanupPeer(r),this._connections.delete(r);break;case E.Expire:this.emitError(x.PeerUnavailable,`Could not connect to peer ${r}`);break;case E.Offer:{let e=n.connectionId,t=this.getConnection(r,e);if(t&&(t.close(),v.warn(`Offer received for existing Connection ID:${e}`)),n.type===b.Media){let i=new M(r,this,{connectionId:e,_payload:n,metadata:n.metadata});t=i,this._addConnection(r,t),this.emit(`call`,i)}else if(n.type===b.Data){let i=new this._serializers[n.serialization](r,this,{connectionId:e,_payload:n,metadata:n.metadata,label:n.label,serialization:n.serialization,reliable:n.reliable});t=i,this._addConnection(r,t),this.emit(`connection`,i)}else{v.warn(`Received malformed connection type:${n.type}`);return}let i=this._getMessages(e);for(let e of i)t.handleMessage(e);break}default:{if(!n){v.warn(`You received a malformed message from ${r} of type ${t}`);return}let i=n.connectionId,a=this.getConnection(r,i);a&&a.peerConnection?a.handleMessage(e):i?this._storeMessage(i,e):v.warn(`You received an unrecognized message:`,e);break}}}_storeMessage(e,t){this._lostMessages.has(e)||this._lostMessages.set(e,[]),this._lostMessages.get(e).push(t)}_getMessages(e){let t=this._lostMessages.get(e);return t?(this._lostMessages.delete(e),t):[]}connect(e,t={}){if(t={serialization:`default`,...t},this.disconnected){v.warn(`You cannot connect to a new Peer because you called .disconnect() on this Peer and ended your connection with the server. You can create a new Peer to reconnect, or call reconnect on this peer if you believe its ID to still be available.`),this.emitError(x.Disconnected,`Cannot connect to new Peer after disconnecting from server.`);return}let n=new this._serializers[t.serialization](e,this,t);return this._addConnection(e,n),n}call(e,t,n={}){if(this.disconnected){v.warn(`You cannot connect to a new Peer because you called .disconnect() on this Peer and ended your connection with the server. You can create a new Peer to reconnect.`),this.emitError(x.Disconnected,`Cannot connect to new Peer after disconnecting from server.`);return}if(!t){v.error("To call a peer, you must provide a stream from your browser's `getUserMedia`.");return}let r=new M(e,this,{...n,_stream:t});return this._addConnection(e,r),r}_addConnection(e,t){v.log(`add connection ${t.type}:${t.connectionId} to peerId:${e}`),this._connections.has(e)||this._connections.set(e,[]),this._connections.get(e).push(t)}_removeConnection(e){let t=this._connections.get(e.peer);if(t){let n=t.indexOf(e);n!==-1&&t.splice(n,1)}this._lostMessages.delete(e.connectionId)}getConnection(e,t){let n=this._connections.get(e);if(!n)return null;for(let e of n)if(e.connectionId===t)return e;return null}_delayedAbort(e,t){setTimeout(()=>{this._abort(e,t)},0)}_abort(e,t){v.error(`Aborting!`),this.emitError(e,t),this._lastServerId?this.disconnect():this.destroy()}destroy(){this.destroyed||(v.log(`Destroy peer with ID:${this.id}`),this.disconnect(),this._cleanup(),this._destroyed=!0,this.emit(`close`))}_cleanup(){for(let e of this._connections.keys())this._cleanupPeer(e),this._connections.delete(e);this.socket.removeAllListeners()}_cleanupPeer(e){let t=this._connections.get(e);if(t)for(let e of t)e.close()}disconnect(){if(this.disconnected)return;let e=this.id;v.log(`Disconnect peer with ID:${e}`),this._disconnected=!0,this._open=!1,this.socket.close(),this._lastServerId=e,this._id=null,this.emit(`disconnected`,e)}reconnect(){if(this.disconnected&&!this.destroyed)v.log(`Attempting reconnection to server with ID ${this._lastServerId}`),this._disconnected=!1,this._initialize(this._lastServerId);else if(this.destroyed)throw Error(`This peer cannot reconnect to the server. It has already been destroyed.`);else if(!this.disconnected&&!this.open)v.error(`In a hurry? We're still trying to make the initial connection!`);else throw Error(`Peer ${this.id} cannot reconnect because it is not disconnected from the server!`)}listAllPeers(e=e=>{}){this._api.listAllPeers().then(t=>e(t)).catch(e=>this._abort(x.ServerError,e))}},ne=class extends P{constructor(e,t,n){super(e,t,{...n,reliable:!0}),this._CHUNK_SIZE=32768,this._splitStream=new TransformStream({transform:(e,t)=>{for(let n=0;n<e.length;n+=this._CHUNK_SIZE)t.enqueue(e.subarray(n,n+this._CHUNK_SIZE))}}),this._rawSendStream=new WritableStream({write:async(e,t)=>{let n=new Promise(e=>this.dataChannel.addEventListener(`bufferedamountlow`,e,{once:!0}));await(this.dataChannel.bufferedAmount<=P.MAX_BUFFERED_AMOUNT-e.byteLength||n);try{this.dataChannel.send(e)}catch(e){v.error(`DC#:${this.connectionId} Error when sending:`,e),t.error(e),this.close()}}}),this.writer=this._splitStream.writable.getWriter(),this._rawReadStream=new ReadableStream({start:e=>{this.once(`open`,()=>{this.dataChannel.addEventListener(`message`,t=>{e.enqueue(t.data)})})}}),this._splitStream.readable.pipeTo(this._rawSendStream)}_initializeDataChannel(e){super._initializeDataChannel(e),this.dataChannel.binaryType=`arraybuffer`,this.dataChannel.bufferedAmountLowThreshold=P.MAX_BUFFERED_AMOUNT/2}},R=class extends ne{constructor(e,t,n){super(e,t,n),this.serialization=`MsgPack`,this._encoder=new a.Encoder,(async()=>{for await(let e of(0,a.decodeMultiStream)(this._rawReadStream)){if(e.__peerData?.type===`close`){this.close();return}this.emit(`data`,e)}})()}_send(e){return this.writer.write(this._encoder.encode(e))}},re=class extends te{constructor(...e){super(...e),this._serializers={MsgPack:R,default:R}}},ie=te;s(t.exports,y)}));let qP=null;async function JP(){if(typeof globalThis<`u`&&globalThis.RTCPeerConnection!==void 0)return qP=!0,!0;if(qP!==null)return qP;try{let e=await Promise.resolve().then(()=>(gP(),mP));if(e&&e.RTCPeerConnection)return Object.assign(globalThis,{RTCPeerConnection:e.RTCPeerConnection,RTCSessionDescription:e.RTCSessionDescription,RTCIceCandidate:e.RTCIceCandidate}),qP=!0,!0}catch(e){console.warn(`[webrtc] Failed to load node-datachannel WebRTC polyfill:`,e instanceof Error?e.message:String(e))}return qP=!1,!1}async function YP(){await JP();let e=await Promise.resolve().then(()=>Pe(KP(),1));return e.default?.Peer||e.default||e.Peer}var XP=class{_peerId;_host;_port;_path;_secure;_verbose;_peer=null;_connections=new Map;_pendingCommands=new Map;_handlers=new Map;_isOpen=!1;constructor(e={}){if(this._peerId=e.peerId||`server-${qA().toLowerCase()}`,this._host=e.host||`127.0.0.1`,this._port=e.port||8888,this._path=e.path||`/`,this._secure=e.secure??!1,this._verbose=e.verbose??!1,e.handlers)for(let[t,n]of Object.entries(e.handlers))this._handlers.set(t,n)}get peerId(){return this._peerId}get isOpen(){return this._isOpen}log(e){this._verbose&&console.log(`[server-peer] ${e}`)}async start(){let e=await YP();return new Promise((t,n)=>{try{let r=new e(this._peerId,{host:this._host,port:this._port,path:this._path,secure:this._secure});this._peer=r,r.on(`open`,e=>{this._peerId=e,this._isOpen=!0,this.log(`Server peer opened with ID: ${e}`),t(e)}),r.on(`connection`,e=>{this._setupConnection(e)}),r.on(`error`,e=>{this.log(`Server peer error: ${e.message||String(e)}`),this._isOpen||n(e)}),r.on(`close`,()=>{this._isOpen=!1,this._connections.clear(),this.log(`Server peer closed`)})}catch(e){n(e)}})}_setupConnection(e){let t=e.peer;e.on(`open`,()=>{this._connections.set(t,e),this.log(`DataChannel connected with peer: ${t}`)}),e.on(`data`,n=>{this._handleData(t,e,n)}),e.on(`close`,()=>{this._connections.delete(t),this.log(`DataChannel closed for peer: ${t}`)}),e.on(`error`,e=>{this.log(`DataChannel error with ${t}: ${e.message}`)})}async _handleData(e,t,n){let r=n;if(typeof n==`string`)try{r=JSON.parse(n)}catch{return}if(!(!r||typeof r!=`object`)){if(r.type===`command:execute`){let{commandId:e,action:n,args:i}=r.payload||{},a=this._handlers.get(n);if(!a){let i={id:qA(),type:`command:result`,replyTo:r.id,payload:{commandId:e,success:!1,error:`Unknown action: ${n}`}};t.send(i);return}try{let n=await a(i),o={id:qA(),type:`command:result`,replyTo:r.id,payload:{commandId:e,success:!0,data:n}};t.send(o)}catch(n){let i={id:qA(),type:`command:result`,replyTo:r.id,payload:{commandId:e,success:!1,error:n.message||String(n)}};t.send(i)}return}if(r.type===`command:result`){let e=r.payload;if(e?.commandId&&this._pendingCommands.has(e.commandId)){let t=this._pendingCommands.get(e.commandId);clearTimeout(t.timeout),this._pendingCommands.delete(e.commandId),t.resolve(e)}return}}}isPeerConnected(e){let t=this._connections.get(e);return!!t&&(t.open||t._open)}getConnectedPeers(){return Array.from(this._connections.keys())}async sendCommand(e,t,n={},r=3e4){if(!this._peer||!this._isOpen)throw Error(`Server peer is not running`);let i=this._connections.get(e);(!i||!i.open)&&(i=this._peer.connect(e,{reliable:!0,serialization:`binary`}),this._setupConnection(i),await new Promise((t,n)=>{let a=setTimeout(()=>{n(Error(`Connection to peer ${e} timed out after ${r}ms`))},Math.min(1e4,r));i.on(`open`,()=>{clearTimeout(a),t()}),i.on(`error`,e=>{clearTimeout(a),n(e)})}));let a=qA(),o={commandId:a,action:t,args:n},s={id:qA(),type:`command:execute`,payload:o};return new Promise((n,o)=>{let c=setTimeout(()=>{this._pendingCommands.delete(a),o(Error(`Command ${t} to peer ${e} timed out after ${r}ms`))},r);this._pendingCommands.set(a,{resolve:n,reject:o,timeout:c});try{i.send(s)}catch(e){clearTimeout(c),this._pendingCommands.delete(a),o(e)}})}close(){this._isOpen=!1;for(let[,e]of this._pendingCommands)clearTimeout(e.timeout),e.reject(Error(`Server peer closed`));this._pendingCommands.clear();for(let e of this._connections.values())try{e.close()}catch{}if(this._connections.clear(),this._peer){try{this._peer.destroy()}catch{}this._peer=null}}},ZP=V((e=>{var t=class extends Error{constructor(e,t,n){super(n),Error.captureStackTrace(this,this.constructor),this.name=this.constructor.name,this.code=t,this.exitCode=e,this.nestedError=void 0}},n=class extends t{constructor(e){super(1,`commander.invalidArgument`,e),Error.captureStackTrace(this,this.constructor),this.name=this.constructor.name}};e.CommanderError=t,e.InvalidArgumentError=n})),QP=V((e=>{let{InvalidArgumentError:t}=ZP();var n=class{constructor(e,t){switch(this.description=t||``,this.variadic=!1,this.parseArg=void 0,this.defaultValue=void 0,this.defaultValueDescription=void 0,this.argChoices=void 0,e[0]){case`<`:this.required=!0,this._name=e.slice(1,-1);break;case`[`:this.required=!1,this._name=e.slice(1,-1);break;default:this.required=!0,this._name=e;break}this._name.endsWith(`...`)&&(this.variadic=!0,this._name=this._name.slice(0,-3))}name(){return this._name}_collectValue(e,t){return t===this.defaultValue||!Array.isArray(t)?[e]:(t.push(e),t)}default(e,t){return this.defaultValue=e,this.defaultValueDescription=t,this}argParser(e){return this.parseArg=e,this}choices(e){return this.argChoices=e.slice(),this.parseArg=(e,n)=>{if(!this.argChoices.includes(e))throw new t(`Allowed choices are ${this.argChoices.join(`, `)}.`);return this.variadic?this._collectValue(e,n):e},this}argRequired(){return this.required=!0,this}argOptional(){return this.required=!1,this}};function r(e){let t=e.name()+(e.variadic===!0?`...`:``);return e.required?`<`+t+`>`:`[`+t+`]`}e.Argument=n,e.humanReadableArgName=r})),$P=V((e=>{let{humanReadableArgName:t}=QP();var n=class{constructor(){this.helpWidth=void 0,this.minWidthToWrap=40,this.sortSubcommands=!1,this.sortOptions=!1,this.showGlobalOptions=!1}prepareContext(e){this.helpWidth=this.helpWidth??e.helpWidth??80}visibleCommands(e){let t=e.commands.filter(e=>!e._hidden),n=e._getHelpCommand();return n&&!n._hidden&&t.push(n),this.sortSubcommands&&t.sort((e,t)=>e.name().localeCompare(t.name())),t}compareOptions(e,t){let n=e=>e.short?e.short.replace(/^-/,``):e.long.replace(/^--/,``);return n(e).localeCompare(n(t))}visibleOptions(e){let t=e.options.filter(e=>!e.hidden),n=e._getHelpOption();if(n&&!n.hidden){let r=n.short&&e._findOption(n.short),i=n.long&&e._findOption(n.long);!r&&!i?t.push(n):n.long&&!i?t.push(e.createOption(n.long,n.description)):n.short&&!r&&t.push(e.createOption(n.short,n.description))}return this.sortOptions&&t.sort(this.compareOptions),t}visibleGlobalOptions(e){if(!this.showGlobalOptions)return[];let t=[];for(let n=e.parent;n;n=n.parent){let e=n.options.filter(e=>!e.hidden);t.push(...e)}return this.sortOptions&&t.sort(this.compareOptions),t}visibleArguments(e){return e._argsDescription&&e.registeredArguments.forEach(t=>{t.description=t.description||e._argsDescription[t.name()]||``}),e.registeredArguments.find(e=>e.description)?e.registeredArguments:[]}subcommandTerm(e){let n=e.registeredArguments.map(e=>t(e)).join(` `);return e._name+(e._aliases[0]?`|`+e._aliases[0]:``)+(e.options.length?` [options]`:``)+(n?` `+n:``)}optionTerm(e){return e.flags}argumentTerm(e){return e.name()}longestSubcommandTermLength(e,t){return t.visibleCommands(e).reduce((e,n)=>Math.max(e,this.displayWidth(t.styleSubcommandTerm(t.subcommandTerm(n)))),0)}longestOptionTermLength(e,t){return t.visibleOptions(e).reduce((e,n)=>Math.max(e,this.displayWidth(t.styleOptionTerm(t.optionTerm(n)))),0)}longestGlobalOptionTermLength(e,t){return t.visibleGlobalOptions(e).reduce((e,n)=>Math.max(e,this.displayWidth(t.styleOptionTerm(t.optionTerm(n)))),0)}longestArgumentTermLength(e,t){return t.visibleArguments(e).reduce((e,n)=>Math.max(e,this.displayWidth(t.styleArgumentTerm(t.argumentTerm(n)))),0)}commandUsage(e){let t=e._name;e._aliases[0]&&(t=t+`|`+e._aliases[0]);let n=``;for(let t=e.parent;t;t=t.parent)n=t.name()+` `+n;return n+t+` `+e.usage()}commandDescription(e){return e.description()}subcommandDescription(e){return e.summary()||e.description()}optionDescription(e){let t=[];if(e.argChoices&&t.push(`choices: ${e.argChoices.map(e=>JSON.stringify(e)).join(`, `)}`),e.defaultValue!==void 0&&(e.required||e.optional||e.isBoolean()&&typeof e.defaultValue==`boolean`)&&t.push(`default: ${e.defaultValueDescription||JSON.stringify(e.defaultValue)}`),e.presetArg!==void 0&&e.optional&&t.push(`preset: ${JSON.stringify(e.presetArg)}`),e.envVar!==void 0&&t.push(`env: ${e.envVar}`),t.length>0){let n=`(${t.join(`, `)})`;return e.description?`${e.description} ${n}`:n}return e.description}argumentDescription(e){let t=[];if(e.argChoices&&t.push(`choices: ${e.argChoices.map(e=>JSON.stringify(e)).join(`, `)}`),e.defaultValue!==void 0&&t.push(`default: ${e.defaultValueDescription||JSON.stringify(e.defaultValue)}`),t.length>0){let n=`(${t.join(`, `)})`;return e.description?`${e.description} ${n}`:n}return e.description}formatItemList(e,t,n){return t.length===0?[]:[n.styleTitle(e),...t,``]}groupItems(e,t,n){let r=new Map;return e.forEach(e=>{let t=n(e);r.has(t)||r.set(t,[])}),t.forEach(e=>{let t=n(e);r.has(t)||r.set(t,[]),r.get(t).push(e)}),r}formatHelp(e,t){let n=t.padWidth(e,t),r=t.helpWidth??80;function i(e,r){return t.formatItem(e,n,r,t)}let a=[`${t.styleTitle(`Usage:`)} ${t.styleUsage(t.commandUsage(e))}`,``],o=t.commandDescription(e);o.length>0&&(a=a.concat([t.boxWrap(t.styleCommandDescription(o),r),``]));let s=t.visibleArguments(e).map(e=>i(t.styleArgumentTerm(t.argumentTerm(e)),t.styleArgumentDescription(t.argumentDescription(e))));if(a=a.concat(this.formatItemList(`Arguments:`,s,t)),this.groupItems(e.options,t.visibleOptions(e),e=>e.helpGroupHeading??`Options:`).forEach((e,n)=>{let r=e.map(e=>i(t.styleOptionTerm(t.optionTerm(e)),t.styleOptionDescription(t.optionDescription(e))));a=a.concat(this.formatItemList(n,r,t))}),t.showGlobalOptions){let n=t.visibleGlobalOptions(e).map(e=>i(t.styleOptionTerm(t.optionTerm(e)),t.styleOptionDescription(t.optionDescription(e))));a=a.concat(this.formatItemList(`Global Options:`,n,t))}return this.groupItems(e.commands,t.visibleCommands(e),e=>e.helpGroup()||`Commands:`).forEach((e,n)=>{let r=e.map(e=>i(t.styleSubcommandTerm(t.subcommandTerm(e)),t.styleSubcommandDescription(t.subcommandDescription(e))));a=a.concat(this.formatItemList(n,r,t))}),a.join(`
|
|
1057
1057
|
`)}displayWidth(e){return r(e).length}styleTitle(e){return e}styleUsage(e){return e.split(` `).map(e=>e===`[options]`?this.styleOptionText(e):e===`[command]`?this.styleSubcommandText(e):e[0]===`[`||e[0]===`<`?this.styleArgumentText(e):this.styleCommandText(e)).join(` `)}styleCommandDescription(e){return this.styleDescriptionText(e)}styleOptionDescription(e){return this.styleDescriptionText(e)}styleSubcommandDescription(e){return this.styleDescriptionText(e)}styleArgumentDescription(e){return this.styleDescriptionText(e)}styleDescriptionText(e){return e}styleOptionTerm(e){return this.styleOptionText(e)}styleSubcommandTerm(e){return e.split(` `).map(e=>e===`[options]`?this.styleOptionText(e):e[0]===`[`||e[0]===`<`?this.styleArgumentText(e):this.styleSubcommandText(e)).join(` `)}styleArgumentTerm(e){return this.styleArgumentText(e)}styleOptionText(e){return e}styleArgumentText(e){return e}styleSubcommandText(e){return e}styleCommandText(e){return e}padWidth(e,t){return Math.max(t.longestOptionTermLength(e,t),t.longestGlobalOptionTermLength(e,t),t.longestSubcommandTermLength(e,t),t.longestArgumentTermLength(e,t))}preformatted(e){return/\n[^\S\r\n]/.test(e)}formatItem(e,t,n,r){let i=` `.repeat(2);if(!n)return i+e;let a=e.padEnd(t+e.length-r.displayWidth(e)),o=(this.helpWidth??80)-t-2-2,s;return s=o<this.minWidthToWrap||r.preformatted(n)?n:r.boxWrap(n,o).replace(/\n/g,`
|
|
1058
1058
|
`+` `.repeat(t+2)),i+a+` `.repeat(2)+s.replace(/\n/g,`\n${i}`)}boxWrap(e,t){if(t<this.minWidthToWrap)return e;let n=e.split(/\r\n|\n/),r=/[\s]*[^\s]+/g,i=[];return n.forEach(e=>{let n=e.match(r);if(n===null){i.push(``);return}let a=[n.shift()],o=this.displayWidth(a[0]);n.forEach(e=>{let n=this.displayWidth(e);if(o+n<=t){a.push(e),o+=n;return}i.push(a.join(``));let r=e.trimStart();a=[r],o=this.displayWidth(r)}),i.push(a.join(``))}),i.join(`
|
|
1059
1059
|
`)}};function r(e){return e.replace(/\x1b\[\d*(;\d*)*m/g,``)}e.Help=n,e.stripColor=r})),eF=V((e=>{let{InvalidArgumentError:t}=ZP();var n=class{constructor(e,t){this.flags=e,this.description=t||``,this.required=e.includes(`<`),this.optional=e.includes(`[`),this.variadic=/\w\.\.\.[>\]]$/.test(e),this.mandatory=!1;let n=a(e);this.short=n.shortFlag,this.long=n.longFlag,this.negate=!1,this.long&&(this.negate=this.long.startsWith(`--no-`)),this.defaultValue=void 0,this.defaultValueDescription=void 0,this.presetArg=void 0,this.envVar=void 0,this.parseArg=void 0,this.hidden=!1,this.argChoices=void 0,this.conflictsWith=[],this.implied=void 0,this.helpGroupHeading=void 0}default(e,t){return this.defaultValue=e,this.defaultValueDescription=t,this}preset(e){return this.presetArg=e,this}conflicts(e){return this.conflictsWith=this.conflictsWith.concat(e),this}implies(e){let t=e;return typeof e==`string`&&(t={[e]:!0}),this.implied=Object.assign(this.implied||{},t),this}env(e){return this.envVar=e,this}argParser(e){return this.parseArg=e,this}makeOptionMandatory(e=!0){return this.mandatory=!!e,this}hideHelp(e=!0){return this.hidden=!!e,this}_collectValue(e,t){return t===this.defaultValue||!Array.isArray(t)?[e]:(t.push(e),t)}choices(e){return this.argChoices=e.slice(),this.parseArg=(e,n)=>{if(!this.argChoices.includes(e))throw new t(`Allowed choices are ${this.argChoices.join(`, `)}.`);return this.variadic?this._collectValue(e,n):e},this}name(){return this.long?this.long.replace(/^--/,``):this.short.replace(/^-/,``)}attributeName(){return this.negate?i(this.name().replace(/^no-/,``)):i(this.name())}helpGroup(e){return this.helpGroupHeading=e,this}is(e){return this.short===e||this.long===e}isBoolean(){return!this.required&&!this.optional&&!this.negate}},r=class{constructor(e){this.positiveOptions=new Map,this.negativeOptions=new Map,this.dualOptions=new Set,e.forEach(e=>{e.negate?this.negativeOptions.set(e.attributeName(),e):this.positiveOptions.set(e.attributeName(),e)}),this.negativeOptions.forEach((e,t)=>{this.positiveOptions.has(t)&&this.dualOptions.add(t)})}valueFromOption(e,t){let n=t.attributeName();if(!this.dualOptions.has(n))return!0;let r=this.negativeOptions.get(n).presetArg,i=r!==void 0&&r;return t.negate===(i===e)}};function i(e){return e.split(`-`).reduce((e,t)=>e+t[0].toUpperCase()+t.slice(1))}function a(e){let t,n,r=/^-[^-]$/,i=/^--[^-]/,a=e.split(/[ |,]+/).concat(`guard`);if(r.test(a[0])&&(t=a.shift()),i.test(a[0])&&(n=a.shift()),!t&&r.test(a[0])&&(t=a.shift()),!t&&i.test(a[0])&&(t=n,n=a.shift()),a[0].startsWith(`-`)){let t=a[0],n=`option creation failed due to '${t}' in option flags '${e}'`;throw/^-[^-][^-]/.test(t)?Error(`${n}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "shadow-claw",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.30.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"license": "AGPL-3.0",
|
|
6
6
|
"description": "Browser-native personal AI assistant.",
|
|
@@ -124,7 +124,7 @@
|
|
|
124
124
|
"node-datachannel": "^0.33.2",
|
|
125
125
|
"nodemailer": "^8.0.7",
|
|
126
126
|
"peer": "^1.0.2",
|
|
127
|
-
"peerjs": "
|
|
127
|
+
"peerjs": "^1.5.5",
|
|
128
128
|
"prompt-api-polyfill": "^1.20.4",
|
|
129
129
|
"qrcode": "^1.5.4",
|
|
130
130
|
"smart-buffer": "^4.2.0",
|
package/src/__mocks__/marked.cjs
CHANGED
|
@@ -78,6 +78,20 @@ exports.marked = {
|
|
|
78
78
|
return renderHeadingBlock(text, hashes.length);
|
|
79
79
|
});
|
|
80
80
|
|
|
81
|
+
// Handle images:  or 
|
|
82
|
+
res = res.replace(/!\[([^\]]*)\]\((?:<([^>]+)>|([^ )\t]+))(?:\s+["']([^"']*)["'])?\)/g, (_, alt, url1, url2, title) => {
|
|
83
|
+
const src = (url1 || url2 || "").replace(/ /g, "%20");
|
|
84
|
+
const titleAttr = title ? ` title="${escapeHtml(title)}"` : "";
|
|
85
|
+
return `<img src="${escapeHtml(src)}" alt="${escapeHtml(alt)}"${titleAttr}>`;
|
|
86
|
+
});
|
|
87
|
+
|
|
88
|
+
// Handle links: [text](url) or [text](<url>)
|
|
89
|
+
res = res.replace(/\[([^\]]+)\]\((?:<([^>]+)>|([^ )\t]+))(?:\s+["']([^"']*)["'])?\)/g, (_, text, url1, url2, title) => {
|
|
90
|
+
const href = (url1 || url2 || "").replace(/ /g, "%20");
|
|
91
|
+
const titleAttr = title ? ` title="${escapeHtml(title)}"` : "";
|
|
92
|
+
return `<a href="${escapeHtml(href)}"${titleAttr}>${text}</a>`;
|
|
93
|
+
});
|
|
94
|
+
|
|
81
95
|
res = res.replace(/\*\*(.*?)\*\*/g, "<strong>$1</strong>");
|
|
82
96
|
res = res.replace(/\n\n/g, "</p><p>");
|
|
83
97
|
|
|
@@ -1000,6 +1000,23 @@ describe("chat workspace link resolution", () => {
|
|
|
1000
1000
|
);
|
|
1001
1001
|
});
|
|
1002
1002
|
|
|
1003
|
+
it("resolves links with spaces and percent-encoded spaces", () => {
|
|
1004
|
+
const instance = Object.create(ShadowClawChat.prototype);
|
|
1005
|
+
expect(
|
|
1006
|
+
instance.resolveWorkspaceLinkPath("My File With Spaces In The Name.md"),
|
|
1007
|
+
).toBe("My File With Spaces In The Name.md");
|
|
1008
|
+
expect(
|
|
1009
|
+
instance.resolveWorkspaceLinkPath(
|
|
1010
|
+
"./My%20File%20With%20Spaces%20In%20The%20Name.md",
|
|
1011
|
+
),
|
|
1012
|
+
).toBe("My File With Spaces In The Name.md");
|
|
1013
|
+
expect(
|
|
1014
|
+
instance.resolveWorkspaceLinkPath(
|
|
1015
|
+
"sub%20folder/My%20File%20With%20Spaces.md",
|
|
1016
|
+
),
|
|
1017
|
+
).toBe("sub folder/My File With Spaces.md");
|
|
1018
|
+
});
|
|
1019
|
+
|
|
1003
1020
|
it("defers relative image src loading until workspace resolution", () => {
|
|
1004
1021
|
const instance = Object.create(ShadowClawChat.prototype);
|
|
1005
1022
|
const html =
|