sliccy 6.218.0 → 6.218.2
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/tray-signaling.d.ts +9 -0
- package/dist/node-server/_shared/tray-signaling.d.ts.map +1 -1
- package/dist/node-server/_shared/tray-signaling.js.map +1 -1
- package/dist/ui/.vite/manifest.json +183 -183
- package/dist/ui/assets/SKILL-Byz4bBkH.js +1 -0
- package/dist/ui/assets/{SKILL-Bf4dLNGe.js → SKILL-yQwWZJ0k.js} +1 -1
- package/dist/ui/assets/{account-store-D_dPl16L.js → account-store-BAcqOQ-B.js} +1 -1
- package/dist/ui/assets/{account-store-DYJJCxJo.js → account-store-ravOkuEh.js} +1 -1
- package/dist/ui/assets/{adobe-B4MN5_M4.js → adobe-BiZfsUty.js} +1 -1
- package/dist/ui/assets/{adobe-BYw0VHpu.js → adobe-pJN-ccGb.js} +1 -1
- package/dist/ui/assets/{agent-panels-C9dRkirO.js → agent-panels-RX0aZNxw.js} +1 -1
- package/dist/ui/assets/{almost-bash-shell-headless-DeH8ulQM.js → almost-bash-shell-headless-CrjX8fl9.js} +38 -38
- package/dist/ui/assets/{apply-layout-CXJ_8NAT.js → apply-layout-el2h8g2C.js} +1 -1
- package/dist/ui/assets/{apps-VP5mbnB8.js → apps-B_AtpN8Z.js} +1 -1
- package/dist/ui/assets/{azure-openai-iU6X70QW.js → azure-openai-DHcO2cmT.js} +1 -1
- package/dist/ui/assets/{azure-openai-DQEwsige.js → azure-openai-KNZuu6zT.js} +1 -1
- package/dist/ui/assets/{backend-hostfs-DLWkun8N.js → backend-hostfs-BDDFu6nL.js} +1 -1
- package/dist/ui/assets/biscotto-mint-client-Dx9t2TRl.js +1 -0
- package/dist/ui/assets/{cdp-BVM0EV0h.js → cdp-DCRqc_78.js} +1 -1
- package/dist/ui/assets/{cerebras-C-MguQUF.js → cerebras-BlJAvwBj.js} +1 -1
- package/dist/ui/assets/{cerebras-Dar5RPlL.js → cerebras-cELX_-Tv.js} +1 -1
- package/dist/ui/assets/{composer-speech-d17pZjld.js → composer-speech-DH1izq66.js} +1 -1
- package/dist/ui/assets/{connect-surface-CzqhHOpk.js → connect-surface-B3q5wFk-.js} +1 -1
- package/dist/ui/assets/{directed-approval-CLyy98kZ.js → directed-approval-D1HryfoH.js} +1 -1
- package/dist/ui/assets/{emscripten-vfs-hook-Dgp8TEZK.js → emscripten-vfs-hook-B4FfTaY4.js} +1 -1
- package/dist/ui/assets/{ensure-speech-assets-C12IV4u7.js → ensure-speech-assets-D4_slw76.js} +1 -1
- package/dist/ui/assets/file-modes-BkEydFQE.js +1 -0
- package/dist/ui/assets/{frozen-archive-writer-BweL88zo.js → frozen-archive-writer-e3mSQ8e5.js} +1 -1
- package/dist/ui/assets/{fs-BvMvRMgl.js → fs-BVa_vuoo.js} +1 -1
- package/dist/ui/assets/{fs-Cr6FJg4V.js → fs-gotPoSZp.js} +2 -2
- package/dist/ui/assets/{gelatiere-store-CKuvVPdN.js → gelatiere-store-DAXCFmPP.js} +1 -1
- package/dist/ui/assets/{gelatiere-unit-Cro5t__k.js → gelatiere-unit-qTkgNxXs.js} +1 -1
- package/dist/ui/assets/{github-BiKuW-LL.js → github-B2VWEFqp.js} +2 -2
- package/dist/ui/assets/{github-BMVOcdI8.js → github-BZHffErO.js} +1 -1
- package/dist/ui/assets/{github-auth-B_Ll-Y6P.js → github-auth-BNgH9jG6.js} +1 -1
- package/dist/ui/assets/{github-copilot-D15AlMDG.js → github-copilot-B5jdTW-u.js} +1 -1
- package/dist/ui/assets/{github-copilot-Cpy-cNE7.js → github-copilot-BfIflOh7.js} +1 -1
- package/dist/ui/assets/{github-install-Q0KoGVpi.js → github-install-Cxleuyru.js} +1 -1
- package/dist/ui/assets/{github-zip-Bz2IXLub.js → github-zip-DgJl9Jw1.js} +1 -1
- package/dist/ui/assets/{hear-DJyelQhP.js → hear-BiUNm14H.js} +1 -1
- package/dist/ui/assets/{help-D2h40n15.js → help-Bo2yyWMr.js} +1 -1
- package/dist/ui/assets/installer-DP22Qfj-.js +2 -0
- package/dist/ui/assets/ipk-mamba-DvgLiW3J.js +46 -0
- package/dist/ui/assets/{js-realm-worker-hsxBVRhi.js → js-realm-worker-jCLcGISU.js} +2 -2
- package/dist/ui/assets/{jsh-executor-CZKkf290.js → jsh-executor-eAgbPICA.js} +2 -2
- package/dist/ui/assets/{kernel-worker-B4R2PngA.js → kernel-worker-BVn6NgIr.js} +10 -10
- package/dist/ui/assets/{lick-ws-bridge-CWfL-fuc.js → lick-ws-bridge-5hziXRsb.js} +1 -1
- package/dist/ui/assets/{lick-ws-bridge-COSKCGDc.js → lick-ws-bridge-CNWoPxh8.js} +1 -1
- package/dist/ui/assets/{live-session-curation-CF7-JQNt.js → live-session-curation-6r5THRVc.js} +1 -1
- package/dist/ui/assets/{live-session-snapshot-2a2d2niQ.js → live-session-snapshot-XuA7hS3R.js} +1 -1
- package/dist/ui/assets/{local-llm-Dm67J4Or.js → local-llm-BIToWY5w.js} +1 -1
- package/dist/ui/assets/{local-llm-DSc1eBI_.js → local-llm-JneFYPSJ.js} +1 -1
- package/dist/ui/assets/{main-B61BvKBb.js → main-B0thDo_I.js} +3 -3
- package/dist/ui/assets/{main-cherry-BXtTBLP6.js → main-cherry-i42Stq_t.js} +1 -1
- package/dist/ui/assets/{memory-curation-seam-dMRe3LAt.js → memory-curation-seam-jPN-pjNv.js} +1 -1
- package/dist/ui/assets/{memory-health-D0VOxGUq.js → memory-health-D9MwFVu8.js} +1 -1
- package/dist/ui/assets/{memory-write-execute-B12BlJli.js → memory-write-execute-DxJVccvs.js} +1 -1
- package/dist/ui/assets/{merge-folded-cost-into-frozen-BJuchBJs.js → merge-folded-cost-into-frozen-BOnFPZYR.js} +1 -1
- package/dist/ui/assets/{mount-C8XxJIcW.js → mount-7auALEdt.js} +3 -3
- package/dist/ui/assets/{mount-CdMxbkwV.js → mount-D9DpIM-H.js} +1 -1
- package/dist/ui/assets/{new-session-Ck977dr8.js → new-session-dV2C39fB.js} +2 -2
- package/dist/ui/assets/{oauth-bootstrap-VagnehHV.js → oauth-bootstrap-MsvroWIf.js} +2 -2
- package/dist/ui/assets/{onboarding-orchestrator-BlvLR2uv.js → onboarding-orchestrator-BsyNlEp6.js} +1 -1
- package/dist/ui/assets/{openai-codex-lx77uf95.js → openai-codex-D6aLn4wD.js} +1 -1
- package/dist/ui/assets/{openai-codex-CgJV38ez.js → openai-codex-QMojLG84.js} +1 -1
- package/dist/ui/assets/{openrouter-FAB81Bs-.js → openrouter-DeSZmyWQ.js} +1 -1
- package/dist/ui/assets/{openrouter-BYF3f4hE.js → openrouter-LDOkDdfN.js} +1 -1
- package/dist/ui/assets/{openrouter-free-C9Jp7Pjg.js → openrouter-free-AToAyfMH.js} +1 -1
- package/dist/ui/assets/{openrouter-free-C-tzJPNS.js → openrouter-free-BDD5HUZF.js} +1 -1
- package/dist/ui/assets/{openrouter-oauth-BtfMq4eX.js → openrouter-oauth-CztvqBA0.js} +1 -1
- package/dist/ui/assets/{openrouter-oauth-CgPTtO9Z.js → openrouter-oauth-DqxRskZC.js} +1 -1
- package/dist/ui/assets/{opfs-mount-B58s34ro.js → opfs-mount-DP4EQVf_.js} +1 -1
- package/dist/ui/assets/{panel-rpc-handlers-CFU49OK-.js → panel-rpc-handlers-W71VzlDM.js} +2 -2
- package/dist/ui/assets/{panelize-shell-DG1WSdD6.js → panelize-shell-9j9B_80g.js} +1 -1
- package/dist/ui/assets/{pi-edit-execution-CBxKNy1e.js → pi-edit-execution-BShsB4bj.js} +1 -1
- package/dist/ui/assets/{provider-YkRt54jM.js → provider-CE1zpBVX.js} +1 -1
- package/dist/ui/assets/{provider-DmFA_o6z.js → provider-Ca9Zz8yb.js} +2 -2
- package/dist/ui/assets/{provider-settings-BffwNjqW.js → provider-settings-uiENuCqB.js} +1 -1
- package/dist/ui/assets/provider-store-access-D0H9f5vw.js +1 -0
- package/dist/ui/assets/provider-store-access-qw-70nQO.js +1 -0
- package/dist/ui/assets/{providers-DniKJDnW.js → providers-DCmI83QO.js} +2 -2
- package/dist/ui/assets/{providers-D91qSZ-7.js → providers-bam7z0UT.js} +1 -1
- package/dist/ui/assets/{quick-llm-CrLkA2_d.js → quick-llm-CzXagx_t.js} +1 -1
- package/dist/ui/assets/{realm-inprocess-DKN0ZHJ_.js → realm-inprocess-sTQMTEkB.js} +2 -2
- package/dist/ui/assets/{realm-unhandled-rejections-AiJm7tb8.js → realm-unhandled-rejections-BXaHCNJa.js} +1 -1
- package/dist/ui/assets/{realm-unhandled-rejections-CZx2IMUV.js → realm-unhandled-rejections-DDmLwwJS.js} +1 -1
- package/dist/ui/assets/{recovery-screen-Dif0XJec.js → recovery-screen-BKbUhrGB.js} +1 -1
- package/dist/ui/assets/{remote-terminal-view-Bogfkp0a.js → remote-terminal-view-BLwdw7dM.js} +2 -2
- package/dist/ui/assets/{restore-BuvAnvWO.js → restore-o9YtsuVz.js} +1 -1
- package/dist/ui/assets/{run-BBBDnSZP.js → run-BFNiHcEW.js} +1 -1
- package/dist/ui/assets/{run-C5EU0z0t.js → run-BUej2chT.js} +1 -1
- package/dist/ui/assets/{run-BQ9HnxuZ.js → run-Bh8htYg7.js} +1 -1
- package/dist/ui/assets/run-Bk9OlZwF.js +17 -0
- package/dist/ui/assets/{run-bsSiDp2z.js → run-CB6rAQZ1.js} +6 -4
- package/dist/ui/assets/{run-BTy1lN10.js → run-CilACXgz.js} +2 -2
- package/dist/ui/assets/{run-CYXAZSqv.js → run-DSre5ukc.js} +2 -2
- package/dist/ui/assets/{run-B41YZRab.js → run-medvCK_6.js} +1 -1
- package/dist/ui/assets/{session-command-memory-Bd4fBxop.js → session-command-memory-CK-bjU-i.js} +2 -2
- package/dist/ui/assets/{session-jsonl-BoKaLBjt.js → session-jsonl-B6O31EYv.js} +1 -1
- package/dist/ui/assets/{session-jsonl-BgfNc5-K.js → session-jsonl-BHcQKeee.js} +1 -1
- package/dist/ui/assets/{session-search-index-DR3LjlVj.js → session-search-index-Ddwbbkut.js} +1 -1
- package/dist/ui/assets/{setup-feature-flags-remote-De-0v4XT.js → setup-feature-flags-remote-DHIyA7Ql.js} +1 -1
- package/dist/ui/assets/{setup-model-catalog-B6luXfNv.js → setup-model-catalog-DtyllODF.js} +1 -1
- package/dist/ui/assets/{signed-fetch-CO-Bnl47.js → signed-fetch-DFBopENg.js} +1 -1
- package/dist/ui/assets/{silent-renew-backoff-BH-9_m4E.js → silent-renew-backoff-BL8wMKQc.js} +1 -1
- package/dist/ui/assets/slicc-version-eQ6JEYYJ.js +1 -0
- package/dist/ui/assets/{snapshot-C1F-yOO0.js → snapshot-CsXWOCBJ.js} +1 -1
- package/dist/ui/assets/{snapshot-features-CExRojJx.js → snapshot-features-BPgaCNDl.js} +1 -1
- package/dist/ui/assets/{soundscape-BOv4ciPN.js → soundscape-C7FEDgkP.js} +1 -1
- package/dist/ui/assets/{speak-CGde-S7y.js → speak-tkO5HiC2.js} +1 -1
- package/dist/ui/assets/{sprinkle-manager-Bd6_RBxS.js → sprinkle-manager-BlbSbFUW.js} +1 -1
- package/dist/ui/assets/{sprinkle-renderer-D7GUEjZL.js → sprinkle-renderer-DuZBBlID.js} +4 -4
- package/dist/ui/assets/{state-CPqokSG7.js → state-l6lHl-l7.js} +1 -1
- package/dist/ui/assets/{store-BaNNo1We.js → store-CkDykWVq.js} +1 -1
- package/dist/ui/assets/{store-Bu_WlNqx.js → store-aGHgfLPM.js} +1 -1
- package/dist/ui/assets/{sudo-4tXqhxkX.js → sudo-NxhV_dIm.js} +1 -1
- package/dist/ui/assets/{supervisor-CKUGA1zo.js → supervisor-BRrTWhmg.js} +1 -1
- package/dist/ui/assets/{sync-dialog-lNuhtsLb.js → sync-dialog-CJG4icPz.js} +1 -1
- package/dist/ui/assets/{transformers-env-SiVQM-3h.js → transformers-env-DwuHApPS.js} +1 -1
- package/dist/ui/assets/{tray-leader-DGzx35nP.js → tray-leader-BhwzHsW4.js} +1 -1
- package/dist/ui/assets/{tray-leave-runtime-B1q8KWLf.js → tray-leave-runtime-DzJgtJD5.js} +1 -1
- package/dist/ui/assets/{tray-sidecar-BWndOel0.js → tray-sidecar-B0VqIheG.js} +1 -1
- package/dist/ui/assets/{upgrade-detection-DQSTN2sW.js → upgrade-detection-0h2MYFF0.js} +1 -1
- package/dist/ui/assets/{upskill-lick-skip-DlilF4rc.js → upskill-lick-skip-BCj_PLi0.js} +1 -1
- package/dist/ui/assets/{voice-reply-CP7WG1rY.js → voice-reply-C5gcSbT4.js} +1 -1
- package/dist/ui/assets/{wc-attach-CAnoEIAv.js → wc-attach-DnwMWit4.js} +2 -2
- package/dist/ui/assets/{wc-browser-CNHm9mOO.js → wc-browser-BQC_7cG7.js} +1 -1
- package/dist/ui/assets/{wc-computers-BBq_pLL5.js → wc-computers-CecKLajY.js} +1 -1
- package/dist/ui/assets/{wc-detached-CLtrY4dJ.js → wc-detached-DeqWd0nW.js} +1 -1
- package/dist/ui/assets/{wc-extension-DAUjLmyi.js → wc-extension-B3Jqz0iE.js} +2 -2
- package/dist/ui/assets/{wc-follower-rlyd2qoE.js → wc-follower-CONbTzRc.js} +3 -3
- package/dist/ui/assets/{wc-follower-oauth-DJaH6NcY.js → wc-follower-oauth-B_EiiAvr.js} +1 -1
- package/dist/ui/assets/{wc-gelatiere-DBjNosRS.js → wc-gelatiere-Dsw0YMCT.js} +1 -1
- package/dist/ui/assets/{wc-live-Bv8ygCb1.js → wc-live-BgzKz_k0.js} +21 -21
- package/dist/ui/assets/{wc-nav-CEYJqyOP.js → wc-nav-DyWKt3_Y.js} +2 -2
- package/dist/ui/assets/{wc-onboarding-DiVhjaWE.js → wc-onboarding-CKWhBBSy.js} +2 -2
- package/dist/ui/assets/{wc-permissions-BDEnxsRc.js → wc-permissions-pLNhbxI6.js} +2 -2
- package/dist/ui/assets/{wc-placeholder-BwtwD-4U.js → wc-placeholder-CmAWVzs3.js} +3 -3
- package/dist/ui/assets/{wc-secret-request-BqsFJf8J.js → wc-secret-request-D_GiKx5L.js} +1 -1
- package/dist/ui/assets/{wc-settings-DHJ5-fBJ.js → wc-settings-iRSoSmMz.js} +3 -3
- package/dist/ui/assets/{wc-shell-C_FnQT_B.js → wc-shell-B0PhY3hq.js} +3 -3
- package/dist/ui/assets/{wc-shortcut-config-yKU5tM0c.js → wc-shortcut-config-DvRLapnh.js} +1 -1
- package/dist/ui/assets/{wc-sprinkles-D1qkDv5r.js → wc-sprinkles-BEPQPFKR.js} +2 -2
- package/dist/ui/assets/{wc-transcript-export-DRvYtZAz.js → wc-transcript-export-BCmTsnHP.js} +2 -2
- package/dist/ui/assets/wc-tray-BRdwlPkC.js +5 -0
- package/dist/ui/assets/welcome-detection-C_huX4jr.js +1 -0
- package/dist/ui/assets/{whisper-session-B7DGbMeT.js → whisper-session-BPJbM4fv.js} +2 -2
- package/dist/ui/assets/{xai-grok-BMGn7sDb.js → xai-grok-fAOHWGfl.js} +1 -1
- package/dist/ui/assets/{xai-grok-BknauR83.js → xai-grok-mxLxouZL.js} +1 -1
- package/dist/ui/index.html +3 -3
- package/dist/ui/packages/webapp/index.html +3 -3
- package/package.json +1 -1
- package/dist/ui/assets/SKILL-Exg7L5oK.js +0 -1
- package/dist/ui/assets/biscotto-mint-client-CwC48UzZ.js +0 -1
- package/dist/ui/assets/installer-BSR8SD5W.js +0 -2
- package/dist/ui/assets/ipk-mamba-CUVvtYaQ.js +0 -46
- package/dist/ui/assets/provider-store-access-CiNO5BWB.js +0 -1
- package/dist/ui/assets/provider-store-access-DPC_h0n0.js +0 -1
- package/dist/ui/assets/run-qKtH39R0.js +0 -17
- package/dist/ui/assets/slicc-version-DEtAf6Eq.js +0 -1
- package/dist/ui/assets/wc-tray-Dg5lvLPA.js +0 -5
- package/dist/ui/assets/welcome-detection-CYN-rZLL.js +0 -1
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./rolldown-runtime-Dd_uD5pT.js";import{n as t,r as n}from"./fetch-body-CuwTaJC_.js";import{t as r}from"./types-D8gIX-W-.js";import"./fs-BvMvRMgl.js";import{a as i,i as a,n as o,r as s,t as c}from"./global-prefix-DqCuANmV.js";import{r as l,t as u}from"./tar-BWIPCxI2.js";function d(e){let t=Math.max(1,Math.floor(e)),n=0,r=[],i=()=>{n--,r.shift()?.()};return e=>new Promise((a,o)=>{let s=()=>{n++,e().then(a,o).finally(i)};n<t?s():r.push(s)})}async function f(e){let t=await Promise.allSettled(e),n=t.find(e=>e.status===`rejected`);if(n)throw n.reason;return t.map(e=>e.value)}function p(e,...t){return`/${[e,...t].join(`/`).split(`/`).filter(e=>e.length>0).join(`/`)}`}function m(e){let t=JSON.stringify(e);return[`// ${c}`,`const { start } = require('sliccy:exec');`,`const __bin = ${t};`,`const __argv = ['ipx', '--global', __bin, ...process.argv.slice(2)];`,`const __stdin = typeof stdin !== 'undefined' ? stdin : undefined;`,`const __h = start(__argv, __stdin !== undefined ? { stdin: __stdin } : undefined);`,`__h.stdin.end();`,`const __r = await __h.done;`,`if (__r.stdout) process.stdout.write(__r.stdout);`,`if (__r.stderr) process.stderr.write(__r.stderr);`,`process.exit(__r.exitCode);`,``].join(`
|
|
2
|
-
`)}var h=class extends Error{binName;path;constructor(e,t){super(`ipk: refusing to overwrite user script at ${t} (bin '${e}')`),this.binName=e,this.path=t,this.name=`GlobalBinCollisionError`}};async function g(e,t){if(t.size!==0){await e.exists(`/shared/bin`)||await e.mkdir(o,{recursive:!0});for(let n of t){if(!n||n.includes(`/`))continue;let t=p(o,`${n}.jsh`);if(await e.exists(t)&&!await _(e,t))throw new h(n,t)}}}async function _(e,t){try{let n=await e.readFile(t);return(typeof n==`string`?n:new TextDecoder().decode(n)).includes(c)}catch{return!1}}async function v(e,t){if(!await e.exists(`/shared/bin`)){if(t.size===0)return;await e.mkdir(o,{recursive:!0})}let n=[];try{n=await e.readDir(o)}catch{n=[]}for(let r of n){if(r.type!==`file`||!r.name.endsWith(`.jsh`))continue;let n=r.name.slice(0,-4);if(t.has(n))continue;let i=p(o,r.name);await _(e,i)&&await e.rm(i)}for(let n of t){if(!n||n.includes(`/`))continue;let t=p(o,`${n}.jsh`);if(await e.exists(t)&&!await _(e,t))throw new h(n,t);await e.writeFile(t,m(n))}}const y=Object.freeze({os:`wasi`,cpu:`wasm32`,libc:void 0});function b(e){return typeof e==`string`?[e]:Array.isArray(e)?e.filter(e=>typeof e==`string`):null}function x(e,t){let n=b(e);if(!n||n.length===0||n.length===1&&n[0]===`any`)return!0;let r=0,i=!1;for(let e of n)if(e.startsWith(`!`)){if(r++,t===e.slice(1))return!1}else t===e&&(i=!0);return i||r===n.length}function ee(e,t=y){return!x(e.os,t.os)||!x(e.cpu,t.cpu)?!1:t.os===`linux`&&e.libc!==void 0?x(e.libc,t.libc):!0}function te(e,t,n=y){let r={},i={};for(let e of[`os`,`cpu`])t[e]!==void 0&&(r[e]=t[e],i[e]=n[e]);return`Unsupported platform for ${e}: wanted ${JSON.stringify(r)} (current: ${JSON.stringify(i)})`}[`unpkg`,`com`].join(`.`),[`cdn`,`jsdelivr`,`net`].join(`.`);const S=[`registry`,`npmjs`,`org`].join(`.`);function ne(e,t){return new URL(t,`https://${e}`)}const re=/^[A-Za-z0-9~][A-Za-z0-9._~-]*$/;function ie(e){if(typeof e!=`string`||e.length===0)throw Error(`Invalid npm package name: must be a non-empty string`);if(e.length>214)throw Error(`Invalid npm package name: '${e}' exceeds 214 characters`);if(e!==e.trim())throw Error(`Invalid npm package name: '${e}' has leading or trailing whitespace`);if(/[\u0000-\u001f\u007f\s]/.test(e))throw Error(`Invalid npm package name: '${e}' contains control characters or whitespace`);if(e.includes(`..`))throw Error(`Invalid npm package name: '${e}' contains '..'`);if(e.startsWith(`/`))throw Error(`Invalid npm package name: '${e}' starts with '/'`);if(e.startsWith(`.`)||e.startsWith(`_`))throw Error(`Invalid npm package name: '${e}' cannot start with '.' or '_'`);let t;if(e.startsWith(`@`)){let n=e.indexOf(`/`);if(n===-1)throw Error(`Invalid npm package name: scoped name '${e}' is missing the required '/'`);if(e.indexOf(`/`,n+1)!==-1)throw Error(`Invalid npm package name: scoped name '${e}' must contain exactly one '/'`);let r=e.slice(1,n);if(t=e.slice(n+1),!re.test(r))throw Error(`Invalid npm package name: scope '@${r}' is not a legal npm scope`)}else{if(e.includes(`/`))throw Error(`Invalid npm package name: '${e}' contains '/' but is not scoped (must start with '@')`);t=e}if(!re.test(t))throw Error(`Invalid npm package name: '${e}' is not a legal npm name`);if(encodeURIComponent(t)!==t)throw Error(`Invalid npm package name: '${e}' contains characters that must be URL-encoded`)}function ae(e,t){ie(e);let n=t?t.startsWith(`/`)?t:`/${t}`:``,r=ne(S,`/${e}${n}`);if(r.host!==S)throw Error(`registryUrl: refused to build URL with host '${r.host}' (expected '${S}')`);return r}var C=e(((e,t)=>{t.exports={MAX_LENGTH:256,MAX_SAFE_COMPONENT_LENGTH:16,MAX_SAFE_BUILD_LENGTH:250,MAX_SAFE_INTEGER:2**53-1||9007199254740991,RELEASE_TYPES:[`major`,`premajor`,`minor`,`preminor`,`patch`,`prepatch`,`prerelease`],SEMVER_SPEC_VERSION:`2.0.0`,FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2}})),w=e(((e,t)=>{t.exports=typeof process==`object`&&{}.NODE_DEBUG&&/\bsemver\b/i.test({}.NODE_DEBUG)?(...e)=>console.error(`SEMVER`,...e):()=>{}})),T=e(((e,t)=>{let{MAX_SAFE_COMPONENT_LENGTH:n,MAX_SAFE_BUILD_LENGTH:r,MAX_LENGTH:i}=C(),a=w();e=t.exports={};let o=e.re=[],s=e.safeRe=[],c=e.src=[],l=e.safeSrc=[],u=e.t={},d=0,f=`[a-zA-Z0-9-]`,p=[[`\\s`,1],[`\\d`,i],[f,r]],m=e=>{for(let[t,n]of p)e=e.split(`${t}*`).join(`${t}{0,${n}}`).split(`${t}+`).join(`${t}{1,${n}}`);return e},h=(e,t,n)=>{let r=m(t),i=d++;a(e,i,t),u[e]=i,c[i]=t,l[i]=r,o[i]=new RegExp(t,n?`g`:void 0),s[i]=new RegExp(r,n?`g`:void 0)};h(`NUMERICIDENTIFIER`,`0|[1-9]\\d*`),h(`NUMERICIDENTIFIERLOOSE`,`\\d+`),h(`NONNUMERICIDENTIFIER`,`\\d*[a-zA-Z-]${f}*`),h(`MAINVERSION`,`(${c[u.NUMERICIDENTIFIER]})\\.(${c[u.NUMERICIDENTIFIER]})\\.(${c[u.NUMERICIDENTIFIER]})`),h(`MAINVERSIONLOOSE`,`(${c[u.NUMERICIDENTIFIERLOOSE]})\\.(${c[u.NUMERICIDENTIFIERLOOSE]})\\.(${c[u.NUMERICIDENTIFIERLOOSE]})`),h(`PRERELEASEIDENTIFIER`,`(?:${c[u.NONNUMERICIDENTIFIER]}|${c[u.NUMERICIDENTIFIER]})`),h(`PRERELEASEIDENTIFIERLOOSE`,`(?:${c[u.NONNUMERICIDENTIFIER]}|${c[u.NUMERICIDENTIFIERLOOSE]})`),h(`PRERELEASE`,`(?:-(${c[u.PRERELEASEIDENTIFIER]}(?:\\.${c[u.PRERELEASEIDENTIFIER]})*))`),h(`PRERELEASELOOSE`,`(?:-?(${c[u.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${c[u.PRERELEASEIDENTIFIERLOOSE]})*))`),h(`BUILDIDENTIFIER`,`${f}+`),h(`BUILD`,`(?:\\+(${c[u.BUILDIDENTIFIER]}(?:\\.${c[u.BUILDIDENTIFIER]})*))`),h(`FULLPLAIN`,`v?${c[u.MAINVERSION]}${c[u.PRERELEASE]}?${c[u.BUILD]}?`),h(`FULL`,`^${c[u.FULLPLAIN]}$`),h(`LOOSEPLAIN`,`[v=\\s]*${c[u.MAINVERSIONLOOSE]}${c[u.PRERELEASELOOSE]}?${c[u.BUILD]}?`),h(`LOOSE`,`^${c[u.LOOSEPLAIN]}$`),h(`GTLT`,`((?:<|>)?=?)`),h(`XRANGEIDENTIFIERLOOSE`,`${c[u.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`),h(`XRANGEIDENTIFIER`,`${c[u.NUMERICIDENTIFIER]}|x|X|\\*`),h(`XRANGEPLAIN`,`[v=\\s]*(${c[u.XRANGEIDENTIFIER]})(?:\\.(${c[u.XRANGEIDENTIFIER]})(?:\\.(${c[u.XRANGEIDENTIFIER]})(?:${c[u.PRERELEASE]})?${c[u.BUILD]}?)?)?`),h(`XRANGEPLAINLOOSE`,`[v=\\s]*(${c[u.XRANGEIDENTIFIERLOOSE]})(?:\\.(${c[u.XRANGEIDENTIFIERLOOSE]})(?:\\.(${c[u.XRANGEIDENTIFIERLOOSE]})(?:${c[u.PRERELEASELOOSE]})?${c[u.BUILD]}?)?)?`),h(`XRANGE`,`^${c[u.GTLT]}\\s*${c[u.XRANGEPLAIN]}$`),h(`XRANGELOOSE`,`^${c[u.GTLT]}\\s*${c[u.XRANGEPLAINLOOSE]}$`),h(`COERCEPLAIN`,`(^|[^\\d])(\\d{1,${n}})(?:\\.(\\d{1,${n}}))?(?:\\.(\\d{1,${n}}))?`),h(`COERCE`,`${c[u.COERCEPLAIN]}(?:$|[^\\d])`),h(`COERCEFULL`,c[u.COERCEPLAIN]+`(?:${c[u.PRERELEASE]})?(?:${c[u.BUILD]})?(?:$|[^\\d])`),h(`COERCERTL`,c[u.COERCE],!0),h(`COERCERTLFULL`,c[u.COERCEFULL],!0),h(`LONETILDE`,`(?:~>?)`),h(`TILDETRIM`,`(\\s*)${c[u.LONETILDE]}\\s+`,!0),e.tildeTrimReplace=`$1~`,h(`TILDE`,`^${c[u.LONETILDE]}${c[u.XRANGEPLAIN]}$`),h(`TILDELOOSE`,`^${c[u.LONETILDE]}${c[u.XRANGEPLAINLOOSE]}$`),h(`LONECARET`,`(?:\\^)`),h(`CARETTRIM`,`(\\s*)${c[u.LONECARET]}\\s+`,!0),e.caretTrimReplace=`$1^`,h(`CARET`,`^${c[u.LONECARET]}${c[u.XRANGEPLAIN]}$`),h(`CARETLOOSE`,`^${c[u.LONECARET]}${c[u.XRANGEPLAINLOOSE]}$`),h(`COMPARATORLOOSE`,`^${c[u.GTLT]}\\s*(${c[u.LOOSEPLAIN]})$|^$`),h(`COMPARATOR`,`^${c[u.GTLT]}\\s*(${c[u.FULLPLAIN]})$|^$`),h(`COMPARATORTRIM`,`(\\s*)${c[u.GTLT]}\\s*(${c[u.LOOSEPLAIN]}|${c[u.XRANGEPLAIN]})`,!0),e.comparatorTrimReplace=`$1$2$3`,h(`HYPHENRANGE`,`^\\s*(${c[u.XRANGEPLAIN]})\\s+-\\s+(${c[u.XRANGEPLAIN]})\\s*$`),h(`HYPHENRANGELOOSE`,`^\\s*(${c[u.XRANGEPLAINLOOSE]})\\s+-\\s+(${c[u.XRANGEPLAINLOOSE]})\\s*$`),h(`STAR`,`(<|>)?=?\\s*\\*`),h(`GTE0`,`^\\s*>=\\s*0\\.0\\.0\\s*$`),h(`GTE0PRE`,`^\\s*>=\\s*0\\.0\\.0-0\\s*$`)})),oe=e(((e,t)=>{let n=Object.freeze({loose:!0}),r=Object.freeze({});t.exports=e=>e?typeof e==`object`?e:n:r})),se=e(((e,t)=>{let n=/^[0-9]+$/,r=(e,t)=>{if(typeof e==`number`&&typeof t==`number`)return e===t?0:e<t?-1:1;let r=n.test(e),i=n.test(t);return r&&i&&(e=+e,t=+t),e===t?0:r&&!i?-1:i&&!r?1:e<t?-1:1};t.exports={compareIdentifiers:r,rcompareIdentifiers:(e,t)=>r(t,e)}})),E=e(((e,t)=>{let n=w(),{MAX_LENGTH:r,MAX_SAFE_INTEGER:i}=C(),{safeRe:a,t:o}=T(),s=oe(),{compareIdentifiers:c}=se(),l=(e,t)=>{let n=t.split(`.`);if(n.length>e.length)return!1;for(let t=0;t<n.length;t++)if(c(e[t],n[t])!==0)return!1;return!0};t.exports=class e{constructor(t,c){if(c=s(c),t instanceof e){if(t.loose===!!c.loose&&t.includePrerelease===!!c.includePrerelease)return t;t=t.version}else if(typeof t!=`string`)throw TypeError(`Invalid version. Must be a string. Got type "${typeof t}".`);if(t.length>r)throw TypeError(`version is longer than ${r} characters`);n(`SemVer`,t,c),this.options=c,this.loose=!!c.loose,this.includePrerelease=!!c.includePrerelease;let l=t.trim().match(c.loose?a[o.LOOSE]:a[o.FULL]);if(!l)throw TypeError(`Invalid Version: ${t}`);if(this.raw=t,this.major=+l[1],this.minor=+l[2],this.patch=+l[3],this.major>i||this.major<0)throw TypeError(`Invalid major version`);if(this.minor>i||this.minor<0)throw TypeError(`Invalid minor version`);if(this.patch>i||this.patch<0)throw TypeError(`Invalid patch version`);this.prerelease=l[4]?l[4].split(`.`).map(e=>{if(/^[0-9]+$/.test(e)){let t=+e;if(t>=0&&t<i)return t}return e}):[],this.build=l[5]?l[5].split(`.`):[],this.format()}format(){return this.version=`${this.major}.${this.minor}.${this.patch}`,this.prerelease.length&&(this.version+=`-${this.prerelease.join(`.`)}`),this.version}toString(){return this.version}compare(t){if(n(`SemVer.compare`,this.version,this.options,t),!(t instanceof e)){if(typeof t==`string`&&t===this.version)return 0;t=new e(t,this.options)}return t.version===this.version?0:this.compareMain(t)||this.comparePre(t)}compareMain(t){return t instanceof e||(t=new e(t,this.options)),this.major<t.major?-1:this.major>t.major?1:this.minor<t.minor?-1:this.minor>t.minor?1:this.patch<t.patch?-1:+(this.patch>t.patch)}comparePre(t){if(t instanceof e||(t=new e(t,this.options)),this.prerelease.length&&!t.prerelease.length)return-1;if(!this.prerelease.length&&t.prerelease.length)return 1;if(!this.prerelease.length&&!t.prerelease.length)return 0;let r=0;do{let e=this.prerelease[r],i=t.prerelease[r];if(n(`prerelease compare`,r,e,i),e===void 0&&i===void 0)return 0;if(i===void 0)return 1;if(e===void 0)return-1;if(e!==i)return c(e,i)}while(++r)}compareBuild(t){t instanceof e||(t=new e(t,this.options));let r=0;do{let e=this.build[r],i=t.build[r];if(n(`build compare`,r,e,i),e===void 0&&i===void 0)return 0;if(i===void 0)return 1;if(e===void 0)return-1;if(e!==i)return c(e,i)}while(++r)}inc(e,t,n){if(e.startsWith(`pre`)){if(!t&&n===!1)throw Error(`invalid increment argument: identifier is empty`);if(t){let e=`-${t}`.match(this.options.loose?a[o.PRERELEASELOOSE]:a[o.PRERELEASE]);if(!e||e[1]!==t)throw Error(`invalid identifier: ${t}`)}}switch(e){case`premajor`:this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc(`pre`,t,n);break;case`preminor`:this.prerelease.length=0,this.patch=0,this.minor++,this.inc(`pre`,t,n);break;case`prepatch`:this.prerelease.length=0,this.inc(`patch`,t,n),this.inc(`pre`,t,n);break;case`prerelease`:this.prerelease.length===0&&this.inc(`patch`,t,n),this.inc(`pre`,t,n);break;case`release`:if(this.prerelease.length===0)throw Error(`version ${this.raw} is not a prerelease`);this.prerelease.length=0;break;case`major`:(this.minor!==0||this.patch!==0||this.prerelease.length===0)&&this.major++,this.minor=0,this.patch=0,this.prerelease=[];break;case`minor`:(this.patch!==0||this.prerelease.length===0)&&this.minor++,this.patch=0,this.prerelease=[];break;case`patch`:this.prerelease.length===0&&this.patch++,this.prerelease=[];break;case`pre`:{let e=+!!Number(n);if(this.prerelease.length===0)this.prerelease=[e];else{let r=this.prerelease.length;for(;--r>=0;)typeof this.prerelease[r]==`number`&&(this.prerelease[r]++,r=-2);if(r===-1){if(t===this.prerelease.join(`.`)&&n===!1)throw Error(`invalid increment argument: identifier already exists`);this.prerelease.push(e)}}if(t){let r=[t,e];if(n===!1&&(r=[t]),l(this.prerelease,t)){let e=this.prerelease[t.split(`.`).length];isNaN(e)&&(this.prerelease=r)}else this.prerelease=r}break}default:throw Error(`invalid increment argument: ${e}`)}return this.raw=this.format(),this.build.length&&(this.raw+=`+${this.build.join(`.`)}`),this}}})),D=e(((e,t)=>{let n=E();t.exports=(e,t,r=!1)=>{if(e instanceof n)return e;try{return new n(e,t)}catch(e){if(!r)return null;throw e}}})),ce=e(((e,t)=>{let n=D();t.exports=(e,t)=>{let r=n(e,t);return r?r.version:null}})),le=e(((e,t)=>{let n=D();t.exports=(e,t)=>{let r=n(e.trim().replace(/^[=v]+/,``),t);return r?r.version:null}})),ue=e(((e,t)=>{let n=E();t.exports=(e,t,r,i,a)=>{typeof r==`string`&&(a=i,i=r,r=void 0);try{return new n(e instanceof n?e.version:e,r).inc(t,i,a).version}catch{return null}}})),de=e(((e,t)=>{let n=D();t.exports=(e,t)=>{let r=n(e,null,!0),i=n(t,null,!0),a=r.compare(i);if(a===0)return null;let o=a>0,s=o?r:i,c=o?i:r,l=!!s.prerelease.length;if(c.prerelease.length&&!l){if(!c.patch&&!c.minor)return`major`;if(c.compareMain(s)===0)return c.minor&&!c.patch?`minor`:`patch`}let u=l?`pre`:``;return r.major===i.major?r.minor===i.minor?r.patch===i.patch?`prerelease`:u+`patch`:u+`minor`:u+`major`}})),fe=e(((e,t)=>{let n=E();t.exports=(e,t)=>new n(e,t).major})),pe=e(((e,t)=>{let n=E();t.exports=(e,t)=>new n(e,t).minor})),me=e(((e,t)=>{let n=E();t.exports=(e,t)=>new n(e,t).patch})),he=e(((e,t)=>{let n=D();t.exports=(e,t)=>{let r=n(e,t);return r&&r.prerelease.length?r.prerelease:null}})),O=e(((e,t)=>{let n=E();t.exports=(e,t,r)=>new n(e,r).compare(new n(t,r))})),ge=e(((e,t)=>{let n=O();t.exports=(e,t,r)=>n(t,e,r)})),_e=e(((e,t)=>{let n=O();t.exports=(e,t)=>n(e,t,!0)})),ve=e(((e,t)=>{let n=E();t.exports=(e,t,r)=>{let i=new n(e,r),a=new n(t,r);return i.compare(a)||i.compareBuild(a)}})),ye=e(((e,t)=>{let n=ve();t.exports=(e,t)=>e.sort((e,r)=>n(e,r,t))})),be=e(((e,t)=>{let n=ve();t.exports=(e,t)=>e.sort((e,r)=>n(r,e,t))})),k=e(((e,t)=>{let n=O();t.exports=(e,t,r)=>n(e,t,r)>0})),xe=e(((e,t)=>{let n=O();t.exports=(e,t,r)=>n(e,t,r)<0})),Se=e(((e,t)=>{let n=O();t.exports=(e,t,r)=>n(e,t,r)===0})),Ce=e(((e,t)=>{let n=O();t.exports=(e,t,r)=>n(e,t,r)!==0})),we=e(((e,t)=>{let n=O();t.exports=(e,t,r)=>n(e,t,r)>=0})),Te=e(((e,t)=>{let n=O();t.exports=(e,t,r)=>n(e,t,r)<=0})),Ee=e(((e,t)=>{let n=Se(),r=Ce(),i=k(),a=we(),o=xe(),s=Te();t.exports=(e,t,c,l)=>{switch(t){case`===`:return typeof e==`object`&&(e=e.version),typeof c==`object`&&(c=c.version),e===c;case`!==`:return typeof e==`object`&&(e=e.version),typeof c==`object`&&(c=c.version),e!==c;case``:case`=`:case`==`:return n(e,c,l);case`!=`:return r(e,c,l);case`>`:return i(e,c,l);case`>=`:return a(e,c,l);case`<`:return o(e,c,l);case`<=`:return s(e,c,l);default:throw TypeError(`Invalid operator: ${t}`)}}})),De=e(((e,t)=>{let n=E(),r=D(),{safeRe:i,t:a}=T();t.exports=(e,t)=>{if(e instanceof n)return e;if(typeof e==`number`&&(e=String(e)),typeof e!=`string`)return null;t||={};let o=null;if(!t.rtl)o=e.match(t.includePrerelease?i[a.COERCEFULL]:i[a.COERCE]);else{let n=t.includePrerelease?i[a.COERCERTLFULL]:i[a.COERCERTL],r;for(;(r=n.exec(e))&&(!o||o.index+o[0].length!==e.length);)(!o||r.index+r[0].length!==o.index+o[0].length)&&(o=r),n.lastIndex=r.index+r[1].length+r[2].length;n.lastIndex=-1}if(o===null)return null;let s=o[2],c=o[3]||`0`,l=o[4]||`0`,u=t.includePrerelease&&o[5]?`-${o[5]}`:``,d=t.includePrerelease&&o[6]?`+${o[6]}`:``;return r(`${s}.${c}.${l}${u}${d}`,t)}})),Oe=e(((e,t)=>{let n=D(),r=C(),i=E(),a=(e,t,n)=>{if(!r.RELEASE_TYPES.includes(t))return null;let i=o(e,n);return i&&s(i,t)},o=(e,t)=>{let r=e instanceof i?e.version:e;return n(r,t)},s=(e,t)=>{if(c(t))return e.version;switch(e.prerelease=[],t){case`major`:e.minor=0,e.patch=0;break;case`minor`:e.patch=0}return e.format()},c=e=>e.startsWith(`pre`);t.exports=a})),ke=e(((e,t)=>{t.exports=class{constructor(){this.max=1e3,this.map=new Map}get(e){let t=this.map.get(e);if(t!==void 0)return this.map.delete(e),this.map.set(e,t),t}delete(e){return this.map.delete(e)}set(e,t){if(!this.delete(e)&&t!==void 0){if(this.map.size>=this.max){let e=this.map.keys().next().value;this.delete(e)}this.map.set(e,t)}return this}}})),A=e(((e,t)=>{let n=/\s+/g;t.exports=class e{constructor(t,r){if(r=i(r),t instanceof e)return t.loose===!!r.loose&&t.includePrerelease===!!r.includePrerelease?t:new e(t.raw,r);if(t instanceof a)return this.raw=t.value,this.set=[[t]],this.formatted=void 0,this;if(this.options=r,this.loose=!!r.loose,this.includePrerelease=!!r.includePrerelease,this.raw=t.trim().replace(n,` `),this.set=this.raw.split(`||`).map(e=>this.parseRange(e.trim())).filter(e=>e.length),!this.set.length)throw TypeError(`Invalid SemVer Range: ${this.raw}`);if(this.set.length>1){let e=this.set[0];if(this.set=this.set.filter(e=>!_(e[0])),this.set.length===0)this.set=[e];else if(this.set.length>1){for(let e of this.set)if(e.length===1&&v(e[0])){this.set=[e];break}}}this.formatted=void 0}get range(){if(this.formatted===void 0){this.formatted=``;for(let e=0;e<this.set.length;e++){e>0&&(this.formatted+=`||`);let t=this.set[e];for(let e=0;e<t.length;e++)e>0&&(this.formatted+=` `),this.formatted+=t[e].toString().trim()}}return this.formatted}format(){return this.range}toString(){return this.range}parseRange(e){e=e.replace(g,``);let t=((this.options.includePrerelease&&m)|(this.options.loose&&h))+`:`+e,n=r.get(t);if(n)return n;let i=this.options.loose,s=i?c[u.HYPHENRANGELOOSE]:c[u.HYPHENRANGE];e=e.replace(s,ce(this.options.includePrerelease)),o(`hyphen replace`,e),e=e.replace(c[u.COMPARATORTRIM],d),o(`comparator trim`,e),e=e.replace(c[u.TILDETRIM],f),o(`tilde trim`,e),e=e.replace(c[u.CARETTRIM],p),o(`caret trim`,e);let l=e.split(` `).map(e=>b(e,this.options)).join(` `).split(/\s+/).map(e=>D(e,this.options));i&&(l=l.filter(e=>(o(`loose invalid filter`,e,this.options),!!e.match(c[u.COMPARATORLOOSE])))),o(`range list`,l);let v=new Map,y=l.map(e=>new a(e,this.options));for(let e of y){if(_(e))return[e];v.set(e.value,e)}v.size>1&&v.has(``)&&v.delete(``);let x=[...v.values()];return r.set(t,x),x}intersects(t,n){if(!(t instanceof e))throw TypeError(`a Range is required`);return this.set.some(e=>y(e,n)&&t.set.some(t=>y(t,n)&&e.every(e=>t.every(t=>e.intersects(t,n)))))}test(e){if(!e)return!1;if(typeof e==`string`)try{e=new s(e,this.options)}catch{return!1}for(let t=0;t<this.set.length;t++)if(le(this.set[t],e,this.options))return!0;return!1}};let r=new(ke()),i=oe(),a=j(),o=w(),s=E(),{safeRe:c,src:l,t:u,comparatorTrimReplace:d,tildeTrimReplace:f,caretTrimReplace:p}=T(),{FLAG_INCLUDE_PRERELEASE:m,FLAG_LOOSE:h}=C(),g=new RegExp(l[u.BUILD],`g`),_=e=>e.value===`<0.0.0-0`,v=e=>e.value===``,y=(e,t)=>{let n=!0,r=e.slice(),i=r.pop();for(;n&&r.length;)n=r.every(e=>i.intersects(e,t)),i=r.pop();return n},b=(e,t)=>(e=e.replace(c[u.BUILD],``),o(`comp`,e,t),e=ne(e,t),o(`caret`,e),e=te(e,t),o(`tildes`,e),e=ie(e,t),o(`xrange`,e),e=se(e,t),o(`stars`,e),e),x=e=>!e||e.toLowerCase()===`x`||e===`*`,ee=(e,t,n)=>x(e)&&!x(t)||x(t)&&n&&!x(n),te=(e,t)=>e.trim().split(/\s+/).map(e=>S(e,t)).join(` `),S=(e,t)=>{let n=t.loose?c[u.TILDELOOSE]:c[u.TILDE],r=t.includePrerelease?`-0`:``;return e.replace(n,(t,n,i,a,s)=>{o(`tilde`,e,t,n,i,a,s);let c;return x(n)?c=``:x(i)?c=`>=${n}.0.0${r} <${+n+1}.0.0-0`:x(a)?c=`>=${n}.${i}.0${r} <${n}.${+i+1}.0-0`:s?(o(`replaceTilde pr`,s),c=`>=${n}.${i}.${a}-${s} <${n}.${+i+1}.0-0`):c=`>=${n}.${i}.${a} <${n}.${+i+1}.0-0`,o(`tilde return`,c),c})},ne=(e,t)=>e.trim().split(/\s+/).map(e=>re(e,t)).join(` `),re=(e,t)=>{o(`caret`,e,t);let n=t.loose?c[u.CARETLOOSE]:c[u.CARET],r=t.includePrerelease?`-0`:``;return e.replace(n,(t,n,i,a,s)=>{o(`caret`,e,t,n,i,a,s);let c;return x(n)?c=``:x(i)?c=`>=${n}.0.0${r} <${+n+1}.0.0-0`:x(a)?c=n===`0`?`>=${n}.${i}.0${r} <${n}.${+i+1}.0-0`:`>=${n}.${i}.0${r} <${+n+1}.0.0-0`:s?(o(`replaceCaret pr`,s),c=n===`0`?i===`0`?`>=${n}.${i}.${a}-${s} <${n}.${i}.${+a+1}-0`:`>=${n}.${i}.${a}-${s} <${n}.${+i+1}.0-0`:`>=${n}.${i}.${a}-${s} <${+n+1}.0.0-0`):(o(`no pr`),c=n===`0`?i===`0`?`>=${n}.${i}.${a} <${n}.${i}.${+a+1}-0`:`>=${n}.${i}.${a} <${n}.${+i+1}.0-0`:`>=${n}.${i}.${a} <${+n+1}.0.0-0`),o(`caret return`,c),c})},ie=(e,t)=>(o(`replaceXRanges`,e,t),e.split(/\s+/).map(e=>ae(e,t)).join(` `)),ae=(e,t)=>{e=e.trim();let n=t.loose?c[u.XRANGELOOSE]:c[u.XRANGE];return e.replace(n,(n,r,i,a,s,c)=>{if(o(`xRange`,e,n,r,i,a,s,c),ee(i,a,s))return e;let l=x(i),u=l||x(a),d=u||x(s),f=d;return r===`=`&&f&&(r=``),c=t.includePrerelease?`-0`:``,l?n=r===`>`||r===`<`?`<0.0.0-0`:`*`:r&&f?(u&&(a=0),s=0,r===`>`?(r=`>=`,u?(i=+i+1,a=0,s=0):(a=+a+1,s=0)):r===`<=`&&(r=`<`,u?i=+i+1:a=+a+1),r===`<`&&(c=`-0`),n=`${r+i}.${a}.${s}${c}`):u?n=`>=${i}.0.0${c} <${+i+1}.0.0-0`:d&&(n=`>=${i}.${a}.0${c} <${i}.${+a+1}.0-0`),o(`xRange return`,n),n})},se=(e,t)=>(o(`replaceStars`,e,t),e.trim().replace(c[u.STAR],``)),D=(e,t)=>(o(`replaceGTE0`,e,t),e.trim().replace(c[t.includePrerelease?u.GTE0PRE:u.GTE0],``)),ce=e=>(t,n,r,i,a,o,s,c,l,u,d,f)=>(n=x(r)?``:x(i)?`>=${r}.0.0${e?`-0`:``}`:x(a)?`>=${r}.${i}.0${e?`-0`:``}`:o?`>=${n}`:`>=${n}${e?`-0`:``}`,c=x(l)?``:x(u)?`<${+l+1}.0.0-0`:x(d)?`<${l}.${+u+1}.0-0`:f?`<=${l}.${u}.${d}-${f}`:e?`<${l}.${u}.${+d+1}-0`:`<=${c}`,`${n} ${c}`.trim()),le=(e,t,n)=>{for(let n=0;n<e.length;n++)if(!e[n].test(t))return!1;if(t.prerelease.length&&!n.includePrerelease){for(let n=0;n<e.length;n++)if(o(e[n].semver),e[n].semver!==a.ANY&&e[n].semver.prerelease.length>0){let r=e[n].semver;if(r.major===t.major&&r.minor===t.minor&&r.patch===t.patch)return!0}return!1}return!0}})),j=e(((e,t)=>{let n=Symbol(`SemVer ANY`);t.exports=class e{static get ANY(){return n}constructor(t,i){if(i=r(i),t instanceof e){if(t.loose===!!i.loose)return t;t=t.value}t=t.trim().split(/\s+/).join(` `),s(`comparator`,t,i),this.options=i,this.loose=!!i.loose,this.parse(t),this.value=this.semver===n?``:this.operator+this.semver.version,s(`comp`,this)}parse(e){let t=this.options.loose?i[a.COMPARATORLOOSE]:i[a.COMPARATOR],r=e.match(t);if(!r)throw TypeError(`Invalid comparator: ${e}`);this.operator=r[1]===void 0?``:r[1],this.operator===`=`&&(this.operator=``),this.semver=r[2]?new c(r[2],this.options.loose):n}toString(){return this.value}test(e){if(s(`Comparator.test`,e,this.options.loose),this.semver===n||e===n)return!0;if(typeof e==`string`)try{e=new c(e,this.options)}catch{return!1}return o(e,this.operator,this.semver,this.options)}intersects(t,n){if(!(t instanceof e))throw TypeError(`a Comparator is required`);return this.operator===``?this.value===``||new l(t.value,n).test(this.value):t.operator===``?t.value===``||new l(this.value,n).test(t.semver):(n=r(n),n.includePrerelease&&(this.value===`<0.0.0-0`||t.value===`<0.0.0-0`)||!n.includePrerelease&&(this.value.startsWith(`<0.0.0`)||t.value.startsWith(`<0.0.0`))?!1:!!(this.operator.startsWith(`>`)&&t.operator.startsWith(`>`)||this.operator.startsWith(`<`)&&t.operator.startsWith(`<`)||this.semver.version===t.semver.version&&this.operator.includes(`=`)&&t.operator.includes(`=`)||o(this.semver,`<`,t.semver,n)&&this.operator.startsWith(`>`)&&t.operator.startsWith(`<`)||o(this.semver,`>`,t.semver,n)&&this.operator.startsWith(`<`)&&t.operator.startsWith(`>`)))}};let r=oe(),{safeRe:i,t:a}=T(),o=Ee(),s=w(),c=E(),l=A()})),M=e(((e,t)=>{let n=A();t.exports=(e,t,r)=>{try{t=new n(t,r)}catch{return!1}return t.test(e)}})),Ae=e(((e,t)=>{let n=A();t.exports=(e,t)=>new n(e,t).set.map(e=>e.map(e=>e.value).join(` `).trim().split(` `))})),je=e(((e,t)=>{let n=E(),r=A();t.exports=(e,t,i)=>{let a=null,o=null,s=null;try{s=new r(t,i)}catch{return null}return e.forEach(e=>{s.test(e)&&(!a||o.compare(e)===-1)&&(a=e,o=new n(a,i))}),a}})),Me=e(((e,t)=>{let n=E(),r=A();t.exports=(e,t,i)=>{let a=null,o=null,s=null;try{s=new r(t,i)}catch{return null}return e.forEach(e=>{s.test(e)&&(!a||o.compare(e)===1)&&(a=e,o=new n(a,i))}),a}})),Ne=e(((e,t)=>{let n=E(),r=A(),i=k();t.exports=(e,t)=>{e=new r(e,t);let a=new n(`0.0.0`);if(e.test(a)||(a=new n(`0.0.0-0`),e.test(a)))return a;a=null;for(let t=0;t<e.set.length;++t){let r=e.set[t],o=null;r.forEach(e=>{let t=new n(e.semver.version);switch(e.operator){case`>`:t.prerelease.length===0?t.patch++:t.prerelease.push(0),t.raw=t.format();case``:case`>=`:(!o||i(t,o))&&(o=t);break;case`<`:case`<=`:break;default:throw Error(`Unexpected operation: ${e.operator}`)}}),o&&(!a||i(a,o))&&(a=o)}return a&&e.test(a)?a:null}})),Pe=e(((e,t)=>{let n=A();t.exports=(e,t)=>{try{return new n(e,t).range||`*`}catch{return null}}})),Fe=e(((e,t)=>{let n=E(),r=j(),{ANY:i}=r,a=A(),o=M(),s=k(),c=xe(),l=Te(),u=we();t.exports=(e,t,d,f)=>{e=new n(e,f),t=new a(t,f);let p,m,h,g,_;switch(d){case`>`:p=s,m=l,h=c,g=`>`,_=`>=`;break;case`<`:p=c,m=u,h=s,g=`<`,_=`<=`;break;default:throw TypeError(`Must provide a hilo val of "<" or ">"`)}if(o(e,t,f))return!1;for(let n=0;n<t.set.length;++n){let a=t.set[n],o=null,s=null;if(a.forEach(e=>{e.semver===i&&(e=new r(`>=0.0.0`)),o||=e,s||=e,p(e.semver,o.semver,f)?o=e:h(e.semver,s.semver,f)&&(s=e)}),o.operator===g||o.operator===_||(!s.operator||s.operator===g)&&m(e,s.semver)||s.operator===_&&h(e,s.semver))return!1}return!0}})),Ie=e(((e,t)=>{let n=Fe();t.exports=(e,t,r)=>n(e,t,`>`,r)})),Le=e(((e,t)=>{let n=Fe();t.exports=(e,t,r)=>n(e,t,`<`,r)})),Re=e(((e,t)=>{let n=A();t.exports=(e,t,r)=>(e=new n(e,r),t=new n(t,r),e.intersects(t,r))})),ze=e(((e,t)=>{let n=M(),r=O();t.exports=(e,t,i)=>{let a=[],o=null,s=null,c=e.sort((e,t)=>r(e,t,i));for(let e of c)n(e,t,i)?(s=e,o||=e):(s&&a.push([o,s]),s=null,o=null);o&&a.push([o,null]);let l=[];for(let[e,t]of a)e===t?l.push(e):!t&&e===c[0]?l.push(`*`):t?e===c[0]?l.push(`<=${t}`):l.push(`${e} - ${t}`):l.push(`>=${e}`);let u=l.join(` || `),d=typeof t.raw==`string`?t.raw:String(t);return u.length<d.length?u:t}})),Be=e(((e,t)=>{let n=A(),r=j(),{ANY:i}=r,a=M(),o=O(),s=(e,t,r={})=>{if(e===t)return!0;e=new n(e,r),t=new n(t,r);let i=!1;OUTER:for(let n of e.set){for(let e of t.set){let t=u(n,e,r);if(i||=t!==null,t)continue OUTER}if(i)return!1}return!0},c=[new r(`>=0.0.0-0`)],l=[new r(`>=0.0.0`)],u=(e,t,n)=>{if(e===t)return!0;if(e.length===1&&e[0].semver===i){if(t.length===1&&t[0].semver===i)return!0;e=n.includePrerelease?c:l}if(t.length===1&&t[0].semver===i){if(n.includePrerelease)return!0;t=l}let r=new Set,s,u;for(let t of e)t.operator===`>`||t.operator===`>=`?s=d(s,t,n):t.operator===`<`||t.operator===`<=`?u=f(u,t,n):r.add(t.semver);if(r.size>1)return null;let p;if(s&&u&&(p=o(s.semver,u.semver,n),p>0||p===0&&(s.operator!==`>=`||u.operator!==`<=`)))return null;for(let e of r){if(s&&!a(e,String(s),n)||u&&!a(e,String(u),n))return null;for(let r of t)if(!a(e,String(r),n))return!1;return!0}let m,h,g,_,v=u&&!n.includePrerelease&&u.semver.prerelease.length?u.semver:!1,y=s&&!n.includePrerelease&&s.semver.prerelease.length?s.semver:!1;v&&v.prerelease.length===1&&u.operator===`<`&&v.prerelease[0]===0&&(v=!1);for(let e of t){if(_=_||e.operator===`>`||e.operator===`>=`,g=g||e.operator===`<`||e.operator===`<=`,s){if(y&&e.semver.prerelease&&e.semver.prerelease.length&&e.semver.major===y.major&&e.semver.minor===y.minor&&e.semver.patch===y.patch&&(y=!1),e.operator===`>`||e.operator===`>=`){if(m=d(s,e,n),m===e&&m!==s)return!1}else if(s.operator===`>=`&&!e.test(s.semver))return!1}if(u){if(v&&e.semver.prerelease&&e.semver.prerelease.length&&e.semver.major===v.major&&e.semver.minor===v.minor&&e.semver.patch===v.patch&&(v=!1),e.operator===`<`||e.operator===`<=`){if(h=f(u,e,n),h===e&&h!==u)return!1}else if(u.operator===`<=`&&!e.test(u.semver))return!1}if(!e.operator&&(u||s)&&p!==0)return!1}return!(s&&g&&!u&&p!==0||u&&_&&!s&&p!==0||y||v)},d=(e,t,n)=>{if(!e)return t;let r=o(e.semver,t.semver,n);return r>0?e:r<0||t.operator===`>`&&e.operator===`>=`?t:e},f=(e,t,n)=>{if(!e)return t;let r=o(e.semver,t.semver,n);return r<0?e:r>0||t.operator===`<`&&e.operator===`<=`?t:e};t.exports=s})),N=e(((e,t)=>{let n=T(),r=C(),i=E(),a=se();t.exports={parse:D(),valid:ce(),clean:le(),inc:ue(),diff:de(),major:fe(),minor:pe(),patch:me(),prerelease:he(),compare:O(),rcompare:ge(),compareLoose:_e(),compareBuild:ve(),sort:ye(),rsort:be(),gt:k(),lt:xe(),eq:Se(),neq:Ce(),gte:we(),lte:Te(),cmp:Ee(),coerce:De(),truncate:Oe(),Comparator:j(),Range:A(),satisfies:M(),toComparators:Ae(),maxSatisfying:je(),minSatisfying:Me(),minVersion:Ne(),validRange:Pe(),outside:Fe(),gtr:Ie(),ltr:Le(),intersects:Re(),simplifyRange:ze(),subset:Be(),SemVer:i,re:n.re,src:n.src,tokens:n.t,SEMVER_SPEC_VERSION:r.SEMVER_SPEC_VERSION,RELEASE_TYPES:r.RELEASE_TYPES,compareIdentifiers:a.compareIdentifiers,rcompareIdentifiers:a.rcompareIdentifiers}}))();function Ve(e,t){return(0,N.satisfies)(e,t)}function He(e,t){return(0,N.maxSatisfying)(e,t)}function Ue(e){return(0,N.validRange)(e)!==null}function We(e){return(0,N.parse)(e)?.version??null}function Ge(e,t){let n=(0,N.parse)(t);if(!n)return null;let r=null;for(let t of e){let e=(0,N.parse)(t);e&&e.major===n.major&&e.minor===n.minor&&e.patch===n.patch&&(r===null||(0,N.compare)(e,r)>0)&&(r=t)}return r}const Ke=S,qe=S,Je=ae;function Ye(e,t,n){let r,i=new Promise((e,i)=>{r=setTimeout(()=>i(Error(`${n}: timed out after ${t}ms`)),Math.max(1,t))});return Promise.race([e,i]).finally(()=>{r!==void 0&&clearTimeout(r)})}function Xe(e,t){let n=e.statusText?` ${e.statusText}`:``;return`${t} returned HTTP ${e.status}${n}`.trim()}async function Ze(e,t,n={}){if(!e||typeof e!=`string`)throw Error(`fetchPackument: package name is required`);if(!n.full){let r=await $e(e,t,n,`application/vnd.npm.install-v1+json; q=1.0, application/json; q=0.8, */*`);if(Qe(r))return r}return $e(e,t,n,`application/json`)}function Qe(e){let t=e[`dist-tags`];if(!t||typeof t!=`object`)return!1;for(let t of Object.values(e.versions)){let e=t?.dist;if(!e||typeof e.tarball!=`string`||typeof e.integrity!=`string`&&typeof e.shasum!=`string`)return!1}return!0}async function $e(e,n,r,i){let a=`fetchPackument(${e})`,o=Je(e);if(o.host!==Ke)throw Error(`${a}: refused to fetch packument from host '${o.host}' (expected '${Ke}')`);let s=o.toString(),c=r.timeoutMs??3e4,l;try{l=await Ye(n(s,{method:`GET`,headers:{Accept:i},timeoutMs:c}),c,a)}catch(e){if(e instanceof Error&&/timed out/.test(e.message))throw e;let t=e instanceof Error?e.message:String(e);throw Error(`${a}: network error (${t})`)}if(l.status<200||l.status>=300)throw Error(`${a}: ${Xe(l,`registry`)}`);let u;try{u=t(l.body)}catch(e){let t=e instanceof Error?e.message:String(e);throw Error(`${a}: failed to decode response body (${t})`)}let d;try{d=JSON.parse(u)}catch(e){let t=e instanceof Error?e.message:String(e);throw Error(`${a}: registry response was not valid JSON (${t})`)}if(!d||typeof d!=`object`)throw Error(`${a}: packument was empty or malformed`);let f=d;if(!f.versions||typeof f.versions!=`object`)throw Error(`${a}: packument is missing the 'versions' object`);return f}function et(e){return/^[A-Za-z][A-Za-z0-9_-]*$/.test(e)}function tt(e){if(!e||typeof e!=`object`)throw Error(`resolveVersion: packument is required`);let t=e.versions??{},n=Object.keys(t),r=e.name??`package`;if(n.length===0)throw Error(`resolveVersion(${r}): packument contains no versions`);return{packageName:r,versionMap:t,distTags:e[`dist-tags`]??{},versions:n}}function nt(e,t){let n=e.distTags[t];if(n&&e.versionMap[n])return n;throw Error(`resolveVersion(${e.packageName}): dist-tag '${t}' points to ${n??`(missing)`} which is not in the packument`)}function rt(e,t){return!!e.versionMap[t]?.deprecated}function it(e,t,n){if(!rt(e,t)||e.versions.length<=1)return null;let r=e.versions.filter(t=>!rt(e,t));if(n===`*`&&!Ve(t,`*`)){let e=Ge(r,t);if(e)return e}return He(r,n)}function at(e,t){let n=e.distTags.latest;if(n&&(t===`*`||Ve(n,t)))return it(e,n,t)??n;let r=He(e.versions,t);return r?it(e,r,t)??r:null}function ot(e,t){let n=e.versions.length;return Error(`resolveVersion(${e.packageName}): no version satisfies '${t}' (have ${n} version${n===1?``:`s`})`)}function P(e,t){let n=tt(e),r=(t??``).trim();if(r===``||r===`latest`){if(n.distTags.latest===void 0)throw Error(`resolveVersion(${n.packageName}): packument has no 'latest' dist-tag`);return nt(n,`latest`)}let i=We(r);if(i!==null){if(n.versionMap[i])return i;throw ot(n,r)}if(Ue(r)){let e=at(n,r===`x`?`*`:r);if(e===null)throw ot(n,r);if(!n.versionMap[e])throw Error(`resolveVersion(${n.packageName}): 'latest' dist-tag points to ${e} but that version is missing from the packument`);return e}if(Object.prototype.hasOwnProperty.call(n.distTags,r))return nt(n,r);if(et(r)){let e=Object.keys(n.distTags).join(`, `)||`none`;throw Error(`resolveVersion(${n.packageName}): unknown dist-tag '${r}' (available tags: ${e})`)}let a=n.versions.length;throw Error(`resolveVersion(${n.packageName}): invalid version or range '${r}' (have ${a} version${a===1?``:`s`})`)}async function st(e,t,r={}){if(!e||typeof e!=`string`)throw Error(`fetchTarball: url is required`);let i=`fetchTarball(${e})`,a;try{a=new URL(e)}catch{throw Error(`${i}: tarball URL is not a valid absolute URL`)}if(a.protocol!==`https:`)throw Error(`${i}: refused to fetch tarball with protocol '${a.protocol}' (expected 'https:')`);if(a.host!==qe)throw Error(`${i}: refused to fetch tarball from host '${a.host}' (expected '${qe}')`);let o=r.timeoutMs??12e4,s;try{s=await Ye(t(e,{method:`GET`,headers:{Accept:`application/octet-stream`},timeoutMs:o}),o,i)}catch(e){if(e instanceof Error&&/timed out/.test(e.message))throw e;let t=e instanceof Error?e.message:String(e);throw Error(`${i}: network error (${t})`)}if(s.status<200||s.status>=300)throw Error(`${i}: ${Xe(s,`registry`)}`);let c=n(s.body);if(!(c instanceof Uint8Array))throw Error(`${i}: response body could not be read as bytes`);if(c.length===0)throw Error(`${i}: response body is empty`);return c}async function F(e){let t={},n=new Map,r=d(e.concurrency??8),i=new Set,a=new Map,o=!1;function s(e){let t=`${e.name}@${e.version??e.range}`;a.has(t)||a.set(t,e)}function c(t){let i=n.get(t);return i||(i=r(async()=>{if(o)throw Error(`fetchPackument(${t}): resolution already finished`);return e.fetchPackument(t)}),n.set(t,i)),i}function l(e){let t=`${e.name}@${e.range}`;o||i.has(t)||(i.add(t),c(e.name).then(t=>{let n;try{n=t.versions[P(t,e.range)]}catch{return}if(!(!n||e.optional&&!ee(n)))for(let e of ct(n))l(e)},()=>void 0))}async function u(e){let t;try{t=await ut(e.name,e.range,c)}catch(t){let n=t instanceof Error?t.message:String(t);return s({name:e.name,range:e.range,note:`skipping optional dependency ${e.name}@${e.range} (${n})`}),null}if(ee(t.entry))return t;let n=`${e.name}@${t.version}`;return s({name:e.name,range:e.range,version:t.version,note:`skipping optional dependency ${n} (unsupported platform): ${te(n,t.entry)}`}),null}async function f(e,n){let{name:r,range:i}=e,a=lt(r,n,t);if(a&&Ve(a.version,i))return;let o=e.optional?await u(e):await ut(r,i,c);if(!o)return;if(dt(r,o.version,n)){let e=n[0];e&&(e.dependencies[r]=ft(r,o.version,o.entry));return}let s=ft(r,o.version,o.entry);pt(t,s,a,n);let d=[s,...n],p=ct(o.entry);for(let e of p)l(e);for(let e of p)await f(e,d)}let p=Object.entries(e.rootDependencies).map(([t,n])=>({name:t,range:n,optional:e.optionalRoots?.has(t)??!1}));for(let e of p)l(e);try{for(let e of p)await f(e,[])}finally{o=!0}return{root:t,skippedOptional:[...a.values()]}}function ct(e){let t=new Map;for(let[n,r]of Object.entries(e.dependencies??{}))t.set(n,{name:n,range:r,optional:!1});for(let[n,r]of Object.entries(e.optionalDependencies??{}))t.set(n,{name:n,range:r,optional:!0});return[...t.values()]}function lt(e,t,n){for(let n of t){let t=n.dependencies[e];if(t)return t}return n[e]??null}async function ut(e,t,n){let r,i;try{r=await n(e),i=P(r,t)}catch(n){let r=n instanceof Error?n.message:String(n);throw Error(`resolveDependencyTree: failed to resolve ${e}@${t}: ${r}`)}let a=r.versions[i];if(!a?.dist?.tarball)throw Error(`resolveDependencyTree: ${e}@${i} has no dist.tarball in the packument`);return{version:i,entry:a}}function dt(e,t,n){for(let r of n)if(r.name===e&&r.version===t)return!0;return!1}function ft(e,t,n){let r={name:e,version:t,resolved:n.dist.tarball,dependencies:{}};return typeof n.dist.integrity==`string`&&(r.integrity=n.dist.integrity),typeof n.dist.shasum==`string`&&(r.shasum=n.dist.shasum),n.bin!==void 0&&n.bin!==null&&(r.bin=n.bin),r}function pt(e,t,n,r){let i=n?r[0]:null;i?i.dependencies[t.name]=t:e[t.name]=t}const mt={sha512:`SHA-512`,sha384:`SHA-384`,sha256:`SHA-256`,sha1:`SHA-1`},ht=[`sha512`,`sha384`,`sha256`,`sha1`];var I=class extends Error{code=`EINTEGRITY`;constructor(e){super(`EINTEGRITY: ${e}`),this.name=`IntegrityError`}};function gt(e){return Object.prototype.hasOwnProperty.call(mt,e)}function _t(e){let t=new Map;for(let n of e.trim().split(/\s+/)){let e=n.indexOf(`-`);if(e<=0)continue;let r=n.slice(0,e).toLowerCase(),i=n.slice(e+1).split(`?`)[0];if(!i||!gt(r))continue;let a=t.get(r)??[];a.push(i),t.set(r,a)}return t}async function vt(e,t){let n=await crypto.subtle.digest(mt[e],t.slice());return new Uint8Array(n)}function yt(e){let t=``;for(let n of e)t+=String.fromCharCode(n);return btoa(t)}function bt(e){let t=``;for(let n of e)t+=n.toString(16).padStart(2,`0`);return t}async function xt(e,t,n){let r=typeof t.integrity==`string`?t.integrity.trim():``,i=typeof t.shasum==`string`?t.shasum.trim().toLowerCase():``;if(r){let t=_t(r),a=ht.find(e=>t.has(e));if(a){let i=yt(await vt(a,e));if(t.get(a)?.includes(i))return;throw new I(`${n} does not match its dist.integrity (expected ${r}, got ${a}-${i})`)}if(!i)throw new I(`${n} has a dist.integrity with no supported algorithm (${r})`)}if(i){let t=bt(await vt(`sha1`,e));if(t===i)return;throw new I(`${n} does not match its dist.shasum (expected ${i}, got ${t})`)}throw new I(`${n} has neither dist.integrity nor dist.shasum in the packument; refusing to install an unverifiable tarball`)}function L(e){let t=(e??``).trim();if(!t)throw Error(`ipk: package spec is required`);if(t.startsWith(`@`)){let e=t.indexOf(`/`);if(e===-1)throw Error(`ipk: scoped spec '${t}' is missing a name (expected @scope/name)`);let n=t.slice(e+1),r=n.indexOf(`@`),i=t.slice(0,e);return r===-1?{name:`${i}/${n}`,range:``}:{name:`${i}/${n.slice(0,r)}`,range:n.slice(r+1)}}let n=t.indexOf(`@`);return n===-1?{name:t,range:``}:{name:t.slice(0,n),range:t.slice(n+1)}}function R(e,...t){return`/${[e,...t].join(`/`).split(`/`).filter(e=>e.length>0).join(`/`)}`}function z(e,t){if(t.startsWith(`@`)){let[n,r]=t.split(`/`,2);return R(e,n,r)}return R(e,t)}async function B(e,t){await e.mkdir(t,{recursive:!0})}async function V(e,t){await e.exists(t)&&await e.rm(t,{recursive:!0})}function St(e){return`^${e}`}function Ct(e,t){let n=e.range.trim();return n===``||n===`*`||n===`latest`||/^[A-Za-z][A-Za-z0-9_-]*$/.test(n)?St(t):n}async function wt(e,t,n){for(let r of n){if(!r.path)continue;let n=r.path.replace(/\\/g,`/`).replace(/^\/+/,``);if(n.split(`/`).some(e=>e===`..`))throw Error(`installer: refusing to extract entry escaping package root: ${r.path}`);let i=R(t,n),a=i.lastIndexOf(`/`);a>0&&await B(e,i.slice(0,a)),await e.writeFile(i,r.bytes)}}async function H(e,t,n){let i;try{i=await e.readFile(t)}catch(e){if(e instanceof r&&e.code===`ENOENT`)return n;throw e}return JSON.parse(i)}async function U(e,t,n){let i;try{i=await e.readFile(t)}catch(e){if(e instanceof r&&e.code===`ENOENT`)return n;throw e}if(!i?.trim())return n;try{return JSON.parse(i)}catch{return n}}function W(e,t=[]){let n=new Set(Object.keys(e.optionalDependencies??{}));for(let e of t)n.delete(e);return n}function Tt(e){return e.skippedOptional.map(e=>e.note)}const G=[`dependencies`,`devDependencies`,`optionalDependencies`,`peerDependencies`];function K(e,t){return e!==void 0&&Object.hasOwn(e,t)}function Et(e,t,n){return n||K(e.devDependencies,t)?`devDependencies`:K(e.optionalDependencies,t)?`optionalDependencies`:K(e.peerDependencies,t)?`peerDependencies`:`dependencies`}function Dt(e,t){let n=e[Et(e,t,!1)]?.[t];return typeof n==`string`&&n.trim()!==``?n:void 0}function Ot(e,t){if(e.range.trim()!==``)return e;let n=Dt(t,e.name);return n===void 0?e:{name:e.name,range:n}}function kt(e,t){let n={dependencies:{...e.dependencies??{}},devDependencies:{...e.devDependencies??{}},optionalDependencies:{...e.optionalDependencies??{}},peerDependencies:{...e.peerDependencies??{}}},r=new Set;for(let e of t){for(let t of G)delete n[t][e.name];n[e.section][e.name]=e.range,r.add(e.section)}let i={...e};for(let t of G)(e[t]!==void 0||r.has(t))&&(i[t]=n[t]);return i}function q(e,t){let n=new Map;return r=>{let i=n.get(r);return i||(i=Ze(r,e,{timeoutMs:t}),n.set(r,i),i.catch(()=>n.delete(r))),i}}function At(e,t,n){let r=d(n??8);for(let n of new Set(t))r(async()=>e(n)).catch(()=>void 0)}async function jt(e,t,n,r){let i=[],a=[],o=new Set,s=[];for(let t of e)try{s.push(L(t).name)}catch{}At(t,s,r);for(let r of e){let e;try{e=L(r)}catch(e){a.push({spec:r,error:J(e)});continue}if(n&&(e=Ot(e,n)),o.has(e.name)){let t=i.findIndex(t=>t.parsed.name===e.name);t>=0&&i.splice(t,1)}try{P(await t(e.name),e.range)}catch(e){a.push({spec:r,error:J(e)});continue}i.push({spec:r,parsed:e}),o.add(e.name)}return{directs:i,errors:a}}function J(e){return e instanceof Error?e:Error(String(e))}async function Mt(e,t,n){let{fs:r}=e,i=R(t,`package.json`);if(await r.exists(i)&&(await U(r,i,null))?.version===n.version)return;let a=await st(n.resolved,e.fetch,{timeoutMs:e.timeoutMs});await xt(a,n,`${n.name}@${n.version}`);let o=l(u(a));await V(r,t),await B(r,t);try{await wt(r,t,o)}catch(e){throw await V(r,t),e}}async function Nt(e,t,n){let r=z(t,n.name);await e.limit(async()=>{if(!e.failed)try{await Mt(e,r,n)}catch(t){throw e.failed=!0,t}});let i=Object.keys(n.dependencies);if(i.length===0||e.failed)return;let a=R(r,`node_modules`);await B(e.fs,a),await f(i.map(t=>Nt(e,a,n.dependencies[t])))}async function Y(e,t,n,r,i,a){let o=Object.keys(n.root);if(o.length===0)return;await B(e,t);let s={fs:e,fetch:r,timeoutMs:i,limit:d(a??8),failed:!1};await f(o.map(e=>Nt(s,t,n.root[e])))}function Pt(e){if(e.startsWith(`@`)){let t=e.indexOf(`/`);if(t!==-1)return e.slice(t+1)}return e}function Ft(e,t){return typeof e==`string`?{[Pt(t)]:e}:e}function It(e){return e.replace(/^\.\//,``).replace(/^\/+/,``)}function Lt(e){return`#!/usr/bin/env node\nrequire(${JSON.stringify(e)});\n`}async function Rt(e,t){let n=[];return await zt(e,t,0,n),n}async function zt(e,t,n,r){if(!await e.exists(t))return;let i;try{i=await e.readDir(t)}catch{return}for(let a of i){if(a.type!==`directory`||a.name===`.bin`)continue;if(a.name.startsWith(`@`)){let i=R(t,a.name),o;try{o=await e.readDir(i)}catch{continue}for(let t of o){if(t.type!==`directory`)continue;let o=`${a.name}/${t.name}`;await Bt(e,R(i,t.name),o,n,r)}continue}let i=a.name;await Bt(e,R(t,a.name),i,n,r)}}async function Bt(e,t,n,r,i){let a=await U(e,R(t,`package.json`),null);if(a?.bin!==void 0&&a.bin!==null){let e=Ft(a.bin,n);for(let[a,o]of Object.entries(e))typeof a==`string`&&a.length!==0&&typeof o==`string`&&o.length!==0&&i.push({binName:a,pkgName:n,installDir:t,binPath:o,depth:r})}await zt(e,R(t,`node_modules`),r+1,i)}function X(e){let t=new Map;for(let n of e){let e=t.get(n.binName);if(!e){t.set(n.binName,n);continue}(n.depth<e.depth||n.depth===e.depth&&n.pkgName<e.pkgName)&&t.set(n.binName,n)}return t}function Vt(e,t,n,r){let i=z(e,t.name);if(t.bin!==void 0&&t.bin!==null){let e=Ft(t.bin,t.name);for(let[a,o]of Object.entries(e))typeof a==`string`&&a.length!==0&&typeof o==`string`&&o.length!==0&&r.push({binName:a,pkgName:t.name,installDir:i,binPath:o,depth:n})}let a=R(i,`node_modules`);for(let e of Object.values(t.dependencies))Vt(a,e,n+1,r)}function Ht(e,t){let n=[];for(let r of Object.values(e.root))Vt(t,r,0,n);return n}function Ut(e,t){return new Set(X(Ht(e,t)).keys())}function Wt(e,t,n){return`..${t.slice(e.length)}/${It(n)}`}async function Z(e,t){let n=X(await Rt(e,t)),r=R(t,`.bin`);if(await e.exists(r)){let t;try{t=await e.readDir(r)}catch{t=[]}for(let i of t)i.type===`file`&&(n.has(i.name)||await e.rm(R(r,i.name)))}if(n.size!==0){await B(e,r);for(let i of n.values()){let n=R(r,i.binName),a=Lt(Wt(t,i.installDir,i.binPath));await e.writeFile(n,a)}}}async function Gt(e,t,n){let r=R(t,`package.json`),i=kt(await H(e,r,{}),n);return await e.writeFile(r,`${JSON.stringify(i,null,2)}\n`),r}async function Kt(e,t){let{fs:n,fetch:r,cwd:i,timeoutMs:o,global:c=!1,saveDev:l=!1,concurrency:u}=t;if(e.length===0)return{results:[],errors:[]};let d=c?a:i,f=await H(n,R(d,`package.json`),{}),p=q(r,o),{directs:m,errors:h}=await jt(e,p,f,u);if(m.length===0)return{results:[],errors:h};let _={};if(c)for(let e of $(f))_[e.name]=e.range;for(let e of m)_[e.parsed.name]=e.parsed.range;let y=await F({rootDependencies:_,fetchPackument:p,concurrency:u,optionalRoots:W(f,m.map(e=>e.parsed.name))}),b=c?s:R(i,`node_modules`);if(c&&(await en(n,b,new Set(Object.keys(y.root))),await g(n,Ut(y,b))),await Y(n,b,y,r,o,u),await Z(n,b),c){let e=X(await Rt(n,b));await v(n,new Set(e.keys()))}let x=await Gt(n,d,m.map(e=>{let t=y.root[e.parsed.name];if(!t)throw Error(`installer: resolved node missing for ${e.parsed.name}`);return{name:e.parsed.name,range:Ct(e.parsed,t.version),section:Et(f,e.parsed.name,l)}}));return{results:m.map(e=>{let t=y.root[e.parsed.name],n=z(b,e.parsed.name);return{ok:!0,name:e.parsed.name,version:t.version,installPath:n,range:Ct(e.parsed,t.version),manifestPath:x}}),errors:h,notes:Tt(y)}}async function qt(e,t){let{results:n,errors:r}=await Kt([e],t);if(r.length>0)throw r[0].error;if(n.length===0)throw Error(`ipk: install of '${e}' produced no result`);return n[0]}var Jt=class extends Error{constructor(e){super(`no package.json found at ${e} (run 'ipk install <pkg>' to create one, or add a package.json)`),this.name=`ManifestNotFoundError`}};function Q(e,t){if(!(!t||typeof t!=`object`))for(let[n,r]of Object.entries(t))typeof n==`string`&&typeof r==`string`&&e.set(n,r)}function Yt(e){let t=new Map;return Q(t,e.devDependencies),Q(t,e.dependencies),Q(t,e.optionalDependencies),Array.from(t.entries()).map(([e,t])=>({name:e,range:t}))}function $(e){let t=new Map;return Q(t,e.dependencies),Q(t,e.peerDependencies),Q(t,e.optionalDependencies),Q(t,e.devDependencies),Array.from(t.entries()).map(([e,t])=>({name:e,range:t}))}async function Xt(e){let{fs:t,fetch:n,cwd:r,timeoutMs:i,concurrency:a}=e,o=R(r,`package.json`);if(!await t.exists(o))throw new Jt(o);let s=await H(t,o,{}),c=Yt(s);if(c.length===0)return{results:[],errors:[],empty:!0};let l=q(n,i),u=[],d=[],f=W(s),p=[];At(l,c.map(e=>e.name),a);for(let e of c)try{P(await l(e.name),e.range),u.push(e)}catch(t){f.has(e.name)?p.push(`skipping optional dependency ${e.name}@${e.range} (${J(t).message})`):d.push({spec:`${e.name}@${e.range}`,error:J(t)})}if(u.length===0)return{results:[],errors:d,empty:!1,notes:p};let m={};for(let e of u)m[e.name]=e.range;let h=await F({rootDependencies:m,fetchPackument:l,concurrency:a,optionalRoots:f}),g=R(r,`node_modules`);return await Y(t,g,h,n,i,a),await Z(t,g),{results:u.map(e=>{let t=h.root[e.name];return t?{ok:!0,name:e.name,version:t.version,installPath:z(g,e.name),range:e.range,manifestPath:o}:null}).filter(e=>e!==null),errors:d,empty:!1,notes:[...p,...Tt(h)]}}function Zt(e,t){return G.some(n=>K(e[n],t))}function Qt(e,t){let n={...e};for(let r of G){let i={...e[r]??{}};for(let e of t)delete i[e];e[r]!==void 0&&(n[r]=i)}return n}async function $t(e,t,n){await e.writeFile(t,`${JSON.stringify(n,null,2)}\n`)}async function en(e,t,n){if(!await e.exists(t))return;let r;try{r=await e.readDir(t)}catch{return}for(let i of r)if(i.name!==`.bin`&&i.type===`directory`){if(i.name.startsWith(`@`)){let r=R(t,i.name),a;try{a=await e.readDir(r)}catch{continue}for(let t of a){if(t.type!==`directory`)continue;let a=`${i.name}/${t.name}`;n.has(a)||await V(e,R(r,t.name))}continue}n.has(i.name)||await V(e,R(t,i.name))}}async function tn(e,t,n,r){let a=r??await H(e,i,{}),o=$(a);if(o.length===0){await V(e,s),await v(e,new Set);return}let c=q(t,n),l={};for(let e of o)l[e.name]=e.range;let u=await F({rootDependencies:l,fetchPackument:c,optionalRoots:W(a)});await en(e,s,new Set(Object.keys(u.root))),await g(e,Ut(u,s)),await Y(e,s,u,t,n),await Z(e,s);let d=X(await Rt(e,s));await v(e,new Set(d.keys()))}async function nn(e,t){let{fs:n,fetch:r,cwd:i,timeoutMs:o,global:s=!1}=t;if(e.length===0)return{results:[],errors:[]};let c=new Set,l=[];for(let t of e)try{c.add(L(t).name)}catch(e){l.push({spec:t,error:J(e)})}if(c.size===0)return{results:[],errors:l};let u=R(s?a:i,`package.json`);if(!await n.exists(u)){for(let t of e)l.push({spec:t,error:new Jt(u)});return{results:[],errors:l}}let d=await H(n,u,{}),f=[];for(let e of c)f.push({name:e,removed:Zt(d,e)});let p=Qt(d,c);try{s?await tn(n,r,o,p):await rn(n,r,i,o,p)}catch(t){return l.push({spec:e.join(` `),error:J(t)}),{results:f,errors:l}}return await $t(n,u,p),{results:f,errors:l}}async function rn(e,t,n,r,i){let a=R(n,`package.json`),o=i??await H(e,a,{}),s=$(o),c=R(n,`node_modules`);if(s.length===0){await V(e,c);return}let l=q(t,r),u={};for(let e of s)u[e.name]=e.range;let d=await F({rootDependencies:u,fetchPackument:l,optionalRoots:W(o)});await en(e,c,new Set(Object.keys(d.root))),await Y(e,c,d,t,r),await Z(e,c)}async function an(e){let t=$(await H(e,i,{})),n=[];for(let r of t){let t=await U(e,R(z(s,r.name),`package.json`),{});n.push({name:r.name,version:typeof t.version==`string`?t.version:`?`,range:r.range})}return n.sort((e,t)=>e.name.localeCompare(t.name)),n}async function on(e,t){let n=R(t,`package.json`);if(!await e.exists(n))return[];let r=$(await H(e,n,{})),i=R(t,`node_modules`),a=[];for(let t of r){let n=await U(e,R(z(i,t.name),`package.json`),{});a.push({name:t.name,version:typeof n.version==`string`?n.version:`?`,range:t.range})}return a.sort((e,t)=>e.name.localeCompare(t.name)),a}export{Jt as ManifestNotFoundError,Xt as installFromManifest,qt as installPackage,Kt as installPackages,an as listGlobalPackages,on as listLocalPackages,L as parseInstallSpec,tn as syncGlobalInstallTree,nn as uninstallPackages};
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import{i as e,t}from"./rolldown-runtime-Dd_uD5pT.js";import{n,r}from"./fetch-body-CuwTaJC_.js";import{t as i}from"./types-D8gIX-W-.js";import"./fs-BvMvRMgl.js";import{r as a,t as o}from"./subcommand-help-CgO7wRS5.js";import{r as s,t as c}from"./tar-BWIPCxI2.js";var l=e(t(((e,t)=>{var n={};n.array=function(e){var t=0,n=0,r=[0,1,3,7,15,31,63,127,255];return function(i){for(var a=0;i>0;){var o=8-t;i>=o?(a<<=o,a|=r[o]&e[n++],t=0,i-=o):(a<<=i,a|=(e[n]&r[i]<<8-i-t)>>8-i-t,t+=i,i=0)}return a}},n.simple=function(e){var t=n.header(e),r,i,a=[],o=0;do i=n.decompress(e,t),i!=-1&&(a.push(i),o+=i.byteLength);while(i!=-1);r=new Uint8Array(o),o=0;for(var s=0;s<a.length;++s)i=a[s],r.set(i,o),o+=i.byteLength;return r},n.header=function(e){if(e(24)!=4348520)throw`No magic number found`;var t=e(8)-48;if(t<1||t>9)throw`Not a BZIP archive`;return t},n.decompress=function(e,t,n){for(var r=20,i=258,a=0,o=1,s=50,c=9e5,l=``,u=0;u<6;u++)l+=e(8).toString(16);if(l==`177245385090`)return-1;if(l!=`314159265359`)throw`eek not valid bzip data`;if(e(32),e(1))throw`unsupported obsolete version`;var d=e(24);if(d>c)throw`Initial position larger than buffer size`;var f=e(16),p=new Uint8Array(256),m=0;for(u=0;u<16;u++)if(f&1<<15-u){var h=e(16);for(b=0;b<16;b++)h&1<<15-b&&(p[m++]=16*u+b)}var g=e(3);if(g<2||g>6)throw`another error`;var _=e(15);if(_==0)throw`meh`;for(var v=[],u=0;u<g;u++)v[u]=u;for(var y=new Uint8Array(32768),u=0;u<_;u++){for(var b=0;e(1);b++)if(b>=g)throw`whoops another error`;var x=v[b];v.splice(b,1),v.splice(0,0,x),y[u]=x}for(var S=m+2,C=[],b=0;b<g;b++){var w=new Uint8Array(i),T=new Uint8Array(r+1);f=e(5);for(var u=0;u<S;u++){for(;;){if(f<1||f>r)throw`I gave up a while ago on writing error messages`;if(!e(1))break;e(1)?f--:f++}w[u]=f}for(var E=D=w[0],D,u=1;u<S;u++)w[u]>D?D=w[u]:w[u]<E&&(E=w[u]);var O=C[b]={};O.permute=new Uint32Array(i),O.limit=new Uint32Array(r+1),O.base=new Uint32Array(r+1),O.minLen=E,O.maxLen=D;for(var k=O.base.subarray(1),A=O.limit.subarray(1),j=0,u=E;u<=D;u++)for(var f=0;f<S;f++)w[f]==u&&(O.permute[j++]=f);for(u=E;u<=D;u++)T[u]=A[u]=0;for(u=0;u<S;u++)T[w[u]]++;for(j=f=0,u=E;u<D;u++)j+=T[u],A[u]=j-1,j<<=1,k[u+1]=j-(f+=T[u]);A[D]=j+T[D]-1,k[E]=0}for(var M=new Uint32Array(256),u=0;u<256;u++)v[u]=u;for(var N=P=S=F=0,P,S,F,I=new Uint32Array(c);;){if(!S--){if(S=s-1,F>=_)throw`meow i'm a kitty, that's an error`;O=C[y[F++]],k=O.base.subarray(1),A=O.limit.subarray(1)}for(u=O.minLen,b=e(u);;){if(u>O.maxLen)throw`rawr i'm a dinosaur`;if(b<=A[u])break;u++,b=b<<1|e(1)}if(b-=k[u],b<0||b>=i)throw`moo i'm a cow`;var L=O.permute[b];if(L==a||L==o){N||(N=1,f=0),f+=L==a?N:2*N,N<<=1;continue}if(N){if(N=0,P+f>=c)throw`Boom.`;for(x=p[v[0]],M[x]+=f;f--;)I[P++]=x}if(L>m)break;if(P>=c)throw`I can't think of anything. Error`;u=L-1,x=v[u],v.splice(u,1),v.splice(0,0,x),x=p[x],M[x]++,I[P++]=x}if(d<0||d>=P)throw`I'm a monkey and I'm throwing something at someone, namely you`;for(var b=0,u=0;u<256;u++)h=b+M[u],M[u]=b,b=h;for(var u=0;u<P;u++)x=I[u]&255,I[M[x]]|=u<<8,M[x]++;var R=0,z=0,B=0;P&&(R=I[d],z=R&255,R>>=8,B=-1),P=P;var V=new Uint8Array(c),H,U,W,G=0;for(n||=1/0;P;){for(P--,U=z,R=I[R],z=R&255,R>>=8,B++==3?(H=z,W=U,z=-1):(H=1,W=z);H--;)if(V[G++]=W,!--n)return V;z!=U&&(B=0)}return V.subarray(0,G)},t.exports=n}))(),1);function u(e,t){let n=e.replace(/\\/g,`/`).replace(/^\/+/,``);if(!n||n.split(`/`).some(e=>e===`..`))throw Error(`${t}: refusing to extract entry escaping package root: ${e}`);return n}function d(e,t){let n=[];for(let r of e){if(!r.path)continue;let e=u(r.path,t);if(r.symlink!==void 0){if(r.symlink.split(`/`).some(e=>e===`..`))throw Error(`${t}: refusing symlink '${e}' -> '${r.symlink}' (path escape)`);n.push({path:e,bytes:new Uint8Array,symlink:r.symlink});continue}n.push({path:e,bytes:r.bytes,...r.directory?{directory:!0}:{}})}return n}function f(e){if(!(e instanceof Uint8Array))throw Error(`bunzip2: input must be a Uint8Array`);if(e.length<4||e[0]!==66||e[1]!==90)throw Error(`bunzip2: input is not a valid bzip2 stream (bad magic)`);try{let t=l.default.simple(l.default.array(e));return Uint8Array.from(t)}catch(e){let t=e instanceof Error?e.message:String(e);throw Error(`bunzip2: failed to decompress (${t})`)}}function p(e,t){let n=t.toLowerCase(),r=`extractCondaArchive(${t})`;if(n.endsWith(`.conda`))throw Error(`${r}: .conda (zip+zstd) packages are not supported yet; emscripten-forge currently ships .tar.bz2 — use that format`);let i;if(n.endsWith(`.tar.bz2`)||n.endsWith(`.tbz2`))i=f(e);else if(n.endsWith(`.tar.gz`)||n.endsWith(`.tgz`))i=c(e);else if(n.endsWith(`.tar`))i=e;else throw Error(`${r}: unsupported archive type (expected .tar.bz2, .tar.gz, or .tar)`);return d(s(i,{stripNpmPrefix:!1,includeDirectories:!1,includeSymlinks:!0,preserveRawPaths:!1}),r)}const m=`/shared/lib/conda`,h=[`https://repo.prefix.dev/emscripten-forge-4x`,`https://repo.prefix.dev/conda-forge`],g=new Set([`repo.prefix.dev`,`prefix.dev`]);function _(e,t,n){let r,i=new Promise((e,i)=>{r=setTimeout(()=>i(Error(`${n}: timed out after ${t}ms`)),Math.max(1,t))});return Promise.race([e,i]).finally(()=>{r!==void 0&&clearTimeout(r)})}function v(e,t){let n;try{n=new URL(e)}catch{throw Error(`${t}: URL is not a valid absolute URL`)}if(n.protocol!==`https:`)throw Error(`${t}: refused protocol '${n.protocol}' (expected 'https:')`);if(!g.has(n.hostname))throw Error(`${t}: refused host '${n.hostname}' (allowed: ${[...g].join(`, `)})`);return n}function y(e,t){let n=e.statusText?` ${e.statusText}`:``;return`${t} returned HTTP ${e.status}${n}`.trim()}function b(e){let t=(e??``).trim();if(!t)throw Error(`ipk mamba: package spec is required`);if(t.startsWith(`-`))throw Error(`ipk mamba: invalid package spec '${t}'`);let n=t.indexOf(`=`);if(n===-1)return{name:t,version:``};let r=t.slice(0,n),i=t.slice(n+1);if(i.startsWith(`=`)&&(i=i.slice(1)),!r||!i)throw Error(`ipk mamba: invalid package spec '${t}' (expected name=version)`);return{name:r,version:i}}function x(e,t,n){return`${e.replace(/\/+$/,``)}/${t}/${n}`}function S(e,t){return x(e,t,`repodata.json`)}function C(e,t){let n=e.build_number??0,r=t.build_number??0;return n===r?(e.timestamp??0)-(t.timestamp??0):n-r}function w(e,t){let n=e.split(/[.+_-]/).map(e=>/^\d+$/.test(e)?Number(e):e),r=t.split(/[.+_-]/).map(e=>/^\d+$/.test(e)?Number(e):e),i=Math.max(n.length,r.length);for(let e=0;e<i;e++){let t=n[e]??0,i=r[e]??0;if(typeof t==`number`&&typeof i==`number`){if(t!==i)return t-i;continue}let a=String(t),o=String(i);if(a!==o)return a<o?-1:1}return 0}async function T(e,t,r={}){let i=S(e,r.subdir??`emscripten-wasm32`),a=`fetchRepodata(${i})`;v(i,a);let o=r.timeoutMs??6e4,s;try{s=await _(t(i,{method:`GET`,headers:{Accept:`application/json`},timeoutMs:o}),o,a)}catch(e){if(e instanceof Error&&/timed out/.test(e.message))throw e;let t=e instanceof Error?e.message:String(e);throw Error(`${a}: ${t}`)}if(s.status<200||s.status>=300)throw Error(y(s,a));if(s.body==null||typeof s.body==`string`&&s.body===``)throw Error(`${a}: empty body`);try{return JSON.parse(n(s.body))}catch(e){let t=e instanceof Error?e.message:String(e);throw Error(`${a}: invalid JSON (${t})`)}}function E(e,t){let n=[];for(let[r,i]of[[`packages`,e.packages??{}],[`packages.conda`,e[`packages.conda`]??{}]])for(let[e,r]of Object.entries(i))e.toLowerCase().endsWith(`.conda`)||n.push({...r,channel:t,filename:e});return n}async function D(e,t,n){let r=`${e}|${t}`,i=n.indexes?.get(r);if(i)return i;try{let i=await T(e,n.fetch,{subdir:t,timeoutMs:n.timeoutMs});return n.indexes?.set(r,i),i}catch(e){if(t===`noarch`)return null;throw e}}function O(e,t,n,r){let i=[];for(let a of E(e,t))a.name===r.name&&(r.version&&a.version!==r.version||i.push({...a,subdir:a.subdir??n}));return i}function k(e,t){let n=e=>{let n=t.indexOf(e);return n===-1?t.length:n};return e.sort((e,t)=>{let r=w(e.version,t.version);if(r!==0)return r;let i=n(e.channel),a=n(t.channel);return i===a?C(e,t):a-i}),e[e.length-1]}async function A(e,t){let n=typeof e==`string`?b(e):e,r=t.channels??h,i=t.platform??`emscripten-wasm32`,a=t.includeNoarch??!0?[i,`noarch`]:[i],o=[];for(let e of r)for(let r of a){let i=await D(e,r,t);i&&o.push(...O(i,e,r,n))}if(o.length===0){let e=n.version?`${n.name}=${n.version}`:n.name;throw Error(`ipk mamba: package '${e}' not found on ${r.join(`, `)} (platform ${i})`)}return k(o,r)}function j(e){let t=e.subdir??`emscripten-wasm32`;return x(e.channel,t,e.filename)}async function M(e,t,n={}){let i=j(e),a=`downloadCondaPackage(${i})`;v(i,a);let o=n.timeoutMs??12e4,s;try{s=await _(t(i,{method:`GET`,headers:{Accept:`application/octet-stream`},timeoutMs:o}),o,a)}catch(e){if(e instanceof Error&&/timed out/.test(e.message))throw e;let t=e instanceof Error?e.message:String(e);throw Error(`${a}: ${t}`)}if(s.status<200||s.status>=300)throw Error(y(s,a));if(s.body==null||typeof s.body==`string`&&s.body===``)throw Error(`${a}: empty body`);let c=r(s.body);if(c.length===0)throw Error(`${a}: empty body`);return c}function N(e,...t){return`/${[e,...t].join(`/`).split(`/`).filter(e=>e.length>0).join(`/`)}`}async function P(e,t){await e.mkdir(t,{recursive:!0})}async function F(e,t){await e.exists(t)&&await e.rm(t,{recursive:!0})}function I(e){return`${e.name}-${e.version}-${e.build}.json`}function L(e,t){return N(e,`conda-meta`,I(t))}function R(e){let t=e.find(e=>e.path===`info/paths.json`&&!e.symlink);if(!t)return new Map;try{let e=JSON.parse(new TextDecoder().decode(t.bytes)),n=new Map;for(let t of e.paths??[])typeof t._path==`string`&&typeof t.prefix_placeholder==`string`&&t.prefix_placeholder.length>0&&n.set(t._path,t.prefix_placeholder);return n}catch{return new Map}}function z(e,t,n,r){let i=new TextEncoder,a=i.encode(t);if(a.length===0)return e;if(r===`text`){let r=new TextDecoder(`utf-8`,{fatal:!1}).decode(e);return r.includes(t)?i.encode(r.split(t).join(n)):e}let o=i.encode(n);if(o.length>a.length){let r=new TextDecoder(`utf-8`,{fatal:!1}).decode(e);return r.includes(t)?i.encode(r.split(t).join(n)):e}let s=new Uint8Array(e);for(let e=0;e<=s.length-a.length;e++){let t=!0;for(let n=0;n<a.length;n++)if(s[e+n]!==a[n]){t=!1;break}t&&(s.set(o,e),s.fill(0,e+o.length,e+a.length),e+=a.length-1)}return s}async function B(e,t,n){let r=R(n),i=new Map,a=n.find(e=>e.path===`info/paths.json`&&!e.symlink);if(a)try{let e=JSON.parse(new TextDecoder().decode(a.bytes));for(let t of e.paths??[])typeof t._path==`string`&&i.set(t._path,t)}catch{}let o=[],s=n.filter(e=>!e.symlink&&!e.directory),c=n.filter(e=>e.symlink);for(let n of s){if(n.path===`info`||n.path.startsWith(`info/`))continue;let a=N(t,n.path),s=a.lastIndexOf(`/`);s>0&&await P(e,a.slice(0,s));let c=n.bytes,l=r.get(n.path);l&&(c=z(c,l,t,i.get(n.path)?.file_mode)),await e.writeFile(a,c),o.push(n.path)}let l=[];for(let e of c){if(e.path===`info`||e.path.startsWith(`info/`))continue;let n=N(t,e.path);l.push({target:e.symlink,path:n}),o.push(e.path)}return l.length>0&&await e.symlinkBatch(l),o}async function V(e,t,n,r){await P(e,N(t,`conda-meta`));let i={name:n.name,version:n.version,build:n.build,build_number:n.build_number??0,channel:n.channel,filename:n.filename,depends:n.depends??[],files:r,paths_data:r.map(e=>({_path:e})),extracted_package_dir:``,requested_spec:`${n.name}=${n.version}=${n.build}`};await e.writeFile(L(t,n),`${JSON.stringify(i,null,2)}\n`)}async function H(e,t){let n=t.prefix??`/shared/lib/conda`,r=await A(e,{fetch:t.fetch,channels:t.channels??h,platform:t.platform,timeoutMs:t.timeoutMs,indexes:t.indexes}),i=p(await M(r,t.fetch,{timeoutMs:t.timeoutMs}),r.filename);await P(t.fs,n);let a=await G(t.fs,n);for(let e of a.filter(e=>e.name===r.name))await K(e.name,{fs:t.fs,prefix:n});let o=await B(t.fs,n,i);return await V(t.fs,n,r,o),{ok:!0,name:r.name,version:r.version,build:r.build,prefix:n,filename:r.filename,files:o.length,channel:r.channel}}async function U(e,t){let n=[],r=[],i=t.indexes??new Map;for(let a of e)try{b(a);let e=await H(a,{...t,indexes:i});n.push(e)}catch(e){r.push({spec:a,error:e instanceof Error?e:Error(String(e))})}return{results:n,errors:r}}async function W(e,t){try{let n=await e.readFile(t,{encoding:`utf-8`});return JSON.parse(n)}catch(e){if(e instanceof i&&e.code===`ENOENT`||e instanceof Error&&/ENOENT/.test(e.message))return null;throw e}}async function G(e,t=m){let n=N(t,`conda-meta`);if(!await e.exists(n))return[];let r;try{r=(await e.readDir(n)).map(e=>e.name).filter(e=>e.endsWith(`.json`))}catch{return[]}let i=[];for(let t of r.sort()){let r=await W(e,N(n,t));!r?.name||!r.version||!r.build||i.push({name:r.name,version:r.version,build:r.build,channel:r.channel,filename:r.filename,files:Array.isArray(r.files)?r.files:[]})}return i}async function K(e,t){let n=t.prefix??`/shared/lib/conda`,r=(await G(t.fs,n)).find(t=>t.name===e);if(!r)return{name:e,removed:!1};for(let e of r.files)await F(t.fs,N(n,e));return await F(t.fs,L(n,r)),{name:e,removed:!0,version:r.version,build:r.build}}async function q(e,t){let n=[],r=[];for(let i of e)try{n.push(await K(i,t))}catch(e){r.push({spec:i,error:e instanceof Error?e:Error(String(e))})}return{results:n,errors:r}}const J=new Set([`install`,`i`,`add`]),Y=new Set([`uninstall`,`remove`,`rm`,`un`]),X=new Set([`list`,`ls`]);function Z(e){return`${e} mamba - install emscripten-wasm32 packages from conda/emscripten-forge
|
|
2
|
-
|
|
3
|
-
Usage:
|
|
4
|
-
${e} mamba install <pkg>[=<version>] ...
|
|
5
|
-
${e} mamba list
|
|
6
|
-
${e} mamba uninstall <pkg> ...
|
|
7
|
-
|
|
8
|
-
install <pkg>[=<version>] ...
|
|
9
|
-
Download and extract into ${m}
|
|
10
|
-
list
|
|
11
|
-
List packages recorded under ${m}/conda-meta
|
|
12
|
-
uninstall|remove|rm <pkg> ...
|
|
13
|
-
Remove package files and conda-meta record
|
|
14
|
-
|
|
15
|
-
Prefix:
|
|
16
|
-
Packages extract into ${m} (lib/, include/, bin/, conda-meta/).
|
|
17
|
-
Shared conda env alongside npm's /shared/lib/node_modules.
|
|
18
|
-
|
|
19
|
-
Channels (default):
|
|
20
|
-
${h.map(e=>`- ${e}`).join(`
|
|
21
|
-
`)}
|
|
22
|
-
Platform: emscripten-wasm32 (+ conda-forge noarch)
|
|
23
|
-
|
|
24
|
-
Spec forms:
|
|
25
|
-
zlib install the newest indexed build
|
|
26
|
-
zlib=1.3.1 install that exact version (newest build)
|
|
27
|
-
|
|
28
|
-
Limitations (honest):
|
|
29
|
-
Thin index lookup — not a full mamba/rattler SAT solve. Virtual packages
|
|
30
|
-
(emscripten-abi, __*) are skipped; hard depends are NOT auto-installed.
|
|
31
|
-
Archives: .tar.bz2 (current emscripten-forge format). .conda (zip+zstd)
|
|
32
|
-
is not supported yet.
|
|
33
|
-
|
|
34
|
-
Not a drop-in for convert/ffmpeg/python: those built-ins still need npm
|
|
35
|
-
(@imagemagick/magick-wasm, @ffmpeg/core, pyodide). Forge imagemagick/ffmpeg
|
|
36
|
-
ship link libraries (and incomplete CLI JS without .wasm); there is no
|
|
37
|
-
forge pyodide. Use ipk mamba for forge libs such as zlib/libpng.
|
|
38
|
-
|
|
39
|
-
Options:
|
|
40
|
-
-h, --help Show this help message
|
|
41
|
-
`}function Q(e){return e instanceof Error?e.message:String(e)}function $(e,t){if(t.length===0)return`${e}\n└── (empty)\n`;let n=[`${e}`];for(let e=0;e<t.length;e++){let r=e===t.length-1?`└──`:`├──`,i=t[e];n.push(`${r} ${i.name}-${i.version}-${i.build}`)}return`${n.join(`
|
|
42
|
-
`)}\n`}async function ee(e,t,n){let r=t.filter(e=>!e.startsWith(`-`));if(r.length===0)return{stdout:``,stderr:`${e} mamba install: requires at least one package name\n`,exitCode:1};let i;try{i=await U(r,{fs:n.fs,fetch:n.fetch})}catch(t){return{stdout:``,stderr:`${e} mamba: install failed: ${Q(t)}\n`,exitCode:1}}let a=i.results.map(t=>`${e} mamba: installed ${t.name}-${t.version}-${t.build} (${t.files} files) -> ${t.prefix}`),o=i.errors.map(t=>`${e} mamba: failed to install ${t.spec}: ${Q(t.error)}`);return{stdout:a.length>0?`${a.join(`
|
|
43
|
-
`)}\n`:``,stderr:o.length>0?`${o.join(`
|
|
44
|
-
`)}\n`:``,exitCode:i.errors.length===0?0:1}}async function te(e,t){try{let e=await G(t.fs);return{stdout:$(m,e),stderr:``,exitCode:0}}catch(t){return{stdout:``,stderr:`${e} mamba: list failed: ${Q(t)}\n`,exitCode:1}}}async function ne(e,t,n){let r=t.filter(e=>!e.startsWith(`-`));if(r.length===0)return{stdout:``,stderr:`${e} mamba uninstall: requires at least one package name\n`,exitCode:1};let i;try{i=await q(r,{fs:n.fs})}catch(t){return{stdout:``,stderr:`${e} mamba: uninstall failed: ${Q(t)}\n`,exitCode:1}}let a=i.results.filter(e=>e.removed).map(t=>`${e} mamba: removed ${t.name}`+(t.version&&t.build?`-${t.version}-${t.build}`:``)),o=i.results.filter(e=>!e.removed).map(e=>e.name),s=i.errors.map(t=>`${e} mamba: failed to uninstall ${t.spec}: ${Q(t.error)}`);return o.length>0&&s.push(`${e} mamba: ${o.join(`, `)} not installed`),{stdout:a.length>0?`${a.join(`
|
|
45
|
-
`)}\n`:``,stderr:s.length>0?`${s.join(`
|
|
46
|
-
`)}\n`:``,exitCode:i.errors.length===0?0:1}}async function re(e,t,n,r){let i=Z(e);if(t.length===0)return{stdout:i,stderr:`${e} mamba: missing subcommand\n`,exitCode:1};if(o(t))return{stdout:i,stderr:``,exitCode:0};let s=t[0],c=t.slice(1);return o(c)?{stdout:a(`${e} mamba`,s,i),stderr:``,exitCode:0}:J.has(s)?ee(e,c,r):Y.has(s)?ne(e,c,r):X.has(s)?te(e,r):{stdout:``,stderr:`${e} mamba: unknown subcommand '${s}' (supported: install, list, uninstall)\n`,exitCode:1}}export{re as runIpkMamba};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./store-Bu_WlNqx.js";import"./provider-YkRt54jM.js";export{e as readMcpAuthEntries};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./provider-DmFA_o6z.js";export{e as readMcpAuthEntries};
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./logger-LESFN7Hj.js";import{i as t,n,r,t as i}from"./proxied-fetch-CoZ8jHud.js";import{r as a}from"./proxy-error-BVzVNPvv.js";import{a as o,c as s,d as c,f as l,g as u,l as d,m as f,n as p,o as m,p as h,s as g,t as ee,u as te}from"./stdio-tty-DNcYk275.js";import{r as ne}from"./global-prefix-DqCuANmV.js";import{r as re}from"./wasm-programs-CsoF9Lrt.js";import{t as ie}from"./wasm-compiler-Ct7QZURL.js";import{S as ae,w as oe,x as se}from"./sync-exec-dispatch-DvIKQEFv.js";import{t as ce}from"./sync-sab-wire-D_d0fd3b.js";import{t as le}from"./sync-sab-responder-CKgRMoHC.js";import{i as ue}from"./just-bash-compat-B-SPHuh_.js";const de=String.raw`printf '\033]7777;%s\007' "$?"`,fe=[`if [ -f ~/.bashrc ]; then . ~/.bashrc; fi`,`exec 98<&-`,``].join(`
|
|
2
|
-
`);var _=class extends Error{status;constructor(e,t){super(t),this.status=e}};const pe=/^[!#$%&'*+\-.^_`|~0-9A-Za-z]+$/,me={100:`Continue`,200:`OK`,400:`Bad Request`,403:`Forbidden`,408:`Request Timeout`,411:`Length Required`,413:`Content Too Large`,417:`Expectation Failed`,421:`Misdirected Request`,431:`Request Header Fields Too Large`,501:`Not Implemented`,502:`Bad Gateway`,503:`Service Unavailable`,505:`HTTP Version Not Supported`};var he=class{source;buf=new Uint8Array;eof=!1;constructor(e){this.source=e}get buffered(){return this.buf.length}async fill(e){if(this.eof)return!1;let t=await this.source.read(65536,e);if(t.length===0)return this.eof=!0,!1;let n=new Uint8Array(this.buf.length+t.length);return n.set(this.buf),n.set(t,this.buf.length),this.buf=n,!0}take(e){let t=this.buf.slice(0,e);return this.buf=this.buf.subarray(e),t}async some(e,t){if(this.buf.length>0)return this.take(Math.min(e,this.buf.length));if(this.eof)return new Uint8Array;let n=await this.source.read(e,t);return n.length===0&&(this.eof=!0),n}async head(e,t){let n=0;for(;;){let r=ge(this.buf,n);if(r>0){if(r>e)throw new _(431,`request head too large`);return this.take(r)}if(this.buf.length>e)throw new _(431,`request head too large`);if(n=Math.max(0,this.buf.length-3),!await this.fill(t)){if(this.buf.length===0)return null;throw new _(400,`connection closed inside a request head`)}}}async line(e,t){let n=0;for(;;){let r=this.buf.indexOf(10,n);if(r>=0){let e=this.take(r+1);return _e(e.subarray(0,e[r-1]===13?r-1:r))}if(this.buf.length>e)throw new _(400,`line too long`);if(n=this.buf.length,!await this.fill(t))throw new _(400,`connection closed inside a body`)}}async exactly(e,t){for(;this.buf.length<e;)if(!await this.fill(t))throw new _(400,`connection closed inside a body`);return this.take(e)}};function ge(e,t){for(let n=t;n<e.length;n++)if(e[n]===10){if(e[n+1]===10)return n+2;if(e[n+1]===13&&e[n+2]===10)return n+3}return 0}function _e(e){let t=``;for(let n=0;n<e.length;n+=32768)t+=String.fromCharCode(...e.subarray(n,n+32768));return t}function v(e){let t=new Uint8Array(e.length);for(let n=0;n<e.length;n++)t[n]=e.charCodeAt(n)&255;return t}function ve(e){let t=_e(e).split(/\r?\n/);for(;t.length>0&&t[0]===``;)t.shift();let n=/^([!#$%&'*+\-.^_`|~0-9A-Za-z]+) (\S+) HTTP\/(\d)\.(\d)$/.exec(t.shift()??``);if(!n)throw new _(400,`malformed request line`);if(n[3]!==`1`)throw new _(505,`HTTP/${n[3]}.${n[4]} is not supported`);return{method:n[1],target:n[2],minor:Number(n[4]),headers:ye(t)}}function ye(e){let t=[];for(let n of e){if(n===``)continue;if(n.startsWith(` `)||n.startsWith(` `))throw new _(400,`obsolete line folding`);let e=n.indexOf(`:`),r=e>0?n.slice(0,e):``;if(!pe.test(r))throw new _(400,`malformed header field`);t.push([r,n.slice(e+1).trim()])}return t}function y(e,t){let n=t.toLowerCase();return e.filter(([e])=>e.toLowerCase()===n).map(([,e])=>e)}function b(e,t){return y(e,t).flatMap(e=>e.split(`,`)).map(e=>e.trim().toLowerCase()).filter(e=>e!==``)}function be(e){let t=b(e,`transfer-encoding`),n=y(e,`content-length`);if(t.length>0){if(n.length>0)throw new _(400,`both Transfer-Encoding and Content-Length`);if(t.length!==1||t[0]!==`chunked`)throw new _(501,`unsupported Transfer-Encoding: ${t.join(`, `)}`);return{kind:`chunked`}}if(n.length===0)return{kind:`none`};let r=new Set(n.flatMap(e=>e.split(`,`)).map(e=>e.trim())),[i]=r;if(r.size!==1||!/^\d{1,15}$/.test(i))throw new _(400,`invalid Content-Length`);let a=Number(i);return a===0?{kind:`none`}:{kind:`length`,length:a}}const x=65536;async function xe(e,t,n,r){if(t.kind===`none`)return;if(t.kind===`length`){if(t.length>n)throw new _(413,`request body over ${n} bytes`);return e.exactly(t.length,r)}let i=[],a=0;for(;;){let t=await e.line(4096,r),o=/^([0-9A-Fa-f]{1,12})[ \t]*(;.*)?$/.exec(t);if(!o)throw new _(400,`malformed chunk size`);let s=Number.parseInt(o[1],16);if(s===0)break;if(a+=s,a>n)throw new _(413,`request body over ${n} bytes`);if(i.push(await e.exactly(s,r)),await e.line(2,r)!==``)throw new _(400,`malformed chunk`)}let o=0;for(let t=await e.line(x,r);t!==``;){if(o+=t.length,o>x)throw new _(431,`trailers too large`);t=await e.line(x,r)}return Se(i,a)}function Se(e,t=e.reduce((e,t)=>e+t.length,0)){let n=new Uint8Array(t),r=0;for(let t of e)n.set(t,r),r+=t.length;return n}function Ce(e){return!/[\r\n\0]/.test(e)}function we(e,t,n){let r=`HTTP/1.1 ${e} ${/^[\t\x20-\x7e\x80-\xff]*$/.test(t)?t:``}\r\n`;for(let[e,t]of n)pe.test(e)&&Ce(t)&&(r+=`${e}: ${t}\r\n`);return v(`${r}\r\n`)}function Te(e){let t=v(`${e.length.toString(16)}\r\n`),n=new Uint8Array(t.length+e.length+2);return n.set(t),n.set(e,t.length),n[n.length-2]=13,n[n.length-1]=10,n}const Ee=v(`0\r
|
|
3
|
-
\r
|
|
4
|
-
`),De=e(`realm-proxy`),Oe=3128,ke={maxConnections:64,maxHead:65536,idleMs:12e4,bodyBudget:134217728},Ae=new Set([`connection`,`keep-alive`,`proxy-connection`,`proxy-authenticate`,`proxy-authorization`,`te`,`trailer`,`transfer-encoding`,`upgrade`]),je=new Set([`host`,`content-length`,`expect`]);var Me=class{free;waiters=[];constructor(e){this.free=e}async acquire(e,t){for(;this.free<e;)t.throwIfAborted(),await new Promise(e=>{let n=()=>{t.removeEventListener(`abort`,n),e()};this.waiters.push(n),t.addEventListener(`abort`,n,{once:!0})});this.free-=e}release(e){this.free+=e;let t=this.waiters;this.waiters=[];for(let e of t)e()}};function Ne(e){let t=e.includes(`:`)&&!e.startsWith(`[`)?`[${e}]`:e;try{return new URL(`http://${t}/`).hostname}catch{return}}function Pe(e,t){return e===127||e===0||e===169&&t===254}function Fe(e){let[t,n,r]=e.split(`::`);if(r!==void 0)return;let i=e=>e?e.split(`:`).map(e=>Number.parseInt(e,16)):[],a=i(t),o=i(n),s=n===void 0?a:[...a,...Array(8-a.length-o.length).fill(0),...o];return s.length===8&&s.every(e=>e>=0&&e<=65535)?s:void 0}function Ie(e){let t=Fe(e);return!t||(t[0]&65472)==65152?!0:t.slice(0,5).every(e=>e===0)?t[5]===65535||t[5]===0&&t[6]!==0?Pe(t[6]>>8,t[6]&255):t[5]===0&&t[6]===0:!1}function Le(e){let t=Ne(e);if(t===void 0)return!1;let n=t.replace(/\.+$/,``);if(n===`localhost`||n.endsWith(`.localhost`))return!0;if(n.startsWith(`[`))return Ie(n.slice(1,-1));let r=/^(\d+)\.(\d+)\.\d+\.\d+$/.exec(n);return r?Pe(Number(r[1]),Number(r[2])):!1}function Re(e){return new Set([...Ae,...b(e,`connection`)])}function ze(e){let t=Re(e);return e.filter(([e])=>{let n=e.toLowerCase();return!t.has(n)&&!je.has(n)})}function Be(e,t){let n=Re(e);return t.encodedBodies||n.add(`content-encoding`),t.encodedBodies&&t.bodiless||n.add(`content-length`),e.filter(([e])=>!n.has(e.toLowerCase()))}function Ve(e){let t=b(e.headers,`connection`);return t.includes(`close`)?!1:e.minor>=1||t.includes(`keep-alive`)}function He(e,t){let n=new URL(t),r;try{r=new URL(e.target,e.target.startsWith(`/`)?n:void 0)}catch{throw new _(400,`malformed request target`)}let i=y(e.headers,`host`).every(e=>URL.canParse(`https://${e}`)&&new URL(`https://${e}`).host===n.host);if(r.origin!==n.origin||!i)throw new _(421,`this tunnel is for ${n.host}`);return r.href}function Ue(e){if(e.target.startsWith(`/`))throw new _(400,`this is a proxy: send the absolute URL (GET http://host/path)`);let t;try{t=new URL(e.target)}catch{throw new _(400,`malformed request target`)}if(t.protocol!==`http:`&&t.protocol!==`https:`)throw new _(400,`unsupported scheme ${t.protocol}`);if(Le(t.hostname))throw new _(403,`${t.hostname} is the realm's own loopback, which the proxy does not reach: list it in no_proxy`);return t.href}function We(e){let t=/^([A-Za-z0-9.-]+|\[[0-9A-Fa-f:.]+\]):(\d{1,5})$/.exec(e.target),n=Number(t?.[2]);if(!t||n<1||n>65535)throw new _(400,`CONNECT needs host:port`);let r=Ne(t[1]);if(r===void 0)throw new _(400,`CONNECT needs host:port`);if(Le(r))throw new _(403,`${r} is the realm's own loopback, which the proxy does not reach: list it in no_proxy`);return{host:r,port:n}}async function Ge(e,t,n){for(;!n.aborted&&!t.signal.aborted;){if(e.poll().hangup){t.abort(new m(`EPIPE`));return}try{await e.changed(n)}catch{return}}}function Ke(e,t){return new Promise((n,r)=>{let i=()=>{r(t.reason??new m(`EINTR`)),e.then(e=>e.cancel()).catch(()=>void 0)};if(t.aborted)return i();t.addEventListener(`abort`,i,{once:!0}),e.then(n,r).finally(()=>t.removeEventListener(`abort`,i))})}function qe(e,t){let n=v(`slicc realm proxy: ${t}\n`);return{status:e,statusText:me[e]??``,headers:[[`Content-Type`,`text/plain; charset=utf-8`]],body:(async function*(){yield n})(),cancel:async()=>void 0}}function Je(e,t,n){return{read:(r,i)=>e.read(r,AbortSignal.any([n,AbortSignal.timeout(t),...i?[i]:[]]))}}var Ye=class{options;listener;stop=new AbortController;limits;slots;bodies;connections=new Set;closed;port;constructor(e){this.options=e,this.limits={...ke,...e.limits},this.slots=new Me(this.limits.maxConnections),this.bodies=new Me(this.limits.bodyBudget),this.listener=e.net.listen({family:`inet`,host:e.host??`127.0.0.1`,port:e.port??3128}),this.port=this.listener.local?.family===`inet`?this.listener.local.port:0,this.closed=this.acceptLoop()}get stopped(){return this.stop.signal.aborted}close(){if(!this.stop.signal.aborted){this.stop.abort(),this.listener.close();for(let e of this.connections)e.close()}}async acceptLoop(){let e=new Set;try{for(;;){await this.slots.acquire(1,this.stop.signal);let t;try{t=await this.listener.accept(this.stop.signal)}catch{this.slots.release(1);break}let n=this.serve(t).finally(()=>{this.slots.release(1),e.delete(n)});e.add(n)}}catch{}await Promise.allSettled([...e])}async serve(e){this.connections.add(e);let t=new he(Je(e,this.limits.idleMs,this.stop.signal));try{await this.requests({sink:e,incoming:t,conn:e,socket:e})}finally{this.connections.delete(e),e.close()}}async requests(e){try{for(;;){let t=await e.incoming.head(this.limits.maxHead);if(!t||!await this.exchange(e,t))break}}catch(t){t instanceof _&&await this.refuse(e.sink,t)}}async refuse(e,t){try{await this.relay(e,`GET`,1,qe(t.status,t.message),!1)}catch{}}async exchange(e,t){let{sink:n,incoming:r}=e,i=ve(t);if(i.method===`CONNECT`){if(!e.conn)throw new _(400,`CONNECT inside a tunnel`);return await this.connect(e.conn,r,i),!1}let a=e.origin?He(i,e.origin):Ue(i),o=Ve(i),s=be(i.headers),c=s.kind===`length`?s.length:s.kind===`chunked`?this.cap():0;if(c>this.cap())throw new _(413,`request body over ${this.cap()} bytes`);await this.expectContinue(n,i,s.kind!==`none`),await this.bodies.acquire(c,this.stop.signal);let l,u=new AbortController,d=()=>u.abort();this.stop.signal.addEventListener(`abort`,d,{once:!0});try{try{let t=await xe(r,s,this.cap()),n=new AbortController;Ge(e.socket,u,n.signal);try{l=await this.upstream(i,a,t,u.signal)}finally{n.abort()}}finally{this.bodies.release(c)}return await this.relay(n,i.method,i.minor,l,o)}finally{this.stop.signal.removeEventListener(`abort`,d),u.abort()}}cap(){return Math.min(this.options.transport.traits.maxRequestBody,this.limits.bodyBudget)}async expectContinue(e,t,n){let r=b(t.headers,`expect`);if(r.length!==0){if(r.length!==1||r[0]!==`100-continue`)throw new _(417,`unsupported expectation: ${r.join(`, `)}`);n&&t.minor>=1&&await e.write(v(`HTTP/1.1 100 Continue\r
|
|
5
|
-
\r
|
|
6
|
-
`),this.stop.signal)}}async upstream(e,t,n,r){try{return await Ke(this.options.transport.fetch({url:t,method:e.method.toUpperCase(),headers:ze(e.headers),body:e.method===`GET`||e.method===`HEAD`?void 0:n,signal:r}),r)}catch(e){if(r.aborted)throw e;let t=e instanceof Error?e.message:String(e),n=e?.status;return qe(typeof n==`number`&&n>=400&&n<=599?n:502,t||`upstream request failed`)}}async relay(e,t,n,r,i){let a=r.status,o=t===`HEAD`||a===204||a===304||a<200,s=Be(r.headers,{encodedBodies:this.options.transport.traits.encodedBodies,bodiless:o}),c=!o&&n>=1,l=i&&(o||c);s.push([`Connection`,l?`keep-alive`:`close`]),c&&s.push([`Transfer-Encoding`,`chunked`]);let u=this.stop.signal;if(await e.write(we(a,r.statusText||me[a]||``,s),u),o)return await r.cancel(),l;try{for await(let t of r.body)t.length>0&&await e.write(c?Te(t):t,u)}catch{return await r.cancel().catch(()=>void 0),!1}return c&&await e.write(Ee,u),l}async connect(e,t,n){let r=We(n),i=this.options.tunnel;if(!i)throw new _(501,`CONNECT ${r.host}:${r.port}: no tunnels through this proxy`);await e.write(v(`HTTP/1.1 200 Connection Established\r
|
|
7
|
-
\r
|
|
8
|
-
`),this.stop.signal);try{await i(e,t,r,this.stop.signal,(t,n,r)=>this.requests({sink:n,incoming:new he(t),origin:r,socket:e}))}catch(e){e instanceof m||De.warn(`tunnel failed`,{host:r.host,error:String(e)})}}};function Xe(){return{buffered:n(),streaming:r()}}function Ze(e){let t={};for(let[n,r]of e){let e=n.toLowerCase(),i=t[e];t[e]=i===void 0?r:`${i}${e===`cookie`?`; `:`, `}${r}`}return t}function Qe(e){return e.startsWith(`x-proxy-`)||e.startsWith(`access-control-`)}function $e(e){let t=[];for(let[n,r]of Object.entries(e)){let e=n.toLowerCase();if(!Qe(e)){if(e===`set-cookie`)for(let e of et(r))t.push([n,e]);else t.push([n,r])}}return t}function et(e){if(e.startsWith(`[`))try{let t=JSON.parse(e);if(Array.isArray(t)&&t.every(e=>typeof e==`string`))return t}catch{}return[e]}async function*tt(e){e.byteLength>0&&(yield e)}function nt(e){if(typeof e!=`string`)return e;let t=new Uint8Array(e.length);for(let n=0;n<e.length;n++)t[n]=e.charCodeAt(n)&255;return t}function rt(e=Xe()){return{traits:{manualRedirects:!1,encodedBodies:!1,maxRequestBody:i},async fetch(t){let n=Ze(t.headers);if(t.body&&t.body.byteLength>0){let r=await e.buffered(t.url,{method:t.method,headers:n,body:t.body,signal:t.signal});return{status:r.status,statusText:r.statusText,headers:$e(r.headers),body:tt(nt(r.body)),cancel:async()=>void 0}}let r=await e.streaming(t.url,{method:t.method,headers:n,signal:t.signal});return{status:r.status,statusText:r.statusText,headers:$e(r.headers),body:r.body,cancel:()=>r.cancel()}}}}function it(e){if(!e)return{body:(async function*(){})(),cancel:async()=>void 0};let t=e.getReader(),n=!1;async function*r(){try{for(;;){let e=await t.read();if(e.done)break;yield e.value}n=!0}finally{n||await t.cancel().catch(()=>void 0)}}return{body:r(),cancel:async()=>{n||await t.cancel().catch(()=>void 0),n=!0}}}function at(e,t){return{traits:{manualRedirects:!0,encodedBodies:!0,maxRequestBody:t.maxRequestBodyBytes},async fetch(t){let n=await e(t.url,{method:t.method,headers:t.headers.map(([e,t])=>[e,t]),...t.body&&t.body.byteLength>0?{body:t.body}:{},signal:t.signal});return{status:n.status,statusText:n.statusText,headers:n.headers,...it(n.body)}}}}function ot(e={}){let n,i=()=>(n??=(e.fallback??(()=>rt()))(),n),o,s=Promise.resolve().then(()=>(e.capabilities??t)()).then(t=>t.supported?at((e.raw??(()=>r({mode:`raw`})))(),t):i(),()=>i()).then(e=>(o??=e,o));return{get traits(){return(o??i()).traits},async fetch(e){let t=o??await s;if(t===n)return t.fetch(e);try{return await t.fetch(e)}catch(t){if(!(t instanceof a)||t.code!==`unsupported`)throw t;return o=i(),o.fetch(e)}}}}function S(e){let t=new Uint8Array(e.reduce((e,t)=>e+t.length,0)),n=0;for(let r of e)t.set(r,n),n+=r.length;return t}function st(e){if(e<128)return Uint8Array.of(e);let t=[];for(let n=e;n>0;n=Math.floor(n/256))t.unshift(n&255);return Uint8Array.of(128|t.length,...t)}function C(e,...t){let n=S(t);return S([Uint8Array.of(e),st(n.length),n])}const w=(...e)=>C(48,...e),ct=(...e)=>C(49,...e),T=e=>C(4,e),E=(e,t=0)=>C(3,Uint8Array.of(t),e),lt=C(1,Uint8Array.of(255));function D(e){let t=0;for(;t<e.length-1&&e[t]===0;)t++;let n=e.subarray(t);return C(2,n[0]&128?S([Uint8Array.of(0),n]):n)}function O(e){let[t,n,...r]=e.split(`.`).map(Number),i=[40*t+n];for(let e of r){let t=[];for(let n=e;t.unshift(n&127),!(n<128);n=Math.floor(n/128));i.push(...t.map((e,n)=>n<t.length-1?e|128:e))}return C(6,Uint8Array.from(i))}const ut=e=>C(12,new TextEncoder().encode(e)),k=e=>Uint8Array.from(e,e=>e.charCodeAt(0)&127);function dt(e){let t=e.toISOString().replace(/[-:T]/g,``).slice(0,14);return e.getUTCFullYear()<2050?C(23,k(`${t.slice(2)}Z`)):C(24,k(`${t}Z`))}const ft=w(O(`1.2.840.10045.4.3.2`));function pt(e){let t=[];return e.organization&&t.push(ct(w(O(`2.5.4.10`),ut(e.organization)))),t.push(ct(w(O(`2.5.4.3`),ut(e.commonName)))),w(...t)}function A(e,t,n){return t?w(O(e),lt,T(n)):w(O(e),T(n))}function mt(e){let t=[],[,n,r]=j(e,0);for(let i=n;i<r;){let[,,n]=j(e,i);t.push(e.subarray(i,n)),i=n}return t}function j(e,t){let n=e[t],r=e[t+1],i=t+2;if(r&128){let t=r&127;r=0;for(let n=0;n<t;n++)r=r*256+e[i+n];i+=t}if(i+r>e.length)throw Error(`truncated DER`);return[n,i,i+r]}function ht(e){let[,t,n]=j(e,0);return e.subarray(t,n)}function gt(e){let t=mt(e)[1];return ht(t).subarray(1)}async function _t(e){return new Uint8Array(await crypto.subtle.digest(`SHA-1`,gt(e)))}function vt(e){let t=e.length/2;return w(D(e.subarray(0,t)),D(e.subarray(t)))}function yt(){let e=crypto.getRandomValues(new Uint8Array(16));return e[0]=e[0]&127|1,e}function bt(e){let t=/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/.exec(e);if(!t)return;let n=t.slice(1).map(Number);return n.every(e=>e<=255)?Uint8Array.from(n):void 0}function M(e){if(!e.includes(`:`)||!/^[0-9A-Fa-f:.]+$/.test(e))return;let t=/(\d{1,3}(?:\.\d{1,3}){3})$/.exec(e),n=e,r=[];if(t){let i=bt(t[1]);if(!i)return;r.push(i[0]<<8|i[1],i[2]<<8|i[3]),n=e.slice(0,-t[1].length).replace(/:$/,e.endsWith(`::${t[1]}`)?`:`:``)}let i=n.split(`::`);if(i.length>2)return;let a=e=>e===``?[]:e.split(`:`),o=a(i[0]),s=i.length===2?a(i[1]):[];if(![...o,...s].every(e=>/^[0-9A-Fa-f]{1,4}$/.test(e)))return;let c=8-[...o,...s].map(e=>Number.parseInt(e,16)).length-r.length;if(i.length===2?c<1:c!==0)return;let l=[...o.map(e=>Number.parseInt(e,16)),...Array(i.length===2?c:0).fill(0),...s.map(e=>Number.parseInt(e,16)),...r];return Uint8Array.from(l.flatMap(e=>[e>>8,e&255]))}async function xt(e){let t=[A(`2.5.29.14`,!1,T(await _t(e.spki)))];if(e.kind.ca)t.push(A(`2.5.29.19`,!0,w(lt,D(Uint8Array.of(0))))),t.push(A(`2.5.29.15`,!0,E(Uint8Array.of(134),1)));else{t.push(A(`2.5.29.35`,!1,w(C(128,await _t(e.issuerSpki))))),t.push(A(`2.5.29.19`,!0,w())),t.push(A(`2.5.29.15`,!0,E(Uint8Array.of(128),7))),t.push(A(`2.5.29.37`,!1,w(O(`1.3.6.1.5.5.7.3.1`))));let n=bt(e.kind.host)??M(e.kind.host),r=n?C(135,n):C(130,k(e.kind.host));t.push(A(`2.5.29.17`,!1,w(r)))}return C(163,w(...t))}async function N(e){let t=w(C(160,D(Uint8Array.of(2))),D(e.serial),ft,pt(e.issuer),w(dt(e.notBefore),dt(e.notAfter)),pt(e.subject),e.spki,await xt(e)),n=vt(await e.sign(t));return w(t,ft,E(n))}function St(e){let t=``;for(let n=0;n<e.length;n+=32768)t+=String.fromCharCode(...e.subarray(n,n+32768));return`-----BEGIN CERTIFICATE-----\n${(btoa(t).match(/.{1,64}/g)??[]).join(`
|
|
9
|
-
`)}\n-----END CERTIFICATE-----\n`}const Ct={name:`ECDSA`,namedCurve:`P-256`},wt={name:`ECDSA`,hash:`SHA-256`};function Tt(e){return new Promise((t,n)=>{e.onsuccess=()=>t(e.result),e.onerror=()=>n(e.error)})}function Et(e=`slicc-realm-ca`){let t,n=()=>(t??=new Promise((t,n)=>{let r=indexedDB.open(e,1);r.onupgradeneeded=()=>r.result.createObjectStore(`ca`),r.onsuccess=()=>t(r.result),r.onerror=()=>n(r.error)}),t.catch(()=>{t=void 0}),t);return{async get(e){return await Tt((await n()).transaction(`ca`).objectStore(`ca`).get(e))},async put(e,t){let r=(await n()).transaction(`ca`,`readwrite`);r.objectStore(`ca`).put(t,e),await new Promise((e,t)=>{r.oncomplete=()=>e(),r.onerror=()=>t(r.error)})}}}var Dt=class extends Error{};function Ot(e){return M(e)?!0:e.length===0||e.length>253?!1:e.split(`.`).every(e=>/^(?!-)[a-z0-9-]{1,63}(?<!-)$/i.test(e))}var kt=class e{record;constructor(e){this.record=e}static async open(t,n,r=Date.now()){let i=await n.get(t).catch(()=>void 0);if(i&&i.notAfter-r>2592e6)return new e(i);let a=await e.create(t,r);return await n.put(t,a),new e(a)}static async create(e,t){let n=await crypto.subtle.generateKey(Ct,!1,[`sign`,`verify`]),r=new Uint8Array(await crypto.subtle.exportKey(`spki`,n.publicKey)),i={organization:`SLICC`,commonName:`SLICC realm CA ${e} ${Array.from(crypto.getRandomValues(new Uint8Array(4)),e=>e.toString(16).padStart(2,`0`)).join(``)}`},a=t+31536e7,o=await N({serial:yt(),issuer:i,subject:i,notBefore:new Date(t-864e5),notAfter:new Date(a),spki:r,issuerSpki:r,kind:{ca:!0},sign:P(n.privateKey)});return{key:n.privateKey,cert:o,spki:r,notAfter:a,name:i}}get cert(){return this.record.cert}get pem(){return St(this.record.cert)}async issue(e,t,n=Date.now()){let r=e.toLowerCase();if(!Ot(r))throw new Dt(`no certificate for ${e}`);return N({serial:yt(),issuer:this.record.name,subject:{commonName:r.length<=64?r:`SLICC realm leaf`},notBefore:new Date(n-36e5),notAfter:new Date(n+6048e5),spki:t,issuerSpki:this.record.spki,kind:{ca:!1,host:r},sign:P(this.record.key)})}};function P(e){return async t=>new Uint8Array(await crypto.subtle.sign(wt,e,t))}let At;const F=new Map;function jt(e,t){let n=F.get(e);return n||(At??=t?void 0:Et(),n=kt.open(e,t??At),F.set(e,n),n.catch(()=>{F.get(e)===n&&F.delete(e)})),n}const Mt=65536;var Nt=class extends Error{code;constructor(e,t){super(t),this.code=e}},Pt=class{m;scratch;constructor(e){if(this.m=e,this.scratch=e._malloc(Mt),!this.scratch)throw Error(`tls engine: out of memory`)}put(e){let t=this.m._malloc(e.length+1);if(!t)throw Error(`tls engine: out of memory`);return this.m.HEAPU8.set(e,t),this.m.HEAPU8[t+e.length]=0,t}taken(e){return this.m.HEAPU8.slice(this.scratch,this.scratch+e)}error(e,t){this.m._tls_strerror(e,this.scratch,256);let n=this.m.HEAPU8.indexOf(0,this.scratch);return new Nt(e,`${t}: ${new TextDecoder().decode(this.m.HEAPU8.subarray(this.scratch,n))||e}`)}leaf(){let e=this.m._tls_leaf_new();if(!e)throw this.error(this.m._tls_last_error(),`leaf key`);return new Ft(this,this.m,e)}session(e,t){let n=this.put(new TextEncoder().encode(t));try{let t=this.m._tls_session_new(e.ptr,n);if(!t)throw this.error(this.m._tls_last_error(),`tls session`);return new It(this,this.m,t)}finally{this.m._free(n)}}withBytes(e,t){let n=this.put(e);try{return t(n)}finally{this.m._free(n)}}intoScratch(e){let t=e(this.scratch,Mt);return t>0?this.taken(t):t}},Ft=class{engine;m;ptr;constructor(e,t,n){this.engine=e,this.m=t,this.ptr=n}spki(){let e=this.engine.intoScratch((e,t)=>this.m._tls_leaf_spki(this.ptr,e,t));if(typeof e==`number`)throw this.engine.error(e,`leaf public key`);return e}addCert(e){let t=this.engine.withBytes(e,t=>this.m._tls_leaf_add_cert(this.ptr,t,e.length));if(t!==0)throw this.engine.error(t,`leaf certificate`)}release(){this.m._tls_leaf_free(this.ptr)}},It=class{engine;m;ptr;constructor(e,t,n){this.engine=e,this.m=t,this.ptr=n}feed(e){return this.engine.withBytes(e,t=>this.m._tls_feed(this.ptr,t,e.length))}feedEnd(){this.m._tls_feed_eof(this.ptr)}read(){let e=this.engine.intoScratch((e,t)=>this.m._tls_read(this.ptr,e,t));if(e instanceof Uint8Array)return e;if(e===0)return`more`;if(e===-1)return`eof`;throw this.engine.error(e,`tls`)}write(e){let t=this.engine.withBytes(e,t=>this.m._tls_write(this.ptr,t,e.length));if(t<0)throw this.engine.error(t,`tls`);return t}take(){if(this.m._tls_out_size(this.ptr)===0)return new Uint8Array;let e=this.engine.intoScratch((e,t)=>this.m._tls_out_take(this.ptr,e,t));return e instanceof Uint8Array?e:new Uint8Array}close(){this.m._tls_close(this.ptr)}get version(){return this.m._tls_version(this.ptr)}get handshakeDone(){return this.m._tls_handshake_done(this.ptr)!==0}free(){this.m._tls_session_free(this.ptr)}};let I;function Lt(e=async()=>(await import(`./slicc-tls-engine-DfyKw1Ua.js`)).default()){return I??=e().then(e=>new Pt(e)),I.catch(()=>{I=void 0}),I}const Rt=e(`realm-tls`);var zt=class{session;cipherIn;cipherOut;pending=new Uint8Array;ended=!1;constructor(e,t,n){this.session=e,this.cipherIn=t,this.cipherOut=n}async flush(e){for(let t=this.session.take();t.length>0;t=this.session.take())await this.cipherOut.write(t,e)}feedPending(){if(this.pending.length===0)return;let e=this.session.feed(this.pending);this.pending=this.pending.subarray(e)}async read(e,t){for(;;){this.feedPending();let e=this.session.read();if(await this.flush(t),e instanceof Uint8Array)return e;if(e===`eof`)return new Uint8Array;if(this.pending.length>0)continue;if(this.ended){this.session.feedEnd();let e=this.session.read();return await this.flush(t),e instanceof Uint8Array?e:new Uint8Array}let n=await this.cipherIn.read(65536,t);n.length===0?this.ended=!0:this.pending=n}}async write(e,t){for(let n=0;n<e.length;){let r=this.session.write(e.subarray(n,n+16384));await this.flush(t),n+=r}return e.length}async close(e){this.session.close(),await this.flush(e)}},Bt=class{options;leaves=new Map;now;constructor(e){this.options=e,this.now=e.now??Date.now}leafFor(e,t){let n=this.now(),r=this.leaves.get(t);if(r&&r.expires>n)return this.leaves.delete(t),this.leaves.set(t,r),r.leaf;r&&this.drop(t,r);let i=this.issue(e,t,n),a={leaf:i,expires:n+5184e5};this.leaves.set(t,a),i.catch(()=>{this.leaves.get(t)===a&&this.leaves.delete(t)});for(let[e,t]of this.leaves){if(this.leaves.size<=256)break;this.drop(e,t)}return i}async drop(e,t){this.leaves.get(e)===t&&this.leaves.delete(e),(await t.leaf.catch(()=>void 0))?.release()}async issue(e,t,n){let r=await this.options.ca(),i=e.leaf();try{return i.addCert(await r.issue(t,i.spki(),n)),i.addCert(r.cert),i}catch(e){throw i.release(),e}}async close(){await Promise.all([...this.leaves].map(([e,t])=>this.drop(e,t)))}handler=async(e,t,n,r,i)=>{let a=await this.options.engine(),o=n.host.replace(/^\[|\]$/g,``),s=await this.leafFor(a,o),c=a.session(s,o);try{let a=new zt(c,Ht(t),e),s=`https://${Vt(n)}`;try{await i(a,a,s),await a.close(r).catch(()=>void 0)}catch(e){throw Rt.debug(`tunnel ended`,{host:o,error:String(e)}),e}}finally{c.free()}}};function Vt(e){return e.port===443?e.host:`${e.host}:${e.port}`}function Ht(e){return{read:(t,n)=>e.some(t,n)}}const L=`http://127.0.0.1:${Oe}`,Ut=`localhost,.localhost,127.0.0.1,127.0.0.0/8`;function Wt(){return{http_proxy:L,https_proxy:L,HTTP_PROXY:L,HTTPS_PROXY:L,no_proxy:Ut,NO_PROXY:Ut}}function Gt(e){if(e)return`ca`in e?new Bt(e):new Bt({ca:()=>jt(e.owner),engine:()=>Lt()})}const Kt=new WeakMap,qt=`/.config/slicc/realm-ca-`;function Jt(e){return e.replace(/[^A-Za-z0-9_-]+/g,`-`).replace(/-+$/,``)}function Yt(e,t){return`${e.replace(/\/+$/,``)}${qt}${Jt(t)}.pem`}function Xt(e){return{SSL_CERT_FILE:e,CURL_CA_BUNDLE:e,GIT_SSL_CAINFO:e}}const Zt=`/.config/slicc/gitconfig`;function Qt(e){return`${e.replace(/\/+$/,``)}${Zt}`}function R(e){return`"${e.replace(/[\r\n]+/g,` `).replace(/[\\"]/g,e=>`\\${e}`)}"`}function $t(e){let t=[`[credential]`,` helper = slicc`];return e&&t.push(`[user]`,`\tname = ${R(e.name)}`,`\temail = ${R(e.email)}`),`${t.join(`
|
|
10
|
-
`)}\n`}async function en(e,t,n){try{let r=$t(n);return(await e.exists(t)?await e.readFile(t):void 0)!==r&&(await e.mkdir(t.slice(0,t.lastIndexOf(`/`)),{recursive:!0}),await e.writeFile(t,r)),{GIT_CONFIG_SYSTEM:t}}catch{return{}}}function tn(e,t){let n=Wt();return e in n?n[e]===t:e===`GIT_CONFIG_SYSTEM`?t.endsWith(Zt):e in Xt(``)&&t.includes(qt)}async function nn(e,t,n,r=jt){try{let{pem:i}=await r(n);return(await e.exists(t)?await e.readFile(t):void 0)!==i&&(await e.mkdir(t.slice(0,t.lastIndexOf(`/`)),{recursive:!0}),await e.writeFile(t,i)),Xt(t)}catch{return{}}}function rn(e,t={}){if(Kt.has(e))return;let n={proxy:void 0};Kt.set(e,n);let r;e.activate({family:`inet`,host:`127.0.0.1`,port:Oe},()=>{r??=(t.transport??ot)();let i=Gt(t.tls),a=new Ye({net:e,transport:r,tunnel:i?.handler,...t.proxy});n.proxy=a,an(a,t.process).then(async()=>{n.proxy===a&&(n.proxy=void 0),await i?.close()})})}async function an(e,t){if(!t){await e.closed;return}let n=t.processManager,r=n.spawn({kind:`net`,argv:[`http-proxy`,`127.0.0.1:${e.port}`],cwd:`/`,owner:t.owner}),i=()=>e.close();r.abort.signal.addEventListener(`abort`,i,{once:!0}),await e.closed,r.abort.signal.removeEventListener(`abort`,i),n.exit(r.pid,r.abort.signal.aborted?null:0)}const on=32768;function sn(e){return/^127\.\d{1,3}\.\d{1,3}\.\d{1,3}$/.test(e)}async function z(e){try{return await e()}catch(e){throw e instanceof u?new m(e.code):e}}var cn=class{waiters=[];wait(e){return e?.aborted?Promise.reject(new m(`EINTR`)):new Promise((t,n)=>{let r=()=>{this.waiters=this.waiters.filter(e=>e!==i),n(new m(`EINTR`))},i=()=>{e?.removeEventListener(`abort`,r),t()};this.waiters.push(i),e?.addEventListener(`abort`,r,{once:!0})})}wake(){let e=this.waiters;this.waiters=[];for(let t of e)t()}};function ln(e,t){let n=new f,r=new f;for(let e of[n,r])e.openRead(),e.openWrite();e.attach({rx:r,tx:n}),t.attach({rx:n,tx:r})}var B=class e{net;domain;state=`open`;local;peer;link;readShut=!1;writeShut=!1;queue=[];backlog=0;bound=!1;changes=new cn;options=new Map;constructor(e,t){this.net=e,this.domain=t}attach(e){this.link=e,this.state=`connected`,this.changes.wake()}get listening(){return this.state===`listening`}connection(){if(!this.link||this.state!==`connected`)throw new m(`ENOTCONN`);return this.link}async read(e,t){let{rx:n}=this.connection();return this.readShut||e<=0?new Uint8Array:z(()=>n.read(e,t))}async peek(e,t){let{rx:n}=this.connection();return this.readShut||e<=0?new Uint8Array:z(()=>n.peek(e,t))}async write(e,t){let{tx:n}=this.connection();if(this.writeShut)throw new m(`EPIPE`);return z(()=>n.write(e,t))}poll(){if(this.state===`listening`)return{readable:this.queue.length>0,writable:!1,hangup:!1};if(this.state!==`connected`||!this.link)return{readable:!1,writable:!1,hangup:!0};let{rx:e,tx:t}=this.link;return{readable:this.readShut||e.readReady,writable:this.writeShut||t.writeReady,hangup:e.writersGone&&t.readersGone}}changed(e){let t=this.changes.wait(e);if(this.state!==`connected`||!this.link)return t;let n=[t,this.link.rx.changed(e),this.link.tx.changed(e)];for(let e of n)e.catch(()=>void 0);return z(()=>Promise.race(n))}bind(e){if(this.state!==`open`||this.local)throw new m(`EINVAL`);if(e.family!==this.domain)throw new m(`EAFNOSUPPORT`);this.local=this.net.bind(this,e),this.bound=!0}listen(e){if(this.state===`connected`)throw new m(`EISCONN`);if(this.state!==`open`&&this.state!==`listening`)throw new m(`EINVAL`);if(!this.local){if(this.domain===`unix`)throw new m(`EINVAL`);this.bind({family:`inet`,host:`0.0.0.0`,port:0})}this.backlog=Math.min(Math.max(e,1),4096),this.state=`listening`}async accept(e,t=!1){for(;;){if(this.state!==`listening`)throw new m(`EINVAL`);let n=this.queue.shift();if(n)return n;if(t)throw new m(`EAGAIN`);await this.changes.wait(e)}}offer(e){return this.state!==`listening`||this.queue.length>=this.backlog?!1:(this.queue.push(e),this.changes.wake(),!0)}connect(t){if(this.state===`connected`)throw new m(`EISCONN`);if(this.state!==`open`)throw new m(`EINVAL`);if(t.family!==this.domain)throw new m(`EAFNOSUPPORT`);let n=this.net.target(t);this.local||(t.family===`inet`?(this.local=this.net.bind(this,{family:`inet`,host:`127.0.0.1`,port:0}),this.bound=!0):this.local={family:`unix`,path:``});let r=new e(this.net,this.domain);if(r.local=t.family===`inet`?{...t,host:un(t.host)}:t,r.peer=this.local,this.peer=r.local,ln(this,r),!n.offer(r))throw this.unlink(),r.close(),new m(`ECONNREFUSED`)}unlink(){let e=this.link;e&&(e.rx.closeRead(),e.tx.closeWrite()),this.link=void 0,this.peer=void 0,this.state=`open`}shutdown(e){let{rx:t,tx:n}=this.connection();if(e!==0&&e!==1&&e!==2)throw new m(`EINVAL`);e!==1&&!this.readShut&&(this.readShut=!0,t.closeRead()),e!==0&&!this.writeShut&&(this.writeShut=!0,n.closeWrite()),this.changes.wake()}getOption(e,t){if(e===1)switch(t){case 3:return 1;case 4:return 0;case 30:return+(this.state===`listening`);case 39:return this.domain===`inet`?2:1;case 7:case 8:return this.options.get(`${e}:${t}`)??65536}return this.options.get(`${e}:${t}`)??0}setOption(e,t,n){this.options.set(`${e}:${t}`,n)}close(){let e=this.state;if(this.state=`closed`,e===`listening`)for(let e of this.queue.splice(0))e.close();this.link&&(this.readShut||this.link.rx.closeRead(),this.writeShut||this.link.tx.closeWrite(),this.readShut=!0,this.writeShut=!0),this.bound&&this.local&&this.net.release(this.local,this),this.bound=!1,this.changes.wake()}static pair(t,n){let r=new e(t,n),i=new e(t,n);return r.local=i.local=r.peer=i.peer=n===`inet`?{family:`inet`,host:`127.0.0.1`,port:0}:{family:`unix`,path:``},ln(r,i),[r,i]}};function un(e){return e===`0.0.0.0`?`127.0.0.1`:e}function V(e){return e.family===`inet`?`inet:${e.port}`:`unix:${e.path}`}var dn=class{bound=new Map;activators=new Map;nextEphemeral=on;activate(e,t){this.activators.set(V(e),t)}socket(e){return new B(this,e)}listen(e,t=128){let n=this.socket(e.family);return n.bind(e),n.listen(t),n}connect(e){let t=this.socket(e.family);return t.connect(e),t}bind(e,t){if(t.family===`unix`){if(t.path===``)throw new m(`EINVAL`)}else if(t.host!==`0.0.0.0`&&!sn(t.host))throw new m(`EADDRNOTAVAIL`);let n=t.family===`inet`&&t.port===0?{...t,port:this.ephemeral()}:t,r=V(n);if(this.bound.has(r))throw new m(`EADDRINUSE`);return this.bound.set(r,e),n}release(e,t){let n=V(e);this.bound.get(n)===t&&this.bound.delete(n)}target(e){if(e.family===`inet`&&!sn(un(e.host)))throw new m(`ENETUNREACH`);let t=V(e);this.bound.has(t)||this.activators.get(t)?.();let n=this.bound.get(t);if(!n?.listening)throw new m(`ECONNREFUSED`);return n}ephemeral(){for(let e=0;e<28232;e++){let e=this.nextEphemeral;if(this.nextEphemeral=e===60999?on:e+1,!this.bound.has(`inet:${e}`))return e}throw new m(`EADDRINUSE`)}};const fn=new Map;function pn(e){let t=fn.get(e);return t||(t=new dn,fn.set(e,t)),t}function H(e){return e?`${e.kind}:${e.scoopJid??``}`:`local`}const U={HUP:1,INT:2,QUIT:3,ILL:4,TRAP:5,ABRT:6,BUS:7,FPE:8,KILL:9,USR1:10,SEGV:11,USR2:12,PIPE:13,ALRM:14,TERM:15,STKFLT:16,CHLD:17,CONT:18,STOP:19,TSTP:20,TTIN:21,TTOU:22,URG:23,XCPU:24,XFSZ:25,VTALRM:26,PROF:27,WINCH:28,POLL:29,PWR:30,SYS:31},mn=new Set([U.CHLD,U.URG,U.WINCH]),hn=new Set([U.STOP,U.TSTP,U.TTIN,U.TTOU]);function gn(e){return e===U.CONT?`continue`:hn.has(e)?`stop`:mn.has(e)?`ignore`:`terminate`}function _n(e){return Number.isInteger(e)&&e>=1&&e<=31}function W(e){return 1<<e}const G={SIGINT:U.INT,SIGTERM:U.TERM,SIGKILL:U.KILL,SIGSTOP:U.STOP,SIGCONT:U.CONT},vn=16384;function yn(){let e=Array(32).fill(0);return Object.assign(e,{0:3,1:28,2:127,3:21}),Object.assign(e,{4:4,6:1,8:17,9:19,10:26}),Object.assign(e,{12:18,13:15,14:23,15:22}),{c_iflag:25856,c_oflag:5,c_cflag:191,c_lflag:35387,c_cc:e}}const bn=new TextEncoder;function xn(e){return(e&192)==128}var Sn=class{screen;signal;termios=yn();cols=80;rows=24;readable=[];line=[];waiters=[];constructor(e,t){this.screen=e,this.signal=t}receive(e){for(let t of e)this.key(t);this.wake()}resize(e,t){this.setSize(e,t),this.signal(U.WINCH)}setSize(e,t){this.cols=e,this.rows=t}tcgets(){return{...this.termios,c_cc:[...this.termios.c_cc]}}tcsets(e){let t=this.canonical;this.termios={...e,c_cc:[...e.c_cc]},t&&!this.canonical&&this.line.length>0&&(this.readable.push(Uint8Array.from(this.line)),this.line=[],this.wake())}winsize(){return[this.rows,this.cols]}file(){return new g({read:(e,t)=>this.read(e,t),write:async e=>(this.output(e),e.length),poll:()=>({readable:this.readable.length>0,writable:!0,hangup:!1}),changed:e=>this.changed(e),close:()=>{},tty:this})}get canonical(){return!!(this.termios.c_lflag&2)}cc(e){return this.termios.c_cc[e]??0}key(e){let{c_iflag:t,c_lflag:n}=this.termios,r=e===13&&t&256?10:e;if(!(n&1&&this.signalKey(r))){if(!this.canonical){this.readable.push(Uint8Array.of(r)),n&8&&this.echo(r);return}this.edit(r)}}signalKey(e){let t=e===this.cc(0)?U.INT:e===this.cc(1)?U.QUIT:e===this.cc(10)?U.TSTP:0;return!t||e===0?!1:(this.termios.c_lflag&8&&this.echo(e),this.termios.c_lflag&128||(this.line=[],this.readable=[]),this.signal(t),!0)}edit(e){let t=!!(this.termios.c_lflag&8);e===this.cc(2)||e===8?this.rubOut(this.lastCharLength()):e===this.cc(3)?this.rubOut(this.line.length):e===this.cc(14)?this.rubOut(this.lastWordLength()):e===this.cc(4)?(this.readable.push(this.line.length>0?Uint8Array.from(this.line):null),this.line=[]):e===10?(this.line.push(e),t&&this.output(bn.encode(`
|
|
11
|
-
`)),this.readable.push(Uint8Array.from(this.line)),this.line=[]):(this.line.push(e),t&&this.echo(e))}lastWordLength(){let e=this.line.length;for(;e>0&&this.line[e-1]===32;)e--;for(;e>0&&this.line[e-1]!==32;)e--;return this.line.length-e}lastCharLength(){let{line:e}=this,t=Math.min(1,e.length);if(this.termios.c_iflag&vn)for(;t<e.length&&xn(e[e.length-t]??0);)t++;return t}rubOut(e){let t=this.line.splice(this.line.length-e,e),n=this.termios.c_iflag&vn?t.filter(e=>!xn(e)).length:t.length;n>0&&this.termios.c_lflag&8&&this.output(bn.encode(`\b \b`.repeat(n)),!1)}echo(e){if(e<32&&e!==10&&e!==9&&this.termios.c_lflag&512){this.output(Uint8Array.of(94,e+64),!1);return}this.output(Uint8Array.of(e))}output(e,t=!0){let{c_oflag:n}=this.termios;if(!t||!(n&1&&n&4)||!e.includes(10)){this.screen.write(e);return}let r=[];for(let t of e)t===10&&r.push(13),r.push(t);this.screen.write(Uint8Array.from(r))}async read(e,t){for(;this.readable.length===0;)await this.changed(t);let n=this.readable[0];if(n===null)return this.readable.shift(),new Uint8Array;if(n===void 0)return new Uint8Array;let r=[],i=0;for(;this.readable.length>0&&i<e;){let t=this.readable[0];if(t==null)break;let n=t.subarray(0,e-i);if(r.push(n),i+=n.length,n.length<t.length?this.readable[0]=t.subarray(n.length):this.readable.shift(),this.canonical)break}let a=new Uint8Array(i),o=0;for(let e of r)a.set(e,o),o+=e.length;return a}changed(e){return e?.aborted?Promise.reject(new m(`EINTR`)):new Promise((t,n)=>{let r=()=>{this.waiters=this.waiters.filter(e=>e!==i),n(new m(`EINTR`))},i=()=>{e?.removeEventListener(`abort`,r),t()};this.waiters.push(i),e?.addEventListener(`abort`,r,{once:!0})})}wake(){let e=this.waiters;this.waiters=[];for(let t of e)t()}},K=class extends Error{code;constructor(e){super(e),this.code=e}};function Cn(e){let t=()=>{};return{promise:new Promise((n,r)=>{t=()=>r(new m(`EINTR`)),e?.aborted?t():e?.addEventListener(`abort`,t,{once:!0})}),done:()=>e?.removeEventListener(`abort`,t)}}function wn(e){return(e&255)<<8|127}function Tn(e,t){return t?t&127:(e&255)<<8}function En(e){let t=new Uint8Array(e.reduce((e,t)=>e+t.length,0)),n=0;for(let r of e)t.set(r,n),n+=r.length;return t}var Dn=class{parentFds;spawner;forker;children=new Map;leftovers=new Map;onChildState;stateChanged=[];watchers=new Map;constructor(e,t,n){this.parentFds=e,this.spawner=t,this.forker=n}async fork(e){if(!this.forker)throw new K(`ENOSYS`);return this.track(e,this.parentFds.fork(),new Map,this.forker)}async spawn(e,t,n=[]){if(!this.spawner)throw new K(`ENOSYS`);let r=new o,i=new Map;try{for(let[e,n]of t.entries())r.installAt(e,this.openSlot(n,e,i));for(let{fd:e,kernel:t,flags:i}of n)e<=2||(r.installAt(e,this.parentFds.get(t).retain()),i!==void 0&&r.setStatusFlags(e,i))}catch(e){throw await r.closeAll(),e}return this.track(e,r,i,this.spawner)}async track(e,t,n,r){let i;try{i=await r(e,t)}catch(e){throw await t.closeAll(),e}let a={exited:i.exited,termsig:i.termsig,captured:n};return i.exited.then(e=>{a.code=e,this.watchers.delete(i.pid),this.onChildState?.()}),i.onState?.((e,t)=>{a.stopReport=e===`stopped`?t:void 0,a.continueReport=e===`continued`,this.watchers.get(i.pid)?.(e,t);let n=this.stateChanged;this.stateChanged=[];for(let e of n)e();this.onChildState?.()}),this.children.set(i.pid,a),i.pid}watch(e,t){this.children.has(e)&&this.watchers.set(e,t)}openSlot(e,t,n){if(`fd`in e)return this.parentFds.get(e.fd).retain();if(`input`in e)return s(e.input);if(`capture`in e){let e=[];return n.set(t,e),h(t=>e.push(t))}return te()}async wait(e,t,n,r={}){let i;try{for(;;){let a=this.candidates(e,r);if(a.length===0)throw new m(`ECHILD`);let o=a.find(([,e])=>e.code!==void 0);if(o)return this.reap(o[0],o[1].code);let s=this.stateReport(a,r);if(s)return s;if(t)return[0,0];i??=Cn(n),await this.nextChange(a,r,i.promise)}}finally{i?.done()}}candidates(e,t){let n=[...this.children];if(e>0)return n.filter(([t])=>t===e);let r=t.inGroup;return e===-1||!r?n:n.filter(([e])=>r(e))}async nextChange(e,t,n){let r,i=new Promise(e=>r=e),a=t.untraced||t.continued;a&&r&&this.stateChanged.push(r);try{await Promise.race([...e.map(([,e])=>e.exited),...a?[i]:[],n])}finally{this.stateChanged=this.stateChanged.filter(e=>e!==r)}}stateReport(e,t){for(let[n,r]of e){if(t.untraced&&r.stopReport!==void 0){let e=r.stopReport;return r.stopReport=void 0,[n,wn(e)]}if(t.continued&&r.continueReport)return r.continueReport=!1,[n,65535]}return null}reap(e,t){let n=this.children.get(e);return this.children.delete(e),n&&n.captured.size>0&&this.leftovers.set(e,n.captured),[e,Tn(t,n?.termsig?.())]}captured(e,t){let n=this.leftovers.get(e),r=n?.get(t);return!n||!r?new Uint8Array:(n.delete(t),n.size===0&&this.leftovers.delete(e),En(r))}};function On(e,t,n){return{read:t.filter(t=>{let n=l(e.get(t).file);return n.readable||n.hangup}),write:n.filter(t=>{let n=l(e.get(t).file);return n.writable||n.hangup})}}function kn(e){let t=()=>{};return{promise:new Promise((n,r)=>{t=()=>r(new m(`EINTR`)),e.aborted?t():e.addEventListener(`abort`,t,{once:!0})}),done:()=>e.removeEventListener(`abort`,t)}}async function An(e,t,n,r,i){let a=r<0?1/0:Date.now()+r,o=kn(i);o.promise.catch(()=>{});try{return await jn(e,t,n,a,o.promise)}finally{o.done()}}async function jn(e,t,n,r,i){for(;;){let a=On(e,t,n);if(a.read.length>0||a.write.length>0||Date.now()>=r)return a;let o=new AbortController,s=[...new Set([...t,...n])].flatMap(t=>{let n=e.get(t).file;return n.changed===void 0?[]:[n.changed(o.signal).catch(()=>void 0)]}),c,l=r===1/0?[]:[new Promise(e=>c=setTimeout(e,r-Date.now()))];try{await Promise.race([...s,...l,i])}finally{o.abort(),clearTimeout(c)}}}const Mn=[`sock-open`,`sock-pair`,`sock-bind`,`sock-listen`,`sock-accept`,`sock-connect`,`sock-shutdown`,`sock-name`,`sock-getopt`,`sock-setopt`];function q(e,t){let n=e.get(t).file;if(!(n instanceof B))throw new m(`ENOTSOCK`);return n}const J=e=>e===void 0?{ok:!0,kind:`void`}:{ok:!0,kind:`json`,json:e};async function Nn(e,t){let{fds:n,net:r}=t;switch(e.op){case`sock-open`:return J(n.install(new g(r.socket(e.domain)),3));case`sock-pair`:{let[t,i]=B.pair(r,e.domain),a=n.install(new g(t),3);try{return J([a,n.install(new g(i),3)])}catch(e){throw await Promise.resolve(n.close(a)),e}}case`sock-bind`:return q(n,e.fd).bind(e.addr),J();case`sock-listen`:return q(n,e.fd).listen(e.backlog),J();case`sock-accept`:return J(await Fn(t,e.fd,e.nonblock));case`sock-connect`:if(q(n,e.fd).connect(e.addr),e.nonblock)throw new m(`EINPROGRESS`);return J();case`sock-shutdown`:return q(n,e.fd).shutdown(e.how),J();case`sock-name`:{let t=q(n,e.fd),r=e.peer?t.peer:t.local;if(e.peer&&!r)throw new m(`ENOTCONN`);return J(r??Pn(t.domain))}case`sock-getopt`:return J(q(n,e.fd).getOption(e.level,e.name));case`sock-setopt`:return q(n,e.fd).setOption(e.level,e.name,e.value),J()}}function Pn(e){return e===`inet`?{family:`inet`,host:`0.0.0.0`,port:0}:{family:`unix`,path:``}}async function Fn(e,t,n){let r=q(e.fds,t),i=!n&&!l(r).readable,a=await r.accept(i?e.blocking():void 0,n);return{fd:e.fds.install(new g(a),3),peer:a.peer}}function In(e,t){let n=t.flags&3,r=n!==1,i=n===1||n===2,a=t.contents===void 0?t.orphan?new Uint8Array:void 0:new Uint8Array(t.contents),o=a?.length??0,s=!1,c=t.position,l=Promise.resolve(),u=e=>{let t=l.then(e);return l=t.catch(()=>void 0),t},d=async()=>{if(!a){try{a=await e.readFileBuffer(t.path)}catch{a=new Uint8Array}o=a.length}return a},f=e=>{let t=a??new Uint8Array;if(t.length>=e)return t;let n=new Uint8Array(Math.max(e,t.length*2,256));return n.set(t.subarray(0,o)),a=n,n},p=async()=>{!s||!a||t.orphan||(s=!1,await e.writeFile(t.path,a.slice(0,o)))};return new g({read:r?e=>u(async()=>{let t=await d(),n=Math.max(0,Math.min(e,o-c)),r=t.slice(c,c+n);return c+=n,r}):void 0,write:i?e=>u(async()=>{await d(),t.flags&1024&&(c=o);let n=f(c+e.length);return c>o&&n.fill(0,o,c),n.set(e,c),c+=e.length,o=Math.max(o,c),s=!0,e.length}):void 0,seek:(e,t)=>u(async()=>{let n=0;if(t===1)n=c;else if(t===2)await d(),n=o;else if(t!==0)throw new m(`EINVAL`);if(n+e<0)throw new m(`EINVAL`);return c=n+e,c}),flush:()=>u(p),close:()=>u(p)})}const Ln=new Set([`proc-setpgid`,`proc-getpgid`,`proc-getsid`,`proc-setsid`]);function Rn(e){return Ln.has(e.op)}function zn(e){return e.op.startsWith(`sock-`)}function Bn(e){return e.op.startsWith(`fd-`)}function Vn(e){return e.op.startsWith(`tty-`)}const Hn=new Set([`fd-read`,`fd-write`,`fd-close`,`fd-pipe`,`fd-poll`,`fd-open-vfs`,`fd-seek`,`fd-select`,`fd-info`,`fd-open-tty`,`tty-get`,`tty-set`,`tty-winsz`,`fd-flush`,`proc-spawn`,`proc-wait`,`proc-captured`,`proc-fork`,`proc-kill`,`proc-exec`,`proc-setpgid`,`proc-getpgid`,`proc-getsid`,`proc-setsid`,`tty-pgrp-get`,`tty-pgrp-set`,`sig-mask`,...Mn]);function Un(e){let t=e.op;return typeof t==`string`&&Hn.has(t)}var Wn=class{pid;fds;options;exited=!1;children;caught=0;ignored=0;interrupt=new AbortController;execChild;execTermsig;stopped=0;stops=0;resumed=Promise.resolve();wake=()=>{};stateListeners=[];net;constructor(e,t,n={}){this.pid=e,this.fds=t,this.options=n,this.children=new Dn(t,n.spawner,n.forker),this.children.onChildState=()=>this.signal(U.CHLD)}signal(e){if(this.execChild!==void 0)return Promise.resolve(this.options.kill?.(this.execChild,e)).catch(()=>void 0),e===U.KILL?`terminate`:`forward`;if(e===U.KILL)return`terminate`;if(e===U.CONT&&this.cont(),e===U.STOP)return this.stop(e);let t=W(e);if(this.ignored&t)return`ignore`;if(!(this.caught&t)){let t=gn(e);return t===`stop`?this.stop(e):t}this.options.onPending?.(e);let n=this.interrupt;return this.interrupt=new AbortController,n.abort(),`deliver`}onState(e){this.stateListeners.push(e)}stop(e){if(this.stopped)return`stop`;this.stopped=e,this.stops++,this.resumed=new Promise(e=>this.wake=e);let t=this.interrupt;this.interrupt=new AbortController,t.abort();for(let t of this.stateListeners)t(`stopped`,e);return`stop`}cont(){if(this.stopped){this.stopped=0,this.wake();for(let e of this.stateListeners)e(`continued`,U.CONT)}}async syscall(e){for(;;){await this.resumed;let t=this.stops,n=await this.dispatch(e);if(!(!n.ok&&n.errno===`EINTR`&&this.stops!==t&&!this.options.hasPending?.()))return await this.resumed,n}}async dispatch(e){try{return Bn(e)?await this.fdSyscall(e):Vn(e)?this.ttySyscall(e):Rn(e)?this.jobSyscall(e):zn(e)?await this.socketSyscall(e):await this.procSyscall(e)}catch(e){if(e instanceof m||e instanceof K)return{ok:!1,errno:e.code,message:e.code};throw e}}blockingSignal(){if(this.options.hasPending?.())throw new m(`EINTR`);return this.interrupt.signal}async read(e){let t=this.fds.get(e.fd).file,n=e.peek?t.peek:t.read;if(!n)throw new m(e.peek&&t.read?`EOPNOTSUPP`:`EBADF`);if(t.tty&&this.checkForeground(t.tty),e.max<=0)return new Uint8Array;let r=l(t).readable;if(!r&&e.nonblock)throw new m(`EAGAIN`);let i=r?this.interrupt.signal:this.blockingSignal();return n.call(t,Math.max(0,Math.min(e.max,1048576)),i)}async write(e,t,n=!1){let r=this.fds.get(e).file;if(!r.write)throw new m(`EBADF`);if(!l(r).writable){if(n)throw new m(`EAGAIN`);return r.write(t,this.blockingSignal())}return n?r.write(t,AbortSignal.abort()):r.write(t,this.options.hasPending?.()?AbortSignal.abort():this.interrupt.signal)}async fdSyscall(e){switch(e.op){case`fd-read`:return{ok:!0,kind:`bytes`,bytes:await this.read(e)};case`fd-write`:return{ok:!0,kind:`json`,json:await this.write(e.fd,e.body,e.nonblock)};case`fd-close`:return await Promise.resolve(this.fds.close(e.fd)),{ok:!0,kind:`void`};case`fd-pipe`:{let e=c(),t=this.fds.install(e.read,3),n;try{n=this.fds.install(e.write,3)}catch(e){throw await Promise.resolve(this.fds.close(t)),e}return{ok:!0,kind:`json`,json:[t,n]}}case`fd-poll`:return{ok:!0,kind:`json`,json:l(this.fds.get(e.fd).file)};case`fd-open-vfs`:{if(!this.options.fs)throw new K(`ENOSYS`);let t=In(this.options.fs,{path:e.path,flags:e.flags,position:e.position,...e.contents===void 0?{}:{contents:e.contents},...e.orphan?{orphan:!0}:{}});return{ok:!0,kind:`json`,json:this.fds.install(t,3)}}case`fd-info`:return{ok:!0,kind:`json`,json:{tty:this.fds.get(e.fd).file.tty!==void 0}};case`fd-open-tty`:{let e=this.controllingTerminal();if(!e)throw new m(`ENXIO`);return{ok:!0,kind:`json`,json:this.fds.install(e.file(),3)}}case`fd-select`:{let{read:t,write:n,timeoutMs:r}=e,i=this.blockingSignal();return{ok:!0,kind:`json`,json:await An(this.fds,t,n,r,i)}}case`fd-seek`:{let t=this.fds.get(e.fd).file;if(!t.seek)throw new m(`ESPIPE`);return{ok:!0,kind:`json`,json:await t.seek(e.offset,e.whence)}}case`fd-flush`:{let t=this.fds.get(e.fd).file;return t.flush&&await t.flush(),{ok:!0,kind:`void`}}}}ttySyscall(e){let t=this.tty(e.fd),n=this.options.jobs;switch(e.op){case`tty-get`:return{ok:!0,kind:`json`,json:t.tcgets()};case`tty-set`:return t.tcsets(e.termios),{ok:!0,kind:`void`};case`tty-winsz`:return{ok:!0,kind:`json`,json:t.winsize()};case`tty-pgrp-get`:return{ok:!0,kind:`json`,json:n?n.tcgetpgrp(t,this.sid()):this.pid};case`tty-pgrp-set`:if(n)n.tcsetpgrp(this.pid,t,e.pgrp);else if(e.pgrp!==this.pid)throw new m(`EPERM`);return{ok:!0,kind:`void`}}}checkForeground(e){let t=this.options.jobs;if(!t)return;let n=this.pgid();if(t.tcgetpgrp(e,this.sid())!==n)throw this.ignored&W(U.TTIN)?new m(`EIO`):(t.killGroup(n,U.TTIN),new m(`EINTR`))}waitGroup(e){let t=this.options.jobs;if(!t||e>0||e===-1)return;let n=e===0?this.pgid():-e;return e=>(t.pgidOf(e)??this.pgid())===n}pgid(){return this.options.jobs?.getpgid(this.pid,0)??this.pid}sid(){return this.options.jobs?.getsid(this.pid,0)??this.pid}controllingTerminal(){let e=this.options.jobs?.controllingTerminal(this.pid);return e===void 0?this.fds.stdioTerminal():e??void 0}jobSyscall(e){let t=this.options.jobs,n=e=>{if(e!==0&&e!==this.pid)throw new m(`ESRCH`);return this.pid};switch(e.op){case`proc-setpgid`:if(t)t.setpgid(this.pid,e.pid,e.pgid);else if(n(e.pid)!==(e.pgid||this.pid))throw new m(`EPERM`);return{ok:!0,kind:`void`};case`proc-getpgid`:return{ok:!0,kind:`json`,json:t?.getpgid(this.pid,e.pid)??n(e.pid)};case`proc-getsid`:return{ok:!0,kind:`json`,json:t?.getsid(this.pid,e.pid)??n(e.pid)};case`proc-setsid`:if(!t)throw new m(`EPERM`);return{ok:!0,kind:`json`,json:t.setsid(this.pid)}}}tty(e){let t=this.fds.get(e).file.tty;if(!t)throw new m(`ENOTTY`);return t}socketSyscall(e){return this.net??=this.options.net??new dn,Nn(e,{fds:this.fds,net:this.net,blocking:()=>this.blockingSignal()})}async procSyscall(e){switch(e.op){case`proc-fork`:return{ok:!0,kind:`json`,json:await this.children.fork(e.state)};case`proc-spawn`:{let{file:t,argv:n,env:r,cwd:i,stdio:a,inherit:o}=e;return{ok:!0,kind:`json`,json:await this.children.spawn({file:t,argv:n,env:r,cwd:i},a,o)}}case`proc-wait`:{let t=e.nohang?this.interrupt.signal:this.blockingSignal(),n={untraced:e.untraced,continued:e.continued,inGroup:this.waitGroup(e.pid)};return{ok:!0,kind:`json`,json:await this.children.wait(e.pid,e.nohang,t,n)}}case`proc-exec`:this.execChild=e.pid,this.options.jobs?.exec(this.pid,e.pid),this.children.watch(e.pid,(e,t)=>e===`stopped`?this.stop(t):this.cont()),await this.fds.closeAll();try{let t=await this.children.wait(e.pid,!1),n=t[1]&127;return n&&(this.execTermsig=n),{ok:!0,kind:`json`,json:t}}finally{this.execChild=void 0}case`proc-kill`:if(e.sig!==0&&!_n(e.sig))throw new m(`EINVAL`);if(!await this.options.kill?.(e.pid===0?-this.pgid():e.pid,e.sig))throw new m(`ESRCH`);return{ok:!0,kind:`void`};case`sig-mask`:return this.caught=e.caught,this.ignored=e.ignored,{ok:!0,kind:`void`};case`proc-captured`:return{ok:!0,kind:`bytes`,bytes:this.children.captured(e.pid,e.slot)}}}async exit(){this.exited||(this.exited=!0,await this.fds.closeAll())}};function Gn(){return new Worker(new URL(`/assets/process-worker-Bm14-oXj.js`,``+import.meta.url),{type:`module`})}const Kn=new WeakMap;let qn=1;function Jn(e){let t=Kn.get(e);return t===void 0&&Kn.set(e,t=qn++),t}function Yn(e){return e.numbers().filter(e=>e>2).map(t=>{let n=e.get(t),r=e.statusFlags(t),i=n.file instanceof B?`socket`:d(n.file);return{fd:t,kind:i,...r===void 0?{}:{flags:r},...e.closesOnExec(t)?{cloexec:!0}:{},...i===`stream`?{desc:Jn(n)}:{}}})}function Xn(e){let t=new SharedArrayBuffer(64+ce),n=new Int32Array(t,0,16),r=new Wn(e.pid,e.fds,{spawner:e.spawner,forker:e.forker,fs:e.fs,kill:e.kill,jobs:e.jobs,net:e.net,onPending:e=>void Atomics.or(n,8,W(e)),hasPending:()=>Atomics.load(n,8)!==0}),i=ae({fs:e.fs,cwd:e.cwd}),a=(e.createWorker??Gn)(),o=le(a,t,i,{dispatch:async e=>Un(e)?r.syscall(e):`op`in e&&typeof e.op==`string`&&`path`in e?se(e):{ok:!1,errno:`ENOSYS`,message:`wasm-realm: no exec yet`}}),s,c=new Promise(e=>s=e),l=!1,u,d=(e,t)=>{l||(l=!0,u=t??r.execTermsig,a.removeEventListener(`message`,f),a.removeEventListener(`error`,p),o.dispose(),oe(i),a.terminate(),r.exit().then(()=>s(e),()=>s(e)))},f=t=>{let n=t.data;n?.type===`wasm-process-exit`?d(typeof n.code==`number`?n.code:70):n?.type===`wasm-process-error`&&(e.onError?.(String(n.message)),d(70))},p=t=>{t.preventDefault(),e.onError?.(String(t.message??`worker error`)),d(70)};a.addEventListener(`message`,f),a.addEventListener(`error`,p);let m={type:`wasm-process-init`,pid:e.pid,program:e.program,argv0:e.argv0,args:e.args,env:e.env,cwd:e.cwd,sab:t,...e.fork?{fork:e.fork}:{fds:Yn(e.fds)}};return a.postMessage(m,e.fork?[e.fork.memory.buffer]:[]),{pid:e.pid,exited:c,kill:(e=137)=>d(e,e>128&&e<160?e-128:void 0),signal:e=>{r.signal(e)===`terminate`&&d(e===U.KILL?137:128+e,e)},termsig:()=>u,onState:e=>r.onState(e)}}var Zn=class{members=new Map;foreground=new Map;terminals=new Map;add(e,t,n,r){let i=t===void 0?void 0:this.members.get(t);!i&&r&&this.terminals.set(e,r);let a={pid:e,ppid:i?.pid,pgid:i?.pgid??e,sid:i?.sid??e,signal:n};return this.members.set(e,a),a}remove(e){this.members.delete(e)}exec(e,t){let n=this.members.get(t);n&&(n.execParent=e);let r=this.members.get(e);r&&(r.execed=!0)}pgidOf(e){return this.members.get(e)?.pgid}member(e){let t=this.members.get(e);if(!t)throw new m(`ESRCH`);return t}setpgid(e,t,n){let r=this.member(t||e),i=n||r.pid;if(i<0)throw new m(`EINVAL`);let a=this.member(e);if(r.pid!==e){if(r.ppid!==e)throw new m(`ESRCH`);if(r.execed)throw new m(`EACCES`)}if(r.sid!==a.sid||r.pid===r.sid)throw new m(`EPERM`);let o=[...this.members.values()].some(e=>e.pgid===i&&e.sid===r.sid);if(i!==r.pid&&!o)throw new m(`EPERM`);r.pgid=i}getpgid(e,t){return this.member(t||e).pgid}getsid(e,t){return this.member(t||e).sid}setsid(e){let t=this.member(e);if(t.pgid===e)throw new m(`EPERM`);return t.sid=e,t.pgid=e,this.terminals.delete(e),e}controllingTerminal(e){let t=this.members.get(e);return t&&(this.terminals.get(t.sid)??null)}killGroup(e,t){let n=[...this.members.values()].filter(t=>t.pgid===e),r=new Set(n.map(e=>e.pid));if(t!==0)for(let e of n)(e.execParent===void 0||!r.has(e.execParent))&&e.signal(t);return n.length>0}tcgetpgrp(e,t){return this.foreground.get(e)??t}tcsetpgrp(e,t,n){let r=this.member(e);if(![...this.members.values()].some(e=>e.pgid===n&&e.sid===r.sid))throw new m(`EPERM`);this.foreground.set(t,n)}signalForeground(e,t,n){this.killGroup(this.tcgetpgrp(e,t),n)}};function Qn(e,t){return!/^(ba)?sh$/.test(Z(e))||`BASH_FUNC_secret%%`in t?t:{...t,"BASH_FUNC_secret%%":`() { command secret "$@" || return; local __slicc_env; if __slicc_env=$(command secret shell-env "$@" 2>/dev/null); then eval "$__slicc_env"; fi; return 0; }`}}const Y=new Map,$n=new Map(Object.entries(G).map(([e,t])=>[t,e])),X=/^\/(?:usr\/)?bin\/([^/]+)$/;let er=4e4;function tr(e){return e.endsWith(`.js`)?`${e.slice(0,-3)}.wasm`:`${e}.wasm`}function nr(e){return X.exec(e)?.[1]??Z(e)}function Z(e){return e.slice(e.lastIndexOf(`/`)+1)}function rr(e){return{exists:t=>e.fs.exists(t),readDir:async t=>(await e.fs.readdir(t)).map(e=>({name:e})),readFile:t=>e.fs.readFile(t)}}function ir(e){return re(rr(e),ne)}async function ar(e,t){let n=await e.fs.stat(t),r=`${t}:${n.size}:${n.mtime.getTime()}`,i=Y.get(r);return i||(i=ie(t=>e.fs.readFileBuffer(t),t),Y.set(r,i),i.catch(()=>Y.delete(r))),i}function or(e){let t=``;for(let n=0;n<e.length;n+=32768)t+=String.fromCharCode(...e.subarray(n,n+32768));return t}function sr(e){let t=new Uint8Array(e.length);for(let n=0;n<e.length;n++)t[n]=e.charCodeAt(n)&255;return t}async function cr(e){if(!e.file.read)return new Uint8Array;let t=[],n=0;for(let r=await e.file.read(65536);r.length>0;)t.push(r),n+=r.length,r=await e.file.read(65536);let r=new Uint8Array(n),i=0;for(let e of t)r.set(e,i),i+=e.length;return r}async function Q(e,t,n){if(n.length===0||!e.has(t))return;let r=e.get(t).file;try{await r.write?.(n)}catch{}}function $(e,t){return e.has(t)&&e.get(t).file.tty!==void 0}function lr(e){return{...$(e,0)?{}:{[ee]:`0`},...$(e,1)?{}:{[p]:`0`}}}function ur(e){return{pid:e.pid,exited:e.exited,termsig:e.termsig,onState:t=>e.onState(t)}}var dr=class{ctx;processConfig;onError;gate;lookup;live=new Set;shellChildren=new Set;wasmByPid=new Map;shellByPid=new Map;installed;jobs=new Zn;leader;net;constructor(e,t,n,r,i){this.ctx=e,this.processConfig=t,this.onError=n,this.gate=r,this.lookup=i,this.net=pn(H(t?.owner));let a=H(t?.owner);rn(this.net,{process:t,tls:{owner:a}})}commands(){return this.lookup?this.lookup():(this.installed??=ir(this.ctx),this.installed)}async launch(e){let t,n;try{t=await this.ctx.fs.readFile(e.glue),n=await ar(this.ctx,e.module),e.signal?.throwIfAborted()}catch(t){throw await e.fds.closeAll(),t}let r=Qn(e.argv0,e.defaults?{...e.defaults,...e.env}:e.env);return this.start({...e,env:r,program:{glue:t,module:n}})}start(e){let t=this.processConfig?.processManager,{pid:n}=this.register(`wasm`,[e.argv0,...e.args],e.cwd,e.env,e.ppid),r=e.fds.stdioTerminal(),i=Xn({pid:n,program:e.program,argv0:e.argv0,args:e.args,env:e.env,cwd:e.cwd,fds:e.fds,fs:this.ctx.fs,onError:this.onError,spawner:this.spawner(n),forker:this.forker(n,e),kill:(e,t)=>this.kill(e,t),jobs:this.jobs,net:this.net,...e.fork?{fork:e.fork}:{}});this.live.add(i),this.wasmByPid.set(n,i),this.leader??=n,this.jobs.add(n,e.ppid,e=>i.signal(e),r);let a=t?.onSignal((e,t)=>{e.pid===n&&i.signal(G[t])});return i.exited.then(e=>{this.live.delete(i),this.wasmByPid.delete(n),this.jobs.remove(n),a?.(),this.processConfig&&t?.exit(n,e)}),i}kill(e,t){if(e<0)return this.jobs.killGroup(-e,t);let n=this.wasmByPid.get(e);if(n)return t!==0&&n.signal(t),!0;let r=this.shellByPid.get(e);if(r)return t!==0&&r(t),!0;let i=this.processConfig?.processManager;if(!i)return!1;if(t===0)return i.get(e)!==null;let a=$n.get(t);return a===void 0?!1:this.gate?this.killOutside(e,a):i.signal(e,a)}async killOutside(e,t){if(await this.gate?.(`kill`,[`-${t.slice(3)}`,String(e)],{}))throw new m(`EPERM`);return this.processConfig?.processManager.signal(e,t)??!1}signalAll(e){for(let t of this.live)t.signal(e)}signalTerminal(e,t){this.leader!==void 0&&this.jobs.signalForeground(e,this.leader,t)}killAll(e){for(let t of this.live)t.kill(e);for(let e of this.shellChildren)e.abort()}async resolve(e,t,n){let r=X.exec(e)?.[1]??(e.includes(`/`)?void 0:e);if(r!==void 0){let e=await this.commands(),t=e.get(r);if(t)return{glue:t.glue,module:t.wasm,argv0:t.argv0,defaults:t.env};let n=r===`sh`?e.get(`bash`):void 0;return n&&{glue:n.glue,module:n.wasm,argv0:`sh`,defaults:n.env}}let i=this.ctx.fs.resolvePath(n,e),a=tr(i);if(!(!await this.ctx.fs.exists(i)||!await this.ctx.fs.exists(a)))return{glue:i,module:a,argv0:Z(t||e)}}forker(e,t){return async(n,r)=>ur(this.start({...t,cwd:n.cwd??t.cwd,fds:r,ppid:e,fork:n}))}async interpreted(e){if(!e.file.includes(`/`)||X.test(e.file))return;let t;try{t=(await this.ctx.fs.readFileBuffer(this.ctx.fs.resolvePath(e.cwd,e.file))).subarray(0,256)}catch{return}if(t[0]!==35||t[1]!==33)return;let[n,...r]=new TextDecoder().decode(t).slice(2).split(`
|
|
12
|
-
`)[0].trim().split(/[ \t]+/);if(!n)return;let i=await this.resolve(n,n,e.cwd);if(!i)return;let a=r.join(` `);return{target:i,file:n,args:[...a?[a]:[],e.file,...e.argv.slice(1)]}}spawner(e){return async(t,n)=>{let r=await this.resolve(t.file,t.argv[0]??t.file,t.cwd),i=r?{target:r,file:t.file,args:t.argv.slice(1)}:await this.interpreted(t);if(!i)return this.runShellChild(t,n,e);let a=await this.gate?.(nr(i.file),i.args,t.env);return a?this.deniedChild(t,n,e,a):ur(await this.launch({...i.target,args:i.args,env:t.env,cwd:t.cwd,fds:n,ppid:e}))}}deniedChild(e,t,n,r){let{pid:i}=this.register(`shell`,e.argv,e.cwd,e.env,n),a=(async()=>(await Q(t,2,new TextEncoder().encode(r.stderr)),await t.closeAll(),r.exitCode))();return this.processConfig&&a.then(e=>this.processConfig?.processManager.exit(i,e)),{pid:i,exited:a}}runShellChild(e,t,n){let r=this.ctx.exec;if(!r)throw t.closeAll().catch(()=>void 0),new K(`ENOSYS`);let{pid:i,abort:a}=this.register(`shell`,e.argv,e.cwd,e.env,n),o=a??new AbortController,s=()=>o.abort();this.ctx.signal?.addEventListener(`abort`,s,{once:!0}),this.ctx.signal?.aborted&&s();let c,l=e=>{gn(e)===`terminate`&&(c??=e,o.abort())};this.shellChildren.add(o),this.shellByPid.set(i,l),this.jobs.add(i,n,l);let u=this.processConfig?.processManager.onSignal((e,t)=>{e.pid===i&&l(G[t])}),d=(async()=>{try{let n=$(t,0),i=t.has(0)&&!n?await cr(t.get(0)):new Uint8Array,a=await r(e.file,{args:e.argv.slice(1),cwd:e.cwd,env:{...e.env,...lr(t)},replaceEnv:!0,stdin:or(i),stdinKind:`bytes`,signal:o.signal});return await Q(t,1,a.stdoutKind===`bytes`?sr(a.stdout):new TextEncoder().encode(a.stdout)),await Q(t,2,new TextEncoder().encode(a.stderr)),a.exitCode}catch(n){let r=n instanceof Error?n.message:String(n);return await Q(t,2,new TextEncoder().encode(`${e.file}: ${r}\n`)),126}finally{await t.closeAll(),this.shellChildren.delete(o),this.shellByPid.delete(i),this.jobs.remove(i),u?.(),this.ctx.signal?.removeEventListener(`abort`,s)}})();return this.processConfig&&d.then(e=>this.processConfig?.processManager.exit(i,e)),{pid:i,exited:d,termsig:()=>c}}register(e,t,n,r,i){let a=this.processConfig;return a?a.processManager.spawn({kind:e,argv:t,cwd:n,env:r,owner:a.owner,ppid:i??a.getParentPid?.()}):{pid:er++}}};const fr=`usage: wasm [-t] [--argv0 NAME] [--module PATH] PROGRAM [ARGS...]
|
|
13
|
-
wasm --list
|
|
14
|
-
wasm --login
|
|
15
|
-
`;function pr(e){let t={},n=0;for(;;){if(e[n]===`-t`){t.tty=!0,n+=1;continue}if(e[n]===`--login-prompt`){t.login=!0,n+=1;continue}if(e[n]!==`--argv0`&&e[n]!==`--module`)break;let r=e[n+1];if(r===void 0)return;e[n]===`--argv0`?t.argv0=r:t.module=r,n+=2}let r=e[n];if(!(!r||r.startsWith(`-`)))return{...t,program:r,args:e.slice(n+1)}}function mr(e,t){return t.commands?.()??ir(e)}function hr(e){if(!e)return()=>{};let t=new TextDecoder;return n=>{let r=t.decode(n,{stream:!0});r&&e(r)}}function gr(e,t,n,r){let i=[],a=e.limits?.maxOutputSize??268435456,c=0,l=!1,u=(e,n)=>r=>{if(c+=r.length,c>a){l=!0,t.killAll(1);return}e.push(r),n(r)},d=new o;return d.install(s(Dr(e))),d.install(h(u(i,hr(r)))),d.install(h(u(n,hr(r)))),{fds:d,collected:()=>({stdout:Er(i),note:l?`wasm: output exceeded ${a} bytes; stopped\n`:``}),release:()=>{}}}function _r(e,t){let n=new Sn({write:t=>e.write(t)},e=>t.signalTerminal(n,e));n.setSize(e.cols,e.rows),e.onInput(e=>n.receive(e)),e.onResize((e,t)=>n.resize(e,t));let r=n.file(),i=new o;return i.installAt(0,r),i.installAt(1,r.retain()),i.installAt(2,r.retain()),{fds:i,collected:()=>({stdout:``,note:``}),release:()=>e.release()}}function vr(e,t){return Object.fromEntries(Object.entries(e).filter(([e,n])=>e in t||!tn(e,n)))}async function yr(e,t){let n=H(t.processConfig?.owner);return nn(e.fs,Yt(br(e),n),n)}function br(e){return e.exportedEnv?.HOME??e.env.get(`HOME`)??`/tmp`}async function xr(e,t){let n=await t.gitIdentity?.().catch(()=>void 0);return en(e.fs,Qt(br(e)),n)}function Sr(e,t,n){let r={...n,...e.exportedEnv??Object.fromEntries(e.env)};return t.tty&&(!r.TERM||r.TERM===`dumb`)&&(r.TERM=`xterm-256color`,r.COLORTERM??=`truecolor`),t.login&&(r.PS1??=`\\w $ `,r.PROMPT_COMMAND??=de),r}async function Cr(e,t){let n={stdout:``,stderr:``,exitCode:125};if((e.exportedEnv?.SLICC_SHELL??e.env.get(`SLICC_SHELL`))===`just-bash`||!t.terminal||typeof SharedArrayBuffer!=`function`||!(await mr(e,t)).has(`bash`))return n;let r=s(new TextEncoder().encode(fe));return kr([`-t`,`--login-prompt`,`bash`,`--rcfile`,`/dev/fd/98`,`-i`],e,{...t,fds:[[98,r]]})}function wr(e){let t=[...e.values()].sort((e,t)=>e.name.localeCompare(t.name)),n=Math.max(0,...t.map(e=>e.name.length));return t.map(e=>`${e.name.padEnd(n)} ${e.pkg}\n`).join(``)}async function Tr(e,t,n){if(n.program.includes(`/`)||await e.fs.exists(e.fs.resolvePath(e.cwd,n.program)))return n;let r=(await t.commands()).get(n.program);return r?{...n,argv0:n.argv0??r.argv0,module:n.module??r.wasm,program:r.glue,defaults:r.env}:n}function Er(e){let t=``;for(let n of e)for(let e=0;e<n.length;e+=32768)t+=String.fromCharCode(...n.subarray(e,e+32768));return t}function Dr(e){let t=ue(e.stdin),n=new Uint8Array(t.length);for(let e=0;e<t.length;e++)n[e]=t.charCodeAt(e)&255;return n}function Or(e,t){return e.defaults??t.defaults}async function kr(e,t,n={}){let{processConfig:r,terminal:i}=n;if(e[0]===`--help`||e[0]===`-h`)return{stdout:fr,stderr:``,exitCode:0};if(e[0]===`--login`&&e.length===1)return Cr(t,n);if(e[0]===`--list`&&e.length===1)return{stdout:wr(await mr(t,n)),stderr:``,exitCode:0};let a=pr(e);if(!a)return{stdout:``,stderr:fr,exitCode:2};if(typeof SharedArrayBuffer!=`function`)return{stdout:``,stderr:`wasm: the wasm realm needs SharedArrayBuffer, which this page lacks (it is not cross-origin isolated)
|
|
16
|
-
`,exitCode:126};let o=[],s=e=>{o.push(new TextEncoder().encode(`wasm: ${e}\n`))},c=new dr(t,r,e=>s(e),n.gate,n.commands),l=await Tr(t,c,a),u=t.fs.resolvePath(t.cwd,l.program),d;if(l.tty){let e=i?.lease();if(!e)return{stdout:``,stderr:`wasm: -t: no terminal to lend (only the panel terminal has one)
|
|
17
|
-
`,exitCode:1};d=_r(e,c),s=t=>e.write(new TextEncoder().encode(`wasm: ${t}\r\n`))}else d=gr(t,c,o,n.onOutput);for(let[e,t]of n.fds??[])d.fds.installAt(e,t),d.fds.setCloseOnExec(e);let{fds:f}=d,p;try{p=await c.launch({glue:u,module:l.module?t.fs.resolvePath(t.cwd,l.module):tr(u),argv0:l.argv0??u.slice(u.lastIndexOf(`/`)+1).replace(/\.js$/,``),args:l.args,env:Sr(t,l,{...Wt(),...await yr(t,n),...await xr(t,n)}),defaults:Or(l,n),cwd:t.cwd,fds:f,signal:t.signal})}catch(e){if(d.release(),t.signal?.aborted)return{stdout:``,stderr:``,exitCode:130};let n=e instanceof Error?e.message:String(e);return{stdout:``,stderr:`wasm: ${l.program}: ${n}\n`,exitCode:127}}let m=()=>c.killAll(130);t.signal?.addEventListener(`abort`,m,{once:!0}),t.signal?.aborted&&m();try{let e=await p.exited,{stdout:t,note:n}=d.collected();return n&&o.push(new TextEncoder().encode(n)),{stdout:t,stderr:new TextDecoder().decode(Ar(o)),exitCode:e,stdoutKind:`bytes`}}finally{d.release(),t.signal?.removeEventListener(`abort`,m)}}function Ar(e){let t=e.reduce((e,t)=>e+t.length,0),n=new Uint8Array(t),r=0;for(let t of e)n.set(t,r),r+=t.length;return n}export{kr as runWasmCommand,vr as withoutRealmDefaults};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
function e(){return{version:`6.218.0`,releasedAt:`2026-09-29T15:11:37Z`,buildId:`6.218.0-mumte2u2`}}let t=null;function n(e){t=e}function r(){return t}export{e as n,n as r,r as t};
|