@seams/wallet-server 0.6.1 → 0.7.1

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 (705) hide show
  1. package/artifact-manifest.json +147 -32
  2. package/cloudflare-router-ab/build/deriver-a/build-stamp.json +1 -0
  3. package/cloudflare-router-ab/build/deriver-a/index.js +2 -2
  4. package/cloudflare-router-ab/build/deriver-a/index_bg.wasm +0 -0
  5. package/cloudflare-router-ab/build/deriver-b/build-stamp.json +1 -0
  6. package/cloudflare-router-ab/build/deriver-b/index.js +2 -2
  7. package/cloudflare-router-ab/build/deriver-b/index_bg.wasm +0 -0
  8. package/cloudflare-router-ab/build/local-tools/darwin-arm64/router_ab_local_init +0 -0
  9. package/cloudflare-router-ab/build/local-tools/darwin-x64/router_ab_local_init +0 -0
  10. package/cloudflare-router-ab/build/local-tools/linux-x64/router_ab_local_init +0 -0
  11. package/cloudflare-router-ab/build/router/build-stamp.json +1 -0
  12. package/cloudflare-router-ab/build/router/index.js +2 -2
  13. package/cloudflare-router-ab/build/router/index_bg.wasm +0 -0
  14. package/cloudflare-router-ab/build/signing-worker/build-stamp.json +1 -0
  15. package/cloudflare-router-ab/build/signing-worker/index.js +2 -2
  16. package/cloudflare-router-ab/build/signing-worker/index_bg.wasm +0 -0
  17. package/cloudflare-router-ab/build/tenant-root-control-plane/build-stamp.json +1 -0
  18. package/cloudflare-router-ab/build/tenant-root-control-plane/index.js +2 -2
  19. package/cloudflare-router-ab/build/tenant-root-control-plane/index_bg.wasm +0 -0
  20. package/cloudflare-router-ab/migrations/deriver-a/0012_tenant_root_creation_tombstones.sql +20 -0
  21. package/cloudflare-router-ab/migrations/deriver-a/0013_tenant_root_root_use_admissions.sql +32 -0
  22. package/cloudflare-router-ab/migrations/deriver-a/0014_tenant_root_refresh_supersessions.sql +24 -0
  23. package/cloudflare-router-ab/migrations/deriver-a/0015_tenant_root_root_use_attempts.sql +56 -0
  24. package/cloudflare-router-ab/migrations/deriver-a/0016_tenant_root_root_use_admission_settlement.sql +5 -0
  25. package/cloudflare-router-ab/migrations/deriver-a/0017_tenant_root_root_use_admission_claims.sql +64 -0
  26. package/cloudflare-router-ab/migrations/deriver-a/0018_tenant_root_recovery_retention_keys.sql +12 -0
  27. package/cloudflare-router-ab/migrations/deriver-b/0012_tenant_root_creation_tombstones.sql +20 -0
  28. package/cloudflare-router-ab/migrations/deriver-b/0013_tenant_root_root_use_admissions.sql +32 -0
  29. package/cloudflare-router-ab/migrations/deriver-b/0014_tenant_root_refresh_supersessions.sql +24 -0
  30. package/cloudflare-router-ab/migrations/deriver-b/0015_tenant_root_root_use_attempts.sql +56 -0
  31. package/cloudflare-router-ab/migrations/deriver-b/0016_tenant_root_root_use_admission_settlement.sql +5 -0
  32. package/cloudflare-router-ab/migrations/deriver-b/0017_tenant_root_root_use_admission_claims.sql +64 -0
  33. package/cloudflare-router-ab/migrations/deriver-b/0018_tenant_root_recovery_retention_keys.sql +12 -0
  34. package/cloudflare-router-ab/scripts/bootstrap-local-tenant-root.mjs +81 -16
  35. package/cloudflare-router-ab/scripts/prepare-local-runtime-config.mjs +102 -9
  36. package/cloudflare-router-ab/scripts/start-local-role-workers.mjs +4 -1
  37. package/cloudflare-router-ab/wrangler.deriver-a.toml +24 -0
  38. package/cloudflare-router-ab/wrangler.router.toml +13 -0
  39. package/dist/esm/authorization/capabilityPolicy.js +1 -1
  40. package/dist/esm/authorization/domain.js +2 -2
  41. package/dist/esm/authorization/factorEvidence.js +6 -100
  42. package/dist/esm/authorization/service.js +34 -2
  43. package/dist/esm/authorization/vaultProxyUse.js +3 -4
  44. package/dist/esm/cloud-host.js +16 -11
  45. package/dist/esm/core/EmailOtpRecords.js +19 -1
  46. package/dist/esm/core/EmailOtpStores.js +323 -924
  47. package/dist/esm/core/IdentityStore.js +44 -235
  48. package/dist/esm/core/NearPublicKeyStore.js +21 -63
  49. package/dist/esm/core/RegistrationCeremonyStore.js +3 -1793
  50. package/dist/esm/core/ThresholdService/config.js +1 -82
  51. package/dist/esm/core/ThresholdService/kv.js +3 -3
  52. package/dist/esm/core/ThresholdService/routerAb/ecdsaDerivationPoolFillHandlers.js +37 -5
  53. package/dist/esm/core/ThresholdService/routerAb/ecdsaDerivationPresignBridge.js +4 -74
  54. package/dist/esm/core/ThresholdService/stores/CloudflareDurableObjectStore.js +15 -51
  55. package/dist/esm/core/ThresholdService/stores/KeyStore.js +3 -3
  56. package/dist/esm/core/ThresholdService/stores/SessionStore.js +5 -81
  57. package/dist/esm/core/ThresholdService/stores/WalletSessionStore.js +185 -290
  58. package/dist/esm/core/ThresholdService/validation.js +18 -230
  59. package/dist/esm/core/WalletAuthMethodStore.js +22 -79
  60. package/dist/esm/core/WalletStore.js +58 -185
  61. package/dist/esm/core/WebAuthnAuthenticatorStore.js +57 -340
  62. package/dist/esm/core/WebAuthnCredentialBindingStore.js +90 -369
  63. package/dist/esm/core/WebAuthnLoginChallengeStore.js +17 -397
  64. package/dist/esm/core/WebAuthnSyncChallengeStore.js +17 -397
  65. package/dist/esm/core/authService/AuthService.js +2 -19
  66. package/dist/esm/core/authService/emailOtpChallengeProof.js +1 -1
  67. package/dist/esm/core/authService/emailOtpChallenges.js +1 -1
  68. package/dist/esm/core/authService/emailOtpConfig.js +1 -32
  69. package/dist/esm/core/authService/emailOtpRegistrationEnrollment.js +6 -153
  70. package/dist/esm/core/authService/googleEmailOtpRegistration.js +1 -1
  71. package/dist/esm/core/authService/nearPrivateKeySigning.js +7 -15
  72. package/dist/esm/core/authService/nearTransactions.js +2 -1
  73. package/dist/esm/core/authService/oidcVerification.js +3 -4
  74. package/dist/esm/core/authService/rateLimits.js +1 -31
  75. package/dist/esm/core/authService/registrationThresholdHelpers.js +2 -103
  76. package/dist/esm/core/authService/storeRegistry.js +2 -13
  77. package/dist/esm/core/authService/thresholdEcdsaKeyInventory.js +4 -5
  78. package/dist/esm/core/authService/webauthn.js +15 -50
  79. package/dist/esm/core/authService/webauthnOidcHelpers.js +1 -6
  80. package/dist/esm/core/authService/webauthnVerificationOutcomes.js +60 -0
  81. package/dist/esm/core/authService/webauthnWalletBinding.js +2 -122
  82. package/dist/esm/core/d1IdentityStore.js +32 -66
  83. package/dist/esm/core/d1TenantStore.js +82 -0
  84. package/dist/esm/core/d1WalletAuthMethodStore.js +92 -143
  85. package/dist/esm/core/d1WalletStore.js +14 -12
  86. package/dist/esm/core/deviceLinking/linkedDeviceEmailOtpGrant.js +10 -8
  87. package/dist/esm/core/deviceLinking/linkedDeviceManagement.js +25 -3
  88. package/dist/esm/core/deviceLinking/linkedDeviceSession.js +6 -895
  89. package/dist/esm/core/deviceLinking/linkedDeviceSessionApproval.js +102 -0
  90. package/dist/esm/core/deviceLinking/linkedDeviceSessionRecord.js +668 -0
  91. package/dist/esm/core/emailOtpD1Statements.js +383 -0
  92. package/dist/esm/core/hostedAccountIds.js +2 -2
  93. package/dist/esm/core/keyMaterialBrands.js +2 -48
  94. package/dist/esm/core/nearRelayerAccountProvisioning.js +25 -150
  95. package/dist/esm/core/nearSignerWasmRuntime.js +1 -4
  96. package/dist/esm/core/rpcClients/near/NearClient.js +15 -218
  97. package/dist/esm/core/signingLanes/LaneEnrollmentActivation.js +1 -1
  98. package/dist/esm/core/signingLanes/LaneLifecycleApplicationService.js +2 -4
  99. package/dist/esm/core/signingLanes/LaneLifecycleStore.js +0 -24
  100. package/dist/esm/core/signingLanes/WalletExecutionLaneProjection.js +5 -5
  101. package/dist/esm/core/signingLanes/ecdsaServerRetirement.js +3 -8
  102. package/dist/esm/core/signingLanes/ed25519ServerRetirement.js +1 -4
  103. package/dist/esm/core/storeBackends.js +208 -0
  104. package/dist/esm/core/thresholdEcdsaChainTarget.js +1 -7
  105. package/dist/esm/core/webAuthnD1Statements.js +92 -0
  106. package/dist/esm/core/webAuthnStoreBackends.js +198 -0
  107. package/dist/esm/hosted-wallet-gateway.js +33 -16
  108. package/dist/esm/index.js +2 -2
  109. package/dist/esm/local-hosted-wallet-gateway-worker.js +2 -23
  110. package/dist/esm/localHostedWalletGatewayHandler.js +299 -0
  111. package/dist/esm/localIntendedEcdsaFinalizeFault.js +85 -0
  112. package/dist/esm/localIntendedLinkExecuteFault.js +140 -0
  113. package/dist/esm/localIntendedRevokeFault.js +106 -0
  114. package/dist/esm/localIntendedSessionAdmissionFault.js +139 -0
  115. package/dist/esm/localIntendedYaoExportFault.js +117 -0
  116. package/dist/esm/localIntendedYaoFault.js +13 -16
  117. package/dist/esm/localIntendedYaoFinalizeFault.js +99 -0
  118. package/dist/esm/localIntendedYaoRecoveryFault.js +102 -0
  119. package/dist/esm/localIntendedYaoSigningFault.js +127 -0
  120. package/dist/esm/router/auth/authRequestValidation.js +1 -1
  121. package/dist/esm/router/auth/commonRouterUtils.js +10 -2
  122. package/dist/esm/router/auth/walletSessionFailure.js +1 -14
  123. package/dist/esm/router/cloudflare/d1/auth/d1AuthorizedOperationRouteService.js +23 -0
  124. package/dist/esm/router/cloudflare/d1/auth/d1RouterApiAuthService.js +86 -66
  125. package/dist/esm/router/cloudflare/d1/authorization/authorizedOperationStatements.js +208 -0
  126. package/dist/esm/router/cloudflare/d1/authorization/d1AuthorizationStore.js +246 -296
  127. package/dist/esm/router/cloudflare/d1/authorization/persistedWalletSessionAuthorization.js +14 -0
  128. package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceAuthorityInstallService.js +62 -63
  129. package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceEmailOtpGrantStore.js +3 -6
  130. package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceEmailOtpTargetFactor.js +1 -19
  131. package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceManagementService.js +4 -3
  132. package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceOwnerAuthorizationProvider.js +52 -9
  133. package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceRequestProofNonceStore.js +3 -6
  134. package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceRevocation.js +100 -0
  135. package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceSessionRecords.js +7 -10
  136. package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceSessionStore.js +33 -124
  137. package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceSourceContributionPreparationPlanner.js +2 -2
  138. package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceTargetCredentialProvider.js +9 -17
  139. package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceVerifiedLinkBuilder.js +6 -6
  140. package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceVerifiedLinkSourceReader.js +3 -1
  141. package/dist/esm/router/cloudflare/d1/deviceLinking/index.js +3 -3
  142. package/dist/esm/router/cloudflare/d1/deviceLinking/installedEcdsaAuthority.js +69 -0
  143. package/dist/esm/router/cloudflare/d1/ed25519Yao/d1Ed25519YaoCapabilityPersistence.js +39 -68
  144. package/dist/esm/router/cloudflare/d1/ed25519Yao/d1Ed25519YaoLifecycleDecisionStore.js +69 -0
  145. package/dist/esm/router/cloudflare/d1/ed25519Yao/d1Ed25519YaoProductRegistrationPartitionedStateStore.js +2 -2
  146. package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpChallengeStore.js +26 -71
  147. package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpChallengeVerifier.js +20 -3
  148. package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpEnrollmentStore.js +7 -94
  149. package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpGrantStore.js +5 -47
  150. package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpRecords.js +26 -123
  151. package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpRecoveryService.js +0 -2
  152. package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpRegistrationEnrollmentFinalizer.js +2 -2
  153. package/dist/esm/router/cloudflare/d1/emailOtp/d1GoogleEmailOtpRegistrationAttemptStore.js +15 -134
  154. package/dist/esm/router/cloudflare/d1/emailOtp/d1GoogleEmailOtpRegistrationRecords.js +54 -260
  155. package/dist/esm/router/cloudflare/d1/emailOtp/d1GoogleEmailOtpSessionResolver.js +1 -1
  156. package/dist/esm/router/cloudflare/d1/identity/d1IdentityRecords.js +1 -28
  157. package/dist/esm/router/cloudflare/d1/near/d1NearPublicKeyStore.js +2 -8
  158. package/dist/esm/router/cloudflare/d1/passkeyCustody/d1PasskeyCustodyEnvelopeStore.js +1 -1
  159. package/dist/esm/router/cloudflare/d1/passkeyCustody/d1PasskeyCustodyRouteService.js +3 -3
  160. package/dist/esm/router/cloudflare/d1/passkeyCustody/d1WalletCustodyCommitStore.js +23 -73
  161. package/dist/esm/router/cloudflare/d1/passkeyCustody/d1WalletRecoveryGoogleEmailOtpRecords.js +15 -2
  162. package/dist/esm/router/cloudflare/d1/passkeyCustody/d1WalletRecoveryGoogleEmailOtpService.js +12 -203
  163. package/dist/esm/router/cloudflare/d1/registration/d1RegistrationCeremonyRecordStore.js +16 -32
  164. package/dist/esm/router/cloudflare/d1/registration/d1RegistrationCeremonyRecords.js +29 -72
  165. package/dist/esm/router/cloudflare/d1/registration/d1RegistrationCeremonyStore.js +4 -1
  166. package/dist/esm/router/cloudflare/d1/registration/d1RegistrationIntentService.js +3 -1
  167. package/dist/esm/router/cloudflare/d1/registration/d1WalletRegistrationCommitStore.js +6 -30
  168. package/dist/esm/router/cloudflare/d1/registration/d1WalletRegistrationService.js +261 -205
  169. package/dist/esm/router/cloudflare/d1/registration/d1WalletRegistrationSetup.js +5 -3
  170. package/dist/esm/router/cloudflare/d1/registration/walletRegistrationEstablishedSessionIssuer.js +2 -2
  171. package/dist/esm/router/cloudflare/d1/registration/walletRegistrationSessionCommitReceipt.js +3 -3
  172. package/dist/esm/router/cloudflare/d1/signingAdmission/d1RouterAbNormalSigningAdmissionStore.js +43 -25
  173. package/dist/esm/router/cloudflare/d1/signingLanes/d1LaneEffectJournalStore.js +0 -1
  174. package/dist/esm/router/cloudflare/d1/signingLanes/d1LaneLifecycleStore.js +1 -1
  175. package/dist/esm/router/cloudflare/d1/signingLanes/d1LaneRecords.js +2 -1
  176. package/dist/esm/router/cloudflare/d1/versionedJson/d1VersionedJsonRecordStore.js +2 -60
  177. package/dist/esm/router/cloudflare/d1/wallet/d1WalletAddSignerService.js +158 -19
  178. package/dist/esm/router/cloudflare/d1/wallet/d1WalletAuthMethodBoundary.js +19 -49
  179. package/dist/esm/router/cloudflare/d1/wallet/d1WalletAuthMethodRevocationReplayStore.js +100 -0
  180. package/dist/esm/router/cloudflare/d1/wallet/d1WalletAuthMethodService.js +132 -33
  181. package/dist/esm/router/cloudflare/d1/wallet/d1WalletAuthorityStore.js +83 -4
  182. package/dist/esm/router/cloudflare/d1/webauthn/d1WebAuthnAuthService.js +14 -49
  183. package/dist/esm/router/cloudflare/d1/webauthn/d1WebAuthnRecords.js +4 -4
  184. package/dist/esm/router/cloudflare/d1/webauthn/d1WebAuthnStore.js +22 -116
  185. package/dist/esm/router/cloudflare/runtime/createSelfHostedCloudflareSigningWorker.js +1 -2
  186. package/dist/esm/router/cloudflare/runtime/walletConsoleTenantRootLineage.js +11 -2
  187. package/dist/esm/router/cloudflare/runtime/walletGateway.js +1 -1
  188. package/dist/esm/router/cloudflare/signingLanes/cloudflareLaneCurveExecution.js +5 -6
  189. package/dist/esm/router/cloudflare/signingLanes/cloudflareLaneProtocolCommitter.js +2 -1
  190. package/dist/esm/router/cloudflare/signingLanes/cloudflareOrdinaryInactiveSignerMaterialReservation.js +48 -21
  191. package/dist/esm/router/cloudflare.js +11480 -12853
  192. package/dist/esm/router/domains/ecdsa/routerAbEcdsaStrictRegistration.js +16 -5
  193. package/dist/esm/router/domains/ecdsa/thresholdEcdsaRequestValidation.js +2 -8
  194. package/dist/esm/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoLifecycleDecision.js +33 -0
  195. package/dist/esm/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistration.js +17 -9
  196. package/dist/esm/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistrationPartitionedStateStore.js +29 -431
  197. package/dist/esm/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistrationPartitioning.js +7 -2
  198. package/dist/esm/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistrationRequestScopedRunner.js +2 -1
  199. package/dist/esm/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistrationRequestScopedRuntime.js +70 -2
  200. package/dist/esm/router/domains/ed25519Yao/export/routerAbEd25519YaoExport.js +134 -169
  201. package/dist/esm/router/domains/ed25519Yao/export/routerAbEd25519YaoExportRequestScopedCloudflare.js +77 -162
  202. package/dist/esm/router/domains/ed25519Yao/recovery/routerAbEd25519YaoRecovery.js +205 -51
  203. package/dist/esm/router/domains/ed25519Yao/recovery/routerAbEd25519YaoRecoveryRequestScopedCloudflare.js +29 -11
  204. package/dist/esm/router/domains/ed25519Yao/registration/routerAbEd25519YaoHttpRegistrationBackend.js +182 -55
  205. package/dist/esm/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistration.js +2 -1
  206. package/dist/esm/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistrationExecutionRecord.js +63 -247
  207. package/dist/esm/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistrationIntentAuthorization.js +3 -2
  208. package/dist/esm/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistrationRequestScopedCloudflare.js +87 -132
  209. package/dist/esm/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistrationTwoPhaseRunner.js +5 -4
  210. package/dist/esm/router/domains/ed25519Yao/routerAbEd25519YaoGatewayEnvelope.js +45 -0
  211. package/dist/esm/router/domains/ed25519Yao/session/thresholdEd25519RequestValidation.js +1 -1
  212. package/dist/esm/router/domains/emailOtp/emailOtpExportPolicy.js +1 -42
  213. package/dist/esm/router/domains/emailOtp/emailOtpRequestValidation.js +1 -6
  214. package/dist/esm/router/domains/emailOtp/emailOtpSessionRouteHelpers.js +1 -142
  215. package/dist/esm/router/domains/passkeyCustody/passkeyCustodyEnvelopeRetrievalRoute.js +1 -1
  216. package/dist/esm/router/domains/passkeyCustody/walletCustodyRegistrationCommit.js +2 -2
  217. package/dist/esm/router/domains/passkeyCustody/walletRecoveryFinalization.js +23 -45
  218. package/dist/esm/router/domains/passkeyCustody/walletRecoveryKeyManifest.js +5 -5
  219. package/dist/esm/router/domains/signingOperations/ed25519AuthorizedOperationReceipt.js +1 -1
  220. package/dist/esm/router/domains/signingOperations/routerAbEcdsaDerivationNormalSigningRoute.js +827 -0
  221. package/dist/esm/router/domains/signingOperations/routerAbEd25519NormalSigningRoute.js +698 -0
  222. package/dist/esm/router/domains/signingOperations/routerAbNormalSigningAdmission.js +209 -0
  223. package/dist/esm/router/domains/signingOperations/routerAbNormalSigningAdmissionCore.js +16 -15
  224. package/dist/esm/router/domains/signingOperations/routerAbOperationStepUp.js +313 -0
  225. package/dist/esm/router/domains/signingOperations/routerAbPrivateSigningWorker.js +62 -2159
  226. package/dist/esm/router/domains/tenantRoot/tenantRootIdentityResolution.js +1 -1
  227. package/dist/esm/router/domains/walletRegistration/walletRegistrationRoutes.js +18 -22
  228. package/dist/esm/router/domains/walletRegistration/walletRegistrationSetupPayload.js +3 -4
  229. package/dist/esm/router/domains/walletUnlock/walletUnlockRequestedCapabilitiesValidation.js +2 -2
  230. package/dist/esm/router/domains/walletUnlock/walletUnlockRouteHandlers.js +97 -150
  231. package/dist/esm/router/express.js +5967 -6410
  232. package/dist/esm/router/framework/http.js +1 -4
  233. package/dist/esm/router/framework/ror/normalize.js +1 -1
  234. package/dist/esm/router/framework/routerApiRouteSurface.js +1 -1
  235. package/dist/esm/router/node/nodeHostedWalletGateway.js +64 -0
  236. package/dist/esm/router/node/nodeHostedWalletGatewayCheck.js +163 -0
  237. package/dist/esm/router/node/nodeHostedWalletGatewayMain.js +120 -0
  238. package/dist/esm/router/node/nodeHttp.js +79 -0
  239. package/dist/esm/router/node/nodeSqlite.js +43 -0
  240. package/dist/esm/router/node/signerSqlMigrations.js +48 -0
  241. package/dist/esm/router/transport/fetch/createFetchRouter.js +1 -1
  242. package/dist/esm/router/transport/fetch/routes/deviceLinking.js +16 -18
  243. package/dist/esm/router/transport/fetch/routes/deviceLinkingOwnerAuthorization.js +3 -5
  244. package/dist/esm/router/transport/fetch/routes/deviceManagement.js +15 -24
  245. package/dist/esm/router/transport/fetch/routes/normalSigningRouterProxy.js +3 -16
  246. package/dist/esm/router/transport/fetch/routes/passkeyCustody.js +144 -461
  247. package/dist/esm/router/transport/fetch/routes/sessions.js +4 -4
  248. package/dist/esm/router/transport/fetch/routes/syncAccount.js +4 -6
  249. package/dist/esm/router/transport/fetch/routes/syncAccountBootstrap.js +2 -2
  250. package/dist/esm/router/transport/fetch/routes/thresholdEcdsa.js +69 -23
  251. package/dist/esm/router/transport/fetch/routes/thresholdEd25519.js +52 -27
  252. package/dist/esm/shared-ts/src/authorization/capabilityKinds.js +1 -1
  253. package/dist/esm/shared-ts/src/authorization/delegatedAuthority.js +1 -1
  254. package/dist/esm/shared-ts/src/authorization/operationFingerprint.js +1 -2
  255. package/dist/esm/shared-ts/src/authorization/walletAuthority.js +99 -227
  256. package/dist/esm/shared-ts/src/authorization/walletCustodyOperation.js +4 -6
  257. package/dist/esm/shared-ts/src/device-linking/activeWalletSession.js +74 -0
  258. package/dist/esm/shared-ts/src/device-linking/authorityActivation.js +50 -0
  259. package/dist/esm/shared-ts/src/device-linking/committedSignerPackages.js +8 -9
  260. package/dist/esm/shared-ts/src/device-linking/delegatedActivationPlan.js +3 -1
  261. package/dist/esm/shared-ts/src/device-linking/deviceManagement.js +55 -0
  262. package/dist/esm/shared-ts/src/device-linking/digests.js +10 -65
  263. package/dist/esm/shared-ts/src/device-linking/ed25519ExportRoot.js +3 -1
  264. package/dist/esm/shared-ts/src/device-linking/index.js +4 -1
  265. package/dist/esm/shared-ts/src/device-linking/parsers.js +510 -1063
  266. package/dist/esm/shared-ts/src/device-linking/requestProof.js +5 -14
  267. package/dist/esm/shared-ts/src/device-linking/sourceContribution.js +6 -9
  268. package/dist/esm/shared-ts/src/device-linking/walletSessionCredentialDelivery.js +9 -9
  269. package/dist/esm/shared-ts/src/device-linking/wireFields.js +59 -0
  270. package/dist/esm/shared-ts/src/near/nearClient.js +252 -0
  271. package/dist/esm/shared-ts/src/passkey-custody/credentialActivity.js +3 -1
  272. package/dist/esm/shared-ts/src/passkey-custody/custodyEnvelope.js +7 -5
  273. package/dist/esm/shared-ts/src/passkey-custody/custodySecretBinding.js +6 -4
  274. package/dist/esm/shared-ts/src/passkey-custody/primitives.js +5 -39
  275. package/dist/esm/shared-ts/src/signing-lanes/evmFamilySigningKeySlotId.js +1 -5
  276. package/dist/esm/shared-ts/src/signing-lanes/index.js +3 -3
  277. package/dist/esm/shared-ts/src/signing-lanes/ownerContinuity.js +5 -12
  278. package/dist/esm/shared-ts/src/signing-lanes/participantDigest.js +5 -14
  279. package/dist/esm/shared-ts/src/signing-lanes/participants.js +2 -5
  280. package/dist/esm/shared-ts/src/signing-lanes/recordParsers.js +7 -5
  281. package/dist/esm/shared-ts/src/signing-lanes/rotationDigests.js +6 -45
  282. package/dist/esm/shared-ts/src/signing-lanes/rotationParsers.js +423 -1511
  283. package/dist/esm/shared-ts/src/signing-lanes/rotationProtocolParsers.js +323 -0
  284. package/dist/esm/shared-ts/src/signing-lanes/rotationWireFields.js +59 -0
  285. package/dist/esm/shared-ts/src/tenant-root/tenantRootOperationRecord.js +1 -1
  286. package/dist/esm/shared-ts/src/threshold/ecdsaDerivationRoleLocalBootstrap.js +1 -2
  287. package/dist/esm/shared-ts/src/threshold/keyMaterialBrands.js +49 -0
  288. package/dist/esm/shared-ts/src/utils/addAuthMethodRegistration.js +3 -4
  289. package/dist/esm/shared-ts/src/utils/canonicalPrimitives.js +8 -1
  290. package/dist/esm/shared-ts/src/utils/digestEncoding.js +63 -0
  291. package/dist/esm/shared-ts/src/utils/emailOtpDomain.js +2 -2
  292. package/dist/esm/shared-ts/src/utils/exactRecord.js +44 -0
  293. package/dist/esm/shared-ts/src/utils/registrationAuthMethodInput.js +127 -0
  294. package/dist/esm/shared-ts/src/utils/registrationEstablishedSession.js +2 -2
  295. package/dist/esm/shared-ts/src/utils/registrationIds.js +280 -0
  296. package/dist/esm/shared-ts/src/utils/registrationIntent.js +4 -1170
  297. package/dist/esm/shared-ts/src/utils/registrationSignerPlan.js +429 -0
  298. package/dist/esm/shared-ts/src/utils/routerAbEcdsaDerivation.js +11 -136
  299. package/dist/esm/shared-ts/src/utils/routerAbEd25519Yao.js +3 -163
  300. package/dist/esm/shared-ts/src/utils/routerAbEd25519YaoDigests.js +160 -0
  301. package/dist/esm/shared-ts/src/utils/routerAbNormalSigningIdentity.js +1 -4
  302. package/dist/esm/shared-ts/src/utils/routerAbPublicKeyset.js +7 -15
  303. package/dist/esm/shared-ts/src/utils/validation.js +37 -6
  304. package/dist/esm/shared-ts/src/utils/walletAuthMethodRecord.js +362 -0
  305. package/dist/esm/shared-ts/src/utils/wireSchema.js +77 -0
  306. package/dist/esm/shared-ts/src/wallet-recovery/recoveryCodeLocator.js +1 -1
  307. package/dist/esm/shared-ts/src/wallet-recovery/recoveryCodeReservation.js +1 -1
  308. package/dist/esm/shared-ts/src/wallet-recovery/walletRecoveryCommittedProjection.js +7 -11
  309. package/dist/esm/shared-ts/src/wallet-recovery/walletRecoveryEcdsaPossession.js +4 -8
  310. package/dist/esm/shared-ts/src/wallet-recovery/walletRecoveryEnvelopeSet.js +3 -1
  311. package/dist/esm/storage/d1Sql.js +10 -1
  312. package/dist/esm/storage/syncSqlite.js +79 -0
  313. package/dist/esm/threshold/session/signingSessionSeal/crypto/cipher.js +1 -1
  314. package/dist/esm/threshold/session/signingSessionSeal/crypto/shamir3PassWasm.js +1 -1
  315. package/dist/esm/threshold/session/signingSessionSeal/idempotencyRecords.js +1 -2
  316. package/dist/esm/threshold/session/signingSessionSeal/options.js +1 -1
  317. package/dist/esm/threshold/session/signingSessionSeal/transport/shared.js +18 -55
  318. package/dist/esm/threshold/statusCodes.js +1 -1
  319. package/dist/esm/wasm/near_signer/pkg/wasm_signer_worker.js +3 -3
  320. package/dist/esm/wasm/near_signer/pkg/wasm_signer_worker_bg.wasm +0 -0
  321. package/dist/esm/wasm/router_ab_ecdsa_signing_worker/pkg/router_ab_ecdsa_signing_worker_bg.wasm +0 -0
  322. package/dist/types/shared-ts/src/authorization/capabilityKinds.d.ts +8 -26
  323. package/dist/types/shared-ts/src/authorization/delegatedAuthority.d.ts +0 -8
  324. package/dist/types/shared-ts/src/authorization/operationFingerprint.d.ts +1 -3
  325. package/dist/types/shared-ts/src/authorization/walletAuthority.d.ts +25 -12
  326. package/dist/types/shared-ts/src/authorization/walletSessionIssuance.d.ts +2 -1
  327. package/dist/types/shared-ts/src/device-linking/activeWalletSession.d.ts +3 -2
  328. package/dist/types/shared-ts/src/device-linking/authorityActivation.d.ts +5 -0
  329. package/dist/types/shared-ts/src/device-linking/committedSignerPackages.d.ts +2 -5
  330. package/dist/types/shared-ts/src/device-linking/contracts.d.ts +8 -11
  331. package/dist/types/shared-ts/src/device-linking/contracts.typecheck.d.ts +2 -1
  332. package/dist/types/shared-ts/src/device-linking/deviceManagement.d.ts +7 -0
  333. package/dist/types/shared-ts/src/device-linking/digests.d.ts +0 -5
  334. package/dist/types/shared-ts/src/device-linking/ed25519ExportRoot.d.ts +3 -2
  335. package/dist/types/shared-ts/src/device-linking/index.d.ts +2 -0
  336. package/dist/types/shared-ts/src/device-linking/parsers.d.ts +4 -41
  337. package/dist/types/shared-ts/src/device-linking/requestProof.d.ts +0 -1
  338. package/dist/types/shared-ts/src/device-linking/sourceContribution.d.ts +3 -2
  339. package/dist/types/shared-ts/src/device-linking/walletSessionCredentialDelivery.d.ts +2 -1
  340. package/dist/types/shared-ts/src/device-linking/wireFields.d.ts +26 -0
  341. package/dist/types/shared-ts/src/near/actions.d.ts +4 -4
  342. package/dist/types/shared-ts/src/near/delegate.d.ts +3 -2
  343. package/dist/types/shared-ts/src/near/nearClient.d.ts +145 -0
  344. package/dist/types/shared-ts/src/passkey-custody/ceremonyCommitPayload.d.ts +0 -22
  345. package/dist/types/shared-ts/src/passkey-custody/credentialActivity.d.ts +2 -4
  346. package/dist/types/shared-ts/src/passkey-custody/custodyEnvelope.d.ts +9 -18
  347. package/dist/types/shared-ts/src/passkey-custody/custodySecretBinding.d.ts +8 -24
  348. package/dist/types/shared-ts/src/passkey-custody/index.d.ts +0 -2
  349. package/dist/types/shared-ts/src/passkey-custody/primitives.d.ts +0 -14
  350. package/dist/types/shared-ts/src/signing-lanes/evmFamilySigningKeySlotId.d.ts +0 -15
  351. package/dist/types/shared-ts/src/signing-lanes/execution.d.ts +2 -51
  352. package/dist/types/shared-ts/src/signing-lanes/index.d.ts +1 -2
  353. package/dist/types/shared-ts/src/signing-lanes/ownerContinuity.d.ts +1 -2
  354. package/dist/types/shared-ts/src/signing-lanes/participantDigest.d.ts +5 -27
  355. package/dist/types/shared-ts/src/signing-lanes/participants.d.ts +0 -11
  356. package/dist/types/shared-ts/src/signing-lanes/recordParsers.d.ts +6 -53
  357. package/dist/types/shared-ts/src/signing-lanes/records.d.ts +1 -2
  358. package/dist/types/shared-ts/src/signing-lanes/rotation.d.ts +15 -37
  359. package/dist/types/shared-ts/src/signing-lanes/rotationDigests.d.ts +1 -20
  360. package/dist/types/shared-ts/src/signing-lanes/rotationLifecycle.d.ts +4 -25
  361. package/dist/types/shared-ts/src/signing-lanes/rotationParsers.d.ts +1 -41
  362. package/dist/types/shared-ts/src/signing-lanes/rotationProtocolParsers.d.ts +6 -0
  363. package/dist/types/shared-ts/src/signing-lanes/rotationWireFields.d.ts +20 -0
  364. package/dist/types/shared-ts/src/threshold/ecdsaDerivationRoleLocalBootstrap.d.ts +2 -35
  365. package/dist/types/shared-ts/src/threshold/ed25519OperationFingerprint.d.ts +8 -35
  366. package/dist/types/shared-ts/src/threshold/keyMaterialBrands.d.ts +25 -0
  367. package/dist/types/shared-ts/src/threshold/participants.d.ts +3 -9
  368. package/dist/types/shared-ts/src/threshold/secp256k1.d.ts +0 -37
  369. package/dist/types/shared-ts/src/threshold/sessionPolicy.d.ts +24 -0
  370. package/dist/types/shared-ts/src/threshold/signingRootScope.d.ts +2 -5
  371. package/dist/types/shared-ts/src/utils/addAuthMethodRegistration.d.ts +3 -4
  372. package/dist/types/shared-ts/src/utils/addWalletAuthMethod.d.ts +7 -108
  373. package/dist/types/shared-ts/src/utils/addWalletAuthMethod.typecheck.d.ts +16 -3
  374. package/dist/types/shared-ts/src/utils/canonicalPrimitives.d.ts +2 -0
  375. package/dist/types/shared-ts/src/utils/digestEncoding.d.ts +9 -0
  376. package/dist/types/shared-ts/src/utils/domainIds.d.ts +1 -2
  377. package/dist/types/shared-ts/src/utils/ecdsaKeyFactsInventory.d.ts +1 -2
  378. package/dist/types/shared-ts/src/utils/emailOtpDomain.d.ts +5 -5
  379. package/dist/types/shared-ts/src/utils/emailOtpRecoveryKey.d.ts +0 -2
  380. package/dist/types/shared-ts/src/utils/errors.d.ts +0 -7
  381. package/dist/types/shared-ts/src/utils/exactRecord.d.ts +12 -0
  382. package/dist/types/shared-ts/src/utils/index.d.ts +5 -2
  383. package/dist/types/shared-ts/src/utils/jsonRpc.d.ts +3 -2
  384. package/dist/types/shared-ts/src/utils/near.d.ts +2 -1
  385. package/dist/types/shared-ts/src/utils/nearRpcResults.d.ts +7 -7
  386. package/dist/types/shared-ts/src/utils/normalize.d.ts +0 -4
  387. package/dist/types/shared-ts/src/utils/registrationAuthMethodInput.d.ts +184 -0
  388. package/dist/types/shared-ts/src/utils/registrationContracts.d.ts +76 -0
  389. package/dist/types/shared-ts/src/utils/registrationEstablishedSession.d.ts +1 -2
  390. package/dist/types/shared-ts/src/utils/registrationIds.d.ts +56 -0
  391. package/dist/types/shared-ts/src/utils/registrationIntent.d.ts +9 -514
  392. package/dist/types/shared-ts/src/utils/registrationSignerPlan.d.ts +142 -0
  393. package/dist/types/shared-ts/src/utils/routerAbEcdsaDerivation.d.ts +21 -92
  394. package/dist/types/shared-ts/src/utils/routerAbEd25519Yao.d.ts +14 -99
  395. package/dist/types/shared-ts/src/utils/routerAbEd25519YaoDigests.d.ts +39 -0
  396. package/dist/types/shared-ts/src/utils/routerAbPublicKeyset.d.ts +10 -15
  397. package/dist/types/shared-ts/src/utils/routerAbTraceContext.d.ts +2 -1
  398. package/dist/types/shared-ts/src/utils/secureRandomId.d.ts +0 -2
  399. package/dist/types/shared-ts/src/utils/signerDomain.d.ts +3 -35
  400. package/dist/types/shared-ts/src/utils/signerSlot.d.ts +0 -4
  401. package/dist/types/shared-ts/src/utils/signingSessionSeal.d.ts +1 -7
  402. package/dist/types/shared-ts/src/utils/validation.d.ts +10 -10
  403. package/dist/types/shared-ts/src/utils/variant.d.ts +11 -0
  404. package/dist/types/shared-ts/src/utils/variant.typecheck.d.ts +22 -0
  405. package/dist/types/shared-ts/src/utils/walletAddSignerActivation.d.ts +2 -2
  406. package/dist/types/shared-ts/src/utils/walletAuthAuthority.d.ts +1 -58
  407. package/dist/types/shared-ts/src/utils/walletAuthMethodRecord.d.ts +104 -0
  408. package/dist/types/shared-ts/src/utils/walletCapabilityBindings.d.ts +3 -7
  409. package/dist/types/shared-ts/src/utils/webauthnDeviceInfo.d.ts +3 -4
  410. package/dist/types/shared-ts/src/utils/wireSchema.d.ts +60 -0
  411. package/dist/types/shared-ts/src/wallet-recovery/backupAcknowledgement.d.ts +2 -1
  412. package/dist/types/shared-ts/src/wallet-recovery/index.d.ts +0 -1
  413. package/dist/types/shared-ts/src/wallet-recovery/recoveryCodeLocator.d.ts +0 -16
  414. package/dist/types/shared-ts/src/wallet-recovery/recoveryCodeReservation.d.ts +2 -11
  415. package/dist/types/shared-ts/src/wallet-recovery/walletRecoveryCommittedProjection.d.ts +6 -18
  416. package/dist/types/shared-ts/src/wallet-recovery/walletRecoveryEcdsaPossession.d.ts +0 -2
  417. package/dist/types/shared-ts/src/wallet-recovery/walletRecoveryEnvelopeSet.d.ts +1 -3
  418. package/dist/types/wallet-server/src/authorization/capabilityPolicy.d.ts +0 -1
  419. package/dist/types/wallet-server/src/authorization/domain.d.ts +25 -5
  420. package/dist/types/wallet-server/src/authorization/ecdsaWalletSessionAdmission.d.ts +37 -0
  421. package/dist/types/wallet-server/src/authorization/ecdsaWalletSessionAdmission.typecheck.d.ts +2 -0
  422. package/dist/types/wallet-server/src/authorization/factorEvidence.d.ts +6 -7
  423. package/dist/types/wallet-server/src/authorization/service.d.ts +52 -3
  424. package/dist/types/wallet-server/src/cloud-host.d.ts +6 -2
  425. package/dist/types/wallet-server/src/core/EmailOtpRecords.d.ts +10 -1
  426. package/dist/types/wallet-server/src/core/EmailOtpStores.d.ts +16 -116
  427. package/dist/types/wallet-server/src/core/IdentityStore.d.ts +2 -7
  428. package/dist/types/wallet-server/src/core/NearPublicKeyStore.d.ts +6 -16
  429. package/dist/types/wallet-server/src/core/RegistrationCeremonyStore.d.ts +29 -90
  430. package/dist/types/wallet-server/src/core/ThresholdService/config.d.ts +0 -12
  431. package/dist/types/wallet-server/src/core/ThresholdService/routerAb/ecdsaDerivationPoolFillHandlers.d.ts +10 -3
  432. package/dist/types/wallet-server/src/core/ThresholdService/routerAb/ecdsaDerivationPresignBridge.d.ts +17 -48
  433. package/dist/types/wallet-server/src/core/ThresholdService/routerAb/internalServiceHttp.d.ts +2 -1
  434. package/dist/types/wallet-server/src/core/ThresholdService/stores/CloudflareDurableObjectStore.d.ts +4 -71
  435. package/dist/types/wallet-server/src/core/ThresholdService/stores/KeyStore.d.ts +2 -1
  436. package/dist/types/wallet-server/src/core/ThresholdService/stores/SessionStore.d.ts +4 -8
  437. package/dist/types/wallet-server/src/core/ThresholdService/stores/StoreConfig.d.ts +2 -1
  438. package/dist/types/wallet-server/src/core/ThresholdService/stores/WalletSessionStore.d.ts +1 -3
  439. package/dist/types/wallet-server/src/core/ThresholdService/validation.d.ts +14 -47
  440. package/dist/types/wallet-server/src/core/WalletAuthMethodStore.d.ts +2 -7
  441. package/dist/types/wallet-server/src/core/WalletStore.d.ts +3 -8
  442. package/dist/types/wallet-server/src/core/WebAuthnAuthenticatorStore.d.ts +7 -22
  443. package/dist/types/wallet-server/src/core/WebAuthnCredentialBindingStore.d.ts +14 -36
  444. package/dist/types/wallet-server/src/core/WebAuthnLoginChallengeStore.d.ts +9 -34
  445. package/dist/types/wallet-server/src/core/WebAuthnSyncChallengeStore.d.ts +9 -34
  446. package/dist/types/wallet-server/src/core/authService/AuthService.d.ts +0 -3
  447. package/dist/types/wallet-server/src/core/authService/emailOtpChallengeOperations.d.ts +6 -5
  448. package/dist/types/wallet-server/src/core/authService/emailOtpChallengeProof.d.ts +9 -17
  449. package/dist/types/wallet-server/src/core/authService/emailOtpChallengeVerification.d.ts +3 -2
  450. package/dist/types/wallet-server/src/core/authService/emailOtpChallenges.d.ts +7 -23
  451. package/dist/types/wallet-server/src/core/authService/emailOtpConfig.d.ts +3 -10
  452. package/dist/types/wallet-server/src/core/authService/emailOtpDelivery.d.ts +4 -3
  453. package/dist/types/wallet-server/src/core/authService/emailOtpGrant.d.ts +4 -3
  454. package/dist/types/wallet-server/src/core/authService/emailOtpRegistrationEnrollment.d.ts +3 -70
  455. package/dist/types/wallet-server/src/core/authService/emailOtpSeal.d.ts +3 -2
  456. package/dist/types/wallet-server/src/core/authService/emailOtpUnlock.d.ts +4 -3
  457. package/dist/types/wallet-server/src/core/authService/googleEmailOtpRegistration.d.ts +5 -8
  458. package/dist/types/wallet-server/src/core/authService/nearPrivateKeySigning.d.ts +3 -2
  459. package/dist/types/wallet-server/src/core/authService/nearPublicKeyMetadata.d.ts +2 -1
  460. package/dist/types/wallet-server/src/core/authService/nearTransactions.d.ts +2 -1
  461. package/dist/types/wallet-server/src/core/authService/oidcVerification.d.ts +4 -3
  462. package/dist/types/wallet-server/src/core/authService/rateLimits.d.ts +0 -3
  463. package/dist/types/wallet-server/src/core/authService/registrationThresholdHelpers.d.ts +0 -26
  464. package/dist/types/wallet-server/src/core/authService/storeRegistry.d.ts +0 -5
  465. package/dist/types/wallet-server/src/core/authService/thresholdEcdsaKeyInventory.d.ts +0 -23
  466. package/dist/types/wallet-server/src/core/authService/webauthn.d.ts +8 -16
  467. package/dist/types/wallet-server/src/core/authService/webauthnOidcHelpers.d.ts +7 -7
  468. package/dist/types/wallet-server/src/core/authService/webauthnVerificationOutcomes.d.ts +43 -0
  469. package/dist/types/wallet-server/src/core/authService/webauthnWalletBinding.d.ts +1 -28
  470. package/dist/types/wallet-server/src/core/d1IdentityStore.d.ts +6 -16
  471. package/dist/types/wallet-server/src/core/d1TenantStore.d.ts +51 -0
  472. package/dist/types/wallet-server/src/core/d1WalletAuthMethodStore.d.ts +11 -29
  473. package/dist/types/wallet-server/src/core/d1WalletStore.d.ts +6 -1
  474. package/dist/types/wallet-server/src/core/deviceLinking/linkedDeviceEd25519ExportRoot.d.ts +2 -1
  475. package/dist/types/wallet-server/src/core/deviceLinking/linkedDeviceEmailOtpGrant.d.ts +2 -1
  476. package/dist/types/wallet-server/src/core/deviceLinking/linkedDeviceManagement.d.ts +44 -26
  477. package/dist/types/wallet-server/src/core/deviceLinking/linkedDeviceSession.d.ts +19 -217
  478. package/dist/types/wallet-server/src/core/deviceLinking/linkedDeviceSessionApproval.d.ts +8 -0
  479. package/dist/types/wallet-server/src/core/deviceLinking/linkedDeviceSessionRecord.d.ts +259 -0
  480. package/dist/types/wallet-server/src/core/deviceLinking/requestProof.d.ts +2 -2
  481. package/dist/types/wallet-server/src/core/emailOtpD1Statements.d.ts +54 -0
  482. package/dist/types/wallet-server/src/core/hostedAccountIds.d.ts +0 -15
  483. package/dist/types/wallet-server/src/core/keyMaterialBrands.d.ts +4 -24
  484. package/dist/types/wallet-server/src/core/nearRelayerAccountProvisioning.d.ts +2 -3
  485. package/dist/types/wallet-server/src/core/nearSignerWasmRuntime.d.ts +0 -1
  486. package/dist/types/wallet-server/src/core/registrationContracts.d.ts +37 -108
  487. package/dist/types/wallet-server/src/core/routerAbSigning/RouterAbNormalSigningRuntime.d.ts +5 -4
  488. package/dist/types/wallet-server/src/core/rpcClients/near/NearClient.d.ts +10 -106
  489. package/dist/types/wallet-server/src/core/signingLanes/LaneAggregateRevocationApplicationService.d.ts +4 -3
  490. package/dist/types/wallet-server/src/core/signingLanes/LaneEffectJournalStore.d.ts +2 -3
  491. package/dist/types/wallet-server/src/core/signingLanes/LaneLifecycleStore.d.ts +2 -3
  492. package/dist/types/wallet-server/src/core/signingLanes/WalletExecutionLaneProjection.d.ts +3 -9
  493. package/dist/types/wallet-server/src/core/signingLanes/ecdsaServerRetirement.d.ts +4 -4
  494. package/dist/types/wallet-server/src/core/signingLanes/ed25519ServerRetirement.d.ts +3 -3
  495. package/dist/types/wallet-server/src/core/storeBackends.d.ts +83 -0
  496. package/dist/types/wallet-server/src/core/threeRouteRegistrationContracts.d.ts +13 -59
  497. package/dist/types/wallet-server/src/core/threeRouteRegistrationContracts.typecheck.d.ts +51 -3
  498. package/dist/types/wallet-server/src/core/thresholdEcdsaChainTarget.d.ts +0 -1
  499. package/dist/types/wallet-server/src/core/types.d.ts +3 -24
  500. package/dist/types/wallet-server/src/core/webAuthnD1Statements.d.ts +29 -0
  501. package/dist/types/wallet-server/src/core/webAuthnStoreBackends.d.ts +96 -0
  502. package/dist/types/wallet-server/src/hosted-wallet-gateway.d.ts +11 -7
  503. package/dist/types/wallet-server/src/index.d.ts +1 -1
  504. package/dist/types/wallet-server/src/local-hosted-wallet-gateway-worker.d.ts +1 -4
  505. package/dist/types/wallet-server/src/localHostedWalletGatewayHandler.d.ts +12 -0
  506. package/dist/types/wallet-server/src/localIntendedEcdsaFinalizeFault.d.ts +33 -0
  507. package/dist/types/wallet-server/src/localIntendedLinkExecuteFault.d.ts +47 -0
  508. package/dist/types/wallet-server/src/localIntendedRevokeFault.d.ts +40 -0
  509. package/dist/types/wallet-server/src/localIntendedSessionAdmissionFault.d.ts +41 -0
  510. package/dist/types/wallet-server/src/localIntendedYaoExportFault.d.ts +41 -0
  511. package/dist/types/wallet-server/src/localIntendedYaoFault.d.ts +7 -1
  512. package/dist/types/wallet-server/src/localIntendedYaoFinalizeFault.d.ts +37 -0
  513. package/dist/types/wallet-server/src/localIntendedYaoRecoveryFault.d.ts +45 -0
  514. package/dist/types/wallet-server/src/localIntendedYaoSigningFault.d.ts +51 -0
  515. package/dist/types/wallet-server/src/router/auth/authRequestValidation.d.ts +10 -21
  516. package/dist/types/wallet-server/src/router/auth/commonRouterUtils.d.ts +5 -10
  517. package/dist/types/wallet-server/src/router/auth/walletSessionFailure.d.ts +1 -4
  518. package/dist/types/wallet-server/src/router/auth/webAuthnCredentialCodecs.d.ts +3 -2
  519. package/dist/types/wallet-server/src/router/cloudflare/d1/auth/d1AuthorizedOperationRouteService.d.ts +12 -0
  520. package/dist/types/wallet-server/src/router/cloudflare/d1/auth/d1RouterApiAuthBoundary.d.ts +3 -2
  521. package/dist/types/wallet-server/src/router/cloudflare/d1/auth/d1RouterApiAuthConfig.d.ts +2 -2
  522. package/dist/types/wallet-server/src/router/cloudflare/d1/auth/d1RouterApiAuthService.d.ts +1 -1
  523. package/dist/types/wallet-server/src/router/cloudflare/d1/authorization/authorizedOperationStatements.d.ts +30 -0
  524. package/dist/types/wallet-server/src/router/cloudflare/d1/authorization/d1AuthorizationStore.d.ts +45 -21
  525. package/dist/types/wallet-server/src/router/cloudflare/d1/authorization/persistedWalletSessionAuthorization.d.ts +3 -0
  526. package/dist/types/wallet-server/src/router/cloudflare/d1/authorization/walletSessionAuthorityProjection.d.ts +2 -1
  527. package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceAuthorityInstallService.d.ts +57 -6
  528. package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceEmailOtpGrantStore.d.ts +2 -3
  529. package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceEmailOtpTargetFactor.d.ts +8 -21
  530. package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceOwnerAuthorizationProvider.d.ts +14 -1
  531. package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceRevocation.d.ts +49 -0
  532. package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceSessionRecords.d.ts +1 -1
  533. package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceSessionStore.d.ts +4 -2
  534. package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceSourceContributionPreparationPlanner.d.ts +1 -1
  535. package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceTargetCredentialProvider.d.ts +2 -2
  536. package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceTargetPlanner.d.ts +8 -4
  537. package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceVerifiedLinkBuilder.d.ts +3 -5
  538. package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/installedEcdsaAuthority.d.ts +7 -0
  539. package/dist/types/wallet-server/src/router/cloudflare/d1/ed25519Yao/d1Ed25519YaoCapabilityPersistence.d.ts +1 -2
  540. package/dist/types/wallet-server/src/router/cloudflare/d1/ed25519Yao/d1Ed25519YaoLifecycleDecisionStore.d.ts +33 -0
  541. package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpChallengeIssuer.d.ts +1 -1
  542. package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpChallengeStore.d.ts +13 -3
  543. package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpChallengeVerifier.d.ts +24 -5
  544. package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpEnrollmentStore.d.ts +2 -3
  545. package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpGrantStore.d.ts +1 -3
  546. package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpRateLimitStore.d.ts +3 -4
  547. package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpRecords.d.ts +9 -8
  548. package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpRecoveryService.d.ts +0 -2
  549. package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpRegistrationEnrollmentFinalizer.d.ts +5 -4
  550. package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1GoogleEmailOtpRegistrationAttemptStore.d.ts +1 -3
  551. package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1GoogleEmailOtpRegistrationRecords.d.ts +3 -21
  552. package/dist/types/wallet-server/src/router/cloudflare/d1/identity/d1IdentityRecords.d.ts +0 -23
  553. package/dist/types/wallet-server/src/router/cloudflare/d1/near/d1NearPublicKeyStore.d.ts +1 -2
  554. package/dist/types/wallet-server/src/router/cloudflare/d1/passkeyCustody/d1PasskeyCustodyEnvelopeStore.d.ts +11 -19
  555. package/dist/types/wallet-server/src/router/cloudflare/d1/passkeyCustody/d1PasskeyCustodyRouteService.d.ts +5 -54
  556. package/dist/types/wallet-server/src/router/cloudflare/d1/passkeyCustody/d1WalletCustodyCommitStore.d.ts +7 -19
  557. package/dist/types/wallet-server/src/router/cloudflare/d1/passkeyCustody/d1WalletRecoveryGoogleEmailOtpRecords.d.ts +4 -3
  558. package/dist/types/wallet-server/src/router/cloudflare/d1/passkeyCustody/d1WalletRecoveryGoogleEmailOtpService.d.ts +8 -12
  559. package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1RegistrationCeremonyRecordStore.d.ts +5 -8
  560. package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1RegistrationCeremonyRecords.d.ts +10 -22
  561. package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1RegistrationCeremonyStore.d.ts +6 -2
  562. package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1WalletRegistrationCommitStore.d.ts +10 -6
  563. package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1WalletRegistrationService.d.ts +15 -22
  564. package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1WalletRegistrationSetup.d.ts +5 -3
  565. package/dist/types/wallet-server/src/router/cloudflare/d1/registration/walletRegistrationEstablishedSessionIssuer.d.ts +4 -3
  566. package/dist/types/wallet-server/src/router/cloudflare/d1/registration/walletRegistrationSessionCommitReceipt.d.ts +5 -5
  567. package/dist/types/wallet-server/src/router/cloudflare/d1/signingAdmission/d1RouterAbNormalSigningAdmissionStore.d.ts +3 -5
  568. package/dist/types/wallet-server/src/router/cloudflare/d1/signingLanes/d1LaneEffectJournalStore.d.ts +0 -1
  569. package/dist/types/wallet-server/src/router/cloudflare/d1/versionedJson/d1VersionedJsonRecordStore.d.ts +0 -16
  570. package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletAddSignerService.d.ts +29 -14
  571. package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletAuthMethodBoundary.d.ts +15 -12
  572. package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletAuthMethodRevocationReplayStore.d.ts +71 -0
  573. package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletAuthMethodService.d.ts +34 -24
  574. package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletAuthorityStore.d.ts +44 -26
  575. package/dist/types/wallet-server/src/router/cloudflare/d1/webauthn/d1WebAuthnRecords.d.ts +3 -7
  576. package/dist/types/wallet-server/src/router/cloudflare/d1/webauthn/d1WebAuthnStore.d.ts +8 -19
  577. package/dist/types/wallet-server/src/router/cloudflare/runtime/walletConsoleTenantRootLineage.d.ts +2 -1
  578. package/dist/types/wallet-server/src/router/cloudflare/runtime/walletGateway.d.ts +1 -0
  579. package/dist/types/wallet-server/src/router/cloudflare/signingLanes/cloudflareOrdinaryInactiveSignerMaterialReservation.d.ts +15 -2
  580. package/dist/types/wallet-server/src/router/cloudflare-adaptor.d.ts +2 -2
  581. package/dist/types/wallet-server/src/router/domains/ecdsa/routerAbEcdsaStrictRegistration.d.ts +9 -7
  582. package/dist/types/wallet-server/src/router/domains/ecdsa/thresholdEcdsaRequestValidation.d.ts +4 -4
  583. package/dist/types/wallet-server/src/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoLifecycleDecision.d.ts +46 -0
  584. package/dist/types/wallet-server/src/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistration.d.ts +5 -3
  585. package/dist/types/wallet-server/src/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistrationPartitionedStateStore.d.ts +20 -79
  586. package/dist/types/wallet-server/src/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistrationPartitioning.d.ts +2 -0
  587. package/dist/types/wallet-server/src/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistrationRequestScopedRunner.d.ts +1 -1
  588. package/dist/types/wallet-server/src/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistrationRequestScopedRuntime.d.ts +4 -3
  589. package/dist/types/wallet-server/src/router/domains/ed25519Yao/export/routerAbEd25519YaoExport.d.ts +62 -42
  590. package/dist/types/wallet-server/src/router/domains/ed25519Yao/recovery/routerAbEd25519YaoRecovery.d.ts +108 -32
  591. package/dist/types/wallet-server/src/router/domains/ed25519Yao/recovery/routerAbEd25519YaoRecoveryActivation.typecheck.d.ts +5 -0
  592. package/dist/types/wallet-server/src/router/domains/ed25519Yao/registration/routerAbEd25519YaoHttpRegistrationBackend.d.ts +36 -5
  593. package/dist/types/wallet-server/src/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistration.d.ts +5 -4
  594. package/dist/types/wallet-server/src/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistrationExecutionRecord.d.ts +41 -50
  595. package/dist/types/wallet-server/src/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistrationIntentAuthorization.d.ts +2 -2
  596. package/dist/types/wallet-server/src/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistrationRequestScopedCloudflare.d.ts +3 -3
  597. package/dist/types/wallet-server/src/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistrationSideEffectBoundary.d.ts +6 -5
  598. package/dist/types/wallet-server/src/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistrationTwoPhaseRunner.d.ts +14 -4
  599. package/dist/types/wallet-server/src/router/domains/ed25519Yao/routerAbEd25519YaoGatewayEnvelope.d.ts +12 -1
  600. package/dist/types/wallet-server/src/router/domains/ed25519Yao/session/routerAbEd25519YaoWalletSession.d.ts +5 -5
  601. package/dist/types/wallet-server/src/router/domains/ed25519Yao/session/thresholdEd25519RequestValidation.d.ts +3 -4
  602. package/dist/types/wallet-server/src/router/domains/emailOtp/emailOtpExportPolicy.d.ts +2 -27
  603. package/dist/types/wallet-server/src/router/domains/emailOtp/emailOtpRequestValidation.d.ts +1 -2
  604. package/dist/types/wallet-server/src/router/domains/emailOtp/emailOtpRouteHandlers.d.ts +2 -1
  605. package/dist/types/wallet-server/src/router/domains/emailOtp/emailOtpSessionRouteHelpers.d.ts +2 -102
  606. package/dist/types/wallet-server/src/router/domains/passkeyCustody/envelopeRevocationAdmission.d.ts +2 -1
  607. package/dist/types/wallet-server/src/router/domains/passkeyCustody/passkeyCustodyEnvelopeRetrieval.d.ts +3 -2
  608. package/dist/types/wallet-server/src/router/domains/passkeyCustody/passkeyCustodyEnvelopeRetrievalRoute.d.ts +1 -9
  609. package/dist/types/wallet-server/src/router/domains/passkeyCustody/registrationCustodyOutcome.d.ts +2 -1
  610. package/dist/types/wallet-server/src/router/domains/passkeyCustody/verifiedCustodyFactor.d.ts +2 -1
  611. package/dist/types/wallet-server/src/router/domains/passkeyCustody/walletCustodyRegistrationAdmission.d.ts +2 -1
  612. package/dist/types/wallet-server/src/router/domains/passkeyCustody/walletCustodyRegistrationCommit.d.ts +2 -28
  613. package/dist/types/wallet-server/src/router/domains/passkeyCustody/walletRecoveryFinalization.d.ts +43 -1
  614. package/dist/types/wallet-server/src/router/domains/passkeyCustody/walletRecoveryKeyManifest.d.ts +7 -7
  615. package/dist/types/wallet-server/src/router/domains/signingOperations/ed25519AuthorizedOperationReceipt.d.ts +0 -3
  616. package/dist/types/wallet-server/src/router/domains/signingOperations/routerAbEcdsaDerivationNormalSigningRoute.d.ts +165 -0
  617. package/dist/types/wallet-server/src/router/domains/signingOperations/routerAbEd25519NormalSigningRoute.d.ts +110 -0
  618. package/dist/types/wallet-server/src/router/domains/signingOperations/routerAbNormalSigningAdmission.d.ts +360 -0
  619. package/dist/types/wallet-server/src/router/domains/signingOperations/routerAbNormalSigningAdmissionCore.d.ts +11 -10
  620. package/dist/types/wallet-server/src/router/domains/signingOperations/routerAbNormalSigningAdmissionCore.typecheck.d.ts +2 -0
  621. package/dist/types/wallet-server/src/router/domains/signingOperations/routerAbOperationStepUp.d.ts +165 -0
  622. package/dist/types/wallet-server/src/router/domains/signingOperations/routerAbPrivateSigningWorker.d.ts +16 -702
  623. package/dist/types/wallet-server/src/router/domains/signingOperations/walletExecutionAdmission.d.ts +5 -12
  624. package/dist/types/wallet-server/src/router/domains/syncAccount/syncAccountRequestValidation.d.ts +5 -4
  625. package/dist/types/wallet-server/src/router/domains/tenantRoot/tenantRootCustodyLineage.d.ts +6 -1
  626. package/dist/types/wallet-server/src/router/domains/tenantRoot/tenantRootIdentityResolution.d.ts +4 -7
  627. package/dist/types/wallet-server/src/router/domains/walletRegistration/walletRegistrationInputs.d.ts +2 -1
  628. package/dist/types/wallet-server/src/router/domains/walletRegistration/walletRegistrationRoutes.d.ts +8 -8
  629. package/dist/types/wallet-server/src/router/domains/walletRegistration/walletRegistrationSetupPayload.d.ts +4 -4
  630. package/dist/types/wallet-server/src/router/domains/walletUnlock/walletUnlockRequestedCapabilitiesValidation.d.ts +4 -4
  631. package/dist/types/wallet-server/src/router/domains/walletUnlock/walletUnlockRouteHandlers.d.ts +4 -62
  632. package/dist/types/wallet-server/src/router/express-adaptor.d.ts +2 -2
  633. package/dist/types/wallet-server/src/router/framework/authServicePort.d.ts +64 -61
  634. package/dist/types/wallet-server/src/router/framework/http.d.ts +0 -1
  635. package/dist/types/wallet-server/src/router/framework/ror/normalize.d.ts +2 -2
  636. package/dist/types/wallet-server/src/router/framework/routeMeteringPolicy.d.ts +3 -2
  637. package/dist/types/wallet-server/src/router/framework/routerApi.d.ts +1 -1
  638. package/dist/types/wallet-server/src/router/framework/routerApiRouteSurface.d.ts +3 -3
  639. package/dist/types/wallet-server/src/router/node/nodeHostedWalletGateway.d.ts +34 -0
  640. package/dist/types/wallet-server/src/router/node/nodeHostedWalletGatewayCheck.d.ts +21 -0
  641. package/dist/types/wallet-server/src/router/node/nodeHostedWalletGatewayMain.d.ts +2 -0
  642. package/dist/types/wallet-server/src/router/node/nodeHttp.d.ts +13 -0
  643. package/dist/types/wallet-server/src/router/node/nodeSqlite.d.ts +22 -0
  644. package/dist/types/wallet-server/src/router/node/signerSqlMigrations.d.ts +20 -0
  645. package/dist/types/wallet-server/src/router/transport/fetch/createFetchRouter.d.ts +1 -3
  646. package/dist/types/wallet-server/src/router/transport/fetch/routes/deviceLinking.d.ts +5 -6
  647. package/dist/types/wallet-server/src/router/transport/fetch/routes/deviceLinkingOwnerAuthorization.d.ts +2 -2
  648. package/dist/types/wallet-server/src/router/transport/fetch/routes/deviceManagement.d.ts +14 -16
  649. package/dist/types/wallet-server/src/router/transport/fetch/routes/normalSigningRouterProxy.d.ts +0 -12
  650. package/dist/types/wallet-server/src/router/transport/fetch/routes/passkeyCustody.d.ts +1 -1
  651. package/dist/types/wallet-server/src/router/transport/fetch/routes/sessions.d.ts +2 -1
  652. package/dist/types/wallet-server/src/router/transport/fetch/routes/syncAccountBootstrap.d.ts +7 -13
  653. package/dist/types/wallet-server/src/router/transport/fetch/routes/thresholdEcdsa.d.ts +3 -57
  654. package/dist/types/wallet-server/src/router/transport/fetch/routes/thresholdEd25519.d.ts +0 -44
  655. package/dist/types/wallet-server/src/storage/d1Sql.d.ts +7 -0
  656. package/dist/types/wallet-server/src/storage/syncSqlite.d.ts +28 -0
  657. package/dist/types/wallet-server/src/threshold/session/signingSessionSeal/crypto/shamir3PassWasm.d.ts +0 -1
  658. package/dist/types/wallet-server/src/threshold/session/signingSessionSeal/idempotencyRecords.d.ts +5 -6
  659. package/dist/types/wallet-server/src/threshold/session/signingSessionSeal/transport/shared.d.ts +1 -0
  660. package/dist/types/wallet-server/src/threshold/statusCodes.d.ts +4 -4
  661. package/migrations/d1-signer/0036_r150_yao_lifecycle_decisions.sql +22 -0
  662. package/migrations/d1-signer/0037_r150_wallet_auth_method_revocation_replays.sql +26 -0
  663. package/migrations/d1-signer/0038_r150_registration_ceremony_cas_guard_seed.sql +8 -0
  664. package/migrations/d1-signer/0039_r150_revocation_replay_answer_kind.sql +9 -0
  665. package/package.json +1 -1
  666. package/dist/esm/core/ThresholdService/ecdsaClientRootProof.js +0 -27
  667. package/dist/esm/core/ThresholdService/routerAbEcdsaSigningWorkerWasm.js +0 -115
  668. package/dist/esm/core/ThresholdService/secureRandomId.js +0 -9
  669. package/dist/esm/core/authService/record.js +0 -8
  670. package/dist/esm/core/authService/thresholdRuntimePolicy.js +0 -19
  671. package/dist/esm/core/authService/walletRegistrationPlanning.js +0 -49
  672. package/dist/esm/core/deviceLinking/index.js +0 -5
  673. package/dist/esm/core/errors.js +0 -54
  674. package/dist/esm/core/routerAbSigning/createCloudflareDurableObjectRouterAbSigningRuntimes.js +0 -39
  675. package/dist/esm/core/signingLanes/WalletKeyStore.js +0 -0
  676. package/dist/esm/core/signingLanes/index.js +0 -8
  677. package/dist/esm/router/domains/tenantRoot/tenantRootEcdsaWalletSessionComposition.js +0 -55
  678. package/dist/esm/router/domains/tenantRoot/tenantRootEd25519WalletSessionComposition.js +0 -56
  679. package/dist/esm/shared-ts/src/signing-lanes/linkedEcdsaScope.js +0 -1
  680. package/dist/esm/wasm/router_ab_ecdsa_signing_worker/pkg/router_ab_ecdsa_signing_worker.js +0 -414
  681. package/dist/types/shared-ts/src/passkey-custody/credentialObservations.d.ts +0 -74
  682. package/dist/types/shared-ts/src/passkey-custody/kekContext.d.ts +0 -34
  683. package/dist/types/shared-ts/src/signing-lanes/linkedEcdsaScope.d.ts +0 -62
  684. package/dist/types/shared-ts/src/signing-lanes/linkedEcdsaScope.typecheck.d.ts +0 -2
  685. package/dist/types/shared-ts/src/signing-lanes/validation.d.ts +0 -11
  686. package/dist/types/shared-ts/src/utils/bigint.d.ts +0 -3
  687. package/dist/types/shared-ts/src/utils/paillier.d.ts +0 -37
  688. package/dist/types/shared-ts/src/utils/recoveryDomain.d.ts +0 -12
  689. package/dist/types/shared-ts/src/utils/signerDomain.typecheck.d.ts +0 -2
  690. package/dist/types/shared-ts/src/wallet-recovery/recoveryKekContext.d.ts +0 -37
  691. package/dist/types/wallet-server/src/core/ThresholdService/ecdsaClientRootProof.d.ts +0 -12
  692. package/dist/types/wallet-server/src/core/ThresholdService/routerAbEcdsaSigningWorkerWasm.d.ts +0 -17
  693. package/dist/types/wallet-server/src/core/ThresholdService/secureRandomId.d.ts +0 -2
  694. package/dist/types/wallet-server/src/core/authService/record.d.ts +0 -2
  695. package/dist/types/wallet-server/src/core/authService/thresholdRuntimePolicy.d.ts +0 -4
  696. package/dist/types/wallet-server/src/core/authService/walletRegistrationPlanning.d.ts +0 -19
  697. package/dist/types/wallet-server/src/core/deviceLinking/index.d.ts +0 -5
  698. package/dist/types/wallet-server/src/core/errors.d.ts +0 -10
  699. package/dist/types/wallet-server/src/core/routerAbSigning/createCloudflareDurableObjectRouterAbSigningRuntimes.d.ts +0 -28
  700. package/dist/types/wallet-server/src/core/signingLanes/SigningLaneStore.d.ts +0 -15
  701. package/dist/types/wallet-server/src/core/signingLanes/WalletKeyStore.d.ts +0 -13
  702. package/dist/types/wallet-server/src/core/signingLanes/index.d.ts +0 -11
  703. package/dist/types/wallet-server/src/router/domains/tenantRoot/tenantRootEcdsaWalletSessionComposition.d.ts +0 -35
  704. package/dist/types/wallet-server/src/router/domains/tenantRoot/tenantRootEd25519WalletSessionComposition.d.ts +0 -35
  705. /package/dist/esm/{core/signingLanes/SigningLaneStore.js → authorization/ecdsaWalletSessionAdmission.js} +0 -0
