@visa/cli 4.1.0-rc.28 → 4.1.0-rc.29
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/cli.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use strict";var uyt=Object.create;var HB=Object.defineProperty;var dyt=Object.getOwnPropertyDescriptor;var lyt=Object.getOwnPropertyNames;var pyt=Object.getPrototypeOf,fyt=Object.prototype.hasOwnProperty;var P=(e,t,r)=>()=>{if(r)throw r[0];try{return e&&(t=e(e=0)),t}catch(n){throw r=[n],n}};var g=(e,t)=>()=>{try{return t||e((t={exports:{}}).exports,t),t.exports}catch(r){throw t=0,r}},Mi=(e,t)=>{for(var r in t)HB(e,r,{get:t[r],enumerable:!0})},X9e=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of lyt(t))!fyt.call(e,i)&&i!==r&&HB(e,i,{get:()=>t[i],enumerable:!(n=dyt(t,i))||n.enumerable});return e};var ve=(e,t,r)=>(r=e!=null?uyt(pyt(e)):{},X9e(t||!e||!e.__esModule?HB(r,"default",{value:e,enumerable:!0}):r,e)),ie=e=>X9e(HB({},"__esModule",{value:!0}),e);var Vm,rX=P(()=>{"use strict";Vm="6820f6e91b762e645c9bf020c0d3673bb99d4a25a824880c0d548e10bb9bc7b1"});function nX(e){return`${e}-${rxe.randomBytes(24).toString("base64url")}`}function ixe(e=process.env){return e.NODE_ENV==="test"||e[nxe]==="true"}function _h(e=process.env){return e.VISA_MOCK_KEYCHAIN==="true"&&ixe(e)}function vS(e=process.env){return e.VISA_MOCK_TOUCHID==="true"&&ixe(e)}function iX(){return`Set ${nxe}=true only for local debugging; it enables insecure mock credential hooks outside NODE_ENV=test.`}function oxe(){return Q9e??=nX("mock-session"),Q9e}function sxe(e=process.env){return e.NODE_ENV==="test"?Vm:(exe??=nX("mock-rc"),exe)}function axe(){return txe??=nX("mock-signature"),txe}var rxe,nxe,Q9e,exe,txe,FB=P(()=>{"use strict";rxe=ve(require("crypto"));rX();nxe="VISA_ALLOW_INSECURE_MOCKS"});function hyt(e){let t=e;return[t?.message,t?.stderr].filter(r=>typeof r=="string").join(`
|
|
2
|
-
`)}function dX(e){let t=e;if(t?.code==="EPERM"||t?.code==="EACCES")return!0;let r=hyt(e).toLowerCase();return r.includes("operation not permitted")||r.includes("permission denied")}function Mp(){return process.platform!=="darwin"?Promise.resolve(!1):(cxe??=(async()=>{try{return await fl("security",["default-keychain","-d","user"],{timeout:5e3}),!0}catch(e){return dX(e)}})(),cxe)}async function yyt(){if(!await Mp())return null;try{let{stdout:e}=await fl("security",["find-generic-password","-s",Yu,"-a",vh,"-w"],{timeout:5e3});return e.trim()||null}catch(e){if(dX(e))throw new VB("Unable to read Visa CLI credentials from macOS Keychain. In sandboxed agents such as Codex, rerun with keychain access or run this command outside the sandbox.");return null}}async function gyt(e){if(!await Mp())return!1;try{try{await fl("security",["delete-generic-password","-s",Yu,"-a",vh],{timeout:5e3})}catch{}return await fl("security",["add-generic-password","-s",Yu,"-a",vh,"-w",e],{timeout:5e3}),!0}catch{return!1}}async function byt(){if(await Mp())try{await fl("security",["delete-generic-password","-s",Yu,"-a",vh],{timeout:5e3})}catch{}}async function _yt(){if(!lX())return null;try{let{stdout:e}=await fl("secret-tool",["lookup","service",Yu,"account",vh],{timeout:5e3});return e.trim()||null}catch{return null}}async function vyt(e){if(!lX())return!1;try{let t=(0,KB.execFile)("secret-tool",["store","--label",`${Yu} ${vh}`,"service",Yu,"account",vh]);return t.stdin?(t.stdin.write(e),t.stdin.end(),await Promise.race([new Promise((r,n)=>{t.on("exit",i=>i===0?r():n(new Error(`secret-tool exited ${i}`))),t.on("error",n)}),new Promise((r,n)=>setTimeout(()=>{t.kill(),n(new Error("secret-tool timed out"))},myt))]),!0):!1}catch{return!1}}async function wyt(){if(lX())try{await fl("secret-tool",["clear","service",Yu,"account",vh],{timeout:5e3})}catch{}}function lX(){return!!process.env.DBUS_SESSION_BUS_ADDRESS}async function xyt(){if(!await Mp())return null;try{let{stdout:e}=await fl("security",["find-generic-password","-s",Yu,"-a",$B,"-w"],{timeout:5e3});return e.trim()||null}catch{return null}}async function Eyt(e){if(await Mp())try{try{await fl("security",["delete-generic-password","-s",Yu,"-a",$B],{timeout:5e3})}catch{}await fl("security",["add-generic-password","-s",Yu,"-a",$B,"-w",e],{timeout:5e3})}catch{}}async function Ayt(){if(await Mp())try{await fl("security",["delete-generic-password","-s",Yu,"-a",$B],{timeout:5e3})}catch{}}function sX(){try{return wh.readFileSync(wS,"utf-8").trim()||null}catch(e){if(dX(e))throw new VB(`Unable to read Visa CLI credentials from ${wS}. Check file permissions or rerun with access to the Visa CLI credential directory.`);return null}}function dxe(e){wh.mkdirSync(uX,{recursive:!0,mode:448}),wh.writeFileSync(wS,e,{mode:384}),process.platform==="win32"&&Syt(wS)}function aX(){try{wh.unlinkSync(wS)}catch{}}function Syt(e){try{let t=WB.userInfo().username;(0,KB.execFile)("icacls",[e,"/inheritance:r","/grant:r",`${t}:F`],{timeout:5e3},r=>{r&&console.error(`[visa-cli] icacls ACL restriction failed: ${r.message}`)})}catch(t){console.error(`[visa-cli] Failed to invoke icacls: ${t instanceof Error?t.message:String(t)}`)}}function oX(){switch(process.platform){case"darwin":return{get:yyt,store:gyt,delete:byt};case"linux":return{get:_yt,store:vyt,delete:wyt};default:return{get:async()=>sX(),store:async e=>{try{return dxe(e),!0}catch{return!1}},delete:async()=>aX(),storesInSessionFile:!0}}}var KB,uxe,wh,WB,cX,fl,uX,wS,Yu,vh,$B,myt,VB,cxe,xi,B2=P(()=>{"use strict";KB=require("child_process"),uxe=require("util"),wh=ve(require("fs")),WB=ve(require("os")),cX=ve(require("path"));FB();fl=(0,uxe.promisify)(KB.execFile),uX=cX.join(WB.homedir(),".visa-mcp"),wS=cX.join(uX,"session-token"),Yu="visa-cli",vh="session-token",$B="rc-access",myt=5e3,VB=class extends Error{constructor(t){super(t),this.name="CredentialAccessError"}};cxe=null;xi=class{static async getSessionToken(){if(_h())return Promise.resolve(oxe());let t=oX(),r=await t.get();if(r)return r;let n=sX();return n?(await t.store(n),n):null}static async saveSessionToken(t){if(_h())return;let r=oX();if(await r.store(t)){if(await r.get()===t){r.storesInSessionFile||aX();return}await r.delete()}if(dxe(t),sX()!==t)throw new Error("Failed to persist session token. "+(process.platform==="darwin"?'Check Keychain Access permissions for "visa-cli".':`Ensure ${uX} is writable.`))}static async getRcAccessToken(){return _h()?sxe():xyt()}static async saveRcAccessToken(t){_h()||await Eyt(t)}static async deleteSessionToken(){if(_h())return;await oX().delete(),aX()}static async clearAll(){await this.deleteSessionToken(),await Ayt()}}});var GB=g((sPr,Tyt)=>{Tyt.exports={name:"@visa/cli",version:"4.1.0-rc.
|
|
2
|
+
`)}function dX(e){let t=e;if(t?.code==="EPERM"||t?.code==="EACCES")return!0;let r=hyt(e).toLowerCase();return r.includes("operation not permitted")||r.includes("permission denied")}function Mp(){return process.platform!=="darwin"?Promise.resolve(!1):(cxe??=(async()=>{try{return await fl("security",["default-keychain","-d","user"],{timeout:5e3}),!0}catch(e){return dX(e)}})(),cxe)}async function yyt(){if(!await Mp())return null;try{let{stdout:e}=await fl("security",["find-generic-password","-s",Yu,"-a",vh,"-w"],{timeout:5e3});return e.trim()||null}catch(e){if(dX(e))throw new VB("Unable to read Visa CLI credentials from macOS Keychain. In sandboxed agents such as Codex, rerun with keychain access or run this command outside the sandbox.");return null}}async function gyt(e){if(!await Mp())return!1;try{try{await fl("security",["delete-generic-password","-s",Yu,"-a",vh],{timeout:5e3})}catch{}return await fl("security",["add-generic-password","-s",Yu,"-a",vh,"-w",e],{timeout:5e3}),!0}catch{return!1}}async function byt(){if(await Mp())try{await fl("security",["delete-generic-password","-s",Yu,"-a",vh],{timeout:5e3})}catch{}}async function _yt(){if(!lX())return null;try{let{stdout:e}=await fl("secret-tool",["lookup","service",Yu,"account",vh],{timeout:5e3});return e.trim()||null}catch{return null}}async function vyt(e){if(!lX())return!1;try{let t=(0,KB.execFile)("secret-tool",["store","--label",`${Yu} ${vh}`,"service",Yu,"account",vh]);return t.stdin?(t.stdin.write(e),t.stdin.end(),await Promise.race([new Promise((r,n)=>{t.on("exit",i=>i===0?r():n(new Error(`secret-tool exited ${i}`))),t.on("error",n)}),new Promise((r,n)=>setTimeout(()=>{t.kill(),n(new Error("secret-tool timed out"))},myt))]),!0):!1}catch{return!1}}async function wyt(){if(lX())try{await fl("secret-tool",["clear","service",Yu,"account",vh],{timeout:5e3})}catch{}}function lX(){return!!process.env.DBUS_SESSION_BUS_ADDRESS}async function xyt(){if(!await Mp())return null;try{let{stdout:e}=await fl("security",["find-generic-password","-s",Yu,"-a",$B,"-w"],{timeout:5e3});return e.trim()||null}catch{return null}}async function Eyt(e){if(await Mp())try{try{await fl("security",["delete-generic-password","-s",Yu,"-a",$B],{timeout:5e3})}catch{}await fl("security",["add-generic-password","-s",Yu,"-a",$B,"-w",e],{timeout:5e3})}catch{}}async function Ayt(){if(await Mp())try{await fl("security",["delete-generic-password","-s",Yu,"-a",$B],{timeout:5e3})}catch{}}function sX(){try{return wh.readFileSync(wS,"utf-8").trim()||null}catch(e){if(dX(e))throw new VB(`Unable to read Visa CLI credentials from ${wS}. Check file permissions or rerun with access to the Visa CLI credential directory.`);return null}}function dxe(e){wh.mkdirSync(uX,{recursive:!0,mode:448}),wh.writeFileSync(wS,e,{mode:384}),process.platform==="win32"&&Syt(wS)}function aX(){try{wh.unlinkSync(wS)}catch{}}function Syt(e){try{let t=WB.userInfo().username;(0,KB.execFile)("icacls",[e,"/inheritance:r","/grant:r",`${t}:F`],{timeout:5e3},r=>{r&&console.error(`[visa-cli] icacls ACL restriction failed: ${r.message}`)})}catch(t){console.error(`[visa-cli] Failed to invoke icacls: ${t instanceof Error?t.message:String(t)}`)}}function oX(){switch(process.platform){case"darwin":return{get:yyt,store:gyt,delete:byt};case"linux":return{get:_yt,store:vyt,delete:wyt};default:return{get:async()=>sX(),store:async e=>{try{return dxe(e),!0}catch{return!1}},delete:async()=>aX(),storesInSessionFile:!0}}}var KB,uxe,wh,WB,cX,fl,uX,wS,Yu,vh,$B,myt,VB,cxe,xi,B2=P(()=>{"use strict";KB=require("child_process"),uxe=require("util"),wh=ve(require("fs")),WB=ve(require("os")),cX=ve(require("path"));FB();fl=(0,uxe.promisify)(KB.execFile),uX=cX.join(WB.homedir(),".visa-mcp"),wS=cX.join(uX,"session-token"),Yu="visa-cli",vh="session-token",$B="rc-access",myt=5e3,VB=class extends Error{constructor(t){super(t),this.name="CredentialAccessError"}};cxe=null;xi=class{static async getSessionToken(){if(_h())return Promise.resolve(oxe());let t=oX(),r=await t.get();if(r)return r;let n=sX();return n?(await t.store(n),n):null}static async saveSessionToken(t){if(_h())return;let r=oX();if(await r.store(t)){if(await r.get()===t){r.storesInSessionFile||aX();return}await r.delete()}if(dxe(t),sX()!==t)throw new Error("Failed to persist session token. "+(process.platform==="darwin"?'Check Keychain Access permissions for "visa-cli".':`Ensure ${uX} is writable.`))}static async getRcAccessToken(){return _h()?sxe():xyt()}static async saveRcAccessToken(t){_h()||await Eyt(t)}static async deleteSessionToken(){if(_h())return;await oX().delete(),aX()}static async clearAll(){await this.deleteSessionToken(),await Ayt()}}});var GB=g((sPr,Tyt)=>{Tyt.exports={name:"@visa/cli",version:"4.1.0-rc.29",description:"AI-powered payments for Claude Code",bin:{"visa-cli":"./bin/visa-cli.js",visa:"./bin/visa-cli.js"},scripts:{"sync:server-json":"node scripts/sync-server-json.mjs","check:server-json":"node scripts/sync-server-json.mjs --check",prebuild:"node scripts/sync-server-json.mjs && pnpm --filter @visa/money build && pnpm --filter @visa/crypto build && pnpm --filter subway-sdk build && pnpm --filter @visa-cli/tools build && pnpm --filter @visa/identity build && pnpm --filter @visa/wallet build && pnpm --filter @visa/agent-mail build && pnpm --filter @visa/wallet-tools build && pnpm --filter @visa/checkout-engine build",build:"tsc --noEmit && node esbuild.config.js",prepack:"node scripts/sync-server-json.mjs --check",dev:"tsc --watch",pretest:"pnpm build",start:"node dist/mcp-server/index.js",test:"jest --config jest.config.js","test:unit":"jest --config jest.config.js","test:unit:watch":"jest --config jest.config.js --watch","test:unit:coverage":"jest --config jest.config.js --coverage","test:smoke":"VISA_AUTH_URL=https://auth.visacli.sh jest --config jest.smoke.config.js","test:integration":"jest --config jest.integration.config.js","test:e2e":"jest --config jest.e2e.config.js","test:catalog-e2e":"jest --config jest.catalog-e2e.config.js","test:all":"npm run test:unit && npm run test:integration && npm run test:e2e",prepublishOnly:"npm run build && npm test",lint:"eslint src/**/*.ts",format:'prettier --write "src/**/*.ts"',"format:check":'prettier --check "src/**/*.ts"'},keywords:["visa","checkout","mcp","ai-agent","payments","click-to-pay","usdc","stablecoin"],author:"Visa Crypto Labs",license:"SEE LICENSE IN LICENSE",dependencies:{"@modelcontextprotocol/sdk":"^1.0.0","@ucp-js/sdk":"0.4.1",commander:"^12.1.0",zod:"^3.23.0"},optionalDependencies:{libp2p:"^3.3.4","@libp2p/tcp":"^11.0.22","@libp2p/crypto":"^5.1.20","@chainsafe/libp2p-noise":"^17.0.0","@chainsafe/libp2p-yamux":"^8.0.1","@multiformats/multiaddr":"^13.0.3",uint8arrays:"^6.1.1","playwright-core":"^1.48.2"},devDependencies:{"@visa/checkout-engine":"workspace:*","@visa/crypto":"workspace:*","@visa/identity":"workspace:*","subway-sdk":"workspace:*","@visa/money":"workspace:*","@visa/wallet":"workspace:*","@visa/wallet-tools":"workspace:*","@visa/observability":"workspace:*","@visa-cli/tools":"workspace:*","@changesets/changelog-git":"^0.2.1","@changesets/cli":"^2.31.0","@types/jest":"^30.0.0","@types/node":"^26.1.0","@typescript-eslint/eslint-plugin":"^8.65.0","@typescript-eslint/parser":"^8.65.0","@types/express":"^5.0.0",esbuild:"^0.28.1",express:"^4.21.0",eslint:"^10.0.2","eslint-config-prettier":"^10.1.8",jest:"^29.7.0",prettier:"^3.9.4","ts-jest":"^29.4.11",typescript:"^5.7.0"},engines:{node:">=18.0.0"},mcpName:"io.github.visa-crypto-labs/visa-cli",files:["bin/visa-cli.js","dist/","install.ps1","install.sh","native/visa-keychain.m","native/visa-keychain-win.cpp","native/build-win.bat","native/bin/win32-x64/visa-keychain-win.exe","server.json","README.md","LICENSE"]}});function xS(e=process.env,t=process.platform){return e.VISA_CLI_NO_BROWSER==="1"||e.VISA_CLI_NO_BROWSER==="true"?{headless:!0,reason:"VISA_CLI_NO_BROWSER is set"}:e.CI==="true"||e.CI==="1"?{headless:!0,reason:"CI environment detected"}:e.SSH_CONNECTION||e.SSH_TTY?{headless:!0,reason:"SSH session detected"}:t==="linux"&&!e.DISPLAY&&!e.WAYLAND_DISPLAY?{headless:!0,reason:"Linux with no $DISPLAY or $WAYLAND_DISPLAY"}:{headless:!1}}function Myt(e){let r=e.length+4;return[`\u250C${"\u2500".repeat(r)}\u2510`,`\u2502${" ".repeat(2)}${e}${" ".repeat(2)}\u2502`,`\u2514${"\u2500".repeat(r)}\u2518`].join(`
|
|
3
3
|
`)}function ES(e){if(typeof e!="string"||e.length===0)return null;let t;try{t=new URL(e)}catch{return null}return t.protocol!=="https:"&&t.protocol!=="http:"?null:t.toString()}function bxe(e,t){let r=ES(e);if(!r)return null;let n,i;try{n=new URL(r),i=new URL(t)}catch{return null}return n.origin===i.origin?r:null}function _xe(e,t){return t==="darwin"?{cmd:"open",args:[e]}:t==="win32"?{cmd:"rundll32.exe",args:["url.dll,FileProtocolHandler",e]}:t==="linux"?{cmd:"xdg-open",args:[e]}:null}function XB(e,t=process.platform){let r=ES(e);return r?_xe(r,t):null}function yxe(e,t){e(` Could not open browser automatically (${t.message}).`),e(" Open the URL above manually to continue."),e("")}async function H4(e,t={}){let r=t.log??(u=>console.log(u)),n=t.env??process.env,i=t.platform??process.platform,o=ES(e),s=t.spawn??((u,d,l)=>{(0,gxe.execFile)(u,d,p=>l(p))});r(""),r(" Sign in to Visa CLI by opening this URL in your browser:"),r("");for(let u of Myt(o??e).split(`
|
|
4
4
|
`))r(` ${u}`);if(r(""),!o){r(" (Auth URL is not a valid absolute http(s) URL \u2014 skipping browser auto-open.)"),r(" Open the URL above manually to continue."),r("");return}let a=xS(n,i);if(a.headless){r(` (${a.reason} \u2014 skipping browser auto-open.)`),r(" Open the URL above on any device with a browser. The CLI will"),r(" continue waiting for you to complete sign-in."),r("");return}let c=_xe(o,i);if(!c){r(` No known browser-open command for platform "${i}".`),r(" Open the URL above manually to continue."),r("");return}await new Promise(u=>{let d=l=>{l?yxe(r,l):(r(" Opened browser. Waiting for you to sign in..."),r("")),u()};try{s(c.cmd,c.args,d)}catch(l){yxe(r,l instanceof Error?l:new Error(String(l))),u()}})}var gxe,QB=P(()=>{"use strict";gxe=require("child_process")});var yN,CEe,kEe,CX,Ah,kX=P(()=>{"use strict";yN=ve(require("fs")),CEe=ve(require("path")),kEe=ve(require("os")),CX=CEe.join(kEe.homedir(),".visa-mcp"),Ah=class{static ensureConfigDir(){yN.existsSync(CX)||yN.mkdirSync(CX,{recursive:!0,mode:448})}static getConfigDir(){return CX}}});function zgt(){Xa.existsSync(BX)||Xa.mkdirSync(BX,{recursive:!0,mode:448})}function Hgt(){if(!RX){if(zgt(),Xa.existsSync(RS)&&Xa.statSync(RS).size>Lgt){let t=RS+".1";Xa.existsSync(t)&&Xa.unlinkSync(t),Xa.renameSync(RS,t)}RX=Xa.createWriteStream(RS,{flags:"a"})}return RX}function Fgt(e){return e==="WARN"||e==="ERROR"?!0:process.env.VISA_CLI_DEBUG==="1"}function gN(e,...t){let r=new Date().toISOString(),n=t.map(o=>typeof o=="string"?o:JSON.stringify(o,null,2)).join(" "),i=`[${r}] [${e}] ${n}
|
|
5
5
|
`;Fgt(e)&&process.stderr.write(i),Hgt().write(i)}var Xa,NX,REe,BX,RS,Lgt,RX,Re,eu=P(()=>{"use strict";Xa=ve(require("fs")),NX=ve(require("path")),REe=ve(require("os")),BX=NX.join(REe.homedir(),".visa-mcp"),RS=NX.join(BX,"mcp-server.log"),Lgt=5*1024*1024,RX=null;Re={debug:(...e)=>gN("DEBUG",...e),info:(...e)=>gN("INFO",...e),warn:(...e)=>gN("WARN",...e),error:(...e)=>gN("ERROR",...e)}});function BEe(e){let t=NEe.homedir();return t&&e.startsWith(t)?`~${e.slice(t.length)}`:e}function bN(){return jEe.join(Ah.getConfigDir(),$gt)}function UEe(e){if((0,UX.isIP)(e)!==4)return!1;let[t]=e.split(".").map(Number);return t===127}function Kgt(e){let t=e.match(/^::ffff:([0-9a-f]{1,4}):([0-9a-f]{1,4})$/i);if(!t)return!1;let r=Number.parseInt(t[1],16),n=Number.parseInt(t[2],16);if(!Number.isFinite(r)||!Number.isFinite(n))return!1;let i=[r>>8&255,r&255,n>>8&255,n&255].join(".");return UEe(i)}function Wgt(e){let t=e.toLowerCase().replace(/^\[(.*)\]$/,"$1");if(t==="localhost")return!0;let r=(0,UX.isIP)(t);return r===4?UEe(t):r===6?t==="::1"||Kgt(t):!1}function jX(e,t="auth.serverUrl"){let r;try{r=new URL(e)}catch{throw new Error(`${t} must be a valid URL (got: ${JSON.stringify(e)})`)}if(r.username||r.password)throw new Error(`${t} must not include username or password credentials`);if(r.protocol!=="https:"&&!(r.protocol==="http:"&&Wgt(r.hostname)))throw new Error(`${t} ${Vgt}`)}function _N(){let e=bN();if(!Sh.existsSync(e))return{};try{let t=Sh.readFileSync(e,"utf-8"),r=JSON.parse(t);return!r||typeof r!="object"||Array.isArray(r)?(Re.warn("settings:corrupt",{path:BEe(e),reason:"not_object"}),{}):r}catch(t){return Re.warn("settings:corrupt",{path:BEe(e),error:t?.message||String(t)}),{}}}function qEe(e){Ah.ensureConfigDir();let t=bN(),r=`${t}.tmp`,n=JSON.stringify(e,null,2)+`
|
|
6
|
-
`;Sh.writeFileSync(r,n,{mode:384}),Sh.renameSync(r,t)}function qX(e){let t=_N()[e];return typeof t=="string"?t:void 0}function MX(e){let t=_N()[e];return typeof t=="boolean"?t:void 0}function vN(e,t){let r=z2[e];if(!r)throw new hl(e);let n;if(r.type==="boolean")if(typeof t=="boolean")n=t;else if(typeof t=="string"){let o=t.toLowerCase();if(o==="true")n=!0;else if(o==="false")n=!1;else throw new Error(`${e} expects true or false (got: ${JSON.stringify(t)})`)}else throw new Error(`${e} expects a boolean (got: ${typeof t})`);else if(r.type==="number")if(typeof t=="number")n=t;else if(typeof t=="string"&&t.trim().length>0){let o=Number(t);if(!Number.isFinite(o))throw new Error(`${e} expects a number (got: ${JSON.stringify(t)})`);n=o}else throw new Error(`${e} expects a number (got: ${typeof t})`);else{if(typeof t!="string"||t.length===0)throw new Error(`${e} expects a non-empty string`);n=t}r.validate&&r.validate(n);let i=_N();return i[e]=n,qEe(i),{key:e,value:n,requiresRestart:!!r.requiresRestart,path:bN()}}function wN(e){let t=z2[e];if(!t)throw new hl(e);let r=_N(),n=e in r;return n&&(delete r[e],qEe(r)),{key:e,removed:n,requiresRestart:n&&!!t.requiresRestart,path:bN()}}function Ygt(e){return typeof e=="string"&&/-(?:rc|alpha|beta)\./i.test(e)}function Zgt(){try{let e=GB();return Ygt(e.version)}catch{return!1}}function Xgt(e){return e.envVar!==void 0&&e.envVar!==""?(jX(e.envVar,"VISA_AUTH_URL"),e.envVar):e.settingValue!==void 0?(jX(e.settingValue,"auth.serverUrl"),e.settingValue):e.isPrerelease?Jgt:Ggt}function ga(){return Xgt({envVar:process.env.VISA_AUTH_URL,settingValue:qX("auth.serverUrl"),isPrerelease:Zgt()})}function MEe(){let e=process.env.VISA_SUPPRESS_BROWSER;return e!==void 0?e==="true":MX("ui.suppressBrowser")??!1}var Sh,UX,NEe,jEe,$gt,Vgt,z2,hl,Ggt,Jgt,H2=P(()=>{"use strict";Sh=ve(require("fs")),UX=require("node:net"),NEe=ve(require("os")),jEe=ve(require("path"));kX();eu();$gt="settings.json",Vgt="must use https unless it points at localhost/loopback for local development";z2={"auth.serverUrl":{type:"string",description:"Auth server base URL. Override for staging / self-hosted backends.",requiresRestart:!0,validate:e=>{if(typeof e!="string")throw new Error("auth.serverUrl must be a string");jX(e)}},"ui.suppressBrowser":{type:"boolean",description:"When true, the CLI/MCP server stops auto-opening result URLs in your browser."}};hl=class extends Error{constructor(t){let r=Object.keys(z2).sort().join(", ");super(`Unknown setting "${t}". Settable keys: ${r}.`),this.name="UnknownSettingKeyError"}};Ggt="https://auth.visacli.sh",Jgt="https://auth-visa-code-preview.up.railway.app"});function DX(e=ibt){return/^\d+\.\d+\.\d+$/.test(e)&&e!=="0.0.0"}function DEe(e){let t=e.length;for(;t>0&&e.charCodeAt(t-1)===47;)t--;return e.slice(0,t)}function yl(e=process.env){let t=e.VISA_VERIFY_WEB_URL?.trim();return DEe(t||obt)}function EN(e){return`${DEe(e)}${sbt}`}var ibt,obt,sbt,LX=P(()=>{"use strict";ibt="4.1.0-rc.
|
|
6
|
+
`;Sh.writeFileSync(r,n,{mode:384}),Sh.renameSync(r,t)}function qX(e){let t=_N()[e];return typeof t=="string"?t:void 0}function MX(e){let t=_N()[e];return typeof t=="boolean"?t:void 0}function vN(e,t){let r=z2[e];if(!r)throw new hl(e);let n;if(r.type==="boolean")if(typeof t=="boolean")n=t;else if(typeof t=="string"){let o=t.toLowerCase();if(o==="true")n=!0;else if(o==="false")n=!1;else throw new Error(`${e} expects true or false (got: ${JSON.stringify(t)})`)}else throw new Error(`${e} expects a boolean (got: ${typeof t})`);else if(r.type==="number")if(typeof t=="number")n=t;else if(typeof t=="string"&&t.trim().length>0){let o=Number(t);if(!Number.isFinite(o))throw new Error(`${e} expects a number (got: ${JSON.stringify(t)})`);n=o}else throw new Error(`${e} expects a number (got: ${typeof t})`);else{if(typeof t!="string"||t.length===0)throw new Error(`${e} expects a non-empty string`);n=t}r.validate&&r.validate(n);let i=_N();return i[e]=n,qEe(i),{key:e,value:n,requiresRestart:!!r.requiresRestart,path:bN()}}function wN(e){let t=z2[e];if(!t)throw new hl(e);let r=_N(),n=e in r;return n&&(delete r[e],qEe(r)),{key:e,removed:n,requiresRestart:n&&!!t.requiresRestart,path:bN()}}function Ygt(e){return typeof e=="string"&&/-(?:rc|alpha|beta)\./i.test(e)}function Zgt(){try{let e=GB();return Ygt(e.version)}catch{return!1}}function Xgt(e){return e.envVar!==void 0&&e.envVar!==""?(jX(e.envVar,"VISA_AUTH_URL"),e.envVar):e.settingValue!==void 0?(jX(e.settingValue,"auth.serverUrl"),e.settingValue):e.isPrerelease?Jgt:Ggt}function ga(){return Xgt({envVar:process.env.VISA_AUTH_URL,settingValue:qX("auth.serverUrl"),isPrerelease:Zgt()})}function MEe(){let e=process.env.VISA_SUPPRESS_BROWSER;return e!==void 0?e==="true":MX("ui.suppressBrowser")??!1}var Sh,UX,NEe,jEe,$gt,Vgt,z2,hl,Ggt,Jgt,H2=P(()=>{"use strict";Sh=ve(require("fs")),UX=require("node:net"),NEe=ve(require("os")),jEe=ve(require("path"));kX();eu();$gt="settings.json",Vgt="must use https unless it points at localhost/loopback for local development";z2={"auth.serverUrl":{type:"string",description:"Auth server base URL. Override for staging / self-hosted backends.",requiresRestart:!0,validate:e=>{if(typeof e!="string")throw new Error("auth.serverUrl must be a string");jX(e)}},"ui.suppressBrowser":{type:"boolean",description:"When true, the CLI/MCP server stops auto-opening result URLs in your browser."}};hl=class extends Error{constructor(t){let r=Object.keys(z2).sort().join(", ");super(`Unknown setting "${t}". Settable keys: ${r}.`),this.name="UnknownSettingKeyError"}};Ggt="https://auth.visacli.sh",Jgt="https://auth-visa-code-preview.up.railway.app"});function DX(e=ibt){return/^\d+\.\d+\.\d+$/.test(e)&&e!=="0.0.0"}function DEe(e){let t=e.length;for(;t>0&&e.charCodeAt(t-1)===47;)t--;return e.slice(0,t)}function yl(e=process.env){let t=e.VISA_VERIFY_WEB_URL?.trim();return DEe(t||obt)}function EN(e){return`${DEe(e)}${sbt}`}var ibt,obt,sbt,LX=P(()=>{"use strict";ibt="4.1.0-rc.29",obt="https://app.visacli.sh",sbt="/agent/enroll"});function Ubt(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name==="Uint8Array"&&"BYTES_PER_ELEMENT"in e&&e.BYTES_PER_ELEMENT===1}function CAe(e,t,r=""){let n=Ubt(e),i=e?.length,o=t!==void 0;if(!n||o&&i!==t){let s=r&&`"${r}" `,a=o?` of length ${t}`:"",c=n?`length=${i}`:`type=${typeof e}`,u=s+"expected Uint8Array"+a+", got "+c;throw n?new RangeError(u):new TypeError(u)}return e}function lAe(e,t=!0){if(e.destroyed)throw new Error("Hash instance has been destroyed");if(t&&e.finished)throw new Error("Hash#digest() has already been called")}function qbt(e,t){CAe(e,void 0,"digestInto() output");let r=t.outputLen;if(e.length<r)throw new RangeError('"digestInto() output" expected to be of length >='+r)}function YX(...e){for(let t=0;t<e.length;t++)e[t].fill(0)}function KX(e){return new DataView(e.buffer,e.byteOffset,e.byteLength)}function Mbt(e,t={}){let r=(i,o)=>e(o).update(i).digest(),n=e(void 0);return r.outputLen=n.outputLen,r.blockLen=n.blockLen,r.canXOF=n.canXOF,r.create=i=>e(i),Object.assign(r,t),Object.freeze(r)}function zbt(e,t=!1){return t?{h:Number(e&CN),l:Number(e>>pAe&CN)}:{h:Number(e>>pAe&CN)|0,l:Number(e&CN)|0}}function Hbt(e,t=!1){let r=e.length,n=new Uint32Array(r),i=new Uint32Array(r);for(let o=0;o<r;o++){let{h:s,l:a}=zbt(e[o],t);[n[o],i[o]]=[s,a]}return[n,i]}function Zm(e,t,r,n){let i=(t>>>0)+(n>>>0);return{h:e+r+(i/2**32|0)|0,l:i|0}}function e2t(){return Rbt.randomSecretKey()}function NS(e){return Pbt(e)}function MN(){let e=e2t();return{secretKey:e,publicKey:NS(e)}}function RAe(e){if(e.length!==yAe)throw new Error(`Ed25519 seed must be ${yAe} bytes, got ${e.length}`);return{secretKey:e,publicKey:NS(e)}}function Q4(e,t){return Cbt(t,e)}function t2t(e){let t="";for(let r=0;r<e.length;r++)t+=String.fromCharCode(e[r]);return btoa(t)}function r2t(e){let t=atob(e),r=new Uint8Array(t.length);for(let n=0;n<t.length;n++)r[n]=t.charCodeAt(n);return r}function ZX(e){return t2t(e).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}function n2t(e){let t=e.length%4===0?0:4-e.length%4,r=e.replace(/-/g,"+").replace(/_/g,"/")+"=".repeat(t);return r2t(r)}function i2t(e){if(e.kty!=="OKP"||e.crv!=="Ed25519")throw new Error("not an Ed25519 OKP JWK")}function ew(e){let t=NS(e);return{kty:"OKP",crv:"Ed25519",x:ZX(t),d:ZX(e)}}function kh(e){return{kty:"OKP",crv:"Ed25519",x:ZX(e)}}function jS(e){if(i2t(e),!e.d)throw new Error("Ed25519 JWK has no private component (d)");return n2t(e.d)}function jAe(){return US.default.randomBytes(32).toString("base64url")}function UAe(e){if(!/^[A-Za-z0-9_-]{43}$/.test(e))throw new Error("pairing verifier must be 32 unpadded base64url bytes");return aQ(e)}function s2t(e){return e.toUpperCase().replace(/[^A-Z0-9]/g,"")}function a2t(e){let t=s2t(e);return`${t.slice(0,4)}-${t.slice(4)}`}function qAe(){return US.default.randomBytes(32).toString("base64url")}function sQ(e){if(!/^[A-Za-z0-9_-]{43}$/.test(e))throw new Error("claim token must be 32 unpadded base64url bytes");return aQ(`visa-agent-pairing-claim-token:v1:${e}`)}function DN(e,t){sQ(t);let r=US.default.createHash("sha256").update(`visa-agent-pairing-derived-code:v1:${e}:${t}`,"utf8").digest(),n="";for(let i=0;i<o2t;i+=1)n+=oQ[r[i]&NAe];return a2t(n)}function MAe(e){return zAe("visa-agent-pairing-claim:v1",{agentJkt:e.agentJkt,claimTokenHash:e.claimTokenHash,contextLabel:e.runtime.contextLabel,pairingId:e.pairingId,platform:e.runtime.platform??"",runtime:e.runtime.runtime,serverNonce:e.serverNonce,walletPublicKey:e.walletPublicKey})}function DAe(e){return zAe("visa-agent-pairing-activation:v1",{agentJkt:e.agentJkt,artifactHash:e.artifactHash,pairingId:e.pairingId,termsHash:e.termsHash})}function LAe(e){return aQ(`visa-agent-pairing-artifacts:v1:${XX(e)}`)}function aQ(e){return US.default.createHash("sha256").update(e,"utf8").digest("base64url")}function zAe(e,t){return`${e}
|
|
7
7
|
${Object.entries(t).sort(([r],[n])=>r.localeCompare(n)).map(([r,n])=>`${r}=${n}`).join(`
|
|
8
8
|
`)}`}function XX(e){if(e===null||typeof e!="object")return JSON.stringify(e);if(Array.isArray(e))return`[${e.map(XX).join(",")}]`;let t=e;return`{${Object.keys(t).sort().map(r=>`${JSON.stringify(r)}:${XX(t[r])}`).join(",")}}`}var US,gAe,NN,BN,iAe,oAe,FX,$X,gbt,Z4,bbt,Qo,_bt,vbt,wbt,zp,qN,QX,bAe,eQ,Ym,sAe,tQ,_Ae,xbt,X4,vAe,jN,$2,gn,aAe,Fe,wAe,xAe,EAe,AAe,VX,WX,BS,W2,K2,SAe,TAe,Lp,Ebt,cAe,Abt,GX,Sbt,rQ,PAe,Tbt,nQ,Pbt,Ibt,Obt,Cbt,iQ,IAe,kbt,Rbt,UN,Bbt,OAe,JX,Nbt,uAe,dAe,jbt,Dbt,Lbt,js,CN,pAe,fAe,mAe,J4,Y4,kN,RN,Fbt,$bt,Vbt,Kbt,Wbt,Gbt,kAe,Jbt,Ybt,Oh,Ch,Zbt,Xbt,Qbt,hAe,yAe,GPr,BAe,JPr,YPr,ZPr,XPr,oQ,o2t,NAe,G2=P(()=>{"use strict";US=ve(require("node:crypto"),1),gAe=Object.freeze({p:0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffedn,n:0x1000000000000000000000000000000014def9dea2f79cd65812631a5cf5d3edn,h:8n,a:0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffecn,d:0x52036cee2b6ffe738cc740797779e89800700a4d4141d8ab75eb4dca135978a3n,Gx:0x216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51an,Gy:0x6666666666666666666666666666666666666666666666666666666666666658n}),{p:NN,n:BN,Gx:iAe,Gy:oAe,a:FX,d:$X,h:gbt}=gAe,Z4=32,bbt=(...e)=>{"captureStackTrace"in Error&&typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(...e)},Qo=(e="")=>{let t=new Error(e);throw bbt(t,Qo),t},_bt=e=>typeof e=="bigint",vbt=e=>typeof e=="string",wbt=e=>e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name==="Uint8Array"&&"BYTES_PER_ELEMENT"in e&&e.BYTES_PER_ELEMENT===1,zp=(e,t,r="")=>{let n=wbt(e),i=e?.length,o=t!==void 0;if(!n||o&&i!==t){let s=r&&`"${r}" `,a=o?` of length ${t}`:"",c=n?`length=${i}`:`type=${typeof e}`,u=s+"expected Uint8Array"+a+", got "+c;throw n?new RangeError(u):new TypeError(u)}return e},qN=e=>new Uint8Array(e),QX=e=>Uint8Array.from(e),bAe=(e,t)=>e.toString(16).padStart(t,"0"),eQ=e=>Array.from(zp(e)).map(t=>bAe(t,2)).join(""),Ym={_0:48,_9:57,A:65,F:70,a:97,f:102},sAe=e=>{if(e>=Ym._0&&e<=Ym._9)return e-Ym._0;if(e>=Ym.A&&e<=Ym.F)return e-(Ym.A-10);if(e>=Ym.a&&e<=Ym.f)return e-(Ym.a-10)},tQ=e=>{let t="hex invalid";if(!vbt(e))return Qo(t);let r=e.length,n=r/2;if(r%2)return Qo(t);let i=qN(n);for(let o=0,s=0;o<n;o++,s+=2){let a=sAe(e.charCodeAt(s)),c=sAe(e.charCodeAt(s+1));if(a===void 0||c===void 0)return Qo(t);i[o]=a*16+c}return i},_Ae=()=>globalThis?.crypto,xbt=()=>_Ae()?.subtle??Qo("crypto.subtle must be defined, consider polyfill"),X4=(...e)=>{let t=0;for(let i of e)t+=zp(i).length;let r=qN(t),n=0;return e.forEach(i=>{r.set(i,n),n+=i.length}),r},vAe=(e=Z4)=>_Ae().getRandomValues(qN(e)),jN=BigInt,$2=(e,t,r,n="bad number: out of range")=>{if(!_bt(e))throw new TypeError(n);if(t<=e&&e<r)return e;throw new RangeError(n)},gn=(e,t=NN)=>{let r=e%t;return r>=0n?r:t+r},aAe=(1n<<255n)-1n,Fe=e=>{e<0n&&Qo("negative coordinate");let t=(e>>255n)*19n+(e&aAe);return t=(t>>255n)*19n+(t&aAe),t%NN},wAe=e=>gn(e,BN),xAe=(e,t)=>{(e===0n||t<=0n)&&Qo("no inverse n="+e+" mod="+t);let r=gn(e,t),n=t,i=0n,o=1n,s=1n,a=0n;for(;r!==0n;){let c=n/r,u=n%r,d=i-s*c,l=o-a*c;n=r,r=u,i=s,o=a,s=d,a=l}return n===1n?gn(i,t):Qo("no inverse")},EAe=e=>{let t=IAe[e];return typeof t!="function"&&Qo("hashes."+e+" not set"),t},AAe=e=>zp(e,64,"digest"),VX=e=>e instanceof BS?e:Qo("Point expected"),WX=2n**256n,BS=class V2{static BASE;static ZERO;X;Y;Z;T;constructor(t,r,n,i){let o=WX;this.X=$2(t,0n,o),this.Y=$2(r,0n,o),this.Z=$2(n,1n,o),this.T=$2(i,0n,o),Object.freeze(this)}static CURVE(){return gAe}static fromAffine(t){return new V2(t.x,t.y,1n,Fe(t.x*t.y))}static fromBytes(t,r=!1){let n=$X,i=QX(zp(t,Z4)),o=t[31];i[31]=o&-129;let s=TAe(i);$2(s,0n,r?WX:NN);let c=Fe(s*s),u=gn(c-1n),d=Fe(n*c+1n),{isValid:l,value:p}=Abt(u,d);l||Qo("bad point: y not sqrt");let f=(p&1n)===1n,m=(o&128)!==0;return!r&&p===0n&&m&&Qo("bad point: x==0, isLastByteOdd"),m!==f&&(p=gn(-p)),new V2(p,s,1n,Fe(p*s))}static fromHex(t,r){return V2.fromBytes(tQ(t),r)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}assertValidity(){let t=FX,r=$X,n=this;if(n.is0())return Qo("bad point: ZERO");let{X:i,Y:o,Z:s,T:a}=n,c=Fe(i*i),u=Fe(o*o),d=Fe(s*s),l=Fe(d*d),p=Fe(c*t),f=Fe(d*(p+u)),m=gn(l+Fe(r*Fe(c*u)));if(f!==m)return Qo("bad point: equation left != right (1)");let h=Fe(i*o),y=Fe(s*a);return h!==y?Qo("bad point: equation left != right (2)"):this}equals(t){let{X:r,Y:n,Z:i}=this,{X:o,Y:s,Z:a}=VX(t),c=Fe(r*a),u=Fe(o*i),d=Fe(n*a),l=Fe(s*i);return c===u&&d===l}is0(){return this.equals(K2)}negate(){return new V2(gn(-this.X),this.Y,this.Z,gn(-this.T))}double(){let{X:t,Y:r,Z:n}=this,i=FX,o=Fe(t*t),s=Fe(r*r),a=Fe(2n*n*n),c=Fe(i*o),u=gn(t+r),d=gn(Fe(u*u)-o-s),l=gn(c+s),p=gn(l-a),f=gn(c-s),m=Fe(d*p),h=Fe(l*f),y=Fe(d*f),w=Fe(p*l);return new V2(m,h,w,y)}add(t){let{X:r,Y:n,Z:i,T:o}=this,{X:s,Y:a,Z:c,T:u}=VX(t),d=FX,l=$X,p=Fe(r*s),f=Fe(n*a),m=Fe(Fe(o*l)*u),h=Fe(i*c),y=gn(Fe(gn(r+n)*gn(s+a))-p-f),w=gn(h-m),x=gn(h+m),_=gn(f-Fe(d*p)),v=Fe(y*w),E=Fe(x*_),A=Fe(y*_),S=Fe(w*x);return new V2(v,E,S,A)}subtract(t){return this.add(VX(t).negate())}multiply(t,r=!0){if(!r&&t===0n||($2(t,1n,BN),!r&&this.is0()))return K2;if(t===1n)return this;if(this.equals(W2))return jbt(t).p;let n=K2,i=W2;for(let o=this;t>0n;o=o.double(),t>>=1n)t&1n?n=n.add(o):r&&(i=i.add(o));return n}multiplyUnsafe(t){return this.multiply(t,!1)}toAffine(){let{X:t,Y:r,Z:n}=this;if(this.equals(K2))return{x:0n,y:1n};let i=xAe(n,NN);Fe(n*i)!==1n&&Qo("invalid inverse");let o=Fe(t*i),s=Fe(r*i);return{x:o,y:s}}toBytes(){let{x:t,y:r}=this.toAffine(),n=SAe(r);return n[31]|=t&1n?128:0,n}toHex(){return eQ(this.toBytes())}clearCofactor(){return this.multiply(jN(gbt),!1)}isSmallOrder(){return this.clearCofactor().is0()}isTorsionFree(){let t=this.multiply(BN/2n,!1).double();return BN%2n&&(t=t.add(this)),t.is0()}},W2=new BS(iAe,oAe,1n,gn(iAe*oAe)),K2=new BS(0n,1n,1n,0n);BS.BASE=W2;BS.ZERO=K2;SAe=e=>tQ(bAe($2(e,0n,WX),64)).reverse(),TAe=e=>jN("0x"+eQ(QX(zp(e)).reverse())),Lp=(e,t)=>{let r=e;for(;t-- >0n;)r=Fe(r*r);return r},Ebt=e=>{let t=Fe(e*e),r=Fe(t*e),n=Fe(Lp(r,2n)*r),i=Fe(Lp(n,1n)*e),o=Fe(Lp(i,5n)*i),s=Fe(Lp(o,10n)*o),a=Fe(Lp(s,20n)*s),c=Fe(Lp(a,40n)*a),u=Fe(Lp(c,80n)*c),d=Fe(Lp(u,80n)*c),l=Fe(Lp(d,10n)*o);return{pow_p_5_8:Fe(Lp(l,2n)*e),b2:r}},cAe=0x2b8324804fc1df0b2b4d00993dfbd7a72f431806ad2fe478c4ee1b274a0ea0b0n,Abt=(e,t)=>{let r=Fe(t*Fe(t*t)),n=Fe(Fe(r*r)*t),i=Ebt(Fe(e*n)).pow_p_5_8,o=Fe(e*Fe(r*i)),s=Fe(t*Fe(o*o)),a=o,c=Fe(o*cAe),u=s===e,d=s===gn(-e),l=s===gn(-e*cAe);return u&&(o=a),(d||l)&&(o=c),(gn(o)&1n)===1n&&(o=gn(-o)),{isValid:u||d,value:o}},GX=e=>wAe(TAe(e)),Sbt=(...e)=>Promise.resolve(EAe("sha512Async")(X4(...e))).then(AAe),rQ=(...e)=>AAe(EAe("sha512")(X4(...e))),PAe=e=>{let t=QX(e),r=t.slice(0,32);r[0]&=248,r[31]&=127,r[31]|=64;let n=t.slice(32,64),i=GX(r),o=W2.multiply(i),s=o.toBytes();return{head:r,prefix:n,scalar:i,point:o,pointBytes:s}},Tbt=e=>Sbt(zp(e,Z4)).then(PAe),nQ=e=>PAe(rQ(zp(e,Z4))),Pbt=e=>nQ(e).pointBytes,Ibt=e=>e.finish(rQ(e.hashable)),Obt=(e,t,r)=>{let{pointBytes:n,scalar:i}=e,o=GX(t),s=W2.multiply(o).toBytes();return{hashable:X4(s,n,r),finish:u=>{let d=wAe(o+GX(u)*i);return zp(X4(s,SAe(d)),64)}}},Cbt=(e,t)=>{let r=zp(e),n=nQ(t),i=rQ(n.prefix,r);return Ibt(Obt(n,i,r))},iQ=Object.freeze({bytesToHex:eQ,hexToBytes:tQ,concatBytes:X4,mod:gn,invert:xAe,randomBytes:vAe}),IAe={sha512Async:async e=>{let t=xbt(),r=X4(e);return qN(await t.digest("SHA-512",r.buffer))},sha512:void 0},kbt=e=>(e=e===void 0?vAe(Z4):e,zp(e,Z4)),Rbt=Object.freeze({getExtendedPublicKeyAsync:Tbt,getExtendedPublicKey:nQ,randomSecretKey:kbt}),UN=8,Bbt=256,OAe=Math.ceil(Bbt/UN)+1,JX=2**(UN-1),Nbt=()=>{let e=[],t=W2,r=t;for(let n=0;n<OAe;n++){r=t,e.push(r);for(let i=1;i<JX;i++)r=r.add(t),e.push(r);t=r.double()}return e},uAe=void 0,dAe=(e,t)=>{let r=t.negate();return e?r:t},jbt=e=>{let t=uAe||(uAe=Nbt()),r=K2,n=W2,i=2**UN,o=i,s=jN(i-1),a=jN(UN);for(let c=0;c<OAe;c++){let u=Number(e&s);e>>=a,u>JX&&(u-=o,e+=1n);let d=c*JX,l=d,p=d+Math.abs(u)-1,f=c%2!==0,m=u<0;u===0?n=n.add(dAe(f,t[l])):r=r.add(dAe(m,t[p]))}return e!==0n&&Qo("invalid wnaf"),{p:r,f:n}};Dbt=e=>({oid:Uint8Array.from([6,9,96,134,72,1,101,3,4,2,e])}),Lbt=class{blockLen;outputLen;canXOF=!1;padOffset;isLE;buffer;view;finished=!1;length=0;pos=0;destroyed=!1;constructor(e,t,r,n){this.blockLen=e,this.outputLen=t,this.padOffset=r,this.isLE=n,this.buffer=new Uint8Array(e),this.view=KX(this.buffer)}update(e){lAe(this),CAe(e);let{view:t,buffer:r,blockLen:n}=this,i=e.length;for(let o=0;o<i;){let s=Math.min(n-this.pos,i-o);if(s===n){let a=KX(e);for(;n<=i-o;o+=n)this.process(a,o);continue}r.set(e.subarray(o,o+s),this.pos),this.pos+=s,o+=s,this.pos===n&&(this.process(t,0),this.pos=0)}return this.length+=e.length,this.roundClean(),this}digestInto(e){lAe(this),qbt(e,this),this.finished=!0;let{buffer:t,view:r,blockLen:n,isLE:i}=this,{pos:o}=this;t[o++]=128,YX(this.buffer.subarray(o)),this.padOffset>n-o&&(this.process(r,0),o=0);for(let d=o;d<n;d++)t[d]=0;r.setBigUint64(n-8,BigInt(this.length*8),i),this.process(r,0);let s=KX(e),a=this.outputLen;if(a%4)throw new Error("_sha2: outputLen must be aligned to 32bit");let c=a/4,u=this.get();if(c>u.length)throw new Error("_sha2: outputLen bigger than state");for(let d=0;d<c;d++)s.setUint32(4*d,u[d],i)}digest(){let{buffer:e,outputLen:t}=this;this.digestInto(e);let r=e.slice(0,t);return this.destroy(),r}_cloneInto(e){e||=new this.constructor,e.set(...this.get());let{blockLen:t,buffer:r,length:n,finished:i,destroyed:o,pos:s}=this;return e.destroyed=o,e.finished=i,e.length=n,e.pos=s,n%t&&e.buffer.set(r),e}clone(){return this._cloneInto()}},js=Uint32Array.from([1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209]),CN=BigInt(2**32-1),pAe=BigInt(32);fAe=(e,t,r)=>e>>>r,mAe=(e,t,r)=>e<<32-r|t>>>r,J4=(e,t,r)=>e>>>r|t<<32-r,Y4=(e,t,r)=>e<<32-r|t>>>r,kN=(e,t,r)=>e<<64-r|t>>>r-32,RN=(e,t,r)=>e>>>r-32|t<<64-r;Fbt=(e,t,r)=>(e>>>0)+(t>>>0)+(r>>>0),$bt=(e,t,r,n)=>t+r+n+(e/2**32|0)|0,Vbt=(e,t,r,n)=>(e>>>0)+(t>>>0)+(r>>>0)+(n>>>0),Kbt=(e,t,r,n,i)=>t+r+n+i+(e/2**32|0)|0,Wbt=(e,t,r,n,i)=>(e>>>0)+(t>>>0)+(r>>>0)+(n>>>0)+(i>>>0),Gbt=(e,t,r,n,i,o)=>t+r+n+i+o+(e/2**32|0)|0,kAe=Hbt(["0x428a2f98d728ae22","0x7137449123ef65cd","0xb5c0fbcfec4d3b2f","0xe9b5dba58189dbbc","0x3956c25bf348b538","0x59f111f1b605d019","0x923f82a4af194f9b","0xab1c5ed5da6d8118","0xd807aa98a3030242","0x12835b0145706fbe","0x243185be4ee4b28c","0x550c7dc3d5ffb4e2","0x72be5d74f27b896f","0x80deb1fe3b1696b1","0x9bdc06a725c71235","0xc19bf174cf692694","0xe49b69c19ef14ad2","0xefbe4786384f25e3","0x0fc19dc68b8cd5b5","0x240ca1cc77ac9c65","0x2de92c6f592b0275","0x4a7484aa6ea6e483","0x5cb0a9dcbd41fbd4","0x76f988da831153b5","0x983e5152ee66dfab","0xa831c66d2db43210","0xb00327c898fb213f","0xbf597fc7beef0ee4","0xc6e00bf33da88fc2","0xd5a79147930aa725","0x06ca6351e003826f","0x142929670a0e6e70","0x27b70a8546d22ffc","0x2e1b21385c26c926","0x4d2c6dfc5ac42aed","0x53380d139d95b3df","0x650a73548baf63de","0x766a0abb3c77b2a8","0x81c2c92e47edaee6","0x92722c851482353b","0xa2bfe8a14cf10364","0xa81a664bbc423001","0xc24b8b70d0f89791","0xc76c51a30654be30","0xd192e819d6ef5218","0xd69906245565a910","0xf40e35855771202a","0x106aa07032bbd1b8","0x19a4c116b8d2d0c8","0x1e376c085141ab53","0x2748774cdf8eeb99","0x34b0bcb5e19b48a8","0x391c0cb3c5c95a63","0x4ed8aa4ae3418acb","0x5b9cca4f7763e373","0x682e6ff3d6b2b8a3","0x748f82ee5defb2fc","0x78a5636f43172f60","0x84c87814a1f0ab72","0x8cc702081a6439ec","0x90befffa23631e28","0xa4506cebde82bde9","0xbef9a3f7b2c67915","0xc67178f2e372532b","0xca273eceea26619c","0xd186b8c721c0c207","0xeada7dd6cde0eb1e","0xf57d4f7fee6ed178","0x06f067aa72176fba","0x0a637dc5a2c898a6","0x113f9804bef90dae","0x1b710b35131c471b","0x28db77f523047d84","0x32caab7b40c72493","0x3c9ebe0a15c9bebc","0x431d67c49c100d4c","0x4cc5d4becb3e42b6","0x597f299cfc657e2a","0x5fcb6fab3ad6faec","0x6c44198c4a475817"].map(e=>BigInt(e))),Jbt=kAe[0],Ybt=kAe[1],Oh=new Uint32Array(80),Ch=new Uint32Array(80),Zbt=class extends Lbt{constructor(e){super(128,e,16,!1)}get(){let{Ah:e,Al:t,Bh:r,Bl:n,Ch:i,Cl:o,Dh:s,Dl:a,Eh:c,El:u,Fh:d,Fl:l,Gh:p,Gl:f,Hh:m,Hl:h}=this;return[e,t,r,n,i,o,s,a,c,u,d,l,p,f,m,h]}set(e,t,r,n,i,o,s,a,c,u,d,l,p,f,m,h){this.Ah=e|0,this.Al=t|0,this.Bh=r|0,this.Bl=n|0,this.Ch=i|0,this.Cl=o|0,this.Dh=s|0,this.Dl=a|0,this.Eh=c|0,this.El=u|0,this.Fh=d|0,this.Fl=l|0,this.Gh=p|0,this.Gl=f|0,this.Hh=m|0,this.Hl=h|0}process(e,t){for(let x=0;x<16;x++,t+=4)Oh[x]=e.getUint32(t),Ch[x]=e.getUint32(t+=4);for(let x=16;x<80;x++){let _=Oh[x-15]|0,v=Ch[x-15]|0,E=J4(_,v,1)^J4(_,v,8)^fAe(_,v,7),A=Y4(_,v,1)^Y4(_,v,8)^mAe(_,v,7),S=Oh[x-2]|0,C=Ch[x-2]|0,I=J4(S,C,19)^kN(S,C,61)^fAe(S,C,6),k=Y4(S,C,19)^RN(S,C,61)^mAe(S,C,6),q=Vbt(A,k,Ch[x-7],Ch[x-16]),j=Kbt(q,E,I,Oh[x-7],Oh[x-16]);Oh[x]=j|0,Ch[x]=q|0}let{Ah:r,Al:n,Bh:i,Bl:o,Ch:s,Cl:a,Dh:c,Dl:u,Eh:d,El:l,Fh:p,Fl:f,Gh:m,Gl:h,Hh:y,Hl:w}=this;for(let x=0;x<80;x++){let _=J4(d,l,14)^J4(d,l,18)^kN(d,l,41),v=Y4(d,l,14)^Y4(d,l,18)^RN(d,l,41),E=d&p^~d&m,A=l&f^~l&h,S=Wbt(w,v,A,Ybt[x],Ch[x]),C=Gbt(S,y,_,E,Jbt[x],Oh[x]),I=S|0,k=J4(r,n,28)^kN(r,n,34)^kN(r,n,39),q=Y4(r,n,28)^RN(r,n,34)^RN(r,n,39),j=r&i^r&s^i&s,U=n&o^n&a^o&a;y=m|0,w=h|0,m=p|0,h=f|0,p=d|0,f=l|0,{h:d,l}=Zm(c|0,u|0,C|0,I|0),c=s|0,u=a|0,s=i|0,a=o|0,i=r|0,o=n|0;let B=Fbt(I,q,U);r=$bt(B,C,k,j),n=B|0}({h:r,l:n}=Zm(this.Ah|0,this.Al|0,r|0,n|0)),{h:i,l:o}=Zm(this.Bh|0,this.Bl|0,i|0,o|0),{h:s,l:a}=Zm(this.Ch|0,this.Cl|0,s|0,a|0),{h:c,l:u}=Zm(this.Dh|0,this.Dl|0,c|0,u|0),{h:d,l}=Zm(this.Eh|0,this.El|0,d|0,l|0),{h:p,l:f}=Zm(this.Fh|0,this.Fl|0,p|0,f|0),{h:m,l:h}=Zm(this.Gh|0,this.Gl|0,m|0,h|0),{h:y,l:w}=Zm(this.Hh|0,this.Hl|0,y|0,w|0),this.set(r,n,i,o,s,a,c,u,d,l,p,f,m,h,y,w)}roundClean(){YX(Oh,Ch)}destroy(){this.destroyed=!0,YX(this.buffer),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}},Xbt=class extends Zbt{Ah=js[0]|0;Al=js[1]|0;Bh=js[2]|0;Bl=js[3]|0;Ch=js[4]|0;Cl=js[5]|0;Dh=js[6]|0;Dl=js[7]|0;Eh=js[8]|0;El=js[9]|0;Fh=js[10]|0;Fl=js[11]|0;Gh=js[12]|0;Gl=js[13]|0;Hh=js[14]|0;Hl=js[15]|0;constructor(){super(64)}},Qbt=Mbt(()=>new Xbt,Dbt(3)),hAe=IAe;hAe.sha512||(hAe.sha512=e=>Qbt(e));yAe=32;GPr=iQ.bytesToHex,BAe=iQ.hexToBytes,JPr=iQ.concatBytes;YPr=new TextEncoder;ZPr=BAe("302e020100300506032b657004220420"),XPr=BAe("302a300506032b6570032100"),oQ="ABCDEFGHJKLMNPQRSTUVWXYZ23456789",o2t=8,NAe=oQ.length-1;if((oQ.length&NAe)!==0)throw new Error("agent pairing code alphabet must contain a power-of-two number of symbols");});var KAe={};Mi(KAe,{BindingIssuanceError:()=>LN,CardRequiredError:()=>Xm,buildIssuanceRequest:()=>VAe,jkt:()=>tw,proofPayload:()=>$Ae,readSeed:()=>zN,requestVisaBinding:()=>cQ});function tw(e){let t=JSON.stringify({crv:e.crv,kty:e.kty,x:e.x});return HAe.createHash("sha256").update(t,"utf8").digest("base64url")}function $Ae(e,t,r){return`visa-agent-binding:v1:${e}:${t}:${r}`}function VAe(e,t,r="visa",n=Math.floor(Date.now()/1e3)){let i=kh(NS(e)),o=Buffer.from($Ae(t,tw(i),n),"utf8"),s=Buffer.from(Q4(e,o)).toString("base64url");return{name:t,mesh:r,mode:"card",agent_pubkey:i,proof:{ts:n,sig:s}}}async function cQ(e){let t=VAe(e.seed,e.name,e.mesh??"visa",e.nowSec),r=e.fetchImpl??fetch,n=`${e.authUrl.replace(/\/+$/,"")}/v2/harness/agents`,i=await r(n,{method:"POST",headers:{"content-type":"application/json","x-api-key":e.apiKey,"x-source":"cli"},body:JSON.stringify(t)});if(!i.ok){let o="",s="";try{let a=await i.json();o=a?.error??"",s=a?.error_code??""}catch{}throw i.status===403&&(s==="ACCOUNT_NOT_APPROVED"||/no card/i.test(o))?new Xm("No card on file \u2014 complete V4 agent enrollment to register on the trusted .visa mesh.","no_card"):new LN(`Visa binding issuance failed (${i.status})${o?`: ${o}`:""}`,i.status,s||void 0)}return await i.json()}function zN(e){return new Uint8Array(FAe.readFileSync(e))}var HAe,FAe,Xm,LN,rw=P(()=>{"use strict";HAe=ve(require("crypto")),FAe=ve(require("fs"));G2();Xm=class extends Error{reason;constructor(t,r){super(t),this.name="CardRequiredError",this.reason=r}},LN=class extends Error{status;code;constructor(t,r,n){super(t),this.name="BindingIssuanceError",this.status=r,this.code=n}}});var JAe=g(gl=>{"use strict";Object.defineProperty(gl,"__esModule",{value:!0});gl.formatCents=GAe;gl.formatUsd=u2t;gl.formatMicros=HN;gl.formatMicrosWire=d2t;gl.formatTxAmount=l2t;gl.formatDate=p2t;gl.formatRelativeTime=f2t;gl.formatTime=m2t;gl.formatAge=h2t;var WAe=1e6,c2t=100;function GAe(e,t={}){let r=t.fallback??"\u2014";if(e==null||!Number.isFinite(e))return r;let i=(e/c2t).toLocaleString("en-US",{style:"currency",currency:"USD",minimumFractionDigits:t.minimumFractionDigits??2,maximumFractionDigits:t.maximumFractionDigits??2});return t.showPlusSign&&e>0?`+${i}`:i}function u2t(e,t={}){let r=t.fallback??"\u2014";if(e==null||!Number.isFinite(e))return r;let n=e.toLocaleString("en-US",{style:"currency",currency:"USD",minimumFractionDigits:t.minimumFractionDigits??2,maximumFractionDigits:t.maximumFractionDigits??2});return t.showPlusSign&&e>0?`+${n}`:n}function HN(e,t={}){let r=t.fallback??"\u2014",n=typeof e=="string"?e===""?null:Number(e):e;if(n==null||!Number.isFinite(n))return r;let o=(n/WAe).toLocaleString("en-US",{style:"currency",currency:"USD",minimumFractionDigits:t.minimumFractionDigits??2,maximumFractionDigits:t.maximumFractionDigits??6});return t.showPlusSign&&n>0?`+${o}`:o}function d2t(e,t,r={}){return e&&/^-?\d+$/.test(e)?HN(e,r):t!=null&&Number.isFinite(t)?GAe(t,r):r.fallback??"\u2014"}function l2t(e,t={}){let r=Number(e.amount_micros);if(Number.isFinite(r)&&e.amount_micros!=null&&e.amount_micros!=="")return HN(r,t);let n=Number(String(e.amount).replace(/^\$/,""));return Number.isFinite(n)?HN(n*WAe,t):t.fallback??"\u2014"}function p2t(e,t={}){let r=t.fallback??"\u2014";if(!e)return r;let n=new Date(e);return Number.isNaN(n.getTime())?r:n.toLocaleDateString("en-US",{month:"short",day:"numeric",year:"numeric",timeZone:t.timeZone??"UTC"})}function f2t(e,t=Date.now()){if(!e)return"\u2014";let r=Date.parse(e);if(Number.isNaN(r))return"\u2014";let n=t-r,i=n>=0,o=Math.abs(n),s=Math.floor(o/1e3),a=Math.floor(s/60),c=Math.floor(a/60),u=Math.floor(c/24),d=Math.floor(u/7),l=Math.floor(u/30),p=Math.floor(u/365);return s<45?"just now":a<1?i?"a minute ago":"in a minute":a<60?nw(n,i,a,"minute"):c<24?nw(n,i,c,"hour"):u===1?i?"yesterday":"tomorrow":u<7?nw(n,i,u,"day"):d<4?nw(n,i,d,"week"):l<12?nw(n,i,l,"month"):nw(n,i,p,"year")}function nw(e,t,r,n){let i=r!==1?"s":"";return t?`${r} ${n}${i} ago`:`in ${r} ${n}${i}`}function m2t(e,t={}){let r=t.fallback??"\u2014";if(!e)return r;let n=new Date(e);return Number.isNaN(n.getTime())?r:n.toLocaleString("en-US",{month:"short",day:"numeric",year:"numeric",hour:"2-digit",minute:"2-digit",timeZone:t.timeZone??"UTC"})}function h2t(e,t){if(!e)return"";let r=Date.parse(e);if(Number.isNaN(r))return"";let n=Math.max(0,t-r),i=Math.floor(n/1e3);if(i<45)return"just now";let o=Math.floor(i/60);if(o<60)return`${o}m ago`;let s=Math.floor(o/60);if(s<24)return`${s}h ago`;let a=Math.floor(s/24);if(a<30)return`${a}d ago`;let c=Math.floor(a/30);return c<12?`${c}mo ago`:`${Math.floor(a/365)}y ago`}});var iw=g(Wt=>{"use strict";Object.defineProperty(Wt,"__esModule",{value:!0});Wt.formatAge=Wt.formatTime=Wt.formatRelativeTime=Wt.formatDate=Wt.formatTxAmount=Wt.formatMicrosWire=Wt.formatMicros=Wt.formatUsd=Wt.formatCents=void 0;Wt.micros=y2t;Wt.fromCents=g2t;Wt.fromUsdc=b2t;Wt.fromUsd=_2t;Wt.toCents=v2t;Wt.toCentsForAcquirer=w2t;Wt.toUsdc=x2t;Wt.toWire=E2t;Wt.fromWire=A2t;Wt.toDisplay=S2t;Wt.toUsdRounded2dp=T2t;Wt.add=P2t;Wt.sub=I2t;Wt.clampNonNegative=O2t;Wt.isNonNegative=C2t;Wt.max=k2t;Wt.min=R2t;var Qm=10000n,YAe=1000000n;function y2t(e){return e}function g2t(e){if(!Number.isFinite(e)||!Number.isInteger(e)||!Number.isSafeInteger(e))throw new TypeError(`fromCents: expected safe integer, got ${e}`);return BigInt(e)*Qm}function b2t(e){return e}function _2t(e){if(!Number.isFinite(e))throw new TypeError(`fromUsd: expected finite number, got ${e}`);return BigInt(Math.round(e*1e6))}function v2t(e){if(e>=0n)return Number(e/Qm);let t=e/Qm,r=e%Qm;return Number(r===0n?t:t-1n)}function w2t(e){if(e<0n)throw new RangeError(`toCentsForAcquirer: refusing negative micros (${e}); card charges are non-negative`);return Number(e/Qm)}function x2t(e){return e}function E2t(e){return e.toString()}function A2t(e){if(typeof e!="string"||e.length===0)throw new TypeError(`fromWire: expected non-empty string, got ${typeof e} ${JSON.stringify(e)}`);if(!/^-?\d+$/.test(e))throw new TypeError(`fromWire: not a valid micros integer: ${JSON.stringify(e)}`);return BigInt(e)}function S2t(e,t={}){let r=t.decimals??2,n=t.symbol??"$",i=e<0n,o=i?-e:e,s=o/YAe,a=o%YAe,c=i?"-":"";if(r===0)return`${c}${n}${s.toString()}`;let u=a.toString().padStart(6,"0").slice(0,r);return`${c}${n}${s.toString()}.${u}`}function T2t(e){let t=e<0n,r=t?-e:e,n=r/Qm,o=r%Qm*2n,s;o<Qm?s=n:o>Qm?s=n+1n:s=n%2n===0n?n:n+1n;let a=Number(s)/100;return t?-a:a}function P2t(e,t){return e+t}function I2t(e,t){return e-t}function O2t(e){return e<0n?0n:e}function C2t(e){return e>=0n}function k2t(e,t){return e>t?e:t}function R2t(e,t){return e<t?e:t}var e0=JAe();Object.defineProperty(Wt,"formatCents",{enumerable:!0,get:function(){return e0.formatCents}});Object.defineProperty(Wt,"formatUsd",{enumerable:!0,get:function(){return e0.formatUsd}});Object.defineProperty(Wt,"formatMicros",{enumerable:!0,get:function(){return e0.formatMicros}});Object.defineProperty(Wt,"formatMicrosWire",{enumerable:!0,get:function(){return e0.formatMicrosWire}});Object.defineProperty(Wt,"formatTxAmount",{enumerable:!0,get:function(){return e0.formatTxAmount}});Object.defineProperty(Wt,"formatDate",{enumerable:!0,get:function(){return e0.formatDate}});Object.defineProperty(Wt,"formatRelativeTime",{enumerable:!0,get:function(){return e0.formatRelativeTime}});Object.defineProperty(Wt,"formatTime",{enumerable:!0,get:function(){return e0.formatTime}});Object.defineProperty(Wt,"formatAge",{enumerable:!0,get:function(){return e0.formatAge}})});var Rh=g(oo=>{"use strict";Object.defineProperty(oo,"__esModule",{value:!0});oo.TURNKEY_API_BASE_URL_ENV=oo.CIRCLE_TESTNET_FAUCET_URL=oo.NETWORK_ENV=oo.NETWORKS=void 0;oo.resolveNetwork=B2t;oo.turnkeyApiBaseUrl=j2t;oo.explorerTxUrl=U2t;oo.explorerAddressUrl=q2t;oo.NETWORKS={"base-mainnet":{id:"base-mainnet",caip2:"eip155:8453",chainId:8453,usdc:{address:"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",eip712Domain:{name:"USD Coin",version:"2"}},rpcUrl:"https://mainnet.base.org",explorerBaseUrl:"https://basescan.org",isTestnet:!1},"base-sepolia":{id:"base-sepolia",caip2:"eip155:84532",chainId:84532,usdc:{address:"0x036CbD53842c5426634e7929541eC2318f3dCF7e",eip712Domain:{name:"USDC",version:"2"}},rpcUrl:"https://sepolia.base.org",explorerBaseUrl:"https://sepolia.basescan.org",isTestnet:!0}};oo.NETWORK_ENV="VISA_V4_NETWORK";oo.CIRCLE_TESTNET_FAUCET_URL="https://faucet.circle.com";var ZAe={"base-mainnet":"base-mainnet","base-sepolia":"base-sepolia","eip155:8453":"base-mainnet","eip155:84532":"base-sepolia"};function B2t(e=process.env){let t=(e[oo.NETWORK_ENV]??"").trim();if(t==="")return oo.NETWORKS["base-mainnet"];let r=ZAe[t.toLowerCase()];if(!r)throw new Error(`unknown ${oo.NETWORK_ENV} value ${JSON.stringify(t)} \u2014 valid values: `+Object.keys(ZAe).join(", "));return oo.NETWORKS[r]}oo.TURNKEY_API_BASE_URL_ENV="TURNKEY_API_BASE_URL";var N2t="https://api.turnkey.com";function j2t(e=process.env){let t=(e[oo.TURNKEY_API_BASE_URL_ENV]??"").trim();return t===""?N2t:t}function U2t(e,t){return`${e.explorerBaseUrl}/tx/${t}`}function q2t(e,t){return`${e.explorerBaseUrl}/address/${t}`}});var XAe=g(FN=>{"use strict";Object.defineProperty(FN,"__esModule",{value:!0});FN.version=void 0;FN.version="1.2.3"});var J2=g($N=>{"use strict";Object.defineProperty($N,"__esModule",{value:!0});$N.BaseError=void 0;var M2t=XAe(),uQ=class e extends Error{constructor(t,r={}){let n=r.cause instanceof e?r.cause.details:r.cause?.message?r.cause.message:r.details,i=r.cause instanceof e&&r.cause.docsPath||r.docsPath,o=[t||"An error occurred.","",...r.metaMessages?[...r.metaMessages,""]:[],...i?[`Docs: https://abitype.dev${i}`]:[],...n?[`Details: ${n}`]:[],`Version: abitype@${M2t.version}`].join(`
|
|
9
9
|
`);super(o),Object.defineProperty(this,"details",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"docsPath",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"metaMessages",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"shortMessage",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiTypeError"}),r.cause&&(this.cause=r.cause),this.details=n,this.docsPath=i,this.metaMessages=r.metaMessages,this.shortMessage=t}};$N.BaseError=uQ});var QAe=g(dQ=>{"use strict";Object.defineProperty(dQ,"__esModule",{value:!0});dQ.narrow=D2t;function D2t(e){return e}});var qS=g(t0=>{"use strict";Object.defineProperty(t0,"__esModule",{value:!0});t0.isTupleRegex=t0.integerRegex=t0.bytesRegex=void 0;t0.execTyped=L2t;function L2t(e,t){return e.exec(t)?.groups}t0.bytesRegex=/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/;t0.integerRegex=/^u?int(8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?$/;t0.isTupleRegex=/^\(.+?\).*?$/});var fQ=g(pQ=>{"use strict";Object.defineProperty(pQ,"__esModule",{value:!0});pQ.formatAbiParameter=lQ;var z2t=qS(),eSe=/^tuple(?<array>(\[(\d*)\])*)$/;function lQ(e){let t=e.type;if(eSe.test(e.type)&&"components"in e){t="(";let r=e.components.length;for(let i=0;i<r;i++){let o=e.components[i];t+=lQ(o),i<r-1&&(t+=", ")}let n=(0,z2t.execTyped)(eSe,e.type);return t+=`)${n?.array||""}`,lQ({...e,type:t})}return"indexed"in e&&e.indexed&&(t=`${t} indexed`),e.name?`${t} ${e.name}`:t}});var hQ=g(mQ=>{"use strict";Object.defineProperty(mQ,"__esModule",{value:!0});mQ.formatAbiParameters=F2t;var H2t=fQ();function F2t(e){let t="",r=e.length;for(let n=0;n<r;n++){let i=e[n];t+=(0,H2t.formatAbiParameter)(i),n!==r-1&&(t+=", ")}return t}});var gQ=g(yQ=>{"use strict";Object.defineProperty(yQ,"__esModule",{value:!0});yQ.formatAbiItem=$2t;var MS=hQ();function $2t(e){return e.type==="function"?`function ${e.name}(${(0,MS.formatAbiParameters)(e.inputs)})${e.stateMutability&&e.stateMutability!=="nonpayable"?` ${e.stateMutability}`:""}${e.outputs?.length?` returns (${(0,MS.formatAbiParameters)(e.outputs)})`:""}`:e.type==="event"?`event ${e.name}(${(0,MS.formatAbiParameters)(e.inputs)})`:e.type==="error"?`error ${e.name}(${(0,MS.formatAbiParameters)(e.inputs)})`:e.type==="constructor"?`constructor(${(0,MS.formatAbiParameters)(e.inputs)})${e.stateMutability==="payable"?" payable":""}`:e.type==="fallback"?`fallback() external${e.stateMutability==="payable"?" payable":""}`:"receive() external payable"}});var tSe=g(bQ=>{"use strict";Object.defineProperty(bQ,"__esModule",{value:!0});bQ.formatAbi=K2t;var V2t=gQ();function K2t(e){let t=[],r=e.length;for(let n=0;n<r;n++){let i=e[n],o=(0,V2t.formatAbiItem)(i);t.push(o)}return t}});var Y2=g(Ei=>{"use strict";Object.defineProperty(Ei,"__esModule",{value:!0});Ei.functionModifiers=Ei.eventModifiers=Ei.modifiers=void 0;Ei.isErrorSignature=W2t;Ei.execErrorSignature=G2t;Ei.isEventSignature=J2t;Ei.execEventSignature=Y2t;Ei.isFunctionSignature=Z2t;Ei.execFunctionSignature=X2t;Ei.isStructSignature=Q2t;Ei.execStructSignature=e6t;Ei.isConstructorSignature=t6t;Ei.execConstructorSignature=r6t;Ei.isFallbackSignature=n6t;Ei.execFallbackSignature=i6t;Ei.isReceiveSignature=s6t;var ow=qS(),rSe=/^error (?<name>[a-zA-Z$_][a-zA-Z0-9$_]*)\((?<parameters>.*?)\)$/;function W2t(e){return rSe.test(e)}function G2t(e){return(0,ow.execTyped)(rSe,e)}var nSe=/^event (?<name>[a-zA-Z$_][a-zA-Z0-9$_]*)\((?<parameters>.*?)\)$/;function J2t(e){return nSe.test(e)}function Y2t(e){return(0,ow.execTyped)(nSe,e)}var iSe=/^function (?<name>[a-zA-Z$_][a-zA-Z0-9$_]*)\((?<parameters>.*?)\)(?: (?<scope>external|public{1}))?(?: (?<stateMutability>pure|view|nonpayable|payable{1}))?(?: returns\s?\((?<returns>.*?)\))?$/;function Z2t(e){return iSe.test(e)}function X2t(e){return(0,ow.execTyped)(iSe,e)}var oSe=/^struct (?<name>[a-zA-Z$_][a-zA-Z0-9$_]*) \{(?<properties>.*?)\}$/;function Q2t(e){return oSe.test(e)}function e6t(e){return(0,ow.execTyped)(oSe,e)}var sSe=/^constructor\((?<parameters>.*?)\)(?:\s(?<stateMutability>payable{1}))?$/;function t6t(e){return sSe.test(e)}function r6t(e){return(0,ow.execTyped)(sSe,e)}var aSe=/^fallback\(\) external(?:\s(?<stateMutability>payable{1}))?$/;function n6t(e){return aSe.test(e)}function i6t(e){return(0,ow.execTyped)(aSe,e)}var o6t=/^receive\(\) external payable$/;function s6t(e){return o6t.test(e)}Ei.modifiers=new Set(["memory","indexed","storage","calldata"]);Ei.eventModifiers=new Set(["indexed"]);Ei.functionModifiers=new Set(["calldata","memory","storage"])});var DS=g(Bh=>{"use strict";Object.defineProperty(Bh,"__esModule",{value:!0});Bh.UnknownSolidityTypeError=Bh.UnknownTypeError=Bh.InvalidAbiItemError=void 0;var xQ=J2(),_Q=class extends xQ.BaseError{constructor({signature:t}){super("Failed to parse ABI item.",{details:`parseAbiItem(${JSON.stringify(t,null,2)})`,docsPath:"/api/human#parseabiitem-1"}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidAbiItemError"})}};Bh.InvalidAbiItemError=_Q;var vQ=class extends xQ.BaseError{constructor({type:t}){super("Unknown type.",{metaMessages:[`Type "${t}" is not a valid ABI type. Perhaps you forgot to include a struct signature?`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"UnknownTypeError"})}};Bh.UnknownTypeError=vQ;var wQ=class extends xQ.BaseError{constructor({type:t}){super("Unknown type.",{metaMessages:[`Type "${t}" is not a valid ABI type.`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"UnknownSolidityTypeError"})}};Bh.UnknownSolidityTypeError=wQ});var sw=g(Us=>{"use strict";Object.defineProperty(Us,"__esModule",{value:!0});Us.InvalidAbiTypeParameterError=Us.InvalidFunctionModifierError=Us.InvalidModifierError=Us.SolidityProtectedKeywordError=Us.InvalidParameterError=Us.InvalidAbiParametersError=Us.InvalidAbiParameterError=void 0;var Z2=J2(),EQ=class extends Z2.BaseError{constructor({param:t}){super("Failed to parse ABI parameter.",{details:`parseAbiParameter(${JSON.stringify(t,null,2)})`,docsPath:"/api/human#parseabiparameter-1"}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidAbiParameterError"})}};Us.InvalidAbiParameterError=EQ;var AQ=class extends Z2.BaseError{constructor({params:t}){super("Failed to parse ABI parameters.",{details:`parseAbiParameters(${JSON.stringify(t,null,2)})`,docsPath:"/api/human#parseabiparameters-1"}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidAbiParametersError"})}};Us.InvalidAbiParametersError=AQ;var SQ=class extends Z2.BaseError{constructor({param:t}){super("Invalid ABI parameter.",{details:t}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidParameterError"})}};Us.InvalidParameterError=SQ;var TQ=class extends Z2.BaseError{constructor({param:t,name:r}){super("Invalid ABI parameter.",{details:t,metaMessages:[`"${r}" is a protected Solidity keyword. More info: https://docs.soliditylang.org/en/latest/cheatsheet.html`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"SolidityProtectedKeywordError"})}};Us.SolidityProtectedKeywordError=TQ;var PQ=class extends Z2.BaseError{constructor({param:t,type:r,modifier:n}){super("Invalid ABI parameter.",{details:t,metaMessages:[`Modifier "${n}" not allowed${r?` in "${r}" type`:""}.`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidModifierError"})}};Us.InvalidModifierError=PQ;var IQ=class extends Z2.BaseError{constructor({param:t,type:r,modifier:n}){super("Invalid ABI parameter.",{details:t,metaMessages:[`Modifier "${n}" not allowed${r?` in "${r}" type`:""}.`,`Data location can only be specified for array, struct, or mapping types, but "${n}" was given.`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidFunctionModifierError"})}};Us.InvalidFunctionModifierError=IQ;var OQ=class extends Z2.BaseError{constructor({abiParameter:t}){super("Invalid ABI parameter.",{details:JSON.stringify(t,null,2),metaMessages:["ABI parameter type is invalid."]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidAbiTypeParameterError"})}};Us.InvalidAbiTypeParameterError=OQ});var VN=g(Nh=>{"use strict";Object.defineProperty(Nh,"__esModule",{value:!0});Nh.InvalidStructSignatureError=Nh.UnknownSignatureError=Nh.InvalidSignatureError=void 0;var BQ=J2(),CQ=class extends BQ.BaseError{constructor({signature:t,type:r}){super(`Invalid ${r} signature.`,{details:t}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidSignatureError"})}};Nh.InvalidSignatureError=CQ;var kQ=class extends BQ.BaseError{constructor({signature:t}){super("Unknown signature.",{details:t}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"UnknownSignatureError"})}};Nh.UnknownSignatureError=kQ;var RQ=class extends BQ.BaseError{constructor({signature:t}){super("Invalid struct signature.",{details:t,metaMessages:["No properties exist."]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidStructSignatureError"})}};Nh.InvalidStructSignatureError=RQ});var jQ=g(KN=>{"use strict";Object.defineProperty(KN,"__esModule",{value:!0});KN.CircularReferenceError=void 0;var a6t=J2(),NQ=class extends a6t.BaseError{constructor({type:t}){super("Circular reference detected.",{metaMessages:[`Struct "${t}" is a circular reference.`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"CircularReferenceError"})}};KN.CircularReferenceError=NQ});var qQ=g(WN=>{"use strict";Object.defineProperty(WN,"__esModule",{value:!0});WN.InvalidParenthesisError=void 0;var c6t=J2(),UQ=class extends c6t.BaseError{constructor({current:t,depth:r}){super("Unbalanced parentheses.",{metaMessages:[`"${t.trim()}" has too many ${r>0?"opening":"closing"} parentheses.`],details:`Depth "${r}"`}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidParenthesisError"})}};WN.InvalidParenthesisError=UQ});var cSe=g(LS=>{"use strict";Object.defineProperty(LS,"__esModule",{value:!0});LS.parameterCache=void 0;LS.getParameterCacheKey=u6t;function u6t(e,t,r){let n="";if(r)for(let i of Object.entries(r)){if(!i)continue;let o="";for(let s of i[1])o+=`[${s.type}${s.name?`:${s.name}`:""}]`;n+=`(${i[0]}{${o}})`}return t?`${t}:${e}${n}`:`${e}${n}`}LS.parameterCache=new Map([["address",{type:"address"}],["bool",{type:"bool"}],["bytes",{type:"bytes"}],["bytes32",{type:"bytes32"}],["int",{type:"int256"}],["int256",{type:"int256"}],["string",{type:"string"}],["uint",{type:"uint256"}],["uint8",{type:"uint8"}],["uint16",{type:"uint16"}],["uint24",{type:"uint24"}],["uint32",{type:"uint32"}],["uint64",{type:"uint64"}],["uint96",{type:"uint96"}],["uint112",{type:"uint112"}],["uint160",{type:"uint160"}],["uint192",{type:"uint192"}],["uint256",{type:"uint256"}],["address owner",{type:"address",name:"owner"}],["address to",{type:"address",name:"to"}],["bool approved",{type:"bool",name:"approved"}],["bytes _data",{type:"bytes",name:"_data"}],["bytes data",{type:"bytes",name:"data"}],["bytes signature",{type:"bytes",name:"signature"}],["bytes32 hash",{type:"bytes32",name:"hash"}],["bytes32 r",{type:"bytes32",name:"r"}],["bytes32 root",{type:"bytes32",name:"root"}],["bytes32 s",{type:"bytes32",name:"s"}],["string name",{type:"string",name:"name"}],["string symbol",{type:"string",name:"symbol"}],["string tokenURI",{type:"string",name:"tokenURI"}],["uint tokenId",{type:"uint256",name:"tokenId"}],["uint8 v",{type:"uint8",name:"v"}],["uint256 balance",{type:"uint256",name:"balance"}],["uint256 tokenId",{type:"uint256",name:"tokenId"}],["uint256 value",{type:"uint256",name:"value"}],["event:address indexed from",{type:"address",name:"from",indexed:!0}],["event:address indexed to",{type:"address",name:"to",indexed:!0}],["event:uint indexed tokenId",{type:"uint256",name:"tokenId",indexed:!0}],["event:uint256 indexed tokenId",{type:"uint256",name:"tokenId",indexed:!0}]])});var Q2=g(tu=>{"use strict";Object.defineProperty(tu,"__esModule",{value:!0});tu.parseSignature=p6t;tu.parseFunctionSignature=uSe;tu.parseEventSignature=dSe;tu.parseErrorSignature=lSe;tu.parseConstructorSignature=pSe;tu.parseFallbackSignature=fSe;tu.parseAbiParameter=X2;tu.splitParameters=Zu;tu.isSolidityType=mSe;tu.isSolidityKeyword=hSe;tu.isValidDataLocation=ySe;var aw=qS(),d6t=DS(),GN=sw(),cw=VN(),l6t=qQ(),JN=cSe(),ba=Y2();function p6t(e,t={}){if((0,ba.isFunctionSignature)(e))return uSe(e,t);if((0,ba.isEventSignature)(e))return dSe(e,t);if((0,ba.isErrorSignature)(e))return lSe(e,t);if((0,ba.isConstructorSignature)(e))return pSe(e,t);if((0,ba.isFallbackSignature)(e))return fSe(e);if((0,ba.isReceiveSignature)(e))return{type:"receive",stateMutability:"payable"};throw new cw.UnknownSignatureError({signature:e})}function uSe(e,t={}){let r=(0,ba.execFunctionSignature)(e);if(!r)throw new cw.InvalidSignatureError({signature:e,type:"function"});let n=Zu(r.parameters),i=[],o=n.length;for(let a=0;a<o;a++)i.push(X2(n[a],{modifiers:ba.functionModifiers,structs:t,type:"function"}));let s=[];if(r.returns){let a=Zu(r.returns),c=a.length;for(let u=0;u<c;u++)s.push(X2(a[u],{modifiers:ba.functionModifiers,structs:t,type:"function"}))}return{name:r.name,type:"function",stateMutability:r.stateMutability??"nonpayable",inputs:i,outputs:s}}function dSe(e,t={}){let r=(0,ba.execEventSignature)(e);if(!r)throw new cw.InvalidSignatureError({signature:e,type:"event"});let n=Zu(r.parameters),i=[],o=n.length;for(let s=0;s<o;s++)i.push(X2(n[s],{modifiers:ba.eventModifiers,structs:t,type:"event"}));return{name:r.name,type:"event",inputs:i}}function lSe(e,t={}){let r=(0,ba.execErrorSignature)(e);if(!r)throw new cw.InvalidSignatureError({signature:e,type:"error"});let n=Zu(r.parameters),i=[],o=n.length;for(let s=0;s<o;s++)i.push(X2(n[s],{structs:t,type:"error"}));return{name:r.name,type:"error",inputs:i}}function pSe(e,t={}){let r=(0,ba.execConstructorSignature)(e);if(!r)throw new cw.InvalidSignatureError({signature:e,type:"constructor"});let n=Zu(r.parameters),i=[],o=n.length;for(let s=0;s<o;s++)i.push(X2(n[s],{structs:t,type:"constructor"}));return{type:"constructor",stateMutability:r.stateMutability??"nonpayable",inputs:i}}function fSe(e){let t=(0,ba.execFallbackSignature)(e);if(!t)throw new cw.InvalidSignatureError({signature:e,type:"fallback"});return{type:"fallback",stateMutability:t.stateMutability??"nonpayable"}}var f6t=/^(?<type>[a-zA-Z$_][a-zA-Z0-9$_]*(?:\spayable)?)(?<array>(?:\[\d*?\])+?)?(?:\s(?<modifier>calldata|indexed|memory|storage{1}))?(?:\s(?<name>[a-zA-Z$_][a-zA-Z0-9$_]*))?$/,m6t=/^\((?<type>.+?)\)(?<array>(?:\[\d*?\])+?)?(?:\s(?<modifier>calldata|indexed|memory|storage{1}))?(?:\s(?<name>[a-zA-Z$_][a-zA-Z0-9$_]*))?$/,h6t=/^u?int$/;function X2(e,t){let r=(0,JN.getParameterCacheKey)(e,t?.type,t?.structs);if(JN.parameterCache.has(r))return JN.parameterCache.get(r);let n=aw.isTupleRegex.test(e),i=(0,aw.execTyped)(n?m6t:f6t,e);if(!i)throw new GN.InvalidParameterError({param:e});if(i.name&&hSe(i.name))throw new GN.SolidityProtectedKeywordError({param:e,name:i.name});let o=i.name?{name:i.name}:{},s=i.modifier==="indexed"?{indexed:!0}:{},a=t?.structs??{},c,u={};if(n){c="tuple";let l=Zu(i.type),p=[],f=l.length;for(let m=0;m<f;m++)p.push(X2(l[m],{structs:a}));u={components:p}}else if(i.type in a)c="tuple",u={components:a[i.type]};else if(h6t.test(i.type))c=`${i.type}256`;else if(i.type==="address payable")c="address";else if(c=i.type,t?.type!=="struct"&&!mSe(c))throw new d6t.UnknownSolidityTypeError({type:c});if(i.modifier){if(!t?.modifiers?.has?.(i.modifier))throw new GN.InvalidModifierError({param:e,type:t?.type,modifier:i.modifier});if(ba.functionModifiers.has(i.modifier)&&!ySe(c,!!i.array))throw new GN.InvalidFunctionModifierError({param:e,type:t?.type,modifier:i.modifier})}let d={type:`${c}${i.array??""}`,...o,...s,...u};return JN.parameterCache.set(r,d),d}function Zu(e,t=[],r="",n=0){let i=e.trim().length;for(let o=0;o<i;o++){let s=e[o],a=e.slice(o+1);switch(s){case",":return n===0?Zu(a,[...t,r.trim()]):Zu(a,t,`${r}${s}`,n);case"(":return Zu(a,t,`${r}${s}`,n+1);case")":return Zu(a,t,`${r}${s}`,n-1);default:return Zu(a,t,`${r}${s}`,n)}}if(r==="")return t;if(n!==0)throw new l6t.InvalidParenthesisError({current:r,depth:n});return t.push(r.trim()),t}function mSe(e){return e==="address"||e==="bool"||e==="function"||e==="string"||aw.bytesRegex.test(e)||aw.integerRegex.test(e)}var y6t=/^(?:after|alias|anonymous|apply|auto|byte|calldata|case|catch|constant|copyof|default|defined|error|event|external|false|final|function|immutable|implements|in|indexed|inline|internal|let|mapping|match|memory|mutable|null|of|override|partial|private|promise|public|pure|reference|relocatable|return|returns|sizeof|static|storage|struct|super|supports|switch|this|true|try|typedef|typeof|var|view|virtual)$/;function hSe(e){return e==="address"||e==="bool"||e==="function"||e==="string"||e==="tuple"||aw.bytesRegex.test(e)||aw.integerRegex.test(e)||y6t.test(e)}function ySe(e,t){return t||e==="bytes"||e==="string"||e==="tuple"}});var zS=g(MQ=>{"use strict";Object.defineProperty(MQ,"__esModule",{value:!0});MQ.parseStructs=v6t;var gSe=qS(),g6t=DS(),b6t=sw(),bSe=VN(),_6t=jQ(),_Se=Y2(),vSe=Q2();function v6t(e){let t={},r=e.length;for(let s=0;s<r;s++){let a=e[s];if(!(0,_Se.isStructSignature)(a))continue;let c=(0,_Se.execStructSignature)(a);if(!c)throw new bSe.InvalidSignatureError({signature:a,type:"struct"});let u=c.properties.split(";"),d=[],l=u.length;for(let p=0;p<l;p++){let m=u[p].trim();if(!m)continue;let h=(0,vSe.parseAbiParameter)(m,{type:"struct"});d.push(h)}if(!d.length)throw new bSe.InvalidStructSignatureError({signature:a});t[c.name]=d}let n={},i=Object.entries(t),o=i.length;for(let s=0;s<o;s++){let[a,c]=i[s];n[a]=wSe(c,t)}return n}var w6t=/^(?<type>[a-zA-Z$_][a-zA-Z0-9$_]*)(?<array>(?:\[\d*?\])+?)?$/;function wSe(e=[],t={},r=new Set){let n=[],i=e.length;for(let o=0;o<i;o++){let s=e[o];if(gSe.isTupleRegex.test(s.type))n.push(s);else{let c=(0,gSe.execTyped)(w6t,s.type);if(!c?.type)throw new b6t.InvalidAbiTypeParameterError({abiParameter:s});let{array:u,type:d}=c;if(d in t){if(r.has(d))throw new _6t.CircularReferenceError({type:d});n.push({...s,type:`tuple${u??""}`,components:wSe(t[d],t,new Set([...r,d]))})}else if((0,vSe.isSolidityType)(d))n.push(s);else throw new g6t.UnknownTypeError({type:d})}}return n}});var xSe=g(DQ=>{"use strict";Object.defineProperty(DQ,"__esModule",{value:!0});DQ.parseAbi=S6t;var x6t=Y2(),E6t=zS(),A6t=Q2();function S6t(e){let t=(0,E6t.parseStructs)(e),r=[],n=e.length;for(let i=0;i<n;i++){let o=e[i];(0,x6t.isStructSignature)(o)||r.push((0,A6t.parseSignature)(o,t))}return r}});var ASe=g(LQ=>{"use strict";Object.defineProperty(LQ,"__esModule",{value:!0});LQ.parseAbiItem=O6t;var T6t=DS(),P6t=Y2(),I6t=zS(),ESe=Q2();function O6t(e){let t;if(typeof e=="string")t=(0,ESe.parseSignature)(e);else{let r=(0,I6t.parseStructs)(e),n=e.length;for(let i=0;i<n;i++){let o=e[i];if(!(0,P6t.isStructSignature)(o)){t=(0,ESe.parseSignature)(o,r);break}}}if(!t)throw new T6t.InvalidAbiItemError({signature:e});return t}});var TSe=g(HQ=>{"use strict";Object.defineProperty(HQ,"__esModule",{value:!0});HQ.parseAbiParameter=R6t;var C6t=sw(),zQ=Y2(),k6t=zS(),SSe=Q2();function R6t(e){let t;if(typeof e=="string")t=(0,SSe.parseAbiParameter)(e,{modifiers:zQ.modifiers});else{let r=(0,k6t.parseStructs)(e),n=e.length;for(let i=0;i<n;i++){let o=e[i];if(!(0,zQ.isStructSignature)(o)){t=(0,SSe.parseAbiParameter)(o,{modifiers:zQ.modifiers,structs:r});break}}}if(!t)throw new C6t.InvalidAbiParameterError({param:e});return t}});var OSe=g($Q=>{"use strict";Object.defineProperty($Q,"__esModule",{value:!0});$Q.parseAbiParameters=j6t;var B6t=sw(),FQ=Y2(),N6t=zS(),PSe=Q2(),ISe=Q2();function j6t(e){let t=[];if(typeof e=="string"){let r=(0,PSe.splitParameters)(e),n=r.length;for(let i=0;i<n;i++)t.push((0,ISe.parseAbiParameter)(r[i],{modifiers:FQ.modifiers}))}else{let r=(0,N6t.parseStructs)(e),n=e.length;for(let i=0;i<n;i++){let o=e[i];if((0,FQ.isStructSignature)(o))continue;let s=(0,PSe.splitParameters)(o),a=s.length;for(let c=0;c<a;c++)t.push((0,ISe.parseAbiParameter)(s[c],{modifiers:FQ.modifiers,structs:r}))}}if(t.length===0)throw new B6t.InvalidAbiParametersError({params:e});return t}});var HS=g(dt=>{"use strict";Object.defineProperty(dt,"__esModule",{value:!0});dt.CircularReferenceError=dt.InvalidParenthesisError=dt.UnknownSignatureError=dt.InvalidSignatureError=dt.InvalidStructSignatureError=dt.InvalidAbiParameterError=dt.InvalidAbiParametersError=dt.InvalidParameterError=dt.SolidityProtectedKeywordError=dt.InvalidModifierError=dt.InvalidFunctionModifierError=dt.InvalidAbiTypeParameterError=dt.UnknownSolidityTypeError=dt.InvalidAbiItemError=dt.UnknownTypeError=dt.parseAbiParameters=dt.parseAbiParameter=dt.parseAbiItem=dt.parseAbi=dt.formatAbiParameters=dt.formatAbiParameter=dt.formatAbiItem=dt.formatAbi=dt.narrow=dt.BaseError=void 0;var U6t=J2();Object.defineProperty(dt,"BaseError",{enumerable:!0,get:function(){return U6t.BaseError}});var q6t=QAe();Object.defineProperty(dt,"narrow",{enumerable:!0,get:function(){return q6t.narrow}});var M6t=tSe();Object.defineProperty(dt,"formatAbi",{enumerable:!0,get:function(){return M6t.formatAbi}});var D6t=gQ();Object.defineProperty(dt,"formatAbiItem",{enumerable:!0,get:function(){return D6t.formatAbiItem}});var L6t=fQ();Object.defineProperty(dt,"formatAbiParameter",{enumerable:!0,get:function(){return L6t.formatAbiParameter}});var z6t=hQ();Object.defineProperty(dt,"formatAbiParameters",{enumerable:!0,get:function(){return z6t.formatAbiParameters}});var H6t=xSe();Object.defineProperty(dt,"parseAbi",{enumerable:!0,get:function(){return H6t.parseAbi}});var F6t=ASe();Object.defineProperty(dt,"parseAbiItem",{enumerable:!0,get:function(){return F6t.parseAbiItem}});var $6t=TSe();Object.defineProperty(dt,"parseAbiParameter",{enumerable:!0,get:function(){return $6t.parseAbiParameter}});var V6t=OSe();Object.defineProperty(dt,"parseAbiParameters",{enumerable:!0,get:function(){return V6t.parseAbiParameters}});var VQ=DS();Object.defineProperty(dt,"UnknownTypeError",{enumerable:!0,get:function(){return VQ.UnknownTypeError}});Object.defineProperty(dt,"InvalidAbiItemError",{enumerable:!0,get:function(){return VQ.InvalidAbiItemError}});Object.defineProperty(dt,"UnknownSolidityTypeError",{enumerable:!0,get:function(){return VQ.UnknownSolidityTypeError}});var e6=sw();Object.defineProperty(dt,"InvalidAbiTypeParameterError",{enumerable:!0,get:function(){return e6.InvalidAbiTypeParameterError}});Object.defineProperty(dt,"InvalidFunctionModifierError",{enumerable:!0,get:function(){return e6.InvalidFunctionModifierError}});Object.defineProperty(dt,"InvalidModifierError",{enumerable:!0,get:function(){return e6.InvalidModifierError}});Object.defineProperty(dt,"SolidityProtectedKeywordError",{enumerable:!0,get:function(){return e6.SolidityProtectedKeywordError}});Object.defineProperty(dt,"InvalidParameterError",{enumerable:!0,get:function(){return e6.InvalidParameterError}});Object.defineProperty(dt,"InvalidAbiParametersError",{enumerable:!0,get:function(){return e6.InvalidAbiParametersError}});Object.defineProperty(dt,"InvalidAbiParameterError",{enumerable:!0,get:function(){return e6.InvalidAbiParameterError}});var KQ=VN();Object.defineProperty(dt,"InvalidStructSignatureError",{enumerable:!0,get:function(){return KQ.InvalidStructSignatureError}});Object.defineProperty(dt,"InvalidSignatureError",{enumerable:!0,get:function(){return KQ.InvalidSignatureError}});Object.defineProperty(dt,"UnknownSignatureError",{enumerable:!0,get:function(){return KQ.UnknownSignatureError}});var K6t=qQ();Object.defineProperty(dt,"InvalidParenthesisError",{enumerable:!0,get:function(){return K6t.InvalidParenthesisError}});var W6t=jQ();Object.defineProperty(dt,"CircularReferenceError",{enumerable:!0,get:function(){return W6t.CircularReferenceError}})});var tr=g(WQ=>{"use strict";Object.defineProperty(WQ,"__esModule",{value:!0});WQ.getAction=G6t;function G6t(e,t,r){let n=e[t.name];if(typeof n=="function")return n;let i=e[r];return typeof i=="function"?i:o=>t(e,o)}});var Hp=g(YN=>{"use strict";Object.defineProperty(YN,"__esModule",{value:!0});YN.formatAbiItem=Y6t;YN.formatAbiParams=GQ;var J6t=Bn();function Y6t(e,{includeName:t=!1}={}){if(e.type!=="function"&&e.type!=="event"&&e.type!=="error")throw new J6t.InvalidDefinitionTypeError(e.type);return`${e.name}(${GQ(e.inputs,{includeName:t})})`}function GQ(e,{includeName:t=!1}={}){return e?e.map(r=>Z6t(r,{includeName:t})).join(t?", ":","):""}function Z6t(e,{includeName:t}){return e.type.startsWith("tuple")?`(${GQ(e.components,{includeName:t})})${e.type.slice(5)}`:e.type+(t&&e.name?` ${e.name}`:"")}});var es=g(JQ=>{"use strict";Object.defineProperty(JQ,"__esModule",{value:!0});JQ.isHex=X6t;function X6t(e,{strict:t=!0}={}){return!e||typeof e!="string"?!1:t?/^0x[0-9a-fA-F]*$/.test(e):e.startsWith("0x")}});var ts=g(YQ=>{"use strict";Object.defineProperty(YQ,"__esModule",{value:!0});YQ.size=e_t;var Q6t=es();function e_t(e){return(0,Q6t.isHex)(e,{strict:!1})?Math.ceil((e.length-2)/2):e.length}});var CSe=g(ZN=>{"use strict";Object.defineProperty(ZN,"__esModule",{value:!0});ZN.version=void 0;ZN.version="2.54.6"});var Pt=g(FS=>{"use strict";Object.defineProperty(FS,"__esModule",{value:!0});FS.BaseError=void 0;FS.setErrorConfig=t_t;var kSe=CSe(),XN={getDocsUrl:({docsBaseUrl:e,docsPath:t="",docsSlug:r})=>t?`${e??"https://viem.sh"}${t}${r?`#${r}`:""}`:void 0,version:`viem@${kSe.version}`};function t_t(e){XN=e}var ZQ=class e extends Error{constructor(t,r={}){let n=r.cause instanceof e?r.cause.details:r.cause?.message?r.cause.message:r.details,i=r.cause instanceof e&&r.cause.docsPath||r.docsPath,o=XN.getDocsUrl?.({...r,docsPath:i}),s=[t||"An error occurred.","",...r.metaMessages?[...r.metaMessages,""]:[],...o?[`Docs: ${o}`]:[],...n?[`Details: ${n}`]:[],...XN.version?[`Version: ${XN.version}`]:[]].join(`
|
|
@@ -20686,7 +20686,7 @@ ${e.senderName}
|
|
|
20686
20686
|
${e.timestampMs}
|
|
20687
20687
|
${e.messageType}
|
|
20688
20688
|
${t}
|
|
20689
|
-
${e.nonce}`;return axr.encode(r)}function dxr(e,t,r,n,i,o,s){return uxr({messageId:e,senderPeerId:t,senderName:r,timestampMs:n,messageType:i,payload:o,nonce:s})}function lxr(e){let t=0;for(;t<e.length;){let r=e[t],n=r>>3,i=r&7;if(t++,i===0){for(;t<e.length&&e[t]&128;)t++;t++}else if(i===2){let o=0,s=0;for(;t<e.length&&e[t]&128;)o|=(e[t]&127)<<s,s+=7,t++;if(o|=(e[t]&127)<<s,t++,n===2&&o>=64)return e.slice(t,t+32);t+=o}else return null}return null}function jxr(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name==="Uint8Array"&&"BYTES_PER_ELEMENT"in e&&e.BYTES_PER_ELEMENT===1}function k0t(e,t,r=""){let n=jxr(e),i=e?.length;if(!n||t!==void 0){let s=r&&`"${r}" `,a="",c=n?`length=${i}`:`type=${typeof e}`,u=s+"expected Uint8Array"+a+", got "+c;throw n?new RangeError(u):new TypeError(u)}return e}function Wmt(e,t=!0){if(e.destroyed)throw new Error("Hash instance has been destroyed");if(t&&e.finished)throw new Error("Hash#digest() has already been called")}function Uxr(e,t){k0t(e,void 0,"digestInto() output");let r=t.outputLen;if(e.length<r)throw new RangeError('"digestInto() output" expected to be of length >='+r)}function E3e(...e){for(let t=0;t<e.length;t++)e[t].fill(0)}function g3e(e){return new DataView(e.buffer,e.byteOffset,e.byteLength)}function qxr(e,t={}){let r=(i,o)=>e(o).update(i).digest(),n=e(void 0);return r.outputLen=n.outputLen,r.blockLen=n.blockLen,r.canXOF=n.canXOF,r.create=i=>e(i),Object.assign(r,t),Object.freeze(r)}function Lxr(e,t=!1){return t?{h:Number(e&lZ),l:Number(e>>Gmt&lZ)}:{h:Number(e>>Gmt&lZ)|0,l:Number(e&lZ)|0}}function zxr(e,t=!1){let r=e.length,n=new Uint32Array(r),i=new Uint32Array(r);for(let o=0;o<r;o++){let{h:s,l:a}=Lxr(e[o],t);[n[o],i[o]]=[s,a]}return[n,i]}function ph(e,t,r,n){let i=(t>>>0)+(n>>>0);return{h:e+r+(i/2**32|0)|0,l:i|0}}function Qxr(){return kxr.randomSecretKey()}function B0t(e){return Oxr(e)}function eEr(){let e=Qxr();return{secretKey:e,publicKey:B0t(e)}}function tEr(e){if((0,E2.existsSync)(e)){let r=(0,E2.readFileSync)(e),n=new Uint8Array(r.buffer.slice(r.byteOffset,r.byteOffset+32));return{secretKey:n,publicKey:B0t(n)}}let t=eEr();return(0,E2.mkdirSync)((0,Qmt.dirname)(e),{recursive:!0}),(0,E2.writeFileSync)(e,new Uint8Array(t.secretKey)),t}function rEr(e){let{secretKey:t,publicKey:r}=tEr(e);return{privateKey:t,publicKey:r}}async function nEr(e,t,r,n,i,o,s,a){let c=dxr(t,r,n,i,o,s,a);return{signature:await ixr(e,c),signatureInput:cxr.subwayAgentMsgV1}}function Xmt(e){return sxr(e)}var E2,Qmt,p9r,f9r,m9r,h9r,y9r,e0t,yZ,mZ,Imt,Omt,d3e,l3e,g9r,xZ,b9r,Cs,_9r,v9r,w9r,fh,EZ,A3e,t0t,S3e,uh,Cmt,T3e,r0t,x9r,JA,E9r,gZ,s4,Rn,kmt,Ke,n0t,i0t,o0t,s0t,p3e,b3e,dB,f4,l4,a0t,c0t,Mm,A9r,Rmt,S9r,_3e,P3e,T9r,u0t,P9r,I9r,O9r,C9r,k9r,R9r,I3e,d0t,bZ,B9r,l0t,v3e,N9r,Bmt,Nmt,j9r,m0t,h0t,g2,fa,cZ,Umt,qmt,Mmt,VA,KA,uZ,dZ,H9r,F9r,$9r,V9r,K9r,W9r,G9r,b2,J9r,Y9r,y0t,Z9r,X9r,_2,v2,Q9r,exr,txr,rxr,Dmt,oxr,g0t,axr,cxr,b0t,pxr,_0t,_Z,hZ,Lmt,zmt,m3e,h3e,fxr,YA,mxr,ks,hxr,yxr,gxr,A2,AZ,O3e,v0t,w0t,lh,Hmt,x0t,E0t,bxr,C3e,_xr,vZ,c4,Gn,Fmt,We,vxr,wxr,A0t,S0t,y3e,w3e,lB,ZA,p4,xxr,T0t,Lm,Exr,$mt,Axr,Sxr,Txr,Pxr,P0t,Ixr,I0t,Oxr,O0t,Cxr,kxr,wZ,Rxr,C0t,x3e,Bxr,Vmt,Kmt,Nxr,Mxr,Dxr,ma,lZ,Gmt,Jmt,Ymt,WA,GA,pZ,fZ,Hxr,Fxr,$xr,Vxr,Kxr,Wxr,R0t,Gxr,Jxr,w2,x2,Yxr,Zxr,Xxr,Zmt,iEr,oEr,N0t,k3e=P(()=>{"use strict";a3e();a3e();c3e();E2=require("fs"),Qmt=require("path");p9r=1e3,f9r=10,m9r=3e4,h9r=3e4,y9r=class{url;ws=null;_status="disconnected";messageHandlers=new Set;statusHandlers=new Set;reconnectAttempt=0;reconnectTimer=null;pingTimer=null;stopped=!1;autoReconnect;reconnectInterval;maxReconnectAttempts;pingInterval;constructor(e){this.url=e.url,this.autoReconnect=e.autoReconnect??!0,this.reconnectInterval=e.reconnectInterval??p9r,this.maxReconnectAttempts=e.maxReconnectAttempts??f9r,this.pingInterval=e.pingInterval??m9r}get status(){return this._status}onMessage(e){return this.messageHandlers.add(e),()=>this.messageHandlers.delete(e)}onStatusChange(e){return this.statusHandlers.add(e),()=>this.statusHandlers.delete(e)}connect(){return this.stopped=!1,new Promise((e,t)=>{let r=d9r();if(!r){t(new pa('No WebSocket implementation available. Install the "ws" package for Node.js.'));return}this.setStatus("connecting");try{this.ws=new r(this.url)}catch(i){t(new pa(`Failed to create WebSocket: ${i}`));return}let n=!1;this.ws.onopen=()=>{this.reconnectAttempt=0,this.setStatus("connected"),this.startPing(),n||(n=!0,e())},this.ws.onmessage=i=>{let o;try{o=JSON.parse(typeof i.data=="string"?i.data:i.data.toString())}catch{return}for(let s of this.messageHandlers)s(o)},this.ws.onclose=()=>{this.ws=null,this.stopPing(),!this.stopped&&this.autoReconnect?this.scheduleReconnect():this.setStatus("disconnected"),n||(n=!0,t(new pa("WebSocket closed before connection established")))},this.ws.onerror=()=>{n||(n=!0,t(new pa(`WebSocket connection failed: ${this.url}`)))}})}disconnect(){this.stopped=!0,this.clearReconnectTimer(),this.stopPing(),this.ws&&(this.ws.onclose=null,this.ws.onerror=null,this.ws.onmessage=null,this.ws.close(),this.ws=null),this.setStatus("disconnected")}send(e){if(!this.ws||this.ws.readyState!==1)throw new pa("WebSocket is not connected");this.ws.send(JSON.stringify(e))}startPing(){this.stopPing(),this.pingInterval>0&&(this.pingTimer=setInterval(()=>{try{this.send({type:"ping"})}catch{}},this.pingInterval))}stopPing(){this.pingTimer!==null&&(clearInterval(this.pingTimer),this.pingTimer=null)}scheduleReconnect(){if(this.reconnectAttempt>=this.maxReconnectAttempts){this.setStatus("disconnected");return}this.setStatus("reconnecting");let e=l9r(this.reconnectInterval*Math.pow(2,this.reconnectAttempt),this.reconnectInterval,h9r);this.reconnectAttempt++,this.reconnectTimer=setTimeout(async()=>{if(!this.stopped)try{await this.connect()}catch{}},e)}clearReconnectTimer(){this.reconnectTimer!==null&&(clearTimeout(this.reconnectTimer),this.reconnectTimer=null)}setStatus(e){if(this._status!==e){this._status=e;for(let t of this.statusHandlers)t(e)}}},e0t=Object.freeze({p:0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffedn,n:0x1000000000000000000000000000000014def9dea2f79cd65812631a5cf5d3edn,h:8n,a:0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffecn,d:0x52036cee2b6ffe738cc740797779e89800700a4d4141d8ab75eb4dca135978a3n,Gx:0x216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51an,Gy:0x6666666666666666666666666666666666666666666666666666666666666658n}),{p:yZ,n:mZ,Gx:Imt,Gy:Omt,a:d3e,d:l3e,h:g9r}=e0t,xZ=32,b9r=(...e)=>{"captureStackTrace"in Error&&typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(...e)},Cs=(e="")=>{let t=new Error(e);throw b9r(t,Cs),t},_9r=e=>typeof e=="bigint",v9r=e=>typeof e=="string",w9r=e=>e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name==="Uint8Array"&&"BYTES_PER_ELEMENT"in e&&e.BYTES_PER_ELEMENT===1,fh=(e,t,r="")=>{let n=w9r(e),i=e?.length,o=t!==void 0;if(!n||o&&i!==t){let s=r&&`"${r}" `,a=o?` of length ${t}`:"",c=n?`length=${i}`:`type=${typeof e}`,u=s+"expected Uint8Array"+a+", got "+c;throw n?new RangeError(u):new TypeError(u)}return e},EZ=e=>new Uint8Array(e),A3e=e=>Uint8Array.from(e),t0t=(e,t)=>e.toString(16).padStart(t,"0"),S3e=e=>Array.from(fh(e)).map(t=>t0t(t,2)).join(""),uh={_0:48,_9:57,A:65,F:70,a:97,f:102},Cmt=e=>{if(e>=uh._0&&e<=uh._9)return e-uh._0;if(e>=uh.A&&e<=uh.F)return e-(uh.A-10);if(e>=uh.a&&e<=uh.f)return e-(uh.a-10)},T3e=e=>{let t="hex invalid";if(!v9r(e))return Cs(t);let r=e.length,n=r/2;if(r%2)return Cs(t);let i=EZ(n);for(let o=0,s=0;o<n;o++,s+=2){let a=Cmt(e.charCodeAt(s)),c=Cmt(e.charCodeAt(s+1));if(a===void 0||c===void 0)return Cs(t);i[o]=a*16+c}return i},r0t=()=>globalThis?.crypto,x9r=()=>r0t()?.subtle??Cs("crypto.subtle must be defined, consider polyfill"),JA=(...e)=>{let t=0;for(let i of e)t+=fh(i).length;let r=EZ(t),n=0;return e.forEach(i=>{r.set(i,n),n+=i.length}),r},E9r=(e=xZ)=>r0t().getRandomValues(EZ(e)),gZ=BigInt,s4=(e,t,r,n="bad number: out of range")=>{if(!_9r(e))throw new TypeError(n);if(t<=e&&e<r)return e;throw new RangeError(n)},Rn=(e,t=yZ)=>{let r=e%t;return r>=0n?r:t+r},kmt=(1n<<255n)-1n,Ke=e=>{e<0n&&Cs("negative coordinate");let t=(e>>255n)*19n+(e&kmt);return t=(t>>255n)*19n+(t&kmt),t%yZ},n0t=e=>Rn(e,mZ),i0t=(e,t)=>{(e===0n||t<=0n)&&Cs("no inverse n="+e+" mod="+t);let r=Rn(e,t),n=t,i=0n,o=1n;for(;r!==0n;){let s=n/r,a=n%r,c=i-o*s;n=r,r=a,i=o,o=c}return n===1n?Rn(i,t):Cs("no inverse")},o0t=e=>{let t=d0t[e];return typeof t!="function"&&Cs("hashes."+e+" not set"),t},s0t=e=>fh(e,64,"digest"),p3e=e=>e instanceof dB?e:Cs("Point expected"),b3e=2n**256n,dB=class a4{static BASE;static ZERO;X;Y;Z;T;constructor(t,r,n,i){let o=b3e;this.X=s4(t,0n,o),this.Y=s4(r,0n,o),this.Z=s4(n,1n,o),this.T=s4(i,0n,o),Object.freeze(this)}static CURVE(){return e0t}static fromAffine(t){return new a4(t.x,t.y,1n,Ke(t.x*t.y))}static fromBytes(t,r=!1){let n=l3e,i=A3e(fh(t,xZ)),o=t[31];i[31]=o&-129;let s=c0t(i);s4(s,0n,r?b3e:yZ);let c=Ke(s*s),u=Rn(c-1n),d=Ke(n*c+1n),{isValid:l,value:p}=S9r(u,d);l||Cs("bad point: y not sqrt");let f=(p&1n)===1n,m=(o&128)!==0;return!r&&p===0n&&m&&Cs("bad point: x==0, isLastByteOdd"),m!==f&&(p=Rn(-p)),new a4(p,s,1n,Ke(p*s))}static fromHex(t,r){return a4.fromBytes(T3e(t),r)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}assertValidity(){let t=d3e,r=l3e,n=this;if(n.is0())return Cs("bad point: ZERO");let{X:i,Y:o,Z:s,T:a}=n,c=Ke(i*i),u=Ke(o*o),d=Ke(s*s),l=Ke(d*d),p=Ke(c*t),f=Ke(d*(p+u)),m=Rn(l+Ke(r*Ke(c*u)));if(f!==m)return Cs("bad point: equation left != right (1)");let h=Ke(i*o),y=Ke(s*a);return h!==y?Cs("bad point: equation left != right (2)"):this}equals(t){let{X:r,Y:n,Z:i}=this,{X:o,Y:s,Z:a}=p3e(t),c=Ke(r*a),u=Ke(o*i),d=Ke(n*a),l=Ke(s*i);return c===u&&d===l}is0(){return this.equals(l4)}negate(){return new a4(Rn(-this.X),this.Y,this.Z,Rn(-this.T))}double(){let{X:t,Y:r,Z:n}=this,i=d3e,o=Ke(t*t),s=Ke(r*r),a=Ke(2n*n*n),c=Ke(i*o),u=Rn(t+r),d=Rn(Ke(u*u)-o-s),l=Rn(c+s),p=Rn(l-a),f=Rn(c-s),m=Ke(d*p),h=Ke(l*f),y=Ke(d*f),w=Ke(p*l);return new a4(m,h,w,y)}add(t){let{X:r,Y:n,Z:i,T:o}=this,{X:s,Y:a,Z:c,T:u}=p3e(t),d=d3e,l=l3e,p=Ke(r*s),f=Ke(n*a),m=Ke(Ke(o*l)*u),h=Ke(i*c),y=Rn(Ke(Rn(r+n)*Rn(s+a))-p-f),w=Rn(h-m),x=Rn(h+m),_=Rn(f-Ke(d*p)),v=Ke(y*w),E=Ke(x*_),A=Ke(y*_),S=Ke(w*x);return new a4(v,E,S,A)}subtract(t){return this.add(p3e(t).negate())}multiply(t,r=!0){if(!r&&t===0n||(s4(t,1n,mZ),!r&&this.is0()))return l4;if(t===1n)return this;if(this.equals(f4))return j9r(t).p;let n=l4,i=f4;for(let o=this;t>0n;o=o.double(),t>>=1n)t&1n?n=n.add(o):r&&(i=i.add(o));return n}multiplyUnsafe(t){return this.multiply(t,!1)}toAffine(){let{X:t,Y:r,Z:n}=this;if(this.equals(l4))return{x:0n,y:1n};let i=i0t(n,yZ);Ke(n*i)!==1n&&Cs("invalid inverse");let o=Ke(t*i),s=Ke(r*i);return{x:o,y:s}}toBytes(){let{x:t,y:r}=this.toAffine(),n=a0t(r);return n[31]|=t&1n?128:0,n}toHex(){return S3e(this.toBytes())}clearCofactor(){return this.multiply(gZ(g9r),!1)}isSmallOrder(){return this.clearCofactor().is0()}isTorsionFree(){let t=this.multiply(mZ/2n,!1).double();return mZ%2n&&(t=t.add(this)),t.is0()}},f4=new dB(Imt,Omt,1n,Rn(Imt*Omt)),l4=new dB(0n,1n,1n,0n);dB.BASE=f4;dB.ZERO=l4;a0t=e=>T3e(t0t(s4(e,0n,b3e),64)).reverse(),c0t=e=>gZ("0x"+S3e(A3e(fh(e)).reverse())),Mm=(e,t)=>{let r=e;for(;t-- >0n;)r=Ke(r*r);return r},A9r=e=>{let t=Ke(e*e),r=Ke(t*e),n=Ke(Mm(r,2n)*r),i=Ke(Mm(n,1n)*e),o=Ke(Mm(i,5n)*i),s=Ke(Mm(o,10n)*o),a=Ke(Mm(s,20n)*s),c=Ke(Mm(a,40n)*a),u=Ke(Mm(c,80n)*c),d=Ke(Mm(u,80n)*c),l=Ke(Mm(d,10n)*o);return{pow_p_5_8:Ke(Mm(l,2n)*e),b2:r}},Rmt=0x2b8324804fc1df0b2b4d00993dfbd7a72f431806ad2fe478c4ee1b274a0ea0b0n,S9r=(e,t)=>{let r=Ke(t*Ke(t*t)),n=Ke(Ke(r*r)*t),i=A9r(Ke(e*n)).pow_p_5_8,o=Ke(e*Ke(r*i)),s=Ke(t*Ke(o*o)),a=o,c=Ke(o*Rmt),u=s===e,d=s===Rn(-e),l=s===Rn(-e*Rmt);return u&&(o=a),(d||l)&&(o=c),(Rn(o)&1n)===1n&&(o=Rn(-o)),{isValid:u||d,value:o}},_3e=e=>n0t(c0t(e)),P3e=(...e)=>Promise.resolve(o0t("sha512Async")(JA(...e))).then(s0t),T9r=(...e)=>s0t(o0t("sha512")(JA(...e))),u0t=e=>{let t=A3e(e),r=t.slice(0,32);r[0]&=248,r[31]&=127,r[31]|=64;let n=t.slice(32,64),i=_3e(r),o=f4.multiply(i),s=o.toBytes();return{head:r,prefix:n,scalar:i,point:o,pointBytes:s}},P9r=e=>P3e(fh(e,xZ)).then(u0t),I9r=e=>u0t(T9r(fh(e,xZ))),O9r=e=>I9r(e).pointBytes,C9r=e=>P3e(e.hashable).then(e.finish),k9r=(e,t,r)=>{let{pointBytes:n,scalar:i}=e,o=_3e(t),s=f4.multiply(o).toBytes();return{hashable:JA(s,n,r),finish:u=>{let d=n0t(o+_3e(u)*i);return fh(JA(s,a0t(d)),64)}}},R9r=async(e,t)=>{let r=fh(e),n=await P9r(t),i=await P3e(n.prefix,r);return C9r(k9r(n,i,r))},I3e=Object.freeze({bytesToHex:S3e,hexToBytes:T3e,concatBytes:JA,mod:Rn,invert:i0t,randomBytes:E9r}),d0t={sha512Async:async e=>{let t=x9r(),r=JA(e);return EZ(await t.digest("SHA-512",r.buffer))},sha512:void 0},bZ=8,B9r=256,l0t=Math.ceil(B9r/bZ)+1,v3e=2**(bZ-1),N9r=()=>{let e=[],t=f4,r=t;for(let n=0;n<l0t;n++){r=t,e.push(r);for(let i=1;i<v3e;i++)r=r.add(t),e.push(r);t=r.double()}return e},Bmt=void 0,Nmt=(e,t)=>{let r=t.negate();return e?r:t},j9r=e=>{let t=Bmt||(Bmt=N9r()),r=l4,n=f4,i=2**bZ,o=i,s=gZ(i-1),a=gZ(bZ);for(let c=0;c<l0t;c++){let u=Number(e&s);e>>=a,u>v3e&&(u-=o,e+=1n);let d=c*v3e,l=d,p=d+Math.abs(u)-1,f=c%2!==0,m=u<0;u===0?n=n.add(Nmt(f,t[l])):r=r.add(Nmt(m,t[p]))}return e!==0n&&Cs("invalid wnaf"),{p:r,f:n}};m0t=e=>({oid:Uint8Array.from([6,9,96,134,72,1,101,3,4,2,e])});h0t=class{blockLen;outputLen;canXOF=!1;padOffset;isLE;buffer;view;finished=!1;length=0;pos=0;destroyed=!1;constructor(e,t,r,n){this.blockLen=e,this.outputLen=t,this.padOffset=r,this.isLE=n,this.buffer=new Uint8Array(e),this.view=f3e(this.buffer)}update(e){jmt(this),p0t(e);let{view:t,buffer:r,blockLen:n}=this,i=e.length;for(let o=0;o<i;){let s=Math.min(n-this.pos,i-o);if(s===n){let a=f3e(e);for(;n<=i-o;o+=n)this.process(a,o);continue}r.set(e.subarray(o,o+s),this.pos),this.pos+=s,o+=s,this.pos===n&&(this.process(t,0),this.pos=0)}return this.length+=e.length,this.roundClean(),this}digestInto(e){jmt(this),q9r(e,this),this.finished=!0;let{buffer:t,view:r,blockLen:n,isLE:i}=this,{pos:o}=this;t[o++]=128,uB(this.buffer.subarray(o)),this.padOffset>n-o&&(this.process(r,0),o=0);for(let d=o;d<n;d++)t[d]=0;r.setBigUint64(n-8,BigInt(this.length*8),i),this.process(r,0);let s=f3e(e),a=this.outputLen;if(a%4)throw new Error("_sha2: outputLen must be aligned to 32bit");let c=a/4,u=this.get();if(c>u.length)throw new Error("_sha2: outputLen bigger than state");for(let d=0;d<c;d++)s.setUint32(4*d,u[d],i)}digest(){let{buffer:e,outputLen:t}=this;this.digestInto(e);let r=e.slice(0,t);return this.destroy(),r}_cloneInto(e){e||=new this.constructor,e.set(...this.get());let{blockLen:t,buffer:r,length:n,finished:i,destroyed:o,pos:s}=this;return e.destroyed=o,e.finished=i,e.length=n,e.pos=s,n%t&&e.buffer.set(r),e}clone(){return this._cloneInto()}},g2=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),fa=Uint32Array.from([1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209]),cZ=BigInt(2**32-1),Umt=BigInt(32);qmt=(e,t,r)=>e>>>r,Mmt=(e,t,r)=>e<<32-r|t>>>r,VA=(e,t,r)=>e>>>r|t<<32-r,KA=(e,t,r)=>e<<32-r|t>>>r,uZ=(e,t,r)=>e<<64-r|t>>>r-32,dZ=(e,t,r)=>e>>>r-32|t<<64-r;H9r=(e,t,r)=>(e>>>0)+(t>>>0)+(r>>>0),F9r=(e,t,r,n)=>t+r+n+(e/2**32|0)|0,$9r=(e,t,r,n)=>(e>>>0)+(t>>>0)+(r>>>0)+(n>>>0),V9r=(e,t,r,n,i)=>t+r+n+i+(e/2**32|0)|0,K9r=(e,t,r,n,i)=>(e>>>0)+(t>>>0)+(r>>>0)+(n>>>0)+(i>>>0),W9r=(e,t,r,n,i,o)=>t+r+n+i+o+(e/2**32|0)|0,G9r=Uint32Array.from([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),b2=new Uint32Array(64),J9r=class extends h0t{constructor(e){super(64,e,8,!1)}get(){let{A:e,B:t,C:r,D:n,E:i,F:o,G:s,H:a}=this;return[e,t,r,n,i,o,s,a]}set(e,t,r,n,i,o,s,a){this.A=e|0,this.B=t|0,this.C=r|0,this.D=n|0,this.E=i|0,this.F=o|0,this.G=s|0,this.H=a|0}process(e,t){for(let d=0;d<16;d++,t+=4)b2[d]=e.getUint32(t,!1);for(let d=16;d<64;d++){let l=b2[d-15],p=b2[d-2],f=Dm(l,7)^Dm(l,18)^l>>>3,m=Dm(p,17)^Dm(p,19)^p>>>10;b2[d]=m+b2[d-7]+f+b2[d-16]|0}let{A:r,B:n,C:i,D:o,E:s,F:a,G:c,H:u}=this;for(let d=0;d<64;d++){let l=Dm(s,6)^Dm(s,11)^Dm(s,25),p=u+l+M9r(s,a,c)+G9r[d]+b2[d]|0,m=(Dm(r,2)^Dm(r,13)^Dm(r,22))+D9r(r,n,i)|0;u=c,c=a,a=s,s=o+p|0,o=i,i=n,n=r,r=p+m|0}r=r+this.A|0,n=n+this.B|0,i=i+this.C|0,o=o+this.D|0,s=s+this.E|0,a=a+this.F|0,c=c+this.G|0,u=u+this.H|0,this.set(r,n,i,o,s,a,c,u)}roundClean(){uB(b2)}destroy(){this.destroyed=!0,this.set(0,0,0,0,0,0,0,0),uB(this.buffer)}},Y9r=class extends J9r{A=g2[0]|0;B=g2[1]|0;C=g2[2]|0;D=g2[3]|0;E=g2[4]|0;F=g2[5]|0;G=g2[6]|0;H=g2[7]|0;constructor(){super(32)}},y0t=z9r(["0x428a2f98d728ae22","0x7137449123ef65cd","0xb5c0fbcfec4d3b2f","0xe9b5dba58189dbbc","0x3956c25bf348b538","0x59f111f1b605d019","0x923f82a4af194f9b","0xab1c5ed5da6d8118","0xd807aa98a3030242","0x12835b0145706fbe","0x243185be4ee4b28c","0x550c7dc3d5ffb4e2","0x72be5d74f27b896f","0x80deb1fe3b1696b1","0x9bdc06a725c71235","0xc19bf174cf692694","0xe49b69c19ef14ad2","0xefbe4786384f25e3","0x0fc19dc68b8cd5b5","0x240ca1cc77ac9c65","0x2de92c6f592b0275","0x4a7484aa6ea6e483","0x5cb0a9dcbd41fbd4","0x76f988da831153b5","0x983e5152ee66dfab","0xa831c66d2db43210","0xb00327c898fb213f","0xbf597fc7beef0ee4","0xc6e00bf33da88fc2","0xd5a79147930aa725","0x06ca6351e003826f","0x142929670a0e6e70","0x27b70a8546d22ffc","0x2e1b21385c26c926","0x4d2c6dfc5ac42aed","0x53380d139d95b3df","0x650a73548baf63de","0x766a0abb3c77b2a8","0x81c2c92e47edaee6","0x92722c851482353b","0xa2bfe8a14cf10364","0xa81a664bbc423001","0xc24b8b70d0f89791","0xc76c51a30654be30","0xd192e819d6ef5218","0xd69906245565a910","0xf40e35855771202a","0x106aa07032bbd1b8","0x19a4c116b8d2d0c8","0x1e376c085141ab53","0x2748774cdf8eeb99","0x34b0bcb5e19b48a8","0x391c0cb3c5c95a63","0x4ed8aa4ae3418acb","0x5b9cca4f7763e373","0x682e6ff3d6b2b8a3","0x748f82ee5defb2fc","0x78a5636f43172f60","0x84c87814a1f0ab72","0x8cc702081a6439ec","0x90befffa23631e28","0xa4506cebde82bde9","0xbef9a3f7b2c67915","0xc67178f2e372532b","0xca273eceea26619c","0xd186b8c721c0c207","0xeada7dd6cde0eb1e","0xf57d4f7fee6ed178","0x06f067aa72176fba","0x0a637dc5a2c898a6","0x113f9804bef90dae","0x1b710b35131c471b","0x28db77f523047d84","0x32caab7b40c72493","0x3c9ebe0a15c9bebc","0x431d67c49c100d4c","0x4cc5d4becb3e42b6","0x597f299cfc657e2a","0x5fcb6fab3ad6faec","0x6c44198c4a475817"].map(e=>BigInt(e))),Z9r=y0t[0],X9r=y0t[1],_2=new Uint32Array(80),v2=new Uint32Array(80),Q9r=class extends h0t{constructor(e){super(128,e,16,!1)}get(){let{Ah:e,Al:t,Bh:r,Bl:n,Ch:i,Cl:o,Dh:s,Dl:a,Eh:c,El:u,Fh:d,Fl:l,Gh:p,Gl:f,Hh:m,Hl:h}=this;return[e,t,r,n,i,o,s,a,c,u,d,l,p,f,m,h]}set(e,t,r,n,i,o,s,a,c,u,d,l,p,f,m,h){this.Ah=e|0,this.Al=t|0,this.Bh=r|0,this.Bl=n|0,this.Ch=i|0,this.Cl=o|0,this.Dh=s|0,this.Dl=a|0,this.Eh=c|0,this.El=u|0,this.Fh=d|0,this.Fl=l|0,this.Gh=p|0,this.Gl=f|0,this.Hh=m|0,this.Hl=h|0}process(e,t){for(let x=0;x<16;x++,t+=4)_2[x]=e.getUint32(t),v2[x]=e.getUint32(t+=4);for(let x=16;x<80;x++){let _=_2[x-15]|0,v=v2[x-15]|0,E=VA(_,v,1)^VA(_,v,8)^qmt(_,v,7),A=KA(_,v,1)^KA(_,v,8)^Mmt(_,v,7),S=_2[x-2]|0,C=v2[x-2]|0,I=VA(S,C,19)^uZ(S,C,61)^qmt(S,C,6),k=KA(S,C,19)^dZ(S,C,61)^Mmt(S,C,6),q=$9r(A,k,v2[x-7],v2[x-16]),j=V9r(q,E,I,_2[x-7],_2[x-16]);_2[x]=j|0,v2[x]=q|0}let{Ah:r,Al:n,Bh:i,Bl:o,Ch:s,Cl:a,Dh:c,Dl:u,Eh:d,El:l,Fh:p,Fl:f,Gh:m,Gl:h,Hh:y,Hl:w}=this;for(let x=0;x<80;x++){let _=VA(d,l,14)^VA(d,l,18)^uZ(d,l,41),v=KA(d,l,14)^KA(d,l,18)^dZ(d,l,41),E=d&p^~d&m,A=l&f^~l&h,S=K9r(w,v,A,X9r[x],v2[x]),C=W9r(S,y,_,E,Z9r[x],_2[x]),I=S|0,k=VA(r,n,28)^uZ(r,n,34)^uZ(r,n,39),q=KA(r,n,28)^dZ(r,n,34)^dZ(r,n,39),j=r&i^r&s^i&s,U=n&o^n&a^o&a;y=m|0,w=h|0,m=p|0,h=f|0,p=d|0,f=l|0,{h:d,l}=dh(c|0,u|0,C|0,I|0),c=s|0,u=a|0,s=i|0,a=o|0,i=r|0,o=n|0;let B=H9r(I,q,U);r=F9r(B,C,k,j),n=B|0}({h:r,l:n}=dh(this.Ah|0,this.Al|0,r|0,n|0)),{h:i,l:o}=dh(this.Bh|0,this.Bl|0,i|0,o|0),{h:s,l:a}=dh(this.Ch|0,this.Cl|0,s|0,a|0),{h:c,l:u}=dh(this.Dh|0,this.Dl|0,c|0,u|0),{h:d,l}=dh(this.Eh|0,this.El|0,d|0,l|0),{h:p,l:f}=dh(this.Fh|0,this.Fl|0,p|0,f|0),{h:m,l:h}=dh(this.Gh|0,this.Gl|0,m|0,h|0),{h:y,l:w}=dh(this.Hh|0,this.Hl|0,y|0,w|0),this.set(r,n,i,o,s,a,c,u,d,l,p,f,m,h,y,w)}roundClean(){uB(_2,v2)}destroy(){this.destroyed=!0,uB(this.buffer),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}},exr=class extends Q9r{Ah=fa[0]|0;Al=fa[1]|0;Bh=fa[2]|0;Bl=fa[3]|0;Ch=fa[4]|0;Cl=fa[5]|0;Dh=fa[6]|0;Dl=fa[7]|0;Eh=fa[8]|0;El=fa[9]|0;Fh=fa[10]|0;Fl=fa[11]|0;Gh=fa[12]|0;Gl=fa[13]|0;Hh=fa[14]|0;Hl=fa[15]|0;constructor(){super(64)}},txr=f0t(()=>new Y9r,m0t(1)),rxr=f0t(()=>new exr,m0t(3)),Dmt=d0t;Dmt.sha512||(Dmt.sha512=e=>rxr(e));oxr=I3e.bytesToHex,g0t=I3e.hexToBytes;I3e.concatBytes;axr=new TextEncoder,cxr={subwayAgentMsgV1:"message_id;sender_peer_id;sender_name;timestamp_ms;message_type;payload_hash;nonce"};g0t("302e020100300506032b657004220420");g0t("302a300506032b6570032100");b0t="ABCDEFGHJKLMNPQRSTUVWXYZ23456789",pxr=b0t.length-1;if((b0t.length&pxr)!==0)throw new Error("agent pairing code alphabet must contain a power-of-two number of symbols");_0t=Object.freeze({p:0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffedn,n:0x1000000000000000000000000000000014def9dea2f79cd65812631a5cf5d3edn,h:8n,a:0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffecn,d:0x52036cee2b6ffe738cc740797779e89800700a4d4141d8ab75eb4dca135978a3n,Gx:0x216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51an,Gy:0x6666666666666666666666666666666666666666666666666666666666666658n}),{p:_Z,n:hZ,Gx:Lmt,Gy:zmt,a:m3e,d:h3e,h:fxr}=_0t,YA=32,mxr=(...e)=>{"captureStackTrace"in Error&&typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(...e)},ks=(e="")=>{let t=new Error(e);throw mxr(t,ks),t},hxr=e=>typeof e=="bigint",yxr=e=>typeof e=="string",gxr=e=>e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name==="Uint8Array"&&"BYTES_PER_ELEMENT"in e&&e.BYTES_PER_ELEMENT===1,A2=(e,t,r="")=>{let n=gxr(e),i=e?.length,o=t!==void 0;if(!n||o&&i!==t){let s=r&&`"${r}" `,a=o?` of length ${t}`:"",c=n?`length=${i}`:`type=${typeof e}`,u=s+"expected Uint8Array"+a+", got "+c;throw n?new RangeError(u):new TypeError(u)}return e},AZ=e=>new Uint8Array(e),O3e=e=>Uint8Array.from(e),v0t=(e,t)=>e.toString(16).padStart(t,"0"),w0t=e=>Array.from(A2(e)).map(t=>v0t(t,2)).join(""),lh={_0:48,_9:57,A:65,F:70,a:97,f:102},Hmt=e=>{if(e>=lh._0&&e<=lh._9)return e-lh._0;if(e>=lh.A&&e<=lh.F)return e-(lh.A-10);if(e>=lh.a&&e<=lh.f)return e-(lh.a-10)},x0t=e=>{let t="hex invalid";if(!yxr(e))return ks(t);let r=e.length,n=r/2;if(r%2)return ks(t);let i=AZ(n);for(let o=0,s=0;o<n;o++,s+=2){let a=Hmt(e.charCodeAt(s)),c=Hmt(e.charCodeAt(s+1));if(a===void 0||c===void 0)return ks(t);i[o]=a*16+c}return i},E0t=()=>globalThis?.crypto,bxr=()=>E0t()?.subtle??ks("crypto.subtle must be defined, consider polyfill"),C3e=(...e)=>{let t=0;for(let i of e)t+=A2(i).length;let r=AZ(t),n=0;return e.forEach(i=>{r.set(i,n),n+=i.length}),r},_xr=(e=YA)=>E0t().getRandomValues(AZ(e)),vZ=BigInt,c4=(e,t,r,n="bad number: out of range")=>{if(!hxr(e))throw new TypeError(n);if(t<=e&&e<r)return e;throw new RangeError(n)},Gn=(e,t=_Z)=>{let r=e%t;return r>=0n?r:t+r},Fmt=(1n<<255n)-1n,We=e=>{e<0n&&ks("negative coordinate");let t=(e>>255n)*19n+(e&Fmt);return t=(t>>255n)*19n+(t&Fmt),t%_Z},vxr=e=>Gn(e,hZ),wxr=(e,t)=>{(e===0n||t<=0n)&&ks("no inverse n="+e+" mod="+t);let r=Gn(e,t),n=t,i=0n,o=1n;for(;r!==0n;){let s=n/r,a=n%r,c=i-o*s;n=r,r=a,i=o,o=c}return n===1n?Gn(i,t):ks("no inverse")},A0t=e=>{let t=O0t[e];return typeof t!="function"&&ks("hashes."+e+" not set"),t},S0t=e=>A2(e,64,"digest"),y3e=e=>e instanceof lB?e:ks("Point expected"),w3e=2n**256n,lB=class u4{static BASE;static ZERO;X;Y;Z;T;constructor(t,r,n,i){let o=w3e;this.X=c4(t,0n,o),this.Y=c4(r,0n,o),this.Z=c4(n,1n,o),this.T=c4(i,0n,o),Object.freeze(this)}static CURVE(){return _0t}static fromAffine(t){return new u4(t.x,t.y,1n,We(t.x*t.y))}static fromBytes(t,r=!1){let n=h3e,i=O3e(A2(t,YA)),o=t[31];i[31]=o&-129;let s=T0t(i);c4(s,0n,r?w3e:_Z);let c=We(s*s),u=Gn(c-1n),d=We(n*c+1n),{isValid:l,value:p}=Axr(u,d);l||ks("bad point: y not sqrt");let f=(p&1n)===1n,m=(o&128)!==0;return!r&&p===0n&&m&&ks("bad point: x==0, isLastByteOdd"),m!==f&&(p=Gn(-p)),new u4(p,s,1n,We(p*s))}static fromHex(t,r){return u4.fromBytes(x0t(t),r)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}assertValidity(){let t=m3e,r=h3e,n=this;if(n.is0())return ks("bad point: ZERO");let{X:i,Y:o,Z:s,T:a}=n,c=We(i*i),u=We(o*o),d=We(s*s),l=We(d*d),p=We(c*t),f=We(d*(p+u)),m=Gn(l+We(r*We(c*u)));if(f!==m)return ks("bad point: equation left != right (1)");let h=We(i*o),y=We(s*a);return h!==y?ks("bad point: equation left != right (2)"):this}equals(t){let{X:r,Y:n,Z:i}=this,{X:o,Y:s,Z:a}=y3e(t),c=We(r*a),u=We(o*i),d=We(n*a),l=We(s*i);return c===u&&d===l}is0(){return this.equals(p4)}negate(){return new u4(Gn(-this.X),this.Y,this.Z,Gn(-this.T))}double(){let{X:t,Y:r,Z:n}=this,i=m3e,o=We(t*t),s=We(r*r),a=We(2n*n*n),c=We(i*o),u=Gn(t+r),d=Gn(We(u*u)-o-s),l=Gn(c+s),p=Gn(l-a),f=Gn(c-s),m=We(d*p),h=We(l*f),y=We(d*f),w=We(p*l);return new u4(m,h,w,y)}add(t){let{X:r,Y:n,Z:i,T:o}=this,{X:s,Y:a,Z:c,T:u}=y3e(t),d=m3e,l=h3e,p=We(r*s),f=We(n*a),m=We(We(o*l)*u),h=We(i*c),y=Gn(We(Gn(r+n)*Gn(s+a))-p-f),w=Gn(h-m),x=Gn(h+m),_=Gn(f-We(d*p)),v=We(y*w),E=We(x*_),A=We(y*_),S=We(w*x);return new u4(v,E,S,A)}subtract(t){return this.add(y3e(t).negate())}multiply(t,r=!0){if(!r&&t===0n||(c4(t,1n,hZ),!r&&this.is0()))return p4;if(t===1n)return this;if(this.equals(ZA))return Nxr(t).p;let n=p4,i=ZA;for(let o=this;t>0n;o=o.double(),t>>=1n)t&1n?n=n.add(o):r&&(i=i.add(o));return n}multiplyUnsafe(t){return this.multiply(t,!1)}toAffine(){let{X:t,Y:r,Z:n}=this;if(this.equals(p4))return{x:0n,y:1n};let i=wxr(n,_Z);We(n*i)!==1n&&ks("invalid inverse");let o=We(t*i),s=We(r*i);return{x:o,y:s}}toBytes(){let{x:t,y:r}=this.toAffine(),n=xxr(r);return n[31]|=t&1n?128:0,n}toHex(){return w0t(this.toBytes())}clearCofactor(){return this.multiply(vZ(fxr),!1)}isSmallOrder(){return this.clearCofactor().is0()}isTorsionFree(){let t=this.multiply(hZ/2n,!1).double();return hZ%2n&&(t=t.add(this)),t.is0()}},ZA=new lB(Lmt,zmt,1n,Gn(Lmt*zmt)),p4=new lB(0n,1n,1n,0n);lB.BASE=ZA;lB.ZERO=p4;xxr=e=>x0t(v0t(c4(e,0n,w3e),64)).reverse(),T0t=e=>vZ("0x"+w0t(O3e(A2(e)).reverse())),Lm=(e,t)=>{let r=e;for(;t-- >0n;)r=We(r*r);return r},Exr=e=>{let t=We(e*e),r=We(t*e),n=We(Lm(r,2n)*r),i=We(Lm(n,1n)*e),o=We(Lm(i,5n)*i),s=We(Lm(o,10n)*o),a=We(Lm(s,20n)*s),c=We(Lm(a,40n)*a),u=We(Lm(c,80n)*c),d=We(Lm(u,80n)*c),l=We(Lm(d,10n)*o);return{pow_p_5_8:We(Lm(l,2n)*e),b2:r}},$mt=0x2b8324804fc1df0b2b4d00993dfbd7a72f431806ad2fe478c4ee1b274a0ea0b0n,Axr=(e,t)=>{let r=We(t*We(t*t)),n=We(We(r*r)*t),i=Exr(We(e*n)).pow_p_5_8,o=We(e*We(r*i)),s=We(t*We(o*o)),a=o,c=We(o*$mt),u=s===e,d=s===Gn(-e),l=s===Gn(-e*$mt);return u&&(o=a),(d||l)&&(o=c),(Gn(o)&1n)===1n&&(o=Gn(-o)),{isValid:u||d,value:o}},Sxr=e=>vxr(T0t(e)),Txr=(...e)=>Promise.resolve(A0t("sha512Async")(C3e(...e))).then(S0t),Pxr=(...e)=>S0t(A0t("sha512")(C3e(...e))),P0t=e=>{let t=O3e(e),r=t.slice(0,32);r[0]&=248,r[31]&=127,r[31]|=64;let n=t.slice(32,64),i=Sxr(r),o=ZA.multiply(i),s=o.toBytes();return{head:r,prefix:n,scalar:i,point:o,pointBytes:s}},Ixr=e=>Txr(A2(e,YA)).then(P0t),I0t=e=>P0t(Pxr(A2(e,YA))),Oxr=e=>I0t(e).pointBytes,O0t={sha512Async:async e=>{let t=bxr(),r=C3e(e);return AZ(await t.digest("SHA-512",r.buffer))},sha512:void 0},Cxr=e=>(e=e===void 0?_xr(YA):e,A2(e,YA)),kxr=Object.freeze({getExtendedPublicKeyAsync:Ixr,getExtendedPublicKey:I0t,randomSecretKey:Cxr}),wZ=8,Rxr=256,C0t=Math.ceil(Rxr/wZ)+1,x3e=2**(wZ-1),Bxr=()=>{let e=[],t=ZA,r=t;for(let n=0;n<C0t;n++){r=t,e.push(r);for(let i=1;i<x3e;i++)r=r.add(t),e.push(r);t=r.double()}return e},Vmt=void 0,Kmt=(e,t)=>{let r=t.negate();return e?r:t},Nxr=e=>{let t=Vmt||(Vmt=Bxr()),r=p4,n=ZA,i=2**wZ,o=i,s=vZ(i-1),a=vZ(wZ);for(let c=0;c<C0t;c++){let u=Number(e&s);e>>=a,u>x3e&&(u-=o,e+=1n);let d=c*x3e,l=d,p=d+Math.abs(u)-1,f=c%2!==0,m=u<0;u===0?n=n.add(Kmt(f,t[l])):r=r.add(Kmt(m,t[p]))}return e!==0n&&ks("invalid wnaf"),{p:r,f:n}};Mxr=e=>({oid:Uint8Array.from([6,9,96,134,72,1,101,3,4,2,e])}),Dxr=class{blockLen;outputLen;canXOF=!1;padOffset;isLE;buffer;view;finished=!1;length=0;pos=0;destroyed=!1;constructor(e,t,r,n){this.blockLen=e,this.outputLen=t,this.padOffset=r,this.isLE=n,this.buffer=new Uint8Array(e),this.view=g3e(this.buffer)}update(e){Wmt(this),k0t(e);let{view:t,buffer:r,blockLen:n}=this,i=e.length;for(let o=0;o<i;){let s=Math.min(n-this.pos,i-o);if(s===n){let a=g3e(e);for(;n<=i-o;o+=n)this.process(a,o);continue}r.set(e.subarray(o,o+s),this.pos),this.pos+=s,o+=s,this.pos===n&&(this.process(t,0),this.pos=0)}return this.length+=e.length,this.roundClean(),this}digestInto(e){Wmt(this),Uxr(e,this),this.finished=!0;let{buffer:t,view:r,blockLen:n,isLE:i}=this,{pos:o}=this;t[o++]=128,E3e(this.buffer.subarray(o)),this.padOffset>n-o&&(this.process(r,0),o=0);for(let d=o;d<n;d++)t[d]=0;r.setBigUint64(n-8,BigInt(this.length*8),i),this.process(r,0);let s=g3e(e),a=this.outputLen;if(a%4)throw new Error("_sha2: outputLen must be aligned to 32bit");let c=a/4,u=this.get();if(c>u.length)throw new Error("_sha2: outputLen bigger than state");for(let d=0;d<c;d++)s.setUint32(4*d,u[d],i)}digest(){let{buffer:e,outputLen:t}=this;this.digestInto(e);let r=e.slice(0,t);return this.destroy(),r}_cloneInto(e){e||=new this.constructor,e.set(...this.get());let{blockLen:t,buffer:r,length:n,finished:i,destroyed:o,pos:s}=this;return e.destroyed=o,e.finished=i,e.length=n,e.pos=s,n%t&&e.buffer.set(r),e}clone(){return this._cloneInto()}},ma=Uint32Array.from([1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209]),lZ=BigInt(2**32-1),Gmt=BigInt(32);Jmt=(e,t,r)=>e>>>r,Ymt=(e,t,r)=>e<<32-r|t>>>r,WA=(e,t,r)=>e>>>r|t<<32-r,GA=(e,t,r)=>e<<32-r|t>>>r,pZ=(e,t,r)=>e<<64-r|t>>>r-32,fZ=(e,t,r)=>e>>>r-32|t<<64-r;Hxr=(e,t,r)=>(e>>>0)+(t>>>0)+(r>>>0),Fxr=(e,t,r,n)=>t+r+n+(e/2**32|0)|0,$xr=(e,t,r,n)=>(e>>>0)+(t>>>0)+(r>>>0)+(n>>>0),Vxr=(e,t,r,n,i)=>t+r+n+i+(e/2**32|0)|0,Kxr=(e,t,r,n,i)=>(e>>>0)+(t>>>0)+(r>>>0)+(n>>>0)+(i>>>0),Wxr=(e,t,r,n,i,o)=>t+r+n+i+o+(e/2**32|0)|0,R0t=zxr(["0x428a2f98d728ae22","0x7137449123ef65cd","0xb5c0fbcfec4d3b2f","0xe9b5dba58189dbbc","0x3956c25bf348b538","0x59f111f1b605d019","0x923f82a4af194f9b","0xab1c5ed5da6d8118","0xd807aa98a3030242","0x12835b0145706fbe","0x243185be4ee4b28c","0x550c7dc3d5ffb4e2","0x72be5d74f27b896f","0x80deb1fe3b1696b1","0x9bdc06a725c71235","0xc19bf174cf692694","0xe49b69c19ef14ad2","0xefbe4786384f25e3","0x0fc19dc68b8cd5b5","0x240ca1cc77ac9c65","0x2de92c6f592b0275","0x4a7484aa6ea6e483","0x5cb0a9dcbd41fbd4","0x76f988da831153b5","0x983e5152ee66dfab","0xa831c66d2db43210","0xb00327c898fb213f","0xbf597fc7beef0ee4","0xc6e00bf33da88fc2","0xd5a79147930aa725","0x06ca6351e003826f","0x142929670a0e6e70","0x27b70a8546d22ffc","0x2e1b21385c26c926","0x4d2c6dfc5ac42aed","0x53380d139d95b3df","0x650a73548baf63de","0x766a0abb3c77b2a8","0x81c2c92e47edaee6","0x92722c851482353b","0xa2bfe8a14cf10364","0xa81a664bbc423001","0xc24b8b70d0f89791","0xc76c51a30654be30","0xd192e819d6ef5218","0xd69906245565a910","0xf40e35855771202a","0x106aa07032bbd1b8","0x19a4c116b8d2d0c8","0x1e376c085141ab53","0x2748774cdf8eeb99","0x34b0bcb5e19b48a8","0x391c0cb3c5c95a63","0x4ed8aa4ae3418acb","0x5b9cca4f7763e373","0x682e6ff3d6b2b8a3","0x748f82ee5defb2fc","0x78a5636f43172f60","0x84c87814a1f0ab72","0x8cc702081a6439ec","0x90befffa23631e28","0xa4506cebde82bde9","0xbef9a3f7b2c67915","0xc67178f2e372532b","0xca273eceea26619c","0xd186b8c721c0c207","0xeada7dd6cde0eb1e","0xf57d4f7fee6ed178","0x06f067aa72176fba","0x0a637dc5a2c898a6","0x113f9804bef90dae","0x1b710b35131c471b","0x28db77f523047d84","0x32caab7b40c72493","0x3c9ebe0a15c9bebc","0x431d67c49c100d4c","0x4cc5d4becb3e42b6","0x597f299cfc657e2a","0x5fcb6fab3ad6faec","0x6c44198c4a475817"].map(e=>BigInt(e))),Gxr=R0t[0],Jxr=R0t[1],w2=new Uint32Array(80),x2=new Uint32Array(80),Yxr=class extends Dxr{constructor(e){super(128,e,16,!1)}get(){let{Ah:e,Al:t,Bh:r,Bl:n,Ch:i,Cl:o,Dh:s,Dl:a,Eh:c,El:u,Fh:d,Fl:l,Gh:p,Gl:f,Hh:m,Hl:h}=this;return[e,t,r,n,i,o,s,a,c,u,d,l,p,f,m,h]}set(e,t,r,n,i,o,s,a,c,u,d,l,p,f,m,h){this.Ah=e|0,this.Al=t|0,this.Bh=r|0,this.Bl=n|0,this.Ch=i|0,this.Cl=o|0,this.Dh=s|0,this.Dl=a|0,this.Eh=c|0,this.El=u|0,this.Fh=d|0,this.Fl=l|0,this.Gh=p|0,this.Gl=f|0,this.Hh=m|0,this.Hl=h|0}process(e,t){for(let x=0;x<16;x++,t+=4)w2[x]=e.getUint32(t),x2[x]=e.getUint32(t+=4);for(let x=16;x<80;x++){let _=w2[x-15]|0,v=x2[x-15]|0,E=WA(_,v,1)^WA(_,v,8)^Jmt(_,v,7),A=GA(_,v,1)^GA(_,v,8)^Ymt(_,v,7),S=w2[x-2]|0,C=x2[x-2]|0,I=WA(S,C,19)^pZ(S,C,61)^Jmt(S,C,6),k=GA(S,C,19)^fZ(S,C,61)^Ymt(S,C,6),q=$xr(A,k,x2[x-7],x2[x-16]),j=Vxr(q,E,I,w2[x-7],w2[x-16]);w2[x]=j|0,x2[x]=q|0}let{Ah:r,Al:n,Bh:i,Bl:o,Ch:s,Cl:a,Dh:c,Dl:u,Eh:d,El:l,Fh:p,Fl:f,Gh:m,Gl:h,Hh:y,Hl:w}=this;for(let x=0;x<80;x++){let _=WA(d,l,14)^WA(d,l,18)^pZ(d,l,41),v=GA(d,l,14)^GA(d,l,18)^fZ(d,l,41),E=d&p^~d&m,A=l&f^~l&h,S=Kxr(w,v,A,Jxr[x],x2[x]),C=Wxr(S,y,_,E,Gxr[x],w2[x]),I=S|0,k=WA(r,n,28)^pZ(r,n,34)^pZ(r,n,39),q=GA(r,n,28)^fZ(r,n,34)^fZ(r,n,39),j=r&i^r&s^i&s,U=n&o^n&a^o&a;y=m|0,w=h|0,m=p|0,h=f|0,p=d|0,f=l|0,{h:d,l}=ph(c|0,u|0,C|0,I|0),c=s|0,u=a|0,s=i|0,a=o|0,i=r|0,o=n|0;let B=Hxr(I,q,U);r=Fxr(B,C,k,j),n=B|0}({h:r,l:n}=ph(this.Ah|0,this.Al|0,r|0,n|0)),{h:i,l:o}=ph(this.Bh|0,this.Bl|0,i|0,o|0),{h:s,l:a}=ph(this.Ch|0,this.Cl|0,s|0,a|0),{h:c,l:u}=ph(this.Dh|0,this.Dl|0,c|0,u|0),{h:d,l}=ph(this.Eh|0,this.El|0,d|0,l|0),{h:p,l:f}=ph(this.Fh|0,this.Fl|0,p|0,f|0),{h:m,l:h}=ph(this.Gh|0,this.Gl|0,m|0,h|0),{h:y,l:w}=ph(this.Hh|0,this.Hl|0,y|0,w|0),this.set(r,n,i,o,s,a,c,u,d,l,p,f,m,h,y,w)}roundClean(){E3e(w2,x2)}destroy(){this.destroyed=!0,E3e(this.buffer),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}},Zxr=class extends Yxr{Ah=ma[0]|0;Al=ma[1]|0;Bh=ma[2]|0;Bl=ma[3]|0;Ch=ma[4]|0;Cl=ma[5]|0;Dh=ma[6]|0;Dl=ma[7]|0;Eh=ma[8]|0;El=ma[9]|0;Fh=ma[10]|0;Fl=ma[11]|0;Gh=ma[12]|0;Gl=ma[13]|0;Hh=ma[14]|0;Hl=ma[15]|0;constructor(){super(64)}},Xxr=qxr(()=>new Zxr,Mxr(3)),Zmt=O0t;Zmt.sha512||(Zmt.sha512=e=>Xxr(e));iEr="ws://localhost:9001/ws",oEr=3e4,N0t=class{transport;options;_peerId=null;_name;_keypair=null;messageHandlers=new Set;topicHandlers=new Map;rpcHandlers=new Map;defaultRpcHandler=null;pendingCalls=new Map;pendingSend=new Map;pendingResolve=new Map;eventListeners=new Map;registerPromise=null;hasConnectedOnce=!1;constructor(e){if(this._name=d4(e.name),e.keyPath)try{this._keypair=rEr(e.keyPath)}catch{}this.options={name:this._name,url:e.url??iEr,relay:e.relay??"",autoReconnect:e.autoReconnect??!0,reconnectInterval:e.reconnectInterval??1e3,maxReconnectAttempts:e.maxReconnectAttempts??10,rpcTimeout:e.rpcTimeout??oEr,pingInterval:e.pingInterval??3e4,binding:e.binding??""},this.transport=new y9r({url:this.options.url,autoReconnect:this.options.autoReconnect,reconnectInterval:this.options.reconnectInterval,maxReconnectAttempts:this.options.maxReconnectAttempts,pingInterval:this.options.pingInterval}),this.transport.onMessage(t=>this.handleBridgeMessage(t)),this.transport.onStatusChange(t=>this.handleStatusChange(t))}initKeypairFromSecret(e){try{let t=Buffer.from(e,"base64"),r=lxr(new Uint8Array(t));r&&(this._keypair={privateKey:r,publicKey:nxr(r)})}catch{}}get name(){return this._name}get peerId(){return this._peerId}get status(){return this.transport.status}async connect(){return await this.transport.connect(),new Promise((e,t)=>{this.registerPromise={resolve:e,reject:t};let r={type:"register",name:this._name};this.options.relay&&(r.relay=this.options.relay),this._keypair&&(r.public_key=Xmt(this._keypair.publicKey)),this.options.binding&&(r.binding=this.options.binding);try{this.transport.send(r)}catch(n){this.registerPromise=null,t(n instanceof Error?n:new pa(String(n)))}})}disconnect(){for(let[,e]of this.pendingCalls)clearTimeout(e.timer),e.reject(new pa("Client disconnected"));this.pendingCalls.clear();for(let[,e]of this.pendingSend)e.reject(new pa("Client disconnected"));this.pendingSend.clear();for(let[,e]of this.pendingResolve)e.reject(new pa("Client disconnected"));this.pendingResolve.clear(),this.registerPromise&&(this.registerPromise.reject(new pa("Client disconnected")),this.registerPromise=null),this.transport.disconnect(),this._peerId=null,this.hasConnectedOnce=!1}async send(e,t,r,n){let i=d4(e),o=u3e();return new Promise((s,a)=>{this.pendingSend.set(i,{resolve:s,reject:a});try{this.transport.send({type:"send",to:i,message_type:t,payload:r,metadata:n})}catch(c){this.pendingSend.delete(i),a(c instanceof Error?c:new pa(String(c)))}setTimeout(()=>{this.pendingSend.has(i)&&(this.pendingSend.delete(i),s({messageId:o,to:i}))},5e3)})}async sendSigned(e,t,r,n){if(!this._keypair||!this._peerId)return this.send(e,t,r,n);let i=d4(e),o=u3e(),s=Date.now(),a=Math.floor(Math.random()*2**32),c=new TextEncoder().encode(r),{signature:u,signatureInput:d}=await nEr(this._keypair.privateKey,o,this._peerId,this._name,s,t,c,a);return new Promise((l,p)=>{this.pendingSend.set(i,{resolve:l,reject:p});try{this.transport.send({type:"send_signed",to:i,message_id:o,sender_peer_id:this._peerId,sender_name:this._name,timestamp_ms:s,message_type:t,payload:r,metadata:n,signature:Buffer.from(u).toString("base64"),signature_input:d,nonce:a})}catch(f){this.pendingSend.delete(i),p(f instanceof Error?f:new pa(String(f)))}setTimeout(()=>{this.pendingSend.has(i)&&(this.pendingSend.delete(i),l({messageId:o,to:i}))},5e3)})}async call(e,t,r,n){let i=d4(e),o=n?.correlationId??u3e(),s=n?.timeout??this.options.rpcTimeout;return new Promise((a,c)=>{let u=setTimeout(()=>{this.pendingCalls.delete(o),c(new cB(`RPC call to ${i}.${t} timed out after ${s}ms`))},s);this.pendingCalls.set(o,{resolve:a,reject:c,timer:u});try{this.transport.send({type:"call",to:i,method:t,payload:r??"",correlation_id:o})}catch(d){clearTimeout(u),this.pendingCalls.delete(o),c(d instanceof Error?d:new pa(String(d)))}})}async broadcast(e,t,r){this.transport.send({type:"broadcast",topic:e,message_type:t,payload:r})}subscribe(e,t){let r=this.topicHandlers.get(e);if(!r){r=new Set,this.topicHandlers.set(e,r);try{this.transport.send({type:"subscribe",topic:e})}catch{}}return r.add(t),()=>{r.delete(t),r.size===0&&this.topicHandlers.delete(e)}}onMessage(e){return this.messageHandlers.add(e),()=>this.messageHandlers.delete(e)}onCall(e,t){return this.rpcHandlers.set(e,t),()=>this.rpcHandlers.delete(e)}onAnyCall(e){return this.defaultRpcHandler=e,()=>{this.defaultRpcHandler=null}}async resolve(e){let t=d4(e);return new Promise((r,n)=>{this.pendingResolve.set(t,{resolve:r,reject:n});try{this.transport.send({type:"resolve",name:t})}catch(i){this.pendingResolve.delete(t),n(i instanceof Error?i:new pa(String(i)))}setTimeout(()=>{this.pendingResolve.has(t)&&(this.pendingResolve.delete(t),n(new cB(`Resolve ${t} timed out`)))},1e4)})}on(e,t){let r=this.eventListeners.get(e);return r||(r=new Set,this.eventListeners.set(e,r)),r.add(t),()=>r.delete(t)}off(e,t){let r=this.eventListeners.get(e);r&&r.delete(t)}emit(e,...t){let r=this.eventListeners.get(e);if(r)for(let n of r)try{n(...t)}catch{}}handleBridgeMessage(e){switch(e.type){case"registered":this._peerId=e.peer_id,this._name=e.name,e.secret_key&&!this._keypair&&this.initKeypairFromSecret(e.secret_key),this.hasConnectedOnce=!0,this.registerPromise&&(this.registerPromise.resolve(),this.registerPromise=null),this.emit("connected",{name:e.name,peerId:e.peer_id}),this.resubscribeTopics();break;case"sent":{let t=this.pendingSend.get(e.to);t&&(this.pendingSend.delete(e.to),t.resolve({messageId:e.message_id,to:e.to}));break}case"call_result":{let t=this.pendingCalls.get(e.correlation_id);t&&(clearTimeout(t.timer),this.pendingCalls.delete(e.correlation_id),t.resolve({correlationId:e.correlation_id,success:e.success,payload:e.payload,error:e.error}));break}case"message":{let t={fromName:e.from_name,fromPeerId:e.from_peer_id,messageId:e.message_id,messageType:e.message_type,payload:e.payload,metadata:e.metadata??{},timestampMs:e.timestamp_ms,verified:e.verified,provenance:e.provenance?.map(r=>({signerName:r.signer_name,verified:r.verified})),attestation:e.attestation?{relayName:e.attestation.relay_name,verified:e.attestation.verified}:void 0,delegation:e.delegation?{parentName:e.delegation.parent_name,scope:e.delegation.scope,valid:e.delegation.valid,expired:e.delegation.expired}:void 0};for(let r of this.messageHandlers)try{r(t)}catch{}this.emit("message",t);break}case"inbound_call":this.handleInboundCall(e);break;case"broadcast_message":{let t={topic:e.topic,fromName:e.from_name,fromPeerId:e.from_peer_id,messageId:e.message_id,messageType:e.message_type,payload:e.payload,metadata:e.metadata??{},timestampMs:e.timestamp_ms,verified:e.verified,provenance:e.provenance?.map(n=>({signerName:n.signer_name,verified:n.verified})),attestation:e.attestation?{relayName:e.attestation.relay_name,verified:e.attestation.verified}:void 0,delegation:e.delegation?{parentName:e.delegation.parent_name,scope:e.delegation.scope,valid:e.delegation.valid,expired:e.delegation.expired}:void 0},r=this.topicHandlers.get(e.topic);if(r)for(let n of r)try{n(t)}catch{}this.emit("broadcast",t);break}case"resolved":{let t=this.pendingResolve.get(e.name);t&&(this.pendingResolve.delete(e.name),t.resolve({name:e.name,peerId:e.peer_id}));break}case"error":{let t=s3e(e.code,e.message);this.registerPromise&&e.code==="register_failed"&&(this.registerPromise.reject(new aZ(e.message)),this.registerPromise=null),this.emit("error",t);break}}}async handleInboundCall(e){let t={correlationId:e.correlation_id,fromName:e.from_name,fromPeerId:e.from_peer_id,method:e.method,payload:e.payload,verified:e.verified},r=this.rpcHandlers.get(e.method)??this.defaultRpcHandler,n;if(!r)n={success:!1,error:`No handler for method: ${e.method}`};else try{n=await r(t)}catch(i){n={success:!1,error:i instanceof Error?i.message:String(i)}}try{this.transport.send({type:"call_response",correlation_id:e.correlation_id,success:n.success,payload:n.payload??"",error:n.error??""})}catch{}}handleStatusChange(e){switch(e){case"disconnected":this._peerId=null,this.emit("disconnected");break;case"reconnecting":this.emit("reconnecting",this.transport.reconnectAttempt??0);break;case"connected":if(this.hasConnectedOnce){let t={type:"register",name:this.options.name};this.options.relay&&(t.relay=this.options.relay),this._keypair&&(t.public_key=Xmt(this._keypair.publicKey));try{this.transport.send(t)}catch{}}break}}resubscribeTopics(){for(let e of this.topicHandlers.keys())try{this.transport.send({type:"subscribe",topic:e})}catch{}}};});var M3e={};Mi(M3e,{SUBWAY_PROTOCOL:()=>V0t,registerDirect:()=>bEr,resolveDirect:()=>_Er});function N3e(e,t){let r=typeof t=="bigint"?t:BigInt(t);for(;r>0x7fn;)e.push(Number(r&0x7fn|0x80n)),r>>=7n;e.push(Number(r))}function ol(e,t){let r=0n,n=0n,i=t;for(;;){let o=e[i++];if(r|=BigInt(o&127)<<n,(o&128)===0)break;n+=7n}return[r,i]}function j3e(e,t){return e<<3|t}function pB(e,t,r){e.push(j3e(t,2)),N3e(e,r.length);for(let n of r)e.push(n)}function sEr(e,t){let r=[];return pB(r,1,B3e.encode(e)),t&&t.length>0&&pB(r,2,B3e.encode(t)),Uint8Array.from(r)}function aEr(e,t,r){let n=[];return r!==0n&&(n.push(j3e(1,0)),N3e(n,r)),pB(n,2,sEr(e,t)),Uint8Array.from(n)}function cEr(e){let t=[];return pB(t,1,B3e.encode(e)),Uint8Array.from(t)}function uEr(e,t){let r=[];return t!==0n&&(r.push(j3e(1,0)),N3e(r,t)),pB(r,3,cEr(e)),Uint8Array.from(r)}function dEr(e){let t=0,r={success:!1,error:""};for(;t<e.length;){let[n,i]=ol(e,t);t=i;let o=Number(n)>>3,s=Number(n)&7;if(o===1&&s===0){let[a,c]=ol(e,t);t=c,r.success=a!==0n}else if(o===2&&s===2){let[a,c]=ol(e,t),u=c,d=u+Number(a);r.error=F0t.decode(e.subarray(u,d)),t=d}else t=U3e(e,t,s)}return r}function lEr(e){let t=0,r={peerId:new Uint8Array(0),error:""};for(;t<e.length;){let[n,i]=ol(e,t);t=i;let o=Number(n)>>3,s=Number(n)&7;if(o===1&&s===2){let[a,c]=ol(e,t),u=c,d=u+Number(a);r.peerId=e.subarray(u,d),t=d}else if(o===2&&s===2){let[a,c]=ol(e,t),u=c,d=u+Number(a);r.error=F0t.decode(e.subarray(u,d)),t=d}else t=U3e(e,t,s)}return r}function U3e(e,t,r){if(r===0)return ol(e,t)[1];if(r===2){let[n,i]=ol(e,t);return i+Number(n)}if(r===5)return t+4;if(r===1)return t+8;throw new Error(`unsupported wire type ${r}`)}function $0t(e){let t=0,r={requestId:0n};for(;t<e.length;){let[n,i]=ol(e,t);t=i;let o=Number(n)>>3,s=Number(n)&7;if(o===1&&s===0){let[a,c]=ol(e,t);t=c,r.requestId=a}else if(o===13&&s===2){let[a,c]=ol(e,t),u=c,d=u+Number(a);r.registerNameResponse=dEr(e.subarray(u,d)),t=d}else if(o===14&&s===2){let[a,c]=ol(e,t),u=c,d=u+Number(a);r.resolveNameResponse=lEr(e.subarray(u,d)),t=d}else t=U3e(e,t,s)}return r}function pEr(e){let t=new Uint8Array(4+e.length);return new DataView(t.buffer).setUint32(0,e.length,!1),t.set(e,4),t}function q3e(e){return new DataView(e.buffer,e.byteOffset,4).getUint32(0,!1)}function fEr(e){if(e.length<4)return{success:!1,error:"short reply (no length prefix)"};let t=q3e(e.subarray(0,4));return e.length<4+t?{success:!1,error:`truncated frame (have ${e.length-4}, need ${t})`}:$0t(e.subarray(4,4+t)).registerNameResponse??{success:!1,error:"reply carried no register_name_response"}}function mEr(e){if(e.length<4)return{peerId:new Uint8Array(0),error:"short reply (no length prefix)"};let t=q3e(e.subarray(0,4));return e.length<4+t?{peerId:new Uint8Array(0),error:`truncated frame (have ${e.length-4}, need ${t})`}:$0t(e.subarray(4,4+t)).resolveNameResponse??{peerId:new Uint8Array(0),error:"reply carried no resolve_name_response"}}function R3e(e){let t=e.reduce((i,o)=>i+o.length,0),r=new Uint8Array(t),n=0;for(let i of e)r.set(i,n),n+=i.length;return r}async function gEr(e){let t=[],r=0,n=-1;for await(let i of e){let o=i instanceof Uint8Array?i:i.subarray();if(t.push(o),r+=o.length,r>j0t)throw new Error("subway: reply exceeded max size");if(n<0&&r>=4&&(n=4+q3e(R3e(t).subarray(0,4)),n>j0t))throw new Error("subway: declared frame exceeds max size");if(n>=0&&r>=n)return R3e(t).subarray(0,n)}return R3e(t)}async function K0t(e){return(0,U0t.createLibp2p)({...e?{privateKey:await(0,L0t.generateKeyPairFromSeed)("Ed25519",e)}:{},transports:[(0,q0t.tcp)()],connectionEncrypters:[(0,M0t.noise)()],streamMuxers:[(0,D0t.yamux)()],connectionGater:{denyDialMultiaddr:async()=>!1}})}async function W0t(e,t,r){let n=await e.dialProtocol((0,z0t.multiaddr)(t),V0t,{signal:AbortSignal.timeout(hEr)});n.send(pEr(r));let i;return Promise.race([gEr(n),new Promise((o,s)=>{i=setTimeout(()=>s(new Error("subway: request timed out")),yEr)})]).finally(()=>clearTimeout(i))}async function bEr(e){let t=await K0t(e.seed);try{let r=await W0t(t,e.relayMultiaddr,aEr(e.name,e.binding,e.requestId??1n)),n=fEr(r);return{success:n.success,error:n.error,peerId:t.peerId.toString()}}finally{await t.stop()}}async function _Er(e){let t=await K0t(e.seed);try{let r=await W0t(t,e.relayMultiaddr,uEr(e.name,e.requestId??1n)),n=mEr(r);return n.peerId.length===0?{found:!1,peerId:"",error:n.error||"name not found"}:{found:!0,peerId:(0,H0t.toString)(n.peerId,"base58btc"),error:""}}finally{await t.stop()}}var U0t,q0t,M0t,D0t,L0t,z0t,H0t,B3e,F0t,V0t,hEr,yEr,j0t,D3e=P(()=>{"use strict";c3e();U0t=require("libp2p"),q0t=require("@libp2p/tcp"),M0t=require("@chainsafe/libp2p-noise"),D0t=require("@chainsafe/libp2p-yamux"),L0t=require("@libp2p/crypto/keys"),z0t=require("@multiformats/multiaddr"),H0t=require("uint8arrays/to-string"),B3e=new TextEncoder,F0t=new TextDecoder;V0t="/subway/p2p/1.0.0",hEr=15e3,yEr=15e3,j0t=1<<20});var yB={};Mi(yB,{DEFAULT_VISA_RELAY_MULTIADDR:()=>J0t,MESH:()=>to,RELAY_URL:()=>mB,connectOrThrow:()=>eS,ensureMailbox:()=>X3e,isSubwayEnabled:()=>V3e,listRegistered:()=>Z3e,loadBindingFor:()=>G3e,loadRegistry:()=>m4,makeClient:()=>QA,maybeMintVisaBinding:()=>Z0t,meshName:()=>Cp,pairedVisaBinding:()=>X0t,readInbox:()=>xEr,registerName:()=>hB,resolveActingName:()=>PZ,resolveMeshName:()=>J3e,seedSubwayKeyFromTapAgent:()=>Y0t,sendMessage:()=>Y3e,sendVia:()=>EEr,subwayKeyPath:()=>TZ,visaRelayMultiaddr:()=>$3e});function $3e(e=process.env){return e.SUBWAY_RELAY_MULTIADDR??J0t}function Cp(e){return e.includes(".")?e:`${e}.${to}`}function V3e(e){if(process.env.VISA_DEV==="1")return!0;let t=e??"0.0.0";return t==="0.0.0"||t.startsWith("0.0.")?!0:/-rc\.|-beta\./.test(t)}function W3e(){_o.mkdirSync(K3e,{recursive:!0,mode:448})}function vEr(e){return e.replace(/[^a-zA-Z0-9_.-]/g,"_")}function TZ(e){return XA.join(K3e,`${vEr(e)}.key`)}function m4(){if(!_o.existsSync(F3e))return{};try{return JSON.parse(_o.readFileSync(F3e,"utf8"))}catch{return{}}}function z3e(e){W3e(),_o.writeFileSync(F3e,JSON.stringify(e,null,2),{mode:384})}function H3e(){try{return fB.userInfo().username}catch{return"local"}}function Y0t(e){if(_o.existsSync(e)||!_o.existsSync(L3e))return null;let t=_o.readdirSync(L3e).filter(n=>n.endsWith(".json"));if(t.length===0)return null;let r=t.map(n=>XA.join(L3e,n)).sort((n,i)=>_o.statSync(i).mtimeMs-_o.statSync(n).mtimeMs)[0];try{let n=JSON.parse(_o.readFileSync(r,"utf8"));if(!n.private_key_jwk)return null;let i=jS(n.private_key_jwk);return W3e(),_o.writeFileSync(e,Buffer.from(i),{mode:384}),n.agent_id??null}catch{return null}}function QA(e,t={}){return new N0t({name:Cp(e),url:mB,keyPath:TZ(e),autoReconnect:t.autoReconnect??!1,binding:t.binding})}function G3e(e){if(to!=="visa")return;let t=m4()[e];if(t?.binding&&!(t.bindingExpiresAt&&Date.parse(t.bindingExpiresAt)<=Date.now()))return t.binding}async function eS(e,t=15e3){await Promise.race([e.connect(),new Promise((r,n)=>setTimeout(()=>n(new Error(`Subway relay connect timed out after ${t}ms (${mB})`)),t))])}function PZ(e){if(e)return e;let t=Object.keys(m4());if(t.length===1)return t[0];throw t.length===0?new Error("No Subway names registered yet. Run `visa register <name>` first."):new Error(`Multiple names registered (${t.join(", ")}). Pass --as <name>.`)}async function Z0t(e){if(to!=="visa")return null;let t=process.env.VISA_CLI_API_KEY?.trim();if(!t)throw new Xm("No enrolled V4 agent or Visa Key is available for the trusted .visa mesh.","no_key");try{return await cQ({authUrl:ga(),apiKey:t,seed:zN(TZ(e)),name:Cp(e)})}catch(r){if(r instanceof Xm)throw r;return console.warn(`[subway] Visa binding not minted: ${r instanceof Error?r.message:String(r)}`),null}}function X0t(e=Date.now()){let t=Q3e();if(!t?.binding_jwt)return null;let r=gB(t.binding_jwt);if(!r||r.mesh!=="visa")return null;let n=typeof r.exp=="number"?r.exp:NaN;return!Number.isFinite(n)||n*1e3<=e?null:{binding:t.binding_jwt,bindingExpiresAt:new Date(n*1e3).toISOString()}}async function hB(e){let t=TZ(e),r=Y0t(t),n=Cp(e);to==="visa"&&!_o.existsSync(t)&&(W3e(),_o.writeFileSync(t,(0,G0t.randomBytes)(32),{mode:384}));let i=to==="visa"?X0t():null,o,s={};if(i)o=i.binding,s={binding:i.binding,bindingExpiresAt:i.bindingExpiresAt};else{let u=await Z0t(e);u&&(o=u.binding,s={binding:u.binding,bindingExpiresAt:new Date(Date.now()+u.expires_in*1e3).toISOString()})}let a=to==="visa"?$3e():process.env.SUBWAY_RELAY_MULTIADDR;if(to==="visa"&&a){let{registerDirect:u}=await Promise.resolve().then(()=>(D3e(),M3e)),d=await u({relayMultiaddr:a,seed:zN(t),name:n,binding:o});if(!d.success)throw new Error(`.visa relay admission failed: ${d.error||"unknown"}`);let l=m4();return l[e]={relayName:n,mesh:to,peerId:d.peerId,owner:H3e(),tapAgentId:r,registeredAt:new Date().toISOString(),...s},z3e(l),{relayName:n,mesh:to,peerId:d.peerId,tapAgentId:r,...o?{binding:o}:{}}}if(to==="visa"&&!process.env.SUBWAY_RELAY){let u=m4();return u[e]={relayName:n,mesh:to,peerId:null,owner:H3e(),tapAgentId:r,registeredAt:new Date().toISOString(),...s},z3e(u),{relayName:n,mesh:to,peerId:null,tapAgentId:r,...o?{binding:o}:{},note:o?"Visa binding ready; relay admission pending a .visa relay (set SUBWAY_RELAY).":"No Visa binding; pair/enroll this agent, or set VISA_CLI_API_KEY (card on file), for a .visa binding."}}let c=QA(e,{autoReconnect:!1,binding:o});try{await eS(c);let u=m4();return u[e]={relayName:n,mesh:to,peerId:c.peerId,owner:H3e(),tapAgentId:r,registeredAt:new Date().toISOString(),...s},z3e(u),{relayName:n,mesh:to,peerId:c.peerId,tapAgentId:r,...o?{binding:o}:{}}}finally{c.disconnect()}}async function J3e(e){let t=Cp(e),r=to==="visa"?$3e():process.env.SUBWAY_RELAY_MULTIADDR;if(to==="visa"&&r){let{resolveDirect:n}=await Promise.resolve().then(()=>(D3e(),M3e)),i=await n({relayMultiaddr:r,name:t});return{relayName:t,found:i.found,peerId:i.peerId,error:i.error}}throw new Error("subway find needs the .visa mesh with a dedicated relay \u2014 set SUBWAY_MESH=visa and SUBWAY_RELAY_MULTIADDR.")}async function Y3e(e,t,r){let n=QA(e,{autoReconnect:!1,binding:G3e(e)});try{await eS(n);let i=Cp(t);return await n.sendSigned(i,"chat",r),{to:i,as:Cp(e)}}finally{n.disconnect()}}function Z3e(){let e=m4();return Object.entries(e).map(([t,r])=>({name:t,...r}))}async function X3e(e){let t=SZ.get(e);if(t)return{relayName:Cp(e),peerId:t.client.peerId};let r=QA(e,{autoReconnect:!0,binding:G3e(e)}),n=[];return r.onMessage(i=>{n.push({from:i.fromName,text:i.payload,ts:i.timestampMs,verified:!!i.verified}),n.length>wEr&&n.shift()}),SZ.set(e,{client:r,buffer:n}),await eS(r),{relayName:Cp(e),peerId:r.peerId}}async function xEr(e,t=20,r=!1){await X3e(e);let n=SZ.get(e);if(!n)return[];let i=n.buffer.slice(-t);return r&&(n.buffer.length=0),i}async function EEr(e,t,r){await X3e(e);let n=SZ.get(e);if(!n)throw new Error(`mailbox for ${e} unavailable`);let i=Cp(t);return await n.client.sendSigned(i,"chat",r),{to:i,as:Cp(e)}}var _o,fB,XA,G0t,to,J0t,mB,K3e,F3e,L3e,SZ,wEr,h4=P(()=>{"use strict";k3e();G2();_o=ve(require("fs")),fB=ve(require("os")),XA=ve(require("path")),G0t=require("crypto");H2();rw();bB();to=process.env.SUBWAY_MESH??"relay",J0t="/dns4/subway-relay-visa.fly.dev/tcp/9100/p2p/12D3KooWM2q6SXgKFxj5wvnJ7gTD4XPjhvc5tHVVjDBrZRnJ3CKU";mB=process.env.SUBWAY_RELAY??"wss://relay.subway.dev/ws";K3e=XA.join(fB.homedir(),".visa-cli","subway"),F3e=XA.join(K3e,"registry.json"),L3e=XA.join(fB.homedir(),".visa-cli","agents");SZ=new Map,wEr=200});async function AEr(e){if(process.env.SUBWAY_MESH==="visa")try{await hB(e)}catch(t){Re.warn("subway:pairing-auto-register-failed",{name:e,mesh:"visa",error:t instanceof Error?t.message:String(t)})}}function SEr(e=process.env.VISA_V4_HOME||tS.join(e9e.homedir(),".visa-v4")){try{let t=Yc.readFileSync(tS.join(e,"identity","mailbox.json"),"utf8"),r=JSON.parse(t);return typeof r.email!="string"||!r.email.includes("@")||typeof r.inboxId!="string"||r.inboxId.length===0?null:{email:r.email,inboxId:r.inboxId}}catch{return null}}function t9e(e,t,r=_B){return tS.join(r,`${e}.${t}.json`)}function e1t(e,t=_B){Yc.mkdirSync(t,{recursive:!0,mode:448}),Yc.writeFileSync(t9e(e.pairingId,e.role,t),JSON.stringify(e,null,2),{mode:384})}function vB(e,t,r=_B){Yc.rmSync(t9e(e,t,r),{force:!0})}function IZ(e,t,r=_B){try{let n=JSON.parse(Yc.readFileSync(t9e(e,t,r),"utf8"));return n?.pairingId===e&&n.role===t?n:null}catch{return null}}function r9e(e=_B){return Yc.existsSync(e)?Yc.readdirSync(e).filter(r=>r.endsWith(".human.json")).map(r=>{try{return JSON.parse(Yc.readFileSync(tS.join(e,r),"utf8"))}catch{return null}}).filter(r=>r?.role==="human").sort((r,n)=>n.createdAt.localeCompare(r.createdAt))[0]??null:null}async function y4(e,t,r){let n=await r(e,{...t,headers:{"X-Source":"cli","X-Visa-CLI-Version":Q0t,...t.headers??{}}}),i=await n.json().catch(()=>({}));if(!n.ok&&n.status!==202)throw new Error(i.error??i.detail??`pairing server returned ${n.status}`);return{status:n.status,body:i}}async function n9e(e={}){let t=(e.authUrl??ga()).replace(/\/+$/,""),r=jAe(),n=SEr(),{body:i}=await y4(`${t}/v4/agent-pairings`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cliChallenge:UAe(r),...n?{mailbox:n}:{}})},e.fetchImpl??fetch);if(!i.pairingId||!i.skillUrl||!i.expiresAt)throw new Error("pairing server returned an incomplete initiation response");let o={role:"human",pairingId:i.pairingId,verifier:r,authUrl:t,skillUrl:i.skillUrl,expiresAt:i.expiresAt,createdAt:new Date().toISOString()};return e1t(o,e.pairingDir),o}async function OZ(e){let{pairing:t}=e,{body:r}=await y4(`${t.authUrl}/v4/agent-pairings/${encodeURIComponent(t.pairingId)}/verify`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({verifier:t.verifier,code:e.code})},e.fetchImpl??fetch);return r}async function i9e(e){let t=(e.authUrl??ga()).replace(/\/+$/,""),{body:r}=await y4(`${t}/v4/agent-pairings/${encodeURIComponent(e.pairingId)}`,{method:"GET",cache:"no-store"},e.fetchImpl??fetch);return r}function t1t(e,t){return Buffer.from(Q4(e,Buffer.from(t,"utf8"))).toString("base64url")}async function o9e(e){let t=(e.authUrl??ga()).replace(/\/+$/,""),r=e.fetchImpl??fetch,n=await i9e({pairingId:e.pairingId,authUrl:t,fetchImpl:r});if(n.state!=="awaiting_agent"||!n.serverNonce)throw new Error(`pairing cannot be claimed from state ${n.state}`);let i,o,s;if(e.existingCredential)s=e.existingCredential.privateKeyJwk,o=e.existingCredential.publicKeyJwk,i=Buffer.from(s.d,"base64url");else{let m=MN();i=m.secretKey,s=ew(i),o=kh(m.publicKey)}let a=tw(o),c=XY(),u=qAe(),d={runtime:e.runtime,contextLabel:e.contextLabel,platform:`${process.platform}/${process.arch}`,cliVersion:Q0t},l=t1t(i,MAe({pairingId:e.pairingId,serverNonce:n.serverNonce,claimTokenHash:sQ(u),agentJkt:a,walletPublicKey:c.publicKey,runtime:d})),p={role:"runtime",pairingId:e.pairingId,authUrl:t,claimToken:u,agentJkt:a,publicKeyJwk:o,privateKeyJwk:s,walletPublicKey:c.publicKey,walletPrivateKey:c.privateKey,createdAt:new Date().toISOString()};e1t(p,e.pairingDir);let{body:f}=await y4(`${t}/v4/agent-pairings/${encodeURIComponent(e.pairingId)}/claim`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({agentPublicJwk:o,walletPublicKey:c.publicKey,runtime:d,signature:l,claimToken:u})},r);if(!f.verificationCode||f.claimToken!==u)throw new Error("pairing server returned an incomplete claim response");if(f.verificationCode!==DN(e.pairingId,u))throw new Error("pairing server returned a mismatched verification code");return{pending:p,verificationCode:f.verificationCode}}async function CZ(e){let t=e.fetchImpl??fetch,r=e.wait??(o=>new Promise(s=>setTimeout(s,o))),n=e.maxPolls??450,i="";for(let o=0;o<n;o+=1){let{body:s,status:a}=await y4(`${e.pending.authUrl}/v4/agent-pairings/${encodeURIComponent(e.pending.pairingId)}/delivery`,{method:"GET",headers:{"X-Agent-Pairing-Token":e.pending.claimToken},cache:"no-store"},t);if(s.state!==i&&(i=s.state,e.onState?.(s.state)),a===202){if(["expired","cancelled","failed","revoked"].includes(s.state))throw new Error(`pairing ended in state ${s.state}`);await r(e.pollIntervalMs??2e3);continue}if(!s.artifacts||!s.artifactHash)throw new Error("pairing delivery omitted identity artifacts");let c=s.artifacts,u=c.terms?.name,d=c.wallet?.turnkey,l=c.terms?.mode==="wallet"||c.terms?.mode==="both",p=ZY(d?.network);if(c.agentJkt!==e.pending.agentJkt||typeof c.bindingJwt!="string"||typeof c.registrationJwt!="string"||typeof c.termsHash!="string"||typeof u!="string"||c.wallet?.credentialPublicKey!==e.pending.walletPublicKey||l&&(!d||typeof d.organizationId!="string"||typeof d.walletId!="string"||typeof d.address!="string"||!/^0x[0-9a-f]{40}$/i.test(d.address)||!p||!Number.isSafeInteger(c.terms?.dailyLimitCents)||!Number.isSafeInteger(c.terms?.perTransactionLimitCents))||LAe(s.artifacts)!==s.artifactHash)throw new Error("pairing artifact integrity check failed");let f=t1t(Buffer.from(e.pending.privateKeyJwk.d,"base64url"),DAe({pairingId:e.pending.pairingId,agentJkt:e.pending.agentJkt,termsHash:c.termsHash,artifactHash:s.artifactHash}));if((await y4(`${e.pending.authUrl}/v4/agent-pairings/${encodeURIComponent(e.pending.pairingId)}/activate`,{method:"POST",headers:{"Content-Type":"application/json","X-Agent-Pairing-Token":e.pending.claimToken},body:JSON.stringify({signature:f})},t)).body.state!=="activated")throw new Error("pairing activation was not acknowledged");let h={agent_jkt:e.pending.agentJkt,name:u,public_key_jwk:e.pending.publicKeyJwk,private_key_jwk:e.pending.privateKeyJwk,binding_jwt:c.bindingJwt,registration_jwt:c.registrationJwt,wallet_public_key:e.pending.walletPublicKey,pairing_id:e.pending.pairingId,pairing_status:"activated",artifacts:s.artifacts,auth_url:e.pending.authUrl,created_at:new Date().toISOString()};return l&&d&&await YY({apiPublicKey:e.pending.walletPublicKey,apiPrivateKey:e.pending.walletPrivateKey,organizationId:d.organizationId,walletId:d.walletId,address:d.address,network:p,perTransactionLimitCents:c.terms?.perTransactionLimitCents,dailyLimitCents:c.terms?.dailyLimitCents,...e.walletHome?{homeDir:e.walletHome}:{}}),s9e(h,e.agentDir),await AEr(u),vB(e.pending.pairingId,"runtime",e.pairingDir),{record:h,name:u,agentJkt:e.pending.agentJkt}}throw new Error("timed out waiting for human authorization")}async function r1t(e){let{pairing:t}=e,{body:r}=await y4(`${t.authUrl}/v4/agent-pairings/${encodeURIComponent(t.pairingId)}`,{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({verifier:t.verifier})},e.fetchImpl??fetch);return r.state==="cancelled"&&vB(t.pairingId,"human",e.pairingDir),r}var Yc,e9e,tS,Q0t,_B,n1t=P(()=>{"use strict";Yc=ve(require("node:fs")),e9e=ve(require("node:os")),tS=ve(require("node:path"));G2();rw();h4();H2();eu();QY();bB();Q0t="4.1.0-rc.28",_B=tS.join(e9e.homedir(),".visa-cli","pairings")});var d1t={};Mi(d1t,{agentFilePath:()=>xB,agentFormatIsJson:()=>wB,attachAgentCommand:()=>l9e,claimOptsFromFlags:()=>u9e,decodeBindingClaims:()=>gB,enrollClaimEnvelope:()=>c1t,isAgentCommandEnabled:()=>a1t,isAgentRecord:()=>EB,listAgentFiles:()=>kZ,newestAgentRecord:()=>Q3e,readAgent:()=>d9e,resolveAgentByRef:()=>u1t,writeAgent:()=>s9e});function EB(e){if(!e||typeof e!="object"||Array.isArray(e))return!1;let t=e;return typeof t.agent_jkt=="string"&&typeof t.name=="string"&&t.public_key_jwk?.kty==="OKP"&&t.public_key_jwk.crv==="Ed25519"&&typeof t.public_key_jwk.x=="string"&&t.private_key_jwk?.kty==="OKP"&&t.private_key_jwk.crv==="Ed25519"&&typeof t.private_key_jwk.x=="string"&&typeof t.private_key_jwk.d=="string"&&typeof t.binding_jwt=="string"&&typeof t.registration_jwt=="string"&&typeof t.wallet_public_key=="string"&&typeof t.pairing_id=="string"&&(t.pairing_status==="activated"||t.pairing_status==="revoked")&&t.artifacts!==null&&typeof t.artifacts=="object"&&!Array.isArray(t.artifacts)&&typeof t.auth_url=="string"&&typeof t.created_at=="string"}function a1t(){return!0}function wB(e){return e==="json"}function c1t(e){switch(e.status){case"claimed":return{json:{status:"claimed",...e.name?{name:e.name}:{},tokenId:e.tokenId,credentialPath:e.credentialPath,keyBound:e.keyBound,sessionSaved:e.sessionSaved,walletProvisioned:e.walletProvisioned},exitCode:0};case"not_ready":return{json:{status:"not_ready",likelyExpired:e.likelyExpired,error:e.likelyExpired?"the 15-minute enrollment window has likely expired":"not ready yet \u2014 finish the browser flow through the final minted screen"},exitCode:3};case"no_pending":return{json:{status:"no_pending",error:"no enrollment hand-off in progress"},exitCode:1};case"confirm_mismatch":return{json:{status:"confirm_mismatch",confirmCode:e.confirmCode,error:"this enrollment hand-off did not match this terminal"},exitCode:1};case"error":return{json:{status:"error",error:e.message},exitCode:1}}}function u9e(e){let t=e.interval&&e.interval>0?e.interval:3,r=e.attempts&&e.attempts>0?e.attempts:5;return e.timeout&&e.timeout>0&&(r=Math.max(1,Math.ceil(e.timeout/t))),{attempts:r,delayMs:t*1e3}}function a9e(e){return`${e.opened?`\u2713 Enrollment link opened in your browser.
|
|
20689
|
+
${e.nonce}`;return axr.encode(r)}function dxr(e,t,r,n,i,o,s){return uxr({messageId:e,senderPeerId:t,senderName:r,timestampMs:n,messageType:i,payload:o,nonce:s})}function lxr(e){let t=0;for(;t<e.length;){let r=e[t],n=r>>3,i=r&7;if(t++,i===0){for(;t<e.length&&e[t]&128;)t++;t++}else if(i===2){let o=0,s=0;for(;t<e.length&&e[t]&128;)o|=(e[t]&127)<<s,s+=7,t++;if(o|=(e[t]&127)<<s,t++,n===2&&o>=64)return e.slice(t,t+32);t+=o}else return null}return null}function jxr(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name==="Uint8Array"&&"BYTES_PER_ELEMENT"in e&&e.BYTES_PER_ELEMENT===1}function k0t(e,t,r=""){let n=jxr(e),i=e?.length;if(!n||t!==void 0){let s=r&&`"${r}" `,a="",c=n?`length=${i}`:`type=${typeof e}`,u=s+"expected Uint8Array"+a+", got "+c;throw n?new RangeError(u):new TypeError(u)}return e}function Wmt(e,t=!0){if(e.destroyed)throw new Error("Hash instance has been destroyed");if(t&&e.finished)throw new Error("Hash#digest() has already been called")}function Uxr(e,t){k0t(e,void 0,"digestInto() output");let r=t.outputLen;if(e.length<r)throw new RangeError('"digestInto() output" expected to be of length >='+r)}function E3e(...e){for(let t=0;t<e.length;t++)e[t].fill(0)}function g3e(e){return new DataView(e.buffer,e.byteOffset,e.byteLength)}function qxr(e,t={}){let r=(i,o)=>e(o).update(i).digest(),n=e(void 0);return r.outputLen=n.outputLen,r.blockLen=n.blockLen,r.canXOF=n.canXOF,r.create=i=>e(i),Object.assign(r,t),Object.freeze(r)}function Lxr(e,t=!1){return t?{h:Number(e&lZ),l:Number(e>>Gmt&lZ)}:{h:Number(e>>Gmt&lZ)|0,l:Number(e&lZ)|0}}function zxr(e,t=!1){let r=e.length,n=new Uint32Array(r),i=new Uint32Array(r);for(let o=0;o<r;o++){let{h:s,l:a}=Lxr(e[o],t);[n[o],i[o]]=[s,a]}return[n,i]}function ph(e,t,r,n){let i=(t>>>0)+(n>>>0);return{h:e+r+(i/2**32|0)|0,l:i|0}}function Qxr(){return kxr.randomSecretKey()}function B0t(e){return Oxr(e)}function eEr(){let e=Qxr();return{secretKey:e,publicKey:B0t(e)}}function tEr(e){if((0,E2.existsSync)(e)){let r=(0,E2.readFileSync)(e),n=new Uint8Array(r.buffer.slice(r.byteOffset,r.byteOffset+32));return{secretKey:n,publicKey:B0t(n)}}let t=eEr();return(0,E2.mkdirSync)((0,Qmt.dirname)(e),{recursive:!0}),(0,E2.writeFileSync)(e,new Uint8Array(t.secretKey)),t}function rEr(e){let{secretKey:t,publicKey:r}=tEr(e);return{privateKey:t,publicKey:r}}async function nEr(e,t,r,n,i,o,s,a){let c=dxr(t,r,n,i,o,s,a);return{signature:await ixr(e,c),signatureInput:cxr.subwayAgentMsgV1}}function Xmt(e){return sxr(e)}var E2,Qmt,p9r,f9r,m9r,h9r,y9r,e0t,yZ,mZ,Imt,Omt,d3e,l3e,g9r,xZ,b9r,Cs,_9r,v9r,w9r,fh,EZ,A3e,t0t,S3e,uh,Cmt,T3e,r0t,x9r,JA,E9r,gZ,s4,Rn,kmt,Ke,n0t,i0t,o0t,s0t,p3e,b3e,dB,f4,l4,a0t,c0t,Mm,A9r,Rmt,S9r,_3e,P3e,T9r,u0t,P9r,I9r,O9r,C9r,k9r,R9r,I3e,d0t,bZ,B9r,l0t,v3e,N9r,Bmt,Nmt,j9r,m0t,h0t,g2,fa,cZ,Umt,qmt,Mmt,VA,KA,uZ,dZ,H9r,F9r,$9r,V9r,K9r,W9r,G9r,b2,J9r,Y9r,y0t,Z9r,X9r,_2,v2,Q9r,exr,txr,rxr,Dmt,oxr,g0t,axr,cxr,b0t,pxr,_0t,_Z,hZ,Lmt,zmt,m3e,h3e,fxr,YA,mxr,ks,hxr,yxr,gxr,A2,AZ,O3e,v0t,w0t,lh,Hmt,x0t,E0t,bxr,C3e,_xr,vZ,c4,Gn,Fmt,We,vxr,wxr,A0t,S0t,y3e,w3e,lB,ZA,p4,xxr,T0t,Lm,Exr,$mt,Axr,Sxr,Txr,Pxr,P0t,Ixr,I0t,Oxr,O0t,Cxr,kxr,wZ,Rxr,C0t,x3e,Bxr,Vmt,Kmt,Nxr,Mxr,Dxr,ma,lZ,Gmt,Jmt,Ymt,WA,GA,pZ,fZ,Hxr,Fxr,$xr,Vxr,Kxr,Wxr,R0t,Gxr,Jxr,w2,x2,Yxr,Zxr,Xxr,Zmt,iEr,oEr,N0t,k3e=P(()=>{"use strict";a3e();a3e();c3e();E2=require("fs"),Qmt=require("path");p9r=1e3,f9r=10,m9r=3e4,h9r=3e4,y9r=class{url;ws=null;_status="disconnected";messageHandlers=new Set;statusHandlers=new Set;reconnectAttempt=0;reconnectTimer=null;pingTimer=null;stopped=!1;autoReconnect;reconnectInterval;maxReconnectAttempts;pingInterval;constructor(e){this.url=e.url,this.autoReconnect=e.autoReconnect??!0,this.reconnectInterval=e.reconnectInterval??p9r,this.maxReconnectAttempts=e.maxReconnectAttempts??f9r,this.pingInterval=e.pingInterval??m9r}get status(){return this._status}onMessage(e){return this.messageHandlers.add(e),()=>this.messageHandlers.delete(e)}onStatusChange(e){return this.statusHandlers.add(e),()=>this.statusHandlers.delete(e)}connect(){return this.stopped=!1,new Promise((e,t)=>{let r=d9r();if(!r){t(new pa('No WebSocket implementation available. Install the "ws" package for Node.js.'));return}this.setStatus("connecting");try{this.ws=new r(this.url)}catch(i){t(new pa(`Failed to create WebSocket: ${i}`));return}let n=!1;this.ws.onopen=()=>{this.reconnectAttempt=0,this.setStatus("connected"),this.startPing(),n||(n=!0,e())},this.ws.onmessage=i=>{let o;try{o=JSON.parse(typeof i.data=="string"?i.data:i.data.toString())}catch{return}for(let s of this.messageHandlers)s(o)},this.ws.onclose=()=>{this.ws=null,this.stopPing(),!this.stopped&&this.autoReconnect?this.scheduleReconnect():this.setStatus("disconnected"),n||(n=!0,t(new pa("WebSocket closed before connection established")))},this.ws.onerror=()=>{n||(n=!0,t(new pa(`WebSocket connection failed: ${this.url}`)))}})}disconnect(){this.stopped=!0,this.clearReconnectTimer(),this.stopPing(),this.ws&&(this.ws.onclose=null,this.ws.onerror=null,this.ws.onmessage=null,this.ws.close(),this.ws=null),this.setStatus("disconnected")}send(e){if(!this.ws||this.ws.readyState!==1)throw new pa("WebSocket is not connected");this.ws.send(JSON.stringify(e))}startPing(){this.stopPing(),this.pingInterval>0&&(this.pingTimer=setInterval(()=>{try{this.send({type:"ping"})}catch{}},this.pingInterval))}stopPing(){this.pingTimer!==null&&(clearInterval(this.pingTimer),this.pingTimer=null)}scheduleReconnect(){if(this.reconnectAttempt>=this.maxReconnectAttempts){this.setStatus("disconnected");return}this.setStatus("reconnecting");let e=l9r(this.reconnectInterval*Math.pow(2,this.reconnectAttempt),this.reconnectInterval,h9r);this.reconnectAttempt++,this.reconnectTimer=setTimeout(async()=>{if(!this.stopped)try{await this.connect()}catch{}},e)}clearReconnectTimer(){this.reconnectTimer!==null&&(clearTimeout(this.reconnectTimer),this.reconnectTimer=null)}setStatus(e){if(this._status!==e){this._status=e;for(let t of this.statusHandlers)t(e)}}},e0t=Object.freeze({p:0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffedn,n:0x1000000000000000000000000000000014def9dea2f79cd65812631a5cf5d3edn,h:8n,a:0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffecn,d:0x52036cee2b6ffe738cc740797779e89800700a4d4141d8ab75eb4dca135978a3n,Gx:0x216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51an,Gy:0x6666666666666666666666666666666666666666666666666666666666666658n}),{p:yZ,n:mZ,Gx:Imt,Gy:Omt,a:d3e,d:l3e,h:g9r}=e0t,xZ=32,b9r=(...e)=>{"captureStackTrace"in Error&&typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(...e)},Cs=(e="")=>{let t=new Error(e);throw b9r(t,Cs),t},_9r=e=>typeof e=="bigint",v9r=e=>typeof e=="string",w9r=e=>e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name==="Uint8Array"&&"BYTES_PER_ELEMENT"in e&&e.BYTES_PER_ELEMENT===1,fh=(e,t,r="")=>{let n=w9r(e),i=e?.length,o=t!==void 0;if(!n||o&&i!==t){let s=r&&`"${r}" `,a=o?` of length ${t}`:"",c=n?`length=${i}`:`type=${typeof e}`,u=s+"expected Uint8Array"+a+", got "+c;throw n?new RangeError(u):new TypeError(u)}return e},EZ=e=>new Uint8Array(e),A3e=e=>Uint8Array.from(e),t0t=(e,t)=>e.toString(16).padStart(t,"0"),S3e=e=>Array.from(fh(e)).map(t=>t0t(t,2)).join(""),uh={_0:48,_9:57,A:65,F:70,a:97,f:102},Cmt=e=>{if(e>=uh._0&&e<=uh._9)return e-uh._0;if(e>=uh.A&&e<=uh.F)return e-(uh.A-10);if(e>=uh.a&&e<=uh.f)return e-(uh.a-10)},T3e=e=>{let t="hex invalid";if(!v9r(e))return Cs(t);let r=e.length,n=r/2;if(r%2)return Cs(t);let i=EZ(n);for(let o=0,s=0;o<n;o++,s+=2){let a=Cmt(e.charCodeAt(s)),c=Cmt(e.charCodeAt(s+1));if(a===void 0||c===void 0)return Cs(t);i[o]=a*16+c}return i},r0t=()=>globalThis?.crypto,x9r=()=>r0t()?.subtle??Cs("crypto.subtle must be defined, consider polyfill"),JA=(...e)=>{let t=0;for(let i of e)t+=fh(i).length;let r=EZ(t),n=0;return e.forEach(i=>{r.set(i,n),n+=i.length}),r},E9r=(e=xZ)=>r0t().getRandomValues(EZ(e)),gZ=BigInt,s4=(e,t,r,n="bad number: out of range")=>{if(!_9r(e))throw new TypeError(n);if(t<=e&&e<r)return e;throw new RangeError(n)},Rn=(e,t=yZ)=>{let r=e%t;return r>=0n?r:t+r},kmt=(1n<<255n)-1n,Ke=e=>{e<0n&&Cs("negative coordinate");let t=(e>>255n)*19n+(e&kmt);return t=(t>>255n)*19n+(t&kmt),t%yZ},n0t=e=>Rn(e,mZ),i0t=(e,t)=>{(e===0n||t<=0n)&&Cs("no inverse n="+e+" mod="+t);let r=Rn(e,t),n=t,i=0n,o=1n;for(;r!==0n;){let s=n/r,a=n%r,c=i-o*s;n=r,r=a,i=o,o=c}return n===1n?Rn(i,t):Cs("no inverse")},o0t=e=>{let t=d0t[e];return typeof t!="function"&&Cs("hashes."+e+" not set"),t},s0t=e=>fh(e,64,"digest"),p3e=e=>e instanceof dB?e:Cs("Point expected"),b3e=2n**256n,dB=class a4{static BASE;static ZERO;X;Y;Z;T;constructor(t,r,n,i){let o=b3e;this.X=s4(t,0n,o),this.Y=s4(r,0n,o),this.Z=s4(n,1n,o),this.T=s4(i,0n,o),Object.freeze(this)}static CURVE(){return e0t}static fromAffine(t){return new a4(t.x,t.y,1n,Ke(t.x*t.y))}static fromBytes(t,r=!1){let n=l3e,i=A3e(fh(t,xZ)),o=t[31];i[31]=o&-129;let s=c0t(i);s4(s,0n,r?b3e:yZ);let c=Ke(s*s),u=Rn(c-1n),d=Ke(n*c+1n),{isValid:l,value:p}=S9r(u,d);l||Cs("bad point: y not sqrt");let f=(p&1n)===1n,m=(o&128)!==0;return!r&&p===0n&&m&&Cs("bad point: x==0, isLastByteOdd"),m!==f&&(p=Rn(-p)),new a4(p,s,1n,Ke(p*s))}static fromHex(t,r){return a4.fromBytes(T3e(t),r)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}assertValidity(){let t=d3e,r=l3e,n=this;if(n.is0())return Cs("bad point: ZERO");let{X:i,Y:o,Z:s,T:a}=n,c=Ke(i*i),u=Ke(o*o),d=Ke(s*s),l=Ke(d*d),p=Ke(c*t),f=Ke(d*(p+u)),m=Rn(l+Ke(r*Ke(c*u)));if(f!==m)return Cs("bad point: equation left != right (1)");let h=Ke(i*o),y=Ke(s*a);return h!==y?Cs("bad point: equation left != right (2)"):this}equals(t){let{X:r,Y:n,Z:i}=this,{X:o,Y:s,Z:a}=p3e(t),c=Ke(r*a),u=Ke(o*i),d=Ke(n*a),l=Ke(s*i);return c===u&&d===l}is0(){return this.equals(l4)}negate(){return new a4(Rn(-this.X),this.Y,this.Z,Rn(-this.T))}double(){let{X:t,Y:r,Z:n}=this,i=d3e,o=Ke(t*t),s=Ke(r*r),a=Ke(2n*n*n),c=Ke(i*o),u=Rn(t+r),d=Rn(Ke(u*u)-o-s),l=Rn(c+s),p=Rn(l-a),f=Rn(c-s),m=Ke(d*p),h=Ke(l*f),y=Ke(d*f),w=Ke(p*l);return new a4(m,h,w,y)}add(t){let{X:r,Y:n,Z:i,T:o}=this,{X:s,Y:a,Z:c,T:u}=p3e(t),d=d3e,l=l3e,p=Ke(r*s),f=Ke(n*a),m=Ke(Ke(o*l)*u),h=Ke(i*c),y=Rn(Ke(Rn(r+n)*Rn(s+a))-p-f),w=Rn(h-m),x=Rn(h+m),_=Rn(f-Ke(d*p)),v=Ke(y*w),E=Ke(x*_),A=Ke(y*_),S=Ke(w*x);return new a4(v,E,S,A)}subtract(t){return this.add(p3e(t).negate())}multiply(t,r=!0){if(!r&&t===0n||(s4(t,1n,mZ),!r&&this.is0()))return l4;if(t===1n)return this;if(this.equals(f4))return j9r(t).p;let n=l4,i=f4;for(let o=this;t>0n;o=o.double(),t>>=1n)t&1n?n=n.add(o):r&&(i=i.add(o));return n}multiplyUnsafe(t){return this.multiply(t,!1)}toAffine(){let{X:t,Y:r,Z:n}=this;if(this.equals(l4))return{x:0n,y:1n};let i=i0t(n,yZ);Ke(n*i)!==1n&&Cs("invalid inverse");let o=Ke(t*i),s=Ke(r*i);return{x:o,y:s}}toBytes(){let{x:t,y:r}=this.toAffine(),n=a0t(r);return n[31]|=t&1n?128:0,n}toHex(){return S3e(this.toBytes())}clearCofactor(){return this.multiply(gZ(g9r),!1)}isSmallOrder(){return this.clearCofactor().is0()}isTorsionFree(){let t=this.multiply(mZ/2n,!1).double();return mZ%2n&&(t=t.add(this)),t.is0()}},f4=new dB(Imt,Omt,1n,Rn(Imt*Omt)),l4=new dB(0n,1n,1n,0n);dB.BASE=f4;dB.ZERO=l4;a0t=e=>T3e(t0t(s4(e,0n,b3e),64)).reverse(),c0t=e=>gZ("0x"+S3e(A3e(fh(e)).reverse())),Mm=(e,t)=>{let r=e;for(;t-- >0n;)r=Ke(r*r);return r},A9r=e=>{let t=Ke(e*e),r=Ke(t*e),n=Ke(Mm(r,2n)*r),i=Ke(Mm(n,1n)*e),o=Ke(Mm(i,5n)*i),s=Ke(Mm(o,10n)*o),a=Ke(Mm(s,20n)*s),c=Ke(Mm(a,40n)*a),u=Ke(Mm(c,80n)*c),d=Ke(Mm(u,80n)*c),l=Ke(Mm(d,10n)*o);return{pow_p_5_8:Ke(Mm(l,2n)*e),b2:r}},Rmt=0x2b8324804fc1df0b2b4d00993dfbd7a72f431806ad2fe478c4ee1b274a0ea0b0n,S9r=(e,t)=>{let r=Ke(t*Ke(t*t)),n=Ke(Ke(r*r)*t),i=A9r(Ke(e*n)).pow_p_5_8,o=Ke(e*Ke(r*i)),s=Ke(t*Ke(o*o)),a=o,c=Ke(o*Rmt),u=s===e,d=s===Rn(-e),l=s===Rn(-e*Rmt);return u&&(o=a),(d||l)&&(o=c),(Rn(o)&1n)===1n&&(o=Rn(-o)),{isValid:u||d,value:o}},_3e=e=>n0t(c0t(e)),P3e=(...e)=>Promise.resolve(o0t("sha512Async")(JA(...e))).then(s0t),T9r=(...e)=>s0t(o0t("sha512")(JA(...e))),u0t=e=>{let t=A3e(e),r=t.slice(0,32);r[0]&=248,r[31]&=127,r[31]|=64;let n=t.slice(32,64),i=_3e(r),o=f4.multiply(i),s=o.toBytes();return{head:r,prefix:n,scalar:i,point:o,pointBytes:s}},P9r=e=>P3e(fh(e,xZ)).then(u0t),I9r=e=>u0t(T9r(fh(e,xZ))),O9r=e=>I9r(e).pointBytes,C9r=e=>P3e(e.hashable).then(e.finish),k9r=(e,t,r)=>{let{pointBytes:n,scalar:i}=e,o=_3e(t),s=f4.multiply(o).toBytes();return{hashable:JA(s,n,r),finish:u=>{let d=n0t(o+_3e(u)*i);return fh(JA(s,a0t(d)),64)}}},R9r=async(e,t)=>{let r=fh(e),n=await P9r(t),i=await P3e(n.prefix,r);return C9r(k9r(n,i,r))},I3e=Object.freeze({bytesToHex:S3e,hexToBytes:T3e,concatBytes:JA,mod:Rn,invert:i0t,randomBytes:E9r}),d0t={sha512Async:async e=>{let t=x9r(),r=JA(e);return EZ(await t.digest("SHA-512",r.buffer))},sha512:void 0},bZ=8,B9r=256,l0t=Math.ceil(B9r/bZ)+1,v3e=2**(bZ-1),N9r=()=>{let e=[],t=f4,r=t;for(let n=0;n<l0t;n++){r=t,e.push(r);for(let i=1;i<v3e;i++)r=r.add(t),e.push(r);t=r.double()}return e},Bmt=void 0,Nmt=(e,t)=>{let r=t.negate();return e?r:t},j9r=e=>{let t=Bmt||(Bmt=N9r()),r=l4,n=f4,i=2**bZ,o=i,s=gZ(i-1),a=gZ(bZ);for(let c=0;c<l0t;c++){let u=Number(e&s);e>>=a,u>v3e&&(u-=o,e+=1n);let d=c*v3e,l=d,p=d+Math.abs(u)-1,f=c%2!==0,m=u<0;u===0?n=n.add(Nmt(f,t[l])):r=r.add(Nmt(m,t[p]))}return e!==0n&&Cs("invalid wnaf"),{p:r,f:n}};m0t=e=>({oid:Uint8Array.from([6,9,96,134,72,1,101,3,4,2,e])});h0t=class{blockLen;outputLen;canXOF=!1;padOffset;isLE;buffer;view;finished=!1;length=0;pos=0;destroyed=!1;constructor(e,t,r,n){this.blockLen=e,this.outputLen=t,this.padOffset=r,this.isLE=n,this.buffer=new Uint8Array(e),this.view=f3e(this.buffer)}update(e){jmt(this),p0t(e);let{view:t,buffer:r,blockLen:n}=this,i=e.length;for(let o=0;o<i;){let s=Math.min(n-this.pos,i-o);if(s===n){let a=f3e(e);for(;n<=i-o;o+=n)this.process(a,o);continue}r.set(e.subarray(o,o+s),this.pos),this.pos+=s,o+=s,this.pos===n&&(this.process(t,0),this.pos=0)}return this.length+=e.length,this.roundClean(),this}digestInto(e){jmt(this),q9r(e,this),this.finished=!0;let{buffer:t,view:r,blockLen:n,isLE:i}=this,{pos:o}=this;t[o++]=128,uB(this.buffer.subarray(o)),this.padOffset>n-o&&(this.process(r,0),o=0);for(let d=o;d<n;d++)t[d]=0;r.setBigUint64(n-8,BigInt(this.length*8),i),this.process(r,0);let s=f3e(e),a=this.outputLen;if(a%4)throw new Error("_sha2: outputLen must be aligned to 32bit");let c=a/4,u=this.get();if(c>u.length)throw new Error("_sha2: outputLen bigger than state");for(let d=0;d<c;d++)s.setUint32(4*d,u[d],i)}digest(){let{buffer:e,outputLen:t}=this;this.digestInto(e);let r=e.slice(0,t);return this.destroy(),r}_cloneInto(e){e||=new this.constructor,e.set(...this.get());let{blockLen:t,buffer:r,length:n,finished:i,destroyed:o,pos:s}=this;return e.destroyed=o,e.finished=i,e.length=n,e.pos=s,n%t&&e.buffer.set(r),e}clone(){return this._cloneInto()}},g2=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),fa=Uint32Array.from([1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209]),cZ=BigInt(2**32-1),Umt=BigInt(32);qmt=(e,t,r)=>e>>>r,Mmt=(e,t,r)=>e<<32-r|t>>>r,VA=(e,t,r)=>e>>>r|t<<32-r,KA=(e,t,r)=>e<<32-r|t>>>r,uZ=(e,t,r)=>e<<64-r|t>>>r-32,dZ=(e,t,r)=>e>>>r-32|t<<64-r;H9r=(e,t,r)=>(e>>>0)+(t>>>0)+(r>>>0),F9r=(e,t,r,n)=>t+r+n+(e/2**32|0)|0,$9r=(e,t,r,n)=>(e>>>0)+(t>>>0)+(r>>>0)+(n>>>0),V9r=(e,t,r,n,i)=>t+r+n+i+(e/2**32|0)|0,K9r=(e,t,r,n,i)=>(e>>>0)+(t>>>0)+(r>>>0)+(n>>>0)+(i>>>0),W9r=(e,t,r,n,i,o)=>t+r+n+i+o+(e/2**32|0)|0,G9r=Uint32Array.from([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),b2=new Uint32Array(64),J9r=class extends h0t{constructor(e){super(64,e,8,!1)}get(){let{A:e,B:t,C:r,D:n,E:i,F:o,G:s,H:a}=this;return[e,t,r,n,i,o,s,a]}set(e,t,r,n,i,o,s,a){this.A=e|0,this.B=t|0,this.C=r|0,this.D=n|0,this.E=i|0,this.F=o|0,this.G=s|0,this.H=a|0}process(e,t){for(let d=0;d<16;d++,t+=4)b2[d]=e.getUint32(t,!1);for(let d=16;d<64;d++){let l=b2[d-15],p=b2[d-2],f=Dm(l,7)^Dm(l,18)^l>>>3,m=Dm(p,17)^Dm(p,19)^p>>>10;b2[d]=m+b2[d-7]+f+b2[d-16]|0}let{A:r,B:n,C:i,D:o,E:s,F:a,G:c,H:u}=this;for(let d=0;d<64;d++){let l=Dm(s,6)^Dm(s,11)^Dm(s,25),p=u+l+M9r(s,a,c)+G9r[d]+b2[d]|0,m=(Dm(r,2)^Dm(r,13)^Dm(r,22))+D9r(r,n,i)|0;u=c,c=a,a=s,s=o+p|0,o=i,i=n,n=r,r=p+m|0}r=r+this.A|0,n=n+this.B|0,i=i+this.C|0,o=o+this.D|0,s=s+this.E|0,a=a+this.F|0,c=c+this.G|0,u=u+this.H|0,this.set(r,n,i,o,s,a,c,u)}roundClean(){uB(b2)}destroy(){this.destroyed=!0,this.set(0,0,0,0,0,0,0,0),uB(this.buffer)}},Y9r=class extends J9r{A=g2[0]|0;B=g2[1]|0;C=g2[2]|0;D=g2[3]|0;E=g2[4]|0;F=g2[5]|0;G=g2[6]|0;H=g2[7]|0;constructor(){super(32)}},y0t=z9r(["0x428a2f98d728ae22","0x7137449123ef65cd","0xb5c0fbcfec4d3b2f","0xe9b5dba58189dbbc","0x3956c25bf348b538","0x59f111f1b605d019","0x923f82a4af194f9b","0xab1c5ed5da6d8118","0xd807aa98a3030242","0x12835b0145706fbe","0x243185be4ee4b28c","0x550c7dc3d5ffb4e2","0x72be5d74f27b896f","0x80deb1fe3b1696b1","0x9bdc06a725c71235","0xc19bf174cf692694","0xe49b69c19ef14ad2","0xefbe4786384f25e3","0x0fc19dc68b8cd5b5","0x240ca1cc77ac9c65","0x2de92c6f592b0275","0x4a7484aa6ea6e483","0x5cb0a9dcbd41fbd4","0x76f988da831153b5","0x983e5152ee66dfab","0xa831c66d2db43210","0xb00327c898fb213f","0xbf597fc7beef0ee4","0xc6e00bf33da88fc2","0xd5a79147930aa725","0x06ca6351e003826f","0x142929670a0e6e70","0x27b70a8546d22ffc","0x2e1b21385c26c926","0x4d2c6dfc5ac42aed","0x53380d139d95b3df","0x650a73548baf63de","0x766a0abb3c77b2a8","0x81c2c92e47edaee6","0x92722c851482353b","0xa2bfe8a14cf10364","0xa81a664bbc423001","0xc24b8b70d0f89791","0xc76c51a30654be30","0xd192e819d6ef5218","0xd69906245565a910","0xf40e35855771202a","0x106aa07032bbd1b8","0x19a4c116b8d2d0c8","0x1e376c085141ab53","0x2748774cdf8eeb99","0x34b0bcb5e19b48a8","0x391c0cb3c5c95a63","0x4ed8aa4ae3418acb","0x5b9cca4f7763e373","0x682e6ff3d6b2b8a3","0x748f82ee5defb2fc","0x78a5636f43172f60","0x84c87814a1f0ab72","0x8cc702081a6439ec","0x90befffa23631e28","0xa4506cebde82bde9","0xbef9a3f7b2c67915","0xc67178f2e372532b","0xca273eceea26619c","0xd186b8c721c0c207","0xeada7dd6cde0eb1e","0xf57d4f7fee6ed178","0x06f067aa72176fba","0x0a637dc5a2c898a6","0x113f9804bef90dae","0x1b710b35131c471b","0x28db77f523047d84","0x32caab7b40c72493","0x3c9ebe0a15c9bebc","0x431d67c49c100d4c","0x4cc5d4becb3e42b6","0x597f299cfc657e2a","0x5fcb6fab3ad6faec","0x6c44198c4a475817"].map(e=>BigInt(e))),Z9r=y0t[0],X9r=y0t[1],_2=new Uint32Array(80),v2=new Uint32Array(80),Q9r=class extends h0t{constructor(e){super(128,e,16,!1)}get(){let{Ah:e,Al:t,Bh:r,Bl:n,Ch:i,Cl:o,Dh:s,Dl:a,Eh:c,El:u,Fh:d,Fl:l,Gh:p,Gl:f,Hh:m,Hl:h}=this;return[e,t,r,n,i,o,s,a,c,u,d,l,p,f,m,h]}set(e,t,r,n,i,o,s,a,c,u,d,l,p,f,m,h){this.Ah=e|0,this.Al=t|0,this.Bh=r|0,this.Bl=n|0,this.Ch=i|0,this.Cl=o|0,this.Dh=s|0,this.Dl=a|0,this.Eh=c|0,this.El=u|0,this.Fh=d|0,this.Fl=l|0,this.Gh=p|0,this.Gl=f|0,this.Hh=m|0,this.Hl=h|0}process(e,t){for(let x=0;x<16;x++,t+=4)_2[x]=e.getUint32(t),v2[x]=e.getUint32(t+=4);for(let x=16;x<80;x++){let _=_2[x-15]|0,v=v2[x-15]|0,E=VA(_,v,1)^VA(_,v,8)^qmt(_,v,7),A=KA(_,v,1)^KA(_,v,8)^Mmt(_,v,7),S=_2[x-2]|0,C=v2[x-2]|0,I=VA(S,C,19)^uZ(S,C,61)^qmt(S,C,6),k=KA(S,C,19)^dZ(S,C,61)^Mmt(S,C,6),q=$9r(A,k,v2[x-7],v2[x-16]),j=V9r(q,E,I,_2[x-7],_2[x-16]);_2[x]=j|0,v2[x]=q|0}let{Ah:r,Al:n,Bh:i,Bl:o,Ch:s,Cl:a,Dh:c,Dl:u,Eh:d,El:l,Fh:p,Fl:f,Gh:m,Gl:h,Hh:y,Hl:w}=this;for(let x=0;x<80;x++){let _=VA(d,l,14)^VA(d,l,18)^uZ(d,l,41),v=KA(d,l,14)^KA(d,l,18)^dZ(d,l,41),E=d&p^~d&m,A=l&f^~l&h,S=K9r(w,v,A,X9r[x],v2[x]),C=W9r(S,y,_,E,Z9r[x],_2[x]),I=S|0,k=VA(r,n,28)^uZ(r,n,34)^uZ(r,n,39),q=KA(r,n,28)^dZ(r,n,34)^dZ(r,n,39),j=r&i^r&s^i&s,U=n&o^n&a^o&a;y=m|0,w=h|0,m=p|0,h=f|0,p=d|0,f=l|0,{h:d,l}=dh(c|0,u|0,C|0,I|0),c=s|0,u=a|0,s=i|0,a=o|0,i=r|0,o=n|0;let B=H9r(I,q,U);r=F9r(B,C,k,j),n=B|0}({h:r,l:n}=dh(this.Ah|0,this.Al|0,r|0,n|0)),{h:i,l:o}=dh(this.Bh|0,this.Bl|0,i|0,o|0),{h:s,l:a}=dh(this.Ch|0,this.Cl|0,s|0,a|0),{h:c,l:u}=dh(this.Dh|0,this.Dl|0,c|0,u|0),{h:d,l}=dh(this.Eh|0,this.El|0,d|0,l|0),{h:p,l:f}=dh(this.Fh|0,this.Fl|0,p|0,f|0),{h:m,l:h}=dh(this.Gh|0,this.Gl|0,m|0,h|0),{h:y,l:w}=dh(this.Hh|0,this.Hl|0,y|0,w|0),this.set(r,n,i,o,s,a,c,u,d,l,p,f,m,h,y,w)}roundClean(){uB(_2,v2)}destroy(){this.destroyed=!0,uB(this.buffer),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}},exr=class extends Q9r{Ah=fa[0]|0;Al=fa[1]|0;Bh=fa[2]|0;Bl=fa[3]|0;Ch=fa[4]|0;Cl=fa[5]|0;Dh=fa[6]|0;Dl=fa[7]|0;Eh=fa[8]|0;El=fa[9]|0;Fh=fa[10]|0;Fl=fa[11]|0;Gh=fa[12]|0;Gl=fa[13]|0;Hh=fa[14]|0;Hl=fa[15]|0;constructor(){super(64)}},txr=f0t(()=>new Y9r,m0t(1)),rxr=f0t(()=>new exr,m0t(3)),Dmt=d0t;Dmt.sha512||(Dmt.sha512=e=>rxr(e));oxr=I3e.bytesToHex,g0t=I3e.hexToBytes;I3e.concatBytes;axr=new TextEncoder,cxr={subwayAgentMsgV1:"message_id;sender_peer_id;sender_name;timestamp_ms;message_type;payload_hash;nonce"};g0t("302e020100300506032b657004220420");g0t("302a300506032b6570032100");b0t="ABCDEFGHJKLMNPQRSTUVWXYZ23456789",pxr=b0t.length-1;if((b0t.length&pxr)!==0)throw new Error("agent pairing code alphabet must contain a power-of-two number of symbols");_0t=Object.freeze({p:0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffedn,n:0x1000000000000000000000000000000014def9dea2f79cd65812631a5cf5d3edn,h:8n,a:0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffecn,d:0x52036cee2b6ffe738cc740797779e89800700a4d4141d8ab75eb4dca135978a3n,Gx:0x216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51an,Gy:0x6666666666666666666666666666666666666666666666666666666666666658n}),{p:_Z,n:hZ,Gx:Lmt,Gy:zmt,a:m3e,d:h3e,h:fxr}=_0t,YA=32,mxr=(...e)=>{"captureStackTrace"in Error&&typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(...e)},ks=(e="")=>{let t=new Error(e);throw mxr(t,ks),t},hxr=e=>typeof e=="bigint",yxr=e=>typeof e=="string",gxr=e=>e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name==="Uint8Array"&&"BYTES_PER_ELEMENT"in e&&e.BYTES_PER_ELEMENT===1,A2=(e,t,r="")=>{let n=gxr(e),i=e?.length,o=t!==void 0;if(!n||o&&i!==t){let s=r&&`"${r}" `,a=o?` of length ${t}`:"",c=n?`length=${i}`:`type=${typeof e}`,u=s+"expected Uint8Array"+a+", got "+c;throw n?new RangeError(u):new TypeError(u)}return e},AZ=e=>new Uint8Array(e),O3e=e=>Uint8Array.from(e),v0t=(e,t)=>e.toString(16).padStart(t,"0"),w0t=e=>Array.from(A2(e)).map(t=>v0t(t,2)).join(""),lh={_0:48,_9:57,A:65,F:70,a:97,f:102},Hmt=e=>{if(e>=lh._0&&e<=lh._9)return e-lh._0;if(e>=lh.A&&e<=lh.F)return e-(lh.A-10);if(e>=lh.a&&e<=lh.f)return e-(lh.a-10)},x0t=e=>{let t="hex invalid";if(!yxr(e))return ks(t);let r=e.length,n=r/2;if(r%2)return ks(t);let i=AZ(n);for(let o=0,s=0;o<n;o++,s+=2){let a=Hmt(e.charCodeAt(s)),c=Hmt(e.charCodeAt(s+1));if(a===void 0||c===void 0)return ks(t);i[o]=a*16+c}return i},E0t=()=>globalThis?.crypto,bxr=()=>E0t()?.subtle??ks("crypto.subtle must be defined, consider polyfill"),C3e=(...e)=>{let t=0;for(let i of e)t+=A2(i).length;let r=AZ(t),n=0;return e.forEach(i=>{r.set(i,n),n+=i.length}),r},_xr=(e=YA)=>E0t().getRandomValues(AZ(e)),vZ=BigInt,c4=(e,t,r,n="bad number: out of range")=>{if(!hxr(e))throw new TypeError(n);if(t<=e&&e<r)return e;throw new RangeError(n)},Gn=(e,t=_Z)=>{let r=e%t;return r>=0n?r:t+r},Fmt=(1n<<255n)-1n,We=e=>{e<0n&&ks("negative coordinate");let t=(e>>255n)*19n+(e&Fmt);return t=(t>>255n)*19n+(t&Fmt),t%_Z},vxr=e=>Gn(e,hZ),wxr=(e,t)=>{(e===0n||t<=0n)&&ks("no inverse n="+e+" mod="+t);let r=Gn(e,t),n=t,i=0n,o=1n;for(;r!==0n;){let s=n/r,a=n%r,c=i-o*s;n=r,r=a,i=o,o=c}return n===1n?Gn(i,t):ks("no inverse")},A0t=e=>{let t=O0t[e];return typeof t!="function"&&ks("hashes."+e+" not set"),t},S0t=e=>A2(e,64,"digest"),y3e=e=>e instanceof lB?e:ks("Point expected"),w3e=2n**256n,lB=class u4{static BASE;static ZERO;X;Y;Z;T;constructor(t,r,n,i){let o=w3e;this.X=c4(t,0n,o),this.Y=c4(r,0n,o),this.Z=c4(n,1n,o),this.T=c4(i,0n,o),Object.freeze(this)}static CURVE(){return _0t}static fromAffine(t){return new u4(t.x,t.y,1n,We(t.x*t.y))}static fromBytes(t,r=!1){let n=h3e,i=O3e(A2(t,YA)),o=t[31];i[31]=o&-129;let s=T0t(i);c4(s,0n,r?w3e:_Z);let c=We(s*s),u=Gn(c-1n),d=We(n*c+1n),{isValid:l,value:p}=Axr(u,d);l||ks("bad point: y not sqrt");let f=(p&1n)===1n,m=(o&128)!==0;return!r&&p===0n&&m&&ks("bad point: x==0, isLastByteOdd"),m!==f&&(p=Gn(-p)),new u4(p,s,1n,We(p*s))}static fromHex(t,r){return u4.fromBytes(x0t(t),r)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}assertValidity(){let t=m3e,r=h3e,n=this;if(n.is0())return ks("bad point: ZERO");let{X:i,Y:o,Z:s,T:a}=n,c=We(i*i),u=We(o*o),d=We(s*s),l=We(d*d),p=We(c*t),f=We(d*(p+u)),m=Gn(l+We(r*We(c*u)));if(f!==m)return ks("bad point: equation left != right (1)");let h=We(i*o),y=We(s*a);return h!==y?ks("bad point: equation left != right (2)"):this}equals(t){let{X:r,Y:n,Z:i}=this,{X:o,Y:s,Z:a}=y3e(t),c=We(r*a),u=We(o*i),d=We(n*a),l=We(s*i);return c===u&&d===l}is0(){return this.equals(p4)}negate(){return new u4(Gn(-this.X),this.Y,this.Z,Gn(-this.T))}double(){let{X:t,Y:r,Z:n}=this,i=m3e,o=We(t*t),s=We(r*r),a=We(2n*n*n),c=We(i*o),u=Gn(t+r),d=Gn(We(u*u)-o-s),l=Gn(c+s),p=Gn(l-a),f=Gn(c-s),m=We(d*p),h=We(l*f),y=We(d*f),w=We(p*l);return new u4(m,h,w,y)}add(t){let{X:r,Y:n,Z:i,T:o}=this,{X:s,Y:a,Z:c,T:u}=y3e(t),d=m3e,l=h3e,p=We(r*s),f=We(n*a),m=We(We(o*l)*u),h=We(i*c),y=Gn(We(Gn(r+n)*Gn(s+a))-p-f),w=Gn(h-m),x=Gn(h+m),_=Gn(f-We(d*p)),v=We(y*w),E=We(x*_),A=We(y*_),S=We(w*x);return new u4(v,E,S,A)}subtract(t){return this.add(y3e(t).negate())}multiply(t,r=!0){if(!r&&t===0n||(c4(t,1n,hZ),!r&&this.is0()))return p4;if(t===1n)return this;if(this.equals(ZA))return Nxr(t).p;let n=p4,i=ZA;for(let o=this;t>0n;o=o.double(),t>>=1n)t&1n?n=n.add(o):r&&(i=i.add(o));return n}multiplyUnsafe(t){return this.multiply(t,!1)}toAffine(){let{X:t,Y:r,Z:n}=this;if(this.equals(p4))return{x:0n,y:1n};let i=wxr(n,_Z);We(n*i)!==1n&&ks("invalid inverse");let o=We(t*i),s=We(r*i);return{x:o,y:s}}toBytes(){let{x:t,y:r}=this.toAffine(),n=xxr(r);return n[31]|=t&1n?128:0,n}toHex(){return w0t(this.toBytes())}clearCofactor(){return this.multiply(vZ(fxr),!1)}isSmallOrder(){return this.clearCofactor().is0()}isTorsionFree(){let t=this.multiply(hZ/2n,!1).double();return hZ%2n&&(t=t.add(this)),t.is0()}},ZA=new lB(Lmt,zmt,1n,Gn(Lmt*zmt)),p4=new lB(0n,1n,1n,0n);lB.BASE=ZA;lB.ZERO=p4;xxr=e=>x0t(v0t(c4(e,0n,w3e),64)).reverse(),T0t=e=>vZ("0x"+w0t(O3e(A2(e)).reverse())),Lm=(e,t)=>{let r=e;for(;t-- >0n;)r=We(r*r);return r},Exr=e=>{let t=We(e*e),r=We(t*e),n=We(Lm(r,2n)*r),i=We(Lm(n,1n)*e),o=We(Lm(i,5n)*i),s=We(Lm(o,10n)*o),a=We(Lm(s,20n)*s),c=We(Lm(a,40n)*a),u=We(Lm(c,80n)*c),d=We(Lm(u,80n)*c),l=We(Lm(d,10n)*o);return{pow_p_5_8:We(Lm(l,2n)*e),b2:r}},$mt=0x2b8324804fc1df0b2b4d00993dfbd7a72f431806ad2fe478c4ee1b274a0ea0b0n,Axr=(e,t)=>{let r=We(t*We(t*t)),n=We(We(r*r)*t),i=Exr(We(e*n)).pow_p_5_8,o=We(e*We(r*i)),s=We(t*We(o*o)),a=o,c=We(o*$mt),u=s===e,d=s===Gn(-e),l=s===Gn(-e*$mt);return u&&(o=a),(d||l)&&(o=c),(Gn(o)&1n)===1n&&(o=Gn(-o)),{isValid:u||d,value:o}},Sxr=e=>vxr(T0t(e)),Txr=(...e)=>Promise.resolve(A0t("sha512Async")(C3e(...e))).then(S0t),Pxr=(...e)=>S0t(A0t("sha512")(C3e(...e))),P0t=e=>{let t=O3e(e),r=t.slice(0,32);r[0]&=248,r[31]&=127,r[31]|=64;let n=t.slice(32,64),i=Sxr(r),o=ZA.multiply(i),s=o.toBytes();return{head:r,prefix:n,scalar:i,point:o,pointBytes:s}},Ixr=e=>Txr(A2(e,YA)).then(P0t),I0t=e=>P0t(Pxr(A2(e,YA))),Oxr=e=>I0t(e).pointBytes,O0t={sha512Async:async e=>{let t=bxr(),r=C3e(e);return AZ(await t.digest("SHA-512",r.buffer))},sha512:void 0},Cxr=e=>(e=e===void 0?_xr(YA):e,A2(e,YA)),kxr=Object.freeze({getExtendedPublicKeyAsync:Ixr,getExtendedPublicKey:I0t,randomSecretKey:Cxr}),wZ=8,Rxr=256,C0t=Math.ceil(Rxr/wZ)+1,x3e=2**(wZ-1),Bxr=()=>{let e=[],t=ZA,r=t;for(let n=0;n<C0t;n++){r=t,e.push(r);for(let i=1;i<x3e;i++)r=r.add(t),e.push(r);t=r.double()}return e},Vmt=void 0,Kmt=(e,t)=>{let r=t.negate();return e?r:t},Nxr=e=>{let t=Vmt||(Vmt=Bxr()),r=p4,n=ZA,i=2**wZ,o=i,s=vZ(i-1),a=vZ(wZ);for(let c=0;c<C0t;c++){let u=Number(e&s);e>>=a,u>x3e&&(u-=o,e+=1n);let d=c*x3e,l=d,p=d+Math.abs(u)-1,f=c%2!==0,m=u<0;u===0?n=n.add(Kmt(f,t[l])):r=r.add(Kmt(m,t[p]))}return e!==0n&&ks("invalid wnaf"),{p:r,f:n}};Mxr=e=>({oid:Uint8Array.from([6,9,96,134,72,1,101,3,4,2,e])}),Dxr=class{blockLen;outputLen;canXOF=!1;padOffset;isLE;buffer;view;finished=!1;length=0;pos=0;destroyed=!1;constructor(e,t,r,n){this.blockLen=e,this.outputLen=t,this.padOffset=r,this.isLE=n,this.buffer=new Uint8Array(e),this.view=g3e(this.buffer)}update(e){Wmt(this),k0t(e);let{view:t,buffer:r,blockLen:n}=this,i=e.length;for(let o=0;o<i;){let s=Math.min(n-this.pos,i-o);if(s===n){let a=g3e(e);for(;n<=i-o;o+=n)this.process(a,o);continue}r.set(e.subarray(o,o+s),this.pos),this.pos+=s,o+=s,this.pos===n&&(this.process(t,0),this.pos=0)}return this.length+=e.length,this.roundClean(),this}digestInto(e){Wmt(this),Uxr(e,this),this.finished=!0;let{buffer:t,view:r,blockLen:n,isLE:i}=this,{pos:o}=this;t[o++]=128,E3e(this.buffer.subarray(o)),this.padOffset>n-o&&(this.process(r,0),o=0);for(let d=o;d<n;d++)t[d]=0;r.setBigUint64(n-8,BigInt(this.length*8),i),this.process(r,0);let s=g3e(e),a=this.outputLen;if(a%4)throw new Error("_sha2: outputLen must be aligned to 32bit");let c=a/4,u=this.get();if(c>u.length)throw new Error("_sha2: outputLen bigger than state");for(let d=0;d<c;d++)s.setUint32(4*d,u[d],i)}digest(){let{buffer:e,outputLen:t}=this;this.digestInto(e);let r=e.slice(0,t);return this.destroy(),r}_cloneInto(e){e||=new this.constructor,e.set(...this.get());let{blockLen:t,buffer:r,length:n,finished:i,destroyed:o,pos:s}=this;return e.destroyed=o,e.finished=i,e.length=n,e.pos=s,n%t&&e.buffer.set(r),e}clone(){return this._cloneInto()}},ma=Uint32Array.from([1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209]),lZ=BigInt(2**32-1),Gmt=BigInt(32);Jmt=(e,t,r)=>e>>>r,Ymt=(e,t,r)=>e<<32-r|t>>>r,WA=(e,t,r)=>e>>>r|t<<32-r,GA=(e,t,r)=>e<<32-r|t>>>r,pZ=(e,t,r)=>e<<64-r|t>>>r-32,fZ=(e,t,r)=>e>>>r-32|t<<64-r;Hxr=(e,t,r)=>(e>>>0)+(t>>>0)+(r>>>0),Fxr=(e,t,r,n)=>t+r+n+(e/2**32|0)|0,$xr=(e,t,r,n)=>(e>>>0)+(t>>>0)+(r>>>0)+(n>>>0),Vxr=(e,t,r,n,i)=>t+r+n+i+(e/2**32|0)|0,Kxr=(e,t,r,n,i)=>(e>>>0)+(t>>>0)+(r>>>0)+(n>>>0)+(i>>>0),Wxr=(e,t,r,n,i,o)=>t+r+n+i+o+(e/2**32|0)|0,R0t=zxr(["0x428a2f98d728ae22","0x7137449123ef65cd","0xb5c0fbcfec4d3b2f","0xe9b5dba58189dbbc","0x3956c25bf348b538","0x59f111f1b605d019","0x923f82a4af194f9b","0xab1c5ed5da6d8118","0xd807aa98a3030242","0x12835b0145706fbe","0x243185be4ee4b28c","0x550c7dc3d5ffb4e2","0x72be5d74f27b896f","0x80deb1fe3b1696b1","0x9bdc06a725c71235","0xc19bf174cf692694","0xe49b69c19ef14ad2","0xefbe4786384f25e3","0x0fc19dc68b8cd5b5","0x240ca1cc77ac9c65","0x2de92c6f592b0275","0x4a7484aa6ea6e483","0x5cb0a9dcbd41fbd4","0x76f988da831153b5","0x983e5152ee66dfab","0xa831c66d2db43210","0xb00327c898fb213f","0xbf597fc7beef0ee4","0xc6e00bf33da88fc2","0xd5a79147930aa725","0x06ca6351e003826f","0x142929670a0e6e70","0x27b70a8546d22ffc","0x2e1b21385c26c926","0x4d2c6dfc5ac42aed","0x53380d139d95b3df","0x650a73548baf63de","0x766a0abb3c77b2a8","0x81c2c92e47edaee6","0x92722c851482353b","0xa2bfe8a14cf10364","0xa81a664bbc423001","0xc24b8b70d0f89791","0xc76c51a30654be30","0xd192e819d6ef5218","0xd69906245565a910","0xf40e35855771202a","0x106aa07032bbd1b8","0x19a4c116b8d2d0c8","0x1e376c085141ab53","0x2748774cdf8eeb99","0x34b0bcb5e19b48a8","0x391c0cb3c5c95a63","0x4ed8aa4ae3418acb","0x5b9cca4f7763e373","0x682e6ff3d6b2b8a3","0x748f82ee5defb2fc","0x78a5636f43172f60","0x84c87814a1f0ab72","0x8cc702081a6439ec","0x90befffa23631e28","0xa4506cebde82bde9","0xbef9a3f7b2c67915","0xc67178f2e372532b","0xca273eceea26619c","0xd186b8c721c0c207","0xeada7dd6cde0eb1e","0xf57d4f7fee6ed178","0x06f067aa72176fba","0x0a637dc5a2c898a6","0x113f9804bef90dae","0x1b710b35131c471b","0x28db77f523047d84","0x32caab7b40c72493","0x3c9ebe0a15c9bebc","0x431d67c49c100d4c","0x4cc5d4becb3e42b6","0x597f299cfc657e2a","0x5fcb6fab3ad6faec","0x6c44198c4a475817"].map(e=>BigInt(e))),Gxr=R0t[0],Jxr=R0t[1],w2=new Uint32Array(80),x2=new Uint32Array(80),Yxr=class extends Dxr{constructor(e){super(128,e,16,!1)}get(){let{Ah:e,Al:t,Bh:r,Bl:n,Ch:i,Cl:o,Dh:s,Dl:a,Eh:c,El:u,Fh:d,Fl:l,Gh:p,Gl:f,Hh:m,Hl:h}=this;return[e,t,r,n,i,o,s,a,c,u,d,l,p,f,m,h]}set(e,t,r,n,i,o,s,a,c,u,d,l,p,f,m,h){this.Ah=e|0,this.Al=t|0,this.Bh=r|0,this.Bl=n|0,this.Ch=i|0,this.Cl=o|0,this.Dh=s|0,this.Dl=a|0,this.Eh=c|0,this.El=u|0,this.Fh=d|0,this.Fl=l|0,this.Gh=p|0,this.Gl=f|0,this.Hh=m|0,this.Hl=h|0}process(e,t){for(let x=0;x<16;x++,t+=4)w2[x]=e.getUint32(t),x2[x]=e.getUint32(t+=4);for(let x=16;x<80;x++){let _=w2[x-15]|0,v=x2[x-15]|0,E=WA(_,v,1)^WA(_,v,8)^Jmt(_,v,7),A=GA(_,v,1)^GA(_,v,8)^Ymt(_,v,7),S=w2[x-2]|0,C=x2[x-2]|0,I=WA(S,C,19)^pZ(S,C,61)^Jmt(S,C,6),k=GA(S,C,19)^fZ(S,C,61)^Ymt(S,C,6),q=$xr(A,k,x2[x-7],x2[x-16]),j=Vxr(q,E,I,w2[x-7],w2[x-16]);w2[x]=j|0,x2[x]=q|0}let{Ah:r,Al:n,Bh:i,Bl:o,Ch:s,Cl:a,Dh:c,Dl:u,Eh:d,El:l,Fh:p,Fl:f,Gh:m,Gl:h,Hh:y,Hl:w}=this;for(let x=0;x<80;x++){let _=WA(d,l,14)^WA(d,l,18)^pZ(d,l,41),v=GA(d,l,14)^GA(d,l,18)^fZ(d,l,41),E=d&p^~d&m,A=l&f^~l&h,S=Kxr(w,v,A,Jxr[x],x2[x]),C=Wxr(S,y,_,E,Gxr[x],w2[x]),I=S|0,k=WA(r,n,28)^pZ(r,n,34)^pZ(r,n,39),q=GA(r,n,28)^fZ(r,n,34)^fZ(r,n,39),j=r&i^r&s^i&s,U=n&o^n&a^o&a;y=m|0,w=h|0,m=p|0,h=f|0,p=d|0,f=l|0,{h:d,l}=ph(c|0,u|0,C|0,I|0),c=s|0,u=a|0,s=i|0,a=o|0,i=r|0,o=n|0;let B=Hxr(I,q,U);r=Fxr(B,C,k,j),n=B|0}({h:r,l:n}=ph(this.Ah|0,this.Al|0,r|0,n|0)),{h:i,l:o}=ph(this.Bh|0,this.Bl|0,i|0,o|0),{h:s,l:a}=ph(this.Ch|0,this.Cl|0,s|0,a|0),{h:c,l:u}=ph(this.Dh|0,this.Dl|0,c|0,u|0),{h:d,l}=ph(this.Eh|0,this.El|0,d|0,l|0),{h:p,l:f}=ph(this.Fh|0,this.Fl|0,p|0,f|0),{h:m,l:h}=ph(this.Gh|0,this.Gl|0,m|0,h|0),{h:y,l:w}=ph(this.Hh|0,this.Hl|0,y|0,w|0),this.set(r,n,i,o,s,a,c,u,d,l,p,f,m,h,y,w)}roundClean(){E3e(w2,x2)}destroy(){this.destroyed=!0,E3e(this.buffer),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}},Zxr=class extends Yxr{Ah=ma[0]|0;Al=ma[1]|0;Bh=ma[2]|0;Bl=ma[3]|0;Ch=ma[4]|0;Cl=ma[5]|0;Dh=ma[6]|0;Dl=ma[7]|0;Eh=ma[8]|0;El=ma[9]|0;Fh=ma[10]|0;Fl=ma[11]|0;Gh=ma[12]|0;Gl=ma[13]|0;Hh=ma[14]|0;Hl=ma[15]|0;constructor(){super(64)}},Xxr=qxr(()=>new Zxr,Mxr(3)),Zmt=O0t;Zmt.sha512||(Zmt.sha512=e=>Xxr(e));iEr="ws://localhost:9001/ws",oEr=3e4,N0t=class{transport;options;_peerId=null;_name;_keypair=null;messageHandlers=new Set;topicHandlers=new Map;rpcHandlers=new Map;defaultRpcHandler=null;pendingCalls=new Map;pendingSend=new Map;pendingResolve=new Map;eventListeners=new Map;registerPromise=null;hasConnectedOnce=!1;constructor(e){if(this._name=d4(e.name),e.keyPath)try{this._keypair=rEr(e.keyPath)}catch{}this.options={name:this._name,url:e.url??iEr,relay:e.relay??"",autoReconnect:e.autoReconnect??!0,reconnectInterval:e.reconnectInterval??1e3,maxReconnectAttempts:e.maxReconnectAttempts??10,rpcTimeout:e.rpcTimeout??oEr,pingInterval:e.pingInterval??3e4,binding:e.binding??""},this.transport=new y9r({url:this.options.url,autoReconnect:this.options.autoReconnect,reconnectInterval:this.options.reconnectInterval,maxReconnectAttempts:this.options.maxReconnectAttempts,pingInterval:this.options.pingInterval}),this.transport.onMessage(t=>this.handleBridgeMessage(t)),this.transport.onStatusChange(t=>this.handleStatusChange(t))}initKeypairFromSecret(e){try{let t=Buffer.from(e,"base64"),r=lxr(new Uint8Array(t));r&&(this._keypair={privateKey:r,publicKey:nxr(r)})}catch{}}get name(){return this._name}get peerId(){return this._peerId}get status(){return this.transport.status}async connect(){return await this.transport.connect(),new Promise((e,t)=>{this.registerPromise={resolve:e,reject:t};let r={type:"register",name:this._name};this.options.relay&&(r.relay=this.options.relay),this._keypair&&(r.public_key=Xmt(this._keypair.publicKey)),this.options.binding&&(r.binding=this.options.binding);try{this.transport.send(r)}catch(n){this.registerPromise=null,t(n instanceof Error?n:new pa(String(n)))}})}disconnect(){for(let[,e]of this.pendingCalls)clearTimeout(e.timer),e.reject(new pa("Client disconnected"));this.pendingCalls.clear();for(let[,e]of this.pendingSend)e.reject(new pa("Client disconnected"));this.pendingSend.clear();for(let[,e]of this.pendingResolve)e.reject(new pa("Client disconnected"));this.pendingResolve.clear(),this.registerPromise&&(this.registerPromise.reject(new pa("Client disconnected")),this.registerPromise=null),this.transport.disconnect(),this._peerId=null,this.hasConnectedOnce=!1}async send(e,t,r,n){let i=d4(e),o=u3e();return new Promise((s,a)=>{this.pendingSend.set(i,{resolve:s,reject:a});try{this.transport.send({type:"send",to:i,message_type:t,payload:r,metadata:n})}catch(c){this.pendingSend.delete(i),a(c instanceof Error?c:new pa(String(c)))}setTimeout(()=>{this.pendingSend.has(i)&&(this.pendingSend.delete(i),s({messageId:o,to:i}))},5e3)})}async sendSigned(e,t,r,n){if(!this._keypair||!this._peerId)return this.send(e,t,r,n);let i=d4(e),o=u3e(),s=Date.now(),a=Math.floor(Math.random()*2**32),c=new TextEncoder().encode(r),{signature:u,signatureInput:d}=await nEr(this._keypair.privateKey,o,this._peerId,this._name,s,t,c,a);return new Promise((l,p)=>{this.pendingSend.set(i,{resolve:l,reject:p});try{this.transport.send({type:"send_signed",to:i,message_id:o,sender_peer_id:this._peerId,sender_name:this._name,timestamp_ms:s,message_type:t,payload:r,metadata:n,signature:Buffer.from(u).toString("base64"),signature_input:d,nonce:a})}catch(f){this.pendingSend.delete(i),p(f instanceof Error?f:new pa(String(f)))}setTimeout(()=>{this.pendingSend.has(i)&&(this.pendingSend.delete(i),l({messageId:o,to:i}))},5e3)})}async call(e,t,r,n){let i=d4(e),o=n?.correlationId??u3e(),s=n?.timeout??this.options.rpcTimeout;return new Promise((a,c)=>{let u=setTimeout(()=>{this.pendingCalls.delete(o),c(new cB(`RPC call to ${i}.${t} timed out after ${s}ms`))},s);this.pendingCalls.set(o,{resolve:a,reject:c,timer:u});try{this.transport.send({type:"call",to:i,method:t,payload:r??"",correlation_id:o})}catch(d){clearTimeout(u),this.pendingCalls.delete(o),c(d instanceof Error?d:new pa(String(d)))}})}async broadcast(e,t,r){this.transport.send({type:"broadcast",topic:e,message_type:t,payload:r})}subscribe(e,t){let r=this.topicHandlers.get(e);if(!r){r=new Set,this.topicHandlers.set(e,r);try{this.transport.send({type:"subscribe",topic:e})}catch{}}return r.add(t),()=>{r.delete(t),r.size===0&&this.topicHandlers.delete(e)}}onMessage(e){return this.messageHandlers.add(e),()=>this.messageHandlers.delete(e)}onCall(e,t){return this.rpcHandlers.set(e,t),()=>this.rpcHandlers.delete(e)}onAnyCall(e){return this.defaultRpcHandler=e,()=>{this.defaultRpcHandler=null}}async resolve(e){let t=d4(e);return new Promise((r,n)=>{this.pendingResolve.set(t,{resolve:r,reject:n});try{this.transport.send({type:"resolve",name:t})}catch(i){this.pendingResolve.delete(t),n(i instanceof Error?i:new pa(String(i)))}setTimeout(()=>{this.pendingResolve.has(t)&&(this.pendingResolve.delete(t),n(new cB(`Resolve ${t} timed out`)))},1e4)})}on(e,t){let r=this.eventListeners.get(e);return r||(r=new Set,this.eventListeners.set(e,r)),r.add(t),()=>r.delete(t)}off(e,t){let r=this.eventListeners.get(e);r&&r.delete(t)}emit(e,...t){let r=this.eventListeners.get(e);if(r)for(let n of r)try{n(...t)}catch{}}handleBridgeMessage(e){switch(e.type){case"registered":this._peerId=e.peer_id,this._name=e.name,e.secret_key&&!this._keypair&&this.initKeypairFromSecret(e.secret_key),this.hasConnectedOnce=!0,this.registerPromise&&(this.registerPromise.resolve(),this.registerPromise=null),this.emit("connected",{name:e.name,peerId:e.peer_id}),this.resubscribeTopics();break;case"sent":{let t=this.pendingSend.get(e.to);t&&(this.pendingSend.delete(e.to),t.resolve({messageId:e.message_id,to:e.to}));break}case"call_result":{let t=this.pendingCalls.get(e.correlation_id);t&&(clearTimeout(t.timer),this.pendingCalls.delete(e.correlation_id),t.resolve({correlationId:e.correlation_id,success:e.success,payload:e.payload,error:e.error}));break}case"message":{let t={fromName:e.from_name,fromPeerId:e.from_peer_id,messageId:e.message_id,messageType:e.message_type,payload:e.payload,metadata:e.metadata??{},timestampMs:e.timestamp_ms,verified:e.verified,provenance:e.provenance?.map(r=>({signerName:r.signer_name,verified:r.verified})),attestation:e.attestation?{relayName:e.attestation.relay_name,verified:e.attestation.verified}:void 0,delegation:e.delegation?{parentName:e.delegation.parent_name,scope:e.delegation.scope,valid:e.delegation.valid,expired:e.delegation.expired}:void 0};for(let r of this.messageHandlers)try{r(t)}catch{}this.emit("message",t);break}case"inbound_call":this.handleInboundCall(e);break;case"broadcast_message":{let t={topic:e.topic,fromName:e.from_name,fromPeerId:e.from_peer_id,messageId:e.message_id,messageType:e.message_type,payload:e.payload,metadata:e.metadata??{},timestampMs:e.timestamp_ms,verified:e.verified,provenance:e.provenance?.map(n=>({signerName:n.signer_name,verified:n.verified})),attestation:e.attestation?{relayName:e.attestation.relay_name,verified:e.attestation.verified}:void 0,delegation:e.delegation?{parentName:e.delegation.parent_name,scope:e.delegation.scope,valid:e.delegation.valid,expired:e.delegation.expired}:void 0},r=this.topicHandlers.get(e.topic);if(r)for(let n of r)try{n(t)}catch{}this.emit("broadcast",t);break}case"resolved":{let t=this.pendingResolve.get(e.name);t&&(this.pendingResolve.delete(e.name),t.resolve({name:e.name,peerId:e.peer_id}));break}case"error":{let t=s3e(e.code,e.message);this.registerPromise&&e.code==="register_failed"&&(this.registerPromise.reject(new aZ(e.message)),this.registerPromise=null),this.emit("error",t);break}}}async handleInboundCall(e){let t={correlationId:e.correlation_id,fromName:e.from_name,fromPeerId:e.from_peer_id,method:e.method,payload:e.payload,verified:e.verified},r=this.rpcHandlers.get(e.method)??this.defaultRpcHandler,n;if(!r)n={success:!1,error:`No handler for method: ${e.method}`};else try{n=await r(t)}catch(i){n={success:!1,error:i instanceof Error?i.message:String(i)}}try{this.transport.send({type:"call_response",correlation_id:e.correlation_id,success:n.success,payload:n.payload??"",error:n.error??""})}catch{}}handleStatusChange(e){switch(e){case"disconnected":this._peerId=null,this.emit("disconnected");break;case"reconnecting":this.emit("reconnecting",this.transport.reconnectAttempt??0);break;case"connected":if(this.hasConnectedOnce){let t={type:"register",name:this.options.name};this.options.relay&&(t.relay=this.options.relay),this._keypair&&(t.public_key=Xmt(this._keypair.publicKey));try{this.transport.send(t)}catch{}}break}}resubscribeTopics(){for(let e of this.topicHandlers.keys())try{this.transport.send({type:"subscribe",topic:e})}catch{}}};});var M3e={};Mi(M3e,{SUBWAY_PROTOCOL:()=>V0t,registerDirect:()=>bEr,resolveDirect:()=>_Er});function N3e(e,t){let r=typeof t=="bigint"?t:BigInt(t);for(;r>0x7fn;)e.push(Number(r&0x7fn|0x80n)),r>>=7n;e.push(Number(r))}function ol(e,t){let r=0n,n=0n,i=t;for(;;){let o=e[i++];if(r|=BigInt(o&127)<<n,(o&128)===0)break;n+=7n}return[r,i]}function j3e(e,t){return e<<3|t}function pB(e,t,r){e.push(j3e(t,2)),N3e(e,r.length);for(let n of r)e.push(n)}function sEr(e,t){let r=[];return pB(r,1,B3e.encode(e)),t&&t.length>0&&pB(r,2,B3e.encode(t)),Uint8Array.from(r)}function aEr(e,t,r){let n=[];return r!==0n&&(n.push(j3e(1,0)),N3e(n,r)),pB(n,2,sEr(e,t)),Uint8Array.from(n)}function cEr(e){let t=[];return pB(t,1,B3e.encode(e)),Uint8Array.from(t)}function uEr(e,t){let r=[];return t!==0n&&(r.push(j3e(1,0)),N3e(r,t)),pB(r,3,cEr(e)),Uint8Array.from(r)}function dEr(e){let t=0,r={success:!1,error:""};for(;t<e.length;){let[n,i]=ol(e,t);t=i;let o=Number(n)>>3,s=Number(n)&7;if(o===1&&s===0){let[a,c]=ol(e,t);t=c,r.success=a!==0n}else if(o===2&&s===2){let[a,c]=ol(e,t),u=c,d=u+Number(a);r.error=F0t.decode(e.subarray(u,d)),t=d}else t=U3e(e,t,s)}return r}function lEr(e){let t=0,r={peerId:new Uint8Array(0),error:""};for(;t<e.length;){let[n,i]=ol(e,t);t=i;let o=Number(n)>>3,s=Number(n)&7;if(o===1&&s===2){let[a,c]=ol(e,t),u=c,d=u+Number(a);r.peerId=e.subarray(u,d),t=d}else if(o===2&&s===2){let[a,c]=ol(e,t),u=c,d=u+Number(a);r.error=F0t.decode(e.subarray(u,d)),t=d}else t=U3e(e,t,s)}return r}function U3e(e,t,r){if(r===0)return ol(e,t)[1];if(r===2){let[n,i]=ol(e,t);return i+Number(n)}if(r===5)return t+4;if(r===1)return t+8;throw new Error(`unsupported wire type ${r}`)}function $0t(e){let t=0,r={requestId:0n};for(;t<e.length;){let[n,i]=ol(e,t);t=i;let o=Number(n)>>3,s=Number(n)&7;if(o===1&&s===0){let[a,c]=ol(e,t);t=c,r.requestId=a}else if(o===13&&s===2){let[a,c]=ol(e,t),u=c,d=u+Number(a);r.registerNameResponse=dEr(e.subarray(u,d)),t=d}else if(o===14&&s===2){let[a,c]=ol(e,t),u=c,d=u+Number(a);r.resolveNameResponse=lEr(e.subarray(u,d)),t=d}else t=U3e(e,t,s)}return r}function pEr(e){let t=new Uint8Array(4+e.length);return new DataView(t.buffer).setUint32(0,e.length,!1),t.set(e,4),t}function q3e(e){return new DataView(e.buffer,e.byteOffset,4).getUint32(0,!1)}function fEr(e){if(e.length<4)return{success:!1,error:"short reply (no length prefix)"};let t=q3e(e.subarray(0,4));return e.length<4+t?{success:!1,error:`truncated frame (have ${e.length-4}, need ${t})`}:$0t(e.subarray(4,4+t)).registerNameResponse??{success:!1,error:"reply carried no register_name_response"}}function mEr(e){if(e.length<4)return{peerId:new Uint8Array(0),error:"short reply (no length prefix)"};let t=q3e(e.subarray(0,4));return e.length<4+t?{peerId:new Uint8Array(0),error:`truncated frame (have ${e.length-4}, need ${t})`}:$0t(e.subarray(4,4+t)).resolveNameResponse??{peerId:new Uint8Array(0),error:"reply carried no resolve_name_response"}}function R3e(e){let t=e.reduce((i,o)=>i+o.length,0),r=new Uint8Array(t),n=0;for(let i of e)r.set(i,n),n+=i.length;return r}async function gEr(e){let t=[],r=0,n=-1;for await(let i of e){let o=i instanceof Uint8Array?i:i.subarray();if(t.push(o),r+=o.length,r>j0t)throw new Error("subway: reply exceeded max size");if(n<0&&r>=4&&(n=4+q3e(R3e(t).subarray(0,4)),n>j0t))throw new Error("subway: declared frame exceeds max size");if(n>=0&&r>=n)return R3e(t).subarray(0,n)}return R3e(t)}async function K0t(e){return(0,U0t.createLibp2p)({...e?{privateKey:await(0,L0t.generateKeyPairFromSeed)("Ed25519",e)}:{},transports:[(0,q0t.tcp)()],connectionEncrypters:[(0,M0t.noise)()],streamMuxers:[(0,D0t.yamux)()],connectionGater:{denyDialMultiaddr:async()=>!1}})}async function W0t(e,t,r){let n=await e.dialProtocol((0,z0t.multiaddr)(t),V0t,{signal:AbortSignal.timeout(hEr)});n.send(pEr(r));let i;return Promise.race([gEr(n),new Promise((o,s)=>{i=setTimeout(()=>s(new Error("subway: request timed out")),yEr)})]).finally(()=>clearTimeout(i))}async function bEr(e){let t=await K0t(e.seed);try{let r=await W0t(t,e.relayMultiaddr,aEr(e.name,e.binding,e.requestId??1n)),n=fEr(r);return{success:n.success,error:n.error,peerId:t.peerId.toString()}}finally{await t.stop()}}async function _Er(e){let t=await K0t(e.seed);try{let r=await W0t(t,e.relayMultiaddr,uEr(e.name,e.requestId??1n)),n=mEr(r);return n.peerId.length===0?{found:!1,peerId:"",error:n.error||"name not found"}:{found:!0,peerId:(0,H0t.toString)(n.peerId,"base58btc"),error:""}}finally{await t.stop()}}var U0t,q0t,M0t,D0t,L0t,z0t,H0t,B3e,F0t,V0t,hEr,yEr,j0t,D3e=P(()=>{"use strict";c3e();U0t=require("libp2p"),q0t=require("@libp2p/tcp"),M0t=require("@chainsafe/libp2p-noise"),D0t=require("@chainsafe/libp2p-yamux"),L0t=require("@libp2p/crypto/keys"),z0t=require("@multiformats/multiaddr"),H0t=require("uint8arrays/to-string"),B3e=new TextEncoder,F0t=new TextDecoder;V0t="/subway/p2p/1.0.0",hEr=15e3,yEr=15e3,j0t=1<<20});var yB={};Mi(yB,{DEFAULT_VISA_RELAY_MULTIADDR:()=>J0t,MESH:()=>to,RELAY_URL:()=>mB,connectOrThrow:()=>eS,ensureMailbox:()=>X3e,isSubwayEnabled:()=>V3e,listRegistered:()=>Z3e,loadBindingFor:()=>G3e,loadRegistry:()=>m4,makeClient:()=>QA,maybeMintVisaBinding:()=>Z0t,meshName:()=>Cp,pairedVisaBinding:()=>X0t,readInbox:()=>xEr,registerName:()=>hB,resolveActingName:()=>PZ,resolveMeshName:()=>J3e,seedSubwayKeyFromTapAgent:()=>Y0t,sendMessage:()=>Y3e,sendVia:()=>EEr,subwayKeyPath:()=>TZ,visaRelayMultiaddr:()=>$3e});function $3e(e=process.env){return e.SUBWAY_RELAY_MULTIADDR??J0t}function Cp(e){return e.includes(".")?e:`${e}.${to}`}function V3e(e){if(process.env.VISA_DEV==="1")return!0;let t=e??"0.0.0";return t==="0.0.0"||t.startsWith("0.0.")?!0:/-rc\.|-beta\./.test(t)}function W3e(){_o.mkdirSync(K3e,{recursive:!0,mode:448})}function vEr(e){return e.replace(/[^a-zA-Z0-9_.-]/g,"_")}function TZ(e){return XA.join(K3e,`${vEr(e)}.key`)}function m4(){if(!_o.existsSync(F3e))return{};try{return JSON.parse(_o.readFileSync(F3e,"utf8"))}catch{return{}}}function z3e(e){W3e(),_o.writeFileSync(F3e,JSON.stringify(e,null,2),{mode:384})}function H3e(){try{return fB.userInfo().username}catch{return"local"}}function Y0t(e){if(_o.existsSync(e)||!_o.existsSync(L3e))return null;let t=_o.readdirSync(L3e).filter(n=>n.endsWith(".json"));if(t.length===0)return null;let r=t.map(n=>XA.join(L3e,n)).sort((n,i)=>_o.statSync(i).mtimeMs-_o.statSync(n).mtimeMs)[0];try{let n=JSON.parse(_o.readFileSync(r,"utf8"));if(!n.private_key_jwk)return null;let i=jS(n.private_key_jwk);return W3e(),_o.writeFileSync(e,Buffer.from(i),{mode:384}),n.agent_id??null}catch{return null}}function QA(e,t={}){return new N0t({name:Cp(e),url:mB,keyPath:TZ(e),autoReconnect:t.autoReconnect??!1,binding:t.binding})}function G3e(e){if(to!=="visa")return;let t=m4()[e];if(t?.binding&&!(t.bindingExpiresAt&&Date.parse(t.bindingExpiresAt)<=Date.now()))return t.binding}async function eS(e,t=15e3){await Promise.race([e.connect(),new Promise((r,n)=>setTimeout(()=>n(new Error(`Subway relay connect timed out after ${t}ms (${mB})`)),t))])}function PZ(e){if(e)return e;let t=Object.keys(m4());if(t.length===1)return t[0];throw t.length===0?new Error("No Subway names registered yet. Run `visa register <name>` first."):new Error(`Multiple names registered (${t.join(", ")}). Pass --as <name>.`)}async function Z0t(e){if(to!=="visa")return null;let t=process.env.VISA_CLI_API_KEY?.trim();if(!t)throw new Xm("No enrolled V4 agent or Visa Key is available for the trusted .visa mesh.","no_key");try{return await cQ({authUrl:ga(),apiKey:t,seed:zN(TZ(e)),name:Cp(e)})}catch(r){if(r instanceof Xm)throw r;return console.warn(`[subway] Visa binding not minted: ${r instanceof Error?r.message:String(r)}`),null}}function X0t(e=Date.now()){let t=Q3e();if(!t?.binding_jwt)return null;let r=gB(t.binding_jwt);if(!r||r.mesh!=="visa")return null;let n=typeof r.exp=="number"?r.exp:NaN;return!Number.isFinite(n)||n*1e3<=e?null:{binding:t.binding_jwt,bindingExpiresAt:new Date(n*1e3).toISOString()}}async function hB(e){let t=TZ(e),r=Y0t(t),n=Cp(e);to==="visa"&&!_o.existsSync(t)&&(W3e(),_o.writeFileSync(t,(0,G0t.randomBytes)(32),{mode:384}));let i=to==="visa"?X0t():null,o,s={};if(i)o=i.binding,s={binding:i.binding,bindingExpiresAt:i.bindingExpiresAt};else{let u=await Z0t(e);u&&(o=u.binding,s={binding:u.binding,bindingExpiresAt:new Date(Date.now()+u.expires_in*1e3).toISOString()})}let a=to==="visa"?$3e():process.env.SUBWAY_RELAY_MULTIADDR;if(to==="visa"&&a){let{registerDirect:u}=await Promise.resolve().then(()=>(D3e(),M3e)),d=await u({relayMultiaddr:a,seed:zN(t),name:n,binding:o});if(!d.success)throw new Error(`.visa relay admission failed: ${d.error||"unknown"}`);let l=m4();return l[e]={relayName:n,mesh:to,peerId:d.peerId,owner:H3e(),tapAgentId:r,registeredAt:new Date().toISOString(),...s},z3e(l),{relayName:n,mesh:to,peerId:d.peerId,tapAgentId:r,...o?{binding:o}:{}}}if(to==="visa"&&!process.env.SUBWAY_RELAY){let u=m4();return u[e]={relayName:n,mesh:to,peerId:null,owner:H3e(),tapAgentId:r,registeredAt:new Date().toISOString(),...s},z3e(u),{relayName:n,mesh:to,peerId:null,tapAgentId:r,...o?{binding:o}:{},note:o?"Visa binding ready; relay admission pending a .visa relay (set SUBWAY_RELAY).":"No Visa binding; pair/enroll this agent, or set VISA_CLI_API_KEY (card on file), for a .visa binding."}}let c=QA(e,{autoReconnect:!1,binding:o});try{await eS(c);let u=m4();return u[e]={relayName:n,mesh:to,peerId:c.peerId,owner:H3e(),tapAgentId:r,registeredAt:new Date().toISOString(),...s},z3e(u),{relayName:n,mesh:to,peerId:c.peerId,tapAgentId:r,...o?{binding:o}:{}}}finally{c.disconnect()}}async function J3e(e){let t=Cp(e),r=to==="visa"?$3e():process.env.SUBWAY_RELAY_MULTIADDR;if(to==="visa"&&r){let{resolveDirect:n}=await Promise.resolve().then(()=>(D3e(),M3e)),i=await n({relayMultiaddr:r,name:t});return{relayName:t,found:i.found,peerId:i.peerId,error:i.error}}throw new Error("subway find needs the .visa mesh with a dedicated relay \u2014 set SUBWAY_MESH=visa and SUBWAY_RELAY_MULTIADDR.")}async function Y3e(e,t,r){let n=QA(e,{autoReconnect:!1,binding:G3e(e)});try{await eS(n);let i=Cp(t);return await n.sendSigned(i,"chat",r),{to:i,as:Cp(e)}}finally{n.disconnect()}}function Z3e(){let e=m4();return Object.entries(e).map(([t,r])=>({name:t,...r}))}async function X3e(e){let t=SZ.get(e);if(t)return{relayName:Cp(e),peerId:t.client.peerId};let r=QA(e,{autoReconnect:!0,binding:G3e(e)}),n=[];return r.onMessage(i=>{n.push({from:i.fromName,text:i.payload,ts:i.timestampMs,verified:!!i.verified}),n.length>wEr&&n.shift()}),SZ.set(e,{client:r,buffer:n}),await eS(r),{relayName:Cp(e),peerId:r.peerId}}async function xEr(e,t=20,r=!1){await X3e(e);let n=SZ.get(e);if(!n)return[];let i=n.buffer.slice(-t);return r&&(n.buffer.length=0),i}async function EEr(e,t,r){await X3e(e);let n=SZ.get(e);if(!n)throw new Error(`mailbox for ${e} unavailable`);let i=Cp(t);return await n.client.sendSigned(i,"chat",r),{to:i,as:Cp(e)}}var _o,fB,XA,G0t,to,J0t,mB,K3e,F3e,L3e,SZ,wEr,h4=P(()=>{"use strict";k3e();G2();_o=ve(require("fs")),fB=ve(require("os")),XA=ve(require("path")),G0t=require("crypto");H2();rw();bB();to=process.env.SUBWAY_MESH??"relay",J0t="/dns4/subway-relay-visa.fly.dev/tcp/9100/p2p/12D3KooWM2q6SXgKFxj5wvnJ7gTD4XPjhvc5tHVVjDBrZRnJ3CKU";mB=process.env.SUBWAY_RELAY??"wss://relay.subway.dev/ws";K3e=XA.join(fB.homedir(),".visa-cli","subway"),F3e=XA.join(K3e,"registry.json"),L3e=XA.join(fB.homedir(),".visa-cli","agents");SZ=new Map,wEr=200});async function AEr(e){if(process.env.SUBWAY_MESH==="visa")try{await hB(e)}catch(t){Re.warn("subway:pairing-auto-register-failed",{name:e,mesh:"visa",error:t instanceof Error?t.message:String(t)})}}function SEr(e=process.env.VISA_V4_HOME||tS.join(e9e.homedir(),".visa-v4")){try{let t=Yc.readFileSync(tS.join(e,"identity","mailbox.json"),"utf8"),r=JSON.parse(t);return typeof r.email!="string"||!r.email.includes("@")||typeof r.inboxId!="string"||r.inboxId.length===0?null:{email:r.email,inboxId:r.inboxId}}catch{return null}}function t9e(e,t,r=_B){return tS.join(r,`${e}.${t}.json`)}function e1t(e,t=_B){Yc.mkdirSync(t,{recursive:!0,mode:448}),Yc.writeFileSync(t9e(e.pairingId,e.role,t),JSON.stringify(e,null,2),{mode:384})}function vB(e,t,r=_B){Yc.rmSync(t9e(e,t,r),{force:!0})}function IZ(e,t,r=_B){try{let n=JSON.parse(Yc.readFileSync(t9e(e,t,r),"utf8"));return n?.pairingId===e&&n.role===t?n:null}catch{return null}}function r9e(e=_B){return Yc.existsSync(e)?Yc.readdirSync(e).filter(r=>r.endsWith(".human.json")).map(r=>{try{return JSON.parse(Yc.readFileSync(tS.join(e,r),"utf8"))}catch{return null}}).filter(r=>r?.role==="human").sort((r,n)=>n.createdAt.localeCompare(r.createdAt))[0]??null:null}async function y4(e,t,r){let n=await r(e,{...t,headers:{"X-Source":"cli","X-Visa-CLI-Version":Q0t,...t.headers??{}}}),i=await n.json().catch(()=>({}));if(!n.ok&&n.status!==202)throw new Error(i.error??i.detail??`pairing server returned ${n.status}`);return{status:n.status,body:i}}async function n9e(e={}){let t=(e.authUrl??ga()).replace(/\/+$/,""),r=jAe(),n=SEr(),{body:i}=await y4(`${t}/v4/agent-pairings`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cliChallenge:UAe(r),...n?{mailbox:n}:{}})},e.fetchImpl??fetch);if(!i.pairingId||!i.skillUrl||!i.expiresAt)throw new Error("pairing server returned an incomplete initiation response");let o={role:"human",pairingId:i.pairingId,verifier:r,authUrl:t,skillUrl:i.skillUrl,expiresAt:i.expiresAt,createdAt:new Date().toISOString()};return e1t(o,e.pairingDir),o}async function OZ(e){let{pairing:t}=e,{body:r}=await y4(`${t.authUrl}/v4/agent-pairings/${encodeURIComponent(t.pairingId)}/verify`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({verifier:t.verifier,code:e.code})},e.fetchImpl??fetch);return r}async function i9e(e){let t=(e.authUrl??ga()).replace(/\/+$/,""),{body:r}=await y4(`${t}/v4/agent-pairings/${encodeURIComponent(e.pairingId)}`,{method:"GET",cache:"no-store"},e.fetchImpl??fetch);return r}function t1t(e,t){return Buffer.from(Q4(e,Buffer.from(t,"utf8"))).toString("base64url")}async function o9e(e){let t=(e.authUrl??ga()).replace(/\/+$/,""),r=e.fetchImpl??fetch,n=await i9e({pairingId:e.pairingId,authUrl:t,fetchImpl:r});if(n.state!=="awaiting_agent"||!n.serverNonce)throw new Error(`pairing cannot be claimed from state ${n.state}`);let i,o,s;if(e.existingCredential)s=e.existingCredential.privateKeyJwk,o=e.existingCredential.publicKeyJwk,i=Buffer.from(s.d,"base64url");else{let m=MN();i=m.secretKey,s=ew(i),o=kh(m.publicKey)}let a=tw(o),c=XY(),u=qAe(),d={runtime:e.runtime,contextLabel:e.contextLabel,platform:`${process.platform}/${process.arch}`,cliVersion:Q0t},l=t1t(i,MAe({pairingId:e.pairingId,serverNonce:n.serverNonce,claimTokenHash:sQ(u),agentJkt:a,walletPublicKey:c.publicKey,runtime:d})),p={role:"runtime",pairingId:e.pairingId,authUrl:t,claimToken:u,agentJkt:a,publicKeyJwk:o,privateKeyJwk:s,walletPublicKey:c.publicKey,walletPrivateKey:c.privateKey,createdAt:new Date().toISOString()};e1t(p,e.pairingDir);let{body:f}=await y4(`${t}/v4/agent-pairings/${encodeURIComponent(e.pairingId)}/claim`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({agentPublicJwk:o,walletPublicKey:c.publicKey,runtime:d,signature:l,claimToken:u})},r);if(!f.verificationCode||f.claimToken!==u)throw new Error("pairing server returned an incomplete claim response");if(f.verificationCode!==DN(e.pairingId,u))throw new Error("pairing server returned a mismatched verification code");return{pending:p,verificationCode:f.verificationCode}}async function CZ(e){let t=e.fetchImpl??fetch,r=e.wait??(o=>new Promise(s=>setTimeout(s,o))),n=e.maxPolls??450,i="";for(let o=0;o<n;o+=1){let{body:s,status:a}=await y4(`${e.pending.authUrl}/v4/agent-pairings/${encodeURIComponent(e.pending.pairingId)}/delivery`,{method:"GET",headers:{"X-Agent-Pairing-Token":e.pending.claimToken},cache:"no-store"},t);if(s.state!==i&&(i=s.state,e.onState?.(s.state)),a===202){if(["expired","cancelled","failed","revoked"].includes(s.state))throw new Error(`pairing ended in state ${s.state}`);await r(e.pollIntervalMs??2e3);continue}if(!s.artifacts||!s.artifactHash)throw new Error("pairing delivery omitted identity artifacts");let c=s.artifacts,u=c.terms?.name,d=c.wallet?.turnkey,l=c.terms?.mode==="wallet"||c.terms?.mode==="both",p=ZY(d?.network);if(c.agentJkt!==e.pending.agentJkt||typeof c.bindingJwt!="string"||typeof c.registrationJwt!="string"||typeof c.termsHash!="string"||typeof u!="string"||c.wallet?.credentialPublicKey!==e.pending.walletPublicKey||l&&(!d||typeof d.organizationId!="string"||typeof d.walletId!="string"||typeof d.address!="string"||!/^0x[0-9a-f]{40}$/i.test(d.address)||!p||!Number.isSafeInteger(c.terms?.dailyLimitCents)||!Number.isSafeInteger(c.terms?.perTransactionLimitCents))||LAe(s.artifacts)!==s.artifactHash)throw new Error("pairing artifact integrity check failed");let f=t1t(Buffer.from(e.pending.privateKeyJwk.d,"base64url"),DAe({pairingId:e.pending.pairingId,agentJkt:e.pending.agentJkt,termsHash:c.termsHash,artifactHash:s.artifactHash}));if((await y4(`${e.pending.authUrl}/v4/agent-pairings/${encodeURIComponent(e.pending.pairingId)}/activate`,{method:"POST",headers:{"Content-Type":"application/json","X-Agent-Pairing-Token":e.pending.claimToken},body:JSON.stringify({signature:f})},t)).body.state!=="activated")throw new Error("pairing activation was not acknowledged");let h={agent_jkt:e.pending.agentJkt,name:u,public_key_jwk:e.pending.publicKeyJwk,private_key_jwk:e.pending.privateKeyJwk,binding_jwt:c.bindingJwt,registration_jwt:c.registrationJwt,wallet_public_key:e.pending.walletPublicKey,pairing_id:e.pending.pairingId,pairing_status:"activated",artifacts:s.artifacts,auth_url:e.pending.authUrl,created_at:new Date().toISOString()};return l&&d&&await YY({apiPublicKey:e.pending.walletPublicKey,apiPrivateKey:e.pending.walletPrivateKey,organizationId:d.organizationId,walletId:d.walletId,address:d.address,network:p,perTransactionLimitCents:c.terms?.perTransactionLimitCents,dailyLimitCents:c.terms?.dailyLimitCents,...e.walletHome?{homeDir:e.walletHome}:{}}),s9e(h,e.agentDir),await AEr(u),vB(e.pending.pairingId,"runtime",e.pairingDir),{record:h,name:u,agentJkt:e.pending.agentJkt}}throw new Error("timed out waiting for human authorization")}async function r1t(e){let{pairing:t}=e,{body:r}=await y4(`${t.authUrl}/v4/agent-pairings/${encodeURIComponent(t.pairingId)}`,{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({verifier:t.verifier})},e.fetchImpl??fetch);return r.state==="cancelled"&&vB(t.pairingId,"human",e.pairingDir),r}var Yc,e9e,tS,Q0t,_B,n1t=P(()=>{"use strict";Yc=ve(require("node:fs")),e9e=ve(require("node:os")),tS=ve(require("node:path"));G2();rw();h4();H2();eu();QY();bB();Q0t="4.1.0-rc.29",_B=tS.join(e9e.homedir(),".visa-cli","pairings")});var d1t={};Mi(d1t,{agentFilePath:()=>xB,agentFormatIsJson:()=>wB,attachAgentCommand:()=>l9e,claimOptsFromFlags:()=>u9e,decodeBindingClaims:()=>gB,enrollClaimEnvelope:()=>c1t,isAgentCommandEnabled:()=>a1t,isAgentRecord:()=>EB,listAgentFiles:()=>kZ,newestAgentRecord:()=>Q3e,readAgent:()=>d9e,resolveAgentByRef:()=>u1t,writeAgent:()=>s9e});function EB(e){if(!e||typeof e!="object"||Array.isArray(e))return!1;let t=e;return typeof t.agent_jkt=="string"&&typeof t.name=="string"&&t.public_key_jwk?.kty==="OKP"&&t.public_key_jwk.crv==="Ed25519"&&typeof t.public_key_jwk.x=="string"&&t.private_key_jwk?.kty==="OKP"&&t.private_key_jwk.crv==="Ed25519"&&typeof t.private_key_jwk.x=="string"&&typeof t.private_key_jwk.d=="string"&&typeof t.binding_jwt=="string"&&typeof t.registration_jwt=="string"&&typeof t.wallet_public_key=="string"&&typeof t.pairing_id=="string"&&(t.pairing_status==="activated"||t.pairing_status==="revoked")&&t.artifacts!==null&&typeof t.artifacts=="object"&&!Array.isArray(t.artifacts)&&typeof t.auth_url=="string"&&typeof t.created_at=="string"}function a1t(){return!0}function wB(e){return e==="json"}function c1t(e){switch(e.status){case"claimed":return{json:{status:"claimed",...e.name?{name:e.name}:{},tokenId:e.tokenId,credentialPath:e.credentialPath,keyBound:e.keyBound,sessionSaved:e.sessionSaved,walletProvisioned:e.walletProvisioned},exitCode:0};case"not_ready":return{json:{status:"not_ready",likelyExpired:e.likelyExpired,error:e.likelyExpired?"the 15-minute enrollment window has likely expired":"not ready yet \u2014 finish the browser flow through the final minted screen"},exitCode:3};case"no_pending":return{json:{status:"no_pending",error:"no enrollment hand-off in progress"},exitCode:1};case"confirm_mismatch":return{json:{status:"confirm_mismatch",confirmCode:e.confirmCode,error:"this enrollment hand-off did not match this terminal"},exitCode:1};case"error":return{json:{status:"error",error:e.message},exitCode:1}}}function u9e(e){let t=e.interval&&e.interval>0?e.interval:3,r=e.attempts&&e.attempts>0?e.attempts:5;return e.timeout&&e.timeout>0&&(r=Math.max(1,Math.ceil(e.timeout/t))),{attempts:r,delayMs:t*1e3}}function a9e(e){return`${e.opened?`\u2713 Enrollment link opened in your browser.
|
|
20690
20690
|
If it did not open, paste this into your phone or browser:
|
|
20691
20691
|
`:`Enrollment link (open on your phone):
|
|
20692
20692
|
`}
|
|
@@ -20863,7 +20863,7 @@ ${n}
|
|
|
20863
20863
|
`),TS(PS(),n+`
|
|
20864
20864
|
`)}catch{}}function qxe(e){try{let t=sN();if(!t)return;let r=Math.max(Date.now(),t.renderedAt+1),n={...t,refreshFailedAt:r,refreshErrorReason:SS(e).slice(0,200)};TS(q2(),JSON.stringify(n)+`
|
|
20865
20865
|
`)}catch{}}function U2(){try{br.unlinkSync(Cxe())}catch{}}function sN(){let e=q2();if(!br.existsSync(e))return null;try{return JSON.parse(br.readFileSync(e,"utf-8"))}catch{return null}}function Mxe(){return sN()?.status??null}function agt(){if(process.env.JEST_WORKER_ID)return;let e=Cxe();try{if(br.mkdirSync(Lr.dirname(e),{recursive:!0}),!pgt(e))return;let t=process.argv[1]?Lr.resolve(process.argv[1]):"";if(!t){U2();return}let r=tN(),n=(process.env.VISA_CLI_HUD_THEME??"").toLowerCase().trim(),i=r==="no-color"||n==="light"||n==="dark"?{}:{VISA_CLI_HUD_THEME:r},o=(0,Ixe.spawn)(process.execPath,[t,"shell-hud","refresh"],{detached:!0,stdio:"ignore",env:{...process.env,...i,VISA_CLI_SHELL_HUD_BACKGROUND:"1"}});o.once("error",U2),o.unref()}catch{U2()}}function SS(e){return e.replace(/\u001B\][^\u0007]*(?:\u0007|\u001B\\)/g,"").replace(/\u001B\[[0-?]*[ -/]*[@-~]/g,"").replace(/\u001B[P_^][^\u001B]*(?:\u001B\\|\u0007)/g,"").replace(/[\u0000-\u0008\u000B-\u001F\u007F-\u009F]/g,"").replace(/\s+/g," ").trim()}var cgt=/^\u001B\[(?:0|38;2;\d{1,3};\d{1,3};\d{1,3}|38;5;\d{1,3})m$/;function ugt(e){let t=[],r=`__VISA_CLI_HUD_SGR_${(0,gX.randomBytes)(8).toString("hex")}_`,n=e.replace(/\u001B\[[0-?]*[ -/]*[@-~]/g,o=>{if(!cgt.test(o))return"";let s=`${r}${t.length}__`;return t.push(o),s}),i=new RegExp(`${r}(\\d+)__`,"g");return SS(n).replace(i,(o,s)=>t[Number(s)]??"")}var Za={get reset(){return Bs().reset},get visaBlue(){return Bs().visaBlue},get visaBlueSoft(){return Bs().visaBlueSoft},get visaGold(){return Bs().visaGold},get green(){return Bs().green},get muted(){return Bs().muted},get chrome(){return Bs().chrome}};function Qc(e,t){return e.length===0||process.env.NO_COLOR||rN()?e:`${t}${e}${Za.reset}`}function Pxe(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function wX(){let e=M2.homedir();if(!e||!Lr.isAbsolute(e))throw new Error("unable to determine a valid home directory");return Lr.resolve(e)}function dgt(e){return e==="powershell"?"& visa-cli config shell-hud refresh":"visa-cli config shell-hud refresh"}function lgt(e){return e==="powershell"?"Get-Command visa-cli -ErrorAction SilentlyContinue -CommandType Application":"command -v visa-cli >/dev/null 2>&1"}function pgt(e){for(let t=0;t<2;t+=1){let r;try{return r=br.openSync(e,"wx"),br.writeFileSync(r,String(Date.now())),!0}catch(n){if(n?.code!=="EEXIST")return!1;try{let i=br.statSync(e);if(Date.now()-i.mtimeMs<=Zyt)return!1;br.unlinkSync(e)}catch{}}finally{r!==void 0&&br.closeSync(r)}}return!1}function yX(e){return e instanceof Error?e.message:"unknown file system error"}function TS(e,t){br.mkdirSync(Lr.dirname(e),{recursive:!0});let r=`${e}.${process.pid}.${(0,gX.randomBytes)(8).toString("hex")}.tmp`;try{br.writeFileSync(r,t),br.renameSync(r,e)}catch(n){try{br.unlinkSync(r)}catch{}throw n}}var fgt=1440*60*1e3;function cN(e,t){xo.mkdirSync(ya.dirname(e),{recursive:!0});let r=`${e}.${process.pid}.${zxe.randomBytes(8).toString("hex")}.tmp`;try{xo.writeFileSync(r,JSON.stringify(t,null,2)+`
|
|
20866
|
-
`),xo.renameSync(r,e)}catch(n){try{xo.unlinkSync(r)}catch{}throw n}}function Dxe(e){return`'${e.replace(/'/g,"'\\''")}'`}var EX="# visa-cli-hud-v1";function uN(e,t){if(!e&&!t&&mgt())return`visa-cli config statusline ${EX}`;let r=e??process.execPath,n=t??process.argv[1]??"",i=n?ya.resolve(n):"";return`${i?`${Dxe(r)} ${Dxe(i)} config statusline`:"visa-cli config statusline"} ${EX}`}function mgt(){try{return(0,Hxe.execSync)("command -v visa-cli",{stdio:"ignore",timeout:1e3}),!0}catch{return!1}}function xh(e){return typeof e!="string"?!1:e.includes(EX)?!0:e.includes("visa-cli")&&e.includes("statusline")}function hgt(){return"4.1.0-rc.
|
|
20866
|
+
`),xo.renameSync(r,e)}catch(n){try{xo.unlinkSync(r)}catch{}throw n}}function Dxe(e){return`'${e.replace(/'/g,"'\\''")}'`}var EX="# visa-cli-hud-v1";function uN(e,t){if(!e&&!t&&mgt())return`visa-cli config statusline ${EX}`;let r=e??process.execPath,n=t??process.argv[1]??"",i=n?ya.resolve(n):"";return`${i?`${Dxe(r)} ${Dxe(i)} config statusline`:"visa-cli config statusline"} ${EX}`}function mgt(){try{return(0,Hxe.execSync)("command -v visa-cli",{stdio:"ignore",timeout:1e3}),!0}catch{return!1}}function xh(e){return typeof e!="string"?!1:e.includes(EX)?!0:e.includes("visa-cli")&&e.includes("statusline")}function hgt(){return"4.1.0-rc.29"}function dN(e){let t=ya.dirname(ya.resolve(e));return ya.basename(t)===".claude"?ya.dirname(t):Fxe.homedir()}function aN(e,t){let r=ya.relative(t,e);return!r.startsWith("..")&&!ya.isAbsolute(r)?`~/${r}`:e}function ygt(e){return ya.join(dN(e),".visa-cli","hud-self-heal.json")}function ggt(e,t,r,n){try{if(!xo.existsSync(e))return!1;let i=JSON.parse(xo.readFileSync(e,"utf-8"));return i.version===t&&typeof i.checkedAt=="number"&&r-i.checkedAt<n}catch{return!1}}function xX(e,t,r){try{cN(e,{version:t,checkedAt:r})}catch{}}function bgt(e,t){return e&&typeof e=="object"&&!Array.isArray(e)?{...e,type:"command",command:t}:{type:"command",command:t}}function AX(e,t={}){let r=t.now??Date.now(),n=t.version??hgt(),i=t.stampPath??ygt(e),o=t.minIntervalMs??fgt,s=[],a=!1,c=!1;if(!t.force&&ggt(i,n,r,o))return{checked:!1,statusLineRepaired:!1,shellHudRemoved:!1,messages:s,skippedReason:"recently checked"};try{if(!xo.existsSync(e))return xX(i,n,r),{checked:!0,statusLineRepaired:a,shellHudRemoved:c,messages:s};let u=JSON.parse(xo.readFileSync(e,"utf-8")),d=u.statusLine,l=d&&typeof d=="object"&&!Array.isArray(d)?d.command:"";if(!xh(l))return xX(i,n,r),{checked:!0,statusLineRepaired:a,shellHudRemoved:c,messages:s};let p=(t.getCommand??uN)();if(l!==p&&(u.statusLine=bgt(d,p),cN(e,u),a=!0,s.push("Repaired Claude Code statusLine command to use the current Visa CLI.")),!lN()){let f=dN(e);if(D2(f).length>0){let h=Km(null,f);if(h.removed&&h.rcPaths&&h.rcPaths.length>0){let y=h.rcPaths.map(w=>aN(w,f)).join(", ");c=!0,s.push(`Cleaned legacy shell-prompt HUD block from ${y}.`)}}}return xX(i,n,r),{checked:!0,statusLineRepaired:a,shellHudRemoved:c,messages:s}}catch(u){if(t.force){let d=u instanceof Error?u.message:"unknown error";try{process.stderr.write(`visa-cli: HUD self-heal skipped \u2014 ${d}. Run: visa-cli config hud doctor
|
|
20867
20867
|
`)}catch{}}return{checked:!0,statusLineRepaired:a,shellHudRemoved:c,messages:s}}}function _gt(e,t){let r=dN(t),n=D2(r);if(n.length===0)return e;let i=n.map(o=>aN(o,r)).join(", ");return`${e}
|
|
20868
20868
|
Note: a shell-prompt HUD block was detected in ${i}. If it is unintended, remove it with: visa-cli config hud disable shell`}function lN(e=process.env.VISA_HUD_KEEP_SHELL){if(e===void 0)return!1;let t=e.trim().toLowerCase();return t==="1"||t==="true"||t==="yes"||t==="on"}function Lxe(e,t){let r=dN(t),n=D2(r);if(n.length===0)return e;let i=n.map(s=>aN(s,r)).join(", ");if(lN())return`${e}
|
|
20869
20869
|
Note: a legacy shell-prompt HUD block was detected in ${i}. VISA_HUD_KEEP_SHELL set \u2014 leaving it in place. Remove it any time with: visa-cli config hud disable shell`;let o=Km(null,r);if(o.removed&&o.rcPaths&&o.rcPaths.length>0){let s=o.rcPaths.map(a=>aN(a,r)).join(", ");return`${e}
|
|
@@ -20882,10 +20882,10 @@ ${a}`}function Pgt(e){if(typeof e!="number"||e<=0)return"";let r=(e>1e12?e:e*1e3
|
|
|
20882
20882
|
`)}var _Ee="WARNING: This Visa Key is a bearer secret for headless API use. Touch ID will not be prompted when the key is used; anyone with the key can authorize API charges within the caps above until it expires or is revoked. Store it like a password and revoke it immediately if exposed.";function qgt(e){let t=Math.max(5,...e.map(([o])=>o.length)),r=Math.max(5,...e.map(([,o])=>o.length)),n=`+-${"-".repeat(t)}-+-${"-".repeat(r)}-+`,i=(o,s)=>`| ${o.padEnd(t)} | ${s.padEnd(r)} |`;return[n,i("Field","Value"),n,...e.map(([o,s])=>i(o,s)),n]}function vEe(e,t={}){let r=[...Ugt().split(`
|
|
20883
20883
|
`),"","Visa Key active","Scoped agent spend credential ready for apps and agents","",...qgt([["Key",e.key],["Label",e.label],["Owner",e.owner],["Daily cap",`${PX(e.daily_cap_cents)}/day`],["Total cap",gEe(e.total_cap_cents)],["Allowed tools",bEe(e.allowed_tools)]]),"","Guardrails",`- Spend: ${PX(e.daily_cap_cents)}/day, ${gEe(e.total_cap_cents)} total`,`- Tools: ${bEe(e.allowed_tools)}`,"- Auth: X-Api-Key header for supported v4 services","Save this key now - it won't be shown again."];return e.biometric_warning?r.push("",_Ee,`Server warning: ${e.biometric_warning}`):e.biometric_enabled&&r.push("",_Ee),`${r.join(`
|
|
20884
20884
|
`)}
|
|
20885
|
-
`}function wEe(e){return e.json===!0||e.isTTY!==!0}function IX(e){if(!e)return;let t=Number(e);if(!Number.isFinite(t)||t<=0)throw new Error("--daily-cap must be a positive USD amount.");let r=Math.round(t*100);if(r<100||r>1e4)throw new Error("--daily-cap must be between 1 and 100 USD.");return r}function OX(e){if(e===!1)return null;if(!e)return;let t=Number(e);if(!Number.isFinite(t)||t<=0)throw new Error("--total-cap must be a positive USD amount.");let r=Math.round(t*100);if(r<100||r>1e6)throw new Error("--total-cap must be between 1 and 10000 USD.");return r}function xEe(e,t){let r=IX(e);if(r!==void 0)return r;if(wEe(t))return 500}function EEe(e,t){let r=OX(e);if(r!==void 0)return r;if(wEe(t)||t.recommendedCapsAccepted===!0)return 2500}async function AEe(e,t){let r=t?.timeoutMs??3e4,n=new AbortController,i=setTimeout(()=>n.abort(),r);try{let{timeoutMs:o,...s}=t??{};return await fetch(e,{...s,signal:n.signal})}finally{clearTimeout(i)}}var hN=class extends Error{code="ATTESTATION_KEY_DRIFT";hint;constructor(t,r){super(t),this.name="AttestationDriftError",this.hint=r}};var SEe={ENOTFOUND:"Cannot resolve the Visa CLI server hostname (DNS error). Check your internet connection or the auth.serverUrl setting.",EAI_AGAIN:"DNS lookup for the Visa CLI server failed temporarily. Check your internet connection and try again.",ECONNREFUSED:"The Visa CLI server refused the connection. The service may be down \u2014 check https://visacli.sh for status.",ECONNRESET:"The connection to the Visa CLI server was reset mid-request. Try again in a moment.",EHOSTUNREACH:"The Visa CLI server is unreachable from this network. Check your internet connection.",ETIMEDOUT:"The connection to the Visa CLI server timed out. Try again or check https://visacli.sh for status.",CERT_HAS_EXPIRED:"The Visa CLI server's TLS certificate is expired. Check https://visacli.sh for status; do not bypass the cert.",UND_ERR_CONNECT_TIMEOUT:"The connection to the Visa CLI server timed out before it could be established. Try again in a moment.",UND_ERR_SOCKET:"The connection to the Visa CLI server was interrupted. Try again in a moment."};function TEe(e){let t=e&&typeof e=="object"?e:{};if(t.name==="AbortError"||typeof t.message=="string"&&t.message.includes("aborted"))return"The request timed out. The server may be under heavy load. Please try again.";let r=(t.cause&&typeof t.cause=="object"?t.cause.code:void 0)??(typeof t.code=="string"?t.code:void 0);return r&&SEe[r]?SEe[r]:`Network error contacting the Visa CLI server (${r?`${r}: ${typeof t.message=="string"?t.message:"unknown"}`:typeof t.message=="string"&&t.message.length>0?t.message:"unknown error"}). Check https://visacli.sh for status.`}var Mgt=/^(\d+)\.(\d+)\.(\d+)(?:-([0-9A-Za-z.-]+))?(?:\+[0-9A-Za-z.-]+)?$/;function IEe(e,t){let r=PEe(e),n=PEe(t);if(!r||!n)return!1;for(let i=0;i<3;i++)if(r.main[i]!==n.main[i])return r.main[i]>n.main[i];return r.pre&&!n.pre?!1:!r.pre&&n.pre?!0:!r.pre&&!n.pre?!1:Dgt(r.pre,n.pre)>0}function PEe(e){if(typeof e!="string")return null;let r=e.trim().replace(/^v/,"").match(Mgt);return r?{main:[Number(r[1]),Number(r[2]),Number(r[3])],pre:r[4]??null}:null}function Dgt(e,t){let r=e.split("."),n=t.split("."),i=Math.max(r.length,n.length);for(let o=0;o<i;o++){if(o>=r.length)return-1;if(o>=n.length)return 1;let s=r[o],a=n[o],c=/^\d+$/.test(s),u=/^\d+$/.test(a);if(c&&u){let d=Number(s)-Number(a);if(d!==0)return d}else{if(c)return-1;if(u)return 1;if(s<a)return-1;if(s>a)return 1}}return 0}function Eh(){return!!(OEe(process.env.VISA_CLI_NO_UPDATE_CHECK)||OEe(process.env.CI)||process.env.NODE_ENV==="test")}function OEe(e){if(e===void 0)return!1;let t=e.trim().toLowerCase();return!(t===""||t==="0"||t==="false"||t==="no"||t==="off")}H2();var xN="4.1.0-rc.
|
|
20885
|
+
`}function wEe(e){return e.json===!0||e.isTTY!==!0}function IX(e){if(!e)return;let t=Number(e);if(!Number.isFinite(t)||t<=0)throw new Error("--daily-cap must be a positive USD amount.");let r=Math.round(t*100);if(r<100||r>1e4)throw new Error("--daily-cap must be between 1 and 100 USD.");return r}function OX(e){if(e===!1)return null;if(!e)return;let t=Number(e);if(!Number.isFinite(t)||t<=0)throw new Error("--total-cap must be a positive USD amount.");let r=Math.round(t*100);if(r<100||r>1e6)throw new Error("--total-cap must be between 1 and 10000 USD.");return r}function xEe(e,t){let r=IX(e);if(r!==void 0)return r;if(wEe(t))return 500}function EEe(e,t){let r=OX(e);if(r!==void 0)return r;if(wEe(t)||t.recommendedCapsAccepted===!0)return 2500}async function AEe(e,t){let r=t?.timeoutMs??3e4,n=new AbortController,i=setTimeout(()=>n.abort(),r);try{let{timeoutMs:o,...s}=t??{};return await fetch(e,{...s,signal:n.signal})}finally{clearTimeout(i)}}var hN=class extends Error{code="ATTESTATION_KEY_DRIFT";hint;constructor(t,r){super(t),this.name="AttestationDriftError",this.hint=r}};var SEe={ENOTFOUND:"Cannot resolve the Visa CLI server hostname (DNS error). Check your internet connection or the auth.serverUrl setting.",EAI_AGAIN:"DNS lookup for the Visa CLI server failed temporarily. Check your internet connection and try again.",ECONNREFUSED:"The Visa CLI server refused the connection. The service may be down \u2014 check https://visacli.sh for status.",ECONNRESET:"The connection to the Visa CLI server was reset mid-request. Try again in a moment.",EHOSTUNREACH:"The Visa CLI server is unreachable from this network. Check your internet connection.",ETIMEDOUT:"The connection to the Visa CLI server timed out. Try again or check https://visacli.sh for status.",CERT_HAS_EXPIRED:"The Visa CLI server's TLS certificate is expired. Check https://visacli.sh for status; do not bypass the cert.",UND_ERR_CONNECT_TIMEOUT:"The connection to the Visa CLI server timed out before it could be established. Try again in a moment.",UND_ERR_SOCKET:"The connection to the Visa CLI server was interrupted. Try again in a moment."};function TEe(e){let t=e&&typeof e=="object"?e:{};if(t.name==="AbortError"||typeof t.message=="string"&&t.message.includes("aborted"))return"The request timed out. The server may be under heavy load. Please try again.";let r=(t.cause&&typeof t.cause=="object"?t.cause.code:void 0)??(typeof t.code=="string"?t.code:void 0);return r&&SEe[r]?SEe[r]:`Network error contacting the Visa CLI server (${r?`${r}: ${typeof t.message=="string"?t.message:"unknown"}`:typeof t.message=="string"&&t.message.length>0?t.message:"unknown error"}). Check https://visacli.sh for status.`}var Mgt=/^(\d+)\.(\d+)\.(\d+)(?:-([0-9A-Za-z.-]+))?(?:\+[0-9A-Za-z.-]+)?$/;function IEe(e,t){let r=PEe(e),n=PEe(t);if(!r||!n)return!1;for(let i=0;i<3;i++)if(r.main[i]!==n.main[i])return r.main[i]>n.main[i];return r.pre&&!n.pre?!1:!r.pre&&n.pre?!0:!r.pre&&!n.pre?!1:Dgt(r.pre,n.pre)>0}function PEe(e){if(typeof e!="string")return null;let r=e.trim().replace(/^v/,"").match(Mgt);return r?{main:[Number(r[1]),Number(r[2]),Number(r[3])],pre:r[4]??null}:null}function Dgt(e,t){let r=e.split("."),n=t.split("."),i=Math.max(r.length,n.length);for(let o=0;o<i;o++){if(o>=r.length)return-1;if(o>=n.length)return 1;let s=r[o],a=n[o],c=/^\d+$/.test(s),u=/^\d+$/.test(a);if(c&&u){let d=Number(s)-Number(a);if(d!==0)return d}else{if(c)return-1;if(u)return 1;if(s<a)return-1;if(s>a)return 1}}return 0}function Eh(){return!!(OEe(process.env.VISA_CLI_NO_UPDATE_CHECK)||OEe(process.env.CI)||process.env.NODE_ENV==="test")}function OEe(e){if(e===void 0)return!1;let t=e.trim().toLowerCase();return!(t===""||t==="0"||t==="false"||t==="no"||t==="off")}H2();var xN="4.1.0-rc.29",Qgt=/^vk_(?:live|test)_[A-Za-z0-9_-]{16,128}$/;function ebt(e,t){let r=typeof t?.error=="string"&&t.error||typeof t?.message=="string"&&t.message||"";return r?new Error(r):e>=500||e===408||e===425||e===429?new Error(`Request failed (${e}). Try again.`):e===404?new Error(`Request failed (${e}) \u2014 not found; check the identifier or slug.`):new Error(`Request failed (${e}).`)}var tbt="Visa CLI is temporarily unavailable. Try again, or report at https://github.com/Visa-Crypto-Labs/Visa-mono/issues if it persists.";function W4(e){return typeof e=="string"?e.trim():""}function rbt(e){let t=e&&typeof e=="object"?e:{},r=W4(t.error)||W4(t.message);if(!r)return tbt;let n=W4(t.error_code),i=[["surface",W4(t.disabled_surface)],["flag",W4(t.flag)],["correlation_id",W4(t.correlation_id)]].filter(([,s])=>s).map(([s,a])=>`${s}=${a}`),o=i.length?` (${i.join(" ")})`:"";return n?`503 [${n}] ${r}${o}`:`503 ${r}${o}`}function nbt(e=process.env,t=process.stdin.isTTY){let r=["Not logged in. No local Visa CLI session credentials were found."],n=e.VISA_CLI_API_KEY?.trim();return n?Qgt.test(n)?(r.push("VISA_CLI_API_KEY is set, but this operation requires an enrolled device session."),r.push("Use the Visa Key with X-Api-Key on the /v2/harness/* surface.")):(r.push("VISA_CLI_API_KEY is set but has invalid format (expected vk_live_<...> or vk_test_<...>)."),r.push("Create a new Visa Key with: visa-cli keys create <app-name>")):r.push("Ask your agent to call `enroll_agent` to connect this device."),t===!1&&r.push("Complete enrollment in a normal terminal, then restart the MCP client."),r.join(`
|
|
20886
20886
|
`)}var Th=class{constructor(t){this.getSessionToken=t;this.baseUrl=ga()}getSessionToken;baseUrl;lastSignals={};parseServerSignals(t){if(this.lastSignals={},!Eh()){let n=t.headers.get("X-Latest-Version");n&&IEe(n,xN)&&(this.lastSignals.updateAvailable={currentVersion:xN,latestVersion:n})}let r=t.headers.get("X-Feedback-Prompt");if(r)try{this.lastSignals.feedbackPrompt=JSON.parse(r)}catch{}}getClientVersion(){return xN}throwIfAttestationDrift(t){if(t?.error_code==="ATTESTATION_KEY_DRIFT")throw new hN(t.error||"Your biometric key is out of sync with the server.",typeof t.hint=="string"?t.hint:void 0)}async throwServerUnavailable(t){let r=null;try{r=await t.json()}catch{}throw new Error(rbt(r))}async request(t,r,n,i,o){let s=await this.getSessionToken();if(!s)throw new Error(nbt());let a={Authorization:`Bearer ${s}`};o&&(t==="GET"?a["X-User-Context"]=encodeURIComponent(o.replace(/[\r\n\0]/g," ").slice(0,1e3)):n={...n||{},user_context:o}),n&&(a["Content-Type"]="application/json");let c;try{c=await AEe(`${this.baseUrl}${r}`,{method:t,headers:{...a,"X-Visa-CLI-Version":xN,"X-Source":"cli"},body:n?JSON.stringify(n):void 0,timeoutMs:i})}catch(d){throw new Error(TEe(d))}if(this.parseServerSignals(c),c.status===401)throw new Error("Your device session has expired. Ask your agent to call `enroll_agent` to reconnect.");if(c.status===429){let d=c.headers.get("Retry-After")||"3";throw new Error(`Rate limited \u2014 wait ${d}s, then retry.`)}c.status===503&&await this.throwServerUnavailable(c);let u;try{u=await c.json()}catch{throw c.status===500?new Error(`Server error on ${r}. Try again or check https://visacli.sh for status.`):new Error(`Unexpected response from ${r}. Try again.`)}if(!c.ok)throw c.status===500?new Error(`Server error on ${r}. Try again or check https://visacli.sh for status.`):(this.throwIfAttestationDrift(u),ebt(c.status,u));return u}async emitTelemetry(t){return this.request("POST","/v1/telemetry",{rows:t})}async merchantDirectorySearch(t,r){let n=new URLSearchParams;return t.provider&&n.set("provider",t.provider),t.q&&n.set("q",t.q),t.protocol&&n.set("protocol",t.protocol),t.maxPriceUsd&&n.set("max_price_usd",t.maxPriceUsd),n.set("limit",String(t.limit)),n.set("offset",String(t.offset)),this.request("GET",`/v1/merchant-directory/search?${n.toString()}`,void 0,void 0,r)}async getStatus(t){return this.request("GET","/v1/status",void 0,void 0,t)}async getFeatureFlags(){return this.request("GET","/v1/feature-flags")}async getAttestationChallenge(){return this.request("GET","/v1/attestation-challenge")}async registerAttestationKey(t,r){return this.request("POST","/v1/attestation-key",{publicKey:t,...r?{attestation:r}:{}})}async startAttestationRecovery(t,r){return this.request("POST","/v1/attestation-key/recovery/start",{state:t},void 0,r)}async setBiometricPreference(t,r){return this.request("POST","/v1/biometric-preference",{...t,confirm:!0},void 0,r)}async getPendingWebAuthenticators(t){return this.request("GET","/v1/webauthn/pending",void 0,void 0,t)}async authorizeWebAuthenticator(t,r){return this.request("POST","/v1/webauthn/authorize",t,void 0,r)}async logout(t,r){return this.request("POST","/v4/logout",t,void 0,r)}async feedback(t,r,n){return this.request("POST","/v1/feedback",{message:t,...r&&{transaction_id:r}},void 0,n)}async createAppApiKey(t){return this.request("POST","/v1/api/keys",t)}async listAppApiKeys(t){let r=new URLSearchParams;t?.limit!=null&&r.set("limit",String(t.limit)),t?.startingAfter!=null&&r.set("starting_after",String(t.startingAfter)),t?.endingBefore!=null&&r.set("ending_before",String(t.endingBefore));let n=r.toString();return this.request("GET",n?`/v1/api/keys?${n}`:"/v1/api/keys")}async listAllAppApiKeys(){let t=[],r=new Set,n,i=null,o=0;for(;;){let s=await this.listAppApiKeys({limit:100,...n!==void 0?{startingAfter:n}:{}});if(o+=1,i=s,t.push(...s.keys??[]),!s.has_more)break;if(s.next_cursor==null)throw new Error("API key pagination response did not include next_cursor.");if(r.has(s.next_cursor))throw new Error("API key pagination cursor did not advance.");r.add(s.next_cursor),n=s.next_cursor}return{...i??{success:!0,keys:[]},keys:t,limit:100,has_more:!1,next_cursor:null,previous_cursor:null,pages:o}}async revokeAppApiKey(t){return this.request("DELETE",`/v1/api/keys/${encodeURIComponent(String(t))}`)}async submitFeedback(t,r,n){return this.request("POST","/v1/feedback",{message:t,...r&&{transaction_id:r}},void 0,n)}async getFeedback(t,r){let n=new URLSearchParams;t&&n.set("limit",String(t));let i=n.toString();return this.request("GET",`/v1/feedback${i?"?"+i:""}`,void 0,void 0,r)}async submitRatedFeedback(t){return this.request("POST","/v1/feedback",t)}};LX();var zX=require("child_process"),JEe=require("util"),YEe=ve(require("crypto")),Jr=ve(require("fs")),ZEe=ve(require("os")),Ns=ve(require("path"));eu();FB();B2();var Jm=(0,JEe.promisify)(zX.execFile),abt=6e4,cbt=()=>process.platform==="darwin",G4=()=>process.platform==="win32",Ph=Ns.join(ZEe.homedir(),".visa-mcp","bin"),F2=Ns.join(Ph,"Visa CLI"),Gm=Ns.join(Ph,"visa-keychain-win.exe"),XEe=Ns.join(__dirname,"..","native"),LEe="6",zEe=Ns.join(Ph,"visa-keychain.version"),HEe=Ns.join(Ph,"visa-keychain.sha256"),FEe="1",$Ee=Ns.join(Ph,"visa-keychain-win.version"),VEe=Ns.join(Ph,"visa-keychain-win.sha256"),QEe=[Ns.join(XEe,"bin","win32-x64","visa-keychain-win.exe"),Ns.resolve(__dirname,"..","..","native","bin","win32-x64","visa-keychain-win.exe"),Ns.resolve(__dirname,"..","native","bin","win32-x64","visa-keychain-win.exe")];function AN(e){let t=Jr.readFileSync(e);return YEe.createHash("sha256").update(t).digest("hex")}function ubt(e){let t=e.trim();if(t.startsWith("OK:"))return t.slice(3);if(t==="OK")return;let r=t.startsWith("ERROR:")?t.slice(6):"Unknown error";throw new Error(r)}function KEe(e){let t=typeof e?.message=="string"?e.message:"";return e?.code==="ETIMEDOUT"||e?.killed===!0||/timed out|timeout/i.test(t)}function WEe(e){let t=Math.max(1,Math.round(e/1e3));return new Error(`Timed out waiting for Touch ID/device approval after ${t}s.`)}async function eAe(){try{if(Jr.readFileSync(zEe,"utf-8").trim()===LEe&&Jr.existsSync(F2)){let n=Jr.readFileSync(HEe,"utf-8").trim();if(AN(F2)!==n)Re.warn("binary:hash-mismatch",{message:"Binary hash mismatch \u2014 possible tampering detected. Recompiling from source."}),Jr.unlinkSync(F2);else return F2}}catch{}let e=Ns.join(XEe,"visa-keychain.m");if(Jr.existsSync(e)||(e=Ns.resolve(__dirname,"..","..","native","visa-keychain.m")),Jr.existsSync(e)||(e=Ns.resolve(__dirname,"..","native","visa-keychain.m")),!Jr.existsSync(e))throw new Error("visa-keychain.m source not found. Reinstall Visa CLI.");Jr.mkdirSync(Ph,{recursive:!0,mode:448});try{await Jm("clang",["-framework","Security","-framework","LocalAuthentication","-framework","Foundation","-framework","AppKit","-o",F2,e],{timeout:3e4})}catch(r){throw r.code==="ENOENT"?new Error("Xcode Command Line Tools required. Install: xcode-select --install"):r}let t=AN(F2);return Jr.writeFileSync(HEe,t,{mode:384}),Jr.writeFileSync(zEe,LEe,{mode:384}),F2}function tAe(){for(let e of QEe)if(Jr.existsSync(e))return e;return null}async function PN(){try{if(Jr.readFileSync($Ee,"utf-8").trim()===FEe&&Jr.existsSync(Gm)){let n=Jr.readFileSync(VEe,"utf-8").trim();if(AN(Gm)!==n)Re.warn("binary:hash-mismatch:win32",{message:"Windows binary hash mismatch. Redeploying."}),Jr.unlinkSync(Gm);else return Gm}}catch{}let e=tAe();if(!e)throw new Error(`visa-keychain-win.exe not found in package. Reinstall @visa/cli.
|
|
20887
|
-
If building from source, run native/build-win.bat first.`);Jr.mkdirSync(Ph,{recursive:!0}),Jr.copyFileSync(e,Gm);let t=AN(Gm);return Jr.writeFileSync(VEe,t,{mode:384}),Jr.writeFileSync($Ee,FEe,{mode:384}),Gm}async function dbt(){return G4()?PN():eAe()}var SN="visa-cli",TN="attestation-key";async function lbt(e){if(!await Mp())throw new Error("macOS Keychain is unavailable in this environment (no default keychain), so the Touch ID key cannot be stored. Run this command in a regular user session.");try{await Jm("security",["delete-generic-password","-s",SN,"-a",TN],{timeout:5e3})}catch{}try{await Jm("security",["add-generic-password","-s",SN,"-a",TN,"-w",e],{timeout:5e3})}catch(t){throw new Error(`Could not store the Touch ID key in the macOS Keychain (${pbt(t)}).`)}}function pbt(e){let t=e,r=[t?.stderr,t?.message].filter(n=>typeof n=="string").join(" ").toLowerCase();return/canceled|cancelled/.test(r)?"the Keychain authorization was canceled":/locked/.test(r)?"the Keychain is locked":/not permitted|permission denied|not authorized/.test(r)?"Keychain access was denied":/could not be found|no default keychain/.test(r)?"no default keychain was found":"the security tool reported an error"}function fbt(e){let t=typeof e?.code=="number"?e.code:void 0,r=typeof e?.stderr=="string"?e.stderr:"",n=typeof e?.stdout=="string"?e.stdout:"",i=[r,n,e?.message].filter(Boolean).join(" ").trim();return t===44||/could not be found|item(?: was)? not found|no such keychain item|not found/i.test(i)?{state:"absent",usable:!1,message:"No local attestation key was found."}:/user interaction is not allowed|user canceled|user cancelled|authorization failed|interaction not allowed|keychain.*locked|denied|not authorized/i.test(i)?{state:"denied",usable:!1,message:"The local attestation key exists but Keychain access was denied or unavailable."}:{state:"error",usable:!1,message:i||"Could not read the local attestation key from Keychain."}}async function mbt(){if(!await Mp())return{key:null,status:{state:"denied",usable:!1,message:"macOS Keychain is unavailable in this environment (no default keychain)."}};try{let{stdout:e}=await Jm("security",["find-generic-password","-s",SN,"-a",TN,"-w"],{timeout:5e3}),t=e.trim();return t?{key:t,status:{state:"present",usable:!0}}:{key:null,status:{state:"absent",usable:!1,message:"No local attestation key was found."}}}catch(e){return{key:null,status:fbt(e)}}}async function hbt(){let e=await mbt();if(e.key)return e.key;if(e.status.state==="absent")return null;throw new Error(e.status.message||"Could not read the local attestation key from Keychain.")}async function rAe(e){let t=await dbt(),r;try{r=(await Jm(t,e,{timeout:6e4})).stdout}catch(n){r=n.stdout||"";let i=r.trim();throw i.startsWith("ERROR:")?new Error(i.slice(6)):new Error(n.stderr?.toString().trim()||n.message||"Unknown error")}return ubt(r)}var GEe=!1;function ybt(){if(!G4())return!1;try{return Jr.existsSync(Gm)||tAe()!==null?!0:(GEe||(GEe=!0,Re.warn("binary:missing:win32",{message:"visa-keychain-win.exe not found; Windows Hello attestation unavailable on this install.",binPath:Gm,searchedPrebuiltPaths:QEe})),!1)}catch{return!1}}function Ih(){return vS()||cbt()?!0:G4()?ybt():!1}async function nAe(){if(G4()){let i=await PN(),{stdout:o}=await Jm(i,["generate-key"],{timeout:3e4}),s=o.trim();if(s.startsWith("OK:"))return s.slice(3);throw new Error(s.startsWith("ERROR:")?s.slice(6):"Key generation failed")}let e=await rAe(["generate-key"]);if(!e)throw new Error("Key generation returned no output");let t=e.indexOf(":");if(t<0)throw new Error("Unexpected generate-key output format");let r=e.slice(0,t),n=e.slice(t+1);return await lbt(r),n}async function HX(e,t,r={}){if(vS())return Promise.resolve(axe());let n=r.timeoutMs??abt;if(G4()){let a=await PN(),c=["sign",e];t&&c.push(t);let u;try{u=(await Jm(a,c,{timeout:n})).stdout}catch(l){throw KEe(l)?WEe(n):l}let d=u.trim();if(d.startsWith("OK:"))return d.slice(3);throw new Error(d.startsWith("ERROR:")?d.slice(6):"Unknown error")}let i=await hbt();if(!i)throw new Error("Attestation key not found. Run setup to generate a new key.");let o=await eAe(),s=["sign",e];return t&&s.push(t),new Promise((a,c)=>{let u=(0,zX.execFile)(o,s,{timeout:n},(d,l)=>{let p=(l||"").trim();if(d){p.startsWith("ERROR:")?c(new Error(p.slice(6))):KEe(d)?c(WEe(n)):c(new Error(d.stderr?.toString().trim()||d.message||"Unknown error"));return}p.startsWith("OK:")?a(p.slice(3)):c(new Error(p.startsWith("ERROR:")?p.slice(6):"Unknown error"))});u.stdin.write(i),u.stdin.end()})}async function IN(){if(G4()){try{let e=await PN();await Jm(e,["delete-key"],{timeout:1e4})}catch{}return}if(await Mp())try{await Jm("security",["delete-generic-password","-s",SN,"-a",TN],{timeout:5e3})}catch{}try{await rAe(["delete-key"])}catch{}}B2();eu();QB();H8e();var Aht=require("child_process"),GZ=ve(require("fs")),JZ=ve(require("os")),Sht=ve(require("path"));H2();FB();var Zft="4.1.0-rc.
|
|
20888
|
-
`)}function Qft(e){return JSON.stringify({config:e.entries.map(t=>({key:t.key,value:t.value,source:t.source,hint:t.hint})),statusError:e.statusError},null,2)}var g9e=require("node:os"),AB=require("node:path"),SB=require("node:fs/promises"),g1t=require("node:fs"),b1t=require("node:url"),_1t=require("node:crypto");eu();var $3r=new Set(["USD","USDC","EUR","GBP","CAD","AUD"]);function FA(e,t){let r=t.toUpperCase();return!Number.isFinite(e)||!$3r.has(r)?`${e} ${r} (minor units)`:`${(e/100).toFixed(2)} ${r}`}var ah=class extends Error{constructor(t){super(t),this.name="PayValidationError"}};function $8e(e){let t;try{t=new URL(e)}catch{throw new ah(`Invalid URL: ${e}. Expected a fully-qualified http(s) URL.`)}if(t.protocol!=="http:"&&t.protocol!=="https:")throw new ah(`Unsupported URL scheme "${t.protocol}". Only http and https are allowed.`);return t}eu();var V3r={ucp_checkout_handoff:"checkout_agent_access",pay_merchant:"checkout_agent_access",pay_merchant_status:"checkout_agent_access",start_card_mandate:"checkout_agent_access"},K3r=300*1e3,V8e={},emt=0,iB=null;function W3r(){return iB||(iB=(async()=>{try{let e=await Op.getFeatureFlags();V8e=e&&e.flags||{},emt=Date.now()}catch(e){V8e={},Re.warn("feature-flags:fetch-failed",{error:e instanceof Error?e.message:String(e)})}finally{iB=null}})(),iB)}async function eZ(){Date.now()-emt<K3r||await W3r()}function $A(e){let t=V3r[e];return t?V8e[t]!==!0:!1}var tmt=require("node:crypto"),oB=class extends Error{constructor(r){super(`Approval handoff already exists with different inputs for review ${r}`);this.reviewId=r;this.name="PayMerchantApprovalConflictError"}reviewId},tZ=class{constructor(t={}){this.options=t}options;jobsByOperation=new Map;operationByReview=new Map;now(){return(this.options.now??Date.now)()}activeTtlMs(){return this.options.activeTtlMs??300*1e3}terminalTtlMs(){return this.options.terminalTtlMs??300*1e3}async waitUntilQueryable(t){let r;try{await Promise.race([t,new Promise(n=>{r=setTimeout(n,Math.max(0,this.options.initialWaitMs??1e3)),r.unref?.()})])}finally{r&&clearTimeout(r)}}finish(t,r){t.inFlight=!1,t.status=r,t.expiresAtMs=this.now()+this.terminalTtlMs(),t.resolveReady()}pruneExpired(){let t=this.now();for(let[r,n]of this.jobsByOperation)if(!(n.expiresAtMs>t)){if(n.inFlight){(n.status==="starting"||n.status==="awaiting_passkey")&&(n.status="reconciling",n.error="Approval handoff expired while the checkout was in progress; reconcile with the merchant before retrying",n.resolveReady()),n.expiresAtMs=t+this.terminalTtlMs();continue}this.jobsByOperation.delete(r),this.operationByReview.get(n.reviewId)===r&&this.operationByReview.delete(n.reviewId)}}snapshot(t){return{operationId:t.operationId,reviewId:t.reviewId,status:t.status,approvalUrl:t.approvalUrl,result:t.result,error:t.error,expiresAt:new Date(t.expiresAtMs).toISOString()}}get(t){this.pruneExpired();let r=this.jobsByOperation.get(t);return r?this.snapshot(r):null}async start(t){this.pruneExpired();let r=this.operationByReview.get(t.reviewId),n=r?this.jobsByOperation.get(r):void 0;if(n){if(n.fingerprint!==t.fingerprint)throw new oB(t.reviewId);return await this.waitUntilQueryable(n.ready),this.snapshot(n)}let i=()=>{},o=new Promise(u=>{i=u}),s=(this.options.idFactory??tmt.randomUUID)(),a={operationId:s,reviewId:t.reviewId,fingerprint:t.fingerprint,status:"starting",approvalUrl:null,result:null,error:null,expiresAtMs:this.now()+this.activeTtlMs(),inFlight:!0,ready:o,resolveReady:i};this.jobsByOperation.set(s,a),this.operationByReview.set(t.reviewId,s);let c=u=>{a.status==="starting"&&(a.approvalUrl=u,a.status="awaiting_passkey",a.resolveReady())};return Promise.resolve().then(()=>t.run(c)).then(u=>{a.result=u,a.error=null,this.finish(a,"completed")}).catch(u=>{a.error=u instanceof Error?u.message:String(u),this.finish(a,"failed")}),await this.waitUntilQueryable(o),this.snapshot(a)}};function v1t(e){return[(0,AB.join)(e,"checkout-engine","index.js"),(0,AB.join)(e,"..","checkout-engine","index.js")]}function MEr(e,t=g1t.existsSync){return v1t(e).find(r=>t(r))??null}var RZ=null,w1t=async()=>{if(RZ)return RZ;let e=MEr(__dirname);if(!e)throw new Error(`Cannot find module: the checkout engine was not packaged (looked in ${v1t(__dirname).join(" and ")}).`);return RZ=(await import((0,b1t.pathToFileURL)(e).href)).createCliCheckoutEngine({cardDrawVerdict:await DEr(),cardMandateRegister:await LEr()}),RZ};async function DEr(){let e=await Promise.resolve().then(()=>(h9e(),m9e));return{loadCapability:()=>e.loadCardMandateCapability(),fetchVerdict:t=>e.fetchCardDrawVerdict(t)}}async function LEr(){let e=await Promise.resolve().then(()=>(h9e(),m9e));return{loadCapability:()=>e.loadCardMandateCapability(),register:t=>e.registerCardMandate(t)}}async function b9e(){return $A("pay_merchant")?(await eZ(),$A("pay_merchant")):!1}var x1t=(0,AB.join)((0,g9e.homedir)(),".visa-mcp","agent-credential.json"),E1t=(0,AB.join)((0,g9e.homedir)(),".visa-mcp","contact.json"),A1t=new tZ;function TB(e){return e.replace(/https?:\/\/[^\s"')\]]+/gi,t=>{try{return new URL(t).origin}catch{return"[url]"}}).slice(0,300)}var zEr=new Set(["USD","USDC","EUR","GBP","CAD","AUD"]);function S1t(e){return zEr.has(e)?e:null}async function BZ(e){try{await e.emitTelemetry([{timestamp:new Date().toISOString(),tool_name:"pay_merchant",user_prompt:"",tool_params:JSON.stringify({action:e.action,rail:"card",merchant_host:e.merchantHost,amount_minor:e.amountMinor,currency:e.currency,...e.submit===void 0?{}:{submit:e.submit},source:e.source??null,draw_id:e.drawId??null}),result_success:e.success,result_error:e.errorMessage?TB(e.errorMessage):null,result_json:JSON.stringify({outcome:e.outcome,confirmationRef:e.confirmationRef??null,source:e.source??null,remainingMinor:e.remainingMinor??null}),payment_rail:e.action==="pay"?"card":null,payment_amount:e.action==="pay"?e.amountMinor:null,payment_currency:S1t(e.currency),merchant_name:e.merchantHost,transaction_id:null,tx_hash:null,protocol:null,http_status:null,duration_ms:Math.max(0,Date.now()-e.startedAt),source:"cli",endpoint:"/v4/checkout",resolved_model:null,session_budget_id:null}])}catch(t){Re.warn("pay_merchant:telemetry_failed",{action:e.action,error:t instanceof Error?t.message:String(t)})}}async function y1t(e){try{await e.emitTelemetry([{timestamp:new Date().toISOString(),tool_name:"start_card_mandate",user_prompt:"",tool_params:JSON.stringify({rail:"card",merchant_host:e.merchantHost,ceiling_minor:e.ceilingMinor,currency:e.currency}),result_success:e.success,result_error:e.errorMessage?TB(e.errorMessage):null,result_json:JSON.stringify({outcome:e.outcome,mandateId:e.mandateId??null,remainingMinor:e.remainingMinor??null}),payment_rail:null,payment_amount:null,payment_currency:S1t(e.currency),merchant_name:e.merchantHost,transaction_id:null,tx_hash:null,protocol:null,http_status:null,duration_ms:Math.max(0,Date.now()-e.startedAt),source:"cli",endpoint:"/v4/mandate",resolved_model:null,session_budget_id:null}])}catch(t){Re.warn("start_card_mandate:telemetry_failed",{error:t instanceof Error?t.message:String(t)})}}function y9e(e){if(typeof e!="string"||!/^\d+(\.\d{1,2})?$/.test(e)||Number(e)<=0)throw new ah(`Invalid amount ${JSON.stringify(e)}. Expected a positive decimal like "5.00".`);return e}function T1t(e,t){if(e.status==="completed")return{...e.result??{},action:t,approvalStatus:"completed",operationId:e.operationId,reviewId:e.reviewId,expiresAt:e.expiresAt};if(e.status==="failed"){let r=TB(e.error??"approval failed");return{success:!1,action:t,approvalStatus:"failed",operationId:e.operationId,reviewId:e.reviewId,expiresAt:e.expiresAt,message:`${r}. Nothing was charged unless a returned receipt explicitly says confirmed.`}}return e.status==="awaiting_passkey"&&e.approvalUrl?{success:!0,action:t,approvalStatus:"awaiting_passkey",operationId:e.operationId,reviewId:e.reviewId,expiresAt:e.expiresAt,requiresBrowser:!0,browserUrl:e.approvalUrl,approval:{type:"visa_passkey",url:e.approvalUrl,expiresAt:e.expiresAt,button:{label:"Open Visa approval",webApp:{url:e.approvalUrl}}},message:"Open the Visa approval link and complete the passkey. This Telegram or messaging handoff is not itself the passkey and has not charged the card."}:e.status==="reconciling"?{success:!1,action:t,approvalStatus:"reconciling",operationId:e.operationId,reviewId:e.reviewId,expiresAt:e.expiresAt,message:"The approval window expired while checkout was still in progress. Check this operation again for a receipt and reconcile with the merchant before starting a fresh review."}:{success:!0,action:t,approvalStatus:"starting",operationId:e.operationId,reviewId:e.reviewId,expiresAt:e.expiresAt,message:"Visa is preparing the hosted passkey approval. Check this approval again shortly."}}async function P1t(e={},t={}){if(await(t.flagDisabled??b9e)())return{success:!1,message:"pay_merchant_status requires the checkout_agent_access flag on your account. Ask an admin to enable it, then retry."};let n=typeof e.operationId=="string"&&/^[A-Za-z0-9_-]{1,200}$/.test(e.operationId)?e.operationId:null;if(!n)return{success:!1,action:"status",approvalStatus:"unknown",message:'A valid operationId from pay_merchant action "authorize" is required.'};let o=(t.approvalJobs??A1t).get(n);return o?T1t(o,"status"):{success:!1,action:"status",operationId:n,approvalStatus:"unknown",message:"No active approval operation exists. It may have expired or the MCP process may have restarted. If approval or merchant submission may have begun, reconcile the merchant order or receipt before starting a fresh review; never retry a purchase blindly."}}async function I1t(e={},t={}){let r=(e.rail??"card").toLowerCase();if(r!=="card")return{success:!1,message:`pay_merchant only implements the "card" rail today (got ${JSON.stringify(r)}). For stablecoin/x402, use the wallet tools (wallet_pay / wallet_directory_pay).`};let n=t.verifyUrl!==void 0?t.verifyUrl:DX()&&!process.env.VISA_VERIFY_WEB_URL?null:yl();if(n===null)return{success:!1,message:"pay_merchant is not available in stable CLI builds (it runs an on-device mint and is limited to tester/RC builds). Use a preview build with VISA_VERIFY_WEB_URL set and the checkout_agent_access flag enabled."};if(await(t.flagDisabled??b9e)())return{success:!1,message:"pay_merchant requires the checkout_agent_access flag on your account. Ask an admin to enable it, then retry."};let o=e.action??"review";if(!["review","pay","authorize"].includes(o))return{success:!1,message:`Unknown pay_merchant action ${JSON.stringify(o)}. Use "review" (default), "authorize", or "pay".`};let s=t.approvalJobs??A1t,a,c,u=(e.currency??"USD").toUpperCase();if(!/^[A-Z]{3}$/.test(u))return{success:!1,message:`Invalid currency ${JSON.stringify(e.currency)}. Expected a 3-letter ISO code like "USD".`};try{a=$8e(e.url??"").toString(),c=y9e(e.amount)}catch(C){if(C instanceof ah)return{success:!1,message:C.message};throw C}let d=t.credentialPath??x1t,l=t.contactPath??E1t;try{await(0,SB.readFile)(d,"utf8")}catch{return{success:!1,message:"No enrolled agent credential on this device \u2014 run enroll_agent (start -> claim) first, then retry pay_merchant."}}let p;try{p=JSON.parse(await(0,SB.readFile)(l,"utf8"))}catch{return{success:!1,message:`No contact details at ${l}. Write your name/email/address there (chmod 600) first.`}}let f=null;if(o==="pay"||o==="authorize"){let C=typeof e.confirm=="string"?e.confirm.trim():"",I=/^PAY (\S+)$/.exec(C);if(!I)return{success:!1,action:o,message:'Confirmation required: pass confirm:"PAY <reviewId>" using the reviewId from a prior pay_merchant { action:"review" } call. Nothing was charged.'};f=I[1]}let m=t.loadEngine??w1t,h;try{h=await m()}catch(C){let I=C instanceof Error?C.message:String(C);if(/ERR_MODULE_NOT_FOUND|Cannot find (module|package)/.test(I))return{success:!1,message:/checkout engine was not packaged/.test(I)?"The checkout engine was not packaged into this @visa/cli build (a build/packaging fault). Reinstall @visa/cli from a release that includes it. No charge was made.":"The checkout browser runtime is not installed (playwright-core is an optional dependency of @visa/cli). Install it with `npm i playwright-core` in the CLI install, then retry. No charge was made."};throw C}let y={url:a,amount:c,currency:u,credentialPath:d,contact:p,approvalBaseUrl:n},w=t.emitTelemetry??(C=>Op.emitTelemetry(C)),x=new URL(a).hostname,_=Math.round(Number(c)*100),v=Date.now();if(o==="review"){Re.info("pay_merchant:review",{host:x,currency:u});let C;try{C=await h.review(y)}catch(I){throw await BZ({emitTelemetry:w,action:"review",merchantHost:x,amountMinor:_,currency:u,outcome:"engine-error",success:!1,errorMessage:I instanceof Error?I.message:String(I),startedAt:v}),I}return await BZ({emitTelemetry:w,action:"review",merchantHost:x,amountMinor:_,currency:u,outcome:"reviewed",success:!0,startedAt:v}),{success:!0,action:"review",...C,message:`Review ${C.reviewId}: ${C.merchantHost} wants ${FA(C.amountMinor,C.currency)}. For a messaging handoff, call pay_merchant { action: "authorize", url, amount, confirm: "PAY ${C.reviewId}" }; for a blocking terminal flow use action "pay". No charge yet.`}}let E=f,A=t.allowSubmit??process.env.CHECKOUT_AGENT_ALLOW_SUBMIT==="1",S=async C=>{Re.info("pay_merchant:pay",{reviewId:E,submit:A,approvalMode:o==="authorize"?"handoff":"blocking"});let I;try{I=await h.pay({...y,reviewId:E,submit:A,...C?{onApprovalUrl:C}:{}})}catch(j){throw await BZ({emitTelemetry:w,action:"pay",merchantHost:x,amountMinor:_,currency:u,outcome:"engine-error",success:!1,errorMessage:j instanceof Error?j.message:String(j),startedAt:v,submit:A}),j}let k=I.outcome==="confirmed"||I.outcome==="filled-dry-run";await BZ({emitTelemetry:w,action:"pay",merchantHost:x,amountMinor:_,currency:u,outcome:I.outcome,confirmationRef:I.confirmationRef,success:k,errorMessage:k?null:I.detail??I.outcome,startedAt:v,submit:A,source:I.source??null,remainingMinor:I.remainingMinor??null,drawId:I.source==="mandate"?E:null});let q=I.source==="mandate"?` Drawn tap-free from an active card mandate${typeof I.remainingMinor=="number"?` (${I.remainingMinor} ${u} minor units remaining)`:""}.`:I.source==="fresh-tap"?" Paid with a fresh per-purchase passkey.":"";return{success:k,action:"pay",reviewId:E,...I,message:I.outcome==="confirmed"?`Paid. Confirmation ${I.confirmationRef??"(none captured)"} \xB7 receipt ${I.receiptPath??"(not written)"}.${q}`:`Outcome: ${I.outcome}${I.detail?` \u2014 ${I.detail}`:""}. Do not retry blindly \u2014 verify with the merchant before any re-run.`}};if(o==="authorize"){let C=(0,_1t.createHash)("sha256").update(JSON.stringify([E,a,c,u,A])).digest("hex");Re.info("pay_merchant:approval_handoff_started",{reviewId:E,merchantHost:x,currency:u,submit:A});try{let I=await s.start({reviewId:E,fingerprint:C,run:async k=>{try{let q=await S(j=>{Re.info("pay_merchant:approval_handoff_ready",{reviewId:E}),k(j)});return Re.info("pay_merchant:approval_handoff_completed",{reviewId:E,success:q.success===!0}),q}catch(q){throw Re.warn("pay_merchant:approval_handoff_failed",{reviewId:E,error:TB(q instanceof Error?q.message:String(q))}),q}}});return T1t(I,"authorize")}catch(I){if(I instanceof oB)return Re.warn("pay_merchant:approval_handoff_conflict",{reviewId:E}),{success:!1,action:"authorize",reviewId:E,approvalStatus:"conflict",message:"This review already has an approval handoff with different checkout inputs. Do not retry it; create and confirm a fresh review."};throw I}}return S()}async function O1t(e={},t={}){let r=(e.rail??"card").toLowerCase();if(r!=="card")return{success:!1,message:`start_card_mandate only supports the "card" rail (got ${JSON.stringify(r)}). For x402/stablecoin payments, use wallet_policy_set and wallet_pay.`};let n=t.verifyUrl!==void 0?t.verifyUrl:yl();if(n===null)return{success:!1,message:"start_card_mandate is not available in stable CLI builds (it runs a server-side mint and is limited to tester/RC builds). Use a preview build with VISA_VERIFY_WEB_URL set and the checkout_agent_access flag enabled."};if(await(t.flagDisabled??b9e)())return{success:!1,message:"start_card_mandate requires the checkout_agent_access flag on your account. Ask an admin to enable it, then retry."};let o=(e.currency??"USD").toUpperCase();if(!/^[A-Z]{3}$/.test(o))return{success:!1,message:`Invalid currency ${JSON.stringify(e.currency)}. Expected a 3-letter ISO code like "USD".`};let s=e.anyMerchant===!0,a,c;try{a=s?void 0:$8e(e.url??"").toString(),c=y9e(e.ceiling??e.amount)}catch(A){if(A instanceof ah)return{success:!1,message:A.message};throw A}if(e.expiresAt!==void 0){let A=Date.parse(e.expiresAt);if(!Number.isFinite(A)||A<=Date.now())return{success:!1,message:`Invalid expiresAt ${JSON.stringify(e.expiresAt)}. Expected a future ISO 8601 timestamp.`}}if(e.maxDraws!==void 0&&(!Number.isSafeInteger(e.maxDraws)||e.maxDraws<1))return{success:!1,message:"maxDraws must be a positive integer."};let u;if(e.perTransaction!==void 0){try{u=y9e(e.perTransaction)}catch(A){if(A instanceof ah)return{success:!1,message:A.message};throw A}if(Number(u)>Number(c))return{success:!1,message:"perTransaction cannot exceed the ceiling."}}let d;if(e.intent!==void 0){if(typeof e.intent!="string")return{success:!1,message:"intent must be a short string."};let A=e.intent.replace(/[\p{Cc}\u2028\u2029]/gu,"").trim().slice(0,200).trim();d=A.length>0?A:void 0}let l=t.credentialPath??x1t,p=t.contactPath??E1t;try{await(0,SB.readFile)(l,"utf8")}catch{return{success:!1,message:"No enrolled agent credential on this device \u2014 run enroll_agent (start -> claim) first, then retry start_card_mandate."}}let f;try{f=JSON.parse(await(0,SB.readFile)(p,"utf8"))}catch{return{success:!1,message:`No contact details at ${p}. Write your name/email/address there (chmod 600) first.`}}let m=t.loadEngine??w1t,h;try{h=await m()}catch(A){let S=A instanceof Error?A.message:String(A);if(/ERR_MODULE_NOT_FOUND|Cannot find (module|package)/.test(S))return{success:!1,message:"The checkout engine was not packaged into this @visa/cli build (a build/packaging fault). Reinstall @visa/cli from a release that includes it. No mandate was created."};throw A}let y=s?"any-merchant":new URL(a).hostname,w=Math.round(Number(c)*100),x=t.emitTelemetry??(A=>Op.emitTelemetry(A)),_=Date.now();Re.info("start_card_mandate:create",{host:y,currency:o});let v;try{v=await h.startCardMandate({...a?{url:a}:{},ceiling:c,currency:o,credentialPath:l,contact:f,approvalBaseUrl:n,...s?{anyMerchant:!0}:{},...e.merchantName?{merchantName:e.merchantName}:{},...e.expiresAt?{expiresAt:e.expiresAt}:{},...e.maxDraws!==void 0?{maxDraws:e.maxDraws}:{},...u!==void 0?{perTransaction:u}:{},...d!==void 0?{intent:d}:{}})}catch(A){let S=A instanceof Error?TB(A.message):String(A);return Re.warn("start_card_mandate:failed",{message:S}),await y1t({emitTelemetry:x,merchantHost:y,ceilingMinor:w,currency:o,outcome:"engine-error",success:!1,errorMessage:A instanceof Error?A.message:String(A),startedAt:_}),{success:!1,message:`Could not create the mandate: ${S}`}}let E=v.registerFailed===!0;return E&&Re.warn("start_card_mandate:register_failed",{mandateId:v.mandateId,host:y}),await y1t({emitTelemetry:x,merchantHost:y,ceilingMinor:w,currency:o,outcome:E?"created-register-failed":"created",success:!E,mandateId:v.mandateId,remainingMinor:v.remainingMinor,startedAt:_}),E?{success:!1,mandateId:v.mandateId,ceiling:c,remainingMinor:v.remainingMinor,currency:v.currencyCode,merchant:v.merchant,merchantHost:v.merchantHost,expiresAt:v.expiresAt,message:`Mandate ${v.mandateId} was created but could NOT be registered for tap-free draws, so it will not be used \u2014 your next pay_merchant will fall through to a fresh per-purchase passkey tap. Re-run to try again once the auth server is reachable.`}:{success:!0,mandateId:v.mandateId,ceiling:c,remainingMinor:v.remainingMinor,currency:v.currencyCode,merchant:v.merchant,merchantHost:v.merchantHost,expiresAt:v.expiresAt,message:`Mandate ${v.mandateId} active: up to ${FA(w,v.currencyCode)} at ${v.merchantHost} until ${v.expiresAt}. pay_merchant will now draw against it tap-free (no fresh passkey) until the budget is spent or it expires. NOTE: honoring a ceiling-scoped assurance across multiple draws is unproven live \u2014 if the network declines a draw, the budget is left untouched and that mandate is disabled, so your next pay_merchant uses a fresh per-purchase tap (it does NOT fall back within the same call).`}}var wht=require("node:crypto");var ght=require("node:crypto");var Dr={};Mi(Dr,{BRAND:()=>fAr,DIRTY:()=>v4,EMPTY_PATH:()=>VEr,INVALID:()=>gt,NEVER:()=>FAr,OK:()=>ha,ParseStatus:()=>Rs,Schema:()=>Lt,ZodAny:()=>P2,ZodArray:()=>gh,ZodBigInt:()=>x4,ZodBoolean:()=>E4,ZodBranded:()=>IB,ZodCatch:()=>N4,ZodDate:()=>A4,ZodDefault:()=>B4,ZodDiscriminatedUnion:()=>UZ,ZodEffects:()=>cl,ZodEnum:()=>k4,ZodError:()=>Zc,ZodFirstPartyTypeKind:()=>Et,ZodFunction:()=>MZ,ZodIntersection:()=>I4,ZodIssueCode:()=>ye,ZodLazy:()=>O4,ZodLiteral:()=>C4,ZodMap:()=>aS,ZodNaN:()=>uS,ZodNativeEnum:()=>R4,ZodNever:()=>kp,ZodNull:()=>T4,ZodNullable:()=>Fm,ZodNumber:()=>w4,ZodObject:()=>Xc,ZodOptional:()=>sl,ZodParsedType:()=>ke,ZodPipeline:()=>OB,ZodPromise:()=>I2,ZodReadonly:()=>j4,ZodRecord:()=>qZ,ZodSchema:()=>Lt,ZodSet:()=>cS,ZodString:()=>T2,ZodSymbol:()=>oS,ZodTransformer:()=>cl,ZodTuple:()=>Hm,ZodType:()=>Lt,ZodUndefined:()=>S4,ZodUnion:()=>P4,ZodUnknown:()=>yh,ZodVoid:()=>sS,addIssueToContext:()=>Se,any:()=>dl,array:()=>ue,bigint:()=>gAr,boolean:()=>ul,coerce:()=>Ju,custom:()=>q1t,date:()=>bAr,datetimeRegex:()=>j1t,defaultErrorMap:()=>mh,discriminatedUnion:()=>SAr,effect:()=>jAr,enum:()=>ll,function:()=>CAr,getErrorMap:()=>rS,getParsedType:()=>zm,instanceof:()=>hAr,intersection:()=>TAr,isAborted:()=>NZ,isAsync:()=>nS,isDirty:()=>jZ,isValid:()=>S2,late:()=>mAr,lazy:()=>kAr,literal:()=>RAr,makeIssue:()=>PB,map:()=>IAr,nan:()=>yAr,nativeEnum:()=>BAr,never:()=>xAr,null:()=>dS,nullable:()=>qAr,number:()=>Rr,object:()=>fe,objectUtil:()=>_9e,oboolean:()=>HAr,onumber:()=>zAr,optional:()=>UAr,ostring:()=>LAr,pipeline:()=>DAr,preprocess:()=>MAr,promise:()=>NAr,quotelessJson:()=>HEr,record:()=>Qt,set:()=>OAr,setErrorMap:()=>$Er,strictObject:()=>AAr,string:()=>L,symbol:()=>_Ar,transformer:()=>jAr,tuple:()=>PAr,undefined:()=>vAr,union:()=>lS,unknown:()=>wAr,util:()=>Xt,void:()=>EAr});var Xt;(function(e){e.assertEqual=i=>{};function t(i){}e.assertIs=t;function r(i){throw new Error}e.assertNever=r,e.arrayToEnum=i=>{let o={};for(let s of i)o[s]=s;return o},e.getValidEnumValues=i=>{let o=e.objectKeys(i).filter(a=>typeof i[i[a]]!="number"),s={};for(let a of o)s[a]=i[a];return e.objectValues(s)},e.objectValues=i=>e.objectKeys(i).map(function(o){return i[o]}),e.objectKeys=typeof Object.keys=="function"?i=>Object.keys(i):i=>{let o=[];for(let s in i)Object.prototype.hasOwnProperty.call(i,s)&&o.push(s);return o},e.find=(i,o)=>{for(let s of i)if(o(s))return s},e.isInteger=typeof Number.isInteger=="function"?i=>Number.isInteger(i):i=>typeof i=="number"&&Number.isFinite(i)&&Math.floor(i)===i;function n(i,o=" | "){return i.map(s=>typeof s=="string"?`'${s}'`:s).join(o)}e.joinValues=n,e.jsonStringifyReplacer=(i,o)=>typeof o=="bigint"?o.toString():o})(Xt||(Xt={}));var _9e;(function(e){e.mergeShapes=(t,r)=>({...t,...r})})(_9e||(_9e={}));var ke=Xt.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),zm=e=>{switch(typeof e){case"undefined":return ke.undefined;case"string":return ke.string;case"number":return Number.isNaN(e)?ke.nan:ke.number;case"boolean":return ke.boolean;case"function":return ke.function;case"bigint":return ke.bigint;case"symbol":return ke.symbol;case"object":return Array.isArray(e)?ke.array:e===null?ke.null:e.then&&typeof e.then=="function"&&e.catch&&typeof e.catch=="function"?ke.promise:typeof Map<"u"&&e instanceof Map?ke.map:typeof Set<"u"&&e instanceof Set?ke.set:typeof Date<"u"&&e instanceof Date?ke.date:ke.object;default:return ke.unknown}};var ye=Xt.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]),HEr=e=>JSON.stringify(e,null,2).replace(/"([^"]+)":/g,"$1:"),Zc=class e extends Error{get errors(){return this.issues}constructor(t){super(),this.issues=[],this.addIssue=n=>{this.issues=[...this.issues,n]},this.addIssues=(n=[])=>{this.issues=[...this.issues,...n]};let r=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,r):this.__proto__=r,this.name="ZodError",this.issues=t}format(t){let r=t||function(o){return o.message},n={_errors:[]},i=o=>{for(let s of o.issues)if(s.code==="invalid_union")s.unionErrors.map(i);else if(s.code==="invalid_return_type")i(s.returnTypeError);else if(s.code==="invalid_arguments")i(s.argumentsError);else if(s.path.length===0)n._errors.push(r(s));else{let a=n,c=0;for(;c<s.path.length;){let u=s.path[c];c===s.path.length-1?(a[u]=a[u]||{_errors:[]},a[u]._errors.push(r(s))):a[u]=a[u]||{_errors:[]},a=a[u],c++}}};return i(this),n}static assert(t){if(!(t instanceof e))throw new Error(`Not a ZodError: ${t}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,Xt.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(t=r=>r.message){let r={},n=[];for(let i of this.issues)if(i.path.length>0){let o=i.path[0];r[o]=r[o]||[],r[o].push(t(i))}else n.push(t(i));return{formErrors:n,fieldErrors:r}}get formErrors(){return this.flatten()}};Zc.create=e=>new Zc(e);var FEr=(e,t)=>{let r;switch(e.code){case ye.invalid_type:e.received===ke.undefined?r="Required":r=`Expected ${e.expected}, received ${e.received}`;break;case ye.invalid_literal:r=`Invalid literal value, expected ${JSON.stringify(e.expected,Xt.jsonStringifyReplacer)}`;break;case ye.unrecognized_keys:r=`Unrecognized key(s) in object: ${Xt.joinValues(e.keys,", ")}`;break;case ye.invalid_union:r="Invalid input";break;case ye.invalid_union_discriminator:r=`Invalid discriminator value. Expected ${Xt.joinValues(e.options)}`;break;case ye.invalid_enum_value:r=`Invalid enum value. Expected ${Xt.joinValues(e.options)}, received '${e.received}'`;break;case ye.invalid_arguments:r="Invalid function arguments";break;case ye.invalid_return_type:r="Invalid function return type";break;case ye.invalid_date:r="Invalid date";break;case ye.invalid_string:typeof e.validation=="object"?"includes"in e.validation?(r=`Invalid input: must include "${e.validation.includes}"`,typeof e.validation.position=="number"&&(r=`${r} at one or more positions greater than or equal to ${e.validation.position}`)):"startsWith"in e.validation?r=`Invalid input: must start with "${e.validation.startsWith}"`:"endsWith"in e.validation?r=`Invalid input: must end with "${e.validation.endsWith}"`:Xt.assertNever(e.validation):e.validation!=="regex"?r=`Invalid ${e.validation}`:r="Invalid";break;case ye.too_small:e.type==="array"?r=`Array must contain ${e.exact?"exactly":e.inclusive?"at least":"more than"} ${e.minimum} element(s)`:e.type==="string"?r=`String must contain ${e.exact?"exactly":e.inclusive?"at least":"over"} ${e.minimum} character(s)`:e.type==="number"?r=`Number must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${e.minimum}`:e.type==="bigint"?r=`Number must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${e.minimum}`:e.type==="date"?r=`Date must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(e.minimum))}`:r="Invalid input";break;case ye.too_big:e.type==="array"?r=`Array must contain ${e.exact?"exactly":e.inclusive?"at most":"less than"} ${e.maximum} element(s)`:e.type==="string"?r=`String must contain ${e.exact?"exactly":e.inclusive?"at most":"under"} ${e.maximum} character(s)`:e.type==="number"?r=`Number must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:e.type==="bigint"?r=`BigInt must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:e.type==="date"?r=`Date must be ${e.exact?"exactly":e.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(e.maximum))}`:r="Invalid input";break;case ye.custom:r="Invalid input";break;case ye.invalid_intersection_types:r="Intersection results could not be merged";break;case ye.not_multiple_of:r=`Number must be a multiple of ${e.multipleOf}`;break;case ye.not_finite:r="Number must be finite";break;default:r=t.defaultError,Xt.assertNever(e)}return{message:r}},mh=FEr;var C1t=mh;function $Er(e){C1t=e}function rS(){return C1t}var PB=e=>{let{data:t,path:r,errorMaps:n,issueData:i}=e,o=[...r,...i.path||[]],s={...i,path:o};if(i.message!==void 0)return{...i,path:o,message:i.message};let a="",c=n.filter(u=>!!u).slice().reverse();for(let u of c)a=u(s,{data:t,defaultError:a}).message;return{...i,path:o,message:a}},VEr=[];function Se(e,t){let r=rS(),n=PB({issueData:t,data:e.data,path:e.path,errorMaps:[e.common.contextualErrorMap,e.schemaErrorMap,r,r===mh?void 0:mh].filter(i=>!!i)});e.common.issues.push(n)}var Rs=class e{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(t,r){let n=[];for(let i of r){if(i.status==="aborted")return gt;i.status==="dirty"&&t.dirty(),n.push(i.value)}return{status:t.value,value:n}}static async mergeObjectAsync(t,r){let n=[];for(let i of r){let o=await i.key,s=await i.value;n.push({key:o,value:s})}return e.mergeObjectSync(t,n)}static mergeObjectSync(t,r){let n={};for(let i of r){let{key:o,value:s}=i;if(o.status==="aborted"||s.status==="aborted")return gt;o.status==="dirty"&&t.dirty(),s.status==="dirty"&&t.dirty(),o.value!=="__proto__"&&(typeof s.value<"u"||i.alwaysSet)&&(n[o.value]=s.value)}return{status:t.value,value:n}}},gt=Object.freeze({status:"aborted"}),v4=e=>({status:"dirty",value:e}),ha=e=>({status:"valid",value:e}),NZ=e=>e.status==="aborted",jZ=e=>e.status==="dirty",S2=e=>e.status==="valid",nS=e=>typeof Promise<"u"&&e instanceof Promise;var Qe;(function(e){e.errToObj=t=>typeof t=="string"?{message:t}:t||{},e.toString=t=>typeof t=="string"?t:t?.message})(Qe||(Qe={}));var al=class{constructor(t,r,n,i){this._cachedPath=[],this.parent=t,this.data=r,this._path=n,this._key=i}get path(){return this._cachedPath.length||(Array.isArray(this._key)?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}},k1t=(e,t)=>{if(S2(t))return{success:!0,data:t.value};if(!e.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;let r=new Zc(e.common.issues);return this._error=r,this._error}}};function Ut(e){if(!e)return{};let{errorMap:t,invalid_type_error:r,required_error:n,description:i}=e;if(t&&(r||n))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return t?{errorMap:t,description:i}:{errorMap:(s,a)=>{let{message:c}=e;return s.code==="invalid_enum_value"?{message:c??a.defaultError}:typeof a.data>"u"?{message:c??n??a.defaultError}:s.code!=="invalid_type"?{message:a.defaultError}:{message:c??r??a.defaultError}},description:i}}var Lt=class{get description(){return this._def.description}_getType(t){return zm(t.data)}_getOrReturnCtx(t,r){return r||{common:t.parent.common,data:t.data,parsedType:zm(t.data),schemaErrorMap:this._def.errorMap,path:t.path,parent:t.parent}}_processInputParams(t){return{status:new Rs,ctx:{common:t.parent.common,data:t.data,parsedType:zm(t.data),schemaErrorMap:this._def.errorMap,path:t.path,parent:t.parent}}}_parseSync(t){let r=this._parse(t);if(nS(r))throw new Error("Synchronous parse encountered promise.");return r}_parseAsync(t){let r=this._parse(t);return Promise.resolve(r)}parse(t,r){let n=this.safeParse(t,r);if(n.success)return n.data;throw n.error}safeParse(t,r){let n={common:{issues:[],async:r?.async??!1,contextualErrorMap:r?.errorMap},path:r?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:zm(t)},i=this._parseSync({data:t,path:n.path,parent:n});return k1t(n,i)}"~validate"(t){let r={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:zm(t)};if(!this["~standard"].async)try{let n=this._parseSync({data:t,path:[],parent:r});return S2(n)?{value:n.value}:{issues:r.common.issues}}catch(n){n?.message?.toLowerCase()?.includes("encountered")&&(this["~standard"].async=!0),r.common={issues:[],async:!0}}return this._parseAsync({data:t,path:[],parent:r}).then(n=>S2(n)?{value:n.value}:{issues:r.common.issues})}async parseAsync(t,r){let n=await this.safeParseAsync(t,r);if(n.success)return n.data;throw n.error}async safeParseAsync(t,r){let n={common:{issues:[],contextualErrorMap:r?.errorMap,async:!0},path:r?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:zm(t)},i=this._parse({data:t,path:n.path,parent:n}),o=await(nS(i)?i:Promise.resolve(i));return k1t(n,o)}refine(t,r){let n=i=>typeof r=="string"||typeof r>"u"?{message:r}:typeof r=="function"?r(i):r;return this._refinement((i,o)=>{let s=t(i),a=()=>o.addIssue({code:ye.custom,...n(i)});return typeof Promise<"u"&&s instanceof Promise?s.then(c=>c?!0:(a(),!1)):s?!0:(a(),!1)})}refinement(t,r){return this._refinement((n,i)=>t(n)?!0:(i.addIssue(typeof r=="function"?r(n,i):r),!1))}_refinement(t){return new cl({schema:this,typeName:Et.ZodEffects,effect:{type:"refinement",refinement:t}})}superRefine(t){return this._refinement(t)}constructor(t){this.spa=this.safeParseAsync,this._def=t,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:r=>this["~validate"](r)}}optional(){return sl.create(this,this._def)}nullable(){return Fm.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return gh.create(this)}promise(){return I2.create(this,this._def)}or(t){return P4.create([this,t],this._def)}and(t){return I4.create(this,t,this._def)}transform(t){return new cl({...Ut(this._def),schema:this,typeName:Et.ZodEffects,effect:{type:"transform",transform:t}})}default(t){let r=typeof t=="function"?t:()=>t;return new B4({...Ut(this._def),innerType:this,defaultValue:r,typeName:Et.ZodDefault})}brand(){return new IB({typeName:Et.ZodBranded,type:this,...Ut(this._def)})}catch(t){let r=typeof t=="function"?t:()=>t;return new N4({...Ut(this._def),innerType:this,catchValue:r,typeName:Et.ZodCatch})}describe(t){let r=this.constructor;return new r({...this._def,description:t})}pipe(t){return OB.create(this,t)}readonly(){return j4.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},KEr=/^c[^\s-]{8,}$/i,WEr=/^[0-9a-z]+$/,GEr=/^[0-9A-HJKMNP-TV-Z]{26}$/i,JEr=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,YEr=/^[a-z0-9_-]{21}$/i,ZEr=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,XEr=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,QEr=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,eAr="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",v9e,tAr=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,rAr=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,nAr=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,iAr=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,oAr=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,sAr=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,B1t="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",aAr=new RegExp(`^${B1t}$`);function N1t(e){let t="[0-5]\\d";e.precision?t=`${t}\\.\\d{${e.precision}}`:e.precision==null&&(t=`${t}(\\.\\d+)?`);let r=e.precision?"+":"?";return`([01]\\d|2[0-3]):[0-5]\\d(:${t})${r}`}function cAr(e){return new RegExp(`^${N1t(e)}$`)}function j1t(e){let t=`${B1t}T${N1t(e)}`,r=[];return r.push(e.local?"Z?":"Z"),e.offset&&r.push("([+-]\\d{2}:?\\d{2})"),t=`${t}(${r.join("|")})`,new RegExp(`^${t}$`)}function uAr(e,t){return!!((t==="v4"||!t)&&tAr.test(e)||(t==="v6"||!t)&&nAr.test(e))}function dAr(e,t){if(!ZEr.test(e))return!1;try{let[r]=e.split(".");if(!r)return!1;let n=r.replace(/-/g,"+").replace(/_/g,"/").padEnd(r.length+(4-r.length%4)%4,"="),i=JSON.parse(atob(n));return!(typeof i!="object"||i===null||"typ"in i&&i?.typ!=="JWT"||!i.alg||t&&i.alg!==t)}catch{return!1}}function lAr(e,t){return!!((t==="v4"||!t)&&rAr.test(e)||(t==="v6"||!t)&&iAr.test(e))}var T2=class e extends Lt{_parse(t){if(this._def.coerce&&(t.data=String(t.data)),this._getType(t)!==ke.string){let o=this._getOrReturnCtx(t);return Se(o,{code:ye.invalid_type,expected:ke.string,received:o.parsedType}),gt}let n=new Rs,i;for(let o of this._def.checks)if(o.kind==="min")t.data.length<o.value&&(i=this._getOrReturnCtx(t,i),Se(i,{code:ye.too_small,minimum:o.value,type:"string",inclusive:!0,exact:!1,message:o.message}),n.dirty());else if(o.kind==="max")t.data.length>o.value&&(i=this._getOrReturnCtx(t,i),Se(i,{code:ye.too_big,maximum:o.value,type:"string",inclusive:!0,exact:!1,message:o.message}),n.dirty());else if(o.kind==="length"){let s=t.data.length>o.value,a=t.data.length<o.value;(s||a)&&(i=this._getOrReturnCtx(t,i),s?Se(i,{code:ye.too_big,maximum:o.value,type:"string",inclusive:!0,exact:!0,message:o.message}):a&&Se(i,{code:ye.too_small,minimum:o.value,type:"string",inclusive:!0,exact:!0,message:o.message}),n.dirty())}else if(o.kind==="email")QEr.test(t.data)||(i=this._getOrReturnCtx(t,i),Se(i,{validation:"email",code:ye.invalid_string,message:o.message}),n.dirty());else if(o.kind==="emoji")v9e||(v9e=new RegExp(eAr,"u")),v9e.test(t.data)||(i=this._getOrReturnCtx(t,i),Se(i,{validation:"emoji",code:ye.invalid_string,message:o.message}),n.dirty());else if(o.kind==="uuid")JEr.test(t.data)||(i=this._getOrReturnCtx(t,i),Se(i,{validation:"uuid",code:ye.invalid_string,message:o.message}),n.dirty());else if(o.kind==="nanoid")YEr.test(t.data)||(i=this._getOrReturnCtx(t,i),Se(i,{validation:"nanoid",code:ye.invalid_string,message:o.message}),n.dirty());else if(o.kind==="cuid")KEr.test(t.data)||(i=this._getOrReturnCtx(t,i),Se(i,{validation:"cuid",code:ye.invalid_string,message:o.message}),n.dirty());else if(o.kind==="cuid2")WEr.test(t.data)||(i=this._getOrReturnCtx(t,i),Se(i,{validation:"cuid2",code:ye.invalid_string,message:o.message}),n.dirty());else if(o.kind==="ulid")GEr.test(t.data)||(i=this._getOrReturnCtx(t,i),Se(i,{validation:"ulid",code:ye.invalid_string,message:o.message}),n.dirty());else if(o.kind==="url")try{new URL(t.data)}catch{i=this._getOrReturnCtx(t,i),Se(i,{validation:"url",code:ye.invalid_string,message:o.message}),n.dirty()}else o.kind==="regex"?(o.regex.lastIndex=0,o.regex.test(t.data)||(i=this._getOrReturnCtx(t,i),Se(i,{validation:"regex",code:ye.invalid_string,message:o.message}),n.dirty())):o.kind==="trim"?t.data=t.data.trim():o.kind==="includes"?t.data.includes(o.value,o.position)||(i=this._getOrReturnCtx(t,i),Se(i,{code:ye.invalid_string,validation:{includes:o.value,position:o.position},message:o.message}),n.dirty()):o.kind==="toLowerCase"?t.data=t.data.toLowerCase():o.kind==="toUpperCase"?t.data=t.data.toUpperCase():o.kind==="startsWith"?t.data.startsWith(o.value)||(i=this._getOrReturnCtx(t,i),Se(i,{code:ye.invalid_string,validation:{startsWith:o.value},message:o.message}),n.dirty()):o.kind==="endsWith"?t.data.endsWith(o.value)||(i=this._getOrReturnCtx(t,i),Se(i,{code:ye.invalid_string,validation:{endsWith:o.value},message:o.message}),n.dirty()):o.kind==="datetime"?j1t(o).test(t.data)||(i=this._getOrReturnCtx(t,i),Se(i,{code:ye.invalid_string,validation:"datetime",message:o.message}),n.dirty()):o.kind==="date"?aAr.test(t.data)||(i=this._getOrReturnCtx(t,i),Se(i,{code:ye.invalid_string,validation:"date",message:o.message}),n.dirty()):o.kind==="time"?cAr(o).test(t.data)||(i=this._getOrReturnCtx(t,i),Se(i,{code:ye.invalid_string,validation:"time",message:o.message}),n.dirty()):o.kind==="duration"?XEr.test(t.data)||(i=this._getOrReturnCtx(t,i),Se(i,{validation:"duration",code:ye.invalid_string,message:o.message}),n.dirty()):o.kind==="ip"?uAr(t.data,o.version)||(i=this._getOrReturnCtx(t,i),Se(i,{validation:"ip",code:ye.invalid_string,message:o.message}),n.dirty()):o.kind==="jwt"?dAr(t.data,o.alg)||(i=this._getOrReturnCtx(t,i),Se(i,{validation:"jwt",code:ye.invalid_string,message:o.message}),n.dirty()):o.kind==="cidr"?lAr(t.data,o.version)||(i=this._getOrReturnCtx(t,i),Se(i,{validation:"cidr",code:ye.invalid_string,message:o.message}),n.dirty()):o.kind==="base64"?oAr.test(t.data)||(i=this._getOrReturnCtx(t,i),Se(i,{validation:"base64",code:ye.invalid_string,message:o.message}),n.dirty()):o.kind==="base64url"?sAr.test(t.data)||(i=this._getOrReturnCtx(t,i),Se(i,{validation:"base64url",code:ye.invalid_string,message:o.message}),n.dirty()):Xt.assertNever(o);return{status:n.value,value:t.data}}_regex(t,r,n){return this.refinement(i=>t.test(i),{validation:r,code:ye.invalid_string,...Qe.errToObj(n)})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}email(t){return this._addCheck({kind:"email",...Qe.errToObj(t)})}url(t){return this._addCheck({kind:"url",...Qe.errToObj(t)})}emoji(t){return this._addCheck({kind:"emoji",...Qe.errToObj(t)})}uuid(t){return this._addCheck({kind:"uuid",...Qe.errToObj(t)})}nanoid(t){return this._addCheck({kind:"nanoid",...Qe.errToObj(t)})}cuid(t){return this._addCheck({kind:"cuid",...Qe.errToObj(t)})}cuid2(t){return this._addCheck({kind:"cuid2",...Qe.errToObj(t)})}ulid(t){return this._addCheck({kind:"ulid",...Qe.errToObj(t)})}base64(t){return this._addCheck({kind:"base64",...Qe.errToObj(t)})}base64url(t){return this._addCheck({kind:"base64url",...Qe.errToObj(t)})}jwt(t){return this._addCheck({kind:"jwt",...Qe.errToObj(t)})}ip(t){return this._addCheck({kind:"ip",...Qe.errToObj(t)})}cidr(t){return this._addCheck({kind:"cidr",...Qe.errToObj(t)})}datetime(t){return typeof t=="string"?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:t}):this._addCheck({kind:"datetime",precision:typeof t?.precision>"u"?null:t?.precision,offset:t?.offset??!1,local:t?.local??!1,...Qe.errToObj(t?.message)})}date(t){return this._addCheck({kind:"date",message:t})}time(t){return typeof t=="string"?this._addCheck({kind:"time",precision:null,message:t}):this._addCheck({kind:"time",precision:typeof t?.precision>"u"?null:t?.precision,...Qe.errToObj(t?.message)})}duration(t){return this._addCheck({kind:"duration",...Qe.errToObj(t)})}regex(t,r){return this._addCheck({kind:"regex",regex:t,...Qe.errToObj(r)})}includes(t,r){return this._addCheck({kind:"includes",value:t,position:r?.position,...Qe.errToObj(r?.message)})}startsWith(t,r){return this._addCheck({kind:"startsWith",value:t,...Qe.errToObj(r)})}endsWith(t,r){return this._addCheck({kind:"endsWith",value:t,...Qe.errToObj(r)})}min(t,r){return this._addCheck({kind:"min",value:t,...Qe.errToObj(r)})}max(t,r){return this._addCheck({kind:"max",value:t,...Qe.errToObj(r)})}length(t,r){return this._addCheck({kind:"length",value:t,...Qe.errToObj(r)})}nonempty(t){return this.min(1,Qe.errToObj(t))}trim(){return new e({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new e({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new e({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(t=>t.kind==="datetime")}get isDate(){return!!this._def.checks.find(t=>t.kind==="date")}get isTime(){return!!this._def.checks.find(t=>t.kind==="time")}get isDuration(){return!!this._def.checks.find(t=>t.kind==="duration")}get isEmail(){return!!this._def.checks.find(t=>t.kind==="email")}get isURL(){return!!this._def.checks.find(t=>t.kind==="url")}get isEmoji(){return!!this._def.checks.find(t=>t.kind==="emoji")}get isUUID(){return!!this._def.checks.find(t=>t.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(t=>t.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(t=>t.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(t=>t.kind==="cuid2")}get isULID(){return!!this._def.checks.find(t=>t.kind==="ulid")}get isIP(){return!!this._def.checks.find(t=>t.kind==="ip")}get isCIDR(){return!!this._def.checks.find(t=>t.kind==="cidr")}get isBase64(){return!!this._def.checks.find(t=>t.kind==="base64")}get isBase64url(){return!!this._def.checks.find(t=>t.kind==="base64url")}get minLength(){let t=null;for(let r of this._def.checks)r.kind==="min"&&(t===null||r.value>t)&&(t=r.value);return t}get maxLength(){let t=null;for(let r of this._def.checks)r.kind==="max"&&(t===null||r.value<t)&&(t=r.value);return t}};T2.create=e=>new T2({checks:[],typeName:Et.ZodString,coerce:e?.coerce??!1,...Ut(e)});function pAr(e,t){let r=(e.toString().split(".")[1]||"").length,n=(t.toString().split(".")[1]||"").length,i=r>n?r:n,o=Number.parseInt(e.toFixed(i).replace(".","")),s=Number.parseInt(t.toFixed(i).replace(".",""));return o%s/10**i}var w4=class e extends Lt{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(t){if(this._def.coerce&&(t.data=Number(t.data)),this._getType(t)!==ke.number){let o=this._getOrReturnCtx(t);return Se(o,{code:ye.invalid_type,expected:ke.number,received:o.parsedType}),gt}let n,i=new Rs;for(let o of this._def.checks)o.kind==="int"?Xt.isInteger(t.data)||(n=this._getOrReturnCtx(t,n),Se(n,{code:ye.invalid_type,expected:"integer",received:"float",message:o.message}),i.dirty()):o.kind==="min"?(o.inclusive?t.data<o.value:t.data<=o.value)&&(n=this._getOrReturnCtx(t,n),Se(n,{code:ye.too_small,minimum:o.value,type:"number",inclusive:o.inclusive,exact:!1,message:o.message}),i.dirty()):o.kind==="max"?(o.inclusive?t.data>o.value:t.data>=o.value)&&(n=this._getOrReturnCtx(t,n),Se(n,{code:ye.too_big,maximum:o.value,type:"number",inclusive:o.inclusive,exact:!1,message:o.message}),i.dirty()):o.kind==="multipleOf"?pAr(t.data,o.value)!==0&&(n=this._getOrReturnCtx(t,n),Se(n,{code:ye.not_multiple_of,multipleOf:o.value,message:o.message}),i.dirty()):o.kind==="finite"?Number.isFinite(t.data)||(n=this._getOrReturnCtx(t,n),Se(n,{code:ye.not_finite,message:o.message}),i.dirty()):Xt.assertNever(o);return{status:i.value,value:t.data}}gte(t,r){return this.setLimit("min",t,!0,Qe.toString(r))}gt(t,r){return this.setLimit("min",t,!1,Qe.toString(r))}lte(t,r){return this.setLimit("max",t,!0,Qe.toString(r))}lt(t,r){return this.setLimit("max",t,!1,Qe.toString(r))}setLimit(t,r,n,i){return new e({...this._def,checks:[...this._def.checks,{kind:t,value:r,inclusive:n,message:Qe.toString(i)}]})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}int(t){return this._addCheck({kind:"int",message:Qe.toString(t)})}positive(t){return this._addCheck({kind:"min",value:0,inclusive:!1,message:Qe.toString(t)})}negative(t){return this._addCheck({kind:"max",value:0,inclusive:!1,message:Qe.toString(t)})}nonpositive(t){return this._addCheck({kind:"max",value:0,inclusive:!0,message:Qe.toString(t)})}nonnegative(t){return this._addCheck({kind:"min",value:0,inclusive:!0,message:Qe.toString(t)})}multipleOf(t,r){return this._addCheck({kind:"multipleOf",value:t,message:Qe.toString(r)})}finite(t){return this._addCheck({kind:"finite",message:Qe.toString(t)})}safe(t){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:Qe.toString(t)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:Qe.toString(t)})}get minValue(){let t=null;for(let r of this._def.checks)r.kind==="min"&&(t===null||r.value>t)&&(t=r.value);return t}get maxValue(){let t=null;for(let r of this._def.checks)r.kind==="max"&&(t===null||r.value<t)&&(t=r.value);return t}get isInt(){return!!this._def.checks.find(t=>t.kind==="int"||t.kind==="multipleOf"&&Xt.isInteger(t.value))}get isFinite(){let t=null,r=null;for(let n of this._def.checks){if(n.kind==="finite"||n.kind==="int"||n.kind==="multipleOf")return!0;n.kind==="min"?(r===null||n.value>r)&&(r=n.value):n.kind==="max"&&(t===null||n.value<t)&&(t=n.value)}return Number.isFinite(r)&&Number.isFinite(t)}};w4.create=e=>new w4({checks:[],typeName:Et.ZodNumber,coerce:e?.coerce||!1,...Ut(e)});var x4=class e extends Lt{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(t){if(this._def.coerce)try{t.data=BigInt(t.data)}catch{return this._getInvalidInput(t)}if(this._getType(t)!==ke.bigint)return this._getInvalidInput(t);let n,i=new Rs;for(let o of this._def.checks)o.kind==="min"?(o.inclusive?t.data<o.value:t.data<=o.value)&&(n=this._getOrReturnCtx(t,n),Se(n,{code:ye.too_small,type:"bigint",minimum:o.value,inclusive:o.inclusive,message:o.message}),i.dirty()):o.kind==="max"?(o.inclusive?t.data>o.value:t.data>=o.value)&&(n=this._getOrReturnCtx(t,n),Se(n,{code:ye.too_big,type:"bigint",maximum:o.value,inclusive:o.inclusive,message:o.message}),i.dirty()):o.kind==="multipleOf"?t.data%o.value!==BigInt(0)&&(n=this._getOrReturnCtx(t,n),Se(n,{code:ye.not_multiple_of,multipleOf:o.value,message:o.message}),i.dirty()):Xt.assertNever(o);return{status:i.value,value:t.data}}_getInvalidInput(t){let r=this._getOrReturnCtx(t);return Se(r,{code:ye.invalid_type,expected:ke.bigint,received:r.parsedType}),gt}gte(t,r){return this.setLimit("min",t,!0,Qe.toString(r))}gt(t,r){return this.setLimit("min",t,!1,Qe.toString(r))}lte(t,r){return this.setLimit("max",t,!0,Qe.toString(r))}lt(t,r){return this.setLimit("max",t,!1,Qe.toString(r))}setLimit(t,r,n,i){return new e({...this._def,checks:[...this._def.checks,{kind:t,value:r,inclusive:n,message:Qe.toString(i)}]})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}positive(t){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:Qe.toString(t)})}negative(t){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:Qe.toString(t)})}nonpositive(t){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:Qe.toString(t)})}nonnegative(t){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:Qe.toString(t)})}multipleOf(t,r){return this._addCheck({kind:"multipleOf",value:t,message:Qe.toString(r)})}get minValue(){let t=null;for(let r of this._def.checks)r.kind==="min"&&(t===null||r.value>t)&&(t=r.value);return t}get maxValue(){let t=null;for(let r of this._def.checks)r.kind==="max"&&(t===null||r.value<t)&&(t=r.value);return t}};x4.create=e=>new x4({checks:[],typeName:Et.ZodBigInt,coerce:e?.coerce??!1,...Ut(e)});var E4=class extends Lt{_parse(t){if(this._def.coerce&&(t.data=!!t.data),this._getType(t)!==ke.boolean){let n=this._getOrReturnCtx(t);return Se(n,{code:ye.invalid_type,expected:ke.boolean,received:n.parsedType}),gt}return ha(t.data)}};E4.create=e=>new E4({typeName:Et.ZodBoolean,coerce:e?.coerce||!1,...Ut(e)});var A4=class e extends Lt{_parse(t){if(this._def.coerce&&(t.data=new Date(t.data)),this._getType(t)!==ke.date){let o=this._getOrReturnCtx(t);return Se(o,{code:ye.invalid_type,expected:ke.date,received:o.parsedType}),gt}if(Number.isNaN(t.data.getTime())){let o=this._getOrReturnCtx(t);return Se(o,{code:ye.invalid_date}),gt}let n=new Rs,i;for(let o of this._def.checks)o.kind==="min"?t.data.getTime()<o.value&&(i=this._getOrReturnCtx(t,i),Se(i,{code:ye.too_small,message:o.message,inclusive:!0,exact:!1,minimum:o.value,type:"date"}),n.dirty()):o.kind==="max"?t.data.getTime()>o.value&&(i=this._getOrReturnCtx(t,i),Se(i,{code:ye.too_big,message:o.message,inclusive:!0,exact:!1,maximum:o.value,type:"date"}),n.dirty()):Xt.assertNever(o);return{status:n.value,value:new Date(t.data.getTime())}}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}min(t,r){return this._addCheck({kind:"min",value:t.getTime(),message:Qe.toString(r)})}max(t,r){return this._addCheck({kind:"max",value:t.getTime(),message:Qe.toString(r)})}get minDate(){let t=null;for(let r of this._def.checks)r.kind==="min"&&(t===null||r.value>t)&&(t=r.value);return t!=null?new Date(t):null}get maxDate(){let t=null;for(let r of this._def.checks)r.kind==="max"&&(t===null||r.value<t)&&(t=r.value);return t!=null?new Date(t):null}};A4.create=e=>new A4({checks:[],coerce:e?.coerce||!1,typeName:Et.ZodDate,...Ut(e)});var oS=class extends Lt{_parse(t){if(this._getType(t)!==ke.symbol){let n=this._getOrReturnCtx(t);return Se(n,{code:ye.invalid_type,expected:ke.symbol,received:n.parsedType}),gt}return ha(t.data)}};oS.create=e=>new oS({typeName:Et.ZodSymbol,...Ut(e)});var S4=class extends Lt{_parse(t){if(this._getType(t)!==ke.undefined){let n=this._getOrReturnCtx(t);return Se(n,{code:ye.invalid_type,expected:ke.undefined,received:n.parsedType}),gt}return ha(t.data)}};S4.create=e=>new S4({typeName:Et.ZodUndefined,...Ut(e)});var T4=class extends Lt{_parse(t){if(this._getType(t)!==ke.null){let n=this._getOrReturnCtx(t);return Se(n,{code:ye.invalid_type,expected:ke.null,received:n.parsedType}),gt}return ha(t.data)}};T4.create=e=>new T4({typeName:Et.ZodNull,...Ut(e)});var P2=class extends Lt{constructor(){super(...arguments),this._any=!0}_parse(t){return ha(t.data)}};P2.create=e=>new P2({typeName:Et.ZodAny,...Ut(e)});var yh=class extends Lt{constructor(){super(...arguments),this._unknown=!0}_parse(t){return ha(t.data)}};yh.create=e=>new yh({typeName:Et.ZodUnknown,...Ut(e)});var kp=class extends Lt{_parse(t){let r=this._getOrReturnCtx(t);return Se(r,{code:ye.invalid_type,expected:ke.never,received:r.parsedType}),gt}};kp.create=e=>new kp({typeName:Et.ZodNever,...Ut(e)});var sS=class extends Lt{_parse(t){if(this._getType(t)!==ke.undefined){let n=this._getOrReturnCtx(t);return Se(n,{code:ye.invalid_type,expected:ke.void,received:n.parsedType}),gt}return ha(t.data)}};sS.create=e=>new sS({typeName:Et.ZodVoid,...Ut(e)});var gh=class e extends Lt{_parse(t){let{ctx:r,status:n}=this._processInputParams(t),i=this._def;if(r.parsedType!==ke.array)return Se(r,{code:ye.invalid_type,expected:ke.array,received:r.parsedType}),gt;if(i.exactLength!==null){let s=r.data.length>i.exactLength.value,a=r.data.length<i.exactLength.value;(s||a)&&(Se(r,{code:s?ye.too_big:ye.too_small,minimum:a?i.exactLength.value:void 0,maximum:s?i.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:i.exactLength.message}),n.dirty())}if(i.minLength!==null&&r.data.length<i.minLength.value&&(Se(r,{code:ye.too_small,minimum:i.minLength.value,type:"array",inclusive:!0,exact:!1,message:i.minLength.message}),n.dirty()),i.maxLength!==null&&r.data.length>i.maxLength.value&&(Se(r,{code:ye.too_big,maximum:i.maxLength.value,type:"array",inclusive:!0,exact:!1,message:i.maxLength.message}),n.dirty()),r.common.async)return Promise.all([...r.data].map((s,a)=>i.type._parseAsync(new al(r,s,r.path,a)))).then(s=>Rs.mergeArray(n,s));let o=[...r.data].map((s,a)=>i.type._parseSync(new al(r,s,r.path,a)));return Rs.mergeArray(n,o)}get element(){return this._def.type}min(t,r){return new e({...this._def,minLength:{value:t,message:Qe.toString(r)}})}max(t,r){return new e({...this._def,maxLength:{value:t,message:Qe.toString(r)}})}length(t,r){return new e({...this._def,exactLength:{value:t,message:Qe.toString(r)}})}nonempty(t){return this.min(1,t)}};gh.create=(e,t)=>new gh({type:e,minLength:null,maxLength:null,exactLength:null,typeName:Et.ZodArray,...Ut(t)});function iS(e){if(e instanceof Xc){let t={};for(let r in e.shape){let n=e.shape[r];t[r]=sl.create(iS(n))}return new Xc({...e._def,shape:()=>t})}else return e instanceof gh?new gh({...e._def,type:iS(e.element)}):e instanceof sl?sl.create(iS(e.unwrap())):e instanceof Fm?Fm.create(iS(e.unwrap())):e instanceof Hm?Hm.create(e.items.map(t=>iS(t))):e}var Xc=class e extends Lt{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;let t=this._def.shape(),r=Xt.objectKeys(t);return this._cached={shape:t,keys:r},this._cached}_parse(t){if(this._getType(t)!==ke.object){let u=this._getOrReturnCtx(t);return Se(u,{code:ye.invalid_type,expected:ke.object,received:u.parsedType}),gt}let{status:n,ctx:i}=this._processInputParams(t),{shape:o,keys:s}=this._getCached(),a=[];if(!(this._def.catchall instanceof kp&&this._def.unknownKeys==="strip"))for(let u in i.data)s.includes(u)||a.push(u);let c=[];for(let u of s){let d=o[u],l=i.data[u];c.push({key:{status:"valid",value:u},value:d._parse(new al(i,l,i.path,u)),alwaysSet:u in i.data})}if(this._def.catchall instanceof kp){let u=this._def.unknownKeys;if(u==="passthrough")for(let d of a)c.push({key:{status:"valid",value:d},value:{status:"valid",value:i.data[d]}});else if(u==="strict")a.length>0&&(Se(i,{code:ye.unrecognized_keys,keys:a}),n.dirty());else if(u!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{let u=this._def.catchall;for(let d of a){let l=i.data[d];c.push({key:{status:"valid",value:d},value:u._parse(new al(i,l,i.path,d)),alwaysSet:d in i.data})}}return i.common.async?Promise.resolve().then(async()=>{let u=[];for(let d of c){let l=await d.key,p=await d.value;u.push({key:l,value:p,alwaysSet:d.alwaysSet})}return u}).then(u=>Rs.mergeObjectSync(n,u)):Rs.mergeObjectSync(n,c)}get shape(){return this._def.shape()}strict(t){return Qe.errToObj,new e({...this._def,unknownKeys:"strict",...t!==void 0?{errorMap:(r,n)=>{let i=this._def.errorMap?.(r,n).message??n.defaultError;return r.code==="unrecognized_keys"?{message:Qe.errToObj(t).message??i}:{message:i}}}:{}})}strip(){return new e({...this._def,unknownKeys:"strip"})}passthrough(){return new e({...this._def,unknownKeys:"passthrough"})}extend(t){return new e({...this._def,shape:()=>({...this._def.shape(),...t})})}merge(t){return new e({unknownKeys:t._def.unknownKeys,catchall:t._def.catchall,shape:()=>({...this._def.shape(),...t._def.shape()}),typeName:Et.ZodObject})}setKey(t,r){return this.augment({[t]:r})}catchall(t){return new e({...this._def,catchall:t})}pick(t){let r={};for(let n of Xt.objectKeys(t))t[n]&&this.shape[n]&&(r[n]=this.shape[n]);return new e({...this._def,shape:()=>r})}omit(t){let r={};for(let n of Xt.objectKeys(this.shape))t[n]||(r[n]=this.shape[n]);return new e({...this._def,shape:()=>r})}deepPartial(){return iS(this)}partial(t){let r={};for(let n of Xt.objectKeys(this.shape)){let i=this.shape[n];t&&!t[n]?r[n]=i:r[n]=i.optional()}return new e({...this._def,shape:()=>r})}required(t){let r={};for(let n of Xt.objectKeys(this.shape))if(t&&!t[n])r[n]=this.shape[n];else{let o=this.shape[n];for(;o instanceof sl;)o=o._def.innerType;r[n]=o}return new e({...this._def,shape:()=>r})}keyof(){return U1t(Xt.objectKeys(this.shape))}};Xc.create=(e,t)=>new Xc({shape:()=>e,unknownKeys:"strip",catchall:kp.create(),typeName:Et.ZodObject,...Ut(t)});Xc.strictCreate=(e,t)=>new Xc({shape:()=>e,unknownKeys:"strict",catchall:kp.create(),typeName:Et.ZodObject,...Ut(t)});Xc.lazycreate=(e,t)=>new Xc({shape:e,unknownKeys:"strip",catchall:kp.create(),typeName:Et.ZodObject,...Ut(t)});var P4=class extends Lt{_parse(t){let{ctx:r}=this._processInputParams(t),n=this._def.options;function i(o){for(let a of o)if(a.result.status==="valid")return a.result;for(let a of o)if(a.result.status==="dirty")return r.common.issues.push(...a.ctx.common.issues),a.result;let s=o.map(a=>new Zc(a.ctx.common.issues));return Se(r,{code:ye.invalid_union,unionErrors:s}),gt}if(r.common.async)return Promise.all(n.map(async o=>{let s={...r,common:{...r.common,issues:[]},parent:null};return{result:await o._parseAsync({data:r.data,path:r.path,parent:s}),ctx:s}})).then(i);{let o,s=[];for(let c of n){let u={...r,common:{...r.common,issues:[]},parent:null},d=c._parseSync({data:r.data,path:r.path,parent:u});if(d.status==="valid")return d;d.status==="dirty"&&!o&&(o={result:d,ctx:u}),u.common.issues.length&&s.push(u.common.issues)}if(o)return r.common.issues.push(...o.ctx.common.issues),o.result;let a=s.map(c=>new Zc(c));return Se(r,{code:ye.invalid_union,unionErrors:a}),gt}}get options(){return this._def.options}};P4.create=(e,t)=>new P4({options:e,typeName:Et.ZodUnion,...Ut(t)});var hh=e=>e instanceof O4?hh(e.schema):e instanceof cl?hh(e.innerType()):e instanceof C4?[e.value]:e instanceof k4?e.options:e instanceof R4?Xt.objectValues(e.enum):e instanceof B4?hh(e._def.innerType):e instanceof S4?[void 0]:e instanceof T4?[null]:e instanceof sl?[void 0,...hh(e.unwrap())]:e instanceof Fm?[null,...hh(e.unwrap())]:e instanceof IB||e instanceof j4?hh(e.unwrap()):e instanceof N4?hh(e._def.innerType):[],UZ=class e extends Lt{_parse(t){let{ctx:r}=this._processInputParams(t);if(r.parsedType!==ke.object)return Se(r,{code:ye.invalid_type,expected:ke.object,received:r.parsedType}),gt;let n=this.discriminator,i=r.data[n],o=this.optionsMap.get(i);return o?r.common.async?o._parseAsync({data:r.data,path:r.path,parent:r}):o._parseSync({data:r.data,path:r.path,parent:r}):(Se(r,{code:ye.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[n]}),gt)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(t,r,n){let i=new Map;for(let o of r){let s=hh(o.shape[t]);if(!s.length)throw new Error(`A discriminator value for key \`${t}\` could not be extracted from all schema options`);for(let a of s){if(i.has(a))throw new Error(`Discriminator property ${String(t)} has duplicate value ${String(a)}`);i.set(a,o)}}return new e({typeName:Et.ZodDiscriminatedUnion,discriminator:t,options:r,optionsMap:i,...Ut(n)})}};function w9e(e,t){let r=zm(e),n=zm(t);if(e===t)return{valid:!0,data:e};if(r===ke.object&&n===ke.object){let i=Xt.objectKeys(t),o=Xt.objectKeys(e).filter(a=>i.indexOf(a)!==-1),s={...e,...t};for(let a of o){let c=w9e(e[a],t[a]);if(!c.valid)return{valid:!1};s[a]=c.data}return{valid:!0,data:s}}else if(r===ke.array&&n===ke.array){if(e.length!==t.length)return{valid:!1};let i=[];for(let o=0;o<e.length;o++){let s=e[o],a=t[o],c=w9e(s,a);if(!c.valid)return{valid:!1};i.push(c.data)}return{valid:!0,data:i}}else return r===ke.date&&n===ke.date&&+e==+t?{valid:!0,data:e}:{valid:!1}}var I4=class extends Lt{_parse(t){let{status:r,ctx:n}=this._processInputParams(t),i=(o,s)=>{if(NZ(o)||NZ(s))return gt;let a=w9e(o.value,s.value);return a.valid?((jZ(o)||jZ(s))&&r.dirty(),{status:r.value,value:a.data}):(Se(n,{code:ye.invalid_intersection_types}),gt)};return n.common.async?Promise.all([this._def.left._parseAsync({data:n.data,path:n.path,parent:n}),this._def.right._parseAsync({data:n.data,path:n.path,parent:n})]).then(([o,s])=>i(o,s)):i(this._def.left._parseSync({data:n.data,path:n.path,parent:n}),this._def.right._parseSync({data:n.data,path:n.path,parent:n}))}};I4.create=(e,t,r)=>new I4({left:e,right:t,typeName:Et.ZodIntersection,...Ut(r)});var Hm=class e extends Lt{_parse(t){let{status:r,ctx:n}=this._processInputParams(t);if(n.parsedType!==ke.array)return Se(n,{code:ye.invalid_type,expected:ke.array,received:n.parsedType}),gt;if(n.data.length<this._def.items.length)return Se(n,{code:ye.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),gt;!this._def.rest&&n.data.length>this._def.items.length&&(Se(n,{code:ye.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),r.dirty());let o=[...n.data].map((s,a)=>{let c=this._def.items[a]||this._def.rest;return c?c._parse(new al(n,s,n.path,a)):null}).filter(s=>!!s);return n.common.async?Promise.all(o).then(s=>Rs.mergeArray(r,s)):Rs.mergeArray(r,o)}get items(){return this._def.items}rest(t){return new e({...this._def,rest:t})}};Hm.create=(e,t)=>{if(!Array.isArray(e))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new Hm({items:e,typeName:Et.ZodTuple,rest:null,...Ut(t)})};var qZ=class e extends Lt{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(t){let{status:r,ctx:n}=this._processInputParams(t);if(n.parsedType!==ke.object)return Se(n,{code:ye.invalid_type,expected:ke.object,received:n.parsedType}),gt;let i=[],o=this._def.keyType,s=this._def.valueType;for(let a in n.data)i.push({key:o._parse(new al(n,a,n.path,a)),value:s._parse(new al(n,n.data[a],n.path,a)),alwaysSet:a in n.data});return n.common.async?Rs.mergeObjectAsync(r,i):Rs.mergeObjectSync(r,i)}get element(){return this._def.valueType}static create(t,r,n){return r instanceof Lt?new e({keyType:t,valueType:r,typeName:Et.ZodRecord,...Ut(n)}):new e({keyType:T2.create(),valueType:t,typeName:Et.ZodRecord,...Ut(r)})}},aS=class extends Lt{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(t){let{status:r,ctx:n}=this._processInputParams(t);if(n.parsedType!==ke.map)return Se(n,{code:ye.invalid_type,expected:ke.map,received:n.parsedType}),gt;let i=this._def.keyType,o=this._def.valueType,s=[...n.data.entries()].map(([a,c],u)=>({key:i._parse(new al(n,a,n.path,[u,"key"])),value:o._parse(new al(n,c,n.path,[u,"value"]))}));if(n.common.async){let a=new Map;return Promise.resolve().then(async()=>{for(let c of s){let u=await c.key,d=await c.value;if(u.status==="aborted"||d.status==="aborted")return gt;(u.status==="dirty"||d.status==="dirty")&&r.dirty(),a.set(u.value,d.value)}return{status:r.value,value:a}})}else{let a=new Map;for(let c of s){let u=c.key,d=c.value;if(u.status==="aborted"||d.status==="aborted")return gt;(u.status==="dirty"||d.status==="dirty")&&r.dirty(),a.set(u.value,d.value)}return{status:r.value,value:a}}}};aS.create=(e,t,r)=>new aS({valueType:t,keyType:e,typeName:Et.ZodMap,...Ut(r)});var cS=class e extends Lt{_parse(t){let{status:r,ctx:n}=this._processInputParams(t);if(n.parsedType!==ke.set)return Se(n,{code:ye.invalid_type,expected:ke.set,received:n.parsedType}),gt;let i=this._def;i.minSize!==null&&n.data.size<i.minSize.value&&(Se(n,{code:ye.too_small,minimum:i.minSize.value,type:"set",inclusive:!0,exact:!1,message:i.minSize.message}),r.dirty()),i.maxSize!==null&&n.data.size>i.maxSize.value&&(Se(n,{code:ye.too_big,maximum:i.maxSize.value,type:"set",inclusive:!0,exact:!1,message:i.maxSize.message}),r.dirty());let o=this._def.valueType;function s(c){let u=new Set;for(let d of c){if(d.status==="aborted")return gt;d.status==="dirty"&&r.dirty(),u.add(d.value)}return{status:r.value,value:u}}let a=[...n.data.values()].map((c,u)=>o._parse(new al(n,c,n.path,u)));return n.common.async?Promise.all(a).then(c=>s(c)):s(a)}min(t,r){return new e({...this._def,minSize:{value:t,message:Qe.toString(r)}})}max(t,r){return new e({...this._def,maxSize:{value:t,message:Qe.toString(r)}})}size(t,r){return this.min(t,r).max(t,r)}nonempty(t){return this.min(1,t)}};cS.create=(e,t)=>new cS({valueType:e,minSize:null,maxSize:null,typeName:Et.ZodSet,...Ut(t)});var MZ=class e extends Lt{constructor(){super(...arguments),this.validate=this.implement}_parse(t){let{ctx:r}=this._processInputParams(t);if(r.parsedType!==ke.function)return Se(r,{code:ye.invalid_type,expected:ke.function,received:r.parsedType}),gt;function n(a,c){return PB({data:a,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,rS(),mh].filter(u=>!!u),issueData:{code:ye.invalid_arguments,argumentsError:c}})}function i(a,c){return PB({data:a,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,rS(),mh].filter(u=>!!u),issueData:{code:ye.invalid_return_type,returnTypeError:c}})}let o={errorMap:r.common.contextualErrorMap},s=r.data;if(this._def.returns instanceof I2){let a=this;return ha(async function(...c){let u=new Zc([]),d=await a._def.args.parseAsync(c,o).catch(f=>{throw u.addIssue(n(c,f)),u}),l=await Reflect.apply(s,this,d);return await a._def.returns._def.type.parseAsync(l,o).catch(f=>{throw u.addIssue(i(l,f)),u})})}else{let a=this;return ha(function(...c){let u=a._def.args.safeParse(c,o);if(!u.success)throw new Zc([n(c,u.error)]);let d=Reflect.apply(s,this,u.data),l=a._def.returns.safeParse(d,o);if(!l.success)throw new Zc([i(d,l.error)]);return l.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...t){return new e({...this._def,args:Hm.create(t).rest(yh.create())})}returns(t){return new e({...this._def,returns:t})}implement(t){return this.parse(t)}strictImplement(t){return this.parse(t)}static create(t,r,n){return new e({args:t||Hm.create([]).rest(yh.create()),returns:r||yh.create(),typeName:Et.ZodFunction,...Ut(n)})}},O4=class extends Lt{get schema(){return this._def.getter()}_parse(t){let{ctx:r}=this._processInputParams(t);return this._def.getter()._parse({data:r.data,path:r.path,parent:r})}};O4.create=(e,t)=>new O4({getter:e,typeName:Et.ZodLazy,...Ut(t)});var C4=class extends Lt{_parse(t){if(t.data!==this._def.value){let r=this._getOrReturnCtx(t);return Se(r,{received:r.data,code:ye.invalid_literal,expected:this._def.value}),gt}return{status:"valid",value:t.data}}get value(){return this._def.value}};C4.create=(e,t)=>new C4({value:e,typeName:Et.ZodLiteral,...Ut(t)});function U1t(e,t){return new k4({values:e,typeName:Et.ZodEnum,...Ut(t)})}var k4=class e extends Lt{_parse(t){if(typeof t.data!="string"){let r=this._getOrReturnCtx(t),n=this._def.values;return Se(r,{expected:Xt.joinValues(n),received:r.parsedType,code:ye.invalid_type}),gt}if(this._cache||(this._cache=new Set(this._def.values)),!this._cache.has(t.data)){let r=this._getOrReturnCtx(t),n=this._def.values;return Se(r,{received:r.data,code:ye.invalid_enum_value,options:n}),gt}return ha(t.data)}get options(){return this._def.values}get enum(){let t={};for(let r of this._def.values)t[r]=r;return t}get Values(){let t={};for(let r of this._def.values)t[r]=r;return t}get Enum(){let t={};for(let r of this._def.values)t[r]=r;return t}extract(t,r=this._def){return e.create(t,{...this._def,...r})}exclude(t,r=this._def){return e.create(this.options.filter(n=>!t.includes(n)),{...this._def,...r})}};k4.create=U1t;var R4=class extends Lt{_parse(t){let r=Xt.getValidEnumValues(this._def.values),n=this._getOrReturnCtx(t);if(n.parsedType!==ke.string&&n.parsedType!==ke.number){let i=Xt.objectValues(r);return Se(n,{expected:Xt.joinValues(i),received:n.parsedType,code:ye.invalid_type}),gt}if(this._cache||(this._cache=new Set(Xt.getValidEnumValues(this._def.values))),!this._cache.has(t.data)){let i=Xt.objectValues(r);return Se(n,{received:n.data,code:ye.invalid_enum_value,options:i}),gt}return ha(t.data)}get enum(){return this._def.values}};R4.create=(e,t)=>new R4({values:e,typeName:Et.ZodNativeEnum,...Ut(t)});var I2=class extends Lt{unwrap(){return this._def.type}_parse(t){let{ctx:r}=this._processInputParams(t);if(r.parsedType!==ke.promise&&r.common.async===!1)return Se(r,{code:ye.invalid_type,expected:ke.promise,received:r.parsedType}),gt;let n=r.parsedType===ke.promise?r.data:Promise.resolve(r.data);return ha(n.then(i=>this._def.type.parseAsync(i,{path:r.path,errorMap:r.common.contextualErrorMap})))}};I2.create=(e,t)=>new I2({type:e,typeName:Et.ZodPromise,...Ut(t)});var cl=class extends Lt{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===Et.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(t){let{status:r,ctx:n}=this._processInputParams(t),i=this._def.effect||null,o={addIssue:s=>{Se(n,s),s.fatal?r.abort():r.dirty()},get path(){return n.path}};if(o.addIssue=o.addIssue.bind(o),i.type==="preprocess"){let s=i.transform(n.data,o);if(n.common.async)return Promise.resolve(s).then(async a=>{if(r.value==="aborted")return gt;let c=await this._def.schema._parseAsync({data:a,path:n.path,parent:n});return c.status==="aborted"?gt:c.status==="dirty"?v4(c.value):r.value==="dirty"?v4(c.value):c});{if(r.value==="aborted")return gt;let a=this._def.schema._parseSync({data:s,path:n.path,parent:n});return a.status==="aborted"?gt:a.status==="dirty"?v4(a.value):r.value==="dirty"?v4(a.value):a}}if(i.type==="refinement"){let s=a=>{let c=i.refinement(a,o);if(n.common.async)return Promise.resolve(c);if(c instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return a};if(n.common.async===!1){let a=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});return a.status==="aborted"?gt:(a.status==="dirty"&&r.dirty(),s(a.value),{status:r.value,value:a.value})}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(a=>a.status==="aborted"?gt:(a.status==="dirty"&&r.dirty(),s(a.value).then(()=>({status:r.value,value:a.value}))))}if(i.type==="transform")if(n.common.async===!1){let s=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});if(!S2(s))return gt;let a=i.transform(s.value,o);if(a instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:r.value,value:a}}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(s=>S2(s)?Promise.resolve(i.transform(s.value,o)).then(a=>({status:r.value,value:a})):gt);Xt.assertNever(i)}};cl.create=(e,t,r)=>new cl({schema:e,typeName:Et.ZodEffects,effect:t,...Ut(r)});cl.createWithPreprocess=(e,t,r)=>new cl({schema:t,effect:{type:"preprocess",transform:e},typeName:Et.ZodEffects,...Ut(r)});var sl=class extends Lt{_parse(t){return this._getType(t)===ke.undefined?ha(void 0):this._def.innerType._parse(t)}unwrap(){return this._def.innerType}};sl.create=(e,t)=>new sl({innerType:e,typeName:Et.ZodOptional,...Ut(t)});var Fm=class extends Lt{_parse(t){return this._getType(t)===ke.null?ha(null):this._def.innerType._parse(t)}unwrap(){return this._def.innerType}};Fm.create=(e,t)=>new Fm({innerType:e,typeName:Et.ZodNullable,...Ut(t)});var B4=class extends Lt{_parse(t){let{ctx:r}=this._processInputParams(t),n=r.data;return r.parsedType===ke.undefined&&(n=this._def.defaultValue()),this._def.innerType._parse({data:n,path:r.path,parent:r})}removeDefault(){return this._def.innerType}};B4.create=(e,t)=>new B4({innerType:e,typeName:Et.ZodDefault,defaultValue:typeof t.default=="function"?t.default:()=>t.default,...Ut(t)});var N4=class extends Lt{_parse(t){let{ctx:r}=this._processInputParams(t),n={...r,common:{...r.common,issues:[]}},i=this._def.innerType._parse({data:n.data,path:n.path,parent:{...n}});return nS(i)?i.then(o=>({status:"valid",value:o.status==="valid"?o.value:this._def.catchValue({get error(){return new Zc(n.common.issues)},input:n.data})})):{status:"valid",value:i.status==="valid"?i.value:this._def.catchValue({get error(){return new Zc(n.common.issues)},input:n.data})}}removeCatch(){return this._def.innerType}};N4.create=(e,t)=>new N4({innerType:e,typeName:Et.ZodCatch,catchValue:typeof t.catch=="function"?t.catch:()=>t.catch,...Ut(t)});var uS=class extends Lt{_parse(t){if(this._getType(t)!==ke.nan){let n=this._getOrReturnCtx(t);return Se(n,{code:ye.invalid_type,expected:ke.nan,received:n.parsedType}),gt}return{status:"valid",value:t.data}}};uS.create=e=>new uS({typeName:Et.ZodNaN,...Ut(e)});var fAr=Symbol("zod_brand"),IB=class extends Lt{_parse(t){let{ctx:r}=this._processInputParams(t),n=r.data;return this._def.type._parse({data:n,path:r.path,parent:r})}unwrap(){return this._def.type}},OB=class e extends Lt{_parse(t){let{status:r,ctx:n}=this._processInputParams(t);if(n.common.async)return(async()=>{let o=await this._def.in._parseAsync({data:n.data,path:n.path,parent:n});return o.status==="aborted"?gt:o.status==="dirty"?(r.dirty(),v4(o.value)):this._def.out._parseAsync({data:o.value,path:n.path,parent:n})})();{let i=this._def.in._parseSync({data:n.data,path:n.path,parent:n});return i.status==="aborted"?gt:i.status==="dirty"?(r.dirty(),{status:"dirty",value:i.value}):this._def.out._parseSync({data:i.value,path:n.path,parent:n})}}static create(t,r){return new e({in:t,out:r,typeName:Et.ZodPipeline})}},j4=class extends Lt{_parse(t){let r=this._def.innerType._parse(t),n=i=>(S2(i)&&(i.value=Object.freeze(i.value)),i);return nS(r)?r.then(i=>n(i)):n(r)}unwrap(){return this._def.innerType}};j4.create=(e,t)=>new j4({innerType:e,typeName:Et.ZodReadonly,...Ut(t)});function R1t(e,t){let r=typeof e=="function"?e(t):typeof e=="string"?{message:e}:e;return typeof r=="string"?{message:r}:r}function q1t(e,t={},r){return e?P2.create().superRefine((n,i)=>{let o=e(n);if(o instanceof Promise)return o.then(s=>{if(!s){let a=R1t(t,n),c=a.fatal??r??!0;i.addIssue({code:"custom",...a,fatal:c})}});if(!o){let s=R1t(t,n),a=s.fatal??r??!0;i.addIssue({code:"custom",...s,fatal:a})}}):P2.create()}var mAr={object:Xc.lazycreate},Et;(function(e){e.ZodString="ZodString",e.ZodNumber="ZodNumber",e.ZodNaN="ZodNaN",e.ZodBigInt="ZodBigInt",e.ZodBoolean="ZodBoolean",e.ZodDate="ZodDate",e.ZodSymbol="ZodSymbol",e.ZodUndefined="ZodUndefined",e.ZodNull="ZodNull",e.ZodAny="ZodAny",e.ZodUnknown="ZodUnknown",e.ZodNever="ZodNever",e.ZodVoid="ZodVoid",e.ZodArray="ZodArray",e.ZodObject="ZodObject",e.ZodUnion="ZodUnion",e.ZodDiscriminatedUnion="ZodDiscriminatedUnion",e.ZodIntersection="ZodIntersection",e.ZodTuple="ZodTuple",e.ZodRecord="ZodRecord",e.ZodMap="ZodMap",e.ZodSet="ZodSet",e.ZodFunction="ZodFunction",e.ZodLazy="ZodLazy",e.ZodLiteral="ZodLiteral",e.ZodEnum="ZodEnum",e.ZodEffects="ZodEffects",e.ZodNativeEnum="ZodNativeEnum",e.ZodOptional="ZodOptional",e.ZodNullable="ZodNullable",e.ZodDefault="ZodDefault",e.ZodCatch="ZodCatch",e.ZodPromise="ZodPromise",e.ZodBranded="ZodBranded",e.ZodPipeline="ZodPipeline",e.ZodReadonly="ZodReadonly"})(Et||(Et={}));var hAr=(e,t={message:`Input not instance of ${e.name}`})=>q1t(r=>r instanceof e,t),L=T2.create,Rr=w4.create,yAr=uS.create,gAr=x4.create,ul=E4.create,bAr=A4.create,_Ar=oS.create,vAr=S4.create,dS=T4.create,dl=P2.create,wAr=yh.create,xAr=kp.create,EAr=sS.create,ue=gh.create,fe=Xc.create,AAr=Xc.strictCreate,lS=P4.create,SAr=UZ.create,TAr=I4.create,PAr=Hm.create,Qt=qZ.create,IAr=aS.create,OAr=cS.create,CAr=MZ.create,kAr=O4.create,RAr=C4.create,ll=k4.create,BAr=R4.create,NAr=I2.create,jAr=cl.create,UAr=sl.create,qAr=Fm.create,MAr=cl.createWithPreprocess,DAr=OB.create,LAr=()=>L().optional(),zAr=()=>Rr().optional(),HAr=()=>ul().optional(),Ju={string:(e=>T2.create({...e,coerce:!0})),number:(e=>w4.create({...e,coerce:!0})),boolean:(e=>E4.create({...e,coerce:!0})),bigint:(e=>x4.create({...e,coerce:!0})),date:(e=>A4.create({...e,coerce:!0}))};var FAr=gt;var VAr=ll(["enc","sig"]),KAr=ll(["markdown","plain"]),WAr=ll(["recoverable","requires_buyer_input","requires_buyer_review","unrecoverable"]),GAr=ll(["error","info","warning"]),mS=ll(["canceled","complete_in_progress","completed","incomplete","ready_for_complete","requires_escalation"]),JAr=ll(["completed","failed","pending"]),YAr=ll(["digital","pickup","shipping"]),ZAr=ll(["fulfilled","partial","processing","removed"]),XAr=ll(["across","each"]),x9e=ll(["pickup","shipping"]),QAr=fe({config:Qt(L(),dl()),config_schema:L(),id:L(),instrument_schemas:ue(L()),name:L(),spec:L(),version:L()}),eSr=fe({alg:L().optional(),crv:L().optional(),e:L().optional(),kid:L(),kty:L(),n:L().optional(),use:VAr.optional(),x:L().optional(),y:L().optional()}),tSr=fe({config:Qt(L(),dl()).optional(),extends:L().optional(),name:L(),schema:L(),spec:L(),version:L()}),rSr=fe({endpoint:L()}),nSr=fe({schema:L()}),M1t=fe({endpoint:L(),schema:L()}),iSr=M1t,oSr=M1t,Ja=fe({email:L().optional(),first_name:L().optional(),last_name:L().optional(),phone_number:L().optional()}),vo=fe({address_country:L().optional(),address_region:L().optional(),currency:L().optional(),eligibility:ue(L()).optional(),intent:L().optional(),language:L().optional(),postal_code:L().optional()}),E9e=vo,D1t=fe({id:L()}),sSr=D1t,aSr=D1t,CB=fe({address_country:L().optional(),address_locality:L().optional(),address_region:L().optional(),extended_address:L().optional(),first_name:L().optional(),last_name:L().optional(),phone_number:L().optional(),postal_code:L().optional(),street_address:L().optional()}),DZ=fe({type:L()}),ro=fe({"dev.ucp.buyer_ip":L().optional(),"dev.ucp.user_agent":L().optional()}),A9e=ro,L1t=fe({id:L(),image_url:L().optional(),price:Rr(),title:L()}),LZ=fe({amount:Rr(),display_text:L().optional(),type:L()}),O2=fe({title:L().optional(),type:L(),url:L()}),bh=fe({code:L().optional(),content:L(),content_type:KAr.optional(),path:L().optional(),severity:WAr.optional(),type:GAr,image_url:L().optional(),presentation:L().optional(),url:L().optional()}),S9e=bh,hS=fe({id:L(),label:L().optional(),permalink_url:L()}),cSr=fe({amount:Rr(),display_text:L()}),uSr=fe({config:Qt(L(),dl()).optional(),extends:L().optional(),name:L(),schema:L().optional(),spec:L().optional(),version:L()}),T9e=fe({id:L(),quantity:Rr()}),dSr=T9e,lSr=T9e,pSr=T9e,fSr=fe({fulfilled:Rr(),original:Rr().optional(),total:Rr()}),mSr=fe({billing_address:CB.optional(),credential:DZ.optional(),display:Qt(L(),dl()).optional(),handler_id:L(),id:L(),type:L()}),hSr=fe({checkout_mandate:L()}),ySr=fe({merchant_authorization:L().optional(),checkout_mandate:L()}),gSr=fe({analytics:ul().optional(),marketing:ul().optional(),preferences:ul().optional(),sale_of_data:ul().optional()});var bSr=gSr;var z1t=fe({codes:ue(L()).optional()}),_Sr=z1t,vSr=fe({amount:Rr(),path:L()}),wSr=fe({address_country:L().optional(),address_locality:L().optional(),address_region:L().optional(),extended_address:L().optional(),first_name:L().optional(),last_name:L().optional(),phone_number:L().optional(),postal_code:L().optional(),street_address:L().optional(),id:L().optional(),address:CB.optional(),name:L().optional()}),xSr=fe({carrier:L().optional(),description:L().optional(),earliest_fulfillment_time:Ju.date().optional(),id:L(),latest_fulfillment_time:Ju.date().optional(),title:L(),totals:ue(LZ)}),ESr=fe({description:L().optional(),fulfillable_on:lS([dS(),L()]).optional(),line_item_ids:ue(L()),type:x9e}),ASr=fe({address_country:L().optional(),address_locality:L().optional(),address_region:L().optional(),extended_address:L().optional(),first_name:L().optional(),last_name:L().optional(),phone_number:L().optional(),postal_code:L().optional(),street_address:L().optional(),id:L(),address:CB.optional(),name:L().optional()}),SSr=fe({max:Rr().optional(),min:Rr().optional()}),kB=fe({taxonomy:L().optional(),value:L()}),RB=fe({html:L().optional(),markdown:L().optional(),plain:L().optional()}),pS=fe({amount:Rr(),currency:L()}),BB=fe({alt_text:L().optional(),height:Rr().optional(),type:L(),url:L(),width:Rr().optional()}),TSr=fe({id:L().optional(),label:L()}),NB=fe({count:Rr().optional(),scale_max:Rr(),scale_min:Rr().optional(),value:Rr()}),H1t=fe({available:ul().optional(),status:L().optional()}),PSr=H1t,F1t=fe({type:L(),value:L()}),ISr=F1t,OSr=fe({id:L(),match:L().optional()}),P9e=fe({id:L().optional(),label:L(),name:L()}),$1t=P9e,V1t=fe({links:ue(O2).optional(),name:L().optional()}),CSr=V1t,K1t=fe({unit:L(),value:Rr()});var kSr=K1t,RSr=fe({cursor:L().optional(),limit:Rr().optional()}),BSr=fe({cursor:L().optional(),has_next_page:ul(),total_count:Rr().optional()}),NSr=fe({handlers:ue(QAr).optional()}),jSr=fe({a2a:rSr.optional(),embedded:nSr.optional(),mcp:iSr.optional(),rest:oSr.optional(),spec:L(),version:L()}),yS=fe({item:sSr,quantity:Rr()}),USr=fe({billing_address:CB.optional(),credential:DZ.optional(),display:Qt(L(),dl()).optional(),handler_id:L(),id:L(),type:L(),selected:ul().optional()}),jB=fe({id:L().optional(),item:aSr,parent_id:L().optional(),quantity:Rr()}),zZ=fe({instruments:ue(USr).optional()}),qSr=zZ,UB=zZ,gS=zZ,HZ=zZ,U4=fe({id:L(),item:L1t,parent_id:L().optional(),quantity:Rr(),totals:ue(LZ)}),C2=fe({amount:Rr(),display_text:L().optional(),type:L(),lines:ue(cSr).optional()}),Rp=fe({capabilities:Qt(L(),ue(uSr)),version:L()}),MSr=fe({description:L().optional(),id:L(),line_items:ue(dSr).optional(),occurred_at:Ju.date(),status:JAr,totals:ue(LZ).optional(),type:L()}),DSr=fe({carrier:L().optional(),description:L().optional(),id:L(),line_items:ue(lSr),occurred_at:Ju.date(),tracking_number:L().optional(),tracking_url:L().optional(),type:L()}),LSr=fe({description:L().optional(),destination:CB,fulfillable_on:L().optional(),id:L(),line_items:ue(pSr),method_type:YAr}),zSr=fe({id:L(),item:L1t,parent_id:L().optional(),quantity:fSr,status:ZAr,totals:ue(LZ)}),Sxn=fe({payment_data:mSr}),Txn=fe({ap2:hSr.optional()}),Pxn=fe({attribution:Qt(L(),L()).optional(),buyer:Ja.optional(),context:vo.optional(),continue_url:L().optional(),currency:L(),expires_at:Ju.date().optional(),id:L(),line_items:ue(U4),links:ue(O2),messages:ue(bh).optional(),order:hS.optional(),payment:gS.optional(),signals:ro.optional(),status:mS,totals:ue(C2),ucp:Rp,ap2:ySr.optional()}),I9e=fe({email:L().optional(),first_name:L().optional(),last_name:L().optional(),phone_number:L().optional(),consent:bSr.optional()}),HSr=I9e,FSr=I9e,W1t=fe({attribution:Qt(L(),L()).optional(),buyer:Ja.optional(),context:vo.optional(),line_items:ue(jB),payment:HZ.optional(),signals:ro.optional(),discounts:_Sr.optional()}),$Sr=fe({allocations:ue(vSr).optional(),amount:Rr(),automatic:ul().optional(),code:L().optional(),eligibility:L().optional(),method:XAr.optional(),priority:Rr().optional(),provisional:ul().optional(),title:L()}),G1t=fe({id:L(),line_item_ids:ue(L()),options:ue(xSr).optional(),selected_option_id:lS([dS(),L()]).optional()}),VSr=fe({destinations:ue(ASr).optional(),groups:ue(G1t).optional(),id:L(),line_item_ids:ue(L()),selected_destination_id:lS([dS(),L()]).optional(),type:x9e}),Ixn=fe({attribution:Qt(L(),L()).optional(),buyer:Ja.optional(),context:vo.optional(),line_items:ue(yS),signals:ro.optional()}),Oxn=fe({attribution:Qt(L(),L()).optional(),buyer:Ja.optional(),context:vo.optional(),id:L(),line_items:ue(jB),signals:ro.optional()}),Cxn=fe({attribution:Qt(L(),L()).optional(),buyer:Ja.optional(),context:vo.optional(),continue_url:L().optional(),currency:L(),expires_at:Ju.date().optional(),id:L(),line_items:ue(U4),links:ue(O2).optional(),messages:ue(bh).optional(),signals:ro.optional(),totals:ue(C2),ucp:Rp}),KSr=fe({attribution:Qt(L(),L()).optional(),buyer:Ja.optional(),context:vo.optional(),line_items:ue(jB),payment:HZ.optional(),signals:ro.optional()}),J1t=KSr,kxn=fe({attribution:Qt(L(),L()).optional(),buyer:Ja.optional(),context:vo.optional(),continue_url:L().optional(),currency:L(),expires_at:Ju.date().optional(),id:L(),line_items:ue(U4),links:ue(O2),messages:ue(bh).optional(),order:hS.optional(),payment:gS.optional(),signals:ro.optional(),status:mS,totals:ue(C2),ucp:Rp,cart_id:L().optional()}),O9e=fe({categories:ue(L()).optional(),price:SSr.optional()}),fS=fe({max:pS,min:pS}),C9e=fe({name:L(),values:ue(TSr)}),Y1t=fe({amount:Rr(),currency:L(),measure:K1t,reference:kSr}),WSr=Y1t,Rxn=fe({attribution:Qt(L(),L()).optional(),context:E9e.optional(),filters:O9e.optional(),id:L(),preferences:ue(L()).optional(),selected:ue($1t).optional(),signals:A9e.optional()}),Bxn=fe({attribution:Qt(L(),L()).optional(),context:E9e.optional(),filters:O9e.optional(),pagination:RSr.optional(),query:L().optional(),signals:A9e.optional()}),GSr=fe({capabilities:ue(tSr),services:Qt(L(),jSr),version:L()}),Nxn=fe({attribution:Qt(L(),L()).optional(),payment:qSr,signals:ro.optional()}),Z1t=fe({attribution:Qt(L(),L()).optional(),buyer:Ja.optional(),context:vo.optional(),continue_url:L().optional(),currency:L(),expires_at:Ju.date().optional(),id:L(),line_items:ue(U4),links:ue(O2),messages:ue(bh).optional(),order:hS.optional(),payment:gS.optional(),signals:ro.optional(),status:mS,totals:ue(C2),ucp:Rp}),JSr=fe({events:ue(DSr).optional(),expectations:ue(LSr).optional()}),X1t=fe({attribution:Qt(L(),L()).optional(),buyer:I9e.optional(),context:vo.optional(),line_items:ue(yS),payment:UB.optional(),signals:ro.optional()}),Q1t=fe({attribution:Qt(L(),L()).optional(),buyer:FSr.optional(),context:vo.optional(),line_items:ue(jB),payment:HZ.optional(),signals:ro.optional()}),eht=fe({attribution:Qt(L(),L()).optional(),buyer:HSr.optional(),context:vo.optional(),continue_url:L().optional(),currency:L(),expires_at:Ju.date().optional(),id:L(),line_items:ue(U4),links:ue(O2),messages:ue(bh).optional(),order:hS.optional(),payment:gS.optional(),signals:ro.optional(),status:mS,totals:ue(C2),ucp:Rp}),tht=fe({attribution:Qt(L(),L()).optional(),buyer:Ja.optional(),context:vo.optional(),line_items:ue(yS),payment:UB.optional(),signals:ro.optional(),discounts:z1t.optional()}),YSr=fe({applied:ue($Sr).optional(),codes:ue(L()).optional()}),ZSr=fe({destinations:ue(wSr).optional(),groups:ue(G1t).optional(),line_item_ids:ue(L()).optional(),selected_destination_id:lS([dS(),L()]).optional(),type:x9e}),XSr=fe({available_methods:ue(ESr).optional(),methods:ue(VSr).optional()}),rht=fe({attribution:Qt(L(),L()).optional(),buyer:Ja.optional(),context:vo.optional(),line_items:ue(yS),payment:UB.optional(),signals:ro.optional(),cart_id:L().optional()}),jxn=fe({attribution:Qt(L(),L()).optional(),context:E9e.optional(),filters:O9e.optional(),ids:ue(L()),signals:A9e.optional()}),QSr=fe({availability:H1t.optional(),barcodes:ue(F1t).optional(),categories:ue(kB).optional(),description:RB,handle:L().optional(),id:L(),list_price:pS.optional(),media:ue(BB).optional(),metadata:Qt(L(),dl()).optional(),options:ue(P9e).optional(),price:pS,rating:NB.optional(),seller:V1t.optional(),sku:L().optional(),tags:ue(L()).optional(),title:L(),unit_price:Y1t.optional(),url:L().optional(),inputs:ue(OSr)}),nht=fe({availability:PSr.optional(),barcodes:ue(ISr).optional(),categories:ue(kB).optional(),description:RB,handle:L().optional(),id:L(),list_price:pS.optional(),media:ue(BB).optional(),metadata:Qt(L(),dl()).optional(),options:ue(P9e).optional(),price:pS,rating:NB.optional(),seller:CSr.optional(),sku:L().optional(),tags:ue(L()).optional(),title:L(),unit_price:WSr.optional(),url:L().optional()}),e7r=fe({categories:ue(kB).optional(),description:RB,handle:L().optional(),id:L(),list_price_range:fS.optional(),media:ue(BB).optional(),metadata:Qt(L(),dl()).optional(),options:ue(C9e).optional(),price_range:fS,rating:NB.optional(),tags:ue(L()).optional(),title:L(),url:L().optional(),variants:ue(nht)}),Uxn=fe({payment:NSr.optional(),signing_keys:ue(eSr).optional(),ucp:GSr}),iht=fe({attribution:Qt(L(),L()).optional(),buyer:Ja.optional(),context:vo.optional(),line_items:ue(yS),payment:UB.optional(),signals:ro.optional()}),t7r=fe({adjustments:ue(MSr).optional(),attribution:Qt(L(),L()).optional(),checkout_id:L(),currency:L(),fulfillment:JSr,id:L(),label:L().optional(),line_items:ue(zSr),messages:ue(bh).optional(),permalink_url:L(),totals:ue(C2),ucp:Rp}),oht=fe({attribution:Qt(L(),L()).optional(),buyer:Ja.optional(),context:vo.optional(),continue_url:L().optional(),currency:L(),expires_at:Ju.date().optional(),id:L(),line_items:ue(U4),links:ue(O2),messages:ue(bh).optional(),order:hS.optional(),payment:gS.optional(),signals:ro.optional(),status:mS,totals:ue(C2),ucp:Rp,discounts:YSr.optional()}),sht=fe({methods:ue(ZSr).optional()}),aht=fe({attribution:Qt(L(),L()).optional(),buyer:Ja.optional(),context:vo.optional(),line_items:ue(jB),payment:HZ.optional(),signals:ro.optional(),fulfillment:sht.optional()}),cht=fe({attribution:Qt(L(),L()).optional(),buyer:Ja.optional(),context:vo.optional(),continue_url:L().optional(),currency:L(),expires_at:Ju.date().optional(),id:L(),line_items:ue(U4),links:ue(O2),messages:ue(bh).optional(),order:hS.optional(),payment:gS.optional(),signals:ro.optional(),status:mS,totals:ue(C2),ucp:Rp,fulfillment:XSr.optional()}),r7r=fe({categories:ue(kB).optional(),description:RB,handle:L().optional(),id:L(),list_price_range:fS.optional(),media:ue(BB).optional(),metadata:Qt(L(),dl()).optional(),options:ue(C9e).optional(),price_range:fS,rating:NB.optional(),tags:ue(L()).optional(),title:L(),url:L().optional(),variants:ue(QSr)}),n7r=fe({options:ue(C9e).optional(),selected:ue($1t).optional(),categories:ue(kB).optional(),description:RB,handle:L().optional(),id:L(),list_price_range:fS.optional(),media:ue(BB).optional(),metadata:Qt(L(),dl()).optional(),price_range:fS,rating:NB.optional(),tags:ue(L()).optional(),title:L(),url:L().optional(),variants:ue(nht)}),qxn=fe({messages:ue(S9e).optional(),pagination:BSr.optional(),products:ue(e7r),ucp:Rp}),uht=fe({attribution:Qt(L(),L()).optional(),buyer:Ja.optional(),context:vo.optional(),line_items:ue(yS),payment:UB.optional(),signals:ro.optional(),fulfillment:sht.optional()}),Mxn=fe({messages:ue(S9e).optional(),products:ue(r7r),ucp:Rp}),Dxn=fe({messages:ue(S9e).optional(),product:n7r,ucp:Rp});var Fxn=DZ.extend({token:Dr.string().optional()}),i7r=Dr.object({webhook_url:Dr.string().url().optional()}),dht=Z1t.extend(cht.pick({fulfillment:!0}).shape).extend(oht.pick({discounts:!0}).shape).extend(eht.pick({buyer:!0}).shape).extend({platform:i7r.optional()}),lht=iht.extend(uht.pick({fulfillment:!0}).shape).extend(tht.pick({discounts:!0}).shape).extend(X1t.pick({buyer:!0}).shape).extend(rht.pick({cart_id:!0}).shape),pht=J1t.extend(aht.pick({fulfillment:!0}).shape).extend(W1t.pick({discounts:!0}).shape).extend(Q1t.pick({buyer:!0}).shape);eu();async function FZ(e,t,r){let n=e.headers.get("content-length");if(n!==null){let c=Number(n);if(Number.isSafeInteger(c)&&c>t)throw new Error(r)}if(!e.body)return"";let i=e.body.getReader(),o=new TextDecoder,s=0,a="";try{for(;;){let{done:c,value:u}=await i.read();if(c)break;if(s+=u.byteLength,s>t){try{await i.cancel()}catch{}throw new Error(r)}a+=o.decode(u,{stream:!0})}return a+o.decode()}finally{i.releaseLock()}}function $Z(e,t){let r=new AbortController,n=()=>r.abort(t?.reason);t?.aborted?n():t?.addEventListener("abort",n,{once:!0});let i=setTimeout(()=>r.abort(),e);return{signal:r.signal,cleanup:()=>{clearTimeout(i),t?.removeEventListener("abort",n)}}}var o7r=3e4,fht=2*1024*1024,Bp=class extends Error{constructor(r,n,i){super(r);this.rpcCode=n;this.httpStatus=i;this.name="UcpRpcError"}rpcCode;httpStatus};function mht(e,t){let r=new URL(e);if(r.protocol!=="https:")throw new Error(`${t} must use HTTPS`);if(r.username||r.password)throw new Error(`${t} must not contain embedded credentials`);if(r.hash)throw new Error(`${t} must not contain a fragment`);return r}function hht(e,t){if(!/^[A-Z]{3}$/.test(String(e.currency??"")))throw new Error("UCP checkout input requires an uppercase ISO 4217 currency");if(!Array.isArray(e.line_items)||e.line_items.length===0)throw new Error("UCP checkout input requires at least one line item");if(Object.hasOwn(e,"id"))throw new Error("UCP checkout input must not contain an id; pass it as a top-level argument");if(!(t==="create"?lht:pht).safeParse(e).success)throw new Error(`UCP ${t} checkout input failed schema validation`);return e}function s7r(e){if(!e||typeof e!="object")return!1;let t=e;if(t.jsonrpc!=="2.0"||!Object.hasOwn(t,"id")||t.id!==null&&typeof t.id!="string"&&typeof t.id!="number")return!1;let r=Object.hasOwn(t,"result"),n=Object.hasOwn(t,"error");if(r===n)return!1;if(!n)return!0;let i=t.error;return!!i&&typeof i=="object"&&!Array.isArray(i)&&typeof i.code=="number"&&typeof i.message=="string"}function yht(e,t,r,n){try{e[t](r,n)}catch{}}function a7r(e){if(!e||typeof e!="object")return e;let t=e,r=t.ucp;if(!r||typeof r!="object")return e;let n=r.capabilities;return!n||typeof n!="object"||Array.isArray(n)?e:{...t,ucp:{...r,capabilities:Object.fromEntries(Object.entries(n).map(([i,o])=>[i,Array.isArray(o)?o.map(s=>s&&typeof s=="object"?{...s,name:i}:s):o]))}}}var VZ=class{endpoint;platformProfileUrl;fetchImpl;signal;timeoutMs;boundaryLogger;requestId=1;constructor(t){this.endpoint=mht(t.endpoint,"UCP MCP endpoint").toString(),this.platformProfileUrl=mht(t.platformProfileUrl,"UCP platform profile URL").toString(),this.fetchImpl=t.fetch??fetch,this.signal=t.signal,this.timeoutMs=t.timeoutMs??o7r,this.boundaryLogger=t.logger??Re}async createCheckout(t){return await this.callCheckout("create_checkout",{meta:this.metadata(),checkout:hht(t,"create")})}async getCheckout(t){if(!t)throw new Error("UCP checkout id is required");return await this.callCheckout("get_checkout",{meta:this.metadata(),id:t})}async updateCheckout(t,r){if(!t)throw new Error("UCP checkout id is required");return await this.callCheckout("update_checkout",{meta:this.metadata(),id:t,checkout:hht(r,"update")})}metadata(){return{"ucp-agent":{profile:this.platformProfileUrl}}}async callCheckout(t,r){let n=this.requestId++,i=$Z(this.timeoutMs,this.signal),o=(0,ght.randomUUID)(),s=new URL(this.endpoint).origin,a=Date.now(),c;try{let u=await this.fetchImpl(this.endpoint,{method:"POST",redirect:"error",headers:{accept:"application/json","content-type":"application/json"},body:JSON.stringify({jsonrpc:"2.0",id:n,method:"tools/call",params:{name:t,arguments:r}}),signal:i.signal});c=u.status;let d;try{d=await FZ(u,fht,"UCP MCP response exceeds the 2 MiB limit")}catch(m){throw m instanceof Error&&m.message==="UCP MCP response exceeds the 2 MiB limit"?new Bp(m.message,void 0,u.status):m}if(Buffer.byteLength(d)>fht)throw new Bp("UCP MCP response exceeds the 2 MiB limit",void 0,u.status);let l;try{l=JSON.parse(d)}catch{throw new Bp("UCP MCP response is not valid JSON",void 0,u.status)}if(!s7r(l))throw new Bp("UCP MCP response is not a valid JSON-RPC envelope",void 0,u.status);if(l.id!==n)throw new Bp("UCP MCP response id does not match the request",void 0,u.status);if("error"in l)throw new Bp(`UCP MCP error ${l.error.code}: ${l.error.message}`,l.error.code,u.status);if(!u.ok)throw new Bp(`UCP MCP request failed with HTTP ${u.status}`,void 0,u.status);let p=l.result;if(!p?.structuredContent)throw new Bp("UCP MCP response is missing result.structuredContent");if(!dht.safeParse(a7r(p.structuredContent)).success)throw new Bp("UCP checkout response failed schema validation");return yht(this.boundaryLogger,"info","ucp:checkout_rpc",{correlationId:o,endpointOrigin:s,rpcMethod:t,httpStatus:c,elapsedMs:Date.now()-a}),p.structuredContent}catch(u){throw yht(this.boundaryLogger,"warn","ucp:checkout_rpc_failed",{correlationId:o,endpointOrigin:s,rpcMethod:t,...c===void 0?{}:{httpStatus:c},elapsedMs:Date.now()-a,errorClass:u instanceof Error?u.name:"UnknownError"}),u}finally{i.cleanup()}}};var _ht=require("node:crypto");eu();var WZ="2026-04-08",c7r="dev.ucp.shopping",u7r="dev.ucp.shopping.checkout",d7r=1024*1024,l7r=1e4,p7r="https://ucp.dev",qB=Dr.string().url().refine(e=>{let t=new URL(e);return t.protocol==="https:"&&!t.username&&!t.password},"must be an HTTPS URL without embedded credentials"),f7r=Dr.object({version:Dr.string().regex(/^\d{4}-\d{2}-\d{2}$/),spec:qB,schema:qB,transport:Dr.enum(["rest","mcp","a2a","embedded"]),endpoint:qB.optional()}).passthrough(),m7r=Dr.object({version:Dr.string().regex(/^\d{4}-\d{2}-\d{2}$/),spec:qB,schema:qB,extends:Dr.union([Dr.string(),Dr.array(Dr.string()).min(1)]).optional()}).passthrough(),h7r=Dr.object({ucp:Dr.object({version:Dr.string().regex(/^\d{4}-\d{2}-\d{2}$/),services:Dr.record(Dr.array(f7r)),capabilities:Dr.record(Dr.array(m7r)),payment_handlers:Dr.record(Dr.array(Dr.unknown())).optional()}).passthrough(),signing_keys:Dr.array(Dr.unknown()).optional()}).passthrough();function y7r(e,t){let r=new URL(e);if(r.protocol!=="https:")throw new Error(`${t} must use HTTPS`);if(r.username||r.password)throw new Error(`${t} must not contain embedded credentials`);if(r.pathname!=="/"||r.search||r.hash)throw new Error(`${t} must be a bare origin`);return r}function KZ(e,t){if(new URL(e).origin!==p7r)throw new Error(`${t} must be governed by the ucp.dev namespace`)}function bht(e,t,r,n){try{e[t](r,n)}catch{}}async function g7r(e,t={}){let r=y7r(e,"UCP business URL"),n=$Z(t.timeoutMs??l7r,t.signal),i=t.logger??Re,o=(0,_ht.randomUUID)(),s=Date.now(),a;try{let c=await(t.fetch??fetch)(new URL("/.well-known/ucp",r),{headers:{accept:"application/json"},redirect:"error",signal:n.signal});if(a=c.status,!c.ok)throw new Error(`UCP profile fetch failed with HTTP ${c.status}`);let u=await FZ(c,d7r,"UCP profile exceeds the 1 MiB response limit"),d;try{d=JSON.parse(u)}catch{throw new Error("UCP profile response is not valid JSON")}let l=h7r.safeParse(d);if(!l.success)throw new Error("UCP profile response does not match the 2026-04-08 profile shape");return bht(i,"info","ucp:profile_fetch",{correlationId:o,businessOrigin:r.origin,method:"GET",httpStatus:a,elapsedMs:Date.now()-s}),{businessOrigin:r.origin,profile:l.data}}catch(c){throw bht(i,"warn","ucp:profile_fetch_failed",{correlationId:o,businessOrigin:r.origin,method:"GET",...a===void 0?{}:{httpStatus:a},elapsedMs:Date.now()-s,errorClass:c instanceof Error?c.name:"UnknownError"}),c}finally{n.cleanup()}}function b7r(e){if(e.ucp.version!==WZ)throw new Error(`Unsupported UCP version: ${e.ucp.version}`);let t=e.ucp.capabilities[u7r]?.find(i=>i.version===WZ);if(!t)throw new Error("Business does not advertise UCP checkout 2026-04-08");KZ(t.spec,"Checkout capability spec"),KZ(t.schema,"Checkout capability schema");let r=e.ucp.services[c7r]?.find(i=>i.version===WZ&&i.transport==="mcp");if(!r)throw new Error("Business does not advertise a UCP shopping MCP service");if(!r.endpoint)throw new Error("UCP shopping MCP service is missing its endpoint");KZ(r.spec,"Shopping service spec"),KZ(r.schema,"Shopping service schema");let n=new URL(r.endpoint);if(n.hash)throw new Error("UCP shopping MCP endpoint must not contain a fragment");return n.toString()}async function vht(e,t={}){let r=await g7r(e,t);return{...r,endpoint:b7r(r.profile),version:WZ}}var _7r="https://app.visacli.sh/.well-known/ucp";function v7r(e){let t=new URL(e);if(t.protocol!=="https:"||t.username||t.password||t.hash)throw new Error("UCP platform profile URL must be HTTPS and credential-free");return t.toString()}function w7r(e,t){if(typeof e=="string")try{let r=new URL(e);r.protocol==="https:"&&!r.username&&!r.password&&t.add(r.origin.toLowerCase())}catch{}}function k9e(e,t=new Set){if(Array.isArray(e))for(let r of e)k9e(r,t);else if(e&&typeof e=="object")for(let[r,n]of Object.entries(e))r==="endpoint"?w7r(n,t):k9e(n,t);return t}function x7r(e,t,r){let n=new URL(e),i=new URL(t);if(i.protocol!=="https:"||i.username||i.password)throw new Error("UCP continuation URL must be HTTPS and credential-free");let o=i.hostname.toLowerCase(),s=n.hostname.toLowerCase();if(i.origin.toLowerCase()===n.origin.toLowerCase())return i.hash="",{url:i.toString(),sourceHost:o,targetHost:s,originRewritten:!1};let a=r.ucp.services["dev.ucp.shopping"],c=k9e(a);if(!(o.endsWith(".myshopify.com")&&c.has(i.origin.toLowerCase())))throw new Error(`Refusing cross-host UCP continuation from ${o} to ${s}`);return i.hash="",{url:i.toString(),sourceHost:o,targetHost:o,originRewritten:!1}}function E7r(e){let t=Array.isArray(e.totals)?e.totals.find(a=>a&&typeof a=="object"&&a.type==="total"):void 0,r=t&&typeof t=="object"?t:void 0,n=r?.amount,o=r?.currency??e.currency;if(!Number.isSafeInteger(n)||Number(n)<0)throw new Error("UCP checkout is missing an integer totals[type=total].amount");if(o!=="USD")throw new Error(`UCP checkout handoff currently supports USD only; refusing ${String(o)} until currency exponents are implemented`);let s=Number(n);return{minor:s,decimal:`${Math.floor(s/100)}.${String(s%100).padStart(2,"0")}`,currency:o}}function A7r(e){return Array.isArray(e.messages)?e.messages.flatMap(t=>{if(!t||typeof t!="object")return[];let r=t,n={...typeof r.type=="string"?{type:r.type}:{},...typeof r.code=="string"?{code:r.code}:{},...typeof r.severity=="string"?{severity:r.severity}:{}};return Object.keys(n).length>0?[n]:[]}):[]}async function xht(e,t={}){if(!e.business?.trim())throw new Error("UCP business origin is required");if(!e.checkoutId?.trim())throw new Error("UCP checkout id is required");let r=await(t.discover??vht)(e.business),i=await(t.getCheckout??(async(u,d)=>await new VZ({endpoint:u.endpoint,platformProfileUrl:v7r(t.platformProfileUrl??process.env.VISA_UCP_PROFILE_URL??_7r)}).getCheckout(d)))(r,e.checkoutId);if(i.id!==e.checkoutId)throw new Error("UCP checkout response id does not match the requested checkout");let o=String(i.status??"unknown");if(o==="completed")return{success:!1,status:"not_ready",checkoutId:e.checkoutId,checkoutStatus:o,reason:"checkout_already_completed"};if(o!=="requires_escalation")return{success:!1,status:"not_ready",checkoutId:e.checkoutId,checkoutStatus:o,reason:"checkout_not_escalated"};if(typeof i.continue_url!="string"||!i.continue_url)return{success:!1,status:"not_ready",checkoutId:e.checkoutId,checkoutStatus:o,reason:"missing_continue_url"};let s=E7r(i),a=x7r(r.businessOrigin,i.continue_url,r.profile),c=`ucp_${(0,wht.createHash)("sha256").update([r.businessOrigin,e.checkoutId,o,s.currency,String(s.minor),a.url].join("\0")).digest("hex").slice(0,24)}`;return{success:!0,status:"ready_for_review",checkoutId:e.checkoutId,handoffId:c,checkoutStatus:"requires_escalation",amount:s,merchant:{businessOrigin:r.businessOrigin,sourceHost:a.sourceHost,targetHost:a.targetHost,originRewritten:a.originRewritten},payMerchantRequest:{action:"review",url:a.url,amount:s.decimal,currency:s.currency},messages:A7r(i),nextAction:"Copy the payMerchantRequest checkout fields unchanged to pay_merchant and include its required user_context. Show the returned merchant and exact total to the user; never authorize until they explicitly approve PAY <reviewId>."}}H2();function S7r(){return ga()}var Op=new Th(()=>xi.getSessionToken()),T7r="4.1.0-rc.28",xEn=["","","You're ready to go! Try:","","Verified Agent:",'\u2022 "Enroll this agent" \u2192 enroll_agent','\u2022 "Show my wallet and policy" \u2192 wallet_status','\u2022 "Find a paid weather service" \u2192 wallet_discover','\u2022 "Pay this x402 service with a $0.10 maximum" \u2192 wallet_pay','\u2022 "Review this card checkout" \u2192 pay_merchant','\u2022 "Show my account status" \u2192 get_status'].join(`
|
|
20887
|
+
If building from source, run native/build-win.bat first.`);Jr.mkdirSync(Ph,{recursive:!0}),Jr.copyFileSync(e,Gm);let t=AN(Gm);return Jr.writeFileSync(VEe,t,{mode:384}),Jr.writeFileSync($Ee,FEe,{mode:384}),Gm}async function dbt(){return G4()?PN():eAe()}var SN="visa-cli",TN="attestation-key";async function lbt(e){if(!await Mp())throw new Error("macOS Keychain is unavailable in this environment (no default keychain), so the Touch ID key cannot be stored. Run this command in a regular user session.");try{await Jm("security",["delete-generic-password","-s",SN,"-a",TN],{timeout:5e3})}catch{}try{await Jm("security",["add-generic-password","-s",SN,"-a",TN,"-w",e],{timeout:5e3})}catch(t){throw new Error(`Could not store the Touch ID key in the macOS Keychain (${pbt(t)}).`)}}function pbt(e){let t=e,r=[t?.stderr,t?.message].filter(n=>typeof n=="string").join(" ").toLowerCase();return/canceled|cancelled/.test(r)?"the Keychain authorization was canceled":/locked/.test(r)?"the Keychain is locked":/not permitted|permission denied|not authorized/.test(r)?"Keychain access was denied":/could not be found|no default keychain/.test(r)?"no default keychain was found":"the security tool reported an error"}function fbt(e){let t=typeof e?.code=="number"?e.code:void 0,r=typeof e?.stderr=="string"?e.stderr:"",n=typeof e?.stdout=="string"?e.stdout:"",i=[r,n,e?.message].filter(Boolean).join(" ").trim();return t===44||/could not be found|item(?: was)? not found|no such keychain item|not found/i.test(i)?{state:"absent",usable:!1,message:"No local attestation key was found."}:/user interaction is not allowed|user canceled|user cancelled|authorization failed|interaction not allowed|keychain.*locked|denied|not authorized/i.test(i)?{state:"denied",usable:!1,message:"The local attestation key exists but Keychain access was denied or unavailable."}:{state:"error",usable:!1,message:i||"Could not read the local attestation key from Keychain."}}async function mbt(){if(!await Mp())return{key:null,status:{state:"denied",usable:!1,message:"macOS Keychain is unavailable in this environment (no default keychain)."}};try{let{stdout:e}=await Jm("security",["find-generic-password","-s",SN,"-a",TN,"-w"],{timeout:5e3}),t=e.trim();return t?{key:t,status:{state:"present",usable:!0}}:{key:null,status:{state:"absent",usable:!1,message:"No local attestation key was found."}}}catch(e){return{key:null,status:fbt(e)}}}async function hbt(){let e=await mbt();if(e.key)return e.key;if(e.status.state==="absent")return null;throw new Error(e.status.message||"Could not read the local attestation key from Keychain.")}async function rAe(e){let t=await dbt(),r;try{r=(await Jm(t,e,{timeout:6e4})).stdout}catch(n){r=n.stdout||"";let i=r.trim();throw i.startsWith("ERROR:")?new Error(i.slice(6)):new Error(n.stderr?.toString().trim()||n.message||"Unknown error")}return ubt(r)}var GEe=!1;function ybt(){if(!G4())return!1;try{return Jr.existsSync(Gm)||tAe()!==null?!0:(GEe||(GEe=!0,Re.warn("binary:missing:win32",{message:"visa-keychain-win.exe not found; Windows Hello attestation unavailable on this install.",binPath:Gm,searchedPrebuiltPaths:QEe})),!1)}catch{return!1}}function Ih(){return vS()||cbt()?!0:G4()?ybt():!1}async function nAe(){if(G4()){let i=await PN(),{stdout:o}=await Jm(i,["generate-key"],{timeout:3e4}),s=o.trim();if(s.startsWith("OK:"))return s.slice(3);throw new Error(s.startsWith("ERROR:")?s.slice(6):"Key generation failed")}let e=await rAe(["generate-key"]);if(!e)throw new Error("Key generation returned no output");let t=e.indexOf(":");if(t<0)throw new Error("Unexpected generate-key output format");let r=e.slice(0,t),n=e.slice(t+1);return await lbt(r),n}async function HX(e,t,r={}){if(vS())return Promise.resolve(axe());let n=r.timeoutMs??abt;if(G4()){let a=await PN(),c=["sign",e];t&&c.push(t);let u;try{u=(await Jm(a,c,{timeout:n})).stdout}catch(l){throw KEe(l)?WEe(n):l}let d=u.trim();if(d.startsWith("OK:"))return d.slice(3);throw new Error(d.startsWith("ERROR:")?d.slice(6):"Unknown error")}let i=await hbt();if(!i)throw new Error("Attestation key not found. Run setup to generate a new key.");let o=await eAe(),s=["sign",e];return t&&s.push(t),new Promise((a,c)=>{let u=(0,zX.execFile)(o,s,{timeout:n},(d,l)=>{let p=(l||"").trim();if(d){p.startsWith("ERROR:")?c(new Error(p.slice(6))):KEe(d)?c(WEe(n)):c(new Error(d.stderr?.toString().trim()||d.message||"Unknown error"));return}p.startsWith("OK:")?a(p.slice(3)):c(new Error(p.startsWith("ERROR:")?p.slice(6):"Unknown error"))});u.stdin.write(i),u.stdin.end()})}async function IN(){if(G4()){try{let e=await PN();await Jm(e,["delete-key"],{timeout:1e4})}catch{}return}if(await Mp())try{await Jm("security",["delete-generic-password","-s",SN,"-a",TN],{timeout:5e3})}catch{}try{await rAe(["delete-key"])}catch{}}B2();eu();QB();H8e();var Aht=require("child_process"),GZ=ve(require("fs")),JZ=ve(require("os")),Sht=ve(require("path"));H2();FB();var Zft="4.1.0-rc.29";function F8e(e,t){return t?{kind:"env",var:e}:{kind:"default"}}function H3r(e,t,r){let n=process.env[e];if(n!==void 0)return{value:r==="opt-in"?n==="true":n!=="false",source:{kind:"env",var:e}};let i=MX(t);return i!==void 0?{value:i,source:{kind:"settings"}}:{value:r!=="opt-in",source:{kind:"default"}}}function HA(e){return e==null?"\u2014":e?"yes":"no"}async function nB(e){let t=null,r=null;try{t=await e.api.getStatus()}catch(l){r=l?.message||"unknown error"}let n=[],i=process.env.VISA_AUTH_URL,o=qX("auth.serverUrl"),s=ga(),a=i!==void 0&&i!==""?{kind:"env",var:"VISA_AUTH_URL"}:o!==void 0?{kind:"settings"}:{kind:"default"};n.push({key:"auth.serverUrl",value:s,formatted:s,source:a,hint:a.kind==="default"?"Persist with `visa-cli config set auth.serverUrl <url>` (or set VISA_AUTH_URL for one-off overrides).":void 0}),n.push({key:"account.enrolled",value:t?.enrolled??null,formatted:HA(t?.enrolled),source:t?{kind:"server"}:{kind:"unknown",reason:r||"offline"}}),t?.login&&n.push({key:"account.principal",value:t.login,formatted:t.principalKind?`${t.login} (${t.principalKind})`:t.login,source:{kind:"server"},hint:"The identity your CLI session resolves on. Feature-flag access (checkout, mandate) is granted per this exact principal."}),t?.userId&&n.push({key:"account.userId",value:t.userId,formatted:t.userId,source:{kind:"server"},hint:"Opaque stable account id used for account-scoped local credentials."});let c=H3r("VISA_SUPPRESS_BROWSER","ui.suppressBrowser","opt-in");n.push({key:"ui.suppressBrowser",value:c.value,formatted:HA(c.value),source:c.source,hint:"Persist with `visa-cli config set ui.suppressBrowser true` to stop auto-opening result URLs."});let u=Eh(),d;if(process.env.VISA_CLI_NO_UPDATE_CHECK?d={kind:"env",var:"VISA_CLI_NO_UPDATE_CHECK"}:process.env.CI?d={kind:"env",var:"CI"}:process.env.NODE_ENV==="test"?d={kind:"env",var:"NODE_ENV"}:d={kind:"default"},n.push({key:"ui.updateCheck",value:!u,formatted:HA(!u),source:d}),n.push({key:"client.version",value:Zft,formatted:Zft,source:{kind:"default"}}),e.includeDev){let l=process.env.VISA_MOCK_KEYCHAIN,p=_h();n.push({key:"dev.mockKeychain",value:p,formatted:HA(p),source:F8e("VISA_MOCK_KEYCHAIN",!!l),hint:iX()});let f=process.env.VISA_MOCK_TOUCHID,m=vS();n.push({key:"dev.mockTouchid",value:m,formatted:HA(m),source:F8e("VISA_MOCK_TOUCHID",!!f),hint:iX()});let h=process.env.VISA_CLI_DEBUG;n.push({key:"dev.debug",value:!!h,formatted:HA(!!h),source:F8e("VISA_CLI_DEBUG",!!h)})}return{entries:n,statusError:r}}function F3r(e){switch(e.kind){case"default":return"default";case"env":return`env ${e.var}`;case"settings":return"settings.json";case"server":return"server";case"device":return"device";case"unset":return"unset";case"unknown":return`unknown (${e.reason})`}}function Xft(e,t={}){if(e.length===0)return"";let r=Math.max(...e.map(o=>o.key.length)),n=Math.max(...e.map(o=>o.formatted.length)),i=[];for(let o of e){let s=o.key.padEnd(r+2),a=o.formatted.padEnd(n+2);i.push(`${s}${a}(${F3r(o.source)})`),t.verbose&&o.hint&&i.push(` ${"\u21B3".padStart(r)} ${o.hint}`)}return i.join(`
|
|
20888
|
+
`)}function Qft(e){return JSON.stringify({config:e.entries.map(t=>({key:t.key,value:t.value,source:t.source,hint:t.hint})),statusError:e.statusError},null,2)}var g9e=require("node:os"),AB=require("node:path"),SB=require("node:fs/promises"),g1t=require("node:fs"),b1t=require("node:url"),_1t=require("node:crypto");eu();var $3r=new Set(["USD","USDC","EUR","GBP","CAD","AUD"]);function FA(e,t){let r=t.toUpperCase();return!Number.isFinite(e)||!$3r.has(r)?`${e} ${r} (minor units)`:`${(e/100).toFixed(2)} ${r}`}var ah=class extends Error{constructor(t){super(t),this.name="PayValidationError"}};function $8e(e){let t;try{t=new URL(e)}catch{throw new ah(`Invalid URL: ${e}. Expected a fully-qualified http(s) URL.`)}if(t.protocol!=="http:"&&t.protocol!=="https:")throw new ah(`Unsupported URL scheme "${t.protocol}". Only http and https are allowed.`);return t}eu();var V3r={ucp_checkout_handoff:"checkout_agent_access",pay_merchant:"checkout_agent_access",pay_merchant_status:"checkout_agent_access",start_card_mandate:"checkout_agent_access"},K3r=300*1e3,V8e={},emt=0,iB=null;function W3r(){return iB||(iB=(async()=>{try{let e=await Op.getFeatureFlags();V8e=e&&e.flags||{},emt=Date.now()}catch(e){V8e={},Re.warn("feature-flags:fetch-failed",{error:e instanceof Error?e.message:String(e)})}finally{iB=null}})(),iB)}async function eZ(){Date.now()-emt<K3r||await W3r()}function $A(e){let t=V3r[e];return t?V8e[t]!==!0:!1}var tmt=require("node:crypto"),oB=class extends Error{constructor(r){super(`Approval handoff already exists with different inputs for review ${r}`);this.reviewId=r;this.name="PayMerchantApprovalConflictError"}reviewId},tZ=class{constructor(t={}){this.options=t}options;jobsByOperation=new Map;operationByReview=new Map;now(){return(this.options.now??Date.now)()}activeTtlMs(){return this.options.activeTtlMs??300*1e3}terminalTtlMs(){return this.options.terminalTtlMs??300*1e3}async waitUntilQueryable(t){let r;try{await Promise.race([t,new Promise(n=>{r=setTimeout(n,Math.max(0,this.options.initialWaitMs??1e3)),r.unref?.()})])}finally{r&&clearTimeout(r)}}finish(t,r){t.inFlight=!1,t.status=r,t.expiresAtMs=this.now()+this.terminalTtlMs(),t.resolveReady()}pruneExpired(){let t=this.now();for(let[r,n]of this.jobsByOperation)if(!(n.expiresAtMs>t)){if(n.inFlight){(n.status==="starting"||n.status==="awaiting_passkey")&&(n.status="reconciling",n.error="Approval handoff expired while the checkout was in progress; reconcile with the merchant before retrying",n.resolveReady()),n.expiresAtMs=t+this.terminalTtlMs();continue}this.jobsByOperation.delete(r),this.operationByReview.get(n.reviewId)===r&&this.operationByReview.delete(n.reviewId)}}snapshot(t){return{operationId:t.operationId,reviewId:t.reviewId,status:t.status,approvalUrl:t.approvalUrl,result:t.result,error:t.error,expiresAt:new Date(t.expiresAtMs).toISOString()}}get(t){this.pruneExpired();let r=this.jobsByOperation.get(t);return r?this.snapshot(r):null}async start(t){this.pruneExpired();let r=this.operationByReview.get(t.reviewId),n=r?this.jobsByOperation.get(r):void 0;if(n){if(n.fingerprint!==t.fingerprint)throw new oB(t.reviewId);return await this.waitUntilQueryable(n.ready),this.snapshot(n)}let i=()=>{},o=new Promise(u=>{i=u}),s=(this.options.idFactory??tmt.randomUUID)(),a={operationId:s,reviewId:t.reviewId,fingerprint:t.fingerprint,status:"starting",approvalUrl:null,result:null,error:null,expiresAtMs:this.now()+this.activeTtlMs(),inFlight:!0,ready:o,resolveReady:i};this.jobsByOperation.set(s,a),this.operationByReview.set(t.reviewId,s);let c=u=>{a.status==="starting"&&(a.approvalUrl=u,a.status="awaiting_passkey",a.resolveReady())};return Promise.resolve().then(()=>t.run(c)).then(u=>{a.result=u,a.error=null,this.finish(a,"completed")}).catch(u=>{a.error=u instanceof Error?u.message:String(u),this.finish(a,"failed")}),await this.waitUntilQueryable(o),this.snapshot(a)}};function v1t(e){return[(0,AB.join)(e,"checkout-engine","index.js"),(0,AB.join)(e,"..","checkout-engine","index.js")]}function MEr(e,t=g1t.existsSync){return v1t(e).find(r=>t(r))??null}var RZ=null,w1t=async()=>{if(RZ)return RZ;let e=MEr(__dirname);if(!e)throw new Error(`Cannot find module: the checkout engine was not packaged (looked in ${v1t(__dirname).join(" and ")}).`);return RZ=(await import((0,b1t.pathToFileURL)(e).href)).createCliCheckoutEngine({cardDrawVerdict:await DEr(),cardMandateRegister:await LEr()}),RZ};async function DEr(){let e=await Promise.resolve().then(()=>(h9e(),m9e));return{loadCapability:()=>e.loadCardMandateCapability(),fetchVerdict:t=>e.fetchCardDrawVerdict(t)}}async function LEr(){let e=await Promise.resolve().then(()=>(h9e(),m9e));return{loadCapability:()=>e.loadCardMandateCapability(),register:t=>e.registerCardMandate(t)}}async function b9e(){return $A("pay_merchant")?(await eZ(),$A("pay_merchant")):!1}var x1t=(0,AB.join)((0,g9e.homedir)(),".visa-mcp","agent-credential.json"),E1t=(0,AB.join)((0,g9e.homedir)(),".visa-mcp","contact.json"),A1t=new tZ;function TB(e){return e.replace(/https?:\/\/[^\s"')\]]+/gi,t=>{try{return new URL(t).origin}catch{return"[url]"}}).slice(0,300)}var zEr=new Set(["USD","USDC","EUR","GBP","CAD","AUD"]);function S1t(e){return zEr.has(e)?e:null}async function BZ(e){try{await e.emitTelemetry([{timestamp:new Date().toISOString(),tool_name:"pay_merchant",user_prompt:"",tool_params:JSON.stringify({action:e.action,rail:"card",merchant_host:e.merchantHost,amount_minor:e.amountMinor,currency:e.currency,...e.submit===void 0?{}:{submit:e.submit},source:e.source??null,draw_id:e.drawId??null}),result_success:e.success,result_error:e.errorMessage?TB(e.errorMessage):null,result_json:JSON.stringify({outcome:e.outcome,confirmationRef:e.confirmationRef??null,source:e.source??null,remainingMinor:e.remainingMinor??null}),payment_rail:e.action==="pay"?"card":null,payment_amount:e.action==="pay"?e.amountMinor:null,payment_currency:S1t(e.currency),merchant_name:e.merchantHost,transaction_id:null,tx_hash:null,protocol:null,http_status:null,duration_ms:Math.max(0,Date.now()-e.startedAt),source:"cli",endpoint:"/v4/checkout",resolved_model:null,session_budget_id:null}])}catch(t){Re.warn("pay_merchant:telemetry_failed",{action:e.action,error:t instanceof Error?t.message:String(t)})}}async function y1t(e){try{await e.emitTelemetry([{timestamp:new Date().toISOString(),tool_name:"start_card_mandate",user_prompt:"",tool_params:JSON.stringify({rail:"card",merchant_host:e.merchantHost,ceiling_minor:e.ceilingMinor,currency:e.currency}),result_success:e.success,result_error:e.errorMessage?TB(e.errorMessage):null,result_json:JSON.stringify({outcome:e.outcome,mandateId:e.mandateId??null,remainingMinor:e.remainingMinor??null}),payment_rail:null,payment_amount:null,payment_currency:S1t(e.currency),merchant_name:e.merchantHost,transaction_id:null,tx_hash:null,protocol:null,http_status:null,duration_ms:Math.max(0,Date.now()-e.startedAt),source:"cli",endpoint:"/v4/mandate",resolved_model:null,session_budget_id:null}])}catch(t){Re.warn("start_card_mandate:telemetry_failed",{error:t instanceof Error?t.message:String(t)})}}function y9e(e){if(typeof e!="string"||!/^\d+(\.\d{1,2})?$/.test(e)||Number(e)<=0)throw new ah(`Invalid amount ${JSON.stringify(e)}. Expected a positive decimal like "5.00".`);return e}function T1t(e,t){if(e.status==="completed")return{...e.result??{},action:t,approvalStatus:"completed",operationId:e.operationId,reviewId:e.reviewId,expiresAt:e.expiresAt};if(e.status==="failed"){let r=TB(e.error??"approval failed");return{success:!1,action:t,approvalStatus:"failed",operationId:e.operationId,reviewId:e.reviewId,expiresAt:e.expiresAt,message:`${r}. Nothing was charged unless a returned receipt explicitly says confirmed.`}}return e.status==="awaiting_passkey"&&e.approvalUrl?{success:!0,action:t,approvalStatus:"awaiting_passkey",operationId:e.operationId,reviewId:e.reviewId,expiresAt:e.expiresAt,requiresBrowser:!0,browserUrl:e.approvalUrl,approval:{type:"visa_passkey",url:e.approvalUrl,expiresAt:e.expiresAt,button:{label:"Open Visa approval",webApp:{url:e.approvalUrl}}},message:"Open the Visa approval link and complete the passkey. This Telegram or messaging handoff is not itself the passkey and has not charged the card."}:e.status==="reconciling"?{success:!1,action:t,approvalStatus:"reconciling",operationId:e.operationId,reviewId:e.reviewId,expiresAt:e.expiresAt,message:"The approval window expired while checkout was still in progress. Check this operation again for a receipt and reconcile with the merchant before starting a fresh review."}:{success:!0,action:t,approvalStatus:"starting",operationId:e.operationId,reviewId:e.reviewId,expiresAt:e.expiresAt,message:"Visa is preparing the hosted passkey approval. Check this approval again shortly."}}async function P1t(e={},t={}){if(await(t.flagDisabled??b9e)())return{success:!1,message:"pay_merchant_status requires the checkout_agent_access flag on your account. Ask an admin to enable it, then retry."};let n=typeof e.operationId=="string"&&/^[A-Za-z0-9_-]{1,200}$/.test(e.operationId)?e.operationId:null;if(!n)return{success:!1,action:"status",approvalStatus:"unknown",message:'A valid operationId from pay_merchant action "authorize" is required.'};let o=(t.approvalJobs??A1t).get(n);return o?T1t(o,"status"):{success:!1,action:"status",operationId:n,approvalStatus:"unknown",message:"No active approval operation exists. It may have expired or the MCP process may have restarted. If approval or merchant submission may have begun, reconcile the merchant order or receipt before starting a fresh review; never retry a purchase blindly."}}async function I1t(e={},t={}){let r=(e.rail??"card").toLowerCase();if(r!=="card")return{success:!1,message:`pay_merchant only implements the "card" rail today (got ${JSON.stringify(r)}). For stablecoin/x402, use the wallet tools (wallet_pay / wallet_directory_pay).`};let n=t.verifyUrl!==void 0?t.verifyUrl:DX()&&!process.env.VISA_VERIFY_WEB_URL?null:yl();if(n===null)return{success:!1,message:"pay_merchant is not available in stable CLI builds (it runs an on-device mint and is limited to tester/RC builds). Use a preview build with VISA_VERIFY_WEB_URL set and the checkout_agent_access flag enabled."};if(await(t.flagDisabled??b9e)())return{success:!1,message:"pay_merchant requires the checkout_agent_access flag on your account. Ask an admin to enable it, then retry."};let o=e.action??"review";if(!["review","pay","authorize"].includes(o))return{success:!1,message:`Unknown pay_merchant action ${JSON.stringify(o)}. Use "review" (default), "authorize", or "pay".`};let s=t.approvalJobs??A1t,a,c,u=(e.currency??"USD").toUpperCase();if(!/^[A-Z]{3}$/.test(u))return{success:!1,message:`Invalid currency ${JSON.stringify(e.currency)}. Expected a 3-letter ISO code like "USD".`};try{a=$8e(e.url??"").toString(),c=y9e(e.amount)}catch(C){if(C instanceof ah)return{success:!1,message:C.message};throw C}let d=t.credentialPath??x1t,l=t.contactPath??E1t;try{await(0,SB.readFile)(d,"utf8")}catch{return{success:!1,message:"No enrolled agent credential on this device \u2014 run enroll_agent (start -> claim) first, then retry pay_merchant."}}let p;try{p=JSON.parse(await(0,SB.readFile)(l,"utf8"))}catch{return{success:!1,message:`No contact details at ${l}. Write your name/email/address there (chmod 600) first.`}}let f=null;if(o==="pay"||o==="authorize"){let C=typeof e.confirm=="string"?e.confirm.trim():"",I=/^PAY (\S+)$/.exec(C);if(!I)return{success:!1,action:o,message:'Confirmation required: pass confirm:"PAY <reviewId>" using the reviewId from a prior pay_merchant { action:"review" } call. Nothing was charged.'};f=I[1]}let m=t.loadEngine??w1t,h;try{h=await m()}catch(C){let I=C instanceof Error?C.message:String(C);if(/ERR_MODULE_NOT_FOUND|Cannot find (module|package)/.test(I))return{success:!1,message:/checkout engine was not packaged/.test(I)?"The checkout engine was not packaged into this @visa/cli build (a build/packaging fault). Reinstall @visa/cli from a release that includes it. No charge was made.":"The checkout browser runtime is not installed (playwright-core is an optional dependency of @visa/cli). Install it with `npm i playwright-core` in the CLI install, then retry. No charge was made."};throw C}let y={url:a,amount:c,currency:u,credentialPath:d,contact:p,approvalBaseUrl:n},w=t.emitTelemetry??(C=>Op.emitTelemetry(C)),x=new URL(a).hostname,_=Math.round(Number(c)*100),v=Date.now();if(o==="review"){Re.info("pay_merchant:review",{host:x,currency:u});let C;try{C=await h.review(y)}catch(I){throw await BZ({emitTelemetry:w,action:"review",merchantHost:x,amountMinor:_,currency:u,outcome:"engine-error",success:!1,errorMessage:I instanceof Error?I.message:String(I),startedAt:v}),I}return await BZ({emitTelemetry:w,action:"review",merchantHost:x,amountMinor:_,currency:u,outcome:"reviewed",success:!0,startedAt:v}),{success:!0,action:"review",...C,message:`Review ${C.reviewId}: ${C.merchantHost} wants ${FA(C.amountMinor,C.currency)}. For a messaging handoff, call pay_merchant { action: "authorize", url, amount, confirm: "PAY ${C.reviewId}" }; for a blocking terminal flow use action "pay". No charge yet.`}}let E=f,A=t.allowSubmit??process.env.CHECKOUT_AGENT_ALLOW_SUBMIT==="1",S=async C=>{Re.info("pay_merchant:pay",{reviewId:E,submit:A,approvalMode:o==="authorize"?"handoff":"blocking"});let I;try{I=await h.pay({...y,reviewId:E,submit:A,...C?{onApprovalUrl:C}:{}})}catch(j){throw await BZ({emitTelemetry:w,action:"pay",merchantHost:x,amountMinor:_,currency:u,outcome:"engine-error",success:!1,errorMessage:j instanceof Error?j.message:String(j),startedAt:v,submit:A}),j}let k=I.outcome==="confirmed"||I.outcome==="filled-dry-run";await BZ({emitTelemetry:w,action:"pay",merchantHost:x,amountMinor:_,currency:u,outcome:I.outcome,confirmationRef:I.confirmationRef,success:k,errorMessage:k?null:I.detail??I.outcome,startedAt:v,submit:A,source:I.source??null,remainingMinor:I.remainingMinor??null,drawId:I.source==="mandate"?E:null});let q=I.source==="mandate"?` Drawn tap-free from an active card mandate${typeof I.remainingMinor=="number"?` (${I.remainingMinor} ${u} minor units remaining)`:""}.`:I.source==="fresh-tap"?" Paid with a fresh per-purchase passkey.":"";return{success:k,action:"pay",reviewId:E,...I,message:I.outcome==="confirmed"?`Paid. Confirmation ${I.confirmationRef??"(none captured)"} \xB7 receipt ${I.receiptPath??"(not written)"}.${q}`:`Outcome: ${I.outcome}${I.detail?` \u2014 ${I.detail}`:""}. Do not retry blindly \u2014 verify with the merchant before any re-run.`}};if(o==="authorize"){let C=(0,_1t.createHash)("sha256").update(JSON.stringify([E,a,c,u,A])).digest("hex");Re.info("pay_merchant:approval_handoff_started",{reviewId:E,merchantHost:x,currency:u,submit:A});try{let I=await s.start({reviewId:E,fingerprint:C,run:async k=>{try{let q=await S(j=>{Re.info("pay_merchant:approval_handoff_ready",{reviewId:E}),k(j)});return Re.info("pay_merchant:approval_handoff_completed",{reviewId:E,success:q.success===!0}),q}catch(q){throw Re.warn("pay_merchant:approval_handoff_failed",{reviewId:E,error:TB(q instanceof Error?q.message:String(q))}),q}}});return T1t(I,"authorize")}catch(I){if(I instanceof oB)return Re.warn("pay_merchant:approval_handoff_conflict",{reviewId:E}),{success:!1,action:"authorize",reviewId:E,approvalStatus:"conflict",message:"This review already has an approval handoff with different checkout inputs. Do not retry it; create and confirm a fresh review."};throw I}}return S()}async function O1t(e={},t={}){let r=(e.rail??"card").toLowerCase();if(r!=="card")return{success:!1,message:`start_card_mandate only supports the "card" rail (got ${JSON.stringify(r)}). For x402/stablecoin payments, use wallet_policy_set and wallet_pay.`};let n=t.verifyUrl!==void 0?t.verifyUrl:yl();if(n===null)return{success:!1,message:"start_card_mandate is not available in stable CLI builds (it runs a server-side mint and is limited to tester/RC builds). Use a preview build with VISA_VERIFY_WEB_URL set and the checkout_agent_access flag enabled."};if(await(t.flagDisabled??b9e)())return{success:!1,message:"start_card_mandate requires the checkout_agent_access flag on your account. Ask an admin to enable it, then retry."};let o=(e.currency??"USD").toUpperCase();if(!/^[A-Z]{3}$/.test(o))return{success:!1,message:`Invalid currency ${JSON.stringify(e.currency)}. Expected a 3-letter ISO code like "USD".`};let s=e.anyMerchant===!0,a,c;try{a=s?void 0:$8e(e.url??"").toString(),c=y9e(e.ceiling??e.amount)}catch(A){if(A instanceof ah)return{success:!1,message:A.message};throw A}if(e.expiresAt!==void 0){let A=Date.parse(e.expiresAt);if(!Number.isFinite(A)||A<=Date.now())return{success:!1,message:`Invalid expiresAt ${JSON.stringify(e.expiresAt)}. Expected a future ISO 8601 timestamp.`}}if(e.maxDraws!==void 0&&(!Number.isSafeInteger(e.maxDraws)||e.maxDraws<1))return{success:!1,message:"maxDraws must be a positive integer."};let u;if(e.perTransaction!==void 0){try{u=y9e(e.perTransaction)}catch(A){if(A instanceof ah)return{success:!1,message:A.message};throw A}if(Number(u)>Number(c))return{success:!1,message:"perTransaction cannot exceed the ceiling."}}let d;if(e.intent!==void 0){if(typeof e.intent!="string")return{success:!1,message:"intent must be a short string."};let A=e.intent.replace(/[\p{Cc}\u2028\u2029]/gu,"").trim().slice(0,200).trim();d=A.length>0?A:void 0}let l=t.credentialPath??x1t,p=t.contactPath??E1t;try{await(0,SB.readFile)(l,"utf8")}catch{return{success:!1,message:"No enrolled agent credential on this device \u2014 run enroll_agent (start -> claim) first, then retry start_card_mandate."}}let f;try{f=JSON.parse(await(0,SB.readFile)(p,"utf8"))}catch{return{success:!1,message:`No contact details at ${p}. Write your name/email/address there (chmod 600) first.`}}let m=t.loadEngine??w1t,h;try{h=await m()}catch(A){let S=A instanceof Error?A.message:String(A);if(/ERR_MODULE_NOT_FOUND|Cannot find (module|package)/.test(S))return{success:!1,message:"The checkout engine was not packaged into this @visa/cli build (a build/packaging fault). Reinstall @visa/cli from a release that includes it. No mandate was created."};throw A}let y=s?"any-merchant":new URL(a).hostname,w=Math.round(Number(c)*100),x=t.emitTelemetry??(A=>Op.emitTelemetry(A)),_=Date.now();Re.info("start_card_mandate:create",{host:y,currency:o});let v;try{v=await h.startCardMandate({...a?{url:a}:{},ceiling:c,currency:o,credentialPath:l,contact:f,approvalBaseUrl:n,...s?{anyMerchant:!0}:{},...e.merchantName?{merchantName:e.merchantName}:{},...e.expiresAt?{expiresAt:e.expiresAt}:{},...e.maxDraws!==void 0?{maxDraws:e.maxDraws}:{},...u!==void 0?{perTransaction:u}:{},...d!==void 0?{intent:d}:{}})}catch(A){let S=A instanceof Error?TB(A.message):String(A);return Re.warn("start_card_mandate:failed",{message:S}),await y1t({emitTelemetry:x,merchantHost:y,ceilingMinor:w,currency:o,outcome:"engine-error",success:!1,errorMessage:A instanceof Error?A.message:String(A),startedAt:_}),{success:!1,message:`Could not create the mandate: ${S}`}}let E=v.registerFailed===!0;return E&&Re.warn("start_card_mandate:register_failed",{mandateId:v.mandateId,host:y}),await y1t({emitTelemetry:x,merchantHost:y,ceilingMinor:w,currency:o,outcome:E?"created-register-failed":"created",success:!E,mandateId:v.mandateId,remainingMinor:v.remainingMinor,startedAt:_}),E?{success:!1,mandateId:v.mandateId,ceiling:c,remainingMinor:v.remainingMinor,currency:v.currencyCode,merchant:v.merchant,merchantHost:v.merchantHost,expiresAt:v.expiresAt,message:`Mandate ${v.mandateId} was created but could NOT be registered for tap-free draws, so it will not be used \u2014 your next pay_merchant will fall through to a fresh per-purchase passkey tap. Re-run to try again once the auth server is reachable.`}:{success:!0,mandateId:v.mandateId,ceiling:c,remainingMinor:v.remainingMinor,currency:v.currencyCode,merchant:v.merchant,merchantHost:v.merchantHost,expiresAt:v.expiresAt,message:`Mandate ${v.mandateId} active: up to ${FA(w,v.currencyCode)} at ${v.merchantHost} until ${v.expiresAt}. pay_merchant will now draw against it tap-free (no fresh passkey) until the budget is spent or it expires. NOTE: honoring a ceiling-scoped assurance across multiple draws is unproven live \u2014 if the network declines a draw, the budget is left untouched and that mandate is disabled, so your next pay_merchant uses a fresh per-purchase tap (it does NOT fall back within the same call).`}}var wht=require("node:crypto");var ght=require("node:crypto");var Dr={};Mi(Dr,{BRAND:()=>fAr,DIRTY:()=>v4,EMPTY_PATH:()=>VEr,INVALID:()=>gt,NEVER:()=>FAr,OK:()=>ha,ParseStatus:()=>Rs,Schema:()=>Lt,ZodAny:()=>P2,ZodArray:()=>gh,ZodBigInt:()=>x4,ZodBoolean:()=>E4,ZodBranded:()=>IB,ZodCatch:()=>N4,ZodDate:()=>A4,ZodDefault:()=>B4,ZodDiscriminatedUnion:()=>UZ,ZodEffects:()=>cl,ZodEnum:()=>k4,ZodError:()=>Zc,ZodFirstPartyTypeKind:()=>Et,ZodFunction:()=>MZ,ZodIntersection:()=>I4,ZodIssueCode:()=>ye,ZodLazy:()=>O4,ZodLiteral:()=>C4,ZodMap:()=>aS,ZodNaN:()=>uS,ZodNativeEnum:()=>R4,ZodNever:()=>kp,ZodNull:()=>T4,ZodNullable:()=>Fm,ZodNumber:()=>w4,ZodObject:()=>Xc,ZodOptional:()=>sl,ZodParsedType:()=>ke,ZodPipeline:()=>OB,ZodPromise:()=>I2,ZodReadonly:()=>j4,ZodRecord:()=>qZ,ZodSchema:()=>Lt,ZodSet:()=>cS,ZodString:()=>T2,ZodSymbol:()=>oS,ZodTransformer:()=>cl,ZodTuple:()=>Hm,ZodType:()=>Lt,ZodUndefined:()=>S4,ZodUnion:()=>P4,ZodUnknown:()=>yh,ZodVoid:()=>sS,addIssueToContext:()=>Se,any:()=>dl,array:()=>ue,bigint:()=>gAr,boolean:()=>ul,coerce:()=>Ju,custom:()=>q1t,date:()=>bAr,datetimeRegex:()=>j1t,defaultErrorMap:()=>mh,discriminatedUnion:()=>SAr,effect:()=>jAr,enum:()=>ll,function:()=>CAr,getErrorMap:()=>rS,getParsedType:()=>zm,instanceof:()=>hAr,intersection:()=>TAr,isAborted:()=>NZ,isAsync:()=>nS,isDirty:()=>jZ,isValid:()=>S2,late:()=>mAr,lazy:()=>kAr,literal:()=>RAr,makeIssue:()=>PB,map:()=>IAr,nan:()=>yAr,nativeEnum:()=>BAr,never:()=>xAr,null:()=>dS,nullable:()=>qAr,number:()=>Rr,object:()=>fe,objectUtil:()=>_9e,oboolean:()=>HAr,onumber:()=>zAr,optional:()=>UAr,ostring:()=>LAr,pipeline:()=>DAr,preprocess:()=>MAr,promise:()=>NAr,quotelessJson:()=>HEr,record:()=>Qt,set:()=>OAr,setErrorMap:()=>$Er,strictObject:()=>AAr,string:()=>L,symbol:()=>_Ar,transformer:()=>jAr,tuple:()=>PAr,undefined:()=>vAr,union:()=>lS,unknown:()=>wAr,util:()=>Xt,void:()=>EAr});var Xt;(function(e){e.assertEqual=i=>{};function t(i){}e.assertIs=t;function r(i){throw new Error}e.assertNever=r,e.arrayToEnum=i=>{let o={};for(let s of i)o[s]=s;return o},e.getValidEnumValues=i=>{let o=e.objectKeys(i).filter(a=>typeof i[i[a]]!="number"),s={};for(let a of o)s[a]=i[a];return e.objectValues(s)},e.objectValues=i=>e.objectKeys(i).map(function(o){return i[o]}),e.objectKeys=typeof Object.keys=="function"?i=>Object.keys(i):i=>{let o=[];for(let s in i)Object.prototype.hasOwnProperty.call(i,s)&&o.push(s);return o},e.find=(i,o)=>{for(let s of i)if(o(s))return s},e.isInteger=typeof Number.isInteger=="function"?i=>Number.isInteger(i):i=>typeof i=="number"&&Number.isFinite(i)&&Math.floor(i)===i;function n(i,o=" | "){return i.map(s=>typeof s=="string"?`'${s}'`:s).join(o)}e.joinValues=n,e.jsonStringifyReplacer=(i,o)=>typeof o=="bigint"?o.toString():o})(Xt||(Xt={}));var _9e;(function(e){e.mergeShapes=(t,r)=>({...t,...r})})(_9e||(_9e={}));var ke=Xt.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),zm=e=>{switch(typeof e){case"undefined":return ke.undefined;case"string":return ke.string;case"number":return Number.isNaN(e)?ke.nan:ke.number;case"boolean":return ke.boolean;case"function":return ke.function;case"bigint":return ke.bigint;case"symbol":return ke.symbol;case"object":return Array.isArray(e)?ke.array:e===null?ke.null:e.then&&typeof e.then=="function"&&e.catch&&typeof e.catch=="function"?ke.promise:typeof Map<"u"&&e instanceof Map?ke.map:typeof Set<"u"&&e instanceof Set?ke.set:typeof Date<"u"&&e instanceof Date?ke.date:ke.object;default:return ke.unknown}};var ye=Xt.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]),HEr=e=>JSON.stringify(e,null,2).replace(/"([^"]+)":/g,"$1:"),Zc=class e extends Error{get errors(){return this.issues}constructor(t){super(),this.issues=[],this.addIssue=n=>{this.issues=[...this.issues,n]},this.addIssues=(n=[])=>{this.issues=[...this.issues,...n]};let r=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,r):this.__proto__=r,this.name="ZodError",this.issues=t}format(t){let r=t||function(o){return o.message},n={_errors:[]},i=o=>{for(let s of o.issues)if(s.code==="invalid_union")s.unionErrors.map(i);else if(s.code==="invalid_return_type")i(s.returnTypeError);else if(s.code==="invalid_arguments")i(s.argumentsError);else if(s.path.length===0)n._errors.push(r(s));else{let a=n,c=0;for(;c<s.path.length;){let u=s.path[c];c===s.path.length-1?(a[u]=a[u]||{_errors:[]},a[u]._errors.push(r(s))):a[u]=a[u]||{_errors:[]},a=a[u],c++}}};return i(this),n}static assert(t){if(!(t instanceof e))throw new Error(`Not a ZodError: ${t}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,Xt.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(t=r=>r.message){let r={},n=[];for(let i of this.issues)if(i.path.length>0){let o=i.path[0];r[o]=r[o]||[],r[o].push(t(i))}else n.push(t(i));return{formErrors:n,fieldErrors:r}}get formErrors(){return this.flatten()}};Zc.create=e=>new Zc(e);var FEr=(e,t)=>{let r;switch(e.code){case ye.invalid_type:e.received===ke.undefined?r="Required":r=`Expected ${e.expected}, received ${e.received}`;break;case ye.invalid_literal:r=`Invalid literal value, expected ${JSON.stringify(e.expected,Xt.jsonStringifyReplacer)}`;break;case ye.unrecognized_keys:r=`Unrecognized key(s) in object: ${Xt.joinValues(e.keys,", ")}`;break;case ye.invalid_union:r="Invalid input";break;case ye.invalid_union_discriminator:r=`Invalid discriminator value. Expected ${Xt.joinValues(e.options)}`;break;case ye.invalid_enum_value:r=`Invalid enum value. Expected ${Xt.joinValues(e.options)}, received '${e.received}'`;break;case ye.invalid_arguments:r="Invalid function arguments";break;case ye.invalid_return_type:r="Invalid function return type";break;case ye.invalid_date:r="Invalid date";break;case ye.invalid_string:typeof e.validation=="object"?"includes"in e.validation?(r=`Invalid input: must include "${e.validation.includes}"`,typeof e.validation.position=="number"&&(r=`${r} at one or more positions greater than or equal to ${e.validation.position}`)):"startsWith"in e.validation?r=`Invalid input: must start with "${e.validation.startsWith}"`:"endsWith"in e.validation?r=`Invalid input: must end with "${e.validation.endsWith}"`:Xt.assertNever(e.validation):e.validation!=="regex"?r=`Invalid ${e.validation}`:r="Invalid";break;case ye.too_small:e.type==="array"?r=`Array must contain ${e.exact?"exactly":e.inclusive?"at least":"more than"} ${e.minimum} element(s)`:e.type==="string"?r=`String must contain ${e.exact?"exactly":e.inclusive?"at least":"over"} ${e.minimum} character(s)`:e.type==="number"?r=`Number must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${e.minimum}`:e.type==="bigint"?r=`Number must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${e.minimum}`:e.type==="date"?r=`Date must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(e.minimum))}`:r="Invalid input";break;case ye.too_big:e.type==="array"?r=`Array must contain ${e.exact?"exactly":e.inclusive?"at most":"less than"} ${e.maximum} element(s)`:e.type==="string"?r=`String must contain ${e.exact?"exactly":e.inclusive?"at most":"under"} ${e.maximum} character(s)`:e.type==="number"?r=`Number must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:e.type==="bigint"?r=`BigInt must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:e.type==="date"?r=`Date must be ${e.exact?"exactly":e.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(e.maximum))}`:r="Invalid input";break;case ye.custom:r="Invalid input";break;case ye.invalid_intersection_types:r="Intersection results could not be merged";break;case ye.not_multiple_of:r=`Number must be a multiple of ${e.multipleOf}`;break;case ye.not_finite:r="Number must be finite";break;default:r=t.defaultError,Xt.assertNever(e)}return{message:r}},mh=FEr;var C1t=mh;function $Er(e){C1t=e}function rS(){return C1t}var PB=e=>{let{data:t,path:r,errorMaps:n,issueData:i}=e,o=[...r,...i.path||[]],s={...i,path:o};if(i.message!==void 0)return{...i,path:o,message:i.message};let a="",c=n.filter(u=>!!u).slice().reverse();for(let u of c)a=u(s,{data:t,defaultError:a}).message;return{...i,path:o,message:a}},VEr=[];function Se(e,t){let r=rS(),n=PB({issueData:t,data:e.data,path:e.path,errorMaps:[e.common.contextualErrorMap,e.schemaErrorMap,r,r===mh?void 0:mh].filter(i=>!!i)});e.common.issues.push(n)}var Rs=class e{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(t,r){let n=[];for(let i of r){if(i.status==="aborted")return gt;i.status==="dirty"&&t.dirty(),n.push(i.value)}return{status:t.value,value:n}}static async mergeObjectAsync(t,r){let n=[];for(let i of r){let o=await i.key,s=await i.value;n.push({key:o,value:s})}return e.mergeObjectSync(t,n)}static mergeObjectSync(t,r){let n={};for(let i of r){let{key:o,value:s}=i;if(o.status==="aborted"||s.status==="aborted")return gt;o.status==="dirty"&&t.dirty(),s.status==="dirty"&&t.dirty(),o.value!=="__proto__"&&(typeof s.value<"u"||i.alwaysSet)&&(n[o.value]=s.value)}return{status:t.value,value:n}}},gt=Object.freeze({status:"aborted"}),v4=e=>({status:"dirty",value:e}),ha=e=>({status:"valid",value:e}),NZ=e=>e.status==="aborted",jZ=e=>e.status==="dirty",S2=e=>e.status==="valid",nS=e=>typeof Promise<"u"&&e instanceof Promise;var Qe;(function(e){e.errToObj=t=>typeof t=="string"?{message:t}:t||{},e.toString=t=>typeof t=="string"?t:t?.message})(Qe||(Qe={}));var al=class{constructor(t,r,n,i){this._cachedPath=[],this.parent=t,this.data=r,this._path=n,this._key=i}get path(){return this._cachedPath.length||(Array.isArray(this._key)?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}},k1t=(e,t)=>{if(S2(t))return{success:!0,data:t.value};if(!e.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;let r=new Zc(e.common.issues);return this._error=r,this._error}}};function Ut(e){if(!e)return{};let{errorMap:t,invalid_type_error:r,required_error:n,description:i}=e;if(t&&(r||n))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return t?{errorMap:t,description:i}:{errorMap:(s,a)=>{let{message:c}=e;return s.code==="invalid_enum_value"?{message:c??a.defaultError}:typeof a.data>"u"?{message:c??n??a.defaultError}:s.code!=="invalid_type"?{message:a.defaultError}:{message:c??r??a.defaultError}},description:i}}var Lt=class{get description(){return this._def.description}_getType(t){return zm(t.data)}_getOrReturnCtx(t,r){return r||{common:t.parent.common,data:t.data,parsedType:zm(t.data),schemaErrorMap:this._def.errorMap,path:t.path,parent:t.parent}}_processInputParams(t){return{status:new Rs,ctx:{common:t.parent.common,data:t.data,parsedType:zm(t.data),schemaErrorMap:this._def.errorMap,path:t.path,parent:t.parent}}}_parseSync(t){let r=this._parse(t);if(nS(r))throw new Error("Synchronous parse encountered promise.");return r}_parseAsync(t){let r=this._parse(t);return Promise.resolve(r)}parse(t,r){let n=this.safeParse(t,r);if(n.success)return n.data;throw n.error}safeParse(t,r){let n={common:{issues:[],async:r?.async??!1,contextualErrorMap:r?.errorMap},path:r?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:zm(t)},i=this._parseSync({data:t,path:n.path,parent:n});return k1t(n,i)}"~validate"(t){let r={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:zm(t)};if(!this["~standard"].async)try{let n=this._parseSync({data:t,path:[],parent:r});return S2(n)?{value:n.value}:{issues:r.common.issues}}catch(n){n?.message?.toLowerCase()?.includes("encountered")&&(this["~standard"].async=!0),r.common={issues:[],async:!0}}return this._parseAsync({data:t,path:[],parent:r}).then(n=>S2(n)?{value:n.value}:{issues:r.common.issues})}async parseAsync(t,r){let n=await this.safeParseAsync(t,r);if(n.success)return n.data;throw n.error}async safeParseAsync(t,r){let n={common:{issues:[],contextualErrorMap:r?.errorMap,async:!0},path:r?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:zm(t)},i=this._parse({data:t,path:n.path,parent:n}),o=await(nS(i)?i:Promise.resolve(i));return k1t(n,o)}refine(t,r){let n=i=>typeof r=="string"||typeof r>"u"?{message:r}:typeof r=="function"?r(i):r;return this._refinement((i,o)=>{let s=t(i),a=()=>o.addIssue({code:ye.custom,...n(i)});return typeof Promise<"u"&&s instanceof Promise?s.then(c=>c?!0:(a(),!1)):s?!0:(a(),!1)})}refinement(t,r){return this._refinement((n,i)=>t(n)?!0:(i.addIssue(typeof r=="function"?r(n,i):r),!1))}_refinement(t){return new cl({schema:this,typeName:Et.ZodEffects,effect:{type:"refinement",refinement:t}})}superRefine(t){return this._refinement(t)}constructor(t){this.spa=this.safeParseAsync,this._def=t,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:r=>this["~validate"](r)}}optional(){return sl.create(this,this._def)}nullable(){return Fm.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return gh.create(this)}promise(){return I2.create(this,this._def)}or(t){return P4.create([this,t],this._def)}and(t){return I4.create(this,t,this._def)}transform(t){return new cl({...Ut(this._def),schema:this,typeName:Et.ZodEffects,effect:{type:"transform",transform:t}})}default(t){let r=typeof t=="function"?t:()=>t;return new B4({...Ut(this._def),innerType:this,defaultValue:r,typeName:Et.ZodDefault})}brand(){return new IB({typeName:Et.ZodBranded,type:this,...Ut(this._def)})}catch(t){let r=typeof t=="function"?t:()=>t;return new N4({...Ut(this._def),innerType:this,catchValue:r,typeName:Et.ZodCatch})}describe(t){let r=this.constructor;return new r({...this._def,description:t})}pipe(t){return OB.create(this,t)}readonly(){return j4.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},KEr=/^c[^\s-]{8,}$/i,WEr=/^[0-9a-z]+$/,GEr=/^[0-9A-HJKMNP-TV-Z]{26}$/i,JEr=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,YEr=/^[a-z0-9_-]{21}$/i,ZEr=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,XEr=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,QEr=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,eAr="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",v9e,tAr=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,rAr=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,nAr=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,iAr=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,oAr=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,sAr=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,B1t="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",aAr=new RegExp(`^${B1t}$`);function N1t(e){let t="[0-5]\\d";e.precision?t=`${t}\\.\\d{${e.precision}}`:e.precision==null&&(t=`${t}(\\.\\d+)?`);let r=e.precision?"+":"?";return`([01]\\d|2[0-3]):[0-5]\\d(:${t})${r}`}function cAr(e){return new RegExp(`^${N1t(e)}$`)}function j1t(e){let t=`${B1t}T${N1t(e)}`,r=[];return r.push(e.local?"Z?":"Z"),e.offset&&r.push("([+-]\\d{2}:?\\d{2})"),t=`${t}(${r.join("|")})`,new RegExp(`^${t}$`)}function uAr(e,t){return!!((t==="v4"||!t)&&tAr.test(e)||(t==="v6"||!t)&&nAr.test(e))}function dAr(e,t){if(!ZEr.test(e))return!1;try{let[r]=e.split(".");if(!r)return!1;let n=r.replace(/-/g,"+").replace(/_/g,"/").padEnd(r.length+(4-r.length%4)%4,"="),i=JSON.parse(atob(n));return!(typeof i!="object"||i===null||"typ"in i&&i?.typ!=="JWT"||!i.alg||t&&i.alg!==t)}catch{return!1}}function lAr(e,t){return!!((t==="v4"||!t)&&rAr.test(e)||(t==="v6"||!t)&&iAr.test(e))}var T2=class e extends Lt{_parse(t){if(this._def.coerce&&(t.data=String(t.data)),this._getType(t)!==ke.string){let o=this._getOrReturnCtx(t);return Se(o,{code:ye.invalid_type,expected:ke.string,received:o.parsedType}),gt}let n=new Rs,i;for(let o of this._def.checks)if(o.kind==="min")t.data.length<o.value&&(i=this._getOrReturnCtx(t,i),Se(i,{code:ye.too_small,minimum:o.value,type:"string",inclusive:!0,exact:!1,message:o.message}),n.dirty());else if(o.kind==="max")t.data.length>o.value&&(i=this._getOrReturnCtx(t,i),Se(i,{code:ye.too_big,maximum:o.value,type:"string",inclusive:!0,exact:!1,message:o.message}),n.dirty());else if(o.kind==="length"){let s=t.data.length>o.value,a=t.data.length<o.value;(s||a)&&(i=this._getOrReturnCtx(t,i),s?Se(i,{code:ye.too_big,maximum:o.value,type:"string",inclusive:!0,exact:!0,message:o.message}):a&&Se(i,{code:ye.too_small,minimum:o.value,type:"string",inclusive:!0,exact:!0,message:o.message}),n.dirty())}else if(o.kind==="email")QEr.test(t.data)||(i=this._getOrReturnCtx(t,i),Se(i,{validation:"email",code:ye.invalid_string,message:o.message}),n.dirty());else if(o.kind==="emoji")v9e||(v9e=new RegExp(eAr,"u")),v9e.test(t.data)||(i=this._getOrReturnCtx(t,i),Se(i,{validation:"emoji",code:ye.invalid_string,message:o.message}),n.dirty());else if(o.kind==="uuid")JEr.test(t.data)||(i=this._getOrReturnCtx(t,i),Se(i,{validation:"uuid",code:ye.invalid_string,message:o.message}),n.dirty());else if(o.kind==="nanoid")YEr.test(t.data)||(i=this._getOrReturnCtx(t,i),Se(i,{validation:"nanoid",code:ye.invalid_string,message:o.message}),n.dirty());else if(o.kind==="cuid")KEr.test(t.data)||(i=this._getOrReturnCtx(t,i),Se(i,{validation:"cuid",code:ye.invalid_string,message:o.message}),n.dirty());else if(o.kind==="cuid2")WEr.test(t.data)||(i=this._getOrReturnCtx(t,i),Se(i,{validation:"cuid2",code:ye.invalid_string,message:o.message}),n.dirty());else if(o.kind==="ulid")GEr.test(t.data)||(i=this._getOrReturnCtx(t,i),Se(i,{validation:"ulid",code:ye.invalid_string,message:o.message}),n.dirty());else if(o.kind==="url")try{new URL(t.data)}catch{i=this._getOrReturnCtx(t,i),Se(i,{validation:"url",code:ye.invalid_string,message:o.message}),n.dirty()}else o.kind==="regex"?(o.regex.lastIndex=0,o.regex.test(t.data)||(i=this._getOrReturnCtx(t,i),Se(i,{validation:"regex",code:ye.invalid_string,message:o.message}),n.dirty())):o.kind==="trim"?t.data=t.data.trim():o.kind==="includes"?t.data.includes(o.value,o.position)||(i=this._getOrReturnCtx(t,i),Se(i,{code:ye.invalid_string,validation:{includes:o.value,position:o.position},message:o.message}),n.dirty()):o.kind==="toLowerCase"?t.data=t.data.toLowerCase():o.kind==="toUpperCase"?t.data=t.data.toUpperCase():o.kind==="startsWith"?t.data.startsWith(o.value)||(i=this._getOrReturnCtx(t,i),Se(i,{code:ye.invalid_string,validation:{startsWith:o.value},message:o.message}),n.dirty()):o.kind==="endsWith"?t.data.endsWith(o.value)||(i=this._getOrReturnCtx(t,i),Se(i,{code:ye.invalid_string,validation:{endsWith:o.value},message:o.message}),n.dirty()):o.kind==="datetime"?j1t(o).test(t.data)||(i=this._getOrReturnCtx(t,i),Se(i,{code:ye.invalid_string,validation:"datetime",message:o.message}),n.dirty()):o.kind==="date"?aAr.test(t.data)||(i=this._getOrReturnCtx(t,i),Se(i,{code:ye.invalid_string,validation:"date",message:o.message}),n.dirty()):o.kind==="time"?cAr(o).test(t.data)||(i=this._getOrReturnCtx(t,i),Se(i,{code:ye.invalid_string,validation:"time",message:o.message}),n.dirty()):o.kind==="duration"?XEr.test(t.data)||(i=this._getOrReturnCtx(t,i),Se(i,{validation:"duration",code:ye.invalid_string,message:o.message}),n.dirty()):o.kind==="ip"?uAr(t.data,o.version)||(i=this._getOrReturnCtx(t,i),Se(i,{validation:"ip",code:ye.invalid_string,message:o.message}),n.dirty()):o.kind==="jwt"?dAr(t.data,o.alg)||(i=this._getOrReturnCtx(t,i),Se(i,{validation:"jwt",code:ye.invalid_string,message:o.message}),n.dirty()):o.kind==="cidr"?lAr(t.data,o.version)||(i=this._getOrReturnCtx(t,i),Se(i,{validation:"cidr",code:ye.invalid_string,message:o.message}),n.dirty()):o.kind==="base64"?oAr.test(t.data)||(i=this._getOrReturnCtx(t,i),Se(i,{validation:"base64",code:ye.invalid_string,message:o.message}),n.dirty()):o.kind==="base64url"?sAr.test(t.data)||(i=this._getOrReturnCtx(t,i),Se(i,{validation:"base64url",code:ye.invalid_string,message:o.message}),n.dirty()):Xt.assertNever(o);return{status:n.value,value:t.data}}_regex(t,r,n){return this.refinement(i=>t.test(i),{validation:r,code:ye.invalid_string,...Qe.errToObj(n)})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}email(t){return this._addCheck({kind:"email",...Qe.errToObj(t)})}url(t){return this._addCheck({kind:"url",...Qe.errToObj(t)})}emoji(t){return this._addCheck({kind:"emoji",...Qe.errToObj(t)})}uuid(t){return this._addCheck({kind:"uuid",...Qe.errToObj(t)})}nanoid(t){return this._addCheck({kind:"nanoid",...Qe.errToObj(t)})}cuid(t){return this._addCheck({kind:"cuid",...Qe.errToObj(t)})}cuid2(t){return this._addCheck({kind:"cuid2",...Qe.errToObj(t)})}ulid(t){return this._addCheck({kind:"ulid",...Qe.errToObj(t)})}base64(t){return this._addCheck({kind:"base64",...Qe.errToObj(t)})}base64url(t){return this._addCheck({kind:"base64url",...Qe.errToObj(t)})}jwt(t){return this._addCheck({kind:"jwt",...Qe.errToObj(t)})}ip(t){return this._addCheck({kind:"ip",...Qe.errToObj(t)})}cidr(t){return this._addCheck({kind:"cidr",...Qe.errToObj(t)})}datetime(t){return typeof t=="string"?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:t}):this._addCheck({kind:"datetime",precision:typeof t?.precision>"u"?null:t?.precision,offset:t?.offset??!1,local:t?.local??!1,...Qe.errToObj(t?.message)})}date(t){return this._addCheck({kind:"date",message:t})}time(t){return typeof t=="string"?this._addCheck({kind:"time",precision:null,message:t}):this._addCheck({kind:"time",precision:typeof t?.precision>"u"?null:t?.precision,...Qe.errToObj(t?.message)})}duration(t){return this._addCheck({kind:"duration",...Qe.errToObj(t)})}regex(t,r){return this._addCheck({kind:"regex",regex:t,...Qe.errToObj(r)})}includes(t,r){return this._addCheck({kind:"includes",value:t,position:r?.position,...Qe.errToObj(r?.message)})}startsWith(t,r){return this._addCheck({kind:"startsWith",value:t,...Qe.errToObj(r)})}endsWith(t,r){return this._addCheck({kind:"endsWith",value:t,...Qe.errToObj(r)})}min(t,r){return this._addCheck({kind:"min",value:t,...Qe.errToObj(r)})}max(t,r){return this._addCheck({kind:"max",value:t,...Qe.errToObj(r)})}length(t,r){return this._addCheck({kind:"length",value:t,...Qe.errToObj(r)})}nonempty(t){return this.min(1,Qe.errToObj(t))}trim(){return new e({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new e({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new e({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(t=>t.kind==="datetime")}get isDate(){return!!this._def.checks.find(t=>t.kind==="date")}get isTime(){return!!this._def.checks.find(t=>t.kind==="time")}get isDuration(){return!!this._def.checks.find(t=>t.kind==="duration")}get isEmail(){return!!this._def.checks.find(t=>t.kind==="email")}get isURL(){return!!this._def.checks.find(t=>t.kind==="url")}get isEmoji(){return!!this._def.checks.find(t=>t.kind==="emoji")}get isUUID(){return!!this._def.checks.find(t=>t.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(t=>t.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(t=>t.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(t=>t.kind==="cuid2")}get isULID(){return!!this._def.checks.find(t=>t.kind==="ulid")}get isIP(){return!!this._def.checks.find(t=>t.kind==="ip")}get isCIDR(){return!!this._def.checks.find(t=>t.kind==="cidr")}get isBase64(){return!!this._def.checks.find(t=>t.kind==="base64")}get isBase64url(){return!!this._def.checks.find(t=>t.kind==="base64url")}get minLength(){let t=null;for(let r of this._def.checks)r.kind==="min"&&(t===null||r.value>t)&&(t=r.value);return t}get maxLength(){let t=null;for(let r of this._def.checks)r.kind==="max"&&(t===null||r.value<t)&&(t=r.value);return t}};T2.create=e=>new T2({checks:[],typeName:Et.ZodString,coerce:e?.coerce??!1,...Ut(e)});function pAr(e,t){let r=(e.toString().split(".")[1]||"").length,n=(t.toString().split(".")[1]||"").length,i=r>n?r:n,o=Number.parseInt(e.toFixed(i).replace(".","")),s=Number.parseInt(t.toFixed(i).replace(".",""));return o%s/10**i}var w4=class e extends Lt{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(t){if(this._def.coerce&&(t.data=Number(t.data)),this._getType(t)!==ke.number){let o=this._getOrReturnCtx(t);return Se(o,{code:ye.invalid_type,expected:ke.number,received:o.parsedType}),gt}let n,i=new Rs;for(let o of this._def.checks)o.kind==="int"?Xt.isInteger(t.data)||(n=this._getOrReturnCtx(t,n),Se(n,{code:ye.invalid_type,expected:"integer",received:"float",message:o.message}),i.dirty()):o.kind==="min"?(o.inclusive?t.data<o.value:t.data<=o.value)&&(n=this._getOrReturnCtx(t,n),Se(n,{code:ye.too_small,minimum:o.value,type:"number",inclusive:o.inclusive,exact:!1,message:o.message}),i.dirty()):o.kind==="max"?(o.inclusive?t.data>o.value:t.data>=o.value)&&(n=this._getOrReturnCtx(t,n),Se(n,{code:ye.too_big,maximum:o.value,type:"number",inclusive:o.inclusive,exact:!1,message:o.message}),i.dirty()):o.kind==="multipleOf"?pAr(t.data,o.value)!==0&&(n=this._getOrReturnCtx(t,n),Se(n,{code:ye.not_multiple_of,multipleOf:o.value,message:o.message}),i.dirty()):o.kind==="finite"?Number.isFinite(t.data)||(n=this._getOrReturnCtx(t,n),Se(n,{code:ye.not_finite,message:o.message}),i.dirty()):Xt.assertNever(o);return{status:i.value,value:t.data}}gte(t,r){return this.setLimit("min",t,!0,Qe.toString(r))}gt(t,r){return this.setLimit("min",t,!1,Qe.toString(r))}lte(t,r){return this.setLimit("max",t,!0,Qe.toString(r))}lt(t,r){return this.setLimit("max",t,!1,Qe.toString(r))}setLimit(t,r,n,i){return new e({...this._def,checks:[...this._def.checks,{kind:t,value:r,inclusive:n,message:Qe.toString(i)}]})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}int(t){return this._addCheck({kind:"int",message:Qe.toString(t)})}positive(t){return this._addCheck({kind:"min",value:0,inclusive:!1,message:Qe.toString(t)})}negative(t){return this._addCheck({kind:"max",value:0,inclusive:!1,message:Qe.toString(t)})}nonpositive(t){return this._addCheck({kind:"max",value:0,inclusive:!0,message:Qe.toString(t)})}nonnegative(t){return this._addCheck({kind:"min",value:0,inclusive:!0,message:Qe.toString(t)})}multipleOf(t,r){return this._addCheck({kind:"multipleOf",value:t,message:Qe.toString(r)})}finite(t){return this._addCheck({kind:"finite",message:Qe.toString(t)})}safe(t){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:Qe.toString(t)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:Qe.toString(t)})}get minValue(){let t=null;for(let r of this._def.checks)r.kind==="min"&&(t===null||r.value>t)&&(t=r.value);return t}get maxValue(){let t=null;for(let r of this._def.checks)r.kind==="max"&&(t===null||r.value<t)&&(t=r.value);return t}get isInt(){return!!this._def.checks.find(t=>t.kind==="int"||t.kind==="multipleOf"&&Xt.isInteger(t.value))}get isFinite(){let t=null,r=null;for(let n of this._def.checks){if(n.kind==="finite"||n.kind==="int"||n.kind==="multipleOf")return!0;n.kind==="min"?(r===null||n.value>r)&&(r=n.value):n.kind==="max"&&(t===null||n.value<t)&&(t=n.value)}return Number.isFinite(r)&&Number.isFinite(t)}};w4.create=e=>new w4({checks:[],typeName:Et.ZodNumber,coerce:e?.coerce||!1,...Ut(e)});var x4=class e extends Lt{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(t){if(this._def.coerce)try{t.data=BigInt(t.data)}catch{return this._getInvalidInput(t)}if(this._getType(t)!==ke.bigint)return this._getInvalidInput(t);let n,i=new Rs;for(let o of this._def.checks)o.kind==="min"?(o.inclusive?t.data<o.value:t.data<=o.value)&&(n=this._getOrReturnCtx(t,n),Se(n,{code:ye.too_small,type:"bigint",minimum:o.value,inclusive:o.inclusive,message:o.message}),i.dirty()):o.kind==="max"?(o.inclusive?t.data>o.value:t.data>=o.value)&&(n=this._getOrReturnCtx(t,n),Se(n,{code:ye.too_big,type:"bigint",maximum:o.value,inclusive:o.inclusive,message:o.message}),i.dirty()):o.kind==="multipleOf"?t.data%o.value!==BigInt(0)&&(n=this._getOrReturnCtx(t,n),Se(n,{code:ye.not_multiple_of,multipleOf:o.value,message:o.message}),i.dirty()):Xt.assertNever(o);return{status:i.value,value:t.data}}_getInvalidInput(t){let r=this._getOrReturnCtx(t);return Se(r,{code:ye.invalid_type,expected:ke.bigint,received:r.parsedType}),gt}gte(t,r){return this.setLimit("min",t,!0,Qe.toString(r))}gt(t,r){return this.setLimit("min",t,!1,Qe.toString(r))}lte(t,r){return this.setLimit("max",t,!0,Qe.toString(r))}lt(t,r){return this.setLimit("max",t,!1,Qe.toString(r))}setLimit(t,r,n,i){return new e({...this._def,checks:[...this._def.checks,{kind:t,value:r,inclusive:n,message:Qe.toString(i)}]})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}positive(t){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:Qe.toString(t)})}negative(t){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:Qe.toString(t)})}nonpositive(t){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:Qe.toString(t)})}nonnegative(t){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:Qe.toString(t)})}multipleOf(t,r){return this._addCheck({kind:"multipleOf",value:t,message:Qe.toString(r)})}get minValue(){let t=null;for(let r of this._def.checks)r.kind==="min"&&(t===null||r.value>t)&&(t=r.value);return t}get maxValue(){let t=null;for(let r of this._def.checks)r.kind==="max"&&(t===null||r.value<t)&&(t=r.value);return t}};x4.create=e=>new x4({checks:[],typeName:Et.ZodBigInt,coerce:e?.coerce??!1,...Ut(e)});var E4=class extends Lt{_parse(t){if(this._def.coerce&&(t.data=!!t.data),this._getType(t)!==ke.boolean){let n=this._getOrReturnCtx(t);return Se(n,{code:ye.invalid_type,expected:ke.boolean,received:n.parsedType}),gt}return ha(t.data)}};E4.create=e=>new E4({typeName:Et.ZodBoolean,coerce:e?.coerce||!1,...Ut(e)});var A4=class e extends Lt{_parse(t){if(this._def.coerce&&(t.data=new Date(t.data)),this._getType(t)!==ke.date){let o=this._getOrReturnCtx(t);return Se(o,{code:ye.invalid_type,expected:ke.date,received:o.parsedType}),gt}if(Number.isNaN(t.data.getTime())){let o=this._getOrReturnCtx(t);return Se(o,{code:ye.invalid_date}),gt}let n=new Rs,i;for(let o of this._def.checks)o.kind==="min"?t.data.getTime()<o.value&&(i=this._getOrReturnCtx(t,i),Se(i,{code:ye.too_small,message:o.message,inclusive:!0,exact:!1,minimum:o.value,type:"date"}),n.dirty()):o.kind==="max"?t.data.getTime()>o.value&&(i=this._getOrReturnCtx(t,i),Se(i,{code:ye.too_big,message:o.message,inclusive:!0,exact:!1,maximum:o.value,type:"date"}),n.dirty()):Xt.assertNever(o);return{status:n.value,value:new Date(t.data.getTime())}}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}min(t,r){return this._addCheck({kind:"min",value:t.getTime(),message:Qe.toString(r)})}max(t,r){return this._addCheck({kind:"max",value:t.getTime(),message:Qe.toString(r)})}get minDate(){let t=null;for(let r of this._def.checks)r.kind==="min"&&(t===null||r.value>t)&&(t=r.value);return t!=null?new Date(t):null}get maxDate(){let t=null;for(let r of this._def.checks)r.kind==="max"&&(t===null||r.value<t)&&(t=r.value);return t!=null?new Date(t):null}};A4.create=e=>new A4({checks:[],coerce:e?.coerce||!1,typeName:Et.ZodDate,...Ut(e)});var oS=class extends Lt{_parse(t){if(this._getType(t)!==ke.symbol){let n=this._getOrReturnCtx(t);return Se(n,{code:ye.invalid_type,expected:ke.symbol,received:n.parsedType}),gt}return ha(t.data)}};oS.create=e=>new oS({typeName:Et.ZodSymbol,...Ut(e)});var S4=class extends Lt{_parse(t){if(this._getType(t)!==ke.undefined){let n=this._getOrReturnCtx(t);return Se(n,{code:ye.invalid_type,expected:ke.undefined,received:n.parsedType}),gt}return ha(t.data)}};S4.create=e=>new S4({typeName:Et.ZodUndefined,...Ut(e)});var T4=class extends Lt{_parse(t){if(this._getType(t)!==ke.null){let n=this._getOrReturnCtx(t);return Se(n,{code:ye.invalid_type,expected:ke.null,received:n.parsedType}),gt}return ha(t.data)}};T4.create=e=>new T4({typeName:Et.ZodNull,...Ut(e)});var P2=class extends Lt{constructor(){super(...arguments),this._any=!0}_parse(t){return ha(t.data)}};P2.create=e=>new P2({typeName:Et.ZodAny,...Ut(e)});var yh=class extends Lt{constructor(){super(...arguments),this._unknown=!0}_parse(t){return ha(t.data)}};yh.create=e=>new yh({typeName:Et.ZodUnknown,...Ut(e)});var kp=class extends Lt{_parse(t){let r=this._getOrReturnCtx(t);return Se(r,{code:ye.invalid_type,expected:ke.never,received:r.parsedType}),gt}};kp.create=e=>new kp({typeName:Et.ZodNever,...Ut(e)});var sS=class extends Lt{_parse(t){if(this._getType(t)!==ke.undefined){let n=this._getOrReturnCtx(t);return Se(n,{code:ye.invalid_type,expected:ke.void,received:n.parsedType}),gt}return ha(t.data)}};sS.create=e=>new sS({typeName:Et.ZodVoid,...Ut(e)});var gh=class e extends Lt{_parse(t){let{ctx:r,status:n}=this._processInputParams(t),i=this._def;if(r.parsedType!==ke.array)return Se(r,{code:ye.invalid_type,expected:ke.array,received:r.parsedType}),gt;if(i.exactLength!==null){let s=r.data.length>i.exactLength.value,a=r.data.length<i.exactLength.value;(s||a)&&(Se(r,{code:s?ye.too_big:ye.too_small,minimum:a?i.exactLength.value:void 0,maximum:s?i.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:i.exactLength.message}),n.dirty())}if(i.minLength!==null&&r.data.length<i.minLength.value&&(Se(r,{code:ye.too_small,minimum:i.minLength.value,type:"array",inclusive:!0,exact:!1,message:i.minLength.message}),n.dirty()),i.maxLength!==null&&r.data.length>i.maxLength.value&&(Se(r,{code:ye.too_big,maximum:i.maxLength.value,type:"array",inclusive:!0,exact:!1,message:i.maxLength.message}),n.dirty()),r.common.async)return Promise.all([...r.data].map((s,a)=>i.type._parseAsync(new al(r,s,r.path,a)))).then(s=>Rs.mergeArray(n,s));let o=[...r.data].map((s,a)=>i.type._parseSync(new al(r,s,r.path,a)));return Rs.mergeArray(n,o)}get element(){return this._def.type}min(t,r){return new e({...this._def,minLength:{value:t,message:Qe.toString(r)}})}max(t,r){return new e({...this._def,maxLength:{value:t,message:Qe.toString(r)}})}length(t,r){return new e({...this._def,exactLength:{value:t,message:Qe.toString(r)}})}nonempty(t){return this.min(1,t)}};gh.create=(e,t)=>new gh({type:e,minLength:null,maxLength:null,exactLength:null,typeName:Et.ZodArray,...Ut(t)});function iS(e){if(e instanceof Xc){let t={};for(let r in e.shape){let n=e.shape[r];t[r]=sl.create(iS(n))}return new Xc({...e._def,shape:()=>t})}else return e instanceof gh?new gh({...e._def,type:iS(e.element)}):e instanceof sl?sl.create(iS(e.unwrap())):e instanceof Fm?Fm.create(iS(e.unwrap())):e instanceof Hm?Hm.create(e.items.map(t=>iS(t))):e}var Xc=class e extends Lt{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;let t=this._def.shape(),r=Xt.objectKeys(t);return this._cached={shape:t,keys:r},this._cached}_parse(t){if(this._getType(t)!==ke.object){let u=this._getOrReturnCtx(t);return Se(u,{code:ye.invalid_type,expected:ke.object,received:u.parsedType}),gt}let{status:n,ctx:i}=this._processInputParams(t),{shape:o,keys:s}=this._getCached(),a=[];if(!(this._def.catchall instanceof kp&&this._def.unknownKeys==="strip"))for(let u in i.data)s.includes(u)||a.push(u);let c=[];for(let u of s){let d=o[u],l=i.data[u];c.push({key:{status:"valid",value:u},value:d._parse(new al(i,l,i.path,u)),alwaysSet:u in i.data})}if(this._def.catchall instanceof kp){let u=this._def.unknownKeys;if(u==="passthrough")for(let d of a)c.push({key:{status:"valid",value:d},value:{status:"valid",value:i.data[d]}});else if(u==="strict")a.length>0&&(Se(i,{code:ye.unrecognized_keys,keys:a}),n.dirty());else if(u!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{let u=this._def.catchall;for(let d of a){let l=i.data[d];c.push({key:{status:"valid",value:d},value:u._parse(new al(i,l,i.path,d)),alwaysSet:d in i.data})}}return i.common.async?Promise.resolve().then(async()=>{let u=[];for(let d of c){let l=await d.key,p=await d.value;u.push({key:l,value:p,alwaysSet:d.alwaysSet})}return u}).then(u=>Rs.mergeObjectSync(n,u)):Rs.mergeObjectSync(n,c)}get shape(){return this._def.shape()}strict(t){return Qe.errToObj,new e({...this._def,unknownKeys:"strict",...t!==void 0?{errorMap:(r,n)=>{let i=this._def.errorMap?.(r,n).message??n.defaultError;return r.code==="unrecognized_keys"?{message:Qe.errToObj(t).message??i}:{message:i}}}:{}})}strip(){return new e({...this._def,unknownKeys:"strip"})}passthrough(){return new e({...this._def,unknownKeys:"passthrough"})}extend(t){return new e({...this._def,shape:()=>({...this._def.shape(),...t})})}merge(t){return new e({unknownKeys:t._def.unknownKeys,catchall:t._def.catchall,shape:()=>({...this._def.shape(),...t._def.shape()}),typeName:Et.ZodObject})}setKey(t,r){return this.augment({[t]:r})}catchall(t){return new e({...this._def,catchall:t})}pick(t){let r={};for(let n of Xt.objectKeys(t))t[n]&&this.shape[n]&&(r[n]=this.shape[n]);return new e({...this._def,shape:()=>r})}omit(t){let r={};for(let n of Xt.objectKeys(this.shape))t[n]||(r[n]=this.shape[n]);return new e({...this._def,shape:()=>r})}deepPartial(){return iS(this)}partial(t){let r={};for(let n of Xt.objectKeys(this.shape)){let i=this.shape[n];t&&!t[n]?r[n]=i:r[n]=i.optional()}return new e({...this._def,shape:()=>r})}required(t){let r={};for(let n of Xt.objectKeys(this.shape))if(t&&!t[n])r[n]=this.shape[n];else{let o=this.shape[n];for(;o instanceof sl;)o=o._def.innerType;r[n]=o}return new e({...this._def,shape:()=>r})}keyof(){return U1t(Xt.objectKeys(this.shape))}};Xc.create=(e,t)=>new Xc({shape:()=>e,unknownKeys:"strip",catchall:kp.create(),typeName:Et.ZodObject,...Ut(t)});Xc.strictCreate=(e,t)=>new Xc({shape:()=>e,unknownKeys:"strict",catchall:kp.create(),typeName:Et.ZodObject,...Ut(t)});Xc.lazycreate=(e,t)=>new Xc({shape:e,unknownKeys:"strip",catchall:kp.create(),typeName:Et.ZodObject,...Ut(t)});var P4=class extends Lt{_parse(t){let{ctx:r}=this._processInputParams(t),n=this._def.options;function i(o){for(let a of o)if(a.result.status==="valid")return a.result;for(let a of o)if(a.result.status==="dirty")return r.common.issues.push(...a.ctx.common.issues),a.result;let s=o.map(a=>new Zc(a.ctx.common.issues));return Se(r,{code:ye.invalid_union,unionErrors:s}),gt}if(r.common.async)return Promise.all(n.map(async o=>{let s={...r,common:{...r.common,issues:[]},parent:null};return{result:await o._parseAsync({data:r.data,path:r.path,parent:s}),ctx:s}})).then(i);{let o,s=[];for(let c of n){let u={...r,common:{...r.common,issues:[]},parent:null},d=c._parseSync({data:r.data,path:r.path,parent:u});if(d.status==="valid")return d;d.status==="dirty"&&!o&&(o={result:d,ctx:u}),u.common.issues.length&&s.push(u.common.issues)}if(o)return r.common.issues.push(...o.ctx.common.issues),o.result;let a=s.map(c=>new Zc(c));return Se(r,{code:ye.invalid_union,unionErrors:a}),gt}}get options(){return this._def.options}};P4.create=(e,t)=>new P4({options:e,typeName:Et.ZodUnion,...Ut(t)});var hh=e=>e instanceof O4?hh(e.schema):e instanceof cl?hh(e.innerType()):e instanceof C4?[e.value]:e instanceof k4?e.options:e instanceof R4?Xt.objectValues(e.enum):e instanceof B4?hh(e._def.innerType):e instanceof S4?[void 0]:e instanceof T4?[null]:e instanceof sl?[void 0,...hh(e.unwrap())]:e instanceof Fm?[null,...hh(e.unwrap())]:e instanceof IB||e instanceof j4?hh(e.unwrap()):e instanceof N4?hh(e._def.innerType):[],UZ=class e extends Lt{_parse(t){let{ctx:r}=this._processInputParams(t);if(r.parsedType!==ke.object)return Se(r,{code:ye.invalid_type,expected:ke.object,received:r.parsedType}),gt;let n=this.discriminator,i=r.data[n],o=this.optionsMap.get(i);return o?r.common.async?o._parseAsync({data:r.data,path:r.path,parent:r}):o._parseSync({data:r.data,path:r.path,parent:r}):(Se(r,{code:ye.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[n]}),gt)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(t,r,n){let i=new Map;for(let o of r){let s=hh(o.shape[t]);if(!s.length)throw new Error(`A discriminator value for key \`${t}\` could not be extracted from all schema options`);for(let a of s){if(i.has(a))throw new Error(`Discriminator property ${String(t)} has duplicate value ${String(a)}`);i.set(a,o)}}return new e({typeName:Et.ZodDiscriminatedUnion,discriminator:t,options:r,optionsMap:i,...Ut(n)})}};function w9e(e,t){let r=zm(e),n=zm(t);if(e===t)return{valid:!0,data:e};if(r===ke.object&&n===ke.object){let i=Xt.objectKeys(t),o=Xt.objectKeys(e).filter(a=>i.indexOf(a)!==-1),s={...e,...t};for(let a of o){let c=w9e(e[a],t[a]);if(!c.valid)return{valid:!1};s[a]=c.data}return{valid:!0,data:s}}else if(r===ke.array&&n===ke.array){if(e.length!==t.length)return{valid:!1};let i=[];for(let o=0;o<e.length;o++){let s=e[o],a=t[o],c=w9e(s,a);if(!c.valid)return{valid:!1};i.push(c.data)}return{valid:!0,data:i}}else return r===ke.date&&n===ke.date&&+e==+t?{valid:!0,data:e}:{valid:!1}}var I4=class extends Lt{_parse(t){let{status:r,ctx:n}=this._processInputParams(t),i=(o,s)=>{if(NZ(o)||NZ(s))return gt;let a=w9e(o.value,s.value);return a.valid?((jZ(o)||jZ(s))&&r.dirty(),{status:r.value,value:a.data}):(Se(n,{code:ye.invalid_intersection_types}),gt)};return n.common.async?Promise.all([this._def.left._parseAsync({data:n.data,path:n.path,parent:n}),this._def.right._parseAsync({data:n.data,path:n.path,parent:n})]).then(([o,s])=>i(o,s)):i(this._def.left._parseSync({data:n.data,path:n.path,parent:n}),this._def.right._parseSync({data:n.data,path:n.path,parent:n}))}};I4.create=(e,t,r)=>new I4({left:e,right:t,typeName:Et.ZodIntersection,...Ut(r)});var Hm=class e extends Lt{_parse(t){let{status:r,ctx:n}=this._processInputParams(t);if(n.parsedType!==ke.array)return Se(n,{code:ye.invalid_type,expected:ke.array,received:n.parsedType}),gt;if(n.data.length<this._def.items.length)return Se(n,{code:ye.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),gt;!this._def.rest&&n.data.length>this._def.items.length&&(Se(n,{code:ye.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),r.dirty());let o=[...n.data].map((s,a)=>{let c=this._def.items[a]||this._def.rest;return c?c._parse(new al(n,s,n.path,a)):null}).filter(s=>!!s);return n.common.async?Promise.all(o).then(s=>Rs.mergeArray(r,s)):Rs.mergeArray(r,o)}get items(){return this._def.items}rest(t){return new e({...this._def,rest:t})}};Hm.create=(e,t)=>{if(!Array.isArray(e))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new Hm({items:e,typeName:Et.ZodTuple,rest:null,...Ut(t)})};var qZ=class e extends Lt{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(t){let{status:r,ctx:n}=this._processInputParams(t);if(n.parsedType!==ke.object)return Se(n,{code:ye.invalid_type,expected:ke.object,received:n.parsedType}),gt;let i=[],o=this._def.keyType,s=this._def.valueType;for(let a in n.data)i.push({key:o._parse(new al(n,a,n.path,a)),value:s._parse(new al(n,n.data[a],n.path,a)),alwaysSet:a in n.data});return n.common.async?Rs.mergeObjectAsync(r,i):Rs.mergeObjectSync(r,i)}get element(){return this._def.valueType}static create(t,r,n){return r instanceof Lt?new e({keyType:t,valueType:r,typeName:Et.ZodRecord,...Ut(n)}):new e({keyType:T2.create(),valueType:t,typeName:Et.ZodRecord,...Ut(r)})}},aS=class extends Lt{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(t){let{status:r,ctx:n}=this._processInputParams(t);if(n.parsedType!==ke.map)return Se(n,{code:ye.invalid_type,expected:ke.map,received:n.parsedType}),gt;let i=this._def.keyType,o=this._def.valueType,s=[...n.data.entries()].map(([a,c],u)=>({key:i._parse(new al(n,a,n.path,[u,"key"])),value:o._parse(new al(n,c,n.path,[u,"value"]))}));if(n.common.async){let a=new Map;return Promise.resolve().then(async()=>{for(let c of s){let u=await c.key,d=await c.value;if(u.status==="aborted"||d.status==="aborted")return gt;(u.status==="dirty"||d.status==="dirty")&&r.dirty(),a.set(u.value,d.value)}return{status:r.value,value:a}})}else{let a=new Map;for(let c of s){let u=c.key,d=c.value;if(u.status==="aborted"||d.status==="aborted")return gt;(u.status==="dirty"||d.status==="dirty")&&r.dirty(),a.set(u.value,d.value)}return{status:r.value,value:a}}}};aS.create=(e,t,r)=>new aS({valueType:t,keyType:e,typeName:Et.ZodMap,...Ut(r)});var cS=class e extends Lt{_parse(t){let{status:r,ctx:n}=this._processInputParams(t);if(n.parsedType!==ke.set)return Se(n,{code:ye.invalid_type,expected:ke.set,received:n.parsedType}),gt;let i=this._def;i.minSize!==null&&n.data.size<i.minSize.value&&(Se(n,{code:ye.too_small,minimum:i.minSize.value,type:"set",inclusive:!0,exact:!1,message:i.minSize.message}),r.dirty()),i.maxSize!==null&&n.data.size>i.maxSize.value&&(Se(n,{code:ye.too_big,maximum:i.maxSize.value,type:"set",inclusive:!0,exact:!1,message:i.maxSize.message}),r.dirty());let o=this._def.valueType;function s(c){let u=new Set;for(let d of c){if(d.status==="aborted")return gt;d.status==="dirty"&&r.dirty(),u.add(d.value)}return{status:r.value,value:u}}let a=[...n.data.values()].map((c,u)=>o._parse(new al(n,c,n.path,u)));return n.common.async?Promise.all(a).then(c=>s(c)):s(a)}min(t,r){return new e({...this._def,minSize:{value:t,message:Qe.toString(r)}})}max(t,r){return new e({...this._def,maxSize:{value:t,message:Qe.toString(r)}})}size(t,r){return this.min(t,r).max(t,r)}nonempty(t){return this.min(1,t)}};cS.create=(e,t)=>new cS({valueType:e,minSize:null,maxSize:null,typeName:Et.ZodSet,...Ut(t)});var MZ=class e extends Lt{constructor(){super(...arguments),this.validate=this.implement}_parse(t){let{ctx:r}=this._processInputParams(t);if(r.parsedType!==ke.function)return Se(r,{code:ye.invalid_type,expected:ke.function,received:r.parsedType}),gt;function n(a,c){return PB({data:a,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,rS(),mh].filter(u=>!!u),issueData:{code:ye.invalid_arguments,argumentsError:c}})}function i(a,c){return PB({data:a,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,rS(),mh].filter(u=>!!u),issueData:{code:ye.invalid_return_type,returnTypeError:c}})}let o={errorMap:r.common.contextualErrorMap},s=r.data;if(this._def.returns instanceof I2){let a=this;return ha(async function(...c){let u=new Zc([]),d=await a._def.args.parseAsync(c,o).catch(f=>{throw u.addIssue(n(c,f)),u}),l=await Reflect.apply(s,this,d);return await a._def.returns._def.type.parseAsync(l,o).catch(f=>{throw u.addIssue(i(l,f)),u})})}else{let a=this;return ha(function(...c){let u=a._def.args.safeParse(c,o);if(!u.success)throw new Zc([n(c,u.error)]);let d=Reflect.apply(s,this,u.data),l=a._def.returns.safeParse(d,o);if(!l.success)throw new Zc([i(d,l.error)]);return l.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...t){return new e({...this._def,args:Hm.create(t).rest(yh.create())})}returns(t){return new e({...this._def,returns:t})}implement(t){return this.parse(t)}strictImplement(t){return this.parse(t)}static create(t,r,n){return new e({args:t||Hm.create([]).rest(yh.create()),returns:r||yh.create(),typeName:Et.ZodFunction,...Ut(n)})}},O4=class extends Lt{get schema(){return this._def.getter()}_parse(t){let{ctx:r}=this._processInputParams(t);return this._def.getter()._parse({data:r.data,path:r.path,parent:r})}};O4.create=(e,t)=>new O4({getter:e,typeName:Et.ZodLazy,...Ut(t)});var C4=class extends Lt{_parse(t){if(t.data!==this._def.value){let r=this._getOrReturnCtx(t);return Se(r,{received:r.data,code:ye.invalid_literal,expected:this._def.value}),gt}return{status:"valid",value:t.data}}get value(){return this._def.value}};C4.create=(e,t)=>new C4({value:e,typeName:Et.ZodLiteral,...Ut(t)});function U1t(e,t){return new k4({values:e,typeName:Et.ZodEnum,...Ut(t)})}var k4=class e extends Lt{_parse(t){if(typeof t.data!="string"){let r=this._getOrReturnCtx(t),n=this._def.values;return Se(r,{expected:Xt.joinValues(n),received:r.parsedType,code:ye.invalid_type}),gt}if(this._cache||(this._cache=new Set(this._def.values)),!this._cache.has(t.data)){let r=this._getOrReturnCtx(t),n=this._def.values;return Se(r,{received:r.data,code:ye.invalid_enum_value,options:n}),gt}return ha(t.data)}get options(){return this._def.values}get enum(){let t={};for(let r of this._def.values)t[r]=r;return t}get Values(){let t={};for(let r of this._def.values)t[r]=r;return t}get Enum(){let t={};for(let r of this._def.values)t[r]=r;return t}extract(t,r=this._def){return e.create(t,{...this._def,...r})}exclude(t,r=this._def){return e.create(this.options.filter(n=>!t.includes(n)),{...this._def,...r})}};k4.create=U1t;var R4=class extends Lt{_parse(t){let r=Xt.getValidEnumValues(this._def.values),n=this._getOrReturnCtx(t);if(n.parsedType!==ke.string&&n.parsedType!==ke.number){let i=Xt.objectValues(r);return Se(n,{expected:Xt.joinValues(i),received:n.parsedType,code:ye.invalid_type}),gt}if(this._cache||(this._cache=new Set(Xt.getValidEnumValues(this._def.values))),!this._cache.has(t.data)){let i=Xt.objectValues(r);return Se(n,{received:n.data,code:ye.invalid_enum_value,options:i}),gt}return ha(t.data)}get enum(){return this._def.values}};R4.create=(e,t)=>new R4({values:e,typeName:Et.ZodNativeEnum,...Ut(t)});var I2=class extends Lt{unwrap(){return this._def.type}_parse(t){let{ctx:r}=this._processInputParams(t);if(r.parsedType!==ke.promise&&r.common.async===!1)return Se(r,{code:ye.invalid_type,expected:ke.promise,received:r.parsedType}),gt;let n=r.parsedType===ke.promise?r.data:Promise.resolve(r.data);return ha(n.then(i=>this._def.type.parseAsync(i,{path:r.path,errorMap:r.common.contextualErrorMap})))}};I2.create=(e,t)=>new I2({type:e,typeName:Et.ZodPromise,...Ut(t)});var cl=class extends Lt{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===Et.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(t){let{status:r,ctx:n}=this._processInputParams(t),i=this._def.effect||null,o={addIssue:s=>{Se(n,s),s.fatal?r.abort():r.dirty()},get path(){return n.path}};if(o.addIssue=o.addIssue.bind(o),i.type==="preprocess"){let s=i.transform(n.data,o);if(n.common.async)return Promise.resolve(s).then(async a=>{if(r.value==="aborted")return gt;let c=await this._def.schema._parseAsync({data:a,path:n.path,parent:n});return c.status==="aborted"?gt:c.status==="dirty"?v4(c.value):r.value==="dirty"?v4(c.value):c});{if(r.value==="aborted")return gt;let a=this._def.schema._parseSync({data:s,path:n.path,parent:n});return a.status==="aborted"?gt:a.status==="dirty"?v4(a.value):r.value==="dirty"?v4(a.value):a}}if(i.type==="refinement"){let s=a=>{let c=i.refinement(a,o);if(n.common.async)return Promise.resolve(c);if(c instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return a};if(n.common.async===!1){let a=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});return a.status==="aborted"?gt:(a.status==="dirty"&&r.dirty(),s(a.value),{status:r.value,value:a.value})}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(a=>a.status==="aborted"?gt:(a.status==="dirty"&&r.dirty(),s(a.value).then(()=>({status:r.value,value:a.value}))))}if(i.type==="transform")if(n.common.async===!1){let s=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});if(!S2(s))return gt;let a=i.transform(s.value,o);if(a instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:r.value,value:a}}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(s=>S2(s)?Promise.resolve(i.transform(s.value,o)).then(a=>({status:r.value,value:a})):gt);Xt.assertNever(i)}};cl.create=(e,t,r)=>new cl({schema:e,typeName:Et.ZodEffects,effect:t,...Ut(r)});cl.createWithPreprocess=(e,t,r)=>new cl({schema:t,effect:{type:"preprocess",transform:e},typeName:Et.ZodEffects,...Ut(r)});var sl=class extends Lt{_parse(t){return this._getType(t)===ke.undefined?ha(void 0):this._def.innerType._parse(t)}unwrap(){return this._def.innerType}};sl.create=(e,t)=>new sl({innerType:e,typeName:Et.ZodOptional,...Ut(t)});var Fm=class extends Lt{_parse(t){return this._getType(t)===ke.null?ha(null):this._def.innerType._parse(t)}unwrap(){return this._def.innerType}};Fm.create=(e,t)=>new Fm({innerType:e,typeName:Et.ZodNullable,...Ut(t)});var B4=class extends Lt{_parse(t){let{ctx:r}=this._processInputParams(t),n=r.data;return r.parsedType===ke.undefined&&(n=this._def.defaultValue()),this._def.innerType._parse({data:n,path:r.path,parent:r})}removeDefault(){return this._def.innerType}};B4.create=(e,t)=>new B4({innerType:e,typeName:Et.ZodDefault,defaultValue:typeof t.default=="function"?t.default:()=>t.default,...Ut(t)});var N4=class extends Lt{_parse(t){let{ctx:r}=this._processInputParams(t),n={...r,common:{...r.common,issues:[]}},i=this._def.innerType._parse({data:n.data,path:n.path,parent:{...n}});return nS(i)?i.then(o=>({status:"valid",value:o.status==="valid"?o.value:this._def.catchValue({get error(){return new Zc(n.common.issues)},input:n.data})})):{status:"valid",value:i.status==="valid"?i.value:this._def.catchValue({get error(){return new Zc(n.common.issues)},input:n.data})}}removeCatch(){return this._def.innerType}};N4.create=(e,t)=>new N4({innerType:e,typeName:Et.ZodCatch,catchValue:typeof t.catch=="function"?t.catch:()=>t.catch,...Ut(t)});var uS=class extends Lt{_parse(t){if(this._getType(t)!==ke.nan){let n=this._getOrReturnCtx(t);return Se(n,{code:ye.invalid_type,expected:ke.nan,received:n.parsedType}),gt}return{status:"valid",value:t.data}}};uS.create=e=>new uS({typeName:Et.ZodNaN,...Ut(e)});var fAr=Symbol("zod_brand"),IB=class extends Lt{_parse(t){let{ctx:r}=this._processInputParams(t),n=r.data;return this._def.type._parse({data:n,path:r.path,parent:r})}unwrap(){return this._def.type}},OB=class e extends Lt{_parse(t){let{status:r,ctx:n}=this._processInputParams(t);if(n.common.async)return(async()=>{let o=await this._def.in._parseAsync({data:n.data,path:n.path,parent:n});return o.status==="aborted"?gt:o.status==="dirty"?(r.dirty(),v4(o.value)):this._def.out._parseAsync({data:o.value,path:n.path,parent:n})})();{let i=this._def.in._parseSync({data:n.data,path:n.path,parent:n});return i.status==="aborted"?gt:i.status==="dirty"?(r.dirty(),{status:"dirty",value:i.value}):this._def.out._parseSync({data:i.value,path:n.path,parent:n})}}static create(t,r){return new e({in:t,out:r,typeName:Et.ZodPipeline})}},j4=class extends Lt{_parse(t){let r=this._def.innerType._parse(t),n=i=>(S2(i)&&(i.value=Object.freeze(i.value)),i);return nS(r)?r.then(i=>n(i)):n(r)}unwrap(){return this._def.innerType}};j4.create=(e,t)=>new j4({innerType:e,typeName:Et.ZodReadonly,...Ut(t)});function R1t(e,t){let r=typeof e=="function"?e(t):typeof e=="string"?{message:e}:e;return typeof r=="string"?{message:r}:r}function q1t(e,t={},r){return e?P2.create().superRefine((n,i)=>{let o=e(n);if(o instanceof Promise)return o.then(s=>{if(!s){let a=R1t(t,n),c=a.fatal??r??!0;i.addIssue({code:"custom",...a,fatal:c})}});if(!o){let s=R1t(t,n),a=s.fatal??r??!0;i.addIssue({code:"custom",...s,fatal:a})}}):P2.create()}var mAr={object:Xc.lazycreate},Et;(function(e){e.ZodString="ZodString",e.ZodNumber="ZodNumber",e.ZodNaN="ZodNaN",e.ZodBigInt="ZodBigInt",e.ZodBoolean="ZodBoolean",e.ZodDate="ZodDate",e.ZodSymbol="ZodSymbol",e.ZodUndefined="ZodUndefined",e.ZodNull="ZodNull",e.ZodAny="ZodAny",e.ZodUnknown="ZodUnknown",e.ZodNever="ZodNever",e.ZodVoid="ZodVoid",e.ZodArray="ZodArray",e.ZodObject="ZodObject",e.ZodUnion="ZodUnion",e.ZodDiscriminatedUnion="ZodDiscriminatedUnion",e.ZodIntersection="ZodIntersection",e.ZodTuple="ZodTuple",e.ZodRecord="ZodRecord",e.ZodMap="ZodMap",e.ZodSet="ZodSet",e.ZodFunction="ZodFunction",e.ZodLazy="ZodLazy",e.ZodLiteral="ZodLiteral",e.ZodEnum="ZodEnum",e.ZodEffects="ZodEffects",e.ZodNativeEnum="ZodNativeEnum",e.ZodOptional="ZodOptional",e.ZodNullable="ZodNullable",e.ZodDefault="ZodDefault",e.ZodCatch="ZodCatch",e.ZodPromise="ZodPromise",e.ZodBranded="ZodBranded",e.ZodPipeline="ZodPipeline",e.ZodReadonly="ZodReadonly"})(Et||(Et={}));var hAr=(e,t={message:`Input not instance of ${e.name}`})=>q1t(r=>r instanceof e,t),L=T2.create,Rr=w4.create,yAr=uS.create,gAr=x4.create,ul=E4.create,bAr=A4.create,_Ar=oS.create,vAr=S4.create,dS=T4.create,dl=P2.create,wAr=yh.create,xAr=kp.create,EAr=sS.create,ue=gh.create,fe=Xc.create,AAr=Xc.strictCreate,lS=P4.create,SAr=UZ.create,TAr=I4.create,PAr=Hm.create,Qt=qZ.create,IAr=aS.create,OAr=cS.create,CAr=MZ.create,kAr=O4.create,RAr=C4.create,ll=k4.create,BAr=R4.create,NAr=I2.create,jAr=cl.create,UAr=sl.create,qAr=Fm.create,MAr=cl.createWithPreprocess,DAr=OB.create,LAr=()=>L().optional(),zAr=()=>Rr().optional(),HAr=()=>ul().optional(),Ju={string:(e=>T2.create({...e,coerce:!0})),number:(e=>w4.create({...e,coerce:!0})),boolean:(e=>E4.create({...e,coerce:!0})),bigint:(e=>x4.create({...e,coerce:!0})),date:(e=>A4.create({...e,coerce:!0}))};var FAr=gt;var VAr=ll(["enc","sig"]),KAr=ll(["markdown","plain"]),WAr=ll(["recoverable","requires_buyer_input","requires_buyer_review","unrecoverable"]),GAr=ll(["error","info","warning"]),mS=ll(["canceled","complete_in_progress","completed","incomplete","ready_for_complete","requires_escalation"]),JAr=ll(["completed","failed","pending"]),YAr=ll(["digital","pickup","shipping"]),ZAr=ll(["fulfilled","partial","processing","removed"]),XAr=ll(["across","each"]),x9e=ll(["pickup","shipping"]),QAr=fe({config:Qt(L(),dl()),config_schema:L(),id:L(),instrument_schemas:ue(L()),name:L(),spec:L(),version:L()}),eSr=fe({alg:L().optional(),crv:L().optional(),e:L().optional(),kid:L(),kty:L(),n:L().optional(),use:VAr.optional(),x:L().optional(),y:L().optional()}),tSr=fe({config:Qt(L(),dl()).optional(),extends:L().optional(),name:L(),schema:L(),spec:L(),version:L()}),rSr=fe({endpoint:L()}),nSr=fe({schema:L()}),M1t=fe({endpoint:L(),schema:L()}),iSr=M1t,oSr=M1t,Ja=fe({email:L().optional(),first_name:L().optional(),last_name:L().optional(),phone_number:L().optional()}),vo=fe({address_country:L().optional(),address_region:L().optional(),currency:L().optional(),eligibility:ue(L()).optional(),intent:L().optional(),language:L().optional(),postal_code:L().optional()}),E9e=vo,D1t=fe({id:L()}),sSr=D1t,aSr=D1t,CB=fe({address_country:L().optional(),address_locality:L().optional(),address_region:L().optional(),extended_address:L().optional(),first_name:L().optional(),last_name:L().optional(),phone_number:L().optional(),postal_code:L().optional(),street_address:L().optional()}),DZ=fe({type:L()}),ro=fe({"dev.ucp.buyer_ip":L().optional(),"dev.ucp.user_agent":L().optional()}),A9e=ro,L1t=fe({id:L(),image_url:L().optional(),price:Rr(),title:L()}),LZ=fe({amount:Rr(),display_text:L().optional(),type:L()}),O2=fe({title:L().optional(),type:L(),url:L()}),bh=fe({code:L().optional(),content:L(),content_type:KAr.optional(),path:L().optional(),severity:WAr.optional(),type:GAr,image_url:L().optional(),presentation:L().optional(),url:L().optional()}),S9e=bh,hS=fe({id:L(),label:L().optional(),permalink_url:L()}),cSr=fe({amount:Rr(),display_text:L()}),uSr=fe({config:Qt(L(),dl()).optional(),extends:L().optional(),name:L(),schema:L().optional(),spec:L().optional(),version:L()}),T9e=fe({id:L(),quantity:Rr()}),dSr=T9e,lSr=T9e,pSr=T9e,fSr=fe({fulfilled:Rr(),original:Rr().optional(),total:Rr()}),mSr=fe({billing_address:CB.optional(),credential:DZ.optional(),display:Qt(L(),dl()).optional(),handler_id:L(),id:L(),type:L()}),hSr=fe({checkout_mandate:L()}),ySr=fe({merchant_authorization:L().optional(),checkout_mandate:L()}),gSr=fe({analytics:ul().optional(),marketing:ul().optional(),preferences:ul().optional(),sale_of_data:ul().optional()});var bSr=gSr;var z1t=fe({codes:ue(L()).optional()}),_Sr=z1t,vSr=fe({amount:Rr(),path:L()}),wSr=fe({address_country:L().optional(),address_locality:L().optional(),address_region:L().optional(),extended_address:L().optional(),first_name:L().optional(),last_name:L().optional(),phone_number:L().optional(),postal_code:L().optional(),street_address:L().optional(),id:L().optional(),address:CB.optional(),name:L().optional()}),xSr=fe({carrier:L().optional(),description:L().optional(),earliest_fulfillment_time:Ju.date().optional(),id:L(),latest_fulfillment_time:Ju.date().optional(),title:L(),totals:ue(LZ)}),ESr=fe({description:L().optional(),fulfillable_on:lS([dS(),L()]).optional(),line_item_ids:ue(L()),type:x9e}),ASr=fe({address_country:L().optional(),address_locality:L().optional(),address_region:L().optional(),extended_address:L().optional(),first_name:L().optional(),last_name:L().optional(),phone_number:L().optional(),postal_code:L().optional(),street_address:L().optional(),id:L(),address:CB.optional(),name:L().optional()}),SSr=fe({max:Rr().optional(),min:Rr().optional()}),kB=fe({taxonomy:L().optional(),value:L()}),RB=fe({html:L().optional(),markdown:L().optional(),plain:L().optional()}),pS=fe({amount:Rr(),currency:L()}),BB=fe({alt_text:L().optional(),height:Rr().optional(),type:L(),url:L(),width:Rr().optional()}),TSr=fe({id:L().optional(),label:L()}),NB=fe({count:Rr().optional(),scale_max:Rr(),scale_min:Rr().optional(),value:Rr()}),H1t=fe({available:ul().optional(),status:L().optional()}),PSr=H1t,F1t=fe({type:L(),value:L()}),ISr=F1t,OSr=fe({id:L(),match:L().optional()}),P9e=fe({id:L().optional(),label:L(),name:L()}),$1t=P9e,V1t=fe({links:ue(O2).optional(),name:L().optional()}),CSr=V1t,K1t=fe({unit:L(),value:Rr()});var kSr=K1t,RSr=fe({cursor:L().optional(),limit:Rr().optional()}),BSr=fe({cursor:L().optional(),has_next_page:ul(),total_count:Rr().optional()}),NSr=fe({handlers:ue(QAr).optional()}),jSr=fe({a2a:rSr.optional(),embedded:nSr.optional(),mcp:iSr.optional(),rest:oSr.optional(),spec:L(),version:L()}),yS=fe({item:sSr,quantity:Rr()}),USr=fe({billing_address:CB.optional(),credential:DZ.optional(),display:Qt(L(),dl()).optional(),handler_id:L(),id:L(),type:L(),selected:ul().optional()}),jB=fe({id:L().optional(),item:aSr,parent_id:L().optional(),quantity:Rr()}),zZ=fe({instruments:ue(USr).optional()}),qSr=zZ,UB=zZ,gS=zZ,HZ=zZ,U4=fe({id:L(),item:L1t,parent_id:L().optional(),quantity:Rr(),totals:ue(LZ)}),C2=fe({amount:Rr(),display_text:L().optional(),type:L(),lines:ue(cSr).optional()}),Rp=fe({capabilities:Qt(L(),ue(uSr)),version:L()}),MSr=fe({description:L().optional(),id:L(),line_items:ue(dSr).optional(),occurred_at:Ju.date(),status:JAr,totals:ue(LZ).optional(),type:L()}),DSr=fe({carrier:L().optional(),description:L().optional(),id:L(),line_items:ue(lSr),occurred_at:Ju.date(),tracking_number:L().optional(),tracking_url:L().optional(),type:L()}),LSr=fe({description:L().optional(),destination:CB,fulfillable_on:L().optional(),id:L(),line_items:ue(pSr),method_type:YAr}),zSr=fe({id:L(),item:L1t,parent_id:L().optional(),quantity:fSr,status:ZAr,totals:ue(LZ)}),Sxn=fe({payment_data:mSr}),Txn=fe({ap2:hSr.optional()}),Pxn=fe({attribution:Qt(L(),L()).optional(),buyer:Ja.optional(),context:vo.optional(),continue_url:L().optional(),currency:L(),expires_at:Ju.date().optional(),id:L(),line_items:ue(U4),links:ue(O2),messages:ue(bh).optional(),order:hS.optional(),payment:gS.optional(),signals:ro.optional(),status:mS,totals:ue(C2),ucp:Rp,ap2:ySr.optional()}),I9e=fe({email:L().optional(),first_name:L().optional(),last_name:L().optional(),phone_number:L().optional(),consent:bSr.optional()}),HSr=I9e,FSr=I9e,W1t=fe({attribution:Qt(L(),L()).optional(),buyer:Ja.optional(),context:vo.optional(),line_items:ue(jB),payment:HZ.optional(),signals:ro.optional(),discounts:_Sr.optional()}),$Sr=fe({allocations:ue(vSr).optional(),amount:Rr(),automatic:ul().optional(),code:L().optional(),eligibility:L().optional(),method:XAr.optional(),priority:Rr().optional(),provisional:ul().optional(),title:L()}),G1t=fe({id:L(),line_item_ids:ue(L()),options:ue(xSr).optional(),selected_option_id:lS([dS(),L()]).optional()}),VSr=fe({destinations:ue(ASr).optional(),groups:ue(G1t).optional(),id:L(),line_item_ids:ue(L()),selected_destination_id:lS([dS(),L()]).optional(),type:x9e}),Ixn=fe({attribution:Qt(L(),L()).optional(),buyer:Ja.optional(),context:vo.optional(),line_items:ue(yS),signals:ro.optional()}),Oxn=fe({attribution:Qt(L(),L()).optional(),buyer:Ja.optional(),context:vo.optional(),id:L(),line_items:ue(jB),signals:ro.optional()}),Cxn=fe({attribution:Qt(L(),L()).optional(),buyer:Ja.optional(),context:vo.optional(),continue_url:L().optional(),currency:L(),expires_at:Ju.date().optional(),id:L(),line_items:ue(U4),links:ue(O2).optional(),messages:ue(bh).optional(),signals:ro.optional(),totals:ue(C2),ucp:Rp}),KSr=fe({attribution:Qt(L(),L()).optional(),buyer:Ja.optional(),context:vo.optional(),line_items:ue(jB),payment:HZ.optional(),signals:ro.optional()}),J1t=KSr,kxn=fe({attribution:Qt(L(),L()).optional(),buyer:Ja.optional(),context:vo.optional(),continue_url:L().optional(),currency:L(),expires_at:Ju.date().optional(),id:L(),line_items:ue(U4),links:ue(O2),messages:ue(bh).optional(),order:hS.optional(),payment:gS.optional(),signals:ro.optional(),status:mS,totals:ue(C2),ucp:Rp,cart_id:L().optional()}),O9e=fe({categories:ue(L()).optional(),price:SSr.optional()}),fS=fe({max:pS,min:pS}),C9e=fe({name:L(),values:ue(TSr)}),Y1t=fe({amount:Rr(),currency:L(),measure:K1t,reference:kSr}),WSr=Y1t,Rxn=fe({attribution:Qt(L(),L()).optional(),context:E9e.optional(),filters:O9e.optional(),id:L(),preferences:ue(L()).optional(),selected:ue($1t).optional(),signals:A9e.optional()}),Bxn=fe({attribution:Qt(L(),L()).optional(),context:E9e.optional(),filters:O9e.optional(),pagination:RSr.optional(),query:L().optional(),signals:A9e.optional()}),GSr=fe({capabilities:ue(tSr),services:Qt(L(),jSr),version:L()}),Nxn=fe({attribution:Qt(L(),L()).optional(),payment:qSr,signals:ro.optional()}),Z1t=fe({attribution:Qt(L(),L()).optional(),buyer:Ja.optional(),context:vo.optional(),continue_url:L().optional(),currency:L(),expires_at:Ju.date().optional(),id:L(),line_items:ue(U4),links:ue(O2),messages:ue(bh).optional(),order:hS.optional(),payment:gS.optional(),signals:ro.optional(),status:mS,totals:ue(C2),ucp:Rp}),JSr=fe({events:ue(DSr).optional(),expectations:ue(LSr).optional()}),X1t=fe({attribution:Qt(L(),L()).optional(),buyer:I9e.optional(),context:vo.optional(),line_items:ue(yS),payment:UB.optional(),signals:ro.optional()}),Q1t=fe({attribution:Qt(L(),L()).optional(),buyer:FSr.optional(),context:vo.optional(),line_items:ue(jB),payment:HZ.optional(),signals:ro.optional()}),eht=fe({attribution:Qt(L(),L()).optional(),buyer:HSr.optional(),context:vo.optional(),continue_url:L().optional(),currency:L(),expires_at:Ju.date().optional(),id:L(),line_items:ue(U4),links:ue(O2),messages:ue(bh).optional(),order:hS.optional(),payment:gS.optional(),signals:ro.optional(),status:mS,totals:ue(C2),ucp:Rp}),tht=fe({attribution:Qt(L(),L()).optional(),buyer:Ja.optional(),context:vo.optional(),line_items:ue(yS),payment:UB.optional(),signals:ro.optional(),discounts:z1t.optional()}),YSr=fe({applied:ue($Sr).optional(),codes:ue(L()).optional()}),ZSr=fe({destinations:ue(wSr).optional(),groups:ue(G1t).optional(),line_item_ids:ue(L()).optional(),selected_destination_id:lS([dS(),L()]).optional(),type:x9e}),XSr=fe({available_methods:ue(ESr).optional(),methods:ue(VSr).optional()}),rht=fe({attribution:Qt(L(),L()).optional(),buyer:Ja.optional(),context:vo.optional(),line_items:ue(yS),payment:UB.optional(),signals:ro.optional(),cart_id:L().optional()}),jxn=fe({attribution:Qt(L(),L()).optional(),context:E9e.optional(),filters:O9e.optional(),ids:ue(L()),signals:A9e.optional()}),QSr=fe({availability:H1t.optional(),barcodes:ue(F1t).optional(),categories:ue(kB).optional(),description:RB,handle:L().optional(),id:L(),list_price:pS.optional(),media:ue(BB).optional(),metadata:Qt(L(),dl()).optional(),options:ue(P9e).optional(),price:pS,rating:NB.optional(),seller:V1t.optional(),sku:L().optional(),tags:ue(L()).optional(),title:L(),unit_price:Y1t.optional(),url:L().optional(),inputs:ue(OSr)}),nht=fe({availability:PSr.optional(),barcodes:ue(ISr).optional(),categories:ue(kB).optional(),description:RB,handle:L().optional(),id:L(),list_price:pS.optional(),media:ue(BB).optional(),metadata:Qt(L(),dl()).optional(),options:ue(P9e).optional(),price:pS,rating:NB.optional(),seller:CSr.optional(),sku:L().optional(),tags:ue(L()).optional(),title:L(),unit_price:WSr.optional(),url:L().optional()}),e7r=fe({categories:ue(kB).optional(),description:RB,handle:L().optional(),id:L(),list_price_range:fS.optional(),media:ue(BB).optional(),metadata:Qt(L(),dl()).optional(),options:ue(C9e).optional(),price_range:fS,rating:NB.optional(),tags:ue(L()).optional(),title:L(),url:L().optional(),variants:ue(nht)}),Uxn=fe({payment:NSr.optional(),signing_keys:ue(eSr).optional(),ucp:GSr}),iht=fe({attribution:Qt(L(),L()).optional(),buyer:Ja.optional(),context:vo.optional(),line_items:ue(yS),payment:UB.optional(),signals:ro.optional()}),t7r=fe({adjustments:ue(MSr).optional(),attribution:Qt(L(),L()).optional(),checkout_id:L(),currency:L(),fulfillment:JSr,id:L(),label:L().optional(),line_items:ue(zSr),messages:ue(bh).optional(),permalink_url:L(),totals:ue(C2),ucp:Rp}),oht=fe({attribution:Qt(L(),L()).optional(),buyer:Ja.optional(),context:vo.optional(),continue_url:L().optional(),currency:L(),expires_at:Ju.date().optional(),id:L(),line_items:ue(U4),links:ue(O2),messages:ue(bh).optional(),order:hS.optional(),payment:gS.optional(),signals:ro.optional(),status:mS,totals:ue(C2),ucp:Rp,discounts:YSr.optional()}),sht=fe({methods:ue(ZSr).optional()}),aht=fe({attribution:Qt(L(),L()).optional(),buyer:Ja.optional(),context:vo.optional(),line_items:ue(jB),payment:HZ.optional(),signals:ro.optional(),fulfillment:sht.optional()}),cht=fe({attribution:Qt(L(),L()).optional(),buyer:Ja.optional(),context:vo.optional(),continue_url:L().optional(),currency:L(),expires_at:Ju.date().optional(),id:L(),line_items:ue(U4),links:ue(O2),messages:ue(bh).optional(),order:hS.optional(),payment:gS.optional(),signals:ro.optional(),status:mS,totals:ue(C2),ucp:Rp,fulfillment:XSr.optional()}),r7r=fe({categories:ue(kB).optional(),description:RB,handle:L().optional(),id:L(),list_price_range:fS.optional(),media:ue(BB).optional(),metadata:Qt(L(),dl()).optional(),options:ue(C9e).optional(),price_range:fS,rating:NB.optional(),tags:ue(L()).optional(),title:L(),url:L().optional(),variants:ue(QSr)}),n7r=fe({options:ue(C9e).optional(),selected:ue($1t).optional(),categories:ue(kB).optional(),description:RB,handle:L().optional(),id:L(),list_price_range:fS.optional(),media:ue(BB).optional(),metadata:Qt(L(),dl()).optional(),price_range:fS,rating:NB.optional(),tags:ue(L()).optional(),title:L(),url:L().optional(),variants:ue(nht)}),qxn=fe({messages:ue(S9e).optional(),pagination:BSr.optional(),products:ue(e7r),ucp:Rp}),uht=fe({attribution:Qt(L(),L()).optional(),buyer:Ja.optional(),context:vo.optional(),line_items:ue(yS),payment:UB.optional(),signals:ro.optional(),fulfillment:sht.optional()}),Mxn=fe({messages:ue(S9e).optional(),products:ue(r7r),ucp:Rp}),Dxn=fe({messages:ue(S9e).optional(),product:n7r,ucp:Rp});var Fxn=DZ.extend({token:Dr.string().optional()}),i7r=Dr.object({webhook_url:Dr.string().url().optional()}),dht=Z1t.extend(cht.pick({fulfillment:!0}).shape).extend(oht.pick({discounts:!0}).shape).extend(eht.pick({buyer:!0}).shape).extend({platform:i7r.optional()}),lht=iht.extend(uht.pick({fulfillment:!0}).shape).extend(tht.pick({discounts:!0}).shape).extend(X1t.pick({buyer:!0}).shape).extend(rht.pick({cart_id:!0}).shape),pht=J1t.extend(aht.pick({fulfillment:!0}).shape).extend(W1t.pick({discounts:!0}).shape).extend(Q1t.pick({buyer:!0}).shape);eu();async function FZ(e,t,r){let n=e.headers.get("content-length");if(n!==null){let c=Number(n);if(Number.isSafeInteger(c)&&c>t)throw new Error(r)}if(!e.body)return"";let i=e.body.getReader(),o=new TextDecoder,s=0,a="";try{for(;;){let{done:c,value:u}=await i.read();if(c)break;if(s+=u.byteLength,s>t){try{await i.cancel()}catch{}throw new Error(r)}a+=o.decode(u,{stream:!0})}return a+o.decode()}finally{i.releaseLock()}}function $Z(e,t){let r=new AbortController,n=()=>r.abort(t?.reason);t?.aborted?n():t?.addEventListener("abort",n,{once:!0});let i=setTimeout(()=>r.abort(),e);return{signal:r.signal,cleanup:()=>{clearTimeout(i),t?.removeEventListener("abort",n)}}}var o7r=3e4,fht=2*1024*1024,Bp=class extends Error{constructor(r,n,i){super(r);this.rpcCode=n;this.httpStatus=i;this.name="UcpRpcError"}rpcCode;httpStatus};function mht(e,t){let r=new URL(e);if(r.protocol!=="https:")throw new Error(`${t} must use HTTPS`);if(r.username||r.password)throw new Error(`${t} must not contain embedded credentials`);if(r.hash)throw new Error(`${t} must not contain a fragment`);return r}function hht(e,t){if(!/^[A-Z]{3}$/.test(String(e.currency??"")))throw new Error("UCP checkout input requires an uppercase ISO 4217 currency");if(!Array.isArray(e.line_items)||e.line_items.length===0)throw new Error("UCP checkout input requires at least one line item");if(Object.hasOwn(e,"id"))throw new Error("UCP checkout input must not contain an id; pass it as a top-level argument");if(!(t==="create"?lht:pht).safeParse(e).success)throw new Error(`UCP ${t} checkout input failed schema validation`);return e}function s7r(e){if(!e||typeof e!="object")return!1;let t=e;if(t.jsonrpc!=="2.0"||!Object.hasOwn(t,"id")||t.id!==null&&typeof t.id!="string"&&typeof t.id!="number")return!1;let r=Object.hasOwn(t,"result"),n=Object.hasOwn(t,"error");if(r===n)return!1;if(!n)return!0;let i=t.error;return!!i&&typeof i=="object"&&!Array.isArray(i)&&typeof i.code=="number"&&typeof i.message=="string"}function yht(e,t,r,n){try{e[t](r,n)}catch{}}function a7r(e){if(!e||typeof e!="object")return e;let t=e,r=t.ucp;if(!r||typeof r!="object")return e;let n=r.capabilities;return!n||typeof n!="object"||Array.isArray(n)?e:{...t,ucp:{...r,capabilities:Object.fromEntries(Object.entries(n).map(([i,o])=>[i,Array.isArray(o)?o.map(s=>s&&typeof s=="object"?{...s,name:i}:s):o]))}}}var VZ=class{endpoint;platformProfileUrl;fetchImpl;signal;timeoutMs;boundaryLogger;requestId=1;constructor(t){this.endpoint=mht(t.endpoint,"UCP MCP endpoint").toString(),this.platformProfileUrl=mht(t.platformProfileUrl,"UCP platform profile URL").toString(),this.fetchImpl=t.fetch??fetch,this.signal=t.signal,this.timeoutMs=t.timeoutMs??o7r,this.boundaryLogger=t.logger??Re}async createCheckout(t){return await this.callCheckout("create_checkout",{meta:this.metadata(),checkout:hht(t,"create")})}async getCheckout(t){if(!t)throw new Error("UCP checkout id is required");return await this.callCheckout("get_checkout",{meta:this.metadata(),id:t})}async updateCheckout(t,r){if(!t)throw new Error("UCP checkout id is required");return await this.callCheckout("update_checkout",{meta:this.metadata(),id:t,checkout:hht(r,"update")})}metadata(){return{"ucp-agent":{profile:this.platformProfileUrl}}}async callCheckout(t,r){let n=this.requestId++,i=$Z(this.timeoutMs,this.signal),o=(0,ght.randomUUID)(),s=new URL(this.endpoint).origin,a=Date.now(),c;try{let u=await this.fetchImpl(this.endpoint,{method:"POST",redirect:"error",headers:{accept:"application/json","content-type":"application/json"},body:JSON.stringify({jsonrpc:"2.0",id:n,method:"tools/call",params:{name:t,arguments:r}}),signal:i.signal});c=u.status;let d;try{d=await FZ(u,fht,"UCP MCP response exceeds the 2 MiB limit")}catch(m){throw m instanceof Error&&m.message==="UCP MCP response exceeds the 2 MiB limit"?new Bp(m.message,void 0,u.status):m}if(Buffer.byteLength(d)>fht)throw new Bp("UCP MCP response exceeds the 2 MiB limit",void 0,u.status);let l;try{l=JSON.parse(d)}catch{throw new Bp("UCP MCP response is not valid JSON",void 0,u.status)}if(!s7r(l))throw new Bp("UCP MCP response is not a valid JSON-RPC envelope",void 0,u.status);if(l.id!==n)throw new Bp("UCP MCP response id does not match the request",void 0,u.status);if("error"in l)throw new Bp(`UCP MCP error ${l.error.code}: ${l.error.message}`,l.error.code,u.status);if(!u.ok)throw new Bp(`UCP MCP request failed with HTTP ${u.status}`,void 0,u.status);let p=l.result;if(!p?.structuredContent)throw new Bp("UCP MCP response is missing result.structuredContent");if(!dht.safeParse(a7r(p.structuredContent)).success)throw new Bp("UCP checkout response failed schema validation");return yht(this.boundaryLogger,"info","ucp:checkout_rpc",{correlationId:o,endpointOrigin:s,rpcMethod:t,httpStatus:c,elapsedMs:Date.now()-a}),p.structuredContent}catch(u){throw yht(this.boundaryLogger,"warn","ucp:checkout_rpc_failed",{correlationId:o,endpointOrigin:s,rpcMethod:t,...c===void 0?{}:{httpStatus:c},elapsedMs:Date.now()-a,errorClass:u instanceof Error?u.name:"UnknownError"}),u}finally{i.cleanup()}}};var _ht=require("node:crypto");eu();var WZ="2026-04-08",c7r="dev.ucp.shopping",u7r="dev.ucp.shopping.checkout",d7r=1024*1024,l7r=1e4,p7r="https://ucp.dev",qB=Dr.string().url().refine(e=>{let t=new URL(e);return t.protocol==="https:"&&!t.username&&!t.password},"must be an HTTPS URL without embedded credentials"),f7r=Dr.object({version:Dr.string().regex(/^\d{4}-\d{2}-\d{2}$/),spec:qB,schema:qB,transport:Dr.enum(["rest","mcp","a2a","embedded"]),endpoint:qB.optional()}).passthrough(),m7r=Dr.object({version:Dr.string().regex(/^\d{4}-\d{2}-\d{2}$/),spec:qB,schema:qB,extends:Dr.union([Dr.string(),Dr.array(Dr.string()).min(1)]).optional()}).passthrough(),h7r=Dr.object({ucp:Dr.object({version:Dr.string().regex(/^\d{4}-\d{2}-\d{2}$/),services:Dr.record(Dr.array(f7r)),capabilities:Dr.record(Dr.array(m7r)),payment_handlers:Dr.record(Dr.array(Dr.unknown())).optional()}).passthrough(),signing_keys:Dr.array(Dr.unknown()).optional()}).passthrough();function y7r(e,t){let r=new URL(e);if(r.protocol!=="https:")throw new Error(`${t} must use HTTPS`);if(r.username||r.password)throw new Error(`${t} must not contain embedded credentials`);if(r.pathname!=="/"||r.search||r.hash)throw new Error(`${t} must be a bare origin`);return r}function KZ(e,t){if(new URL(e).origin!==p7r)throw new Error(`${t} must be governed by the ucp.dev namespace`)}function bht(e,t,r,n){try{e[t](r,n)}catch{}}async function g7r(e,t={}){let r=y7r(e,"UCP business URL"),n=$Z(t.timeoutMs??l7r,t.signal),i=t.logger??Re,o=(0,_ht.randomUUID)(),s=Date.now(),a;try{let c=await(t.fetch??fetch)(new URL("/.well-known/ucp",r),{headers:{accept:"application/json"},redirect:"error",signal:n.signal});if(a=c.status,!c.ok)throw new Error(`UCP profile fetch failed with HTTP ${c.status}`);let u=await FZ(c,d7r,"UCP profile exceeds the 1 MiB response limit"),d;try{d=JSON.parse(u)}catch{throw new Error("UCP profile response is not valid JSON")}let l=h7r.safeParse(d);if(!l.success)throw new Error("UCP profile response does not match the 2026-04-08 profile shape");return bht(i,"info","ucp:profile_fetch",{correlationId:o,businessOrigin:r.origin,method:"GET",httpStatus:a,elapsedMs:Date.now()-s}),{businessOrigin:r.origin,profile:l.data}}catch(c){throw bht(i,"warn","ucp:profile_fetch_failed",{correlationId:o,businessOrigin:r.origin,method:"GET",...a===void 0?{}:{httpStatus:a},elapsedMs:Date.now()-s,errorClass:c instanceof Error?c.name:"UnknownError"}),c}finally{n.cleanup()}}function b7r(e){if(e.ucp.version!==WZ)throw new Error(`Unsupported UCP version: ${e.ucp.version}`);let t=e.ucp.capabilities[u7r]?.find(i=>i.version===WZ);if(!t)throw new Error("Business does not advertise UCP checkout 2026-04-08");KZ(t.spec,"Checkout capability spec"),KZ(t.schema,"Checkout capability schema");let r=e.ucp.services[c7r]?.find(i=>i.version===WZ&&i.transport==="mcp");if(!r)throw new Error("Business does not advertise a UCP shopping MCP service");if(!r.endpoint)throw new Error("UCP shopping MCP service is missing its endpoint");KZ(r.spec,"Shopping service spec"),KZ(r.schema,"Shopping service schema");let n=new URL(r.endpoint);if(n.hash)throw new Error("UCP shopping MCP endpoint must not contain a fragment");return n.toString()}async function vht(e,t={}){let r=await g7r(e,t);return{...r,endpoint:b7r(r.profile),version:WZ}}var _7r="https://app.visacli.sh/.well-known/ucp";function v7r(e){let t=new URL(e);if(t.protocol!=="https:"||t.username||t.password||t.hash)throw new Error("UCP platform profile URL must be HTTPS and credential-free");return t.toString()}function w7r(e,t){if(typeof e=="string")try{let r=new URL(e);r.protocol==="https:"&&!r.username&&!r.password&&t.add(r.origin.toLowerCase())}catch{}}function k9e(e,t=new Set){if(Array.isArray(e))for(let r of e)k9e(r,t);else if(e&&typeof e=="object")for(let[r,n]of Object.entries(e))r==="endpoint"?w7r(n,t):k9e(n,t);return t}function x7r(e,t,r){let n=new URL(e),i=new URL(t);if(i.protocol!=="https:"||i.username||i.password)throw new Error("UCP continuation URL must be HTTPS and credential-free");let o=i.hostname.toLowerCase(),s=n.hostname.toLowerCase();if(i.origin.toLowerCase()===n.origin.toLowerCase())return i.hash="",{url:i.toString(),sourceHost:o,targetHost:s,originRewritten:!1};let a=r.ucp.services["dev.ucp.shopping"],c=k9e(a);if(!(o.endsWith(".myshopify.com")&&c.has(i.origin.toLowerCase())))throw new Error(`Refusing cross-host UCP continuation from ${o} to ${s}`);return i.hash="",{url:i.toString(),sourceHost:o,targetHost:o,originRewritten:!1}}function E7r(e){let t=Array.isArray(e.totals)?e.totals.find(a=>a&&typeof a=="object"&&a.type==="total"):void 0,r=t&&typeof t=="object"?t:void 0,n=r?.amount,o=r?.currency??e.currency;if(!Number.isSafeInteger(n)||Number(n)<0)throw new Error("UCP checkout is missing an integer totals[type=total].amount");if(o!=="USD")throw new Error(`UCP checkout handoff currently supports USD only; refusing ${String(o)} until currency exponents are implemented`);let s=Number(n);return{minor:s,decimal:`${Math.floor(s/100)}.${String(s%100).padStart(2,"0")}`,currency:o}}function A7r(e){return Array.isArray(e.messages)?e.messages.flatMap(t=>{if(!t||typeof t!="object")return[];let r=t,n={...typeof r.type=="string"?{type:r.type}:{},...typeof r.code=="string"?{code:r.code}:{},...typeof r.severity=="string"?{severity:r.severity}:{}};return Object.keys(n).length>0?[n]:[]}):[]}async function xht(e,t={}){if(!e.business?.trim())throw new Error("UCP business origin is required");if(!e.checkoutId?.trim())throw new Error("UCP checkout id is required");let r=await(t.discover??vht)(e.business),i=await(t.getCheckout??(async(u,d)=>await new VZ({endpoint:u.endpoint,platformProfileUrl:v7r(t.platformProfileUrl??process.env.VISA_UCP_PROFILE_URL??_7r)}).getCheckout(d)))(r,e.checkoutId);if(i.id!==e.checkoutId)throw new Error("UCP checkout response id does not match the requested checkout");let o=String(i.status??"unknown");if(o==="completed")return{success:!1,status:"not_ready",checkoutId:e.checkoutId,checkoutStatus:o,reason:"checkout_already_completed"};if(o!=="requires_escalation")return{success:!1,status:"not_ready",checkoutId:e.checkoutId,checkoutStatus:o,reason:"checkout_not_escalated"};if(typeof i.continue_url!="string"||!i.continue_url)return{success:!1,status:"not_ready",checkoutId:e.checkoutId,checkoutStatus:o,reason:"missing_continue_url"};let s=E7r(i),a=x7r(r.businessOrigin,i.continue_url,r.profile),c=`ucp_${(0,wht.createHash)("sha256").update([r.businessOrigin,e.checkoutId,o,s.currency,String(s.minor),a.url].join("\0")).digest("hex").slice(0,24)}`;return{success:!0,status:"ready_for_review",checkoutId:e.checkoutId,handoffId:c,checkoutStatus:"requires_escalation",amount:s,merchant:{businessOrigin:r.businessOrigin,sourceHost:a.sourceHost,targetHost:a.targetHost,originRewritten:a.originRewritten},payMerchantRequest:{action:"review",url:a.url,amount:s.decimal,currency:s.currency},messages:A7r(i),nextAction:"Copy the payMerchantRequest checkout fields unchanged to pay_merchant and include its required user_context. Show the returned merchant and exact total to the user; never authorize until they explicitly approve PAY <reviewId>."}}H2();function S7r(){return ga()}var Op=new Th(()=>xi.getSessionToken()),T7r="4.1.0-rc.29",xEn=["","","You're ready to go! Try:","","Verified Agent:",'\u2022 "Enroll this agent" \u2192 enroll_agent','\u2022 "Show my wallet and policy" \u2192 wallet_status','\u2022 "Find a paid weather service" \u2192 wallet_discover','\u2022 "Pay this x402 service with a $0.10 maximum" \u2192 wallet_pay','\u2022 "Review this card checkout" \u2192 pay_merchant','\u2022 "Show my account status" \u2192 get_status'].join(`
|
|
20889
20889
|
`);function P7r(e){if(!e||typeof e!="string")return{opened:!1,blockedReason:"invalid_url"};let t=ES(e);if(!t)return{opened:!1,blockedReason:"invalid_url"};if(MEe())return{opened:!1,url:t,blockedReason:"suppressed"};let r=xS();if(r.headless)return Re.info(`Browser auto-open skipped (${r.reason}). URL: ${t}`),{opened:!1,url:t,blockedReason:"headless"};let i=[S7r(),yl()].filter(s=>!!s).map(s=>bxe(t,s)).find(Boolean)??null;if(!i)return Re.info(`Browser auto-open skipped (non-internal host). URL: ${t}`),{opened:!1,url:t,blockedReason:"non_internal_host"};let o=XB(i);return o?((0,Aht.execFile)(o.cmd,o.args,s=>{s&&Re.warn(`Browser open failed: ${s.message}. URL: ${i}`)}),{opened:!0,url:i}):(Re.info(`No browser command for platform "${JZ.platform()}". URL: ${i}`),{opened:!1,url:i,blockedReason:"unsupported_platform"})}function I7r(){let e=!1,t;try{let n=Sht.join(JZ.homedir(),".claude","settings.json");if(GZ.existsSync(n)){let i=JSON.parse(GZ.readFileSync(n,"utf-8")),o=typeof i.statusLine=="object"?i.statusLine.command:"";e=xh(o)}}catch{}let r=oN();return r||(t="visa-cli config hud enable"),{statusLine:e,shellHud:r,...t?{shellHudSetup:t}:{}}}async function O7r(e){let t=await Op.getStatus(e);return t.hud=I7r(),!t.hud.statusLine&&!t.hud.shellHud&&(t._hud_nudge="The user has no HUD surfaces enabled. Mention once, naturally, that they can enable the Visa HUD with `visa-cli config hud enable`."),t.version=T7r,t}async function C7r(e,t){return await Op.feedback(e.message,e.transaction_id,t)}async function k7r(e){let t=await nB({api:Op,includeDev:!!e.includeDev});return{config:t.entries.map(r=>({key:r.key,value:r.value,source:r.source,hint:r.hint})),statusError:t.statusError}}var R9e=new Set(["auth.serverUrl"]);function MB(){return Object.keys(z2).filter(e=>!R9e.has(e)).sort()}function Tht(e,t){let r=t==="set"?`visa-cli config set ${e}=<value>`:`visa-cli config unset ${e}`;return{success:!1,error:`${e} cannot be changed via MCP. Run \`${r}\` directly from a shell instead.`,code:"MCP_FORBIDDEN_KEY",reason:"auth-trust-boundary key \u2014 a prompt-injected agent could redirect bearer-auth API calls to an attacker host (codex CLI-001 #752).",settableKeys:MB()}}async function R7r(e){if(!e.key||typeof e.key!="string")return{success:!1,error:"key is required. Call config_list first to see available keys."};if(e.value===void 0)return{success:!1,error:"value is required. Use config_unset to remove a setting."};if(R9e.has(e.key))return Re.warn("config:set:rejected:mcp-forbidden",{key:e.key}),Tht(e.key,"set");Re.info("config:set",{key:e.key});try{let t=vN(e.key,e.value);return Re.info("config:set:success",{key:t.key,requiresRestart:t.requiresRestart}),{success:!0,key:t.key,value:t.value,requiresRestart:t.requiresRestart,path:t.path,message:t.requiresRestart?`Saved ${t.key}. Restart Claude Code for the change to take effect.`:`Saved ${t.key}.`}}catch(t){let r=t instanceof hl?"UNKNOWN_KEY":"INVALID_VALUE",n=t instanceof hl?`Unknown setting "${e.key}". MCP-settable keys: ${MB().join(", ")}. For auth.serverUrl, use the shell command instead.`:t.message;return Re.warn("config:set:rejected",{key:e.key,code:r,error:n}),{success:!1,error:n,code:r,settableKeys:MB()}}}async function B7r(e){if(!e.key||typeof e.key!="string")return{success:!1,error:"key is required. Call config_list first to see which keys are currently set via settings.json."};if(R9e.has(e.key))return Re.warn("config:unset:rejected:mcp-forbidden",{key:e.key}),Tht(e.key,"unset");Re.info("config:unset",{key:e.key});try{let t=wN(e.key);return Re.info("config:unset:success",{key:t.key,removed:t.removed}),{success:!0,key:t.key,removed:t.removed,requiresRestart:t.requiresRestart,path:t.path,message:t.removed?t.requiresRestart?`Removed ${t.key}. Restart Claude Code for the change to take effect.`:`Removed ${t.key}.`:`${t.key} was not set in settings.json \u2014 nothing to remove.`}}catch(t){let r=t instanceof hl?"UNKNOWN_KEY":"INVALID_VALUE",n=t instanceof hl?`Unknown setting "${e.key}". MCP-settable keys: ${MB().join(", ")}. For auth.serverUrl, use the shell command instead.`:t.message;return Re.warn("config:unset:rejected",{key:e.key,code:r,error:n}),{success:!1,error:n,code:r,settableKeys:MB()}}}async function N7r(e=yl()){if(!e)return{success:!1,message:"No enrollment web origin is configured. Set VISA_VERIFY_WEB_URL to a deployment URL to use enroll_agent."};let{challenge:t,confirmCode:r,agentPkX:n,walletPkHex:i}=tB(),o=EN(e),s=`${o}?cli=${t}&cliPk=${n}${i?`&walletPk=${i}`:""}`;Re.info("agent:enroll_open",{url:o});let a=P7r(s),c="sign in \u2192 pick your .visa name \u2192 wallet \u2192 card (secure fields) \u2192 bank verification with passkey \u2192 mint; already enrolled on the web? sign in \u2192 verify with your passkey \u2192 connect",u=`CONFIRMATION CODE: ${r} \u2014 the final screen will ask for it. Only enter it on a page YOU opened from this terminal; never share it or enter a code from a link someone sent you.`,d='When the final screen shows "Sent to your Visa CLI", call enroll_agent with {"action":"claim"} to store the enrollment credential on this device.';return a.opened?{success:!0,opened:!0,browserUrl:a.url,confirmCode:r,message:`Opened the Visa Verified Agent enrollment in your browser (${c}). ${u} ${d} Access is currently tester-gated \u2014 if sign-in shows "private testing", ask for the v4_verify_web_access flag.`}:{success:!0,opened:!1,requiresBrowser:!0,browserUrl:a.url??s,confirmCode:r,message:`Open this URL in a browser to enroll your agent (${c}): ${a.url??s} \u2014 ${u} ${d}`}}async function j7r(e=yl()){if(!e)return{success:!1,message:"No enrollment web origin is configured. Set VISA_VERIFY_WEB_URL to a deployment URL to use enroll_agent."};let t=await rB(e);switch(Re.info("agent:enroll_claim",{status:t.status}),t.status){case"claimed":return{success:!0,name:t.name,tokenId:t.tokenId,credentialPath:t.credentialPath,keyBound:t.keyBound,sessionSaved:t.sessionSaved,walletProvisioned:t.walletProvisioned,message:`Enrollment credential${t.name?` for ${t.name}`:""} stored at ${t.credentialPath} (token id ${t.tokenId}). The CLI purchase leg will read it from there.`+(t.keyBound?" The agent's key was generated on this terminal and its private half never left this device.":" Note: this terminal\u2019s agent key was not bound \u2014 normal when connecting an EXISTING agent from a returning sign-in (the agent keeps its original key); the credential works for purchases, but no agent key is held on this device.")+(t.sessionSaved?" This device is connected to your identity.":"")+(t.walletProvisioned?" Your x402 spending wallet is live on this device \u2014 fund the wallet address and you can pay (wallet_pay / visa pay).":"")};case"no_pending":return{success:!1,message:"No enrollment hand-off is in progress on this device \u2014 run enroll_agent first, finish the browser flow, then claim."};case"not_ready":return{success:!1,message:t.likelyExpired?"The hand-off window (15 minutes) has likely expired \u2014 run enroll_agent again, finish the browser flow, then claim.":'The enrollment credential is not ready yet \u2014 finish the browser flow through the final "minted" screen (it will say "Sent to your Visa CLI"), then claim again.'};case"confirm_mismatch":return{success:!1,confirmCode:t.confirmCode,message:`The confirmation code entered in the browser did not match this terminal, so the credential was refused. Your code is ${t.confirmCode} \u2014 re-enter it on the enrollment page ("Re-enter code"), then claim again. If YOU did not just complete the browser flow, someone else may have your enrollment link; run enroll_agent to start over with a fresh one.`};case"error":return{success:!1,message:t.message}}}async function Eht(){if(await xi.clearAll(),!!Ih())try{await IN()}catch(e){Re.warn("reset:touchid_key_delete_failed",{error:e instanceof Error?e.message:String(e)})}}async function U7r(e,t){if(typeof e.confirm!="boolean"||e.confirm!==!0)return{success:!1,message:"Please confirm by setting confirm: true to reset"};if(Re.info("reset:attempt"),e.localOnly)return await Eht(),Re.info("reset:success",{localOnly:!0}),{success:!0,message:"Device reset locally. Local credentials and keys have been removed. Use enroll_agent to connect this device again."};try{await Op.logout(void 0,t)}catch{}return await Eht(),Re.info("reset:success"),{success:!0,message:"Device reset. The server session, local credentials, and local keys have been removed. Use enroll_agent to connect this device again."}}async function q7r(e){if(!e.name)return{success:!1,error:"name is required"};try{let{registerName:t,ensureMailbox:r}=await Promise.resolve().then(()=>(h4(),yB)),n=await t(e.name);return await r(e.name),{success:!0,...n}}catch(t){let{CardRequiredError:r}=await Promise.resolve().then(()=>(rw(),KAe));return t instanceof r?{success:!1,card_required:!0,reason:t.reason,recovery_tool:"enroll_agent",error:t.message,message:`${t.message} Call enroll_agent, complete and claim V4 enrollment, then ask me to register again.`}:{success:!1,error:t instanceof Error?t.message:String(t)}}}async function M7r(e){if(!e.name)return{success:!1,error:"name is required"};try{let{resolveMeshName:t}=await Promise.resolve().then(()=>(h4(),yB));return{success:!0,...await t(e.name)}}catch(t){return{success:!1,error:t instanceof Error?t.message:String(t)}}}async function D7r(e){if(!e.to||!e.text)return{success:!1,error:"to and text are required"};try{let{sendVia:t,resolveActingName:r}=await Promise.resolve().then(()=>(h4(),yB)),n=e.as??r(void 0);return{success:!0,...await t(n,e.to,e.text)}}catch(t){return{success:!1,error:t instanceof Error?t.message:String(t)}}}async function L7r(e){try{let{readInbox:t,resolveActingName:r,meshName:n}=await Promise.resolve().then(()=>(h4(),yB)),i=e.as??r(void 0),o=await t(i,e.limit??20,!!e.clear);return{success:!0,as:n(i),count:o.length,messages:o}}catch(t){return{success:!1,error:t instanceof Error?t.message:String(t)}}}var q4=class{static async subwayRegister(t){return q7r(t||{})}static async subwayFind(t){return M7r(t||{})}static async subwaySend(t){return D7r(t||{})}static async subwayInbox(t){return L7r(t||{})}static async getStatus(t){return O7r(t)}static async feedback(t,r){return C7r(t,r)}static async configList(t){return k7r(t||{})}static async configSet(t){return R7r(t||{})}static async configUnset(t){return B7r(t||{})}static async reset(t,r){return U7r(t,r)}static async enrollAgent(t={},r){let n=t?.action??"start";return n==="start"?N7r():n==="claim"?j7r():{success:!1,message:`Unknown enroll_agent action ${JSON.stringify(n)}. Use "start" (default \u2014 opens the enrollment flow) or "claim" (stores the credential after the browser flow finishes).`}}static async payMerchant(t={},r){return I1t(t)}static async ucpCheckoutHandoff(t,r){return $A("ucp_checkout_handoff")&&(await eZ(),$A("ucp_checkout_handoff"))?{success:!1,message:"ucp_checkout_handoff requires the checkout_agent_access flag on your account. Ask an admin to enable it, then retry."}:xht(t)}static async payMerchantStatus(t={},r){return P1t(t)}static async startCardMandate(t={},r){return O1t(t)}static async submitFeedback(t,r,n){Re.info("feedback:submit",{length:t.length,transactionId:r,hasContext:!!n});try{let i=await Op.submitFeedback(t,r,n);return Re.info("feedback:submitted",{transactionId:r}),i}catch(i){let o=i instanceof Error?i.message:"Unknown error";throw Re.error("feedback:error",{error:o,transactionId:r}),i}}static async getFeedback(t,r){Re.info("feedback:list",{limit:t||20});try{let n=await Op.getFeedback(t,r);return Re.info("feedback:listed",{count:n?.feedback?.length||0}),n}catch(n){let i=n instanceof Error?n.message:"Unknown error";throw Re.error("feedback:error",{error:i}),n}}};async function Pht(e,t,r,n){let i=n.log??console.log,o=n.error??console.error,s=n.exit??(c=>process.exit(c)),a=n.env??process.env;try{let c=r.currency,u=r.rail,d=await n.payMerchant({action:"review",rail:u,url:e,amount:t,currency:c});if(!d||d.success!==!0)return o(d?.message||"Review failed."),void s(1);if(i(d.message),!r.submit){i("Review only \u2014 nothing charged. Re-run with --submit to authorize (passkey required).");return}let l=d.reviewId;if(typeof l!="string"||l.length===0)return o("Review did not return a usable reviewId \u2014 cannot authorize a charge. Nothing charged."),void s(1);a.CHECKOUT_AGENT_ALLOW_SUBMIT="1";let p=await n.payMerchant({action:"pay",rail:u,url:e,amount:t,currency:c,confirm:`PAY ${l}`});if(i(p?.message),!p||p.success!==!0)return void s(1)}catch(c){return o("Error:",c.message),void s(1)}}var Iht=require("node:fs/promises"),Oht=require("node:os"),Cht=require("node:path");async function B9e(e,t,r,n){let i=n.log??console.log,o=n.error??console.error,s=n.exit??(a=>process.exit(a));try{let a;if(r.maxDraws!==void 0){let l=Number(r.maxDraws);if(!Number.isSafeInteger(l)||l<1)return o(`--max-draws must be a positive integer (got ${JSON.stringify(r.maxDraws)}).`),void s(1);a=l}let c={rail:"card",...e?{url:e}:{},ceiling:t,...r.currency?{currency:r.currency}:{},...r.expires?{expiresAt:r.expires}:{},...r.merchantName?{merchantName:r.merchantName}:{},...a!==void 0?{maxDraws:a}:{},...r.anyMerchant?{anyMerchant:!0}:{},...r.perTransaction?{perTransaction:r.perTransaction}:{},...r.intent?{intent:r.intent}:{}},u=await n.startCardMandate(c);if(!u||u.success!==!0)return o(u?.message||"Could not create the mandate."),void s(1);i(u.message),i(""),i(` mandate: ${u.mandateId}`),i(` ceiling: ${u.ceiling} ${u.currency}`),typeof u.remainingMinor=="number"&&i(` remaining: ${FA(u.remainingMinor,u.currency??"USD")}`);let d=u.merchant?.name??u.merchantHost;d&&i(` merchant: ${d}`),u.expiresAt&&i(` expires: ${u.expiresAt}`)}catch(a){return o("Error:",a.message),void s(1)}}var z7r=300*1e3;function H7r(){return process.env.VISA_CARD_MANDATE_LEDGER_FILE??(0,Cht.join)((0,Oht.homedir)(),".visa-mcp","card-mandates.json")}async function F7r(){try{let e=JSON.parse(await(0,Iht.readFile)(H7r(),"utf8"));return!e||!Array.isArray(e.mandates)?{mandates:[]}:e}catch(e){if(e.code==="ENOENT")return null;throw e}}function $7r(e,t){let r=(e.reservations??[]).reduce((n,i)=>{let o=i.reservedAt!==void 0?Date.parse(i.reservedAt):NaN;return!Number.isFinite(o)||t-o>z7r?n:n+i.amountMinor},0);return e.ceilingMinor-e.spentMinor-r}async function kht(e={}){let t=e.log??console.log,r=e.error??console.error,n=e.exit??(s=>process.exit(s)),i=e.readLedger??F7r,o=(e.now??(()=>new Date))().getTime();try{let c=((await i())?.mandates??[]).filter(u=>{let d=Date.parse(u.expiresAt);return Number.isFinite(d)&&d>o});if(c.length===0){t("No active mandates. Create one with: visa-cli mandate start <url> <ceiling>");return}t(`Active mandates
|
|
20890
20890
|
`);for(let u of c)t(` ${u.mandateId}`),t(` merchant: ${u.merchantName||u.merchantHost||"(unknown)"}`),t(` remaining: ${FA($7r(u,o),u.currencyCode)}`),t(` expires: ${u.expiresAt}`),u.unhonoredAt&&t(` unhonored: yes (disabled ${u.unhonoredAt}) \u2014 next checkout uses a fresh tap`),u.registerFailedAt&&t(` register: FAILED (${u.registerFailedAt}) \u2014 not used for tap-free draws; next checkout uses a fresh tap`)}catch(s){return r("Error:",s.message),void n(1)}}eu();function Rht(e,t=process.stderr){if(Eh()||!e?.updateAvailable)return!1;let{latestVersion:r}=e.updateAvailable;if(!r)return!1;let n=`Update available: v${r}. Run: visa-cli update`;return t.write(`
|
|
20891
20891
|
\x1B[33m\u2191 ${n}\x1B[0m
|
|
@@ -20901,7 +20901,7 @@ If building from source, run native/build-win.bat first.`);Jr.mkdirSync(Ph,{recu
|
|
|
20901
20901
|
`)}function uTr(e,t){return e.length<=t?e:`${e.slice(0,Math.max(t-1,0))}\u2026`}function dTr(e){if(e.length===0)return"No matching paid services.";let t=["ID","Protocol","Price","Health","Service"],r=e.map(i=>[i.id,i.protocol,i.listedPriceUsd?`$${i.listedPriceUsd}`:"runtime",i.health,uTr(i.name,48)]),n=t.map((i,o)=>Math.max(i.length,...r.map(s=>s[o].length)));return[t,...r].map(i=>i.map((o,s)=>o.padEnd(n[s])).join(" ").trimEnd()).join(`
|
|
20902
20902
|
`)}function lTr(){let e=iZ.map(r=>({id:r.id,detected:Y8e(r),connected:n3e(r)})),t={id:Math.max(6,...e.map(r=>r.id.length))};return[`${"Client".padEnd(t.id)} Detected Connected`,...e.map(r=>`${r.id.padEnd(t.id)} ${(r.detected?"yes":"no").padEnd(8)} ${r.connected?"yes":"no"}`)].join(`
|
|
20903
20903
|
`)}function pTr(e,t){if(e==="find"){let r=t.listings;D9e(dTr(r));return}if(e==="connections"){D9e(lTr());return}D9e(JSON.stringify(t,null,2))}async function jp(e,t,r){let n="table";try{n=cTr(t);let i=await r();n==="table"?pTr(e,i):M9e(Nht(e,{data:i}),n)}catch(i){let o=i instanceof Error?i.message:String(i);n==="table"?process.stderr.write(`Error: ${o}
|
|
20904
|
-
`):M9e(jht(e,o),n),process.exitCode=1}}function fTr(){this.help({error:!1})}function Dht(e){Np(e.command("find <intent>").description("Find payable services by outcome; discovery never spends money.").option("--provider <provider>",`Directory provider: all, ${JY.join(", ")}`,"all").option("--protocol <protocol>","Filter by payment protocol: x402, mpp, l402, vic").option("--max <usd>","Only show listings at or below this advisory price").option("--limit <count>","Maximum results","10")).action(async(r,n)=>{await jp("find",n,async()=>{let i=["all",...JY];if(!i.includes(n.provider))throw new Error(`--provider must be one of: ${i.join(", ")}`);let o=["x402","mpp","l402","vic"];if(n.protocol&&!o.includes(n.protocol))throw new Error(`--protocol must be one of: ${o.join(", ")}`);let s=Number(n.limit);if(!Number.isInteger(s)||s<1||s>50)throw new Error("--limit must be an integer between 1 and 50");return k2().find({intent:r,provider:n.provider,protocol:n.protocol,maxUsd:n.max,limit:s})})}),Np(e.command("inspect [listing-id]").description("Inspect a directory listing or fetch a fresh x402 challenge without paying.").option("--url <url>","Inspect an advanced direct endpoint instead of a listing").option("--input <source>","POST JSON from @file or - for stdin")).action(async(r,n)=>{await jp("inspect",n,()=>k2().inspect({listingId:r,url:n.url,bodyJson:Mht(n.input)}))}),Np(e.command("pay [listing-id]").description("Execute a bounded payment through a fresh runtime challenge.").option("--url <url>","Pay an advanced direct endpoint instead of a listing").requiredOption("--max <usd>","Hard USD ceiling; the wallet refuses a pricier challenge").option("--input <source>","POST JSON from @file or - for stdin")).action(async(r,n)=>{await jp("pay",n,()=>k2().pay({listingId:r,url:n.url,maxUsd:n.max,bodyJson:Mht(n.input)}))});let t=e.command("wallet").description("Inspect, fund, and constrain the principal v4 wallet.").action(fTr);Np(t.command("show").description("Show wallet, network, policy, and budgets.")).action(async r=>jp("wallet show",r,()=>k2().status())),Np(t.command("fund").description("Show the wallet funding address and network guidance.")).action(async r=>jp("wallet fund",r,()=>k2().fund())),Np(t.command("limits").description("Show or update wallet spending limits.").option("--per-transaction <usd>","Per-transaction cap").option("--daily <usd>","Daily cap").option("--session <usd>","Current session cap").option("--expires-at <timestamp>","ISO timestamp after which paying is blocked")).action(async r=>jp("wallet limits",r,()=>k2().limits({perTransaction:r.perTransaction,daily:r.daily,session:r.session,expiresAt:r.expiresAt}))),Np(e.command("activity").description("Show journaled v4 wallet receipts.").option("--limit <count>","Return at most the newest N receipts")).action(async r=>{await jp("activity",r,()=>{let n=r.limit===void 0?void 0:Number(r.limit);if(n!==void 0&&(!Number.isInteger(n)||n<1))throw new Error("--limit must be a positive integer");return k2().activity(n)})}),Np(e.command("receipt <receipt-id>").description("Show one journaled payment receipt.")).action(async(r,n)=>{await jp("receipt",n,()=>k2().receipt(r))}),Np(e.command("connections").description("Show supported MCP client connections.")).action(async r=>jp("connections",r,async()=>iZ.map(n=>({id:n.id,name:n.displayName,detected:Y8e(n),connected:n3e(n)})))),Np(e.command("connect <client>").description("Connect Visa to an AI or MCP client.")).action(async(r,n)=>{await jp("connect",n,async()=>{let i=aB(r);if(!i)throw new Error(`unknown client: ${r}`);return pmt(i)})}),Np(e.command("disconnect <client>").description("Remove Visa from an AI or MCP client.")).action(async(r,n)=>{await jp("disconnect",n,async()=>{let i=aB(r);if(!i)throw new Error(`unknown client: ${r}`);return mmt(i)})})}eu();var z9e=!1;async function H9e(e,t,r){try{return await t()}catch(n){if(!(n.message==="Invalid signature"||n.code==="ATTESTATION_KEY_DRIFT"||n.error_code==="ATTESTATION_KEY_DRIFT"||n.name==="AttestationDriftError")||!Ih())throw n;if(Re.warn("attestation:key-mismatch",{action:"browser-recovery"}),r){if(z9e)throw Re.warn("attestation:browser-recovery-suppressed",{reason:"already-attempted-in-process"}),n;z9e=!0,Re.info("attestation:starting-browser-recovery");try{let o=await r();if(!o.success)throw Re.error("attestation:browser-recovery-failed",{message:o.message}),n;let s=await nAe();await e.registerAttestationKey(s),await e.setBiometricPreference({required:!0}),Re.info("attestation:requirement-restored-after-recovery",{surface:"retry"}),Re.info("attestation:key-reregistered-after-recovery");let a=await t();return z9e=!1,a}catch(o){throw Re.error("attestation:recovery-failure",{error:o.message}),n}}throw n}}function F9e(e){return e?typeof e.hasAnyAttestationKey=="boolean"?e.hasAnyAttestationKey:typeof e.hasAttestationKey=="boolean"?e.hasAttestationKey:!0:!1}bB();k3e();h4();rw();var mTr="4.1.0-rc.28";async function Lht(e){let t=await hB(e);console.log(`\u2713 registered "${t.relayName}" on the "${t.mesh}" mesh`),console.log(` peer: ${t.peerId??"(pending)"}`),console.log(` identity: ${t.tapAgentId?`reused TAP key ${t.tapAgentId}`:"stable Subway key (no TAP agent found)"}`),console.log(` relay: ${mB} (mesh="${t.mesh}")`),console.log(` chat: visa subway listen --as ${e} | visa subway send --as ${e} <to> "<text>"`)}var LB=(e,t)=>{if(t instanceof Xm){console.error(`\u2717 ${e}: ${t.message}`),console.error(" \u2192 enroll this agent: visa agent enroll"),console.error(" \u2192 then re-run: visa register <name>"),process.exitCode=1;return}console.error(`\u2717 ${e} failed: ${t instanceof Error?t.message:String(t)}`),process.exitCode=1};function zht(e){if(!V3e(mTr))return;e.command("register <name>").description(`Register a name on the "${to}" Subway mesh (reuses your CLI agent key \u2014 no TAP setup needed).`).action(async r=>{try{await Lht(r)}catch(n){LB("register",n)}});let t=e.command("subway").description("Subway agent-to-agent messaging over the Visa CLI.");t.command("register <name>").description("Alias of `visa register <name>`.").action(async r=>{try{await Lht(r)}catch(n){LB("register",n)}}),t.command("send <to> <text>").description("Send a direct signed message to another agent.").option("--as <name>","Registered name to send as (default: the only one registered)").action(async(r,n,i)=>{try{let o=PZ(i.as),s=await Y3e(o,r,n);console.log(`\u2713 sent to ${s.to} as ${s.as}`)}catch(o){LB("send",o)}}),t.command("find <name>").description("Look up another agent on the .visa relay \u2014 is it live, and who is it?").action(async r=>{try{let n=await J3e(r);n.found?(console.log(`\u2713 ${n.relayName} is live`),console.log(` peer: ${n.peerId}`)):(console.log(`\u2717 ${n.relayName} not found${n.error?` (${n.error})`:""}`),process.exitCode=1)}catch(n){LB("find",n)}}),t.command("listen").description("Stay connected and print inbound messages (Ctrl-C to stop).").option("--as <name>","Registered name to listen as (default: the only one registered)").option("--room <topic>","Also subscribe to a room topic").action(async r=>{try{let n=PZ(r.as),i=QA(n,{autoReconnect:!0});await eS(i);let o=a=>new Date(a).toLocaleTimeString();i.onMessage(a=>{let c=a.verified?"":" (unverified)";console.log(`[${o(a.timestampMs)}] ${a.fromName}${c}: ${a.payload}`)}),r.room&&i.subscribe(r.room,a=>{console.log(`[${o(a.timestampMs)}] #${a.topic} ${a.fromName}: ${a.payload}`)}),console.log(`\u2026 listening as ${d4(n)} on "${to}" mesh${r.room?` (room #${r.room})`:""}. Ctrl-C to stop.`);let s=()=>{i.disconnect(),process.exit(0)};process.on("SIGINT",s),process.on("SIGTERM",s),await new Promise(()=>{})}catch(n){LB("listen",n)}}),t.command("whoami").description("List names this CLI has registered on the relay.").action(()=>{let r=Z3e();if(r.length===0){console.log("No Subway names registered. Run `visa register <name>`.");return}for(let n of r)console.log(`${n.relayName} mesh=${n.mesh} peer=${n.peerId??"?"} ${n.tapAgentId?`tap=${n.tapAgentId}`:"(standalone key)"} registered=${n.registeredAt}`)})}H2();var _Tr=(0,Ght.promisify)(Wht.execFile);function $9e(){let e=K4();setImmediate(()=>{AX(e,{getCommand:()=>uN(process.execPath,process.argv[1])})})}process.stdout.on("error",e=>{throw e.code==="EPIPE"&&process.exit(0),e});process.stderr.on("error",e=>{throw e.code==="EPIPE"&&process.exit(0),e});function bS(){this.help({error:!1})}var Xo=new Vht.Command,XZ=null,Hht=!1;function qp(){return XZ=new Th(()=>xi.getSessionToken()),XZ}var vTr="api-keys-create",Fht=0,$ht="",wTr=12e3;async function xTr(e){let{nonce:t}=await e.getAttestationChallenge(),r=Buffer.from(JSON.stringify({nonce:t,amount:Fht,merchant:$ht,context:vTr})).toString("base64");return{signature:await HX(r,"create a Visa Key",{timeoutMs:wTr}),nonce:t,amount:Fht,merchant:$ht}}async function ETr(e){let t=await e.getStatus();return t.attestationRequired!==!1||F9e(t)}function Jht(e){return async()=>{let t=await STr(e);return{success:t,...t?{}:{message:"Biometric recovery was not completed."}}}}async function ATr(e){let n=Date.now()+3e5;for(;Date.now()<n;)try{let i=await globalThis.fetch(`${ga()}/v1/auth-status`,{method:"POST",headers:{"Content-Type":"application/json","X-Source":"cli"},body:JSON.stringify({state:e,timeout:3e4}),signal:AbortSignal.timeout(35e3)});if(!i.ok){await mX(i,s=>{Re.warn("auth_status:retry_after_http_error",{status:i.status,delayMs:s})});continue}let o=await i.json();if(o.status==="pending")continue;if(o.status==="complete"&&o.attestationCleared)return;if(o.status==="expired")throw new Error("Biometric reset session expired. Please run visa-cli config reset again.");if(o.status==="error")throw new Error(o.error||"Biometric reset failed. Please try again.")}catch(i){if(i?.message&&!/fetch failed|network|abort/i.test(i.message))throw i;await mX(void 0,o=>{Re.warn("auth_status:retry_after_network_error",{delayMs:o})})}throw new Error("Biometric reset timed out after 5 minutes. Please run visa-cli config reset again.")}async function STr(e){let t;try{t=await e.getStatus()}catch(i){let o=i?.message||"";if(/not logged in|session.*expired|no local credentials/i.test(o))return!1;throw new Error(`Could not check server biometric state: ${o||"unknown error"}`)}if(!F9e(t))return!1;let r=Kht.randomUUID(),n=await e.startAttestationRecovery(r);if(!n.success||!n.recoveryUrl)throw new Error(n.error||"Could not start biometric reset.");return console.log(" Server biometric key found. Opening GitHub to confirm reset..."),await H4(n.recoveryUrl),await ATr(r),console.log(" Server biometric state cleared."),!0}function Yht(e){return`$${(e/100).toFixed(2)}`}function TTr(e){return typeof e=="number"?Yht(e):"no cap"}function PTr(e){let t=`visa-cli-${wo.hostname()||"local"}`,r=(e?.trim()||t).trim();if(!r)throw new Error("Visa Key label is required.");if(r.length>128)throw new Error("Visa Key label must be 128 characters or fewer.");return r}function ITr(e){if(!e)return;let t=e.split(",").map(i=>i.trim()).filter(Boolean),r=Array.from(new Set(t)),n=r.find(i=>i.length>64);if(n)throw new Error(`Tool id is too long: ${n}`);return r}var V9e=!1;async function Zht(e){let t=(0,K9e.createInterface)({input:process.stdin,output:process.stdout});try{return(await t.question(e)).trim()}finally{t.close()}}async function OTr(e,t=!1){let r=xEe(e,{json:t,isTTY:process.stdin.isTTY===!0});if(r!==void 0)return r;if(await hEe("Use recommended Visa Key caps ($5/day and $25 total)? Without caps, a leaked key can authorize API charges until it is revoked.",!0))return V9e=!0,500;let i=await Zht("Daily cap USD (1-100): ");if(!i)throw new Error("--daily-cap is required when declining the recommended daily cap.");return IX(i)}async function CTr(e,t=!1){let r=EEe(e,{json:t,isTTY:process.stdin.isTTY===!0,recommendedCapsAccepted:V9e});if(r!==void 0)return V9e=!1,r;let n=await Zht("Cumulative cap USD (1-10000, default 25): ");return OX(n||"25")}function kTr(e){return e&&e.length>0?e.join(", "):"all tools"}function RTr(e){let t=`
|
|
20904
|
+
`):M9e(jht(e,o),n),process.exitCode=1}}function fTr(){this.help({error:!1})}function Dht(e){Np(e.command("find <intent>").description("Find payable services by outcome; discovery never spends money.").option("--provider <provider>",`Directory provider: all, ${JY.join(", ")}`,"all").option("--protocol <protocol>","Filter by payment protocol: x402, mpp, l402, vic").option("--max <usd>","Only show listings at or below this advisory price").option("--limit <count>","Maximum results","10")).action(async(r,n)=>{await jp("find",n,async()=>{let i=["all",...JY];if(!i.includes(n.provider))throw new Error(`--provider must be one of: ${i.join(", ")}`);let o=["x402","mpp","l402","vic"];if(n.protocol&&!o.includes(n.protocol))throw new Error(`--protocol must be one of: ${o.join(", ")}`);let s=Number(n.limit);if(!Number.isInteger(s)||s<1||s>50)throw new Error("--limit must be an integer between 1 and 50");return k2().find({intent:r,provider:n.provider,protocol:n.protocol,maxUsd:n.max,limit:s})})}),Np(e.command("inspect [listing-id]").description("Inspect a directory listing or fetch a fresh x402 challenge without paying.").option("--url <url>","Inspect an advanced direct endpoint instead of a listing").option("--input <source>","POST JSON from @file or - for stdin")).action(async(r,n)=>{await jp("inspect",n,()=>k2().inspect({listingId:r,url:n.url,bodyJson:Mht(n.input)}))}),Np(e.command("pay [listing-id]").description("Execute a bounded payment through a fresh runtime challenge.").option("--url <url>","Pay an advanced direct endpoint instead of a listing").requiredOption("--max <usd>","Hard USD ceiling; the wallet refuses a pricier challenge").option("--input <source>","POST JSON from @file or - for stdin")).action(async(r,n)=>{await jp("pay",n,()=>k2().pay({listingId:r,url:n.url,maxUsd:n.max,bodyJson:Mht(n.input)}))});let t=e.command("wallet").description("Inspect, fund, and constrain the principal v4 wallet.").action(fTr);Np(t.command("show").description("Show wallet, network, policy, and budgets.")).action(async r=>jp("wallet show",r,()=>k2().status())),Np(t.command("fund").description("Show the wallet funding address and network guidance.")).action(async r=>jp("wallet fund",r,()=>k2().fund())),Np(t.command("limits").description("Show or update wallet spending limits.").option("--per-transaction <usd>","Per-transaction cap").option("--daily <usd>","Daily cap").option("--session <usd>","Current session cap").option("--expires-at <timestamp>","ISO timestamp after which paying is blocked")).action(async r=>jp("wallet limits",r,()=>k2().limits({perTransaction:r.perTransaction,daily:r.daily,session:r.session,expiresAt:r.expiresAt}))),Np(e.command("activity").description("Show journaled v4 wallet receipts.").option("--limit <count>","Return at most the newest N receipts")).action(async r=>{await jp("activity",r,()=>{let n=r.limit===void 0?void 0:Number(r.limit);if(n!==void 0&&(!Number.isInteger(n)||n<1))throw new Error("--limit must be a positive integer");return k2().activity(n)})}),Np(e.command("receipt <receipt-id>").description("Show one journaled payment receipt.")).action(async(r,n)=>{await jp("receipt",n,()=>k2().receipt(r))}),Np(e.command("connections").description("Show supported MCP client connections.")).action(async r=>jp("connections",r,async()=>iZ.map(n=>({id:n.id,name:n.displayName,detected:Y8e(n),connected:n3e(n)})))),Np(e.command("connect <client>").description("Connect Visa to an AI or MCP client.")).action(async(r,n)=>{await jp("connect",n,async()=>{let i=aB(r);if(!i)throw new Error(`unknown client: ${r}`);return pmt(i)})}),Np(e.command("disconnect <client>").description("Remove Visa from an AI or MCP client.")).action(async(r,n)=>{await jp("disconnect",n,async()=>{let i=aB(r);if(!i)throw new Error(`unknown client: ${r}`);return mmt(i)})})}eu();var z9e=!1;async function H9e(e,t,r){try{return await t()}catch(n){if(!(n.message==="Invalid signature"||n.code==="ATTESTATION_KEY_DRIFT"||n.error_code==="ATTESTATION_KEY_DRIFT"||n.name==="AttestationDriftError")||!Ih())throw n;if(Re.warn("attestation:key-mismatch",{action:"browser-recovery"}),r){if(z9e)throw Re.warn("attestation:browser-recovery-suppressed",{reason:"already-attempted-in-process"}),n;z9e=!0,Re.info("attestation:starting-browser-recovery");try{let o=await r();if(!o.success)throw Re.error("attestation:browser-recovery-failed",{message:o.message}),n;let s=await nAe();await e.registerAttestationKey(s),await e.setBiometricPreference({required:!0}),Re.info("attestation:requirement-restored-after-recovery",{surface:"retry"}),Re.info("attestation:key-reregistered-after-recovery");let a=await t();return z9e=!1,a}catch(o){throw Re.error("attestation:recovery-failure",{error:o.message}),n}}throw n}}function F9e(e){return e?typeof e.hasAnyAttestationKey=="boolean"?e.hasAnyAttestationKey:typeof e.hasAttestationKey=="boolean"?e.hasAttestationKey:!0:!1}bB();k3e();h4();rw();var mTr="4.1.0-rc.29";async function Lht(e){let t=await hB(e);console.log(`\u2713 registered "${t.relayName}" on the "${t.mesh}" mesh`),console.log(` peer: ${t.peerId??"(pending)"}`),console.log(` identity: ${t.tapAgentId?`reused TAP key ${t.tapAgentId}`:"stable Subway key (no TAP agent found)"}`),console.log(` relay: ${mB} (mesh="${t.mesh}")`),console.log(` chat: visa subway listen --as ${e} | visa subway send --as ${e} <to> "<text>"`)}var LB=(e,t)=>{if(t instanceof Xm){console.error(`\u2717 ${e}: ${t.message}`),console.error(" \u2192 enroll this agent: visa agent enroll"),console.error(" \u2192 then re-run: visa register <name>"),process.exitCode=1;return}console.error(`\u2717 ${e} failed: ${t instanceof Error?t.message:String(t)}`),process.exitCode=1};function zht(e){if(!V3e(mTr))return;e.command("register <name>").description(`Register a name on the "${to}" Subway mesh (reuses your CLI agent key \u2014 no TAP setup needed).`).action(async r=>{try{await Lht(r)}catch(n){LB("register",n)}});let t=e.command("subway").description("Subway agent-to-agent messaging over the Visa CLI.");t.command("register <name>").description("Alias of `visa register <name>`.").action(async r=>{try{await Lht(r)}catch(n){LB("register",n)}}),t.command("send <to> <text>").description("Send a direct signed message to another agent.").option("--as <name>","Registered name to send as (default: the only one registered)").action(async(r,n,i)=>{try{let o=PZ(i.as),s=await Y3e(o,r,n);console.log(`\u2713 sent to ${s.to} as ${s.as}`)}catch(o){LB("send",o)}}),t.command("find <name>").description("Look up another agent on the .visa relay \u2014 is it live, and who is it?").action(async r=>{try{let n=await J3e(r);n.found?(console.log(`\u2713 ${n.relayName} is live`),console.log(` peer: ${n.peerId}`)):(console.log(`\u2717 ${n.relayName} not found${n.error?` (${n.error})`:""}`),process.exitCode=1)}catch(n){LB("find",n)}}),t.command("listen").description("Stay connected and print inbound messages (Ctrl-C to stop).").option("--as <name>","Registered name to listen as (default: the only one registered)").option("--room <topic>","Also subscribe to a room topic").action(async r=>{try{let n=PZ(r.as),i=QA(n,{autoReconnect:!0});await eS(i);let o=a=>new Date(a).toLocaleTimeString();i.onMessage(a=>{let c=a.verified?"":" (unverified)";console.log(`[${o(a.timestampMs)}] ${a.fromName}${c}: ${a.payload}`)}),r.room&&i.subscribe(r.room,a=>{console.log(`[${o(a.timestampMs)}] #${a.topic} ${a.fromName}: ${a.payload}`)}),console.log(`\u2026 listening as ${d4(n)} on "${to}" mesh${r.room?` (room #${r.room})`:""}. Ctrl-C to stop.`);let s=()=>{i.disconnect(),process.exit(0)};process.on("SIGINT",s),process.on("SIGTERM",s),await new Promise(()=>{})}catch(n){LB("listen",n)}}),t.command("whoami").description("List names this CLI has registered on the relay.").action(()=>{let r=Z3e();if(r.length===0){console.log("No Subway names registered. Run `visa register <name>`.");return}for(let n of r)console.log(`${n.relayName} mesh=${n.mesh} peer=${n.peerId??"?"} ${n.tapAgentId?`tap=${n.tapAgentId}`:"(standalone key)"} registered=${n.registeredAt}`)})}H2();var _Tr=(0,Ght.promisify)(Wht.execFile);function $9e(){let e=K4();setImmediate(()=>{AX(e,{getCommand:()=>uN(process.execPath,process.argv[1])})})}process.stdout.on("error",e=>{throw e.code==="EPIPE"&&process.exit(0),e});process.stderr.on("error",e=>{throw e.code==="EPIPE"&&process.exit(0),e});function bS(){this.help({error:!1})}var Xo=new Vht.Command,XZ=null,Hht=!1;function qp(){return XZ=new Th(()=>xi.getSessionToken()),XZ}var vTr="api-keys-create",Fht=0,$ht="",wTr=12e3;async function xTr(e){let{nonce:t}=await e.getAttestationChallenge(),r=Buffer.from(JSON.stringify({nonce:t,amount:Fht,merchant:$ht,context:vTr})).toString("base64");return{signature:await HX(r,"create a Visa Key",{timeoutMs:wTr}),nonce:t,amount:Fht,merchant:$ht}}async function ETr(e){let t=await e.getStatus();return t.attestationRequired!==!1||F9e(t)}function Jht(e){return async()=>{let t=await STr(e);return{success:t,...t?{}:{message:"Biometric recovery was not completed."}}}}async function ATr(e){let n=Date.now()+3e5;for(;Date.now()<n;)try{let i=await globalThis.fetch(`${ga()}/v1/auth-status`,{method:"POST",headers:{"Content-Type":"application/json","X-Source":"cli"},body:JSON.stringify({state:e,timeout:3e4}),signal:AbortSignal.timeout(35e3)});if(!i.ok){await mX(i,s=>{Re.warn("auth_status:retry_after_http_error",{status:i.status,delayMs:s})});continue}let o=await i.json();if(o.status==="pending")continue;if(o.status==="complete"&&o.attestationCleared)return;if(o.status==="expired")throw new Error("Biometric reset session expired. Please run visa-cli config reset again.");if(o.status==="error")throw new Error(o.error||"Biometric reset failed. Please try again.")}catch(i){if(i?.message&&!/fetch failed|network|abort/i.test(i.message))throw i;await mX(void 0,o=>{Re.warn("auth_status:retry_after_network_error",{delayMs:o})})}throw new Error("Biometric reset timed out after 5 minutes. Please run visa-cli config reset again.")}async function STr(e){let t;try{t=await e.getStatus()}catch(i){let o=i?.message||"";if(/not logged in|session.*expired|no local credentials/i.test(o))return!1;throw new Error(`Could not check server biometric state: ${o||"unknown error"}`)}if(!F9e(t))return!1;let r=Kht.randomUUID(),n=await e.startAttestationRecovery(r);if(!n.success||!n.recoveryUrl)throw new Error(n.error||"Could not start biometric reset.");return console.log(" Server biometric key found. Opening GitHub to confirm reset..."),await H4(n.recoveryUrl),await ATr(r),console.log(" Server biometric state cleared."),!0}function Yht(e){return`$${(e/100).toFixed(2)}`}function TTr(e){return typeof e=="number"?Yht(e):"no cap"}function PTr(e){let t=`visa-cli-${wo.hostname()||"local"}`,r=(e?.trim()||t).trim();if(!r)throw new Error("Visa Key label is required.");if(r.length>128)throw new Error("Visa Key label must be 128 characters or fewer.");return r}function ITr(e){if(!e)return;let t=e.split(",").map(i=>i.trim()).filter(Boolean),r=Array.from(new Set(t)),n=r.find(i=>i.length>64);if(n)throw new Error(`Tool id is too long: ${n}`);return r}var V9e=!1;async function Zht(e){let t=(0,K9e.createInterface)({input:process.stdin,output:process.stdout});try{return(await t.question(e)).trim()}finally{t.close()}}async function OTr(e,t=!1){let r=xEe(e,{json:t,isTTY:process.stdin.isTTY===!0});if(r!==void 0)return r;if(await hEe("Use recommended Visa Key caps ($5/day and $25 total)? Without caps, a leaked key can authorize API charges until it is revoked.",!0))return V9e=!0,500;let i=await Zht("Daily cap USD (1-100): ");if(!i)throw new Error("--daily-cap is required when declining the recommended daily cap.");return IX(i)}async function CTr(e,t=!1){let r=EEe(e,{json:t,isTTY:process.stdin.isTTY===!0,recommendedCapsAccepted:V9e});if(r!==void 0)return V9e=!1,r;let n=await Zht("Cumulative cap USD (1-10000, default 25): ");return OX(n||"25")}function kTr(e){return e&&e.length>0?e.join(", "):"all tools"}function RTr(e){let t=`
|
|
20905
20905
|
Options:
|
|
20906
20906
|
`,r=`
|
|
20907
20907
|
Commands:
|