@seams/wallet-server 0.7.3 → 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 (516) hide show
  1. package/THIRD_PARTY_NOTICES.md +1 -9
  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 +35 -12
  25. package/dist/esm/cloud-host.js +20 -22
  26. package/dist/esm/core/EmailOtpRecords.js +1 -217
  27. package/dist/esm/core/EmailOtpStores.js +0 -859
  28. package/dist/esm/core/IdentityStore.js +2 -339
  29. package/dist/esm/core/ThresholdService/config.js +1 -9
  30. package/dist/esm/core/ThresholdService/index.js +0 -4
  31. package/dist/esm/core/ThresholdService/kv.js +1 -66
  32. package/dist/esm/core/ThresholdService/routerAb/ecdsaDerivationPoolFillHandlers.js +1 -13
  33. package/dist/esm/core/ThresholdService/routerAbNormalSigningPolicy.js +1 -11
  34. package/dist/esm/core/ThresholdService/stores/WalletSessionStore.js +0 -541
  35. package/dist/esm/core/ThresholdService/validation.js +2 -346
  36. package/dist/esm/core/WalletAuthMethodStore.js +2 -123
  37. package/dist/esm/core/WalletStore.js +3 -209
  38. package/dist/esm/core/WebAuthnAuthenticatorStore.js +0 -202
  39. package/dist/esm/core/WebAuthnCredentialBindingStore.js +2 -182
  40. package/dist/esm/core/WebAuthnLoginChallengeStore.js +0 -52
  41. package/dist/esm/core/WebAuthnSyncChallengeStore.js +0 -54
  42. package/dist/esm/core/authService/emailOtpConfig.js +1 -195
  43. package/dist/esm/core/authService/emailOtpEnrollment.js +0 -110
  44. package/dist/esm/core/authService/emailOtpSeal.js +0 -63
  45. package/dist/esm/core/authService/nearTransactions.js +3 -98
  46. package/dist/esm/core/authService/rateLimits.js +0 -84
  47. package/dist/esm/core/authService/webauthn.js +2 -298
  48. package/dist/esm/core/authService/webauthnOidcHelpers.js +1 -24
  49. package/dist/esm/core/authService/webauthnWalletBinding.js +0 -37
  50. package/dist/esm/core/config.js +1 -95
  51. package/dist/esm/core/d1EcdsaSignerRead.js +1 -1
  52. package/dist/esm/core/d1IdentityStore.js +1 -2
  53. package/dist/esm/core/d1TenantStore.js +1 -24
  54. package/dist/esm/core/d1WalletAuthMethodStore.js +2 -5
  55. package/dist/esm/core/d1WalletStore.js +2 -2
  56. package/dist/esm/core/deviceLinking/linkedDeviceBootstrap.js +13 -0
  57. package/dist/esm/core/deviceLinking/linkedDeviceSession.js +20 -14
  58. package/dist/esm/core/deviceLinking/requestProof.js +9 -6
  59. package/dist/esm/core/emailOtpD1Statements.js +107 -94
  60. package/dist/esm/core/keyMaterialBrands.js +2 -12
  61. package/dist/esm/core/nearKeys.js +0 -1
  62. package/dist/esm/core/nearRelayerAccountProvisioning.js +6 -9
  63. package/dist/esm/core/passkeyCredentialClaims.js +8 -0
  64. package/dist/esm/core/routerAbSigning/RouterAbEcdsaPresignRuntime.js +2 -6
  65. package/dist/esm/core/routerAbSigning/RouterAbNormalSigningRuntime.js +2 -30
  66. package/dist/esm/core/thresholdEcdsaChainTarget.js +1 -4
  67. package/dist/esm/hosted-wallet-gateway.js +66 -43
  68. package/dist/esm/index.js +6 -19
  69. package/dist/esm/localHostedWalletGatewayHandler.js +12 -0
  70. package/dist/esm/localRegistrationSetupAuthority.js +89 -0
  71. package/dist/esm/router/auth/authRequestValidation.js +8 -16
  72. package/dist/esm/router/auth/webAuthnCredentialCodecs.js +0 -1
  73. package/dist/esm/router/cloudflare/d1/auth/d1AuthorizationAssembly.js +87 -0
  74. package/dist/esm/router/cloudflare/d1/auth/d1RouterApiAuthConfig.js +12 -2
  75. package/dist/esm/router/cloudflare/d1/auth/d1RouterApiAuthService.js +32 -281
  76. package/dist/esm/router/cloudflare/d1/authorization/authorizedOperationStatements.js +24 -22
  77. package/dist/esm/router/cloudflare/d1/authorization/d1AuthorizationStore.js +8 -6
  78. package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceAuthorityInstallService.js +12 -13
  79. package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceEd25519ExportRootStore.js +6 -1
  80. package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceEmailOtpGrantStore.js +12 -2
  81. package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceEmailOtpTargetFactor.js +4 -4
  82. package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceOwnerAuthorizationProvider.js +1 -1
  83. package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceRequestProofNonceStore.js +3 -9
  84. package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceRouteService.js +2 -1
  85. package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceSessionStore.js +89 -7
  86. package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceTargetCredentialProvider.js +23 -14
  87. package/dist/esm/router/cloudflare/d1/ed25519Yao/d1Ed25519YaoCapabilityPersistence.js +9 -6
  88. package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpChallengeIssuer.js +0 -1
  89. package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpChallengeService.js +0 -1
  90. package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpChallengeStore.js +1 -1
  91. package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpChallengeVerifier.js +0 -1
  92. package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpEnrollmentStore.js +1 -1
  93. package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpGrantStore.js +1 -7
  94. package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpRateLimitStore.js +19 -13
  95. package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpRecords.js +0 -1
  96. package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpRecoveryService.js +0 -1
  97. package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpRegistrationEnrollmentFinalizer.js +2 -2
  98. package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpServerSealRuntime.js +0 -1
  99. package/dist/esm/router/cloudflare/d1/emailOtp/d1GoogleEmailOtpRegistrationAttemptStore.js +44 -12
  100. package/dist/esm/router/cloudflare/d1/emailOtp/d1GoogleEmailOtpRegistrationRecords.js +1 -49
  101. package/dist/esm/router/cloudflare/d1/emailOtp/d1GoogleEmailOtpSessionResolver.js +19 -31
  102. package/dist/esm/router/cloudflare/d1/emailOtp/d1GoogleRegistrationCompletion.js +85 -0
  103. package/dist/esm/router/cloudflare/d1/identity/d1IdentityRecords.js +0 -1
  104. package/dist/esm/router/cloudflare/d1/identity/d1IdentityService.js +0 -48
  105. package/dist/esm/router/cloudflare/d1/near/d1SponsoredNearAccount.js +242 -0
  106. package/dist/esm/router/cloudflare/d1/oidc/d1OidcBoundary.js +0 -1
  107. package/dist/esm/router/cloudflare/d1/oidc/d1OidcVerificationService.js +2 -29
  108. package/dist/esm/router/cloudflare/d1/oidc/googleOidcToken.js +41 -0
  109. package/dist/esm/router/cloudflare/d1/passkeyCustody/d1PasskeyCustodyRouteService.js +5 -0
  110. package/dist/esm/router/cloudflare/d1/passkeyCustody/d1WalletCustodyCommitStore.js +34 -0
  111. package/dist/esm/router/cloudflare/d1/registration/d1RegistrationCeremonyRecordStore.js +9 -3
  112. package/dist/esm/router/cloudflare/d1/registration/d1RegistrationCeremonyRecords.js +7 -13
  113. package/dist/esm/router/cloudflare/d1/registration/d1RegistrationCeremonyStore.js +25 -13
  114. package/dist/esm/router/cloudflare/d1/registration/d1RegistrationIntentService.js +0 -1
  115. package/dist/esm/router/cloudflare/d1/registration/d1RegistrationSetupSupport.js +74 -0
  116. package/dist/esm/router/cloudflare/d1/registration/d1WalletRegistrationCommitStore.js +7 -1
  117. package/dist/esm/router/cloudflare/d1/registration/d1WalletRegistrationService.js +69 -238
  118. package/dist/esm/router/cloudflare/d1/registration/d1WalletRegistrationSetup.js +12 -56
  119. package/dist/esm/router/cloudflare/d1/registration/d1WalletRegistrationSetupExecution.js +155 -0
  120. package/dist/esm/router/cloudflare/d1/registration/walletRegistrationEstablishedSessionIssuer.js +1 -3
  121. package/dist/esm/router/cloudflare/d1/signingAdmission/d1RouterAbNormalSigningAdmissionStore.js +12 -6
  122. package/dist/esm/router/cloudflare/d1/wallet/d1WalletAddSignerFinalizeRecord.js +68 -0
  123. package/dist/esm/router/cloudflare/d1/wallet/d1WalletAddSignerService.js +7 -54
  124. package/dist/esm/router/cloudflare/d1/wallet/d1WalletAuthMethodService.js +9 -8
  125. package/dist/esm/router/cloudflare/d1/wallet/d1WalletAuthorityStore.js +2 -142
  126. package/dist/esm/router/cloudflare/d1/webauthn/d1WebAuthnAuthService.js +25 -4
  127. package/dist/esm/router/cloudflare/d1/webauthn/d1WebAuthnRecords.js +4 -70
  128. package/dist/esm/router/cloudflare/d1/webauthn/d1WebAuthnStore.js +23 -7
  129. package/dist/esm/router/cloudflare/runtime/staticWalletConsoleBinding.js +1 -0
  130. package/dist/esm/router/cloudflare/runtime/walletConsoleOps.js +1 -0
  131. package/dist/esm/router/cloudflare/runtime/walletConsoleOpsClient.js +5 -0
  132. package/dist/esm/router/cloudflare/runtime/walletGateway.js +1 -1
  133. package/dist/esm/router/cloudflare/runtime/walletRuntimeOps.js +16 -4
  134. package/dist/esm/router/cloudflare-adaptor.js +1 -2
  135. package/dist/esm/router/cloudflare.js +1342 -1733
  136. package/dist/esm/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistration.js +11 -8
  137. package/dist/esm/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistrationPartitionedStateStore.js +3 -2
  138. package/dist/esm/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistrationPartitioning.js +6 -6
  139. package/dist/esm/router/domains/ed25519Yao/export/routerAbEd25519YaoExport.js +6 -6
  140. package/dist/esm/router/domains/ed25519Yao/export/routerAbEd25519YaoExportRequestScopedCloudflare.js +3 -0
  141. package/dist/esm/router/domains/ed25519Yao/recovery/routerAbEd25519YaoRecoveryRequestScopedCloudflare.js +8 -0
  142. package/dist/esm/router/domains/emailOtp/emailOtpRequestValidation.js +0 -1
  143. package/dist/esm/router/domains/passkeyCustody/passkeyCustodyEnvelopeRetrieval.js +2 -8
  144. package/dist/esm/router/domains/passkeyCustody/walletCustodyRegistrationCommit.js +2 -8
  145. package/dist/esm/router/domains/signingOperations/routerAbPrivateSigningWorker.js +5 -19
  146. package/dist/esm/router/domains/signingOperations/walletExecutionAdmission.js +2 -3
  147. package/dist/esm/router/domains/walletRegistration/walletRegistrationReservation.js +70 -0
  148. package/dist/esm/router/domains/walletRegistration/walletRegistrationRoutes.js +10 -11
  149. package/dist/esm/router/domains/walletRegistration/walletRegistrationSetupPayload.js +2 -3
  150. package/dist/esm/router/domains/walletUnlock/walletUnlockRouteHandlers.js +14 -0
  151. package/dist/esm/router/express.js +574 -479
  152. package/dist/esm/router/framework/http.js +2 -0
  153. package/dist/esm/router/framework/registrationSetupDispatch.js +14 -0
  154. package/dist/esm/router/framework/ror/normalize.js +0 -1
  155. package/dist/esm/router/framework/ror/options.js +0 -1
  156. package/dist/esm/router/framework/ror/provider.js +0 -1
  157. package/dist/esm/router/framework/ror/staticProvider.js +0 -1
  158. package/dist/esm/router/framework/routeDefinitions.js +1 -2
  159. package/dist/esm/router/framework/routerApiWebhooks.js +0 -1
  160. package/dist/esm/router/ror.js +0 -1
  161. package/dist/esm/router/transport/fetch/createFetchRouter.js +0 -2
  162. package/dist/esm/router/transport/fetch/routes/auth.js +2 -0
  163. package/dist/esm/router/transport/fetch/routes/deviceLinking.js +36 -147
  164. package/dist/esm/router/transport/fetch/routes/deviceLinkingOwnerAuthorization.js +3 -2
  165. package/dist/esm/router/transport/fetch/routes/deviceLinkingResponses.js +130 -0
  166. package/dist/esm/router/transport/fetch/routes/ecdsaOperationStepUpFactor.js +171 -0
  167. package/dist/esm/router/transport/fetch/routes/passkeyCustody.js +1 -0
  168. package/dist/esm/router/transport/fetch/routes/syncAccount.js +7 -2
  169. package/dist/esm/router/transport/fetch/routes/thresholdEcdsa.js +19 -115
  170. package/dist/esm/router/transport/fetch/routes/walletRegistration.js +3 -1
  171. package/dist/esm/shared-ts/src/authorization/walletSessionIssuance.js +0 -1
  172. package/dist/esm/shared-ts/src/device-linking/authorityActivation.js +0 -2
  173. package/dist/esm/shared-ts/src/device-linking/contracts.js +16 -1
  174. package/dist/esm/shared-ts/src/device-linking/digests.js +1 -8
  175. package/dist/esm/shared-ts/src/near/actions.js +0 -1
  176. package/dist/esm/shared-ts/src/near/nearClient.js +0 -2
  177. package/dist/esm/shared-ts/src/signing-lanes/evmFamilySigningKeySlotId.js +1 -1
  178. package/dist/esm/shared-ts/src/signing-lanes/index.js +1 -6
  179. package/dist/esm/shared-ts/src/signing-lanes/ownerContinuity.js +1 -1
  180. package/dist/esm/shared-ts/src/signing-lanes/participantDigest.js +2 -81
  181. package/dist/esm/shared-ts/src/signing-lanes/participants.js +1 -219
  182. package/dist/esm/shared-ts/src/signing-lanes/recordParsers.js +0 -3
  183. package/dist/esm/shared-ts/src/tenant-root/tenantRootOperationRecord.js +1 -2
  184. package/dist/esm/shared-ts/src/threshold/ecdsaDerivationRoleLocalBootstrap.js +0 -1
  185. package/dist/esm/shared-ts/src/threshold/keyMaterialBrands.js +1 -22
  186. package/dist/esm/shared-ts/src/threshold/participants.js +0 -1
  187. package/dist/esm/shared-ts/src/threshold/signingRootScope.js +0 -1
  188. package/dist/esm/shared-ts/src/utils/addWalletAuthMethod.js +4 -13
  189. package/dist/esm/shared-ts/src/utils/canonicalPrimitives.js +1 -7
  190. package/dist/esm/shared-ts/src/utils/domainIds.js +1 -16
  191. package/dist/esm/shared-ts/src/utils/ecdsaCapabilityActivation.js +1 -11
  192. package/dist/esm/shared-ts/src/utils/ecdsaKeyFactsInventory.js +0 -1
  193. package/dist/esm/shared-ts/src/utils/errors.js +1 -19
  194. package/dist/esm/shared-ts/src/utils/near.js +1 -1
  195. package/dist/esm/shared-ts/src/utils/registrationEstablishedSession.js +1 -1
  196. package/dist/esm/shared-ts/src/utils/registrationIds.js +1 -5
  197. package/dist/esm/shared-ts/src/utils/registrationIntent.js +0 -1
  198. package/dist/esm/shared-ts/src/utils/registrationSetupOperation.js +8 -0
  199. package/dist/esm/shared-ts/src/utils/registrationSignerPlan.js +1 -1
  200. package/dist/esm/shared-ts/src/utils/routerAbEcdsaDerivation.js +0 -1
  201. package/dist/esm/shared-ts/src/utils/validation.js +1 -5
  202. package/dist/esm/shared-ts/src/utils/walletAuthAuthority.js +0 -1
  203. package/dist/esm/shared-ts/src/utils/walletManagementProtocol.js +6 -0
  204. package/dist/esm/shared-ts/src/utils/wireSchema.js +2 -13
  205. package/dist/esm/shared-ts/src/wallet-recovery/backupAcknowledgement.js +6 -24
  206. package/dist/esm/shared-ts/src/wallet-recovery/recoveryCodeLocator.js +0 -1
  207. package/dist/esm/shared-ts/src/wallet-recovery/recoveryKeyId.js +5 -6
  208. package/dist/esm/storage/d1Sql.js +1 -7
  209. package/dist/esm/threshold/session/signingSessionSeal/crypto/cipher.js +0 -1
  210. package/dist/esm/threshold/session/signingSessionSeal/guards/backends.js +1 -2
  211. package/dist/esm/threshold/session/signingSessionSeal/idempotencyBackends.js +0 -1
  212. package/dist/esm/threshold/session/signingSessionSeal/idempotencyRecords.js +0 -1
  213. package/dist/esm/threshold/session/signingSessionSeal/options.js +0 -1
  214. package/dist/esm/wasm/evm_crypto/pkg/evm_crypto_bg.wasm +0 -0
  215. package/dist/esm/wasm/near_signer/pkg/wasm_signer_worker.js +0 -611
  216. package/dist/esm/wasm/near_signer/pkg/wasm_signer_worker_bg.wasm +0 -0
  217. package/dist/esm/wasm/shamir3pass_runtime/pkg/shamir3pass_runtime_bg.wasm +0 -0
  218. package/dist/types/shared-ts/src/authorization/capabilityKinds.d.ts +0 -4
  219. package/dist/types/shared-ts/src/device-linking/contracts.d.ts +1 -0
  220. package/dist/types/shared-ts/src/signing-lanes/evmFamilySigningKeySlotId.d.ts +0 -2
  221. package/dist/types/shared-ts/src/signing-lanes/execution.d.ts +0 -11
  222. package/dist/types/shared-ts/src/signing-lanes/ids.d.ts +2 -7
  223. package/dist/types/shared-ts/src/signing-lanes/index.d.ts +0 -4
  224. package/dist/types/shared-ts/src/signing-lanes/ownerContinuity.d.ts +0 -1
  225. package/dist/types/shared-ts/src/signing-lanes/participantDigest.d.ts +0 -18
  226. package/dist/types/shared-ts/src/signing-lanes/participants.d.ts +6 -35
  227. package/dist/types/shared-ts/src/signing-lanes/rotation.d.ts +6 -843
  228. package/dist/types/shared-ts/src/threshold/keyMaterialBrands.d.ts +0 -10
  229. package/dist/types/shared-ts/src/threshold/participants.d.ts +1 -1
  230. package/dist/types/shared-ts/src/utils/addWalletAuthMethod.d.ts +1 -133
  231. package/dist/types/shared-ts/src/utils/addWalletAuthMethod.typecheck.d.ts +4 -18
  232. package/dist/types/shared-ts/src/utils/domainIds.d.ts +0 -12
  233. package/dist/types/shared-ts/src/utils/errors.d.ts +0 -4
  234. package/dist/types/shared-ts/src/utils/near.d.ts +0 -20
  235. package/dist/types/shared-ts/src/utils/normalize.d.ts +0 -2
  236. package/dist/types/shared-ts/src/utils/registrationSetupOperation.d.ts +3 -0
  237. package/dist/types/shared-ts/src/utils/validation.d.ts +1 -3
  238. package/dist/types/shared-ts/src/utils/walletCapabilityBindings.d.ts +0 -1
  239. package/dist/types/shared-ts/src/utils/walletManagementProtocol.d.ts +3 -0
  240. package/dist/types/shared-ts/src/utils/wireSchema.d.ts +0 -2
  241. package/dist/types/shared-ts/src/wallet-recovery/backupAcknowledgement.d.ts +0 -1
  242. package/dist/types/shared-ts/src/wallet-recovery/recoveryCodeReservation.d.ts +1 -10
  243. package/dist/types/shared-ts/src/wallet-recovery/recoveryCodes.d.ts +1 -3
  244. package/dist/types/shared-ts/src/wallet-recovery/recoveryKeyId.d.ts +5 -21
  245. package/dist/types/wallet-server/src/authorization/lifecycleRouting.d.ts +32 -0
  246. package/dist/types/wallet-server/src/authorization/lifecycleRouting.typecheck.d.ts +2 -0
  247. package/dist/types/wallet-server/src/authorization/recoveryRouting.d.ts +22 -0
  248. package/dist/types/wallet-server/src/authorization/recoveryRouting.typecheck.d.ts +2 -0
  249. package/dist/types/wallet-server/src/authorization/service.d.ts +8 -1
  250. package/dist/types/wallet-server/src/authorization/sessionRouting.d.ts +20 -0
  251. package/dist/types/wallet-server/src/authorization/sessionRouting.typecheck.d.ts +2 -0
  252. package/dist/types/wallet-server/src/cloud-host.d.ts +31 -9
  253. package/dist/types/wallet-server/src/core/EmailOtpRecords.d.ts +1 -22
  254. package/dist/types/wallet-server/src/core/EmailOtpStores.d.ts +1 -79
  255. package/dist/types/wallet-server/src/core/IdentityStore.d.ts +0 -10
  256. package/dist/types/wallet-server/src/core/RegistrationCeremonyStore.d.ts +0 -1
  257. package/dist/types/wallet-server/src/core/ThresholdService/config.d.ts +0 -2
  258. package/dist/types/wallet-server/src/core/ThresholdService/index.d.ts +1 -3
  259. package/dist/types/wallet-server/src/core/ThresholdService/kv.d.ts +0 -7
  260. package/dist/types/wallet-server/src/core/ThresholdService/routerAb/ecdsaDerivationPoolFillHandlers.d.ts +0 -3
  261. package/dist/types/wallet-server/src/core/ThresholdService/routerAbNormalSigningPolicy.d.ts +0 -1
  262. package/dist/types/wallet-server/src/core/ThresholdService/stores/WalletSessionStore.d.ts +7 -19
  263. package/dist/types/wallet-server/src/core/ThresholdService/validation.d.ts +0 -34
  264. package/dist/types/wallet-server/src/core/WalletAuthMethodStore.d.ts +1 -5
  265. package/dist/types/wallet-server/src/core/WalletStore.d.ts +0 -3
  266. package/dist/types/wallet-server/src/core/WebAuthnAuthenticatorStore.d.ts +0 -20
  267. package/dist/types/wallet-server/src/core/WebAuthnCredentialBindingStore.d.ts +1 -27
  268. package/dist/types/wallet-server/src/core/WebAuthnLoginChallengeStore.d.ts +2 -16
  269. package/dist/types/wallet-server/src/core/WebAuthnSyncChallengeStore.d.ts +22 -14
  270. package/dist/types/wallet-server/src/core/authService/emailOtpConfig.d.ts +0 -24
  271. package/dist/types/wallet-server/src/core/authService/emailOtpEnrollment.d.ts +1 -70
  272. package/dist/types/wallet-server/src/core/authService/emailOtpSeal.d.ts +0 -13
  273. package/dist/types/wallet-server/src/core/authService/githubOAuth.d.ts +2 -1
  274. package/dist/types/wallet-server/src/core/authService/nearTransactions.d.ts +1 -39
  275. package/dist/types/wallet-server/src/core/authService/rateLimits.d.ts +0 -17
  276. package/dist/types/wallet-server/src/core/authService/webauthn.d.ts +0 -125
  277. package/dist/types/wallet-server/src/core/authService/webauthnOidcHelpers.d.ts +0 -3
  278. package/dist/types/wallet-server/src/core/authService/webauthnVerificationOutcomes.d.ts +1 -1
  279. package/dist/types/wallet-server/src/core/authService/webauthnWalletBinding.d.ts +0 -12
  280. package/dist/types/wallet-server/src/core/config.d.ts +0 -10
  281. package/dist/types/wallet-server/src/core/d1IdentityStore.d.ts +0 -2
  282. package/dist/types/wallet-server/src/core/d1TenantStore.d.ts +0 -7
  283. package/dist/types/wallet-server/src/core/d1WalletAuthMethodStore.d.ts +0 -1
  284. package/dist/types/wallet-server/src/core/deviceLinking/linkedDeviceBootstrap.d.ts +19 -0
  285. package/dist/types/wallet-server/src/core/deviceLinking/linkedDeviceSession.d.ts +8 -6
  286. package/dist/types/wallet-server/src/core/deviceLinking/requestProof.d.ts +2 -5
  287. package/dist/types/wallet-server/src/core/emailOtpD1Statements.d.ts +10 -7
  288. package/dist/types/wallet-server/src/core/keyMaterialBrands.d.ts +1 -5
  289. package/dist/types/wallet-server/src/core/nearRelayerAccountProvisioning.d.ts +0 -1
  290. package/dist/types/wallet-server/src/core/passkeyCredentialClaims.d.ts +9 -0
  291. package/dist/types/wallet-server/src/core/routerAbSigning/RouterAbEcdsaPresignRuntime.d.ts +0 -2
  292. package/dist/types/wallet-server/src/core/routerAbSigning/RouterAbNormalSigningRuntime.d.ts +0 -2
  293. package/dist/types/wallet-server/src/core/threeRouteRegistrationContracts.d.ts +1 -92
  294. package/dist/types/wallet-server/src/core/threeRouteRegistrationContracts.typecheck.d.ts +4 -52
  295. package/dist/types/wallet-server/src/core/thresholdEcdsaChainTarget.d.ts +0 -1
  296. package/dist/types/wallet-server/src/core/types.d.ts +0 -299
  297. package/dist/types/wallet-server/src/hosted-wallet-gateway.d.ts +15 -3
  298. package/dist/types/wallet-server/src/index.d.ts +8 -13
  299. package/dist/types/wallet-server/src/localRegistrationSetupAuthority.d.ts +13 -0
  300. package/dist/types/wallet-server/src/router/cloudflare/d1/auth/d1AuthorizationAssembly.d.ts +23 -0
  301. package/dist/types/wallet-server/src/router/cloudflare/d1/auth/d1RouterApiAuthConfig.d.ts +25 -3
  302. package/dist/types/wallet-server/src/router/cloudflare/d1/authorization/d1AuthorizationStore.d.ts +1 -1
  303. package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceAuthorityInstallService.d.ts +3 -1
  304. package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceEmailOtpGrantStore.d.ts +7 -1
  305. package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceRequestProofNonceStore.d.ts +1 -10
  306. package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceRouteService.d.ts +4 -0
  307. package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceSessionStore.d.ts +6 -0
  308. package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceTargetPlanner.d.ts +1 -13
  309. package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpChallengeService.d.ts +2 -2
  310. package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpChallengeStore.d.ts +1 -1
  311. package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpGrantStore.d.ts +0 -2
  312. package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpRateLimitStore.d.ts +18 -2
  313. package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1GoogleEmailOtpRegistrationAttemptStore.d.ts +29 -1
  314. package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1GoogleEmailOtpRegistrationRecords.d.ts +3 -16
  315. package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1GoogleEmailOtpSessionResolver.d.ts +7 -2
  316. package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1GoogleRegistrationCompletion.d.ts +23 -0
  317. package/dist/types/wallet-server/src/router/cloudflare/d1/identity/d1IdentityService.d.ts +0 -12
  318. package/dist/types/wallet-server/src/router/cloudflare/d1/near/d1SponsoredNearAccount.d.ts +24 -0
  319. package/dist/types/wallet-server/src/router/cloudflare/d1/near/d1SponsoredNearAccount.typecheck.d.ts +2 -0
  320. package/dist/types/wallet-server/src/router/cloudflare/d1/oidc/d1OidcVerificationService.d.ts +0 -1
  321. package/dist/types/wallet-server/src/router/cloudflare/d1/oidc/googleOidcToken.d.ts +4 -0
  322. package/dist/types/wallet-server/src/router/cloudflare/d1/passkeyCustody/d1PasskeyCustodyRouteService.d.ts +5 -0
  323. package/dist/types/wallet-server/src/router/cloudflare/d1/passkeyCustody/d1WalletCustodyCommitStore.d.ts +9 -0
  324. package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1RegistrationCeremonyRecordStore.d.ts +1 -1
  325. package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1RegistrationCeremonyRecords.d.ts +10 -11
  326. package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1RegistrationCeremonyStore.d.ts +3 -2
  327. package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1RegistrationSetupSupport.d.ts +51 -0
  328. package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1WalletRegistrationCommitStore.d.ts +3 -0
  329. package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1WalletRegistrationService.d.ts +30 -47
  330. package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1WalletRegistrationSetup.d.ts +3 -30
  331. package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1WalletRegistrationSetupExecution.d.ts +11 -0
  332. package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletAddSignerFinalizeRecord.d.ts +27 -0
  333. package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletAddSignerService.d.ts +1 -10
  334. package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletAuthMethodService.d.ts +2 -2
  335. package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletAuthorityStore.d.ts +0 -4
  336. package/dist/types/wallet-server/src/router/cloudflare/d1/webauthn/d1WebAuthnAuthService.d.ts +3 -0
  337. package/dist/types/wallet-server/src/router/cloudflare/d1/webauthn/d1WebAuthnRecords.d.ts +0 -13
  338. package/dist/types/wallet-server/src/router/cloudflare/d1/webauthn/d1WebAuthnStore.d.ts +23 -10
  339. package/dist/types/wallet-server/src/router/cloudflare/d1/webauthn/d1WebAuthnStore.typecheck.d.ts +2 -0
  340. package/dist/types/wallet-server/src/router/cloudflare/runtime/cloudflare.types.d.ts +0 -2
  341. package/dist/types/wallet-server/src/router/cloudflare/runtime/walletConsoleOps.d.ts +1 -0
  342. package/dist/types/wallet-server/src/router/cloudflare/runtime/walletConsoleOpsClient.d.ts +2 -0
  343. package/dist/types/wallet-server/src/router/cloudflare/runtime/walletGateway.d.ts +1 -1
  344. package/dist/types/wallet-server/src/router/cloudflare/runtime/walletRuntimeOps.d.ts +3 -0
  345. package/dist/types/wallet-server/src/router/cloudflare-adaptor.d.ts +0 -1
  346. package/dist/types/wallet-server/src/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistration.d.ts +1 -1
  347. package/dist/types/wallet-server/src/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistrationPartitioning.d.ts +2 -2
  348. package/dist/types/wallet-server/src/router/domains/ed25519Yao/export/routerAbEd25519YaoExport.d.ts +2 -2
  349. package/dist/types/wallet-server/src/router/domains/ed25519Yao/export/routerAbEd25519YaoExport.typecheck.d.ts +2 -0
  350. package/dist/types/wallet-server/src/router/domains/ed25519Yao/export/routerAbEd25519YaoExportRequestScopedCloudflare.d.ts +2 -0
  351. package/dist/types/wallet-server/src/router/domains/ed25519Yao/recovery/routerAbEd25519YaoRecoveryRequestScopedCloudflare.d.ts +2 -0
  352. package/dist/types/wallet-server/src/router/domains/passkeyCustody/passkeyCustodyEnvelopeRetrieval.d.ts +0 -2
  353. package/dist/types/wallet-server/src/router/domains/passkeyCustody/walletCustodyRegistrationCommit.d.ts +0 -3
  354. package/dist/types/wallet-server/src/router/domains/signingOperations/routerAbPrivateSigningWorker.d.ts +0 -17
  355. package/dist/types/wallet-server/src/router/domains/signingOperations/walletExecutionAdmission.d.ts +1 -2
  356. package/dist/types/wallet-server/src/router/domains/walletRegistration/walletRegistrationInputs.d.ts +1 -0
  357. package/dist/types/wallet-server/src/router/domains/walletRegistration/walletRegistrationReservation.d.ts +51 -0
  358. package/dist/types/wallet-server/src/router/domains/walletRegistration/walletRegistrationRoutes.d.ts +2 -10
  359. package/dist/types/wallet-server/src/router/domains/walletRegistration/walletRegistrationSetupPayload.d.ts +2 -2
  360. package/dist/types/wallet-server/src/router/framework/authServicePort.d.ts +14 -34
  361. package/dist/types/wallet-server/src/router/framework/googleLoginResolution.typecheck.d.ts +2 -0
  362. package/dist/types/wallet-server/src/router/framework/registrationSetupDispatch.d.ts +13 -0
  363. package/dist/types/wallet-server/src/router/transport/fetch/routes/deviceLinking.d.ts +1 -1
  364. package/dist/types/wallet-server/src/router/transport/fetch/routes/deviceLinkingResponses.d.ts +17 -0
  365. package/dist/types/wallet-server/src/router/transport/fetch/routes/ecdsaOperationStepUpFactor.d.ts +37 -0
  366. package/dist/types/wallet-server/src/storage/d1Sql.d.ts +0 -1
  367. package/migrations/d1-signer/0040_namespace_home_challenges.sql +16 -0
  368. package/migrations/d1-signer/0041_step_up_admission_expiry.sql +28 -0
  369. package/migrations/d1-signer/0042_deployment_resource_challenges.sql +4 -0
  370. package/migrations/d1-signer/0043_google_registration_candidate_claim.sql +2 -0
  371. package/migrations/d1-signer/0044_linked_device_bootstrap_imports.sql +6 -0
  372. package/migrations/d1-signer/0045_wallet_owned_capability_receipts.sql +29 -0
  373. package/migrations/d1-signer/0046_wallet_owned_signing_abuse.sql +41 -0
  374. package/migrations/d1-signer/0047_remove_unused_near_public_keys.sql +2 -0
  375. package/migrations/d1-signer/0048_operation_owner_scope.sql +45 -0
  376. package/package.json +2 -3
  377. package/src/README.md +11 -3
  378. package/dist/esm/core/AuthService.js +0 -2
  379. package/dist/esm/core/NearPublicKeyStore.js +0 -200
  380. package/dist/esm/core/ThresholdService/stores/CloudflareDurableObjectStore.js +0 -397
  381. package/dist/esm/core/ThresholdService/stores/KeyStore.js +0 -140
  382. package/dist/esm/core/ThresholdService/stores/SessionStore.js +0 -361
  383. package/dist/esm/core/ThresholdService/stores/StoreConfig.js +0 -13
  384. package/dist/esm/core/ThresholdService/stores/exportReplayGuard.js +0 -7
  385. package/dist/esm/core/authService/AuthService.js +0 -594
  386. package/dist/esm/core/authService/bytes.js +0 -19
  387. package/dist/esm/core/authService/configValues.js +0 -15
  388. package/dist/esm/core/authService/emailOtpChallengeOperations.js +0 -123
  389. package/dist/esm/core/authService/emailOtpChallengeProof.js +0 -183
  390. package/dist/esm/core/authService/emailOtpChallengeVerification.js +0 -264
  391. package/dist/esm/core/authService/emailOtpChallenges.js +0 -225
  392. package/dist/esm/core/authService/emailOtpDelivery.js +0 -134
  393. package/dist/esm/core/authService/emailOtpGrant.js +0 -43
  394. package/dist/esm/core/authService/emailOtpRegistrationEnrollment.js +0 -144
  395. package/dist/esm/core/authService/emailOtpUnlock.js +0 -174
  396. package/dist/esm/core/authService/googleEmailOtpOperations.js +0 -141
  397. package/dist/esm/core/authService/googleEmailOtpRegistration.js +0 -587
  398. package/dist/esm/core/authService/identity.js +0 -42
  399. package/dist/esm/core/authService/identityOperations.js +0 -32
  400. package/dist/esm/core/authService/nearAccountOperations.js +0 -229
  401. package/dist/esm/core/authService/nearPublicKeyMetadata.js +0 -108
  402. package/dist/esm/core/authService/oidcVerification.js +0 -249
  403. package/dist/esm/core/authService/registrationThresholdHelpers.js +0 -30
  404. package/dist/esm/core/authService/runtime.js +0 -45
  405. package/dist/esm/core/authService/storeRegistry.js +0 -102
  406. package/dist/esm/core/authService/thresholdStoreSummary.js +0 -32
  407. package/dist/esm/core/authService/webauthnAuthority.js +0 -17
  408. package/dist/esm/core/defaultConfigsServer.js +0 -9
  409. package/dist/esm/core/hostedAccountIds.js +0 -225
  410. package/dist/esm/core/routerAbSigning/createRouterAbSigningRuntimes.js +0 -84
  411. package/dist/esm/core/signingLanes/LaneAggregateRevocationApplicationService.js +0 -86
  412. package/dist/esm/core/signingLanes/LaneEnrollmentActivation.js +0 -324
  413. package/dist/esm/core/signingLanes/LaneEnrollmentRevocation.js +0 -173
  414. package/dist/esm/core/signingLanes/LaneLifecycleApplicationService.js +0 -198
  415. package/dist/esm/core/signingLanes/ecdsaServerRetirement.js +0 -73
  416. package/dist/esm/core/signingLanes/ed25519ServerRetirement.js +0 -68
  417. package/dist/esm/core/signingLanes/signingWorkerLaneMaterialIdentity.js +0 -0
  418. package/dist/esm/core/storeBackends.js +0 -208
  419. package/dist/esm/core/utils.js +0 -14
  420. package/dist/esm/core/webAuthnStoreBackends.js +0 -198
  421. package/dist/esm/router/cloudflare/d1/near/d1NearPublicKeyStore.js +0 -49
  422. package/dist/esm/router/cloudflare/d1/signingLanes/d1EcdsaLanePrivateBindingResolver.js +0 -10
  423. package/dist/esm/router/cloudflare/d1/signingLanes/d1LaneAggregateRevocationApplicationService.js +0 -22
  424. package/dist/esm/router/cloudflare/d1/signingLanes/d1LaneEffectJournalStore.js +0 -166
  425. package/dist/esm/router/cloudflare/d1/signingLanes/d1LaneEnrollmentGateway.js +0 -38
  426. package/dist/esm/router/cloudflare/d1/signingLanes/d1LaneLifecycleApplicationService.js +0 -20
  427. package/dist/esm/router/cloudflare/d1/signingLanes/d1LaneLifecycleStore.js +0 -1459
  428. package/dist/esm/router/cloudflare/d1/signingLanes/d1LaneLockStore.js +0 -114
  429. package/dist/esm/router/cloudflare/d1/signingLanes/d1LaneProtocolCommitter.js +0 -16
  430. package/dist/esm/router/cloudflare/d1/signingLanes/d1LaneRecords.js +0 -171
  431. package/dist/esm/router/cloudflare/d1/signingLanes/index.js +0 -10
  432. package/dist/esm/router/cloudflare/durableObjects/thresholdStore.js +0 -397
  433. package/dist/esm/router/cloudflare/signingLanes/cloudflareLaneCurveExecution.js +0 -597
  434. package/dist/esm/router/cloudflare/signingLanes/cloudflareLaneProtocolCommitter.js +0 -273
  435. package/dist/esm/router/cloudflare/signingLanes/index.js +0 -4
  436. package/dist/esm/router/cloudflare/signingLanes/linkedDeviceEd25519CeremonyBinding.js +0 -32
  437. package/dist/esm/router/transport/fetch/routes/nearPublicKeys.js +0 -27
  438. package/dist/esm/shared-ts/src/signing-lanes/rotation.js +0 -8
  439. package/dist/esm/shared-ts/src/signing-lanes/rotationDigests.js +0 -358
  440. package/dist/esm/shared-ts/src/signing-lanes/rotationLifecycle.js +0 -313
  441. package/dist/esm/shared-ts/src/signing-lanes/rotationParsers.js +0 -532
  442. package/dist/esm/shared-ts/src/signing-lanes/rotationProtocolParsers.js +0 -323
  443. package/dist/esm/shared-ts/src/signing-lanes/rotationWireFields.js +0 -59
  444. package/dist/types/shared-ts/src/signing-lanes/participantDigest.typecheck.d.ts +0 -2
  445. package/dist/types/shared-ts/src/signing-lanes/rotation.typecheck.d.ts +0 -2
  446. package/dist/types/shared-ts/src/signing-lanes/rotationDigests.d.ts +0 -13
  447. package/dist/types/shared-ts/src/signing-lanes/rotationLifecycle.d.ts +0 -78
  448. package/dist/types/shared-ts/src/signing-lanes/rotationParsers.d.ts +0 -27
  449. package/dist/types/shared-ts/src/signing-lanes/rotationProtocolParsers.d.ts +0 -6
  450. package/dist/types/shared-ts/src/signing-lanes/rotationWireFields.d.ts +0 -20
  451. package/dist/types/shared-ts/src/wallet-recovery/recoveryCodeAttempt.d.ts +0 -59
  452. package/dist/types/wallet-server/src/core/AuthService.d.ts +0 -3
  453. package/dist/types/wallet-server/src/core/NearPublicKeyStore.d.ts +0 -48
  454. package/dist/types/wallet-server/src/core/ThresholdService/stores/CloudflareDurableObjectStore.d.ts +0 -21
  455. package/dist/types/wallet-server/src/core/ThresholdService/stores/KeyStore.d.ts +0 -40
  456. package/dist/types/wallet-server/src/core/ThresholdService/stores/SessionStore.d.ts +0 -98
  457. package/dist/types/wallet-server/src/core/ThresholdService/stores/StoreConfig.d.ts +0 -4
  458. package/dist/types/wallet-server/src/core/ThresholdService/stores/ThresholdStoreConfig.typecheck.d.ts +0 -2
  459. package/dist/types/wallet-server/src/core/ThresholdService/stores/exportReplayGuard.d.ts +0 -3
  460. package/dist/types/wallet-server/src/core/authService/AuthService.d.ts +0 -490
  461. package/dist/types/wallet-server/src/core/authService/bytes.d.ts +0 -3
  462. package/dist/types/wallet-server/src/core/authService/configValues.d.ts +0 -7
  463. package/dist/types/wallet-server/src/core/authService/emailOtpChallengeOperations.d.ts +0 -109
  464. package/dist/types/wallet-server/src/core/authService/emailOtpChallengeProof.d.ts +0 -169
  465. package/dist/types/wallet-server/src/core/authService/emailOtpChallengeVerification.d.ts +0 -47
  466. package/dist/types/wallet-server/src/core/authService/emailOtpChallenges.d.ts +0 -86
  467. package/dist/types/wallet-server/src/core/authService/emailOtpDelivery.d.ts +0 -66
  468. package/dist/types/wallet-server/src/core/authService/emailOtpGrant.d.ts +0 -43
  469. package/dist/types/wallet-server/src/core/authService/emailOtpRegistrationEnrollment.d.ts +0 -49
  470. package/dist/types/wallet-server/src/core/authService/emailOtpUnlock.d.ts +0 -64
  471. package/dist/types/wallet-server/src/core/authService/googleEmailOtpOperations.d.ts +0 -126
  472. package/dist/types/wallet-server/src/core/authService/googleEmailOtpRegistration.d.ts +0 -169
  473. package/dist/types/wallet-server/src/core/authService/identity.d.ts +0 -25
  474. package/dist/types/wallet-server/src/core/authService/identityOperations.d.ts +0 -19
  475. package/dist/types/wallet-server/src/core/authService/nearAccountOperations.d.ts +0 -55
  476. package/dist/types/wallet-server/src/core/authService/nearPublicKeyMetadata.d.ts +0 -44
  477. package/dist/types/wallet-server/src/core/authService/oidcVerification.d.ts +0 -66
  478. package/dist/types/wallet-server/src/core/authService/registrationThresholdHelpers.d.ts +0 -11
  479. package/dist/types/wallet-server/src/core/authService/runtime.d.ts +0 -20
  480. package/dist/types/wallet-server/src/core/authService/storeRegistry.d.ts +0 -53
  481. package/dist/types/wallet-server/src/core/authService/thresholdStoreSummary.d.ts +0 -3
  482. package/dist/types/wallet-server/src/core/authService/webauthnAuthority.d.ts +0 -5
  483. package/dist/types/wallet-server/src/core/defaultConfigsServer.d.ts +0 -5
  484. package/dist/types/wallet-server/src/core/hostedAccountIds.d.ts +0 -16
  485. package/dist/types/wallet-server/src/core/routerAbSigning/createRouterAbSigningRuntimes.d.ts +0 -16
  486. package/dist/types/wallet-server/src/core/signingLanes/LaneAggregateRevocationApplicationService.d.ts +0 -36
  487. package/dist/types/wallet-server/src/core/signingLanes/LaneEffectJournalStore.d.ts +0 -62
  488. package/dist/types/wallet-server/src/core/signingLanes/LaneEnrollmentActivation.d.ts +0 -13
  489. package/dist/types/wallet-server/src/core/signingLanes/LaneEnrollmentRevocation.d.ts +0 -24
  490. package/dist/types/wallet-server/src/core/signingLanes/LaneLifecycleApplicationService.d.ts +0 -141
  491. package/dist/types/wallet-server/src/core/signingLanes/LaneLifecycleStore.d.ts +0 -228
  492. package/dist/types/wallet-server/src/core/signingLanes/ecdsaServerRetirement.d.ts +0 -58
  493. package/dist/types/wallet-server/src/core/signingLanes/ed25519ServerRetirement.d.ts +0 -30
  494. package/dist/types/wallet-server/src/core/signingLanes/signingWorkerLaneMaterialIdentity.d.ts +0 -4
  495. package/dist/types/wallet-server/src/core/storeBackends.d.ts +0 -83
  496. package/dist/types/wallet-server/src/core/utils.d.ts +0 -3
  497. package/dist/types/wallet-server/src/core/webAuthnStoreBackends.d.ts +0 -96
  498. package/dist/types/wallet-server/src/router/cloudflare/d1/near/d1NearPublicKeyStore.d.ts +0 -29
  499. package/dist/types/wallet-server/src/router/cloudflare/d1/signingLanes/d1EcdsaLanePrivateBindingResolver.d.ts +0 -4
  500. package/dist/types/wallet-server/src/router/cloudflare/d1/signingLanes/d1LaneAggregateRevocationApplicationService.d.ts +0 -4
  501. package/dist/types/wallet-server/src/router/cloudflare/d1/signingLanes/d1LaneEffectJournalStore.d.ts +0 -24
  502. package/dist/types/wallet-server/src/router/cloudflare/d1/signingLanes/d1LaneEnrollmentGateway.d.ts +0 -20
  503. package/dist/types/wallet-server/src/router/cloudflare/d1/signingLanes/d1LaneLifecycleApplicationService.d.ts +0 -13
  504. package/dist/types/wallet-server/src/router/cloudflare/d1/signingLanes/d1LaneLifecycleStore.d.ts +0 -51
  505. package/dist/types/wallet-server/src/router/cloudflare/d1/signingLanes/d1LaneLockStore.d.ts +0 -28
  506. package/dist/types/wallet-server/src/router/cloudflare/d1/signingLanes/d1LaneProtocolCommitter.d.ts +0 -5
  507. package/dist/types/wallet-server/src/router/cloudflare/d1/signingLanes/d1LaneRecords.d.ts +0 -107
  508. package/dist/types/wallet-server/src/router/cloudflare/d1/signingLanes/index.d.ts +0 -10
  509. package/dist/types/wallet-server/src/router/cloudflare/durableObjects/thresholdStore.d.ts +0 -18
  510. package/dist/types/wallet-server/src/router/cloudflare/signingLanes/cloudflareLaneCurveExecution.d.ts +0 -217
  511. package/dist/types/wallet-server/src/router/cloudflare/signingLanes/cloudflareLaneProtocolCommitter.d.ts +0 -73
  512. package/dist/types/wallet-server/src/router/cloudflare/signingLanes/index.d.ts +0 -4
  513. package/dist/types/wallet-server/src/router/cloudflare/signingLanes/linkedDeviceEd25519CeremonyBinding.d.ts +0 -6
  514. package/dist/types/wallet-server/src/router/transport/fetch/routes/nearPublicKeys.d.ts +0 -3
  515. /package/dist/esm/{core/signingLanes/LaneEffectJournalStore.js → authorization/recoveryRouting.js} +0 -0
  516. /package/dist/esm/{core/signingLanes/LaneLifecycleStore.js → authorization/sessionRouting.js} +0 -0
@@ -0,0 +1,242 @@
1
+ import { parseWalletId } from "../../../../shared-ts/src/utils/domainIds.js";
2
+ import { base64UrlEncode } from "../../../../shared-ts/src/utils/base64.js";
3
+ import { alphabetizeStringify, sha256BytesUtf8 } from "../../../../shared-ts/src/utils/digests.js";
4
+ import "../../../../shared-ts/src/utils/encoders.js";
5
+ import { createCloudflareD1VersionedJsonRecordStore } from "../versionedJson/d1VersionedJsonRecordStore.js";
6
+ import { runRouterAbEd25519YaoRegistrationSideEffectV1 } from "../../../domains/ed25519Yao/registration/routerAbEd25519YaoRegistrationSideEffectBoundary.js";
7
+ import { broadcastPreparedSponsoredNearAccountCreation, prepareSponsoredNearAccountCreationWithRelayer, preparedSponsoredNearAccountCreationArtifactFingerprint } from "../../../../core/nearRelayerAccountProvisioning.js";
8
+ //#region src/router/cloudflare/d1/near/d1SponsoredNearAccount.ts
9
+ /**
10
+ * Validates a persisted claim before it is trusted to skip a broadcast or to be
11
+ * replayed. An invalid record makes the D1 read fail, which leaves the effect
12
+ * uncertain and prevents any network action on unvalidated bytes.
13
+ */
14
+ function parseSponsoredNearAccountSideEffectRecord(raw) {
15
+ if (raw === null || typeof raw !== "object" || Array.isArray(raw)) return null;
16
+ if (Reflect.get(raw, "operation") !== "finalize") return null;
17
+ const requestFingerprint = parseSideEffectFingerprint(Reflect.get(raw, "requestFingerprint"));
18
+ const preparedArtifactFingerprint = parseSideEffectFingerprint(Reflect.get(raw, "preparedArtifactFingerprint"));
19
+ if (requestFingerprint === null || preparedArtifactFingerprint === null) return null;
20
+ const claimedAtMs = Reflect.get(raw, "claimedAtMs");
21
+ if (!isNonNegativeSafeInteger(claimedAtMs)) return null;
22
+ const prepared = parseWalletSponsoredTransaction(Reflect.get(raw, "prepared"));
23
+ if (prepared === null) return null;
24
+ const kind = Reflect.get(raw, "kind");
25
+ if (kind === "router_ab_ed25519_yao_registration_side_effect_claim_v1") return {
26
+ kind: "router_ab_ed25519_yao_registration_side_effect_claim_v1",
27
+ operation: "finalize",
28
+ requestFingerprint,
29
+ preparedArtifactFingerprint,
30
+ claimedAtMs,
31
+ prepared
32
+ };
33
+ if (kind === "router_ab_ed25519_yao_registration_side_effect_completion_v1") {
34
+ const completedAtMs = Reflect.get(raw, "completedAtMs");
35
+ if (!isNonNegativeSafeInteger(completedAtMs)) return null;
36
+ const response = parseAccountCreationResult(Reflect.get(raw, "response"));
37
+ if (response === null) return null;
38
+ return {
39
+ kind: "router_ab_ed25519_yao_registration_side_effect_completion_v1",
40
+ operation: "finalize",
41
+ requestFingerprint,
42
+ preparedArtifactFingerprint,
43
+ claimedAtMs,
44
+ completedAtMs,
45
+ prepared,
46
+ response
47
+ };
48
+ }
49
+ return null;
50
+ }
51
+ function parsePreparedSponsoredNearAccountCreation(value) {
52
+ if (value === null || typeof value !== "object" || Array.isArray(value)) return null;
53
+ if (Reflect.get(value, "kind") !== "prepared_sponsored_near_account_creation_v1") return null;
54
+ const accountId = parseNonEmptyString(Reflect.get(value, "accountId"));
55
+ const publicKey = parseNonEmptyString(Reflect.get(value, "publicKey"));
56
+ const relayerAccountId = parseNonEmptyString(Reflect.get(value, "relayerAccountId"));
57
+ const relayerPublicKey = parseNonEmptyString(Reflect.get(value, "relayerPublicKey"));
58
+ const initialBalanceYocto = parseNonEmptyString(Reflect.get(value, "initialBalanceYocto"));
59
+ const transactionHash = parseNonEmptyString(Reflect.get(value, "transactionHash"));
60
+ const nextNonce = parseNonEmptyString(Reflect.get(value, "nextNonce"));
61
+ const blockHash = parseNonEmptyString(Reflect.get(value, "blockHash"));
62
+ const signedTransactionBorshB64u = parseBoundedBase64Url(Reflect.get(value, "signedTransactionBorshB64u"));
63
+ if (accountId === null || publicKey === null || relayerAccountId === null || relayerPublicKey === null || initialBalanceYocto === null || transactionHash === null || nextNonce === null || blockHash === null || signedTransactionBorshB64u === null) return null;
64
+ return {
65
+ kind: "prepared_sponsored_near_account_creation_v1",
66
+ accountId,
67
+ publicKey,
68
+ relayerAccountId,
69
+ relayerPublicKey,
70
+ initialBalanceYocto,
71
+ transactionHash,
72
+ nextNonce,
73
+ blockHash,
74
+ signedTransactionBorshB64u
75
+ };
76
+ }
77
+ function parseAccountCreationResult(value) {
78
+ if (value === null || typeof value !== "object" || Array.isArray(value)) return null;
79
+ const success = Reflect.get(value, "success");
80
+ if (typeof success !== "boolean") return null;
81
+ const accountId = parseOptionalString(Reflect.get(value, "accountId"));
82
+ const transactionHash = parseOptionalString(Reflect.get(value, "transactionHash"));
83
+ const error = parseOptionalString(Reflect.get(value, "error"));
84
+ const message = parseOptionalString(Reflect.get(value, "message"));
85
+ if ("accountId" in value && accountId === null || "transactionHash" in value && transactionHash === null || "error" in value && error === null || "message" in value && message === null) return null;
86
+ if (success && (accountId === void 0 || transactionHash === void 0)) return null;
87
+ const normalizedAccountId = accountId ?? void 0;
88
+ const normalizedTransactionHash = transactionHash ?? void 0;
89
+ const normalizedError = error ?? void 0;
90
+ const normalizedMessage = message ?? void 0;
91
+ return {
92
+ success,
93
+ ...normalizedAccountId === void 0 ? {} : { accountId: normalizedAccountId },
94
+ ...normalizedTransactionHash === void 0 ? {} : { transactionHash: normalizedTransactionHash },
95
+ ...normalizedError === void 0 ? {} : { error: normalizedError },
96
+ ...normalizedMessage === void 0 ? {} : { message: normalizedMessage }
97
+ };
98
+ }
99
+ function parseNonEmptyString(value) {
100
+ return typeof value === "string" && value.trim() ? value : null;
101
+ }
102
+ function parseSideEffectFingerprint(value) {
103
+ return typeof value === "string" && /^[a-zA-Z0-9:_-]{32,192}$/u.test(value) ? value : null;
104
+ }
105
+ function parseBoundedBase64Url(value) {
106
+ return typeof value === "string" && value.length > 0 && value.length <= 8192 && /^[\w-]+$/u.test(value) ? value : null;
107
+ }
108
+ function parseOptionalString(value) {
109
+ return value === void 0 ? void 0 : parseNonEmptyString(value);
110
+ }
111
+ function isNonNegativeSafeInteger(value) {
112
+ return typeof value === "number" && Number.isSafeInteger(value) && value >= 0;
113
+ }
114
+ function sponsoredNearAccountSideEffectStore(options) {
115
+ return createCloudflareD1VersionedJsonRecordStore({
116
+ database: options.database,
117
+ scope: {
118
+ namespace: options.namespace,
119
+ orgId: options.orgId,
120
+ projectId: options.projectId,
121
+ envId: options.envId
122
+ },
123
+ keyPrefix: "router-ab-yao-sponsored-account:",
124
+ encode: encodeSponsoredRecord,
125
+ parse: parseSponsoredNearAccountSideEffectRecord
126
+ });
127
+ }
128
+ /**
129
+ * Creates the sponsored account through a durable claim. The signed transaction
130
+ * and its hash are persisted before the broadcast, so a lost response replays
131
+ * those exact bytes instead of building a second transaction under a fresh
132
+ * nonce. Rebroadcasting an identical signed transaction reuses its hash, so the
133
+ * network treats the retry as the same transaction.
134
+ */
135
+ async function createSponsoredNamedNearAccountForOptions(options, input) {
136
+ const relayerAccount = options.relayerAccount;
137
+ const relayerPrivateKey = options.relayerPrivateKey;
138
+ const nearRpcUrl = options.nearRpcUrl;
139
+ const initialBalanceYocto = options.accountInitialBalance;
140
+ if (!relayerAccount || !relayerPrivateKey || !nearRpcUrl || !initialBalanceYocto) return {
141
+ kind: "rejected",
142
+ message: "Sponsored NEAR account creation is not configured on this server"
143
+ };
144
+ const relayerInput = {
145
+ accountId: input.accountId,
146
+ publicKey: input.publicKey,
147
+ relayerAccount,
148
+ relayerPrivateKey,
149
+ relayerPublicKey: options.relayerPublicKey,
150
+ nearRpcUrl,
151
+ initialBalanceYocto
152
+ };
153
+ const requestFingerprint = base64UrlEncode(await sha256BytesUtf8(alphabetizeStringify({
154
+ kind: "sponsored_near_account_creation_v1",
155
+ walletId: input.walletId,
156
+ accountId: input.accountId,
157
+ publicKey: input.publicKey,
158
+ relayerAccountId: relayerAccount,
159
+ initialBalanceYocto
160
+ })));
161
+ const outcome = await runRouterAbEd25519YaoRegistrationSideEffectV1(sponsoredNearAccountSideEffectStore(options), {
162
+ kind: "prepared_resumable",
163
+ resumeAfterMs: 3e4,
164
+ operation: "finalize",
165
+ key: `sponsored-account:${input.idempotencyKey}`,
166
+ requestFingerprint,
167
+ nowMs: () => Date.now(),
168
+ prepare: prepareWalletSponsoredTransaction.bind(null, input.walletId, relayerInput),
169
+ derivePreparedArtifactFingerprint: fingerprintWalletSponsoredTransaction,
170
+ execute: executeWalletSponsoredTransaction.bind(null, {
171
+ walletId: input.walletId,
172
+ nearRpcUrl,
173
+ relayerAccountId: relayerAccount
174
+ })
175
+ });
176
+ switch (outcome.kind) {
177
+ case "executed":
178
+ case "exact_replay":
179
+ if (outcome.value.success && outcome.value.accountId && outcome.value.transactionHash) return {
180
+ kind: "created",
181
+ accountId: outcome.value.accountId,
182
+ transactionHash: outcome.value.transactionHash
183
+ };
184
+ return {
185
+ kind: "rejected",
186
+ message: outcome.value.message || outcome.value.error || "Sponsored NEAR account creation was rejected"
187
+ };
188
+ case "in_progress":
189
+ case "uncertain": return {
190
+ kind: "retryable",
191
+ message: outcome.kind === "uncertain" ? outcome.message : "Sponsored NEAR account creation is already in progress for this registration",
192
+ retryAfterMs: 3e4
193
+ };
194
+ case "request_conflict": return {
195
+ kind: "rejected",
196
+ message: "Sponsored NEAR account creation idempotency key conflicts with another request"
197
+ };
198
+ }
199
+ }
200
+ function parseWalletSponsoredTransaction(raw) {
201
+ if (raw === null || typeof raw !== "object" || Array.isArray(raw)) return null;
202
+ const walletId = parseWalletId(Reflect.get(raw, "walletId"));
203
+ const transaction = parsePreparedSponsoredNearAccountCreation(Reflect.get(raw, "transaction"));
204
+ if (!walletId.ok || !transaction) return null;
205
+ return {
206
+ walletId: walletId.value,
207
+ transaction
208
+ };
209
+ }
210
+ async function fingerprintWalletSponsoredTransaction(prepared) {
211
+ const transactionFingerprint = await preparedSponsoredNearAccountCreationArtifactFingerprint(prepared.transaction);
212
+ return base64UrlEncode(await sha256BytesUtf8(alphabetizeStringify({
213
+ walletId: prepared.walletId,
214
+ transactionFingerprint
215
+ })));
216
+ }
217
+ function encodeSponsoredRecord(record) {
218
+ return record;
219
+ }
220
+ async function prepareWalletSponsoredTransaction(walletId, input) {
221
+ const prepared = await prepareSponsoredNearAccountCreationWithRelayer(input);
222
+ if (!prepared.ok) throw new Error(prepared.message);
223
+ return {
224
+ walletId,
225
+ transaction: prepared.prepared
226
+ };
227
+ }
228
+ async function executeWalletSponsoredTransaction(context, prepared, attempt) {
229
+ if (prepared.walletId !== context.walletId) throw new Error("Sponsored NEAR account claim belongs to another wallet");
230
+ const broadcast = await broadcastPreparedSponsoredNearAccountCreation({
231
+ prepared: prepared.transaction,
232
+ nearRpcUrl: context.nearRpcUrl,
233
+ relayerAccountId: context.relayerAccountId,
234
+ reconcileFirst: attempt === "resumed"
235
+ });
236
+ if (broadcast.kind === "uncertain") throw new Error(broadcast.message);
237
+ return broadcast.result;
238
+ }
239
+ //#endregion
240
+ export { createSponsoredNamedNearAccountForOptions };
241
+
242
+ //# sourceMappingURL=d1SponsoredNearAccount.js.map
@@ -1,7 +1,6 @@
1
1
  import { base64UrlDecode } from "../../../../shared-ts/src/utils/base64.js";
