@seams/wallet-server 0.8.0 → 0.9.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 (369) hide show
  1. package/THIRD_PARTY_NOTICES.md +7 -1
  2. package/artifact-manifest.json +196 -41
  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/migrations/deriver-a/0019_wallet_object_addresses.sql +10 -0
  22. package/cloudflare-router-ab/migrations/deriver-b/0019_wallet_object_addresses.sql +10 -0
  23. package/cloudflare-router-ab/scripts/prepare-local-runtime-config.mjs +3 -117
  24. package/cloudflare-router-ab/wrangler.deriver-a.toml +0 -8
  25. package/cloudflare-router-ab/wrangler.deriver-b.toml +24 -8
  26. package/cloudflare-router-ab/wrangler.router.toml +0 -2
  27. package/cloudflare-router-ab/wrangler.signing-worker.toml +29 -0
  28. package/dist/esm/authorization/domain.js +3 -2
  29. package/dist/esm/authorization/ed25519WalletSessionAdmission.js +0 -0
  30. package/dist/esm/authorization/service.js +64 -36
  31. package/dist/esm/cloud-host.js +24 -19
  32. package/dist/esm/core/EmailOtpRecords.js +29 -6
  33. package/dist/esm/core/ThresholdService/routerAb/ecdsaDerivationPoolFillHandlers.js +2 -0
  34. package/dist/esm/core/ThresholdService/routerAb/ecdsaDerivationPresignBridge.js +10 -0
  35. package/dist/esm/core/ThresholdService/routerAb/internalServiceHttp.js +1 -0
  36. package/dist/esm/core/ThresholdService/validation.js +2 -2
  37. package/dist/esm/core/authService/nearPrivateKeySigning.js +1 -1
  38. package/dist/esm/core/authService/webauthn.js +1 -1
  39. package/dist/esm/core/d1Ed25519SignerRead.js +55 -0
  40. package/dist/esm/core/d1WalletStore.js +14 -11
  41. package/dist/esm/core/deviceLinking/linkedDeviceEmailOtpGrant.js +2 -2
  42. package/dist/esm/core/deviceLinking/linkedDeviceManagement.js +1 -1
  43. package/dist/esm/core/deviceLinking/linkedDeviceSessionRecord.js +2 -2
  44. package/dist/esm/core/emailOtpD1Statements.js +1 -0
  45. package/dist/esm/core/nearRelayerAccountProvisioning.js +1 -1
  46. package/dist/esm/core/routerAbSigning/RouterAbEcdsaPresignRuntime.js +4 -0
  47. package/dist/esm/core/signingLanes/WalletExecutionLaneProjection.js +1 -1
  48. package/dist/esm/core/signingMaterial/ordinaryInactiveSignerMaterialReservation.js +1 -0
  49. package/dist/esm/hosted-wallet-gateway.js +93 -10
  50. package/dist/esm/localHostedWalletGatewayHandler.js +12 -9
  51. package/dist/esm/localIntendedYaoSigningFault.js +2 -30
  52. package/dist/esm/localRegistrationSetupAuthority.js +8 -1
  53. package/dist/esm/router/auth/commonRouterUtils.js +17 -10
  54. package/dist/esm/router/auth/routerApiCredentialAuth.js +26 -7
  55. package/dist/esm/router/auth/walletRegistrationContext.js +49 -0
  56. package/dist/esm/router/auth/webAuthnCredentialCodecs.js +1 -1
  57. package/dist/esm/router/cloudflare/d1/auth/d1AuthorizationAssembly.js +4 -3
  58. package/dist/esm/router/cloudflare/d1/auth/d1AuthorizedOperationRouteService.js +2 -0
  59. package/dist/esm/router/cloudflare/d1/auth/d1EmailOtpRouteService.js +25 -0
  60. package/dist/esm/router/cloudflare/d1/auth/d1RouterApiAuthConfig.js +14 -6
  61. package/dist/esm/router/cloudflare/d1/auth/d1RouterApiAuthService.js +44 -40
  62. package/dist/esm/router/cloudflare/d1/auth/walletSessionCredentialReaders.js +17 -1
  63. package/dist/esm/router/cloudflare/d1/authorization/authorizedOperationStatements.js +35 -5
  64. package/dist/esm/router/cloudflare/d1/authorization/d1AuthorizationStore.js +258 -99
  65. package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceAuthorityInstallService.js +31 -4
  66. package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceOwnerAuthorizationProvider.js +1 -1
  67. package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceRequestProofNonceStore.js +1 -1
  68. package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceSessionRecords.js +1 -1
  69. package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceTargetCredentialProvider.js +1 -1
  70. package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceTargetPlanner.js +1 -1
  71. package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceVerifiedLinkBuilder.js +1 -1
  72. package/dist/esm/router/cloudflare/d1/ed25519Yao/d1Ed25519YaoLifecycleDecisionStore.js +11 -2
  73. package/dist/esm/router/cloudflare/d1/ed25519Yao/d1Ed25519YaoProductRegistrationPartitionedStateStore.js +100 -10
  74. package/dist/esm/router/cloudflare/d1/ed25519Yao/d1Ed25519YaoStateWriteFence.js +92 -0
  75. package/dist/esm/router/cloudflare/d1/ed25519Yao/d1WalletCeremonyActivity.js +77 -0
  76. package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpChallengeIssuer.js +14 -8
  77. package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpChallengeStore.js +14 -8
  78. package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpChallengeVerifier.js +3 -1
  79. package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpRateLimitStore.js +58 -38
  80. package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpRecords.js +27 -20
  81. package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpRecoveryService.js +1 -0
  82. package/dist/esm/router/cloudflare/d1/emailOtp/d1GoogleEmailOtpSessionResolver.js +1 -0
  83. package/dist/esm/router/cloudflare/d1/oidc/d1OidcBoundary.js +1 -1
  84. package/dist/esm/router/cloudflare/d1/passkeyCustody/d1WalletCustodyCommitStore.js +18 -7
  85. package/dist/esm/router/cloudflare/d1/registration/d1RegistrationCeremonyRecordStore.js +75 -14
  86. package/dist/esm/router/cloudflare/d1/registration/d1RegistrationCeremonyRecords.js +1 -1
  87. package/dist/esm/router/cloudflare/d1/registration/d1RegistrationCeremonyStore.js +49 -29
  88. package/dist/esm/router/cloudflare/d1/registration/d1RegistrationSessionTransaction.js +28 -0
  89. package/dist/esm/router/cloudflare/d1/registration/d1RegistrationSetupSupport.js +11 -1
  90. package/dist/esm/router/cloudflare/d1/registration/d1WalletExecutionAuthority.js +168 -0
  91. package/dist/esm/router/cloudflare/d1/registration/d1WalletOperationStore.js +53 -0
  92. package/dist/esm/router/cloudflare/d1/registration/d1WalletRegistrationCommitStore.js +83 -42
  93. package/dist/esm/router/cloudflare/d1/registration/d1WalletRegistrationInitialSession.js +33 -0
  94. package/dist/esm/router/cloudflare/d1/registration/d1WalletRegistrationPreparation.js +16 -0
  95. package/dist/esm/router/cloudflare/d1/registration/d1WalletRegistrationRead.js +58 -0
  96. package/dist/esm/router/cloudflare/d1/registration/d1WalletRegistrationService.js +439 -500
  97. package/dist/esm/router/cloudflare/d1/registration/d1WalletRegistrationSetup.js +1 -1
  98. package/dist/esm/router/cloudflare/d1/registration/d1WalletRegistrationSetupExecution.js +104 -90
  99. package/dist/esm/router/cloudflare/d1/registration/walletRegistrationEstablishedSessionIssuer.js +78 -44
  100. package/dist/esm/router/cloudflare/d1/registration/walletRegistrationSessionCommitReceipt.js +11 -35
  101. package/dist/esm/router/cloudflare/d1/signingAdmission/d1RouterAbNormalSigningAdmissionStore.js +98 -39
  102. package/dist/esm/router/cloudflare/d1/versionedJson/d1VersionedJsonRecordStore.js +12 -9
  103. package/dist/esm/router/cloudflare/d1/wallet/authorizationSnapshotLayout.js +168 -0
  104. package/dist/esm/router/cloudflare/d1/wallet/d1WalletAddSignerFinalizeRecord.js +1 -1
  105. package/dist/esm/router/cloudflare/d1/wallet/d1WalletAddSignerService.js +15 -6
  106. package/dist/esm/router/cloudflare/d1/wallet/d1WalletAuthMethodService.js +3 -40
  107. package/dist/esm/router/cloudflare/d1/wallet/d1WalletAuthorityStore.js +54 -1
  108. package/dist/esm/router/cloudflare/d1/wallet/d1WalletAuthorizationCleanup.js +157 -0
  109. package/dist/esm/router/cloudflare/d1/wallet/d1WalletAuthorizationFreeze.js +56 -0
  110. package/dist/esm/router/cloudflare/d1/wallet/d1WalletAuthorizationHistory.js +238 -0
  111. package/dist/esm/router/cloudflare/d1/wallet/d1WalletAuthorizationIntake.js +287 -0
  112. package/dist/esm/router/cloudflare/d1/wallet/d1WalletAuthorizationSnapshot.js +295 -0
  113. package/dist/esm/router/cloudflare/d1/wallet/d1WalletRelocationApprovals.js +140 -0
  114. package/dist/esm/router/cloudflare/d1/wallet/d1WalletRelocationChallenges.js +170 -0
  115. package/dist/esm/router/cloudflare/d1/wallet/d1WalletRelocationEmailOtp.js +60 -0
  116. package/dist/esm/router/cloudflare/d1/wallet/d1WalletRelocationOwner.js +33 -0
  117. package/dist/esm/router/cloudflare/d1/wallet/d1WalletRelocationOwnerRequest.js +74 -0
  118. package/dist/esm/router/cloudflare/d1/wallet/d1WalletRelocationPasskey.js +77 -0
  119. package/dist/esm/router/cloudflare/d1/wallet/d1WalletRelocationReadAccess.js +37 -0
  120. package/dist/esm/router/cloudflare/d1/wallet/d1WalletRelocationSessions.js +97 -0
  121. package/dist/esm/router/cloudflare/d1/wallet/d1WalletRelocationWriteBlock.js +133 -0
  122. package/dist/esm/router/cloudflare/d1/walletObjectAddresses.js +47 -0
  123. package/dist/esm/router/cloudflare/d1/webauthn/d1WebAuthnAuthService.js +1 -1
  124. package/dist/esm/router/cloudflare/runtime/routerAbServiceBindings.js +32 -1
  125. package/dist/esm/router/cloudflare/runtime/staticWalletConsoleBinding.js +20 -8
  126. package/dist/esm/router/cloudflare/runtime/walletAuthorizationRelocationRoutes.js +488 -0
  127. package/dist/esm/router/cloudflare/runtime/walletConsoleOps.js +1 -1
  128. package/dist/esm/router/cloudflare/runtime/walletConsoleOpsClient.js +26 -6
  129. package/dist/esm/router/cloudflare/runtime/walletControlOps.js +3 -0
  130. package/dist/esm/router/cloudflare/runtime/walletGateway.js +1 -1
  131. package/dist/esm/router/cloudflare/runtime/walletObjectAddresses.js +105 -0
  132. package/dist/esm/router/cloudflare/runtime/walletPlacementRoutes.js +339 -0
  133. package/dist/esm/router/cloudflare/runtime/walletRelocationDeriver.js +244 -0
  134. package/dist/esm/router/cloudflare/runtime/walletRelocationEcdsa.js +212 -0
  135. package/dist/esm/router/cloudflare/runtime/walletRelocationEd25519.js +172 -0
  136. package/dist/esm/router/cloudflare/runtime/walletRelocationOps.js +183 -0
  137. package/dist/esm/router/cloudflare/runtime/walletRelocationPresign.js +185 -0
  138. package/dist/esm/router/cloudflare/runtime/walletRelocationSource.js +221 -0
  139. package/dist/esm/router/cloudflare/signingLanes/cloudflareOrdinaryInactiveSignerMaterialReservation.js +30 -8
  140. package/dist/esm/router/cloudflare-adaptor.js +8 -8
  141. package/dist/esm/router/cloudflare.js +34115 -32240
  142. package/dist/esm/router/domains/ecdsa/routerAbEcdsaStrictRegistration.js +35 -9
  143. package/dist/esm/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoCapabilityCommit.js +42 -0
  144. package/dist/esm/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistration.js +32 -6
  145. package/dist/esm/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistrationPartitionedStateStore.js +61 -1
  146. package/dist/esm/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistrationPersistence.js +70 -3
  147. package/dist/esm/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistrationRequestScopedRuntime.js +59 -87
  148. package/dist/esm/router/domains/ed25519Yao/export/routerAbEd25519YaoExport.js +52 -22
  149. package/dist/esm/router/domains/ed25519Yao/export/routerAbEd25519YaoExportRequestScopedCloudflare.js +10 -7
  150. package/dist/esm/router/domains/ed25519Yao/recovery/routerAbEd25519YaoRecovery.js +108 -78
  151. package/dist/esm/router/domains/ed25519Yao/recovery/routerAbEd25519YaoRecoveryRequestScopedCloudflare.js +19 -5
  152. package/dist/esm/router/domains/ed25519Yao/recovery/routerAbEd25519YaoRecoveryWalletSessionAuthorization.js +71 -22
  153. package/dist/esm/router/domains/ed25519Yao/registration/routerAbEd25519YaoHttpRegistrationBackend.js +37 -25
  154. package/dist/esm/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistration.js +3 -3
  155. package/dist/esm/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistrationExecutionRecord.js +2 -1
  156. package/dist/esm/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistrationIntentAuthorization.js +24 -3
  157. package/dist/esm/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistrationRequestScopedCloudflare.js +4 -3
  158. package/dist/esm/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistrationSideEffectBoundary.js +20 -7
  159. package/dist/esm/router/domains/ed25519Yao/routerAbEd25519YaoGatewayEnvelope.js +7 -1
  160. package/dist/esm/router/domains/emailOtp/emailOtpRouteHandlers.js +2 -2
  161. package/dist/esm/router/domains/passkeyCustody/passkeyCustodyEnvelopeRetrieval.js +1 -1
  162. package/dist/esm/router/domains/passkeyCustody/registrationCustodyOutcome.js +34 -18
  163. package/dist/esm/router/domains/passkeyCustody/walletCustodyRegistrationAdmission.js +2 -2
  164. package/dist/esm/router/domains/passkeyCustody/walletCustodyRegistrationCommit.js +16 -6
  165. package/dist/esm/router/domains/signingOperations/authorizedOperationWire.js +73 -0
  166. package/dist/esm/router/domains/signingOperations/ecdsaSigningResponse.js +31 -0
  167. package/dist/esm/router/domains/signingOperations/ed25519AuthorizedOperationReceipt.js +1 -1
  168. package/dist/esm/router/domains/signingOperations/routerAbEcdsaDerivationNormalSigningRoute.js +2 -1
  169. package/dist/esm/router/domains/signingOperations/routerAbEd25519NormalSigningRoute.js +31 -121
  170. package/dist/esm/router/domains/signingOperations/routerAbNormalSigningAdmission.js +2 -93
  171. package/dist/esm/router/domains/signingOperations/routerAbPrivateSigningWorker.js +1 -1
  172. package/dist/esm/router/domains/signingOperations/signingPrepareSession.js +33 -0
  173. package/dist/esm/router/domains/walletRegistration/registrationSessionSeal.js +121 -0
  174. package/dist/esm/router/domains/walletRegistration/walletRegistrationReservation.js +4 -4
  175. package/dist/esm/router/domains/walletRegistration/walletRegistrationRoutes.js +46 -157
  176. package/dist/esm/router/domains/walletRegistration/walletRegistrationSetupPayload.js +1 -1
  177. package/dist/esm/router/express.js +764 -894
  178. package/dist/esm/router/framework/http.js +2 -1
  179. package/dist/esm/router/transport/fetch/createFetchRouter.js +2 -2
  180. package/dist/esm/router/transport/fetch/routes/auth.js +1 -1
  181. package/dist/esm/router/transport/fetch/routes/deviceLinking.js +3 -3
  182. package/dist/esm/router/transport/fetch/routes/deviceLinkingOwnerAuthorization.js +2 -2
  183. package/dist/esm/router/transport/fetch/routes/ed25519AuthorizedOperationRevalidation.js +65 -0
  184. package/dist/esm/router/transport/fetch/routes/normalSigningRouterProxy.js +13 -3
  185. package/dist/esm/router/transport/fetch/routes/passkeyCustody.js +3 -3
  186. package/dist/esm/router/transport/fetch/routes/sessions.js +3 -2
  187. package/dist/esm/router/transport/fetch/routes/thresholdEcdsa.js +67 -130
  188. package/dist/esm/router/transport/fetch/routes/thresholdEd25519.js +76 -212
  189. package/dist/esm/router/transport/fetch/routes/walletExecutionLanePreflight.js +18 -41
  190. package/dist/esm/router/transport/fetch/routes/walletRegistration.js +6 -5
  191. package/dist/esm/router/transport/fetch/routes/webauthnAuthenticators.js +1 -1
  192. package/dist/esm/shared-ts/src/authorization/index.js +1 -1
  193. package/dist/esm/shared-ts/src/authorization/walletAuthority.js +2 -2
  194. package/dist/esm/shared-ts/src/device-linking/activeWalletSession.js +12 -2
  195. package/dist/esm/shared-ts/src/device-linking/digests.js +1 -1
  196. package/dist/esm/shared-ts/src/device-linking/ed25519ExportRoot.js +1 -1
  197. package/dist/esm/shared-ts/src/device-linking/index.js +1 -1
  198. package/dist/esm/shared-ts/src/device-linking/parsers.js +1 -1
  199. package/dist/esm/shared-ts/src/device-linking/sourceContribution.js +1 -1
  200. package/dist/esm/shared-ts/src/device-linking/wireFields.js +1 -1
  201. package/dist/esm/shared-ts/src/near/nearClient.js +1 -1
  202. package/dist/esm/shared-ts/src/signing-lanes/ownerContinuity.js +2 -2
  203. package/dist/esm/shared-ts/src/utils/ecdsaServerTiming.js +6 -1
  204. package/dist/esm/shared-ts/src/utils/emailOtpDomain.js +4 -2
  205. package/dist/esm/shared-ts/src/utils/routerAbEcdsaDerivation.js +1 -1
  206. package/dist/esm/shared-ts/src/utils/routerAbPublicKeyset.js +0 -27
  207. package/dist/esm/shared-ts/src/wallet-recovery/walletRecoveryEcdsaPossession.js +1 -1
  208. package/dist/esm/threshold/session/signingSessionSeal/options.js +1 -1
  209. package/dist/esm/wasm/near_signer/pkg/wasm_signer_worker_bg.wasm +0 -0
  210. package/dist/types/shared-ts/src/device-linking/activeWalletSession.d.ts +2 -1
  211. package/dist/types/shared-ts/src/device-linking/contracts.d.ts +10 -0
  212. package/dist/types/shared-ts/src/threshold/ed25519OperationFingerprint.d.ts +2 -1
  213. package/dist/types/shared-ts/src/utils/emailOtpDomain.d.ts +3 -1
  214. package/dist/types/shared-ts/src/utils/routerAbPublicKeyset.d.ts +0 -9
  215. package/dist/types/shared-ts/src/utils/walletManagementProtocol.d.ts +1 -1
  216. package/dist/types/wallet-server/src/authorization/domain.d.ts +17 -1
  217. package/dist/types/wallet-server/src/authorization/ecdsaWalletSessionAdmission.d.ts +1 -0
  218. package/dist/types/wallet-server/src/authorization/ed25519WalletSessionAdmission.d.ts +35 -0
  219. package/dist/types/wallet-server/src/authorization/ed25519WalletSessionAdmission.typecheck.d.ts +2 -0
  220. package/dist/types/wallet-server/src/authorization/service.d.ts +43 -5
  221. package/dist/types/wallet-server/src/authorization/sessionRouting.d.ts +2 -0
  222. package/dist/types/wallet-server/src/cloud-host.d.ts +7 -3
  223. package/dist/types/wallet-server/src/core/EmailOtpRecords.d.ts +2 -1
  224. package/dist/types/wallet-server/src/core/EmailOtpStores.d.ts +19 -5
  225. package/dist/types/wallet-server/src/core/ThresholdService/routerAb/ecdsaDerivationPoolFillHandlers.d.ts +1 -0
  226. package/dist/types/wallet-server/src/core/ThresholdService/routerAb/ecdsaDerivationPresignBridge.d.ts +6 -0
  227. package/dist/types/wallet-server/src/core/ThresholdService/routerAb/internalServiceHttp.d.ts +1 -0
  228. package/dist/types/wallet-server/src/core/d1Ed25519SignerRead.d.ts +17 -0
  229. package/dist/types/wallet-server/src/core/d1WalletStore.d.ts +6 -0
  230. package/dist/types/wallet-server/src/core/emailOtpD1Statements.d.ts +1 -0
  231. package/dist/types/wallet-server/src/core/routerAbSigning/RouterAbEcdsaPresignRuntime.d.ts +5 -1
  232. package/dist/types/wallet-server/src/core/signingMaterial/ordinaryInactiveSignerMaterialReservation.d.ts +1 -0
  233. package/dist/types/wallet-server/src/core/threeRouteRegistrationContracts.d.ts +14 -48
  234. package/dist/types/wallet-server/src/hosted-wallet-gateway.d.ts +4 -3
  235. package/dist/types/wallet-server/src/localIntendedYaoSigningFault.d.ts +1 -16
  236. package/dist/types/wallet-server/src/localRegistrationSetupAuthority.d.ts +1 -1
  237. package/dist/types/wallet-server/src/router/auth/commonRouterUtils.d.ts +7 -1
  238. package/dist/types/wallet-server/src/router/auth/routerApiCredentialAuth.d.ts +11 -3
  239. package/dist/types/wallet-server/src/router/auth/walletRegistrationContext.d.ts +8 -0
  240. package/dist/types/wallet-server/src/router/cloudflare/d1/auth/d1AuthorizationAssembly.d.ts +1 -1
  241. package/dist/types/wallet-server/src/router/cloudflare/d1/auth/d1EmailOtpRouteService.d.ts +16 -0
  242. package/dist/types/wallet-server/src/router/cloudflare/d1/auth/d1RouterApiAuthConfig.d.ts +7 -4
  243. package/dist/types/wallet-server/src/router/cloudflare/d1/auth/d1RouterApiAuthService.d.ts +4 -1
  244. package/dist/types/wallet-server/src/router/cloudflare/d1/auth/walletSessionCredentialReaders.d.ts +7 -1
  245. package/dist/types/wallet-server/src/router/cloudflare/d1/authorization/d1AuthorizationStore.d.ts +32 -1
  246. package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceAuthorityInstallService.d.ts +2 -0
  247. package/dist/types/wallet-server/src/router/cloudflare/d1/ed25519Yao/d1Ed25519YaoLifecycleDecisionStore.d.ts +3 -1
  248. package/dist/types/wallet-server/src/router/cloudflare/d1/ed25519Yao/d1Ed25519YaoProductRegistrationPartitionedStateStore.d.ts +1 -0
  249. package/dist/types/wallet-server/src/router/cloudflare/d1/ed25519Yao/d1Ed25519YaoStateWriteFence.d.ts +8 -0
  250. package/dist/types/wallet-server/src/router/cloudflare/d1/ed25519Yao/d1WalletCeremonyActivity.d.ts +15 -0
  251. package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpChallengeIssuer.d.ts +6 -1
  252. package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpChallengeStore.d.ts +1 -0
  253. package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpChallengeVerifier.d.ts +4 -1
  254. package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpCounters.typecheck.d.ts +2 -0
  255. package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpRateLimitStore.d.ts +6 -29
  256. package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpRecords.d.ts +21 -7
  257. package/dist/types/wallet-server/src/router/cloudflare/d1/passkeyCustody/d1WalletCustodyCommitStore.d.ts +17 -1
  258. package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1RegistrationCeremonyRecordStore.d.ts +32 -7
  259. package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1RegistrationCeremonyStore.d.ts +16 -7
  260. package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1RegistrationSessionTransaction.d.ts +13 -0
  261. package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1RegistrationSetupSupport.d.ts +7 -0
  262. package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1WalletExecutionAuthority.d.ts +41 -0
  263. package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1WalletOperationStore.d.ts +28 -0
  264. package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1WalletRegistrationCommitStore.d.ts +6 -9
  265. package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1WalletRegistrationInitialSession.d.ts +17 -0
  266. package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1WalletRegistrationPreparation.d.ts +12 -0
  267. package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1WalletRegistrationRead.d.ts +43 -0
  268. package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1WalletRegistrationService.d.ts +24 -45
  269. package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1WalletRegistrationSetupExecution.d.ts +9 -4
  270. package/dist/types/wallet-server/src/router/cloudflare/d1/registration/walletRegistrationEstablishedSessionIssuer.d.ts +42 -14
  271. package/dist/types/wallet-server/src/router/cloudflare/d1/registration/walletRegistrationSessionCommitReceipt.d.ts +5 -4
  272. package/dist/types/wallet-server/src/router/cloudflare/d1/signingAdmission/d1RouterAbNormalSigningAdmissionStore.d.ts +24 -1
  273. package/dist/types/wallet-server/src/router/cloudflare/d1/versionedJson/d1VersionedJsonRecordStore.d.ts +10 -4
  274. package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/authorizationSnapshotLayout.d.ts +21 -0
  275. package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletAddSignerService.d.ts +3 -0
  276. package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletAuthMethodService.d.ts +3 -7
  277. package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletAuthorityStore.d.ts +8 -0
  278. package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletAuthorizationCleanup.d.ts +20 -0
  279. package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletAuthorizationFreeze.d.ts +12 -0
  280. package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletAuthorizationHistory.d.ts +20 -0
  281. package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletAuthorizationIntake.d.ts +29 -0
  282. package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletAuthorizationSnapshot.d.ts +31 -0
  283. package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletRelocationApprovals.d.ts +49 -0
  284. package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletRelocationChallenges.d.ts +47 -0
  285. package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletRelocationEmailOtp.d.ts +25 -0
  286. package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletRelocationOwner.d.ts +88 -0
  287. package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletRelocationOwnerRequest.d.ts +37 -0
  288. package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletRelocationPasskey.d.ts +12 -0
  289. package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletRelocationReadAccess.d.ts +18 -0
  290. package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletRelocationSessions.d.ts +23 -0
  291. package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletRelocationWriteBlock.d.ts +16 -0
  292. package/dist/types/wallet-server/src/router/cloudflare/d1/walletObjectAddresses.d.ts +14 -0
  293. package/dist/types/wallet-server/src/router/cloudflare/runtime/routerAbServiceBindings.d.ts +13 -0
  294. package/dist/types/wallet-server/src/router/cloudflare/runtime/walletAuthorizationRelocationRoutes.d.ts +21 -0
  295. package/dist/types/wallet-server/src/router/cloudflare/runtime/walletConsoleOps.d.ts +1 -1
  296. package/dist/types/wallet-server/src/router/cloudflare/runtime/walletConsoleOpsClient.d.ts +3 -3
  297. package/dist/types/wallet-server/src/router/cloudflare/runtime/walletControlOps.d.ts +2 -1
  298. package/dist/types/wallet-server/src/router/cloudflare/runtime/walletGateway.d.ts +3 -1
  299. package/dist/types/wallet-server/src/router/cloudflare/runtime/walletObjectAddresses.d.ts +45 -0
  300. package/dist/types/wallet-server/src/router/cloudflare/runtime/walletPlacementRoutes.d.ts +30 -0
  301. package/dist/types/wallet-server/src/router/cloudflare/runtime/walletRelocationDeriver.d.ts +11 -0
  302. package/dist/types/wallet-server/src/router/cloudflare/runtime/walletRelocationEcdsa.d.ts +7 -0
  303. package/dist/types/wallet-server/src/router/cloudflare/runtime/walletRelocationEd25519.d.ts +7 -0
  304. package/dist/types/wallet-server/src/router/cloudflare/runtime/walletRelocationOps.d.ts +11 -0
  305. package/dist/types/wallet-server/src/router/cloudflare/runtime/walletRelocationPresign.d.ts +7 -0
  306. package/dist/types/wallet-server/src/router/cloudflare/runtime/walletRelocationSource.d.ts +26 -0
  307. package/dist/types/wallet-server/src/router/cloudflare/signingLanes/cloudflareOrdinaryInactiveSignerMaterialReservation.d.ts +5 -0
  308. package/dist/types/wallet-server/src/router/domains/ecdsa/routerAbEcdsaStrictRegistration.d.ts +3 -0
  309. package/dist/types/wallet-server/src/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoCapabilityCommit.d.ts +7 -0
  310. package/dist/types/wallet-server/src/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistration.d.ts +41 -7
  311. package/dist/types/wallet-server/src/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistrationPartitionedStateStore.d.ts +33 -2
  312. package/dist/types/wallet-server/src/router/domains/ed25519Yao/export/routerAbEd25519YaoExport.d.ts +12 -6
  313. package/dist/types/wallet-server/src/router/domains/ed25519Yao/recovery/routerAbEd25519YaoRecovery.d.ts +17 -9
  314. package/dist/types/wallet-server/src/router/domains/ed25519Yao/recovery/routerAbEd25519YaoRecoveryWalletSessionAuthorization.d.ts +2 -0
  315. package/dist/types/wallet-server/src/router/domains/ed25519Yao/registration/routerAbEd25519YaoHttpRegistrationBackend.d.ts +13 -14
  316. package/dist/types/wallet-server/src/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistration.d.ts +7 -3
  317. package/dist/types/wallet-server/src/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistrationExecutionRecord.d.ts +1 -0
  318. package/dist/types/wallet-server/src/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistrationIntentAuthorization.d.ts +6 -1
  319. package/dist/types/wallet-server/src/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistrationSideEffectBoundary.d.ts +11 -0
  320. package/dist/types/wallet-server/src/router/domains/ed25519Yao/routerAbEd25519YaoGatewayEnvelope.d.ts +12 -3
  321. package/dist/types/wallet-server/src/router/domains/passkeyCustody/registrationCustodyOutcome.d.ts +10 -6
  322. package/dist/types/wallet-server/src/router/domains/passkeyCustody/walletCustodyRegistrationAdmission.d.ts +10 -3
  323. package/dist/types/wallet-server/src/router/domains/passkeyCustody/walletCustodyRegistrationCommit.d.ts +12 -5
  324. package/dist/types/wallet-server/src/router/domains/signingOperations/authorizedOperationWire.d.ts +97 -0
  325. package/dist/types/wallet-server/src/router/domains/signingOperations/ecdsaSigningResponse.d.ts +13 -0
  326. package/dist/types/wallet-server/src/router/domains/signingOperations/routerAbNormalSigningAdmission.d.ts +9 -206
  327. package/dist/types/wallet-server/src/router/domains/signingOperations/signingPrepareSession.d.ts +23 -0
  328. package/dist/types/wallet-server/src/router/domains/walletRegistration/registrationSessionSeal.d.ts +36 -0
  329. package/dist/types/wallet-server/src/router/domains/walletRegistration/walletRegistrationInputs.d.ts +7 -7
  330. package/dist/types/wallet-server/src/router/domains/walletRegistration/walletRegistrationReservation.d.ts +80 -6
  331. package/dist/types/wallet-server/src/router/domains/walletRegistration/walletRegistrationRoutes.d.ts +15 -5
  332. package/dist/types/wallet-server/src/router/framework/apiCredentialPorts.d.ts +24 -0
  333. package/dist/types/wallet-server/src/router/framework/authServicePort.d.ts +21 -7
  334. package/dist/types/wallet-server/src/router/framework/routerApi.d.ts +3 -12
  335. package/dist/types/wallet-server/src/router/transport/fetch/routes/ed25519AuthorizedOperationRevalidation.d.ts +37 -0
  336. package/dist/types/wallet-server/src/router/transport/fetch/routes/thresholdEcdsa.d.ts +1 -17
  337. package/dist/types/wallet-server/src/storage/tenantRoute.d.ts +1 -1
  338. package/migrations/d1-signer/0049_wallet_relocation_challenges.sql +16 -0
  339. package/migrations/d1-signer/0050_wallet_relocation_approvals.sql +14 -0
  340. package/migrations/d1-signer/0051_wallet_relocation_email_otp.sql +92 -0
  341. package/migrations/d1-signer/0052_wallet_relocation_session_fences.sql +91 -0
  342. package/migrations/d1-signer/0053_wallet_hosted_history_import.sql +164 -0
  343. package/migrations/d1-signer/0054_wallet_authorization_freeze.sql +318 -0
  344. package/migrations/d1-signer/0055_wallet_authorization_snapshot.sql +120 -0
  345. package/migrations/d1-signer/0056_wallet_authorization_history_import.sql +424 -0
  346. package/migrations/d1-signer/0057_wallet_authorization_intake.sql +44 -0
  347. package/migrations/d1-signer/0058_wallet_ceremony_activity.sql +59 -0
  348. package/migrations/d1-signer/0059_wallet_authorization_activation.sql +45 -0
  349. package/migrations/d1-signer/0060_wallet_authorization_cleanup.sql +153 -0
  350. package/migrations/d1-signer/0061_wallet_session_operation_settlement.sql +28 -0
  351. package/migrations/d1-signer/0062_wallet_step_up_operation_settlement.sql +204 -0
  352. package/migrations/d1-signer/0063_wallet_operation_history_transfer.sql +466 -0
  353. package/migrations/d1-signer/0064_wallet_execution_generations.sql +93 -0
  354. package/migrations/d1-signer/0065_wallet_operation_execution_generation.sql +37 -0
  355. package/migrations/d1-signer/0066_regional_deployment_admission.sql +59 -0
  356. package/migrations/d1-signer/0067_registration_completion_decision.sql +12 -0
  357. package/migrations/d1-signer/0068_registration_cancellation_write_fence.sql +24 -0
  358. package/migrations/d1-signer/0069_cancelled_registration_session_fence.sql +11 -0
  359. package/migrations/d1-signer/0070_wallet_passkey_relocation.sql +369 -0
  360. package/migrations/d1-signer/0071_regional_wallet_otp_counters.sql +98 -0
  361. package/migrations/d1-signer/0072_linked_device_relocation_history.sql +899 -0
  362. package/migrations/d1-signer/0073_wallet_recovery_relocation.sql +86 -0
  363. package/migrations/d1-signer/0074_email_otp_relocation.sql +158 -0
  364. package/migrations/d1-signer/0075_wallet_authorization_return.sql +107 -0
  365. package/migrations/d1-signer/0076_wallet_relocation_write_block.sql +406 -0
  366. package/migrations/d1-signer/0077_wallet_object_addresses.sql +24 -0
  367. package/package.json +1 -1
  368. package/src/README.md +23 -1
  369. package/cloudflare-router-ab/scripts/local-key-material.mjs +0 -29
@@ -1,5 +1,6 @@
1
+ import type { WalletSessionHome } from '../../../../../../shared-ts/src/device-linking/contracts';
1
2
  import type { SponsoredNamedNearAccountInput } from '../near/d1SponsoredNearAccount';
2
- import { type DeviceId, type TenantId } from '../../../../../../shared-ts/src/authorization/capabilityKinds';
3
+ import { type TenantId } from '../../../../../../shared-ts/src/authorization/capabilityKinds';
3
4
  import { type RuntimePolicyScope } from '../../../../../../shared-ts/src/threshold/signingRootScope';
4
5
  import type { DigestB64u } from '../../../../../../shared-ts/src/utils/canonicalPrimitives';
5
6
  import { type MpcMaterialActivationRef, type WalletAuthMethodId, type WalletAuthorityId } from '../../../../../../shared-ts/src/utils/domainIds';
@@ -13,6 +14,7 @@ import { type ThresholdEcdsaKeyInventoryDiagnostics, type ThresholdEcdsaKeyInven
13
14
  import type { EcdsaMaterialActivationReadInput } from '../../../../core/d1EcdsaSignerRead';
14
15
  import type { D1WalletStore } from '../../../../core/d1WalletStore';
15
16
  import type { EcdsaMaterialReadSnapshot } from '../../../../core/ecdsaMaterialReadSnapshot';
17
+ import type { Ed25519SignerRead } from '../../../../core/d1Ed25519SignerRead';
16
18
  import { type StoredWalletRegistrationEvmFamilyEcdsaPendingActivationBranch } from '../../../../core/RegistrationCeremonyStore';
17
19
  import { WalletRegistrationEcdsaActivationResponse } from '../../../../core/registrationContracts';
18
20
  import type { WalletRegistrationActivateResponseV2, WalletRegistrationNearAdmissionResponseV2, WalletRegistrationNearProvisioningResponseV2, WalletRegistrationRespondResponseV2, WalletRegistrationSessionCommitReceiptV2, WalletRegistrationSetupResponseV2 } from '../../../../core/threeRouteRegistrationContracts';
@@ -26,7 +28,9 @@ import type { RouterAbEd25519YaoBudgetRefreshRequestV1, RouterAbEd25519YaoBudget
26
28
  import type { TenantRootCustodyLineageResolverV1 } from '../../../domains/tenantRoot/tenantRootCustodyLineage';
27
29
  import { type TenantRootIdentityV1 } from '../../../domains/tenantRoot/tenantRootIdentityResolution';
28
30
  import type { WalletRegistrationActivateInput, WalletRegistrationNearAdmissionInput, WalletRegistrationNearProvisioningInput, WalletRegistrationRespondInput, WalletRegistrationSetupInput } from '../../../domains/walletRegistration/walletRegistrationInputs';
29
- import type { WalletRegistrationReservationAuthority } from '../../../domains/walletRegistration/walletRegistrationReservation';
31
+ import type { WalletExecutionAuthority, RegistrationWalletStarter, WalletRegistrationHomeAuthority } from '../../../domains/walletRegistration/walletRegistrationReservation';
32
+ import type { D1WalletRegistrationRead } from './d1WalletRegistrationRead';
33
+ import { type D1WalletRegistrationOperationPreparedV1 } from './d1WalletRegistrationPreparation';
30
34
  import type { InstalledEcdsaCustodySnapshotV1, InstalledLinkedDeviceEcdsaAuthorityProjectionV1, InstalledLinkedDeviceEd25519AuthorityProjectionV1 } from '../deviceLinking/d1LinkedDeviceAuthorityInstallService';
31
35
  import type { CloudflareD1Ed25519YaoLifecycleDecisionStoreV1 } from '../ed25519Yao/d1Ed25519YaoLifecycleDecisionStore';
32
36
  import { CloudflareD1EmailOtpRegistrationEnrollmentFinalizer } from '../emailOtp/d1EmailOtpRegistrationEnrollmentFinalizer';
@@ -35,6 +39,7 @@ import type { CloudflareD1VersionedJsonRecordReadManyEntryV1 } from '../versione
35
39
  import { CloudflareD1WalletAuthMethodService } from '../wallet/d1WalletAuthMethodService';
36
40
  import { CloudflareD1RegistrationCeremonyIntentStore } from './d1RegistrationCeremonyStore';
37
41
  import type { D1WalletRegistrationCommitStore } from './d1WalletRegistrationCommitStore';
42
+ import { type RegistrationSessionTransactionStore } from './d1WalletRegistrationInitialSession';
38
43
  type ActivateWalletRegistrationEcdsaInput = {
39
44
  readonly registrationCeremonyId: string;
40
45
  readonly ecdsa: {
@@ -65,12 +70,6 @@ type D1LinkedDeviceEd25519AuthorityReaderV1 = {
65
70
  readonly materialActivation: MpcMaterialActivationRef;
66
71
  }): Promise<InstalledEcdsaCustodySnapshotV1 | null>;
67
72
  };
68
- export type D1WalletRegistrationOperationPreparedV1 = {
69
- readonly kind: 'd1_wallet_registration_operation_prepared_v1';
70
- readonly walletAuthorityId: WalletAuthorityId;
71
- readonly deviceId: DeviceId;
72
- readonly walletAuthMethodId: WalletAuthMethodId;
73
- };
74
73
  /** The activate operation row stores one credential-free commit receipt. */
75
74
  export type D1WalletRegistrationActivateSideEffectRecord = RouterAbEd25519YaoRegistrationSideEffectRecordV2<WalletRegistrationSessionCommitReceiptV2, D1WalletRegistrationOperationPreparedV1>;
76
75
  export type D1WalletRegistrationActivateSideEffectStore = RouterAbEd25519YaoRegistrationSideEffectStoreV2<WalletRegistrationSessionCommitReceiptV2, D1WalletRegistrationOperationPreparedV1> & {
@@ -78,7 +77,6 @@ export type D1WalletRegistrationActivateSideEffectStore = RouterAbEd25519YaoRegi
78
77
  readonly limit?: number;
79
78
  }): Promise<readonly CloudflareD1VersionedJsonRecordReadManyEntryV1<D1WalletRegistrationActivateSideEffectRecord>[]>;
80
79
  };
