sliccy 6.212.0 → 6.214.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/node-server/_shared/index.d.ts +1 -0
- package/dist/node-server/_shared/index.d.ts.map +1 -1
- package/dist/node-server/_shared/index.js +1 -0
- package/dist/node-server/_shared/index.js.map +1 -1
- package/dist/node-server/_shared/raw-fetch-protocol.d.ts +96 -3
- package/dist/node-server/_shared/raw-fetch-protocol.d.ts.map +1 -1
- package/dist/node-server/_shared/raw-fetch-protocol.js +50 -9
- package/dist/node-server/_shared/raw-fetch-protocol.js.map +1 -1
- package/dist/node-server/_shared/raw-fetch-upload.d.ts +55 -0
- package/dist/node-server/_shared/raw-fetch-upload.d.ts.map +1 -0
- package/dist/node-server/_shared/raw-fetch-upload.js +123 -0
- package/dist/node-server/_shared/raw-fetch-upload.js.map +1 -0
- package/dist/node-server/_shared/secret-masking.d.ts +9 -0
- package/dist/node-server/_shared/secret-masking.d.ts.map +1 -1
- package/dist/node-server/_shared/secret-masking.js +16 -0
- package/dist/node-server/_shared/secret-masking.js.map +1 -1
- package/dist/node-server/_shared/secrets-pipeline.js +1 -1
- package/dist/node-server/_shared/secrets-pipeline.js.map +1 -1
- package/dist/node-server/routes/fetch-proxy-raw.js +48 -17
- package/dist/node-server/routes/fetch-proxy.js +2 -8
- package/dist/ui/.vite/manifest.json +308 -272
- package/dist/ui/assets/{SKILL-nEVBLbup.js → SKILL-BTLkJLaZ.js} +1 -1
- package/dist/ui/assets/SKILL-CIoKQddX.js +1 -0
- package/dist/ui/assets/__vite-browser-external-BLOvPDKs.js +1 -0
- package/dist/ui/assets/{account-store-DdclMpWp.js → account-store-LOYOaXPS.js} +1 -1
- package/dist/ui/assets/{account-store-DnIs5WZM.js → account-store-mj3M__ZD.js} +2 -2
- package/dist/ui/assets/{adobe-BNRJjQn6.js → adobe-Ci_6RaZZ.js} +1 -1
- package/dist/ui/assets/{adobe-w_RhhSWv.js → adobe-DkEc11pR.js} +2 -2
- package/dist/ui/assets/{agent-panels-B-6e5X0F.js → agent-panels-r3FsGirt.js} +1 -1
- package/dist/ui/assets/{almost-bash-shell-headless-D19kpvHY.js → almost-bash-shell-headless-fdY1pWnk.js} +76 -76
- package/dist/ui/assets/{apply-layout-oUk89jk1.js → apply-layout-CNnDjCqa.js} +1 -1
- package/dist/ui/assets/{apps-oJ_nTgiK.js → apps-RzjcaxST.js} +1 -1
- package/dist/ui/assets/{azure-openai-zqUyJv0c.js → azure-openai-CcujkEbx.js} +1 -1
- package/dist/ui/assets/{azure-openai-BKBBD2Dq.js → azure-openai-DbL0Efy1.js} +1 -1
- package/dist/ui/assets/{backend-hostfs-BotdHD_S.js → backend-hostfs-GeA151fK.js} +1 -1
- package/dist/ui/assets/{bsh-watchdog-TYuawE-B.js → bsh-watchdog-CQDvJ-W5.js} +1 -1
- package/dist/ui/assets/{capability-BgC-ru0t.js → capability-BArmeMYf.js} +2 -2
- package/dist/ui/assets/{cdp-C0InCdRQ.js → cdp-BJkgOOs2.js} +1 -1
- package/dist/ui/assets/{cerebras-ChWjfEi0.js → cerebras-CPSfN7Oh.js} +1 -1
- package/dist/ui/assets/{cerebras-DL4U9Vjg.js → cerebras-W_mYyxDM.js} +1 -1
- package/dist/ui/assets/{client-dISfU5Wf.js → client-C4_ggaf5.js} +1 -1
- package/dist/ui/assets/{composer-speech-d-ejBNSK.js → composer-speech-Dr-_tnut.js} +1 -1
- package/dist/ui/assets/{connect-surface-DNUrGg9g.js → connect-surface-DlvSIE44.js} +1 -1
- package/dist/ui/assets/{content-type-_QKWY0B2.js → content-type-c5DAvCWD.js} +1 -1
- package/dist/ui/assets/{core-DZ0CleVD.js → core-BOHj4mqw.js} +2 -2
- package/dist/ui/assets/{core-D8SLLGdB.js → core-CbbeQz7g.js} +1 -1
- package/dist/ui/assets/{directed-approval-ol0Z6v9I.js → directed-approval-DN69MpLV.js} +1 -1
- package/dist/ui/assets/{discovery-preference-MWZVi-PZ.js → discovery-preference-D1cUzn0M.js} +1 -1
- package/dist/ui/assets/{emscripten-vfs-hook-fCUbQRCb.js → emscripten-vfs-hook-C0i1txEP.js} +1 -1
- package/dist/ui/assets/{ensure-speech-assets-S71yPbdv.js → ensure-speech-assets--Br7x23m.js} +1 -1
- package/dist/ui/assets/{esbuild-wasm-llEEkCQu.js → esbuild-wasm-DeTghvWH.js} +1 -1
- package/dist/ui/assets/{extension-ops-CEprwZyb.js → extension-ops-i_xfuHy5.js} +1 -1
- package/dist/ui/assets/ffmpeg-wasm-sx-3yVAE.js +1 -0
- package/dist/ui/assets/{float-topology-B0_dG7En.js → float-topology-C9GjBEv-.js} +1 -1
- package/dist/ui/assets/follower-navigate-watcher-T4oXQ4JA.js +1 -0
- package/dist/ui/assets/{frozen-archive-writer-khicEqGd.js → frozen-archive-writer-CsnRq2Fo.js} +1 -1
- package/dist/ui/assets/{fs-CIR1p_m7.js → fs-3tVRLaAs.js} +1 -1
- package/dist/ui/assets/{fs-D6QJU-ZE.js → fs-bckH0ij-.js} +2 -2
- package/dist/ui/assets/{gelatiere-store-CYdUzk1p.js → gelatiere-store-BedC-iQI.js} +1 -1
- package/dist/ui/assets/{gelatiere-unit-Dzkphhv5.js → gelatiere-unit-BMZaEgI_.js} +1 -1
- package/dist/ui/assets/{github-BdQ6NNi6.js → github-Cz3_Cgtx.js} +2 -2
- package/dist/ui/assets/{github-8QTzsnR3.js → github-DH96ID40.js} +1 -1
- package/dist/ui/assets/{github-auth-CgSRRmdA.js → github-auth-DsC7LRzY.js} +1 -1
- package/dist/ui/assets/{github-copilot-Beq3TkEz.js → github-copilot-D1Suyr1Z.js} +1 -1
- package/dist/ui/assets/{github-copilot-C6ZXCgIT.js → github-copilot-qo6DtC8D.js} +1 -1
- package/dist/ui/assets/{github-install-BV6F_EyI.js → github-install-E1XTguLp.js} +1 -1
- package/dist/ui/assets/{github-zip-nn7aW2E1.js → github-zip-wWDOzeZq.js} +1 -1
- package/dist/ui/assets/{guest-tool-gate-4cZHoDbf.js → guest-tool-gate-BT-aJI8_.js} +1 -1
- package/dist/ui/assets/{hear-HND90jpV.js → hear-BTlOwgUa.js} +1 -1
- package/dist/ui/assets/{help-Dgt88ySg.js → help-BbHzLKVE.js} +1 -1
- package/dist/ui/assets/installer-BfItVeoV.js +2 -0
- package/dist/ui/assets/{interrupted-work-recovery-niFgJlYA.js → interrupted-work-recovery-Ci9VV5oX.js} +1 -1
- package/dist/ui/assets/{ipk-mamba-DMPz0Na-.js → ipk-mamba-CDqRG8B5.js} +1 -1
- package/dist/ui/assets/{js-realm-worker-Dt6CkC-q.js → js-realm-worker-MMvWwE2v.js} +2 -2
- package/dist/ui/assets/jsh-executor-DPZw0F-Y.js +18 -0
- package/dist/ui/assets/{kernel-worker-Bejt-Ojz.js → kernel-worker-BszG1wZX.js} +10 -10
- package/dist/ui/assets/{lick-ws-bridge-Nul1wz09.js → lick-ws-bridge-CHDwiqUh.js} +1 -1
- package/dist/ui/assets/{lick-ws-bridge-DoT1E5ir.js → lick-ws-bridge-CpfyWpA1.js} +1 -1
- package/dist/ui/assets/{live-session-curation-BKsScSRB.js → live-session-curation-Ca2l7n4Y.js} +1 -1
- package/dist/ui/assets/{live-session-snapshot-6V9mPUM5.js → live-session-snapshot-CwIg_xLr.js} +1 -1
- package/dist/ui/assets/{local-llm-C0NdLczW.js → local-llm-JCt1rw3P.js} +1 -1
- package/dist/ui/assets/{local-llm-DoZ2LiSE.js → local-llm-nmjO5IZu.js} +1 -1
- package/dist/ui/assets/{magick-wasm-BL5NYmcE.js → magick-wasm-BbnwhVj1.js} +1 -1
- package/dist/ui/assets/{main-cherry-C3pK2VKW.js → main-cherry-DEfI7-Tc.js} +1 -1
- package/dist/ui/assets/main-w6Exm8L8.js +22 -0
- package/dist/ui/assets/{memory-curation-seam-B_5OPYdP.js → memory-curation-seam-Cobbz5Zn.js} +1 -1
- package/dist/ui/assets/{memory-health-CRH2Blzq.js → memory-health-vxHFOAyj.js} +1 -1
- package/dist/ui/assets/{memory-write-execute-BfCExMYN.js → memory-write-execute-BX9yxL7O.js} +1 -1
- package/dist/ui/assets/{merge-folded-cost-into-frozen-CoL4Bfzs.js → merge-folded-cost-into-frozen-CZVMMkqD.js} +1 -1
- package/dist/ui/assets/{mount-B3v77n4z.js → mount-B9J1PFNY.js} +3 -3
- package/dist/ui/assets/{mount-TnWJttSG.js → mount-B_HxGi2u.js} +1 -1
- package/dist/ui/assets/{mount-bridge-client-DkrmF1xh.js → mount-bridge-client-DEndUe7m.js} +1 -1
- package/dist/ui/assets/{mount-bridge-client-CaHZ1pkb.js → mount-bridge-client-DZrU_hNA.js} +1 -1
- package/dist/ui/assets/{new-session-C8MNLQeR.js → new-session-DxWAkfFC.js} +2 -2
- package/dist/ui/assets/{oauth-bootstrap-BW3jawLe.js → oauth-bootstrap-CUx3MHQU.js} +2 -2
- package/dist/ui/assets/{oauth-service-_PUd0RqU.js → oauth-service-B-vKfxAF.js} +1 -1
- package/dist/ui/assets/{oauth-service-B_A2Hp66.js → oauth-service-Bx_Dy3GC.js} +1 -1
- package/dist/ui/assets/{onboarding-orchestrator-Ca5D3wWS.js → onboarding-orchestrator-BmmHvIVu.js} +1 -1
- package/dist/ui/assets/{openai-codex-B-c0ZWNV.js → openai-codex-C4jT9E_A.js} +1 -1
- package/dist/ui/assets/{openai-codex-CMsdDz1G.js → openai-codex-J2b5KblU.js} +1 -1
- package/dist/ui/assets/{openrouter-B7Sm8SVp.js → openrouter-DyTOpALx.js} +1 -1
- package/dist/ui/assets/{openrouter-free-D6PoJTox.js → openrouter-free-7H1zXRQU.js} +1 -1
- package/dist/ui/assets/{openrouter-free-F9UehDw-.js → openrouter-free-Pt5y06fc.js} +1 -1
- package/dist/ui/assets/{openrouter-oauth-ClC2jnRu.js → openrouter-oauth-CEBed1-l.js} +1 -1
- package/dist/ui/assets/{openrouter-oauth-CWDz3gd8.js → openrouter-oauth-CSxyP2rj.js} +1 -1
- package/dist/ui/assets/{openrouter-ChF-ckvt.js → openrouter-ofkT0aoX.js} +1 -1
- package/dist/ui/assets/{opfs-mount-mkZhMkc1.js → opfs-mount-BuqP2uD5.js} +1 -1
- package/dist/ui/assets/{page-approval-service-DRZEjhrX.js → page-approval-service-C8ldGtOt.js} +1 -1
- package/dist/ui/assets/panel-rpc-handlers-CN-bZk_l.js +2 -0
- package/dist/ui/assets/{panelize-shell-RRJ2rlAy.js → panelize-shell-DUJYWiZV.js} +1 -1
- package/dist/ui/assets/{pi-edit-execution-Cn6P8kEd.js → pi-edit-execution-8jCHI3TS.js} +1 -1
- package/dist/ui/assets/{port-bridge-client-DvO4atpq.js → port-bridge-client-BmVU5J9w.js} +1 -1
- package/dist/ui/assets/{port-bridge-client-BiWcfZSc.js → port-bridge-client-D_erEovW.js} +1 -1
- package/dist/ui/assets/{provider-CFbeLwlx.js → provider--mGXmJpF.js} +2 -2
- package/dist/ui/assets/{provider-BkkOFpKq.js → provider-Bt6qZtyJ.js} +1 -1
- package/dist/ui/assets/{provider-settings-Df1UWum6.js → provider-settings-BwJG3uTg.js} +1 -1
- package/dist/ui/assets/provider-store-access-CDPwdTH9.js +1 -0
- package/dist/ui/assets/provider-store-access-CDdrU9n9.js +1 -0
- package/dist/ui/assets/{providers-narfgv33.js → providers-D1c5wfUX.js} +1 -1
- package/dist/ui/assets/{providers-DelYSiJM.js → providers-DIoYD57Y.js} +2 -2
- package/dist/ui/assets/proxied-fetch-CoZ8jHud.js +1 -0
- package/dist/ui/assets/proxied-fetch-Cplb-Tee.js +2 -0
- package/dist/ui/assets/proxied-fetch-raw-Cb_C44Cy.js +1 -0
- package/dist/ui/assets/proxied-fetch-raw-Di1Dm8fV.js +2 -0
- package/dist/ui/assets/proxied-fetch-raw-port-Dv7XYtb4.js +1 -0
- package/dist/ui/assets/proxied-fetch-raw-types-BapqdEuh.js +1 -0
- package/dist/ui/assets/proxy-error-BSFYY7jj.js +1 -0
- package/dist/ui/assets/py-realm-worker-COX6g80P.js +259 -0
- package/dist/ui/assets/pyodide-BC3toCIx.js +3 -0
- package/dist/ui/assets/{quick-llm-t5wZbj0G.js → quick-llm-DEYdfXLe.js} +1 -1
- package/dist/ui/assets/{realm-inprocess-DIZ0NkAs.js → realm-inprocess-NbPERg8o.js} +2 -2
- package/dist/ui/assets/{realm-unhandled-rejections-BIyM8soC.js → realm-unhandled-rejections-6MGGflOC.js} +1 -1
- package/dist/ui/assets/{realm-unhandled-rejections-DzT6eKFi.js → realm-unhandled-rejections-DsHiCtIN.js} +1 -1
- package/dist/ui/assets/{recovery-screen-DvZoe1eu.js → recovery-screen-DvIBDOSX.js} +1 -1
- package/dist/ui/assets/{redirect-uri-DvNqGm3U.js → redirect-uri-31pXIMS9.js} +1 -1
- package/dist/ui/assets/{remote-terminal-view-BeYl7akD.js → remote-terminal-view-CYcyqFH0.js} +2 -2
- package/dist/ui/assets/{request-body-BF4moGct.js → request-body-uLA3lKVr.js} +1 -1
- package/dist/ui/assets/{require-guards-Du4bUc9R.js → require-guards-DKdJuMhY.js} +1 -1
- package/dist/ui/assets/rest-ops-BMlgdArp.js +1 -0
- package/dist/ui/assets/{rest-ops-B4SFZmC5.js → rest-ops-DDzQA0qH.js} +1 -1
- package/dist/ui/assets/{restore-B7CtAq9P.js → restore-DsWz89XD.js} +1 -1
- package/dist/ui/assets/{run-DkUy3OHx.js → run-BDHhQhn9.js} +2 -2
- package/dist/ui/assets/{run-DVDUpupT.js → run-BmkgHTe9.js} +1 -1
- package/dist/ui/assets/{run-DpwgbNbp.js → run-C3gSJP50.js} +1 -1
- package/dist/ui/assets/{run-BVpDhce0.js → run-C4UypAKZ.js} +1 -1
- package/dist/ui/assets/{run-NrNIVu5b.js → run-CVBBxsHF.js} +3 -3
- package/dist/ui/assets/{run-C2YgBAHx.js → run-CgY-k2R4.js} +1 -1
- package/dist/ui/assets/{run-BBYfg5ni.js → run-CnjjyjOW.js} +1 -1
- package/dist/ui/assets/{run-VCYF-r1b.js → run-D7KFxRYl.js} +1 -1
- package/dist/ui/assets/run-DblIhkAI.js +15 -0
- package/dist/ui/assets/{run-BySbsyjF.js → run-zJ9eMMQs.js} +2 -2
- package/dist/ui/assets/{screencapture-run-DUAmyetz.js → screencapture-run-DRiSGUJ9.js} +1 -1
- package/dist/ui/assets/{secret-env-iwcdxjpw.js → secret-env-DQjPh_hw.js} +1 -1
- package/dist/ui/assets/secret-topology-Dm_PZRZx.js +1 -0
- package/dist/ui/assets/{secrets-bridge-client-B_CG-HIg.js → secrets-bridge-client-CWv2_nw7.js} +1 -1
- package/dist/ui/assets/{secrets-bridge-client-Cxg_UIbw.js → secrets-bridge-client-EgBSROu5.js} +1 -1
- package/dist/ui/assets/{session-command-memory-CwZxueuC.js → session-command-memory-BAXs37QY.js} +2 -2
- package/dist/ui/assets/{session-jsonl-Bf2fgFhg.js → session-jsonl-BaaVYpSW.js} +1 -1
- package/dist/ui/assets/{session-jsonl-B0APtun9.js → session-jsonl-CNJ5nQj_.js} +1 -1
- package/dist/ui/assets/{session-search-index-Cj0yWWuZ.js → session-search-index-Cx9WW_ku.js} +1 -1
- package/dist/ui/assets/{setup-feature-flags-remote-DobdVTx1.js → setup-feature-flags-remote-DHucwzGy.js} +1 -1
- package/dist/ui/assets/{setup-model-catalog-D4LHaeXg.js → setup-model-catalog-BKM4fbRi.js} +1 -1
- package/dist/ui/assets/shared-D-ZRFYou.js +4 -0
- package/dist/ui/assets/shared-DSEuryGJ.js +1 -0
- package/dist/ui/assets/{signed-fetch-i5c9uHzg.js → signed-fetch-CR7EwhGf.js} +1 -1
- package/dist/ui/assets/{silent-renew-backoff-BUgLOZtF.js → silent-renew-backoff-4vFyj0nu.js} +1 -1
- package/dist/ui/assets/slicc-tls-engine-BgkIbm-w.wasm +0 -0
- package/dist/ui/assets/slicc-tls-engine-DfyKw1Ua.js +1 -0
- package/dist/ui/assets/slicc-version-cxz32egl.js +1 -0
- package/dist/ui/assets/{snapshot-CxBYeic7.js → snapshot-DVQZY6hr.js} +1 -1
- package/dist/ui/assets/{snapshot-features-D9YdXtgT.js → snapshot-features--DrQiUnP.js} +1 -1
- package/dist/ui/assets/{soundscape-VpddA9af.js → soundscape-B7jEIpKk.js} +1 -1
- package/dist/ui/assets/{speak-DU6xYfaW.js → speak-CAH5AZ3F.js} +1 -1
- package/dist/ui/assets/sprinkle-manager-jT_9TC4-.js +1 -0
- package/dist/ui/assets/{sprinkle-renderer-D_eHK453.js → sprinkle-renderer-Biqc9HbL.js} +1 -1
- package/dist/ui/assets/{ssh-DYTFFLnN.js → ssh-Bs6hnIoe.js} +1 -1
- package/dist/ui/assets/{state-BEL8NQ3N.js → state-BFhn4aXS.js} +1 -1
- package/dist/ui/assets/{store-Ce8lHof4.js → store-BpaVjCMK.js} +1 -1
- package/dist/ui/assets/{store-C8pkV9xX.js → store-CBcILUPG.js} +1 -1
- package/dist/ui/assets/{sudo-Dz77pSRv.js → sudo-Bmb8bOGH.js} +1 -1
- package/dist/ui/assets/{supervisor-CODgsiun.js → supervisor-DtI-h2it.js} +1 -1
- package/dist/ui/assets/{sync-dialog-DEd-6_ea.js → sync-dialog-WB1btoub.js} +1 -1
- package/dist/ui/assets/{transformers-env-DDxx-_yr.js → transformers-env-BiujVgd6.js} +1 -1
- package/dist/ui/assets/tray-leader-BoVK1Jmf.js +1 -0
- package/dist/ui/assets/{tray-leave-runtime-BLeKsvgA.js → tray-leave-runtime-JRyUKoD0.js} +1 -1
- package/dist/ui/assets/{tray-runtime-config-CEuo4NwB.js → tray-runtime-config-ConrTcOf.js} +1 -1
- package/dist/ui/assets/{tray-sidecar-B5Rwvi0w.js → tray-sidecar-DpqpRZJO.js} +1 -1
- package/dist/ui/assets/{turn-journal-DgrDAXyz.js → turn-journal-B1HjlARv.js} +1 -1
- package/dist/ui/assets/{upgrade-detection-DkrC9knp.js → upgrade-detection-CHI7eDJf.js} +1 -1
- package/dist/ui/assets/{upskill-lick-skip-x-HPkkoo.js → upskill-lick-skip-uWCWgO5X.js} +1 -1
- package/dist/ui/assets/{voice-reply-DN-og12Q.js → voice-reply-BoIUNHC0.js} +1 -1
- package/dist/ui/assets/{wc-attach-BxBMMvBD.js → wc-attach-B2mbrCaY.js} +2 -2
- package/dist/ui/assets/{wc-browser-Bx_tyqby.js → wc-browser-ovxG6VfR.js} +1 -1
- package/dist/ui/assets/{wc-computers--Hh_a1eS.js → wc-computers-CAD7OpGs.js} +1 -1
- package/dist/ui/assets/{wc-detached-Cfb7cdsS.js → wc-detached-CMwapTus.js} +1 -1
- package/dist/ui/assets/wc-extension-BzxuUqsw.js +2 -0
- package/dist/ui/assets/{wc-follower-CY8MJG2d.js → wc-follower-BJW0oZJb.js} +3 -3
- package/dist/ui/assets/{wc-follower-oauth-Qp2Onk42.js → wc-follower-oauth-CvltH7bi.js} +1 -1
- package/dist/ui/assets/{wc-gelatiere-CIqpoRvp.js → wc-gelatiere-CFeucCII.js} +1 -1
- package/dist/ui/assets/{wc-live-kIulpDGT.js → wc-live-DJCkQIqD.js} +5 -5
- package/dist/ui/assets/{wc-nav-CKLAJB62.js → wc-nav-B5a-p8nj.js} +2 -2
- package/dist/ui/assets/{wc-onboarding-CCfbxIFk.js → wc-onboarding-DRCbL2n4.js} +2 -2
- package/dist/ui/assets/{wc-permissions-gkkaKIYQ.js → wc-permissions-Jpwq1QQ2.js} +2 -2
- package/dist/ui/assets/{wc-placeholder-CPbGysCM.js → wc-placeholder-CHppBHKE.js} +3 -3
- package/dist/ui/assets/{wc-secret-request-C-t_JIqx.js → wc-secret-request-C49-ts29.js} +1 -1
- package/dist/ui/assets/{wc-settings-C3gOS2HO.js → wc-settings-DWJhwIX-.js} +3 -3
- package/dist/ui/assets/{wc-shell-C5TUWPbD.js → wc-shell-BphmvrVA.js} +4 -4
- package/dist/ui/assets/{wc-shortcut-config-CxyrO44G.js → wc-shortcut-config-CmkwEHb2.js} +1 -1
- package/dist/ui/assets/wc-sprinkles-DHOmRbYx.js +2 -0
- package/dist/ui/assets/{wc-transcript-export-uviFziTO.js → wc-transcript-export-e16aeEUK.js} +2 -2
- package/dist/ui/assets/{wc-tray-C_LlCq8n.js → wc-tray-DhGd6gx5.js} +4 -4
- package/dist/ui/assets/welcome-detection-BDqXMRLD.js +1 -0
- package/dist/ui/assets/{whisper-session-DpmN2H-S.js → whisper-session-CtojtMLX.js} +2 -2
- package/dist/ui/assets/{xai-grok-Qkm8D-bR.js → xai-grok-BjJME64h.js} +1 -1
- package/dist/ui/assets/{xai-grok-DqHHYruF.js → xai-grok-CefU5nmr.js} +1 -1
- package/dist/ui/index.html +10 -10
- package/dist/ui/packages/webapp/index.html +10 -10
- package/package.json +1 -1
- package/dist/ui/assets/SKILL-CN4LOg1h.js +0 -1
- package/dist/ui/assets/__vite-browser-external-Do0Euzvr.js +0 -1
- package/dist/ui/assets/fetch-body-1l9I58Vk.js +0 -1
- package/dist/ui/assets/ffmpeg-wasm-DGDKCZ27.js +0 -1
- package/dist/ui/assets/follower-navigate-watcher-DVWQWTGU.js +0 -1
- package/dist/ui/assets/installer-BdG_mJUp.js +0 -2
- package/dist/ui/assets/jsh-executor-m_BRqJJW.js +0 -18
- package/dist/ui/assets/main-DmLxMDGT.js +0 -22
- package/dist/ui/assets/panel-rpc-handlers-BGopQTZk.js +0 -2
- package/dist/ui/assets/provider-store-access-440PUQnq.js +0 -1
- package/dist/ui/assets/provider-store-access-ioP6z6ei.js +0 -1
- package/dist/ui/assets/proxied-fetch-Ba8A2Dlh.js +0 -1
- package/dist/ui/assets/proxied-fetch-DiXk_XGs.js +0 -2
- package/dist/ui/assets/proxied-fetch-raw-CzaxeyeU.js +0 -1
- package/dist/ui/assets/py-realm-worker-Dd5csRhS.js +0 -259
- package/dist/ui/assets/pyodide-CrWMp4az.js +0 -3
- package/dist/ui/assets/resolver-Cuxoosmc.js +0 -4
- package/dist/ui/assets/rest-ops-DKsDUOxE.js +0 -1
- package/dist/ui/assets/run-BUXpkB7_.js +0 -14
- package/dist/ui/assets/secret-topology-CZv6A9HW.js +0 -1
- package/dist/ui/assets/shared-BDXQKitm.js +0 -1
- package/dist/ui/assets/shared-dvo4ZY2y.js +0 -1
- package/dist/ui/assets/slicc-version-CyiNVflt.js +0 -1
- package/dist/ui/assets/sprinkle-manager-B23UQfKW.js +0 -1
- package/dist/ui/assets/tray-leader-PwhN5FVH.js +0 -1
- package/dist/ui/assets/wc-extension-DtmFrIBz.js +0 -2
- package/dist/ui/assets/wc-sprinkles-CdV_-XON.js +0 -2
- package/dist/ui/assets/welcome-detection-62JgQjpE.js +0 -1
|
@@ -22,6 +22,7 @@ export * from './oauth-extra-domains-storage.js';
|
|
|
22
22
|
export * from './preview-url.js';
|
|
23
23
|
export * from './proxy-headers.js';
|
|
24
24
|
export * from './raw-fetch-protocol.js';
|
|
25
|
+
export * from './raw-fetch-upload.js';
|
|
25
26
|
export * from './runtime-env.js';
|
|
26
27
|
export * from './secret-env-schema.js';
|
|
27
28
|
export * from './secret-masking.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,cAAc,uBAAuB,CAAC;AACtC,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,kCAAkC,CAAC;AACjD,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,yBAAyB,CAAC;AACxC,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAC7B,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,cAAc,uBAAuB,CAAC;AACtC,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,kCAAkC,CAAC;AACjD,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAC7B,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC"}
|
|
@@ -23,6 +23,7 @@ export * from './oauth-extra-domains-storage.js';
|
|
|
23
23
|
export * from './preview-url.js';
|
|
24
24
|
export * from './proxy-headers.js';
|
|
25
25
|
export * from './raw-fetch-protocol.js';
|
|
26
|
+
export * from './raw-fetch-upload.js';
|
|
26
27
|
export * from './runtime-env.js';
|
|
27
28
|
export * from './secret-env-schema.js';
|
|
28
29
|
export * from './secret-masking.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,iFAAiF;AAEjF,cAAc,uBAAuB,CAAC;AACtC,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,kCAAkC,CAAC;AACjD,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,yBAAyB,CAAC;AACxC,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAC7B,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,iFAAiF;AAEjF,cAAc,uBAAuB,CAAC;AACtC,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,kCAAkC,CAAC;AACjD,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAC7B,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC"}
|
|
@@ -68,13 +68,21 @@ export declare function parseRawFetchProbeReply(value: unknown): RawFetchProbeRe
|
|
|
68
68
|
/** Content type of a raw-mode answer on the node-server hop. */
|
|
69
69
|
export declare const RAW_FETCH_CONTENT_TYPE = "application/vnd.slicc.raw-fetch";
|
|
70
70
|
/**
|
|
71
|
-
* Request-body ceiling
|
|
72
|
-
* buffers
|
|
73
|
-
*
|
|
71
|
+
* Request-body ceiling for the uploads the node-server hop (CLI and cloud)
|
|
72
|
+
* buffers: text and HMAC-signed bodies, and binary bodies below the stream
|
|
73
|
+
* threshold (see `raw-fetch-upload.ts`). Past it the bridge answers 413 and
|
|
74
|
+
* the webapp refuses before sending.
|
|
74
75
|
*/
|
|
75
76
|
export declare const RAW_FETCH_BRIDGE_REQUEST_BODY_CAP: number;
|
|
76
77
|
/** Upper bound on one encoded response-head frame. */
|
|
77
78
|
export declare const RAW_FETCH_MAX_HEAD_BYTES: number;
|
|
79
|
+
/** Content codings Node's fetch (undici) decodes on its own: the bridge floats. */
|
|
80
|
+
export declare const NODE_DECODED_CODINGS: ReadonlySet<string>;
|
|
81
|
+
/**
|
|
82
|
+
* Content codings Chrome's fetch decodes on its own: the extension float.
|
|
83
|
+
* Chrome advertises `zstd` itself and cannot be told otherwise.
|
|
84
|
+
*/
|
|
85
|
+
export declare const BROWSER_DECODED_CODINGS: ReadonlySet<string>;
|
|
78
86
|
/** `Accept-Encoding` a float sends upstream: exactly the codings it decodes. */
|
|
79
87
|
export declare const RAW_FETCH_ACCEPT_ENCODING = "gzip, deflate, br";
|
|
80
88
|
/**
|
|
@@ -97,6 +105,8 @@ export declare function rawAcceptEncoding(headers: Record<string, string>): stri
|
|
|
97
105
|
export declare function isDecodedPartialResponse(input: {
|
|
98
106
|
status: number;
|
|
99
107
|
headers: RawHeaderList;
|
|
108
|
+
/** Codings the float's fetch undid; defaults to {@link NODE_DECODED_CODINGS}. */
|
|
109
|
+
decodedCodings?: ReadonlySet<string>;
|
|
100
110
|
}): boolean;
|
|
101
111
|
/** Drop hop-by-hop and float-owned request headers, keeping order. */
|
|
102
112
|
export declare function stripRawRequestHeaders(headers: RawHeaderList): RawHeaderList;
|
|
@@ -115,6 +125,8 @@ export interface RawResponseHeaderInput {
|
|
|
115
125
|
* upstream `Content-Length` would no longer count the delivered bytes.
|
|
116
126
|
*/
|
|
117
127
|
bodyRewritten: boolean;
|
|
128
|
+
/** Codings the float's fetch undid; defaults to {@link NODE_DECODED_CODINGS}. */
|
|
129
|
+
decodedCodings?: ReadonlySet<string>;
|
|
118
130
|
}
|
|
119
131
|
/** Whether a response to `method` with `status` carries a body at all. */
|
|
120
132
|
export declare function rawResponseHasBody(method: string, status: number): boolean;
|
|
@@ -146,4 +158,85 @@ export declare function decodeRawResponseFrame(buffer: Uint8Array): {
|
|
|
146
158
|
head: RawFetchResponseHead;
|
|
147
159
|
rest: Uint8Array;
|
|
148
160
|
} | null;
|
|
161
|
+
/**
|
|
162
|
+
* Why a raw fetch failed without an upstream HTTP response. The accompanying
|
|
163
|
+
* status is the one a proxy should answer its own client with.
|
|
164
|
+
*/
|
|
165
|
+
export type RawFetchErrorCode =
|
|
166
|
+
/** The float has no raw mode (a bridge that predates it, or swift-server). */
|
|
167
|
+
'unsupported'
|
|
168
|
+
/** The request body is past the float's ceiling. */
|
|
169
|
+
| 'request-body-too-large'
|
|
170
|
+
/** A masked secret was used against a domain it is not scoped to. */
|
|
171
|
+
| 'forbidden-secret'
|
|
172
|
+
/** The upstream could not be reached, or the stream broke. */
|
|
173
|
+
| 'upstream'
|
|
174
|
+
/** The float's own transport answered with something raw mode cannot read. */
|
|
175
|
+
| 'bridge';
|
|
176
|
+
/** URL-fragment prefix that tags one raw request for `webRequest` correlation. */
|
|
177
|
+
export declare const RAW_FETCH_TAG_PREFIX = "slicc-raw-";
|
|
178
|
+
/** Largest body chunk one Port message carries. */
|
|
179
|
+
export declare const RAW_FETCH_PORT_CHUNK_BYTES: number;
|
|
180
|
+
/** Chunks a receiver grants up front, in each direction. */
|
|
181
|
+
export declare const RAW_FETCH_PORT_WINDOW = 4;
|
|
182
|
+
/**
|
|
183
|
+
* Uploads a float buffers before sending. Past it the answer is 413. The
|
|
184
|
+
* extension streams large non-text bodies instead (see
|
|
185
|
+
* `RAW_FETCH_STREAM_THRESHOLD_BYTES`), so there the ceiling bounds only the
|
|
186
|
+
* bodies it must hold whole: text bodies (secret unmask) and HMAC-signed ones.
|
|
187
|
+
*/
|
|
188
|
+
export declare const RAW_FETCH_BUFFERED_REQUEST_BODY_CAP: number;
|
|
189
|
+
/** Non-text uploads at least this large (or of unknown length) are streamed. */
|
|
190
|
+
export declare const RAW_FETCH_STREAM_THRESHOLD_BYTES: number;
|
|
191
|
+
/** Page → service worker. */
|
|
192
|
+
export type RawPortRequestMsg =
|
|
193
|
+
/**
|
|
194
|
+
* Capability probe, answered with `raw-probe-reply`. A service worker
|
|
195
|
+
* that predates raw mode ignores it, so the page treats silence as
|
|
196
|
+
* unsupported rather than sending a `raw-request` nobody will answer.
|
|
197
|
+
*/
|
|
198
|
+
{
|
|
199
|
+
type: 'raw-probe';
|
|
200
|
+
} | {
|
|
201
|
+
type: 'raw-request';
|
|
202
|
+
head: RawFetchRequestHead;
|
|
203
|
+
/** Whether `raw-body-chunk`s follow, ended by `raw-body-end`. */
|
|
204
|
+
hasBody: boolean;
|
|
205
|
+
/** Upload size when the caller knows it. */
|
|
206
|
+
bodyLength?: number;
|
|
207
|
+
/** Response chunks the page grants up front. */
|
|
208
|
+
credits: number;
|
|
209
|
+
} | {
|
|
210
|
+
type: 'raw-body-chunk';
|
|
211
|
+
dataBase64: string;
|
|
212
|
+
} | {
|
|
213
|
+
type: 'raw-body-end';
|
|
214
|
+
} | {
|
|
215
|
+
type: 'raw-credit';
|
|
216
|
+
chunks: number;
|
|
217
|
+
};
|
|
218
|
+
/** Service worker → page. */
|
|
219
|
+
export type RawPortResponseMsg = {
|
|
220
|
+
type: 'raw-probe-reply';
|
|
221
|
+
reply: RawFetchProbeReply;
|
|
222
|
+
} | {
|
|
223
|
+
type: 'raw-body-credit';
|
|
224
|
+
chunks: number;
|
|
225
|
+
} | {
|
|
226
|
+
type: 'raw-response-head';
|
|
227
|
+
head: RawFetchResponseHead;
|
|
228
|
+
hasBody: boolean;
|
|
229
|
+
} | {
|
|
230
|
+
type: 'raw-response-chunk';
|
|
231
|
+
dataBase64: string;
|
|
232
|
+
} | {
|
|
233
|
+
type: 'raw-response-end';
|
|
234
|
+
} | {
|
|
235
|
+
type: 'raw-response-error';
|
|
236
|
+
code: RawFetchErrorCode;
|
|
237
|
+
status: number;
|
|
238
|
+
error: string;
|
|
239
|
+
};
|
|
240
|
+
/** `HTTP/1.1 302 Found` → `Found`; HTTP/2 status lines carry no reason. */
|
|
241
|
+
export declare function reasonFromStatusLine(statusLine: string | undefined): string;
|
|
149
242
|
//# sourceMappingURL=raw-fetch-protocol.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"raw-fetch-protocol.d.ts","sourceRoot":"","sources":["../src/raw-fetch-protocol.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,yEAAyE;AACzE,MAAM,MAAM,aAAa,GAAG,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;AAEpD,2CAA2C;AAC3C,MAAM,WAAW,mBAAmB;IAClC,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,aAAa,CAAC;CACxB;AAED,mDAAmD;AACnD,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,aAAa,CAAC;IACvB,2EAA2E;IAC3E,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,wBAAwB,wBAAwB,CAAC;AAE9D;;;;;;GAMG;AACH,eAAO,MAAM,sBAAsB,sBAAsB,CAAC;AAE1D,sEAAsE;AACtE,eAAO,MAAM,0BAA0B,IAAI,CAAC;AAE5C,sDAAsD;AACtD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,oBAAoB,EAAE,OAAO,CAAC;IAC9B,mBAAmB,EAAE,MAAM,CAAC;CAC7B;AAED,yDAAyD;AACzD,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,GAAG,kBAAkB,GAAG,IAAI,CAWjF;AAED,gEAAgE;AAChE,eAAO,MAAM,sBAAsB,oCAAoC,CAAC;AAExE
|
|
1
|
+
{"version":3,"file":"raw-fetch-protocol.d.ts","sourceRoot":"","sources":["../src/raw-fetch-protocol.ts"],"names":[],"mappings":"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"}
|
|
@@ -61,9 +61,10 @@ export function parseRawFetchProbeReply(value) {
|
|
|
61
61
|
/** Content type of a raw-mode answer on the node-server hop. */
|
|
62
62
|
export const RAW_FETCH_CONTENT_TYPE = 'application/vnd.slicc.raw-fetch';
|
|
63
63
|
/**
|
|
64
|
-
* Request-body ceiling
|
|
65
|
-
* buffers
|
|
66
|
-
*
|
|
64
|
+
* Request-body ceiling for the uploads the node-server hop (CLI and cloud)
|
|
65
|
+
* buffers: text and HMAC-signed bodies, and binary bodies below the stream
|
|
66
|
+
* threshold (see `raw-fetch-upload.ts`). Past it the bridge answers 413 and
|
|
67
|
+
* the webapp refuses before sending.
|
|
67
68
|
*/
|
|
68
69
|
export const RAW_FETCH_BRIDGE_REQUEST_BODY_CAP = 256 * 1024 * 1024;
|
|
69
70
|
/** Upper bound on one encoded response-head frame. */
|
|
@@ -97,8 +98,21 @@ const RAW_RESPONSE_SKIP_HEADERS = new Set([
|
|
|
97
98
|
'transfer-encoding',
|
|
98
99
|
'upgrade',
|
|
99
100
|
]);
|
|
100
|
-
/** Content codings
|
|
101
|
-
const
|
|
101
|
+
/** Content codings Node's fetch (undici) decodes on its own: the bridge floats. */
|
|
102
|
+
export const NODE_DECODED_CODINGS = new Set([
|
|
103
|
+
'gzip',
|
|
104
|
+
'x-gzip',
|
|
105
|
+
'deflate',
|
|
106
|
+
'br',
|
|
107
|
+
]);
|
|
108
|
+
/**
|
|
109
|
+
* Content codings Chrome's fetch decodes on its own: the extension float.
|
|
110
|
+
* Chrome advertises `zstd` itself and cannot be told otherwise.
|
|
111
|
+
*/
|
|
112
|
+
export const BROWSER_DECODED_CODINGS = new Set([
|
|
113
|
+
...NODE_DECODED_CODINGS,
|
|
114
|
+
'zstd',
|
|
115
|
+
]);
|
|
102
116
|
/** `Accept-Encoding` a float sends upstream: exactly the codings it decodes. */
|
|
103
117
|
export const RAW_FETCH_ACCEPT_ENCODING = 'gzip, deflate, br';
|
|
104
118
|
/**
|
|
@@ -129,7 +143,7 @@ export function isDecodedPartialResponse(input) {
|
|
|
129
143
|
.filter(([name]) => name.toLowerCase() === 'content-encoding')
|
|
130
144
|
.map(([, value]) => value)
|
|
131
145
|
.join(',');
|
|
132
|
-
return codingsWereDecoded(encoding);
|
|
146
|
+
return codingsWereDecoded(encoding, input.decodedCodings ?? NODE_DECODED_CODINGS);
|
|
133
147
|
}
|
|
134
148
|
/** Statuses whose responses never carry a body. */
|
|
135
149
|
const NULL_BODY_STATUSES = new Set([101, 103, 204, 205, 304]);
|
|
@@ -179,12 +193,12 @@ export function foldRawRequestHeaders(headers) {
|
|
|
179
193
|
return out;
|
|
180
194
|
}
|
|
181
195
|
/** True when every listed coding is one the float's fetch undid. */
|
|
182
|
-
function codingsWereDecoded(contentEncoding) {
|
|
196
|
+
function codingsWereDecoded(contentEncoding, decodedCodings) {
|
|
183
197
|
const codings = contentEncoding
|
|
184
198
|
.split(',')
|
|
185
199
|
.map((c) => c.trim().toLowerCase())
|
|
186
200
|
.filter((c) => c !== '' && c !== 'identity');
|
|
187
|
-
return codings.length > 0 && codings.every((c) =>
|
|
201
|
+
return codings.length > 0 && codings.every((c) => decodedCodings.has(c));
|
|
188
202
|
}
|
|
189
203
|
/** Whether a response to `method` with `status` carries a body at all. */
|
|
190
204
|
export function rawResponseHasBody(method, status) {
|
|
@@ -211,7 +225,7 @@ export function rawResponseHeaders(input) {
|
|
|
211
225
|
.filter(([name]) => name.toLowerCase() === 'content-encoding')
|
|
212
226
|
.map(([, value]) => value)
|
|
213
227
|
.join(',');
|
|
214
|
-
const decoded = codingsWereDecoded(encoding);
|
|
228
|
+
const decoded = codingsWereDecoded(encoding, input.decodedCodings ?? NODE_DECODED_CODINGS);
|
|
215
229
|
const dropLength = decoded || input.bodyRewritten;
|
|
216
230
|
return withoutHop.filter(([name]) => {
|
|
217
231
|
const lower = name.toLowerCase();
|
|
@@ -293,4 +307,31 @@ export function decodeRawResponseFrame(buffer) {
|
|
|
293
307
|
throw new Error('raw fetch: malformed response head');
|
|
294
308
|
return { head, rest: buffer.subarray(4 + length) };
|
|
295
309
|
}
|
|
310
|
+
// ── Extension Port leg ─────────────────────────────────────────────────
|
|
311
|
+
//
|
|
312
|
+
// On the extension float the page talks to the service worker over the
|
|
313
|
+
// pinned `fetch-proxy.fetch` Port; raw mode rides it with the messages
|
|
314
|
+
// below. Port messages are JSON, so bytes travel as base64, and the Port
|
|
315
|
+
// has no backpressure of its own, so each direction is credit-based: a
|
|
316
|
+
// sender may have at most as many chunks outstanding as the receiver granted.
|
|
317
|
+
/** URL-fragment prefix that tags one raw request for `webRequest` correlation. */
|
|
318
|
+
export const RAW_FETCH_TAG_PREFIX = 'slicc-raw-';
|
|
319
|
+
/** Largest body chunk one Port message carries. */
|
|
320
|
+
export const RAW_FETCH_PORT_CHUNK_BYTES = 256 * 1024;
|
|
321
|
+
/** Chunks a receiver grants up front, in each direction. */
|
|
322
|
+
export const RAW_FETCH_PORT_WINDOW = 4;
|
|
323
|
+
/**
|
|
324
|
+
* Uploads a float buffers before sending. Past it the answer is 413. The
|
|
325
|
+
* extension streams large non-text bodies instead (see
|
|
326
|
+
* `RAW_FETCH_STREAM_THRESHOLD_BYTES`), so there the ceiling bounds only the
|
|
327
|
+
* bodies it must hold whole: text bodies (secret unmask) and HMAC-signed ones.
|
|
328
|
+
*/
|
|
329
|
+
export const RAW_FETCH_BUFFERED_REQUEST_BODY_CAP = 256 * 1024 * 1024;
|
|
330
|
+
/** Non-text uploads at least this large (or of unknown length) are streamed. */
|
|
331
|
+
export const RAW_FETCH_STREAM_THRESHOLD_BYTES = 8 * 1024 * 1024;
|
|
332
|
+
/** `HTTP/1.1 302 Found` → `Found`; HTTP/2 status lines carry no reason. */
|
|
333
|
+
export function reasonFromStatusLine(statusLine) {
|
|
334
|
+
const match = /^HTTP\/\S+\s+\d{3}\s*(.*)$/.exec(statusLine ?? '');
|
|
335
|
+
return match?.[1]?.trim() ?? '';
|
|
336
|
+
}
|
|
296
337
|
//# sourceMappingURL=raw-fetch-protocol.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"raw-fetch-protocol.js","sourceRoot":"","sources":["../src/raw-fetch-protocol.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAqBH;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,qBAAqB,CAAC;AAE9D;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,mBAAmB,CAAC;AAE1D,sEAAsE;AACtE,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC;AAS5C,yDAAyD;AACzD,MAAM,UAAU,uBAAuB,CAAC,KAAc;IACpD,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IACrD,MAAM,KAAK,GAAG,KAAoC,CAAC;IACnD,IAAI,OAAO,KAAK,CAAC,QAAQ,KAAK,QAAQ,IAAI,KAAK,CAAC,QAAQ,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAC1E,IAAI,OAAO,KAAK,CAAC,oBAAoB,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACjE,IAAI,OAAO,KAAK,CAAC,mBAAmB,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC/D,OAAO;QACL,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,oBAAoB,EAAE,KAAK,CAAC,oBAAoB;QAChD,mBAAmB,EAAE,KAAK,CAAC,mBAAmB;KAC/C,CAAC;AACJ,CAAC;AAED,gEAAgE;AAChE,MAAM,CAAC,MAAM,sBAAsB,GAAG,iCAAiC,CAAC;AAExE
|
|
1
|
+
{"version":3,"file":"raw-fetch-protocol.js","sourceRoot":"","sources":["../src/raw-fetch-protocol.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Streamed uploads for raw-mode fetches (#3571), shared by the floats that
|
|
3
|
+
* stream a request body with `duplex: 'half'`: the extension service worker
|
|
4
|
+
* and the webapp's page → node-server bridge hop.
|
|
5
|
+
*
|
|
6
|
+
* Chrome streams a request body over HTTP/1.1 (verified on Chrome for
|
|
7
|
+
* Testing 146, loopback and HTTPS), but rejects the first streamed request
|
|
8
|
+
* that needs a new connection before sending any of it: the origin sees no
|
|
9
|
+
* request at all (measured with `credentials: 'omit'`, whose connections are
|
|
10
|
+
* pooled apart). {@link withUnsentUploadRetry} retries exactly that case,
|
|
11
|
+
* and nothing that may have reached the origin.
|
|
12
|
+
*/
|
|
13
|
+
import { type RawHeaderList } from './raw-fetch-protocol.js';
|
|
14
|
+
/** Next upload chunk, `null` at the end. */
|
|
15
|
+
export type UploadChunkSource = () => Promise<Uint8Array | null>;
|
|
16
|
+
export interface RetryableUpload {
|
|
17
|
+
/** A fresh body stream for one attempt. */
|
|
18
|
+
stream(): ReadableStream<Uint8Array>;
|
|
19
|
+
/** Whether no attempt has handed `fetch` a single byte yet. */
|
|
20
|
+
untouched(): boolean;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Body streams over one source for successive attempts. Source reads are
|
|
24
|
+
* single-flight and land in a small buffer that only the newest attempt
|
|
25
|
+
* takes from, so a stale attempt whose read is still pending cannot swallow
|
|
26
|
+
* or reorder a chunk. Nothing an attempt delivered is kept: retrying is only
|
|
27
|
+
* sound while {@link RetryableUpload.untouched} holds.
|
|
28
|
+
*/
|
|
29
|
+
export declare function createRetryableUpload(source: UploadChunkSource): RetryableUpload;
|
|
30
|
+
/** Adapt a byte stream to an {@link UploadChunkSource}. */
|
|
31
|
+
export declare function readerSource(stream: ReadableStream<Uint8Array>): UploadChunkSource;
|
|
32
|
+
/**
|
|
33
|
+
* Whether a raw upload streams rather than being buffered whole. Text bodies
|
|
34
|
+
* are buffered so the float can unmask secrets in them, HMAC-signed ones so
|
|
35
|
+
* it can sign them, and small ones because a known length keeps
|
|
36
|
+
* `Content-Length` and costs nothing to hold.
|
|
37
|
+
*/
|
|
38
|
+
export declare function rawUploadStreams(input: {
|
|
39
|
+
headers: RawHeaderList;
|
|
40
|
+
bodyLength: number | undefined;
|
|
41
|
+
canStream: boolean;
|
|
42
|
+
}): boolean;
|
|
43
|
+
/** Feature test from the Fetch spec's request-streams explainer. */
|
|
44
|
+
export declare function supportsRequestStreams(): boolean;
|
|
45
|
+
/**
|
|
46
|
+
* Whether a rejected attempt may be retried: the measured refusal is a
|
|
47
|
+
* `TypeError` raised before the body handed out a single byte, so the origin
|
|
48
|
+
* cannot hold a complete request (a chunked body needs its terminating
|
|
49
|
+
* chunk). Anything else may have been processed and is never replayed,
|
|
50
|
+
* whatever the method.
|
|
51
|
+
*/
|
|
52
|
+
export declare function isUnsentRefusal(err: unknown, upload: RetryableUpload, signal?: AbortSignal): boolean;
|
|
53
|
+
/** Run `attempt` with a streamed body, retrying only an {@link isUnsentRefusal}. */
|
|
54
|
+
export declare function withUnsentUploadRetry<T>(source: UploadChunkSource, attempt: (body: ReadableStream<Uint8Array>) => Promise<T>, signal?: AbortSignal): Promise<T>;
|
|
55
|
+
//# sourceMappingURL=raw-fetch-upload.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"raw-fetch-upload.d.ts","sourceRoot":"","sources":["../src/raw-fetch-upload.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,EAGL,KAAK,aAAa,EACnB,MAAM,yBAAyB,CAAC;AAGjC,4CAA4C;AAC5C,MAAM,MAAM,iBAAiB,GAAG,MAAM,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;AAEjE,MAAM,WAAW,eAAe;IAC9B,2CAA2C;IAC3C,MAAM,IAAI,cAAc,CAAC,UAAU,CAAC,CAAC;IACrC,+DAA+D;IAC/D,SAAS,IAAI,OAAO,CAAC;CACtB;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,iBAAiB,GAAG,eAAe,CAuChF;AAED,2DAA2D;AAC3D,wBAAgB,YAAY,CAAC,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC,GAAG,iBAAiB,CAMlF;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE;IACtC,OAAO,EAAE,aAAa,CAAC;IACvB,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,SAAS,EAAE,OAAO,CAAC;CACpB,GAAG,OAAO,CAMV;AAED,oEAAoE;AACpE,wBAAgB,sBAAsB,IAAI,OAAO,CAehD;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,GAAG,EAAE,OAAO,EACZ,MAAM,EAAE,eAAe,EACvB,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAET;AAED,oFAAoF;AACpF,wBAAsB,qBAAqB,CAAC,CAAC,EAC3C,MAAM,EAAE,iBAAiB,EACzB,OAAO,EAAE,CAAC,IAAI,EAAE,cAAc,CAAC,UAAU,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,EACzD,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,CAAC,CAAC,CAQZ"}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Streamed uploads for raw-mode fetches (#3571), shared by the floats that
|
|
3
|
+
* stream a request body with `duplex: 'half'`: the extension service worker
|
|
4
|
+
* and the webapp's page → node-server bridge hop.
|
|
5
|
+
*
|
|
6
|
+
* Chrome streams a request body over HTTP/1.1 (verified on Chrome for
|
|
7
|
+
* Testing 146, loopback and HTTPS), but rejects the first streamed request
|
|
8
|
+
* that needs a new connection before sending any of it: the origin sees no
|
|
9
|
+
* request at all (measured with `credentials: 'omit'`, whose connections are
|
|
10
|
+
* pooled apart). {@link withUnsentUploadRetry} retries exactly that case,
|
|
11
|
+
* and nothing that may have reached the origin.
|
|
12
|
+
*/
|
|
13
|
+
import { isTextRequestContentType } from './content-type.js';
|
|
14
|
+
import { foldRawRequestHeaders, RAW_FETCH_STREAM_THRESHOLD_BYTES, } from './raw-fetch-protocol.js';
|
|
15
|
+
import { HMAC_SIGN_HEADER } from './secrets-pipeline.js';
|
|
16
|
+
/**
|
|
17
|
+
* Body streams over one source for successive attempts. Source reads are
|
|
18
|
+
* single-flight and land in a small buffer that only the newest attempt
|
|
19
|
+
* takes from, so a stale attempt whose read is still pending cannot swallow
|
|
20
|
+
* or reorder a chunk. Nothing an attempt delivered is kept: retrying is only
|
|
21
|
+
* sound while {@link RetryableUpload.untouched} holds.
|
|
22
|
+
*/
|
|
23
|
+
export function createRetryableUpload(source) {
|
|
24
|
+
const ready = [];
|
|
25
|
+
let inflight = null;
|
|
26
|
+
let delivered = 0;
|
|
27
|
+
let generation = 0;
|
|
28
|
+
const fill = () => {
|
|
29
|
+
inflight ??= source()
|
|
30
|
+
.then((chunk) => {
|
|
31
|
+
ready.push(chunk);
|
|
32
|
+
})
|
|
33
|
+
.finally(() => {
|
|
34
|
+
inflight = null;
|
|
35
|
+
});
|
|
36
|
+
return inflight;
|
|
37
|
+
};
|
|
38
|
+
const stream = () => {
|
|
39
|
+
const own = ++generation;
|
|
40
|
+
return new ReadableStream({
|
|
41
|
+
async pull(controller) {
|
|
42
|
+
while (ready.length === 0)
|
|
43
|
+
await fill();
|
|
44
|
+
if (own !== generation)
|
|
45
|
+
return;
|
|
46
|
+
const chunk = ready[0];
|
|
47
|
+
if (chunk === null || chunk === undefined) {
|
|
48
|
+
controller.close();
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
ready.shift();
|
|
52
|
+
delivered += chunk.byteLength;
|
|
53
|
+
controller.enqueue(chunk);
|
|
54
|
+
},
|
|
55
|
+
}, { highWaterMark: 0 });
|
|
56
|
+
};
|
|
57
|
+
return { stream, untouched: () => delivered === 0 };
|
|
58
|
+
}
|
|
59
|
+
/** Adapt a byte stream to an {@link UploadChunkSource}. */
|
|
60
|
+
export function readerSource(stream) {
|
|
61
|
+
const reader = stream.getReader();
|
|
62
|
+
return async () => {
|
|
63
|
+
const { done, value } = await reader.read();
|
|
64
|
+
return done ? null : value;
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Whether a raw upload streams rather than being buffered whole. Text bodies
|
|
69
|
+
* are buffered so the float can unmask secrets in them, HMAC-signed ones so
|
|
70
|
+
* it can sign them, and small ones because a known length keeps
|
|
71
|
+
* `Content-Length` and costs nothing to hold.
|
|
72
|
+
*/
|
|
73
|
+
export function rawUploadStreams(input) {
|
|
74
|
+
if (!input.canStream)
|
|
75
|
+
return false;
|
|
76
|
+
const headers = foldRawRequestHeaders(input.headers);
|
|
77
|
+
if (headers[HMAC_SIGN_HEADER] !== undefined)
|
|
78
|
+
return false;
|
|
79
|
+
if (isTextRequestContentType(headers['content-type'] ?? ''))
|
|
80
|
+
return false;
|
|
81
|
+
return input.bodyLength === undefined || input.bodyLength >= RAW_FETCH_STREAM_THRESHOLD_BYTES;
|
|
82
|
+
}
|
|
83
|
+
/** Feature test from the Fetch spec's request-streams explainer. */
|
|
84
|
+
export function supportsRequestStreams() {
|
|
85
|
+
let duplexAccessed = false;
|
|
86
|
+
try {
|
|
87
|
+
const hasContentType = new Request('https://example.invalid/', {
|
|
88
|
+
body: new ReadableStream(),
|
|
89
|
+
method: 'POST',
|
|
90
|
+
get duplex() {
|
|
91
|
+
duplexAccessed = true;
|
|
92
|
+
return 'half';
|
|
93
|
+
},
|
|
94
|
+
}).headers.has('Content-Type');
|
|
95
|
+
return duplexAccessed && !hasContentType;
|
|
96
|
+
}
|
|
97
|
+
catch {
|
|
98
|
+
return false;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Whether a rejected attempt may be retried: the measured refusal is a
|
|
103
|
+
* `TypeError` raised before the body handed out a single byte, so the origin
|
|
104
|
+
* cannot hold a complete request (a chunked body needs its terminating
|
|
105
|
+
* chunk). Anything else may have been processed and is never replayed,
|
|
106
|
+
* whatever the method.
|
|
107
|
+
*/
|
|
108
|
+
export function isUnsentRefusal(err, upload, signal) {
|
|
109
|
+
return err instanceof TypeError && upload.untouched() && !signal?.aborted;
|
|
110
|
+
}
|
|
111
|
+
/** Run `attempt` with a streamed body, retrying only an {@link isUnsentRefusal}. */
|
|
112
|
+
export async function withUnsentUploadRetry(source, attempt, signal) {
|
|
113
|
+
const upload = createRetryableUpload(source);
|
|
114
|
+
try {
|
|
115
|
+
return await attempt(upload.stream());
|
|
116
|
+
}
|
|
117
|
+
catch (err) {
|
|
118
|
+
if (!isUnsentRefusal(err, upload, signal))
|
|
119
|
+
throw err;
|
|
120
|
+
return await attempt(upload.stream());
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
//# sourceMappingURL=raw-fetch-upload.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"raw-fetch-upload.js","sourceRoot":"","sources":["../src/raw-fetch-upload.ts"],"names":[],"mappings":"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"}
|
|
@@ -51,6 +51,15 @@ export declare function buildScrubber(secrets: SecretPair[]): (text: string) =>
|
|
|
51
51
|
* but NOT `github.com` itself
|
|
52
52
|
*/
|
|
53
53
|
export declare function domainMatches(pattern: string, hostname: string): boolean;
|
|
54
|
+
/**
|
|
55
|
+
* The name a secret's domain list is matched against for a request URL: its
|
|
56
|
+
* WHATWG `hostname`. That is lowercase, without port or userinfo, with IDNs in
|
|
57
|
+
* punycode (`xn--…`) and IPv6 in brackets. Every float derives it here so
|
|
58
|
+
* `upstream.test` covers `http://upstream.test:8443/…` alike on node-server
|
|
59
|
+
* and in the extension (swift-server's `URLComponents.host` agrees). An
|
|
60
|
+
* unparseable URL yields `''`, which only the `*` pattern matches.
|
|
61
|
+
*/
|
|
62
|
+
export declare function secretScopeHostname(url: string): string;
|
|
54
63
|
/**
|
|
55
64
|
* Check if hostname is allowed by any of the domain patterns.
|
|
56
65
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"secret-masking.d.ts","sourceRoot":"","sources":["../src/secret-masking.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAmEH,wBAAsB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAUrF;AAID;;;;;GAKG;AACH,wBAAsB,IAAI,CACxB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,MAAM,CAAC,CAYjB;AAED,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,0BAA0B,IAAI,CAAC;AAE5C;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAgB7E;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAcxE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAE7E;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAE5E"}
|
|
1
|
+
{"version":3,"file":"secret-masking.d.ts","sourceRoot":"","sources":["../src/secret-masking.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAmEH,wBAAsB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAUrF;AAID;;;;;GAKG;AACH,wBAAsB,IAAI,CACxB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,MAAM,CAAC,CAYjB;AAED,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,0BAA0B,IAAI,CAAC;AAE5C;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAgB7E;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAcxE;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAMvD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAE7E;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAE5E"}
|
|
@@ -134,6 +134,22 @@ export function domainMatches(pattern, hostname) {
|
|
|
134
134
|
// hostname must end with `.example.com` AND have at least one char before
|
|
135
135
|
return h.length > suffix.length && h.endsWith(suffix);
|
|
136
136
|
}
|
|
137
|
+
/**
|
|
138
|
+
* The name a secret's domain list is matched against for a request URL: its
|
|
139
|
+
* WHATWG `hostname`. That is lowercase, without port or userinfo, with IDNs in
|
|
140
|
+
* punycode (`xn--…`) and IPv6 in brackets. Every float derives it here so
|
|
141
|
+
* `upstream.test` covers `http://upstream.test:8443/…` alike on node-server
|
|
142
|
+
* and in the extension (swift-server's `URLComponents.host` agrees). An
|
|
143
|
+
* unparseable URL yields `''`, which only the `*` pattern matches.
|
|
144
|
+
*/
|
|
145
|
+
export function secretScopeHostname(url) {
|
|
146
|
+
try {
|
|
147
|
+
return new URL(url).hostname;
|
|
148
|
+
}
|
|
149
|
+
catch {
|
|
150
|
+
return '';
|
|
151
|
+
}
|
|
152
|
+
}
|
|
137
153
|
/**
|
|
138
154
|
* Check if hostname is allowed by any of the domain patterns.
|
|
139
155
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"secret-masking.js","sourceRoot":"","sources":["../src/secret-masking.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"secret-masking.js","sourceRoot":"","sources":["../src/secret-masking.ts"],"names":[],"mappings":"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"}
|
|
@@ -262,7 +262,7 @@ export class SecretsPipeline {
|
|
|
262
262
|
return { url: rawUrl };
|
|
263
263
|
let user = decodeURIComponent(parsed.username);
|
|
264
264
|
let pass = decodeURIComponent(parsed.password);
|
|
265
|
-
const host = parsed.
|
|
265
|
+
const host = parsed.hostname;
|
|
266
266
|
let touched = false;
|
|
267
267
|
for (const [maskedValue, ms] of this.maskedToSecret) {
|
|
268
268
|
if (user.includes(maskedValue) || pass.includes(maskedValue)) {
|