@seams/wallet-server 0.7.1 → 0.7.3

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 (259) hide show
  1. package/THIRD_PARTY_NOTICES.md +1 -105
  2. package/artifact-manifest.json +21 -21
  3. package/cloudflare-router-ab/build/deriver-a/build-stamp.json +1 -1
  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 -1
  6. package/cloudflare-router-ab/build/deriver-b/index_bg.wasm +0 -0
  7. package/cloudflare-router-ab/build/local-tools/darwin-arm64/router_ab_local_init +0 -0
  8. package/cloudflare-router-ab/build/local-tools/darwin-x64/router_ab_local_init +0 -0
  9. package/cloudflare-router-ab/build/local-tools/linux-x64/router_ab_local_init +0 -0
  10. package/cloudflare-router-ab/build/router/build-stamp.json +1 -1
  11. package/cloudflare-router-ab/build/router/index_bg.wasm +0 -0
  12. package/cloudflare-router-ab/build/signing-worker/build-stamp.json +1 -1
  13. package/cloudflare-router-ab/build/signing-worker/index_bg.wasm +0 -0
  14. package/cloudflare-router-ab/build/tenant-root-control-plane/build-stamp.json +1 -1
  15. package/cloudflare-router-ab/build/tenant-root-control-plane/index_bg.wasm +0 -0
  16. package/dist/esm/authorization/service.js +8 -0
  17. package/dist/esm/authorization/vaultProxyUse.js +2 -6
  18. package/dist/esm/cloud-host.js +4 -4
  19. package/dist/esm/core/IdentityStore.js +23 -110
  20. package/dist/esm/core/SessionService.js +7 -30
  21. package/dist/esm/core/ThresholdService/routerAbNormalSigningPolicy.js +3 -10
  22. package/dist/esm/core/ThresholdService/stores/WalletSessionStore.js +21 -97
  23. package/dist/esm/core/ThresholdService/stores/exportReplayGuard.js +7 -0
  24. package/dist/esm/core/WalletStore.js +4 -6
  25. package/dist/esm/core/authService/bytes.js +1 -4
  26. package/dist/esm/core/authService/emailOtpChallengeOperations.js +2 -5
  27. package/dist/esm/core/authService/emailOtpChallengeProof.js +9 -40
  28. package/dist/esm/core/authService/emailOtpChallengeVerification.js +19 -90
  29. package/dist/esm/core/authService/emailOtpChallenges.js +10 -45
  30. package/dist/esm/core/authService/emailOtpDelivery.js +10 -45
  31. package/dist/esm/core/authService/emailOtpEnrollment.js +9 -40
  32. package/dist/esm/core/authService/emailOtpGrant.js +9 -40
  33. package/dist/esm/core/authService/emailOtpRegistrationEnrollment.js +9 -40
  34. package/dist/esm/core/authService/emailOtpSeal.js +5 -20
  35. package/dist/esm/core/authService/emailOtpUnlock.js +20 -110
  36. package/dist/esm/core/authService/googleEmailOtpRegistration.js +28 -115
  37. package/dist/esm/core/authService/identity.js +5 -20
  38. package/dist/esm/core/authService/nearPublicKeyMetadata.js +6 -25
  39. package/dist/esm/core/authService/oidcVerification.js +22 -34
  40. package/dist/esm/core/authService/rateLimits.js +2 -5
  41. package/dist/esm/core/authService/thresholdEcdsaKeyInventory.js +2 -1
  42. package/dist/esm/core/authService/webauthn.js +37 -191
  43. package/dist/esm/core/authService/webauthnVerificationOutcomes.js +5 -24
  44. package/dist/esm/core/d1EcdsaSignerRead.js +76 -0
  45. package/dist/esm/core/d1IdentityStore.js +16 -75
  46. package/dist/esm/core/d1TenantStore.js +1 -1
  47. package/dist/esm/core/d1WalletStore.js +15 -25
  48. package/dist/esm/core/deviceLinking/linkedDeviceEmailOtpGrant.js +1 -5
  49. package/dist/esm/core/deviceLinking/linkedDeviceSessionApproval.js +1 -3
  50. package/dist/esm/core/deviceLinking/linkedDeviceSessionRecord.js +2 -8
  51. package/dist/esm/core/deviceLinking/requestProof.js +13 -4
  52. package/dist/esm/core/ecdsaMaterialReadSnapshot.js +85 -0
  53. package/dist/esm/core/nearRelayerAccountProvisioning.js +2 -5
  54. package/dist/esm/core/signingLanes/WalletExecutionLaneProjection.js +3 -6
  55. package/dist/esm/core/signingMaterial/ordinaryInactiveSignerMaterialReservation.js +2 -5
  56. package/dist/esm/core/storeBackends.js +1 -1
  57. package/dist/esm/core/thresholdEcdsaChainTarget.js +1 -3
  58. package/dist/esm/hosted-wallet-gateway.js +2 -2
  59. package/dist/esm/localHostedWalletGatewayHandler.js +13 -0
  60. package/dist/esm/localIntendedMaterialAdmissionFault.js +176 -0
  61. package/dist/esm/localIntendedPresignCancellation.js +44 -0
  62. package/dist/esm/router/auth/commonRouterUtils.js +24 -10
  63. package/dist/esm/router/auth/walletSessionFailure.js +2 -5
  64. package/dist/esm/router/auth/webAuthnCredentialCodecs.js +4 -15
  65. package/dist/esm/router/cloudflare/d1/auth/d1AuthorizedOperationRouteService.js +1 -0
  66. package/dist/esm/router/cloudflare/d1/auth/d1RouterApiAuthBoundary.js +2 -6
  67. package/dist/esm/router/cloudflare/d1/auth/d1RouterApiAuthService.js +5 -27
  68. package/dist/esm/router/cloudflare/d1/auth/walletSessionCredentialReaders.js +76 -0
  69. package/dist/esm/router/cloudflare/d1/authorization/authorizedOperationStatements.js +28 -21
  70. package/dist/esm/router/cloudflare/d1/authorization/d1AuthorizationStore.js +209 -44
  71. package/dist/esm/router/cloudflare/d1/authorization/d1VaultProxyStore.js +8 -12
  72. package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceAuthorityInstallService.js +50 -8
  73. package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceTargetCredentialProvider.js +1 -1
  74. package/dist/esm/router/cloudflare/d1/deviceLinking/index.js +3 -3
  75. package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpChallengeIssuer.js +12 -55
  76. package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpChallengeService.js +17 -80
  77. package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpDeliveryRuntime.js +6 -25
  78. package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpRecords.js +12 -47
  79. package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpRecoveryService.js +24 -85
  80. package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpRegistrationEnrollmentFinalizer.js +7 -30
  81. package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpServerSealRuntime.js +5 -20
  82. package/dist/esm/router/cloudflare/d1/emailOtp/d1GoogleEmailOtpSessionResolver.js +23 -110
  83. package/dist/esm/router/cloudflare/d1/identity/d1IdentityService.js +9 -40
  84. package/dist/esm/router/cloudflare/d1/near/d1NearPublicKeyStore.js +3 -10
  85. package/dist/esm/router/cloudflare/d1/oidc/d1OidcBoundary.js +18 -91
  86. package/dist/esm/router/cloudflare/d1/oidc/d1OidcVerificationService.js +6 -30
  87. package/dist/esm/router/cloudflare/d1/passkeyCustody/d1PasskeyCustodyRouteService.js +4 -15
  88. package/dist/esm/router/cloudflare/d1/passkeyCustody/d1WalletCustodyCommitStore.js +2 -7
  89. package/dist/esm/router/cloudflare/d1/passkeyCustody/d1WalletRecoveryGoogleEmailOtpRecords.js +9 -13
  90. package/dist/esm/router/cloudflare/d1/passkeyCustody/d1WalletRecoveryGoogleEmailOtpService.js +11 -50
  91. package/dist/esm/router/cloudflare/d1/registration/d1EvmFamilyEcdsaRegistrationBranch.js +5 -20
  92. package/dist/esm/router/cloudflare/d1/registration/d1RegistrationCeremonyRecordStore.js +4 -7
  93. package/dist/esm/router/cloudflare/d1/registration/d1RegistrationCeremonyRecords.js +2 -1
  94. package/dist/esm/router/cloudflare/d1/registration/d1RegistrationIntentService.js +7 -30
  95. package/dist/esm/router/cloudflare/d1/registration/d1WalletRegistrationService.js +32 -22
  96. package/dist/esm/router/cloudflare/d1/registration/walletRegistrationSessionCommitReceipt.js +1 -4
  97. package/dist/esm/router/cloudflare/d1/signingAdmission/d1RouterAbNormalSigningAdmissionStore.js +119 -25
  98. package/dist/esm/router/cloudflare/d1/webauthn/d1WebAuthnAuthService.js +31 -168
  99. package/dist/esm/router/cloudflare/d1/webauthn/d1WebAuthnRecords.js +6 -9
  100. package/dist/esm/router/cloudflare/durableObjects/thresholdStore.js +59 -66
  101. package/dist/esm/router/cloudflare/runtime/routerAbPrewarm.js +2 -2
  102. package/dist/esm/router/cloudflare/runtime/staticWalletConsoleBinding.js +5 -20
  103. package/dist/esm/router/cloudflare/runtime/tenantRootCreationGrant.js +2 -9
  104. package/dist/esm/router/cloudflare/runtime/walletControlOps.js +2 -1
  105. package/dist/esm/router/cloudflare/signingLanes/cloudflareLaneCurveExecution.js +2 -1
  106. package/dist/esm/router/cloudflare/signingLanes/cloudflareLaneProtocolCommitter.js +2 -2
  107. package/dist/esm/router/cloudflare.js +2146 -1802
  108. package/dist/esm/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistrationPersistence.js +5 -8
  109. package/dist/esm/router/domains/ed25519Yao/recovery/routerAbEd25519YaoRecoveryWalletSessionAuthorization.js +3 -6
  110. package/dist/esm/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistrationIntentAuthorization.js +6 -25
  111. package/dist/esm/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistrationSideEffectBoundary.js +39 -55
  112. package/dist/esm/router/domains/emailOtp/emailOtpRouteHandlers.js +15 -62
  113. package/dist/esm/router/domains/signingOperations/routerAbEcdsaDerivationNormalSigningRoute.js +83 -74
  114. package/dist/esm/router/domains/signingOperations/routerAbNormalSigningAdmission.js +1 -0
  115. package/dist/esm/router/domains/signingOperations/routerAbOperationStepUp.js +1 -0
  116. package/dist/esm/router/domains/signingOperations/walletExecutionAdmission.js +1 -4
  117. package/dist/esm/router/domains/tenantRoot/tenantRootIdentityResolution.js +7 -13
  118. package/dist/esm/router/domains/walletUnlock/walletUnlockRouteHandlers.js +41 -200
  119. package/dist/esm/router/express.js +317 -699
  120. package/dist/esm/router/framework/http.js +5 -1
  121. package/dist/esm/router/framework/runtimeSnapshotConsumer.js +8 -35
  122. package/dist/esm/router/transport/fetch/createFetchRouter.js +3 -6
  123. package/dist/esm/router/transport/fetch/routes/auth.js +9 -41
  124. package/dist/esm/router/transport/fetch/routes/deviceLinkingOwnerAuthorization.js +5 -22
  125. package/dist/esm/router/transport/fetch/routes/nearPublicKeys.js +4 -16
  126. package/dist/esm/router/transport/fetch/routes/sessions.js +1 -0
  127. package/dist/esm/router/transport/fetch/routes/syncAccount.js +8 -36
  128. package/dist/esm/router/transport/fetch/routes/thresholdEcdsa.js +27 -79
  129. package/dist/esm/router/transport/fetch/routes/walletExecutionLanePreflight.js +4 -1
  130. package/dist/esm/router/transport/fetch/routes/webauthnAuthenticators.js +4 -16
  131. package/dist/esm/shared-ts/src/authorization/walletSignerActivationEquality.js +12 -0
  132. package/dist/esm/shared-ts/src/device-linking/committedSignerPackages.js +2 -5
  133. package/dist/esm/shared-ts/src/device-linking/delegatedActivationPlan.js +1 -5
  134. package/dist/esm/shared-ts/src/device-linking/ed25519ExportRoot.js +12 -16
  135. package/dist/esm/shared-ts/src/device-linking/sourceContribution.js +5 -8
  136. package/dist/esm/shared-ts/src/passkey-custody/primitives.js +5 -1
  137. package/dist/esm/shared-ts/src/signing-lanes/ownerContinuity.js +4 -8
  138. package/dist/esm/shared-ts/src/tenant-root/tenantRootIdentifier.js +12 -0
  139. package/dist/esm/shared-ts/src/tenant-root/tenantRootIdentity.js +2 -9
  140. package/dist/esm/shared-ts/src/tenant-root/tenantRootOperationRecord.js +1 -4
  141. package/dist/esm/shared-ts/src/utils/ecdsaKeyFactsInventory.js +2 -4
  142. package/dist/esm/shared-ts/src/utils/ecdsaServerTiming.js +0 -1
  143. package/dist/esm/shared-ts/src/utils/emailOtpDomain.js +3 -1
  144. package/dist/esm/shared-ts/src/utils/exactKeys.js +17 -0
  145. package/dist/esm/shared-ts/src/utils/failure.js +20 -0
  146. package/dist/esm/shared-ts/src/utils/registrationIntent.js +3 -12
  147. package/dist/esm/shared-ts/src/utils/registrationSignerPlan.js +2 -5
  148. package/dist/esm/shared-ts/src/utils/routerAbEcdsaDerivation.js +1 -1
  149. package/dist/esm/shared-ts/src/utils/routerAbEd25519Yao.js +1 -1
  150. package/dist/esm/shared-ts/src/utils/thresholdEcdsaChainTarget.js +9 -0
  151. package/dist/esm/shared-ts/src/wallet-recovery/walletRecoveryCommittedProjection.js +1 -4
  152. package/dist/esm/threshold/session/signingSessionSeal/crypto/cipher.js +10 -32
  153. package/dist/esm/threshold/session/signingSessionSeal/idempotencyBackends.js +3 -3
  154. package/dist/esm/threshold/session/signingSessionSeal/idempotencyRecords.js +3 -9
  155. package/dist/esm/threshold/session/signingSessionSeal/service.js +8 -35
  156. package/dist/esm/threshold/session/signingSessionSeal/transport/express.js +18 -94
  157. package/dist/esm/threshold/session/signingSessionSeal/transport/fetch.js +6 -30
  158. package/dist/esm/threshold/session/signingSessionSeal/transport/shared.js +5 -20
  159. package/dist/esm/wasm/evm_crypto/pkg/evm_crypto_bg.wasm +0 -0
  160. package/dist/esm/wasm/near_signer/pkg/wasm_signer_worker_bg.wasm +0 -0
  161. package/dist/types/shared-ts/src/authorization/delegatedAuthority.d.ts +2 -1
  162. package/dist/types/shared-ts/src/authorization/walletSessionIssuance.d.ts +9 -2
  163. package/dist/types/shared-ts/src/authorization/walletSignerActivationEquality.d.ts +4 -0
  164. package/dist/types/shared-ts/src/device-linking/committedSignerPackages.d.ts +3 -4
  165. package/dist/types/shared-ts/src/device-linking/contracts.d.ts +5 -63
  166. package/dist/types/shared-ts/src/device-linking/sourceContribution.d.ts +2 -0
  167. package/dist/types/shared-ts/src/passkey-custody/custodyEnvelope.d.ts +5 -12
  168. package/dist/types/shared-ts/src/passkey-custody/primitives.d.ts +9 -0
  169. package/dist/types/shared-ts/src/signing-lanes/execution.d.ts +11 -1
  170. package/dist/types/shared-ts/src/signing-lanes/ids.d.ts +1 -10
  171. package/dist/types/shared-ts/src/signing-lanes/rotation.d.ts +3 -5
  172. package/dist/types/shared-ts/src/tenant-root/tenantRootIdentifier.d.ts +3 -0
  173. package/dist/types/shared-ts/src/tenant-root/tenantRootOperationRecord.d.ts +2 -1
  174. package/dist/types/shared-ts/src/threshold/ecdsaDerivationRoleLocalBootstrap.d.ts +6 -0
  175. package/dist/types/shared-ts/src/threshold/signingRootScope.d.ts +1 -0
  176. package/dist/types/shared-ts/src/utils/ecdsaKeyFactsInventory.d.ts +2 -11
  177. package/dist/types/shared-ts/src/utils/eip1559TxWasmJson.d.ts +16 -0
  178. package/dist/types/shared-ts/src/utils/emailOtpDomain.d.ts +2 -0
  179. package/dist/types/shared-ts/src/utils/exactKeys.d.ts +11 -0
  180. package/dist/types/shared-ts/src/utils/failure.d.ts +12 -0
  181. package/dist/types/shared-ts/src/utils/jsonRpc.d.ts +3 -4
  182. package/dist/types/shared-ts/src/utils/nearRpcResults.d.ts +1 -0
  183. package/dist/types/shared-ts/src/utils/registrationAuthMethodInput.d.ts +3 -8
  184. package/dist/types/shared-ts/src/utils/registrationSignerPlan.d.ts +7 -19
  185. package/dist/types/shared-ts/src/utils/routerAbEcdsaDerivation.d.ts +3 -1
  186. package/dist/types/shared-ts/src/utils/routerAbEd25519Yao.d.ts +1 -0
  187. package/dist/types/shared-ts/src/utils/routerAbEd25519YaoDigests.d.ts +3 -4
  188. package/dist/types/shared-ts/src/utils/routerAbNormalSigningIdentity.d.ts +30 -8
  189. package/dist/types/shared-ts/src/utils/routerApiKeyAuth.d.ts +2 -0
  190. package/dist/types/shared-ts/src/utils/signingSessionSeal.d.ts +10 -11
  191. package/dist/types/shared-ts/src/utils/thresholdEcdsaChainTarget.d.ts +25 -0
  192. package/dist/types/shared-ts/src/utils/variant.d.ts +18 -0
  193. package/dist/types/shared-ts/src/utils/walletAuthMethodRecord.d.ts +3 -6
  194. package/dist/types/shared-ts/src/utils/webauthnDeviceInfo.d.ts +4 -2
  195. package/dist/types/shared-ts/src/wallet-recovery/recoveryEnvelopes.d.ts +3 -16
  196. package/dist/types/shared-ts/src/wallet-recovery/walletRecoveryPreparation.d.ts +15 -0
  197. package/dist/types/shared-ts/src/wallet-recovery/walletRecoveryTarget.d.ts +3 -4
  198. package/dist/types/wallet-server/src/authorization/domain.d.ts +13 -2
  199. package/dist/types/wallet-server/src/authorization/ecdsaWalletSessionAdmission.d.ts +27 -3
  200. package/dist/types/wallet-server/src/authorization/service.d.ts +19 -0
  201. package/dist/types/wallet-server/src/core/ThresholdService/stores/SessionStore.d.ts +2 -2
  202. package/dist/types/wallet-server/src/core/ThresholdService/stores/WalletSessionStore.d.ts +1 -1
  203. package/dist/types/wallet-server/src/core/ThresholdService/stores/exportReplayGuard.d.ts +3 -0
  204. package/dist/types/wallet-server/src/core/ThresholdService/validation.d.ts +8 -101
  205. package/dist/types/wallet-server/src/core/WebAuthnAuthenticatorStore.d.ts +8 -0
  206. package/dist/types/wallet-server/src/core/authService/bytes.d.ts +0 -1
  207. package/dist/types/wallet-server/src/core/authService/emailOtpChallenges.d.ts +2 -10
  208. package/dist/types/wallet-server/src/core/authService/emailOtpSeal.d.ts +1 -1
  209. package/dist/types/wallet-server/src/core/authService/emailOtpUnlock.d.ts +3 -10
  210. package/dist/types/wallet-server/src/core/d1EcdsaSignerRead.d.ts +39 -0
  211. package/dist/types/wallet-server/src/core/d1WalletStore.d.ts +10 -0
  212. package/dist/types/wallet-server/src/core/deviceLinking/linkedDeviceSessionRecord.d.ts +3 -4
  213. package/dist/types/wallet-server/src/core/ecdsaMaterialReadSnapshot.d.ts +19 -0
  214. package/dist/types/wallet-server/src/core/routerAbSigning/RouterAbNormalSigningRuntime.d.ts +3 -5
  215. package/dist/types/wallet-server/src/core/rpcClients/near/NearClient.d.ts +1 -2
  216. package/dist/types/wallet-server/src/core/signingLanes/WalletExecutionLaneProjection.d.ts +2 -11
  217. package/dist/types/wallet-server/src/core/signingLanes/signingWorkerLaneMaterialIdentity.d.ts +2 -19
  218. package/dist/types/wallet-server/src/core/thresholdEcdsaChainTarget.d.ts +3 -11
  219. package/dist/types/wallet-server/src/core/types.d.ts +2 -6
  220. package/dist/types/wallet-server/src/localIntendedMaterialAdmissionFault.d.ts +38 -0
  221. package/dist/types/wallet-server/src/localIntendedPresignCancellation.d.ts +4 -0
  222. package/dist/types/wallet-server/src/router/auth/authRequestValidation.d.ts +4 -9
  223. package/dist/types/wallet-server/src/router/auth/commonRouterUtils.d.ts +15 -1
  224. package/dist/types/wallet-server/src/router/cloudflare/d1/auth/d1RouterApiAuthBoundary.d.ts +0 -1
  225. package/dist/types/wallet-server/src/router/cloudflare/d1/auth/d1RouterApiAuthService.d.ts +1 -1
  226. package/dist/types/wallet-server/src/router/cloudflare/d1/auth/walletSessionCredentialReaders.d.ts +9 -0
  227. package/dist/types/wallet-server/src/router/cloudflare/d1/authorization/authorizedOperationStatements.d.ts +4 -0
  228. package/dist/types/wallet-server/src/router/cloudflare/d1/authorization/d1AuthorizationStore.d.ts +10 -1
  229. package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceAuthorityInstallService.d.ts +19 -2
  230. package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceSessionStore.d.ts +2 -6
  231. package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceTargetCredentialProvider.d.ts +5 -8
  232. package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpEnrollmentStore.d.ts +2 -8
  233. package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpRateLimitStore.d.ts +2 -9
  234. package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpRecords.d.ts +5 -5
  235. package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpServerSealRuntime.d.ts +4 -14
  236. package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1RegistrationCeremonyRecordStore.d.ts +2 -6
  237. package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1WalletRegistrationService.d.ts +8 -6
  238. package/dist/types/wallet-server/src/router/cloudflare/d1/signingAdmission/d1RouterAbNormalSigningAdmissionStore.d.ts +14 -1
  239. package/dist/types/wallet-server/src/router/cloudflare/d1/webauthn/d1WebAuthnRecords.d.ts +10 -39
  240. package/dist/types/wallet-server/src/router/cloudflare/runtime/walletConsoleOps.d.ts +8 -34
  241. package/dist/types/wallet-server/src/router/domains/ecdsa/thresholdEcdsaRequestValidation.d.ts +3 -15
  242. package/dist/types/wallet-server/src/router/domains/ed25519Yao/session/routerAbEd25519YaoWalletSession.d.ts +9 -50
  243. package/dist/types/wallet-server/src/router/domains/passkeyCustody/walletRecoveryKeyManifest.d.ts +1 -13
  244. package/dist/types/wallet-server/src/router/domains/signingOperations/routerAbEcdsaDerivationNormalSigningRoute.d.ts +8 -9
  245. package/dist/types/wallet-server/src/router/domains/signingOperations/routerAbNormalSigningAdmission.d.ts +13 -0
  246. package/dist/types/wallet-server/src/router/domains/signingOperations/routerAbOperationStepUp.d.ts +3 -4
  247. package/dist/types/wallet-server/src/router/domains/signingOperations/routerAbPrivateSigningWorker.d.ts +7 -16
  248. package/dist/types/wallet-server/src/router/domains/syncAccount/syncAccountRequestValidation.d.ts +2 -7
  249. package/dist/types/wallet-server/src/router/framework/apiCredentialPorts.d.ts +3 -1
  250. package/dist/types/wallet-server/src/router/framework/authServicePort.d.ts +25 -4
  251. package/dist/types/wallet-server/src/router/framework/http.d.ts +1 -0
  252. package/dist/types/wallet-server/src/router/framework/ror/normalize.d.ts +1 -9
  253. package/dist/types/wallet-server/src/router/transport/fetch/routes/deviceLinkingOwnerAuthorization.d.ts +3 -6
  254. package/dist/types/wallet-server/src/router/transport/fetch/routes/syncAccountBootstrap.d.ts +3 -5
  255. package/dist/types/wallet-server/src/router/transport/fetch/routes/thresholdEcdsa.d.ts +0 -1
  256. package/dist/types/wallet-server/src/threshold/session/signingSessionSeal/idempotencyRecords.d.ts +1 -2
  257. package/dist/types/wallet-server/src/threshold/session/signingSessionSeal/signingSessionSeal.types.d.ts +6 -8
  258. package/package.json +1 -1
  259. package/dist/esm/wasm/router_ab_ecdsa_signing_worker/pkg/router_ab_ecdsa_signing_worker_bg.wasm +0 -0
