@seams/wallet 0.22.0 → 0.24.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 (624) hide show
  1. package/README.md +19 -2
  2. package/THIRD_PARTY_NOTICES.md +186 -6
  3. package/dist/.build-inputs.sha256 +1 -1
  4. package/dist/esm/SeamsWeb/operations/recovery/walletRecoveryCommit.js +1 -0
  5. package/dist/esm/SeamsWeb/publicApi/createPublicApi.js +3 -0
  6. package/dist/esm/SeamsWeb/walletIframe/client/authMenuAnchor.js +44 -0
  7. package/dist/esm/SeamsWeb/walletIframe/client/overlay/overlay-styles.js +4 -6
  8. package/dist/esm/SeamsWeb/walletIframe/client/registrationCommands.js +12 -0
  9. package/dist/esm/SeamsWeb/walletIframe/client/router.js +67 -31
  10. package/dist/esm/SeamsWeb/walletIframe/client/sessionCommands.js +4 -0
  11. package/dist/esm/SeamsWeb/walletIframe/client/surface/geometry.js +2 -2
  12. package/dist/esm/SeamsWeb/walletIframe/client/transport/iframe-transport-dom.js +2 -2
  13. package/dist/esm/SeamsWeb/walletIframe/host/auth-menu/domain.js +22 -3
  14. package/dist/esm/SeamsWeb/walletIframe/host/surface-measurement-reporter.js +6 -2
  15. package/dist/esm/SeamsWeb/walletIframe/host/ui/auth-menu/AuthMenuFooter.js +1 -3
  16. package/dist/esm/SeamsWeb/walletIframe/host/ui/auth-menu/AuthMenuSurface.js +81 -19
  17. package/dist/esm/SeamsWeb/walletIframe/host/ui/auth-menu/icons.js +1 -4
  18. package/dist/esm/SeamsWeb/walletIframe/host/ui/auth-menu/presentation.js +7 -11
  19. package/dist/esm/SeamsWeb/walletIframe/host/walletMutationGuard.js +86 -0
  20. package/dist/esm/SeamsWeb/walletIframe/shared/configuration.js +23 -1
  21. package/dist/esm/SeamsWeb/walletIframe/shared/exactSessionState.js +1 -0
  22. package/dist/esm/SeamsWeb/walletIframe/shared/messages.js +7 -1
  23. package/dist/esm/SeamsWeb/walletIframe/shared/transactionReview.js +20 -1
  24. package/dist/esm/core/authMethods/availability.js +28 -0
  25. package/dist/esm/core/authMethods/availabilityTypes.js +29 -0
  26. package/dist/esm/core/authMethods/plugins.js +17 -0
  27. package/dist/esm/core/config/configBuilder.js +2 -0
  28. package/dist/esm/core/config/defaultConfigs.js +1 -0
  29. package/dist/esm/core/indexedDB/seamsWalletDB/repositories.js +41 -2
  30. package/dist/esm/core/indexedDB/unifiedIndexedDBManager.js +3 -0
  31. package/dist/esm/core/rpcClients/relayer/routerAbNormalSigning.js +1 -1
  32. package/dist/esm/core/rpcClients/relayer/walletSessionAuthorizationStatus.js +1 -1
  33. package/dist/esm/core/signingEngine/flows/signEvmFamily/authPlanning.js +2 -1
  34. package/dist/esm/core/signingEngine/flows/signEvmFamily/ecdsaSelection.js +29 -12
  35. package/dist/esm/core/signingEngine/flows/signEvmFamily/signEvmFamily.js +1 -0
  36. package/dist/esm/core/signingEngine/flows/signEvmFamily/signingFlowRuntime.js +2 -1
  37. package/dist/esm/core/signingEngine/flows/signNear/requireNearStepUpAuth.js +1 -0
  38. package/dist/esm/core/signingEngine/flows/signNear/shared/ed25519YaoNormalSigning.js +1 -1
  39. package/dist/esm/core/signingEngine/flows/signNear/shared/signingSessionAuthMode.js +5 -0
  40. package/dist/esm/core/signingEngine/flows/signNear/signNear.js +16 -12
  41. package/dist/esm/core/signingEngine/session/availability/availableSigningLanes.js +2 -3
  42. package/dist/esm/core/signingEngine/session/identity/exactSigningLaneIdentity.js +16 -1
  43. package/dist/esm/core/signingEngine/session/identity/signingLaneAuthBinding.js +6 -0
  44. package/dist/esm/core/signingEngine/session/material/ecdsaSigningCapability.js +3 -0
  45. package/dist/esm/core/signingEngine/session/operationState/lanes.js +21 -4
  46. package/dist/esm/core/signingEngine/session/passkey/ed25519YaoRecoveryCapability.js +94 -0
  47. package/dist/esm/core/signingEngine/stepUpConfirmation/methodSelection.js +1 -0
  48. package/dist/esm/core/signingEngine/uiConfirm/ui/confirm-surface-resize.js +19 -2
  49. package/dist/esm/core/signingEngine/uiConfirm/ui/confirmation-model.js +3 -1
  50. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/ConfirmContent.js +6 -0
  51. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/ConfirmationContent.js +59 -23
  52. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/ReviewDisclosure.js +13 -0
  53. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/TransactionReview.js +48 -16
  54. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/mountConfirmationSurface.js +146 -9
  55. package/dist/esm/core/signingEngine/walletCustody/ceremonyStepRunner.js +8 -0
  56. package/dist/esm/core/signingEngine/walletCustody/resealedEnvelopeResult.js +24 -0
  57. package/dist/esm/core/signingEngine/walletCustody/unlockedEd25519ExportRootCapability.js +74 -0
  58. package/dist/esm/core/signingEngine/workerManager/workerDeferred.js +25 -0
  59. package/dist/esm/core/ui/messages.js +15 -4
  60. package/dist/esm/externalNear/actions.js +26 -0
  61. package/dist/esm/externalNear/boundary.js +53 -0
  62. package/dist/esm/externalNear/controller.js +223 -0
  63. package/dist/esm/externalNear/hot.js +41 -0
  64. package/dist/esm/externalNear/index.js +3 -0
  65. package/dist/esm/externalNear/intear.js +110 -0
  66. package/dist/esm/externalNear/intearPopup.js +83 -0
  67. package/dist/esm/externalNear/message.js +60 -0
  68. package/dist/esm/externalNear/meteor.js +133 -0
  69. package/dist/esm/externalNear/meteorRequest.js +117 -0
  70. package/dist/esm/externalNear/types.js +17 -0
  71. package/dist/esm/externalNear/wallets.js +33 -0
  72. package/dist/esm/node_modules/borsh/lib/esm/buffer.js +67 -0
  73. package/dist/esm/node_modules/borsh/lib/esm/deserialize.js +94 -0
  74. package/dist/esm/node_modules/borsh/lib/esm/index.js +13 -0
  75. package/dist/esm/node_modules/borsh/lib/esm/serialize.js +127 -0
  76. package/dist/esm/node_modules/borsh/lib/esm/types.js +19 -0
  77. package/dist/esm/node_modules/borsh/lib/esm/utils.js +104 -0
  78. package/dist/esm/plugins/plugin-utils.js +2 -5
  79. package/dist/esm/react/components/AccountMenuButton/AccountMenuButtonView.js +10 -22
  80. package/dist/esm/react/components/AccountMenuButton/AccountMenuDeviceDetails.js +2 -2
  81. package/dist/esm/react/components/AccountMenuButton/AccountMenuMockScreens.js +7 -4
  82. package/dist/esm/react/components/AccountMenuButton/AddEvmAccount.js +124 -0
  83. package/dist/esm/react/components/AccountMenuButton/AuthenticationMethodRow.js +41 -23
  84. package/dist/esm/react/components/AccountMenuButton/AuthenticationMethodsModal.js +220 -164
  85. package/dist/esm/react/components/AccountMenuButton/AuthenticationMethodsView.js +7 -5
  86. package/dist/esm/react/components/AccountMenuButton/LinkedDevicesModal.css +142 -36
  87. package/dist/esm/react/components/AccountMenuButton/LinkedDevicesModal.js +11 -2
  88. package/dist/esm/react/components/AccountMenuButton/TransactionSettingsSection.css +12 -10
  89. package/dist/esm/react/components/AccountMenuButton/TransactionSettingsSection.js +1 -1
  90. package/dist/esm/react/components/AccountMenuButton/VoiceIdAvailabilityControl.js +186 -0
  91. package/dist/esm/react/components/AccountMenuButton/Web3AuthProfileButton.css +10 -8
  92. package/dist/esm/react/components/AccountMenuButton/icons/ChevronRightIcon.js +8 -0
  93. package/dist/esm/react/components/AccountMenuButton/icons/WalletIcon.js +8 -0
  94. package/dist/esm/react/components/AccountMenuButton/index.js +35 -13
  95. package/dist/esm/react/components/HostedSeamsAuthMenu/shell.js +8 -4
  96. package/dist/esm/react/context/useLoginStateRefresher.js +10 -2
  97. package/dist/esm/react/externalNear.css +90 -0
  98. package/dist/esm/react/externalNear.js +104 -0
  99. package/dist/esm/react/index.js +2 -4
  100. package/dist/esm/react/styles/styles.css +22 -332
  101. package/dist/esm/react/styles.css +0 -1
  102. package/dist/esm/sdk/ConfirmationDrawer-CTaGM1AE.js +1 -0
  103. package/dist/esm/sdk/{NonceCoordinator-Do23iTzQ.js → NonceCoordinator-Bti1HQPo.js} +1 -1
  104. package/dist/esm/sdk/SeamsWordmark-CFpsGoLw.js +1 -0
  105. package/dist/esm/sdk/{accountLifecycle-CXTlwnAS.js → accountLifecycle-B98g9zN9.js} +1 -1
  106. package/dist/esm/sdk/actions-GYsSR2Q2.js +1 -0
  107. package/dist/esm/sdk/activeWalletSession-H9JBdHyQ.js +1 -0
  108. package/dist/esm/sdk/adapters-D5MZ5NG5.js +2 -0
  109. package/dist/esm/sdk/appearance-token-vars-CgYTfCKg.js +1 -0
  110. package/dist/esm/sdk/{canonicalPrimitives-D_1HyEuJ.js → canonicalPrimitives-B6YMrI3W.js} +1 -1
  111. package/dist/esm/sdk/{capabilityKinds-CqHVzVsJ.js → capabilityKinds-BzrNeEyO.js} +1 -1
  112. package/dist/esm/sdk/{chains-CPmd4s9f.js → chains-gV2K9gA4.js} +1 -1
  113. package/dist/esm/sdk/{challengeDelivery-C88JNwKf.js → challengeDelivery-FW9gYyr0.js} +1 -1
  114. package/dist/esm/sdk/clientSessionPersistenceState-BPYK9PYV.js +1 -0
  115. package/dist/esm/sdk/{collectAuthenticationCredentialForChallengeB64u-CSwy9csE.js → collectAuthenticationCredentialForChallengeB64u-kLIxmw3V.js} +1 -1
  116. package/dist/esm/sdk/{commitQueue-BQPOhyGl.js → commitQueue-Bs23Rs57.js} +1 -1
  117. package/dist/esm/sdk/configBuilder-DrxXNUpV.js +1 -0
  118. package/dist/esm/sdk/{configHelpers-D50F_Txb.js → configHelpers-BNqoU2cv.js} +1 -1
  119. package/dist/esm/sdk/configuration-CAqANpTI.js +1 -0
  120. package/dist/esm/sdk/csp-stylesheet-DeuiM0Mo.js +2 -0
  121. package/dist/esm/sdk/{display-Dtugjeya.js → display-BXjW58UF.js} +1 -1
  122. package/dist/esm/sdk/domainIds-t1lp25yU.js +1 -0
  123. package/dist/esm/sdk/ecdsaCapabilityManifest--FjbES8k.js +1 -0
  124. package/dist/esm/sdk/{ecdsaChainTarget-svSlzhze.js → ecdsaChainTarget-DbLthshF.js} +1 -1
  125. package/dist/esm/sdk/{ecdsaDerivationClientWasm-D1HzwUgV.js → ecdsaDerivationClientWasm-7Rp4TmYE.js} +1 -1
  126. package/dist/esm/sdk/ecdsaDerivationExport-dInN7N6e.js +1 -0
  127. package/dist/esm/sdk/{ecdsaWalletRecords-BmhuJF1y.js → ecdsaWalletRecords-BgcXXCZy.js} +1 -1
  128. package/dist/esm/sdk/emailOtpEcdsaDerivationIdentity-CIh9IPai.js +1 -0
  129. package/dist/esm/sdk/{enrichDisplayModelWithAbi-D0o0IL7_.js → enrichDisplayModelWithAbi-CudPUW0T.js} +1 -1
  130. package/dist/esm/sdk/{evmCryptoWasm-S2gL5ht4.js → evmCryptoWasm-DacbCVNM.js} +1 -1
  131. package/dist/esm/sdk/{export-viewer-host-C9n-62Pi.js → export-viewer-host-DsWOvc0t.js} +1 -1
  132. package/dist/esm/sdk/exportKeypairOperation-BazJvSov.js +1 -0
  133. package/dist/{public/sdk/helpers-BXezXx19.js → esm/sdk/helpers-CXqXyyCU.js} +1 -1
  134. package/dist/esm/sdk/host-C0Is56lU.js +1 -0
  135. package/dist/esm/sdk/icons-DyndJzSh.js +1 -0
  136. package/dist/esm/sdk/indexedDB-C1odKEC6.js +1 -0
  137. package/dist/esm/sdk/intentDigest-BMXki7yB.js +1 -0
  138. package/dist/esm/sdk/{keyMaterialEnvelope-B3v6HLtz.js → keyMaterialEnvelope-B-Q5KTJC.js} +1 -1
  139. package/dist/esm/sdk/lanes-C7OvAK_L.js +1 -0
  140. package/dist/esm/sdk/localOnly-BB3Rx3J6.js +1 -0
  141. package/dist/esm/sdk/mountExportPrivateKeySurface-CV1KrFWg.js +1 -0
  142. package/dist/{public/sdk/mountRecoveryCodeBackupSurface-D3QFgMGE.js → esm/sdk/mountRecoveryCodeBackupSurface-CVXU1zzl.js} +2 -2
  143. package/dist/esm/sdk/nearEd25519YaoMaterialActivation-D9cdMKIZ.js +1 -0
  144. package/dist/esm/sdk/nearEd25519YaoSigningPreparation-D_Jvj7ht.js +1 -0
  145. package/dist/esm/sdk/{nonceLaneKeys-CR2XEvnk.js → nonceLaneKeys-BS4fek17.js} +1 -1
  146. package/dist/esm/sdk/{normalization-Ctkj80dW.js → normalization-BN-2VWZf.js} +1 -1
  147. package/dist/esm/sdk/{operationFingerprint-DRPONhBD.js → operationFingerprint-Bn0lUYlm.js} +1 -1
  148. package/dist/esm/sdk/pendingWalletRecoveryCodeBackup-lr1oISjL.js +1 -0
  149. package/dist/esm/sdk/presignaturePool-CultzkOG.js +1 -0
  150. package/dist/esm/sdk/{presignatures-DGLNs29C.js → presignatures-B9GrGx0L.js} +1 -1
  151. package/dist/esm/sdk/recovery-entrypoint-QBvJBngm.js +1 -0
  152. package/dist/esm/sdk/{recoveryAuthorization-BplZWc-N.js → recoveryAuthorization-DB-zxeHq.js} +1 -1
  153. package/dist/esm/sdk/registration-CM5a7WYO.js +1 -0
  154. package/dist/esm/sdk/registration-Hv0xi7-L.js +1 -0
  155. package/dist/esm/sdk/{registrationAccounts-BfO6Ztye.js → registrationAccounts-BHikxS5q.js} +1 -1
  156. package/dist/esm/sdk/{registrationAuthMethodInput-DKz6Mgg4.js → registrationAuthMethodInput-BvbWl0y_.js} +1 -1
  157. package/dist/esm/sdk/registrationIntent-DTs2SR9E.js +1 -0
  158. package/dist/esm/sdk/{registrationSignerPlan-B66FjqIp.js → registrationSignerPlan-CgbFVsAp.js} +1 -1
  159. package/dist/{public/sdk/requireStepUpAuth-DsNLml1i.js → esm/sdk/requireStepUpAuth-B7tC4MrA.js} +1 -1
  160. package/dist/esm/sdk/resealedEnvelopeResult--iCVt_Bh.js +1 -0
  161. package/dist/esm/sdk/routerAbNormalSigning-Div3lZWV.js +1 -0
  162. package/dist/esm/sdk/router_ab_ed25519_yao_client_bg.wasm +0 -0
  163. package/dist/esm/sdk/runtime-auth-CVw1KoVD.js +1 -0
  164. package/dist/esm/sdk/runtime-device-link-Dp0YMZTQ.js +1 -0
  165. package/dist/esm/sdk/runtime-ecdsa-tempo-DEIjIgEO.js +1 -0
  166. package/dist/esm/sdk/runtime-email-otp-gsr_FsQn.js +1 -0
  167. package/dist/esm/sdk/runtime-export-upMPrZ4V.js +1 -0
  168. package/dist/esm/sdk/runtime-near-B64Hn3nc.js +1 -0
  169. package/dist/esm/sdk/runtime-preferences-CULdHkbg.js +1 -0
  170. package/dist/esm/sdk/runtime-recovery-D2saBaJy.js +1 -0
  171. package/dist/esm/sdk/runtime-recovery-codes-Bvc0IXMJ.js +1 -0
  172. package/dist/esm/sdk/runtimeContext-CNFJjcns.js +6 -0
  173. package/dist/{public/sdk/sdkSentEvents-BzMVO1AR.js → esm/sdk/sdkSentEvents-DUht3AOD.js} +1 -1
  174. package/dist/esm/sdk/{secp256k1-CYu8ENjP.js → secp256k1-BGVlx50C.js} +1 -1
  175. package/dist/esm/sdk/sessionObservationRevision-84ZzJ-fC.js +1 -0
  176. package/dist/esm/sdk/shared-DcHtE-D-.js +1 -0
  177. package/dist/esm/sdk/signEvmFamily-PjwUc5MT.js +1 -0
  178. package/dist/esm/sdk/{signEvmFamilyWithUiConfirmForTempo-4A3D9nKv.js → signEvmFamilyWithUiConfirmForTempo-BMfC2sc2.js} +1 -1
  179. package/dist/esm/sdk/{signEvmWithUiConfirm-lZyPfrGe.js → signEvmWithUiConfirm-BNkupz3z.js} +1 -1
  180. package/dist/esm/sdk/signNear-r8VCOoTh.js +1 -0
  181. package/dist/esm/sdk/{signatureUses-CY4U-X6V.js → signatureUses-DrqCoN12.js} +1 -1
  182. package/dist/esm/sdk/signerDomain-D-EUTlLK.js +1 -0
  183. package/dist/esm/sdk/{signerSlot-CpyIfl3J.js → signerSlot-D4ZOuK7e.js} +1 -1
  184. package/dist/{public/sdk/signingFlow-Co_QtuHK.js → esm/sdk/signingFlow-BVvteILM.js} +1 -1
  185. package/dist/esm/sdk/{signingQueue-Cj9sCJLj.js → signingQueue-BJzOrwDq.js} +1 -1
  186. package/dist/esm/sdk/surface-measurement-reporter-NUm_54LH.js +1 -0
  187. package/dist/{public/sdk/thresholdEcdsa-LvkD6z8-.js → esm/sdk/thresholdEcdsa-tnY83qyG.js} +1 -1
  188. package/dist/esm/sdk/{trace-CWTzEALZ.js → trace-CGNqO1FV.js} +1 -1
  189. package/dist/esm/sdk/{transaction-activity-CpDMkSPm.js → transaction-activity-DPq9RTh5.js} +1 -1
  190. package/dist/esm/sdk/transactionReview-DSGnpreN.js +1 -0
  191. package/dist/esm/sdk/transactionReviewAdmission--8tDis7M.js +1 -0
  192. package/dist/{public/sdk/transactionState-BaFSiA9t.js → esm/sdk/transactionState-BS1VLT7B.js} +1 -1
  193. package/dist/esm/sdk/tx-confirm-ui.js +418 -109
  194. package/dist/esm/sdk/types-DdzuHlAQ.js +1 -0
  195. package/dist/esm/sdk/unlockedEd25519ExportRootCapability-D43rvO9a.js +1 -0
  196. package/dist/esm/sdk/voiceid-host.js +1 -0
  197. package/dist/esm/sdk/wallet-iframe-host-ecdsa.js +1 -1
  198. package/dist/esm/sdk/wallet-iframe-host-full.js +1 -1
  199. package/dist/esm/sdk/wallet-iframe-host-near.js +1 -1
  200. package/dist/esm/sdk/wallet-iframe-host-runtime.js +1 -1
  201. package/dist/esm/sdk/wallet-recovery-BjIQdOha.js +1 -0
  202. package/dist/esm/sdk/wallet-ui.css +1 -1
  203. package/dist/esm/sdk/walletAuthMethodRecord-yIqCeE-o.js +1 -0
  204. package/dist/esm/sdk/walletCapabilityBindings-CUPk3mVH.js +1 -0
  205. package/dist/esm/sdk/walletCustodyEcdsaContinuity-DlOBCmwb.js +1 -0
  206. package/dist/esm/sdk/walletCustodyOperation-DzPcxEBS.js +1 -0
  207. package/dist/esm/sdk/walletDbName-DDJXrgA5.js +1 -0
  208. package/dist/esm/sdk/walletOwnershipGeneration-DI9ogcXF.js +1 -0
  209. package/dist/esm/sdk/walletRecoveryAdminProof-BJxmg3f7.js +1 -0
  210. package/dist/esm/sdk/walletRecoveryCommit-B7WsdR7y.js +1 -0
  211. package/dist/esm/sdk/walletRegistrationSetupPrewarm-CEJCj78c.js +1 -0
  212. package/dist/esm/sdk/walletSessionAuthorizationStatus-98G3Qji8.js +1 -0
  213. package/dist/{public/sdk/walletSessionAuthorizationStore-DYRMCkiT.js → esm/sdk/walletSessionAuthorizationStore-zkxcMdSp.js} +1 -1
  214. package/dist/esm/sdk/warmSessionHydration-DqZyfi1h.js +1 -0
  215. package/dist/esm/sdk/{webauthnP256-unqBoZCk.js → webauthnP256-BvTL8nq4.js} +1 -1
  216. package/dist/esm/shared-ts/src/authorization/capabilityKinds.js +4 -1
  217. package/dist/esm/shared-ts/src/authorization/delegatedAuthority.js +11 -2
  218. package/dist/esm/shared-ts/src/authorization/voiceIdDeviceAssertion.js +110 -0
  219. package/dist/esm/shared-ts/src/device-linking/authorityActivation.js +1 -0
  220. package/dist/esm/shared-ts/src/device-linking/committedSignerPackages.js +1 -0
  221. package/dist/esm/shared-ts/src/device-linking/deviceManagement.js +17 -9
  222. package/dist/esm/shared-ts/src/passkey-custody/custodyEnvelope.js +62 -3
  223. package/dist/esm/shared-ts/src/passkey-custody/custodySecretBinding.js +1 -1
  224. package/dist/esm/shared-ts/src/utils/canonicalPrimitives.js +5 -2
  225. package/dist/esm/shared-ts/src/utils/domainIds.js +14 -1
  226. package/dist/esm/shared-ts/src/utils/signerDomain.js +4 -2
  227. package/dist/esm/shared-ts/src/utils/validation.js +4 -1
  228. package/dist/esm/shared-ts/src/utils/walletAuthAuthority.js +46 -2
  229. package/dist/esm/shared-ts/src/utils/walletAuthMethodRecord.js +116 -6
  230. package/dist/esm/shared-ts/src/utils/walletCapabilityBindings.js +39 -1
  231. package/dist/esm/voiceid-host.js +47 -0
  232. package/dist/esm/wasm/near_signer/pkg/wasm_signer_worker_bg.wasm +0 -0
  233. package/dist/esm/wasm/router_ab_ed25519_yao_client/pkg/router_ab_ed25519_yao_client_bg.wasm +0 -0
  234. package/dist/public/headers.manifest.json +1 -1
  235. package/dist/public/sdk/ConfirmationDrawer-CTaGM1AE.js +1 -0
  236. package/dist/public/sdk/{NonceCoordinator-Do23iTzQ.js → NonceCoordinator-Bti1HQPo.js} +1 -1
  237. package/dist/public/sdk/SeamsWordmark-CFpsGoLw.js +1 -0
  238. package/dist/public/sdk/{accountLifecycle-CXTlwnAS.js → accountLifecycle-B98g9zN9.js} +1 -1
  239. package/dist/public/sdk/actions-GYsSR2Q2.js +1 -0
  240. package/dist/public/sdk/activeWalletSession-H9JBdHyQ.js +1 -0
  241. package/dist/public/sdk/adapters-D5MZ5NG5.js +2 -0
  242. package/dist/public/sdk/appearance-token-vars-CgYTfCKg.js +1 -0
  243. package/dist/public/sdk/{canonicalPrimitives-D_1HyEuJ.js → canonicalPrimitives-B6YMrI3W.js} +1 -1
  244. package/dist/public/sdk/{capabilityKinds-CqHVzVsJ.js → capabilityKinds-BzrNeEyO.js} +1 -1
  245. package/dist/public/sdk/{chains-CPmd4s9f.js → chains-gV2K9gA4.js} +1 -1
  246. package/dist/public/sdk/{challengeDelivery-C88JNwKf.js → challengeDelivery-FW9gYyr0.js} +1 -1
  247. package/dist/public/sdk/clientSessionPersistenceState-BPYK9PYV.js +1 -0
  248. package/dist/public/sdk/{collectAuthenticationCredentialForChallengeB64u-CSwy9csE.js → collectAuthenticationCredentialForChallengeB64u-kLIxmw3V.js} +1 -1
  249. package/dist/public/sdk/{commitQueue-BQPOhyGl.js → commitQueue-Bs23Rs57.js} +1 -1
  250. package/dist/public/sdk/configBuilder-DrxXNUpV.js +1 -0
  251. package/dist/public/sdk/{configHelpers-D50F_Txb.js → configHelpers-BNqoU2cv.js} +1 -1
  252. package/dist/public/sdk/configuration-CAqANpTI.js +1 -0
  253. package/dist/public/sdk/csp-stylesheet-DeuiM0Mo.js +2 -0
  254. package/dist/public/sdk/{display-Dtugjeya.js → display-BXjW58UF.js} +1 -1
  255. package/dist/public/sdk/domainIds-t1lp25yU.js +1 -0
  256. package/dist/public/sdk/ecdsaCapabilityManifest--FjbES8k.js +1 -0
  257. package/dist/public/sdk/{ecdsaChainTarget-svSlzhze.js → ecdsaChainTarget-DbLthshF.js} +1 -1
  258. package/dist/public/sdk/{ecdsaDerivationClientWasm-D1HzwUgV.js → ecdsaDerivationClientWasm-7Rp4TmYE.js} +1 -1
  259. package/dist/public/sdk/ecdsaDerivationExport-dInN7N6e.js +1 -0
  260. package/dist/public/sdk/{ecdsaWalletRecords-BmhuJF1y.js → ecdsaWalletRecords-BgcXXCZy.js} +1 -1
  261. package/dist/public/sdk/emailOtpEcdsaDerivationIdentity-CIh9IPai.js +1 -0
  262. package/dist/public/sdk/{enrichDisplayModelWithAbi-D0o0IL7_.js → enrichDisplayModelWithAbi-CudPUW0T.js} +1 -1
  263. package/dist/public/sdk/{evmCryptoWasm-S2gL5ht4.js → evmCryptoWasm-DacbCVNM.js} +1 -1
  264. package/dist/public/sdk/{export-viewer-host-C9n-62Pi.js → export-viewer-host-DsWOvc0t.js} +1 -1
  265. package/dist/public/sdk/exportKeypairOperation-BazJvSov.js +1 -0
  266. package/dist/{esm/sdk/helpers-BXezXx19.js → public/sdk/helpers-CXqXyyCU.js} +1 -1
  267. package/dist/public/sdk/host-C0Is56lU.js +1 -0
  268. package/dist/public/sdk/icons-DyndJzSh.js +1 -0
  269. package/dist/public/sdk/indexedDB-C1odKEC6.js +1 -0
  270. package/dist/public/sdk/intentDigest-BMXki7yB.js +1 -0
  271. package/dist/public/sdk/{keyMaterialEnvelope-B3v6HLtz.js → keyMaterialEnvelope-B-Q5KTJC.js} +1 -1
  272. package/dist/public/sdk/lanes-C7OvAK_L.js +1 -0
  273. package/dist/public/sdk/localOnly-BB3Rx3J6.js +1 -0
  274. package/dist/public/sdk/mountExportPrivateKeySurface-CV1KrFWg.js +1 -0
  275. package/dist/{esm/sdk/mountRecoveryCodeBackupSurface-D3QFgMGE.js → public/sdk/mountRecoveryCodeBackupSurface-CVXU1zzl.js} +2 -2
  276. package/dist/public/sdk/nearEd25519YaoMaterialActivation-D9cdMKIZ.js +1 -0
  277. package/dist/public/sdk/nearEd25519YaoSigningPreparation-D_Jvj7ht.js +1 -0
  278. package/dist/public/sdk/{nonceLaneKeys-CR2XEvnk.js → nonceLaneKeys-BS4fek17.js} +1 -1
  279. package/dist/public/sdk/{normalization-Ctkj80dW.js → normalization-BN-2VWZf.js} +1 -1
  280. package/dist/public/sdk/{operationFingerprint-DRPONhBD.js → operationFingerprint-Bn0lUYlm.js} +1 -1
  281. package/dist/public/sdk/pendingWalletRecoveryCodeBackup-lr1oISjL.js +1 -0
  282. package/dist/public/sdk/presignaturePool-CultzkOG.js +1 -0
  283. package/dist/public/sdk/{presignatures-DGLNs29C.js → presignatures-B9GrGx0L.js} +1 -1
  284. package/dist/public/sdk/recovery-entrypoint-QBvJBngm.js +1 -0
  285. package/dist/public/sdk/{recoveryAuthorization-BplZWc-N.js → recoveryAuthorization-DB-zxeHq.js} +1 -1
  286. package/dist/public/sdk/registration-CM5a7WYO.js +1 -0
  287. package/dist/public/sdk/registration-Hv0xi7-L.js +1 -0
  288. package/dist/public/sdk/{registrationAccounts-BfO6Ztye.js → registrationAccounts-BHikxS5q.js} +1 -1
  289. package/dist/public/sdk/{registrationAuthMethodInput-DKz6Mgg4.js → registrationAuthMethodInput-BvbWl0y_.js} +1 -1
  290. package/dist/public/sdk/registrationIntent-DTs2SR9E.js +1 -0
  291. package/dist/public/sdk/{registrationSignerPlan-B66FjqIp.js → registrationSignerPlan-CgbFVsAp.js} +1 -1
  292. package/dist/{esm/sdk/requireStepUpAuth-DsNLml1i.js → public/sdk/requireStepUpAuth-B7tC4MrA.js} +1 -1
  293. package/dist/public/sdk/resealedEnvelopeResult--iCVt_Bh.js +1 -0
  294. package/dist/public/sdk/routerAbNormalSigning-Div3lZWV.js +1 -0
  295. package/dist/public/sdk/router_ab_ed25519_yao_client_bg.wasm +0 -0
  296. package/dist/public/sdk/runtime-auth-CVw1KoVD.js +1 -0
  297. package/dist/public/sdk/runtime-device-link-Dp0YMZTQ.js +1 -0
  298. package/dist/public/sdk/runtime-ecdsa-tempo-DEIjIgEO.js +1 -0
  299. package/dist/public/sdk/runtime-email-otp-gsr_FsQn.js +1 -0
  300. package/dist/public/sdk/runtime-export-upMPrZ4V.js +1 -0
  301. package/dist/public/sdk/runtime-near-B64Hn3nc.js +1 -0
  302. package/dist/public/sdk/runtime-preferences-CULdHkbg.js +1 -0
  303. package/dist/public/sdk/runtime-recovery-D2saBaJy.js +1 -0
  304. package/dist/public/sdk/runtime-recovery-codes-Bvc0IXMJ.js +1 -0
  305. package/dist/public/sdk/runtimeContext-CNFJjcns.js +6 -0
  306. package/dist/{esm/sdk/sdkSentEvents-BzMVO1AR.js → public/sdk/sdkSentEvents-DUht3AOD.js} +1 -1
  307. package/dist/public/sdk/{secp256k1-CYu8ENjP.js → secp256k1-BGVlx50C.js} +1 -1
  308. package/dist/public/sdk/sessionObservationRevision-84ZzJ-fC.js +1 -0
  309. package/dist/public/sdk/shared-DcHtE-D-.js +1 -0
  310. package/dist/public/sdk/signEvmFamily-PjwUc5MT.js +1 -0
  311. package/dist/public/sdk/{signEvmFamilyWithUiConfirmForTempo-4A3D9nKv.js → signEvmFamilyWithUiConfirmForTempo-BMfC2sc2.js} +1 -1
  312. package/dist/public/sdk/{signEvmWithUiConfirm-lZyPfrGe.js → signEvmWithUiConfirm-BNkupz3z.js} +1 -1
  313. package/dist/public/sdk/signNear-r8VCOoTh.js +1 -0
  314. package/dist/public/sdk/{signatureUses-CY4U-X6V.js → signatureUses-DrqCoN12.js} +1 -1
  315. package/dist/public/sdk/signerDomain-D-EUTlLK.js +1 -0
  316. package/dist/public/sdk/{signerSlot-CpyIfl3J.js → signerSlot-D4ZOuK7e.js} +1 -1
  317. package/dist/{esm/sdk/signingFlow-Co_QtuHK.js → public/sdk/signingFlow-BVvteILM.js} +1 -1
  318. package/dist/public/sdk/{signingQueue-Cj9sCJLj.js → signingQueue-BJzOrwDq.js} +1 -1
  319. package/dist/public/sdk/surface-measurement-reporter-NUm_54LH.js +1 -0
  320. package/dist/{esm/sdk/thresholdEcdsa-LvkD6z8-.js → public/sdk/thresholdEcdsa-tnY83qyG.js} +1 -1
  321. package/dist/public/sdk/{trace-CWTzEALZ.js → trace-CGNqO1FV.js} +1 -1
  322. package/dist/public/sdk/{transaction-activity-CpDMkSPm.js → transaction-activity-DPq9RTh5.js} +1 -1
  323. package/dist/public/sdk/transactionReview-DSGnpreN.js +1 -0
  324. package/dist/public/sdk/transactionReviewAdmission--8tDis7M.js +1 -0
  325. package/dist/{esm/sdk/transactionState-BaFSiA9t.js → public/sdk/transactionState-BS1VLT7B.js} +1 -1
  326. package/dist/public/sdk/tx-confirm-ui.js +418 -109
  327. package/dist/public/sdk/types-DdzuHlAQ.js +1 -0
  328. package/dist/public/sdk/unlockedEd25519ExportRootCapability-D43rvO9a.js +1 -0
  329. package/dist/public/sdk/voiceid-host.js +1 -0
  330. package/dist/public/sdk/wallet-iframe-host-ecdsa.js +1 -1
  331. package/dist/public/sdk/wallet-iframe-host-full.js +1 -1
  332. package/dist/public/sdk/wallet-iframe-host-near.js +1 -1
  333. package/dist/public/sdk/wallet-iframe-host-runtime.js +1 -1
  334. package/dist/public/sdk/wallet-recovery-BjIQdOha.js +1 -0
  335. package/dist/public/sdk/wallet-ui.css +1 -1
  336. package/dist/public/sdk/walletAuthMethodRecord-yIqCeE-o.js +1 -0
  337. package/dist/public/sdk/walletCapabilityBindings-CUPk3mVH.js +1 -0
  338. package/dist/public/sdk/walletCustodyEcdsaContinuity-DlOBCmwb.js +1 -0
  339. package/dist/public/sdk/walletCustodyOperation-DzPcxEBS.js +1 -0
  340. package/dist/public/sdk/walletDbName-DDJXrgA5.js +1 -0
  341. package/dist/public/sdk/walletOwnershipGeneration-DI9ogcXF.js +1 -0
  342. package/dist/public/sdk/walletRecoveryAdminProof-BJxmg3f7.js +1 -0
  343. package/dist/public/sdk/walletRecoveryCommit-B7WsdR7y.js +1 -0
  344. package/dist/public/sdk/walletRegistrationSetupPrewarm-CEJCj78c.js +1 -0
  345. package/dist/public/sdk/walletSessionAuthorizationStatus-98G3Qji8.js +1 -0
  346. package/dist/{esm/sdk/walletSessionAuthorizationStore-DYRMCkiT.js → public/sdk/walletSessionAuthorizationStore-zkxcMdSp.js} +1 -1
  347. package/dist/public/sdk/warmSessionHydration-DqZyfi1h.js +1 -0
  348. package/dist/public/sdk/{webauthnP256-unqBoZCk.js → webauthnP256-BvTL8nq4.js} +1 -1
  349. package/dist/public/sdk/workers/device-linking-key.worker.js +93 -5
  350. package/dist/public/sdk/workers/ecdsa-derivation-client.worker.js +67 -65
  351. package/dist/public/sdk/workers/email-otp.worker.js +93 -4
  352. package/dist/public/sdk/workers/passkey-mpc-export.worker.js +21 -2
  353. package/dist/public/sdk/workers/router_ab_ed25519_yao_client_bg.wasm +0 -0
  354. package/dist/public/sdk/workers/wallet-custody-ceremony.worker.js +20 -2
  355. package/dist/public/sdk/workers/wallet_custody_ceremony_bg.wasm +0 -0
  356. package/dist/public/sdk/workers/wasm_signer_worker_bg.wasm +0 -0
  357. package/dist/public/wallet-assets.manifest.json +503 -240
  358. package/dist/public/wallet-service/index.html +4 -4
  359. package/dist/types/shared-ts/src/authorization/voiceIdDeviceAssertion.d.ts +32 -0
  360. package/dist/types/shared-ts/src/device-linking/committedSignerPackages.d.ts +3 -1
  361. package/dist/types/shared-ts/src/device-linking/contracts.d.ts +8 -0
  362. package/dist/types/shared-ts/src/device-linking/wireFields.d.ts +4 -4
  363. package/dist/types/shared-ts/src/passkey-custody/custodyEnvelope.d.ts +29 -0
  364. package/dist/types/shared-ts/src/passkey-custody/custodySecretBinding.d.ts +1 -0
  365. package/dist/types/shared-ts/src/signing-lanes/execution.d.ts +2 -2
  366. package/dist/types/shared-ts/src/signing-lanes/recordParsers.d.ts +2 -1
  367. package/dist/types/shared-ts/src/signing-lanes/records.d.ts +10 -2
  368. package/dist/types/shared-ts/src/signing-lanes/rotation.d.ts +2 -2
  369. package/dist/types/shared-ts/src/threshold/sessionPolicy.d.ts +9 -0
  370. package/dist/types/shared-ts/src/utils/addWalletAuthMethod.d.ts +3 -3
  371. package/dist/types/shared-ts/src/utils/domainIds.d.ts +4 -5
  372. package/dist/types/shared-ts/src/utils/registrationIntent.d.ts +0 -1
  373. package/dist/types/shared-ts/src/utils/signerDomain.d.ts +3 -0
  374. package/dist/types/shared-ts/src/utils/walletAuthAuthority.d.ts +32 -2
  375. package/dist/types/shared-ts/src/utils/walletAuthMethodRecord.d.ts +15 -1
  376. package/dist/types/shared-ts/src/utils/walletCapabilityBindings.d.ts +20 -0
  377. package/dist/types/wallet/src/SeamsWeb/operations/authMethods/addAuthMethodSourceClaim.d.ts +2 -2
  378. package/dist/types/wallet/src/SeamsWeb/publicApi/auth.d.ts +1 -1
  379. package/dist/types/wallet/src/SeamsWeb/publicApi/createPublicApi.d.ts +1 -1
  380. package/dist/types/wallet/src/SeamsWeb/publicApi/types.d.ts +22 -0
  381. package/dist/types/wallet/src/SeamsWeb/signingSurface/BrowserSigningSurface.d.ts +4 -0
  382. package/dist/types/wallet/src/SeamsWeb/signingSurface/ports.d.ts +2 -0
  383. package/dist/types/wallet/src/SeamsWeb/walletIframe/client/authMenuAnchor.d.ts +17 -0
  384. package/dist/types/wallet/src/SeamsWeb/walletIframe/client/router.d.ts +4 -0
  385. package/dist/types/wallet/src/SeamsWeb/walletIframe/client/surface/geometry.d.ts +0 -1
  386. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/WalletHostRuntime.d.ts +2 -1
  387. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/auth-menu/domain.d.ts +9 -0
  388. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/auth-menu/session.d.ts +15 -0
  389. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/createRegistrationCommands.d.ts +2 -1
  390. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/createSessionCommands.d.ts +7 -2
  391. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/requestRouter.d.ts +2 -2
  392. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/runtimeContext.d.ts +3 -0
  393. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/ui/auth-menu/AuthMenuSurface.d.ts +4 -0
  394. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/ui/auth-menu/icons.d.ts +0 -1
  395. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/ui/auth-menu/presentation.d.ts +2 -2
  396. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/walletMutationGuard.d.ts +2 -0
  397. package/dist/types/wallet/src/SeamsWeb/walletIframe/shared/messages.d.ts +15 -4
  398. package/dist/types/wallet/src/core/authMethods/availability.d.ts +13 -0
  399. package/dist/types/wallet/src/core/authMethods/availabilityTypes.d.ts +13 -0
  400. package/dist/types/wallet/src/core/authMethods/hostPlugin.d.ts +82 -0
  401. package/dist/types/wallet/src/core/authMethods/hostRegistry.d.ts +5 -0
  402. package/dist/types/wallet/src/core/authMethods/installSession.d.ts +15 -0
  403. package/dist/types/wallet/src/core/authMethods/plugins.d.ts +7 -0
  404. package/dist/types/wallet/src/core/authMethods/prepareEcdsaSession.d.ts +6 -0
  405. package/dist/types/wallet/src/core/authMethods/prepareNearSession.d.ts +18 -0
  406. package/dist/types/wallet/src/core/authMethods/sessionIdentity.d.ts +53 -0
  407. package/dist/types/wallet/src/core/indexedDB/passkeyClientDB.types.d.ts +11 -1
  408. package/dist/types/wallet/src/core/indexedDB/seamsWalletDB/repositories.d.ts +53 -2
  409. package/dist/types/wallet/src/core/indexedDB/unifiedIndexedDBManager.d.ts +1 -0
  410. package/dist/types/wallet/src/core/rpcClients/relayer/walletRegistration.d.ts +1 -1
  411. package/dist/types/wallet/src/core/signingEngine/flows/recovery/ecdsaExportMaterial.d.ts +6 -3
  412. package/dist/types/wallet/src/core/signingEngine/flows/signEvmFamily/ecdsaSelection.d.ts +8 -2
  413. package/dist/types/wallet/src/core/signingEngine/session/availability/availableSigningLanes.d.ts +10 -10
  414. package/dist/types/wallet/src/core/signingEngine/session/identity/exactSigningLaneIdentity.d.ts +1 -1
  415. package/dist/types/wallet/src/core/signingEngine/session/identity/laneIdentity.d.ts +3 -1
  416. package/dist/types/wallet/src/core/signingEngine/session/identity/signingLaneAuthBinding.d.ts +16 -4
  417. package/dist/types/wallet/src/core/signingEngine/session/material/ecdsaSealedRuntime.d.ts +13 -4
  418. package/dist/types/wallet/src/core/signingEngine/session/material/ecdsaSigningCapability.d.ts +15 -6
  419. package/dist/types/wallet/src/core/signingEngine/session/operationState/lanes.d.ts +11 -4
  420. package/dist/types/wallet/src/core/signingEngine/session/postconditions/runtimePostconditions.d.ts +3 -3
  421. package/dist/types/wallet/src/core/signingEngine/session/warmCapabilities/routerAbEd25519WalletSessionState.d.ts +6 -0
  422. package/dist/types/wallet/src/core/signingEngine/stepUpConfirmation/methodSelection.d.ts +1 -1
  423. package/dist/types/wallet/src/core/signingEngine/stepUpConfirmation/requireStepUpAuth.d.ts +1 -1
  424. package/dist/types/wallet/src/core/signingEngine/threshold/ed25519/yaoPublicCapabilityReferences.d.ts +6 -0
  425. package/dist/types/wallet/src/core/signingEngine/uiConfirm/transactionReviewAdmission.d.ts +11 -1
  426. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/confirm-ui-types.d.ts +2 -0
  427. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/confirmation-model.d.ts +1 -1
  428. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/ConfirmContent.d.ts +1 -0
  429. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/ConfirmationContent.d.ts +4 -0
  430. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/TransactionReview.d.ts +1 -1
  431. package/dist/types/wallet/src/core/signingEngine/walletCustody/passkeyLink.d.ts +2 -2
  432. package/dist/types/wallet/src/core/signingEngine/walletCustody/resealedEnvelopeResult.d.ts +10 -0
  433. package/dist/types/wallet/src/core/types/sdkSentEvents.d.ts +1 -1
  434. package/dist/types/wallet/src/core/types/seams.d.ts +4 -0
  435. package/dist/types/wallet/src/core/ui/messages.d.ts +1 -1
  436. package/dist/types/wallet/src/externalNear/actions.d.ts +20 -0
  437. package/dist/types/wallet/src/externalNear/boundary.d.ts +7 -0
  438. package/dist/types/wallet/src/externalNear/controller.d.ts +24 -0
  439. package/dist/types/wallet/src/externalNear/hot.d.ts +14 -0
  440. package/dist/types/wallet/src/externalNear/index.d.ts +4 -0
  441. package/dist/types/wallet/src/externalNear/intear.d.ts +13 -0
  442. package/dist/types/wallet/src/externalNear/intearPopup.d.ts +25 -0
  443. package/dist/types/wallet/src/externalNear/message.d.ts +14 -0
  444. package/dist/types/wallet/src/externalNear/meteor.d.ts +19 -0
  445. package/dist/types/wallet/src/externalNear/meteorRequest.d.ts +29 -0
  446. package/dist/types/wallet/src/externalNear/types.d.ts +87 -0
  447. package/dist/types/wallet/src/externalNear/wallets.d.ts +4 -0
  448. package/dist/types/wallet/src/index.d.ts +1 -0
  449. package/dist/types/wallet/src/plugins/plugin-utils.d.ts +1 -1
  450. package/dist/types/wallet/src/react/components/AccountMenuButton/AddEvmAccount.d.ts +29 -0
  451. package/dist/types/wallet/src/react/components/AccountMenuButton/AuthenticationMethodRow.d.ts +8 -3
  452. package/dist/types/wallet/src/react/components/AccountMenuButton/AuthenticationMethodsView.d.ts +1 -2
  453. package/dist/types/wallet/src/react/components/AccountMenuButton/VoiceIdAvailabilityControl.d.ts +19 -0
  454. package/dist/types/wallet/src/react/components/AccountMenuButton/icons/ChevronRightIcon.d.ts +2 -0
  455. package/dist/types/wallet/src/react/components/AccountMenuButton/icons/WalletIcon.d.ts +2 -0
  456. package/dist/types/wallet/src/react/externalNear.d.ts +26 -0
  457. package/dist/types/wallet/src/react/index.d.ts +1 -4
  458. package/dist/types/wallet/src/voiceid-host.d.ts +52 -0
  459. package/dist/workers/device-linking-key.worker.js +93 -5
  460. package/dist/workers/ecdsa-derivation-client.worker.js +67 -65
  461. package/dist/workers/email-otp.worker.js +93 -4
  462. package/dist/workers/passkey-mpc-export.worker.js +21 -2
  463. package/dist/workers/router_ab_ed25519_yao_client_bg.wasm +0 -0
  464. package/dist/workers/wallet-custody-ceremony.worker.js +20 -2
  465. package/dist/workers/wallet_custody_ceremony_bg.wasm +0 -0
  466. package/dist/workers/wasm_signer_worker_bg.wasm +0 -0
  467. package/package.json +25 -3
  468. package/dist/esm/plugins/SeamsWeb/walletIframe/sanitization.js +0 -18
  469. package/dist/esm/react/components/AccountMenuButton/icons/PlusIcon.js +0 -8
  470. package/dist/esm/react/components/VoiceAssistantCard.css +0 -313
  471. package/dist/esm/react/components/VoiceAssistantCard.js +0 -150
  472. package/dist/esm/sdk/ConfirmationDrawer-Ck33ZmU-.js +0 -1
  473. package/dist/esm/sdk/activeWalletSession-BtEHhe99.js +0 -1
  474. package/dist/esm/sdk/adapters-CgJpSAxH.js +0 -2
  475. package/dist/esm/sdk/appearance-token-vars-BA3KQyEE.js +0 -2
  476. package/dist/esm/sdk/clientSessionPersistenceState-DFGHXoKK.js +0 -1
  477. package/dist/esm/sdk/configBuilder-BMNShuOu.js +0 -1
  478. package/dist/esm/sdk/domainIds-C3fUa33Q.js +0 -1
  479. package/dist/esm/sdk/ecdsaCapabilityManifest-B3u6J5gn.js +0 -1
  480. package/dist/esm/sdk/ecdsaDerivationExport-DrFESeRP.js +0 -1
  481. package/dist/esm/sdk/emailOtpEcdsaDerivationIdentity-DreNrM6n.js +0 -1
  482. package/dist/esm/sdk/exportKeypairOperation-Du9HKB8f.js +0 -1
  483. package/dist/esm/sdk/host-DoftJdVQ.js +0 -1
  484. package/dist/esm/sdk/intentDigest--FZ63NBy.js +0 -1
  485. package/dist/esm/sdk/lanes-l274pbT5.js +0 -1
  486. package/dist/esm/sdk/localOnly-CvFSZFUy.js +0 -1
  487. package/dist/esm/sdk/mountExportPrivateKeySurface-DdJHWwqY.js +0 -1
  488. package/dist/esm/sdk/nearEd25519YaoMaterialActivation-BK8_DxHs.js +0 -1
  489. package/dist/esm/sdk/nearEd25519YaoSigningPreparation-BgCxoh9S.js +0 -1
  490. package/dist/esm/sdk/pendingWalletRecoveryCodeBackup-LbstFwcY.js +0 -1
  491. package/dist/esm/sdk/presignaturePool-DNiA3sgr.js +0 -1
  492. package/dist/esm/sdk/recovery-entrypoint-CNVjXz6A.js +0 -1
  493. package/dist/esm/sdk/registration-CIxJvbTo.js +0 -1
  494. package/dist/esm/sdk/registration-CeOmKyCG.js +0 -1
  495. package/dist/esm/sdk/registrationIntent-DW_kKWlx.js +0 -1
  496. package/dist/esm/sdk/routerAbNormalSigning-DSAfCcND.js +0 -1
  497. package/dist/esm/sdk/runtime-auth-C0V-5znH.js +0 -1
  498. package/dist/esm/sdk/runtime-device-link-B1jpHQSF.js +0 -1
  499. package/dist/esm/sdk/runtime-ecdsa-tempo-CDSZ3pxS.js +0 -1
  500. package/dist/esm/sdk/runtime-email-otp-DXuxFOjL.js +0 -1
  501. package/dist/esm/sdk/runtime-export-Ba12ChDI.js +0 -1
  502. package/dist/esm/sdk/runtime-near-DRrdWzmr.js +0 -1
  503. package/dist/esm/sdk/runtime-preferences-BWyhRaBA.js +0 -1
  504. package/dist/esm/sdk/runtime-recovery-DlJlaZlf.js +0 -1
  505. package/dist/esm/sdk/runtime-recovery-codes-CuqYWqK7.js +0 -1
  506. package/dist/esm/sdk/sessionObservationRevision-abErAhd6.js +0 -1
  507. package/dist/esm/sdk/shared-B95wnpoD.js +0 -6
  508. package/dist/esm/sdk/signEvmFamily-C4XMiSue.js +0 -1
  509. package/dist/esm/sdk/signNear-B_UcqMRf.js +0 -1
  510. package/dist/esm/sdk/signerDomain-YEHkugWX.js +0 -1
  511. package/dist/esm/sdk/surface-measurement-reporter-F-fVB7d3.js +0 -1
  512. package/dist/esm/sdk/transactionReviewAdmission-CNNho8IG.js +0 -1
  513. package/dist/esm/sdk/types-BrEW276O.js +0 -1
  514. package/dist/esm/sdk/wallet-recovery-BEui57xM.js +0 -1
  515. package/dist/esm/sdk/walletAuthMethodRecord-Cv_MYpxt.js +0 -1
  516. package/dist/esm/sdk/walletCapabilityBindings-CKOK39sP.js +0 -1
  517. package/dist/esm/sdk/walletCustodyEcdsaContinuity-5XsLsT8D.js +0 -1
  518. package/dist/esm/sdk/walletCustodyOperation-BO_tSfGY.js +0 -1
  519. package/dist/esm/sdk/walletDbName-BVZhb4xF.js +0 -1
  520. package/dist/esm/sdk/walletOwnershipGeneration-CQzaodhB.js +0 -1
  521. package/dist/esm/sdk/walletRecoveryAdminProof-CtH8_lph.js +0 -1
  522. package/dist/esm/sdk/walletRecoveryCommit-B_e4k5Pa.js +0 -1
  523. package/dist/esm/sdk/walletRegistrationSetupPrewarm-CQow9u8m.js +0 -1
  524. package/dist/esm/sdk/walletSessionAuthorizationStatus-_KtCVFYW.js +0 -1
  525. package/dist/esm/sdk/warmSessionHydration-CY9ofEGr.js +0 -1
  526. package/dist/public/sdk/ConfirmationDrawer-Ck33ZmU-.js +0 -1
  527. package/dist/public/sdk/activeWalletSession-BtEHhe99.js +0 -1
  528. package/dist/public/sdk/adapters-CgJpSAxH.js +0 -2
  529. package/dist/public/sdk/appearance-token-vars-BA3KQyEE.js +0 -2
  530. package/dist/public/sdk/clientSessionPersistenceState-DFGHXoKK.js +0 -1
  531. package/dist/public/sdk/configBuilder-BMNShuOu.js +0 -1
  532. package/dist/public/sdk/domainIds-C3fUa33Q.js +0 -1
  533. package/dist/public/sdk/ecdsaCapabilityManifest-B3u6J5gn.js +0 -1
  534. package/dist/public/sdk/ecdsaDerivationExport-DrFESeRP.js +0 -1
  535. package/dist/public/sdk/emailOtpEcdsaDerivationIdentity-DreNrM6n.js +0 -1
  536. package/dist/public/sdk/exportKeypairOperation-Du9HKB8f.js +0 -1
  537. package/dist/public/sdk/host-DoftJdVQ.js +0 -1
  538. package/dist/public/sdk/intentDigest--FZ63NBy.js +0 -1
  539. package/dist/public/sdk/lanes-l274pbT5.js +0 -1
  540. package/dist/public/sdk/localOnly-CvFSZFUy.js +0 -1
  541. package/dist/public/sdk/mountExportPrivateKeySurface-DdJHWwqY.js +0 -1
  542. package/dist/public/sdk/nearEd25519YaoMaterialActivation-BK8_DxHs.js +0 -1
  543. package/dist/public/sdk/nearEd25519YaoSigningPreparation-BgCxoh9S.js +0 -1
  544. package/dist/public/sdk/pendingWalletRecoveryCodeBackup-LbstFwcY.js +0 -1
  545. package/dist/public/sdk/presignaturePool-DNiA3sgr.js +0 -1
  546. package/dist/public/sdk/recovery-entrypoint-CNVjXz6A.js +0 -1
  547. package/dist/public/sdk/registration-CIxJvbTo.js +0 -1
  548. package/dist/public/sdk/registration-CeOmKyCG.js +0 -1
  549. package/dist/public/sdk/registrationIntent-DW_kKWlx.js +0 -1
  550. package/dist/public/sdk/routerAbNormalSigning-DSAfCcND.js +0 -1
  551. package/dist/public/sdk/runtime-auth-C0V-5znH.js +0 -1
  552. package/dist/public/sdk/runtime-device-link-B1jpHQSF.js +0 -1
  553. package/dist/public/sdk/runtime-ecdsa-tempo-CDSZ3pxS.js +0 -1
  554. package/dist/public/sdk/runtime-email-otp-DXuxFOjL.js +0 -1
  555. package/dist/public/sdk/runtime-export-Ba12ChDI.js +0 -1
  556. package/dist/public/sdk/runtime-near-DRrdWzmr.js +0 -1
  557. package/dist/public/sdk/runtime-preferences-BWyhRaBA.js +0 -1
  558. package/dist/public/sdk/runtime-recovery-DlJlaZlf.js +0 -1
  559. package/dist/public/sdk/runtime-recovery-codes-CuqYWqK7.js +0 -1
  560. package/dist/public/sdk/sessionObservationRevision-abErAhd6.js +0 -1
  561. package/dist/public/sdk/shared-B95wnpoD.js +0 -6
  562. package/dist/public/sdk/signEvmFamily-C4XMiSue.js +0 -1
  563. package/dist/public/sdk/signNear-B_UcqMRf.js +0 -1
  564. package/dist/public/sdk/signerDomain-YEHkugWX.js +0 -1
  565. package/dist/public/sdk/surface-measurement-reporter-F-fVB7d3.js +0 -1
  566. package/dist/public/sdk/transactionReviewAdmission-CNNho8IG.js +0 -1
  567. package/dist/public/sdk/types-BrEW276O.js +0 -1
  568. package/dist/public/sdk/wallet-recovery-BEui57xM.js +0 -1
  569. package/dist/public/sdk/walletAuthMethodRecord-Cv_MYpxt.js +0 -1
  570. package/dist/public/sdk/walletCapabilityBindings-CKOK39sP.js +0 -1
  571. package/dist/public/sdk/walletCustodyEcdsaContinuity-5XsLsT8D.js +0 -1
  572. package/dist/public/sdk/walletCustodyOperation-BO_tSfGY.js +0 -1
  573. package/dist/public/sdk/walletDbName-BVZhb4xF.js +0 -1
  574. package/dist/public/sdk/walletOwnershipGeneration-CQzaodhB.js +0 -1
  575. package/dist/public/sdk/walletRecoveryAdminProof-CtH8_lph.js +0 -1
  576. package/dist/public/sdk/walletRecoveryCommit-B_e4k5Pa.js +0 -1
  577. package/dist/public/sdk/walletRegistrationSetupPrewarm-CQow9u8m.js +0 -1
  578. package/dist/public/sdk/walletSessionAuthorizationStatus-_KtCVFYW.js +0 -1
  579. package/dist/public/sdk/warmSessionHydration-CY9ofEGr.js +0 -1
  580. package/dist/types/wallet/src/react/components/AccountMenuButton/icons/PlusIcon.d.ts +0 -2
  581. package/dist/types/wallet/src/react/components/VoiceAssistantCard.d.ts +0 -37
  582. package/dist/types/wallet/src/react/components/VoiceAssistantCard.typecheck.d.ts +0 -2
  583. /package/dist/esm/sdk/{accountIds-BzZs7YoX.js → accountIds-D5NI31F2.js} +0 -0
  584. /package/dist/esm/sdk/{appearance-ZGVLwA4N.js → appearance-DVFno9Tv.js} +0 -0
  585. /package/dist/esm/sdk/{authenticatorOptions-BB_sU4uA.js → authenticatorOptions-EF_Rps52.js} +0 -0
  586. /package/dist/esm/sdk/{authorizationAdmission-D7nx2n4d.js → authorizationAdmission-DbhNiY3X.js} +0 -0
  587. /package/dist/esm/sdk/{browser-DkCRXFkk.js → browser-B2RI00tM.js} +0 -0
  588. /package/dist/esm/sdk/{bytes-Cv07P0Pu.js → bytes-DVe42j_r.js} +0 -0
  589. /package/dist/esm/sdk/{canonicalSignerErrorCode-CqHi6ji6.js → canonicalSignerErrorCode-AwNMAn8S.js} +0 -0
  590. /package/dist/esm/sdk/{errors-CI1xdN0d.js → errors-ADOZT8oV.js} +0 -0
  591. /package/dist/esm/sdk/{executeWorkerOperation-S6glYwAs.js → executeWorkerOperation-B-9JuL55.js} +0 -0
  592. /package/dist/esm/sdk/{jsonRpc-B5zMY6lE.js → jsonRpc-CHutSlC9.js} +0 -0
  593. /package/dist/esm/sdk/{keccak-CaPOCznk.js → keccak-C9kCkZem.js} +0 -0
  594. /package/dist/esm/sdk/{normalization-CpLZcL2f.js → normalization-DtruiNPw.js} +0 -0
  595. /package/dist/esm/sdk/{prfCache-D25ZCg5n.js → prfCache-8Wm3etlV.js} +0 -0
  596. /package/dist/esm/sdk/{profileAccountProjection-C1z9sKHa.js → profileAccountProjection-D01e10UY.js} +0 -0
  597. /package/dist/esm/sdk/{promptText-D2f5Rg0h.js → promptText-Bz3YRl9D.js} +0 -0
  598. /package/dist/esm/sdk/{signer-worker-Bh_5foqX.js → signer-worker-DlK58rEA.js} +0 -0
  599. /package/dist/esm/sdk/{types-BNUuaUtl.js → types-fJKfUgTi.js} +0 -0
  600. /package/dist/esm/sdk/{walletIframeIdentity-DJ0KOBHg.js → walletIframeIdentity-Cz82I_Uh.js} +0 -0
  601. /package/dist/esm/sdk/{walletSessionAuthorizationProjection-UdGeS6x3.js → walletSessionAuthorizationProjection-BJgnZaBc.js} +0 -0
  602. /package/dist/esm/sdk/{walletSessionFailure-Ct412mDZ.js → walletSessionFailure-CLUIF3Eh.js} +0 -0
  603. /package/dist/esm/sdk/{webauthnPromptCoordinator-CBkTiMP0.js → webauthnPromptCoordinator-CU9ag7vz.js} +0 -0
  604. /package/dist/public/sdk/{accountIds-BzZs7YoX.js → accountIds-D5NI31F2.js} +0 -0
  605. /package/dist/public/sdk/{appearance-ZGVLwA4N.js → appearance-DVFno9Tv.js} +0 -0
  606. /package/dist/public/sdk/{authenticatorOptions-BB_sU4uA.js → authenticatorOptions-EF_Rps52.js} +0 -0
  607. /package/dist/public/sdk/{authorizationAdmission-D7nx2n4d.js → authorizationAdmission-DbhNiY3X.js} +0 -0
  608. /package/dist/public/sdk/{browser-DkCRXFkk.js → browser-B2RI00tM.js} +0 -0
  609. /package/dist/public/sdk/{bytes-Cv07P0Pu.js → bytes-DVe42j_r.js} +0 -0
  610. /package/dist/public/sdk/{canonicalSignerErrorCode-CqHi6ji6.js → canonicalSignerErrorCode-AwNMAn8S.js} +0 -0
  611. /package/dist/public/sdk/{errors-CI1xdN0d.js → errors-ADOZT8oV.js} +0 -0
  612. /package/dist/public/sdk/{executeWorkerOperation-S6glYwAs.js → executeWorkerOperation-B-9JuL55.js} +0 -0
  613. /package/dist/public/sdk/{jsonRpc-B5zMY6lE.js → jsonRpc-CHutSlC9.js} +0 -0
  614. /package/dist/public/sdk/{keccak-CaPOCznk.js → keccak-C9kCkZem.js} +0 -0
  615. /package/dist/public/sdk/{normalization-CpLZcL2f.js → normalization-DtruiNPw.js} +0 -0
  616. /package/dist/public/sdk/{prfCache-D25ZCg5n.js → prfCache-8Wm3etlV.js} +0 -0
  617. /package/dist/public/sdk/{profileAccountProjection-C1z9sKHa.js → profileAccountProjection-D01e10UY.js} +0 -0
  618. /package/dist/public/sdk/{promptText-D2f5Rg0h.js → promptText-Bz3YRl9D.js} +0 -0
  619. /package/dist/public/sdk/{signer-worker-Bh_5foqX.js → signer-worker-DlK58rEA.js} +0 -0
  620. /package/dist/public/sdk/{types-BNUuaUtl.js → types-fJKfUgTi.js} +0 -0
  621. /package/dist/public/sdk/{walletIframeIdentity-DJ0KOBHg.js → walletIframeIdentity-Cz82I_Uh.js} +0 -0
  622. /package/dist/public/sdk/{walletSessionAuthorizationProjection-UdGeS6x3.js → walletSessionAuthorizationProjection-BJgnZaBc.js} +0 -0
  623. /package/dist/public/sdk/{walletSessionFailure-Ct412mDZ.js → walletSessionFailure-CLUIF3Eh.js} +0 -0
  624. /package/dist/public/sdk/{webauthnPromptCoordinator-CBkTiMP0.js → webauthnPromptCoordinator-CU9ag7vz.js} +0 -0
