@visa/cli 4.1.0-rc.36 → 4.1.0-rc.37

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 tgt=Object.create;var aB=Object.defineProperty;var rgt=Object.getOwnPropertyDescriptor;var ngt=Object.getOwnPropertyNames;var igt=Object.getPrototypeOf,ogt=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}},xi=(e,t)=>{for(var r in t)aB(e,r,{get:t[r],enumerable:!0})},PEe=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of ngt(t))!ogt.call(e,i)&&i!==r&&aB(e,i,{get:()=>t[i],enumerable:!(n=rgt(t,i))||n.enumerable});return e};var ve=(e,t,r)=>(r=e!=null?tgt(igt(e)):{},PEe(t||!e||!e.__esModule?aB(r,"default",{value:e,enumerable:!0}):r,e)),ie=e=>PEe(aB({},"__esModule",{value:!0}),e);var Jm,OX=P(()=>{"use strict";Jm="6820f6e91b762e645c9bf020c0d3673bb99d4a25a824880c0d548e10bb9bc7b1"});function CX(e){return`${e}-${kEe.randomBytes(24).toString("base64url")}`}function NEe(e=process.env){return e.NODE_ENV==="test"||e[REe]==="true"}function xh(e=process.env){return e.VISA_MOCK_KEYCHAIN==="true"&&NEe(e)}function BS(e=process.env){return e.VISA_MOCK_TOUCHID==="true"&&NEe(e)}function kX(){return`Set ${REe}=true only for local debugging; it enables insecure mock credential hooks outside NODE_ENV=test.`}function BEe(){return IEe??=CX("mock-session"),IEe}function jEe(e=process.env){return e.NODE_ENV==="test"?Jm:(OEe??=CX("mock-rc"),OEe)}function UEe(){return CEe??=CX("mock-signature"),CEe}var kEe,REe,IEe,OEe,CEe,cB=P(()=>{"use strict";kEe=ve(require("crypto"));OX();REe="VISA_ALLOW_INSECURE_MOCKS"});function agt(e){let t=e;return[t?.message,t?.stderr].filter(r=>typeof r=="string").join(`
2
- `)}function qX(e){let t=e;if(t?.code==="EPERM"||t?.code==="EACCES")return!0;let r=agt(e).toLowerCase();return r.includes("operation not permitted")||r.includes("permission denied")}function zp(){return process.platform!=="darwin"?Promise.resolve(!1):(qEe??=(async()=>{try{return await yl("security",["default-keychain","-d","user"],{timeout:5e3}),!0}catch(e){return qX(e)}})(),qEe)}async function cgt(){if(!await zp())return null;try{let{stdout:e}=await yl("security",["find-generic-password","-s",Qu,"-a",Ah,"-w"],{timeout:5e3});return e.trim()||null}catch(e){if(qX(e))throw new dB("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 ugt(e){if(!await zp())return!1;try{try{await yl("security",["delete-generic-password","-s",Qu,"-a",Ah],{timeout:5e3})}catch{}return await yl("security",["add-generic-password","-s",Qu,"-a",Ah,"-w",e],{timeout:5e3}),!0}catch{return!1}}async function dgt(){if(await zp())try{await yl("security",["delete-generic-password","-s",Qu,"-a",Ah],{timeout:5e3})}catch{}}async function lgt(){if(!MX())return null;try{let{stdout:e}=await yl("secret-tool",["lookup","service",Qu,"account",Ah],{timeout:5e3});return e.trim()||null}catch{return null}}async function pgt(e){if(!MX())return!1;try{let t=(0,lB.execFile)("secret-tool",["store","--label",`${Qu} ${Ah}`,"service",Qu,"account",Ah]);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"))},sgt))]),!0):!1}catch{return!1}}async function fgt(){if(MX())try{await yl("secret-tool",["clear","service",Qu,"account",Ah],{timeout:5e3})}catch{}}function MX(){return!!process.env.DBUS_SESSION_BUS_ADDRESS}async function mgt(){if(!await zp())return null;try{let{stdout:e}=await yl("security",["find-generic-password","-s",Qu,"-a",uB,"-w"],{timeout:5e3});return e.trim()||null}catch{return null}}async function hgt(e){if(await zp())try{try{await yl("security",["delete-generic-password","-s",Qu,"-a",uB],{timeout:5e3})}catch{}await yl("security",["add-generic-password","-s",Qu,"-a",uB,"-w",e],{timeout:5e3})}catch{}}async function ygt(){if(await zp())try{await yl("security",["delete-generic-password","-s",Qu,"-a",uB],{timeout:5e3})}catch{}}function NX(){try{return Sh.readFileSync(jS,"utf-8").trim()||null}catch(e){if(qX(e))throw new dB(`Unable to read Visa CLI credentials from ${jS}. Check file permissions or rerun with access to the Visa CLI credential directory.`);return null}}function DEe(e){Sh.mkdirSync(UX,{recursive:!0,mode:448}),Sh.writeFileSync(jS,e,{mode:384}),process.platform==="win32"&&ggt(jS)}function BX(){try{Sh.unlinkSync(jS)}catch{}}function ggt(e){try{let t=pB.userInfo().username;(0,lB.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 RX(){switch(process.platform){case"darwin":return{get:cgt,store:ugt,delete:dgt};case"linux":return{get:lgt,store:pgt,delete:fgt};default:return{get:async()=>NX(),store:async e=>{try{return DEe(e),!0}catch{return!1}},delete:async()=>BX(),storesInSessionFile:!0}}}var lB,MEe,Sh,pB,jX,yl,UX,jS,Qu,Ah,uB,sgt,dB,qEe,Ai,H2=P(()=>{"use strict";lB=require("child_process"),MEe=require("util"),Sh=ve(require("fs")),pB=ve(require("os")),jX=ve(require("path"));cB();yl=(0,MEe.promisify)(lB.execFile),UX=jX.join(pB.homedir(),".visa-mcp"),jS=jX.join(UX,"session-token"),Qu="visa-cli",Ah="session-token",uB="rc-access",sgt=5e3,dB=class extends Error{constructor(t){super(t),this.name="CredentialAccessError"}};qEe=null;Ai=class{static async getSessionToken(){if(xh())return Promise.resolve(BEe());let t=RX(),r=await t.get();if(r)return r;let n=NX();return n?(await t.store(n),n):null}static async saveSessionToken(t){if(xh())return;let r=RX();if(await r.store(t)){if(await r.get()===t){r.storesInSessionFile||BX();return}await r.delete()}if(DEe(t),NX()!==t)throw new Error("Failed to persist session token. "+(process.platform==="darwin"?'Check Keychain Access permissions for "visa-cli".':`Ensure ${UX} is writable.`))}static async getRcAccessToken(){return xh()?jEe():mgt()}static async saveRcAccessToken(t){xh()||await hgt(t)}static async deleteSessionToken(){if(xh())return;await RX().delete(),BX()}static async clearAll(){await this.deleteSessionToken(),await ygt()}}});var fB=g((mIr,bgt)=>{bgt.exports={name:"@visa/cli",version:"4.1.0-rc.36",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 US(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 Cgt(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 qX(e){let t=e;if(t?.code==="EPERM"||t?.code==="EACCES")return!0;let r=agt(e).toLowerCase();return r.includes("operation not permitted")||r.includes("permission denied")}function zp(){return process.platform!=="darwin"?Promise.resolve(!1):(qEe??=(async()=>{try{return await yl("security",["default-keychain","-d","user"],{timeout:5e3}),!0}catch(e){return qX(e)}})(),qEe)}async function cgt(){if(!await zp())return null;try{let{stdout:e}=await yl("security",["find-generic-password","-s",Qu,"-a",Ah,"-w"],{timeout:5e3});return e.trim()||null}catch(e){if(qX(e))throw new dB("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 ugt(e){if(!await zp())return!1;try{try{await yl("security",["delete-generic-password","-s",Qu,"-a",Ah],{timeout:5e3})}catch{}return await yl("security",["add-generic-password","-s",Qu,"-a",Ah,"-w",e],{timeout:5e3}),!0}catch{return!1}}async function dgt(){if(await zp())try{await yl("security",["delete-generic-password","-s",Qu,"-a",Ah],{timeout:5e3})}catch{}}async function lgt(){if(!MX())return null;try{let{stdout:e}=await yl("secret-tool",["lookup","service",Qu,"account",Ah],{timeout:5e3});return e.trim()||null}catch{return null}}async function pgt(e){if(!MX())return!1;try{let t=(0,lB.execFile)("secret-tool",["store","--label",`${Qu} ${Ah}`,"service",Qu,"account",Ah]);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"))},sgt))]),!0):!1}catch{return!1}}async function fgt(){if(MX())try{await yl("secret-tool",["clear","service",Qu,"account",Ah],{timeout:5e3})}catch{}}function MX(){return!!process.env.DBUS_SESSION_BUS_ADDRESS}async function mgt(){if(!await zp())return null;try{let{stdout:e}=await yl("security",["find-generic-password","-s",Qu,"-a",uB,"-w"],{timeout:5e3});return e.trim()||null}catch{return null}}async function hgt(e){if(await zp())try{try{await yl("security",["delete-generic-password","-s",Qu,"-a",uB],{timeout:5e3})}catch{}await yl("security",["add-generic-password","-s",Qu,"-a",uB,"-w",e],{timeout:5e3})}catch{}}async function ygt(){if(await zp())try{await yl("security",["delete-generic-password","-s",Qu,"-a",uB],{timeout:5e3})}catch{}}function NX(){try{return Sh.readFileSync(jS,"utf-8").trim()||null}catch(e){if(qX(e))throw new dB(`Unable to read Visa CLI credentials from ${jS}. Check file permissions or rerun with access to the Visa CLI credential directory.`);return null}}function DEe(e){Sh.mkdirSync(UX,{recursive:!0,mode:448}),Sh.writeFileSync(jS,e,{mode:384}),process.platform==="win32"&&ggt(jS)}function BX(){try{Sh.unlinkSync(jS)}catch{}}function ggt(e){try{let t=pB.userInfo().username;(0,lB.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 RX(){switch(process.platform){case"darwin":return{get:cgt,store:ugt,delete:dgt};case"linux":return{get:lgt,store:pgt,delete:fgt};default:return{get:async()=>NX(),store:async e=>{try{return DEe(e),!0}catch{return!1}},delete:async()=>BX(),storesInSessionFile:!0}}}var lB,MEe,Sh,pB,jX,yl,UX,jS,Qu,Ah,uB,sgt,dB,qEe,Ai,H2=P(()=>{"use strict";lB=require("child_process"),MEe=require("util"),Sh=ve(require("fs")),pB=ve(require("os")),jX=ve(require("path"));cB();yl=(0,MEe.promisify)(lB.execFile),UX=jX.join(pB.homedir(),".visa-mcp"),jS=jX.join(UX,"session-token"),Qu="visa-cli",Ah="session-token",uB="rc-access",sgt=5e3,dB=class extends Error{constructor(t){super(t),this.name="CredentialAccessError"}};qEe=null;Ai=class{static async getSessionToken(){if(xh())return Promise.resolve(BEe());let t=RX(),r=await t.get();if(r)return r;let n=NX();return n?(await t.store(n),n):null}static async saveSessionToken(t){if(xh())return;let r=RX();if(await r.store(t)){if(await r.get()===t){r.storesInSessionFile||BX();return}await r.delete()}if(DEe(t),NX()!==t)throw new Error("Failed to persist session token. "+(process.platform==="darwin"?'Check Keychain Access permissions for "visa-cli".':`Ensure ${UX} is writable.`))}static async getRcAccessToken(){return xh()?jEe():mgt()}static async saveRcAccessToken(t){xh()||await hgt(t)}static async deleteSessionToken(){if(xh())return;await RX().delete(),BX()}static async clearAll(){await this.deleteSessionToken(),await ygt()}}});var fB=g((mIr,bgt)=>{bgt.exports={name:"@visa/cli",version:"4.1.0-rc.37",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 US(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 Cgt(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 qS(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 WEe(e,t){let r=qS(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 GEe(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 gB(e,t=process.platform){let r=qS(e);return r?GEe(r,t):null}function VEe(e,t){e(` Could not open browser automatically (${t.message}).`),e(" Open the URL above manually to continue."),e("")}async function Qw(e,t={}){let r=t.log??(u=>console.log(u)),n=t.env??process.env,i=t.platform??process.platform,o=qS(e),s=t.spawn??((u,d,l)=>{(0,KEe.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 Cgt(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=US(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=GEe(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?VEe(r,l):(r(" Opened browser. Waiting for you to sign in..."),r("")),u()};try{s(c.cmd,c.args,d)}catch(l){VEe(r,l instanceof Error?l:new Error(String(l))),u()}})}var KEe,bB=P(()=>{"use strict";KEe=require("child_process")});var jB,oAe,sAe,nQ,Ih,iQ=P(()=>{"use strict";jB=ve(require("fs")),oAe=ve(require("path")),sAe=ve(require("os")),nQ=oAe.join(sAe.homedir(),".visa-mcp"),Ih=class{static ensureConfigDir(){jB.existsSync(nQ)||jB.mkdirSync(nQ,{recursive:!0,mode:448})}static getConfigDir(){return nQ}}});function Nbt(){Qa.existsSync(sQ)||Qa.mkdirSync(sQ,{recursive:!0,mode:448})}function Bbt(){if(!oQ){if(Nbt(),Qa.existsSync(KS)&&Qa.statSync(KS).size>Rbt){let t=KS+".1";Qa.existsSync(t)&&Qa.unlinkSync(t),Qa.renameSync(KS,t)}oQ=Qa.createWriteStream(KS,{flags:"a"})}return oQ}function jbt(e){return e==="WARN"||e==="ERROR"?!0:process.env.VISA_CLI_DEBUG==="1"}function UB(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
  `;jbt(e)&&process.stderr.write(i),Bbt().write(i)}var Qa,aQ,aAe,sQ,KS,Rbt,oQ,ke,nu=P(()=>{"use strict";Qa=ve(require("fs")),aQ=ve(require("path")),aAe=ve(require("os")),sQ=aQ.join(aAe.homedir(),".visa-mcp"),KS=aQ.join(sQ,"mcp-server.log"),Rbt=5*1024*1024,oQ=null;ke={debug:(...e)=>UB("DEBUG",...e),info:(...e)=>UB("INFO",...e),warn:(...e)=>UB("WARN",...e),error:(...e)=>UB("ERROR",...e)}});function cAe(e){let t=uAe.homedir();return t&&e.startsWith(t)?`~${e.slice(t.length)}`:e}function qB(){return dAe.join(Ih.getConfigDir(),Ubt)}function lAe(e){if((0,uQ.isIP)(e)!==4)return!1;let[t]=e.split(".").map(Number);return t===127}function Mbt(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 lAe(i)}function Dbt(e){let t=e.toLowerCase().replace(/^\[(.*)\]$/,"$1");if(t==="localhost")return!0;let r=(0,uQ.isIP)(t);return r===4?lAe(t):r===6?t==="::1"||Mbt(t):!1}function cQ(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:"&&Dbt(r.hostname)))throw new Error(`${t} ${qbt}`)}function MB(){let e=qB();if(!Oh.existsSync(e))return{};try{let t=Oh.readFileSync(e,"utf-8"),r=JSON.parse(t);return!r||typeof r!="object"||Array.isArray(r)?(ke.warn("settings:corrupt",{path:cAe(e),reason:"not_object"}),{}):r}catch(t){return ke.warn("settings:corrupt",{path:cAe(e),error:t?.message||String(t)}),{}}}function pAe(e){Ih.ensureConfigDir();let t=qB(),r=`${t}.tmp`,n=JSON.stringify(e,null,2)+`
6
- `;Oh.writeFileSync(r,n,{mode:384}),Oh.renameSync(r,t)}function dQ(e){let t=MB()[e];return typeof t=="string"?t:void 0}function lQ(e){let t=MB()[e];return typeof t=="boolean"?t:void 0}function DB(e,t){let r=Y2[e];if(!r)throw new bl(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=MB();return i[e]=n,pAe(i),{key:e,value:n,requiresRestart:!!r.requiresRestart,path:qB()}}function LB(e){let t=Y2[e];if(!t)throw new bl(e);let r=MB(),n=e in r;return n&&(delete r[e],pAe(r)),{key:e,removed:n,requiresRestart:n&&!!t.requiresRestart,path:qB()}}function Hbt(e){return typeof e=="string"&&/-(?:rc|alpha|beta)\./i.test(e)}function Fbt(){try{let e=fB();return Hbt(e.version)}catch{return!1}}function $bt(e){return e.envVar!==void 0&&e.envVar!==""?(cQ(e.envVar,"VISA_AUTH_URL"),e.envVar):e.settingValue!==void 0?(cQ(e.settingValue,"auth.serverUrl"),e.settingValue):e.isPrerelease?zbt:Lbt}function ba(){return $bt({envVar:process.env.VISA_AUTH_URL,settingValue:dQ("auth.serverUrl"),isPrerelease:Fbt()})}function fAe(){let e=process.env.VISA_SUPPRESS_BROWSER;return e!==void 0?e==="true":lQ("ui.suppressBrowser")??!1}var Oh,uQ,uAe,dAe,Ubt,qbt,Y2,bl,Lbt,zbt,Z2=P(()=>{"use strict";Oh=ve(require("fs")),uQ=require("node:net"),uAe=ve(require("os")),dAe=ve(require("path"));iQ();nu();Ubt="settings.json",qbt="must use https unless it points at localhost/loopback for local development";Y2={"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");cQ(e)}},"ui.suppressBrowser":{type:"boolean",description:"When true, the CLI/MCP server stops auto-opening result URLs in your browser."}};bl=class extends Error{constructor(t){let r=Object.keys(Y2).sort().join(", ");super(`Unknown setting "${t}". Settable keys: ${r}.`),this.name="UnknownSettingKeyError"}};Lbt="https://auth.visacli.sh",zbt="https://auth-visa-code-preview.up.railway.app"});function pQ(e=Ybt){return/^\d+\.\d+\.\d+$/.test(e)&&e!=="0.0.0"}function mAe(e){let t=e.length;for(;t>0&&e.charCodeAt(t-1)===47;)t--;return e.slice(0,t)}function _l(e=process.env){let t=e.VISA_VERIFY_WEB_URL?.trim();return mAe(t||Zbt)}function WS(e){return`${mAe(e)}${Xbt}`}var Ybt,Zbt,Xbt,fQ=P(()=>{"use strict";Ybt="4.1.0-rc.36",Zbt="https://app.visacli.sh",Xbt="/agent/enroll"});function I2t(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name==="Uint8Array"&&"BYTES_PER_ELEMENT"in e&&e.BYTES_PER_ELEMENT===1}function oSe(e,t,r=""){let n=I2t(e),i=e?.length,o=t!==void 0;if(!n||o&&i!==t){let s=r&&`"${r}" `,a=o?` of length ${t}`:"",c=n?`length=${i}`:`type=${typeof e}`,u=s+"expected Uint8Array"+a+", got "+c;throw n?new RangeError(u):new TypeError(u)}return e}function LAe(e,t=!0){if(e.destroyed)throw new Error("Hash instance has been destroyed");if(t&&e.finished)throw new Error("Hash#digest() has already been called")}function O2t(e,t){oSe(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 xQ(...e){for(let t=0;t<e.length;t++)e[t].fill(0)}function _Q(e){return new DataView(e.buffer,e.byteOffset,e.byteLength)}function C2t(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 N2t(e,t=!1){return t?{h:Number(e&GB),l:Number(e>>zAe&GB)}:{h:Number(e>>zAe&GB)|0,l:Number(e&GB)|0}}function B2t(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}=N2t(e[o],t);[n[o],i[o]]=[s,a]}return[n,i]}function t0(e,t,r,n){let i=(t>>>0)+(n>>>0);return{h:e+r+(i/2**32|0)|0,l:i|0}}function K2t(){return A2t.randomSecretKey()}function JS(e){return _2t(e)}function rj(){let e=K2t();return{secretKey:e,publicKey:JS(e)}}function aSe(e){if(e.length!==VAe)throw new Error(`Ed25519 seed must be ${VAe} bytes, got ${e.length}`);return{secretKey:e,publicKey:JS(e)}}function d4(e,t){return E2t(t,e)}function W2t(e){let t="";for(let r=0;r<e.length;r++)t+=String.fromCharCode(e[r]);return btoa(t)}function G2t(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 AQ(e){return W2t(e).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}function J2t(e){let t=e.length%4===0?0:4-e.length%4,r=e.replace(/-/g,"+").replace(/_/g,"/")+"=".repeat(t);return G2t(r)}function Y2t(e){if(e.kty!=="OKP"||e.crv!=="Ed25519")throw new Error("not an Ed25519 OKP JWK")}function l4(e){let t=JS(e);return{kty:"OKP",crv:"Ed25519",x:AQ(t),d:AQ(e)}}function jh(e){return{kty:"OKP",crv:"Ed25519",x:AQ(e)}}function YS(e){if(Y2t(e),!e.d)throw new Error("Ed25519 JWK has no private component (d)");return J2t(e.d)}function dSe(){return ZS.default.randomBytes(32).toString("base64url")}function lSe(e){if(!/^[A-Za-z0-9_-]{43}$/.test(e))throw new Error("pairing verifier must be 32 unpadded base64url bytes");return BQ(e)}function X2t(e){return e.toUpperCase().replace(/[^A-Z0-9]/g,"")}function Q2t(e){let t=X2t(e);return`${t.slice(0,4)}-${t.slice(4)}`}function pSe(){return ZS.default.randomBytes(32).toString("base64url")}function NQ(e){if(!/^[A-Za-z0-9_-]{43}$/.test(e))throw new Error("claim token must be 32 unpadded base64url bytes");return BQ(`visa-agent-pairing-claim-token:v1:${e}`)}function nj(e,t){NQ(t);let r=ZS.default.createHash("sha256").update(`visa-agent-pairing-derived-code:v1:${e}:${t}`,"utf8").digest(),n="";for(let i=0;i<Z2t;i+=1)n+=RQ[r[i]&uSe];return Q2t(n)}function fSe(e){return ySe("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 mSe(e){return ySe("visa-agent-pairing-activation:v1",{agentJkt:e.agentJkt,artifactHash:e.artifactHash,pairingId:e.pairingId,termsHash:e.termsHash})}function hSe(e){return BQ(`visa-agent-pairing-artifacts:v1:${SQ(e)}`)}function BQ(e){return ZS.default.createHash("sha256").update(e,"utf8").digest("base64url")}function ySe(e,t){return`${e}
6
+ `;Oh.writeFileSync(r,n,{mode:384}),Oh.renameSync(r,t)}function dQ(e){let t=MB()[e];return typeof t=="string"?t:void 0}function lQ(e){let t=MB()[e];return typeof t=="boolean"?t:void 0}function DB(e,t){let r=Y2[e];if(!r)throw new bl(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=MB();return i[e]=n,pAe(i),{key:e,value:n,requiresRestart:!!r.requiresRestart,path:qB()}}function LB(e){let t=Y2[e];if(!t)throw new bl(e);let r=MB(),n=e in r;return n&&(delete r[e],pAe(r)),{key:e,removed:n,requiresRestart:n&&!!t.requiresRestart,path:qB()}}function Hbt(e){return typeof e=="string"&&/-(?:rc|alpha|beta)\./i.test(e)}function Fbt(){try{let e=fB();return Hbt(e.version)}catch{return!1}}function $bt(e){return e.envVar!==void 0&&e.envVar!==""?(cQ(e.envVar,"VISA_AUTH_URL"),e.envVar):e.settingValue!==void 0?(cQ(e.settingValue,"auth.serverUrl"),e.settingValue):e.isPrerelease?zbt:Lbt}function ba(){return $bt({envVar:process.env.VISA_AUTH_URL,settingValue:dQ("auth.serverUrl"),isPrerelease:Fbt()})}function fAe(){let e=process.env.VISA_SUPPRESS_BROWSER;return e!==void 0?e==="true":lQ("ui.suppressBrowser")??!1}var Oh,uQ,uAe,dAe,Ubt,qbt,Y2,bl,Lbt,zbt,Z2=P(()=>{"use strict";Oh=ve(require("fs")),uQ=require("node:net"),uAe=ve(require("os")),dAe=ve(require("path"));iQ();nu();Ubt="settings.json",qbt="must use https unless it points at localhost/loopback for local development";Y2={"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");cQ(e)}},"ui.suppressBrowser":{type:"boolean",description:"When true, the CLI/MCP server stops auto-opening result URLs in your browser."}};bl=class extends Error{constructor(t){let r=Object.keys(Y2).sort().join(", ");super(`Unknown setting "${t}". Settable keys: ${r}.`),this.name="UnknownSettingKeyError"}};Lbt="https://auth.visacli.sh",zbt="https://auth-visa-code-preview.up.railway.app"});function pQ(e=Ybt){return/^\d+\.\d+\.\d+$/.test(e)&&e!=="0.0.0"}function mAe(e){let t=e.length;for(;t>0&&e.charCodeAt(t-1)===47;)t--;return e.slice(0,t)}function _l(e=process.env){let t=e.VISA_VERIFY_WEB_URL?.trim();return mAe(t||Zbt)}function WS(e){return`${mAe(e)}${Xbt}`}var Ybt,Zbt,Xbt,fQ=P(()=>{"use strict";Ybt="4.1.0-rc.37",Zbt="https://app.visacli.sh",Xbt="/agent/enroll"});function I2t(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name==="Uint8Array"&&"BYTES_PER_ELEMENT"in e&&e.BYTES_PER_ELEMENT===1}function oSe(e,t,r=""){let n=I2t(e),i=e?.length,o=t!==void 0;if(!n||o&&i!==t){let s=r&&`"${r}" `,a=o?` of length ${t}`:"",c=n?`length=${i}`:`type=${typeof e}`,u=s+"expected Uint8Array"+a+", got "+c;throw n?new RangeError(u):new TypeError(u)}return e}function LAe(e,t=!0){if(e.destroyed)throw new Error("Hash instance has been destroyed");if(t&&e.finished)throw new Error("Hash#digest() has already been called")}function O2t(e,t){oSe(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 xQ(...e){for(let t=0;t<e.length;t++)e[t].fill(0)}function _Q(e){return new DataView(e.buffer,e.byteOffset,e.byteLength)}function C2t(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 N2t(e,t=!1){return t?{h:Number(e&GB),l:Number(e>>zAe&GB)}:{h:Number(e>>zAe&GB)|0,l:Number(e&GB)|0}}function B2t(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}=N2t(e[o],t);[n[o],i[o]]=[s,a]}return[n,i]}function t0(e,t,r,n){let i=(t>>>0)+(n>>>0);return{h:e+r+(i/2**32|0)|0,l:i|0}}function K2t(){return A2t.randomSecretKey()}function JS(e){return _2t(e)}function rj(){let e=K2t();return{secretKey:e,publicKey:JS(e)}}function aSe(e){if(e.length!==VAe)throw new Error(`Ed25519 seed must be ${VAe} bytes, got ${e.length}`);return{secretKey:e,publicKey:JS(e)}}function d4(e,t){return E2t(t,e)}function W2t(e){let t="";for(let r=0;r<e.length;r++)t+=String.fromCharCode(e[r]);return btoa(t)}function G2t(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 AQ(e){return W2t(e).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}function J2t(e){let t=e.length%4===0?0:4-e.length%4,r=e.replace(/-/g,"+").replace(/_/g,"/")+"=".repeat(t);return G2t(r)}function Y2t(e){if(e.kty!=="OKP"||e.crv!=="Ed25519")throw new Error("not an Ed25519 OKP JWK")}function l4(e){let t=JS(e);return{kty:"OKP",crv:"Ed25519",x:AQ(t),d:AQ(e)}}function jh(e){return{kty:"OKP",crv:"Ed25519",x:AQ(e)}}function YS(e){if(Y2t(e),!e.d)throw new Error("Ed25519 JWK has no private component (d)");return J2t(e.d)}function dSe(){return ZS.default.randomBytes(32).toString("base64url")}function lSe(e){if(!/^[A-Za-z0-9_-]{43}$/.test(e))throw new Error("pairing verifier must be 32 unpadded base64url bytes");return BQ(e)}function X2t(e){return e.toUpperCase().replace(/[^A-Z0-9]/g,"")}function Q2t(e){let t=X2t(e);return`${t.slice(0,4)}-${t.slice(4)}`}function pSe(){return ZS.default.randomBytes(32).toString("base64url")}function NQ(e){if(!/^[A-Za-z0-9_-]{43}$/.test(e))throw new Error("claim token must be 32 unpadded base64url bytes");return BQ(`visa-agent-pairing-claim-token:v1:${e}`)}function nj(e,t){NQ(t);let r=ZS.default.createHash("sha256").update(`visa-agent-pairing-derived-code:v1:${e}:${t}`,"utf8").digest(),n="";for(let i=0;i<Z2t;i+=1)n+=RQ[r[i]&uSe];return Q2t(n)}function fSe(e){return ySe("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 mSe(e){return ySe("visa-agent-pairing-activation:v1",{agentJkt:e.agentJkt,artifactHash:e.artifactHash,pairingId:e.pairingId,termsHash:e.termsHash})}function hSe(e){return BQ(`visa-agent-pairing-artifacts:v1:${SQ(e)}`)}function BQ(e){return ZS.default.createHash("sha256").update(e,"utf8").digest("base64url")}function ySe(e,t){return`${e}
7
7
  ${Object.entries(t).sort(([r],[n])=>r.localeCompare(n)).map(([r,n])=>`${r}=${n}`).join(`
8
8
  `)}`}function SQ(e){if(e===null||typeof e!="object")return JSON.stringify(e);if(Array.isArray(e))return`[${e.map(SQ).join(",")}]`;let t=e;return`{${Object.keys(t).sort().map(r=>`${JSON.stringify(r)}:${SQ(t[r])}`).join(",")}}`}var ZS,KAe,XB,ZB,NAe,BAe,yQ,gQ,u2t,c4,d2t,es,l2t,p2t,f2t,$p,tj,TQ,WAe,PQ,e0,jAe,IQ,GAe,m2t,u4,JAe,QB,Q2,bn,UAe,Fe,YAe,ZAe,XAe,QAe,bQ,vQ,GS,r_,t_,eSe,tSe,Fp,h2t,qAe,y2t,wQ,g2t,OQ,rSe,b2t,CQ,_2t,v2t,w2t,E2t,kQ,nSe,x2t,A2t,ej,S2t,iSe,EQ,T2t,MAe,DAe,P2t,k2t,R2t,Us,GB,zAe,HAe,FAe,s4,a4,JB,YB,j2t,U2t,q2t,M2t,D2t,L2t,sSe,z2t,H2t,Nh,Bh,F2t,$2t,V2t,$Ae,VAe,rOr,cSe,nOr,iOr,oOr,sOr,RQ,Z2t,uSe,aOr,n_=P(()=>{"use strict";ZS=ve(require("node:crypto"),1),KAe=Object.freeze({p:0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffedn,n:0x1000000000000000000000000000000014def9dea2f79cd65812631a5cf5d3edn,h:8n,a:0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffecn,d:0x52036cee2b6ffe738cc740797779e89800700a4d4141d8ab75eb4dca135978a3n,Gx:0x216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51an,Gy:0x6666666666666666666666666666666666666666666666666666666666666658n}),{p:XB,n:ZB,Gx:NAe,Gy:BAe,a:yQ,d:gQ,h:u2t}=KAe,c4=32,d2t=(...e)=>{"captureStackTrace"in Error&&typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(...e)},es=(e="")=>{let t=new Error(e);throw d2t(t,es),t},l2t=e=>typeof e=="bigint",p2t=e=>typeof e=="string",f2t=e=>e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name==="Uint8Array"&&"BYTES_PER_ELEMENT"in e&&e.BYTES_PER_ELEMENT===1,$p=(e,t,r="")=>{let n=f2t(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},tj=e=>new Uint8Array(e),TQ=e=>Uint8Array.from(e),WAe=(e,t)=>e.toString(16).padStart(t,"0"),PQ=e=>Array.from($p(e)).map(t=>WAe(t,2)).join(""),e0={_0:48,_9:57,A:65,F:70,a:97,f:102},jAe=e=>{if(e>=e0._0&&e<=e0._9)return e-e0._0;if(e>=e0.A&&e<=e0.F)return e-(e0.A-10);if(e>=e0.a&&e<=e0.f)return e-(e0.a-10)},IQ=e=>{let t="hex invalid";if(!p2t(e))return es(t);let r=e.length,n=r/2;if(r%2)return es(t);let i=tj(n);for(let o=0,s=0;o<n;o++,s+=2){let a=jAe(e.charCodeAt(s)),c=jAe(e.charCodeAt(s+1));if(a===void 0||c===void 0)return es(t);i[o]=a*16+c}return i},GAe=()=>globalThis?.crypto,m2t=()=>GAe()?.subtle??es("crypto.subtle must be defined, consider polyfill"),u4=(...e)=>{let t=0;for(let i of e)t+=$p(i).length;let r=tj(t),n=0;return e.forEach(i=>{r.set(i,n),n+=i.length}),r},JAe=(e=c4)=>GAe().getRandomValues(tj(e)),QB=BigInt,Q2=(e,t,r,n="bad number: out of range")=>{if(!l2t(e))throw new TypeError(n);if(t<=e&&e<r)return e;throw new RangeError(n)},bn=(e,t=XB)=>{let r=e%t;return r>=0n?r:t+r},UAe=(1n<<255n)-1n,Fe=e=>{e<0n&&es("negative coordinate");let t=(e>>255n)*19n+(e&UAe);return t=(t>>255n)*19n+(t&UAe),t%XB},YAe=e=>bn(e,ZB),ZAe=(e,t)=>{(e===0n||t<=0n)&&es("no inverse n="+e+" mod="+t);let r=bn(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?bn(i,t):es("no inverse")},XAe=e=>{let t=nSe[e];return typeof t!="function"&&es("hashes."+e+" not set"),t},QAe=e=>$p(e,64,"digest"),bQ=e=>e instanceof GS?e:es("Point expected"),vQ=2n**256n,GS=class e_{static BASE;static ZERO;X;Y;Z;T;constructor(t,r,n,i){let o=vQ;this.X=Q2(t,0n,o),this.Y=Q2(r,0n,o),this.Z=Q2(n,1n,o),this.T=Q2(i,0n,o),Object.freeze(this)}static CURVE(){return KAe}static fromAffine(t){return new e_(t.x,t.y,1n,Fe(t.x*t.y))}static fromBytes(t,r=!1){let n=gQ,i=TQ($p(t,c4)),o=t[31];i[31]=o&-129;let s=tSe(i);Q2(s,0n,r?vQ:XB);let c=Fe(s*s),u=bn(c-1n),d=Fe(n*c+1n),{isValid:l,value:p}=y2t(u,d);l||es("bad point: y not sqrt");let f=(p&1n)===1n,m=(o&128)!==0;return!r&&p===0n&&m&&es("bad point: x==0, isLastByteOdd"),m!==f&&(p=bn(-p)),new e_(p,s,1n,Fe(p*s))}static fromHex(t,r){return e_.fromBytes(IQ(t),r)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}assertValidity(){let t=yQ,r=gQ,n=this;if(n.is0())return es("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=bn(l+Fe(r*Fe(c*u)));if(f!==m)return es("bad point: equation left != right (1)");let h=Fe(i*o),y=Fe(s*a);return h!==y?es("bad point: equation left != right (2)"):this}equals(t){let{X:r,Y:n,Z:i}=this,{X:o,Y:s,Z:a}=bQ(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(t_)}negate(){return new e_(bn(-this.X),this.Y,this.Z,bn(-this.T))}double(){let{X:t,Y:r,Z:n}=this,i=yQ,o=Fe(t*t),s=Fe(r*r),a=Fe(2n*n*n),c=Fe(i*o),u=bn(t+r),d=bn(Fe(u*u)-o-s),l=bn(c+s),p=bn(l-a),f=bn(c-s),m=Fe(d*p),h=Fe(l*f),y=Fe(d*f),w=Fe(p*l);return new e_(m,h,w,y)}add(t){let{X:r,Y:n,Z:i,T:o}=this,{X:s,Y:a,Z:c,T:u}=bQ(t),d=yQ,l=gQ,p=Fe(r*s),f=Fe(n*a),m=Fe(Fe(o*l)*u),h=Fe(i*c),y=bn(Fe(bn(r+n)*bn(s+a))-p-f),w=bn(h-m),E=bn(h+m),_=bn(f-Fe(d*p)),v=Fe(y*w),x=Fe(E*_),A=Fe(y*_),S=Fe(w*E);return new e_(v,x,S,A)}subtract(t){return this.add(bQ(t).negate())}multiply(t,r=!0){if(!r&&t===0n||(Q2(t,1n,ZB),!r&&this.is0()))return t_;if(t===1n)return this;if(this.equals(r_))return P2t(t).p;let n=t_,i=r_;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(t_))return{x:0n,y:1n};let i=ZAe(n,XB);Fe(n*i)!==1n&&es("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=eSe(r);return n[31]|=t&1n?128:0,n}toHex(){return PQ(this.toBytes())}clearCofactor(){return this.multiply(QB(u2t),!1)}isSmallOrder(){return this.clearCofactor().is0()}isTorsionFree(){let t=this.multiply(ZB/2n,!1).double();return ZB%2n&&(t=t.add(this)),t.is0()}},r_=new GS(NAe,BAe,1n,bn(NAe*BAe)),t_=new GS(0n,1n,1n,0n);GS.BASE=r_;GS.ZERO=t_;eSe=e=>IQ(WAe(Q2(e,0n,vQ),64)).reverse(),tSe=e=>QB("0x"+PQ(TQ($p(e)).reverse())),Fp=(e,t)=>{let r=e;for(;t-- >0n;)r=Fe(r*r);return r},h2t=e=>{let t=Fe(e*e),r=Fe(t*e),n=Fe(Fp(r,2n)*r),i=Fe(Fp(n,1n)*e),o=Fe(Fp(i,5n)*i),s=Fe(Fp(o,10n)*o),a=Fe(Fp(s,20n)*s),c=Fe(Fp(a,40n)*a),u=Fe(Fp(c,80n)*c),d=Fe(Fp(u,80n)*c),l=Fe(Fp(d,10n)*o);return{pow_p_5_8:Fe(Fp(l,2n)*e),b2:r}},qAe=0x2b8324804fc1df0b2b4d00993dfbd7a72f431806ad2fe478c4ee1b274a0ea0b0n,y2t=(e,t)=>{let r=Fe(t*Fe(t*t)),n=Fe(Fe(r*r)*t),i=h2t(Fe(e*n)).pow_p_5_8,o=Fe(e*Fe(r*i)),s=Fe(t*Fe(o*o)),a=o,c=Fe(o*qAe),u=s===e,d=s===bn(-e),l=s===bn(-e*qAe);return u&&(o=a),(d||l)&&(o=c),(bn(o)&1n)===1n&&(o=bn(-o)),{isValid:u||d,value:o}},wQ=e=>YAe(tSe(e)),g2t=(...e)=>Promise.resolve(XAe("sha512Async")(u4(...e))).then(QAe),OQ=(...e)=>QAe(XAe("sha512")(u4(...e))),rSe=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=wQ(r),o=r_.multiply(i),s=o.toBytes();return{head:r,prefix:n,scalar:i,point:o,pointBytes:s}},b2t=e=>g2t($p(e,c4)).then(rSe),CQ=e=>rSe(OQ($p(e,c4))),_2t=e=>CQ(e).pointBytes,v2t=e=>e.finish(OQ(e.hashable)),w2t=(e,t,r)=>{let{pointBytes:n,scalar:i}=e,o=wQ(t),s=r_.multiply(o).toBytes();return{hashable:u4(s,n,r),finish:u=>{let d=YAe(o+wQ(u)*i);return $p(u4(s,eSe(d)),64)}}},E2t=(e,t)=>{let r=$p(e),n=CQ(t),i=OQ(n.prefix,r);return v2t(w2t(n,i,r))},kQ=Object.freeze({bytesToHex:PQ,hexToBytes:IQ,concatBytes:u4,mod:bn,invert:ZAe,randomBytes:JAe}),nSe={sha512Async:async e=>{let t=m2t(),r=u4(e);return tj(await t.digest("SHA-512",r.buffer))},sha512:void 0},x2t=e=>(e=e===void 0?JAe(c4):e,$p(e,c4)),A2t=Object.freeze({getExtendedPublicKeyAsync:b2t,getExtendedPublicKey:CQ,randomSecretKey:x2t}),ej=8,S2t=256,iSe=Math.ceil(S2t/ej)+1,EQ=2**(ej-1),T2t=()=>{let e=[],t=r_,r=t;for(let n=0;n<iSe;n++){r=t,e.push(r);for(let i=1;i<EQ;i++)r=r.add(t),e.push(r);t=r.double()}return e},MAe=void 0,DAe=(e,t)=>{let r=t.negate();return e?r:t},P2t=e=>{let t=MAe||(MAe=T2t()),r=t_,n=r_,i=2**ej,o=i,s=QB(i-1),a=QB(ej);for(let c=0;c<iSe;c++){let u=Number(e&s);e>>=a,u>EQ&&(u-=o,e+=1n);let d=c*EQ,l=d,p=d+Math.abs(u)-1,f=c%2!==0,m=u<0;u===0?n=n.add(DAe(f,t[l])):r=r.add(DAe(m,t[p]))}return e!==0n&&es("invalid wnaf"),{p:r,f:n}};k2t=e=>({oid:Uint8Array.from([6,9,96,134,72,1,101,3,4,2,e])}),R2t=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=_Q(this.buffer)}update(e){LAe(this),oSe(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=_Q(e);for(;n<=i-o;o+=n)this.process(a,o);continue}r.set(e.subarray(o,o+s),this.pos),this.pos+=s,o+=s,this.pos===n&&(this.process(t,0),this.pos=0)}return this.length+=e.length,this.roundClean(),this}digestInto(e){LAe(this),O2t(e,this),this.finished=!0;let{buffer:t,view:r,blockLen:n,isLE:i}=this,{pos:o}=this;t[o++]=128,xQ(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=_Q(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()}},Us=Uint32Array.from([1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209]),GB=BigInt(2**32-1),zAe=BigInt(32);HAe=(e,t,r)=>e>>>r,FAe=(e,t,r)=>e<<32-r|t>>>r,s4=(e,t,r)=>e>>>r|t<<32-r,a4=(e,t,r)=>e<<32-r|t>>>r,JB=(e,t,r)=>e<<64-r|t>>>r-32,YB=(e,t,r)=>e>>>r-32|t<<64-r;j2t=(e,t,r)=>(e>>>0)+(t>>>0)+(r>>>0),U2t=(e,t,r,n)=>t+r+n+(e/2**32|0)|0,q2t=(e,t,r,n)=>(e>>>0)+(t>>>0)+(r>>>0)+(n>>>0),M2t=(e,t,r,n,i)=>t+r+n+i+(e/2**32|0)|0,D2t=(e,t,r,n,i)=>(e>>>0)+(t>>>0)+(r>>>0)+(n>>>0)+(i>>>0),L2t=(e,t,r,n,i,o)=>t+r+n+i+o+(e/2**32|0)|0,sSe=B2t(["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))),z2t=sSe[0],H2t=sSe[1],Nh=new Uint32Array(80),Bh=new Uint32Array(80),F2t=class extends R2t{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 E=0;E<16;E++,t+=4)Nh[E]=e.getUint32(t),Bh[E]=e.getUint32(t+=4);for(let E=16;E<80;E++){let _=Nh[E-15]|0,v=Bh[E-15]|0,x=s4(_,v,1)^s4(_,v,8)^HAe(_,v,7),A=a4(_,v,1)^a4(_,v,8)^FAe(_,v,7),S=Nh[E-2]|0,C=Bh[E-2]|0,I=s4(S,C,19)^JB(S,C,61)^HAe(S,C,6),k=a4(S,C,19)^YB(S,C,61)^FAe(S,C,6),q=q2t(A,k,Bh[E-7],Bh[E-16]),j=M2t(q,x,I,Nh[E-7],Nh[E-16]);Nh[E]=j|0,Bh[E]=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 E=0;E<80;E++){let _=s4(d,l,14)^s4(d,l,18)^JB(d,l,41),v=a4(d,l,14)^a4(d,l,18)^YB(d,l,41),x=d&p^~d&m,A=l&f^~l&h,S=D2t(w,v,A,H2t[E],Bh[E]),C=L2t(S,y,_,x,z2t[E],Nh[E]),I=S|0,k=s4(r,n,28)^JB(r,n,34)^JB(r,n,39),q=a4(r,n,28)^YB(r,n,34)^YB(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}=t0(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 N=j2t(I,q,U);r=U2t(N,C,k,j),n=N|0}({h:r,l:n}=t0(this.Ah|0,this.Al|0,r|0,n|0)),{h:i,l:o}=t0(this.Bh|0,this.Bl|0,i|0,o|0),{h:s,l:a}=t0(this.Ch|0,this.Cl|0,s|0,a|0),{h:c,l:u}=t0(this.Dh|0,this.Dl|0,c|0,u|0),{h:d,l}=t0(this.Eh|0,this.El|0,d|0,l|0),{h:p,l:f}=t0(this.Fh|0,this.Fl|0,p|0,f|0),{h:m,l:h}=t0(this.Gh|0,this.Gl|0,m|0,h|0),{h:y,l:w}=t0(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(){xQ(Nh,Bh)}destroy(){this.destroyed=!0,xQ(this.buffer),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}},$2t=class extends F2t{Ah=Us[0]|0;Al=Us[1]|0;Bh=Us[2]|0;Bl=Us[3]|0;Ch=Us[4]|0;Cl=Us[5]|0;Dh=Us[6]|0;Dl=Us[7]|0;Eh=Us[8]|0;El=Us[9]|0;Fh=Us[10]|0;Fl=Us[11]|0;Gh=Us[12]|0;Gl=Us[13]|0;Hh=Us[14]|0;Hl=Us[15]|0;constructor(){super(64)}},V2t=C2t(()=>new $2t,k2t(3)),$Ae=nSe;$Ae.sha512||($Ae.sha512=e=>V2t(e));VAe=32;rOr=kQ.bytesToHex,cSe=kQ.hexToBytes,nOr=kQ.concatBytes;iOr=new TextEncoder;oOr=cSe("302e020100300506032b657004220420"),sOr=cSe("302a300506032b6570032100"),RQ="ABCDEFGHJKLMNPQRSTUVWXYZ23456789",Z2t=8,uSe=RQ.length-1;if((RQ.length&uSe)!==0)throw new Error("agent pairing code alphabet must contain a power-of-two number of symbols");aOr=new TextEncoder;});var wSe={};xi(wSe,{BindingIssuanceError:()=>ij,CardRequiredError:()=>r0,buildIssuanceRequest:()=>vSe,jkt:()=>p4,proofPayload:()=>_Se,readSeed:()=>oj,requestVisaBinding:()=>jQ});function p4(e){let t=JSON.stringify({crv:e.crv,kty:e.kty,x:e.x});return gSe.createHash("sha256").update(t,"utf8").digest("base64url")}function _Se(e,t,r){return`visa-agent-binding:v1:${e}:${t}:${r}`}function vSe(e,t,r="visa",n=Math.floor(Date.now()/1e3)){let i=jh(JS(e)),o=Buffer.from(_Se(t,p4(i),n),"utf8"),s=Buffer.from(d4(e,o)).toString("base64url");return{name:t,mesh:r,mode:"card",agent_pubkey:i,proof:{ts:n,sig:s}}}async function jQ(e){let t=vSe(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 r0("No card on file \u2014 complete V4 agent enrollment to register on the trusted .visa mesh.","no_card"):new ij(`Visa binding issuance failed (${i.status})${o?`: ${o}`:""}`,i.status,s||void 0)}return await i.json()}function oj(e){return new Uint8Array(bSe.readFileSync(e))}var gSe,bSe,r0,ij,f4=P(()=>{"use strict";gSe=ve(require("crypto")),bSe=ve(require("fs"));n_();r0=class extends Error{reason;constructor(t,r){super(t),this.name="CardRequiredError",this.reason=r}},ij=class extends Error{status;code;constructor(t,r,n){super(t),this.name="BindingIssuanceError",this.status=r,this.code=n}}});var ASe=g(vl=>{"use strict";Object.defineProperty(vl,"__esModule",{value:!0});vl.formatCents=xSe;vl.formatUsd=t_t;vl.formatMicros=sj;vl.formatMicrosWire=r_t;vl.formatTxAmount=n_t;vl.formatDate=i_t;vl.formatRelativeTime=o_t;vl.formatTime=s_t;vl.formatAge=a_t;var ESe=1e6,e_t=100;function xSe(e,t={}){let r=t.fallback??"\u2014";if(e==null||!Number.isFinite(e))return r;let i=(e/e_t).toLocaleString("en-US",{style:"currency",currency:"USD",minimumFractionDigits:t.minimumFractionDigits??2,maximumFractionDigits:t.maximumFractionDigits??2});return t.showPlusSign&&e>0?`+${i}`:i}function t_t(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 sj(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/ESe).toLocaleString("en-US",{style:"currency",currency:"USD",minimumFractionDigits:t.minimumFractionDigits??2,maximumFractionDigits:t.maximumFractionDigits??6});return t.showPlusSign&&n>0?`+${o}`:o}function r_t(e,t,r={}){return e&&/^-?\d+$/.test(e)?sj(e,r):t!=null&&Number.isFinite(t)?xSe(t,r):r.fallback??"\u2014"}function n_t(e,t={}){let r=Number(e.amount_micros);if(Number.isFinite(r)&&e.amount_micros!=null&&e.amount_micros!=="")return sj(r,t);let n=Number(String(e.amount).replace(/^\$/,""));return Number.isFinite(n)?sj(n*ESe,t):t.fallback??"\u2014"}function i_t(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 o_t(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?m4(n,i,a,"minute"):c<24?m4(n,i,c,"hour"):u===1?i?"yesterday":"tomorrow":u<7?m4(n,i,u,"day"):d<4?m4(n,i,d,"week"):l<12?m4(n,i,l,"month"):m4(n,i,p,"year")}function m4(e,t,r,n){let i=r!==1?"s":"";return t?`${r} ${n}${i} ago`:`in ${r} ${n}${i}`}function s_t(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 a_t(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 h4=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=c_t;Wt.fromCents=u_t;Wt.fromUsdc=d_t;Wt.fromUsd=l_t;Wt.toCents=p_t;Wt.toCentsForAcquirer=f_t;Wt.toUsdc=m_t;Wt.toWire=h_t;Wt.fromWire=y_t;Wt.toDisplay=g_t;Wt.toUsdRounded2dp=b_t;Wt.add=__t;Wt.sub=v_t;Wt.clampNonNegative=w_t;Wt.isNonNegative=E_t;Wt.max=x_t;Wt.min=A_t;var n0=10000n,SSe=1000000n;function c_t(e){return e}function u_t(e){if(!Number.isFinite(e)||!Number.isInteger(e)||!Number.isSafeInteger(e))throw new TypeError(`fromCents: expected safe integer, got ${e}`);return BigInt(e)*n0}function d_t(e){return e}function l_t(e){if(!Number.isFinite(e))throw new TypeError(`fromUsd: expected finite number, got ${e}`);return BigInt(Math.round(e*1e6))}function p_t(e){if(e>=0n)return Number(e/n0);let t=e/n0,r=e%n0;return Number(r===0n?t:t-1n)}function f_t(e){if(e<0n)throw new RangeError(`toCentsForAcquirer: refusing negative micros (${e}); card charges are non-negative`);return Number(e/n0)}function m_t(e){return e}function h_t(e){return e.toString()}function y_t(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 g_t(e,t={}){let r=t.decimals??2,n=t.symbol??"$",i=e<0n,o=i?-e:e,s=o/SSe,a=o%SSe,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 b_t(e){let t=e<0n,r=t?-e:e,n=r/n0,o=r%n0*2n,s;o<n0?s=n:o>n0?s=n+1n:s=n%2n===0n?n:n+1n;let a=Number(s)/100;return t?-a:a}function __t(e,t){return e+t}function v_t(e,t){return e-t}function w_t(e){return e<0n?0n:e}function E_t(e){return e>=0n}function x_t(e,t){return e>t?e:t}function A_t(e,t){return e<t?e:t}var i0=ASe();Object.defineProperty(Wt,"formatCents",{enumerable:!0,get:function(){return i0.formatCents}});Object.defineProperty(Wt,"formatUsd",{enumerable:!0,get:function(){return i0.formatUsd}});Object.defineProperty(Wt,"formatMicros",{enumerable:!0,get:function(){return i0.formatMicros}});Object.defineProperty(Wt,"formatMicrosWire",{enumerable:!0,get:function(){return i0.formatMicrosWire}});Object.defineProperty(Wt,"formatTxAmount",{enumerable:!0,get:function(){return i0.formatTxAmount}});Object.defineProperty(Wt,"formatDate",{enumerable:!0,get:function(){return i0.formatDate}});Object.defineProperty(Wt,"formatRelativeTime",{enumerable:!0,get:function(){return i0.formatRelativeTime}});Object.defineProperty(Wt,"formatTime",{enumerable:!0,get:function(){return i0.formatTime}});Object.defineProperty(Wt,"formatAge",{enumerable:!0,get:function(){return i0.formatAge}})});var Uh=g(so=>{"use strict";Object.defineProperty(so,"__esModule",{value:!0});so.TURNKEY_API_BASE_URL_ENV=so.CIRCLE_TESTNET_FAUCET_URL=so.NETWORK_ENV=so.NETWORKS=void 0;so.resolveNetwork=S_t;so.turnkeyApiBaseUrl=P_t;so.explorerTxUrl=I_t;so.explorerAddressUrl=O_t;so.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}};so.NETWORK_ENV="VISA_V4_NETWORK";so.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 S_t(e=process.env){let t=(e[so.NETWORK_ENV]??"").trim();if(t==="")return so.NETWORKS["base-mainnet"];let r=TSe[t.toLowerCase()];if(!r)throw new Error(`unknown ${so.NETWORK_ENV} value ${JSON.stringify(t)} \u2014 valid values: `+Object.keys(TSe).join(", "));return so.NETWORKS[r]}so.TURNKEY_API_BASE_URL_ENV="TURNKEY_API_BASE_URL";var T_t="https://api.turnkey.com";function P_t(e=process.env){let t=(e[so.TURNKEY_API_BASE_URL_ENV]??"").trim();return t===""?T_t:t}function I_t(e,t){return`${e.explorerBaseUrl}/tx/${t}`}function O_t(e,t){return`${e.explorerBaseUrl}/address/${t}`}});var PSe=g(aj=>{"use strict";Object.defineProperty(aj,"__esModule",{value:!0});aj.version=void 0;aj.version="1.2.3"});var i_=g(cj=>{"use strict";Object.defineProperty(cj,"__esModule",{value:!0});cj.BaseError=void 0;var C_t=PSe(),UQ=class e extends Error{constructor(t,r={}){let n=r.cause instanceof e?r.cause.details:r.cause?.message?r.cause.message:r.details,i=r.cause instanceof e&&r.cause.docsPath||r.docsPath,o=[t||"An error occurred.","",...r.metaMessages?[...r.metaMessages,""]:[],...i?[`Docs: https://abitype.dev${i}`]:[],...n?[`Details: ${n}`]:[],`Version: abitype@${C_t.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}};cj.BaseError=UQ});var ISe=g(qQ=>{"use strict";Object.defineProperty(qQ,"__esModule",{value:!0});qQ.narrow=k_t;function k_t(e){return e}});var XS=g(o0=>{"use strict";Object.defineProperty(o0,"__esModule",{value:!0});o0.isTupleRegex=o0.integerRegex=o0.bytesRegex=void 0;o0.execTyped=R_t;function R_t(e,t){return e.exec(t)?.groups}o0.bytesRegex=/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/;o0.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)?$/;o0.isTupleRegex=/^\(.+?\).*?$/});var LQ=g(DQ=>{"use strict";Object.defineProperty(DQ,"__esModule",{value:!0});DQ.formatAbiParameter=MQ;var N_t=XS(),OSe=/^tuple(?<array>(\[(\d*)\])*)$/;function MQ(e){let t=e.type;if(OSe.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+=MQ(o),i<r-1&&(t+=", ")}let n=(0,N_t.execTyped)(OSe,e.type);return t+=`)${n?.array||""}`,MQ({...e,type:t})}return"indexed"in e&&e.indexed&&(t=`${t} indexed`),e.name?`${t} ${e.name}`:t}});var HQ=g(zQ=>{"use strict";Object.defineProperty(zQ,"__esModule",{value:!0});zQ.formatAbiParameters=j_t;var B_t=LQ();function j_t(e){let t="",r=e.length;for(let n=0;n<r;n++){let i=e[n];t+=(0,B_t.formatAbiParameter)(i),n!==r-1&&(t+=", ")}return t}});var $Q=g(FQ=>{"use strict";Object.defineProperty(FQ,"__esModule",{value:!0});FQ.formatAbiItem=U_t;var QS=HQ();function U_t(e){return e.type==="function"?`function ${e.name}(${(0,QS.formatAbiParameters)(e.inputs)})${e.stateMutability&&e.stateMutability!=="nonpayable"?` ${e.stateMutability}`:""}${e.outputs?.length?` returns (${(0,QS.formatAbiParameters)(e.outputs)})`:""}`:e.type==="event"?`event ${e.name}(${(0,QS.formatAbiParameters)(e.inputs)})`:e.type==="error"?`error ${e.name}(${(0,QS.formatAbiParameters)(e.inputs)})`:e.type==="constructor"?`constructor(${(0,QS.formatAbiParameters)(e.inputs)})${e.stateMutability==="payable"?" payable":""}`:e.type==="fallback"?`fallback() external${e.stateMutability==="payable"?" payable":""}`:"receive() external payable"}});var CSe=g(VQ=>{"use strict";Object.defineProperty(VQ,"__esModule",{value:!0});VQ.formatAbi=M_t;var q_t=$Q();function M_t(e){let t=[],r=e.length;for(let n=0;n<r;n++){let i=e[n],o=(0,q_t.formatAbiItem)(i);t.push(o)}return t}});var o_=g(Si=>{"use strict";Object.defineProperty(Si,"__esModule",{value:!0});Si.functionModifiers=Si.eventModifiers=Si.modifiers=void 0;Si.isErrorSignature=D_t;Si.execErrorSignature=L_t;Si.isEventSignature=z_t;Si.execEventSignature=H_t;Si.isFunctionSignature=F_t;Si.execFunctionSignature=$_t;Si.isStructSignature=V_t;Si.execStructSignature=K_t;Si.isConstructorSignature=W_t;Si.execConstructorSignature=G_t;Si.isFallbackSignature=J_t;Si.execFallbackSignature=Y_t;Si.isReceiveSignature=X_t;var y4=XS(),kSe=/^error (?<name>[a-zA-Z$_][a-zA-Z0-9$_]*)\((?<parameters>.*?)\)$/;function D_t(e){return kSe.test(e)}function L_t(e){return(0,y4.execTyped)(kSe,e)}var RSe=/^event (?<name>[a-zA-Z$_][a-zA-Z0-9$_]*)\((?<parameters>.*?)\)$/;function z_t(e){return RSe.test(e)}function H_t(e){return(0,y4.execTyped)(RSe,e)}var NSe=/^function (?<name>[a-zA-Z$_][a-zA-Z0-9$_]*)\((?<parameters>.*?)\)(?: (?<scope>external|public{1}))?(?: (?<stateMutability>pure|view|nonpayable|payable{1}))?(?: returns\s?\((?<returns>.*?)\))?$/;function F_t(e){return NSe.test(e)}function $_t(e){return(0,y4.execTyped)(NSe,e)}var BSe=/^struct (?<name>[a-zA-Z$_][a-zA-Z0-9$_]*) \{(?<properties>.*?)\}$/;function V_t(e){return BSe.test(e)}function K_t(e){return(0,y4.execTyped)(BSe,e)}var jSe=/^constructor\((?<parameters>.*?)\)(?:\s(?<stateMutability>payable{1}))?$/;function W_t(e){return jSe.test(e)}function G_t(e){return(0,y4.execTyped)(jSe,e)}var USe=/^fallback\(\) external(?:\s(?<stateMutability>payable{1}))?$/;function J_t(e){return USe.test(e)}function Y_t(e){return(0,y4.execTyped)(USe,e)}var Z_t=/^receive\(\) external payable$/;function X_t(e){return Z_t.test(e)}Si.modifiers=new Set(["memory","indexed","storage","calldata"]);Si.eventModifiers=new Set(["indexed"]);Si.functionModifiers=new Set(["calldata","memory","storage"])});var e7=g(qh=>{"use strict";Object.defineProperty(qh,"__esModule",{value:!0});qh.UnknownSolidityTypeError=qh.UnknownTypeError=qh.InvalidAbiItemError=void 0;var JQ=i_(),KQ=class extends JQ.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"})}};qh.InvalidAbiItemError=KQ;var WQ=class extends JQ.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"})}};qh.UnknownTypeError=WQ;var GQ=class extends JQ.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"})}};qh.UnknownSolidityTypeError=GQ});var g4=g(qs=>{"use strict";Object.defineProperty(qs,"__esModule",{value:!0});qs.InvalidAbiTypeParameterError=qs.InvalidFunctionModifierError=qs.InvalidModifierError=qs.SolidityProtectedKeywordError=qs.InvalidParameterError=qs.InvalidAbiParametersError=qs.InvalidAbiParameterError=void 0;var s_=i_(),YQ=class extends s_.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"})}};qs.InvalidAbiParameterError=YQ;var ZQ=class extends s_.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"})}};qs.InvalidAbiParametersError=ZQ;var XQ=class extends s_.BaseError{constructor({param:t}){super("Invalid ABI parameter.",{details:t}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidParameterError"})}};qs.InvalidParameterError=XQ;var QQ=class extends s_.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"})}};qs.SolidityProtectedKeywordError=QQ;var eee=class extends s_.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"})}};qs.InvalidModifierError=eee;var tee=class extends s_.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"})}};qs.InvalidFunctionModifierError=tee;var ree=class extends s_.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"})}};qs.InvalidAbiTypeParameterError=ree});var uj=g(Mh=>{"use strict";Object.defineProperty(Mh,"__esModule",{value:!0});Mh.InvalidStructSignatureError=Mh.UnknownSignatureError=Mh.InvalidSignatureError=void 0;var see=i_(),nee=class extends see.BaseError{constructor({signature:t,type:r}){super(`Invalid ${r} signature.`,{details:t}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidSignatureError"})}};Mh.InvalidSignatureError=nee;var iee=class extends see.BaseError{constructor({signature:t}){super("Unknown signature.",{details:t}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"UnknownSignatureError"})}};Mh.UnknownSignatureError=iee;var oee=class extends see.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"})}};Mh.InvalidStructSignatureError=oee});var cee=g(dj=>{"use strict";Object.defineProperty(dj,"__esModule",{value:!0});dj.CircularReferenceError=void 0;var Q_t=i_(),aee=class extends Q_t.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"})}};dj.CircularReferenceError=aee});var dee=g(lj=>{"use strict";Object.defineProperty(lj,"__esModule",{value:!0});lj.InvalidParenthesisError=void 0;var e6t=i_(),uee=class extends e6t.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"})}};lj.InvalidParenthesisError=uee});var qSe=g(t7=>{"use strict";Object.defineProperty(t7,"__esModule",{value:!0});t7.parameterCache=void 0;t7.getParameterCacheKey=t6t;function t6t(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}`}t7.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 c_=g(iu=>{"use strict";Object.defineProperty(iu,"__esModule",{value:!0});iu.parseSignature=i6t;iu.parseFunctionSignature=MSe;iu.parseEventSignature=DSe;iu.parseErrorSignature=LSe;iu.parseConstructorSignature=zSe;iu.parseFallbackSignature=HSe;iu.parseAbiParameter=a_;iu.splitParameters=ed;iu.isSolidityType=FSe;iu.isSolidityKeyword=$Se;iu.isValidDataLocation=VSe;var b4=XS(),r6t=e7(),pj=g4(),_4=uj(),n6t=dee(),fj=qSe(),_a=o_();function i6t(e,t={}){if((0,_a.isFunctionSignature)(e))return MSe(e,t);if((0,_a.isEventSignature)(e))return DSe(e,t);if((0,_a.isErrorSignature)(e))return LSe(e,t);if((0,_a.isConstructorSignature)(e))return zSe(e,t);if((0,_a.isFallbackSignature)(e))return HSe(e);if((0,_a.isReceiveSignature)(e))return{type:"receive",stateMutability:"payable"};throw new _4.UnknownSignatureError({signature:e})}function MSe(e,t={}){let r=(0,_a.execFunctionSignature)(e);if(!r)throw new _4.InvalidSignatureError({signature:e,type:"function"});let n=ed(r.parameters),i=[],o=n.length;for(let a=0;a<o;a++)i.push(a_(n[a],{modifiers:_a.functionModifiers,structs:t,type:"function"}));let s=[];if(r.returns){let a=ed(r.returns),c=a.length;for(let u=0;u<c;u++)s.push(a_(a[u],{modifiers:_a.functionModifiers,structs:t,type:"function"}))}return{name:r.name,type:"function",stateMutability:r.stateMutability??"nonpayable",inputs:i,outputs:s}}function DSe(e,t={}){let r=(0,_a.execEventSignature)(e);if(!r)throw new _4.InvalidSignatureError({signature:e,type:"event"});let n=ed(r.parameters),i=[],o=n.length;for(let s=0;s<o;s++)i.push(a_(n[s],{modifiers:_a.eventModifiers,structs:t,type:"event"}));return{name:r.name,type:"event",inputs:i}}function LSe(e,t={}){let r=(0,_a.execErrorSignature)(e);if(!r)throw new _4.InvalidSignatureError({signature:e,type:"error"});let n=ed(r.parameters),i=[],o=n.length;for(let s=0;s<o;s++)i.push(a_(n[s],{structs:t,type:"error"}));return{name:r.name,type:"error",inputs:i}}function zSe(e,t={}){let r=(0,_a.execConstructorSignature)(e);if(!r)throw new _4.InvalidSignatureError({signature:e,type:"constructor"});let n=ed(r.parameters),i=[],o=n.length;for(let s=0;s<o;s++)i.push(a_(n[s],{structs:t,type:"constructor"}));return{type:"constructor",stateMutability:r.stateMutability??"nonpayable",inputs:i}}function HSe(e){let t=(0,_a.execFallbackSignature)(e);if(!t)throw new _4.InvalidSignatureError({signature:e,type:"fallback"});return{type:"fallback",stateMutability:t.stateMutability??"nonpayable"}}var o6t=/^(?<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$_]*))?$/,s6t=/^\((?<type>.+?)\)(?<array>(?:\[\d*?\])+?)?(?:\s(?<modifier>calldata|indexed|memory|storage{1}))?(?:\s(?<name>[a-zA-Z$_][a-zA-Z0-9$_]*))?$/,a6t=/^u?int$/;function a_(e,t){let r=(0,fj.getParameterCacheKey)(e,t?.type,t?.structs);if(fj.parameterCache.has(r))return fj.parameterCache.get(r);let n=b4.isTupleRegex.test(e),i=(0,b4.execTyped)(n?s6t:o6t,e);if(!i)throw new pj.InvalidParameterError({param:e});if(i.name&&$Se(i.name))throw new pj.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=ed(i.type),p=[],f=l.length;for(let m=0;m<f;m++)p.push(a_(l[m],{structs:a}));u={components:p}}else if(i.type in a)c="tuple",u={components:a[i.type]};else if(a6t.test(i.type))c=`${i.type}256`;else if(i.type==="address payable")c="address";else if(c=i.type,t?.type!=="struct"&&!FSe(c))throw new r6t.UnknownSolidityTypeError({type:c});if(i.modifier){if(!t?.modifiers?.has?.(i.modifier))throw new pj.InvalidModifierError({param:e,type:t?.type,modifier:i.modifier});if(_a.functionModifiers.has(i.modifier)&&!VSe(c,!!i.array))throw new pj.InvalidFunctionModifierError({param:e,type:t?.type,modifier:i.modifier})}let d={type:`${c}${i.array??""}`,...o,...s,...u};return fj.parameterCache.set(r,d),d}function ed(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?ed(a,[...t,r.trim()]):ed(a,t,`${r}${s}`,n);case"(":return ed(a,t,`${r}${s}`,n+1);case")":return ed(a,t,`${r}${s}`,n-1);default:return ed(a,t,`${r}${s}`,n)}}if(r==="")return t;if(n!==0)throw new n6t.InvalidParenthesisError({current:r,depth:n});return t.push(r.trim()),t}function FSe(e){return e==="address"||e==="bool"||e==="function"||e==="string"||b4.bytesRegex.test(e)||b4.integerRegex.test(e)}var c6t=/^(?: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"||b4.bytesRegex.test(e)||b4.integerRegex.test(e)||c6t.test(e)}function VSe(e,t){return t||e==="bytes"||e==="string"||e==="tuple"}});var r7=g(lee=>{"use strict";Object.defineProperty(lee,"__esModule",{value:!0});lee.parseStructs=p6t;var KSe=XS(),u6t=e7(),d6t=g4(),WSe=uj(),l6t=cee(),GSe=o_(),JSe=c_();function p6t(e){let t={},r=e.length;for(let s=0;s<r;s++){let a=e[s];if(!(0,GSe.isStructSignature)(a))continue;let c=(0,GSe.execStructSignature)(a);if(!c)throw new WSe.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,JSe.parseAbiParameter)(m,{type:"struct"});d.push(h)}if(!d.length)throw new WSe.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]=YSe(c,t)}return n}var f6t=/^(?<type>[a-zA-Z$_][a-zA-Z0-9$_]*)(?<array>(?:\[\d*?\])+?)?$/;function YSe(e=[],t={},r=new Set){let n=[],i=e.length;for(let o=0;o<i;o++){let s=e[o];if(KSe.isTupleRegex.test(s.type))n.push(s);else{let c=(0,KSe.execTyped)(f6t,s.type);if(!c?.type)throw new d6t.InvalidAbiTypeParameterError({abiParameter:s});let{array:u,type:d}=c;if(d in t){if(r.has(d))throw new l6t.CircularReferenceError({type:d});n.push({...s,type:`tuple${u??""}`,components:YSe(t[d],t,new Set([...r,d]))})}else if((0,JSe.isSolidityType)(d))n.push(s);else throw new u6t.UnknownTypeError({type:d})}}return n}});var ZSe=g(pee=>{"use strict";Object.defineProperty(pee,"__esModule",{value:!0});pee.parseAbi=g6t;var m6t=o_(),h6t=r7(),y6t=c_();function g6t(e){let t=(0,h6t.parseStructs)(e),r=[],n=e.length;for(let i=0;i<n;i++){let o=e[i];(0,m6t.isStructSignature)(o)||r.push((0,y6t.parseSignature)(o,t))}return r}});var QSe=g(fee=>{"use strict";Object.defineProperty(fee,"__esModule",{value:!0});fee.parseAbiItem=w6t;var b6t=e7(),_6t=o_(),v6t=r7(),XSe=c_();function w6t(e){let t;if(typeof e=="string")t=(0,XSe.parseSignature)(e);else{let r=(0,v6t.parseStructs)(e),n=e.length;for(let i=0;i<n;i++){let o=e[i];if(!(0,_6t.isStructSignature)(o)){t=(0,XSe.parseSignature)(o,r);break}}}if(!t)throw new b6t.InvalidAbiItemError({signature:e});return t}});var t7e=g(hee=>{"use strict";Object.defineProperty(hee,"__esModule",{value:!0});hee.parseAbiParameter=A6t;var E6t=g4(),mee=o_(),x6t=r7(),e7e=c_();function A6t(e){let t;if(typeof e=="string")t=(0,e7e.parseAbiParameter)(e,{modifiers:mee.modifiers});else{let r=(0,x6t.parseStructs)(e),n=e.length;for(let i=0;i<n;i++){let o=e[i];if(!(0,mee.isStructSignature)(o)){t=(0,e7e.parseAbiParameter)(o,{modifiers:mee.modifiers,structs:r});break}}}if(!t)throw new E6t.InvalidAbiParameterError({param:e});return t}});var i7e=g(gee=>{"use strict";Object.defineProperty(gee,"__esModule",{value:!0});gee.parseAbiParameters=P6t;var S6t=g4(),yee=o_(),T6t=r7(),r7e=c_(),n7e=c_();function P6t(e){let t=[];if(typeof e=="string"){let r=(0,r7e.splitParameters)(e),n=r.length;for(let i=0;i<n;i++)t.push((0,n7e.parseAbiParameter)(r[i],{modifiers:yee.modifiers}))}else{let r=(0,T6t.parseStructs)(e),n=e.length;for(let i=0;i<n;i++){let o=e[i];if((0,yee.isStructSignature)(o))continue;let s=(0,r7e.splitParameters)(o),a=s.length;for(let c=0;c<a;c++)t.push((0,n7e.parseAbiParameter)(s[c],{modifiers:yee.modifiers,structs:r}))}}if(t.length===0)throw new S6t.InvalidAbiParametersError({params:e});return t}});var n7=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 I6t=i_();Object.defineProperty(dt,"BaseError",{enumerable:!0,get:function(){return I6t.BaseError}});var O6t=ISe();Object.defineProperty(dt,"narrow",{enumerable:!0,get:function(){return O6t.narrow}});var C6t=CSe();Object.defineProperty(dt,"formatAbi",{enumerable:!0,get:function(){return C6t.formatAbi}});var k6t=$Q();Object.defineProperty(dt,"formatAbiItem",{enumerable:!0,get:function(){return k6t.formatAbiItem}});var R6t=LQ();Object.defineProperty(dt,"formatAbiParameter",{enumerable:!0,get:function(){return R6t.formatAbiParameter}});var N6t=HQ();Object.defineProperty(dt,"formatAbiParameters",{enumerable:!0,get:function(){return N6t.formatAbiParameters}});var B6t=ZSe();Object.defineProperty(dt,"parseAbi",{enumerable:!0,get:function(){return B6t.parseAbi}});var j6t=QSe();Object.defineProperty(dt,"parseAbiItem",{enumerable:!0,get:function(){return j6t.parseAbiItem}});var U6t=t7e();Object.defineProperty(dt,"parseAbiParameter",{enumerable:!0,get:function(){return U6t.parseAbiParameter}});var q6t=i7e();Object.defineProperty(dt,"parseAbiParameters",{enumerable:!0,get:function(){return q6t.parseAbiParameters}});var bee=e7();Object.defineProperty(dt,"UnknownTypeError",{enumerable:!0,get:function(){return bee.UnknownTypeError}});Object.defineProperty(dt,"InvalidAbiItemError",{enumerable:!0,get:function(){return bee.InvalidAbiItemError}});Object.defineProperty(dt,"UnknownSolidityTypeError",{enumerable:!0,get:function(){return bee.UnknownSolidityTypeError}});var u_=g4();Object.defineProperty(dt,"InvalidAbiTypeParameterError",{enumerable:!0,get:function(){return u_.InvalidAbiTypeParameterError}});Object.defineProperty(dt,"InvalidFunctionModifierError",{enumerable:!0,get:function(){return u_.InvalidFunctionModifierError}});Object.defineProperty(dt,"InvalidModifierError",{enumerable:!0,get:function(){return u_.InvalidModifierError}});Object.defineProperty(dt,"SolidityProtectedKeywordError",{enumerable:!0,get:function(){return u_.SolidityProtectedKeywordError}});Object.defineProperty(dt,"InvalidParameterError",{enumerable:!0,get:function(){return u_.InvalidParameterError}});Object.defineProperty(dt,"InvalidAbiParametersError",{enumerable:!0,get:function(){return u_.InvalidAbiParametersError}});Object.defineProperty(dt,"InvalidAbiParameterError",{enumerable:!0,get:function(){return u_.InvalidAbiParameterError}});var _ee=uj();Object.defineProperty(dt,"InvalidStructSignatureError",{enumerable:!0,get:function(){return _ee.InvalidStructSignatureError}});Object.defineProperty(dt,"InvalidSignatureError",{enumerable:!0,get:function(){return _ee.InvalidSignatureError}});Object.defineProperty(dt,"UnknownSignatureError",{enumerable:!0,get:function(){return _ee.UnknownSignatureError}});var M6t=dee();Object.defineProperty(dt,"InvalidParenthesisError",{enumerable:!0,get:function(){return M6t.InvalidParenthesisError}});var D6t=cee();Object.defineProperty(dt,"CircularReferenceError",{enumerable:!0,get:function(){return D6t.CircularReferenceError}})});var rr=g(vee=>{"use strict";Object.defineProperty(vee,"__esModule",{value:!0});vee.getAction=L6t;function L6t(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 Vp=g(mj=>{"use strict";Object.defineProperty(mj,"__esModule",{value:!0});mj.formatAbiItem=H6t;mj.formatAbiParams=wee;var z6t=Bn();function H6t(e,{includeName:t=!1}={}){if(e.type!=="function"&&e.type!=="event"&&e.type!=="error")throw new z6t.InvalidDefinitionTypeError(e.type);return`${e.name}(${wee(e.inputs,{includeName:t})})`}function wee(e,{includeName:t=!1}={}){return e?e.map(r=>F6t(r,{includeName:t})).join(t?", ":","):""}function F6t(e,{includeName:t}){return e.type.startsWith("tuple")?`(${wee(e.components,{includeName:t})})${e.type.slice(5)}`:e.type+(t&&e.name?` ${e.name}`:"")}});var ts=g(Eee=>{"use strict";Object.defineProperty(Eee,"__esModule",{value:!0});Eee.isHex=$6t;function $6t(e,{strict:t=!0}={}){return!e||typeof e!="string"?!1:t?/^0x[0-9a-fA-F]*$/.test(e):e.startsWith("0x")}});var rs=g(xee=>{"use strict";Object.defineProperty(xee,"__esModule",{value:!0});xee.size=K6t;var V6t=ts();function K6t(e){return(0,V6t.isHex)(e,{strict:!1})?Math.ceil((e.length-2)/2):e.length}});var o7e=g(hj=>{"use strict";Object.defineProperty(hj,"__esModule",{value:!0});hj.version=void 0;hj.version="2.54.6"});var Pt=g(i7=>{"use strict";Object.defineProperty(i7,"__esModule",{value:!0});i7.BaseError=void 0;i7.setErrorConfig=W6t;var s7e=o7e(),yj={getDocsUrl:({docsBaseUrl:e,docsPath:t="",docsSlug:r})=>t?`${e??"https://viem.sh"}${t}${r?`#${r}`:""}`:void 0,version:`viem@${s7e.version}`};function W6t(e){yj=e}var Aee=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=yj.getDocsUrl?.({...r,docsPath:i}),s=[t||"An error occurred.","",...r.metaMessages?[...r.metaMessages,""]:[],...o?[`Docs: ${o}`]:[],...n?[`Details: ${n}`]:[],...yj.version?[`Version: ${yj.version}`]:[]].join(`
@@ -20686,7 +20686,7 @@ ${e.senderName}
20686
20686
  ${e.timestampMs}
20687
20687
  ${e.messageType}
20688
20688
  ${t}
20689
- ${e.nonce}`;return yxr.encode(r)}function _xr(e,t,r,n,i,o,s){return bxr({messageId:e,senderPeerId:t,senderName:r,timestampMs:n,messageType:i,payload:o,nonce:s})}function vxr(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 $xr(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name==="Uint8Array"&&"BYTES_PER_ELEMENT"in e&&e.BYTES_PER_ELEMENT===1}function x1t(e,t,r=""){let n=$xr(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 D0t(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 Vxr(e,t){x1t(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 e9e(...e){for(let t=0;t<e.length;t++)e[t].fill(0)}function G3e(e){return new DataView(e.buffer,e.byteOffset,e.byteLength)}function Kxr(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 Jxr(e,t=!1){return t?{h:Number(e&jZ),l:Number(e>>L0t&jZ)}:{h:Number(e>>L0t&jZ)|0,l:Number(e&jZ)|0}}function Yxr(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}=Jxr(e[o],t);[n[o],i[o]]=[s,a]}return[n,i]}function yh(e,t,r,n){let i=(t>>>0)+(n>>>0);return{h:e+r+(i/2**32|0)|0,l:i|0}}function cAr(){return Lxr.randomSecretKey()}function S1t(e){return Mxr(e)}function uAr(){let e=cAr();return{secretKey:e,publicKey:S1t(e)}}function dAr(e){if((0,R2.existsSync)(e)){let r=(0,R2.readFileSync)(e),n=new Uint8Array(r.buffer.slice(r.byteOffset,r.byteOffset+32));return{secretKey:n,publicKey:S1t(n)}}let t=uAr();return(0,R2.mkdirSync)((0,V0t.dirname)(e),{recursive:!0}),(0,R2.writeFileSync)(e,new Uint8Array(t.secretKey)),t}function lAr(e){let{secretKey:t,publicKey:r}=dAr(e);return{privateKey:t,publicKey:r}}async function pAr(e,t,r,n,i,o,s,a){let c=_xr(t,r,n,i,o,s,a);return{signature:await fxr(e,c),signatureInput:gxr.subwayAgentMsgV1}}function $0t(e){return hxr(e)}var R2,V0t,wEr,EEr,xEr,AEr,SEr,K0t,LZ,MZ,v0t,w0t,z3e,H3e,TEr,KZ,PEr,ks,IEr,OEr,CEr,gh,WZ,t9e,W0t,r9e,fh,E0t,n9e,G0t,kEr,aS,REr,zZ,gw,Nn,x0t,Ke,J0t,Y0t,Z0t,X0t,F3e,J3e,IN,Aw,Ew,Q0t,e1t,Hm,NEr,A0t,BEr,Y3e,i9e,jEr,t1t,UEr,qEr,MEr,DEr,LEr,zEr,o9e,r1t,HZ,HEr,n1t,Z3e,FEr,S0t,T0t,$Er,s1t,a1t,T2,ma,RZ,I0t,O0t,C0t,nS,iS,NZ,BZ,ZEr,XEr,QEr,exr,txr,rxr,nxr,P2,ixr,oxr,c1t,sxr,axr,I2,O2,cxr,uxr,dxr,lxr,k0t,mxr,u1t,yxr,gxr,d1t,wxr,l1t,FZ,DZ,R0t,N0t,V3e,K3e,Exr,cS,xxr,Rs,Axr,Sxr,Txr,N2,GZ,s9e,p1t,f1t,hh,B0t,m1t,h1t,Pxr,a9e,Ixr,$Z,_w,Jn,j0t,We,Oxr,Cxr,y1t,g1t,W3e,X3e,ON,uS,xw,kxr,b1t,$m,Rxr,U0t,Nxr,Bxr,jxr,Uxr,_1t,qxr,v1t,Mxr,w1t,Dxr,Lxr,VZ,zxr,E1t,Q3e,Hxr,q0t,M0t,Fxr,Wxr,Gxr,ha,jZ,L0t,z0t,H0t,oS,sS,UZ,qZ,Zxr,Xxr,Qxr,eAr,tAr,rAr,A1t,nAr,iAr,C2,k2,oAr,sAr,aAr,F0t,fAr,mAr,T1t,c9e=P(()=>{"use strict";M3e();M3e();D3e();R2=require("fs"),V0t=require("path");wEr=1e3,EEr=10,xEr=3e4,AEr=3e4,SEr=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??wEr,this.maxReconnectAttempts=e.maxReconnectAttempts??EEr,this.pingInterval=e.pingInterval??xEr}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=_Er();if(!r){t(new fa('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 fa(`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 fa("WebSocket closed before connection established")))},this.ws.onerror=()=>{n||(n=!0,t(new fa(`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 fa("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=vEr(this.reconnectInterval*Math.pow(2,this.reconnectAttempt),this.reconnectInterval,AEr);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)}}},K0t=Object.freeze({p:0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffedn,n:0x1000000000000000000000000000000014def9dea2f79cd65812631a5cf5d3edn,h:8n,a:0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffecn,d:0x52036cee2b6ffe738cc740797779e89800700a4d4141d8ab75eb4dca135978a3n,Gx:0x216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51an,Gy:0x6666666666666666666666666666666666666666666666666666666666666658n}),{p:LZ,n:MZ,Gx:v0t,Gy:w0t,a:z3e,d:H3e,h:TEr}=K0t,KZ=32,PEr=(...e)=>{"captureStackTrace"in Error&&typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(...e)},ks=(e="")=>{let t=new Error(e);throw PEr(t,ks),t},IEr=e=>typeof e=="bigint",OEr=e=>typeof e=="string",CEr=e=>e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name==="Uint8Array"&&"BYTES_PER_ELEMENT"in e&&e.BYTES_PER_ELEMENT===1,gh=(e,t,r="")=>{let n=CEr(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},WZ=e=>new Uint8Array(e),t9e=e=>Uint8Array.from(e),W0t=(e,t)=>e.toString(16).padStart(t,"0"),r9e=e=>Array.from(gh(e)).map(t=>W0t(t,2)).join(""),fh={_0:48,_9:57,A:65,F:70,a:97,f:102},E0t=e=>{if(e>=fh._0&&e<=fh._9)return e-fh._0;if(e>=fh.A&&e<=fh.F)return e-(fh.A-10);if(e>=fh.a&&e<=fh.f)return e-(fh.a-10)},n9e=e=>{let t="hex invalid";if(!OEr(e))return ks(t);let r=e.length,n=r/2;if(r%2)return ks(t);let i=WZ(n);for(let o=0,s=0;o<n;o++,s+=2){let a=E0t(e.charCodeAt(s)),c=E0t(e.charCodeAt(s+1));if(a===void 0||c===void 0)return ks(t);i[o]=a*16+c}return i},G0t=()=>globalThis?.crypto,kEr=()=>G0t()?.subtle??ks("crypto.subtle must be defined, consider polyfill"),aS=(...e)=>{let t=0;for(let i of e)t+=gh(i).length;let r=WZ(t),n=0;return e.forEach(i=>{r.set(i,n),n+=i.length}),r},REr=(e=KZ)=>G0t().getRandomValues(WZ(e)),zZ=BigInt,gw=(e,t,r,n="bad number: out of range")=>{if(!IEr(e))throw new TypeError(n);if(t<=e&&e<r)return e;throw new RangeError(n)},Nn=(e,t=LZ)=>{let r=e%t;return r>=0n?r:t+r},x0t=(1n<<255n)-1n,Ke=e=>{e<0n&&ks("negative coordinate");let t=(e>>255n)*19n+(e&x0t);return t=(t>>255n)*19n+(t&x0t),t%LZ},J0t=e=>Nn(e,MZ),Y0t=(e,t)=>{(e===0n||t<=0n)&&ks("no inverse n="+e+" mod="+t);let r=Nn(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?Nn(i,t):ks("no inverse")},Z0t=e=>{let t=r1t[e];return typeof t!="function"&&ks("hashes."+e+" not set"),t},X0t=e=>gh(e,64,"digest"),F3e=e=>e instanceof IN?e:ks("Point expected"),J3e=2n**256n,IN=class bw{static BASE;static ZERO;X;Y;Z;T;constructor(t,r,n,i){let o=J3e;this.X=gw(t,0n,o),this.Y=gw(r,0n,o),this.Z=gw(n,1n,o),this.T=gw(i,0n,o),Object.freeze(this)}static CURVE(){return K0t}static fromAffine(t){return new bw(t.x,t.y,1n,Ke(t.x*t.y))}static fromBytes(t,r=!1){let n=H3e,i=t9e(gh(t,KZ)),o=t[31];i[31]=o&-129;let s=e1t(i);gw(s,0n,r?J3e:LZ);let c=Ke(s*s),u=Nn(c-1n),d=Ke(n*c+1n),{isValid:l,value:p}=BEr(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=Nn(-p)),new bw(p,s,1n,Ke(p*s))}static fromHex(t,r){return bw.fromBytes(n9e(t),r)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}assertValidity(){let t=z3e,r=H3e,n=this;if(n.is0())return ks("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=Nn(l+Ke(r*Ke(c*u)));if(f!==m)return ks("bad point: equation left != right (1)");let h=Ke(i*o),y=Ke(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}=F3e(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(Ew)}negate(){return new bw(Nn(-this.X),this.Y,this.Z,Nn(-this.T))}double(){let{X:t,Y:r,Z:n}=this,i=z3e,o=Ke(t*t),s=Ke(r*r),a=Ke(2n*n*n),c=Ke(i*o),u=Nn(t+r),d=Nn(Ke(u*u)-o-s),l=Nn(c+s),p=Nn(l-a),f=Nn(c-s),m=Ke(d*p),h=Ke(l*f),y=Ke(d*f),w=Ke(p*l);return new bw(m,h,w,y)}add(t){let{X:r,Y:n,Z:i,T:o}=this,{X:s,Y:a,Z:c,T:u}=F3e(t),d=z3e,l=H3e,p=Ke(r*s),f=Ke(n*a),m=Ke(Ke(o*l)*u),h=Ke(i*c),y=Nn(Ke(Nn(r+n)*Nn(s+a))-p-f),w=Nn(h-m),E=Nn(h+m),_=Nn(f-Ke(d*p)),v=Ke(y*w),x=Ke(E*_),A=Ke(y*_),S=Ke(w*E);return new bw(v,x,S,A)}subtract(t){return this.add(F3e(t).negate())}multiply(t,r=!0){if(!r&&t===0n||(gw(t,1n,MZ),!r&&this.is0()))return Ew;if(t===1n)return this;if(this.equals(Aw))return $Er(t).p;let n=Ew,i=Aw;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(Ew))return{x:0n,y:1n};let i=Y0t(n,LZ);Ke(n*i)!==1n&&ks("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=Q0t(r);return n[31]|=t&1n?128:0,n}toHex(){return r9e(this.toBytes())}clearCofactor(){return this.multiply(zZ(TEr),!1)}isSmallOrder(){return this.clearCofactor().is0()}isTorsionFree(){let t=this.multiply(MZ/2n,!1).double();return MZ%2n&&(t=t.add(this)),t.is0()}},Aw=new IN(v0t,w0t,1n,Nn(v0t*w0t)),Ew=new IN(0n,1n,1n,0n);IN.BASE=Aw;IN.ZERO=Ew;Q0t=e=>n9e(W0t(gw(e,0n,J3e),64)).reverse(),e1t=e=>zZ("0x"+r9e(t9e(gh(e)).reverse())),Hm=(e,t)=>{let r=e;for(;t-- >0n;)r=Ke(r*r);return r},NEr=e=>{let t=Ke(e*e),r=Ke(t*e),n=Ke(Hm(r,2n)*r),i=Ke(Hm(n,1n)*e),o=Ke(Hm(i,5n)*i),s=Ke(Hm(o,10n)*o),a=Ke(Hm(s,20n)*s),c=Ke(Hm(a,40n)*a),u=Ke(Hm(c,80n)*c),d=Ke(Hm(u,80n)*c),l=Ke(Hm(d,10n)*o);return{pow_p_5_8:Ke(Hm(l,2n)*e),b2:r}},A0t=0x2b8324804fc1df0b2b4d00993dfbd7a72f431806ad2fe478c4ee1b274a0ea0b0n,BEr=(e,t)=>{let r=Ke(t*Ke(t*t)),n=Ke(Ke(r*r)*t),i=NEr(Ke(e*n)).pow_p_5_8,o=Ke(e*Ke(r*i)),s=Ke(t*Ke(o*o)),a=o,c=Ke(o*A0t),u=s===e,d=s===Nn(-e),l=s===Nn(-e*A0t);return u&&(o=a),(d||l)&&(o=c),(Nn(o)&1n)===1n&&(o=Nn(-o)),{isValid:u||d,value:o}},Y3e=e=>J0t(e1t(e)),i9e=(...e)=>Promise.resolve(Z0t("sha512Async")(aS(...e))).then(X0t),jEr=(...e)=>X0t(Z0t("sha512")(aS(...e))),t1t=e=>{let t=t9e(e),r=t.slice(0,32);r[0]&=248,r[31]&=127,r[31]|=64;let n=t.slice(32,64),i=Y3e(r),o=Aw.multiply(i),s=o.toBytes();return{head:r,prefix:n,scalar:i,point:o,pointBytes:s}},UEr=e=>i9e(gh(e,KZ)).then(t1t),qEr=e=>t1t(jEr(gh(e,KZ))),MEr=e=>qEr(e).pointBytes,DEr=e=>i9e(e.hashable).then(e.finish),LEr=(e,t,r)=>{let{pointBytes:n,scalar:i}=e,o=Y3e(t),s=Aw.multiply(o).toBytes();return{hashable:aS(s,n,r),finish:u=>{let d=J0t(o+Y3e(u)*i);return gh(aS(s,Q0t(d)),64)}}},zEr=async(e,t)=>{let r=gh(e),n=await UEr(t),i=await i9e(n.prefix,r);return DEr(LEr(n,i,r))},o9e=Object.freeze({bytesToHex:r9e,hexToBytes:n9e,concatBytes:aS,mod:Nn,invert:Y0t,randomBytes:REr}),r1t={sha512Async:async e=>{let t=kEr(),r=aS(e);return WZ(await t.digest("SHA-512",r.buffer))},sha512:void 0},HZ=8,HEr=256,n1t=Math.ceil(HEr/HZ)+1,Z3e=2**(HZ-1),FEr=()=>{let e=[],t=Aw,r=t;for(let n=0;n<n1t;n++){r=t,e.push(r);for(let i=1;i<Z3e;i++)r=r.add(t),e.push(r);t=r.double()}return e},S0t=void 0,T0t=(e,t)=>{let r=t.negate();return e?r:t},$Er=e=>{let t=S0t||(S0t=FEr()),r=Ew,n=Aw,i=2**HZ,o=i,s=zZ(i-1),a=zZ(HZ);for(let c=0;c<n1t;c++){let u=Number(e&s);e>>=a,u>Z3e&&(u-=o,e+=1n);let d=c*Z3e,l=d,p=d+Math.abs(u)-1,f=c%2!==0,m=u<0;u===0?n=n.add(T0t(f,t[l])):r=r.add(T0t(m,t[p]))}return e!==0n&&ks("invalid wnaf"),{p:r,f:n}};s1t=e=>({oid:Uint8Array.from([6,9,96,134,72,1,101,3,4,2,e])});a1t=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=$3e(this.buffer)}update(e){P0t(this),i1t(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=$3e(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){P0t(this),KEr(e,this),this.finished=!0;let{buffer:t,view:r,blockLen:n,isLE:i}=this,{pos:o}=this;t[o++]=128,PN(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=$3e(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()}},T2=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),ma=Uint32Array.from([1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209]),RZ=BigInt(2**32-1),I0t=BigInt(32);O0t=(e,t,r)=>e>>>r,C0t=(e,t,r)=>e<<32-r|t>>>r,nS=(e,t,r)=>e>>>r|t<<32-r,iS=(e,t,r)=>e<<32-r|t>>>r,NZ=(e,t,r)=>e<<64-r|t>>>r-32,BZ=(e,t,r)=>e>>>r-32|t<<64-r;ZEr=(e,t,r)=>(e>>>0)+(t>>>0)+(r>>>0),XEr=(e,t,r,n)=>t+r+n+(e/2**32|0)|0,QEr=(e,t,r,n)=>(e>>>0)+(t>>>0)+(r>>>0)+(n>>>0),exr=(e,t,r,n,i)=>t+r+n+i+(e/2**32|0)|0,txr=(e,t,r,n,i)=>(e>>>0)+(t>>>0)+(r>>>0)+(n>>>0)+(i>>>0),rxr=(e,t,r,n,i,o)=>t+r+n+i+o+(e/2**32|0)|0,nxr=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]),P2=new Uint32Array(64),ixr=class extends a1t{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)P2[d]=e.getUint32(t,!1);for(let d=16;d<64;d++){let l=P2[d-15],p=P2[d-2],f=Fm(l,7)^Fm(l,18)^l>>>3,m=Fm(p,17)^Fm(p,19)^p>>>10;P2[d]=m+P2[d-7]+f+P2[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=Fm(s,6)^Fm(s,11)^Fm(s,25),p=u+l+WEr(s,a,c)+nxr[d]+P2[d]|0,m=(Fm(r,2)^Fm(r,13)^Fm(r,22))+GEr(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(){PN(P2)}destroy(){this.destroyed=!0,this.set(0,0,0,0,0,0,0,0),PN(this.buffer)}},oxr=class extends ixr{A=T2[0]|0;B=T2[1]|0;C=T2[2]|0;D=T2[3]|0;E=T2[4]|0;F=T2[5]|0;G=T2[6]|0;H=T2[7]|0;constructor(){super(32)}},c1t=YEr(["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))),sxr=c1t[0],axr=c1t[1],I2=new Uint32Array(80),O2=new Uint32Array(80),cxr=class extends a1t{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 E=0;E<16;E++,t+=4)I2[E]=e.getUint32(t),O2[E]=e.getUint32(t+=4);for(let E=16;E<80;E++){let _=I2[E-15]|0,v=O2[E-15]|0,x=nS(_,v,1)^nS(_,v,8)^O0t(_,v,7),A=iS(_,v,1)^iS(_,v,8)^C0t(_,v,7),S=I2[E-2]|0,C=O2[E-2]|0,I=nS(S,C,19)^NZ(S,C,61)^O0t(S,C,6),k=iS(S,C,19)^BZ(S,C,61)^C0t(S,C,6),q=QEr(A,k,O2[E-7],O2[E-16]),j=exr(q,x,I,I2[E-7],I2[E-16]);I2[E]=j|0,O2[E]=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 E=0;E<80;E++){let _=nS(d,l,14)^nS(d,l,18)^NZ(d,l,41),v=iS(d,l,14)^iS(d,l,18)^BZ(d,l,41),x=d&p^~d&m,A=l&f^~l&h,S=txr(w,v,A,axr[E],O2[E]),C=rxr(S,y,_,x,sxr[E],I2[E]),I=S|0,k=nS(r,n,28)^NZ(r,n,34)^NZ(r,n,39),q=iS(r,n,28)^BZ(r,n,34)^BZ(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}=mh(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 N=ZEr(I,q,U);r=XEr(N,C,k,j),n=N|0}({h:r,l:n}=mh(this.Ah|0,this.Al|0,r|0,n|0)),{h:i,l:o}=mh(this.Bh|0,this.Bl|0,i|0,o|0),{h:s,l:a}=mh(this.Ch|0,this.Cl|0,s|0,a|0),{h:c,l:u}=mh(this.Dh|0,this.Dl|0,c|0,u|0),{h:d,l}=mh(this.Eh|0,this.El|0,d|0,l|0),{h:p,l:f}=mh(this.Fh|0,this.Fl|0,p|0,f|0),{h:m,l:h}=mh(this.Gh|0,this.Gl|0,m|0,h|0),{h:y,l:w}=mh(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(){PN(I2,O2)}destroy(){this.destroyed=!0,PN(this.buffer),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}},uxr=class extends cxr{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)}},dxr=o1t(()=>new oxr,s1t(1)),lxr=o1t(()=>new uxr,s1t(3)),k0t=r1t;k0t.sha512||(k0t.sha512=e=>lxr(e));mxr=o9e.bytesToHex,u1t=o9e.hexToBytes;o9e.concatBytes;yxr=new TextEncoder,gxr={subwayAgentMsgV1:"message_id;sender_peer_id;sender_name;timestamp_ms;message_type;payload_hash;nonce"};u1t("302e020100300506032b657004220420");u1t("302a300506032b6570032100");d1t="ABCDEFGHJKLMNPQRSTUVWXYZ23456789",wxr=d1t.length-1;if((d1t.length&wxr)!==0)throw new Error("agent pairing code alphabet must contain a power-of-two number of symbols");new TextEncoder;l1t=Object.freeze({p:0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffedn,n:0x1000000000000000000000000000000014def9dea2f79cd65812631a5cf5d3edn,h:8n,a:0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffecn,d:0x52036cee2b6ffe738cc740797779e89800700a4d4141d8ab75eb4dca135978a3n,Gx:0x216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51an,Gy:0x6666666666666666666666666666666666666666666666666666666666666658n}),{p:FZ,n:DZ,Gx:R0t,Gy:N0t,a:V3e,d:K3e,h:Exr}=l1t,cS=32,xxr=(...e)=>{"captureStackTrace"in Error&&typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(...e)},Rs=(e="")=>{let t=new Error(e);throw xxr(t,Rs),t},Axr=e=>typeof e=="bigint",Sxr=e=>typeof e=="string",Txr=e=>e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name==="Uint8Array"&&"BYTES_PER_ELEMENT"in e&&e.BYTES_PER_ELEMENT===1,N2=(e,t,r="")=>{let n=Txr(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},GZ=e=>new Uint8Array(e),s9e=e=>Uint8Array.from(e),p1t=(e,t)=>e.toString(16).padStart(t,"0"),f1t=e=>Array.from(N2(e)).map(t=>p1t(t,2)).join(""),hh={_0:48,_9:57,A:65,F:70,a:97,f:102},B0t=e=>{if(e>=hh._0&&e<=hh._9)return e-hh._0;if(e>=hh.A&&e<=hh.F)return e-(hh.A-10);if(e>=hh.a&&e<=hh.f)return e-(hh.a-10)},m1t=e=>{let t="hex invalid";if(!Sxr(e))return Rs(t);let r=e.length,n=r/2;if(r%2)return Rs(t);let i=GZ(n);for(let o=0,s=0;o<n;o++,s+=2){let a=B0t(e.charCodeAt(s)),c=B0t(e.charCodeAt(s+1));if(a===void 0||c===void 0)return Rs(t);i[o]=a*16+c}return i},h1t=()=>globalThis?.crypto,Pxr=()=>h1t()?.subtle??Rs("crypto.subtle must be defined, consider polyfill"),a9e=(...e)=>{let t=0;for(let i of e)t+=N2(i).length;let r=GZ(t),n=0;return e.forEach(i=>{r.set(i,n),n+=i.length}),r},Ixr=(e=cS)=>h1t().getRandomValues(GZ(e)),$Z=BigInt,_w=(e,t,r,n="bad number: out of range")=>{if(!Axr(e))throw new TypeError(n);if(t<=e&&e<r)return e;throw new RangeError(n)},Jn=(e,t=FZ)=>{let r=e%t;return r>=0n?r:t+r},j0t=(1n<<255n)-1n,We=e=>{e<0n&&Rs("negative coordinate");let t=(e>>255n)*19n+(e&j0t);return t=(t>>255n)*19n+(t&j0t),t%FZ},Oxr=e=>Jn(e,DZ),Cxr=(e,t)=>{(e===0n||t<=0n)&&Rs("no inverse n="+e+" mod="+t);let r=Jn(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?Jn(i,t):Rs("no inverse")},y1t=e=>{let t=w1t[e];return typeof t!="function"&&Rs("hashes."+e+" not set"),t},g1t=e=>N2(e,64,"digest"),W3e=e=>e instanceof ON?e:Rs("Point expected"),X3e=2n**256n,ON=class vw{static BASE;static ZERO;X;Y;Z;T;constructor(t,r,n,i){let o=X3e;this.X=_w(t,0n,o),this.Y=_w(r,0n,o),this.Z=_w(n,1n,o),this.T=_w(i,0n,o),Object.freeze(this)}static CURVE(){return l1t}static fromAffine(t){return new vw(t.x,t.y,1n,We(t.x*t.y))}static fromBytes(t,r=!1){let n=K3e,i=s9e(N2(t,cS)),o=t[31];i[31]=o&-129;let s=b1t(i);_w(s,0n,r?X3e:FZ);let c=We(s*s),u=Jn(c-1n),d=We(n*c+1n),{isValid:l,value:p}=Nxr(u,d);l||Rs("bad point: y not sqrt");let f=(p&1n)===1n,m=(o&128)!==0;return!r&&p===0n&&m&&Rs("bad point: x==0, isLastByteOdd"),m!==f&&(p=Jn(-p)),new vw(p,s,1n,We(p*s))}static fromHex(t,r){return vw.fromBytes(m1t(t),r)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}assertValidity(){let t=V3e,r=K3e,n=this;if(n.is0())return Rs("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=Jn(l+We(r*We(c*u)));if(f!==m)return Rs("bad point: equation left != right (1)");let h=We(i*o),y=We(s*a);return h!==y?Rs("bad point: equation left != right (2)"):this}equals(t){let{X:r,Y:n,Z:i}=this,{X:o,Y:s,Z:a}=W3e(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(xw)}negate(){return new vw(Jn(-this.X),this.Y,this.Z,Jn(-this.T))}double(){let{X:t,Y:r,Z:n}=this,i=V3e,o=We(t*t),s=We(r*r),a=We(2n*n*n),c=We(i*o),u=Jn(t+r),d=Jn(We(u*u)-o-s),l=Jn(c+s),p=Jn(l-a),f=Jn(c-s),m=We(d*p),h=We(l*f),y=We(d*f),w=We(p*l);return new vw(m,h,w,y)}add(t){let{X:r,Y:n,Z:i,T:o}=this,{X:s,Y:a,Z:c,T:u}=W3e(t),d=V3e,l=K3e,p=We(r*s),f=We(n*a),m=We(We(o*l)*u),h=We(i*c),y=Jn(We(Jn(r+n)*Jn(s+a))-p-f),w=Jn(h-m),E=Jn(h+m),_=Jn(f-We(d*p)),v=We(y*w),x=We(E*_),A=We(y*_),S=We(w*E);return new vw(v,x,S,A)}subtract(t){return this.add(W3e(t).negate())}multiply(t,r=!0){if(!r&&t===0n||(_w(t,1n,DZ),!r&&this.is0()))return xw;if(t===1n)return this;if(this.equals(uS))return Fxr(t).p;let n=xw,i=uS;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(xw))return{x:0n,y:1n};let i=Cxr(n,FZ);We(n*i)!==1n&&Rs("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=kxr(r);return n[31]|=t&1n?128:0,n}toHex(){return f1t(this.toBytes())}clearCofactor(){return this.multiply($Z(Exr),!1)}isSmallOrder(){return this.clearCofactor().is0()}isTorsionFree(){let t=this.multiply(DZ/2n,!1).double();return DZ%2n&&(t=t.add(this)),t.is0()}},uS=new ON(R0t,N0t,1n,Jn(R0t*N0t)),xw=new ON(0n,1n,1n,0n);ON.BASE=uS;ON.ZERO=xw;kxr=e=>m1t(p1t(_w(e,0n,X3e),64)).reverse(),b1t=e=>$Z("0x"+f1t(s9e(N2(e)).reverse())),$m=(e,t)=>{let r=e;for(;t-- >0n;)r=We(r*r);return r},Rxr=e=>{let t=We(e*e),r=We(t*e),n=We($m(r,2n)*r),i=We($m(n,1n)*e),o=We($m(i,5n)*i),s=We($m(o,10n)*o),a=We($m(s,20n)*s),c=We($m(a,40n)*a),u=We($m(c,80n)*c),d=We($m(u,80n)*c),l=We($m(d,10n)*o);return{pow_p_5_8:We($m(l,2n)*e),b2:r}},U0t=0x2b8324804fc1df0b2b4d00993dfbd7a72f431806ad2fe478c4ee1b274a0ea0b0n,Nxr=(e,t)=>{let r=We(t*We(t*t)),n=We(We(r*r)*t),i=Rxr(We(e*n)).pow_p_5_8,o=We(e*We(r*i)),s=We(t*We(o*o)),a=o,c=We(o*U0t),u=s===e,d=s===Jn(-e),l=s===Jn(-e*U0t);return u&&(o=a),(d||l)&&(o=c),(Jn(o)&1n)===1n&&(o=Jn(-o)),{isValid:u||d,value:o}},Bxr=e=>Oxr(b1t(e)),jxr=(...e)=>Promise.resolve(y1t("sha512Async")(a9e(...e))).then(g1t),Uxr=(...e)=>g1t(y1t("sha512")(a9e(...e))),_1t=e=>{let t=s9e(e),r=t.slice(0,32);r[0]&=248,r[31]&=127,r[31]|=64;let n=t.slice(32,64),i=Bxr(r),o=uS.multiply(i),s=o.toBytes();return{head:r,prefix:n,scalar:i,point:o,pointBytes:s}},qxr=e=>jxr(N2(e,cS)).then(_1t),v1t=e=>_1t(Uxr(N2(e,cS))),Mxr=e=>v1t(e).pointBytes,w1t={sha512Async:async e=>{let t=Pxr(),r=a9e(e);return GZ(await t.digest("SHA-512",r.buffer))},sha512:void 0},Dxr=e=>(e=e===void 0?Ixr(cS):e,N2(e,cS)),Lxr=Object.freeze({getExtendedPublicKeyAsync:qxr,getExtendedPublicKey:v1t,randomSecretKey:Dxr}),VZ=8,zxr=256,E1t=Math.ceil(zxr/VZ)+1,Q3e=2**(VZ-1),Hxr=()=>{let e=[],t=uS,r=t;for(let n=0;n<E1t;n++){r=t,e.push(r);for(let i=1;i<Q3e;i++)r=r.add(t),e.push(r);t=r.double()}return e},q0t=void 0,M0t=(e,t)=>{let r=t.negate();return e?r:t},Fxr=e=>{let t=q0t||(q0t=Hxr()),r=xw,n=uS,i=2**VZ,o=i,s=$Z(i-1),a=$Z(VZ);for(let c=0;c<E1t;c++){let u=Number(e&s);e>>=a,u>Q3e&&(u-=o,e+=1n);let d=c*Q3e,l=d,p=d+Math.abs(u)-1,f=c%2!==0,m=u<0;u===0?n=n.add(M0t(f,t[l])):r=r.add(M0t(m,t[p]))}return e!==0n&&Rs("invalid wnaf"),{p:r,f:n}};Wxr=e=>({oid:Uint8Array.from([6,9,96,134,72,1,101,3,4,2,e])}),Gxr=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){D0t(this),x1t(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){D0t(this),Vxr(e,this),this.finished=!0;let{buffer:t,view:r,blockLen:n,isLE:i}=this,{pos:o}=this;t[o++]=128,e9e(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()}},ha=Uint32Array.from([1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209]),jZ=BigInt(2**32-1),L0t=BigInt(32);z0t=(e,t,r)=>e>>>r,H0t=(e,t,r)=>e<<32-r|t>>>r,oS=(e,t,r)=>e>>>r|t<<32-r,sS=(e,t,r)=>e<<32-r|t>>>r,UZ=(e,t,r)=>e<<64-r|t>>>r-32,qZ=(e,t,r)=>e>>>r-32|t<<64-r;Zxr=(e,t,r)=>(e>>>0)+(t>>>0)+(r>>>0),Xxr=(e,t,r,n)=>t+r+n+(e/2**32|0)|0,Qxr=(e,t,r,n)=>(e>>>0)+(t>>>0)+(r>>>0)+(n>>>0),eAr=(e,t,r,n,i)=>t+r+n+i+(e/2**32|0)|0,tAr=(e,t,r,n,i)=>(e>>>0)+(t>>>0)+(r>>>0)+(n>>>0)+(i>>>0),rAr=(e,t,r,n,i,o)=>t+r+n+i+o+(e/2**32|0)|0,A1t=Yxr(["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))),nAr=A1t[0],iAr=A1t[1],C2=new Uint32Array(80),k2=new Uint32Array(80),oAr=class extends Gxr{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 E=0;E<16;E++,t+=4)C2[E]=e.getUint32(t),k2[E]=e.getUint32(t+=4);for(let E=16;E<80;E++){let _=C2[E-15]|0,v=k2[E-15]|0,x=oS(_,v,1)^oS(_,v,8)^z0t(_,v,7),A=sS(_,v,1)^sS(_,v,8)^H0t(_,v,7),S=C2[E-2]|0,C=k2[E-2]|0,I=oS(S,C,19)^UZ(S,C,61)^z0t(S,C,6),k=sS(S,C,19)^qZ(S,C,61)^H0t(S,C,6),q=Qxr(A,k,k2[E-7],k2[E-16]),j=eAr(q,x,I,C2[E-7],C2[E-16]);C2[E]=j|0,k2[E]=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 E=0;E<80;E++){let _=oS(d,l,14)^oS(d,l,18)^UZ(d,l,41),v=sS(d,l,14)^sS(d,l,18)^qZ(d,l,41),x=d&p^~d&m,A=l&f^~l&h,S=tAr(w,v,A,iAr[E],k2[E]),C=rAr(S,y,_,x,nAr[E],C2[E]),I=S|0,k=oS(r,n,28)^UZ(r,n,34)^UZ(r,n,39),q=sS(r,n,28)^qZ(r,n,34)^qZ(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}=yh(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 N=Zxr(I,q,U);r=Xxr(N,C,k,j),n=N|0}({h:r,l:n}=yh(this.Ah|0,this.Al|0,r|0,n|0)),{h:i,l:o}=yh(this.Bh|0,this.Bl|0,i|0,o|0),{h:s,l:a}=yh(this.Ch|0,this.Cl|0,s|0,a|0),{h:c,l:u}=yh(this.Dh|0,this.Dl|0,c|0,u|0),{h:d,l}=yh(this.Eh|0,this.El|0,d|0,l|0),{h:p,l:f}=yh(this.Fh|0,this.Fl|0,p|0,f|0),{h:m,l:h}=yh(this.Gh|0,this.Gl|0,m|0,h|0),{h:y,l:w}=yh(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(){e9e(C2,k2)}destroy(){this.destroyed=!0,e9e(this.buffer),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}},sAr=class extends oAr{Ah=ha[0]|0;Al=ha[1]|0;Bh=ha[2]|0;Bl=ha[3]|0;Ch=ha[4]|0;Cl=ha[5]|0;Dh=ha[6]|0;Dl=ha[7]|0;Eh=ha[8]|0;El=ha[9]|0;Fh=ha[10]|0;Fl=ha[11]|0;Gh=ha[12]|0;Gl=ha[13]|0;Hh=ha[14]|0;Hl=ha[15]|0;constructor(){super(64)}},aAr=Kxr(()=>new sAr,Wxr(3)),F0t=w1t;F0t.sha512||(F0t.sha512=e=>aAr(e));fAr="ws://localhost:9001/ws",mAr=3e4,T1t=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=ww(e.name),e.keyPath)try{this._keypair=lAr(e.keyPath)}catch{}this.options={name:this._name,url:e.url??fAr,relay:e.relay??"",autoReconnect:e.autoReconnect??!0,reconnectInterval:e.reconnectInterval??1e3,maxReconnectAttempts:e.maxReconnectAttempts??10,rpcTimeout:e.rpcTimeout??mAr,pingInterval:e.pingInterval??3e4,binding:e.binding??""},this.transport=new SEr({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=vxr(new Uint8Array(t));r&&(this._keypair={privateKey:r,publicKey:pxr(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=$0t(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 fa(String(n)))}})}disconnect(){for(let[,e]of this.pendingCalls)clearTimeout(e.timer),e.reject(new fa("Client disconnected"));this.pendingCalls.clear();for(let[,e]of this.pendingSend)e.reject(new fa("Client disconnected"));this.pendingSend.clear();for(let[,e]of this.pendingResolve)e.reject(new fa("Client disconnected"));this.pendingResolve.clear(),this.registerPromise&&(this.registerPromise.reject(new fa("Client disconnected")),this.registerPromise=null),this.transport.disconnect(),this._peerId=null,this.hasConnectedOnce=!1}async send(e,t,r,n){let i=ww(e),o=L3e();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 fa(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=ww(e),o=L3e(),s=Date.now(),a=Math.floor(Math.random()*2**32),c=new TextEncoder().encode(r),{signature:u,signatureInput:d}=await pAr(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 fa(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=ww(e),o=n?.correlationId??L3e(),s=n?.timeout??this.options.rpcTimeout;return new Promise((a,c)=>{let u=setTimeout(()=>{this.pendingCalls.delete(o),c(new TN(`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 fa(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=ww(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 fa(String(i)))}setTimeout(()=>{this.pendingResolve.has(t)&&(this.pendingResolve.delete(t),n(new TN(`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=q3e(e.code,e.message);this.registerPromise&&e.code==="register_failed"&&(this.registerPromise.reject(new kZ(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=$0t(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 h9e={};xi(h9e,{SUBWAY_PROTOCOL:()=>q1t,registerDirect:()=>PAr,resolveDirect:()=>IAr});function l9e(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 cl(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 p9e(e,t){return e<<3|t}function CN(e,t,r){e.push(p9e(t,2)),l9e(e,r.length);for(let n of r)e.push(n)}function hAr(e,t){let r=[];return CN(r,1,d9e.encode(e)),t&&t.length>0&&CN(r,2,d9e.encode(t)),Uint8Array.from(r)}function yAr(e,t,r){let n=[];return r!==0n&&(n.push(p9e(1,0)),l9e(n,r)),CN(n,2,hAr(e,t)),Uint8Array.from(n)}function gAr(e){let t=[];return CN(t,1,d9e.encode(e)),Uint8Array.from(t)}function bAr(e,t){let r=[];return t!==0n&&(r.push(p9e(1,0)),l9e(r,t)),CN(r,3,gAr(e)),Uint8Array.from(r)}function _Ar(e){let t=0,r={success:!1,error:""};for(;t<e.length;){let[n,i]=cl(e,t);t=i;let o=Number(n)>>3,s=Number(n)&7;if(o===1&&s===0){let[a,c]=cl(e,t);t=c,r.success=a!==0n}else if(o===2&&s===2){let[a,c]=cl(e,t),u=c,d=u+Number(a);r.error=j1t.decode(e.subarray(u,d)),t=d}else t=f9e(e,t,s)}return r}function vAr(e){let t=0,r={peerId:new Uint8Array(0),error:""};for(;t<e.length;){let[n,i]=cl(e,t);t=i;let o=Number(n)>>3,s=Number(n)&7;if(o===1&&s===2){let[a,c]=cl(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]=cl(e,t),u=c,d=u+Number(a);r.error=j1t.decode(e.subarray(u,d)),t=d}else t=f9e(e,t,s)}return r}function f9e(e,t,r){if(r===0)return cl(e,t)[1];if(r===2){let[n,i]=cl(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 U1t(e){let t=0,r={requestId:0n};for(;t<e.length;){let[n,i]=cl(e,t);t=i;let o=Number(n)>>3,s=Number(n)&7;if(o===1&&s===0){let[a,c]=cl(e,t);t=c,r.requestId=a}else if(o===13&&s===2){let[a,c]=cl(e,t),u=c,d=u+Number(a);r.registerNameResponse=_Ar(e.subarray(u,d)),t=d}else if(o===14&&s===2){let[a,c]=cl(e,t),u=c,d=u+Number(a);r.resolveNameResponse=vAr(e.subarray(u,d)),t=d}else t=f9e(e,t,s)}return r}function wAr(e){let t=new Uint8Array(4+e.length);return new DataView(t.buffer).setUint32(0,e.length,!1),t.set(e,4),t}function m9e(e){return new DataView(e.buffer,e.byteOffset,4).getUint32(0,!1)}function EAr(e){if(e.length<4)return{success:!1,error:"short reply (no length prefix)"};let t=m9e(e.subarray(0,4));return e.length<4+t?{success:!1,error:`truncated frame (have ${e.length-4}, need ${t})`}:U1t(e.subarray(4,4+t)).registerNameResponse??{success:!1,error:"reply carried no register_name_response"}}function xAr(e){if(e.length<4)return{peerId:new Uint8Array(0),error:"short reply (no length prefix)"};let t=m9e(e.subarray(0,4));return e.length<4+t?{peerId:new Uint8Array(0),error:`truncated frame (have ${e.length-4}, need ${t})`}:U1t(e.subarray(4,4+t)).resolveNameResponse??{peerId:new Uint8Array(0),error:"reply carried no resolve_name_response"}}function u9e(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 TAr(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>P1t)throw new Error("subway: reply exceeded max size");if(n<0&&r>=4&&(n=4+m9e(u9e(t).subarray(0,4)),n>P1t))throw new Error("subway: declared frame exceeds max size");if(n>=0&&r>=n)return u9e(t).subarray(0,n)}return u9e(t)}async function M1t(e){return(0,I1t.createLibp2p)({...e?{privateKey:await(0,R1t.generateKeyPairFromSeed)("Ed25519",e)}:{},transports:[(0,O1t.tcp)()],connectionEncrypters:[(0,C1t.noise)()],streamMuxers:[(0,k1t.yamux)()],connectionGater:{denyDialMultiaddr:async()=>!1}})}async function D1t(e,t,r){let n=await e.dialProtocol((0,N1t.multiaddr)(t),q1t,{signal:AbortSignal.timeout(AAr)});n.send(wAr(r));let i;return Promise.race([TAr(n),new Promise((o,s)=>{i=setTimeout(()=>s(new Error("subway: request timed out")),SAr)})]).finally(()=>clearTimeout(i))}async function PAr(e){let t=await M1t(e.seed);try{let r=await D1t(t,e.relayMultiaddr,yAr(e.name,e.binding,e.requestId??1n)),n=EAr(r);return{success:n.success,error:n.error,peerId:t.peerId.toString()}}finally{await t.stop()}}async function IAr(e){let t=await M1t(e.seed);try{let r=await D1t(t,e.relayMultiaddr,bAr(e.name,e.requestId??1n)),n=xAr(r);return n.peerId.length===0?{found:!1,peerId:"",error:n.error||"name not found"}:{found:!0,peerId:(0,B1t.toString)(n.peerId,"base58btc"),error:""}}finally{await t.stop()}}var I1t,O1t,C1t,k1t,R1t,N1t,B1t,d9e,j1t,q1t,AAr,SAr,P1t,y9e=P(()=>{"use strict";D3e();I1t=require("libp2p"),O1t=require("@libp2p/tcp"),C1t=require("@chainsafe/libp2p-noise"),k1t=require("@chainsafe/libp2p-yamux"),R1t=require("@libp2p/crypto/keys"),N1t=require("@multiformats/multiaddr"),B1t=require("uint8arrays/to-string"),d9e=new TextEncoder,j1t=new TextDecoder;q1t="/subway/p2p/1.0.0",AAr=15e3,SAr=15e3,P1t=1<<20});var BN={};xi(BN,{DEFAULT_VISA_RELAY_MULTIADDR:()=>z1t,MESH:()=>ro,RELAY_URL:()=>RN,connectOrThrow:()=>pS,ensureMailbox:()=>O9e,isSubwayEnabled:()=>E9e,listRegistered:()=>I9e,loadBindingFor:()=>S9e,loadRegistry:()=>Sw,makeClient:()=>lS,maybeMintVisaBinding:()=>F1t,meshName:()=>Np,pairedVisaBinding:()=>$1t,readInbox:()=>kAr,registerName:()=>NN,resolveActingName:()=>ZZ,resolveMeshName:()=>T9e,seedSubwayKeyFromTapAgent:()=>H1t,sendMessage:()=>P9e,sendVia:()=>RAr,subwayKeyPath:()=>YZ,visaRelayMultiaddr:()=>w9e});function w9e(e=process.env){return e.SUBWAY_RELAY_MULTIADDR??z1t}function Np(e){return e.includes(".")?e:`${e}.${ro}`}function E9e(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 A9e(){vo.mkdirSync(x9e,{recursive:!0,mode:448})}function OAr(e){return e.replace(/[^a-zA-Z0-9_.-]/g,"_")}function YZ(e){return dS.join(x9e,`${OAr(e)}.key`)}function Sw(){if(!vo.existsSync(v9e))return{};try{return JSON.parse(vo.readFileSync(v9e,"utf8"))}catch{return{}}}function b9e(e){A9e(),vo.writeFileSync(v9e,JSON.stringify(e,null,2),{mode:384})}function _9e(){try{return kN.userInfo().username}catch{return"local"}}function H1t(e){if(vo.existsSync(e)||!vo.existsSync(g9e))return null;let t=vo.readdirSync(g9e).filter(n=>n.endsWith(".json"));if(t.length===0)return null;let r=t.map(n=>dS.join(g9e,n)).sort((n,i)=>vo.statSync(i).mtimeMs-vo.statSync(n).mtimeMs)[0];try{let n=JSON.parse(vo.readFileSync(r,"utf8"));if(!n.private_key_jwk)return null;let i=YS(n.private_key_jwk);return A9e(),vo.writeFileSync(e,Buffer.from(i),{mode:384}),n.agent_id??null}catch{return null}}function lS(e,t={}){return new T1t({name:Np(e),url:RN,keyPath:YZ(e),autoReconnect:t.autoReconnect??!1,binding:t.binding})}function S9e(e){if(ro!=="visa")return;let t=Sw()[e];if(t?.binding&&!(t.bindingExpiresAt&&Date.parse(t.bindingExpiresAt)<=Date.now()))return t.binding}async function pS(e,t=15e3){await Promise.race([e.connect(),new Promise((r,n)=>setTimeout(()=>n(new Error(`Subway relay connect timed out after ${t}ms (${RN})`)),t))])}function ZZ(e){if(e)return e;let t=Object.keys(Sw());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 F1t(e){if(ro!=="visa")return null;let t=process.env.VISA_CLI_API_KEY?.trim();if(!t)throw new r0("No enrolled V4 agent or Visa Key is available for the trusted .visa mesh.","no_key");try{return await jQ({authUrl:ba(),apiKey:t,seed:oj(YZ(e)),name:Np(e)})}catch(r){if(r instanceof r0)throw r;return console.warn(`[subway] Visa binding not minted: ${r instanceof Error?r.message:String(r)}`),null}}function $1t(e=Date.now()){let t=C9e();if(!t?.binding_jwt)return null;let r=jN(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 NN(e){let t=YZ(e),r=H1t(t),n=Np(e);ro==="visa"&&!vo.existsSync(t)&&(A9e(),vo.writeFileSync(t,(0,L1t.randomBytes)(32),{mode:384}));let i=ro==="visa"?$1t():null,o,s={};if(i)o=i.binding,s={binding:i.binding,bindingExpiresAt:i.bindingExpiresAt};else{let u=await F1t(e);u&&(o=u.binding,s={binding:u.binding,bindingExpiresAt:new Date(Date.now()+u.expires_in*1e3).toISOString()})}let a=ro==="visa"?w9e():process.env.SUBWAY_RELAY_MULTIADDR;if(ro==="visa"&&a){let{registerDirect:u}=await Promise.resolve().then(()=>(y9e(),h9e)),d=await u({relayMultiaddr:a,seed:oj(t),name:n,binding:o});if(!d.success)throw new Error(`.visa relay admission failed: ${d.error||"unknown"}`);let l=Sw();return l[e]={relayName:n,mesh:ro,peerId:d.peerId,owner:_9e(),tapAgentId:r,registeredAt:new Date().toISOString(),...s},b9e(l),{relayName:n,mesh:ro,peerId:d.peerId,tapAgentId:r,...o?{binding:o}:{}}}if(ro==="visa"&&!process.env.SUBWAY_RELAY){let u=Sw();return u[e]={relayName:n,mesh:ro,peerId:null,owner:_9e(),tapAgentId:r,registeredAt:new Date().toISOString(),...s},b9e(u),{relayName:n,mesh:ro,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=lS(e,{autoReconnect:!1,binding:o});try{await pS(c);let u=Sw();return u[e]={relayName:n,mesh:ro,peerId:c.peerId,owner:_9e(),tapAgentId:r,registeredAt:new Date().toISOString(),...s},b9e(u),{relayName:n,mesh:ro,peerId:c.peerId,tapAgentId:r,...o?{binding:o}:{}}}finally{c.disconnect()}}async function T9e(e){let t=Np(e),r=ro==="visa"?w9e():process.env.SUBWAY_RELAY_MULTIADDR;if(ro==="visa"&&r){let{resolveDirect:n}=await Promise.resolve().then(()=>(y9e(),h9e)),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 P9e(e,t,r){let n=lS(e,{autoReconnect:!1,binding:S9e(e)});try{await pS(n);let i=Np(t);return await n.sendSigned(i,"chat",r),{to:i,as:Np(e)}}finally{n.disconnect()}}function I9e(){let e=Sw();return Object.entries(e).map(([t,r])=>({name:t,...r}))}async function O9e(e){let t=JZ.get(e);if(t)return{relayName:Np(e),peerId:t.client.peerId};let r=lS(e,{autoReconnect:!0,binding:S9e(e)}),n=[];return r.onMessage(i=>{n.push({from:i.fromName,text:i.payload,ts:i.timestampMs,verified:!!i.verified}),n.length>CAr&&n.shift()}),JZ.set(e,{client:r,buffer:n}),await pS(r),{relayName:Np(e),peerId:r.peerId}}async function kAr(e,t=20,r=!1){await O9e(e);let n=JZ.get(e);if(!n)return[];let i=n.buffer.slice(-t);return r&&(n.buffer.length=0),i}async function RAr(e,t,r){await O9e(e);let n=JZ.get(e);if(!n)throw new Error(`mailbox for ${e} unavailable`);let i=Np(t);return await n.client.sendSigned(i,"chat",r),{to:i,as:Np(e)}}var vo,kN,dS,L1t,ro,z1t,RN,x9e,v9e,g9e,JZ,CAr,Tw=P(()=>{"use strict";c9e();n_();vo=ve(require("fs")),kN=ve(require("os")),dS=ve(require("path")),L1t=require("crypto");Z2();f4();UN();ro=process.env.SUBWAY_MESH??"relay",z1t="/dns4/subway-relay-visa.fly.dev/tcp/9100/p2p/12D3KooWM2q6SXgKFxj5wvnJ7gTD4XPjhvc5tHVVjDBrZRnJ3CKU";RN=process.env.SUBWAY_RELAY??"wss://relay.subway.dev/ws";x9e=dS.join(kN.homedir(),".visa-cli","subway"),v9e=dS.join(x9e,"registry.json"),g9e=dS.join(kN.homedir(),".visa-cli","agents");JZ=new Map,CAr=200});var G1t={};xi(G1t,{PAIRING_DIR:()=>mS,cancelPairing:()=>N9e,claimPairing:()=>nX,generateWalletCredential:()=>hN,getPairingStatus:()=>rX,initiatePairing:()=>tX,latestPendingHumanPairing:()=>eX,loadPairingMailbox:()=>K1t,pairingFilePath:()=>QZ,pollAndActivatePairing:()=>DN,readPendingPairing:()=>qN,registerOnVisaMeshIfEnabled:()=>XZ,removePendingPairing:()=>hS,verifyPairing:()=>MN,writePendingPairing:()=>R9e});async function XZ(e){if(process.env.SUBWAY_MESH!=="visa")return!1;try{return await NN(e),!0}catch(t){return ke.warn("subway:pairing-auto-register-failed",{name:e,mesh:"visa",error:t instanceof Error?t.message:String(t)}),!1}}function K1t(e=process.env.VISA_V4_HOME||fS.join(k9e.homedir(),".visa-v4")){try{let t=Qc.readFileSync(fS.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 QZ(e,t,r=mS){return fS.join(r,`${e}.${t}.json`)}function R9e(e,t=mS){Qc.mkdirSync(t,{recursive:!0,mode:448}),Qc.writeFileSync(QZ(e.pairingId,e.role,t),JSON.stringify(e,null,2),{mode:384})}function hS(e,t,r=mS){Qc.rmSync(QZ(e,t,r),{force:!0})}function qN(e,t,r=mS){try{let n=JSON.parse(Qc.readFileSync(QZ(e,t,r),"utf8"));return n?.pairingId===e&&n.role===t?n:null}catch{return null}}function eX(e=mS){return Qc.existsSync(e)?Qc.readdirSync(e).filter(r=>r.endsWith(".human.json")).map(r=>{try{return JSON.parse(Qc.readFileSync(fS.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 Pw(e,t,r){let n=await r(e,{...t,headers:{"X-Source":"cli","X-Visa-CLI-Version":V1t,...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 tX(e={}){let t=(e.authUrl??ba()).replace(/\/+$/,""),r=dSe(),n=K1t(),{body:i}=await Pw(`${t}/v4/agent-pairings`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cliChallenge:lSe(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 R9e(o,e.pairingDir),o}async function MN(e){let{pairing:t}=e,{body:r}=await Pw(`${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 rX(e){let t=(e.authUrl??ba()).replace(/\/+$/,""),{body:r}=await Pw(`${t}/v4/agent-pairings/${encodeURIComponent(e.pairingId)}`,{method:"GET",cache:"no-store"},e.fetchImpl??fetch);return r}function W1t(e,t){return Buffer.from(d4(e,Buffer.from(t,"utf8"))).toString("base64url")}async function nX(e){let t=(e.authUrl??ba()).replace(/\/+$/,""),r=e.fetchImpl??fetch,n=await rX({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=rj();i=m.secretKey,s=l4(i),o=jh(m.publicKey)}let a=p4(o),c=hN(),u=pSe(),d={runtime:e.runtime,contextLabel:e.contextLabel,platform:`${process.platform}/${process.arch}`,cliVersion:V1t},l=W1t(i,fSe({pairingId:e.pairingId,serverNonce:n.serverNonce,claimTokenHash:NQ(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()};R9e(p,e.pairingDir);let{body:f}=await Pw(`${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!==nj(e.pairingId,u))throw new Error("pairing server returned a mismatched verification code");return{pending:p,verificationCode:f.verificationCode}}async function DN(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 Pw(`${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=EZ(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))||hSe(s.artifacts)!==s.artifactHash)throw new Error("pairing artifact integrity check failed");let f=W1t(Buffer.from(e.pending.privateKeyJwk.d,"base64url"),mSe({pairingId:e.pending.pairingId,agentJkt:e.pending.agentJkt,termsHash:c.termsHash,artifactHash:s.artifactHash}));if((await Pw(`${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 wZ({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}:{}}),j9e(h,e.agentDir),await XZ(u),hS(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 N9e(e){let{pairing:t}=e,{body:r}=await Pw(`${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"&&hS(t.pairingId,"human",e.pairingDir),r}var Qc,k9e,fS,V1t,mS,B9e=P(()=>{"use strict";Qc=ve(require("node:fs")),k9e=ve(require("node:os")),fS=ve(require("node:path"));n_();f4();Tw();Z2();nu();xZ();UN();V1t="4.1.0-rc.36",mS=fS.join(k9e.homedir(),".visa-cli","pairings")});var rht={};xi(rht,{agentFilePath:()=>zN,agentFormatIsJson:()=>LN,attachAgentCommand:()=>L9e,claimOptsFromFlags:()=>M9e,decodeBindingClaims:()=>jN,enrollClaimEnvelope:()=>eht,isAgentCommandEnabled:()=>Q1t,isAgentRecord:()=>HN,listAgentFiles:()=>iX,newestAgentRecord:()=>C9e,readAgent:()=>D9e,resolveAgentByRef:()=>tht,writeAgent:()=>j9e});function HN(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 Q1t(){return!0}function LN(e){return e==="json"}function eht(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 M9e(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 U9e(e){return`${e.opened?`\u2713 Enrollment link opened in your browser.
20689
+ ${e.nonce}`;return yxr.encode(r)}function _xr(e,t,r,n,i,o,s){return bxr({messageId:e,senderPeerId:t,senderName:r,timestampMs:n,messageType:i,payload:o,nonce:s})}function vxr(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 $xr(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name==="Uint8Array"&&"BYTES_PER_ELEMENT"in e&&e.BYTES_PER_ELEMENT===1}function x1t(e,t,r=""){let n=$xr(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 D0t(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 Vxr(e,t){x1t(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 e9e(...e){for(let t=0;t<e.length;t++)e[t].fill(0)}function G3e(e){return new DataView(e.buffer,e.byteOffset,e.byteLength)}function Kxr(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 Jxr(e,t=!1){return t?{h:Number(e&jZ),l:Number(e>>L0t&jZ)}:{h:Number(e>>L0t&jZ)|0,l:Number(e&jZ)|0}}function Yxr(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}=Jxr(e[o],t);[n[o],i[o]]=[s,a]}return[n,i]}function yh(e,t,r,n){let i=(t>>>0)+(n>>>0);return{h:e+r+(i/2**32|0)|0,l:i|0}}function cAr(){return Lxr.randomSecretKey()}function S1t(e){return Mxr(e)}function uAr(){let e=cAr();return{secretKey:e,publicKey:S1t(e)}}function dAr(e){if((0,R2.existsSync)(e)){let r=(0,R2.readFileSync)(e),n=new Uint8Array(r.buffer.slice(r.byteOffset,r.byteOffset+32));return{secretKey:n,publicKey:S1t(n)}}let t=uAr();return(0,R2.mkdirSync)((0,V0t.dirname)(e),{recursive:!0}),(0,R2.writeFileSync)(e,new Uint8Array(t.secretKey)),t}function lAr(e){let{secretKey:t,publicKey:r}=dAr(e);return{privateKey:t,publicKey:r}}async function pAr(e,t,r,n,i,o,s,a){let c=_xr(t,r,n,i,o,s,a);return{signature:await fxr(e,c),signatureInput:gxr.subwayAgentMsgV1}}function $0t(e){return hxr(e)}var R2,V0t,wEr,EEr,xEr,AEr,SEr,K0t,LZ,MZ,v0t,w0t,z3e,H3e,TEr,KZ,PEr,ks,IEr,OEr,CEr,gh,WZ,t9e,W0t,r9e,fh,E0t,n9e,G0t,kEr,aS,REr,zZ,gw,Nn,x0t,Ke,J0t,Y0t,Z0t,X0t,F3e,J3e,IN,Aw,Ew,Q0t,e1t,Hm,NEr,A0t,BEr,Y3e,i9e,jEr,t1t,UEr,qEr,MEr,DEr,LEr,zEr,o9e,r1t,HZ,HEr,n1t,Z3e,FEr,S0t,T0t,$Er,s1t,a1t,T2,ma,RZ,I0t,O0t,C0t,nS,iS,NZ,BZ,ZEr,XEr,QEr,exr,txr,rxr,nxr,P2,ixr,oxr,c1t,sxr,axr,I2,O2,cxr,uxr,dxr,lxr,k0t,mxr,u1t,yxr,gxr,d1t,wxr,l1t,FZ,DZ,R0t,N0t,V3e,K3e,Exr,cS,xxr,Rs,Axr,Sxr,Txr,N2,GZ,s9e,p1t,f1t,hh,B0t,m1t,h1t,Pxr,a9e,Ixr,$Z,_w,Jn,j0t,We,Oxr,Cxr,y1t,g1t,W3e,X3e,ON,uS,xw,kxr,b1t,$m,Rxr,U0t,Nxr,Bxr,jxr,Uxr,_1t,qxr,v1t,Mxr,w1t,Dxr,Lxr,VZ,zxr,E1t,Q3e,Hxr,q0t,M0t,Fxr,Wxr,Gxr,ha,jZ,L0t,z0t,H0t,oS,sS,UZ,qZ,Zxr,Xxr,Qxr,eAr,tAr,rAr,A1t,nAr,iAr,C2,k2,oAr,sAr,aAr,F0t,fAr,mAr,T1t,c9e=P(()=>{"use strict";M3e();M3e();D3e();R2=require("fs"),V0t=require("path");wEr=1e3,EEr=10,xEr=3e4,AEr=3e4,SEr=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??wEr,this.maxReconnectAttempts=e.maxReconnectAttempts??EEr,this.pingInterval=e.pingInterval??xEr}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=_Er();if(!r){t(new fa('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 fa(`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 fa("WebSocket closed before connection established")))},this.ws.onerror=()=>{n||(n=!0,t(new fa(`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 fa("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=vEr(this.reconnectInterval*Math.pow(2,this.reconnectAttempt),this.reconnectInterval,AEr);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)}}},K0t=Object.freeze({p:0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffedn,n:0x1000000000000000000000000000000014def9dea2f79cd65812631a5cf5d3edn,h:8n,a:0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffecn,d:0x52036cee2b6ffe738cc740797779e89800700a4d4141d8ab75eb4dca135978a3n,Gx:0x216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51an,Gy:0x6666666666666666666666666666666666666666666666666666666666666658n}),{p:LZ,n:MZ,Gx:v0t,Gy:w0t,a:z3e,d:H3e,h:TEr}=K0t,KZ=32,PEr=(...e)=>{"captureStackTrace"in Error&&typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(...e)},ks=(e="")=>{let t=new Error(e);throw PEr(t,ks),t},IEr=e=>typeof e=="bigint",OEr=e=>typeof e=="string",CEr=e=>e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name==="Uint8Array"&&"BYTES_PER_ELEMENT"in e&&e.BYTES_PER_ELEMENT===1,gh=(e,t,r="")=>{let n=CEr(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},WZ=e=>new Uint8Array(e),t9e=e=>Uint8Array.from(e),W0t=(e,t)=>e.toString(16).padStart(t,"0"),r9e=e=>Array.from(gh(e)).map(t=>W0t(t,2)).join(""),fh={_0:48,_9:57,A:65,F:70,a:97,f:102},E0t=e=>{if(e>=fh._0&&e<=fh._9)return e-fh._0;if(e>=fh.A&&e<=fh.F)return e-(fh.A-10);if(e>=fh.a&&e<=fh.f)return e-(fh.a-10)},n9e=e=>{let t="hex invalid";if(!OEr(e))return ks(t);let r=e.length,n=r/2;if(r%2)return ks(t);let i=WZ(n);for(let o=0,s=0;o<n;o++,s+=2){let a=E0t(e.charCodeAt(s)),c=E0t(e.charCodeAt(s+1));if(a===void 0||c===void 0)return ks(t);i[o]=a*16+c}return i},G0t=()=>globalThis?.crypto,kEr=()=>G0t()?.subtle??ks("crypto.subtle must be defined, consider polyfill"),aS=(...e)=>{let t=0;for(let i of e)t+=gh(i).length;let r=WZ(t),n=0;return e.forEach(i=>{r.set(i,n),n+=i.length}),r},REr=(e=KZ)=>G0t().getRandomValues(WZ(e)),zZ=BigInt,gw=(e,t,r,n="bad number: out of range")=>{if(!IEr(e))throw new TypeError(n);if(t<=e&&e<r)return e;throw new RangeError(n)},Nn=(e,t=LZ)=>{let r=e%t;return r>=0n?r:t+r},x0t=(1n<<255n)-1n,Ke=e=>{e<0n&&ks("negative coordinate");let t=(e>>255n)*19n+(e&x0t);return t=(t>>255n)*19n+(t&x0t),t%LZ},J0t=e=>Nn(e,MZ),Y0t=(e,t)=>{(e===0n||t<=0n)&&ks("no inverse n="+e+" mod="+t);let r=Nn(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?Nn(i,t):ks("no inverse")},Z0t=e=>{let t=r1t[e];return typeof t!="function"&&ks("hashes."+e+" not set"),t},X0t=e=>gh(e,64,"digest"),F3e=e=>e instanceof IN?e:ks("Point expected"),J3e=2n**256n,IN=class bw{static BASE;static ZERO;X;Y;Z;T;constructor(t,r,n,i){let o=J3e;this.X=gw(t,0n,o),this.Y=gw(r,0n,o),this.Z=gw(n,1n,o),this.T=gw(i,0n,o),Object.freeze(this)}static CURVE(){return K0t}static fromAffine(t){return new bw(t.x,t.y,1n,Ke(t.x*t.y))}static fromBytes(t,r=!1){let n=H3e,i=t9e(gh(t,KZ)),o=t[31];i[31]=o&-129;let s=e1t(i);gw(s,0n,r?J3e:LZ);let c=Ke(s*s),u=Nn(c-1n),d=Ke(n*c+1n),{isValid:l,value:p}=BEr(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=Nn(-p)),new bw(p,s,1n,Ke(p*s))}static fromHex(t,r){return bw.fromBytes(n9e(t),r)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}assertValidity(){let t=z3e,r=H3e,n=this;if(n.is0())return ks("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=Nn(l+Ke(r*Ke(c*u)));if(f!==m)return ks("bad point: equation left != right (1)");let h=Ke(i*o),y=Ke(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}=F3e(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(Ew)}negate(){return new bw(Nn(-this.X),this.Y,this.Z,Nn(-this.T))}double(){let{X:t,Y:r,Z:n}=this,i=z3e,o=Ke(t*t),s=Ke(r*r),a=Ke(2n*n*n),c=Ke(i*o),u=Nn(t+r),d=Nn(Ke(u*u)-o-s),l=Nn(c+s),p=Nn(l-a),f=Nn(c-s),m=Ke(d*p),h=Ke(l*f),y=Ke(d*f),w=Ke(p*l);return new bw(m,h,w,y)}add(t){let{X:r,Y:n,Z:i,T:o}=this,{X:s,Y:a,Z:c,T:u}=F3e(t),d=z3e,l=H3e,p=Ke(r*s),f=Ke(n*a),m=Ke(Ke(o*l)*u),h=Ke(i*c),y=Nn(Ke(Nn(r+n)*Nn(s+a))-p-f),w=Nn(h-m),E=Nn(h+m),_=Nn(f-Ke(d*p)),v=Ke(y*w),x=Ke(E*_),A=Ke(y*_),S=Ke(w*E);return new bw(v,x,S,A)}subtract(t){return this.add(F3e(t).negate())}multiply(t,r=!0){if(!r&&t===0n||(gw(t,1n,MZ),!r&&this.is0()))return Ew;if(t===1n)return this;if(this.equals(Aw))return $Er(t).p;let n=Ew,i=Aw;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(Ew))return{x:0n,y:1n};let i=Y0t(n,LZ);Ke(n*i)!==1n&&ks("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=Q0t(r);return n[31]|=t&1n?128:0,n}toHex(){return r9e(this.toBytes())}clearCofactor(){return this.multiply(zZ(TEr),!1)}isSmallOrder(){return this.clearCofactor().is0()}isTorsionFree(){let t=this.multiply(MZ/2n,!1).double();return MZ%2n&&(t=t.add(this)),t.is0()}},Aw=new IN(v0t,w0t,1n,Nn(v0t*w0t)),Ew=new IN(0n,1n,1n,0n);IN.BASE=Aw;IN.ZERO=Ew;Q0t=e=>n9e(W0t(gw(e,0n,J3e),64)).reverse(),e1t=e=>zZ("0x"+r9e(t9e(gh(e)).reverse())),Hm=(e,t)=>{let r=e;for(;t-- >0n;)r=Ke(r*r);return r},NEr=e=>{let t=Ke(e*e),r=Ke(t*e),n=Ke(Hm(r,2n)*r),i=Ke(Hm(n,1n)*e),o=Ke(Hm(i,5n)*i),s=Ke(Hm(o,10n)*o),a=Ke(Hm(s,20n)*s),c=Ke(Hm(a,40n)*a),u=Ke(Hm(c,80n)*c),d=Ke(Hm(u,80n)*c),l=Ke(Hm(d,10n)*o);return{pow_p_5_8:Ke(Hm(l,2n)*e),b2:r}},A0t=0x2b8324804fc1df0b2b4d00993dfbd7a72f431806ad2fe478c4ee1b274a0ea0b0n,BEr=(e,t)=>{let r=Ke(t*Ke(t*t)),n=Ke(Ke(r*r)*t),i=NEr(Ke(e*n)).pow_p_5_8,o=Ke(e*Ke(r*i)),s=Ke(t*Ke(o*o)),a=o,c=Ke(o*A0t),u=s===e,d=s===Nn(-e),l=s===Nn(-e*A0t);return u&&(o=a),(d||l)&&(o=c),(Nn(o)&1n)===1n&&(o=Nn(-o)),{isValid:u||d,value:o}},Y3e=e=>J0t(e1t(e)),i9e=(...e)=>Promise.resolve(Z0t("sha512Async")(aS(...e))).then(X0t),jEr=(...e)=>X0t(Z0t("sha512")(aS(...e))),t1t=e=>{let t=t9e(e),r=t.slice(0,32);r[0]&=248,r[31]&=127,r[31]|=64;let n=t.slice(32,64),i=Y3e(r),o=Aw.multiply(i),s=o.toBytes();return{head:r,prefix:n,scalar:i,point:o,pointBytes:s}},UEr=e=>i9e(gh(e,KZ)).then(t1t),qEr=e=>t1t(jEr(gh(e,KZ))),MEr=e=>qEr(e).pointBytes,DEr=e=>i9e(e.hashable).then(e.finish),LEr=(e,t,r)=>{let{pointBytes:n,scalar:i}=e,o=Y3e(t),s=Aw.multiply(o).toBytes();return{hashable:aS(s,n,r),finish:u=>{let d=J0t(o+Y3e(u)*i);return gh(aS(s,Q0t(d)),64)}}},zEr=async(e,t)=>{let r=gh(e),n=await UEr(t),i=await i9e(n.prefix,r);return DEr(LEr(n,i,r))},o9e=Object.freeze({bytesToHex:r9e,hexToBytes:n9e,concatBytes:aS,mod:Nn,invert:Y0t,randomBytes:REr}),r1t={sha512Async:async e=>{let t=kEr(),r=aS(e);return WZ(await t.digest("SHA-512",r.buffer))},sha512:void 0},HZ=8,HEr=256,n1t=Math.ceil(HEr/HZ)+1,Z3e=2**(HZ-1),FEr=()=>{let e=[],t=Aw,r=t;for(let n=0;n<n1t;n++){r=t,e.push(r);for(let i=1;i<Z3e;i++)r=r.add(t),e.push(r);t=r.double()}return e},S0t=void 0,T0t=(e,t)=>{let r=t.negate();return e?r:t},$Er=e=>{let t=S0t||(S0t=FEr()),r=Ew,n=Aw,i=2**HZ,o=i,s=zZ(i-1),a=zZ(HZ);for(let c=0;c<n1t;c++){let u=Number(e&s);e>>=a,u>Z3e&&(u-=o,e+=1n);let d=c*Z3e,l=d,p=d+Math.abs(u)-1,f=c%2!==0,m=u<0;u===0?n=n.add(T0t(f,t[l])):r=r.add(T0t(m,t[p]))}return e!==0n&&ks("invalid wnaf"),{p:r,f:n}};s1t=e=>({oid:Uint8Array.from([6,9,96,134,72,1,101,3,4,2,e])});a1t=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=$3e(this.buffer)}update(e){P0t(this),i1t(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=$3e(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){P0t(this),KEr(e,this),this.finished=!0;let{buffer:t,view:r,blockLen:n,isLE:i}=this,{pos:o}=this;t[o++]=128,PN(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=$3e(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()}},T2=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),ma=Uint32Array.from([1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209]),RZ=BigInt(2**32-1),I0t=BigInt(32);O0t=(e,t,r)=>e>>>r,C0t=(e,t,r)=>e<<32-r|t>>>r,nS=(e,t,r)=>e>>>r|t<<32-r,iS=(e,t,r)=>e<<32-r|t>>>r,NZ=(e,t,r)=>e<<64-r|t>>>r-32,BZ=(e,t,r)=>e>>>r-32|t<<64-r;ZEr=(e,t,r)=>(e>>>0)+(t>>>0)+(r>>>0),XEr=(e,t,r,n)=>t+r+n+(e/2**32|0)|0,QEr=(e,t,r,n)=>(e>>>0)+(t>>>0)+(r>>>0)+(n>>>0),exr=(e,t,r,n,i)=>t+r+n+i+(e/2**32|0)|0,txr=(e,t,r,n,i)=>(e>>>0)+(t>>>0)+(r>>>0)+(n>>>0)+(i>>>0),rxr=(e,t,r,n,i,o)=>t+r+n+i+o+(e/2**32|0)|0,nxr=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]),P2=new Uint32Array(64),ixr=class extends a1t{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)P2[d]=e.getUint32(t,!1);for(let d=16;d<64;d++){let l=P2[d-15],p=P2[d-2],f=Fm(l,7)^Fm(l,18)^l>>>3,m=Fm(p,17)^Fm(p,19)^p>>>10;P2[d]=m+P2[d-7]+f+P2[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=Fm(s,6)^Fm(s,11)^Fm(s,25),p=u+l+WEr(s,a,c)+nxr[d]+P2[d]|0,m=(Fm(r,2)^Fm(r,13)^Fm(r,22))+GEr(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(){PN(P2)}destroy(){this.destroyed=!0,this.set(0,0,0,0,0,0,0,0),PN(this.buffer)}},oxr=class extends ixr{A=T2[0]|0;B=T2[1]|0;C=T2[2]|0;D=T2[3]|0;E=T2[4]|0;F=T2[5]|0;G=T2[6]|0;H=T2[7]|0;constructor(){super(32)}},c1t=YEr(["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))),sxr=c1t[0],axr=c1t[1],I2=new Uint32Array(80),O2=new Uint32Array(80),cxr=class extends a1t{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 E=0;E<16;E++,t+=4)I2[E]=e.getUint32(t),O2[E]=e.getUint32(t+=4);for(let E=16;E<80;E++){let _=I2[E-15]|0,v=O2[E-15]|0,x=nS(_,v,1)^nS(_,v,8)^O0t(_,v,7),A=iS(_,v,1)^iS(_,v,8)^C0t(_,v,7),S=I2[E-2]|0,C=O2[E-2]|0,I=nS(S,C,19)^NZ(S,C,61)^O0t(S,C,6),k=iS(S,C,19)^BZ(S,C,61)^C0t(S,C,6),q=QEr(A,k,O2[E-7],O2[E-16]),j=exr(q,x,I,I2[E-7],I2[E-16]);I2[E]=j|0,O2[E]=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 E=0;E<80;E++){let _=nS(d,l,14)^nS(d,l,18)^NZ(d,l,41),v=iS(d,l,14)^iS(d,l,18)^BZ(d,l,41),x=d&p^~d&m,A=l&f^~l&h,S=txr(w,v,A,axr[E],O2[E]),C=rxr(S,y,_,x,sxr[E],I2[E]),I=S|0,k=nS(r,n,28)^NZ(r,n,34)^NZ(r,n,39),q=iS(r,n,28)^BZ(r,n,34)^BZ(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}=mh(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 N=ZEr(I,q,U);r=XEr(N,C,k,j),n=N|0}({h:r,l:n}=mh(this.Ah|0,this.Al|0,r|0,n|0)),{h:i,l:o}=mh(this.Bh|0,this.Bl|0,i|0,o|0),{h:s,l:a}=mh(this.Ch|0,this.Cl|0,s|0,a|0),{h:c,l:u}=mh(this.Dh|0,this.Dl|0,c|0,u|0),{h:d,l}=mh(this.Eh|0,this.El|0,d|0,l|0),{h:p,l:f}=mh(this.Fh|0,this.Fl|0,p|0,f|0),{h:m,l:h}=mh(this.Gh|0,this.Gl|0,m|0,h|0),{h:y,l:w}=mh(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(){PN(I2,O2)}destroy(){this.destroyed=!0,PN(this.buffer),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}},uxr=class extends cxr{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)}},dxr=o1t(()=>new oxr,s1t(1)),lxr=o1t(()=>new uxr,s1t(3)),k0t=r1t;k0t.sha512||(k0t.sha512=e=>lxr(e));mxr=o9e.bytesToHex,u1t=o9e.hexToBytes;o9e.concatBytes;yxr=new TextEncoder,gxr={subwayAgentMsgV1:"message_id;sender_peer_id;sender_name;timestamp_ms;message_type;payload_hash;nonce"};u1t("302e020100300506032b657004220420");u1t("302a300506032b6570032100");d1t="ABCDEFGHJKLMNPQRSTUVWXYZ23456789",wxr=d1t.length-1;if((d1t.length&wxr)!==0)throw new Error("agent pairing code alphabet must contain a power-of-two number of symbols");new TextEncoder;l1t=Object.freeze({p:0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffedn,n:0x1000000000000000000000000000000014def9dea2f79cd65812631a5cf5d3edn,h:8n,a:0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffecn,d:0x52036cee2b6ffe738cc740797779e89800700a4d4141d8ab75eb4dca135978a3n,Gx:0x216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51an,Gy:0x6666666666666666666666666666666666666666666666666666666666666658n}),{p:FZ,n:DZ,Gx:R0t,Gy:N0t,a:V3e,d:K3e,h:Exr}=l1t,cS=32,xxr=(...e)=>{"captureStackTrace"in Error&&typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(...e)},Rs=(e="")=>{let t=new Error(e);throw xxr(t,Rs),t},Axr=e=>typeof e=="bigint",Sxr=e=>typeof e=="string",Txr=e=>e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name==="Uint8Array"&&"BYTES_PER_ELEMENT"in e&&e.BYTES_PER_ELEMENT===1,N2=(e,t,r="")=>{let n=Txr(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},GZ=e=>new Uint8Array(e),s9e=e=>Uint8Array.from(e),p1t=(e,t)=>e.toString(16).padStart(t,"0"),f1t=e=>Array.from(N2(e)).map(t=>p1t(t,2)).join(""),hh={_0:48,_9:57,A:65,F:70,a:97,f:102},B0t=e=>{if(e>=hh._0&&e<=hh._9)return e-hh._0;if(e>=hh.A&&e<=hh.F)return e-(hh.A-10);if(e>=hh.a&&e<=hh.f)return e-(hh.a-10)},m1t=e=>{let t="hex invalid";if(!Sxr(e))return Rs(t);let r=e.length,n=r/2;if(r%2)return Rs(t);let i=GZ(n);for(let o=0,s=0;o<n;o++,s+=2){let a=B0t(e.charCodeAt(s)),c=B0t(e.charCodeAt(s+1));if(a===void 0||c===void 0)return Rs(t);i[o]=a*16+c}return i},h1t=()=>globalThis?.crypto,Pxr=()=>h1t()?.subtle??Rs("crypto.subtle must be defined, consider polyfill"),a9e=(...e)=>{let t=0;for(let i of e)t+=N2(i).length;let r=GZ(t),n=0;return e.forEach(i=>{r.set(i,n),n+=i.length}),r},Ixr=(e=cS)=>h1t().getRandomValues(GZ(e)),$Z=BigInt,_w=(e,t,r,n="bad number: out of range")=>{if(!Axr(e))throw new TypeError(n);if(t<=e&&e<r)return e;throw new RangeError(n)},Jn=(e,t=FZ)=>{let r=e%t;return r>=0n?r:t+r},j0t=(1n<<255n)-1n,We=e=>{e<0n&&Rs("negative coordinate");let t=(e>>255n)*19n+(e&j0t);return t=(t>>255n)*19n+(t&j0t),t%FZ},Oxr=e=>Jn(e,DZ),Cxr=(e,t)=>{(e===0n||t<=0n)&&Rs("no inverse n="+e+" mod="+t);let r=Jn(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?Jn(i,t):Rs("no inverse")},y1t=e=>{let t=w1t[e];return typeof t!="function"&&Rs("hashes."+e+" not set"),t},g1t=e=>N2(e,64,"digest"),W3e=e=>e instanceof ON?e:Rs("Point expected"),X3e=2n**256n,ON=class vw{static BASE;static ZERO;X;Y;Z;T;constructor(t,r,n,i){let o=X3e;this.X=_w(t,0n,o),this.Y=_w(r,0n,o),this.Z=_w(n,1n,o),this.T=_w(i,0n,o),Object.freeze(this)}static CURVE(){return l1t}static fromAffine(t){return new vw(t.x,t.y,1n,We(t.x*t.y))}static fromBytes(t,r=!1){let n=K3e,i=s9e(N2(t,cS)),o=t[31];i[31]=o&-129;let s=b1t(i);_w(s,0n,r?X3e:FZ);let c=We(s*s),u=Jn(c-1n),d=We(n*c+1n),{isValid:l,value:p}=Nxr(u,d);l||Rs("bad point: y not sqrt");let f=(p&1n)===1n,m=(o&128)!==0;return!r&&p===0n&&m&&Rs("bad point: x==0, isLastByteOdd"),m!==f&&(p=Jn(-p)),new vw(p,s,1n,We(p*s))}static fromHex(t,r){return vw.fromBytes(m1t(t),r)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}assertValidity(){let t=V3e,r=K3e,n=this;if(n.is0())return Rs("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=Jn(l+We(r*We(c*u)));if(f!==m)return Rs("bad point: equation left != right (1)");let h=We(i*o),y=We(s*a);return h!==y?Rs("bad point: equation left != right (2)"):this}equals(t){let{X:r,Y:n,Z:i}=this,{X:o,Y:s,Z:a}=W3e(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(xw)}negate(){return new vw(Jn(-this.X),this.Y,this.Z,Jn(-this.T))}double(){let{X:t,Y:r,Z:n}=this,i=V3e,o=We(t*t),s=We(r*r),a=We(2n*n*n),c=We(i*o),u=Jn(t+r),d=Jn(We(u*u)-o-s),l=Jn(c+s),p=Jn(l-a),f=Jn(c-s),m=We(d*p),h=We(l*f),y=We(d*f),w=We(p*l);return new vw(m,h,w,y)}add(t){let{X:r,Y:n,Z:i,T:o}=this,{X:s,Y:a,Z:c,T:u}=W3e(t),d=V3e,l=K3e,p=We(r*s),f=We(n*a),m=We(We(o*l)*u),h=We(i*c),y=Jn(We(Jn(r+n)*Jn(s+a))-p-f),w=Jn(h-m),E=Jn(h+m),_=Jn(f-We(d*p)),v=We(y*w),x=We(E*_),A=We(y*_),S=We(w*E);return new vw(v,x,S,A)}subtract(t){return this.add(W3e(t).negate())}multiply(t,r=!0){if(!r&&t===0n||(_w(t,1n,DZ),!r&&this.is0()))return xw;if(t===1n)return this;if(this.equals(uS))return Fxr(t).p;let n=xw,i=uS;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(xw))return{x:0n,y:1n};let i=Cxr(n,FZ);We(n*i)!==1n&&Rs("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=kxr(r);return n[31]|=t&1n?128:0,n}toHex(){return f1t(this.toBytes())}clearCofactor(){return this.multiply($Z(Exr),!1)}isSmallOrder(){return this.clearCofactor().is0()}isTorsionFree(){let t=this.multiply(DZ/2n,!1).double();return DZ%2n&&(t=t.add(this)),t.is0()}},uS=new ON(R0t,N0t,1n,Jn(R0t*N0t)),xw=new ON(0n,1n,1n,0n);ON.BASE=uS;ON.ZERO=xw;kxr=e=>m1t(p1t(_w(e,0n,X3e),64)).reverse(),b1t=e=>$Z("0x"+f1t(s9e(N2(e)).reverse())),$m=(e,t)=>{let r=e;for(;t-- >0n;)r=We(r*r);return r},Rxr=e=>{let t=We(e*e),r=We(t*e),n=We($m(r,2n)*r),i=We($m(n,1n)*e),o=We($m(i,5n)*i),s=We($m(o,10n)*o),a=We($m(s,20n)*s),c=We($m(a,40n)*a),u=We($m(c,80n)*c),d=We($m(u,80n)*c),l=We($m(d,10n)*o);return{pow_p_5_8:We($m(l,2n)*e),b2:r}},U0t=0x2b8324804fc1df0b2b4d00993dfbd7a72f431806ad2fe478c4ee1b274a0ea0b0n,Nxr=(e,t)=>{let r=We(t*We(t*t)),n=We(We(r*r)*t),i=Rxr(We(e*n)).pow_p_5_8,o=We(e*We(r*i)),s=We(t*We(o*o)),a=o,c=We(o*U0t),u=s===e,d=s===Jn(-e),l=s===Jn(-e*U0t);return u&&(o=a),(d||l)&&(o=c),(Jn(o)&1n)===1n&&(o=Jn(-o)),{isValid:u||d,value:o}},Bxr=e=>Oxr(b1t(e)),jxr=(...e)=>Promise.resolve(y1t("sha512Async")(a9e(...e))).then(g1t),Uxr=(...e)=>g1t(y1t("sha512")(a9e(...e))),_1t=e=>{let t=s9e(e),r=t.slice(0,32);r[0]&=248,r[31]&=127,r[31]|=64;let n=t.slice(32,64),i=Bxr(r),o=uS.multiply(i),s=o.toBytes();return{head:r,prefix:n,scalar:i,point:o,pointBytes:s}},qxr=e=>jxr(N2(e,cS)).then(_1t),v1t=e=>_1t(Uxr(N2(e,cS))),Mxr=e=>v1t(e).pointBytes,w1t={sha512Async:async e=>{let t=Pxr(),r=a9e(e);return GZ(await t.digest("SHA-512",r.buffer))},sha512:void 0},Dxr=e=>(e=e===void 0?Ixr(cS):e,N2(e,cS)),Lxr=Object.freeze({getExtendedPublicKeyAsync:qxr,getExtendedPublicKey:v1t,randomSecretKey:Dxr}),VZ=8,zxr=256,E1t=Math.ceil(zxr/VZ)+1,Q3e=2**(VZ-1),Hxr=()=>{let e=[],t=uS,r=t;for(let n=0;n<E1t;n++){r=t,e.push(r);for(let i=1;i<Q3e;i++)r=r.add(t),e.push(r);t=r.double()}return e},q0t=void 0,M0t=(e,t)=>{let r=t.negate();return e?r:t},Fxr=e=>{let t=q0t||(q0t=Hxr()),r=xw,n=uS,i=2**VZ,o=i,s=$Z(i-1),a=$Z(VZ);for(let c=0;c<E1t;c++){let u=Number(e&s);e>>=a,u>Q3e&&(u-=o,e+=1n);let d=c*Q3e,l=d,p=d+Math.abs(u)-1,f=c%2!==0,m=u<0;u===0?n=n.add(M0t(f,t[l])):r=r.add(M0t(m,t[p]))}return e!==0n&&Rs("invalid wnaf"),{p:r,f:n}};Wxr=e=>({oid:Uint8Array.from([6,9,96,134,72,1,101,3,4,2,e])}),Gxr=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){D0t(this),x1t(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){D0t(this),Vxr(e,this),this.finished=!0;let{buffer:t,view:r,blockLen:n,isLE:i}=this,{pos:o}=this;t[o++]=128,e9e(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()}},ha=Uint32Array.from([1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209]),jZ=BigInt(2**32-1),L0t=BigInt(32);z0t=(e,t,r)=>e>>>r,H0t=(e,t,r)=>e<<32-r|t>>>r,oS=(e,t,r)=>e>>>r|t<<32-r,sS=(e,t,r)=>e<<32-r|t>>>r,UZ=(e,t,r)=>e<<64-r|t>>>r-32,qZ=(e,t,r)=>e>>>r-32|t<<64-r;Zxr=(e,t,r)=>(e>>>0)+(t>>>0)+(r>>>0),Xxr=(e,t,r,n)=>t+r+n+(e/2**32|0)|0,Qxr=(e,t,r,n)=>(e>>>0)+(t>>>0)+(r>>>0)+(n>>>0),eAr=(e,t,r,n,i)=>t+r+n+i+(e/2**32|0)|0,tAr=(e,t,r,n,i)=>(e>>>0)+(t>>>0)+(r>>>0)+(n>>>0)+(i>>>0),rAr=(e,t,r,n,i,o)=>t+r+n+i+o+(e/2**32|0)|0,A1t=Yxr(["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))),nAr=A1t[0],iAr=A1t[1],C2=new Uint32Array(80),k2=new Uint32Array(80),oAr=class extends Gxr{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 E=0;E<16;E++,t+=4)C2[E]=e.getUint32(t),k2[E]=e.getUint32(t+=4);for(let E=16;E<80;E++){let _=C2[E-15]|0,v=k2[E-15]|0,x=oS(_,v,1)^oS(_,v,8)^z0t(_,v,7),A=sS(_,v,1)^sS(_,v,8)^H0t(_,v,7),S=C2[E-2]|0,C=k2[E-2]|0,I=oS(S,C,19)^UZ(S,C,61)^z0t(S,C,6),k=sS(S,C,19)^qZ(S,C,61)^H0t(S,C,6),q=Qxr(A,k,k2[E-7],k2[E-16]),j=eAr(q,x,I,C2[E-7],C2[E-16]);C2[E]=j|0,k2[E]=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 E=0;E<80;E++){let _=oS(d,l,14)^oS(d,l,18)^UZ(d,l,41),v=sS(d,l,14)^sS(d,l,18)^qZ(d,l,41),x=d&p^~d&m,A=l&f^~l&h,S=tAr(w,v,A,iAr[E],k2[E]),C=rAr(S,y,_,x,nAr[E],C2[E]),I=S|0,k=oS(r,n,28)^UZ(r,n,34)^UZ(r,n,39),q=sS(r,n,28)^qZ(r,n,34)^qZ(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}=yh(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 N=Zxr(I,q,U);r=Xxr(N,C,k,j),n=N|0}({h:r,l:n}=yh(this.Ah|0,this.Al|0,r|0,n|0)),{h:i,l:o}=yh(this.Bh|0,this.Bl|0,i|0,o|0),{h:s,l:a}=yh(this.Ch|0,this.Cl|0,s|0,a|0),{h:c,l:u}=yh(this.Dh|0,this.Dl|0,c|0,u|0),{h:d,l}=yh(this.Eh|0,this.El|0,d|0,l|0),{h:p,l:f}=yh(this.Fh|0,this.Fl|0,p|0,f|0),{h:m,l:h}=yh(this.Gh|0,this.Gl|0,m|0,h|0),{h:y,l:w}=yh(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(){e9e(C2,k2)}destroy(){this.destroyed=!0,e9e(this.buffer),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}},sAr=class extends oAr{Ah=ha[0]|0;Al=ha[1]|0;Bh=ha[2]|0;Bl=ha[3]|0;Ch=ha[4]|0;Cl=ha[5]|0;Dh=ha[6]|0;Dl=ha[7]|0;Eh=ha[8]|0;El=ha[9]|0;Fh=ha[10]|0;Fl=ha[11]|0;Gh=ha[12]|0;Gl=ha[13]|0;Hh=ha[14]|0;Hl=ha[15]|0;constructor(){super(64)}},aAr=Kxr(()=>new sAr,Wxr(3)),F0t=w1t;F0t.sha512||(F0t.sha512=e=>aAr(e));fAr="ws://localhost:9001/ws",mAr=3e4,T1t=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=ww(e.name),e.keyPath)try{this._keypair=lAr(e.keyPath)}catch{}this.options={name:this._name,url:e.url??fAr,relay:e.relay??"",autoReconnect:e.autoReconnect??!0,reconnectInterval:e.reconnectInterval??1e3,maxReconnectAttempts:e.maxReconnectAttempts??10,rpcTimeout:e.rpcTimeout??mAr,pingInterval:e.pingInterval??3e4,binding:e.binding??""},this.transport=new SEr({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=vxr(new Uint8Array(t));r&&(this._keypair={privateKey:r,publicKey:pxr(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=$0t(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 fa(String(n)))}})}disconnect(){for(let[,e]of this.pendingCalls)clearTimeout(e.timer),e.reject(new fa("Client disconnected"));this.pendingCalls.clear();for(let[,e]of this.pendingSend)e.reject(new fa("Client disconnected"));this.pendingSend.clear();for(let[,e]of this.pendingResolve)e.reject(new fa("Client disconnected"));this.pendingResolve.clear(),this.registerPromise&&(this.registerPromise.reject(new fa("Client disconnected")),this.registerPromise=null),this.transport.disconnect(),this._peerId=null,this.hasConnectedOnce=!1}async send(e,t,r,n){let i=ww(e),o=L3e();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 fa(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=ww(e),o=L3e(),s=Date.now(),a=Math.floor(Math.random()*2**32),c=new TextEncoder().encode(r),{signature:u,signatureInput:d}=await pAr(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 fa(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=ww(e),o=n?.correlationId??L3e(),s=n?.timeout??this.options.rpcTimeout;return new Promise((a,c)=>{let u=setTimeout(()=>{this.pendingCalls.delete(o),c(new TN(`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 fa(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=ww(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 fa(String(i)))}setTimeout(()=>{this.pendingResolve.has(t)&&(this.pendingResolve.delete(t),n(new TN(`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=q3e(e.code,e.message);this.registerPromise&&e.code==="register_failed"&&(this.registerPromise.reject(new kZ(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=$0t(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 h9e={};xi(h9e,{SUBWAY_PROTOCOL:()=>q1t,registerDirect:()=>PAr,resolveDirect:()=>IAr});function l9e(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 cl(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 p9e(e,t){return e<<3|t}function CN(e,t,r){e.push(p9e(t,2)),l9e(e,r.length);for(let n of r)e.push(n)}function hAr(e,t){let r=[];return CN(r,1,d9e.encode(e)),t&&t.length>0&&CN(r,2,d9e.encode(t)),Uint8Array.from(r)}function yAr(e,t,r){let n=[];return r!==0n&&(n.push(p9e(1,0)),l9e(n,r)),CN(n,2,hAr(e,t)),Uint8Array.from(n)}function gAr(e){let t=[];return CN(t,1,d9e.encode(e)),Uint8Array.from(t)}function bAr(e,t){let r=[];return t!==0n&&(r.push(p9e(1,0)),l9e(r,t)),CN(r,3,gAr(e)),Uint8Array.from(r)}function _Ar(e){let t=0,r={success:!1,error:""};for(;t<e.length;){let[n,i]=cl(e,t);t=i;let o=Number(n)>>3,s=Number(n)&7;if(o===1&&s===0){let[a,c]=cl(e,t);t=c,r.success=a!==0n}else if(o===2&&s===2){let[a,c]=cl(e,t),u=c,d=u+Number(a);r.error=j1t.decode(e.subarray(u,d)),t=d}else t=f9e(e,t,s)}return r}function vAr(e){let t=0,r={peerId:new Uint8Array(0),error:""};for(;t<e.length;){let[n,i]=cl(e,t);t=i;let o=Number(n)>>3,s=Number(n)&7;if(o===1&&s===2){let[a,c]=cl(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]=cl(e,t),u=c,d=u+Number(a);r.error=j1t.decode(e.subarray(u,d)),t=d}else t=f9e(e,t,s)}return r}function f9e(e,t,r){if(r===0)return cl(e,t)[1];if(r===2){let[n,i]=cl(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 U1t(e){let t=0,r={requestId:0n};for(;t<e.length;){let[n,i]=cl(e,t);t=i;let o=Number(n)>>3,s=Number(n)&7;if(o===1&&s===0){let[a,c]=cl(e,t);t=c,r.requestId=a}else if(o===13&&s===2){let[a,c]=cl(e,t),u=c,d=u+Number(a);r.registerNameResponse=_Ar(e.subarray(u,d)),t=d}else if(o===14&&s===2){let[a,c]=cl(e,t),u=c,d=u+Number(a);r.resolveNameResponse=vAr(e.subarray(u,d)),t=d}else t=f9e(e,t,s)}return r}function wAr(e){let t=new Uint8Array(4+e.length);return new DataView(t.buffer).setUint32(0,e.length,!1),t.set(e,4),t}function m9e(e){return new DataView(e.buffer,e.byteOffset,4).getUint32(0,!1)}function EAr(e){if(e.length<4)return{success:!1,error:"short reply (no length prefix)"};let t=m9e(e.subarray(0,4));return e.length<4+t?{success:!1,error:`truncated frame (have ${e.length-4}, need ${t})`}:U1t(e.subarray(4,4+t)).registerNameResponse??{success:!1,error:"reply carried no register_name_response"}}function xAr(e){if(e.length<4)return{peerId:new Uint8Array(0),error:"short reply (no length prefix)"};let t=m9e(e.subarray(0,4));return e.length<4+t?{peerId:new Uint8Array(0),error:`truncated frame (have ${e.length-4}, need ${t})`}:U1t(e.subarray(4,4+t)).resolveNameResponse??{peerId:new Uint8Array(0),error:"reply carried no resolve_name_response"}}function u9e(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 TAr(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>P1t)throw new Error("subway: reply exceeded max size");if(n<0&&r>=4&&(n=4+m9e(u9e(t).subarray(0,4)),n>P1t))throw new Error("subway: declared frame exceeds max size");if(n>=0&&r>=n)return u9e(t).subarray(0,n)}return u9e(t)}async function M1t(e){return(0,I1t.createLibp2p)({...e?{privateKey:await(0,R1t.generateKeyPairFromSeed)("Ed25519",e)}:{},transports:[(0,O1t.tcp)()],connectionEncrypters:[(0,C1t.noise)()],streamMuxers:[(0,k1t.yamux)()],connectionGater:{denyDialMultiaddr:async()=>!1}})}async function D1t(e,t,r){let n=await e.dialProtocol((0,N1t.multiaddr)(t),q1t,{signal:AbortSignal.timeout(AAr)});n.send(wAr(r));let i;return Promise.race([TAr(n),new Promise((o,s)=>{i=setTimeout(()=>s(new Error("subway: request timed out")),SAr)})]).finally(()=>clearTimeout(i))}async function PAr(e){let t=await M1t(e.seed);try{let r=await D1t(t,e.relayMultiaddr,yAr(e.name,e.binding,e.requestId??1n)),n=EAr(r);return{success:n.success,error:n.error,peerId:t.peerId.toString()}}finally{await t.stop()}}async function IAr(e){let t=await M1t(e.seed);try{let r=await D1t(t,e.relayMultiaddr,bAr(e.name,e.requestId??1n)),n=xAr(r);return n.peerId.length===0?{found:!1,peerId:"",error:n.error||"name not found"}:{found:!0,peerId:(0,B1t.toString)(n.peerId,"base58btc"),error:""}}finally{await t.stop()}}var I1t,O1t,C1t,k1t,R1t,N1t,B1t,d9e,j1t,q1t,AAr,SAr,P1t,y9e=P(()=>{"use strict";D3e();I1t=require("libp2p"),O1t=require("@libp2p/tcp"),C1t=require("@chainsafe/libp2p-noise"),k1t=require("@chainsafe/libp2p-yamux"),R1t=require("@libp2p/crypto/keys"),N1t=require("@multiformats/multiaddr"),B1t=require("uint8arrays/to-string"),d9e=new TextEncoder,j1t=new TextDecoder;q1t="/subway/p2p/1.0.0",AAr=15e3,SAr=15e3,P1t=1<<20});var BN={};xi(BN,{DEFAULT_VISA_RELAY_MULTIADDR:()=>z1t,MESH:()=>ro,RELAY_URL:()=>RN,connectOrThrow:()=>pS,ensureMailbox:()=>O9e,isSubwayEnabled:()=>E9e,listRegistered:()=>I9e,loadBindingFor:()=>S9e,loadRegistry:()=>Sw,makeClient:()=>lS,maybeMintVisaBinding:()=>F1t,meshName:()=>Np,pairedVisaBinding:()=>$1t,readInbox:()=>kAr,registerName:()=>NN,resolveActingName:()=>ZZ,resolveMeshName:()=>T9e,seedSubwayKeyFromTapAgent:()=>H1t,sendMessage:()=>P9e,sendVia:()=>RAr,subwayKeyPath:()=>YZ,visaRelayMultiaddr:()=>w9e});function w9e(e=process.env){return e.SUBWAY_RELAY_MULTIADDR??z1t}function Np(e){return e.includes(".")?e:`${e}.${ro}`}function E9e(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 A9e(){vo.mkdirSync(x9e,{recursive:!0,mode:448})}function OAr(e){return e.replace(/[^a-zA-Z0-9_.-]/g,"_")}function YZ(e){return dS.join(x9e,`${OAr(e)}.key`)}function Sw(){if(!vo.existsSync(v9e))return{};try{return JSON.parse(vo.readFileSync(v9e,"utf8"))}catch{return{}}}function b9e(e){A9e(),vo.writeFileSync(v9e,JSON.stringify(e,null,2),{mode:384})}function _9e(){try{return kN.userInfo().username}catch{return"local"}}function H1t(e){if(vo.existsSync(e)||!vo.existsSync(g9e))return null;let t=vo.readdirSync(g9e).filter(n=>n.endsWith(".json"));if(t.length===0)return null;let r=t.map(n=>dS.join(g9e,n)).sort((n,i)=>vo.statSync(i).mtimeMs-vo.statSync(n).mtimeMs)[0];try{let n=JSON.parse(vo.readFileSync(r,"utf8"));if(!n.private_key_jwk)return null;let i=YS(n.private_key_jwk);return A9e(),vo.writeFileSync(e,Buffer.from(i),{mode:384}),n.agent_id??null}catch{return null}}function lS(e,t={}){return new T1t({name:Np(e),url:RN,keyPath:YZ(e),autoReconnect:t.autoReconnect??!1,binding:t.binding})}function S9e(e){if(ro!=="visa")return;let t=Sw()[e];if(t?.binding&&!(t.bindingExpiresAt&&Date.parse(t.bindingExpiresAt)<=Date.now()))return t.binding}async function pS(e,t=15e3){await Promise.race([e.connect(),new Promise((r,n)=>setTimeout(()=>n(new Error(`Subway relay connect timed out after ${t}ms (${RN})`)),t))])}function ZZ(e){if(e)return e;let t=Object.keys(Sw());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 F1t(e){if(ro!=="visa")return null;let t=process.env.VISA_CLI_API_KEY?.trim();if(!t)throw new r0("No enrolled V4 agent or Visa Key is available for the trusted .visa mesh.","no_key");try{return await jQ({authUrl:ba(),apiKey:t,seed:oj(YZ(e)),name:Np(e)})}catch(r){if(r instanceof r0)throw r;return console.warn(`[subway] Visa binding not minted: ${r instanceof Error?r.message:String(r)}`),null}}function $1t(e=Date.now()){let t=C9e();if(!t?.binding_jwt)return null;let r=jN(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 NN(e){let t=YZ(e),r=H1t(t),n=Np(e);ro==="visa"&&!vo.existsSync(t)&&(A9e(),vo.writeFileSync(t,(0,L1t.randomBytes)(32),{mode:384}));let i=ro==="visa"?$1t():null,o,s={};if(i)o=i.binding,s={binding:i.binding,bindingExpiresAt:i.bindingExpiresAt};else{let u=await F1t(e);u&&(o=u.binding,s={binding:u.binding,bindingExpiresAt:new Date(Date.now()+u.expires_in*1e3).toISOString()})}let a=ro==="visa"?w9e():process.env.SUBWAY_RELAY_MULTIADDR;if(ro==="visa"&&a){let{registerDirect:u}=await Promise.resolve().then(()=>(y9e(),h9e)),d=await u({relayMultiaddr:a,seed:oj(t),name:n,binding:o});if(!d.success)throw new Error(`.visa relay admission failed: ${d.error||"unknown"}`);let l=Sw();return l[e]={relayName:n,mesh:ro,peerId:d.peerId,owner:_9e(),tapAgentId:r,registeredAt:new Date().toISOString(),...s},b9e(l),{relayName:n,mesh:ro,peerId:d.peerId,tapAgentId:r,...o?{binding:o}:{}}}if(ro==="visa"&&!process.env.SUBWAY_RELAY){let u=Sw();return u[e]={relayName:n,mesh:ro,peerId:null,owner:_9e(),tapAgentId:r,registeredAt:new Date().toISOString(),...s},b9e(u),{relayName:n,mesh:ro,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=lS(e,{autoReconnect:!1,binding:o});try{await pS(c);let u=Sw();return u[e]={relayName:n,mesh:ro,peerId:c.peerId,owner:_9e(),tapAgentId:r,registeredAt:new Date().toISOString(),...s},b9e(u),{relayName:n,mesh:ro,peerId:c.peerId,tapAgentId:r,...o?{binding:o}:{}}}finally{c.disconnect()}}async function T9e(e){let t=Np(e),r=ro==="visa"?w9e():process.env.SUBWAY_RELAY_MULTIADDR;if(ro==="visa"&&r){let{resolveDirect:n}=await Promise.resolve().then(()=>(y9e(),h9e)),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 P9e(e,t,r){let n=lS(e,{autoReconnect:!1,binding:S9e(e)});try{await pS(n);let i=Np(t);return await n.sendSigned(i,"chat",r),{to:i,as:Np(e)}}finally{n.disconnect()}}function I9e(){let e=Sw();return Object.entries(e).map(([t,r])=>({name:t,...r}))}async function O9e(e){let t=JZ.get(e);if(t)return{relayName:Np(e),peerId:t.client.peerId};let r=lS(e,{autoReconnect:!0,binding:S9e(e)}),n=[];return r.onMessage(i=>{n.push({from:i.fromName,text:i.payload,ts:i.timestampMs,verified:!!i.verified}),n.length>CAr&&n.shift()}),JZ.set(e,{client:r,buffer:n}),await pS(r),{relayName:Np(e),peerId:r.peerId}}async function kAr(e,t=20,r=!1){await O9e(e);let n=JZ.get(e);if(!n)return[];let i=n.buffer.slice(-t);return r&&(n.buffer.length=0),i}async function RAr(e,t,r){await O9e(e);let n=JZ.get(e);if(!n)throw new Error(`mailbox for ${e} unavailable`);let i=Np(t);return await n.client.sendSigned(i,"chat",r),{to:i,as:Np(e)}}var vo,kN,dS,L1t,ro,z1t,RN,x9e,v9e,g9e,JZ,CAr,Tw=P(()=>{"use strict";c9e();n_();vo=ve(require("fs")),kN=ve(require("os")),dS=ve(require("path")),L1t=require("crypto");Z2();f4();UN();ro=process.env.SUBWAY_MESH??"relay",z1t="/dns4/subway-relay-visa.fly.dev/tcp/9100/p2p/12D3KooWM2q6SXgKFxj5wvnJ7gTD4XPjhvc5tHVVjDBrZRnJ3CKU";RN=process.env.SUBWAY_RELAY??"wss://relay.subway.dev/ws";x9e=dS.join(kN.homedir(),".visa-cli","subway"),v9e=dS.join(x9e,"registry.json"),g9e=dS.join(kN.homedir(),".visa-cli","agents");JZ=new Map,CAr=200});var G1t={};xi(G1t,{PAIRING_DIR:()=>mS,cancelPairing:()=>N9e,claimPairing:()=>nX,generateWalletCredential:()=>hN,getPairingStatus:()=>rX,initiatePairing:()=>tX,latestPendingHumanPairing:()=>eX,loadPairingMailbox:()=>K1t,pairingFilePath:()=>QZ,pollAndActivatePairing:()=>DN,readPendingPairing:()=>qN,registerOnVisaMeshIfEnabled:()=>XZ,removePendingPairing:()=>hS,verifyPairing:()=>MN,writePendingPairing:()=>R9e});async function XZ(e){if(process.env.SUBWAY_MESH!=="visa")return!1;try{return await NN(e),!0}catch(t){return ke.warn("subway:pairing-auto-register-failed",{name:e,mesh:"visa",error:t instanceof Error?t.message:String(t)}),!1}}function K1t(e=process.env.VISA_V4_HOME||fS.join(k9e.homedir(),".visa-v4")){try{let t=Qc.readFileSync(fS.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 QZ(e,t,r=mS){return fS.join(r,`${e}.${t}.json`)}function R9e(e,t=mS){Qc.mkdirSync(t,{recursive:!0,mode:448}),Qc.writeFileSync(QZ(e.pairingId,e.role,t),JSON.stringify(e,null,2),{mode:384})}function hS(e,t,r=mS){Qc.rmSync(QZ(e,t,r),{force:!0})}function qN(e,t,r=mS){try{let n=JSON.parse(Qc.readFileSync(QZ(e,t,r),"utf8"));return n?.pairingId===e&&n.role===t?n:null}catch{return null}}function eX(e=mS){return Qc.existsSync(e)?Qc.readdirSync(e).filter(r=>r.endsWith(".human.json")).map(r=>{try{return JSON.parse(Qc.readFileSync(fS.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 Pw(e,t,r){let n=await r(e,{...t,headers:{"X-Source":"cli","X-Visa-CLI-Version":V1t,...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 tX(e={}){let t=(e.authUrl??ba()).replace(/\/+$/,""),r=dSe(),n=K1t(),{body:i}=await Pw(`${t}/v4/agent-pairings`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cliChallenge:lSe(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 R9e(o,e.pairingDir),o}async function MN(e){let{pairing:t}=e,{body:r}=await Pw(`${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 rX(e){let t=(e.authUrl??ba()).replace(/\/+$/,""),{body:r}=await Pw(`${t}/v4/agent-pairings/${encodeURIComponent(e.pairingId)}`,{method:"GET",cache:"no-store"},e.fetchImpl??fetch);return r}function W1t(e,t){return Buffer.from(d4(e,Buffer.from(t,"utf8"))).toString("base64url")}async function nX(e){let t=(e.authUrl??ba()).replace(/\/+$/,""),r=e.fetchImpl??fetch,n=await rX({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=rj();i=m.secretKey,s=l4(i),o=jh(m.publicKey)}let a=p4(o),c=hN(),u=pSe(),d={runtime:e.runtime,contextLabel:e.contextLabel,platform:`${process.platform}/${process.arch}`,cliVersion:V1t},l=W1t(i,fSe({pairingId:e.pairingId,serverNonce:n.serverNonce,claimTokenHash:NQ(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()};R9e(p,e.pairingDir);let{body:f}=await Pw(`${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!==nj(e.pairingId,u))throw new Error("pairing server returned a mismatched verification code");return{pending:p,verificationCode:f.verificationCode}}async function DN(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 Pw(`${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=EZ(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))||hSe(s.artifacts)!==s.artifactHash)throw new Error("pairing artifact integrity check failed");let f=W1t(Buffer.from(e.pending.privateKeyJwk.d,"base64url"),mSe({pairingId:e.pending.pairingId,agentJkt:e.pending.agentJkt,termsHash:c.termsHash,artifactHash:s.artifactHash}));if((await Pw(`${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 wZ({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}:{}}),j9e(h,e.agentDir),await XZ(u),hS(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 N9e(e){let{pairing:t}=e,{body:r}=await Pw(`${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"&&hS(t.pairingId,"human",e.pairingDir),r}var Qc,k9e,fS,V1t,mS,B9e=P(()=>{"use strict";Qc=ve(require("node:fs")),k9e=ve(require("node:os")),fS=ve(require("node:path"));n_();f4();Tw();Z2();nu();xZ();UN();V1t="4.1.0-rc.37",mS=fS.join(k9e.homedir(),".visa-cli","pairings")});var rht={};xi(rht,{agentFilePath:()=>zN,agentFormatIsJson:()=>LN,attachAgentCommand:()=>L9e,claimOptsFromFlags:()=>M9e,decodeBindingClaims:()=>jN,enrollClaimEnvelope:()=>eht,isAgentCommandEnabled:()=>Q1t,isAgentRecord:()=>HN,listAgentFiles:()=>iX,newestAgentRecord:()=>C9e,readAgent:()=>D9e,resolveAgentByRef:()=>tht,writeAgent:()=>j9e});function HN(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 Q1t(){return!0}function LN(e){return e==="json"}function eht(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 M9e(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 U9e(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
  `}
@@ -20869,7 +20869,7 @@ ${n}
20869
20869
  `),LS(zS(),n+`
20870
20870
  `)}catch{}}function pxe(e){try{let t=SB();if(!t)return;let r=Math.max(Date.now(),t.renderedAt+1),n={...t,refreshFailedAt:r,refreshErrorReason:DS(e).slice(0,200)};LS(K2(),JSON.stringify(n)+`
20871
20871
  `)}catch{}}function V2(){try{br.unlinkSync(oxe())}catch{}}function SB(){let e=K2();if(!br.existsSync(e))return null;try{return JSON.parse(br.readFileSync(e,"utf-8"))}catch{return null}}function fxe(){return SB()?.status??null}function Qgt(){if(process.env.JEST_WORKER_ID)return;let e=oxe();try{if(br.mkdirSync(Lr.dirname(e),{recursive:!0}),!ibt(e))return;let t=process.argv[1]?Lr.resolve(process.argv[1]):"";if(!t){V2();return}let r=vB(),n=(process.env.VISA_CLI_HUD_THEME??"").toLowerCase().trim(),i=r==="no-color"||n==="light"||n==="dark"?{}:{VISA_CLI_HUD_THEME:r},o=(0,nxe.spawn)(process.execPath,[t,"shell-hud","refresh"],{detached:!0,stdio:"ignore",env:{...process.env,...i,VISA_CLI_SHELL_HUD_BACKGROUND:"1"}});o.once("error",V2),o.unref()}catch{V2()}}function DS(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 ebt=/^\u001B\[(?:0|38;2;\d{1,3};\d{1,3};\d{1,3}|38;5;\d{1,3})m$/;function tbt(e){let t=[],r=`__VISA_CLI_HUD_SGR_${(0,$X.randomBytes)(8).toString("hex")}_`,n=e.replace(/\u001B\[[0-?]*[ -/]*[@-~]/g,o=>{if(!ebt.test(o))return"";let s=`${r}${t.length}__`;return t.push(o),s}),i=new RegExp(`${r}(\\d+)__`,"g");return DS(n).replace(i,(o,s)=>t[Number(s)]??"")}var Xa={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 ru(e,t){return e.length===0||process.env.NO_COLOR||wB()?e:`${t}${e}${Xa.reset}`}function rxe(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function GX(){let e=W2.homedir();if(!e||!Lr.isAbsolute(e))throw new Error("unable to determine a valid home directory");return Lr.resolve(e)}function rbt(e){return e==="powershell"?"& visa-cli config shell-hud refresh":"visa-cli config shell-hud refresh"}function nbt(e){return e==="powershell"?"Get-Command visa-cli -ErrorAction SilentlyContinue -CommandType Application":"command -v visa-cli >/dev/null 2>&1"}function ibt(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<=Fgt)return!1;br.unlinkSync(e)}catch{}}finally{r!==void 0&&br.closeSync(r)}}return!1}function FX(e){return e instanceof Error?e.message:"unknown file system error"}function LS(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 obt=1440*60*1e3;function PB(e,t){xo.mkdirSync(ga.dirname(e),{recursive:!0});let r=`${e}.${process.pid}.${yxe.randomBytes(8).toString("hex")}.tmp`;try{xo.writeFileSync(r,JSON.stringify(t,null,2)+`
20872
- `),xo.renameSync(r,e)}catch(n){try{xo.unlinkSync(r)}catch{}throw n}}function mxe(e){return`'${e.replace(/'/g,"'\\''")}'`}var YX="# visa-cli-hud-v1";function IB(e,t){if(!e&&!t&&sbt())return`visa-cli config statusline ${YX}`;let r=e??process.execPath,n=t??process.argv[1]??"",i=n?ga.resolve(n):"";return`${i?`${mxe(r)} ${mxe(i)} config statusline`:"visa-cli config statusline"} ${YX}`}function sbt(){try{return(0,gxe.execSync)("command -v visa-cli",{stdio:"ignore",timeout:1e3}),!0}catch{return!1}}function Th(e){return typeof e!="string"?!1:e.includes(YX)?!0:e.includes("visa-cli")&&e.includes("statusline")}function abt(){return"4.1.0-rc.36"}function OB(e){let t=ga.dirname(ga.resolve(e));return ga.basename(t)===".claude"?ga.dirname(t):bxe.homedir()}function TB(e,t){let r=ga.relative(t,e);return!r.startsWith("..")&&!ga.isAbsolute(r)?`~/${r}`:e}function cbt(e){return ga.join(OB(e),".visa-cli","hud-self-heal.json")}function ubt(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 JX(e,t,r){try{PB(e,{version:t,checkedAt:r})}catch{}}function dbt(e,t){return e&&typeof e=="object"&&!Array.isArray(e)?{...e,type:"command",command:t}:{type:"command",command:t}}function ZX(e,t={}){let r=t.now??Date.now(),n=t.version??abt(),i=t.stampPath??cbt(e),o=t.minIntervalMs??obt,s=[],a=!1,c=!1;if(!t.force&&ubt(i,n,r,o))return{checked:!1,statusLineRepaired:!1,shellHudRemoved:!1,messages:s,skippedReason:"recently checked"};try{if(!xo.existsSync(e))return JX(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(!Th(l))return JX(i,n,r),{checked:!0,statusLineRepaired:a,shellHudRemoved:c,messages:s};let p=(t.getCommand??IB)();if(l!==p&&(u.statusLine=dbt(d,p),PB(e,u),a=!0,s.push("Repaired Claude Code statusLine command to use the current Visa CLI.")),!CB()){let f=OB(e);if(G2(f).length>0){let h=Ym(null,f);if(h.removed&&h.rcPaths&&h.rcPaths.length>0){let y=h.rcPaths.map(w=>TB(w,f)).join(", ");c=!0,s.push(`Cleaned legacy shell-prompt HUD block from ${y}.`)}}}return JX(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
20872
+ `),xo.renameSync(r,e)}catch(n){try{xo.unlinkSync(r)}catch{}throw n}}function mxe(e){return`'${e.replace(/'/g,"'\\''")}'`}var YX="# visa-cli-hud-v1";function IB(e,t){if(!e&&!t&&sbt())return`visa-cli config statusline ${YX}`;let r=e??process.execPath,n=t??process.argv[1]??"",i=n?ga.resolve(n):"";return`${i?`${mxe(r)} ${mxe(i)} config statusline`:"visa-cli config statusline"} ${YX}`}function sbt(){try{return(0,gxe.execSync)("command -v visa-cli",{stdio:"ignore",timeout:1e3}),!0}catch{return!1}}function Th(e){return typeof e!="string"?!1:e.includes(YX)?!0:e.includes("visa-cli")&&e.includes("statusline")}function abt(){return"4.1.0-rc.37"}function OB(e){let t=ga.dirname(ga.resolve(e));return ga.basename(t)===".claude"?ga.dirname(t):bxe.homedir()}function TB(e,t){let r=ga.relative(t,e);return!r.startsWith("..")&&!ga.isAbsolute(r)?`~/${r}`:e}function cbt(e){return ga.join(OB(e),".visa-cli","hud-self-heal.json")}function ubt(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 JX(e,t,r){try{PB(e,{version:t,checkedAt:r})}catch{}}function dbt(e,t){return e&&typeof e=="object"&&!Array.isArray(e)?{...e,type:"command",command:t}:{type:"command",command:t}}function ZX(e,t={}){let r=t.now??Date.now(),n=t.version??abt(),i=t.stampPath??cbt(e),o=t.minIntervalMs??obt,s=[],a=!1,c=!1;if(!t.force&&ubt(i,n,r,o))return{checked:!1,statusLineRepaired:!1,shellHudRemoved:!1,messages:s,skippedReason:"recently checked"};try{if(!xo.existsSync(e))return JX(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(!Th(l))return JX(i,n,r),{checked:!0,statusLineRepaired:a,shellHudRemoved:c,messages:s};let p=(t.getCommand??IB)();if(l!==p&&(u.statusLine=dbt(d,p),PB(e,u),a=!0,s.push("Repaired Claude Code statusLine command to use the current Visa CLI.")),!CB()){let f=OB(e);if(G2(f).length>0){let h=Ym(null,f);if(h.removed&&h.rcPaths&&h.rcPaths.length>0){let y=h.rcPaths.map(w=>TB(w,f)).join(", ");c=!0,s.push(`Cleaned legacy shell-prompt HUD block from ${y}.`)}}}return JX(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
20873
20873
  `)}catch{}}return{checked:!0,statusLineRepaired:a,shellHudRemoved:c,messages:s}}}function lbt(e,t){let r=OB(t),n=G2(r);if(n.length===0)return e;let i=n.map(o=>TB(o,r)).join(", ");return`${e}
20874
20874
  Note: a shell-prompt HUD block was detected in ${i}. If it is unintended, remove it with: visa-cli config hud disable shell`}function CB(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 hxe(e,t){let r=OB(t),n=G2(r);if(n.length===0)return e;let i=n.map(s=>TB(s,r)).join(", ");if(CB())return`${e}
20875
20875
  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=Ym(null,r);if(o.removed&&o.rcPaths&&o.rcPaths.length>0){let s=o.rcPaths.map(a=>TB(a,r)).join(", ");return`${e}
@@ -20888,10 +20888,10 @@ ${a}`}function _bt(e){if(typeof e!="number"||e<=0)return"";let r=(e>1e12?e:e*1e3
20888
20888
  `)}var Gxe="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 Obt(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 Jxe(e,t={}){let r=[...Ibt().split(`
20889
20889
  `),"","Visa Key active","Scoped agent spend credential ready for apps and agents","",...Obt([["Key",e.key],["Label",e.label],["Owner",e.owner],["Daily cap",`${eQ(e.daily_cap_cents)}/day`],["Total cap",Kxe(e.total_cap_cents)],["Allowed tools",Wxe(e.allowed_tools)]]),"","Guardrails",`- Spend: ${eQ(e.daily_cap_cents)}/day, ${Kxe(e.total_cap_cents)} total`,`- Tools: ${Wxe(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("",Gxe,`Server warning: ${e.biometric_warning}`):e.biometric_enabled&&r.push("",Gxe),`${r.join(`
20890
20890
  `)}
20891
- `}function Yxe(e){return e.json===!0||e.isTTY!==!0}function tQ(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 rQ(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 Zxe(e,t){let r=tQ(e);if(r!==void 0)return r;if(Yxe(t))return 500}function Xxe(e,t){let r=rQ(e);if(r!==void 0)return r;if(Yxe(t)||t.recommendedCapsAccepted===!0)return 2500}async function Qxe(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 BB=class extends Error{code="ATTESTATION_KEY_DRIFT";hint;constructor(t,r){super(t),this.name="AttestationDriftError",this.hint=r}};var eAe={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 tAe(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&&eAe[r]?eAe[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 Cbt=/^(\d+)\.(\d+)\.(\d+)(?:-([0-9A-Za-z.-]+))?(?:\+[0-9A-Za-z.-]+)?$/;function nAe(e,t){let r=rAe(e),n=rAe(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:kbt(r.pre,n.pre)>0}function rAe(e){if(typeof e!="string")return null;let r=e.trim().replace(/^v/,"").match(Cbt);return r?{main:[Number(r[1]),Number(r[2]),Number(r[3])],pre:r[4]??null}:null}function kbt(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 Ph(){return!!(iAe(process.env.VISA_CLI_NO_UPDATE_CHECK)||iAe(process.env.CI)||process.env.NODE_ENV==="test")}function iAe(e){if(e===void 0)return!1;let t=e.trim().toLowerCase();return!(t===""||t==="0"||t==="false"||t==="no"||t==="off")}Z2();var zB="4.1.0-rc.36",Vbt=/^vk_(?:live|test)_[A-Za-z0-9_-]{16,128}$/;function Kbt(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 Wbt="Visa CLI is temporarily unavailable. Try again, or report at https://github.com/Visa-Crypto-Labs/Visa-mono/issues if it persists.";function i4(e){return typeof e=="string"?e.trim():""}function Gbt(e){let t=e&&typeof e=="object"?e:{},r=i4(t.error)||i4(t.message);if(!r)return Wbt;let n=i4(t.error_code),i=[["surface",i4(t.disabled_surface)],["flag",i4(t.flag)],["correlation_id",i4(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 Jbt(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?Vbt.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(`
20891
+ `}function Yxe(e){return e.json===!0||e.isTTY!==!0}function tQ(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 rQ(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 Zxe(e,t){let r=tQ(e);if(r!==void 0)return r;if(Yxe(t))return 500}function Xxe(e,t){let r=rQ(e);if(r!==void 0)return r;if(Yxe(t)||t.recommendedCapsAccepted===!0)return 2500}async function Qxe(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 BB=class extends Error{code="ATTESTATION_KEY_DRIFT";hint;constructor(t,r){super(t),this.name="AttestationDriftError",this.hint=r}};var eAe={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 tAe(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&&eAe[r]?eAe[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 Cbt=/^(\d+)\.(\d+)\.(\d+)(?:-([0-9A-Za-z.-]+))?(?:\+[0-9A-Za-z.-]+)?$/;function nAe(e,t){let r=rAe(e),n=rAe(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:kbt(r.pre,n.pre)>0}function rAe(e){if(typeof e!="string")return null;let r=e.trim().replace(/^v/,"").match(Cbt);return r?{main:[Number(r[1]),Number(r[2]),Number(r[3])],pre:r[4]??null}:null}function kbt(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 Ph(){return!!(iAe(process.env.VISA_CLI_NO_UPDATE_CHECK)||iAe(process.env.CI)||process.env.NODE_ENV==="test")}function iAe(e){if(e===void 0)return!1;let t=e.trim().toLowerCase();return!(t===""||t==="0"||t==="false"||t==="no"||t==="off")}Z2();var zB="4.1.0-rc.37",Vbt=/^vk_(?:live|test)_[A-Za-z0-9_-]{16,128}$/;function Kbt(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 Wbt="Visa CLI is temporarily unavailable. Try again, or report at https://github.com/Visa-Crypto-Labs/Visa-mono/issues if it persists.";function i4(e){return typeof e=="string"?e.trim():""}function Gbt(e){let t=e&&typeof e=="object"?e:{},r=i4(t.error)||i4(t.message);if(!r)return Wbt;let n=i4(t.error_code),i=[["surface",i4(t.disabled_surface)],["flag",i4(t.flag)],["correlation_id",i4(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 Jbt(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?Vbt.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(`
20892
20892
  `)}var Ch=class{constructor(t){this.getSessionToken=t;this.baseUrl=ba()}getSessionToken;baseUrl;lastSignals={};parseServerSignals(t){if(this.lastSignals={},!Ph()){let n=t.headers.get("X-Latest-Version");n&&nAe(n,zB)&&(this.lastSignals.updateAvailable={currentVersion:zB,latestVersion:n})}let r=t.headers.get("X-Feedback-Prompt");if(r)try{this.lastSignals.feedbackPrompt=JSON.parse(r)}catch{}}getClientVersion(){return zB}throwIfAttestationDrift(t){if(t?.error_code==="ATTESTATION_KEY_DRIFT")throw new BB(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(Gbt(r))}async request(t,r,n,i,o){let s=await this.getSessionToken();if(!s)throw new Error(Jbt());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 Qxe(`${this.baseUrl}${r}`,{method:t,headers:{...a,"X-Visa-CLI-Version":zB,"X-Source":"cli"},body:n?JSON.stringify(n):void 0,timeoutMs:i})}catch(d){throw new Error(tAe(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),Kbt(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)}};fQ();var mQ=require("child_process"),AAe=require("util"),SAe=ve(require("crypto")),Jr=ve(require("fs")),TAe=ve(require("os")),js=ve(require("path"));nu();cB();H2();var Qm=(0,AAe.promisify)(mQ.execFile),Qbt=6e4,e2t=()=>process.platform==="darwin",o4=()=>process.platform==="win32",kh=js.join(TAe.homedir(),".visa-mcp","bin"),X2=js.join(kh,"Visa CLI"),Xm=js.join(kh,"visa-keychain-win.exe"),PAe=js.join(__dirname,"..","native"),hAe="6",yAe=js.join(kh,"visa-keychain.version"),gAe=js.join(kh,"visa-keychain.sha256"),bAe="1",_Ae=js.join(kh,"visa-keychain-win.version"),vAe=js.join(kh,"visa-keychain-win.sha256"),IAe=[js.join(PAe,"bin","win32-x64","visa-keychain-win.exe"),js.resolve(__dirname,"..","..","native","bin","win32-x64","visa-keychain-win.exe"),js.resolve(__dirname,"..","native","bin","win32-x64","visa-keychain-win.exe")];function HB(e){let t=Jr.readFileSync(e);return SAe.createHash("sha256").update(t).digest("hex")}function t2t(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 wAe(e){let t=typeof e?.message=="string"?e.message:"";return e?.code==="ETIMEDOUT"||e?.killed===!0||/timed out|timeout/i.test(t)}function EAe(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 OAe(){try{if(Jr.readFileSync(yAe,"utf-8").trim()===hAe&&Jr.existsSync(X2)){let n=Jr.readFileSync(gAe,"utf-8").trim();if(HB(X2)!==n)ke.warn("binary:hash-mismatch",{message:"Binary hash mismatch \u2014 possible tampering detected. Recompiling from source."}),Jr.unlinkSync(X2);else return X2}}catch{}let e=js.join(PAe,"visa-keychain.m");if(Jr.existsSync(e)||(e=js.resolve(__dirname,"..","..","native","visa-keychain.m")),Jr.existsSync(e)||(e=js.resolve(__dirname,"..","native","visa-keychain.m")),!Jr.existsSync(e))throw new Error("visa-keychain.m source not found. Reinstall Visa CLI.");Jr.mkdirSync(kh,{recursive:!0,mode:448});try{await Qm("clang",["-framework","Security","-framework","LocalAuthentication","-framework","Foundation","-framework","AppKit","-o",X2,e],{timeout:3e4})}catch(r){throw r.code==="ENOENT"?new Error("Xcode Command Line Tools required. Install: xcode-select --install"):r}let t=HB(X2);return Jr.writeFileSync(gAe,t,{mode:384}),Jr.writeFileSync(yAe,hAe,{mode:384}),X2}function CAe(){for(let e of IAe)if(Jr.existsSync(e))return e;return null}async function VB(){try{if(Jr.readFileSync(_Ae,"utf-8").trim()===bAe&&Jr.existsSync(Xm)){let n=Jr.readFileSync(vAe,"utf-8").trim();if(HB(Xm)!==n)ke.warn("binary:hash-mismatch:win32",{message:"Windows binary hash mismatch. Redeploying."}),Jr.unlinkSync(Xm);else return Xm}}catch{}let e=CAe();if(!e)throw new Error(`visa-keychain-win.exe not found in package. Reinstall @visa/cli.
20893
- If building from source, run native/build-win.bat first.`);Jr.mkdirSync(kh,{recursive:!0}),Jr.copyFileSync(e,Xm);let t=HB(Xm);return Jr.writeFileSync(vAe,t,{mode:384}),Jr.writeFileSync(_Ae,bAe,{mode:384}),Xm}async function r2t(){return o4()?VB():OAe()}var FB="visa-cli",$B="attestation-key";async function n2t(e){if(!await zp())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 Qm("security",["delete-generic-password","-s",FB,"-a",$B],{timeout:5e3})}catch{}try{await Qm("security",["add-generic-password","-s",FB,"-a",$B,"-w",e],{timeout:5e3})}catch(t){throw new Error(`Could not store the Touch ID key in the macOS Keychain (${i2t(t)}).`)}}function i2t(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 o2t(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 s2t(){if(!await zp())return{key:null,status:{state:"denied",usable:!1,message:"macOS Keychain is unavailable in this environment (no default keychain)."}};try{let{stdout:e}=await Qm("security",["find-generic-password","-s",FB,"-a",$B,"-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:o2t(e)}}}async function a2t(){let e=await s2t();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 kAe(e){let t=await r2t(),r;try{r=(await Qm(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 t2t(r)}var xAe=!1;function c2t(){if(!o4())return!1;try{return Jr.existsSync(Xm)||CAe()!==null?!0:(xAe||(xAe=!0,ke.warn("binary:missing:win32",{message:"visa-keychain-win.exe not found; Windows Hello attestation unavailable on this install.",binPath:Xm,searchedPrebuiltPaths:IAe})),!1)}catch{return!1}}function Rh(){return BS()||e2t()?!0:o4()?c2t():!1}async function RAe(){if(o4()){let i=await VB(),{stdout:o}=await Qm(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 kAe(["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 n2t(r),n}async function hQ(e,t,r={}){if(BS())return Promise.resolve(UEe());let n=r.timeoutMs??Qbt;if(o4()){let a=await VB(),c=["sign",e];t&&c.push(t);let u;try{u=(await Qm(a,c,{timeout:n})).stdout}catch(l){throw wAe(l)?EAe(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 a2t();if(!i)throw new Error("Attestation key not found. Run setup to generate a new key.");let o=await OAe(),s=["sign",e];return t&&s.push(t),new Promise((a,c)=>{let u=(0,mQ.execFile)(o,s,{timeout:n},(d,l)=>{let p=(l||"").trim();if(d){p.startsWith("ERROR:")?c(new Error(p.slice(6))):wAe(d)?c(EAe(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 KB(){if(o4()){try{let e=await VB();await Qm(e,["delete-key"],{timeout:1e4})}catch{}return}if(await zp())try{await Qm("security",["delete-generic-password","-s",FB,"-a",$B],{timeout:5e3})}catch{}try{await kAe(["delete-key"])}catch{}}H2();nu();bB();_3e();var yyt=require("child_process"),wX=ve(require("fs")),EX=ve(require("os")),gyt=ve(require("path"));Z2();cB();var Fmt="4.1.0-rc.36";function v3e(e,t){return t?{kind:"env",var:e}:{kind:"default"}}function Z9r(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=lQ(t);return i!==void 0?{value:i,source:{kind:"settings"}}:{value:r!=="opt-in",source:{kind:"default"}}}function eS(e){return e==null?"\u2014":e?"yes":"no"}async function wN(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=dQ("auth.serverUrl"),s=ba(),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:eS(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=Z9r("VISA_SUPPRESS_BROWSER","ui.suppressBrowser","opt-in");n.push({key:"ui.suppressBrowser",value:c.value,formatted:eS(c.value),source:c.source,hint:"Persist with `visa-cli config set ui.suppressBrowser true` to stop auto-opening result URLs."});let u=Ph(),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:eS(!u),source:d}),n.push({key:"client.version",value:Fmt,formatted:Fmt,source:{kind:"default"}}),e.includeDev){let l=process.env.VISA_MOCK_KEYCHAIN,p=xh();n.push({key:"dev.mockKeychain",value:p,formatted:eS(p),source:v3e("VISA_MOCK_KEYCHAIN",!!l),hint:kX()});let f=process.env.VISA_MOCK_TOUCHID,m=BS();n.push({key:"dev.mockTouchid",value:m,formatted:eS(m),source:v3e("VISA_MOCK_TOUCHID",!!f),hint:kX()});let h=process.env.VISA_CLI_DEBUG;n.push({key:"dev.debug",value:!!h,formatted:eS(!!h),source:v3e("VISA_CLI_DEBUG",!!h)})}return{entries:n,statusError:r}}function X9r(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 $mt(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}(${X9r(o.source)})`),t.verbose&&o.hint&&i.push(` ${"\u21B3".padStart(r)} ${o.hint}`)}return i.join(`
20894
- `)}function Vmt(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 K9e=require("node:os"),FN=require("node:path"),$N=require("node:fs/promises"),uht=require("node:fs"),dht=require("node:url"),lht=require("node:crypto");nu();var Q9r=new Set(["USD","USDC","EUR","GBP","CAD","AUD"]);function tS(e,t){let r=t.toUpperCase();return!Number.isFinite(e)||!Q9r.has(r)?`${e} ${r} (minor units)`:`${(e/100).toFixed(2)} ${r}`}var lh=class extends Error{constructor(t){super(t),this.name="PayValidationError"}};function w3e(e){let t;try{t=new URL(e)}catch{throw new lh(`Invalid URL: ${e}. Expected a fully-qualified http(s) URL.`)}if(t.protocol!=="http:"&&t.protocol!=="https:")throw new lh(`Unsupported URL scheme "${t.protocol}". Only http and https are allowed.`);return t}nu();var eEr={ucp_checkout_handoff:"checkout_agent_access",pay_merchant:"checkout_agent_access",pay_merchant_status:"checkout_agent_access",start_card_mandate:"checkout_agent_access"},tEr=300*1e3,E3e={},Kmt=0,EN=null;function rEr(){return EN||(EN=(async()=>{try{let e=await Rp.getFeatureFlags();E3e=e&&e.flags||{},Kmt=Date.now()}catch(e){E3e={},ke.warn("feature-flags:fetch-failed",{error:e instanceof Error?e.message:String(e)})}finally{EN=null}})(),EN)}async function AZ(){Date.now()-Kmt<tEr||await rEr()}function rS(e){let t=eEr[e];return t?E3e[t]!==!0:!1}var Wmt=require("node:crypto"),xN=class extends Error{constructor(r){super(`Approval handoff already exists with different inputs for review ${r}`);this.reviewId=r;this.name="PayMerchantApprovalConflictError"}reviewId},SZ=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 xN(t.reviewId);return await this.waitUntilQueryable(n.ready),this.snapshot(n)}let i=()=>{},o=new Promise(u=>{i=u}),s=(this.options.idFactory??Wmt.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 pht(e){return[(0,FN.join)(e,"checkout-engine","index.js"),(0,FN.join)(e,"..","checkout-engine","index.js")]}function KAr(e,t=uht.existsSync){return pht(e).find(r=>t(r))??null}var oX=null,fht=async()=>{if(oX)return oX;let e=KAr(__dirname);if(!e)throw new Error(`Cannot find module: the checkout engine was not packaged (looked in ${pht(__dirname).join(" and ")}).`);return oX=(await import((0,dht.pathToFileURL)(e).href)).createCliCheckoutEngine({cardDrawVerdict:await WAr(),cardMandateRegister:await GAr()}),oX};async function WAr(){let e=await Promise.resolve().then(()=>($9e(),F9e));return{loadCapability:()=>e.loadCardMandateCapability(),fetchVerdict:t=>e.fetchCardDrawVerdict(t)}}async function GAr(){let e=await Promise.resolve().then(()=>($9e(),F9e));return{loadCapability:()=>e.loadCardMandateCapability(),register:t=>e.registerCardMandate(t)}}async function W9e(){return rS("pay_merchant")?(await AZ(),rS("pay_merchant")):!1}var mht=(0,FN.join)((0,K9e.homedir)(),".visa-mcp","agent-credential.json"),hht=(0,FN.join)((0,K9e.homedir)(),".visa-mcp","contact.json"),yht=new SZ;function VN(e){return e.replace(/https?:\/\/[^\s"')\]]+/gi,t=>{try{return new URL(t).origin}catch{return"[url]"}}).slice(0,300)}var JAr=new Set(["USD","USDC","EUR","GBP","CAD","AUD"]);function ght(e){return JAr.has(e)?e:null}async function sX(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?VN(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:ght(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 cht(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?VN(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:ght(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 lh(`Invalid amount ${JSON.stringify(e)}. Expected a positive decimal like "5.00".`);return e}function bht(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=VN(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 _ht(e={},t={}){if(await(t.flagDisabled??W9e)())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??yht).get(n);return o?bht(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 vht(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:pQ()&&!process.env.VISA_VERIFY_WEB_URL?null:_l();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??W9e)())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??yht,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=w3e(e.url??"").toString(),c=V9e(e.amount)}catch(C){if(C instanceof lh)return{success:!1,message:C.message};throw C}let d=t.credentialPath??mht,l=t.contactPath??hht;try{await(0,$N.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,$N.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??fht,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=>Rp.emitTelemetry(C)),E=new URL(a).hostname,_=Math.round(Number(c)*100),v=Date.now();if(o==="review"){ke.info("pay_merchant:review",{host:E,currency:u});let C;try{C=await h.review(y)}catch(I){throw await sX({emitTelemetry:w,action:"review",merchantHost:E,amountMinor:_,currency:u,outcome:"engine-error",success:!1,errorMessage:I instanceof Error?I.message:String(I),startedAt:v}),I}return await sX({emitTelemetry:w,action:"review",merchantHost:E,amountMinor:_,currency:u,outcome:"reviewed",success:!0,startedAt:v}),{success:!0,action:"review",...C,message:`Review ${C.reviewId}: ${C.merchantHost} wants ${tS(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 x=f,A=t.allowSubmit??process.env.CHECKOUT_AGENT_ALLOW_SUBMIT==="1",S=async C=>{ke.info("pay_merchant:pay",{reviewId:x,submit:A,approvalMode:o==="authorize"?"handoff":"blocking"});let I;try{I=await h.pay({...y,reviewId:x,submit:A,...C?{onApprovalUrl:C}:{}})}catch(j){throw await sX({emitTelemetry:w,action:"pay",merchantHost:E,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 sX({emitTelemetry:w,action:"pay",merchantHost:E,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"?x: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:x,...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,lht.createHash)("sha256").update(JSON.stringify([x,a,c,u,A])).digest("hex");ke.info("pay_merchant:approval_handoff_started",{reviewId:x,merchantHost:E,currency:u,submit:A});try{let I=await s.start({reviewId:x,fingerprint:C,run:async k=>{try{let q=await S(j=>{ke.info("pay_merchant:approval_handoff_ready",{reviewId:x}),k(j)});return ke.info("pay_merchant:approval_handoff_completed",{reviewId:x,success:q.success===!0}),q}catch(q){throw ke.warn("pay_merchant:approval_handoff_failed",{reviewId:x,error:VN(q instanceof Error?q.message:String(q))}),q}}});return bht(I,"authorize")}catch(I){if(I instanceof xN)return ke.warn("pay_merchant:approval_handoff_conflict",{reviewId:x}),{success:!1,action:"authorize",reviewId:x,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 wht(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:_l();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??W9e)())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:w3e(e.url??"").toString(),c=V9e(e.ceiling??e.amount)}catch(A){if(A instanceof lh)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 lh)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??mht,p=t.contactPath??hht;try{await(0,$N.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,$N.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??fht,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),E=t.emitTelemetry??(A=>Rp.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?VN(A.message):String(A);return ke.warn("start_card_mandate:failed",{message:S}),await cht({emitTelemetry:E,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 x=v.registerFailed===!0;return x&&ke.warn("start_card_mandate:register_failed",{mandateId:v.mandateId,host:y}),await cht({emitTelemetry:E,merchantHost:y,ceilingMinor:w,currency:o,outcome:x?"created-register-failed":"created",success:!x,mandateId:v.mandateId,remainingMinor:v.remainingMinor,startedAt:_}),x?{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 ${tS(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 fyt=require("node:crypto");var uyt=require("node:crypto");var Dr={};xi(Dr,{BRAND:()=>wSr,DIRTY:()=>kw,EMPTY_PATH:()=>QAr,INVALID:()=>gt,NEVER:()=>ZSr,OK:()=>ya,ParseStatus:()=>Ns,Schema:()=>Lt,ZodAny:()=>U2,ZodArray:()=>wh,ZodBigInt:()=>Nw,ZodBoolean:()=>Bw,ZodBranded:()=>WN,ZodCatch:()=>Vw,ZodDate:()=>jw,ZodDefault:()=>$w,ZodDiscriminatedUnion:()=>uX,ZodEffects:()=>ll,ZodEnum:()=>Hw,ZodError:()=>eu,ZodFirstPartyTypeKind:()=>xt,ZodFunction:()=>lX,ZodIntersection:()=>Dw,ZodIssueCode:()=>ye,ZodLazy:()=>Lw,ZodLiteral:()=>zw,ZodMap:()=>wS,ZodNaN:()=>xS,ZodNativeEnum:()=>Fw,ZodNever:()=>Bp,ZodNull:()=>qw,ZodNullable:()=>Wm,ZodNumber:()=>Rw,ZodObject:()=>tu,ZodOptional:()=>ul,ZodParsedType:()=>Re,ZodPipeline:()=>GN,ZodPromise:()=>q2,ZodReadonly:()=>Kw,ZodRecord:()=>dX,ZodSchema:()=>Lt,ZodSet:()=>ES,ZodString:()=>j2,ZodSymbol:()=>_S,ZodTransformer:()=>ll,ZodTuple:()=>Km,ZodType:()=>Lt,ZodUndefined:()=>Uw,ZodUnion:()=>Mw,ZodUnknown:()=>vh,ZodVoid:()=>vS,addIssueToContext:()=>Se,any:()=>fl,array:()=>ue,bigint:()=>SSr,boolean:()=>pl,coerce:()=>Xu,custom:()=>Oht,date:()=>TSr,datetimeRegex:()=>Pht,defaultErrorMap:()=>bh,discriminatedUnion:()=>NSr,effect:()=>FSr,enum:()=>ml,function:()=>MSr,getErrorMap:()=>yS,getParsedType:()=>Vm,instanceof:()=>xSr,intersection:()=>BSr,isAborted:()=>aX,isAsync:()=>gS,isDirty:()=>cX,isValid:()=>B2,late:()=>ESr,lazy:()=>DSr,literal:()=>LSr,makeIssue:()=>KN,map:()=>USr,nan:()=>ASr,nativeEnum:()=>zSr,never:()=>CSr,null:()=>AS,nullable:()=>VSr,number:()=>Rr,object:()=>fe,objectUtil:()=>G9e,oboolean:()=>YSr,onumber:()=>JSr,optional:()=>$Sr,ostring:()=>GSr,pipeline:()=>WSr,preprocess:()=>KSr,promise:()=>HSr,quotelessJson:()=>YAr,record:()=>er,set:()=>qSr,setErrorMap:()=>XAr,strictObject:()=>RSr,string:()=>L,symbol:()=>PSr,transformer:()=>FSr,tuple:()=>jSr,undefined:()=>ISr,union:()=>SS,unknown:()=>OSr,util:()=>Qt,void:()=>kSr});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 G9e;(function(e){e.mergeShapes=(t,r)=>({...t,...r})})(G9e||(G9e={}));var Re=Qt.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),Vm=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"]),YAr=e=>JSON.stringify(e,null,2).replace(/"([^"]+)":/g,"$1:"),eu=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()}};eu.create=e=>new eu(e);var ZAr=(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}},bh=ZAr;var Eht=bh;function XAr(e){Eht=e}function yS(){return Eht}var KN=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}},QAr=[];function Se(e,t){let r=yS(),n=KN({issueData:t,data:e.data,path:e.path,errorMaps:[e.common.contextualErrorMap,e.schemaErrorMap,r,r===bh?void 0:bh].filter(i=>!!i)});e.common.issues.push(n)}var Ns=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"}),kw=e=>({status:"dirty",value:e}),ya=e=>({status:"valid",value:e}),aX=e=>e.status==="aborted",cX=e=>e.status==="dirty",B2=e=>e.status==="valid",gS=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 dl=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}},xht=(e,t)=>{if(B2(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 eu(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 Vm(t.data)}_getOrReturnCtx(t,r){return r||{common:t.parent.common,data:t.data,parsedType:Vm(t.data),schemaErrorMap:this._def.errorMap,path:t.path,parent:t.parent}}_processInputParams(t){return{status:new Ns,ctx:{common:t.parent.common,data:t.data,parsedType:Vm(t.data),schemaErrorMap:this._def.errorMap,path:t.path,parent:t.parent}}}_parseSync(t){let r=this._parse(t);if(gS(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:Vm(t)},i=this._parseSync({data:t,path:n.path,parent:n});return xht(n,i)}"~validate"(t){let r={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:Vm(t)};if(!this["~standard"].async)try{let n=this._parseSync({data:t,path:[],parent:r});return B2(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=>B2(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:Vm(t)},i=this._parse({data:t,path:n.path,parent:n}),o=await(gS(i)?i:Promise.resolve(i));return xht(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 ll({schema:this,typeName:xt.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 ul.create(this,this._def)}nullable(){return Wm.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return wh.create(this)}promise(){return q2.create(this,this._def)}or(t){return Mw.create([this,t],this._def)}and(t){return Dw.create(this,t,this._def)}transform(t){return new ll({...Ut(this._def),schema:this,typeName:xt.ZodEffects,effect:{type:"transform",transform:t}})}default(t){let r=typeof t=="function"?t:()=>t;return new $w({...Ut(this._def),innerType:this,defaultValue:r,typeName:xt.ZodDefault})}brand(){return new WN({typeName:xt.ZodBranded,type:this,...Ut(this._def)})}catch(t){let r=typeof t=="function"?t:()=>t;return new Vw({...Ut(this._def),innerType:this,catchValue:r,typeName:xt.ZodCatch})}describe(t){let r=this.constructor;return new r({...this._def,description:t})}pipe(t){return GN.create(this,t)}readonly(){return Kw.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},eSr=/^c[^\s-]{8,}$/i,tSr=/^[0-9a-z]+$/,rSr=/^[0-9A-HJKMNP-TV-Z]{26}$/i,nSr=/^[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,iSr=/^[a-z0-9_-]{21}$/i,oSr=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,sSr=/^[-+]?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)?)??$/,aSr=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,cSr="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",J9e,uSr=/^(?:(?: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])$/,dSr=/^(?:(?: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])$/,lSr=/^(([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]))$/,pSr=/^(([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])$/,fSr=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,mSr=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,Sht="((\\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])))",hSr=new RegExp(`^${Sht}$`);function Tht(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 ySr(e){return new RegExp(`^${Tht(e)}$`)}function Pht(e){let t=`${Sht}T${Tht(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 gSr(e,t){return!!((t==="v4"||!t)&&uSr.test(e)||(t==="v6"||!t)&&lSr.test(e))}function bSr(e,t){if(!oSr.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 _Sr(e,t){return!!((t==="v4"||!t)&&dSr.test(e)||(t==="v6"||!t)&&pSr.test(e))}var j2=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 Ns,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")aSr.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")J9e||(J9e=new RegExp(cSr,"u")),J9e.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")nSr.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")iSr.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")eSr.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")tSr.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")rSr.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"?Pht(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"?hSr.test(t.data)||(i=this._getOrReturnCtx(t,i),Se(i,{code:ye.invalid_string,validation:"date",message:o.message}),n.dirty()):o.kind==="time"?ySr(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"?sSr.test(t.data)||(i=this._getOrReturnCtx(t,i),Se(i,{validation:"duration",code:ye.invalid_string,message:o.message}),n.dirty()):o.kind==="ip"?gSr(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"?bSr(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"?_Sr(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"?fSr.test(t.data)||(i=this._getOrReturnCtx(t,i),Se(i,{validation:"base64",code:ye.invalid_string,message:o.message}),n.dirty()):o.kind==="base64url"?mSr.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}};j2.create=e=>new j2({checks:[],typeName:xt.ZodString,coerce:e?.coerce??!1,...Ut(e)});function vSr(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 Rw=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 Ns;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"?vSr(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)}};Rw.create=e=>new Rw({checks:[],typeName:xt.ZodNumber,coerce:e?.coerce||!1,...Ut(e)});var Nw=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 Ns;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}};Nw.create=e=>new Nw({checks:[],typeName:xt.ZodBigInt,coerce:e?.coerce??!1,...Ut(e)});var Bw=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 ya(t.data)}};Bw.create=e=>new Bw({typeName:xt.ZodBoolean,coerce:e?.coerce||!1,...Ut(e)});var jw=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 Ns,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}};jw.create=e=>new jw({checks:[],coerce:e?.coerce||!1,typeName:xt.ZodDate,...Ut(e)});var _S=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 ya(t.data)}};_S.create=e=>new _S({typeName:xt.ZodSymbol,...Ut(e)});var Uw=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 ya(t.data)}};Uw.create=e=>new Uw({typeName:xt.ZodUndefined,...Ut(e)});var qw=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 ya(t.data)}};qw.create=e=>new qw({typeName:xt.ZodNull,...Ut(e)});var U2=class extends Lt{constructor(){super(...arguments),this._any=!0}_parse(t){return ya(t.data)}};U2.create=e=>new U2({typeName:xt.ZodAny,...Ut(e)});var vh=class extends Lt{constructor(){super(...arguments),this._unknown=!0}_parse(t){return ya(t.data)}};vh.create=e=>new vh({typeName:xt.ZodUnknown,...Ut(e)});var Bp=class extends Lt{_parse(t){let r=this._getOrReturnCtx(t);return Se(r,{code:ye.invalid_type,expected:Re.never,received:r.parsedType}),gt}};Bp.create=e=>new Bp({typeName:xt.ZodNever,...Ut(e)});var vS=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 ya(t.data)}};vS.create=e=>new vS({typeName:xt.ZodVoid,...Ut(e)});var wh=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 dl(r,s,r.path,a)))).then(s=>Ns.mergeArray(n,s));let o=[...r.data].map((s,a)=>i.type._parseSync(new dl(r,s,r.path,a)));return Ns.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)}};wh.create=(e,t)=>new wh({type:e,minLength:null,maxLength:null,exactLength:null,typeName:xt.ZodArray,...Ut(t)});function bS(e){if(e instanceof tu){let t={};for(let r in e.shape){let n=e.shape[r];t[r]=ul.create(bS(n))}return new tu({...e._def,shape:()=>t})}else return e instanceof wh?new wh({...e._def,type:bS(e.element)}):e instanceof ul?ul.create(bS(e.unwrap())):e instanceof Wm?Wm.create(bS(e.unwrap())):e instanceof Km?Km.create(e.items.map(t=>bS(t))):e}var tu=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 Bp&&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 dl(i,l,i.path,u)),alwaysSet:u in i.data})}if(this._def.catchall instanceof Bp){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 dl(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=>Ns.mergeObjectSync(n,u)):Ns.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:xt.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 bS(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 ul;)o=o._def.innerType;r[n]=o}return new e({...this._def,shape:()=>r})}keyof(){return Iht(Qt.objectKeys(this.shape))}};tu.create=(e,t)=>new tu({shape:()=>e,unknownKeys:"strip",catchall:Bp.create(),typeName:xt.ZodObject,...Ut(t)});tu.strictCreate=(e,t)=>new tu({shape:()=>e,unknownKeys:"strict",catchall:Bp.create(),typeName:xt.ZodObject,...Ut(t)});tu.lazycreate=(e,t)=>new tu({shape:e,unknownKeys:"strip",catchall:Bp.create(),typeName:xt.ZodObject,...Ut(t)});var Mw=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 eu(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 eu(c));return Se(r,{code:ye.invalid_union,unionErrors:a}),gt}}get options(){return this._def.options}};Mw.create=(e,t)=>new Mw({options:e,typeName:xt.ZodUnion,...Ut(t)});var _h=e=>e instanceof Lw?_h(e.schema):e instanceof ll?_h(e.innerType()):e instanceof zw?[e.value]:e instanceof Hw?e.options:e instanceof Fw?Qt.objectValues(e.enum):e instanceof $w?_h(e._def.innerType):e instanceof Uw?[void 0]:e instanceof qw?[null]:e instanceof ul?[void 0,..._h(e.unwrap())]:e instanceof Wm?[null,..._h(e.unwrap())]:e instanceof WN||e instanceof Kw?_h(e.unwrap()):e instanceof Vw?_h(e._def.innerType):[],uX=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=_h(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:xt.ZodDiscriminatedUnion,discriminator:t,options:r,optionsMap:i,...Ut(n)})}};function Y9e(e,t){let r=Vm(e),n=Vm(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=Y9e(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=Y9e(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 Dw=class extends Lt{_parse(t){let{status:r,ctx:n}=this._processInputParams(t),i=(o,s)=>{if(aX(o)||aX(s))return gt;let a=Y9e(o.value,s.value);return a.valid?((cX(o)||cX(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}))}};Dw.create=(e,t,r)=>new Dw({left:e,right:t,typeName:xt.ZodIntersection,...Ut(r)});var Km=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 dl(n,s,n.path,a)):null}).filter(s=>!!s);return n.common.async?Promise.all(o).then(s=>Ns.mergeArray(r,s)):Ns.mergeArray(r,o)}get items(){return this._def.items}rest(t){return new e({...this._def,rest:t})}};Km.create=(e,t)=>{if(!Array.isArray(e))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new Km({items:e,typeName:xt.ZodTuple,rest:null,...Ut(t)})};var dX=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 dl(n,a,n.path,a)),value:s._parse(new dl(n,n.data[a],n.path,a)),alwaysSet:a in n.data});return n.common.async?Ns.mergeObjectAsync(r,i):Ns.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:xt.ZodRecord,...Ut(n)}):new e({keyType:j2.create(),valueType:t,typeName:xt.ZodRecord,...Ut(r)})}},wS=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 dl(n,a,n.path,[u,"key"])),value:o._parse(new dl(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}}}};wS.create=(e,t,r)=>new wS({valueType:t,keyType:e,typeName:xt.ZodMap,...Ut(r)});var ES=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 dl(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)}};ES.create=(e,t)=>new ES({valueType:e,minSize:null,maxSize:null,typeName:xt.ZodSet,...Ut(t)});var lX=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 KN({data:a,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,yS(),bh].filter(u=>!!u),issueData:{code:ye.invalid_arguments,argumentsError:c}})}function i(a,c){return KN({data:a,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,yS(),bh].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 q2){let a=this;return ya(async function(...c){let u=new eu([]),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 ya(function(...c){let u=a._def.args.safeParse(c,o);if(!u.success)throw new eu([n(c,u.error)]);let d=Reflect.apply(s,this,u.data),l=a._def.returns.safeParse(d,o);if(!l.success)throw new eu([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:Km.create(t).rest(vh.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||Km.create([]).rest(vh.create()),returns:r||vh.create(),typeName:xt.ZodFunction,...Ut(n)})}},Lw=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})}};Lw.create=(e,t)=>new Lw({getter:e,typeName:xt.ZodLazy,...Ut(t)});var zw=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}};zw.create=(e,t)=>new zw({value:e,typeName:xt.ZodLiteral,...Ut(t)});function Iht(e,t){return new Hw({values:e,typeName:xt.ZodEnum,...Ut(t)})}var Hw=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 ya(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})}};Hw.create=Iht;var Fw=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 ya(t.data)}get enum(){return this._def.values}};Fw.create=(e,t)=>new Fw({values:e,typeName:xt.ZodNativeEnum,...Ut(t)});var q2=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 ya(n.then(i=>this._def.type.parseAsync(i,{path:r.path,errorMap:r.common.contextualErrorMap})))}};q2.create=(e,t)=>new q2({type:e,typeName:xt.ZodPromise,...Ut(t)});var ll=class extends Lt{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===xt.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"?kw(c.value):r.value==="dirty"?kw(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"?kw(a.value):r.value==="dirty"?kw(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(!B2(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=>B2(s)?Promise.resolve(i.transform(s.value,o)).then(a=>({status:r.value,value:a})):gt);Qt.assertNever(i)}};ll.create=(e,t,r)=>new ll({schema:e,typeName:xt.ZodEffects,effect:t,...Ut(r)});ll.createWithPreprocess=(e,t,r)=>new ll({schema:t,effect:{type:"preprocess",transform:e},typeName:xt.ZodEffects,...Ut(r)});var ul=class extends Lt{_parse(t){return this._getType(t)===Re.undefined?ya(void 0):this._def.innerType._parse(t)}unwrap(){return this._def.innerType}};ul.create=(e,t)=>new ul({innerType:e,typeName:xt.ZodOptional,...Ut(t)});var Wm=class extends Lt{_parse(t){return this._getType(t)===Re.null?ya(null):this._def.innerType._parse(t)}unwrap(){return this._def.innerType}};Wm.create=(e,t)=>new Wm({innerType:e,typeName:xt.ZodNullable,...Ut(t)});var $w=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}};$w.create=(e,t)=>new $w({innerType:e,typeName:xt.ZodDefault,defaultValue:typeof t.default=="function"?t.default:()=>t.default,...Ut(t)});var Vw=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 gS(i)?i.then(o=>({status:"valid",value:o.status==="valid"?o.value:this._def.catchValue({get error(){return new eu(n.common.issues)},input:n.data})})):{status:"valid",value:i.status==="valid"?i.value:this._def.catchValue({get error(){return new eu(n.common.issues)},input:n.data})}}removeCatch(){return this._def.innerType}};Vw.create=(e,t)=>new Vw({innerType:e,typeName:xt.ZodCatch,catchValue:typeof t.catch=="function"?t.catch:()=>t.catch,...Ut(t)});var xS=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}}};xS.create=e=>new xS({typeName:xt.ZodNaN,...Ut(e)});var wSr=Symbol("zod_brand"),WN=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}},GN=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(),kw(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:xt.ZodPipeline})}},Kw=class extends Lt{_parse(t){let r=this._def.innerType._parse(t),n=i=>(B2(i)&&(i.value=Object.freeze(i.value)),i);return gS(r)?r.then(i=>n(i)):n(r)}unwrap(){return this._def.innerType}};Kw.create=(e,t)=>new Kw({innerType:e,typeName:xt.ZodReadonly,...Ut(t)});function Aht(e,t){let r=typeof e=="function"?e(t):typeof e=="string"?{message:e}:e;return typeof r=="string"?{message:r}:r}function Oht(e,t={},r){return e?U2.create().superRefine((n,i)=>{let o=e(n);if(o instanceof Promise)return o.then(s=>{if(!s){let a=Aht(t,n),c=a.fatal??r??!0;i.addIssue({code:"custom",...a,fatal:c})}});if(!o){let s=Aht(t,n),a=s.fatal??r??!0;i.addIssue({code:"custom",...s,fatal:a})}}):U2.create()}var ESr={object:tu.lazycreate},xt;(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"})(xt||(xt={}));var xSr=(e,t={message:`Input not instance of ${e.name}`})=>Oht(r=>r instanceof e,t),L=j2.create,Rr=Rw.create,ASr=xS.create,SSr=Nw.create,pl=Bw.create,TSr=jw.create,PSr=_S.create,ISr=Uw.create,AS=qw.create,fl=U2.create,OSr=vh.create,CSr=Bp.create,kSr=vS.create,ue=wh.create,fe=tu.create,RSr=tu.strictCreate,SS=Mw.create,NSr=uX.create,BSr=Dw.create,jSr=Km.create,er=dX.create,USr=wS.create,qSr=ES.create,MSr=lX.create,DSr=Lw.create,LSr=zw.create,ml=Hw.create,zSr=Fw.create,HSr=q2.create,FSr=ll.create,$Sr=ul.create,VSr=Wm.create,KSr=ll.createWithPreprocess,WSr=GN.create,GSr=()=>L().optional(),JSr=()=>Rr().optional(),YSr=()=>pl().optional(),Xu={string:(e=>j2.create({...e,coerce:!0})),number:(e=>Rw.create({...e,coerce:!0})),boolean:(e=>Bw.create({...e,coerce:!0})),bigint:(e=>Nw.create({...e,coerce:!0})),date:(e=>jw.create({...e,coerce:!0}))};var ZSr=gt;var QSr=ml(["enc","sig"]),e7r=ml(["markdown","plain"]),t7r=ml(["recoverable","requires_buyer_input","requires_buyer_review","unrecoverable"]),r7r=ml(["error","info","warning"]),IS=ml(["canceled","complete_in_progress","completed","incomplete","ready_for_complete","requires_escalation"]),n7r=ml(["completed","failed","pending"]),i7r=ml(["digital","pickup","shipping"]),o7r=ml(["fulfilled","partial","processing","removed"]),s7r=ml(["across","each"]),Z9e=ml(["pickup","shipping"]),a7r=fe({config:er(L(),fl()),config_schema:L(),id:L(),instrument_schemas:ue(L()),name:L(),spec:L(),version:L()}),c7r=fe({alg:L().optional(),crv:L().optional(),e:L().optional(),kid:L(),kty:L(),n:L().optional(),use:QSr.optional(),x:L().optional(),y:L().optional()}),u7r=fe({config:er(L(),fl()).optional(),extends:L().optional(),name:L(),schema:L(),spec:L(),version:L()}),d7r=fe({endpoint:L()}),l7r=fe({schema:L()}),Cht=fe({endpoint:L(),schema:L()}),p7r=Cht,f7r=Cht,Ya=fe({email:L().optional(),first_name:L().optional(),last_name:L().optional(),phone_number:L().optional()}),wo=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()}),X9e=wo,kht=fe({id:L()}),m7r=kht,h7r=kht,JN=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()}),pX=fe({type:L()}),no=fe({"dev.ucp.buyer_ip":L().optional(),"dev.ucp.user_agent":L().optional()}),Q9e=no,Rht=fe({id:L(),image_url:L().optional(),price:Rr(),title:L()}),fX=fe({amount:Rr(),display_text:L().optional(),type:L()}),M2=fe({title:L().optional(),type:L(),url:L()}),Eh=fe({code:L().optional(),content:L(),content_type:e7r.optional(),path:L().optional(),severity:t7r.optional(),type:r7r,image_url:L().optional(),presentation:L().optional(),url:L().optional()}),eEe=Eh,OS=fe({id:L(),label:L().optional(),permalink_url:L()}),y7r=fe({amount:Rr(),display_text:L()}),g7r=fe({config:er(L(),fl()).optional(),extends:L().optional(),name:L(),schema:L().optional(),spec:L().optional(),version:L()}),tEe=fe({id:L(),quantity:Rr()}),b7r=tEe,_7r=tEe,v7r=tEe,w7r=fe({fulfilled:Rr(),original:Rr().optional(),total:Rr()}),E7r=fe({billing_address:JN.optional(),credential:pX.optional(),display:er(L(),fl()).optional(),handler_id:L(),id:L(),type:L()}),x7r=fe({checkout_mandate:L()}),A7r=fe({merchant_authorization:L().optional(),checkout_mandate:L()}),S7r=fe({analytics:pl().optional(),marketing:pl().optional(),preferences:pl().optional(),sale_of_data:pl().optional()});var T7r=S7r;var Nht=fe({codes:ue(L()).optional()}),P7r=Nht,I7r=fe({amount:Rr(),path:L()}),O7r=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:JN.optional(),name:L().optional()}),C7r=fe({carrier:L().optional(),description:L().optional(),earliest_fulfillment_time:Xu.date().optional(),id:L(),latest_fulfillment_time:Xu.date().optional(),title:L(),totals:ue(fX)}),k7r=fe({description:L().optional(),fulfillable_on:SS([AS(),L()]).optional(),line_item_ids:ue(L()),type:Z9e}),R7r=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:JN.optional(),name:L().optional()}),N7r=fe({max:Rr().optional(),min:Rr().optional()}),YN=fe({taxonomy:L().optional(),value:L()}),ZN=fe({html:L().optional(),markdown:L().optional(),plain:L().optional()}),TS=fe({amount:Rr(),currency:L()}),XN=fe({alt_text:L().optional(),height:Rr().optional(),type:L(),url:L(),width:Rr().optional()}),B7r=fe({id:L().optional(),label:L()}),QN=fe({count:Rr().optional(),scale_max:Rr(),scale_min:Rr().optional(),value:Rr()}),Bht=fe({available:pl().optional(),status:L().optional()}),j7r=Bht,jht=fe({type:L(),value:L()}),U7r=jht,q7r=fe({id:L(),match:L().optional()}),rEe=fe({id:L().optional(),label:L(),name:L()}),Uht=rEe,qht=fe({links:ue(M2).optional(),name:L().optional()}),M7r=qht,Mht=fe({unit:L(),value:Rr()});var D7r=Mht,L7r=fe({cursor:L().optional(),limit:Rr().optional()}),z7r=fe({cursor:L().optional(),has_next_page:pl(),total_count:Rr().optional()}),H7r=fe({handlers:ue(a7r).optional()}),F7r=fe({a2a:d7r.optional(),embedded:l7r.optional(),mcp:p7r.optional(),rest:f7r.optional(),spec:L(),version:L()}),CS=fe({item:m7r,quantity:Rr()}),$7r=fe({billing_address:JN.optional(),credential:pX.optional(),display:er(L(),fl()).optional(),handler_id:L(),id:L(),type:L(),selected:pl().optional()}),eB=fe({id:L().optional(),item:h7r,parent_id:L().optional(),quantity:Rr()}),mX=fe({instruments:ue($7r).optional()}),V7r=mX,tB=mX,kS=mX,hX=mX,Ww=fe({id:L(),item:Rht,parent_id:L().optional(),quantity:Rr(),totals:ue(fX)}),D2=fe({amount:Rr(),display_text:L().optional(),type:L(),lines:ue(y7r).optional()}),jp=fe({capabilities:er(L(),ue(g7r)),version:L()}),K7r=fe({description:L().optional(),id:L(),line_items:ue(b7r).optional(),occurred_at:Xu.date(),status:n7r,totals:ue(fX).optional(),type:L()}),W7r=fe({carrier:L().optional(),description:L().optional(),id:L(),line_items:ue(_7r),occurred_at:Xu.date(),tracking_number:L().optional(),tracking_url:L().optional(),type:L()}),G7r=fe({description:L().optional(),destination:JN,fulfillable_on:L().optional(),id:L(),line_items:ue(v7r),method_type:i7r}),J7r=fe({id:L(),item:Rht,parent_id:L().optional(),quantity:w7r,status:o7r,totals:ue(fX)}),Nxn=fe({payment_data:E7r}),Bxn=fe({ap2:x7r.optional()}),jxn=fe({attribution:er(L(),L()).optional(),buyer:Ya.optional(),context:wo.optional(),continue_url:L().optional(),currency:L(),expires_at:Xu.date().optional(),id:L(),line_items:ue(Ww),links:ue(M2),messages:ue(Eh).optional(),order:OS.optional(),payment:kS.optional(),signals:no.optional(),status:IS,totals:ue(D2),ucp:jp,ap2:A7r.optional()}),nEe=fe({email:L().optional(),first_name:L().optional(),last_name:L().optional(),phone_number:L().optional(),consent:T7r.optional()}),Y7r=nEe,Z7r=nEe,Dht=fe({attribution:er(L(),L()).optional(),buyer:Ya.optional(),context:wo.optional(),line_items:ue(eB),payment:hX.optional(),signals:no.optional(),discounts:P7r.optional()}),X7r=fe({allocations:ue(I7r).optional(),amount:Rr(),automatic:pl().optional(),code:L().optional(),eligibility:L().optional(),method:s7r.optional(),priority:Rr().optional(),provisional:pl().optional(),title:L()}),Lht=fe({id:L(),line_item_ids:ue(L()),options:ue(C7r).optional(),selected_option_id:SS([AS(),L()]).optional()}),Q7r=fe({destinations:ue(R7r).optional(),groups:ue(Lht).optional(),id:L(),line_item_ids:ue(L()),selected_destination_id:SS([AS(),L()]).optional(),type:Z9e}),Uxn=fe({attribution:er(L(),L()).optional(),buyer:Ya.optional(),context:wo.optional(),line_items:ue(CS),signals:no.optional()}),qxn=fe({attribution:er(L(),L()).optional(),buyer:Ya.optional(),context:wo.optional(),id:L(),line_items:ue(eB),signals:no.optional()}),Mxn=fe({attribution:er(L(),L()).optional(),buyer:Ya.optional(),context:wo.optional(),continue_url:L().optional(),currency:L(),expires_at:Xu.date().optional(),id:L(),line_items:ue(Ww),links:ue(M2).optional(),messages:ue(Eh).optional(),signals:no.optional(),totals:ue(D2),ucp:jp}),eTr=fe({attribution:er(L(),L()).optional(),buyer:Ya.optional(),context:wo.optional(),line_items:ue(eB),payment:hX.optional(),signals:no.optional()}),zht=eTr,Dxn=fe({attribution:er(L(),L()).optional(),buyer:Ya.optional(),context:wo.optional(),continue_url:L().optional(),currency:L(),expires_at:Xu.date().optional(),id:L(),line_items:ue(Ww),links:ue(M2),messages:ue(Eh).optional(),order:OS.optional(),payment:kS.optional(),signals:no.optional(),status:IS,totals:ue(D2),ucp:jp,cart_id:L().optional()}),iEe=fe({categories:ue(L()).optional(),price:N7r.optional()}),PS=fe({max:TS,min:TS}),oEe=fe({name:L(),values:ue(B7r)}),Hht=fe({amount:Rr(),currency:L(),measure:Mht,reference:D7r}),tTr=Hht,Lxn=fe({attribution:er(L(),L()).optional(),context:X9e.optional(),filters:iEe.optional(),id:L(),preferences:ue(L()).optional(),selected:ue(Uht).optional(),signals:Q9e.optional()}),zxn=fe({attribution:er(L(),L()).optional(),context:X9e.optional(),filters:iEe.optional(),pagination:L7r.optional(),query:L().optional(),signals:Q9e.optional()}),rTr=fe({capabilities:ue(u7r),services:er(L(),F7r),version:L()}),Hxn=fe({attribution:er(L(),L()).optional(),payment:V7r,signals:no.optional()}),Fht=fe({attribution:er(L(),L()).optional(),buyer:Ya.optional(),context:wo.optional(),continue_url:L().optional(),currency:L(),expires_at:Xu.date().optional(),id:L(),line_items:ue(Ww),links:ue(M2),messages:ue(Eh).optional(),order:OS.optional(),payment:kS.optional(),signals:no.optional(),status:IS,totals:ue(D2),ucp:jp}),nTr=fe({events:ue(W7r).optional(),expectations:ue(G7r).optional()}),$ht=fe({attribution:er(L(),L()).optional(),buyer:nEe.optional(),context:wo.optional(),line_items:ue(CS),payment:tB.optional(),signals:no.optional()}),Vht=fe({attribution:er(L(),L()).optional(),buyer:Z7r.optional(),context:wo.optional(),line_items:ue(eB),payment:hX.optional(),signals:no.optional()}),Kht=fe({attribution:er(L(),L()).optional(),buyer:Y7r.optional(),context:wo.optional(),continue_url:L().optional(),currency:L(),expires_at:Xu.date().optional(),id:L(),line_items:ue(Ww),links:ue(M2),messages:ue(Eh).optional(),order:OS.optional(),payment:kS.optional(),signals:no.optional(),status:IS,totals:ue(D2),ucp:jp}),Wht=fe({attribution:er(L(),L()).optional(),buyer:Ya.optional(),context:wo.optional(),line_items:ue(CS),payment:tB.optional(),signals:no.optional(),discounts:Nht.optional()}),iTr=fe({applied:ue(X7r).optional(),codes:ue(L()).optional()}),oTr=fe({destinations:ue(O7r).optional(),groups:ue(Lht).optional(),line_item_ids:ue(L()).optional(),selected_destination_id:SS([AS(),L()]).optional(),type:Z9e}),sTr=fe({available_methods:ue(k7r).optional(),methods:ue(Q7r).optional()}),Ght=fe({attribution:er(L(),L()).optional(),buyer:Ya.optional(),context:wo.optional(),line_items:ue(CS),payment:tB.optional(),signals:no.optional(),cart_id:L().optional()}),Fxn=fe({attribution:er(L(),L()).optional(),context:X9e.optional(),filters:iEe.optional(),ids:ue(L()),signals:Q9e.optional()}),aTr=fe({availability:Bht.optional(),barcodes:ue(jht).optional(),categories:ue(YN).optional(),description:ZN,handle:L().optional(),id:L(),list_price:TS.optional(),media:ue(XN).optional(),metadata:er(L(),fl()).optional(),options:ue(rEe).optional(),price:TS,rating:QN.optional(),seller:qht.optional(),sku:L().optional(),tags:ue(L()).optional(),title:L(),unit_price:Hht.optional(),url:L().optional(),inputs:ue(q7r)}),Jht=fe({availability:j7r.optional(),barcodes:ue(U7r).optional(),categories:ue(YN).optional(),description:ZN,handle:L().optional(),id:L(),list_price:TS.optional(),media:ue(XN).optional(),metadata:er(L(),fl()).optional(),options:ue(rEe).optional(),price:TS,rating:QN.optional(),seller:M7r.optional(),sku:L().optional(),tags:ue(L()).optional(),title:L(),unit_price:tTr.optional(),url:L().optional()}),cTr=fe({categories:ue(YN).optional(),description:ZN,handle:L().optional(),id:L(),list_price_range:PS.optional(),media:ue(XN).optional(),metadata:er(L(),fl()).optional(),options:ue(oEe).optional(),price_range:PS,rating:QN.optional(),tags:ue(L()).optional(),title:L(),url:L().optional(),variants:ue(Jht)}),$xn=fe({payment:H7r.optional(),signing_keys:ue(c7r).optional(),ucp:rTr}),Yht=fe({attribution:er(L(),L()).optional(),buyer:Ya.optional(),context:wo.optional(),line_items:ue(CS),payment:tB.optional(),signals:no.optional()}),uTr=fe({adjustments:ue(K7r).optional(),attribution:er(L(),L()).optional(),checkout_id:L(),currency:L(),fulfillment:nTr,id:L(),label:L().optional(),line_items:ue(J7r),messages:ue(Eh).optional(),permalink_url:L(),totals:ue(D2),ucp:jp}),Zht=fe({attribution:er(L(),L()).optional(),buyer:Ya.optional(),context:wo.optional(),continue_url:L().optional(),currency:L(),expires_at:Xu.date().optional(),id:L(),line_items:ue(Ww),links:ue(M2),messages:ue(Eh).optional(),order:OS.optional(),payment:kS.optional(),signals:no.optional(),status:IS,totals:ue(D2),ucp:jp,discounts:iTr.optional()}),Xht=fe({methods:ue(oTr).optional()}),Qht=fe({attribution:er(L(),L()).optional(),buyer:Ya.optional(),context:wo.optional(),line_items:ue(eB),payment:hX.optional(),signals:no.optional(),fulfillment:Xht.optional()}),eyt=fe({attribution:er(L(),L()).optional(),buyer:Ya.optional(),context:wo.optional(),continue_url:L().optional(),currency:L(),expires_at:Xu.date().optional(),id:L(),line_items:ue(Ww),links:ue(M2),messages:ue(Eh).optional(),order:OS.optional(),payment:kS.optional(),signals:no.optional(),status:IS,totals:ue(D2),ucp:jp,fulfillment:sTr.optional()}),dTr=fe({categories:ue(YN).optional(),description:ZN,handle:L().optional(),id:L(),list_price_range:PS.optional(),media:ue(XN).optional(),metadata:er(L(),fl()).optional(),options:ue(oEe).optional(),price_range:PS,rating:QN.optional(),tags:ue(L()).optional(),title:L(),url:L().optional(),variants:ue(aTr)}),lTr=fe({options:ue(oEe).optional(),selected:ue(Uht).optional(),categories:ue(YN).optional(),description:ZN,handle:L().optional(),id:L(),list_price_range:PS.optional(),media:ue(XN).optional(),metadata:er(L(),fl()).optional(),price_range:PS,rating:QN.optional(),tags:ue(L()).optional(),title:L(),url:L().optional(),variants:ue(Jht)}),Vxn=fe({messages:ue(eEe).optional(),pagination:z7r.optional(),products:ue(cTr),ucp:jp}),tyt=fe({attribution:er(L(),L()).optional(),buyer:Ya.optional(),context:wo.optional(),line_items:ue(CS),payment:tB.optional(),signals:no.optional(),fulfillment:Xht.optional()}),Kxn=fe({messages:ue(eEe).optional(),products:ue(dTr),ucp:jp}),Wxn=fe({messages:ue(eEe).optional(),product:lTr,ucp:jp});var Zxn=pX.extend({token:Dr.string().optional()}),pTr=Dr.object({webhook_url:Dr.string().url().optional()}),ryt=Fht.extend(eyt.pick({fulfillment:!0}).shape).extend(Zht.pick({discounts:!0}).shape).extend(Kht.pick({buyer:!0}).shape).extend({platform:pTr.optional()}),nyt=Yht.extend(tyt.pick({fulfillment:!0}).shape).extend(Wht.pick({discounts:!0}).shape).extend($ht.pick({buyer:!0}).shape).extend(Ght.pick({cart_id:!0}).shape),iyt=zht.extend(Qht.pick({fulfillment:!0}).shape).extend(Dht.pick({discounts:!0}).shape).extend(Vht.pick({buyer:!0}).shape);nu();async function yX(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 gX(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 fTr=3e4,oyt=2*1024*1024,Up=class extends Error{constructor(r,n,i){super(r);this.rpcCode=n;this.httpStatus=i;this.name="UcpRpcError"}rpcCode;httpStatus};function syt(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 ayt(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"?nyt:iyt).safeParse(e).success)throw new Error(`UCP ${t} checkout input failed schema validation`);return e}function mTr(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 cyt(e,t,r,n){try{e[t](r,n)}catch{}}function hTr(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 bX=class{endpoint;platformProfileUrl;fetchImpl;signal;timeoutMs;boundaryLogger;requestId=1;constructor(t){this.endpoint=syt(t.endpoint,"UCP MCP endpoint").toString(),this.platformProfileUrl=syt(t.platformProfileUrl,"UCP platform profile URL").toString(),this.fetchImpl=t.fetch??fetch,this.signal=t.signal,this.timeoutMs=t.timeoutMs??fTr,this.boundaryLogger=t.logger??ke}async createCheckout(t){return await this.callCheckout("create_checkout",{meta:this.metadata(),checkout:ayt(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:ayt(r,"update")})}metadata(){return{"ucp-agent":{profile:this.platformProfileUrl}}}async callCheckout(t,r){let n=this.requestId++,i=gX(this.timeoutMs,this.signal),o=(0,uyt.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 yX(u,oyt,"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 Up(m.message,void 0,u.status):m}if(Buffer.byteLength(d)>oyt)throw new Up("UCP MCP response exceeds the 2 MiB limit",void 0,u.status);let l;try{l=JSON.parse(d)}catch{throw new Up("UCP MCP response is not valid JSON",void 0,u.status)}if(!mTr(l))throw new Up("UCP MCP response is not a valid JSON-RPC envelope",void 0,u.status);if(l.id!==n)throw new Up("UCP MCP response id does not match the request",void 0,u.status);if("error"in l)throw new Up(`UCP MCP error ${l.error.code}: ${l.error.message}`,l.error.code,u.status);if(!u.ok)throw new Up(`UCP MCP request failed with HTTP ${u.status}`,void 0,u.status);let p=l.result;if(!p?.structuredContent)throw new Up("UCP MCP response is missing result.structuredContent");if(!ryt.safeParse(hTr(p.structuredContent)).success)throw new Up("UCP checkout response failed schema validation");return cyt(this.boundaryLogger,"info","ucp:checkout_rpc",{correlationId:o,endpointOrigin:s,rpcMethod:t,httpStatus:c,elapsedMs:Date.now()-a}),p.structuredContent}catch(u){throw cyt(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 lyt=require("node:crypto");nu();var vX="2026-04-08",yTr="dev.ucp.shopping",gTr="dev.ucp.shopping.checkout",bTr=1024*1024,_Tr=1e4,vTr="https://ucp.dev",rB=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"),wTr=Dr.object({version:Dr.string().regex(/^\d{4}-\d{2}-\d{2}$/),spec:rB,schema:rB,transport:Dr.enum(["rest","mcp","a2a","embedded"]),endpoint:rB.optional()}).passthrough(),ETr=Dr.object({version:Dr.string().regex(/^\d{4}-\d{2}-\d{2}$/),spec:rB,schema:rB,extends:Dr.union([Dr.string(),Dr.array(Dr.string()).min(1)]).optional()}).passthrough(),xTr=Dr.object({ucp:Dr.object({version:Dr.string().regex(/^\d{4}-\d{2}-\d{2}$/),services:Dr.record(Dr.array(wTr)),capabilities:Dr.record(Dr.array(ETr)),payment_handlers:Dr.record(Dr.array(Dr.unknown())).optional()}).passthrough(),signing_keys:Dr.array(Dr.unknown()).optional()}).passthrough();function ATr(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 _X(e,t){if(new URL(e).origin!==vTr)throw new Error(`${t} must be governed by the ucp.dev namespace`)}function dyt(e,t,r,n){try{e[t](r,n)}catch{}}async function STr(e,t={}){let r=ATr(e,"UCP business URL"),n=gX(t.timeoutMs??_Tr,t.signal),i=t.logger??ke,o=(0,lyt.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 yX(c,bTr,"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=xTr.safeParse(d);if(!l.success)throw new Error("UCP profile response does not match the 2026-04-08 profile shape");return dyt(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 dyt(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 TTr(e){if(e.ucp.version!==vX)throw new Error(`Unsupported UCP version: ${e.ucp.version}`);let t=e.ucp.capabilities[gTr]?.find(i=>i.version===vX);if(!t)throw new Error("Business does not advertise UCP checkout 2026-04-08");_X(t.spec,"Checkout capability spec"),_X(t.schema,"Checkout capability schema");let r=e.ucp.services[yTr]?.find(i=>i.version===vX&&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");_X(r.spec,"Shopping service spec"),_X(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 pyt(e,t={}){let r=await STr(e,t);return{...r,endpoint:TTr(r.profile),version:vX}}var PTr="https://app.visacli.sh/.well-known/ucp";function ITr(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 OTr(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 sEe(e,t=new Set){if(Array.isArray(e))for(let r of e)sEe(r,t);else if(e&&typeof e=="object")for(let[r,n]of Object.entries(e))r==="endpoint"?OTr(n,t):sEe(n,t);return t}function CTr(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=sEe(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 kTr(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 RTr(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 myt(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??pyt)(e.business),i=await(t.getCheckout??(async(u,d)=>await new bX({endpoint:u.endpoint,platformProfileUrl:ITr(t.platformProfileUrl??process.env.VISA_UCP_PROFILE_URL??PTr)}).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=kTr(i),a=CTr(r.businessOrigin,i.continue_url,r.profile),c=`ucp_${(0,fyt.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:RTr(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>."}}Z2();function NTr(){return ba()}var Rp=new Ch(()=>Ai.getSessionToken()),BTr="4.1.0-rc.36",CAn=["","","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
+ If building from source, run native/build-win.bat first.`);Jr.mkdirSync(kh,{recursive:!0}),Jr.copyFileSync(e,Xm);let t=HB(Xm);return Jr.writeFileSync(vAe,t,{mode:384}),Jr.writeFileSync(_Ae,bAe,{mode:384}),Xm}async function r2t(){return o4()?VB():OAe()}var FB="visa-cli",$B="attestation-key";async function n2t(e){if(!await zp())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 Qm("security",["delete-generic-password","-s",FB,"-a",$B],{timeout:5e3})}catch{}try{await Qm("security",["add-generic-password","-s",FB,"-a",$B,"-w",e],{timeout:5e3})}catch(t){throw new Error(`Could not store the Touch ID key in the macOS Keychain (${i2t(t)}).`)}}function i2t(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 o2t(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 s2t(){if(!await zp())return{key:null,status:{state:"denied",usable:!1,message:"macOS Keychain is unavailable in this environment (no default keychain)."}};try{let{stdout:e}=await Qm("security",["find-generic-password","-s",FB,"-a",$B,"-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:o2t(e)}}}async function a2t(){let e=await s2t();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 kAe(e){let t=await r2t(),r;try{r=(await Qm(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 t2t(r)}var xAe=!1;function c2t(){if(!o4())return!1;try{return Jr.existsSync(Xm)||CAe()!==null?!0:(xAe||(xAe=!0,ke.warn("binary:missing:win32",{message:"visa-keychain-win.exe not found; Windows Hello attestation unavailable on this install.",binPath:Xm,searchedPrebuiltPaths:IAe})),!1)}catch{return!1}}function Rh(){return BS()||e2t()?!0:o4()?c2t():!1}async function RAe(){if(o4()){let i=await VB(),{stdout:o}=await Qm(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 kAe(["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 n2t(r),n}async function hQ(e,t,r={}){if(BS())return Promise.resolve(UEe());let n=r.timeoutMs??Qbt;if(o4()){let a=await VB(),c=["sign",e];t&&c.push(t);let u;try{u=(await Qm(a,c,{timeout:n})).stdout}catch(l){throw wAe(l)?EAe(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 a2t();if(!i)throw new Error("Attestation key not found. Run setup to generate a new key.");let o=await OAe(),s=["sign",e];return t&&s.push(t),new Promise((a,c)=>{let u=(0,mQ.execFile)(o,s,{timeout:n},(d,l)=>{let p=(l||"").trim();if(d){p.startsWith("ERROR:")?c(new Error(p.slice(6))):wAe(d)?c(EAe(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 KB(){if(o4()){try{let e=await VB();await Qm(e,["delete-key"],{timeout:1e4})}catch{}return}if(await zp())try{await Qm("security",["delete-generic-password","-s",FB,"-a",$B],{timeout:5e3})}catch{}try{await kAe(["delete-key"])}catch{}}H2();nu();bB();_3e();var yyt=require("child_process"),wX=ve(require("fs")),EX=ve(require("os")),gyt=ve(require("path"));Z2();cB();var Fmt="4.1.0-rc.37";function v3e(e,t){return t?{kind:"env",var:e}:{kind:"default"}}function Z9r(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=lQ(t);return i!==void 0?{value:i,source:{kind:"settings"}}:{value:r!=="opt-in",source:{kind:"default"}}}function eS(e){return e==null?"\u2014":e?"yes":"no"}async function wN(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=dQ("auth.serverUrl"),s=ba(),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:eS(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=Z9r("VISA_SUPPRESS_BROWSER","ui.suppressBrowser","opt-in");n.push({key:"ui.suppressBrowser",value:c.value,formatted:eS(c.value),source:c.source,hint:"Persist with `visa-cli config set ui.suppressBrowser true` to stop auto-opening result URLs."});let u=Ph(),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:eS(!u),source:d}),n.push({key:"client.version",value:Fmt,formatted:Fmt,source:{kind:"default"}}),e.includeDev){let l=process.env.VISA_MOCK_KEYCHAIN,p=xh();n.push({key:"dev.mockKeychain",value:p,formatted:eS(p),source:v3e("VISA_MOCK_KEYCHAIN",!!l),hint:kX()});let f=process.env.VISA_MOCK_TOUCHID,m=BS();n.push({key:"dev.mockTouchid",value:m,formatted:eS(m),source:v3e("VISA_MOCK_TOUCHID",!!f),hint:kX()});let h=process.env.VISA_CLI_DEBUG;n.push({key:"dev.debug",value:!!h,formatted:eS(!!h),source:v3e("VISA_CLI_DEBUG",!!h)})}return{entries:n,statusError:r}}function X9r(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 $mt(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}(${X9r(o.source)})`),t.verbose&&o.hint&&i.push(` ${"\u21B3".padStart(r)} ${o.hint}`)}return i.join(`
20894
+ `)}function Vmt(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 K9e=require("node:os"),FN=require("node:path"),$N=require("node:fs/promises"),uht=require("node:fs"),dht=require("node:url"),lht=require("node:crypto");nu();var Q9r=new Set(["USD","USDC","EUR","GBP","CAD","AUD"]);function tS(e,t){let r=t.toUpperCase();return!Number.isFinite(e)||!Q9r.has(r)?`${e} ${r} (minor units)`:`${(e/100).toFixed(2)} ${r}`}var lh=class extends Error{constructor(t){super(t),this.name="PayValidationError"}};function w3e(e){let t;try{t=new URL(e)}catch{throw new lh(`Invalid URL: ${e}. Expected a fully-qualified http(s) URL.`)}if(t.protocol!=="http:"&&t.protocol!=="https:")throw new lh(`Unsupported URL scheme "${t.protocol}". Only http and https are allowed.`);return t}nu();var eEr={ucp_checkout_handoff:"checkout_agent_access",pay_merchant:"checkout_agent_access",pay_merchant_status:"checkout_agent_access",start_card_mandate:"checkout_agent_access"},tEr=300*1e3,E3e={},Kmt=0,EN=null;function rEr(){return EN||(EN=(async()=>{try{let e=await Rp.getFeatureFlags();E3e=e&&e.flags||{},Kmt=Date.now()}catch(e){E3e={},ke.warn("feature-flags:fetch-failed",{error:e instanceof Error?e.message:String(e)})}finally{EN=null}})(),EN)}async function AZ(){Date.now()-Kmt<tEr||await rEr()}function rS(e){let t=eEr[e];return t?E3e[t]!==!0:!1}var Wmt=require("node:crypto"),xN=class extends Error{constructor(r){super(`Approval handoff already exists with different inputs for review ${r}`);this.reviewId=r;this.name="PayMerchantApprovalConflictError"}reviewId},SZ=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 xN(t.reviewId);return await this.waitUntilQueryable(n.ready),this.snapshot(n)}let i=()=>{},o=new Promise(u=>{i=u}),s=(this.options.idFactory??Wmt.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 pht(e){return[(0,FN.join)(e,"checkout-engine","index.js"),(0,FN.join)(e,"..","checkout-engine","index.js")]}function KAr(e,t=uht.existsSync){return pht(e).find(r=>t(r))??null}var oX=null,fht=async()=>{if(oX)return oX;let e=KAr(__dirname);if(!e)throw new Error(`Cannot find module: the checkout engine was not packaged (looked in ${pht(__dirname).join(" and ")}).`);return oX=(await import((0,dht.pathToFileURL)(e).href)).createCliCheckoutEngine({cardDrawVerdict:await WAr(),cardMandateRegister:await GAr()}),oX};async function WAr(){let e=await Promise.resolve().then(()=>($9e(),F9e));return{loadCapability:()=>e.loadCardMandateCapability(),fetchVerdict:t=>e.fetchCardDrawVerdict(t)}}async function GAr(){let e=await Promise.resolve().then(()=>($9e(),F9e));return{loadCapability:()=>e.loadCardMandateCapability(),register:t=>e.registerCardMandate(t)}}async function W9e(){return rS("pay_merchant")?(await AZ(),rS("pay_merchant")):!1}var mht=(0,FN.join)((0,K9e.homedir)(),".visa-mcp","agent-credential.json"),hht=(0,FN.join)((0,K9e.homedir)(),".visa-mcp","contact.json"),yht=new SZ;function VN(e){return e.replace(/https?:\/\/[^\s"')\]]+/gi,t=>{try{return new URL(t).origin}catch{return"[url]"}}).slice(0,300)}var JAr=new Set(["USD","USDC","EUR","GBP","CAD","AUD"]);function ght(e){return JAr.has(e)?e:null}async function sX(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?VN(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:ght(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 cht(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?VN(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:ght(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 lh(`Invalid amount ${JSON.stringify(e)}. Expected a positive decimal like "5.00".`);return e}function bht(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=VN(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 _ht(e={},t={}){if(await(t.flagDisabled??W9e)())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??yht).get(n);return o?bht(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 vht(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:pQ()&&!process.env.VISA_VERIFY_WEB_URL?null:_l();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??W9e)())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??yht,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=w3e(e.url??"").toString(),c=V9e(e.amount)}catch(C){if(C instanceof lh)return{success:!1,message:C.message};throw C}let d=t.credentialPath??mht,l=t.contactPath??hht;try{await(0,$N.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,$N.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??fht,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=>Rp.emitTelemetry(C)),E=new URL(a).hostname,_=Math.round(Number(c)*100),v=Date.now();if(o==="review"){ke.info("pay_merchant:review",{host:E,currency:u});let C;try{C=await h.review(y)}catch(I){throw await sX({emitTelemetry:w,action:"review",merchantHost:E,amountMinor:_,currency:u,outcome:"engine-error",success:!1,errorMessage:I instanceof Error?I.message:String(I),startedAt:v}),I}return await sX({emitTelemetry:w,action:"review",merchantHost:E,amountMinor:_,currency:u,outcome:"reviewed",success:!0,startedAt:v}),{success:!0,action:"review",...C,message:`Review ${C.reviewId}: ${C.merchantHost} wants ${tS(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 x=f,A=t.allowSubmit??process.env.CHECKOUT_AGENT_ALLOW_SUBMIT==="1",S=async C=>{ke.info("pay_merchant:pay",{reviewId:x,submit:A,approvalMode:o==="authorize"?"handoff":"blocking"});let I;try{I=await h.pay({...y,reviewId:x,submit:A,...C?{onApprovalUrl:C}:{}})}catch(j){throw await sX({emitTelemetry:w,action:"pay",merchantHost:E,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 sX({emitTelemetry:w,action:"pay",merchantHost:E,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"?x: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:x,...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,lht.createHash)("sha256").update(JSON.stringify([x,a,c,u,A])).digest("hex");ke.info("pay_merchant:approval_handoff_started",{reviewId:x,merchantHost:E,currency:u,submit:A});try{let I=await s.start({reviewId:x,fingerprint:C,run:async k=>{try{let q=await S(j=>{ke.info("pay_merchant:approval_handoff_ready",{reviewId:x}),k(j)});return ke.info("pay_merchant:approval_handoff_completed",{reviewId:x,success:q.success===!0}),q}catch(q){throw ke.warn("pay_merchant:approval_handoff_failed",{reviewId:x,error:VN(q instanceof Error?q.message:String(q))}),q}}});return bht(I,"authorize")}catch(I){if(I instanceof xN)return ke.warn("pay_merchant:approval_handoff_conflict",{reviewId:x}),{success:!1,action:"authorize",reviewId:x,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 wht(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:_l();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??W9e)())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:w3e(e.url??"").toString(),c=V9e(e.ceiling??e.amount)}catch(A){if(A instanceof lh)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 lh)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??mht,p=t.contactPath??hht;try{await(0,$N.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,$N.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??fht,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),E=t.emitTelemetry??(A=>Rp.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?VN(A.message):String(A);return ke.warn("start_card_mandate:failed",{message:S}),await cht({emitTelemetry:E,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 x=v.registerFailed===!0;return x&&ke.warn("start_card_mandate:register_failed",{mandateId:v.mandateId,host:y}),await cht({emitTelemetry:E,merchantHost:y,ceilingMinor:w,currency:o,outcome:x?"created-register-failed":"created",success:!x,mandateId:v.mandateId,remainingMinor:v.remainingMinor,startedAt:_}),x?{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 ${tS(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 fyt=require("node:crypto");var uyt=require("node:crypto");var Dr={};xi(Dr,{BRAND:()=>wSr,DIRTY:()=>kw,EMPTY_PATH:()=>QAr,INVALID:()=>gt,NEVER:()=>ZSr,OK:()=>ya,ParseStatus:()=>Ns,Schema:()=>Lt,ZodAny:()=>U2,ZodArray:()=>wh,ZodBigInt:()=>Nw,ZodBoolean:()=>Bw,ZodBranded:()=>WN,ZodCatch:()=>Vw,ZodDate:()=>jw,ZodDefault:()=>$w,ZodDiscriminatedUnion:()=>uX,ZodEffects:()=>ll,ZodEnum:()=>Hw,ZodError:()=>eu,ZodFirstPartyTypeKind:()=>xt,ZodFunction:()=>lX,ZodIntersection:()=>Dw,ZodIssueCode:()=>ye,ZodLazy:()=>Lw,ZodLiteral:()=>zw,ZodMap:()=>wS,ZodNaN:()=>xS,ZodNativeEnum:()=>Fw,ZodNever:()=>Bp,ZodNull:()=>qw,ZodNullable:()=>Wm,ZodNumber:()=>Rw,ZodObject:()=>tu,ZodOptional:()=>ul,ZodParsedType:()=>Re,ZodPipeline:()=>GN,ZodPromise:()=>q2,ZodReadonly:()=>Kw,ZodRecord:()=>dX,ZodSchema:()=>Lt,ZodSet:()=>ES,ZodString:()=>j2,ZodSymbol:()=>_S,ZodTransformer:()=>ll,ZodTuple:()=>Km,ZodType:()=>Lt,ZodUndefined:()=>Uw,ZodUnion:()=>Mw,ZodUnknown:()=>vh,ZodVoid:()=>vS,addIssueToContext:()=>Se,any:()=>fl,array:()=>ue,bigint:()=>SSr,boolean:()=>pl,coerce:()=>Xu,custom:()=>Oht,date:()=>TSr,datetimeRegex:()=>Pht,defaultErrorMap:()=>bh,discriminatedUnion:()=>NSr,effect:()=>FSr,enum:()=>ml,function:()=>MSr,getErrorMap:()=>yS,getParsedType:()=>Vm,instanceof:()=>xSr,intersection:()=>BSr,isAborted:()=>aX,isAsync:()=>gS,isDirty:()=>cX,isValid:()=>B2,late:()=>ESr,lazy:()=>DSr,literal:()=>LSr,makeIssue:()=>KN,map:()=>USr,nan:()=>ASr,nativeEnum:()=>zSr,never:()=>CSr,null:()=>AS,nullable:()=>VSr,number:()=>Rr,object:()=>fe,objectUtil:()=>G9e,oboolean:()=>YSr,onumber:()=>JSr,optional:()=>$Sr,ostring:()=>GSr,pipeline:()=>WSr,preprocess:()=>KSr,promise:()=>HSr,quotelessJson:()=>YAr,record:()=>er,set:()=>qSr,setErrorMap:()=>XAr,strictObject:()=>RSr,string:()=>L,symbol:()=>PSr,transformer:()=>FSr,tuple:()=>jSr,undefined:()=>ISr,union:()=>SS,unknown:()=>OSr,util:()=>Qt,void:()=>kSr});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 G9e;(function(e){e.mergeShapes=(t,r)=>({...t,...r})})(G9e||(G9e={}));var Re=Qt.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),Vm=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"]),YAr=e=>JSON.stringify(e,null,2).replace(/"([^"]+)":/g,"$1:"),eu=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()}};eu.create=e=>new eu(e);var ZAr=(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}},bh=ZAr;var Eht=bh;function XAr(e){Eht=e}function yS(){return Eht}var KN=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}},QAr=[];function Se(e,t){let r=yS(),n=KN({issueData:t,data:e.data,path:e.path,errorMaps:[e.common.contextualErrorMap,e.schemaErrorMap,r,r===bh?void 0:bh].filter(i=>!!i)});e.common.issues.push(n)}var Ns=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"}),kw=e=>({status:"dirty",value:e}),ya=e=>({status:"valid",value:e}),aX=e=>e.status==="aborted",cX=e=>e.status==="dirty",B2=e=>e.status==="valid",gS=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 dl=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}},xht=(e,t)=>{if(B2(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 eu(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 Vm(t.data)}_getOrReturnCtx(t,r){return r||{common:t.parent.common,data:t.data,parsedType:Vm(t.data),schemaErrorMap:this._def.errorMap,path:t.path,parent:t.parent}}_processInputParams(t){return{status:new Ns,ctx:{common:t.parent.common,data:t.data,parsedType:Vm(t.data),schemaErrorMap:this._def.errorMap,path:t.path,parent:t.parent}}}_parseSync(t){let r=this._parse(t);if(gS(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:Vm(t)},i=this._parseSync({data:t,path:n.path,parent:n});return xht(n,i)}"~validate"(t){let r={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:Vm(t)};if(!this["~standard"].async)try{let n=this._parseSync({data:t,path:[],parent:r});return B2(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=>B2(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:Vm(t)},i=this._parse({data:t,path:n.path,parent:n}),o=await(gS(i)?i:Promise.resolve(i));return xht(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 ll({schema:this,typeName:xt.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 ul.create(this,this._def)}nullable(){return Wm.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return wh.create(this)}promise(){return q2.create(this,this._def)}or(t){return Mw.create([this,t],this._def)}and(t){return Dw.create(this,t,this._def)}transform(t){return new ll({...Ut(this._def),schema:this,typeName:xt.ZodEffects,effect:{type:"transform",transform:t}})}default(t){let r=typeof t=="function"?t:()=>t;return new $w({...Ut(this._def),innerType:this,defaultValue:r,typeName:xt.ZodDefault})}brand(){return new WN({typeName:xt.ZodBranded,type:this,...Ut(this._def)})}catch(t){let r=typeof t=="function"?t:()=>t;return new Vw({...Ut(this._def),innerType:this,catchValue:r,typeName:xt.ZodCatch})}describe(t){let r=this.constructor;return new r({...this._def,description:t})}pipe(t){return GN.create(this,t)}readonly(){return Kw.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},eSr=/^c[^\s-]{8,}$/i,tSr=/^[0-9a-z]+$/,rSr=/^[0-9A-HJKMNP-TV-Z]{26}$/i,nSr=/^[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,iSr=/^[a-z0-9_-]{21}$/i,oSr=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,sSr=/^[-+]?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)?)??$/,aSr=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,cSr="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",J9e,uSr=/^(?:(?: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])$/,dSr=/^(?:(?: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])$/,lSr=/^(([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]))$/,pSr=/^(([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])$/,fSr=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,mSr=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,Sht="((\\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])))",hSr=new RegExp(`^${Sht}$`);function Tht(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 ySr(e){return new RegExp(`^${Tht(e)}$`)}function Pht(e){let t=`${Sht}T${Tht(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 gSr(e,t){return!!((t==="v4"||!t)&&uSr.test(e)||(t==="v6"||!t)&&lSr.test(e))}function bSr(e,t){if(!oSr.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 _Sr(e,t){return!!((t==="v4"||!t)&&dSr.test(e)||(t==="v6"||!t)&&pSr.test(e))}var j2=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 Ns,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")aSr.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")J9e||(J9e=new RegExp(cSr,"u")),J9e.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")nSr.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")iSr.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")eSr.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")tSr.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")rSr.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"?Pht(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"?hSr.test(t.data)||(i=this._getOrReturnCtx(t,i),Se(i,{code:ye.invalid_string,validation:"date",message:o.message}),n.dirty()):o.kind==="time"?ySr(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"?sSr.test(t.data)||(i=this._getOrReturnCtx(t,i),Se(i,{validation:"duration",code:ye.invalid_string,message:o.message}),n.dirty()):o.kind==="ip"?gSr(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"?bSr(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"?_Sr(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"?fSr.test(t.data)||(i=this._getOrReturnCtx(t,i),Se(i,{validation:"base64",code:ye.invalid_string,message:o.message}),n.dirty()):o.kind==="base64url"?mSr.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}};j2.create=e=>new j2({checks:[],typeName:xt.ZodString,coerce:e?.coerce??!1,...Ut(e)});function vSr(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 Rw=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 Ns;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"?vSr(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)}};Rw.create=e=>new Rw({checks:[],typeName:xt.ZodNumber,coerce:e?.coerce||!1,...Ut(e)});var Nw=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 Ns;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}};Nw.create=e=>new Nw({checks:[],typeName:xt.ZodBigInt,coerce:e?.coerce??!1,...Ut(e)});var Bw=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 ya(t.data)}};Bw.create=e=>new Bw({typeName:xt.ZodBoolean,coerce:e?.coerce||!1,...Ut(e)});var jw=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 Ns,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}};jw.create=e=>new jw({checks:[],coerce:e?.coerce||!1,typeName:xt.ZodDate,...Ut(e)});var _S=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 ya(t.data)}};_S.create=e=>new _S({typeName:xt.ZodSymbol,...Ut(e)});var Uw=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 ya(t.data)}};Uw.create=e=>new Uw({typeName:xt.ZodUndefined,...Ut(e)});var qw=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 ya(t.data)}};qw.create=e=>new qw({typeName:xt.ZodNull,...Ut(e)});var U2=class extends Lt{constructor(){super(...arguments),this._any=!0}_parse(t){return ya(t.data)}};U2.create=e=>new U2({typeName:xt.ZodAny,...Ut(e)});var vh=class extends Lt{constructor(){super(...arguments),this._unknown=!0}_parse(t){return ya(t.data)}};vh.create=e=>new vh({typeName:xt.ZodUnknown,...Ut(e)});var Bp=class extends Lt{_parse(t){let r=this._getOrReturnCtx(t);return Se(r,{code:ye.invalid_type,expected:Re.never,received:r.parsedType}),gt}};Bp.create=e=>new Bp({typeName:xt.ZodNever,...Ut(e)});var vS=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 ya(t.data)}};vS.create=e=>new vS({typeName:xt.ZodVoid,...Ut(e)});var wh=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 dl(r,s,r.path,a)))).then(s=>Ns.mergeArray(n,s));let o=[...r.data].map((s,a)=>i.type._parseSync(new dl(r,s,r.path,a)));return Ns.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)}};wh.create=(e,t)=>new wh({type:e,minLength:null,maxLength:null,exactLength:null,typeName:xt.ZodArray,...Ut(t)});function bS(e){if(e instanceof tu){let t={};for(let r in e.shape){let n=e.shape[r];t[r]=ul.create(bS(n))}return new tu({...e._def,shape:()=>t})}else return e instanceof wh?new wh({...e._def,type:bS(e.element)}):e instanceof ul?ul.create(bS(e.unwrap())):e instanceof Wm?Wm.create(bS(e.unwrap())):e instanceof Km?Km.create(e.items.map(t=>bS(t))):e}var tu=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 Bp&&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 dl(i,l,i.path,u)),alwaysSet:u in i.data})}if(this._def.catchall instanceof Bp){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 dl(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=>Ns.mergeObjectSync(n,u)):Ns.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:xt.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 bS(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 ul;)o=o._def.innerType;r[n]=o}return new e({...this._def,shape:()=>r})}keyof(){return Iht(Qt.objectKeys(this.shape))}};tu.create=(e,t)=>new tu({shape:()=>e,unknownKeys:"strip",catchall:Bp.create(),typeName:xt.ZodObject,...Ut(t)});tu.strictCreate=(e,t)=>new tu({shape:()=>e,unknownKeys:"strict",catchall:Bp.create(),typeName:xt.ZodObject,...Ut(t)});tu.lazycreate=(e,t)=>new tu({shape:e,unknownKeys:"strip",catchall:Bp.create(),typeName:xt.ZodObject,...Ut(t)});var Mw=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 eu(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 eu(c));return Se(r,{code:ye.invalid_union,unionErrors:a}),gt}}get options(){return this._def.options}};Mw.create=(e,t)=>new Mw({options:e,typeName:xt.ZodUnion,...Ut(t)});var _h=e=>e instanceof Lw?_h(e.schema):e instanceof ll?_h(e.innerType()):e instanceof zw?[e.value]:e instanceof Hw?e.options:e instanceof Fw?Qt.objectValues(e.enum):e instanceof $w?_h(e._def.innerType):e instanceof Uw?[void 0]:e instanceof qw?[null]:e instanceof ul?[void 0,..._h(e.unwrap())]:e instanceof Wm?[null,..._h(e.unwrap())]:e instanceof WN||e instanceof Kw?_h(e.unwrap()):e instanceof Vw?_h(e._def.innerType):[],uX=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=_h(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:xt.ZodDiscriminatedUnion,discriminator:t,options:r,optionsMap:i,...Ut(n)})}};function Y9e(e,t){let r=Vm(e),n=Vm(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=Y9e(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=Y9e(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 Dw=class extends Lt{_parse(t){let{status:r,ctx:n}=this._processInputParams(t),i=(o,s)=>{if(aX(o)||aX(s))return gt;let a=Y9e(o.value,s.value);return a.valid?((cX(o)||cX(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}))}};Dw.create=(e,t,r)=>new Dw({left:e,right:t,typeName:xt.ZodIntersection,...Ut(r)});var Km=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 dl(n,s,n.path,a)):null}).filter(s=>!!s);return n.common.async?Promise.all(o).then(s=>Ns.mergeArray(r,s)):Ns.mergeArray(r,o)}get items(){return this._def.items}rest(t){return new e({...this._def,rest:t})}};Km.create=(e,t)=>{if(!Array.isArray(e))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new Km({items:e,typeName:xt.ZodTuple,rest:null,...Ut(t)})};var dX=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 dl(n,a,n.path,a)),value:s._parse(new dl(n,n.data[a],n.path,a)),alwaysSet:a in n.data});return n.common.async?Ns.mergeObjectAsync(r,i):Ns.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:xt.ZodRecord,...Ut(n)}):new e({keyType:j2.create(),valueType:t,typeName:xt.ZodRecord,...Ut(r)})}},wS=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 dl(n,a,n.path,[u,"key"])),value:o._parse(new dl(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}}}};wS.create=(e,t,r)=>new wS({valueType:t,keyType:e,typeName:xt.ZodMap,...Ut(r)});var ES=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 dl(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)}};ES.create=(e,t)=>new ES({valueType:e,minSize:null,maxSize:null,typeName:xt.ZodSet,...Ut(t)});var lX=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 KN({data:a,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,yS(),bh].filter(u=>!!u),issueData:{code:ye.invalid_arguments,argumentsError:c}})}function i(a,c){return KN({data:a,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,yS(),bh].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 q2){let a=this;return ya(async function(...c){let u=new eu([]),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 ya(function(...c){let u=a._def.args.safeParse(c,o);if(!u.success)throw new eu([n(c,u.error)]);let d=Reflect.apply(s,this,u.data),l=a._def.returns.safeParse(d,o);if(!l.success)throw new eu([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:Km.create(t).rest(vh.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||Km.create([]).rest(vh.create()),returns:r||vh.create(),typeName:xt.ZodFunction,...Ut(n)})}},Lw=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})}};Lw.create=(e,t)=>new Lw({getter:e,typeName:xt.ZodLazy,...Ut(t)});var zw=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}};zw.create=(e,t)=>new zw({value:e,typeName:xt.ZodLiteral,...Ut(t)});function Iht(e,t){return new Hw({values:e,typeName:xt.ZodEnum,...Ut(t)})}var Hw=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 ya(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})}};Hw.create=Iht;var Fw=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 ya(t.data)}get enum(){return this._def.values}};Fw.create=(e,t)=>new Fw({values:e,typeName:xt.ZodNativeEnum,...Ut(t)});var q2=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 ya(n.then(i=>this._def.type.parseAsync(i,{path:r.path,errorMap:r.common.contextualErrorMap})))}};q2.create=(e,t)=>new q2({type:e,typeName:xt.ZodPromise,...Ut(t)});var ll=class extends Lt{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===xt.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"?kw(c.value):r.value==="dirty"?kw(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"?kw(a.value):r.value==="dirty"?kw(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(!B2(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=>B2(s)?Promise.resolve(i.transform(s.value,o)).then(a=>({status:r.value,value:a})):gt);Qt.assertNever(i)}};ll.create=(e,t,r)=>new ll({schema:e,typeName:xt.ZodEffects,effect:t,...Ut(r)});ll.createWithPreprocess=(e,t,r)=>new ll({schema:t,effect:{type:"preprocess",transform:e},typeName:xt.ZodEffects,...Ut(r)});var ul=class extends Lt{_parse(t){return this._getType(t)===Re.undefined?ya(void 0):this._def.innerType._parse(t)}unwrap(){return this._def.innerType}};ul.create=(e,t)=>new ul({innerType:e,typeName:xt.ZodOptional,...Ut(t)});var Wm=class extends Lt{_parse(t){return this._getType(t)===Re.null?ya(null):this._def.innerType._parse(t)}unwrap(){return this._def.innerType}};Wm.create=(e,t)=>new Wm({innerType:e,typeName:xt.ZodNullable,...Ut(t)});var $w=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}};$w.create=(e,t)=>new $w({innerType:e,typeName:xt.ZodDefault,defaultValue:typeof t.default=="function"?t.default:()=>t.default,...Ut(t)});var Vw=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 gS(i)?i.then(o=>({status:"valid",value:o.status==="valid"?o.value:this._def.catchValue({get error(){return new eu(n.common.issues)},input:n.data})})):{status:"valid",value:i.status==="valid"?i.value:this._def.catchValue({get error(){return new eu(n.common.issues)},input:n.data})}}removeCatch(){return this._def.innerType}};Vw.create=(e,t)=>new Vw({innerType:e,typeName:xt.ZodCatch,catchValue:typeof t.catch=="function"?t.catch:()=>t.catch,...Ut(t)});var xS=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}}};xS.create=e=>new xS({typeName:xt.ZodNaN,...Ut(e)});var wSr=Symbol("zod_brand"),WN=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}},GN=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(),kw(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:xt.ZodPipeline})}},Kw=class extends Lt{_parse(t){let r=this._def.innerType._parse(t),n=i=>(B2(i)&&(i.value=Object.freeze(i.value)),i);return gS(r)?r.then(i=>n(i)):n(r)}unwrap(){return this._def.innerType}};Kw.create=(e,t)=>new Kw({innerType:e,typeName:xt.ZodReadonly,...Ut(t)});function Aht(e,t){let r=typeof e=="function"?e(t):typeof e=="string"?{message:e}:e;return typeof r=="string"?{message:r}:r}function Oht(e,t={},r){return e?U2.create().superRefine((n,i)=>{let o=e(n);if(o instanceof Promise)return o.then(s=>{if(!s){let a=Aht(t,n),c=a.fatal??r??!0;i.addIssue({code:"custom",...a,fatal:c})}});if(!o){let s=Aht(t,n),a=s.fatal??r??!0;i.addIssue({code:"custom",...s,fatal:a})}}):U2.create()}var ESr={object:tu.lazycreate},xt;(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"})(xt||(xt={}));var xSr=(e,t={message:`Input not instance of ${e.name}`})=>Oht(r=>r instanceof e,t),L=j2.create,Rr=Rw.create,ASr=xS.create,SSr=Nw.create,pl=Bw.create,TSr=jw.create,PSr=_S.create,ISr=Uw.create,AS=qw.create,fl=U2.create,OSr=vh.create,CSr=Bp.create,kSr=vS.create,ue=wh.create,fe=tu.create,RSr=tu.strictCreate,SS=Mw.create,NSr=uX.create,BSr=Dw.create,jSr=Km.create,er=dX.create,USr=wS.create,qSr=ES.create,MSr=lX.create,DSr=Lw.create,LSr=zw.create,ml=Hw.create,zSr=Fw.create,HSr=q2.create,FSr=ll.create,$Sr=ul.create,VSr=Wm.create,KSr=ll.createWithPreprocess,WSr=GN.create,GSr=()=>L().optional(),JSr=()=>Rr().optional(),YSr=()=>pl().optional(),Xu={string:(e=>j2.create({...e,coerce:!0})),number:(e=>Rw.create({...e,coerce:!0})),boolean:(e=>Bw.create({...e,coerce:!0})),bigint:(e=>Nw.create({...e,coerce:!0})),date:(e=>jw.create({...e,coerce:!0}))};var ZSr=gt;var QSr=ml(["enc","sig"]),e7r=ml(["markdown","plain"]),t7r=ml(["recoverable","requires_buyer_input","requires_buyer_review","unrecoverable"]),r7r=ml(["error","info","warning"]),IS=ml(["canceled","complete_in_progress","completed","incomplete","ready_for_complete","requires_escalation"]),n7r=ml(["completed","failed","pending"]),i7r=ml(["digital","pickup","shipping"]),o7r=ml(["fulfilled","partial","processing","removed"]),s7r=ml(["across","each"]),Z9e=ml(["pickup","shipping"]),a7r=fe({config:er(L(),fl()),config_schema:L(),id:L(),instrument_schemas:ue(L()),name:L(),spec:L(),version:L()}),c7r=fe({alg:L().optional(),crv:L().optional(),e:L().optional(),kid:L(),kty:L(),n:L().optional(),use:QSr.optional(),x:L().optional(),y:L().optional()}),u7r=fe({config:er(L(),fl()).optional(),extends:L().optional(),name:L(),schema:L(),spec:L(),version:L()}),d7r=fe({endpoint:L()}),l7r=fe({schema:L()}),Cht=fe({endpoint:L(),schema:L()}),p7r=Cht,f7r=Cht,Ya=fe({email:L().optional(),first_name:L().optional(),last_name:L().optional(),phone_number:L().optional()}),wo=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()}),X9e=wo,kht=fe({id:L()}),m7r=kht,h7r=kht,JN=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()}),pX=fe({type:L()}),no=fe({"dev.ucp.buyer_ip":L().optional(),"dev.ucp.user_agent":L().optional()}),Q9e=no,Rht=fe({id:L(),image_url:L().optional(),price:Rr(),title:L()}),fX=fe({amount:Rr(),display_text:L().optional(),type:L()}),M2=fe({title:L().optional(),type:L(),url:L()}),Eh=fe({code:L().optional(),content:L(),content_type:e7r.optional(),path:L().optional(),severity:t7r.optional(),type:r7r,image_url:L().optional(),presentation:L().optional(),url:L().optional()}),eEe=Eh,OS=fe({id:L(),label:L().optional(),permalink_url:L()}),y7r=fe({amount:Rr(),display_text:L()}),g7r=fe({config:er(L(),fl()).optional(),extends:L().optional(),name:L(),schema:L().optional(),spec:L().optional(),version:L()}),tEe=fe({id:L(),quantity:Rr()}),b7r=tEe,_7r=tEe,v7r=tEe,w7r=fe({fulfilled:Rr(),original:Rr().optional(),total:Rr()}),E7r=fe({billing_address:JN.optional(),credential:pX.optional(),display:er(L(),fl()).optional(),handler_id:L(),id:L(),type:L()}),x7r=fe({checkout_mandate:L()}),A7r=fe({merchant_authorization:L().optional(),checkout_mandate:L()}),S7r=fe({analytics:pl().optional(),marketing:pl().optional(),preferences:pl().optional(),sale_of_data:pl().optional()});var T7r=S7r;var Nht=fe({codes:ue(L()).optional()}),P7r=Nht,I7r=fe({amount:Rr(),path:L()}),O7r=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:JN.optional(),name:L().optional()}),C7r=fe({carrier:L().optional(),description:L().optional(),earliest_fulfillment_time:Xu.date().optional(),id:L(),latest_fulfillment_time:Xu.date().optional(),title:L(),totals:ue(fX)}),k7r=fe({description:L().optional(),fulfillable_on:SS([AS(),L()]).optional(),line_item_ids:ue(L()),type:Z9e}),R7r=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:JN.optional(),name:L().optional()}),N7r=fe({max:Rr().optional(),min:Rr().optional()}),YN=fe({taxonomy:L().optional(),value:L()}),ZN=fe({html:L().optional(),markdown:L().optional(),plain:L().optional()}),TS=fe({amount:Rr(),currency:L()}),XN=fe({alt_text:L().optional(),height:Rr().optional(),type:L(),url:L(),width:Rr().optional()}),B7r=fe({id:L().optional(),label:L()}),QN=fe({count:Rr().optional(),scale_max:Rr(),scale_min:Rr().optional(),value:Rr()}),Bht=fe({available:pl().optional(),status:L().optional()}),j7r=Bht,jht=fe({type:L(),value:L()}),U7r=jht,q7r=fe({id:L(),match:L().optional()}),rEe=fe({id:L().optional(),label:L(),name:L()}),Uht=rEe,qht=fe({links:ue(M2).optional(),name:L().optional()}),M7r=qht,Mht=fe({unit:L(),value:Rr()});var D7r=Mht,L7r=fe({cursor:L().optional(),limit:Rr().optional()}),z7r=fe({cursor:L().optional(),has_next_page:pl(),total_count:Rr().optional()}),H7r=fe({handlers:ue(a7r).optional()}),F7r=fe({a2a:d7r.optional(),embedded:l7r.optional(),mcp:p7r.optional(),rest:f7r.optional(),spec:L(),version:L()}),CS=fe({item:m7r,quantity:Rr()}),$7r=fe({billing_address:JN.optional(),credential:pX.optional(),display:er(L(),fl()).optional(),handler_id:L(),id:L(),type:L(),selected:pl().optional()}),eB=fe({id:L().optional(),item:h7r,parent_id:L().optional(),quantity:Rr()}),mX=fe({instruments:ue($7r).optional()}),V7r=mX,tB=mX,kS=mX,hX=mX,Ww=fe({id:L(),item:Rht,parent_id:L().optional(),quantity:Rr(),totals:ue(fX)}),D2=fe({amount:Rr(),display_text:L().optional(),type:L(),lines:ue(y7r).optional()}),jp=fe({capabilities:er(L(),ue(g7r)),version:L()}),K7r=fe({description:L().optional(),id:L(),line_items:ue(b7r).optional(),occurred_at:Xu.date(),status:n7r,totals:ue(fX).optional(),type:L()}),W7r=fe({carrier:L().optional(),description:L().optional(),id:L(),line_items:ue(_7r),occurred_at:Xu.date(),tracking_number:L().optional(),tracking_url:L().optional(),type:L()}),G7r=fe({description:L().optional(),destination:JN,fulfillable_on:L().optional(),id:L(),line_items:ue(v7r),method_type:i7r}),J7r=fe({id:L(),item:Rht,parent_id:L().optional(),quantity:w7r,status:o7r,totals:ue(fX)}),Nxn=fe({payment_data:E7r}),Bxn=fe({ap2:x7r.optional()}),jxn=fe({attribution:er(L(),L()).optional(),buyer:Ya.optional(),context:wo.optional(),continue_url:L().optional(),currency:L(),expires_at:Xu.date().optional(),id:L(),line_items:ue(Ww),links:ue(M2),messages:ue(Eh).optional(),order:OS.optional(),payment:kS.optional(),signals:no.optional(),status:IS,totals:ue(D2),ucp:jp,ap2:A7r.optional()}),nEe=fe({email:L().optional(),first_name:L().optional(),last_name:L().optional(),phone_number:L().optional(),consent:T7r.optional()}),Y7r=nEe,Z7r=nEe,Dht=fe({attribution:er(L(),L()).optional(),buyer:Ya.optional(),context:wo.optional(),line_items:ue(eB),payment:hX.optional(),signals:no.optional(),discounts:P7r.optional()}),X7r=fe({allocations:ue(I7r).optional(),amount:Rr(),automatic:pl().optional(),code:L().optional(),eligibility:L().optional(),method:s7r.optional(),priority:Rr().optional(),provisional:pl().optional(),title:L()}),Lht=fe({id:L(),line_item_ids:ue(L()),options:ue(C7r).optional(),selected_option_id:SS([AS(),L()]).optional()}),Q7r=fe({destinations:ue(R7r).optional(),groups:ue(Lht).optional(),id:L(),line_item_ids:ue(L()),selected_destination_id:SS([AS(),L()]).optional(),type:Z9e}),Uxn=fe({attribution:er(L(),L()).optional(),buyer:Ya.optional(),context:wo.optional(),line_items:ue(CS),signals:no.optional()}),qxn=fe({attribution:er(L(),L()).optional(),buyer:Ya.optional(),context:wo.optional(),id:L(),line_items:ue(eB),signals:no.optional()}),Mxn=fe({attribution:er(L(),L()).optional(),buyer:Ya.optional(),context:wo.optional(),continue_url:L().optional(),currency:L(),expires_at:Xu.date().optional(),id:L(),line_items:ue(Ww),links:ue(M2).optional(),messages:ue(Eh).optional(),signals:no.optional(),totals:ue(D2),ucp:jp}),eTr=fe({attribution:er(L(),L()).optional(),buyer:Ya.optional(),context:wo.optional(),line_items:ue(eB),payment:hX.optional(),signals:no.optional()}),zht=eTr,Dxn=fe({attribution:er(L(),L()).optional(),buyer:Ya.optional(),context:wo.optional(),continue_url:L().optional(),currency:L(),expires_at:Xu.date().optional(),id:L(),line_items:ue(Ww),links:ue(M2),messages:ue(Eh).optional(),order:OS.optional(),payment:kS.optional(),signals:no.optional(),status:IS,totals:ue(D2),ucp:jp,cart_id:L().optional()}),iEe=fe({categories:ue(L()).optional(),price:N7r.optional()}),PS=fe({max:TS,min:TS}),oEe=fe({name:L(),values:ue(B7r)}),Hht=fe({amount:Rr(),currency:L(),measure:Mht,reference:D7r}),tTr=Hht,Lxn=fe({attribution:er(L(),L()).optional(),context:X9e.optional(),filters:iEe.optional(),id:L(),preferences:ue(L()).optional(),selected:ue(Uht).optional(),signals:Q9e.optional()}),zxn=fe({attribution:er(L(),L()).optional(),context:X9e.optional(),filters:iEe.optional(),pagination:L7r.optional(),query:L().optional(),signals:Q9e.optional()}),rTr=fe({capabilities:ue(u7r),services:er(L(),F7r),version:L()}),Hxn=fe({attribution:er(L(),L()).optional(),payment:V7r,signals:no.optional()}),Fht=fe({attribution:er(L(),L()).optional(),buyer:Ya.optional(),context:wo.optional(),continue_url:L().optional(),currency:L(),expires_at:Xu.date().optional(),id:L(),line_items:ue(Ww),links:ue(M2),messages:ue(Eh).optional(),order:OS.optional(),payment:kS.optional(),signals:no.optional(),status:IS,totals:ue(D2),ucp:jp}),nTr=fe({events:ue(W7r).optional(),expectations:ue(G7r).optional()}),$ht=fe({attribution:er(L(),L()).optional(),buyer:nEe.optional(),context:wo.optional(),line_items:ue(CS),payment:tB.optional(),signals:no.optional()}),Vht=fe({attribution:er(L(),L()).optional(),buyer:Z7r.optional(),context:wo.optional(),line_items:ue(eB),payment:hX.optional(),signals:no.optional()}),Kht=fe({attribution:er(L(),L()).optional(),buyer:Y7r.optional(),context:wo.optional(),continue_url:L().optional(),currency:L(),expires_at:Xu.date().optional(),id:L(),line_items:ue(Ww),links:ue(M2),messages:ue(Eh).optional(),order:OS.optional(),payment:kS.optional(),signals:no.optional(),status:IS,totals:ue(D2),ucp:jp}),Wht=fe({attribution:er(L(),L()).optional(),buyer:Ya.optional(),context:wo.optional(),line_items:ue(CS),payment:tB.optional(),signals:no.optional(),discounts:Nht.optional()}),iTr=fe({applied:ue(X7r).optional(),codes:ue(L()).optional()}),oTr=fe({destinations:ue(O7r).optional(),groups:ue(Lht).optional(),line_item_ids:ue(L()).optional(),selected_destination_id:SS([AS(),L()]).optional(),type:Z9e}),sTr=fe({available_methods:ue(k7r).optional(),methods:ue(Q7r).optional()}),Ght=fe({attribution:er(L(),L()).optional(),buyer:Ya.optional(),context:wo.optional(),line_items:ue(CS),payment:tB.optional(),signals:no.optional(),cart_id:L().optional()}),Fxn=fe({attribution:er(L(),L()).optional(),context:X9e.optional(),filters:iEe.optional(),ids:ue(L()),signals:Q9e.optional()}),aTr=fe({availability:Bht.optional(),barcodes:ue(jht).optional(),categories:ue(YN).optional(),description:ZN,handle:L().optional(),id:L(),list_price:TS.optional(),media:ue(XN).optional(),metadata:er(L(),fl()).optional(),options:ue(rEe).optional(),price:TS,rating:QN.optional(),seller:qht.optional(),sku:L().optional(),tags:ue(L()).optional(),title:L(),unit_price:Hht.optional(),url:L().optional(),inputs:ue(q7r)}),Jht=fe({availability:j7r.optional(),barcodes:ue(U7r).optional(),categories:ue(YN).optional(),description:ZN,handle:L().optional(),id:L(),list_price:TS.optional(),media:ue(XN).optional(),metadata:er(L(),fl()).optional(),options:ue(rEe).optional(),price:TS,rating:QN.optional(),seller:M7r.optional(),sku:L().optional(),tags:ue(L()).optional(),title:L(),unit_price:tTr.optional(),url:L().optional()}),cTr=fe({categories:ue(YN).optional(),description:ZN,handle:L().optional(),id:L(),list_price_range:PS.optional(),media:ue(XN).optional(),metadata:er(L(),fl()).optional(),options:ue(oEe).optional(),price_range:PS,rating:QN.optional(),tags:ue(L()).optional(),title:L(),url:L().optional(),variants:ue(Jht)}),$xn=fe({payment:H7r.optional(),signing_keys:ue(c7r).optional(),ucp:rTr}),Yht=fe({attribution:er(L(),L()).optional(),buyer:Ya.optional(),context:wo.optional(),line_items:ue(CS),payment:tB.optional(),signals:no.optional()}),uTr=fe({adjustments:ue(K7r).optional(),attribution:er(L(),L()).optional(),checkout_id:L(),currency:L(),fulfillment:nTr,id:L(),label:L().optional(),line_items:ue(J7r),messages:ue(Eh).optional(),permalink_url:L(),totals:ue(D2),ucp:jp}),Zht=fe({attribution:er(L(),L()).optional(),buyer:Ya.optional(),context:wo.optional(),continue_url:L().optional(),currency:L(),expires_at:Xu.date().optional(),id:L(),line_items:ue(Ww),links:ue(M2),messages:ue(Eh).optional(),order:OS.optional(),payment:kS.optional(),signals:no.optional(),status:IS,totals:ue(D2),ucp:jp,discounts:iTr.optional()}),Xht=fe({methods:ue(oTr).optional()}),Qht=fe({attribution:er(L(),L()).optional(),buyer:Ya.optional(),context:wo.optional(),line_items:ue(eB),payment:hX.optional(),signals:no.optional(),fulfillment:Xht.optional()}),eyt=fe({attribution:er(L(),L()).optional(),buyer:Ya.optional(),context:wo.optional(),continue_url:L().optional(),currency:L(),expires_at:Xu.date().optional(),id:L(),line_items:ue(Ww),links:ue(M2),messages:ue(Eh).optional(),order:OS.optional(),payment:kS.optional(),signals:no.optional(),status:IS,totals:ue(D2),ucp:jp,fulfillment:sTr.optional()}),dTr=fe({categories:ue(YN).optional(),description:ZN,handle:L().optional(),id:L(),list_price_range:PS.optional(),media:ue(XN).optional(),metadata:er(L(),fl()).optional(),options:ue(oEe).optional(),price_range:PS,rating:QN.optional(),tags:ue(L()).optional(),title:L(),url:L().optional(),variants:ue(aTr)}),lTr=fe({options:ue(oEe).optional(),selected:ue(Uht).optional(),categories:ue(YN).optional(),description:ZN,handle:L().optional(),id:L(),list_price_range:PS.optional(),media:ue(XN).optional(),metadata:er(L(),fl()).optional(),price_range:PS,rating:QN.optional(),tags:ue(L()).optional(),title:L(),url:L().optional(),variants:ue(Jht)}),Vxn=fe({messages:ue(eEe).optional(),pagination:z7r.optional(),products:ue(cTr),ucp:jp}),tyt=fe({attribution:er(L(),L()).optional(),buyer:Ya.optional(),context:wo.optional(),line_items:ue(CS),payment:tB.optional(),signals:no.optional(),fulfillment:Xht.optional()}),Kxn=fe({messages:ue(eEe).optional(),products:ue(dTr),ucp:jp}),Wxn=fe({messages:ue(eEe).optional(),product:lTr,ucp:jp});var Zxn=pX.extend({token:Dr.string().optional()}),pTr=Dr.object({webhook_url:Dr.string().url().optional()}),ryt=Fht.extend(eyt.pick({fulfillment:!0}).shape).extend(Zht.pick({discounts:!0}).shape).extend(Kht.pick({buyer:!0}).shape).extend({platform:pTr.optional()}),nyt=Yht.extend(tyt.pick({fulfillment:!0}).shape).extend(Wht.pick({discounts:!0}).shape).extend($ht.pick({buyer:!0}).shape).extend(Ght.pick({cart_id:!0}).shape),iyt=zht.extend(Qht.pick({fulfillment:!0}).shape).extend(Dht.pick({discounts:!0}).shape).extend(Vht.pick({buyer:!0}).shape);nu();async function yX(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 gX(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 fTr=3e4,oyt=2*1024*1024,Up=class extends Error{constructor(r,n,i){super(r);this.rpcCode=n;this.httpStatus=i;this.name="UcpRpcError"}rpcCode;httpStatus};function syt(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 ayt(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"?nyt:iyt).safeParse(e).success)throw new Error(`UCP ${t} checkout input failed schema validation`);return e}function mTr(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 cyt(e,t,r,n){try{e[t](r,n)}catch{}}function hTr(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 bX=class{endpoint;platformProfileUrl;fetchImpl;signal;timeoutMs;boundaryLogger;requestId=1;constructor(t){this.endpoint=syt(t.endpoint,"UCP MCP endpoint").toString(),this.platformProfileUrl=syt(t.platformProfileUrl,"UCP platform profile URL").toString(),this.fetchImpl=t.fetch??fetch,this.signal=t.signal,this.timeoutMs=t.timeoutMs??fTr,this.boundaryLogger=t.logger??ke}async createCheckout(t){return await this.callCheckout("create_checkout",{meta:this.metadata(),checkout:ayt(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:ayt(r,"update")})}metadata(){return{"ucp-agent":{profile:this.platformProfileUrl}}}async callCheckout(t,r){let n=this.requestId++,i=gX(this.timeoutMs,this.signal),o=(0,uyt.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 yX(u,oyt,"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 Up(m.message,void 0,u.status):m}if(Buffer.byteLength(d)>oyt)throw new Up("UCP MCP response exceeds the 2 MiB limit",void 0,u.status);let l;try{l=JSON.parse(d)}catch{throw new Up("UCP MCP response is not valid JSON",void 0,u.status)}if(!mTr(l))throw new Up("UCP MCP response is not a valid JSON-RPC envelope",void 0,u.status);if(l.id!==n)throw new Up("UCP MCP response id does not match the request",void 0,u.status);if("error"in l)throw new Up(`UCP MCP error ${l.error.code}: ${l.error.message}`,l.error.code,u.status);if(!u.ok)throw new Up(`UCP MCP request failed with HTTP ${u.status}`,void 0,u.status);let p=l.result;if(!p?.structuredContent)throw new Up("UCP MCP response is missing result.structuredContent");if(!ryt.safeParse(hTr(p.structuredContent)).success)throw new Up("UCP checkout response failed schema validation");return cyt(this.boundaryLogger,"info","ucp:checkout_rpc",{correlationId:o,endpointOrigin:s,rpcMethod:t,httpStatus:c,elapsedMs:Date.now()-a}),p.structuredContent}catch(u){throw cyt(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 lyt=require("node:crypto");nu();var vX="2026-04-08",yTr="dev.ucp.shopping",gTr="dev.ucp.shopping.checkout",bTr=1024*1024,_Tr=1e4,vTr="https://ucp.dev",rB=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"),wTr=Dr.object({version:Dr.string().regex(/^\d{4}-\d{2}-\d{2}$/),spec:rB,schema:rB,transport:Dr.enum(["rest","mcp","a2a","embedded"]),endpoint:rB.optional()}).passthrough(),ETr=Dr.object({version:Dr.string().regex(/^\d{4}-\d{2}-\d{2}$/),spec:rB,schema:rB,extends:Dr.union([Dr.string(),Dr.array(Dr.string()).min(1)]).optional()}).passthrough(),xTr=Dr.object({ucp:Dr.object({version:Dr.string().regex(/^\d{4}-\d{2}-\d{2}$/),services:Dr.record(Dr.array(wTr)),capabilities:Dr.record(Dr.array(ETr)),payment_handlers:Dr.record(Dr.array(Dr.unknown())).optional()}).passthrough(),signing_keys:Dr.array(Dr.unknown()).optional()}).passthrough();function ATr(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 _X(e,t){if(new URL(e).origin!==vTr)throw new Error(`${t} must be governed by the ucp.dev namespace`)}function dyt(e,t,r,n){try{e[t](r,n)}catch{}}async function STr(e,t={}){let r=ATr(e,"UCP business URL"),n=gX(t.timeoutMs??_Tr,t.signal),i=t.logger??ke,o=(0,lyt.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 yX(c,bTr,"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=xTr.safeParse(d);if(!l.success)throw new Error("UCP profile response does not match the 2026-04-08 profile shape");return dyt(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 dyt(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 TTr(e){if(e.ucp.version!==vX)throw new Error(`Unsupported UCP version: ${e.ucp.version}`);let t=e.ucp.capabilities[gTr]?.find(i=>i.version===vX);if(!t)throw new Error("Business does not advertise UCP checkout 2026-04-08");_X(t.spec,"Checkout capability spec"),_X(t.schema,"Checkout capability schema");let r=e.ucp.services[yTr]?.find(i=>i.version===vX&&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");_X(r.spec,"Shopping service spec"),_X(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 pyt(e,t={}){let r=await STr(e,t);return{...r,endpoint:TTr(r.profile),version:vX}}var PTr="https://app.visacli.sh/.well-known/ucp";function ITr(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 OTr(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 sEe(e,t=new Set){if(Array.isArray(e))for(let r of e)sEe(r,t);else if(e&&typeof e=="object")for(let[r,n]of Object.entries(e))r==="endpoint"?OTr(n,t):sEe(n,t);return t}function CTr(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=sEe(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 kTr(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 RTr(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 myt(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??pyt)(e.business),i=await(t.getCheckout??(async(u,d)=>await new bX({endpoint:u.endpoint,platformProfileUrl:ITr(t.platformProfileUrl??process.env.VISA_UCP_PROFILE_URL??PTr)}).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=kTr(i),a=CTr(r.businessOrigin,i.continue_url,r.profile),c=`ucp_${(0,fyt.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:RTr(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>."}}Z2();function NTr(){return ba()}var Rp=new Ch(()=>Ai.getSessionToken()),BTr="4.1.0-rc.37",CAn=["","","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(`
20895
20895
  `);function jTr(e){if(!e||typeof e!="string")return{opened:!1,blockedReason:"invalid_url"};let t=qS(e);if(!t)return{opened:!1,blockedReason:"invalid_url"};if(fAe())return{opened:!1,url:t,blockedReason:"suppressed"};let r=US();if(r.headless)return ke.info(`Browser auto-open skipped (${r.reason}). URL: ${t}`),{opened:!1,url:t,blockedReason:"headless"};let i=[NTr(),_l()].filter(s=>!!s).map(s=>WEe(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=gB(i);return o?((0,yyt.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 "${EX.platform()}". URL: ${i}`),{opened:!1,url:i,blockedReason:"unsupported_platform"})}function UTr(){let e=!1,t;try{let n=gyt.join(EX.homedir(),".claude","settings.json");if(wX.existsSync(n)){let i=JSON.parse(wX.readFileSync(n,"utf-8")),o=typeof i.statusLine=="object"?i.statusLine.command:"";e=Th(o)}}catch{}let r=AB();return r||(t="visa-cli config hud enable"),{statusLine:e,shellHud:r,...t?{shellHudSetup:t}:{}}}async function qTr(e){let t=await Rp.getStatus(e);return t.hud=UTr(),!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=BTr,t}async function MTr(e,t){return await Rp.feedback(e.message,e.transaction_id,t)}async function DTr(e){let t=await wN({api:Rp,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 aEe=new Set(["auth.serverUrl"]);function nB(){return Object.keys(Y2).filter(e=>!aEe.has(e)).sort()}function byt(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:nB()}}async function LTr(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(aEe.has(e.key))return ke.warn("config:set:rejected:mcp-forbidden",{key:e.key}),byt(e.key,"set");ke.info("config:set",{key:e.key});try{let t=DB(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 bl?"UNKNOWN_KEY":"INVALID_VALUE",n=t instanceof bl?`Unknown setting "${e.key}". MCP-settable keys: ${nB().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:nB()}}}async function zTr(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(aEe.has(e.key))return ke.warn("config:unset:rejected:mcp-forbidden",{key:e.key}),byt(e.key,"unset");ke.info("config:unset",{key:e.key});try{let t=LB(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 bl?"UNKNOWN_KEY":"INVALID_VALUE",n=t instanceof bl?`Unknown setting "${e.key}". MCP-settable keys: ${nB().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:nB()}}}async function HTr(e=_l(),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=_N();if(p.kind==="claimed"){let f=p.credential,m;if(process.env.SUBWAY_MESH==="visa"&&f.name){let{registerOnVisaMeshIfEnabled:y}=await Promise.resolve().then(()=>(B9e(),G1t));m=await y(f.name)}ke.info("agent:enroll_already_connected",{keyBound:f.keyBound,meshRegistered:m});let h=m===void 0?"":m?` Registered ${f.name??"this device"} on the .visa mesh.`:` Could not reach the .visa mesh \u2014 run \`visa register ${f.name??"<name>"}\` to join it.`;return{success:!0,alreadyConnected:!0,...f.name?{name:f.name}:{},keyBound:f.keyBound,...m!==void 0?{meshRegistered:m}:{},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).`+h+' Call enroll_agent with {"action":"start","force":true} to start a brand-new enrollment anyway.'}}}let{challenge:r,confirmCode:n,agentPkX:i,walletPkHex:o}=bN(),s=WS(e),a=`${s}?cli=${r}&cliPk=${i}${o?`&walletPk=${o}`:""}`;ke.info("agent:enroll_open",{url:s});let c=jTr(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 FTr(e=_l()){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 vN(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 hyt(){if(await Ai.clearAll(),!!Rh())try{await KB()}catch(e){ke.warn("reset:touchid_key_delete_failed",{error:e instanceof Error?e.message:String(e)})}}async function $Tr(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 hyt(),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 Rp.logout(void 0,t)}catch{}return await hyt(),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 VTr(e){if(!e.name)return{success:!1,error:"name is required"};try{let{registerName:t,ensureMailbox:r}=await Promise.resolve().then(()=>(Tw(),BN)),n=await t(e.name);return await r(e.name),{success:!0,...n}}catch(t){let{CardRequiredError:r}=await Promise.resolve().then(()=>(f4(),wSe));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 KTr(e){if(!e.name)return{success:!1,error:"name is required"};try{let{resolveMeshName:t}=await Promise.resolve().then(()=>(Tw(),BN));return{success:!0,...await t(e.name)}}catch(t){return{success:!1,error:t instanceof Error?t.message:String(t)}}}async function WTr(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(()=>(Tw(),BN)),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 GTr(e){try{let{readInbox:t,resolveActingName:r,meshName:n}=await Promise.resolve().then(()=>(Tw(),BN)),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 Gw=class{static async subwayRegister(t){return VTr(t||{})}static async subwayFind(t){return KTr(t||{})}static async subwaySend(t){return WTr(t||{})}static async subwayInbox(t){return GTr(t||{})}static async getStatus(t){return qTr(t)}static async feedback(t,r){return MTr(t,r)}static async configList(t){return DTr(t||{})}static async configSet(t){return LTr(t||{})}static async configUnset(t){return zTr(t||{})}static async reset(t,r){return $Tr(t,r)}static async enrollAgent(t={},r){let n=t?.action??"start";return n==="start"?HTr(void 0,t?.force===!0):n==="claim"?FTr():{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 vht(t)}static async ucpCheckoutHandoff(t,r){return rS("ucp_checkout_handoff")&&(await AZ(),rS("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."}:myt(t)}static async payMerchantStatus(t={},r){return _ht(t)}static async startCardMandate(t={},r){return wht(t)}static async submitFeedback(t,r,n){ke.info("feedback:submit",{length:t.length,transactionId:r,hasContext:!!n});try{let i=await Rp.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 Rp.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 _yt(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 vyt=require("node:fs/promises"),wyt=require("node:os"),Eyt=require("node:path");async function cEe(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: ${tS(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 JTr=300*1e3;function YTr(){return process.env.VISA_CARD_MANDATE_LEDGER_FILE??(0,Eyt.join)((0,wyt.homedir)(),".visa-mcp","card-mandates.json")}async function ZTr(){try{let e=JSON.parse(await(0,vyt.readFile)(YTr(),"utf8"));return!e||!Array.isArray(e.mandates)?{mandates:[]}:e}catch(e){if(e.code==="ENOENT")return null;throw e}}function XTr(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>JTr?n:n+i.amountMinor},0);return e.ceilingMinor-e.spentMinor-r}async function xyt(e={}){let t=e.log??console.log,r=e.error??console.error,n=e.exit??(s=>process.exit(s)),i=e.readLedger??ZTr,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
20896
20896
  `);for(let u of c)t(` ${u.mandateId}`),t(` merchant: ${u.merchantName||u.merchantHost||"(unknown)"}`),t(` remaining: ${tS(XTr(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)}}nu();function Ayt(e,t=process.stderr){if(Ph()||!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(`
20897
20897
  \x1B[33m\u2191 ${n}\x1B[0m
@@ -20907,7 +20907,7 @@ If building from source, run native/build-win.bat first.`);Jr.mkdirSync(kh,{recu
20907
20907
  `)}function gPr(e,t){return e.length<=t?e:`${e.slice(0,Math.max(t-1,0))}\u2026`}function bPr(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,gPr(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(`
20908
20908
  `)}function _Pr(){let e=IZ.map(r=>({id:r.id,detected:P3e(r),connected:B3e(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(`
20909
20909
  `)}function vPr(e,t){if(e==="find"){let r=t.listings;mEe(bPr(r));return}if(e==="connections"){mEe(_Pr());return}mEe(JSON.stringify(t,null,2))}async function Mp(e,t,r){let n="table";try{n=yPr(t);let i=await r();n==="table"?vPr(e,i):fEe(Tyt(e,{data:i}),n)}catch(i){let o=i instanceof Error?i.message:String(i);n==="table"?process.stderr.write(`Error: ${o}
20910
- `):fEe(Pyt(e,o),n),process.exitCode=1}}function wPr(){this.help({error:!1})}function kyt(e){qp(e.command("find <intent>").description("Find payable services by outcome; discovery never spends money.").option("--provider <provider>",`Directory provider: all, ${vZ.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 Mp("find",n,async()=>{let i=["all",...vZ];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 L2().find({intent:r,provider:n.provider,protocol:n.protocol,maxUsd:n.max,limit:s})})}),qp(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 Mp("inspect",n,()=>L2().inspect({listingId:r,url:n.url,bodyJson:Cyt(n.input)}))}),qp(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 Mp("pay",n,()=>L2().pay({listingId:r,url:n.url,maxUsd:n.max,bodyJson:Cyt(n.input)}))});let t=e.command("wallet").description("Inspect, fund, and constrain the principal v4 wallet.").action(wPr);qp(t.command("show").description("Show wallet, network, policy, and budgets.")).action(async r=>Mp("wallet show",r,()=>L2().status())),qp(t.command("fund").description("Show the wallet funding address and network guidance.")).action(async r=>Mp("wallet fund",r,()=>L2().fund())),qp(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=>Mp("wallet limits",r,()=>L2().limits({perTransaction:r.perTransaction,daily:r.daily,session:r.session,expiresAt:r.expiresAt}))),qp(e.command("activity").description("Show journaled v4 wallet receipts.").option("--limit <count>","Return at most the newest N receipts")).action(async r=>{await Mp("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 L2().activity(n)})}),qp(e.command("receipt <receipt-id>").description("Show one journaled payment receipt.")).action(async(r,n)=>{await Mp("receipt",n,()=>L2().receipt(r))}),qp(e.command("connections").description("Show supported MCP client connections.")).action(async r=>Mp("connections",r,async()=>IZ.map(n=>({id:n.id,name:n.displayName,detected:P3e(n),connected:B3e(n)})))),qp(e.command("connect <client>").description("Connect Visa to an AI or MCP client.")).action(async(r,n)=>{await Mp("connect",n,async()=>{let i=SN(r);if(!i)throw new Error(`unknown client: ${r}`);return i0t(i)})}),qp(e.command("disconnect <client>").description("Remove Visa from an AI or MCP client.")).action(async(r,n)=>{await Mp("disconnect",n,async()=>{let i=SN(r);if(!i)throw new Error(`unknown client: ${r}`);return s0t(i)})})}nu();var yEe=!1;async function gEe(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")||!Rh())throw n;if(ke.warn("attestation:key-mismatch",{action:"browser-recovery"}),r){if(yEe)throw ke.warn("attestation:browser-recovery-suppressed",{reason:"already-attempted-in-process"}),n;yEe=!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 RAe();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 yEe=!1,a}catch(o){throw ke.error("attestation:recovery-failure",{error:o.message}),n}}throw n}}function bEe(e){return e?typeof e.hasAnyAttestationKey=="boolean"?e.hasAnyAttestationKey:typeof e.hasAttestationKey=="boolean"?e.hasAttestationKey:!0:!1}UN();c9e();Tw();f4();var EPr="4.1.0-rc.36";async function Ryt(e){let t=await NN(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: ${RN} (mesh="${t.mesh}")`),console.log(` chat: visa subway listen --as ${e} | visa subway send --as ${e} <to> "<text>"`)}var oB=(e,t)=>{if(t instanceof r0){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 Nyt(e){if(!E9e(EPr))return;e.command("register <name>").description(`Register a name on the "${ro}" Subway mesh (reuses your CLI agent key \u2014 no TAP setup needed).`).action(async r=>{try{await Ryt(r)}catch(n){oB("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 Ryt(r)}catch(n){oB("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=ZZ(i.as),s=await P9e(o,r,n);console.log(`\u2713 sent to ${s.to} as ${s.as}`)}catch(o){oB("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 T9e(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){oB("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=ZZ(r.as),i=lS(n,{autoReconnect:!0});await pS(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 ${ww(n)} on "${ro}" 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){oB("listen",n)}}),t.command("whoami").description("List names this CLI has registered on the relay.").action(()=>{let r=I9e();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}`)})}Z2();var PPr=(0,Lyt.promisify)(Dyt.execFile);function _Ee(){let e=n4();setImmediate(()=>{ZX(e,{getCommand:()=>IB(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 RS(){this.help({error:!1})}var Qo=new qyt.Command,SX=null,Byt=!1;function Lp(){return SX=new Ch(()=>Ai.getSessionToken()),SX}var IPr="api-keys-create",jyt=0,Uyt="",OPr=12e3;async function CPr(e){let{nonce:t}=await e.getAttestationChallenge(),r=Buffer.from(JSON.stringify({nonce:t,amount:jyt,merchant:Uyt,context:IPr})).toString("base64");return{signature:await hQ(r,"create a Visa Key",{timeoutMs:OPr}),nonce:t,amount:jyt,merchant:Uyt}}async function kPr(e){let t=await e.getStatus();return t.attestationRequired!==!1||bEe(t)}function zyt(e){return async()=>{let t=await NPr(e);return{success:t,...t?{}:{message:"Biometric recovery was not completed."}}}}async function RPr(e){let n=Date.now()+3e5;for(;Date.now()<n;)try{let i=await globalThis.fetch(`${ba()}/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 zX(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 zX(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 NPr(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(!bEe(t))return!1;let r=Myt.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 Qw(n.recoveryUrl),await RPr(r),console.log(" Server biometric state cleared."),!0}function Hyt(e){return`$${(e/100).toFixed(2)}`}function BPr(e){return typeof e=="number"?Hyt(e):"no cap"}function jPr(e){let t=`visa-cli-${Eo.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 UPr(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 vEe=!1;async function Fyt(e){let t=(0,wEe.createInterface)({input:process.stdin,output:process.stdout});try{return(await t.question(e)).trim()}finally{t.close()}}async function qPr(e,t=!1){let r=Zxe(e,{json:t,isTTY:process.stdin.isTTY===!0});if(r!==void 0)return r;if(await $xe("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 vEe=!0,500;let i=await Fyt("Daily cap USD (1-100): ");if(!i)throw new Error("--daily-cap is required when declining the recommended daily cap.");return tQ(i)}async function MPr(e,t=!1){let r=Xxe(e,{json:t,isTTY:process.stdin.isTTY===!0,recommendedCapsAccepted:vEe});if(r!==void 0)return vEe=!1,r;let n=await Fyt("Cumulative cap USD (1-10000, default 25): ");return rQ(n||"25")}function DPr(e){return e&&e.length>0?e.join(", "):"all tools"}function LPr(e){let t=`
20910
+ `):fEe(Pyt(e,o),n),process.exitCode=1}}function wPr(){this.help({error:!1})}function kyt(e){qp(e.command("find <intent>").description("Find payable services by outcome; discovery never spends money.").option("--provider <provider>",`Directory provider: all, ${vZ.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 Mp("find",n,async()=>{let i=["all",...vZ];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 L2().find({intent:r,provider:n.provider,protocol:n.protocol,maxUsd:n.max,limit:s})})}),qp(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 Mp("inspect",n,()=>L2().inspect({listingId:r,url:n.url,bodyJson:Cyt(n.input)}))}),qp(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 Mp("pay",n,()=>L2().pay({listingId:r,url:n.url,maxUsd:n.max,bodyJson:Cyt(n.input)}))});let t=e.command("wallet").description("Inspect, fund, and constrain the principal v4 wallet.").action(wPr);qp(t.command("show").description("Show wallet, network, policy, and budgets.")).action(async r=>Mp("wallet show",r,()=>L2().status())),qp(t.command("fund").description("Show the wallet funding address and network guidance.")).action(async r=>Mp("wallet fund",r,()=>L2().fund())),qp(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=>Mp("wallet limits",r,()=>L2().limits({perTransaction:r.perTransaction,daily:r.daily,session:r.session,expiresAt:r.expiresAt}))),qp(e.command("activity").description("Show journaled v4 wallet receipts.").option("--limit <count>","Return at most the newest N receipts")).action(async r=>{await Mp("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 L2().activity(n)})}),qp(e.command("receipt <receipt-id>").description("Show one journaled payment receipt.")).action(async(r,n)=>{await Mp("receipt",n,()=>L2().receipt(r))}),qp(e.command("connections").description("Show supported MCP client connections.")).action(async r=>Mp("connections",r,async()=>IZ.map(n=>({id:n.id,name:n.displayName,detected:P3e(n),connected:B3e(n)})))),qp(e.command("connect <client>").description("Connect Visa to an AI or MCP client.")).action(async(r,n)=>{await Mp("connect",n,async()=>{let i=SN(r);if(!i)throw new Error(`unknown client: ${r}`);return i0t(i)})}),qp(e.command("disconnect <client>").description("Remove Visa from an AI or MCP client.")).action(async(r,n)=>{await Mp("disconnect",n,async()=>{let i=SN(r);if(!i)throw new Error(`unknown client: ${r}`);return s0t(i)})})}nu();var yEe=!1;async function gEe(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")||!Rh())throw n;if(ke.warn("attestation:key-mismatch",{action:"browser-recovery"}),r){if(yEe)throw ke.warn("attestation:browser-recovery-suppressed",{reason:"already-attempted-in-process"}),n;yEe=!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 RAe();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 yEe=!1,a}catch(o){throw ke.error("attestation:recovery-failure",{error:o.message}),n}}throw n}}function bEe(e){return e?typeof e.hasAnyAttestationKey=="boolean"?e.hasAnyAttestationKey:typeof e.hasAttestationKey=="boolean"?e.hasAttestationKey:!0:!1}UN();c9e();Tw();f4();var EPr="4.1.0-rc.37";async function Ryt(e){let t=await NN(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: ${RN} (mesh="${t.mesh}")`),console.log(` chat: visa subway listen --as ${e} | visa subway send --as ${e} <to> "<text>"`)}var oB=(e,t)=>{if(t instanceof r0){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 Nyt(e){if(!E9e(EPr))return;e.command("register <name>").description(`Register a name on the "${ro}" Subway mesh (reuses your CLI agent key \u2014 no TAP setup needed).`).action(async r=>{try{await Ryt(r)}catch(n){oB("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 Ryt(r)}catch(n){oB("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=ZZ(i.as),s=await P9e(o,r,n);console.log(`\u2713 sent to ${s.to} as ${s.as}`)}catch(o){oB("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 T9e(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){oB("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=ZZ(r.as),i=lS(n,{autoReconnect:!0});await pS(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 ${ww(n)} on "${ro}" 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){oB("listen",n)}}),t.command("whoami").description("List names this CLI has registered on the relay.").action(()=>{let r=I9e();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}`)})}Z2();var PPr=(0,Lyt.promisify)(Dyt.execFile);function _Ee(){let e=n4();setImmediate(()=>{ZX(e,{getCommand:()=>IB(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 RS(){this.help({error:!1})}var Qo=new qyt.Command,SX=null,Byt=!1;function Lp(){return SX=new Ch(()=>Ai.getSessionToken()),SX}var IPr="api-keys-create",jyt=0,Uyt="",OPr=12e3;async function CPr(e){let{nonce:t}=await e.getAttestationChallenge(),r=Buffer.from(JSON.stringify({nonce:t,amount:jyt,merchant:Uyt,context:IPr})).toString("base64");return{signature:await hQ(r,"create a Visa Key",{timeoutMs:OPr}),nonce:t,amount:jyt,merchant:Uyt}}async function kPr(e){let t=await e.getStatus();return t.attestationRequired!==!1||bEe(t)}function zyt(e){return async()=>{let t=await NPr(e);return{success:t,...t?{}:{message:"Biometric recovery was not completed."}}}}async function RPr(e){let n=Date.now()+3e5;for(;Date.now()<n;)try{let i=await globalThis.fetch(`${ba()}/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 zX(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 zX(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 NPr(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(!bEe(t))return!1;let r=Myt.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 Qw(n.recoveryUrl),await RPr(r),console.log(" Server biometric state cleared."),!0}function Hyt(e){return`$${(e/100).toFixed(2)}`}function BPr(e){return typeof e=="number"?Hyt(e):"no cap"}function jPr(e){let t=`visa-cli-${Eo.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 UPr(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 vEe=!1;async function Fyt(e){let t=(0,wEe.createInterface)({input:process.stdin,output:process.stdout});try{return(await t.question(e)).trim()}finally{t.close()}}async function qPr(e,t=!1){let r=Zxe(e,{json:t,isTTY:process.stdin.isTTY===!0});if(r!==void 0)return r;if(await $xe("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 vEe=!0,500;let i=await Fyt("Daily cap USD (1-100): ");if(!i)throw new Error("--daily-cap is required when declining the recommended daily cap.");return tQ(i)}async function MPr(e,t=!1){let r=Xxe(e,{json:t,isTTY:process.stdin.isTTY===!0,recommendedCapsAccepted:vEe});if(r!==void 0)return vEe=!1,r;let n=await Fyt("Cumulative cap USD (1-10000, default 25): ");return rQ(n||"25")}function DPr(e){return e&&e.length>0?e.join(", "):"all tools"}function LPr(e){let t=`
20911
20911
  Options:
20912
20912
  `,r=`
20913
20913
  Commands: