@halliday-sdk/payments 0.1.0 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (28) hide show
  1. package/README.md +86 -0
  2. package/dist/paymentsApiClient/index.cjs.min.js +2 -0
  3. package/dist/paymentsApiClient/index.cjs.min.js.map +1 -0
  4. package/dist/paymentsApiClient/index.d.ts +1868 -0
  5. package/dist/paymentsApiClient/index.esm.min.js +2 -0
  6. package/dist/paymentsApiClient/index.esm.min.js.map +1 -0
  7. package/dist/paymentsWidget/ethers/index.cjs.min.js +1 -1
  8. package/dist/paymentsWidget/ethers/index.cjs.min.js.map +1 -1
  9. package/dist/paymentsWidget/ethers/index.d.ts +8 -7
  10. package/dist/paymentsWidget/ethers/index.esm.min.js +1 -1
  11. package/dist/paymentsWidget/ethers/index.esm.min.js.map +1 -1
  12. package/dist/paymentsWidget/ethers/index.umd.min.js +1 -1
  13. package/dist/paymentsWidget/ethers/index.umd.min.js.map +1 -1
  14. package/dist/paymentsWidget/index.cjs.min.js +1 -1
  15. package/dist/paymentsWidget/index.cjs.min.js.map +1 -1
  16. package/dist/paymentsWidget/index.d.ts +67 -14
  17. package/dist/paymentsWidget/index.esm.min.js +1 -1
  18. package/dist/paymentsWidget/index.esm.min.js.map +1 -1
  19. package/dist/paymentsWidget/index.umd.min.js +1 -1
  20. package/dist/paymentsWidget/index.umd.min.js.map +1 -1
  21. package/dist/paymentsWidget/viem/index.cjs.min.js +2 -0
  22. package/dist/paymentsWidget/viem/index.cjs.min.js.map +1 -0
  23. package/dist/paymentsWidget/viem/index.d.ts +72 -0
  24. package/dist/paymentsWidget/viem/index.esm.min.js +2 -0
  25. package/dist/paymentsWidget/viem/index.esm.min.js.map +1 -0
  26. package/dist/paymentsWidget/viem/index.umd.min.js +2 -0
  27. package/dist/paymentsWidget/viem/index.umd.min.js.map +1 -0
  28. package/package.json +20 -5
@@ -1,2 +1,2 @@
1
- "use strict";require("ethers");const r=async(r,a,e)=>{if(!a.provider)throw new Error("Signer does not have a provider");try{await a.provider.send("wallet_switchEthereumChain",[{chainId:`0x${r.toString(16)}`}])}catch(t){if(console.error("Error switching chain",t),!e)throw t;try{await(async(r,a)=>{if(!r.provider)throw new Error("Signer does not have a provider");await r.provider.send("wallet_addEthereumChain",[a])})(a,(r=>({chainId:String(r.chain_id),blockExplorerUrls:[r.explorer],chainName:r.network,iconUrls:[r.image],nativeCurrency:r.native_currency,rpcUrls:[r.rpc]}))(e)),await a.provider.send("wallet_switchEthereumChain",[{chainId:`0x${r.toString(16)}`}])}catch(r){throw console.error("Error adding chain",r),r}}};exports.connectSigner=a=>({getAddress:async()=>(await a()).getAddress(),signMessage:async({message:r,ownerAddress:e})=>{const t=await a(e);if(e){if(e!==await t.getAddress())throw new Error("Owner address does not match")}return await t.signMessage(r)},sendTransaction:async(e,t)=>{let n=await a();const i=await(n.provider?.getNetwork());i?.chainId?.toString()!==e.chainId.toString()&&(await r(e.chainId,n,t),n=await a());const s=await(async({signer:r,transaction:a,confirmations:e,timeout:t})=>{const n=await r.sendTransaction(a);return await n.wait(e,t)})({signer:n,transaction:e});return{transactionHash:(o=s).hash,blockHash:o.blockHash,blockNumber:o.blockNumber,from:o.from,to:o.to||void 0,rawReceipt:o};var o},signTypedData:async({typedData:r,ownerAddress:e})=>{const t=await a(e);if(e){if(e!==await t.getAddress())throw new Error("Owner address does not match")}return await(t.provider?.send("eth_signTypedData_v4",[e,r]))}});
1
+ "use strict";require("ethers");const r=async(r,a,e)=>{if(!a.provider)throw new Error("Signer does not have a provider");try{await a.provider.send("wallet_switchEthereumChain",[{chainId:`0x${r.toString(16)}`}])}catch(t){if(console.error("Error switching chain",t),!e)throw t;try{await(async(r,a)=>{if(!r.provider)throw new Error("Signer does not have a provider");await r.provider.send("wallet_addEthereumChain",[a])})(a,(r=>({chainId:`0x${r.chain_id.toString(16)}`,blockExplorerUrls:[r.explorer],chainName:r.network,iconUrls:[r.image],nativeCurrency:r.native_currency,rpcUrls:[r.rpc]}))(e)),await a.provider.send("wallet_switchEthereumChain",[{chainId:`0x${r.toString(16)}`}])}catch(r){throw console.error("Error adding chain",r),r}}};exports.connectSigner=a=>({getAddress:async()=>(await a()).getAddress(),signMessage:async({message:r,ownerAddress:e})=>{const t=await a(e);if(e){if(e!==await t.getAddress())throw new Error("Owner address does not match")}return await t.signMessage(r)},sendTransaction:async(e,t)=>{let n=await a();const i=await(n.provider?.getNetwork());i?.chainId?.toString()!==e.chainId.toString()&&(await r(e.chainId,n,t),n=await a());const o=await(async({signer:r,transaction:a,confirmations:e,timeout:t})=>{const n=await r.sendTransaction(a);return await n.wait(e,t)})({signer:n,transaction:e});return{transactionHash:(s=o).hash,blockHash:s.blockHash,blockNumber:s.blockNumber,from:s.from,to:s.to||void 0,rawReceipt:s};var s},signTypedData:async({typedData:r,ownerAddress:e})=>{const t=await a(e);if(e){if(e!==await t.getAddress())throw new Error("Owner address does not match")}return await(t.provider?.send("eth_signTypedData_v4",[e,r]))}});
2
2
  //# sourceMappingURL=index.cjs.min.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs.min.js","sources":["../../../../_shared/utils/signerUtils.ts","../../../src/paymentsWidget/ethers/index.ts"],"sourcesContent":["import { TransactionReceipt, TransactionRequest, JsonRpcSigner, verifyMessage, toBeArray } from \"ethers\";\nimport { EVMChainConfig } from \"@shared/types\";\n\n// https://eips.ethereum.org/EIPS/eip-3085\ntype AddEthereumChainParameter = {\n chainId: string;\n blockExplorerUrls?: string[];\n chainName?: string;\n iconUrls?: string[];\n nativeCurrency?: {\n name: string;\n symbol: string;\n decimals: number;\n };\n rpcUrls?: string[];\n};\n\nexport const _getEVMChainParamFromChainConfig = (chainConfig: EVMChainConfig): AddEthereumChainParameter => ({\n chainId: String(chainConfig.chain_id),\n blockExplorerUrls: [chainConfig.explorer],\n chainName: chainConfig.network,\n iconUrls: [chainConfig.image],\n nativeCurrency: chainConfig.native_currency,\n rpcUrls: [chainConfig.rpc],\n});\n\nexport const getChainIdFromSigner = async (signer: JsonRpcSigner): Promise<number> => {\n if (!signer.provider) {\n throw new Error(\"Signer does not have a provider\");\n }\n\n const network = await signer.provider.getNetwork();\n return Number(network.chainId.toString());\n};\n\nexport const addChain = async (signer: JsonRpcSigner, chainConfig: AddEthereumChainParameter) => {\n if (!signer.provider) {\n throw new Error(\"Signer does not have a provider\");\n }\n\n await signer.provider.send(\"wallet_addEthereumChain\", [chainConfig]);\n};\n\nexport const switchChain = async (chainId: number, signer: JsonRpcSigner, chainConfig?: EVMChainConfig) => {\n if (!signer.provider) {\n throw new Error(\"Signer does not have a provider\");\n }\n\n try {\n await signer.provider.send(\"wallet_switchEthereumChain\", [{ chainId: `0x${chainId.toString(16)}` }]);\n } catch (error) {\n console.error(\"Error switching chain\", error);\n if (chainConfig) {\n try {\n await addChain(signer, _getEVMChainParamFromChainConfig(chainConfig));\n await signer.provider.send(\"wallet_switchEthereumChain\", [{ chainId: `0x${chainId.toString(16)}` }]);\n } catch (error) {\n console.error(\"Error adding chain\", error);\n throw error;\n }\n } else {\n throw error;\n }\n }\n};\n\n/**\n * Send a transaction using the signer.\n *\n * @param {JsonRpcSigner} signer {{@link JsonRpcSigner}} The signer to send the transaction.\n * @param {TransactionRequest} transaction {{@link TransactionRequest}} The transaction to send.\n * @param {number} confirmations {{@link number}} (optional) The number of confirmations to wait for default to 1.\n * @param {number} timeout {{@link number}} (optional) The timeout to wait for.\n * @returns {Promise<TransactionReceipt | null>} ``receipt`` {{@link TransactionReceipt}} The transaction receipt.\n *\n * If confirmations is 0, the promise will resolve to ``null``.\n * Check the {@link https://docs.ethers.org/v6/api/providers/#TransactionResponse-wait ethers v6 documentation} for more information.\n */\nexport const sendTransaction = async <C extends number = 1>({\n signer,\n transaction,\n confirmations,\n timeout,\n}: {\n signer: JsonRpcSigner;\n transaction: TransactionRequest;\n confirmations?: C;\n timeout?: number;\n}): Promise<C extends 0 ? null : TransactionReceipt> => {\n const txResponse = await signer.sendTransaction(transaction);\n\n return (await txResponse.wait(confirmations, timeout)) as C extends 0 ? null : TransactionReceipt;\n};\n\nexport const getSignerAddressFromMessage = (message: string, signedMessage: string) =>\n verifyMessage(toBeArray(message), signedMessage);\n","import { JsonRpcSigner, TransactionReceipt as EthersTransactionReceipt } from \"ethers\";\n\nimport { switchChain, sendTransaction as _sendTransaction } from \"@shared/utils/signerUtils\";\nimport { TransactionReceipt, Address } from \"@shared/types\";\n\nimport type { SignMessage, SendTransaction, SignTypedData } from \"../types\";\n\n/**\n * Get the transaction receipt from the ethers transaction receipt.\n *\n * @param {EthersTransactionReceipt} txReceipt The ethers transaction receipt.\n * @returns {TransactionReceipt} The transaction receipt.\n */\nconst _getTransactionReceipt = (txReceipt: EthersTransactionReceipt): TransactionReceipt => {\n return {\n transactionHash: txReceipt.hash,\n blockHash: txReceipt.blockHash,\n blockNumber: txReceipt.blockNumber,\n from: txReceipt.from,\n to: txReceipt.to || undefined,\n rawReceipt: txReceipt,\n };\n};\n\n/**\n * Connect to a signer.\n *\n * @param {function} getSigner {function} The function to get the signer.\n * @returns {function} ``getAddress`` {function} Function that returns the address of the signer.\n * @returns {function} ``signMessage`` {{@link SignMessage}} Function that signs a message.\n * @returns {function} ``sendTransaction`` {{@link SendTransaction}} Function that sends an EVM transaction.\n */\nexport const connectSigner = (\n getSigner: (address?: Address) => Promise<JsonRpcSigner>\n): {\n getAddress: () => Promise<Address>;\n signMessage: SignMessage;\n sendTransaction: SendTransaction;\n signTypedData: SignTypedData;\n} => {\n const getAddress = async (): Promise<Address> => {\n const signer = await getSigner();\n return signer.getAddress();\n };\n\n const signMessage: SignMessage = async ({ message, ownerAddress }) => {\n const signer = await getSigner(ownerAddress);\n if (ownerAddress) {\n const address = await signer.getAddress();\n if (ownerAddress !== address) {\n throw new Error(\"Owner address does not match\");\n }\n }\n const signature = await signer.signMessage(message);\n return signature;\n };\n\n const sendTransaction: SendTransaction = async (transaction, chainConfig) => {\n let signer = await getSigner();\n const signerNetwork = await signer.provider?.getNetwork();\n if (signerNetwork?.chainId?.toString() !== transaction.chainId.toString()) {\n await switchChain(transaction.chainId, signer, chainConfig);\n signer = await getSigner();\n }\n const ethersTxReceipt = await _sendTransaction({ signer, transaction });\n return _getTransactionReceipt(ethersTxReceipt);\n };\n\n const signTypedData: SignTypedData = async ({ typedData, ownerAddress }) => {\n const signer = await getSigner(ownerAddress);\n if (ownerAddress) {\n const address = await signer.getAddress();\n if (ownerAddress !== address) {\n throw new Error(\"Owner address does not match\");\n }\n }\n return await signer.provider?.send(\"eth_signTypedData_v4\", [ownerAddress, typedData]);\n };\n\n return { getAddress, signMessage, sendTransaction, signTypedData };\n};\n"],"names":["switchChain","async","chainId","signer","chainConfig","provider","Error","send","toString","error","console","addChain","String","chain_id","blockExplorerUrls","explorer","chainName","network","iconUrls","image","nativeCurrency","native_currency","rpcUrls","rpc","_getEVMChainParamFromChainConfig","getSigner","getAddress","signMessage","message","ownerAddress","sendTransaction","transaction","signerNetwork","getNetwork","ethersTxReceipt","confirmations","timeout","txResponse","wait","_sendTransaction","transactionHash","txReceipt","hash","blockHash","blockNumber","from","to","undefined","rawReceipt","signTypedData","typedData"],"mappings":"+BAiBO,MA0BMA,EAAcC,MAAOC,EAAiBC,EAAuBC,KACtE,IAAKD,EAAOE,SACR,MAAM,IAAIC,MAAM,mCAGpB,UACUH,EAAOE,SAASE,KAAK,6BAA8B,CAAC,CAAEL,QAAS,KAAKA,EAAQM,SAAS,SAC7F,MAAOC,GAEL,GADAC,QAAQD,MAAM,wBAAyBA,IACnCL,EASA,MAAMK,EARN,SAlBYR,OAAOE,EAAuBC,KAClD,IAAKD,EAAOE,SACR,MAAM,IAAIC,MAAM,yCAGdH,EAAOE,SAASE,KAAK,0BAA2B,CAACH,GAAa,EAclDO,CAASR,EArCiB,CAACC,IAA4D,CACzGF,QAASU,OAAOR,EAAYS,UAC5BC,kBAAmB,CAACV,EAAYW,UAChCC,UAAWZ,EAAYa,QACvBC,SAAU,CAACd,EAAYe,OACvBC,eAAgBhB,EAAYiB,gBAC5BC,QAAS,CAAClB,EAAYmB,OA+BaC,CAAiCpB,UAClDD,EAAOE,SAASE,KAAK,6BAA8B,CAAC,CAAEL,QAAS,KAAKA,EAAQM,SAAS,SAC7F,MAAOC,GAEL,MADAC,QAAQD,MAAM,qBAAsBA,GAC9BA,2BCzBlBgB,IA8CO,CAAEC,WAvCUzB,gBACMwB,KACPC,aAqCGC,YAlCY1B,OAAS2B,UAASC,mBAC/C,MAAM1B,QAAesB,EAAUI,GAC/B,GAAIA,EAAc,CAEd,GAAIA,UADkB1B,EAAOuB,aAEzB,MAAM,IAAIpB,MAAM,gCAIxB,aADwBH,EAAOwB,YAAYC,EAC3B,EAyBcE,gBAtBO7B,MAAO8B,EAAa3B,KACzD,IAAID,QAAesB,IACnB,MAAMO,QAAsB7B,EAAOE,UAAU4B,cACzCD,GAAe9B,SAASM,aAAeuB,EAAY7B,QAAQM,mBACrDR,EAAY+B,EAAY7B,QAASC,EAAQC,GAC/CD,QAAesB,KAEnB,MAAMS,ODciBjC,QAC3BE,SACA4B,cACAI,gBACAC,cAOA,MAAMC,QAAmBlC,EAAO2B,gBAAgBC,GAEhD,aAAcM,EAAWC,KAAKH,EAAeC,EAAQ,EC3BnBG,CAAiB,CAAEpC,SAAQ4B,gBACzD,MAnDG,CACHS,iBAFwBC,EAoDMP,GAlDHQ,KAC3BC,UAAWF,EAAUE,UACrBC,YAAaH,EAAUG,YACvBC,KAAMJ,EAAUI,KAChBC,GAAIL,EAAUK,SAAMC,EACpBC,WAAYP,GAPW,IAACA,CAoDsB,EAcCQ,cAXdhD,OAASiD,YAAWrB,mBACrD,MAAM1B,QAAesB,EAAUI,GAC/B,GAAIA,EAAc,CAEd,GAAIA,UADkB1B,EAAOuB,aAEzB,MAAM,IAAIpB,MAAM,gCAGxB,aAAaH,EAAOE,UAAUE,KAAK,uBAAwB,CAACsB,EAAcqB,IAAW"}
1
+ {"version":3,"file":"index.cjs.min.js","sources":["../../../../_shared/utils/signerUtils.ts","../../../src/paymentsWidget/ethers/index.ts"],"sourcesContent":["import { TransactionReceipt, TransactionRequest, JsonRpcSigner, verifyMessage, toBeArray } from \"ethers\";\nimport { EVMChainConfig } from \"@shared/types\";\n\n// https://eips.ethereum.org/EIPS/eip-3085\ntype AddEthereumChainParameter = {\n chainId: string;\n blockExplorerUrls?: string[];\n chainName?: string;\n iconUrls?: string[];\n nativeCurrency?: {\n name: string;\n symbol: string;\n decimals: number;\n };\n rpcUrls?: string[];\n};\n\nexport const _getEVMChainParamFromChainConfig = (chainConfig: EVMChainConfig): AddEthereumChainParameter => ({\n chainId: `0x${chainConfig.chain_id.toString(16)}`,\n blockExplorerUrls: [chainConfig.explorer],\n chainName: chainConfig.network,\n iconUrls: [chainConfig.image],\n nativeCurrency: chainConfig.native_currency,\n rpcUrls: [chainConfig.rpc],\n});\n\nexport const getChainIdFromSigner = async (signer: JsonRpcSigner): Promise<number> => {\n if (!signer.provider) {\n throw new Error(\"Signer does not have a provider\");\n }\n\n const network = await signer.provider.getNetwork();\n return Number(network.chainId.toString());\n};\n\nexport const addChain = async (signer: JsonRpcSigner, chainConfig: AddEthereumChainParameter) => {\n if (!signer.provider) {\n throw new Error(\"Signer does not have a provider\");\n }\n\n await signer.provider.send(\"wallet_addEthereumChain\", [chainConfig]);\n};\n\nexport const switchChain = async (chainId: number, signer: JsonRpcSigner, chainConfig?: EVMChainConfig) => {\n if (!signer.provider) {\n throw new Error(\"Signer does not have a provider\");\n }\n\n try {\n await signer.provider.send(\"wallet_switchEthereumChain\", [{ chainId: `0x${chainId.toString(16)}` }]);\n } catch (error) {\n console.error(\"Error switching chain\", error);\n if (chainConfig) {\n try {\n await addChain(signer, _getEVMChainParamFromChainConfig(chainConfig));\n await signer.provider.send(\"wallet_switchEthereumChain\", [{ chainId: `0x${chainId.toString(16)}` }]);\n } catch (error) {\n console.error(\"Error adding chain\", error);\n throw error;\n }\n } else {\n throw error;\n }\n }\n};\n\n/**\n * Send a transaction using the signer.\n *\n * @param {JsonRpcSigner} signer {{@link JsonRpcSigner}} The signer to send the transaction.\n * @param {TransactionRequest} transaction {{@link TransactionRequest}} The transaction to send.\n * @param {number} confirmations {{@link number}} (optional) The number of confirmations to wait for default to 1.\n * @param {number} timeout {{@link number}} (optional) The timeout to wait for.\n * @returns {Promise<TransactionReceipt | null>} ``receipt`` {{@link TransactionReceipt}} The transaction receipt.\n *\n * If confirmations is 0, the promise will resolve to ``null``.\n * Check the {@link https://docs.ethers.org/v6/api/providers/#TransactionResponse-wait ethers v6 documentation} for more information.\n */\nexport const sendTransaction = async <C extends number = 1>({\n signer,\n transaction,\n confirmations,\n timeout,\n}: {\n signer: JsonRpcSigner;\n transaction: TransactionRequest;\n confirmations?: C;\n timeout?: number;\n}): Promise<C extends 0 ? null : TransactionReceipt> => {\n const txResponse = await signer.sendTransaction(transaction);\n\n return (await txResponse.wait(confirmations, timeout)) as C extends 0 ? null : TransactionReceipt;\n};\n\nexport const getSignerAddressFromMessage = (message: string, signedMessage: string) =>\n verifyMessage(toBeArray(message), signedMessage);\n","import { JsonRpcSigner, TransactionReceipt as EthersTransactionReceipt } from \"ethers\";\n\nimport { switchChain, sendTransaction as _sendTransaction } from \"@shared/utils/signerUtils\";\nimport { TransactionReceipt, Address } from \"@shared/types\";\n\nimport type { SignMessage, SendTransaction, SignTypedData, WalletActionsType } from \"../types\";\n\n/**\n * Get the transaction receipt from the ethers transaction receipt.\n *\n * @param {EthersTransactionReceipt} txReceipt The ethers transaction receipt.\n * @returns {TransactionReceipt} The transaction receipt.\n */\nconst _getTransactionReceipt = (txReceipt: EthersTransactionReceipt): TransactionReceipt => {\n return {\n transactionHash: txReceipt.hash,\n blockHash: txReceipt.blockHash,\n blockNumber: txReceipt.blockNumber,\n from: txReceipt.from,\n to: txReceipt.to || undefined,\n rawReceipt: txReceipt,\n };\n};\n\n/**\n * Connect to a signer.\n *\n * @param {function} getSigner {function} The function to get the signer.\n * @returns {function} ``getAddress`` {function} Function that returns the address of the signer.\n * @returns {function} ``signMessage`` {{@link SignMessage}} Function that signs a message.\n * @returns {function} ``sendTransaction`` {{@link SendTransaction}} Function that sends an EVM transaction.\n */\nexport const connectSigner = (\n getSigner: (address?: Address) => Promise<JsonRpcSigner>\n): Required<WalletActionsType> => {\n const getAddress = async (): Promise<Address> => {\n const signer = await getSigner();\n return signer.getAddress();\n };\n\n const signMessage: SignMessage = async ({ message, ownerAddress }) => {\n const signer = await getSigner(ownerAddress);\n if (ownerAddress) {\n const address = await signer.getAddress();\n if (ownerAddress !== address) {\n throw new Error(\"Owner address does not match\");\n }\n }\n const signature = await signer.signMessage(message);\n return signature;\n };\n\n const sendTransaction: SendTransaction = async (transaction, chainConfig) => {\n let signer = await getSigner();\n const signerNetwork = await signer.provider?.getNetwork();\n if (signerNetwork?.chainId?.toString() !== transaction.chainId.toString()) {\n await switchChain(transaction.chainId, signer, chainConfig);\n signer = await getSigner();\n }\n const ethersTxReceipt = await _sendTransaction({ signer, transaction });\n return _getTransactionReceipt(ethersTxReceipt);\n };\n\n const signTypedData: SignTypedData = async ({ typedData, ownerAddress }) => {\n const signer = await getSigner(ownerAddress);\n if (ownerAddress) {\n const address = await signer.getAddress();\n if (ownerAddress !== address) {\n throw new Error(\"Owner address does not match\");\n }\n }\n return await signer.provider?.send(\"eth_signTypedData_v4\", [ownerAddress, typedData]);\n };\n\n return { getAddress, signMessage, sendTransaction, signTypedData };\n};\n"],"names":["switchChain","async","chainId","signer","chainConfig","provider","Error","send","toString","error","console","addChain","chain_id","blockExplorerUrls","explorer","chainName","network","iconUrls","image","nativeCurrency","native_currency","rpcUrls","rpc","_getEVMChainParamFromChainConfig","getSigner","getAddress","signMessage","message","ownerAddress","sendTransaction","transaction","signerNetwork","getNetwork","ethersTxReceipt","confirmations","timeout","txResponse","wait","_sendTransaction","transactionHash","txReceipt","hash","blockHash","blockNumber","from","to","undefined","rawReceipt","signTypedData","typedData"],"mappings":"+BAiBO,MA0BMA,EAAcC,MAAOC,EAAiBC,EAAuBC,KACtE,IAAKD,EAAOE,SACR,MAAM,IAAIC,MAAM,mCAGpB,UACUH,EAAOE,SAASE,KAAK,6BAA8B,CAAC,CAAEL,QAAS,KAAKA,EAAQM,SAAS,SAC7F,MAAOC,GAEL,GADAC,QAAQD,MAAM,wBAAyBA,IACnCL,EASA,MAAMK,EARN,SAlBYR,OAAOE,EAAuBC,KAClD,IAAKD,EAAOE,SACR,MAAM,IAAIC,MAAM,yCAGdH,EAAOE,SAASE,KAAK,0BAA2B,CAACH,GAAa,EAclDO,CAASR,EArCiB,CAACC,IAA4D,CACzGF,QAAS,KAAKE,EAAYQ,SAASJ,SAAS,MAC5CK,kBAAmB,CAACT,EAAYU,UAChCC,UAAWX,EAAYY,QACvBC,SAAU,CAACb,EAAYc,OACvBC,eAAgBf,EAAYgB,gBAC5BC,QAAS,CAACjB,EAAYkB,OA+BaC,CAAiCnB,UAClDD,EAAOE,SAASE,KAAK,6BAA8B,CAAC,CAAEL,QAAS,KAAKA,EAAQM,SAAS,SAC7F,MAAOC,GAEL,MADAC,QAAQD,MAAM,qBAAsBA,GAC9BA,2BCzBlBe,IAyCO,CAAEC,WAvCUxB,gBACMuB,KACPC,aAqCGC,YAlCYzB,OAAS0B,UAASC,mBAC/C,MAAMzB,QAAeqB,EAAUI,GAC/B,GAAIA,EAAc,CAEd,GAAIA,UADkBzB,EAAOsB,aAEzB,MAAM,IAAInB,MAAM,gCAIxB,aADwBH,EAAOuB,YAAYC,EAC3B,EAyBcE,gBAtBO5B,MAAO6B,EAAa1B,KACzD,IAAID,QAAeqB,IACnB,MAAMO,QAAsB5B,EAAOE,UAAU2B,cACzCD,GAAe7B,SAASM,aAAesB,EAAY5B,QAAQM,mBACrDR,EAAY8B,EAAY5B,QAASC,EAAQC,GAC/CD,QAAeqB,KAEnB,MAAMS,ODmBiBhC,QAC3BE,SACA2B,cACAI,gBACAC,cAOA,MAAMC,QAAmBjC,EAAO0B,gBAAgBC,GAEhD,aAAcM,EAAWC,KAAKH,EAAeC,EAAQ,EChCnBG,CAAiB,CAAEnC,SAAQ2B,gBACzD,MA9CG,CACHS,iBAFwBC,EA+CMP,GA7CHQ,KAC3BC,UAAWF,EAAUE,UACrBC,YAAaH,EAAUG,YACvBC,KAAMJ,EAAUI,KAChBC,GAAIL,EAAUK,SAAMC,EACpBC,WAAYP,GAPW,IAACA,CA+CsB,EAcCQ,cAXd/C,OAASgD,YAAWrB,mBACrD,MAAMzB,QAAeqB,EAAUI,GAC/B,GAAIA,EAAc,CAEd,GAAIA,UADkBzB,EAAOsB,aAEzB,MAAM,IAAInB,MAAM,gCAGxB,aAAaH,EAAOE,UAAUE,KAAK,uBAAwB,CAACqB,EAAcqB,IAAW"}
@@ -26,7 +26,7 @@ declare const TransactionReceipt: z.ZodObject<{
26
26
  }, z.core.$strip>;
27
27
  type TransactionReceipt = z.infer<typeof TransactionReceipt>;
