@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
@@ -6,31 +6,18 @@ import { type ActiveWalletAuthMethodRecordV2 } from '../../../../../../shared-ts
6
6
  import { type RecoveryCodeReservationId } from '../../../../../../shared-ts/src/wallet-recovery/recoveryCodeReservation';
7
7
  import { type WebAuthnAuthenticatorDeviceInfo } from '../../../../../../shared-ts/src/utils/webauthnDeviceInfo';
8
8
  import type { WebAuthnCredentialBindingRecord as CoreWebAuthnCredentialBindingRecord } from '../../../../core/WebAuthnCredentialBindingStore';
9
- export type D1AuthenticatorRow = {
10
- readonly credential_id_b64u?: unknown;
11
- readonly credential_public_key_b64u?: unknown;
12
- readonly counter?: unknown;
13
- readonly created_at_ms?: unknown;
14
- readonly updated_at_ms?: unknown;
15
- readonly device_info_json?: unknown;
16
- };
9
+ import type { D1WebAuthnAuthenticatorRow } from '../../../../core/WebAuthnAuthenticatorStore';
10
+ import type { WebAuthnLoginChallengeRecord as CoreWebAuthnLoginChallengeRecord } from '../../../../core/WebAuthnLoginChallengeStore';
11
+ import type { WebAuthnSyncChallengeRecord as CoreWebAuthnSyncChallengeRecord } from '../../../../core/WebAuthnSyncChallengeStore';
12
+ import type { NearPublicKeyAuthBinding } from '../../../../core/NearPublicKeyStore';
13
+ import type { ResolvedEd25519WalletBinding } from '../../../../core/authService/webauthnWalletBinding';
14
+ export type D1AuthenticatorRow = D1WebAuthnAuthenticatorRow;
17
15
  export type D1RecordJsonRow = {
18
16
  readonly record_json?: unknown;
19
17
  };
20
18
  export type WebAuthnCredentialBindingRecord = CoreWebAuthnCredentialBindingRecord;