@@ -1 +1 @@
1
- import{D as e,O as t,T as n,h as r}from"./domainIds-C3fUa33Q.js";import{i,t as a}from"./activeWalletSession-BtEHhe99.js";import{d as o,h as s,m as c}from"./capabilityKinds-CqHVzVsJ.js";import{r as l}from"./canonicalPrimitives-D_1HyEuJ.js";import{a as u,i as d,n as f}from"./presignatures-DGLNs29C.js";import{t as p}from"./walletOwnershipGeneration-CQzaodhB.js";var m=class extends Error{kind=`upgrade_required`;code=`upgrade_required`;constructor(e){super(e),this.name=`WalletSessionAuthorizationUpgradeRequiredError`}};const h=u.walletSessionAuthorizations;function g(e,t){if(typeof e!=`object`||!e||Array.isArray(e))return null;let n=Object.keys(e);if(n.length!==t.length||n.some(e=>!t.includes(e)))return null;let r=new Map;for(let t of n)r.set(t,Reflect.get(e,t));return r}function _(e,t){if(!(typeof e!=`object`||!e||Array.isArray(e)))return Reflect.get(e,t)}function v(e){switch(e){case`expired`:case`exhausted`:case`replaced`:case`wallet_locked`:case`invalidated`:return e;default:return null}}const y=[`kind`,`walletId`,`authorityId`,`authMethodId`,`authorizationId`,`quotaId`,`authorityDigestB64u`,`authorityRevocationEpoch`,`capabilitySubjects`,`issuedAtMs`,`expiresAtMs`],b=[...y,`retiredAtMs`,`retirementReason`],x=[`record_version`,`wallet_session_id`,`authorization_id`,`wallet_id`,`wallet_authority_id`,`wallet_auth_method_id`,`authority_digest_b64u`,`authority_revocation_epoch`,`status`,`issued_at_ms`,`expires_at_ms`,`record`,`operation_credential`],S=/^wallet_session_authorization_v([0-9]+)$/;function C(e){if(typeof e!=`string`)return null;let t=S.exec(e);if(!t)return null;let n=Number(t[1]);return Number.isSafeInteger(n)?n:null}function w(e){let t=typeof e==`object`&&!!e&&!Array.isArray(e)&&Object.prototype.hasOwnProperty.call(e,`record_version`),n=C(_(e,`record_version`)),r=t?null:C(_(_(e,`record`),`recordVersion`)),i=n??r;return i===null?{kind:`unknown`}:i>=3&&i<6?{kind:`legacy`,version:i}:t&&i===6?{kind:`current`,version:i}:t&&i>6?{kind:`future`,version:i}:{kind:`unknown`}}function T(e,t){if(w(e).kind!==`future`||_(e,`wallet_id`)!==t.walletId)return!1;let n=_(e,`wallet_authority_id`),r=_(e,`wallet_auth_method_id`);return typeof n!=`string`||typeof r!=`string`?!0:n===t.authorityId&&r===t.authMethodId}function E(e){return typeof e==`number`&&Number.isSafeInteger(e)&&e>=0}function D(e){let t=_(e,`wallet_session_id`);if(typeof t!=`string`)throw Error(`Stored Wallet Session authorization key is invalid`);return t}function O(e){switch(e.kind){case`sign`:case`export_keys`:return`${e.kind}:${e.keyFamily}:${e.materialActivation.activationId}`;case`link_devices`:case`revoke_devices`:return e.kind;default:return k(e)}}function k(e){throw Error(`Unknown Wallet Capability subject: ${String(e)}`)}function A(e){let t=_(e,`kind`);if(t===`sign`||t===`export_keys`){let n=g(e,[`kind`,`keyFamily`,`materialActivation`]);if(!n)return null;let i=n.get(`keyFamily`);if(i!==`ed25519`&&i!==`ecdsa_secp256k1`)return null;let a=r(n.get(`materialActivation`));return a.ok?{kind:t,keyFamily:i,materialActivation:a.value}:null}return(t===`link_devices`||t===`revoke_devices`)&&g(e,[`kind`])?{kind:t}:null}function j(e){if(!Array.isArray(e)||e.length===0)return null;let t=[];for(let n of e){let e=A(n);if(!e)return null;t.push(e)}let n=new Set;for(let e of t){let t=O(e);if(n.has(t))return null;n.add(t)}let[r,...i]=t;return r?[r,...i]:null}function M(r){let i=_(r,`kind`),a=i===`active_wallet_session_v1`?g(r,y):i===`retired_wallet_session_v1`?g(r,b):null;if(!a)return null;let s=t(a.get(`walletId`)),u=e(a.get(`authorityId`)),d=n(a.get(`authMethodId`)),f=c(a.get(`authorizationId`)),p=o(a.get(`quotaId`));if(!s.ok||!u.ok||!d.ok||!f.ok||!p.ok)return null;let m;try{m=l(a.get(`authorityDigestB64u`))}catch{return null}let h=j(a.get(`capabilitySubjects`)),x=a.get(`authorityRevocationEpoch`),S=a.get(`issuedAtMs`),C=a.get(`expiresAtMs`);if(!h||!E(x)||!E(S)||!E(C)||C<=S)return null;let w={walletId:s.value,authorityId:u.value,authMethodId:d.value,authorizationId:f.value,quotaId:p.value,authorityDigestB64u:m,authorityRevocationEpoch:x,capabilitySubjects:h,issuedAtMs:S,expiresAtMs:C};if(i===`active_wallet_session_v1`)return{kind:`active_wallet_session_v1`,walletId:w.walletId,authorityId:w.authorityId,authMethodId:w.authMethodId,authorizationId:w.authorizationId,quotaId:w.quotaId,authorityDigestB64u:w.authorityDigestB64u,authorityRevocationEpoch:w.authorityRevocationEpoch,capabilitySubjects:w.capabilitySubjects,issuedAtMs:w.issuedAtMs,expiresAtMs:w.expiresAtMs};if(i===`retired_wallet_session_v1`){let e=a.get(`retiredAtMs`);if(!E(e)||e<w.issuedAtMs)return null;let t=v(a.get(`retirementReason`));return!t||t===`expired`&&e<w.expiresAtMs?null:{kind:`retired_wallet_session_v1`,walletId:w.walletId,authorityId:w.authorityId,authMethodId:w.authMethodId,authorizationId:w.authorizationId,quotaId:w.quotaId,authorityDigestB64u:w.authorityDigestB64u,authorityRevocationEpoch:w.authorityRevocationEpoch,capabilitySubjects:w.capabilitySubjects,issuedAtMs:w.issuedAtMs,expiresAtMs:w.expiresAtMs,retiredAtMs:e,retirementReason:t}}return null}function N(e){if(!E(e.retiredAtMs))throw Error(`Retired Wallet Session v1 time is invalid`);let t=M({kind:`retired_wallet_session_v1`,walletId:e.active.walletId,authorityId:e.active.authorityId,authMethodId:e.active.authMethodId,authorizationId:e.active.authorizationId,quotaId:e.active.quotaId,authorityDigestB64u:e.active.authorityDigestB64u,authorityRevocationEpoch:e.active.authorityRevocationEpoch,capabilitySubjects:e.active.capabilitySubjects,issuedAtMs:e.active.issuedAtMs,expiresAtMs:e.active.expiresAtMs,retiredAtMs:e.retiredAtMs,retirementReason:e.reason});if(!t||t.kind!==`retired_wallet_session_v1`)throw Error(`Retired Wallet Session v1 is invalid`);return t}function P(e,t){let n=M(e);if(!n||n.kind!==`active_wallet_session_v1`)throw Error(`Active Wallet Session v1 is invalid`);let r;try{r=i(t)}catch{throw Error(`Wallet Session operation credential is invalid`)}let a={record_version:`wallet_session_authorization_v6`,wallet_session_id:r.walletSessionId,authorization_id:n.authorizationId,wallet_id:n.walletId,wallet_authority_id:n.authorityId,wallet_auth_method_id:n.authMethodId,authority_digest_b64u:n.authorityDigestB64u,authority_revocation_epoch:n.authorityRevocationEpoch,status:`active`,issued_at_ms:n.issuedAtMs,expires_at_ms:n.expiresAtMs,record:{kind:n.kind,walletId:n.walletId,authorityId:n.authorityId,authMethodId:n.authMethodId,authorizationId:n.authorizationId,walletSessionId:r.walletSessionId,quotaId:n.quotaId,authorityDigestB64u:n.authorityDigestB64u,authorityRevocationEpoch:n.authorityRevocationEpoch,capabilitySubjects:n.capabilitySubjects,issuedAtMs:n.issuedAtMs,expiresAtMs:n.expiresAtMs},operation_credential:r};if(!F(a))throw Error(`Wallet Session authorization v6 is invalid`);return a}function F(e){let t=g(e,x);if(!t||t.get(`record_version`)!==`wallet_session_authorization_v6`||t.get(`status`)!==`active`)return null;let n=s(t.get(`wallet_session_id`)),r=c(t.get(`authorization_id`));if(!n.ok||!r.ok)return null;let a;try{a=i(t.get(`operation_credential`))}catch{return null}if(n.value!==a.walletSessionId)return null;let o=g(t.get(`record`),[...y,`walletSessionId`]);if(!o)return null;let l=s(o.get(`walletSessionId`));if(!l.ok||l.value!==n.value)return null;let u=M({kind:o.get(`kind`),walletId:o.get(`walletId`),authorityId:o.get(`authorityId`),authMethodId:o.get(`authMethodId`),authorizationId:o.get(`authorizationId`),quotaId:o.get(`quotaId`),authorityDigestB64u:o.get(`authorityDigestB64u`),authorityRevocationEpoch:o.get(`authorityRevocationEpoch`),capabilitySubjects:o.get(`capabilitySubjects`),issuedAtMs:o.get(`issuedAtMs`),expiresAtMs:o.get(`expiresAtMs`)});return!u||u.kind!==`active_wallet_session_v1`||t.get(`wallet_id`)!==u.walletId||t.get(`wallet_authority_id`)!==u.authorityId||t.get(`wallet_auth_method_id`)!==u.authMethodId||t.get(`authority_digest_b64u`)!==u.authorityDigestB64u||t.get(`authority_revocation_epoch`)!==u.authorityRevocationEpoch||t.get(`issued_at_ms`)!==u.issuedAtMs||t.get(`expires_at_ms`)!==u.expiresAtMs||r.value!==u.authorizationId?null:{record:u,operationCredential:a,physicalKey:n.value}}async function I(e){let t=M(e.active);if(!t||t.kind!==`active_wallet_session_v1`)throw Error(`Active Wallet Session v1 is invalid`);let n=i(e.operationCredential);await p(e.ctx,t.walletId,n.ownershipGeneration);let r=P(t,n),o=!0,s=e.ctx.store(h),c=await s.index(d.walletId).getAll(t.walletId);for(let e of c){let r=w(e);if(r.kind===`future`)continue;if(r.kind===`legacy`){await s.delete(D(e));continue}if(r.kind!==`current`)throw Error(`Stored Wallet Session authorization row is corrupt`);let i=F(e);if(!i)throw Error(`Stored Wallet Session authorization v6 is corrupt`);let c=i.record;if(i.operationCredential.walletSessionId===n.walletSessionId&&(i.operationCredential.token!==n.token||i.operationCredential.ownershipGeneration!==n.ownershipGeneration))throw Error(`Stored Wallet Session conflicts with the issued operation credential`);if(i.operationCredential.ownershipGeneration<n.ownershipGeneration){await s.delete(i.physicalKey);continue}if(!(c.kind!==`active_wallet_session_v1`||c.authorityId!==t.authorityId||c.authMethodId!==t.authMethodId)){if(c.authorizationId===t.authorizationId&&i.operationCredential.walletSessionId===n.walletSessionId){o=!a(c,t);continue}await s.delete(i.physicalKey)}}return o&&await s.put(r),t}async function L(e){let t=e.ctx.store(h),n=await t.index(d.walletId).getAll(e.walletId),r=null,i=!1;for(let a of n){if(T(a,e)){i=!0;continue}let n=w(a);if(n.kind===`legacy`){await t.delete(D(a));continue}if(n.kind!==`current`)return{kind:`corrupt`};let o=F(a);if(!o)return{kind:`corrupt`};if(!(o.record.walletId!==e.walletId||o.record.authorityId!==e.authorityId||o.record.authMethodId!==e.authMethodId)){if(r)return{kind:`corrupt`};r=o}}return i?{kind:`upgrade_required`}:r?{kind:`found`,...r}:{kind:`missing`}}var R=class{constructor(e=f){this.manager=e}async writeExactWithOperationCredential(e){let t=M(e.record);if(!t||t.kind!==`active_wallet_session_v1`)throw Error(`Active Wallet Session v1 is invalid`);let n=i(e.operationCredential);return await this.replaceExactActive({active:t,operationCredential:n}),t}async refreshExactWithOperationCredential(e){let t=M(e.expected),n=M(e.record);if(!t||t.kind!==`active_wallet_session_v1`||!n||n.kind!==`active_wallet_session_v1`)throw Error(`Active Wallet Session refresh is invalid`);for(let e of y)if(!(e===`kind`||e===`capabilitySubjects`)&&t[e]!==n[e])throw Error(`Wallet Session refresh changed its exact identity`);let r=P(n,i(e.operationCredential));return this.manager.runTransaction([h],`readwrite`,B.bind(null,t,r))}async readExact(e){return this.manager.runTransaction([h],`readwrite`,V.bind(null,e))}async readExactWithOperationCredential(e){let t=await this.readExactActiveForWallet(e);switch(t.kind){case`found`:case`missing`:case`upgrade_required`:return t;case`corrupt`:throw Error(`Stored Wallet Session authorization v6 is corrupt`);case`persistence_unavailable`:throw Error(`Wallet Session authorization persistence is unavailable`)}}async readExactActiveForWallet(e){try{return await this.manager.runTransaction([h],`readwrite`,H.bind(null,e))}catch(e){return e instanceof z?{kind:`corrupt`}:{kind:`persistence_unavailable`}}}async retireExactActiveForWallet(e){if(!E(e.retiredAtMs))throw Error(`Wallet Session v1 retirement time is invalid`);return this.manager.runTransaction([h],`readwrite`,U.bind(null,e))}async replaceExactActive(e){return this.manager.runTransaction([h,u.appState,u.ecdsaClientPresignatures],`readwrite`,W.bind(null,e))}async clearWallet(e){await this.manager.runTransaction([h],`readwrite`,G.bind(null,e))}async clearAll(){await this.manager.runTransaction([h],`readwrite`,K)}},z=class extends Error{};async function B(e,t,n){let r=n.store(h),i=t.operation_credential,o=await r.get(i.walletSessionId);if(o===void 0)return`superseded`;let s=F(o);if(!s)throw Error(`Stored Wallet Session authorization v6 is corrupt`);return!a(s.record,e)||s.operationCredential.token!==i.token?`superseded`:(await r.put(t),`updated`)}async function V(e,t){let n=t.store(h),r=await n.get(e);if(r===void 0)return null;switch(w(r).kind){case`future`:throw new m(`Wallet Session authorization requires a newer client`);case`legacy`:return await n.delete(D(r)),null;case`current`:break;case`unknown`:throw Error(`Stored Wallet Session authorization v6 is corrupt`)}let i=F(r);if(!i)throw Error(`Stored Wallet Session authorization v6 is corrupt`);return i.record}async function H(e,t){let n=await L({ctx:t,walletId:e.walletId,authorityId:e.authorityId,authMethodId:e.authMethodId});if(n.kind===`corrupt`)throw new z(`Stored Wallet Session authorization v6 is corrupt`);return n}async function U(e,t){let n=t.store(h),r=[],i=await n.index(d.walletId).getAll(e.walletId);for(let t of i){let i=w(t);if(i.kind===`future`)continue;if(i.kind===`legacy`){await n.delete(D(t));continue}if(i.kind!==`current`)continue;let a=F(t);if(!a)throw Error(`Stored Wallet Session authorization v6 is corrupt`);let o=a.record;if(o.kind!==`active_wallet_session_v1`)continue;let s=N({active:o,reason:e.reason,retiredAtMs:e.retiredAtMs});await n.delete(a.physicalKey),r.push(s)}return r}function W(e,t){return I({ctx:t,active:e.active,operationCredential:e.operationCredential})}async function G(e,t){let n=t.store(h),r=await n.index(d.walletId).getAllKeys(e);for(let e of r)await n.delete(e)}function K(e){return e.store(h).clear()}const q=new R;export{P as a,I as i,F as n,q as o,L as r,m as t};
1
+ import{E as e,O as t,g as n,k as r}from"./domainIds-t1lp25yU.js";import{i,t as a}from"./activeWalletSession-H9JBdHyQ.js";import{d as o,h as s,m as c}from"./capabilityKinds-BzrNeEyO.js";import{r as l}from"./canonicalPrimitives-B6YMrI3W.js";import{a as u,i as d,n as f}from"./presignatures-B9GrGx0L.js";import{t as p}from"./walletOwnershipGeneration-DI9ogcXF.js";var m=class extends Error{kind=`upgrade_required`;code=`upgrade_required`;constructor(e){super(e),this.name=`WalletSessionAuthorizationUpgradeRequiredError`}};const h=u.walletSessionAuthorizations;function g(e,t){if(typeof e!=`object`||!e||Array.isArray(e))return null;let n=Object.keys(e);if(n.length!==t.length||n.some(e=>!t.includes(e)))return null;let r=new Map;for(let t of n)r.set(t,Reflect.get(e,t));return r}function _(e,t){if(!(typeof e!=`object`||!e||Array.isArray(e)))return Reflect.get(e,t)}function v(e){switch(e){case`expired`:case`exhausted`:case`replaced`:case`wallet_locked`:case`invalidated`:return e;default:return null}}const y=[`kind`,`walletId`,`authorityId`,`authMethodId`,`authorizationId`,`quotaId`,`authorityDigestB64u`,`authorityRevocationEpoch`,`capabilitySubjects`,`issuedAtMs`,`expiresAtMs`],b=[...y,`retiredAtMs`,`retirementReason`],x=[`record_version`,`wallet_session_id`,`authorization_id`,`wallet_id`,`wallet_authority_id`,`wallet_auth_method_id`,`authority_digest_b64u`,`authority_revocation_epoch`,`status`,`issued_at_ms`,`expires_at_ms`,`record`,`operation_credential`],S=/^wallet_session_authorization_v([0-9]+)$/;function C(e){if(typeof e!=`string`)return null;let t=S.exec(e);if(!t)return null;let n=Number(t[1]);return Number.isSafeInteger(n)?n:null}function w(e){let t=typeof e==`object`&&!!e&&!Array.isArray(e)&&Object.prototype.hasOwnProperty.call(e,`record_version`),n=C(_(e,`record_version`)),r=t?null:C(_(_(e,`record`),`recordVersion`)),i=n??r;return i===null?{kind:`unknown`}:i>=3&&i<6?{kind:`legacy`,version:i}:t&&i===6?{kind:`current`,version:i}:t&&i>6?{kind:`future`,version:i}:{kind:`unknown`}}function T(e,t){if(w(e).kind!==`future`||_(e,`wallet_id`)!==t.walletId)return!1;let n=_(e,`wallet_authority_id`),r=_(e,`wallet_auth_method_id`);return typeof n!=`string`||typeof r!=`string`?!0:n===t.authorityId&&r===t.authMethodId}function E(e){return typeof e==`number`&&Number.isSafeInteger(e)&&e>=0}function D(e){let t=_(e,`wallet_session_id`);if(typeof t!=`string`)throw Error(`Stored Wallet Session authorization key is invalid`);return t}function O(e){switch(e.kind){case`sign`:case`export_keys`:return`${e.kind}:${e.keyFamily}:${e.materialActivation.activationId}`;case`link_devices`:case`revoke_devices`:return e.kind;default:return k(e)}}function k(e){throw Error(`Unknown Wallet Capability subject: ${String(e)}`)}function A(e){let t=_(e,`kind`);if(t===`sign`||t===`export_keys`){let r=g(e,[`kind`,`keyFamily`,`materialActivation`]);if(!r)return null;let i=r.get(`keyFamily`);if(i!==`ed25519`&&i!==`ecdsa_secp256k1`)return null;let a=n(r.get(`materialActivation`));return a.ok?{kind:t,keyFamily:i,materialActivation:a.value}:null}return(t===`link_devices`||t===`revoke_devices`)&&g(e,[`kind`])?{kind:t}:null}function j(e){if(!Array.isArray(e)||e.length===0)return null;let t=[];for(let n of e){let e=A(n);if(!e)return null;t.push(e)}let n=new Set;for(let e of t){let t=O(e);if(n.has(t))return null;n.add(t)}let[r,...i]=t;return r?[r,...i]:null}function M(n){let i=_(n,`kind`),a=i===`active_wallet_session_v1`?g(n,y):i===`retired_wallet_session_v1`?g(n,b):null;if(!a)return null;let s=r(a.get(`walletId`)),u=t(a.get(`authorityId`)),d=e(a.get(`authMethodId`)),f=c(a.get(`authorizationId`)),p=o(a.get(`quotaId`));if(!s.ok||!u.ok||!d.ok||!f.ok||!p.ok)return null;let m;try{m=l(a.get(`authorityDigestB64u`))}catch{return null}let h=j(a.get(`capabilitySubjects`)),x=a.get(`authorityRevocationEpoch`),S=a.get(`issuedAtMs`),C=a.get(`expiresAtMs`);if(!h||!E(x)||!E(S)||!E(C)||C<=S)return null;let w={walletId:s.value,authorityId:u.value,authMethodId:d.value,authorizationId:f.value,quotaId:p.value,authorityDigestB64u:m,authorityRevocationEpoch:x,capabilitySubjects:h,issuedAtMs:S,expiresAtMs:C};if(i===`active_wallet_session_v1`)return{kind:`active_wallet_session_v1`,walletId:w.walletId,authorityId:w.authorityId,authMethodId:w.authMethodId,authorizationId:w.authorizationId,quotaId:w.quotaId,authorityDigestB64u:w.authorityDigestB64u,authorityRevocationEpoch:w.authorityRevocationEpoch,capabilitySubjects:w.capabilitySubjects,issuedAtMs:w.issuedAtMs,expiresAtMs:w.expiresAtMs};if(i===`retired_wallet_session_v1`){let e=a.get(`retiredAtMs`);if(!E(e)||e<w.issuedAtMs)return null;let t=v(a.get(`retirementReason`));return!t||t===`expired`&&e<w.expiresAtMs?null:{kind:`retired_wallet_session_v1`,walletId:w.walletId,authorityId:w.authorityId,authMethodId:w.authMethodId,authorizationId:w.authorizationId,quotaId:w.quotaId,authorityDigestB64u:w.authorityDigestB64u,authorityRevocationEpoch:w.authorityRevocationEpoch,capabilitySubjects:w.capabilitySubjects,issuedAtMs:w.issuedAtMs,expiresAtMs:w.expiresAtMs,retiredAtMs:e,retirementReason:t}}return null}function N(e){if(!E(e.retiredAtMs))throw Error(`Retired Wallet Session v1 time is invalid`);let t=M({kind:`retired_wallet_session_v1`,walletId:e.active.walletId,authorityId:e.active.authorityId,authMethodId:e.active.authMethodId,authorizationId:e.active.authorizationId,quotaId:e.active.quotaId,authorityDigestB64u:e.active.authorityDigestB64u,authorityRevocationEpoch:e.active.authorityRevocationEpoch,capabilitySubjects:e.active.capabilitySubjects,issuedAtMs:e.active.issuedAtMs,expiresAtMs:e.active.expiresAtMs,retiredAtMs:e.retiredAtMs,retirementReason:e.reason});if(!t||t.kind!==`retired_wallet_session_v1`)throw Error(`Retired Wallet Session v1 is invalid`);return t}function P(e,t){let n=M(e);if(!n||n.kind!==`active_wallet_session_v1`)throw Error(`Active Wallet Session v1 is invalid`);let r;try{r=i(t)}catch{throw Error(`Wallet Session operation credential is invalid`)}let a={record_version:`wallet_session_authorization_v6`,wallet_session_id:r.walletSessionId,authorization_id:n.authorizationId,wallet_id:n.walletId,wallet_authority_id:n.authorityId,wallet_auth_method_id:n.authMethodId,authority_digest_b64u:n.authorityDigestB64u,authority_revocation_epoch:n.authorityRevocationEpoch,status:`active`,issued_at_ms:n.issuedAtMs,expires_at_ms:n.expiresAtMs,record:{kind:n.kind,walletId:n.walletId,authorityId:n.authorityId,authMethodId:n.authMethodId,authorizationId:n.authorizationId,walletSessionId:r.walletSessionId,quotaId:n.quotaId,authorityDigestB64u:n.authorityDigestB64u,authorityRevocationEpoch:n.authorityRevocationEpoch,capabilitySubjects:n.capabilitySubjects,issuedAtMs:n.issuedAtMs,expiresAtMs:n.expiresAtMs},operation_credential:r};if(!F(a))throw Error(`Wallet Session authorization v6 is invalid`);return a}function F(e){let t=g(e,x);if(!t||t.get(`record_version`)!==`wallet_session_authorization_v6`||t.get(`status`)!==`active`)return null;let n=s(t.get(`wallet_session_id`)),r=c(t.get(`authorization_id`));if(!n.ok||!r.ok)return null;let a;try{a=i(t.get(`operation_credential`))}catch{return null}if(n.value!==a.walletSessionId)return null;let o=g(t.get(`record`),[...y,`walletSessionId`]);if(!o)return null;let l=s(o.get(`walletSessionId`));if(!l.ok||l.value!==n.value)return null;let u=M({kind:o.get(`kind`),walletId:o.get(`walletId`),authorityId:o.get(`authorityId`),authMethodId:o.get(`authMethodId`),authorizationId:o.get(`authorizationId`),quotaId:o.get(`quotaId`),authorityDigestB64u:o.get(`authorityDigestB64u`),authorityRevocationEpoch:o.get(`authorityRevocationEpoch`),capabilitySubjects:o.get(`capabilitySubjects`),issuedAtMs:o.get(`issuedAtMs`),expiresAtMs:o.get(`expiresAtMs`)});return!u||u.kind!==`active_wallet_session_v1`||t.get(`wallet_id`)!==u.walletId||t.get(`wallet_authority_id`)!==u.authorityId||t.get(`wallet_auth_method_id`)!==u.authMethodId||t.get(`authority_digest_b64u`)!==u.authorityDigestB64u||t.get(`authority_revocation_epoch`)!==u.authorityRevocationEpoch||t.get(`issued_at_ms`)!==u.issuedAtMs||t.get(`expires_at_ms`)!==u.expiresAtMs||r.value!==u.authorizationId?null:{record:u,operationCredential:a,physicalKey:n.value}}async function I(e){let t=M(e.active);if(!t||t.kind!==`active_wallet_session_v1`)throw Error(`Active Wallet Session v1 is invalid`);let n=i(e.operationCredential);await p(e.ctx,t.walletId,n.ownershipGeneration);let r=P(t,n),o=!0,s=e.ctx.store(h),c=await s.index(d.walletId).getAll(t.walletId);for(let e of c){let r=w(e);if(r.kind===`future`)continue;if(r.kind===`legacy`){await s.delete(D(e));continue}if(r.kind!==`current`)throw Error(`Stored Wallet Session authorization row is corrupt`);let i=F(e);if(!i)throw Error(`Stored Wallet Session authorization v6 is corrupt`);let c=i.record;if(i.operationCredential.walletSessionId===n.walletSessionId&&(i.operationCredential.token!==n.token||i.operationCredential.ownershipGeneration!==n.ownershipGeneration))throw Error(`Stored Wallet Session conflicts with the issued operation credential`);if(i.operationCredential.ownershipGeneration<n.ownershipGeneration){await s.delete(i.physicalKey);continue}if(!(c.kind!==`active_wallet_session_v1`||c.authorityId!==t.authorityId||c.authMethodId!==t.authMethodId)){if(c.authorizationId===t.authorizationId&&i.operationCredential.walletSessionId===n.walletSessionId){o=!a(c,t);continue}await s.delete(i.physicalKey)}}return o&&await s.put(r),t}async function L(e){let t=e.ctx.store(h),n=await t.index(d.walletId).getAll(e.walletId),r=null,i=!1;for(let a of n){if(T(a,e)){i=!0;continue}let n=w(a);if(n.kind===`legacy`){await t.delete(D(a));continue}if(n.kind!==`current`)return{kind:`corrupt`};let o=F(a);if(!o)return{kind:`corrupt`};if(!(o.record.walletId!==e.walletId||o.record.authorityId!==e.authorityId||o.record.authMethodId!==e.authMethodId)){if(r)return{kind:`corrupt`};r=o}}return i?{kind:`upgrade_required`}:r?{kind:`found`,...r}:{kind:`missing`}}var R=class{constructor(e=f){this.manager=e}async writeExactWithOperationCredential(e){let t=M(e.record);if(!t||t.kind!==`active_wallet_session_v1`)throw Error(`Active Wallet Session v1 is invalid`);let n=i(e.operationCredential);return await this.replaceExactActive({active:t,operationCredential:n}),t}async refreshExactWithOperationCredential(e){let t=M(e.expected),n=M(e.record);if(!t||t.kind!==`active_wallet_session_v1`||!n||n.kind!==`active_wallet_session_v1`)throw Error(`Active Wallet Session refresh is invalid`);for(let e of y)if(!(e===`kind`||e===`capabilitySubjects`)&&t[e]!==n[e])throw Error(`Wallet Session refresh changed its exact identity`);let r=P(n,i(e.operationCredential));return this.manager.runTransaction([h],`readwrite`,B.bind(null,t,r))}async readExact(e){return this.manager.runTransaction([h],`readwrite`,V.bind(null,e))}async readExactWithOperationCredential(e){let t=await this.readExactActiveForWallet(e);switch(t.kind){case`found`:case`missing`:case`upgrade_required`:return t;case`corrupt`:throw Error(`Stored Wallet Session authorization v6 is corrupt`);case`persistence_unavailable`:throw Error(`Wallet Session authorization persistence is unavailable`)}}async readExactActiveForWallet(e){try{return await this.manager.runTransaction([h],`readwrite`,H.bind(null,e))}catch(e){return e instanceof z?{kind:`corrupt`}:{kind:`persistence_unavailable`}}}async retireExactActiveForWallet(e){if(!E(e.retiredAtMs))throw Error(`Wallet Session v1 retirement time is invalid`);return this.manager.runTransaction([h],`readwrite`,U.bind(null,e))}async replaceExactActive(e){return this.manager.runTransaction([h,u.appState,u.ecdsaClientPresignatures],`readwrite`,W.bind(null,e))}async clearWallet(e){await this.manager.runTransaction([h],`readwrite`,G.bind(null,e))}async clearAll(){await this.manager.runTransaction([h],`readwrite`,K)}},z=class extends Error{};async function B(e,t,n){let r=n.store(h),i=t.operation_credential,o=await r.get(i.walletSessionId);if(o===void 0)return`superseded`;let s=F(o);if(!s)throw Error(`Stored Wallet Session authorization v6 is corrupt`);return!a(s.record,e)||s.operationCredential.token!==i.token?`superseded`:(await r.put(t),`updated`)}async function V(e,t){let n=t.store(h),r=await n.get(e);if(r===void 0)return null;switch(w(r).kind){case`future`:throw new m(`Wallet Session authorization requires a newer client`);case`legacy`:return await n.delete(D(r)),null;case`current`:break;case`unknown`:throw Error(`Stored Wallet Session authorization v6 is corrupt`)}let i=F(r);if(!i)throw Error(`Stored Wallet Session authorization v6 is corrupt`);return i.record}async function H(e,t){let n=await L({ctx:t,walletId:e.walletId,authorityId:e.authorityId,authMethodId:e.authMethodId});if(n.kind===`corrupt`)throw new z(`Stored Wallet Session authorization v6 is corrupt`);return n}async function U(e,t){let n=t.store(h),r=[],i=await n.index(d.walletId).getAll(e.walletId);for(let t of i){let i=w(t);if(i.kind===`future`)continue;if(i.kind===`legacy`){await n.delete(D(t));continue}if(i.kind!==`current`)continue;let a=F(t);if(!a)throw Error(`Stored Wallet Session authorization v6 is corrupt`);let o=a.record;if(o.kind!==`active_wallet_session_v1`)continue;let s=N({active:o,reason:e.reason,retiredAtMs:e.retiredAtMs});await n.delete(a.physicalKey),r.push(s)}return r}function W(e,t){return I({ctx:t,active:e.active,operationCredential:e.operationCredential})}async function G(e,t){let n=t.store(h),r=await n.index(d.walletId).getAllKeys(e);for(let e of r)await n.delete(e)}function K(e){return e.store(h).clear()}const q=new R;export{P as a,I as i,F as n,q as o,L as r,m as t};
@@ -0,0 +1 @@
1
+ import{t as e}from"./prfCache-8Wm3etlV.js";function t(t){return{hydrateSigningSession:n=>e(t.getWarmSessionMaterialWriter(),n)}}export{t as createWarmSessionHydrationService};
@@ -1 +1 @@
1
- import{r as e,t}from"./base64-BmKR3UqU.js";import{n}from"./evmCryptoWasm-S2gL5ht4.js";function r(e,t){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0}var i=class{algorithm=`webauthnP256`;constructor(e,t){this.workerCtx=e,this.beforeSigning=t}async buildWebauthnSignature(e){if(!this.workerCtx)throw Error(`[WebAuthnP256Engine] workerCtx is required for wasm-backed WebAuthn signature packing`);return await n({challenge32:e.challenge32,authenticatorData:e.authenticatorData,clientDataJSON:e.clientDataJSON,signatureDer:e.signatureDer,pubKeyX32:e.pubKeyX32,pubKeyY32:e.pubKeyY32,workerCtx:this.workerCtx})}async sign(n,i){if(n.kind!==`webauthn`||n.algorithm!==`webauthnP256`)throw Error(`[WebAuthnP256Engine] unsupported sign request`);if(n.challenge32.length!==32)throw Error(`[WebAuthnP256Engine] challenge32 must be 32 bytes`);if(i.type!==`webauthnP256`)throw Error(`[WebAuthnP256Engine] keyRef must be webauthnP256`);if(i.pubKeyX.length!==32||i.pubKeyY.length!==32)throw Error(`[WebAuthnP256Engine] pubKeyX/pubKeyY must be 32 bytes each`);if(i.credentialId.length===0)throw Error(`[WebAuthnP256Engine] credentialId must be non-empty`);let a=async a=>{let o=a&&typeof a==`object`?a:{};if(!r(t(String(o.rawId||``).trim()),i.credentialId))throw Error(`[WebAuthnP256Engine] WebAuthn credential rawId does not match keyRef`);let s=o.response,c=e(String(s?.authenticatorData||``)),l=e(String(s?.clientDataJSON||``)),u=e(String(s?.signature||``));if(c.length===0||l.length===0||u.length===0)throw Error(`[WebAuthnP256Engine] missing authenticatorData/clientDataJSON/signature in credential`);return await this.buildWebauthnSignature({challenge32:n.challenge32,authenticatorData:c,clientDataJSON:l,signatureDer:u,pubKeyX32:i.pubKeyX,pubKeyY32:i.pubKeyY})};if(n.credential)return await a(n.credential);if(typeof navigator>`u`||!navigator.credentials||typeof navigator.credentials.get!=`function`)throw Error(`[WebAuthnP256Engine] WebAuthn not available (must run in a browser context)`);let o=new Uint8Array(n.challenge32),s=new Uint8Array(i.credentialId);this.beforeSigning?.();let c=await navigator.credentials.get({publicKey:{challenge:o,allowCredentials:[{type:`public-key`,id:s}],rpId:n.rpId??i.rpId,userVerification:`preferred`}});if(!c)throw Error(`[WebAuthnP256Engine] user cancelled WebAuthn assertion`);if(!r(new Uint8Array(c.rawId),i.credentialId))throw Error(`[WebAuthnP256Engine] WebAuthn assertion returned unexpected credentialId`);let l=c.response;if(!l||!l.authenticatorData||!l.clientDataJSON||!l.signature)throw Error(`[WebAuthnP256Engine] invalid WebAuthn assertion response`);let u=new Uint8Array(l.authenticatorData),d=new Uint8Array(l.clientDataJSON),f=new Uint8Array(l.signature);return await this.buildWebauthnSignature({challenge32:n.challenge32,authenticatorData:u,clientDataJSON:d,signatureDer:f,pubKeyX32:i.pubKeyX,pubKeyY32:i.pubKeyY})}};export{i as WebAuthnP256Engine};
1
+ import{r as e,t}from"./base64-BmKR3UqU.js";import{n}from"./evmCryptoWasm-DacbCVNM.js";function r(e,t){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0}var i=class{algorithm=`webauthnP256`;constructor(e,t){this.workerCtx=e,this.beforeSigning=t}async buildWebauthnSignature(e){if(!this.workerCtx)throw Error(`[WebAuthnP256Engine] workerCtx is required for wasm-backed WebAuthn signature packing`);return await n({challenge32:e.challenge32,authenticatorData:e.authenticatorData,clientDataJSON:e.clientDataJSON,signatureDer:e.signatureDer,pubKeyX32:e.pubKeyX32,pubKeyY32:e.pubKeyY32,workerCtx:this.workerCtx})}async sign(n,i){if(n.kind!==`webauthn`||n.algorithm!==`webauthnP256`)throw Error(`[WebAuthnP256Engine] unsupported sign request`);if(n.challenge32.length!==32)throw Error(`[WebAuthnP256Engine] challenge32 must be 32 bytes`);if(i.type!==`webauthnP256`)throw Error(`[WebAuthnP256Engine] keyRef must be webauthnP256`);if(i.pubKeyX.length!==32||i.pubKeyY.length!==32)throw Error(`[WebAuthnP256Engine] pubKeyX/pubKeyY must be 32 bytes each`);if(i.credentialId.length===0)throw Error(`[WebAuthnP256Engine] credentialId must be non-empty`);let a=async a=>{let o=a&&typeof a==`object`?a:{};if(!r(t(String(o.rawId||``).trim()),i.credentialId))throw Error(`[WebAuthnP256Engine] WebAuthn credential rawId does not match keyRef`);let s=o.response,c=e(String(s?.authenticatorData||``)),l=e(String(s?.clientDataJSON||``)),u=e(String(s?.signature||``));if(c.length===0||l.length===0||u.length===0)throw Error(`[WebAuthnP256Engine] missing authenticatorData/clientDataJSON/signature in credential`);return await this.buildWebauthnSignature({challenge32:n.challenge32,authenticatorData:c,clientDataJSON:l,signatureDer:u,pubKeyX32:i.pubKeyX,pubKeyY32:i.pubKeyY})};if(n.credential)return await a(n.credential);if(typeof navigator>`u`||!navigator.credentials||typeof navigator.credentials.get!=`function`)throw Error(`[WebAuthnP256Engine] WebAuthn not available (must run in a browser context)`);let o=new Uint8Array(n.challenge32),s=new Uint8Array(i.credentialId);this.beforeSigning?.();let c=await navigator.credentials.get({publicKey:{challenge:o,allowCredentials:[{type:`public-key`,id:s}],rpId:n.rpId??i.rpId,userVerification:`preferred`}});if(!c)throw Error(`[WebAuthnP256Engine] user cancelled WebAuthn assertion`);if(!r(new Uint8Array(c.rawId),i.credentialId))throw Error(`[WebAuthnP256Engine] WebAuthn assertion returned unexpected credentialId`);let l=c.response;if(!l||!l.authenticatorData||!l.clientDataJSON||!l.signature)throw Error(`[WebAuthnP256Engine] invalid WebAuthn assertion response`);let u=new Uint8Array(l.authenticatorData),d=new Uint8Array(l.clientDataJSON),f=new Uint8Array(l.signature);return await this.buildWebauthnSignature({challenge32:n.challenge32,authenticatorData:u,clientDataJSON:d,signatureDer:f,pubKeyX32:i.pubKeyX,pubKeyY32:i.pubKeyY})}};export{i as WebAuthnP256Engine};
@@ -2064,6 +2064,17 @@ function exactRecord4(raw, keys, label) {
2064
2064
  return record;
2065
2065
  }