@@ -1,26 +1,57 @@
1
1
  import { normalizeOptionalTrimmedString } from "../../../shared-ts/src/utils/normalize.js";
2
- import "../../../shared-ts/src/utils/validation.js";
3
- import { isObject, parseEcdsaWalletSessionRecord, parseEd25519WalletSessionRecord, toThresholdEcdsaPrefixFromBase, toThresholdEcdsaWalletSessionPrefix, toThresholdEd25519PrefixFromBase, toThresholdEd25519WalletSessionPrefix } from "../validation.js";
2
+ import { isPlainObject } from "../../../shared-ts/src/utils/validation.js";
3
+ import { parseEcdsaWalletSessionRecord, parseEd25519WalletSessionRecord, toThresholdEcdsaPrefixFromBase, toThresholdEcdsaWalletSessionPrefix, toThresholdEd25519PrefixFromBase, toThresholdEd25519WalletSessionPrefix } from "../validation.js";
4
4
  import { RedisTcpClient, UpstashRedisRestClient, redisGetJson, redisSetJson } from "../kv.js";
5
5
  import { createCloudflareDurableObjectThresholdEcdsaStores, createCloudflareDurableObjectThresholdEd25519Stores } from "./CloudflareDurableObjectStore.js";
6
6
  import { readNonDurableObjectThresholdStoreKind } from "./StoreConfig.js";
7
7
  //#region src/core/ThresholdService/stores/WalletSessionStore.ts
8
8
  const EXPORT_REPLAY_GUARD_CLOCK_SKEW_MS = 5 * 6e4;
9
9
  const EXPORT_REPLAY_GUARD_MIN_RETENTION_MS = 1440 * 6e4;
10
+ /** A wallet session store's keys: record, use counter, consume-once markers, replay guards. */
11
+ var WalletSessionKeys = class {
12
+ constructor(keyPrefix) {
13
+ this.prefix = toThresholdEd25519WalletSessionPrefix(keyPrefix);
14
+ }
15
+ meta(id) {
16
+ return `${this.prefix}${id}`;
17
+ }
18
+ uses(id) {
19
+ return `${this.prefix}${id}:uses`;
20
+ }
21
+ consumeOnce(id, idempotencyKey) {
22
+ return `${this.uses(id)}:once:${normalizeConsumeOnceKey(idempotencyKey)}`;
23
+ }
24
+ replayGuard(scopeId, replayKey) {
25
+ return `${this.prefix}replay:${normalizeConsumeOnceKey(scopeId)}:${normalizeConsumeOnceKey(replayKey)}`;
26
+ }
27
+ };
10
28
  var InMemoryWalletSessionStore = class {
11
29
  constructor(input) {
12
30
  this.map = /* @__PURE__ */ new Map();
13
31
  this.replayGuards = /* @__PURE__ */ new Map();
14
- this.keyPrefix = toThresholdEd25519WalletSessionPrefix(input.keyPrefix);
15
- }
16
- key(id) {
17
- return `${this.keyPrefix}${id}`;
32
+ this.keys = new WalletSessionKeys(input.keyPrefix);
18
33
  }
19
- replayGuardKey(scopeId, replayKey) {
20
- return `${this.keyPrefix}replay:${normalizeConsumeOnceKey(scopeId)}:${normalizeConsumeOnceKey(replayKey)}`;
34
+ /** The session's entry, or why it cannot be used: missing, or expired (and dropped). */
35
+ liveEntry(id) {
36
+ const key = this.keys.meta(id);
37
+ const entry = this.map.get(key);
38
+ if (!entry) return {
39
+ ok: false,
40
+ code: "wallet_session_missing",
41
+ message: "Wallet Session is missing"
42
+ };
43
+ if (entry.expiresAtMs <= Date.now()) {
44
+ this.map.delete(key);
45
+ return {
46
+ ok: false,
47
+ code: "wallet_session_expired",
48
+ message: "Wallet Session expired"
49
+ };
50
+ }
51
+ return entry;
21
52
  }
22
53
  async putSession(id, record, opts) {
23
- const key = this.key(id);
54
+ const key = this.keys.meta(id);
24
55
  const ttlMs = Math.max(0, Number(opts.ttlMs) || 0);
25
56
  const expiresAtMs = Date.now() + ttlMs;
26
57
  this.map.set(key, {
@@ -31,7 +62,7 @@ var InMemoryWalletSessionStore = class {
31
62
  });
32
63
  }
33
64
  async getSession(id) {
34
- const key = this.key(id);
65
+ const key = this.keys.meta(id);
35
66
  const entry = this.map.get(key);
36
67
  if (!entry) return null;
37
68
  if (entry.expiresAtMs <= Date.now()) {
@@ -41,7 +72,7 @@ var InMemoryWalletSessionStore = class {
41
72
  return entry.record;
42
73
  }
43
74
  async getSessionStatus(id) {
44
- const key = this.key(id);
75
+ const key = this.keys.meta(id);
45
76
  const entry = this.map.get(key);
46
77
  if (!entry) return {
47
78
  ok: false,
@@ -64,21 +95,8 @@ var InMemoryWalletSessionStore = class {
64
95
  };
65
96
  }
66
97
  async consumeUseCount(id) {
67
- const key = this.key(id);
68
- const entry = this.map.get(key);
69
- if (!entry) return {
70
- ok: false,
71
- code: "wallet_session_missing",
72
- message: "Wallet Session is missing"
73
- };
74
- if (entry.expiresAtMs <= Date.now()) {
75
- this.map.delete(key);
76
- return {
77
- ok: false,
78
- code: "wallet_session_expired",
79
- message: "Wallet Session expired"
80
- };
81
- }
98
+ const entry = this.liveEntry(id);
99
+ if ("ok" in entry) return entry;
82
100
  if (entry.remainingUses <= 0) return {
83
101
  ok: false,
84
102
  code: "wallet_budget_exhausted",
@@ -91,21 +109,8 @@ var InMemoryWalletSessionStore = class {
91
109
  };
92
110
  }
93
111
  async consumeUseCountOnce(id, idempotencyKey) {
94
- const key = this.key(id);
95
- const entry = this.map.get(key);
96
- if (!entry) return {
97
- ok: false,
98
- code: "wallet_session_missing",
99
- message: "Wallet Session is missing"
100
- };
101
- if (entry.expiresAtMs <= Date.now()) {
102
- this.map.delete(key);
103
- return {
104
- ok: false,
105
- code: "wallet_session_expired",
106
- message: "Wallet Session expired"
107
- };
108
- }
112
+ const entry = this.liveEntry(id);
113
+ if ("ok" in entry) return entry;
109
114
  const consumeKey = String(idempotencyKey || "").trim();
110
115
  if (consumeKey && entry.consumedIdempotencyKeys.has(consumeKey)) return {
111
116
  ok: true,
@@ -124,21 +129,8 @@ var InMemoryWalletSessionStore = class {
124
129
  };
125
130
  }
126
131
  async hasConsumedUseCountOnce(id, idempotencyKey) {
127
- const key = this.key(id);
128
- const entry = this.map.get(key);
129
- if (!entry) return {
130
- ok: false,
131
- code: "wallet_session_missing",
132
- message: "Wallet Session is missing"
133
- };
134
- if (entry.expiresAtMs <= Date.now()) {
135
- this.map.delete(key);
136
- return {
137
- ok: false,
138
- code: "wallet_session_expired",
139
- message: "Wallet Session expired"
140
- };
141
- }
132
+ const entry = this.liveEntry(id);
133
+ if ("ok" in entry) return entry;
142
134
  const consumeKey = String(idempotencyKey || "").trim();
143
135
  return {
144
136
  ok: true,
@@ -146,7 +138,7 @@ var InMemoryWalletSessionStore = class {
146
138
  };
147
139
  }
148
140
  async reserveReplayGuard(scopeId, replayKey, expiresAtMs) {
149
- const key = this.replayGuardKey(scopeId, replayKey);
141
+ const key = this.keys.replayGuard(scopeId, replayKey);
150
142
  if (!key) return replayGuardInvalid();
151
143
  const nowMs = Date.now();
152
144
  const existingExpiresAtMs = this.replayGuards.get(key);
@@ -158,6 +150,49 @@ var InMemoryWalletSessionStore = class {
158
150
  return { ok: true };
159
151
  }
160
152
  };
153
+ /** A backend failure as an `internal` result: the error's message, else `fallback`. */
154
+ function walletSessionStoreFailure(error, fallback) {
155
+ return {
156
+ ok: false,
157
+ code: "internal",
158
+ message: String(error && typeof error === "object" && "message" in error ? error.message : error || fallback)
159
+ };
160
+ }
161
+ /**
162
+ * A remote store's session status: the parsed record while it is live, with its remaining uses.
163
+ * A backend failure, or a use count that is not a non-negative integer, reads as unavailable.
164
+ */
165
+ async function readWalletSessionStatus(input) {
166
+ try {
167
+ const record = await input.readRecord();
168
+ if (!record) return {
169
+ ok: false,
170
+ code: "wallet_session_missing"
171
+ };
172
+ if (record.expiresAtMs <= Date.now()) return {
173
+ ok: false,
174
+ code: "wallet_session_expired"
175
+ };
176
+ const remainingUses = Number(await input.readRemainingUses());
177
+ if (!Number.isSafeInteger(remainingUses) || remainingUses < 0) return {
178
+ ok: false,
179
+ code: "wallet_session_unavailable"
180
+ };
181
+ return {
182
+ ok: true,
183
+ status: {
184
+ record,
185
+ expiresAtMs: record.expiresAtMs,
186
+ remainingUses
187
+ }
188
+ };
189
+ } catch {
190
+ return {
191
+ ok: false,
192
+ code: "wallet_session_unavailable"
193
+ };
194
+ }
195
+ }
161
196
  function normalizeConsumeOnceKey(value) {
162
197
  return String(value || "").trim().replace(/[^A-Za-z0-9._:-]/g, "_").slice(0, 512);
163
198
  }
@@ -309,81 +344,36 @@ var UpstashRedisRestWalletSessionStore = class {
309
344
  url,
310
345
  token
311
346
  });
312
- this.keyPrefix = toThresholdEd25519WalletSessionPrefix(input.keyPrefix);
313
- this.parseRecord = input.parseRecord || parseEd25519WalletSessionRecord;
314
- }
315
- metaKey(id) {
316
- return `${this.keyPrefix}${id}`;
317
- }
318
- usesKey(id) {
319
- return `${this.keyPrefix}${id}:uses`;
320
- }
321
- consumeOnceKey(id, idempotencyKey) {
322
- return `${this.usesKey(id)}:once:${normalizeConsumeOnceKey(idempotencyKey)}`;
323
- }
324
- replayGuardKey(scopeId, replayKey) {
325
- return `${this.keyPrefix}replay:${normalizeConsumeOnceKey(scopeId)}:${normalizeConsumeOnceKey(replayKey)}`;
347
+ this.keys = new WalletSessionKeys(input.keyPrefix);
348
+ this.parseRecord = input.parseRecord;
326
349
  }
327
350
  async putSession(id, record, opts) {
328
351
  const ttlMs = Math.max(0, Number(opts.ttlMs) || 0);
329
- await this.client.setJson(this.metaKey(id), record, ttlMs);
330
- await this.client.setRaw(this.usesKey(id), String(Math.max(0, Number(opts.remainingUses) || 0)), ttlMs);
352
+ await this.client.setJson(this.keys.meta(id), record, ttlMs);
353
+ await this.client.setRaw(this.keys.uses(id), String(Math.max(0, Number(opts.remainingUses) || 0)), ttlMs);
331
354
  }
332
355
  async getSession(id) {
333
- const raw = await this.client.getJson(this.metaKey(id));
356
+ const raw = await this.client.getJson(this.keys.meta(id));
334
357
  return this.parseRecord(raw);
335
358
  }
336
359
  async getSessionStatus(id) {
337
- try {
338
- const record = this.parseRecord(await this.client.getJson(this.metaKey(id)));
339
- if (!record) return {
340
- ok: false,
341
- code: "wallet_session_missing"
342
- };
343
- if (record.expiresAtMs <= Date.now()) return {
344
- ok: false,
345
- code: "wallet_session_expired"
346
- };
347
- const remainingUses = Number(await this.client.getRaw(this.usesKey(id)));
348
- if (!Number.isSafeInteger(remainingUses) || remainingUses < 0) return {
349
- ok: false,
350
- code: "wallet_session_unavailable"
351
- };
352
- return {
353
- ok: true,
354
- status: {
355
- record,
356
- expiresAtMs: record.expiresAtMs,
357
- remainingUses
358
- }
359
- };
360
- } catch {
361
- return {
362
- ok: false,
363
- code: "wallet_session_unavailable"
364
- };
365
- }
360
+ return readWalletSessionStatus({
361
+ readRecord: async () => this.parseRecord(await this.client.getJson(this.keys.meta(id))),
362
+ readRemainingUses: () => this.client.getRaw(this.keys.uses(id))
363
+ });
366
364
  }
367
365
  async consumeUseCount(id) {
368
366
  try {
369
- return parseRedisConsumeOnceResult(await this.client.eval(CONSUME_USE_COUNT_LUA, [this.usesKey(id)], []));
367
+ return parseRedisConsumeOnceResult(await this.client.eval(CONSUME_USE_COUNT_LUA, [this.keys.uses(id)], []));
370
368
  } catch (e) {
371
- return {
372
- ok: false,
373
- code: "internal",
374
- message: String(e && typeof e === "object" && "message" in e ? e.message : e || "Failed to consume threshold session")
375
- };
369
+ return walletSessionStoreFailure(e, "Failed to consume threshold session");
376
370
  }
377
371
  }
378
372
  async consumeUseCountOnce(id, idempotencyKey) {
379
373
  try {
380
- return parseRedisConsumeOnceResult(await this.client.eval(CONSUME_ONCE_LUA, [this.usesKey(id), this.consumeOnceKey(id, idempotencyKey)], []));
374
+ return parseRedisConsumeOnceResult(await this.client.eval(CONSUME_ONCE_LUA, [this.keys.uses(id), this.keys.consumeOnce(id, idempotencyKey)], []));
381
375
  } catch (e) {
382
- return {
383
- ok: false,
384
- code: "internal",
385
- message: String(e && typeof e === "object" && "message" in e ? e.message : e || "Failed to consume threshold session")
386
- };
376
+ return walletSessionStoreFailure(e, "Failed to consume threshold session");
387
377
  }
388
378
  }
389
379
  async hasConsumedUseCountOnce(id, idempotencyKey) {
@@ -393,26 +383,18 @@ var UpstashRedisRestWalletSessionStore = class {
393
383
  consumed: false
394
384
  };
395
385
  try {
396
- return parseRedisConsumedUseResult(await this.client.eval(CONSUME_ONCE_EXISTS_LUA, [this.consumeOnceKey(id, consumeKey)], []));
386
+ return parseRedisConsumedUseResult(await this.client.eval(CONSUME_ONCE_EXISTS_LUA, [this.keys.consumeOnce(id, consumeKey)], []));
397
387
  } catch (e) {
398
- return {
399
- ok: false,
400
- code: "internal",
401
- message: String(e && typeof e === "object" && "message" in e ? e.message : e || "Failed to check consumed threshold session operation")
402
- };
388
+ return walletSessionStoreFailure(e, "Failed to check consumed threshold session operation");
403
389
  }
404
390
  }
405
391
  async reserveReplayGuard(scopeId, replayKey, expiresAtMs) {
406
392
  try {
407
393
  const ttlMs = replayGuardTtlMs(expiresAtMs);
408
394
  if (ttlMs <= 0) return replayGuardExpired();
409
- return parseRedisReplayGuardResult(await this.client.eval(REPLAY_GUARD_LUA, [this.replayGuardKey(scopeId, replayKey)], [String(Math.max(1, Math.ceil(ttlMs / 1e3)))]));
395
+ return parseRedisReplayGuardResult(await this.client.eval(REPLAY_GUARD_LUA, [this.keys.replayGuard(scopeId, replayKey)], [String(Math.max(1, Math.ceil(ttlMs / 1e3)))]));
410
396
  } catch (e) {
411
- return {
412
- ok: false,
413
- code: "internal",
414
- message: String(e && typeof e === "object" && "message" in e ? e.message : e || "Failed to reserve replay guard")
415
- };
397
+ return walletSessionStoreFailure(e, "Failed to reserve replay guard");
416
398
  }
417
399
  }
418
400
  };
@@ -421,29 +403,17 @@ var RedisTcpWalletSessionStore = class {
421
403
  const url = normalizeOptionalTrimmedString(input.redisUrl);
422
404
  if (!url) throw new Error("redis-tcp wallet session store missing redisUrl");
423
405
  this.client = new RedisTcpClient(url);
424
- this.keyPrefix = toThresholdEd25519WalletSessionPrefix(input.keyPrefix);
425
- this.parseRecord = input.parseRecord || parseEd25519WalletSessionRecord;
426
- }
427
- metaKey(id) {
428
- return `${this.keyPrefix}${id}`;
429
- }
430
- usesKey(id) {
431
- return `${this.keyPrefix}${id}:uses`;
432
- }
433
- consumeOnceKey(id, idempotencyKey) {
434
- return `${this.usesKey(id)}:once:${normalizeConsumeOnceKey(idempotencyKey)}`;
435
- }
436
- replayGuardKey(scopeId, replayKey) {
437
- return `${this.keyPrefix}replay:${normalizeConsumeOnceKey(scopeId)}:${normalizeConsumeOnceKey(replayKey)}`;
406
+ this.keys = new WalletSessionKeys(input.keyPrefix);
407
+ this.parseRecord = input.parseRecord;
438
408
  }
439
409
  async putSession(id, record, opts) {
440
410
  const ttlMs = Math.max(0, Number(opts.ttlMs) || 0);
441
- await redisSetJson(this.client, this.metaKey(id), record, ttlMs);
411
+ await redisSetJson(this.client, this.keys.meta(id), record, ttlMs);
442
412
  const ttlSeconds = Math.max(1, Math.ceil(ttlMs / 1e3));
443
413
  const uses = String(Math.max(0, Number(opts.remainingUses) || 0));
444
414
  const resp = await this.client.send([
445
415
  "SET",
446
- this.usesKey(id),
416
+ this.keys.uses(id),
447
417
  uses,
448
418
  "EX",
449
419
  String(ttlSeconds)
@@ -451,44 +421,17 @@ var RedisTcpWalletSessionStore = class {
451
421
  if (resp.type === "error") throw new Error(`Redis SET error: ${resp.value}`);
452
422
  }
453
423
  async getSession(id) {
454
- const raw = await redisGetJson(this.client, this.metaKey(id));
424
+ const raw = await redisGetJson(this.client, this.keys.meta(id));
455
425
  return this.parseRecord(raw);
456
426
  }
457
427
  async getSessionStatus(id) {
458
- try {
459
- const record = this.parseRecord(await redisGetJson(this.client, this.metaKey(id)));
460
- if (!record) return {
461
- ok: false,
462
- code: "wallet_session_missing"
463
- };
464
- if (record.expiresAtMs <= Date.now()) return {
465
- ok: false,
466
- code: "wallet_session_expired"
467
- };
468
- const usesResponse = await this.client.send(["GET", this.usesKey(id)]);
469
- if (usesResponse.type === "error") return {
470
- ok: false,
471
- code: "wallet_session_unavailable"
472
- };
473
- const remainingUses = Number(redisRawValue(usesResponse));
474
- if (!Number.isSafeInteger(remainingUses) || remainingUses < 0) return {
475
- ok: false,
476
- code: "wallet_session_unavailable"
477
- };
478
- return {
479
- ok: true,
480
- status: {
481
- record,
482
- expiresAtMs: record.expiresAtMs,
483
- remainingUses
484
- }
485
- };
486
- } catch {
487
- return {
488
- ok: false,
489
- code: "wallet_session_unavailable"
490
- };
491
- }
428
+ return readWalletSessionStatus({
429
+ readRecord: async () => this.parseRecord(await redisGetJson(this.client, this.keys.meta(id))),
430
+ readRemainingUses: async () => {
431
+ const usesResponse = await this.client.send(["GET", this.keys.uses(id)]);
432
+ return usesResponse.type === "error" ? void 0 : redisRawValue(usesResponse);
433
+ }
434
+ });
492
435
  }
493
436
  async consumeUseCount(id) {
494
437
  try {
@@ -496,7 +439,7 @@ var RedisTcpWalletSessionStore = class {
496
439
  "EVAL",
497
440
  CONSUME_USE_COUNT_LUA,
498
441
  "1",
499
- this.usesKey(id)
442
+ this.keys.uses(id)
500
443
  ]);
501
444
  if (resp.type === "error") return {
502
445
  ok: false,
@@ -505,11 +448,7 @@ var RedisTcpWalletSessionStore = class {
505
448
  };
506
449
  return parseRedisConsumeOnceResult(redisRawValue(resp));
507
450
  } catch (e) {
508
- return {
509
- ok: false,
510
- code: "internal",
511
- message: String(e && typeof e === "object" && "message" in e ? e.message : e || "Failed to consume threshold session")
512
- };
451
+ return walletSessionStoreFailure(e, "Failed to consume threshold session");
513
452
  }
514
453
  }
515
454
  async consumeUseCountOnce(id, idempotencyKey) {
@@ -518,8 +457,8 @@ var RedisTcpWalletSessionStore = class {
518
457
  "EVAL",
519
458
  CONSUME_ONCE_LUA,
520
459
  "2",
521
- this.usesKey(id),
522
- this.consumeOnceKey(id, idempotencyKey)
460
+ this.keys.uses(id),
461
+ this.keys.consumeOnce(id, idempotencyKey)
523
462
  ]);
524
463
  if (resp.type === "error") return {
525
464
  ok: false,
@@ -528,11 +467,7 @@ var RedisTcpWalletSessionStore = class {
528
467
  };
529
468
  return parseRedisConsumeOnceResult(resp.type === "integer" ? String(resp.value) : resp.value);
530
469
  } catch (e) {
531
- return {
532
- ok: false,
533
- code: "internal",
534
- message: String(e && typeof e === "object" && "message" in e ? e.message : e || "Failed to consume threshold session")
535
- };
470
+ return walletSessionStoreFailure(e, "Failed to consume threshold session");
536
471
  }
537
472
  }
538
473
  async hasConsumedUseCountOnce(id, idempotencyKey) {
@@ -542,7 +477,7 @@ var RedisTcpWalletSessionStore = class {
542
477
  consumed: false
543
478
  };
544
479
  try {
545
- const resp = await this.client.send(["EXISTS", this.consumeOnceKey(id, consumeKey)]);
480
+ const resp = await this.client.send(["EXISTS", this.keys.consumeOnce(id, consumeKey)]);
546
481
  if (resp.type === "error") return {
547
482
  ok: false,
548
483
  code: "internal",
@@ -550,11 +485,7 @@ var RedisTcpWalletSessionStore = class {
550
485
  };
551
486
  return parseRedisConsumedUseResult(resp.value);
552
487
  } catch (e) {
553
- return {
554
- ok: false,
555
- code: "internal",
556
- message: String(e && typeof e === "object" && "message" in e ? e.message : e || "Failed to check consumed threshold session operation")
557
- };
488
+ return walletSessionStoreFailure(e, "Failed to check consumed threshold session operation");
558
489
  }
559
490
  }
560
491
  async reserveReplayGuard(scopeId, replayKey, expiresAtMs) {
@@ -563,7 +494,7 @@ var RedisTcpWalletSessionStore = class {
563
494
  if (ttlMs <= 0) return replayGuardExpired();
564
495
  const resp = await this.client.send([
565
496
  "SET",
566
- this.replayGuardKey(scopeId, replayKey),
497
+ this.keys.replayGuard(scopeId, replayKey),
567
498
  "1",
568
499
  "NX",
569
500
  "EX",
@@ -582,139 +513,103 @@ var RedisTcpWalletSessionStore = class {
582
513
  message: "Redis replay guard returned invalid response"
583
514
  };
584
515
  } catch (e) {
585
- return {
586
- ok: false,
587
- code: "internal",
588
- message: String(e && typeof e === "object" && "message" in e ? e.message : e || "Failed to reserve replay guard")
589
- };
516
+ return walletSessionStoreFailure(e, "Failed to reserve replay guard");
590
517
  }
591
518
  }
592
519
  };
593
- function createEd25519WalletSessionStore(input) {
594
- const doStores = createCloudflareDurableObjectThresholdEd25519Stores({
595
- config: input.config,
596
- logger: input.logger
597
- });
598
- if (doStores) return doStores.walletSessionStore;
599
- const config = isObject(input.config) ? input.config : {};
520
+ /**
521
+ * Selects a wallet session store: Durable Objects, else the config's explicit `kind`, else Upstash
522
+ * or Redis from env-shaped config, else in memory where the runtime allows it.
523
+ */
524
+ function createWalletSessionStore(input, spec) {
525
+ const durableObjectStore = spec.durableObjectStore(input);
526
+ if (durableObjectStore) return durableObjectStore;
527
+ const { tag, parseRecord } = spec;
528
+ const config = isPlainObject(input.config) ? input.config : {};
600
529
  const allowInMemory = normalizeOptionalTrimmedString(config.THRESHOLD_ALLOW_IN_MEMORY_STORES) === "1";
601
530
  const requirePersistent = !input.isNode && !allowInMemory;
602
- const basePrefix = normalizeOptionalTrimmedString(config.THRESHOLD_PREFIX);
603
- const envPrefix = normalizeOptionalTrimmedString(config.THRESHOLD_ED25519_WALLET_SESSION_PREFIX) || toThresholdEd25519PrefixFromBase(basePrefix, "wallet-session") || "";
604
- const kind = readNonDurableObjectThresholdStoreKind(config, "threshold-ed25519");
531
+ const envPrefix = spec.envPrefix(config);
532
+ const inMemory = () => new InMemoryWalletSessionStore({ keyPrefix: envPrefix || void 0 });
533
+ const kind = readNonDurableObjectThresholdStoreKind(config, tag);
605
534
  if (kind === "in-memory") {
606
- if (requirePersistent) throw new Error("[threshold-ed25519] In-memory wallet session store is not supported in this runtime; configure Upstash/Redis or Durable Objects");
607
- return new InMemoryWalletSessionStore({ keyPrefix: envPrefix || void 0 });
535
+ if (requirePersistent) throw new Error(`[${tag}] In-memory wallet session store is not supported in this runtime; configure Upstash/Redis or Durable Objects`);
536
+ return inMemory();
608
537
  }
609
538
  if (kind === "upstash-redis-rest") return new UpstashRedisRestWalletSessionStore({
610
539
  url: normalizeOptionalTrimmedString(config.url) || normalizeOptionalTrimmedString(config.UPSTASH_REDIS_REST_URL),
611
540
  token: normalizeOptionalTrimmedString(config.token) || normalizeOptionalTrimmedString(config.UPSTASH_REDIS_REST_TOKEN),
612
541
  keyPrefix: normalizeOptionalTrimmedString(config.keyPrefix) || envPrefix,
613
- parseRecord: parseEd25519WalletSessionRecord
542
+ parseRecord
614
543
  });
615
544
  if (kind === "redis-tcp") {
616
545
  if (!input.isNode) {
617
- if (requirePersistent) throw new Error("[threshold-ed25519] redis-tcp wallet session store is not supported in this runtime; configure Upstash/Redis REST or Durable Objects");
618
- input.logger.warn("[threshold-ed25519] redis-tcp wallet session store is not supported in this runtime; falling back to in-memory");
619
- return new InMemoryWalletSessionStore({ keyPrefix: envPrefix || void 0 });
546
+ if (requirePersistent) throw new Error(`[${tag}] redis-tcp wallet session store is not supported in this runtime; configure Upstash/Redis REST or Durable Objects`);
547
+ input.logger.warn(`[${tag}] redis-tcp wallet session store is not supported in this runtime; falling back to in-memory`);
548
+ return inMemory();
620
549
  }
621
550
  return new RedisTcpWalletSessionStore({
622
551
  redisUrl: normalizeOptionalTrimmedString(config.redisUrl) || normalizeOptionalTrimmedString(config.REDIS_URL),
623
552
  keyPrefix: normalizeOptionalTrimmedString(config.keyPrefix) || envPrefix,
624
- parseRecord: parseEd25519WalletSessionRecord
553
+ parseRecord
625
554
  });
626
555
  }
627
556
  const upstashUrl = normalizeOptionalTrimmedString(config.UPSTASH_REDIS_REST_URL);
628
557
  const upstashToken = normalizeOptionalTrimmedString(config.UPSTASH_REDIS_REST_TOKEN);
629
558
  if (upstashUrl || upstashToken) {
630
559
  if (!upstashUrl || !upstashToken) throw new Error("Upstash wallet session store enabled but UPSTASH_REDIS_REST_URL / UPSTASH_REDIS_REST_TOKEN are not both set");
631
- input.logger.info("[threshold-ed25519] Using Upstash REST store for Wallet Session records");
560
+ input.logger.info(`[${tag}] Using Upstash REST store for Wallet Session records`);
632
561
  return new UpstashRedisRestWalletSessionStore({
633
562
  url: upstashUrl,
634
563
  token: upstashToken,
635
- keyPrefix: envPrefix || void 0
564
+ keyPrefix: envPrefix || void 0,
565
+ parseRecord
636
566
  });
637
567
  }
638
568
  const redisUrl = normalizeOptionalTrimmedString(config.REDIS_URL);
639
569
  if (redisUrl) {
640
570
  if (!input.isNode) {
641
- if (requirePersistent) throw new Error("[threshold-ed25519] REDIS_URL is set but TCP Redis is not supported in this runtime; use Upstash/Redis REST or Durable Objects");
642
- input.logger.warn("[threshold-ed25519] REDIS_URL is set but TCP Redis is not supported in this runtime; falling back to in-memory");
643
- return new InMemoryWalletSessionStore({ keyPrefix: envPrefix || void 0 });
571
+ if (requirePersistent) throw new Error(`[${tag}] REDIS_URL is set but TCP Redis is not supported in this runtime; use Upstash/Redis REST or Durable Objects`);
572
+ input.logger.warn(`[${tag}] REDIS_URL is set but TCP Redis is not supported in this runtime; falling back to in-memory`);
573
+ return inMemory();
644
574
  }
645
- input.logger.info("[threshold-ed25519] Using redis-tcp store for Wallet Session records");
575
+ input.logger.info(`[${tag}] Using redis-tcp store for Wallet Session records`);
646
576
  return new RedisTcpWalletSessionStore({
647
577
  redisUrl,
648
- keyPrefix: envPrefix || void 0
578
+ keyPrefix: envPrefix || void 0,
579
+ parseRecord
649
580
  });
650
581
  }
651
- if (requirePersistent) throw new Error("[threshold-ed25519] Wallet Session records require persistent storage in this runtime; configure UPSTASH_REDIS_REST_URL/UPSTASH_REDIS_REST_TOKEN or Durable Objects");
652
- input.logger.info("[threshold-ed25519] Using in-memory Wallet Session store (non-persistent)");
653
- return new InMemoryWalletSessionStore({ keyPrefix: envPrefix || void 0 });
582
+ if (requirePersistent) throw new Error(`[${tag}] Wallet Session records require persistent storage in this runtime; configure UPSTASH_REDIS_REST_URL/UPSTASH_REDIS_REST_TOKEN or Durable Objects`);
583
+ input.logger.info(`[${tag}] Using in-memory Wallet Session store (non-persistent)`);
584
+ return inMemory();
654
585
  }
655
- function createEcdsaWalletSessionStore(input) {
656
- const doStores = createCloudflareDurableObjectThresholdEcdsaStores({
657
- config: input.config,
658
- logger: input.logger
586
+ function createEd25519WalletSessionStore(input) {
587
+ return createWalletSessionStore(input, {
588
+ tag: "threshold-ed25519",
589
+ durableObjectStore: ({ config, logger }) => createCloudflareDurableObjectThresholdEd25519Stores({
590
+ config,
591
+ logger
592
+ })?.walletSessionStore ?? null,
593
+ envPrefix: (config) => {
594
+ const basePrefix = normalizeOptionalTrimmedString(config.THRESHOLD_PREFIX);
595
+ return normalizeOptionalTrimmedString(config.THRESHOLD_ED25519_WALLET_SESSION_PREFIX) || toThresholdEd25519PrefixFromBase(basePrefix, "wallet-session") || "";
596
+ },
597
+ parseRecord: parseEd25519WalletSessionRecord
659
598
  });
660
- if (doStores) return doStores.walletSessionStore;
661
- const config = isObject(input.config) ? input.config : {};
662
- const allowInMemory = normalizeOptionalTrimmedString(config.THRESHOLD_ALLOW_IN_MEMORY_STORES) === "1";
663
- const requirePersistent = !input.isNode && !allowInMemory;
664
- const basePrefix = normalizeOptionalTrimmedString(config.THRESHOLD_PREFIX);
665
- const envPrefix = toThresholdEcdsaWalletSessionPrefix(normalizeOptionalTrimmedString(config.THRESHOLD_ECDSA_WALLET_SESSION_PREFIX) || toThresholdEcdsaPrefixFromBase(basePrefix, "wallet-session"));
666
- const kind = readNonDurableObjectThresholdStoreKind(config, "threshold-ecdsa");
667
- if (kind === "in-memory") {
668
- if (requirePersistent) throw new Error("[threshold-ecdsa] In-memory wallet session store is not supported in this runtime; configure Upstash/Redis or Durable Objects");
669
- return new InMemoryWalletSessionStore({ keyPrefix: envPrefix });
670
- }
671
- if (kind === "upstash-redis-rest") return new UpstashRedisRestWalletSessionStore({
672
- url: normalizeOptionalTrimmedString(config.url) || normalizeOptionalTrimmedString(config.UPSTASH_REDIS_REST_URL),
673
- token: normalizeOptionalTrimmedString(config.token) || normalizeOptionalTrimmedString(config.UPSTASH_REDIS_REST_TOKEN),
674
- keyPrefix: normalizeOptionalTrimmedString(config.keyPrefix) || envPrefix,
599
+ }
600
+ function createEcdsaWalletSessionStore(input) {
601
+ return createWalletSessionStore(input, {
602
+ tag: "threshold-ecdsa",
603
+ durableObjectStore: ({ config, logger }) => createCloudflareDurableObjectThresholdEcdsaStores({
604
+ config,
605
+ logger
606
+ })?.walletSessionStore ?? null,
607
+ envPrefix: (config) => {
608
+ const basePrefix = normalizeOptionalTrimmedString(config.THRESHOLD_PREFIX);
609
+ return toThresholdEcdsaWalletSessionPrefix(normalizeOptionalTrimmedString(config.THRESHOLD_ECDSA_WALLET_SESSION_PREFIX) || toThresholdEcdsaPrefixFromBase(basePrefix, "wallet-session"));
610
+ },
675
611
  parseRecord: parseEcdsaWalletSessionRecord
676
612
  });
677
- if (kind === "redis-tcp") {
678
- if (!input.isNode) {
679
- if (requirePersistent) throw new Error("[threshold-ecdsa] redis-tcp wallet session store is not supported in this runtime; configure Upstash/Redis REST or Durable Objects");
680
- input.logger.warn("[threshold-ecdsa] redis-tcp wallet session store is not supported in this runtime; falling back to in-memory");
681
- return new InMemoryWalletSessionStore({ keyPrefix: envPrefix });
682
- }
683
- return new RedisTcpWalletSessionStore({
684
- redisUrl: normalizeOptionalTrimmedString(config.redisUrl) || normalizeOptionalTrimmedString(config.REDIS_URL),
685
- keyPrefix: normalizeOptionalTrimmedString(config.keyPrefix) || envPrefix,
686
- parseRecord: parseEcdsaWalletSessionRecord
687
- });
688
- }
689
- const upstashUrl = normalizeOptionalTrimmedString(config.UPSTASH_REDIS_REST_URL);
690
- const upstashToken = normalizeOptionalTrimmedString(config.UPSTASH_REDIS_REST_TOKEN);
691
- if (upstashUrl || upstashToken) {
692
- if (!upstashUrl || !upstashToken) throw new Error("Upstash wallet session store enabled but UPSTASH_REDIS_REST_URL / UPSTASH_REDIS_REST_TOKEN are not both set");
693
- input.logger.info("[threshold-ecdsa] Using Upstash REST store for Wallet Session records");
694
- return new UpstashRedisRestWalletSessionStore({
695
- url: upstashUrl,
696
- token: upstashToken,
697
- keyPrefix: envPrefix,
698
- parseRecord: parseEcdsaWalletSessionRecord
699
- });
700
- }
701
- const redisUrl = normalizeOptionalTrimmedString(config.REDIS_URL);
702
- if (redisUrl) {
703
- if (!input.isNode) {
704
- if (requirePersistent) throw new Error("[threshold-ecdsa] REDIS_URL is set but TCP Redis is not supported in this runtime; use Upstash/Redis REST or Durable Objects");
705
- input.logger.warn("[threshold-ecdsa] REDIS_URL is set but TCP Redis is not supported in this runtime; falling back to in-memory");
706
- return new InMemoryWalletSessionStore({ keyPrefix: envPrefix });
707
- }
708
- input.logger.info("[threshold-ecdsa] Using redis-tcp store for Wallet Session records");
709
- return new RedisTcpWalletSessionStore({
710
- redisUrl,
711
- keyPrefix: envPrefix,
712
- parseRecord: parseEcdsaWalletSessionRecord
713
- });
714
- }
715
- if (requirePersistent) throw new Error("[threshold-ecdsa] Wallet Session records require persistent storage in this runtime; configure UPSTASH_REDIS_REST_URL/UPSTASH_REDIS_REST_TOKEN or Durable Objects");
716
- input.logger.info("[threshold-ecdsa] Using in-memory Wallet Session store (non-persistent)");
717
- return new InMemoryWalletSessionStore({ keyPrefix: envPrefix });
718
613
  }
719
614
  //#endregion
720
615
  export { createEcdsaWalletSessionStore, createEd25519WalletSessionStore };