21
- export type WebAuthnSyncWalletBinding = {
22
- readonly walletId: string;
23
- readonly nearAccountId: string;
24
- readonly nearEd25519SigningKeyId: string;
25
- readonly rpId: string;
26
- readonly credentialIdB64u: string;
27
- readonly signerSlot: number;
28
- };
29
- export type NearPublicKeyAuthBinding = {
30
- readonly kind: 'passkey';
31
- readonly rpId: WebAuthnRpId;
32
- readonly credentialIdB64u: string;
33
- };
19
+ export type WebAuthnSyncWalletBinding = Readonly<ResolvedEd25519WalletBinding>;
20
+ export type { NearPublicKeyAuthBinding };
34
21
  export type NearPublicKeyRecord = {
35
22
  readonly publicKey: string;
36
23
  readonly kind: 'threshold' | 'local' | 'backup' | 'ephemeral';
@@ -50,24 +37,8 @@ export type WebAuthnAuthenticatorRecord = {
50
37
  readonly deviceInfo: WebAuthnAuthenticatorDeviceInfo;
51
38
  };
52
39
  export declare function parseWebAuthnAuthenticatorRowDeviceInfo(raw: unknown): WebAuthnAuthenticatorDeviceInfo;
53
- export type WebAuthnLoginChallengeRecord = {
54
- readonly version: 'webauthn_login_challenge_v1';
55
- readonly challengeId: string;
56
- readonly userId: string;
57
- readonly rpId: string;
58
- readonly challengeB64u: string;
59
- readonly createdAtMs: number;
60
- readonly expiresAtMs: number;
61
- };
62
- export type WebAuthnSyncChallengeRecord = {
63
- readonly version: 'webauthn_sync_challenge_v1';
64
- readonly challengeId: string;
65
- readonly rpId: string;
66
- readonly expectedUserId?: string;
67
- readonly challengeB64u: string;
68
- readonly createdAtMs: number;
69
- readonly expiresAtMs: number;
70
- };
40
+ export type WebAuthnLoginChallengeRecord = Readonly<CoreWebAuthnLoginChallengeRecord>;
41
+ export type WebAuthnSyncChallengeRecord = Readonly<CoreWebAuthnSyncChallengeRecord>;
71
42
  /**
72
43
  * The exact continuity snapshot selected by prepare. The snapshot is stored
73
44
  * inside the one-shot challenge so finalization cannot silently switch to a
@@ -1,5 +1,6 @@
1
1
  import type { TenantRootIdentityFieldV1, TenantRootIdentityWireV1 } from '../../../../../shared-ts/src/tenant-root';
2
- import type { RouterApiCredentialScope } from '../../framework/apiCredentialPorts';
2
+ import type { RouterApiCredentialScope, RouterApiKeyAuthRequest, RouterApiProjectEnvironment, RouterApiPublishableKeyAuthRequest, RouterApiUsageMeterEvent } from '../../framework/apiCredentialPorts';
3
+ import type { ReadonlyExclusiveUnion } from '../../../../../shared-ts/src/utils/variant';
3
4
  export declare const WALLET_CONSOLE_OPS_BASE_PATH_V1 = "/internal/wallet-console/v1";
4
5
  export declare const WALLET_CONSOLE_SERVICE_ORIGIN_V1 = "https://wallet-console.internal";
5
6
  export declare const WALLET_CONSOLE_OP_PATHS_V1: {
@@ -9,12 +10,7 @@ export declare const WALLET_CONSOLE_OP_PATHS_V1: {
9
10
  readonly projectEnvironments: "/internal/wallet-console/v1/project-environments";
10
11
  readonly tenantRootActiveLineage: "/internal/wallet-console/v1/tenant-root/active-lineage";
11
12
  };
12
- export interface WalletConsoleSecretKeyAuthRequestV1 {
13
- readonly secret: string;
14
- readonly endpoint: string;
15
- readonly requiredScopes: RouterApiCredentialScope[];
16
- readonly sourceIp?: string;
17
- readonly environmentId?: string;
13
+ export interface WalletConsoleSecretKeyAuthRequestV1 extends Readonly<RouterApiKeyAuthRequest> {
18
14
  }
19
15
  export interface WalletConsolePrincipalV1 {
20
16
  readonly apiKeyId: string;
@@ -33,23 +29,10 @@ export type WalletConsoleSecretKeyAuthResponseV1 = {
33
29
  readonly code: string;
34
30
  readonly message: string;
35
31
  };
36
- export interface WalletConsolePublishableKeyAuthRequestV1 {
37
- readonly secret: string;
38
- readonly origin: string;
39
- readonly environmentId: string;
32
+ export interface WalletConsolePublishableKeyAuthRequestV1 extends Readonly<RouterApiPublishableKeyAuthRequest> {
40
33
  }
41
34
  export type WalletConsolePublishableKeyAuthResponseV1 = WalletConsoleSecretKeyAuthResponseV1;
42
- export interface WalletConsoleUsageEventV1 {
43
- readonly orgId: string;
44
- readonly environmentId: string;
45
- readonly apiKeyId: string;
46
- readonly endpoint: string;
47
- readonly walletId: string;
48
- readonly action: 'wallet_created';
49
- readonly succeeded: boolean;
50
- readonly occurredAt?: string;
51
- /** Producer-owned idempotency key; replays with the same id must not double-count. */
52
- readonly sourceEventId?: string;
35
+ export interface WalletConsoleUsageEventV1 extends Readonly<RouterApiUsageMeterEvent> {
53
36
  }
54
37
  export interface WalletConsoleUsageEventsResponseV1 {
55
38
  readonly ok: boolean;
@@ -68,12 +51,7 @@ export interface WalletConsoleProjectEnvironmentsRequestV1 {
68
51
  readonly status?: string;
69
52
  };
70
53
  }
71
- export interface WalletConsoleProjectEnvironmentV1 {
72
- readonly id: string;
73
- readonly projectId: string;
74
- readonly key: string;
75
- readonly signingRootVersion: string;
76
- readonly status?: string;
54
+ export interface WalletConsoleProjectEnvironmentV1 extends Readonly<RouterApiProjectEnvironment> {
77
55
  }
78
56
  export interface WalletConsoleProjectEnvironmentsResponseV1 {
79
57
  readonly ok: boolean;
@@ -87,19 +65,15 @@ export interface WalletConsoleTenantRootActiveLineageV1 {
87
65
  readonly identityDigestB64u: string;
88
66
  readonly custodyLineageB64u: string;
89
67
  }
90
- export type WalletConsoleTenantRootActiveLineageResponseV1 = {
68
+ export type WalletConsoleTenantRootActiveLineageResponseV1 = ReadonlyExclusiveUnion<{
91
69
  readonly ok: true;
92
70
  readonly identityDigestB64u: string;
93
71
  readonly custodyLineageB64u: string;
94
- readonly code?: never;
95
- readonly message?: never;
96
72
  } | {
97
73
  readonly ok: false;
98
74
  readonly code: 'invalid_body' | 'tenant_root_active_lineage_not_found';
99
75
  readonly message: string;
100
- readonly identityDigestB64u?: never;
101
- readonly custodyLineageB64u?: never;
102
- };
76
+ }>;
103
77
  export type WalletConsoleDecodeResult<T, E> = {
104
78
  readonly ok: true;
105
79
  readonly value: T;
@@ -1,5 +1,4 @@
1
- import { type RouterAbEcdsaOperationStepUpPreparationV1Wire } from '../../../../../shared-ts/src/utils/routerAbEcdsaDerivation';
2
- import { type RouterAbNormalSigningAuthorizationWire } from '../../../../../shared-ts/src/utils/routerAbNormalSigningIdentity';
1
+ import { type RouterAbEcdsaDerivationPoolFillAuthorization } from '../../../../../shared-ts/src/utils/routerAbNormalSigningIdentity';
3
2
  import type { RouterAbEcdsaDerivationPoolFillInitRequest, RouterAbEcdsaDerivationPoolFillStepRequest } from '../../../core/types';
4
3
  type ThresholdEcdsaRouteErrorBody = {
5
4
  ok: false;
@@ -13,19 +12,8 @@ type ThresholdEcdsaRouteParseResult<T> = {
13
12
  ok: false;
14
13
  body: ThresholdEcdsaRouteErrorBody;
15
14
  };
16
- type RouterAbEcdsaPoolFillAuthorization = {
17
- readonly authorization: Extract<RouterAbNormalSigningAuthorizationWire, {
18
- readonly kind: 'reusable_wallet_session';
19
- }>;
20
- readonly operation?: never;
21
- } | {
22
- readonly authorization: Extract<RouterAbNormalSigningAuthorizationWire, {
23
- readonly kind: 'operation_step_up';
24
- }>;
25
- readonly operation: RouterAbEcdsaOperationStepUpPreparationV1Wire;
26
- };
27
- export type RouterAbEcdsaPoolFillInitRouteRequest = RouterAbEcdsaDerivationPoolFillInitRequest & RouterAbEcdsaPoolFillAuthorization;
28
- export type RouterAbEcdsaPoolFillStepRouteRequest = RouterAbEcdsaDerivationPoolFillStepRequest & RouterAbEcdsaPoolFillAuthorization;
15
+ export type RouterAbEcdsaPoolFillInitRouteRequest = RouterAbEcdsaDerivationPoolFillInitRequest & RouterAbEcdsaDerivationPoolFillAuthorization;
16
+ export type RouterAbEcdsaPoolFillStepRouteRequest = RouterAbEcdsaDerivationPoolFillStepRequest & RouterAbEcdsaDerivationPoolFillAuthorization;
29
17
  export declare function parseRouterAbEcdsaDerivationPoolFillInitRouteRequest(raw: unknown): ThresholdEcdsaRouteParseResult<RouterAbEcdsaPoolFillInitRouteRequest>;
30
18
  export declare function parseRouterAbEcdsaDerivationPoolFillStepRouteRequest(raw: unknown): ThresholdEcdsaRouteParseResult<RouterAbEcdsaPoolFillStepRouteRequest>;
31
19
  export {};
@@ -5,9 +5,11 @@ import type { WebAuthnAuthenticationCredential } from '../../../../core/types';
5
5
  import { thresholdEd25519AuthorityScopeFromWalletAuthAuthority } from '../../../../core/ThresholdService/validation';
6
6
  import type { WalletRegistrationEd25519YaoBootstrapSession } from '../../../../../../shared-ts/src/utils/registrationContracts';
7
7
  import type { RouterAbEd25519YaoActiveCapabilityDescriptorV1 } from '../recovery/routerAbEd25519YaoRecovery';
8
- import type { MpcWalletSigningQuotaId, WalletSessionMintId, WalletSessionAuthorizationId, WalletSessionId } from '../../../../../../shared-ts/src/authorization/capabilityKinds';
8
+ import type { MpcWalletSigningQuotaId, WalletSessionAuthorizationId, WalletSessionId } from '../../../../../../shared-ts/src/authorization/capabilityKinds';
9
+ import type { WalletSessionAlreadyCommittedResponseV1, WalletSessionRejectionV1 } from '../../../../../../shared-ts/src/authorization/walletSessionIssuance';
9
10
  import type { WalletSessionOperationCredentialV1 } from '../../../../../../shared-ts/src/device-linking';
10
- import type { ThresholdEd25519SessionId, WalletAuthMethodId, WalletAuthorityId, WalletId } from '../../../../../../shared-ts/src/utils/domainIds';
11
+ import type { ThresholdEd25519SessionId } from '../../../../../../shared-ts/src/utils/domainIds';
12
+ import type { RouterAbEd25519OperationStepUpMaterialRecoveryRequest, RouterAbEd25519OperationStepUpMaterialRecoveryResponse } from '../../../../../../shared-ts/src/utils/routerAbNormalSigningIdentity';
11
13
  import type { VerifiedOwnerProof } from '../../../../authorization/factorEvidence';
12
14
  export type RouterAbEd25519YaoSessionPolicyV1 = {
13
15
  readonly version: 'threshold_session_v1';
@@ -35,23 +37,8 @@ export type RouterAbEd25519YaoSessionRouteCommandV1 = {
35
37
  };
36
38
  readonly sessionKind: 'opaque';
37
39
  };
38
- type RouterAbEd25519YaoOperationStepUpMaterialRecoveryRequest = {
39
- readonly kind: 'not_requested';
40
- } | {
41
- readonly kind: 'email_otp_factor_release_v1';
42
- readonly workerEphemeralPublicKey65B64u: string;
43
- };
44
- export type RouterAbEd25519YaoOperationStepUpMaterialRecoveryResponse = {
45
- readonly kind: 'not_requested';
46
- } | {
47
- readonly kind: 'email_otp_factor_release_v1';
48
- readonly challengeId: string;
49
- readonly enrollmentId: string;
50
- readonly enrollmentSealKeyVersion: string;
51
- readonly serverEphemeralPublicKey65B64u: string;
52
- readonly nonce12B64u: string;
53
- readonly ciphertextB64u: string;
54
- };
40
+ type RouterAbEd25519YaoOperationStepUpMaterialRecoveryRequest = Readonly<RouterAbEd25519OperationStepUpMaterialRecoveryRequest>;
41
+ export type RouterAbEd25519YaoOperationStepUpMaterialRecoveryResponse = Readonly<RouterAbEd25519OperationStepUpMaterialRecoveryResponse>;
55
42
  type RouterAbEd25519YaoOperationStepUpGrantCommandBase = {
56
43
  readonly kind: 'router_ab_ed25519_yao_operation_step_up_grant_v1';
57
44
  readonly normalSigningRequest: Record<string, unknown>;
@@ -93,35 +80,7 @@ export type RouterAbEd25519YaoBudgetRefreshRequestV1 = {
93
80
  readonly sessionPolicy: RouterAbEd25519YaoSessionPolicyV1;
94
81
  readonly authorization: RouterAbEd25519YaoBudgetRefreshAuthorizationV1;
95
82
  };
96
- /**
97
- * The committed identity of one Wallet Session issuance attempt whose
98
- * credential is unreachable. It is credential-free by construction: a replay
99
- * reads a committed digest, and no digest reproduces plaintext.
100
- */
101
- type RouterAbEd25519YaoCommittedWalletSessionV1 = {
102
- readonly kind: 'already_committed_wallet_session_v1';
103
- readonly walletId: WalletId;
104
- readonly authorityId: WalletAuthorityId;
105
- readonly walletAuthMethodId: WalletAuthMethodId;
106
- readonly mintId: WalletSessionMintId;
107
- readonly authorizationId: WalletSessionAuthorizationId;
108
- readonly walletSessionId: WalletSessionId;
109
- readonly quotaId: MpcWalletSigningQuotaId;
110
- };
111
- export type RouterAbEd25519YaoAlreadyCommittedResponseV1 = {
112
- readonly ok: false;
113
- readonly code: 'already_committed';
114
- readonly message: string;
115
- readonly next: 'unlock_exact_method';
116
- readonly committed: RouterAbEd25519YaoCommittedWalletSessionV1;
117
- };
118
- type RouterAbEd25519YaoWalletSessionRejectionV1 = {
119
- readonly ok: false;
120
- readonly code: string;
121
- readonly message: string;
122
- readonly next?: never;
123
- readonly committed?: never;
124
- };
83
+ export type RouterAbEd25519YaoAlreadyCommittedResponseV1 = WalletSessionAlreadyCommittedResponseV1;
125
84
  type RouterAbEd25519YaoBudgetRefreshSessionV1 = {
126
85
  readonly ok: true;
127
86
  readonly walletId: string;
@@ -145,7 +104,7 @@ export type RouterAbEd25519YaoBudgetRefreshResponseV1 = (RouterAbEd25519YaoBudge
145
104
  }) | (RouterAbEd25519YaoBudgetRefreshSessionV1 & {
146
105
  readonly sessionKind: 'already_committed_exact_wallet_session';
147
106
  readonly operationCredential?: never;
148
- }) | RouterAbEd25519YaoAlreadyCommittedResponseV1 | RouterAbEd25519YaoWalletSessionRejectionV1;
107
+ }) | RouterAbEd25519YaoAlreadyCommittedResponseV1 | WalletSessionRejectionV1;
149
108
  type RouterAbEd25519YaoVerifiedWalletUnlockRequestBaseV1 = {
150
109
  readonly walletId: string;
151
110
  readonly signerSlot: number;
@@ -173,6 +132,6 @@ export type RouterAbEd25519YaoVerifiedWalletUnlockResponseV1 = {
173
132
  readonly ok: true;
174
133
  readonly session: WalletRegistrationEd25519YaoBootstrapSession;
175
134
  readonly capability: RouterAbEd25519YaoActiveCapabilityDescriptorV1;
176
- } | RouterAbEd25519YaoAlreadyCommittedResponseV1 | RouterAbEd25519YaoWalletSessionRejectionV1;
135
+ } | RouterAbEd25519YaoAlreadyCommittedResponseV1 | WalletSessionRejectionV1;
177
136
  export {};
178
137
  //# sourceMappingURL=routerAbEd25519YaoWalletSession.d.ts.map
@@ -3,7 +3,6 @@ import type { EcdsaServerGeneration } from '../../../../../shared-ts/src/utils/e
3
3
  import type { RuntimePolicyScope } from '../../../../../shared-ts/src/threshold/signingRootScope';
4
4
  import type { WalletId } from '../../../../../shared-ts/src/utils/domainIds';
5
5
  import type { ThresholdEcdsaChainTarget } from '../../../core/thresholdEcdsaChainTarget';
6
- import type { RouterAbEd25519YaoApplicationBindingFactsV1, RouterAbEd25519YaoBytes32V1, RouterAbEd25519YaoLifecycleScopeV1 } from '../../../../../shared-ts/src/utils/routerAbEd25519Yao';
7
6
  import { type RouterAbEcdsaDerivationPublicCapabilityV1, type RouterAbEcdsaRegistrationActivationReceiptV1 } from '../../../../../shared-ts/src/utils/routerAbEcdsaDerivation';
8
7
  import { type WalletEcdsaSignerRecord, type WalletEd25519SignerRecord } from '../../../core/WalletStore';
9
8
  import type { D1WalletStore } from '../../../core/d1WalletStore';
@@ -11,6 +10,7 @@ import { type RecoveryCodeReservationId, type WalletRecoveryKeySetId } from '../
11
10
  import type { WalletRecoveryEcdsaPossessionChallengeV1 } from '../../../../../shared-ts/src/wallet-recovery/walletRecoveryEcdsaPossession';
12
11
  import { type WalletRecoveryEcdsaPossessionProofV1 } from '../../../../../shared-ts/src/wallet-recovery/walletRecoveryEcdsaPossession';
13
12
  import type { WalletAuthAuthorityRef } from '../../../../../shared-ts/src/utils/walletAuthAuthority';
13
+ import type { WalletRecoveryPreparationNearRecoveryBasisV1 } from '../../../../../shared-ts/src/wallet-recovery/walletRecoveryPreparation';
14
14
  export type { WalletRecoveryKeySetId } from '../../../../../shared-ts/src/wallet-recovery/recoveryCodeReservation';
15
15
  type WalletRecoveryKeyManifestEntryV1 = {
16
16
  readonly kind: 'near_ed25519';
@@ -79,18 +79,6 @@ type WalletRecoveryPreparationKeyManifestEntryV1 = {
79
79
  readonly recordedKeyManifestDigestB64u: string;
80
80
  readonly recoveryBasis: WalletRecoveryPreparationEcdsaRecoveryBasisV1;
81
81
  };
82
- type WalletRecoveryPreparationNearRecoveryBasisV1 = {
83
- readonly capabilityKind: 'registration' | 'recovery';
84
- readonly activeCapabilityBinding: RouterAbEd25519YaoBytes32V1;
85
- readonly scope: RouterAbEd25519YaoLifecycleScopeV1;
86
- readonly applicationBinding: RouterAbEd25519YaoApplicationBindingFactsV1;
87
- readonly participantIds: readonly [number, number];
88
- readonly registeredPublicKey: RouterAbEd25519YaoBytes32V1;
89
- readonly runtimePolicyScope: RuntimePolicyScope;
90
- readonly activationTranscript: RouterAbEd25519YaoBytes32V1;
91
- readonly activationStateEpoch: number;
92
- readonly signingWorkerVerifyingShare: RouterAbEd25519YaoBytes32V1;
93
- };
94
82
  type WalletRecoveryPreparationEcdsaRecoveryBasisV1 = {
95
83
  readonly publicCapability: RouterAbEcdsaDerivationPublicCapabilityV1;
96
84
  readonly activationReceipt: RouterAbEcdsaRegistrationActivationReceiptV1;
@@ -1,9 +1,9 @@
1
- import type { EcdsaWalletSessionAdmission } from '../../../authorization/ecdsaWalletSessionAdmission';
1
+ import type { EcdsaWalletSessionAdmissionInput, EcdsaWalletSessionPhaseAdmission } from '../../../authorization/ecdsaWalletSessionAdmission';
2
2
  import { type ThresholdEcdsaSessionInputs } from '../../auth/commonRouterUtils';
3
3
  import type { SessionAdapter } from '../../framework/routerApi';
4
4
  import { type RouterAbEcdsaDerivationEvmDigestSigningRequestV1Wire, type RouterAbEcdsaOperationStepUpPreparationV1Wire } from '../../../../../shared-ts/src/utils/routerAbEcdsaDerivation';
5
5
  import type { RuntimePolicyScope } from '../../../../../shared-ts/src/threshold/signingRootScope';
6
- import type { RouterApiAuthorizedOperationService, RouterApiAuthorizationSessionService, RouterApiWalletRegistrationService, RouterApiWalletSessionAuthorizationV2AdmissionContext, RouterApiWalletSessionAuthorizationV2ExhaustedCandidateContext } from '../../framework/authServicePort';
6
+ import type { RouterApiAuthorizedOperationService, RouterApiAuthorizationSessionService, RouterApiWalletRegistrationService, RouterApiWalletSessionAuthorizationV2ExhaustedCandidateContext } from '../../framework/authServicePort';
7
7
  import { type AuthorizedOperation, type AuthorizedOperationReplayResponse, type OwnerOperationAuthorizationDecision, type SessionOrigin } from '../../../authorization/domain';
8
8
  import { type RouterAbMpcMaterialActivationRefWire } from '../../../../../shared-ts/src/utils/routerAbNormalSigningIdentity';
9
9
  import { type AcceptedEcdsaRouteAdmission, type RouterAbEcdsaOperationAdmission, type RouterAbEcdsaOperationAdmissionKind, type RouterAbJsonRouteResult, type RouterAbNormalSigningAdmissionAdapter, type RouterAbNormalSigningRouteRuntime } from './routerAbNormalSigningAdmission';
@@ -88,21 +88,20 @@ export declare function resolveFreshRouterAbEcdsaMaterialActivation(input: {
88
88
  }>;
89
89
  type RouterAbEcdsaWalletSessionOperationBinding = {
90
90
  readonly kind: 'wallet_session_operation_credential_v1';
91
- readonly context: RouterApiWalletSessionAuthorizationV2AdmissionContext;
91
+ readonly validated: Pick<RouterAbEcdsaV2WalletSessionValidationSuccess, 'admission'>;
92
92
  } | {
93
93
  readonly kind: 'wallet_session_operation_credential_exhausted_candidate_v1';
94
94
  readonly candidate: RouterApiWalletSessionAuthorizationV2ExhaustedCandidateContext;
95
95
  };
96
96
  export declare function admitRouterAbEcdsaReusableWalletSessionOperation(input: {
97
+ readonly phase: 'prepare' | 'finalize';
97
98
  request: RouterAbEcdsaOperationStepUpRequest;
98
- materialActivation: RouterAbMpcMaterialActivationRefWire;
99
+ material: Pick<EcdsaWalletSessionAdmissionInput['material'], 'readSnapshot' | 'materialActivation' | 'keyHandle' | 'runtimePolicyScope'>;
99
100
  binding: RouterAbEcdsaWalletSessionOperationBinding;
100
- authorizedOperations: Pick<RouterApiAuthorizedOperationService, 'tenantId' | 'admitEcdsaWalletSessionOperation'>;
101
- resolveEcdsaMaterialActivation: RouterApiWalletRegistrationService['resolveEcdsaMaterialActivation'];
102
- }): Promise<{
101
+ authorizedOperations: Pick<RouterApiAuthorizedOperationService, 'tenantId' | 'admitEcdsaWalletSessionOperation' | 'resolveEcdsaWalletSessionOperation'>;
102
+ }): Promise<({
103
103
  readonly ok: true;
104
- readonly admission: EcdsaWalletSessionAdmission;
105
- } | {
104
+ } & EcdsaWalletSessionPhaseAdmission) | {
106
105
  readonly ok: false;
107
106
  readonly error: RouterAbJsonRouteResult;
108
107
  }>;
@@ -1,3 +1,4 @@
1
+ import type { D1EcdsaAdmissionPolicyRead } from '../../cloudflare/d1/signingAdmission/d1RouterAbNormalSigningAdmissionStore';
1
2
  import type { RouterAbNormalSigningAuthorizationIdentity } from '../../../core/routerAbSigning/RouterAbNormalSigningRuntime';
2
3
  import type { RouterAbNormalSigningRuntime } from '../../../core/routerAbSigning/RouterAbNormalSigningRuntime';
3
4
  import type { ThresholdEd25519AuthorityScope } from '../../../core/types';
@@ -277,8 +278,16 @@ export type RouterAbNormalSigningAdmissionFailure = {
277
278
  export type RouterAbNormalSigningAdmissionResult = {
278
279
  ok: true;
279
280
  } | RouterAbNormalSigningAdmissionFailure;
281
+ type RouterAbNormalSigningPolicyReadSource = {
282
+ readonly kind: 'database';
283
+ readonly policyRead?: never;
284
+ } | {
285
+ readonly kind: 'credential_snapshot';
286
+ readonly policyRead: D1EcdsaAdmissionPolicyRead;
287
+ };
280
288
  export type RouterAbNormalSigningAdmissionInput = {
281
289
  curve: 'ed25519';
290
+ readonly policyReadSource?: never;
282
291
  authorityKind: 'wallet_authority_v1';
283
292
  authorityId: string;
284
293
  authorityScope?: never;
@@ -293,6 +302,7 @@ export type RouterAbNormalSigningAdmissionInput = {
293
302
  runtimePolicyScope: RuntimePolicyScope;
294
303
  } | {
295
304
  curve: 'ed25519';
305
+ readonly policyReadSource?: never;
296
306
  authorityKind?: never;
297
307
  authorityId?: never;
298
308
  phase: 'prepare' | 'finalize';
@@ -307,6 +317,7 @@ export type RouterAbNormalSigningAdmissionInput = {
307
317
  runtimePolicyScope: RuntimePolicyScope;
308
318
  } | {
309
319
  curve: 'ecdsa';
320
+ readonly policyReadSource: RouterAbNormalSigningPolicyReadSource;
310
321
  phase: 'prepare' | 'finalize';
311
322
  walletId: string;
312
323
  materialActivationId: MpcMaterialActivationId;
@@ -323,6 +334,7 @@ export interface RouterAbNormalSigningAdmissionAdapter {
323
334
  export type RouterAbNormalSigningAdmissionEvaluationInput = {
324
335
  adapter: RouterAbNormalSigningAdmissionAdapter | null | undefined;
325
336
  curve: 'ed25519';
337
+ readonly policyReadSource?: never;
326
338
  authorizationKind: 'wallet_session_operation_credential_v1';
327
339
  phase: 'prepare' | 'finalize';
328
340
  walletId: string;
@@ -337,6 +349,7 @@ export type RouterAbNormalSigningAdmissionEvaluationInput = {
337
349
  } | {
338
350
  adapter: RouterAbNormalSigningAdmissionAdapter | null | undefined;
339
351
  curve: 'ecdsa';
352
+ readonly policyReadSource: RouterAbNormalSigningPolicyReadSource;
340
353
  authorizationKind: 'wallet_session_operation_credential_v1';
341
354
  phase: 'prepare' | 'finalize';
342
355
  walletId: string;
@@ -9,6 +9,7 @@ import { type RouterAbMpcMaterialActivationRefWire } from '../../../../../shared
9
9
  import type { Ed25519OperationKind } from './ed25519AuthorizedOperationReceipt';
10
10
  import { type WalletAuthMethodId } from '../../../../../shared-ts/src/utils/domainIds';
11
11
  import { type RouterAbJsonRouteResult } from './routerAbNormalSigningAdmission';
12
+ import type { ReadonlyExclusiveUnion } from '../../../../../shared-ts/src/utils/variant';
12
13
  export type ActiveEd25519MaterialActivation = Extract<Awaited<ReturnType<RouterApiWalletRegistrationService['resolveEd25519MaterialActivation']>>, {
13
14
  readonly ok: true;
14
15
  }>;
@@ -64,17 +65,15 @@ type RouterAbExactOperationStepUpIdentityInput = {
64
65
  readonly requestExpiresAtMs: number;
65
66
  readonly authorizedOperations: RouterApiAuthorizedOperationService | null | undefined;
66
67
  readonly authorizationSessions: RouterApiAuthorizationSessionService | null | undefined;
67
- } & ({
68
+ } & ReadonlyExclusiveUnion<{
68
69
  readonly keyFamily: 'ed25519';
69
70
  readonly operationKind: Ed25519OperationKind;
70
71
  readonly resolveEd25519MaterialActivation: RouterApiWalletRegistrationService['resolveEd25519MaterialActivation'];
71
- readonly resolveEcdsaMaterialActivation?: never;
72
72
  } | {
73
73
  readonly keyFamily: 'ecdsa_secp256k1';
74
74
  readonly operationKind: 'evm.sign_transaction' | 'evm.export_key';
75
- readonly resolveEd25519MaterialActivation?: never;
76
75
  readonly resolveEcdsaMaterialActivation: RouterApiWalletRegistrationService['resolveEcdsaMaterialActivation'];
77
- });
76
+ }>;
78
77
  type RouterAbVerifiedOwnerOperationStepUpIdentityInput = {
79
78
  readonly kind: 'verified_owner_proof';
80
79
  readonly headers: Record<string, string | string[] | undefined>;
@@ -3,9 +3,11 @@ import { type RouterAbEcdsaDerivationEvmDigestSigningFinalizeCoreRequestV1Wire,
3
3
  import type { RuntimePolicyScope } from '../../../../../shared-ts/src/threshold/signingRootScope';
4
4
  import type { SigningWorkerLaneMaterialIdentityV1 } from '../../../core/signingLanes/signingWorkerLaneMaterialIdentity';
5
5
  import type { AuthorizedOperationReplayResponse } from '../../../authorization/domain';
6
+ import type { RouterAbNormalSigningAuthorizationWire } from '../../../../../shared-ts/src/utils/routerAbNormalSigningIdentity';
6
7
  import type { MpcMaterialActivationId } from '../../../../../shared-ts/src/utils/domainIds';
7
8
  import { type RouterAbSigningWorkerJsonResult } from './routerAbNormalSigningAdmission';
8
9
  import type { RouterAbOperationStepUpWalletSession } from './routerAbOperationStepUp';
10
+ import type { ReadonlyExclusiveUnion } from '../../../../../shared-ts/src/utils/variant';
9
11
  declare const PRIVATE_ED25519_SIGNING_PREPARE_PATH = "/router-ab/signing-worker/sign/prepare";
10
12
  declare const PRIVATE_ED25519_SIGNING_FINALIZE_PATH = "/router-ab/signing-worker/sign";
11
13
  declare const PRIVATE_ECDSA_DERIVATION_SIGNING_PREPARE_PATH = "/router-ab/signing-worker/ecdsa-derivation/sign/prepare";
@@ -23,14 +25,7 @@ export declare const ROUTER_AB_ECDSA_DERIVATION_PRIVATE_SIGNING_PATHS: {
23
25
  type RouterAbConfiguredSigningWorkerPrivateTransport = Extract<RouterAbSigningWorkerPrivateTransport, {
24
26
  readonly kind: 'configured';
25
27
  }>;
26
- export type RouterAbEd25519NormalSigningAuthorizationV2 = {
27
- readonly kind: 'reusable_wallet_session';
28
- readonly wallet_session_id: string;
29
- } | {
30
- readonly kind: 'operation_step_up';
31
- readonly evidence_set_digest?: never;
32
- readonly wallet_session_id?: never;
33
- };
28
+ export type RouterAbEd25519NormalSigningAuthorizationV2 = RouterAbNormalSigningAuthorizationWire;
34
29
  type RouterAbMpcMaterialActivationRefV1 = {
35
30
  readonly kind: 'mpc_material_activation_ref';
36
31
  readonly activation_id: MpcMaterialActivationId;
@@ -56,26 +51,22 @@ type RouterAbPrivateSigningAuthorization = {
56
51
  readonly kind: 'operation_step_up';
57
52
  readonly session: RouterAbOperationStepUpWalletSession;
58
53
  };
59
- type RouterAbOwnerAdmissionAuthV1 = {
54
+ type RouterAbOwnerAdmissionAuthV1 = ReadonlyExclusiveUnion<{
60
55
  readonly auth: 'owner_wallet_session';
61
56
  readonly subject_id: string;
62
57
  readonly wallet_session_id: string;
63
- readonly authorization_session_id?: never;
64
58
  } | {
65
59
  readonly auth: 'owner_operation_step_up';
66
60
  readonly subject_id: string;
67
61
  readonly authorization_session_id: string;
68
- readonly wallet_session_id?: never;
69
- };
70
- type RouterAbNormalSigningPrivateAuthorizationV2 = {
62
+ }>;
63
+ type RouterAbNormalSigningPrivateAuthorizationV2 = ReadonlyExclusiveUnion<{
71
64
  readonly kind: 'reusable_wallet_session';
72
65
  readonly wallet_session_id: string;
73
- readonly authorization_session_id?: never;
74
66
  } | {
75
67
  readonly kind: 'operation_step_up';
76
68
  readonly authorization_session_id: string;
77
- readonly wallet_session_id?: never;
78
- };
69
+ }>;
79
70
  type RouterAbNormalSigningTrustedMetadataV1 = {
80
71
  readonly org_id: string;
81
72
  readonly project_id: string;
@@ -1,14 +1,9 @@
1
- import type { WebAuthnAuthenticationCredential } from '../../../core/types';
1
+ import type { PasskeyVerifyRequest } from '../../auth/authRequestValidation';
2
2
  type SyncAccountOptionsRequest = {
3
3
  rp_id: string;
4
4
  account_id?: string;
5
5
  ttl_ms?: number;
6
6
  };
7
- type SyncAccountVerifyRequest = {
8
- challengeId: string;
9
- webauthn_authentication: WebAuthnAuthenticationCredential;
10
- expected_origin: string;
11
- };
12
7
  type SyncAccountRouteErrorBody = {
13
8
  ok: false;
14
9
  code: 'invalid_body';
@@ -26,6 +21,6 @@ export declare function parseSyncAccountOptionsRequest(raw: unknown): SyncAccoun
26
21
  export declare function parseSyncAccountVerifyRequest(input: {
27
22
  body: unknown;
28
23
  origin: unknown;
29
- }): SyncAccountRouteParseResult<SyncAccountVerifyRequest>;
24
+ }): SyncAccountRouteParseResult<PasskeyVerifyRequest>;
30
25
  export {};
31
26
  //# sourceMappingURL=syncAccountRequestValidation.d.ts.map
@@ -1,6 +1,7 @@
1
+ import type { RouterApiKeyAuthFailureCode } from '../../../../shared-ts/src/utils/routerApiKeyAuth';
1
2
  export declare const ROUTER_API_CREDENTIAL_SCOPES: readonly ["accounts.create", "wallets.read", "wallets.auth_methods.create", "wallets.signers.create"];
2
3
  export type RouterApiCredentialScope = (typeof ROUTER_API_CREDENTIAL_SCOPES)[number];
3
- export type RouterApiKeyAuthFailureCode = 'secret_key_missing' | 'secret_key_invalid' | 'secret_key_revoked' | 'secret_key_forbidden_scope' | 'secret_key_ip_blocked' | 'secret_key_environment_mismatch';
4
+ export type { RouterApiKeyAuthFailureCode };
4
5
  export interface RouterApiKeyAuthRequest {
5
6
  secret: string;
6
7
  endpoint: string;
@@ -56,6 +57,7 @@ export interface RouterApiUsageMeterEvent {
56
57
  action: RouterApiUsageMeterAction;
57
58
  succeeded: boolean;
58
59
  occurredAt?: string;
60
+ /** Producer-owned idempotency key; replays with the same id must not double-count. */
59
61
  sourceEventId?: string;
60
62
  }
61
63
  export interface RouterApiUsageMeterAdapter {
@@ -1,3 +1,6 @@
1
+ import type { D1EcdsaAdmissionPolicyRead } from '../cloudflare/d1/signingAdmission/d1RouterAbNormalSigningAdmissionStore';
2
+ import type { EcdsaMaterialRead, EcdsaMaterialActivationReadInput } from '../../core/d1EcdsaSignerRead';
3
+ import type { EcdsaMaterialReadSnapshot } from '../../core/ecdsaMaterialReadSnapshot';
1
4
  import type { DigestB64u } from '../../../../shared-ts/src/utils/canonicalPrimitives';
2
5
  import type { TenantRootIdentityV1 } from '../../../../shared-ts/src/tenant-root/tenantRootIdentity';
3
6
  import type { AddAuthMethodIntentCallerV1, AddAuthMethodIntentGrant } from '../../../../shared-ts/src/utils/registrationIntent';
@@ -96,6 +99,19 @@ export type RouterApiWalletSessionAuthorizationV2ExhaustedCandidateContext = {
96
99
  readonly authMethod: ActiveWalletAuthMethodRecordV2;
97
100
  readonly retiredAtMs: null;
98
101
  };
102
+ export type RouterApiWalletSessionSigningCandidate = {
103
+ readonly kind: 'active';
104
+ readonly materialRead: EcdsaMaterialRead;
105
+ readonly policyRead: D1EcdsaAdmissionPolicyRead;
106
+ readonly context: RouterApiWalletSessionAuthorizationV2AdmissionContext;
107
+ readonly candidate?: never;
108
+ } | {
109
+ readonly kind: 'exhausted';
110
+ readonly materialRead: EcdsaMaterialRead;
111
+ readonly policyRead: D1EcdsaAdmissionPolicyRead;
112
+ readonly candidate: RouterApiWalletSessionAuthorizationV2ExhaustedCandidateContext;
113
+ readonly context?: never;
114
+ };
99
115
  type RouterApiHostedWalletSessionAuthorizationV2AdmissionContext = RouterApiWalletSessionAuthorizationV2AdmissionContext & {
100
116
  readonly hostedCredentialId: HostedWalletSessionCredentialId;
101
117
  readonly appOrigin: SessionOrigin;
@@ -993,11 +1009,9 @@ export interface RouterApiWalletRegistrationService {
993
1009
  readonly code: 'not_found' | 'invalid_state' | 'internal';
994
1010
  readonly message: string;
995
1011
  }>;
996
- resolveEcdsaMaterialActivation(input: {
997
- readonly walletId: string;
998
- readonly materialActivation: RouterAbMpcMaterialActivationRefWire;
999
- }): Promise<{
1012
+ resolveEcdsaMaterialActivation(input: EcdsaMaterialActivationReadInput): Promise<{
1000
1013
  readonly ok: true;
1014
+ readonly readSnapshot: EcdsaMaterialReadSnapshot;
1001
1015
  readonly materialActivation: RouterAbMpcMaterialActivationRefWire;
1002
1016
  readonly keyHandle: string;
1003
1017
  readonly relayerKeyId: string;
@@ -1312,6 +1326,7 @@ export interface RouterApiServiceBag {
1312
1326
  deviceLinkingOwnerAuthorization?: DeviceLinkingOwnerAuthorizationRouteServiceV1;
1313
1327
  }
1314
1328
  export interface RouterApiAuthorizedOperationService {
1329
+ resolveEcdsaWalletSessionOperation(input: import('../../authorization/ecdsaWalletSessionAdmission').EcdsaWalletSessionAdmissionInput): Promise<import('../../authorization/ecdsaWalletSessionAdmission').EcdsaWalletSessionResolutionResult>;
1315
1330
  admitEcdsaWalletSessionOperation(input: import('../../authorization/ecdsaWalletSessionAdmission').EcdsaWalletSessionAdmissionInput): Promise<import('../../authorization/ecdsaWalletSessionAdmission').EcdsaWalletSessionAdmissionResult>;
1316
1331
  readonly tenantId: TenantId;
1317
1332
  readPinnedOwnerWalletScope(input: {
@@ -1369,6 +1384,12 @@ export interface RouterApiAuthorizationSessionService {
1369
1384
  readonly token: string;
1370
1385
  readonly nowMs: number;
1371
1386
  }) => Promise<RouterApiWalletSessionAuthorizationV2AdmissionContext | null>;
1387
+ readonly readWalletSessionSigningCandidateByOperationCredential: (input: {
1388
+ readonly tenantId: TenantId;
1389
+ readonly token: string;
1390
+ readonly nowMs: number;
1391
+ readonly materialActivation: RouterAbMpcMaterialActivationRefWire;
1392
+ }) => Promise<RouterApiWalletSessionSigningCandidate | null>;
1372
1393
  readonly readWalletSessionExactOperationContextByCredential: (input: {
1373
1394
  readonly tenantId: TenantId;
1374
1395
  readonly token: string;
@@ -1,5 +1,6 @@
1
1
  import type { RouterApiOptions } from './routerApi';
2
2
  export declare function json(body: unknown, init?: ResponseInit, extraHeaders?: Record<string, string>): Response;
3
+ export declare function jsonFailure(status: number, code: string, message: string): Response;
3
4
  export declare function withCors(headers: Headers, opts?: RouterApiOptions, request?: Request): void;
4
5
  export declare function toResponse(out: {
5
6
  status: number;
@@ -1,14 +1,6 @@
1
- import { type SigningSessionSealProtocol } from '../../../../../shared-ts/src/utils/signingSessionSeal';
1
+ import { type WellKnownSigningSessionSealCapabilities } from '../../../../../shared-ts/src/utils/signingSessionSeal';
2
2
  export declare function normalizeCsv(valuesRaw: unknown): string[];
3
3
  export declare function sanitizeRorOrigins(origins: unknown): string[];
4
4
  export declare function normalizeRorHost(hostRaw: unknown): string | null;
5
- type WellKnownSigningSessionSealCapabilities = {
6
- mode: 'none';
7
- } | {
8
- mode: 'sealed_refresh_v1';
9
- protocol: SigningSessionSealProtocol;
10
- currentKeyVersion: string;
11
- };
12
5
  export declare function resolveWellKnownSigningSessionSealCapabilities(signingSessionSealOptionsRaw: unknown): WellKnownSigningSessionSealCapabilities;
13
- export {};
14
6
  //# sourceMappingURL=normalize.d.ts.map