@seams/wallet-server 0.6.2 → 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,9 +1,13 @@
1
1
  import { parseWebAuthnRpId } from "../shared-ts/src/utils/domainIds.js";
2
- import { parseWalletAuthMethodRecordV2, walletAuthMethodRecordId, walletIdFromString } from "../shared-ts/src/utils/registrationIntent.js";
3
2
  import { normalizeOptionalTrimmedString } from "../shared-ts/src/utils/normalize.js";
4
- import "../shared-ts/src/utils/validation.js";
5
- import { formatD1ExecStatement, parseD1JsonColumn } from "../storage/d1Sql.js";
3
+ import { isPlainObject } from "../shared-ts/src/utils/validation.js";
4
+ import { parseWalletAuthMethodRecordV2, walletAuthMethodRecordId } from "../shared-ts/src/utils/walletAuthMethodRecord.js";
5
+ import { D1_BATCH_CAS_GUARD_SQL, parseD1JsonColumn } from "../storage/d1Sql.js";
6
+ import { D1Schema, D1TenantTable, ensureD1Schema } from "./d1TenantStore.js";
7
+ import { walletIdFromString } from "../shared-ts/src/utils/registrationIds.js";
6
8
  //#region src/core/d1WalletAuthMethodStore.ts
9
+ /** Names the wallet auth-method store in D1 scope errors. */
10
+ const WALLET_AUTH_METHOD_D1_STORE = "wallet auth-method store";
7
11
  const WALLET_AUTH_METHOD_STORE_D1_SCHEMA_SQL = Object.freeze([
8
12
  `
9
13
  CREATE TABLE IF NOT EXISTS wallet_auth_methods (
@@ -237,13 +241,10 @@ const WALLET_AUTH_METHOD_STORE_D1_SCHEMA_V2_SQL = Object.freeze([
237
241
  `
238
242
  ]);
239
243
  async function ensureWalletAuthMethodStoreD1Schema(options) {
240
- for (const statement of WALLET_AUTH_METHOD_STORE_D1_SCHEMA_SQL) await options.database.exec(formatD1ExecStatement(statement));
244
+ await ensureD1Schema(options.database, WALLET_AUTH_METHOD_STORE_D1_SCHEMA_SQL);
241
245
  }
242
246
  async function ensureWalletAuthMethodStoreD1SchemaV2(options) {
243
- for (const statement of WALLET_AUTH_METHOD_STORE_D1_SCHEMA_V2_SQL) await options.database.exec(formatD1ExecStatement(statement));
244
- }
245
- function isObject(value) {
246
- return Boolean(value && typeof value === "object" && !Array.isArray(value));
247
+ await ensureD1Schema(options.database, WALLET_AUTH_METHOD_STORE_D1_SCHEMA_V2_SQL);
247
248
  }
