@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
@@ -1,5 +1,4 @@
1
1
  import { normalizeOptionalTrimmedString } from "../../../../shared-ts/src/utils/normalize.js";
2
- import "../../../../shared-ts/src/utils/validation.js";
3
2
  import { secureRandomBase64Url } from "../../../../shared-ts/src/utils/secureRandomId.js";
4
3
  import { failedVerification, failure } from "../../../../shared-ts/src/utils/failure.js";
5
4
  import { validateSecp256k1PublicKey33, verifySecp256k1RecoverableSignatureAgainstPublicKey33 } from "../../../../core/ThresholdService/evmCryptoWasm.js";
@@ -1,5 +1,4 @@
1
1
  import { normalizeOptionalTrimmedString } from "../../../../shared-ts/src/utils/normalize.js";
2
- import "../../../../shared-ts/src/utils/validation.js";
3
2
  import { failure } from "../../../../shared-ts/src/utils/failure.js";
4
3
  import { validateSecp256k1PublicKey33 } from "../../../../core/ThresholdService/evmCryptoWasm.js";
5
4
  import { emailOtpDeviceEnrollmentId } from "../../../../shared-ts/src/utils/emailOtpDomain.js";
@@ -59,8 +58,9 @@ var CloudflareD1EmailOtpRegistrationEnrollmentFinalizer = class {
59
58
  case "passkey": return { ok: true };
60
59
  case "email_otp": switch (input.authority.proofKind) {
61
60
  case "otp_challenge": return { ok: true };
62
- case "google_sso_registration": return await this.googleEmailOtpSessions.completeRegistrationAttempt({
61
+ case "google_sso_registration": return await this.googleEmailOtpSessions.completeCommittedRegistrationAttempt({
63
62
  registrationAttemptId: input.authority.googleEmailOtpRegistrationAttemptId,
63
+ intentDigest: input.authority.registrationIntentDigestB64u,
64
64
  walletId: input.walletId
65
65
  });
66
66
  }
@@ -1,5 +1,4 @@
1
1
  import { normalizeOptionalTrimmedString } from "../../../../shared-ts/src/utils/normalize.js";
2
- import "../../../../shared-ts/src/utils/validation.js";
3
2
  import { failure } from "../../../../shared-ts/src/utils/failure.js";
4
3
  import { createSigningSessionSealShamir3PassCipherAdapter } from "../../../../threshold/session/signingSessionSeal/crypto/cipher.js";
5
4
  //#region src/router/cloudflare/d1/emailOtp/d1EmailOtpServerSealRuntime.ts
@@ -1,15 +1,31 @@
1
1
  import { normalizeOptionalTrimmedString } from "../../../../shared-ts/src/utils/normalize.js";
2
- import "../../../../shared-ts/src/utils/validation.js";
3
2
  import { secureRandomBase64Url } from "../../../../shared-ts/src/utils/secureRandomId.js";
4
3
  import { d1MutationChanges } from "../auth/d1RouterApiAuthBoundary.js";
5
4
  import { registrationAttemptMatchesReplacementScope, registrationAttemptMatchesStartedScope } from "../../../../core/EmailOtpRecords.js";
5
+ import { completeGoogleRegistration } from "./d1GoogleRegistrationCompletion.js";
6
6
  import { emailOtpRegistrationAttemptRows } from "../../../../core/emailOtpD1Statements.js";
7
- import { abandonedGoogleEmailOtpRegistrationAttemptRecord, parseGoogleEmailOtpRegistrationAttemptRow, pendingGoogleEmailOtpRegistrationAttemptWithUpdatedAt } from "./d1GoogleEmailOtpRegistrationRecords.js";
7
+ import { abandonedGoogleEmailOtpRegistrationAttemptRecord, parseGoogleEmailOtpRegistrationAttemptRow } from "./d1GoogleEmailOtpRegistrationRecords.js";
8
8
  //#region src/router/cloudflare/d1/emailOtp/d1GoogleEmailOtpRegistrationAttemptStore.ts
9
9
  var CloudflareD1GoogleEmailOtpRegistrationAttemptStore = class {
10
10
  constructor(input) {
11
11
  this.prepare = input.prepare;
12
12
  this.orgId = input.orgId;
13
+ this.batch = input.batch;
14
+ }
15
+ complete(input) {
16
+ return completeGoogleRegistration(this.prepare, this.batch, {
17
+ kind: "live_offer",
18
+ attemptId: input.attemptId,
19
+ walletId: input.walletId
20
+ });
21
+ }
22
+ completeCommitted(input) {
23
+ return completeGoogleRegistration(this.prepare, this.batch, {
24
+ kind: "committed_wallet",
25
+ attemptId: input.attemptId,
26
+ walletId: input.walletId,
27
+ intentDigest: input.intentDigest
28
+ });
13
29
  }
14
30
  async cleanupExpired(nowMs) {
15
31
  return d1MutationChanges(await emailOtpRegistrationAttemptRows.deleteExpired(this.prepare, nowMs).run());
@@ -37,8 +53,16 @@ var CloudflareD1GoogleEmailOtpRegistrationAttemptStore = class {
37
53
  expiresAtMs: nowMs + 30 * 6e4,
38
54
  runtimePolicyScope: input.runtimePolicyScope
39
55
  };
40
- await this.put(attempt);
41
- return attempt;
56
+ await emailOtpRegistrationAttemptRows.insertPendingIfAbsent(this.prepare, attempt).run();
57
+ const winner = await this.findStarted({
58
+ providerSubject: input.providerSubject,
59
+ email: input.email,
60
+ orgId: this.orgId,
61
+ ownerProofBindingDigest: input.ownerProofBindingDigest,
62
+ runtimePolicyScope: input.runtimePolicyScope
63
+ });
64
+ if (!winner) throw new Error("Registration offer changed during creation; retry the request");
65
+ return winner;
42
66
  }
43
67
  async findStarted(input) {
44
68
  const nowMs = Date.now();
@@ -51,13 +75,11 @@ var CloudflareD1GoogleEmailOtpRegistrationAttemptStore = class {
51
75
  const parsed = parseGoogleEmailOtpRegistrationAttemptRow(row);
52
76
  if (!parsed) {
53
77
  const malformedAttemptId = normalizeOptionalTrimmedString(row?.attempt_id);
54
- if (malformedAttemptId) await this.delete(malformedAttemptId);
78
+ if (malformedAttemptId) await this.deleteMalformedUnclaimed(malformedAttemptId);
55
79
  return null;
56
80
  }
57
81
  if (!registrationAttemptMatchesStartedScope(parsed, scope)) return null;
58
- const refreshed = pendingGoogleEmailOtpRegistrationAttemptWithUpdatedAt(parsed, nowMs);
59
- await this.put(refreshed);
60
- return refreshed;
82
+ return parsed;
61
83
  }
62
84
  async abandonStartedExceptBinding(input) {
63
85
  const result = await emailOtpRegistrationAttemptRows.selectPending(this.prepare, input).all();
@@ -65,7 +87,7 @@ var CloudflareD1GoogleEmailOtpRegistrationAttemptStore = class {
65
87
  const parsed = parseGoogleEmailOtpRegistrationAttemptRow(row);
66
88
  if (!parsed) {
67
89
  const malformedAttemptId = normalizeOptionalTrimmedString(row.attempt_id);
68
- if (malformedAttemptId) await this.delete(malformedAttemptId);
90
+ if (malformedAttemptId) await this.deleteMalformedUnclaimed(malformedAttemptId);
69
91
  continue;
70
92
  }
71
93
  if (!registrationAttemptMatchesReplacementScope(parsed, input)) continue;
@@ -80,16 +102,26 @@ var CloudflareD1GoogleEmailOtpRegistrationAttemptStore = class {
80
102
  const row = await emailOtpRegistrationAttemptRows.selectLiveForWallet(this.prepare, input.walletId, input.nowMs).first();
81
103
  return Boolean(row);
82
104
  }
105
+ async claimCandidate(input) {
106
+ return d1MutationChanges(await emailOtpRegistrationAttemptRows.claimCandidate(this.prepare, {
107
+ ...input,
108
+ nowMs: Date.now()
109
+ }).run()) === 1 ? { ok: true } : {
110
+ ok: false,
111
+ code: "registration_candidate_unavailable",
112
+ message: "Registration offer is unavailable or already claimed by another candidate or intent"
113
+ };
114
+ }
83
115
  async read(attemptId) {
84
116
  const record = parseGoogleEmailOtpRegistrationAttemptRow(await emailOtpRegistrationAttemptRows.select(this.prepare, attemptId).first());
85
117
  return record?.runtimePolicyScope?.orgId === this.orgId ? record : null;
86
118
  }
87
119
  async put(record) {
88
120
  if (record.runtimePolicyScope?.orgId !== this.orgId) throw new Error("Google Email OTP registration attempt org scope mismatch");
89
- await emailOtpRegistrationAttemptRows.upsert(this.prepare, record).run();
121
+ if (d1MutationChanges(await emailOtpRegistrationAttemptRows.updatePending(this.prepare, record).run()) !== 1) throw new Error("Registration offer is no longer pending or has changed");
90
122
  }
91
- async delete(attemptId) {
92
- await emailOtpRegistrationAttemptRows.delete(this.prepare, attemptId).run();
123
+ async deleteMalformedUnclaimed(attemptId) {
124
+ await emailOtpRegistrationAttemptRows.deleteUnclaimed(this.prepare, attemptId).run();
93
125
  }
94
126
  };
95
127
  //#endregion
@@ -1,5 +1,4 @@
1
1
  import { normalizeOptionalTrimmedString } from "../../../../shared-ts/src/utils/normalize.js";
2
- import "../../../../shared-ts/src/utils/validation.js";
3
2
  import { isB64uString, nonNegativeSafeInteger, parseJsonObject, positiveSafeInteger } from "../auth/d1RouterApiAuthBoundary.js";
4
3
  //#region src/router/cloudflare/d1/emailOtp/d1GoogleEmailOtpRegistrationRecords.ts
5
4
  const GOOGLE_EMAIL_OTP_AUTH_PROVIDER = "google";
@@ -8,18 +7,6 @@ function requireRuntimePolicyScope(input) {
8
7
  if (scope) return scope;
9
8
  throw new Error("runtimePolicyScope.orgId, runtimePolicyScope.projectId, runtimePolicyScope.envId, and runtimePolicyScope.signingRootVersion are required for Google Email OTP registration");
10
9
  }
11
- function activeGoogleEmailOtpRegistrationAttemptRecord(input) {
12
- const terminal = terminalGoogleEmailOtpRegistrationAttemptRecord({
13
- fields: {
14
- ...input.record,
15
- updatedAtMs: input.updatedAtMs
16
- },
17
- state: "active",
18
- ...input.record.state === "key_finalized" ? { finalizedPublicKey: input.record.finalizedPublicKey } : {}
19
- });
20
- if (!terminal) throw new Error("Failed to build active Google Email OTP registration attempt");
21
- return terminal;
22
- }
23
10
  function expiredGoogleEmailOtpRegistrationAttemptRecord(input) {
24
11
  const terminal = terminalGoogleEmailOtpRegistrationAttemptRecord({
25
12
  fields: {
@@ -33,19 +20,6 @@ function expiredGoogleEmailOtpRegistrationAttemptRecord(input) {
33
20
  if (!terminal) throw new Error("Failed to build expired Google Email OTP registration attempt");
34
21
  return terminal;
35
22
  }
36
- function failedGoogleEmailOtpRegistrationAttemptWithCode(input) {
37
- const terminal = terminalGoogleEmailOtpRegistrationAttemptRecord({
38
- fields: {
39
- ...input.record,
40
- updatedAtMs: input.updatedAtMs
41
- },
42
- state: "failed",
43
- failureCode: input.failureCode,
44
- ...input.record.state === "key_finalized" ? { finalizedPublicKey: input.record.finalizedPublicKey } : {}
45
- });
46
- if (!terminal) throw new Error("Failed to build failed Google Email OTP registration attempt");
47
- return terminal;
48
- }
49
23
  function parseGoogleEmailOtpRegistrationAttemptRecord(input) {
50
24
  const record = parseJsonObject(input);
51
25
  if (!record) return null;
@@ -137,21 +111,6 @@ function googleEmailOtpRegistrationOfferForResponse(input) {
137
111
  candidates: [candidates[0], ...candidates.slice(1)]
138
112
  };
139
113
  }
140
- function pendingGoogleEmailOtpRegistrationAttemptWithUpdatedAt(record, updatedAtMs) {
141
- return pendingRegistrationAttemptRecord({
142
- ...record,
143
- updatedAtMs
144
- }, record);
145
- }
146
- function pendingGoogleEmailOtpRegistrationAttemptWithSelectedCandidate(input) {
147
- return pendingRegistrationAttemptRecord({
148
- ...input.record,
149
- walletId: input.candidate.walletId,
150
- selectedCandidateId: input.candidate.candidateId,
151
- collisionCounter: input.candidate.collisionCounter,
152
- updatedAtMs: input.updatedAtMs
153
- }, input.record);
154
- }
155
114
  function abandonedGoogleEmailOtpRegistrationAttemptRecord(input) {
156
115
  return registrationAttemptRecord({
157
116
  ...input.record,
@@ -244,13 +203,6 @@ function registrationAttemptRecord(fields, state) {
244
203
  ...fields.runtimePolicyScope ? { runtimePolicyScope: fields.runtimePolicyScope } : {}
245
204
  };
246
205
  }
247
- /** Rebuilds a pending attempt from changed fields, keeping its state. */
248
- function pendingRegistrationAttemptRecord(fields, record) {
249
- return record.state === "started" ? registrationAttemptRecord(fields, { state: "started" }) : registrationAttemptRecord(fields, {
250
- state: "key_finalized",
251
- finalizedPublicKey: record.finalizedPublicKey
252
- });
253
- }
254
206
  function terminalGoogleEmailOtpRegistrationAttemptRecord(input) {
255
207
  const finalized = input.finalizedPublicKey ? { finalizedPublicKey: input.finalizedPublicKey } : {};
256
208
  switch (input.state) {
@@ -274,6 +226,6 @@ function terminalGoogleEmailOtpRegistrationAttemptRecord(input) {
274
226
  }
275
227
  }
276
228
  //#endregion
277
- export { abandonedGoogleEmailOtpRegistrationAttemptRecord, activeGoogleEmailOtpRegistrationAttemptRecord, expiredGoogleEmailOtpRegistrationAttemptRecord, failedGoogleEmailOtpRegistrationAttemptWithCode, googleEmailOtpRegistrationOfferForResponse, parseGoogleEmailOtpRegistrationAttemptRow, pendingGoogleEmailOtpRegistrationAttemptWithSelectedCandidate, pendingGoogleEmailOtpRegistrationAttemptWithUpdatedAt, requireRuntimePolicyScope };
229
+ export { abandonedGoogleEmailOtpRegistrationAttemptRecord, expiredGoogleEmailOtpRegistrationAttemptRecord, googleEmailOtpRegistrationOfferForResponse, parseGoogleEmailOtpRegistrationAttemptRecord, parseGoogleEmailOtpRegistrationAttemptRow, parseGoogleEmailOtpRegistrationOfferCandidates, requireRuntimePolicyScope };
278
230
 
279
231
  //# sourceMappingURL=d1GoogleEmailOtpRegistrationRecords.js.map
@@ -1,12 +1,11 @@
1
1
  import { parseGoogleProviderSubject, parseOrgId, parseVerifiedGoogleEmail } 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 { secureRandomBase64Url } from "../../../../shared-ts/src/utils/secureRandomId.js";
5
4
  import { failure } from "../../../../shared-ts/src/utils/failure.js";
6
5
  import { createServerAllocatedWalletId } from "../../../../shared-ts/src/utils/registrationIds.js";
7
6
  import { hashEmailOtpOperationBinding } from "../../../domains/emailOtp/emailOtpSessionRouteHelpers.js";
8
7
  import { parseD1BoundaryWalletId, parseD1BoundaryWalletIdResult } from "../auth/d1RouterApiAuthBoundary.js";
9
- import { abandonedGoogleEmailOtpRegistrationAttemptRecord, activeGoogleEmailOtpRegistrationAttemptRecord, expiredGoogleEmailOtpRegistrationAttemptRecord, failedGoogleEmailOtpRegistrationAttemptWithCode, googleEmailOtpRegistrationOfferForResponse, requireRuntimePolicyScope } from "./d1GoogleEmailOtpRegistrationRecords.js";
8
+ import { abandonedGoogleEmailOtpRegistrationAttemptRecord, expiredGoogleEmailOtpRegistrationAttemptRecord, googleEmailOtpRegistrationOfferForResponse, requireRuntimePolicyScope } from "./d1GoogleEmailOtpRegistrationRecords.js";
10
9
  import { googleEmailOtpStaleIdentityMapping, hasDifferentWalletIdentitySubject } from "../identity/d1IdentityRecords.js";
11
10
  //#region src/router/cloudflare/d1/emailOtp/d1GoogleEmailOtpSessionResolver.ts
12
11
  var CloudflareD1GoogleEmailOtpSessionResolver = class {
@@ -130,41 +129,22 @@ var CloudflareD1GoogleEmailOtpSessionResolver = class {
130
129
  clientIp: normalizeOptionalTrimmedString(input.clientIp)
131
130
  });
132
131
  }
132
+ completeCommittedRegistrationAttempt(input) {
133
+ return this.registrationAttempts.completeCommitted({
134
+ attemptId: input.registrationAttemptId,
135
+ walletId: input.walletId,
136
+ intentDigest: input.intentDigest
137
+ });
138
+ }
133
139
  async completeRegistrationAttempt(input) {
134
140
  const registrationAttemptId = normalizeOptionalTrimmedString(input.registrationAttemptId);
135
141
  if (!registrationAttemptId) return { ok: true };
136
142
  const walletId = parseD1BoundaryWalletIdResult(input.walletId);
137
143
  if (!walletId.ok) return failure("invalid_body", walletId.code === "missing" ? "Missing walletId" : "Invalid walletId");
138
- const attempt = await this.registrationAttempts.read(registrationAttemptId);
139
- if (!attempt) return failure("registration_incomplete", "Google Email OTP registration attempt expired or was not found");
140
- if (attempt.expiresAtMs <= Date.now()) {
141
- await this.registrationAttempts.put(expiredGoogleEmailOtpRegistrationAttemptRecord({
142
- record: attempt,
143
- updatedAtMs: Date.now()
144
- }));
145
- return failure("registration_incomplete", "Google Email OTP registration attempt expired");
146
- }
147
- if (walletId.value !== attempt.walletId) return failure("wallet_identity_mismatch", "registrationAttemptId does not match walletId");
148
- if (attempt.state === "active") return { ok: true };
149
- if (attempt.state !== "started" && attempt.state !== "key_finalized") return failure("registration_incomplete", "Google Email OTP registration attempt is no longer active");
150
- const linked = await this.linkIdentity({
151
- userId: attempt.walletId,
152
- subject: `wallet:${attempt.providerSubject}`,
153
- allowMoveIfSoleIdentity: true
144
+ return this.registrationAttempts.complete({
145
+ attemptId: registrationAttemptId,
146
+ walletId: walletId.value
154
147
  });
155
- if (!linked.ok) {
156
- await this.registrationAttempts.put(failedGoogleEmailOtpRegistrationAttemptWithCode({
157
- record: attempt,
158
- failureCode: linked.code,
159
- updatedAtMs: Date.now()
160
- }));
161
- return failure(linked.code, linked.message);
162
- }
163
- await this.registrationAttempts.put(activeGoogleEmailOtpRegistrationAttemptRecord({
164
- record: attempt,
165
- updatedAtMs: Date.now()
166
- }));
167
- return { ok: true };
168
148
  }
169
149
  async validateRegistrationCandidateWallet(input) {
170
150
  const registrationAttemptId = normalizeOptionalTrimmedString(input.registrationAttemptId);
@@ -206,6 +186,14 @@ var CloudflareD1GoogleEmailOtpSessionResolver = class {
206
186
  hasEmailOtpEnrollment: true
207
187
  };
208
188
  }
189
+ return {
190
+ ok: false,
191
+ mode: "wallet_identity_mismatch",
192
+ code: "wallet_identity_mismatch",
193
+ walletId: input.loginWalletId,
194
+ providerSubject: input.providerSubject,
195
+ message: "The selected wallet does not match the verified Google account"
196
+ };
209
197
  }
210
198
  if (input.linkedWalletId) {
211
199
  const enrollment = await this.readActiveEnrollment({
@@ -0,0 +1,85 @@
1
+ //#region src/router/cloudflare/d1/emailOtp/d1GoogleRegistrationCompletion.ts
2
+ const PENDING_OFFER = `SELECT * FROM email_otp_registration_attempts
3
+ WHERE namespace = ? AND org_id = ? AND project_id = ? AND env_id = ?
4
+ AND attempt_id = ? AND wallet_id = ? AND selection_digest IS NOT NULL
5
+ AND state IN ('started', 'key_finalized')`;
6
+ async function completeGoogleRegistration(prepare, batch, input) {
7
+ const nowMs = Date.now();
8
+ const eligibility = input.kind === "live_offer" ? `${PENDING_OFFER} AND expires_at_ms > ?` : `${PENDING_OFFER} AND selection_digest = ?`;
9
+ const scopeValues = [
10
+ input.attemptId,
11
+ input.walletId,
12
+ input.kind === "live_offer" ? nowMs : input.intentDigest
13
+ ];
14
+ const results = await batch([
15
+ prepare(`WITH offer AS (${eligibility})
16
+ INSERT INTO identity_links (
17
+ namespace, org_id, project_id, env_id, subject, user_id, record_json,
18
+ created_at_ms, updated_at_ms
19
+ )
20
+ SELECT namespace, org_id, project_id, env_id, 'wallet:' || provider_subject,
21
+ wallet_id, json_object('version', 'identity_subject_v1',
22
+ 'subject', 'wallet:' || provider_subject, 'userId', wallet_id,
23
+ 'createdAtMs', ?, 'updatedAtMs', ?), ?, ?
24
+ FROM offer WHERE 1
25
+ ON CONFLICT (namespace, org_id, project_id, env_id, subject) DO UPDATE SET
26
+ user_id = excluded.user_id,
27
+ record_json = json_set(identity_links.record_json,
28
+ '$.userId', excluded.user_id,
29
+ '$.updatedAtMs', MAX(identity_links.updated_at_ms, excluded.updated_at_ms)),
30
+ updated_at_ms = MAX(identity_links.updated_at_ms, excluded.updated_at_ms)
31
+ WHERE identity_links.user_id = excluded.user_id OR (
32
+ SELECT COUNT(*) FROM identity_links old
33
+ WHERE old.namespace = identity_links.namespace AND old.org_id = identity_links.org_id
34
+ AND old.project_id = identity_links.project_id AND old.env_id = identity_links.env_id
35
+ AND old.user_id = identity_links.user_id
36
+ ) = 1`, [
37
+ ...scopeValues,
38
+ nowMs,
39
+ nowMs,
40
+ nowMs,
41
+ nowMs
42
+ ]),
43
+ prepare(`WITH offer AS (${eligibility})
44
+ UPDATE email_otp_registration_attempts AS attempt
45
+ SET state = 'active', updated_at_ms = MAX(updated_at_ms, ?),
46
+ record_json = json_set(record_json, '$.state', 'active', '$.updatedAtMs', MAX(updated_at_ms, ?))
47
+ WHERE EXISTS (SELECT 1 FROM offer
48
+ JOIN identity_links link ON link.namespace = offer.namespace AND link.org_id = offer.org_id
49
+ AND link.project_id = offer.project_id AND link.env_id = offer.env_id
50
+ AND link.subject = 'wallet:' || offer.provider_subject AND link.user_id = offer.wallet_id
51
+ WHERE attempt.namespace = offer.namespace AND attempt.org_id = offer.org_id
52
+ AND attempt.project_id = offer.project_id AND attempt.env_id = offer.env_id
53
+ AND attempt.attempt_id = offer.attempt_id)`, [
54
+ ...scopeValues,
55
+ nowMs,
56
+ nowMs
57
+ ]),
58
+ prepare(`SELECT 1 AS completed FROM email_otp_registration_attempts offer
59
+ JOIN identity_links link ON link.namespace = offer.namespace AND link.org_id = offer.org_id
60
+ AND link.project_id = offer.project_id AND link.env_id = offer.env_id
61
+ AND link.subject = 'wallet:' || offer.provider_subject AND link.user_id = offer.wallet_id
62
+ WHERE offer.namespace = ? AND offer.org_id = ? AND offer.project_id = ? AND offer.env_id = ?
63
+ AND offer.attempt_id = ? AND offer.wallet_id = ?
64
+ AND offer.selection_digest IS NOT NULL AND offer.state = 'active'
65
+ ${input.kind === "committed_wallet" ? "AND offer.selection_digest = ?" : ""}`, input.kind === "committed_wallet" ? [
66
+ input.attemptId,
67
+ input.walletId,
68
+ input.intentDigest
69
+ ] : [input.attemptId, input.walletId])
70
+ ]);
71
+ if (results.some(batchFailed)) throw new Error("Registration completion transaction failed");
72
+ if (results[2]?.results?.[0]?.completed === 1) return { ok: true };
73
+ return {
74
+ ok: false,
75
+ code: "registration_incomplete",
76
+ message: "Registration offer or identity link is unavailable for completion"
77
+ };
78
+ }
79
+ function batchFailed(result) {
80
+ return !result.success;
81
+ }
82
+ //#endregion
83
+ export { completeGoogleRegistration };
84
+
85
+ //# sourceMappingURL=d1GoogleRegistrationCompletion.js.map
@@ -1,5 +1,4 @@
1
1
  import { normalizeOptionalTrimmedString } from "../../../../shared-ts/src/utils/normalize.js";
2
- import "../../../../shared-ts/src/utils/validation.js";
3
2
  import { GOOGLE_EMAIL_OTP_STALE_IDENTITY_MESSAGE } from "../../../../core/authService/googleEmailOtpErrors.js";
4
3
  //#region src/router/cloudflare/d1/identity/d1IdentityRecords.ts
5
4
  function hasDifferentWalletIdentitySubject(input) {
@@ -1,38 +1,12 @@
1
1
  import { normalizeOptionalTrimmedString } from "../../../../shared-ts/src/utils/normalize.js";
2
- import "../../../../shared-ts/src/utils/validation.js";
3
2
  import { failure } from "../../../../shared-ts/src/utils/failure.js";
4
- import { parseD1BoundaryWalletId } from "../auth/d1RouterApiAuthBoundary.js";
5
- import { requireD1RouterApiAuthScopeString } from "../auth/d1RouterApiAuthConfig.js";
6
- import { deriveHostedNearAccountId } from "../../../../core/hostedAccountIds.js";
7
3
  //#region src/router/cloudflare/d1/identity/d1IdentityService.ts
8
4
  function errorMessage(error) {
9
5
  return error instanceof Error ? error.message : String(error || "");
10
6
  }
11
- function isHostedOidcWalletScopeRecord(input) {
12
- return input !== null && typeof input === "object" && !Array.isArray(input);
13
- }
14
- function resolveHostedOidcWalletScope(input) {
15
- const scope = isHostedOidcWalletScopeRecord(input) ? input : {};
16
- const orgId = normalizeOptionalTrimmedString(scope.orgId);
17
- const projectId = normalizeOptionalTrimmedString(scope.projectId);
18
- const envId = normalizeOptionalTrimmedString(scope.envId);
19
- if (orgId && projectId && envId) return {
20
- projectId,
21
- envId
22
- };
23
- throw new Error("runtimePolicyScope.orgId, runtimePolicyScope.projectId, and runtimePolicyScope.envId are required for hosted wallet id derivation");
24
- }
25
- function codedError(code, message) {
26
- const error = new Error(message);
27
- error.code = code;
28
- return error;
29
- }
30
7
  var CloudflareD1IdentityService = class {
31
8
  constructor(input) {
32
- this.accountIdDerivationSecret = input.accountIdDerivationSecret;
33
9
  this.identityStore = input.identityStore;
34
- this.relayerAccount = input.relayerAccount;
35
- this.resolveGoogleEmailOtpSession = input.resolveGoogleEmailOtpSession;
36
10
  }
37
11
  async listIdentities(input) {
38
12
  try {
@@ -75,28 +49,6 @@ var CloudflareD1IdentityService = class {
75
49
  return failure("internal", errorMessage(error) || "Failed to unlink identity");
76
50
  }
77
51
  }
78
- async resolveOidcWalletId(input) {
79
- const providerSubject = normalizeOptionalTrimmedString(input.providerSubject ?? input.sub);
80
- if (!providerSubject) throw new Error("Cannot resolve OIDC wallet id without provider subject");
81
- if (providerSubject.startsWith("google:")) {
82
- const resolution = await this.resolveGoogleEmailOtpSession(input);
83
- if (resolution.ok) return resolution.walletId;
84
- throw codedError(resolution.code, resolution.message);
85
- }
86
- const parsedLinkedWalletId = parseD1BoundaryWalletId(await this.identityStore.getUserIdBySubject(`wallet:${providerSubject}`));
87
- if (parsedLinkedWalletId) return parsedLinkedWalletId;
88
- const scope = resolveHostedOidcWalletScope(input.runtimePolicyScope);
89
- const verifiedEmail = normalizeOptionalTrimmedString(input.email);
90
- return await deriveHostedNearAccountId({
91
- accountIdDerivationSecret: requireD1RouterApiAuthScopeString(this.accountIdDerivationSecret, "ACCOUNT_ID_DERIVATION_SECRET"),
92
- relayerAccount: requireD1RouterApiAuthScopeString(this.relayerAccount, "relayerAccount"),
93
- projectId: scope.projectId,
94
- envId: scope.envId,
95
- authProvider: "oidc",
96
- providerSubject,
97
- ...verifiedEmail ? { verifiedEmail } : {}
98
- });
99
- }
100
52
  };
101
53
  //#endregion
102
54
  export { CloudflareD1IdentityService };