@seams/wallet-server 0.7.3 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (516) hide show
  1. package/THIRD_PARTY_NOTICES.md +1 -9
  2. package/artifact-manifest.json +78 -33
  3. package/cloudflare-router-ab/build/deriver-a/build-stamp.json +1 -1
  4. package/cloudflare-router-ab/build/deriver-a/index.js +2 -2
  5. package/cloudflare-router-ab/build/deriver-a/index_bg.wasm +0 -0
  6. package/cloudflare-router-ab/build/deriver-b/build-stamp.json +1 -1
  7. package/cloudflare-router-ab/build/deriver-b/index.js +2 -2
  8. package/cloudflare-router-ab/build/deriver-b/index_bg.wasm +0 -0
  9. package/cloudflare-router-ab/build/local-tools/darwin-arm64/router_ab_local_init +0 -0
  10. package/cloudflare-router-ab/build/local-tools/darwin-x64/router_ab_local_init +0 -0
  11. package/cloudflare-router-ab/build/local-tools/linux-x64/router_ab_local_init +0 -0
  12. package/cloudflare-router-ab/build/router/build-stamp.json +1 -1
  13. package/cloudflare-router-ab/build/router/index.js +2 -2
  14. package/cloudflare-router-ab/build/router/index_bg.wasm +0 -0
  15. package/cloudflare-router-ab/build/signing-worker/build-stamp.json +1 -1
  16. package/cloudflare-router-ab/build/signing-worker/index.js +2 -2
  17. package/cloudflare-router-ab/build/signing-worker/index_bg.wasm +0 -0
  18. package/cloudflare-router-ab/build/tenant-root-control-plane/build-stamp.json +1 -1
  19. package/cloudflare-router-ab/build/tenant-root-control-plane/index.js +2 -2
  20. package/cloudflare-router-ab/build/tenant-root-control-plane/index_bg.wasm +0 -0
  21. package/cloudflare-router-ab/scripts/prepare-local-runtime-config.mjs +0 -2
  22. package/cloudflare-router-ab/scripts/start-local-role-workers.mjs +77 -20
  23. package/dist/esm/authorization/lifecycleRouting.js +62 -0
  24. package/dist/esm/authorization/service.js +35 -12
  25. package/dist/esm/cloud-host.js +20 -22
  26. package/dist/esm/core/EmailOtpRecords.js +1 -217
  27. package/dist/esm/core/EmailOtpStores.js +0 -859
  28. package/dist/esm/core/IdentityStore.js +2 -339
  29. package/dist/esm/core/ThresholdService/config.js +1 -9
  30. package/dist/esm/core/ThresholdService/index.js +0 -4
  31. package/dist/esm/core/ThresholdService/kv.js +1 -66
  32. package/dist/esm/core/ThresholdService/routerAb/ecdsaDerivationPoolFillHandlers.js +1 -13
  33. package/dist/esm/core/ThresholdService/routerAbNormalSigningPolicy.js +1 -11
  34. package/dist/esm/core/ThresholdService/stores/WalletSessionStore.js +0 -541
  35. package/dist/esm/core/ThresholdService/validation.js +2 -346
  36. package/dist/esm/core/WalletAuthMethodStore.js +2 -123
  37. package/dist/esm/core/WalletStore.js +3 -209
  38. package/dist/esm/core/WebAuthnAuthenticatorStore.js +0 -202
  39. package/dist/esm/core/WebAuthnCredentialBindingStore.js +2 -182
  40. package/dist/esm/core/WebAuthnLoginChallengeStore.js +0 -52
  41. package/dist/esm/core/WebAuthnSyncChallengeStore.js +0 -54
  42. package/dist/esm/core/authService/emailOtpConfig.js +1 -195
  43. package/dist/esm/core/authService/emailOtpEnrollment.js +0 -110
  44. package/dist/esm/core/authService/emailOtpSeal.js +0 -63
  45. package/dist/esm/core/authService/nearTransactions.js +3 -98
  46. package/dist/esm/core/authService/rateLimits.js +0 -84
  47. package/dist/esm/core/authService/webauthn.js +2 -298
  48. package/dist/esm/core/authService/webauthnOidcHelpers.js +1 -24
  49. package/dist/esm/core/authService/webauthnWalletBinding.js +0 -37
  50. package/dist/esm/core/config.js +1 -95
  51. package/dist/esm/core/d1EcdsaSignerRead.js +1 -1
  52. package/dist/esm/core/d1IdentityStore.js +1 -2
  53. package/dist/esm/core/d1TenantStore.js +1 -24
  54. package/dist/esm/core/d1WalletAuthMethodStore.js +2 -5
  55. package/dist/esm/core/d1WalletStore.js +2 -2
  56. package/dist/esm/core/deviceLinking/linkedDeviceBootstrap.js +13 -0
  57. package/dist/esm/core/deviceLinking/linkedDeviceSession.js +20 -14
  58. package/dist/esm/core/deviceLinking/requestProof.js +9 -6
  59. package/dist/esm/core/emailOtpD1Statements.js +107 -94
  60. package/dist/esm/core/keyMaterialBrands.js +2 -12
  61. package/dist/esm/core/nearKeys.js +0 -1
  62. package/dist/esm/core/nearRelayerAccountProvisioning.js +6 -9
  63. package/dist/esm/core/passkeyCredentialClaims.js +8 -0
  64. package/dist/esm/core/routerAbSigning/RouterAbEcdsaPresignRuntime.js +2 -6
  65. package/dist/esm/core/routerAbSigning/RouterAbNormalSigningRuntime.js +2 -30
  66. package/dist/esm/core/thresholdEcdsaChainTarget.js +1 -4
  67. package/dist/esm/hosted-wallet-gateway.js +66 -43
  68. package/dist/esm/index.js +6 -19
  69. package/dist/esm/localHostedWalletGatewayHandler.js +12 -0
  70. package/dist/esm/localRegistrationSetupAuthority.js +89 -0
  71. package/dist/esm/router/auth/authRequestValidation.js +8 -16
  72. package/dist/esm/router/auth/webAuthnCredentialCodecs.js +0 -1
  73. package/dist/esm/router/cloudflare/d1/auth/d1AuthorizationAssembly.js +87 -0
  74. package/dist/esm/router/cloudflare/d1/auth/d1RouterApiAuthConfig.js +12 -2
  75. package/dist/esm/router/cloudflare/d1/auth/d1RouterApiAuthService.js +32 -281
  76. package/dist/esm/router/cloudflare/d1/authorization/authorizedOperationStatements.js +24 -22
  77. package/dist/esm/router/cloudflare/d1/authorization/d1AuthorizationStore.js +8 -6
  78. package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceAuthorityInstallService.js +12 -13
  79. package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceEd25519ExportRootStore.js +6 -1
  80. package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceEmailOtpGrantStore.js +12 -2
  81. package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceEmailOtpTargetFactor.js +4 -4
  82. package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceOwnerAuthorizationProvider.js +1 -1
  83. package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceRequestProofNonceStore.js +3 -9
  84. package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceRouteService.js +2 -1
  85. package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceSessionStore.js +89 -7
  86. package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceTargetCredentialProvider.js +23 -14
  87. package/dist/esm/router/cloudflare/d1/ed25519Yao/d1Ed25519YaoCapabilityPersistence.js +9 -6
  88. package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpChallengeIssuer.js +0 -1
  89. package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpChallengeService.js +0 -1
  90. package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpChallengeStore.js +1 -1
  91. package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpChallengeVerifier.js +0 -1
  92. package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpEnrollmentStore.js +1 -1
  93. package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpGrantStore.js +1 -7
  94. package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpRateLimitStore.js +19 -13
  95. package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpRecords.js +0 -1
  96. package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpRecoveryService.js +0 -1
  97. package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpRegistrationEnrollmentFinalizer.js +2 -2
  98. package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpServerSealRuntime.js +0 -1
  99. package/dist/esm/router/cloudflare/d1/emailOtp/d1GoogleEmailOtpRegistrationAttemptStore.js +44 -12
  100. package/dist/esm/router/cloudflare/d1/emailOtp/d1GoogleEmailOtpRegistrationRecords.js +1 -49
  101. package/dist/esm/router/cloudflare/d1/emailOtp/d1GoogleEmailOtpSessionResolver.js +19 -31
  102. package/dist/esm/router/cloudflare/d1/emailOtp/d1GoogleRegistrationCompletion.js +85 -0
  103. package/dist/esm/router/cloudflare/d1/identity/d1IdentityRecords.js +0 -1
  104. package/dist/esm/router/cloudflare/d1/identity/d1IdentityService.js +0 -48
  105. package/dist/esm/router/cloudflare/d1/near/d1SponsoredNearAccount.js +242 -0
  106. package/dist/esm/router/cloudflare/d1/oidc/d1OidcBoundary.js +0 -1
  107. package/dist/esm/router/cloudflare/d1/oidc/d1OidcVerificationService.js +2 -29
  108. package/dist/esm/router/cloudflare/d1/oidc/googleOidcToken.js +41 -0
  109. package/dist/esm/router/cloudflare/d1/passkeyCustody/d1PasskeyCustodyRouteService.js +5 -0
  110. package/dist/esm/router/cloudflare/d1/passkeyCustody/d1WalletCustodyCommitStore.js +34 -0
  111. package/dist/esm/router/cloudflare/d1/registration/d1RegistrationCeremonyRecordStore.js +9 -3
  112. package/dist/esm/router/cloudflare/d1/registration/d1RegistrationCeremonyRecords.js +7 -13
  113. package/dist/esm/router/cloudflare/d1/registration/d1RegistrationCeremonyStore.js +25 -13
  114. package/dist/esm/router/cloudflare/d1/registration/d1RegistrationIntentService.js +0 -1
  115. package/dist/esm/router/cloudflare/d1/registration/d1RegistrationSetupSupport.js +74 -0
  116. package/dist/esm/router/cloudflare/d1/registration/d1WalletRegistrationCommitStore.js +7 -1
  117. package/dist/esm/router/cloudflare/d1/registration/d1WalletRegistrationService.js +69 -238
  118. package/dist/esm/router/cloudflare/d1/registration/d1WalletRegistrationSetup.js +12 -56
  119. package/dist/esm/router/cloudflare/d1/registration/d1WalletRegistrationSetupExecution.js +155 -0
  120. package/dist/esm/router/cloudflare/d1/registration/walletRegistrationEstablishedSessionIssuer.js +1 -3
  121. package/dist/esm/router/cloudflare/d1/signingAdmission/d1RouterAbNormalSigningAdmissionStore.js +12 -6
  122. package/dist/esm/router/cloudflare/d1/wallet/d1WalletAddSignerFinalizeRecord.js +68 -0
  123. package/dist/esm/router/cloudflare/d1/wallet/d1WalletAddSignerService.js +7 -54
  124. package/dist/esm/router/cloudflare/d1/wallet/d1WalletAuthMethodService.js +9 -8
  125. package/dist/esm/router/cloudflare/d1/wallet/d1WalletAuthorityStore.js +2 -142
  126. package/dist/esm/router/cloudflare/d1/webauthn/d1WebAuthnAuthService.js +25 -4
  127. package/dist/esm/router/cloudflare/d1/webauthn/d1WebAuthnRecords.js +4 -70
  128. package/dist/esm/router/cloudflare/d1/webauthn/d1WebAuthnStore.js +23 -7
  129. package/dist/esm/router/cloudflare/runtime/staticWalletConsoleBinding.js +1 -0
  130. package/dist/esm/router/cloudflare/runtime/walletConsoleOps.js +1 -0
  131. package/dist/esm/router/cloudflare/runtime/walletConsoleOpsClient.js +5 -0
  132. package/dist/esm/router/cloudflare/runtime/walletGateway.js +1 -1
  133. package/dist/esm/router/cloudflare/runtime/walletRuntimeOps.js +16 -4
  134. package/dist/esm/router/cloudflare-adaptor.js +1 -2
  135. package/dist/esm/router/cloudflare.js +1342 -1733
  136. package/dist/esm/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistration.js +11 -8
  137. package/dist/esm/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistrationPartitionedStateStore.js +3 -2
  138. package/dist/esm/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistrationPartitioning.js +6 -6
  139. package/dist/esm/router/domains/ed25519Yao/export/routerAbEd25519YaoExport.js +6 -6
  140. package/dist/esm/router/domains/ed25519Yao/export/routerAbEd25519YaoExportRequestScopedCloudflare.js +3 -0
  141. package/dist/esm/router/domains/ed25519Yao/recovery/routerAbEd25519YaoRecoveryRequestScopedCloudflare.js +8 -0
  142. package/dist/esm/router/domains/emailOtp/emailOtpRequestValidation.js +0 -1
  143. package/dist/esm/router/domains/passkeyCustody/passkeyCustodyEnvelopeRetrieval.js +2 -8
  144. package/dist/esm/router/domains/passkeyCustody/walletCustodyRegistrationCommit.js +2 -8
  145. package/dist/esm/router/domains/signingOperations/routerAbPrivateSigningWorker.js +5 -19
  146. package/dist/esm/router/domains/signingOperations/walletExecutionAdmission.js +2 -3
  147. package/dist/esm/router/domains/walletRegistration/walletRegistrationReservation.js +70 -0
  148. package/dist/esm/router/domains/walletRegistration/walletRegistrationRoutes.js +10 -11
  149. package/dist/esm/router/domains/walletRegistration/walletRegistrationSetupPayload.js +2 -3
  150. package/dist/esm/router/domains/walletUnlock/walletUnlockRouteHandlers.js +14 -0
  151. package/dist/esm/router/express.js +574 -479
  152. package/dist/esm/router/framework/http.js +2 -0
  153. package/dist/esm/router/framework/registrationSetupDispatch.js +14 -0
  154. package/dist/esm/router/framework/ror/normalize.js +0 -1
  155. package/dist/esm/router/framework/ror/options.js +0 -1
  156. package/dist/esm/router/framework/ror/provider.js +0 -1
  157. package/dist/esm/router/framework/ror/staticProvider.js +0 -1
  158. package/dist/esm/router/framework/routeDefinitions.js +1 -2
  159. package/dist/esm/router/framework/routerApiWebhooks.js +0 -1
  160. package/dist/esm/router/ror.js +0 -1
  161. package/dist/esm/router/transport/fetch/createFetchRouter.js +0 -2
  162. package/dist/esm/router/transport/fetch/routes/auth.js +2 -0
  163. package/dist/esm/router/transport/fetch/routes/deviceLinking.js +36 -147
  164. package/dist/esm/router/transport/fetch/routes/deviceLinkingOwnerAuthorization.js +3 -2
  165. package/dist/esm/router/transport/fetch/routes/deviceLinkingResponses.js +130 -0
  166. package/dist/esm/router/transport/fetch/routes/ecdsaOperationStepUpFactor.js +171 -0
  167. package/dist/esm/router/transport/fetch/routes/passkeyCustody.js +1 -0
  168. package/dist/esm/router/transport/fetch/routes/syncAccount.js +7 -2
  169. package/dist/esm/router/transport/fetch/routes/thresholdEcdsa.js +19 -115
  170. package/dist/esm/router/transport/fetch/routes/walletRegistration.js +3 -1
  171. package/dist/esm/shared-ts/src/authorization/walletSessionIssuance.js +0 -1
  172. package/dist/esm/shared-ts/src/device-linking/authorityActivation.js +0 -2
  173. package/dist/esm/shared-ts/src/device-linking/contracts.js +16 -1
  174. package/dist/esm/shared-ts/src/device-linking/digests.js +1 -8
  175. package/dist/esm/shared-ts/src/near/actions.js +0 -1
  176. package/dist/esm/shared-ts/src/near/nearClient.js +0 -2
  177. package/dist/esm/shared-ts/src/signing-lanes/evmFamilySigningKeySlotId.js +1 -1
  178. package/dist/esm/shared-ts/src/signing-lanes/index.js +1 -6
  179. package/dist/esm/shared-ts/src/signing-lanes/ownerContinuity.js +1 -1
  180. package/dist/esm/shared-ts/src/signing-lanes/participantDigest.js +2 -81
  181. package/dist/esm/shared-ts/src/signing-lanes/participants.js +1 -219
  182. package/dist/esm/shared-ts/src/signing-lanes/recordParsers.js +0 -3
  183. package/dist/esm/shared-ts/src/tenant-root/tenantRootOperationRecord.js +1 -2
  184. package/dist/esm/shared-ts/src/threshold/ecdsaDerivationRoleLocalBootstrap.js +0 -1
  185. package/dist/esm/shared-ts/src/threshold/keyMaterialBrands.js +1 -22
  186. package/dist/esm/shared-ts/src/threshold/participants.js +0 -1
  187. package/dist/esm/shared-ts/src/threshold/signingRootScope.js +0 -1
  188. package/dist/esm/shared-ts/src/utils/addWalletAuthMethod.js +4 -13
  189. package/dist/esm/shared-ts/src/utils/canonicalPrimitives.js +1 -7
  190. package/dist/esm/shared-ts/src/utils/domainIds.js +1 -16
  191. package/dist/esm/shared-ts/src/utils/ecdsaCapabilityActivation.js +1 -11
  192. package/dist/esm/shared-ts/src/utils/ecdsaKeyFactsInventory.js +0 -1
  193. package/dist/esm/shared-ts/src/utils/errors.js +1 -19
  194. package/dist/esm/shared-ts/src/utils/near.js +1 -1
  195. package/dist/esm/shared-ts/src/utils/registrationEstablishedSession.js +1 -1
  196. package/dist/esm/shared-ts/src/utils/registrationIds.js +1 -5
  197. package/dist/esm/shared-ts/src/utils/registrationIntent.js +0 -1
  198. package/dist/esm/shared-ts/src/utils/registrationSetupOperation.js +8 -0
  199. package/dist/esm/shared-ts/src/utils/registrationSignerPlan.js +1 -1
  200. package/dist/esm/shared-ts/src/utils/routerAbEcdsaDerivation.js +0 -1
  201. package/dist/esm/shared-ts/src/utils/validation.js +1 -5
  202. package/dist/esm/shared-ts/src/utils/walletAuthAuthority.js +0 -1
  203. package/dist/esm/shared-ts/src/utils/walletManagementProtocol.js +6 -0
  204. package/dist/esm/shared-ts/src/utils/wireSchema.js +2 -13
  205. package/dist/esm/shared-ts/src/wallet-recovery/backupAcknowledgement.js +6 -24
  206. package/dist/esm/shared-ts/src/wallet-recovery/recoveryCodeLocator.js +0 -1
  207. package/dist/esm/shared-ts/src/wallet-recovery/recoveryKeyId.js +5 -6
  208. package/dist/esm/storage/d1Sql.js +1 -7
  209. package/dist/esm/threshold/session/signingSessionSeal/crypto/cipher.js +0 -1
  210. package/dist/esm/threshold/session/signingSessionSeal/guards/backends.js +1 -2
  211. package/dist/esm/threshold/session/signingSessionSeal/idempotencyBackends.js +0 -1
  212. package/dist/esm/threshold/session/signingSessionSeal/idempotencyRecords.js +0 -1
  213. package/dist/esm/threshold/session/signingSessionSeal/options.js +0 -1
  214. package/dist/esm/wasm/evm_crypto/pkg/evm_crypto_bg.wasm +0 -0
  215. package/dist/esm/wasm/near_signer/pkg/wasm_signer_worker.js +0 -611
  216. package/dist/esm/wasm/near_signer/pkg/wasm_signer_worker_bg.wasm +0 -0
  217. package/dist/esm/wasm/shamir3pass_runtime/pkg/shamir3pass_runtime_bg.wasm +0 -0
  218. package/dist/types/shared-ts/src/authorization/capabilityKinds.d.ts +0 -4
  219. package/dist/types/shared-ts/src/device-linking/contracts.d.ts +1 -0
  220. package/dist/types/shared-ts/src/signing-lanes/evmFamilySigningKeySlotId.d.ts +0 -2
  221. package/dist/types/shared-ts/src/signing-lanes/execution.d.ts +0 -11
  222. package/dist/types/shared-ts/src/signing-lanes/ids.d.ts +2 -7
  223. package/dist/types/shared-ts/src/signing-lanes/index.d.ts +0 -4
  224. package/dist/types/shared-ts/src/signing-lanes/ownerContinuity.d.ts +0 -1
  225. package/dist/types/shared-ts/src/signing-lanes/participantDigest.d.ts +0 -18
  226. package/dist/types/shared-ts/src/signing-lanes/participants.d.ts +6 -35
  227. package/dist/types/shared-ts/src/signing-lanes/rotation.d.ts +6 -843
  228. package/dist/types/shared-ts/src/threshold/keyMaterialBrands.d.ts +0 -10
  229. package/dist/types/shared-ts/src/threshold/participants.d.ts +1 -1
  230. package/dist/types/shared-ts/src/utils/addWalletAuthMethod.d.ts +1 -133
  231. package/dist/types/shared-ts/src/utils/addWalletAuthMethod.typecheck.d.ts +4 -18
  232. package/dist/types/shared-ts/src/utils/domainIds.d.ts +0 -12
  233. package/dist/types/shared-ts/src/utils/errors.d.ts +0 -4
  234. package/dist/types/shared-ts/src/utils/near.d.ts +0 -20
  235. package/dist/types/shared-ts/src/utils/normalize.d.ts +0 -2
  236. package/dist/types/shared-ts/src/utils/registrationSetupOperation.d.ts +3 -0
  237. package/dist/types/shared-ts/src/utils/validation.d.ts +1 -3
  238. package/dist/types/shared-ts/src/utils/walletCapabilityBindings.d.ts +0 -1
  239. package/dist/types/shared-ts/src/utils/walletManagementProtocol.d.ts +3 -0
  240. package/dist/types/shared-ts/src/utils/wireSchema.d.ts +0 -2
  241. package/dist/types/shared-ts/src/wallet-recovery/backupAcknowledgement.d.ts +0 -1
  242. package/dist/types/shared-ts/src/wallet-recovery/recoveryCodeReservation.d.ts +1 -10
  243. package/dist/types/shared-ts/src/wallet-recovery/recoveryCodes.d.ts +1 -3
  244. package/dist/types/shared-ts/src/wallet-recovery/recoveryKeyId.d.ts +5 -21
  245. package/dist/types/wallet-server/src/authorization/lifecycleRouting.d.ts +32 -0
  246. package/dist/types/wallet-server/src/authorization/lifecycleRouting.typecheck.d.ts +2 -0
  247. package/dist/types/wallet-server/src/authorization/recoveryRouting.d.ts +22 -0
  248. package/dist/types/wallet-server/src/authorization/recoveryRouting.typecheck.d.ts +2 -0
  249. package/dist/types/wallet-server/src/authorization/service.d.ts +8 -1
  250. package/dist/types/wallet-server/src/authorization/sessionRouting.d.ts +20 -0
  251. package/dist/types/wallet-server/src/authorization/sessionRouting.typecheck.d.ts +2 -0
  252. package/dist/types/wallet-server/src/cloud-host.d.ts +31 -9
  253. package/dist/types/wallet-server/src/core/EmailOtpRecords.d.ts +1 -22
  254. package/dist/types/wallet-server/src/core/EmailOtpStores.d.ts +1 -79
  255. package/dist/types/wallet-server/src/core/IdentityStore.d.ts +0 -10
  256. package/dist/types/wallet-server/src/core/RegistrationCeremonyStore.d.ts +0 -1
  257. package/dist/types/wallet-server/src/core/ThresholdService/config.d.ts +0 -2
  258. package/dist/types/wallet-server/src/core/ThresholdService/index.d.ts +1 -3
  259. package/dist/types/wallet-server/src/core/ThresholdService/kv.d.ts +0 -7
  260. package/dist/types/wallet-server/src/core/ThresholdService/routerAb/ecdsaDerivationPoolFillHandlers.d.ts +0 -3
  261. package/dist/types/wallet-server/src/core/ThresholdService/routerAbNormalSigningPolicy.d.ts +0 -1
  262. package/dist/types/wallet-server/src/core/ThresholdService/stores/WalletSessionStore.d.ts +7 -19
  263. package/dist/types/wallet-server/src/core/ThresholdService/validation.d.ts +0 -34
  264. package/dist/types/wallet-server/src/core/WalletAuthMethodStore.d.ts +1 -5
  265. package/dist/types/wallet-server/src/core/WalletStore.d.ts +0 -3
  266. package/dist/types/wallet-server/src/core/WebAuthnAuthenticatorStore.d.ts +0 -20
  267. package/dist/types/wallet-server/src/core/WebAuthnCredentialBindingStore.d.ts +1 -27
  268. package/dist/types/wallet-server/src/core/WebAuthnLoginChallengeStore.d.ts +2 -16
  269. package/dist/types/wallet-server/src/core/WebAuthnSyncChallengeStore.d.ts +22 -14
  270. package/dist/types/wallet-server/src/core/authService/emailOtpConfig.d.ts +0 -24
  271. package/dist/types/wallet-server/src/core/authService/emailOtpEnrollment.d.ts +1 -70
  272. package/dist/types/wallet-server/src/core/authService/emailOtpSeal.d.ts +0 -13
  273. package/dist/types/wallet-server/src/core/authService/githubOAuth.d.ts +2 -1
  274. package/dist/types/wallet-server/src/core/authService/nearTransactions.d.ts +1 -39
  275. package/dist/types/wallet-server/src/core/authService/rateLimits.d.ts +0 -17
  276. package/dist/types/wallet-server/src/core/authService/webauthn.d.ts +0 -125
  277. package/dist/types/wallet-server/src/core/authService/webauthnOidcHelpers.d.ts +0 -3
  278. package/dist/types/wallet-server/src/core/authService/webauthnVerificationOutcomes.d.ts +1 -1
  279. package/dist/types/wallet-server/src/core/authService/webauthnWalletBinding.d.ts +0 -12
  280. package/dist/types/wallet-server/src/core/config.d.ts +0 -10
  281. package/dist/types/wallet-server/src/core/d1IdentityStore.d.ts +0 -2
  282. package/dist/types/wallet-server/src/core/d1TenantStore.d.ts +0 -7
  283. package/dist/types/wallet-server/src/core/d1WalletAuthMethodStore.d.ts +0 -1
  284. package/dist/types/wallet-server/src/core/deviceLinking/linkedDeviceBootstrap.d.ts +19 -0
  285. package/dist/types/wallet-server/src/core/deviceLinking/linkedDeviceSession.d.ts +8 -6
  286. package/dist/types/wallet-server/src/core/deviceLinking/requestProof.d.ts +2 -5
  287. package/dist/types/wallet-server/src/core/emailOtpD1Statements.d.ts +10 -7
  288. package/dist/types/wallet-server/src/core/keyMaterialBrands.d.ts +1 -5
  289. package/dist/types/wallet-server/src/core/nearRelayerAccountProvisioning.d.ts +0 -1
  290. package/dist/types/wallet-server/src/core/passkeyCredentialClaims.d.ts +9 -0
  291. package/dist/types/wallet-server/src/core/routerAbSigning/RouterAbEcdsaPresignRuntime.d.ts +0 -2
  292. package/dist/types/wallet-server/src/core/routerAbSigning/RouterAbNormalSigningRuntime.d.ts +0 -2
  293. package/dist/types/wallet-server/src/core/threeRouteRegistrationContracts.d.ts +1 -92
  294. package/dist/types/wallet-server/src/core/threeRouteRegistrationContracts.typecheck.d.ts +4 -52
  295. package/dist/types/wallet-server/src/core/thresholdEcdsaChainTarget.d.ts +0 -1
  296. package/dist/types/wallet-server/src/core/types.d.ts +0 -299
  297. package/dist/types/wallet-server/src/hosted-wallet-gateway.d.ts +15 -3
  298. package/dist/types/wallet-server/src/index.d.ts +8 -13
  299. package/dist/types/wallet-server/src/localRegistrationSetupAuthority.d.ts +13 -0
  300. package/dist/types/wallet-server/src/router/cloudflare/d1/auth/d1AuthorizationAssembly.d.ts +23 -0
  301. package/dist/types/wallet-server/src/router/cloudflare/d1/auth/d1RouterApiAuthConfig.d.ts +25 -3
  302. package/dist/types/wallet-server/src/router/cloudflare/d1/authorization/d1AuthorizationStore.d.ts +1 -1
  303. package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceAuthorityInstallService.d.ts +3 -1
  304. package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceEmailOtpGrantStore.d.ts +7 -1
  305. package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceRequestProofNonceStore.d.ts +1 -10
  306. package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceRouteService.d.ts +4 -0
  307. package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceSessionStore.d.ts +6 -0
  308. package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceTargetPlanner.d.ts +1 -13
  309. package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpChallengeService.d.ts +2 -2
  310. package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpChallengeStore.d.ts +1 -1
  311. package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpGrantStore.d.ts +0 -2
  312. package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpRateLimitStore.d.ts +18 -2
  313. package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1GoogleEmailOtpRegistrationAttemptStore.d.ts +29 -1
  314. package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1GoogleEmailOtpRegistrationRecords.d.ts +3 -16
  315. package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1GoogleEmailOtpSessionResolver.d.ts +7 -2
  316. package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1GoogleRegistrationCompletion.d.ts +23 -0
  317. package/dist/types/wallet-server/src/router/cloudflare/d1/identity/d1IdentityService.d.ts +0 -12
  318. package/dist/types/wallet-server/src/router/cloudflare/d1/near/d1SponsoredNearAccount.d.ts +24 -0
  319. package/dist/types/wallet-server/src/router/cloudflare/d1/near/d1SponsoredNearAccount.typecheck.d.ts +2 -0
  320. package/dist/types/wallet-server/src/router/cloudflare/d1/oidc/d1OidcVerificationService.d.ts +0 -1
  321. package/dist/types/wallet-server/src/router/cloudflare/d1/oidc/googleOidcToken.d.ts +4 -0
  322. package/dist/types/wallet-server/src/router/cloudflare/d1/passkeyCustody/d1PasskeyCustodyRouteService.d.ts +5 -0
  323. package/dist/types/wallet-server/src/router/cloudflare/d1/passkeyCustody/d1WalletCustodyCommitStore.d.ts +9 -0
  324. package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1RegistrationCeremonyRecordStore.d.ts +1 -1
  325. package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1RegistrationCeremonyRecords.d.ts +10 -11
  326. package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1RegistrationCeremonyStore.d.ts +3 -2
  327. package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1RegistrationSetupSupport.d.ts +51 -0
  328. package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1WalletRegistrationCommitStore.d.ts +3 -0
  329. package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1WalletRegistrationService.d.ts +30 -47
  330. package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1WalletRegistrationSetup.d.ts +3 -30
  331. package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1WalletRegistrationSetupExecution.d.ts +11 -0
  332. package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletAddSignerFinalizeRecord.d.ts +27 -0
  333. package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletAddSignerService.d.ts +1 -10
  334. package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletAuthMethodService.d.ts +2 -2
  335. package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletAuthorityStore.d.ts +0 -4
  336. package/dist/types/wallet-server/src/router/cloudflare/d1/webauthn/d1WebAuthnAuthService.d.ts +3 -0
  337. package/dist/types/wallet-server/src/router/cloudflare/d1/webauthn/d1WebAuthnRecords.d.ts +0 -13
  338. package/dist/types/wallet-server/src/router/cloudflare/d1/webauthn/d1WebAuthnStore.d.ts +23 -10
  339. package/dist/types/wallet-server/src/router/cloudflare/d1/webauthn/d1WebAuthnStore.typecheck.d.ts +2 -0
  340. package/dist/types/wallet-server/src/router/cloudflare/runtime/cloudflare.types.d.ts +0 -2
  341. package/dist/types/wallet-server/src/router/cloudflare/runtime/walletConsoleOps.d.ts +1 -0
  342. package/dist/types/wallet-server/src/router/cloudflare/runtime/walletConsoleOpsClient.d.ts +2 -0
  343. package/dist/types/wallet-server/src/router/cloudflare/runtime/walletGateway.d.ts +1 -1
  344. package/dist/types/wallet-server/src/router/cloudflare/runtime/walletRuntimeOps.d.ts +3 -0
  345. package/dist/types/wallet-server/src/router/cloudflare-adaptor.d.ts +0 -1
  346. package/dist/types/wallet-server/src/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistration.d.ts +1 -1
  347. package/dist/types/wallet-server/src/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistrationPartitioning.d.ts +2 -2
  348. package/dist/types/wallet-server/src/router/domains/ed25519Yao/export/routerAbEd25519YaoExport.d.ts +2 -2
  349. package/dist/types/wallet-server/src/router/domains/ed25519Yao/export/routerAbEd25519YaoExport.typecheck.d.ts +2 -0
  350. package/dist/types/wallet-server/src/router/domains/ed25519Yao/export/routerAbEd25519YaoExportRequestScopedCloudflare.d.ts +2 -0
  351. package/dist/types/wallet-server/src/router/domains/ed25519Yao/recovery/routerAbEd25519YaoRecoveryRequestScopedCloudflare.d.ts +2 -0
  352. package/dist/types/wallet-server/src/router/domains/passkeyCustody/passkeyCustodyEnvelopeRetrieval.d.ts +0 -2
  353. package/dist/types/wallet-server/src/router/domains/passkeyCustody/walletCustodyRegistrationCommit.d.ts +0 -3
  354. package/dist/types/wallet-server/src/router/domains/signingOperations/routerAbPrivateSigningWorker.d.ts +0 -17
  355. package/dist/types/wallet-server/src/router/domains/signingOperations/walletExecutionAdmission.d.ts +1 -2
  356. package/dist/types/wallet-server/src/router/domains/walletRegistration/walletRegistrationInputs.d.ts +1 -0
  357. package/dist/types/wallet-server/src/router/domains/walletRegistration/walletRegistrationReservation.d.ts +51 -0
  358. package/dist/types/wallet-server/src/router/domains/walletRegistration/walletRegistrationRoutes.d.ts +2 -10
  359. package/dist/types/wallet-server/src/router/domains/walletRegistration/walletRegistrationSetupPayload.d.ts +2 -2
  360. package/dist/types/wallet-server/src/router/framework/authServicePort.d.ts +14 -34
  361. package/dist/types/wallet-server/src/router/framework/googleLoginResolution.typecheck.d.ts +2 -0
  362. package/dist/types/wallet-server/src/router/framework/registrationSetupDispatch.d.ts +13 -0
  363. package/dist/types/wallet-server/src/router/transport/fetch/routes/deviceLinking.d.ts +1 -1
  364. package/dist/types/wallet-server/src/router/transport/fetch/routes/deviceLinkingResponses.d.ts +17 -0
  365. package/dist/types/wallet-server/src/router/transport/fetch/routes/ecdsaOperationStepUpFactor.d.ts +37 -0
  366. package/dist/types/wallet-server/src/storage/d1Sql.d.ts +0 -1
  367. package/migrations/d1-signer/0040_namespace_home_challenges.sql +16 -0
  368. package/migrations/d1-signer/0041_step_up_admission_expiry.sql +28 -0
  369. package/migrations/d1-signer/0042_deployment_resource_challenges.sql +4 -0
  370. package/migrations/d1-signer/0043_google_registration_candidate_claim.sql +2 -0
  371. package/migrations/d1-signer/0044_linked_device_bootstrap_imports.sql +6 -0
  372. package/migrations/d1-signer/0045_wallet_owned_capability_receipts.sql +29 -0
  373. package/migrations/d1-signer/0046_wallet_owned_signing_abuse.sql +41 -0
  374. package/migrations/d1-signer/0047_remove_unused_near_public_keys.sql +2 -0
  375. package/migrations/d1-signer/0048_operation_owner_scope.sql +45 -0
  376. package/package.json +2 -3
  377. package/src/README.md +11 -3
  378. package/dist/esm/core/AuthService.js +0 -2
  379. package/dist/esm/core/NearPublicKeyStore.js +0 -200
  380. package/dist/esm/core/ThresholdService/stores/CloudflareDurableObjectStore.js +0 -397
  381. package/dist/esm/core/ThresholdService/stores/KeyStore.js +0 -140
  382. package/dist/esm/core/ThresholdService/stores/SessionStore.js +0 -361
  383. package/dist/esm/core/ThresholdService/stores/StoreConfig.js +0 -13
  384. package/dist/esm/core/ThresholdService/stores/exportReplayGuard.js +0 -7
  385. package/dist/esm/core/authService/AuthService.js +0 -594
  386. package/dist/esm/core/authService/bytes.js +0 -19
  387. package/dist/esm/core/authService/configValues.js +0 -15
  388. package/dist/esm/core/authService/emailOtpChallengeOperations.js +0 -123
  389. package/dist/esm/core/authService/emailOtpChallengeProof.js +0 -183
  390. package/dist/esm/core/authService/emailOtpChallengeVerification.js +0 -264
  391. package/dist/esm/core/authService/emailOtpChallenges.js +0 -225
  392. package/dist/esm/core/authService/emailOtpDelivery.js +0 -134
  393. package/dist/esm/core/authService/emailOtpGrant.js +0 -43
  394. package/dist/esm/core/authService/emailOtpRegistrationEnrollment.js +0 -144
  395. package/dist/esm/core/authService/emailOtpUnlock.js +0 -174
  396. package/dist/esm/core/authService/googleEmailOtpOperations.js +0 -141
  397. package/dist/esm/core/authService/googleEmailOtpRegistration.js +0 -587
  398. package/dist/esm/core/authService/identity.js +0 -42
  399. package/dist/esm/core/authService/identityOperations.js +0 -32
  400. package/dist/esm/core/authService/nearAccountOperations.js +0 -229
  401. package/dist/esm/core/authService/nearPublicKeyMetadata.js +0 -108
  402. package/dist/esm/core/authService/oidcVerification.js +0 -249
  403. package/dist/esm/core/authService/registrationThresholdHelpers.js +0 -30
  404. package/dist/esm/core/authService/runtime.js +0 -45
  405. package/dist/esm/core/authService/storeRegistry.js +0 -102
  406. package/dist/esm/core/authService/thresholdStoreSummary.js +0 -32
  407. package/dist/esm/core/authService/webauthnAuthority.js +0 -17
  408. package/dist/esm/core/defaultConfigsServer.js +0 -9
  409. package/dist/esm/core/hostedAccountIds.js +0 -225
  410. package/dist/esm/core/routerAbSigning/createRouterAbSigningRuntimes.js +0 -84
  411. package/dist/esm/core/signingLanes/LaneAggregateRevocationApplicationService.js +0 -86
  412. package/dist/esm/core/signingLanes/LaneEnrollmentActivation.js +0 -324
  413. package/dist/esm/core/signingLanes/LaneEnrollmentRevocation.js +0 -173
  414. package/dist/esm/core/signingLanes/LaneLifecycleApplicationService.js +0 -198
  415. package/dist/esm/core/signingLanes/ecdsaServerRetirement.js +0 -73
  416. package/dist/esm/core/signingLanes/ed25519ServerRetirement.js +0 -68
  417. package/dist/esm/core/signingLanes/signingWorkerLaneMaterialIdentity.js +0 -0
  418. package/dist/esm/core/storeBackends.js +0 -208
  419. package/dist/esm/core/utils.js +0 -14
  420. package/dist/esm/core/webAuthnStoreBackends.js +0 -198
  421. package/dist/esm/router/cloudflare/d1/near/d1NearPublicKeyStore.js +0 -49
  422. package/dist/esm/router/cloudflare/d1/signingLanes/d1EcdsaLanePrivateBindingResolver.js +0 -10
  423. package/dist/esm/router/cloudflare/d1/signingLanes/d1LaneAggregateRevocationApplicationService.js +0 -22
  424. package/dist/esm/router/cloudflare/d1/signingLanes/d1LaneEffectJournalStore.js +0 -166
  425. package/dist/esm/router/cloudflare/d1/signingLanes/d1LaneEnrollmentGateway.js +0 -38
  426. package/dist/esm/router/cloudflare/d1/signingLanes/d1LaneLifecycleApplicationService.js +0 -20
  427. package/dist/esm/router/cloudflare/d1/signingLanes/d1LaneLifecycleStore.js +0 -1459
  428. package/dist/esm/router/cloudflare/d1/signingLanes/d1LaneLockStore.js +0 -114
  429. package/dist/esm/router/cloudflare/d1/signingLanes/d1LaneProtocolCommitter.js +0 -16
  430. package/dist/esm/router/cloudflare/d1/signingLanes/d1LaneRecords.js +0 -171
  431. package/dist/esm/router/cloudflare/d1/signingLanes/index.js +0 -10
  432. package/dist/esm/router/cloudflare/durableObjects/thresholdStore.js +0 -397
  433. package/dist/esm/router/cloudflare/signingLanes/cloudflareLaneCurveExecution.js +0 -597
  434. package/dist/esm/router/cloudflare/signingLanes/cloudflareLaneProtocolCommitter.js +0 -273
  435. package/dist/esm/router/cloudflare/signingLanes/index.js +0 -4
  436. package/dist/esm/router/cloudflare/signingLanes/linkedDeviceEd25519CeremonyBinding.js +0 -32
  437. package/dist/esm/router/transport/fetch/routes/nearPublicKeys.js +0 -27
  438. package/dist/esm/shared-ts/src/signing-lanes/rotation.js +0 -8
  439. package/dist/esm/shared-ts/src/signing-lanes/rotationDigests.js +0 -358
  440. package/dist/esm/shared-ts/src/signing-lanes/rotationLifecycle.js +0 -313
  441. package/dist/esm/shared-ts/src/signing-lanes/rotationParsers.js +0 -532
  442. package/dist/esm/shared-ts/src/signing-lanes/rotationProtocolParsers.js +0 -323
  443. package/dist/esm/shared-ts/src/signing-lanes/rotationWireFields.js +0 -59
  444. package/dist/types/shared-ts/src/signing-lanes/participantDigest.typecheck.d.ts +0 -2
  445. package/dist/types/shared-ts/src/signing-lanes/rotation.typecheck.d.ts +0 -2
  446. package/dist/types/shared-ts/src/signing-lanes/rotationDigests.d.ts +0 -13
  447. package/dist/types/shared-ts/src/signing-lanes/rotationLifecycle.d.ts +0 -78
  448. package/dist/types/shared-ts/src/signing-lanes/rotationParsers.d.ts +0 -27
  449. package/dist/types/shared-ts/src/signing-lanes/rotationProtocolParsers.d.ts +0 -6
  450. package/dist/types/shared-ts/src/signing-lanes/rotationWireFields.d.ts +0 -20
  451. package/dist/types/shared-ts/src/wallet-recovery/recoveryCodeAttempt.d.ts +0 -59
  452. package/dist/types/wallet-server/src/core/AuthService.d.ts +0 -3
  453. package/dist/types/wallet-server/src/core/NearPublicKeyStore.d.ts +0 -48
  454. package/dist/types/wallet-server/src/core/ThresholdService/stores/CloudflareDurableObjectStore.d.ts +0 -21
  455. package/dist/types/wallet-server/src/core/ThresholdService/stores/KeyStore.d.ts +0 -40
  456. package/dist/types/wallet-server/src/core/ThresholdService/stores/SessionStore.d.ts +0 -98
  457. package/dist/types/wallet-server/src/core/ThresholdService/stores/StoreConfig.d.ts +0 -4
  458. package/dist/types/wallet-server/src/core/ThresholdService/stores/ThresholdStoreConfig.typecheck.d.ts +0 -2
  459. package/dist/types/wallet-server/src/core/ThresholdService/stores/exportReplayGuard.d.ts +0 -3
  460. package/dist/types/wallet-server/src/core/authService/AuthService.d.ts +0 -490
  461. package/dist/types/wallet-server/src/core/authService/bytes.d.ts +0 -3
  462. package/dist/types/wallet-server/src/core/authService/configValues.d.ts +0 -7
  463. package/dist/types/wallet-server/src/core/authService/emailOtpChallengeOperations.d.ts +0 -109
  464. package/dist/types/wallet-server/src/core/authService/emailOtpChallengeProof.d.ts +0 -169
  465. package/dist/types/wallet-server/src/core/authService/emailOtpChallengeVerification.d.ts +0 -47
  466. package/dist/types/wallet-server/src/core/authService/emailOtpChallenges.d.ts +0 -86
  467. package/dist/types/wallet-server/src/core/authService/emailOtpDelivery.d.ts +0 -66
  468. package/dist/types/wallet-server/src/core/authService/emailOtpGrant.d.ts +0 -43
  469. package/dist/types/wallet-server/src/core/authService/emailOtpRegistrationEnrollment.d.ts +0 -49
  470. package/dist/types/wallet-server/src/core/authService/emailOtpUnlock.d.ts +0 -64
  471. package/dist/types/wallet-server/src/core/authService/googleEmailOtpOperations.d.ts +0 -126
  472. package/dist/types/wallet-server/src/core/authService/googleEmailOtpRegistration.d.ts +0 -169
  473. package/dist/types/wallet-server/src/core/authService/identity.d.ts +0 -25
  474. package/dist/types/wallet-server/src/core/authService/identityOperations.d.ts +0 -19
  475. package/dist/types/wallet-server/src/core/authService/nearAccountOperations.d.ts +0 -55
  476. package/dist/types/wallet-server/src/core/authService/nearPublicKeyMetadata.d.ts +0 -44
  477. package/dist/types/wallet-server/src/core/authService/oidcVerification.d.ts +0 -66
  478. package/dist/types/wallet-server/src/core/authService/registrationThresholdHelpers.d.ts +0 -11
  479. package/dist/types/wallet-server/src/core/authService/runtime.d.ts +0 -20
  480. package/dist/types/wallet-server/src/core/authService/storeRegistry.d.ts +0 -53
  481. package/dist/types/wallet-server/src/core/authService/thresholdStoreSummary.d.ts +0 -3
  482. package/dist/types/wallet-server/src/core/authService/webauthnAuthority.d.ts +0 -5
  483. package/dist/types/wallet-server/src/core/defaultConfigsServer.d.ts +0 -5
  484. package/dist/types/wallet-server/src/core/hostedAccountIds.d.ts +0 -16
  485. package/dist/types/wallet-server/src/core/routerAbSigning/createRouterAbSigningRuntimes.d.ts +0 -16
  486. package/dist/types/wallet-server/src/core/signingLanes/LaneAggregateRevocationApplicationService.d.ts +0 -36
  487. package/dist/types/wallet-server/src/core/signingLanes/LaneEffectJournalStore.d.ts +0 -62
  488. package/dist/types/wallet-server/src/core/signingLanes/LaneEnrollmentActivation.d.ts +0 -13
  489. package/dist/types/wallet-server/src/core/signingLanes/LaneEnrollmentRevocation.d.ts +0 -24
  490. package/dist/types/wallet-server/src/core/signingLanes/LaneLifecycleApplicationService.d.ts +0 -141
  491. package/dist/types/wallet-server/src/core/signingLanes/LaneLifecycleStore.d.ts +0 -228
  492. package/dist/types/wallet-server/src/core/signingLanes/ecdsaServerRetirement.d.ts +0 -58
  493. package/dist/types/wallet-server/src/core/signingLanes/ed25519ServerRetirement.d.ts +0 -30
  494. package/dist/types/wallet-server/src/core/signingLanes/signingWorkerLaneMaterialIdentity.d.ts +0 -4
  495. package/dist/types/wallet-server/src/core/storeBackends.d.ts +0 -83
  496. package/dist/types/wallet-server/src/core/utils.d.ts +0 -3
  497. package/dist/types/wallet-server/src/core/webAuthnStoreBackends.d.ts +0 -96
  498. package/dist/types/wallet-server/src/router/cloudflare/d1/near/d1NearPublicKeyStore.d.ts +0 -29
  499. package/dist/types/wallet-server/src/router/cloudflare/d1/signingLanes/d1EcdsaLanePrivateBindingResolver.d.ts +0 -4
  500. package/dist/types/wallet-server/src/router/cloudflare/d1/signingLanes/d1LaneAggregateRevocationApplicationService.d.ts +0 -4
  501. package/dist/types/wallet-server/src/router/cloudflare/d1/signingLanes/d1LaneEffectJournalStore.d.ts +0 -24
  502. package/dist/types/wallet-server/src/router/cloudflare/d1/signingLanes/d1LaneEnrollmentGateway.d.ts +0 -20
  503. package/dist/types/wallet-server/src/router/cloudflare/d1/signingLanes/d1LaneLifecycleApplicationService.d.ts +0 -13
  504. package/dist/types/wallet-server/src/router/cloudflare/d1/signingLanes/d1LaneLifecycleStore.d.ts +0 -51
  505. package/dist/types/wallet-server/src/router/cloudflare/d1/signingLanes/d1LaneLockStore.d.ts +0 -28
  506. package/dist/types/wallet-server/src/router/cloudflare/d1/signingLanes/d1LaneProtocolCommitter.d.ts +0 -5
  507. package/dist/types/wallet-server/src/router/cloudflare/d1/signingLanes/d1LaneRecords.d.ts +0 -107
  508. package/dist/types/wallet-server/src/router/cloudflare/d1/signingLanes/index.d.ts +0 -10
  509. package/dist/types/wallet-server/src/router/cloudflare/durableObjects/thresholdStore.d.ts +0 -18
  510. package/dist/types/wallet-server/src/router/cloudflare/signingLanes/cloudflareLaneCurveExecution.d.ts +0 -217
  511. package/dist/types/wallet-server/src/router/cloudflare/signingLanes/cloudflareLaneProtocolCommitter.d.ts +0 -73
  512. package/dist/types/wallet-server/src/router/cloudflare/signingLanes/index.d.ts +0 -4
  513. package/dist/types/wallet-server/src/router/cloudflare/signingLanes/linkedDeviceEd25519CeremonyBinding.d.ts +0 -6
  514. package/dist/types/wallet-server/src/router/transport/fetch/routes/nearPublicKeys.d.ts +0 -3
  515. /package/dist/esm/{core/signingLanes/LaneEffectJournalStore.js → authorization/recoveryRouting.js} +0 -0
  516. /package/dist/esm/{core/signingLanes/LaneLifecycleStore.js → authorization/sessionRouting.js} +0 -0
