@seams/wallet 0.19.0 → 0.21.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 (381) hide show
  1. package/dist/.build-inputs.sha256 +1 -1
  2. package/dist/esm/SeamsWeb/SeamsWeb.js +2 -2
  3. package/dist/esm/SeamsWeb/operations/recovery/walletRecoveryCodeBackup.js +25 -5
  4. package/dist/esm/SeamsWeb/operations/tempo/executeEvmFamilyTransaction.js +4 -2
  5. package/dist/esm/SeamsWeb/walletIframe/client/router.js +5 -2
  6. package/dist/esm/core/rpcClients/evm/EvmClient.js +11 -9
  7. package/dist/esm/core/signingEngine/flows/signEvmFamily/thresholdAdmission.js +1 -1
  8. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/RecoveryCodeBackupSurface.js +20 -9
  9. package/dist/esm/plugins/SeamsWeb/walletIframe/sanitization.js +18 -0
  10. package/dist/esm/plugins/plugin-utils.js +5 -2
  11. package/dist/esm/react/components/AccountMenuButton/AuthenticationMethodsModal.js +3 -9
  12. package/dist/esm/react/components/AccountMenuButton/LinkedDevicesModal.js +2 -2
  13. package/dist/esm/react/components/AccountMenuButton/index.js +11 -1
  14. package/dist/esm/sdk/{ConfirmationDrawer-DCw0m-Iv.js → ConfirmationDrawer-B7RCp58z.js} +1 -1
  15. package/dist/esm/sdk/{NonceCoordinator-Dq-FZpBz.js → NonceCoordinator-Do23iTzQ.js} +1 -1
  16. package/dist/esm/sdk/accountLifecycle-CXTlwnAS.js +1 -0
  17. package/dist/esm/sdk/activeWalletSession-BtEHhe99.js +1 -0
  18. package/dist/esm/sdk/adapters-La60hveX.js +2 -0
  19. package/dist/esm/sdk/challengeDelivery-C88JNwKf.js +1 -0
  20. package/dist/esm/sdk/clientSessionPersistenceState-DFGHXoKK.js +1 -0
  21. package/dist/esm/sdk/collectAuthenticationCredentialForChallengeB64u-CSwy9csE.js +1 -0
  22. package/dist/esm/sdk/{commitQueue-BW7BpYyA.js → commitQueue-BQPOhyGl.js} +1 -1
  23. package/dist/esm/sdk/{display-WtILOPQR.js → display-Dtugjeya.js} +1 -1
  24. package/dist/esm/sdk/ecdsaCapabilityManifest-B3u6J5gn.js +1 -0
  25. package/dist/esm/sdk/{ecdsaDerivationClientWasm-DmwKWUEb.js → ecdsaDerivationClientWasm-D1HzwUgV.js} +1 -1
  26. package/dist/esm/sdk/ecdsaDerivationExport-DrFESeRP.js +1 -0
  27. package/dist/esm/sdk/ecdsaWalletRecords-BmhuJF1y.js +1 -0
  28. package/dist/esm/sdk/emailOtpEcdsaDerivationIdentity-DreNrM6n.js +1 -0
  29. package/dist/esm/sdk/{enrichDisplayModelWithAbi-DSj4NAlY.js → enrichDisplayModelWithAbi-D0o0IL7_.js} +1 -1
  30. package/dist/esm/sdk/{evmCryptoWasm-DeobzyP-.js → evmCryptoWasm-S2gL5ht4.js} +1 -1
  31. package/dist/esm/sdk/{export-viewer-host-DsdzagKK.js → export-viewer-host-CVdpEuY6.js} +1 -1
  32. package/dist/esm/sdk/exportKeypairOperation-gVCqLrDl.js +1 -0
  33. package/dist/esm/sdk/host-Bz7mRJPZ.js +1 -0
  34. package/dist/esm/sdk/keyMaterialEnvelope-B3v6HLtz.js +1 -0
  35. package/dist/esm/sdk/{lanes-BzU7cv2T.js → lanes-l274pbT5.js} +1 -1
  36. package/dist/esm/sdk/localOnly-TXaYAZj-.js +1 -0
  37. package/dist/esm/sdk/{mountExportPrivateKeySurface-DQzFzhNu.js → mountExportPrivateKeySurface-DUnKOBQr.js} +1 -1
  38. package/dist/esm/sdk/mountRecoveryCodeBackupSurface-MGTl6FhG.js +2 -0
  39. package/dist/esm/sdk/nearEd25519YaoMaterialActivation-BK8_DxHs.js +1 -0
  40. package/dist/esm/sdk/nearEd25519YaoSigningPreparation-BgCxoh9S.js +1 -0
  41. package/dist/esm/sdk/{nonceLaneKeys-BzMBVxMU.js → nonceLaneKeys-CR2XEvnk.js} +1 -1
  42. package/dist/esm/sdk/{normalization-Ct9-AY13.js → normalization-Ctkj80dW.js} +1 -1
  43. package/dist/esm/sdk/{operationFingerprint-C4VX-0NI.js → operationFingerprint-DRPONhBD.js} +1 -1
  44. package/dist/esm/sdk/pendingWalletRecoveryCodeBackup-DWeemdJv.js +1 -0
  45. package/dist/esm/sdk/presignaturePool-DNiA3sgr.js +1 -0
  46. package/dist/{public/sdk/singletons-CAsc9LvA.js → esm/sdk/presignatures-DGLNs29C.js} +1 -1
  47. package/dist/esm/sdk/recovery-entrypoint-CNVjXz6A.js +1 -0
  48. package/dist/esm/sdk/recoveryAuthorization-BplZWc-N.js +1 -0
  49. package/dist/esm/sdk/{registration-DknFwoqn.js → registration-DVX_lnP7.js} +1 -1
  50. package/dist/esm/sdk/registration-DeCUrUR9.js +1 -0
  51. package/dist/esm/sdk/registrationAccounts-BfO6Ztye.js +1 -0
  52. package/dist/esm/sdk/registrationIntent-DW_kKWlx.js +1 -0
  53. package/dist/esm/sdk/{registrationSignerPlan-BHkqlian.js → registrationSignerPlan-B66FjqIp.js} +1 -1
  54. package/dist/esm/sdk/{requireStepUpAuth-CnSCFSOZ.js → requireStepUpAuth-DsNLml1i.js} +1 -1
  55. package/dist/esm/sdk/routerAbNormalSigning-DSAfCcND.js +1 -0
  56. package/dist/esm/sdk/runtime-auth-BAGyfscG.js +1 -0
  57. package/dist/{public/sdk/runtime-device-link-Dn_5hPCq.js → esm/sdk/runtime-device-link-DKkMLVor.js} +1 -1
  58. package/dist/{public/sdk/runtime-ecdsa-tempo-lTFTb9Rh.js → esm/sdk/runtime-ecdsa-tempo-0TAVH1xg.js} +1 -1
  59. package/dist/esm/sdk/runtime-email-otp-DoHa8Hif.js +1 -0
  60. package/dist/esm/sdk/{runtime-export-Brz53_oi.js → runtime-export-CAt17IFH.js} +1 -1
  61. package/dist/esm/sdk/{runtime-near-Da_xFUXx.js → runtime-near-BQX9Jk9Z.js} +1 -1
  62. package/dist/esm/sdk/runtime-preferences-BuKTIpv6.js +1 -0
  63. package/dist/esm/sdk/runtime-recovery-DyxJKKNw.js +1 -0
  64. package/dist/esm/sdk/runtime-recovery-codes-CWmt0FDB.js +1 -0
  65. package/dist/esm/sdk/secp256k1-CYu8ENjP.js +1 -0
  66. package/dist/esm/sdk/sessionObservationRevision-abErAhd6.js +1 -0
  67. package/dist/esm/sdk/shared-BVps1f3F.js +6 -0
  68. package/dist/esm/sdk/signEvmFamily-C4XMiSue.js +1 -0
  69. package/dist/{public/sdk/signEvmFamilyWithUiConfirmForTempo-NYCFU6Li.js → esm/sdk/signEvmFamilyWithUiConfirmForTempo-4A3D9nKv.js} +1 -1
  70. package/dist/esm/sdk/{signEvmWithUiConfirm-D6nmJr_L.js → signEvmWithUiConfirm-lZyPfrGe.js} +1 -1
  71. package/dist/esm/sdk/signNear-B_UcqMRf.js +1 -0
  72. package/dist/esm/sdk/{signatureUses-B_nN17i7.js → signatureUses-CY4U-X6V.js} +1 -1
  73. package/dist/esm/sdk/{registrationIds-B1OpqRAt.js → signerSlot-CpyIfl3J.js} +1 -1
  74. package/dist/esm/sdk/signingFlow-Co_QtuHK.js +2 -0
  75. package/dist/esm/sdk/signingQueue-Cj9sCJLj.js +1 -0
  76. package/dist/esm/sdk/thresholdEcdsa-LvkD6z8-.js +1 -0
  77. package/dist/esm/sdk/{trace-CsRMlSh1.js → trace-CWTzEALZ.js} +1 -1
  78. package/dist/esm/sdk/{transaction-activity-C0nCSW6c.js → transaction-activity-D5f-Yn9t.js} +1 -1
  79. package/dist/{public/sdk/transactionState-lB2qpkOm.js → esm/sdk/transactionState-BaFSiA9t.js} +1 -1
  80. package/dist/esm/sdk/{types-CQTWmtqu.js → types-BrEW276O.js} +1 -1
  81. package/dist/esm/sdk/wallet-iframe-host-ecdsa.js +1 -1
  82. package/dist/esm/sdk/wallet-iframe-host-full.js +1 -1
  83. package/dist/esm/sdk/wallet-iframe-host-near.js +1 -1
  84. package/dist/esm/sdk/wallet-iframe-host-runtime.js +1 -1
  85. package/dist/esm/sdk/wallet-recovery-BEui57xM.js +1 -0
  86. package/dist/esm/sdk/{walletAuthMethodRecord-CWdqdY_s.js → walletAuthMethodRecord-Cv_MYpxt.js} +1 -1
  87. package/dist/esm/sdk/walletCapabilityBindings-CKOK39sP.js +1 -0
  88. package/dist/esm/sdk/walletCustodyEcdsaContinuity-5XsLsT8D.js +1 -0
  89. package/dist/esm/sdk/walletCustodyOperation-BO_tSfGY.js +1 -0
  90. package/dist/esm/sdk/walletDbName-BVZhb4xF.js +1 -0
  91. package/dist/esm/sdk/walletOwnershipGeneration-CQzaodhB.js +1 -0
  92. package/dist/esm/sdk/walletRecoveryAdminProof-CIoLawfC.js +1 -0
  93. package/dist/esm/sdk/walletRecoveryCommit-B_e4k5Pa.js +1 -0
  94. package/dist/esm/sdk/walletRegistrationSetupPrewarm-CQow9u8m.js +1 -0
  95. package/dist/esm/sdk/walletSessionAuthorizationStatus-_KtCVFYW.js +1 -0
  96. package/dist/esm/sdk/walletSessionAuthorizationStore-DYRMCkiT.js +1 -0
  97. package/dist/esm/sdk/warmSessionHydration-CY9ofEGr.js +1 -0
  98. package/dist/{public/sdk/webauthnP256-_ajaNl90.js → esm/sdk/webauthnP256-unqBoZCk.js} +1 -1
  99. package/dist/esm/shared-ts/src/device-linking/deviceManagement.js +2 -3
  100. package/dist/esm/shared-ts/src/utils/evmRpcResults.js +5 -3
  101. package/dist/esm/shared-ts/src/utils/routerAbEcdsaDerivation.js +2 -1
  102. package/dist/public/headers.manifest.json +1 -1
  103. package/dist/public/sdk/{ConfirmationDrawer-DCw0m-Iv.js → ConfirmationDrawer-B7RCp58z.js} +1 -1
  104. package/dist/public/sdk/{NonceCoordinator-Dq-FZpBz.js → NonceCoordinator-Do23iTzQ.js} +1 -1
  105. package/dist/public/sdk/accountLifecycle-CXTlwnAS.js +1 -0
  106. package/dist/public/sdk/activeWalletSession-BtEHhe99.js +1 -0
  107. package/dist/public/sdk/adapters-La60hveX.js +2 -0
  108. package/dist/public/sdk/challengeDelivery-C88JNwKf.js +1 -0
  109. package/dist/public/sdk/clientSessionPersistenceState-DFGHXoKK.js +1 -0
  110. package/dist/public/sdk/collectAuthenticationCredentialForChallengeB64u-CSwy9csE.js +1 -0
  111. package/dist/public/sdk/{commitQueue-BW7BpYyA.js → commitQueue-BQPOhyGl.js} +1 -1
  112. package/dist/public/sdk/{display-WtILOPQR.js → display-Dtugjeya.js} +1 -1
  113. package/dist/public/sdk/ecdsaCapabilityManifest-B3u6J5gn.js +1 -0
  114. package/dist/public/sdk/{ecdsaDerivationClientWasm-DmwKWUEb.js → ecdsaDerivationClientWasm-D1HzwUgV.js} +1 -1
  115. package/dist/public/sdk/ecdsaDerivationExport-DrFESeRP.js +1 -0
  116. package/dist/public/sdk/ecdsaWalletRecords-BmhuJF1y.js +1 -0
  117. package/dist/public/sdk/emailOtpEcdsaDerivationIdentity-DreNrM6n.js +1 -0
  118. package/dist/public/sdk/{enrichDisplayModelWithAbi-DSj4NAlY.js → enrichDisplayModelWithAbi-D0o0IL7_.js} +1 -1
  119. package/dist/public/sdk/{evmCryptoWasm-DeobzyP-.js → evmCryptoWasm-S2gL5ht4.js} +1 -1
  120. package/dist/public/sdk/{export-viewer-host-DsdzagKK.js → export-viewer-host-CVdpEuY6.js} +1 -1
  121. package/dist/public/sdk/exportKeypairOperation-gVCqLrDl.js +1 -0
  122. package/dist/public/sdk/host-Bz7mRJPZ.js +1 -0
  123. package/dist/public/sdk/keyMaterialEnvelope-B3v6HLtz.js +1 -0
  124. package/dist/public/sdk/{lanes-BzU7cv2T.js → lanes-l274pbT5.js} +1 -1
  125. package/dist/public/sdk/localOnly-TXaYAZj-.js +1 -0
  126. package/dist/public/sdk/{mountExportPrivateKeySurface-DQzFzhNu.js → mountExportPrivateKeySurface-DUnKOBQr.js} +1 -1
  127. package/dist/public/sdk/mountRecoveryCodeBackupSurface-MGTl6FhG.js +2 -0
  128. package/dist/public/sdk/nearEd25519YaoMaterialActivation-BK8_DxHs.js +1 -0
  129. package/dist/public/sdk/nearEd25519YaoSigningPreparation-BgCxoh9S.js +1 -0
  130. package/dist/public/sdk/{nonceLaneKeys-BzMBVxMU.js → nonceLaneKeys-CR2XEvnk.js} +1 -1
  131. package/dist/public/sdk/{normalization-Ct9-AY13.js → normalization-Ctkj80dW.js} +1 -1
  132. package/dist/public/sdk/{operationFingerprint-C4VX-0NI.js → operationFingerprint-DRPONhBD.js} +1 -1
  133. package/dist/public/sdk/pendingWalletRecoveryCodeBackup-DWeemdJv.js +1 -0
  134. package/dist/public/sdk/presignaturePool-DNiA3sgr.js +1 -0
  135. package/dist/{esm/sdk/singletons-CAsc9LvA.js → public/sdk/presignatures-DGLNs29C.js} +1 -1
  136. package/dist/public/sdk/recovery-entrypoint-CNVjXz6A.js +1 -0
  137. package/dist/public/sdk/recoveryAuthorization-BplZWc-N.js +1 -0
  138. package/dist/public/sdk/{registration-DknFwoqn.js → registration-DVX_lnP7.js} +1 -1
  139. package/dist/public/sdk/registration-DeCUrUR9.js +1 -0
  140. package/dist/public/sdk/registrationAccounts-BfO6Ztye.js +1 -0
  141. package/dist/public/sdk/registrationIntent-DW_kKWlx.js +1 -0
  142. package/dist/public/sdk/{registrationSignerPlan-BHkqlian.js → registrationSignerPlan-B66FjqIp.js} +1 -1
  143. package/dist/public/sdk/{requireStepUpAuth-CnSCFSOZ.js → requireStepUpAuth-DsNLml1i.js} +1 -1
  144. package/dist/public/sdk/routerAbNormalSigning-DSAfCcND.js +1 -0
  145. package/dist/public/sdk/runtime-auth-BAGyfscG.js +1 -0
  146. package/dist/{esm/sdk/runtime-device-link-Dn_5hPCq.js → public/sdk/runtime-device-link-DKkMLVor.js} +1 -1
  147. package/dist/{esm/sdk/runtime-ecdsa-tempo-lTFTb9Rh.js → public/sdk/runtime-ecdsa-tempo-0TAVH1xg.js} +1 -1
  148. package/dist/public/sdk/runtime-email-otp-DoHa8Hif.js +1 -0
  149. package/dist/public/sdk/{runtime-export-Brz53_oi.js → runtime-export-CAt17IFH.js} +1 -1
  150. package/dist/public/sdk/{runtime-near-Da_xFUXx.js → runtime-near-BQX9Jk9Z.js} +1 -1
  151. package/dist/public/sdk/runtime-preferences-BuKTIpv6.js +1 -0
  152. package/dist/public/sdk/runtime-recovery-DyxJKKNw.js +1 -0
  153. package/dist/public/sdk/runtime-recovery-codes-CWmt0FDB.js +1 -0
  154. package/dist/public/sdk/secp256k1-CYu8ENjP.js +1 -0
  155. package/dist/public/sdk/sessionObservationRevision-abErAhd6.js +1 -0
  156. package/dist/public/sdk/shared-BVps1f3F.js +6 -0
  157. package/dist/public/sdk/signEvmFamily-C4XMiSue.js +1 -0
  158. package/dist/{esm/sdk/signEvmFamilyWithUiConfirmForTempo-NYCFU6Li.js → public/sdk/signEvmFamilyWithUiConfirmForTempo-4A3D9nKv.js} +1 -1
  159. package/dist/public/sdk/{signEvmWithUiConfirm-D6nmJr_L.js → signEvmWithUiConfirm-lZyPfrGe.js} +1 -1
  160. package/dist/public/sdk/signNear-B_UcqMRf.js +1 -0
  161. package/dist/public/sdk/{signatureUses-B_nN17i7.js → signatureUses-CY4U-X6V.js} +1 -1
  162. package/dist/public/sdk/{registrationIds-B1OpqRAt.js → signerSlot-CpyIfl3J.js} +1 -1
  163. package/dist/public/sdk/signingFlow-Co_QtuHK.js +2 -0
  164. package/dist/public/sdk/signingQueue-Cj9sCJLj.js +1 -0
  165. package/dist/public/sdk/thresholdEcdsa-LvkD6z8-.js +1 -0
  166. package/dist/public/sdk/{trace-CsRMlSh1.js → trace-CWTzEALZ.js} +1 -1
  167. package/dist/public/sdk/{transaction-activity-C0nCSW6c.js → transaction-activity-D5f-Yn9t.js} +1 -1
  168. package/dist/{esm/sdk/transactionState-lB2qpkOm.js → public/sdk/transactionState-BaFSiA9t.js} +1 -1
  169. package/dist/public/sdk/{types-CQTWmtqu.js → types-BrEW276O.js} +1 -1
  170. package/dist/public/sdk/wallet-iframe-host-ecdsa.js +1 -1
  171. package/dist/public/sdk/wallet-iframe-host-full.js +1 -1
  172. package/dist/public/sdk/wallet-iframe-host-near.js +1 -1
  173. package/dist/public/sdk/wallet-iframe-host-runtime.js +1 -1
  174. package/dist/public/sdk/wallet-recovery-BEui57xM.js +1 -0
  175. package/dist/public/sdk/{walletAuthMethodRecord-CWdqdY_s.js → walletAuthMethodRecord-Cv_MYpxt.js} +1 -1
  176. package/dist/public/sdk/walletCapabilityBindings-CKOK39sP.js +1 -0
  177. package/dist/public/sdk/walletCustodyEcdsaContinuity-5XsLsT8D.js +1 -0
  178. package/dist/public/sdk/walletCustodyOperation-BO_tSfGY.js +1 -0
  179. package/dist/public/sdk/walletDbName-BVZhb4xF.js +1 -0
  180. package/dist/public/sdk/walletOwnershipGeneration-CQzaodhB.js +1 -0
  181. package/dist/public/sdk/walletRecoveryAdminProof-CIoLawfC.js +1 -0
  182. package/dist/public/sdk/walletRecoveryCommit-B_e4k5Pa.js +1 -0
  183. package/dist/public/sdk/walletRegistrationSetupPrewarm-CQow9u8m.js +1 -0
  184. package/dist/public/sdk/walletSessionAuthorizationStatus-_KtCVFYW.js +1 -0
  185. package/dist/public/sdk/walletSessionAuthorizationStore-DYRMCkiT.js +1 -0
  186. package/dist/public/sdk/warmSessionHydration-CY9ofEGr.js +1 -0
  187. package/dist/{esm/sdk/webauthnP256-_ajaNl90.js → public/sdk/webauthnP256-unqBoZCk.js} +1 -1
  188. package/dist/public/sdk/workers/email-otp.worker.js +6 -1
  189. package/dist/public/wallet-assets.manifest.json +253 -276
  190. package/dist/public/wallet-service/index.html +4 -4
  191. package/dist/types/shared-ts/src/authorization/walletCustodyOperation.d.ts +1 -1
  192. package/dist/types/shared-ts/src/device-linking/contracts.d.ts +1 -7
  193. package/dist/types/shared-ts/src/passkey-custody/ceremonyCommitPayload.d.ts +5 -0
  194. package/dist/types/shared-ts/src/utils/evmRpcResults.d.ts +3 -3
  195. package/dist/types/shared-ts/src/utils/routerAbEcdsaDerivation.d.ts +1 -1
  196. package/dist/types/wallet/src/SeamsWeb/operations/recovery/walletRecoveryAdminProof.d.ts +46 -0
  197. package/dist/types/wallet/src/SeamsWeb/operations/recovery/walletRecoveryCodeBackup.d.ts +4 -1
  198. package/dist/types/wallet/src/SeamsWeb/operations/recovery/walletRecoveryRotation.d.ts +11 -7
  199. package/dist/types/wallet/src/SeamsWeb/publicApi/types.d.ts +9 -1
  200. package/dist/types/wallet/src/SeamsWeb/signingSurface/BrowserSigningSurface.d.ts +4 -3
  201. package/dist/types/wallet/src/SeamsWeb/signingSurface/ports.d.ts +6 -4
  202. package/dist/types/wallet/src/SeamsWeb/signingSurface/types.d.ts +2 -2
  203. package/dist/types/wallet/src/SeamsWeb/walletIframe/client/router.d.ts +2 -6
  204. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/WalletHostRuntime.d.ts +1 -0
  205. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/requestWalletMove.d.ts +1 -1
  206. package/dist/types/wallet/src/SeamsWeb/walletIframe/shared/messages.d.ts +5 -1
  207. package/dist/types/wallet/src/SeamsWeb/walletIframe/shared/recoveryAuthorization.d.ts +6 -0
  208. package/dist/types/wallet/src/core/indexedDB/seamsWalletDB/pendingWalletRecoveryCodeBackup.d.ts +14 -3
  209. package/dist/types/wallet/src/core/rpcClients/relayer/walletRecoveryRotate.d.ts +8 -0
  210. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/RecoveryCodeBackupSurface.d.ts +1 -0
  211. package/dist/types/wallet/src/core/signingEngine/walletCustody/walletRecoveryRotation.d.ts +22 -3
  212. package/dist/types/wallet/src/core/signingEngine/workerManager/workerTypes.d.ts +1 -0
  213. package/dist/types/wallet/src/core/signingEngine/workerManager/workers/email-otp/unlock.d.ts +1 -0
  214. package/dist/types/wallet/src/core/types/sdkSentEvents.d.ts +8 -2
  215. package/dist/types/wallet/src/plugins/plugin-utils.d.ts +1 -1
  216. package/dist/workers/email-otp.worker.js +6 -1
  217. package/package.json +1 -1
  218. package/dist/esm/sdk/accountLifecycle-fLNUdjct.js +0 -1
  219. package/dist/esm/sdk/activeWalletSession-BpbnpU9s.js +0 -1
  220. package/dist/esm/sdk/adapters-BNmcyf9K.js +0 -2
  221. package/dist/esm/sdk/challengeDelivery-CG2J5Qxs.js +0 -1
  222. package/dist/esm/sdk/clientSessionPersistenceState-BgO4P6CZ.js +0 -1
  223. package/dist/esm/sdk/digestEncoding-aC4dSf_x.js +0 -1
  224. package/dist/esm/sdk/ecdsaCapabilityManifest-DRc423SV.js +0 -1
  225. package/dist/esm/sdk/ecdsaDerivationExport-DX89rq_u.js +0 -1
  226. package/dist/esm/sdk/ecdsaWalletRecords-CxxUt3fS.js +0 -1
  227. package/dist/esm/sdk/emailOtpEcdsaDerivationIdentity-CupWCKNg.js +0 -1
  228. package/dist/esm/sdk/exportKeypairOperation-BwW_E4Lt.js +0 -1
  229. package/dist/esm/sdk/host-DMR4KDy9.js +0 -1
  230. package/dist/esm/sdk/localOnly-DO191vDh.js +0 -1
  231. package/dist/esm/sdk/mountRecoveryCodeBackupSurface-B1D0ovqx.js +0 -2
  232. package/dist/esm/sdk/nearEd25519YaoMaterialActivation-DgWDGRI_.js +0 -1
  233. package/dist/esm/sdk/nearEd25519YaoSigningPreparation-yKDLQXBS.js +0 -1
  234. package/dist/esm/sdk/passkey-custody-Ba-NQ_4C.js +0 -1
  235. package/dist/esm/sdk/pendingWalletRecoveryCodeBackup-DOeIn_Qj.js +0 -1
  236. package/dist/esm/sdk/presignaturePool-BHoxnbOA.js +0 -1
  237. package/dist/esm/sdk/presignatures-K-yuzOE0.js +0 -1
  238. package/dist/esm/sdk/primitives-CTmDwMNc.js +0 -1
  239. package/dist/esm/sdk/recovery-entrypoint-DWghFZrZ.js +0 -1
  240. package/dist/esm/sdk/registration-sQndIWRF.js +0 -1
  241. package/dist/esm/sdk/registrationAccounts-CD1u1ZqZ.js +0 -1
  242. package/dist/esm/sdk/registrationIntent-D4YDjf2U.js +0 -1
  243. package/dist/esm/sdk/routerAbNormalSigning-BV1t27aB.js +0 -1
  244. package/dist/esm/sdk/runtime-auth-BxG-J-BB.js +0 -1
  245. package/dist/esm/sdk/runtime-email-otp-CPqTCH8Q.js +0 -1
  246. package/dist/esm/sdk/runtime-preferences-riUZGaTs.js +0 -1
  247. package/dist/esm/sdk/runtime-recovery-CTj4nDAM.js +0 -1
  248. package/dist/esm/sdk/runtime-recovery-codes-D8T9LQ7-.js +0 -1
  249. package/dist/esm/sdk/secp256k1-wOOHtPcK.js +0 -1
  250. package/dist/esm/sdk/sessionObservationRevision-C7v-wN8_.js +0 -1
  251. package/dist/esm/sdk/shared-hx7KVyeq.js +0 -6
  252. package/dist/esm/sdk/signEvmFamily-DT34Vtpa.js +0 -1
  253. package/dist/esm/sdk/signNear-B000QxBd.js +0 -1
  254. package/dist/esm/sdk/signerSlot-FJAGOhmg.js +0 -1
  255. package/dist/esm/sdk/signingFlow-gl85GOW4.js +0 -2
  256. package/dist/esm/sdk/signingQueue-gW7wmOuL.js +0 -1
  257. package/dist/esm/sdk/thresholdEcdsa-Ci7yz395.js +0 -1
  258. package/dist/esm/sdk/wallet-recovery-DFaS3geI.js +0 -1
  259. package/dist/esm/sdk/walletAuthority-BY3kyKQ-.js +0 -1
  260. package/dist/esm/sdk/walletCustodyEcdsaContinuity-mGh1Ysko.js +0 -1
  261. package/dist/esm/sdk/walletDbName-BxWApBQF.js +0 -1
  262. package/dist/esm/sdk/walletOwnershipGeneration-DSGfjuV2.js +0 -1
  263. package/dist/esm/sdk/walletRecoveryCommit-DQA_wveK.js +0 -1
  264. package/dist/esm/sdk/walletRecoveryRotate-zvQThn37.js +0 -1
  265. package/dist/esm/sdk/walletRegistrationSetupPrewarm-DdVpKccU.js +0 -1
  266. package/dist/esm/sdk/walletSessionAuthorizationStatus-ONPRiEbK.js +0 -1
  267. package/dist/esm/sdk/walletSessionAuthorizationStore-DnUMtkev.js +0 -1
  268. package/dist/esm/sdk/warmSessionHydration-D8Vdro9n.js +0 -1
  269. package/dist/public/sdk/accountLifecycle-fLNUdjct.js +0 -1
  270. package/dist/public/sdk/activeWalletSession-BpbnpU9s.js +0 -1
  271. package/dist/public/sdk/adapters-BNmcyf9K.js +0 -2
  272. package/dist/public/sdk/challengeDelivery-CG2J5Qxs.js +0 -1
  273. package/dist/public/sdk/clientSessionPersistenceState-BgO4P6CZ.js +0 -1
  274. package/dist/public/sdk/digestEncoding-aC4dSf_x.js +0 -1
  275. package/dist/public/sdk/ecdsaCapabilityManifest-DRc423SV.js +0 -1
  276. package/dist/public/sdk/ecdsaDerivationExport-DX89rq_u.js +0 -1
  277. package/dist/public/sdk/ecdsaWalletRecords-CxxUt3fS.js +0 -1
  278. package/dist/public/sdk/emailOtpEcdsaDerivationIdentity-CupWCKNg.js +0 -1
  279. package/dist/public/sdk/exportKeypairOperation-BwW_E4Lt.js +0 -1
  280. package/dist/public/sdk/host-DMR4KDy9.js +0 -1
  281. package/dist/public/sdk/localOnly-DO191vDh.js +0 -1
  282. package/dist/public/sdk/mountRecoveryCodeBackupSurface-B1D0ovqx.js +0 -2
  283. package/dist/public/sdk/nearEd25519YaoMaterialActivation-DgWDGRI_.js +0 -1
  284. package/dist/public/sdk/nearEd25519YaoSigningPreparation-yKDLQXBS.js +0 -1
  285. package/dist/public/sdk/passkey-custody-Ba-NQ_4C.js +0 -1
  286. package/dist/public/sdk/pendingWalletRecoveryCodeBackup-DOeIn_Qj.js +0 -1
  287. package/dist/public/sdk/presignaturePool-BHoxnbOA.js +0 -1
  288. package/dist/public/sdk/presignatures-K-yuzOE0.js +0 -1
  289. package/dist/public/sdk/primitives-CTmDwMNc.js +0 -1
  290. package/dist/public/sdk/recovery-entrypoint-DWghFZrZ.js +0 -1
  291. package/dist/public/sdk/registration-sQndIWRF.js +0 -1
  292. package/dist/public/sdk/registrationAccounts-CD1u1ZqZ.js +0 -1
  293. package/dist/public/sdk/registrationIntent-D4YDjf2U.js +0 -1
  294. package/dist/public/sdk/routerAbNormalSigning-BV1t27aB.js +0 -1
  295. package/dist/public/sdk/runtime-auth-BxG-J-BB.js +0 -1
  296. package/dist/public/sdk/runtime-email-otp-CPqTCH8Q.js +0 -1
  297. package/dist/public/sdk/runtime-preferences-riUZGaTs.js +0 -1
  298. package/dist/public/sdk/runtime-recovery-CTj4nDAM.js +0 -1
  299. package/dist/public/sdk/runtime-recovery-codes-D8T9LQ7-.js +0 -1
  300. package/dist/public/sdk/secp256k1-wOOHtPcK.js +0 -1
  301. package/dist/public/sdk/sessionObservationRevision-C7v-wN8_.js +0 -1
  302. package/dist/public/sdk/shared-hx7KVyeq.js +0 -6
  303. package/dist/public/sdk/signEvmFamily-DT34Vtpa.js +0 -1
  304. package/dist/public/sdk/signNear-B000QxBd.js +0 -1
  305. package/dist/public/sdk/signerSlot-FJAGOhmg.js +0 -1
  306. package/dist/public/sdk/signingFlow-gl85GOW4.js +0 -2
  307. package/dist/public/sdk/signingQueue-gW7wmOuL.js +0 -1
  308. package/dist/public/sdk/thresholdEcdsa-Ci7yz395.js +0 -1
  309. package/dist/public/sdk/wallet-recovery-DFaS3geI.js +0 -1
  310. package/dist/public/sdk/walletAuthority-BY3kyKQ-.js +0 -1
  311. package/dist/public/sdk/walletCustodyEcdsaContinuity-mGh1Ysko.js +0 -1
  312. package/dist/public/sdk/walletDbName-BxWApBQF.js +0 -1
  313. package/dist/public/sdk/walletOwnershipGeneration-DSGfjuV2.js +0 -1
  314. package/dist/public/sdk/walletRecoveryCommit-DQA_wveK.js +0 -1
  315. package/dist/public/sdk/walletRecoveryRotate-zvQThn37.js +0 -1
  316. package/dist/public/sdk/walletRegistrationSetupPrewarm-DdVpKccU.js +0 -1
  317. package/dist/public/sdk/walletSessionAuthorizationStatus-ONPRiEbK.js +0 -1
  318. package/dist/public/sdk/walletSessionAuthorizationStore-DnUMtkev.js +0 -1
  319. package/dist/public/sdk/warmSessionHydration-D8Vdro9n.js +0 -1
  320. /package/dist/esm/sdk/{accountIds-Cpvlkvbe.js → accountIds-BzZs7YoX.js} +0 -0
  321. /package/dist/esm/sdk/{appearance-4DmzKUWf.js → appearance-ZGVLwA4N.js} +0 -0
  322. /package/dist/esm/sdk/{appearance-token-vars-DxBm_cKA.js → appearance-token-vars-Bu6YUWmf.js} +0 -0
  323. /package/dist/esm/sdk/{authenticatorOptions-2_XK8aXv.js → authenticatorOptions-BB_sU4uA.js} +0 -0
  324. /package/dist/esm/sdk/{authorizationAdmission-Dd23mTx7.js → authorizationAdmission-D7nx2n4d.js} +0 -0
  325. /package/dist/esm/sdk/{browser-n3IVr7qu.js → browser-DkCRXFkk.js} +0 -0
  326. /package/dist/esm/sdk/{bytes-DZRW2UDg.js → bytes-Cv07P0Pu.js} +0 -0
  327. /package/dist/esm/sdk/{canonicalPrimitives-BMP5yILS.js → canonicalPrimitives-D_1HyEuJ.js} +0 -0
  328. /package/dist/esm/sdk/{canonicalSignerErrorCode-Cz48v4oy.js → canonicalSignerErrorCode-CqHi6ji6.js} +0 -0
  329. /package/dist/esm/sdk/{capabilityKinds-D0Yrp9uf.js → capabilityKinds-CqHVzVsJ.js} +0 -0
  330. /package/dist/esm/sdk/{ecdsaChainTarget-DkOrgv4y.js → ecdsaChainTarget-svSlzhze.js} +0 -0
  331. /package/dist/esm/sdk/{errors-ADOZT8oV.js → errors-CI1xdN0d.js} +0 -0
  332. /package/dist/esm/sdk/{executeWorkerOperation-DKCRRq5E.js → executeWorkerOperation-S6glYwAs.js} +0 -0
  333. /package/dist/esm/sdk/{helpers-DS0bksx9.js → helpers-BXezXx19.js} +0 -0
  334. /package/dist/esm/sdk/{intentDigest-Rh5Mg8X7.js → intentDigest--FZ63NBy.js} +0 -0
  335. /package/dist/esm/sdk/{jsonRpc-BVDv1wfm.js → jsonRpc-B5zMY6lE.js} +0 -0
  336. /package/dist/esm/sdk/{keccak-mS0Mejjx.js → keccak-CaPOCznk.js} +0 -0
  337. /package/dist/esm/sdk/{normalization-C6fQN6mW.js → normalization-CpLZcL2f.js} +0 -0
  338. /package/dist/esm/sdk/{prfCache-BAFh1skJ.js → prfCache-D25ZCg5n.js} +0 -0
  339. /package/dist/esm/sdk/{profileAccountProjection-BNVJLOt2.js → profileAccountProjection-C1z9sKHa.js} +0 -0
  340. /package/dist/esm/sdk/{promptText-CnyrLxgj.js → promptText-D2f5Rg0h.js} +0 -0
  341. /package/dist/esm/sdk/{registrationAuthMethodInput-B23_HRil.js → registrationAuthMethodInput-DKz6Mgg4.js} +0 -0
  342. /package/dist/esm/sdk/{sdkSentEvents-DujYAPEM.js → sdkSentEvents-BzMVO1AR.js} +0 -0
  343. /package/dist/esm/sdk/{signer-worker-DlK58rEA.js → signer-worker-Bh_5foqX.js} +0 -0
  344. /package/dist/esm/sdk/{signerDomain-BFqRQ0Jl.js → signerDomain-YEHkugWX.js} +0 -0
  345. /package/dist/esm/sdk/{surface-measurement-reporter-BJhfiPw6.js → surface-measurement-reporter-F-fVB7d3.js} +0 -0
  346. /package/dist/esm/sdk/{types-Buoe6179.js → types-BNUuaUtl.js} +0 -0
  347. /package/dist/esm/sdk/{walletIframeIdentity-Cz82I_Uh.js → walletIframeIdentity-DJ0KOBHg.js} +0 -0
  348. /package/dist/esm/sdk/{walletSessionAuthorizationProjection-DuU6w0FP.js → walletSessionAuthorizationProjection-UdGeS6x3.js} +0 -0
  349. /package/dist/esm/sdk/{walletSessionFailure-C6TAQTZn.js → walletSessionFailure-Ct412mDZ.js} +0 -0
  350. /package/dist/esm/sdk/{webauthnPromptCoordinator-9bVeHcTZ.js → webauthnPromptCoordinator-CBkTiMP0.js} +0 -0
  351. /package/dist/public/sdk/{accountIds-Cpvlkvbe.js → accountIds-BzZs7YoX.js} +0 -0
  352. /package/dist/public/sdk/{appearance-4DmzKUWf.js → appearance-ZGVLwA4N.js} +0 -0
  353. /package/dist/public/sdk/{appearance-token-vars-DxBm_cKA.js → appearance-token-vars-Bu6YUWmf.js} +0 -0
  354. /package/dist/public/sdk/{authenticatorOptions-2_XK8aXv.js → authenticatorOptions-BB_sU4uA.js} +0 -0
  355. /package/dist/public/sdk/{authorizationAdmission-Dd23mTx7.js → authorizationAdmission-D7nx2n4d.js} +0 -0
  356. /package/dist/public/sdk/{browser-n3IVr7qu.js → browser-DkCRXFkk.js} +0 -0
  357. /package/dist/public/sdk/{bytes-DZRW2UDg.js → bytes-Cv07P0Pu.js} +0 -0
  358. /package/dist/public/sdk/{canonicalPrimitives-BMP5yILS.js → canonicalPrimitives-D_1HyEuJ.js} +0 -0
  359. /package/dist/public/sdk/{canonicalSignerErrorCode-Cz48v4oy.js → canonicalSignerErrorCode-CqHi6ji6.js} +0 -0
  360. /package/dist/public/sdk/{capabilityKinds-D0Yrp9uf.js → capabilityKinds-CqHVzVsJ.js} +0 -0
  361. /package/dist/public/sdk/{ecdsaChainTarget-DkOrgv4y.js → ecdsaChainTarget-svSlzhze.js} +0 -0
  362. /package/dist/public/sdk/{errors-ADOZT8oV.js → errors-CI1xdN0d.js} +0 -0
  363. /package/dist/public/sdk/{executeWorkerOperation-DKCRRq5E.js → executeWorkerOperation-S6glYwAs.js} +0 -0
  364. /package/dist/public/sdk/{helpers-DS0bksx9.js → helpers-BXezXx19.js} +0 -0
  365. /package/dist/public/sdk/{intentDigest-Rh5Mg8X7.js → intentDigest--FZ63NBy.js} +0 -0
  366. /package/dist/public/sdk/{jsonRpc-BVDv1wfm.js → jsonRpc-B5zMY6lE.js} +0 -0
  367. /package/dist/public/sdk/{keccak-mS0Mejjx.js → keccak-CaPOCznk.js} +0 -0
  368. /package/dist/public/sdk/{normalization-C6fQN6mW.js → normalization-CpLZcL2f.js} +0 -0
  369. /package/dist/public/sdk/{prfCache-BAFh1skJ.js → prfCache-D25ZCg5n.js} +0 -0
  370. /package/dist/public/sdk/{profileAccountProjection-BNVJLOt2.js → profileAccountProjection-C1z9sKHa.js} +0 -0
  371. /package/dist/public/sdk/{promptText-CnyrLxgj.js → promptText-D2f5Rg0h.js} +0 -0
  372. /package/dist/public/sdk/{registrationAuthMethodInput-B23_HRil.js → registrationAuthMethodInput-DKz6Mgg4.js} +0 -0
  373. /package/dist/public/sdk/{sdkSentEvents-DujYAPEM.js → sdkSentEvents-BzMVO1AR.js} +0 -0
  374. /package/dist/public/sdk/{signer-worker-DlK58rEA.js → signer-worker-Bh_5foqX.js} +0 -0
  375. /package/dist/public/sdk/{signerDomain-BFqRQ0Jl.js → signerDomain-YEHkugWX.js} +0 -0
  376. /package/dist/public/sdk/{surface-measurement-reporter-BJhfiPw6.js → surface-measurement-reporter-F-fVB7d3.js} +0 -0
  377. /package/dist/public/sdk/{types-Buoe6179.js → types-BNUuaUtl.js} +0 -0
  378. /package/dist/public/sdk/{walletIframeIdentity-Cz82I_Uh.js → walletIframeIdentity-DJ0KOBHg.js} +0 -0
  379. /package/dist/public/sdk/{walletSessionAuthorizationProjection-DuU6w0FP.js → walletSessionAuthorizationProjection-UdGeS6x3.js} +0 -0
  380. /package/dist/public/sdk/{walletSessionFailure-C6TAQTZn.js → walletSessionFailure-Ct412mDZ.js} +0 -0
  381. /package/dist/public/sdk/{webauthnPromptCoordinator-9bVeHcTZ.js → webauthnPromptCoordinator-CBkTiMP0.js} +0 -0
@@ -1 +0,0 @@
1
- import"./accountIds-Cpvlkvbe.js";import"./registrationSignerPlan-BHkqlian.js";import"./signerDomain-BFqRQ0Jl.js";import{O as e,T as t,_ as n,a as r,b as i,c as a,g as o,i as s,k as c,l,o as u,r as d,s as f,t as p,v as m,w as h,x as g,y as _}from"./accountLifecycle-fLNUdjct.js";import"./registrationIds-B1OpqRAt.js";function v(v){return{storeUserData:async e=>{await g(v,e)},getAllUsers:()=>s(v),getUserBySignerSlot:(e,t)=>u(v,e,t),getLastUser:()=>r(v),nearAuthenticatorsByAccount:e=>l(v,e),setLastUser:(e,t)=>m(v,e,t),activateAuthenticatedWalletState:e=>p(v,e),setWalletNearProvisioningState:e=>_(v,e),getWalletNearProvisioningState:e=>f(v,e),storeAuthenticator:e=>i(v,e),rollbackUserRegistration:e=>o(v,e),hasPasskeyCredential:e=>a(v,e),storeWalletEd25519RegistrationData:e=>t(v,e),storeWalletEd25519RecoveryRegistrationData:e=>h(v,e),storeWalletEmailOtpEd25519RegistrationData:t=>e(v,t),storeWalletEmailOtpMixedRegistrationData:e=>c(v,e),finalizeWalletEd25519SignerRegistration:e=>d(v,e),rollbackWalletEd25519SignerRegistration:e=>n(v,e)}}export{v as createRegistrationAccountsService};
@@ -1 +0,0 @@
1
- import{D as e,M as t,O as n,T as r,d as i,h as a,k as o,l as s,r as c,u as l}from"./domainIds-C3fUa33Q.js";import{C as u,D as ee,E as te,c as d,d as ne,k as f,u as re}from"./chains-CPmd4s9f.js";import{_ as p,d as ie,g as m,i as ae,l as h,n as oe,r as se,t as ce}from"./primitives-CTmDwMNc.js";import{i as g,r as _}from"./base64-BmKR3UqU.js";import{n as le}from"./secureRandomId-8LSc91aN.js";import{A as v,C as ue,D as de,E as y,O as b,S as x,T as fe,_ as S,b as C,c as w,d as T,f as pe,g as E,h as D,l as O,m as k,n as me,o as he,p as ge,s as _e,u as A,v as ve,w as ye,x as j,y as M}from"./activeWalletSession-BpbnpU9s.js";import{d as be,f as xe,h as Se,m as Ce,p as we}from"./capabilityKinds-D0Yrp9uf.js";import{a as Te,o as N,r as P}from"./canonicalPrimitives-BMP5yILS.js";import{i as Ee,n as De,t as Oe}from"./registrationAuthMethodInput-B23_HRil.js";import{a as ke}from"./registrationSignerPlan-BHkqlian.js";import{i as Ae,t as je}from"./singletons-CAsc9LvA.js";import{d as Me,f as Ne}from"./walletAuthority-BY3kyKQ-.js";import{en as Pe,rn as Fe}from"./emailOtpEcdsaDerivationIdentity-CupWCKNg.js";import{A as Ie,L as Le,M as Re,N as ze,Y as Be,_ as Ve,f as He,h as Ue,j as We,p as Ge}from"./challengeDelivery-CG2J5Qxs.js";import{a as F,i as Ke,n as I,o as qe,r as Je,s as Ye,t as L}from"./digestEncoding-aC4dSf_x.js";import{r as Xe}from"./walletAuthMethodRecord-CWdqdY_s.js";function Ze(e){return typeof e==`string`&&/^wreg_[A-Za-z0-9_-]{43}$/u.test(e)?e:null}function Qe(){return`wreg_${le(32)}`}const $e=`wallet_registration_setup:`;function et(e,t){return`${$e}${e}:${t}`}function tt(e){if(!u(e)||!u(e.value))throw Error(`Registration setup journal is invalid`);let t=e.value,r=ee(t.scopeDigest,`Registration setup scope digest`),i=ee(t.requestDigest,`Registration setup request digest`),a=Ze(t.operationId);if(!a||!/^[a-f0-9]{64}$/u.test(r)||!/^[a-f0-9]{64}$/u.test(i)||e.key!==et(r,i))throw Error(`Registration setup journal scope is invalid`);if(t.state===`pending`&&!(`walletId`in t)&&!(`registrationCeremonyId`in t))return{state:`pending`,operationId:a,scopeDigest:r,requestDigest:i};if(t.state===`accepted`){let e=n(t.walletId);if(e.ok)return{state:`accepted`,operationId:a,scopeDigest:r,requestDigest:i,walletId:e.value,registrationCeremonyId:ee(t.registrationCeremonyId,`Registration setup ceremony`)}}throw Error(`Registration setup journal state is invalid`)}async function nt(e){return ne(d({relayerUrl:e.relayerUrl.replace(/\/+$/u,``),publishableKey:e.publishableKey,environmentId:e.environmentId}))}function rt(){}var it=class{constructor(e){this.manager=e}async begin(e,t){let n=await ne(d(t)),r=et(e,n),i={state:`pending`,operationId:Qe(),scopeDigest:e,requestDigest:n},a=(await this.manager.getDB()).transaction(Ae.appState,`readwrite`),o=await a.store.get(r),s=o===void 0?i:tt(o);return o===void 0&&await a.store.put({key:r,value:s}),await a.done,s}async accept(e,t){let n=et(e.scopeDigest,e.requestDigest),r=(await this.manager.getDB()).transaction(Ae.appState,`readwrite`),i=tt(await r.store.get(n));if(i.operationId!==e.operationId||i.state===`accepted`&&(i.walletId!==t.walletId||i.registrationCeremonyId!==t.registrationCeremonyId))throw r.abort(),await r.done.catch(rt),Error(`Registration setup response changed its operation, wallet or ceremony`);let a={state:`accepted`,operationId:i.operationId,scopeDigest:i.scopeDigest,requestDigest:i.requestDigest,walletId:t.walletId,registrationCeremonyId:t.registrationCeremonyId};await r.store.put({key:n,value:a}),await r.done}async complete(e){let t=(await this.manager.getDB()).transaction(Ae.appState,`readwrite`),n=(await t.store.getAll(IDBKeyRange.bound($e,`${$e}\uffff`))).map(tt);for(let r of n)r.state===`accepted`&&r.walletId===e.walletId&&r.registrationCeremonyId===e.registrationCeremonyId&&await t.store.delete(et(r.scopeDigest,r.requestDigest));await t.done}};const at=new it(je);function ot(e){throw Error(`[LinkSessionStateV1] unsupported state: ${String(e)}`)}const st=`x25519-hkdf-sha256-chacha20poly1305-v1`,ct=/^[A-Za-z0-9_-]+$/,lt=[`kind`,`linkSessionId`,`walletId`,`walletKeyId`,`enrollmentId`,`deviceId`,`transferAlg`,`applicationBindingDigestB64u`,`registeredPublicKeyB64u`,`targetFactor`,`revocationEpoch`,`recipientPublicKeyB64u`,`registeredAtMs`],ut=[`kind`,`linkSessionId`,`walletId`,`walletKeyId`,`enrollmentId`,`deviceId`,`transferAlg`,`applicationBindingDigestB64u`,`registeredPublicKeyB64u`,`targetFactor`,`revocationEpoch`,`recipientPublicKeyB64u`,`ephemeralPublicKeyB64u`,`nonceB64u`,`sealedExportRootB64u`,`bindingDigestB64u`,`ciphertextDigestB64u`,`sealedAtMs`];function dt(e,t=`recipientPublicKeyB64u`){if(typeof e!=`string`||!ct.test(e))throw Error(`${t} must be unpadded base64url`);let n;try{n=_(e)}catch{throw Error(`${t} must be valid base64url`)}if(g(n)!==e)throw Error(`${t} must be canonical base64url`);if(n.length!==32)throw Error(`${t} must decode to a 32-byte X25519 public key`);return e}function ft(e){return{linkSessionId:e.linkSessionId,walletId:e.walletId,walletKeyId:e.walletKeyId,targetFactor:e.targetFactor,enrollmentId:e.enrollmentId,deviceId:e.deviceId,revocationEpoch:e.revocationEpoch,applicationBindingDigestB64u:e.applicationBindingDigestB64u,registeredPublicKeyB64u:e.registeredPublicKeyB64u,recipientPublicKeyB64u:e.recipientPublicKeyB64u}}function pt(e){return JSON.stringify({linkSessionId:String(e.linkSessionId),walletId:String(e.walletId),walletKeyId:String(e.walletKeyId),targetFactor:e.targetFactor,enrollmentId:String(e.enrollmentId),deviceId:String(e.deviceId),revocationEpoch:e.revocationEpoch,applicationBindingDigestB64u:String(e.applicationBindingDigestB64u),registeredPublicKeyB64u:String(e.registeredPublicKeyB64u),recipientPublicKeyB64u:String(e.recipientPublicKeyB64u)})}function mt(e){let t=_t(e,lt,`LinkedDeviceEd25519ExportRootRecipientV1`);if(t.kind!==`linked_device_ed25519_export_root_recipient_v1`)throw Error(`LinkedDeviceEd25519ExportRootRecipientV1.kind is invalid`);return vt(t.transferAlg,`LinkedDeviceEd25519ExportRootRecipientV1.transferAlg`),{kind:`linked_device_ed25519_export_root_recipient_v1`,linkSessionId:h(s(t.linkSessionId),`LinkedDeviceEd25519ExportRootRecipientV1.linkSessionId`),walletId:h(n(t.walletId),`walletId`),walletKeyId:h(o(t.walletKeyId),`walletKeyId`),enrollmentId:h(l(t.enrollmentId),`enrollmentId`),deviceId:h(i(t.deviceId),`deviceId`),transferAlg:st,applicationBindingDigestB64u:ce(t.applicationBindingDigestB64u,`applicationBindingDigestB64u`),registeredPublicKeyB64u:oe(t.registeredPublicKeyB64u,`registeredPublicKeyB64u`),targetFactor:gt(t.targetFactor),revocationEpoch:yt(t.revocationEpoch,`revocationEpoch`),recipientPublicKeyB64u:dt(t.recipientPublicKeyB64u,`recipientPublicKeyB64u`),registeredAtMs:bt(t.registeredAtMs,`registeredAtMs`)}}function ht(e){let t=_t(e,ut,`LinkedDeviceEd25519ExportRootPackageV1`);if(t.kind!==`linked_device_ed25519_export_root_package_v1`)throw Error(`LinkedDeviceEd25519ExportRootPackageV1.kind is invalid`);vt(t.transferAlg,`LinkedDeviceEd25519ExportRootPackageV1.transferAlg`);let r=dt(t.recipientPublicKeyB64u,`recipientPublicKeyB64u`),a=dt(t.ephemeralPublicKeyB64u,`ephemeralPublicKeyB64u`);if(r===a)throw Error(`ephemeralPublicKeyB64u repeats the recipient key`);return{kind:`linked_device_ed25519_export_root_package_v1`,linkSessionId:h(s(t.linkSessionId),`linkSessionId`),walletId:h(n(t.walletId),`walletId`),walletKeyId:h(o(t.walletKeyId),`walletKeyId`),enrollmentId:h(l(t.enrollmentId),`enrollmentId`),deviceId:h(i(t.deviceId),`deviceId`),transferAlg:st,applicationBindingDigestB64u:ce(t.applicationBindingDigestB64u,`applicationBindingDigestB64u`),registeredPublicKeyB64u:oe(t.registeredPublicKeyB64u,`registeredPublicKeyB64u`),targetFactor:gt(t.targetFactor),revocationEpoch:yt(t.revocationEpoch,`revocationEpoch`),recipientPublicKeyB64u:r,ephemeralPublicKeyB64u:a,nonceB64u:ae(t.nonceB64u,`nonceB64u`),sealedExportRootB64u:se(t.sealedExportRootB64u,`sealedExportRootB64u`),bindingDigestB64u:ce(t.bindingDigestB64u,`bindingDigestB64u`),ciphertextDigestB64u:ce(t.ciphertextDigestB64u,`ciphertextDigestB64u`),sealedAtMs:bt(t.sealedAtMs,`sealedAtMs`)}}function gt(e){switch(_t(e,[`kind`],`targetFactor`).kind){case`passkey_prf`:return{kind:`passkey_prf`};case`email_otp`:return{kind:`email_otp`};default:throw Error(`targetFactor.kind is unsupported`)}}function _t(e,t,n){let r=f(e,n);p(r,t,n);for(let e of t)if(r[e]===void 0)throw Error(`${n}.${e} is required`);return r}function vt(e,t){if(e!==`x25519-hkdf-sha256-chacha20poly1305-v1`)throw Error(`${t} must be ${st}`)}function yt(e,t){if(typeof e!=`number`||!Number.isSafeInteger(e)||e<0)throw Error(`${t} must be a non-negative safe integer`);return e}function bt(e,t){if(typeof e!=`number`||!Number.isSafeInteger(e)||e<=0)throw Error(`${t} must be a positive unix-millisecond timestamp`);return e}function R(e,t){if(typeof e!=`object`||!e||Array.isArray(e))throw Error(`${t} must be an object`);return e}function z(e,t){if(typeof e!=`string`)throw Error(`${t} must be a string`);let n=e.trim();if(!n)throw Error(`${t} must not be empty`);if(n!==e)throw Error(`${t} must not be padded with whitespace`);return n}function xt(e,n){let r=t(z(e,n));if(!r.ok)throw Error(`${n} is invalid: ${r.error.message}`);return r.value}function B(e,t,n){if(e!==t)throw Error(`${n} must be ${String(t)}`);return t}function St(e){let t=`WalletAddAuthMethodRegistrationOptions`,n=R(e,t);B(n.kind,`webauthn_add_auth_method_registration_v1`,`${t}.kind`);let r=R(n.user,`${t}.user`),i=R(n.authenticatorSelection,`${t}.authenticatorSelection`),a=R(R(R(n.extensions,`${t}.extensions`).prf,`${t}.extensions.prf`).eval,`${t}.extensions.prf.eval`);if(!Array.isArray(n.pubKeyCredParams)||n.pubKeyCredParams.length!==2)throw Error(`${t}.pubKeyCredParams must list exactly two algorithms`);let[o,s]=n.pubKeyCredParams;if(B(R(o,`${t}.pubKeyCredParams[0]`).type,`public-key`,`${t}.pubKeyCredParams[0].type`),B(R(o,`${t}.pubKeyCredParams[0]`).alg,-7,`${t}.pubKeyCredParams[0].alg`),B(R(s,`${t}.pubKeyCredParams[1]`).type,`public-key`,`${t}.pubKeyCredParams[1].type`),B(R(s,`${t}.pubKeyCredParams[1]`).alg,-257,`${t}.pubKeyCredParams[1].alg`),!Array.isArray(n.excludeCredentials))throw Error(`${t}.excludeCredentials must be an array`);let c=n.excludeCredentials.map((e,n)=>{let r=R(e,`${t}.excludeCredentials[${n}]`);return{type:B(r.type,`public-key`,`${t}.excludeCredentials[${n}].type`),id:z(r.id,`${t}.excludeCredentials[${n}].id`)}}),l=n.timeoutMs;if(typeof l!=`number`||!Number.isSafeInteger(l)||l<=0)throw Error(`${t}.timeoutMs must be a positive safe integer`);return{kind:`webauthn_add_auth_method_registration_v1`,challengeId:z(n.challengeId,`${t}.challengeId`),challengeB64u:z(n.challengeB64u,`${t}.challengeB64u`),rpId:xt(n.rpId,`${t}.rpId`),user:{idB64u:z(r.idB64u,`${t}.user.idB64u`),name:z(r.name,`${t}.user.name`),displayName:z(r.displayName,`${t}.user.displayName`)},pubKeyCredParams:[{type:`public-key`,alg:-7},{type:`public-key`,alg:-257}],authenticatorSelection:{residentKey:B(i.residentKey,`required`,`${t}.authenticatorSelection.residentKey`),userVerification:B(i.userVerification,`preferred`,`${t}.authenticatorSelection.userVerification`)},timeoutMs:l,attestation:B(n.attestation,`none`,`${t}.attestation`),extensions:{prf:{eval:{firstB64u:z(a.firstB64u,`${t}.extensions.prf.eval.firstB64u`),secondB64u:z(a.secondB64u,`${t}.extensions.prf.eval.secondB64u`)}}},excludeCredentials:c}}function Ct(e){let t=Mt(e);if(t.kind!==`committed_authority_packages_v1`)throw Error(`CommittedAuthorityPackagesV1.kind is invalid`);let n=Me(t.authority);if(!n.ok||n.value.state!==`pending_local_install`)throw Error(`CommittedAuthorityPackagesV1.authority is not pending`);let r=Xe(t.authMethod);if(!r||r.status!==`pending_local_install`)throw Error(`CommittedAuthorityPackagesV1.authMethod is not pending`);if(r.walletId!==n.value.walletId||r.walletAuthorityId!==n.value.authorityId)throw Error(`CommittedAuthorityPackagesV1 authority and auth method identities differ`);let i=Tt(t.signerPackages);wt(i,n.value.signerActivations);let a=t.ed25519ExportRootPackage===null?null:ht(t.ed25519ExportRootPackage);if(a&&(a.walletId!==n.value.walletId||a.revocationEpoch!==n.value.revocationEpoch||n.value.provenance.kind!==`device_link`||a.enrollmentId!==n.value.provenance.enrollmentId||a.linkSessionId!==n.value.provenance.linkSessionId||String(a.deviceId)!==String(n.value.principal.deviceId)))throw Error(`CommittedAuthorityPackagesV1 export root identity does not match authority`);return{kind:`committed_authority_packages_v1`,authority:n.value,authMethod:r,signerPackages:i,ed25519ExportRootPackage:a,packageSetDigestB64u:Et(t.packageSetDigestB64u)}}function wt(e,t){if(e.keyFamilies.length!==t.keyFamilies.length)throw Error(`CommittedAuthorityPackagesV1 signer families do not match authority`);for(let n=0;n<e.keyFamilies.length;n+=1)if(e.keyFamilies[n]!==t.keyFamilies[n])throw Error(`CommittedAuthorityPackagesV1 signer family order does not match authority`);if(e.keyFamilies.length===1&&e.keyFamilies[0]===`ed25519`){if(!t.ed25519||!e.ed25519)throw Error(`CommittedAuthorityPackagesV1 Ed25519 activation is missing`);if(!c(e.ed25519.materialActivation,t.ed25519.materialActivation))throw Error(`CommittedAuthorityPackagesV1 Ed25519 activation does not match authority`);return}if(e.keyFamilies.length===1&&e.keyFamilies[0]===`ecdsa_secp256k1`){if(!t.ecdsa||!e.ecdsa)throw Error(`CommittedAuthorityPackagesV1 ECDSA activation is missing`);if(!c(e.ecdsa.materialActivation,t.ecdsa.materialActivation))throw Error(`CommittedAuthorityPackagesV1 ECDSA activation does not match authority`);return}if(!t.ed25519||!t.ecdsa||!e.ed25519||!e.ecdsa)throw Error(`CommittedAuthorityPackagesV1 combined activations are incomplete`);if(!c(e.ed25519.materialActivation,t.ed25519.materialActivation)||!c(e.ecdsa.materialActivation,t.ecdsa.materialActivation))throw Error(`CommittedAuthorityPackagesV1 activation references do not match authority`)}function Tt(e){let t=Nt(e);if(t.kind!==`committed_signer_package_set_v1`)throw Error(`CommittedSignerPackageSetV1.kind is invalid`);let n=jt(t.keyFamilies);if(n.length===1&&n[0]===`ed25519`){if(!(`ed25519`in t))throw Error(`CommittedSignerPackageSetV1 fields are invalid`);return{kind:`committed_signer_package_set_v1`,keyFamilies:n,ed25519:Dt(t.ed25519)}}if(n.length===1&&n[0]===`ecdsa_secp256k1`){if(!(`ecdsa`in t))throw Error(`CommittedSignerPackageSetV1 fields are invalid`);return{kind:`committed_signer_package_set_v1`,keyFamilies:n,ecdsa:Ot(t.ecdsa)}}if(!(`ed25519`in t)||!(`ecdsa`in t))throw Error(`CommittedSignerPackageSetV1 fields are invalid`);let r=Dt(t.ed25519),i=Ot(t.ecdsa);if(r.materialActivation.activationId===i.materialActivation.activationId)throw Error(`CommittedSignerPackageSetV1 activation references must be distinct`);return{kind:`committed_signer_package_set_v1`,keyFamilies:n,ed25519:r,ecdsa:i}}function Et(e){return P(e)}function Dt(e){let t=Pt(e);if(t.kind!==`committed_ed25519_signer_package_v1`)throw Error(`CommittedEd25519SignerPackageV1.kind is invalid`);let n=At(t.materialActivation,`materialActivation`),r=Re(t.targetBinding),i=We(t.applicationBinding),a=Ie(t.activationReceipt);if(!c(n,Pe(a.material_activation)))throw Error(`CommittedEd25519SignerPackageV1 activation receipt does not match material`);if(!c(n,Pe(r.material_activation)))throw Error(`CommittedEd25519SignerPackageV1 target binding does not match material`);let o=kt(t.deriver_a_client_package,`deriver_a_client_package`,`deriver_a`),s=kt(t.deriver_b_client_package,`deriver_b_client_package`,`deriver_b`);if(!Be(a.transcript,o.transcript)||!Be(a.transcript,s.transcript))throw Error(`CommittedEd25519SignerPackageV1 receipt transcript does not match packages`);return{kind:`committed_ed25519_signer_package_v1`,materialActivation:n,targetBinding:r,applicationBinding:i,participantIds:Le(t.participantIds),activationReceipt:a,deriver_a_client_package:o,deriver_b_client_package:s}}function Ot(e){let t=Ft(e);if(t.kind!==`committed_ecdsa_signer_package_v1`)throw Error(`CommittedEcdsaSignerPackageV1.kind is invalid`);let n=At(t.materialActivation,`materialActivation`),r=Ge(t.activationReceipt),i=r.binding.target.activation;if(!c(n,i))throw Error(`CommittedEcdsaSignerPackageV1 receipt activation does not match material`);let a=He(t.encryptedTargetClientShare,`encryptedTargetClientShare`);if(a.recipientPublicKeyB64u!==r.binding.target.clientRecipientPublicKeyB64u)throw Error(`CommittedEcdsaSignerPackageV1 client share recipient does not match receipt`);return{kind:`committed_ecdsa_signer_package_v1`,materialActivation:n,encryptedTargetClientShare:a,activationReceipt:r}}function kt(e,t,n){let r=ze(e);if(!r.ok)throw Error(`${t} ${r.message}`);if(r.value.kind!==`activation_client`||r.value.deriver!==n)throw Error(`${t} must be an activation_client for ${n}`);return{kind:`activation_client`,deriver:n,session:r.value.session,transcript:r.value.transcript,encapsulated_key:r.value.encapsulated_key,ciphertext:r.value.ciphertext}}function At(e,t){let n=a(e);if(!n.ok)throw Error(`${t} ${n.error.message}`);return n.value}function jt(e){if(!Array.isArray(e))throw Error(`CommittedSignerPackageSetV1.keyFamilies must be an array`);if(e.length===1&&e[0]===`ed25519`)return[`ed25519`];if(e.length===1&&e[0]===`ecdsa_secp256k1`)return[`ecdsa_secp256k1`];if(e.length===2&&e[0]===`ed25519`&&e[1]===`ecdsa_secp256k1`)return[`ed25519`,`ecdsa_secp256k1`];throw Error(`CommittedSignerPackageSetV1.keyFamilies must use canonical family order`)}function Mt(e){let t=It(e);if(t===null)throw Error(`CommittedAuthorityPackagesV1 must be an object`);return V(t,[`kind`,`authority`,`authMethod`,`signerPackages`,`ed25519ExportRootPackage`,`packageSetDigestB64u`],`CommittedAuthorityPackagesV1`),{kind:Reflect.get(t,`kind`),authority:Reflect.get(t,`authority`),authMethod:Reflect.get(t,`authMethod`),signerPackages:Reflect.get(t,`signerPackages`),ed25519ExportRootPackage:Reflect.get(t,`ed25519ExportRootPackage`),packageSetDigestB64u:Reflect.get(t,`packageSetDigestB64u`)}}function Nt(e){let t=It(e);if(t===null)throw Error(`CommittedSignerPackageSetV1 must be an object`);let n=Object.keys(t),r=n.includes(`ed25519`),i=n.includes(`ecdsa`);return r&&i?(V(t,[`kind`,`keyFamilies`,`ed25519`,`ecdsa`],`CommittedSignerPackageSetV1`),{kind:Reflect.get(t,`kind`),keyFamilies:Reflect.get(t,`keyFamilies`),ed25519:Reflect.get(t,`ed25519`),ecdsa:Reflect.get(t,`ecdsa`)}):r?(V(t,[`kind`,`keyFamilies`,`ed25519`],`CommittedSignerPackageSetV1`),{kind:Reflect.get(t,`kind`),keyFamilies:Reflect.get(t,`keyFamilies`),ed25519:Reflect.get(t,`ed25519`)}):i?(V(t,[`kind`,`keyFamilies`,`ecdsa`],`CommittedSignerPackageSetV1`),{kind:Reflect.get(t,`kind`),keyFamilies:Reflect.get(t,`keyFamilies`),ecdsa:Reflect.get(t,`ecdsa`)}):(V(t,[`kind`,`keyFamilies`],`CommittedSignerPackageSetV1`),{kind:Reflect.get(t,`kind`),keyFamilies:Reflect.get(t,`keyFamilies`)})}function Pt(e){let t=It(e);if(t===null)throw Error(`CommittedEd25519SignerPackageV1 must be an object`);return V(t,[`kind`,`materialActivation`,`targetBinding`,`applicationBinding`,`participantIds`,`activationReceipt`,`deriver_a_client_package`,`deriver_b_client_package`],`CommittedEd25519SignerPackageV1`),{kind:Reflect.get(t,`kind`),materialActivation:Reflect.get(t,`materialActivation`),targetBinding:Reflect.get(t,`targetBinding`),applicationBinding:Reflect.get(t,`applicationBinding`),participantIds:Reflect.get(t,`participantIds`),activationReceipt:Reflect.get(t,`activationReceipt`),deriver_a_client_package:Reflect.get(t,`deriver_a_client_package`),deriver_b_client_package:Reflect.get(t,`deriver_b_client_package`)}}function Ft(e){let t=It(e);if(t===null)throw Error(`CommittedEcdsaSignerPackageV1 must be an object`);return V(t,[`kind`,`materialActivation`,`encryptedTargetClientShare`,`activationReceipt`],`CommittedEcdsaSignerPackageV1`),{kind:Reflect.get(t,`kind`),materialActivation:Reflect.get(t,`materialActivation`),encryptedTargetClientShare:Reflect.get(t,`encryptedTargetClientShare`),activationReceipt:Reflect.get(t,`activationReceipt`)}}function It(e){return typeof e==`object`&&e&&!Array.isArray(e)?e:null}function V(e,t,n){let r=new Set(t),i=Object.keys(e);if(i.length!==t.length)throw Error(`${n} contains unexpected fields`);for(let e of i)if(!r.has(e))throw Error(`${n} contains unexpected fields`);for(let r of t)if(!Object.prototype.hasOwnProperty.call(e,r))throw Error(`${n}.${r} is required`)}const Lt=[`version`,`purpose`,`linkSessionId`,`linkPublicKeyB64u`,`devicePublicKeyB64u`,`requestedPermission`,`targetFactor`,`issuedAtMs`,`expiresAtMs`];function Rt(...e){return(t,n)=>{if(!e.includes(t))throw Error(`${n} is unsupported`);return t}}function zt(e,t){if(typeof e!=`string`||!/^[0-9a-f]{64}$/.test(e))throw Error(`${t} must be 32 canonical lowercase hex bytes`);return e}function H(e,t){if(typeof e!=`string`||e.length===0||!/^[A-Za-z0-9_-]+$/.test(e))throw Error(`${t} must be canonical unpadded base64url`);try{let t=_(e);if(t.length!==32||g(t)!==e)throw Error(`non-canonical`)}catch{throw Error(`${t} must be a canonical 32-byte unpadded base64url key`)}return e}function U(e,t){if(typeof e!=`string`||e.length===0||!/^[A-Za-z0-9_-]+$/.test(e))throw Error(`${t} must be canonical unpadded base64url`);try{let t=_(e);if(t.length===0||g(t)!==e)throw Error(`non-canonical`)}catch{throw Error(`${t} must be canonical unpadded base64url`)}return e}function Bt(e,t,n){let r=U(e,n),i=_(r);try{if(i.length!==t)throw Error(`${n} must encode ${t} bytes`);return r}finally{i.fill(0)}}const W=BigInt(`0xffffffff00000001000000000000000000000000ffffffffffffffffffffffff`),Vt=W-3n,Ht=BigInt(`0x5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b`);function Ut(e){let t=0n;for(let n of e)t=t<<8n|BigInt(n);return t}function Wt(e){let t=Ut(e.subarray(1,33)),n=Ut(e.subarray(33,65));return t>=W||n>=W?!1:n*n%W===(t*t*t%W+Vt*t%W+Ht)%W}function Gt(e,t){let n=Bt(e,65,t),r=_(n);try{if(r[0]!==4)throw Error(`${t} must be an uncompressed SEC1 P-256 point`);if(!Wt(r))throw Error(`${t} must be an on-curve P-256 point`);return n}finally{r.fill(0)}}function Kt(e){return H(e,`LinkDevicePublicKeyB64u`)}function qt(e,t){return _e(U(e,t),t)}function Jt(e,t){if(e!==`ed25519`&&e!==`ecdsa_secp256k1`)throw Error(`${t} must identify a supported key family`);return e}function G(e,t,n){if(t<=e)throw Error(`${n}.expiresAtMs must be after issuedAtMs`)}function Yt(e){return{kind:e.kind,permissions:[...ie(e)]}}function Xt(e){let t={version:e.version,purpose:e.purpose,linkSessionId:e.linkSessionId,linkPublicKeyB64u:e.linkPublicKeyB64u,devicePublicKeyB64u:e.devicePublicKeyB64u,requestedPermission:Yt(e.requestedPermission),targetFactor:e.targetFactor,issuedAtMs:e.issuedAtMs,expiresAtMs:e.expiresAtMs};return e.targetFactor.kind===`email_otp`?{...t,targetEmail:e.targetEmail}:t}function K(e,t){switch(m(e,[`kind`],t).kind){case`passkey_prf`:return{kind:`passkey_prf`};case`email_otp`:return{kind:`email_otp`};default:throw Error(`${t}.kind is unsupported`)}}function Zt(){return b({kind:y(`passkey_prf`)})}function Qt(){return b({kind:y(`email_otp`)})}function $t(){return b({kind:y(`existing_enrollment`)})}function en(){return b({kind:y(`new_enrollment`)})}function tn(){return v(`kind`,[$t(),en()])}function nn(e,t){return tn()(e,t)}function rn(){return b({enrollmentSealKeyVersion:k,clientUnlockPublicKeyB64u:k,unlockKeyVersion:k,serverSealedFactorCiphertextB64u:k})}function an(e,t){let n=f(e,t);if(n.kind===`passkey_prf`)return m(n,[`kind`],t),{kind:`passkey_prf`};if(n.kind===`email_otp`){let e=nn(n.enrollment,`${t}.enrollment`),r=E(n.targetEmail,`${t}.targetEmail`);return e.kind===`existing_enrollment`?{kind:`email_otp`,targetEmail:r,enrollment:e,baseWalletAuthMethodId:C(m(n,[`kind`,`targetEmail`,`enrollment`,`baseWalletAuthMethodId`],t).baseWalletAuthMethodId,`${t}.baseWalletAuthMethodId`)}:(m(n,[`kind`,`targetEmail`,`enrollment`],t),{kind:`email_otp`,targetEmail:r,enrollment:e})}throw Error(`${t}.kind is unsupported`)}function on(e){if(e.version!==`v5`)throw Error(`QrLinkedDeviceSessionPayloadV5.version is invalid`);if(e.purpose!==`linked_device_lane_creation`)throw Error(`QrLinkedDeviceSessionPayloadV5.purpose is invalid`);let t=S(e.issuedAtMs,`QrLinkedDeviceSessionPayloadV5.issuedAtMs`),n=S(e.expiresAtMs,`QrLinkedDeviceSessionPayloadV5.expiresAtMs`);G(t,n,`QrLinkedDeviceSessionPayloadV5`);let r={version:`v5`,purpose:`linked_device_lane_creation`,linkSessionId:M(e.linkSessionId,`QrLinkedDeviceSessionPayloadV5.linkSessionId`),linkPublicKeyB64u:H(e.linkPublicKeyB64u,`QrLinkedDeviceSessionPayloadV5.linkPublicKeyB64u`),devicePublicKeyB64u:H(e.devicePublicKeyB64u,`QrLinkedDeviceSessionPayloadV5.devicePublicKeyB64u`),requestedPermission:ge(e.requestedPermission,`QrLinkedDeviceSessionPayloadV5.requestedPermission`),targetFactor:K(e.targetFactor,`QrLinkedDeviceSessionPayloadV5.targetFactor`),issuedAtMs:t,expiresAtMs:n};return r.targetFactor.kind===`email_otp`?{...r,targetFactor:{kind:`email_otp`},targetEmail:E(e.targetEmail,`QrLinkedDeviceSessionPayloadV5.targetEmail`)}:{...r,targetFactor:{kind:`passkey_prf`}}}function sn(e){let t=f(e,`QrLinkedDeviceSessionPayloadV5`);return on(m(t,K(t.targetFactor,`QrLinkedDeviceSessionPayloadV5.targetFactor`).kind===`email_otp`?[...Lt,`targetEmail`]:Lt,`QrLinkedDeviceSessionPayloadV5`))}function cn(e){let t=on(Xt(e)),n={v:5,s:t.linkSessionId,l:t.linkPublicKeyB64u,d:t.devicePublicKeyB64u,a:Yt(t.requestedPermission),f:t.targetFactor.kind===`passkey_prf`?`p`:`e`,i:t.issuedAtMs,e:t.expiresAtMs};return t.targetFactor.kind===`email_otp`?JSON.stringify({...n,t:t.targetEmail}):JSON.stringify(n)}function ln(){return b({payload:sn,requestedAtMs:S})}function un(e){return ln()(e,`LinkedDeviceOwnerAuthorizationRequestV1`)}function dn(){let e=e=>b({state:y(e),deviceId:he});return[b({state:y(`displaying_qr`)}),e(`claimed`),e(`awaiting_target_factor`),e(`awaiting_source_contribution`),e(`provisioning`),b({state:y(`authority_pending_local_install`),deviceId:he,authorityId:j,packageSetDigestB64u:w}),b({state:y(`active`),deviceId:he,authorityId:j,activatedAtMs:S}),b({state:y(`failed_before_commit`),error:pn}),b({state:y(`cancelled`),cancelledAtMs:S}),b({state:y(`expired`),expiredAtMs:S})]}function fn(e){let t=f(e,`LinkSessionStateV1`).state;if(typeof t!=`string`)throw Error(`LinkSessionStateV1.state is invalid`);let n=dn().find(e=>e.shape.state.literals.includes(t));if(!n)throw Error(`LinkSessionStateV1.state ${t} is unsupported`);return n(e,`LinkSessionStateV1.${t}`)}function pn(e){let t=m(e,[`kind`,`reason`],`LinkPrecommitFailureV1`);if(t.kind!==`invalid_input`&&t.kind!==`unauthorized_source`&&t.kind!==`revoked_source`&&t.kind!==`permission_attenuation_failed`&&t.kind!==`target_factor_failed`&&t.kind!==`expired_session`&&t.kind!==`cancelled_session`&&t.kind!==`claim_conflict`&&t.kind!==`package_preparation_failed`)throw Error(`LinkPrecommitFailureV1.kind is invalid`);return{kind:t.kind,reason:k(t.reason,`LinkPrecommitFailureV1.reason`)}}function mn(){return b({kind:y(`linked_device_session_projection_v1`),linkSessionId:M,qrPayload:sn,revision:D,createdAtMs:S,updatedAtMs:S,state:fn})}function hn(e){return mn()(e,`LinkSessionProjectionV1`)}function gn(){return b({kind:y(`linked_device_session_event_v1`),linkSessionId:M,state:fn,emittedAtMs:S})}function _n(e){return gn()(e,`LinkSessionTransportEventV1`)}function vn(){return v(`outcome`,[b({outcome:y(`pending`),state:bn}),b({outcome:y(`replayed`),replay:b({state:()=>`pending`,session:bn})})])}function yn(e){return vn()(e,`LinkedDeviceApprovalResultV1`)}function bn(e){let t=fn(e);switch(t.state){case`awaiting_target_factor`:case`awaiting_source_contribution`:case`provisioning`:case`authority_pending_local_install`:return t;default:throw Error(`LinkedDeviceApprovalResultV1 state is not pending`)}}function xn(){return b({kind:y(`linked_device_session_claim_v1`),linkSessionId:M,walletId:x,enrollmentId:O,deviceId:T,devicePublicKeyB64u:H,targetFactor:K,sessionRevision:S,claimedAtMs:S,claimExpiresAtMs:S},(e,t)=>G(e.claimedAtMs,e.claimExpiresAtMs,t))}function Sn(e){return xn()(e,`LinkedDeviceSessionClaimV1`)}function Cn(){return b({kind:y(`wallet_session`),walletSessionId:fe,authorizationId:ye})}function wn(e,t=`ownerAuthorization`){if(f(e,t).kind!==`wallet_session`)throw Error(`${t}.kind is unsupported`);return Cn()(e,t)}function Tn(){return{kind:y(`linked_device_approval_v1`),linkSessionId:M,walletId:x,enrollmentId:O,deviceId:T,linkPublicKeyB64u:H,devicePublicKeyB64u:H,permission:ge,targetFactor:an,ownerAuthorization:wn,approvedAtMs:S,expiresAtMs:S}}function En(e,t){G(e.approvedAtMs,e.expiresAtMs,t)}function Dn(){return b(Tn(),En)}function On(){return b({...Tn(),sourceContribution:Ve},En)}function kn(e){let t=f(e,`LinkedDeviceApprovalV1`);return(t.sourceContribution===void 0?Dn():On())(t,`LinkedDeviceApprovalV1`)}function An(){return b({kind:y(`linked_device_approval_delivery_v1`),approval:kn})}function jn(e){return An()(e,`LinkedDeviceApprovalDeliveryV1`)}function Mn(){return{kind:y(`linked_device_target_preparation_v1`),linkSessionId:M,walletId:x,enrollmentId:O,deviceId:T,deliveryRecipientPublicKey65B64u:Gt,walletAuthMethodId:C,ed25519ExportRoot:de(Kn()),ordinarySignerMaterialRecipientRequirements:Yn,issuedAtMs:S,expiresAtMs:S}}function Nn(e,t){if(e.expiresAtMs<=e.issuedAtMs)throw Error(`${t}.expiresAtMs must follow issuedAtMs`)}function Pn(){return b({...Mn(),targetFactor:Zt(),passkeyCreationOptions:Gn,passkeyConfigurationDigestB64u:w},(e,t)=>{if(Nn(e,t),e.passkeyCreationOptions.walletAuthMethodId!==e.walletAuthMethodId)throw Error(`${t}.passkeyCreationOptions.walletAuthMethodId must match the preparation`)})}function Fn(){return b({...Mn(),targetFactor:Qt(),targetEmail:E,enrollment:$t(),baseWalletAuthMethodId:C},Nn)}function In(){return b({...Mn(),targetFactor:Qt(),targetEmail:E,enrollment:en()},Nn)}function Ln(e){let t=`LinkedDeviceTargetPreparationV1`,n=f(e,t);return K(n.targetFactor,`${t}.targetFactor`).kind===`passkey_prf`?Pn()(n,t):(nn(n.enrollment,`${t}.enrollment`).kind===`new_enrollment`?In():Fn())(n,t)}function Rn(){return b({kind:y(`linked_device_target_preparation_request_v1`),linkSessionId:M,deliveryRecipientPublicKey65B64u:Gt})}function zn(e){return Rn()(e,`LinkedDeviceTargetPreparationRequestV1`)}function Bn(){return b({baseWalletAuthMethodId:C,maskedEmailHint:(e,t)=>{if(typeof e!=`string`||e.length===0)throw Error(`${t} is invalid`);return e}})}function Vn(){let e=Bn(),t=t=>e(t,`LinkedDeviceEmailOtpBaseFactorChoiceV1`);return{selected:b({kind:y(`selected`),choice:t}),selection_required:b({kind:y(`selection_required`),choices:(e,n)=>{if(!Array.isArray(e)||e.length===0)throw Error(`${n} must not be empty`);let r=e.map(t);return[r[0],...r.slice(1)]}}),unavailable:b({kind:y(`unavailable`),reason:Rt(`no_active_email_otp_base_factor`)})}}function Hn(e){let t=`LinkedDeviceEmailOtpBaseFactorResolutionV1`,n=f(e,t),r=Vn();switch(n.kind){case`selected`:case`selection_required`:case`unavailable`:return r[n.kind](n,t);default:throw Error(`${t}.kind is unsupported`)}}function Un(){return b({revision:S,resolution:Hn})}function Wn(e){return Un()(e,`LinkedDeviceEmailOtpBaseFactorResolutionResultV1`)}function Gn(e,t){let n=m(e,[`kind`,`walletAuthMethodId`,`challengeId`,`challengeB64u`,`rpId`,`user`,`pubKeyCredParams`,`authenticatorSelection`,`timeoutMs`,`attestation`,`extensions`,`excludeCredentials`],t),r=C(n.walletAuthMethodId,`${t}.walletAuthMethodId`);if(m(n.user,[`idB64u`,`name`,`displayName`],`${t}.user`),m(n.authenticatorSelection,[`residentKey`,`userVerification`],`${t}.authenticatorSelection`),m(m(m(n.extensions,[`prf`],`${t}.extensions`).prf,[`eval`],`${t}.extensions.prf`).eval,[`firstB64u`,`secondB64u`],`${t}.extensions.prf.eval`),!Array.isArray(n.pubKeyCredParams))throw Error(`${t}.pubKeyCredParams must be an array`);if(n.pubKeyCredParams.forEach((e,n)=>{m(e,[`type`,`alg`],`${t}.pubKeyCredParams[${n}]`)}),!Array.isArray(n.excludeCredentials))throw Error(`${t}.excludeCredentials must be an array`);n.excludeCredentials.forEach((e,n)=>{m(e,[`type`,`id`],`${t}.excludeCredentials[${n}]`)});let i=St(n);return{kind:i.kind,walletAuthMethodId:r,challengeId:i.challengeId,challengeB64u:i.challengeB64u,rpId:i.rpId,user:i.user,pubKeyCredParams:i.pubKeyCredParams,authenticatorSelection:i.authenticatorSelection,timeoutMs:i.timeoutMs,attestation:i.attestation,extensions:i.extensions,excludeCredentials:i.excludeCredentials}}function Kn(){return b({kind:y(`linked_device_ed25519_export_root_preparation_v1`),walletKeyId:ue,applicationBindingDigestB64u:w,registeredPublicKeyB64u:oe,revocationEpoch:D})}function qn(e,t,n){if(!Array.isArray(e)||e.length===0||e.length>2)throw Error(`${n} must contain one or two entries`);let r=e.map((e,r)=>t(e,`${n}[${r}]`));if(new Set(r.map(e=>e.keyFamily)).size!==r.length)throw Error(`${n} repeats a key family`);if(new Set(r.map(e=>String(e.walletKeyId))).size!==r.length)throw Error(`${n} repeats a wallet key`);if(r.length===2&&(r[0]?.keyFamily!==`ed25519`||r[1]?.keyFamily!==`ecdsa_secp256k1`))throw Error(`${n} must be ordered Ed25519 then ECDSA`);return r}function Jn(){return b({kind:y(`ordinary_signer_material_recipient_requirement_v1`),keyFamily:Jt,walletKeyId:ue})}function Yn(e){let t=qn(e,Jn(),`LinkedDeviceTargetPreparationV1.ordinarySignerMaterialRecipientRequirements`),n=t[0];if(!n)throw Error(`ordinary signer material recipient requirements are empty`);return[n,...t.slice(1)]}const Xn=y(`ble`,`cable`,`hybrid`,`internal`,`nfc`,`smart-card`,`usb`);function Zn(e,t){let n=te(e,t).map((e,n)=>Xn(e,`${t}[${n}]`));if(new Set(n).size!==n.length)throw Error(`${t} contains duplicates`);return n}function Qn(){return b({kind:y(`linked_device_webauthn_registration_v1`),credentialIdB64u:qt,authenticatorAttachment:de(y(`platform`,`cross-platform`)),clientDataJsonB64u:U,attestationObjectB64u:U,transports:Zn})}function $n(){let e=e=>(t,n)=>{if(t!==e)throw Error(`${n} does not match its kind`);return e};return v(`kind`,[b({kind:y(`ordinary_ed25519_signer_material_recipient_request_v1`),keyFamily:e(`ed25519`),walletKeyId:ue,recipientPublicKeyB64u:(e,t)=>Bt(e,32,t)}),b({kind:y(`ordinary_ecdsa_signer_material_recipient_request_v1`),keyFamily:e(`ecdsa_secp256k1`),walletKeyId:ue,clientEphemeralPublicKey:Fe})])}function er(e){let t=qn(e,$n(),`LinkedDeviceTargetCredentialRegistrationV1.ordinarySignerMaterialRecipientRequests`),n=t[0];if(!n)throw Error(`ordinary signer material recipient requests are empty`);return[n,...t.slice(1)]}function tr(){return{kind:y(`linked_device_target_credential_registration_v1`),linkSessionId:M,walletId:x,enrollmentId:O,deviceId:T,walletAuthMethodId:C}}function nr(){return b({...tr(),targetFactor:Zt(),targetPreparationDigestB64u:w,ordinarySignerMaterialRecipientRequests:er,webauthnRegistration:Qn(),registeredAtMs:S})}function rr(){return b({...tr(),targetFactor:Qt(),targetEmail:E,targetPreparationDigestB64u:w,ordinarySignerMaterialRecipientRequests:er,emailOtpVerificationGrant:xr,registeredAtMs:S})}function ir(){return b({...tr(),targetFactor:Qt(),targetEmail:E,targetPreparationDigestB64u:w,ordinarySignerMaterialRecipientRequests:er,emailOtpVerificationGrant:xr,emailOtpEnrollment:rn(),registeredAtMs:S})}function ar(e){let t=`LinkedDeviceTargetCredentialRegistrationV1`,n=f(e,t);return K(n.targetFactor,`${t}.targetFactor`).kind===`passkey_prf`?nr()(n,t):(xr(n.emailOtpVerificationGrant).enrollment.kind===`new_enrollment`?ir():rr())(n,t)}function or(){return b({kind:y(`linked_device_target_credential_registration_result_v1`),outcome:y(`applied`,`replayed`),linkSessionId:M,walletId:x,enrollmentId:O,deviceId:T,walletAuthMethodId:C,targetPreparationDigestB64u:w,targetFactor:fr,ordinarySignerMaterialPreparations:Ue,ordinarySignerMaterialRecipientRequests:er,keyManifestDigestB64u:w},(e,t)=>{let{authMethod:n}=e.targetFactor;if(n.walletAuthMethodId!==e.walletAuthMethodId||n.walletId!==e.walletId)throw Error(`${t} target identity differs`)})}function sr(e){return or()(e,`LinkedDeviceTargetCredentialRegistrationResultV1`)}function cr(e,t){if(e.verifiedAtMs<e.authMethod.createdAtMs)throw Error(`${t}.verifiedAtMs precedes authMethod.createdAtMs`)}function lr(){return b({kind:y(`verified_passkey_target_v1`),authMethod:mr,verificationDigestB64u:w,verifiedAtMs:S},cr)}function ur(){return b({kind:y(`verified_email_otp_target_v1`),authMethod:gr,targetEmail:E,enrollment:$t(),baseWalletAuthMethodId:C,providerUserId:k,verificationDigestB64u:w,verifiedAtMs:S},cr)}function dr(){return b({kind:y(`verified_email_otp_target_v1`),authMethod:gr,targetEmail:E,enrollment:en(),providerUserId:k,verificationDigestB64u:w,verifiedAtMs:S},cr)}function fr(e,t){let n=f(e,t);if(n.kind===`verified_passkey_target_v1`)return lr()(n,t);if(n.kind!==`verified_email_otp_target_v1`)throw Error(`${t}.kind is invalid`);return(nn(n.enrollment,`${t}.enrollment`).kind===`existing_enrollment`?ur():dr())(n,t)}function pr(){return b({walletAuthMethodId:C,walletId:x,createdAtMs:S,kind:y(`passkey`),rpId:ve,credentialIdB64u:_e,credentialPublicKeyB64u:U,counter:D})}function mr(e,t){return pr()(e,t)}function hr(){return b({walletAuthMethodId:C,walletId:x,createdAtMs:S,kind:y(`email_otp`),emailHashHex:zt,registrationAuthorityId:k})}function gr(e,t){return hr()(e,t)}function _r(e){return{kind:y(`linked_device_email_otp_verification_grant_v1`),grantId:k,grantToken:k,challengeId:k,linkSessionId:M,walletId:x,enrollmentId:O,deviceId:T,targetPreparationDigestB64u:w,targetEmail:E,enrollment:e,emailHashHex:zt,registrationAuthorityId:k,providerUserId:k,authorityDigestB64u:w,issuedAtMs:S,expiresAtMs:S}}function vr(e,t){G(e.issuedAtMs,e.expiresAtMs,t)}function yr(){return b({..._r($t()),baseWalletAuthMethodId:C},vr)}function br(){return b(_r(en()),vr)}function xr(e){let t=`LinkedDeviceEmailOtpVerificationGrantV1`,n=f(e,t);return(nn(n.enrollment,`${t}.enrollment`).kind===`new_enrollment`?br():yr())(n,t)}function Sr(){return b({kind:y(`email_otp_factor_release_v1`),challengeId:k,enrollmentId:k,enrollmentSealKeyVersion:k,serverEphemeralPublicKey65B64u:Gt,nonce12B64u:(e,t)=>Bt(e,12,t),ciphertextB64u:U})}function Cr(e){return Sr()(e,`LinkedDeviceEmailOtpFactorReleaseEnvelopeV1`)}function wr(){return b({kind:y(`linked_device_email_otp_challenge_start_request_v1`),linkSessionId:M,workerEphemeralPublicKey65B64u:Gt})}function Tr(e){return wr()(e,`LinkedDeviceEmailOtpChallengeStartRequestV1`)}function Er(){return b({kind:y(`linked_device_email_otp_challenge_resend_request_v1`),linkSessionId:M,challengeId:k})}function Dr(e){return Er()(e,`LinkedDeviceEmailOtpChallengeResendRequestV1`)}function Or(){return b({kind:y(`linked_device_email_otp_challenge_verify_request_v1`),linkSessionId:M,challengeId:k,otpCode:(e,t)=>{if(typeof e!=`string`||!/^[0-9]{6,10}$/.test(e))throw Error(`${t} is invalid`);return e}})}function kr(e){return Or()(e,`LinkedDeviceEmailOtpChallengeVerifyRequestV1`)}function Ar(){return b({kind:y(`linked_device_email_otp_challenge_result_v1`),challengeId:k,maskedEmailHint:k,expiresAtMs:S,resendAvailableAtMs:S})}function jr(e){return Ar()(e,`LinkedDeviceEmailOtpChallengeResultV1`)}function Mr(e){let t=m(e,[`kind`,`verificationGrant`,`factorRelease`],`LinkedDeviceEmailOtpVerificationResultV1`);if(t.kind!==`linked_device_email_otp_verification_result_v1`)throw Error(`LinkedDeviceEmailOtpVerificationResultV1.kind is invalid`);let n=xr(t.verificationGrant);if(Nr(n)){if(t.factorRelease!==null)throw Error(`new linked-device Email OTP enrollment cannot carry a factor release`);return{kind:`linked_device_email_otp_verification_result_v1`,verificationGrant:n,factorRelease:null}}let r=Cr(t.factorRelease);if(r.challengeId!==n.challengeId)throw Error(`LinkedDeviceEmailOtpVerificationResultV1 challenge binding changed`);return{kind:`linked_device_email_otp_verification_result_v1`,verificationGrant:n,factorRelease:r}}function Nr(e){return e.enrollment.kind===`new_enrollment`}function Pr(e){let t=S(e.issuedAtMs,`QrLinkedDeviceSessionPayloadV5.issuedAtMs`),n=S(e.expiresAtMs,`QrLinkedDeviceSessionPayloadV5.expiresAtMs`);G(t,n,`QrLinkedDeviceSessionPayloadV5`);let r=K(e.targetFactor,`QrLinkedDeviceSessionPayloadV5.targetFactor`);if(r.kind===`passkey_prf`)return{version:`v5`,purpose:`linked_device_lane_creation`,linkSessionId:e.linkSessionId,linkPublicKeyB64u:e.linkPublicKeyB64u,devicePublicKeyB64u:e.devicePublicKeyB64u,requestedPermission:ge(Yt(e.requestedPermission),`QrLinkedDeviceSessionPayloadV5.requestedPermission`),targetFactor:r,issuedAtMs:t,expiresAtMs:n};if(e.targetEmail===void 0)throw Error(`QrLinkedDeviceSessionPayloadV5.targetEmail is required for Email OTP`);return{version:`v5`,purpose:`linked_device_lane_creation`,linkSessionId:e.linkSessionId,linkPublicKeyB64u:e.linkPublicKeyB64u,devicePublicKeyB64u:e.devicePublicKeyB64u,requestedPermission:ge(Yt(e.requestedPermission),`QrLinkedDeviceSessionPayloadV5.requestedPermission`),targetFactor:r,targetEmail:E(e.targetEmail,`QrLinkedDeviceSessionPayloadV5.targetEmail`),issuedAtMs:t,expiresAtMs:n}}function Fr(e){return{kind:`linked_device_session_claim_request_v1`,payload:e}}function Ir(e,t,n){let r=S(e,`${n}.approvedAtMs`),i=S(t,`${n}.expiresAtMs`);return G(r,i,n),{approvedAtMs:r,expiresAtMs:i}}function Lr(e){let t=Ir(e.approvedAtMs,e.expiresAtMs,`LinkedDeviceApprovalV1`);return kn({kind:`linked_device_approval_v1`,...e,...t})}function Rr(e){return ar({kind:`linked_device_target_credential_registration_v1`,...e})}function zr(e){return{kind:`linked_device_session_cancel_unclaimed_request_v1`,linkSessionId:e.linkSessionId,reason:`user_cancelled`,requestedAtMs:S(e.requestedAtMs,`LinkedDeviceSessionCancelUnclaimedRequestV1.requestedAtMs`)}}function Br(e){return{kind:`linked_device_session_cancel_claimed_request_v1`,...e,requestedAtMs:S(e.requestedAtMs,`LinkedDeviceSessionCancelClaimedRequestV1.requestedAtMs`)}}const Vr=[`chrome`,`safari`,`firefox`,`edge`,`other`],Hr=[`macos`,`ios`,`windows`,`android`,`linux`,`other`];function Ur(e){return typeof e==`string`&&Vr.some(t=>t===e)}function Wr(e){return typeof e==`string`&&Hr.some(t=>t===e)}function Gr(e){if(!e||typeof e!=`object`||Array.isArray(e))return null;let t=e,n=typeof t.label==`string`?t.label.trim():``;if(!n||!Ur(t.browser)||!Wr(t.os)||typeof t.synced!=`boolean`||!Array.isArray(t.transports))return null;let r=t.transports.map(e=>typeof e==`string`?e.trim():``).filter(e=>e.length>0),i=typeof t.provider==`string`?t.provider.trim():``,a=typeof t.providerLabel==`string`?t.providerLabel.trim():``;return{label:n,browser:t.browser,os:t.os,synced:t.synced,transports:r,...i?{provider:i}:{},...a?{providerLabel:a}:{}}}function Kr(e){return(t,n)=>{if(!Array.isArray(t))throw Error(`${n} is invalid`);return t.map((t,r)=>e(t,`${n}[${r}]`))}}function qr(e,t){let n=C(e,t);if(n.startsWith(`wallet-authority:`)||n.startsWith(`authority:`))throw Error(`${t} must identify a WalletAuthMethodId`);return n}function Jr(e,t){let n=D(e,t);if(n<1)throw Error(`${t} must be a positive safe integer`);return n}function Yr(e,t){let n=Gr(e);if(!n)throw Error(`${t} is invalid`);return n}function Xr(){return v(`kind`,[b({kind:y(`passkey`),walletAuthMethodId:C,credentialIdB64u:_e,device:Yr}),b({kind:y(`email_otp`),walletAuthMethodId:C,email:E})])}function Zr(e,t){return Xr()(e,t)}function Qr(){return b({deviceId:T,enrollmentId:O,walletId:x,credential:Zr,permission:ge,keyManifestDigestB64u:w,coveredWalletKeys:Kr(ue),state:y(`provisioning`,`active`,`suspended`,`expired`,`revoked`),createdAtMs:S,lastActivityAtMs:S,revocationEpoch:D})}function $r(e){return Qr()(e,`LinkedDeviceSummaryV1`)}function ei(){return b({kind:y(`linked_device_list_request_v1`),walletId:x,limit:Jr,cursor:pe})}function ti(e){return ei()(e,`LinkedDeviceListRequestV1`)}function ni(){return b({walletId:x,walletAuthorityId:j,credential:Zr,createdAtMs:S,lastActivityAtMs:S})}function ri(){let e=ni();return b({devices:Kr($r),ownerDevices:Kr(t=>e(t,`OwnerDeviceSummaryV1`)),nextCursor:pe})}function ii(e){return ri()(e,`LinkedDeviceListResultV1`)}function ai(){return b({kind:y(`linked_device_revoke_request_v1`),walletId:x,walletAuthMethodId:qr,requestedAtMs:S})}function oi(e){return ai()(e,`LinkedDeviceRevokeRequestV1`)}function si(){return b({kind:y(`not_found`,`conflict`,`unauthorized`)})}function ci(){return b({kind:y(`revoked`),walletAuthMethodId:qr,authorityId:j,revocationEpoch:D})}function li(e){let t=f(e,`LinkedDeviceRevokeResultV1`);return(t.kind===`not_found`||t.kind===`conflict`||t.kind===`unauthorized`?si():ci())(t,`LinkedDeviceRevokeResultV1`)}function ui(e){return d({domain:`seams/linked-device/wallet-session-credential-delivery-aad/v1`,aad:e})}function di(e){let t=vi(e,[`kind`,`namespace`,`orgId`,`projectId`,`envId`,`tenantId`,`principalId`],`LinkedDeviceWalletSessionCredentialDeliveryBindingV1`);if(t.kind!==`linked_device_wallet_session_credential_delivery_binding_v1`)throw Error(`LinkedDeviceWalletSessionCredentialDeliveryBindingV1.kind is invalid`);return{kind:`linked_device_wallet_session_credential_delivery_binding_v1`,namespace:q(t.namespace,`namespace`),orgId:q(t.orgId,`orgId`),projectId:q(t.projectId,`projectId`),envId:q(t.envId,`envId`),tenantId:J(we(t.tenantId)),principalId:J(xe(t.principalId))}}async function fi(e){return N(ui(e))}async function pi(e){return N(d({domain:`seams/linked-device/wallet-session-credential-delivery-envelope/v1`,envelope:e}))}async function mi(e){if(await fi(e.aad)!==e.aadDigestB64u)throw Error(`linked-device Wallet Session credential delivery AAD digest is invalid`);if(await pi(e.envelope)!==e.envelopeDigestB64u)throw Error(`linked-device Wallet Session credential delivery envelope digest is invalid`);if(await N(d({domain:`seams/linked-device/delivery-recipient/v1`,recipientPublicKey65B64u:e.aad.recipientPublicKey65B64u}))!==e.recipientBindingDigestB64u)throw Error(`linked-device Wallet Session credential delivery recipient binding is invalid`)}function hi(e){let t=vi(e,[`kind`,`aad`,`aadDigestB64u`,`recipientBindingDigestB64u`,`envelope`,`envelopeDigestB64u`,`installationReceiptDigestB64u`],`LinkedDeviceWalletSessionCredentialDeliveryV1`);if(t.kind!==`linked_device_wallet_session_credential_delivery_v1`)throw Error(`LinkedDeviceWalletSessionCredentialDeliveryV1.kind is invalid`);return{kind:`linked_device_wallet_session_credential_delivery_v1`,aad:gi(t.aad),aadDigestB64u:P(t.aadDigestB64u),recipientBindingDigestB64u:P(t.recipientBindingDigestB64u),envelope:_i(t.envelope),envelopeDigestB64u:P(t.envelopeDigestB64u),installationReceiptDigestB64u:P(t.installationReceiptDigestB64u)}}function gi(t){let i=vi(t,[`kind`,`namespace`,`orgId`,`projectId`,`envId`,`tenantId`,`principalId`,`linkSessionId`,`walletId`,`authorityId`,`walletAuthMethodId`,`authorizationId`,`walletSessionId`,`quotaId`,`credentialDigestB64u`,`recipientPublicKey65B64u`,`issuedAtMs`,`expiresAtMs`],`LinkedDeviceWalletSessionCredentialDeliveryAadV1`);if(i.kind!==`linked_device_wallet_session_credential_delivery_aad_v1`)throw Error(`LinkedDeviceWalletSessionCredentialDeliveryAadV1.kind is invalid`);let a=yi(i.issuedAtMs,`issuedAtMs`),o=yi(i.expiresAtMs,`expiresAtMs`);if(o<=a)throw Error(`expiresAtMs must be after issuedAtMs`);return{kind:`linked_device_wallet_session_credential_delivery_aad_v1`,namespace:q(i.namespace,`namespace`),orgId:q(i.orgId,`orgId`),projectId:q(i.projectId,`projectId`),envId:q(i.envId,`envId`),tenantId:J(we(i.tenantId)),principalId:J(xe(i.principalId)),linkSessionId:J(s(i.linkSessionId)),walletId:J(n(i.walletId)),authorityId:J(e(i.authorityId)),walletAuthMethodId:J(r(i.walletAuthMethodId)),authorizationId:J(Ce(i.authorizationId)),walletSessionId:J(Se(i.walletSessionId)),quotaId:J(be(i.quotaId)),credentialDigestB64u:P(i.credentialDigestB64u),recipientPublicKey65B64u:xi(i.recipientPublicKey65B64u,65),issuedAtMs:a,expiresAtMs:o}}function _i(e){let t=vi(e,[`kind`,`algorithm`,`serverEphemeralPublicKey65B64u`,`nonce12B64u`,`ciphertextB64u`],`LinkedDeviceWalletSessionCredentialEnvelopeV1`);if(t.kind!==`linked_device_wallet_session_credential_envelope_v1`||t.algorithm!==`p256-ecdh-aes256gcm-v1`)throw Error(`LinkedDeviceWalletSessionCredentialEnvelopeV1 identity is invalid`);return{kind:`linked_device_wallet_session_credential_envelope_v1`,algorithm:`p256-ecdh-aes256gcm-v1`,serverEphemeralPublicKey65B64u:xi(t.serverEphemeralPublicKey65B64u,65),nonce12B64u:xi(t.nonce12B64u,12),ciphertextB64u:bi(t.ciphertextB64u)}}function vi(e,t,n){if(typeof e!=`object`||!e||Array.isArray(e))throw Error(`${n} must be an object`);let r=e,i=new Set(t);for(let e of Object.keys(r))if(!i.has(e))throw Error(`${n}.${e} is not supported`);for(let e of t)if(!(e in r))throw Error(`${n}.${e} is required`);return r}function q(e,t){if(typeof e!=`string`||e.length===0||e.trim()!==e)throw Error(`${t} is required`);return e}function yi(e,t){if(!Number.isSafeInteger(e)||Number(e)<=0)throw Error(`${t} is invalid`);return Number(e)}function bi(e){let t=q(e,`base64url`);if(g(_(t))!==t)throw Error(`base64url is not canonical`);return t}function xi(e,t){let n=bi(e),r=_(n);if(r.length!==t)throw Error(`base64url must contain ${t} bytes`);if(t===65&&r[0]!==4)throw Error(`P-256 public key is invalid`);return n}function J(e){if(!e.ok)throw Error(e.error.message);return e.value}function Si(e,t){let n=Ne(e);if(!n.ok)throw Error(`${t} ${n.error}`);return n.value}function Ci(){return b({kind:y(`local_authority_installation_receipt_v1`),authorityId:A(j),walletId:A(x),authMethodId:A(C),deviceId:A(he),packageSetDigestB64u:A(w),installedActivationRefs:Si,installedRecordSetDigestB64u:A(w),targetFactorVerificationDigestB64u:A(w),installedAtMs:A(S)})}function wi(e){return Ci()(e,`LocalAuthorityInstallationReceiptV1`)}function Ti(){return b({kind:y(`local_authority_activation_final_ack_v1`),linkSessionId:A(M),authorityId:A(j),packageSetDigestB64u:A(w),authorizationId:A(ye),walletSessionId:A(fe),credentialDigestB64u:A(w),installationReceiptDigestB64u:A(w),acknowledgedAtMs:A(S)})}function Ei(e){return Ti()(e,`LocalAuthorityActivationFinalAckV1`)}function Di(e){let t=f(e,`ActivateInstalledAuthorityResultV1`);switch(t.kind){case`active`:{p(t,[`kind`,`authority`,`authMethod`,`walletSession`,`deliveryBinding`,`sealedDelivery`],`ActivateInstalledAuthorityResultV1`);let e=Me(t.authority);if(!e.ok||e.value.state!==`active`)throw Error(`ActivateInstalledAuthorityResultV1.authority must be active`);let n=Xe(t.authMethod);if(!n||n.status!==`active`)throw Error(`ActivateInstalledAuthorityResultV1.authMethod must be active`);let r=me(t.walletSession),i=di(t.deliveryBinding),a=hi(t.sealedDelivery);if(e.value.walletId!==n.walletId||e.value.authorityId!==n.walletAuthorityId||r.walletId!==e.value.walletId||r.authorityId!==e.value.authorityId||r.authMethodId!==n.walletAuthMethodId||r.authorityDigestB64u!==e.value.authorityDigestB64u||r.authorityRevocationEpoch!==e.value.revocationEpoch||i.namespace!==a.aad.namespace||i.orgId!==a.aad.orgId||i.projectId!==a.aad.projectId||i.envId!==a.aad.envId||i.tenantId!==a.aad.tenantId||i.principalId!==a.aad.principalId||a.aad.walletId!==r.walletId||a.aad.authorityId!==r.authorityId||a.aad.walletAuthMethodId!==r.authMethodId||a.aad.authorizationId!==r.authorizationId||a.aad.quotaId!==r.quotaId||a.aad.issuedAtMs!==r.issuedAtMs||a.aad.expiresAtMs!==r.expiresAtMs)throw Error(`ActivateInstalledAuthorityResultV1 identities do not match`);return{kind:`active`,authority:e.value,authMethod:n,walletSession:r,deliveryBinding:i,sealedDelivery:a}}case`pending_local_install`:return p(t,[`kind`,`authorityId`,`reason`],`ActivateInstalledAuthorityResultV1`),{kind:`pending_local_install`,authorityId:j(t.authorityId,`authorityId`),reason:Oi()(t.reason,`ActivationRetryReasonV1`)};case`integrity_error`:return p(t,[`kind`,`reason`],`ActivateInstalledAuthorityResultV1`),{kind:`integrity_error`,reason:ki(t.reason)};default:throw Error(`ActivateInstalledAuthorityResultV1.kind is invalid`)}}function Oi(){return v(`kind`,[b({kind:y(`installation_receipt_not_found`)}),b({kind:y(`server_worker_activation_pending`)}),b({kind:y(`wallet_session_issuance_pending`)})])}function ki(e){let t=f(e,`LinkIntegrityFailureV1`);switch(t.kind){case`authority_id_mismatch`:return p(t,[`kind`,`expectedAuthorityId`,`actualAuthorityId`],`LinkIntegrityFailureV1`),{kind:`authority_id_mismatch`,expectedAuthorityId:j(t.expectedAuthorityId,`expectedAuthorityId`),actualAuthorityId:j(t.actualAuthorityId,`actualAuthorityId`)};case`package_set_digest_mismatch`:return p(t,[`kind`,`expectedPackageSetDigestB64u`,`actualPackageSetDigestB64u`],`LinkIntegrityFailureV1`),{kind:`package_set_digest_mismatch`,expectedPackageSetDigestB64u:w(t.expectedPackageSetDigestB64u,`expectedPackageSetDigestB64u`),actualPackageSetDigestB64u:w(t.actualPackageSetDigestB64u,`actualPackageSetDigestB64u`)};case`installation_receipt_mismatch`:if(p(t,[`kind`,`field`],`LinkIntegrityFailureV1`),t.field!==`walletId`&&t.field!==`authMethodId`&&t.field!==`deviceId`&&t.field!==`targetFactorVerificationDigestB64u`&&t.field!==`installedActivationRefs`)throw Error(`LinkIntegrityFailureV1.field is invalid`);return{kind:`installation_receipt_mismatch`,field:t.field};default:throw Error(`LinkIntegrityFailureV1.kind is invalid`)}}new TextEncoder;async function Ai(e){return N(e.token)}function ji(e){return d({domain:`seams/linked-device/local-authority-installation-receipt/v1`,receipt:e})}async function Mi(e){return N(ji(e))}function Ni(e,t){if(e===void 0)throw Error(`${t} is required`);return e}function Pi(e){return F(e.kind,`targetFactor.kind`)}function Fi(e){let t=e.pubKeyCredParams.map(e=>L([F(e.type,`passkeyCreationOptions.pubKeyCredParams.type`),F(String(e.alg),`passkeyCreationOptions.pubKeyCredParams.alg`)])),n=e.excludeCredentials.map(e=>L([F(e.type,`passkeyCreationOptions.excludeCredentials.type`),F(e.id,`passkeyCreationOptions.excludeCredentials.id`)]));return L([F(e.kind,`passkeyCreationOptions.kind`),F(e.walletAuthMethodId,`passkeyCreationOptions.walletAuthMethodId`),F(e.challengeId,`passkeyCreationOptions.challengeId`),F(e.challengeB64u,`passkeyCreationOptions.challengeB64u`),F(e.rpId,`passkeyCreationOptions.rpId`),F(e.user.idB64u,`passkeyCreationOptions.user.idB64u`),F(e.user.name,`passkeyCreationOptions.user.name`),F(e.user.displayName,`passkeyCreationOptions.user.displayName`),qe(t.length,`passkeyCreationOptions.pubKeyCredParams`),...t.map(e=>I(e,`passkeyCreationOptions.pubKeyCredParams.item`)),F(e.authenticatorSelection.residentKey,`passkeyCreationOptions.authenticatorSelection.residentKey`),F(e.authenticatorSelection.userVerification,`passkeyCreationOptions.authenticatorSelection.userVerification`),Ye(e.timeoutMs,`passkeyCreationOptions.timeoutMs`),F(e.attestation,`passkeyCreationOptions.attestation`),F(e.extensions.prf.eval.firstB64u,`passkeyCreationOptions.extensions.prf.eval.firstB64u`),F(e.extensions.prf.eval.secondB64u,`passkeyCreationOptions.extensions.prf.eval.secondB64u`),qe(n.length,`passkeyCreationOptions.excludeCredentials`),...n.map(e=>I(e,`passkeyCreationOptions.excludeCredentials.item`))])}function Ii(e){return L([F(e.kind,`recipientRequirement.kind`),F(e.keyFamily,`recipientRequirement.keyFamily`),F(e.walletKeyId,`recipientRequirement.walletKeyId`)])}function Li(e){return e===null?F(`none`,`ed25519ExportRoot.kind`):L([F(e.kind,`ed25519ExportRoot.kind`),F(e.walletKeyId,`ed25519ExportRoot.walletKeyId`),Je(e.applicationBindingDigestB64u,`ed25519ExportRoot.applicationBindingDigestB64u`),Ke(e.registeredPublicKeyB64u,`ed25519ExportRoot.registeredPublicKeyB64u`),Ye(e.revocationEpoch,`ed25519ExportRoot.revocationEpoch`)])}function Ri(e){let t=e.ordinarySignerMaterialRecipientRequirements.map(Ii),n=Bi(e)?e:void 0,r=n?.passkeyCreationOptions;if(e.targetFactor.kind===`passkey_prf`&&!r)throw Error(`passkey target preparation is missing creation options`);return L([F(`seams/linked-device/target-preparation/v1`,`domain`),F(e.kind,`kind`),F(e.linkSessionId,`linkSessionId`),F(e.walletId,`walletId`),F(e.enrollmentId,`enrollmentId`),F(e.deviceId,`deviceId`),I(Ke(e.deliveryRecipientPublicKey65B64u,`deliveryRecipientPublicKey65B64u`),`deliveryRecipientPublicKey65B64u`),F(e.walletAuthMethodId,`walletAuthMethodId`),I(Li(e.ed25519ExportRoot),`ed25519ExportRoot`),I(Pi(e.targetFactor),`targetFactor`),...r?[I(Fi(r),`passkeyCreationOptions`),Je(n.passkeyConfigurationDigestB64u,`passkeyConfigurationDigestB64u`)]:[],...zi(e),qe(t.length,`ordinarySignerMaterialRecipientRequirements`),...t.map(e=>I(e,`ordinarySignerMaterialRecipientRequirements.item`)),Ye(e.issuedAtMs,`issuedAtMs`),Ye(e.expiresAtMs,`expiresAtMs`)])}function zi(e){return Bi(e)?[]:[F(e.targetEmail,`targetEmail`),F(e.enrollment.kind,`enrollment.kind`),...e.enrollment.kind===`existing_enrollment`?[F(Ni(e.baseWalletAuthMethodId,`baseWalletAuthMethodId`),`baseWalletAuthMethodId`)]:[]]}function Bi(e){return e.targetFactor.kind===`passkey_prf`}async function Vi(e){return Te(Ri(e))}const Hi=`x-seams-linked-device-proof-v1`,Ui=6e4,Wi=6e4;async function Gi(e){return Te(Ki(e,32,`devicePublicKeyB64u`))}function Ki(e,t,n){if(typeof e!=`string`||e.length===0||!/^[A-Za-z0-9_-]+$/.test(e))throw Error(`${n} is invalid`);let r;try{r=_(e)}catch{throw Error(`${n} is invalid`)}if(r.length!==t||g(r)!==e)throw Error(`${n} is invalid`);return r}var qi=(e=>(e.Unknown=`Unknown`,e.Pending=`Pending`,e.Failure=`Failure`,e))(qi||{}),Ji=(e=>(e.NotStarted=`NotStarted`,e.Started=`Started`,e.Failure=`Failure`,e))(Ji||{});function Y(e,t){if(typeof e!=`object`||!e||Array.isArray(e))throw Error(`Invalid ${t}: expected an object`);return e}function X(e,t){if(typeof e!=`string`)throw Error(`Invalid ${t}: expected a string`);return e}function Yi(e,t){if(!Array.isArray(e))throw Error(`Invalid ${t}: expected a string array`);let n=[];for(let r of e){if(typeof r!=`string`)throw Error(`Invalid ${t}: expected a string array`);n.push(r)}return n}function Xi(e,t){if(typeof e!=`number`||!Number.isSafeInteger(e)||e<0)throw Error(`Invalid ${t}: expected a non-negative safe integer`);return e}function Zi(e,t){if(typeof e==`number`&&!Number.isSafeInteger(e))throw Error(`Invalid ${t}: expected a safe integer or decimal string`);if(typeof e!=`string`&&typeof e!=`number`||!/^\d+$/.test(String(e)))throw Error(`Invalid ${t}: expected an unsigned decimal integer`);return BigInt(e)}function Qi(e,t){return{block_height:Xi(e.block_height,`${t}.block_height`),block_hash:X(e.block_hash,`${t}.block_hash`)}}function $i(e){let t=Y(Y(e,`NEAR access key permission`).FunctionCall,`NEAR access key permission.FunctionCall`);return{FunctionCall:{allowance:X(t.allowance,`NEAR access key allowance`),receiver_id:X(t.receiver_id,`NEAR access key receiver_id`),method_names:Yi(t.method_names,`NEAR access key method_names`)}}}function ea(e){return e===`FullAccess`?e:$i(e)}function ta(e,t){return{...t,nonce:Zi(e.nonce,`NEAR access key nonce`),permission:ea(e.permission)}}function na(e){let t=Y(e,`NEAR access key response`);return ta(t,Qi(t,`NEAR access key response`))}function ra(e){let t=Y(e,`NEAR access key list response`),n=Qi(t,`NEAR access key list response`);if(!Array.isArray(t.keys))throw Error(`Invalid NEAR access key list response.keys: expected an array`);let r=[];for(let e of t.keys){let t=Y(e,`NEAR access key list entry`),i=Y(t.access_key,`NEAR access key list entry.access_key`);r.push({public_key:X(t.public_key,`NEAR access key list entry.public_key`),access_key:ta(i,n)})}return{...n,keys:r}}function ia(e){let t=Y(e,`NEAR account response`);return{...Qi(t,`NEAR account response`),amount:Zi(t.amount,`NEAR account response.amount`),locked:Zi(t.locked,`NEAR account response.locked`),code_hash:X(t.code_hash,`NEAR account response.code_hash`),storage_usage:Xi(t.storage_usage,`NEAR account response.storage_usage`),storage_paid_at:Xi(t.storage_paid_at,`NEAR account response.storage_paid_at`)}}function aa(e){let t=X(Y(e,`NEAR view code response`).code_base64,`NEAR view code response.code_base64`);if(!t)throw Error(`Invalid NEAR view code response.code_base64: empty string`);return t}function oa(e){let t=Y(Y(e,`NEAR block response`).header,`NEAR block response.header`);return{header:{hash:X(t.hash,`NEAR block response.header.hash`),height:Xi(t.height,`NEAR block response.header.height`)}}}function sa(e){let t=Y(e,`NEAR contract call response`);if(!Array.isArray(t.result))throw Error(`Invalid NEAR contract call response.result: expected bytes`);let n=[];for(let e of t.result){if(typeof e!=`number`||!Number.isInteger(e)||e<0||e>255)throw Error(`Invalid NEAR contract call response.result: expected bytes`);n.push(e)}return{...Qi(t,`NEAR contract call response`),logs:Yi(t.logs,`NEAR contract call response.logs`),result:n}}function ca(e){let t=new TextDecoder(`utf-8`,{fatal:!0}).decode(Uint8Array.from(e));if(!t.trim())return null;try{return JSON.parse(t)}catch{return t}}function la(e,t){let n=Y(e,t),r=typeof n.error_type==`string`?n.error_type:`InvalidTxError`in n?`InvalidTxError`:`ActionError`in n?`ActionError`:`TxExecutionError`;return{error_message:typeof n.error_message==`string`?n.error_message:`NEAR execution failed`,error_type:r,...`InvalidTxError`in n?{InvalidTxError:n.InvalidTxError}:{},...`ActionError`in n?{ActionError:n.ActionError}:{}}}function ua(e,t){let n=0;for(let r of t)Object.prototype.hasOwnProperty.call(e,r)&&n++;if(n!==1)throw Error(`Invalid NEAR status: expected exactly one variant`)}function da(e){if(e===`Unknown`)return qi.Unknown;if(e===`Pending`)return qi.Pending;if(e===`Failure`)return qi.Failure;let t=Y(e,`NEAR execution status`);if(ua(t,[`SuccessValue`,`SuccessReceiptId`,`Failure`]),typeof t.SuccessValue==`string`)return{SuccessValue:t.SuccessValue};if(typeof t.SuccessReceiptId==`string`)return{SuccessReceiptId:t.SuccessReceiptId};if(`Failure`in t)return{Failure:la(t.Failure,`NEAR execution failure`)};throw Error(`Invalid NEAR execution status`)}function fa(e){if(e===`NotStarted`)return Ji.NotStarted;if(e===`Started`)return Ji.Started;if(e===`Failure`)return Ji.Failure;let t=Y(e,`NEAR final execution status`);if(ua(t,[`SuccessValue`,`Failure`]),typeof t.SuccessValue==`string`)return{SuccessValue:t.SuccessValue};if(`Failure`in t)return{Failure:la(t.Failure,`NEAR final execution failure`)};throw Error(`Invalid NEAR final execution status`)}function pa(e){let t=Y(e,`NEAR execution outcome`);return{logs:Yi(t.logs,`NEAR execution outcome.logs`),receipt_ids:Yi(t.receipt_ids,`NEAR execution outcome.receipt_ids`),gas_burnt:Xi(t.gas_burnt,`NEAR execution outcome.gas_burnt`),tokens_burnt:X(t.tokens_burnt,`NEAR execution outcome.tokens_burnt`),executor_id:X(t.executor_id,`NEAR execution outcome.executor_id`),status:da(t.status)}}function ma(e){let t=Y(e,`NEAR execution outcome with id`);return{id:X(t.id,`NEAR execution outcome id`),outcome:pa(t.outcome)}}function ha(e){switch(e){case`NONE`:case`INCLUDED`:case`INCLUDED_FINAL`:case`EXECUTED`:case`FINAL`:case`EXECUTED_OPTIMISTIC`:return e;default:throw Error(`Invalid NEAR final_execution_status`)}}function ga(e){let t=Y(e,`NEAR final execution outcome`);if(!Array.isArray(t.receipts_outcome))throw Error(`Invalid NEAR final execution outcome.receipts_outcome: expected an array`);return{final_execution_status:ha(t.final_execution_status),status:fa(t.status),transaction:{hash:X(Y(t.transaction,`NEAR final execution outcome.transaction`).hash,`NEAR final execution outcome.transaction.hash`)},transaction_outcome:ma(t.transaction_outcome),receipts_outcome:t.receipts_outcome.map(ma)}}function _a(e){return String(e||``).trim()}function va(e){return String(e||``).trim()}async function ya(e){return g(await re(d(e)))}async function ba(e){return g(await re(d(e)))}function xa(t){let n=Oe(t);if(!n||!(`caller`in n))return null;let i=Ee(n.caller);if(i===`linked_device_ceremony`)return Object.prototype.hasOwnProperty.call(n,`source`)?null:{caller:`linked_device_ceremony`};if(i!==`same_device_addition`)return null;let a=Oe(`source`in n?n.source:void 0);if(!a)return null;let o=e(`walletAuthorityId`in a?a.walletAuthorityId:void 0),s=r(`walletAuthMethodId`in a?a.walletAuthMethodId:void 0),c=Ee(`walletSessionId`in a?a.walletSessionId:void 0),l=Ee(`authorityDigestB64u`in a?a.authorityDigestB64u:void 0),u=`revocationEpoch`in a?a.revocationEpoch:void 0;return!o.ok||!s.ok||!c||!l||typeof u!=`number`||!Number.isSafeInteger(u)||u<0?null:{caller:`same_device_addition`,source:{walletAuthorityId:o.value,walletAuthMethodId:s.value,walletSessionId:c,authorityDigestB64u:l,revocationEpoch:u}}}function Sa(e,t){return e.walletAuthorityId===t.walletAuthorityId&&e.walletAuthMethodId===t.walletAuthMethodId&&e.walletSessionId===t.walletSessionId&&e.authorityDigestB64u===t.authorityDigestB64u&&e.revocationEpoch===t.revocationEpoch}function Z(e,t,n,r=[]){let i=Oe(e);if(!i)throw Error(t+` must be an object`);let a=new Set([...n,...r]),o=Object.keys(i);if(o.length<n.length||o.length>a.size)throw Error(t+` has invalid fields`);for(let e of n)if(!Object.prototype.hasOwnProperty.call(i,e))throw Error(t+`.`+e+` is required`);for(let e of o)if(!a.has(e))throw Error(t+` has invalid fields`);return i}function Q(e,t,n){if(!Object.prototype.hasOwnProperty.call(e,t))throw Error(n+`.`+t+` is required`);return Reflect.get(e,t)}function Ca(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function $(e,t,n){let r=Q(e,t,n);if(typeof r!=`string`||r.length===0||r.trim()!==r)throw Error(n+`.`+t+` must be a non-empty canonical string`);return r}function wa(e,t,n,r){let i=Q(e,t,n);if(typeof i!=`number`||!Number.isSafeInteger(i)||i<r)throw Error(n+`.`+t+` must be a safe integer`);return i}function Ta(e,t){if(!Array.isArray(e))throw Error(t+` must be an array`);return e}function Ea(e,t,n){let r=Ta(Q(e,t,n),n+`.`+t);if(r.length===0)throw Error(n+`.`+t+` must not be empty`);let i=[];for(let e=0;e<r.length;e+=1){let a=r[e];if(typeof a!=`number`||!Number.isSafeInteger(a)||a<1)throw Error(n+`.`+t+`[`+e+`] must be a positive safe integer`);i.push(a)}return i}function Da(e,t,n){return Ca(e,t)?$(e,t,n):void 0}function Oa(e,t=`addSignerIntent.signerSelection.ecdsa.chainTarget`){try{let n=Z(e,t,[`kind`],[`namespace`,`chainId`,`networkSlug`]);switch($(n,`kind`,t)){case`evm`:{let e=Z(n,t,[`kind`,`namespace`,`chainId`],[`networkSlug`]);if($(e,`namespace`,t)!==`eip155`)return null;let r=wa(e,`chainId`,t,1),i=Da(e,`networkSlug`,t);return i===void 0?{kind:`evm`,namespace:`eip155`,chainId:r}:{kind:`evm`,namespace:`eip155`,chainId:r,networkSlug:i}}case`tempo`:{let e=Z(n,t,[`kind`,`chainId`],[`networkSlug`]),r=wa(e,`chainId`,t,1),i=Da(e,`networkSlug`,t);return i===void 0?{kind:`tempo`,chainId:r}:{kind:`tempo`,chainId:r,networkSlug:i}}default:return null}}catch{return null}}function ka(e){let t=`addSignerIntent.signerSelection`,n=Z(e,t,[`mode`],[`ed25519`,`ecdsa`]);switch($(n,`mode`,t)){case`ed25519`:{let e=Z(Q(Z(n,t,[`mode`,`ed25519`]),`ed25519`,t),t+`.ed25519`,[`mode`,`signerSlot`,`participantIds`,`keyPurpose`,`keyVersion`,`derivationVersion`]);if($(e,`mode`,t+`.ed25519`)!==`create_implicit_near_account`)throw Error(t+`.ed25519.mode is unsupported`);wa(e,`signerSlot`,t+`.ed25519`,1),Ea(e,`participantIds`,t+`.ed25519`),$(e,`keyPurpose`,t+`.ed25519`),$(e,`keyVersion`,t+`.ed25519`),wa(e,`derivationVersion`,t+`.ed25519`,1);break}case`ecdsa`:{let e=Z(Q(Z(n,t,[`mode`,`ecdsa`]),`ecdsa`,t),t+`.ecdsa`,[`chainTargets`,`participantIds`]),r=Ta(Q(e,`chainTargets`,t+`.ecdsa`),t+`.ecdsa.chainTargets`);if(r.length===0)throw Error(t+`.ecdsa.chainTargets must not be empty`);for(let e of r)if(!Oa(e))throw Error(t+`.ecdsa.chainTargets contains an invalid target`);Ea(e,`participantIds`,t+`.ecdsa`);break}default:throw Error(t+`.mode is unsupported`)}let r=ke(e,{normalizeEcdsaChainTarget:Oa});if(!r.ok)throw Error(r.message);return r.value}function Aa(e){let n=`addAuthMethodIntent.authMethod`,r=Z(e,n,[`kind`],[`rpId`,`email`]);switch($(r,`kind`,n)){case`passkey`:{let e=t($(Z(r,n,[`kind`,`rpId`]),`rpId`,n));if(!e.ok)throw Error(e.error.message);break}case`email_otp`:$(Z(r,n,[`kind`,`email`]),`email`,n);break;default:throw Error(n+`.kind is unsupported`)}let i=De(e);if(!i)throw Error(n+` is invalid`);return i}function ja(t){let n=`addAuthMethodIntent.source`,i=Z(t,n,[`walletAuthorityId`,`walletAuthMethodId`,`walletSessionId`,`authorityDigestB64u`,`revocationEpoch`]),a=e($(i,`walletAuthorityId`,n)),o=r($(i,`walletAuthMethodId`,n));if(!a.ok||!o.ok)throw Error(n+` has invalid identity`);$(i,`walletSessionId`,n),$(i,`authorityDigestB64u`,n),wa(i,`revocationEpoch`,n,0)}function Ma(e,t){if(!Ca(e,`runtimePolicyScope`))return;let n=t+`.runtimePolicyScope`,r=Z(Q(e,`runtimePolicyScope`,t),n,[`orgId`,`projectId`,`envId`],[`signingRootVersion`]),i=$(r,`orgId`,n),a=$(r,`projectId`,n),o=$(r,`envId`,n),s=Da(r,`signingRootVersion`,n);return s===void 0?{orgId:i,projectId:a,envId:o}:{orgId:i,projectId:a,envId:o,signingRootVersion:s}}function Na(e,t){let r=n($(e,`walletId`,t));if(!r.ok)throw Error(r.error.message);return r.value}function Pa(e,t,n){let i=r($(e,t,n));if(!i.ok)throw Error(i.error.message);return i.value}function Fa(e){let t=`addSignerIntent`,n=Z(e,t,[`version`,`walletId`,`signerSelection`,`nonceB64u`],[`runtimePolicyScope`]);if($(n,`version`,t)!==`add_signer_intent_v1`)throw Error(t+`.version is unsupported`);let r=Na(n,t),i=Ma(n,t),a=$(n,`nonceB64u`,t),o=ka(Q(n,`signerSelection`,t));return i===void 0?{version:`add_signer_intent_v1`,walletId:r,signerSelection:o,nonceB64u:a}:{version:`add_signer_intent_v1`,walletId:r,signerSelection:o,runtimePolicyScope:i,nonceB64u:a}}function Ia(e){let t=`addAuthMethodIntent`,n=Z(e,t,[`version`,`walletId`,`authMethod`,`targetWalletAuthMethodId`,`caller`,`nonceB64u`],[`runtimePolicyScope`,`source`]);if($(n,`version`,t)!==`add_auth_method_intent_v1`)throw Error(t+`.version is unsupported`);let r=Na(n,t),i=Pa(n,`targetWalletAuthMethodId`,t),a=Aa(Q(n,`authMethod`,t)),o=Ma(n,t),s=$(n,`nonceB64u`,t);switch($(n,`caller`,t)){case`same_device_addition`:ja(Q(n,`source`,t));break;case`linked_device_ceremony`:if(Ca(n,`source`))throw Error(t+`.source is not valid for linked_device_ceremony`);break;default:throw Error(t+`.caller is unsupported`)}let c=xa(n);if(!c)throw Error(t+`.caller is invalid`);let l=o===void 0?{version:`add_auth_method_intent_v1`,walletId:r,authMethod:a,targetWalletAuthMethodId:i,nonceB64u:s}:{version:`add_auth_method_intent_v1`,walletId:r,authMethod:a,targetWalletAuthMethodId:i,runtimePolicyScope:o,nonceB64u:s};switch(c.caller){case`same_device_addition`:return{...l,caller:c.caller,source:c.source};case`linked_device_ceremony`:return{...l,caller:c.caller};default:return La(c)}}function La(e){throw Error(`Unsupported add-auth-method intent caller: ${String(e)}`)}function Ra(e,t){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n+=1)if(!Number.isSafeInteger(e[n])||e[n]!==t[n])return!1;return!0}function za(e,t){switch(e.kind){case`evm`:return t.kind===`evm`&&e.namespace===t.namespace&&e.chainId===t.chainId&&e.networkSlug===t.networkSlug;case`tempo`:return t.kind===`tempo`&&e.chainId===t.chainId&&e.networkSlug===t.networkSlug;default:return Ba(e)}}function Ba(e){throw Error(`Unsupported add-signer chain target: ${String(e)}`)}function Va(e,t){if(e.mode!==t.mode)return!1;switch(e.mode){case`ed25519`:return t.mode===`ed25519`&&e.ed25519.mode===t.ed25519.mode&&e.ed25519.signerSlot===t.ed25519.signerSlot&&Ra(e.ed25519.participantIds,t.ed25519.participantIds)&&e.ed25519.keyPurpose===t.ed25519.keyPurpose&&e.ed25519.keyVersion===t.ed25519.keyVersion&&e.ed25519.derivationVersion===t.ed25519.derivationVersion;case`ecdsa`:if(t.mode!==`ecdsa`||e.ecdsa.chainTargets.length!==t.ecdsa.chainTargets.length)return!1;for(let n=0;n<e.ecdsa.chainTargets.length;n+=1)if(!za(e.ecdsa.chainTargets[n],t.ecdsa.chainTargets[n]))return!1;return Ra(e.ecdsa.participantIds,t.ecdsa.participantIds);default:return Ha(e)}}function Ha(e){throw Error(`Unsupported add-signer selection: ${String(e)}`)}function Ua(e,t){return e===void 0||t===void 0?e===t:e.orgId===t.orgId&&e.projectId===t.projectId&&e.envId===t.envId&&e.signingRootVersion===t.signingRootVersion}function Wa(e,t){return e.version===t.version&&e.walletId===t.walletId&&Va(e.signerSelection,t.signerSelection)&&Ua(e.runtimePolicyScope,t.runtimePolicyScope)&&e.nonceB64u===t.nonceB64u}function Ga(e,t){if(e.kind!==t.kind)return!1;switch(e.kind){case`passkey`:return t.kind===`passkey`&&e.rpId===t.rpId;case`email_otp`:return t.kind===`email_otp`&&e.email===t.email;default:return Ka(e)}}function Ka(e){throw Error(`Unsupported add-auth-method input: ${String(e)}`)}function qa(e,t){if(e.version!==t.version||e.walletId!==t.walletId||!Ga(e.authMethod,t.authMethod)||e.targetWalletAuthMethodId!==t.targetWalletAuthMethodId||!Ua(e.runtimePolicyScope,t.runtimePolicyScope)||e.nonceB64u!==t.nonceB64u)return!1;switch(e.caller){case`same_device_addition`:return t.caller===`same_device_addition`&&Sa(e.source,t.source);case`linked_device_ceremony`:return t.caller===`linked_device_ceremony`;default:return Ja(e)}}function Ja(e){throw Error(`Unsupported add-auth-method intent: ${String(e)}`)}export{Mr as $,ti as A,Pr as B,Ai as C,mi as D,wi as E,Lr as F,yn as G,hn as H,Br as I,jr as J,Wn as K,zr as L,oi as M,li as N,di as O,Gr as P,xr as Q,Fr as R,Mi as S,Ei as T,_n as U,Kt as V,jn as W,kr as X,Tr as Y,Cr as Z,Wi as _,it as _t,Ia as a,Ln as at,Gi as b,Wa as c,Ct as ct,ia as d,ft as dt,un as et,oa as f,ht as ft,ca as g,ot as gt,ga as h,pt as ht,ya as i,zn as it,ii as j,hi as k,ra as l,St as lt,sa as m,mt,va as n,Sn as nt,Fa as o,sn as ot,aa as p,dt as pt,Dr as q,ba as r,sr as rt,qa as s,cn as st,_a as t,wn as tt,na as u,st as ut,Hi as v,at as vt,Di as w,Vi as x,Ui as y,nt as yt,Rr as z};
@@ -1 +0,0 @@
1
- import{c as e,h as t,k as n}from"./chains-CPmd4s9f.js";import{A as r,D as i,j as a,k as o}from"./primitives-CTmDwMNc.js";import{i as s,r as c,t as l}from"./base64-BmKR3UqU.js";import{r as u}from"./walletDbName-BxWApBQF.js";import{d,h as f}from"./capabilityKinds-D0Yrp9uf.js";import{$t as p,Qt as m,U as h,W as g,Z as _,ct as v,lt as y}from"./emailOtpEcdsaDerivationIdentity-CupWCKNg.js";import{t as b}from"./authenticatorOptions-2_XK8aXv.js";import{r as x,t as ee}from"./walletSessionAuthorizationStatus-ONPRiEbK.js";import{t as S}from"./authorizationAdmission-Dd23mTx7.js";import{n as te}from"./walletSessionFailure-C6TAQTZn.js";const C={enabled:!0,targetDepth:5,lowWatermark:4,maxRefillInFlight:1,refillAttemptTimeoutMs:3e4},ne={network:{chains:[{network:`near-testnet`,rpcUrl:`https://rpc.testnet.fastnear.com`,explorerUrl:`https://testnet.nearblocks.io`},{network:`tempo-testnet`,rpcUrl:`https://rpc.moderato.tempo.xyz`,explorerUrl:`https://explore.tempo.xyz`,chainId:42431},{network:`arc-testnet`,rpcUrl:`https://rpc.testnet.arc.io`,explorerUrl:`https://testnet.arcscan.app`,chainId:5042002},{network:`ethereum-sepolia`,rpcUrl:`https://ethereum-sepolia-rpc.publicnode.com`,explorerUrl:`https://sepolia.etherscan.io`,chainId:11155111}],relayer:{accountId:``,url:``,routes:{delegateAction:`/signed-delegate`}}},registration:{mode:`managed`,projectEnvironmentId:``,publishableKey:``,paymentMode:`disabled`,nearAccountProvisioning:{kind:`implicit_account`}},signing:{sessionDefaults:{ttlMs:u,remainingUses:3},emailOtp:{authPolicy:`session`},sessionPersistenceMode:`none`,sessionSeal:{mode:`none`},routerAb:{normalSigning:{mode:`disabled`}},routerAbEcdsaDerivation:{presignaturePool:C},thresholdEcdsa:{provisioningDefaults:{tempo:{enabled:!0,signingSession:{kind:`jwt`,ttlMs:u,remainingUses:3}},evm:{enabled:!0,signingSession:{kind:`jwt`,ttlMs:u,remainingUses:3}}}}},wallet:{mode:`iframe`,iframe:{origin:`https://wallet.example.localhost`,servicePath:`/wallet-service`,sdkBasePath:`/sdk`,walletHostVariant:`runtime`,rpIdOverride:`example.localhost`}},webauthn:{authenticatorOptions:{userVerification:b.Preferred,originPolicy:{single:void 0,all_subdomains:!0,multiple:void 0}}},ui:{appearance:{theme:{id:`default`,mode:`dark`,colors:{}},palette:`default`}}};async function re(e,t){let r=n(t,`ECDSA prepare response`);if(r.kind!==e.authorization.kind)throw Error(`ECDSA prepare authorization kind does not match the request`);let i=await h(e,r.signing);if(e.authorization.kind===`operation_step_up`){if(Object.keys(r).some(w))throw Error(`Invalid step-up prepare response`);return{kind:`operation_step_up`,signing:i}}if(Object.keys(r).some(ie))throw Error(`Invalid Wallet Session prepare response`);let a=n(r.session_status,`ECDSA prepare session status`),o=d(a.quotaId),s=f(e.authorization.wallet_session_id);if(!o.ok||!s.ok)throw Error(`Invalid prepare session identity`);let c=x(a,{walletSessionId:s.value,quotaId:o.value});if(!c||c.status!==`active`||c.authorization.walletId!==e.scope.wallet_id)throw Error(`ECDSA prepare did not return the admitted Wallet Session`);return{kind:`reusable_wallet_session`,signing:i,sessionStatus:c}}function w(e){return e!==`kind`&&e!==`signing`}function ie(e){return w(e)&&e!==`session_status`}var T=class extends Error{code;path;status;constructor(e){super(`Router A/B signing ${e.path} returned HTTP ${e.status}: ${e.message||e.code}`),this.name=`RouterAbSigningRequestError`,this.code=e.code,this.path=e.path,this.status=e.status}};function ae(e){let t=String(e.code||``).trim(),n=`Router A/B signing ${e.path} returned HTTP ${e.status}: ${e.message||t||`unknown admission failure`}`;if(e.authorizationDecision?.kind===`step_up_required`)return new S({kind:`exhausted`,source:`server_prepare`,detail:n},e.authorizationDecision);switch(t){case`wallet_budget_exhausted`:return new S({kind:`exhausted`,source:`server_prepare`,detail:n},e.authorizationDecision);case`wallet_budget_in_flight`:case`wallet_budget_reserved`:return new S({kind:`in_flight`,source:`server_prepare`,detail:n,retryAfterMs:150});default:return null}}function E(e,t){let n=Math.floor(Number(e));if(!Number.isSafeInteger(n)||n<=0)throw Error(`${t} must be a positive integer`);return n}function D(e,t,n){if(!Array.isArray(e))throw Error(`${t} must be a byte array`);let r=e.map(e=>Number(e));if(!r.every(e=>Number.isInteger(e)&&e>=0&&e<=255))throw Error(`${t} must contain bytes`);if(n!==void 0&&r.length!==n)throw Error(`${t} must contain ${n} bytes`);return r}function O(e,n){let r=t(e,n);if(c(r).length!==32)throw Error(`${n} must decode to 32 bytes`);return r}function k(e,n){let r=t(e,n);if(c(r).length===0)throw Error(`${n} must decode to non-empty bytes`);return r}function A(e,n){let r=t(e,n),i;try{i=l(r)}catch{i=c(r)}if(i.length!==32)throw Error(`${n} must decode to 32 bytes`);return s(i)}function j(e){return{bytes:[...D([...e],`digest bytes`,32)]}}function M(e,t){return s(Uint8Array.from(D(e.bytes,t)))}async function oe(t){return s(await Q(new TextEncoder().encode(e(t))))}function se(e){let n=t(e.message,`nep413.message`),r=t(e.recipient,`nep413.recipient`),i=c(A(e.nonce,`nep413.nonce`)),a=e.callbackUrl==null?void 0:t(e.callbackUrl,`callbackUrl`),o=[];return Z(o,2147484061),q(o,n),Y(o,i),q(o,r),a?(o.push(1),q(o,a)):o.push(0),s(Uint8Array.from(o))}async function ce(e){let n={scope:I(e.scope,`scope`),expires_at_ms:E(e.expiresAtMs,`expiresAtMs`),display_digest:j(c(O(e.displayDigestB64u,`displayDigestB64u`))),intent:{kind:`near_transaction_v1`,operation_id:t(e.operationId,`operationId`),operation_fingerprint:t(e.operationFingerprint,`operationFingerprint`),near_account_id:t(e.nearAccountId,`nearAccountId`),near_network_id:e.nearNetworkId,transactions:e.transactions.map((e,n)=>({receiver_id:t(e.receiverId,`transactions[${n}].receiverId`),action_fingerprint:t(e.actionFingerprint,`transactions[${n}].actionFingerprint`)})),unsigned_transaction_borsh_b64u:k(e.unsignedTransactionBorshB64u,`unsignedTransactionBorshB64u`)},signing_payload:{kind:`near_unsigned_transaction_borsh_v1`,unsigned_transaction_borsh_b64u:k(e.unsignedTransactionBorshB64u,`unsignedTransactionBorshB64u`),expected_signing_digest_b64u:O(e.expectedSigningDigestB64u,`expectedSigningDigestB64u`)}};return{request:n,admissionMaterial:await P(n)}}async function le(e){let n=A(e.nonce,`nonce`),r=e.callbackUrl==null?void 0:t(e.callbackUrl,`callbackUrl`),i=se({message:e.message,recipient:e.recipient,nonce:n,...r?{callbackUrl:r}:{}}),a={scope:I(e.scope,`scope`),expires_at_ms:E(e.expiresAtMs,`expiresAtMs`),display_digest:j(c(O(e.displayDigestB64u,`displayDigestB64u`))),intent:{kind:`nep413_v1`,operation_id:t(e.operationId,`operationId`),operation_fingerprint:t(e.operationFingerprint,`operationFingerprint`),near_account_id:t(e.nearAccountId,`nearAccountId`),near_network_id:e.nearNetworkId,recipient:t(e.recipient,`recipient`),message:t(e.message,`message`),nonce_b64u:n,...r?{callback_url:r}:{}},signing_payload:{kind:`nep413_message_v1`,canonical_message_b64u:i,expected_signing_digest_b64u:O(e.expectedSigningDigestB64u,`expectedSigningDigestB64u`)}};return{request:a,admissionMaterial:await P(a)}}async function ue(e){let n=k(e.delegate.canonicalDelegateBorshB64u,`canonicalDelegateBorshB64u`),r={scope:I(e.scope,`scope`),expires_at_ms:E(e.expiresAtMs,`expiresAtMs`),display_digest:j(c(O(e.displayDigestB64u,`displayDigestB64u`))),intent:{kind:`near_delegate_action_v1`,operation_id:t(e.operationId,`operationId`),operation_fingerprint:t(e.operationFingerprint,`operationFingerprint`),near_account_id:t(e.nearAccountId,`nearAccountId`),near_network_id:e.nearNetworkId,delegate:{sender_id:t(e.delegate.senderId,`delegate.senderId`),receiver_id:t(e.delegate.receiverId,`delegate.receiverId`),public_key:t(e.delegate.publicKey,`delegate.publicKey`),nonce:t(e.delegate.nonce,`delegate.nonce`),max_block_height:t(e.delegate.maxBlockHeight,`delegate.maxBlockHeight`),action_fingerprint:t(e.delegate.actionFingerprint,`delegate.actionFingerprint`),canonical_delegate_borsh_b64u:n}},signing_payload:{kind:`near_delegate_action_v1`,canonical_delegate_borsh_b64u:n,expected_signing_digest_b64u:O(e.expectedSigningDigestB64u,`expectedSigningDigestB64u`)}};return{request:r,admissionMaterial:await P(r)}}function N(e){let n=I(e.scope,`scope`),r={scope:n,expires_at_ms:E(e.expiresAtMs,`expiresAtMs`),prepare_binding:{server_round1_handle:t(e.prepareResponse.server_round1_handle,`server_round1_handle`),round1_binding_digest:L(e.prepareResponse.round1_binding_digest,`round1_binding_digest`),intent_digest:L(e.admissionMaterial.intentDigest,`intent_digest`),signing_payload_digest:L(e.admissionMaterial.signingPayloadDigest,`signing_payload_digest`)},protocol:{kind:`ed25519_two_party_frost_finalize_v1`,client_commitments:z(e.clientCommitments,`clientCommitments`),server_commitments:z(e.prepareResponse.server_commitments,`serverCommitments`),client_verifying_share_b64u:t(e.clientVerifyingShareB64u,`clientVerifyingShareB64u`),server_verifying_share_b64u:t(e.prepareResponse.server_verifying_share_b64u,`serverVerifyingShareB64u`),client_signature_share_b64u:t(e.clientSignatureShareB64u,`clientSignatureShareB64u`)}};if(n.authorization.kind===`reusable_wallet_session`&&e.prepareResponse.scope.authorization.kind===`reusable_wallet_session`)return{...r,scope:{...n,authorization:n.authorization},authorized_operation:V(e.prepareResponse.authorized_operation,`authorized_operation`)};if(n.authorization.kind===`operation_step_up`&&e.prepareResponse.scope.authorization.kind===`operation_step_up`)return{...r,scope:{...n,authorization:n.authorization},authorized_operation:H(e.prepareResponse.authorized_operation,`authorized_operation`)};throw Error(`Router A/B normal-signing authorization changed after prepare`)}async function P(e){let t=j(await Q(Se(e.intent))),n=j(await Q(Ce(e.signing_payload))),r=j(await Q(we(e.signing_payload))),i=c(Te(e.signing_payload));if(!De(r.bytes,i))throw Error(`Router A/B normal-signing expected signing digest drift`);return{intentDigest:t,signingPayloadDigest:n,admittedSigningDigest:r}}function F(e,t,n){let r=Object.keys(e).sort(),i=[...t].sort();if(r.length!==i.length||r.some((e,t)=>e!==i[t]))throw Error(`${n} has invalid fields`)}function I(e,n){let r=e&&typeof e==`object`?e:null;if(!r)throw Error(`${n} must be an object`);F(r,[`request_id`,`account_id`,`authorization`,`material_activation`,`signing_worker_id`],n);let i={request_id:t(r.request_id,`${n}.request_id`),account_id:t(r.account_id,`${n}.account_id`),authorization:p(r.authorization),material_activation:m(r.material_activation),signing_worker_id:t(r.signing_worker_id,`${n}.signing_worker_id`)};if(i.material_activation.signing_worker!==i.signing_worker_id)throw Error(`${n} material activation SigningWorker mismatch`);return i}function L(e,t){let n=e&&typeof e==`object`?e:null;if(!n)throw Error(`${t} must be an object`);return{bytes:D(n.bytes,`${t}.bytes`,32)}}function R(e,t){let n=e&&typeof e==`object`?e:null;if(!n)throw Error(`${t} must be an object`);let r=D(n.bytes,`${t}.bytes`);if(r.length===0)throw Error(`${t}.bytes must be non-empty`);return{bytes:r}}function z(e,n){let r=e&&typeof e==`object`?e:null;if(!r)throw Error(`${n} must be an object`);return{hiding:t(r.hiding,`${n}.hiding`),binding:t(r.binding,`${n}.binding`)}}function B(e,n){let r=e&&typeof e==`object`?e:null;if(!r)throw Error(`${n} must be an object`);return{server_id:t(r.server_id,`${n}.server_id`),key_epoch:t(r.key_epoch,`${n}.key_epoch`),recipient_encryption_key:t(r.recipient_encryption_key,`${n}.recipient_encryption_key`)}}function V(e,n){let r=e&&typeof e==`object`?e:null;if(!r)throw Error(`${n} must be an object`);F(r,[`kind`,`authorized_operation_id`,`operation_id`,`capability_kind`,`operation_kind`,`lane_digest_b64u`,`intent_digest_b64u`,`display_digest_b64u`,`operation_fingerprint_digest`],n);let i=t(r.kind,`${n}.kind`);if(i!==`reusable_wallet_session_authorized_operation_v1`)throw Error(`${n}.kind is invalid`);let a=t(r.capability_kind,`${n}.capability_kind`);if(a!==`near_ed25519_mpc_signing`)throw Error(`${n}.capability_kind is invalid`);let o=t(r.operation_kind,`${n}.operation_kind`);if(o!==`near.sign_transaction`&&o!==`near.sign_delegate_action`&&o!==`near.sign_nep413_message`)throw Error(`${n}.operation_kind is invalid`);return{kind:i,authorized_operation_id:t(r.authorized_operation_id,`${n}.authorized_operation_id`),operation_id:t(r.operation_id,`${n}.operation_id`),capability_kind:a,operation_kind:o,lane_digest_b64u:O(r.lane_digest_b64u,`${n}.lane_digest_b64u`),intent_digest_b64u:O(r.intent_digest_b64u,`${n}.intent_digest_b64u`),display_digest_b64u:O(r.display_digest_b64u,`${n}.display_digest_b64u`),operation_fingerprint_digest:O(r.operation_fingerprint_digest,`${n}.operation_fingerprint_digest`)}}function H(e,n){let r=e&&typeof e==`object`?e:null;if(!r)throw Error(`${n} must be an object`);if(F(r,[`kind`,`authorization_session_id`,`evidence_set_digest`,`authorized_operation_id`,`operation_id`,`capability_kind`,`operation_kind`,`lane_digest_b64u`,`intent_digest_b64u`,`display_digest_b64u`,`operation_fingerprint_digest`],n),t(r.kind,`${n}.kind`)!==`verified_step_up_authorized_operation_v1`)throw Error(`${n}.kind is invalid`);if(t(r.capability_kind,`${n}.capability_kind`)!==`near_ed25519_mpc_signing`)throw Error(`${n}.capability_kind is invalid`);let i=t(r.operation_kind,`${n}.operation_kind`);if(i!==`near.sign_transaction`&&i!==`near.sign_delegate_action`&&i!==`near.sign_nep413_message`)throw Error(`${n}.operation_kind is invalid`);return{kind:`verified_step_up_authorized_operation_v1`,authorization_session_id:t(r.authorization_session_id,`${n}.authorization_session_id`),evidence_set_digest:O(r.evidence_set_digest,`${n}.evidence_set_digest`),authorized_operation_id:t(r.authorized_operation_id,`${n}.authorized_operation_id`),operation_id:t(r.operation_id,`${n}.operation_id`),capability_kind:`near_ed25519_mpc_signing`,operation_kind:i,lane_digest_b64u:O(r.lane_digest_b64u,`${n}.lane_digest_b64u`),intent_digest_b64u:O(r.intent_digest_b64u,`${n}.intent_digest_b64u`),display_digest_b64u:O(r.display_digest_b64u,`${n}.display_digest_b64u`),operation_fingerprint_digest:O(r.operation_fingerprint_digest,`${n}.operation_fingerprint_digest`)}}function U(e){let n=e&&typeof e==`object`?e:null;if(!n)throw Error(`Router A/B normal-signing prepare response must be an object`);let r=t(n.signature_scheme,`signature_scheme`);if(r!==`ed25519_v1`)throw Error(`Unsupported Router A/B normal-signing signature scheme: ${r}`);let i=I(n.scope,`scope`),a={scope:i,signing_payload_digest:L(n.signing_payload_digest,`signing_payload_digest`),round1_binding_digest:L(n.round1_binding_digest,`round1_binding_digest`),signing_worker:B(n.signing_worker,`signing_worker`),server_round1_handle:t(n.server_round1_handle,`server_round1_handle`),server_commitments:z(n.server_commitments,`server_commitments`),server_verifying_share_b64u:t(n.server_verifying_share_b64u,`server_verifying_share_b64u`),signature_scheme:`ed25519_v1`,prepared_at_ms:E(n.prepared_at_ms,`prepared_at_ms`),expires_at_ms:E(n.expires_at_ms,`expires_at_ms`)};switch(i.authorization.kind){case`reusable_wallet_session`:return F(n,[`scope`,`signing_payload_digest`,`round1_binding_digest`,`signing_worker`,`server_round1_handle`,`server_commitments`,`server_verifying_share_b64u`,`signature_scheme`,`prepared_at_ms`,`expires_at_ms`,`authorized_operation`],`Router A/B reusable Wallet Session prepare response`),{...a,scope:{...i,authorization:i.authorization},authorized_operation:V(n.authorized_operation,`authorized_operation`)};case`operation_step_up`:return F(n,[`scope`,`signing_payload_digest`,`round1_binding_digest`,`signing_worker`,`server_round1_handle`,`server_commitments`,`server_verifying_share_b64u`,`signature_scheme`,`prepared_at_ms`,`expires_at_ms`,`authorized_operation`],`Router A/B operation step-up prepare response`),{...a,scope:{...i,authorization:i.authorization},authorized_operation:H(n.authorized_operation,`authorized_operation`)}}}function de(e){let n=e&&typeof e==`object`?e:null;if(!n)throw Error(`Router A/B normal-signing response must be an object`);F(n,[`scope`,`signing_payload_digest`,`signing_worker`,`signature_scheme`,`signature`,`signed_at_ms`],`Router A/B normal-signing response`);let r=t(n.signature_scheme,`signature_scheme`);if(r!==`ed25519_v1`)throw Error(`Unsupported Router A/B normal-signing signature scheme: ${r}`);return{scope:I(n.scope,`scope`),signing_payload_digest:L(n.signing_payload_digest,`signing_payload_digest`),signing_worker:B(n.signing_worker,`signing_worker`),signature_scheme:`ed25519_v1`,signature:R(n.signature,`signature`),signed_at_ms:E(n.signed_at_ms,`signed_at_ms`)}}function fe(e){let t=e.credential.kind===`wallet_session_opaque`?{token:e.credential.walletSessionToken,home:e.credential.home}:null;return i({...t?{headers:o(t)}:{},body:e.body})}function pe(e){if(!e.trim())return null;try{let t=JSON.parse(e),n=t&&typeof t==`object`?t:null;if(!n)return null;let r=String(n.code||``).trim(),i=String(n.message||``).trim();if(!r)return null;let a=n.authorization_decision===void 0?void 0:me(n.authorization_decision);return{code:r,message:i,...a?{authorizationDecision:a}:{}}}catch{return null}}function me(e){if(!e||typeof e!=`object`||Array.isArray(e))throw Error(`Router A/B owner-operation authorization decision is invalid`);let t=e,n=t.kind;if(n===`step_up_required`){W(t,[`kind`,`reason`,`step_up`],`owner-operation step-up decision`);let e=t.reason;if(e!==`wallet_session_missing`&&e!==`wallet_session_expired`&&e!==`wallet_session_exhausted`&&e!==`wallet_session_ended`&&e!==`wallet_session_superseded`)throw Error(`owner-operation step-up decision reason is invalid`);let r=t.step_up;return r&&typeof r==`object`&&!Array.isArray(r)&&`operation_digests`in r?{kind:n,reason:e,step_up:_(r)}:{kind:n,reason:e,step_up:he(r)}}if(n===`denied`){if(W(t,[`kind`,`denial`],`owner-operation denial decision`),!t.denial||typeof t.denial!=`object`||Array.isArray(t.denial))throw Error(`owner-operation denial is invalid`);let e=t.denial;W(e,[`code`,`message`],`owner-operation denial`);let r=e.code;if(r!==`invalid_identity`&&r!==`invalid_authority`&&r!==`invalid_operation`&&r!==`inactive_material`&&r!==`replayed_step_up`&&r!==`authorization_unavailable`)throw Error(`owner-operation denial code is invalid`);if(typeof e.message!=`string`||e.message.trim()!==e.message)throw Error(`owner-operation denial message is invalid`);return{kind:n,denial:{code:r,message:e.message}}}if(n===`authorized`){if(W(t,[`kind`,`operation`,`source`],`owner-operation decision`),!t.operation||typeof t.operation!=`object`||Array.isArray(t.operation))throw Error(`owner-operation authorized operation is invalid`);let e=t.operation;if(W(e,[`kind`,`operation_id`,`authorized_operation_id`,`operation_fingerprint_digest`],`owner-operation authorized operation`),e.kind!==`authorized_operation`||typeof e.operation_id!=`string`||typeof e.authorized_operation_id!=`string`||typeof e.operation_fingerprint_digest!=`string`)throw Error(`owner-operation authorized operation is invalid`);if(!t.source||typeof t.source!=`object`||Array.isArray(t.source))throw Error(`owner-operation authorized source is invalid`);let r=t.source;if(W(r,[`kind`,`wallet_session_id`,`quota_id`],`owner-operation authorized source`),r.kind!==`reusable_wallet_session`||typeof r.wallet_session_id!=`string`||typeof r.quota_id!=`string`)throw Error(`owner-operation authorized source is invalid`);return{kind:n,operation:{kind:`authorized_operation`,operation_id:e.operation_id,authorized_operation_id:e.authorized_operation_id,operation_fingerprint_digest:e.operation_fingerprint_digest},source:{kind:`reusable_wallet_session`,wallet_session_id:r.wallet_session_id,quota_id:r.quota_id}}}throw Error(`owner-operation authorization decision kind is invalid`)}function he(e){if(!e||typeof e!=`object`||Array.isArray(e))throw Error(`Ed25519 operation step-up preparation is invalid`);let t=e;W(t,[`wallet_id`,`operation_kind`,`operation_id`,`request_id`,`account_id`,`material_activation`,`signing_worker_id`,`near_account_id`,`signer_slot`,`participant_ids`,`expires_at_ms`],`Ed25519 owner-operation step-up preparation`);let n=t.operation_kind;if(n!==`near.sign_transaction`&&n!==`near.sign_delegate_action`&&n!==`near.sign_nep413_message`)throw Error(`Ed25519 operation step-up kind is invalid`);if(typeof t.wallet_id!=`string`||typeof t.operation_id!=`string`||typeof t.request_id!=`string`||typeof t.account_id!=`string`||typeof t.signing_worker_id!=`string`||typeof t.near_account_id!=`string`||!Number.isSafeInteger(t.signer_slot)||!Number.isSafeInteger(t.expires_at_ms)||!Array.isArray(t.participant_ids)||t.participant_ids.length!==2||!t.participant_ids.every(e=>Number.isSafeInteger(e)&&Number(e)>0))throw Error(`Ed25519 operation step-up preparation fields are invalid`);let[r,i]=t.participant_ids,a=t.signer_slot,o=t.expires_at_ms;if(typeof r!=`number`||typeof i!=`number`||typeof a!=`number`||typeof o!=`number`)throw Error(`Ed25519 operation step-up participants are invalid`);return{wallet_id:t.wallet_id,operation_kind:n,operation_id:t.operation_id,request_id:t.request_id,account_id:t.account_id,material_activation:m(t.material_activation),signing_worker_id:t.signing_worker_id,near_account_id:t.near_account_id,signer_slot:a,participant_ids:[r,i],expires_at_ms:o}}function W(e,t,n){let r=new Set(t);for(let t of Object.keys(e))if(!r.has(t))throw Error(`${n} contains unsupported field ${t}`);for(let r of t)if(!Object.hasOwn(e,r))throw Error(`${n} is missing ${r}`)}function ge(e){let t=pe(e.bodyText);return t?ae({code:t.code,message:t.message,path:e.path,status:e.status,authorizationDecision:t.authorizationDecision})||te({code:t.code,message:`Router A/B signing ${e.path} returned HTTP ${e.status}: ${t.message}`})||new T({code:t.code,message:t.message,path:e.path,status:e.status}):Error(`Router A/B signing ${e.path} returned HTTP ${e.status}${e.bodyText?`: ${e.bodyText}`:``}`)}async function G(e){if(typeof fetch!=`function`)throw Error(`fetch is not available for Router A/B normal-signing request`);let n=a(t(e.relayServerUrl,`relayServerUrl`)),i=await r(new Request(`${n}${e.path}`,{...fe({credential:e.credential,body:e.body}),signal:e.signal}));try{e.onServerTiming?.(i.headers.get(`Server-Timing`))}catch{}if(!i.ok){let t=await i.text().catch(()=>``),n=ge({path:e.path,status:i.status,bodyText:t});throw e.credential.kind===`wallet_session_opaque`&&n instanceof S&&n.failure.kind===`exhausted`&&ee.forgetCredential(e.credential.walletSessionToken),n}return e.parse(await i.json())}function _e(e,t){let r=n(t,`Ed25519 prepare response`);if(r.kind!==e.scope.authorization.kind)throw Error(`Ed25519 prepare authorization kind does not match the request`);let i=U(r.signing);if(e.scope.authorization.kind===`operation_step_up`)return W(r,[`kind`,`signing`],`Ed25519 step-up prepare response`),{kind:`operation_step_up`,signing:i};W(r,[`kind`,`signing`,`session_status`],`Ed25519 session prepare response`);let a=n(r.session_status,`Ed25519 prepare session status`),o=f(e.scope.authorization.wallet_session_id),s=d(a.quotaId);if(!o.ok||!s.ok)throw Error(`Invalid Ed25519 prepare session identity`);let c=x(a,{walletSessionId:o.value,quotaId:s.value});if(!c||c.status!==`active`)throw Error(`Ed25519 prepare did not return an active Wallet Session`);return{kind:`reusable_wallet_session`,signing:i,sessionStatus:c}}async function ve(e){return G({relayServerUrl:e.relayServerUrl,path:`/router-ab/ed25519/sign/prepare`,credential:e.credential,body:e.request,parse:_e.bind(null,e.request)})}async function ye(e){return await y(e.request),G({relayServerUrl:e.relayServerUrl,path:`/router-ab/ecdsa-derivation/sign/prepare`,onServerTiming:e.onServerTiming,credential:e.credential,body:e.request,parse:re.bind(null,e.request)})}async function be(e){return G({relayServerUrl:e.relayServerUrl,path:`/router-ab/ed25519/sign`,credential:e.credential,body:e.request,parse:de})}async function xe(e){return await v(e.request),G({relayServerUrl:e.relayServerUrl,path:`/router-ab/ecdsa-derivation/sign`,onServerTiming:e.onServerTiming,credential:e.credential,body:e.request,parse:t=>g(e.request,t)})}function Se(e){let t=[];switch(J(t,$(`router-ab-protocol/ed25519-normal-signing/intent/v2`)),e.kind){case`near_transaction_v1`:J(t,$(`near_transaction_v1`)),K(t,e),X(t,e.transactions.length);for(let n of e.transactions)J(t,$(n.receiver_id)),J(t,$(n.action_fingerprint));return J(t,$(e.unsigned_transaction_borsh_b64u)),Uint8Array.from(t);case`nep413_v1`:return J(t,$(`nep413_v1`)),K(t,e),J(t,$(e.recipient)),J(t,$(e.message)),J(t,$(e.nonce_b64u)),Ee(t,e.callback_url),Uint8Array.from(t);case`near_delegate_action_v1`:return J(t,$(`near_delegate_action_v1`)),K(t,e),J(t,$(e.delegate.sender_id)),J(t,$(e.delegate.receiver_id)),J(t,$(e.delegate.public_key)),J(t,$(e.delegate.nonce)),J(t,$(e.delegate.max_block_height)),J(t,$(e.delegate.action_fingerprint)),J(t,$(e.delegate.canonical_delegate_borsh_b64u)),Uint8Array.from(t)}}function Ce(e){let t=[];switch(J(t,$(`router-ab-protocol/ed25519-normal-signing/payload/v2`)),e.kind){case`near_unsigned_transaction_borsh_v1`:return J(t,$(`near_unsigned_transaction_borsh_v1`)),J(t,$(e.unsigned_transaction_borsh_b64u)),J(t,$(e.expected_signing_digest_b64u)),Uint8Array.from(t);case`nep413_message_v1`:return J(t,$(`nep413_message_v1`)),J(t,$(e.canonical_message_b64u)),J(t,$(e.expected_signing_digest_b64u)),Uint8Array.from(t);case`near_delegate_action_v1`:return J(t,$(`near_delegate_action_v1`)),J(t,$(e.canonical_delegate_borsh_b64u)),J(t,$(e.expected_signing_digest_b64u)),Uint8Array.from(t)}}function we(e){switch(e.kind){case`near_unsigned_transaction_borsh_v1`:return c(e.unsigned_transaction_borsh_b64u);case`nep413_message_v1`:return c(e.canonical_message_b64u);case`near_delegate_action_v1`:return c(e.canonical_delegate_borsh_b64u)}}function Te(e){switch(e.kind){case`near_unsigned_transaction_borsh_v1`:case`nep413_message_v1`:case`near_delegate_action_v1`:return e.expected_signing_digest_b64u}}function K(e,t){J(e,$(t.operation_id)),J(e,$(t.operation_fingerprint)),J(e,$(t.near_account_id)),J(e,$(t.near_network_id))}function Ee(e,t){t?(e.push(1),J(e,$(t))):e.push(0)}function q(e,t){let n=$(t);Z(e,n.length),Y(e,n)}function J(e,t){X(e,t.length),Y(e,t)}function Y(e,t){for(let n of t)e.push(n)}function X(e,t){e.push(t>>>24&255,t>>>16&255,t>>>8&255,t&255)}function Z(e,t){e.push(t&255,t>>>8&255,t>>>16&255,t>>>24&255)}async function Q(e){let t=globalThis.crypto?.subtle;if(!t)throw Error(`Web Crypto SHA-256 is unavailable for Router A/B normal signing`);let n=new Uint8Array(e.length);return n.set(e),new Uint8Array(await t.digest(`SHA-256`,n.buffer))}function $(e){return new TextEncoder().encode(e)}function De(e,t){return e.length===t.length&&e.every((e,n)=>e===t[n])}export{N as a,ye as c,oe as d,C as f,le as i,ve as l,ue as n,xe as o,ne as p,ce as r,be as s,T as t,M as u};
@@ -1 +0,0 @@
1
- import{M as e,O as t}from"./domainIds-C3fUa33Q.js";import{k as n}from"./chains-CPmd4s9f.js";import"./primitives-CTmDwMNc.js";import"./walletDbName-BxWApBQF.js";import"./signingSessionSeal-DqbjG8c8.js";import{a as r,c as i,d as a,l as o,u as s}from"./sessionObservationRevision-C7v-wN8_.js";import{C as c,S as l,T as ee,_ as te,a as ne,b as re,c as ie,d as ae,f as u,g as oe,h as se,l as ce,m as le,n as d,r as ue,s as de,t as fe,u as pe,v as me,w as he,x as ge,y as _e}from"./shared-hx7KVyeq.js";import"./activeWalletSession-BpbnpU9s.js";import"./capabilityKinds-D0Yrp9uf.js";import{t as ve}from"./walletIframeIdentity-Cz82I_Uh.js";import"./errors-ADOZT8oV.js";import{i as ye,n as be,r as xe,rn as Se,s as Ce,tn as we}from"./registration-sQndIWRF.js";import"./accountIds-Cpvlkvbe.js";import"./registrationSignerPlan-BHkqlian.js";import{a as f}from"./signerDomain-BFqRQ0Jl.js";import"./registrationIntent-D4YDjf2U.js";import"./singletons-CAsc9LvA.js";import"./walletAuthority-BY3kyKQ-.js";import"./emailOtpEcdsaDerivationIdentity-CupWCKNg.js";import{t as Te}from"./challengeDelivery-CG2J5Qxs.js";import"./digestEncoding-aC4dSf_x.js";import{a as Ee,n as p}from"./registrationIds-B1OpqRAt.js";import"./passkey-custody-Ba-NQ_4C.js";import{c as De,i as Oe,s as ke}from"./sdkSentEvents-DujYAPEM.js";import"./walletCustodyEcdsaContinuity-mGh1Ysko.js";import"./keccak-mS0Mejjx.js";import{g as Ae,p as je}from"./wallet-recovery-DFaS3geI.js";import"./nearEd25519YaoMaterialActivation-DgWDGRI_.js";import{t as Me}from"./walletSessionAuthorizationStatus-ONPRiEbK.js";import{a as Ne,i as Pe}from"./adapters-BNmcyf9K.js";import{t as Fe}from"./surface-measurement-reporter-BJhfiPw6.js";import"./signNear-B000QxBd.js";import{a as Ie,c as Le,d as m,f as Re,h,i as ze,l as g,m as Be,o as _,r as Ve,t as He,u as v}from"./appearance-token-vars-DxBm_cKA.js";function Ue(e){return{PM_GET_LAST_WALLET_MOVE_REQUEST:qe.bind(null,e),PM_MOVE_WALLET:Ke.bind(null,e),PM_GET_WALLET_PLACEMENT:We.bind(null,e),PM_GET_WALLET_MOVE:Ge.bind(null,e)}}async function We(e,r){let i=n(r.payload,`Wallet placement request`),a=t(i.walletId);if(!a.ok||Object.keys(i).length!==1)throw Error(`Wallet placement identity is invalid`);let o=await e.getWalletRuntime().placement.get(a.value);e.respondIfCancelled(r.requestId)||d(e,r.requestId,o)}async function Ge(e,r){let i=n(r.payload,`Wallet move request`),a=t(i.walletId),o=ce(i.moveId);if(!a.ok||Object.keys(i).length!==2)throw Error(`Wallet move request is invalid`);let s=await e.getWalletRuntime().placement.getMove(a.value,o);e.respondIfCancelled(r.requestId)||d(e,r.requestId,s)}async function Ke(e,t){let n=pe(t.payload),r=await e.getWalletRuntime().placement.move(n);e.respondIfCancelled(t.requestId)||d(e,t.requestId,r)}async function qe(e,r){let i=n(r.payload,`Wallet move locator request`),a=t(i.walletId);if(!a.ok||Object.keys(i).length!==1)throw Error(`Wallet move locator identity is invalid`);let o=await e.getWalletRuntime().placement.getLastMoveRequest(a.value);e.respondIfCancelled(r.requestId)||d(e,r.requestId,o)}function Je(e){if(!e)throw Error(`PM_UNLOCK payload is required`);return e}function Ye(e){switch(e.kind){case`default_options`:return{};case`custom_options`:return{...y(`signerSlot`,e.options.signerSlot),...y(`signingSession`,e.options.signingSession),...y(`unlockSelection`,e.options.unlockSelection),...Xe(e.options.ecdsaKeyFactsInventory)}}}function Xe(e){switch(e.kind){case`default`:return{};case`value`:return{ecdsaKeyFactsInventory:e.value}}}function y(e,t){switch(t.kind){case`default`:return{};case`value`:return{[e]:t.value}}}const Ze={passkey:{label:`Passkey authentication`,instruction:`Complete the prompt on your device.`},google:{label:`Google sign-in`,instruction:`Choose your Google account.`}};function Qe(e){return e===`register`?`Creating passkey wallet…`:`Unlocking wallet…`}function $e(e){return e===`registered`?{headline:`Wallet created`,message:`Your wallet is ready on this device.`}:{headline:`You’re in`,message:`Your wallet is unlocked.`}}const et=/\bHTTP 429\b|too many requests|rate limit/i,tt=/\bHTTP 5\d\d\b|failed to fetch|load failed|networkerror|network request failed|connection ?closed/i,nt=/timed out|timeout/i;function rt(e){return et.test(e)?`Too many attempts. Wait a moment.`:tt.test(e)?`Can’t reach Seams right now.`:nt.test(e)?`That took too long.`:`Something went wrong.`}function b(e){return{kind:`recoverable`,reason:`error`,message:rt(e),detail:e}}function x(e,t){let n=t?e.find(e=>e.walletId===t.walletId&&e.authMethod===t.authMethod):null,r=t?e.find(e=>e.walletId===t.walletId):null,i=n??r??e[0];if(!i)return{kind:`discoverable`,selectedAccount:null,loginTarget:{kind:`discoverable`}};let a=e.filter(e=>e.walletId===i.walletId),o=a.some(e=>e.authMethod===`passkey`),s=a.some(e=>e.authMethod===`email_otp`),c={selectedAccount:i,walletId:i.walletId,loginTarget:{kind:`wallet`,walletId:i.walletId}};if(o&&s)return{kind:`passkey_and_email_otp`,...c};if(o)return{kind:`passkey`,...c};if(s)return{kind:`email_otp`,...c};throw Error(`Selected auth-menu account has no supported authentication method`)}function S(e){switch(e.kind){case`discoverable`:case`passkey`:case`passkey_and_email_otp`:return!0;case`email_otp`:return!1}}function it(e){switch(e.kind){case`discoverable`:case`email_otp`:case`passkey_and_email_otp`:return!0;case`passkey`:return!1}}function C(e){return e.kind===`busy`}function at(e,t){return e.kind===`recovery`?e.stage===`sign_in_ready`?{...e,status:t}:null:{...e,status:t}}function ot(e){let t=e.status;return t.kind===`idle`&&t.interaction===`actionable`}function st(e){let t=e.status;return t.kind===`recoverable`?!0:t.kind===`idle`&&t.interaction===`actionable`}function w(e){if(!st(e))return!1;switch(e.kind){case`google_otp_login`:return!e.submitBusy&&/^\d{6}$/.test(e.otpCode);case`google_registration`:return!e.rerollBusy&&!e.submitBusy;case`link_device`:return!1;case`recovery`:return e.stage===`passkey_ready`||e.stage===`google_ready`||e.stage===`sign_in_ready`||e.stage===`email_code_required`&&/^\d{6}$/.test(e.otpCode);case`passkey`:return e.mode===`login`?S(x(e.accountOptions,e.selectedAccount)):!e.showRegistrationInput||e.passkeyName.trim().length>0}}function ct(e){return st(e)?e.kind!==`passkey`||e.mode!==`login`?!0:it(x(e.accountOptions,e.selectedAccount)):!1}const lt=new Set(je);function T(e){let t=``;for(let n of e.toUpperCase()){let e=n===`O`?`0`:n===`I`||n===`L`?`1`:n;lt.has(e)&&(t+=e)}return t}const ut=/[\s\-\u2010-\u2015\u2212]/;function dt(e){let t=new Set;for(let n of e.toUpperCase())ut.test(n)||T(n)||t.add(n);return Array.from(t).slice(0,3)}function ft(e,t,n){let r=t&&t.start===t.end?t.start:null,i=t===null?null:Math.min(t.start,31),a=[];for(let o=0;o<32;o+=4){let s=o+4,c=[];for(let i=o;i<s;i+=1){let a=e[i]??``,o=[`seams-otp-slot`];a&&o.push(`is-filled`),i===r&&o.push(`is-caret`),r===32&&i===31&&o.push(`is-caret-after`),t&&i>=t.start&&i<t.end&&o.push(`is-selected`),n&&i>=n.start&&i<n.end&&o.push(`is-new`),c.push(g(`span`,{class:o.join(` `),"data-recovery-slot":i,children:a},i))}let l=[`seams-recovery-code-group`];i!==null&&i>=o&&i<s&&l.push(`is-active`),e.length>=s&&l.push(`is-complete`),a.push(g(`div`,{class:l.join(` `),children:c},o))}return a}function pt(e){let t=Te(e);return t===null?null:g(`p`,{class:`seams-otp-description`,children:[g(_,{message:`Demo email code:`}),` `,g(`code`,{children:t})]})}const E=`seams-auth-menu-title`,D=`seams-auth-menu-account-list`;function O(e,t=6){return e.padEnd(t,` `).slice(0,t).split(``)}function mt(e,t,n,r){let i=null;for(let r of e.querySelectorAll(`[data-recovery-slot]`)){let e=Number(r.dataset.recoverySlot),a=r.getBoundingClientRect(),o=t<a.left?a.left-t:Math.max(0,t-a.right),s=n<a.top?a.top-n:Math.max(0,n-a.bottom),c=o*o+s*s;(i===null||c<i.distance)&&(i={index:e,distance:c,after:t>a.left+a.width/2})}return i===null?null:Math.min(i.after?i.index+1:i.index,r)}function k(e){return g(h,{children:g(`span`,{class:`seams-otp-slot ${e.trim()?`is-filled`:``}`,children:e})})}function ht(e){let t=e.kind===`recovery`?`:${e.stage}`:``;return`${e.kind}:${e.mode}:${e.status.kind}${t}`}function gt(e){return e.status.kind===`succeeded`?``:e.status.kind===`busy`?e.status.headline:e.status.kind===`recoverable`?e.status.message:e.stage===`passkey_ready`?`Recovery code accepted.`:e.stage===`sign_in_ready`?`Wallet recovered. Unlock it to continue.`:``}function _t(e){return e.kind===`recovery`?e.stage===`choose_method`?`Back to recovery code`:`Back to unlock wallet`:`Back`}function A(e){return e.kind===`recovery`&&e.stage===`finalizing`}function vt(e){return e===`register`?{prompt:`Already have a wallet?`,action:`Unlock wallet`,nextMode:`login`}:{prompt:`Don't have a wallet?`,action:`Create a wallet`,nextMode:`register`}}function yt(e){return e===`register`?`Create a wallet`:`Unlock wallet`}function bt(e){return e===`register`?`Create wallet with passkey`:`Unlock with passkey`}function xt(e){return e.kind===`google_otp_login`||e.kind===`google_registration`?e.error||null:e.kind===`passkey`&&e.status.kind===`recoverable`&&e.status.reason===`error`?e.status.message:null}function St(e){return x(e.accountOptions,e.selectedAccount).selectedAccount}function Ct(e){return e.walletId}function j(e){return e.authMethod===`email_otp`?e.emailAddress:null}function wt(e){if(!e)return`Saved wallets`;let t=j(e);return t?`Saved wallets. Selected wallet ID ${e.walletId}, email ${t}`:`Saved wallets. Selected ${e.walletId}`}function Tt(e){let t=e.filter(e=>e.authMethod===`passkey`),n=e.filter(e=>e.authMethod===`email_otp`);return[{authMethod:`passkey`,label:`Passkey`,accounts:t},{authMethod:`email_otp`,label:`Email OTP`,accounts:n}].filter(e=>e.accounts.length>0)}const Et=()=>new Promise(e=>setTimeout(e,90));function Dt(e){return e.dataset.blink?null:(e.dataset.blink=`off`,Et().then(()=>(e.dataset.blink=`on`,Et())).then(()=>{delete e.dataset.blink}))}function M(e,t,...n){return g(h,{children:g(`svg`,{width:e,height:e,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":t,"stroke-linecap":`round`,"stroke-linejoin":`round`,"aria-hidden":`true`,children:n})})}function N(){return M(`22`,`1.5`,g(`path`,{d:`M6.405 19.048c.184-.443.353-.894.507-1.351`}),g(`path`,{d:`M14.343 20.693c.266-.751.502-1.516.707-2.294.186-.706.346-1.422.478-2.147`}),g(`path`,{d:`M19.448 17.058c.364-1.964.555-3.989.555-6.058 0-4.418-3.582-8-8-8-1.255 0-2.443.289-3.501.805`}),g(`path`,{d:`M3.523 15.025c.314-1.29.48-2.638.48-4.025 0-1.74.556-3.351 1.499-4.664`}),g(`path`,{d:`M12.003 11c0 2.76-.447 5.416-1.273 7.899-.213.639-.451 1.266-.712 1.881`}),g(`path`,{d:`M7.712 14.5c.191-1.138.291-2.308.291-3.5 0-2.209 1.791-4 4-4s4 1.791 4 4c0 .617-.02 1.229-.058 1.836`}))}function Ot(){return g(`svg`,{class:`seams-passkey-ring`,viewBox:`0 0 56 56`,fill:`none`,"aria-hidden":`true`,focusable:`false`,children:[g(`circle`,{class:`seams-passkey-ring-track`,cx:`28`,cy:`28`,r:`26.75`}),g(`circle`,{class:`seams-passkey-ring-arc`,cx:`28`,cy:`28`,r:`26.75`,pathLength:`100`,transform:`rotate(-90 28 28)`})]})}function kt(){return g(`svg`,{class:`seams-success-ring`,viewBox:`0 0 56 56`,fill:`none`,"aria-hidden":`true`,focusable:`false`,children:[g(`circle`,{class:`seams-passkey-ring-track`,cx:`28`,cy:`28`,r:`26.75`}),g(`circle`,{class:`seams-success-ring-arc`,cx:`28`,cy:`28`,r:`26.75`,pathLength:`100`}),g(`circle`,{class:`seams-success-ring-seal`,cx:`28`,cy:`28`,r:`28`}),g(`path`,{class:`seams-success-ring-check`,d:`M36.7 21.5 24.75 33.4l-5.4-5.4`,pathLength:`1`})]})}function At(){return g(h,{children:g(`svg`,{class:`seams-account-dropdown-arrow`,viewBox:`0 0 24 24`,"aria-hidden":`true`,focusable:`false`,children:g(`path`,{d:`M9.75 3h4.5v10.28l4.3-4.3 3.18 3.18L12 21.9l-9.73-9.74 3.18-3.18 4.3 4.3V3Z`})})})}function jt(){return M(`18`,`2.25`,g(`path`,{d:`m15 18-6-6 6-6`}))}function Mt(){return M(`18`,`2`,g(`rect`,{width:`5`,height:`5`,x:`3`,y:`3`,rx:`1`}),g(`rect`,{width:`5`,height:`5`,x:`16`,y:`3`,rx:`1`}),g(`rect`,{width:`5`,height:`5`,x:`3`,y:`16`,rx:`1`}),g(`path`,{d:`M21 16h-3a2 2 0 0 0-2 2v3`}),g(`path`,{d:`M21 21v.01`}),g(`path`,{d:`M12 7v3a2 2 0 0 1-2 2H7`}),g(`path`,{d:`M3 12h.01`}),g(`path`,{d:`M12 3h.01`}),g(`path`,{d:`M12 16v.01`}),g(`path`,{d:`M16 12h1`}),g(`path`,{d:`M21 12v.01`}),g(`path`,{d:`M12 21v-1`}))}function Nt(){return M(`18`,`2`,g(`path`,{d:`M20 11v6`}),g(`path`,{d:`M20 13h2`}),g(`path`,{d:`M3 21v-2a4 4 0 0 1 4-4h6a4 4 0 0 1 2.072.578`}),g(`circle`,{cx:`10`,cy:`7`,r:`4`}),g(`circle`,{cx:`20`,cy:`19`,r:`2`}))}function Pt(){return M(`21`,`1.75`,g(`rect`,{x:`2.75`,y:`5`,width:`18.5`,height:`14`,rx:`2.75`}),g(`path`,{d:`m3.75 7.75 6.94 4.86a2.25 2.25 0 0 0 2.62 0l6.94-4.86`}))}function Ft(){return M(`22`,`1.75`,g(`path`,{d:`M9 17H7A5 5 0 0 1 7 7h2`}),g(`path`,{d:`M15 7h2a5 5 0 0 1 3.54 8.54`}),g(`path`,{d:`m2 2 20 20`}),g(`path`,{d:`M8 12h3`}))}function It(){return g(h,{children:g(`svg`,{class:`seams-input-action-icon`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"aria-hidden":`true`,children:[g(`path`,{d:`M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8`}),g(`path`,{d:`M21 3v5h-5`}),g(`path`,{d:`M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16`}),g(`path`,{d:`M8 16H3v5`})]})})}function P(){return g(`svg`,{width:`18`,height:`18`,viewBox:`0 0 48 48`,"aria-hidden":`true`,children:[g(`path`,{fill:`#EA4335`,d:`M24 9.5c3.54 0 6.71 1.22 9.21 3.6l6.85-6.85C35.9 2.38 30.47 0 24 0 14.62 0 6.51 5.38 2.56 13.22l7.98 6.19C12.43 13.72 17.74 9.5 24 9.5z`}),g(`path`,{fill:`#4285F4`,d:`M46.98 24.55c0-1.57-.15-3.09-.38-4.55H24v9.02h12.94c-.58 2.96-2.26 5.48-4.78 7.18l7.73 6c4.51-4.18 7.09-10.36 7.09-17.65z`}),g(`path`,{fill:`#FBBC05`,d:`M10.53 28.59c-.48-1.45-.76-2.99-.76-4.59s.27-3.14.76-4.59l-7.98-6.19C.92 16.46 0 20.12 0 24c0 3.88.92 7.54 2.56 10.78l7.97-6.19z`}),g(`path`,{fill:`#34A853`,d:`M24 48c6.48 0 11.93-2.13 15.89-5.81l-7.73-6c-2.15 1.45-4.92 2.3-8.16 2.3-6.26 0-11.57-4.22-13.47-9.91l-7.98 6.19C6.51 42.62 14.62 48 24 48z`})]})}function Lt(){return M(`13`,`1.75`,g(`path`,{d:`m9 6 6 6-6 6`}))}function Rt(){return M(`14`,`1.6`,g(`path`,{d:`M12 3 4.5 6v5.5c0 4.2 2.7 7.4 7.5 9.5 4.8-2.1 7.5-5.3 7.5-9.5V6L12 3Z`}),g(`path`,{d:`m8.5 11.5 2.5 2.5 4.5-5`}))}function zt(){return M(`15`,`1.6`,g(`path`,{d:`M12 8v5`}),g(`path`,{d:`M12 16v.1`}),g(`circle`,{cx:`12`,cy:`12`,r:`9`}))}var Bt=class extends Re{shownNotice=``;render(){let{notice:e,onRetry:t}=this.props;return e&&(this.shownNotice=e),g(`div`,{class:`seams-auth-footer`,"data-state":e?`notice`:`brand`,children:[g(`div`,{class:`seams-auth-footer-brand`,"aria-hidden":e?`true`:void 0,children:[Rt(),` `,g(`span`,{children:g(_,{message:`Secured by`})}),` `,g(Pe,{})]}),g(`div`,{class:`seams-auth-footer-notice`,children:[zt(),g(`span`,{class:`seams-auth-footer-text`,"aria-hidden":`true`,children:g(_,{copy:this.shownNotice})}),g(`button`,{class:`seams-auth-footer-action`,type:`button`,disabled:!e,onClick:t,children:g(_,{message:`Try again`})})]}),e?g(`p`,{class:`sr-only`,role:`alert`,children:g(_,{copy:e})}):null]})}};function F(e,t){return g(h,{children:g(`div`,{class:`seams-link-device-dot-ring is-${e}`,"aria-hidden":`true`,children:[Array.from({length:12},(e,t)=>g(h,{children:g(`span`,{"data-dot-index":t})})),t?g(h,{children:g(`div`,{class:`seams-link-device-dot-ring-glyph`,children:t})}):null,g(`svg`,{class:`seams-link-device-dot-ring-check`,viewBox:`0 0 52 52`,fill:`none`,stroke:`currentColor`,"stroke-width":`2.5`,"stroke-linecap":`round`,"stroke-linejoin":`round`,children:g(`path`,{d:`m18.5 27 5 5 10-11`})})]})})}function Vt(e){switch(e.kind){case`sending`:return{ring:`waiting`,heading:`Sending your code`,status:`Emailing a 6-digit code`,pending:!0,tone:`neutral`};case`resending`:return{ring:`waiting`,heading:`Sending a new code`,status:`Emailing a fresh 6-digit code`,pending:!0,tone:`neutral`};case`submitting`:return{ring:`waiting`,heading:`Checking your code`,status:`Verifying the code you entered`,pending:!0,tone:`neutral`};case`code_input`:return{ring:`idle`,heading:`Verify your email`,status:`Enter the 6-digit code we just sent.`,pending:!1,tone:`neutral`};case`incorrect`:return{ring:`idle`,heading:`Verify your email`,status:e.message,pending:!1,tone:`error`};case`expired`:return{ring:`idle`,heading:`That code expired`,status:e.message,pending:!1,tone:`error`};case`unavailable`:return{ring:`idle`,heading:`Email code unavailable`,status:e.message,pending:!1,tone:`error`};case`completed`:return{ring:`approved`,heading:`Email verified`,status:`Finishing linking this device`,pending:!0,tone:`neutral`}}}var Ht=class extends Re{static contextType=Ie;state={accountMenu:`closed`,recoverySelection:null,recoveryRejection:null};recoveryDrawnCode=``;recoveryArrival=null;recoveryArrivalTimer=null;recoveryRejectionTimer=null;accountMenuExitTimer=null;accountMenuChoice=null;previouslyFocusedElement=null;shouldFocusInitialControl=!0;contentResizeObserver=null;contentHeightFrame=null;previousLinkDeviceStateKind=null;previousRecoveryStage=null;lastMethod=`passkey`;get viewModel(){return this.props.viewModel}get accountMenuOpen(){return this.state.accountMenu===`open`}openAccountMenu(){this.endAccountMenuExit(),this.setState({accountMenu:`open`})}closeAccountMenu(){this.accountMenuOpen&&(this.setState({accountMenu:`closing`}),this.accountMenuExitTimer=setTimeout(()=>{this.endAccountMenuExit(),this.setState({accountMenu:`closed`})},160))}endAccountMenuExit(){this.accountMenuExitTimer!==null&&clearTimeout(this.accountMenuExitTimer),this.accountMenuExitTimer=null,this.accountMenuChoice=null}componentDidMount(){let e=document.activeElement;e instanceof HTMLElement&&!this.props.element.contains(e)&&(this.previouslyFocusedElement=e),document.addEventListener(`pointerdown`,this.onDocumentPointerDown),document.addEventListener(`keydown`,this.onKeyDown,!0),this.afterRender()}componentDidUpdate(e){this.afterRender(e.viewModel)}componentWillUnmount(){this.contentResizeObserver?.disconnect(),this.contentResizeObserver=null,this.contentHeightFrame!==null&&cancelAnimationFrame(this.contentHeightFrame),this.contentHeightFrame=null,this.endAccountMenuExit(),this.recoveryArrivalTimer!==null&&clearTimeout(this.recoveryArrivalTimer),this.recoveryRejectionTimer!==null&&clearTimeout(this.recoveryRejectionTimer),window.removeEventListener(`resize`,this.queueContentHeightSync),document.removeEventListener(`pointerdown`,this.onDocumentPointerDown),document.removeEventListener(`keydown`,this.onKeyDown,!0),this.props.styles.deleteDynamicRule(this.props.element.id+`-height`),this.restoreFocus()}afterRender(e){this.shouldFocusInitialControl&&this.focusInitialControl(),this.focusRecoveryControl(e),this.focusLinkDevicePasskeyAction(),this.observeContentSize(),this.queueContentHeightSync()}focusRecoveryControl(e){let t=this.viewModel;if(e?.kind===`recovery`&&t.kind!==`recovery`){this.previousRecoveryStage=null,this.props.element.querySelector(`[data-recovery-action]`)?.focus();return}if(t.kind!==`recovery`)return;let n=this.previousRecoveryStage!==t.stage;if(this.previousRecoveryStage=t.stage,t.stage===`enter_code`){let t=this.props.element.querySelector(`[aria-invalid="true"]`);if(t){t.focus();return}(e?.kind!==`recovery`||e.stage!==`enter_code`)&&this.props.element.querySelector(`[data-recovery-code]`)?.focus();return}if(t.stage===`choose_method`){n&&this.props.element.querySelector(`[data-recovery-target]`)?.focus();return}let r=t.status.kind===`recoverable`&&e?.kind===`recovery`&&e.status.kind!==`recoverable`;(n||r)&&(t.stage===`passkey_ready`||t.stage===`finalizing`||t.stage===`sign_in_ready`)&&this.props.element.querySelector(`[data-auth-menu-primary]`)?.focus()}focusLinkDevicePasskeyAction(){let e=this.viewModel.kind===`link_device`?this.viewModel.linkDevice.kind:null,t=e===`passkey_required`&&this.previousLinkDeviceStateKind!==e;this.previousLinkDeviceStateKind=e,t&&this.props.element.querySelector(`[data-link-device-passkey-action]`)?.focus()}observeContentSize(){if(this.contentResizeObserver)return;let e=this.props.element.querySelector(`.seams-content-sizer`);e&&(this.contentResizeObserver=new ResizeObserver(this.queueContentHeightSync),this.contentResizeObserver.observe(e),window.addEventListener(`resize`,this.queueContentHeightSync))}queueContentHeightSync=()=>{this.contentHeightFrame!==null&&cancelAnimationFrame(this.contentHeightFrame),this.contentHeightFrame=requestAnimationFrame(this.syncContentHeight)};syncContentHeight=()=>{this.contentHeightFrame=null;let e=this.props.element.querySelector(`.seams-content-switcher`),t=this.props.element.querySelector(`.seams-content-sizer`);!e||!t||this.props.styles.setDynamicDeclarations(this.props.element.id+`-height`,`#`+this.props.element.id+` .seams-content-switcher`,{height:t.scrollHeight+`px`})};focusInitialControl(){if(!this.props.element.isConnected||!this.shouldFocusInitialControl)return;this.shouldFocusInitialControl=!1;let e=document.activeElement;e instanceof HTMLElement&&this.props.element.contains(e)||this.props.element.querySelector(`[data-auth-menu-input], [data-auth-menu-primary]`)?.focus()}restoreFocus(){let e=this.previouslyFocusedElement;this.previouslyFocusedElement=null,e?.isConnected&&e.focus()}onKeydown=e=>{if(e.key===`Escape`){if(e.preventDefault(),this.viewModel&&A(this.viewModel))return;if(this.accountMenuOpen){this.closeAccountMenu();return}this.emitIntent({kind:`close`,reason:`escape`});return}if(e.key!==`Tab`)return;let t=this.focusableElements();if(t.length===0)return;let n=document.activeElement,r=t.indexOf(n instanceof HTMLElement?n:t[0]);e.shiftKey&&r<=0?(e.preventDefault(),t[t.length-1]?.focus()):!e.shiftKey&&r===t.length-1&&(e.preventDefault(),t[0]?.focus())};focusableElements(){return Array.from(this.props.element.querySelectorAll(`button:not([disabled]), input:not([disabled]), select:not([disabled]), textarea:not([disabled]), a[href], [tabindex]:not([tabindex="-1"])`))}onBackClick=()=>{this.emitIntent({kind:`back`})};onKeyDown=e=>{if(e.key!==`Escape`||e.defaultPrevented)return;let t=this.viewModel;!t||t.kind!==`recovery`&&!C(t.status)||(e.preventDefault(),e.stopPropagation(),!A(t)&&this.emitIntent({kind:`back`}))};onIntentSwitchClick=()=>{let e=this.viewModel;e&&this.emitIntent({kind:`mode_selected`,mode:vt(e.mode).nextMode})};onRegistrationReroll=()=>{this.emitIntent({kind:`registration_reroll`})};onPasskeyNameInput=e=>{e.currentTarget instanceof HTMLInputElement&&this.emitIntent({kind:`passkey_name_changed`,passkeyName:e.currentTarget.value})};onLoginAccountSelect=e=>{let t=e.currentTarget;if(!(t instanceof HTMLButtonElement))return;let n=t.dataset.walletId,r=t.dataset.authMethod,i=this.viewModel;if(!n||i.kind!==`passkey`||i.mode!==`login`)return;let a=i.accountOptions.find(e=>e.walletId===n&&e.authMethod===r),o=St(i);if(!a||!o||this.accountMenuChoice)return;let s=Dt(t);if(!s)return;let c={chosen:a,previous:o};this.accountMenuChoice=c,this.emitIntent({kind:`login_account_selected`,walletId:a.walletId,authMethod:a.authMethod}),s.then(()=>{this.accountMenuChoice===c&&this.closeAccountMenu()})};onAccountMenuToggle=()=>{this.accountMenuOpen?this.closeAccountMenu():this.openAccountMenu()};onDocumentPointerDown=e=>{!this.accountMenuOpen||!(e.target instanceof Node)||this.props.element.querySelector(`.seams-account-menu`)?.contains(e.target)||this.closeAccountMenu()};onPrimaryClick=()=>{let e=this.viewModel;if(!e||!w(e)||e.kind===`link_device`)return;if(e.kind===`google_otp_login`){this.emitIntent({kind:`google_otp_submit`});return}if(e.kind===`google_registration`){this.emitIntent({kind:`google_registration_complete`});return}let t=e.mode===`register`?{kind:`submit`,mode:`register`,passkeyName:e.passkeyName}:{kind:`submit`,mode:`login`};this.lastMethod=`passkey`,this.emitIntent(t)};onGoogleOtpCodeInput=e=>{e.currentTarget instanceof HTMLInputElement&&this.emitIntent({kind:`google_otp_code_changed`,code:e.currentTarget.value})};onGoogleOtpKeydown=e=>{e.key===`Enter`&&(e.preventDefault(),this.emitIntent({kind:`google_otp_submit`}))};onGoogleOtpResend=()=>{this.emitIntent({kind:`google_otp_resend`})};onGoogleRegistrationReroll=()=>{this.emitIntent({kind:`google_registration_reroll`})};onGoogleClick=()=>{this.lastMethod=`google`,this.emitIntent({kind:`external_auth`,provider:`google`})};onNoticeRetry=()=>{this.lastMethod===`google`&&ct(this.viewModel)?this.onGoogleClick():this.onPrimaryClick()};onLinkDeviceOpen=()=>{this.emitIntent({kind:`link_device_open`})};onRecoveryOpen=()=>{this.emitIntent({kind:`recovery_open`})};onRecoveryCodeInput=e=>{if(!(e.currentTarget instanceof HTMLInputElement)||this.viewModel.kind!==`recovery`)return;let t=e.currentTarget,n=t.value,r=dt(n);r.length>0&&this.showRecoveryRejection(r);let i=T(n.slice(0,t.selectionStart??n.length)).length,a=T(n).slice(0,32);t.value!==a&&(t.value=a,t.setSelectionRange(Math.min(i,a.length),Math.min(i,a.length))),this.syncRecoverySelection(t),this.emitIntent({kind:`recovery_code_changed`,recoveryCode:a})};onRecoverySelectionMove=e=>{e.currentTarget instanceof HTMLInputElement&&this.syncRecoverySelection(e.currentTarget)};onRecoveryCodeClick=e=>{let t=e.currentTarget;if(t instanceof HTMLInputElement){if(t.selectionStart===t.selectionEnd){let n=mt(this.props.element,e.clientX,e.clientY,t.value.length);n!==null&&t.setSelectionRange(n,n)}this.syncRecoverySelection(t)}};showRecoveryRejection(e){let t=this.state.recoveryRejection?.parity===0?1:0;this.setState({recoveryRejection:{characters:e,parity:t}}),this.recoveryRejectionTimer!==null&&clearTimeout(this.recoveryRejectionTimer),this.recoveryRejectionTimer=setTimeout(this.clearRecoveryRejection,2e3)}clearRecoveryRejection=()=>{this.recoveryRejectionTimer=null,this.setState({recoveryRejection:null})};recoveryCodeArrival(e){let t=this.recoveryDrawnCode;if(e===t)return this.recoveryArrival;this.recoveryDrawnCode=e;let n=0;for(;n<t.length&&t[n]===e[n];)n+=1;let r=n+e.length-t.length;return this.recoveryArrival=e.length>t.length?{start:n,end:r}:null,this.recoveryArrivalTimer!==null&&clearTimeout(this.recoveryArrivalTimer),this.recoveryArrivalTimer=setTimeout(this.endRecoveryArrival,600),this.recoveryArrival}endRecoveryArrival=()=>{this.recoveryArrivalTimer=null,this.recoveryArrival=null};onRecoveryCodeBlur=()=>{this.setState({recoverySelection:null})};syncRecoverySelection(e){let t=e.value.length,n=Math.min(e.selectionStart??t,t),r=Math.min(Math.max(e.selectionEnd??n,n),t),i=this.state.recoverySelection;i?.start===n&&i.end===r||this.setState({recoverySelection:{start:n,end:r}})}onRecoverySubmit=e=>{e.preventDefault(),this.emitIntent({kind:`recovery_code_submit`})};onRecoveryPasskeySelected=()=>{this.emitIntent({kind:`recovery_passkey_selected`})};onRecoveryGoogleSelected=()=>{this.emitIntent({kind:`recovery_google_selected`})};onRecoveryGoogleOtpCodeInput=e=>{e.currentTarget instanceof HTMLInputElement&&this.emitIntent({kind:`recovery_google_otp_code_changed`,code:e.currentTarget.value})};onRecoveryGoogleOtpKeydown=e=>{e.key===`Enter`&&(e.preventDefault(),this.emitIntent({kind:`recovery_google_otp_submit`}))};onRecoveryGoogleOtpSubmit=()=>{this.emitIntent({kind:`recovery_google_otp_submit`})};onRecoveryCreatePasskey=()=>{this.emitIntent({kind:`recovery_create_passkey`})};onRecoverySignIn=()=>{this.emitIntent({kind:`recovery_sign_in`})};onLinkDeviceCreatePasskey=()=>{this.emitIntent({kind:`link_device_create_passkey`})};onLinkDeviceFactorChange=e=>{if(!(e.currentTarget instanceof HTMLInputElement))return;let t=e.currentTarget.value===`email_otp`?{kind:`email_otp`}:{kind:`passkey_prf`};this.emitIntent({kind:`link_device_factor_selected`,targetFactor:t})};onLinkDeviceTargetEmailInput=e=>{e.currentTarget instanceof HTMLInputElement&&this.emitIntent({kind:`link_device_target_email_changed`,emailAddress:e.currentTarget.value})};onLinkDeviceStart=()=>{this.emitIntent({kind:`link_device_start`})};onLinkDeviceEmailOtpCodeInput=e=>{e.currentTarget instanceof HTMLInputElement&&this.emitIntent({kind:`link_device_email_otp_code_changed`,code:e.currentTarget.value})};onLinkDeviceEmailOtpKeydown=e=>{e.key===`Enter`&&(e.preventDefault(),this.emitIntent({kind:`link_device_email_otp_submit`}))};onLinkDeviceEmailOtpResend=()=>{this.emitIntent({kind:`link_device_email_otp_resend`})};onLinkDeviceEmailOtpSubmit=()=>{this.emitIntent({kind:`link_device_email_otp_submit`})};emitIntent(e){this.props.onIntent(e)}render(){let e=this.viewModel;if(!e)return g(h,{});let t=C(e.status),n=e.status.kind===`succeeded`?e.status.phase:null,r=e.kind===`link_device`,i=e.kind===`google_otp_login`,a=e.kind===`google_registration`,o=e.kind===`recovery`;return g(h,{children:g(`div`,{class:`seams-signup-menu-root auth-menu-root`,"data-mode":e.mode,"data-waiting":t||n?`true`:`false`,"data-success":n??void 0,"data-scan-device":r?`true`:`false`,"data-otp-prompt":i?`true`:`false`,"data-registration-prompt":a?`true`:`false`,"data-recovery":o?`true`:`false`,"aria-labelledby":E,"aria-busy":t?`true`:`false`,tabIndex:-1,onKeyDown:this.onKeydown,children:[g(`div`,{class:`seams-menu-origin`,children:[g(Ne,{}),` `,g(`span`,{children:e.hostname})]}),g(`div`,{class:`seams-content-switcher`,children:[g(`button`,{class:`seams-back-button ${!n&&(t||r||i||a||o)?`is-visible`:``}`,type:`button`,"aria-label":v(this.context,_t(e)),"data-auth-menu-close":!0,disabled:n!==null||A(e),onClick:this.onBackClick,children:jt()}),o?g(`div`,{class:`sr-only`,role:`status`,"aria-live":`polite`,"aria-atomic":`true`,children:g(_,{copy:gt(e)})}):null,g(`div`,{class:`seams-content-area`,children:g(`div`,{class:`seams-content-sizer`,children:t||n?this.renderWaiting(e):g(h,{children:g(`div`,{class:`seams-signin-menu`,children:g(h,{children:this.renderActiveView(e)},ht(e))})})})})]}),g(Bt,{notice:xt(e),onRetry:this.onNoticeRetry})]})})}renderActiveView(e){return e.kind===`recovery`?this.renderRecovery(e):e.kind===`link_device`?this.renderLinkDevice(e):e.kind===`google_otp_login`?this.renderGoogleOtp(e):e.kind===`google_registration`?this.renderGoogleRegistration(e):g(h,{children:[this.renderMenuHeader(e),` `,this.renderPasskeyInput(e),this.renderAuthMethods(e),` `,this.renderOtherOptions(),this.renderIntentSwitch(e)]})}renderMenuHeader(e){let t=yt(e.mode);return g(`div`,{class:`seams-menu-header`,children:[t===e.heading?null:g(`div`,{class:`seams-menu-eyebrow`,children:g(_,{copy:t})}),g(`div`,{class:`seams-title`,id:E,children:g(_,{copy:e.heading})}),e.subtitle?g(`div`,{class:`seams-subhead`,children:g(_,{copy:e.subtitle})}):null]})}renderHeader(e){return g(h,{children:g(`div`,{class:`seams-header`,children:g(`div`,{children:[g(`div`,{class:`seams-title`,id:E,children:g(_,{copy:e.heading})}),g(`div`,{class:`seams-subhead`,children:g(_,{copy:e.subtitle})})]})})})}renderPasskeyInput(e){if(e.mode===`login`){let t=St(e);if(!t)return g(h,{});let n=Tt(e.accountOptions),r=this.state.accountMenu,i=this.accountMenuChoice,a=i?.previous??t;return g(h,{children:g(`div`,{class:`seams-passkey-row`,children:g(`div`,{class:`seams-input-pill`,children:[g(`div`,{class:`seams-input-wrap`,children:g(`div`,{class:`seams-account-menu-account seams-selected-account`,"aria-hidden":`true`,children:[g(`span`,{class:`seams-account-menu-account-primary`,children:Ct(t)}),j(t)?g(h,{children:g(`span`,{class:`seams-account-menu-account-secondary`,children:j(t)})}):null]})}),g(`div`,{class:`seams-account-menu ${r===`closed`?``:`is-open`}`,children:[g(`button`,{class:`seams-account-menu-trigger`,type:`button`,"data-auth-menu-input":!0,"aria-label":v(this.context,wt(t)),"aria-haspopup":`listbox`,"aria-expanded":this.accountMenuOpen?`true`:`false`,"aria-controls":D,onClick:this.onAccountMenuToggle,children:At()}),r===`closed`?null:g(h,{children:g(`div`,{id:D,class:`seams-account-menu-popover ${r===`closing`?`is-closing`:``}`,role:`listbox`,children:n.map(e=>{let t=`${D}-${e.authMethod}`;return g(h,{children:g(`div`,{class:`seams-account-menu-group`,role:`group`,"aria-labelledby":t,children:[g(`div`,{id:t,class:`seams-account-menu-group-label`,children:g(_,{copy:e.label})}),e.accounts.map(e=>{let t=e.walletId===a.walletId&&e.authMethod===a.authMethod,n=!t&&e.walletId===i?.chosen.walletId&&e.authMethod===i.chosen.authMethod,r=j(e);return g(h,{children:g(`button`,{class:`seams-account-menu-option ${t?`is-selected`:``} ${n?`is-chosen`:``}`,type:`button`,role:`option`,"aria-selected":t?`true`:`false`,title:v(this.context,r?`${e.walletId} ${r}`:e.walletId),"data-wallet-id":e.walletId,"data-auth-method":e.authMethod,onClick:this.onLoginAccountSelect,children:[g(`span`,{class:`seams-account-menu-check`,"aria-hidden":`true`}),g(`span`,{class:`seams-account-menu-account`,children:[g(`span`,{class:`seams-account-menu-account-primary`,children:e.walletId}),r?g(h,{children:g(`span`,{class:`seams-account-menu-account-secondary`,children:g(_,{copy:r})})}):null]})]})})})]})})})})})]})]})})})}return e.showRegistrationInput?g(h,{children:g(`div`,{class:`seams-passkey-row`,children:g(`div`,{class:`seams-input-pill`,children:[g(`div`,{class:`seams-input-wrap`,children:g(`input`,{id:`seams-auth-menu-passkey-name`,class:`seams-input`,"data-auth-menu-input":!0,type:`text`,autocomplete:`nickname`,placeholder:v(this.context,e.passkeyNameLabel),value:e.passkeyName,readonly:e.passkeyNameReadOnly,disabled:C(e.status),onInput:this.onPasskeyNameInput})}),e.passkeyNameReadOnly?g(h,{children:g(`button`,{class:`seams-input-action-trigger auth-menu-registration-reroll`,type:`button`,title:m(this.context,`Generate another name`),"aria-label":m(this.context,`Generate another name`),onClick:this.onRegistrationReroll,disabled:!ot(e),children:It()})}):null]})})}):g(h,{})}renderAuthMethods(e){let t=e.enabledExternalProviders?.includes(`google`)??!1;return g(h,{children:g(`div`,{class:`seams-auth-methods`,children:[g(`button`,{class:`seams-auth-method-btn seams-auth-method-btn-primary`,type:`button`,"data-auth-menu-primary":!0,disabled:!w(e),onClick:this.onPrimaryClick,children:[N(),g(`span`,{children:g(_,{copy:bt(e.mode)})})]}),t?g(`button`,{class:`seams-auth-method-btn`,type:`button`,"data-auth-menu-provider":`google`,disabled:!ct(e),onClick:this.onGoogleClick,children:[P(),g(`span`,{children:g(_,{message:`Continue with Google`})})]}):null]})})}renderOtherOptions(){return g(h,{children:[g(`div`,{class:`seams-menu-options-label`,children:g(_,{message:`Other options`})}),g(`div`,{class:`seams-menu-options`,children:[g(`button`,{class:`seams-menu-option`,type:`button`,onClick:this.onLinkDeviceOpen,children:[g(`span`,{class:`seams-menu-option-icon`,children:Mt()}),g(`span`,{class:`seams-menu-option-text`,children:[g(_,{message:`Link this device`}),g(`small`,{children:g(_,{message:`Scan a code with your other device`})})]}),Lt()]}),g(`button`,{class:`seams-menu-option`,type:`button`,"data-recovery-action":!0,onClick:this.onRecoveryOpen,children:[g(`span`,{class:`seams-menu-option-icon`,children:Nt()}),g(`span`,{class:`seams-menu-option-text`,children:[g(_,{message:`Recover wallet`}),g(`small`,{children:g(_,{message:`Use your recovery code`})})]}),Lt()]})]})]})}renderRecovery(e){if(e.stage===`enter_code`){let t=T(e.recoveryCode).slice(0,32),n=this.recoveryCodeArrival(t),r=this.state.recoveryRejection,i=e.status.kind===`recoverable`?e.status.message:``,a=e.recoveryCodeError??i,o=a.length>0;return g(h,{children:[this.renderHeader(e),g(`p`,{id:`seams-recovery-code-feedback`,class:`seams-recovery-status ${o?`seams-recovery-error`:``}`,"aria-hidden":o?`false`:`true`,role:o?`alert`:`status`,children:g(_,{copy:a})}),g(`form`,{class:`seams-recovery-form`,novalidate:!0,onSubmit:this.onRecoverySubmit,children:[g(`div`,{class:`seams-recovery-field`,children:[g(`div`,{class:`seams-recovery-field-header`,children:[g(`label`,{class:`seams-field-label`,for:`seams-recovery-code`,children:g(_,{message:`Recovery code`})}),g(`span`,{id:`seams-recovery-code-count`,class:`seams-recovery-code-count`,children:[t.length,`/`,32]})]}),g(`div`,{class:`seams-otp-code-field seams-recovery-code-field ${r?`is-rejecting-${r.parity}`:``}`,children:[g(`input`,{id:`seams-recovery-code`,class:`seams-otp-input`,"data-recovery-code":!0,name:`recoveryCode`,type:`text`,inputmode:`text`,autocomplete:`off`,autocapitalize:`characters`,autocorrect:`off`,spellcheck:!1,"aria-invalid":e.recoveryCodeError?`true`:`false`,"aria-describedby":e.recoveryCodeError?`seams-recovery-code-feedback seams-recovery-code-count seams-recovery-code-hint`:`seams-recovery-code-count seams-recovery-code-hint`,value:t,onInput:this.onRecoveryCodeInput,onFocus:this.onRecoverySelectionMove,onKeyUp:this.onRecoverySelectionMove,onSelect:this.onRecoverySelectionMove,onClick:this.onRecoveryCodeClick,onBlur:this.onRecoveryCodeBlur}),g(`div`,{class:`seams-otp-slots seams-recovery-code-slots ${n&&n.end-n.start>1?`is-sweeping`:``}`,"aria-hidden":`true`,children:ft(t,this.state.recoverySelection,n)})]}),g(`p`,{id:`seams-recovery-code-hint`,class:`seams-recovery-code-hint ${r?`is-error`:``}`,"aria-live":`polite`,children:r?`Recovery codes don’t use ${r.characters.join(`, `)}.`:g(_,{message:`You can paste the whole code.`})})]}),g(`button`,{class:`seams-auth-method-btn seams-auth-method-btn-primary`,type:`submit`,"data-auth-menu-primary":!0,"data-recovery-continue":!0,children:g(_,{message:`Continue`})})]})]})}if(e.stage===`choose_method`||e.stage===`preparing`){let t=e.stage===`preparing`?e.target.kind:null,n=e.status.kind===`recoverable`?e.status.message:e.status.kind===`busy`?e.status.headline:``,r=e.enabledExternalProviders?.includes(`google`)??!1;return g(h,{children:[this.renderHeader(e),g(`p`,{class:`seams-recovery-status ${e.status.kind===`recoverable`?`seams-recovery-error`:``}`,"aria-hidden":`true`,children:g(_,{copy:n})}),g(`div`,{class:`seams-auth-methods seams-recovery-methods`,children:[g(`button`,{class:`seams-auth-method-btn seams-auth-method-btn-primary`,type:`button`,"data-auth-menu-primary":!0,"data-recovery-target":`passkey`,disabled:t!==null,onClick:this.onRecoveryPasskeySelected,children:[t===`passkey`?g(`span`,{class:`seams-spinner`,"aria-hidden":`true`}):N(),g(`span`,{children:g(_,{message:`Create a passkey`})})]}),r?g(`button`,{class:`seams-auth-method-btn`,type:`button`,"data-recovery-target":`google_email_otp`,disabled:t!==null,onClick:this.onRecoveryGoogleSelected,children:[t===`google_email_otp`?g(`span`,{class:`seams-spinner`,"aria-hidden":`true`}):P(),g(`span`,{children:g(_,{message:`Continue with Google`})})]}):null]}),g(`p`,{class:`seams-recovery-method-note`,children:g(_,{message:`This adds a new sign-in method to your wallet.`})})]})}if(e.stage===`email_code_required`){let t=O(e.otpCode),n=/^\d{6}$/.test(e.otpCode)&&e.status.kind!==`busy`,r=e.delivery.status===`reused`?`Use the code already sent to ${e.emailHint}.`:`A 6-digit code was sent to ${e.emailHint}.`;return g(h,{children:[this.renderHeader(e),g(`div`,{class:`seams-otp-prompt`,"aria-live":`polite`,children:[g(`p`,{class:`seams-otp-description`,children:g(_,{copy:r})}),pt(e.delivery),g(`label`,{class:`seams-field-label`,for:`seams-recovery-google-otp`,children:g(_,{message:`Email code`})}),g(`div`,{class:`seams-otp-code-field`,"data-disabled":e.status.kind===`busy`?`true`:`false`,children:[g(`input`,{class:`seams-otp-input`,id:`seams-recovery-google-otp`,"data-auth-menu-input":!0,"data-email-otp-challenge-id":e.challengeId,"data-email-otp-wallet-id":e.walletId,name:`recoveryEmailOtpCode`,type:`text`,inputmode:`numeric`,autocomplete:`one-time-code`,spellcheck:!1,pattern:`[0-9]*`,maxLength:6,"aria-invalid":e.status.kind===`recoverable`?`true`:`false`,"aria-describedby":e.status.kind===`recoverable`?`seams-recovery-google-otp-error`:``,value:e.otpCode,disabled:e.status.kind===`busy`,onInput:this.onRecoveryGoogleOtpCodeInput,onKeyDown:this.onRecoveryGoogleOtpKeydown}),g(`div`,{class:`seams-otp-slots`,"aria-hidden":`true`,children:t.map(k)})]}),e.status.kind===`recoverable`?g(h,{children:g(`p`,{id:`seams-recovery-google-otp-error`,class:`seams-recovery-status seams-recovery-error`,role:`alert`,children:g(_,{copy:e.status.message})})}):null,g(`button`,{class:`seams-link-device-btn seams-link-device-btn-primary`,type:`button`,"data-auth-menu-primary":!0,disabled:!n,onClick:this.onRecoveryGoogleOtpSubmit,children:g(_,{message:`Verify email code`})})]})]})}let t=e.stage===`finalizing`&&e.status.kind===`recoverable`,n=e.stage===`sign_in_ready`,r=e.target.kind===`google_email_otp`,i=e.status.kind===`recoverable`?e.status.message:n?null:e.stage===`google_ready`?`Continue with Google, then verify the code sent to your email.`:r?`Finishing recovery with Google…`:`Create a new passkey to finish recovering this wallet.`,a=n?this.onRecoverySignIn:r?t?this.onRecoveryGoogleOtpSubmit:this.onGoogleClick:this.onRecoveryCreatePasskey;return g(h,{children:[this.renderHeader(e),g(`div`,{class:`seams-recovery-confirmation`,children:[i===null?null:g(h,{children:g(`p`,{class:`seams-recovery-status`,children:g(_,{copy:i})})}),g(`button`,{class:`seams-link-device-btn seams-link-device-btn-primary`,type:`button`,"data-auth-menu-primary":!0,onClick:a,children:[r&&!t?P():null,n?r?g(_,{message:`Unlock with Google`}):g(_,{message:`Unlock with new passkey`}):t?g(_,{message:`Retry finalization`}):r?g(_,{message:`Continue with Google`}):g(_,{message:`Create new passkey`})]})]})]})}renderIntentSwitch(e){let t=vt(e.mode);return g(h,{children:g(`div`,{class:`seams-auth-intent-switch`,children:[g(`span`,{children:g(_,{copy:t.prompt})}),g(`button`,{type:`button`,"data-auth-menu-mode":t.nextMode,onClick:this.onIntentSwitchClick,children:g(_,{copy:t.action})})]})})}renderWaiting(e){let t=e.status;if(t.kind===`succeeded`)return this.renderSuccess(t);if(t.kind!==`busy`)return g(h,{});let n=t.headline,r=t.illustration?Ze[t.illustration]:null;return g(h,{children:g(`div`,{class:`seams-waiting`,role:`status`,"aria-live":`polite`,children:[r?g(`span`,{class:`seams-passkey-prompt`,role:`img`,"aria-label":v(this.context,r.label),children:Ot()}):null,g(`div`,{class:`seams-waiting-message`,children:[g(`span`,{class:`seams-waiting-text`,children:g(_,{copy:n})}),r?g(`span`,{class:`seams-passkey-instruction`,children:g(_,{copy:r.instruction})}):null,e.showProgress&&t.detail&&t.detail!==n?g(h,{children:g(`span`,{class:`seams-waiting-sdk-events`,children:g(_,{copy:t.detail})})}):null]}),r?null:g(`div`,{"aria-label":m(this.context,`Loading`),class:`seams-spinner`})]})})}renderSuccess(e){return g(`div`,{class:`seams-waiting seams-success`,role:`status`,"aria-live":`polite`,children:[g(`span`,{class:`seams-passkey-prompt seams-success-prompt`,children:kt()},`success-prompt`),g(`div`,{class:`seams-waiting-message seams-success-message`,children:[g(`span`,{class:`seams-waiting-text`,children:g(_,{copy:e.headline})}),g(`span`,{class:`seams-passkey-instruction`,children:g(_,{copy:e.message})})]},`success-message`)]})}renderLinkDevice(e){let t=e.linkDevice;if(t.kind===`select_factor`)return this.renderLinkDeviceFactorSelection(t);if(t.kind===`passkey_required`||t.kind===`creating_passkey`)return this.renderLinkDevicePasskeyConfirmation(t);if(t.kind===`email_otp_required`)return this.renderLinkDeviceEmailOtp(t);if(t.kind===`activating`)return this.renderLinkedDeviceActivation(t);if(t.kind===`expired`)return this.renderLinkDeviceFailurePanel({dismiss:`expired`,title:`Linking expired`,detail:t.message,action:`Try again`});if(t.kind===`cancelled`)return this.renderLinkDeviceFailurePanel({dismiss:`cancelled`,title:`Linking cancelled`,detail:t.message,action:`Return to unlock wallet`});if(t.kind===`error`||t.kind===`activation_error`)return this.renderLinkDeviceFailure(t);let n=t.kind===`ready`;return g(h,{children:g(`div`,{class:`seams-scan-device-content`,children:g(`div`,{class:`qr-code-container`,children:g(`div`,{class:`qr-body`,children:g(`div`,{class:`qr-code-section`,children:[g(`div`,{class:`qr-code-display`,children:n?g(h,{children:g(`img`,{src:t.qrCodeDataURL,alt:`QR code to link this device`,class:`qr-code-image`})}):g(h,{children:g(`div`,{class:`qr-code-placeholder`,children:g(`span`,{class:`seams-spinner`,"aria-hidden":`true`})})})}),g(`div`,{class:`qr-header`,children:g(`h2`,{class:`qr-title`,id:E,children:g(_,{copy:e.heading})})}),g(`div`,{class:`qr-instruction`,children:n?g(_,{copy:e.subtitle}):g(_,{message:`Preparing a one-time code for your other device.`})}),g(`div`,{class:`qr-status`,role:`status`,"aria-live":`polite`,children:[n?g(_,{copy:t.message}):g(_,{message:`Generating QR code`}),g(`span`,{class:`animated-ellipsis`})]})]})})})})})}renderLinkDeviceFactorSelection(e){let t=e.targetFactor.kind===`email_otp`,n=e.targetFactor.kind===`email_otp`&&typeof e.targetEmail==`string`?e.targetEmail:``,r=!t||he(n);return g(h,{children:g(`div`,{class:`seams-link-device-confirmation`,children:[g(`h2`,{class:`qr-title`,id:E,children:g(_,{message:`Match your other device`})}),g(`p`,{class:`seams-link-device-confirmation-copy`,children:g(_,{message:`Choose the unlock method for Device 2. Email code sends a one-time code to the address you enter.`})}),g(`fieldset`,{class:`seams-link-device-factor-options`,children:[g(`legend`,{class:`sr-only`,children:g(_,{message:`Wallet unlock method`})}),g(`label`,{children:[g(`span`,{class:`seams-auth-method-choice-icon`,children:N()}),g(`span`,{class:`seams-auth-method-choice-label`,children:g(_,{message:`Passkey`})}),g(`input`,{type:`radio`,name:`linked-device-factor`,value:`passkey_prf`,checked:e.targetFactor.kind===`passkey_prf`,onChange:this.onLinkDeviceFactorChange})]}),g(`label`,{children:[g(`span`,{class:`seams-auth-method-choice-icon`,children:Pt()}),g(`span`,{class:`seams-auth-method-choice-label`,children:g(_,{message:`Email code`})}),g(`input`,{type:`radio`,name:`linked-device-factor`,value:`email_otp`,checked:e.targetFactor.kind===`email_otp`,onChange:this.onLinkDeviceFactorChange})]})]}),t?g(h,{children:g(`label`,{class:`seams-link-device-target-email`,children:[g(`span`,{class:`seams-field-label`,children:g(_,{message:`Email address`})}),g(`input`,{type:`email`,name:`linked-device-target-email`,autocomplete:`email`,value:n,"aria-label":m(this.context,`Email address`),"aria-invalid":n.length>0&&!r?`true`:`false`,onInput:this.onLinkDeviceTargetEmailInput})]})}):null,e.error?g(h,{children:g(`p`,{class:`seams-link-device-inline-error`,role:`alert`,children:g(_,{copy:e.error})})}):null,g(`button`,{class:`seams-link-device-btn seams-link-device-btn-primary`,type:`button`,"data-auth-menu-primary":!0,disabled:!r,onClick:this.onLinkDeviceStart,children:g(_,{message:`Continue`})})]})})}renderLinkDeviceEmailOtp(e){let t=e.state,n=Vt(t),r=t.kind===`sending`||t.kind===`submitting`||t.kind===`resending`,i=e.otpCode.length===6&&(t.kind===`code_input`||t.kind===`incorrect`),a=t.kind!==`completed`&&t.kind!==`expired`&&t.kind!==`unavailable`,o=`maskedEmailHint`in t?t.maskedEmailHint:``,s=O(e.otpCode);return g(h,{children:g(`div`,{class:`seams-link-device-confirmation seams-link-device-email-otp`,"data-tone":n.tone,"data-otp-phase":t.kind,children:[F(n.ring,Pt()),g(`h2`,{class:`qr-title`,id:E,children:g(_,{copy:n.heading})}),o?g(h,{children:g(`div`,{class:`seams-link-device-email-chip`,title:v(this.context,o),children:g(`span`,{children:o})})}):null,g(`p`,{class:`seams-link-device-email-status`,id:`seams-linked-device-otp-status`,role:`status`,"aria-live":`polite`,children:[g(_,{copy:n.status}),n.pending?g(h,{children:g(`span`,{class:`animated-ellipsis`,"aria-hidden":`true`})}):null]}),a?g(h,{children:[g(`label`,{class:`sr-only`,for:`seams-linked-device-email-otp`,children:g(_,{message:`Email code`})}),g(`div`,{class:`seams-otp-code-field`,"data-disabled":r?`true`:`false`,children:[g(`input`,{class:`seams-otp-input`,id:`seams-linked-device-email-otp`,"data-auth-menu-input":!0,type:`text`,inputmode:`numeric`,autocomplete:`one-time-code`,pattern:`[0-9]*`,maxLength:6,"aria-label":m(this.context,`Email verification code`),"aria-describedby":`seams-linked-device-otp-status`,"aria-invalid":t.kind===`incorrect`?`true`:`false`,value:e.otpCode,disabled:r,onInput:this.onLinkDeviceEmailOtpCodeInput,onKeyDown:this.onLinkDeviceEmailOtpKeydown}),g(`div`,{class:`seams-otp-slots`,"aria-hidden":`true`,children:s.map(k)})]})]}):null,this.renderLinkDeviceEmailOtpActions(t,{busy:r,canSubmit:i})]})})}renderLinkDeviceEmailOtpActions(e,t){return e.kind===`completed`?null:e.kind===`unavailable`?g(h,{children:g(`button`,{class:`seams-link-device-btn`,type:`button`,"data-link-device-error-dismiss":!0,onClick:this.onBackClick,children:g(_,{message:`Return to unlock wallet`})})}):e.kind===`expired`?g(h,{children:g(`button`,{class:`seams-link-device-btn seams-link-device-btn-primary`,type:`button`,onClick:this.onLinkDeviceEmailOtpResend,children:g(_,{message:`Send a new code`})})}):g(h,{children:[g(`button`,{class:`seams-link-device-btn seams-link-device-btn-primary`,type:`button`,disabled:!t.canSubmit,onClick:this.onLinkDeviceEmailOtpSubmit,children:e.kind===`submitting`?g(_,{message:`Verifying`}):g(_,{message:`Verify code`})}),g(`button`,{class:`seams-otp-resend`,type:`button`,disabled:t.busy,onClick:this.onLinkDeviceEmailOtpResend,children:g(_,{message:`Send another code`})})]})}renderLinkDeviceFailure(e){let t=e.kind===`activation_error`;return this.renderLinkDeviceFailurePanel({dismiss:`error`,title:t?`Device linked`:`Couldn't link device`,detail:t?g(h,{children:[g(_,{message:`Unable to open the wallet. Go back and try again.`}),` `,g(_,{copy:e.message})]}):e.message,action:`Return to unlock wallet`})}renderLinkDeviceFailurePanel(e){return g(h,{children:g(`div`,{class:`seams-link-device-confirmation seams-link-device-failure`,children:[g(`div`,{class:`seams-link-device-failure-icon`,children:Ft()}),g(`h2`,{class:`qr-title`,id:E,children:g(_,{copy:e.title})}),g(`p`,{class:`seams-link-device-failure-detail`,role:`alert`,children:typeof e.detail==`string`?g(_,{copy:e.detail}):e.detail}),g(`button`,{class:`seams-link-device-btn`,type:`button`,"data-auth-menu-primary":!0,[`data-link-device-${e.dismiss}-dismiss`]:!0,onClick:this.onBackClick,children:g(_,{copy:e.action})})]})})}renderLinkedDeviceActivation(e){return g(h,{children:g(`div`,{class:`seams-link-device-confirmation`,children:[g(`span`,{class:`seams-spinner`,"aria-hidden":`true`}),g(`h2`,{class:`qr-title`,id:E,children:g(_,{message:`Opening linked wallet`})}),g(`p`,{class:`seams-link-device-confirmation-copy`,role:`status`,"aria-live":`polite`,children:g(_,{copy:e.message})})]})})}renderLinkDevicePasskeyConfirmation(e){let t=e.kind===`creating_passkey`;return g(h,{children:g(`div`,{class:`seams-link-device-confirmation`,children:[F(t?`waiting`:`approved`),g(`h2`,{class:`qr-title`,id:E,"aria-live":`polite`,children:g(_,{copy:e.message})}),g(`button`,{class:`seams-link-device-btn seams-link-device-btn-primary`,type:`button`,"data-auth-menu-primary":!0,"data-link-device-passkey-action":!0,disabled:t,onClick:this.onLinkDeviceCreatePasskey,children:t?g(_,{message:`Waiting for passkey`}):g(_,{message:`Create passkey`})})]})})}renderGoogleOtp(e){let t=e.delivery.status===`reused`?`Use the code already sent to ${e.emailHint}.`:`A 6-digit code was sent to ${e.emailHint}.`,n=O(e.otpCode);return g(h,{children:g(`div`,{class:`seams-otp-prompt`,"aria-live":`polite`,children:[g(`div`,{class:`seams-otp-prompt-copy`,children:[g(`div`,{class:`seams-otp-title`,id:E,children:g(_,{copy:e.heading})}),g(`p`,{class:`seams-otp-description`,children:g(_,{copy:t})}),pt(e.delivery),g(`div`,{class:`seams-otp-account`,title:v(this.context,e.walletId),children:[g(`span`,{class:`seams-otp-account-label`,children:g(_,{message:`Wallet`})}),g(`span`,{class:`seams-otp-account-value`,children:e.walletId})]})]}),g(`label`,{class:`seams-field-label`,for:`seams-auth-menu-google-otp`,children:g(_,{message:`Email code`})}),g(`div`,{class:`seams-otp-code-field`,"data-disabled":e.submitBusy?`true`:`false`,children:[g(`input`,{class:`seams-otp-input`,id:`seams-auth-menu-google-otp`,"data-auth-menu-input":!0,"data-email-otp-challenge-id":e.challengeId,"data-email-otp-wallet-id":e.walletId,type:`text`,inputmode:`numeric`,autocomplete:`one-time-code`,pattern:`[0-9]*`,maxLength:6,value:e.otpCode,disabled:e.submitBusy,onInput:this.onGoogleOtpCodeInput,onKeyDown:this.onGoogleOtpKeydown}),g(`div`,{class:`seams-otp-slots`,"aria-hidden":`true`,children:n.map(k)})]}),g(`p`,{class:`seams-otp-helper`,children:g(_,{copy:e.prompt.helperText??``})}),g(`button`,{class:`seams-auth-method-btn seams-auth-method-btn-primary`,type:`button`,"data-auth-menu-primary":!0,disabled:!w(e),onClick:this.onPrimaryClick,children:e.submitBusy?g(_,{message:`Unlocking…`}):g(_,{copy:e.ctaLabel})}),g(`button`,{class:`seams-otp-resend auth-menu-google-resend`,type:`button`,disabled:e.resendBusy||e.submitBusy,onClick:this.onGoogleOtpResend,children:e.resendBusy?g(_,{message:`Sending…`}):g(_,{message:`Resend Code`})})]})})}renderGoogleRegistration(e){return g(h,{children:g(`div`,{class:`seams-otp-prompt`,"aria-live":`polite`,children:[g(`div`,{class:`seams-otp-prompt-copy`,children:[g(`div`,{class:`seams-otp-title`,id:E,children:g(_,{copy:e.heading})}),g(`p`,{class:`seams-otp-description`,children:g(_,{copy:e.subtitle})}),g(`div`,{class:`seams-otp-account`,title:v(this.context,e.walletId),children:[g(`span`,{class:`seams-otp-account-label`,children:g(_,{message:`Wallet`})}),g(`span`,{class:`seams-otp-account-value`,children:e.walletId})]}),g(`button`,{class:`seams-otp-reroll`,type:`button`,disabled:e.rerollBusy||e.submitBusy,onClick:this.onGoogleRegistrationReroll,children:e.rerollBusy?g(_,{message:`Generating…`}):g(_,{message:`Generate another name`})})]}),g(`button`,{class:`seams-auth-method-btn seams-auth-method-btn-primary`,type:`button`,"data-auth-menu-primary":!0,disabled:!w(e),onClick:this.onPrimaryClick,children:e.submitBusy?g(_,{message:`Creating...`}):g(_,{copy:e.ctaLabel})})]})})}};const I=new WeakMap;let Ut=0;function Wt(e){let t=I.get(e);return t||(t=Ve({doc:e,baseCss:``,dynamicStyleDataAttr:`data-seams-auth-menu-dynamic`,nonce:ze}),I.set(e,t)),t}var Gt=class{element;styles;state;constructor(e){let t=e.parent.ownerDocument;this.styles=Wt(t),this.element=t.createElement(`div`),this.element.className=`seams-wallet-ui seams-auth-menu-surface`,this.element.id=`seams-auth-menu-${++Ut}`,this.state={kind:`mounted`,onIntent:e.onIntent},this.element.addEventListener(`cancel`,this.cancel),e.parent.appendChild(this.element);try{this.update(e.viewModel)}catch(e){throw this.dispose(),e}}update(e){this.state.kind!==`disposed`&&(this.element.lang=e.appearance.locale??`en`,this.element.dataset.theme=e.appearance.theme.mode,this.styles.setDynamicRule(this.element.id+`-appearance`,He(this.element.id,e.appearance)),Be(Le(e.appearance.locale??`en`,g(Ht,{element:this.element,viewModel:e,onIntent:this.state.onIntent,styles:this.styles})),this.element))}dispose(){this.state.kind!==`disposed`&&(this.state={kind:`disposed`},this.element.removeEventListener(`cancel`,this.cancel),Be(null,this.element),this.styles.deleteDynamicRule(this.element.id+`-appearance`),this.element.remove())}cancel=()=>{this.state.kind===`mounted`&&this.state.onIntent({kind:`close`,reason:`close_button`})}};function Kt(e){return new Gt(e)}const L=Symbol(`hostedPasskeyLoginPrepared`),qt=Symbol(`hostedPasskeyAccountSyncPrepared`),R=300*1e3;function z(e){return{signingEngine:e.signingEngine,nearClient:e.nearClient,configs:e.configs,theme:e.theme,resumePendingAcknowledgementsV1:e.resumePendingAcknowledgementsV1}}const B=new WeakMap;function Jt(e){return e.signal}function V(e){if(Jt(e).aborted)throw Error(`Hosted auth-menu passkey preparation was cancelled`)}function Yt(e){if(Date.now()>=e.expiresAtMs)throw W(e),Error(`Hosted auth-menu passkey preparation expired`)}function Xt(e){let t=B.get(e);if(!t)throw Error(`Hosted auth-menu passkey preparation is unknown`);if(t.lifecycle!==`ready`)throw Error(`Hosted auth-menu passkey preparation is no longer usable`);if(Date.now()>=e.expiresAtMs)throw W(e),Error(`Hosted auth-menu passkey preparation expired`);return V(e.cancellation),t}function Zt(e){return{id:String(e.credentialId||``).trim(),type:`public-key`,transports:Array.isArray(e.transports)?e.transports:[]}}function Qt(e){return{authMenuSessionId:e.authMenuSessionId,requestId:e.requestId}}async function H(e){V(e.cancellation);let t=Ee(e.walletId),n=await se(String(t));if(n){V(e.cancellation);let r=Object.freeze({kind:`hosted_passkey_linked_authority_login_prepared_v1`,...Qt(e),walletId:t,selection:n,expiresAtMs:Date.now()+R,cancellation:e.cancellation,[L]:!0});return B.set(r,{context:e.context,loginOptions:{},syncOptions:{},lifecycle:`ready`,authority:null}),r}let r=await _e({walletId:String(t),requestedCapabilityFamilies:{kind:`all_registered_mpc`}}),i=r.kind===`resolved`?r.subjectSet:await oe(String(t));if(!i)return await U({context:e.context,walletId:null,authMenuSessionId:e.authMenuSessionId,requestId:e.requestId,cancellation:e.cancellation});V(e.cancellation);let a=Object.freeze({kind:`hosted_passkey_owner_login_prepared_v1`,...Qt(e),walletId:t,subjectSet:i,expiresAtMs:Date.now()+R,cancellation:e.cancellation,[L]:!0});return B.set(a,{context:e.context,loginOptions:{},syncOptions:{},lifecycle:`ready`,authority:null}),a}async function U(e){V(e.cancellation);let t=await de(e.context,e.walletId);V(e.cancellation);let n=Object.freeze({kind:`hosted_passkey_account_sync_prepared_v1`,authMenuSessionId:e.authMenuSessionId,requestId:e.requestId,challenge:t,expiresAtMs:Date.now()+R,cancellation:e.cancellation,[qt]:!0});return B.set(n,{context:e.context,loginOptions:{},syncOptions:{},lifecycle:`ready`,authority:null}),n}function $t(e){let t=Xt(e);t.lifecycle=`consuming`;let n={subjectId:e.challenge.walletId||`account-sync`,challengeB64u:e.challenge.syncOptions.challengeB64u,allowCredentials:e.challenge.syncOptions.credentialIds.map(e=>Zt({credentialId:e}))},r;try{r=t.context.signingEngine.getAuthenticationCredentialsSerialized({...n,includeSecondPrfOutput:!1})}catch(e){throw t.lifecycle=`cancelled`,e}return t.authority=r,r.then(()=>{t.lifecycle===`consuming`&&(t.lifecycle=`consumed`)},()=>{t.lifecycle===`consuming`&&(t.lifecycle=`cancelled`)}),r}function en(e){let t=B.get(e);if(!t)throw Error(`Hosted auth-menu passkey preparation is unknown`);if(t.lifecycle!==`consuming`&&t.lifecycle!==`consumed`||!t.authority)throw Error(`Hosted auth-menu passkey credential must be started by its CTA`);return t.lifecycle=`completing`,t}async function tn(e){let t=Xt(e);t.lifecycle=`completing`;let n=!1,r=e=>{e.phase===ke.CANCELLED&&(n=!0)};try{let i=t.loginOptions.onEvent,a={...t.loginOptions,onEvent:e=>{r(e),i?.(e)}},o=e.kind===`hosted_passkey_linked_authority_login_prepared_v1`?await te(t.context,String(e.walletId),a):await me(t.context,e.subjectSet,a);return o.success?t.context.resumePendingAcknowledgementsV1():u(),{result:o,cancelledByUser:n}}finally{t.lifecycle=`finished`}}async function nn(e){let t=en(e),n=t.authority;if(!n)throw Error(`Hosted auth-menu passkey credential is missing`);try{let r=await n;return Yt(e),V(e.cancellation),await ie(t.context,e.challenge,r,t.syncOptions)}finally{t.lifecycle=`finished`}}function W(e){let t=B.get(e);!t||t.lifecycle===`finished`||t.lifecycle===`cancelled`||(t.lifecycle=`cancelled`)}const rn=`That recovery code can’t be used. Check the code and try again.`;function an(e){let t=e.replace(/[\s-]/g,``);if(!t)return`Enter a recovery code.`;if(t.length!==32)return`Enter all 32 characters of the recovery code.`;try{return Ae(t),null}catch{return rn}}function G(e){if(e.kind===`hosted_passkey_registration_prepared_v1`){be(e);return}W(e)}function K(){}function on(e){return e.target.kind===`passkey`}function sn(e){return e.kind===`recovery`&&e.stage===`finalizing`&&(e.operation.kind===`hosted_recovery_credential_created`||e.operation.kind===`hosted_recovery_email_otp_verified`)}function cn(e){return e.kind===`authenticated`||e.kind===`registered`||e.kind===`account_synced`}function ln(e){return e.targetFactor.kind===`email_otp`?{targetFactor:e.targetFactor,targetEmail:ee(e.targetEmail)}:{targetFactor:e.targetFactor}}const un=1300,dn={kind:`recoverable`,reason:`error`,message:`Google sign-in was cancelled.`};function q(e){let t=e.mode??e.request.initialMode,n=e.request.copy[t],r={kind:`passkey`,appearance:e.appearance,hostname:e.hostname,closeLabel:e.request.copy.common.closeLabel,heading:n.title,subtitle:n.subtitle,ctaLabel:n.passkeyCta,showProgress:e.request.showProgress,enabledExternalProviders:e.request.enabledExternalProviders,status:{kind:`idle`,interaction:`arming`}};return t===`register`?{...r,mode:t,showRegistrationInput:e.request.showRegistrationInput||e.request.registrationAccountInput===`sponsored_named_near_account`,passkeyNameReadOnly:e.request.registrationAccountInput===`implicit_wallet`,passkeyName:e.request.registrationAccountInput===`implicit_wallet`?String(p()):``,passkeyNameLabel:e.request.copy.register.passkeyNameLabel}:{...r,mode:t,accountOptions:[],selectedAccount:null}}function fn(e){let t=q({...e,mode:`login`});if(t.kind!==`passkey`||t.mode!==`login`)throw Error(`login view model construction failed`);return t}async function pn(e){let[t]=await Promise.allSettled([e,new Promise(e=>setTimeout(e,500))]);if(t.status===`rejected`)throw t.reason;return t.value}function mn(e){return e.trim()||`Wallet`}function hn(e){return`close_button`}function J(){try{let e=globalThis.crypto?.randomUUID?.();if(e)return`auth-menu-external-${e}`}catch{}return`auth-menu-external-${Date.now()}-${Math.random().toString(36).slice(2)}`}function gn(e){return{appearance:e.base.appearance,hostname:e.base.hostname,closeLabel:e.base.closeLabel,heading:e.flow.prompt.title,subtitle:e.flow.prompt.description,ctaLabel:e.flow.prompt.submitLabel,showProgress:e.base.showProgress,enabledExternalProviders:e.base.enabledExternalProviders,status:e.status}}function _n(e){let t=`google-email-otp-login:${e.flow.walletId}:`;if(!e.flow.flowId.startsWith(t))throw Error(`Google Email OTP login flow identity is invalid`);return{...gn({base:e.base,flow:e.flow,status:e.status??{kind:`idle`,interaction:`actionable`}}),kind:`google_otp_login`,mode:`login`,emailHint:e.flow.emailHint,walletId:String(e.flow.walletId),challengeId:e.flow.flowId.slice(t.length),prompt:e.flow.prompt,delivery:e.flow.delivery,otpCode:e.otpCode??``,resendBusy:e.resendBusy??!1,submitBusy:e.submitBusy??!1,...e.error?{error:e.error}:{}}}function vn(e){return{...gn({base:e.base,flow:e.flow,status:e.status??{kind:`idle`,interaction:`actionable`}}),kind:`google_registration`,mode:`register`,emailHint:e.flow.emailHint,walletId:String(e.flow.walletId),prompt:e.flow.prompt,rerollBusy:e.rerollBusy??!1,submitBusy:e.submitBusy??!1,...e.error?{error:e.error}:{}}}function Y(e){return e instanceof Error&&e.message.trim()?e.message.trim():String(e)}function yn(e){switch(e.kind){case`passkey`:return e.status.kind===`recoverable`?{mode:e.mode,message:e.status.detail??e.status.message}:null;case`google_otp_login`:case`google_registration`:return e.error?{mode:e.mode,message:e.error}:e.status.kind===`recoverable`?{mode:e.mode,message:e.status.message}:null;case`link_device`:return null;case`recovery`:return e.stage===`sign_in_ready`&&e.status.kind===`recoverable`?{mode:`login`,message:e.status.detail??e.status.message}:null;default:{let t=e;throw Error(`Unknown auth-menu view model: ${JSON.stringify(t)}`)}}}function bn(e){return{kind:`link_device`,appearance:e.appearance,hostname:e.hostname,closeLabel:e.closeLabel,heading:`Scan and link device`,subtitle:`Scan this code with your other device.`,ctaLabel:``,showProgress:e.showProgress,enabledExternalProviders:e.enabledExternalProviders,status:{kind:`idle`,interaction:`actionable`},mode:e.mode,linkDevice:{kind:`select_factor`,targetFactor:{kind:`passkey_prf`}}}}function X(e){let t={kind:`recovery`,mode:`login`,appearance:e.base.appearance,hostname:e.base.hostname,closeLabel:e.base.closeLabel,heading:`Recover wallet`,subtitle:e.stage===`sign_in_ready`?e.target.kind===`google_email_otp`?`Your Google account is ready to unlock your wallet.`:`Your wallet is ready. Unlock it with your passkey.`:e.stage===`choose_method`||e.stage===`preparing`?`Choose how you will sign in to this wallet from now on.`:`Enter a recovery code to recover your wallet.`,ctaLabel:e.stage===`passkey_ready`?`Create new passkey`:e.stage===`google_ready`?`Continue with Google`:e.stage===`email_code_required`?`Verify email code`:e.stage===`sign_in_ready`?e.target.kind===`google_email_otp`?`Unlock with Google`:`Unlock with new passkey`:e.stage===`preparing`||e.stage===`choose_method`?`Create a passkey`:`Continue`,showProgress:e.base.showProgress,enabledExternalProviders:e.base.enabledExternalProviders,recoveryCode:e.recoveryCode??``,recoveryCodeError:e.recoveryCodeError??null};switch(e.stage){case void 0:case`enter_code`:return{...t,stage:`enter_code`,status:e.status??{kind:`idle`,interaction:`actionable`}};case`choose_method`:return{...t,stage:`choose_method`,status:e.status??{kind:`idle`,interaction:`actionable`}};case`preparing`:return{...t,stage:e.stage,target:e.target,status:e.status};case`passkey_ready`:return{...t,target:e.target,walletId:e.walletId,stage:e.stage,status:e.status??{kind:`idle`,interaction:`actionable`}};case`google_ready`:return{...t,target:e.target,walletId:e.walletId,stage:e.stage,status:e.status??{kind:`idle`,interaction:`actionable`}};case`email_code_required`:return{...t,target:e.target,walletId:e.walletId,stage:e.stage,challengeId:e.challengeId,emailHint:e.emailHint,delivery:e.delivery,otpCode:e.otpCode??``,status:e.status??{kind:`idle`,interaction:`awaiting_input`}};case`finalizing`:return{...t,target:e.target,walletId:e.walletId,stage:e.stage,status:e.status};case`sign_in_ready`:return{...t,target:e.target,walletId:e.walletId,stage:e.stage,status:e.status??{kind:`idle`,interaction:`actionable`}}}}function Z(e){if(e.stage===`enter_code`||e.stage===`choose_method`||e.stage===`preparing`)throw Error(`recovery wallet id is unavailable before preparation`);return e.walletId}function Q(e){if(e.stage===`enter_code`||e.stage===`choose_method`)throw Error(`recovery target is unavailable before preparation`);return e.target}function $(e){return e.kind===`dismissed`?{kind:`idle`,interaction:`actionable`}:{kind:`recoverable`,reason:`error`,message:e.kind===`consumed`?`That recovery code has already been used. Use another code.`:rn}}function xn(){return{kind:`recoverable`,reason:`error`,message:`Recovery couldn’t be completed. Try again.`}}function Sn(e){return e.kind===`dismissed`?{kind:`idle`,interaction:`actionable`}:{kind:`recoverable`,reason:`error`,message:`A passkey couldn’t be created. Try again.`}}var Cn=class{identity;request;stateValue;surface=null;outcomeResolver=null;outcomePromise=null;successTimers=[];cleanedUp=!1;prepared=null;preparePasskey=null;registrationPreparation=null;preparationCancellation=null;googleCancellation=null;beginGoogleEmailOtp;startDeviceLinking;cancelDeviceLinking;loginPreparation=null;loginAccountOptions=[];selectedLoginAccount=null;modeSelectionSource=`initial`;sendToParent;measurementReporter=null;preparationGeneration=0;googleGeneration=0;deviceLinkGeneration=0;linkedDeviceActivationInProgress=!1;targetPasskeyActivation=null;targetEmailOtpActivation=null;linkedDeviceEmailOtpSendStarted=!1;linkedDeviceTargetFactor={kind:`passkey_prf`};linkedDeviceTargetEmailAddress=``;preparationDeadlineTimer=null;preparationExpiryTimer=null;lastReportedError=null;recoveryPort;prepareRecoveredLogin;recoveryGeneration=0;recoveryCancellation=null;recoveryLoginPrepared=null;recoveryReturnState=null;constructor(e){this.identity={authMenuSessionId:e.request.authMenuSessionId,requestId:e.requestId},this.request=e.request,this.beginGoogleEmailOtp=e.beginGoogleEmailOtp,this.startDeviceLinking=e.startDeviceLinking,this.cancelDeviceLinking=e.cancelDeviceLinking,this.recoveryPort=e.recoveryPort,this.prepareRecoveredLogin=e.prepareRecoveredLogin,this.sendToParent=e.sendToParent,this.stateValue={kind:`preparing`,viewModel:q({request:e.request,appearance:e.appearance,hostname:mn(e.hostname)})}}get state(){return this.stateValue}setRegistrationPreparation(e){this.registrationPreparation=e,this.stateValue.kind!==`complete`&&this.currentViewModel().mode===`register`&&(this.preparePasskey=null,this.startPasskeyPreparation())}setPasskeyPreparation(e){this.preparePasskey=e,this.startPasskeyPreparation()}setLoginPreparation(e){let t=this.stateValue.kind===`complete`?null:this.currentViewModel();t?.kind===`passkey`&&t.mode===`login`&&(this.stateValue.kind===`preparing`||this.stateValue.kind===`ready`)&&this.invalidatePreparation(),this.loginPreparation=e.prepare,this.loginAccountOptions=e.accountOptions,this.selectedLoginAccount=e.selectedAccount,this.updateLoginSelectionViewModel(),(this.stateValue.kind===`preparing`||this.stateValue.kind===`ready`)&&this.currentViewModel().mode===`login`&&this.activateSelectedLoginMethod()}defaultToLoginForDetectedLocalWallet(){if(this.modeSelectionSource!==`initial`||this.stateValue.kind===`complete`)return;let e=this.currentViewModel();e.kind!==`passkey`||e.mode!==`register`||this.showPasskeyMode(`login`)}prepareSelectedLogin=e=>{if(!this.loginPreparation)throw Error(`Hosted login preparation is unavailable`);let t=x(this.loginAccountOptions,this.selectedLoginAccount);if(!S(t))throw Error(`Email OTP accounts require Google sign-in`);return this.loginPreparation(t.kind===`discoverable`?null:t.walletId,e)};activateSelectedLoginMethod(){if(S(x(this.loginAccountOptions,this.selectedLoginAccount))){this.setPasskeyPreparation(this.prepareSelectedLogin);return}this.preparePasskey=null;let e=this.stateValue;e.kind!==`preparing`&&e.kind!==`ready`||e.viewModel.kind!==`passkey`||e.viewModel.mode!==`login`||(this.stateValue={kind:`preparing`,viewModel:{...e.viewModel,status:{kind:`idle`,interaction:`actionable`}}},this.updateElement())}updateLoginSelectionViewModel(){let e=this.stateValue;e.kind!==`preparing`&&e.kind!==`ready`||e.viewModel.kind!==`passkey`||e.viewModel.mode!==`login`||(this.stateValue={...e,viewModel:{...e.viewModel,accountOptions:this.loginAccountOptions,selectedAccount:this.selectedLoginAccount}})}mount(){if(this.surface||this.cleanedUp)throw Error(`Hosted auth-menu session is already mounted`);if(document.querySelectorAll(`.seams-auth-menu-surface`).length>0)throw Error(`A hosted auth-menu surface is already mounted`);let e=document.body||document.documentElement;if(!e)throw Error(`Wallet host document has no mount root`);this.surface=Kt({parent:e,viewModel:this.currentViewModel(),onIntent:this.onIntent}),this.measurementReporter=Fe({kind:`auth_menu_surface`,element:this.surface.element,requestId:this.identity.requestId,authMenuSessionId:this.identity.authMenuSessionId,postMeasurement:this.postSurfaceMeasurement})}waitForOutcome(){return this.stateValue.kind===`complete`?Promise.resolve(this.stateValue.outcome):(this.outcomePromise||=new Promise(e=>{this.outcomeResolver=e}),this.outcomePromise)}cancel(e){if(this.stateValue.kind===`complete`){this.finish(this.stateValue.outcome);return}if(sn(this.stateValue)){if(e===`close_button`)return;this.complete({kind:`cancelled`,authMenuSessionId:this.identity.authMenuSessionId,reason:e});return}this.stateValue.kind===`link_device`&&console.error(`[Device2Linking] auth menu cancelled`,{reason:e}),this.invalidatePreparation(),this.complete({kind:`cancelled`,authMenuSessionId:this.identity.authMenuSessionId,reason:e})}startPasskeyPreparation(){if(this.stateValue.kind===`complete`)return;let e=this.currentViewModel();if(e.kind!==`passkey`)return;let t=e.mode===`register`?this.registrationPreparation:null,n=e.mode===`login`?this.preparePasskey:null;if(!n&&!t)return;if(t&&e.mode===`register`&&e.showRegistrationInput&&e.passkeyName.trim().length===0){this.invalidatePreparation(),this.stateValue={kind:`preparing`,viewModel:{...e,status:{kind:`idle`,interaction:`awaiting_input`}}},this.updateElement();return}this.clearPreparationExpiryTimer();let r=++this.preparationGeneration,i=new AbortController;this.preparationCancellation=i;let a={kind:`abort_signal`,signal:i.signal};this.stateValue={kind:`preparing`,viewModel:{...e,status:{kind:`idle`,interaction:`arming`}}},this.updateElement(),this.schedulePreparationDeadline(r,i),Promise.resolve().then(()=>t?t(this.registrationValue(),a,this.showRegistrationDelay):n(a)).then(t=>{if(r!==this.preparationGeneration||this.stateValue.kind===`complete`){G(t);return}this.clearPreparationDeadlineTimer(),this.prepared=t,this.stateValue={kind:`ready`,prepared:t,viewModel:{...e,status:{kind:`idle`,interaction:`actionable`}}},this.schedulePreparationExpiry(t),this.updateElement()},t=>{r!==this.preparationGeneration||this.stateValue.kind===`complete`||(this.clearPreparationDeadlineTimer(),this.stateValue={kind:`preparing`,viewModel:{...e,status:b(Y(t))}},this.updateElement())})}invalidatePreparation(){this.invalidateRecovery(),this.stateValue.kind===`link_device`&&(this.deviceLinkGeneration+=1,this.cancelDeviceLinking().catch(()=>{})),this.clearPreparationDeadlineTimer(),this.clearPreparationExpiryTimer(),this.preparationGeneration+=1,this.preparationCancellation?.abort(),this.preparationCancellation=null,this.googleGeneration+=1,this.googleCancellation?.abort(),this.googleCancellation=null;let e=this.prepared;this.prepared=null,e&&G(e),this.stateValue.kind===`performing`&&G(this.stateValue.prepared),(this.stateValue.kind===`google_login`||this.stateValue.kind===`google_registration`)&&this.stateValue.flow.cancel().catch(()=>{})}invalidateRecovery(){this.recoveryGeneration+=1,this.recoveryCancellation?.abort(),this.recoveryCancellation=null;let e=this.recoveryLoginPrepared;this.recoveryLoginPrepared=null,e&&G(e);let t=this.stateValue;t.kind!==`recovery`||!t.operation||sn(t)||this.recoveryPort.cancel(t.operation).catch(()=>{})}registrationValue(){let e=this.stateValue;return(e.kind===`preparing`||e.kind===`ready`)&&e.viewModel.kind===`passkey`&&e.viewModel.mode===`register`?e.viewModel.passkeyName:``}clearPreparationExpiryTimer(){this.preparationExpiryTimer!==null&&(clearTimeout(this.preparationExpiryTimer),this.preparationExpiryTimer=null)}clearPreparationDeadlineTimer(){this.preparationDeadlineTimer!==null&&(clearTimeout(this.preparationDeadlineTimer),this.preparationDeadlineTimer=null)}schedulePreparationDeadline(e,t){this.clearPreparationDeadlineTimer(),this.preparationDeadlineTimer=setTimeout(this.expirePasskeyPreparation.bind(this,e,t),2e4)}expirePasskeyPreparation(e,t){let n=this.stateValue;e!==this.preparationGeneration||t!==this.preparationCancellation||n.kind!==`preparing`||n.viewModel.kind!==`passkey`||n.viewModel.status.kind!==`idle`||n.viewModel.status.interaction!==`arming`||(this.clearPreparationDeadlineTimer(),this.preparationGeneration+=1,this.preparationCancellation=null,t.abort(),this.stateValue={kind:`preparing`,viewModel:{...n.viewModel,status:b(`Passkey preparation timed out`)}},this.updateElement())}schedulePreparationExpiry(e){this.clearPreparationExpiryTimer();let t=Math.max(0,e.expiresAtMs-Date.now());this.preparationExpiryTimer=setTimeout(()=>{this.preparationExpiryTimer=null,!(this.stateValue.kind!==`ready`||this.stateValue.prepared!==e||this.prepared!==e||this.stateValue.viewModel.kind!==`passkey`)&&(G(e),this.prepared=null,this.stateValue={kind:`preparing`,viewModel:{...this.stateValue.viewModel,status:{kind:`recoverable`,reason:`expired`,message:`Passkey preparation expired. Retry to continue.`}}},this.updateElement())},t)}startGoogleFlow(e,t){this.invalidatePreparation();let n=++this.googleGeneration,r=new AbortController;this.googleCancellation=r;let i=this.currentViewModel();i.kind===`recovery`||i.kind===`link_device`||(this.stateValue={kind:`preparing`,viewModel:{...i,status:{kind:`busy`,headline:`Waiting for Google login…`,illustration:`google`,detail:`Starting Google sign-in`}}},this.updateElement(),this.beginGoogleEmailOtp({idToken:e,authTarget:t,signal:r.signal}).then(e=>{if(n!==this.googleGeneration||r.signal.aborted||this.stateValue.kind===`complete`){e.cancel().catch(()=>{});return}this.googleCancellation=null,e.mode===`login`?this.stateValue={kind:`google_login`,flow:e,viewModel:_n({base:i,flow:e})}:this.stateValue={kind:`google_registration`,flow:e,viewModel:vn({base:i,flow:e})},this.updateElement()},e=>{n!==this.googleGeneration||r.signal.aborted||this.stateValue.kind===`complete`||(this.googleCancellation=null,this.stateValue={kind:`preparing`,viewModel:{...i,status:b(Y(e))}},this.updateElement())}))}requestExternalAuth(e){if(this.stateValue.kind===`complete`)return null;if(this.stateValue.kind===`recovery`&&this.stateValue.stage===`google_ready`)return this.requestRecoveryGoogleVerification(e,this.stateValue);if(this.stateValue.kind===`recovery`&&this.stateValue.stage===`sign_in_ready`&&this.stateValue.viewModel.target.kind===`google_email_otp`)return this.requestRecoveredGoogleSignIn(e,this.stateValue);let t=this.currentViewModel();if(t.kind!==`passkey`||!this.request.enabledExternalProviders.includes(e)||this.stateValue.kind===`awaiting_external_auth`)return null;let n;if(t.mode===`register`)n={mode:`register`};else{let e=x(t.accountOptions,t.selectedAccount);if(!it(e))return null;n={mode:`login`,loginTarget:e.loginTarget}}this.invalidatePreparation();let i=r(J());if(!i)return null;let a={kind:`hosted_auth_menu_external_auth_request_v1`,authMenuSessionId:this.identity.authMenuSessionId,externalAuthRequestId:i,provider:e,mode:t.mode};return this.stateValue={kind:`awaiting_external_auth`,viewModel:{...t,status:{kind:`busy`,headline:`Waiting for Google login…`,illustration:`google`,detail:`Waiting for Google sign-in`}},request:a,authTarget:n},this.updateElement(),this.sendToParent({type:`AUTH_MENU_EXTERNAL_AUTH_REQUEST`,requestId:this.identity.requestId,payload:a}),a}acceptExternalAuthResolution(e){let t=this.stateValue;if(t.kind===`recovery`&&t.stage===`google_external_auth`){if(t.request.authMenuSessionId!==e.authMenuSessionId||t.request.externalAuthRequestId!==e.externalAuthRequestId||this.identity.requestId!==e.requestId)return!1;if(e.evidence.kind===`google_id_token`)return this.startRecoveryGoogleVerification(t,e.evidence.idToken),!0;let n=e.evidence.kind===`cancelled`?dn:b(e.evidence.message);return this.stateValue={kind:`recovery`,stage:`google_ready`,operation:t.operation,returnState:t.returnState,viewModel:X({base:t.viewModel,walletId:Z(t.viewModel),stage:`google_ready`,target:t.operation.target,status:n})},this.updateElement(),!0}if(t.kind!==`awaiting_external_auth`||t.viewModel.kind!==`passkey`||t.request.authMenuSessionId!==e.authMenuSessionId||t.request.externalAuthRequestId!==e.externalAuthRequestId||this.identity.requestId!==e.requestId)return!1;switch(e.evidence.kind){case`google_id_token`:return this.startGoogleFlow(e.evidence.idToken,t.authTarget),!0;case`cancelled`:case`failed`:{let n=e.evidence.kind===`cancelled`?dn:b(e.evidence.message);return this.stateValue={kind:`preparing`,viewModel:{...t.viewModel,status:n}},this.updateElement(),!0}default:return On(e.evidence)}}requestRecoveryGoogleVerification(e,t){if(!this.request.enabledExternalProviders.includes(e))return null;let n=r(J());if(!n)return null;let i={kind:`hosted_auth_menu_external_auth_request_v1`,authMenuSessionId:this.identity.authMenuSessionId,externalAuthRequestId:n,provider:e,mode:`login`};return this.stateValue={kind:`recovery`,stage:`google_external_auth`,operation:t.operation,returnState:t.returnState,request:i,viewModel:X({base:t.viewModel,walletId:Z(t.viewModel),stage:`finalizing`,target:t.operation.target,status:{kind:`busy`,headline:`Waiting for Google login…`,illustration:`google`,detail:`Waiting for Google sign-in`}})},this.updateElement(),this.sendToParent({type:`AUTH_MENU_EXTERNAL_AUTH_REQUEST`,requestId:this.identity.requestId,payload:i}),i}requestRecoveredGoogleSignIn(e,t){if(!this.request.enabledExternalProviders.includes(e))return null;let n=r(J());if(!n)return null;let i={kind:`hosted_auth_menu_external_auth_request_v1`,authMenuSessionId:this.identity.authMenuSessionId,externalAuthRequestId:n,provider:e,mode:`login`};return this.stateValue={kind:`awaiting_external_auth`,request:i,authTarget:{mode:`login`,loginTarget:{kind:`wallet`,walletId:Z(t.viewModel)}},viewModel:{...fn({request:this.request,appearance:t.viewModel.appearance,hostname:t.viewModel.hostname}),status:{kind:`busy`,headline:`Waiting for Google login…`,illustration:`google`,detail:`Waiting for Google sign-in`}}},this.updateElement(),this.sendToParent({type:`AUTH_MENU_EXTERNAL_AUTH_REQUEST`,requestId:this.identity.requestId,payload:i}),i}cleanup(){if(!this.cleanedUp){this.cleanedUp=!0;for(let e of this.successTimers)clearTimeout(e);this.successTimers=[],this.invalidatePreparation(),this.measurementReporter?.disconnect(),this.measurementReporter=null,this.surface?.dispose(),this.surface=null}}postSurfaceMeasurement=e=>{this.sendToParent({type:`SURFACE_MEASUREMENT`,payload:e})};currentViewModel(){switch(this.stateValue.kind){case`preparing`:case`awaiting_external_auth`:case`ready`:case`performing`:return this.stateValue.viewModel;case`google_login`:case`google_registration`:case`link_device`:case`recovery`:return this.stateValue.viewModel;case`complete`:throw Error(`Completed auth-menu session has no view model`)}}updateElement(){let e=this.currentViewModel();this.reportPresentedError(e),this.surface?.update(e)}reportPresentedError(e){let t=yn(e);if(!t){this.lastReportedError=null;return}let n=`${t.mode}:${t.message}`;if(n===this.lastReportedError)return;this.lastReportedError=n;let r=o({kind:`hosted_auth_menu_error_v1`,authMenuSessionId:this.identity.authMenuSessionId,mode:t.mode,message:t.message});if(!r)throw Error(`Unable to emit hosted auth-menu error event`);this.sendToParent({type:`AUTH_MENU_ERROR`,requestId:this.identity.requestId,payload:r})}onIntent=e=>{if(this.stateValue.kind!==`complete`)switch(e.kind){case`mode_selected`:this.selectMode(e.mode);return;case`back`:this.back();return;case`link_device_open`:this.openLinkDevice();return;case`recovery_open`:this.openRecovery();return;case`recovery_code_changed`:this.changeRecoveryCode(e.recoveryCode);return;case`recovery_code_submit`:this.submitRecoveryCode();return;case`recovery_passkey_selected`:this.prepareRecovery(`passkey`);return;case`recovery_google_selected`:this.prepareRecovery(`google_email_otp`);return;case`recovery_google_otp_code_changed`:this.changeRecoveryGoogleOtpCode(e.code);return;case`recovery_google_otp_submit`:this.submitRecoveryGoogleOtp();return;case`recovery_create_passkey`:this.createRecoveryPasskey();return;case`recovery_sign_in`:this.signInRecoveredWallet();return;case`link_device_factor_selected`:this.selectLinkedDeviceTargetFactor(e.targetFactor);return;case`link_device_target_email_changed`:this.changeLinkedDeviceTargetEmailAddress(e.emailAddress);return;case`link_device_start`:this.startSelectedDeviceLinking();return;case`link_device_create_passkey`:this.createLinkedDevicePasskey();return;case`link_device_email_otp_code_changed`:this.changeLinkedDeviceEmailOtpCode(e.code);return;case`link_device_email_otp_resend`:this.resendLinkedDeviceEmailOtp();return;case`link_device_email_otp_submit`:this.submitLinkedDeviceEmailOtp();return;case`registration_reroll`:this.rerollRegistrationWallet();return;case`close`:this.cancel(hn(e));return;case`passkey_name_changed`:{let t=this.stateValue.kind===`preparing`||this.stateValue.kind===`ready`?this.stateValue.viewModel:null;t?.kind===`passkey`&&t.mode===`register`&&!t.passkeyNameReadOnly&&(this.invalidatePreparation(),this.stateValue={kind:`preparing`,viewModel:{...t,passkeyName:e.passkeyName,status:{kind:`idle`,interaction:`arming`}}},this.updateElement(),this.startPasskeyPreparation());return}case`login_account_selected`:this.selectLoginAccount(e.walletId,e.authMethod);return;case`submit`:if(this.stateValue.kind===`preparing`&&this.stateValue.viewModel.status.kind===`recoverable`){this.retryPreparation();return}this.stateValue.kind===`ready`&&this.prepared===this.stateValue.prepared&&(e.mode===`register`&&this.stateValue.prepared.kind===`hosted_passkey_registration_prepared_v1`||e.mode===`login`&&(this.stateValue.prepared.kind===`hosted_passkey_owner_login_prepared_v1`||this.stateValue.prepared.kind===`hosted_passkey_linked_authority_login_prepared_v1`||this.stateValue.prepared.kind===`hosted_passkey_account_sync_prepared_v1`))&&this.performPreparedPasskey(this.stateValue.prepared);return;case`external_auth`:this.requestExternalAuth(e.provider);return;case`google_otp_code_changed`:this.updateGoogleOtpCode(e.code);return;case`google_otp_resend`:this.resendGoogleOtp();return;case`google_otp_submit`:this.submitGoogleOtp();return;case`google_registration_reroll`:this.rerollGoogleRegistration();return;case`google_registration_complete`:this.completeGoogleRegistration();return;case`retry`:this.retryPreparation();return;default:return wn(e)}};selectMode(e){let t=this.stateValue;t.kind===`complete`||t.kind===`performing`||t.kind===`link_device`||(this.modeSelectionSource=`user`,this.currentViewModel().mode!==e&&this.showPasskeyMode(e))}showPasskeyMode(e){if(this.stateValue.kind===`complete`||this.stateValue.kind===`link_device`)return;let t=this.currentViewModel();this.invalidatePreparation();let n=q({request:{...this.request,initialMode:e},appearance:t.appearance,hostname:t.hostname,mode:e});this.stateValue={kind:`preparing`,viewModel:n.kind===`passkey`&&n.mode===`login`?{...n,accountOptions:this.loginAccountOptions,selectedAccount:this.selectedLoginAccount}:n},this.updateElement(),e===`login`?this.activateSelectedLoginMethod():(this.preparePasskey=null,this.startPasskeyPreparation())}back(){if(this.stateValue.kind===`recovery`){if(this.stateValue.stage===`finalizing`)return;if(this.stateValue.stage===`choose_method`){this.returnToRecoveryCode();return}this.closeRecovery();return}if(this.stateValue.kind===`link_device`){this.closeLinkDevice();return}(this.stateValue.kind===`performing`||this.stateValue.kind===`awaiting_external_auth`||this.stateValue.kind===`google_login`||this.stateValue.kind===`google_registration`)&&this.showPasskeyMode(this.stateValue.viewModel.mode)}openRecovery(){let e=this.stateValue;if(e.kind!==`preparing`&&e.kind!==`ready`||e.viewModel.kind!==`passkey`)return;let t={kind:`preparing`,viewModel:{...e.viewModel,status:{kind:`idle`,interaction:`arming`}}};this.invalidatePreparation(),this.recoveryReturnState=t,this.stateValue={kind:`recovery`,stage:`enter_code`,returnState:t,viewModel:X({base:e.viewModel})},this.updateElement()}closeRecovery(){let e=this.stateValue;if(e.kind!==`recovery`)return;let t=e.returnState;this.invalidateRecovery(),this.recoveryReturnState=null,this.stateValue=t,this.updateElement(),this.preparePasskey=t.viewModel.mode===`login`?this.prepareSelectedLogin:null,this.startPasskeyPreparation()}changeRecoveryCode(e){let t=this.stateValue;t.kind!==`recovery`||t.stage!==`enter_code`||(this.stateValue={...t,viewModel:{...t.viewModel,recoveryCode:e,recoveryCodeError:null}},this.updateElement())}submitRecoveryCode(){let e=this.stateValue;if(e.kind!==`recovery`||e.stage!==`enter_code`)return;let t=an(e.viewModel.recoveryCode);if(t){this.stateValue={...e,viewModel:{...e.viewModel,recoveryCodeError:t}},this.updateElement();return}this.stateValue={...e,stage:`choose_method`,viewModel:X({base:e.viewModel,recoveryCode:e.viewModel.recoveryCode,stage:`choose_method`})},this.updateElement()}returnToRecoveryCode(){let e=this.stateValue;e.kind!==`recovery`||e.stage!==`choose_method`||(this.stateValue={...e,stage:`enter_code`,viewModel:X({base:e.viewModel,recoveryCode:e.viewModel.recoveryCode})},this.updateElement())}prepareRecovery(e=`passkey`){let t=this.stateValue;if(t.kind!==`recovery`||t.stage!==`choose_method`)return;let n=t.viewModel.recoveryCode.trim(),r;try{r=this.recoveryPort.targetFor(e)}catch{this.stateValue={...t,viewModel:X({base:t.viewModel,recoveryCode:t.viewModel.recoveryCode,stage:`choose_method`,status:$({kind:`refused`})})},this.updateElement();return}let i=++this.recoveryGeneration,a=new AbortController;this.recoveryCancellation=a,this.stateValue={...t,stage:`preparing`,viewModel:X({base:t.viewModel,recoveryCode:t.viewModel.recoveryCode,stage:`preparing`,target:r,status:{kind:`busy`,headline:`Checking recovery code…`}})},this.updateElement();let o;try{o=this.recoveryPort.prepare({recoveryCode:n,target:r,signal:a.signal})}catch{this.rejectRecoveryPreparation(i);return}o.then(this.completeRecoveryPreparation.bind(this,i),this.rejectRecoveryPreparation.bind(this,i))}completeRecoveryPreparation(e,t){let n=this.stateValue;if(e!==this.recoveryGeneration||n.kind!==`recovery`){t.kind===`hosted_recovery_prepared`&&this.recoveryPort.cancel(t).catch(K);return}if(this.recoveryCancellation=null,t.kind!==`hosted_recovery_prepared`){this.stateValue={kind:`recovery`,stage:`enter_code`,returnState:n.returnState,viewModel:X({base:n.viewModel,recoveryCode:n.viewModel.recoveryCode,status:$(t)})},this.updateElement();return}if(on(t)){this.stateValue={kind:`recovery`,stage:`passkey_ready`,operation:t,returnState:n.returnState,viewModel:X({base:n.viewModel,walletId:String(t.walletId),recoveryCode:``,stage:`passkey_ready`,target:t.target})},this.createRecoveryPasskey();return}let r={kind:`recovery`,stage:`google_ready`,operation:t,returnState:n.returnState,viewModel:X({base:n.viewModel,walletId:String(t.walletId),recoveryCode:``,stage:`google_ready`,target:t.target})};this.stateValue=r,this.requestRecoveryGoogleVerification(`google`,r)||(this.stateValue={...r,viewModel:X({base:r.viewModel,walletId:Z(r.viewModel),stage:`google_ready`,target:r.operation.target,status:{kind:`recoverable`,reason:`error`,message:`Google sign-in is unavailable. Try again.`}})},this.updateElement())}rejectRecoveryPreparation(e){let t=this.stateValue;e!==this.recoveryGeneration||t.kind!==`recovery`||(this.recoveryCancellation=null,this.stateValue={kind:`recovery`,stage:`enter_code`,returnState:t.returnState,viewModel:X({base:t.viewModel,recoveryCode:t.viewModel.recoveryCode,status:$({kind:`transport_uncertain`})})},this.updateElement())}startRecoveryGoogleVerification(e,t){let n=++this.recoveryGeneration;this.recoveryPort.verifyGoogle(e.operation,t).then(this.completeRecoveryGoogleVerification.bind(this,n),this.rejectRecoveryGoogleVerification.bind(this,n))}completeRecoveryGoogleVerification(e,t){let n=this.stateValue;if(e!==this.recoveryGeneration||n.kind!==`recovery`||n.stage!==`google_external_auth`){t.kind===`hosted_recovery_google_verified`&&this.recoveryPort.cancel(t).catch(K);return}if(t.kind!==`hosted_recovery_google_verified`){this.showRecoveryGoogleVerificationFailure(n,t);return}this.stateValue={kind:`recovery`,stage:`email_code_required`,operation:t,returnState:n.returnState,viewModel:X({base:n.viewModel,walletId:String(t.walletId),stage:`email_code_required`,target:t.target,challengeId:t.challengeId,emailHint:t.delivery.emailHint,delivery:t.delivery})},this.updateElement()}rejectRecoveryGoogleVerification(e){let t=this.stateValue;e!==this.recoveryGeneration||t.kind!==`recovery`||t.stage!==`google_external_auth`||this.showRecoveryGoogleVerificationFailure(t,{kind:`transport_uncertain`})}showRecoveryGoogleVerificationFailure(e,t){this.stateValue={kind:`recovery`,stage:`google_ready`,operation:e.operation,returnState:e.returnState,viewModel:X({base:e.viewModel,walletId:Z(e.viewModel),stage:`google_ready`,target:e.operation.target,status:$(t)})},this.updateElement()}changeRecoveryGoogleOtpCode(e){let t=this.stateValue;if(t.kind!==`recovery`||t.stage!==`email_code_required`)return;let n=e.replace(/\D/g,``).slice(0,6);this.stateValue={...t,viewModel:X({base:t.viewModel,walletId:Z(t.viewModel),stage:`email_code_required`,target:t.operation.target,challengeId:t.operation.challengeId,emailHint:t.operation.delivery.emailHint,delivery:t.operation.delivery,otpCode:n})},this.updateElement(),/^\d{6}$/.test(n)&&this.submitRecoveryGoogleOtp()}submitRecoveryGoogleOtp(){let e=this.stateValue;if(e.kind===`recovery`&&e.stage===`finalizing`&&e.operation.kind===`hosted_recovery_email_otp_verified`&&e.viewModel.status.kind===`recoverable`){this.finishRecovery(e.operation);return}if(e.kind!==`recovery`||e.stage!==`email_code_required`)return;let t=e.viewModel.otpCode.trim();if(!/^\d{6}$/.test(t))return;let n=++this.recoveryGeneration;this.stateValue={...e,viewModel:X({base:e.viewModel,walletId:Z(e.viewModel),stage:`email_code_required`,target:e.operation.target,challengeId:e.operation.challengeId,emailHint:e.operation.delivery.emailHint,delivery:e.operation.delivery,otpCode:t,status:{kind:`busy`,headline:`Verifying email code…`}})},this.updateElement(),this.recoveryPort.verifyEmailOtp(e.operation,{challengeId:e.operation.challengeId,otpCode:t}).then(this.completeRecoveryEmailOtpVerification.bind(this,n),this.rejectRecoveryEmailOtpVerification.bind(this,n))}completeRecoveryEmailOtpVerification(e,t){let n=this.stateValue;if(e!==this.recoveryGeneration||n.kind!==`recovery`||n.stage!==`email_code_required`){t.kind===`hosted_recovery_email_otp_verified`&&this.recoveryPort.cancel(t).catch(K);return}if(t.kind!==`hosted_recovery_email_otp_verified`){this.showRecoveryEmailOtpFailure(n,t);return}this.finishRecovery(t)}rejectRecoveryEmailOtpVerification(e){let t=this.stateValue;e!==this.recoveryGeneration||t.kind!==`recovery`||t.stage!==`email_code_required`||this.showRecoveryEmailOtpFailure(t,{kind:`transport_uncertain`})}showRecoveryEmailOtpFailure(e,t){this.stateValue={...e,viewModel:X({base:e.viewModel,walletId:Z(e.viewModel),stage:`email_code_required`,target:e.operation.target,challengeId:e.operation.challengeId,emailHint:e.operation.delivery.emailHint,delivery:e.operation.delivery,otpCode:e.viewModel.otpCode,status:$(t)})},this.updateElement()}createRecoveryPasskey(){let e=this.stateValue;if(e.kind!==`recovery`)return;if(e.stage===`finalizing`&&e.operation.kind===`hosted_recovery_credential_created`&&e.viewModel.status.kind===`recoverable`){this.finishRecovery(e.operation);return}if(e.stage!==`passkey_ready`)return;let t=++this.recoveryGeneration,n;try{n=this.recoveryPort.createPasskey(e.operation)}catch{this.showRecoveryCreateFailure(e,{kind:`refused`});return}this.stateValue={...e,stage:`finalizing`,viewModel:X({base:e.viewModel,walletId:Z(e.viewModel),stage:`finalizing`,target:Q(e.viewModel),status:{kind:`busy`,headline:`Creating new passkey…`}})},this.updateElement(),n.then(this.completeRecoveryCredentialCreation.bind(this,t),this.rejectRecoveryCredentialCreation.bind(this,t))}completeRecoveryCredentialCreation(e,t){let n=this.stateValue;if(e!==this.recoveryGeneration||n.kind!==`recovery`||n.stage!==`finalizing`||n.operation.kind!==`hosted_recovery_prepared`){t.kind===`hosted_recovery_credential_created`&&this.recoveryPort.cancel(t).catch(K);return}if(t.kind!==`hosted_recovery_credential_created`){this.showRecoveryCreateFailure({returnState:n.returnState,viewModel:n.viewModel,operation:n.operation},t);return}this.finishRecovery(t)}rejectRecoveryCredentialCreation(e){let t=this.stateValue;e!==this.recoveryGeneration||t.kind!==`recovery`||t.stage!==`finalizing`||t.operation.kind!==`hosted_recovery_prepared`||this.showRecoveryCreateFailure({returnState:t.returnState,viewModel:t.viewModel,operation:t.operation},{kind:`refused`})}showRecoveryCreateFailure(e,t){if(!on(e.operation)){this.recoveryPort.cancel(e.operation).catch(K),this.stateValue={kind:`recovery`,stage:`enter_code`,returnState:e.returnState,viewModel:X({base:e.viewModel,recoveryCode:``,status:$(t)})},this.updateElement();return}if(t.kind===`refused`){this.recoveryPort.cancel(e.operation).catch(K),this.stateValue={kind:`recovery`,stage:`enter_code`,returnState:e.returnState,viewModel:X({base:e.viewModel,recoveryCode:``,status:$(t)})},this.updateElement();return}this.stateValue={kind:`recovery`,stage:`passkey_ready`,operation:e.operation,returnState:e.returnState,viewModel:X({base:e.viewModel,walletId:Z(e.viewModel),stage:`passkey_ready`,target:e.operation.target,status:Sn(t)})},this.updateElement()}finishRecovery(e){let t=this.stateValue;if(t.kind!==`recovery`)return;let n=++this.recoveryGeneration;this.stateValue={kind:`recovery`,stage:`finalizing`,operation:e,returnState:t.returnState,viewModel:X({base:t.viewModel,walletId:Z(t.viewModel),stage:`finalizing`,target:Q(t.viewModel),status:{kind:`busy`,headline:`Finishing recovery…`}})},this.updateElement();let r;try{r=this.recoveryPort.finalize(e)}catch{this.rejectRecoveryFinalization(n);return}r.then(this.completeRecoveryFinalization.bind(this,n),this.rejectRecoveryFinalization.bind(this,n))}completeRecoveryFinalization(e,t){let n=this.stateValue;if(!(e!==this.recoveryGeneration||n.kind!==`recovery`||n.stage!==`finalizing`||n.operation.kind!==`hosted_recovery_credential_created`&&n.operation.kind!==`hosted_recovery_email_otp_verified`)){if(t.kind!==`ready_for_sign_in`){t.kind===`refused`?(this.recoveryPort.cancel(n.operation).catch(()=>{}),this.stateValue={kind:`recovery`,stage:`enter_code`,returnState:n.returnState,viewModel:X({base:n.viewModel,status:$(t)})}):this.stateValue={...n,viewModel:X({base:n.viewModel,walletId:Z(n.viewModel),stage:`finalizing`,target:Q(n.viewModel),status:xn()})},this.updateElement();return}if(n.operation.target.kind===`passkey`){this.prepareRecoveredPasskeyLogin(t.walletId,n.returnState);return}this.stateValue={kind:`recovery`,stage:`sign_in_ready`,returnState:n.returnState,viewModel:X({base:n.viewModel,walletId:String(t.walletId),stage:`sign_in_ready`,target:n.operation.target})},this.updateElement()}}rejectRecoveryFinalization(e){let t=this.stateValue;e!==this.recoveryGeneration||t.kind!==`recovery`||t.stage!==`finalizing`||t.operation.kind!==`hosted_recovery_credential_created`&&t.operation.kind!==`hosted_recovery_email_otp_verified`||(this.stateValue={...t,viewModel:X({base:t.viewModel,walletId:Z(t.viewModel),stage:`finalizing`,target:Q(t.viewModel),status:xn()})},this.updateElement())}prepareRecoveredPasskeyLogin(e,t){let n=this.stateValue;if(n.kind!==`recovery`)return;let r=++this.recoveryGeneration,i=new AbortController;this.recoveryCancellation=i;let a=this.prepareRecoveredLogin(e,{kind:`abort_signal`,signal:i.signal});this.stateValue={kind:`recovery`,stage:`sign_in_ready`,returnState:t,viewModel:X({base:n.viewModel,walletId:String(e),stage:`sign_in_ready`,target:Q(n.viewModel),status:{kind:`busy`,headline:`Preparing to unlock…`}})},this.updateElement(),a.then(this.completeRecoveredLoginPreparation.bind(this,r,t),this.rejectRecoveredLoginPreparation.bind(this,r,e,t))}completeRecoveredLoginPreparation(e,n,r){let i=this.stateValue;if(e!==this.recoveryGeneration||i.kind!==`recovery`){G(r);return}if(this.recoveryCancellation=null,r.kind!==`hosted_passkey_owner_login_prepared_v1`&&r.kind!==`hosted_passkey_linked_authority_login_prepared_v1`){G(r);let a=t(Z(i.viewModel));if(!a.ok)return;this.rejectRecoveredLoginPreparation(e,a.value,n);return}this.recoveryLoginPrepared=r,this.stateValue={kind:`recovery`,stage:`sign_in_ready`,returnState:n,viewModel:X({base:i.viewModel,walletId:Z(i.viewModel),stage:`sign_in_ready`,target:Q(i.viewModel)})},this.updateElement()}rejectRecoveredLoginPreparation(e,t,n){let r=this.stateValue;e!==this.recoveryGeneration||r.kind!==`recovery`||(this.recoveryCancellation=null,this.stateValue={kind:`recovery`,stage:`sign_in_ready`,returnState:n,viewModel:X({base:r.viewModel,walletId:String(t),stage:`sign_in_ready`,target:Q(r.viewModel),status:{kind:`recoverable`,reason:`error`,message:`Your wallet was recovered. Unlock it again to continue.`}})},this.updateElement())}signInRecoveredWallet(){let e=this.stateValue;if(e.kind!==`recovery`||e.stage!==`sign_in_ready`)return;if(e.viewModel.target.kind===`google_email_otp`){this.requestExternalAuth(`google`);return}let n=this.recoveryLoginPrepared;if(!n){let n=t(Z(e.viewModel));if(!n.ok)return;this.prepareRecoveredPasskeyLogin(n.value,e.returnState);return}this.recoveryLoginPrepared=null,this.performPreparedPasskey(n)}openLinkDevice(){let e=this.stateValue;if(e.kind!==`preparing`&&e.kind!==`ready`||e.viewModel.kind!==`passkey`)return;let t={kind:`preparing`,viewModel:{...e.viewModel,status:{kind:`idle`,interaction:`arming`}}};this.invalidatePreparation(),this.linkedDeviceActivationInProgress=!1,this.targetPasskeyActivation=null,this.targetEmailOtpActivation=null,this.linkedDeviceEmailOtpSendStarted=!1,this.linkedDeviceTargetFactor={kind:`passkey_prf`},this.linkedDeviceTargetEmailAddress=``,this.stateValue={kind:`link_device`,returnState:t,viewModel:bn(e.viewModel)},this.updateElement()}selectLinkedDeviceTargetFactor(e){let t=this.stateValue;t.kind!==`link_device`||t.viewModel.linkDevice.kind!==`select_factor`||(this.linkedDeviceTargetFactor=e,this.stateValue={...t,viewModel:{...t.viewModel,linkDevice:e.kind===`email_otp`?{kind:`select_factor`,targetFactor:e,targetEmail:this.linkedDeviceTargetEmailAddress}:{kind:`select_factor`,targetFactor:e}}},this.updateElement())}changeLinkedDeviceTargetEmailAddress(e){let t=this.stateValue;t.kind!==`link_device`||t.viewModel.linkDevice.kind!==`select_factor`||t.viewModel.linkDevice.targetFactor.kind!==`email_otp`||(this.linkedDeviceTargetEmailAddress=e,this.stateValue={...t,viewModel:{...t.viewModel,linkDevice:{kind:`select_factor`,targetFactor:t.viewModel.linkDevice.targetFactor,targetEmail:e}}},this.updateElement())}startSelectedDeviceLinking(){let e=this.stateValue;if(e.kind!==`link_device`||e.viewModel.linkDevice.kind!==`select_factor`)return;let t=e.viewModel.linkDevice,n;try{if(t.targetFactor.kind===`email_otp`){let e=t.targetEmail;if(typeof e!=`string`)throw Error(`linked-device target email address is unavailable`);n=ln({targetFactor:t.targetFactor,targetEmail:e})}else n=ln({targetFactor:t.targetFactor})}catch(t){this.stateValue={...e,viewModel:{...e.viewModel,linkDevice:{...e.viewModel.linkDevice,error:Y(t)}}},this.updateElement();return}let r=++this.deviceLinkGeneration;this.stateValue={...e,viewModel:{...e.viewModel,linkDevice:{kind:`loading`,message:`Generating QR code...`}}},this.updateElement(),this.startDeviceLinking(n,{onEvent:this.onLinkDeviceEvent.bind(this,r),onTargetFactorRequired:this.onTargetFactorRequired.bind(this,r)}).then(this.completeLinkDeviceOpen.bind(this,r)).catch(this.failLinkDeviceOpen.bind(this,r))}onLinkDeviceEvent(e,t){let n=this.stateValue;if(e!==this.deviceLinkGeneration||n.kind!==`link_device`)return;let r=De(t);switch(r.kind){case`active`:if(this.linkedDeviceActivationInProgress)return;this.linkedDeviceActivationInProgress=!0,this.complete({kind:`authenticated`,authMenuSessionId:this.identity.authMenuSessionId,walletId:r.walletId,method:this.linkedDeviceTargetFactor.kind===`email_otp`?`google_email_otp`:`passkey`});return;case`invalid_active`:this.showLinkedDeviceActivationError(n,Error(`Linked-device activation omitted its wallet identity`));return;case`failed`:if(t.error?.code===c.SESSION_EXPIRED){this.stateValue={...n,viewModel:{...n.viewModel,linkDevice:{kind:`expired`,message:`This linking request expired. Start again to link this device.`}}},this.updateElement();return}if(t.error?.code===c.DELIVERY_RECOVERY_REQUIRED){this.showLinkedDeviceActivationError(n,Error(t.message||`Go back and unlock the new linked method to finish setup.`));return}break;case`cancelled`:this.targetPasskeyActivation=null,this.targetEmailOtpActivation=null,this.linkedDeviceEmailOtpSendStarted=!1,this.stateValue={...n,viewModel:{...n.viewModel,linkDevice:{kind:`cancelled`,message:`The other device cancelled this linking request. Go back to try again.`}}},this.updateElement();return;case`pending`:break;default:return Tn(r)}let i=t.message?.trim();if(!i)return;let a=n.viewModel.linkDevice,o=a.kind===`email_otp_required`?a:a.kind===`ready`||a.kind===`passkey_required`||a.kind===`creating_passkey`?{...a,message:i}:{kind:`loading`,message:i};this.stateValue={...n,viewModel:{...n.viewModel,linkDevice:o}},this.updateElement()}showLinkedDeviceActivationError(e,t){this.stateValue={...e,viewModel:{...e.viewModel,linkDevice:{kind:`activation_error`,message:Y(t)}}},this.updateElement()}completeLinkDeviceOpen(e,t){let n=this.stateValue;e!==this.deviceLinkGeneration||n.kind!==`link_device`||this.linkedDeviceActivationInProgress||n.viewModel.linkDevice.kind!==`loading`||(this.stateValue={...n,viewModel:{...n.viewModel,linkDevice:this.targetPasskeyActivation?{kind:`passkey_required`,message:`Create a passkey to finish linking this device`}:{kind:`ready`,qrCodeDataURL:t.qrCodeDataURL,message:`Waiting for device to scan`}}},this.updateElement())}onTargetFactorRequired(e,t){switch(t.kind){case`linked_device_target_passkey_activation_v1`:this.onTargetPasskeyActivation(e,t);return;case`linked_device_target_email_otp_activation_v1`:this.onTargetEmailOtpActivation(e,t);return;default:return En(t)}}onTargetPasskeyActivation(e,t){let n=this.stateValue;e!==this.deviceLinkGeneration||n.kind!==`link_device`||(this.targetPasskeyActivation=t,n.viewModel.linkDevice.kind===`ready`&&(this.stateValue={...n,viewModel:{...n.viewModel,linkDevice:{kind:`passkey_required`,message:`Create a passkey to finish linking this device`}}},this.updateElement()))}onTargetEmailOtpActivation(e,t){let n=this.stateValue;e!==this.deviceLinkGeneration||n.kind!==`link_device`||(this.targetEmailOtpActivation=t,this.stateValue={...n,viewModel:{...n.viewModel,linkDevice:{kind:`email_otp_required`,state:t.state,otpCode:n.viewModel.linkDevice.kind===`email_otp_required`?n.viewModel.linkDevice.otpCode:``}}},this.updateElement(),t.state.kind===`sending`&&!this.linkedDeviceEmailOtpSendStarted&&(this.linkedDeviceEmailOtpSendStarted=!0,t.sendCode().catch(this.failLinkedDeviceEmailOtp.bind(this))))}changeLinkedDeviceEmailOtpCode(e){let t=this.stateValue;if(t.kind!==`link_device`||t.viewModel.linkDevice.kind!==`email_otp_required`)return;let n=e.replace(/\D/g,``).slice(0,6),r=t.viewModel.linkDevice.otpCode,i=t.viewModel.linkDevice.state;this.stateValue={...t,viewModel:{...t.viewModel,linkDevice:{...t.viewModel.linkDevice,otpCode:n}}},this.updateElement(),n.length===6&&n!==r&&(i.kind===`code_input`||i.kind===`incorrect`)&&this.submitLinkedDeviceEmailOtpCode(n)}resendLinkedDeviceEmailOtp(){let e=this.targetEmailOtpActivation;e&&e.resendCode().catch(this.failLinkedDeviceEmailOtp.bind(this))}submitLinkedDeviceEmailOtp(){let e=this.stateValue;e.kind!==`link_device`||e.viewModel.linkDevice.kind!==`email_otp_required`||e.viewModel.linkDevice.otpCode.length!==6||this.submitLinkedDeviceEmailOtpCode(e.viewModel.linkDevice.otpCode)}submitLinkedDeviceEmailOtpCode(e){let t=this.targetEmailOtpActivation;t&&t.submitCode(e).catch(this.failLinkedDeviceEmailOtp.bind(this))}failLinkedDeviceEmailOtp(e){let t=this.stateValue;t.kind===`link_device`&&this.showLinkedDeviceActivationError(t,e)}createLinkedDevicePasskey(){let e=this.stateValue,t=this.targetPasskeyActivation;!t||e.kind!==`link_device`||e.viewModel.linkDevice.kind!==`passkey_required`||(this.targetPasskeyActivation=null,this.stateValue={...e,viewModel:{...e.viewModel,linkDevice:{kind:`creating_passkey`,message:`Follow the passkey prompt on your screen`}}},this.updateElement(),t.createPasskey().catch(this.failTargetPasskeyCreation.bind(this)))}failTargetPasskeyCreation(e){let t=this.stateValue;t.kind===`link_device`&&(this.stateValue={...t,viewModel:{...t.viewModel,linkDevice:{kind:`error`,message:Y(e)}}},this.updateElement())}failLinkDeviceOpen(e,t){let n=this.stateValue;e!==this.deviceLinkGeneration||n.kind!==`link_device`||this.linkedDeviceActivationInProgress||n.viewModel.linkDevice.kind!==`loading`||(this.stateValue={...n,viewModel:{...n.viewModel,linkDevice:{kind:`error`,message:Y(t)}}},this.updateElement())}closeLinkDevice(){let e=this.stateValue;e.kind===`link_device`&&(this.deviceLinkGeneration+=1,this.targetPasskeyActivation=null,this.targetEmailOtpActivation=null,this.linkedDeviceEmailOtpSendStarted=!1,this.cancelDeviceLinking().catch(()=>{}),this.stateValue=e.returnState,this.updateElement(),this.startPasskeyPreparation())}rerollRegistrationWallet(){let e=this.stateValue;e.kind!==`ready`&&e.kind!==`preparing`||e.viewModel.kind!==`passkey`||e.viewModel.mode!==`register`||!e.viewModel.passkeyNameReadOnly||!e.viewModel.showRegistrationInput||(this.invalidatePreparation(),this.stateValue={kind:`preparing`,viewModel:{...e.viewModel,passkeyName:String(p()),status:{kind:`idle`,interaction:`arming`}}},this.updateElement(),this.startPasskeyPreparation())}selectLoginAccount(e,t){let n=this.loginAccountOptions.find(n=>n.walletId===e&&n.authMethod===t);if(!n||n.walletId===this.selectedLoginAccount?.walletId&&n.authMethod===this.selectedLoginAccount.authMethod)return;let r=this.stateValue;if(r.kind!==`preparing`&&r.kind!==`ready`||r.viewModel.kind!==`passkey`||r.viewModel.mode!==`login`)return;let i=n.walletId!==this.selectedLoginAccount?.walletId;if(this.selectedLoginAccount=n,!i){this.updateLoginSelectionViewModel(),this.updateElement();return}this.invalidatePreparation(),this.stateValue={kind:`preparing`,viewModel:{...r.viewModel,selectedAccount:n,status:{kind:`idle`,interaction:`arming`}}},this.updateElement(),this.activateSelectedLoginMethod()}retryPreparation(){let e=this.stateValue;e.kind!==`preparing`||e.viewModel.kind!==`passkey`||e.viewModel.status.kind!==`recoverable`||(this.invalidatePreparation(),this.stateValue={kind:`preparing`,viewModel:{...e.viewModel,status:{kind:`idle`,interaction:`arming`}}},this.updateElement(),this.startPasskeyPreparation())}updateGoogleOtpCode(e){let t=this.stateValue;if(t.kind!==`google_login`||t.viewModel.submitBusy)return;let n=e.replace(/\D/g,``).slice(0,6);this.stateValue={...t,viewModel:{...t.viewModel,otpCode:n,error:``}},this.updateElement(),/^\d{6}$/.test(n)&&this.submitGoogleOtp()}resendGoogleOtp(){let e=this.stateValue;if(e.kind!==`google_login`||e.viewModel.resendBusy)return;let t=e.flow;this.stateValue={...e,viewModel:{...e.viewModel,status:{kind:`busy`,headline:`Sending a new email code`},resendBusy:!0,error:``}},this.updateElement(),pn(t.resend()).then(n=>{if(this.stateValue.kind!==`google_login`||this.stateValue.flow!==t){n.ok&&n.value.cancel().catch(()=>{});return}if(!n.ok){this.stateValue={...this.stateValue,viewModel:{...this.stateValue.viewModel,status:{kind:`idle`,interaction:`actionable`},resendBusy:!1,error:n.error.message}},this.updateElement();return}if(n.value.mode!==`login`){n.value.cancel().catch(()=>{}),this.stateValue={...this.stateValue,viewModel:{...this.stateValue.viewModel,status:{kind:`idle`,interaction:`actionable`},resendBusy:!1,error:`Google returned an unexpected registration flow.`}},this.updateElement();return}let r=n.value;this.stateValue={kind:`google_login`,flow:r,viewModel:_n({base:e.viewModel,flow:r})},this.updateElement()},e=>{this.stateValue.kind!==`google_login`||this.stateValue.flow!==t||(this.stateValue={...this.stateValue,viewModel:{...this.stateValue.viewModel,status:{kind:`idle`,interaction:`actionable`},resendBusy:!1,error:Y(e)}},this.updateElement())})}submitGoogleOtp(){let e=this.stateValue;if(e.kind!==`google_login`||e.viewModel.submitBusy)return;let t=e.viewModel.otpCode;if(!/^\d{6}$/.test(t)){this.stateValue={...e,viewModel:{...e.viewModel,status:{kind:`idle`,interaction:`actionable`},error:`Enter the 6-digit code from your email.`}},this.updateElement();return}let n=e.flow;this.stateValue={...e,viewModel:{...e.viewModel,status:{kind:`busy`,headline:`Verifying your email code`},submitBusy:!0,error:``}},this.updateElement(),n.submit({otpCode:t}).then(e=>{if(!(this.stateValue.kind!==`google_login`||this.stateValue.flow!==n)){if(!e.ok){this.stateValue={...this.stateValue,viewModel:{...this.stateValue.viewModel,status:{kind:`idle`,interaction:`actionable`},submitBusy:!1,error:e.error.message}},this.updateElement();return}if(e.value.mode!==`login`){this.stateValue={...this.stateValue,viewModel:{...this.stateValue.viewModel,status:{kind:`idle`,interaction:`actionable`},submitBusy:!1,error:`Google returned an unexpected registration result.`}},this.updateElement();return}this.complete({kind:`authenticated`,authMenuSessionId:this.identity.authMenuSessionId,walletId:e.value.walletId,method:`google_email_otp`})}},e=>{this.stateValue.kind!==`google_login`||this.stateValue.flow!==n||(this.stateValue={...this.stateValue,viewModel:{...this.stateValue.viewModel,status:{kind:`idle`,interaction:`actionable`},submitBusy:!1,error:Y(e)}},this.updateElement())})}rerollGoogleRegistration(){let e=this.stateValue;if(e.kind!==`google_registration`||e.viewModel.rerollBusy)return;let t=e.flow;this.stateValue={...e,viewModel:{...e.viewModel,status:{kind:`busy`,headline:`Generating another wallet name`},rerollBusy:!0,error:``}},this.updateElement(),t.rerollWalletId().then(n=>{if(this.stateValue.kind!==`google_registration`||this.stateValue.flow!==t){n.ok&&n.value.cancel().catch(()=>{});return}if(!n.ok){this.stateValue={...this.stateValue,viewModel:{...this.stateValue.viewModel,status:{kind:`idle`,interaction:`actionable`},rerollBusy:!1,error:n.error.message}},this.updateElement();return}if(n.value.mode!==`register`){n.value.cancel().catch(()=>{}),this.stateValue={...this.stateValue,viewModel:{...this.stateValue.viewModel,status:{kind:`idle`,interaction:`actionable`},rerollBusy:!1,error:`Google returned an unexpected login flow.`}},this.updateElement();return}let r=n.value;this.stateValue={kind:`google_registration`,flow:r,viewModel:vn({base:e.viewModel,flow:r})},this.updateElement()},e=>{this.stateValue.kind!==`google_registration`||this.stateValue.flow!==t||(this.stateValue={...this.stateValue,viewModel:{...this.stateValue.viewModel,status:{kind:`idle`,interaction:`actionable`},rerollBusy:!1,error:Y(e)}},this.updateElement())})}completeGoogleRegistration(){let e=this.stateValue;if(e.kind!==`google_registration`||e.viewModel.submitBusy)return;let t=e.flow;this.stateValue={...e,viewModel:{...e.viewModel,status:{kind:`busy`,headline:`Creating your wallet`},submitBusy:!0,error:``}},this.updateElement(),t.completeRegistration().then(e=>{if(!(this.stateValue.kind!==`google_registration`||this.stateValue.flow!==t)){if(!e.ok){this.stateValue={...this.stateValue,viewModel:{...this.stateValue.viewModel,status:{kind:`idle`,interaction:`actionable`},submitBusy:!1,error:e.error.message}},this.updateElement();return}this.complete({kind:`registered`,authMenuSessionId:this.identity.authMenuSessionId,walletId:e.value.walletId,method:`google_email_otp`})}},e=>{this.stateValue.kind!==`google_registration`||this.stateValue.flow!==t||(this.stateValue={...this.stateValue,viewModel:{...this.stateValue.viewModel,status:{kind:`idle`,interaction:`actionable`},submitBusy:!1,error:Y(e)}},this.updateElement())})}complete(e){if(this.stateValue.kind===`complete`)return;let t=this.surface?this.currentViewModel():null;if(this.stateValue={kind:`complete`,outcome:e},t&&cn(e)&&this.showSuccess(t,e,`shown`)){this.invalidatePreparation(),this.successTimers=[setTimeout(this.showSuccess.bind(this,t,e,`leaving`),un),setTimeout(this.finish.bind(this,e),un+240)];return}this.finish(e)}showSuccess(e,t,n){let r=at(e,{kind:`succeeded`,...$e(t.kind),phase:n});return!r||!this.surface?!1:(this.surface.update(r),!0)}finish(e){this.cleanup();let t=this.outcomeResolver;this.outcomeResolver=null,t?.(e)}showRegistrationDelay=e=>{if(e.phase!==Oe.STEP_05_ED25519_SIGNER_PROVISION_DELAYED&&e.phase!==Oe.STEP_06_RELAY_BOOTSTRAP_DELAYED)return;let t=this.stateValue;if(t.kind!==`performing`)return;let n=t.viewModel;n.kind!==`passkey`||n.status.kind!==`busy`||(this.stateValue={...t,viewModel:{...n,status:{kind:`busy`,headline:e.message}}},this.updateElement())};performPreparedPasskey(e){this.prepared=null;let t=this.currentViewModel();if(this.stateValue={kind:`performing`,prepared:e,viewModel:t.kind===`recovery`?X({base:t,walletId:Z(t),stage:`sign_in_ready`,target:Q(t),status:{kind:`busy`,headline:Qe(`login`),illustration:`passkey`,detail:`Continue with your passkey`}}):{...t,status:{kind:`busy`,headline:Qe(t.mode),illustration:`passkey`,detail:`Continue with your passkey`}}},e.kind===`hosted_passkey_owner_login_prepared_v1`||e.kind===`hosted_passkey_linked_authority_login_prepared_v1`){this.updateElement(),this.finishPreparedPasskey(e);return}let n;try{n=this.startPreparedCredential(e)}catch(t){this.updateElement(),this.failPreparedPasskey(e,t);return}this.updateElement(),n.then(()=>this.finishPreparedPasskey(e),t=>this.failPreparedPasskey(e,t))}startPreparedCredential(e){return e.kind===`hosted_passkey_registration_prepared_v1`?Ce(e):$t(e)}async finishPreparedPasskey(e){try{switch(e.kind){case`hosted_passkey_registration_prepared_v1`:{let t=await ye({prepared:e});this.completeRegistrationResult(t);return}case`hosted_passkey_owner_login_prepared_v1`:case`hosted_passkey_linked_authority_login_prepared_v1`:{let t=await tn(e);this.completeLoginResult(t);return}case`hosted_passkey_account_sync_prepared_v1`:{let t=await nn(e);this.completeAccountSyncResult(t);return}default:return Dn(e)}}catch(t){this.failPreparedPasskey(e,t)}}completeRegistrationResult(e){if(!e.success||e.kind!==`wallet_registered`&&e.kind!==`ecdsa_wallet_registered_near_pending`){this.fail({kind:`error`,error:Error(e.success?`Hosted registration returned an unexpected result`:e.error)});return}let n=t(String(e.walletId));if(!n.ok){this.fail({kind:`error`,error:Error(`Hosted registration returned an invalid wallet id`)});return}this.complete({kind:`registered`,authMenuSessionId:this.identity.authMenuSessionId,walletId:n.value,method:`passkey`})}completeLoginResult(e){let n=e.result;if(!n.success){this.fail(e.cancelledByUser?{kind:`dismissed`}:{kind:`error`,error:Error(n.error)});return}let r=t(String(n.walletId));if(!r.ok){this.fail({kind:`error`,error:Error(`Hosted login returned an invalid wallet id`)});return}this.complete({kind:`authenticated`,authMenuSessionId:this.identity.authMenuSessionId,walletId:r.value,method:`passkey`})}completeAccountSyncResult(e){if(!e.success){this.fail({kind:`error`,error:Error(e.error)});return}let n=t(String(e.walletId));if(!n.ok){this.fail({kind:`error`,error:Error(`Hosted account sync returned an invalid wallet id`)});return}this.complete({kind:`account_synced`,authMenuSessionId:this.identity.authMenuSessionId,walletId:n.value})}failPreparedPasskey(e,t){if(this.stateValue.kind!==`performing`||this.stateValue.prepared!==e)return;if(this.preparationCancellation?.signal.aborted){this.fail({kind:`dismissed`});return}let n=t instanceof Error?t.name:``;if(n===`NotAllowedError`||n===`AbortError`){this.fail({kind:`dismissed`});return}this.fail({kind:`error`,error:t})}fail(e){if(this.stateValue.kind!==`performing`)return;let t=this.stateValue.viewModel;if(G(this.stateValue.prepared),this.prepared=null,t.kind===`recovery`){let n=this.recoveryReturnState;if(!n)return;this.recoveryLoginPrepared=null,this.stateValue={kind:`recovery`,stage:`sign_in_ready`,returnState:n,viewModel:X({base:t,walletId:Z(t),stage:`sign_in_ready`,target:Q(t),status:e.kind===`dismissed`?{kind:`idle`,interaction:`actionable`}:b(Y(e.error))})},this.updateElement();return}if(e.kind===`dismissed`){this.invalidatePreparation(),this.stateValue={kind:`preparing`,viewModel:{...t,status:{kind:`idle`,interaction:`arming`}}},this.updateElement(),this.startPasskeyPreparation();return}this.stateValue={kind:`preparing`,viewModel:{...t,status:b(Y(e.error))}},this.updateElement()}};function wn(e){throw Error(`Unhandled auth-menu intent: ${String(e)}`)}function Tn(e){throw Error(`Unhandled link-device flow outcome: ${String(e)}`)}function En(e){throw Error(`Unhandled linked-device target-factor activation: ${String(e)}`)}function Dn(e){throw Error(`Unhandled hosted passkey preparation: ${String(e)}`)}function On(e){throw Error(`Unhandled hosted external-auth evidence: ${String(e)}`)}function kn(e){return`${e.walletId}:${e.authMethod}`}function An(e,t){let n=String(e.walletId);switch(e.authMethod){case`passkey`:return{walletId:n,authMethod:`passkey`};case`email_otp`:return{walletId:n,authMethod:`email_otp`,emailAddress:e.emailAddress??(t?.authMethod===`email_otp`?t.emailAddress:null)}}}function jn(e,t=[]){let n=new Map;for(let t of e?.accounts??[]){if(t.authMethod!==f.passkey&&t.authMethod!==f.emailOtp)continue;let e=String(t.walletId||``).trim();if(!e)continue;let r=t.authMethod===f.passkey?{walletId:e,authMethod:`passkey`}:{walletId:e,authMethod:`email_otp`,emailAddress:null};n.set(kn(r),r)}for(let e of t){let t=String(e.walletId||``).trim();if(!t)continue;let r=`${t}:${e.authMethod}`,i=An(e,n.get(r));n.set(r,i)}return[...n.values()]}function Mn(e,t){let n=e?.lastUsedAccount;if(n?.authMethod===f.passkey||n?.authMethod===f.emailOtp){let e=String(n.walletId||``).trim(),r=t.find(t=>t.walletId===e&&t.authMethod===n.authMethod);if(r)return r}return t[0]??null}function Nn(e){let t=e?.lastUsedAccount;return!t||t.authMethod!==f.passkey&&t.authMethod!==`linked_device`?null:String(t.walletId||``).trim()||null}async function Pn(e){let t=await import(`./recovery-entrypoint-DWghFZrZ.js`),n=e();return t.createHostedRecoveryPort({context:n.getContext(),relayUrl:String(n.configs.network.relayer.url)})}var Fn=class{portPromise=null;constructor(e){this.getWalletRuntime=e}targetFor(t){if(t===`google_email_otp`)return{kind:t,googleProvider:`google`};let n=e(this.getWalletRuntime().getContext().signingEngine.getRpId());if(!n.ok)throw Error(`wallet recovery RP ID ${n.error.message}`);return{kind:t,rpId:n.value}}async prepare(e){return await(await this.port()).prepare(e)}async createPasskey(e){return await(await this.port()).createPasskey(e)}async verifyGoogle(e,t){return await(await this.port()).verifyGoogle(e,t)}async verifyEmailOtp(e,t){return await(await this.port()).verifyEmailOtp(e,t)}async finalize(e){return await(await this.port()).finalize(e)}async cancel(e){await(await this.port()).cancel(e)}port(){return this.portPromise??=Pn(this.getWalletRuntime),this.portPromise}};function In(){try{let e=document.referrer.trim();if(e){let t=new URL(e).hostname.trim();if(t)return t}}catch{}return window.location.hostname||`Wallet`}function Ln(e){switch(e.kind){case`discoverable`:return null;case`wallet`:case`wallet_sync`:return String(e.walletId)}}function Rn(e){window.setTimeout(e,0)}function zn(){return new Promise(Rn)}var Bn=class{sessions=new Map;constructor(e){this.deps=e}async open(e){if(!e.requestId)throw Error(`Hosted auth-menu open request requires requestId`);let t=ve(e.requestId);if(this.sessions.has(e.request.authMenuSessionId))throw Error(`Hosted auth-menu session is already active`);let n=new Cn({request:e.request,requestId:t,appearance:this.deps.getAppearance(),hostname:In(),beginGoogleEmailOtp:async({idToken:e,authTarget:t,signal:n})=>await this.beginGoogleEmailOtp({idToken:e,authTarget:t,signal:n}),startDeviceLinking:this.startDeviceLinking,cancelDeviceLinking:this.cancelDeviceLinking,recoveryPort:new Fn(this.deps.getWalletRuntime),prepareRecoveredLogin:this.prepareRecoveredLogin.bind(this,t,e.request.authMenuSessionId),sendToParent:this.deps.send}),r=n.waitForOutcome(),i=Ln(e.request.loginTarget);this.sessions.set(e.request.authMenuSessionId,n);try{return n.mount(),await zn(),n.setRegistrationPreparation((r,i,a)=>this.prepareRegistration(e.request,t,n.identity.authMenuSessionId,r,i,a)),i?await this.bootstrapLoginAccounts(n,t,e.request.loginTarget):(n.setLoginPreparation({accountOptions:[],selectedAccount:null,prepare:(r,i)=>this.prepareLogin(t,n.identity.authMenuSessionId,i,r,null,e.request.loginTarget)}),this.bootstrapLoginAccounts(n,t,e.request.loginTarget)),await r}finally{n.cleanup(),this.sessions.delete(e.request.authMenuSessionId)}}async bootstrapLoginAccounts(e,t,n){let[r,i]=await Promise.all([this.deps.getWalletRuntime().auth.getRecentUnlocks().catch(()=>null),le().catch(()=>[])]);if(e.state.kind===`complete`)return;let a=Ln(n),o=jn(r,i),s=a?o.filter(e=>e.walletId===a):o,c=s.length>0||!a?s:[{walletId:a,authMethod:f.passkey}];e.setLoginPreparation({accountOptions:c,selectedAccount:a?c[0]??null:Mn(r,c),prepare:(i,a)=>this.prepareLogin(t,e.identity.authMenuSessionId,a,i,r,n)}),i.length>0&&e.defaultToLoginForDetectedLocalWallet()}async prepareLogin(e,t,n,r,i,a){let o=z(this.deps.getWalletRuntime().getContext()),s=i??await this.deps.getWalletRuntime().auth.getRecentUnlocks().catch(()=>null),c=(await le().catch(()=>[])).find(e=>e.authMethod===f.passkey),l=r||Nn(s)||c?.walletId||null;return a.kind===`wallet_sync`?await U({context:o,walletId:String(a.walletId),authMenuSessionId:t,requestId:e,cancellation:n}):l?await H({context:o,walletId:l,authMenuSessionId:t,requestId:e,cancellation:n}):await U({context:o,walletId:l,authMenuSessionId:t,requestId:e,cancellation:n})}async prepareRecoveredLogin(e,t,n,r){return await H({context:z(this.deps.getWalletRuntime().getContext()),walletId:String(n),authMenuSessionId:t,requestId:e,cancellation:r})}async beginGoogleEmailOtp(e){if(e.signal.aborted)throw Error(`Google sign-in was cancelled`);let t=await this.deps.getWalletRuntime().auth.startGoogleSignIn({idToken:e.idToken,...e.authTarget});if(!t.ok)throw Error(t.error.message);let n=t.value;if(e.signal.aborted)throw await n.cancel().catch(()=>{}),Error(`Google sign-in was cancelled`);return n}startDeviceLinking=async(e,t)=>await this.deps.getWalletRuntime().devices.startLinking({...e,options:t});cancelDeviceLinking=async()=>await this.deps.getWalletRuntime().devices.cancelLinking();async prepareRegistration(t,n,r,i,a,o){let s=this.deps.getWalletRuntime().getContext(),c=e(String(s.signingEngine.getRpId()||``));if(!c.ok)throw Error(c.error.message);let l={kind:`provided`,walletId:Ee(i)},ee=Se({configs:s.configs,wallet:l,preference:t.registrationAccountInput===`sponsored_named_near_account`?{kind:`relayer_named_subaccount`}:{kind:`implicit_account`}});return await xe({context:s,wallet:l,signerSelection:we({configs:s.configs,accountProvisioning:ee,options:{}}),authMethod:{kind:`passkey`,rpId:c.value},authMenuSessionId:r,requestId:n,cancellation:a,options:{onEvent:o}})}cancel(e){let t=this.sessions.get(e.authMenuSessionId);return!t||t.identity.requestId!==e.requestId?!1:(t.cancel(e.reason),!0)}resolveExternalAuth(e){let t=this.sessions.get(e.authMenuSessionId);return!t||t.identity.requestId!==e.requestId?!1:t.acceptExternalAuthResolution(e)}};function Vn(e,t=new Bn({getWalletRuntime:e.getWalletRuntime,getAppearance:()=>e.getWalletRuntime().configs.ui.appearance,send:e.post})){return{PM_OPEN_AUTH_MENU:async n=>{let r=a(n.payload);if(!r)throw Error(`Hosted auth-menu open request is invalid`);let i=await t.open({request:r,requestId:n.requestId});(i.kind===`authenticated`||i.kind===`registered`||i.kind===`account_synced`)&&await e.publishCurrentSession(),!e.respondIfCancelled(n.requestId)&&d(e,n.requestId,i)},PM_CANCEL_AUTH_MENU:async n=>{let r=i(n.payload);if(!r)throw Error(`Hosted auth-menu cancellation is invalid`);let a=t.cancel(r);d(e,n.requestId,{cancelled:a})},PM_RESOLVE_AUTH_MENU_EXTERNAL_AUTH:async n=>{let r=s(n.payload);if(!r)throw Error(`Hosted auth-menu external-auth resolution is invalid`);let i=t.resolveExternalAuth(r);d(e,n.requestId,{accepted:i})}}}function Hn(e){if(!e||typeof e!=`object`||Array.isArray(e))return;let t=e,n=t.options&&typeof t.options==`object`&&!Array.isArray(t.options)?t.options:null,r=n?.ecdsaKeyFactsInventory&&typeof n.ecdsaKeyFactsInventory==`object`&&!Array.isArray(n.ecdsaKeyFactsInventory)?n.ecdsaKeyFactsInventory:null,i=r?.value&&typeof r.value==`object`&&!Array.isArray(r.value)?r.value:null;if(i&&(Object.prototype.hasOwnProperty.call(i,`walletSessionToken`)||Object.prototype.hasOwnProperty.call(i,`operationCredential`)))throw Error(`wallet iframe unlock requests must not carry a Wallet Session bearer`)}function Un(e,t){let n=e.ecdsaKeyFactsInventory,{ecdsaKeyFactsInventory:r,...i}=e;if(!n)return i;if(n.mode===`webauthn`)return{...i,ecdsaKeyFactsInventory:n};let a=ae(t);if(!a)throw Error(`Hosted-wallet Wallet Session is required for opaque key-facts lookup`);return{...i,ecdsaKeyFactsInventory:{mode:`wallet_session_operation_credential_v1`,operationCredential:a}}}function Wn(e,t){return String(t?.walletId||``).trim()||String(e.preferences.getCurrentWalletId()||``).trim()||void 0}function Gn(e){console.warn(`[WalletIframeHost] Restored-session presignature prefill failed:`,e)}function Kn(e,t,n,r,i){e.respondIfCancelled(n)||(d(e,n,i),r.authenticationRead===`restore`&&t.prefillRestoredWalletSession(i.state).catch(Gn))}function qn(e){return{...Vn(e),PM_UNLOCK:async t=>{let n=e.getWalletRuntime();Hn(t.payload);let r=Je(t.payload),i=Un(Ye(r),n.configs.network.relayer.url);if(e.respondIfCancelled(t.requestId))return;let a=await n.auth.unlock(r.walletId,ue(e,t.requestId,i));e.respondIfCancelled(t.requestId)||(a.success||u(),await e.publishCurrentSession(),!e.respondIfCancelled(t.requestId)&&d(e,t.requestId,a))},PM_LOCK:async t=>{let n=e.getWalletRuntime();u(),await n.auth.lock(),fe(e,t.requestId)},PM_LOCK_EXACT_WALLET_SESSION:async t=>{let n=e.getWalletRuntime(),r=l(t.payload),i=await re(n,{authenticationRead:`current`,wallet:{kind:`current`}},new Me);if(i.kind!==`active_session`&&i.kind!==`expired_session`||!ge(i,r)){d(e,t.requestId,{kind:`stale_session`,expected:r,current:i});return}u(),await n.auth.lock(),d(e,t.requestId,{kind:`locked`,identity:r})},...Ue(e),PM_GET_WALLET_SESSION:async t=>{let n=e.getWalletRuntime(),r=Wn(n,t.payload),i=await n.auth.getSession(r);d(e,t.requestId,i)},PM_GET_EXACT_WALLET_SESSION_STATE:async t=>{let n=e.getWalletRuntime(),r=t.payload;if(!r||r.authenticationRead!==`restore`&&r.authenticationRead!==`current`||!r.wallet||r.wallet.kind!==`current`&&r.wallet.kind!==`exact`||r.authenticationRead===`restore`&&r.wallet.kind!==`current`)throw Error(`Wallet iframe exact session read mode is invalid`);await e.observeSession(r,Kn.bind(null,e,n,t.requestId,r))},PM_GET_RECENT_UNLOCKS:async t=>{let n=await e.getWalletRuntime().auth.getRecentUnlocks();d(e,t.requestId,n)}}}async function Jn(e){await ne(e,qn)}export{Jn as handleWalletHostRuntimeRequest};
@@ -1 +0,0 @@
1
- import"./primitives-CTmDwMNc.js";import{r as e}from"./secureRandomId-8LSc91aN.js";import"./walletDbName-BxWApBQF.js";import"./signingSessionSeal-DqbjG8c8.js";import{a as t,n,p as r,r as i}from"./shared-hx7KVyeq.js";import"./activeWalletSession-BpbnpU9s.js";import"./capabilityKinds-D0Yrp9uf.js";import"./errors-ADOZT8oV.js";import"./accountIds-Cpvlkvbe.js";import"./registrationSignerPlan-BHkqlian.js";import"./signerDomain-BFqRQ0Jl.js";import"./registrationIntent-D4YDjf2U.js";import"./singletons-CAsc9LvA.js";import"./walletAuthority-BY3kyKQ-.js";import"./emailOtpEcdsaDerivationIdentity-CupWCKNg.js";import"./challengeDelivery-CG2J5Qxs.js";import"./digestEncoding-aC4dSf_x.js";import"./registrationIds-B1OpqRAt.js";import"./passkey-custody-Ba-NQ_4C.js";import"./walletCustodyEcdsaContinuity-mGh1Ysko.js";import"./keccak-mS0Mejjx.js";import"./wallet-recovery-DFaS3geI.js";import"./nearEd25519YaoMaterialActivation-DgWDGRI_.js";import"./signNear-B000QxBd.js";import"./appearance-token-vars-DxBm_cKA.js";function a(e){let t=o(e);if(t.method===`email`)return{method:`email`,walletId:s(t,`walletId`),email:s(t,`email`)};if(t.method!==`google`)throw Error(`Email code method is invalid`);let n=o(t.target);if(n.kind!==`wallet`&&n.kind!==`discoverable`)throw Error(`Email code wallet target is invalid`);return{method:`google`,idToken:s(t,`idToken`),target:n.kind===`wallet`?{kind:`wallet`,walletId:s(n,`walletId`)}:{kind:`discoverable`}}}function o(e){return e&&typeof e==`object`&&!Array.isArray(e)?e:{}}function s(e,t){let n=typeof e[t]==`string`?e[t].trim():``;if(!n)throw Error(`Missing ${t}`);return n}function c(e,t){return(typeof e[t]==`string`?e[t].trim():``)||void 0}function l(e){let t=o(e);if(Object.prototype.hasOwnProperty.call(t,`walletSessionToken`))throw Error(`wallet iframe requests must not carry walletSessionToken`)}function u(e){let t=o(e),n=[`challengeId`,`challenge_id`,`otpCode`,`otp_code`,`otpDelivery`,`otp_delivery`,`delivery`,`resend`].find(e=>Object.prototype.hasOwnProperty.call(t,e));if(n)throw Error(`Google Email OTP registration message must not include ${n}`)}const d=new Map;function f(){return e(`google-email-otp`,16,`Google Email OTP wallet auth flow handles`)}function p(e){let t=f();return d.set(t,{flow:e,expiresAtMs:e.expiresAtMs}),e.mode===`register`?{kind:e.kind,state:`registration_ready`,flowHandleId:t,flowId:e.flowId,requestedMode:e.requestedMode,mode:`register`,walletId:e.walletId,emailHint:e.emailHint,prompt:e.prompt,expiresAtMs:e.expiresAtMs}:{kind:e.kind,state:`challenge_sent`,flowHandleId:t,flowId:e.flowId,requestedMode:e.requestedMode,mode:`login`,walletId:e.walletId,emailHint:e.emailHint,prompt:e.prompt,delivery:e.delivery,expiresAtMs:e.expiresAtMs}}function m(e){return e.ok?{ok:!0,value:p(e.value)}:e}function h(e){return e.ok?{ok:!0,value:p(e.value)}:e}function g(e){return e.ok?{ok:!0,value:{walletId:e.value.walletId,mode:`register`,session:e.value.session,registration:e.value.registration}}:e}function _(e){return s(o(e),`flowHandleId`)}function v(e,t){let n=s(t,`flowId`),r=s(t,`walletId`),i=s(t,`mode`);if(e.flowId!==n)throw Error(`Google Email OTP wallet auth flow handle does not match flow id`);if(String(e.walletId)!==r)throw Error(`Google Email OTP wallet auth flow handle does not match wallet`);if(e.mode!==i)throw Error(`Google Email OTP wallet auth flow handle does not match mode`)}function y(e){let t=o(e),n=_(t),r=d.get(n);if(!r)throw Error(`Google Email OTP wallet auth flow handle is not active`);if(Date.now()>r.expiresAtMs)throw d.delete(n),r.flow.cancel().catch(()=>void 0),Error(`Google Email OTP wallet auth flow handle expired`);return v(r.flow,t),r.flow}function b(e){let t=_(o(e)),n=y(e);return d.delete(t),n}function x(e){return{walletId:s(o(e),`walletId`)}}function S(e){let t=o(e),n=s(t,`operation`);if(n!==`credentials_list`&&n!==`credential_label`&&n!==`recovery_rotate`&&n!==`recovery_read`)throw Error(`Wallet custody Email OTP challenge operation is invalid`);let r=o(t.payload);if(Object.keys(r).length===0&&t.payload===void 0)throw Error(`Wallet custody Email OTP challenge payload is required`);return{walletId:s(t,`walletId`),providerSubjectId:s(t,`providerSubjectId`),operation:n,payload:r,...c(t,`requestOrigin`)?{requestOrigin:c(t,`requestOrigin`)}:{}}}function C(e){let t=o(e),n=o(t.authorization);if(n.kind===`existing_passkey`)return{walletId:s(t,`walletId`),authorization:{kind:`existing_passkey`}};if(n.kind===`email_otp`)return{walletId:s(t,`walletId`),authorization:{kind:`email_otp`,providerSubjectId:s(n,`providerSubjectId`),challengeId:s(n,`challengeId`),challenge_digest:s(n,`challenge_digest`),otpCode:s(n,`otpCode`)}};throw Error(`Wallet recovery rotation authorization is invalid`)}function w(e){let t=o(e.diagnostics);Reflect.set(globalThis,`__SEAMS_EMAIL_OTP_UNLOCK_DIAGNOSTICS`,t.emailOtpUnlockTimings===!0),Reflect.set(globalThis,`__SEAMS_REGISTRATION_BENCHMARK_DIAGNOSTICS`,t.registrationBenchmarkTimings===!0),delete e.diagnostics}function T(e){return{PM_REDEEM_HOSTED_WALLET_SEAMS_SESSION:async t=>{let i=await r(t.payload,t.payload.relayUrl);n(e,t.requestId,{kind:`redeemed_hosted_wallet_seams_session`,expiresAtMs:i.expiresAtMs})},PM_REQUEST_EMAIL_OTP_CHALLENGE:async t=>{let r=e.getWalletRuntime();l(t.payload);let o=a(t.payload),s=await r.auth.requestEmailCode(i(e,t.requestId,o));n(e,t.requestId,m(s))},PM_BEGIN_GOOGLE_EMAIL_OTP_WALLET_AUTH:async t=>{let r=e.getWalletRuntime(),a=o(t.payload);w(a),a.mode===`register`&&u(a);let s=i(e,t.requestId,a),c=await r.auth.startGoogleSignIn(s);n(e,t.requestId,m(c))},PM_GOOGLE_EMAIL_OTP_WALLET_AUTH_RESEND:async t=>{let r=y(t.payload);if(r.mode!==`login`)throw Error(`Google Email OTP wallet auth resend requires a login flow`);let i=await r.resend();i.ok&&b(t.payload),n(e,t.requestId,m(i))},PM_GOOGLE_EMAIL_OTP_WALLET_AUTH_REROLL_WALLET_ID:async t=>{let r=y(t.payload);if(r.mode!==`register`)throw Error(`Google Email OTP wallet auth reroll requires a registration flow`);u(t.payload);let i=await r.rerollWalletId();i.ok&&b(t.payload),n(e,t.requestId,h(i))},PM_GOOGLE_EMAIL_OTP_WALLET_AUTH_SUBMIT:async t=>{let r=y(t.payload);if(r.mode!==`login`)throw Error(`Google Email OTP wallet auth submit requires a login flow`);let i=o(t.payload),a=await r.submit({otpCode:s(i,`otpCode`)});a.ok&&b(t.payload),n(e,t.requestId,a)},PM_GOOGLE_EMAIL_OTP_WALLET_AUTH_COMPLETE_REGISTRATION:async t=>{let r=y(t.payload);if(r.mode!==`register`)throw Error(`Google Email OTP wallet auth completion requires a registration flow`);u(t.payload);let i=await r.completeRegistration();i.ok&&b(t.payload),n(e,t.requestId,g(i))},PM_GOOGLE_EMAIL_OTP_WALLET_AUTH_CANCEL:async t=>{await y(t.payload).cancel(),b(t.payload),n(e,t.requestId,void 0)},PM_GET_WALLET_RECOVERY_CODE_STATUS:async t=>{l(t.payload);let r=await e.getWalletRuntime().recovery.getCodeStatus(x(t.payload));n(e,t.requestId,r)},PM_REQUEST_WALLET_CUSTODY_EMAIL_OTP_CHALLENGE:async t=>{l(t.payload);let r=await e.getWalletRuntime().recovery.requestWalletCustodyEmailOtpChallenge(S(t.payload));n(e,t.requestId,r)},PM_ACKNOWLEDGE_WALLET_RECOVERY_CODE_BACKUP:async t=>{l(t.payload);let r=await e.getWalletRuntime().recovery.confirmBackup(x(t.payload));n(e,t.requestId,r)},PM_ROTATE_WALLET_RECOVERY_CODES:async t=>{l(t.payload);let r=await e.getWalletRuntime().recovery.rotateCodes(C(t.payload));n(e,t.requestId,r)}}}async function E(e){await t(e,T)}export{E as handleWalletHostRuntimeRequest};
@@ -1 +0,0 @@
1
- import"./primitives-CTmDwMNc.js";import"./walletDbName-BxWApBQF.js";import"./signingSessionSeal-DqbjG8c8.js";import{a as e,n as t}from"./shared-hx7KVyeq.js";import"./activeWalletSession-BpbnpU9s.js";import"./capabilityKinds-D0Yrp9uf.js";import"./errors-ADOZT8oV.js";import"./accountIds-Cpvlkvbe.js";import"./registrationSignerPlan-BHkqlian.js";import{c as n}from"./ecdsaChainTarget-DkOrgv4y.js";import"./signerDomain-BFqRQ0Jl.js";import"./registrationIntent-D4YDjf2U.js";import"./singletons-CAsc9LvA.js";import"./walletAuthority-BY3kyKQ-.js";import"./emailOtpEcdsaDerivationIdentity-CupWCKNg.js";import"./challengeDelivery-CG2J5Qxs.js";import"./digestEncoding-aC4dSf_x.js";import"./registrationIds-B1OpqRAt.js";import"./passkey-custody-Ba-NQ_4C.js";import"./walletCustodyEcdsaContinuity-mGh1Ysko.js";import"./keccak-mS0Mejjx.js";import"./wallet-recovery-DFaS3geI.js";import"./nearEd25519YaoMaterialActivation-DgWDGRI_.js";import"./signNear-B000QxBd.js";import"./appearance-token-vars-DxBm_cKA.js";function r(e){return{PM_SET_CONFIRM_BEHAVIOR:async r=>{let i=e.getWalletRuntime(),{behavior:a,walletId:o}=r.payload;o&&i.preferences.setCurrentWallet(n(o)),await i.preferences.setConfirmationBehavior(a),t(e,r.requestId,e.readPreferences())},PM_SET_CONFIRMATION_CONFIG:async r=>{let i=e.getWalletRuntime(),{walletId:a}=r.payload||{};a&&i.preferences.setCurrentWallet(n(a)),await i.preferences.setConfirmationConfig(r.payload?.config||{}),t(e,r.requestId,e.readPreferences())},PM_GET_CONFIRMATION_CONFIG:async n=>{let r=e.readPreferences();t(e,n.requestId,r)}}}async function i(t){await e(t,r)}export{i as handleWalletHostRuntimeRequest};
@@ -1 +0,0 @@
1
- import"./primitives-CTmDwMNc.js";import"./walletDbName-BxWApBQF.js";import"./signingSessionSeal-DqbjG8c8.js";import{a as e,n as t,r as n}from"./shared-hx7KVyeq.js";import"./activeWalletSession-BpbnpU9s.js";import"./capabilityKinds-D0Yrp9uf.js";import"./errors-ADOZT8oV.js";import"./accountIds-Cpvlkvbe.js";import"./registrationSignerPlan-BHkqlian.js";import"./signerDomain-BFqRQ0Jl.js";import"./registrationIntent-D4YDjf2U.js";import"./singletons-CAsc9LvA.js";import"./walletAuthority-BY3kyKQ-.js";import"./emailOtpEcdsaDerivationIdentity-CupWCKNg.js";import"./challengeDelivery-CG2J5Qxs.js";import"./digestEncoding-aC4dSf_x.js";import"./registrationIds-B1OpqRAt.js";import"./passkey-custody-Ba-NQ_4C.js";import"./walletCustodyEcdsaContinuity-mGh1Ysko.js";import"./keccak-mS0Mejjx.js";import"./wallet-recovery-DFaS3geI.js";import"./nearEd25519YaoMaterialActivation-DgWDGRI_.js";import"./signNear-B000QxBd.js";import"./appearance-token-vars-DxBm_cKA.js";function r(e){return{PM_SYNC_ACCOUNT_FLOW:async r=>{let i=e.getWalletRuntime(),{walletId:a}=r.payload||{};if(e.respondIfCancelled(r.requestId))return;let o=await i.recovery.syncAccount({...a?{walletId:a}:{},options:{...n(e,r.requestId,{})}});e.respondIfCancelled(r.requestId)||t(e,r.requestId,o)}}}async function i(t){await e(t,r)}export{i as handleWalletHostRuntimeRequest};