2066
2066
 
2067
+ // ../shared-ts/src/authorization/voiceIdDeviceAssertion.ts
2068
+ function parseVoiceIdDevicePublicKeyB64u(value) {
2069
+ if (typeof value !== "string")
2070
+ throw new Error("VoiceID public key is invalid");
2071
+ const bytes = base64UrlDecode(value);
2072
+ if (bytes.length !== 32 || base64UrlEncode(bytes) !== value) {
2073
+ throw new Error("VoiceID public key must be canonical Ed25519 bytes");
2074
+ }
2075
+ return value;
2076
+ }
2077
+
2067
2078
  // ../shared-ts/src/utils/registrationAuthMethodInput.ts
2068
2079
  function inspectRawObject(value) {
2069
2080
  return value !== null && typeof value === "object" && !Array.isArray(value) ? value : null;
@@ -2081,7 +2092,7 @@ function parseWalletAuthMethodRecordV2(raw) {
2081
2092
  const version = trimString(record.version);
2082
2093
  const kind = trimString(record.kind);
2083
2094
  const status = trimString(record.status);
2084
- if (version !== "wallet_auth_method_v2" || kind !== "passkey" && kind !== "email_otp") {
2095
+ if (version !== "wallet_auth_method_v2" || kind !== "passkey" && kind !== "email_otp" && kind !== "voiceid") {
2085
2096
  return null;
2086
2097
  }
2087
2098
  try {
@@ -2105,6 +2116,17 @@ function parseWalletAuthMethodRecordV2(raw) {
2105
2116
  counter: parseNonNegativeInteger(record.counter)
2106
2117
  });
2107
2118
  }
2119
+ if (kind === "voiceid") {
2120
+ if (!("deviceKeyId" in record) || !("devicePublicKeyB64u" in record))
2121
+ return null;
2122
+ exactWalletAuthMethodV2Fields(record, "voiceid", status);
2123
+ return buildParsedVoiceIdWalletAuthMethodRecordV2({
2124
+ common,
2125
+ lifecycle: parseWalletAuthMethodLifecycle(record),
2126
+ deviceKeyId: parseDigestB64u(record.deviceKeyId),
2127
+ devicePublicKeyB64u: parseVoiceIdDevicePublicKeyB64u(record.devicePublicKeyB64u)
2128
+ });
2129
+ }
2108
2130
  if (!("emailHashHex" in record) || !("registrationAuthorityId" in record))
2109
2131
  return null;
2110
2132
  exactWalletAuthMethodV2Fields(record, "email_otp", status);
@@ -2181,8 +2203,10 @@ function exactWalletAuthMethodV2Fields(raw, kind, status) {
2181
2203
  ];
2182
2204
  if (kind === "passkey") {
2183
2205
  fields.push("rpId", "credentialIdB64u", "credentialPublicKeyB64u", "counter");
2184
- } else {
2206
+ } else if (kind === "email_otp") {
2185
2207
  fields.push("emailHashHex", "registrationAuthorityId");
2208
+ } else {
2209
+ fields.push("deviceKeyId", "devicePublicKeyB64u");
2186
2210
  }
2187
2211
  if (status === "active")
2188
2212
  fields.push("activatedAtMs");
@@ -2298,6 +2322,52 @@ function buildParsedEmailOtpWalletAuthMethodRecordV2(input) {
2298
2322
  };
2299
2323
  }
2300
2324
  }