@@ -10,8 +10,8 @@
10
10
  * Stored on the authenticator row and returned by the authenticators listing
11
11
  * so profile UIs can label signers ("Chrome on macOS", "iCloud Keychain").
12
12
  */
13
- type WebAuthnDeviceBrowser = 'chrome' | 'safari' | 'firefox' | 'edge' | 'other';
14
- type WebAuthnDeviceOs = 'macos' | 'ios' | 'windows' | 'android' | 'linux' | 'other';
13
+ type WebAuthnDeviceBrowser = (typeof WEBAUTHN_DEVICE_BROWSERS)[number];
14
+ type WebAuthnDeviceOs = (typeof WEBAUTHN_DEVICE_OSES)[number];
15
15
  export type WebAuthnAuthenticatorDeviceInfo = {
16
16
  /** Display-ready label, e.g. "Chrome on macOS". Never empty. */
17
17
  label: string;
@@ -26,6 +26,8 @@ export type WebAuthnAuthenticatorDeviceInfo = {
26
26
  /** Display name for the provider, e.g. "iCloud Keychain". */
27
27
  providerLabel?: string;
28
28
  };
29
+ declare const WEBAUTHN_DEVICE_BROWSERS: readonly ["chrome", "safari", "firefox", "edge", "other"];
30
+ declare const WEBAUTHN_DEVICE_OSES: readonly ["macos", "ios", "windows", "android", "linux", "other"];
29
31
  export declare function deriveWebAuthnAuthenticatorDeviceInfo(input: {
30
32
  userAgent?: string;
31
33
  aaguid?: string;
@@ -1,4 +1,5 @@
1
1
  import type { RecoveryCodeReservationId } from './recoveryCodeReservation';
2
+ import type { ExclusiveUnion } from '../utils/variant';
2
3
  /**
3
4
  * Lifecycle of one recovery code.
4
5
  *
@@ -6,37 +7,23 @@ import type { RecoveryCodeReservationId } from './recoveryCodeReservation';
6
7
  * commits only after the replacement credential activates. See
7
8
  * `recoveryCodeReservation.ts` for the transitions between these states.
8
9
  */
9
- export type RecoveryCodeLifecycleState = {
10
+ export type RecoveryCodeLifecycleState = ExclusiveUnion<{
10
11
  state: 'active';
11
12
  issuedAtMs: number;
12
- reservationId?: never;
13
- reservedAtMs?: never;
14
- reservationExpiresAtMs?: never;
15
- consumedAtMs?: never;
16
- revokedAtMs?: never;
17
13
  } | {
18
14
  state: 'reserved';
19
15
  issuedAtMs: number;
20
16
  reservationId: RecoveryCodeReservationId;
21
17
  reservedAtMs: number;
22
18
  reservationExpiresAtMs: number;
23
- consumedAtMs?: never;
24
- revokedAtMs?: never;
25
19
  } | {
26
20
  state: 'consumed';
27
21
  issuedAtMs: number;
28
22
  reservationId: RecoveryCodeReservationId;
29
23
  consumedAtMs: number;
30
- reservedAtMs?: never;
31
- reservationExpiresAtMs?: never;
32
- revokedAtMs?: never;
33
24
  } | {
34
25
  state: 'revoked';
35
26
  issuedAtMs: number;
36
27
  revokedAtMs: number;
37
- reservationId?: never;
38
- reservedAtMs?: never;
39
- reservationExpiresAtMs?: never;
40
- consumedAtMs?: never;
41
- };
28
+ }>;
42
29
  //# sourceMappingURL=recoveryEnvelopes.d.ts.map
@@ -0,0 +1,15 @@
1
+ import type { RuntimePolicyScope } from '../threshold/signingRootScope';
2
+ import type { RouterAbEd25519YaoApplicationBindingFactsV1, RouterAbEd25519YaoBytes32V1, RouterAbEd25519YaoLifecycleScopeV1 } from '../utils/routerAbEd25519Yao';
3
+ export type WalletRecoveryPreparationNearRecoveryBasisV1 = {
4
+ readonly capabilityKind: 'registration' | 'recovery';
5
+ readonly activeCapabilityBinding: RouterAbEd25519YaoBytes32V1;
6
+ readonly scope: RouterAbEd25519YaoLifecycleScopeV1;
7
+ readonly applicationBinding: RouterAbEd25519YaoApplicationBindingFactsV1;
8
+ readonly participantIds: readonly [number, number];
9
+ readonly registeredPublicKey: RouterAbEd25519YaoBytes32V1;
10
+ readonly runtimePolicyScope: RuntimePolicyScope;
11
+ readonly activationTranscript: RouterAbEd25519YaoBytes32V1;
12
+ readonly activationStateEpoch: number;
13
+ readonly signingWorkerVerifyingShare: RouterAbEd25519YaoBytes32V1;
14
+ };
15
+ //# sourceMappingURL=walletRecoveryPreparation.d.ts.map
@@ -1,12 +1,11 @@
1
1
  import { type WebAuthnRpId } from '../utils/domainIds';
2
- export type WalletRecoveryTargetV1 = {
2
+ import type { ReadonlyExclusiveUnion } from '../utils/variant';
3
+ export type WalletRecoveryTargetV1 = ReadonlyExclusiveUnion<{
3
4
  readonly kind: 'passkey';
4
5
  readonly rpId: WebAuthnRpId;
5
- readonly googleProvider?: never;
6
6
  } | {
7
7
  readonly kind: 'google_email_otp';
8
8
  readonly googleProvider: 'google';
9
- readonly rpId?: never;
10
- };
9
+ }>;
11
10
  export declare function parseWalletRecoveryTargetV1(raw: unknown): WalletRecoveryTargetV1;
12
11
  //# sourceMappingURL=walletRecoveryTarget.d.ts.map
@@ -1,3 +1,4 @@
1
+ import type { Variant } from '../../../shared-ts/src/utils/variant';
1
2
  import type { ActiveWalletAuthMethodRecordV2, WalletAuthMethodRecordV2 } from '../../../shared-ts/src/utils/walletAuthMethodRecord';
2
3
  import { CAPABILITY_KINDS, EVM_ECDSA_MPC_OPERATION_KINDS, NEAR_ED25519_MPC_OPERATION_KINDS } from '../../../shared-ts/src/authorization/capabilityKinds';
3
4
  import type { CapabilityOperationRef, AuthorizationAuditEventId, AuthorizationGrantRef, AuthorizedOperationId, WalletSessionAuthorizationId, AuthorizationEvidenceId, AuthorizationEvidenceKind, HostedWalletSessionExchangeCodeId, MpcWalletSigningQuotaId, PrincipalId, WalletSessionMintId, TenantId, WalletSessionId } from '../../../shared-ts/src/authorization/capabilityKinds';
@@ -247,10 +248,20 @@ export type ExactWalletSessionStatusV2 = {
247
248
  * lands between separate reads cannot pair a session with a newer authority.
248
249
  */
249
250
  export type WalletSessionAdmissionSnapshotV2 = {
250
- readonly authorization: IssuedWalletSessionAuthorizationV2;
251
251
  readonly authority: WalletAuthorityV1 | null;
252
252
  readonly authMethod: WalletAuthMethodRecordV2 | null;
253
- };
253
+ } & ({
254
+ readonly kind: 'active';
255
+ readonly authorization: IssuedWalletSessionAuthorizationV2;
256
+ readonly session?: never;
257
+ readonly quota?: never;
258
+ } | {
259
+ readonly kind: 'exhausted';
260
+ readonly session: WalletSessionAuthorizationV2;
261
+ readonly quota: ExactWalletSessionQuotaProjectionV1;
262
+ readonly authorization?: never;
263
+ });
264
+ export type WalletSessionAdmissionSnapshotV2Variant<Kind extends WalletSessionAdmissionSnapshotV2['kind']> = Variant<WalletSessionAdmissionSnapshotV2, 'kind', Kind>;
254
265
  /** An exact status with the authority and auth method it was judged against. */
255
266
  export type ExactWalletSessionStatusSnapshotV2 = {
256
267
  readonly status: ExactWalletSessionStatusV2;
@@ -1,4 +1,6 @@
1
+ import type { EcdsaMaterialReadSnapshot } from '../core/ecdsaMaterialReadSnapshot';
1
2
  import type { CapabilityOperationEnvelope } from '../../../shared-ts/src/authorization/operationFingerprint';
3
+ import type { Variant } from '../../../shared-ts/src/utils/variant';
2
4
  import type { AuthorizedOperation, AuthorizedOperationInput } from './domain';
3
5
  import type { AuthorizedOperationAdmissionRejection, EcdsaMaterialActivationScope } from './service';
4
6
  export type EcdsaWalletSessionAdmissionInput = {
@@ -14,15 +16,17 @@ export type EcdsaWalletSessionAdmissionInput = {
14
16
  readonly kind: 'consume_reusable_wallet_session';
15
17
  };
16
18
  };
17
- readonly material: EcdsaMaterialActivationScope;
19
+ readonly material: EcdsaMaterialActivationScope & {
20
+ readonly readSnapshot: EcdsaMaterialReadSnapshot;
21
+ };
18
22
  };
19
23
  export type PinnedOwnerWalletScope = {
20
24
  readonly orgId: string;
21
25
  readonly projectId: string;
22
26
  readonly projectEnvironmentId: string;
23
27
  };
24
- export type EcdsaWalletSessionAdmission = {
25
- readonly kind: 'claimed' | 'operation_in_progress';
28
+ type EcdsaWalletSessionExistingOperation = {
29
+ readonly kind: 'operation_in_progress';
26
30
  readonly operation: AuthorizedOperation;
27
31
  readonly ownerScope: PinnedOwnerWalletScope;
28
32
  } | {
@@ -30,8 +34,28 @@ export type EcdsaWalletSessionAdmission = {
30
34
  readonly operation: AuthorizedOperation;
31
35
  readonly ownerScope?: never;
32
36
  };
37
+ type EcdsaWalletSessionAdmission = EcdsaWalletSessionExistingOperation | {
38
+ readonly kind: 'claimed';
39
+ readonly operation: AuthorizedOperation;
40
+ readonly ownerScope: PinnedOwnerWalletScope;
41
+ };
42
+ export type EcdsaWalletSessionAdmissionVariant<K extends EcdsaWalletSessionAdmission['kind']> = Variant<EcdsaWalletSessionAdmission, 'kind', K>;
43
+ export type EcdsaWalletSessionResolutionResult = EcdsaWalletSessionExistingOperation | ((AuthorizedOperationAdmissionRejection | {
44
+ readonly kind: 'authorized_operation_missing';
45
+ }) & {
46
+ readonly operation?: never;
47
+ readonly ownerScope?: never;
48
+ });
33
49
  export type EcdsaWalletSessionAdmissionResult = EcdsaWalletSessionAdmission | (AuthorizedOperationAdmissionRejection & {
34
50
  readonly operation?: never;
35
51
  readonly ownerScope?: never;
36
52
  });
53
+ export type EcdsaWalletSessionPhaseAdmission = {
54
+ readonly phase: 'prepare';
55
+ readonly admission: EcdsaWalletSessionAdmission;
56
+ } | {
57
+ readonly phase: 'finalize';
58
+ readonly admission: EcdsaWalletSessionExistingOperation;
59
+ };
60
+ export {};
37
61
  //# sourceMappingURL=ecdsaWalletSessionAdmission.d.ts.map
@@ -1,3 +1,5 @@
1
+ import type { D1EcdsaAdmissionPolicyRead } from '../router/cloudflare/d1/signingAdmission/d1RouterAbNormalSigningAdmissionStore';
2
+ import type { EcdsaMaterialRead } from '../core/d1EcdsaSignerRead';
1
3
  import type { D1PreparedStatementLike } from '../storage/tenantRoute';
2
4
  import type { WalletAuthMethodId, WalletId } from '../../../shared-ts/src/utils/domainIds';
3
5
  import type { ActiveWalletAuthorityV1 } from '../../../shared-ts/src/authorization/walletAuthority';
@@ -10,6 +12,11 @@ import type { DigestB64u } from '../../../shared-ts/src/utils/canonicalPrimitive
10
12
  import type { RouterAbMpcMaterialActivationRefWire } from '../../../shared-ts/src/utils/routerAbNormalSigningIdentity';
11
13
  import type { RuntimePolicyScope } from '../../../shared-ts/src/threshold/signingRootScope';
12
14
  import type { CapabilityOperationFingerprintDigest } from '../../../shared-ts/src/authorization/operationFingerprint';
15
+ export type EcdsaWalletSessionAdmissionRead = {
16
+ readonly snapshot: WalletSessionAdmissionSnapshotV2;
17
+ readonly materialRead: EcdsaMaterialRead;
18
+ readonly policyRead: D1EcdsaAdmissionPolicyRead;
19
+ };
13
20
  export interface AuthorizationSessionPort {
14
21
  putIssuedHostedWalletSeamsSessionExchange(exchange: IssuedHostedWalletSeamsSessionExchangeV2): Promise<void>;
15
22
  redeemHostedWalletSeamsSessionExchange(input: RedeemHostedWalletSeamsSessionExchangeV2Input): Promise<PersistedHostedWalletSeamsSessionExchangeV2Result>;
@@ -67,6 +74,12 @@ export interface AuthorizationGrantPort {
67
74
  readonly tokenHash: DigestB64u;
68
75
  readonly nowMs: number;
69
76
  }): Promise<WalletSessionAdmissionSnapshotV2 | null>;
77
+ readEcdsaWalletSessionAdmissionSnapshotByOperationCredential(input: {
78
+ readonly tenantId: TenantId;
79
+ readonly tokenHash: DigestB64u;
80
+ readonly nowMs: number;
81
+ readonly materialActivation: RouterAbMpcMaterialActivationRefWire;
82
+ }): Promise<EcdsaWalletSessionAdmissionRead | null>;
70
83
  readWalletSessionExactOperationContextByCredential(input: {
71
84
  readonly tenantId: TenantId;
72
85
  readonly tokenHash: DigestB64u;
@@ -260,6 +273,12 @@ export declare class AuthorizationService {
260
273
  readonly token: string;
261
274
  readonly nowMs: number;
262
275
  }): Promise<WalletSessionAdmissionSnapshotV2 | null>;
276
+ readEcdsaWalletSessionAdmissionSnapshotByOperationCredential(input: {
277
+ readonly tenantId: TenantId;
278
+ readonly token: string;
279
+ readonly nowMs: number;
280
+ readonly materialActivation: RouterAbMpcMaterialActivationRefWire;
281
+ }): Promise<EcdsaWalletSessionAdmissionRead | null>;
263
282
  readLiveWalletSessionAuthorizationProjectionByCredential(input: {
264
283
  readonly tenantId: TenantId;
265
284
  readonly token: string;
@@ -4,8 +4,8 @@ export type ThresholdEd25519Commitments = {
4
4
  hiding: string;
5
5
  binding: string;
6
6
  };
7
- type ThresholdEd25519CommitmentsById = Record<string, ThresholdEd25519Commitments>;
8
- type ThresholdEd25519SigningShareMaterial = {
7
+ export type ThresholdEd25519CommitmentsById = Record<string, ThresholdEd25519Commitments>;
8
+ export type ThresholdEd25519SigningShareMaterial = {
9
9
  kind: 'key_store';
10
10
  } | {
11
11
  kind: 'embedded_cosigner_share';
@@ -12,7 +12,7 @@ export type Ed25519WalletSessionRecord = {
12
12
  authorityScope: ThresholdEd25519AuthorityScope;
13
13
  participantIds: number[];
14
14
  } & Partial<ThresholdEcdsaSigningRootMetadata>;
15
- type EcdsaWalletSessionRecordCore = {
15
+ export type EcdsaWalletSessionRecordCore = {
16
16
  expiresAtMs: number;
17
17
  relayerKeyId: string;
18
18
  walletId: string;
@@ -0,0 +1,3 @@
1
+ export declare const EXPORT_REPLAY_GUARD_CLOCK_SKEW_MS: number;
2
+ export declare const EXPORT_REPLAY_GUARD_MIN_RETENTION_MS: number;
3
+ //# sourceMappingURL=exportReplayGuard.d.ts.map
@@ -1,12 +1,7 @@
1
1
  import { type WalletAuthAuthority } from '../../../../shared-ts/src/utils/walletAuthAuthority';
2
2
  import type { EcdsaDerivationPublicIdentity, ThresholdEd25519AuthorityScope } from '../types';
3
- import { type EcdsaKeyHandle } from '../keyMaterialBrands';
4
- type ParsedThresholdEcdsaSigningRootMetadata = {
5
- signingRootId: string;
6
- signingRootVersion?: string;
7
- walletKeyVersion: string;
8
- derivationVersion: number;
9
- };
3
+ import type { ThresholdEcdsaMpcSessionRecord, ThresholdEd25519CoordinatorSigningSessionRecord, ThresholdEd25519MpcSessionRecord, ThresholdEd25519SigningSessionRecord } from './stores/SessionStore';
4
+ import type { EcdsaWalletSessionRecord, Ed25519WalletSessionRecord } from './stores/WalletSessionStore';
10
5
  export declare function toPrefixWithColon(prefix: unknown, defaultPrefix: string): string;
11
6
  export declare function toThresholdEd25519KeyPrefix(prefix: unknown): string;
12
7
  export declare function toThresholdEd25519SessionPrefix(prefix: unknown): string;
@@ -33,102 +28,14 @@ type ParsedThresholdEd25519ReadyKeyRecord = {
33
28
  };
34
29
  export declare function parseThresholdEd25519KeyRecord(raw: unknown): ParsedThresholdEd25519ReadyKeyRecord | null;
35
30
  export declare function parseEcdsaDerivationPublicIdentity(raw: unknown): EcdsaDerivationPublicIdentity | null;
36
- type ParsedThresholdEd25519Commitments = {
37
- hiding: string;
38
- binding: string;
39
- };
40
- type ParsedThresholdEd25519CommitmentsById = Record<string, ParsedThresholdEd25519Commitments>;
41
31
  export declare function parseThresholdEd25519AuthorityScope(raw: unknown): ThresholdEd25519AuthorityScope | null;
42
32
  export declare function thresholdEd25519AuthorityScopeFromWalletAuthAuthority(authority: WalletAuthAuthority): ThresholdEd25519AuthorityScope;
43
33
  export declare function thresholdEd25519AuthorityScopesMatch(left: ThresholdEd25519AuthorityScope, right: ThresholdEd25519AuthorityScope): boolean;
44
- type ParsedThresholdEd25519MpcSessionRecord = {
45
- expiresAtMs: number;
46
- ecdsaThresholdKeyId?: string;
47
- keyHandle?: string;
48
- relayerKeyId: string;
49
- purpose: string;
50
- intentDigestB64u: string;
51
- signingDigestB64u: string;
52
- userId: string;
53
- authorityScope: ThresholdEd25519AuthorityScope;
54
- clientVerifyingShareB64u?: string;
55
- participantIds: number[];
56
- } & Partial<ParsedThresholdEcdsaSigningRootMetadata>;
57
- type ParsedThresholdEcdsaMpcSessionRecord = {
58
- expiresAtMs: number;
59
- ecdsaThresholdKeyId?: string;
60
- keyHandle?: string;
61
- relayerKeyId: string;
62
- purpose: string;
63
- intentDigestB64u: string;
64
- signingDigestB64u: string;
65
- walletId: string;
66
- clientVerifyingShareB64u?: string;
67
- participantIds: number[];
68
- } & Partial<ParsedThresholdEcdsaSigningRootMetadata>;
69
- export declare function parseThresholdEd25519MpcSessionRecord(raw: unknown): ParsedThresholdEd25519MpcSessionRecord | null;
70
- export declare function parseThresholdEcdsaMpcSessionRecord(raw: unknown): ParsedThresholdEcdsaMpcSessionRecord | null;
71
- type ParsedThresholdEd25519SigningShareMaterial = {
72
- kind: 'key_store';
73
- } | {
74
- kind: 'embedded_cosigner_share';
75
- relayerSigningShareB64u: string;
76
- };
77
- type ParsedThresholdEd25519SigningSessionRecord = {
78
- expiresAtMs: number;
79
- mpcSessionId: string;
80
- relayerKeyId: string;
81
- signingDigestB64u: string;
82
- userId: string;
83
- authorityScope: ThresholdEd25519AuthorityScope;
84
- commitmentsById: ParsedThresholdEd25519CommitmentsById;
85
- signingShare: ParsedThresholdEd25519SigningShareMaterial;
86
- relayerNoncesB64u: string;
87
- participantIds: number[];
88
- };
89
- export declare function parseThresholdEd25519SigningSessionRecord(raw: unknown): ParsedThresholdEd25519SigningSessionRecord | null;
90
- type ParsedThresholdEd25519StringById = Record<string, string>;
91
- type ParsedThresholdEd25519CoordinatorSigningSessionRecord = {
92
- mode: 'cosigner';
93
- expiresAtMs: number;
94
- mpcSessionId: string;
95
- relayerKeyId: string;
96
- signingDigestB64u: string;
97
- userId: string;
98
- authorityScope: ThresholdEd25519AuthorityScope;
99
- commitmentsById: ParsedThresholdEd25519CommitmentsById;
100
- participantIds: number[];
101
- groupPublicKey: string;
102
- cosignerIds: number[];
103
- cosignerRelayerUrlsById: ParsedThresholdEd25519StringById;
104
- cosignerCoordinatorGrantsById: ParsedThresholdEd25519StringById;
105
- relayerVerifyingSharesById: ParsedThresholdEd25519StringById;
106
- };
107
- export declare function parseThresholdEd25519CoordinatorSigningSessionRecord(raw: unknown): ParsedThresholdEd25519CoordinatorSigningSessionRecord | null;
108
- type ParsedEd25519WalletSessionRecord = {
109
- expiresAtMs: number;
110
- relayerKeyId: string;
111
- userId: string;
112
- walletId: string;
113
- nearAccountId: string;
114
- nearEd25519SigningKeyId: string;
115
- authorityScope: ThresholdEd25519AuthorityScope;
116
- participantIds: number[];
117
- } & Partial<ParsedThresholdEcdsaSigningRootMetadata>;
118
- export declare function parseEd25519WalletSessionRecord(raw: unknown): ParsedEd25519WalletSessionRecord | null;
119
- type ParsedEcdsaWalletSessionRecordCore = {
120
- expiresAtMs: number;
121
- relayerKeyId: string;
122
- walletId: string;
123
- keyHandle: EcdsaKeyHandle;
124
- participantIds: number[];
125
- };
126
- type ParsedEcdsaWalletSessionRecord = ParsedEcdsaWalletSessionRecordCore & ({
127
- signingRootId?: never;
128
- signingRootVersion?: never;
129
- walletKeyVersion?: never;
130
- derivationVersion?: never;
131
- } | ParsedThresholdEcdsaSigningRootMetadata);
132
- export declare function parseEcdsaWalletSessionRecord(raw: unknown): ParsedEcdsaWalletSessionRecord | null;
34
+ export declare function parseThresholdEd25519MpcSessionRecord(raw: unknown): ThresholdEd25519MpcSessionRecord | null;
35
+ export declare function parseThresholdEcdsaMpcSessionRecord(raw: unknown): ThresholdEcdsaMpcSessionRecord | null;
36
+ export declare function parseThresholdEd25519SigningSessionRecord(raw: unknown): ThresholdEd25519SigningSessionRecord | null;
37
+ export declare function parseThresholdEd25519CoordinatorSigningSessionRecord(raw: unknown): ThresholdEd25519CoordinatorSigningSessionRecord | null;
38
+ export declare function parseEd25519WalletSessionRecord(raw: unknown): Ed25519WalletSessionRecord | null;
39
+ export declare function parseEcdsaWalletSessionRecord(raw: unknown): EcdsaWalletSessionRecord | null;
133
40
  export {};
134
41
  //# sourceMappingURL=validation.d.ts.map
@@ -30,6 +30,14 @@ export interface D1WebAuthnAuthenticatorStoreSchemaOptions extends D1SchemaOptio
30
30
  }
31
31
  export interface D1WebAuthnAuthenticatorStoreOptions extends D1TenantStoreOptions {
32
32
  }
33
+ export type D1WebAuthnAuthenticatorRow = {
34
+ readonly credential_id_b64u?: unknown;
35
+ readonly credential_public_key_b64u?: unknown;
36
+ readonly counter?: unknown;
37
+ readonly created_at_ms?: unknown;
38
+ readonly updated_at_ms?: unknown;
39
+ readonly device_info_json?: unknown;
40
+ };
33
41
  export declare const WEBAUTHN_AUTHENTICATOR_STORE_D1_SCHEMA_SQL: readonly ["\n CREATE TABLE IF NOT EXISTS webauthn_authenticators (\n namespace TEXT NOT NULL,\n org_id TEXT NOT NULL,\n project_id TEXT NOT NULL,\n env_id TEXT NOT NULL,\n user_id TEXT NOT NULL,\n credential_id_b64u TEXT NOT NULL,\n credential_public_key_b64u TEXT NOT NULL,\n counter INTEGER NOT NULL,\n created_at_ms INTEGER NOT NULL,\n updated_at_ms INTEGER NOT NULL,\n device_info_json TEXT NOT NULL DEFAULT '{}',\n PRIMARY KEY (namespace, org_id, project_id, env_id, user_id, credential_id_b64u),\n CHECK (length(user_id) > 0),\n CHECK (length(credential_id_b64u) > 0),\n CHECK (length(credential_public_key_b64u) > 0),\n CHECK (counter >= 0),\n CHECK (created_at_ms > 0),\n CHECK (updated_at_ms > 0)\n )\n ", "\n CREATE INDEX IF NOT EXISTS webauthn_authenticators_user_idx\n ON webauthn_authenticators (\n namespace,\n org_id,\n project_id,\n env_id,\n user_id,\n created_at_ms\n )\n "];
34
42
  export declare function ensureWebAuthnAuthenticatorStoreD1Schema(options: D1WebAuthnAuthenticatorStoreSchemaOptions): Promise<void>;
35
43
  export declare function resolveWebAuthnAuthenticatorStoreNamespace(config: Record<string, unknown>): string;
@@ -1,4 +1,3 @@
1
1
  export declare function randomBase64Url(bytes: number): string;
2
- export declare function randomOpaqueId(byteLength?: number): string;
3
2
  export declare function randomNumericCode(length: number): string;
4
3
  //# sourceMappingURL=bytes.d.ts.map
@@ -1,6 +1,6 @@
1
1
  import type { EmailOtpChallengeAction, EmailOtpChallengeOperation, EmailOtpChallengeRecord, EmailOtpChallengeStore, EmailOtpChannel, EmailOtpWalletEnrollmentRecord } from '../EmailOtpStores';
2
2
  import { type EmailOtpConfig } from './emailOtpConfig';
3
- import type { EmailOtpAuthStateReadResult } from './emailOtpEnrollment';
3
+ import type { EmailOtpAuthStateReadResult, EmailOtpEnrollmentReadResult } from './emailOtpEnrollment';
4
4
  import type { EmailOtpDeliveryResult, EmailOtpMemoryOutbox } from './emailOtpDelivery';
5
5
  import type { RateLimitResult } from './rateLimits';
6
6
  type PruneExpiredEmailOtpChallengesInput = {
@@ -48,14 +48,6 @@ export type CreateEmailOtpChallengeWithActionResult = {
48
48
  retryAfterMs?: number;
49
49
  resetAtMs?: number;
50
50
  };
51
- type EmailOtpChallengeEnrollmentReadResult = {
52
- ok: true;
53
- enrollment: EmailOtpWalletEnrollmentRecord;
54
- } | {
55
- ok: false;
56
- code: string;
57
- message: string;
58
- };
59
51
  type EmailOtpChallengeRateLimitConsumer = (input: {
60
52
  scope: 'challenge';
61
53
  action: EmailOtpChallengeAction;
@@ -82,7 +74,7 @@ type CreateEmailOtpChallengeWithActionInput = {
82
74
  readActiveEnrollment: (input: {
83
75
  walletId: string;
84
76
  orgId: string;
85
- }) => Promise<EmailOtpChallengeEnrollmentReadResult>;
77
+ }) => Promise<EmailOtpEnrollmentReadResult>;
86
78
  readEnrollmentAuthState: (enrollment: EmailOtpWalletEnrollmentRecord) => Promise<EmailOtpAuthStateReadResult>;
87
79
  consumeRateLimit: EmailOtpChallengeRateLimitConsumer;
88
80
  resolveConfig: () => EmailOtpConfig;
@@ -4,7 +4,7 @@ type EmailOtpShamirCipherConfig = {
4
4
  readonly currentKeyVersion: string;
5
5
  readonly acceptedWarmKeyVersions: readonly string[];
6
6
  };
7
- type EmailOtpShamirCipherResult = {
7
+ export type EmailOtpShamirCipherResult = {
8
8
  readonly ok: true;
9
9
  readonly keyVersion: string;
10
10
  readonly cipher: SigningSessionSealCipherAdapter;
@@ -1,12 +1,5 @@
1
1
  import type { EmailOtpAuthStateRecord, EmailOtpUnlockChallengeStore, EmailOtpWalletEnrollmentRecord } from '../EmailOtpStores';
2
- type EmailOtpUnlockEnrollmentReadResult = {
3
- ok: true;
4
- enrollment: EmailOtpWalletEnrollmentRecord;
5
- } | {
6
- ok: false;
7
- code: string;
8
- message: string;
9
- };
2
+ import type { EmailOtpEnrollmentReadResult } from './emailOtpEnrollment';
10
3
  type CreateEmailOtpUnlockChallengeRequest = {
11
4
  walletId?: unknown;
12
5
  orgId?: unknown;
@@ -54,7 +47,7 @@ export type CreateEmailOtpUnlockChallengeInput = {
54
47
  readActiveEnrollment: (input: {
55
48
  walletId: string;
56
49
  orgId: string | undefined;
57
- }) => Promise<EmailOtpUnlockEnrollmentReadResult>;
50
+ }) => Promise<EmailOtpEnrollmentReadResult>;
58
51
  };
59
52
  export type VerifyEmailOtpUnlockProofInput = {
60
53
  request: VerifyEmailOtpUnlockProofRequest;
@@ -62,7 +55,7 @@ export type VerifyEmailOtpUnlockProofInput = {
62
55
  readActiveEnrollment: (input: {
63
56
  walletId: string;
64
57
  orgId: string | undefined;
65
- }) => Promise<EmailOtpUnlockEnrollmentReadResult>;
58
+ }) => Promise<EmailOtpEnrollmentReadResult>;
66
59
  putAuthStateForEnrollment: (enrollment: EmailOtpWalletEnrollmentRecord, patch: Pick<EmailOtpAuthStateRecord, 'lastEmailOtpLoginAtMs'>) => Promise<EmailOtpAuthStateRecord>;
67
60
  };
68
61
  export declare function createEmailOtpUnlockChallenge(input: CreateEmailOtpUnlockChallengeInput): Promise<CreateEmailOtpUnlockChallengeResult>;
@@ -0,0 +1,39 @@
1
+ import type { InstalledEcdsaCustodySnapshotV1 } from '../router/cloudflare/d1/deviceLinking/d1LinkedDeviceAuthorityInstallService';
2
+ import { type RouterAbMpcMaterialActivationRefWire } from '../../../shared-ts/src/utils/routerAbNormalSigningIdentity';
3
+ import { EcdsaMaterialReadSnapshot } from './ecdsaMaterialReadSnapshot';
4
+ import type { WalletId } from '../../../shared-ts/src/utils/domainIds';
5
+ import type { D1WalletStoreScope } from './d1WalletStore';
6
+ import { type WalletEcdsaSignerRecord } from './WalletStore';
7
+ import type { D1DatabaseLike, D1PreparedStatementLike } from '../storage/tenantRoute';
8
+ export declare function prepareWalletEcdsaSignersRead(database: D1DatabaseLike, scope: D1WalletStoreScope, walletId: WalletId): D1PreparedStatementLike;
9
+ export declare function parseWalletEcdsaSignerRows(rows: readonly Readonly<Record<string, unknown>>[], walletId: WalletId): readonly WalletEcdsaSignerRecord[];
10
+ /** Parsed persistence evidence; material failures are surfaced after session validation. */
11
+ export declare class EcdsaMaterialRead {
12
+ #private;
13
+ readonly walletId: WalletId;
14
+ private readonly scope;
15
+ private readonly activation;
16
+ private readonly linkedSnapshot;
17
+ private constructor();
18
+ static fromRows(scope: D1WalletStoreScope, walletId: WalletId, activation: RouterAbMpcMaterialActivationRefWire, rows: unknown, linkedSnapshot: InstalledEcdsaCustodySnapshotV1 | null): EcdsaMaterialRead;
19
+ resolveLinked(scope: D1WalletStoreScope, walletId: WalletId, activation: RouterAbMpcMaterialActivationRefWire): InstalledEcdsaCustodySnapshotV1 | null;
20
+ resolve(scope: D1WalletStoreScope, walletId: WalletId, activation: RouterAbMpcMaterialActivationRefWire): CanonicalMaterialSnapshot | null;
21
+ }
22
+ type CanonicalMaterialSnapshot = {
23
+ readonly signer: WalletEcdsaSignerRecord;
24
+ readonly readSnapshot: EcdsaMaterialReadSnapshot;
25
+ };
26
+ export type EcdsaMaterialReadSource = {
27
+ readonly kind: 'database';
28
+ readonly materialRead?: never;
29
+ } | {
30
+ readonly kind: 'credential_snapshot';
31
+ readonly materialRead: EcdsaMaterialRead;
32
+ };
33
+ export type EcdsaMaterialActivationReadInput = {
34
+ readonly walletId: string;
35
+ readonly materialActivation: RouterAbMpcMaterialActivationRefWire;
36
+ readonly source: EcdsaMaterialReadSource;
37
+ };
38
+ export {};
39
+ //# sourceMappingURL=d1EcdsaSignerRead.d.ts.map
@@ -1,3 +1,5 @@
1
+ import type { EcdsaMaterialReadSnapshot } from './ecdsaMaterialReadSnapshot';
2
+ import { type EcdsaMaterialReadSource } from './d1EcdsaSignerRead';
1
3
  import type { D1DatabaseLike, D1PreparedStatementLike } from '../storage/tenantRoute';
2
4
  import type { WalletId, WalletRegistrationEcdsaWalletKey } from './registrationContracts';
3
5
  import { type ThresholdEcdsaChainTarget } from './thresholdEcdsaChainTarget';
@@ -71,6 +73,14 @@ export declare class D1WalletStore implements WalletStore {
71
73
  walletId: WalletId;
72
74
  materialActivation: RouterAbMpcMaterialActivationRefWire;
73
75
  }): Promise<WalletEcdsaSignerRecord | null>;
76
+ readEcdsaSignerMaterialSnapshot(input: {
77
+ readonly source: EcdsaMaterialReadSource;
78
+ walletId: WalletId;
79
+ materialActivation: RouterAbMpcMaterialActivationRefWire;
80
+ }): Promise<{
81
+ readonly signer: WalletEcdsaSignerRecord;
82
+ readonly readSnapshot: EcdsaMaterialReadSnapshot;
83
+ } | null>;
74
84
  getEcdsaSignerByPostRegistrationRequest(input: {
75
85
  walletId: WalletId;
76
86
  request: WalletEcdsaPostRegistrationPublicRequest;
@@ -4,20 +4,19 @@ import { type DigestB64u } from '../../../../shared-ts/src/utils/canonicalPrimit
4
4
  import { type DomainIdParseResult, type WalletAuthorityId } from '../../../../shared-ts/src/utils/domainIds';
5
5
  import { type LinkDeviceSessionId } from '../../../../shared-ts/src/signing-lanes/ids';
6
6
  import { type ExactAdministeredSignerV1, type ExactAdministeredSignerManifestV1 } from '../../../../shared-ts/src/device-linking/delegatedActivationPlan';
7
+ import type { ReadonlyExclusiveUnion } from '../../../../shared-ts/src/utils/variant';
7
8
  type LinkedDeviceClaimTranscriptV1 = {
8
9
  readonly digestB64u: DigestB64u;
9
10
  readonly value: LinkedDeviceClaimV1;
10
11
  };
11
- export type LinkedDeviceSourceKeyManifestDigestsV1 = {
12
+ export type LinkedDeviceSourceKeyManifestDigestsV1 = ReadonlyExclusiveUnion<{
12
13
  readonly ed25519: DigestB64u;
13
- readonly ecdsa_secp256k1?: never;
14
14
  } | {
15
- readonly ed25519?: never;
16
15
  readonly ecdsa_secp256k1: DigestB64u;
17
16
  } | {
18
17
  readonly ed25519: DigestB64u;
19
18
  readonly ecdsa_secp256k1: DigestB64u;
20
- };
19
+ }>;
21
20
  type LinkedDeviceApprovalTranscriptV1 = {
22
21
  readonly digestB64u: DigestB64u;
23
22
  readonly value: LinkedDeviceApprovalV1;
@@ -0,0 +1,19 @@
1
+ import type { WalletId } from '../../../shared-ts/src/utils/domainIds';
2
+ import type { D1WalletStoreScope } from './d1WalletStore';
3
+ export declare const ECDSA_INSTALLATION_SNAPSHOT_COLUMNS: readonly ["link_session_id", "authority_id", "wallet_id", "auth_method_id", "device_id", "package_set_digest_b64u", "target_factor_verification_digest_b64u", "target_factor_verified_at_ms", "source_manifest_digest_b64u", "delivery_recipient_public_key_b64u", "packages_json", "server_reservation_ids_json", "installed_record_set_digest_b64u", "activated_at_ms"];
4
+ type SqlCondition = {
5
+ readonly sql: string;
6
+ readonly bindings: readonly unknown[];
7
+ };
8
+ type StoredRow = Readonly<Record<string, unknown>>;
9
+ /** Request-local evidence of the exact records a material resolver examined. */
10
+ export declare class EcdsaMaterialReadSnapshot {
11
+ #private;
12
+ readonly walletId: WalletId;
13
+ private constructor();
14
+ static canonical(scope: D1WalletStoreScope, walletId: WalletId, activationId: string, rows: readonly StoredRow[]): EcdsaMaterialReadSnapshot;
15
+ static linked(scope: D1WalletStoreScope, walletId: WalletId, installations: readonly StoredRow[], signers: readonly StoredRow[]): EcdsaMaterialReadSnapshot;
16
+ condition(scope: D1WalletStoreScope): SqlCondition;
17
+ }
18
+ export {};
19
+ //# sourceMappingURL=ecdsaMaterialReadSnapshot.d.ts.map
@@ -2,7 +2,8 @@ import type { RouterAbEd25519NormalSigningState } from '../../../../shared-ts/sr
2
2
  import type { MpcMaterialActivationId } from '../../../../shared-ts/src/utils/domainIds';
3
3
  import { type ParseResult, type RouterAbNormalSigningServerPolicy } from '../ThresholdService/routerAbNormalSigningPolicy';
4
4
  import type { Ed25519WalletSessionStore, EcdsaWalletSessionStore } from '../ThresholdService/stores/WalletSessionStore';
5
- export type RouterAbSigningWorkerPrivateTransport = {
5
+ import type { ReadonlyExclusiveUnion } from '../../../../shared-ts/src/utils/variant';
6
+ export type RouterAbSigningWorkerPrivateTransport = ReadonlyExclusiveUnion<{
6
7
  readonly kind: 'configured';
7
8
  readonly signingWorkerBaseUrl: string;
8
9
  readonly auth: {
@@ -12,10 +13,7 @@ export type RouterAbSigningWorkerPrivateTransport = {
12
13
  readonly fetchImpl?: typeof fetch;
13
14
  } | {
14
15
  readonly kind: 'unconfigured';
15
- readonly signingWorkerBaseUrl?: never;
16
- readonly auth?: never;
17
- readonly fetchImpl?: never;
18
- };
16
+ }>;
19
17
  export type RouterAbConfiguredSigningWorkerPrivateTransport = Extract<RouterAbSigningWorkerPrivateTransport, {
20
18
  readonly kind: 'configured';
21
19
  }>;
@@ -1,9 +1,8 @@
1
1
  import type { JsonRpcErrorDetails } from '../../../../../shared-ts/src/utils/jsonRpc';
2
- import type { DecodedNearFinalExecutionOutcome } from '../../../../../shared-ts/src/utils/nearRpcResults';
2
+ import type { DecodedNearFinalExecutionOutcome, NearRpcErrorType } from '../../../../../shared-ts/src/utils/nearRpcResults';
3
3
  import { NearJsonRpcClient } from '../../../../../shared-ts/src/near/nearClient';
4
4
  export type { AccessKeyList } from '@near-js/types';
5
5
  export { SignedTransaction, type NearClient } from '../../../../../shared-ts/src/near/nearClient';
6
- type NearRpcErrorType = 'InvalidTxError' | 'ActionError' | 'TxExecutionError' | 'RpcError' | 'Failure' | 'Unknown';
7
6
  type NearRpcFailureKind = 'transaction_not_found' | 'account_not_found' | 'access_key_not_found' | 'invalid_nonce' | 'expired' | 'invalid_transaction' | 'action_error' | 'execution_failure' | 'infrastructure_failure' | 'unknown';
8
7
  export declare class NearRpcError extends Error {
9
8
  code?: number;