@visa/cli 4.1.0-rc.33 → 4.1.0-rc.34

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 hyt=Object.create;var VB=Object.defineProperty;var yyt=Object.getOwnPropertyDescriptor;var gyt=Object.getOwnPropertyNames;var byt=Object.getPrototypeOf,_yt=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)VB(e,r,{get:t[r],enumerable:!0})},rxe=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of gyt(t))!_yt.call(e,i)&&i!==r&&VB(e,i,{get:()=>t[i],enumerable:!(n=yyt(t,i))||n.enumerable});return e};var ve=(e,t,r)=>(r=e!=null?hyt(byt(e)):{},rxe(t||!e||!e.__esModule?VB(r,"default",{value:e,enumerable:!0}):r,e)),ie=e=>rxe(VB({},"__esModule",{value:!0}),e);var Km,iX=P(()=>{"use strict";Km="6820f6e91b762e645c9bf020c0d3673bb99d4a25a824880c0d548e10bb9bc7b1"});function oX(e){return`${e}-${sxe.randomBytes(24).toString("base64url")}`}function cxe(e=process.env){return e.NODE_ENV==="test"||e[axe]==="true"}function _h(e=process.env){return e.VISA_MOCK_KEYCHAIN==="true"&&cxe(e)}function xS(e=process.env){return e.VISA_MOCK_TOUCHID==="true"&&cxe(e)}function sX(){return`Set ${axe}=true only for local debugging; it enables insecure mock credential hooks outside NODE_ENV=test.`}function uxe(){return nxe??=oX("mock-session"),nxe}function dxe(e=process.env){return e.NODE_ENV==="test"?Km:(ixe??=oX("mock-rc"),ixe)}function lxe(){return oxe??=oX("mock-signature"),oxe}var sxe,axe,nxe,ixe,oxe,KB=P(()=>{"use strict";sxe=ve(require("crypto"));iX();axe="VISA_ALLOW_INSECURE_MOCKS"});function wyt(e){let t=e;return[t?.message,t?.stderr].filter(r=>typeof r=="string").join(`
2
- `)}function pX(e){let t=e;if(t?.code==="EPERM"||t?.code==="EACCES")return!0;let r=wyt(e).toLowerCase();return r.includes("operation not permitted")||r.includes("permission denied")}function Mp(){return process.platform!=="darwin"?Promise.resolve(!1):(pxe??=(async()=>{try{return await fl("security",["default-keychain","-d","user"],{timeout:5e3}),!0}catch(e){return pX(e)}})(),pxe)}async function xyt(){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(pX(e))throw new GB("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 Eyt(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 Ayt(){if(await Mp())try{await fl("security",["delete-generic-password","-s",Yu,"-a",vh],{timeout:5e3})}catch{}}async function Syt(){if(!fX())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 Tyt(e){if(!fX())return!1;try{let t=(0,JB.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"))},vyt))]),!0):!1}catch{return!1}}async function Pyt(){if(fX())try{await fl("secret-tool",["clear","service",Yu,"account",vh],{timeout:5e3})}catch{}}function fX(){return!!process.env.DBUS_SESSION_BUS_ADDRESS}async function Iyt(){if(!await Mp())return null;try{let{stdout:e}=await fl("security",["find-generic-password","-s",Yu,"-a",WB,"-w"],{timeout:5e3});return e.trim()||null}catch{return null}}async function Oyt(e){if(await Mp())try{try{await fl("security",["delete-generic-password","-s",Yu,"-a",WB],{timeout:5e3})}catch{}await fl("security",["add-generic-password","-s",Yu,"-a",WB,"-w",e],{timeout:5e3})}catch{}}async function Cyt(){if(await Mp())try{await fl("security",["delete-generic-password","-s",Yu,"-a",WB],{timeout:5e3})}catch{}}function cX(){try{return wh.readFileSync(ES,"utf-8").trim()||null}catch(e){if(pX(e))throw new GB(`Unable to read Visa CLI credentials from ${ES}. Check file permissions or rerun with access to the Visa CLI credential directory.`);return null}}function mxe(e){wh.mkdirSync(lX,{recursive:!0,mode:448}),wh.writeFileSync(ES,e,{mode:384}),process.platform==="win32"&&kyt(ES)}function uX(){try{wh.unlinkSync(ES)}catch{}}function kyt(e){try{let t=YB.userInfo().username;(0,JB.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 aX(){switch(process.platform){case"darwin":return{get:xyt,store:Eyt,delete:Ayt};case"linux":return{get:Syt,store:Tyt,delete:Pyt};default:return{get:async()=>cX(),store:async e=>{try{return mxe(e),!0}catch{return!1}},delete:async()=>uX(),storesInSessionFile:!0}}}var JB,fxe,wh,YB,dX,fl,lX,ES,Yu,vh,WB,vyt,GB,pxe,xi,N2=P(()=>{"use strict";JB=require("child_process"),fxe=require("util"),wh=ve(require("fs")),YB=ve(require("os")),dX=ve(require("path"));KB();fl=(0,fxe.promisify)(JB.execFile),lX=dX.join(YB.homedir(),".visa-mcp"),ES=dX.join(lX,"session-token"),Yu="visa-cli",vh="session-token",WB="rc-access",vyt=5e3,GB=class extends Error{constructor(t){super(t),this.name="CredentialAccessError"}};pxe=null;xi=class{static async getSessionToken(){if(_h())return Promise.resolve(uxe());let t=aX(),r=await t.get();if(r)return r;let n=cX();return n?(await t.store(n),n):null}static async saveSessionToken(t){if(_h())return;let r=aX();if(await r.store(t)){if(await r.get()===t){r.storesInSessionFile||uX();return}await r.delete()}if(mxe(t),cX()!==t)throw new Error("Failed to persist session token. "+(process.platform==="darwin"?'Check Keychain Access permissions for "visa-cli".':`Ensure ${lX} is writable.`))}static async getRcAccessToken(){return _h()?dxe():Iyt()}static async saveRcAccessToken(t){_h()||await Oyt(t)}static async deleteSessionToken(){if(_h())return;await aX().delete(),uX()}static async clearAll(){await this.deleteSessionToken(),await Cyt()}}});var ZB=g((lPr,Ryt)=>{Ryt.exports={name:"@visa/cli",version:"4.1.0-rc.33",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 AS(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 $yt(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(`
2
+ `)}function pX(e){let t=e;if(t?.code==="EPERM"||t?.code==="EACCES")return!0;let r=wyt(e).toLowerCase();return r.includes("operation not permitted")||r.includes("permission denied")}function Mp(){return process.platform!=="darwin"?Promise.resolve(!1):(pxe??=(async()=>{try{return await fl("security",["default-keychain","-d","user"],{timeout:5e3}),!0}catch(e){return pX(e)}})(),pxe)}async function xyt(){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(pX(e))throw new GB("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 Eyt(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 Ayt(){if(await Mp())try{await fl("security",["delete-generic-password","-s",Yu,"-a",vh],{timeout:5e3})}catch{}}async function Syt(){if(!fX())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 Tyt(e){if(!fX())return!1;try{let t=(0,JB.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"))},vyt))]),!0):!1}catch{return!1}}async function Pyt(){if(fX())try{await fl("secret-tool",["clear","service",Yu,"account",vh],{timeout:5e3})}catch{}}function fX(){return!!process.env.DBUS_SESSION_BUS_ADDRESS}async function Iyt(){if(!await Mp())return null;try{let{stdout:e}=await fl("security",["find-generic-password","-s",Yu,"-a",WB,"-w"],{timeout:5e3});return e.trim()||null}catch{return null}}async function Oyt(e){if(await Mp())try{try{await fl("security",["delete-generic-password","-s",Yu,"-a",WB],{timeout:5e3})}catch{}await fl("security",["add-generic-password","-s",Yu,"-a",WB,"-w",e],{timeout:5e3})}catch{}}async function Cyt(){if(await Mp())try{await fl("security",["delete-generic-password","-s",Yu,"-a",WB],{timeout:5e3})}catch{}}function cX(){try{return wh.readFileSync(ES,"utf-8").trim()||null}catch(e){if(pX(e))throw new GB(`Unable to read Visa CLI credentials from ${ES}. Check file permissions or rerun with access to the Visa CLI credential directory.`);return null}}function mxe(e){wh.mkdirSync(lX,{recursive:!0,mode:448}),wh.writeFileSync(ES,e,{mode:384}),process.platform==="win32"&&kyt(ES)}function uX(){try{wh.unlinkSync(ES)}catch{}}function kyt(e){try{let t=YB.userInfo().username;(0,JB.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 aX(){switch(process.platform){case"darwin":return{get:xyt,store:Eyt,delete:Ayt};case"linux":return{get:Syt,store:Tyt,delete:Pyt};default:return{get:async()=>cX(),store:async e=>{try{return mxe(e),!0}catch{return!1}},delete:async()=>uX(),storesInSessionFile:!0}}}var JB,fxe,wh,YB,dX,fl,lX,ES,Yu,vh,WB,vyt,GB,pxe,xi,N2=P(()=>{"use strict";JB=require("child_process"),fxe=require("util"),wh=ve(require("fs")),YB=ve(require("os")),dX=ve(require("path"));KB();fl=(0,fxe.promisify)(JB.execFile),lX=dX.join(YB.homedir(),".visa-mcp"),ES=dX.join(lX,"session-token"),Yu="visa-cli",vh="session-token",WB="rc-access",vyt=5e3,GB=class extends Error{constructor(t){super(t),this.name="CredentialAccessError"}};pxe=null;xi=class{static async getSessionToken(){if(_h())return Promise.resolve(uxe());let t=aX(),r=await t.get();if(r)return r;let n=cX();return n?(await t.store(n),n):null}static async saveSessionToken(t){if(_h())return;let r=aX();if(await r.store(t)){if(await r.get()===t){r.storesInSessionFile||uX();return}await r.delete()}if(mxe(t),cX()!==t)throw new Error("Failed to persist session token. "+(process.platform==="darwin"?'Check Keychain Access permissions for "visa-cli".':`Ensure ${lX} is writable.`))}static async getRcAccessToken(){return _h()?dxe():Iyt()}static async saveRcAccessToken(t){_h()||await Oyt(t)}static async deleteSessionToken(){if(_h())return;await aX().delete(),uX()}static async clearAll(){await this.deleteSessionToken(),await Cyt()}}});var ZB=g((lPr,Ryt)=>{Ryt.exports={name:"@visa/cli",version:"4.1.0-rc.34",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 AS(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 $yt(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 SS(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 xxe(e,t){let r=SS(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 Exe(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 tN(e,t=process.platform){let r=SS(e);return r?Exe(r,t):null}function vxe(e,t){e(` Could not open browser automatically (${t.message}).`),e(" Open the URL above manually to continue."),e("")}async function F4(e,t={}){let r=t.log??(u=>console.log(u)),n=t.env??process.env,i=t.platform??process.platform,o=SS(e),s=t.spawn??((u,d,l)=>{(0,wxe.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 $yt(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=AS(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=Exe(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?vxe(r,l):(r(" Opened browser. Waiting for you to sign in..."),r("")),u()};try{s(c.cmd,c.args,d)}catch(l){vxe(r,l instanceof Error?l:new Error(String(l))),u()}})}var wxe,rN=P(()=>{"use strict";wxe=require("child_process")});var _N,NEe,jEe,RX,Ah,BX=P(()=>{"use strict";_N=ve(require("fs")),NEe=ve(require("path")),jEe=ve(require("os")),RX=NEe.join(jEe.homedir(),".visa-mcp"),Ah=class{static ensureConfigDir(){_N.existsSync(RX)||_N.mkdirSync(RX,{recursive:!0,mode:448})}static getConfigDir(){return RX}}});function Wgt(){Xa.existsSync(jX)||Xa.mkdirSync(jX,{recursive:!0,mode:448})}function Ggt(){if(!NX){if(Wgt(),Xa.existsSync(NS)&&Xa.statSync(NS).size>Kgt){let t=NS+".1";Xa.existsSync(t)&&Xa.unlinkSync(t),Xa.renameSync(NS,t)}NX=Xa.createWriteStream(NS,{flags:"a"})}return NX}function Jgt(e){return e==="WARN"||e==="ERROR"?!0:process.env.VISA_CLI_DEBUG==="1"}function vN(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
  `;Jgt(e)&&process.stderr.write(i),Ggt().write(i)}var Xa,UX,UEe,jX,NS,Kgt,NX,ke,eu=P(()=>{"use strict";Xa=ve(require("fs")),UX=ve(require("path")),UEe=ve(require("os")),jX=UX.join(UEe.homedir(),".visa-mcp"),NS=UX.join(jX,"mcp-server.log"),Kgt=5*1024*1024,NX=null;ke={debug:(...e)=>vN("DEBUG",...e),info:(...e)=>vN("INFO",...e),warn:(...e)=>vN("WARN",...e),error:(...e)=>vN("ERROR",...e)}});function qEe(e){let t=MEe.homedir();return t&&e.startsWith(t)?`~${e.slice(t.length)}`:e}function wN(){return DEe.join(Ah.getConfigDir(),Ygt)}function LEe(e){if((0,MX.isIP)(e)!==4)return!1;let[t]=e.split(".").map(Number);return t===127}function Xgt(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 LEe(i)}function Qgt(e){let t=e.toLowerCase().replace(/^\[(.*)\]$/,"$1");if(t==="localhost")return!0;let r=(0,MX.isIP)(t);return r===4?LEe(t):r===6?t==="::1"||Xgt(t):!1}function qX(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:"&&Qgt(r.hostname)))throw new Error(`${t} ${Zgt}`)}function xN(){let e=wN();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)?(ke.warn("settings:corrupt",{path:qEe(e),reason:"not_object"}),{}):r}catch(t){return ke.warn("settings:corrupt",{path:qEe(e),error:t?.message||String(t)}),{}}}function zEe(e){Ah.ensureConfigDir();let t=wN(),r=`${t}.tmp`,n=JSON.stringify(e,null,2)+`
6
- `;Sh.writeFileSync(r,n,{mode:384}),Sh.renameSync(r,t)}function DX(e){let t=xN()[e];return typeof t=="string"?t:void 0}function LX(e){let t=xN()[e];return typeof t=="boolean"?t:void 0}function EN(e,t){let r=H2[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=xN();return i[e]=n,zEe(i),{key:e,value:n,requiresRestart:!!r.requiresRestart,path:wN()}}function AN(e){let t=H2[e];if(!t)throw new hl(e);let r=xN(),n=e in r;return n&&(delete r[e],zEe(r)),{key:e,removed:n,requiresRestart:n&&!!t.requiresRestart,path:wN()}}function rbt(e){return typeof e=="string"&&/-(?:rc|alpha|beta)\./i.test(e)}function nbt(){try{let e=ZB();return rbt(e.version)}catch{return!1}}function ibt(e){return e.envVar!==void 0&&e.envVar!==""?(qX(e.envVar,"VISA_AUTH_URL"),e.envVar):e.settingValue!==void 0?(qX(e.settingValue,"auth.serverUrl"),e.settingValue):e.isPrerelease?tbt:ebt}function ga(){return ibt({envVar:process.env.VISA_AUTH_URL,settingValue:DX("auth.serverUrl"),isPrerelease:nbt()})}function HEe(){let e=process.env.VISA_SUPPRESS_BROWSER;return e!==void 0?e==="true":LX("ui.suppressBrowser")??!1}var Sh,MX,MEe,DEe,Ygt,Zgt,H2,hl,ebt,tbt,F2=P(()=>{"use strict";Sh=ve(require("fs")),MX=require("node:net"),MEe=ve(require("os")),DEe=ve(require("path"));BX();eu();Ygt="settings.json",Zgt="must use https unless it points at localhost/loopback for local development";H2={"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");qX(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(H2).sort().join(", ");super(`Unknown setting "${t}". Settable keys: ${r}.`),this.name="UnknownSettingKeyError"}};ebt="https://auth.visacli.sh",tbt="https://auth-visa-code-preview.up.railway.app"});function zX(e=dbt){return/^\d+\.\d+\.\d+$/.test(e)&&e!=="0.0.0"}function FEe(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 FEe(t||lbt)}function jS(e){return`${FEe(e)}${pbt}`}var dbt,lbt,pbt,HX=P(()=>{"use strict";dbt="4.1.0-rc.33",lbt="https://app.visacli.sh",pbt="/agent/enroll"});function Hbt(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name==="Uint8Array"&&"BYTES_PER_ELEMENT"in e&&e.BYTES_PER_ELEMENT===1}function NAe(e,t,r=""){let n=Hbt(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 hAe(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 Fbt(e,t){NAe(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 XX(...e){for(let t=0;t<e.length;t++)e[t].fill(0)}function GX(e){return new DataView(e.buffer,e.byteOffset,e.byteLength)}function $bt(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 Wbt(e,t=!1){return t?{h:Number(e&RN),l:Number(e>>yAe&RN)}:{h:Number(e>>yAe&RN)|0,l:Number(e&RN)|0}}function Gbt(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}=Wbt(e[o],t);[n[o],i[o]]=[s,a]}return[n,i]}function Xm(e,t,r,n){let i=(t>>>0)+(n>>>0);return{h:e+r+(i/2**32|0)|0,l:i|0}}function s2t(){return Mbt.randomSecretKey()}function qS(e){return Bbt(e)}function LN(){let e=s2t();return{secretKey:e,publicKey:qS(e)}}function UAe(e){if(e.length!==vAe)throw new Error(`Ed25519 seed must be ${vAe} bytes, got ${e.length}`);return{secretKey:e,publicKey:qS(e)}}function ew(e,t){return Ubt(t,e)}function a2t(e){let t="";for(let r=0;r<e.length;r++)t+=String.fromCharCode(e[r]);return btoa(t)}function c2t(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 QX(e){return a2t(e).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}function u2t(e){let t=e.length%4===0?0:4-e.length%4,r=e.replace(/-/g,"+").replace(/_/g,"/")+"=".repeat(t);return c2t(r)}function d2t(e){if(e.kty!=="OKP"||e.crv!=="Ed25519")throw new Error("not an Ed25519 OKP JWK")}function tw(e){let t=qS(e);return{kty:"OKP",crv:"Ed25519",x:QX(t),d:QX(e)}}function kh(e){return{kty:"OKP",crv:"Ed25519",x:QX(e)}}function MS(e){if(d2t(e),!e.d)throw new Error("Ed25519 JWK has no private component (d)");return u2t(e.d)}function DAe(){return DS.default.randomBytes(32).toString("base64url")}function LAe(e){if(!/^[A-Za-z0-9_-]{43}$/.test(e))throw new Error("pairing verifier must be 32 unpadded base64url bytes");return uQ(e)}function p2t(e){return e.toUpperCase().replace(/[^A-Z0-9]/g,"")}function f2t(e){let t=p2t(e);return`${t.slice(0,4)}-${t.slice(4)}`}function zAe(){return DS.default.randomBytes(32).toString("base64url")}function cQ(e){if(!/^[A-Za-z0-9_-]{43}$/.test(e))throw new Error("claim token must be 32 unpadded base64url bytes");return uQ(`visa-agent-pairing-claim-token:v1:${e}`)}function zN(e,t){cQ(t);let r=DS.default.createHash("sha256").update(`visa-agent-pairing-derived-code:v1:${e}:${t}`,"utf8").digest(),n="";for(let i=0;i<l2t;i+=1)n+=aQ[r[i]&MAe];return f2t(n)}function HAe(e){return VAe("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 FAe(e){return VAe("visa-agent-pairing-activation:v1",{agentJkt:e.agentJkt,artifactHash:e.artifactHash,pairingId:e.pairingId,termsHash:e.termsHash})}function $Ae(e){return uQ(`visa-agent-pairing-artifacts:v1:${eQ(e)}`)}function uQ(e){return DS.default.createHash("sha256").update(e,"utf8").digest("base64url")}function VAe(e,t){return`${e}
6
+ `;Sh.writeFileSync(r,n,{mode:384}),Sh.renameSync(r,t)}function DX(e){let t=xN()[e];return typeof t=="string"?t:void 0}function LX(e){let t=xN()[e];return typeof t=="boolean"?t:void 0}function EN(e,t){let r=H2[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=xN();return i[e]=n,zEe(i),{key:e,value:n,requiresRestart:!!r.requiresRestart,path:wN()}}function AN(e){let t=H2[e];if(!t)throw new hl(e);let r=xN(),n=e in r;return n&&(delete r[e],zEe(r)),{key:e,removed:n,requiresRestart:n&&!!t.requiresRestart,path:wN()}}function rbt(e){return typeof e=="string"&&/-(?:rc|alpha|beta)\./i.test(e)}function nbt(){try{let e=ZB();return rbt(e.version)}catch{return!1}}function ibt(e){return e.envVar!==void 0&&e.envVar!==""?(qX(e.envVar,"VISA_AUTH_URL"),e.envVar):e.settingValue!==void 0?(qX(e.settingValue,"auth.serverUrl"),e.settingValue):e.isPrerelease?tbt:ebt}function ga(){return ibt({envVar:process.env.VISA_AUTH_URL,settingValue:DX("auth.serverUrl"),isPrerelease:nbt()})}function HEe(){let e=process.env.VISA_SUPPRESS_BROWSER;return e!==void 0?e==="true":LX("ui.suppressBrowser")??!1}var Sh,MX,MEe,DEe,Ygt,Zgt,H2,hl,ebt,tbt,F2=P(()=>{"use strict";Sh=ve(require("fs")),MX=require("node:net"),MEe=ve(require("os")),DEe=ve(require("path"));BX();eu();Ygt="settings.json",Zgt="must use https unless it points at localhost/loopback for local development";H2={"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");qX(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(H2).sort().join(", ");super(`Unknown setting "${t}". Settable keys: ${r}.`),this.name="UnknownSettingKeyError"}};ebt="https://auth.visacli.sh",tbt="https://auth-visa-code-preview.up.railway.app"});function zX(e=dbt){return/^\d+\.\d+\.\d+$/.test(e)&&e!=="0.0.0"}function FEe(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 FEe(t||lbt)}function jS(e){return`${FEe(e)}${pbt}`}var dbt,lbt,pbt,HX=P(()=>{"use strict";dbt="4.1.0-rc.34",lbt="https://app.visacli.sh",pbt="/agent/enroll"});function Hbt(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name==="Uint8Array"&&"BYTES_PER_ELEMENT"in e&&e.BYTES_PER_ELEMENT===1}function NAe(e,t,r=""){let n=Hbt(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 hAe(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 Fbt(e,t){NAe(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 XX(...e){for(let t=0;t<e.length;t++)e[t].fill(0)}function GX(e){return new DataView(e.buffer,e.byteOffset,e.byteLength)}function $bt(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 Wbt(e,t=!1){return t?{h:Number(e&RN),l:Number(e>>yAe&RN)}:{h:Number(e>>yAe&RN)|0,l:Number(e&RN)|0}}function Gbt(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}=Wbt(e[o],t);[n[o],i[o]]=[s,a]}return[n,i]}function Xm(e,t,r,n){let i=(t>>>0)+(n>>>0);return{h:e+r+(i/2**32|0)|0,l:i|0}}function s2t(){return Mbt.randomSecretKey()}function qS(e){return Bbt(e)}function LN(){let e=s2t();return{secretKey:e,publicKey:qS(e)}}function UAe(e){if(e.length!==vAe)throw new Error(`Ed25519 seed must be ${vAe} bytes, got ${e.length}`);return{secretKey:e,publicKey:qS(e)}}function ew(e,t){return Ubt(t,e)}function a2t(e){let t="";for(let r=0;r<e.length;r++)t+=String.fromCharCode(e[r]);return btoa(t)}function c2t(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 QX(e){return a2t(e).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}function u2t(e){let t=e.length%4===0?0:4-e.length%4,r=e.replace(/-/g,"+").replace(/_/g,"/")+"=".repeat(t);return c2t(r)}function d2t(e){if(e.kty!=="OKP"||e.crv!=="Ed25519")throw new Error("not an Ed25519 OKP JWK")}function tw(e){let t=qS(e);return{kty:"OKP",crv:"Ed25519",x:QX(t),d:QX(e)}}function kh(e){return{kty:"OKP",crv:"Ed25519",x:QX(e)}}function MS(e){if(d2t(e),!e.d)throw new Error("Ed25519 JWK has no private component (d)");return u2t(e.d)}function DAe(){return DS.default.randomBytes(32).toString("base64url")}function LAe(e){if(!/^[A-Za-z0-9_-]{43}$/.test(e))throw new Error("pairing verifier must be 32 unpadded base64url bytes");return uQ(e)}function p2t(e){return e.toUpperCase().replace(/[^A-Z0-9]/g,"")}function f2t(e){let t=p2t(e);return`${t.slice(0,4)}-${t.slice(4)}`}function zAe(){return DS.default.randomBytes(32).toString("base64url")}function cQ(e){if(!/^[A-Za-z0-9_-]{43}$/.test(e))throw new Error("claim token must be 32 unpadded base64url bytes");return uQ(`visa-agent-pairing-claim-token:v1:${e}`)}function zN(e,t){cQ(t);let r=DS.default.createHash("sha256").update(`visa-agent-pairing-derived-code:v1:${e}:${t}`,"utf8").digest(),n="";for(let i=0;i<l2t;i+=1)n+=aQ[r[i]&MAe];return f2t(n)}function HAe(e){return VAe("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 FAe(e){return VAe("visa-agent-pairing-activation:v1",{agentJkt:e.agentJkt,artifactHash:e.artifactHash,pairingId:e.pairingId,termsHash:e.termsHash})}function $Ae(e){return uQ(`visa-agent-pairing-artifacts:v1:${eQ(e)}`)}function uQ(e){return DS.default.createHash("sha256").update(e,"utf8").digest("base64url")}function VAe(e,t){return`${e}
7
7
  ${Object.entries(t).sort(([r],[n])=>r.localeCompare(n)).map(([r,n])=>`${r}=${n}`).join(`
8
8
  `)}`}function eQ(e){if(e===null||typeof e!="object")return JSON.stringify(e);if(Array.isArray(e))return`[${e.map(eQ).join(",")}]`;let t=e;return`{${Object.keys(t).sort().map(r=>`${JSON.stringify(r)}:${eQ(t[r])}`).join(",")}}`}var DS,wAe,UN,jN,cAe,uAe,VX,KX,Ebt,X4,Abt,Qo,Sbt,Tbt,Pbt,zp,DN,tQ,xAe,rQ,Zm,dAe,nQ,EAe,Ibt,Q4,AAe,qN,V2,gn,lAe,Fe,SAe,TAe,PAe,IAe,WX,JX,US,G2,W2,OAe,CAe,Lp,Obt,pAe,Cbt,YX,kbt,iQ,kAe,Rbt,oQ,Bbt,Nbt,jbt,Ubt,sQ,RAe,qbt,Mbt,MN,Dbt,BAe,ZX,Lbt,fAe,mAe,zbt,Vbt,Kbt,js,RN,yAe,gAe,bAe,Y4,Z4,BN,NN,Jbt,Ybt,Zbt,Xbt,Qbt,e2t,jAe,t2t,r2t,Oh,Ch,n2t,i2t,o2t,_Ae,vAe,QPr,qAe,eIr,tIr,rIr,nIr,aQ,l2t,MAe,J2=P(()=>{"use strict";DS=ve(require("node:crypto"),1),wAe=Object.freeze({p:0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffedn,n:0x1000000000000000000000000000000014def9dea2f79cd65812631a5cf5d3edn,h:8n,a:0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffecn,d:0x52036cee2b6ffe738cc740797779e89800700a4d4141d8ab75eb4dca135978a3n,Gx:0x216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51an,Gy:0x6666666666666666666666666666666666666666666666666666666666666658n}),{p:UN,n:jN,Gx:cAe,Gy:uAe,a:VX,d:KX,h:Ebt}=wAe,X4=32,Abt=(...e)=>{"captureStackTrace"in Error&&typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(...e)},Qo=(e="")=>{let t=new Error(e);throw Abt(t,Qo),t},Sbt=e=>typeof e=="bigint",Tbt=e=>typeof e=="string",Pbt=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=Pbt(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},DN=e=>new Uint8Array(e),tQ=e=>Uint8Array.from(e),xAe=(e,t)=>e.toString(16).padStart(t,"0"),rQ=e=>Array.from(zp(e)).map(t=>xAe(t,2)).join(""),Zm={_0:48,_9:57,A:65,F:70,a:97,f:102},dAe=e=>{if(e>=Zm._0&&e<=Zm._9)return e-Zm._0;if(e>=Zm.A&&e<=Zm.F)return e-(Zm.A-10);if(e>=Zm.a&&e<=Zm.f)return e-(Zm.a-10)},nQ=e=>{let t="hex invalid";if(!Tbt(e))return Qo(t);let r=e.length,n=r/2;if(r%2)return Qo(t);let i=DN(n);for(let o=0,s=0;o<n;o++,s+=2){let a=dAe(e.charCodeAt(s)),c=dAe(e.charCodeAt(s+1));if(a===void 0||c===void 0)return Qo(t);i[o]=a*16+c}return i},EAe=()=>globalThis?.crypto,Ibt=()=>EAe()?.subtle??Qo("crypto.subtle must be defined, consider polyfill"),Q4=(...e)=>{let t=0;for(let i of e)t+=zp(i).length;let r=DN(t),n=0;return e.forEach(i=>{r.set(i,n),n+=i.length}),r},AAe=(e=X4)=>EAe().getRandomValues(DN(e)),qN=BigInt,V2=(e,t,r,n="bad number: out of range")=>{if(!Sbt(e))throw new TypeError(n);if(t<=e&&e<r)return e;throw new RangeError(n)},gn=(e,t=UN)=>{let r=e%t;return r>=0n?r:t+r},lAe=(1n<<255n)-1n,Fe=e=>{e<0n&&Qo("negative coordinate");let t=(e>>255n)*19n+(e&lAe);return t=(t>>255n)*19n+(t&lAe),t%UN},SAe=e=>gn(e,jN),TAe=(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")},PAe=e=>{let t=RAe[e];return typeof t!="function"&&Qo("hashes."+e+" not set"),t},IAe=e=>zp(e,64,"digest"),WX=e=>e instanceof US?e:Qo("Point expected"),JX=2n**256n,US=class K2{static BASE;static ZERO;X;Y;Z;T;constructor(t,r,n,i){let o=JX;this.X=V2(t,0n,o),this.Y=V2(r,0n,o),this.Z=V2(n,1n,o),this.T=V2(i,0n,o),Object.freeze(this)}static CURVE(){return wAe}static fromAffine(t){return new K2(t.x,t.y,1n,Fe(t.x*t.y))}static fromBytes(t,r=!1){let n=KX,i=tQ(zp(t,X4)),o=t[31];i[31]=o&-129;let s=CAe(i);V2(s,0n,r?JX:UN);let c=Fe(s*s),u=gn(c-1n),d=Fe(n*c+1n),{isValid:l,value:p}=Cbt(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 K2(p,s,1n,Fe(p*s))}static fromHex(t,r){return K2.fromBytes(nQ(t),r)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}assertValidity(){let t=VX,r=KX,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}=WX(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(W2)}negate(){return new K2(gn(-this.X),this.Y,this.Z,gn(-this.T))}double(){let{X:t,Y:r,Z:n}=this,i=VX,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 K2(m,h,w,y)}add(t){let{X:r,Y:n,Z:i,T:o}=this,{X:s,Y:a,Z:c,T:u}=WX(t),d=VX,l=KX,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 K2(v,E,S,A)}subtract(t){return this.add(WX(t).negate())}multiply(t,r=!0){if(!r&&t===0n||(V2(t,1n,jN),!r&&this.is0()))return W2;if(t===1n)return this;if(this.equals(G2))return zbt(t).p;let n=W2,i=G2;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(W2))return{x:0n,y:1n};let i=TAe(n,UN);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=OAe(r);return n[31]|=t&1n?128:0,n}toHex(){return rQ(this.toBytes())}clearCofactor(){return this.multiply(qN(Ebt),!1)}isSmallOrder(){return this.clearCofactor().is0()}isTorsionFree(){let t=this.multiply(jN/2n,!1).double();return jN%2n&&(t=t.add(this)),t.is0()}},G2=new US(cAe,uAe,1n,gn(cAe*uAe)),W2=new US(0n,1n,1n,0n);US.BASE=G2;US.ZERO=W2;OAe=e=>nQ(xAe(V2(e,0n,JX),64)).reverse(),CAe=e=>qN("0x"+rQ(tQ(zp(e)).reverse())),Lp=(e,t)=>{let r=e;for(;t-- >0n;)r=Fe(r*r);return r},Obt=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}},pAe=0x2b8324804fc1df0b2b4d00993dfbd7a72f431806ad2fe478c4ee1b274a0ea0b0n,Cbt=(e,t)=>{let r=Fe(t*Fe(t*t)),n=Fe(Fe(r*r)*t),i=Obt(Fe(e*n)).pow_p_5_8,o=Fe(e*Fe(r*i)),s=Fe(t*Fe(o*o)),a=o,c=Fe(o*pAe),u=s===e,d=s===gn(-e),l=s===gn(-e*pAe);return u&&(o=a),(d||l)&&(o=c),(gn(o)&1n)===1n&&(o=gn(-o)),{isValid:u||d,value:o}},YX=e=>SAe(CAe(e)),kbt=(...e)=>Promise.resolve(PAe("sha512Async")(Q4(...e))).then(IAe),iQ=(...e)=>IAe(PAe("sha512")(Q4(...e))),kAe=e=>{let t=tQ(e),r=t.slice(0,32);r[0]&=248,r[31]&=127,r[31]|=64;let n=t.slice(32,64),i=YX(r),o=G2.multiply(i),s=o.toBytes();return{head:r,prefix:n,scalar:i,point:o,pointBytes:s}},Rbt=e=>kbt(zp(e,X4)).then(kAe),oQ=e=>kAe(iQ(zp(e,X4))),Bbt=e=>oQ(e).pointBytes,Nbt=e=>e.finish(iQ(e.hashable)),jbt=(e,t,r)=>{let{pointBytes:n,scalar:i}=e,o=YX(t),s=G2.multiply(o).toBytes();return{hashable:Q4(s,n,r),finish:u=>{let d=SAe(o+YX(u)*i);return zp(Q4(s,OAe(d)),64)}}},Ubt=(e,t)=>{let r=zp(e),n=oQ(t),i=iQ(n.prefix,r);return Nbt(jbt(n,i,r))},sQ=Object.freeze({bytesToHex:rQ,hexToBytes:nQ,concatBytes:Q4,mod:gn,invert:TAe,randomBytes:AAe}),RAe={sha512Async:async e=>{let t=Ibt(),r=Q4(e);return DN(await t.digest("SHA-512",r.buffer))},sha512:void 0},qbt=e=>(e=e===void 0?AAe(X4):e,zp(e,X4)),Mbt=Object.freeze({getExtendedPublicKeyAsync:Rbt,getExtendedPublicKey:oQ,randomSecretKey:qbt}),MN=8,Dbt=256,BAe=Math.ceil(Dbt/MN)+1,ZX=2**(MN-1),Lbt=()=>{let e=[],t=G2,r=t;for(let n=0;n<BAe;n++){r=t,e.push(r);for(let i=1;i<ZX;i++)r=r.add(t),e.push(r);t=r.double()}return e},fAe=void 0,mAe=(e,t)=>{let r=t.negate();return e?r:t},zbt=e=>{let t=fAe||(fAe=Lbt()),r=W2,n=G2,i=2**MN,o=i,s=qN(i-1),a=qN(MN);for(let c=0;c<BAe;c++){let u=Number(e&s);e>>=a,u>ZX&&(u-=o,e+=1n);let d=c*ZX,l=d,p=d+Math.abs(u)-1,f=c%2!==0,m=u<0;u===0?n=n.add(mAe(f,t[l])):r=r.add(mAe(m,t[p]))}return e!==0n&&Qo("invalid wnaf"),{p:r,f:n}};Vbt=e=>({oid:Uint8Array.from([6,9,96,134,72,1,101,3,4,2,e])}),Kbt=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=GX(this.buffer)}update(e){hAe(this),NAe(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=GX(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){hAe(this),Fbt(e,this),this.finished=!0;let{buffer:t,view:r,blockLen:n,isLE:i}=this,{pos:o}=this;t[o++]=128,XX(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=GX(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]),RN=BigInt(2**32-1),yAe=BigInt(32);gAe=(e,t,r)=>e>>>r,bAe=(e,t,r)=>e<<32-r|t>>>r,Y4=(e,t,r)=>e>>>r|t<<32-r,Z4=(e,t,r)=>e<<32-r|t>>>r,BN=(e,t,r)=>e<<64-r|t>>>r-32,NN=(e,t,r)=>e>>>r-32|t<<64-r;Jbt=(e,t,r)=>(e>>>0)+(t>>>0)+(r>>>0),Ybt=(e,t,r,n)=>t+r+n+(e/2**32|0)|0,Zbt=(e,t,r,n)=>(e>>>0)+(t>>>0)+(r>>>0)+(n>>>0),Xbt=(e,t,r,n,i)=>t+r+n+i+(e/2**32|0)|0,Qbt=(e,t,r,n,i)=>(e>>>0)+(t>>>0)+(r>>>0)+(n>>>0)+(i>>>0),e2t=(e,t,r,n,i,o)=>t+r+n+i+o+(e/2**32|0)|0,jAe=Gbt(["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))),t2t=jAe[0],r2t=jAe[1],Oh=new Uint32Array(80),Ch=new Uint32Array(80),n2t=class extends Kbt{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=Y4(_,v,1)^Y4(_,v,8)^gAe(_,v,7),A=Z4(_,v,1)^Z4(_,v,8)^bAe(_,v,7),S=Oh[x-2]|0,C=Ch[x-2]|0,I=Y4(S,C,19)^BN(S,C,61)^gAe(S,C,6),k=Z4(S,C,19)^NN(S,C,61)^bAe(S,C,6),q=Zbt(A,k,Ch[x-7],Ch[x-16]),j=Xbt(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 _=Y4(d,l,14)^Y4(d,l,18)^BN(d,l,41),v=Z4(d,l,14)^Z4(d,l,18)^NN(d,l,41),E=d&p^~d&m,A=l&f^~l&h,S=Qbt(w,v,A,r2t[x],Ch[x]),C=e2t(S,y,_,E,t2t[x],Oh[x]),I=S|0,k=Y4(r,n,28)^BN(r,n,34)^BN(r,n,39),q=Z4(r,n,28)^NN(r,n,34)^NN(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}=Xm(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=Jbt(I,q,U);r=Ybt(B,C,k,j),n=B|0}({h:r,l:n}=Xm(this.Ah|0,this.Al|0,r|0,n|0)),{h:i,l:o}=Xm(this.Bh|0,this.Bl|0,i|0,o|0),{h:s,l:a}=Xm(this.Ch|0,this.Cl|0,s|0,a|0),{h:c,l:u}=Xm(this.Dh|0,this.Dl|0,c|0,u|0),{h:d,l}=Xm(this.Eh|0,this.El|0,d|0,l|0),{h:p,l:f}=Xm(this.Fh|0,this.Fl|0,p|0,f|0),{h:m,l:h}=Xm(this.Gh|0,this.Gl|0,m|0,h|0),{h:y,l:w}=Xm(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(){XX(Oh,Ch)}destroy(){this.destroyed=!0,XX(this.buffer),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}},i2t=class extends n2t{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)}},o2t=$bt(()=>new i2t,Vbt(3)),_Ae=RAe;_Ae.sha512||(_Ae.sha512=e=>o2t(e));vAe=32;QPr=sQ.bytesToHex,qAe=sQ.hexToBytes,eIr=sQ.concatBytes;tIr=new TextEncoder;rIr=qAe("302e020100300506032b657004220420"),nIr=qAe("302a300506032b6570032100"),aQ="ABCDEFGHJKLMNPQRSTUVWXYZ23456789",l2t=8,MAe=aQ.length-1;if((aQ.length&MAe)!==0)throw new Error("agent pairing code alphabet must contain a power-of-two number of symbols");});var YAe={};Mi(YAe,{BindingIssuanceError:()=>HN,CardRequiredError:()=>Qm,buildIssuanceRequest:()=>JAe,jkt:()=>rw,proofPayload:()=>GAe,readSeed:()=>FN,requestVisaBinding:()=>dQ});function rw(e){let t=JSON.stringify({crv:e.crv,kty:e.kty,x:e.x});return KAe.createHash("sha256").update(t,"utf8").digest("base64url")}function GAe(e,t,r){return`visa-agent-binding:v1:${e}:${t}:${r}`}function JAe(e,t,r="visa",n=Math.floor(Date.now()/1e3)){let i=kh(qS(e)),o=Buffer.from(GAe(t,rw(i),n),"utf8"),s=Buffer.from(ew(e,o)).toString("base64url");return{name:t,mesh:r,mode:"card",agent_pubkey:i,proof:{ts:n,sig:s}}}async function dQ(e){let t=JAe(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 Qm("No card on file \u2014 complete V4 agent enrollment to register on the trusted .visa mesh.","no_card"):new HN(`Visa binding issuance failed (${i.status})${o?`: ${o}`:""}`,i.status,s||void 0)}return await i.json()}function FN(e){return new Uint8Array(WAe.readFileSync(e))}var KAe,WAe,Qm,HN,nw=P(()=>{"use strict";KAe=ve(require("crypto")),WAe=ve(require("fs"));J2();Qm=class extends Error{reason;constructor(t,r){super(t),this.name="CardRequiredError",this.reason=r}},HN=class extends Error{status;code;constructor(t,r,n){super(t),this.name="BindingIssuanceError",this.status=r,this.code=n}}});var QAe=g(gl=>{"use strict";Object.defineProperty(gl,"__esModule",{value:!0});gl.formatCents=XAe;gl.formatUsd=h2t;gl.formatMicros=$N;gl.formatMicrosWire=y2t;gl.formatTxAmount=g2t;gl.formatDate=b2t;gl.formatRelativeTime=_2t;gl.formatTime=v2t;gl.formatAge=w2t;var ZAe=1e6,m2t=100;function XAe(e,t={}){let r=t.fallback??"\u2014";if(e==null||!Number.isFinite(e))return r;let i=(e/m2t).toLocaleString("en-US",{style:"currency",currency:"USD",minimumFractionDigits:t.minimumFractionDigits??2,maximumFractionDigits:t.maximumFractionDigits??2});return t.showPlusSign&&e>0?`+${i}`:i}function h2t(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 $N(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/ZAe).toLocaleString("en-US",{style:"currency",currency:"USD",minimumFractionDigits:t.minimumFractionDigits??2,maximumFractionDigits:t.maximumFractionDigits??6});return t.showPlusSign&&n>0?`+${o}`:o}function y2t(e,t,r={}){return e&&/^-?\d+$/.test(e)?$N(e,r):t!=null&&Number.isFinite(t)?XAe(t,r):r.fallback??"\u2014"}function g2t(e,t={}){let r=Number(e.amount_micros);if(Number.isFinite(r)&&e.amount_micros!=null&&e.amount_micros!=="")return $N(r,t);let n=Number(String(e.amount).replace(/^\$/,""));return Number.isFinite(n)?$N(n*ZAe,t):t.fallback??"\u2014"}function b2t(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 _2t(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?iw(n,i,a,"minute"):c<24?iw(n,i,c,"hour"):u===1?i?"yesterday":"tomorrow":u<7?iw(n,i,u,"day"):d<4?iw(n,i,d,"week"):l<12?iw(n,i,l,"month"):iw(n,i,p,"year")}function iw(e,t,r,n){let i=r!==1?"s":"";return t?`${r} ${n}${i} ago`:`in ${r} ${n}${i}`}function v2t(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 w2t(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 ow=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=x2t;Wt.fromCents=E2t;Wt.fromUsdc=A2t;Wt.fromUsd=S2t;Wt.toCents=T2t;Wt.toCentsForAcquirer=P2t;Wt.toUsdc=I2t;Wt.toWire=O2t;Wt.fromWire=C2t;Wt.toDisplay=k2t;Wt.toUsdRounded2dp=R2t;Wt.add=B2t;Wt.sub=N2t;Wt.clampNonNegative=j2t;Wt.isNonNegative=U2t;Wt.max=q2t;Wt.min=M2t;var e0=10000n,eSe=1000000n;function x2t(e){return e}function E2t(e){if(!Number.isFinite(e)||!Number.isInteger(e)||!Number.isSafeInteger(e))throw new TypeError(`fromCents: expected safe integer, got ${e}`);return BigInt(e)*e0}function A2t(e){return e}function S2t(e){if(!Number.isFinite(e))throw new TypeError(`fromUsd: expected finite number, got ${e}`);return BigInt(Math.round(e*1e6))}function T2t(e){if(e>=0n)return Number(e/e0);let t=e/e0,r=e%e0;return Number(r===0n?t:t-1n)}function P2t(e){if(e<0n)throw new RangeError(`toCentsForAcquirer: refusing negative micros (${e}); card charges are non-negative`);return Number(e/e0)}function I2t(e){return e}function O2t(e){return e.toString()}function C2t(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 k2t(e,t={}){let r=t.decimals??2,n=t.symbol??"$",i=e<0n,o=i?-e:e,s=o/eSe,a=o%eSe,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 R2t(e){let t=e<0n,r=t?-e:e,n=r/e0,o=r%e0*2n,s;o<e0?s=n:o>e0?s=n+1n:s=n%2n===0n?n:n+1n;let a=Number(s)/100;return t?-a:a}function B2t(e,t){return e+t}function N2t(e,t){return e-t}function j2t(e){return e<0n?0n:e}function U2t(e){return e>=0n}function q2t(e,t){return e>t?e:t}function M2t(e,t){return e<t?e:t}var t0=QAe();Object.defineProperty(Wt,"formatCents",{enumerable:!0,get:function(){return t0.formatCents}});Object.defineProperty(Wt,"formatUsd",{enumerable:!0,get:function(){return t0.formatUsd}});Object.defineProperty(Wt,"formatMicros",{enumerable:!0,get:function(){return t0.formatMicros}});Object.defineProperty(Wt,"formatMicrosWire",{enumerable:!0,get:function(){return t0.formatMicrosWire}});Object.defineProperty(Wt,"formatTxAmount",{enumerable:!0,get:function(){return t0.formatTxAmount}});Object.defineProperty(Wt,"formatDate",{enumerable:!0,get:function(){return t0.formatDate}});Object.defineProperty(Wt,"formatRelativeTime",{enumerable:!0,get:function(){return t0.formatRelativeTime}});Object.defineProperty(Wt,"formatTime",{enumerable:!0,get:function(){return t0.formatTime}});Object.defineProperty(Wt,"formatAge",{enumerable:!0,get:function(){return t0.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=D2t;oo.turnkeyApiBaseUrl=z2t;oo.explorerTxUrl=H2t;oo.explorerAddressUrl=F2t;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 tSe={"base-mainnet":"base-mainnet","base-sepolia":"base-sepolia","eip155:8453":"base-mainnet","eip155:84532":"base-sepolia"};function D2t(e=process.env){let t=(e[oo.NETWORK_ENV]??"").trim();if(t==="")return oo.NETWORKS["base-mainnet"];let r=tSe[t.toLowerCase()];if(!r)throw new Error(`unknown ${oo.NETWORK_ENV} value ${JSON.stringify(t)} \u2014 valid values: `+Object.keys(tSe).join(", "));return oo.NETWORKS[r]}oo.TURNKEY_API_BASE_URL_ENV="TURNKEY_API_BASE_URL";var L2t="https://api.turnkey.com";function z2t(e=process.env){let t=(e[oo.TURNKEY_API_BASE_URL_ENV]??"").trim();return t===""?L2t:t}function H2t(e,t){return`${e.explorerBaseUrl}/tx/${t}`}function F2t(e,t){return`${e.explorerBaseUrl}/address/${t}`}});var rSe=g(VN=>{"use strict";Object.defineProperty(VN,"__esModule",{value:!0});VN.version=void 0;VN.version="1.2.3"});var Y2=g(KN=>{"use strict";Object.defineProperty(KN,"__esModule",{value:!0});KN.BaseError=void 0;var $2t=rSe(),lQ=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@${$2t.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}};KN.BaseError=lQ});var nSe=g(pQ=>{"use strict";Object.defineProperty(pQ,"__esModule",{value:!0});pQ.narrow=V2t;function V2t(e){return e}});var LS=g(r0=>{"use strict";Object.defineProperty(r0,"__esModule",{value:!0});r0.isTupleRegex=r0.integerRegex=r0.bytesRegex=void 0;r0.execTyped=K2t;function K2t(e,t){return e.exec(t)?.groups}r0.bytesRegex=/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/;r0.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)?$/;r0.isTupleRegex=/^\(.+?\).*?$/});var hQ=g(mQ=>{"use strict";Object.defineProperty(mQ,"__esModule",{value:!0});mQ.formatAbiParameter=fQ;var W2t=LS(),iSe=/^tuple(?<array>(\[(\d*)\])*)$/;function fQ(e){let t=e.type;if(iSe.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+=fQ(o),i<r-1&&(t+=", ")}let n=(0,W2t.execTyped)(iSe,e.type);return t+=`)${n?.array||""}`,fQ({...e,type:t})}return"indexed"in e&&e.indexed&&(t=`${t} indexed`),e.name?`${t} ${e.name}`:t}});var gQ=g(yQ=>{"use strict";Object.defineProperty(yQ,"__esModule",{value:!0});yQ.formatAbiParameters=J2t;var G2t=hQ();function J2t(e){let t="",r=e.length;for(let n=0;n<r;n++){let i=e[n];t+=(0,G2t.formatAbiParameter)(i),n!==r-1&&(t+=", ")}return t}});var _Q=g(bQ=>{"use strict";Object.defineProperty(bQ,"__esModule",{value:!0});bQ.formatAbiItem=Y2t;var zS=gQ();function Y2t(e){return e.type==="function"?`function ${e.name}(${(0,zS.formatAbiParameters)(e.inputs)})${e.stateMutability&&e.stateMutability!=="nonpayable"?` ${e.stateMutability}`:""}${e.outputs?.length?` returns (${(0,zS.formatAbiParameters)(e.outputs)})`:""}`:e.type==="event"?`event ${e.name}(${(0,zS.formatAbiParameters)(e.inputs)})`:e.type==="error"?`error ${e.name}(${(0,zS.formatAbiParameters)(e.inputs)})`:e.type==="constructor"?`constructor(${(0,zS.formatAbiParameters)(e.inputs)})${e.stateMutability==="payable"?" payable":""}`:e.type==="fallback"?`fallback() external${e.stateMutability==="payable"?" payable":""}`:"receive() external payable"}});var oSe=g(vQ=>{"use strict";Object.defineProperty(vQ,"__esModule",{value:!0});vQ.formatAbi=X2t;var Z2t=_Q();function X2t(e){let t=[],r=e.length;for(let n=0;n<r;n++){let i=e[n],o=(0,Z2t.formatAbiItem)(i);t.push(o)}return t}});var Z2=g(Ei=>{"use strict";Object.defineProperty(Ei,"__esModule",{value:!0});Ei.functionModifiers=Ei.eventModifiers=Ei.modifiers=void 0;Ei.isErrorSignature=Q2t;Ei.execErrorSignature=e6t;Ei.isEventSignature=t6t;Ei.execEventSignature=r6t;Ei.isFunctionSignature=n6t;Ei.execFunctionSignature=i6t;Ei.isStructSignature=o6t;Ei.execStructSignature=s6t;Ei.isConstructorSignature=a6t;Ei.execConstructorSignature=c6t;Ei.isFallbackSignature=u6t;Ei.execFallbackSignature=d6t;Ei.isReceiveSignature=p6t;var sw=LS(),sSe=/^error (?<name>[a-zA-Z$_][a-zA-Z0-9$_]*)\((?<parameters>.*?)\)$/;function Q2t(e){return sSe.test(e)}function e6t(e){return(0,sw.execTyped)(sSe,e)}var aSe=/^event (?<name>[a-zA-Z$_][a-zA-Z0-9$_]*)\((?<parameters>.*?)\)$/;function t6t(e){return aSe.test(e)}function r6t(e){return(0,sw.execTyped)(aSe,e)}var cSe=/^function (?<name>[a-zA-Z$_][a-zA-Z0-9$_]*)\((?<parameters>.*?)\)(?: (?<scope>external|public{1}))?(?: (?<stateMutability>pure|view|nonpayable|payable{1}))?(?: returns\s?\((?<returns>.*?)\))?$/;function n6t(e){return cSe.test(e)}function i6t(e){return(0,sw.execTyped)(cSe,e)}var uSe=/^struct (?<name>[a-zA-Z$_][a-zA-Z0-9$_]*) \{(?<properties>.*?)\}$/;function o6t(e){return uSe.test(e)}function s6t(e){return(0,sw.execTyped)(uSe,e)}var dSe=/^constructor\((?<parameters>.*?)\)(?:\s(?<stateMutability>payable{1}))?$/;function a6t(e){return dSe.test(e)}function c6t(e){return(0,sw.execTyped)(dSe,e)}var lSe=/^fallback\(\) external(?:\s(?<stateMutability>payable{1}))?$/;function u6t(e){return lSe.test(e)}function d6t(e){return(0,sw.execTyped)(lSe,e)}var l6t=/^receive\(\) external payable$/;function p6t(e){return l6t.test(e)}Ei.modifiers=new Set(["memory","indexed","storage","calldata"]);Ei.eventModifiers=new Set(["indexed"]);Ei.functionModifiers=new Set(["calldata","memory","storage"])});var HS=g(Bh=>{"use strict";Object.defineProperty(Bh,"__esModule",{value:!0});Bh.UnknownSolidityTypeError=Bh.UnknownTypeError=Bh.InvalidAbiItemError=void 0;var AQ=Y2(),wQ=class extends AQ.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=wQ;var xQ=class extends AQ.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=xQ;var EQ=class extends AQ.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=EQ});var aw=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 X2=Y2(),SQ=class extends X2.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=SQ;var TQ=class extends X2.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=TQ;var PQ=class extends X2.BaseError{constructor({param:t}){super("Invalid ABI parameter.",{details:t}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidParameterError"})}};Us.InvalidParameterError=PQ;var IQ=class extends X2.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=IQ;var OQ=class extends X2.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=OQ;var CQ=class extends X2.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=CQ;var kQ=class extends X2.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=kQ});var WN=g(Nh=>{"use strict";Object.defineProperty(Nh,"__esModule",{value:!0});Nh.InvalidStructSignatureError=Nh.UnknownSignatureError=Nh.InvalidSignatureError=void 0;var jQ=Y2(),RQ=class extends jQ.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=RQ;var BQ=class extends jQ.BaseError{constructor({signature:t}){super("Unknown signature.",{details:t}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"UnknownSignatureError"})}};Nh.UnknownSignatureError=BQ;var NQ=class extends jQ.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=NQ});var qQ=g(GN=>{"use strict";Object.defineProperty(GN,"__esModule",{value:!0});GN.CircularReferenceError=void 0;var f6t=Y2(),UQ=class extends f6t.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"})}};GN.CircularReferenceError=UQ});var DQ=g(JN=>{"use strict";Object.defineProperty(JN,"__esModule",{value:!0});JN.InvalidParenthesisError=void 0;var m6t=Y2(),MQ=class extends m6t.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"})}};JN.InvalidParenthesisError=MQ});var pSe=g(FS=>{"use strict";Object.defineProperty(FS,"__esModule",{value:!0});FS.parameterCache=void 0;FS.getParameterCacheKey=h6t;function h6t(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}`}FS.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 e6=g(tu=>{"use strict";Object.defineProperty(tu,"__esModule",{value:!0});tu.parseSignature=b6t;tu.parseFunctionSignature=fSe;tu.parseEventSignature=mSe;tu.parseErrorSignature=hSe;tu.parseConstructorSignature=ySe;tu.parseFallbackSignature=gSe;tu.parseAbiParameter=Q2;tu.splitParameters=Zu;tu.isSolidityType=bSe;tu.isSolidityKeyword=_Se;tu.isValidDataLocation=vSe;var cw=LS(),y6t=HS(),YN=aw(),uw=WN(),g6t=DQ(),ZN=pSe(),ba=Z2();function b6t(e,t={}){if((0,ba.isFunctionSignature)(e))return fSe(e,t);if((0,ba.isEventSignature)(e))return mSe(e,t);if((0,ba.isErrorSignature)(e))return hSe(e,t);if((0,ba.isConstructorSignature)(e))return ySe(e,t);if((0,ba.isFallbackSignature)(e))return gSe(e);if((0,ba.isReceiveSignature)(e))return{type:"receive",stateMutability:"payable"};throw new uw.UnknownSignatureError({signature:e})}function fSe(e,t={}){let r=(0,ba.execFunctionSignature)(e);if(!r)throw new uw.InvalidSignatureError({signature:e,type:"function"});let n=Zu(r.parameters),i=[],o=n.length;for(let a=0;a<o;a++)i.push(Q2(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(Q2(a[u],{modifiers:ba.functionModifiers,structs:t,type:"function"}))}return{name:r.name,type:"function",stateMutability:r.stateMutability??"nonpayable",inputs:i,outputs:s}}function mSe(e,t={}){let r=(0,ba.execEventSignature)(e);if(!r)throw new uw.InvalidSignatureError({signature:e,type:"event"});let n=Zu(r.parameters),i=[],o=n.length;for(let s=0;s<o;s++)i.push(Q2(n[s],{modifiers:ba.eventModifiers,structs:t,type:"event"}));return{name:r.name,type:"event",inputs:i}}function hSe(e,t={}){let r=(0,ba.execErrorSignature)(e);if(!r)throw new uw.InvalidSignatureError({signature:e,type:"error"});let n=Zu(r.parameters),i=[],o=n.length;for(let s=0;s<o;s++)i.push(Q2(n[s],{structs:t,type:"error"}));return{name:r.name,type:"error",inputs:i}}function ySe(e,t={}){let r=(0,ba.execConstructorSignature)(e);if(!r)throw new uw.InvalidSignatureError({signature:e,type:"constructor"});let n=Zu(r.parameters),i=[],o=n.length;for(let s=0;s<o;s++)i.push(Q2(n[s],{structs:t,type:"constructor"}));return{type:"constructor",stateMutability:r.stateMutability??"nonpayable",inputs:i}}function gSe(e){let t=(0,ba.execFallbackSignature)(e);if(!t)throw new uw.InvalidSignatureError({signature:e,type:"fallback"});return{type:"fallback",stateMutability:t.stateMutability??"nonpayable"}}var _6t=/^(?<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$_]*))?$/,v6t=/^\((?<type>.+?)\)(?<array>(?:\[\d*?\])+?)?(?:\s(?<modifier>calldata|indexed|memory|storage{1}))?(?:\s(?<name>[a-zA-Z$_][a-zA-Z0-9$_]*))?$/,w6t=/^u?int$/;function Q2(e,t){let r=(0,ZN.getParameterCacheKey)(e,t?.type,t?.structs);if(ZN.parameterCache.has(r))return ZN.parameterCache.get(r);let n=cw.isTupleRegex.test(e),i=(0,cw.execTyped)(n?v6t:_6t,e);if(!i)throw new YN.InvalidParameterError({param:e});if(i.name&&_Se(i.name))throw new YN.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(Q2(l[m],{structs:a}));u={components:p}}else if(i.type in a)c="tuple",u={components:a[i.type]};else if(w6t.test(i.type))c=`${i.type}256`;else if(i.type==="address payable")c="address";else if(c=i.type,t?.type!=="struct"&&!bSe(c))throw new y6t.UnknownSolidityTypeError({type:c});if(i.modifier){if(!t?.modifiers?.has?.(i.modifier))throw new YN.InvalidModifierError({param:e,type:t?.type,modifier:i.modifier});if(ba.functionModifiers.has(i.modifier)&&!vSe(c,!!i.array))throw new YN.InvalidFunctionModifierError({param:e,type:t?.type,modifier:i.modifier})}let d={type:`${c}${i.array??""}`,...o,...s,...u};return ZN.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 g6t.InvalidParenthesisError({current:r,depth:n});return t.push(r.trim()),t}function bSe(e){return e==="address"||e==="bool"||e==="function"||e==="string"||cw.bytesRegex.test(e)||cw.integerRegex.test(e)}var x6t=/^(?: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 _Se(e){return e==="address"||e==="bool"||e==="function"||e==="string"||e==="tuple"||cw.bytesRegex.test(e)||cw.integerRegex.test(e)||x6t.test(e)}function vSe(e,t){return t||e==="bytes"||e==="string"||e==="tuple"}});var $S=g(LQ=>{"use strict";Object.defineProperty(LQ,"__esModule",{value:!0});LQ.parseStructs=T6t;var wSe=LS(),E6t=HS(),A6t=aw(),xSe=WN(),S6t=qQ(),ESe=Z2(),ASe=e6();function T6t(e){let t={},r=e.length;for(let s=0;s<r;s++){let a=e[s];if(!(0,ESe.isStructSignature)(a))continue;let c=(0,ESe.execStructSignature)(a);if(!c)throw new xSe.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,ASe.parseAbiParameter)(m,{type:"struct"});d.push(h)}if(!d.length)throw new xSe.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]=SSe(c,t)}return n}var P6t=/^(?<type>[a-zA-Z$_][a-zA-Z0-9$_]*)(?<array>(?:\[\d*?\])+?)?$/;function SSe(e=[],t={},r=new Set){let n=[],i=e.length;for(let o=0;o<i;o++){let s=e[o];if(wSe.isTupleRegex.test(s.type))n.push(s);else{let c=(0,wSe.execTyped)(P6t,s.type);if(!c?.type)throw new A6t.InvalidAbiTypeParameterError({abiParameter:s});let{array:u,type:d}=c;if(d in t){if(r.has(d))throw new S6t.CircularReferenceError({type:d});n.push({...s,type:`tuple${u??""}`,components:SSe(t[d],t,new Set([...r,d]))})}else if((0,ASe.isSolidityType)(d))n.push(s);else throw new E6t.UnknownTypeError({type:d})}}return n}});var TSe=g(zQ=>{"use strict";Object.defineProperty(zQ,"__esModule",{value:!0});zQ.parseAbi=k6t;var I6t=Z2(),O6t=$S(),C6t=e6();function k6t(e){let t=(0,O6t.parseStructs)(e),r=[],n=e.length;for(let i=0;i<n;i++){let o=e[i];(0,I6t.isStructSignature)(o)||r.push((0,C6t.parseSignature)(o,t))}return r}});var ISe=g(HQ=>{"use strict";Object.defineProperty(HQ,"__esModule",{value:!0});HQ.parseAbiItem=j6t;var R6t=HS(),B6t=Z2(),N6t=$S(),PSe=e6();function j6t(e){let t;if(typeof e=="string")t=(0,PSe.parseSignature)(e);else{let r=(0,N6t.parseStructs)(e),n=e.length;for(let i=0;i<n;i++){let o=e[i];if(!(0,B6t.isStructSignature)(o)){t=(0,PSe.parseSignature)(o,r);break}}}if(!t)throw new R6t.InvalidAbiItemError({signature:e});return t}});var CSe=g($Q=>{"use strict";Object.defineProperty($Q,"__esModule",{value:!0});$Q.parseAbiParameter=M6t;var U6t=aw(),FQ=Z2(),q6t=$S(),OSe=e6();function M6t(e){let t;if(typeof e=="string")t=(0,OSe.parseAbiParameter)(e,{modifiers:FQ.modifiers});else{let r=(0,q6t.parseStructs)(e),n=e.length;for(let i=0;i<n;i++){let o=e[i];if(!(0,FQ.isStructSignature)(o)){t=(0,OSe.parseAbiParameter)(o,{modifiers:FQ.modifiers,structs:r});break}}}if(!t)throw new U6t.InvalidAbiParameterError({param:e});return t}});var BSe=g(KQ=>{"use strict";Object.defineProperty(KQ,"__esModule",{value:!0});KQ.parseAbiParameters=z6t;var D6t=aw(),VQ=Z2(),L6t=$S(),kSe=e6(),RSe=e6();function z6t(e){let t=[];if(typeof e=="string"){let r=(0,kSe.splitParameters)(e),n=r.length;for(let i=0;i<n;i++)t.push((0,RSe.parseAbiParameter)(r[i],{modifiers:VQ.modifiers}))}else{let r=(0,L6t.parseStructs)(e),n=e.length;for(let i=0;i<n;i++){let o=e[i];if((0,VQ.isStructSignature)(o))continue;let s=(0,kSe.splitParameters)(o),a=s.length;for(let c=0;c<a;c++)t.push((0,RSe.parseAbiParameter)(s[c],{modifiers:VQ.modifiers,structs:r}))}}if(t.length===0)throw new D6t.InvalidAbiParametersError({params:e});return t}});var VS=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 H6t=Y2();Object.defineProperty(dt,"BaseError",{enumerable:!0,get:function(){return H6t.BaseError}});var F6t=nSe();Object.defineProperty(dt,"narrow",{enumerable:!0,get:function(){return F6t.narrow}});var $6t=oSe();Object.defineProperty(dt,"formatAbi",{enumerable:!0,get:function(){return $6t.formatAbi}});var V6t=_Q();Object.defineProperty(dt,"formatAbiItem",{enumerable:!0,get:function(){return V6t.formatAbiItem}});var K6t=hQ();Object.defineProperty(dt,"formatAbiParameter",{enumerable:!0,get:function(){return K6t.formatAbiParameter}});var W6t=gQ();Object.defineProperty(dt,"formatAbiParameters",{enumerable:!0,get:function(){return W6t.formatAbiParameters}});var G6t=TSe();Object.defineProperty(dt,"parseAbi",{enumerable:!0,get:function(){return G6t.parseAbi}});var J6t=ISe();Object.defineProperty(dt,"parseAbiItem",{enumerable:!0,get:function(){return J6t.parseAbiItem}});var Y6t=CSe();Object.defineProperty(dt,"parseAbiParameter",{enumerable:!0,get:function(){return Y6t.parseAbiParameter}});var Z6t=BSe();Object.defineProperty(dt,"parseAbiParameters",{enumerable:!0,get:function(){return Z6t.parseAbiParameters}});var WQ=HS();Object.defineProperty(dt,"UnknownTypeError",{enumerable:!0,get:function(){return WQ.UnknownTypeError}});Object.defineProperty(dt,"InvalidAbiItemError",{enumerable:!0,get:function(){return WQ.InvalidAbiItemError}});Object.defineProperty(dt,"UnknownSolidityTypeError",{enumerable:!0,get:function(){return WQ.UnknownSolidityTypeError}});var t6=aw();Object.defineProperty(dt,"InvalidAbiTypeParameterError",{enumerable:!0,get:function(){return t6.InvalidAbiTypeParameterError}});Object.defineProperty(dt,"InvalidFunctionModifierError",{enumerable:!0,get:function(){return t6.InvalidFunctionModifierError}});Object.defineProperty(dt,"InvalidModifierError",{enumerable:!0,get:function(){return t6.InvalidModifierError}});Object.defineProperty(dt,"SolidityProtectedKeywordError",{enumerable:!0,get:function(){return t6.SolidityProtectedKeywordError}});Object.defineProperty(dt,"InvalidParameterError",{enumerable:!0,get:function(){return t6.InvalidParameterError}});Object.defineProperty(dt,"InvalidAbiParametersError",{enumerable:!0,get:function(){return t6.InvalidAbiParametersError}});Object.defineProperty(dt,"InvalidAbiParameterError",{enumerable:!0,get:function(){return t6.InvalidAbiParameterError}});var GQ=WN();Object.defineProperty(dt,"InvalidStructSignatureError",{enumerable:!0,get:function(){return GQ.InvalidStructSignatureError}});Object.defineProperty(dt,"InvalidSignatureError",{enumerable:!0,get:function(){return GQ.InvalidSignatureError}});Object.defineProperty(dt,"UnknownSignatureError",{enumerable:!0,get:function(){return GQ.UnknownSignatureError}});var X6t=DQ();Object.defineProperty(dt,"InvalidParenthesisError",{enumerable:!0,get:function(){return X6t.InvalidParenthesisError}});var Q6t=qQ();Object.defineProperty(dt,"CircularReferenceError",{enumerable:!0,get:function(){return Q6t.CircularReferenceError}})});var rr=g(JQ=>{"use strict";Object.defineProperty(JQ,"__esModule",{value:!0});JQ.getAction=e_t;function e_t(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(XN=>{"use strict";Object.defineProperty(XN,"__esModule",{value:!0});XN.formatAbiItem=r_t;XN.formatAbiParams=YQ;var t_t=Bn();function r_t(e,{includeName:t=!1}={}){if(e.type!=="function"&&e.type!=="event"&&e.type!=="error")throw new t_t.InvalidDefinitionTypeError(e.type);return`${e.name}(${YQ(e.inputs,{includeName:t})})`}function YQ(e,{includeName:t=!1}={}){return e?e.map(r=>n_t(r,{includeName:t})).join(t?", ":","):""}function n_t(e,{includeName:t}){return e.type.startsWith("tuple")?`(${YQ(e.components,{includeName:t})})${e.type.slice(5)}`:e.type+(t&&e.name?` ${e.name}`:"")}});var es=g(ZQ=>{"use strict";Object.defineProperty(ZQ,"__esModule",{value:!0});ZQ.isHex=i_t;function i_t(e,{strict:t=!0}={}){return!e||typeof e!="string"?!1:t?/^0x[0-9a-fA-F]*$/.test(e):e.startsWith("0x")}});var ts=g(XQ=>{"use strict";Object.defineProperty(XQ,"__esModule",{value:!0});XQ.size=s_t;var o_t=es();function s_t(e){return(0,o_t.isHex)(e,{strict:!1})?Math.ceil((e.length-2)/2):e.length}});var NSe=g(QN=>{"use strict";Object.defineProperty(QN,"__esModule",{value:!0});QN.version=void 0;QN.version="2.54.6"});var Pt=g(KS=>{"use strict";Object.defineProperty(KS,"__esModule",{value:!0});KS.BaseError=void 0;KS.setErrorConfig=a_t;var jSe=NSe(),ej={getDocsUrl:({docsBaseUrl:e,docsPath:t="",docsSlug:r})=>t?`${e??"https://viem.sh"}${t}${r?`#${r}`:""}`:void 0,version:`viem@${jSe.version}`};function a_t(e){ej=e}var QQ=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=ej.getDocsUrl?.({...r,docsPath:i}),s=[t||"An error occurred.","",...r.metaMessages?[...r.metaMessages,""]:[],...o?[`Docs: ${o}`]:[],...n?[`Details: ${n}`]:[],...ej.version?[`Version: ${ej.version}`]:[]].join(`
@@ -20686,7 +20686,7 @@ ${e.senderName}
20686
20686
  ${e.timestampMs}
20687
20687
  ${e.messageType}
20688
20688
  ${t}
20689
- ${e.nonce}`;return pxr.encode(r)}function hxr(e,t,r,n,i,o,s){return mxr({messageId:e,senderPeerId:t,senderName:r,timestampMs:n,messageType:i,payload:o,nonce:s})}function yxr(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 Lxr(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name==="Uint8Array"&&"BYTES_PER_ELEMENT"in e&&e.BYTES_PER_ELEMENT===1}function U0t(e,t,r=""){let n=Lxr(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 Xmt(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 zxr(e,t){U0t(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 P3e(...e){for(let t=0;t<e.length;t++)e[t].fill(0)}function w3e(e){return new DataView(e.buffer,e.byteOffset,e.byteLength)}function Hxr(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 Vxr(e,t=!1){return t?{h:Number(e&fZ),l:Number(e>>Qmt&fZ)}:{h:Number(e>>Qmt&fZ)|0,l:Number(e&fZ)|0}}function Kxr(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}=Vxr(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 iEr(){return Uxr.randomSecretKey()}function M0t(e){return Nxr(e)}function oEr(){let e=iEr();return{secretKey:e,publicKey:M0t(e)}}function sEr(e){if((0,A2.existsSync)(e)){let r=(0,A2.readFileSync)(e),n=new Uint8Array(r.buffer.slice(r.byteOffset,r.byteOffset+32));return{secretKey:n,publicKey:M0t(n)}}let t=oEr();return(0,A2.mkdirSync)((0,i0t.dirname)(e),{recursive:!0}),(0,A2.writeFileSync)(e,new Uint8Array(t.secretKey)),t}function aEr(e){let{secretKey:t,publicKey:r}=sEr(e);return{privateKey:t,publicKey:r}}async function cEr(e,t,r,n,i,o,s,a){let c=hxr(t,r,n,i,o,s,a);return{signature:await uxr(e,c),signatureInput:fxr.subwayAgentMsgV1}}function n0t(e){return lxr(e)}var A2,i0t,g9r,b9r,_9r,v9r,w9r,o0t,bZ,yZ,Bmt,Nmt,m3e,h3e,x9r,AZ,E9r,Cs,A9r,S9r,T9r,fh,SZ,I3e,s0t,O3e,uh,jmt,C3e,a0t,P9r,ZA,I9r,_Z,a4,Rn,Umt,Ke,c0t,u0t,d0t,l0t,y3e,x3e,fB,m4,p4,p0t,f0t,Dm,O9r,qmt,C9r,E3e,k3e,k9r,m0t,R9r,B9r,N9r,j9r,U9r,q9r,R3e,h0t,vZ,M9r,y0t,A3e,D9r,Mmt,Dmt,L9r,_0t,v0t,b2,fa,dZ,zmt,Hmt,Fmt,WA,GA,lZ,pZ,W9r,G9r,J9r,Y9r,Z9r,X9r,Q9r,_2,exr,txr,w0t,rxr,nxr,v2,w2,ixr,oxr,sxr,axr,$mt,dxr,x0t,pxr,fxr,E0t,gxr,A0t,wZ,gZ,Vmt,Kmt,b3e,_3e,bxr,XA,_xr,ks,vxr,wxr,xxr,S2,TZ,B3e,S0t,T0t,lh,Wmt,P0t,I0t,Exr,N3e,Axr,xZ,u4,Gn,Gmt,We,Sxr,Txr,O0t,C0t,v3e,S3e,mB,QA,f4,Pxr,k0t,zm,Ixr,Jmt,Oxr,Cxr,kxr,Rxr,R0t,Bxr,B0t,Nxr,N0t,jxr,Uxr,EZ,qxr,j0t,T3e,Mxr,Ymt,Zmt,Dxr,Fxr,$xr,ma,fZ,Qmt,e0t,t0t,JA,YA,mZ,hZ,Wxr,Gxr,Jxr,Yxr,Zxr,Xxr,q0t,Qxr,eEr,x2,E2,tEr,rEr,nEr,r0t,uEr,dEr,D0t,j3e=P(()=>{"use strict";l3e();l3e();p3e();A2=require("fs"),i0t=require("path");g9r=1e3,b9r=10,_9r=3e4,v9r=3e4,w9r=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??g9r,this.maxReconnectAttempts=e.maxReconnectAttempts??b9r,this.pingInterval=e.pingInterval??_9r}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=h9r();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=y9r(this.reconnectInterval*Math.pow(2,this.reconnectAttempt),this.reconnectInterval,v9r);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)}}},o0t=Object.freeze({p:0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffedn,n:0x1000000000000000000000000000000014def9dea2f79cd65812631a5cf5d3edn,h:8n,a:0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffecn,d:0x52036cee2b6ffe738cc740797779e89800700a4d4141d8ab75eb4dca135978a3n,Gx:0x216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51an,Gy:0x6666666666666666666666666666666666666666666666666666666666666658n}),{p:bZ,n:yZ,Gx:Bmt,Gy:Nmt,a:m3e,d:h3e,h:x9r}=o0t,AZ=32,E9r=(...e)=>{"captureStackTrace"in Error&&typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(...e)},Cs=(e="")=>{let t=new Error(e);throw E9r(t,Cs),t},A9r=e=>typeof e=="bigint",S9r=e=>typeof e=="string",T9r=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=T9r(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},SZ=e=>new Uint8Array(e),I3e=e=>Uint8Array.from(e),s0t=(e,t)=>e.toString(16).padStart(t,"0"),O3e=e=>Array.from(fh(e)).map(t=>s0t(t,2)).join(""),uh={_0:48,_9:57,A:65,F:70,a:97,f:102},jmt=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)},C3e=e=>{let t="hex invalid";if(!S9r(e))return Cs(t);let r=e.length,n=r/2;if(r%2)return Cs(t);let i=SZ(n);for(let o=0,s=0;o<n;o++,s+=2){let a=jmt(e.charCodeAt(s)),c=jmt(e.charCodeAt(s+1));if(a===void 0||c===void 0)return Cs(t);i[o]=a*16+c}return i},a0t=()=>globalThis?.crypto,P9r=()=>a0t()?.subtle??Cs("crypto.subtle must be defined, consider polyfill"),ZA=(...e)=>{let t=0;for(let i of e)t+=fh(i).length;let r=SZ(t),n=0;return e.forEach(i=>{r.set(i,n),n+=i.length}),r},I9r=(e=AZ)=>a0t().getRandomValues(SZ(e)),_Z=BigInt,a4=(e,t,r,n="bad number: out of range")=>{if(!A9r(e))throw new TypeError(n);if(t<=e&&e<r)return e;throw new RangeError(n)},Rn=(e,t=bZ)=>{let r=e%t;return r>=0n?r:t+r},Umt=(1n<<255n)-1n,Ke=e=>{e<0n&&Cs("negative coordinate");let t=(e>>255n)*19n+(e&Umt);return t=(t>>255n)*19n+(t&Umt),t%bZ},c0t=e=>Rn(e,yZ),u0t=(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")},d0t=e=>{let t=h0t[e];return typeof t!="function"&&Cs("hashes."+e+" not set"),t},l0t=e=>fh(e,64,"digest"),y3e=e=>e instanceof fB?e:Cs("Point expected"),x3e=2n**256n,fB=class c4{static BASE;static ZERO;X;Y;Z;T;constructor(t,r,n,i){let o=x3e;this.X=a4(t,0n,o),this.Y=a4(r,0n,o),this.Z=a4(n,1n,o),this.T=a4(i,0n,o),Object.freeze(this)}static CURVE(){return o0t}static fromAffine(t){return new c4(t.x,t.y,1n,Ke(t.x*t.y))}static fromBytes(t,r=!1){let n=h3e,i=I3e(fh(t,AZ)),o=t[31];i[31]=o&-129;let s=f0t(i);a4(s,0n,r?x3e:bZ);let c=Ke(s*s),u=Rn(c-1n),d=Ke(n*c+1n),{isValid:l,value:p}=C9r(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 c4(p,s,1n,Ke(p*s))}static fromHex(t,r){return c4.fromBytes(C3e(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 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}=y3e(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(p4)}negate(){return new c4(Rn(-this.X),this.Y,this.Z,Rn(-this.T))}double(){let{X:t,Y:r,Z:n}=this,i=m3e,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 c4(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=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 c4(v,E,S,A)}subtract(t){return this.add(y3e(t).negate())}multiply(t,r=!0){if(!r&&t===0n||(a4(t,1n,yZ),!r&&this.is0()))return p4;if(t===1n)return this;if(this.equals(m4))return L9r(t).p;let n=p4,i=m4;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=u0t(n,bZ);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=p0t(r);return n[31]|=t&1n?128:0,n}toHex(){return O3e(this.toBytes())}clearCofactor(){return this.multiply(_Z(x9r),!1)}isSmallOrder(){return this.clearCofactor().is0()}isTorsionFree(){let t=this.multiply(yZ/2n,!1).double();return yZ%2n&&(t=t.add(this)),t.is0()}},m4=new fB(Bmt,Nmt,1n,Rn(Bmt*Nmt)),p4=new fB(0n,1n,1n,0n);fB.BASE=m4;fB.ZERO=p4;p0t=e=>C3e(s0t(a4(e,0n,x3e),64)).reverse(),f0t=e=>_Z("0x"+O3e(I3e(fh(e)).reverse())),Dm=(e,t)=>{let r=e;for(;t-- >0n;)r=Ke(r*r);return r},O9r=e=>{let t=Ke(e*e),r=Ke(t*e),n=Ke(Dm(r,2n)*r),i=Ke(Dm(n,1n)*e),o=Ke(Dm(i,5n)*i),s=Ke(Dm(o,10n)*o),a=Ke(Dm(s,20n)*s),c=Ke(Dm(a,40n)*a),u=Ke(Dm(c,80n)*c),d=Ke(Dm(u,80n)*c),l=Ke(Dm(d,10n)*o);return{pow_p_5_8:Ke(Dm(l,2n)*e),b2:r}},qmt=0x2b8324804fc1df0b2b4d00993dfbd7a72f431806ad2fe478c4ee1b274a0ea0b0n,C9r=(e,t)=>{let r=Ke(t*Ke(t*t)),n=Ke(Ke(r*r)*t),i=O9r(Ke(e*n)).pow_p_5_8,o=Ke(e*Ke(r*i)),s=Ke(t*Ke(o*o)),a=o,c=Ke(o*qmt),u=s===e,d=s===Rn(-e),l=s===Rn(-e*qmt);return u&&(o=a),(d||l)&&(o=c),(Rn(o)&1n)===1n&&(o=Rn(-o)),{isValid:u||d,value:o}},E3e=e=>c0t(f0t(e)),k3e=(...e)=>Promise.resolve(d0t("sha512Async")(ZA(...e))).then(l0t),k9r=(...e)=>l0t(d0t("sha512")(ZA(...e))),m0t=e=>{let t=I3e(e),r=t.slice(0,32);r[0]&=248,r[31]&=127,r[31]|=64;let n=t.slice(32,64),i=E3e(r),o=m4.multiply(i),s=o.toBytes();return{head:r,prefix:n,scalar:i,point:o,pointBytes:s}},R9r=e=>k3e(fh(e,AZ)).then(m0t),B9r=e=>m0t(k9r(fh(e,AZ))),N9r=e=>B9r(e).pointBytes,j9r=e=>k3e(e.hashable).then(e.finish),U9r=(e,t,r)=>{let{pointBytes:n,scalar:i}=e,o=E3e(t),s=m4.multiply(o).toBytes();return{hashable:ZA(s,n,r),finish:u=>{let d=c0t(o+E3e(u)*i);return fh(ZA(s,p0t(d)),64)}}},q9r=async(e,t)=>{let r=fh(e),n=await R9r(t),i=await k3e(n.prefix,r);return j9r(U9r(n,i,r))},R3e=Object.freeze({bytesToHex:O3e,hexToBytes:C3e,concatBytes:ZA,mod:Rn,invert:u0t,randomBytes:I9r}),h0t={sha512Async:async e=>{let t=P9r(),r=ZA(e);return SZ(await t.digest("SHA-512",r.buffer))},sha512:void 0},vZ=8,M9r=256,y0t=Math.ceil(M9r/vZ)+1,A3e=2**(vZ-1),D9r=()=>{let e=[],t=m4,r=t;for(let n=0;n<y0t;n++){r=t,e.push(r);for(let i=1;i<A3e;i++)r=r.add(t),e.push(r);t=r.double()}return e},Mmt=void 0,Dmt=(e,t)=>{let r=t.negate();return e?r:t},L9r=e=>{let t=Mmt||(Mmt=D9r()),r=p4,n=m4,i=2**vZ,o=i,s=_Z(i-1),a=_Z(vZ);for(let c=0;c<y0t;c++){let u=Number(e&s);e>>=a,u>A3e&&(u-=o,e+=1n);let d=c*A3e,l=d,p=d+Math.abs(u)-1,f=c%2!==0,m=u<0;u===0?n=n.add(Dmt(f,t[l])):r=r.add(Dmt(m,t[p]))}return e!==0n&&Cs("invalid wnaf"),{p:r,f:n}};_0t=e=>({oid:Uint8Array.from([6,9,96,134,72,1,101,3,4,2,e])});v0t=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){Lmt(this),g0t(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){Lmt(this),H9r(e,this),this.finished=!0;let{buffer:t,view:r,blockLen:n,isLE:i}=this,{pos:o}=this;t[o++]=128,pB(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()}},b2=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]),dZ=BigInt(2**32-1),zmt=BigInt(32);Hmt=(e,t,r)=>e>>>r,Fmt=(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,lZ=(e,t,r)=>e<<64-r|t>>>r-32,pZ=(e,t,r)=>e>>>r-32|t<<64-r;W9r=(e,t,r)=>(e>>>0)+(t>>>0)+(r>>>0),G9r=(e,t,r,n)=>t+r+n+(e/2**32|0)|0,J9r=(e,t,r,n)=>(e>>>0)+(t>>>0)+(r>>>0)+(n>>>0),Y9r=(e,t,r,n,i)=>t+r+n+i+(e/2**32|0)|0,Z9r=(e,t,r,n,i)=>(e>>>0)+(t>>>0)+(r>>>0)+(n>>>0)+(i>>>0),X9r=(e,t,r,n,i,o)=>t+r+n+i+o+(e/2**32|0)|0,Q9r=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]),_2=new Uint32Array(64),exr=class extends v0t{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)_2[d]=e.getUint32(t,!1);for(let d=16;d<64;d++){let l=_2[d-15],p=_2[d-2],f=Lm(l,7)^Lm(l,18)^l>>>3,m=Lm(p,17)^Lm(p,19)^p>>>10;_2[d]=m+_2[d-7]+f+_2[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=Lm(s,6)^Lm(s,11)^Lm(s,25),p=u+l+F9r(s,a,c)+Q9r[d]+_2[d]|0,m=(Lm(r,2)^Lm(r,13)^Lm(r,22))+$9r(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(){pB(_2)}destroy(){this.destroyed=!0,this.set(0,0,0,0,0,0,0,0),pB(this.buffer)}},txr=class extends exr{A=b2[0]|0;B=b2[1]|0;C=b2[2]|0;D=b2[3]|0;E=b2[4]|0;F=b2[5]|0;G=b2[6]|0;H=b2[7]|0;constructor(){super(32)}},w0t=K9r(["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))),rxr=w0t[0],nxr=w0t[1],v2=new Uint32Array(80),w2=new Uint32Array(80),ixr=class extends v0t{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)v2[x]=e.getUint32(t),w2[x]=e.getUint32(t+=4);for(let x=16;x<80;x++){let _=v2[x-15]|0,v=w2[x-15]|0,E=WA(_,v,1)^WA(_,v,8)^Hmt(_,v,7),A=GA(_,v,1)^GA(_,v,8)^Fmt(_,v,7),S=v2[x-2]|0,C=w2[x-2]|0,I=WA(S,C,19)^lZ(S,C,61)^Hmt(S,C,6),k=GA(S,C,19)^pZ(S,C,61)^Fmt(S,C,6),q=J9r(A,k,w2[x-7],w2[x-16]),j=Y9r(q,E,I,v2[x-7],v2[x-16]);v2[x]=j|0,w2[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)^lZ(d,l,41),v=GA(d,l,14)^GA(d,l,18)^pZ(d,l,41),E=d&p^~d&m,A=l&f^~l&h,S=Z9r(w,v,A,nxr[x],w2[x]),C=X9r(S,y,_,E,rxr[x],v2[x]),I=S|0,k=WA(r,n,28)^lZ(r,n,34)^lZ(r,n,39),q=GA(r,n,28)^pZ(r,n,34)^pZ(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=W9r(I,q,U);r=G9r(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(){pB(v2,w2)}destroy(){this.destroyed=!0,pB(this.buffer),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}},oxr=class extends ixr{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)}},sxr=b0t(()=>new txr,_0t(1)),axr=b0t(()=>new oxr,_0t(3)),$mt=h0t;$mt.sha512||($mt.sha512=e=>axr(e));dxr=R3e.bytesToHex,x0t=R3e.hexToBytes;R3e.concatBytes;pxr=new TextEncoder,fxr={subwayAgentMsgV1:"message_id;sender_peer_id;sender_name;timestamp_ms;message_type;payload_hash;nonce"};x0t("302e020100300506032b657004220420");x0t("302a300506032b6570032100");E0t="ABCDEFGHJKLMNPQRSTUVWXYZ23456789",gxr=E0t.length-1;if((E0t.length&gxr)!==0)throw new Error("agent pairing code alphabet must contain a power-of-two number of symbols");A0t=Object.freeze({p:0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffedn,n:0x1000000000000000000000000000000014def9dea2f79cd65812631a5cf5d3edn,h:8n,a:0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffecn,d:0x52036cee2b6ffe738cc740797779e89800700a4d4141d8ab75eb4dca135978a3n,Gx:0x216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51an,Gy:0x6666666666666666666666666666666666666666666666666666666666666658n}),{p:wZ,n:gZ,Gx:Vmt,Gy:Kmt,a:b3e,d:_3e,h:bxr}=A0t,XA=32,_xr=(...e)=>{"captureStackTrace"in Error&&typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(...e)},ks=(e="")=>{let t=new Error(e);throw _xr(t,ks),t},vxr=e=>typeof e=="bigint",wxr=e=>typeof e=="string",xxr=e=>e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name==="Uint8Array"&&"BYTES_PER_ELEMENT"in e&&e.BYTES_PER_ELEMENT===1,S2=(e,t,r="")=>{let n=xxr(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},TZ=e=>new Uint8Array(e),B3e=e=>Uint8Array.from(e),S0t=(e,t)=>e.toString(16).padStart(t,"0"),T0t=e=>Array.from(S2(e)).map(t=>S0t(t,2)).join(""),lh={_0:48,_9:57,A:65,F:70,a:97,f:102},Wmt=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)},P0t=e=>{let t="hex invalid";if(!wxr(e))return ks(t);let r=e.length,n=r/2;if(r%2)return ks(t);let i=TZ(n);for(let o=0,s=0;o<n;o++,s+=2){let a=Wmt(e.charCodeAt(s)),c=Wmt(e.charCodeAt(s+1));if(a===void 0||c===void 0)return ks(t);i[o]=a*16+c}return i},I0t=()=>globalThis?.crypto,Exr=()=>I0t()?.subtle??ks("crypto.subtle must be defined, consider polyfill"),N3e=(...e)=>{let t=0;for(let i of e)t+=S2(i).length;let r=TZ(t),n=0;return e.forEach(i=>{r.set(i,n),n+=i.length}),r},Axr=(e=XA)=>I0t().getRandomValues(TZ(e)),xZ=BigInt,u4=(e,t,r,n="bad number: out of range")=>{if(!vxr(e))throw new TypeError(n);if(t<=e&&e<r)return e;throw new RangeError(n)},Gn=(e,t=wZ)=>{let r=e%t;return r>=0n?r:t+r},Gmt=(1n<<255n)-1n,We=e=>{e<0n&&ks("negative coordinate");let t=(e>>255n)*19n+(e&Gmt);return t=(t>>255n)*19n+(t&Gmt),t%wZ},Sxr=e=>Gn(e,gZ),Txr=(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")},O0t=e=>{let t=N0t[e];return typeof t!="function"&&ks("hashes."+e+" not set"),t},C0t=e=>S2(e,64,"digest"),v3e=e=>e instanceof mB?e:ks("Point expected"),S3e=2n**256n,mB=class d4{static BASE;static ZERO;X;Y;Z;T;constructor(t,r,n,i){let o=S3e;this.X=u4(t,0n,o),this.Y=u4(r,0n,o),this.Z=u4(n,1n,o),this.T=u4(i,0n,o),Object.freeze(this)}static CURVE(){return A0t}static fromAffine(t){return new d4(t.x,t.y,1n,We(t.x*t.y))}static fromBytes(t,r=!1){let n=_3e,i=B3e(S2(t,XA)),o=t[31];i[31]=o&-129;let s=k0t(i);u4(s,0n,r?S3e:wZ);let c=We(s*s),u=Gn(c-1n),d=We(n*c+1n),{isValid:l,value:p}=Oxr(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 d4(p,s,1n,We(p*s))}static fromHex(t,r){return d4.fromBytes(P0t(t),r)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}assertValidity(){let t=b3e,r=_3e,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}=v3e(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(f4)}negate(){return new d4(Gn(-this.X),this.Y,this.Z,Gn(-this.T))}double(){let{X:t,Y:r,Z:n}=this,i=b3e,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 d4(m,h,w,y)}add(t){let{X:r,Y:n,Z:i,T:o}=this,{X:s,Y:a,Z:c,T:u}=v3e(t),d=b3e,l=_3e,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 d4(v,E,S,A)}subtract(t){return this.add(v3e(t).negate())}multiply(t,r=!0){if(!r&&t===0n||(u4(t,1n,gZ),!r&&this.is0()))return f4;if(t===1n)return this;if(this.equals(QA))return Dxr(t).p;let n=f4,i=QA;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(f4))return{x:0n,y:1n};let i=Txr(n,wZ);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=Pxr(r);return n[31]|=t&1n?128:0,n}toHex(){return T0t(this.toBytes())}clearCofactor(){return this.multiply(xZ(bxr),!1)}isSmallOrder(){return this.clearCofactor().is0()}isTorsionFree(){let t=this.multiply(gZ/2n,!1).double();return gZ%2n&&(t=t.add(this)),t.is0()}},QA=new mB(Vmt,Kmt,1n,Gn(Vmt*Kmt)),f4=new mB(0n,1n,1n,0n);mB.BASE=QA;mB.ZERO=f4;Pxr=e=>P0t(S0t(u4(e,0n,S3e),64)).reverse(),k0t=e=>xZ("0x"+T0t(B3e(S2(e)).reverse())),zm=(e,t)=>{let r=e;for(;t-- >0n;)r=We(r*r);return r},Ixr=e=>{let t=We(e*e),r=We(t*e),n=We(zm(r,2n)*r),i=We(zm(n,1n)*e),o=We(zm(i,5n)*i),s=We(zm(o,10n)*o),a=We(zm(s,20n)*s),c=We(zm(a,40n)*a),u=We(zm(c,80n)*c),d=We(zm(u,80n)*c),l=We(zm(d,10n)*o);return{pow_p_5_8:We(zm(l,2n)*e),b2:r}},Jmt=0x2b8324804fc1df0b2b4d00993dfbd7a72f431806ad2fe478c4ee1b274a0ea0b0n,Oxr=(e,t)=>{let r=We(t*We(t*t)),n=We(We(r*r)*t),i=Ixr(We(e*n)).pow_p_5_8,o=We(e*We(r*i)),s=We(t*We(o*o)),a=o,c=We(o*Jmt),u=s===e,d=s===Gn(-e),l=s===Gn(-e*Jmt);return u&&(o=a),(d||l)&&(o=c),(Gn(o)&1n)===1n&&(o=Gn(-o)),{isValid:u||d,value:o}},Cxr=e=>Sxr(k0t(e)),kxr=(...e)=>Promise.resolve(O0t("sha512Async")(N3e(...e))).then(C0t),Rxr=(...e)=>C0t(O0t("sha512")(N3e(...e))),R0t=e=>{let t=B3e(e),r=t.slice(0,32);r[0]&=248,r[31]&=127,r[31]|=64;let n=t.slice(32,64),i=Cxr(r),o=QA.multiply(i),s=o.toBytes();return{head:r,prefix:n,scalar:i,point:o,pointBytes:s}},Bxr=e=>kxr(S2(e,XA)).then(R0t),B0t=e=>R0t(Rxr(S2(e,XA))),Nxr=e=>B0t(e).pointBytes,N0t={sha512Async:async e=>{let t=Exr(),r=N3e(e);return TZ(await t.digest("SHA-512",r.buffer))},sha512:void 0},jxr=e=>(e=e===void 0?Axr(XA):e,S2(e,XA)),Uxr=Object.freeze({getExtendedPublicKeyAsync:Bxr,getExtendedPublicKey:B0t,randomSecretKey:jxr}),EZ=8,qxr=256,j0t=Math.ceil(qxr/EZ)+1,T3e=2**(EZ-1),Mxr=()=>{let e=[],t=QA,r=t;for(let n=0;n<j0t;n++){r=t,e.push(r);for(let i=1;i<T3e;i++)r=r.add(t),e.push(r);t=r.double()}return e},Ymt=void 0,Zmt=(e,t)=>{let r=t.negate();return e?r:t},Dxr=e=>{let t=Ymt||(Ymt=Mxr()),r=f4,n=QA,i=2**EZ,o=i,s=xZ(i-1),a=xZ(EZ);for(let c=0;c<j0t;c++){let u=Number(e&s);e>>=a,u>T3e&&(u-=o,e+=1n);let d=c*T3e,l=d,p=d+Math.abs(u)-1,f=c%2!==0,m=u<0;u===0?n=n.add(Zmt(f,t[l])):r=r.add(Zmt(m,t[p]))}return e!==0n&&ks("invalid wnaf"),{p:r,f:n}};Fxr=e=>({oid:Uint8Array.from([6,9,96,134,72,1,101,3,4,2,e])}),$xr=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=w3e(this.buffer)}update(e){Xmt(this),U0t(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=w3e(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){Xmt(this),zxr(e,this),this.finished=!0;let{buffer:t,view:r,blockLen:n,isLE:i}=this,{pos:o}=this;t[o++]=128,P3e(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=w3e(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]),fZ=BigInt(2**32-1),Qmt=BigInt(32);e0t=(e,t,r)=>e>>>r,t0t=(e,t,r)=>e<<32-r|t>>>r,JA=(e,t,r)=>e>>>r|t<<32-r,YA=(e,t,r)=>e<<32-r|t>>>r,mZ=(e,t,r)=>e<<64-r|t>>>r-32,hZ=(e,t,r)=>e>>>r-32|t<<64-r;Wxr=(e,t,r)=>(e>>>0)+(t>>>0)+(r>>>0),Gxr=(e,t,r,n)=>t+r+n+(e/2**32|0)|0,Jxr=(e,t,r,n)=>(e>>>0)+(t>>>0)+(r>>>0)+(n>>>0),Yxr=(e,t,r,n,i)=>t+r+n+i+(e/2**32|0)|0,Zxr=(e,t,r,n,i)=>(e>>>0)+(t>>>0)+(r>>>0)+(n>>>0)+(i>>>0),Xxr=(e,t,r,n,i,o)=>t+r+n+i+o+(e/2**32|0)|0,q0t=Kxr(["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))),Qxr=q0t[0],eEr=q0t[1],x2=new Uint32Array(80),E2=new Uint32Array(80),tEr=class extends $xr{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)x2[x]=e.getUint32(t),E2[x]=e.getUint32(t+=4);for(let x=16;x<80;x++){let _=x2[x-15]|0,v=E2[x-15]|0,E=JA(_,v,1)^JA(_,v,8)^e0t(_,v,7),A=YA(_,v,1)^YA(_,v,8)^t0t(_,v,7),S=x2[x-2]|0,C=E2[x-2]|0,I=JA(S,C,19)^mZ(S,C,61)^e0t(S,C,6),k=YA(S,C,19)^hZ(S,C,61)^t0t(S,C,6),q=Jxr(A,k,E2[x-7],E2[x-16]),j=Yxr(q,E,I,x2[x-7],x2[x-16]);x2[x]=j|0,E2[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 _=JA(d,l,14)^JA(d,l,18)^mZ(d,l,41),v=YA(d,l,14)^YA(d,l,18)^hZ(d,l,41),E=d&p^~d&m,A=l&f^~l&h,S=Zxr(w,v,A,eEr[x],E2[x]),C=Xxr(S,y,_,E,Qxr[x],x2[x]),I=S|0,k=JA(r,n,28)^mZ(r,n,34)^mZ(r,n,39),q=YA(r,n,28)^hZ(r,n,34)^hZ(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=Wxr(I,q,U);r=Gxr(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(){P3e(x2,E2)}destroy(){this.destroyed=!0,P3e(this.buffer),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}},rEr=class extends tEr{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)}},nEr=Hxr(()=>new rEr,Fxr(3)),r0t=N0t;r0t.sha512||(r0t.sha512=e=>nEr(e));uEr="ws://localhost:9001/ws",dEr=3e4,D0t=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=l4(e.name),e.keyPath)try{this._keypair=aEr(e.keyPath)}catch{}this.options={name:this._name,url:e.url??uEr,relay:e.relay??"",autoReconnect:e.autoReconnect??!0,reconnectInterval:e.reconnectInterval??1e3,maxReconnectAttempts:e.maxReconnectAttempts??10,rpcTimeout:e.rpcTimeout??dEr,pingInterval:e.pingInterval??3e4,binding:e.binding??""},this.transport=new w9r({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=yxr(new Uint8Array(t));r&&(this._keypair={privateKey:r,publicKey:cxr(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=n0t(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=l4(e),o=f3e();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=l4(e),o=f3e(),s=Date.now(),a=Math.floor(Math.random()*2**32),c=new TextEncoder().encode(r),{signature:u,signatureInput:d}=await cEr(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=l4(e),o=n?.correlationId??f3e(),s=n?.timeout??this.options.rpcTimeout;return new Promise((a,c)=>{let u=setTimeout(()=>{this.pendingCalls.delete(o),c(new lB(`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=l4(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 lB(`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=d3e(e.code,e.message);this.registerPromise&&e.code==="register_failed"&&(this.registerPromise.reject(new uZ(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=n0t(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 H3e={};Mi(H3e,{SUBWAY_PROTOCOL:()=>Y0t,registerDirect:()=>EEr,resolveDirect:()=>AEr});function M3e(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 D3e(e,t){return e<<3|t}function hB(e,t,r){e.push(D3e(t,2)),M3e(e,r.length);for(let n of r)e.push(n)}function lEr(e,t){let r=[];return hB(r,1,q3e.encode(e)),t&&t.length>0&&hB(r,2,q3e.encode(t)),Uint8Array.from(r)}function pEr(e,t,r){let n=[];return r!==0n&&(n.push(D3e(1,0)),M3e(n,r)),hB(n,2,lEr(e,t)),Uint8Array.from(n)}function fEr(e){let t=[];return hB(t,1,q3e.encode(e)),Uint8Array.from(t)}function mEr(e,t){let r=[];return t!==0n&&(r.push(D3e(1,0)),M3e(r,t)),hB(r,3,fEr(e)),Uint8Array.from(r)}function hEr(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=G0t.decode(e.subarray(u,d)),t=d}else t=L3e(e,t,s)}return r}function yEr(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=G0t.decode(e.subarray(u,d)),t=d}else t=L3e(e,t,s)}return r}function L3e(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 J0t(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=hEr(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=yEr(e.subarray(u,d)),t=d}else t=L3e(e,t,s)}return r}function gEr(e){let t=new Uint8Array(4+e.length);return new DataView(t.buffer).setUint32(0,e.length,!1),t.set(e,4),t}function z3e(e){return new DataView(e.buffer,e.byteOffset,4).getUint32(0,!1)}function bEr(e){if(e.length<4)return{success:!1,error:"short reply (no length prefix)"};let t=z3e(e.subarray(0,4));return e.length<4+t?{success:!1,error:`truncated frame (have ${e.length-4}, need ${t})`}:J0t(e.subarray(4,4+t)).registerNameResponse??{success:!1,error:"reply carried no register_name_response"}}function _Er(e){if(e.length<4)return{peerId:new Uint8Array(0),error:"short reply (no length prefix)"};let t=z3e(e.subarray(0,4));return e.length<4+t?{peerId:new Uint8Array(0),error:`truncated frame (have ${e.length-4}, need ${t})`}:J0t(e.subarray(4,4+t)).resolveNameResponse??{peerId:new Uint8Array(0),error:"reply carried no resolve_name_response"}}function U3e(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 xEr(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>L0t)throw new Error("subway: reply exceeded max size");if(n<0&&r>=4&&(n=4+z3e(U3e(t).subarray(0,4)),n>L0t))throw new Error("subway: declared frame exceeds max size");if(n>=0&&r>=n)return U3e(t).subarray(0,n)}return U3e(t)}async function Z0t(e){return(0,z0t.createLibp2p)({...e?{privateKey:await(0,V0t.generateKeyPairFromSeed)("Ed25519",e)}:{},transports:[(0,H0t.tcp)()],connectionEncrypters:[(0,F0t.noise)()],streamMuxers:[(0,$0t.yamux)()],connectionGater:{denyDialMultiaddr:async()=>!1}})}async function X0t(e,t,r){let n=await e.dialProtocol((0,K0t.multiaddr)(t),Y0t,{signal:AbortSignal.timeout(vEr)});n.send(gEr(r));let i;return Promise.race([xEr(n),new Promise((o,s)=>{i=setTimeout(()=>s(new Error("subway: request timed out")),wEr)})]).finally(()=>clearTimeout(i))}async function EEr(e){let t=await Z0t(e.seed);try{let r=await X0t(t,e.relayMultiaddr,pEr(e.name,e.binding,e.requestId??1n)),n=bEr(r);return{success:n.success,error:n.error,peerId:t.peerId.toString()}}finally{await t.stop()}}async function AEr(e){let t=await Z0t(e.seed);try{let r=await X0t(t,e.relayMultiaddr,mEr(e.name,e.requestId??1n)),n=_Er(r);return n.peerId.length===0?{found:!1,peerId:"",error:n.error||"name not found"}:{found:!0,peerId:(0,W0t.toString)(n.peerId,"base58btc"),error:""}}finally{await t.stop()}}var z0t,H0t,F0t,$0t,V0t,K0t,W0t,q3e,G0t,Y0t,vEr,wEr,L0t,F3e=P(()=>{"use strict";p3e();z0t=require("libp2p"),H0t=require("@libp2p/tcp"),F0t=require("@chainsafe/libp2p-noise"),$0t=require("@chainsafe/libp2p-yamux"),V0t=require("@libp2p/crypto/keys"),K0t=require("@multiformats/multiaddr"),W0t=require("uint8arrays/to-string"),q3e=new TextEncoder,G0t=new TextDecoder;Y0t="/subway/p2p/1.0.0",vEr=15e3,wEr=15e3,L0t=1<<20});var _B={};Mi(_B,{DEFAULT_VISA_RELAY_MULTIADDR:()=>e1t,MESH:()=>to,RELAY_URL:()=>gB,connectOrThrow:()=>rS,ensureMailbox:()=>r9e,isSubwayEnabled:()=>J3e,listRegistered:()=>t9e,loadBindingFor:()=>X3e,loadRegistry:()=>h4,makeClient:()=>tS,maybeMintVisaBinding:()=>r1t,meshName:()=>Cp,pairedVisaBinding:()=>n1t,readInbox:()=>PEr,registerName:()=>bB,resolveActingName:()=>OZ,resolveMeshName:()=>Q3e,seedSubwayKeyFromTapAgent:()=>t1t,sendMessage:()=>e9e,sendVia:()=>IEr,subwayKeyPath:()=>IZ,visaRelayMultiaddr:()=>G3e});function G3e(e=process.env){return e.SUBWAY_RELAY_MULTIADDR??e1t}function Cp(e){return e.includes(".")?e:`${e}.${to}`}function J3e(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 Z3e(){_o.mkdirSync(Y3e,{recursive:!0,mode:448})}function SEr(e){return e.replace(/[^a-zA-Z0-9_.-]/g,"_")}function IZ(e){return eS.join(Y3e,`${SEr(e)}.key`)}function h4(){if(!_o.existsSync(W3e))return{};try{return JSON.parse(_o.readFileSync(W3e,"utf8"))}catch{return{}}}function V3e(e){Z3e(),_o.writeFileSync(W3e,JSON.stringify(e,null,2),{mode:384})}function K3e(){try{return yB.userInfo().username}catch{return"local"}}function t1t(e){if(_o.existsSync(e)||!_o.existsSync($3e))return null;let t=_o.readdirSync($3e).filter(n=>n.endsWith(".json"));if(t.length===0)return null;let r=t.map(n=>eS.join($3e,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=MS(n.private_key_jwk);return Z3e(),_o.writeFileSync(e,Buffer.from(i),{mode:384}),n.agent_id??null}catch{return null}}function tS(e,t={}){return new D0t({name:Cp(e),url:gB,keyPath:IZ(e),autoReconnect:t.autoReconnect??!1,binding:t.binding})}function X3e(e){if(to!=="visa")return;let t=h4()[e];if(t?.binding&&!(t.bindingExpiresAt&&Date.parse(t.bindingExpiresAt)<=Date.now()))return t.binding}async function rS(e,t=15e3){await Promise.race([e.connect(),new Promise((r,n)=>setTimeout(()=>n(new Error(`Subway relay connect timed out after ${t}ms (${gB})`)),t))])}function OZ(e){if(e)return e;let t=Object.keys(h4());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 r1t(e){if(to!=="visa")return null;let t=process.env.VISA_CLI_API_KEY?.trim();if(!t)throw new Qm("No enrolled V4 agent or Visa Key is available for the trusted .visa mesh.","no_key");try{return await dQ({authUrl:ga(),apiKey:t,seed:FN(IZ(e)),name:Cp(e)})}catch(r){if(r instanceof Qm)throw r;return console.warn(`[subway] Visa binding not minted: ${r instanceof Error?r.message:String(r)}`),null}}function n1t(e=Date.now()){let t=n9e();if(!t?.binding_jwt)return null;let r=vB(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 bB(e){let t=IZ(e),r=t1t(t),n=Cp(e);to==="visa"&&!_o.existsSync(t)&&(Z3e(),_o.writeFileSync(t,(0,Q0t.randomBytes)(32),{mode:384}));let i=to==="visa"?n1t():null,o,s={};if(i)o=i.binding,s={binding:i.binding,bindingExpiresAt:i.bindingExpiresAt};else{let u=await r1t(e);u&&(o=u.binding,s={binding:u.binding,bindingExpiresAt:new Date(Date.now()+u.expires_in*1e3).toISOString()})}let a=to==="visa"?G3e():process.env.SUBWAY_RELAY_MULTIADDR;if(to==="visa"&&a){let{registerDirect:u}=await Promise.resolve().then(()=>(F3e(),H3e)),d=await u({relayMultiaddr:a,seed:FN(t),name:n,binding:o});if(!d.success)throw new Error(`.visa relay admission failed: ${d.error||"unknown"}`);let l=h4();return l[e]={relayName:n,mesh:to,peerId:d.peerId,owner:K3e(),tapAgentId:r,registeredAt:new Date().toISOString(),...s},V3e(l),{relayName:n,mesh:to,peerId:d.peerId,tapAgentId:r,...o?{binding:o}:{}}}if(to==="visa"&&!process.env.SUBWAY_RELAY){let u=h4();return u[e]={relayName:n,mesh:to,peerId:null,owner:K3e(),tapAgentId:r,registeredAt:new Date().toISOString(),...s},V3e(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=tS(e,{autoReconnect:!1,binding:o});try{await rS(c);let u=h4();return u[e]={relayName:n,mesh:to,peerId:c.peerId,owner:K3e(),tapAgentId:r,registeredAt:new Date().toISOString(),...s},V3e(u),{relayName:n,mesh:to,peerId:c.peerId,tapAgentId:r,...o?{binding:o}:{}}}finally{c.disconnect()}}async function Q3e(e){let t=Cp(e),r=to==="visa"?G3e():process.env.SUBWAY_RELAY_MULTIADDR;if(to==="visa"&&r){let{resolveDirect:n}=await Promise.resolve().then(()=>(F3e(),H3e)),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 e9e(e,t,r){let n=tS(e,{autoReconnect:!1,binding:X3e(e)});try{await rS(n);let i=Cp(t);return await n.sendSigned(i,"chat",r),{to:i,as:Cp(e)}}finally{n.disconnect()}}function t9e(){let e=h4();return Object.entries(e).map(([t,r])=>({name:t,...r}))}async function r9e(e){let t=PZ.get(e);if(t)return{relayName:Cp(e),peerId:t.client.peerId};let r=tS(e,{autoReconnect:!0,binding:X3e(e)}),n=[];return r.onMessage(i=>{n.push({from:i.fromName,text:i.payload,ts:i.timestampMs,verified:!!i.verified}),n.length>TEr&&n.shift()}),PZ.set(e,{client:r,buffer:n}),await rS(r),{relayName:Cp(e),peerId:r.peerId}}async function PEr(e,t=20,r=!1){await r9e(e);let n=PZ.get(e);if(!n)return[];let i=n.buffer.slice(-t);return r&&(n.buffer.length=0),i}async function IEr(e,t,r){await r9e(e);let n=PZ.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,yB,eS,Q0t,to,e1t,gB,Y3e,W3e,$3e,PZ,TEr,y4=P(()=>{"use strict";j3e();J2();_o=ve(require("fs")),yB=ve(require("os")),eS=ve(require("path")),Q0t=require("crypto");F2();nw();wB();to=process.env.SUBWAY_MESH??"relay",e1t="/dns4/subway-relay-visa.fly.dev/tcp/9100/p2p/12D3KooWM2q6SXgKFxj5wvnJ7gTD4XPjhvc5tHVVjDBrZRnJ3CKU";gB=process.env.SUBWAY_RELAY??"wss://relay.subway.dev/ws";Y3e=eS.join(yB.homedir(),".visa-cli","subway"),W3e=eS.join(Y3e,"registry.json"),$3e=eS.join(yB.homedir(),".visa-cli","agents");PZ=new Map,TEr=200});async function OEr(e){if(process.env.SUBWAY_MESH==="visa")try{await bB(e)}catch(t){ke.warn("subway:pairing-auto-register-failed",{name:e,mesh:"visa",error:t instanceof Error?t.message:String(t)})}}function CEr(e=process.env.VISA_V4_HOME||nS.join(i9e.homedir(),".visa-v4")){try{let t=Yc.readFileSync(nS.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 o9e(e,t,r=xB){return nS.join(r,`${e}.${t}.json`)}function o1t(e,t=xB){Yc.mkdirSync(t,{recursive:!0,mode:448}),Yc.writeFileSync(o9e(e.pairingId,e.role,t),JSON.stringify(e,null,2),{mode:384})}function EB(e,t,r=xB){Yc.rmSync(o9e(e,t,r),{force:!0})}function CZ(e,t,r=xB){try{let n=JSON.parse(Yc.readFileSync(o9e(e,t,r),"utf8"));return n?.pairingId===e&&n.role===t?n:null}catch{return null}}function s9e(e=xB){return Yc.existsSync(e)?Yc.readdirSync(e).filter(r=>r.endsWith(".human.json")).map(r=>{try{return JSON.parse(Yc.readFileSync(nS.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 g4(e,t,r){let n=await r(e,{...t,headers:{"X-Source":"cli","X-Visa-CLI-Version":i1t,...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 a9e(e={}){let t=(e.authUrl??ga()).replace(/\/+$/,""),r=DAe(),n=CEr(),{body:i}=await g4(`${t}/v4/agent-pairings`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cliChallenge:LAe(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 o1t(o,e.pairingDir),o}async function kZ(e){let{pairing:t}=e,{body:r}=await g4(`${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 c9e(e){let t=(e.authUrl??ga()).replace(/\/+$/,""),{body:r}=await g4(`${t}/v4/agent-pairings/${encodeURIComponent(e.pairingId)}`,{method:"GET",cache:"no-store"},e.fetchImpl??fetch);return r}function s1t(e,t){return Buffer.from(ew(e,Buffer.from(t,"utf8"))).toString("base64url")}async function u9e(e){let t=(e.authUrl??ga()).replace(/\/+$/,""),r=e.fetchImpl??fetch,n=await c9e({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=LN();i=m.secretKey,s=tw(i),o=kh(m.publicKey)}let a=rw(o),c=eZ(),u=zAe(),d={runtime:e.runtime,contextLabel:e.contextLabel,platform:`${process.platform}/${process.arch}`,cliVersion:i1t},l=s1t(i,HAe({pairingId:e.pairingId,serverNonce:n.serverNonce,claimTokenHash:cQ(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()};o1t(p,e.pairingDir);let{body:f}=await g4(`${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!==zN(e.pairingId,u))throw new Error("pairing server returned a mismatched verification code");return{pending:p,verificationCode:f.verificationCode}}async function RZ(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 g4(`${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=QY(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))||$Ae(s.artifacts)!==s.artifactHash)throw new Error("pairing artifact integrity check failed");let f=s1t(Buffer.from(e.pending.privateKeyJwk.d,"base64url"),FAe({pairingId:e.pending.pairingId,agentJkt:e.pending.agentJkt,termsHash:c.termsHash,artifactHash:s.artifactHash}));if((await g4(`${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 XY({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}:{}}),d9e(h,e.agentDir),await OEr(u),EB(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 a1t(e){let{pairing:t}=e,{body:r}=await g4(`${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"&&EB(t.pairingId,"human",e.pairingDir),r}var Yc,i9e,nS,i1t,xB,c1t=P(()=>{"use strict";Yc=ve(require("node:fs")),i9e=ve(require("node:os")),nS=ve(require("node:path"));J2();nw();y4();F2();eu();tZ();wB();i1t="4.1.0-rc.33",xB=nS.join(i9e.homedir(),".visa-cli","pairings")});var y1t={};Mi(y1t,{agentFilePath:()=>SB,agentFormatIsJson:()=>AB,attachAgentCommand:()=>h9e,claimOptsFromFlags:()=>f9e,decodeBindingClaims:()=>vB,enrollClaimEnvelope:()=>m1t,isAgentCommandEnabled:()=>f1t,isAgentRecord:()=>TB,listAgentFiles:()=>BZ,newestAgentRecord:()=>n9e,readAgent:()=>m9e,resolveAgentByRef:()=>h1t,writeAgent:()=>d9e});function TB(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 f1t(){return!0}function AB(e){return e==="json"}function m1t(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 f9e(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 l9e(e){return`${e.opened?`\u2713 Enrollment link opened in your browser.
20689
+ ${e.nonce}`;return pxr.encode(r)}function hxr(e,t,r,n,i,o,s){return mxr({messageId:e,senderPeerId:t,senderName:r,timestampMs:n,messageType:i,payload:o,nonce:s})}function yxr(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 Lxr(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name==="Uint8Array"&&"BYTES_PER_ELEMENT"in e&&e.BYTES_PER_ELEMENT===1}function U0t(e,t,r=""){let n=Lxr(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 Xmt(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 zxr(e,t){U0t(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 P3e(...e){for(let t=0;t<e.length;t++)e[t].fill(0)}function w3e(e){return new DataView(e.buffer,e.byteOffset,e.byteLength)}function Hxr(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 Vxr(e,t=!1){return t?{h:Number(e&fZ),l:Number(e>>Qmt&fZ)}:{h:Number(e>>Qmt&fZ)|0,l:Number(e&fZ)|0}}function Kxr(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}=Vxr(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 iEr(){return Uxr.randomSecretKey()}function M0t(e){return Nxr(e)}function oEr(){let e=iEr();return{secretKey:e,publicKey:M0t(e)}}function sEr(e){if((0,A2.existsSync)(e)){let r=(0,A2.readFileSync)(e),n=new Uint8Array(r.buffer.slice(r.byteOffset,r.byteOffset+32));return{secretKey:n,publicKey:M0t(n)}}let t=oEr();return(0,A2.mkdirSync)((0,i0t.dirname)(e),{recursive:!0}),(0,A2.writeFileSync)(e,new Uint8Array(t.secretKey)),t}function aEr(e){let{secretKey:t,publicKey:r}=sEr(e);return{privateKey:t,publicKey:r}}async function cEr(e,t,r,n,i,o,s,a){let c=hxr(t,r,n,i,o,s,a);return{signature:await uxr(e,c),signatureInput:fxr.subwayAgentMsgV1}}function n0t(e){return lxr(e)}var A2,i0t,g9r,b9r,_9r,v9r,w9r,o0t,bZ,yZ,Bmt,Nmt,m3e,h3e,x9r,AZ,E9r,Cs,A9r,S9r,T9r,fh,SZ,I3e,s0t,O3e,uh,jmt,C3e,a0t,P9r,ZA,I9r,_Z,a4,Rn,Umt,Ke,c0t,u0t,d0t,l0t,y3e,x3e,fB,m4,p4,p0t,f0t,Dm,O9r,qmt,C9r,E3e,k3e,k9r,m0t,R9r,B9r,N9r,j9r,U9r,q9r,R3e,h0t,vZ,M9r,y0t,A3e,D9r,Mmt,Dmt,L9r,_0t,v0t,b2,fa,dZ,zmt,Hmt,Fmt,WA,GA,lZ,pZ,W9r,G9r,J9r,Y9r,Z9r,X9r,Q9r,_2,exr,txr,w0t,rxr,nxr,v2,w2,ixr,oxr,sxr,axr,$mt,dxr,x0t,pxr,fxr,E0t,gxr,A0t,wZ,gZ,Vmt,Kmt,b3e,_3e,bxr,XA,_xr,ks,vxr,wxr,xxr,S2,TZ,B3e,S0t,T0t,lh,Wmt,P0t,I0t,Exr,N3e,Axr,xZ,u4,Gn,Gmt,We,Sxr,Txr,O0t,C0t,v3e,S3e,mB,QA,f4,Pxr,k0t,zm,Ixr,Jmt,Oxr,Cxr,kxr,Rxr,R0t,Bxr,B0t,Nxr,N0t,jxr,Uxr,EZ,qxr,j0t,T3e,Mxr,Ymt,Zmt,Dxr,Fxr,$xr,ma,fZ,Qmt,e0t,t0t,JA,YA,mZ,hZ,Wxr,Gxr,Jxr,Yxr,Zxr,Xxr,q0t,Qxr,eEr,x2,E2,tEr,rEr,nEr,r0t,uEr,dEr,D0t,j3e=P(()=>{"use strict";l3e();l3e();p3e();A2=require("fs"),i0t=require("path");g9r=1e3,b9r=10,_9r=3e4,v9r=3e4,w9r=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??g9r,this.maxReconnectAttempts=e.maxReconnectAttempts??b9r,this.pingInterval=e.pingInterval??_9r}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=h9r();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=y9r(this.reconnectInterval*Math.pow(2,this.reconnectAttempt),this.reconnectInterval,v9r);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)}}},o0t=Object.freeze({p:0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffedn,n:0x1000000000000000000000000000000014def9dea2f79cd65812631a5cf5d3edn,h:8n,a:0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffecn,d:0x52036cee2b6ffe738cc740797779e89800700a4d4141d8ab75eb4dca135978a3n,Gx:0x216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51an,Gy:0x6666666666666666666666666666666666666666666666666666666666666658n}),{p:bZ,n:yZ,Gx:Bmt,Gy:Nmt,a:m3e,d:h3e,h:x9r}=o0t,AZ=32,E9r=(...e)=>{"captureStackTrace"in Error&&typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(...e)},Cs=(e="")=>{let t=new Error(e);throw E9r(t,Cs),t},A9r=e=>typeof e=="bigint",S9r=e=>typeof e=="string",T9r=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=T9r(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},SZ=e=>new Uint8Array(e),I3e=e=>Uint8Array.from(e),s0t=(e,t)=>e.toString(16).padStart(t,"0"),O3e=e=>Array.from(fh(e)).map(t=>s0t(t,2)).join(""),uh={_0:48,_9:57,A:65,F:70,a:97,f:102},jmt=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)},C3e=e=>{let t="hex invalid";if(!S9r(e))return Cs(t);let r=e.length,n=r/2;if(r%2)return Cs(t);let i=SZ(n);for(let o=0,s=0;o<n;o++,s+=2){let a=jmt(e.charCodeAt(s)),c=jmt(e.charCodeAt(s+1));if(a===void 0||c===void 0)return Cs(t);i[o]=a*16+c}return i},a0t=()=>globalThis?.crypto,P9r=()=>a0t()?.subtle??Cs("crypto.subtle must be defined, consider polyfill"),ZA=(...e)=>{let t=0;for(let i of e)t+=fh(i).length;let r=SZ(t),n=0;return e.forEach(i=>{r.set(i,n),n+=i.length}),r},I9r=(e=AZ)=>a0t().getRandomValues(SZ(e)),_Z=BigInt,a4=(e,t,r,n="bad number: out of range")=>{if(!A9r(e))throw new TypeError(n);if(t<=e&&e<r)return e;throw new RangeError(n)},Rn=(e,t=bZ)=>{let r=e%t;return r>=0n?r:t+r},Umt=(1n<<255n)-1n,Ke=e=>{e<0n&&Cs("negative coordinate");let t=(e>>255n)*19n+(e&Umt);return t=(t>>255n)*19n+(t&Umt),t%bZ},c0t=e=>Rn(e,yZ),u0t=(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")},d0t=e=>{let t=h0t[e];return typeof t!="function"&&Cs("hashes."+e+" not set"),t},l0t=e=>fh(e,64,"digest"),y3e=e=>e instanceof fB?e:Cs("Point expected"),x3e=2n**256n,fB=class c4{static BASE;static ZERO;X;Y;Z;T;constructor(t,r,n,i){let o=x3e;this.X=a4(t,0n,o),this.Y=a4(r,0n,o),this.Z=a4(n,1n,o),this.T=a4(i,0n,o),Object.freeze(this)}static CURVE(){return o0t}static fromAffine(t){return new c4(t.x,t.y,1n,Ke(t.x*t.y))}static fromBytes(t,r=!1){let n=h3e,i=I3e(fh(t,AZ)),o=t[31];i[31]=o&-129;let s=f0t(i);a4(s,0n,r?x3e:bZ);let c=Ke(s*s),u=Rn(c-1n),d=Ke(n*c+1n),{isValid:l,value:p}=C9r(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 c4(p,s,1n,Ke(p*s))}static fromHex(t,r){return c4.fromBytes(C3e(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 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}=y3e(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(p4)}negate(){return new c4(Rn(-this.X),this.Y,this.Z,Rn(-this.T))}double(){let{X:t,Y:r,Z:n}=this,i=m3e,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 c4(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=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 c4(v,E,S,A)}subtract(t){return this.add(y3e(t).negate())}multiply(t,r=!0){if(!r&&t===0n||(a4(t,1n,yZ),!r&&this.is0()))return p4;if(t===1n)return this;if(this.equals(m4))return L9r(t).p;let n=p4,i=m4;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=u0t(n,bZ);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=p0t(r);return n[31]|=t&1n?128:0,n}toHex(){return O3e(this.toBytes())}clearCofactor(){return this.multiply(_Z(x9r),!1)}isSmallOrder(){return this.clearCofactor().is0()}isTorsionFree(){let t=this.multiply(yZ/2n,!1).double();return yZ%2n&&(t=t.add(this)),t.is0()}},m4=new fB(Bmt,Nmt,1n,Rn(Bmt*Nmt)),p4=new fB(0n,1n,1n,0n);fB.BASE=m4;fB.ZERO=p4;p0t=e=>C3e(s0t(a4(e,0n,x3e),64)).reverse(),f0t=e=>_Z("0x"+O3e(I3e(fh(e)).reverse())),Dm=(e,t)=>{let r=e;for(;t-- >0n;)r=Ke(r*r);return r},O9r=e=>{let t=Ke(e*e),r=Ke(t*e),n=Ke(Dm(r,2n)*r),i=Ke(Dm(n,1n)*e),o=Ke(Dm(i,5n)*i),s=Ke(Dm(o,10n)*o),a=Ke(Dm(s,20n)*s),c=Ke(Dm(a,40n)*a),u=Ke(Dm(c,80n)*c),d=Ke(Dm(u,80n)*c),l=Ke(Dm(d,10n)*o);return{pow_p_5_8:Ke(Dm(l,2n)*e),b2:r}},qmt=0x2b8324804fc1df0b2b4d00993dfbd7a72f431806ad2fe478c4ee1b274a0ea0b0n,C9r=(e,t)=>{let r=Ke(t*Ke(t*t)),n=Ke(Ke(r*r)*t),i=O9r(Ke(e*n)).pow_p_5_8,o=Ke(e*Ke(r*i)),s=Ke(t*Ke(o*o)),a=o,c=Ke(o*qmt),u=s===e,d=s===Rn(-e),l=s===Rn(-e*qmt);return u&&(o=a),(d||l)&&(o=c),(Rn(o)&1n)===1n&&(o=Rn(-o)),{isValid:u||d,value:o}},E3e=e=>c0t(f0t(e)),k3e=(...e)=>Promise.resolve(d0t("sha512Async")(ZA(...e))).then(l0t),k9r=(...e)=>l0t(d0t("sha512")(ZA(...e))),m0t=e=>{let t=I3e(e),r=t.slice(0,32);r[0]&=248,r[31]&=127,r[31]|=64;let n=t.slice(32,64),i=E3e(r),o=m4.multiply(i),s=o.toBytes();return{head:r,prefix:n,scalar:i,point:o,pointBytes:s}},R9r=e=>k3e(fh(e,AZ)).then(m0t),B9r=e=>m0t(k9r(fh(e,AZ))),N9r=e=>B9r(e).pointBytes,j9r=e=>k3e(e.hashable).then(e.finish),U9r=(e,t,r)=>{let{pointBytes:n,scalar:i}=e,o=E3e(t),s=m4.multiply(o).toBytes();return{hashable:ZA(s,n,r),finish:u=>{let d=c0t(o+E3e(u)*i);return fh(ZA(s,p0t(d)),64)}}},q9r=async(e,t)=>{let r=fh(e),n=await R9r(t),i=await k3e(n.prefix,r);return j9r(U9r(n,i,r))},R3e=Object.freeze({bytesToHex:O3e,hexToBytes:C3e,concatBytes:ZA,mod:Rn,invert:u0t,randomBytes:I9r}),h0t={sha512Async:async e=>{let t=P9r(),r=ZA(e);return SZ(await t.digest("SHA-512",r.buffer))},sha512:void 0},vZ=8,M9r=256,y0t=Math.ceil(M9r/vZ)+1,A3e=2**(vZ-1),D9r=()=>{let e=[],t=m4,r=t;for(let n=0;n<y0t;n++){r=t,e.push(r);for(let i=1;i<A3e;i++)r=r.add(t),e.push(r);t=r.double()}return e},Mmt=void 0,Dmt=(e,t)=>{let r=t.negate();return e?r:t},L9r=e=>{let t=Mmt||(Mmt=D9r()),r=p4,n=m4,i=2**vZ,o=i,s=_Z(i-1),a=_Z(vZ);for(let c=0;c<y0t;c++){let u=Number(e&s);e>>=a,u>A3e&&(u-=o,e+=1n);let d=c*A3e,l=d,p=d+Math.abs(u)-1,f=c%2!==0,m=u<0;u===0?n=n.add(Dmt(f,t[l])):r=r.add(Dmt(m,t[p]))}return e!==0n&&Cs("invalid wnaf"),{p:r,f:n}};_0t=e=>({oid:Uint8Array.from([6,9,96,134,72,1,101,3,4,2,e])});v0t=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){Lmt(this),g0t(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){Lmt(this),H9r(e,this),this.finished=!0;let{buffer:t,view:r,blockLen:n,isLE:i}=this,{pos:o}=this;t[o++]=128,pB(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()}},b2=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]),dZ=BigInt(2**32-1),zmt=BigInt(32);Hmt=(e,t,r)=>e>>>r,Fmt=(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,lZ=(e,t,r)=>e<<64-r|t>>>r-32,pZ=(e,t,r)=>e>>>r-32|t<<64-r;W9r=(e,t,r)=>(e>>>0)+(t>>>0)+(r>>>0),G9r=(e,t,r,n)=>t+r+n+(e/2**32|0)|0,J9r=(e,t,r,n)=>(e>>>0)+(t>>>0)+(r>>>0)+(n>>>0),Y9r=(e,t,r,n,i)=>t+r+n+i+(e/2**32|0)|0,Z9r=(e,t,r,n,i)=>(e>>>0)+(t>>>0)+(r>>>0)+(n>>>0)+(i>>>0),X9r=(e,t,r,n,i,o)=>t+r+n+i+o+(e/2**32|0)|0,Q9r=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]),_2=new Uint32Array(64),exr=class extends v0t{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)_2[d]=e.getUint32(t,!1);for(let d=16;d<64;d++){let l=_2[d-15],p=_2[d-2],f=Lm(l,7)^Lm(l,18)^l>>>3,m=Lm(p,17)^Lm(p,19)^p>>>10;_2[d]=m+_2[d-7]+f+_2[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=Lm(s,6)^Lm(s,11)^Lm(s,25),p=u+l+F9r(s,a,c)+Q9r[d]+_2[d]|0,m=(Lm(r,2)^Lm(r,13)^Lm(r,22))+$9r(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(){pB(_2)}destroy(){this.destroyed=!0,this.set(0,0,0,0,0,0,0,0),pB(this.buffer)}},txr=class extends exr{A=b2[0]|0;B=b2[1]|0;C=b2[2]|0;D=b2[3]|0;E=b2[4]|0;F=b2[5]|0;G=b2[6]|0;H=b2[7]|0;constructor(){super(32)}},w0t=K9r(["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))),rxr=w0t[0],nxr=w0t[1],v2=new Uint32Array(80),w2=new Uint32Array(80),ixr=class extends v0t{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)v2[x]=e.getUint32(t),w2[x]=e.getUint32(t+=4);for(let x=16;x<80;x++){let _=v2[x-15]|0,v=w2[x-15]|0,E=WA(_,v,1)^WA(_,v,8)^Hmt(_,v,7),A=GA(_,v,1)^GA(_,v,8)^Fmt(_,v,7),S=v2[x-2]|0,C=w2[x-2]|0,I=WA(S,C,19)^lZ(S,C,61)^Hmt(S,C,6),k=GA(S,C,19)^pZ(S,C,61)^Fmt(S,C,6),q=J9r(A,k,w2[x-7],w2[x-16]),j=Y9r(q,E,I,v2[x-7],v2[x-16]);v2[x]=j|0,w2[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)^lZ(d,l,41),v=GA(d,l,14)^GA(d,l,18)^pZ(d,l,41),E=d&p^~d&m,A=l&f^~l&h,S=Z9r(w,v,A,nxr[x],w2[x]),C=X9r(S,y,_,E,rxr[x],v2[x]),I=S|0,k=WA(r,n,28)^lZ(r,n,34)^lZ(r,n,39),q=GA(r,n,28)^pZ(r,n,34)^pZ(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=W9r(I,q,U);r=G9r(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(){pB(v2,w2)}destroy(){this.destroyed=!0,pB(this.buffer),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}},oxr=class extends ixr{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)}},sxr=b0t(()=>new txr,_0t(1)),axr=b0t(()=>new oxr,_0t(3)),$mt=h0t;$mt.sha512||($mt.sha512=e=>axr(e));dxr=R3e.bytesToHex,x0t=R3e.hexToBytes;R3e.concatBytes;pxr=new TextEncoder,fxr={subwayAgentMsgV1:"message_id;sender_peer_id;sender_name;timestamp_ms;message_type;payload_hash;nonce"};x0t("302e020100300506032b657004220420");x0t("302a300506032b6570032100");E0t="ABCDEFGHJKLMNPQRSTUVWXYZ23456789",gxr=E0t.length-1;if((E0t.length&gxr)!==0)throw new Error("agent pairing code alphabet must contain a power-of-two number of symbols");A0t=Object.freeze({p:0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffedn,n:0x1000000000000000000000000000000014def9dea2f79cd65812631a5cf5d3edn,h:8n,a:0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffecn,d:0x52036cee2b6ffe738cc740797779e89800700a4d4141d8ab75eb4dca135978a3n,Gx:0x216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51an,Gy:0x6666666666666666666666666666666666666666666666666666666666666658n}),{p:wZ,n:gZ,Gx:Vmt,Gy:Kmt,a:b3e,d:_3e,h:bxr}=A0t,XA=32,_xr=(...e)=>{"captureStackTrace"in Error&&typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(...e)},ks=(e="")=>{let t=new Error(e);throw _xr(t,ks),t},vxr=e=>typeof e=="bigint",wxr=e=>typeof e=="string",xxr=e=>e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name==="Uint8Array"&&"BYTES_PER_ELEMENT"in e&&e.BYTES_PER_ELEMENT===1,S2=(e,t,r="")=>{let n=xxr(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},TZ=e=>new Uint8Array(e),B3e=e=>Uint8Array.from(e),S0t=(e,t)=>e.toString(16).padStart(t,"0"),T0t=e=>Array.from(S2(e)).map(t=>S0t(t,2)).join(""),lh={_0:48,_9:57,A:65,F:70,a:97,f:102},Wmt=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)},P0t=e=>{let t="hex invalid";if(!wxr(e))return ks(t);let r=e.length,n=r/2;if(r%2)return ks(t);let i=TZ(n);for(let o=0,s=0;o<n;o++,s+=2){let a=Wmt(e.charCodeAt(s)),c=Wmt(e.charCodeAt(s+1));if(a===void 0||c===void 0)return ks(t);i[o]=a*16+c}return i},I0t=()=>globalThis?.crypto,Exr=()=>I0t()?.subtle??ks("crypto.subtle must be defined, consider polyfill"),N3e=(...e)=>{let t=0;for(let i of e)t+=S2(i).length;let r=TZ(t),n=0;return e.forEach(i=>{r.set(i,n),n+=i.length}),r},Axr=(e=XA)=>I0t().getRandomValues(TZ(e)),xZ=BigInt,u4=(e,t,r,n="bad number: out of range")=>{if(!vxr(e))throw new TypeError(n);if(t<=e&&e<r)return e;throw new RangeError(n)},Gn=(e,t=wZ)=>{let r=e%t;return r>=0n?r:t+r},Gmt=(1n<<255n)-1n,We=e=>{e<0n&&ks("negative coordinate");let t=(e>>255n)*19n+(e&Gmt);return t=(t>>255n)*19n+(t&Gmt),t%wZ},Sxr=e=>Gn(e,gZ),Txr=(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")},O0t=e=>{let t=N0t[e];return typeof t!="function"&&ks("hashes."+e+" not set"),t},C0t=e=>S2(e,64,"digest"),v3e=e=>e instanceof mB?e:ks("Point expected"),S3e=2n**256n,mB=class d4{static BASE;static ZERO;X;Y;Z;T;constructor(t,r,n,i){let o=S3e;this.X=u4(t,0n,o),this.Y=u4(r,0n,o),this.Z=u4(n,1n,o),this.T=u4(i,0n,o),Object.freeze(this)}static CURVE(){return A0t}static fromAffine(t){return new d4(t.x,t.y,1n,We(t.x*t.y))}static fromBytes(t,r=!1){let n=_3e,i=B3e(S2(t,XA)),o=t[31];i[31]=o&-129;let s=k0t(i);u4(s,0n,r?S3e:wZ);let c=We(s*s),u=Gn(c-1n),d=We(n*c+1n),{isValid:l,value:p}=Oxr(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 d4(p,s,1n,We(p*s))}static fromHex(t,r){return d4.fromBytes(P0t(t),r)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}assertValidity(){let t=b3e,r=_3e,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}=v3e(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(f4)}negate(){return new d4(Gn(-this.X),this.Y,this.Z,Gn(-this.T))}double(){let{X:t,Y:r,Z:n}=this,i=b3e,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 d4(m,h,w,y)}add(t){let{X:r,Y:n,Z:i,T:o}=this,{X:s,Y:a,Z:c,T:u}=v3e(t),d=b3e,l=_3e,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 d4(v,E,S,A)}subtract(t){return this.add(v3e(t).negate())}multiply(t,r=!0){if(!r&&t===0n||(u4(t,1n,gZ),!r&&this.is0()))return f4;if(t===1n)return this;if(this.equals(QA))return Dxr(t).p;let n=f4,i=QA;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(f4))return{x:0n,y:1n};let i=Txr(n,wZ);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=Pxr(r);return n[31]|=t&1n?128:0,n}toHex(){return T0t(this.toBytes())}clearCofactor(){return this.multiply(xZ(bxr),!1)}isSmallOrder(){return this.clearCofactor().is0()}isTorsionFree(){let t=this.multiply(gZ/2n,!1).double();return gZ%2n&&(t=t.add(this)),t.is0()}},QA=new mB(Vmt,Kmt,1n,Gn(Vmt*Kmt)),f4=new mB(0n,1n,1n,0n);mB.BASE=QA;mB.ZERO=f4;Pxr=e=>P0t(S0t(u4(e,0n,S3e),64)).reverse(),k0t=e=>xZ("0x"+T0t(B3e(S2(e)).reverse())),zm=(e,t)=>{let r=e;for(;t-- >0n;)r=We(r*r);return r},Ixr=e=>{let t=We(e*e),r=We(t*e),n=We(zm(r,2n)*r),i=We(zm(n,1n)*e),o=We(zm(i,5n)*i),s=We(zm(o,10n)*o),a=We(zm(s,20n)*s),c=We(zm(a,40n)*a),u=We(zm(c,80n)*c),d=We(zm(u,80n)*c),l=We(zm(d,10n)*o);return{pow_p_5_8:We(zm(l,2n)*e),b2:r}},Jmt=0x2b8324804fc1df0b2b4d00993dfbd7a72f431806ad2fe478c4ee1b274a0ea0b0n,Oxr=(e,t)=>{let r=We(t*We(t*t)),n=We(We(r*r)*t),i=Ixr(We(e*n)).pow_p_5_8,o=We(e*We(r*i)),s=We(t*We(o*o)),a=o,c=We(o*Jmt),u=s===e,d=s===Gn(-e),l=s===Gn(-e*Jmt);return u&&(o=a),(d||l)&&(o=c),(Gn(o)&1n)===1n&&(o=Gn(-o)),{isValid:u||d,value:o}},Cxr=e=>Sxr(k0t(e)),kxr=(...e)=>Promise.resolve(O0t("sha512Async")(N3e(...e))).then(C0t),Rxr=(...e)=>C0t(O0t("sha512")(N3e(...e))),R0t=e=>{let t=B3e(e),r=t.slice(0,32);r[0]&=248,r[31]&=127,r[31]|=64;let n=t.slice(32,64),i=Cxr(r),o=QA.multiply(i),s=o.toBytes();return{head:r,prefix:n,scalar:i,point:o,pointBytes:s}},Bxr=e=>kxr(S2(e,XA)).then(R0t),B0t=e=>R0t(Rxr(S2(e,XA))),Nxr=e=>B0t(e).pointBytes,N0t={sha512Async:async e=>{let t=Exr(),r=N3e(e);return TZ(await t.digest("SHA-512",r.buffer))},sha512:void 0},jxr=e=>(e=e===void 0?Axr(XA):e,S2(e,XA)),Uxr=Object.freeze({getExtendedPublicKeyAsync:Bxr,getExtendedPublicKey:B0t,randomSecretKey:jxr}),EZ=8,qxr=256,j0t=Math.ceil(qxr/EZ)+1,T3e=2**(EZ-1),Mxr=()=>{let e=[],t=QA,r=t;for(let n=0;n<j0t;n++){r=t,e.push(r);for(let i=1;i<T3e;i++)r=r.add(t),e.push(r);t=r.double()}return e},Ymt=void 0,Zmt=(e,t)=>{let r=t.negate();return e?r:t},Dxr=e=>{let t=Ymt||(Ymt=Mxr()),r=f4,n=QA,i=2**EZ,o=i,s=xZ(i-1),a=xZ(EZ);for(let c=0;c<j0t;c++){let u=Number(e&s);e>>=a,u>T3e&&(u-=o,e+=1n);let d=c*T3e,l=d,p=d+Math.abs(u)-1,f=c%2!==0,m=u<0;u===0?n=n.add(Zmt(f,t[l])):r=r.add(Zmt(m,t[p]))}return e!==0n&&ks("invalid wnaf"),{p:r,f:n}};Fxr=e=>({oid:Uint8Array.from([6,9,96,134,72,1,101,3,4,2,e])}),$xr=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=w3e(this.buffer)}update(e){Xmt(this),U0t(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=w3e(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){Xmt(this),zxr(e,this),this.finished=!0;let{buffer:t,view:r,blockLen:n,isLE:i}=this,{pos:o}=this;t[o++]=128,P3e(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=w3e(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]),fZ=BigInt(2**32-1),Qmt=BigInt(32);e0t=(e,t,r)=>e>>>r,t0t=(e,t,r)=>e<<32-r|t>>>r,JA=(e,t,r)=>e>>>r|t<<32-r,YA=(e,t,r)=>e<<32-r|t>>>r,mZ=(e,t,r)=>e<<64-r|t>>>r-32,hZ=(e,t,r)=>e>>>r-32|t<<64-r;Wxr=(e,t,r)=>(e>>>0)+(t>>>0)+(r>>>0),Gxr=(e,t,r,n)=>t+r+n+(e/2**32|0)|0,Jxr=(e,t,r,n)=>(e>>>0)+(t>>>0)+(r>>>0)+(n>>>0),Yxr=(e,t,r,n,i)=>t+r+n+i+(e/2**32|0)|0,Zxr=(e,t,r,n,i)=>(e>>>0)+(t>>>0)+(r>>>0)+(n>>>0)+(i>>>0),Xxr=(e,t,r,n,i,o)=>t+r+n+i+o+(e/2**32|0)|0,q0t=Kxr(["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))),Qxr=q0t[0],eEr=q0t[1],x2=new Uint32Array(80),E2=new Uint32Array(80),tEr=class extends $xr{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)x2[x]=e.getUint32(t),E2[x]=e.getUint32(t+=4);for(let x=16;x<80;x++){let _=x2[x-15]|0,v=E2[x-15]|0,E=JA(_,v,1)^JA(_,v,8)^e0t(_,v,7),A=YA(_,v,1)^YA(_,v,8)^t0t(_,v,7),S=x2[x-2]|0,C=E2[x-2]|0,I=JA(S,C,19)^mZ(S,C,61)^e0t(S,C,6),k=YA(S,C,19)^hZ(S,C,61)^t0t(S,C,6),q=Jxr(A,k,E2[x-7],E2[x-16]),j=Yxr(q,E,I,x2[x-7],x2[x-16]);x2[x]=j|0,E2[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 _=JA(d,l,14)^JA(d,l,18)^mZ(d,l,41),v=YA(d,l,14)^YA(d,l,18)^hZ(d,l,41),E=d&p^~d&m,A=l&f^~l&h,S=Zxr(w,v,A,eEr[x],E2[x]),C=Xxr(S,y,_,E,Qxr[x],x2[x]),I=S|0,k=JA(r,n,28)^mZ(r,n,34)^mZ(r,n,39),q=YA(r,n,28)^hZ(r,n,34)^hZ(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=Wxr(I,q,U);r=Gxr(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(){P3e(x2,E2)}destroy(){this.destroyed=!0,P3e(this.buffer),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}},rEr=class extends tEr{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)}},nEr=Hxr(()=>new rEr,Fxr(3)),r0t=N0t;r0t.sha512||(r0t.sha512=e=>nEr(e));uEr="ws://localhost:9001/ws",dEr=3e4,D0t=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=l4(e.name),e.keyPath)try{this._keypair=aEr(e.keyPath)}catch{}this.options={name:this._name,url:e.url??uEr,relay:e.relay??"",autoReconnect:e.autoReconnect??!0,reconnectInterval:e.reconnectInterval??1e3,maxReconnectAttempts:e.maxReconnectAttempts??10,rpcTimeout:e.rpcTimeout??dEr,pingInterval:e.pingInterval??3e4,binding:e.binding??""},this.transport=new w9r({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=yxr(new Uint8Array(t));r&&(this._keypair={privateKey:r,publicKey:cxr(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=n0t(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=l4(e),o=f3e();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=l4(e),o=f3e(),s=Date.now(),a=Math.floor(Math.random()*2**32),c=new TextEncoder().encode(r),{signature:u,signatureInput:d}=await cEr(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=l4(e),o=n?.correlationId??f3e(),s=n?.timeout??this.options.rpcTimeout;return new Promise((a,c)=>{let u=setTimeout(()=>{this.pendingCalls.delete(o),c(new lB(`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=l4(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 lB(`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=d3e(e.code,e.message);this.registerPromise&&e.code==="register_failed"&&(this.registerPromise.reject(new uZ(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=n0t(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 H3e={};Mi(H3e,{SUBWAY_PROTOCOL:()=>Y0t,registerDirect:()=>EEr,resolveDirect:()=>AEr});function M3e(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 D3e(e,t){return e<<3|t}function hB(e,t,r){e.push(D3e(t,2)),M3e(e,r.length);for(let n of r)e.push(n)}function lEr(e,t){let r=[];return hB(r,1,q3e.encode(e)),t&&t.length>0&&hB(r,2,q3e.encode(t)),Uint8Array.from(r)}function pEr(e,t,r){let n=[];return r!==0n&&(n.push(D3e(1,0)),M3e(n,r)),hB(n,2,lEr(e,t)),Uint8Array.from(n)}function fEr(e){let t=[];return hB(t,1,q3e.encode(e)),Uint8Array.from(t)}function mEr(e,t){let r=[];return t!==0n&&(r.push(D3e(1,0)),M3e(r,t)),hB(r,3,fEr(e)),Uint8Array.from(r)}function hEr(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=G0t.decode(e.subarray(u,d)),t=d}else t=L3e(e,t,s)}return r}function yEr(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=G0t.decode(e.subarray(u,d)),t=d}else t=L3e(e,t,s)}return r}function L3e(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 J0t(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=hEr(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=yEr(e.subarray(u,d)),t=d}else t=L3e(e,t,s)}return r}function gEr(e){let t=new Uint8Array(4+e.length);return new DataView(t.buffer).setUint32(0,e.length,!1),t.set(e,4),t}function z3e(e){return new DataView(e.buffer,e.byteOffset,4).getUint32(0,!1)}function bEr(e){if(e.length<4)return{success:!1,error:"short reply (no length prefix)"};let t=z3e(e.subarray(0,4));return e.length<4+t?{success:!1,error:`truncated frame (have ${e.length-4}, need ${t})`}:J0t(e.subarray(4,4+t)).registerNameResponse??{success:!1,error:"reply carried no register_name_response"}}function _Er(e){if(e.length<4)return{peerId:new Uint8Array(0),error:"short reply (no length prefix)"};let t=z3e(e.subarray(0,4));return e.length<4+t?{peerId:new Uint8Array(0),error:`truncated frame (have ${e.length-4}, need ${t})`}:J0t(e.subarray(4,4+t)).resolveNameResponse??{peerId:new Uint8Array(0),error:"reply carried no resolve_name_response"}}function U3e(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 xEr(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>L0t)throw new Error("subway: reply exceeded max size");if(n<0&&r>=4&&(n=4+z3e(U3e(t).subarray(0,4)),n>L0t))throw new Error("subway: declared frame exceeds max size");if(n>=0&&r>=n)return U3e(t).subarray(0,n)}return U3e(t)}async function Z0t(e){return(0,z0t.createLibp2p)({...e?{privateKey:await(0,V0t.generateKeyPairFromSeed)("Ed25519",e)}:{},transports:[(0,H0t.tcp)()],connectionEncrypters:[(0,F0t.noise)()],streamMuxers:[(0,$0t.yamux)()],connectionGater:{denyDialMultiaddr:async()=>!1}})}async function X0t(e,t,r){let n=await e.dialProtocol((0,K0t.multiaddr)(t),Y0t,{signal:AbortSignal.timeout(vEr)});n.send(gEr(r));let i;return Promise.race([xEr(n),new Promise((o,s)=>{i=setTimeout(()=>s(new Error("subway: request timed out")),wEr)})]).finally(()=>clearTimeout(i))}async function EEr(e){let t=await Z0t(e.seed);try{let r=await X0t(t,e.relayMultiaddr,pEr(e.name,e.binding,e.requestId??1n)),n=bEr(r);return{success:n.success,error:n.error,peerId:t.peerId.toString()}}finally{await t.stop()}}async function AEr(e){let t=await Z0t(e.seed);try{let r=await X0t(t,e.relayMultiaddr,mEr(e.name,e.requestId??1n)),n=_Er(r);return n.peerId.length===0?{found:!1,peerId:"",error:n.error||"name not found"}:{found:!0,peerId:(0,W0t.toString)(n.peerId,"base58btc"),error:""}}finally{await t.stop()}}var z0t,H0t,F0t,$0t,V0t,K0t,W0t,q3e,G0t,Y0t,vEr,wEr,L0t,F3e=P(()=>{"use strict";p3e();z0t=require("libp2p"),H0t=require("@libp2p/tcp"),F0t=require("@chainsafe/libp2p-noise"),$0t=require("@chainsafe/libp2p-yamux"),V0t=require("@libp2p/crypto/keys"),K0t=require("@multiformats/multiaddr"),W0t=require("uint8arrays/to-string"),q3e=new TextEncoder,G0t=new TextDecoder;Y0t="/subway/p2p/1.0.0",vEr=15e3,wEr=15e3,L0t=1<<20});var _B={};Mi(_B,{DEFAULT_VISA_RELAY_MULTIADDR:()=>e1t,MESH:()=>to,RELAY_URL:()=>gB,connectOrThrow:()=>rS,ensureMailbox:()=>r9e,isSubwayEnabled:()=>J3e,listRegistered:()=>t9e,loadBindingFor:()=>X3e,loadRegistry:()=>h4,makeClient:()=>tS,maybeMintVisaBinding:()=>r1t,meshName:()=>Cp,pairedVisaBinding:()=>n1t,readInbox:()=>PEr,registerName:()=>bB,resolveActingName:()=>OZ,resolveMeshName:()=>Q3e,seedSubwayKeyFromTapAgent:()=>t1t,sendMessage:()=>e9e,sendVia:()=>IEr,subwayKeyPath:()=>IZ,visaRelayMultiaddr:()=>G3e});function G3e(e=process.env){return e.SUBWAY_RELAY_MULTIADDR??e1t}function Cp(e){return e.includes(".")?e:`${e}.${to}`}function J3e(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 Z3e(){_o.mkdirSync(Y3e,{recursive:!0,mode:448})}function SEr(e){return e.replace(/[^a-zA-Z0-9_.-]/g,"_")}function IZ(e){return eS.join(Y3e,`${SEr(e)}.key`)}function h4(){if(!_o.existsSync(W3e))return{};try{return JSON.parse(_o.readFileSync(W3e,"utf8"))}catch{return{}}}function V3e(e){Z3e(),_o.writeFileSync(W3e,JSON.stringify(e,null,2),{mode:384})}function K3e(){try{return yB.userInfo().username}catch{return"local"}}function t1t(e){if(_o.existsSync(e)||!_o.existsSync($3e))return null;let t=_o.readdirSync($3e).filter(n=>n.endsWith(".json"));if(t.length===0)return null;let r=t.map(n=>eS.join($3e,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=MS(n.private_key_jwk);return Z3e(),_o.writeFileSync(e,Buffer.from(i),{mode:384}),n.agent_id??null}catch{return null}}function tS(e,t={}){return new D0t({name:Cp(e),url:gB,keyPath:IZ(e),autoReconnect:t.autoReconnect??!1,binding:t.binding})}function X3e(e){if(to!=="visa")return;let t=h4()[e];if(t?.binding&&!(t.bindingExpiresAt&&Date.parse(t.bindingExpiresAt)<=Date.now()))return t.binding}async function rS(e,t=15e3){await Promise.race([e.connect(),new Promise((r,n)=>setTimeout(()=>n(new Error(`Subway relay connect timed out after ${t}ms (${gB})`)),t))])}function OZ(e){if(e)return e;let t=Object.keys(h4());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 r1t(e){if(to!=="visa")return null;let t=process.env.VISA_CLI_API_KEY?.trim();if(!t)throw new Qm("No enrolled V4 agent or Visa Key is available for the trusted .visa mesh.","no_key");try{return await dQ({authUrl:ga(),apiKey:t,seed:FN(IZ(e)),name:Cp(e)})}catch(r){if(r instanceof Qm)throw r;return console.warn(`[subway] Visa binding not minted: ${r instanceof Error?r.message:String(r)}`),null}}function n1t(e=Date.now()){let t=n9e();if(!t?.binding_jwt)return null;let r=vB(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 bB(e){let t=IZ(e),r=t1t(t),n=Cp(e);to==="visa"&&!_o.existsSync(t)&&(Z3e(),_o.writeFileSync(t,(0,Q0t.randomBytes)(32),{mode:384}));let i=to==="visa"?n1t():null,o,s={};if(i)o=i.binding,s={binding:i.binding,bindingExpiresAt:i.bindingExpiresAt};else{let u=await r1t(e);u&&(o=u.binding,s={binding:u.binding,bindingExpiresAt:new Date(Date.now()+u.expires_in*1e3).toISOString()})}let a=to==="visa"?G3e():process.env.SUBWAY_RELAY_MULTIADDR;if(to==="visa"&&a){let{registerDirect:u}=await Promise.resolve().then(()=>(F3e(),H3e)),d=await u({relayMultiaddr:a,seed:FN(t),name:n,binding:o});if(!d.success)throw new Error(`.visa relay admission failed: ${d.error||"unknown"}`);let l=h4();return l[e]={relayName:n,mesh:to,peerId:d.peerId,owner:K3e(),tapAgentId:r,registeredAt:new Date().toISOString(),...s},V3e(l),{relayName:n,mesh:to,peerId:d.peerId,tapAgentId:r,...o?{binding:o}:{}}}if(to==="visa"&&!process.env.SUBWAY_RELAY){let u=h4();return u[e]={relayName:n,mesh:to,peerId:null,owner:K3e(),tapAgentId:r,registeredAt:new Date().toISOString(),...s},V3e(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=tS(e,{autoReconnect:!1,binding:o});try{await rS(c);let u=h4();return u[e]={relayName:n,mesh:to,peerId:c.peerId,owner:K3e(),tapAgentId:r,registeredAt:new Date().toISOString(),...s},V3e(u),{relayName:n,mesh:to,peerId:c.peerId,tapAgentId:r,...o?{binding:o}:{}}}finally{c.disconnect()}}async function Q3e(e){let t=Cp(e),r=to==="visa"?G3e():process.env.SUBWAY_RELAY_MULTIADDR;if(to==="visa"&&r){let{resolveDirect:n}=await Promise.resolve().then(()=>(F3e(),H3e)),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 e9e(e,t,r){let n=tS(e,{autoReconnect:!1,binding:X3e(e)});try{await rS(n);let i=Cp(t);return await n.sendSigned(i,"chat",r),{to:i,as:Cp(e)}}finally{n.disconnect()}}function t9e(){let e=h4();return Object.entries(e).map(([t,r])=>({name:t,...r}))}async function r9e(e){let t=PZ.get(e);if(t)return{relayName:Cp(e),peerId:t.client.peerId};let r=tS(e,{autoReconnect:!0,binding:X3e(e)}),n=[];return r.onMessage(i=>{n.push({from:i.fromName,text:i.payload,ts:i.timestampMs,verified:!!i.verified}),n.length>TEr&&n.shift()}),PZ.set(e,{client:r,buffer:n}),await rS(r),{relayName:Cp(e),peerId:r.peerId}}async function PEr(e,t=20,r=!1){await r9e(e);let n=PZ.get(e);if(!n)return[];let i=n.buffer.slice(-t);return r&&(n.buffer.length=0),i}async function IEr(e,t,r){await r9e(e);let n=PZ.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,yB,eS,Q0t,to,e1t,gB,Y3e,W3e,$3e,PZ,TEr,y4=P(()=>{"use strict";j3e();J2();_o=ve(require("fs")),yB=ve(require("os")),eS=ve(require("path")),Q0t=require("crypto");F2();nw();wB();to=process.env.SUBWAY_MESH??"relay",e1t="/dns4/subway-relay-visa.fly.dev/tcp/9100/p2p/12D3KooWM2q6SXgKFxj5wvnJ7gTD4XPjhvc5tHVVjDBrZRnJ3CKU";gB=process.env.SUBWAY_RELAY??"wss://relay.subway.dev/ws";Y3e=eS.join(yB.homedir(),".visa-cli","subway"),W3e=eS.join(Y3e,"registry.json"),$3e=eS.join(yB.homedir(),".visa-cli","agents");PZ=new Map,TEr=200});async function OEr(e){if(process.env.SUBWAY_MESH==="visa")try{await bB(e)}catch(t){ke.warn("subway:pairing-auto-register-failed",{name:e,mesh:"visa",error:t instanceof Error?t.message:String(t)})}}function CEr(e=process.env.VISA_V4_HOME||nS.join(i9e.homedir(),".visa-v4")){try{let t=Yc.readFileSync(nS.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 o9e(e,t,r=xB){return nS.join(r,`${e}.${t}.json`)}function o1t(e,t=xB){Yc.mkdirSync(t,{recursive:!0,mode:448}),Yc.writeFileSync(o9e(e.pairingId,e.role,t),JSON.stringify(e,null,2),{mode:384})}function EB(e,t,r=xB){Yc.rmSync(o9e(e,t,r),{force:!0})}function CZ(e,t,r=xB){try{let n=JSON.parse(Yc.readFileSync(o9e(e,t,r),"utf8"));return n?.pairingId===e&&n.role===t?n:null}catch{return null}}function s9e(e=xB){return Yc.existsSync(e)?Yc.readdirSync(e).filter(r=>r.endsWith(".human.json")).map(r=>{try{return JSON.parse(Yc.readFileSync(nS.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 g4(e,t,r){let n=await r(e,{...t,headers:{"X-Source":"cli","X-Visa-CLI-Version":i1t,...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 a9e(e={}){let t=(e.authUrl??ga()).replace(/\/+$/,""),r=DAe(),n=CEr(),{body:i}=await g4(`${t}/v4/agent-pairings`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cliChallenge:LAe(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 o1t(o,e.pairingDir),o}async function kZ(e){let{pairing:t}=e,{body:r}=await g4(`${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 c9e(e){let t=(e.authUrl??ga()).replace(/\/+$/,""),{body:r}=await g4(`${t}/v4/agent-pairings/${encodeURIComponent(e.pairingId)}`,{method:"GET",cache:"no-store"},e.fetchImpl??fetch);return r}function s1t(e,t){return Buffer.from(ew(e,Buffer.from(t,"utf8"))).toString("base64url")}async function u9e(e){let t=(e.authUrl??ga()).replace(/\/+$/,""),r=e.fetchImpl??fetch,n=await c9e({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=LN();i=m.secretKey,s=tw(i),o=kh(m.publicKey)}let a=rw(o),c=eZ(),u=zAe(),d={runtime:e.runtime,contextLabel:e.contextLabel,platform:`${process.platform}/${process.arch}`,cliVersion:i1t},l=s1t(i,HAe({pairingId:e.pairingId,serverNonce:n.serverNonce,claimTokenHash:cQ(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()};o1t(p,e.pairingDir);let{body:f}=await g4(`${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!==zN(e.pairingId,u))throw new Error("pairing server returned a mismatched verification code");return{pending:p,verificationCode:f.verificationCode}}async function RZ(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 g4(`${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=QY(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))||$Ae(s.artifacts)!==s.artifactHash)throw new Error("pairing artifact integrity check failed");let f=s1t(Buffer.from(e.pending.privateKeyJwk.d,"base64url"),FAe({pairingId:e.pending.pairingId,agentJkt:e.pending.agentJkt,termsHash:c.termsHash,artifactHash:s.artifactHash}));if((await g4(`${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 XY({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}:{}}),d9e(h,e.agentDir),await OEr(u),EB(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 a1t(e){let{pairing:t}=e,{body:r}=await g4(`${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"&&EB(t.pairingId,"human",e.pairingDir),r}var Yc,i9e,nS,i1t,xB,c1t=P(()=>{"use strict";Yc=ve(require("node:fs")),i9e=ve(require("node:os")),nS=ve(require("node:path"));J2();nw();y4();F2();eu();tZ();wB();i1t="4.1.0-rc.34",xB=nS.join(i9e.homedir(),".visa-cli","pairings")});var y1t={};Mi(y1t,{agentFilePath:()=>SB,agentFormatIsJson:()=>AB,attachAgentCommand:()=>h9e,claimOptsFromFlags:()=>f9e,decodeBindingClaims:()=>vB,enrollClaimEnvelope:()=>m1t,isAgentCommandEnabled:()=>f1t,isAgentRecord:()=>TB,listAgentFiles:()=>BZ,newestAgentRecord:()=>n9e,readAgent:()=>m9e,resolveAgentByRef:()=>h1t,writeAgent:()=>d9e});function TB(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 f1t(){return!0}function AB(e){return e==="json"}function m1t(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 f9e(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 l9e(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
  `}
@@ -20719,7 +20719,7 @@ ${e.nonce}`;return pxr.encode(r)}function hxr(e,t,r,n,i,o,s){return mxr({message
20719
20719
  `;case"error":return` MCP: mount failed (skill still installed) \u2014 ${e.note}
20720
20720
  `}}function u1t(e,t){if(t){process.stdout.write(JSON.stringify({status:"already_connected",...e.name?{name:e.name}:{},keyBound:e.keyBound})+`
20721
20721
  `);return}process.stdout.write(`\u2713 This device is already connected${e.name?` as ${e.name}`:""} \u2014 nothing to pair.
20722
- To add or change spending on this identity, run: visa agent add-rail
20722
+ To add or change spending on this identity, approve it in your account settings (agent card \u2192 Spend).
20723
20723
  (Re-run with --new to force a brand-new enrollment anyway.)
20724
20724
  `)}function d1t(e,t){let{json:r,exitCode:n}=m1t(e);if(t)process.stdout.write(JSON.stringify(r)+`
20725
20725
  `);else{let{text:i,toStderr:o}=kEr(e);(o?process.stderr:process.stdout).write(i)}n!==0&&(process.exitCode=n)}function BEr(e=_4){Zo.mkdirSync(e,{recursive:!0,mode:448})}function SB(e,t=_4){return b4.join(t,`${e}.json`)}function BZ(e=_4){return Zo.existsSync(e)?Zo.readdirSync(e).filter(t=>t.endsWith(".json")).map(t=>b4.join(e,t)):[]}function m9e(e,t=_4){let r=SB(e,t);if(!Zo.existsSync(r))return null;try{let n=JSON.parse(Zo.readFileSync(r,"utf8"));return TB(n)?n:null}catch{return null}}function h1t(e,t=_4){let r=e.trim();if(!r)return null;let n=m9e(r,t);if(n)return n;let i=r.replace(/\.visa$/i,"").toLowerCase(),o=[];for(let s of BZ(t)){let a;try{a=JSON.parse(Zo.readFileSync(s,"utf8"))}catch{continue}TB(a)&&a.name.replace(/\.visa$/i,"").toLowerCase()===i&&o.push(a)}if(o.length>1)throw new Error(`more than one agent is named "${r}" on this machine \u2014 re-run with the agent's jkt instead`);return o[0]??null}function d9e(e,t=_4){BEr(t);let r=SB(e.agent_jkt,t);Zo.writeFileSync(r,JSON.stringify(e,null,2),{mode:384})}function n9e(e=_4){let t=BZ(e).sort((r,n)=>Zo.statSync(n).mtimeMs-Zo.statSync(r).mtimeMs)[0];if(!t)return null;try{let r=JSON.parse(Zo.readFileSync(t,"utf8"));return TB(r)?r:null}catch{return null}}function vB(e){let t=e.split(".");if(t.length!==3)return null;try{let r=JSON.parse(Buffer.from(t[1],"base64url").toString("utf8"));return r===null||typeof r!="object"||Array.isArray(r)?null:r}catch{return null}}function h9e(e){if(!f1t())return;let t=e.command("agent").description("Connect and manage agent runtimes with human-approved Visa identities.");t.command("create").description("Create a secure runtime pairing and authorize it in the browser.").action(async()=>{try{let r=await a9e();if(process.stdout.write(["Agent pairing ready.","","Give this skill link to the agent you want to connect:","",` ${r.skillUrl}`,"",`Pairing expires at ${r.expiresAt}.`].join(`
@@ -20867,7 +20867,7 @@ ${n}
20867
20867
  `),IS(OS(),n+`
20868
20868
  `)}catch{}}function zxe(e){try{let t=uN();if(!t)return;let r=Math.max(Date.now(),t.renderedAt+1),n={...t,refreshFailedAt:r,refreshErrorReason:PS(e).slice(0,200)};IS(M2(),JSON.stringify(n)+`
20869
20869
  `)}catch{}}function q2(){try{br.unlinkSync(Nxe())}catch{}}function uN(){let e=M2();if(!br.existsSync(e))return null;try{return JSON.parse(br.readFileSync(e,"utf-8"))}catch{return null}}function Hxe(){return uN()?.status??null}function fgt(){if(process.env.JEST_WORKER_ID)return;let e=Nxe();try{if(br.mkdirSync(Lr.dirname(e),{recursive:!0}),!bgt(e))return;let t=process.argv[1]?Lr.resolve(process.argv[1]):"";if(!t){q2();return}let r=iN(),n=(process.env.VISA_CLI_HUD_THEME??"").toLowerCase().trim(),i=r==="no-color"||n==="light"||n==="dark"?{}:{VISA_CLI_HUD_THEME:r},o=(0,Rxe.spawn)(process.execPath,[t,"shell-hud","refresh"],{detached:!0,stdio:"ignore",env:{...process.env,...i,VISA_CLI_SHELL_HUD_BACKGROUND:"1"}});o.once("error",q2),o.unref()}catch{q2()}}function PS(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 mgt=/^\u001B\[(?:0|38;2;\d{1,3};\d{1,3};\d{1,3}|38;5;\d{1,3})m$/;function hgt(e){let t=[],r=`__VISA_CLI_HUD_SGR_${(0,_X.randomBytes)(8).toString("hex")}_`,n=e.replace(/\u001B\[[0-?]*[ -/]*[@-~]/g,o=>{if(!mgt.test(o))return"";let s=`${r}${t.length}__`;return t.push(o),s}),i=new RegExp(`${r}(\\d+)__`,"g");return PS(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||oN()?e:`${t}${e}${Za.reset}`}function kxe(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function EX(){let e=D2.homedir();if(!e||!Lr.isAbsolute(e))throw new Error("unable to determine a valid home directory");return Lr.resolve(e)}function ygt(e){return e==="powershell"?"& visa-cli config shell-hud refresh":"visa-cli config shell-hud refresh"}function ggt(e){return e==="powershell"?"Get-Command visa-cli -ErrorAction SilentlyContinue -CommandType Application":"command -v visa-cli >/dev/null 2>&1"}function bgt(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<=ngt)return!1;br.unlinkSync(e)}catch{}}finally{r!==void 0&&br.closeSync(r)}}return!1}function bX(e){return e instanceof Error?e.message:"unknown file system error"}function IS(e,t){br.mkdirSync(Lr.dirname(e),{recursive:!0});let r=`${e}.${process.pid}.${(0,_X.randomBytes)(8).toString("hex")}.tmp`;try{br.writeFileSync(r,t),br.renameSync(r,e)}catch(n){try{br.unlinkSync(r)}catch{}throw n}}var _gt=1440*60*1e3;function lN(e,t){xo.mkdirSync(ya.dirname(e),{recursive:!0});let r=`${e}.${process.pid}.${Vxe.randomBytes(8).toString("hex")}.tmp`;try{xo.writeFileSync(r,JSON.stringify(t,null,2)+`
20870
- `),xo.renameSync(r,e)}catch(n){try{xo.unlinkSync(r)}catch{}throw n}}function Fxe(e){return`'${e.replace(/'/g,"'\\''")}'`}var SX="# visa-cli-hud-v1";function pN(e,t){if(!e&&!t&&vgt())return`visa-cli config statusline ${SX}`;let r=e??process.execPath,n=t??process.argv[1]??"",i=n?ya.resolve(n):"";return`${i?`${Fxe(r)} ${Fxe(i)} config statusline`:"visa-cli config statusline"} ${SX}`}function vgt(){try{return(0,Kxe.execSync)("command -v visa-cli",{stdio:"ignore",timeout:1e3}),!0}catch{return!1}}function xh(e){return typeof e!="string"?!1:e.includes(SX)?!0:e.includes("visa-cli")&&e.includes("statusline")}function wgt(){return"4.1.0-rc.33"}function fN(e){let t=ya.dirname(ya.resolve(e));return ya.basename(t)===".claude"?ya.dirname(t):Wxe.homedir()}function dN(e,t){let r=ya.relative(t,e);return!r.startsWith("..")&&!ya.isAbsolute(r)?`~/${r}`:e}function xgt(e){return ya.join(fN(e),".visa-cli","hud-self-heal.json")}function Egt(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 AX(e,t,r){try{lN(e,{version:t,checkedAt:r})}catch{}}function Agt(e,t){return e&&typeof e=="object"&&!Array.isArray(e)?{...e,type:"command",command:t}:{type:"command",command:t}}function TX(e,t={}){let r=t.now??Date.now(),n=t.version??wgt(),i=t.stampPath??xgt(e),o=t.minIntervalMs??_gt,s=[],a=!1,c=!1;if(!t.force&&Egt(i,n,r,o))return{checked:!1,statusLineRepaired:!1,shellHudRemoved:!1,messages:s,skippedReason:"recently checked"};try{if(!xo.existsSync(e))return AX(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 AX(i,n,r),{checked:!0,statusLineRepaired:a,shellHudRemoved:c,messages:s};let p=(t.getCommand??pN)();if(l!==p&&(u.statusLine=Agt(d,p),lN(e,u),a=!0,s.push("Repaired Claude Code statusLine command to use the current Visa CLI.")),!mN()){let f=fN(e);if(L2(f).length>0){let h=Wm(null,f);if(h.removed&&h.rcPaths&&h.rcPaths.length>0){let y=h.rcPaths.map(w=>dN(w,f)).join(", ");c=!0,s.push(`Cleaned legacy shell-prompt HUD block from ${y}.`)}}}return AX(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
20870
+ `),xo.renameSync(r,e)}catch(n){try{xo.unlinkSync(r)}catch{}throw n}}function Fxe(e){return`'${e.replace(/'/g,"'\\''")}'`}var SX="# visa-cli-hud-v1";function pN(e,t){if(!e&&!t&&vgt())return`visa-cli config statusline ${SX}`;let r=e??process.execPath,n=t??process.argv[1]??"",i=n?ya.resolve(n):"";return`${i?`${Fxe(r)} ${Fxe(i)} config statusline`:"visa-cli config statusline"} ${SX}`}function vgt(){try{return(0,Kxe.execSync)("command -v visa-cli",{stdio:"ignore",timeout:1e3}),!0}catch{return!1}}function xh(e){return typeof e!="string"?!1:e.includes(SX)?!0:e.includes("visa-cli")&&e.includes("statusline")}function wgt(){return"4.1.0-rc.34"}function fN(e){let t=ya.dirname(ya.resolve(e));return ya.basename(t)===".claude"?ya.dirname(t):Wxe.homedir()}function dN(e,t){let r=ya.relative(t,e);return!r.startsWith("..")&&!ya.isAbsolute(r)?`~/${r}`:e}function xgt(e){return ya.join(fN(e),".visa-cli","hud-self-heal.json")}function Egt(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 AX(e,t,r){try{lN(e,{version:t,checkedAt:r})}catch{}}function Agt(e,t){return e&&typeof e=="object"&&!Array.isArray(e)?{...e,type:"command",command:t}:{type:"command",command:t}}function TX(e,t={}){let r=t.now??Date.now(),n=t.version??wgt(),i=t.stampPath??xgt(e),o=t.minIntervalMs??_gt,s=[],a=!1,c=!1;if(!t.force&&Egt(i,n,r,o))return{checked:!1,statusLineRepaired:!1,shellHudRemoved:!1,messages:s,skippedReason:"recently checked"};try{if(!xo.existsSync(e))return AX(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 AX(i,n,r),{checked:!0,statusLineRepaired:a,shellHudRemoved:c,messages:s};let p=(t.getCommand??pN)();if(l!==p&&(u.statusLine=Agt(d,p),lN(e,u),a=!0,s.push("Repaired Claude Code statusLine command to use the current Visa CLI.")),!mN()){let f=fN(e);if(L2(f).length>0){let h=Wm(null,f);if(h.removed&&h.rcPaths&&h.rcPaths.length>0){let y=h.rcPaths.map(w=>dN(w,f)).join(", ");c=!0,s.push(`Cleaned legacy shell-prompt HUD block from ${y}.`)}}}return AX(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
20871
20871
  `)}catch{}}return{checked:!0,statusLineRepaired:a,shellHudRemoved:c,messages:s}}}function Sgt(e,t){let r=fN(t),n=L2(r);if(n.length===0)return e;let i=n.map(o=>dN(o,r)).join(", ");return`${e}
20872
20872
  Note: a shell-prompt HUD block was detected in ${i}. If it is unintended, remove it with: visa-cli config hud disable shell`}function mN(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 $xe(e,t){let r=fN(t),n=L2(r);if(n.length===0)return e;let i=n.map(s=>dN(s,r)).join(", ");if(mN())return`${e}
20873
20873
  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=Wm(null,r);if(o.removed&&o.rcPaths&&o.rcPaths.length>0){let s=o.rcPaths.map(a=>dN(a,r)).join(", ");return`${e}
@@ -20886,11 +20886,11 @@ ${a}`}function Bgt(e){if(typeof e!="number"||e<=0)return"";let r=(e>1e12?e:e*1e3
20886
20886
  `)}var EEe="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 Fgt(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 AEe(e,t={}){let r=[...Hgt().split(`
20887
20887
  `),"","Visa Key active","Scoped agent spend credential ready for apps and agents","",...Fgt([["Key",e.key],["Label",e.label],["Owner",e.owner],["Daily cap",`${OX(e.daily_cap_cents)}/day`],["Total cap",wEe(e.total_cap_cents)],["Allowed tools",xEe(e.allowed_tools)]]),"","Guardrails",`- Spend: ${OX(e.daily_cap_cents)}/day, ${wEe(e.total_cap_cents)} total`,`- Tools: ${xEe(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("",EEe,`Server warning: ${e.biometric_warning}`):e.biometric_enabled&&r.push("",EEe),`${r.join(`
20888
20888
  `)}
20889
- `}function SEe(e){return e.json===!0||e.isTTY!==!0}function CX(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 kX(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 TEe(e,t){let r=CX(e);if(r!==void 0)return r;if(SEe(t))return 500}function PEe(e,t){let r=kX(e);if(r!==void 0)return r;if(SEe(t)||t.recommendedCapsAccepted===!0)return 2500}async function IEe(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 bN=class extends Error{code="ATTESTATION_KEY_DRIFT";hint;constructor(t,r){super(t),this.name="AttestationDriftError",this.hint=r}};var OEe={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 CEe(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&&OEe[r]?OEe[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 $gt=/^(\d+)\.(\d+)\.(\d+)(?:-([0-9A-Za-z.-]+))?(?:\+[0-9A-Za-z.-]+)?$/;function REe(e,t){let r=kEe(e),n=kEe(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:Vgt(r.pre,n.pre)>0}function kEe(e){if(typeof e!="string")return null;let r=e.trim().replace(/^v/,"").match($gt);return r?{main:[Number(r[1]),Number(r[2]),Number(r[3])],pre:r[4]??null}:null}function Vgt(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!!(BEe(process.env.VISA_CLI_NO_UPDATE_CHECK)||BEe(process.env.CI)||process.env.NODE_ENV==="test")}function BEe(e){if(e===void 0)return!1;let t=e.trim().toLowerCase();return!(t===""||t==="0"||t==="false"||t==="no"||t==="off")}F2();var SN="4.1.0-rc.33",obt=/^vk_(?:live|test)_[A-Za-z0-9_-]{16,128}$/;function sbt(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 abt="Visa CLI is temporarily unavailable. Try again, or report at https://github.com/Visa-Crypto-Labs/Visa-mono/issues if it persists.";function G4(e){return typeof e=="string"?e.trim():""}function cbt(e){let t=e&&typeof e=="object"?e:{},r=G4(t.error)||G4(t.message);if(!r)return abt;let n=G4(t.error_code),i=[["surface",G4(t.disabled_surface)],["flag",G4(t.flag)],["correlation_id",G4(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 ubt(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?obt.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(`
20889
+ `}function SEe(e){return e.json===!0||e.isTTY!==!0}function CX(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 kX(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 TEe(e,t){let r=CX(e);if(r!==void 0)return r;if(SEe(t))return 500}function PEe(e,t){let r=kX(e);if(r!==void 0)return r;if(SEe(t)||t.recommendedCapsAccepted===!0)return 2500}async function IEe(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 bN=class extends Error{code="ATTESTATION_KEY_DRIFT";hint;constructor(t,r){super(t),this.name="AttestationDriftError",this.hint=r}};var OEe={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 CEe(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&&OEe[r]?OEe[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 $gt=/^(\d+)\.(\d+)\.(\d+)(?:-([0-9A-Za-z.-]+))?(?:\+[0-9A-Za-z.-]+)?$/;function REe(e,t){let r=kEe(e),n=kEe(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:Vgt(r.pre,n.pre)>0}function kEe(e){if(typeof e!="string")return null;let r=e.trim().replace(/^v/,"").match($gt);return r?{main:[Number(r[1]),Number(r[2]),Number(r[3])],pre:r[4]??null}:null}function Vgt(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!!(BEe(process.env.VISA_CLI_NO_UPDATE_CHECK)||BEe(process.env.CI)||process.env.NODE_ENV==="test")}function BEe(e){if(e===void 0)return!1;let t=e.trim().toLowerCase();return!(t===""||t==="0"||t==="false"||t==="no"||t==="off")}F2();var SN="4.1.0-rc.34",obt=/^vk_(?:live|test)_[A-Za-z0-9_-]{16,128}$/;function sbt(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 abt="Visa CLI is temporarily unavailable. Try again, or report at https://github.com/Visa-Crypto-Labs/Visa-mono/issues if it persists.";function G4(e){return typeof e=="string"?e.trim():""}function cbt(e){let t=e&&typeof e=="object"?e:{},r=G4(t.error)||G4(t.message);if(!r)return abt;let n=G4(t.error_code),i=[["surface",G4(t.disabled_surface)],["flag",G4(t.flag)],["correlation_id",G4(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 ubt(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?obt.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(`
20890
20890
  `)}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&&REe(n,SN)&&(this.lastSignals.updateAvailable={currentVersion:SN,latestVersion:n})}let r=t.headers.get("X-Feedback-Prompt");if(r)try{this.lastSignals.feedbackPrompt=JSON.parse(r)}catch{}}getClientVersion(){return SN}throwIfAttestationDrift(t){if(t?.error_code==="ATTESTATION_KEY_DRIFT")throw new bN(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(cbt(r))}async request(t,r,n,i,o){let s=await this.getSessionToken();if(!s)throw new Error(ubt());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 IEe(`${this.baseUrl}${r}`,{method:t,headers:{...a,"X-Visa-CLI-Version":SN,"X-Source":"cli"},body:n?JSON.stringify(n):void 0,timeoutMs:i})}catch(d){throw new Error(CEe(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),sbt(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)}};HX();var FX=require("child_process"),QEe=require("util"),eAe=ve(require("crypto")),Jr=ve(require("fs")),tAe=ve(require("os")),Ns=ve(require("path"));eu();KB();N2();var Ym=(0,QEe.promisify)(FX.execFile),fbt=6e4,mbt=()=>process.platform==="darwin",J4=()=>process.platform==="win32",Ph=Ns.join(tAe.homedir(),".visa-mcp","bin"),$2=Ns.join(Ph,"Visa CLI"),Jm=Ns.join(Ph,"visa-keychain-win.exe"),rAe=Ns.join(__dirname,"..","native"),$Ee="6",VEe=Ns.join(Ph,"visa-keychain.version"),KEe=Ns.join(Ph,"visa-keychain.sha256"),WEe="1",GEe=Ns.join(Ph,"visa-keychain-win.version"),JEe=Ns.join(Ph,"visa-keychain-win.sha256"),nAe=[Ns.join(rAe,"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 TN(e){let t=Jr.readFileSync(e);return eAe.createHash("sha256").update(t).digest("hex")}function hbt(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 YEe(e){let t=typeof e?.message=="string"?e.message:"";return e?.code==="ETIMEDOUT"||e?.killed===!0||/timed out|timeout/i.test(t)}function ZEe(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 iAe(){try{if(Jr.readFileSync(VEe,"utf-8").trim()===$Ee&&Jr.existsSync($2)){let n=Jr.readFileSync(KEe,"utf-8").trim();if(TN($2)!==n)ke.warn("binary:hash-mismatch",{message:"Binary hash mismatch \u2014 possible tampering detected. Recompiling from source."}),Jr.unlinkSync($2);else return $2}}catch{}let e=Ns.join(rAe,"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 Ym("clang",["-framework","Security","-framework","LocalAuthentication","-framework","Foundation","-framework","AppKit","-o",$2,e],{timeout:3e4})}catch(r){throw r.code==="ENOENT"?new Error("Xcode Command Line Tools required. Install: xcode-select --install"):r}let t=TN($2);return Jr.writeFileSync(KEe,t,{mode:384}),Jr.writeFileSync(VEe,$Ee,{mode:384}),$2}function oAe(){for(let e of nAe)if(Jr.existsSync(e))return e;return null}async function ON(){try{if(Jr.readFileSync(GEe,"utf-8").trim()===WEe&&Jr.existsSync(Jm)){let n=Jr.readFileSync(JEe,"utf-8").trim();if(TN(Jm)!==n)ke.warn("binary:hash-mismatch:win32",{message:"Windows binary hash mismatch. Redeploying."}),Jr.unlinkSync(Jm);else return Jm}}catch{}let e=oAe();if(!e)throw new Error(`visa-keychain-win.exe not found in package. Reinstall @visa/cli.
20891
- If building from source, run native/build-win.bat first.`);Jr.mkdirSync(Ph,{recursive:!0}),Jr.copyFileSync(e,Jm);let t=TN(Jm);return Jr.writeFileSync(JEe,t,{mode:384}),Jr.writeFileSync(GEe,WEe,{mode:384}),Jm}async function ybt(){return J4()?ON():iAe()}var PN="visa-cli",IN="attestation-key";async function gbt(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 Ym("security",["delete-generic-password","-s",PN,"-a",IN],{timeout:5e3})}catch{}try{await Ym("security",["add-generic-password","-s",PN,"-a",IN,"-w",e],{timeout:5e3})}catch(t){throw new Error(`Could not store the Touch ID key in the macOS Keychain (${bbt(t)}).`)}}function bbt(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 _bt(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 vbt(){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 Ym("security",["find-generic-password","-s",PN,"-a",IN,"-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:_bt(e)}}}async function wbt(){let e=await vbt();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 sAe(e){let t=await ybt(),r;try{r=(await Ym(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 hbt(r)}var XEe=!1;function xbt(){if(!J4())return!1;try{return Jr.existsSync(Jm)||oAe()!==null?!0:(XEe||(XEe=!0,ke.warn("binary:missing:win32",{message:"visa-keychain-win.exe not found; Windows Hello attestation unavailable on this install.",binPath:Jm,searchedPrebuiltPaths:nAe})),!1)}catch{return!1}}function Ih(){return xS()||mbt()?!0:J4()?xbt():!1}async function aAe(){if(J4()){let i=await ON(),{stdout:o}=await Ym(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 sAe(["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 gbt(r),n}async function $X(e,t,r={}){if(xS())return Promise.resolve(lxe());let n=r.timeoutMs??fbt;if(J4()){let a=await ON(),c=["sign",e];t&&c.push(t);let u;try{u=(await Ym(a,c,{timeout:n})).stdout}catch(l){throw YEe(l)?ZEe(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 wbt();if(!i)throw new Error("Attestation key not found. Run setup to generate a new key.");let o=await iAe(),s=["sign",e];return t&&s.push(t),new Promise((a,c)=>{let u=(0,FX.execFile)(o,s,{timeout:n},(d,l)=>{let p=(l||"").trim();if(d){p.startsWith("ERROR:")?c(new Error(p.slice(6))):YEe(d)?c(ZEe(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 CN(){if(J4()){try{let e=await ON();await Ym(e,["delete-key"],{timeout:1e4})}catch{}return}if(await Mp())try{await Ym("security",["delete-generic-password","-s",PN,"-a",IN],{timeout:5e3})}catch{}try{await sAe(["delete-key"])}catch{}}N2();eu();rN();K8e();var Cht=require("child_process"),YZ=ve(require("fs")),ZZ=ve(require("os")),kht=ve(require("path"));F2();KB();var rmt="4.1.0-rc.33";function W8e(e,t){return t?{kind:"env",var:e}:{kind:"default"}}function W3r(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=LX(t);return i!==void 0?{value:i,source:{kind:"settings"}}:{value:r!=="opt-in",source:{kind:"default"}}}function $A(e){return e==null?"\u2014":e?"yes":"no"}async function sB(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=DX("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:$A(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=W3r("VISA_SUPPRESS_BROWSER","ui.suppressBrowser","opt-in");n.push({key:"ui.suppressBrowser",value:c.value,formatted:$A(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:$A(!u),source:d}),n.push({key:"client.version",value:rmt,formatted:rmt,source:{kind:"default"}}),e.includeDev){let l=process.env.VISA_MOCK_KEYCHAIN,p=_h();n.push({key:"dev.mockKeychain",value:p,formatted:$A(p),source:W8e("VISA_MOCK_KEYCHAIN",!!l),hint:sX()});let f=process.env.VISA_MOCK_TOUCHID,m=xS();n.push({key:"dev.mockTouchid",value:m,formatted:$A(m),source:W8e("VISA_MOCK_TOUCHID",!!f),hint:sX()});let h=process.env.VISA_CLI_DEBUG;n.push({key:"dev.debug",value:!!h,formatted:$A(!!h),source:W8e("VISA_CLI_DEBUG",!!h)})}return{entries:n,statusError:r}}function G3r(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 nmt(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}(${G3r(o.source)})`),t.verbose&&o.hint&&i.push(` ${"\u21B3".padStart(r)} ${o.hint}`)}return i.join(`
20892
- `)}function imt(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 w9e=require("node:os"),PB=require("node:path"),IB=require("node:fs/promises"),E1t=require("node:fs"),A1t=require("node:url"),S1t=require("node:crypto");eu();var J3r=new Set(["USD","USDC","EUR","GBP","CAD","AUD"]);function VA(e,t){let r=t.toUpperCase();return!Number.isFinite(e)||!J3r.has(r)?`${e} ${r} (minor units)`:`${(e/100).toFixed(2)} ${r}`}var ah=class extends Error{constructor(t){super(t),this.name="PayValidationError"}};function G8e(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 Y3r={ucp_checkout_handoff:"checkout_agent_access",pay_merchant:"checkout_agent_access",pay_merchant_status:"checkout_agent_access",start_card_mandate:"checkout_agent_access"},Z3r=300*1e3,J8e={},omt=0,aB=null;function X3r(){return aB||(aB=(async()=>{try{let e=await Op.getFeatureFlags();J8e=e&&e.flags||{},omt=Date.now()}catch(e){J8e={},ke.warn("feature-flags:fetch-failed",{error:e instanceof Error?e.message:String(e)})}finally{aB=null}})(),aB)}async function rZ(){Date.now()-omt<Z3r||await X3r()}function KA(e){let t=Y3r[e];return t?J8e[t]!==!0:!1}var smt=require("node:crypto"),cB=class extends Error{constructor(r){super(`Approval handoff already exists with different inputs for review ${r}`);this.reviewId=r;this.name="PayMerchantApprovalConflictError"}reviewId},nZ=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 cB(t.reviewId);return await this.waitUntilQueryable(n.ready),this.snapshot(n)}let i=()=>{},o=new Promise(u=>{i=u}),s=(this.options.idFactory??smt.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 T1t(e){return[(0,PB.join)(e,"checkout-engine","index.js"),(0,PB.join)(e,"..","checkout-engine","index.js")]}function FEr(e,t=E1t.existsSync){return T1t(e).find(r=>t(r))??null}var NZ=null,P1t=async()=>{if(NZ)return NZ;let e=FEr(__dirname);if(!e)throw new Error(`Cannot find module: the checkout engine was not packaged (looked in ${T1t(__dirname).join(" and ")}).`);return NZ=(await import((0,A1t.pathToFileURL)(e).href)).createCliCheckoutEngine({cardDrawVerdict:await $Er(),cardMandateRegister:await VEr()}),NZ};async function $Er(){let e=await Promise.resolve().then(()=>(_9e(),b9e));return{loadCapability:()=>e.loadCardMandateCapability(),fetchVerdict:t=>e.fetchCardDrawVerdict(t)}}async function VEr(){let e=await Promise.resolve().then(()=>(_9e(),b9e));return{loadCapability:()=>e.loadCardMandateCapability(),register:t=>e.registerCardMandate(t)}}async function x9e(){return KA("pay_merchant")?(await rZ(),KA("pay_merchant")):!1}var I1t=(0,PB.join)((0,w9e.homedir)(),".visa-mcp","agent-credential.json"),O1t=(0,PB.join)((0,w9e.homedir)(),".visa-mcp","contact.json"),C1t=new nZ;function OB(e){return e.replace(/https?:\/\/[^\s"')\]]+/gi,t=>{try{return new URL(t).origin}catch{return"[url]"}}).slice(0,300)}var KEr=new Set(["USD","USDC","EUR","GBP","CAD","AUD"]);function k1t(e){return KEr.has(e)?e:null}async function jZ(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?OB(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:k1t(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){ke.warn("pay_merchant:telemetry_failed",{action:e.action,error:t instanceof Error?t.message:String(t)})}}async function x1t(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?OB(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:k1t(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){ke.warn("start_card_mandate:telemetry_failed",{error:t instanceof Error?t.message:String(t)})}}function v9e(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 R1t(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=OB(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 B1t(e={},t={}){if(await(t.flagDisabled??x9e)())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??C1t).get(n);return o?R1t(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 N1t(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:zX()&&!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??x9e)())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??C1t,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=G8e(e.url??"").toString(),c=v9e(e.amount)}catch(C){if(C instanceof ah)return{success:!1,message:C.message};throw C}let d=t.credentialPath??I1t,l=t.contactPath??O1t;try{await(0,IB.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,IB.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??P1t,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"){ke.info("pay_merchant:review",{host:x,currency:u});let C;try{C=await h.review(y)}catch(I){throw await jZ({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 jZ({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 ${VA(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=>{ke.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 jZ({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 jZ({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,S1t.createHash)("sha256").update(JSON.stringify([E,a,c,u,A])).digest("hex");ke.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=>{ke.info("pay_merchant:approval_handoff_ready",{reviewId:E}),k(j)});return ke.info("pay_merchant:approval_handoff_completed",{reviewId:E,success:q.success===!0}),q}catch(q){throw ke.warn("pay_merchant:approval_handoff_failed",{reviewId:E,error:OB(q instanceof Error?q.message:String(q))}),q}}});return R1t(I,"authorize")}catch(I){if(I instanceof cB)return ke.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 j1t(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??x9e)())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:G8e(e.url??"").toString(),c=v9e(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=v9e(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??I1t,p=t.contactPath??O1t;try{await(0,IB.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,IB.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??P1t,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();ke.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?OB(A.message):String(A);return ke.warn("start_card_mandate:failed",{message:S}),await x1t({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&&ke.warn("start_card_mandate:register_failed",{mandateId:v.mandateId,host:y}),await x1t({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 ${VA(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 Pht=require("node:crypto");var Eht=require("node:crypto");var Dr={};Mi(Dr,{BRAND:()=>bAr,DIRTY:()=>w4,EMPTY_PATH:()=>YEr,INVALID:()=>gt,NEVER:()=>GAr,OK:()=>ha,ParseStatus:()=>Rs,Schema:()=>Lt,ZodAny:()=>I2,ZodArray:()=>gh,ZodBigInt:()=>E4,ZodBoolean:()=>A4,ZodBranded:()=>kB,ZodCatch:()=>j4,ZodDate:()=>S4,ZodDefault:()=>N4,ZodDiscriminatedUnion:()=>MZ,ZodEffects:()=>cl,ZodEnum:()=>R4,ZodError:()=>Zc,ZodFirstPartyTypeKind:()=>Et,ZodFunction:()=>LZ,ZodIntersection:()=>O4,ZodIssueCode:()=>ye,ZodLazy:()=>C4,ZodLiteral:()=>k4,ZodMap:()=>uS,ZodNaN:()=>lS,ZodNativeEnum:()=>B4,ZodNever:()=>kp,ZodNull:()=>P4,ZodNullable:()=>$m,ZodNumber:()=>x4,ZodObject:()=>Xc,ZodOptional:()=>sl,ZodParsedType:()=>Re,ZodPipeline:()=>RB,ZodPromise:()=>O2,ZodReadonly:()=>U4,ZodRecord:()=>DZ,ZodSchema:()=>Lt,ZodSet:()=>dS,ZodString:()=>P2,ZodSymbol:()=>aS,ZodTransformer:()=>cl,ZodTuple:()=>Fm,ZodType:()=>Lt,ZodUndefined:()=>T4,ZodUnion:()=>I4,ZodUnknown:()=>yh,ZodVoid:()=>cS,addIssueToContext:()=>Se,any:()=>dl,array:()=>ue,bigint:()=>xAr,boolean:()=>ul,coerce:()=>Ju,custom:()=>F1t,date:()=>EAr,datetimeRegex:()=>z1t,defaultErrorMap:()=>mh,discriminatedUnion:()=>CAr,effect:()=>LAr,enum:()=>ll,function:()=>jAr,getErrorMap:()=>iS,getParsedType:()=>Hm,instanceof:()=>vAr,intersection:()=>kAr,isAborted:()=>UZ,isAsync:()=>oS,isDirty:()=>qZ,isValid:()=>T2,late:()=>_Ar,lazy:()=>UAr,literal:()=>qAr,makeIssue:()=>CB,map:()=>BAr,nan:()=>wAr,nativeEnum:()=>MAr,never:()=>PAr,null:()=>pS,nullable:()=>HAr,number:()=>Rr,object:()=>fe,objectUtil:()=>E9e,oboolean:()=>WAr,onumber:()=>KAr,optional:()=>zAr,ostring:()=>VAr,pipeline:()=>$Ar,preprocess:()=>FAr,promise:()=>DAr,quotelessJson:()=>WEr,record:()=>er,set:()=>NAr,setErrorMap:()=>JEr,strictObject:()=>OAr,string:()=>L,symbol:()=>AAr,transformer:()=>LAr,tuple:()=>RAr,undefined:()=>SAr,union:()=>fS,unknown:()=>TAr,util:()=>Qt,void:()=>IAr});var Qt;(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})(Qt||(Qt={}));var E9e;(function(e){e.mergeShapes=(t,r)=>({...t,...r})})(E9e||(E9e={}));var Re=Qt.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),Hm=e=>{switch(typeof e){case"undefined":return Re.undefined;case"string":return Re.string;case"number":return Number.isNaN(e)?Re.nan:Re.number;case"boolean":return Re.boolean;case"function":return Re.function;case"bigint":return Re.bigint;case"symbol":return Re.symbol;case"object":return Array.isArray(e)?Re.array:e===null?Re.null:e.then&&typeof e.then=="function"&&e.catch&&typeof e.catch=="function"?Re.promise:typeof Map<"u"&&e instanceof Map?Re.map:typeof Set<"u"&&e instanceof Set?Re.set:typeof Date<"u"&&e instanceof Date?Re.date:Re.object;default:return Re.unknown}};var ye=Qt.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"]),WEr=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,Qt.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 GEr=(e,t)=>{let r;switch(e.code){case ye.invalid_type:e.received===Re.undefined?r="Required":r=`Expected ${e.expected}, received ${e.received}`;break;case ye.invalid_literal:r=`Invalid literal value, expected ${JSON.stringify(e.expected,Qt.jsonStringifyReplacer)}`;break;case ye.unrecognized_keys:r=`Unrecognized key(s) in object: ${Qt.joinValues(e.keys,", ")}`;break;case ye.invalid_union:r="Invalid input";break;case ye.invalid_union_discriminator:r=`Invalid discriminator value. Expected ${Qt.joinValues(e.options)}`;break;case ye.invalid_enum_value:r=`Invalid enum value. Expected ${Qt.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}"`:Qt.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,Qt.assertNever(e)}return{message:r}},mh=GEr;var U1t=mh;function JEr(e){U1t=e}function iS(){return U1t}var CB=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}},YEr=[];function Se(e,t){let r=iS(),n=CB({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"}),w4=e=>({status:"dirty",value:e}),ha=e=>({status:"valid",value:e}),UZ=e=>e.status==="aborted",qZ=e=>e.status==="dirty",T2=e=>e.status==="valid",oS=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}},q1t=(e,t)=>{if(T2(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 Hm(t.data)}_getOrReturnCtx(t,r){return r||{common:t.parent.common,data:t.data,parsedType:Hm(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:Hm(t.data),schemaErrorMap:this._def.errorMap,path:t.path,parent:t.parent}}}_parseSync(t){let r=this._parse(t);if(oS(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:Hm(t)},i=this._parseSync({data:t,path:n.path,parent:n});return q1t(n,i)}"~validate"(t){let r={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:Hm(t)};if(!this["~standard"].async)try{let n=this._parseSync({data:t,path:[],parent:r});return T2(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=>T2(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:Hm(t)},i=this._parse({data:t,path:n.path,parent:n}),o=await(oS(i)?i:Promise.resolve(i));return q1t(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 $m.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return gh.create(this)}promise(){return O2.create(this,this._def)}or(t){return I4.create([this,t],this._def)}and(t){return O4.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 N4({...Ut(this._def),innerType:this,defaultValue:r,typeName:Et.ZodDefault})}brand(){return new kB({typeName:Et.ZodBranded,type:this,...Ut(this._def)})}catch(t){let r=typeof t=="function"?t:()=>t;return new j4({...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 RB.create(this,t)}readonly(){return U4.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},ZEr=/^c[^\s-]{8,}$/i,XEr=/^[0-9a-z]+$/,QEr=/^[0-9A-HJKMNP-TV-Z]{26}$/i,eAr=/^[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,tAr=/^[a-z0-9_-]{21}$/i,rAr=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,nAr=/^[-+]?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)?)??$/,iAr=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,oAr="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",A9e,sAr=/^(?:(?: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])$/,aAr=/^(?:(?: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])$/,cAr=/^(([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]))$/,uAr=/^(([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])$/,dAr=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,lAr=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,D1t="((\\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])))",pAr=new RegExp(`^${D1t}$`);function L1t(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 fAr(e){return new RegExp(`^${L1t(e)}$`)}function z1t(e){let t=`${D1t}T${L1t(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 mAr(e,t){return!!((t==="v4"||!t)&&sAr.test(e)||(t==="v6"||!t)&&cAr.test(e))}function hAr(e,t){if(!rAr.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 yAr(e,t){return!!((t==="v4"||!t)&&aAr.test(e)||(t==="v6"||!t)&&uAr.test(e))}var P2=class e extends Lt{_parse(t){if(this._def.coerce&&(t.data=String(t.data)),this._getType(t)!==Re.string){let o=this._getOrReturnCtx(t);return Se(o,{code:ye.invalid_type,expected:Re.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")iAr.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")A9e||(A9e=new RegExp(oAr,"u")),A9e.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")eAr.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")tAr.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")ZEr.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")XEr.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")QEr.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"?z1t(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"?pAr.test(t.data)||(i=this._getOrReturnCtx(t,i),Se(i,{code:ye.invalid_string,validation:"date",message:o.message}),n.dirty()):o.kind==="time"?fAr(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"?nAr.test(t.data)||(i=this._getOrReturnCtx(t,i),Se(i,{validation:"duration",code:ye.invalid_string,message:o.message}),n.dirty()):o.kind==="ip"?mAr(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"?hAr(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"?yAr(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"?dAr.test(t.data)||(i=this._getOrReturnCtx(t,i),Se(i,{validation:"base64",code:ye.invalid_string,message:o.message}),n.dirty()):o.kind==="base64url"?lAr.test(t.data)||(i=this._getOrReturnCtx(t,i),Se(i,{validation:"base64url",code:ye.invalid_string,message:o.message}),n.dirty()):Qt.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}};P2.create=e=>new P2({checks:[],typeName:Et.ZodString,coerce:e?.coerce??!1,...Ut(e)});function gAr(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 x4=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)!==Re.number){let o=this._getOrReturnCtx(t);return Se(o,{code:ye.invalid_type,expected:Re.number,received:o.parsedType}),gt}let n,i=new Rs;for(let o of this._def.checks)o.kind==="int"?Qt.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"?gAr(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()):Qt.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"&&Qt.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)}};x4.create=e=>new x4({checks:[],typeName:Et.ZodNumber,coerce:e?.coerce||!1,...Ut(e)});var E4=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)!==Re.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()):Qt.assertNever(o);return{status:i.value,value:t.data}}_getInvalidInput(t){let r=this._getOrReturnCtx(t);return Se(r,{code:ye.invalid_type,expected:Re.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}};E4.create=e=>new E4({checks:[],typeName:Et.ZodBigInt,coerce:e?.coerce??!1,...Ut(e)});var A4=class extends Lt{_parse(t){if(this._def.coerce&&(t.data=!!t.data),this._getType(t)!==Re.boolean){let n=this._getOrReturnCtx(t);return Se(n,{code:ye.invalid_type,expected:Re.boolean,received:n.parsedType}),gt}return ha(t.data)}};A4.create=e=>new A4({typeName:Et.ZodBoolean,coerce:e?.coerce||!1,...Ut(e)});var S4=class e extends Lt{_parse(t){if(this._def.coerce&&(t.data=new Date(t.data)),this._getType(t)!==Re.date){let o=this._getOrReturnCtx(t);return Se(o,{code:ye.invalid_type,expected:Re.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()):Qt.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}};S4.create=e=>new S4({checks:[],coerce:e?.coerce||!1,typeName:Et.ZodDate,...Ut(e)});var aS=class extends Lt{_parse(t){if(this._getType(t)!==Re.symbol){let n=this._getOrReturnCtx(t);return Se(n,{code:ye.invalid_type,expected:Re.symbol,received:n.parsedType}),gt}return ha(t.data)}};aS.create=e=>new aS({typeName:Et.ZodSymbol,...Ut(e)});var T4=class extends Lt{_parse(t){if(this._getType(t)!==Re.undefined){let n=this._getOrReturnCtx(t);return Se(n,{code:ye.invalid_type,expected:Re.undefined,received:n.parsedType}),gt}return ha(t.data)}};T4.create=e=>new T4({typeName:Et.ZodUndefined,...Ut(e)});var P4=class extends Lt{_parse(t){if(this._getType(t)!==Re.null){let n=this._getOrReturnCtx(t);return Se(n,{code:ye.invalid_type,expected:Re.null,received:n.parsedType}),gt}return ha(t.data)}};P4.create=e=>new P4({typeName:Et.ZodNull,...Ut(e)});var I2=class extends Lt{constructor(){super(...arguments),this._any=!0}_parse(t){return ha(t.data)}};I2.create=e=>new I2({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:Re.never,received:r.parsedType}),gt}};kp.create=e=>new kp({typeName:Et.ZodNever,...Ut(e)});var cS=class extends Lt{_parse(t){if(this._getType(t)!==Re.undefined){let n=this._getOrReturnCtx(t);return Se(n,{code:ye.invalid_type,expected:Re.void,received:n.parsedType}),gt}return ha(t.data)}};cS.create=e=>new cS({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!==Re.array)return Se(r,{code:ye.invalid_type,expected:Re.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 sS(e){if(e instanceof Xc){let t={};for(let r in e.shape){let n=e.shape[r];t[r]=sl.create(sS(n))}return new Xc({...e._def,shape:()=>t})}else return e instanceof gh?new gh({...e._def,type:sS(e.element)}):e instanceof sl?sl.create(sS(e.unwrap())):e instanceof $m?$m.create(sS(e.unwrap())):e instanceof Fm?Fm.create(e.items.map(t=>sS(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=Qt.objectKeys(t);return this._cached={shape:t,keys:r},this._cached}_parse(t){if(this._getType(t)!==Re.object){let u=this._getOrReturnCtx(t);return Se(u,{code:ye.invalid_type,expected:Re.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 Qt.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 Qt.objectKeys(this.shape))t[n]||(r[n]=this.shape[n]);return new e({...this._def,shape:()=>r})}deepPartial(){return sS(this)}partial(t){let r={};for(let n of Qt.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 Qt.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 H1t(Qt.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 I4=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}};I4.create=(e,t)=>new I4({options:e,typeName:Et.ZodUnion,...Ut(t)});var hh=e=>e instanceof C4?hh(e.schema):e instanceof cl?hh(e.innerType()):e instanceof k4?[e.value]:e instanceof R4?e.options:e instanceof B4?Qt.objectValues(e.enum):e instanceof N4?hh(e._def.innerType):e instanceof T4?[void 0]:e instanceof P4?[null]:e instanceof sl?[void 0,...hh(e.unwrap())]:e instanceof $m?[null,...hh(e.unwrap())]:e instanceof kB||e instanceof U4?hh(e.unwrap()):e instanceof j4?hh(e._def.innerType):[],MZ=class e extends Lt{_parse(t){let{ctx:r}=this._processInputParams(t);if(r.parsedType!==Re.object)return Se(r,{code:ye.invalid_type,expected:Re.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 S9e(e,t){let r=Hm(e),n=Hm(t);if(e===t)return{valid:!0,data:e};if(r===Re.object&&n===Re.object){let i=Qt.objectKeys(t),o=Qt.objectKeys(e).filter(a=>i.indexOf(a)!==-1),s={...e,...t};for(let a of o){let c=S9e(e[a],t[a]);if(!c.valid)return{valid:!1};s[a]=c.data}return{valid:!0,data:s}}else if(r===Re.array&&n===Re.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=S9e(s,a);if(!c.valid)return{valid:!1};i.push(c.data)}return{valid:!0,data:i}}else return r===Re.date&&n===Re.date&&+e==+t?{valid:!0,data:e}:{valid:!1}}var O4=class extends Lt{_parse(t){let{status:r,ctx:n}=this._processInputParams(t),i=(o,s)=>{if(UZ(o)||UZ(s))return gt;let a=S9e(o.value,s.value);return a.valid?((qZ(o)||qZ(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}))}};O4.create=(e,t,r)=>new O4({left:e,right:t,typeName:Et.ZodIntersection,...Ut(r)});var Fm=class e extends Lt{_parse(t){let{status:r,ctx:n}=this._processInputParams(t);if(n.parsedType!==Re.array)return Se(n,{code:ye.invalid_type,expected:Re.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})}};Fm.create=(e,t)=>{if(!Array.isArray(e))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new Fm({items:e,typeName:Et.ZodTuple,rest:null,...Ut(t)})};var DZ=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!==Re.object)return Se(n,{code:ye.invalid_type,expected:Re.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:P2.create(),valueType:t,typeName:Et.ZodRecord,...Ut(r)})}},uS=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!==Re.map)return Se(n,{code:ye.invalid_type,expected:Re.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}}}};uS.create=(e,t,r)=>new uS({valueType:t,keyType:e,typeName:Et.ZodMap,...Ut(r)});var dS=class e extends Lt{_parse(t){let{status:r,ctx:n}=this._processInputParams(t);if(n.parsedType!==Re.set)return Se(n,{code:ye.invalid_type,expected:Re.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)}};dS.create=(e,t)=>new dS({valueType:e,minSize:null,maxSize:null,typeName:Et.ZodSet,...Ut(t)});var LZ=class e extends Lt{constructor(){super(...arguments),this.validate=this.implement}_parse(t){let{ctx:r}=this._processInputParams(t);if(r.parsedType!==Re.function)return Se(r,{code:ye.invalid_type,expected:Re.function,received:r.parsedType}),gt;function n(a,c){return CB({data:a,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,iS(),mh].filter(u=>!!u),issueData:{code:ye.invalid_arguments,argumentsError:c}})}function i(a,c){return CB({data:a,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,iS(),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 O2){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:Fm.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||Fm.create([]).rest(yh.create()),returns:r||yh.create(),typeName:Et.ZodFunction,...Ut(n)})}},C4=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})}};C4.create=(e,t)=>new C4({getter:e,typeName:Et.ZodLazy,...Ut(t)});var k4=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}};k4.create=(e,t)=>new k4({value:e,typeName:Et.ZodLiteral,...Ut(t)});function H1t(e,t){return new R4({values:e,typeName:Et.ZodEnum,...Ut(t)})}var R4=class e extends Lt{_parse(t){if(typeof t.data!="string"){let r=this._getOrReturnCtx(t),n=this._def.values;return Se(r,{expected:Qt.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})}};R4.create=H1t;var B4=class extends Lt{_parse(t){let r=Qt.getValidEnumValues(this._def.values),n=this._getOrReturnCtx(t);if(n.parsedType!==Re.string&&n.parsedType!==Re.number){let i=Qt.objectValues(r);return Se(n,{expected:Qt.joinValues(i),received:n.parsedType,code:ye.invalid_type}),gt}if(this._cache||(this._cache=new Set(Qt.getValidEnumValues(this._def.values))),!this._cache.has(t.data)){let i=Qt.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}};B4.create=(e,t)=>new B4({values:e,typeName:Et.ZodNativeEnum,...Ut(t)});var O2=class extends Lt{unwrap(){return this._def.type}_parse(t){let{ctx:r}=this._processInputParams(t);if(r.parsedType!==Re.promise&&r.common.async===!1)return Se(r,{code:ye.invalid_type,expected:Re.promise,received:r.parsedType}),gt;let n=r.parsedType===Re.promise?r.data:Promise.resolve(r.data);return ha(n.then(i=>this._def.type.parseAsync(i,{path:r.path,errorMap:r.common.contextualErrorMap})))}};O2.create=(e,t)=>new O2({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"?w4(c.value):r.value==="dirty"?w4(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"?w4(a.value):r.value==="dirty"?w4(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(!T2(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=>T2(s)?Promise.resolve(i.transform(s.value,o)).then(a=>({status:r.value,value:a})):gt);Qt.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)===Re.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 $m=class extends Lt{_parse(t){return this._getType(t)===Re.null?ha(null):this._def.innerType._parse(t)}unwrap(){return this._def.innerType}};$m.create=(e,t)=>new $m({innerType:e,typeName:Et.ZodNullable,...Ut(t)});var N4=class extends Lt{_parse(t){let{ctx:r}=this._processInputParams(t),n=r.data;return r.parsedType===Re.undefined&&(n=this._def.defaultValue()),this._def.innerType._parse({data:n,path:r.path,parent:r})}removeDefault(){return this._def.innerType}};N4.create=(e,t)=>new N4({innerType:e,typeName:Et.ZodDefault,defaultValue:typeof t.default=="function"?t.default:()=>t.default,...Ut(t)});var j4=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 oS(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}};j4.create=(e,t)=>new j4({innerType:e,typeName:Et.ZodCatch,catchValue:typeof t.catch=="function"?t.catch:()=>t.catch,...Ut(t)});var lS=class extends Lt{_parse(t){if(this._getType(t)!==Re.nan){let n=this._getOrReturnCtx(t);return Se(n,{code:ye.invalid_type,expected:Re.nan,received:n.parsedType}),gt}return{status:"valid",value:t.data}}};lS.create=e=>new lS({typeName:Et.ZodNaN,...Ut(e)});var bAr=Symbol("zod_brand"),kB=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}},RB=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(),w4(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})}},U4=class extends Lt{_parse(t){let r=this._def.innerType._parse(t),n=i=>(T2(i)&&(i.value=Object.freeze(i.value)),i);return oS(r)?r.then(i=>n(i)):n(r)}unwrap(){return this._def.innerType}};U4.create=(e,t)=>new U4({innerType:e,typeName:Et.ZodReadonly,...Ut(t)});function M1t(e,t){let r=typeof e=="function"?e(t):typeof e=="string"?{message:e}:e;return typeof r=="string"?{message:r}:r}function F1t(e,t={},r){return e?I2.create().superRefine((n,i)=>{let o=e(n);if(o instanceof Promise)return o.then(s=>{if(!s){let a=M1t(t,n),c=a.fatal??r??!0;i.addIssue({code:"custom",...a,fatal:c})}});if(!o){let s=M1t(t,n),a=s.fatal??r??!0;i.addIssue({code:"custom",...s,fatal:a})}}):I2.create()}var _Ar={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 vAr=(e,t={message:`Input not instance of ${e.name}`})=>F1t(r=>r instanceof e,t),L=P2.create,Rr=x4.create,wAr=lS.create,xAr=E4.create,ul=A4.create,EAr=S4.create,AAr=aS.create,SAr=T4.create,pS=P4.create,dl=I2.create,TAr=yh.create,PAr=kp.create,IAr=cS.create,ue=gh.create,fe=Xc.create,OAr=Xc.strictCreate,fS=I4.create,CAr=MZ.create,kAr=O4.create,RAr=Fm.create,er=DZ.create,BAr=uS.create,NAr=dS.create,jAr=LZ.create,UAr=C4.create,qAr=k4.create,ll=R4.create,MAr=B4.create,DAr=O2.create,LAr=cl.create,zAr=sl.create,HAr=$m.create,FAr=cl.createWithPreprocess,$Ar=RB.create,VAr=()=>L().optional(),KAr=()=>Rr().optional(),WAr=()=>ul().optional(),Ju={string:(e=>P2.create({...e,coerce:!0})),number:(e=>x4.create({...e,coerce:!0})),boolean:(e=>A4.create({...e,coerce:!0})),bigint:(e=>E4.create({...e,coerce:!0})),date:(e=>S4.create({...e,coerce:!0}))};var GAr=gt;var YAr=ll(["enc","sig"]),ZAr=ll(["markdown","plain"]),XAr=ll(["recoverable","requires_buyer_input","requires_buyer_review","unrecoverable"]),QAr=ll(["error","info","warning"]),yS=ll(["canceled","complete_in_progress","completed","incomplete","ready_for_complete","requires_escalation"]),eSr=ll(["completed","failed","pending"]),tSr=ll(["digital","pickup","shipping"]),rSr=ll(["fulfilled","partial","processing","removed"]),nSr=ll(["across","each"]),T9e=ll(["pickup","shipping"]),iSr=fe({config:er(L(),dl()),config_schema:L(),id:L(),instrument_schemas:ue(L()),name:L(),spec:L(),version:L()}),oSr=fe({alg:L().optional(),crv:L().optional(),e:L().optional(),kid:L(),kty:L(),n:L().optional(),use:YAr.optional(),x:L().optional(),y:L().optional()}),sSr=fe({config:er(L(),dl()).optional(),extends:L().optional(),name:L(),schema:L(),spec:L(),version:L()}),aSr=fe({endpoint:L()}),cSr=fe({schema:L()}),$1t=fe({endpoint:L(),schema:L()}),uSr=$1t,dSr=$1t,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()}),P9e=vo,V1t=fe({id:L()}),lSr=V1t,pSr=V1t,BB=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()}),zZ=fe({type:L()}),ro=fe({"dev.ucp.buyer_ip":L().optional(),"dev.ucp.user_agent":L().optional()}),I9e=ro,K1t=fe({id:L(),image_url:L().optional(),price:Rr(),title:L()}),HZ=fe({amount:Rr(),display_text:L().optional(),type:L()}),C2=fe({title:L().optional(),type:L(),url:L()}),bh=fe({code:L().optional(),content:L(),content_type:ZAr.optional(),path:L().optional(),severity:XAr.optional(),type:QAr,image_url:L().optional(),presentation:L().optional(),url:L().optional()}),O9e=bh,gS=fe({id:L(),label:L().optional(),permalink_url:L()}),fSr=fe({amount:Rr(),display_text:L()}),mSr=fe({config:er(L(),dl()).optional(),extends:L().optional(),name:L(),schema:L().optional(),spec:L().optional(),version:L()}),C9e=fe({id:L(),quantity:Rr()}),hSr=C9e,ySr=C9e,gSr=C9e,bSr=fe({fulfilled:Rr(),original:Rr().optional(),total:Rr()}),_Sr=fe({billing_address:BB.optional(),credential:zZ.optional(),display:er(L(),dl()).optional(),handler_id:L(),id:L(),type:L()}),vSr=fe({checkout_mandate:L()}),wSr=fe({merchant_authorization:L().optional(),checkout_mandate:L()}),xSr=fe({analytics:ul().optional(),marketing:ul().optional(),preferences:ul().optional(),sale_of_data:ul().optional()});var ESr=xSr;var W1t=fe({codes:ue(L()).optional()}),ASr=W1t,SSr=fe({amount:Rr(),path:L()}),TSr=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:BB.optional(),name:L().optional()}),PSr=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(HZ)}),ISr=fe({description:L().optional(),fulfillable_on:fS([pS(),L()]).optional(),line_item_ids:ue(L()),type:T9e}),OSr=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:BB.optional(),name:L().optional()}),CSr=fe({max:Rr().optional(),min:Rr().optional()}),NB=fe({taxonomy:L().optional(),value:L()}),jB=fe({html:L().optional(),markdown:L().optional(),plain:L().optional()}),mS=fe({amount:Rr(),currency:L()}),UB=fe({alt_text:L().optional(),height:Rr().optional(),type:L(),url:L(),width:Rr().optional()}),kSr=fe({id:L().optional(),label:L()}),qB=fe({count:Rr().optional(),scale_max:Rr(),scale_min:Rr().optional(),value:Rr()}),G1t=fe({available:ul().optional(),status:L().optional()}),RSr=G1t,J1t=fe({type:L(),value:L()}),BSr=J1t,NSr=fe({id:L(),match:L().optional()}),k9e=fe({id:L().optional(),label:L(),name:L()}),Y1t=k9e,Z1t=fe({links:ue(C2).optional(),name:L().optional()}),jSr=Z1t,X1t=fe({unit:L(),value:Rr()});var USr=X1t,qSr=fe({cursor:L().optional(),limit:Rr().optional()}),MSr=fe({cursor:L().optional(),has_next_page:ul(),total_count:Rr().optional()}),DSr=fe({handlers:ue(iSr).optional()}),LSr=fe({a2a:aSr.optional(),embedded:cSr.optional(),mcp:uSr.optional(),rest:dSr.optional(),spec:L(),version:L()}),bS=fe({item:lSr,quantity:Rr()}),zSr=fe({billing_address:BB.optional(),credential:zZ.optional(),display:er(L(),dl()).optional(),handler_id:L(),id:L(),type:L(),selected:ul().optional()}),MB=fe({id:L().optional(),item:pSr,parent_id:L().optional(),quantity:Rr()}),FZ=fe({instruments:ue(zSr).optional()}),HSr=FZ,DB=FZ,_S=FZ,$Z=FZ,q4=fe({id:L(),item:K1t,parent_id:L().optional(),quantity:Rr(),totals:ue(HZ)}),k2=fe({amount:Rr(),display_text:L().optional(),type:L(),lines:ue(fSr).optional()}),Rp=fe({capabilities:er(L(),ue(mSr)),version:L()}),FSr=fe({description:L().optional(),id:L(),line_items:ue(hSr).optional(),occurred_at:Ju.date(),status:eSr,totals:ue(HZ).optional(),type:L()}),$Sr=fe({carrier:L().optional(),description:L().optional(),id:L(),line_items:ue(ySr),occurred_at:Ju.date(),tracking_number:L().optional(),tracking_url:L().optional(),type:L()}),VSr=fe({description:L().optional(),destination:BB,fulfillable_on:L().optional(),id:L(),line_items:ue(gSr),method_type:tSr}),KSr=fe({id:L(),item:K1t,parent_id:L().optional(),quantity:bSr,status:rSr,totals:ue(HZ)}),Cxn=fe({payment_data:_Sr}),kxn=fe({ap2:vSr.optional()}),Rxn=fe({attribution:er(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(q4),links:ue(C2),messages:ue(bh).optional(),order:gS.optional(),payment:_S.optional(),signals:ro.optional(),status:yS,totals:ue(k2),ucp:Rp,ap2:wSr.optional()}),R9e=fe({email:L().optional(),first_name:L().optional(),last_name:L().optional(),phone_number:L().optional(),consent:ESr.optional()}),WSr=R9e,GSr=R9e,Q1t=fe({attribution:er(L(),L()).optional(),buyer:Ja.optional(),context:vo.optional(),line_items:ue(MB),payment:$Z.optional(),signals:ro.optional(),discounts:ASr.optional()}),JSr=fe({allocations:ue(SSr).optional(),amount:Rr(),automatic:ul().optional(),code:L().optional(),eligibility:L().optional(),method:nSr.optional(),priority:Rr().optional(),provisional:ul().optional(),title:L()}),eht=fe({id:L(),line_item_ids:ue(L()),options:ue(PSr).optional(),selected_option_id:fS([pS(),L()]).optional()}),YSr=fe({destinations:ue(OSr).optional(),groups:ue(eht).optional(),id:L(),line_item_ids:ue(L()),selected_destination_id:fS([pS(),L()]).optional(),type:T9e}),Bxn=fe({attribution:er(L(),L()).optional(),buyer:Ja.optional(),context:vo.optional(),line_items:ue(bS),signals:ro.optional()}),Nxn=fe({attribution:er(L(),L()).optional(),buyer:Ja.optional(),context:vo.optional(),id:L(),line_items:ue(MB),signals:ro.optional()}),jxn=fe({attribution:er(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(q4),links:ue(C2).optional(),messages:ue(bh).optional(),signals:ro.optional(),totals:ue(k2),ucp:Rp}),ZSr=fe({attribution:er(L(),L()).optional(),buyer:Ja.optional(),context:vo.optional(),line_items:ue(MB),payment:$Z.optional(),signals:ro.optional()}),tht=ZSr,Uxn=fe({attribution:er(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(q4),links:ue(C2),messages:ue(bh).optional(),order:gS.optional(),payment:_S.optional(),signals:ro.optional(),status:yS,totals:ue(k2),ucp:Rp,cart_id:L().optional()}),B9e=fe({categories:ue(L()).optional(),price:CSr.optional()}),hS=fe({max:mS,min:mS}),N9e=fe({name:L(),values:ue(kSr)}),rht=fe({amount:Rr(),currency:L(),measure:X1t,reference:USr}),XSr=rht,qxn=fe({attribution:er(L(),L()).optional(),context:P9e.optional(),filters:B9e.optional(),id:L(),preferences:ue(L()).optional(),selected:ue(Y1t).optional(),signals:I9e.optional()}),Mxn=fe({attribution:er(L(),L()).optional(),context:P9e.optional(),filters:B9e.optional(),pagination:qSr.optional(),query:L().optional(),signals:I9e.optional()}),QSr=fe({capabilities:ue(sSr),services:er(L(),LSr),version:L()}),Dxn=fe({attribution:er(L(),L()).optional(),payment:HSr,signals:ro.optional()}),nht=fe({attribution:er(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(q4),links:ue(C2),messages:ue(bh).optional(),order:gS.optional(),payment:_S.optional(),signals:ro.optional(),status:yS,totals:ue(k2),ucp:Rp}),e7r=fe({events:ue($Sr).optional(),expectations:ue(VSr).optional()}),iht=fe({attribution:er(L(),L()).optional(),buyer:R9e.optional(),context:vo.optional(),line_items:ue(bS),payment:DB.optional(),signals:ro.optional()}),oht=fe({attribution:er(L(),L()).optional(),buyer:GSr.optional(),context:vo.optional(),line_items:ue(MB),payment:$Z.optional(),signals:ro.optional()}),sht=fe({attribution:er(L(),L()).optional(),buyer:WSr.optional(),context:vo.optional(),continue_url:L().optional(),currency:L(),expires_at:Ju.date().optional(),id:L(),line_items:ue(q4),links:ue(C2),messages:ue(bh).optional(),order:gS.optional(),payment:_S.optional(),signals:ro.optional(),status:yS,totals:ue(k2),ucp:Rp}),aht=fe({attribution:er(L(),L()).optional(),buyer:Ja.optional(),context:vo.optional(),line_items:ue(bS),payment:DB.optional(),signals:ro.optional(),discounts:W1t.optional()}),t7r=fe({applied:ue(JSr).optional(),codes:ue(L()).optional()}),r7r=fe({destinations:ue(TSr).optional(),groups:ue(eht).optional(),line_item_ids:ue(L()).optional(),selected_destination_id:fS([pS(),L()]).optional(),type:T9e}),n7r=fe({available_methods:ue(ISr).optional(),methods:ue(YSr).optional()}),cht=fe({attribution:er(L(),L()).optional(),buyer:Ja.optional(),context:vo.optional(),line_items:ue(bS),payment:DB.optional(),signals:ro.optional(),cart_id:L().optional()}),Lxn=fe({attribution:er(L(),L()).optional(),context:P9e.optional(),filters:B9e.optional(),ids:ue(L()),signals:I9e.optional()}),i7r=fe({availability:G1t.optional(),barcodes:ue(J1t).optional(),categories:ue(NB).optional(),description:jB,handle:L().optional(),id:L(),list_price:mS.optional(),media:ue(UB).optional(),metadata:er(L(),dl()).optional(),options:ue(k9e).optional(),price:mS,rating:qB.optional(),seller:Z1t.optional(),sku:L().optional(),tags:ue(L()).optional(),title:L(),unit_price:rht.optional(),url:L().optional(),inputs:ue(NSr)}),uht=fe({availability:RSr.optional(),barcodes:ue(BSr).optional(),categories:ue(NB).optional(),description:jB,handle:L().optional(),id:L(),list_price:mS.optional(),media:ue(UB).optional(),metadata:er(L(),dl()).optional(),options:ue(k9e).optional(),price:mS,rating:qB.optional(),seller:jSr.optional(),sku:L().optional(),tags:ue(L()).optional(),title:L(),unit_price:XSr.optional(),url:L().optional()}),o7r=fe({categories:ue(NB).optional(),description:jB,handle:L().optional(),id:L(),list_price_range:hS.optional(),media:ue(UB).optional(),metadata:er(L(),dl()).optional(),options:ue(N9e).optional(),price_range:hS,rating:qB.optional(),tags:ue(L()).optional(),title:L(),url:L().optional(),variants:ue(uht)}),zxn=fe({payment:DSr.optional(),signing_keys:ue(oSr).optional(),ucp:QSr}),dht=fe({attribution:er(L(),L()).optional(),buyer:Ja.optional(),context:vo.optional(),line_items:ue(bS),payment:DB.optional(),signals:ro.optional()}),s7r=fe({adjustments:ue(FSr).optional(),attribution:er(L(),L()).optional(),checkout_id:L(),currency:L(),fulfillment:e7r,id:L(),label:L().optional(),line_items:ue(KSr),messages:ue(bh).optional(),permalink_url:L(),totals:ue(k2),ucp:Rp}),lht=fe({attribution:er(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(q4),links:ue(C2),messages:ue(bh).optional(),order:gS.optional(),payment:_S.optional(),signals:ro.optional(),status:yS,totals:ue(k2),ucp:Rp,discounts:t7r.optional()}),pht=fe({methods:ue(r7r).optional()}),fht=fe({attribution:er(L(),L()).optional(),buyer:Ja.optional(),context:vo.optional(),line_items:ue(MB),payment:$Z.optional(),signals:ro.optional(),fulfillment:pht.optional()}),mht=fe({attribution:er(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(q4),links:ue(C2),messages:ue(bh).optional(),order:gS.optional(),payment:_S.optional(),signals:ro.optional(),status:yS,totals:ue(k2),ucp:Rp,fulfillment:n7r.optional()}),a7r=fe({categories:ue(NB).optional(),description:jB,handle:L().optional(),id:L(),list_price_range:hS.optional(),media:ue(UB).optional(),metadata:er(L(),dl()).optional(),options:ue(N9e).optional(),price_range:hS,rating:qB.optional(),tags:ue(L()).optional(),title:L(),url:L().optional(),variants:ue(i7r)}),c7r=fe({options:ue(N9e).optional(),selected:ue(Y1t).optional(),categories:ue(NB).optional(),description:jB,handle:L().optional(),id:L(),list_price_range:hS.optional(),media:ue(UB).optional(),metadata:er(L(),dl()).optional(),price_range:hS,rating:qB.optional(),tags:ue(L()).optional(),title:L(),url:L().optional(),variants:ue(uht)}),Hxn=fe({messages:ue(O9e).optional(),pagination:MSr.optional(),products:ue(o7r),ucp:Rp}),hht=fe({attribution:er(L(),L()).optional(),buyer:Ja.optional(),context:vo.optional(),line_items:ue(bS),payment:DB.optional(),signals:ro.optional(),fulfillment:pht.optional()}),Fxn=fe({messages:ue(O9e).optional(),products:ue(a7r),ucp:Rp}),$xn=fe({messages:ue(O9e).optional(),product:c7r,ucp:Rp});var Gxn=zZ.extend({token:Dr.string().optional()}),u7r=Dr.object({webhook_url:Dr.string().url().optional()}),yht=nht.extend(mht.pick({fulfillment:!0}).shape).extend(lht.pick({discounts:!0}).shape).extend(sht.pick({buyer:!0}).shape).extend({platform:u7r.optional()}),ght=dht.extend(hht.pick({fulfillment:!0}).shape).extend(aht.pick({discounts:!0}).shape).extend(iht.pick({buyer:!0}).shape).extend(cht.pick({cart_id:!0}).shape),bht=tht.extend(fht.pick({fulfillment:!0}).shape).extend(Q1t.pick({discounts:!0}).shape).extend(oht.pick({buyer:!0}).shape);eu();async function VZ(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 KZ(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 d7r=3e4,_ht=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 vht(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 wht(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"?ght:bht).safeParse(e).success)throw new Error(`UCP ${t} checkout input failed schema validation`);return e}function l7r(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 xht(e,t,r,n){try{e[t](r,n)}catch{}}function p7r(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 WZ=class{endpoint;platformProfileUrl;fetchImpl;signal;timeoutMs;boundaryLogger;requestId=1;constructor(t){this.endpoint=vht(t.endpoint,"UCP MCP endpoint").toString(),this.platformProfileUrl=vht(t.platformProfileUrl,"UCP platform profile URL").toString(),this.fetchImpl=t.fetch??fetch,this.signal=t.signal,this.timeoutMs=t.timeoutMs??d7r,this.boundaryLogger=t.logger??ke}async createCheckout(t){return await this.callCheckout("create_checkout",{meta:this.metadata(),checkout:wht(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:wht(r,"update")})}metadata(){return{"ucp-agent":{profile:this.platformProfileUrl}}}async callCheckout(t,r){let n=this.requestId++,i=KZ(this.timeoutMs,this.signal),o=(0,Eht.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 VZ(u,_ht,"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)>_ht)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(!l7r(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(!yht.safeParse(p7r(p.structuredContent)).success)throw new Bp("UCP checkout response failed schema validation");return xht(this.boundaryLogger,"info","ucp:checkout_rpc",{correlationId:o,endpointOrigin:s,rpcMethod:t,httpStatus:c,elapsedMs:Date.now()-a}),p.structuredContent}catch(u){throw xht(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 Sht=require("node:crypto");eu();var JZ="2026-04-08",f7r="dev.ucp.shopping",m7r="dev.ucp.shopping.checkout",h7r=1024*1024,y7r=1e4,g7r="https://ucp.dev",LB=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"),b7r=Dr.object({version:Dr.string().regex(/^\d{4}-\d{2}-\d{2}$/),spec:LB,schema:LB,transport:Dr.enum(["rest","mcp","a2a","embedded"]),endpoint:LB.optional()}).passthrough(),_7r=Dr.object({version:Dr.string().regex(/^\d{4}-\d{2}-\d{2}$/),spec:LB,schema:LB,extends:Dr.union([Dr.string(),Dr.array(Dr.string()).min(1)]).optional()}).passthrough(),v7r=Dr.object({ucp:Dr.object({version:Dr.string().regex(/^\d{4}-\d{2}-\d{2}$/),services:Dr.record(Dr.array(b7r)),capabilities:Dr.record(Dr.array(_7r)),payment_handlers:Dr.record(Dr.array(Dr.unknown())).optional()}).passthrough(),signing_keys:Dr.array(Dr.unknown()).optional()}).passthrough();function w7r(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 GZ(e,t){if(new URL(e).origin!==g7r)throw new Error(`${t} must be governed by the ucp.dev namespace`)}function Aht(e,t,r,n){try{e[t](r,n)}catch{}}async function x7r(e,t={}){let r=w7r(e,"UCP business URL"),n=KZ(t.timeoutMs??y7r,t.signal),i=t.logger??ke,o=(0,Sht.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 VZ(c,h7r,"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=v7r.safeParse(d);if(!l.success)throw new Error("UCP profile response does not match the 2026-04-08 profile shape");return Aht(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 Aht(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 E7r(e){if(e.ucp.version!==JZ)throw new Error(`Unsupported UCP version: ${e.ucp.version}`);let t=e.ucp.capabilities[m7r]?.find(i=>i.version===JZ);if(!t)throw new Error("Business does not advertise UCP checkout 2026-04-08");GZ(t.spec,"Checkout capability spec"),GZ(t.schema,"Checkout capability schema");let r=e.ucp.services[f7r]?.find(i=>i.version===JZ&&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");GZ(r.spec,"Shopping service spec"),GZ(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 Tht(e,t={}){let r=await x7r(e,t);return{...r,endpoint:E7r(r.profile),version:JZ}}var A7r="https://app.visacli.sh/.well-known/ucp";function S7r(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 T7r(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 j9e(e,t=new Set){if(Array.isArray(e))for(let r of e)j9e(r,t);else if(e&&typeof e=="object")for(let[r,n]of Object.entries(e))r==="endpoint"?T7r(n,t):j9e(n,t);return t}function P7r(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=j9e(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 I7r(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 O7r(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 Iht(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??Tht)(e.business),i=await(t.getCheckout??(async(u,d)=>await new WZ({endpoint:u.endpoint,platformProfileUrl:S7r(t.platformProfileUrl??process.env.VISA_UCP_PROFILE_URL??A7r)}).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=I7r(i),a=P7r(r.businessOrigin,i.continue_url,r.profile),c=`ucp_${(0,Pht.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:O7r(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>."}}F2();function C7r(){return ga()}var Op=new Th(()=>xi.getSessionToken()),k7r="4.1.0-rc.33",PEn=["","","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(`
20893
- `);function R7r(e){if(!e||typeof e!="string")return{opened:!1,blockedReason:"invalid_url"};let t=SS(e);if(!t)return{opened:!1,blockedReason:"invalid_url"};if(HEe())return{opened:!1,url:t,blockedReason:"suppressed"};let r=AS();if(r.headless)return ke.info(`Browser auto-open skipped (${r.reason}). URL: ${t}`),{opened:!1,url:t,blockedReason:"headless"};let i=[C7r(),yl()].filter(s=>!!s).map(s=>xxe(t,s)).find(Boolean)??null;if(!i)return ke.info(`Browser auto-open skipped (non-internal host). URL: ${t}`),{opened:!1,url:t,blockedReason:"non_internal_host"};let o=tN(i);return o?((0,Cht.execFile)(o.cmd,o.args,s=>{s&&ke.warn(`Browser open failed: ${s.message}. URL: ${i}`)}),{opened:!0,url:i}):(ke.info(`No browser command for platform "${ZZ.platform()}". URL: ${i}`),{opened:!1,url:i,blockedReason:"unsupported_platform"})}function B7r(){let e=!1,t;try{let n=kht.join(ZZ.homedir(),".claude","settings.json");if(YZ.existsSync(n)){let i=JSON.parse(YZ.readFileSync(n,"utf-8")),o=typeof i.statusLine=="object"?i.statusLine.command:"";e=xh(o)}}catch{}let r=cN();return r||(t="visa-cli config hud enable"),{statusLine:e,shellHud:r,...t?{shellHudSetup:t}:{}}}async function N7r(e){let t=await Op.getStatus(e);return t.hud=B7r(),!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=k7r,t}async function j7r(e,t){return await Op.feedback(e.message,e.transaction_id,t)}async function U7r(e){let t=await sB({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 U9e=new Set(["auth.serverUrl"]);function zB(){return Object.keys(H2).filter(e=>!U9e.has(e)).sort()}function Rht(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:zB()}}async function q7r(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(U9e.has(e.key))return ke.warn("config:set:rejected:mcp-forbidden",{key:e.key}),Rht(e.key,"set");ke.info("config:set",{key:e.key});try{let t=EN(e.key,e.value);return ke.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: ${zB().join(", ")}. For auth.serverUrl, use the shell command instead.`:t.message;return ke.warn("config:set:rejected",{key:e.key,code:r,error:n}),{success:!1,error:n,code:r,settableKeys:zB()}}}async function M7r(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(U9e.has(e.key))return ke.warn("config:unset:rejected:mcp-forbidden",{key:e.key}),Rht(e.key,"unset");ke.info("config:unset",{key:e.key});try{let t=AN(e.key);return ke.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: ${zB().join(", ")}. For auth.serverUrl, use the shell command instead.`:t.message;return ke.warn("config:unset:rejected",{key:e.key,code:r,error:n}),{success:!1,error:n,code:r,settableKeys:zB()}}}async function D7r(e=yl(),t=!1){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."};if(!t){let p=iB();if(p.kind==="claimed"){let f=p.credential;return ke.info("agent:enroll_already_connected",{keyBound:f.keyBound}),{success:!0,alreadyConnected:!0,...f.name?{name:f.name}:{},keyBound:f.keyBound,message:`This device is already connected${f.name?` as ${f.name}`:""} \u2014 nothing to pair. To add or change spending on this identity, run \`visa agent add-rail\`. Call enroll_agent with {"action":"start","force":true} to start a brand-new enrollment anyway.`}}}let{challenge:r,confirmCode:n,agentPkX:i,walletPkHex:o}=nB(),s=jS(e),a=`${s}?cli=${r}&cliPk=${i}${o?`&walletPk=${o}`:""}`;ke.info("agent:enroll_open",{url:s});let c=R7r(a),u="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",d=`CONFIRMATION CODE: ${n} \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.`,l='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 c.opened?{success:!0,opened:!0,browserUrl:c.url,confirmCode:n,message:`Opened the Visa Verified Agent enrollment in your browser (${u}). ${d} ${l} 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:c.url??a,confirmCode:n,message:`Open this URL in a browser to enroll your agent (${u}): ${c.url??a} \u2014 ${d} ${l}`}}async function L7r(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 oB(e);switch(ke.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 Oht(){if(await xi.clearAll(),!!Ih())try{await CN()}catch(e){ke.warn("reset:touchid_key_delete_failed",{error:e instanceof Error?e.message:String(e)})}}async function z7r(e,t){if(typeof e.confirm!="boolean"||e.confirm!==!0)return{success:!1,message:"Please confirm by setting confirm: true to reset"};if(ke.info("reset:attempt"),e.localOnly)return await Oht(),ke.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 Oht(),ke.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 H7r(e){if(!e.name)return{success:!1,error:"name is required"};try{let{registerName:t,ensureMailbox:r}=await Promise.resolve().then(()=>(y4(),_B)),n=await t(e.name);return await r(e.name),{success:!0,...n}}catch(t){let{CardRequiredError:r}=await Promise.resolve().then(()=>(nw(),YAe));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 F7r(e){if(!e.name)return{success:!1,error:"name is required"};try{let{resolveMeshName:t}=await Promise.resolve().then(()=>(y4(),_B));return{success:!0,...await t(e.name)}}catch(t){return{success:!1,error:t instanceof Error?t.message:String(t)}}}async function $7r(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(()=>(y4(),_B)),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 V7r(e){try{let{readInbox:t,resolveActingName:r,meshName:n}=await Promise.resolve().then(()=>(y4(),_B)),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 M4=class{static async subwayRegister(t){return H7r(t||{})}static async subwayFind(t){return F7r(t||{})}static async subwaySend(t){return $7r(t||{})}static async subwayInbox(t){return V7r(t||{})}static async getStatus(t){return N7r(t)}static async feedback(t,r){return j7r(t,r)}static async configList(t){return U7r(t||{})}static async configSet(t){return q7r(t||{})}static async configUnset(t){return M7r(t||{})}static async reset(t,r){return z7r(t,r)}static async enrollAgent(t={},r){let n=t?.action??"start";return n==="start"?D7r(void 0,t?.force===!0):n==="claim"?L7r():{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 N1t(t)}static async ucpCheckoutHandoff(t,r){return KA("ucp_checkout_handoff")&&(await rZ(),KA("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."}:Iht(t)}static async payMerchantStatus(t={},r){return B1t(t)}static async startCardMandate(t={},r){return j1t(t)}static async submitFeedback(t,r,n){ke.info("feedback:submit",{length:t.length,transactionId:r,hasContext:!!n});try{let i=await Op.submitFeedback(t,r,n);return ke.info("feedback:submitted",{transactionId:r}),i}catch(i){let o=i instanceof Error?i.message:"Unknown error";throw ke.error("feedback:error",{error:o,transactionId:r}),i}}static async getFeedback(t,r){ke.info("feedback:list",{limit:t||20});try{let n=await Op.getFeedback(t,r);return ke.info("feedback:listed",{count:n?.feedback?.length||0}),n}catch(n){let i=n instanceof Error?n.message:"Unknown error";throw ke.error("feedback:error",{error:i}),n}}};async function Bht(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 Nht=require("node:fs/promises"),jht=require("node:os"),Uht=require("node:path");async function q9e(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: ${VA(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 K7r=300*1e3;function W7r(){return process.env.VISA_CARD_MANDATE_LEDGER_FILE??(0,Uht.join)((0,jht.homedir)(),".visa-mcp","card-mandates.json")}async function G7r(){try{let e=JSON.parse(await(0,Nht.readFile)(W7r(),"utf8"));return!e||!Array.isArray(e.mandates)?{mandates:[]}:e}catch(e){if(e.code==="ENOENT")return null;throw e}}function J7r(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>K7r?n:n+i.amountMinor},0);return e.ceilingMinor-e.spentMinor-r}async function qht(e={}){let t=e.log??console.log,r=e.error??console.error,n=e.exit??(s=>process.exit(s)),i=e.readLedger??G7r,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
20891
+ If building from source, run native/build-win.bat first.`);Jr.mkdirSync(Ph,{recursive:!0}),Jr.copyFileSync(e,Jm);let t=TN(Jm);return Jr.writeFileSync(JEe,t,{mode:384}),Jr.writeFileSync(GEe,WEe,{mode:384}),Jm}async function ybt(){return J4()?ON():iAe()}var PN="visa-cli",IN="attestation-key";async function gbt(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 Ym("security",["delete-generic-password","-s",PN,"-a",IN],{timeout:5e3})}catch{}try{await Ym("security",["add-generic-password","-s",PN,"-a",IN,"-w",e],{timeout:5e3})}catch(t){throw new Error(`Could not store the Touch ID key in the macOS Keychain (${bbt(t)}).`)}}function bbt(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 _bt(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 vbt(){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 Ym("security",["find-generic-password","-s",PN,"-a",IN,"-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:_bt(e)}}}async function wbt(){let e=await vbt();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 sAe(e){let t=await ybt(),r;try{r=(await Ym(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 hbt(r)}var XEe=!1;function xbt(){if(!J4())return!1;try{return Jr.existsSync(Jm)||oAe()!==null?!0:(XEe||(XEe=!0,ke.warn("binary:missing:win32",{message:"visa-keychain-win.exe not found; Windows Hello attestation unavailable on this install.",binPath:Jm,searchedPrebuiltPaths:nAe})),!1)}catch{return!1}}function Ih(){return xS()||mbt()?!0:J4()?xbt():!1}async function aAe(){if(J4()){let i=await ON(),{stdout:o}=await Ym(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 sAe(["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 gbt(r),n}async function $X(e,t,r={}){if(xS())return Promise.resolve(lxe());let n=r.timeoutMs??fbt;if(J4()){let a=await ON(),c=["sign",e];t&&c.push(t);let u;try{u=(await Ym(a,c,{timeout:n})).stdout}catch(l){throw YEe(l)?ZEe(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 wbt();if(!i)throw new Error("Attestation key not found. Run setup to generate a new key.");let o=await iAe(),s=["sign",e];return t&&s.push(t),new Promise((a,c)=>{let u=(0,FX.execFile)(o,s,{timeout:n},(d,l)=>{let p=(l||"").trim();if(d){p.startsWith("ERROR:")?c(new Error(p.slice(6))):YEe(d)?c(ZEe(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 CN(){if(J4()){try{let e=await ON();await Ym(e,["delete-key"],{timeout:1e4})}catch{}return}if(await Mp())try{await Ym("security",["delete-generic-password","-s",PN,"-a",IN],{timeout:5e3})}catch{}try{await sAe(["delete-key"])}catch{}}N2();eu();rN();K8e();var Cht=require("child_process"),YZ=ve(require("fs")),ZZ=ve(require("os")),kht=ve(require("path"));F2();KB();var rmt="4.1.0-rc.34";function W8e(e,t){return t?{kind:"env",var:e}:{kind:"default"}}function W3r(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=LX(t);return i!==void 0?{value:i,source:{kind:"settings"}}:{value:r!=="opt-in",source:{kind:"default"}}}function $A(e){return e==null?"\u2014":e?"yes":"no"}async function sB(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=DX("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:$A(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=W3r("VISA_SUPPRESS_BROWSER","ui.suppressBrowser","opt-in");n.push({key:"ui.suppressBrowser",value:c.value,formatted:$A(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:$A(!u),source:d}),n.push({key:"client.version",value:rmt,formatted:rmt,source:{kind:"default"}}),e.includeDev){let l=process.env.VISA_MOCK_KEYCHAIN,p=_h();n.push({key:"dev.mockKeychain",value:p,formatted:$A(p),source:W8e("VISA_MOCK_KEYCHAIN",!!l),hint:sX()});let f=process.env.VISA_MOCK_TOUCHID,m=xS();n.push({key:"dev.mockTouchid",value:m,formatted:$A(m),source:W8e("VISA_MOCK_TOUCHID",!!f),hint:sX()});let h=process.env.VISA_CLI_DEBUG;n.push({key:"dev.debug",value:!!h,formatted:$A(!!h),source:W8e("VISA_CLI_DEBUG",!!h)})}return{entries:n,statusError:r}}function G3r(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 nmt(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}(${G3r(o.source)})`),t.verbose&&o.hint&&i.push(` ${"\u21B3".padStart(r)} ${o.hint}`)}return i.join(`
20892
+ `)}function imt(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 w9e=require("node:os"),PB=require("node:path"),IB=require("node:fs/promises"),E1t=require("node:fs"),A1t=require("node:url"),S1t=require("node:crypto");eu();var J3r=new Set(["USD","USDC","EUR","GBP","CAD","AUD"]);function VA(e,t){let r=t.toUpperCase();return!Number.isFinite(e)||!J3r.has(r)?`${e} ${r} (minor units)`:`${(e/100).toFixed(2)} ${r}`}var ah=class extends Error{constructor(t){super(t),this.name="PayValidationError"}};function G8e(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 Y3r={ucp_checkout_handoff:"checkout_agent_access",pay_merchant:"checkout_agent_access",pay_merchant_status:"checkout_agent_access",start_card_mandate:"checkout_agent_access"},Z3r=300*1e3,J8e={},omt=0,aB=null;function X3r(){return aB||(aB=(async()=>{try{let e=await Op.getFeatureFlags();J8e=e&&e.flags||{},omt=Date.now()}catch(e){J8e={},ke.warn("feature-flags:fetch-failed",{error:e instanceof Error?e.message:String(e)})}finally{aB=null}})(),aB)}async function rZ(){Date.now()-omt<Z3r||await X3r()}function KA(e){let t=Y3r[e];return t?J8e[t]!==!0:!1}var smt=require("node:crypto"),cB=class extends Error{constructor(r){super(`Approval handoff already exists with different inputs for review ${r}`);this.reviewId=r;this.name="PayMerchantApprovalConflictError"}reviewId},nZ=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 cB(t.reviewId);return await this.waitUntilQueryable(n.ready),this.snapshot(n)}let i=()=>{},o=new Promise(u=>{i=u}),s=(this.options.idFactory??smt.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 T1t(e){return[(0,PB.join)(e,"checkout-engine","index.js"),(0,PB.join)(e,"..","checkout-engine","index.js")]}function FEr(e,t=E1t.existsSync){return T1t(e).find(r=>t(r))??null}var NZ=null,P1t=async()=>{if(NZ)return NZ;let e=FEr(__dirname);if(!e)throw new Error(`Cannot find module: the checkout engine was not packaged (looked in ${T1t(__dirname).join(" and ")}).`);return NZ=(await import((0,A1t.pathToFileURL)(e).href)).createCliCheckoutEngine({cardDrawVerdict:await $Er(),cardMandateRegister:await VEr()}),NZ};async function $Er(){let e=await Promise.resolve().then(()=>(_9e(),b9e));return{loadCapability:()=>e.loadCardMandateCapability(),fetchVerdict:t=>e.fetchCardDrawVerdict(t)}}async function VEr(){let e=await Promise.resolve().then(()=>(_9e(),b9e));return{loadCapability:()=>e.loadCardMandateCapability(),register:t=>e.registerCardMandate(t)}}async function x9e(){return KA("pay_merchant")?(await rZ(),KA("pay_merchant")):!1}var I1t=(0,PB.join)((0,w9e.homedir)(),".visa-mcp","agent-credential.json"),O1t=(0,PB.join)((0,w9e.homedir)(),".visa-mcp","contact.json"),C1t=new nZ;function OB(e){return e.replace(/https?:\/\/[^\s"')\]]+/gi,t=>{try{return new URL(t).origin}catch{return"[url]"}}).slice(0,300)}var KEr=new Set(["USD","USDC","EUR","GBP","CAD","AUD"]);function k1t(e){return KEr.has(e)?e:null}async function jZ(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?OB(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:k1t(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){ke.warn("pay_merchant:telemetry_failed",{action:e.action,error:t instanceof Error?t.message:String(t)})}}async function x1t(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?OB(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:k1t(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){ke.warn("start_card_mandate:telemetry_failed",{error:t instanceof Error?t.message:String(t)})}}function v9e(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 R1t(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=OB(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 B1t(e={},t={}){if(await(t.flagDisabled??x9e)())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??C1t).get(n);return o?R1t(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 N1t(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:zX()&&!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??x9e)())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??C1t,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=G8e(e.url??"").toString(),c=v9e(e.amount)}catch(C){if(C instanceof ah)return{success:!1,message:C.message};throw C}let d=t.credentialPath??I1t,l=t.contactPath??O1t;try{await(0,IB.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,IB.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??P1t,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"){ke.info("pay_merchant:review",{host:x,currency:u});let C;try{C=await h.review(y)}catch(I){throw await jZ({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 jZ({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 ${VA(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=>{ke.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 jZ({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 jZ({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,S1t.createHash)("sha256").update(JSON.stringify([E,a,c,u,A])).digest("hex");ke.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=>{ke.info("pay_merchant:approval_handoff_ready",{reviewId:E}),k(j)});return ke.info("pay_merchant:approval_handoff_completed",{reviewId:E,success:q.success===!0}),q}catch(q){throw ke.warn("pay_merchant:approval_handoff_failed",{reviewId:E,error:OB(q instanceof Error?q.message:String(q))}),q}}});return R1t(I,"authorize")}catch(I){if(I instanceof cB)return ke.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 j1t(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??x9e)())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:G8e(e.url??"").toString(),c=v9e(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=v9e(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??I1t,p=t.contactPath??O1t;try{await(0,IB.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,IB.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??P1t,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();ke.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?OB(A.message):String(A);return ke.warn("start_card_mandate:failed",{message:S}),await x1t({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&&ke.warn("start_card_mandate:register_failed",{mandateId:v.mandateId,host:y}),await x1t({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 ${VA(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 Pht=require("node:crypto");var Eht=require("node:crypto");var Dr={};Mi(Dr,{BRAND:()=>bAr,DIRTY:()=>w4,EMPTY_PATH:()=>YEr,INVALID:()=>gt,NEVER:()=>GAr,OK:()=>ha,ParseStatus:()=>Rs,Schema:()=>Lt,ZodAny:()=>I2,ZodArray:()=>gh,ZodBigInt:()=>E4,ZodBoolean:()=>A4,ZodBranded:()=>kB,ZodCatch:()=>j4,ZodDate:()=>S4,ZodDefault:()=>N4,ZodDiscriminatedUnion:()=>MZ,ZodEffects:()=>cl,ZodEnum:()=>R4,ZodError:()=>Zc,ZodFirstPartyTypeKind:()=>Et,ZodFunction:()=>LZ,ZodIntersection:()=>O4,ZodIssueCode:()=>ye,ZodLazy:()=>C4,ZodLiteral:()=>k4,ZodMap:()=>uS,ZodNaN:()=>lS,ZodNativeEnum:()=>B4,ZodNever:()=>kp,ZodNull:()=>P4,ZodNullable:()=>$m,ZodNumber:()=>x4,ZodObject:()=>Xc,ZodOptional:()=>sl,ZodParsedType:()=>Re,ZodPipeline:()=>RB,ZodPromise:()=>O2,ZodReadonly:()=>U4,ZodRecord:()=>DZ,ZodSchema:()=>Lt,ZodSet:()=>dS,ZodString:()=>P2,ZodSymbol:()=>aS,ZodTransformer:()=>cl,ZodTuple:()=>Fm,ZodType:()=>Lt,ZodUndefined:()=>T4,ZodUnion:()=>I4,ZodUnknown:()=>yh,ZodVoid:()=>cS,addIssueToContext:()=>Se,any:()=>dl,array:()=>ue,bigint:()=>xAr,boolean:()=>ul,coerce:()=>Ju,custom:()=>F1t,date:()=>EAr,datetimeRegex:()=>z1t,defaultErrorMap:()=>mh,discriminatedUnion:()=>CAr,effect:()=>LAr,enum:()=>ll,function:()=>jAr,getErrorMap:()=>iS,getParsedType:()=>Hm,instanceof:()=>vAr,intersection:()=>kAr,isAborted:()=>UZ,isAsync:()=>oS,isDirty:()=>qZ,isValid:()=>T2,late:()=>_Ar,lazy:()=>UAr,literal:()=>qAr,makeIssue:()=>CB,map:()=>BAr,nan:()=>wAr,nativeEnum:()=>MAr,never:()=>PAr,null:()=>pS,nullable:()=>HAr,number:()=>Rr,object:()=>fe,objectUtil:()=>E9e,oboolean:()=>WAr,onumber:()=>KAr,optional:()=>zAr,ostring:()=>VAr,pipeline:()=>$Ar,preprocess:()=>FAr,promise:()=>DAr,quotelessJson:()=>WEr,record:()=>er,set:()=>NAr,setErrorMap:()=>JEr,strictObject:()=>OAr,string:()=>L,symbol:()=>AAr,transformer:()=>LAr,tuple:()=>RAr,undefined:()=>SAr,union:()=>fS,unknown:()=>TAr,util:()=>Qt,void:()=>IAr});var Qt;(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})(Qt||(Qt={}));var E9e;(function(e){e.mergeShapes=(t,r)=>({...t,...r})})(E9e||(E9e={}));var Re=Qt.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),Hm=e=>{switch(typeof e){case"undefined":return Re.undefined;case"string":return Re.string;case"number":return Number.isNaN(e)?Re.nan:Re.number;case"boolean":return Re.boolean;case"function":return Re.function;case"bigint":return Re.bigint;case"symbol":return Re.symbol;case"object":return Array.isArray(e)?Re.array:e===null?Re.null:e.then&&typeof e.then=="function"&&e.catch&&typeof e.catch=="function"?Re.promise:typeof Map<"u"&&e instanceof Map?Re.map:typeof Set<"u"&&e instanceof Set?Re.set:typeof Date<"u"&&e instanceof Date?Re.date:Re.object;default:return Re.unknown}};var ye=Qt.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"]),WEr=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,Qt.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 GEr=(e,t)=>{let r;switch(e.code){case ye.invalid_type:e.received===Re.undefined?r="Required":r=`Expected ${e.expected}, received ${e.received}`;break;case ye.invalid_literal:r=`Invalid literal value, expected ${JSON.stringify(e.expected,Qt.jsonStringifyReplacer)}`;break;case ye.unrecognized_keys:r=`Unrecognized key(s) in object: ${Qt.joinValues(e.keys,", ")}`;break;case ye.invalid_union:r="Invalid input";break;case ye.invalid_union_discriminator:r=`Invalid discriminator value. Expected ${Qt.joinValues(e.options)}`;break;case ye.invalid_enum_value:r=`Invalid enum value. Expected ${Qt.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}"`:Qt.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,Qt.assertNever(e)}return{message:r}},mh=GEr;var U1t=mh;function JEr(e){U1t=e}function iS(){return U1t}var CB=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}},YEr=[];function Se(e,t){let r=iS(),n=CB({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"}),w4=e=>({status:"dirty",value:e}),ha=e=>({status:"valid",value:e}),UZ=e=>e.status==="aborted",qZ=e=>e.status==="dirty",T2=e=>e.status==="valid",oS=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}},q1t=(e,t)=>{if(T2(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 Hm(t.data)}_getOrReturnCtx(t,r){return r||{common:t.parent.common,data:t.data,parsedType:Hm(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:Hm(t.data),schemaErrorMap:this._def.errorMap,path:t.path,parent:t.parent}}}_parseSync(t){let r=this._parse(t);if(oS(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:Hm(t)},i=this._parseSync({data:t,path:n.path,parent:n});return q1t(n,i)}"~validate"(t){let r={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:Hm(t)};if(!this["~standard"].async)try{let n=this._parseSync({data:t,path:[],parent:r});return T2(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=>T2(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:Hm(t)},i=this._parse({data:t,path:n.path,parent:n}),o=await(oS(i)?i:Promise.resolve(i));return q1t(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 $m.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return gh.create(this)}promise(){return O2.create(this,this._def)}or(t){return I4.create([this,t],this._def)}and(t){return O4.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 N4({...Ut(this._def),innerType:this,defaultValue:r,typeName:Et.ZodDefault})}brand(){return new kB({typeName:Et.ZodBranded,type:this,...Ut(this._def)})}catch(t){let r=typeof t=="function"?t:()=>t;return new j4({...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 RB.create(this,t)}readonly(){return U4.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},ZEr=/^c[^\s-]{8,}$/i,XEr=/^[0-9a-z]+$/,QEr=/^[0-9A-HJKMNP-TV-Z]{26}$/i,eAr=/^[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,tAr=/^[a-z0-9_-]{21}$/i,rAr=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,nAr=/^[-+]?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)?)??$/,iAr=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,oAr="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",A9e,sAr=/^(?:(?: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])$/,aAr=/^(?:(?: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])$/,cAr=/^(([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]))$/,uAr=/^(([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])$/,dAr=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,lAr=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,D1t="((\\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])))",pAr=new RegExp(`^${D1t}$`);function L1t(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 fAr(e){return new RegExp(`^${L1t(e)}$`)}function z1t(e){let t=`${D1t}T${L1t(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 mAr(e,t){return!!((t==="v4"||!t)&&sAr.test(e)||(t==="v6"||!t)&&cAr.test(e))}function hAr(e,t){if(!rAr.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 yAr(e,t){return!!((t==="v4"||!t)&&aAr.test(e)||(t==="v6"||!t)&&uAr.test(e))}var P2=class e extends Lt{_parse(t){if(this._def.coerce&&(t.data=String(t.data)),this._getType(t)!==Re.string){let o=this._getOrReturnCtx(t);return Se(o,{code:ye.invalid_type,expected:Re.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")iAr.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")A9e||(A9e=new RegExp(oAr,"u")),A9e.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")eAr.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")tAr.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")ZEr.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")XEr.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")QEr.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"?z1t(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"?pAr.test(t.data)||(i=this._getOrReturnCtx(t,i),Se(i,{code:ye.invalid_string,validation:"date",message:o.message}),n.dirty()):o.kind==="time"?fAr(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"?nAr.test(t.data)||(i=this._getOrReturnCtx(t,i),Se(i,{validation:"duration",code:ye.invalid_string,message:o.message}),n.dirty()):o.kind==="ip"?mAr(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"?hAr(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"?yAr(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"?dAr.test(t.data)||(i=this._getOrReturnCtx(t,i),Se(i,{validation:"base64",code:ye.invalid_string,message:o.message}),n.dirty()):o.kind==="base64url"?lAr.test(t.data)||(i=this._getOrReturnCtx(t,i),Se(i,{validation:"base64url",code:ye.invalid_string,message:o.message}),n.dirty()):Qt.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}};P2.create=e=>new P2({checks:[],typeName:Et.ZodString,coerce:e?.coerce??!1,...Ut(e)});function gAr(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 x4=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)!==Re.number){let o=this._getOrReturnCtx(t);return Se(o,{code:ye.invalid_type,expected:Re.number,received:o.parsedType}),gt}let n,i=new Rs;for(let o of this._def.checks)o.kind==="int"?Qt.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"?gAr(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()):Qt.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"&&Qt.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)}};x4.create=e=>new x4({checks:[],typeName:Et.ZodNumber,coerce:e?.coerce||!1,...Ut(e)});var E4=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)!==Re.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()):Qt.assertNever(o);return{status:i.value,value:t.data}}_getInvalidInput(t){let r=this._getOrReturnCtx(t);return Se(r,{code:ye.invalid_type,expected:Re.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}};E4.create=e=>new E4({checks:[],typeName:Et.ZodBigInt,coerce:e?.coerce??!1,...Ut(e)});var A4=class extends Lt{_parse(t){if(this._def.coerce&&(t.data=!!t.data),this._getType(t)!==Re.boolean){let n=this._getOrReturnCtx(t);return Se(n,{code:ye.invalid_type,expected:Re.boolean,received:n.parsedType}),gt}return ha(t.data)}};A4.create=e=>new A4({typeName:Et.ZodBoolean,coerce:e?.coerce||!1,...Ut(e)});var S4=class e extends Lt{_parse(t){if(this._def.coerce&&(t.data=new Date(t.data)),this._getType(t)!==Re.date){let o=this._getOrReturnCtx(t);return Se(o,{code:ye.invalid_type,expected:Re.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()):Qt.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}};S4.create=e=>new S4({checks:[],coerce:e?.coerce||!1,typeName:Et.ZodDate,...Ut(e)});var aS=class extends Lt{_parse(t){if(this._getType(t)!==Re.symbol){let n=this._getOrReturnCtx(t);return Se(n,{code:ye.invalid_type,expected:Re.symbol,received:n.parsedType}),gt}return ha(t.data)}};aS.create=e=>new aS({typeName:Et.ZodSymbol,...Ut(e)});var T4=class extends Lt{_parse(t){if(this._getType(t)!==Re.undefined){let n=this._getOrReturnCtx(t);return Se(n,{code:ye.invalid_type,expected:Re.undefined,received:n.parsedType}),gt}return ha(t.data)}};T4.create=e=>new T4({typeName:Et.ZodUndefined,...Ut(e)});var P4=class extends Lt{_parse(t){if(this._getType(t)!==Re.null){let n=this._getOrReturnCtx(t);return Se(n,{code:ye.invalid_type,expected:Re.null,received:n.parsedType}),gt}return ha(t.data)}};P4.create=e=>new P4({typeName:Et.ZodNull,...Ut(e)});var I2=class extends Lt{constructor(){super(...arguments),this._any=!0}_parse(t){return ha(t.data)}};I2.create=e=>new I2({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:Re.never,received:r.parsedType}),gt}};kp.create=e=>new kp({typeName:Et.ZodNever,...Ut(e)});var cS=class extends Lt{_parse(t){if(this._getType(t)!==Re.undefined){let n=this._getOrReturnCtx(t);return Se(n,{code:ye.invalid_type,expected:Re.void,received:n.parsedType}),gt}return ha(t.data)}};cS.create=e=>new cS({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!==Re.array)return Se(r,{code:ye.invalid_type,expected:Re.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 sS(e){if(e instanceof Xc){let t={};for(let r in e.shape){let n=e.shape[r];t[r]=sl.create(sS(n))}return new Xc({...e._def,shape:()=>t})}else return e instanceof gh?new gh({...e._def,type:sS(e.element)}):e instanceof sl?sl.create(sS(e.unwrap())):e instanceof $m?$m.create(sS(e.unwrap())):e instanceof Fm?Fm.create(e.items.map(t=>sS(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=Qt.objectKeys(t);return this._cached={shape:t,keys:r},this._cached}_parse(t){if(this._getType(t)!==Re.object){let u=this._getOrReturnCtx(t);return Se(u,{code:ye.invalid_type,expected:Re.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 Qt.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 Qt.objectKeys(this.shape))t[n]||(r[n]=this.shape[n]);return new e({...this._def,shape:()=>r})}deepPartial(){return sS(this)}partial(t){let r={};for(let n of Qt.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 Qt.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 H1t(Qt.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 I4=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}};I4.create=(e,t)=>new I4({options:e,typeName:Et.ZodUnion,...Ut(t)});var hh=e=>e instanceof C4?hh(e.schema):e instanceof cl?hh(e.innerType()):e instanceof k4?[e.value]:e instanceof R4?e.options:e instanceof B4?Qt.objectValues(e.enum):e instanceof N4?hh(e._def.innerType):e instanceof T4?[void 0]:e instanceof P4?[null]:e instanceof sl?[void 0,...hh(e.unwrap())]:e instanceof $m?[null,...hh(e.unwrap())]:e instanceof kB||e instanceof U4?hh(e.unwrap()):e instanceof j4?hh(e._def.innerType):[],MZ=class e extends Lt{_parse(t){let{ctx:r}=this._processInputParams(t);if(r.parsedType!==Re.object)return Se(r,{code:ye.invalid_type,expected:Re.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 S9e(e,t){let r=Hm(e),n=Hm(t);if(e===t)return{valid:!0,data:e};if(r===Re.object&&n===Re.object){let i=Qt.objectKeys(t),o=Qt.objectKeys(e).filter(a=>i.indexOf(a)!==-1),s={...e,...t};for(let a of o){let c=S9e(e[a],t[a]);if(!c.valid)return{valid:!1};s[a]=c.data}return{valid:!0,data:s}}else if(r===Re.array&&n===Re.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=S9e(s,a);if(!c.valid)return{valid:!1};i.push(c.data)}return{valid:!0,data:i}}else return r===Re.date&&n===Re.date&&+e==+t?{valid:!0,data:e}:{valid:!1}}var O4=class extends Lt{_parse(t){let{status:r,ctx:n}=this._processInputParams(t),i=(o,s)=>{if(UZ(o)||UZ(s))return gt;let a=S9e(o.value,s.value);return a.valid?((qZ(o)||qZ(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}))}};O4.create=(e,t,r)=>new O4({left:e,right:t,typeName:Et.ZodIntersection,...Ut(r)});var Fm=class e extends Lt{_parse(t){let{status:r,ctx:n}=this._processInputParams(t);if(n.parsedType!==Re.array)return Se(n,{code:ye.invalid_type,expected:Re.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})}};Fm.create=(e,t)=>{if(!Array.isArray(e))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new Fm({items:e,typeName:Et.ZodTuple,rest:null,...Ut(t)})};var DZ=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!==Re.object)return Se(n,{code:ye.invalid_type,expected:Re.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:P2.create(),valueType:t,typeName:Et.ZodRecord,...Ut(r)})}},uS=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!==Re.map)return Se(n,{code:ye.invalid_type,expected:Re.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}}}};uS.create=(e,t,r)=>new uS({valueType:t,keyType:e,typeName:Et.ZodMap,...Ut(r)});var dS=class e extends Lt{_parse(t){let{status:r,ctx:n}=this._processInputParams(t);if(n.parsedType!==Re.set)return Se(n,{code:ye.invalid_type,expected:Re.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)}};dS.create=(e,t)=>new dS({valueType:e,minSize:null,maxSize:null,typeName:Et.ZodSet,...Ut(t)});var LZ=class e extends Lt{constructor(){super(...arguments),this.validate=this.implement}_parse(t){let{ctx:r}=this._processInputParams(t);if(r.parsedType!==Re.function)return Se(r,{code:ye.invalid_type,expected:Re.function,received:r.parsedType}),gt;function n(a,c){return CB({data:a,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,iS(),mh].filter(u=>!!u),issueData:{code:ye.invalid_arguments,argumentsError:c}})}function i(a,c){return CB({data:a,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,iS(),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 O2){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:Fm.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||Fm.create([]).rest(yh.create()),returns:r||yh.create(),typeName:Et.ZodFunction,...Ut(n)})}},C4=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})}};C4.create=(e,t)=>new C4({getter:e,typeName:Et.ZodLazy,...Ut(t)});var k4=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}};k4.create=(e,t)=>new k4({value:e,typeName:Et.ZodLiteral,...Ut(t)});function H1t(e,t){return new R4({values:e,typeName:Et.ZodEnum,...Ut(t)})}var R4=class e extends Lt{_parse(t){if(typeof t.data!="string"){let r=this._getOrReturnCtx(t),n=this._def.values;return Se(r,{expected:Qt.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})}};R4.create=H1t;var B4=class extends Lt{_parse(t){let r=Qt.getValidEnumValues(this._def.values),n=this._getOrReturnCtx(t);if(n.parsedType!==Re.string&&n.parsedType!==Re.number){let i=Qt.objectValues(r);return Se(n,{expected:Qt.joinValues(i),received:n.parsedType,code:ye.invalid_type}),gt}if(this._cache||(this._cache=new Set(Qt.getValidEnumValues(this._def.values))),!this._cache.has(t.data)){let i=Qt.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}};B4.create=(e,t)=>new B4({values:e,typeName:Et.ZodNativeEnum,...Ut(t)});var O2=class extends Lt{unwrap(){return this._def.type}_parse(t){let{ctx:r}=this._processInputParams(t);if(r.parsedType!==Re.promise&&r.common.async===!1)return Se(r,{code:ye.invalid_type,expected:Re.promise,received:r.parsedType}),gt;let n=r.parsedType===Re.promise?r.data:Promise.resolve(r.data);return ha(n.then(i=>this._def.type.parseAsync(i,{path:r.path,errorMap:r.common.contextualErrorMap})))}};O2.create=(e,t)=>new O2({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"?w4(c.value):r.value==="dirty"?w4(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"?w4(a.value):r.value==="dirty"?w4(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(!T2(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=>T2(s)?Promise.resolve(i.transform(s.value,o)).then(a=>({status:r.value,value:a})):gt);Qt.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)===Re.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 $m=class extends Lt{_parse(t){return this._getType(t)===Re.null?ha(null):this._def.innerType._parse(t)}unwrap(){return this._def.innerType}};$m.create=(e,t)=>new $m({innerType:e,typeName:Et.ZodNullable,...Ut(t)});var N4=class extends Lt{_parse(t){let{ctx:r}=this._processInputParams(t),n=r.data;return r.parsedType===Re.undefined&&(n=this._def.defaultValue()),this._def.innerType._parse({data:n,path:r.path,parent:r})}removeDefault(){return this._def.innerType}};N4.create=(e,t)=>new N4({innerType:e,typeName:Et.ZodDefault,defaultValue:typeof t.default=="function"?t.default:()=>t.default,...Ut(t)});var j4=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 oS(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}};j4.create=(e,t)=>new j4({innerType:e,typeName:Et.ZodCatch,catchValue:typeof t.catch=="function"?t.catch:()=>t.catch,...Ut(t)});var lS=class extends Lt{_parse(t){if(this._getType(t)!==Re.nan){let n=this._getOrReturnCtx(t);return Se(n,{code:ye.invalid_type,expected:Re.nan,received:n.parsedType}),gt}return{status:"valid",value:t.data}}};lS.create=e=>new lS({typeName:Et.ZodNaN,...Ut(e)});var bAr=Symbol("zod_brand"),kB=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}},RB=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(),w4(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})}},U4=class extends Lt{_parse(t){let r=this._def.innerType._parse(t),n=i=>(T2(i)&&(i.value=Object.freeze(i.value)),i);return oS(r)?r.then(i=>n(i)):n(r)}unwrap(){return this._def.innerType}};U4.create=(e,t)=>new U4({innerType:e,typeName:Et.ZodReadonly,...Ut(t)});function M1t(e,t){let r=typeof e=="function"?e(t):typeof e=="string"?{message:e}:e;return typeof r=="string"?{message:r}:r}function F1t(e,t={},r){return e?I2.create().superRefine((n,i)=>{let o=e(n);if(o instanceof Promise)return o.then(s=>{if(!s){let a=M1t(t,n),c=a.fatal??r??!0;i.addIssue({code:"custom",...a,fatal:c})}});if(!o){let s=M1t(t,n),a=s.fatal??r??!0;i.addIssue({code:"custom",...s,fatal:a})}}):I2.create()}var _Ar={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 vAr=(e,t={message:`Input not instance of ${e.name}`})=>F1t(r=>r instanceof e,t),L=P2.create,Rr=x4.create,wAr=lS.create,xAr=E4.create,ul=A4.create,EAr=S4.create,AAr=aS.create,SAr=T4.create,pS=P4.create,dl=I2.create,TAr=yh.create,PAr=kp.create,IAr=cS.create,ue=gh.create,fe=Xc.create,OAr=Xc.strictCreate,fS=I4.create,CAr=MZ.create,kAr=O4.create,RAr=Fm.create,er=DZ.create,BAr=uS.create,NAr=dS.create,jAr=LZ.create,UAr=C4.create,qAr=k4.create,ll=R4.create,MAr=B4.create,DAr=O2.create,LAr=cl.create,zAr=sl.create,HAr=$m.create,FAr=cl.createWithPreprocess,$Ar=RB.create,VAr=()=>L().optional(),KAr=()=>Rr().optional(),WAr=()=>ul().optional(),Ju={string:(e=>P2.create({...e,coerce:!0})),number:(e=>x4.create({...e,coerce:!0})),boolean:(e=>A4.create({...e,coerce:!0})),bigint:(e=>E4.create({...e,coerce:!0})),date:(e=>S4.create({...e,coerce:!0}))};var GAr=gt;var YAr=ll(["enc","sig"]),ZAr=ll(["markdown","plain"]),XAr=ll(["recoverable","requires_buyer_input","requires_buyer_review","unrecoverable"]),QAr=ll(["error","info","warning"]),yS=ll(["canceled","complete_in_progress","completed","incomplete","ready_for_complete","requires_escalation"]),eSr=ll(["completed","failed","pending"]),tSr=ll(["digital","pickup","shipping"]),rSr=ll(["fulfilled","partial","processing","removed"]),nSr=ll(["across","each"]),T9e=ll(["pickup","shipping"]),iSr=fe({config:er(L(),dl()),config_schema:L(),id:L(),instrument_schemas:ue(L()),name:L(),spec:L(),version:L()}),oSr=fe({alg:L().optional(),crv:L().optional(),e:L().optional(),kid:L(),kty:L(),n:L().optional(),use:YAr.optional(),x:L().optional(),y:L().optional()}),sSr=fe({config:er(L(),dl()).optional(),extends:L().optional(),name:L(),schema:L(),spec:L(),version:L()}),aSr=fe({endpoint:L()}),cSr=fe({schema:L()}),$1t=fe({endpoint:L(),schema:L()}),uSr=$1t,dSr=$1t,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()}),P9e=vo,V1t=fe({id:L()}),lSr=V1t,pSr=V1t,BB=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()}),zZ=fe({type:L()}),ro=fe({"dev.ucp.buyer_ip":L().optional(),"dev.ucp.user_agent":L().optional()}),I9e=ro,K1t=fe({id:L(),image_url:L().optional(),price:Rr(),title:L()}),HZ=fe({amount:Rr(),display_text:L().optional(),type:L()}),C2=fe({title:L().optional(),type:L(),url:L()}),bh=fe({code:L().optional(),content:L(),content_type:ZAr.optional(),path:L().optional(),severity:XAr.optional(),type:QAr,image_url:L().optional(),presentation:L().optional(),url:L().optional()}),O9e=bh,gS=fe({id:L(),label:L().optional(),permalink_url:L()}),fSr=fe({amount:Rr(),display_text:L()}),mSr=fe({config:er(L(),dl()).optional(),extends:L().optional(),name:L(),schema:L().optional(),spec:L().optional(),version:L()}),C9e=fe({id:L(),quantity:Rr()}),hSr=C9e,ySr=C9e,gSr=C9e,bSr=fe({fulfilled:Rr(),original:Rr().optional(),total:Rr()}),_Sr=fe({billing_address:BB.optional(),credential:zZ.optional(),display:er(L(),dl()).optional(),handler_id:L(),id:L(),type:L()}),vSr=fe({checkout_mandate:L()}),wSr=fe({merchant_authorization:L().optional(),checkout_mandate:L()}),xSr=fe({analytics:ul().optional(),marketing:ul().optional(),preferences:ul().optional(),sale_of_data:ul().optional()});var ESr=xSr;var W1t=fe({codes:ue(L()).optional()}),ASr=W1t,SSr=fe({amount:Rr(),path:L()}),TSr=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:BB.optional(),name:L().optional()}),PSr=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(HZ)}),ISr=fe({description:L().optional(),fulfillable_on:fS([pS(),L()]).optional(),line_item_ids:ue(L()),type:T9e}),OSr=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:BB.optional(),name:L().optional()}),CSr=fe({max:Rr().optional(),min:Rr().optional()}),NB=fe({taxonomy:L().optional(),value:L()}),jB=fe({html:L().optional(),markdown:L().optional(),plain:L().optional()}),mS=fe({amount:Rr(),currency:L()}),UB=fe({alt_text:L().optional(),height:Rr().optional(),type:L(),url:L(),width:Rr().optional()}),kSr=fe({id:L().optional(),label:L()}),qB=fe({count:Rr().optional(),scale_max:Rr(),scale_min:Rr().optional(),value:Rr()}),G1t=fe({available:ul().optional(),status:L().optional()}),RSr=G1t,J1t=fe({type:L(),value:L()}),BSr=J1t,NSr=fe({id:L(),match:L().optional()}),k9e=fe({id:L().optional(),label:L(),name:L()}),Y1t=k9e,Z1t=fe({links:ue(C2).optional(),name:L().optional()}),jSr=Z1t,X1t=fe({unit:L(),value:Rr()});var USr=X1t,qSr=fe({cursor:L().optional(),limit:Rr().optional()}),MSr=fe({cursor:L().optional(),has_next_page:ul(),total_count:Rr().optional()}),DSr=fe({handlers:ue(iSr).optional()}),LSr=fe({a2a:aSr.optional(),embedded:cSr.optional(),mcp:uSr.optional(),rest:dSr.optional(),spec:L(),version:L()}),bS=fe({item:lSr,quantity:Rr()}),zSr=fe({billing_address:BB.optional(),credential:zZ.optional(),display:er(L(),dl()).optional(),handler_id:L(),id:L(),type:L(),selected:ul().optional()}),MB=fe({id:L().optional(),item:pSr,parent_id:L().optional(),quantity:Rr()}),FZ=fe({instruments:ue(zSr).optional()}),HSr=FZ,DB=FZ,_S=FZ,$Z=FZ,q4=fe({id:L(),item:K1t,parent_id:L().optional(),quantity:Rr(),totals:ue(HZ)}),k2=fe({amount:Rr(),display_text:L().optional(),type:L(),lines:ue(fSr).optional()}),Rp=fe({capabilities:er(L(),ue(mSr)),version:L()}),FSr=fe({description:L().optional(),id:L(),line_items:ue(hSr).optional(),occurred_at:Ju.date(),status:eSr,totals:ue(HZ).optional(),type:L()}),$Sr=fe({carrier:L().optional(),description:L().optional(),id:L(),line_items:ue(ySr),occurred_at:Ju.date(),tracking_number:L().optional(),tracking_url:L().optional(),type:L()}),VSr=fe({description:L().optional(),destination:BB,fulfillable_on:L().optional(),id:L(),line_items:ue(gSr),method_type:tSr}),KSr=fe({id:L(),item:K1t,parent_id:L().optional(),quantity:bSr,status:rSr,totals:ue(HZ)}),Cxn=fe({payment_data:_Sr}),kxn=fe({ap2:vSr.optional()}),Rxn=fe({attribution:er(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(q4),links:ue(C2),messages:ue(bh).optional(),order:gS.optional(),payment:_S.optional(),signals:ro.optional(),status:yS,totals:ue(k2),ucp:Rp,ap2:wSr.optional()}),R9e=fe({email:L().optional(),first_name:L().optional(),last_name:L().optional(),phone_number:L().optional(),consent:ESr.optional()}),WSr=R9e,GSr=R9e,Q1t=fe({attribution:er(L(),L()).optional(),buyer:Ja.optional(),context:vo.optional(),line_items:ue(MB),payment:$Z.optional(),signals:ro.optional(),discounts:ASr.optional()}),JSr=fe({allocations:ue(SSr).optional(),amount:Rr(),automatic:ul().optional(),code:L().optional(),eligibility:L().optional(),method:nSr.optional(),priority:Rr().optional(),provisional:ul().optional(),title:L()}),eht=fe({id:L(),line_item_ids:ue(L()),options:ue(PSr).optional(),selected_option_id:fS([pS(),L()]).optional()}),YSr=fe({destinations:ue(OSr).optional(),groups:ue(eht).optional(),id:L(),line_item_ids:ue(L()),selected_destination_id:fS([pS(),L()]).optional(),type:T9e}),Bxn=fe({attribution:er(L(),L()).optional(),buyer:Ja.optional(),context:vo.optional(),line_items:ue(bS),signals:ro.optional()}),Nxn=fe({attribution:er(L(),L()).optional(),buyer:Ja.optional(),context:vo.optional(),id:L(),line_items:ue(MB),signals:ro.optional()}),jxn=fe({attribution:er(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(q4),links:ue(C2).optional(),messages:ue(bh).optional(),signals:ro.optional(),totals:ue(k2),ucp:Rp}),ZSr=fe({attribution:er(L(),L()).optional(),buyer:Ja.optional(),context:vo.optional(),line_items:ue(MB),payment:$Z.optional(),signals:ro.optional()}),tht=ZSr,Uxn=fe({attribution:er(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(q4),links:ue(C2),messages:ue(bh).optional(),order:gS.optional(),payment:_S.optional(),signals:ro.optional(),status:yS,totals:ue(k2),ucp:Rp,cart_id:L().optional()}),B9e=fe({categories:ue(L()).optional(),price:CSr.optional()}),hS=fe({max:mS,min:mS}),N9e=fe({name:L(),values:ue(kSr)}),rht=fe({amount:Rr(),currency:L(),measure:X1t,reference:USr}),XSr=rht,qxn=fe({attribution:er(L(),L()).optional(),context:P9e.optional(),filters:B9e.optional(),id:L(),preferences:ue(L()).optional(),selected:ue(Y1t).optional(),signals:I9e.optional()}),Mxn=fe({attribution:er(L(),L()).optional(),context:P9e.optional(),filters:B9e.optional(),pagination:qSr.optional(),query:L().optional(),signals:I9e.optional()}),QSr=fe({capabilities:ue(sSr),services:er(L(),LSr),version:L()}),Dxn=fe({attribution:er(L(),L()).optional(),payment:HSr,signals:ro.optional()}),nht=fe({attribution:er(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(q4),links:ue(C2),messages:ue(bh).optional(),order:gS.optional(),payment:_S.optional(),signals:ro.optional(),status:yS,totals:ue(k2),ucp:Rp}),e7r=fe({events:ue($Sr).optional(),expectations:ue(VSr).optional()}),iht=fe({attribution:er(L(),L()).optional(),buyer:R9e.optional(),context:vo.optional(),line_items:ue(bS),payment:DB.optional(),signals:ro.optional()}),oht=fe({attribution:er(L(),L()).optional(),buyer:GSr.optional(),context:vo.optional(),line_items:ue(MB),payment:$Z.optional(),signals:ro.optional()}),sht=fe({attribution:er(L(),L()).optional(),buyer:WSr.optional(),context:vo.optional(),continue_url:L().optional(),currency:L(),expires_at:Ju.date().optional(),id:L(),line_items:ue(q4),links:ue(C2),messages:ue(bh).optional(),order:gS.optional(),payment:_S.optional(),signals:ro.optional(),status:yS,totals:ue(k2),ucp:Rp}),aht=fe({attribution:er(L(),L()).optional(),buyer:Ja.optional(),context:vo.optional(),line_items:ue(bS),payment:DB.optional(),signals:ro.optional(),discounts:W1t.optional()}),t7r=fe({applied:ue(JSr).optional(),codes:ue(L()).optional()}),r7r=fe({destinations:ue(TSr).optional(),groups:ue(eht).optional(),line_item_ids:ue(L()).optional(),selected_destination_id:fS([pS(),L()]).optional(),type:T9e}),n7r=fe({available_methods:ue(ISr).optional(),methods:ue(YSr).optional()}),cht=fe({attribution:er(L(),L()).optional(),buyer:Ja.optional(),context:vo.optional(),line_items:ue(bS),payment:DB.optional(),signals:ro.optional(),cart_id:L().optional()}),Lxn=fe({attribution:er(L(),L()).optional(),context:P9e.optional(),filters:B9e.optional(),ids:ue(L()),signals:I9e.optional()}),i7r=fe({availability:G1t.optional(),barcodes:ue(J1t).optional(),categories:ue(NB).optional(),description:jB,handle:L().optional(),id:L(),list_price:mS.optional(),media:ue(UB).optional(),metadata:er(L(),dl()).optional(),options:ue(k9e).optional(),price:mS,rating:qB.optional(),seller:Z1t.optional(),sku:L().optional(),tags:ue(L()).optional(),title:L(),unit_price:rht.optional(),url:L().optional(),inputs:ue(NSr)}),uht=fe({availability:RSr.optional(),barcodes:ue(BSr).optional(),categories:ue(NB).optional(),description:jB,handle:L().optional(),id:L(),list_price:mS.optional(),media:ue(UB).optional(),metadata:er(L(),dl()).optional(),options:ue(k9e).optional(),price:mS,rating:qB.optional(),seller:jSr.optional(),sku:L().optional(),tags:ue(L()).optional(),title:L(),unit_price:XSr.optional(),url:L().optional()}),o7r=fe({categories:ue(NB).optional(),description:jB,handle:L().optional(),id:L(),list_price_range:hS.optional(),media:ue(UB).optional(),metadata:er(L(),dl()).optional(),options:ue(N9e).optional(),price_range:hS,rating:qB.optional(),tags:ue(L()).optional(),title:L(),url:L().optional(),variants:ue(uht)}),zxn=fe({payment:DSr.optional(),signing_keys:ue(oSr).optional(),ucp:QSr}),dht=fe({attribution:er(L(),L()).optional(),buyer:Ja.optional(),context:vo.optional(),line_items:ue(bS),payment:DB.optional(),signals:ro.optional()}),s7r=fe({adjustments:ue(FSr).optional(),attribution:er(L(),L()).optional(),checkout_id:L(),currency:L(),fulfillment:e7r,id:L(),label:L().optional(),line_items:ue(KSr),messages:ue(bh).optional(),permalink_url:L(),totals:ue(k2),ucp:Rp}),lht=fe({attribution:er(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(q4),links:ue(C2),messages:ue(bh).optional(),order:gS.optional(),payment:_S.optional(),signals:ro.optional(),status:yS,totals:ue(k2),ucp:Rp,discounts:t7r.optional()}),pht=fe({methods:ue(r7r).optional()}),fht=fe({attribution:er(L(),L()).optional(),buyer:Ja.optional(),context:vo.optional(),line_items:ue(MB),payment:$Z.optional(),signals:ro.optional(),fulfillment:pht.optional()}),mht=fe({attribution:er(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(q4),links:ue(C2),messages:ue(bh).optional(),order:gS.optional(),payment:_S.optional(),signals:ro.optional(),status:yS,totals:ue(k2),ucp:Rp,fulfillment:n7r.optional()}),a7r=fe({categories:ue(NB).optional(),description:jB,handle:L().optional(),id:L(),list_price_range:hS.optional(),media:ue(UB).optional(),metadata:er(L(),dl()).optional(),options:ue(N9e).optional(),price_range:hS,rating:qB.optional(),tags:ue(L()).optional(),title:L(),url:L().optional(),variants:ue(i7r)}),c7r=fe({options:ue(N9e).optional(),selected:ue(Y1t).optional(),categories:ue(NB).optional(),description:jB,handle:L().optional(),id:L(),list_price_range:hS.optional(),media:ue(UB).optional(),metadata:er(L(),dl()).optional(),price_range:hS,rating:qB.optional(),tags:ue(L()).optional(),title:L(),url:L().optional(),variants:ue(uht)}),Hxn=fe({messages:ue(O9e).optional(),pagination:MSr.optional(),products:ue(o7r),ucp:Rp}),hht=fe({attribution:er(L(),L()).optional(),buyer:Ja.optional(),context:vo.optional(),line_items:ue(bS),payment:DB.optional(),signals:ro.optional(),fulfillment:pht.optional()}),Fxn=fe({messages:ue(O9e).optional(),products:ue(a7r),ucp:Rp}),$xn=fe({messages:ue(O9e).optional(),product:c7r,ucp:Rp});var Gxn=zZ.extend({token:Dr.string().optional()}),u7r=Dr.object({webhook_url:Dr.string().url().optional()}),yht=nht.extend(mht.pick({fulfillment:!0}).shape).extend(lht.pick({discounts:!0}).shape).extend(sht.pick({buyer:!0}).shape).extend({platform:u7r.optional()}),ght=dht.extend(hht.pick({fulfillment:!0}).shape).extend(aht.pick({discounts:!0}).shape).extend(iht.pick({buyer:!0}).shape).extend(cht.pick({cart_id:!0}).shape),bht=tht.extend(fht.pick({fulfillment:!0}).shape).extend(Q1t.pick({discounts:!0}).shape).extend(oht.pick({buyer:!0}).shape);eu();async function VZ(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 KZ(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 d7r=3e4,_ht=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 vht(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 wht(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"?ght:bht).safeParse(e).success)throw new Error(`UCP ${t} checkout input failed schema validation`);return e}function l7r(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 xht(e,t,r,n){try{e[t](r,n)}catch{}}function p7r(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 WZ=class{endpoint;platformProfileUrl;fetchImpl;signal;timeoutMs;boundaryLogger;requestId=1;constructor(t){this.endpoint=vht(t.endpoint,"UCP MCP endpoint").toString(),this.platformProfileUrl=vht(t.platformProfileUrl,"UCP platform profile URL").toString(),this.fetchImpl=t.fetch??fetch,this.signal=t.signal,this.timeoutMs=t.timeoutMs??d7r,this.boundaryLogger=t.logger??ke}async createCheckout(t){return await this.callCheckout("create_checkout",{meta:this.metadata(),checkout:wht(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:wht(r,"update")})}metadata(){return{"ucp-agent":{profile:this.platformProfileUrl}}}async callCheckout(t,r){let n=this.requestId++,i=KZ(this.timeoutMs,this.signal),o=(0,Eht.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 VZ(u,_ht,"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)>_ht)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(!l7r(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(!yht.safeParse(p7r(p.structuredContent)).success)throw new Bp("UCP checkout response failed schema validation");return xht(this.boundaryLogger,"info","ucp:checkout_rpc",{correlationId:o,endpointOrigin:s,rpcMethod:t,httpStatus:c,elapsedMs:Date.now()-a}),p.structuredContent}catch(u){throw xht(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 Sht=require("node:crypto");eu();var JZ="2026-04-08",f7r="dev.ucp.shopping",m7r="dev.ucp.shopping.checkout",h7r=1024*1024,y7r=1e4,g7r="https://ucp.dev",LB=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"),b7r=Dr.object({version:Dr.string().regex(/^\d{4}-\d{2}-\d{2}$/),spec:LB,schema:LB,transport:Dr.enum(["rest","mcp","a2a","embedded"]),endpoint:LB.optional()}).passthrough(),_7r=Dr.object({version:Dr.string().regex(/^\d{4}-\d{2}-\d{2}$/),spec:LB,schema:LB,extends:Dr.union([Dr.string(),Dr.array(Dr.string()).min(1)]).optional()}).passthrough(),v7r=Dr.object({ucp:Dr.object({version:Dr.string().regex(/^\d{4}-\d{2}-\d{2}$/),services:Dr.record(Dr.array(b7r)),capabilities:Dr.record(Dr.array(_7r)),payment_handlers:Dr.record(Dr.array(Dr.unknown())).optional()}).passthrough(),signing_keys:Dr.array(Dr.unknown()).optional()}).passthrough();function w7r(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 GZ(e,t){if(new URL(e).origin!==g7r)throw new Error(`${t} must be governed by the ucp.dev namespace`)}function Aht(e,t,r,n){try{e[t](r,n)}catch{}}async function x7r(e,t={}){let r=w7r(e,"UCP business URL"),n=KZ(t.timeoutMs??y7r,t.signal),i=t.logger??ke,o=(0,Sht.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 VZ(c,h7r,"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=v7r.safeParse(d);if(!l.success)throw new Error("UCP profile response does not match the 2026-04-08 profile shape");return Aht(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 Aht(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 E7r(e){if(e.ucp.version!==JZ)throw new Error(`Unsupported UCP version: ${e.ucp.version}`);let t=e.ucp.capabilities[m7r]?.find(i=>i.version===JZ);if(!t)throw new Error("Business does not advertise UCP checkout 2026-04-08");GZ(t.spec,"Checkout capability spec"),GZ(t.schema,"Checkout capability schema");let r=e.ucp.services[f7r]?.find(i=>i.version===JZ&&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");GZ(r.spec,"Shopping service spec"),GZ(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 Tht(e,t={}){let r=await x7r(e,t);return{...r,endpoint:E7r(r.profile),version:JZ}}var A7r="https://app.visacli.sh/.well-known/ucp";function S7r(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 T7r(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 j9e(e,t=new Set){if(Array.isArray(e))for(let r of e)j9e(r,t);else if(e&&typeof e=="object")for(let[r,n]of Object.entries(e))r==="endpoint"?T7r(n,t):j9e(n,t);return t}function P7r(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=j9e(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 I7r(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 O7r(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 Iht(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??Tht)(e.business),i=await(t.getCheckout??(async(u,d)=>await new WZ({endpoint:u.endpoint,platformProfileUrl:S7r(t.platformProfileUrl??process.env.VISA_UCP_PROFILE_URL??A7r)}).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=I7r(i),a=P7r(r.businessOrigin,i.continue_url,r.profile),c=`ucp_${(0,Pht.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:O7r(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>."}}F2();function C7r(){return ga()}var Op=new Th(()=>xi.getSessionToken()),k7r="4.1.0-rc.34",PEn=["","","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(`
20893
+ `);function R7r(e){if(!e||typeof e!="string")return{opened:!1,blockedReason:"invalid_url"};let t=SS(e);if(!t)return{opened:!1,blockedReason:"invalid_url"};if(HEe())return{opened:!1,url:t,blockedReason:"suppressed"};let r=AS();if(r.headless)return ke.info(`Browser auto-open skipped (${r.reason}). URL: ${t}`),{opened:!1,url:t,blockedReason:"headless"};let i=[C7r(),yl()].filter(s=>!!s).map(s=>xxe(t,s)).find(Boolean)??null;if(!i)return ke.info(`Browser auto-open skipped (non-internal host). URL: ${t}`),{opened:!1,url:t,blockedReason:"non_internal_host"};let o=tN(i);return o?((0,Cht.execFile)(o.cmd,o.args,s=>{s&&ke.warn(`Browser open failed: ${s.message}. URL: ${i}`)}),{opened:!0,url:i}):(ke.info(`No browser command for platform "${ZZ.platform()}". URL: ${i}`),{opened:!1,url:i,blockedReason:"unsupported_platform"})}function B7r(){let e=!1,t;try{let n=kht.join(ZZ.homedir(),".claude","settings.json");if(YZ.existsSync(n)){let i=JSON.parse(YZ.readFileSync(n,"utf-8")),o=typeof i.statusLine=="object"?i.statusLine.command:"";e=xh(o)}}catch{}let r=cN();return r||(t="visa-cli config hud enable"),{statusLine:e,shellHud:r,...t?{shellHudSetup:t}:{}}}async function N7r(e){let t=await Op.getStatus(e);return t.hud=B7r(),!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=k7r,t}async function j7r(e,t){return await Op.feedback(e.message,e.transaction_id,t)}async function U7r(e){let t=await sB({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 U9e=new Set(["auth.serverUrl"]);function zB(){return Object.keys(H2).filter(e=>!U9e.has(e)).sort()}function Rht(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:zB()}}async function q7r(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(U9e.has(e.key))return ke.warn("config:set:rejected:mcp-forbidden",{key:e.key}),Rht(e.key,"set");ke.info("config:set",{key:e.key});try{let t=EN(e.key,e.value);return ke.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: ${zB().join(", ")}. For auth.serverUrl, use the shell command instead.`:t.message;return ke.warn("config:set:rejected",{key:e.key,code:r,error:n}),{success:!1,error:n,code:r,settableKeys:zB()}}}async function M7r(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(U9e.has(e.key))return ke.warn("config:unset:rejected:mcp-forbidden",{key:e.key}),Rht(e.key,"unset");ke.info("config:unset",{key:e.key});try{let t=AN(e.key);return ke.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: ${zB().join(", ")}. For auth.serverUrl, use the shell command instead.`:t.message;return ke.warn("config:unset:rejected",{key:e.key,code:r,error:n}),{success:!1,error:n,code:r,settableKeys:zB()}}}async function D7r(e=yl(),t=!1){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."};if(!t){let p=iB();if(p.kind==="claimed"){let f=p.credential;return ke.info("agent:enroll_already_connected",{keyBound:f.keyBound}),{success:!0,alreadyConnected:!0,...f.name?{name:f.name}:{},keyBound:f.keyBound,message:`This device is already connected${f.name?` as ${f.name}`:""} \u2014 nothing to pair. To add or change spending on this identity, approve it in your account settings (agent card \u2192 Spend). Call enroll_agent with {"action":"start","force":true} to start a brand-new enrollment anyway.`}}}let{challenge:r,confirmCode:n,agentPkX:i,walletPkHex:o}=nB(),s=jS(e),a=`${s}?cli=${r}&cliPk=${i}${o?`&walletPk=${o}`:""}`;ke.info("agent:enroll_open",{url:s});let c=R7r(a),u="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",d=`CONFIRMATION CODE: ${n} \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.`,l='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 c.opened?{success:!0,opened:!0,browserUrl:c.url,confirmCode:n,message:`Opened the Visa Verified Agent enrollment in your browser (${u}). ${d} ${l} 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:c.url??a,confirmCode:n,message:`Open this URL in a browser to enroll your agent (${u}): ${c.url??a} \u2014 ${d} ${l}`}}async function L7r(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 oB(e);switch(ke.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 Oht(){if(await xi.clearAll(),!!Ih())try{await CN()}catch(e){ke.warn("reset:touchid_key_delete_failed",{error:e instanceof Error?e.message:String(e)})}}async function z7r(e,t){if(typeof e.confirm!="boolean"||e.confirm!==!0)return{success:!1,message:"Please confirm by setting confirm: true to reset"};if(ke.info("reset:attempt"),e.localOnly)return await Oht(),ke.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 Oht(),ke.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 H7r(e){if(!e.name)return{success:!1,error:"name is required"};try{let{registerName:t,ensureMailbox:r}=await Promise.resolve().then(()=>(y4(),_B)),n=await t(e.name);return await r(e.name),{success:!0,...n}}catch(t){let{CardRequiredError:r}=await Promise.resolve().then(()=>(nw(),YAe));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 F7r(e){if(!e.name)return{success:!1,error:"name is required"};try{let{resolveMeshName:t}=await Promise.resolve().then(()=>(y4(),_B));return{success:!0,...await t(e.name)}}catch(t){return{success:!1,error:t instanceof Error?t.message:String(t)}}}async function $7r(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(()=>(y4(),_B)),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 V7r(e){try{let{readInbox:t,resolveActingName:r,meshName:n}=await Promise.resolve().then(()=>(y4(),_B)),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 M4=class{static async subwayRegister(t){return H7r(t||{})}static async subwayFind(t){return F7r(t||{})}static async subwaySend(t){return $7r(t||{})}static async subwayInbox(t){return V7r(t||{})}static async getStatus(t){return N7r(t)}static async feedback(t,r){return j7r(t,r)}static async configList(t){return U7r(t||{})}static async configSet(t){return q7r(t||{})}static async configUnset(t){return M7r(t||{})}static async reset(t,r){return z7r(t,r)}static async enrollAgent(t={},r){let n=t?.action??"start";return n==="start"?D7r(void 0,t?.force===!0):n==="claim"?L7r():{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 N1t(t)}static async ucpCheckoutHandoff(t,r){return KA("ucp_checkout_handoff")&&(await rZ(),KA("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."}:Iht(t)}static async payMerchantStatus(t={},r){return B1t(t)}static async startCardMandate(t={},r){return j1t(t)}static async submitFeedback(t,r,n){ke.info("feedback:submit",{length:t.length,transactionId:r,hasContext:!!n});try{let i=await Op.submitFeedback(t,r,n);return ke.info("feedback:submitted",{transactionId:r}),i}catch(i){let o=i instanceof Error?i.message:"Unknown error";throw ke.error("feedback:error",{error:o,transactionId:r}),i}}static async getFeedback(t,r){ke.info("feedback:list",{limit:t||20});try{let n=await Op.getFeedback(t,r);return ke.info("feedback:listed",{count:n?.feedback?.length||0}),n}catch(n){let i=n instanceof Error?n.message:"Unknown error";throw ke.error("feedback:error",{error:i}),n}}};async function Bht(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 Nht=require("node:fs/promises"),jht=require("node:os"),Uht=require("node:path");async function q9e(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: ${VA(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 K7r=300*1e3;function W7r(){return process.env.VISA_CARD_MANDATE_LEDGER_FILE??(0,Uht.join)((0,jht.homedir)(),".visa-mcp","card-mandates.json")}async function G7r(){try{let e=JSON.parse(await(0,Nht.readFile)(W7r(),"utf8"));return!e||!Array.isArray(e.mandates)?{mandates:[]}:e}catch(e){if(e.code==="ENOENT")return null;throw e}}function J7r(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>K7r?n:n+i.amountMinor},0);return e.ceilingMinor-e.spentMinor-r}async function qht(e={}){let t=e.log??console.log,r=e.error??console.error,n=e.exit??(s=>process.exit(s)),i=e.readLedger??G7r,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
20894
20894
  `);for(let u of c)t(` ${u.mandateId}`),t(` merchant: ${u.merchantName||u.merchantHost||"(unknown)"}`),t(` remaining: ${VA(J7r(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 Mht(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(`
20895
20895
  \x1B[33m\u2191 ${n}\x1B[0m
20896
20896
  `),!0}var Vm=ve(require("fs")),no=ve(require("path")),Y7r=["npm","pnpm","yarn","bun"],Z7r=/\s+/,X7r=process.platform==="win32"?"visa-cli.cmd":"visa-cli",M9e=["node_modules","@visa","cli"];function Q7r(){let e=process.env.npm_config_user_agent;if(!e)return;let t=e.trim();if(t==="")return;let r=t.split(Z7r)[0]??"",n=r.indexOf("/"),i=n===-1?r:r.slice(0,n);return Y7r.includes(i)?i:void 0}function D9e(e){if(!e)return;let t=e;try{t=Vm.realpathSync(e)}catch{}let r=t.replace(/\\/g,"/").toLowerCase();if(r.includes("/pnpm/")||r.includes("/.pnpm/"))return"pnpm";if(r.includes("/yarn/")||r.includes("/.yarn/"))return"yarn";if(r.includes("/bun/")||r.includes("/.bun/"))return"bun";if(r.includes("/npm/")||r.includes("/node_modules/@visa/cli/"))return"npm"}function eTr(e=process.argv[1]){return Q7r()??D9e(process.env.npm_execpath)??D9e(process.env.npm_node_execpath)??D9e(e)}function tTr(e=process.env.PATH??""){let t=[];for(let r of e.split(no.delimiter))r&&t.push(r);return t}function rTr(e=process.env.PATH??""){let t=new Set,r=[];for(let n of tTr(e))try{let i=no.join(n,X7r);Vm.accessSync(i,Vm.constants.X_OK);let o=no.resolve(i);t.has(o)||(t.add(o),r.push(i))}catch{}return r}function Dht(e){try{let t=Vm.readFileSync(no.join(e,"package.json"),"utf-8"),r=JSON.parse(t);if(r.name==="@visa/cli"&&typeof r.version=="string")return r.version}catch{}}function nTr(e){let t=no.resolve(e).split(no.sep);for(let r=t.length-M9e.length;r>=0;r--)if(M9e.every((n,i)=>t[r+i]===n)){let n=t.slice(0,r+M9e.length).join(no.sep)||no.sep;if(Dht(n))return n}}function iTr(e){if(!e)return;let t=no.normalize(e),r=t.split(no.sep),n=o=>o.every((a,c)=>r[r.length-o.length+c]===a)?r.slice(0,-o.length).join(no.sep)||no.parse(t).root:void 0,i=n(["lib","node_modules","@visa","cli"]);if(i)return i;if(process.platform==="win32")return n(["node_modules","@visa","cli"])}function oTr(e,t){let r=no.resolve(e);try{r=Vm.realpathSync(e)}catch{}let n=nTr(r);return{binPath:e,realPath:r,packageRoot:n,version:n?Dht(n):void 0,prefix:iTr(n),isActive:r===t}}function sTr(e,t=process.env.PATH??""){let r=e??process.argv[1],n=r?no.resolve(r):"";try{r&&(n=Vm.realpathSync(r))}catch{}let i=e?[e]:[r,...rTr(t)].filter(Boolean),o=new Map;for(let l of i){let p=oTr(l,n),f=o.get(p.realPath);o.set(p.realPath,f?{...p,binPath:f.binPath}:p)}let s=[...o.values()],a=s.find(l=>l.isActive);!a&&s.length>0&&!e&&(a={...s[0],isActive:!0},s[0]=a);let c=new Set(s.map(l=>l.packageRoot).filter(Boolean)),u=!!a?.packageRoot&&c.size>1,d=a?.prefix;return{active:a,installs:s,hasConflictingInstalls:u,recommendedPrefix:d}}function aTr(e,t=process.platform){return/^[A-Za-z0-9_./:@+-]+$/.test(e)?e:t==="win32"?`"${e.replace(/"/g,'""')}"`:`'${e.replace(/'/g,"'\\''")}'`}function L9e(e,t,r,n={}){let i=t??eTr(r)??"npm",o=n.withDiagnostics?sTr(r):void 0,a=`@visa/cli@${e??"latest"}`;switch(i){case"npm":if(o?.hasConflictingInstalls&&o.recommendedPrefix){let c=o.recommendedPrefix;return{packageManager:i,command:"npm",args:["install","-g","--prefix",c,a],display:`npm install -g --prefix ${aTr(c)} ${a}`,diagnostics:o}}return{packageManager:i,command:"npm",args:["install","-g",a],display:`npm install -g ${a}`,diagnostics:o};case"pnpm":return{packageManager:i,command:"pnpm",args:["add","-g",a],display:`pnpm add -g ${a}`,diagnostics:o};case"yarn":return{packageManager:i,command:"yarn",args:["global","add",a],display:`yarn global add ${a}`,diagnostics:o};case"bun":return{packageManager:i,command:"bun",args:["add","-g",a],display:`bun add -g ${a}`,diagnostics:o}}}function cTr(e){let t=e.isActive?" (active)":"",r=e.version?` v${e.version}`:" version unknown",n=e.prefix?` via ${e.prefix}`:"";return` - ${e.binPath}${t}: ${r}${n}`}function z9e(e,t){if(!e.hasConflictingInstalls)return null;let r=["Multiple Visa CLI installs detected.",...e.installs.map(cTr)];return t&&(e.recommendedPrefix?r.push("The update command below targets the active install so your shell actually picks up the new version."):r.push("The update command is shown below; remove duplicate installs if your shell still picks up an older version."),r.push(` ${t}`)),r.join(`
@@ -20905,7 +20905,7 @@ If building from source, run native/build-win.bat first.`);Jr.mkdirSync(Ph,{recu
20905
20905
  `)}function mTr(e,t){return e.length<=t?e:`${e.slice(0,Math.max(t-1,0))}\u2026`}function hTr(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,mTr(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(`
20906
20906
  `)}function yTr(){let e=sZ.map(r=>({id:r.id,detected:e3e(r),connected:a3e(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(`
20907
20907
  `)}function gTr(e,t){if(e==="find"){let r=t.listings;F9e(hTr(r));return}if(e==="connections"){F9e(yTr());return}F9e(JSON.stringify(t,null,2))}async function jp(e,t,r){let n="table";try{n=fTr(t);let i=await r();n==="table"?gTr(e,i):H9e(Lht(e,{data:i}),n)}catch(i){let o=i instanceof Error?i.message:String(i);n==="table"?process.stderr.write(`Error: ${o}
20908
- `):H9e(zht(e,o),n),process.exitCode=1}}function bTr(){this.help({error:!1})}function Vht(e){Np(e.command("find <intent>").description("Find payable services by outcome; discovery never spends money.").option("--provider <provider>",`Directory provider: all, ${ZY.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",...ZY];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 R2().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,()=>R2().inspect({listingId:r,url:n.url,bodyJson:$ht(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,()=>R2().pay({listingId:r,url:n.url,maxUsd:n.max,bodyJson:$ht(n.input)}))});let t=e.command("wallet").description("Inspect, fund, and constrain the principal v4 wallet.").action(bTr);Np(t.command("show").description("Show wallet, network, policy, and budgets.")).action(async r=>jp("wallet show",r,()=>R2().status())),Np(t.command("fund").description("Show the wallet funding address and network guidance.")).action(async r=>jp("wallet fund",r,()=>R2().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,()=>R2().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 R2().activity(n)})}),Np(e.command("receipt <receipt-id>").description("Show one journaled payment receipt.")).action(async(r,n)=>{await jp("receipt",n,()=>R2().receipt(r))}),Np(e.command("connections").description("Show supported MCP client connections.")).action(async r=>jp("connections",r,async()=>sZ.map(n=>({id:n.id,name:n.displayName,detected:e3e(n),connected:a3e(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=dB(r);if(!i)throw new Error(`unknown client: ${r}`);return gmt(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=dB(r);if(!i)throw new Error(`unknown client: ${r}`);return _mt(i)})})}eu();var V9e=!1;async function K9e(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(ke.warn("attestation:key-mismatch",{action:"browser-recovery"}),r){if(V9e)throw ke.warn("attestation:browser-recovery-suppressed",{reason:"already-attempted-in-process"}),n;V9e=!0,ke.info("attestation:starting-browser-recovery");try{let o=await r();if(!o.success)throw ke.error("attestation:browser-recovery-failed",{message:o.message}),n;let s=await aAe();await e.registerAttestationKey(s),await e.setBiometricPreference({required:!0}),ke.info("attestation:requirement-restored-after-recovery",{surface:"retry"}),ke.info("attestation:key-reregistered-after-recovery");let a=await t();return V9e=!1,a}catch(o){throw ke.error("attestation:recovery-failure",{error:o.message}),n}}throw n}}function W9e(e){return e?typeof e.hasAnyAttestationKey=="boolean"?e.hasAnyAttestationKey:typeof e.hasAttestationKey=="boolean"?e.hasAttestationKey:!0:!1}wB();j3e();y4();nw();var _Tr="4.1.0-rc.33";async function Kht(e){let t=await bB(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: ${gB} (mesh="${t.mesh}")`),console.log(` chat: visa subway listen --as ${e} | visa subway send --as ${e} <to> "<text>"`)}var FB=(e,t)=>{if(t instanceof Qm){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 Wht(e){if(!J3e(_Tr))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 Kht(r)}catch(n){FB("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 Kht(r)}catch(n){FB("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=OZ(i.as),s=await e9e(o,r,n);console.log(`\u2713 sent to ${s.to} as ${s.as}`)}catch(o){FB("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 Q3e(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){FB("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=OZ(r.as),i=tS(n,{autoReconnect:!0});await rS(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 ${l4(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){FB("listen",n)}}),t.command("whoami").description("List names this CLI has registered on the relay.").action(()=>{let r=t9e();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}`)})}F2();var ATr=(0,eyt.promisify)(Qht.execFile);function G9e(){let e=W4();setImmediate(()=>{TX(e,{getCommand:()=>pN(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 vS(){this.help({error:!1})}var Xo=new Zht.Command,eX=null,Ght=!1;function qp(){return eX=new Th(()=>xi.getSessionToken()),eX}var STr="api-keys-create",Jht=0,Yht="",TTr=12e3;async function PTr(e){let{nonce:t}=await e.getAttestationChallenge(),r=Buffer.from(JSON.stringify({nonce:t,amount:Jht,merchant:Yht,context:STr})).toString("base64");return{signature:await $X(r,"create a Visa Key",{timeoutMs:TTr}),nonce:t,amount:Jht,merchant:Yht}}async function ITr(e){let t=await e.getStatus();return t.attestationRequired!==!1||W9e(t)}function tyt(e){return async()=>{let t=await CTr(e);return{success:t,...t?{}:{message:"Biometric recovery was not completed."}}}}async function OTr(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 yX(i,s=>{ke.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 yX(void 0,o=>{ke.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 CTr(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(!W9e(t))return!1;let r=Xht.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 F4(n.recoveryUrl),await OTr(r),console.log(" Server biometric state cleared."),!0}function ryt(e){return`$${(e/100).toFixed(2)}`}function kTr(e){return typeof e=="number"?ryt(e):"no cap"}function RTr(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 BTr(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 J9e=!1;async function nyt(e){let t=(0,Y9e.createInterface)({input:process.stdin,output:process.stdout});try{return(await t.question(e)).trim()}finally{t.close()}}async function NTr(e,t=!1){let r=TEe(e,{json:t,isTTY:process.stdin.isTTY===!0});if(r!==void 0)return r;if(await _Ee("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 J9e=!0,500;let i=await nyt("Daily cap USD (1-100): ");if(!i)throw new Error("--daily-cap is required when declining the recommended daily cap.");return CX(i)}async function jTr(e,t=!1){let r=PEe(e,{json:t,isTTY:process.stdin.isTTY===!0,recommendedCapsAccepted:J9e});if(r!==void 0)return J9e=!1,r;let n=await nyt("Cumulative cap USD (1-10000, default 25): ");return kX(n||"25")}function UTr(e){return e&&e.length>0?e.join(", "):"all tools"}function qTr(e){let t=`
20908
+ `):H9e(zht(e,o),n),process.exitCode=1}}function bTr(){this.help({error:!1})}function Vht(e){Np(e.command("find <intent>").description("Find payable services by outcome; discovery never spends money.").option("--provider <provider>",`Directory provider: all, ${ZY.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",...ZY];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 R2().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,()=>R2().inspect({listingId:r,url:n.url,bodyJson:$ht(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,()=>R2().pay({listingId:r,url:n.url,maxUsd:n.max,bodyJson:$ht(n.input)}))});let t=e.command("wallet").description("Inspect, fund, and constrain the principal v4 wallet.").action(bTr);Np(t.command("show").description("Show wallet, network, policy, and budgets.")).action(async r=>jp("wallet show",r,()=>R2().status())),Np(t.command("fund").description("Show the wallet funding address and network guidance.")).action(async r=>jp("wallet fund",r,()=>R2().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,()=>R2().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 R2().activity(n)})}),Np(e.command("receipt <receipt-id>").description("Show one journaled payment receipt.")).action(async(r,n)=>{await jp("receipt",n,()=>R2().receipt(r))}),Np(e.command("connections").description("Show supported MCP client connections.")).action(async r=>jp("connections",r,async()=>sZ.map(n=>({id:n.id,name:n.displayName,detected:e3e(n),connected:a3e(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=dB(r);if(!i)throw new Error(`unknown client: ${r}`);return gmt(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=dB(r);if(!i)throw new Error(`unknown client: ${r}`);return _mt(i)})})}eu();var V9e=!1;async function K9e(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(ke.warn("attestation:key-mismatch",{action:"browser-recovery"}),r){if(V9e)throw ke.warn("attestation:browser-recovery-suppressed",{reason:"already-attempted-in-process"}),n;V9e=!0,ke.info("attestation:starting-browser-recovery");try{let o=await r();if(!o.success)throw ke.error("attestation:browser-recovery-failed",{message:o.message}),n;let s=await aAe();await e.registerAttestationKey(s),await e.setBiometricPreference({required:!0}),ke.info("attestation:requirement-restored-after-recovery",{surface:"retry"}),ke.info("attestation:key-reregistered-after-recovery");let a=await t();return V9e=!1,a}catch(o){throw ke.error("attestation:recovery-failure",{error:o.message}),n}}throw n}}function W9e(e){return e?typeof e.hasAnyAttestationKey=="boolean"?e.hasAnyAttestationKey:typeof e.hasAttestationKey=="boolean"?e.hasAttestationKey:!0:!1}wB();j3e();y4();nw();var _Tr="4.1.0-rc.34";async function Kht(e){let t=await bB(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: ${gB} (mesh="${t.mesh}")`),console.log(` chat: visa subway listen --as ${e} | visa subway send --as ${e} <to> "<text>"`)}var FB=(e,t)=>{if(t instanceof Qm){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 Wht(e){if(!J3e(_Tr))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 Kht(r)}catch(n){FB("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 Kht(r)}catch(n){FB("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=OZ(i.as),s=await e9e(o,r,n);console.log(`\u2713 sent to ${s.to} as ${s.as}`)}catch(o){FB("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 Q3e(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){FB("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=OZ(r.as),i=tS(n,{autoReconnect:!0});await rS(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 ${l4(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){FB("listen",n)}}),t.command("whoami").description("List names this CLI has registered on the relay.").action(()=>{let r=t9e();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}`)})}F2();var ATr=(0,eyt.promisify)(Qht.execFile);function G9e(){let e=W4();setImmediate(()=>{TX(e,{getCommand:()=>pN(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 vS(){this.help({error:!1})}var Xo=new Zht.Command,eX=null,Ght=!1;function qp(){return eX=new Th(()=>xi.getSessionToken()),eX}var STr="api-keys-create",Jht=0,Yht="",TTr=12e3;async function PTr(e){let{nonce:t}=await e.getAttestationChallenge(),r=Buffer.from(JSON.stringify({nonce:t,amount:Jht,merchant:Yht,context:STr})).toString("base64");return{signature:await $X(r,"create a Visa Key",{timeoutMs:TTr}),nonce:t,amount:Jht,merchant:Yht}}async function ITr(e){let t=await e.getStatus();return t.attestationRequired!==!1||W9e(t)}function tyt(e){return async()=>{let t=await CTr(e);return{success:t,...t?{}:{message:"Biometric recovery was not completed."}}}}async function OTr(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 yX(i,s=>{ke.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 yX(void 0,o=>{ke.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 CTr(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(!W9e(t))return!1;let r=Xht.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 F4(n.recoveryUrl),await OTr(r),console.log(" Server biometric state cleared."),!0}function ryt(e){return`$${(e/100).toFixed(2)}`}function kTr(e){return typeof e=="number"?ryt(e):"no cap"}function RTr(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 BTr(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 J9e=!1;async function nyt(e){let t=(0,Y9e.createInterface)({input:process.stdin,output:process.stdout});try{return(await t.question(e)).trim()}finally{t.close()}}async function NTr(e,t=!1){let r=TEe(e,{json:t,isTTY:process.stdin.isTTY===!0});if(r!==void 0)return r;if(await _Ee("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 J9e=!0,500;let i=await nyt("Daily cap USD (1-100): ");if(!i)throw new Error("--daily-cap is required when declining the recommended daily cap.");return CX(i)}async function jTr(e,t=!1){let r=PEe(e,{json:t,isTTY:process.stdin.isTTY===!0,recommendedCapsAccepted:J9e});if(r!==void 0)return J9e=!1,r;let n=await nyt("Cumulative cap USD (1-10000, default 25): ");return kX(n||"25")}function UTr(e){return e&&e.length>0?e.join(", "):"all tools"}function qTr(e){let t=`
20909
20909
  Options:
20910
20910
  `,r=`
20911
20911
  Commands: