@seams/wallet-server 0.7.1 → 0.8.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 (643) hide show
  1. package/THIRD_PARTY_NOTICES.md +1 -113
  2. package/artifact-manifest.json +78 -33
  3. package/cloudflare-router-ab/build/deriver-a/build-stamp.json +1 -1
  4. package/cloudflare-router-ab/build/deriver-a/index.js +2 -2
  5. package/cloudflare-router-ab/build/deriver-a/index_bg.wasm +0 -0
  6. package/cloudflare-router-ab/build/deriver-b/build-stamp.json +1 -1
  7. package/cloudflare-router-ab/build/deriver-b/index.js +2 -2
  8. package/cloudflare-router-ab/build/deriver-b/index_bg.wasm +0 -0
  9. package/cloudflare-router-ab/build/local-tools/darwin-arm64/router_ab_local_init +0 -0
  10. package/cloudflare-router-ab/build/local-tools/darwin-x64/router_ab_local_init +0 -0
  11. package/cloudflare-router-ab/build/local-tools/linux-x64/router_ab_local_init +0 -0
  12. package/cloudflare-router-ab/build/router/build-stamp.json +1 -1
  13. package/cloudflare-router-ab/build/router/index.js +2 -2
  14. package/cloudflare-router-ab/build/router/index_bg.wasm +0 -0
  15. package/cloudflare-router-ab/build/signing-worker/build-stamp.json +1 -1
  16. package/cloudflare-router-ab/build/signing-worker/index.js +2 -2
  17. package/cloudflare-router-ab/build/signing-worker/index_bg.wasm +0 -0
  18. package/cloudflare-router-ab/build/tenant-root-control-plane/build-stamp.json +1 -1
  19. package/cloudflare-router-ab/build/tenant-root-control-plane/index.js +2 -2
  20. package/cloudflare-router-ab/build/tenant-root-control-plane/index_bg.wasm +0 -0
  21. package/cloudflare-router-ab/scripts/prepare-local-runtime-config.mjs +0 -2
  22. package/cloudflare-router-ab/scripts/start-local-role-workers.mjs +77 -20
  23. package/dist/esm/authorization/lifecycleRouting.js +62 -0
  24. package/dist/esm/authorization/service.js +43 -12
  25. package/dist/esm/authorization/vaultProxyUse.js +2 -6
  26. package/dist/esm/cloud-host.js +23 -25
  27. package/dist/esm/core/EmailOtpRecords.js +1 -217
  28. package/dist/esm/core/EmailOtpStores.js +0 -859
  29. package/dist/esm/core/IdentityStore.js +2 -426
  30. package/dist/esm/core/SessionService.js +7 -30
  31. package/dist/esm/core/ThresholdService/config.js +1 -9
  32. package/dist/esm/core/ThresholdService/index.js +0 -4
  33. package/dist/esm/core/ThresholdService/kv.js +1 -66
  34. package/dist/esm/core/ThresholdService/routerAb/ecdsaDerivationPoolFillHandlers.js +1 -13
  35. package/dist/esm/core/ThresholdService/routerAbNormalSigningPolicy.js +4 -21
  36. package/dist/esm/core/ThresholdService/stores/WalletSessionStore.js +0 -617
  37. package/dist/esm/core/ThresholdService/validation.js +2 -346
  38. package/dist/esm/core/WalletAuthMethodStore.js +2 -123
  39. package/dist/esm/core/WalletStore.js +6 -214
  40. package/dist/esm/core/WebAuthnAuthenticatorStore.js +0 -202
  41. package/dist/esm/core/WebAuthnCredentialBindingStore.js +2 -182
  42. package/dist/esm/core/WebAuthnLoginChallengeStore.js +0 -52
  43. package/dist/esm/core/WebAuthnSyncChallengeStore.js +0 -54
  44. package/dist/esm/core/authService/emailOtpConfig.js +1 -195
  45. package/dist/esm/core/authService/emailOtpEnrollment.js +0 -141
  46. package/dist/esm/core/authService/emailOtpSeal.js +0 -78
  47. package/dist/esm/core/authService/nearTransactions.js +3 -98
  48. package/dist/esm/core/authService/rateLimits.js +0 -87
  49. package/dist/esm/core/authService/thresholdEcdsaKeyInventory.js +2 -1
  50. package/dist/esm/core/authService/webauthn.js +14 -464
  51. package/dist/esm/core/authService/webauthnOidcHelpers.js +1 -24
  52. package/dist/esm/core/authService/webauthnVerificationOutcomes.js +5 -24
  53. package/dist/esm/core/authService/webauthnWalletBinding.js +0 -37
  54. package/dist/esm/core/config.js +1 -95
  55. package/dist/esm/core/d1EcdsaSignerRead.js +76 -0
  56. package/dist/esm/core/d1IdentityStore.js +17 -77
  57. package/dist/esm/core/d1TenantStore.js +1 -24
  58. package/dist/esm/core/d1WalletAuthMethodStore.js +2 -5
  59. package/dist/esm/core/d1WalletStore.js +15 -25
  60. package/dist/esm/core/deviceLinking/linkedDeviceBootstrap.js +13 -0
  61. package/dist/esm/core/deviceLinking/linkedDeviceEmailOtpGrant.js +1 -5
  62. package/dist/esm/core/deviceLinking/linkedDeviceSession.js +20 -14
  63. package/dist/esm/core/deviceLinking/linkedDeviceSessionApproval.js +1 -3
  64. package/dist/esm/core/deviceLinking/linkedDeviceSessionRecord.js +2 -8
  65. package/dist/esm/core/deviceLinking/requestProof.js +22 -10
  66. package/dist/esm/core/ecdsaMaterialReadSnapshot.js +85 -0
  67. package/dist/esm/core/emailOtpD1Statements.js +107 -94
  68. package/dist/esm/core/keyMaterialBrands.js +2 -12
  69. package/dist/esm/core/nearKeys.js +0 -1
  70. package/dist/esm/core/nearRelayerAccountProvisioning.js +8 -14
  71. package/dist/esm/core/passkeyCredentialClaims.js +8 -0
  72. package/dist/esm/core/routerAbSigning/RouterAbEcdsaPresignRuntime.js +2 -6
  73. package/dist/esm/core/routerAbSigning/RouterAbNormalSigningRuntime.js +2 -30
  74. package/dist/esm/core/signingLanes/WalletExecutionLaneProjection.js +3 -6
  75. package/dist/esm/core/signingMaterial/ordinaryInactiveSignerMaterialReservation.js +2 -5
  76. package/dist/esm/core/thresholdEcdsaChainTarget.js +2 -7
  77. package/dist/esm/hosted-wallet-gateway.js +68 -45
  78. package/dist/esm/index.js +6 -19
  79. package/dist/esm/localHostedWalletGatewayHandler.js +25 -0
  80. package/dist/esm/localIntendedMaterialAdmissionFault.js +176 -0
  81. package/dist/esm/localIntendedPresignCancellation.js +44 -0
  82. package/dist/esm/localRegistrationSetupAuthority.js +89 -0
  83. package/dist/esm/router/auth/authRequestValidation.js +8 -16
  84. package/dist/esm/router/auth/commonRouterUtils.js +24 -10
  85. package/dist/esm/router/auth/walletSessionFailure.js +2 -5
  86. package/dist/esm/router/auth/webAuthnCredentialCodecs.js +4 -16
  87. package/dist/esm/router/cloudflare/d1/auth/d1AuthorizationAssembly.js +87 -0
  88. package/dist/esm/router/cloudflare/d1/auth/d1AuthorizedOperationRouteService.js +1 -0
  89. package/dist/esm/router/cloudflare/d1/auth/d1RouterApiAuthBoundary.js +2 -6
  90. package/dist/esm/router/cloudflare/d1/auth/d1RouterApiAuthConfig.js +12 -2
  91. package/dist/esm/router/cloudflare/d1/auth/d1RouterApiAuthService.js +37 -308
  92. package/dist/esm/router/cloudflare/d1/auth/walletSessionCredentialReaders.js +76 -0
  93. package/dist/esm/router/cloudflare/d1/authorization/authorizedOperationStatements.js +52 -43
  94. package/dist/esm/router/cloudflare/d1/authorization/d1AuthorizationStore.js +217 -50
  95. package/dist/esm/router/cloudflare/d1/authorization/d1VaultProxyStore.js +8 -12
  96. package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceAuthorityInstallService.js +62 -21
  97. package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceEd25519ExportRootStore.js +6 -1
  98. package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceEmailOtpGrantStore.js +12 -2
  99. package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceEmailOtpTargetFactor.js +4 -4
  100. package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceOwnerAuthorizationProvider.js +1 -1
  101. package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceRequestProofNonceStore.js +3 -9
  102. package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceRouteService.js +2 -1
  103. package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceSessionStore.js +89 -7
  104. package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceTargetCredentialProvider.js +24 -15
  105. package/dist/esm/router/cloudflare/d1/deviceLinking/index.js +3 -3
  106. package/dist/esm/router/cloudflare/d1/ed25519Yao/d1Ed25519YaoCapabilityPersistence.js +9 -6
  107. package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpChallengeIssuer.js +12 -56
  108. package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpChallengeService.js +17 -81
  109. package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpChallengeStore.js +1 -1
  110. package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpChallengeVerifier.js +0 -1
  111. package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpDeliveryRuntime.js +6 -25
  112. package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpEnrollmentStore.js +1 -1
  113. package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpGrantStore.js +1 -7
  114. package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpRateLimitStore.js +19 -13
  115. package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpRecords.js +12 -48
  116. package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpRecoveryService.js +24 -86
  117. package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpRegistrationEnrollmentFinalizer.js +9 -32
  118. package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpServerSealRuntime.js +5 -21
  119. package/dist/esm/router/cloudflare/d1/emailOtp/d1GoogleEmailOtpRegistrationAttemptStore.js +44 -12
  120. package/dist/esm/router/cloudflare/d1/emailOtp/d1GoogleEmailOtpRegistrationRecords.js +1 -49
  121. package/dist/esm/router/cloudflare/d1/emailOtp/d1GoogleEmailOtpSessionResolver.js +37 -136
  122. package/dist/esm/router/cloudflare/d1/emailOtp/d1GoogleRegistrationCompletion.js +85 -0
  123. package/dist/esm/router/cloudflare/d1/identity/d1IdentityRecords.js +0 -1
  124. package/dist/esm/router/cloudflare/d1/identity/d1IdentityService.js +9 -88
  125. package/dist/esm/router/cloudflare/d1/near/d1SponsoredNearAccount.js +242 -0
  126. package/dist/esm/router/cloudflare/d1/oidc/d1OidcBoundary.js +18 -92
  127. package/dist/esm/router/cloudflare/d1/oidc/d1OidcVerificationService.js +4 -55
  128. package/dist/esm/router/cloudflare/d1/oidc/googleOidcToken.js +41 -0
  129. package/dist/esm/router/cloudflare/d1/passkeyCustody/d1PasskeyCustodyRouteService.js +9 -15
  130. package/dist/esm/router/cloudflare/d1/passkeyCustody/d1WalletCustodyCommitStore.js +36 -7
  131. package/dist/esm/router/cloudflare/d1/passkeyCustody/d1WalletRecoveryGoogleEmailOtpRecords.js +9 -13
  132. package/dist/esm/router/cloudflare/d1/passkeyCustody/d1WalletRecoveryGoogleEmailOtpService.js +11 -50
  133. package/dist/esm/router/cloudflare/d1/registration/d1EvmFamilyEcdsaRegistrationBranch.js +5 -20
  134. package/dist/esm/router/cloudflare/d1/registration/d1RegistrationCeremonyRecordStore.js +13 -10
  135. package/dist/esm/router/cloudflare/d1/registration/d1RegistrationCeremonyRecords.js +9 -14
  136. package/dist/esm/router/cloudflare/d1/registration/d1RegistrationCeremonyStore.js +25 -13
  137. package/dist/esm/router/cloudflare/d1/registration/d1RegistrationIntentService.js +7 -31
  138. package/dist/esm/router/cloudflare/d1/registration/d1RegistrationSetupSupport.js +74 -0
  139. package/dist/esm/router/cloudflare/d1/registration/d1WalletRegistrationCommitStore.js +7 -1
  140. package/dist/esm/router/cloudflare/d1/registration/d1WalletRegistrationService.js +101 -260
  141. package/dist/esm/router/cloudflare/d1/registration/d1WalletRegistrationSetup.js +12 -56
  142. package/dist/esm/router/cloudflare/d1/registration/d1WalletRegistrationSetupExecution.js +155 -0
  143. package/dist/esm/router/cloudflare/d1/registration/walletRegistrationEstablishedSessionIssuer.js +1 -3
  144. package/dist/esm/router/cloudflare/d1/registration/walletRegistrationSessionCommitReceipt.js +1 -4
  145. package/dist/esm/router/cloudflare/d1/signingAdmission/d1RouterAbNormalSigningAdmissionStore.js +131 -31
  146. package/dist/esm/router/cloudflare/d1/wallet/d1WalletAddSignerFinalizeRecord.js +68 -0
  147. package/dist/esm/router/cloudflare/d1/wallet/d1WalletAddSignerService.js +7 -54
  148. package/dist/esm/router/cloudflare/d1/wallet/d1WalletAuthMethodService.js +9 -8
  149. package/dist/esm/router/cloudflare/d1/wallet/d1WalletAuthorityStore.js +2 -142
  150. package/dist/esm/router/cloudflare/d1/webauthn/d1WebAuthnAuthService.js +55 -171
  151. package/dist/esm/router/cloudflare/d1/webauthn/d1WebAuthnRecords.js +10 -79
  152. package/dist/esm/router/cloudflare/d1/webauthn/d1WebAuthnStore.js +23 -7
  153. package/dist/esm/router/cloudflare/runtime/routerAbPrewarm.js +2 -2
  154. package/dist/esm/router/cloudflare/runtime/staticWalletConsoleBinding.js +6 -20
  155. package/dist/esm/router/cloudflare/runtime/tenantRootCreationGrant.js +2 -9
  156. package/dist/esm/router/cloudflare/runtime/walletConsoleOps.js +1 -0
  157. package/dist/esm/router/cloudflare/runtime/walletConsoleOpsClient.js +5 -0
  158. package/dist/esm/router/cloudflare/runtime/walletControlOps.js +2 -1
  159. package/dist/esm/router/cloudflare/runtime/walletGateway.js +1 -1
  160. package/dist/esm/router/cloudflare/runtime/walletRuntimeOps.js +16 -4
  161. package/dist/esm/router/cloudflare-adaptor.js +1 -2
  162. package/dist/esm/router/cloudflare.js +3390 -3437
  163. package/dist/esm/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistration.js +11 -8
  164. package/dist/esm/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistrationPartitionedStateStore.js +3 -2
  165. package/dist/esm/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistrationPartitioning.js +6 -6
  166. package/dist/esm/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistrationPersistence.js +5 -8
  167. package/dist/esm/router/domains/ed25519Yao/export/routerAbEd25519YaoExport.js +6 -6
  168. package/dist/esm/router/domains/ed25519Yao/export/routerAbEd25519YaoExportRequestScopedCloudflare.js +3 -0
  169. package/dist/esm/router/domains/ed25519Yao/recovery/routerAbEd25519YaoRecoveryRequestScopedCloudflare.js +8 -0
  170. package/dist/esm/router/domains/ed25519Yao/recovery/routerAbEd25519YaoRecoveryWalletSessionAuthorization.js +3 -6
  171. package/dist/esm/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistrationIntentAuthorization.js +6 -25
  172. package/dist/esm/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistrationSideEffectBoundary.js +39 -55
  173. package/dist/esm/router/domains/emailOtp/emailOtpRequestValidation.js +0 -1
  174. package/dist/esm/router/domains/emailOtp/emailOtpRouteHandlers.js +15 -62
  175. package/dist/esm/router/domains/passkeyCustody/passkeyCustodyEnvelopeRetrieval.js +2 -8
  176. package/dist/esm/router/domains/passkeyCustody/walletCustodyRegistrationCommit.js +2 -8
  177. package/dist/esm/router/domains/signingOperations/routerAbEcdsaDerivationNormalSigningRoute.js +83 -74
  178. package/dist/esm/router/domains/signingOperations/routerAbNormalSigningAdmission.js +1 -0
  179. package/dist/esm/router/domains/signingOperations/routerAbOperationStepUp.js +1 -0
  180. package/dist/esm/router/domains/signingOperations/routerAbPrivateSigningWorker.js +5 -19
  181. package/dist/esm/router/domains/signingOperations/walletExecutionAdmission.js +3 -7
  182. package/dist/esm/router/domains/tenantRoot/tenantRootIdentityResolution.js +7 -13
  183. package/dist/esm/router/domains/walletRegistration/walletRegistrationReservation.js +70 -0
  184. package/dist/esm/router/domains/walletRegistration/walletRegistrationRoutes.js +10 -11
  185. package/dist/esm/router/domains/walletRegistration/walletRegistrationSetupPayload.js +2 -3
  186. package/dist/esm/router/domains/walletUnlock/walletUnlockRouteHandlers.js +55 -200
  187. package/dist/esm/router/express.js +858 -1145
  188. package/dist/esm/router/framework/http.js +7 -1
  189. package/dist/esm/router/framework/registrationSetupDispatch.js +14 -0
  190. package/dist/esm/router/framework/ror/normalize.js +0 -1
  191. package/dist/esm/router/framework/ror/options.js +0 -1
  192. package/dist/esm/router/framework/ror/provider.js +0 -1
  193. package/dist/esm/router/framework/ror/staticProvider.js +0 -1
  194. package/dist/esm/router/framework/routeDefinitions.js +1 -2
  195. package/dist/esm/router/framework/routerApiWebhooks.js +0 -1
  196. package/dist/esm/router/framework/runtimeSnapshotConsumer.js +8 -35
  197. package/dist/esm/router/ror.js +0 -1
  198. package/dist/esm/router/transport/fetch/createFetchRouter.js +3 -8
  199. package/dist/esm/router/transport/fetch/routes/auth.js +11 -41
  200. package/dist/esm/router/transport/fetch/routes/deviceLinking.js +36 -147
  201. package/dist/esm/router/transport/fetch/routes/deviceLinkingOwnerAuthorization.js +7 -23
  202. package/dist/esm/router/transport/fetch/routes/deviceLinkingResponses.js +130 -0
  203. package/dist/esm/router/transport/fetch/routes/ecdsaOperationStepUpFactor.js +171 -0
  204. package/dist/esm/router/transport/fetch/routes/passkeyCustody.js +1 -0
  205. package/dist/esm/router/transport/fetch/routes/sessions.js +1 -0
  206. package/dist/esm/router/transport/fetch/routes/syncAccount.js +15 -38
  207. package/dist/esm/router/transport/fetch/routes/thresholdEcdsa.js +46 -194
  208. package/dist/esm/router/transport/fetch/routes/walletExecutionLanePreflight.js +4 -1
  209. package/dist/esm/router/transport/fetch/routes/walletRegistration.js +3 -1
  210. package/dist/esm/router/transport/fetch/routes/webauthnAuthenticators.js +4 -16
  211. package/dist/esm/shared-ts/src/authorization/walletSessionIssuance.js +0 -1
  212. package/dist/esm/shared-ts/src/authorization/walletSignerActivationEquality.js +12 -0
  213. package/dist/esm/shared-ts/src/device-linking/authorityActivation.js +0 -2
  214. package/dist/esm/shared-ts/src/device-linking/committedSignerPackages.js +2 -5
  215. package/dist/esm/shared-ts/src/device-linking/contracts.js +16 -1
  216. package/dist/esm/shared-ts/src/device-linking/delegatedActivationPlan.js +1 -5
  217. package/dist/esm/shared-ts/src/device-linking/digests.js +1 -8
  218. package/dist/esm/shared-ts/src/device-linking/ed25519ExportRoot.js +12 -16
  219. package/dist/esm/shared-ts/src/device-linking/sourceContribution.js +5 -8
  220. package/dist/esm/shared-ts/src/near/actions.js +0 -1
  221. package/dist/esm/shared-ts/src/near/nearClient.js +0 -2
  222. package/dist/esm/shared-ts/src/passkey-custody/primitives.js +5 -1
  223. package/dist/esm/shared-ts/src/signing-lanes/evmFamilySigningKeySlotId.js +1 -1
  224. package/dist/esm/shared-ts/src/signing-lanes/index.js +1 -6
  225. package/dist/esm/shared-ts/src/signing-lanes/ownerContinuity.js +5 -9
  226. package/dist/esm/shared-ts/src/signing-lanes/participantDigest.js +2 -81
  227. package/dist/esm/shared-ts/src/signing-lanes/participants.js +1 -219
  228. package/dist/esm/shared-ts/src/signing-lanes/recordParsers.js +0 -3
  229. package/dist/esm/shared-ts/src/tenant-root/tenantRootIdentifier.js +12 -0
  230. package/dist/esm/shared-ts/src/tenant-root/tenantRootIdentity.js +2 -9
  231. package/dist/esm/shared-ts/src/tenant-root/tenantRootOperationRecord.js +2 -6
  232. package/dist/esm/shared-ts/src/threshold/ecdsaDerivationRoleLocalBootstrap.js +0 -1
  233. package/dist/esm/shared-ts/src/threshold/keyMaterialBrands.js +1 -22
  234. package/dist/esm/shared-ts/src/threshold/participants.js +0 -1
  235. package/dist/esm/shared-ts/src/threshold/signingRootScope.js +0 -1
  236. package/dist/esm/shared-ts/src/utils/addWalletAuthMethod.js +4 -13
  237. package/dist/esm/shared-ts/src/utils/canonicalPrimitives.js +1 -7
  238. package/dist/esm/shared-ts/src/utils/domainIds.js +1 -16
  239. package/dist/esm/shared-ts/src/utils/ecdsaCapabilityActivation.js +1 -11
  240. package/dist/esm/shared-ts/src/utils/ecdsaKeyFactsInventory.js +2 -5
  241. package/dist/esm/shared-ts/src/utils/ecdsaServerTiming.js +0 -1
  242. package/dist/esm/shared-ts/src/utils/emailOtpDomain.js +3 -1
  243. package/dist/esm/shared-ts/src/utils/errors.js +1 -19
  244. package/dist/esm/shared-ts/src/utils/exactKeys.js +17 -0
  245. package/dist/esm/shared-ts/src/utils/failure.js +20 -0
  246. package/dist/esm/shared-ts/src/utils/near.js +1 -1
  247. package/dist/esm/shared-ts/src/utils/registrationEstablishedSession.js +1 -1
  248. package/dist/esm/shared-ts/src/utils/registrationIds.js +1 -5
  249. package/dist/esm/shared-ts/src/utils/registrationIntent.js +3 -13
  250. package/dist/esm/shared-ts/src/utils/registrationSetupOperation.js +8 -0
  251. package/dist/esm/shared-ts/src/utils/registrationSignerPlan.js +3 -6
  252. package/dist/esm/shared-ts/src/utils/routerAbEcdsaDerivation.js +1 -2
  253. package/dist/esm/shared-ts/src/utils/routerAbEd25519Yao.js +1 -1
  254. package/dist/esm/shared-ts/src/utils/thresholdEcdsaChainTarget.js +9 -0
  255. package/dist/esm/shared-ts/src/utils/validation.js +1 -5
  256. package/dist/esm/shared-ts/src/utils/walletAuthAuthority.js +0 -1
  257. package/dist/esm/shared-ts/src/utils/walletManagementProtocol.js +6 -0
  258. package/dist/esm/shared-ts/src/utils/wireSchema.js +2 -13
  259. package/dist/esm/shared-ts/src/wallet-recovery/backupAcknowledgement.js +6 -24
  260. package/dist/esm/shared-ts/src/wallet-recovery/recoveryCodeLocator.js +0 -1
  261. package/dist/esm/shared-ts/src/wallet-recovery/recoveryKeyId.js +5 -6
  262. package/dist/esm/shared-ts/src/wallet-recovery/walletRecoveryCommittedProjection.js +1 -4
  263. package/dist/esm/storage/d1Sql.js +1 -7
  264. package/dist/esm/threshold/session/signingSessionSeal/crypto/cipher.js +10 -33
  265. package/dist/esm/threshold/session/signingSessionSeal/guards/backends.js +1 -2
  266. package/dist/esm/threshold/session/signingSessionSeal/idempotencyBackends.js +3 -4
  267. package/dist/esm/threshold/session/signingSessionSeal/idempotencyRecords.js +3 -10
  268. package/dist/esm/threshold/session/signingSessionSeal/options.js +0 -1
  269. package/dist/esm/threshold/session/signingSessionSeal/service.js +8 -35
  270. package/dist/esm/threshold/session/signingSessionSeal/transport/express.js +18 -94
  271. package/dist/esm/threshold/session/signingSessionSeal/transport/fetch.js +6 -30
  272. package/dist/esm/threshold/session/signingSessionSeal/transport/shared.js +5 -20
  273. package/dist/esm/wasm/evm_crypto/pkg/evm_crypto_bg.wasm +0 -0
  274. package/dist/esm/wasm/near_signer/pkg/wasm_signer_worker.js +0 -611
  275. package/dist/esm/wasm/near_signer/pkg/wasm_signer_worker_bg.wasm +0 -0
  276. package/dist/esm/wasm/shamir3pass_runtime/pkg/shamir3pass_runtime_bg.wasm +0 -0
  277. package/dist/types/shared-ts/src/authorization/capabilityKinds.d.ts +0 -4
  278. package/dist/types/shared-ts/src/authorization/delegatedAuthority.d.ts +2 -1
  279. package/dist/types/shared-ts/src/authorization/walletSessionIssuance.d.ts +9 -2
  280. package/dist/types/shared-ts/src/authorization/walletSignerActivationEquality.d.ts +4 -0
  281. package/dist/types/shared-ts/src/device-linking/committedSignerPackages.d.ts +3 -4
  282. package/dist/types/shared-ts/src/device-linking/contracts.d.ts +6 -63
  283. package/dist/types/shared-ts/src/device-linking/sourceContribution.d.ts +2 -0
  284. package/dist/types/shared-ts/src/passkey-custody/custodyEnvelope.d.ts +5 -12
  285. package/dist/types/shared-ts/src/passkey-custody/primitives.d.ts +9 -0
  286. package/dist/types/shared-ts/src/signing-lanes/evmFamilySigningKeySlotId.d.ts +0 -2
  287. package/dist/types/shared-ts/src/signing-lanes/execution.d.ts +11 -12
  288. package/dist/types/shared-ts/src/signing-lanes/ids.d.ts +3 -17
  289. package/dist/types/shared-ts/src/signing-lanes/index.d.ts +0 -4
  290. package/dist/types/shared-ts/src/signing-lanes/ownerContinuity.d.ts +0 -1
  291. package/dist/types/shared-ts/src/signing-lanes/participantDigest.d.ts +0 -18
  292. package/dist/types/shared-ts/src/signing-lanes/participants.d.ts +6 -35
  293. package/dist/types/shared-ts/src/signing-lanes/rotation.d.ts +6 -845
  294. package/dist/types/shared-ts/src/tenant-root/tenantRootIdentifier.d.ts +3 -0
  295. package/dist/types/shared-ts/src/tenant-root/tenantRootOperationRecord.d.ts +2 -1
  296. package/dist/types/shared-ts/src/threshold/ecdsaDerivationRoleLocalBootstrap.d.ts +6 -0
  297. package/dist/types/shared-ts/src/threshold/keyMaterialBrands.d.ts +0 -10
  298. package/dist/types/shared-ts/src/threshold/participants.d.ts +1 -1
  299. package/dist/types/shared-ts/src/threshold/signingRootScope.d.ts +1 -0
  300. package/dist/types/shared-ts/src/utils/addWalletAuthMethod.d.ts +1 -133
  301. package/dist/types/shared-ts/src/utils/addWalletAuthMethod.typecheck.d.ts +4 -18
  302. package/dist/types/shared-ts/src/utils/domainIds.d.ts +0 -12
  303. package/dist/types/shared-ts/src/utils/ecdsaKeyFactsInventory.d.ts +2 -11
  304. package/dist/types/shared-ts/src/utils/eip1559TxWasmJson.d.ts +16 -0
  305. package/dist/types/shared-ts/src/utils/emailOtpDomain.d.ts +2 -0
  306. package/dist/types/shared-ts/src/utils/errors.d.ts +0 -4
  307. package/dist/types/shared-ts/src/utils/exactKeys.d.ts +11 -0
  308. package/dist/types/shared-ts/src/utils/failure.d.ts +12 -0
  309. package/dist/types/shared-ts/src/utils/jsonRpc.d.ts +3 -4
  310. package/dist/types/shared-ts/src/utils/near.d.ts +0 -20
  311. package/dist/types/shared-ts/src/utils/nearRpcResults.d.ts +1 -0
  312. package/dist/types/shared-ts/src/utils/normalize.d.ts +0 -2
  313. package/dist/types/shared-ts/src/utils/registrationAuthMethodInput.d.ts +3 -8
  314. package/dist/types/shared-ts/src/utils/registrationSetupOperation.d.ts +3 -0
  315. package/dist/types/shared-ts/src/utils/registrationSignerPlan.d.ts +7 -19
  316. package/dist/types/shared-ts/src/utils/routerAbEcdsaDerivation.d.ts +3 -1
  317. package/dist/types/shared-ts/src/utils/routerAbEd25519Yao.d.ts +1 -0
  318. package/dist/types/shared-ts/src/utils/routerAbEd25519YaoDigests.d.ts +3 -4
  319. package/dist/types/shared-ts/src/utils/routerAbNormalSigningIdentity.d.ts +30 -8
  320. package/dist/types/shared-ts/src/utils/routerApiKeyAuth.d.ts +2 -0
  321. package/dist/types/shared-ts/src/utils/signingSessionSeal.d.ts +10 -11
  322. package/dist/types/shared-ts/src/utils/thresholdEcdsaChainTarget.d.ts +25 -0
  323. package/dist/types/shared-ts/src/utils/validation.d.ts +1 -3
  324. package/dist/types/shared-ts/src/utils/variant.d.ts +18 -0
  325. package/dist/types/shared-ts/src/utils/walletAuthMethodRecord.d.ts +3 -6
  326. package/dist/types/shared-ts/src/utils/walletCapabilityBindings.d.ts +0 -1
  327. package/dist/types/shared-ts/src/utils/walletManagementProtocol.d.ts +3 -0
  328. package/dist/types/shared-ts/src/utils/webauthnDeviceInfo.d.ts +4 -2
  329. package/dist/types/shared-ts/src/utils/wireSchema.d.ts +0 -2
  330. package/dist/types/shared-ts/src/wallet-recovery/backupAcknowledgement.d.ts +0 -1
  331. package/dist/types/shared-ts/src/wallet-recovery/recoveryCodeReservation.d.ts +1 -10
  332. package/dist/types/shared-ts/src/wallet-recovery/recoveryCodes.d.ts +1 -3
  333. package/dist/types/shared-ts/src/wallet-recovery/recoveryEnvelopes.d.ts +3 -16
  334. package/dist/types/shared-ts/src/wallet-recovery/recoveryKeyId.d.ts +5 -21
  335. package/dist/types/shared-ts/src/wallet-recovery/walletRecoveryPreparation.d.ts +15 -0
  336. package/dist/types/shared-ts/src/wallet-recovery/walletRecoveryTarget.d.ts +3 -4
  337. package/dist/types/wallet-server/src/authorization/domain.d.ts +13 -2
  338. package/dist/types/wallet-server/src/authorization/ecdsaWalletSessionAdmission.d.ts +27 -3
  339. package/dist/types/wallet-server/src/authorization/lifecycleRouting.d.ts +32 -0
  340. package/dist/types/wallet-server/src/authorization/lifecycleRouting.typecheck.d.ts +2 -0
  341. package/dist/types/wallet-server/src/authorization/recoveryRouting.d.ts +22 -0
  342. package/dist/types/wallet-server/src/authorization/recoveryRouting.typecheck.d.ts +2 -0
  343. package/dist/types/wallet-server/src/authorization/service.d.ts +27 -1
  344. package/dist/types/wallet-server/src/authorization/sessionRouting.d.ts +20 -0
  345. package/dist/types/wallet-server/src/authorization/sessionRouting.typecheck.d.ts +2 -0
  346. package/dist/types/wallet-server/src/cloud-host.d.ts +31 -9
  347. package/dist/types/wallet-server/src/core/EmailOtpRecords.d.ts +1 -22
  348. package/dist/types/wallet-server/src/core/EmailOtpStores.d.ts +1 -79
  349. package/dist/types/wallet-server/src/core/IdentityStore.d.ts +0 -10
  350. package/dist/types/wallet-server/src/core/RegistrationCeremonyStore.d.ts +0 -1
  351. package/dist/types/wallet-server/src/core/ThresholdService/config.d.ts +0 -2
  352. package/dist/types/wallet-server/src/core/ThresholdService/index.d.ts +1 -3
  353. package/dist/types/wallet-server/src/core/ThresholdService/kv.d.ts +0 -7
  354. package/dist/types/wallet-server/src/core/ThresholdService/routerAb/ecdsaDerivationPoolFillHandlers.d.ts +0 -3
  355. package/dist/types/wallet-server/src/core/ThresholdService/routerAbNormalSigningPolicy.d.ts +0 -1
  356. package/dist/types/wallet-server/src/core/ThresholdService/stores/WalletSessionStore.d.ts +6 -18
  357. package/dist/types/wallet-server/src/core/ThresholdService/validation.d.ts +0 -127
  358. package/dist/types/wallet-server/src/core/WalletAuthMethodStore.d.ts +1 -5
  359. package/dist/types/wallet-server/src/core/WalletStore.d.ts +0 -3
  360. package/dist/types/wallet-server/src/core/WebAuthnAuthenticatorStore.d.ts +8 -20
  361. package/dist/types/wallet-server/src/core/WebAuthnCredentialBindingStore.d.ts +1 -27
  362. package/dist/types/wallet-server/src/core/WebAuthnLoginChallengeStore.d.ts +2 -16
  363. package/dist/types/wallet-server/src/core/WebAuthnSyncChallengeStore.d.ts +22 -14
  364. package/dist/types/wallet-server/src/core/authService/emailOtpConfig.d.ts +0 -24
  365. package/dist/types/wallet-server/src/core/authService/emailOtpEnrollment.d.ts +1 -70
  366. package/dist/types/wallet-server/src/core/authService/emailOtpSeal.d.ts +1 -14
  367. package/dist/types/wallet-server/src/core/authService/githubOAuth.d.ts +2 -1
  368. package/dist/types/wallet-server/src/core/authService/nearTransactions.d.ts +1 -39
  369. package/dist/types/wallet-server/src/core/authService/rateLimits.d.ts +0 -17
  370. package/dist/types/wallet-server/src/core/authService/webauthn.d.ts +0 -125
  371. package/dist/types/wallet-server/src/core/authService/webauthnOidcHelpers.d.ts +0 -3
  372. package/dist/types/wallet-server/src/core/authService/webauthnVerificationOutcomes.d.ts +1 -1
  373. package/dist/types/wallet-server/src/core/authService/webauthnWalletBinding.d.ts +0 -12
  374. package/dist/types/wallet-server/src/core/config.d.ts +0 -10
  375. package/dist/types/wallet-server/src/core/d1EcdsaSignerRead.d.ts +39 -0
  376. package/dist/types/wallet-server/src/core/d1IdentityStore.d.ts +0 -2
  377. package/dist/types/wallet-server/src/core/d1TenantStore.d.ts +0 -7
  378. package/dist/types/wallet-server/src/core/d1WalletAuthMethodStore.d.ts +0 -1
  379. package/dist/types/wallet-server/src/core/d1WalletStore.d.ts +10 -0
  380. package/dist/types/wallet-server/src/core/deviceLinking/linkedDeviceBootstrap.d.ts +19 -0
  381. package/dist/types/wallet-server/src/core/deviceLinking/linkedDeviceSession.d.ts +8 -6
  382. package/dist/types/wallet-server/src/core/deviceLinking/linkedDeviceSessionRecord.d.ts +3 -4
  383. package/dist/types/wallet-server/src/core/deviceLinking/requestProof.d.ts +2 -5
  384. package/dist/types/wallet-server/src/core/ecdsaMaterialReadSnapshot.d.ts +19 -0
  385. package/dist/types/wallet-server/src/core/emailOtpD1Statements.d.ts +10 -7
  386. package/dist/types/wallet-server/src/core/keyMaterialBrands.d.ts +1 -5
  387. package/dist/types/wallet-server/src/core/nearRelayerAccountProvisioning.d.ts +0 -1
  388. package/dist/types/wallet-server/src/core/passkeyCredentialClaims.d.ts +9 -0
  389. package/dist/types/wallet-server/src/core/routerAbSigning/RouterAbEcdsaPresignRuntime.d.ts +0 -2
  390. package/dist/types/wallet-server/src/core/routerAbSigning/RouterAbNormalSigningRuntime.d.ts +3 -7
  391. package/dist/types/wallet-server/src/core/rpcClients/near/NearClient.d.ts +1 -2
  392. package/dist/types/wallet-server/src/core/signingLanes/WalletExecutionLaneProjection.d.ts +2 -11
  393. package/dist/types/wallet-server/src/core/threeRouteRegistrationContracts.d.ts +1 -92
  394. package/dist/types/wallet-server/src/core/threeRouteRegistrationContracts.typecheck.d.ts +4 -52
  395. package/dist/types/wallet-server/src/core/thresholdEcdsaChainTarget.d.ts +3 -12
  396. package/dist/types/wallet-server/src/core/types.d.ts +2 -305
  397. package/dist/types/wallet-server/src/hosted-wallet-gateway.d.ts +15 -3
  398. package/dist/types/wallet-server/src/index.d.ts +8 -13
  399. package/dist/types/wallet-server/src/localIntendedMaterialAdmissionFault.d.ts +38 -0
  400. package/dist/types/wallet-server/src/localIntendedPresignCancellation.d.ts +4 -0
  401. package/dist/types/wallet-server/src/localRegistrationSetupAuthority.d.ts +13 -0
  402. package/dist/types/wallet-server/src/router/auth/authRequestValidation.d.ts +4 -9
  403. package/dist/types/wallet-server/src/router/auth/commonRouterUtils.d.ts +15 -1
  404. package/dist/types/wallet-server/src/router/cloudflare/d1/auth/d1AuthorizationAssembly.d.ts +23 -0
  405. package/dist/types/wallet-server/src/router/cloudflare/d1/auth/d1RouterApiAuthBoundary.d.ts +0 -1
  406. package/dist/types/wallet-server/src/router/cloudflare/d1/auth/d1RouterApiAuthConfig.d.ts +25 -3
  407. package/dist/types/wallet-server/src/router/cloudflare/d1/auth/d1RouterApiAuthService.d.ts +1 -1
  408. package/dist/types/wallet-server/src/router/cloudflare/d1/auth/walletSessionCredentialReaders.d.ts +9 -0
  409. package/dist/types/wallet-server/src/router/cloudflare/d1/authorization/authorizedOperationStatements.d.ts +4 -0
  410. package/dist/types/wallet-server/src/router/cloudflare/d1/authorization/d1AuthorizationStore.d.ts +11 -2
  411. package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceAuthorityInstallService.d.ts +22 -3
  412. package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceEmailOtpGrantStore.d.ts +7 -1
  413. package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceRequestProofNonceStore.d.ts +1 -10
  414. package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceRouteService.d.ts +4 -0
  415. package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceSessionStore.d.ts +8 -6
  416. package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceTargetCredentialProvider.d.ts +5 -8
  417. package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceTargetPlanner.d.ts +1 -13
  418. package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpChallengeService.d.ts +2 -2
  419. package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpChallengeStore.d.ts +1 -1
  420. package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpEnrollmentStore.d.ts +2 -8
  421. package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpGrantStore.d.ts +0 -2
  422. package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpRateLimitStore.d.ts +20 -11
  423. package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpRecords.d.ts +5 -5
  424. package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpServerSealRuntime.d.ts +4 -14
  425. package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1GoogleEmailOtpRegistrationAttemptStore.d.ts +29 -1
  426. package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1GoogleEmailOtpRegistrationRecords.d.ts +3 -16
  427. package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1GoogleEmailOtpSessionResolver.d.ts +7 -2
  428. package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1GoogleRegistrationCompletion.d.ts +23 -0
  429. package/dist/types/wallet-server/src/router/cloudflare/d1/identity/d1IdentityService.d.ts +0 -12
  430. package/dist/types/wallet-server/src/router/cloudflare/d1/near/d1SponsoredNearAccount.d.ts +24 -0
  431. package/dist/types/wallet-server/src/router/cloudflare/d1/near/d1SponsoredNearAccount.typecheck.d.ts +2 -0
  432. package/dist/types/wallet-server/src/router/cloudflare/d1/oidc/d1OidcVerificationService.d.ts +0 -1
  433. package/dist/types/wallet-server/src/router/cloudflare/d1/oidc/googleOidcToken.d.ts +4 -0
  434. package/dist/types/wallet-server/src/router/cloudflare/d1/passkeyCustody/d1PasskeyCustodyRouteService.d.ts +5 -0
  435. package/dist/types/wallet-server/src/router/cloudflare/d1/passkeyCustody/d1WalletCustodyCommitStore.d.ts +9 -0
  436. package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1RegistrationCeremonyRecordStore.d.ts +3 -7
  437. package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1RegistrationCeremonyRecords.d.ts +10 -11
  438. package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1RegistrationCeremonyStore.d.ts +3 -2
  439. package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1RegistrationSetupSupport.d.ts +51 -0
  440. package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1WalletRegistrationCommitStore.d.ts +3 -0
  441. package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1WalletRegistrationService.d.ts +35 -50
  442. package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1WalletRegistrationSetup.d.ts +3 -30
  443. package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1WalletRegistrationSetupExecution.d.ts +11 -0
  444. package/dist/types/wallet-server/src/router/cloudflare/d1/signingAdmission/d1RouterAbNormalSigningAdmissionStore.d.ts +14 -1
  445. package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletAddSignerFinalizeRecord.d.ts +27 -0
  446. package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletAddSignerService.d.ts +1 -10
  447. package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletAuthMethodService.d.ts +2 -2
  448. package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletAuthorityStore.d.ts +0 -4
  449. package/dist/types/wallet-server/src/router/cloudflare/d1/webauthn/d1WebAuthnAuthService.d.ts +3 -0
  450. package/dist/types/wallet-server/src/router/cloudflare/d1/webauthn/d1WebAuthnRecords.d.ts +8 -50
  451. package/dist/types/wallet-server/src/router/cloudflare/d1/webauthn/d1WebAuthnStore.d.ts +23 -10
  452. package/dist/types/wallet-server/src/router/cloudflare/d1/webauthn/d1WebAuthnStore.typecheck.d.ts +2 -0
  453. package/dist/types/wallet-server/src/router/cloudflare/runtime/cloudflare.types.d.ts +0 -2
  454. package/dist/types/wallet-server/src/router/cloudflare/runtime/walletConsoleOps.d.ts +9 -34
  455. package/dist/types/wallet-server/src/router/cloudflare/runtime/walletConsoleOpsClient.d.ts +2 -0
  456. package/dist/types/wallet-server/src/router/cloudflare/runtime/walletGateway.d.ts +1 -1
  457. package/dist/types/wallet-server/src/router/cloudflare/runtime/walletRuntimeOps.d.ts +3 -0
  458. package/dist/types/wallet-server/src/router/cloudflare-adaptor.d.ts +0 -1
  459. package/dist/types/wallet-server/src/router/domains/ecdsa/thresholdEcdsaRequestValidation.d.ts +3 -15
  460. package/dist/types/wallet-server/src/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistration.d.ts +1 -1
  461. package/dist/types/wallet-server/src/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistrationPartitioning.d.ts +2 -2
  462. package/dist/types/wallet-server/src/router/domains/ed25519Yao/export/routerAbEd25519YaoExport.d.ts +2 -2
  463. package/dist/types/wallet-server/src/router/domains/ed25519Yao/export/routerAbEd25519YaoExport.typecheck.d.ts +2 -0
  464. package/dist/types/wallet-server/src/router/domains/ed25519Yao/export/routerAbEd25519YaoExportRequestScopedCloudflare.d.ts +2 -0
  465. package/dist/types/wallet-server/src/router/domains/ed25519Yao/recovery/routerAbEd25519YaoRecoveryRequestScopedCloudflare.d.ts +2 -0
  466. package/dist/types/wallet-server/src/router/domains/ed25519Yao/session/routerAbEd25519YaoWalletSession.d.ts +9 -50
  467. package/dist/types/wallet-server/src/router/domains/passkeyCustody/passkeyCustodyEnvelopeRetrieval.d.ts +0 -2
  468. package/dist/types/wallet-server/src/router/domains/passkeyCustody/walletCustodyRegistrationCommit.d.ts +0 -3
  469. package/dist/types/wallet-server/src/router/domains/passkeyCustody/walletRecoveryKeyManifest.d.ts +1 -13
  470. package/dist/types/wallet-server/src/router/domains/signingOperations/routerAbEcdsaDerivationNormalSigningRoute.d.ts +8 -9
  471. package/dist/types/wallet-server/src/router/domains/signingOperations/routerAbNormalSigningAdmission.d.ts +13 -0
  472. package/dist/types/wallet-server/src/router/domains/signingOperations/routerAbOperationStepUp.d.ts +3 -4
  473. package/dist/types/wallet-server/src/router/domains/signingOperations/routerAbPrivateSigningWorker.d.ts +7 -33
  474. package/dist/types/wallet-server/src/router/domains/signingOperations/walletExecutionAdmission.d.ts +1 -2
  475. package/dist/types/wallet-server/src/router/domains/syncAccount/syncAccountRequestValidation.d.ts +2 -7
  476. package/dist/types/wallet-server/src/router/domains/walletRegistration/walletRegistrationInputs.d.ts +1 -0
  477. package/dist/types/wallet-server/src/router/domains/walletRegistration/walletRegistrationReservation.d.ts +51 -0
  478. package/dist/types/wallet-server/src/router/domains/walletRegistration/walletRegistrationRoutes.d.ts +2 -10
  479. package/dist/types/wallet-server/src/router/domains/walletRegistration/walletRegistrationSetupPayload.d.ts +2 -2
  480. package/dist/types/wallet-server/src/router/framework/apiCredentialPorts.d.ts +3 -1
  481. package/dist/types/wallet-server/src/router/framework/authServicePort.d.ts +39 -38
  482. package/dist/types/wallet-server/src/router/framework/googleLoginResolution.typecheck.d.ts +2 -0
  483. package/dist/types/wallet-server/src/router/framework/http.d.ts +1 -0
  484. package/dist/types/wallet-server/src/router/framework/registrationSetupDispatch.d.ts +13 -0
  485. package/dist/types/wallet-server/src/router/framework/ror/normalize.d.ts +1 -9
  486. package/dist/types/wallet-server/src/router/transport/fetch/routes/deviceLinking.d.ts +1 -1
  487. package/dist/types/wallet-server/src/router/transport/fetch/routes/deviceLinkingOwnerAuthorization.d.ts +3 -6
  488. package/dist/types/wallet-server/src/router/transport/fetch/routes/deviceLinkingResponses.d.ts +17 -0
  489. package/dist/types/wallet-server/src/router/transport/fetch/routes/ecdsaOperationStepUpFactor.d.ts +37 -0
  490. package/dist/types/wallet-server/src/router/transport/fetch/routes/syncAccountBootstrap.d.ts +3 -5
  491. package/dist/types/wallet-server/src/router/transport/fetch/routes/thresholdEcdsa.d.ts +0 -1
  492. package/dist/types/wallet-server/src/storage/d1Sql.d.ts +0 -1
  493. package/dist/types/wallet-server/src/threshold/session/signingSessionSeal/idempotencyRecords.d.ts +1 -2
  494. package/dist/types/wallet-server/src/threshold/session/signingSessionSeal/signingSessionSeal.types.d.ts +6 -8
  495. package/migrations/d1-signer/0040_namespace_home_challenges.sql +16 -0
  496. package/migrations/d1-signer/0041_step_up_admission_expiry.sql +28 -0
  497. package/migrations/d1-signer/0042_deployment_resource_challenges.sql +4 -0
  498. package/migrations/d1-signer/0043_google_registration_candidate_claim.sql +2 -0
  499. package/migrations/d1-signer/0044_linked_device_bootstrap_imports.sql +6 -0
  500. package/migrations/d1-signer/0045_wallet_owned_capability_receipts.sql +29 -0
  501. package/migrations/d1-signer/0046_wallet_owned_signing_abuse.sql +41 -0
  502. package/migrations/d1-signer/0047_remove_unused_near_public_keys.sql +2 -0
  503. package/migrations/d1-signer/0048_operation_owner_scope.sql +45 -0
  504. package/package.json +2 -3
  505. package/src/README.md +11 -3
  506. package/dist/esm/core/AuthService.js +0 -2
  507. package/dist/esm/core/NearPublicKeyStore.js +0 -200
  508. package/dist/esm/core/ThresholdService/stores/CloudflareDurableObjectStore.js +0 -397
  509. package/dist/esm/core/ThresholdService/stores/KeyStore.js +0 -140
  510. package/dist/esm/core/ThresholdService/stores/SessionStore.js +0 -361
  511. package/dist/esm/core/ThresholdService/stores/StoreConfig.js +0 -13
  512. package/dist/esm/core/authService/AuthService.js +0 -594
  513. package/dist/esm/core/authService/bytes.js +0 -22
  514. package/dist/esm/core/authService/configValues.js +0 -15
  515. package/dist/esm/core/authService/emailOtpChallengeOperations.js +0 -126
  516. package/dist/esm/core/authService/emailOtpChallengeProof.js +0 -214
  517. package/dist/esm/core/authService/emailOtpChallengeVerification.js +0 -335
  518. package/dist/esm/core/authService/emailOtpChallenges.js +0 -260
  519. package/dist/esm/core/authService/emailOtpDelivery.js +0 -169
  520. package/dist/esm/core/authService/emailOtpGrant.js +0 -74
  521. package/dist/esm/core/authService/emailOtpRegistrationEnrollment.js +0 -175
  522. package/dist/esm/core/authService/emailOtpUnlock.js +0 -264
  523. package/dist/esm/core/authService/googleEmailOtpOperations.js +0 -141
  524. package/dist/esm/core/authService/googleEmailOtpRegistration.js +0 -674
  525. package/dist/esm/core/authService/identity.js +0 -57
  526. package/dist/esm/core/authService/identityOperations.js +0 -32
  527. package/dist/esm/core/authService/nearAccountOperations.js +0 -229
  528. package/dist/esm/core/authService/nearPublicKeyMetadata.js +0 -127
  529. package/dist/esm/core/authService/oidcVerification.js +0 -261
  530. package/dist/esm/core/authService/registrationThresholdHelpers.js +0 -30
  531. package/dist/esm/core/authService/runtime.js +0 -45
  532. package/dist/esm/core/authService/storeRegistry.js +0 -102
  533. package/dist/esm/core/authService/thresholdStoreSummary.js +0 -32
  534. package/dist/esm/core/authService/webauthnAuthority.js +0 -17
  535. package/dist/esm/core/defaultConfigsServer.js +0 -9
  536. package/dist/esm/core/hostedAccountIds.js +0 -225
  537. package/dist/esm/core/routerAbSigning/createRouterAbSigningRuntimes.js +0 -84
  538. package/dist/esm/core/signingLanes/LaneAggregateRevocationApplicationService.js +0 -86
  539. package/dist/esm/core/signingLanes/LaneEnrollmentActivation.js +0 -324
  540. package/dist/esm/core/signingLanes/LaneEnrollmentRevocation.js +0 -173
  541. package/dist/esm/core/signingLanes/LaneLifecycleApplicationService.js +0 -198
  542. package/dist/esm/core/signingLanes/ecdsaServerRetirement.js +0 -73
  543. package/dist/esm/core/signingLanes/ed25519ServerRetirement.js +0 -68
  544. package/dist/esm/core/signingLanes/signingWorkerLaneMaterialIdentity.js +0 -0
  545. package/dist/esm/core/storeBackends.js +0 -208
  546. package/dist/esm/core/utils.js +0 -14
  547. package/dist/esm/core/webAuthnStoreBackends.js +0 -198
  548. package/dist/esm/router/cloudflare/d1/near/d1NearPublicKeyStore.js +0 -56
  549. package/dist/esm/router/cloudflare/d1/signingLanes/d1EcdsaLanePrivateBindingResolver.js +0 -10
  550. package/dist/esm/router/cloudflare/d1/signingLanes/d1LaneAggregateRevocationApplicationService.js +0 -22
  551. package/dist/esm/router/cloudflare/d1/signingLanes/d1LaneEffectJournalStore.js +0 -166
  552. package/dist/esm/router/cloudflare/d1/signingLanes/d1LaneEnrollmentGateway.js +0 -38
  553. package/dist/esm/router/cloudflare/d1/signingLanes/d1LaneLifecycleApplicationService.js +0 -20
  554. package/dist/esm/router/cloudflare/d1/signingLanes/d1LaneLifecycleStore.js +0 -1459
  555. package/dist/esm/router/cloudflare/d1/signingLanes/d1LaneLockStore.js +0 -114
  556. package/dist/esm/router/cloudflare/d1/signingLanes/d1LaneProtocolCommitter.js +0 -16
  557. package/dist/esm/router/cloudflare/d1/signingLanes/d1LaneRecords.js +0 -171
  558. package/dist/esm/router/cloudflare/d1/signingLanes/index.js +0 -10
  559. package/dist/esm/router/cloudflare/durableObjects/thresholdStore.js +0 -404
  560. package/dist/esm/router/cloudflare/signingLanes/cloudflareLaneCurveExecution.js +0 -596
  561. package/dist/esm/router/cloudflare/signingLanes/cloudflareLaneProtocolCommitter.js +0 -273
  562. package/dist/esm/router/cloudflare/signingLanes/index.js +0 -4
  563. package/dist/esm/router/cloudflare/signingLanes/linkedDeviceEd25519CeremonyBinding.js +0 -32
  564. package/dist/esm/router/transport/fetch/routes/nearPublicKeys.js +0 -39
  565. package/dist/esm/shared-ts/src/signing-lanes/rotation.js +0 -8
  566. package/dist/esm/shared-ts/src/signing-lanes/rotationDigests.js +0 -358
  567. package/dist/esm/shared-ts/src/signing-lanes/rotationLifecycle.js +0 -313
  568. package/dist/esm/shared-ts/src/signing-lanes/rotationParsers.js +0 -532
  569. package/dist/esm/shared-ts/src/signing-lanes/rotationProtocolParsers.js +0 -323
  570. package/dist/esm/shared-ts/src/signing-lanes/rotationWireFields.js +0 -59
  571. package/dist/esm/wasm/router_ab_ecdsa_signing_worker/pkg/router_ab_ecdsa_signing_worker_bg.wasm +0 -0
  572. package/dist/types/shared-ts/src/signing-lanes/participantDigest.typecheck.d.ts +0 -2
  573. package/dist/types/shared-ts/src/signing-lanes/rotation.typecheck.d.ts +0 -2
  574. package/dist/types/shared-ts/src/signing-lanes/rotationDigests.d.ts +0 -13
  575. package/dist/types/shared-ts/src/signing-lanes/rotationLifecycle.d.ts +0 -78
  576. package/dist/types/shared-ts/src/signing-lanes/rotationParsers.d.ts +0 -27
  577. package/dist/types/shared-ts/src/signing-lanes/rotationProtocolParsers.d.ts +0 -6
  578. package/dist/types/shared-ts/src/signing-lanes/rotationWireFields.d.ts +0 -20
  579. package/dist/types/shared-ts/src/wallet-recovery/recoveryCodeAttempt.d.ts +0 -59
  580. package/dist/types/wallet-server/src/core/AuthService.d.ts +0 -3
  581. package/dist/types/wallet-server/src/core/NearPublicKeyStore.d.ts +0 -48
  582. package/dist/types/wallet-server/src/core/ThresholdService/stores/CloudflareDurableObjectStore.d.ts +0 -21
  583. package/dist/types/wallet-server/src/core/ThresholdService/stores/KeyStore.d.ts +0 -40
  584. package/dist/types/wallet-server/src/core/ThresholdService/stores/SessionStore.d.ts +0 -98
  585. package/dist/types/wallet-server/src/core/ThresholdService/stores/StoreConfig.d.ts +0 -4
  586. package/dist/types/wallet-server/src/core/ThresholdService/stores/ThresholdStoreConfig.typecheck.d.ts +0 -2
  587. package/dist/types/wallet-server/src/core/authService/AuthService.d.ts +0 -490
  588. package/dist/types/wallet-server/src/core/authService/bytes.d.ts +0 -4
  589. package/dist/types/wallet-server/src/core/authService/configValues.d.ts +0 -7
  590. package/dist/types/wallet-server/src/core/authService/emailOtpChallengeOperations.d.ts +0 -109
  591. package/dist/types/wallet-server/src/core/authService/emailOtpChallengeProof.d.ts +0 -169
  592. package/dist/types/wallet-server/src/core/authService/emailOtpChallengeVerification.d.ts +0 -47
  593. package/dist/types/wallet-server/src/core/authService/emailOtpChallenges.d.ts +0 -94
  594. package/dist/types/wallet-server/src/core/authService/emailOtpDelivery.d.ts +0 -66
  595. package/dist/types/wallet-server/src/core/authService/emailOtpGrant.d.ts +0 -43
  596. package/dist/types/wallet-server/src/core/authService/emailOtpRegistrationEnrollment.d.ts +0 -49
  597. package/dist/types/wallet-server/src/core/authService/emailOtpUnlock.d.ts +0 -71
  598. package/dist/types/wallet-server/src/core/authService/googleEmailOtpOperations.d.ts +0 -126
  599. package/dist/types/wallet-server/src/core/authService/googleEmailOtpRegistration.d.ts +0 -169
  600. package/dist/types/wallet-server/src/core/authService/identity.d.ts +0 -25
  601. package/dist/types/wallet-server/src/core/authService/identityOperations.d.ts +0 -19
  602. package/dist/types/wallet-server/src/core/authService/nearAccountOperations.d.ts +0 -55
  603. package/dist/types/wallet-server/src/core/authService/nearPublicKeyMetadata.d.ts +0 -44
  604. package/dist/types/wallet-server/src/core/authService/oidcVerification.d.ts +0 -66
  605. package/dist/types/wallet-server/src/core/authService/registrationThresholdHelpers.d.ts +0 -11
  606. package/dist/types/wallet-server/src/core/authService/runtime.d.ts +0 -20
  607. package/dist/types/wallet-server/src/core/authService/storeRegistry.d.ts +0 -53
  608. package/dist/types/wallet-server/src/core/authService/thresholdStoreSummary.d.ts +0 -3
  609. package/dist/types/wallet-server/src/core/authService/webauthnAuthority.d.ts +0 -5
  610. package/dist/types/wallet-server/src/core/defaultConfigsServer.d.ts +0 -5
  611. package/dist/types/wallet-server/src/core/hostedAccountIds.d.ts +0 -16
  612. package/dist/types/wallet-server/src/core/routerAbSigning/createRouterAbSigningRuntimes.d.ts +0 -16
  613. package/dist/types/wallet-server/src/core/signingLanes/LaneAggregateRevocationApplicationService.d.ts +0 -36
  614. package/dist/types/wallet-server/src/core/signingLanes/LaneEffectJournalStore.d.ts +0 -62
  615. package/dist/types/wallet-server/src/core/signingLanes/LaneEnrollmentActivation.d.ts +0 -13
  616. package/dist/types/wallet-server/src/core/signingLanes/LaneEnrollmentRevocation.d.ts +0 -24
  617. package/dist/types/wallet-server/src/core/signingLanes/LaneLifecycleApplicationService.d.ts +0 -141
  618. package/dist/types/wallet-server/src/core/signingLanes/LaneLifecycleStore.d.ts +0 -228
  619. package/dist/types/wallet-server/src/core/signingLanes/ecdsaServerRetirement.d.ts +0 -58
  620. package/dist/types/wallet-server/src/core/signingLanes/ed25519ServerRetirement.d.ts +0 -30
  621. package/dist/types/wallet-server/src/core/signingLanes/signingWorkerLaneMaterialIdentity.d.ts +0 -21
  622. package/dist/types/wallet-server/src/core/storeBackends.d.ts +0 -83
  623. package/dist/types/wallet-server/src/core/utils.d.ts +0 -3
  624. package/dist/types/wallet-server/src/core/webAuthnStoreBackends.d.ts +0 -96
  625. package/dist/types/wallet-server/src/router/cloudflare/d1/near/d1NearPublicKeyStore.d.ts +0 -29
  626. package/dist/types/wallet-server/src/router/cloudflare/d1/signingLanes/d1EcdsaLanePrivateBindingResolver.d.ts +0 -4
  627. package/dist/types/wallet-server/src/router/cloudflare/d1/signingLanes/d1LaneAggregateRevocationApplicationService.d.ts +0 -4
  628. package/dist/types/wallet-server/src/router/cloudflare/d1/signingLanes/d1LaneEffectJournalStore.d.ts +0 -24
  629. package/dist/types/wallet-server/src/router/cloudflare/d1/signingLanes/d1LaneEnrollmentGateway.d.ts +0 -20
  630. package/dist/types/wallet-server/src/router/cloudflare/d1/signingLanes/d1LaneLifecycleApplicationService.d.ts +0 -13
  631. package/dist/types/wallet-server/src/router/cloudflare/d1/signingLanes/d1LaneLifecycleStore.d.ts +0 -51
  632. package/dist/types/wallet-server/src/router/cloudflare/d1/signingLanes/d1LaneLockStore.d.ts +0 -28
  633. package/dist/types/wallet-server/src/router/cloudflare/d1/signingLanes/d1LaneProtocolCommitter.d.ts +0 -5
  634. package/dist/types/wallet-server/src/router/cloudflare/d1/signingLanes/d1LaneRecords.d.ts +0 -107
  635. package/dist/types/wallet-server/src/router/cloudflare/d1/signingLanes/index.d.ts +0 -10
  636. package/dist/types/wallet-server/src/router/cloudflare/durableObjects/thresholdStore.d.ts +0 -18
  637. package/dist/types/wallet-server/src/router/cloudflare/signingLanes/cloudflareLaneCurveExecution.d.ts +0 -217
  638. package/dist/types/wallet-server/src/router/cloudflare/signingLanes/cloudflareLaneProtocolCommitter.d.ts +0 -73
  639. package/dist/types/wallet-server/src/router/cloudflare/signingLanes/index.d.ts +0 -4
  640. package/dist/types/wallet-server/src/router/cloudflare/signingLanes/linkedDeviceEd25519CeremonyBinding.d.ts +0 -6
  641. package/dist/types/wallet-server/src/router/transport/fetch/routes/nearPublicKeys.d.ts +0 -3
  642. /package/dist/esm/{core/signingLanes/LaneEffectJournalStore.js → authorization/recoveryRouting.js} +0 -0
  643. /package/dist/esm/{core/signingLanes/LaneLifecycleStore.js → authorization/sessionRouting.js} +0 -0
@@ -0,0 +1,155 @@
1
+ import { normalizeOptionalTrimmedString } from "../../../../shared-ts/src/utils/normalize.js";
2
+ import { deriveSigningRootId } from "../../../../shared-ts/src/threshold/signingRootScope.js";
3
+ import { registrationPreparationIdFromString } from "../../../../core/types.js";
4
+ import { buildStoredWalletRegistrationEvmFamilyEcdsaPreparedBranch, findStoredWalletRegistrationEvmFamilyEcdsaBranch } from "../../../../core/RegistrationCeremonyStore.js";
5
+ import { routerAbEcdsaStrictRegistrationFactsBindingJson } from "../../../domains/ecdsa/routerAbEcdsaStrictRegistration.js";
6
+ import { buildRegistrationIntent, inferRuntimePolicyScopeFromSigningRoot } from "./d1RegistrationCeremonyRecords.js";
7
+ import { errorMessage, registrationIntentSignerBranches, registrationPreparedContextEcdsaChainTargets, resolveRegistrationPreparedContextFromPlan } from "./d1RegistrationSetupSupport.js";
8
+ import { buildWalletRegistrationSetupSignature, normalizeWalletRegistrationSetupRequest, walletRegistrationSetupError, walletRegistrationSetupExpiresAtMs, walletRegistrationSetupIntentDigest } from "./d1WalletRegistrationSetup.js";
9
+ import { buildD1EvmFamilyEcdsaRegistrationPrepare } from "./d1EvmFamilyEcdsaRegistrationBranch.js";
10
+ //#region src/router/cloudflare/d1/registration/d1WalletRegistrationSetupExecution.ts
11
+ async function executeD1WalletRegistrationSetup(input, dependencies) {
12
+ try {
13
+ const normalized = normalizeWalletRegistrationSetupRequest(input.request);
14
+ if (!normalized.ok) return walletRegistrationSetupError(normalized.code, normalized.message);
15
+ if (!dependencies.reservation) return walletRegistrationSetupError("registration_authority_unavailable", "Registration reservation authority is required");
16
+ const admitted = await dependencies.reservation.reserve(input);
17
+ if (!admitted.ok) return admitted;
18
+ const reservation = admitted.reservation;
19
+ const wallet = { walletId: reservation.walletId };
20
+ if (input.request.wallet?.kind === "provided" && input.request.wallet.walletId !== wallet.walletId) return walletRegistrationSetupError("reservation_conflict", "Registration reservation changed the requested wallet");
21
+ const expiresAtMs = walletRegistrationSetupExpiresAtMs(reservation.reservedAtMs);
22
+ if (Date.now() >= expiresAtMs) return walletRegistrationSetupError("registration_expired", "Registration setup has expired");
23
+ const registrationCeremonyId = reservation.ceremonyId;
24
+ const registrationPreparationId = reservation.preparationId;
25
+ const runtimePolicyScope = input.runtimePolicyScope || inferRuntimePolicyScopeFromSigningRoot({
26
+ orgId: input.orgId,
27
+ signingRootId: input.signingRootId,
28
+ signingRootVersion: input.signingRootVersion
29
+ });
30
+ const signingRootId = normalizeOptionalTrimmedString(input.signingRootId) || (runtimePolicyScope ? deriveSigningRootId(runtimePolicyScope) : "");
31
+ const signingRootVersion = normalizeOptionalTrimmedString(input.signingRootVersion) || runtimePolicyScope?.signingRootVersion || "default";
32
+ if (!signingRootId) return walletRegistrationSetupError("invalid_body", "registration requires a signing root");
33
+ const registrationOperation = reservation;
34
+ const intent = buildRegistrationIntent({
35
+ nonceB64u: registrationCeremonyId.slice(4),
36
+ walletId: wallet.walletId,
37
+ authMethod: normalized.authMethod,
38
+ signerSelection: normalized.signerSelection,
39
+ foundingWalletAuthMethodId: registrationOperation.walletAuthMethodId,
40
+ ...runtimePolicyScope ? { runtimePolicyScope } : {}
41
+ });
42
+ const digestB64u = await walletRegistrationSetupIntentDigest(intent);
43
+ const existing = await dependencies.store.getSetupCeremony(registrationCeremonyId);
44
+ if (existing) {
45
+ if (existing.digestB64u !== digestB64u || existing.expectedOrigin !== input.expectedOrigin || existing.foundingWalletAuthorityId !== reservation.walletAuthorityId || existing.foundingDeviceId !== reservation.deviceId || existing.foundingWalletAuthMethodId !== reservation.walletAuthMethodId || existing.expiresAtMs !== expiresAtMs) return walletRegistrationSetupError("reservation_conflict", "Registration setup conflicts with its reservation");
46
+ if (admitted.lifecycle === "reserved") await dependencies.store.ensureSetupCeremony(existing);
47
+ return await setupResponseFromCeremony(input, existing);
48
+ }
49
+ if (admitted.lifecycle === "established") return walletRegistrationSetupError("registration_closed", "Completed registration setup snapshot is unavailable");
50
+ const branches = registrationIntentSignerBranches(intent);
51
+ if (!branches.ok) return walletRegistrationSetupError(branches.code, branches.message);
52
+ const ecdsaBranch = branches.value.evmFamilyEcdsa;
53
+ const nearEd25519Branch = branches.value.nearEd25519;
54
+ if (!ecdsaBranch && !nearEd25519Branch) return walletRegistrationSetupError("invalid_body", "registration signer branch is required");
55
+ const preparedContext = resolveRegistrationPreparedContextFromPlan({
56
+ signerPlan: branches.value.plan,
57
+ runtimePolicyScope,
58
+ signingRootId,
59
+ signingRootVersion
60
+ });
61
+ if (!preparedContext.ok) return walletRegistrationSetupError(preparedContext.code, preparedContext.message);
62
+ if (ecdsaBranch && !runtimePolicyScope) return walletRegistrationSetupError("invalid_body", "ECDSA registration requires an exact runtime policy scope");
63
+ const chainTargets = ecdsaBranch ? registrationPreparedContextEcdsaChainTargets(preparedContext.preparedContext) : null;
64
+ if (ecdsaBranch && !chainTargets) return walletRegistrationSetupError("invalid_body", "ECDSA chain targets are required");
65
+ const ecdsaPrepared = ecdsaBranch && chainTargets && runtimePolicyScope ? await buildD1EvmFamilyEcdsaRegistrationPrepare({
66
+ registrationPurpose: "wallet_registration",
67
+ registrationCeremonyId,
68
+ registrationPreparationId: registrationPreparationIdFromString(registrationPreparationId),
69
+ walletId: wallet.walletId,
70
+ signingRootId,
71
+ signingRootVersion,
72
+ chainTargets,
73
+ participantIds: [...ecdsaBranch.participantIds],
74
+ strictRegistration: dependencies.ecdsaStrictRegistration,
75
+ runtimePolicyScope
76
+ }) : null;
77
+ if (ecdsaPrepared && !ecdsaPrepared.ok) return walletRegistrationSetupError(ecdsaPrepared.code, ecdsaPrepared.message);
78
+ const storedBranches = [];
79
+ if (ecdsaPrepared?.ok && ecdsaBranch) storedBranches.push(buildStoredWalletRegistrationEvmFamilyEcdsaPreparedBranch({
80
+ branchKey: ecdsaBranch.branchKey,
81
+ ecdsa: {
82
+ kind: ecdsaPrepared.ecdsa.kind,
83
+ chainTargets: ecdsaPrepared.ecdsa.chainTargets,
84
+ prepare: ecdsaPrepared.ecdsa.prepare,
85
+ strictRegistration: ecdsaPrepared.ecdsa.strictRegistration,
86
+ strictRegistrationBindingJson: routerAbEcdsaStrictRegistrationFactsBindingJson(ecdsaPrepared.ecdsa.strictRegistration)
87
+ }
88
+ }));
89
+ const ceremony = {
90
+ registrationCeremonyId,
91
+ foundingWalletAuthorityId: registrationOperation.walletAuthorityId,
92
+ foundingDeviceId: registrationOperation.deviceId,
93
+ foundingWalletAuthMethodId: registrationOperation.walletAuthMethodId,
94
+ intent,
95
+ digestB64u,
96
+ signerPlan: branches.value.plan,
97
+ preparedContext: preparedContext.preparedContext,
98
+ orgId: normalizeOptionalTrimmedString(input.orgId) || "",
99
+ signingRootId,
100
+ signingRootVersion,
101
+ ...input.expectedOrigin ? { expectedOrigin: input.expectedOrigin } : {},
102
+ expiresAtMs,
103
+ authorityState: {
104
+ kind: "awaiting_proof",
105
+ authMethod: normalized.authMethod
106
+ },
107
+ signerState: {
108
+ kind: "signer_set_registration",
109
+ branches: storedBranches
110
+ }
111
+ };
112
+ return await setupResponseFromCeremony(input, await dependencies.store.reserveSetupCeremony(ceremony));
113
+ } catch (error) {
114
+ return walletRegistrationSetupError("internal", errorMessage(error) || "Failed to set up wallet registration");
115
+ }
116
+ }
117
+ async function setupResponseFromCeremony(input, ceremony) {
118
+ const { signedSetup } = await buildWalletRegistrationSetupSignature({
119
+ signer: input.signer,
120
+ ceremony,
121
+ expectedOrigin: input.expectedOrigin
122
+ });
123
+ const branches = registrationIntentSignerBranches(ceremony.intent);
124
+ if (!branches.ok) return branches;
125
+ const success = {
126
+ ok: true,
127
+ registrationCeremonyId: ceremony.registrationCeremonyId,
128
+ walletId: String(ceremony.intent.walletId),
129
+ walletAuthMethodId: ceremony.foundingWalletAuthMethodId,
130
+ registrationIntentDigestB64u: ceremony.digestB64u,
131
+ intent: ceremony.intent,
132
+ signedSetup
133
+ };
134
+ if (!branches.value.evmFamilyEcdsa) return {
135
+ ...success,
136
+ kind: "near_ed25519"
137
+ };
138
+ if (ceremony.signerState.kind !== "signer_set_registration") return walletRegistrationSetupError("invalid_state", "Registration setup signer state is invalid");
139
+ const ecdsa = findStoredWalletRegistrationEvmFamilyEcdsaBranch(ceremony.signerState);
140
+ if (!ecdsa || ecdsa.kind !== "evm_family_ecdsa_prepared") return walletRegistrationSetupError("invalid_state", "Registration setup snapshot is not prepared");
141
+ return {
142
+ ...success,
143
+ kind: branches.value.nearEd25519 ? "near_ed25519_and_evm_family_ecdsa" : "evm_family_ecdsa",
144
+ ecdsa: {
145
+ kind: ecdsa.derivationKind,
146
+ chainTargets: ecdsa.chainTargets,
147
+ prepare: ecdsa.prepare,
148
+ strictRegistration: ecdsa.strictRegistration
149
+ }
150
+ };
151
+ }
152
+ //#endregion
153
+ export { executeD1WalletRegistrationSetup };
154
+
155
+ //# sourceMappingURL=d1WalletRegistrationSetupExecution.js.map
@@ -4,12 +4,12 @@ import { base64UrlEncode } from "../../../../shared-ts/src/utils/base64.js";
4
4
  import { alphabetizeStringify, sha256BytesUtf8 } from "../../../../shared-ts/src/utils/digests.js";
5
5
  import { parseDigestB64u } from "../../../../shared-ts/src/utils/canonicalPrimitives.js";
6
6
  import "../../../../shared-ts/src/utils/encoders.js";
7
- import { parseImplicitNearAccountId, parseNamedNearAccountId } from "../../../../shared-ts/src/utils/near.js";
8
7
  import { routerAbMpcMaterialActivationRefFromWire } from "../../../../shared-ts/src/utils/routerAbNormalSigningIdentity.js";
9
8
  import { isEmailOtpWalletAuthAuthority, walletAuthAuthorityRef } from "../../../../shared-ts/src/utils/walletAuthAuthority.js";
10
9
  import { parseSessionOrigin, parseVerifiedOwnerProofId } from "../../../../authorization/domain.js";
11
10
  import { buildVerifiedOwnerProof, buildVerifiedWalletSessionEmailOtpFactorResult, buildVerifiedWalletSessionPasskeyFactorResult } from "../../../../authorization/factorEvidence.js";
12
11
  import { nearEd25519SigningKeyIdFromString, walletIdFromString } from "../../../../shared-ts/src/utils/registrationIds.js";
12
+ import { parseImplicitNearAccountId, parseNamedNearAccountId } from "../../../../shared-ts/src/utils/near.js";
13
13
  import { DEFAULT_WALLET_SESSION_TTL_MS } from "../../../../shared-ts/src/threshold/sessionPolicy.js";
14
14
  import { deriveThresholdEcdsaKeyHandle } from "../../../../shared-ts/src/utils/thresholdEcdsaKeyHandle.js";
15
15
  import { registrationEstablishedMintId } from "./walletRegistrationSessionCommitReceipt.js";
@@ -288,7 +288,6 @@ async function issueDirectRegistrationEstablishedEcdsaSession(input) {
288
288
  authorizationService: input.authorizationService,
289
289
  authorizationTenantId: input.authorizationTenantId,
290
290
  authority: input.authority,
291
- registrationCeremonyId: input.registrationCeremonyId,
292
291
  committed: directIssue
293
292
  });
294
293
  break;
@@ -372,7 +371,6 @@ async function issueDirectRegistrationEstablishedEd25519Session(input) {
372
371
  authorizationService: input.authorizationService,
373
372
  authorizationTenantId: input.authorizationTenantId,
374
373
  authority: input.authority,
375
- registrationCeremonyId: input.registrationCeremonyId,
376
374
  committed: directIssue
377
375
  });
378
376
  authorization = await input.authorizationService.refreshWalletSessionAuthorizationV2AuthorityProjection({
@@ -5,6 +5,7 @@ import { parseWalletAuthAuthority } from "../../../../shared-ts/src/utils/wallet
5
5
  import { parseWalletAuthMethodRecordV2 } from "../../../../shared-ts/src/utils/walletAuthMethodRecord.js";
6
6
  import { parseWalletAuthorityV1 } from "../../../../shared-ts/src/authorization/walletAuthority.js";
7
7
  import { parseSessionOrigin } from "../../../../authorization/domain.js";
8
+ import { hasExactKeys } from "../../../../shared-ts/src/utils/exactKeys.js";
8
9
  import { parseWalletCustodyRegistrationOutcome } from "../../../../shared-ts/src/passkey-custody/ceremonyCommitPayload.js";
9
10
  import "../../../../shared-ts/src/passkey-custody/index.js";
10
11
  //#region src/router/cloudflare/d1/registration/walletRegistrationSessionCommitReceipt.ts
@@ -466,10 +467,6 @@ function parsePositiveSafeInteger(value) {
466
467
  function parseNonNegativeSafeInteger(value) {
467
468
  return typeof value === "number" && Number.isSafeInteger(value) && value >= 0 ? value : null;
468
469
  }
469
- function hasExactKeys(record, expected) {
470
- const actual = Object.keys(record);
471
- return actual.length === expected.length && expected.every((key) => actual.includes(key));
472
- }
473
470
  function containsPersistedRegistrationCredential(value) {
474
471
  if (Array.isArray(value)) return value.some(containsPersistedRegistrationCredential);
475
472
  if (value === null || typeof value !== "object") return false;
@@ -1,5 +1,6 @@
1
- import { requireNonEmptyString } from "../../../../shared-ts/src/utils/validation.js";
2
- import { isD1DatabaseLike } from "../../../../storage/d1Sql.js";
1
+ import { isPlainObject, requireNonEmptyString } from "../../../../shared-ts/src/utils/validation.js";
2
+ import { normalizeRuntimePolicyScope } from "../../../../shared-ts/src/threshold/signingRootScope.js";
3
+ import { isD1DatabaseLike, parseD1JsonColumn } from "../../../../storage/d1Sql.js";
3
4
  import { abusePrincipalKey, runtimePolicyScopeKey } from "../../../domains/signingOperations/routerAbNormalSigningAdmissionCore.js";
4
5
  //#region src/router/cloudflare/d1/signingAdmission/d1RouterAbNormalSigningAdmissionStore.ts
5
6
  const ROUTER_AB_NORMAL_SIGNING_ADMISSION_TABLE = "router_ab_normal_signing_admission_records";
@@ -11,8 +12,12 @@ var CloudflareD1RouterAbNormalSigningAdmissionStore = class {
11
12
  this.now = options.now || Date.now;
12
13
  }
13
14
  async evaluatePolicy(input) {
15
+ if (input.curve === "ecdsa" && input.policyReadSource.kind === "credential_snapshot") {
16
+ const decision = input.policyReadSource.policyRead.resolve(this.database, this.storageNamespace, input);
17
+ if (decision) return decision;
18
+ }
14
19
  const scope = input.runtimePolicyScope;
15
- const row = await this.database.prepare(`WITH scope(namespace, org_id, project_id, env_id, signing_root_version,
20
+ return parsePolicyRow(await this.database.prepare(`WITH scope(namespace, org_id, project_id, env_id, signing_root_version,
16
21
  project_key, abuse_key) AS (VALUES (?1, ?2, ?3, ?4, ?5, ?6, ?7))
17
22
  SELECT project.record_key AS project_key, project.decision AS project_decision,
18
23
  project.retry_after_ms AS project_retry_after_ms,
@@ -28,53 +33,39 @@ var CloudflareD1RouterAbNormalSigningAdmissionStore = class {
28
33
  ON abuse.namespace = scope.namespace AND abuse.org_id = scope.org_id
29
34
  AND abuse.project_id = scope.project_id AND abuse.env_id = scope.env_id
30
35
  AND abuse.signing_root_version = scope.signing_root_version
31
- AND abuse.record_kind = 'abuse' AND abuse.record_key = scope.abuse_key`).bind(this.storageNamespace, scope.orgId, scope.projectId, scope.envId, scope.signingRootVersion, runtimePolicyScopeKey(scope), abusePrincipalKey(input)).first();
32
- if (!row) throw new Error("Router A/B admission policy snapshot is missing");
33
- if (row.project_key !== null) {
34
- const project = parseProjectPolicyDecision({
35
- decision: row.project_decision,
36
- retry_after_ms: row.project_retry_after_ms
37
- });
38
- if (project.kind === "rejected") return {
39
- kind: "project_policy_rejected",
40
- retryAfterMs: project.retryAfterMs
41
- };
42
- }
43
- if (row.abuse_key === null) return { kind: "allowed" };
44
- const abuse = parseAbuseDecision({
45
- decision: row.abuse_decision,
46
- retry_after_ms: row.abuse_retry_after_ms
47
- });
48
- return abuse.kind === "rejected" ? {
49
- kind: "abuse_rejected",
50
- retryAfterMs: abuse.retryAfterMs
51
- } : abuse;
36
+ AND abuse.record_kind = 'abuse' AND abuse.record_key = scope.abuse_key`).bind(this.storageNamespace, scope.orgId, scope.projectId, scope.envId, scope.signingRootVersion, runtimePolicyScopeKey(scope), abusePrincipalKey(input)).first());
52
37
  }
53
38
  async setProjectPolicy(scope, decision) {
54
39
  const normalized = normalizeProjectPolicyDecision(decision);
55
- await this.putDecision(scope, "project_policy", runtimePolicyScopeKey(scope), normalized.kind, normalized.kind === "rejected" ? normalized.retryAfterMs : null);
40
+ await this.putDecision(scope, {
41
+ kind: "project_policy",
42
+ walletId: null
43
+ }, runtimePolicyScopeKey(scope), normalized.kind, normalized.kind === "rejected" ? normalized.retryAfterMs : null);
56
44
  }
57
45
  async clearProjectPolicy(scope) {
58
46
  await this.deleteRecord(scope, "project_policy", runtimePolicyScopeKey(scope));
59
47
  }
60
48
  async setAbuseDecision(input, decision) {
61
49
  const normalized = normalizeAbuseDecision(decision);
62
- await this.putDecision(input.runtimePolicyScope, "abuse", abusePrincipalKey(input), normalized.kind, normalized.kind === "allowed" ? null : normalized.retryAfterMs);
50
+ await this.putDecision(input.runtimePolicyScope, {
51
+ kind: "abuse",
52
+ walletId: input.walletId
53
+ }, abusePrincipalKey(input), normalized.kind, normalized.kind === "allowed" ? null : normalized.retryAfterMs);
63
54
  }
64
55
  async clearAbuseDecision(input) {
65
56
  await this.deleteRecord(input.runtimePolicyScope, "abuse", abusePrincipalKey(input));
66
57
  }
67
- async putDecision(scope, kind, key, decision, retryAfterMs) {
58
+ async putDecision(scope, owner, key, decision, retryAfterMs) {
68
59
  await requireSuccessfulD1Write(this.database.prepare(`INSERT INTO ${ROUTER_AB_NORMAL_SIGNING_ADMISSION_TABLE} (
69
60
  namespace, org_id, project_id, env_id, signing_root_version,
70
- record_kind, record_key, decision, retry_after_ms, updated_at_ms
71
- ) VALUES (?1, ?2, ?3, ?4, ?5, ?6, ?7, ?8, ?9, ?10)
61
+ record_kind, record_key, decision, retry_after_ms, updated_at_ms, wallet_id
62
+ ) VALUES (?1, ?2, ?3, ?4, ?5, ?6, ?7, ?8, ?9, ?10, ?11)
72
63
  ON CONFLICT (
73
64
  namespace, org_id, project_id, env_id, signing_root_version, record_kind, record_key
74
65
  ) DO UPDATE SET
75
66
  decision = excluded.decision,
76
67
  retry_after_ms = excluded.retry_after_ms,
77
- updated_at_ms = excluded.updated_at_ms`).bind(this.storageNamespace, scope.orgId, scope.projectId, scope.envId, scope.signingRootVersion, kind, key, decision, retryAfterMs, this.now()));
68
+ updated_at_ms = excluded.updated_at_ms`).bind(this.storageNamespace, scope.orgId, scope.projectId, scope.envId, scope.signingRootVersion, owner.kind, key, decision, retryAfterMs, this.now(), owner.walletId));
78
69
  }
79
70
  async deleteRecord(scope, kind, key) {
80
71
  await requireSuccessfulD1Write(this.database.prepare(`DELETE FROM ${ROUTER_AB_NORMAL_SIGNING_ADMISSION_TABLE}
@@ -158,7 +149,116 @@ function requirePositiveInteger(label, value) {
158
149
  function assertNever(value) {
159
150
  throw new Error(`Unexpected Router A/B normal-signing admission branch: ${String(value)}`);
160
151
  }
152
+ function parsePolicyRow(row) {
153
+ if (!row) throw new Error("Router A/B admission policy snapshot is missing");
154
+ if (row.project_key !== null) {
155
+ const project = parseProjectPolicyDecision({
156
+ decision: row.project_decision,
157
+ retry_after_ms: row.project_retry_after_ms
158
+ });
159
+ if (project.kind === "rejected") return {
160
+ kind: "project_policy_rejected",
161
+ retryAfterMs: project.retryAfterMs
162
+ };
163
+ }
164
+ if (row.abuse_key === null) return { kind: "allowed" };
165
+ const abuse = parseAbuseDecision({
166
+ decision: row.abuse_decision,
167
+ retry_after_ms: row.abuse_retry_after_ms
168
+ });
169
+ return abuse.kind === "rejected" ? {
170
+ kind: "abuse_rejected",
171
+ retryAfterMs: abuse.retryAfterMs
172
+ } : abuse;
173
+ }
174
+ var D1EcdsaAdmissionPolicyRead = class D1EcdsaAdmissionPolicyRead {
175
+ #decisions;
176
+ constructor(database, namespace, walletId, activationId, decisions) {
177
+ this.database = database;
178
+ this.namespace = namespace;
179
+ this.walletId = walletId;
180
+ this.activationId = activationId;
181
+ this.#decisions = decisions;
182
+ }
183
+ static fromRows(database, namespace, walletId, activationId, rows) {
184
+ if (!Array.isArray(rows)) throw new Error("ECDSA policy candidates are invalid");
185
+ const decisions = /* @__PURE__ */ new Map();
186
+ for (const row of rows) {
187
+ if (!isPlainObject(row)) throw new Error("ECDSA policy candidate is invalid");
188
+ const key = runtimePolicyScopeKey(normalizeRuntimePolicyScope(parseD1JsonColumn(row.scope_json)));
189
+ if (decisions.has(key)) throw new Error("ECDSA policy scope is ambiguous");
190
+ try {
191
+ const decision = parsePolicyRow({
192
+ project_key: row.project_key,
193
+ project_decision: row.project_decision,
194
+ project_retry_after_ms: row.project_retry_after_ms,
195
+ abuse_key: row.abuse_key,
196
+ abuse_decision: row.abuse_decision,
197
+ abuse_retry_after_ms: row.abuse_retry_after_ms
198
+ });
199
+ decisions.set(key, {
200
+ ok: true,
201
+ decision
202
+ });
203
+ } catch (error) {
204
+ decisions.set(key, {
205
+ ok: false,
206
+ message: error instanceof Error ? error.message : "ECDSA policy read failed"
207
+ });
208
+ }
209
+ }
210
+ return new D1EcdsaAdmissionPolicyRead(database, namespace, walletId, activationId, decisions);
211
+ }
212
+ resolve(database, namespace, input) {
213
+ if (database !== this.database || namespace !== this.namespace) return null;
214
+ if (input.walletId !== this.walletId || input.materialActivationId !== this.activationId) throw new Error("ECDSA policy credential scope does not match");
215
+ const result = this.#decisions.get(runtimePolicyScopeKey(input.runtimePolicyScope));
216
+ if (!result) throw new Error("Verified ECDSA material policy scope is missing");
217
+ if (!result.ok) throw new Error(result.message);
218
+ return result.decision;
219
+ }
220
+ };
221
+ const ECDSA_CREDENTIAL_POLICY_PROJECTION = `
222
+ (WITH candidates AS (
223
+ SELECT DISTINCT json_extract(signer.record_json, '$.runtimePolicyScope') AS scope_json
224
+ FROM wallet_signers AS signer
225
+ WHERE signer.namespace = session.namespace AND signer.org_id = session.org_id
226
+ AND signer.project_id = session.project_id AND signer.env_id = session.env_id
227
+ AND signer.wallet_id = session.wallet_id AND signer.signer_family = 'ecdsa'
228
+ AND json_valid(signer.record_json)
229
+ ), scopes AS (
230
+ SELECT scope_json,
231
+ json_extract(scope_json, '$.orgId') AS org_id,
232
+ json_extract(scope_json, '$.projectId') AS project_id,
233
+ json_extract(scope_json, '$.envId') AS env_id,
234
+ json_extract(scope_json, '$.signingRootVersion') AS signing_root_version,
235
+ json_extract(scope_json, '$.orgId') || char(31) ||
236
+ json_extract(scope_json, '$.projectId') || char(31) ||
237
+ json_extract(scope_json, '$.envId') || char(31) ||
238
+ json_extract(scope_json, '$.signingRootVersion') AS project_key
239
+ FROM candidates
240
+ )
241
+ SELECT json_group_array(json_object(
242
+ 'scope_json', scopes.scope_json,
243
+ 'project_key', project.record_key, 'project_decision', project.decision,
244
+ 'project_retry_after_ms', project.retry_after_ms,
245
+ 'abuse_key', abuse.record_key, 'abuse_decision', abuse.decision,
246
+ 'abuse_retry_after_ms', abuse.retry_after_ms))
247
+ FROM scopes
248
+ LEFT JOIN router_ab_normal_signing_admission_records AS project
249
+ ON project.namespace = session.namespace AND project.org_id = scopes.org_id
250
+ AND project.project_id = scopes.project_id AND project.env_id = scopes.env_id
251
+ AND project.signing_root_version = scopes.signing_root_version
252
+ AND project.record_kind = 'project_policy' AND project.record_key = scopes.project_key
253
+ LEFT JOIN router_ab_normal_signing_admission_records AS abuse
254
+ ON abuse.namespace = session.namespace AND abuse.org_id = scopes.org_id
255
+ AND abuse.project_id = scopes.project_id AND abuse.env_id = scopes.env_id
256
+ AND abuse.signing_root_version = scopes.signing_root_version
257
+ AND abuse.record_kind = 'abuse'
258
+ AND abuse.record_key = scopes.project_key || char(31) || session.wallet_id || char(31) ||
259
+ 'material_activation:' || ? || char(31) || 'ecdsa'
260
+ ) AS ecdsa_policy_records_json,`;
161
261
  //#endregion
162
- export { CloudflareD1RouterAbNormalSigningAdmissionStore, createCloudflareD1RouterAbNormalSigningAdmissionStore };
262
+ export { CloudflareD1RouterAbNormalSigningAdmissionStore, D1EcdsaAdmissionPolicyRead, ECDSA_CREDENTIAL_POLICY_PROJECTION, createCloudflareD1RouterAbNormalSigningAdmissionStore };
163
263
 
164
264
  //# sourceMappingURL=d1RouterAbNormalSigningAdmissionStore.js.map
@@ -0,0 +1,68 @@
1
+ import { base64UrlEncode } from "../../../../shared-ts/src/utils/base64.js";
2
+ import { alphabetizeStringify, sha256BytesUtf8 } from "../../../../shared-ts/src/utils/digests.js";
3
+ import "../../../../shared-ts/src/utils/encoders.js";
4
+ import { isPlainObject } from "../../../../shared-ts/src/utils/validation.js";
5
+ import { parseRouterAbEd25519YaoRegistrationSideEffectRecordV1 } from "../../../domains/ed25519Yao/registration/routerAbEd25519YaoRegistrationSideEffectBoundary.js";
6
+ import { parseD1WalletAddSignerFinalizeTerminalResponse, parseWalletIdForIntent } from "../registration/d1RegistrationCeremonyRecords.js";
7
+ //#region src/router/cloudflare/d1/wallet/d1WalletAddSignerFinalizeRecord.ts
8
+ function parseWalletAddSignerFinalizePrepared(raw) {
9
+ if (!isPlainObject(raw)) return null;
10
+ const record = raw;
11
+ const walletId = parseWalletIdForIntent(record.walletId);
12
+ if (!walletId) return null;
13
+ if (record.kind === "d1_wallet_add_signer_finalize_ed25519_prepared_v1") {
14
+ const finalizingAtMs = record.finalizingAtMs;
15
+ if (typeof finalizingAtMs !== "number" || !Number.isSafeInteger(finalizingAtMs) || finalizingAtMs <= 0) return null;
16
+ return {
17
+ kind: "d1_wallet_add_signer_finalize_ed25519_prepared_v1",
18
+ walletId,
19
+ finalizingAtMs
20
+ };
21
+ }
22
+ if (record.kind !== "d1_wallet_add_signer_finalize_ecdsa_prepared_v1") return null;
23
+ const signerWriteAtMs = record.signerWriteAtMs;
24
+ return typeof signerWriteAtMs === "number" && Number.isSafeInteger(signerWriteAtMs) && signerWriteAtMs > 0 ? {
25
+ kind: "d1_wallet_add_signer_finalize_ecdsa_prepared_v1",
26
+ walletId,
27
+ signerWriteAtMs
28
+ } : null;
29
+ }
30
+ function parseD1WalletAddSignerFinalizeSideEffectRecord(raw) {
31
+ const record = parseRouterAbEd25519YaoRegistrationSideEffectRecordV1(raw, {
32
+ operation: "add_signer_finalize",
33
+ parsePrepared: parseWalletAddSignerFinalizePrepared,
34
+ parseResponse: parseD1WalletAddSignerFinalizeTerminalResponse
35
+ });
36
+ if (record?.kind === "router_ab_ed25519_yao_registration_side_effect_completion_v1" && record.response.ok && record.response.walletId !== record.prepared.walletId) return null;
37
+ return record;
38
+ }
39
+ async function fingerprintD1WalletAddSignerFinalizePrepared(prepared) {
40
+ return base64UrlEncode(await sha256BytesUtf8(alphabetizeStringify(prepared)));
41
+ }
42
+ async function returnD1WalletAddSignerFinalizePrepared(prepared) {
43
+ return prepared;
44
+ }
45
+ async function rejectUnexpectedWalletAddSignerFinalizePreparation() {
46
+ throw new Error("persisted add-signer finalize claim disappeared during reconciliation");
47
+ }
48
+ function buildD1WalletAddSignerFinalizePrepared(input) {
49
+ if (input.request.kind === "evm_family_ecdsa") return {
50
+ walletId: input.ceremony.intent.walletId,
51
+ kind: "d1_wallet_add_signer_finalize_ecdsa_prepared_v1",
52
+ signerWriteAtMs: input.nowMs
53
+ };
54
+ if (input.ceremony.signerState.kind === "near_ed25519_yao_add_signer_finalizing") return {
55
+ walletId: input.ceremony.intent.walletId,
56
+ kind: "d1_wallet_add_signer_finalize_ed25519_prepared_v1",
57
+ finalizingAtMs: input.ceremony.signerState.finalizingAtMs
58
+ };
59
+ return {
60
+ walletId: input.ceremony.intent.walletId,
61
+ kind: "d1_wallet_add_signer_finalize_ed25519_prepared_v1",
62
+ finalizingAtMs: input.nowMs
63
+ };
64
+ }
65
+ //#endregion
66
+ export { buildD1WalletAddSignerFinalizePrepared, fingerprintD1WalletAddSignerFinalizePrepared, parseD1WalletAddSignerFinalizeSideEffectRecord, rejectUnexpectedWalletAddSignerFinalizePreparation, returnD1WalletAddSignerFinalizePrepared };
67
+
68
+ //# sourceMappingURL=d1WalletAddSignerFinalizeRecord.js.map
@@ -20,9 +20,10 @@ import { buildRouterAbEd25519YaoAddSignerAdmissionRequestV1, createRouterAbEd255
20
20
  import { parseRouterAbEd25519YaoRegistrationSideEffectRecordV1, runRouterAbEd25519YaoRegistrationSideEffectV1, throwIfRouterAbEd25519YaoRetryableSideEffectFailureV1 } from "../../../domains/ed25519Yao/registration/routerAbEd25519YaoRegistrationSideEffectBoundary.js";
21
21
  import { buildYaoEd25519WalletSignerRecord, ed25519NearPublicKeyFromBytes, implicitNearAccountIdFromEd25519PublicKeyBytes } from "../ed25519Yao/d1Ed25519YaoWalletSigner.js";
22
22
  import { routerAbEcdsaStrictRegistrationRequestMatchesFacts } from "../../../domains/ecdsa/routerAbEcdsaStrictRegistration.js";
23
- import { buildD1EcdsaWalletKeysFromBootstrap, buildD1WalletEcdsaSignerRecords, normalizeThresholdEcdsaChainTargets, parseD1AddSignerIntent, parseD1RuntimePolicyScope, parseD1StoredAddSignerAuth, parseD1StoredAddSignerIntent, parseD1StoredWalletAddSignerCeremony, parseD1WalletAddSignerFinalizeTerminalResponse, parseWalletIdForIntent, positiveIntegerArraysEqual, runtimePolicyScopeMatches, thresholdEcdsaChainTargetsEqual } from "../registration/d1RegistrationCeremonyRecords.js";
24
- import { buildD1EvmFamilyEcdsaRegistrationPrepare } from "../registration/d1EvmFamilyEcdsaRegistrationBranch.js";
23
+ import { buildD1EcdsaWalletKeysFromBootstrap, buildD1WalletEcdsaSignerRecords, normalizeThresholdEcdsaChainTargets, parseD1AddSignerIntent, parseD1RuntimePolicyScope, parseD1StoredAddSignerAuth, parseD1StoredAddSignerIntent, parseD1StoredWalletAddSignerCeremony, parseWalletIdForIntent, positiveIntegerArraysEqual, runtimePolicyScopeMatches, thresholdEcdsaChainTargetsEqual } from "../registration/d1RegistrationCeremonyRecords.js";
24
+ import { buildD1WalletAddSignerFinalizePrepared, fingerprintD1WalletAddSignerFinalizePrepared, rejectUnexpectedWalletAddSignerFinalizePreparation, returnD1WalletAddSignerFinalizePrepared } from "./d1WalletAddSignerFinalizeRecord.js";
25
25
  import { routerAbEd25519YaoLifecycleDecisionLookupV1, routerAbEd25519YaoLifecycleDecisionV1 } from "../../../domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoLifecycleDecision.js";
26
+ import { buildD1EvmFamilyEcdsaRegistrationPrepare } from "../registration/d1EvmFamilyEcdsaRegistrationBranch.js";
26
27
  import { buildActivatedEcdsaFamilyBootstrap, ecdsaStrictRegistrationAuthority, exactEcdsaParticipantPair } from "../registration/d1WalletRegistrationService.js";
27
28
  import { computeWalletAddSignerEcdsaActivationRequestDigestB64u } from "../../../../shared-ts/src/utils/walletAddSignerActivation.js";
28
29
  //#region src/router/cloudflare/d1/wallet/d1WalletAddSignerService.ts
@@ -49,7 +50,7 @@ function sameEcdsaDerivationPublicIdentityV1(left, right) {
49
50
  return left.derivationClientSharePublicKey33B64u === right.derivationClientSharePublicKey33B64u && left.relayerPublicKey33B64u === right.relayerPublicKey33B64u && left.groupPublicKey33B64u === right.groupPublicKey33B64u && left.ethereumAddress === right.ethereumAddress;
50
51
  }
51
52
  function sameEcdsaDerivationServerBootstrapV1(left, right) {
52
- return left.formatVersion === right.formatVersion && left.walletId === right.walletId && left.evmFamilySigningKeySlotId === right.evmFamilySigningKeySlotId && left.ecdsaThresholdKeyId === right.ecdsaThresholdKeyId && left.relayerKeyId === right.relayerKeyId && left.applicationBindingDigestB64u === right.applicationBindingDigestB64u && left.contextBinding32B64u === right.contextBinding32B64u && sameEcdsaDerivationPublicIdentityV1(left.publicIdentity, right.publicIdentity) && left.clientShareRetryCounter === right.clientShareRetryCounter && left.relayerShareRetryCounter === right.relayerShareRetryCounter && left.publicTranscriptDigest32B64u === right.publicTranscriptDigest32B64u && left.keyHandle === right.keyHandle && left.signingRootId === right.signingRootId && left.signingRootVersion === right.signingRootVersion && left.thresholdEcdsaPublicKeyB64u === right.thresholdEcdsaPublicKeyB64u && left.ethereumAddress === right.ethereumAddress && left.relayerVerifyingShareB64u === right.relayerVerifyingShareB64u && positiveIntegerArraysEqual(left.participantIds, right.participantIds) && left.thresholdSessionId === right.thresholdSessionId && left.activationEpoch === right.activationEpoch && left.expiresAtMs === right.expiresAtMs && left.expiresAt === right.expiresAt && left.remainingUses === right.remainingUses && sameRouterAbEcdsaDerivationNormalSigningStateV1(left.routerAbEcdsaDerivationNormalSigning, right.routerAbEcdsaDerivationNormalSigning);
53
+ return left.formatVersion === right.formatVersion && left.walletId === right.walletId && left.evmFamilySigningKeySlotId === right.evmFamilySigningKeySlotId && left.ecdsaThresholdKeyId === right.ecdsaThresholdKeyId && left.relayerKeyId === right.relayerKeyId && left.applicationBindingDigestB64u === right.applicationBindingDigestB64u && left.contextBinding32B64u === right.contextBinding32B64u && sameEcdsaDerivationPublicIdentityV1(left.publicIdentity, right.publicIdentity) && left.clientShareRetryCounter === right.clientShareRetryCounter && left.relayerShareRetryCounter === right.relayerShareRetryCounter && left.keyHandle === right.keyHandle && left.signingRootId === right.signingRootId && left.signingRootVersion === right.signingRootVersion && left.thresholdEcdsaPublicKeyB64u === right.thresholdEcdsaPublicKeyB64u && left.ethereumAddress === right.ethereumAddress && left.relayerVerifyingShareB64u === right.relayerVerifyingShareB64u && positiveIntegerArraysEqual(left.participantIds, right.participantIds) && left.thresholdSessionId === right.thresholdSessionId && left.activationEpoch === right.activationEpoch && left.expiresAtMs === right.expiresAtMs && left.expiresAt === right.expiresAt && left.remainingUses === right.remainingUses && sameRouterAbEcdsaDerivationNormalSigningStateV1(left.routerAbEcdsaDerivationNormalSigning, right.routerAbEcdsaDerivationNormalSigning);
53
54
  }
54
55
  function walletAddSignerStartResponseFromCeremony(ceremony) {
55
56
  const base = {
@@ -242,54 +243,6 @@ async function rejectUnexpectedWalletAddSignerStartPreparation() {
242
243
  async function fingerprintD1WalletAddSignerStartPrepared(prepared) {
243
244
  return base64UrlEncode(await sha256BytesUtf8(alphabetizeStringify(prepared)));
244
245
  }
245
- function parseWalletAddSignerFinalizePrepared(raw) {
246
- const record = addSignerRecordValue(raw);
247
- if (!record) return null;
248
- if (record.kind === "d1_wallet_add_signer_finalize_ed25519_prepared_v1") {
249
- const finalizingAtMs = record.finalizingAtMs;
250
- if (typeof finalizingAtMs !== "number" || !Number.isSafeInteger(finalizingAtMs) || finalizingAtMs <= 0) return null;
251
- return {
252
- kind: "d1_wallet_add_signer_finalize_ed25519_prepared_v1",
253
- finalizingAtMs
254
- };
255
- }
256
- if (record.kind !== "d1_wallet_add_signer_finalize_ecdsa_prepared_v1") return null;
257
- const signerWriteAtMs = record.signerWriteAtMs;
258
- return typeof signerWriteAtMs === "number" && Number.isSafeInteger(signerWriteAtMs) && signerWriteAtMs > 0 ? {
259
- kind: "d1_wallet_add_signer_finalize_ecdsa_prepared_v1",
260
- signerWriteAtMs
261
- } : null;
262
- }
263
- function parseD1WalletAddSignerFinalizeSideEffectRecord(raw) {
264
- return parseRouterAbEd25519YaoRegistrationSideEffectRecordV1(raw, {
265
- operation: "add_signer_finalize",
266
- parsePrepared: parseWalletAddSignerFinalizePrepared,
267
- parseResponse: parseD1WalletAddSignerFinalizeTerminalResponse
268
- });
269
- }
270
- async function fingerprintD1WalletAddSignerFinalizePrepared(prepared) {
271
- return base64UrlEncode(await sha256BytesUtf8(alphabetizeStringify(prepared)));
272
- }
273
- async function returnD1WalletAddSignerFinalizePrepared(prepared) {
274
- return prepared;
275
- }
276
- async function rejectUnexpectedWalletAddSignerFinalizePreparation() {
277
- throw new Error("persisted add-signer finalize claim disappeared during reconciliation");
278
- }
279
- function buildD1WalletAddSignerFinalizePrepared(input) {
280
- if (input.request.kind === "evm_family_ecdsa") return {
281
- kind: "d1_wallet_add_signer_finalize_ecdsa_prepared_v1",
282
- signerWriteAtMs: input.nowMs
283
- };
284
- if (input.ceremony.signerState.kind === "near_ed25519_yao_add_signer_finalizing") return {
285
- kind: "d1_wallet_add_signer_finalize_ed25519_prepared_v1",
286
- finalizingAtMs: input.ceremony.signerState.finalizingAtMs
287
- };
288
- return {
289
- kind: "d1_wallet_add_signer_finalize_ed25519_prepared_v1",
290
- finalizingAtMs: input.nowMs
291
- };
292
- }
293
246
  function rejectedWalletAddSignerStartTerminal(code, message) {
294
247
  return {
295
248
  kind: "d1_wallet_add_signer_start_rejected_v1",
@@ -400,7 +353,6 @@ function storedEcdsaAddSignerBootstrap(bootstrap) {
400
353
  publicIdentity: bootstrap.publicIdentity,
401
354
  clientShareRetryCounter: bootstrap.clientShareRetryCounter,
402
355
  relayerShareRetryCounter: bootstrap.relayerShareRetryCounter,
403
- publicTranscriptDigest32B64u: bootstrap.publicTranscriptDigest32B64u,
404
356
  keyHandle: bootstrap.keyHandle,
405
357
  signingRootId: bootstrap.signingRootId,
406
358
  signingRootVersion: bootstrap.signingRootVersion,
@@ -1230,7 +1182,7 @@ var CloudflareD1WalletAddSignerService = class {
1230
1182
  idempotencyKey
1231
1183
  }) || await store.getAddSignerFinalizeReplayForCeremony(finalizeRequest.addSignerCeremonyId);
1232
1184
  if (replay) {
1233
- if (!sameWalletAddSignerFinalizeRequestV1(replay.request, finalizeRequest)) return {
1185
+ if (replay.response.walletId !== prepared.walletId || !sameWalletAddSignerFinalizeRequestV1(replay.request, finalizeRequest)) return {
1234
1186
  ok: false,
1235
1187
  code: "idempotency_conflict",
1236
1188
  message: "idempotencyKey is already bound to another add-signer finalize request"
@@ -1243,6 +1195,7 @@ var CloudflareD1WalletAddSignerService = class {
1243
1195
  code: "not_found",
1244
1196
  message: "add-signer ceremony not found"
1245
1197
  };
1198
+ if (ceremony.intent.walletId !== prepared.walletId) throw new Error("Add-signer finalize claim belongs to another wallet");
1246
1199
  if (finalizeRequest.kind === "near_ed25519") {
1247
1200
  if (prepared.kind !== "d1_wallet_add_signer_finalize_ed25519_prepared_v1") throw new Error("Ed25519 add-signer finalize claim changed branch");
1248
1201
  if (ceremony.intent.signerSelection.mode !== "ed25519" || ceremony.auth.kind !== "webauthn_assertion") return {
@@ -1530,6 +1483,6 @@ var CloudflareD1WalletAddSignerService = class {
1530
1483
  }
1531
1484
  };
1532
1485
  //#endregion
1533
- export { CloudflareD1WalletAddSignerService, parseD1WalletAddSignerFinalizeSideEffectRecord, parseD1WalletAddSignerStartSideEffectRecord };
1486
+ export { CloudflareD1WalletAddSignerService, parseD1WalletAddSignerStartSideEffectRecord };
1534
1487
 
1535
1488
  //# sourceMappingURL=d1WalletAddSignerService.js.map