248
249
  function trimString(value) {
249
250
  return typeof value === "string" ? value.trim() : "";
@@ -252,7 +253,7 @@ function walletAuthMethodId(record) {
252
253
  return walletAuthMethodRecordId(record);
253
254
  }
254
255
  function normalizeWalletAuthMethod(raw) {
255
- if (!isObject(raw)) return null;
256
+ if (!isPlainObject(raw)) return null;
256
257
  const version = trimString(raw.version);
257
258
  const kind = trimString(raw.kind);
258
259
  const status = trimString(raw.status);
@@ -393,21 +394,6 @@ function prepareD1WalletAuthMethodV2PutStatement(input) {
393
394
  ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
394
395
  ${conflictClause}`).bind(input.scope.namespace, input.scope.orgId, input.scope.projectId, input.scope.envId, columns.walletId, columns.walletAuthorityId, columns.rpId, columns.kind, columns.status, columns.walletAuthMethodId, columns.authIdentifierKey, columns.credentialIdB64u, columns.credentialPublicKeyB64u, columns.emailHashHex, columns.registrationAuthorityId, columns.recordJson, columns.createdAtMs, columns.updatedAtMs, columns.activatedAtMs, columns.revokedAtMs);
395
396
  }
396
- function requireD1ScopeString(input, field) {
397
- const normalized = normalizeOptionalTrimmedString(input);
398
- if (!normalized) throw new Error(`${field} is required for D1 wallet auth-method store`);
399
- return normalized;
400
- }
401
- function normalizeD1WalletAuthMethodStoreOptions(input) {
402
- return {
403
- database: input.database,
404
- namespace: requireD1ScopeString(input.namespace, "namespace"),
405
- orgId: requireD1ScopeString(input.orgId, "orgId"),
406
- projectId: requireD1ScopeString(input.projectId, "projectId"),
407
- envId: requireD1ScopeString(input.envId, "envId"),
408
- ensureSchema: input.ensureSchema !== false
409
- };
410
- }
411
397
  function bindWalletAuthMethodIdentity(record) {
412
398
  switch (record.kind) {
413
399
  case "passkey": return {
@@ -429,30 +415,11 @@ function bindWalletAuthMethodIdentity(record) {
429
415
  default: return assertNeverWalletAuthMethod(record);
430
416
  }
431
417
  }
432
- function prepareD1WalletAuthMethodPutStatement(input) {
418
+ function prepareD1WalletAuthMethodWriteStatement(input, insertOnly) {
433
419
  const parsed = normalizeWalletAuthMethod(input.record);
434
420
  if (!parsed) throw new Error("Invalid wallet auth method record");
435
421
  const identity = bindWalletAuthMethodIdentity(parsed);
436
- return input.database.prepare(`INSERT INTO wallet_auth_methods (
437
- namespace,
438
- org_id,
439
- project_id,
440
- env_id,
441
- wallet_id,
442
- rp_id,
443
- kind,
444
- status,
445
- wallet_auth_method_id,
446
- auth_identifier_key,
447
- credential_id_b64u,
448
- credential_public_key_b64u,
449
- email_hash_hex,
450
- registration_authority_id,
451
- record_json,
452
- created_at_ms,
453
- updated_at_ms
454
- )
455
- VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
422
+ const conflictClause = insertOnly ? "" : `
456
423
  ON CONFLICT (namespace, org_id, project_id, env_id, wallet_auth_method_id)
457
424
  DO UPDATE SET
458
425
  wallet_id = EXCLUDED.wallet_id,
@@ -472,15 +439,7 @@ function prepareD1WalletAuthMethodPutStatement(input) {
472
439
  updated_at_ms = MAX(
473
440
  wallet_auth_methods.updated_at_ms,
474
441
  EXCLUDED.updated_at_ms
475
- )`).bind(input.scope.namespace, input.scope.orgId, input.scope.projectId, input.scope.envId, parsed.walletId, identity.rpId, parsed.kind, parsed.status, walletAuthMethodId(parsed), identity.authIdentifierKey, identity.credentialIdB64u, identity.credentialPublicKeyB64u, identity.emailHashHex, identity.registrationAuthorityId, JSON.stringify(parsed), parsed.createdAtMs, parsed.updatedAtMs);
476
- }
477
- /** Insert-only auth-method write used when a new factor and its envelope are
478
- * committed together. A credential collision must abort the enclosing D1
479
- * batch instead of updating an existing factor's identity. */
480
- function prepareD1WalletAuthMethodInsertStatement(input) {
481
- const parsed = normalizeWalletAuthMethod(input.record);
482
- if (!parsed) throw new Error("Invalid wallet auth method record");
483
- const identity = bindWalletAuthMethodIdentity(parsed);
442
+ )`;
484
443
  return input.database.prepare(`INSERT INTO wallet_auth_methods (
485
444
  namespace,
486
445
  org_id,
@@ -500,41 +459,46 @@ function prepareD1WalletAuthMethodInsertStatement(input) {
500
459
  created_at_ms,
501
460
  updated_at_ms
502
461
  )
503
- VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`).bind(input.scope.namespace, input.scope.orgId, input.scope.projectId, input.scope.envId, parsed.walletId, identity.rpId, parsed.kind, parsed.status, walletAuthMethodId(parsed), identity.authIdentifierKey, identity.credentialIdB64u, identity.credentialPublicKeyB64u, identity.emailHashHex, identity.registrationAuthorityId, JSON.stringify(parsed), parsed.createdAtMs, parsed.updatedAtMs);
462
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)${conflictClause}`).bind(input.scope.namespace, input.scope.orgId, input.scope.projectId, input.scope.envId, parsed.walletId, identity.rpId, parsed.kind, parsed.status, walletAuthMethodId(parsed), identity.authIdentifierKey, identity.credentialIdB64u, identity.credentialPublicKeyB64u, identity.emailHashHex, identity.registrationAuthorityId, JSON.stringify(parsed), parsed.createdAtMs, parsed.updatedAtMs);
463
+ }
464
+ function prepareD1WalletAuthMethodPutStatement(input) {
465
+ return prepareD1WalletAuthMethodWriteStatement(input, false);
466
+ }
467
+ /** Insert-only auth-method write used when a new factor and its envelope are
468
+ * committed together. A credential collision must abort the enclosing D1
469
+ * batch instead of updating an existing factor's identity. */
470
+ function prepareD1WalletAuthMethodInsertStatement(input) {
471
+ return prepareD1WalletAuthMethodWriteStatement(input, true);
504
472
  }
505
473
  function assertNeverWalletAuthMethod(record) {
506
474
  throw new Error(`Unexpected wallet auth method record: ${JSON.stringify(record)}`);
507
475
  }