28
28
  declare const EVMChainConfig: z.ZodObject<{
29
- chain_id: z.ZodNumber;
29
+ chain_id: z.ZodBigInt;
30
30
  network: z.ZodString;
31
31
  native_currency: z.ZodObject<{
32
32
  name: z.ZodString;
@@ -52,6 +52,12 @@ type SignTypedData = (input: {
52
52
  ownerAddress?: Address;
53
53
  }) => Promise<string>;
54
54
  type SendTransaction = (transaction: TransactionRequest, chainConfig: EVMChainConfig) => Promise<TransactionReceipt>;
55
+ type WalletActionsType = {
56
+ getAddress: () => Promise<Address>;
57
+ signMessage?: SignMessage;
58
+ sendTransaction?: SendTransaction;
59
+ signTypedData?: SignTypedData;
60
+ };
55
61
 
56
62
  /**
57
63
  * Connect to a signer.
@@ -61,11 +67,6 @@ type SendTransaction = (transaction: TransactionRequest, chainConfig: EVMChainCo
61
67
  * @returns {function} ``signMessage`` {{@link SignMessage}} Function that signs a message.
62
68
  * @returns {function} ``sendTransaction`` {{@link SendTransaction}} Function that sends an EVM transaction.
63
69
  */
64
- declare const connectSigner: (getSigner: (address?: Address) => Promise<JsonRpcSigner>) => {
65
- getAddress: () => Promise<Address>;
66
- signMessage: SignMessage;
67
- sendTransaction: SendTransaction;
68
- signTypedData: SignTypedData;
69
- };
70
+ declare const connectSigner: (getSigner: (address?: Address) => Promise<JsonRpcSigner>) => Required<WalletActionsType>;
70
71
 
71
72
  export { connectSigner };
@@ -1,2 +1,2 @@
1
- import"ethers";const r=async(r,a,t)=>{if(!a.provider)throw new Error("Signer does not have a provider");try{await a.provider.send("wallet_switchEthereumChain",[{chainId:`0x${r.toString(16)}`}])}catch(e){if(console.error("Error switching chain",e),!t)throw e;try{await(async(r,a)=>{if(!r.provider)throw new Error("Signer does not have a provider");await r.provider.send("wallet_addEthereumChain",[a])})(a,(r=>({chainId:String(r.chain_id),blockExplorerUrls:[r.explorer],chainName:r.network,iconUrls:[r.image],nativeCurrency:r.native_currency,rpcUrls:[r.rpc]}))(t)),await a.provider.send("wallet_switchEthereumChain",[{chainId:`0x${r.toString(16)}`}])}catch(r){throw console.error("Error adding chain",r),r}}},a=a=>({getAddress:async()=>(await a()).getAddress(),signMessage:async({message:r,ownerAddress:t})=>{const e=await a(t);if(t){if(t!==await e.getAddress())throw new Error("Owner address does not match")}return await e.signMessage(r)},sendTransaction:async(t,e)=>{let n=await a();const i=await(n.provider?.getNetwork());i?.chainId?.toString()!==t.chainId.toString()&&(await r(t.chainId,n,e),n=await a());const o=await(async({signer:r,transaction:a,confirmations:t,timeout:e})=>{const n=await r.sendTransaction(a);return await n.wait(t,e)})({signer:n,transaction:t});return{transactionHash:(s=o).hash,blockHash:s.blockHash,blockNumber:s.blockNumber,from:s.from,to:s.to||void 0,rawReceipt:s};var s},signTypedData:async({typedData:r,ownerAddress:t})=>{const e=await a(t);if(t){if(t!==await e.getAddress())throw new Error("Owner address does not match")}return await(e.provider?.send("eth_signTypedData_v4",[t,r]))}});export{a as connectSigner};
1
+ import"ethers";const r=async(r,a,t)=>{if(!a.provider)throw new Error("Signer does not have a provider");try{await a.provider.send("wallet_switchEthereumChain",[{chainId:`0x${r.toString(16)}`}])}catch(e){if(console.error("Error switching chain",e),!t)throw e;try{await(async(r,a)=>{if(!r.provider)throw new Error("Signer does not have a provider");await r.provider.send("wallet_addEthereumChain",[a])})(a,(r=>({chainId:`0x${r.chain_id.toString(16)}`,blockExplorerUrls:[r.explorer],chainName:r.network,iconUrls:[r.image],nativeCurrency:r.native_currency,rpcUrls:[r.rpc]}))(t)),await a.provider.send("wallet_switchEthereumChain",[{chainId:`0x${r.toString(16)}`}])}catch(r){throw console.error("Error adding chain",r),r}}},a=a=>({getAddress:async()=>(await a()).getAddress(),signMessage:async({message:r,ownerAddress:t})=>{const e=await a(t);if(t){if(t!==await e.getAddress())throw new Error("Owner address does not match")}return await e.signMessage(r)},sendTransaction:async(t,e)=>{let n=await a();const i=await(n.provider?.getNetwork());i?.chainId?.toString()!==t.chainId.toString()&&(await r(t.chainId,n,e),n=await a());const o=await(async({signer:r,transaction:a,confirmations:t,timeout:e})=>{const n=await r.sendTransaction(a);return await n.wait(t,e)})({signer:n,transaction:t});return{transactionHash:(s=o).hash,blockHash:s.blockHash,blockNumber:s.blockNumber,from:s.from,to:s.to||void 0,rawReceipt:s};var s},signTypedData:async({typedData:r,ownerAddress:t})=>{const e=await a(t);if(t){if(t!==await e.getAddress())throw new Error("Owner address does not match")}return await(e.provider?.send("eth_signTypedData_v4",[t,r]))}});export{a as connectSigner};
2
2
  //# sourceMappingURL=index.esm.min.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.esm.min.js","sources":["../../../../_shared/utils/signerUtils.ts","../../../src/paymentsWidget/ethers/index.ts"],"sourcesContent":["import { TransactionReceipt, TransactionRequest, JsonRpcSigner, verifyMessage, toBeArray } from \"ethers\";\nimport { EVMChainConfig } from \"@shared/types\";\n\n// https://eips.ethereum.org/EIPS/eip-3085\ntype AddEthereumChainParameter = {\n chainId: string;\n blockExplorerUrls?: string[];\n chainName?: string;\n iconUrls?: string[];\n nativeCurrency?: {\n name: string;\n symbol: string;\n decimals: number;\n };\n rpcUrls?: string[];\n};\n\nexport const _getEVMChainParamFromChainConfig = (chainConfig: EVMChainConfig): AddEthereumChainParameter => ({\n chainId: String(chainConfig.chain_id),\n blockExplorerUrls: [chainConfig.explorer],\n chainName: chainConfig.network,\n iconUrls: [chainConfig.image],\n nativeCurrency: chainConfig.native_currency,\n rpcUrls: [chainConfig.rpc],\n});\n\nexport const getChainIdFromSigner = async (signer: JsonRpcSigner): Promise<number> => {\n if (!signer.provider) {\n throw new Error(\"Signer does not have a provider\");\n }\n\n const network = await signer.provider.getNetwork();\n return Number(network.chainId.toString());\n};\n\nexport const addChain = async (signer: JsonRpcSigner, chainConfig: AddEthereumChainParameter) => {\n if (!signer.provider) {\n throw new Error(\"Signer does not have a provider\");\n }\n\n await signer.provider.send(\"wallet_addEthereumChain\", [chainConfig]);\n};\n\nexport const switchChain = async (chainId: number, signer: JsonRpcSigner, chainConfig?: EVMChainConfig) => {\n if (!signer.provider) {\n throw new Error(\"Signer does not have a provider\");\n }\n\n try {\n await signer.provider.send(\"wallet_switchEthereumChain\", [{ chainId: `0x${chainId.toString(16)}` }]);\n } catch (error) {\n console.error(\"Error switching chain\", error);\n if (chainConfig) {\n try {\n await addChain(signer, _getEVMChainParamFromChainConfig(chainConfig));\n await signer.provider.send(\"wallet_switchEthereumChain\", [{ chainId: `0x${chainId.toString(16)}` }]);\n } catch (error) {\n console.error(\"Error adding chain\", error);\n throw error;\n }\n } else {\n throw error;\n }\n }\n};\n\n/**\n * Send a transaction using the signer.\n *\n * @param {JsonRpcSigner} signer {{@link JsonRpcSigner}} The signer to send the transaction.\n * @param {TransactionRequest} transaction {{@link TransactionRequest}} The transaction to send.\n * @param {number} confirmations {{@link number}} (optional) The number of confirmations to wait for default to 1.\n * @param {number} timeout {{@link number}} (optional) The timeout to wait for.\n * @returns {Promise<TransactionReceipt | null>} ``receipt`` {{@link TransactionReceipt}} The transaction receipt.\n *\n * If confirmations is 0, the promise will resolve to ``null``.\n * Check the {@link https://docs.ethers.org/v6/api/providers/#TransactionResponse-wait ethers v6 documentation} for more information.\n */\nexport const sendTransaction = async <C extends number = 1>({\n signer,\n transaction,\n confirmations,\n timeout,\n}: {\n signer: JsonRpcSigner;\n transaction: TransactionRequest;\n confirmations?: C;\n timeout?: number;\n}): Promise<C extends 0 ? null : TransactionReceipt> => {\n const txResponse = await signer.sendTransaction(transaction);\n\n return (await txResponse.wait(confirmations, timeout)) as C extends 0 ? null : TransactionReceipt;\n};\n\nexport const getSignerAddressFromMessage = (message: string, signedMessage: string) =>\n verifyMessage(toBeArray(message), signedMessage);\n","import { JsonRpcSigner, TransactionReceipt as EthersTransactionReceipt } from \"ethers\";\n\nimport { switchChain, sendTransaction as _sendTransaction } from \"@shared/utils/signerUtils\";\nimport { TransactionReceipt, Address } from \"@shared/types\";\n\nimport type { SignMessage, SendTransaction, SignTypedData } from \"../types\";\n\n/**\n * Get the transaction receipt from the ethers transaction receipt.\n *\n * @param {EthersTransactionReceipt} txReceipt The ethers transaction receipt.\n * @returns {TransactionReceipt} The transaction receipt.\n */\nconst _getTransactionReceipt = (txReceipt: EthersTransactionReceipt): TransactionReceipt => {\n return {\n transactionHash: txReceipt.hash,\n blockHash: txReceipt.blockHash,\n blockNumber: txReceipt.blockNumber,\n from: txReceipt.from,\n to: txReceipt.to || undefined,\n rawReceipt: txReceipt,\n };\n};\n\n/**\n * Connect to a signer.\n *\n * @param {function} getSigner {function} The function to get the signer.\n * @returns {function} ``getAddress`` {function} Function that returns the address of the signer.\n * @returns {function} ``signMessage`` {{@link SignMessage}} Function that signs a message.\n * @returns {function} ``sendTransaction`` {{@link SendTransaction}} Function that sends an EVM transaction.\n */\nexport const connectSigner = (\n getSigner: (address?: Address) => Promise<JsonRpcSigner>\n): {\n getAddress: () => Promise<Address>;\n signMessage: SignMessage;\n sendTransaction: SendTransaction;\n signTypedData: SignTypedData;\n} => {\n const getAddress = async (): Promise<Address> => {\n const signer = await getSigner();\n return signer.getAddress();\n };\n\n const signMessage: SignMessage = async ({ message, ownerAddress }) => {\n const signer = await getSigner(ownerAddress);\n if (ownerAddress) {\n const address = await signer.getAddress();\n if (ownerAddress !== address) {\n throw new Error(\"Owner address does not match\");\n }\n }\n const signature = await signer.signMessage(message);\n return signature;\n };\n\n const sendTransaction: SendTransaction = async (transaction, chainConfig) => {\n let signer = await getSigner();\n const signerNetwork = await signer.provider?.getNetwork();\n if (signerNetwork?.chainId?.toString() !== transaction.chainId.toString()) {\n await switchChain(transaction.chainId, signer, chainConfig);\n signer = await getSigner();\n }\n const ethersTxReceipt = await _sendTransaction({ signer, transaction });\n return _getTransactionReceipt(ethersTxReceipt);\n };\n\n const signTypedData: SignTypedData = async ({ typedData, ownerAddress }) => {\n const signer = await getSigner(ownerAddress);\n if (ownerAddress) {\n const address = await signer.getAddress();\n if (ownerAddress !== address) {\n throw new Error(\"Owner address does not match\");\n }\n }\n return await signer.provider?.send(\"eth_signTypedData_v4\", [ownerAddress, typedData]);\n };\n\n return { getAddress, signMessage, sendTransaction, signTypedData };\n};\n"],"names":["switchChain","async","chainId","signer","chainConfig","provider","Error","send","toString","error","console","addChain","String","chain_id","blockExplorerUrls","explorer","chainName","network","iconUrls","image","nativeCurrency","native_currency","rpcUrls","rpc","_getEVMChainParamFromChainConfig","connectSigner","getSigner","getAddress","signMessage","message","ownerAddress","sendTransaction","transaction","signerNetwork","getNetwork","ethersTxReceipt","confirmations","timeout","txResponse","wait","_sendTransaction","transactionHash","txReceipt","hash","blockHash","blockNumber","from","to","undefined","rawReceipt","signTypedData","typedData"],"mappings":"eAiBO,MA0BMA,EAAcC,MAAOC,EAAiBC,EAAuBC,KACtE,IAAKD,EAAOE,SACR,MAAM,IAAIC,MAAM,mCAGpB,UACUH,EAAOE,SAASE,KAAK,6BAA8B,CAAC,CAAEL,QAAS,KAAKA,EAAQM,SAAS,SAC7F,MAAOC,GAEL,GADAC,QAAQD,MAAM,wBAAyBA,IACnCL,EASA,MAAMK,EARN,SAlBYR,OAAOE,EAAuBC,KAClD,IAAKD,EAAOE,SACR,MAAM,IAAIC,MAAM,yCAGdH,EAAOE,SAASE,KAAK,0BAA2B,CAACH,GAAa,EAclDO,CAASR,EArCiB,CAACC,IAA4D,CACzGF,QAASU,OAAOR,EAAYS,UAC5BC,kBAAmB,CAACV,EAAYW,UAChCC,UAAWZ,EAAYa,QACvBC,SAAU,CAACd,EAAYe,OACvBC,eAAgBhB,EAAYiB,gBAC5BC,QAAS,CAAClB,EAAYmB,OA+BaC,CAAiCpB,UAClDD,EAAOE,SAASE,KAAK,6BAA8B,CAAC,CAAEL,QAAS,KAAKA,EAAQM,SAAS,SAC7F,MAAOC,GAEL,MADAC,QAAQD,MAAM,qBAAsBA,GAC9BA,KC1BTgB,EACTC,IA8CO,CAAEC,WAvCU1B,gBACMyB,KACPC,aAqCGC,YAlCY3B,OAAS4B,UAASC,mBAC/C,MAAM3B,QAAeuB,EAAUI,GAC/B,GAAIA,EAAc,CAEd,GAAIA,UADkB3B,EAAOwB,aAEzB,MAAM,IAAIrB,MAAM,gCAIxB,aADwBH,EAAOyB,YAAYC,EAC3B,EAyBcE,gBAtBO9B,MAAO+B,EAAa5B,KACzD,IAAID,QAAeuB,IACnB,MAAMO,QAAsB9B,EAAOE,UAAU6B,cACzCD,GAAe/B,SAASM,aAAewB,EAAY9B,QAAQM,mBACrDR,EAAYgC,EAAY9B,QAASC,EAAQC,GAC/CD,QAAeuB,KAEnB,MAAMS,ODciBlC,QAC3BE,SACA6B,cACAI,gBACAC,cAOA,MAAMC,QAAmBnC,EAAO4B,gBAAgBC,GAEhD,aAAcM,EAAWC,KAAKH,EAAeC,EAAQ,EC3BnBG,CAAiB,CAAErC,SAAQ6B,gBACzD,MAnDG,CACHS,iBAFwBC,EAoDMP,GAlDHQ,KAC3BC,UAAWF,EAAUE,UACrBC,YAAaH,EAAUG,YACvBC,KAAMJ,EAAUI,KAChBC,GAAIL,EAAUK,SAAMC,EACpBC,WAAYP,GAPW,IAACA,CAoDsB,EAcCQ,cAXdjD,OAASkD,YAAWrB,mBACrD,MAAM3B,QAAeuB,EAAUI,GAC/B,GAAIA,EAAc,CAEd,GAAIA,UADkB3B,EAAOwB,aAEzB,MAAM,IAAIrB,MAAM,gCAGxB,aAAaH,EAAOE,UAAUE,KAAK,uBAAwB,CAACuB,EAAcqB,IAAW"}
1
+ {"version":3,"file":"index.esm.min.js","sources":["../../../../_shared/utils/signerUtils.ts","../../../src/paymentsWidget/ethers/index.ts"],"sourcesContent":["import { TransactionReceipt, TransactionRequest, JsonRpcSigner, verifyMessage, toBeArray } from \"ethers\";\nimport { EVMChainConfig } from \"@shared/types\";\n\n// https://eips.ethereum.org/EIPS/eip-3085\ntype AddEthereumChainParameter = {\n chainId: string;\n blockExplorerUrls?: string[];\n chainName?: string;\n iconUrls?: string[];\n nativeCurrency?: {\n name: string;\n symbol: string;\n decimals: number;\n };\n rpcUrls?: string[];\n};\n\nexport const _getEVMChainParamFromChainConfig = (chainConfig: EVMChainConfig): AddEthereumChainParameter => ({\n chainId: `0x${chainConfig.chain_id.toString(16)}`,\n blockExplorerUrls: [chainConfig.explorer],\n chainName: chainConfig.network,\n iconUrls: [chainConfig.image],\n nativeCurrency: chainConfig.native_currency,\n rpcUrls: [chainConfig.rpc],\n});\n\nexport const getChainIdFromSigner = async (signer: JsonRpcSigner): Promise<number> => {\n if (!signer.provider) {\n throw new Error(\"Signer does not have a provider\");\n }\n\n const network = await signer.provider.getNetwork();\n return Number(network.chainId.toString());\n};\n\nexport const addChain = async (signer: JsonRpcSigner, chainConfig: AddEthereumChainParameter) => {\n if (!signer.provider) {\n throw new Error(\"Signer does not have a provider\");\n }\n\n await signer.provider.send(\"wallet_addEthereumChain\", [chainConfig]);\n};\n\nexport const switchChain = async (chainId: number, signer: JsonRpcSigner, chainConfig?: EVMChainConfig) => {\n if (!signer.provider) {\n throw new Error(\"Signer does not have a provider\");\n }\n\n try {\n await signer.provider.send(\"wallet_switchEthereumChain\", [{ chainId: `0x${chainId.toString(16)}` }]);\n } catch (error) {\n console.error(\"Error switching chain\", error);\n if (chainConfig) {\n try {\n await addChain(signer, _getEVMChainParamFromChainConfig(chainConfig));\n await signer.provider.send(\"wallet_switchEthereumChain\", [{ chainId: `0x${chainId.toString(16)}` }]);\n } catch (error) {\n console.error(\"Error adding chain\", error);\n throw error;\n }\n } else {\n throw error;\n }\n }\n};\n\n/**\n * Send a transaction using the signer.\n *\n * @param {JsonRpcSigner} signer {{@link JsonRpcSigner}} The signer to send the transaction.\n * @param {TransactionRequest} transaction {{@link TransactionRequest}} The transaction to send.\n * @param {number} confirmations {{@link number}} (optional) The number of confirmations to wait for default to 1.\n * @param {number} timeout {{@link number}} (optional) The timeout to wait for.\n * @returns {Promise<TransactionReceipt | null>} ``receipt`` {{@link TransactionReceipt}} The transaction receipt.\n *\n * If confirmations is 0, the promise will resolve to ``null``.\n * Check the {@link https://docs.ethers.org/v6/api/providers/#TransactionResponse-wait ethers v6 documentation} for more information.\n */\nexport const sendTransaction = async <C extends number = 1>({\n signer,\n transaction,\n confirmations,\n timeout,\n}: {\n signer: JsonRpcSigner;\n transaction: TransactionRequest;\n confirmations?: C;\n timeout?: number;\n}): Promise<C extends 0 ? null : TransactionReceipt> => {\n const txResponse = await signer.sendTransaction(transaction);\n\n return (await txResponse.wait(confirmations, timeout)) as C extends 0 ? null : TransactionReceipt;\n};\n\nexport const getSignerAddressFromMessage = (message: string, signedMessage: string) =>\n verifyMessage(toBeArray(message), signedMessage);\n","import { JsonRpcSigner, TransactionReceipt as EthersTransactionReceipt } from \"ethers\";\n\nimport { switchChain, sendTransaction as _sendTransaction } from \"@shared/utils/signerUtils\";\nimport { TransactionReceipt, Address } from \"@shared/types\";\n\nimport type { SignMessage, SendTransaction, SignTypedData, WalletActionsType } from \"../types\";\n\n/**\n * Get the transaction receipt from the ethers transaction receipt.\n *\n * @param {EthersTransactionReceipt} txReceipt The ethers transaction receipt.\n * @returns {TransactionReceipt} The transaction receipt.\n */\nconst _getTransactionReceipt = (txReceipt: EthersTransactionReceipt): TransactionReceipt => {\n return {\n transactionHash: txReceipt.hash,\n blockHash: txReceipt.blockHash,\n blockNumber: txReceipt.blockNumber,\n from: txReceipt.from,\n to: txReceipt.to || undefined,\n rawReceipt: txReceipt,\n };\n};\n\n/**\n * Connect to a signer.\n *\n * @param {function} getSigner {function} The function to get the signer.\n * @returns {function} ``getAddress`` {function} Function that returns the address of the signer.\n * @returns {function} ``signMessage`` {{@link SignMessage}} Function that signs a message.\n * @returns {function} ``sendTransaction`` {{@link SendTransaction}} Function that sends an EVM transaction.\n */\nexport const connectSigner = (\n getSigner: (address?: Address) => Promise<JsonRpcSigner>\n): Required<WalletActionsType> => {\n const getAddress = async (): Promise<Address> => {\n const signer = await getSigner();\n return signer.getAddress();\n };\n\n const signMessage: SignMessage = async ({ message, ownerAddress }) => {\n const signer = await getSigner(ownerAddress);\n if (ownerAddress) {\n const address = await signer.getAddress();\n if (ownerAddress !== address) {\n throw new Error(\"Owner address does not match\");\n }\n }\n const signature = await signer.signMessage(message);\n return signature;\n };\n\n const sendTransaction: SendTransaction = async (transaction, chainConfig) => {\n let signer = await getSigner();\n const signerNetwork = await signer.provider?.getNetwork();\n if (signerNetwork?.chainId?.toString() !== transaction.chainId.toString()) {\n await switchChain(transaction.chainId, signer, chainConfig);\n signer = await getSigner();\n }\n const ethersTxReceipt = await _sendTransaction({ signer, transaction });\n return _getTransactionReceipt(ethersTxReceipt);\n };\n\n const signTypedData: SignTypedData = async ({ typedData, ownerAddress }) => {\n const signer = await getSigner(ownerAddress);\n if (ownerAddress) {\n const address = await signer.getAddress();\n if (ownerAddress !== address) {\n throw new Error(\"Owner address does not match\");\n }\n }\n return await signer.provider?.send(\"eth_signTypedData_v4\", [ownerAddress, typedData]);\n };\n\n return { getAddress, signMessage, sendTransaction, signTypedData };\n};\n"],"names":["switchChain","async","chainId","signer","chainConfig","provider","Error","send","toString","error","console","addChain","chain_id","blockExplorerUrls","explorer","chainName","network","iconUrls","image","nativeCurrency","native_currency","rpcUrls","rpc","_getEVMChainParamFromChainConfig","connectSigner","getSigner","getAddress","signMessage","message","ownerAddress","sendTransaction","transaction","signerNetwork","getNetwork","ethersTxReceipt","confirmations","timeout","txResponse","wait","_sendTransaction","transactionHash","txReceipt","hash","blockHash","blockNumber","from","to","undefined","rawReceipt","signTypedData","typedData"],"mappings":"eAiBO,MA0BMA,EAAcC,MAAOC,EAAiBC,EAAuBC,KACtE,IAAKD,EAAOE,SACR,MAAM,IAAIC,MAAM,mCAGpB,UACUH,EAAOE,SAASE,KAAK,6BAA8B,CAAC,CAAEL,QAAS,KAAKA,EAAQM,SAAS,SAC7F,MAAOC,GAEL,GADAC,QAAQD,MAAM,wBAAyBA,IACnCL,EASA,MAAMK,EARN,SAlBYR,OAAOE,EAAuBC,KAClD,IAAKD,EAAOE,SACR,MAAM,IAAIC,MAAM,yCAGdH,EAAOE,SAASE,KAAK,0BAA2B,CAACH,GAAa,EAclDO,CAASR,EArCiB,CAACC,IAA4D,CACzGF,QAAS,KAAKE,EAAYQ,SAASJ,SAAS,MAC5CK,kBAAmB,CAACT,EAAYU,UAChCC,UAAWX,EAAYY,QACvBC,SAAU,CAACb,EAAYc,OACvBC,eAAgBf,EAAYgB,gBAC5BC,QAAS,CAACjB,EAAYkB,OA+BaC,CAAiCnB,UAClDD,EAAOE,SAASE,KAAK,6BAA8B,CAAC,CAAEL,QAAS,KAAKA,EAAQM,SAAS,SAC7F,MAAOC,GAEL,MADAC,QAAQD,MAAM,qBAAsBA,GAC9BA,KC1BTe,EACTC,IAyCO,CAAEC,WAvCUzB,gBACMwB,KACPC,aAqCGC,YAlCY1B,OAAS2B,UAASC,mBAC/C,MAAM1B,QAAesB,EAAUI,GAC/B,GAAIA,EAAc,CAEd,GAAIA,UADkB1B,EAAOuB,aAEzB,MAAM,IAAIpB,MAAM,gCAIxB,aADwBH,EAAOwB,YAAYC,EAC3B,EAyBcE,gBAtBO7B,MAAO8B,EAAa3B,KACzD,IAAID,QAAesB,IACnB,MAAMO,QAAsB7B,EAAOE,UAAU4B,cACzCD,GAAe9B,SAASM,aAAeuB,EAAY7B,QAAQM,mBACrDR,EAAY+B,EAAY7B,QAASC,EAAQC,GAC/CD,QAAesB,KAEnB,MAAMS,ODmBiBjC,QAC3BE,SACA4B,cACAI,gBACAC,cAOA,MAAMC,QAAmBlC,EAAO2B,gBAAgBC,GAEhD,aAAcM,EAAWC,KAAKH,EAAeC,EAAQ,EChCnBG,CAAiB,CAAEpC,SAAQ4B,gBACzD,MA9CG,CACHS,iBAFwBC,EA+CMP,GA7CHQ,KAC3BC,UAAWF,EAAUE,UACrBC,YAAaH,EAAUG,YACvBC,KAAMJ,EAAUI,KAChBC,GAAIL,EAAUK,SAAMC,EACpBC,WAAYP,GAPW,IAACA,CA+CsB,EAcCQ,cAXdhD,OAASiD,YAAWrB,mBACrD,MAAM1B,QAAesB,EAAUI,GAC/B,GAAIA,EAAc,CAEd,GAAIA,UADkB1B,EAAOuB,aAEzB,MAAM,IAAIpB,MAAM,gCAGxB,aAAaH,EAAOE,UAAUE,KAAK,uBAAwB,CAACsB,EAAcqB,IAAW"}
@@ -1,2 +1,2 @@
1
- !function(e,r){"object"==typeof exports&&"undefined"!=typeof module?r(exports,require("ethers")):"function"==typeof define&&define.amd?define(["exports","ethers"],r):r((e="undefined"!=typeof globalThis?globalThis:e||self).ethers={})}(this,(function(e){"use strict";const r=async(e,r,t)=>{if(!r.provider)throw new Error("Signer does not have a provider");try{await r.provider.send("wallet_switchEthereumChain",[{chainId:`0x${e.toString(16)}`}])}catch(a){if(console.error("Error switching chain",a),!t)throw a;try{await(async(e,r)=>{if(!e.provider)throw new Error("Signer does not have a provider");await e.provider.send("wallet_addEthereumChain",[r])})(r,(e=>({chainId:String(e.chain_id),blockExplorerUrls:[e.explorer],chainName:e.network,iconUrls:[e.image],nativeCurrency:e.native_currency,rpcUrls:[e.rpc]}))(t)),await r.provider.send("wallet_switchEthereumChain",[{chainId:`0x${e.toString(16)}`}])}catch(e){throw console.error("Error adding chain",e),e}}};e.connectSigner=e=>({getAddress:async()=>(await e()).getAddress(),signMessage:async({message:r,ownerAddress:t})=>{const a=await e(t);if(t){if(t!==await a.getAddress())throw new Error("Owner address does not match")}return await a.signMessage(r)},sendTransaction:async(t,a)=>{let n=await e();const i=await(n.provider?.getNetwork());i?.chainId?.toString()!==t.chainId.toString()&&(await r(t.chainId,n,a),n=await e());const o=await(async({signer:e,transaction:r,confirmations:t,timeout:a})=>{const n=await e.sendTransaction(r);return await n.wait(t,a)})({signer:n,transaction:t});return{transactionHash:(s=o).hash,blockHash:s.blockHash,blockNumber:s.blockNumber,from:s.from,to:s.to||void 0,rawReceipt:s};var s},signTypedData:async({typedData:r,ownerAddress:t})=>{const a=await e(t);if(t){if(t!==await a.getAddress())throw new Error("Owner address does not match")}return await(a.provider?.send("eth_signTypedData_v4",[t,r]))}})}));
1
+ !function(e,r){"object"==typeof exports&&"undefined"!=typeof module?r(exports,require("ethers")):"function"==typeof define&&define.amd?define(["exports","ethers"],r):r((e="undefined"!=typeof globalThis?globalThis:e||self).ethers={})}(this,(function(e){"use strict";const r=async(e,r,t)=>{if(!r.provider)throw new Error("Signer does not have a provider");try{await r.provider.send("wallet_switchEthereumChain",[{chainId:`0x${e.toString(16)}`}])}catch(a){if(console.error("Error switching chain",a),!t)throw a;try{await(async(e,r)=>{if(!e.provider)throw new Error("Signer does not have a provider");await e.provider.send("wallet_addEthereumChain",[r])})(r,(e=>({chainId:`0x${e.chain_id.toString(16)}`,blockExplorerUrls:[e.explorer],chainName:e.network,iconUrls:[e.image],nativeCurrency:e.native_currency,rpcUrls:[e.rpc]}))(t)),await r.provider.send("wallet_switchEthereumChain",[{chainId:`0x${e.toString(16)}`}])}catch(e){throw console.error("Error adding chain",e),e}}};e.connectSigner=e=>({getAddress:async()=>(await e()).getAddress(),signMessage:async({message:r,ownerAddress:t})=>{const a=await e(t);if(t){if(t!==await a.getAddress())throw new Error("Owner address does not match")}return await a.signMessage(r)},sendTransaction:async(t,a)=>{let n=await e();const i=await(n.provider?.getNetwork());i?.chainId?.toString()!==t.chainId.toString()&&(await r(t.chainId,n,a),n=await e());const o=await(async({signer:e,transaction:r,confirmations:t,timeout:a})=>{const n=await e.sendTransaction(r);return await n.wait(t,a)})({signer:n,transaction:t});return{transactionHash:(s=o).hash,blockHash:s.blockHash,blockNumber:s.blockNumber,from:s.from,to:s.to||void 0,rawReceipt:s};var s},signTypedData:async({typedData:r,ownerAddress:t})=>{const a=await e(t);if(t){if(t!==await a.getAddress())throw new Error("Owner address does not match")}return await(a.provider?.send("eth_signTypedData_v4",[t,r]))}})}));
2
2
  //# sourceMappingURL=index.umd.min.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.umd.min.js","sources":["../../../../_shared/utils/signerUtils.ts","../../../src/paymentsWidget/ethers/index.ts"],"sourcesContent":["import { TransactionReceipt, TransactionRequest, JsonRpcSigner, verifyMessage, toBeArray } from \"ethers\";\nimport { EVMChainConfig } from \"@shared/types\";\n\n// https://eips.ethereum.org/EIPS/eip-3085\ntype AddEthereumChainParameter = {\n chainId: string;\n blockExplorerUrls?: string[];\n chainName?: string;\n iconUrls?: string[];\n nativeCurrency?: {\n name: string;\n symbol: string;\n decimals: number;\n };\n rpcUrls?: string[];\n};\n\nexport const _getEVMChainParamFromChainConfig = (chainConfig: EVMChainConfig): AddEthereumChainParameter => ({\n chainId: String(chainConfig.chain_id),\n blockExplorerUrls: [chainConfig.explorer],\n chainName: chainConfig.network,\n iconUrls: [chainConfig.image],\n nativeCurrency: chainConfig.native_currency,\n rpcUrls: [chainConfig.rpc],\n});\n\nexport const getChainIdFromSigner = async (signer: JsonRpcSigner): Promise<number> => {\n if (!signer.provider) {\n throw new Error(\"Signer does not have a provider\");\n }\n\n const network = await signer.provider.getNetwork();\n return Number(network.chainId.toString());\n};\n\nexport const addChain = async (signer: JsonRpcSigner, chainConfig: AddEthereumChainParameter) => {\n if (!signer.provider) {\n throw new Error(\"Signer does not have a provider\");\n }\n\n await signer.provider.send(\"wallet_addEthereumChain\", [chainConfig]);\n};\n\nexport const switchChain = async (chainId: number, signer: JsonRpcSigner, chainConfig?: EVMChainConfig) => {\n if (!signer.provider) {\n throw new Error(\"Signer does not have a provider\");\n }\n\n try {\n await signer.provider.send(\"wallet_switchEthereumChain\", [{ chainId: `0x${chainId.toString(16)}` }]);\n } catch (error) {\n console.error(\"Error switching chain\", error);\n if (chainConfig) {\n try {\n await addChain(signer, _getEVMChainParamFromChainConfig(chainConfig));\n await signer.provider.send(\"wallet_switchEthereumChain\", [{ chainId: `0x${chainId.toString(16)}` }]);\n } catch (error) {\n console.error(\"Error adding chain\", error);\n throw error;\n }\n } else {\n throw error;\n }\n }\n};\n\n/**\n * Send a transaction using the signer.\n *\n * @param {JsonRpcSigner} signer {{@link JsonRpcSigner}} The signer to send the transaction.\n * @param {TransactionRequest} transaction {{@link TransactionRequest}} The transaction to send.\n * @param {number} confirmations {{@link number}} (optional) The number of confirmations to wait for default to 1.\n * @param {number} timeout {{@link number}} (optional) The timeout to wait for.\n * @returns {Promise<TransactionReceipt | null>} ``receipt`` {{@link TransactionReceipt}} The transaction receipt.\n *\n * If confirmations is 0, the promise will resolve to ``null``.\n * Check the {@link https://docs.ethers.org/v6/api/providers/#TransactionResponse-wait ethers v6 documentation} for more information.\n */\nexport const sendTransaction = async <C extends number = 1>({\n signer,\n transaction,\n confirmations,\n timeout,\n}: {\n signer: JsonRpcSigner;\n transaction: TransactionRequest;\n confirmations?: C;\n timeout?: number;\n}): Promise<C extends 0 ? null : TransactionReceipt> => {\n const txResponse = await signer.sendTransaction(transaction);\n\n return (await txResponse.wait(confirmations, timeout)) as C extends 0 ? null : TransactionReceipt;\n};\n\nexport const getSignerAddressFromMessage = (message: string, signedMessage: string) =>\n verifyMessage(toBeArray(message), signedMessage);\n","import { JsonRpcSigner, TransactionReceipt as EthersTransactionReceipt } from \"ethers\";\n\nimport { switchChain, sendTransaction as _sendTransaction } from \"@shared/utils/signerUtils\";\nimport { TransactionReceipt, Address } from \"@shared/types\";\n\nimport type { SignMessage, SendTransaction, SignTypedData } from \"../types\";\n\n/**\n * Get the transaction receipt from the ethers transaction receipt.\n *\n * @param {EthersTransactionReceipt} txReceipt The ethers transaction receipt.\n * @returns {TransactionReceipt} The transaction receipt.\n */\nconst _getTransactionReceipt = (txReceipt: EthersTransactionReceipt): TransactionReceipt => {\n return {\n transactionHash: txReceipt.hash,\n blockHash: txReceipt.blockHash,\n blockNumber: txReceipt.blockNumber,\n from: txReceipt.from,\n to: txReceipt.to || undefined,\n rawReceipt: txReceipt,\n };\n};\n\n/**\n * Connect to a signer.\n *\n * @param {function} getSigner {function} The function to get the signer.\n * @returns {function} ``getAddress`` {function} Function that returns the address of the signer.\n * @returns {function} ``signMessage`` {{@link SignMessage}} Function that signs a message.\n * @returns {function} ``sendTransaction`` {{@link SendTransaction}} Function that sends an EVM transaction.\n */\nexport const connectSigner = (\n getSigner: (address?: Address) => Promise<JsonRpcSigner>\n): {\n getAddress: () => Promise<Address>;\n signMessage: SignMessage;\n sendTransaction: SendTransaction;\n signTypedData: SignTypedData;\n} => {\n const getAddress = async (): Promise<Address> => {\n const signer = await getSigner();\n return signer.getAddress();\n };\n\n const signMessage: SignMessage = async ({ message, ownerAddress }) => {\n const signer = await getSigner(ownerAddress);\n if (ownerAddress) {\n const address = await signer.getAddress();\n if (ownerAddress !== address) {\n throw new Error(\"Owner address does not match\");\n }\n }\n const signature = await signer.signMessage(message);\n return signature;\n };\n\n const sendTransaction: SendTransaction = async (transaction, chainConfig) => {\n let signer = await getSigner();\n const signerNetwork = await signer.provider?.getNetwork();\n if (signerNetwork?.chainId?.toString() !== transaction.chainId.toString()) {\n await switchChain(transaction.chainId, signer, chainConfig);\n signer = await getSigner();\n }\n const ethersTxReceipt = await _sendTransaction({ signer, transaction });\n return _getTransactionReceipt(ethersTxReceipt);\n };\n\n const signTypedData: SignTypedData = async ({ typedData, ownerAddress }) => {\n const signer = await getSigner(ownerAddress);\n if (ownerAddress) {\n const address = await signer.getAddress();\n if (ownerAddress !== address) {\n throw new Error(\"Owner address does not match\");\n }\n }\n return await signer.provider?.send(\"eth_signTypedData_v4\", [ownerAddress, typedData]);\n };\n\n return { getAddress, signMessage, sendTransaction, signTypedData };\n};\n"],"names":["switchChain","async","chainId","signer","chainConfig","provider","Error","send","toString","error","console","addChain","String","chain_id","blockExplorerUrls","explorer","chainName","network","iconUrls","image","nativeCurrency","native_currency","rpcUrls","rpc","_getEVMChainParamFromChainConfig","getSigner","getAddress","signMessage","message","ownerAddress","sendTransaction","transaction","signerNetwork","getNetwork","ethersTxReceipt","confirmations","timeout","txResponse","wait","_sendTransaction","transactionHash","txReceipt","hash","blockHash","blockNumber","from","to","undefined","rawReceipt","signTypedData","typedData"],"mappings":"yQAiBO,MA0BMA,EAAcC,MAAOC,EAAiBC,EAAuBC,KACtE,IAAKD,EAAOE,SACR,MAAM,IAAIC,MAAM,mCAGpB,UACUH,EAAOE,SAASE,KAAK,6BAA8B,CAAC,CAAEL,QAAS,KAAKA,EAAQM,SAAS,SAC7F,MAAOC,GAEL,GADAC,QAAQD,MAAM,wBAAyBA,IACnCL,EASA,MAAMK,EARN,SAlBYR,OAAOE,EAAuBC,KAClD,IAAKD,EAAOE,SACR,MAAM,IAAIC,MAAM,yCAGdH,EAAOE,SAASE,KAAK,0BAA2B,CAACH,GAAa,EAclDO,CAASR,EArCiB,CAACC,IAA4D,CACzGF,QAASU,OAAOR,EAAYS,UAC5BC,kBAAmB,CAACV,EAAYW,UAChCC,UAAWZ,EAAYa,QACvBC,SAAU,CAACd,EAAYe,OACvBC,eAAgBhB,EAAYiB,gBAC5BC,QAAS,CAAClB,EAAYmB,OA+BaC,CAAiCpB,UAClDD,EAAOE,SAASE,KAAK,6BAA8B,CAAC,CAAEL,QAAS,KAAKA,EAAQM,SAAS,SAC7F,MAAOC,GAEL,MADAC,QAAQD,MAAM,qBAAsBA,GAC9BA,qBCzBlBgB,IA8CO,CAAEC,WAvCUzB,gBACMwB,KACPC,aAqCGC,YAlCY1B,OAAS2B,UAASC,mBAC/C,MAAM1B,QAAesB,EAAUI,GAC/B,GAAIA,EAAc,CAEd,GAAIA,UADkB1B,EAAOuB,aAEzB,MAAM,IAAIpB,MAAM,gCAIxB,aADwBH,EAAOwB,YAAYC,EAC3B,EAyBcE,gBAtBO7B,MAAO8B,EAAa3B,KACzD,IAAID,QAAesB,IACnB,MAAMO,QAAsB7B,EAAOE,UAAU4B,cACzCD,GAAe9B,SAASM,aAAeuB,EAAY7B,QAAQM,mBACrDR,EAAY+B,EAAY7B,QAASC,EAAQC,GAC/CD,QAAesB,KAEnB,MAAMS,ODciBjC,QAC3BE,SACA4B,cACAI,gBACAC,cAOA,MAAMC,QAAmBlC,EAAO2B,gBAAgBC,GAEhD,aAAcM,EAAWC,KAAKH,EAAeC,EAAQ,EC3BnBG,CAAiB,CAAEpC,SAAQ4B,gBACzD,MAnDG,CACHS,iBAFwBC,EAoDMP,GAlDHQ,KAC3BC,UAAWF,EAAUE,UACrBC,YAAaH,EAAUG,YACvBC,KAAMJ,EAAUI,KAChBC,GAAIL,EAAUK,SAAMC,EACpBC,WAAYP,GAPW,IAACA,CAoDsB,EAcCQ,cAXdhD,OAASiD,YAAWrB,mBACrD,MAAM1B,QAAesB,EAAUI,GAC/B,GAAIA,EAAc,CAEd,GAAIA,UADkB1B,EAAOuB,aAEzB,MAAM,IAAIpB,MAAM,gCAGxB,aAAaH,EAAOE,UAAUE,KAAK,uBAAwB,CAACsB,EAAcqB,IAAW"}
1
+ {"version":3,"file":"index.umd.min.js","sources":["../../../../_shared/utils/signerUtils.ts","../../../src/paymentsWidget/ethers/index.ts"],"sourcesContent":["import { TransactionReceipt, TransactionRequest, JsonRpcSigner, verifyMessage, toBeArray } from \"ethers\";\nimport { EVMChainConfig } from \"@shared/types\";\n\n// https://eips.ethereum.org/EIPS/eip-3085\ntype AddEthereumChainParameter = {\n chainId: string;\n blockExplorerUrls?: string[];\n chainName?: string;\n iconUrls?: string[];\n nativeCurrency?: {\n name: string;\n symbol: string;\n decimals: number;\n };\n rpcUrls?: string[];\n};\n\nexport const _getEVMChainParamFromChainConfig = (chainConfig: EVMChainConfig): AddEthereumChainParameter => ({\n chainId: `0x${chainConfig.chain_id.toString(16)}`,\n blockExplorerUrls: [chainConfig.explorer],\n chainName: chainConfig.network,\n iconUrls: [chainConfig.image],\n nativeCurrency: chainConfig.native_currency,\n rpcUrls: [chainConfig.rpc],\n});\n\nexport const getChainIdFromSigner = async (signer: JsonRpcSigner): Promise<number> => {\n if (!signer.provider) {\n throw new Error(\"Signer does not have a provider\");\n }\n\n const network = await signer.provider.getNetwork();\n return Number(network.chainId.toString());\n};\n\nexport const addChain = async (signer: JsonRpcSigner, chainConfig: AddEthereumChainParameter) => {\n if (!signer.provider) {\n throw new Error(\"Signer does not have a provider\");\n }\n\n await signer.provider.send(\"wallet_addEthereumChain\", [chainConfig]);\n};\n\nexport const switchChain = async (chainId: number, signer: JsonRpcSigner, chainConfig?: EVMChainConfig) => {\n if (!signer.provider) {\n throw new Error(\"Signer does not have a provider\");\n }\n\n try {\n await signer.provider.send(\"wallet_switchEthereumChain\", [{ chainId: `0x${chainId.toString(16)}` }]);\n } catch (error) {\n console.error(\"Error switching chain\", error);\n if (chainConfig) {\n try {\n await addChain(signer, _getEVMChainParamFromChainConfig(chainConfig));\n await signer.provider.send(\"wallet_switchEthereumChain\", [{ chainId: `0x${chainId.toString(16)}` }]);\n } catch (error) {\n console.error(\"Error adding chain\", error);\n throw error;\n }\n } else {\n throw error;\n }\n }\n};\n\n/**\n * Send a transaction using the signer.\n *\n * @param {JsonRpcSigner} signer {{@link JsonRpcSigner}} The signer to send the transaction.\n * @param {TransactionRequest} transaction {{@link TransactionRequest}} The transaction to send.\n * @param {number} confirmations {{@link number}} (optional) The number of confirmations to wait for default to 1.\n * @param {number} timeout {{@link number}} (optional) The timeout to wait for.\n * @returns {Promise<TransactionReceipt | null>} ``receipt`` {{@link TransactionReceipt}} The transaction receipt.\n *\n * If confirmations is 0, the promise will resolve to ``null``.\n * Check the {@link https://docs.ethers.org/v6/api/providers/#TransactionResponse-wait ethers v6 documentation} for more information.\n */\nexport const sendTransaction = async <C extends number = 1>({\n signer,\n transaction,\n confirmations,\n timeout,\n}: {\n signer: JsonRpcSigner;\n transaction: TransactionRequest;\n confirmations?: C;\n timeout?: number;\n}): Promise<C extends 0 ? null : TransactionReceipt> => {\n const txResponse = await signer.sendTransaction(transaction);\n\n return (await txResponse.wait(confirmations, timeout)) as C extends 0 ? null : TransactionReceipt;\n};\n\nexport const getSignerAddressFromMessage = (message: string, signedMessage: string) =>\n verifyMessage(toBeArray(message), signedMessage);\n","import { JsonRpcSigner, TransactionReceipt as EthersTransactionReceipt } from \"ethers\";\n\nimport { switchChain, sendTransaction as _sendTransaction } from \"@shared/utils/signerUtils\";\nimport { TransactionReceipt, Address } from \"@shared/types\";\n\nimport type { SignMessage, SendTransaction, SignTypedData, WalletActionsType } from \"../types\";\n\n/**\n * Get the transaction receipt from the ethers transaction receipt.\n *\n * @param {EthersTransactionReceipt} txReceipt The ethers transaction receipt.\n * @returns {TransactionReceipt} The transaction receipt.\n */\nconst _getTransactionReceipt = (txReceipt: EthersTransactionReceipt): TransactionReceipt => {\n return {\n transactionHash: txReceipt.hash,\n blockHash: txReceipt.blockHash,\n blockNumber: txReceipt.blockNumber,\n from: txReceipt.from,\n to: txReceipt.to || undefined,\n rawReceipt: txReceipt,\n };\n};\n\n/**\n * Connect to a signer.\n *\n * @param {function} getSigner {function} The function to get the signer.\n * @returns {function} ``getAddress`` {function} Function that returns the address of the signer.\n * @returns {function} ``signMessage`` {{@link SignMessage}} Function that signs a message.\n * @returns {function} ``sendTransaction`` {{@link SendTransaction}} Function that sends an EVM transaction.\n */\nexport const connectSigner = (\n getSigner: (address?: Address) => Promise<JsonRpcSigner>\n): Required<WalletActionsType> => {\n const getAddress = async (): Promise<Address> => {\n const signer = await getSigner();\n return signer.getAddress();\n };\n\n const signMessage: SignMessage = async ({ message, ownerAddress }) => {\n const signer = await getSigner(ownerAddress);\n if (ownerAddress) {\n const address = await signer.getAddress();\n if (ownerAddress !== address) {\n throw new Error(\"Owner address does not match\");\n }\n }\n const signature = await signer.signMessage(message);\n return signature;\n };\n\n const sendTransaction: SendTransaction = async (transaction, chainConfig) => {\n let signer = await getSigner();\n const signerNetwork = await signer.provider?.getNetwork();\n if (signerNetwork?.chainId?.toString() !== transaction.chainId.toString()) {\n await switchChain(transaction.chainId, signer, chainConfig);\n signer = await getSigner();\n }\n const ethersTxReceipt = await _sendTransaction({ signer, transaction });\n return _getTransactionReceipt(ethersTxReceipt);\n };\n\n const signTypedData: SignTypedData = async ({ typedData, ownerAddress }) => {\n const signer = await getSigner(ownerAddress);\n if (ownerAddress) {\n const address = await signer.getAddress();\n if (ownerAddress !== address) {\n throw new Error(\"Owner address does not match\");\n }\n }\n return await signer.provider?.send(\"eth_signTypedData_v4\", [ownerAddress, typedData]);\n };\n\n return { getAddress, signMessage, sendTransaction, signTypedData };\n};\n"],"names":["switchChain","async","chainId","signer","chainConfig","provider","Error","send","toString","error","console","addChain","chain_id","blockExplorerUrls","explorer","chainName","network","iconUrls","image","nativeCurrency","native_currency","rpcUrls","rpc","_getEVMChainParamFromChainConfig","getSigner","getAddress","signMessage","message","ownerAddress","sendTransaction","transaction","signerNetwork","getNetwork","ethersTxReceipt","confirmations","timeout","txResponse","wait","_sendTransaction","transactionHash","txReceipt","hash","blockHash","blockNumber","from","to","undefined","rawReceipt","signTypedData","typedData"],"mappings":"yQAiBO,MA0BMA,EAAcC,MAAOC,EAAiBC,EAAuBC,KACtE,IAAKD,EAAOE,SACR,MAAM,IAAIC,MAAM,mCAGpB,UACUH,EAAOE,SAASE,KAAK,6BAA8B,CAAC,CAAEL,QAAS,KAAKA,EAAQM,SAAS,SAC7F,MAAOC,GAEL,GADAC,QAAQD,MAAM,wBAAyBA,IACnCL,EASA,MAAMK,EARN,SAlBYR,OAAOE,EAAuBC,KAClD,IAAKD,EAAOE,SACR,MAAM,IAAIC,MAAM,yCAGdH,EAAOE,SAASE,KAAK,0BAA2B,CAACH,GAAa,EAclDO,CAASR,EArCiB,CAACC,IAA4D,CACzGF,QAAS,KAAKE,EAAYQ,SAASJ,SAAS,MAC5CK,kBAAmB,CAACT,EAAYU,UAChCC,UAAWX,EAAYY,QACvBC,SAAU,CAACb,EAAYc,OACvBC,eAAgBf,EAAYgB,gBAC5BC,QAAS,CAACjB,EAAYkB,OA+BaC,CAAiCnB,UAClDD,EAAOE,SAASE,KAAK,6BAA8B,CAAC,CAAEL,QAAS,KAAKA,EAAQM,SAAS,SAC7F,MAAOC,GAEL,MADAC,QAAQD,MAAM,qBAAsBA,GAC9BA,qBCzBlBe,IAyCO,CAAEC,WAvCUxB,gBACMuB,KACPC,aAqCGC,YAlCYzB,OAAS0B,UAASC,mBAC/C,MAAMzB,QAAeqB,EAAUI,GAC/B,GAAIA,EAAc,CAEd,GAAIA,UADkBzB,EAAOsB,aAEzB,MAAM,IAAInB,MAAM,gCAIxB,aADwBH,EAAOuB,YAAYC,EAC3B,EAyBcE,gBAtBO5B,MAAO6B,EAAa1B,KACzD,IAAID,QAAeqB,IACnB,MAAMO,QAAsB5B,EAAOE,UAAU2B,cACzCD,GAAe7B,SAASM,aAAesB,EAAY5B,QAAQM,mBACrDR,EAAY8B,EAAY5B,QAASC,EAAQC,GAC/CD,QAAeqB,KAEnB,MAAMS,ODmBiBhC,QAC3BE,SACA2B,cACAI,gBACAC,cAOA,MAAMC,QAAmBjC,EAAO0B,gBAAgBC,GAEhD,aAAcM,EAAWC,KAAKH,EAAeC,EAAQ,EChCnBG,CAAiB,CAAEnC,SAAQ2B,gBACzD,MA9CG,CACHS,iBAFwBC,EA+CMP,GA7CHQ,KAC3BC,UAAWF,EAAUE,UACrBC,YAAaH,EAAUG,YACvBC,KAAMJ,EAAUI,KAChBC,GAAIL,EAAUK,SAAMC,EACpBC,WAAYP,GAPW,IAACA,CA+CsB,EAcCQ,cAXd/C,OAASgD,YAAWrB,mBACrD,MAAMzB,QAAeqB,EAAUI,GAC/B,GAAIA,EAAc,CAEd,GAAIA,UADkBzB,EAAOsB,aAEzB,MAAM,IAAInB,MAAM,gCAGxB,aAAaH,EAAOE,UAAUE,KAAK,uBAAwB,CAACqB,EAAcqB,IAAW"}
@@ -1,2 +1,2 @@
1
- "use strict";const e="https://app.halliday.xyz",t=/^[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}$/;function n(e,t,n){function o(n,o){var i;Object.defineProperty(n,"_zod",{value:n._zod??{},enumerable:!1}),(i=n._zod).traits??(i.traits=new Set),n._zod.traits.add(e),t(n,o);for(const e in r.prototype)Object.defineProperty(n,e,{value:r.prototype[e].bind(n)});n._zod.constr=r,n._zod.def=o}const i=n?.Parent??Object;class s extends i{}function r(e){var t;const i=n?.Parent?new s:this;o(i,e),(t=i._zod).deferred??(t.deferred=[]);for(const e of i._zod.deferred)e();return i}return Object.defineProperty(s,"name",{value:e}),Object.defineProperty(r,"init",{value:o}),Object.defineProperty(r,Symbol.hasInstance,{value:t=>!!(n?.Parent&&t instanceof n.Parent)||t?._zod?.traits?.has(e)}),Object.defineProperty(r,"name",{value:e}),r}class o extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}}const i={};function s(e){return i}function r(e,t){return"bigint"==typeof t?t.toString():t}function a(e){return{get value(){{const t=e();return Object.defineProperty(this,"value",{value:t}),t}}}}function u(e){return null==e}function c(e){const t=e.startsWith("^")?1:0,n=e.endsWith("$")?e.length-1:e.length;return e.slice(t,n)}function d(e,t,n){Object.defineProperty(e,t,{get(){{const o=n();return e[t]=o,o}},set(n){Object.defineProperty(e,t,{value:n})},configurable:!0})}function l(e,t,n){Object.defineProperty(e,t,{value:n,writable:!0,enumerable:!0,configurable:!0})}function p(e=10){const t="abcdefghijklmnopqrstuvwxyz";let n="";for(let o=0;o<e;o++)n+=t[Math.floor(26*Math.random())];return n}function f(e){return JSON.stringify(e)}function h(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}const m=a((()=>{try{return new Function(""),!0}catch(e){return!1}}));function _(e){return"object"==typeof e&&null!==e&&(Object.getPrototypeOf(e)===Object.prototype||null===Object.getPrototypeOf(e))}const v=new Set(["string","number","symbol"]);function g(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function y(e,t,n){const o=new e._zod.constr(t??e._zod.def);return t&&!n?.parent||(o._zod.parent=e),o}function w(e){const t=e;if(!t)return{};if("string"==typeof t)return{error:()=>t};if(void 0!==t?.message){if(void 0!==t?.error)throw new Error("Cannot specify both `message` and `error` params");t.error=t.message}return delete t.message,"string"==typeof t.error?{...t,error:()=>t.error}:t}const z={safeint:[Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]};function k(e,t=0){for(let n=t;n<e.issues.length;n++)if(!0!==e.issues[n].continue)return!0;return!1}function b(e,t){return t.map((t=>{var n;return(n=t).path??(n.path=[]),t.path.unshift(e),t}))}function E(e){return"string"==typeof e?e:e?.message}function I(e,t,n){const o={...e,path:e.path??[]};if(!e.message){const i=E(e.inst?._zod.def?.error?.(e))??E(t?.error?.(e))??E(n.customError?.(e))??E(n.localeError?.(e))??"Invalid input";o.message=i}return delete o.inst,delete o.continue,t?.reportInput||delete o.input,o}function $(e){return Array.isArray(e)?"array":"string"==typeof e?"string":"unknown"}function T(...e){const[t,n,o]=e;return"string"==typeof t?{message:t,code:"custom",input:n,inst:o}:{...t}}const x=(e,t)=>{e.name="$ZodError",Object.defineProperty(e,"_zod",{value:e._zod,enumerable:!1}),Object.defineProperty(e,"issues",{value:t,enumerable:!1}),Object.defineProperty(e,"message",{get:()=>JSON.stringify(t,r,2),enumerable:!0})},A=n("$ZodError",x),Z=n("$ZodError",x,{Parent:Error});const P=e=>(t,n,i,r)=>{const a=i?Object.assign(i,{async:!1}):{async:!1},u=t._zod.run({value:n,issues:[]},a);if(u instanceof Promise)throw new o;if(u.issues.length){const t=new(r?.Err??e)(u.issues.map((e=>I(e,a,s()))));throw Error.captureStackTrace(t,r?.callee),t}return u.value},O=e=>async(t,n,o,i)=>{const r=o?Object.assign(o,{async:!0}):{async:!0};let a=t._zod.run({value:n,issues:[]},r);if(a instanceof Promise&&(a=await a),a.issues.length){const t=new(i?.Err??e)(a.issues.map((e=>I(e,r,s()))));throw Error.captureStackTrace(t,i?.callee),t}return a.value},N=e=>(t,n,i)=>{const r=i?{...i,async:!1}:{async:!1},a=t._zod.run({value:n,issues:[]},r);if(a instanceof Promise)throw new o;return a.issues.length?{success:!1,error:new(e??A)(a.issues.map((e=>I(e,r,s()))))}:{success:!0,data:a.value}},S=N(Z),D=e=>async(t,n,o)=>{const i=o?Object.assign(o,{async:!0}):{async:!0};let r=t._zod.run({value:n,issues:[]},i);return r instanceof Promise&&(r=await r),r.issues.length?{success:!1,error:new e(r.issues.map((e=>I(e,i,s()))))}:{success:!0,data:r.value}},C=D(Z),R=/^[cC][^\s-]{8,}$/,M=/^[0-9a-z]+$/,F=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,j=/^[0-9a-vA-V]{20}$/,U=/^[A-Za-z0-9]{27}$/,L=/^[a-zA-Z0-9_-]{21}$/,V=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,W=/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/,B=e=>e?new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${e}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`):/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$/,G=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/;const H=/^(?:(?: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])$/,K=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})$/,q=/^((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])\/([0-9]|[1-2][0-9]|3[0-2])$/,Y=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,J=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,X=/^[A-Za-z0-9_-]*$/,Q=/^([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+$/,ee=/^\+(?:[0-9]){6,14}[0-9]$/,te="((\\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])))",ne=new RegExp(`^${te}$`);function oe(e){let t="([01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d";return e.precision?t=`${t}\\.\\d{${e.precision}}`:null==e.precision&&(t=`${t}(\\.\\d+)?`),t}const ie=/^\d+n?$/,se=/^\d+$/,re=/^-?\d+(?:\.\d+)?/i,ae=/true|false/i,ue=/null/i,ce=/^[^A-Z]*$/,de=/^[^a-z]*$/,le=n("$ZodCheck",((e,t)=>{var n;e._zod??(e._zod={}),e._zod.def=t,(n=e._zod).onattach??(n.onattach=[])})),pe={number:"number",bigint:"bigint",object:"date"},fe=n("$ZodCheckLessThan",((e,t)=>{le.init(e,t);const n=pe[typeof t.value];e._zod.onattach.push((e=>{const n=e._zod.bag,o=(t.inclusive?n.maximum:n.exclusiveMaximum)??Number.POSITIVE_INFINITY;t.value<o&&(t.inclusive?n.maximum=t.value:n.exclusiveMaximum=t.value)})),e._zod.check=o=>{(t.inclusive?o.value<=t.value:o.value<t.value)||o.issues.push({origin:n,code:"too_big",maximum:t.value,input:o.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}})),he=n("$ZodCheckGreaterThan",((e,t)=>{le.init(e,t);const n=pe[typeof t.value];e._zod.onattach.push((e=>{const n=e._zod.bag,o=(t.inclusive?n.minimum:n.exclusiveMinimum)??Number.NEGATIVE_INFINITY;t.value>o&&(t.inclusive?n.minimum=t.value:n.exclusiveMinimum=t.value)})),e._zod.check=o=>{(t.inclusive?o.value>=t.value:o.value>t.value)||o.issues.push({origin:n,code:"too_small",minimum:t.value,input:o.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}})),me=n("$ZodCheckMultipleOf",((e,t)=>{le.init(e,t),e._zod.onattach.push((e=>{var n;(n=e._zod.bag).multipleOf??(n.multipleOf=t.value)})),e._zod.check=n=>{if(typeof n.value!=typeof t.value)throw new Error("Cannot mix number and bigint in multiple_of check.");("bigint"==typeof n.value?n.value%t.value===BigInt(0):0===function(e,t){const n=(e.toString().split(".")[1]||"").length,o=(t.toString().split(".")[1]||"").length,i=n>o?n:o;return Number.parseInt(e.toFixed(i).replace(".",""))%Number.parseInt(t.toFixed(i).replace(".",""))/10**i}(n.value,t.value))||n.issues.push({origin:typeof n.value,code:"not_multiple_of",divisor:t.value,input:n.value,inst:e,continue:!t.abort})}})),_e=n("$ZodCheckNumberFormat",((e,t)=>{le.init(e,t),t.format=t.format||"float64";const n=t.format?.includes("int"),o=n?"int":"number",[i,s]=z[t.format];e._zod.onattach.push((e=>{const o=e._zod.bag;o.format=t.format,o.minimum=i,o.maximum=s,n&&(o.pattern=se)})),e._zod.check=r=>{const a=r.value;if(n){if(!Number.isInteger(a))return void r.issues.push({expected:o,format:t.format,code:"invalid_type",input:a,inst:e});if(!Number.isSafeInteger(a))return void(a>0?r.issues.push({input:a,code:"too_big",maximum:Number.MAX_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:o,continue:!t.abort}):r.issues.push({input:a,code:"too_small",minimum:Number.MIN_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:o,continue:!t.abort}))}a<i&&r.issues.push({origin:"number",input:a,code:"too_small",minimum:i,inclusive:!0,inst:e,continue:!t.abort}),a>s&&r.issues.push({origin:"number",input:a,code:"too_big",maximum:s,inst:e})}})),ve=n("$ZodCheckMaxLength",((e,t)=>{le.init(e,t),e._zod.when=e=>{const t=e.value;return!u(t)&&void 0!==t.length},e._zod.onattach.push((e=>{const n=e._zod.bag.maximum??Number.POSITIVE_INFINITY;t.maximum<n&&(e._zod.bag.maximum=t.maximum)})),e._zod.check=n=>{const o=n.value;if(o.length<=t.maximum)return;const i=$(o);n.issues.push({origin:i,code:"too_big",maximum:t.maximum,input:o,inst:e,continue:!t.abort})}})),ge=n("$ZodCheckMinLength",((e,t)=>{le.init(e,t),e._zod.when=e=>{const t=e.value;return!u(t)&&void 0!==t.length},e._zod.onattach.push((e=>{const n=e._zod.bag.minimum??Number.NEGATIVE_INFINITY;t.minimum>n&&(e._zod.bag.minimum=t.minimum)})),e._zod.check=n=>{const o=n.value;if(o.length>=t.minimum)return;const i=$(o);n.issues.push({origin:i,code:"too_small",minimum:t.minimum,input:o,inst:e,continue:!t.abort})}})),ye=n("$ZodCheckLengthEquals",((e,t)=>{le.init(e,t),e._zod.when=e=>{const t=e.value;return!u(t)&&void 0!==t.length},e._zod.onattach.push((e=>{const n=e._zod.bag;n.minimum=t.length,n.maximum=t.length,n.length=t.length})),e._zod.check=n=>{const o=n.value,i=o.length;if(i===t.length)return;const s=$(o),r=i>t.length;n.issues.push({origin:s,...r?{code:"too_big",maximum:t.length}:{code:"too_small",minimum:t.length},input:n.value,inst:e,continue:!t.abort})}})),we=n("$ZodCheckStringFormat",((e,t)=>{var n;le.init(e,t),e._zod.onattach.push((e=>{const n=e._zod.bag;n.format=t.format,t.pattern&&(n.patterns??(n.patterns=new Set),n.patterns.add(t.pattern))})),(n=e._zod).check??(n.check=n=>{if(!t.pattern)throw new Error("Not implemented.");t.pattern.lastIndex=0,t.pattern.test(n.value)||n.issues.push({origin:"string",code:"invalid_format",format:t.format,input:n.value,...t.pattern?{pattern:t.pattern.toString()}:{},inst:e,continue:!t.abort})})})),ze=n("$ZodCheckRegex",((e,t)=>{we.init(e,t),e._zod.check=n=>{t.pattern.lastIndex=0,t.pattern.test(n.value)||n.issues.push({origin:"string",code:"invalid_format",format:"regex",input:n.value,pattern:t.pattern.toString(),inst:e,continue:!t.abort})}})),ke=n("$ZodCheckLowerCase",((e,t)=>{t.pattern??(t.pattern=ce),we.init(e,t)})),be=n("$ZodCheckUpperCase",((e,t)=>{t.pattern??(t.pattern=de),we.init(e,t)})),Ee=n("$ZodCheckIncludes",((e,t)=>{le.init(e,t);const n=g(t.includes),o=new RegExp("number"==typeof t.position?`^.{${t.position}}${n}`:n);t.pattern=o,e._zod.onattach.push((e=>{const t=e._zod.bag;t.patterns??(t.patterns=new Set),t.patterns.add(o)})),e._zod.check=n=>{n.value.includes(t.includes,t.position)||n.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:t.includes,input:n.value,inst:e,continue:!t.abort})}})),Ie=n("$ZodCheckStartsWith",((e,t)=>{le.init(e,t);const n=new RegExp(`^${g(t.prefix)}.*`);t.pattern??(t.pattern=n),e._zod.onattach.push((e=>{const t=e._zod.bag;t.patterns??(t.patterns=new Set),t.patterns.add(n)})),e._zod.check=n=>{n.value.startsWith(t.prefix)||n.issues.push({origin:"string",code:"invalid_format",format:"starts_with",prefix:t.prefix,input:n.value,inst:e,continue:!t.abort})}})),$e=n("$ZodCheckEndsWith",((e,t)=>{le.init(e,t);const n=new RegExp(`.*${g(t.suffix)}$`);t.pattern??(t.pattern=n),e._zod.onattach.push((e=>{const t=e._zod.bag;t.patterns??(t.patterns=new Set),t.patterns.add(n)})),e._zod.check=n=>{n.value.endsWith(t.suffix)||n.issues.push({origin:"string",code:"invalid_format",format:"ends_with",suffix:t.suffix,input:n.value,inst:e,continue:!t.abort})}})),Te=n("$ZodCheckOverwrite",((e,t)=>{le.init(e,t),e._zod.check=e=>{e.value=t.tx(e.value)}}));class xe{constructor(e=[]){this.content=[],this.indent=0,this&&(this.args=e)}indented(e){this.indent+=1,e(this),this.indent-=1}write(e){if("function"==typeof e)return e(this,{execution:"sync"}),void e(this,{execution:"async"});const t=e.split("\n").filter((e=>e)),n=Math.min(...t.map((e=>e.length-e.trimStart().length))),o=t.map((e=>e.slice(n))).map((e=>" ".repeat(2*this.indent)+e));for(const e of o)this.content.push(e)}compile(){const e=Function,t=this?.args;return new e(...t,[...(this?.content??[""]).map((e=>` ${e}`))].join("\n"))}}const Ae={major:4,minor:0,patch:0},Ze=n("$ZodType",((e,t)=>{var n;e??(e={}),e._zod.id=t.type+"_"+p(10),e._zod.def=t,e._zod.bag=e._zod.bag||{},e._zod.version=Ae;const i=[...e._zod.def.checks??[]];e._zod.traits.has("$ZodCheck")&&i.unshift(e);for(const t of i)for(const n of t._zod.onattach)n(e);if(0===i.length)(n=e._zod).deferred??(n.deferred=[]),e._zod.deferred?.push((()=>{e._zod.run=e._zod.parse}));else{const t=(e,t,n)=>{let i,s=k(e);for(const r of t){if(r._zod.when){if(!r._zod.when(e))continue}else if(s)continue;const t=e.issues.length,a=r._zod.check(e);if(a instanceof Promise&&!1===n?.async)throw new o;if(i||a instanceof Promise)i=(i??Promise.resolve()).then((async()=>{await a;e.issues.length!==t&&(s||(s=k(e,t)))}));else{if(e.issues.length===t)continue;s||(s=k(e,t))}}return i?i.then((()=>e)):e};e._zod.run=(n,s)=>{const r=e._zod.parse(n,s);if(r instanceof Promise){if(!1===s.async)throw new o;return r.then((e=>t(e,i,s)))}return t(r,i,s)}}e["~standard"]={validate:t=>{try{const n=S(e,t);return n.success?{value:n.data}:{issues:n.error?.issues}}catch(n){return C(e,t).then((e=>e.success?{value:e.data}:{issues:e.error?.issues}))}},vendor:"zod",version:1}})),Pe=n("$ZodString",((e,t)=>{var n;Ze.init(e,t),e._zod.pattern=[...e?._zod.bag?.patterns??[]].pop()??(n=e._zod.bag,new RegExp(`^${n?`[\\s\\S]{${n?.minimum??0},${n?.maximum??""}}`:"[\\s\\S]*"}$`)),e._zod.parse=(n,o)=>{if(t.coerce)try{n.value=String(n.value)}catch(o){}return"string"==typeof n.value||n.issues.push({expected:"string",code:"invalid_type",input:n.value,inst:e}),n}})),Oe=n("$ZodStringFormat",((e,t)=>{we.init(e,t),Pe.init(e,t)})),Ne=n("$ZodGUID",((e,t)=>{t.pattern??(t.pattern=W),Oe.init(e,t)})),Se=n("$ZodUUID",((e,t)=>{if(t.version){const e={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[t.version];if(void 0===e)throw new Error(`Invalid UUID version: "${t.version}"`);t.pattern??(t.pattern=B(e))}else t.pattern??(t.pattern=B());Oe.init(e,t)})),De=n("$ZodEmail",((e,t)=>{t.pattern??(t.pattern=G),Oe.init(e,t)})),Ce=n("$ZodURL",((e,t)=>{Oe.init(e,t),e._zod.check=n=>{try{const o=new URL(n.value);return t.hostname&&(t.hostname.lastIndex=0,t.hostname.test(o.hostname)||n.issues.push({code:"invalid_format",format:"url",note:"Invalid hostname",pattern:Q.source,input:n.value,inst:e})),void(t.protocol&&(t.protocol.lastIndex=0,t.protocol.test(o.protocol.endsWith(":")?o.protocol.slice(0,-1):o.protocol)||n.issues.push({code:"invalid_format",format:"url",note:"Invalid protocol",pattern:t.protocol.source,input:n.value,inst:e})))}catch(t){n.issues.push({code:"invalid_format",format:"url",input:n.value,inst:e})}}})),Re=n("$ZodEmoji",((e,t)=>{t.pattern??(t.pattern=new RegExp("^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$","u")),Oe.init(e,t)})),Me=n("$ZodNanoID",((e,t)=>{t.pattern??(t.pattern=L),Oe.init(e,t)})),Fe=n("$ZodCUID",((e,t)=>{t.pattern??(t.pattern=R),Oe.init(e,t)})),je=n("$ZodCUID2",((e,t)=>{t.pattern??(t.pattern=M),Oe.init(e,t)})),Ue=n("$ZodULID",((e,t)=>{t.pattern??(t.pattern=F),Oe.init(e,t)})),Le=n("$ZodXID",((e,t)=>{t.pattern??(t.pattern=j),Oe.init(e,t)})),Ve=n("$ZodKSUID",((e,t)=>{t.pattern??(t.pattern=U),Oe.init(e,t)})),We=n("$ZodISODateTime",((e,t)=>{t.pattern??(t.pattern=function(e){let t=`${te}T${oe(e)}`;const n=[];return n.push(e.local?"Z?":"Z"),e.offset&&n.push("([+-]\\d{2}:?\\d{2})"),t=`${t}(${n.join("|")})`,new RegExp(`^${t}$`)}(t)),Oe.init(e,t)})),Be=n("$ZodISODate",((e,t)=>{t.pattern??(t.pattern=ne),Oe.init(e,t)})),Ge=n("$ZodISOTime",((e,t)=>{t.pattern??(t.pattern=new RegExp(`^${oe(t)}$`)),Oe.init(e,t)})),He=n("$ZodISODuration",((e,t)=>{t.pattern??(t.pattern=V),Oe.init(e,t)})),Ke=n("$ZodIPv4",((e,t)=>{t.pattern??(t.pattern=H),Oe.init(e,t),e._zod.onattach.push((e=>{e._zod.bag.format="ipv4"}))})),qe=n("$ZodIPv6",((e,t)=>{t.pattern??(t.pattern=K),Oe.init(e,t),e._zod.onattach.push((e=>{e._zod.bag.format="ipv6"})),e._zod.check=t=>{try{new URL(`http://[${t.value}]`)}catch{t.issues.push({code:"invalid_format",format:"ipv6",input:t.value,inst:e})}}})),Ye=n("$ZodCIDRv4",((e,t)=>{t.pattern??(t.pattern=q),Oe.init(e,t)})),Je=n("$ZodCIDRv6",((e,t)=>{t.pattern??(t.pattern=Y),Oe.init(e,t),e._zod.check=t=>{const[n,o]=t.value.split("/");try{if(!o)throw new Error;const e=Number(o);if(`${e}`!==o)throw new Error;if(e<0||e>128)throw new Error;new URL(`http://[${n}]`)}catch{t.issues.push({code:"invalid_format",format:"cidrv6",input:t.value,inst:e})}}}));function Xe(e){if(""===e)return!0;if(e.length%4!=0)return!1;try{return atob(e),!0}catch{return!1}}const Qe=n("$ZodBase64",((e,t)=>{t.pattern??(t.pattern=J),Oe.init(e,t),e._zod.onattach.push((e=>{e._zod.bag.contentEncoding="base64"})),e._zod.check=t=>{Xe(t.value)||t.issues.push({code:"invalid_format",format:"base64",input:t.value,inst:e})}}));const et=n("$ZodBase64URL",((e,t)=>{t.pattern??(t.pattern=X),Oe.init(e,t),e._zod.onattach.push((e=>{e._zod.bag.contentEncoding="base64url"})),e._zod.check=t=>{(function(e){if(!X.test(e))return!1;const t=e.replace(/[-_]/g,(e=>"-"===e?"+":"/"));return Xe(t.padEnd(4*Math.ceil(t.length/4),"="))})(t.value)||t.issues.push({code:"invalid_format",format:"base64url",input:t.value,inst:e})}})),tt=n("$ZodE164",((e,t)=>{t.pattern??(t.pattern=ee),Oe.init(e,t)}));const nt=n("$ZodJWT",((e,t)=>{Oe.init(e,t),e._zod.check=n=>{(function(e,t=null){try{const n=e.split(".");if(3!==n.length)return!1;const[o]=n,i=JSON.parse(atob(o));return!("typ"in i&&"JWT"!==i?.typ||!i.alg||t&&(!("alg"in i)||i.alg!==t))}catch{return!1}})(n.value,t.alg)||n.issues.push({code:"invalid_format",format:"jwt",input:n.value,inst:e})}})),ot=n("$ZodNumber",((e,t)=>{Ze.init(e,t),e._zod.pattern=e._zod.bag.pattern??re,e._zod.parse=(n,o)=>{if(t.coerce)try{n.value=Number(n.value)}catch(e){}const i=n.value;if("number"==typeof i&&!Number.isNaN(i)&&Number.isFinite(i))return n;const s="number"==typeof i?Number.isNaN(i)?"NaN":Number.isFinite(i)?void 0:"Infinity":void 0;return n.issues.push({expected:"number",code:"invalid_type",input:i,inst:e,...s?{received:s}:{}}),n}})),it=n("$ZodNumber",((e,t)=>{_e.init(e,t),ot.init(e,t)})),st=n("$ZodBoolean",((e,t)=>{Ze.init(e,t),e._zod.pattern=ae,e._zod.parse=(n,o)=>{if(t.coerce)try{n.value=Boolean(n.value)}catch(e){}const i=n.value;return"boolean"==typeof i||n.issues.push({expected:"boolean",code:"invalid_type",input:i,inst:e}),n}})),rt=n("$ZodBigInt",((e,t)=>{Ze.init(e,t),e._zod.pattern=ie,e._zod.parse=(n,o)=>{if(t.coerce)try{n.value=BigInt(n.value)}catch(e){}const{value:i}=n;return"bigint"==typeof i||n.issues.push({expected:"bigint",code:"invalid_type",input:i,inst:e}),n}})),at=n("$ZodNull",((e,t)=>{Ze.init(e,t),e._zod.pattern=ue,e._zod.values=new Set([null]),e._zod.parse=(t,n)=>{const{value:o}=t;return null===o||t.issues.push({expected:"null",code:"invalid_type",input:o,inst:e}),t}})),ut=n("$ZodAny",((e,t)=>{Ze.init(e,t),e._zod.parse=e=>e})),ct=n("$ZodUnknown",((e,t)=>{Ze.init(e,t),e._zod.parse=e=>e})),dt=n("$ZodNever",((e,t)=>{Ze.init(e,t),e._zod.parse=(t,n)=>(t.issues.push({expected:"never",code:"invalid_type",input:t.value,inst:e}),t)}));function lt(e,t,n){e.issues.length&&t.issues.push(...b(n,e.issues)),t.value[n]=e.value}const pt=n("$ZodArray",((e,t)=>{Ze.init(e,t),e._zod.parse=(n,o)=>{const i=n.value;if(!Array.isArray(i))return n.issues.push({expected:"array",code:"invalid_type",input:i,inst:e}),n;n.value=Array(i.length);const s=[];for(let e=0;e<i.length;e++){const r=i[e],a=t.element._zod.run({value:r,issues:[]},o);a instanceof Promise?s.push(a.then((t=>lt(t,n,e)))):lt(a,n,e)}return s.length?Promise.all(s).then((()=>n)):n}}));function ft(e,t,n){e.issues.length&&t.issues.push(...b(n,e.issues)),t.value[n]=e.value}function ht(e,t,n,o){e.issues.length?void 0===o[n]?t.value[n]=n in o?void 0:e.value:t.issues.push(...b(n,e.issues)):void 0===e.value?n in o&&(t.value[n]=void 0):t.value[n]=e.value}const mt=n("$ZodObject",((e,t)=>{Ze.init(e,t);const n=a((()=>{const e=Object.keys(t.shape);for(const n of e)if(!(t.shape[n]instanceof Ze))throw new Error(`Invalid element at key "${n}": expected a Zod schema`);const n=(o=t.shape,Object.keys(o).filter((e=>"optional"===o[e]._zod.optin&&"optional"===o[e]._zod.optout)));var o;return{shape:t.shape,keys:e,keySet:new Set(e),numKeys:e.length,optionalKeys:new Set(n)}}));d(e._zod,"propValues",(()=>{const e=t.shape,n={};for(const t in e){const o=e[t]._zod;if(o.values){n[t]??(n[t]=new Set);for(const e of o.values)n[t].add(e)}}return n}));let o;const s=h,r=!i.jitless,u=r&&m.value,{catchall:c}=t;let l;e._zod.parse=(i,a)=>{l??(l=n.value);const d=i.value;if(!s(d))return i.issues.push({expected:"object",code:"invalid_type",input:d,inst:e}),i;const h=[];if(r&&u&&!1===a?.async&&!0!==a.jitless)o||(o=(e=>{const t=new xe(["shape","payload","ctx"]),{keys:o,optionalKeys:i}=n.value,s=e=>{const t=f(e);return`shape[${t}]._zod.run({ value: input[${t}], issues: [] }, ctx)`};t.write("const input = payload.value;");const r=Object.create(null);for(const e of o)r[e]=p(15);t.write("const newResult = {}");for(const e of o)if(i.has(e)){const n=r[e];t.write(`const ${n} = ${s(e)};`);const o=f(e);t.write(`\n if (${n}.issues.length) {\n if (input[${o}] === undefined) {\n if (${o} in input) {\n newResult[${o}] = undefined;\n }\n } else {\n payload.issues = payload.issues.concat(\n ${n}.issues.map((iss) => ({\n ...iss,\n path: iss.path ? [${o}, ...iss.path] : [${o}],\n }))\n );\n }\n } else if (${n}.value === undefined) {\n if (${o} in input) newResult[${o}] = undefined;\n } else {\n newResult[${o}] = ${n}.value;\n }\n `)}else{const n=r[e];t.write(`const ${n} = ${s(e)};`),t.write(`\n if (${n}.issues.length) payload.issues = payload.issues.concat(${n}.issues.map(iss => ({\n ...iss,\n path: iss.path ? [${f(e)}, ...iss.path] : [${f(e)}]\n })));`),t.write(`newResult[${f(e)}] = ${n}.value`)}t.write("payload.value = newResult;"),t.write("return payload;");const a=t.compile();return(t,n)=>a(e,t,n)})(t.shape)),i=o(i,a);else{i.value={};const e=l.shape;for(const t of l.keys){const n=e[t],o=n._zod.run({value:d[t],issues:[]},a),s="optional"===n._zod.optin&&"optional"===n._zod.optout;o instanceof Promise?h.push(o.then((e=>s?ht(e,i,t,d):ft(e,i,t)))):s?ht(o,i,t,d):ft(o,i,t)}}if(!c)return h.length?Promise.all(h).then((()=>i)):i;const m=[],_=l.keySet,v=c._zod,g=v.def.type;for(const e of Object.keys(d)){if(_.has(e))continue;if("never"===g){m.push(e);continue}const t=v.run({value:d[e],issues:[]},a);t instanceof Promise?h.push(t.then((t=>ft(t,i,e)))):ft(t,i,e)}return m.length&&i.issues.push({code:"unrecognized_keys",keys:m,input:d,inst:e}),h.length?Promise.all(h).then((()=>i)):i}}));function _t(e,t,n,o){for(const n of e)if(0===n.issues.length)return t.value=n.value,t;return t.issues.push({code:"invalid_union",input:t.value,inst:n,errors:e.map((e=>e.issues.map((e=>I(e,o,s())))))}),t}const vt=n("$ZodUnion",((e,t)=>{Ze.init(e,t),d(e._zod,"values",(()=>{if(t.options.every((e=>e._zod.values)))return new Set(t.options.flatMap((e=>Array.from(e._zod.values))))})),d(e._zod,"pattern",(()=>{if(t.options.every((e=>e._zod.pattern))){const e=t.options.map((e=>e._zod.pattern));return new RegExp(`^(${e.map((e=>c(e.source))).join("|")})$`)}})),e._zod.parse=(n,o)=>{let i=!1;const s=[];for(const e of t.options){const t=e._zod.run({value:n.value,issues:[]},o);if(t instanceof Promise)s.push(t),i=!0;else{if(0===t.issues.length)return t;s.push(t)}}return i?Promise.all(s).then((t=>_t(t,n,e,o))):_t(s,n,e,o)}})),gt=n("$ZodDiscriminatedUnion",((e,t)=>{vt.init(e,t);const n=e._zod.parse;d(e._zod,"propValues",(()=>{const e={};for(const n of t.options){const o=n._zod.propValues;if(!o||0===Object.keys(o).length)throw new Error(`Invalid discriminated union option at index "${t.options.indexOf(n)}"`);for(const[t,n]of Object.entries(o)){e[t]||(e[t]=new Set);for(const o of n)e[t].add(o)}}return e}));const o=a((()=>{const e=t.options,n=new Map;for(const o of e){const e=o._zod.propValues[t.discriminator];if(!e||0===e.size)throw new Error(`Invalid discriminated union option at index "${t.options.indexOf(o)}"`);for(const t of e){if(n.has(t))throw new Error(`Duplicate discriminator value "${String(t)}"`);n.set(t,o)}}return n}));e._zod.parse=(i,s)=>{const r=i.value;if(!h(r))return i.issues.push({code:"invalid_type",expected:"object",input:r,inst:e}),i;const a=o.value.get(r?.[t.discriminator]);return a?a._zod.run(i,s):t.unionFallback?n(i,s):(i.issues.push({code:"invalid_union",errors:[],note:"No matching discriminator",input:r,path:[t.discriminator],inst:e}),i)}})),yt=n("$ZodIntersection",((e,t)=>{Ze.init(e,t),e._zod.parse=(e,n)=>{const{value:o}=e,i=t.left._zod.run({value:o,issues:[]},n),s=t.right._zod.run({value:o,issues:[]},n);return i instanceof Promise||s instanceof Promise?Promise.all([i,s]).then((([t,n])=>zt(e,t,n))):zt(e,i,s)}}));function wt(e,t){if(e===t)return{valid:!0,data:e};if(e instanceof Date&&t instanceof Date&&+e==+t)return{valid:!0,data:e};if(_(e)&&_(t)){const n=Object.keys(t),o=Object.keys(e).filter((e=>-1!==n.indexOf(e))),i={...e,...t};for(const n of o){const o=wt(e[n],t[n]);if(!o.valid)return{valid:!1,mergeErrorPath:[n,...o.mergeErrorPath]};i[n]=o.data}return{valid:!0,data:i}}if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return{valid:!1,mergeErrorPath:[]};const n=[];for(let o=0;o<e.length;o++){const i=wt(e[o],t[o]);if(!i.valid)return{valid:!1,mergeErrorPath:[o,...i.mergeErrorPath]};n.push(i.data)}return{valid:!0,data:n}}return{valid:!1,mergeErrorPath:[]}}function zt(e,t,n){if(t.issues.length&&e.issues.push(...t.issues),n.issues.length&&e.issues.push(...n.issues),k(e))return e;const o=wt(t.value,n.value);if(!o.valid)throw new Error(`Unmergable intersection. Error path: ${JSON.stringify(o.mergeErrorPath)}`);return e.value=o.data,e}const kt=n("$ZodTuple",((e,t)=>{Ze.init(e,t);const n=t.items,o=n.length-[...n].reverse().findIndex((e=>"optional"!==e._zod.optin));e._zod.parse=(i,s)=>{const r=i.value;if(!Array.isArray(r))return i.issues.push({input:r,inst:e,expected:"tuple",code:"invalid_type"}),i;i.value=[];const a=[];if(!t.rest){const t=r.length>n.length,s=r.length<o-1;if(t||s)return i.issues.push({input:r,inst:e,origin:"array",...t?{code:"too_big",maximum:n.length}:{code:"too_small",minimum:n.length}}),i}let u=-1;for(const e of n){if(u++,u>=r.length&&u>=o)continue;const t=e._zod.run({value:r[u],issues:[]},s);t instanceof Promise?a.push(t.then((e=>bt(e,i,u)))):bt(t,i,u)}if(t.rest){const e=r.slice(n.length);for(const n of e){u++;const e=t.rest._zod.run({value:n,issues:[]},s);e instanceof Promise?a.push(e.then((e=>bt(e,i,u)))):bt(e,i,u)}}return a.length?Promise.all(a).then((()=>i)):i}}));function bt(e,t,n){e.issues.length&&t.issues.push(...b(n,e.issues)),t.value[n]=e.value}const Et=n("$ZodRecord",((e,t)=>{Ze.init(e,t),e._zod.parse=(n,o)=>{const i=n.value;if(!_(i))return n.issues.push({expected:"record",code:"invalid_type",input:i,inst:e}),n;const r=[];if(t.keyType._zod.values){const s=t.keyType._zod.values;n.value={};for(const e of s)if("string"==typeof e||"number"==typeof e||"symbol"==typeof e){const s=t.valueType._zod.run({value:i[e],issues:[]},o);s instanceof Promise?r.push(s.then((t=>{t.issues.length&&n.issues.push(...b(e,t.issues)),n.value[e]=t.value}))):(s.issues.length&&n.issues.push(...b(e,s.issues)),n.value[e]=s.value)}let a;for(const e in i)s.has(e)||(a=a??[],a.push(e));a&&a.length>0&&n.issues.push({code:"unrecognized_keys",input:i,inst:e,keys:a})}else{n.value={};for(const a of Reflect.ownKeys(i)){if("__proto__"===a)continue;const u=t.keyType._zod.run({value:a,issues:[]},o);if(u instanceof Promise)throw new Error("Async schemas not supported in object keys currently");if(u.issues.length){n.issues.push({origin:"record",code:"invalid_key",issues:u.issues.map((e=>I(e,o,s()))),input:a,path:[a],inst:e}),n.value[u.value]=u.value;continue}const c=t.valueType._zod.run({value:i[a],issues:[]},o);c instanceof Promise?r.push(c.then((e=>{e.issues.length&&n.issues.push(...b(a,e.issues)),n.value[u.value]=e.value}))):(c.issues.length&&n.issues.push(...b(a,c.issues)),n.value[u.value]=c.value)}}return r.length?Promise.all(r).then((()=>n)):n}})),It=n("$ZodEnum",((e,t)=>{Ze.init(e,t);const n=function(e){const t=Object.values(e).filter((e=>"number"==typeof e));return Object.entries(e).filter((([e,n])=>-1===t.indexOf(+e))).map((([e,t])=>t))}(t.entries);e._zod.values=new Set(n),e._zod.pattern=new RegExp(`^(${n.filter((e=>v.has(typeof e))).map((e=>"string"==typeof e?g(e):e.toString())).join("|")})$`),e._zod.parse=(t,o)=>{const i=t.value;return e._zod.values.has(i)||t.issues.push({code:"invalid_value",values:n,input:i,inst:e}),t}})),$t=n("$ZodLiteral",((e,t)=>{Ze.init(e,t),e._zod.values=new Set(t.values),e._zod.pattern=new RegExp(`^(${t.values.map((e=>"string"==typeof e?g(e):e?e.toString():String(e))).join("|")})$`),e._zod.parse=(n,o)=>{const i=n.value;return e._zod.values.has(i)||n.issues.push({code:"invalid_value",values:t.values,input:i,inst:e}),n}})),Tt=n("$ZodTransform",((e,t)=>{Ze.init(e,t),e._zod.parse=(e,n)=>{const i=t.transform(e.value,e);if(n.async){return(i instanceof Promise?i:Promise.resolve(i)).then((t=>(e.value=t,e)))}if(i instanceof Promise)throw new o;return e.value=i,e}})),xt=n("$ZodOptional",((e,t)=>{Ze.init(e,t),e._zod.optin="optional",e._zod.optout="optional",d(e._zod,"values",(()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,void 0]):void 0)),d(e._zod,"pattern",(()=>{const e=t.innerType._zod.pattern;return e?new RegExp(`^(${c(e.source)})?$`):void 0})),e._zod.parse=(e,n)=>void 0===e.value?e:t.innerType._zod.run(e,n)})),At=n("$ZodNullable",((e,t)=>{Ze.init(e,t),d(e._zod,"optin",(()=>t.innerType._zod.optin)),d(e._zod,"optout",(()=>t.innerType._zod.optout)),d(e._zod,"pattern",(()=>{const e=t.innerType._zod.pattern;return e?new RegExp(`^(${c(e.source)}|null)$`):void 0})),d(e._zod,"values",(()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,null]):void 0)),e._zod.parse=(e,n)=>null===e.value?e:t.innerType._zod.run(e,n)})),Zt=n("$ZodDefault",((e,t)=>{Ze.init(e,t),e._zod.optin="optional",d(e._zod,"values",(()=>t.innerType._zod.values)),e._zod.parse=(e,n)=>{if(void 0===e.value)return e.value=t.defaultValue,e;const o=t.innerType._zod.run(e,n);return o instanceof Promise?o.then((e=>Pt(e,t))):Pt(o,t)}}));function Pt(e,t){return void 0===e.value&&(e.value=t.defaultValue),e}const Ot=n("$ZodPrefault",((e,t)=>{Ze.init(e,t),e._zod.optin="optional",d(e._zod,"values",(()=>t.innerType._zod.values)),e._zod.parse=(e,n)=>(void 0===e.value&&(e.value=t.defaultValue),t.innerType._zod.run(e,n))})),Nt=n("$ZodNonOptional",((e,t)=>{Ze.init(e,t),d(e._zod,"values",(()=>{const e=t.innerType._zod.values;return e?new Set([...e].filter((e=>void 0!==e))):void 0})),e._zod.parse=(n,o)=>{const i=t.innerType._zod.run(n,o);return i instanceof Promise?i.then((t=>St(t,e))):St(i,e)}}));function St(e,t){return e.issues.length||void 0!==e.value||e.issues.push({code:"invalid_type",expected:"nonoptional",input:e.value,inst:t}),e}const Dt=n("$ZodCatch",((e,t)=>{Ze.init(e,t),d(e._zod,"optin",(()=>t.innerType._zod.optin)),d(e._zod,"optout",(()=>t.innerType._zod.optout)),d(e._zod,"values",(()=>t.innerType._zod.values)),e._zod.parse=(e,n)=>{const o=t.innerType._zod.run(e,n);return o instanceof Promise?o.then((o=>(e.value=o.value,o.issues.length&&(e.value=t.catchValue({...e,error:{issues:o.issues.map((e=>I(e,n,s())))},input:e.value}),e.issues=[]),e))):(e.value=o.value,o.issues.length&&(e.value=t.catchValue({...e,error:{issues:o.issues.map((e=>I(e,n,s())))},input:e.value}),e.issues=[]),e)}})),Ct=n("$ZodPipe",((e,t)=>{Ze.init(e,t),d(e._zod,"values",(()=>t.in._zod.values)),d(e._zod,"optin",(()=>t.in._zod.optin)),d(e._zod,"optout",(()=>t.out._zod.optout)),e._zod.parse=(e,n)=>{const o=t.in._zod.run(e,n);return o instanceof Promise?o.then((e=>Rt(e,t,n))):Rt(o,t,n)}}));function Rt(e,t,n){return k(e)?e:t.out._zod.run({value:e.value,issues:e.issues},n)}const Mt=n("$ZodReadonly",((e,t)=>{Ze.init(e,t),d(e._zod,"propValues",(()=>t.innerType._zod.propValues)),d(e._zod,"optin",(()=>t.innerType._zod.optin)),d(e._zod,"optout",(()=>t.innerType._zod.optout)),e._zod.parse=(e,n)=>{const o=t.innerType._zod.run(e,n);return o instanceof Promise?o.then(Ft):Ft(o)}}));function Ft(e){return e.value=Object.freeze(e.value),e}const jt=n("$ZodLazy",((e,t)=>{Ze.init(e,t),d(e._zod,"innerType",(()=>t.getter())),d(e._zod,"pattern",(()=>e._zod.innerType._zod.pattern)),d(e._zod,"propValues",(()=>e._zod.innerType._zod.propValues)),d(e._zod,"optin",(()=>e._zod.innerType._zod.optin)),d(e._zod,"optout",(()=>e._zod.innerType._zod.optout)),e._zod.parse=(t,n)=>e._zod.innerType._zod.run(t,n)})),Ut=n("$ZodCustom",((e,t)=>{le.init(e,t),Ze.init(e,t),e._zod.parse=(e,t)=>e,e._zod.check=n=>{const o=n.value,i=t.fn(o);if(i instanceof Promise)return i.then((t=>Lt(t,n,o,e)));Lt(i,n,o,e)}}));function Lt(e,t,n,o){if(!e){const e={code:"custom",input:n,inst:o,path:[...o._zod.def.path??[]],continue:!o._zod.def.abort};o._zod.def.params&&(e.params=o._zod.def.params),t.issues.push(T(e))}}class Vt{constructor(){this._map=new WeakMap,this._idmap=new Map}add(e,...t){const n=t[0];if(this._map.set(e,n),n&&"object"==typeof n&&"id"in n){if(this._idmap.has(n.id))throw new Error(`ID ${n.id} already exists in the registry`);this._idmap.set(n.id,e)}return this}remove(e){return this._map.delete(e),this}get(e){const t=e._zod.parent;if(t){const n={...this.get(t)??{}};return delete n.id,{...n,...this._map.get(e)}}return this._map.get(e)}has(e){return this._map.has(e)}}function Wt(){return new Vt}const Bt=Wt();function Gt(e,t){return new e({type:"string",format:"guid",check:"string_format",abort:!1,...w(t)})}function Ht(e,t){return new e({type:"string",format:"url",check:"string_format",abort:!1,...w(t)})}function Kt(e,t){return new fe({check:"less_than",...w(t),value:e,inclusive:!1})}function qt(e,t){return new fe({check:"less_than",...w(t),value:e,inclusive:!0})}function Yt(e,t){return new he({check:"greater_than",...w(t),value:e,inclusive:!1})}function Jt(e,t){return new he({check:"greater_than",...w(t),value:e,inclusive:!0})}function Xt(e,t){return new me({check:"multiple_of",...w(t),value:e})}function Qt(e,t){return new ve({check:"max_length",...w(t),maximum:e})}function en(e,t){return new ge({check:"min_length",...w(t),minimum:e})}function tn(e,t){return new ye({check:"length_equals",...w(t),length:e})}function nn(e){return new Te({check:"overwrite",tx:e})}const on=n("ZodISODateTime",((e,t)=>{We.init(e,t),zn.init(e,t)}));function sn(e){return function(e,t){return new e({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...w(t)})}(on,e)}const rn=n("ZodISODate",((e,t)=>{Be.init(e,t),zn.init(e,t)}));function an(e){return function(e,t){return new e({type:"string",format:"date",check:"string_format",...w(t)})}(rn,e)}const un=n("ZodISOTime",((e,t)=>{Ge.init(e,t),zn.init(e,t)}));function cn(e){return function(e,t){return new e({type:"string",format:"time",check:"string_format",precision:null,...w(t)})}(un,e)}const dn=n("ZodISODuration",((e,t)=>{He.init(e,t),zn.init(e,t)}));function ln(e){return function(e,t){return new e({type:"string",format:"duration",check:"string_format",...w(t)})}(dn,e)}const pn=n("ZodError",((e,t)=>{A.init(e,t),e.name="ZodError",Object.defineProperties(e,{format:{value:t=>function(e,t){const n=t||function(e){return e.message},o={_errors:[]},i=e=>{for(const t of e.issues)if("invalid_union"===t.code&&t.errors.length)t.errors.map((e=>i({issues:e})));else if("invalid_key"===t.code)i({issues:t.issues});else if("invalid_element"===t.code)i({issues:t.issues});else if(0===t.path.length)o._errors.push(n(t));else{let e=o,i=0;for(;i<t.path.length;){const o=t.path[i];i===t.path.length-1?(e[o]=e[o]||{_errors:[]},e[o]._errors.push(n(t))):e[o]=e[o]||{_errors:[]},e=e[o],i++}}};return i(e),o}(e,t)},flatten:{value:t=>function(e,t=e=>e.message){const n={},o=[];for(const i of e.issues)i.path.length>0?(n[i.path[0]]=n[i.path[0]]||[],n[i.path[0]].push(t(i))):o.push(t(i));return{formErrors:o,fieldErrors:n}}(e,t)},addIssue:{value:t=>e.issues.push(t)},addIssues:{value:t=>e.issues.push(...t)},isEmpty:{get:()=>0===e.issues.length}})}),{Parent:Error}),fn=P(pn),hn=O(pn),mn=N(pn),_n=D(pn),vn=n("ZodType",((e,t)=>(Ze.init(e,t),e.def=t,Object.defineProperty(e,"_def",{value:t}),e.check=(...n)=>e.clone({...t,checks:[...t.checks??[],...n.map((e=>"function"==typeof e?{_zod:{check:e,def:{check:"custom"},onattach:[]}}:e))]}),e.clone=(t,n)=>y(e,t,n),e.brand=()=>e,e.register=(t,n)=>(t.add(e,n),e),e.parse=(t,n)=>fn(e,t,n,{callee:e.parse}),e.safeParse=(t,n)=>mn(e,t,n),e.parseAsync=async(t,n)=>hn(e,t,n,{callee:e.parseAsync}),e.safeParseAsync=async(t,n)=>_n(e,t,n),e.spa=e.safeParseAsync,e.refine=(t,n)=>e.check(function(e,t={}){return function(e,t,n){return new e({type:"custom",check:"custom",fn:t,...w(n)})}(Do,e,t)}(t,n)),e.superRefine=t=>e.check(function(e,t){const n=function(e,t){const n=new le({check:"custom",...w(t)});return n._zod.check=e,n}((t=>(t.addIssue=e=>{if("string"==typeof e)t.issues.push(T(e,t.value,n._zod.def));else{const o=e;o.fatal&&(o.continue=!1),o.code??(o.code="custom"),o.input??(o.input=t.value),o.inst??(o.inst=n),o.continue??(o.continue=!n._zod.def.abort),t.issues.push(T(o))}},e(t.value,t))),t);return n}(t)),e.overwrite=t=>e.check(nn(t)),e.optional=()=>Eo(e),e.nullable=()=>$o(e),e.nullish=()=>Eo($o(e)),e.nonoptional=t=>function(e,t){return new Ao({type:"nonoptional",innerType:e,...w(t)})}(e,t),e.array=()=>io(e),e.or=t=>uo([e,t]),e.and=t=>new po({type:"intersection",left:e,right:t}),e.transform=t=>Oo(e,ko(t)),e.default=t=>{return n=t,new To({type:"default",innerType:e,get defaultValue(){return"function"==typeof n?n():n}});var n},e.prefault=t=>{return n=t,new xo({type:"prefault",innerType:e,get defaultValue(){return"function"==typeof n?n():n}});var n},e.catch=t=>{return new Zo({type:"catch",innerType:e,catchValue:"function"==typeof(n=t)?n:()=>n});var n},e.pipe=t=>Oo(e,t),e.readonly=()=>new No({type:"readonly",innerType:e}),e.describe=t=>{const n=e.clone();return Bt.add(n,{description:t}),n},Object.defineProperty(e,"description",{get:()=>Bt.get(e)?.description,configurable:!0}),e.meta=(...t)=>{if(0===t.length)return Bt.get(e);const n=e.clone();return Bt.add(n,t[0]),n},e.isOptional=()=>e.safeParse(void 0).success,e.isNullable=()=>e.safeParse(null).success,e))),gn=n("_ZodString",((e,t)=>{Pe.init(e,t),vn.init(e,t);const n=e._zod.bag;e.format=n.format??null,e.minLength=n.minimum??null,e.maxLength=n.maximum??null,e.regex=(...t)=>e.check(function(e,t){return new ze({check:"string_format",format:"regex",...w(t),pattern:e})}(...t)),e.includes=(...t)=>e.check(function(e,t){return new Ee({check:"string_format",format:"includes",...w(t),includes:e})}(...t)),e.startsWith=(...t)=>e.check(function(e,t){return new Ie({check:"string_format",format:"starts_with",...w(t),prefix:e})}(...t)),e.endsWith=(...t)=>e.check(function(e,t){return new $e({check:"string_format",format:"ends_with",...w(t),suffix:e})}(...t)),e.min=(...t)=>e.check(en(...t)),e.max=(...t)=>e.check(Qt(...t)),e.length=(...t)=>e.check(tn(...t)),e.nonempty=(...t)=>e.check(en(1,...t)),e.lowercase=t=>e.check(function(e){return new ke({check:"string_format",format:"lowercase",...w(e)})}(t)),e.uppercase=t=>e.check(function(e){return new be({check:"string_format",format:"uppercase",...w(e)})}(t)),e.trim=()=>e.check(nn((e=>e.trim()))),e.normalize=(...t)=>e.check(function(e){return nn((t=>t.normalize(e)))}(...t)),e.toLowerCase=()=>e.check(nn((e=>e.toLowerCase()))),e.toUpperCase=()=>e.check(nn((e=>e.toUpperCase())))})),yn=n("ZodString",((e,t)=>{Pe.init(e,t),gn.init(e,t),e.email=t=>e.check(function(e,t){return new e({type:"string",format:"email",check:"string_format",abort:!1,...w(t)})}(kn,t)),e.url=t=>e.check(Ht(In,t)),e.jwt=t=>e.check(function(e,t){return new e({type:"string",format:"jwt",check:"string_format",abort:!1,...w(t)})}(Un,t)),e.emoji=t=>e.check(function(e,t){return new e({type:"string",format:"emoji",check:"string_format",abort:!1,...w(t)})}(Tn,t)),e.guid=t=>e.check(Gt(bn,t)),e.uuid=t=>e.check(function(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,...w(t)})}(En,t)),e.uuidv4=t=>e.check(function(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...w(t)})}(En,t)),e.uuidv6=t=>e.check(function(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...w(t)})}(En,t)),e.uuidv7=t=>e.check(function(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...w(t)})}(En,t)),e.nanoid=t=>e.check(function(e,t){return new e({type:"string",format:"nanoid",check:"string_format",abort:!1,...w(t)})}(xn,t)),e.guid=t=>e.check(Gt(bn,t)),e.cuid=t=>e.check(function(e,t){return new e({type:"string",format:"cuid",check:"string_format",abort:!1,...w(t)})}(An,t)),e.cuid2=t=>e.check(function(e,t){return new e({type:"string",format:"cuid2",check:"string_format",abort:!1,...w(t)})}(Zn,t)),e.ulid=t=>e.check(function(e,t){return new e({type:"string",format:"ulid",check:"string_format",abort:!1,...w(t)})}(Pn,t)),e.base64=t=>e.check(function(e,t){return new e({type:"string",format:"base64",check:"string_format",abort:!1,...w(t)})}(Mn,t)),e.base64url=t=>e.check(function(e,t){return new e({type:"string",format:"base64url",check:"string_format",abort:!1,...w(t)})}(Fn,t)),e.xid=t=>e.check(function(e,t){return new e({type:"string",format:"xid",check:"string_format",abort:!1,...w(t)})}(On,t)),e.ksuid=t=>e.check(function(e,t){return new e({type:"string",format:"ksuid",check:"string_format",abort:!1,...w(t)})}(Nn,t)),e.ipv4=t=>e.check(function(e,t){return new e({type:"string",format:"ipv4",check:"string_format",abort:!1,...w(t)})}(Sn,t)),e.ipv6=t=>e.check(function(e,t){return new e({type:"string",format:"ipv6",check:"string_format",abort:!1,...w(t)})}(Dn,t)),e.cidrv4=t=>e.check(function(e,t){return new e({type:"string",format:"cidrv4",check:"string_format",abort:!1,...w(t)})}(Cn,t)),e.cidrv6=t=>e.check(function(e,t){return new e({type:"string",format:"cidrv6",check:"string_format",abort:!1,...w(t)})}(Rn,t)),e.e164=t=>e.check(function(e,t){return new e({type:"string",format:"e164",check:"string_format",abort:!1,...w(t)})}(jn,t)),e.datetime=t=>e.check(sn(t)),e.date=t=>e.check(an(t)),e.time=t=>e.check(cn(t)),e.duration=t=>e.check(ln(t))}));function wn(e){return function(e,t){return new e({type:"string",...w(t)})}(yn,e)}const zn=n("ZodStringFormat",((e,t)=>{Oe.init(e,t),gn.init(e,t)})),kn=n("ZodEmail",((e,t)=>{De.init(e,t),zn.init(e,t)})),bn=n("ZodGUID",((e,t)=>{Ne.init(e,t),zn.init(e,t)})),En=n("ZodUUID",((e,t)=>{Se.init(e,t),zn.init(e,t)})),In=n("ZodURL",((e,t)=>{Ce.init(e,t),zn.init(e,t)}));function $n(e){return Ht(In,e)}const Tn=n("ZodEmoji",((e,t)=>{Re.init(e,t),zn.init(e,t)})),xn=n("ZodNanoID",((e,t)=>{Me.init(e,t),zn.init(e,t)})),An=n("ZodCUID",((e,t)=>{Fe.init(e,t),zn.init(e,t)})),Zn=n("ZodCUID2",((e,t)=>{je.init(e,t),zn.init(e,t)})),Pn=n("ZodULID",((e,t)=>{Ue.init(e,t),zn.init(e,t)})),On=n("ZodXID",((e,t)=>{Le.init(e,t),zn.init(e,t)})),Nn=n("ZodKSUID",((e,t)=>{Ve.init(e,t),zn.init(e,t)})),Sn=n("ZodIPv4",((e,t)=>{Ke.init(e,t),zn.init(e,t)})),Dn=n("ZodIPv6",((e,t)=>{qe.init(e,t),zn.init(e,t)})),Cn=n("ZodCIDRv4",((e,t)=>{Ye.init(e,t),zn.init(e,t)})),Rn=n("ZodCIDRv6",((e,t)=>{Je.init(e,t),zn.init(e,t)})),Mn=n("ZodBase64",((e,t)=>{Qe.init(e,t),zn.init(e,t)})),Fn=n("ZodBase64URL",((e,t)=>{et.init(e,t),zn.init(e,t)})),jn=n("ZodE164",((e,t)=>{tt.init(e,t),zn.init(e,t)})),Un=n("ZodJWT",((e,t)=>{nt.init(e,t),zn.init(e,t)})),Ln=n("ZodNumber",((e,t)=>{ot.init(e,t),vn.init(e,t),e.gt=(t,n)=>e.check(Yt(t,n)),e.gte=(t,n)=>e.check(Jt(t,n)),e.min=(t,n)=>e.check(Jt(t,n)),e.lt=(t,n)=>e.check(Kt(t,n)),e.lte=(t,n)=>e.check(qt(t,n)),e.max=(t,n)=>e.check(qt(t,n)),e.int=t=>e.check(Bn(t)),e.safe=t=>e.check(Bn(t)),e.positive=t=>e.check(Yt(0,t)),e.nonnegative=t=>e.check(Jt(0,t)),e.negative=t=>e.check(Kt(0,t)),e.nonpositive=t=>e.check(qt(0,t)),e.multipleOf=(t,n)=>e.check(Xt(t,n)),e.step=(t,n)=>e.check(Xt(t,n)),e.finite=()=>e;const n=e._zod.bag;e.minValue=Math.max(n.minimum??Number.NEGATIVE_INFINITY,n.exclusiveMinimum??Number.NEGATIVE_INFINITY)??null,e.maxValue=Math.min(n.maximum??Number.POSITIVE_INFINITY,n.exclusiveMaximum??Number.POSITIVE_INFINITY)??null,e.isInt=(n.format??"").includes("int")||Number.isSafeInteger(n.multipleOf??.5),e.isFinite=!0,e.format=n.format??null}));function Vn(e){return function(e,t){return new e({type:"number",checks:[],...w(t)})}(Ln,e)}const Wn=n("ZodNumberFormat",((e,t)=>{it.init(e,t),Ln.init(e,t)}));function Bn(e){return function(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"safeint",...w(t)})}(Wn,e)}const Gn=n("ZodBoolean",((e,t)=>{st.init(e,t),vn.init(e,t)}));function Hn(e){return function(e,t){return new e({type:"boolean",...w(t)})}(Gn,e)}const Kn=n("ZodBigInt",((e,t)=>{rt.init(e,t),vn.init(e,t),e.gte=(t,n)=>e.check(Jt(t,n)),e.min=(t,n)=>e.check(Jt(t,n)),e.gt=(t,n)=>e.check(Yt(t,n)),e.gte=(t,n)=>e.check(Jt(t,n)),e.min=(t,n)=>e.check(Jt(t,n)),e.lt=(t,n)=>e.check(Kt(t,n)),e.lte=(t,n)=>e.check(qt(t,n)),e.max=(t,n)=>e.check(qt(t,n)),e.positive=t=>e.check(Yt(BigInt(0),t)),e.negative=t=>e.check(Kt(BigInt(0),t)),e.nonpositive=t=>e.check(qt(BigInt(0),t)),e.nonnegative=t=>e.check(Jt(BigInt(0),t)),e.multipleOf=(t,n)=>e.check(Xt(t,n));const n=e._zod.bag;e.minValue=n.minimum??null,e.maxValue=n.maximum??null,e.format=n.format??null}));function qn(e){return function(e,t){return new e({type:"bigint",...w(t)})}(Kn,e)}const Yn=n("ZodNull",((e,t)=>{at.init(e,t),vn.init(e,t)}));const Jn=n("ZodAny",((e,t)=>{ut.init(e,t),vn.init(e,t)}));function Xn(){return new Jn({type:"any"})}const Qn=n("ZodUnknown",((e,t)=>{ct.init(e,t),vn.init(e,t)}));function eo(){return new Qn({type:"unknown"})}const to=n("ZodNever",((e,t)=>{dt.init(e,t),vn.init(e,t)}));function no(e){return function(e,t){return new e({type:"never",...w(t)})}(to,e)}const oo=n("ZodArray",((e,t)=>{pt.init(e,t),vn.init(e,t),e.element=t.element,e.min=(t,n)=>e.check(en(t,n)),e.nonempty=t=>e.check(en(1,t)),e.max=(t,n)=>e.check(Qt(t,n)),e.length=(t,n)=>e.check(tn(t,n)),e.unwrap=()=>e.element}));function io(e,t){return function(e,t,n){return new e({type:"array",element:t,...w(n)})}(oo,e,t)}const so=n("ZodObject",((e,t)=>{mt.init(e,t),vn.init(e,t),d(e,"shape",(()=>Object.fromEntries(Object.entries(e._zod.def.shape)))),e.keyof=()=>go(Object.keys(e._zod.def.shape)),e.catchall=t=>e.clone({...e._zod.def,catchall:t}),e.passthrough=()=>e.clone({...e._zod.def,catchall:eo()}),e.loose=()=>e.clone({...e._zod.def,catchall:eo()}),e.strict=()=>e.clone({...e._zod.def,catchall:no()}),e.strip=()=>e.clone({...e._zod.def,catchall:void 0}),e.extend=t=>function(e,t){const n={...e._zod.def,get shape(){const n={...e._zod.def.shape,...t};return l(this,"shape",n),n},checks:[]};return y(e,n)}(e,t),e.merge=t=>{return o=t,y(n=e,{...n._zod.def,get shape(){const e={...n._zod.def.shape,...o._zod.def.shape};return l(this,"shape",e),e},catchall:o._zod.def.catchall,checks:[]});var n,o},e.pick=t=>function(e,t){const n={},o=e._zod.def;for(const e in t){if(!(e in o.shape))throw new Error(`Unrecognized key: "${e}"`);t[e]&&(n[e]=o.shape[e])}return y(e,{...e._zod.def,shape:n,checks:[]})}(e,t),e.omit=t=>function(e,t){const n={...e._zod.def.shape},o=e._zod.def;for(const e in t){if(!(e in o.shape))throw new Error(`Unrecognized key: "${e}"`);t[e]&&delete n[e]}return y(e,{...e._zod.def,shape:n,checks:[]})}(e,t),e.partial=(...t)=>function(e,t,n){const o=t._zod.def.shape,i={...o};if(n)for(const t in n){if(!(t in o))throw new Error(`Unrecognized key: "${t}"`);n[t]&&(i[t]=e?new e({type:"optional",innerType:o[t]}):o[t])}else for(const t in o)i[t]=e?new e({type:"optional",innerType:o[t]}):o[t];return y(t,{...t._zod.def,shape:i,checks:[]})}(bo,e,t[0]),e.required=(...t)=>function(e,t,n){const o=t._zod.def.shape,i={...o};if(n)for(const t in n){if(!(t in i))throw new Error(`Unrecognized key: "${t}"`);n[t]&&(i[t]=new e({type:"nonoptional",innerType:o[t]}))}else for(const t in o)i[t]=new e({type:"nonoptional",innerType:o[t]});return y(t,{...t._zod.def,shape:i,checks:[]})}(Ao,e,t[0])}));function ro(e,t){const n={type:"object",get shape(){return l(this,"shape",{...e}),this.shape},...w(t)};return new so(n)}const ao=n("ZodUnion",((e,t)=>{vt.init(e,t),vn.init(e,t),e.options=t.options}));function uo(e,t){return new ao({type:"union",options:e,...w(t)})}const co=n("ZodDiscriminatedUnion",((e,t)=>{ao.init(e,t),gt.init(e,t)}));function lo(e,t,n){return new co({type:"union",options:t,discriminator:e,...w(n)})}const po=n("ZodIntersection",((e,t)=>{yt.init(e,t),vn.init(e,t)}));const fo=n("ZodTuple",((e,t)=>{kt.init(e,t),vn.init(e,t),e.rest=t=>e.clone({...e._zod.def,rest:t})}));function ho(e,t,n){const o=t instanceof Ze;return new fo({type:"tuple",items:e,rest:o?t:null,...w(o?n:t)})}const mo=n("ZodRecord",((e,t)=>{Et.init(e,t),vn.init(e,t),e.keyType=t.keyType,e.valueType=t.valueType}));function _o(e,t,n){return new mo({type:"record",keyType:e,valueType:t,...w(n)})}const vo=n("ZodEnum",((e,t)=>{It.init(e,t),vn.init(e,t),e.enum=t.entries,e.options=Object.values(t.entries);const n=new Set(Object.keys(t.entries));e.extract=(e,o)=>{const i={};for(const o of e){if(!n.has(o))throw new Error(`Key ${o} not found in enum`);i[o]=t.entries[o]}return new vo({...t,checks:[],...w(o),entries:i})},e.exclude=(e,o)=>{const i={...t.entries};for(const t of e){if(!n.has(t))throw new Error(`Key ${t} not found in enum`);delete i[t]}return new vo({...t,checks:[],...w(o),entries:i})}}));function go(e,t){const n=Array.isArray(e)?Object.fromEntries(e.map((e=>[e,e]))):e;return new vo({type:"enum",entries:n,...w(t)})}const yo=n("ZodLiteral",((e,t)=>{$t.init(e,t),vn.init(e,t),e.values=new Set(t.values),Object.defineProperty(e,"value",{get(){if(t.values.length>1)throw new Error("This schema contains multiple valid literal values. Use `.values` instead.");return t.values[0]}})}));function wo(e,t){return new yo({type:"literal",values:Array.isArray(e)?e:[e],...w(t)})}const zo=n("ZodTransform",((e,t)=>{Tt.init(e,t),vn.init(e,t),e._zod.parse=(n,o)=>{n.addIssue=o=>{if("string"==typeof o)n.issues.push(T(o,n.value,t));else{const t=o;t.fatal&&(t.continue=!1),t.code??(t.code="custom"),t.input??(t.input=n.value),t.inst??(t.inst=e),t.continue??(t.continue=!0),n.issues.push(T(t))}};const i=t.transform(n.value,n);return i instanceof Promise?i.then((e=>(n.value=e,n))):(n.value=i,n)}}));function ko(e){return new zo({type:"transform",transform:e})}const bo=n("ZodOptional",((e,t)=>{xt.init(e,t),vn.init(e,t),e.unwrap=()=>e._zod.def.innerType}));function Eo(e){return new bo({type:"optional",innerType:e})}const Io=n("ZodNullable",((e,t)=>{At.init(e,t),vn.init(e,t),e.unwrap=()=>e._zod.def.innerType}));function $o(e){return new Io({type:"nullable",innerType:e})}const To=n("ZodDefault",((e,t)=>{Zt.init(e,t),vn.init(e,t),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap}));const xo=n("ZodPrefault",((e,t)=>{Ot.init(e,t),vn.init(e,t),e.unwrap=()=>e._zod.def.innerType}));const Ao=n("ZodNonOptional",((e,t)=>{Nt.init(e,t),vn.init(e,t),e.unwrap=()=>e._zod.def.innerType}));const Zo=n("ZodCatch",((e,t)=>{Dt.init(e,t),vn.init(e,t),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap}));const Po=n("ZodPipe",((e,t)=>{Ct.init(e,t),vn.init(e,t),e.in=t.in,e.out=t.out}));function Oo(e,t){return new Po({type:"pipe",in:e,out:t})}const No=n("ZodReadonly",((e,t)=>{Mt.init(e,t),vn.init(e,t)}));const So=n("ZodLazy",((e,t)=>{jt.init(e,t),vn.init(e,t),e.unwrap=()=>e._zod.def.getter()}));const Do=n("ZodCustom",((e,t)=>{Ut.init(e,t),vn.init(e,t)}));const Co=wn().refine((e=>/^(0|[1-9]\d*)(\.\d+)?$/.test(e)),{message:"Invalid amount"}),Ro=/^(0x|0x[a-fA-F0-9]{40})$/,Mo=wn().refine((e=>Ro.test(e)),{message:"Invalid EVM token address"}),Fo=Mo.refine((e=>"0x"!==e),{message:"Invalid EVM address"}),jo=/^[1-9A-HJ-NP-Za-km-z]{32,44}$/,Uo=/^So[1-2]{41}$/,Lo=wn().refine((e=>jo.test(e)||Uo.test(e)),{message:"Invalid Solana token address"}),Vo=uo([Fo,wn().refine((e=>jo.test(e)),{message:"Invalid Solana address"})]),Wo=wn().refine((e=>/^[a-zA-Z_]{3,}$/.test(e)),{message:"Invalid fiat"}),Bo=ro({issuer:wn(),name:wn(),alias:wn().optional(),symbol:wn(),decimals:Vn()}),Go=wn(),Ho=wn().regex(/^[a-zA-Z]\w{1,7}$/,{message:"Must be a short alpha-numeric symbol"}),Ko=Vn().min(0).max(18),qo=wn().url(),Yo=wn(),Jo=ro({chain:wn(),address:Mo}),Xo=ro({chain:wo("solana"),address:Lo}),Qo=uo([Jo,Xo]),ei=wn().refine((e=>{const[t,n]=e.split(":");return Qo.safeParse({chain:t,address:n}).success}),{message:"Invalid token"}),ti=ro({name:Go,symbol:Ho,decimals:Ko,alias:Ho.optional(),image_url:qo.optional(),coingecko_id:Yo.optional(),wrapper:Ho.optional()}),ni=uo([Jo.extend(ti.shape),Xo.extend(ti.shape)]),oi=uo([ei,Wo]),ii=uo([ni,Bo]),si=lo("type",[ro({type:wo("chain"),chain:wn()}),ro({type:wo("issuer"),issuer:wn()})]),ri=wn().transform((e=>e.toLowerCase()));var ai,ui;ai=e=>"string"==typeof e?e.toUpperCase():e,ui=go(["ONRAMP","OFFRAMP"]),Oo(ko(ai),ui),ro({to:Fo,from:Fo.optional(),nonce:Vn().optional(),gasLimit:qn().optional(),gasPrice:qn().optional(),maxPriorityFeePerGas:qn().optional(),maxFeePerGas:qn().optional(),data:wn().optional(),value:qn().optional(),chainId:Vn()}),ro({transactionHash:wn().optional(),blockHash:wn().optional(),blockNumber:Vn().optional(),from:Fo.optional(),to:Fo.optional(),rawReceipt:Xn()});uo([ro({chain_id:Vn(),network:wn(),native_currency:ro({name:wn(),symbol:wn(),decimals:Vn()}),rpc:wn(),image:wn(),is_testnet:Hn(),explorer:wn()}),ro({chain_id:Vn(),network:wn()})]);const ci=ro({"#":wn()});ro({name:wn(),alpha2:wn().length(2),alpha3:wn().length(3)});const di=wn().refine((e=>t.test(e)),{message:"Invalid workflow ID"}),li=ro({onramps:io(ri).optional(),offramps:io(ri).optional(),sandbox:Hn().optional().default(!1)}),pi=li.extend({inputs:io(oi).optional(),outputs:io(oi)});uo([pi,li.extend({inputs:io(oi),outputs:io(oi).optional()})]);const fi=new So({type:"lazy",getter:()=>uo([_i,vi,gi])});const hi=ro({asset:oi,amount:Co}),mi=ro({token:ei,amount:Co}),_i=hi,vi=hi,gi=io(fi),yi=wn(),wi=lo("kind",[ro({kind:wo("FixedInputSwap"),input:hi,output:oi,quote_fiat:Wo}),ro({kind:wo("FixedOutputSwap"),input:oi,output:hi,quote_fiat:Wo})]),zi=go(["USER","DEST","HALLIDAY","SPW","REV_SHARE","BRIDGE"]),ki=ro({asset:oi,property:go(["APPROVAL","BALANCE"])}),bi=ro({account:zi,resource:ki}),Ei=bi.extend({sau:ci});wn();const Ii=ro({consume:io(Ei),produce:io(Ei)}),$i=go(["user_fund","onramp","poll","bridge","rev_share","transfer_out","convert"]),Ti=ro({type:uo([wo("ONRAMP"),wo("STEP")]),net_effect:Ii,pieces_info:io(ro({piece_type:$i,hop_data:ro({hop_identifier:wn(),input:oi,output:oi}).optional(),ramp_data:ro({ramp_identifier:wn()}).optional()})),expected_metadata:ro({step_index:Vn().optional()})}),xi=uo([wo("COMPLETE"),wo("UNREACHABLE"),wo("FAILED")]),Ai=uo([xi,wo("PENDING")]),Zi=go(["INITIALIZED","PAYMENT_SUBMITTED","COMPLETED","FAILED","NOT_FOUND"]),Pi=go(["PENDING","COMPLETED","FAILED","NOT_FOUND"]),Oi=go(["PENDING","COMPLETE","FAILED"]),Ni=ro({observed_status:Ai,details:Ti.extend({observed_metadata:ro({tx_hash:wn().optional(),purchase_status:Zi.optional(),step_status:Pi.optional()})}).nullable()}),Si=ro({expected_details_list:io(Ti),preconditions:io(Ei)});ro({tx_hash:wn(),step_status:Pi,block_timestamp:Vn(),net_effect:Ii});const Di=function(e,t){return new e({type:"null",...w(t)})}(Yn,Ci);var Ci;const Ri=uo([wo("FIXED"),wo("SOLVE"),wo("SOLVE_TEMPLATED")]),Mi=uo([ro({in_decl:wo(!0),instr_type:Ri}),ro({in_decl:wo(!1)})]),Fi=ro({type:$i,effect:Ii,attributes:Mi}),ji=Fi.extend({type:wo("user_fund"),attributes:ro({in_decl:wo(!1)})}),Ui=Fi.extend({type:wo("onramp"),attributes:ro({in_decl:wo(!1)}),ramp_data:ro({ramp_identifier:wn()})}),Li=Fi.extend({type:wo("poll"),attributes:ro({in_decl:wo(!1)}),hop_data:ro({hop_identifier:wn(),input:oi,output:oi})}),Vi=Fi.extend({type:wo("bridge"),attributes:ro({in_decl:wo(!0),instr_type:wo("SOLVE_TEMPLATED")}),hop_data:ro({hop_identifier:wn(),input:oi,output:oi}),template_metadata:Di,constraint_values:ho([ci])}),Wi=Fi.extend({type:wo("transfer_out"),attributes:ro({in_decl:wo(!0),instr_type:wo("FIXED")}),hop_data:ro({hop_identifier:wn(),input:oi,output:oi}),constraint_values:ho([ci])}),Bi=lo("type",[ji,Ui,Li,Vi,Fi.extend({type:wo("rev_share"),attributes:ro({in_decl:wo(!0),instr_type:wo("FIXED")}),hop_data:ro({hop_identifier:wn(),input:oi,output:oi}),rev_share_config:ro({numerator:qn(),denominator:qn()}),constraint_values:ho([ci])}),Wi,Fi.extend({type:wo("convert"),attributes:ro({in_decl:wo(!0),instr_type:wo("SOLVE")})})]),Gi=ro({consume:io(bi),produce:io(bi)}),Hi=bi.extend({amount:Co}),Ki=Gi.extend({consume:io(Hi),produce:io(Hi)}),qi=Ti.extend({net_effect:Ki}),Yi=Ni.extend({details:qi.extend({observed_metadata:ro({tx_hash:wn().optional(),purchase_status:Zi.optional(),step_status:Pi.optional()})}).nullable()}),Ji=Si.extend({expected_details_list:io(qi),preconditions:io(Hi)}),Xi=ro({observed_details_list:io(Yi),preconditions_remaining:ro({preconditions:io(Hi),current_fulfillment:io(Hi),met:io(Hn()),all_met_timestamp:wn().nullable()}).optional()}),Qi=ro({realm:si,indices:io(Vn())}),es=ro({chain:wn(),indices:io(Vn())}),ts=ro({pieces:io(Bi),workflow_id:di,all_groups:io(Qi),step_groups:io(es),workflow_expected_details_amount:Ji}),ns=_o(oi,wn()),os=ro({request:wi,prices:ns,quotes:io(ts),quote_fiat:Wo,combined_asset_details_list:io(ii),quoted_at:wn(),accept_by:wn()}),is=lo("kind",[ro({kind:uo([wo("amount"),wo("amount-downstream")]),given:wn(),limits:ro({min:wn().optional(),max:wn().optional()}),source:wn(),message:wn()}),ro({kind:wo("geolocation"),message:wn()}),ro({kind:wo("provider"),message:wn()}),ro({kind:wo("other"),message:wn()}),ro({kind:wo("unknown"),message:wn()})]),ss=ro({service_ids:io(wn()),latency_seconds:Vn(),issues:io(is).optional()});ro({content:os,state_token:wn(),failures:io(ss)}),ro({workflowId:di,stateToken:wn(),addresses:ro({owner_address:Vo.optional(),dest_address:Vo})});const rs=_o(wn(),wn());ro({workflow_id:di,workflow_expected_details_amount:Ji,post_creation_account_store:rs,prices:ns,asset_details_list:io(ii),initiate_fund_by:wn()});const as=ro({workflow_id:di,workflow_expected_details_amount:Ji,workflow_observed_details_amount:Xi,owner_address:Vo,post_creation_account_store:rs,prices:ns,asset_details_list:io(ii),initiate_fund_by:wn(),initiate_fund_by_passed:Hn(),observe_by_passed:Hn(),created_at:wn(),status:Oi});ro({ramp_type:go(["ONRAMP","OFFRAMP"]),workflow_id:di,group_index:Vn().int().nonnegative(),redirect_url:wn().optional()}),ro({ramp_url:wn(),is_externally_initialized:Hn(),client_secret:wn().optional()}),ro({idQuery:wn().optional(),paginationKey:wn().optional(),destAddress:Vo.optional(),ownerAddress:Vo.optional(),limit:Vn().int().positive().optional()}),ro({orders:io(as),next_pagination_key:wn().nullable()}),ro({workflowId:di.optional(),customQueries:io(ro({spw_address:Vo,token:uo([ei,Qo])})).optional()}).refine((e=>!(!e.workflowId&&!e.customQueries?.length)),{message:"workflow_id or custom_queries is required"}),ro({balance_results:io(ro({spw_address:Vo,token:ei,value:lo("kind",[ro({kind:wo("amount"),amount:Co}),ro({kind:wo("error")})])}))});const us=wn(),cs=ro({workflowId:wn(),tokenAmounts:io(mi),recipientAddress:Vo,acceptBlame:Hn().optional()});ro({workflow_id:wn(),payload:us}),cs.extend({signature:yi}),ro({workflow_id:wn(),tx_id:wn()});const ds=go(["EMBED","POPUP"]),ls=wn().refine((e=>/^(#[0-9A-Fa-f]{3,8}|rgb\(\d{1,3},\s*\d{1,3},\s*\d{1,3}\)|rgba\(\d{1,3},\s*\d{1,3},\s*\d{1,3}(\s*,\s*(0(\.\d+)?|1(\.0+)?))\))$/.test(e)),{message:"Invalid CSS color value"}),ps=ro({src:$n(),alt:wn(),width:Vn().positive(),height:Vn().positive()}),fs=ro({primaryColor:ls.optional(),backgroundColor:ls.optional(),borderColor:ls.optional(),textColor:ls.optional(),textSecondaryColor:ls.optional(),logo:ps.optional()}),hs=Xn(),ms=ro({address:Vo,signMessage:Xn().refine((e=>"function"==typeof e)).optional(),sendTransaction:Xn().refine((e=>"function"==typeof e)).optional(),signTypedData:Xn().refine((e=>"function"==typeof e)).optional()}),_s=ro({apiKey:wn().nonempty(),destinationAddress:Vo.optional(),...pi.shape,customStyles:fs.optional(),targetElementId:wn().optional(),windowType:ds.default(ds.enum.POPUP).optional(),statusCallback:Xn().refine((e=>"function"==typeof e)).optional(),owner:ms.optional(),funder:ms.omit({address:!0}).optional()}).refine((e=>!("EMBED"===e.windowType&&!e.targetElementId)),{message:"targetElementId is required when windowType is EMBED"});_s.omit({owner:!0,funder:!0});const vs=wn().regex(/^(https:\/\/(?:[\w-]+\.)*halliday\.xyz(?:\/.*)?|http:\/\/localhost(?::\d+)?(?:\/.*)?|https:\/\/localhost(?::\d+)?(?:\/.*)?)$/,"Invalid API baseUrl"),gs=ro({dangerouslyOverrideHallidayDomainName:$n().optional(),dangerouslyOverrideApiBaseUrl:vs.optional()}),ys=ro({apiBaseUrl:vs.optional(),hasOwner:Hn(),hasTxHandler:Hn(),hostOrigin:$n().nullable()}),ws=ro({..._s.omit({owner:!0,funder:!0,statusCallback:!0}).shape,...ys.shape,ownerAddress:Vo.optional()});var zs;exports.MessageType=void 0,(zs=exports.MessageType||(exports.MessageType={})).ACTION_TRANSACTION="ACTION_TRANSACTION",zs.EVENT_ORDER_STATUS="EVENT_ORDER_STATUS",zs.EVENT_WINDOW_CLOSE="EVENT_WINDOW_CLOSE",zs.ACTION_SIGN_MESSAGE="ACTION_SIGN_MESSAGE",zs.ACTION_PROVIDER_WIDGET="ACTION_PROVIDER_WIDGET",zs.ACTION_SIGN_TYPED_DATA="ACTION_SIGN_TYPED_DATA";const ks=e=>{const t=ws.parse(e);return btoa(JSON.stringify(t))},bs=t=>{const{windowOrigin:n=e,...o}=t;return`${n}/payments/quote?data=${ks(o)}`},Es=async({apiKey:e,baseURL:t,workflowId:n})=>{let o;for(let i=1;i<=3;i++)try{const o=await fetch(`${t}/quotes/status?workflow_id=${n}`,{headers:{Authorization:`Bearer ${e}`}});if(!o.ok)throw new Error(`HTTP error! status: ${o.status}`);return await o.json()}catch(e){if(o=e instanceof Error?e:new Error(String(e)),3===i)throw o;const t=1e3*Math.pow(2,i);await new Promise((e=>setTimeout(e,t)))}throw o},Is=(()=>{let t=null,n=null,o=[];const i=()=>{o.forEach((e=>{window.removeEventListener("message",e)})),o=[]};return{openWidget:async(s,...r)=>{const a=r[999]||{},u=_s.parse(s),{dangerouslyOverrideHallidayDomainName:c,dangerouslyOverrideApiBaseUrl:d}=gs.parse(a),{owner:l,statusCallback:p,funder:f}=u,h=c||e,m=l?.signMessage,_=l?.signTypedData,v=f?.sendTransaction||l?.sendTransaction,g=l?.address,y=Vo.safeParse(g).success&&"function"==typeof _,w="function"==typeof v;let z=null;try{z=window.origin}catch(e){}i();const k=[e=>{if(e.origin!==h||e.source!==t)return;const{type:n}=e.data||{};n===exports.MessageType.EVENT_WINDOW_CLOSE&&i()}];if(y){const e=async e=>{if(e.origin!==h||e.source!==t)return;const{type:n,payload:o}=e.data||{};if(n===exports.MessageType.ACTION_SIGN_MESSAGE){const{messageId:e,message:i,ownerAddress:s}=o;try{let o;if("function"!=typeof m)throw new Error("No signMessage function provided");o=await m({message:i,ownerAddress:s}),t?.postMessage({type:n,payload:{messageId:e,signature:o}},h)}catch(o){console.error("Error signing message",o),t?.postMessage({type:n,payload:{messageId:e,error:o instanceof Error?o.message:o}},h)}}else if(n===exports.MessageType.ACTION_SIGN_TYPED_DATA){const{messageId:e,typedData:i,ownerAddress:s}=o;try{let o;if("function"!=typeof _)throw new Error("No signTypedData function provided");o=await _({typedData:i,ownerAddress:s}),t?.postMessage({type:n,payload:{messageId:e,signature:o}},h)}catch(o){console.error("Error signing typed data",o),t?.postMessage({type:n,payload:{messageId:e,error:o instanceof Error?o.message:o}},h)}}};k.push(e)}if(w){const e=async e=>{if(e.origin!==h||e.source!==t)return;const{type:n,payload:o}=e.data||{};if(n===exports.MessageType.ACTION_TRANSACTION){const{messageId:e,chainConfig:i,transaction:s}=o;try{let o;if("function"!=typeof v)throw new Error("No sendTransaction function provided");o=await v(s,i),t?.postMessage({type:n,payload:{messageId:e,txReceipt:o}},h)}catch(o){console.error("Error handling transaction",o),t?.postMessage({type:n,payload:{messageId:e,error:o instanceof Error?o.message:o}},h)}}};k.push(e)}if(p){const e=e=>{if(e.origin!==h||e.source!==t)return;const{type:n,payload:o}=e.data||{};n===exports.MessageType.EVENT_ORDER_STATUS&&p({type:n,payload:o})};k.push(e)}var b;k.push((async e=>{if(e.origin!==h||e.source!==t)return;const{type:o,payload:i}=e.data||{};if(o===exports.MessageType.ACTION_PROVIDER_WIDGET&&t){const{url:e,redirectUrl:o,providerWidgetMode:s,workflowId:r}=i||{};if(!(e&&o&&s&&r))throw new Error("Invalid provider widget payload");let a=null;if("REDIRECT"===s)t.location=e,a=t;else{if("POPUP"!==s)throw new Error("Invalid provider widget mode");n=(e=>{const t=window.innerWidth/2-240;return window.open(e,"Provider Widget",`popup left=${t} top=70 width=480 height=638`)})(e),a=n}if(await(async({apiKey:e,baseURL:t,window:n,workflowId:o})=>{for(;!n.closed;){let n;try{n=await Es({apiKey:e,baseURL:t,workflowId:o})}catch(e){console.error("Error fetching payment status",e);break}const i=n.workflow_observed_details_amount.observed_details_list.find((e=>"ONRAMP"===e.details?.type)),s=i?.details?.observed_metadata?.purchase_status;if("COMPLETED"===s)break;await new Promise((e=>setTimeout(e,5e3)))}})({apiKey:u.apiKey,baseURL:d||"https://v2.prod.halliday.xyz",workflowId:r,window:a}),a?.closed)return;"REDIRECT"===s?t.location=o:"POPUP"===s&&(n?.close(),n=null)}})),t=(e=>{const t=window.innerWidth/2-240,{windowType:n="POPUP",targetElementId:o,windowOrigin:i}=e,s=bs(e);let r;if("EMBED"===n){const e=document.getElementById(o);if(!e)throw new Error(`Element with id ${o} not found`);const t=document.createElement("iframe");t.src=s,t.style.width="480px",t.style.height="638px",e.innerHTML="",e.appendChild(t);const n=t=>{if(t.origin!==i||t.source!==r)return;const{type:o}=t.data||{};o===exports.MessageType.EVENT_WINDOW_CLOSE&&(window.removeEventListener("message",n),e.innerHTML="")};window.addEventListener("message",n),r=t.contentWindow}else r=window.open(s,"Halliday Payments",`popup left=${t} top=70 width=480 height=638`);return r})({...s,hasOwner:y,hasTxHandler:w,windowOrigin:h,apiBaseUrl:d,hostOrigin:z,ownerAddress:g}),(b=k).forEach((e=>{window.addEventListener("message",e)})),o=b}}})();exports.CustomStyles=fs,exports.OrderStatus=hs,exports.PaymentsWidgetQueryParams=ws,exports.PaymentsWidgetSDKParams=_s,exports.deserializeQueryParams=e=>ws.parse(JSON.parse(atob(e))),exports.getPaymentsWidgetUrl=bs,exports.openHallidayPayments=async function(e,...t){return Is.openWidget(e,...t)},exports.serializeQueryParams=ks;
1
+ "use strict";const e="https://app.halliday.xyz",t=/^[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}$/;function n(e,t,n){function o(n,o){var i;Object.defineProperty(n,"_zod",{value:n._zod??{},enumerable:!1}),(i=n._zod).traits??(i.traits=new Set),n._zod.traits.add(e),t(n,o);for(const e in s.prototype)Object.defineProperty(n,e,{value:s.prototype[e].bind(n)});n._zod.constr=s,n._zod.def=o}const i=n?.Parent??Object;class r extends i{}function s(e){var t;const i=n?.Parent?new r:this;o(i,e),(t=i._zod).deferred??(t.deferred=[]);for(const e of i._zod.deferred)e();return i}return Object.defineProperty(r,"name",{value:e}),Object.defineProperty(s,"init",{value:o}),Object.defineProperty(s,Symbol.hasInstance,{value:t=>!!(n?.Parent&&t instanceof n.Parent)||t?._zod?.traits?.has(e)}),Object.defineProperty(s,"name",{value:e}),s}class o extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}}const i={};function r(e){return i}function s(e,t){return"bigint"==typeof t?t.toString():t}function a(e){return{get value(){{const t=e();return Object.defineProperty(this,"value",{value:t}),t}}}}function u(e){return null==e}function c(e){const t=e.startsWith("^")?1:0,n=e.endsWith("$")?e.length-1:e.length;return e.slice(t,n)}function d(e,t,n){Object.defineProperty(e,t,{get(){{const o=n();return e[t]=o,o}},set(n){Object.defineProperty(e,t,{value:n})},configurable:!0})}function p(e,t,n){Object.defineProperty(e,t,{value:n,writable:!0,enumerable:!0,configurable:!0})}function l(e=10){const t="abcdefghijklmnopqrstuvwxyz";let n="";for(let o=0;o<e;o++)n+=t[Math.floor(26*Math.random())];return n}function f(e){return JSON.stringify(e)}function h(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}const m=a((()=>{try{return new Function(""),!0}catch(e){return!1}}));function _(e){return"object"==typeof e&&null!==e&&(Object.getPrototypeOf(e)===Object.prototype||null===Object.getPrototypeOf(e))}const g=new Set(["string","number","symbol"]);function v(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function y(e,t,n){const o=new e._zod.constr(t??e._zod.def);return t&&!n?.parent||(o._zod.parent=e),o}function w(e){const t=e;if(!t)return{};if("string"==typeof t)return{error:()=>t};if(void 0!==t?.message){if(void 0!==t?.error)throw new Error("Cannot specify both `message` and `error` params");t.error=t.message}return delete t.message,"string"==typeof t.error?{...t,error:()=>t.error}:t}const z={safeint:[Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]};function b(e,t=0){for(let n=t;n<e.issues.length;n++)if(!0!==e.issues[n].continue)return!0;return!1}function k(e,t){return t.map((t=>{var n;return(n=t).path??(n.path=[]),t.path.unshift(e),t}))}function E(e){return"string"==typeof e?e:e?.message}function I(e,t,n){const o={...e,path:e.path??[]};if(!e.message){const i=E(e.inst?._zod.def?.error?.(e))??E(t?.error?.(e))??E(n.customError?.(e))??E(n.localeError?.(e))??"Invalid input";o.message=i}return delete o.inst,delete o.continue,t?.reportInput||delete o.input,o}function $(e){return Array.isArray(e)?"array":"string"==typeof e?"string":"unknown"}function A(...e){const[t,n,o]=e;return"string"==typeof t?{message:t,code:"custom",input:n,inst:o}:{...t}}const T=(e,t)=>{e.name="$ZodError",Object.defineProperty(e,"_zod",{value:e._zod,enumerable:!1}),Object.defineProperty(e,"issues",{value:t,enumerable:!1}),Object.defineProperty(e,"message",{get:()=>JSON.stringify(t,s,2),enumerable:!0})},x=n("$ZodError",T),P=n("$ZodError",T,{Parent:Error});const O=e=>(t,n,i,s)=>{const a=i?Object.assign(i,{async:!1}):{async:!1},u=t._zod.run({value:n,issues:[]},a);if(u instanceof Promise)throw new o;if(u.issues.length){const t=new(s?.Err??e)(u.issues.map((e=>I(e,a,r()))));throw Error.captureStackTrace(t,s?.callee),t}return u.value},N=e=>async(t,n,o,i)=>{const s=o?Object.assign(o,{async:!0}):{async:!0};let a=t._zod.run({value:n,issues:[]},s);if(a instanceof Promise&&(a=await a),a.issues.length){const t=new(i?.Err??e)(a.issues.map((e=>I(e,s,r()))));throw Error.captureStackTrace(t,i?.callee),t}return a.value},Z=e=>(t,n,i)=>{const s=i?{...i,async:!1}:{async:!1},a=t._zod.run({value:n,issues:[]},s);if(a instanceof Promise)throw new o;return a.issues.length?{success:!1,error:new(e??x)(a.issues.map((e=>I(e,s,r()))))}:{success:!0,data:a.value}},S=Z(P),D=e=>async(t,n,o)=>{const i=o?Object.assign(o,{async:!0}):{async:!0};let s=t._zod.run({value:n,issues:[]},i);return s instanceof Promise&&(s=await s),s.issues.length?{success:!1,error:new e(s.issues.map((e=>I(e,i,r()))))}:{success:!0,data:s.value}},R=D(P),C=/^[cC][^\s-]{8,}$/,M=/^[0-9a-z]+$/,U=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,F=/^[0-9a-vA-V]{20}$/,j=/^[A-Za-z0-9]{27}$/,L=/^[a-zA-Z0-9_-]{21}$/,V=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,W=/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/,B=e=>e?new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${e}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`):/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$/,G=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/;const H=/^(?:(?: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])$/,q=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})$/,Y=/^((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])\/([0-9]|[1-2][0-9]|3[0-2])$/,K=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,J=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,X=/^[A-Za-z0-9_-]*$/,Q=/^([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+$/,ee=/^\+(?:[0-9]){6,14}[0-9]$/,te="((\\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])))",ne=new RegExp(`^${te}$`);function oe(e){let t="([01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d";return e.precision?t=`${t}\\.\\d{${e.precision}}`:null==e.precision&&(t=`${t}(\\.\\d+)?`),t}const ie=/^\d+n?$/,re=/^\d+$/,se=/^-?\d+(?:\.\d+)?/i,ae=/true|false/i,ue=/^[^A-Z]*$/,ce=/^[^a-z]*$/,de=n("$ZodCheck",((e,t)=>{var n;e._zod??(e._zod={}),e._zod.def=t,(n=e._zod).onattach??(n.onattach=[])})),pe={number:"number",bigint:"bigint",object:"date"},le=n("$ZodCheckLessThan",((e,t)=>{de.init(e,t);const n=pe[typeof t.value];e._zod.onattach.push((e=>{const n=e._zod.bag,o=(t.inclusive?n.maximum:n.exclusiveMaximum)??Number.POSITIVE_INFINITY;t.value<o&&(t.inclusive?n.maximum=t.value:n.exclusiveMaximum=t.value)})),e._zod.check=o=>{(t.inclusive?o.value<=t.value:o.value<t.value)||o.issues.push({origin:n,code:"too_big",maximum:t.value,input:o.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}})),fe=n("$ZodCheckGreaterThan",((e,t)=>{de.init(e,t);const n=pe[typeof t.value];e._zod.onattach.push((e=>{const n=e._zod.bag,o=(t.inclusive?n.minimum:n.exclusiveMinimum)??Number.NEGATIVE_INFINITY;t.value>o&&(t.inclusive?n.minimum=t.value:n.exclusiveMinimum=t.value)})),e._zod.check=o=>{(t.inclusive?o.value>=t.value:o.value>t.value)||o.issues.push({origin:n,code:"too_small",minimum:t.value,input:o.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}})),he=n("$ZodCheckMultipleOf",((e,t)=>{de.init(e,t),e._zod.onattach.push((e=>{var n;(n=e._zod.bag).multipleOf??(n.multipleOf=t.value)})),e._zod.check=n=>{if(typeof n.value!=typeof t.value)throw new Error("Cannot mix number and bigint in multiple_of check.");("bigint"==typeof n.value?n.value%t.value===BigInt(0):0===function(e,t){const n=(e.toString().split(".")[1]||"").length,o=(t.toString().split(".")[1]||"").length,i=n>o?n:o;return Number.parseInt(e.toFixed(i).replace(".",""))%Number.parseInt(t.toFixed(i).replace(".",""))/10**i}(n.value,t.value))||n.issues.push({origin:typeof n.value,code:"not_multiple_of",divisor:t.value,input:n.value,inst:e,continue:!t.abort})}})),me=n("$ZodCheckNumberFormat",((e,t)=>{de.init(e,t),t.format=t.format||"float64";const n=t.format?.includes("int"),o=n?"int":"number",[i,r]=z[t.format];e._zod.onattach.push((e=>{const o=e._zod.bag;o.format=t.format,o.minimum=i,o.maximum=r,n&&(o.pattern=re)})),e._zod.check=s=>{const a=s.value;if(n){if(!Number.isInteger(a))return void s.issues.push({expected:o,format:t.format,code:"invalid_type",input:a,inst:e});if(!Number.isSafeInteger(a))return void(a>0?s.issues.push({input:a,code:"too_big",maximum:Number.MAX_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:o,continue:!t.abort}):s.issues.push({input:a,code:"too_small",minimum:Number.MIN_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:o,continue:!t.abort}))}a<i&&s.issues.push({origin:"number",input:a,code:"too_small",minimum:i,inclusive:!0,inst:e,continue:!t.abort}),a>r&&s.issues.push({origin:"number",input:a,code:"too_big",maximum:r,inst:e})}})),_e=n("$ZodCheckMaxLength",((e,t)=>{de.init(e,t),e._zod.when=e=>{const t=e.value;return!u(t)&&void 0!==t.length},e._zod.onattach.push((e=>{const n=e._zod.bag.maximum??Number.POSITIVE_INFINITY;t.maximum<n&&(e._zod.bag.maximum=t.maximum)})),e._zod.check=n=>{const o=n.value;if(o.length<=t.maximum)return;const i=$(o);n.issues.push({origin:i,code:"too_big",maximum:t.maximum,input:o,inst:e,continue:!t.abort})}})),ge=n("$ZodCheckMinLength",((e,t)=>{de.init(e,t),e._zod.when=e=>{const t=e.value;return!u(t)&&void 0!==t.length},e._zod.onattach.push((e=>{const n=e._zod.bag.minimum??Number.NEGATIVE_INFINITY;t.minimum>n&&(e._zod.bag.minimum=t.minimum)})),e._zod.check=n=>{const o=n.value;if(o.length>=t.minimum)return;const i=$(o);n.issues.push({origin:i,code:"too_small",minimum:t.minimum,input:o,inst:e,continue:!t.abort})}})),ve=n("$ZodCheckLengthEquals",((e,t)=>{de.init(e,t),e._zod.when=e=>{const t=e.value;return!u(t)&&void 0!==t.length},e._zod.onattach.push((e=>{const n=e._zod.bag;n.minimum=t.length,n.maximum=t.length,n.length=t.length})),e._zod.check=n=>{const o=n.value,i=o.length;if(i===t.length)return;const r=$(o),s=i>t.length;n.issues.push({origin:r,...s?{code:"too_big",maximum:t.length}:{code:"too_small",minimum:t.length},input:n.value,inst:e,continue:!t.abort})}})),ye=n("$ZodCheckStringFormat",((e,t)=>{var n;de.init(e,t),e._zod.onattach.push((e=>{const n=e._zod.bag;n.format=t.format,t.pattern&&(n.patterns??(n.patterns=new Set),n.patterns.add(t.pattern))})),(n=e._zod).check??(n.check=n=>{if(!t.pattern)throw new Error("Not implemented.");t.pattern.lastIndex=0,t.pattern.test(n.value)||n.issues.push({origin:"string",code:"invalid_format",format:t.format,input:n.value,...t.pattern?{pattern:t.pattern.toString()}:{},inst:e,continue:!t.abort})})})),we=n("$ZodCheckRegex",((e,t)=>{ye.init(e,t),e._zod.check=n=>{t.pattern.lastIndex=0,t.pattern.test(n.value)||n.issues.push({origin:"string",code:"invalid_format",format:"regex",input:n.value,pattern:t.pattern.toString(),inst:e,continue:!t.abort})}})),ze=n("$ZodCheckLowerCase",((e,t)=>{t.pattern??(t.pattern=ue),ye.init(e,t)})),be=n("$ZodCheckUpperCase",((e,t)=>{t.pattern??(t.pattern=ce),ye.init(e,t)})),ke=n("$ZodCheckIncludes",((e,t)=>{de.init(e,t);const n=v(t.includes),o=new RegExp("number"==typeof t.position?`^.{${t.position}}${n}`:n);t.pattern=o,e._zod.onattach.push((e=>{const t=e._zod.bag;t.patterns??(t.patterns=new Set),t.patterns.add(o)})),e._zod.check=n=>{n.value.includes(t.includes,t.position)||n.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:t.includes,input:n.value,inst:e,continue:!t.abort})}})),Ee=n("$ZodCheckStartsWith",((e,t)=>{de.init(e,t);const n=new RegExp(`^${v(t.prefix)}.*`);t.pattern??(t.pattern=n),e._zod.onattach.push((e=>{const t=e._zod.bag;t.patterns??(t.patterns=new Set),t.patterns.add(n)})),e._zod.check=n=>{n.value.startsWith(t.prefix)||n.issues.push({origin:"string",code:"invalid_format",format:"starts_with",prefix:t.prefix,input:n.value,inst:e,continue:!t.abort})}})),Ie=n("$ZodCheckEndsWith",((e,t)=>{de.init(e,t);const n=new RegExp(`.*${v(t.suffix)}$`);t.pattern??(t.pattern=n),e._zod.onattach.push((e=>{const t=e._zod.bag;t.patterns??(t.patterns=new Set),t.patterns.add(n)})),e._zod.check=n=>{n.value.endsWith(t.suffix)||n.issues.push({origin:"string",code:"invalid_format",format:"ends_with",suffix:t.suffix,input:n.value,inst:e,continue:!t.abort})}})),$e=n("$ZodCheckOverwrite",((e,t)=>{de.init(e,t),e._zod.check=e=>{e.value=t.tx(e.value)}}));class Ae{constructor(e=[]){this.content=[],this.indent=0,this&&(this.args=e)}indented(e){this.indent+=1,e(this),this.indent-=1}write(e){if("function"==typeof e)return e(this,{execution:"sync"}),void e(this,{execution:"async"});const t=e.split("\n").filter((e=>e)),n=Math.min(...t.map((e=>e.length-e.trimStart().length))),o=t.map((e=>e.slice(n))).map((e=>" ".repeat(2*this.indent)+e));for(const e of o)this.content.push(e)}compile(){const e=Function,t=this?.args;return new e(...t,[...(this?.content??[""]).map((e=>` ${e}`))].join("\n"))}}const Te={major:4,minor:0,patch:0},xe=n("$ZodType",((e,t)=>{var n;e??(e={}),e._zod.id=t.type+"_"+l(10),e._zod.def=t,e._zod.bag=e._zod.bag||{},e._zod.version=Te;const i=[...e._zod.def.checks??[]];e._zod.traits.has("$ZodCheck")&&i.unshift(e);for(const t of i)for(const n of t._zod.onattach)n(e);if(0===i.length)(n=e._zod).deferred??(n.deferred=[]),e._zod.deferred?.push((()=>{e._zod.run=e._zod.parse}));else{const t=(e,t,n)=>{let i,r=b(e);for(const s of t){if(s._zod.when){if(!s._zod.when(e))continue}else if(r)continue;const t=e.issues.length,a=s._zod.check(e);if(a instanceof Promise&&!1===n?.async)throw new o;if(i||a instanceof Promise)i=(i??Promise.resolve()).then((async()=>{await a;e.issues.length!==t&&(r||(r=b(e,t)))}));else{if(e.issues.length===t)continue;r||(r=b(e,t))}}return i?i.then((()=>e)):e};e._zod.run=(n,r)=>{const s=e._zod.parse(n,r);if(s instanceof Promise){if(!1===r.async)throw new o;return s.then((e=>t(e,i,r)))}return t(s,i,r)}}e["~standard"]={validate:t=>{try{const n=S(e,t);return n.success?{value:n.data}:{issues:n.error?.issues}}catch(n){return R(e,t).then((e=>e.success?{value:e.data}:{issues:e.error?.issues}))}},vendor:"zod",version:1}})),Pe=n("$ZodString",((e,t)=>{var n;xe.init(e,t),e._zod.pattern=[...e?._zod.bag?.patterns??[]].pop()??(n=e._zod.bag,new RegExp(`^${n?`[\\s\\S]{${n?.minimum??0},${n?.maximum??""}}`:"[\\s\\S]*"}$`)),e._zod.parse=(n,o)=>{if(t.coerce)try{n.value=String(n.value)}catch(o){}return"string"==typeof n.value||n.issues.push({expected:"string",code:"invalid_type",input:n.value,inst:e}),n}})),Oe=n("$ZodStringFormat",((e,t)=>{ye.init(e,t),Pe.init(e,t)})),Ne=n("$ZodGUID",((e,t)=>{t.pattern??(t.pattern=W),Oe.init(e,t)})),Ze=n("$ZodUUID",((e,t)=>{if(t.version){const e={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[t.version];if(void 0===e)throw new Error(`Invalid UUID version: "${t.version}"`);t.pattern??(t.pattern=B(e))}else t.pattern??(t.pattern=B());Oe.init(e,t)})),Se=n("$ZodEmail",((e,t)=>{t.pattern??(t.pattern=G),Oe.init(e,t)})),De=n("$ZodURL",((e,t)=>{Oe.init(e,t),e._zod.check=n=>{try{const o=new URL(n.value);return t.hostname&&(t.hostname.lastIndex=0,t.hostname.test(o.hostname)||n.issues.push({code:"invalid_format",format:"url",note:"Invalid hostname",pattern:Q.source,input:n.value,inst:e})),void(t.protocol&&(t.protocol.lastIndex=0,t.protocol.test(o.protocol.endsWith(":")?o.protocol.slice(0,-1):o.protocol)||n.issues.push({code:"invalid_format",format:"url",note:"Invalid protocol",pattern:t.protocol.source,input:n.value,inst:e})))}catch(t){n.issues.push({code:"invalid_format",format:"url",input:n.value,inst:e})}}})),Re=n("$ZodEmoji",((e,t)=>{t.pattern??(t.pattern=new RegExp("^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$","u")),Oe.init(e,t)})),Ce=n("$ZodNanoID",((e,t)=>{t.pattern??(t.pattern=L),Oe.init(e,t)})),Me=n("$ZodCUID",((e,t)=>{t.pattern??(t.pattern=C),Oe.init(e,t)})),Ue=n("$ZodCUID2",((e,t)=>{t.pattern??(t.pattern=M),Oe.init(e,t)})),Fe=n("$ZodULID",((e,t)=>{t.pattern??(t.pattern=U),Oe.init(e,t)})),je=n("$ZodXID",((e,t)=>{t.pattern??(t.pattern=F),Oe.init(e,t)})),Le=n("$ZodKSUID",((e,t)=>{t.pattern??(t.pattern=j),Oe.init(e,t)})),Ve=n("$ZodISODateTime",((e,t)=>{t.pattern??(t.pattern=function(e){let t=`${te}T${oe(e)}`;const n=[];return n.push(e.local?"Z?":"Z"),e.offset&&n.push("([+-]\\d{2}:?\\d{2})"),t=`${t}(${n.join("|")})`,new RegExp(`^${t}$`)}(t)),Oe.init(e,t)})),We=n("$ZodISODate",((e,t)=>{t.pattern??(t.pattern=ne),Oe.init(e,t)})),Be=n("$ZodISOTime",((e,t)=>{t.pattern??(t.pattern=new RegExp(`^${oe(t)}$`)),Oe.init(e,t)})),Ge=n("$ZodISODuration",((e,t)=>{t.pattern??(t.pattern=V),Oe.init(e,t)})),He=n("$ZodIPv4",((e,t)=>{t.pattern??(t.pattern=H),Oe.init(e,t),e._zod.onattach.push((e=>{e._zod.bag.format="ipv4"}))})),qe=n("$ZodIPv6",((e,t)=>{t.pattern??(t.pattern=q),Oe.init(e,t),e._zod.onattach.push((e=>{e._zod.bag.format="ipv6"})),e._zod.check=t=>{try{new URL(`http://[${t.value}]`)}catch{t.issues.push({code:"invalid_format",format:"ipv6",input:t.value,inst:e})}}})),Ye=n("$ZodCIDRv4",((e,t)=>{t.pattern??(t.pattern=Y),Oe.init(e,t)})),Ke=n("$ZodCIDRv6",((e,t)=>{t.pattern??(t.pattern=K),Oe.init(e,t),e._zod.check=t=>{const[n,o]=t.value.split("/");try{if(!o)throw new Error;const e=Number(o);if(`${e}`!==o)throw new Error;if(e<0||e>128)throw new Error;new URL(`http://[${n}]`)}catch{t.issues.push({code:"invalid_format",format:"cidrv6",input:t.value,inst:e})}}}));function Je(e){if(""===e)return!0;if(e.length%4!=0)return!1;try{return atob(e),!0}catch{return!1}}const Xe=n("$ZodBase64",((e,t)=>{t.pattern??(t.pattern=J),Oe.init(e,t),e._zod.onattach.push((e=>{e._zod.bag.contentEncoding="base64"})),e._zod.check=t=>{Je(t.value)||t.issues.push({code:"invalid_format",format:"base64",input:t.value,inst:e})}}));const Qe=n("$ZodBase64URL",((e,t)=>{t.pattern??(t.pattern=X),Oe.init(e,t),e._zod.onattach.push((e=>{e._zod.bag.contentEncoding="base64url"})),e._zod.check=t=>{(function(e){if(!X.test(e))return!1;const t=e.replace(/[-_]/g,(e=>"-"===e?"+":"/"));return Je(t.padEnd(4*Math.ceil(t.length/4),"="))})(t.value)||t.issues.push({code:"invalid_format",format:"base64url",input:t.value,inst:e})}})),et=n("$ZodE164",((e,t)=>{t.pattern??(t.pattern=ee),Oe.init(e,t)}));const tt=n("$ZodJWT",((e,t)=>{Oe.init(e,t),e._zod.check=n=>{(function(e,t=null){try{const n=e.split(".");if(3!==n.length)return!1;const[o]=n,i=JSON.parse(atob(o));return!("typ"in i&&"JWT"!==i?.typ||!i.alg||t&&(!("alg"in i)||i.alg!==t))}catch{return!1}})(n.value,t.alg)||n.issues.push({code:"invalid_format",format:"jwt",input:n.value,inst:e})}})),nt=n("$ZodNumber",((e,t)=>{xe.init(e,t),e._zod.pattern=e._zod.bag.pattern??se,e._zod.parse=(n,o)=>{if(t.coerce)try{n.value=Number(n.value)}catch(e){}const i=n.value;if("number"==typeof i&&!Number.isNaN(i)&&Number.isFinite(i))return n;const r="number"==typeof i?Number.isNaN(i)?"NaN":Number.isFinite(i)?void 0:"Infinity":void 0;return n.issues.push({expected:"number",code:"invalid_type",input:i,inst:e,...r?{received:r}:{}}),n}})),ot=n("$ZodNumber",((e,t)=>{me.init(e,t),nt.init(e,t)})),it=n("$ZodBoolean",((e,t)=>{xe.init(e,t),e._zod.pattern=ae,e._zod.parse=(n,o)=>{if(t.coerce)try{n.value=Boolean(n.value)}catch(e){}const i=n.value;return"boolean"==typeof i||n.issues.push({expected:"boolean",code:"invalid_type",input:i,inst:e}),n}})),rt=n("$ZodBigInt",((e,t)=>{xe.init(e,t),e._zod.pattern=ie,e._zod.parse=(n,o)=>{if(t.coerce)try{n.value=BigInt(n.value)}catch(e){}const{value:i}=n;return"bigint"==typeof i||n.issues.push({expected:"bigint",code:"invalid_type",input:i,inst:e}),n}})),st=n("$ZodAny",((e,t)=>{xe.init(e,t),e._zod.parse=e=>e})),at=n("$ZodUnknown",((e,t)=>{xe.init(e,t),e._zod.parse=e=>e})),ut=n("$ZodNever",((e,t)=>{xe.init(e,t),e._zod.parse=(t,n)=>(t.issues.push({expected:"never",code:"invalid_type",input:t.value,inst:e}),t)}));function ct(e,t,n){e.issues.length&&t.issues.push(...k(n,e.issues)),t.value[n]=e.value}const dt=n("$ZodArray",((e,t)=>{xe.init(e,t),e._zod.parse=(n,o)=>{const i=n.value;if(!Array.isArray(i))return n.issues.push({expected:"array",code:"invalid_type",input:i,inst:e}),n;n.value=Array(i.length);const r=[];for(let e=0;e<i.length;e++){const s=i[e],a=t.element._zod.run({value:s,issues:[]},o);a instanceof Promise?r.push(a.then((t=>ct(t,n,e)))):ct(a,n,e)}return r.length?Promise.all(r).then((()=>n)):n}}));function pt(e,t,n){e.issues.length&&t.issues.push(...k(n,e.issues)),t.value[n]=e.value}function lt(e,t,n,o){e.issues.length?void 0===o[n]?t.value[n]=n in o?void 0:e.value:t.issues.push(...k(n,e.issues)):void 0===e.value?n in o&&(t.value[n]=void 0):t.value[n]=e.value}const ft=n("$ZodObject",((e,t)=>{xe.init(e,t);const n=a((()=>{const e=Object.keys(t.shape);for(const n of e)if(!(t.shape[n]instanceof xe))throw new Error(`Invalid element at key "${n}": expected a Zod schema`);const n=(o=t.shape,Object.keys(o).filter((e=>"optional"===o[e]._zod.optin&&"optional"===o[e]._zod.optout)));var o;return{shape:t.shape,keys:e,keySet:new Set(e),numKeys:e.length,optionalKeys:new Set(n)}}));d(e._zod,"propValues",(()=>{const e=t.shape,n={};for(const t in e){const o=e[t]._zod;if(o.values){n[t]??(n[t]=new Set);for(const e of o.values)n[t].add(e)}}return n}));let o;const r=h,s=!i.jitless,u=s&&m.value,{catchall:c}=t;let p;e._zod.parse=(i,a)=>{p??(p=n.value);const d=i.value;if(!r(d))return i.issues.push({expected:"object",code:"invalid_type",input:d,inst:e}),i;const h=[];if(s&&u&&!1===a?.async&&!0!==a.jitless)o||(o=(e=>{const t=new Ae(["shape","payload","ctx"]),{keys:o,optionalKeys:i}=n.value,r=e=>{const t=f(e);return`shape[${t}]._zod.run({ value: input[${t}], issues: [] }, ctx)`};t.write("const input = payload.value;");const s=Object.create(null);for(const e of o)s[e]=l(15);t.write("const newResult = {}");for(const e of o)if(i.has(e)){const n=s[e];t.write(`const ${n} = ${r(e)};`);const o=f(e);t.write(`\n if (${n}.issues.length) {\n if (input[${o}] === undefined) {\n if (${o} in input) {\n newResult[${o}] = undefined;\n }\n } else {\n payload.issues = payload.issues.concat(\n ${n}.issues.map((iss) => ({\n ...iss,\n path: iss.path ? [${o}, ...iss.path] : [${o}],\n }))\n );\n }\n } else if (${n}.value === undefined) {\n if (${o} in input) newResult[${o}] = undefined;\n } else {\n newResult[${o}] = ${n}.value;\n }\n `)}else{const n=s[e];t.write(`const ${n} = ${r(e)};`),t.write(`\n if (${n}.issues.length) payload.issues = payload.issues.concat(${n}.issues.map(iss => ({\n ...iss,\n path: iss.path ? [${f(e)}, ...iss.path] : [${f(e)}]\n })));`),t.write(`newResult[${f(e)}] = ${n}.value`)}t.write("payload.value = newResult;"),t.write("return payload;");const a=t.compile();return(t,n)=>a(e,t,n)})(t.shape)),i=o(i,a);else{i.value={};const e=p.shape;for(const t of p.keys){const n=e[t],o=n._zod.run({value:d[t],issues:[]},a),r="optional"===n._zod.optin&&"optional"===n._zod.optout;o instanceof Promise?h.push(o.then((e=>r?lt(e,i,t,d):pt(e,i,t)))):r?lt(o,i,t,d):pt(o,i,t)}}if(!c)return h.length?Promise.all(h).then((()=>i)):i;const m=[],_=p.keySet,g=c._zod,v=g.def.type;for(const e of Object.keys(d)){if(_.has(e))continue;if("never"===v){m.push(e);continue}const t=g.run({value:d[e],issues:[]},a);t instanceof Promise?h.push(t.then((t=>pt(t,i,e)))):pt(t,i,e)}return m.length&&i.issues.push({code:"unrecognized_keys",keys:m,input:d,inst:e}),h.length?Promise.all(h).then((()=>i)):i}}));function ht(e,t,n,o){for(const n of e)if(0===n.issues.length)return t.value=n.value,t;return t.issues.push({code:"invalid_union",input:t.value,inst:n,errors:e.map((e=>e.issues.map((e=>I(e,o,r())))))}),t}const mt=n("$ZodUnion",((e,t)=>{xe.init(e,t),d(e._zod,"values",(()=>{if(t.options.every((e=>e._zod.values)))return new Set(t.options.flatMap((e=>Array.from(e._zod.values))))})),d(e._zod,"pattern",(()=>{if(t.options.every((e=>e._zod.pattern))){const e=t.options.map((e=>e._zod.pattern));return new RegExp(`^(${e.map((e=>c(e.source))).join("|")})$`)}})),e._zod.parse=(n,o)=>{let i=!1;const r=[];for(const e of t.options){const t=e._zod.run({value:n.value,issues:[]},o);if(t instanceof Promise)r.push(t),i=!0;else{if(0===t.issues.length)return t;r.push(t)}}return i?Promise.all(r).then((t=>ht(t,n,e,o))):ht(r,n,e,o)}})),_t=n("$ZodDiscriminatedUnion",((e,t)=>{mt.init(e,t);const n=e._zod.parse;d(e._zod,"propValues",(()=>{const e={};for(const n of t.options){const o=n._zod.propValues;if(!o||0===Object.keys(o).length)throw new Error(`Invalid discriminated union option at index "${t.options.indexOf(n)}"`);for(const[t,n]of Object.entries(o)){e[t]||(e[t]=new Set);for(const o of n)e[t].add(o)}}return e}));const o=a((()=>{const e=t.options,n=new Map;for(const o of e){const e=o._zod.propValues[t.discriminator];if(!e||0===e.size)throw new Error(`Invalid discriminated union option at index "${t.options.indexOf(o)}"`);for(const t of e){if(n.has(t))throw new Error(`Duplicate discriminator value "${String(t)}"`);n.set(t,o)}}return n}));e._zod.parse=(i,r)=>{const s=i.value;if(!h(s))return i.issues.push({code:"invalid_type",expected:"object",input:s,inst:e}),i;const a=o.value.get(s?.[t.discriminator]);return a?a._zod.run(i,r):t.unionFallback?n(i,r):(i.issues.push({code:"invalid_union",errors:[],note:"No matching discriminator",input:s,path:[t.discriminator],inst:e}),i)}})),gt=n("$ZodIntersection",((e,t)=>{xe.init(e,t),e._zod.parse=(e,n)=>{const{value:o}=e,i=t.left._zod.run({value:o,issues:[]},n),r=t.right._zod.run({value:o,issues:[]},n);return i instanceof Promise||r instanceof Promise?Promise.all([i,r]).then((([t,n])=>yt(e,t,n))):yt(e,i,r)}}));function vt(e,t){if(e===t)return{valid:!0,data:e};if(e instanceof Date&&t instanceof Date&&+e==+t)return{valid:!0,data:e};if(_(e)&&_(t)){const n=Object.keys(t),o=Object.keys(e).filter((e=>-1!==n.indexOf(e))),i={...e,...t};for(const n of o){const o=vt(e[n],t[n]);if(!o.valid)return{valid:!1,mergeErrorPath:[n,...o.mergeErrorPath]};i[n]=o.data}return{valid:!0,data:i}}if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return{valid:!1,mergeErrorPath:[]};const n=[];for(let o=0;o<e.length;o++){const i=vt(e[o],t[o]);if(!i.valid)return{valid:!1,mergeErrorPath:[o,...i.mergeErrorPath]};n.push(i.data)}return{valid:!0,data:n}}return{valid:!1,mergeErrorPath:[]}}function yt(e,t,n){if(t.issues.length&&e.issues.push(...t.issues),n.issues.length&&e.issues.push(...n.issues),b(e))return e;const o=vt(t.value,n.value);if(!o.valid)throw new Error(`Unmergable intersection. Error path: ${JSON.stringify(o.mergeErrorPath)}`);return e.value=o.data,e}const wt=n("$ZodRecord",((e,t)=>{xe.init(e,t),e._zod.parse=(n,o)=>{const i=n.value;if(!_(i))return n.issues.push({expected:"record",code:"invalid_type",input:i,inst:e}),n;const s=[];if(t.keyType._zod.values){const r=t.keyType._zod.values;n.value={};for(const e of r)if("string"==typeof e||"number"==typeof e||"symbol"==typeof e){const r=t.valueType._zod.run({value:i[e],issues:[]},o);r instanceof Promise?s.push(r.then((t=>{t.issues.length&&n.issues.push(...k(e,t.issues)),n.value[e]=t.value}))):(r.issues.length&&n.issues.push(...k(e,r.issues)),n.value[e]=r.value)}let a;for(const e in i)r.has(e)||(a=a??[],a.push(e));a&&a.length>0&&n.issues.push({code:"unrecognized_keys",input:i,inst:e,keys:a})}else{n.value={};for(const a of Reflect.ownKeys(i)){if("__proto__"===a)continue;const u=t.keyType._zod.run({value:a,issues:[]},o);if(u instanceof Promise)throw new Error("Async schemas not supported in object keys currently");if(u.issues.length){n.issues.push({origin:"record",code:"invalid_key",issues:u.issues.map((e=>I(e,o,r()))),input:a,path:[a],inst:e}),n.value[u.value]=u.value;continue}const c=t.valueType._zod.run({value:i[a],issues:[]},o);c instanceof Promise?s.push(c.then((e=>{e.issues.length&&n.issues.push(...k(a,e.issues)),n.value[u.value]=e.value}))):(c.issues.length&&n.issues.push(...k(a,c.issues)),n.value[u.value]=c.value)}}return s.length?Promise.all(s).then((()=>n)):n}})),zt=n("$ZodEnum",((e,t)=>{xe.init(e,t);const n=function(e){const t=Object.values(e).filter((e=>"number"==typeof e));return Object.entries(e).filter((([e,n])=>-1===t.indexOf(+e))).map((([e,t])=>t))}(t.entries);e._zod.values=new Set(n),e._zod.pattern=new RegExp(`^(${n.filter((e=>g.has(typeof e))).map((e=>"string"==typeof e?v(e):e.toString())).join("|")})$`),e._zod.parse=(t,o)=>{const i=t.value;return e._zod.values.has(i)||t.issues.push({code:"invalid_value",values:n,input:i,inst:e}),t}})),bt=n("$ZodLiteral",((e,t)=>{xe.init(e,t),e._zod.values=new Set(t.values),e._zod.pattern=new RegExp(`^(${t.values.map((e=>"string"==typeof e?v(e):e?e.toString():String(e))).join("|")})$`),e._zod.parse=(n,o)=>{const i=n.value;return e._zod.values.has(i)||n.issues.push({code:"invalid_value",values:t.values,input:i,inst:e}),n}})),kt=n("$ZodTransform",((e,t)=>{xe.init(e,t),e._zod.parse=(e,n)=>{const i=t.transform(e.value,e);if(n.async){return(i instanceof Promise?i:Promise.resolve(i)).then((t=>(e.value=t,e)))}if(i instanceof Promise)throw new o;return e.value=i,e}})),Et=n("$ZodOptional",((e,t)=>{xe.init(e,t),e._zod.optin="optional",e._zod.optout="optional",d(e._zod,"values",(()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,void 0]):void 0)),d(e._zod,"pattern",(()=>{const e=t.innerType._zod.pattern;return e?new RegExp(`^(${c(e.source)})?$`):void 0})),e._zod.parse=(e,n)=>void 0===e.value?e:t.innerType._zod.run(e,n)})),It=n("$ZodNullable",((e,t)=>{xe.init(e,t),d(e._zod,"optin",(()=>t.innerType._zod.optin)),d(e._zod,"optout",(()=>t.innerType._zod.optout)),d(e._zod,"pattern",(()=>{const e=t.innerType._zod.pattern;return e?new RegExp(`^(${c(e.source)}|null)$`):void 0})),d(e._zod,"values",(()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,null]):void 0)),e._zod.parse=(e,n)=>null===e.value?e:t.innerType._zod.run(e,n)})),$t=n("$ZodDefault",((e,t)=>{xe.init(e,t),e._zod.optin="optional",d(e._zod,"values",(()=>t.innerType._zod.values)),e._zod.parse=(e,n)=>{if(void 0===e.value)return e.value=t.defaultValue,e;const o=t.innerType._zod.run(e,n);return o instanceof Promise?o.then((e=>At(e,t))):At(o,t)}}));function At(e,t){return void 0===e.value&&(e.value=t.defaultValue),e}const Tt=n("$ZodPrefault",((e,t)=>{xe.init(e,t),e._zod.optin="optional",d(e._zod,"values",(()=>t.innerType._zod.values)),e._zod.parse=(e,n)=>(void 0===e.value&&(e.value=t.defaultValue),t.innerType._zod.run(e,n))})),xt=n("$ZodNonOptional",((e,t)=>{xe.init(e,t),d(e._zod,"values",(()=>{const e=t.innerType._zod.values;return e?new Set([...e].filter((e=>void 0!==e))):void 0})),e._zod.parse=(n,o)=>{const i=t.innerType._zod.run(n,o);return i instanceof Promise?i.then((t=>Pt(t,e))):Pt(i,e)}}));function Pt(e,t){return e.issues.length||void 0!==e.value||e.issues.push({code:"invalid_type",expected:"nonoptional",input:e.value,inst:t}),e}const Ot=n("$ZodCatch",((e,t)=>{xe.init(e,t),d(e._zod,"optin",(()=>t.innerType._zod.optin)),d(e._zod,"optout",(()=>t.innerType._zod.optout)),d(e._zod,"values",(()=>t.innerType._zod.values)),e._zod.parse=(e,n)=>{const o=t.innerType._zod.run(e,n);return o instanceof Promise?o.then((o=>(e.value=o.value,o.issues.length&&(e.value=t.catchValue({...e,error:{issues:o.issues.map((e=>I(e,n,r())))},input:e.value}),e.issues=[]),e))):(e.value=o.value,o.issues.length&&(e.value=t.catchValue({...e,error:{issues:o.issues.map((e=>I(e,n,r())))},input:e.value}),e.issues=[]),e)}})),Nt=n("$ZodPipe",((e,t)=>{xe.init(e,t),d(e._zod,"values",(()=>t.in._zod.values)),d(e._zod,"optin",(()=>t.in._zod.optin)),d(e._zod,"optout",(()=>t.out._zod.optout)),e._zod.parse=(e,n)=>{const o=t.in._zod.run(e,n);return o instanceof Promise?o.then((e=>Zt(e,t,n))):Zt(o,t,n)}}));function Zt(e,t,n){return b(e)?e:t.out._zod.run({value:e.value,issues:e.issues},n)}const St=n("$ZodReadonly",((e,t)=>{xe.init(e,t),d(e._zod,"propValues",(()=>t.innerType._zod.propValues)),d(e._zod,"optin",(()=>t.innerType._zod.optin)),d(e._zod,"optout",(()=>t.innerType._zod.optout)),e._zod.parse=(e,n)=>{const o=t.innerType._zod.run(e,n);return o instanceof Promise?o.then(Dt):Dt(o)}}));function Dt(e){return e.value=Object.freeze(e.value),e}const Rt=n("$ZodCustom",((e,t)=>{de.init(e,t),xe.init(e,t),e._zod.parse=(e,t)=>e,e._zod.check=n=>{const o=n.value,i=t.fn(o);if(i instanceof Promise)return i.then((t=>Ct(t,n,o,e)));Ct(i,n,o,e)}}));function Ct(e,t,n,o){if(!e){const e={code:"custom",input:n,inst:o,path:[...o._zod.def.path??[]],continue:!o._zod.def.abort};o._zod.def.params&&(e.params=o._zod.def.params),t.issues.push(A(e))}}class Mt{constructor(){this._map=new WeakMap,this._idmap=new Map}add(e,...t){const n=t[0];if(this._map.set(e,n),n&&"object"==typeof n&&"id"in n){if(this._idmap.has(n.id))throw new Error(`ID ${n.id} already exists in the registry`);this._idmap.set(n.id,e)}return this}remove(e){return this._map.delete(e),this}get(e){const t=e._zod.parent;if(t){const n={...this.get(t)??{}};return delete n.id,{...n,...this._map.get(e)}}return this._map.get(e)}has(e){return this._map.has(e)}}function Ut(){return new Mt}const Ft=Ut();function jt(e,t){return new e({type:"string",format:"guid",check:"string_format",abort:!1,...w(t)})}function Lt(e,t){return new e({type:"string",format:"url",check:"string_format",abort:!1,...w(t)})}function Vt(e,t){return new e({type:"string",format:"ipv4",check:"string_format",abort:!1,...w(t)})}function Wt(e,t){return new e({type:"string",format:"ipv6",check:"string_format",abort:!1,...w(t)})}function Bt(e,t){return new le({check:"less_than",...w(t),value:e,inclusive:!1})}function Gt(e,t){return new le({check:"less_than",...w(t),value:e,inclusive:!0})}function Ht(e,t){return new fe({check:"greater_than",...w(t),value:e,inclusive:!1})}function qt(e,t){return new fe({check:"greater_than",...w(t),value:e,inclusive:!0})}function Yt(e,t){return new he({check:"multiple_of",...w(t),value:e})}function Kt(e,t){return new _e({check:"max_length",...w(t),maximum:e})}function Jt(e,t){return new ge({check:"min_length",...w(t),minimum:e})}function Xt(e,t){return new ve({check:"length_equals",...w(t),length:e})}function Qt(e){return new $e({check:"overwrite",tx:e})}const en=n("ZodISODateTime",((e,t)=>{Ve.init(e,t),wn.init(e,t)}));function tn(e){return function(e,t){return new e({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...w(t)})}(en,e)}const nn=n("ZodISODate",((e,t)=>{We.init(e,t),wn.init(e,t)}));function on(e){return function(e,t){return new e({type:"string",format:"date",check:"string_format",...w(t)})}(nn,e)}const rn=n("ZodISOTime",((e,t)=>{Be.init(e,t),wn.init(e,t)}));function sn(e){return function(e,t){return new e({type:"string",format:"time",check:"string_format",precision:null,...w(t)})}(rn,e)}const an=n("ZodISODuration",((e,t)=>{Ge.init(e,t),wn.init(e,t)}));function un(e){return function(e,t){return new e({type:"string",format:"duration",check:"string_format",...w(t)})}(an,e)}const cn=(e,t)=>{x.init(e,t),e.name="ZodError",Object.defineProperties(e,{format:{value:t=>function(e,t){const n=t||function(e){return e.message},o={_errors:[]},i=e=>{for(const t of e.issues)if("invalid_union"===t.code&&t.errors.length)t.errors.map((e=>i({issues:e})));else if("invalid_key"===t.code)i({issues:t.issues});else if("invalid_element"===t.code)i({issues:t.issues});else if(0===t.path.length)o._errors.push(n(t));else{let e=o,i=0;for(;i<t.path.length;){const o=t.path[i];i===t.path.length-1?(e[o]=e[o]||{_errors:[]},e[o]._errors.push(n(t))):e[o]=e[o]||{_errors:[]},e=e[o],i++}}};return i(e),o}(e,t)},flatten:{value:t=>function(e,t=e=>e.message){const n={},o=[];for(const i of e.issues)i.path.length>0?(n[i.path[0]]=n[i.path[0]]||[],n[i.path[0]].push(t(i))):o.push(t(i));return{formErrors:o,fieldErrors:n}}(e,t)},addIssue:{value:t=>e.issues.push(t)},addIssues:{value:t=>e.issues.push(...t)},isEmpty:{get:()=>0===e.issues.length}})},dn=n("ZodError",cn),pn=n("ZodError",cn,{Parent:Error}),ln=O(pn),fn=N(pn),hn=Z(pn),mn=D(pn),_n=n("ZodType",((e,t)=>(xe.init(e,t),e.def=t,Object.defineProperty(e,"_def",{value:t}),e.check=(...n)=>e.clone({...t,checks:[...t.checks??[],...n.map((e=>"function"==typeof e?{_zod:{check:e,def:{check:"custom"},onattach:[]}}:e))]}),e.clone=(t,n)=>y(e,t,n),e.brand=()=>e,e.register=(t,n)=>(t.add(e,n),e),e.parse=(t,n)=>ln(e,t,n,{callee:e.parse}),e.safeParse=(t,n)=>hn(e,t,n),e.parseAsync=async(t,n)=>fn(e,t,n,{callee:e.parseAsync}),e.safeParseAsync=async(t,n)=>mn(e,t,n),e.spa=e.safeParseAsync,e.refine=(t,n)=>e.check(function(e,t={}){return function(e,t,n){return new e({type:"custom",check:"custom",fn:t,...w(n)})}(Po,e,t)}(t,n)),e.superRefine=t=>e.check(function(e,t){const n=function(e,t){const n=new de({check:"custom",...w(t)});return n._zod.check=e,n}((t=>(t.addIssue=e=>{if("string"==typeof e)t.issues.push(A(e,t.value,n._zod.def));else{const o=e;o.fatal&&(o.continue=!1),o.code??(o.code="custom"),o.input??(o.input=t.value),o.inst??(o.inst=n),o.continue??(o.continue=!n._zod.def.abort),t.issues.push(A(o))}},e(t.value,t))),t);return n}(t)),e.overwrite=t=>e.check(Qt(t)),e.optional=()=>wo(e),e.nullable=()=>bo(e),e.nullish=()=>wo(bo(e)),e.nonoptional=t=>function(e,t){return new Io({type:"nonoptional",innerType:e,...w(t)})}(e,t),e.array=()=>no(e),e.or=t=>so([e,t]),e.and=t=>new co({type:"intersection",left:e,right:t}),e.transform=t=>To(e,vo(t)),e.default=t=>{return n=t,new ko({type:"default",innerType:e,get defaultValue(){return"function"==typeof n?n():n}});var n},e.prefault=t=>{return n=t,new Eo({type:"prefault",innerType:e,get defaultValue(){return"function"==typeof n?n():n}});var n},e.catch=t=>{return new $o({type:"catch",innerType:e,catchValue:"function"==typeof(n=t)?n:()=>n});var n},e.pipe=t=>To(e,t),e.readonly=()=>new xo({type:"readonly",innerType:e}),e.describe=t=>{const n=e.clone();return Ft.add(n,{description:t}),n},Object.defineProperty(e,"description",{get:()=>Ft.get(e)?.description,configurable:!0}),e.meta=(...t)=>{if(0===t.length)return Ft.get(e);const n=e.clone();return Ft.add(n,t[0]),n},e.isOptional=()=>e.safeParse(void 0).success,e.isNullable=()=>e.safeParse(null).success,e))),gn=n("_ZodString",((e,t)=>{Pe.init(e,t),_n.init(e,t);const n=e._zod.bag;e.format=n.format??null,e.minLength=n.minimum??null,e.maxLength=n.maximum??null,e.regex=(...t)=>e.check(function(e,t){return new we({check:"string_format",format:"regex",...w(t),pattern:e})}(...t)),e.includes=(...t)=>e.check(function(e,t){return new ke({check:"string_format",format:"includes",...w(t),includes:e})}(...t)),e.startsWith=(...t)=>e.check(function(e,t){return new Ee({check:"string_format",format:"starts_with",...w(t),prefix:e})}(...t)),e.endsWith=(...t)=>e.check(function(e,t){return new Ie({check:"string_format",format:"ends_with",...w(t),suffix:e})}(...t)),e.min=(...t)=>e.check(Jt(...t)),e.max=(...t)=>e.check(Kt(...t)),e.length=(...t)=>e.check(Xt(...t)),e.nonempty=(...t)=>e.check(Jt(1,...t)),e.lowercase=t=>e.check(function(e){return new ze({check:"string_format",format:"lowercase",...w(e)})}(t)),e.uppercase=t=>e.check(function(e){return new be({check:"string_format",format:"uppercase",...w(e)})}(t)),e.trim=()=>e.check(Qt((e=>e.trim()))),e.normalize=(...t)=>e.check(function(e){return Qt((t=>t.normalize(e)))}(...t)),e.toLowerCase=()=>e.check(Qt((e=>e.toLowerCase()))),e.toUpperCase=()=>e.check(Qt((e=>e.toUpperCase())))})),vn=n("ZodString",((e,t)=>{Pe.init(e,t),gn.init(e,t),e.email=t=>e.check(function(e,t){return new e({type:"string",format:"email",check:"string_format",abort:!1,...w(t)})}(zn,t)),e.url=t=>e.check(Lt(En,t)),e.jwt=t=>e.check(function(e,t){return new e({type:"string",format:"jwt",check:"string_format",abort:!1,...w(t)})}(Fn,t)),e.emoji=t=>e.check(function(e,t){return new e({type:"string",format:"emoji",check:"string_format",abort:!1,...w(t)})}($n,t)),e.guid=t=>e.check(jt(bn,t)),e.uuid=t=>e.check(function(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,...w(t)})}(kn,t)),e.uuidv4=t=>e.check(function(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...w(t)})}(kn,t)),e.uuidv6=t=>e.check(function(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...w(t)})}(kn,t)),e.uuidv7=t=>e.check(function(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...w(t)})}(kn,t)),e.nanoid=t=>e.check(function(e,t){return new e({type:"string",format:"nanoid",check:"string_format",abort:!1,...w(t)})}(An,t)),e.guid=t=>e.check(jt(bn,t)),e.cuid=t=>e.check(function(e,t){return new e({type:"string",format:"cuid",check:"string_format",abort:!1,...w(t)})}(Tn,t)),e.cuid2=t=>e.check(function(e,t){return new e({type:"string",format:"cuid2",check:"string_format",abort:!1,...w(t)})}(xn,t)),e.ulid=t=>e.check(function(e,t){return new e({type:"string",format:"ulid",check:"string_format",abort:!1,...w(t)})}(Pn,t)),e.base64=t=>e.check(function(e,t){return new e({type:"string",format:"base64",check:"string_format",abort:!1,...w(t)})}(Cn,t)),e.base64url=t=>e.check(function(e,t){return new e({type:"string",format:"base64url",check:"string_format",abort:!1,...w(t)})}(Mn,t)),e.xid=t=>e.check(function(e,t){return new e({type:"string",format:"xid",check:"string_format",abort:!1,...w(t)})}(On,t)),e.ksuid=t=>e.check(function(e,t){return new e({type:"string",format:"ksuid",check:"string_format",abort:!1,...w(t)})}(Nn,t)),e.ipv4=t=>e.check(Vt(Zn,t)),e.ipv6=t=>e.check(Wt(Sn,t)),e.cidrv4=t=>e.check(function(e,t){return new e({type:"string",format:"cidrv4",check:"string_format",abort:!1,...w(t)})}(Dn,t)),e.cidrv6=t=>e.check(function(e,t){return new e({type:"string",format:"cidrv6",check:"string_format",abort:!1,...w(t)})}(Rn,t)),e.e164=t=>e.check(function(e,t){return new e({type:"string",format:"e164",check:"string_format",abort:!1,...w(t)})}(Un,t)),e.datetime=t=>e.check(tn(t)),e.date=t=>e.check(on(t)),e.time=t=>e.check(sn(t)),e.duration=t=>e.check(un(t))}));function yn(e){return function(e,t){return new e({type:"string",...w(t)})}(vn,e)}const wn=n("ZodStringFormat",((e,t)=>{Oe.init(e,t),gn.init(e,t)})),zn=n("ZodEmail",((e,t)=>{Se.init(e,t),wn.init(e,t)})),bn=n("ZodGUID",((e,t)=>{Ne.init(e,t),wn.init(e,t)})),kn=n("ZodUUID",((e,t)=>{Ze.init(e,t),wn.init(e,t)})),En=n("ZodURL",((e,t)=>{De.init(e,t),wn.init(e,t)}));function In(e){return Lt(En,e)}const $n=n("ZodEmoji",((e,t)=>{Re.init(e,t),wn.init(e,t)})),An=n("ZodNanoID",((e,t)=>{Ce.init(e,t),wn.init(e,t)})),Tn=n("ZodCUID",((e,t)=>{Me.init(e,t),wn.init(e,t)})),xn=n("ZodCUID2",((e,t)=>{Ue.init(e,t),wn.init(e,t)})),Pn=n("ZodULID",((e,t)=>{Fe.init(e,t),wn.init(e,t)})),On=n("ZodXID",((e,t)=>{je.init(e,t),wn.init(e,t)})),Nn=n("ZodKSUID",((e,t)=>{Le.init(e,t),wn.init(e,t)})),Zn=n("ZodIPv4",((e,t)=>{He.init(e,t),wn.init(e,t)}));const Sn=n("ZodIPv6",((e,t)=>{qe.init(e,t),wn.init(e,t)}));const Dn=n("ZodCIDRv4",((e,t)=>{Ye.init(e,t),wn.init(e,t)})),Rn=n("ZodCIDRv6",((e,t)=>{Ke.init(e,t),wn.init(e,t)})),Cn=n("ZodBase64",((e,t)=>{Xe.init(e,t),wn.init(e,t)})),Mn=n("ZodBase64URL",((e,t)=>{Qe.init(e,t),wn.init(e,t)})),Un=n("ZodE164",((e,t)=>{et.init(e,t),wn.init(e,t)})),Fn=n("ZodJWT",((e,t)=>{tt.init(e,t),wn.init(e,t)})),jn=n("ZodNumber",((e,t)=>{nt.init(e,t),_n.init(e,t),e.gt=(t,n)=>e.check(Ht(t,n)),e.gte=(t,n)=>e.check(qt(t,n)),e.min=(t,n)=>e.check(qt(t,n)),e.lt=(t,n)=>e.check(Bt(t,n)),e.lte=(t,n)=>e.check(Gt(t,n)),e.max=(t,n)=>e.check(Gt(t,n)),e.int=t=>e.check(Wn(t)),e.safe=t=>e.check(Wn(t)),e.positive=t=>e.check(Ht(0,t)),e.nonnegative=t=>e.check(qt(0,t)),e.negative=t=>e.check(Bt(0,t)),e.nonpositive=t=>e.check(Gt(0,t)),e.multipleOf=(t,n)=>e.check(Yt(t,n)),e.step=(t,n)=>e.check(Yt(t,n)),e.finite=()=>e;const n=e._zod.bag;e.minValue=Math.max(n.minimum??Number.NEGATIVE_INFINITY,n.exclusiveMinimum??Number.NEGATIVE_INFINITY)??null,e.maxValue=Math.min(n.maximum??Number.POSITIVE_INFINITY,n.exclusiveMaximum??Number.POSITIVE_INFINITY)??null,e.isInt=(n.format??"").includes("int")||Number.isSafeInteger(n.multipleOf??.5),e.isFinite=!0,e.format=n.format??null}));function Ln(e){return function(e,t){return new e({type:"number",checks:[],...w(t)})}(jn,e)}const Vn=n("ZodNumberFormat",((e,t)=>{ot.init(e,t),jn.init(e,t)}));function Wn(e){return function(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"safeint",...w(t)})}(Vn,e)}const Bn=n("ZodBoolean",((e,t)=>{it.init(e,t),_n.init(e,t)}));function Gn(e){return function(e,t){return new e({type:"boolean",...w(t)})}(Bn,e)}const Hn=n("ZodBigInt",((e,t)=>{rt.init(e,t),_n.init(e,t),e.gte=(t,n)=>e.check(qt(t,n)),e.min=(t,n)=>e.check(qt(t,n)),e.gt=(t,n)=>e.check(Ht(t,n)),e.gte=(t,n)=>e.check(qt(t,n)),e.min=(t,n)=>e.check(qt(t,n)),e.lt=(t,n)=>e.check(Bt(t,n)),e.lte=(t,n)=>e.check(Gt(t,n)),e.max=(t,n)=>e.check(Gt(t,n)),e.positive=t=>e.check(Ht(BigInt(0),t)),e.negative=t=>e.check(Bt(BigInt(0),t)),e.nonpositive=t=>e.check(Gt(BigInt(0),t)),e.nonnegative=t=>e.check(qt(BigInt(0),t)),e.multipleOf=(t,n)=>e.check(Yt(t,n));const n=e._zod.bag;e.minValue=n.minimum??null,e.maxValue=n.maximum??null,e.format=n.format??null}));function qn(e){return function(e,t){return new e({type:"bigint",...w(t)})}(Hn,e)}const Yn=n("ZodAny",((e,t)=>{st.init(e,t),_n.init(e,t)}));function Kn(){return new Yn({type:"any"})}const Jn=n("ZodUnknown",((e,t)=>{at.init(e,t),_n.init(e,t)}));function Xn(){return new Jn({type:"unknown"})}const Qn=n("ZodNever",((e,t)=>{ut.init(e,t),_n.init(e,t)}));function eo(e){return function(e,t){return new e({type:"never",...w(t)})}(Qn,e)}const to=n("ZodArray",((e,t)=>{dt.init(e,t),_n.init(e,t),e.element=t.element,e.min=(t,n)=>e.check(Jt(t,n)),e.nonempty=t=>e.check(Jt(1,t)),e.max=(t,n)=>e.check(Kt(t,n)),e.length=(t,n)=>e.check(Xt(t,n)),e.unwrap=()=>e.element}));function no(e,t){return function(e,t,n){return new e({type:"array",element:t,...w(n)})}(to,e,t)}const oo=n("ZodObject",((e,t)=>{ft.init(e,t),_n.init(e,t),d(e,"shape",(()=>Object.fromEntries(Object.entries(e._zod.def.shape)))),e.keyof=()=>ho(Object.keys(e._zod.def.shape)),e.catchall=t=>e.clone({...e._zod.def,catchall:t}),e.passthrough=()=>e.clone({...e._zod.def,catchall:Xn()}),e.loose=()=>e.clone({...e._zod.def,catchall:Xn()}),e.strict=()=>e.clone({...e._zod.def,catchall:eo()}),e.strip=()=>e.clone({...e._zod.def,catchall:void 0}),e.extend=t=>function(e,t){const n={...e._zod.def,get shape(){const n={...e._zod.def.shape,...t};return p(this,"shape",n),n},checks:[]};return y(e,n)}(e,t),e.merge=t=>{return o=t,y(n=e,{...n._zod.def,get shape(){const e={...n._zod.def.shape,...o._zod.def.shape};return p(this,"shape",e),e},catchall:o._zod.def.catchall,checks:[]});var n,o},e.pick=t=>function(e,t){const n={},o=e._zod.def;for(const e in t){if(!(e in o.shape))throw new Error(`Unrecognized key: "${e}"`);t[e]&&(n[e]=o.shape[e])}return y(e,{...e._zod.def,shape:n,checks:[]})}(e,t),e.omit=t=>function(e,t){const n={...e._zod.def.shape},o=e._zod.def;for(const e in t){if(!(e in o.shape))throw new Error(`Unrecognized key: "${e}"`);t[e]&&delete n[e]}return y(e,{...e._zod.def,shape:n,checks:[]})}(e,t),e.partial=(...t)=>function(e,t,n){const o=t._zod.def.shape,i={...o};if(n)for(const t in n){if(!(t in o))throw new Error(`Unrecognized key: "${t}"`);n[t]&&(i[t]=e?new e({type:"optional",innerType:o[t]}):o[t])}else for(const t in o)i[t]=e?new e({type:"optional",innerType:o[t]}):o[t];return y(t,{...t._zod.def,shape:i,checks:[]})}(yo,e,t[0]),e.required=(...t)=>function(e,t,n){const o=t._zod.def.shape,i={...o};if(n)for(const t in n){if(!(t in i))throw new Error(`Unrecognized key: "${t}"`);n[t]&&(i[t]=new e({type:"nonoptional",innerType:o[t]}))}else for(const t in o)i[t]=new e({type:"nonoptional",innerType:o[t]});return y(t,{...t._zod.def,shape:i,checks:[]})}(Io,e,t[0])}));function io(e,t){const n={type:"object",get shape(){return p(this,"shape",{...e}),this.shape},...w(t)};return new oo(n)}const ro=n("ZodUnion",((e,t)=>{mt.init(e,t),_n.init(e,t),e.options=t.options}));function so(e,t){return new ro({type:"union",options:e,...w(t)})}const ao=n("ZodDiscriminatedUnion",((e,t)=>{ro.init(e,t),_t.init(e,t)}));function uo(e,t,n){return new ao({type:"union",options:t,discriminator:e,...w(n)})}const co=n("ZodIntersection",((e,t)=>{gt.init(e,t),_n.init(e,t)}));const po=n("ZodRecord",((e,t)=>{wt.init(e,t),_n.init(e,t),e.keyType=t.keyType,e.valueType=t.valueType}));function lo(e,t,n){return new po({type:"record",keyType:e,valueType:t,...w(n)})}const fo=n("ZodEnum",((e,t)=>{zt.init(e,t),_n.init(e,t),e.enum=t.entries,e.options=Object.values(t.entries);const n=new Set(Object.keys(t.entries));e.extract=(e,o)=>{const i={};for(const o of e){if(!n.has(o))throw new Error(`Key ${o} not found in enum`);i[o]=t.entries[o]}return new fo({...t,checks:[],...w(o),entries:i})},e.exclude=(e,o)=>{const i={...t.entries};for(const t of e){if(!n.has(t))throw new Error(`Key ${t} not found in enum`);delete i[t]}return new fo({...t,checks:[],...w(o),entries:i})}}));function ho(e,t){const n=Array.isArray(e)?Object.fromEntries(e.map((e=>[e,e]))):e;return new fo({type:"enum",entries:n,...w(t)})}const mo=n("ZodLiteral",((e,t)=>{bt.init(e,t),_n.init(e,t),e.values=new Set(t.values),Object.defineProperty(e,"value",{get(){if(t.values.length>1)throw new Error("This schema contains multiple valid literal values. Use `.values` instead.");return t.values[0]}})}));function _o(e,t){return new mo({type:"literal",values:Array.isArray(e)?e:[e],...w(t)})}const go=n("ZodTransform",((e,t)=>{kt.init(e,t),_n.init(e,t),e._zod.parse=(n,o)=>{n.addIssue=o=>{if("string"==typeof o)n.issues.push(A(o,n.value,t));else{const t=o;t.fatal&&(t.continue=!1),t.code??(t.code="custom"),t.input??(t.input=n.value),t.inst??(t.inst=e),t.continue??(t.continue=!0),n.issues.push(A(t))}};const i=t.transform(n.value,n);return i instanceof Promise?i.then((e=>(n.value=e,n))):(n.value=i,n)}}));function vo(e){return new go({type:"transform",transform:e})}const yo=n("ZodOptional",((e,t)=>{Et.init(e,t),_n.init(e,t),e.unwrap=()=>e._zod.def.innerType}));function wo(e){return new yo({type:"optional",innerType:e})}const zo=n("ZodNullable",((e,t)=>{It.init(e,t),_n.init(e,t),e.unwrap=()=>e._zod.def.innerType}));function bo(e){return new zo({type:"nullable",innerType:e})}const ko=n("ZodDefault",((e,t)=>{$t.init(e,t),_n.init(e,t),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap}));const Eo=n("ZodPrefault",((e,t)=>{Tt.init(e,t),_n.init(e,t),e.unwrap=()=>e._zod.def.innerType}));const Io=n("ZodNonOptional",((e,t)=>{xt.init(e,t),_n.init(e,t),e.unwrap=()=>e._zod.def.innerType}));const $o=n("ZodCatch",((e,t)=>{Ot.init(e,t),_n.init(e,t),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap}));const Ao=n("ZodPipe",((e,t)=>{Nt.init(e,t),_n.init(e,t),e.in=t.in,e.out=t.out}));function To(e,t){return new Ao({type:"pipe",in:e,out:t})}const xo=n("ZodReadonly",((e,t)=>{St.init(e,t),_n.init(e,t)}));const Po=n("ZodCustom",((e,t)=>{Rt.init(e,t),_n.init(e,t)}));const Oo=yn().refine((e=>/^(0|[1-9]\d*)(\.\d+)?$/.test(e)),{message:"Invalid amount"}),No=/^(0x|0x[a-fA-F0-9]{40})$/,Zo=yn().refine((e=>No.test(e)),{message:"Invalid EVM token address"}),So=Zo.refine((e=>"0x"!==e),{message:"Invalid EVM address"}),Do=/^[1-9A-HJ-NP-Za-km-z]{32,44}$/,Ro=/^So[1-2]{41}$/,Co=yn().refine((e=>Do.test(e)||Ro.test(e)),{message:"Invalid Solana token address"}),Mo=so([So,yn().refine((e=>Do.test(e)),{message:"Invalid Solana address"})]),Uo=yn().refine((e=>/^[a-zA-Z_]{3,}$/.test(e)),{message:"Invalid fiat"}),Fo=io({issuer:yn(),name:yn(),alias:yn().optional(),symbol:yn(),decimals:Ln()}),jo=yn(),Lo=yn().regex(/^[a-zA-Z]\w{1,7}$/,{message:"Must be a short alpha-numeric symbol"}),Vo=Ln().min(0).max(18),Wo=yn().url(),Bo=yn(),Go=io({chain:yn(),address:Zo}),Ho=io({chain:_o("solana"),address:Co}),qo=io({chain:yn(),address:yn()}),Yo=so([Go,Ho,qo]),Ko=yn().refine((e=>{const[t,n]=e.split(":");return Yo.safeParse({chain:t,address:n}).success}),{message:"Invalid token"}),Jo=io({name:jo,symbol:Lo,decimals:Vo,alias:Lo.optional(),image_url:Wo.optional(),coingecko_id:Bo.optional(),wrapper:Lo.optional(),is_native:Gn().optional()}),Xo=so([Go.extend(Jo.shape),Ho.extend(Jo.shape),qo.extend(Jo.shape)]),Qo=so([Ko,Uo]);so([Xo,Fo]),uo("type",[io({type:_o("chain"),chain:yn()}),io({type:_o("issuer"),issuer:yn()})]);const ei=yn().transform((e=>e.toLowerCase()));var ti,ni;ti=e=>"string"==typeof e?e.toUpperCase():e,ni=ho(["ONRAMP","OFFRAMP"]),To(vo(ti),ni),io({to:So,from:So.optional(),nonce:Ln().optional(),gasLimit:qn().optional(),gasPrice:qn().optional(),maxPriorityFeePerGas:qn().optional(),maxFeePerGas:qn().optional(),data:yn().optional(),value:qn().optional(),chainId:Ln()}),io({transactionHash:yn().optional(),blockHash:yn().optional(),blockNumber:Ln().optional(),from:So.optional(),to:So.optional(),rawReceipt:Kn()});so([io({chain_id:qn(),network:yn(),native_currency:io({name:yn(),symbol:yn(),decimals:Ln()}),rpc:yn(),image:yn(),is_testnet:Gn(),explorer:yn()}),io({chain_id:qn(),network:yn()})]);const oi=ho(["CREDIT_CARD","DEBIT_CARD","ACH","FIAT_BALANCE","TOKEN_BALANCE","APPLE_PAY","PAYPAL","VENMO","REVOLUT","GOOGLE_PAY","SEPA","FASTER_PAYMENTS","PIX","UPI","WIRE"]),ii=yn().refine((e=>t.test(e)),{message:"Invalid payment ID"}),ri=io({onramps:no(ei).optional(),offramps:no(ei).optional(),sandbox:Gn().optional().default(!1)}),si=ri.extend({inputs:no(Qo).optional(),outputs:no(Qo)});so([si,ri.extend({inputs:no(Qo),outputs:no(Qo).optional()})]);const ai=io({asset:Qo,amount:Oo}),ui=io({token:Ko,amount:Oo}),ci=yn(),di=so([Vt(Zn,pi),function(e){return Wt(Sn,e)}()]);var pi;const li=io({price_currency:Uo,onramps:no(ei).optional(),onramp_methods:no(oi).optional(),customer_ip_address:yn().optional(),customer_id:yn().optional(),parent_payment_id:ii.optional()}),fi=uo("kind",[io({kind:_o("FIXED_INPUT"),fixed_input_amount:ai,output_asset:Qo})]),hi=li.extend({request:fi}),mi=ho(["USER","DEST","HALLIDAY","SPW","REV_SHARE","BRIDGE"]),_i=io({asset:Qo,property:ho(["APPROVAL","BALANCE"])}),gi=io({account:mi,resource:_i}),vi=so([_o("COMPLETE"),_o("UNREACHABLE"),_o("FAILED")]),yi=so([vi,_o("PENDING")]),wi=ho(["PENDING","COMPLETE","FAILED","EXPIRED","WITHDRAWN","TAINTED"]),zi=io({consume:no(gi),produce:no(gi)}),bi=gi.extend({amount:Oo}),ki=zi.extend({consume:no(bi),produce:no(bi)}),Ei=lo(Qo,yn()),Ii=uo("kind",[io({kind:so([_o("amount"),_o("amount-downstream")]),given:yn(),limits:io({min:yn().optional(),max:yn().optional()}),source:yn(),message:yn()}),io({kind:_o("geolocation"),message:yn()}),io({kind:_o("provider"),message:yn()}),io({kind:_o("other"),message:yn()}),io({kind:_o("unknown"),message:yn()})]),$i=io({service_ids:no(yn()),latency_seconds:Ln(),issues:no(Ii).optional()}),Ai=io({type:so([_o("USER_FUND"),_o("ONCHAIN_STEP"),_o("ONRAMP")]),net_effect:ki,pieces_info:no(io({type:so([_o("onramp"),_o("poll"),_o("bridge"),_o("rev_share"),_o("transfer_out"),_o("convert")])})),step_index:Ln().optional()}),Ti=io({payment_id:yn(),output_amount:io({asset:Qo,amount:yn()}),onramp:ei.optional(),onramp_method:oi.optional(),fees:io({total_fees:yn(),conversion_fees:yn(),network_fees:yn(),business_fees:yn(),currency_symbol:Uo}),route:no(Ai)}),xi=Ai.extend({status:yi,transaction_hash:yn().optional()}),Pi=Ti.omit({payment_id:!0}).partial({output_amount:!0,onramp:!0,onramp_method:!0,fees:!0}).extend({route:no(xi)});io({quote_request:hi,quotes:no(Ti),current_prices:Ei,price_currency:Uo,state_token:yn(),quoted_at:yn(),accept_by:yn(),failures:no($i)}),io({payment_id:ii,state_token:yn(),owner_address:Mo,destination_address:Mo,client_redirect_url:yn().optional()});const Oi=io({deposit_token:Ko,deposit_chain:yn(),deposit_amount:Oo,deposit_address:Mo}),Ni=io({type:ho(["ONRAMP","TRANSFER_IN"]),payment_id:ii,funding_page_url:In(),deposit_info:no(Oi)}),Zi=io({payment_id:ii,status:wi,funded:Gn(),created_at:yn(),updated_at:yn(),initiate_fund_by:yn(),completed_at:yn().optional(),quote_request:hi,quoted:Ti.omit({payment_id:!0}),fulfilled:Pi,current_prices:Ei,price_currency:Uo,customer_id:yn().optional(),processing_addresses:no(io({address:Mo,chain:yn()})),owner_address:Mo,destination_address:Mo,next_instruction:Ni.optional(),parent_payment_id:ii.optional()});io({payment_id:ii,redirect_url:yn().optional()}),io({funding_page_onramp_url:yn(),client_redirect_url:yn().optional(),client_secret:yn().optional()}),io({id_query:yn().optional(),pagination_key:yn().optional(),dest_address:Mo.optional(),owner_address:Mo.optional(),limit:Ln().int().positive().optional(),category:ho(["ALL","NEW_OR_FUNDED"]).optional()}),io({payment_statuses:no(Zi),next_pagination_key:yn().nullable()}),io({payment_id:ii.optional(),custom_queries:no(io({address:Mo,token:so([Ko,Yo])})).optional()}).refine((e=>!(!e.payment_id&&!e.custom_queries?.length)),{message:"payment_id or custom_queries is required"}),io({balance_results:no(io({address:Mo,token:Ko,value:uo("kind",[io({kind:_o("amount"),amount:Oo}),io({kind:_o("error")})])}))}),io({fiat:Uo,tokens:no(Ko)});const Si=yn(),Di=io({payment_id:ii,token_amounts:no(ui),recipient_address:Mo});io({payment_id:ii,withdraw_authorization:Si}),Di.extend({owner_signature:ci}),io({payment_id:ii,transaction_hash:yn()});const Ri=ho(["EMBED","POPUP","MODAL"]),Ci=yn().refine((e=>/^(#[0-9A-Fa-f]{3,8}|rgb\(\d{1,3},\s*\d{1,3},\s*\d{1,3}\)|rgba\(\d{1,3},\s*\d{1,3},\s*\d{1,3}(\s*,\s*(0(\.\d+)?|1(\.0+)?))\))$/.test(e)),{message:"Invalid CSS color value"}),Mi=io({src:In(),alt:yn(),width:Ln().positive(),height:Ln().positive()}),Ui=io({primaryColor:Ci.optional(),backgroundColor:Ci.optional(),borderColor:Ci.optional(),textColor:Ci.optional(),textSecondaryColor:Ci.optional(),logo:Mi.optional()}),Fi=Kn(),ji=io({address:Mo,signMessage:Kn().refine((e=>"function"==typeof e)).optional(),sendTransaction:Kn().refine((e=>"function"==typeof e)).optional(),signTypedData:Kn().refine((e=>"function"==typeof e)).optional()}),Li=io({redirectUrl:In(),ctaText:yn(),secondaryRedirectUrl:In().optional(),secondaryCtaText:yn().optional()}).refine((e=>!(e.secondaryRedirectUrl&&!e.secondaryCtaText||!e.secondaryRedirectUrl&&e.secondaryCtaText)),{message:"secondaryCtaText and secondaryRedirectUrl must be provided together."}),Vi=io({apiKey:yn().nonempty(),destinationAddress:Mo.optional(),widgetVersion:ho(["1","2"]).default("2").optional(),...si.shape,customStyles:Ui.optional(),targetElementId:yn().optional(),windowType:Ri.default(Ri.enum.POPUP).optional(),redirects:Li.optional(),statusCallback:Kn().refine((e=>"function"==typeof e)).optional(),owner:ji.optional(),funder:ji.optional()}).refine((e=>!("EMBED"===e.windowType&&!e.targetElementId)),{message:"targetElementId is required when windowType is EMBED"}),Wi=Vi.omit({owner:!0,funder:!0,statusCallback:!0}),Bi=yn().regex(/^(https:\/\/(?:[\w-]+\.)*halliday\.xyz(?:\/.*)?|http:\/\/localhost(?::\d+)?(?:\/.*)?|https:\/\/localhost(?::\d+)?(?:\/.*)?)$/,"Invalid API baseUrl"),Gi=lo(yn(),Gn()),Hi=io({dangerouslyOverrideHallidayDomainName:In().optional(),dangerouslyOverrideApiBaseUrl:Bi.optional(),dangerouslyOverrideIPAddress:di.optional(),dangerouslyOverrideFeatureFlags:Gi.optional()}),qi=ho(["FULL","MODAL","OVERLAY"]),Yi=io({appMode:qi.optional(),apiBaseUrl:Bi.optional(),hasOwner:Gn(),hasTxHandler:Gn(),hostOrigin:In().nullable(),ipAddress:di.optional(),featureFlags:Gi.optional()}),Ki=io({...Wi.shape,...Yi.shape,ownerAddress:Mo.optional(),funderAddress:Mo.optional()});var Ji;exports.MessageType=void 0,(Ji=exports.MessageType||(exports.MessageType={})).ACTION_TRANSACTION="ACTION_TRANSACTION",Ji.EVENT_ORDER_STATUS="EVENT_ORDER_STATUS",Ji.EVENT_WINDOW_CLOSE="EVENT_WINDOW_CLOSE",Ji.ACTION_SIGN_MESSAGE="ACTION_SIGN_MESSAGE",Ji.ACTION_PROVIDER_WIDGET="ACTION_PROVIDER_WIDGET",Ji.ACTION_SIGN_TYPED_DATA="ACTION_SIGN_TYPED_DATA";const Xi=e=>{const t=Ki.parse(e);return btoa(JSON.stringify(t))},Qi=t=>{const{windowOrigin:n=e,...o}=t,i=Xi(o),r=o.widgetVersion;if(r)try{return`${n}/v${parseInt(r)}/payments/quote?data=${i}`}catch(e){console.error("Error parsing widget version",e)}return`${n}/payments/quote?data=${i}`},er=async({apiKey:e,baseURL:t,workflowId:n})=>{let o;for(let i=1;i<=3;i++)try{const o=await fetch(`${t}/quotes/status?workflow_id=${n}`,{headers:{Authorization:`Bearer ${e}`}});if(!o.ok)throw new Error(`HTTP error! status: ${o.status}`);return await o.json()}catch(e){if(o=e instanceof Error?e:new Error(String(e)),3===i)throw o;const t=1e3*Math.pow(2,i);await new Promise((e=>setTimeout(e,t)))}throw o},tr=e=>{e instanceof dn?e.issues.forEach((e=>{console.error("Validation Error",{path:e.path.join("."),message:e.message})})):console.error("openHallidayPayments Error",{error:e})},nr=(()=>{let t=null,n=null,o=[];const i=()=>{o.forEach((e=>{window.removeEventListener("message",e)})),o=[]};return{openWidget:async(r,...s)=>{const a=s[999]||{};let u,c;try{u=Vi.parse(r)}catch(e){throw tr(e),e}try{c=Hi.parse(a)}catch(e){throw tr(e),e}const{dangerouslyOverrideHallidayDomainName:d,dangerouslyOverrideApiBaseUrl:p,dangerouslyOverrideIPAddress:l,dangerouslyOverrideFeatureFlags:f}=c,{owner:h,statusCallback:m,funder:_,windowType:g}=u,v=d||e,y=h?.signMessage,w=h?.signTypedData,z=_?.sendTransaction||h?.sendTransaction,b=h?.address,k=_?.address,E=Mo.safeParse(b).success&&"function"==typeof w,I=Mo.safeParse(k).success&&"function"==typeof z;let $=null,A="FULL";try{$=window.origin,"MODAL"===g&&(A=(()=>{if("undefined"==typeof navigator)return!1;const e=navigator;let t=!1;e.userAgentData&&"boolean"==typeof e.userAgentData.mobile&&(t=e.userAgentData.mobile);const n=navigator.userAgent||navigator.vendor||window.opera||"";return t||/android|webos|iphone|ipad|ipod|blackberry|iemobile|opera mini|mobile|tablet/i.test(n)})()?"OVERLAY":"MODAL")}catch(e){}i();const T=[e=>{if(e.origin!==v||e.source!==t)return;const{type:n}=e.data||{};n===exports.MessageType.EVENT_WINDOW_CLOSE&&i()}];if(E){const e=async e=>{if(e.origin!==v||e.source!==t)return;const{type:n,payload:o}=e.data||{};if(n===exports.MessageType.ACTION_SIGN_MESSAGE){const{messageId:e,message:i,ownerAddress:r}=o;try{let o;if("function"!=typeof y)throw new Error("No signMessage function provided");o=await y({message:i,ownerAddress:r}),t?.postMessage({type:n,payload:{messageId:e,signature:o}},v)}catch(o){console.error("Error signing message",o),t?.postMessage({type:n,payload:{messageId:e,error:o instanceof Error?o.message:o}},v)}}else if(n===exports.MessageType.ACTION_SIGN_TYPED_DATA){const{messageId:e,typedData:i,ownerAddress:r}=o;try{let o;if("function"!=typeof w)throw new Error("No signTypedData function provided");o=await w({typedData:i,ownerAddress:r}),t?.postMessage({type:n,payload:{messageId:e,signature:o}},v)}catch(o){console.error("Error signing typed data",o),t?.postMessage({type:n,payload:{messageId:e,error:o instanceof Error?o.message:o}},v)}}};T.push(e)}if(I){const e=async e=>{if(e.origin!==v||e.source!==t)return;const{type:n,payload:o}=e.data||{};if(n===exports.MessageType.ACTION_TRANSACTION){const{messageId:e,chainConfig:i,transaction:r}=o;try{let o;if("function"!=typeof z)throw new Error("No sendTransaction function provided");o=await z(r,i),t?.postMessage({type:n,payload:{messageId:e,txReceipt:o}},v)}catch(o){console.error("Error handling transaction",o),t?.postMessage({type:n,payload:{messageId:e,error:o instanceof Error?o.message:o}},v)}}};T.push(e)}if(m){const e=e=>{if(e.origin!==v||e.source!==t)return;const{type:n,payload:o}=e.data||{};n===exports.MessageType.EVENT_ORDER_STATUS&&m({type:n,payload:o})};T.push(e)}var x;T.push((async e=>{if(e.origin!==v||e.source!==t)return;const{type:o,payload:i}=e.data||{};if(o===exports.MessageType.ACTION_PROVIDER_WIDGET&&t){const{url:e,redirectUrl:o,providerWidgetMode:r,workflowId:s}=i||{};if(!(e&&o&&r&&s))throw new Error("Invalid provider widget payload");let a=null;if("REDIRECT"===r)t.location=e,a=t;else{if("POPUP"!==r)throw new Error("Invalid provider widget mode");n=(e=>{const t=window.innerWidth/2-240;return window.open(e,"Provider Widget",`popup left=${t} top=70 width=480 height=638`)})(e),a=n}if(await(async({apiKey:e,baseURL:t,window:n,workflowId:o})=>{for(;!n.closed;){let n;try{n=await er({apiKey:e,baseURL:t,workflowId:o})}catch(e){console.error("Error fetching payment status",e);break}const i=n.fulfilled.route.find((e=>"ONRAMP"===e.type)),r=i?.status;if("COMPLETE"===r)break;await new Promise((e=>setTimeout(e,5e3)))}})({apiKey:u.apiKey,baseURL:p||"https://v2.prod.halliday.xyz",workflowId:s,window:a}),a?.closed)return;"REDIRECT"===r?t.location=o:"POPUP"===r&&(n?.close(),n=null)}})),t=(e=>{const t=window.innerWidth/2-240,{windowType:n="POPUP",targetElementId:o,windowOrigin:i}=e,r=Qi(e);let s;if("EMBED"===n){const e=document.getElementById(o);if(!e)throw new Error(`Element with id ${o} not found`);const t=document.createElement("iframe");t.id="halliday-payments-embed",t.src=r,t.style.width="480px",t.style.height="638px",t.style.maxWidth="100%",t.style.maxHeight="100%",e.innerHTML="",e.appendChild(t);const n=t=>{if(t.origin!==i||t.source!==s)return;const{type:o}=t.data||{};o===exports.MessageType.EVENT_WINDOW_CLOSE&&(window.removeEventListener("message",n),e.innerHTML="")};window.addEventListener("message",n),s=t.contentWindow}else if("MODAL"===n){let e=document.getElementById("halliday-payments-modal");(e?e.src:null)===r?e.style.display="block":(e&&e.remove(),e=document.createElement("iframe"),e.id="halliday-payments-modal",e.src=r,e.style.position="fixed",e.style.top="0",e.style.left="0",e.style.width="100dvw",e.style.height="100dvh",e.style.border="none",e.style.zIndex="1000",e.setAttribute("scrolling","no"),document.body.appendChild(e));const t=e=>{if(e.origin!==i||e.source!==s)return;const{type:n}=e.data||{};if(n===exports.MessageType.EVENT_WINDOW_CLOSE){window.removeEventListener("message",t);const e=document.getElementById("halliday-payments-modal");e&&(e.style.display="none")}};window.addEventListener("message",t),s=e.contentWindow}else s=window.open(r,"Halliday Payments",`popup left=${t} top=70 width=480 height=638`);return s})({...u,sandbox:u.sandbox||!1,hasOwner:E,hasTxHandler:I,windowOrigin:v,apiBaseUrl:p,hostOrigin:$,ownerAddress:b,funderAddress:k,ipAddress:l,featureFlags:f,appMode:A}),(x=T).forEach((e=>{window.addEventListener("message",e)})),o=x}}})();exports.AppMode=qi,exports.CustomStyles=Ui,exports.OrderStatus=Fi,exports.PaymentsWidgetQueryParams=Ki,exports.PaymentsWidgetSDKParams=Vi,exports.deserializeQueryParams=e=>Ki.parse(JSON.parse(atob(e))),exports.getPaymentsWidgetUrl=Qi,exports.openHallidayPayments=async function(e,...t){try{return nr.openWidget(e,...t)}catch(e){throw tr(e),e}},exports.serializeQueryParams=Xi;
2
2
  //# sourceMappingURL=index.cjs.min.js.map