@@ -1,3 +1,4 @@
1
+ import type { RouterApiWalletProjectionAdapter } from '../../framework/routerApi';
1
2
  import type { RouterApiKeyAuthAdapter, RouterApiPublishableKeyAuthAdapter, RouterApiProjectEnvironmentResolver, RouterApiUsageMeterAdapter } from '../../framework/apiCredentialPorts';
2
3
  import { type WalletConsoleTenantRootActiveLineageResolverV1 } from './walletConsoleOps';
3
4
  /** The shape of a Cloudflare service binding (`Fetcher`). */
@@ -8,6 +9,7 @@ export interface WalletConsoleOpsClient {
8
9
  readonly apiKeyAuth: RouterApiKeyAuthAdapter;
9
10
  readonly publishableKeyAuth: RouterApiPublishableKeyAuthAdapter;
10
11
  readonly usageMeter: RouterApiUsageMeterAdapter;
12
+ readonly walletProjection: RouterApiWalletProjectionAdapter;
11
13
  readonly projectEnvironments: RouterApiProjectEnvironmentResolver;
12
14
  readonly tenantRootActiveLineage: WalletConsoleTenantRootActiveLineageResolverV1;
13
15
  }
@@ -17,7 +17,7 @@ export declare function walletConsoleSignedDelegateRouteDefinitionV1(routePath:
17
17
  export declare function walletConsoleSponsoredEvmCallRouteDefinitionV1(routePath?: string): RouteDefinition;
18
18
  export declare function walletConsoleRelayRouteDefinitionsV1(): readonly RouteDefinition[];
19
19
  export declare function createWalletConsoleRelayProxyExtensionV1(binding: WalletConsoleServiceBinding): RouterApiRouteExtension;
20
- type WalletGatewayManagedRouterOption = 'apiKeyAuth' | 'publishableKeyAuth' | 'apiKeyUsageMeter' | 'orgProjectEnv' | 'routerAbNormalSigningAdmission' | 'routeExtensions';
20
+ type WalletGatewayManagedRouterOption = 'apiKeyAuth' | 'publishableKeyAuth' | 'apiKeyUsageMeter' | 'walletProjection' | 'orgProjectEnv' | 'routerAbNormalSigningAdmission' | 'routeExtensions';
21
21
  export interface CloudflareWalletGatewayRouterOptionsV1 {
22
22
  readonly service: Parameters<typeof createCloudflareRouter>[0];
23
23
  readonly walletConsole: WalletConsoleServiceBinding;
@@ -31,10 +31,13 @@ export interface WalletRuntimeWalletIdentityRequest {
31
31
  readonly wallets: readonly {
32
32
  readonly walletId: string;
33
33
  readonly projectId: string;
34
+ readonly envId: string;
34
35
  }[];
35
36
  }
36
37
  export interface WalletRuntimeWalletIdentity {
37
38
  readonly walletId: string;
39
+ readonly projectId: string;
40
+ readonly envId: string;
38
41
  readonly nearAccountId: string;
39
42
  readonly evmAddress: `0x${string}`;
40
43
  }
@@ -46,7 +46,6 @@ export { extractBearerCredential, extractRouterApiEnvironmentId, resolveSourceIp
46
46
  export { createCloudflareRouter } from './cloudflare/runtime/createCloudflareRouter';
47
47
  export type { SelfHostedCloudflareSigningWorkerFactoryInput } from './cloudflare/runtime/createSelfHostedCloudflareSigningWorker';
48
48
  export { createSelfHostedCloudflareSigningRouter, createSelfHostedCloudflareSigningWorker, } from './cloudflare/runtime/createSelfHostedCloudflareSigningWorker';
49
- export { ThresholdStoreDurableObject } from './cloudflare/durableObjects/thresholdStore';
50
49
  export { CloudflareDurableObjectVersionedJsonRecordStore, CloudflareVersionedJsonRecordStoreError, createCloudflareDurableObjectVersionedJsonRecordStore, } from './cloudflare/durableObjects/versionedJsonRecordStore';
51
50
  export type { CloudflareVersionedJsonRecordStoreOptions } from './cloudflare/durableObjects/versionedJsonRecordStore';
52
51
  export type { VersionedJsonObject, VersionedJsonRecordPutResult, VersionedJsonRecordReadResult, VersionedJsonValue, } from './framework/versionedJsonRecordStore';
@@ -8,7 +8,7 @@ import { InMemoryRouterAbEd25519YaoRegistrationStateV1, type RouterAbEd25519YaoR
8
8
  import { InMemoryRouterAbEd25519YaoRegistrationIntentAuthorizationStateV1, type RouterAbEd25519YaoVerifiedActivationIntentV1, type RouterAbEd25519YaoRegistrationIntentBindingResult } from '../registration/routerAbEd25519YaoRegistrationIntentAuthorization';
9
9
  import { type RouterApiModule } from '../../../framework/modules';
10
10
  import type { MpcWalletSigningQuotaId, WalletSessionAuthorizationId, WalletSessionId } from '../../../../../../shared-ts/src/authorization/capabilityKinds';
11
- import type { ThresholdEd25519SessionId } from '../../../../../../shared-ts/src/utils/domainIds';
11
+ import { type ThresholdEd25519SessionId } from '../../../../../../shared-ts/src/utils/domainIds';
12
12
  import { type RuntimePolicyScope } from '../../../../../../shared-ts/src/threshold/signingRootScope';
13
13
  import type { WalletAuthAuthority } from '../../../../../../shared-ts/src/utils/walletAuthAuthority';
14
14
  import type { WalletSessionOperationCredentialV1 } from '../../../../../../shared-ts/src/device-linking';
@@ -16,8 +16,8 @@ export type RouterAbEd25519YaoProductRegistrationSharedStateV1 = {
16
16
  readonly recoveryCapabilities: ReadonlyMap<string, RecoveryCapabilityState>;
17
17
  readonly recoveryIdentityCapabilities: ReadonlyMap<string, string>;
18
18
  readonly recoverySessions: ReadonlyMap<string, string>;
19
- readonly exportAuthorizationNonces: ReadonlySet<string>;
20
- readonly exportAuthorizationUncertain: ReadonlySet<string>;
19
+ readonly exportAuthorizationNonceOwners: ReadonlyMap<string, string>;
20
+ readonly exportAuthorizationUncertainOwners: ReadonlyMap<string, string>;
21
21
  };
22
22
  export type RouterAbEd25519YaoProductRegistrationCeremonyStateV1 = {
23
23
  readonly kind: 'router_ab_ed25519_yao_product_registration_ceremony_state_v1';
@@ -225,8 +225,8 @@ type ExportCompletedState = ExportAuthorizationContext & {
225
225
  type ExportLifecycleState = ExportAuthorizedState | ExportAdmittingState | ExportAdmissionFailedState | ExportAdmittedState | ExportExecutingState | ExportExecutionFailedState | ExportCompletedState;
226
226
  export declare class InMemoryRouterAbEd25519YaoExportStateV1 {
227
227
  readonly exports: Map<string, ExportLifecycleState>;
228
- readonly authorizationNonces: Set<string>;
229
- readonly authorizationUncertain: Set<string>;
228
+ readonly authorizationNonceOwners: Map<string, string>;
229
+ readonly authorizationUncertainOwners: Map<string, string>;
230
230
  }
231
231
  export declare class InMemoryRouterAbEd25519YaoExportService implements RouterAbEd25519YaoExportService {
232
232
  private readonly backend;
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=routerAbEd25519YaoExport.typecheck.d.ts.map
@@ -1,7 +1,9 @@
1
+ import { type WalletLifecycleRoutingPublisher } from '../../../../authorization/lifecycleRouting';
1
2
  import { type RouterAbEd25519YaoExportAuthorizationAdapter, type RouterAbEd25519YaoExportBackend } from './routerAbEd25519YaoExport';
2
3
  import type { RouterAbEd25519YaoActiveCapabilityResolverV1 } from '../recovery/routerAbEd25519YaoRecovery';
3
4
  import type { RouterAbEd25519YaoProductRegistrationPartitionedStateStoreV1 } from '../capabilityLifecycle/routerAbEd25519YaoProductRegistrationPartitionedStateStore';
4
5
  export type RouterAbEd25519YaoExportRequestScopedCloudflareInputV1 = {
6
+ readonly lifecycleRouting?: WalletLifecycleRoutingPublisher;
5
7
  readonly request: Request;
6
8
  readonly store: RouterAbEd25519YaoProductRegistrationPartitionedStateStoreV1;
7
9
  readonly backend: RouterAbEd25519YaoExportBackend;
@@ -1,7 +1,9 @@
1
+ import { type WalletLifecycleRoutingPublisher } from '../../../../authorization/lifecycleRouting';
1
2
  import { type RouterAbEd25519YaoCapabilityPersistenceV1, type RouterAbEd25519YaoRecoveryAuthorizationAdapter, type RouterAbEd25519YaoRecoveryBackend, type RouterAbEd25519YaoActiveCapabilityResolverV1, type WarmBootstrapLinkedEd25519AuthorityReaderV1 } from './routerAbEd25519YaoRecovery';
2
3
  export type { WarmBootstrapLinkedEd25519AuthorityReaderV1 } from './routerAbEd25519YaoRecovery';
3
4
  import type { RouterAbEd25519YaoProductRegistrationPartitionedStateStoreV1 } from '../capabilityLifecycle/routerAbEd25519YaoProductRegistrationPartitionedStateStore';
4
5
  export type RouterAbEd25519YaoRecoveryRequestScopedCloudflareInputV1 = {
6
+ readonly lifecycleRouting?: WalletLifecycleRoutingPublisher;
5
7
  readonly request: Request;
6
8
  readonly store: RouterAbEd25519YaoProductRegistrationPartitionedStateStoreV1;
7
9
  readonly backend: RouterAbEd25519YaoRecoveryBackend;
@@ -60,10 +60,8 @@ export type PasskeyCustodyEnvelopeRetrievalResult = {
60
60
  readonly kind: 'credential_mismatch';
61
61
  } | {
62
62
  readonly kind: 'retired';
63
- readonly retiredAtMs: number;
64
63
  } | {
65
64
  readonly kind: 'revoked';
66
- readonly revokedAtMs: number;
67
65
  } | {
68
66
  readonly kind: 'missing';
69
67
  } | {
@@ -1,5 +1,4 @@
1
1
  import { type WalletCustodyCeremonyCommitPayload } from '../../../../../shared-ts/src/passkey-custody';
2
- import { type WalletId } from '../../../../../shared-ts/src/utils/domainIds';
3
2
  export type { WalletCustodyCeremonyCommitPayload };
4
3
  import type { CloudflareD1WalletCustodyCommitStore, WalletCustodyRegistrationCommitResult } from '../../cloudflare/d1/passkeyCustody/d1WalletCustodyCommitStore';
5
4
  export type WalletCustodyRegistrationCommitOutcome = ({
@@ -8,7 +7,6 @@ export type WalletCustodyRegistrationCommitOutcome = ({
8
7
  kind: 'committed';
9
8
  }>, 'kind'>) | {
10
9
  readonly kind: 'already_exists';
11
- readonly key: string;
12
10
  }
13
11
  /**
14
12
  * Another ceremony established this wallet's custody first. The route should
@@ -17,7 +15,6 @@ export type WalletCustodyRegistrationCommitOutcome = ({
17
15
  */
18
16
  | {
19
17
  readonly kind: 'custody_already_established';
20
- readonly walletId: WalletId;
21
18
  } | {
22
19
  readonly kind: 'rejected';
23
20
  readonly reason: string;
@@ -1,7 +1,6 @@
1
1
  import type { RouterAbSigningWorkerPrivateTransport } from '../../../core/routerAbSigning/RouterAbNormalSigningRuntime';
2
2
  import { type RouterAbEcdsaDerivationEvmDigestSigningFinalizeCoreRequestV1Wire, type RouterAbEcdsaDerivationEvmDigestSigningRequestV1Wire, type RouterAbPublicDigest32V1Wire } from '../../../../../shared-ts/src/utils/routerAbEcdsaDerivation';
3
3
  import type { RuntimePolicyScope } from '../../../../../shared-ts/src/threshold/signingRootScope';
4
- import type { SigningWorkerLaneMaterialIdentityV1 } from '../../../core/signingLanes/signingWorkerLaneMaterialIdentity';
5
4
  import type { AuthorizedOperationReplayResponse } from '../../../authorization/domain';
6
5
  import type { RouterAbNormalSigningAuthorizationWire } from '../../../../../shared-ts/src/utils/routerAbNormalSigningIdentity';
7
6
  import type { MpcMaterialActivationId } from '../../../../../shared-ts/src/utils/domainIds';
@@ -146,20 +145,7 @@ export type RouterAbNormalSigningMaterialSourceV1 = {
146
145
  readonly material_activation_id: string;
147
146
  readonly signing_worker_id: string;
148
147
  };
149
- readonly group_public_key?: never;
150
- } | {
151
- readonly kind: 'rotatable_lane';
152
- readonly lookup: {
153
- readonly identity: SigningWorkerLaneMaterialIdentityV1;
154
- readonly admittedLaneIdentityDigestB64u: string;
155
- };
156
- readonly group_public_key: string;
157
148
  };
158
- export declare function routerAbNormalSigningMaterialSourceFromActiveLaneV1(input: {
159
- readonly identity: SigningWorkerLaneMaterialIdentityV1;
160
- readonly admittedLaneIdentityDigestB64u: string;
161
- readonly groupPublicKey: string;
162
- }): RouterAbNormalSigningMaterialSourceV1;
163
149
  export declare function replayResponseFromSigningWorkerResult(result: RouterAbSigningWorkerJsonResult): AuthorizedOperationReplayResponse;
164
150
  export declare function isRouterAbEcdsaSigningWorkerOperationInProgress(result: RouterAbSigningWorkerJsonResult): boolean;
165
151
  export declare function parseRouterAbEd25519NormalSigningScopeV2(value: unknown): RouterAbEd25519NormalSigningScopeV2;
@@ -177,7 +163,6 @@ type RouterAbEd25519PrivateSigningWorkerBuildInput = {
177
163
  readonly body: Record<string, unknown>;
178
164
  readonly authorization: RouterAbPrivateSigningAuthorization;
179
165
  readonly headers: Record<string, string | string[] | undefined>;
180
- readonly materialSource?: RouterAbNormalSigningMaterialSourceV1;
181
166
  readonly effectClaim?: never;
182
167
  } | {
183
168
  readonly phase: 'finalize';
@@ -185,7 +170,6 @@ type RouterAbEd25519PrivateSigningWorkerBuildInput = {
185
170
  readonly authorization: RouterAbPrivateSigningAuthorization;
186
171
  readonly headers: Record<string, string | string[] | undefined>;
187
172
  readonly effectClaim: RouterAbNormalSigningEffectClaimV1;
188
- readonly materialSource?: RouterAbNormalSigningMaterialSourceV1;
189
173
  };
190
174
  export declare function buildRouterAbEd25519PrivateSigningWorkerBody(input: RouterAbEd25519PrivateSigningWorkerBuildInput): Promise<RouterAbEd25519PrivateSigningWorkerBody>;
191
175
  export declare function buildRouterAbEcdsaDerivationPrivateSigningWorkerBody(input: {
@@ -193,7 +177,6 @@ export declare function buildRouterAbEcdsaDerivationPrivateSigningWorkerBody(inp
193
177
  body: Record<string, unknown>;
194
178
  authorization: RouterAbPrivateSigningAuthorization;
195
179
  headers: Record<string, string | string[] | undefined>;
196
- materialSource?: RouterAbNormalSigningMaterialSourceV1;
197
180
  }): Promise<RouterAbEcdsaDerivationPrivateSigningWorkerBody>;
198
181
  export type RouterAbEcdsaOperationStepUpRequest = RouterAbEcdsaDerivationEvmDigestSigningRequestV1Wire | RouterAbEcdsaDerivationEvmDigestSigningFinalizeCoreRequestV1Wire;
199
182
  export declare function postRouterAbSigningWorkerJson(input: {
@@ -1,7 +1,7 @@
1
1
  import { EVM_ECDSA_MPC_OPERATION_KINDS, NEAR_ED25519_MPC_OPERATION_KINDS } from '../../../../../shared-ts/src/authorization/capabilityKinds';
2
2
  import { type LaneParticipantBindingDigestB64u, type PreparedOwnerWalletExecution, type SigningLaneRecord, type WalletKeyRecord } from '../../../../../shared-ts/src/signing-lanes';
3
3
  import { type DigestB64u } from '../../../../../shared-ts/src/utils/canonicalPrimitives';
4
- import { type MpcMaterialActivationRef, type WalletAuthorityId, type WalletId, type WalletKeyId } from '../../../../../shared-ts/src/utils/domainIds';
4
+ import { type MpcMaterialActivationRef, type WalletId, type WalletKeyId } from '../../../../../shared-ts/src/utils/domainIds';
5
5
  import type { ActiveWalletAuthorityV1 } from '../../../../../shared-ts/src/authorization/walletAuthority';
6
6
  import type { ExactAdministeredEcdsaSignerV1, ExactAdministeredEd25519SignerV1 } from '../../../../../shared-ts/src/device-linking/delegatedActivationPlan';
7
7
  import type { WalletAuthMethodRecordV2 } from '../../../../../shared-ts/src/utils/walletAuthMethodRecord';
@@ -68,7 +68,6 @@ export type WalletSessionAuthorizationV2AdmissionResult = ({
68
68
  export type WalletSessionAuthorizationV2AdministrationAdmissionResult = {
69
69
  readonly ok: true;
70
70
  readonly operationKind: 'link_devices';
71
- readonly authorityId: WalletAuthorityId;
72
71
  } | {
73
72
  readonly ok: false;
74
73
  readonly error: WalletSessionAuthorizationV2AdmissionError;
@@ -6,6 +6,7 @@ import type { WalletRegistrationAuthorityInput, WalletRegistrationFinalizeSigner
6
6
  import type { ThresholdRuntimePolicyScope } from '../../../core/types';
7
7
  import type { WalletRegistrationSetupMinter, WalletRegistrationSetupVerifier } from './walletRegistrationSetupPayload';
8
8
  export type WalletRegistrationSetupRequest = {
9
+ readonly registrationOperationId: string;
9
10
  readonly wallet?: RegisterWalletInput;
10
11
  readonly signerSelection: RegistrationSignerSetSelection;
11
12
  readonly authMethod: RegistrationAuthMethodInput;
@@ -0,0 +1,51 @@
1
+ import { type DeviceId } from '../../../../../shared-ts/src/authorization/capabilityKinds';
2
+ import { type WalletAuthorityId, type WalletAuthMethodId, type WalletId } from '../../../../../shared-ts/src/utils/domainIds';
3
+ import type { WalletRegistrationSetupInput } from './walletRegistrationInputs';
4
+ export type WalletRegistrationSetupReservation = {
5
+ readonly walletId: WalletId;
6
+ readonly ceremonyId: string;
7
+ readonly preparationId: string;
8
+ readonly walletAuthorityId: WalletAuthorityId;
9
+ readonly deviceId: DeviceId;
10
+ readonly walletAuthMethodId: WalletAuthMethodId;
11
+ readonly reservedAtMs: number;
12
+ };
13
+ export type WalletRegistrationSetupReservationResult = {
14
+ readonly ok: true;
15
+ readonly reservation: WalletRegistrationSetupReservation;
16
+ readonly lifecycle: 'reserved' | 'established';
17
+ readonly code?: never;
18
+ readonly message?: never;
19
+ } | {
20
+ readonly ok: false;
21
+ readonly code: string;
22
+ readonly message: string;
23
+ readonly reservation?: never;
24
+ readonly lifecycle?: never;
25
+ };
26
+ type ReservationOutcome = {
27
+ readonly ok: true;
28
+ } | {
29
+ readonly ok: false;
30
+ readonly code: string;
31
+ readonly message: string;
32
+ };
33
+ export interface WalletRegistrationReservationAuthority {
34
+ reserve(input: WalletRegistrationSetupInput): Promise<WalletRegistrationSetupReservationResult>;
35
+ admitHome(input: {
36
+ readonly ceremonyId: string;
37
+ readonly walletId: WalletId;
38
+ }): Promise<ReservationOutcome>;
39
+ complete(input: {
40
+ readonly ceremonyId: string;
41
+ readonly walletId: WalletId;
42
+ readonly outcome: 'established' | 'cancelled';
43
+ }): Promise<ReservationOutcome>;
44
+ }
45
+ export declare function parseWalletRegistrationSetupReservation(raw: unknown): WalletRegistrationSetupReservation;
46
+ export declare function proposeWalletRegistrationSetup(input: WalletRegistrationSetupInput): WalletRegistrationSetupReservation;
47
+ export declare function walletRegistrationSetupRequestDigest(namespace: string, input: WalletRegistrationSetupInput): Promise<string>;
48
+ export declare function completeRegistrationReservation(authority: WalletRegistrationReservationAuthority | null, input: Parameters<WalletRegistrationReservationAuthority['complete']>[0]): Promise<ReservationOutcome>;
49
+ export declare function admitRegistrationReservationHome(authority: WalletRegistrationReservationAuthority | null, input: Parameters<WalletRegistrationReservationAuthority['admitHome']>[0]): Promise<ReservationOutcome>;
50
+ export {};
51
+ //# sourceMappingURL=walletRegistrationReservation.d.ts.map
@@ -1,4 +1,4 @@
1
- import type { WalletRegistrationNearProvisioningResponseV2, WalletRegistrationNearAdmissionResponseV2, WalletRegistrationActivateRouteResponseV2, WalletRegistrationRespondResponseV2, WalletRegistrationSetupResponseV2 } from '../../../core/threeRouteRegistrationContracts';
1
+ import type { WalletRegistrationNearProvisioningResponseV2, WalletRegistrationNearAdmissionResponseV2, WalletRegistrationActivateRouteResponseV2, WalletRegistrationRespondResponseV2 } from '../../../core/threeRouteRegistrationContracts';
2
2
  import type { RouterApiPublishableKeyAuthAdapter } from '../../framework/routerApi';
3
3
  import type { RouterApiAuthorizationSessionService, RouterApiWalletRegistrationRouteService } from '../../framework/authServicePort';
4
4
  import type { FundImplicitNearAccountResult } from '../../../core/types';
@@ -33,15 +33,7 @@ type RouterApiWalletRegistrationInput = {
33
33
  signingSessionSeal?: SigningSessionSealRoutesOptions | null;
34
34
  };
35
35
  export declare function handleRouterApiWalletAddSignerIntent(input: RouterApiWalletRegistrationInput): Promise<RouteResponse<CreateAddSignerIntentResponse | RouteErrorBody>>;
36
- /**
37
- * `POST /wallets/register/setup` — the single admitted entry point that
38
- * replaces the bootstrap grant, the intent, and start.
39
- *
40
- * Authentication is the same API-credential plane the intent route used, so
41
- * origin and environment binding are unchanged; what is gone is the stored
42
- * grant that used to sit between the check and its only reader.
43
- */
44
- export declare function handleRouterApiWalletRegistrationSetup(input: RouterApiWalletRegistrationInput): Promise<RouteResponse<WalletRegistrationSetupResponseV2 | RouteErrorBody>>;
36
+ export declare function handleRouterApiWalletRegistrationSetup(input: RouterApiWalletRegistrationInput): Promise<RouteResponse>;
45
37
  /**
46
38
  * `POST /wallets/register/respond` — the authenticated leg.
47
39
  *
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * The opaque payload `/wallets/register/setup` mints and routes 2 and 3 verify.
3
3
  *
4
- * Setup admits the application, allocates the wallet, and runs the Router
5
- * preparation in one request. Routes 2 and 3 then need to know that the
4
+ * Setup admits the application, reserves the wallet, and persists the initial
5
+ * preparation facts in one request. Routes 2 and 3 then need to know that the
6
6
  * ceremony they are being driven with is the one setup admitted, and with the
7
7
  * parameters setup admitted — without paying another storage round trip to
8
8
  * find out. The client carries this string and never parses it.
@@ -1,3 +1,4 @@
1
+ import type { RouteResponse } from './routeExecutionContext';
1
2
  import type { D1EcdsaAdmissionPolicyRead } from '../cloudflare/d1/signingAdmission/d1RouterAbNormalSigningAdmissionStore';
2
3
  import type { EcdsaMaterialRead, EcdsaMaterialActivationReadInput } from '../../core/d1EcdsaSignerRead';
3
4
  import type { EcdsaMaterialReadSnapshot } from '../../core/ecdsaMaterialReadSnapshot';
@@ -5,7 +6,7 @@ import type { DigestB64u } from '../../../../shared-ts/src/utils/canonicalPrimit
5
6
  import type { TenantRootIdentityV1 } from '../../../../shared-ts/src/tenant-root/tenantRootIdentity';
6
7
  import type { AddAuthMethodIntentCallerV1, AddAuthMethodIntentGrant } from '../../../../shared-ts/src/utils/registrationIntent';
7
8
  import type { ActiveEmailOtpWalletAuthMethodRecordV2, ActivePasskeyWalletAuthMethodRecordV2, ActiveWalletAuthMethodRecordV2 } from '../../../../shared-ts/src/utils/walletAuthMethodRecord';
8
- import type { WalletRegistrationNearProvisioningResponseV2, WalletRegistrationNearAdmissionResponseV2, WalletRegistrationActivateResponseV2, WalletRegistrationRespondResponseV2, WalletRegistrationSetupResponseV2 } from '../../core/threeRouteRegistrationContracts';
9
+ import type { WalletRegistrationNearProvisioningResponseV2, WalletRegistrationNearAdmissionResponseV2, WalletRegistrationActivateResponseV2, WalletRegistrationRespondResponseV2 } from '../../core/threeRouteRegistrationContracts';
9
10
  import type { WalletRegistrationNearProvisioningInput, WalletRegistrationNearAdmissionInput, WalletRegistrationActivateInput, WalletRegistrationRespondInput, WalletRegistrationSetupInput } from '../domains/walletRegistration/walletRegistrationInputs';
10
11
  import type { WalletEmailOtpAction } from '../../../../shared-ts/src/utils/emailOtpDomain';
11
12
  import type { MpcMaterialActivationRef, OrgId, ProviderSubject, WalletAuthMethodId, WalletAuthorityId, WalletId, WebAuthnCredentialIdB64u, WebAuthnRpId } from '../../../../shared-ts/src/utils/domainIds';
@@ -19,7 +20,6 @@ import type { WalletExecutionLaneAuthSource, WalletExecutionLaneProjectionResult
19
20
  import type { RouterAbMpcMaterialActivationRefWire } from '../../../../shared-ts/src/utils/routerAbNormalSigningIdentity';
20
21
  import type { EmailOtpChannel, EmailOtpChallengeOperation, EmailOtpWalletEnrollmentRecord } from '../../core/EmailOtpStores';
21
22
  import type { LinkIdentityResult, UnlinkIdentityResult } from '../../core/IdentityStore';
22
- import type { NearPublicKeyAuthBinding, NearPublicKeyKind } from '../../core/NearPublicKeyStore';
23
23
  import type { ResolvedEd25519WalletBinding } from '../../core/authService/webauthnWalletBinding';
24
24
  import type { RouterAbEcdsaPresignRuntime } from '../../core/routerAbSigning/RouterAbEcdsaPresignRuntime';
25
25
  import type { DeviceLinkingRouteServiceV1 } from '../transport/fetch/routes/deviceLinking';
@@ -349,6 +349,17 @@ type GoogleEmailOtpResolutionResult = {
349
349
  readonly registrationAttemptId: string;
350
350
  readonly expiresAtMs: number;
351
351
  readonly offer: GoogleEmailOtpRegistrationOffer;
352
+ } | {
353
+ readonly ok: false;
354
+ readonly mode: 'wallet_identity_mismatch';
355
+ readonly code: 'wallet_identity_mismatch';
356
+ readonly walletId: string;
357
+ readonly providerSubject: string;
358
+ readonly message: string;
359
+ readonly offer?: never;
360
+ readonly registrationAttemptId?: never;
361
+ readonly expiresAtMs?: never;
362
+ readonly hasEmailOtpEnrollment?: never;
352
363
  } | {
353
364
  readonly ok: false;
354
365
  readonly mode: 'wallet_id_collision' | 'registration_incomplete' | 'stale_identity_mapping';
@@ -603,24 +614,6 @@ type RouterApiMethodTypes = {
603
614
  readonly message?: string;
604
615
  };
605
616
  };
606
- listNearPublicKeysForUser: {
607
- readonly input: {
608
- readonly userId: string;
609
- };
610
- readonly result: {
611
- readonly ok: boolean;
612
- readonly code?: string;
613
- readonly message?: string;
614
- readonly keys?: Array<{
615
- readonly publicKey: string;
616
- readonly kind: NearPublicKeyKind;
617
- readonly signerSlot?: number;
618
- readonly createdAtMs?: number;
619
- readonly updatedAtMs?: number;
620
- readonly authBinding?: NearPublicKeyAuthBinding;
621
- }>;
622
- };
623
- };
624
617
  listWalletEcdsaKeyFactsInventory: {
625
618
  readonly input: {
626
619
  readonly walletId: string;
@@ -736,17 +729,6 @@ type RouterApiMethodTypes = {
736
729
  };
737
730
  readonly result: GoogleEmailOtpResolutionResult;
738
731
  };
739
- resolveOidcWalletId: {
740
- readonly input: {
741
- readonly providerSubject?: string;
742
- readonly sub?: string;
743
- readonly email?: string;
744
- readonly accountMode?: unknown;
745
- readonly runtimePolicyScope?: ThresholdRuntimePolicyScope;
746
- readonly restartRegistrationOffer?: unknown;
747
- };
748
- readonly result: string;
749
- };
750
732
  revokeWalletAuthMethodWithFreshProof: {
751
733
  readonly input: RevokeWalletAuthMethodWithFreshProofCommand;
752
734
  readonly result: RevokeWalletAuthMethodWithFreshProofResult;
@@ -1038,7 +1020,7 @@ export interface RouterApiWalletRegistrationService {
1038
1020
  }>;
1039
1021
  listWalletEcdsaKeyFactsInventory(input: RouterApiMethodTypes['listWalletEcdsaKeyFactsInventory']['input']): Promise<RouterApiMethodTypes['listWalletEcdsaKeyFactsInventory']['result']>;
1040
1022
  readActiveEmailOtpEnrollment(input: RouterApiMethodTypes['readActiveEmailOtpEnrollment']['input']): Promise<RouterApiMethodTypes['readActiveEmailOtpEnrollment']['result']>;
1041
- setupWalletRegistration(input: WalletRegistrationSetupInput): Promise<WalletRegistrationSetupResponseV2>;
1023
+ setupWalletRegistration(input: WalletRegistrationSetupInput): Promise<RouteResponse>;
1042
1024
  respondWalletRegistration(input: WalletRegistrationRespondInput, traceContext?: RouterAbTraceContextV1, serverTiming?: Array<readonly [string, number]>): Promise<WalletRegistrationRespondResponseV2>;
1043
1025
  authorizeWalletRegistrationNearAdmission(input: WalletRegistrationNearAdmissionInput): Promise<WalletRegistrationNearAdmissionResponseV2>;
1044
1026
  activateWalletRegistration(input: WalletRegistrationActivateInput, traceContext?: RouterAbTraceContextV1, serverTiming?: Array<readonly [string, number]>): Promise<WalletRegistrationActivateResponseV2>;
@@ -1272,7 +1254,6 @@ export interface RouterApiIdentityService {
1272
1254
  linkIdentity(input: RouterApiMethodTypes['linkIdentity']['input']): Promise<RouterApiMethodTypes['linkIdentity']['result']>;
1273
1255
  listIdentities(input: RouterApiMethodTypes['listIdentities']['input']): Promise<RouterApiMethodTypes['listIdentities']['result']>;
1274
1256
  resolveGoogleEmailOtpSession(input: RouterApiMethodTypes['resolveGoogleEmailOtpSession']['input']): Promise<RouterApiMethodTypes['resolveGoogleEmailOtpSession']['result']>;
1275
- resolveOidcWalletId(input: RouterApiMethodTypes['resolveOidcWalletId']['input']): Promise<RouterApiMethodTypes['resolveOidcWalletId']['result']>;
1276
1257
  unlinkIdentity(input: RouterApiMethodTypes['unlinkIdentity']['input']): Promise<RouterApiMethodTypes['unlinkIdentity']['result']>;
1277
1258
  verifyGoogleLogin(input: RouterApiMethodTypes['verifyGoogleLogin']['input']): Promise<RouterApiMethodTypes['verifyGoogleLogin']['result']>;
1278
1259
  verifyGithubOAuthCode(input: RouterApiMethodTypes['verifyGithubOAuthCode']['input']): Promise<RouterApiMethodTypes['verifyGithubOAuthCode']['result']>;
@@ -1287,7 +1268,6 @@ export interface RouterApiWebAuthnService {
1287
1268
  }
1288
1269
  interface RouterApiNearFundingService {
1289
1270
  fundImplicitNearAccount(input: FundImplicitNearAccountRequest): Promise<FundImplicitNearAccountResult>;
1290
- listNearPublicKeysForUser(input: RouterApiMethodTypes['listNearPublicKeysForUser']['input']): Promise<RouterApiMethodTypes['listNearPublicKeysForUser']['result']>;
1291
1271
  }
1292
1272
  interface RouterApiRouterAccountService {
1293
1273
  getConfiguredRelayerAccount(): string;
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=googleLoginResolution.typecheck.d.ts.map
@@ -0,0 +1,13 @@
1
+ import type { WalletRegistrationSetupInput } from '../domains/walletRegistration/walletRegistrationInputs';
2
+ import type { WalletRegistrationSetupResponseV2 } from '../../core/threeRouteRegistrationContracts';
3
+ import type { RouteResponse } from './routeExecutionContext';
4
+ export interface WalletRegistrationSetupDispatcher {
5
+ dispatch(input: WalletRegistrationSetupInput): Promise<RouteResponse | null>;
6
+ }
7
+ export declare function dispatchWalletRegistrationSetup(context: {
8
+ readonly dispatcher: WalletRegistrationSetupDispatcher | null;
9
+ readonly local: {
10
+ setupWalletRegistration(input: WalletRegistrationSetupInput): Promise<WalletRegistrationSetupResponseV2>;
11
+ };
12
+ }, input: WalletRegistrationSetupInput): Promise<RouteResponse>;
13
+ //# sourceMappingURL=registrationSetupDispatch.d.ts.map
@@ -14,7 +14,7 @@ import { type LinkDeviceSessionId } from '../../../../../../shared-ts/src/signin
14
14
  import type { WalletId } from '../../../../../../shared-ts/src/utils/domainIds';
15
15
  export type DeviceLinkingAuthDeniedV1 = {
16
16
  readonly kind: 'denied';
17
- readonly code: 'unauthorized' | 'expired' | 'invalid' | 'replayed';
17
+ readonly code: 'unauthorized' | 'expired' | 'invalid' | 'replayed' | 'unavailable';
18
18
  readonly message: string;
19
19
  };
20
20
  export type DeviceLinkingRequestBindingV1 = {
@@ -0,0 +1,17 @@
1
+ import type { DeviceLinkingAuthDeniedV1 } from './deviceLinking';
2
+ import { type LinkSessionProjectionV1, type LinkedDeviceTargetCredentialRegistrationResultV1 } from '../../../../../../shared-ts/src/device-linking/contracts';
3
+ import type { LinkedDeviceSessionRecordV1 } from '../../../../core/deviceLinking/linkedDeviceSessionRecord';
4
+ export declare function projectSession(record: LinkedDeviceSessionRecordV1): LinkSessionProjectionV1;
5
+ export declare function invalidStateResponse(record: LinkedDeviceSessionRecordV1): Response;
6
+ export declare function sessionProjectionResponse(record: LinkedDeviceSessionRecordV1, outcome: 'applied' | 'replayed'): Response;
7
+ export declare function targetCredentialResultResponse(record: LinkedDeviceSessionRecordV1, outcome: 'applied' | 'replayed', targetCredential: LinkedDeviceTargetCredentialRegistrationResultV1): Response;
8
+ export declare function exportRootWriteResponse(result: {
9
+ readonly outcome: 'applied' | 'replayed' | 'conflict';
10
+ readonly reason?: string;
11
+ }): Response;
12
+ export declare function invalidInputResponse(message: string): Response;
13
+ export declare function notSupportedResponse(message?: string): Response;
14
+ export declare function notFoundResponse(): Response;
15
+ export declare function methodNotAllowedResponse(): Response;
16
+ export declare function authDeniedResponse(result: DeviceLinkingAuthDeniedV1): Response;
17
+ //# sourceMappingURL=deviceLinkingResponses.d.ts.map
@@ -0,0 +1,37 @@
1
+ import type { CapabilityOperationEnvelope } from '../../../../../../shared-ts/src/authorization/operationFingerprint';
2
+ import { type WalletId } from '../../../../../../shared-ts/src/utils/domainIds';
3
+ import type { WalletAuthAuthorityRef } from '../../../../../../shared-ts/src/utils/walletAuthAuthority';
4
+ import type { RouterAbEcdsaOperationStepUpAuthorizationRequestV1Wire } from '../../../../../../shared-ts/src/utils/routerAbEcdsaDerivation';
5
+ import { type VerifiedWalletOperationFactorResult } from '../../../../authorization/factorEvidence';
6
+ import type { SessionOrigin } from '../../../../authorization/domain';
7
+ import type { WalletExecutionLaneAuthSource } from '../../../../core/signingLanes/WalletExecutionLaneProjection';
8
+ import type { RouterApiEmailOtpRouteService, RouterApiWebAuthnService } from '../../../framework/authServicePort';
9
+ type StepUpUnseal = {
10
+ readonly kind: 'not_requested';
11
+ } | {
12
+ readonly kind: 'email_otp_grant';
13
+ readonly grant: string;
14
+ readonly challenge_id: string;
15
+ };
16
+ type VerifiedStepUpFactorResult = {
17
+ readonly ok: true;
18
+ readonly factor: VerifiedWalletOperationFactorResult;
19
+ readonly unseal: StepUpUnseal;
20
+ } | {
21
+ readonly ok: false;
22
+ readonly response: Response;
23
+ };
24
+ export declare function verifyEcdsaOperationStepUpFactor(input: {
25
+ readonly proof: RouterAbEcdsaOperationStepUpAuthorizationRequestV1Wire['proof'];
26
+ readonly operation: CapabilityOperationEnvelope;
27
+ readonly walletId: WalletId;
28
+ readonly authorityRef: WalletAuthAuthorityRef;
29
+ readonly authSource: WalletExecutionLaneAuthSource;
30
+ readonly requestOrigin: SessionOrigin;
31
+ readonly expectedChallenge: string;
32
+ readonly expiresAtMs: number;
33
+ readonly webAuthn: Pick<RouterApiWebAuthnService, 'verifyWebAuthnAuthenticationLite'>;
34
+ readonly emailOtp: Pick<RouterApiEmailOtpRouteService, 'verifyEmailOtpChallenge' | 'consumeEmailOtpGrant'>;
35
+ }): Promise<VerifiedStepUpFactorResult>;
36
+ export {};
37
+ //# sourceMappingURL=ecdsaOperationStepUpFactor.d.ts.map
@@ -10,7 +10,6 @@ export declare function parseD1JsonColumn(value: unknown): unknown;
10
10
  export declare function parseD1JsonArrayColumn(value: unknown): readonly unknown[];
11
11
  export declare function parseD1JsonObjectColumn(value: unknown): Record<string, unknown>;
12
12
  export declare function isD1DatabaseLike(value: unknown): value is D1DatabaseLike;
13
- export declare function resolveD1DatabaseFromConfig(config: Record<string, unknown>): D1DatabaseLike | null;
14
13
  /**
15
14
  * Aborts the D1 batch it is in when the statement just before it changed no
16
15
  * row: it collides with the guard table's immutable singleton, and the
@@ -0,0 +1,16 @@
1
+ CREATE TABLE namespace_home_challenges (
2
+ namespace TEXT NOT NULL,
3
+ challenge_id TEXT NOT NULL,
4
+ account_id TEXT NOT NULL,
5
+ database_id TEXT NOT NULL,
6
+ proof TEXT NOT NULL,
7
+ issued_at_ms INTEGER NOT NULL,
8
+ expires_at_ms INTEGER NOT NULL,
9
+ PRIMARY KEY (namespace, challenge_id),
10
+ CHECK (length(challenge_id) = 64),
11
+ CHECK (length(proof) = 64),
12
+ CHECK (issued_at_ms > 0),
13
+ CHECK (expires_at_ms > issued_at_ms AND expires_at_ms <= issued_at_ms + 300000)
14
+ );
15
+
16
+ CREATE INDEX namespace_home_challenges_expiry_idx ON namespace_home_challenges(expires_at_ms);
@@ -0,0 +1,28 @@
1
+ DROP TRIGGER authorized_operation_step_up_claim_atomic;
2
+
3
+ CREATE TRIGGER authorized_operation_step_up_claim_atomic
4
+ AFTER INSERT ON authorized_operations
5
+ WHEN NEW.lifecycle_kind = 'claimed'
6
+ AND NEW.authorization_source_kind = 'verified_step_up'
7
+ BEGIN
8
+ SELECT CASE
9
+ WHEN NOT EXISTS (
10
+ SELECT 1
11
+ FROM verified_wallet_operation_evidence_sets AS evidence
12
+ WHERE evidence.namespace = NEW.namespace
13
+ AND evidence.tenant_id = NEW.tenant_id
14
+ AND evidence.evidence_set_digest = NEW.evidence_set_digest
15
+ AND evidence.principal_id = NEW.principal_id
16
+ AND evidence.capability_kind = NEW.capability_kind
17
+ AND evidence.operation_kind = NEW.operation_kind
18
+ AND evidence.lane_digest = NEW.lane_digest
19
+ AND evidence.intent_digest = NEW.intent_digest
20
+ AND evidence.display_digest = NEW.display_digest
21
+ AND evidence.assurance = 'step_up'
22
+ AND evidence.expires_at_ms > NEW.claimed_at_ms
23
+ -- The database clock closes delays between verification and this write.
24
+ AND evidence.expires_at_ms > CAST(round(unixepoch('subsec') * 1000) AS INTEGER)
25
+ )
26
+ THEN RAISE(ABORT, 'authorization_evidence_claim_rejected')
27
+ END;
28
+ END;
@@ -0,0 +1,4 @@
1
+ ALTER TABLE namespace_home_challenges RENAME TO deployment_resource_challenges;
2
+ DROP INDEX namespace_home_challenges_expiry_idx;
3
+ CREATE INDEX deployment_resource_challenges_expiry_idx
4
+ ON deployment_resource_challenges(expires_at_ms);
@@ -0,0 +1,2 @@
1
+ ALTER TABLE email_otp_registration_attempts
2
+ ADD COLUMN selection_digest TEXT CHECK (selection_digest IS NULL OR length(selection_digest) > 0);
@@ -0,0 +1,6 @@
1
+ -- This receipt survives session cleanup to prevent replayed imports from resurrecting sessions.
2
+ CREATE TABLE linked_device_bootstrap_imports (
3
+ namespace TEXT NOT NULL, org_id TEXT NOT NULL, project_id TEXT NOT NULL, env_id TEXT NOT NULL,
4
+ link_session_id TEXT NOT NULL,
5
+ PRIMARY KEY (namespace, org_id, project_id, env_id, link_session_id)
6
+ );
@@ -0,0 +1,29 @@
1
+ -- Unowned receipts cannot be attributed from capability hashes. Require the
2
+ -- disposable-wallet reset before replacing a populated receipt table.
3
+ CREATE TABLE capability_receipt_reset_guard (
4
+ receipt_count INTEGER NOT NULL CHECK (receipt_count = 0)
5
+ );
6
+ INSERT INTO capability_receipt_reset_guard
7
+ SELECT COUNT(*) FROM router_ab_yao_capability_replacements;
8
+ DROP TABLE capability_receipt_reset_guard;
9
+ DROP TABLE router_ab_yao_capability_replacements;
10
+ CREATE TABLE router_ab_yao_capability_replacements (
11
+ namespace TEXT NOT NULL,
12
+ org_id TEXT NOT NULL,
13
+ project_id TEXT NOT NULL,
14
+ env_id TEXT NOT NULL,
15
+ wallet_id TEXT NOT NULL CHECK (length(wallet_id) > 0),
16
+ operation_id TEXT NOT NULL,
17
+ operation_fingerprint TEXT NOT NULL,
18
+ previous_capability_binding_json TEXT NOT NULL,
19
+ next_capability_binding_json TEXT NOT NULL,
20
+ created_at_ms INTEGER NOT NULL,
21
+ PRIMARY KEY (namespace, org_id, project_id, env_id, operation_id),
22
+ CHECK (length(operation_id) > 0),
23
+ CHECK (length(operation_fingerprint) > 0),
24
+ CHECK (json_valid(previous_capability_binding_json)),
25
+ CHECK (json_valid(next_capability_binding_json)),
26
+ CHECK (created_at_ms >= 0)
27
+ );
28
+ CREATE INDEX capability_replacements_wallet ON router_ab_yao_capability_replacements
29
+ (namespace, org_id, project_id, env_id, wallet_id);