476
+ /** Reads one method's stored JSON by id; the caller picks the record version to parse. */
477
+ async function readD1WalletAuthMethodJsonById(database, scope, walletAuthMethodId) {
478
+ return parseD1JsonColumn((await database.prepare(`SELECT record_json
479
+ FROM wallet_auth_methods
480
+ WHERE namespace = ?
481
+ AND org_id = ?
482
+ AND project_id = ?
483
+ AND env_id = ?
484
+ AND wallet_auth_method_id = ?
485
+ LIMIT 1`).bind(scope.namespace, scope.orgId, scope.projectId, scope.envId, walletAuthMethodId).first())?.record_json);
486
+ }
487
+ /** Aborts the enclosing batch when the statement just before it changed no row. */
488
+ function prepareD1InsertCasGuardStatement(database) {
489
+ return database.prepare(D1_BATCH_CAS_GUARD_SQL);
490
+ }
508
491
  var D1WalletAuthMethodStore = class {
509
492
  constructor(input) {
510
493
  this.adapterKind = "d1";
511
- this.schemaReady = false;
512
- this.v2SchemaReady = false;
513
- const normalized = normalizeD1WalletAuthMethodStoreOptions(input);
514
- this.database = normalized.database;
515
- this.scope = {
516
- namespace: normalized.namespace,
517
- orgId: normalized.orgId,
518
- projectId: normalized.projectId,
519
- envId: normalized.envId
520
- };
521
- this.ensureSchemaOnUse = normalized.ensureSchema;
522
- }
523
- async ensureSchema() {
524
- if (!this.ensureSchemaOnUse || this.schemaReady) return;
525
- await ensureWalletAuthMethodStoreD1Schema({ database: this.database });
526
- this.schemaReady = true;
527
- }
528
- async ensureV2Schema() {
529
- if (!this.ensureSchemaOnUse || this.v2SchemaReady) return;
530
- await ensureWalletAuthMethodStoreD1SchemaV2({ database: this.database });
531
- this.v2SchemaReady = true;
494
+ this.table = new D1TenantTable(input, WALLET_AUTH_METHOD_D1_STORE, WALLET_AUTH_METHOD_STORE_D1_SCHEMA_SQL);
495
+ this.v2Schema = new D1Schema(input.database, WALLET_AUTH_METHOD_STORE_D1_SCHEMA_V2_SQL, input.ensureSchema !== false);
532
496
  }
533
497
  async put(record) {
534
- await this.ensureSchema();
498
+ await this.table.ensureSchema();
535
499
  await prepareD1WalletAuthMethodPutStatement({
536
- database: this.database,
537
- scope: this.scope,
500
+ database: this.table.database,
501
+ scope: this.table.scope,
538
502
  record
539
503
  }).run();
540
504
  }
@@ -546,49 +510,31 @@ var D1WalletAuthMethodStore = class {
546
510
  preparePasskeyRegistrationStatements(record) {
547
511
  if (record.kind !== "passkey" || record.status !== "active") throw new Error("Passkey registration statements require an active passkey record");
548
512
  return [prepareD1WalletAuthMethodInsertStatement({
549
- database: this.database,
550
- scope: this.scope,
513
+ database: this.table.database,
514
+ scope: this.table.scope,
551
515
  record
552
- }), this.database.prepare(`
553
- INSERT INTO router_ab_yao_versioned_json_cas_guard (guard_id)
554
- SELECT 1
555
- WHERE changes() = 0
556
- `)];
516
+ }), prepareD1InsertCasGuardStatement(this.table.database)];
557
517
  }
558
518
  async getPasskey(input) {
559
- await this.ensureSchema();
519
+ await this.table.ensureSchema();
560
520
  const rpId = normalizeOptionalTrimmedString(input.rpId);
561
521
  const credentialIdB64u = normalizeOptionalTrimmedString(input.credentialIdB64u);
562
522
  if (!rpId || !credentialIdB64u) return null;
563
- return normalizeWalletAuthMethod(parseD1JsonColumn((await this.database.prepare(`SELECT record_json
564
- FROM wallet_auth_methods
565
- WHERE namespace = ?
566
- AND org_id = ?
567
- AND project_id = ?
568
- AND env_id = ?
569
- AND wallet_auth_method_id = ?
570
- LIMIT 1`).bind(this.scope.namespace, this.scope.orgId, this.scope.projectId, this.scope.envId, `passkey:${rpId}:${credentialIdB64u}`).first())?.record_json));
523
+ return normalizeWalletAuthMethod(await readD1WalletAuthMethodJsonById(this.table.database, this.table.scope, `passkey:${rpId}:${credentialIdB64u}`));
571
524
  }
572
525
  async getEmailOtp(input) {
573
- await this.ensureSchema();
526
+ await this.table.ensureSchema();
574
527
  const walletId = normalizeOptionalTrimmedString(input.walletId);
575
528
  const emailHashHex = normalizeOptionalTrimmedString(input.emailHashHex);
576
529
  if (!walletId || !emailHashHex) return null;
577
- return normalizeWalletAuthMethod(parseD1JsonColumn((await this.database.prepare(`SELECT record_json
578
- FROM wallet_auth_methods
579
- WHERE namespace = ?
580
- AND org_id = ?
581
- AND project_id = ?
582
- AND env_id = ?
583
- AND wallet_auth_method_id = ?
584
- LIMIT 1`).bind(this.scope.namespace, this.scope.orgId, this.scope.projectId, this.scope.envId, `email_otp:${walletId}:${emailHashHex}`).first())?.record_json));
530
+ return normalizeWalletAuthMethod(await readD1WalletAuthMethodJsonById(this.table.database, this.table.scope, `email_otp:${walletId}:${emailHashHex}`));
585
531
  }
