sliccy 4.28.2 → 4.29.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/README.md +17 -16
- package/dist/node-server/bridge-security.d.ts +26 -0
- package/dist/node-server/bridge-security.js +41 -2
- package/dist/node-server/chrome-launch.d.ts +62 -1
- package/dist/node-server/chrome-launch.js +168 -2
- package/dist/node-server/electron-controller.d.ts +115 -5
- package/dist/node-server/electron-controller.js +167 -28
- package/dist/node-server/electron-main.js +37 -2
- package/dist/node-server/electron-runtime.d.ts +0 -2
- package/dist/node-server/electron-runtime.js +63 -68
- package/dist/node-server/fetch-proxy-headers.d.ts +25 -0
- package/dist/node-server/fetch-proxy-headers.js +36 -0
- package/dist/node-server/index.js +46 -11
- package/dist/node-server/routes/fetch-proxy.js +12 -12
- package/dist/ui/assets/account-store-lwRLg8qZ.js +38 -0
- package/dist/ui/assets/account-store-o8Dx0iny.js +99 -0
- package/dist/ui/assets/adobe-oauth-state-DJ7nvXJJ.js +1 -0
- package/dist/ui/assets/adobe-oauth-state-fjk_YXgL.js +1 -0
- package/dist/ui/assets/adobe-t0y7yh0d.js +2 -0
- package/dist/ui/assets/adobe-w6Q7iSKn.js +1 -0
- package/dist/ui/assets/{agent-message-to-chat-DQErB0Zj.js → agent-message-to-chat-yezUzugT.js} +1 -1
- package/dist/ui/assets/{anthropic-BaI_sJYa.js → anthropic-DwYAPtk5.js} +1 -1
- package/dist/ui/assets/{apps-BAXGsVHu.js → apps-D-6_Des4.js} +1 -1
- package/dist/ui/assets/{azure-openai-CKd81QhZ.js → azure-openai-BUQWXp4U.js} +1 -1
- package/dist/ui/assets/{azure-openai-DTsNmcxo.js → azure-openai-Cza179on.js} +1 -1
- package/dist/ui/assets/{azure-openai-responses-CMjHELHX.js → azure-openai-responses-Bnxym5u-.js} +1 -1
- package/dist/ui/assets/backend-local-mrUgrni5.js +9 -0
- package/dist/ui/assets/{bedrock-camp-DS1dgU6g.js → bedrock-camp-C1lmRgcD.js} +2 -2
- package/dist/ui/assets/bsh-watchdog-aV3rA0w_.js +60 -0
- package/dist/ui/assets/cdp-bridge-CUqQUcaF.js +1 -0
- package/dist/ui/assets/{cdp-D4JkCTey.js → cdp-z9uzg44m.js} +5 -5
- package/dist/ui/assets/composer-speech-BJF-32Qm.js +1 -0
- package/dist/ui/assets/{connect-surface-CyQMJFj3.js → connect-surface-v46dKJYB.js} +1 -1
- package/dist/ui/assets/dip-Iosy_HJh.js +1 -0
- package/dist/ui/assets/{dist-CVvNIY9j.js → dist-BHeXHQU_.js} +1 -1
- package/dist/ui/assets/{dist-Ciobg3J4.js → dist-Fdgn9mju.js} +2 -2
- package/dist/ui/assets/ensure-speech-assets-CILvdvdL.js +1 -0
- package/dist/ui/assets/{es-DjQZltrp.js → es-Z-wNZ0C3.js} +4 -4
- package/dist/ui/assets/esp8266-CL1TORn3.js +1 -0
- package/dist/ui/assets/{esptool-operations-SV6FPHJC.js → esptool-operations-CYdcX9Mk.js} +2 -2
- package/dist/ui/assets/extension-bridge-transport-DYOF2OYC.js +1 -0
- package/dist/ui/assets/fetch-body-D2PwksUW.js +1 -0
- package/dist/ui/assets/fetch-body-DDu_AU5I.js +1 -0
- package/dist/ui/assets/{fs-Bv2avR3Y.js → fs-CruOlxoS.js} +2 -2
- package/dist/ui/assets/{fs-B-yB8nmS.js → fs-crZm8xnS.js} +1 -1
- package/dist/ui/assets/github-CQtjJB1r.js +2 -0
- package/dist/ui/assets/github-FUziE_96.js +1 -0
- package/dist/ui/assets/{github-copilot--B7IUER8.js → github-copilot-DOj1kxaL.js} +1 -1
- package/dist/ui/assets/{github-copilot-CFeOxiAY.js → github-copilot-yTNPvKEy.js} +1 -1
- package/dist/ui/assets/{google-yB8wbiw4.js → google-CSaY-DQE.js} +1 -1
- package/dist/ui/assets/{google-shared-CeGHiQ17.js → google-shared-RiqqHuiz.js} +1 -1
- package/dist/ui/assets/{google-vertex-Dbruz2uo.js → google-vertex-CBHKHWKe.js} +1 -1
- package/dist/ui/assets/hear-COc8-jz9.js +1 -0
- package/dist/ui/assets/hear-Ca-dJ63I.js +1 -0
- package/dist/ui/assets/hid-picker-DUJBI46p.js +1 -0
- package/dist/ui/assets/{intercepted-oauth-tLpKagkf.js → intercepted-oauth-E9BfBX02.js} +1 -1
- package/dist/ui/assets/js-realm-worker-BIJifCVd.js +47 -0
- package/dist/ui/assets/{json-parse-BIGBjpLL.js → json-parse-CWht3lea.js} +1 -1
- package/dist/ui/assets/kernel-worker-CFGgP28u.js +10060 -0
- package/dist/ui/assets/{kokoro-IuvgZkZk.js → kokoro-B5jJ2WUJ.js} +2 -2
- package/dist/ui/assets/{kokoro-pZaPWf_-.js → kokoro-BdpwC7DT.js} +2 -2
- package/dist/ui/assets/kokoro-engine-io4cnyoV.js +1 -0
- package/dist/ui/assets/{lick-ws-bridge-CbVQgXpI.js → lick-ws-bridge-s5Y2i_Ua.js} +1 -1
- package/dist/ui/assets/{local-llm-FEU-X2iM.js → local-llm-CKo8wJkz.js} +1 -1
- package/dist/ui/assets/magick-wasm-oRIuPV7a.js +43 -0
- package/dist/ui/assets/main-CY_go8Ex.js +24 -0
- package/dist/ui/assets/{main-cherry-B1mI8ArD.js → main-cherry-BRV9Q0tu.js} +1 -1
- package/dist/ui/assets/{mistral-CJVvXrOL.js → mistral-BTNTllXI.js} +1 -1
- package/dist/ui/assets/mount-DlwSk_tU.js +1 -0
- package/dist/ui/assets/mount-bridge-client-DDnAgZEL.js +2 -0
- package/dist/ui/assets/mount-id-_7_PCY9F.js +1 -0
- package/dist/ui/assets/mount-pc-SiJqJ.js +2 -0
- package/dist/ui/assets/mount-picker-popup-Hrvzr69c.js +1 -0
- package/dist/ui/assets/{mount-table-store-CQJEV6Ij.js → mount-table-store-ggb440m4.js} +1 -1
- package/dist/ui/assets/new-session-CfjGoE_n.js +2 -0
- package/dist/ui/assets/oauth-bootstrap-Le_gIjYT.js +2 -0
- package/dist/ui/assets/oauth-service-D4iuqFv6.js +1 -0
- package/dist/ui/assets/oauth-service-YGl8VFS-.js +1 -0
- package/dist/ui/assets/{openai-codex-BpHxok9y.js → openai-codex-CU65yKca.js} +1 -1
- package/dist/ui/assets/{openai-codex-DIIqvcoZ.js → openai-codex-Dx5taSaF.js} +1 -1
- package/dist/ui/assets/{openai-codex-responses-CLrAtex4.js → openai-codex-responses-7JN1dUxK.js} +1 -1
- package/dist/ui/assets/{openai-completions-CyC3I8Ls.js → openai-completions-YNL_qr9N.js} +1 -1
- package/dist/ui/assets/{openai-responses-D3BggRn6.js → openai-responses-nczmKECx.js} +1 -1
- package/dist/ui/assets/{openai-responses-shared-GJLWYx-P.js → openai-responses-shared-9YVaeX5D.js} +1 -1
- package/dist/ui/assets/panel-responder-BKgfV-nl.js +1 -0
- package/dist/ui/assets/{panel-rpc-Ck8CVyMh.js → panel-rpc-D0J5pskz.js} +1 -1
- package/dist/ui/assets/panel-rpc-handlers-BFGsncpn.js +2 -0
- package/dist/ui/assets/{picker-approval-tzbkMw-e.js → picker-approval-Dc390nC7.js} +1 -1
- package/dist/ui/assets/picker-popup-CpulHQsi.js +1 -0
- package/dist/ui/assets/preview-vfs-responder-CSDC7Oy2.js +1 -0
- package/dist/ui/assets/provider-Lb9gUmQt.js +2 -0
- package/dist/ui/assets/provider-store-access-COfmBqcb.js +1 -0
- package/dist/ui/assets/provider-store-access-CjPYCH1J.js +1 -0
- package/dist/ui/assets/{provider-UGTRh0sb.js → provider-vMORCKxQ.js} +1 -1
- package/dist/ui/assets/{providers-C-thqKYx.js → providers-CkeJGhLV.js} +1 -1
- package/dist/ui/assets/proxied-fetch-CKDBmEMl.js +2 -0
- package/dist/ui/assets/proxied-fetch-CM0jk_Mr.js +1 -0
- package/dist/ui/assets/py-realm-worker-hOFi8vjM.js +242 -0
- package/dist/ui/assets/{pyodide-BvA4c-59.js → pyodide-CqQhZelL.js} +2 -2
- package/dist/ui/assets/{quick-llm-pCxnbK4A.js → quick-llm-CksvHcNV.js} +1 -1
- package/dist/ui/assets/{remote-cache-BffIqHgi.js → remote-cache-BL6NRenp.js} +1 -1
- package/dist/ui/assets/remote-terminal-view-Qv9yhXQm.js +5 -0
- package/dist/ui/assets/remote-vfs-client-Z2qM01yP.js +1 -0
- package/dist/ui/assets/secret-env-DncfFSea.js +1 -0
- package/dist/ui/assets/secret-topology-bwXIzzAK.js +1 -0
- package/dist/ui/assets/secrets-bridge-client-BSipj-5f.js +2 -0
- package/dist/ui/assets/serial-picker-B6s4NeaB.js +1 -0
- package/dist/ui/assets/session-freezer-1tkfzApv.js +1 -0
- package/dist/ui/assets/shared-Bn9ltvMZ.js +1 -0
- package/dist/ui/assets/speak-Bri-_DZL.js +1 -0
- package/dist/ui/assets/speak-D9WnbzxD.js +2 -0
- package/dist/ui/assets/speech-assets-bridge-B8NqCAE8.js +1 -0
- package/dist/ui/assets/speech-assets-bridge-BUDIvdid.js +1 -0
- package/dist/ui/assets/{sprinkle-bridge-DrAUCEC_.js → sprinkle-bridge-Du2dCM8G.js} +1 -1
- package/dist/ui/assets/{sprinkle-manager-C3_2AgeR.js → sprinkle-manager-BhhaIwAz.js} +1 -1
- package/dist/ui/assets/{sql-wasm-Cu5Uk_6k.js → sql-wasm-BWbkWL23.js} +1 -1
- package/dist/ui/assets/{store-DSwnBJEJ.js → store-iS53cbT5.js} +1 -1
- package/dist/ui/assets/sudo-DH2Ru5S3.js +5 -0
- package/dist/ui/assets/tool-ui-DfXu6quJ.js +1 -0
- package/dist/ui/assets/tool-ui-t6ocn6AG.js +1 -0
- package/dist/ui/assets/transformers-env-2Uj9Fgd2.js +1 -0
- package/dist/ui/assets/transformers-env-CgaV7qpU.js +1 -0
- package/dist/ui/assets/transformers.web-BxHOGVSB.js +45 -0
- package/dist/ui/assets/transformers.web-CuUo4MLm.js +39 -0
- package/dist/ui/assets/{tray-leave-runtime-Dk3OSbMO.js → tray-leave-runtime-ND08HLeb.js} +1 -1
- package/dist/ui/assets/{upgrade-detection-Dcc69AtK.js → upgrade-detection-Y3TdGYus.js} +1 -1
- package/dist/ui/assets/usb-picker-D_K0weAY.js +1 -0
- package/dist/ui/assets/{voice-reply-UcYXGV0I.js → voice-reply-DfKSbOma.js} +1 -1
- package/dist/ui/assets/wc-attach-BvytbCpS.js +13 -0
- package/dist/ui/assets/{wc-detached-CJFrvQ5w.js → wc-detached-Bw0mLsiP.js} +1 -1
- package/dist/ui/assets/wc-extension-DS-jtOJw.js +2 -0
- package/dist/ui/assets/wc-live-B3kXelNl.js +253 -0
- package/dist/ui/assets/wc-nav-tMI3vvSL.js +2 -0
- package/dist/ui/assets/wc-onboarding-Dm8BUVRJ.js +2 -0
- package/dist/ui/assets/wc-permissions-mVh0SOdZ.js +3 -0
- package/dist/ui/assets/wc-permissions-providers-BufEXbhX.js +2 -0
- package/dist/ui/assets/wc-permissions-registry-CR1rTd2H.js +1 -0
- package/dist/ui/assets/wc-permissions-registry-Dx-BRiKK.js +1 -0
- package/dist/ui/assets/wc-placeholder-DEo1-1V5.js +4 -0
- package/dist/ui/assets/wc-settings-D3QCZnur.js +24 -0
- package/dist/ui/assets/{wc-shell-BGaEWRGh.js → wc-shell-DgOdmKyR.js} +603 -101
- package/dist/ui/assets/wc-sprinkles-D5si03_4.js +2 -0
- package/dist/ui/assets/wc-tray-lTqtwMFb.js +5 -0
- package/dist/ui/assets/whisper-engine-Emfsg6Pq.js +1 -0
- package/dist/ui/assets/whisper-session-Dt-B3KmT.js +2 -0
- package/dist/ui/assets/worker-D1KsWRGg.js +1 -1
- package/dist/ui/assets/writable-vfs-client-BKZGifKZ.js +1 -0
- package/dist/ui/assets/{xai-grok-BX1SWx3y.js → xai-grok-D4a_2yZf.js} +1 -1
- package/dist/ui/assets/{xai-grok-CggP425A.js → xai-grok-Dpq_7ZV8.js} +1 -1
- package/dist/ui/electron-overlay-entry.css +37 -0
- package/dist/ui/electron-overlay-entry.js +5853 -222
- package/dist/ui/index.html +7 -3
- package/dist/ui/llm-proxy-sw.js +1 -1
- package/dist/ui/packages/webapp/index.html +7 -3
- package/dist/ui/preview-sw.js +1 -1
- package/package.json +6 -1
- package/dist/ui/assets/__vite-browser-external-CM3Eme-n.js +0 -1
- package/dist/ui/assets/account-store-Dha2nLml.js +0 -38
- package/dist/ui/assets/account-store-DmjUSua_.js +0 -99
- package/dist/ui/assets/adobe-CpNl5eLk.js +0 -2
- package/dist/ui/assets/adobe-CtI7bDCt.js +0 -1
- package/dist/ui/assets/backend-local-CMfz45hs.js +0 -9
- package/dist/ui/assets/biome_wasm-DEjrJMqV.js +0 -1
- package/dist/ui/assets/bsh-watchdog-B27e-Og-.js +0 -74
- package/dist/ui/assets/cdn-url-builder-Cq7LLgru.js +0 -1
- package/dist/ui/assets/chunk-CMxvf4Kt.js +0 -1
- package/dist/ui/assets/common-ewBM5he1.js +0 -1
- package/dist/ui/assets/composer-speech-DYshRh0w.js +0 -1
- package/dist/ui/assets/dip-De30SVSa.js +0 -1
- package/dist/ui/assets/dist-DElqKLgF.js +0 -43
- package/dist/ui/assets/esp32-BTVUAltJ.js +0 -1
- package/dist/ui/assets/esp32c2-Cvhq9547.js +0 -1
- package/dist/ui/assets/esp32c3-D9lOBWYZ.js +0 -1
- package/dist/ui/assets/esp32c5-D2poFXyG.js +0 -1
- package/dist/ui/assets/esp32c6-Ct3LxBMw.js +0 -1
- package/dist/ui/assets/esp32c61-BsudQf3e.js +0 -1
- package/dist/ui/assets/esp32h2-CPO25efF.js +0 -1
- package/dist/ui/assets/esp32p4-GHiT8voO.js +0 -1
- package/dist/ui/assets/esp32s2-DrH4e7iJ.js +0 -1
- package/dist/ui/assets/esp32s3-BHbeScNz.js +0 -1
- package/dist/ui/assets/esp8266-DNz2CP4r.js +0 -1
- package/dist/ui/assets/github-DRvbws57.js +0 -2
- package/dist/ui/assets/github-DcwUCUyU.js +0 -1
- package/dist/ui/assets/hear-20YdcW5b.js +0 -1
- package/dist/ui/assets/hear-BOsXTls8.js +0 -1
- package/dist/ui/assets/js-realm-worker-BWFis6jC.js +0 -5
- package/dist/ui/assets/kernel-worker-DuaByjq4.js +0 -9820
- package/dist/ui/assets/kokoro-engine-CHIq9iyX.js +0 -2
- package/dist/ui/assets/kokoro-engine-CjyxHaAM.js +0 -1
- package/dist/ui/assets/magick-wasm-BvNy9LFP.js +0 -1
- package/dist/ui/assets/main-D-3iO2Pb.js +0 -24
- package/dist/ui/assets/mount-B60ugIMY.js +0 -1
- package/dist/ui/assets/mount-TPowGzXN.js +0 -2
- package/dist/ui/assets/mount-id-DtHfwjbZ.js +0 -1
- package/dist/ui/assets/mount-picker-popup-BORxgnGu.js +0 -1
- package/dist/ui/assets/new-session-BjrjaQDu.js +0 -2
- package/dist/ui/assets/nodejs-BQ9Oov1A.js +0 -1
- package/dist/ui/assets/oauth-bootstrap-D15vXH8k.js +0 -2
- package/dist/ui/assets/oauth-service-CoJ-pYVD.js +0 -1
- package/dist/ui/assets/oauth-service-D49nt7eJ.js +0 -1
- package/dist/ui/assets/panel-rpc-handlers-Ca3yEyOL.js +0 -2
- package/dist/ui/assets/preview-vfs-responder-dyQBWIl5.js +0 -1
- package/dist/ui/assets/provider-CT4MGofi.js +0 -2
- package/dist/ui/assets/provider-store-access-BHHITTJF.js +0 -1
- package/dist/ui/assets/provider-store-access-BSS9maA7.js +0 -1
- package/dist/ui/assets/proxied-fetch-BBO8HwcV.js +0 -1
- package/dist/ui/assets/py-realm-worker-BnG_DxBd.js +0 -242
- package/dist/ui/assets/remote-terminal-view-CSqiig2G.js +0 -6
- package/dist/ui/assets/remote-vfs-client-BwJhhtIV.js +0 -1
- package/dist/ui/assets/secret-env-DcfTe28K.js +0 -1
- package/dist/ui/assets/session-freezer-NFd-CALu.js +0 -1
- package/dist/ui/assets/setup-sudo-KPDfIsQ7.js +0 -1
- package/dist/ui/assets/shared-B7TdM-Ik.js +0 -1
- package/dist/ui/assets/speak-D511iTBd.js +0 -1
- package/dist/ui/assets/speak-EKtIqp6j.js +0 -1
- package/dist/ui/assets/sudo-B4yfntyh.js +0 -4
- package/dist/ui/assets/tool-ui-N76-EdVc.js +0 -1
- package/dist/ui/assets/tool-ui-YOPqzMmL.js +0 -1
- package/dist/ui/assets/transformers-env-6vj5CcH9.js +0 -1
- package/dist/ui/assets/transformers-env-O5Vtz_xj.js +0 -1
- package/dist/ui/assets/transformers.web-C9_H_wuQ.js +0 -37
- package/dist/ui/assets/transformers.web-DJfCkvxA.js +0 -43
- package/dist/ui/assets/typescript-qBO0Z4wm.js +0 -448
- package/dist/ui/assets/wc-attach-B62W7N_T.js +0 -13
- package/dist/ui/assets/wc-extension-C1CIBnT2.js +0 -2
- package/dist/ui/assets/wc-live-B3Dxlxlf.js +0 -253
- package/dist/ui/assets/wc-nav-DWMYNnDA.js +0 -2
- package/dist/ui/assets/wc-onboarding-DpKk5u_V.js +0 -2
- package/dist/ui/assets/wc-placeholder-CGPP_IEm.js +0 -4
- package/dist/ui/assets/wc-settings-DjqUSzpO.js +0 -24
- package/dist/ui/assets/wc-sprinkles-B5_aCIM5.js +0 -2
- package/dist/ui/assets/wc-tray-kVPhrwG1.js +0 -5
- package/dist/ui/assets/web-BMWiUYJ-.js +0 -1
- package/dist/ui/assets/whisper-session-D89gZWHf.js +0 -2
- package/dist/ui/assets/writable-vfs-client-DMYsajEE.js +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{ESP32C6ROM as e}from"./esp32c6-Ct3LxBMw.js";var t=class extends e{constructor(){super(...arguments),this.CHIP_NAME=`ESP32-C5`,this.IMAGE_CHIP_ID=23,this.BOOTLOADER_FLASH_OFFSET=8192,this.EFUSE_BASE=1611352064,this.EFUSE_BLOCK1_ADDR=this.EFUSE_BASE+68,this.MAC_EFUSE_REG=this.EFUSE_BASE+68,this.UART_CLKDIV_REG=1610612756,this.EFUSE_RD_REG_BASE=this.EFUSE_BASE+48,this.EFUSE_FORCE_USE_KEY_MANAGER_KEY_REG=this.EFUSE_BASE+52,this.EFUSE_FORCE_USE_KEY_MANAGER_KEY_SHIFT=10,this.FORCE_USE_KEY_MANAGER_VAL_XTS_AES_KEY=2,this.EFUSE_PURPOSE_KEY0_REG=this.EFUSE_BASE+52,this.EFUSE_PURPOSE_KEY0_SHIFT=22,this.EFUSE_PURPOSE_KEY1_REG=this.EFUSE_BASE+52,this.EFUSE_PURPOSE_KEY1_SHIFT=27,this.EFUSE_PURPOSE_KEY2_REG=this.EFUSE_BASE+56,this.EFUSE_PURPOSE_KEY2_SHIFT=0,this.EFUSE_PURPOSE_KEY3_REG=this.EFUSE_BASE+56,this.EFUSE_PURPOSE_KEY3_SHIFT=5,this.EFUSE_PURPOSE_KEY4_REG=this.EFUSE_BASE+56,this.EFUSE_PURPOSE_KEY4_SHIFT=10,this.EFUSE_PURPOSE_KEY5_REG=this.EFUSE_BASE+56,this.EFUSE_PURPOSE_KEY5_SHIFT=15,this.EFUSE_DIS_DOWNLOAD_MANUAL_ENCRYPT_REG=this.EFUSE_RD_REG_BASE,this.EFUSE_DIS_DOWNLOAD_MANUAL_ENCRYPT=1<<20,this.EFUSE_SPI_BOOT_CRYPT_CNT_REG=this.EFUSE_BASE+52,this.EFUSE_SPI_BOOT_CRYPT_CNT_MASK=7<<18,this.EFUSE_SECURE_BOOT_EN_REG=this.EFUSE_BASE+56,this.EFUSE_SECURE_BOOT_EN_MASK=1<<20,this.IROM_MAP_START=1107296256,this.IROM_MAP_END=1140850688,this.DROM_MAP_START=1107296256,this.DROM_MAP_END=1140850688,this.PCR_SYSCLK_CONF_REG=1611227408,this.PCR_SYSCLK_XTAL_FREQ_V=127<<24,this.PCR_SYSCLK_XTAL_FREQ_S=24,this.XTAL_CLK_DIVIDER=1,this.UARTDEV_BUF_NO=1082520852,this.CHIP_DETECT_MAGIC_VALUE=[285294703,1675706479,1607549039],this.FLASH_FREQUENCY={"80m":15,"40m":0,"20m":2},this.MEMORY_MAP=[[0,65536,`PADDING`],[1107296256,1140850688,`DROM`],[1082130432,1082523648,`DRAM`],[1082130432,1082523648,`BYTE_ACCESSIBLE`],[1073979392,1074003968,`DROM_MASK`],[1073741824,1073979392,`IROM_MASK`],[1107296256,1140850688,`IROM`],[1082130432,1082523648,`IRAM`],[1342177280,1342193664,`RTC_IRAM`],[1342177280,1342193664,`RTC_DRAM`],[1611653120,1611661312,`MEM_INTERNAL2`]],this.UF2_FAMILY_ID=4145808195,this.EFUSE_MAX_KEY=5,this.PURPOSE_VAL_XTS_AES128_KEY=4,this.KEY_PURPOSES={0:`USER/EMPTY`,1:`ECDSA_KEY`,4:`XTS_AES_128_KEY`,5:`HMAC_DOWN_ALL`,6:`HMAC_DOWN_JTAG`,7:`HMAC_DOWN_DIGITAL_SIGNATURE`,8:`HMAC_UP`,9:`SECURE_BOOT_DIGEST0`,10:`SECURE_BOOT_DIGEST1`,11:`SECURE_BOOT_DIGEST2`,12:`KM_INIT_KEY`,15:`XTS_AES_128_PSRAM_KEY`,16:`ECDSA_KEY_P192`,17:`ECDSA_KEY_P384_L`,18:`ECDSA_KEY_P384_H`}}async getPkgVersion(e){return await e.readReg(this.EFUSE_BLOCK1_ADDR+8)>>26&7}async getMinorChipVersion(e){return await e.readReg(this.EFUSE_BLOCK1_ADDR+8)>>0&15}async getMajorChipVersion(e){return await e.readReg(this.EFUSE_BLOCK1_ADDR+8)>>4&3}async getChipDescription(e){let t=await this.getPkgVersion(e),n;n=t===0?`ESP32-C5`:`unknown ESP32-C5`;let r=await this.getMajorChipVersion(e),i=await this.getMinorChipVersion(e);return`${n} (revision v${r}.${i})`}async getChipFeatures(e){return[`Wi-Fi 6 (dual-band)`,`BT 5 (LE)`,`IEEE802.15.4`,`Single Core + LP Core`,`240MHz`]}async getCrystalFreq(e){let t=await e.readReg(this.UART_CLKDIV_REG)&this.UART_CLKDIV_MASK,n=e.transport.baudrate*t/1e6/this.XTAL_CLK_DIVIDER,r;return r=n>45?48:n>33?40:26,Math.abs(r-n)>1&&e.info(`WARNING: Unsupported crystal in use`),r}async getCrystalFreqRomExpect(e){return(await e.readReg(this.PCR_SYSCLK_CONF_REG)&this.PCR_SYSCLK_XTAL_FREQ_V)>>this.PCR_SYSCLK_XTAL_FREQ_S}async getKeyBlockPurpose(e,t){if(t<0||t>this.EFUSE_MAX_KEY)throw Error(`Valid key block numbers must be in range 0-${this.EFUSE_MAX_KEY}`);let[n,r]=[[this.EFUSE_PURPOSE_KEY0_REG,this.EFUSE_PURPOSE_KEY0_SHIFT],[this.EFUSE_PURPOSE_KEY1_REG,this.EFUSE_PURPOSE_KEY1_SHIFT],[this.EFUSE_PURPOSE_KEY2_REG,this.EFUSE_PURPOSE_KEY2_SHIFT],[this.EFUSE_PURPOSE_KEY3_REG,this.EFUSE_PURPOSE_KEY3_SHIFT],[this.EFUSE_PURPOSE_KEY4_REG,this.EFUSE_PURPOSE_KEY4_SHIFT],[this.EFUSE_PURPOSE_KEY5_REG,this.EFUSE_PURPOSE_KEY5_SHIFT]][t];return await e.readReg(n)>>r&31}async isFlashEncryptionKeyValid(e){let t=[];for(let n=0;n<=this.EFUSE_MAX_KEY;n++){let r=await this.getKeyBlockPurpose(e,n);t.push(r)}return t.some(e=>e===this.PURPOSE_VAL_XTS_AES128_KEY)?!0:(await e.readReg(this.EFUSE_FORCE_USE_KEY_MANAGER_KEY_REG)>>this.EFUSE_FORCE_USE_KEY_MANAGER_KEY_SHIFT&this.FORCE_USE_KEY_MANAGER_VAL_XTS_AES_KEY)!==0}checkSpiConnection(e,t){if(!t.every(e=>e>=0&&e<=28))throw Error(`SPI Pin numbers must be in the range 0-28.`);t.some(e=>e===13||e===14)&&e.info(`GPIO pins 13 and 14 are used by USB-Serial/JTAG, consider using other pins for SPI flash connection.`)}async usesUsbJtagSerial(e){let t=this.UARTDEV_BUF_NO;return(await e.readReg(t)&255)==3}async watchdogReset(e){throw e.info(`Hard resetting with a watchdog...`),Error(`watchdogReset not yet implemented for ESP32-C5`)}async changeBaud(e){if(!e.IS_STUB){let t=await this.getCrystalFreqRomExpect(e),n=await this.getCrystalFreq(e);e.info(`ROM expects crystal freq: ${t} MHz, detected ${n} MHz.`),(n===48&&t===40||n===40&&t===48)&&e.info(`Crystal frequency mismatch detected. Baud rate adjustment may be needed but is not fully implemented in this version.`)}await e.changeBaud()}};export{t as ESP32C5ROM};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./esp32c3-D9lOBWYZ.js";var t=class extends e{constructor(){super(...arguments),this.CHIP_NAME=`ESP32-C6`,this.IMAGE_CHIP_ID=13,this.EFUSE_BASE=1611335680,this.EFUSE_BLOCK1_ADDR=this.EFUSE_BASE+68,this.MAC_EFUSE_REG=this.EFUSE_BASE+68,this.UART_CLKDIV_REG=1072955412,this.UART_CLKDIV_MASK=1048575,this.UART_DATE_REG_ADDR=1610612860,this.FLASH_WRITE_SIZE=1024,this.BOOTLOADER_FLASH_OFFSET=0,this.SPI_REG_BASE=1610620928,this.SPI_USR_OFFS=24,this.SPI_USR1_OFFS=28,this.SPI_USR2_OFFS=32,this.SPI_MOSI_DLEN_OFFS=36,this.SPI_MISO_DLEN_OFFS=40,this.SPI_W0_OFFS=88,this.IROM_MAP_START=1107296256,this.IROM_MAP_END=1115684864,this.MEMORY_MAP=[[0,65536,`PADDING`],[1107296256,1124073472,`DROM`],[1082130432,1082654720,`DRAM`],[1082130432,1082654720,`BYTE_ACCESSIBLE`],[1074048e3,1074069504,`DROM_MASK`],[1073741824,1074048e3,`IROM_MASK`],[1107296256,1124073472,`IROM`],[1082130432,1082654720,`IRAM`],[1342177280,1342193664,`RTC_IRAM`],[1342177280,1342193664,`RTC_DRAM`],[1611653120,1611661312,`MEM_INTERNAL2`]]}async getPkgVersion(e){let t=this.EFUSE_BASE+68+12;return await e.readReg(t)>>21&7}async getChipRevision(e){let t=this.EFUSE_BASE+68+12;return(await e.readReg(t)&7<<18)>>18}async getChipDescription(e){let t;t=await this.getPkgVersion(e)===0?`ESP32-C6`:`unknown ESP32-C6`;let n=await this.getChipRevision(e);return t+=` (revision `+n+`)`,t}async getChipFeatures(e){return[`Wi-Fi 6`,`BT 5`,`IEEE802.15.4`]}async getCrystalFreq(e){return 40}_d2h(e){let t=(+e).toString(16);return t.length===1?`0`+t:t}async readMac(e){let t=await e.readReg(this.MAC_EFUSE_REG);t>>>=0;let n=await e.readReg(this.MAC_EFUSE_REG+4);n=n>>>0&65535;let r=new Uint8Array(6);return r[0]=n>>8&255,r[1]=n&255,r[2]=t>>24&255,r[3]=t>>16&255,r[4]=t>>8&255,r[5]=t&255,this._d2h(r[0])+`:`+this._d2h(r[1])+`:`+this._d2h(r[2])+`:`+this._d2h(r[3])+`:`+this._d2h(r[4])+`:`+this._d2h(r[5])}getEraseSize(e,t){return t}};export{t as ESP32C6ROM};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{ESP32C6ROM as e}from"./esp32c6-Ct3LxBMw.js";var t=class extends e{constructor(){super(...arguments),this.CHIP_NAME=`ESP32-C61`,this.IMAGE_CHIP_ID=20,this.CHIP_DETECT_MAGIC_VALUE=[871374959,606167151],this.UART_DATE_REG_ADDR=1610612860,this.EFUSE_BASE=1611352064,this.EFUSE_BLOCK1_ADDR=this.EFUSE_BASE+68,this.MAC_EFUSE_REG=this.EFUSE_BASE+68,this.EFUSE_RD_REG_BASE=this.EFUSE_BASE+48,this.EFUSE_PURPOSE_KEY0_REG=this.EFUSE_BASE+52,this.EFUSE_PURPOSE_KEY0_SHIFT=0,this.EFUSE_PURPOSE_KEY1_REG=this.EFUSE_BASE+52,this.EFUSE_PURPOSE_KEY1_SHIFT=4,this.EFUSE_PURPOSE_KEY2_REG=this.EFUSE_BASE+52,this.EFUSE_PURPOSE_KEY2_SHIFT=8,this.EFUSE_PURPOSE_KEY3_REG=this.EFUSE_BASE+52,this.EFUSE_PURPOSE_KEY3_SHIFT=12,this.EFUSE_PURPOSE_KEY4_REG=this.EFUSE_BASE+52,this.EFUSE_PURPOSE_KEY4_SHIFT=16,this.EFUSE_PURPOSE_KEY5_REG=this.EFUSE_BASE+52,this.EFUSE_PURPOSE_KEY5_SHIFT=20,this.EFUSE_DIS_DOWNLOAD_MANUAL_ENCRYPT_REG=this.EFUSE_RD_REG_BASE,this.EFUSE_DIS_DOWNLOAD_MANUAL_ENCRYPT=1<<20,this.EFUSE_SPI_BOOT_CRYPT_CNT_REG=this.EFUSE_BASE+48,this.EFUSE_SPI_BOOT_CRYPT_CNT_MASK=7<<23,this.EFUSE_SECURE_BOOT_EN_REG=this.EFUSE_BASE+52,this.EFUSE_SECURE_BOOT_EN_MASK=1<<26,this.FLASH_FREQUENCY={"80m":15,"40m":0,"20m":2},this.IROM_MAP_START=1107296256,this.IROM_MAP_END=1115684864,this.MEMORY_MAP=[[0,65536,`PADDING`],[1098907648,1107296256,`DROM`],[1082130432,1082523648,`DRAM`],[1082130432,1082523648,`BYTE_ACCESSIBLE`],[1074048e3,1074069504,`DROM_MASK`],[1073741824,1074048e3,`IROM_MASK`],[1090519040,1098907648,`IROM`],[1082130432,1082523648,`IRAM`],[1342177280,1342193664,`RTC_IRAM`],[1342177280,1342193664,`RTC_DRAM`],[1611653120,1611661312,`MEM_INTERNAL2`]],this.UF2_FAMILY_ID=2010665156,this.EFUSE_MAX_KEY=5,this.KEY_PURPOSES={0:`USER/EMPTY`,1:`ECDSA_KEY`,2:`XTS_AES_256_KEY_1`,3:`XTS_AES_256_KEY_2`,4:`XTS_AES_128_KEY`,5:`HMAC_DOWN_ALL`,6:`HMAC_DOWN_JTAG`,7:`HMAC_DOWN_DIGITAL_SIGNATURE`,8:`HMAC_UP`,9:`SECURE_BOOT_DIGEST0`,10:`SECURE_BOOT_DIGEST1`,11:`SECURE_BOOT_DIGEST2`,12:`KM_INIT_KEY`,13:`XTS_AES_256_KEY_1_PSRAM`,14:`XTS_AES_256_KEY_2_PSRAM`,15:`XTS_AES_128_KEY_PSRAM`}}async getPkgVersion(e){return await e.readReg(this.EFUSE_BLOCK1_ADDR+8)>>26&7}async getMinorChipVersion(e){return await e.readReg(this.EFUSE_BLOCK1_ADDR+8)>>0&15}async getMajorChipVersion(e){return await e.readReg(this.EFUSE_BLOCK1_ADDR+8)>>4&3}async getChipDescription(e){let t=await this.getPkgVersion(e),n;n=t===0?`ESP32-C61`:`unknown ESP32-C61`;let r=await this.getMajorChipVersion(e),i=await this.getMinorChipVersion(e);return`${n} (revision v${r}.${i})`}async getChipFeatures(e){return[`WiFi 6`,`BT 5`]}async readMac(e){let t=await e.readReg(this.MAC_EFUSE_REG);t>>>=0;let n=await e.readReg(this.MAC_EFUSE_REG+4);n=n>>>0&65535;let r=new Uint8Array(6);return r[0]=n>>8&255,r[1]=n&255,r[2]=t>>24&255,r[3]=t>>16&255,r[4]=t>>8&255,r[5]=t&255,this._d2h(r[0])+`:`+this._d2h(r[1])+`:`+this._d2h(r[2])+`:`+this._d2h(r[3])+`:`+this._d2h(r[4])+`:`+this._d2h(r[5])}};export{t as ESP32C61ROM};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{ESP32C6ROM as e}from"./esp32c6-Ct3LxBMw.js";var t=class extends e{constructor(){super(...arguments),this.CHIP_NAME=`ESP32-H2`,this.IMAGE_CHIP_ID=16,this.EFUSE_BASE=1611335680,this.EFUSE_BLOCK1_ADDR=this.EFUSE_BASE+68,this.MAC_EFUSE_REG=this.EFUSE_BASE+68,this.UART_CLKDIV_REG=1072955412,this.UART_CLKDIV_MASK=1048575,this.UART_DATE_REG_ADDR=1610612860,this.FLASH_WRITE_SIZE=1024,this.BOOTLOADER_FLASH_OFFSET=0,this.SPI_REG_BASE=1610620928,this.SPI_USR_OFFS=24,this.SPI_USR1_OFFS=28,this.SPI_USR2_OFFS=32,this.SPI_MOSI_DLEN_OFFS=36,this.SPI_MISO_DLEN_OFFS=40,this.SPI_W0_OFFS=88,this.USB_RAM_BLOCK=2048,this.UARTDEV_BUF_NO_USB=3,this.UARTDEV_BUF_NO=1070526796,this.IROM_MAP_START=1107296256,this.IROM_MAP_END=1115684864,this.MEMORY_MAP=[[0,65536,`PADDING`],[1107296256,1124073472,`DROM`],[1082130432,1082654720,`DRAM`],[1082130432,1082654720,`BYTE_ACCESSIBLE`],[1074048e3,1074069504,`DROM_MASK`],[1073741824,1074048e3,`IROM_MASK`],[1107296256,1124073472,`IROM`],[1082130432,1082654720,`IRAM`],[1342177280,1342193664,`RTC_IRAM`],[1342177280,1342193664,`RTC_DRAM`],[1611653120,1611661312,`MEM_INTERNAL2`]]}async getPkgVersion(e){return await e.readReg(this.EFUSE_BLOCK1_ADDR+16)>>0&7}async getMinorChipVersion(e){return await e.readReg(this.EFUSE_BLOCK1_ADDR+12)>>18&7}async getMajorChipVersion(e){return await e.readReg(this.EFUSE_BLOCK1_ADDR+12)>>21&3}async getChipDescription(e){let t=await this.getPkgVersion(e),n;n=t===0?`ESP32-H2`:`unknown ESP32-H2`;let r=await this.getMajorChipVersion(e),i=await this.getMinorChipVersion(e);return`${n} (revision v${r}.${i})`}async getChipFeatures(e){return[`BT 5 (LE)`,`IEEE802.15.4`,`Single Core`,`96MHz`]}async getCrystalFreq(e){return 32}_d2h(e){let t=(+e).toString(16);return t.length===1?`0`+t:t}async postConnect(e){let t=await e.readReg(this.UARTDEV_BUF_NO)&255;e.debug(`In _post_connect `+t),t==this.UARTDEV_BUF_NO_USB&&(e.ESP_RAM_BLOCK=this.USB_RAM_BLOCK)}async readMac(e){let t=await e.readReg(this.MAC_EFUSE_REG);t>>>=0;let n=await e.readReg(this.MAC_EFUSE_REG+4);n=n>>>0&65535;let r=new Uint8Array(6);return r[0]=n>>8&255,r[1]=n&255,r[2]=t>>24&255,r[3]=t>>16&255,r[4]=t>>8&255,r[5]=t&255,this._d2h(r[0])+`:`+this._d2h(r[1])+`:`+this._d2h(r[2])+`:`+this._d2h(r[3])+`:`+this._d2h(r[4])+`:`+this._d2h(r[5])}getEraseSize(e,t){return t}};export{t as ESP32H2ROM};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./esp32-BTVUAltJ.js";var t=class extends e{constructor(){super(...arguments),this.CHIP_NAME=`ESP32-P4`,this.IMAGE_CHIP_ID=18,this.IROM_MAP_START=1073741824,this.IROM_MAP_END=1275068416,this.DROM_MAP_START=1073741824,this.DROM_MAP_END=1275068416,this.BOOTLOADER_FLASH_OFFSET=8192,this.CHIP_DETECT_MAGIC_VALUE=[0,182303440],this.UART_DATE_REG_ADDR=1343004812,this.EFUSE_BASE=1343410176,this.EFUSE_BLOCK1_ADDR=this.EFUSE_BASE+68,this.MAC_EFUSE_REG=this.EFUSE_BASE+68,this.SPI_REG_BASE=1342754816,this.SPI_USR_OFFS=24,this.SPI_USR1_OFFS=28,this.SPI_USR2_OFFS=32,this.SPI_MOSI_DLEN_OFFS=36,this.SPI_MISO_DLEN_OFFS=40,this.SPI_W0_OFFS=88,this.SPI_ADDR_REG_MSB=!1,this.USES_MAGIC_VALUE=!1,this.EFUSE_RD_REG_BASE=this.EFUSE_BASE+48,this.EFUSE_FORCE_USE_KEY_MANAGER_KEY_REG=this.EFUSE_BASE+52,this.EFUSE_FORCE_USE_KEY_MANAGER_KEY_SHIFT=9,this.FORCE_USE_KEY_MANAGER_VAL_XTS_AES_KEY=2,this.EFUSE_PURPOSE_KEY0_REG=this.EFUSE_BASE+52,this.EFUSE_PURPOSE_KEY0_SHIFT=24,this.EFUSE_PURPOSE_KEY1_REG=this.EFUSE_BASE+52,this.EFUSE_PURPOSE_KEY1_SHIFT=28,this.EFUSE_PURPOSE_KEY2_REG=this.EFUSE_BASE+56,this.EFUSE_PURPOSE_KEY2_SHIFT=0,this.EFUSE_PURPOSE_KEY3_REG=this.EFUSE_BASE+56,this.EFUSE_PURPOSE_KEY3_SHIFT=4,this.EFUSE_PURPOSE_KEY4_REG=this.EFUSE_BASE+56,this.EFUSE_PURPOSE_KEY4_SHIFT=8,this.EFUSE_PURPOSE_KEY5_REG=this.EFUSE_BASE+56,this.EFUSE_PURPOSE_KEY5_SHIFT=12,this.EFUSE_DIS_DOWNLOAD_MANUAL_ENCRYPT_REG=this.EFUSE_RD_REG_BASE,this.EFUSE_DIS_DOWNLOAD_MANUAL_ENCRYPT=1<<20,this.EFUSE_SPI_BOOT_CRYPT_CNT_REG=this.EFUSE_BASE+52,this.EFUSE_SPI_BOOT_CRYPT_CNT_MASK=7<<18,this.EFUSE_SECURE_BOOT_EN_REG=this.EFUSE_BASE+56,this.EFUSE_SECURE_BOOT_EN_MASK=1<<20,this.PURPOSE_VAL_XTS_AES256_KEY_1=2,this.PURPOSE_VAL_XTS_AES256_KEY_2=3,this.PURPOSE_VAL_XTS_AES128_KEY=4,this.SUPPORTS_ENCRYPTED_FLASH=!0,this.FLASH_ENCRYPTED_WRITE_ALIGN=16,this.USB_RAM_BLOCK=2048,this.GPIO_STRAP_REG=1343094840,this.GPIO_STRAP_SPI_BOOT_MASK=8,this.RTC_CNTL_OPTION1_REG=1343291400,this.RTC_CNTL_FORCE_DOWNLOAD_BOOT_MASK=4,this.DR_REG_LPAON_BASE=1343291392,this.DR_REG_PMU_BASE=this.DR_REG_LPAON_BASE+20480,this.DR_REG_LP_SYS_BASE=this.DR_REG_LPAON_BASE+0,this.LP_SYSTEM_REG_ANA_XPD_PAD_GROUP_REG=this.DR_REG_LP_SYS_BASE+268,this.PMU_EXT_LDO_P0_0P1A_ANA_REG=this.DR_REG_PMU_BASE+444,this.PMU_ANA_0P1A_EN_CUR_LIM_0=1<<27,this.PMU_EXT_LDO_P0_0P1A_REG=this.DR_REG_PMU_BASE+440,this.PMU_0P1A_TARGET0_0=255<<23,this.PMU_0P1A_FORCE_TIEH_SEL_0=128,this.PMU_DATE_REG=this.DR_REG_PMU_BASE+1020,this.UARTDEV_BUF_NO_USB_OTG=5,this.UARTDEV_BUF_NO_USB_JTAG_SERIAL=6,this.DR_REG_LP_WDT_BASE=1343315968,this.RTC_CNTL_WDTCONFIG0_REG=this.DR_REG_LP_WDT_BASE+0,this.RTC_CNTL_WDTCONFIG1_REG=this.DR_REG_LP_WDT_BASE+4,this.RTC_CNTL_WDTWPROTECT_REG=this.DR_REG_LP_WDT_BASE+24,this.RTC_CNTL_WDT_WKEY=1356348065,this.RTC_CNTL_SWD_CONF_REG=this.DR_REG_LP_WDT_BASE+28,this.RTC_CNTL_SWD_AUTO_FEED_EN=1<<18,this.RTC_CNTL_SWD_WPROTECT_REG=this.DR_REG_LP_WDT_BASE+32,this.RTC_CNTL_SWD_WKEY=1356348065,this.MEMORY_MAP=[[0,65536,`PADDING`],[1073741824,1275068416,`DROM`],[1341128704,1341784064,`DRAM`],[1341128704,1341784064,`BYTE_ACCESSIBLE`],[1337982976,1338114048,`DROM_MASK`],[1337982976,1338114048,`IROM_MASK`],[1073741824,1275068416,`IROM`],[1341128704,1341784064,`IRAM`],[1343258624,1343291392,`RTC_IRAM`],[1343258624,1343291392,`RTC_DRAM`],[1611653120,1611661312,`MEM_INTERNAL2`]],this.UF2_FAMILY_ID=1026592404,this.EFUSE_MAX_KEY=5,this.KEY_PURPOSES={0:`USER/EMPTY`,1:`ECDSA_KEY`,2:`XTS_AES_256_KEY_1`,3:`XTS_AES_256_KEY_2`,4:`XTS_AES_128_KEY`,5:`HMAC_DOWN_ALL`,6:`HMAC_DOWN_JTAG`,7:`HMAC_DOWN_DIGITAL_SIGNATURE`,8:`HMAC_UP`,9:`SECURE_BOOT_DIGEST0`,10:`SECURE_BOOT_DIGEST1`,11:`SECURE_BOOT_DIGEST2`,12:`KM_INIT_KEY`}}async getPkgVersion(e){let t=this.EFUSE_BLOCK1_ADDR+8;return await e.readReg(t)>>20&7}async getMinorChipVersion(e){let t=this.EFUSE_BLOCK1_ADDR+8;return await e.readReg(t)>>0&15}async getMajorChipVersion(e){let t=this.EFUSE_BLOCK1_ADDR+8,n=await e.readReg(t);return(n>>23&1)<<2|n>>4&3}async getChipRevision(e){let t=await this.getMajorChipVersion(e),n=await this.getMinorChipVersion(e);return t*100+n}async getStubJsonPath(e){return await this.getChipRevision(e)<300?`./targets/stub_flasher/stub_flasher_32p4rc1.json`:`./targets/stub_flasher/stub_flasher_32p4.json`}async getChipDescription(e){return`${{0:`ESP32-P4`}[await this.getPkgVersion(e)]||`Unknown ESP32-P4`} (revision v${await this.getMajorChipVersion(e)}.${await this.getMinorChipVersion(e)})`}async getChipFeatures(e){return[`High-Performance MCU`]}async getCrystalFreq(e){return 40}async getFlashVoltage(e){}async overrideVddsdio(e){e.debug(`VDD_SDIO overrides are not supported for ESP32-P4`)}async readMac(e){let t=await e.readReg(this.MAC_EFUSE_REG);t>>>=0;let n=await e.readReg(this.MAC_EFUSE_REG+4);n=n>>>0&65535;let r=new Uint8Array(6);return r[0]=n>>8&255,r[1]=n&255,r[2]=t>>24&255,r[3]=t>>16&255,r[4]=t>>8&255,r[5]=t&255,this._d2h(r[0])+`:`+this._d2h(r[1])+`:`+this._d2h(r[2])+`:`+this._d2h(r[3])+`:`+this._d2h(r[4])+`:`+this._d2h(r[5])}async getFlashCryptConfig(e){}async getSecureBootEnabled(e){return(await e.readReg(this.EFUSE_SECURE_BOOT_EN_REG)&this.EFUSE_SECURE_BOOT_EN_MASK)!==0}async getUartdevBufNo(e){return(await this.getChipRevision(e)<300?1341390512:1341914800)+24}async usesUsbOtg(e){let t=await this.getUartdevBufNo(e);return(await e.readReg(t)&255)===this.UARTDEV_BUF_NO_USB_OTG}async usesUsbJtagSerial(e){let t=await this.getUartdevBufNo(e);return(await e.readReg(t)&255)===this.UARTDEV_BUF_NO_USB_JTAG_SERIAL}async getKeyBlockPurpose(e,t){if(t<0||t>this.EFUSE_MAX_KEY){e.debug(`Valid key block numbers must be in range 0-${this.EFUSE_MAX_KEY}`);return}let[n,r]=[[this.EFUSE_PURPOSE_KEY0_REG,this.EFUSE_PURPOSE_KEY0_SHIFT],[this.EFUSE_PURPOSE_KEY1_REG,this.EFUSE_PURPOSE_KEY1_SHIFT],[this.EFUSE_PURPOSE_KEY2_REG,this.EFUSE_PURPOSE_KEY2_SHIFT],[this.EFUSE_PURPOSE_KEY3_REG,this.EFUSE_PURPOSE_KEY3_SHIFT],[this.EFUSE_PURPOSE_KEY4_REG,this.EFUSE_PURPOSE_KEY4_SHIFT],[this.EFUSE_PURPOSE_KEY5_REG,this.EFUSE_PURPOSE_KEY5_SHIFT]][t];return await e.readReg(n)>>r&15}async isFlashEncryptionKeyValid(e){let t=[];for(let n=0;n<=this.EFUSE_MAX_KEY;n++){let r=await this.getKeyBlockPurpose(e,n);t.push(r)}return t.some(e=>e===this.PURPOSE_VAL_XTS_AES128_KEY)||t.some(e=>e===this.PURPOSE_VAL_XTS_AES256_KEY_1)&&t.some(e=>e===this.PURPOSE_VAL_XTS_AES256_KEY_2)?!0:(await e.readReg(this.EFUSE_FORCE_USE_KEY_MANAGER_KEY_REG)>>this.EFUSE_FORCE_USE_KEY_MANAGER_KEY_SHIFT&this.FORCE_USE_KEY_MANAGER_VAL_XTS_AES_KEY)!==0}async postConnect(e){await this.usesUsbOtg(e)&&(e.ESP_RAM_BLOCK=this.USB_RAM_BLOCK),e.IS_STUB||await this.disableWatchdogs(e)}async disableWatchdogs(e){if(await this.usesUsbJtagSerial(e)){await e.writeReg(this.RTC_CNTL_WDTWPROTECT_REG,this.RTC_CNTL_WDT_WKEY),await e.writeReg(this.RTC_CNTL_WDTCONFIG0_REG,0),await e.writeReg(this.RTC_CNTL_WDTWPROTECT_REG,0),await e.writeReg(this.RTC_CNTL_SWD_WPROTECT_REG,this.RTC_CNTL_SWD_WKEY);let t=await e.readReg(this.RTC_CNTL_SWD_CONF_REG);await e.writeReg(this.RTC_CNTL_SWD_CONF_REG,t|this.RTC_CNTL_SWD_AUTO_FEED_EN),await e.writeReg(this.RTC_CNTL_SWD_WPROTECT_REG,0)}}checkSpiConnection(e,t){if(!t.every(e=>e>=0&&e<=54))throw Error(`SPI Pin numbers must be in the range 0-54.`);t.some(e=>e===24||e===25)&&e.debug(`GPIO pins 24 and 25 are used by USB-Serial/JTAG, consider using other pins for SPI flash connection.`)}async watchdogReset(e){e.info(`Hard resetting with a watchdog...`),await e.writeReg(this.RTC_CNTL_WDTWPROTECT_REG,this.RTC_CNTL_WDT_WKEY),await e.writeReg(this.RTC_CNTL_WDTCONFIG1_REG,2e3),await e.writeReg(this.RTC_CNTL_WDTCONFIG0_REG,-805306110),await e.writeReg(this.RTC_CNTL_WDTWPROTECT_REG,0),await new Promise(e=>setTimeout(e,500))}async powerOnFlash(e){if(await this.getChipRevision(e)<=300)return;await e.writeReg(this.LP_SYSTEM_REG_ANA_XPD_PAD_GROUP_REG,1),await new Promise(e=>setTimeout(e,10));let t=await e.readReg(this.PMU_EXT_LDO_P0_0P1A_ANA_REG);await e.writeReg(this.PMU_EXT_LDO_P0_0P1A_ANA_REG,t|this.PMU_ANA_0P1A_EN_CUR_LIM_0),t=await e.readReg(this.PMU_EXT_LDO_P0_0P1A_REG),await e.writeReg(this.PMU_EXT_LDO_P0_0P1A_REG,t|this.PMU_0P1A_FORCE_TIEH_SEL_0),t=await e.readReg(this.PMU_DATE_REG),await e.writeReg(this.PMU_DATE_REG,t|3),await new Promise(e=>setTimeout(e,50)),t=await e.readReg(this.PMU_EXT_LDO_P0_0P1A_ANA_REG),await e.writeReg(this.PMU_EXT_LDO_P0_0P1A_ANA_REG,t&~this.PMU_ANA_0P1A_EN_CUR_LIM_0),t=await e.readReg(this.PMU_EXT_LDO_P0_0P1A_REG),await e.writeReg(this.PMU_EXT_LDO_P0_0P1A_REG,t&~this.PMU_0P1A_TARGET0_0),t=await e.readReg(this.PMU_EXT_LDO_P0_0P1A_REG),await e.writeReg(this.PMU_EXT_LDO_P0_0P1A_REG,t|128),t=await e.readReg(this.PMU_EXT_LDO_P0_0P1A_REG),await e.writeReg(this.PMU_EXT_LDO_P0_0P1A_REG,t&~this.PMU_0P1A_FORCE_TIEH_SEL_0),await new Promise(e=>setTimeout(e,1800))}};export{t as ESP32P4ROM};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./esp32-BTVUAltJ.js";var t=class extends e{constructor(){super(...arguments),this.CHIP_NAME=`ESP32-S2`,this.IMAGE_CHIP_ID=2,this.IROM_MAP_START=1074266112,this.IROM_MAP_END=1085800448,this.DROM_MAP_START=1056964608,this.DROM_MAP_END=1061093376,this.CHIP_DETECT_MAGIC_VALUE=[1990],this.SPI_REG_BASE=1061167104,this.SPI_USR_OFFS=24,this.SPI_USR1_OFFS=28,this.SPI_USR2_OFFS=32,this.SPI_MOSI_DLEN_OFFS=36,this.SPI_MISO_DLEN_OFFS=40,this.SPI_W0_OFFS=88,this.SPI_ADDR_REG_MSB=!1,this.MAC_EFUSE_REG=1061265476,this.UART_CLKDIV_REG=1061158932,this.SUPPORTS_ENCRYPTED_FLASH=!0,this.FLASH_ENCRYPTED_WRITE_ALIGN=16,this.EFUSE_BASE=1061265408,this.EFUSE_RD_REG_BASE=this.EFUSE_BASE+48,this.EFUSE_BLOCK1_ADDR=this.EFUSE_BASE+68,this.EFUSE_BLOCK2_ADDR=this.EFUSE_BASE+92,this.EFUSE_PURPOSE_KEY0_REG=this.EFUSE_BASE+52,this.EFUSE_PURPOSE_KEY0_SHIFT=24,this.EFUSE_PURPOSE_KEY1_REG=this.EFUSE_BASE+52,this.EFUSE_PURPOSE_KEY1_SHIFT=28,this.EFUSE_PURPOSE_KEY2_REG=this.EFUSE_BASE+56,this.EFUSE_PURPOSE_KEY2_SHIFT=0,this.EFUSE_PURPOSE_KEY3_REG=this.EFUSE_BASE+56,this.EFUSE_PURPOSE_KEY3_SHIFT=4,this.EFUSE_PURPOSE_KEY4_REG=this.EFUSE_BASE+56,this.EFUSE_PURPOSE_KEY4_SHIFT=8,this.EFUSE_PURPOSE_KEY5_REG=this.EFUSE_BASE+56,this.EFUSE_PURPOSE_KEY5_SHIFT=12,this.EFUSE_DIS_DOWNLOAD_MANUAL_ENCRYPT_REG=this.EFUSE_RD_REG_BASE,this.EFUSE_DIS_DOWNLOAD_MANUAL_ENCRYPT=1<<19,this.EFUSE_SPI_BOOT_CRYPT_CNT_REG=this.EFUSE_BASE+52,this.EFUSE_SPI_BOOT_CRYPT_CNT_MASK=7<<18,this.EFUSE_SECURE_BOOT_EN_REG=this.EFUSE_BASE+56,this.EFUSE_SECURE_BOOT_EN_MASK=1<<20,this.EFUSE_RD_REPEAT_DATA3_REG=this.EFUSE_BASE+60,this.EFUSE_RD_REPEAT_DATA3_REG_FLASH_TYPE_MASK=512,this.PURPOSE_VAL_XTS_AES256_KEY_1=2,this.PURPOSE_VAL_XTS_AES256_KEY_2=3,this.PURPOSE_VAL_XTS_AES128_KEY=4,this.UARTDEV_BUF_NO=1073741076,this.UARTDEV_BUF_NO_USB_OTG=2,this.USB_RAM_BLOCK=2048,this.GPIO_STRAP_REG=1061175352,this.GPIO_STRAP_SPI_BOOT_MASK=8,this.GPIO_STRAP_VDDSPI_MASK=16,this.RTC_CNTL_OPTION1_REG=1061191976,this.RTC_CNTL_FORCE_DOWNLOAD_BOOT_MASK=1,this.RTCCNTL_BASE_REG=1061191680,this.RTC_CNTL_WDTCONFIG0_REG=this.RTCCNTL_BASE_REG+148,this.RTC_CNTL_WDTCONFIG1_REG=this.RTCCNTL_BASE_REG+152,this.RTC_CNTL_WDTWPROTECT_REG=this.RTCCNTL_BASE_REG+172,this.RTC_CNTL_WDT_WKEY=1356348065,this.MEMORY_MAP=[[0,65536,`PADDING`],[1056964608,1073217536,`DROM`],[1062207488,1073217536,`EXTRAM_DATA`],[1073340416,1073348608,`RTC_DRAM`],[1073340416,1073741824,`BYTE_ACCESSIBLE`],[1073340416,1074208768,`MEM_INTERNAL`],[1073414144,1073741824,`DRAM`],[1073741824,1073848576,`IROM_MASK`],[1073872896,1074200576,`IRAM`],[1074200576,1074208768,`RTC_IRAM`],[1074266112,1082130432,`IROM`],[1342177280,1342185472,`RTC_DATA`]],this.EFUSE_VDD_SPI_REG=this.EFUSE_BASE+52,this.VDD_SPI_XPD=16,this.VDD_SPI_TIEH=32,this.VDD_SPI_FORCE=64,this.UF2_FAMILY_ID=3218951918,this.EFUSE_MAX_KEY=5,this.KEY_PURPOSES={0:`USER/EMPTY`,1:`RESERVED`,2:`XTS_AES_256_KEY_1`,3:`XTS_AES_256_KEY_2`,4:`XTS_AES_128_KEY`,5:`HMAC_DOWN_ALL`,6:`HMAC_DOWN_JTAG`,7:`HMAC_DOWN_DIGITAL_SIGNATURE`,8:`HMAC_UP`,9:`SECURE_BOOT_DIGEST0`,10:`SECURE_BOOT_DIGEST1`,11:`SECURE_BOOT_DIGEST2`},this.UART_CLKDIV_MASK=1048575,this.UART_DATE_REG_ADDR=1610612856,this.FLASH_WRITE_SIZE=1024,this.BOOTLOADER_FLASH_OFFSET=4096}async getPkgVersion(e){let t=this.EFUSE_BLOCK1_ADDR+16;return await e.readReg(t)>>0&15}async getMinorChipVersion(e){let t=await e.readReg(this.EFUSE_BLOCK1_ADDR+12)>>20&1,n=await e.readReg(this.EFUSE_BLOCK1_ADDR+16)>>4&7;return(t<<3)+n}async getMajorChipVersion(e){return await e.readReg(this.EFUSE_BLOCK1_ADDR+12)>>18&3}async getFlashVersion(e){return await e.readReg(this.EFUSE_BLOCK1_ADDR+12)>>21&15}async getChipDescription(e){let t={0:`ESP32-S2`,1:`ESP32-S2FH2`,2:`ESP32-S2FH4`,102:`ESP32-S2FNR2`,100:`ESP32-S2R2`},n=await this.getFlashCap(e)+await this.getPsramCap(e)*100,r=await this.getMajorChipVersion(e),i=await this.getMinorChipVersion(e);return`${t[n]||`unknown ESP32-S2`} (revision v${r}.${i})`}async getFlashCap(e){return await this.getFlashVersion(e)}async getPsramVersion(e){let t=this.EFUSE_BLOCK1_ADDR+12;return await e.readReg(t)>>28&15}async getPsramCap(e){return await this.getPsramVersion(e)}async getBlock2Version(e){let t=this.EFUSE_BLOCK2_ADDR+16;return await e.readReg(t)>>4&7}async getChipFeatures(e){let t=[`Wi-Fi`],n={0:`No Embedded Flash`,1:`Embedded Flash 2MB`,2:`Embedded Flash 4MB`}[await this.getFlashCap(e)]||`Unknown Embedded Flash`;t.push(n);let r={0:`No Embedded Flash`,1:`Embedded PSRAM 2MB`,2:`Embedded PSRAM 4MB`}[await this.getPsramCap(e)]||`Unknown Embedded PSRAM`;t.push(r);let i={0:`No calibration in BLK2 of efuse`,1:`ADC and temperature sensor calibration in BLK2 of efuse V1`,2:`ADC and temperature sensor calibration in BLK2 of efuse V2`}[await this.getBlock2Version(e)]||`Unknown Calibration in BLK2`;return t.push(i),t}async getCrystalFreq(e){return 40}_d2h(e){let t=(+e).toString(16);return t.length===1?`0`+t:t}async readMac(e){let t=await e.readReg(this.MAC_EFUSE_REG);t>>>=0;let n=await e.readReg(this.MAC_EFUSE_REG+4);n=n>>>0&65535;let r=new Uint8Array(6);return r[0]=n>>8&255,r[1]=n&255,r[2]=t>>24&255,r[3]=t>>16&255,r[4]=t>>8&255,r[5]=t&255,this._d2h(r[0])+`:`+this._d2h(r[1])+`:`+this._d2h(r[2])+`:`+this._d2h(r[3])+`:`+this._d2h(r[4])+`:`+this._d2h(r[5])}getEraseSize(e,t){return t}async usingUsbOtg(e){return(await e.readReg(this.UARTDEV_BUF_NO)&255)===this.UARTDEV_BUF_NO_USB_OTG}async postConnect(e){let t=await this.usingUsbOtg(e);e.debug(`In _post_connect using USB OTG ?`+t),t&&(e.ESP_RAM_BLOCK=this.USB_RAM_BLOCK)}};export{t as ESP32S2ROM};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./esp32-BTVUAltJ.js";var t=class extends e{constructor(){super(...arguments),this.CHIP_NAME=`ESP32-S3`,this.IMAGE_CHIP_ID=9,this.EFUSE_BASE=1610641408,this.MAC_EFUSE_REG=this.EFUSE_BASE+68,this.EFUSE_BLOCK1_ADDR=this.EFUSE_BASE+68,this.EFUSE_BLOCK2_ADDR=this.EFUSE_BASE+92,this.UART_CLKDIV_REG=1610612756,this.UART_CLKDIV_MASK=1048575,this.UART_DATE_REG_ADDR=1610612864,this.FLASH_WRITE_SIZE=1024,this.BOOTLOADER_FLASH_OFFSET=0,this.SPI_REG_BASE=1610620928,this.SPI_USR_OFFS=24,this.SPI_USR1_OFFS=28,this.SPI_USR2_OFFS=32,this.SPI_MOSI_DLEN_OFFS=36,this.SPI_MISO_DLEN_OFFS=40,this.SPI_W0_OFFS=88,this.USB_RAM_BLOCK=2048,this.UARTDEV_BUF_NO_USB=3,this.UARTDEV_BUF_NO=1070526796,this.IROM_MAP_START=1107296256,this.IROM_MAP_END=1140850688,this.MEMORY_MAP=[[0,65536,`PADDING`],[1006632960,1023410176,`DROM`],[1023410176,1040187392,`EXTRAM_DATA`],[1611653120,1611661312,`RTC_DRAM`],[1070104576,1070596096,`BYTE_ACCESSIBLE`],[1070104576,1077813248,`MEM_INTERNAL`],[1070104576,1070596096,`DRAM`],[1073741824,1073848576,`IROM_MASK`],[1077346304,1077805056,`IRAM`],[1611653120,1611661312,`RTC_IRAM`],[1107296256,1115684864,`IROM`],[1342177280,1342185472,`RTC_DATA`]]}async getChipDescription(e){let t=await this.getMajorChipVersion(e),n=await this.getMinorChipVersion(e);return`${{0:`ESP32-S3 (QFN56)`,1:`ESP32-S3-PICO-1 (LGA56)`}[await this.getPkgVersion(e)]||`unknown ESP32-S3`} (revision v${t}.${n})`}async getPkgVersion(e){return await e.readReg(this.EFUSE_BLOCK1_ADDR+12)>>21&7}async getRawMinorChipVersion(e){let t=await e.readReg(this.EFUSE_BLOCK1_ADDR+20)>>23&1,n=await e.readReg(this.EFUSE_BLOCK1_ADDR+12)>>18&7;return(t<<3)+n}async getMinorChipVersion(e){let t=await this.getRawMinorChipVersion(e);return await this.isEco0(e,t)?0:this.getRawMinorChipVersion(e)}async getRawMajorChipVersion(e){return await e.readReg(this.EFUSE_BLOCK1_ADDR+20)>>24&3}async getMajorChipVersion(e){let t=await this.getRawMinorChipVersion(e);return await this.isEco0(e,t)?0:this.getRawMajorChipVersion(e)}async getBlkVersionMajor(e){return await e.readReg(this.EFUSE_BLOCK2_ADDR+16)>>0&3}async getBlkVersionMinor(e){return await e.readReg(this.EFUSE_BLOCK1_ADDR+12)>>24&7}async isEco0(e,t){return(t&7)==0&&await this.getBlkVersionMajor(e)===1&&await this.getBlkVersionMinor(e)===1}async getFlashCap(e){let t=this.EFUSE_BASE+68+12;return await e.readReg(t)>>27&7}async getFlashVendor(e){let t=this.EFUSE_BASE+68+16;return{1:`XMC`,2:`GD`,3:`FM`,4:`TT`,5:`BY`}[await e.readReg(t)>>0&7]||``}async getPsramCap(e){let t=this.EFUSE_BASE+68+16;return await e.readReg(t)>>3&3}async getPsramVendor(e){let t=this.EFUSE_BASE+68+16;return{1:`AP_3v3`,2:`AP_1v8`}[await e.readReg(t)>>7&3]||``}async getChipFeatures(e){let t=[`Wi-Fi`,`BLE`],n={0:null,1:`Embedded Flash 8MB`,2:`Embedded Flash 4MB`},r=await this.getFlashCap(e),i=await this.getFlashVendor(e),a=n[r],o=a===void 0?`Unknown Embedded Flash`:a;a!==null&&t.push(`${o} (${i})`);let s={0:null,1:`Embedded PSRAM 8MB`,2:`Embedded PSRAM 2MB`},c=await this.getPsramCap(e),l=await this.getPsramVendor(e),u=s[c],d=u===void 0?`Unknown Embedded PSRAM`:u;return u!==null&&t.push(`${d} (${l})`),t}async getCrystalFreq(e){return 40}_d2h(e){let t=(+e).toString(16);return t.length===1?`0`+t:t}async postConnect(e){let t=await e.readReg(this.UARTDEV_BUF_NO)&255;e.debug(`In _post_connect `+t),t==this.UARTDEV_BUF_NO_USB&&(e.ESP_RAM_BLOCK=this.USB_RAM_BLOCK)}async readMac(e){let t=await e.readReg(this.MAC_EFUSE_REG);t>>>=0;let n=await e.readReg(this.MAC_EFUSE_REG+4);n=n>>>0&65535;let r=new Uint8Array(6);return r[0]=n>>8&255,r[1]=n&255,r[2]=t>>24&255,r[3]=t>>16&255,r[4]=t>>8&255,r[5]=t&255,this._d2h(r[0])+`:`+this._d2h(r[1])+`:`+this._d2h(r[2])+`:`+this._d2h(r[3])+`:`+this._d2h(r[4])+`:`+this._d2h(r[5])}getEraseSize(e,t){return t}};export{t as ESP32S3ROM};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./esptool-operations-SV6FPHJC.js";export{e as ESP8266ROM};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/fs-Bv2avR3Y.js","assets/preload-helper-zJ_50EbN.js","assets/logger-DDBAeTLF.js","assets/mount-id-DtHfwjbZ.js","assets/mount-picker-popup-BORxgnGu.js","assets/chunk-aKtaBQYM.js","assets/types-idfTVsM8.js","assets/picker-approval-tzbkMw-e.js","assets/tool-ui-YOPqzMmL.js","assets/path-utils-DU6QhF_k.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{t as e}from"./preload-helper-zJ_50EbN.js";import{R as t,S as n,d as r}from"./account-store-Dha2nLml.js";import{d as i,l as a}from"./main-D-3iO2Pb.js";import{getOAuthPageOrigin as o}from"./oauth-service-CoJ-pYVD.js";import{t as s}from"./global-db-CbuLl-zx.js";var c={clientId:``,scopes:`repo,read:user,user:email`};function l(){try{let e=localStorage.getItem(i);if(e)return e.replace(/\/$/,``)}catch{}return a}async function u(e){let t=`${l()}/oauth/token`,n=await fetch(t,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({provider:e.provider,code:e.code,redirect_uri:e.redirectUri})}),r;try{r=await n.json()}catch{throw Error(`Token exchange failed (HTTP ${n.status}): non-JSON response`)}if(!n.ok&&n.status!==200){let e=r.error_description??r.error??`Token exchange failed (HTTP ${n.status})`;throw Error(e)}if(r.error){let e=r.error_description??r.error;throw Error(e)}return r}async function d(e){let t=`${l()}/oauth/revoke`,n=await fetch(t,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({provider:e.provider,access_token:e.accessToken})});if(!(n.status===204||n.ok)){if(n.status===400)try{if((await n.json()).error===`unsupported`)return}catch{}throw Error(`Token revocation failed (HTTP ${n.status})`)}}var f=Object.assign({"/packages/webapp/providers/github-config.json":c})[`/packages/webapp/providers/github-config.json`]??{clientId:``,scopes:`repo,read:user,user:email`},p=null,m=null;function h(e){let{isExtension:t,isConnectMode:n,workerBaseUrl:r,pageOrigin:i,pageHref:a,extensionId:o,nonce:s}=e;if(t)return{redirectUri:`${r}/auth/callback`,state:{source:`extension`,extensionId:o,path:`/github`,nonce:s}};if(n){let e=i??``;if(/^https?:\/\/(localhost|127\.0\.0\.1):\d+$/.test(e)){let t=parseInt(new URL(a??e).port||`8790`,10);return{redirectUri:`${r}/auth/callback`,state:{source:`local`,port:t,path:`/auth/callback`,nonce:s}}}return{redirectUri:`${r}/auth/callback`,state:{source:`remote`,origin:e,path:`/auth/callback`,nonce:s}}}return{redirectUri:`${e.runtimeWorkerBaseUrl??i??``}/auth/callback`,state:{port:parseInt(new URL(a??i??`http://localhost:5710`).port||`5710`,10),path:`/auth/callback`,nonce:s}}}async function g(){if(p)return p;if(_){try{let e=await fetch(`${l()}/api/runtime-config`);if(e.ok){let t=await e.json();if(t.oauth?.github)return p=t.oauth.github,p}}catch{}return f.clientId}try{let e=await fetch(`/api/runtime-config`);if(e.ok){let t=await e.json();if(t.oauth?.github)return p=t.oauth.github,p;if(t.trayWorkerBaseUrl){m=t.trayWorkerBaseUrl;let e=await fetch(`${t.trayWorkerBaseUrl}/api/runtime-config`);if(e.ok){let t=await e.json();if(t.oauth?.github)return p=t.oauth.github,p}}}}catch{}return f.clientId}var _=typeof chrome<`u`&&!!chrome?.runtime?.id;function v(){return r().find(e=>e.providerId===`github`)}function y(e){try{return new URL(e).searchParams.get(`code`)}catch{return null}}async function b(e){try{let t=await fetch(`https://api.github.com/user`,{headers:{Authorization:`Bearer ${e}`,Accept:`application/vnd.github+json`}});if(t.ok){let e=await t.json();return{name:e.name||e.login,avatar:e.avatar_url,login:e.login,id:e.id}}}catch(e){console.warn(`[github] Failed to fetch user profile:`,e instanceof Error?e.message:String(e))}return{}}function x(e,t){return`${e}+${t}@users.noreply.github.com`}async function S(t){try{let{VirtualFS:n}=await e(async()=>{let{VirtualFS:e}=await import(`./fs-Bv2avR3Y.js`);return{VirtualFS:e}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9]));await(await n.create({dbName:s})).writeFile(`/workspace/.git/github-token`,t),typeof window<`u`&&window.dispatchEvent(new CustomEvent(`github-token-changed`))}catch(e){console.warn(`[github] Failed to write git token:`,e instanceof Error?e.message:String(e))}}async function C(){try{let{VirtualFS:t}=await e(async()=>{let{VirtualFS:e}=await import(`./fs-Bv2avR3Y.js`);return{VirtualFS:e}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9]));await(await t.create({dbName:s})).rm(`/workspace/.git/github-token`),typeof window<`u`&&window.dispatchEvent(new CustomEvent(`github-token-changed`))}catch{}}async function w(t){if(!(!t.login||t.id===void 0))try{let{VirtualFS:n}=await e(async()=>{let{VirtualFS:e}=await import(`./fs-Bv2avR3Y.js`);return{VirtualFS:e}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9])),{readGlobalGitConfigValue:r,writeGlobalGitConfigValue:i}=await e(async()=>{let{readGlobalGitConfigValue:e,writeGlobalGitConfigValue:t}=await import(`./git-config-DLJIrKjL.js`);return{readGlobalGitConfigValue:e,writeGlobalGitConfigValue:t}},[]),a=await n.create({dbName:s}),o=t.name||t.login,c=x(t.id,t.login);!await r(a,`user.name`)&&o&&await i(a,`user.name`,o),await r(a,`user.email`)||await i(a,`user.email`,c)}catch(e){console.warn(`[github] Failed to seed git identity:`,e instanceof Error?e.message:String(e))}}async function T(){let e=v();if(!e?.accessToken)throw Error(`Not logged in to GitHub — please log in first`);return e.accessToken}var E={id:`github`,name:`GitHub`,description:"Sign in with GitHub for git authentication (push/pull/clone) and the `oauth-token github` shell command. Does not expose LLM models — use the GitHub Copilot provider for those.",requiresApiKey:!1,requiresBaseUrl:!1,isOAuth:!0,oauthTokenDomains:[`github.com`,`*.github.com`,`api.github.com`,`raw.githubusercontent.com`],getModelIds:()=>[],onOAuthLogin:async(e,r,i)=>{let a=await g();if(!a)throw Error(`GitHub OAuth not configured — no client ID available`);let s=i?.scopes??f.scopes,c=_?null:await o(),d=crypto.randomUUID(),p=_?chrome.runtime.id:``,{redirectUri:v,state:x}=h({isExtension:_,isConnectMode:!!globalThis.__slicc_connect_mode,workerBaseUrl:l(),runtimeWorkerBaseUrl:m,pageOrigin:c?.origin??null,pageHref:c?.href??null,extensionId:p,nonce:d}),T=btoa(JSON.stringify(x)),E=d,D=new URLSearchParams({client_id:a,scope:s,redirect_uri:v});T&&D.set(`state`,T);let O=await e(`https://github.com/login/oauth/authorize?${D}`);if(!O)return;if(E)try{if(new URL(O).searchParams.get(`nonce`)!==E){console.error(`[github] OAuth nonce mismatch — possible CSRF`);return}}catch(e){console.warn(`[github] Nonce check skipped (URL parse failed):`,e instanceof Error?e.message:String(e))}let k=y(O);if(!k){console.error(`[github] Could not extract authorization code from redirect URL`);return}let A=await u({provider:`github`,code:k,redirectUri:v}),j=await b(A.access_token);await t({providerId:`github`,accessToken:A.access_token,userName:j.name,userAvatar:j.avatar});let M=n(`github`)?.maskedValue;M?await S(M):await C(),await w(j),r()},onOAuthLogout:async()=>{let e=v();e?.accessToken&&await d({provider:`github`,accessToken:e.accessToken}).catch(e=>console.warn(`[github] Token revocation failed:`,e instanceof Error?e.message:String(e))),await C(),await t({providerId:`github`,accessToken:``})},getOAuthLogoutUrl:e=>`https://github.com/logout`};export{x as buildNoreplyEmail,E as config,y as extractCodeFromUrl,T as getValidAccessToken,h as resolveGithubOAuthRedirect,w as syncGitIdentityFromGitHub};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{O as e,i as t,p as n}from"./account-store-DmjUSua_.js";import{b as r,l as i,x as a}from"./kernel-worker-DuaByjq4.js";import{getOAuthPageOrigin as o}from"./oauth-service-D49nt7eJ.js";var s={clientId:``,scopes:`repo,read:user,user:email`};function c(){try{let e=localStorage.getItem(a);if(e)return e.replace(/\/$/,``)}catch{}return r}async function l(e){let t=`${c()}/oauth/token`,n=await fetch(t,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({provider:e.provider,code:e.code,redirect_uri:e.redirectUri})}),r;try{r=await n.json()}catch{throw Error(`Token exchange failed (HTTP ${n.status}): non-JSON response`)}if(!n.ok&&n.status!==200){let e=r.error_description??r.error??`Token exchange failed (HTTP ${n.status})`;throw Error(e)}if(r.error){let e=r.error_description??r.error;throw Error(e)}return r}async function u(e){let t=`${c()}/oauth/revoke`,n=await fetch(t,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({provider:e.provider,access_token:e.accessToken})});if(!(n.status===204||n.ok)){if(n.status===400)try{if((await n.json()).error===`unsupported`)return}catch{}throw Error(`Token revocation failed (HTTP ${n.status})`)}}const d=Object.assign({"/packages/webapp/providers/github-config.json":s})[`/packages/webapp/providers/github-config.json`]??{clientId:``,scopes:`repo,read:user,user:email`};let f=null,p=null;function m(e){let{isExtension:t,isConnectMode:n,workerBaseUrl:r,pageOrigin:i,pageHref:a,extensionId:o,nonce:s}=e;if(t)return{redirectUri:`${r}/auth/callback`,state:{source:`extension`,extensionId:o,path:`/github`,nonce:s}};if(n){let e=i??``;if(/^https?:\/\/(localhost|127\.0\.0\.1):\d+$/.test(e)){let t=parseInt(new URL(a??e).port||`8790`,10);return{redirectUri:`${r}/auth/callback`,state:{source:`local`,port:t,path:`/auth/callback`,nonce:s}}}return{redirectUri:`${r}/auth/callback`,state:{source:`remote`,origin:e,path:`/auth/callback`,nonce:s}}}return{redirectUri:`${e.runtimeWorkerBaseUrl??i??``}/auth/callback`,state:{port:parseInt(new URL(a??i??`http://localhost:5710`).port||`5710`,10),path:`/auth/callback`,nonce:s}}}async function h(){if(f)return f;if(g){try{let e=await fetch(`${c()}/api/runtime-config`);if(e.ok){let t=await e.json();if(t.oauth?.github)return f=t.oauth.github,f}}catch{}return d.clientId}try{let e=await fetch(`/api/runtime-config`);if(e.ok){let t=await e.json();if(t.oauth?.github)return f=t.oauth.github,f;if(t.trayWorkerBaseUrl){p=t.trayWorkerBaseUrl;let e=await fetch(`${t.trayWorkerBaseUrl}/api/runtime-config`);if(e.ok){let t=await e.json();if(t.oauth?.github)return f=t.oauth.github,f}}}}catch{}return d.clientId}const g=typeof chrome<`u`&&!!chrome?.runtime?.id;function _(){return t().find(e=>e.providerId===`github`)}function v(e){try{return new URL(e).searchParams.get(`code`)}catch{return null}}async function y(e){try{let t=await fetch(`https://api.github.com/user`,{headers:{Authorization:`Bearer ${e}`,Accept:`application/vnd.github+json`}});if(t.ok){let e=await t.json();return{name:e.name||e.login,avatar:e.avatar_url,login:e.login,id:e.id}}}catch(e){console.warn(`[github] Failed to fetch user profile:`,e instanceof Error?e.message:String(e))}return{}}function b(e,t){return`${e}+${t}@users.noreply.github.com`}async function x(e){try{let{VirtualFS:t}=await import(`./fs-B-yB8nmS.js`).then(e=>e.t);await(await t.create({dbName:i})).writeFile(`/workspace/.git/github-token`,e),typeof window<`u`&&window.dispatchEvent(new CustomEvent(`github-token-changed`))}catch(e){console.warn(`[github] Failed to write git token:`,e instanceof Error?e.message:String(e))}}async function S(){try{let{VirtualFS:e}=await import(`./fs-B-yB8nmS.js`).then(e=>e.t);await(await e.create({dbName:i})).rm(`/workspace/.git/github-token`),typeof window<`u`&&window.dispatchEvent(new CustomEvent(`github-token-changed`))}catch{}}async function C(e){if(!(!e.login||e.id===void 0))try{let{VirtualFS:t}=await import(`./fs-B-yB8nmS.js`).then(e=>e.t),{readGlobalGitConfigValue:n,writeGlobalGitConfigValue:r}=await import(`./kernel-worker-DuaByjq4.js`).then(e=>e.c),a=await t.create({dbName:i}),o=e.name||e.login,s=b(e.id,e.login);!await n(a,`user.name`)&&o&&await r(a,`user.name`,o),await n(a,`user.email`)||await r(a,`user.email`,s)}catch(e){console.warn(`[github] Failed to seed git identity:`,e instanceof Error?e.message:String(e))}}async function w(){let e=_();if(!e?.accessToken)throw Error(`Not logged in to GitHub — please log in first`);return e.accessToken}const T={id:`github`,name:`GitHub`,description:"Sign in with GitHub for git authentication (push/pull/clone) and the `oauth-token github` shell command. Does not expose LLM models — use the GitHub Copilot provider for those.",requiresApiKey:!1,requiresBaseUrl:!1,isOAuth:!0,oauthTokenDomains:[`github.com`,`*.github.com`,`api.github.com`,`raw.githubusercontent.com`],getModelIds:()=>[],onOAuthLogin:async(t,r,i)=>{let a=await h();if(!a)throw Error(`GitHub OAuth not configured — no client ID available`);let s=i?.scopes??d.scopes,u=g?null:await o(),f=crypto.randomUUID(),_=g?chrome.runtime.id:``,{redirectUri:b,state:w}=m({isExtension:g,isConnectMode:!!globalThis.__slicc_connect_mode,workerBaseUrl:c(),runtimeWorkerBaseUrl:p,pageOrigin:u?.origin??null,pageHref:u?.href??null,extensionId:_,nonce:f}),T=btoa(JSON.stringify(w)),E=f,D=new URLSearchParams({client_id:a,scope:s,redirect_uri:b});T&&D.set(`state`,T);let O=await t(`https://github.com/login/oauth/authorize?${D}`);if(!O)return;if(E)try{if(new URL(O).searchParams.get(`nonce`)!==E){console.error(`[github] OAuth nonce mismatch — possible CSRF`);return}}catch(e){console.warn(`[github] Nonce check skipped (URL parse failed):`,e instanceof Error?e.message:String(e))}let k=v(O);if(!k){console.error(`[github] Could not extract authorization code from redirect URL`);return}let A=await l({provider:`github`,code:k,redirectUri:b}),j=await y(A.access_token);await e({providerId:`github`,accessToken:A.access_token,userName:j.name,userAvatar:j.avatar});let M=n(`github`)?.maskedValue;M?await x(M):await S(),await C(j),r()},onOAuthLogout:async()=>{let t=_();t?.accessToken&&await u({provider:`github`,accessToken:t.accessToken}).catch(e=>console.warn(`[github] Token revocation failed:`,e instanceof Error?e.message:String(e))),await S(),await e({providerId:`github`,accessToken:``})},getOAuthLogoutUrl:e=>`https://github.com/logout`};export{b as buildNoreplyEmail,T as config,v as extractCodeFromUrl,w as getValidAccessToken,m as resolveGithubOAuthRedirect,C as syncGitIdentityFromGitHub};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./logger-LESFN7Hj.js";import{n as t,t as n}from"./transformers-env-O5Vtz_xj.js";const r=16e3;async function i(e){if(typeof AudioContext>`u`||typeof OfflineAudioContext>`u`)throw Error(`audio decoding requires a window/page realm (AudioContext unavailable)`);let t=new AudioContext,n;try{n=await t.decodeAudioData(e.slice(0))}finally{await t.close().catch(()=>{})}let i=Math.max(1,Math.ceil(n.duration*r)),a=new OfflineAudioContext(1,i,r),o=a.createBufferSource();return o.buffer=n,o.connect(a.destination),o.start(),(await a.startRendering()).getChannelData(0).slice(0)}const a=e(`speech:whisper`),o=`onnx-community/whisper-tiny`;let s=null,c=`idle`,l=null;const u=new Set;function d(){return c}function f(){return l}function p(e){return e&&u.add(e),s||=(c=`loading`,h().then(e=>(c=`ready`,m(),e),e=>{throw c=`failed`,s=null,a.error(`whisper load failed`,e),e})),s}function m(){import(`./kokoro-engine-CjyxHaAM.js`).then(({getKokoro:e})=>e()).catch(e=>a.warn(`kokoro warmup (chained after whisper) failed`,e))}async function h(){let{pipeline:e,env:r}=await import(`./transformers.web-DJfCkvxA.js`);n(r);let i=t(),s=e=>{if(e?.file){if(e.status===`progress`)i.update(e.file,e.loaded??0,e.total??0);else if(e.status===`done`)i.complete(e.file);else return;l=i.snapshot();for(let e of u)e(l)}},c=async t=>await e(`automatic-speech-recognition`,o,{device:t,dtype:t===`webgpu`?`fp32`:`q8`,progress_callback:s}),d=typeof navigator<`u`&&`gpu`in navigator,f;if(d)try{f=await c(`webgpu`)}catch(e){a.warn(`whisper webgpu init failed; retrying on wasm`,e),f=await c(`wasm`)}else f=await c(`wasm`);return a.info(`whisper ready`,{model:o,device:d?`webgpu`:`wasm`}),{async transcribe(e,t){let n=await f(e,{chunk_length_s:30,task:`transcribe`,...t?.language?{language:t.language}:{}});return(Array.isArray(n)?n.map(e=>e.text??``).join(` `):n.text??``).trim()}}}e(`speech:whisper-session`);function g(e){return e?.split(`-`)[0]?.toLowerCase()||void 0}const _=e(`speech:hear`);function v(){if(typeof window>`u`)return null;let e=window;return e.SpeechRecognition??e.webkitSpeechRecognition??null}function y(e,t){let n=v();return n?new Promise((r,i)=>{let a=new n;a.continuous=!1,a.interimResults=!1,e&&(a.lang=e);let o=``,s=!1,c=setTimeout(()=>{try{a.stop()}catch{}},t);a.onresult=e=>{let t=[];for(let n=0;n<e.results.length;n++)t.push(e.results[n][0]?.transcript??``);o=t.join(` `).trim()},a.onerror=e=>{e.error===`no-speech`||e.error===`aborted`||(s=!0,clearTimeout(c),i(Error(`speech recognition error: ${e.error}`)))},a.onend=()=>{clearTimeout(c),s||r(o)},a.start()}):Promise.reject(Error(`speech recognition unavailable in this environment`))}async function b(e){let t=await navigator.mediaDevices.getUserMedia({audio:e?{deviceId:{exact:e}}:!0}),n=new MediaRecorder(t),r=[];n.ondataavailable=e=>{e.data.size>0&&r.push(e.data)},n.start(500);let i=()=>{for(let e of t.getTracks())e.stop()};return{stop:()=>new Promise(e=>{n.onstop=()=>{i(),e(r.length?new Blob(r,{type:n.mimeType||`audio/webm`}):null)};try{n.stop()}catch{i(),e(null)}}),cancel:()=>{try{n.stop()}catch{}i()}}}async function x(e={}){let t=e.timeoutMs??3e4,n=e.engine??`auto`,r=d()===`ready`;if(n===`enhanced`&&!r)throw Error("enhanced engine not ready — run `hear --warmup` (check progress with `hear --status`)");if(!(n!==`builtin`&&r))return{transcript:await y(e.lang,t),engine:`builtin`};let a=await b(e.deviceId),o=``;try{o=await y(e.lang,t)}catch(e){_.warn(`builtin endpointing failed; transcribing captured audio anyway`,e)}let s=await a.stop();if(!s)return{transcript:o,engine:`builtin`};try{let t=await p(),n=await i(await s.arrayBuffer()),r=await t.transcribe(n,{language:g(e.lang)});if(r)return{transcript:r,engine:`enhanced`}}catch(e){_.warn(`whisper transcription failed; falling back to builtin text`,e)}return{transcript:o,engine:`builtin`}}async function S(e,t){let n=await p(),r=await i(e);return{transcript:await n.transcribe(r,{language:g(t)}),engine:`enhanced`}}function C(){let e=f();return{state:d(),...e?{loaded:e.loaded,total:e.total,etaSeconds:e.etaSeconds}:{}}}function w(){return p().catch(()=>{}),C()}export{x as hearCapture,C as hearStatus,S as hearTranscribe,w as hearWarmup};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./logger-DDBAeTLF.js";import{a as t,i as n,n as r,o as i,r as a}from"./whisper-session-D89gZWHf.js";var o=e(`speech:hear`),s=3e4;function c(){if(typeof window>`u`)return null;let e=window;return e.SpeechRecognition??e.webkitSpeechRecognition??null}function l(e,t){let n=c();return n?new Promise((r,i)=>{let a=new n;a.continuous=!1,a.interimResults=!1,e&&(a.lang=e);let o=``,s=!1,c=setTimeout(()=>{try{a.stop()}catch{}},t);a.onresult=e=>{let t=[];for(let n=0;n<e.results.length;n++)t.push(e.results[n][0]?.transcript??``);o=t.join(` `).trim()},a.onerror=e=>{e.error===`no-speech`||e.error===`aborted`||(s=!0,clearTimeout(c),i(Error(`speech recognition error: ${e.error}`)))},a.onend=()=>{clearTimeout(c),s||r(o)},a.start()}):Promise.reject(Error(`speech recognition unavailable in this environment`))}async function u(e){let t=await navigator.mediaDevices.getUserMedia({audio:e?{deviceId:{exact:e}}:!0}),n=new MediaRecorder(t),r=[];n.ondataavailable=e=>{e.data.size>0&&r.push(e.data)},n.start(500);let i=()=>{for(let e of t.getTracks())e.stop()};return{stop:()=>new Promise(e=>{n.onstop=()=>{i(),e(r.length?new Blob(r,{type:n.mimeType||`audio/webm`}):null)};try{n.stop()}catch{i(),e(null)}}),cancel:()=>{try{n.stop()}catch{}i()}}}async function d(e={}){let t=e.timeoutMs??s,c=e.engine??`auto`,d=i()===`ready`;if(c===`enhanced`&&!d)throw Error("enhanced engine not ready — run `hear --warmup` (check progress with `hear --status`)");if(!(c!==`builtin`&&d))return{transcript:await l(e.lang,t),engine:`builtin`};let f=await u(e.deviceId),p=``;try{p=await l(e.lang,t)}catch(e){o.warn(`builtin endpointing failed; transcribing captured audio anyway`,e)}let m=await f.stop();if(!m)return{transcript:p,engine:`builtin`};try{let t=await n(),i=await a(await m.arrayBuffer()),o=await t.transcribe(i,{language:r(e.lang)});if(o)return{transcript:o,engine:`enhanced`}}catch(e){o.warn(`whisper transcription failed; falling back to builtin text`,e)}return{transcript:p,engine:`builtin`}}async function f(e,t){let i=await n(),o=await a(e);return{transcript:await i.transcribe(o,{language:r(t)}),engine:`enhanced`}}function p(){let e=t();return{state:i(),...e?{loaded:e.loaded,total:e.total,etaSeconds:e.etaSeconds}:{}}}function m(){return n().catch(()=>{}),p()}export{d as hearCapture,p as hearStatus,f as hearTranscribe,m as hearWarmup};
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
[`unpkg`,`com`].join(`.`);const e=[`esm`,`sh`].join(`.`);[`cdn`,`jsdelivr`,`net`].join(`.`);function t(e,t){return new URL(t,`https://${e}`)}function n(n,r={}){let i=t(e,n.startsWith(`/`)?n:`/${n}`),a=[];if(r.bundle&&a.push(`bundle`),r.target&&a.push(`target=${encodeURIComponent(r.target)}`),r.query)for(let[e,t]of Object.entries(r.query))a.push(t===!0?e:`${e}=${encodeURIComponent(t)}`);return a.length>0&&(i.search=`?${a.join(`&`)}`),i}var r=class extends Error{status;statusText;url;body;constructor(e,t,n,r){let a=typeof r==`string`&&r?`: ${r.slice(0,200)}`:r&&typeof r==`object`?`: ${i(r).slice(0,200)}`:``;super(`HTTP ${e} ${t} ${n}${a}`),this.status=e,this.statusText=t,this.url=n,this.body=r,this.name=`HttpError`}};function i(e){try{return JSON.stringify(e)}catch{return String(e)}}function a(e){return new Promise(t=>setTimeout(t,e))}function o(e,t,n){let r;if(r=/^[a-z][a-z0-9+.-]*:\/\//i.test(t)?t:e?`${e.endsWith(`/`)?e.slice(0,-1):e}${t.startsWith(`/`)?t:`/${t}`}`:t,!n)return r;let i=[];for(let[e,t]of Object.entries(n))if(t!=null)if(Array.isArray(t))for(let n of t)n!=null&&i.push(`${encodeURIComponent(e)}=${encodeURIComponent(String(n))}`);else i.push(`${encodeURIComponent(e)}=${encodeURIComponent(String(t))}`);return i.length===0?r:r+(r.includes(`?`)?`&`:`?`)+i.join(`&`)}function s(e,t){let n={};if(e)for(let[t,r]of Object.entries(e))n[t]=r;if(t)for(let[e,r]of Object.entries(t))n[e]=r;return n}function c(e){if(!e)return!1;let t=e.toLowerCase();return t.startsWith(`application/json`)||/[+/]json(;|$|\s)/.test(t)}function l(e){if(!e)return null;let t=e.trim();if(!t)return null;if(/^\d+(\.\d+)?$/.test(t)){let e=Number(t);if(Number.isFinite(e)&&e>=0)return Math.round(e*1e3)}let n=Date.parse(t);if(Number.isFinite(n)){let e=n-Date.now();return e>0?e:0}return null}async function u(e){if(c(e.headers.get(`content-type`))){let t=await e.text();if(!t)return null;try{return JSON.parse(t)}catch{return t}}return e.text()}function d(e,t){if(e!=null)return typeof e==`string`||e instanceof ArrayBuffer||ArrayBuffer.isView(e)||typeof Blob<`u`&&e instanceof Blob||typeof FormData<`u`&&e instanceof FormData||typeof URLSearchParams<`u`&&e instanceof URLSearchParams||typeof ReadableStream<`u`&&e instanceof ReadableStream?e:typeof e==`object`?(Object.keys(t).some(e=>e.toLowerCase()===`content-type`)||(t[`Content-Type`]=`application/json`),JSON.stringify(e)):String(e)}function f(e){let t=e.sleep??a;function n(n){let i=new Set(n.retry?.on??[]),a=Math.max(1,Math.trunc(n.retry?.maxAttempts??1));async function c(c,f,p={}){let m=o(n.baseUrl,f,p.params),h=s(n.headers,p.headers);if(n.token){let e=await n.token({method:c,path:f,url:m});e&&(Object.keys(h).some(e=>e.toLowerCase()===`authorization`)||(h.Authorization=`Bearer ${e}`))}let g=d(p.body,h),_={method:c,headers:h};g!==void 0&&(_.body=g);let v=null;for(let o=0;o<a;o++){let s=n.timeoutMs?new AbortController:null,c=s?setTimeout(()=>s.abort(Error(`timeout`)),n.timeoutMs):null,d=p.signal&&s?.signal?AbortSignal.any([p.signal,s.signal]):p.signal??s?.signal,f=d?{..._,signal:d}:_,h;try{h=await e.fetch(m,f)}finally{c!==null&&clearTimeout(c)}if(v=h,h.ok){let e=await u(h);return p.raw?{body:e,headers:Object.fromEntries(h.headers.entries()),status:h.status}:e}if(!(o+1<a&&i.has(h.status))){let e=await u(h).catch(()=>null);throw new r(h.status,h.statusText,m,e)}let g=l(h.headers.get(`retry-after`)),y=500*2**o;await t(g===null?y:g)}if(v){let e=await u(v).catch(()=>null);throw new r(v.status,v.statusText,m,e)}throw Error(`http: no attempts made for ${c} ${m}`)}return Object.freeze({get:((e,t)=>c(`GET`,e,t)),post:((e,t)=>c(`POST`,e,t)),put:((e,t)=>c(`PUT`,e,t)),patch:((e,t)=>c(`PATCH`,e,t)),delete:((e,t)=>c(`DELETE`,e,t))})}return Object.freeze({client:n})}function p(e){let t=[],n={},r=[],i=(e,t)=>{if(e in n){let r=n[e];Array.isArray(r)?r.push(String(t)):n[e]=[String(r),String(t)]}else n[e]=t},a=2;for(;a<e.length;){let n=e[a];if(n===`--`){r.push(...e.slice(a+1));break}if(n.startsWith(`--`)){let t=n.slice(2),r=t.indexOf(`=`);if(r!==-1){i(t.slice(0,r),t.slice(r+1)),a++;continue}let o=e[a+1];if(o!==void 0&&!o.startsWith(`-`)){i(t,o),a+=2;continue}i(t,!0),a++;continue}if(n.startsWith(`-`)&&n.length>1){for(let e of n.slice(1))i(e,!0);a++;continue}t.push(n),a++}return{positional:t,flags:n,subcommand:t.length>0&&/^[a-z][\w-]*$/i.test(t[0])?t[0]:null,passthrough:r}}function m(e){let t=[...e];return Object.defineProperty(t,"parseFlags",{value:()=>p(t),enumerable:!1,writable:!1,configurable:!1}),t}function h(e){let t=e=>{if(typeof e==`string`)return e;if(e instanceof Error)return e.message;if(e==null)return String(e);try{return JSON.stringify(e)}catch{return String(e)}},n=(e,t,n)=>t===void 0?`${e(`Error:`)} ${n}\n`:t===``?`${e(n)}\n`:`${e(`${t}:`)} ${n}\n`,r=(t,n)=>t===void 0?`${e.color.yellow(`Warning:`)} ${n}\n`:t===``?`${e.color.yellow(n)}\n`:`${e.color.yellow(`${t}:`)} ${n}\n`;return{die(r,i){let a=typeof i==`number`?i:i?.exitCode??1,o=typeof i==`object`&&i&&`prefix`in i?i.prefix:void 0,s=t(r);throw e.writeStderr(n(e.color.red,o,s)),e.exit(a),Error(`unreachable`)},out(t){if(typeof t==`string`){e.writeStdout(t.endsWith(`
|
|
2
|
-
`)?t:`${t}\n`);return}try{e.writeStdout(`${JSON.stringify(t,null,2)}\n`)}catch{e.writeStdout(`${String(t)}\n`)}},warn(n,i){let a=typeof i==`object`&&i&&`prefix`in i?i.prefix:void 0;e.writeStderr(r(a,t(n)))},help(t){throw e.writeStdout(t.endsWith(`
|
|
3
|
-
`)?t:`${t}\n`),e.exit(0),Error(`unreachable`)}}}const g={reset:`\x1B[0m`,green:`\x1B[32m`,red:`\x1B[31m`,yellow:`\x1B[33m`,gray:`\x1B[90m`,bold:`\x1B[1m`,cyan:`\x1B[36m`,dim:`\x1B[2m`};function _(e){let t=e.isTTY&&!e.noColor,n=e=>n=>t?`${e}${n}${g.reset}`:String(n);return{enabled:t,green:n(g.green),red:n(g.red),yellow:n(g.yellow),gray:n(g.gray),bold:n(g.bold),cyan:n(g.cyan),dim:n(g.dim)}}const v={ms:1,s:1e3,m:6e4,h:36e5,d:864e5,w:6048e5,M:26298e5,y:315576e5};function y(e){if(typeof e==`number`&&Number.isFinite(e))return Math.trunc(e);if(typeof e!=`string`)throw TypeError(`time.parseDuration: spec must be string or number`);let t=e.trim(),n=/^([0-9]+(?:\.[0-9]+)?)\s*(ms|s|m|h|d|w|M|y)?$/.exec(t);if(!n)throw RangeError(`time.parseDuration: unrecognized spec "${e}"`);let r=Number(n[1]),i=n[2]??`ms`;return Math.trunc(r*v[i])}function b(e){return e<10?`0${e}`:String(e)}const ee={parseDuration:y,ago(e,t=new Date){return new Date(t.getTime()-y(e))},range(e,t=new Date){let n=new Date(t.getTime());return{start:new Date(n.getTime()-y(e)),end:n}},future(e,t=new Date){let n=new Date(t.getTime());return{start:n,end:new Date(n.getTime()+y(e))}},gmailDate(e,t=new Date){let n=new Date(t.getTime()-y(e));return`${n.getFullYear()}/${b(n.getMonth()+1)}/${b(n.getDate())}`}},x=/\u001b\[[0-9;]*m/g;function S(e){return e.replace(x,``)}function C(e){return S(e).length}function w(e,t){let n=String(e??``);return t<=0?``:C(n)<=t?n:t<=1?n.slice(0,t):`${S(n).slice(0,t-1)}…`}function T(e,t){let n=String(e??``),r=C(n);return r===t?n:r>t?w(n,t):n+` `.repeat(t-r)}function E(e,t){if(!e.length)return``;let n=Math.max(...e.map(e=>e.length)),r=[];for(let i=0;i<n;i++)if(t&&t[i]!==void 0)r[i]=t[i];else{let t=0;for(let n of e){let e=i<n.length?String(n[i]??``):``;t=Math.max(t,C(e))}r[i]=t}return e.map(e=>r.map((t,n)=>T(n<e.length?String(e[n]??``):``,t)).join(` `).replace(/\s+$/,``)).join(`
|
|
4
|
-
`)}function D(e){return e instanceof Date?e:new Date(e)}function O(e,t=`short`){let n=D(e);if(Number.isNaN(n.getTime()))return String(e);if(t===`iso`)return n.toISOString();if(t===`locale`)return new Intl.DateTimeFormat(void 0,{dateStyle:`medium`}).format(n);if(t===`human`){let e=Date.now()-n.getTime(),t=Math.abs(e);if(t<6e4)return e>=0?`just now`:`in a moment`;let r=(t,n)=>e>=0?`${t} ${n}${t===1?``:`s`} ago`:`in ${t} ${n}${t===1?``:`s`}`;return t<36e5?r(Math.round(t/6e4),`minute`):t<864e5?r(Math.round(t/36e5),`hour`):t<26298e5?r(Math.round(t/864e5),`day`):t<315576e5?r(Math.round(t/26298e5),`month`):r(Math.round(t/315576e5),`year`)}return`${n.getFullYear()}-${b(n.getMonth()+1)}-${b(n.getDate())}`}const te={trunc:w,col:T,table:E,date:O},ne=async(e,t,n)=>{let r=Math.max(1,Math.trunc(e)||1),i=Array(t.length),a=0,o=[],s=async()=>{for(;;){let e=a++;if(e>=t.length)return;i[e]=await n(t[e],e)}};for(let e=0;e<Math.min(r,t.length);e++)o.push(s());return await Promise.all(o),i};var k=class{port;nextId=1;pending=new Map;eventSubscribers=new Map;handler;disposed=!1;constructor(e){this.port=e,this.handler=e=>{let t=e.data;if(t?.type===`realm-rpc-res`){let t=e.data,n=this.pending.get(t.id);if(!n)return;this.pending.delete(t.id),typeof t.error==`string`?n.reject(Error(t.error)):n.resolve(t.result);return}if(t?.type===`realm-event`){let t=e.data,n=this.eventSubscribers.get(t.channel);if(!n)return;for(let e of[...n])try{e(t.payload)}catch{}}},e.addEventListener(`message`,this.handler),e.start?.()}call(e,t,n=[]){if(this.disposed)return Promise.reject(Error(`realm-rpc: client disposed`));let r=this.nextId++,i={type:`realm-rpc-req`,id:r,channel:e,op:t,args:n};return new Promise((e,t)=>{this.pending.set(r,{resolve:e,reject:t}),this.port.postMessage(i)})}onEvent(e,t){if(this.disposed)return()=>{};let n=this.eventSubscribers.get(e);return n||(n=new Set,this.eventSubscribers.set(e,n)),n.add(t),()=>{let n=this.eventSubscribers.get(e);n&&(n.delete(t),n.size===0&&this.eventSubscribers.delete(e))}}dispose(){if(this.disposed)return;this.disposed=!0,this.port.removeEventListener(`message`,this.handler);let e=Error(`realm-rpc: client disposed`);for(let t of this.pending.values())t.reject(e);this.pending.clear(),this.eventSubscribers.clear()}};const A=new Set([`bcrypt`,`better-sqlite3`,`canvas`,`cpu-features`,`fsevents`,`leveldown`,`libxmljs`,`libxmljs2`,`node-gyp-build`,`node-sass`,`puppeteer`,`robotjs`,`sass-embedded`,`sharp`,`snappy`,`sqlite3`,`tree-sitter`,`usb`]),j={sharp:` Use the built-in 'convert' shell command for image work.`,canvas:` Use the built-in 'convert' / OffscreenCanvas for image work.`,"better-sqlite3":` Use the built-in 'sqlite3' shell command (sql.js WASM).`,sqlite3:` Use the built-in 'sqlite3' shell command (sql.js WASM).`,bcrypt:` Use crypto.subtle.digest() with PBKDF2 / Argon2 in pure JS.`,puppeteer:` Use the built-in browser-automation shell commands.`};function M(e){let t=e?.SLICC_REALM_PREFETCH_BUDGET_MS;if(typeof t==`string`&&t.length>0){let e=Number.parseInt(t,10);if(Number.isFinite(e)&&e>0)return e}return 15e3}function N(e,t){let n=j[t]??``;return Error(`require('${e}'): '${t}' is a Node native module (C++ bindings) — it cannot run in the browser sandbox.${n}`)}function re(e,t,n){return new Promise((r,i)=>{let a=setTimeout(()=>{i(Error(`Timed out after ${t/1e3}s loading ${n}`))},t);e.then(e=>{clearTimeout(a),r(e)},e=>{clearTimeout(a),i(e)})})}function ie(e){if(!e)return``;let t=e.lastIndexOf(`/`);return t<0?``:t===0?`/`:e.substring(0,t)}function P(e){return/^[A-Za-z0-9_\-./:@]+$/.test(e)?e:`'`+e.replace(/'/g,`'\\''`)+`'`}function F(e,t){return e===``?t:e===`/`?`/${t}`:`${e}/${t}`}function ae(e){let t=ie(e.argv[1]??``),n=F(t,`references`),r=F(t,`assets`),i=F(t,`.config`);async function a(){let t;try{t=await e.fs.exists(i)}catch{return null}if(!t)return null;let n;try{n=await e.fs.readFile(i)}catch{return null}let r=typeof n==`string`?n:String(n);if(!r.trim())return null;let a;try{a=JSON.parse(r)}catch(e){let t=e instanceof Error?e.message:String(e);throw Error(`skill.config(): failed to parse ${i}: ${t}`)}if(a&&typeof a==`object`&&!Array.isArray(a))return a;throw Error(`skill.config(): ${i} must contain a JSON object`)}async function o(t){let n=await a();if(t===void 0)return n;if(typeof t!=`object`||!t||Array.isArray(t))throw TypeError(`skill.config(updates): updates must be a plain object`);let r={...n??{},...t};return await e.fs.writeFile(i,JSON.stringify(r,null,2)+`
|
|
5
|
-
`),r}async function s(t){if(typeof t!=`string`||!t.trim())throw TypeError(`skill.token(providerId): providerId must be a non-empty string`);let n=`oauth-token ${P(t)}`,{stdout:r,stderr:i,exitCode:a}=await e.exec(n);if(a!==0){let e=i.trim()||`oauth-token exited with code ${a}`;throw Error(`skill.token('${t}'): ${e}`)}return r.replace(/\r?\n+$/,``)}return Object.freeze({dir:t,refs:n,assets:r,config:o,token:s})}const I=new Set([`http`,`https`,`net`,`tls`,`dgram`,`dns`,`cluster`,`worker_threads`,`child_process`,`crypto`,`os`,`stream`,`zlib`,`vm`,`v8`,`perf_hooks`,`readline`,`repl`,`tty`,`inspector`]),oe=new Set([`fs`,`process`,`buffer`]);var L=class extends Error{code;constructor(e){super(`Process exited with code ${e}`),this.code=e,this.name=`NodeExitError`}};function se(e){let t=/\brequire\s*\(\s*(['"`])([^'"`\s]+)\1\s*\)/g,n=new Set,r;for(;(r=t.exec(e))!==null;)n.add(r[2]);return[...n]}function R(e){if(typeof e==`string`)return e;if(e==null)return String(e);try{return JSON.stringify(e)}catch{return String(e)}}async function z(e,t,n=ce){let r=[],i=[],a=e=>{r.push(typeof e==`string`?e:String(e))},o=e=>{i.push(typeof e==`string`?e:String(e))},s={log:(...e)=>a(`${e.map(R).join(` `)}\n`),info:(...e)=>a(`${e.map(R).join(` `)}\n`),warn:(...e)=>o(`${e.map(R).join(` `)}\n`),error:(...e)=>o(`${e.map(R).join(` `)}\n`)},c=B(e.stdin??``),l=m(e.argv),u=!!e.env?.NO_COLOR,d={argv:l,env:e.env,cwd:()=>e.cwd,exit:e=>{throw new L(Number.isFinite(e)?Number(e):0)},stdin:c,stdout:{write:a,isTTY:!u},stderr:{write:o,isTTY:!u}},p=_({isTTY:!u,noColor:u}),g=h({writeStdout:a,writeStderr:o,exit:e=>{throw new L(e)},color:p}),v=new k(t),y=V(v,D),b=Object.assign(e=>v.call(`exec`,`run`,[e]),{spawn:e=>v.call(`exec`,`spawn`,[e])}),x=ae({argv:e.argv,fs:y,exec:b}),S=le(v),C=me(v),w=he(v),T=ge(v),E=f({fetch:D});async function D(e,t){let n=e instanceof Request?e.url:e instanceof URL?e.toString():String(e),r=await v.call(`fetch`,`request`,[n,G(t,e)]),i=r.body.byteLength===0?null:r.body.buffer.slice(r.body.byteOffset,r.body.byteOffset+r.body.byteLength),a=new Response(i,{status:r.status,statusText:r.statusText,headers:r.headers});return Object.defineProperty(a,"url",{value:r.url||n}),a}let O=U(await H(e.code,e.env,n,o),y,d),A={exports:{},filename:e.filename},j=await W(e.code,{fs:y,process:d,console:s,require:O,module:A,exports:A.exports,exec:b,fetch:D,skill:x,http:E,browser:S,usb:C,serial:w,hid:T,cli:g,c:p,time:ee,fmt:te,pool:ne},o);v.dispose();let M={type:`realm-done`,stdout:r.join(``),stderr:i.join(``),exitCode:j};t.postMessage(M)}function B(e){let t=!1;return{isTTY:!1,read(){return t?null:(t=!0,e)},toString(){return e},[Symbol.asyncIterator](){return{async next(){return t?{value:void 0,done:!0}:(t=!0,{value:e,done:!1})}}}}}function V(e,t){return{readFile:t=>e.call(`vfs`,`readFile`,[t]),readFileBinary:t=>e.call(`vfs`,`readFileBinary`,[t]),writeFile:(t,n)=>e.call(`vfs`,`writeFile`,[t,n]),writeFileBinary:(t,n)=>e.call(`vfs`,`writeFileBinary`,[t,n]),readDir:t=>e.call(`vfs`,`readDir`,[t]),exists:t=>e.call(`vfs`,`exists`,[t]),stat:t=>e.call(`vfs`,`stat`,[t]),mkdir:t=>e.call(`vfs`,`mkdir`,[t]),rm:t=>e.call(`vfs`,`rm`,[t]),fetchToFile:async(n,r)=>{let i=await t(n);if(!i.ok)throw Error(`fetch ${i.status} ${i.statusText}`);let a=new Uint8Array(await i.arrayBuffer());return await e.call(`vfs`,`writeFileBinary`,[r,a]),a.byteLength}}}async function H(e,t,n,r){let i=se(e).map(e=>e.startsWith(`node:`)?e.slice(5):e).filter(e=>!oe.has(e)&&!I.has(e)),a=i.filter(e=>A.has(e)),o=i.filter(e=>!A.has(e));for(let e of a)r(`Warning: ${N(e,e).message}\n`);let s=Object.create(null),c=M(t);if(o.length===0)return s;let l=await Promise.allSettled(o.map(async e=>{let t=await re(n(e),c,`require('${e}')`);s[e]=t&&`default`in t?t.default:t}));for(let e=0;e<l.length;e++){let t=l[e];if(t.status===`rejected`){let n=t.reason instanceof Error?t.reason.message:String(t.reason);r(`Warning: failed to pre-load require('${o[e]}'): ${n}\n`)}}return s}function U(e,t,r){return i=>{let a=i.startsWith(`node:`)?i.slice(5):i;if(a===`fs`)return t;if(a===`process`)return r;if(a===`buffer`)return{Buffer:globalThis.Buffer};if(a===`path`){if(`path`in e)return e.path;if(i in e)return e[i];throw Error(`require('${i}'): path module not pre-loaded. Add require('path') as a static import.`)}if(A.has(a))throw N(i,a);if(I.has(a))throw Error(`require('${i}'): Node built-in '${a}' is not available in the browser environment.${{http:` Use fetch() instead.`,https:` Use fetch() instead.`,child_process:` Use exec() which is available as a shell bridge.`,crypto:` Use globalThis.crypto (Web Crypto API) instead.`}[a]||``}`);if(i in e)return e[i];if(a in e)return e[a];throw Error(`require('${i}'): module not pre-loaded. Use a string literal so it can be pre-fetched, or use \`await import('${n(i).toString()}')\` directly.`)}}async function W(e,t,n){let r=Object.keys(t),i=r.map(e=>t[e]),a=Object.getPrototypeOf(async function(){}).constructor,o=new a(...r,`"use strict";\n${e}`);try{return await o(...i),0}catch(e){return e instanceof L?e.code:(n(`${e instanceof Error?e.stack??e.message:String(e)}\n`),1)}}function G(e,t){if(!e&&!(t instanceof Request))return;let n=t instanceof Request?t:null,r=(e?.method??n?.method??`GET`).toUpperCase(),i={};if(e?.headers)if(e.headers instanceof Headers)e.headers.forEach((e,t)=>{i[t]=e});else if(Array.isArray(e.headers))for(let[t,n]of e.headers)i[t]=n;else Object.assign(i,e.headers);else n&&n.headers.forEach((e,t)=>{i[t]=e});let a;return e?.body!==void 0&&e?.body!==null&&e?.body!==``&&(a=typeof e.body==`string`?e.body:String(e.body)),{method:r,headers:i,body:a}}async function ce(e){return await import(n(e).toString())}function le(e){return{findTab:t=>e.call(`browser`,`findTab`,[de(t)]),ensureTab:(t,n={})=>e.call(`browser`,`ensureTab`,[t,fe(n)]),eval:(t,n)=>e.call(`browser`,`eval`,[K(t),q(n,!1)]),evalAsync:(t,n)=>e.call(`browser`,`evalAsync`,[K(t),q(n,!0)]),cookie:(t,n)=>e.call(`browser`,`cookie`,[K(t),n]),localStorage:(t,n)=>e.call(`browser`,`localStorage`,[K(t),n]),fetch:(t,n,r={})=>e.call(`browser`,`evalAsync`,[K(t),ue(n,r)]),websocket:pe(e)}}function K(e){if(typeof e==`string`)return e;if(e&&typeof e==`object`&&typeof e.targetId==`string`)return e.targetId;throw TypeError(`browser: expected a tab handle or targetId string`)}function q(e,t){if(typeof e==`function`)return`(${e.toString()})()`;if(typeof e==`string`)return e;throw TypeError(`browser.eval/evalAsync: source must be a function or string`)}function ue(e,t={}){let n={},r=t.headers??{};for(let[e,t]of Object.entries(r))typeof t==`string`&&(n[e]=t);let i=typeof t.method==`string`?t.method:`GET`,a=t.credentials===`same-origin`||t.credentials===`omit`?t.credentials:`include`,o;t.body!==void 0&&t.body!==null&&(typeof t.body==`string`?o=t.body:(o=JSON.stringify(t.body),Object.keys(n).some(e=>e.toLowerCase()===`content-type`)||(n[`Content-Type`]=`application/json`)));let s={method:i,credentials:a,headers:n};o!==void 0&&(s.body=o);for(let e of[`mode`,`cache`,`redirect`,`referrer`,`referrerPolicy`,`integrity`,`keepalive`]){let n=t[e];n!==void 0&&(s[e]=n)}return`(async () => {const r = await fetch(`+JSON.stringify(e)+`, `+JSON.stringify(s)+`);const h = {};r.headers.forEach((v, k) => { h[k] = v; });const ct = r.headers.get('content-type') || '';let b;if (ct.indexOf('application/json') !== -1) {try { b = await r.json(); } catch (e) { b = await r.text(); }} else { b = await r.text(); }return { ok: r.ok, status: r.status, headers: h, body: b };})()`}function de(e){let t={};return e.domain!==void 0&&(t.domain=e.domain),e.urlMatch!==void 0&&(t.urlMatch=e.urlMatch instanceof RegExp?e.urlMatch.source:e.urlMatch),t}function fe(e){return e.matchUrl===void 0?{}:{matchUrl:e.matchUrl instanceof RegExp?e.matchUrl.source:e.matchUrl}}function pe(e){function t(t){return{...t,async update(n){let r={};return n.urlMatch!==void 0&&(r.urlMatch=n.urlMatch===null?null:n.urlMatch instanceof RegExp?n.urlMatch.source:n.urlMatch),n.filter!==void 0&&(r.filter=n.filter),e.call(`browser`,`wsUpdate`,[t.id,r])},async close(){return e.call(`browser`,`wsClose`,[t.id])}}}return{on(n,r={}){let i=K(n),a=r.urlMatch===void 0?void 0:r.urlMatch instanceof RegExp?r.urlMatch.source:r.urlMatch,o,s={filter(e){if(typeof e==`function`||typeof e==`string`)throw TypeError(`browser.websocket: filter must be a declarative JSON object, not a function or string`);return o=e,s},async forward(n){return t(await e.call(`browser`,`wsObserve`,[{targetId:i,urlMatch:a,filter:o,forward:n}]))}};return s},async list(){return e.call(`browser`,`wsList`,[])}}}function J(e){if(e instanceof Uint8Array)return e;if(ArrayBuffer.isView(e))return new Uint8Array(e.buffer,e.byteOffset,e.byteLength);if(e instanceof ArrayBuffer)return new Uint8Array(e);throw TypeError(`expected an ArrayBuffer or typed array`)}function Y(e){return new DataView(e.buffer,e.byteOffset,e.byteLength)}function X(e){return e==null?[]:Array.isArray(e)?e:[e]}function Z(e,t){let n=t.handle,r=e=>({status:e.status,data:Y(e.bytes)});return{...t,open:()=>e.call(`usb`,`open`,[n]),close:()=>e.call(`usb`,`close`,[n]),reset:()=>e.call(`usb`,`reset`,[n]),selectConfiguration:t=>e.call(`usb`,`selectConfig`,[n,t]),claimInterface:t=>e.call(`usb`,`claim`,[n,t]),releaseInterface:t=>e.call(`usb`,`release`,[n,t]),controlTransferIn:async(t,i)=>r(await e.call(`usb`,`controlIn`,[n,t,i])),controlTransferOut:(t,r)=>e.call(`usb`,`controlOut`,[n,t,J(r)]),transferIn:async(t,i)=>r(await e.call(`usb`,`transferIn`,[n,t,i])),transferOut:(t,r)=>e.call(`usb`,`transferOut`,[n,t,J(r)])}}function me(e){return{list:async()=>(await e.call(`usb`,`list`,[])).map(t=>Z(e,t)),request:async t=>Z(e,await e.call(`usb`,`request`,[X(t)]))}}function Q(e,t){let n=t.handle;return{...t,open:t=>e.call(`serial`,`open`,[n,t]),close:()=>e.call(`serial`,`close`,[n]),read:(t={})=>e.call(`serial`,`read`,[n,{maxBytes:t.maxBytes??t.bytes,until:t.until?J(t.until):void 0,timeoutMs:t.timeoutMs}]),write:t=>e.call(`serial`,`write`,[n,J(t)]),getSignals:()=>e.call(`serial`,`getSignals`,[n]),setSignals:t=>e.call(`serial`,`setSignals`,[n,t])}}function he(e){return{list:async()=>(await e.call(`serial`,`list`,[])).map(t=>Q(e,t)),request:async t=>Q(e,await e.call(`serial`,`request`,[X(t)]))}}function $(e,t){let n=t.handle,r=new Set,i=new Set,a=!1,o=null,s=e=>{let t=e;if(!t||t.handle!==n)return;let i={reportId:t.reportId,data:Y(t.bytes)};for(let e of[...r])try{e(i)}catch{}},c=()=>{a||(a=!0,o=e.onEvent?e.onEvent(`hid-input-report`,s):null,e.call(`hid`,`subscribeInputReports`,[n]).catch(()=>{a=!1,o?.(),o=null}))},l=()=>{!a||r.size>0||(a=!1,o?.(),o=null,e.call(`hid`,`unsubscribeInputReports`,[n]).catch(()=>{}))};return{...t,open:()=>e.call(`hid`,`open`,[n]),close:()=>e.call(`hid`,`close`,[n]),sendReport:(t,r)=>e.call(`hid`,`sendReport`,[n,t,J(r)]),sendFeatureReport:(t,r)=>e.call(`hid`,`sendFeatureReport`,[n,t,J(r)]),receiveFeatureReport:async t=>Y((await e.call(`hid`,`receiveFeatureReport`,[n,t])).bytes),addEventListener(e,t){if(e===`inputreport`)r.add(t),c();else if(e===`disconnect`)i.add(t);else throw TypeError(`hid device: unknown event type '${String(e)}'`)},removeEventListener(e,t){e===`inputreport`?(r.delete(t),l()):e===`disconnect`&&i.delete(t)},onInputReport(e){r.add(e),c()}}}function ge(e){return{list:async()=>(await e.call(`hid`,`list`,[])).map(t=>$(e,t)),request:async t=>{let n=(await e.call(`hid`,`request`,[X(t)]))[0];if(!n)throw Error(`No device selected.`);return $(e,n)}}}const _e={postMessage:(e,t)=>t?self.postMessage(e,t):self.postMessage(e),addEventListener:(e,t)=>self.addEventListener(e,t),removeEventListener:(e,t)=>self.removeEventListener(e,t)};self.addEventListener(`message`,e=>{if(e.data?.type!==`realm-init`)return;let t=e.data;t.kind===`js`&&z(t,_e).catch(e=>{let t={type:`realm-error`,message:e instanceof Error?e.message:String(e)};self.postMessage(t)})});
|