81
- export type D1WalletRegistrationNearProvisioningSideEffectStore = RouterAbEd25519YaoRegistrationSideEffectStoreV2<WalletRegistrationSessionCommitReceiptV2, D1WalletRegistrationOperationPreparedV1>;
82
80
  export type D1WalletRegistrationNearProvisioningSideEffectRecord = RouterAbEd25519YaoRegistrationSideEffectRecordV2<WalletRegistrationSessionCommitReceiptV2, D1WalletRegistrationOperationPreparedV1>;
83
81
  type RegistrationCeremonyStoreProvider = () => CloudflareD1RegistrationCeremonyIntentStore;
84
82
  type WalletStoreProvider = () => D1WalletStore;
@@ -118,8 +116,10 @@ type EcdsaPostRegistrationProofInput = {
118
116
  readonly response: RouterAbEcdsaDerivationActivationRefreshForwardedResponseV1;
119
117
  };
120
118
  export declare class CloudflareD1WalletRegistrationService {
119
+ private readonly executionAuthority;
121
120
  private readonly registrationAuthority;
122
121
  private readonly authorizationService;
122
+ private readonly registrationSessionStore;
123
123
  private readonly authorizationTenantId;
124
124
  private readonly createSponsoredNamedNearAccount;
125
125
  private readonly emailOtpRegistrationEnrollmentFinalizer;
@@ -130,17 +130,23 @@ export declare class CloudflareD1WalletRegistrationService {
130
130
  private readonly getWalletStore;
131
131
  /** The single Gateway operation row for activate-with-finalize. */
132
132
  private readonly activateSideEffects;
133
- /** Deferred NEAR provisioning's own operation row. */
134
- private readonly nearProvisioningSideEffects;
133
+ /** Registration admission and state loaded in one database snapshot. */
134
+ private readonly registrationRead;
135
135
  private readonly walletRegistrationCommitStore;
136
136
  /** Where a ceremony's sealed custody seed and its recovery set land. */
137
137
  private readonly walletCustodyCommitStore;
138
138
  private readonly walletAuthMethods;
139
139
  private readonly getLinkedDeviceEd25519AuthorityReader;
140
140
  private readonly yaoLifecycleDecisions;
141
+ private readonly home;
142
+ private readonly startRegistrationWallets;
141
143
  constructor(input: {
142
- readonly registrationAuthority: WalletRegistrationReservationAuthority | null;
144
+ readonly home: WalletSessionHome;
145
+ readonly executionAuthority: WalletExecutionAuthority;
146
+ readonly registrationAuthority: WalletRegistrationHomeAuthority | null;
147
+ readonly startRegistrationWallets: RegistrationWalletStarter | null;
143
148
  readonly authorizationService: AuthorizationService;
149
+ readonly registrationSessionStore: RegistrationSessionTransactionStore;
144
150
  readonly authorizationTenantId: TenantId;
145
151
  readonly createSponsoredNamedNearAccount: SponsoredNamedNearAccountCreator;
146
152
  readonly emailOtpRegistrationEnrollmentFinalizer: CloudflareD1EmailOtpRegistrationEnrollmentFinalizer;
@@ -150,7 +156,7 @@ export declare class CloudflareD1WalletRegistrationService {
150
156
  readonly tenantRootCustodyLineage: TenantRootCustodyLineageResolverV1;
151
157
  readonly getWalletStore: WalletStoreProvider;
152
158
  readonly activateSideEffects: D1WalletRegistrationActivateSideEffectStore;
153
- readonly nearProvisioningSideEffects: D1WalletRegistrationNearProvisioningSideEffectStore;
159
+ readonly registrationRead: D1WalletRegistrationRead;
154
160
  readonly walletRegistrationCommitStore: D1WalletRegistrationCommitStore;
155
161
  readonly walletCustodyCommitStore: CloudflareD1WalletCustodyCommitStore;
156
162
  readonly walletAuthMethods: CloudflareD1WalletAuthMethodService;
@@ -160,6 +166,7 @@ export declare class CloudflareD1WalletRegistrationService {
160
166
  resolveEd25519MaterialActivation(input: {
161
167
  readonly walletId: string;
162
168
  readonly materialActivation: RouterAbMpcMaterialActivationRefWire;
169
+ readonly signerRead?: Ed25519SignerRead;
163
170
  }): Promise<{
164
171
  readonly ok: true;
165
172
  readonly materialActivation: RouterAbMpcMaterialActivationRefWire;
@@ -206,6 +213,7 @@ export declare class CloudflareD1WalletRegistrationService {
206
213
  readonly materialActivation: RouterAbMpcMaterialActivationRefWire;
207
214
  }): Promise<{
208
215
  readonly ok: true;
216
+ readonly ownershipGeneration: number;
209
217
  readonly identityDigestB64u: string;
210
218
  readonly custodyLineageB64u: string;
211
219
  readonly projectEnvironmentId: string;
@@ -253,12 +261,6 @@ export declare class CloudflareD1WalletRegistrationService {
253
261
  setupWalletRegistration(input: WalletRegistrationSetupInput): Promise<WalletRegistrationSetupResponseV2>;
254
262
  authorizeWalletRegistrationNearAdmission(input: WalletRegistrationNearAdmissionInput): Promise<WalletRegistrationNearAdmissionResponseV2>;
255
263
  respondWalletRegistration(input: WalletRegistrationRespondInput, traceContext?: RouterAbTraceContextV1, timingSink?: Array<readonly [string, number]>): Promise<WalletRegistrationRespondResponseV2>;
256
- /**
257
- * The Ed25519 commit core, extracted so deferred provisioning reaches it
258
- * without going through the standalone finalize wrapper. The operation row
259
- * owns idempotency here, so the commit keeps no replay cache of its own.
260
- */
261
- private readRegistrationOwnerProofContext;
262
264
  /** For callers that must read the context before finalize tombstones it. */
263
265
  private registrationOwnerProofWithContext;
264
266
  authorizeNearRegistrationContinuation(input: {
@@ -267,37 +269,14 @@ export declare class CloudflareD1WalletRegistrationService {
267
269
  }): Promise<VerifiedNearRegistrationContinuationV1 | null>;
268
270
  private readNearRegistrationContinuationContext;
269
271
  private readCommittedRegistrationInstallation;
272
+ /** Carries the preparation's ceremony into this request's execution. */
270
273
  private prepareNearProvisioningOperation;
271
274
  private commitDeferredEd25519Signer;
272
275
  private replayWalletRegistrationActivateCommit;
273
276
  private replayWalletRegistrationNearProvisioningCommit;
274
- /**
275
- * Deferred NEAR provisioning. Verifies the signed setup, then reuses the
276
- * existing deferred Ed25519 commit — the same path lazy-Yao 4+5 built — so
277
- * signer installation and the implicit-account projection keep one
278
- * implementation across both plans.
279
- *
280
- * A retryable failure leaves the pending wallet intact: the wallet must not
281
- * be destroyed because its signer ceremony needs another attempt.
282
- */
277
+ /** Verifies registration or continuation authority without destroying retryable state. */
283
278
  private verifyNearProvisioningAuthority;
284
- completeWalletRegistrationNearProvisioning(input: WalletRegistrationNearProvisioningInput, timingSink?: Array<readonly [string, number]>): Promise<WalletRegistrationNearProvisioningResponseV2>;
285
- /**
286
- * Persists the Ed25519-only wallet in `near_pending`: wallet, profile, and
287
- * authentication state, and no signer record — the signer does not exist
288
- * until deferred Yao produces it.
289
- *
290
- * The terminal response carries no signer, resolved account, or key
291
- * identity, because none of those are known yet. Reporting them would be
292
- * fabricating readiness.
293
- */
294
- private commitEd25519PendingWallet;
295
- /**
296
- * Ed25519-only respond. The wallet's sole signer is Yao, and that is
297
- * deliberately not a reason to block: the admission is returned as deferred
298
- * work exactly as on a mixed plan, and the wallet lives in `near_pending`
299
- * until the computation completes.
300
- */
279
+ completeWalletRegistrationNearProvisioning(input: WalletRegistrationNearProvisioningInput, timingSink?: Array<readonly [string, number]>, waitUntil?: (promise: Promise<unknown>) => void): Promise<WalletRegistrationNearProvisioningResponseV2>;
301
280
  /**
302
281
  * Respond replay stays authority-bound.
303
282
  *
@@ -1,11 +1,16 @@
1
+ import type { WalletSessionHome } from '../../../../../../shared-ts/src/device-linking/contracts';
1
2
  import type { WalletRegistrationSetupResponseV2 } from '../../../../core/threeRouteRegistrationContracts';
2
3
  import { type RouterAbEcdsaStrictRegistrationPort } from '../../../domains/ecdsa/routerAbEcdsaStrictRegistration';
3
4
  import type { WalletRegistrationSetupInput } from '../../../domains/walletRegistration/walletRegistrationInputs';
4
- import type { WalletRegistrationReservationAuthority } from '../../../domains/walletRegistration/walletRegistrationReservation';
5
+ import type { RegistrationWalletStarter, WalletRegistrationReservationAuthority } from '../../../domains/walletRegistration/walletRegistrationReservation';
5
6
  import { CloudflareD1RegistrationCeremonyIntentStore } from './d1RegistrationCeremonyStore';
6
- export declare function executeD1WalletRegistrationSetup(input: WalletRegistrationSetupInput, dependencies: {
7
- readonly reservation: WalletRegistrationReservationAuthority | null;
7
+ type WalletRegistrationSetupDependencies = {
8
+ readonly home: WalletSessionHome;
9
+ readonly reservation: Pick<WalletRegistrationReservationAuthority, 'reserve'> | null;
8
10
  readonly store: CloudflareD1RegistrationCeremonyIntentStore;
9
11
  readonly ecdsaStrictRegistration: RouterAbEcdsaStrictRegistrationPort;
10
- }): Promise<WalletRegistrationSetupResponseV2>;
12
+ readonly startRegistrationWallets: RegistrationWalletStarter | null;
13
+ };
14
+ export declare function executeD1WalletRegistrationSetup(input: WalletRegistrationSetupInput, dependencies: WalletRegistrationSetupDependencies): Promise<WalletRegistrationSetupResponseV2>;
15
+ export {};
11
16
  //# sourceMappingURL=d1WalletRegistrationSetupExecution.d.ts.map
@@ -1,11 +1,11 @@
1
+ import type { RegistrationActivationWrite, WalletRegistrationHomeAuthority } from '../../../domains/walletRegistration/walletRegistrationReservation';
1
2
  import type { WalletRegistrationEd25519YaoPublicResult } from '../../../../core/registrationContracts';
2
3
  import type { WalletRegistrationFinalizeAuthMethod } from '../../../../../../shared-ts/src/utils/registrationContracts';
3
4
  import { type VerifiedOwnerProof } from '../../../../authorization/factorEvidence';
4
- import type { AuthorizationService } from '../../../../authorization/service';
5
- import type { LiveWalletSessionAuthorizationProjectionV2 } from '../../../../authorization/domain';
5
+ import type { AuthorizationGrantPort, AuthorizationService } from '../../../../authorization/service';
6
+ import type { DirectV2IssueResult, LiveWalletSessionAuthorizationProjectionV2 } from '../../../../authorization/domain';
6
7
  import type { EcdsaDerivationServerBootstrapResponse } from '../../../../core/types';
7
8
  import type { WalletRegistrationSessionCommitReceiptV2 } from '../../../../core/threeRouteRegistrationContracts';
8
- import type { StoredRegistrationAuthority } from '../../../../core/RegistrationCeremonyStore';
9
9
  import { type PrincipalId, type TenantId } from '../../../../../../shared-ts/src/authorization/capabilityKinds';
10
10
  import type { ActiveWalletAuthorityV1 } from '../../../../../../shared-ts/src/authorization/walletAuthority';
11
11
  import { type WalletAuthMethodId } from '../../../../../../shared-ts/src/utils/domainIds';
@@ -13,18 +13,40 @@ import { type WalletAuthAuthority } from '../../../../../../shared-ts/src/utils/
13
13
  import { type DigestB64u } from '../../../../../../shared-ts/src/utils/canonicalPrimitives';
14
14
  import type { RuntimePolicyScope } from '../../../../../../shared-ts/src/threshold/signingRootScope';
15
15
  import type { RegistrationEstablishedSessionProjectionTokensV2, RegistrationEstablishedSessionProjectionV2, RegistrationEstablishedSessionResultV2, RegistrationEstablishedSessionV2 } from '../../../../../../shared-ts/src/utils/registrationEstablishedSession';
16
- type RegistrationEstablishedSessionIssuerAuthorizationService = Pick<AuthorizationService, 'issueDirectWalletSessionAuthorizationV2' | 'issueDirectRegistrationPromotedWalletSessionAuthorizationV2' | 'readWalletSessionAuthorizationV2ByMint' | 'readWalletSessionAuthorizationV2ByAuthorizationId' | 'refreshWalletSessionAuthorizationV2AuthorityProjection'>;
17
- type RegistrationEstablishedSessionIssuerWalletAuthMethodReader = {
18
- readonly readActiveRegistrationAuthority: (authority: StoredRegistrationAuthority) => Promise<{
19
- readonly authority: ActiveWalletAuthorityV1;
20
- readonly walletAuthMethodId: WalletAuthMethodId;
21
- } | null>;
22
- };
16
+ type RegistrationEstablishedSessionIssuerAuthorizationService = Pick<AuthorizationService, 'commitDirectWalletSessionAuthorizationV2' | 'readWalletSessionAuthorizationV2ByMint' | 'readWalletSessionAuthorizationV2ByAuthorizationId' | 'refreshWalletSessionAuthorizationV2AuthorityProjection'>;
23
17
  type RegistrationEstablishedSessionIssuanceDependencies = {
24
18
  readonly authorizationService: RegistrationEstablishedSessionIssuerAuthorizationService;
25
19
  readonly authorizationTenantId: TenantId;
26
- readonly walletAuthMethods: RegistrationEstablishedSessionIssuerWalletAuthMethodReader;
20
+ readonly foundingAuthority: ActiveWalletAuthorityV1;
21
+ readonly homeCompletion: Pick<WalletRegistrationHomeAuthority, 'publishEstablished'>;
22
+ };
23
+ export type RegistrationInitialSessionCommit = {
24
+ readonly kind: 'uncommitted';
25
+ readonly value?: never;
26
+ } | {
27
+ readonly kind: 'committed';
28
+ readonly value: Awaited<ReturnType<AuthorizationService['commitDirectWalletSessionAuthorizationV2']>>;
27
29
  };
30
+ type InitialEd25519RegistrationSessionInput = {
31
+ readonly authorizationService: RegistrationEstablishedSessionIssuerAuthorizationService;
32
+ readonly authorizationTenantId: TenantId;
33
+ readonly foundingAuthority: ActiveWalletAuthorityV1;
34
+ readonly registrationCeremonyId: string;
35
+ readonly authority: WalletAuthAuthority;
36
+ readonly walletAuthMethodId: WalletAuthMethodId;
37
+ readonly expiresAtMs: number;
38
+ readonly remainingUses: number;
39
+ readonly proof: Extract<VerifiedOwnerProof, {
40
+ readonly purpose: 'wallet_session';
41
+ }>;
42
+ };
43
+ export declare function commitInitialEd25519RegistrationSession(input: InitialEd25519RegistrationSessionInput, commitSession?: AuthorizationGrantPort['commitDirectReplayableWalletSessionAuthorizationV2']): Promise<{
44
+ readonly result: DirectV2IssueResult;
45
+ readonly publication: import("../../../../cloud-host").WalletSessionLocatorPublication & {
46
+ readonly kind: "credential";
47
+ };
48
+ readonly registration: import("../../../..").DirectV2CommitResult["registration"];
49
+ }>;
28
50
  export declare function walletSessionPrincipalId(authority: WalletAuthAuthority): PrincipalId;
29
51
  export declare function buildRegistrationOwnerProof(input: {
30
52
  readonly registrationCeremonyId: string;
@@ -36,7 +58,7 @@ export declare function buildRegistrationOwnerProof(input: {
36
58
  }): Promise<Extract<VerifiedOwnerProof, {
37
59
  readonly purpose: 'wallet_session';
38
60
  }>>;
39
- export type RegistrationEstablishedSessionIssuanceResultV2 = {
61
+ export type RegistrationEstablishedSessionIssuanceResultV2 = ({
40
62
  readonly kind: 'issued';
41
63
  readonly session: RegistrationEstablishedSessionV2;
42
64
  readonly issuedAtMs: number;
@@ -45,6 +67,12 @@ export type RegistrationEstablishedSessionIssuanceResultV2 = {
45
67
  readonly session: RegistrationEstablishedSessionProjectionV2;
46
68
  readonly next: 'unlock_exact_method';
47
69
  readonly issuedAtMs: number;
70
+ }) & {
71
+ /**
72
+ * The home's activation, which the caller commits with the record that
73
+ * completes its operation. None when the home is already active.
74
+ */
75
+ readonly activation: RegistrationActivationWrite | null;
48
76
  };
49
77
  export type Ed25519RegistrationSessionPredecessor = {
50
78
  readonly kind: 'ed25519_only';
@@ -73,7 +101,6 @@ export declare function assertDirectWalletSessionOwnerProof(input: {
73
101
  export declare function issueDirectRegistrationEstablishedEcdsaSession(input: RegistrationEstablishedSessionIssuanceDependencies & {
74
102
  readonly registrationCeremonyId: string;
75
103
  readonly authority: WalletAuthAuthority;
76
- readonly registrationAuthority: StoredRegistrationAuthority;
77
104
  readonly walletAuthMethodId: WalletAuthMethodId;
78
105
  readonly expiresAtMs: number;
79
106
  readonly remainingUses: number;
@@ -87,16 +114,17 @@ export declare function issueDirectRegistrationEstablishedEcdsaSession(input: Re
87
114
  export declare function issueDirectRegistrationEstablishedEd25519Session(input: RegistrationEstablishedSessionIssuanceDependencies & {
88
115
  readonly registrationCeremonyId: string;
89
116
  readonly authority: WalletAuthAuthority;
90
- readonly registrationAuthority: StoredRegistrationAuthority;
91
117
  readonly walletAuthMethodId: WalletAuthMethodId;
92
118
  readonly expiresAtMs: number;
93
119
  readonly remainingUses: number;
94
120
  readonly publicResult: WalletRegistrationEd25519YaoPublicResult;
95
121
  readonly predecessor: Ed25519RegistrationSessionPredecessor;
122
+ readonly initialSession: RegistrationInitialSessionCommit;
96
123
  readonly keyManifestDigestB64u: DigestB64u;
97
124
  readonly proof: Extract<VerifiedOwnerProof, {
98
125
  readonly purpose: 'wallet_session';
99
126
  }>;
127
+ readonly onSessionCommitted?: (session: RegistrationEstablishedSessionProjectionV2) => Promise<void>;
100
128
  }): Promise<RegistrationEstablishedSessionIssuanceResultV2>;
101
129
  export declare function projectCurrentNearRegistrationSession(authorization: LiveWalletSessionAuthorizationProjectionV2, tokens: Extract<RegistrationEstablishedSessionProjectionTokensV2, {
102
130
  readonly kind: 'near_ed25519_and_evm_family_ecdsa';
@@ -1,5 +1,6 @@
1
1
  import type { WalletRegistrationFinalizeResponse, WalletRegistrationFinalizeSuccess } from '../../../../core/registrationContracts';
2
2
  import type { WalletRegistrationFinalizeAuthMethod } from '../../../../../../shared-ts/src/utils/registrationContracts';
3
+ import type { RegistrationActivationWrite } from '../../../domains/walletRegistration/walletRegistrationReservation';
3
4
  import type { WalletRegistrationActivateResponseV2, WalletRegistrationCommittedInstallationProjectionV1, WalletRegistrationSessionCommitReceiptV2 } from '../../../../core/threeRouteRegistrationContracts';
4
5
  import type { RegistrationEstablishedSessionResultV2 } from '../../../../../../shared-ts/src/utils/registrationEstablishedSession';
5
6
  import { type WalletSessionMintId } from '../../../../../../shared-ts/src/authorization/capabilityKinds';
@@ -14,23 +15,23 @@ export type RegistrationCommitExecution<T> = {
14
15
  } | {
15
16
  readonly kind: 'replayed';
16
17
  readonly response: T;
17
- } | {
18
- readonly kind: 'near_pending';
19
- readonly response: T;
20
- readonly expectedOrigin: string;
21
18
  } | {
22
19
  readonly kind: 'session_issued';
23
20
  readonly response: T;
24
21
  readonly issuedAtMs: number;
25
22
  readonly expectedOrigin: string;
23
+ readonly activation: RegistrationActivationWrite | null;
26
24
  readonly installationProjection?: never;
27
25
  } | {
28
26
  readonly kind: 'session_issued_with_installation_projection';
29
27
  readonly response: T;
30
28
  readonly issuedAtMs: number;
31
29
  readonly expectedOrigin: string;
30
+ readonly activation: RegistrationActivationWrite | null;
32
31
  readonly installationProjection: WalletRegistrationCommittedInstallationProjectionV1;
33
32
  };
33
+ /** The home activation that a commit left for the record that completes its operation. */
34
+ export declare function registrationCommitActivation<T>(execution: RegistrationCommitExecution<T>): RegistrationActivationWrite | null;
34
35
  export declare function unissuedRegistrationCommit<T>(response: T): RegistrationCommitExecution<T>;
35
36
  export declare function replayedRegistrationCommit<T>(response: T): RegistrationCommitExecution<T>;
36
37
  export declare function projectWalletRegistrationSessionCommitReceiptV2(input: {
@@ -33,5 +33,28 @@ export declare class D1EcdsaAdmissionPolicyRead {
33
33
  readonly curve: 'ecdsa';
34
34
  }): RouterAbNormalSigningPolicyDecision | null;
35
35
  }
36
- export declare const ECDSA_CREDENTIAL_POLICY_PROJECTION = "\n (WITH candidates AS (\n SELECT DISTINCT json_extract(signer.record_json, '$.runtimePolicyScope') AS scope_json\n FROM wallet_signers AS signer\n WHERE signer.namespace = session.namespace AND signer.org_id = session.org_id\n AND signer.project_id = session.project_id AND signer.env_id = session.env_id\n AND signer.wallet_id = session.wallet_id AND signer.signer_family = 'ecdsa'\n AND json_valid(signer.record_json)\n ), scopes AS (\n SELECT scope_json,\n json_extract(scope_json, '$.orgId') AS org_id,\n json_extract(scope_json, '$.projectId') AS project_id,\n json_extract(scope_json, '$.envId') AS env_id,\n json_extract(scope_json, '$.signingRootVersion') AS signing_root_version,\n json_extract(scope_json, '$.orgId') || char(31) ||\n json_extract(scope_json, '$.projectId') || char(31) ||\n json_extract(scope_json, '$.envId') || char(31) ||\n json_extract(scope_json, '$.signingRootVersion') AS project_key\n FROM candidates\n )\n SELECT json_group_array(json_object(\n 'scope_json', scopes.scope_json,\n 'project_key', project.record_key, 'project_decision', project.decision,\n 'project_retry_after_ms', project.retry_after_ms,\n 'abuse_key', abuse.record_key, 'abuse_decision', abuse.decision,\n 'abuse_retry_after_ms', abuse.retry_after_ms))\n FROM scopes\n LEFT JOIN router_ab_normal_signing_admission_records AS project\n ON project.namespace = session.namespace AND project.org_id = scopes.org_id\n AND project.project_id = scopes.project_id AND project.env_id = scopes.env_id\n AND project.signing_root_version = scopes.signing_root_version\n AND project.record_kind = 'project_policy' AND project.record_key = scopes.project_key\n LEFT JOIN router_ab_normal_signing_admission_records AS abuse\n ON abuse.namespace = session.namespace AND abuse.org_id = scopes.org_id\n AND abuse.project_id = scopes.project_id AND abuse.env_id = scopes.env_id\n AND abuse.signing_root_version = scopes.signing_root_version\n AND abuse.record_kind = 'abuse'\n AND abuse.record_key = scopes.project_key || char(31) || session.wallet_id || char(31) ||\n 'material_activation:' || ? || char(31) || 'ecdsa'\n ) AS ecdsa_policy_records_json,";
36
+ /** Policy rows read with an Ed25519 Wallet Session, for the scopes of its signer. */
37
+ export declare class D1Ed25519AdmissionPolicyRead {
38
+ #private;
39
+ private readonly database;
40
+ private readonly namespace;
41
+ private readonly walletId;
42
+ private readonly authorityId;
43
+ private constructor();
44
+ static fromRows(database: D1DatabaseLike, namespace: string, walletId: string, authorityId: string, rows: unknown): D1Ed25519AdmissionPolicyRead;
45
+ /**
46
+ * Null sends the caller to the database: another store, or a scope this read
47
+ * did not select. Linked-device material has no signer row to select from.
48
+ */
49
+ resolve(database: D1DatabaseLike, namespace: string, input: Ed25519WalletAuthorityAdmissionInput): RouterAbNormalSigningPolicyDecision | null;
50
+ }
51
+ type Ed25519WalletAuthorityAdmissionInput = Extract<RouterAbNormalSigningAdmissionInput, {
52
+ readonly curve: 'ed25519';
53
+ readonly authorityKind: 'wallet_authority_v1';
54
+ }>;
55
+ /** Binds the material activation id. */
56
+ export declare const ECDSA_CREDENTIAL_POLICY_PROJECTION: string;
57
+ /** Binds the signer scope (namespace, organization, project, environment) and the activation id. */
58
+ export declare const ED25519_CREDENTIAL_POLICY_PROJECTION: string;
59
+ export {};
37
60
  //# sourceMappingURL=d1RouterAbNormalSigningAdmissionStore.d.ts.map
@@ -1,4 +1,4 @@
1
- import type { D1DatabaseLike, D1PreparedStatementLike } from '../../../../storage/tenantRoute';
1
+ import type { D1DatabaseLike, D1PreparedStatementLike, D1ResultLike } from '../../../../storage/tenantRoute';
2
2
  import type { VersionedJsonObject, VersionedJsonRecordPutResult, VersionedJsonRecordReadResult } from '../../../framework/versionedJsonRecordStore';
3
3
  export type CloudflareD1VersionedJsonRecordScopeV1 = {
4
4
  readonly namespace: string;
@@ -32,6 +32,10 @@ export type CloudflareD1VersionedJsonRecordBatchPutResultV1 = {
32
32
  readonly kind: 'version_mismatch';
33
33
  readonly key: string;
34
34
  };
35
+ type StoredRecord = {
36
+ readonly version?: unknown;
37
+ readonly record_json?: unknown;
38
+ };
35
39
  export declare class CloudflareD1VersionedJsonRecordStoreError extends Error {
36
40
  readonly code: 'invalid_record' | 'invalid_response' | 'request_failed';
37
41
  constructor(code: 'invalid_record' | 'invalid_response' | 'request_failed', message: string);
@@ -66,7 +70,8 @@ export declare class CloudflareD1VersionedJsonRecordStore<T> {
66
70
  readonly limit?: number;
67
71
  }): Promise<readonly CloudflareD1VersionedJsonRecordReadManyEntryV1<T>[]>;
68
72
  readMany(keys: readonly string[]): Promise<readonly CloudflareD1VersionedJsonRecordReadManyEntryV1<T>[]>;
69
- private parseReadResult;
73
+ prepareRead(key: string): D1PreparedStatementLike;
74
+ parseReadResult(result: D1ResultLike<StoredRecord> | undefined): VersionedJsonRecordReadResult<T>;
70
75
  put(key: string, value: T, expectedVersion: string | null): Promise<VersionedJsonRecordPutResult>;
71
76
  /**
72
77
  * Applies multiple records in one D1 transaction. The guard statement turns
@@ -80,7 +85,7 @@ export declare class CloudflareD1VersionedJsonRecordStore<T> {
80
85
  * commit spans this JSON store and a normalized table (for example, a
81
86
  * recovery envelope plus its WebAuthn authenticator and binding).
82
87
  */
83
- putManyWithAdditionalStatements(mutations: readonly CloudflareD1VersionedJsonRecordMutationV1<T>[], additionalStatements: readonly D1PreparedStatementLike[]): Promise<CloudflareD1VersionedJsonRecordBatchPutResultV1>;
88
+ putManyWithAdditionalStatements(mutations: readonly CloudflareD1VersionedJsonRecordMutationV1<T>[], additionalStatements: readonly D1PreparedStatementLike[], executeBatch?: (statements: readonly D1PreparedStatementLike[]) => Promise<readonly D1ResultLike[]>): Promise<CloudflareD1VersionedJsonRecordBatchPutResultV1>;
84
89
  /**
85
90
  * The same mutation + CAS-guard statements `putManyWithAdditionalStatements`
86
91
  * would run, returned instead of executed, so a caller whose transaction is
@@ -96,7 +101,8 @@ export declare class CloudflareD1VersionedJsonRecordStore<T> {
96
101
  private findBatchConflict;
97
102
  private insert;
98
103
  private update;
99
- private storageKey;
104
+ storageKey(key: string): string;
100
105
  }
101
106
  export declare function createCloudflareD1VersionedJsonRecordStore<T>(options: CloudflareD1VersionedJsonRecordStoreOptions<T>): CloudflareD1VersionedJsonRecordStore<T>;
107
+ export {};
102
108
  //# sourceMappingURL=d1VersionedJsonRecordStore.d.ts.map
@@ -0,0 +1,21 @@
1
+ import type { D1DatabaseLike } from '../../../../storage/tenantRoute';
2
+ declare const TABLES: readonly ["wallet_email_otp_rate_limits", "email_otp_wallet_enrollments", "email_otp_auth_states", "wallets", "wallet_signers", "wallet_recovery_code_locators", "wallet_authorities", "wallet_auth_methods", "wallet_relocation_approvals", "webauthn_credential_bindings", "webauthn_authenticators", "router_ab_yao_versioned_json_records", "authorization_wallet_session_quotas", "wallet_session_authorizations_v2", "wallet_session_hosted_credentials_v2", "wallet_session_hosted_exchange_codes_v2", "verified_wallet_operation_evidence_sets", "authorized_operations", "authorized_operation_audit_events", "linked_device_sessions", "linked_device_authority_allocations", "linked_device_authority_installations", "linked_device_target_credentials", "linked_device_target_commit_reservations", "linked_device_session_transcripts", "linked_device_ed25519_export_root_transfers", "linked_device_email_otp_grants", "linked_device_request_proof_nonces", "linked_device_bootstrap_imports", "linked_device_wallet_session_credential_deliveries_v1"];
3
+ type Table = (typeof TABLES)[number];
4
+ export declare class AuthorizationSnapshotLayout {
5
+ #private;
6
+ readonly table: Table;
7
+ readonly columns: readonly string[];
8
+ readonly keyColumns: readonly string[];
9
+ private constructor();
10
+ static read(database: D1DatabaseLike): Promise<readonly AuthorizationSnapshotLayout[]>;
11
+ static parse(raw: unknown): readonly AuthorizationSnapshotLayout[];
12
+ expressions(): {
13
+ readonly key: string;
14
+ readonly record: string;
15
+ readonly ownership: string;
16
+ };
17
+ snapshotSelection(): string;
18
+ static ownership(table: Table): string;
19
+ }
20
+ export {};
21
+ //# sourceMappingURL=authorizationSnapshotLayout.d.ts.map
@@ -1,3 +1,4 @@
1
+ import type { WalletExecutionAuthority } from '../../../domains/walletRegistration/walletRegistrationReservation';
1
2
  import { type D1WalletAddSignerFinalizeSideEffectStore } from './d1WalletAddSignerFinalizeRecord';
2
3
  import type { WalletAddSignerStartSuccess } from '../../../../core/registrationContracts';
3
4
  import type { CloudflareD1Ed25519YaoLifecycleDecisionStoreV1 } from '../ed25519Yao/d1Ed25519YaoLifecycleDecisionStore';
@@ -59,6 +60,7 @@ export type D1WalletAddSignerStartSideEffectStore = RouterAbEd25519YaoRegistrati
59
60
  export type D1WalletAddSignerStartSideEffectRecord = RouterAbEd25519YaoRegistrationSideEffectRecordV1<D1WalletAddSignerStartTerminalV1, D1WalletAddSignerStartPreparedV1>;
60
61
  export declare function parseD1WalletAddSignerStartSideEffectRecord(raw: unknown): D1WalletAddSignerStartSideEffectRecord | null;
61
62
  export declare class CloudflareD1WalletAddSignerService {
63
+ private readonly executionAuthority;
62
64
  private readonly getRegistrationCeremonyIntentStore;
63
65
  private readonly getEd25519YaoProductRegistration;
64
66
  private readonly ecdsaStrictRegistration;
@@ -70,6 +72,7 @@ export declare class CloudflareD1WalletAddSignerService {
70
72
  private readonly finalizeSideEffects;
71
73
  private readonly yaoLifecycleDecisions;
72
74
  constructor(input: {
75
+ readonly executionAuthority: WalletExecutionAuthority;
73
76
  readonly getRegistrationCeremonyIntentStore: RegistrationCeremonyStoreProvider;
74
77
  readonly getEd25519YaoProductRegistration: Ed25519YaoProductRegistrationProvider;
75
78
  readonly ecdsaStrictRegistration: RouterAbEcdsaStrictRegistrationPort;
@@ -1,6 +1,6 @@
1
1
  import { type WebAuthnCredentialIdB64u, type WebAuthnRpId, type WalletAuthMethodId, type WalletAuthorityId } from '../../../../../../shared-ts/src/utils/domainIds';
2
2
  import { type AddAuthMethodIntentGrant, type AddAuthMethodIntentV1, type AddSignerIntentV1, type RegistrationIntentV1, type WalletId } from '../../../../../../shared-ts/src/utils/registrationIntent';
3
- import { type ActivePasskeyWalletAuthMethodRecordV2, type ActiveWalletAuthMethodRecordV2, type WalletAuthMethodRecordV2 } from '../../../../../../shared-ts/src/utils/walletAuthMethodRecord';
3
+ import { type ActivePasskeyWalletAuthMethodRecordV2, type ActiveWalletAuthMethodRecordV2 } from '../../../../../../shared-ts/src/utils/walletAuthMethodRecord';
4
4
  import { type RegistrationAuthority } from '../../../../../../shared-ts/src/utils/registrationAuthMethodInput';
5
5
  import { type EmailOtpWalletAuthAuthority, type PasskeyWalletAuthAuthority, type WalletAuthAuthorityRef } from '../../../../../../shared-ts/src/utils/walletAuthAuthority';
6
6
  import type { D1PreparedStatementLike } from '../../../../storage/tenantRoute';
@@ -332,15 +332,11 @@ export declare class CloudflareD1WalletAuthMethodService {
332
332
  * Ed25519 leg arrives, so that leg must address the same rows.
333
333
  */
334
334
  readActiveRegistrationIdentity(authority: RegistrationAuthority): Promise<{
335
- readonly walletAuthorityId: WalletAuthMethodRecordV2['walletAuthorityId'];
336
- readonly walletAuthMethodId: WalletAuthMethodRecordV2['walletAuthMethodId'];
335
+ readonly walletAuthorityId: WalletAuthorityId;
336
+ readonly walletAuthMethodId: WalletAuthMethodId;
337
337
  readonly authority: ActiveWalletAuthorityV1;
338
338
  readonly authMethod: ActiveWalletAuthMethodRecordV2;
339
339
  } | null>;
340
- readActiveRegistrationAuthority(authority: RegistrationAuthority): Promise<{
341
- readonly authority: ActiveWalletAuthorityV1;
342
- readonly walletAuthMethodId: WalletAuthMethodId;
343
- } | null>;
344
340
  /**
345
341
  * Verifies a revocation's source proof: bound to this operation, and from a
346
342
  * different active method on an active full-owner authority. An Email OTP
@@ -2,6 +2,7 @@ import { type ActiveWalletAuthorityV1, type PendingWalletAuthorityV1, type Walle
2
2
  import { type DeviceId } from '../../../../../../shared-ts/src/authorization/capabilityKinds';
3
3
  import { type WalletAuthorityId, type WalletAuthMethodId, type WalletId } from '../../../../../../shared-ts/src/utils/domainIds';
4
4
  import { type ActiveWalletAuthMethodRecordV2, type RevokedWalletAuthMethodRecordV2, type WalletAuthMethodRecordV2 } from '../../../../../../shared-ts/src/utils/walletAuthMethodRecord';
5
+ import type { RegistrationAuthority } from '../../../../../../shared-ts/src/utils/registrationAuthMethodInput';
5
6
  import type { D1DatabaseLike, D1PreparedStatementLike } from '../../../../storage/tenantRoute';
6
7
  import { type WalletSignerRecord } from '../../../../core/d1WalletStore';
7
8
  export type D1WalletAuthorityStoreScope = {
@@ -123,6 +124,13 @@ export declare class D1WalletAuthorityStore {
123
124
  readonly promotionAtMs: number;
124
125
  }): Promise<void>;
125
126
  readById(authorityId: WalletAuthorityId): Promise<WalletAuthorityV1 | null>;
127
+ /** Reads the method and its authority from one database snapshot. */
128
+ readActiveRegistrationIdentity(expected: RegistrationAuthority): Promise<{
129
+ readonly walletAuthorityId: WalletAuthorityId;
130
+ readonly walletAuthMethodId: WalletAuthMethodId;
131
+ readonly authority: ActiveWalletAuthorityV1;
132
+ readonly authMethod: ActiveWalletAuthMethodRecordV2;
133
+ } | null>;
126
134
  readByWalletAndDevice(input: {
127
135
  readonly walletId: WalletId;
128
136
  readonly deviceId: DeviceId;
@@ -0,0 +1,20 @@
1
+ import { type D1TenantScope } from '../../../../core/d1TenantStore';
2
+ import type { D1DatabaseLike } from '../../../../storage/tenantRoute';
3
+ import { WalletRelocationSessionSource } from './d1WalletRelocationSessions';
4
+ type CleanupProgress = {
5
+ readonly state: 'cleaning';
6
+ readonly completedAtMs?: never;
7
+ } | {
8
+ readonly state: 'cleaned';
9
+ readonly completedAtMs: number;
10
+ };
11
+ export declare class D1WalletAuthorizationCleanup {
12
+ private readonly database;
13
+ private readonly scope;
14
+ constructor(database: D1DatabaseLike, scope: D1TenantScope);
15
+ advance(source: WalletRelocationSessionSource, rawManifest: unknown, commandDigest: string, nowMs: number): Promise<CleanupProgress>;
16
+ private manifest;
17
+ private read;
18
+ }
19
+ export {};
20
+ //# sourceMappingURL=d1WalletAuthorizationCleanup.d.ts.map
@@ -0,0 +1,12 @@
1
+ import { type D1TenantScope } from '../../../../core/d1TenantStore';
2
+ import type { D1DatabaseLike, D1PreparedStatementLike } from '../../../../storage/tenantRoute';
3
+ import { WalletRelocationSessionSource } from './d1WalletRelocationSessions';
4
+ export declare class D1WalletAuthorizationFreeze {
5
+ private readonly database;
6
+ private readonly scope;
7
+ constructor(database: D1DatabaseLike, scope: D1TenantScope);
8
+ freeze(source: WalletRelocationSessionSource, nowMs: number): Promise<number>;
9
+ freezeStatements(source: WalletRelocationSessionSource, nowMs: number): readonly D1PreparedStatementLike[];
10
+ private read;
11
+ }
12
+ //# sourceMappingURL=d1WalletAuthorizationFreeze.d.ts.map
@@ -0,0 +1,20 @@
1
+ import { type D1TenantScope } from '../../../../core/d1TenantStore';
2
+ import type { D1DatabaseLike, D1PreparedStatementLike } from '../../../../storage/tenantRoute';
3
+ import { AuthorizationSnapshotLayout } from './authorizationSnapshotLayout';
4
+ import { WalletRelocationSessionSource } from './d1WalletRelocationSessions';
5
+ export declare class D1WalletAuthorizationHistory {
6
+ private readonly database;
7
+ private readonly scope;
8
+ constructor(database: D1DatabaseLike, scope: D1TenantScope);
9
+ prepare(source: WalletRelocationSessionSource): Promise<void>;
10
+ restoreSnapshot(source: WalletRelocationSessionSource, records: readonly {
11
+ readonly table: AuthorizationSnapshotLayout;
12
+ readonly recordKey: string;
13
+ readonly recordJson: string;
14
+ }[], completion: readonly D1PreparedStatementLike[]): Promise<void>;
15
+ private restoreStatements;
16
+ private closeStatements;
17
+ private readImport;
18
+ private validateRow;
19
+ }
20
+ //# sourceMappingURL=d1WalletAuthorizationHistory.d.ts.map
@@ -0,0 +1,29 @@
1
+ import { type D1TenantScope } from '../../../../core/d1TenantStore';
2
+ import type { D1DatabaseLike } from '../../../../storage/tenantRoute';
3
+ import { WalletRelocationSessionSource } from './d1WalletRelocationSessions';
4
+ type IntakeProgress = {
5
+ readonly state: 'receiving';
6
+ readonly nextIndex: number;
7
+ readonly chunkCount: number;
8
+ readonly digestHex?: never;
9
+ } | {
10
+ readonly state: 'verified';
11
+ readonly digestHex: string;
12
+ readonly nextIndex?: never;
13
+ readonly chunkCount?: never;
14
+ };
15
+ export declare class D1WalletAuthorizationIntake {
16
+ private readonly database;
17
+ private readonly scope;
18
+ constructor(database: D1DatabaseLike, scope: D1TenantScope);
19
+ prepare(source: WalletRelocationSessionSource, rawManifest: unknown): Promise<IntakeProgress>;
20
+ acceptSnapshot(source: WalletRelocationSessionSource, raw: unknown): Promise<string>;
21
+ activate(source: WalletRelocationSessionSource, rawManifest: unknown, commandDigest: string, nowMs: number): Promise<{
22
+ readonly digestHex: string;
23
+ readonly activatedAtMs: number;
24
+ }>;
25
+ private readActivation;
26
+ private read;
27
+ }
28
+ export {};
29
+ //# sourceMappingURL=d1WalletAuthorizationIntake.d.ts.map