2325
+ function buildParsedVoiceIdWalletAuthMethodRecordV2(input) {
2326
+ switch (input.lifecycle.status) {
2327
+ case "pending_local_install":
2328
+ return {
2329
+ version: "wallet_auth_method_v2",
2330
+ walletAuthMethodId: input.common.walletAuthMethodId,
2331
+ walletId: input.common.walletId,
2332
+ walletAuthorityId: input.common.walletAuthorityId,
2333
+ kind: "voiceid",
2334
+ status: "pending_local_install",
2335
+ createdAtMs: input.common.createdAtMs,
2336
+ updatedAtMs: input.common.updatedAtMs,
2337
+ deviceKeyId: input.deviceKeyId,
2338
+ devicePublicKeyB64u: input.devicePublicKeyB64u
2339
+ };
2340
+ case "active":
2341
+ return {
2342
+ version: "wallet_auth_method_v2",
2343
+ walletAuthMethodId: input.common.walletAuthMethodId,
2344
+ walletId: input.common.walletId,
2345
+ walletAuthorityId: input.common.walletAuthorityId,
2346
+ kind: "voiceid",
2347
+ status: "active",
2348
+ createdAtMs: input.common.createdAtMs,
2349
+ updatedAtMs: input.common.updatedAtMs,
2350
+ deviceKeyId: input.deviceKeyId,
2351
+ devicePublicKeyB64u: input.devicePublicKeyB64u,
2352
+ activatedAtMs: input.lifecycle.activatedAtMs
2353
+ };
2354
+ case "revoked":
2355
+ return {
2356
+ version: "wallet_auth_method_v2",
2357
+ walletAuthMethodId: input.common.walletAuthMethodId,
2358
+ walletId: input.common.walletId,
2359
+ walletAuthorityId: input.common.walletAuthorityId,
2360
+ kind: "voiceid",
2361
+ status: "revoked",
2362
+ createdAtMs: input.common.createdAtMs,
2363
+ updatedAtMs: input.common.updatedAtMs,
2364
+ deviceKeyId: input.deviceKeyId,
2365
+ devicePublicKeyB64u: input.devicePublicKeyB64u,
2366
+ activatedAtMs: input.lifecycle.activatedAtMs,
2367
+ revokedAtMs: input.lifecycle.revokedAtMs
2368
+ };
2369
+ }
2370
+ }
2301
2371
  function parseWalletAuthMethodIdRequired(raw) {
2302
2372
  const parsed = parseWalletAuthMethodId(raw);
2303
2373
  if (!parsed.ok)
@@ -2768,7 +2838,7 @@ function parseCommittedAuthorityPackagesV1(raw) {
2768
2838
  throw new Error("CommittedAuthorityPackagesV1.authority is not pending");
2769
2839
  }
2770
2840
  const authMethod = parseWalletAuthMethodRecordV2(record.authMethod);
2771
- if (!authMethod || authMethod.status !== "pending_local_install") {
2841
+ if (!authMethod || authMethod.status !== "pending_local_install" || authMethod.kind === "voiceid") {
2772
2842
  throw new Error("CommittedAuthorityPackagesV1.authMethod is not pending");
2773
2843
  }
2774
2844
  if (authMethod.walletId !== authority.value.walletId || authMethod.walletAuthorityId !== authority.value.authorityId) {
@@ -5082,6 +5152,7 @@ function parsePasskeyCustodySecretBinding(raw, label = "passkeyCustodySecretBind
5082
5152
  var WALLET_CUSTODY_ENVELOPE_VERSION_V2 = "wallet_custody_envelope_v2";
5083
5153
  var PASSKEY_PRF_KEK_VERSION_V1 = "passkey_prf_kek_hkdf_sha256_v1";
5084
5154
  var EMAIL_OTP_FACTOR_KEK_VERSION_V1 = "email_otp_factor_kek_hkdf_sha256_v1";
5155
+ var VOICEID_DEVICE_FACTOR_KEK_VERSION_V1 = "voiceid_device_factor_kek_hkdf_sha256_v1";
5085
5156
  var ENVELOPE_OWNERSHIP_FIELDS = ["kind", "walletAuthMethodId"];
5086
5157
  function parseWalletCustodyEnvelopeOwnership(raw, label) {
5087
5158
  if (typeof raw !== "object" || raw === null || Array.isArray(raw)) {
@@ -5122,6 +5193,13 @@ function buildEmailOtpEnvelopeFactor(args) {
5122
5193
  kekVersion: EMAIL_OTP_FACTOR_KEK_VERSION_V1
5123
5194
  };
5124
5195
  }
5196
+ function buildVoiceIdEnvelopeFactor(args) {
5197
+ return {
5198
+ kind: "voiceid",
5199
+ deviceKeyId: args.deviceKeyId,
5200
+ kekVersion: VOICEID_DEVICE_FACTOR_KEK_VERSION_V1
5201
+ };
5202
+ }
5125
5203
  function buildActiveEnvelopeLifecycle(args) {
5126
5204
  return { state: "active", activatedAtMs: args.activatedAtMs };
5127
5205
  }
@@ -5200,7 +5278,8 @@ var EMAIL_OTP_FACTOR_FIELDS = [
5200
5278
  "enrollmentSealKeyVersion",
5201
5279
  "kekVersion"
5202
5280
  ];
5203
- var ALL_FACTOR_FIELDS = Array.from(new Set([...PASSKEY_FACTOR_FIELDS, ...EMAIL_OTP_FACTOR_FIELDS]));
5281
+ var VOICEID_FACTOR_FIELDS = ["kind", "deviceKeyId", "kekVersion"];
5282
+ var ALL_FACTOR_FIELDS = Array.from(new Set([...PASSKEY_FACTOR_FIELDS, ...EMAIL_OTP_FACTOR_FIELDS, ...VOICEID_FACTOR_FIELDS]));
5204
5283
  function requireNonEmptyString(value, label) {
5205
5284
  if (typeof value !== "string" || !value.trim())
5206
5285
  throw new Error(`${label} is required`);
@@ -5236,8 +5315,17 @@ function parseWalletCustodyEnvelopeFactor(raw, label = "factor") {
5236
5315
  enrollmentSealKeyVersion: requireNonEmptyString(record.enrollmentSealKeyVersion, `${label}.enrollmentSealKeyVersion`)
5237
5316
  });
5238
5317
  }
5318
+ case "voiceid": {
5319
+ rejectUnknownFields(record, VOICEID_FACTOR_FIELDS, label, ALL_FACTOR_FIELDS);
5320
+ if (record.kekVersion !== VOICEID_DEVICE_FACTOR_KEK_VERSION_V1) {
5321
+ throw new Error(`${label}.kekVersion must be ${VOICEID_DEVICE_FACTOR_KEK_VERSION_V1}`);
5322
+ }
5323
+ return buildVoiceIdEnvelopeFactor({
5324
+ deviceKeyId: parseDigestField(record.deviceKeyId, `${label}.deviceKeyId`)
5325
+ });
5326
+ }
5239
5327
  default:
5240
- throw new Error(`${label}.kind must be passkey or email_otp`);
5328
+ throw new Error(`${label}.kind must be passkey, email_otp, or voiceid`);
5241
5329
  }
5242
5330
  }
5243
5331
  var ENVELOPE_RECORD_FIELDS = [
@@ -1273,28 +1273,6 @@ function parseLinkDeviceSessionId(raw) {
1273
1273
  return parseDomainId(raw, "linkDeviceSessionId");
1274
1274
  }
1275
1275
 
1276
- // ../shared-ts/src/utils/walletAuthAuthority.ts
1277
- function parseWalletAuthAuthorityRef(raw) {
1278
- if (!raw || typeof raw !== "object" || Array.isArray(raw))
1279
- return null;
1280
- const record = raw;
1281
- const fields = Object.keys(record);
1282
- if (fields.length !== 4 || !fields.every((field) => ["kind", "walletId", "authorityDigest", "walletAuthMethodId"].includes(field)) || record.kind !== "wallet_auth_authority_ref") {
1283
- return null;
1284
- }
1285
- const walletId = parseWalletId(record.walletId);
1286
- const authorityDigest = parseWalletAuthorityBindingDigest(record.authorityDigest);
1287
- const walletAuthMethodId = parseWalletAuthMethodId(record.walletAuthMethodId);
1288
- if (!walletId.ok || !authorityDigest.ok || !walletAuthMethodId.ok)
1289
- return null;
1290
- return {
1291
- kind: "wallet_auth_authority_ref",
1292
- walletId: walletId.value,
1293
- authorityDigest: authorityDigest.value,
1294
- walletAuthMethodId: walletAuthMethodId.value
1295
- };
1296
- }
1297
-
1298
1276
  // ../shared-ts/src/utils/normalize.ts
1299
1277
  function normalizeOptionalString(value) {
1300
1278
  return typeof value === "string" ? value : "";
@@ -1329,6 +1307,69 @@ function requireArray(value, label) {
1329
1307
  return value;
1330
1308
  }
1331
1309
 
1310
+ // ../shared-ts/src/utils/exactRecord.ts
1311
+ var SECRET_BEARING_FIELD_SUBSTRINGS = [
1312
+ "prf",
1313
+ "kek",
1314
+ "seed",
1315
+ "scalar",
1316
+ "secretkey",
1317
+ "privatekey",
1318
+ "plaintext",
1319
+ "recoverycode",
1320
+ "clientroot",
1321
+ "holdershare"
1322
+ ];
1323
+ function rejectUnknownFields(record, allowed, label, knownOnOtherBranches = []) {
1324
+ const allowedSet = new Set(allowed);
1325
+ const knownSet = new Set(knownOnOtherBranches);
1326
+ for (const field of Object.keys(record)) {
1327
+ if (allowedSet.has(field))
1328
+ continue;
1329
+ if (knownSet.has(field)) {
1330
+ throw new Error(`${label}.${field} is not part of ${label}`);
1331
+ }
1332
+ const normalized = field.toLowerCase().replace(/_/g, "");
1333
+ const namesAPublicKey = normalized.includes("publickey");
1334
+ if (!namesAPublicKey && SECRET_BEARING_FIELD_SUBSTRINGS.some((substring) => normalized.includes(substring))) {
1335
+ throw new Error(`${label}.${field} must never carry plaintext custody material`);
1336
+ }
1337
+ throw new Error(`${label}.${field} is not part of ${label}`);
1338
+ }
1339
+ }
1340
+ function exactRecord(raw, fields, label) {
1341
+ const record = requireRecord(raw, label);
1342
+ rejectUnknownFields(record, fields, label);
1343
+ for (const field of fields) {
1344
+ if (!Object.prototype.hasOwnProperty.call(record, field) || record[field] === undefined) {
1345
+ throw new Error(`${label}.${field} is required`);
1346
+ }
1347
+ }
1348
+ return record;
1349
+ }
1350
+
1351
+ // ../shared-ts/src/utils/walletAuthAuthority.ts
1352
+ function parseWalletAuthAuthorityRef(raw) {
1353
+ if (!raw || typeof raw !== "object" || Array.isArray(raw))
1354
+ return null;
1355
+ const record = raw;
1356
+ const fields = Object.keys(record);
1357
+ if (fields.length !== 4 || !fields.every((field) => ["kind", "walletId", "authorityDigest", "walletAuthMethodId"].includes(field)) || record.kind !== "wallet_auth_authority_ref") {
1358
+ return null;
1359
+ }
1360
+ const walletId = parseWalletId(record.walletId);
1361
+ const authorityDigest = parseWalletAuthorityBindingDigest(record.authorityDigest);
1362
+ const walletAuthMethodId = parseWalletAuthMethodId(record.walletAuthMethodId);
1363
+ if (!walletId.ok || !authorityDigest.ok || !walletAuthMethodId.ok)
1364
+ return null;
1365
+ return {
1366
+ kind: "wallet_auth_authority_ref",
1367
+ walletId: walletId.value,
1368
+ authorityDigest: authorityDigest.value,
1369
+ walletAuthMethodId: walletAuthMethodId.value
1370
+ };
1371
+ }
1372
+
1332
1373
  // ../shared-ts/src/utils/routerAbNormalSigningIdentity.ts
1333
1374
  function requireExactFields(record, expectedFields, label) {
1334
1375
  const actualFields = Object.keys(record).sort();
@@ -1850,47 +1891,6 @@ var SERVER_ALLOCATED_WALLET_NOUNS = [
1850
1891
  var SERVER_ALLOCATED_WALLET_ADJECTIVE_SET = new Set(SERVER_ALLOCATED_WALLET_ADJECTIVES);
1851
1892
  var SERVER_ALLOCATED_WALLET_NOUN_SET = new Set(SERVER_ALLOCATED_WALLET_NOUNS);
1852
1893
 
1853
- // ../shared-ts/src/utils/exactRecord.ts
1854
- var SECRET_BEARING_FIELD_SUBSTRINGS = [
1855
- "prf",
1856
- "kek",
1857
- "seed",
1858
- "scalar",
1859
- "secretkey",
1860
- "privatekey",
1861
- "plaintext",
1862
- "recoverycode",
1863
- "clientroot",
1864
- "holdershare"
1865
- ];
1866
- function rejectUnknownFields(record, allowed, label, knownOnOtherBranches = []) {
1867
- const allowedSet = new Set(allowed);
1868
- const knownSet = new Set(knownOnOtherBranches);
1869
- for (const field of Object.keys(record)) {
1870
- if (allowedSet.has(field))
1871
- continue;
1872
- if (knownSet.has(field)) {
1873
- throw new Error(`${label}.${field} is not part of ${label}`);
1874
- }
1875
- const normalized = field.toLowerCase().replace(/_/g, "");
1876
- const namesAPublicKey = normalized.includes("publickey");
1877
- if (!namesAPublicKey && SECRET_BEARING_FIELD_SUBSTRINGS.some((substring) => normalized.includes(substring))) {
1878
- throw new Error(`${label}.${field} must never carry plaintext custody material`);
1879
- }
1880
- throw new Error(`${label}.${field} is not part of ${label}`);
1881
- }
1882
- }
1883
- function exactRecord(raw, fields, label) {
1884
- const record = requireRecord(raw, label);
1885
- rejectUnknownFields(record, fields, label);
1886
- for (const field of fields) {
1887
- if (!Object.prototype.hasOwnProperty.call(record, field) || record[field] === undefined) {
1888
- throw new Error(`${label}.${field} is required`);
1889
- }
1890
- }
1891
- return record;
1892
- }
1893
-
1894
1894
  // ../shared-ts/src/passkey-custody/custodySecretBinding.ts
1895
1895
  var LANE_SCOPE_FIELDS = ["kind", "walletKeyId", "laneId", "laneShareEpoch"];
1896
1896
  var ALLOWED_FIELDS_BY_KIND = {
@@ -1928,7 +1928,8 @@ var EMAIL_OTP_FACTOR_FIELDS = [
1928
1928
  "enrollmentSealKeyVersion",
1929
1929
  "kekVersion"
1930
1930
  ];
1931
- var ALL_FACTOR_FIELDS = Array.from(new Set([...PASSKEY_FACTOR_FIELDS, ...EMAIL_OTP_FACTOR_FIELDS]));
1931
+ var VOICEID_FACTOR_FIELDS = ["kind", "deviceKeyId", "kekVersion"];
1932
+ var ALL_FACTOR_FIELDS = Array.from(new Set([...PASSKEY_FACTOR_FIELDS, ...EMAIL_OTP_FACTOR_FIELDS, ...VOICEID_FACTOR_FIELDS]));
1932
1933
  // ../shared-ts/src/passkey-custody/ceremonyCommitPayload.ts
1933
1934
  function parseWalletCustodyGeneratedString(value, label) {
1934
1935
  if (typeof value !== "string") {
@@ -5262,7 +5263,8 @@ var EMAIL_OTP_CHANNEL = "email_otp";
5262
5263
  // ../shared-ts/src/utils/signerDomain.ts
5263
5264
  var WALLET_AUTH_METHODS = {
5264
5265
  passkey: "passkey",
5265
- emailOtp: EMAIL_OTP_CHANNEL
5266
+ emailOtp: EMAIL_OTP_CHANNEL,
5267
+ voiceId: "voiceid"
5266
5268
  };
5267
5269
  var WALLET_AUTH_METHOD_VALUES = Object.values(WALLET_AUTH_METHODS);
5268
5270
 
@@ -919,6 +919,7 @@ function parsePasskeyCustodySecretBinding(raw, label = "passkeyCustodySecretBind
919
919
  var WALLET_CUSTODY_ENVELOPE_VERSION_V2 = "wallet_custody_envelope_v2";
920
920
  var PASSKEY_PRF_KEK_VERSION_V1 = "passkey_prf_kek_hkdf_sha256_v1";
921
921
  var EMAIL_OTP_FACTOR_KEK_VERSION_V1 = "email_otp_factor_kek_hkdf_sha256_v1";
922
+ var VOICEID_DEVICE_FACTOR_KEK_VERSION_V1 = "voiceid_device_factor_kek_hkdf_sha256_v1";
922
923
  var ENVELOPE_OWNERSHIP_FIELDS = ["kind", "walletAuthMethodId"];
923
924
  function parseWalletCustodyEnvelopeOwnership(raw, label) {
924
925
  if (typeof raw !== "object" || raw === null || Array.isArray(raw)) {
@@ -979,6 +980,13 @@ function buildEmailOtpEnvelopeFactor(args) {
979
980
  kekVersion: EMAIL_OTP_FACTOR_KEK_VERSION_V1
980
981
  };
981
982
  }
983
+ function buildVoiceIdEnvelopeFactor(args) {
984
+ return {
985
+ kind: "voiceid",
986
+ deviceKeyId: args.deviceKeyId,
987
+ kekVersion: VOICEID_DEVICE_FACTOR_KEK_VERSION_V1
988
+ };
989
+ }
982
990
  function buildActiveEnvelopeLifecycle(args) {
983
991
  return { state: "active", activatedAtMs: args.activatedAtMs };
984
992
  }
@@ -1057,7 +1065,8 @@ var EMAIL_OTP_FACTOR_FIELDS = [
1057
1065
  "enrollmentSealKeyVersion",
1058
1066
  "kekVersion"
1059
1067
  ];
1060
- var ALL_FACTOR_FIELDS = Array.from(new Set([...PASSKEY_FACTOR_FIELDS, ...EMAIL_OTP_FACTOR_FIELDS]));
1068
+ var VOICEID_FACTOR_FIELDS = ["kind", "deviceKeyId", "kekVersion"];
1069
+ var ALL_FACTOR_FIELDS = Array.from(new Set([...PASSKEY_FACTOR_FIELDS, ...EMAIL_OTP_FACTOR_FIELDS, ...VOICEID_FACTOR_FIELDS]));
1061
1070
  function requireNonEmptyString(value, label) {
1062
1071
  if (typeof value !== "string" || !value.trim())
1063
1072
  throw new Error(`${label} is required`);
@@ -1093,8 +1102,17 @@ function parseWalletCustodyEnvelopeFactor(raw, label = "factor") {
1093
1102
  enrollmentSealKeyVersion: requireNonEmptyString(record.enrollmentSealKeyVersion, `${label}.enrollmentSealKeyVersion`)
1094
1103
  });
1095
1104
  }
1105
+ case "voiceid": {
1106
+ rejectUnknownFields(record, VOICEID_FACTOR_FIELDS, label, ALL_FACTOR_FIELDS);
1107
+ if (record.kekVersion !== VOICEID_DEVICE_FACTOR_KEK_VERSION_V1) {
1108
+ throw new Error(`${label}.kekVersion must be ${VOICEID_DEVICE_FACTOR_KEK_VERSION_V1}`);
1109
+ }
1110
+ return buildVoiceIdEnvelopeFactor({
1111
+ deviceKeyId: parseDigestField(record.deviceKeyId, `${label}.deviceKeyId`)
1112
+ });
1113
+ }
1096
1114
  default:
1097
- throw new Error(`${label}.kind must be passkey or email_otp`);
1115
+ throw new Error(`${label}.kind must be passkey, email_otp, or voiceid`);
1098
1116
  }
1099
1117
  }
1100
1118
  var ENVELOPE_RECORD_FIELDS = [
@@ -5220,6 +5238,17 @@ function requireRouterAbEcdsaDerivationNormalSigningStateV1(value) {
5220
5238
  return parsed;
5221
5239
  }
5222
5240
 
5241
+ // ../shared-ts/src/authorization/voiceIdDeviceAssertion.ts
5242
+ function parseVoiceIdDevicePublicKeyB64u(value) {
5243
+ if (typeof value !== "string")
5244
+ throw new Error("VoiceID public key is invalid");
5245
+ const bytes = base64UrlDecode(value);
5246
+ if (bytes.length !== 32 || base64UrlEncode(bytes) !== value) {
5247
+ throw new Error("VoiceID public key must be canonical Ed25519 bytes");
5248
+ }
5249
+ return value;
5250
+ }
5251
+
5223
5252
  // ../shared-ts/src/utils/registrationAuthMethodInput.ts
5224
5253
  function inspectRawObject(value) {
5225
5254
  return value !== null && typeof value === "object" && !Array.isArray(value) ? value : null;
@@ -5237,7 +5266,7 @@ function parseWalletAuthMethodRecordV2(raw) {
5237
5266
  const version = trimString(record.version);
5238
5267
  const kind = trimString(record.kind);
5239
5268
  const status = trimString(record.status);
5240
- if (version !== "wallet_auth_method_v2" || kind !== "passkey" && kind !== "email_otp") {
5269
+ if (version !== "wallet_auth_method_v2" || kind !== "passkey" && kind !== "email_otp" && kind !== "voiceid") {
5241
5270
  return null;
5242
5271
  }
5243
5272
  try {
@@ -5261,6 +5290,17 @@ function parseWalletAuthMethodRecordV2(raw) {
5261
5290
  counter: parseNonNegativeInteger(record.counter)
5262
5291
  });
5263
5292
  }
5293
+ if (kind === "voiceid") {
5294
+ if (!("deviceKeyId" in record) || !("devicePublicKeyB64u" in record))
5295
+ return null;
5296
+ exactWalletAuthMethodV2Fields(record, "voiceid", status);
5297
+ return buildParsedVoiceIdWalletAuthMethodRecordV2({
5298
+ common,
5299
+ lifecycle: parseWalletAuthMethodLifecycle(record),
5300
+ deviceKeyId: parseDigestB64u(record.deviceKeyId),
5301
+ devicePublicKeyB64u: parseVoiceIdDevicePublicKeyB64u(record.devicePublicKeyB64u)
5302
+ });
5303
+ }
5264
5304
  if (!("emailHashHex" in record) || !("registrationAuthorityId" in record))
5265
5305
  return null;
5266
5306
  exactWalletAuthMethodV2Fields(record, "email_otp", status);
@@ -5337,8 +5377,10 @@ function exactWalletAuthMethodV2Fields(raw, kind, status) {
5337
5377
  ];
5338
5378
  if (kind === "passkey") {
5339
5379
  fields.push("rpId", "credentialIdB64u", "credentialPublicKeyB64u", "counter");
5340
- } else {
5380
+ } else if (kind === "email_otp") {
5341
5381
  fields.push("emailHashHex", "registrationAuthorityId");
5382
+ } else {
5383
+ fields.push("deviceKeyId", "devicePublicKeyB64u");
5342
5384
  }
5343
5385
  if (status === "active")
5344
5386
  fields.push("activatedAtMs");
@@ -5454,6 +5496,52 @@ function buildParsedEmailOtpWalletAuthMethodRecordV2(input) {
5454
5496
  };
5455
5497
  }
5456
5498
  }
5499
+ function buildParsedVoiceIdWalletAuthMethodRecordV2(input) {
5500
+ switch (input.lifecycle.status) {
5501
+ case "pending_local_install":
5502
+ return {
5503
+ version: "wallet_auth_method_v2",
5504
+ walletAuthMethodId: input.common.walletAuthMethodId,
5505
+ walletId: input.common.walletId,
5506
+ walletAuthorityId: input.common.walletAuthorityId,
5507
+ kind: "voiceid",
5508
+ status: "pending_local_install",
5509
+ createdAtMs: input.common.createdAtMs,
5510
+ updatedAtMs: input.common.updatedAtMs,
5511
+ deviceKeyId: input.deviceKeyId,
5512
+ devicePublicKeyB64u: input.devicePublicKeyB64u
5513
+ };
5514
+ case "active":
5515
+ return {
5516
+ version: "wallet_auth_method_v2",
5517
+ walletAuthMethodId: input.common.walletAuthMethodId,
5518
+ walletId: input.common.walletId,
5519
+ walletAuthorityId: input.common.walletAuthorityId,
5520
+ kind: "voiceid",
5521
+ status: "active",
5522
+ createdAtMs: input.common.createdAtMs,
5523
+ updatedAtMs: input.common.updatedAtMs,
5524
+ deviceKeyId: input.deviceKeyId,
5525
+ devicePublicKeyB64u: input.devicePublicKeyB64u,
5526
+ activatedAtMs: input.lifecycle.activatedAtMs
5527
+ };
5528
+ case "revoked":
5529
+ return {
5530
+ version: "wallet_auth_method_v2",
5531
+ walletAuthMethodId: input.common.walletAuthMethodId,
5532
+ walletId: input.common.walletId,
5533
+ walletAuthorityId: input.common.walletAuthorityId,
5534
+ kind: "voiceid",
5535
+ status: "revoked",
5536
+ createdAtMs: input.common.createdAtMs,
5537
+ updatedAtMs: input.common.updatedAtMs,
5538
+ deviceKeyId: input.deviceKeyId,
5539
+ devicePublicKeyB64u: input.devicePublicKeyB64u,
5540
+ activatedAtMs: input.lifecycle.activatedAtMs,
5541
+ revokedAtMs: input.lifecycle.revokedAtMs
5542
+ };
5543
+ }
5544
+ }
5457
5545
  function parseWalletAuthMethodIdRequired(raw) {
5458
5546
  const parsed = parseWalletAuthMethodId(raw);
5459
5547
  if (!parsed.ok)
@@ -6317,6 +6405,7 @@ function normalizeThresholdEd25519ParticipantIds(input) {
6317
6405
 
6318
6406
  // ../shared-ts/src/threshold/sessionPolicy.ts
6319
6407
  var DEFAULT_WALLET_SESSION_TTL_MS = 24 * 60 * 60000;
6408
+ var LINKED_DEVICE_WALLET_SESSION_TTL_MS = 15 * 60 * 1000;
6320
6409
  var MAX_WALLET_SESSION_TTL_MS = 30 * 24 * 60 * 60000;
6321
6410
 
6322
6411
  // src/core/signingEngine/threshold/sessionPolicy.ts
@@ -3373,6 +3373,7 @@ function yaoRoutingHeaders(routing) {
3373
3373
 
3374
3374
  // ../shared-ts/src/threshold/sessionPolicy.ts
3375
3375
  var DEFAULT_WALLET_SESSION_TTL_MS = 24 * 60 * 60000;
3376
+ var LINKED_DEVICE_WALLET_SESSION_TTL_MS = 15 * 60 * 1000;
3376
3377
  var MAX_WALLET_SESSION_TTL_MS = 30 * 24 * 60 * 60000;
3377
3378
 
3378
3379
  // ../shared-ts/src/threshold/signingRootScope.ts
@@ -4034,6 +4035,7 @@ function parsePasskeyCustodySecretBinding(raw, label = "passkeyCustodySecretBind
4034
4035
  var WALLET_CUSTODY_ENVELOPE_VERSION_V2 = "wallet_custody_envelope_v2";
4035
4036
  var PASSKEY_PRF_KEK_VERSION_V1 = "passkey_prf_kek_hkdf_sha256_v1";
4036
4037
  var EMAIL_OTP_FACTOR_KEK_VERSION_V1 = "email_otp_factor_kek_hkdf_sha256_v1";
4038
+ var VOICEID_DEVICE_FACTOR_KEK_VERSION_V1 = "voiceid_device_factor_kek_hkdf_sha256_v1";
4037
4039
  var ENVELOPE_OWNERSHIP_FIELDS = ["kind", "walletAuthMethodId"];
4038
4040
  function parseWalletCustodyEnvelopeOwnership(raw, label) {
4039
4041
  if (typeof raw !== "object" || raw === null || Array.isArray(raw)) {
@@ -4094,6 +4096,13 @@ function buildEmailOtpEnvelopeFactor(args) {
4094
4096
  kekVersion: EMAIL_OTP_FACTOR_KEK_VERSION_V1
4095
4097
  };
4096
4098
  }
4099
+ function buildVoiceIdEnvelopeFactor(args) {
4100
+ return {
4101
+ kind: "voiceid",
4102
+ deviceKeyId: args.deviceKeyId,
4103
+ kekVersion: VOICEID_DEVICE_FACTOR_KEK_VERSION_V1
4104
+ };
4105
+ }
4097
4106
  function buildActiveEnvelopeLifecycle(args) {
4098
4107
  return { state: "active", activatedAtMs: args.activatedAtMs };
4099
4108
  }
@@ -4172,7 +4181,8 @@ var EMAIL_OTP_FACTOR_FIELDS = [
4172
4181
  "enrollmentSealKeyVersion",
4173
4182
  "kekVersion"
4174
4183
  ];
4175
- var ALL_FACTOR_FIELDS = Array.from(new Set([...PASSKEY_FACTOR_FIELDS, ...EMAIL_OTP_FACTOR_FIELDS]));
4184
+ var VOICEID_FACTOR_FIELDS = ["kind", "deviceKeyId", "kekVersion"];
4185
+ var ALL_FACTOR_FIELDS = Array.from(new Set([...PASSKEY_FACTOR_FIELDS, ...EMAIL_OTP_FACTOR_FIELDS, ...VOICEID_FACTOR_FIELDS]));
4176
4186
  function requireNonEmptyString(value, label) {
4177
4187
  if (typeof value !== "string" || !value.trim())
4178
4188
  throw new Error(`${label} is required`);
@@ -4208,8 +4218,17 @@ function parseWalletCustodyEnvelopeFactor(raw, label = "factor") {
4208
4218
  enrollmentSealKeyVersion: requireNonEmptyString(record.enrollmentSealKeyVersion, `${label}.enrollmentSealKeyVersion`)
4209
4219
  });
4210
4220
  }
4221
+ case "voiceid": {
4222
+ rejectUnknownFields(record, VOICEID_FACTOR_FIELDS, label, ALL_FACTOR_FIELDS);
4223
+ if (record.kekVersion !== VOICEID_DEVICE_FACTOR_KEK_VERSION_V1) {
4224
+ throw new Error(`${label}.kekVersion must be ${VOICEID_DEVICE_FACTOR_KEK_VERSION_V1}`);
4225
+ }
4226
+ return buildVoiceIdEnvelopeFactor({
4227
+ deviceKeyId: parseDigestField(record.deviceKeyId, `${label}.deviceKeyId`)
4228
+ });
4229
+ }
4211
4230
  default:
4212
- throw new Error(`${label}.kind must be passkey or email_otp`);
4231
+ throw new Error(`${label}.kind must be passkey, email_otp, or voiceid`);
4213
4232
  }
4214
4233
  }
4215
4234
  var ENVELOPE_RECORD_FIELDS = [