2
2
  import "../../../../shared-ts/src/utils/encoders.js";
3
3
  import { normalizeOptionalTrimmedString } from "../../../../shared-ts/src/utils/normalize.js";
4
- import "../../../../shared-ts/src/utils/validation.js";
5
4
  import { failedVerification } from "../../../../shared-ts/src/utils/failure.js";
6
5
  import { toArrayBufferCopy } from "../../../../core/authService/portableCrypto.js";
7
6
  import { toRecordValue } from "../auth/d1RouterApiAuthBoundary.js";
@@ -1,15 +1,13 @@
1
1
  import { normalizeOptionalTrimmedString } from "../../../../shared-ts/src/utils/normalize.js";
2
- import "../../../../shared-ts/src/utils/validation.js";
3
2
  import { failedVerification } from "../../../../shared-ts/src/utils/failure.js";
4
- import { CloudflareD1OidcJwksCache, parseRs256JwtForVerification, validateGoogleIdTokenClaims, verifyRs256JwtSignature } from "./d1OidcBoundary.js";
5
3
  import { githubOAuthPublicConfig, verifyGithubOAuthCodeWithIdentityStore } from "../../../../core/authService/githubOAuth.js";
4
+ import { verifyGoogleOidcToken } from "./googleOidcToken.js";
6
5
  //#region src/router/cloudflare/d1/oidc/d1OidcVerificationService.ts
7
6
  function errorMessage(error) {
8
7
  return error instanceof Error ? error.message : String(error || "");
9
8
  }
10
9
  var CloudflareD1OidcVerificationService = class {
11
10
  constructor(input) {
12
- this.oidcJwksCache = new CloudflareD1OidcJwksCache();
13
11
  this.googleOidcClientId = input.googleOidcClientId;
14
12
  this.githubOAuth = input.githubOAuth;
15
13
  this.identityStore = input.identityStore;
@@ -45,32 +43,7 @@ var CloudflareD1OidcVerificationService = class {
45
43
  }
46
44
  async verifyGoogleIdToken(input, linkIdentity) {
47
45
  try {
48
- const clientId = normalizeOptionalTrimmedString(this.googleOidcClientId);
49
- if (!clientId) return failedVerification("not_configured", "Google OIDC is not configured on this Worker");
50
- const idToken = normalizeOptionalTrimmedString(input.idToken ?? input.id_token);
51
- if (!idToken) return failedVerification("invalid_body", "id_token is required");
52
- const subtle = globalThis.crypto?.subtle;
53
- if (!subtle) return failedVerification("unsupported", "WebCrypto (crypto.subtle) is unavailable in this runtime");
54
- const parsed = parseRs256JwtForVerification({
55
- token: idToken,
56
- tokenLabel: "id_token"
57
- });
58
- if (!parsed.ok) return parsed;
59
- const jwt = parsed.jwt;
60
- const jwk = (await this.oidcJwksCache.getGoogleJwks()).keysByKid.get(jwt.kid);
61
- if (!jwk) return failedVerification("unknown_kid", "Unknown Google key id (kid)");
62
- const signature = await verifyRs256JwtSignature({
63
- subtle,
64
- jwt,
65
- jwk,
66
- tokenLabel: "id_token",
67
- invalidSignatureMessage: "Invalid Google id_token signature"
68
- });
69
- if (!signature.ok) return signature;
70
- const claims = validateGoogleIdTokenClaims({
71
- payload: jwt.payload,
72
- clientId
73
- });
46
+ const claims = await verifyGoogleOidcToken(this.googleOidcClientId, input.idToken ?? input.id_token);
74
47
  if (!claims.ok) return claims;
75
48
  const providerSubject = `google:${claims.sub}`;
76
49
  return {
@@ -0,0 +1,41 @@
1
+ import { normalizeOptionalTrimmedString } from "../../../../shared-ts/src/utils/normalize.js";
2
+ import { failedVerification } from "../../../../shared-ts/src/utils/failure.js";
3
+ import { CloudflareD1OidcJwksCache, parseRs256JwtForVerification, validateGoogleIdTokenClaims, verifyRs256JwtSignature } from "./d1OidcBoundary.js";
4
+ //#region src/router/cloudflare/d1/oidc/googleOidcToken.ts
5
+ const googleJwks = new CloudflareD1OidcJwksCache();
6
+ /** Verifies provider proof without reading or mutating wallet identity state. */
7
+ async function verifyGoogleOidcToken(configuredClientId, rawToken) {
8
+ const clientId = normalizeOptionalTrimmedString(configuredClientId);
9
+ if (!clientId) return failedVerification("not_configured", "Google OIDC is not configured on this Worker");
10
+ const token = normalizeOptionalTrimmedString(rawToken);
11
+ if (!token) return failedVerification("invalid_body", "id_token is required");
12
+ const subtle = globalThis.crypto?.subtle;
13
+ if (!subtle) return failedVerification("unsupported", "WebCrypto (crypto.subtle) is unavailable in this runtime");
14
+ const parsed = parseRs256JwtForVerification({
15
+ token,
16
+ tokenLabel: "id_token"
17
+ });
18
+ if (!parsed.ok) return parsed;
19
+ try {
20
+ const jwk = (await googleJwks.getGoogleJwks()).keysByKid.get(parsed.jwt.kid);
21
+ if (!jwk) return failedVerification("unknown_kid", "Unknown Google key id (kid)");
22
+ const signature = await verifyRs256JwtSignature({
23
+ subtle,
24
+ jwt: parsed.jwt,
25
+ jwk,
26
+ tokenLabel: "id_token",
27
+ invalidSignatureMessage: "Invalid Google id_token signature"
28
+ });
29
+ if (!signature.ok) return signature;
30
+ return validateGoogleIdTokenClaims({
31
+ payload: parsed.jwt.payload,
32
+ clientId
33
+ });
34
+ } catch {
35
+ return failedVerification("internal", "Google OIDC verification unavailable");
36
+ }
37
+ }
38
+ //#endregion
39
+ export { verifyGoogleOidcToken };
40
+
41
+ //# sourceMappingURL=googleOidcToken.js.map
@@ -451,6 +451,11 @@ async function prepareRecoveryForRoute(assembly, request) {
451
451
  reservationTtlMs: RECOVERY_RESERVATION_TTL_MS
452
452
  });
453
453
  if (prepared.kind !== "prepared") return prepared;
454
+ try {
455
+ await assembly.walletCustodyCommits.publishRecoveryOperation(walletId, targetIdentity.recoveryOperationId);
456
+ } catch {
457
+ return { kind: "routing_unavailable" };
458
+ }
454
459
  try {
455
460
  const manifest = await resolveWalletRecoveryKeyManifestV1({
456
461
  registry: assembly.walletStore,
@@ -13,6 +13,7 @@ import { parseWalletRecoveryBackupAcknowledgementV1 } from "../../../../shared-t
13
13
  import "../../../../shared-ts/src/wallet-recovery/recoveryCodes.js";
14
14
  import { parseWalletRecoveryEnvelopeSetRecord } from "../../../../shared-ts/src/wallet-recovery/walletRecoveryEnvelopeSet.js";
15
15
  import { parseRecoveryCodeLocatorV1 } from "../../../../shared-ts/src/wallet-recovery/recoveryCodeLocator.js";
16
+ import { reservePasskeyCredential } from "../../../../core/passkeyCredentialClaims.js";
16
17
  import { prepareD1WebAuthnCredentialBindingInsertStatement } from "../../../../core/WebAuthnCredentialBindingStore.js";
17
18
  import { prepareD1WebAuthnAuthenticatorInsertStatement } from "../webauthn/d1WebAuthnStore.js";
18
19
  import { D1WalletAuthorityStore, prepareD1WalletAuthorityPutStatement } from "../wallet/d1WalletAuthorityStore.js";
@@ -125,6 +126,8 @@ function isRecoveryCodeLocatorCollision(error) {
125
126
  }
126
127
  var CloudflareD1WalletCustodyCommitStore = class {
127
128
  constructor(options) {
129
+ this.credentialClaims = options.credentialClaims;
130
+ this.recoveryRouting = options.recoveryRouting;
128
131
  this.database = options.database;
129
132
  this.scope = options.scope;
130
133
  this.walletAuthMethodStore = options.walletAuthMethodStore ?? new D1WalletAuthMethodStore({
@@ -146,6 +149,27 @@ var CloudflareD1WalletCustodyCommitStore = class {
146
149
  keyPrefix: PASSKEY_ENVELOPE_KEY_PREFIX
147
150
  });
148
151
  }
152
+ async publishRecoveryOperation(walletId, operationId) {
153
+ const result = await this.recoveryRouting?.publishRecovery({
154
+ kind: "operation",
155
+ walletId,
156
+ operationId
157
+ });
158
+ if (result && !result.ok) throw new Error("Recovery operation routing conflicts");
159
+ }
160
+ async claimRecoveryCodeRoutes(walletId, records) {
161
+ if (!this.recoveryRouting) return true;
162
+ const locators = [];
163
+ for (const record of records) {
164
+ if (record.walletId !== walletId) throw new Error("Recovery code routing wallet differs");
165
+ locators.push(record.locatorB64u);
166
+ }
167
+ return (await this.recoveryRouting.publishRecovery({
168
+ kind: "codes",
169
+ walletId,
170
+ locators
171
+ })).ok;
172
+ }
149
173
  async readRecoveryCodeLocator(locatorB64u) {
150
174
  const row = await this.database.prepare(`SELECT locator_b64u, wallet_id, recovery_key_id
151
175
  FROM wallet_recovery_code_locators
@@ -334,6 +358,10 @@ var CloudflareD1WalletCustodyCommitStore = class {
334
358
  kind: "inconsistent",
335
359
  reason: inconsistency
336
360
  };
361
+ if (!await this.claimRecoveryCodeRoutes(commit.recoverySet.walletId, commit.recoveryCodeLocators)) return {
362
+ kind: "inconsistent",
363
+ reason: "recovery code locator already exists"
364
+ };
337
365
  const envelopeKey = passkeyCustodyEnvelopeRecordKey(passkeyCustodyEnvelopeLocatorOf(commit.envelope));
338
366
  const recoverySetKey = walletRecoveryEnvelopeSetRecordKey(commit.recoverySet.walletId);
339
367
  const recoveryBackupAcknowledgementKey = walletRecoveryBackupAcknowledgementRecordKey(commit.recoverySet.walletId);
@@ -465,6 +493,7 @@ var CloudflareD1WalletCustodyCommitStore = class {
465
493
  * the explicit acknowledge route. Both rows are guarded against races.
466
494
  */
467
495
  async replaceRecoveryEnvelopeSetAndPreserveBackupAcknowledgement(input) {
496
+ if (!await this.claimRecoveryCodeRoutes(input.record.walletId, input.recoveryCodeLocators)) return { kind: "collision" };
468
497
  const acknowledgementKey = walletRecoveryBackupAcknowledgementRecordKey(input.record.walletId);
469
498
  const existingAcknowledgement = await this.records.read(acknowledgementKey);
470
499
  const mutations = [{
@@ -551,6 +580,11 @@ var CloudflareD1WalletCustodyCommitStore = class {
551
580
  userId: input.authenticatorCommit.userId,
552
581
  record: input.authenticatorCommit.authenticator
553
582
  });
583
+ await reservePasskeyCredential(this.credentialClaims, {
584
+ walletId: targetMethod.walletId,
585
+ rpId: targetMethod.rpId,
586
+ credentialIdB64u: targetMethod.credentialIdB64u
587
+ });
554
588
  const bindingStatement = prepareD1WebAuthnCredentialBindingInsertStatement({
555
589
  database: this.database,
556
590
  scope: this.tenantScope(),
@@ -61,6 +61,14 @@ var D1RegistrationCeremonyRecordStore = class {
61
61
  if (recordsMatch(current, prepared)) return;
62
62
  throw conflict("Registration ceremony record conflicts with the stored value");
63
63
  }
64
+ async insertOrRead(mutation) {
65
+ const key = this.normalizeKey(mutation.scope, mutation.id);
66
+ const prepared = prepareValue(mutation.value, mutation.expiresAtMs);
67
+ await this.insert(key, prepared);
68
+ const stored = await this.get(mutation.scope, mutation.id);
69
+ if (!stored) throw conflict("Registration setup expired during persistence");
70
+ return stored;
71
+ }
64
72
  async updateExpected(input) {
65
73
  const key = this.normalizeKey(input.scope, input.id);
66
74
  const current = await this.get(input.scope, input.id);
@@ -117,8 +125,7 @@ var D1RegistrationCeremonyRecordStore = class {
117
125
  const parsed = parseStoredRow(row);
118
126
  return {
119
127
  value: parsed.value,
120
- version: parsed.version,
121
- expiresAtMs: parsed.expiresAtMs
128
+ version: parsed.version
122
129
  };
123
130
  }
124
131
  async updateExpectedVersion(input) {
@@ -235,7 +242,6 @@ function prepareValue(value, expiresAtMs) {
235
242
  const normalizedExpiresAtMs = Math.floor(Number(expiresAtMs));
236
243
  if (!Number.isSafeInteger(normalizedExpiresAtMs) || normalizedExpiresAtMs <= Date.now()) throw new Error("Registration ceremony record expiry must be in the future");
237
244
  return {
238
- value,
239
245
  recordJson: alphabetizeStringify(value),
240
246
  expiresAtMs: normalizedExpiresAtMs
241
247
  };
@@ -2,8 +2,6 @@ import { parseChallengeSubjectId, parseEmailOtpChallengeId, parseOrgId, parsePro
2
2
  import { parseDeviceId } from "../../../../shared-ts/src/authorization/capabilityKinds.js";
3
3
  import { parseDigestB64u } from "../../../../shared-ts/src/utils/canonicalPrimitives.js";
4
4
  import { normalizeOptionalTrimmedString } from "../../../../shared-ts/src/utils/normalize.js";
5
- import { parseImplicitNearAccountId, parseNamedNearAccountId } from "../../../../shared-ts/src/utils/near.js";
6
- import "../../../../shared-ts/src/utils/validation.js";
7
5
  import { parseWalletAddAuthMethodRegistrationOptions } from "../../../../shared-ts/src/utils/addAuthMethodRegistration.js";
8
6
  import { parseRouterAbEd25519YaoRegistrationActivationAdmissionReceiptV1, parseRouterAbEd25519YaoRegistrationActivationResultV1, parseRouterAbEd25519YaoRegistrationAdmissionRequestV1 } from "../../../../shared-ts/src/utils/routerAbEd25519Yao.js";
9
7
  import { deriveEvmFamilySigningKeySlotId } from "../../../../shared-ts/src/signing-lanes/evmFamilySigningKeySlotId.js";
@@ -16,24 +14,22 @@ import { parseWalletAuthorityV1 } from "../../../../shared-ts/src/authorization/
16
14
  import { parseWebAuthnAuthenticatorDeviceInfo, unknownWebAuthnAuthenticatorDeviceInfo } from "../../../../shared-ts/src/utils/webauthnDeviceInfo.js";
17
15
  import { secureRandomBase64Url } from "../../../../shared-ts/src/utils/secureRandomId.js";
18
16
  import { parseRouterAbEd25519NormalSigningState } from "../../../../shared-ts/src/utils/signingSessionSeal.js";
19
- import { parseEcdsaDerivationPublicIdentity, parseThresholdEd25519AuthorityScope, thresholdEd25519AuthorityScopeFromWalletAuthAuthority, thresholdEd25519AuthorityScopesMatch } from "../../../../core/ThresholdService/validation.js";
20
17
  import { thresholdEcdsaChainTargetKey } from "../../../../shared-ts/src/utils/thresholdEcdsaChainTarget.js";
21
18
  import { thresholdEcdsaChainTargetFromValue } from "../../../../core/thresholdEcdsaChainTarget.js";
22
19
  import { buildWalletEcdsaSignerRecord, parseWalletEd25519SignerRecord } from "../../../../core/d1WalletStore.js";
23
- import { createServerAllocatedWalletId, nearEd25519SigningKeyIdFromString, walletIdFromString } from "../../../../shared-ts/src/utils/registrationIds.js";
20
+ import { nearEd25519SigningKeyIdFromString, walletIdFromString } from "../../../../shared-ts/src/utils/registrationIds.js";
24
21
  import { registrationPreparationIdFromString } from "../../../../core/types.js";
25
22
  import "../../../../shared-ts/src/signing-lanes/index.js";
26
23
  import { parsePasskeyCustodyEnvelopeRecord } from "../../../../shared-ts/src/passkey-custody/custodyEnvelope.js";
27
24
  import "../../../../shared-ts/src/passkey-custody/index.js";
25
+ import { parseImplicitNearAccountId, parseNamedNearAccountId } from "../../../../shared-ts/src/utils/near.js";
28
26
  import { normalizeAddSignerSelection, normalizeRegistrationSignerPlan, registrationSignerBranchKeyFromString, registrationSignerSetSelectionFromPlan } from "../../../../shared-ts/src/utils/registrationSignerPlan.js";
29
27
  import { addAuthMethodIntentGrantFromString, addSignerIntentGrantFromString, normalizeAddAuthMethodIntentCaller } from "../../../../shared-ts/src/utils/registrationIntent.js";
28
+ import { parseEcdsaDerivationPublicIdentity, parseThresholdEd25519AuthorityScope, thresholdEd25519AuthorityScopeFromWalletAuthAuthority, thresholdEd25519AuthorityScopesMatch } from "../../../../core/ThresholdService/validation.js";
30
29
  import { toRecordValue } from "../auth/d1RouterApiAuthBoundary.js";
31
- import { parseStoredRouterAbEcdsaPendingActivationV1 } from "../../../domains/ecdsa/routerAbEcdsaStrictRegistration.js";
32
30
  import { parseStoredRegistrationSignerPlan, parseStoredWalletRegistrationPreparedContext, storedRegistrationSignerPlansMatch } from "../../../../core/RegistrationCeremonyStore.js";
31
+ import { parseStoredRouterAbEcdsaPendingActivationV1 } from "../../../domains/ecdsa/routerAbEcdsaStrictRegistration.js";
33
32
  //#region src/router/cloudflare/d1/registration/d1RegistrationCeremonyRecords.ts
34
- function createD1ServerAllocatedWalletId() {
35
- return createServerAllocatedWalletId();
36
- }
37
33
  function inferRuntimePolicyScopeFromSigningRoot(input) {
38
34
  const signingRootId = normalizeOptionalTrimmedString(input.signingRootId);
39
35
  const signingRootVersion = normalizeOptionalTrimmedString(input.signingRootVersion);
@@ -48,7 +44,7 @@ function inferRuntimePolicyScopeFromSigningRoot(input) {
48
44
  };
49
45
  }
50
46
  function buildRegistrationIntent(input) {
51
- const nonceB64u = secureRandomBase64Url(32);
47
+ const nonceB64u = input.nonceB64u;
52
48
  const foundingWalletAuthMethodId = input.foundingWalletAuthMethodId;
53
49
  if (input.runtimePolicyScope) return {
54
50
  version: "registration_intent_v1",
@@ -1369,7 +1365,6 @@ function parseD1EcdsaDerivationServerBootstrapResponse(raw) {
1369
1365
  const publicIdentity = parseD1EcdsaDerivationPublicIdentity(record.publicIdentity);
1370
1366
  const clientShareRetryCounter = safeInteger(record.clientShareRetryCounter);
1371
1367
  const relayerShareRetryCounter = safeInteger(record.relayerShareRetryCounter);
1372
- const publicTranscriptDigest32B64u = normalizeOptionalTrimmedString(record.publicTranscriptDigest32B64u);
1373
1368
  const keyHandle = normalizeOptionalTrimmedString(record.keyHandle);
1374
1369
  const signingRootId = normalizeOptionalTrimmedString(record.signingRootId);
1375
1370
  const signingRootVersion = normalizeOptionalTrimmedString(record.signingRootVersion);
@@ -1384,7 +1379,7 @@ function parseD1EcdsaDerivationServerBootstrapResponse(raw) {
1384
1379
  const expiresAt = normalizeOptionalTrimmedString(record.expiresAt);
1385
1380
  const remainingUses = safeInteger(record.remainingUses);
1386
1381
  const routerAbEcdsaDerivationNormalSigning = parseRouterAbEcdsaDerivationNormalSigningStateV1(record.routerAbEcdsaDerivationNormalSigning);
1387
- if (!walletId || !evmFamilySigningKeySlotId || !ecdsaThresholdKeyId || !relayerKeyId || !applicationBindingDigestB64u || !contextBinding32B64u || !publicIdentity || clientShareRetryCounter === null || relayerShareRetryCounter === null || !publicTranscriptDigest32B64u || !keyHandle || !signingRootId || !signingRootVersion || !thresholdEcdsaPublicKeyB64u || !ethereumAddress || !relayerVerifyingShareB64u || !participantIds || !thresholdSessionId || !activationEpoch || expiresAtMs === null || !expiresAt || remainingUses === null || !routerAbEcdsaDerivationNormalSigning) return null;
1382
+ if (!walletId || !evmFamilySigningKeySlotId || !ecdsaThresholdKeyId || !relayerKeyId || !applicationBindingDigestB64u || !contextBinding32B64u || !publicIdentity || clientShareRetryCounter === null || relayerShareRetryCounter === null || !keyHandle || !signingRootId || !signingRootVersion || !thresholdEcdsaPublicKeyB64u || !ethereumAddress || !relayerVerifyingShareB64u || !participantIds || !thresholdSessionId || !activationEpoch || expiresAtMs === null || !expiresAt || remainingUses === null || !routerAbEcdsaDerivationNormalSigning) return null;
1388
1383
  return {
1389
1384
  formatVersion: "ecdsa-derivation-role-local",
1390
1385
  walletId,
@@ -1396,7 +1391,6 @@ function parseD1EcdsaDerivationServerBootstrapResponse(raw) {
1396
1391
  publicIdentity,
1397
1392
  clientShareRetryCounter,
1398
1393
  relayerShareRetryCounter,
1399
- publicTranscriptDigest32B64u,
1400
1394
  keyHandle,
1401
1395
  signingRootId,
1402
1396
  signingRootVersion,
@@ -2034,6 +2028,6 @@ function unreachableAddAuthMethodInput(value) {
2034
2028
  throw new Error(`Unhandled add-auth-method input kind: ${String(value)}`);
2035
2029
  }
2036
2030
  //#endregion
2037
- export { buildAddAuthMethodIntent, buildAddSignerIntent, buildD1EcdsaWalletKeysFromBootstrap, buildD1WalletEcdsaSignerRecords, buildD1WalletRecord, buildRegistrationIntent, createD1ServerAllocatedWalletId, deriveEvmFamilySigningKeySlotId, inferRuntimePolicyScopeFromSigningRoot, intentScopeMetadata, normalizeThresholdEcdsaChainTargets, parseD1AddSignerIntent, parseD1EcdsaDerivationServerBootstrapResponse, parseD1RuntimePolicyScope, parseD1StoredAddAuthMethodIntent, parseD1StoredAddSignerAuth, parseD1StoredAddSignerIntent, parseD1StoredWalletAddAuthMethodCeremony, parseD1StoredWalletAddAuthMethodFinalizeReplay, parseD1StoredWalletAddSignerCeremony, parseD1StoredWalletAddSignerFinalizeReplay, parseD1StoredWalletRegistrationCeremony, parseD1WalletAddSignerFinalizeTerminalResponse, parseD1WalletRegistrationCommittedInstallationProjection, parseD1WalletRegistrationFinalizeReplayResponse, parseWalletIdForIntent, positiveIntegerArraysEqual, runtimePolicyScopeMatches, thresholdEcdsaChainTargetsEqual };
2031
+ export { buildAddAuthMethodIntent, buildAddSignerIntent, buildD1EcdsaWalletKeysFromBootstrap, buildD1WalletEcdsaSignerRecords, buildD1WalletRecord, buildRegistrationIntent, deriveEvmFamilySigningKeySlotId, inferRuntimePolicyScopeFromSigningRoot, intentScopeMetadata, normalizeThresholdEcdsaChainTargets, parseD1AddSignerIntent, parseD1EcdsaDerivationServerBootstrapResponse, parseD1RuntimePolicyScope, parseD1StoredAddAuthMethodIntent, parseD1StoredAddSignerAuth, parseD1StoredAddSignerIntent, parseD1StoredWalletAddAuthMethodCeremony, parseD1StoredWalletAddAuthMethodFinalizeReplay, parseD1StoredWalletAddSignerCeremony, parseD1StoredWalletAddSignerFinalizeReplay, parseD1StoredWalletRegistrationCeremony, parseD1WalletAddSignerFinalizeTerminalResponse, parseD1WalletRegistrationCommittedInstallationProjection, parseD1WalletRegistrationFinalizeReplayResponse, parseWalletIdForIntent, positiveIntegerArraysEqual, runtimePolicyScopeMatches, thresholdEcdsaChainTargetsEqual };
2038
2032
 
2039
2033
  //# sourceMappingURL=d1RegistrationCeremonyRecords.js.map
@@ -7,13 +7,32 @@ var CloudflareD1RegistrationCeremonyIntentStore = class {
7
7
  constructor(input) {
8
8
  this.storage = new D1RegistrationCeremonyRecordStore(input);
9
9
  }
10
- async putCeremony(ceremony) {
11
- await this.put({
10
+ async getSetupCeremony(ceremonyId) {
11
+ const stored = await this.storage.get("setup-ceremony", ceremonyId);
12
+ if (!stored) return null;
13
+ const ceremony = parseD1StoredWalletRegistrationCeremony(stored.value);
14
+ if (!ceremony) throw new Error("Registration setup snapshot is invalid");
15
+ return ceremony;
16
+ }
17
+ async reserveSetupCeremony(proposed) {
18
+ const ceremony = parseD1StoredWalletRegistrationCeremony((await this.storage.insertOrRead({
19
+ scope: "setup-ceremony",
20
+ id: proposed.registrationCeremonyId,
21
+ value: encodeRecord(proposed),
22
+ expiresAtMs: proposed.expiresAtMs
23
+ })).value);
24
+ if (!ceremony || ceremony.registrationCeremonyId !== proposed.registrationCeremonyId || ceremony.expiresAtMs !== proposed.expiresAtMs || ceremony.orgId !== proposed.orgId || ceremony.digestB64u !== proposed.digestB64u || ceremony.foundingWalletAuthorityId !== proposed.foundingWalletAuthorityId || ceremony.foundingDeviceId !== proposed.foundingDeviceId || ceremony.foundingWalletAuthMethodId !== proposed.foundingWalletAuthMethodId || ceremony.expectedOrigin !== proposed.expectedOrigin) throw new Error("Registration setup snapshot conflicts with its reservation");
25
+ await this.ensureSetupCeremony(ceremony);
26
+ return ceremony;
27
+ }
28
+ async ensureSetupCeremony(setup) {
29
+ const current = parseD1StoredWalletRegistrationCeremony((await this.storage.insertOrRead({
12
30
  scope: "ceremony",
13
- id: ceremony.registrationCeremonyId,
14
- record: ceremony,
15
- expiresAtMs: ceremony.expiresAtMs
16
- });
31
+ id: setup.registrationCeremonyId,
32
+ value: encodeRecord(setup),
33
+ expiresAtMs: setup.expiresAtMs
34
+ })).value);
35
+ if (!current || current.registrationCeremonyId !== setup.registrationCeremonyId || current.expiresAtMs !== setup.expiresAtMs || current.orgId !== setup.orgId || current.digestB64u !== setup.digestB64u || current.foundingWalletAuthorityId !== setup.foundingWalletAuthorityId || current.foundingDeviceId !== setup.foundingDeviceId || current.foundingWalletAuthMethodId !== setup.foundingWalletAuthMethodId || current.expectedOrigin !== setup.expectedOrigin) throw new Error("Registration ceremony conflicts with its setup snapshot");
17
36
  }
18
37
  async getCeremony(registrationCeremonyId) {
19
38
  return (await this.getCeremonySnapshot(registrationCeremonyId))?.ceremony ?? null;
@@ -80,13 +99,6 @@ var CloudflareD1RegistrationCeremonyIntentStore = class {
80
99
  expiresAtMs: input.next.expiresAtMs
81
100
  });
82
101
  }
83
- async takeCeremony(registrationCeremonyId) {
84
- const id = normalizeOptionalTrimmedString(registrationCeremonyId);
85
- if (!id) return null;
86
- const ceremony = parseD1StoredWalletRegistrationCeremony(await this.getDel("ceremony", id));
87
- if (!ceremony || ceremony.expiresAtMs <= Date.now()) return null;
88
- return ceremony;
89
- }
90
102
  async deleteCeremony(registrationCeremonyId) {
91
103
  const id = normalizeOptionalTrimmedString(registrationCeremonyId);
92
104
  if (!id) return false;
@@ -1,6 +1,5 @@
1
1
  import { parseWalletAuthMethodId } from "../../../../shared-ts/src/utils/domainIds.js";
2
2
  import { normalizeOptionalTrimmedString } from "../../../../shared-ts/src/utils/normalize.js";
3
- import "../../../../shared-ts/src/utils/validation.js";
4
3
  import { normalizeAddAuthMethodInput } from "../../../../shared-ts/src/utils/registrationAuthMethodInput.js";
5
4
  import { secureRandomBase64Url } from "../../../../shared-ts/src/utils/secureRandomId.js";
6
5
  import { failure } from "../../../../shared-ts/src/utils/failure.js";