586
532
  async listForWallet(input) {
587
- await this.ensureSchema();
533
+ await this.table.ensureSchema();
588
534
  const walletId = normalizeOptionalTrimmedString(input.walletId);
589
535
  if (!walletId) return [];
590
536
  const rpId = normalizeOptionalTrimmedString(input.rpId);
591
- const result = await this.database.prepare(`SELECT record_json
537
+ const result = await this.table.prepare(`SELECT record_json
592
538
  FROM wallet_auth_methods
593
539
  WHERE namespace = ?
594
540
  AND org_id = ?
@@ -596,7 +542,11 @@ var D1WalletAuthMethodStore = class {
596
542
  AND env_id = ?
597
543
  AND wallet_id = ?
598
544
  AND (kind = 'email_otp' OR ? = '' OR rp_id = ?)
599
- ORDER BY created_at_ms ASC`).bind(this.scope.namespace, this.scope.orgId, this.scope.projectId, this.scope.envId, walletId, rpId, rpId).all();
545
+ ORDER BY created_at_ms ASC`, [
546
+ walletId,
547
+ rpId,
548
+ rpId
549
+ ]).all();
600
550
  const records = [];
601
551
  for (const row of result.results || []) {
602
552
  const parsed = normalizeWalletAuthMethod(parseD1JsonColumn(row.record_json));
@@ -605,18 +555,18 @@ var D1WalletAuthMethodStore = class {
605
555
  return records;
606
556
  }
607
557
  async putV2(record) {
608
- await this.ensureV2Schema();
558
+ await this.v2Schema.ensure();
609
559
  await prepareD1WalletAuthMethodV2PutStatement({
610
- database: this.database,
611
- scope: this.scope,
560
+ database: this.table.database,
561
+ scope: this.table.scope,
612
562
  record
613
563
  }).run();
614
564
  }
615
565
  async insertActiveV2Atomically(input) {
616
- await this.ensureV2Schema();
566
+ await this.v2Schema.ensure();
617
567
  try {
618
568
  const statements = [...input.prerequisiteStatements, ...this.prepareV2InsertStatements(input.record)];
619
- const results = await this.database.batch(statements);
569
+ const results = await this.table.database.batch(statements);
620
570
  return results.length === statements.length && results.every((result) => result.success);
621
571
  } catch {
622
572
  return false;
@@ -624,7 +574,7 @@ var D1WalletAuthMethodStore = class {
624
574
  }
625
575
  prepareActiveV2SourceGuardStatements(input) {
626
576
  if (!Number.isSafeInteger(input.authorityRevocationEpoch) || input.authorityRevocationEpoch < 0) throw new Error("Source authority revocation epoch is invalid");
627
- return [this.database.prepare(`UPDATE wallet_auth_methods
577
+ return [this.table.database.prepare(`UPDATE wallet_auth_methods
628
578
  SET updated_at_ms = updated_at_ms
629
579
  WHERE namespace = ? AND org_id = ? AND project_id = ? AND env_id = ?
630
580
  AND wallet_auth_method_id = ? AND wallet_id = ?
@@ -641,7 +591,7 @@ var D1WalletAuthMethodStore = class {
641
591
  AND source_authority.lifecycle_state = 'active'
642
592
  AND source_authority.authority_digest_b64u = ?
643
593
  AND source_authority.revocation_epoch = ?
644
- )`).bind(this.scope.namespace, this.scope.orgId, this.scope.projectId, this.scope.envId, String(input.walletAuthMethodId), String(input.walletId), String(input.walletAuthorityId), this.scope.namespace, this.scope.orgId, this.scope.projectId, this.scope.envId, String(input.walletAuthorityId), String(input.walletId), String(input.authorityDigestB64u), input.authorityRevocationEpoch), this.database.prepare(`
594
+ )`).bind(this.table.scope.namespace, this.table.scope.orgId, this.table.scope.projectId, this.table.scope.envId, String(input.walletAuthMethodId), String(input.walletId), String(input.walletAuthorityId), this.table.scope.namespace, this.table.scope.orgId, this.table.scope.projectId, this.table.scope.envId, String(input.walletAuthorityId), String(input.walletId), String(input.authorityDigestB64u), input.authorityRevocationEpoch), this.table.database.prepare(`
645
595
  INSERT INTO wallet_authority_cas_guard (guard_id)
646
596
  SELECT 1
647
597
  WHERE changes() = 0
@@ -651,7 +601,7 @@ var D1WalletAuthMethodStore = class {
651
601
  * Aborts the surrounding batch if the authority already holds an active
652
602
  * method of this family.
653
603
  *
654
- * Refactor 109C's admission answers `already_configured` before a ceremony
604
+ * Add-auth-method admission answers `already_configured` before a ceremony
655
605
  * starts, but an admission read cannot close a race: two ceremonies can pass
656
606
  * it concurrently and both insert. The auth-method insert's own guard covers
657
607
  * only the allocated method id, and migration `0011` deliberately dropped
@@ -664,7 +614,7 @@ var D1WalletAuthMethodStore = class {
664
614
  * collides, which aborts the batch.
665
615
  */
666
616
  prepareActiveV2TargetFamilyAbsentGuardStatements(input) {
667
- return [this.database.prepare(`INSERT INTO wallet_authority_cas_guard (guard_id)
617
+ return [this.table.prepare(`INSERT INTO wallet_authority_cas_guard (guard_id)
668
618
  SELECT 1
669
619
  WHERE EXISTS (
670
620
  SELECT 1
@@ -672,7 +622,11 @@ var D1WalletAuthMethodStore = class {
672
622
  WHERE namespace = ? AND org_id = ? AND project_id = ? AND env_id = ?
673
623
  AND wallet_id = ? AND wallet_authority_id = ?
674
624
  AND kind = ? AND status = 'active'
675
- )`).bind(this.scope.namespace, this.scope.orgId, this.scope.projectId, this.scope.envId, String(input.walletId), String(input.walletAuthorityId), input.kind)];
625
+ )`, [
626
+ String(input.walletId),
627
+ String(input.walletAuthorityId),
628
+ input.kind
629
+ ])];
676
630
  }
677
631
  /**
678
632
  * Prepares an insert-only active V2 method mutation. A credential or opaque
@@ -683,33 +637,22 @@ var D1WalletAuthMethodStore = class {
683
637
  if (!parsed || parsed.status !== "active") throw new Error("V2 insert requires an active V2 auth-method record");
684
638
  if (!String(parsed.walletAuthMethodId).startsWith("wallet-auth-method:")) throw new Error("V2 insert requires an opaque auth-method id");
685
639
  return [prepareD1WalletAuthMethodV2PutStatement({
686
- database: this.database,
687
- scope: this.scope,
640
+ database: this.table.database,
641
+ scope: this.table.scope,
688
642
  record: parsed,
689
643
  insertOnly: true
690
- }), this.database.prepare(`
691
- INSERT INTO router_ab_yao_versioned_json_cas_guard (guard_id)
692
- SELECT 1
693
- WHERE changes() = 0
694
- `)];
644
+ }), prepareD1InsertCasGuardStatement(this.table.database)];
695
645
  }
696
646
  async readByIdV2(input) {
697
- await this.ensureV2Schema();
698
- return normalizeWalletAuthMethodV2(parseD1JsonColumn((await this.database.prepare(`SELECT record_json
699
- FROM wallet_auth_methods
700
- WHERE namespace = ?
701
- AND org_id = ?
702
- AND project_id = ?
703
- AND env_id = ?
704
- AND wallet_auth_method_id = ?
705
- LIMIT 1`).bind(this.scope.namespace, this.scope.orgId, this.scope.projectId, this.scope.envId, String(input.walletAuthMethodId)).first())?.record_json));
647
+ await this.v2Schema.ensure();
648
+ return normalizeWalletAuthMethodV2(await readD1WalletAuthMethodJsonById(this.table.database, this.table.scope, String(input.walletAuthMethodId)));
706
649
  }
707
650
  async getPasskeyV2(input) {
708
- await this.ensureV2Schema();
651
+ await this.v2Schema.ensure();
709
652
  const rpId = normalizeOptionalTrimmedString(input.rpId);
710
653
  const credentialIdB64u = normalizeOptionalTrimmedString(input.credentialIdB64u);
711
654
  if (!rpId || !credentialIdB64u) return null;
712
- return normalizeWalletAuthMethodV2(parseD1JsonColumn((await this.database.prepare(`SELECT record_json
655
+ return normalizeWalletAuthMethodV2(parseD1JsonColumn((await this.table.prepare(`SELECT record_json
713
656
  FROM wallet_auth_methods
714
657
  WHERE namespace = ?
715
658
  AND org_id = ?
@@ -719,14 +662,14 @@ var D1WalletAuthMethodStore = class {
719
662
  AND rp_id = ?
720
663
  AND credential_id_b64u = ?
721
664
  ORDER BY created_at_ms ASC
722
- LIMIT 1`).bind(this.scope.namespace, this.scope.orgId, this.scope.projectId, this.scope.envId, rpId, credentialIdB64u).first())?.record_json));
665
+ LIMIT 1`, [rpId, credentialIdB64u]).first())?.record_json));
723
666
  }
724
667
  async getEmailOtpV2(input) {
725
- await this.ensureV2Schema();
668
+ await this.v2Schema.ensure();
726
669
  const walletId = normalizeOptionalTrimmedString(input.walletId);
727
670
  const emailHashHex = normalizeOptionalTrimmedString(input.emailHashHex);
728
671
  if (!walletId || !emailHashHex) return null;
729
- return normalizeWalletAuthMethodV2(parseD1JsonColumn((await this.database.prepare(`SELECT record_json
672
+ return normalizeWalletAuthMethodV2(parseD1JsonColumn((await this.table.prepare(`SELECT record_json
730
673
  FROM wallet_auth_methods
731
674
  WHERE namespace = ?
732
675
  AND org_id = ?
@@ -736,15 +679,15 @@ var D1WalletAuthMethodStore = class {
736
679
  AND wallet_id = ?
737
680
  AND email_hash_hex = ?
738
681
  ORDER BY created_at_ms ASC
739
- LIMIT 1`).bind(this.scope.namespace, this.scope.orgId, this.scope.projectId, this.scope.envId, walletId, emailHashHex).first())?.record_json));
682
+ LIMIT 1`, [walletId, emailHashHex]).first())?.record_json));
740
683
  }
741
684
  async listForWalletV2(input) {
742
- await this.ensureV2Schema();
685
+ await this.v2Schema.ensure();
743
686
  const walletId = normalizeOptionalTrimmedString(input.walletId);
744
687
  if (!walletId) return [];
745
688
  const authorityId = input.walletAuthorityId ? String(input.walletAuthorityId) : "";
746
689
  const rpId = normalizeOptionalTrimmedString(input.rpId);
747
- const result = await this.database.prepare(`SELECT record_json
690
+ const result = await this.table.prepare(`SELECT record_json
748
691
  FROM wallet_auth_methods
749
692
  WHERE namespace = ?
750
693
  AND org_id = ?
@@ -753,7 +696,13 @@ var D1WalletAuthMethodStore = class {
753
696
  AND wallet_id = ?
754
697
  AND (? = '' OR wallet_authority_id = ?)
755
698
  AND (kind = 'email_otp' OR ? = '' OR rp_id = ?)
756
- ORDER BY created_at_ms ASC, wallet_auth_method_id ASC`).bind(this.scope.namespace, this.scope.orgId, this.scope.projectId, this.scope.envId, walletId, authorityId, authorityId, rpId, rpId).all();
699
+ ORDER BY created_at_ms ASC, wallet_auth_method_id ASC`, [
700
+ walletId,
701
+ authorityId,
702
+ authorityId,
703
+ rpId,
704
+ rpId
705
+ ]).all();
757
706
  const records = [];
758
707
  for (const row of result.results || []) {
759
708
  const parsed = normalizeWalletAuthMethodV2(parseD1JsonColumn(row.record_json));
@@ -763,6 +712,6 @@ var D1WalletAuthMethodStore = class {
763
712
  }
764
713
  };
765
714
  //#endregion
766
- export { D1WalletAuthMethodStore, WALLET_AUTH_METHOD_STORE_D1_SCHEMA_SQL, WALLET_AUTH_METHOD_STORE_D1_SCHEMA_V2_SQL, bindWalletAuthMethodIdentity, bindWalletAuthMethodIdentityV2, ensureWalletAuthMethodStoreD1Schema, ensureWalletAuthMethodStoreD1SchemaV2, normalizeWalletAuthMethod, normalizeWalletAuthMethodV2, prepareD1WalletAuthMethodInsertStatement, prepareD1WalletAuthMethodPutStatement, prepareD1WalletAuthMethodV2PutStatement, walletAuthMethodId, walletAuthMethodV2Id };
715
+ export { D1WalletAuthMethodStore, WALLET_AUTH_METHOD_D1_STORE, WALLET_AUTH_METHOD_STORE_D1_SCHEMA_SQL, WALLET_AUTH_METHOD_STORE_D1_SCHEMA_V2_SQL, bindWalletAuthMethodIdentity, bindWalletAuthMethodIdentityV2, ensureWalletAuthMethodStoreD1Schema, ensureWalletAuthMethodStoreD1SchemaV2, normalizeWalletAuthMethod, normalizeWalletAuthMethodV2, prepareD1WalletAuthMethodInsertStatement, prepareD1WalletAuthMethodPutStatement, prepareD1WalletAuthMethodV2PutStatement, walletAuthMethodId, walletAuthMethodV2Id };
767
716
 
768
717
  //# sourceMappingURL=d1WalletAuthMethodStore.js.map
@@ -1,11 +1,11 @@
1
1
  import { parseWalletId } from "../shared-ts/src/utils/domainIds.js";
2
+ import { normalizeOptionalTrimmedString } from "../shared-ts/src/utils/normalize.js";
3
+ import { isPlainObject } from "../shared-ts/src/utils/validation.js";
2
4
  import { sameRouterAbMpcMaterialActivationRef } from "../shared-ts/src/utils/routerAbNormalSigningIdentity.js";
3
5
  import { parseRouterAbEd25519YaoRecoveryActivationResultV1, parseRouterAbEd25519YaoRecoveryAdmissionRequestV1, parseRouterAbEd25519YaoRegistrationActivationAdmissionReceiptV1, parseRouterAbEd25519YaoRegistrationActivationResultV1, parseRouterAbEd25519YaoRegistrationAdmissionRequestV1 } from "../shared-ts/src/utils/routerAbEd25519Yao.js";
4
- import { normalizeOptionalTrimmedString } from "../shared-ts/src/utils/normalize.js";
5
- import "../shared-ts/src/utils/validation.js";
6
6
  import { normalizeRuntimePolicyScope, signingRootScopeFromRuntimePolicyScope } from "../shared-ts/src/threshold/signingRootScope.js";
7
7
  import { sameRouterAbEcdsaDerivationPublicCapabilityV1 } from "../shared-ts/src/utils/routerAbEcdsaDerivation.js";
8
- import { d1ChangedRows, formatD1ExecStatement, parseD1JsonColumn } from "../storage/d1Sql.js";
8
+ import { D1_BATCH_CAS_GUARD_SQL, formatD1ExecStatement, parseD1JsonColumn } from "../storage/d1Sql.js";
9
9
  import { thresholdEcdsaChainTargetKey } from "./thresholdEcdsaChainTarget.js";
10
10
  import { normalizeThresholdEd25519ParticipantIds } from "../shared-ts/src/threshold/participants.js";
11
11
  import { ecdsaPostRegistrationRequestMatchesCapability, parseWalletEcdsaPendingSessionActivationRecord, parseWalletEcdsaSignerRecord } from "./WalletStore.js";
@@ -152,16 +152,13 @@ const WALLET_STORE_D1_SCHEMA_SQL = Object.freeze([
152
152
  async function ensureWalletStoreD1Schema(options) {
153
153
  for (const statement of WALLET_STORE_D1_SCHEMA_SQL) await options.database.exec(formatD1ExecStatement(statement));
154
154
  }
155
- function isObject(value) {
156
- return Boolean(value && typeof value === "object" && !Array.isArray(value));
157
- }
158
155
  function normalizeTimestampMs(value) {
159
156
  const numberValue = Number(value);
160
157
  if (!Number.isFinite(numberValue) || numberValue < 0) return null;
161
158
  return Math.floor(numberValue);
162
159
  }
163
160
  function parseWalletRecord(raw) {
164
- if (!isObject(raw)) return null;
161
+ if (!isPlainObject(raw)) return null;
165
162
  if (raw.version !== "wallet_v1") return null;
166
163
  const walletId = parseWalletId(raw.walletId);
167
164
  const createdAtMs = normalizeTimestampMs(raw.createdAtMs);
@@ -180,7 +177,7 @@ function equalBytes(left, right) {
180
177
  return true;
181
178
  }
182
179
  function parseWalletEd25519YaoActiveCapabilityRecord(raw) {
183
- if (!isObject(raw)) return null;
180
+ if (!isPlainObject(raw)) return null;
184
181
  const nearAccountId = normalizeOptionalTrimmedString(raw.nearAccountId);
185
182
  if (!nearAccountId) return null;
186
183
  let runtimePolicyScope;
@@ -222,7 +219,7 @@ function parseWalletEd25519YaoActiveCapabilityRecord(raw) {
222
219
  }
223
220
  }
224
221
  function parseWalletEd25519SignerRecord(raw) {
225
- if (!isObject(raw) || raw.version !== "wallet_signer_ed25519_v1") return null;
222
+ if (!isPlainObject(raw) || raw.version !== "wallet_signer_ed25519_v1") return null;
226
223
  const walletId = parseWalletId(raw.walletId);
227
224
  const signerId = normalizeOptionalTrimmedString(raw.signerId);
228
225
  const nearAccountId = normalizeOptionalTrimmedString(raw.nearAccountId);
@@ -684,11 +681,16 @@ var D1WalletStore = class {
684
681
  record
685
682
  }).run();
686
683
  }
687
- async putEd25519SignerIfSlotAvailable(record) {
684
+ /**
685
+ * The statements that insert an Ed25519 signer into its slot, for a batch
686
+ * owned elsewhere. The batch aborts unless the slot was free: slot
687
+ * uniqueness rests on this check alone.
688
+ */
689
+ async prepareEd25519SignerIfSlotAvailableStatements(record) {
688
690
  await this.ensureSchema();
689
691
  const parsed = parseWalletEd25519SignerRecord(record);
690
692
  if (!parsed) throw new Error("Invalid Ed25519 wallet signer record");
691
- return d1ChangedRows(await this.database.prepare(`INSERT INTO wallet_signers (
693
+ return [this.database.prepare(`INSERT INTO wallet_signers (
692
694
  namespace,
693
695
  org_id,
694
696
  project_id,
@@ -712,7 +714,7 @@ var D1WalletStore = class {
712
714
  AND wallet_id = ?
713
715
  AND signer_family = 'ed25519'
714
716
  AND json_extract(record_json, '$.signerSlot') = ?
715
- )`).bind(this.scope.namespace, this.scope.orgId, this.scope.projectId, this.scope.envId, parsed.walletId, parsed.signerId, JSON.stringify(parsed), parsed.createdAtMs, parsed.updatedAtMs, this.scope.namespace, this.scope.orgId, this.scope.projectId, this.scope.envId, parsed.walletId, parsed.signerSlot).run()) === 1;
717
+ )`).bind(this.scope.namespace, this.scope.orgId, this.scope.projectId, this.scope.envId, parsed.walletId, parsed.signerId, JSON.stringify(parsed), parsed.createdAtMs, parsed.updatedAtMs, this.scope.namespace, this.scope.orgId, this.scope.projectId, this.scope.envId, parsed.walletId, parsed.signerSlot), this.database.prepare(D1_BATCH_CAS_GUARD_SQL)];
716
718
  }
717
719
  async putSigners(records) {
718
720
  for (const record of records) await this.putSigner(record);
@@ -1,11 +1,13 @@
1
1
  import { parseLinkDeviceSessionId, parseLinkedDeviceEnrollmentId, parseLinkedDeviceId, parseVerifiedEmailAddress, parseWalletAuthMethodId, parseWalletId, parseWebAuthnCredentialIdB64u } from "../../shared-ts/src/utils/domainIds.js";
2
2
  import { base64UrlEncode } from "../../shared-ts/src/utils/base64.js";
3
- import { parseDigestB64u } from "../../shared-ts/src/utils/canonicalPrimitives.js";
4
3
  import { sha256BytesUtf8 } from "../../shared-ts/src/utils/digests.js";
5
- import { parseUnixMs, rejectUnknownFields, requireRecord } from "../../shared-ts/src/passkey-custody/primitives.js";
4
+ import { parseDigestB64u, sha256Utf8DigestB64u } from "../../shared-ts/src/utils/canonicalPrimitives.js";
5
+ import { requireRecord } from "../../shared-ts/src/utils/validation.js";
6
+ import { rejectUnknownFields } from "../../shared-ts/src/utils/exactRecord.js";
7
+ import { parseUnixMs } from "../../shared-ts/src/passkey-custody/primitives.js";
6
8
  //#region src/core/deviceLinking/linkedDeviceEmailOtpGrant.ts
7
9
  /**
8
- * Refactor 103 Phase 6 — the durable one-time Email OTP verification grant.
10
+ * The durable one-time Email OTP verification grant.
9
11
  *
10
12
  * Verifying the emailed code proves the person holding Device 2 controls the
11
13
  * wallet's base Email OTP destination. That proof must authorize exactly one
@@ -32,7 +34,7 @@ const CHALLENGE_BINDING_DOMAIN = "seams:linked-device-email-otp-challenge-bindin
32
34
  */
33
35
  async function computeLinkedDeviceEmailOtpChallengeBindingDigestV1(input) {
34
36
  const baseWalletAuthMethodId = input.enrollment.kind === "existing_enrollment" ? requirePresentBaseMethod(input.baseWalletAuthMethodId) : "";
35
- return parseDigestB64u(base64UrlEncode(await sha256BytesUtf8([
37
+ return sha256Utf8DigestB64u([
36
38
  CHALLENGE_BINDING_DOMAIN,
37
39
  String(input.walletId),
38
40
  String(input.linkSessionId),
@@ -44,7 +46,7 @@ async function computeLinkedDeviceEmailOtpChallengeBindingDigestV1(input) {
44
46
  input.enrollment.kind,
45
47
  String(baseWalletAuthMethodId),
46
48
  String(input.walletAuthMethodId)
47
- ].join("\\u0000"))));
49
+ ].join("\\u0000"));
48
50
  }
49
51
  const GRANT_RECORD_FIELDS = [
50
52
  "kind",
@@ -141,7 +143,7 @@ function linkedDeviceEmailOtpGrantAdmitsUseV1(record, nowMs) {
141
143
  */
142
144
  async function computeLinkedDeviceEmailOtpGrantTokenDigestV1(grantToken) {
143
145
  if (!grantToken || grantToken.trim() !== grantToken) throw new Error("linked-device email OTP grant token is invalid");
144
- return parseDigestB64u(base64UrlEncode(await sha256BytesUtf8(`${GRANT_TOKEN_DIGEST_DOMAIN}\u0000${grantToken}`)));
146
+ return sha256Utf8DigestB64u(`${GRANT_TOKEN_DIGEST_DOMAIN}\u0000${grantToken}`);
145
147
  }
146
148
  /**
147
149
  * The digest every Wallet Session and admission surface compares to name this
@@ -152,7 +154,7 @@ async function computeLinkedDeviceEmailOtpGrantTokenDigestV1(grantToken) {
152
154
  */
153
155
  async function computeLinkedDeviceEmailOtpAuthorityDigestV1(input) {
154
156
  const baseWalletAuthMethodId = input.enrollment.kind === "existing_enrollment" ? requirePresentBaseMethod(input.baseWalletAuthMethodId) : "";
155
- return parseDigestB64u(base64UrlEncode(await sha256BytesUtf8([
157
+ return sha256Utf8DigestB64u([
156
158
  AUTHORITY_DIGEST_DOMAIN,
157
159
  String(input.walletId),
158
160
  String(input.enrollmentId),
@@ -161,7 +163,7 @@ async function computeLinkedDeviceEmailOtpAuthorityDigestV1(input) {
161
163
  input.targetEmail,
162
164
  input.enrollment.kind,
163
165
  String(baseWalletAuthMethodId)
164
- ].join("\0"))));
166
+ ].join("\0"));
165
167
  }
166
168
  /**
167
169
  * The target-deployment descriptor binds each child to the target credential
@@ -40,7 +40,7 @@ var LinkedDeviceManagementServiceV1 = class {
40
40
  nextCursor: page.nextCursor ? encodeLinkedDeviceListCursorV1(page.nextCursor) : null
41
41
  };
42
42
  }
43
- async revokeLinkedDeviceV1(request, source) {
43
+ async revokeLinkedDeviceV1(request, source, commit) {
44
44
  const resolved = await this.resolveSourceV1(source, request.requestedAtMs);
45
45
  if (!resolved || !hasFullOwnerPermissionsV1(resolved.authority)) return { kind: "unauthorized" };
46
46
  if (request.walletId !== resolved.session.walletId) return { kind: "unauthorized" };
@@ -76,7 +76,11 @@ var LinkedDeviceManagementServiceV1 = class {
76
76
  authorityId: targetAuthority.authorityId,
77
77
  walletAuthMethodId: targetMethod.walletAuthMethodId,
78
78
  expectedAuthorityRevocationEpoch: targetAuthority.revocationEpoch,
79
- requestedAtMs: request.requestedAtMs
79
+ requestedAtMs: request.requestedAtMs,
80
+ ...commit === void 0 ? {} : { commit: {
81
+ statements: commit.prerequisites,
82
+ trailingStatements: commit.recordAnswer({ authorityId: targetAuthority.authorityId })
83
+ } }
80
84
  });
81
85
  if (result.kind === "would_remove_last_wallet_auth_method" || result.kind === "conflict") return { kind: "conflict" };
82
86
  await this.options.sessions.retireWalletSessionAuthorizationsForAuthMethod({
@@ -93,6 +97,24 @@ var LinkedDeviceManagementServiceV1 = class {
93
97
  revocationEpoch: result.authority.revocationEpoch
94
98
  };
95
99
  }
100
+ /**
101
+ * Finishes, again, what follows a committed revocation: the method's
102
+ * sessions retired and a revoked authority's signer material deactivated.
103
+ * Both are idempotent, so an exact retry answered from the record completes
104
+ * whatever its first attempt left undone.
105
+ */
106
+ async finishLinkedDeviceRevocationV1(input) {
107
+ const method = await this.options.authMethod.readByIdV1({ walletAuthMethodId: input.walletAuthMethodId });
108
+ if (!method || method.walletId !== input.walletId || method.status !== "revoked") return;
109
+ await this.options.sessions.retireWalletSessionAuthorizationsForAuthMethod({
110
+ tenantId: this.options.tenantId,
111
+ walletId: input.walletId,
112
+ walletAuthMethodId: method.walletAuthMethodId,
113
+ nowMs: input.requestedAtMs
114
+ });
115
+ const authority = await this.options.authority.readByIdV1(method.walletAuthorityId);
116
+ if (authority?.state === "revoked" && authority.walletId === input.walletId && authority.provenance.kind === "device_link") await this.deactivateSignerMaterialV1(authority, input.requestedAtMs);
117
+ }
96
118
  async resolveSourceV1(source, requestedAtMs) {
97
119
  if (source.expiresAtMs <= requestedAtMs) return null;
98
120
  const session = await this.options.authenticator.readActiveOwnerWalletSessionV1({
@@ -274,6 +296,6 @@ function isCursorRecordV1(value) {
274
296
  return typeof value === "object" && value !== null && !Array.isArray(value) && Object.keys(value).sort().join(",") === "authorityId,kind,updatedAtMs";
275
297
  }
276
298
  //#endregion
277
- export { LinkedDeviceListCursorError, LinkedDeviceManagementServiceV1, MAX_LINKED_DEVICE_LIST_LIMIT_V1, decodeLinkedDeviceListCursorV1, encodeLinkedDeviceListCursorV1 };
299
+ export { LinkedDeviceListCursorError, LinkedDeviceManagementServiceV1, MAX_LINKED_DEVICE_LIST_LIMIT_V1 };
278
300
 
279
301
  //# sourceMappingURL=linkedDeviceManagement.js.map