@seams/wallet-server 0.7.3 → 0.9.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 (743) hide show
  1. package/THIRD_PARTY_NOTICES.md +7 -9
  2. package/artifact-manifest.json +241 -41
  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/migrations/deriver-a/0019_wallet_object_addresses.sql +10 -0
  22. package/cloudflare-router-ab/migrations/deriver-b/0019_wallet_object_addresses.sql +10 -0
  23. package/cloudflare-router-ab/scripts/prepare-local-runtime-config.mjs +3 -119
  24. package/cloudflare-router-ab/scripts/start-local-role-workers.mjs +77 -20
  25. package/cloudflare-router-ab/wrangler.deriver-a.toml +0 -8
  26. package/cloudflare-router-ab/wrangler.deriver-b.toml +24 -8
  27. package/cloudflare-router-ab/wrangler.router.toml +0 -2
  28. package/cloudflare-router-ab/wrangler.signing-worker.toml +29 -0
  29. package/dist/esm/authorization/domain.js +3 -2
  30. package/dist/esm/authorization/lifecycleRouting.js +62 -0
  31. package/dist/esm/authorization/service.js +86 -35
  32. package/dist/esm/cloud-host.js +42 -39
  33. package/dist/esm/core/EmailOtpRecords.js +29 -222
  34. package/dist/esm/core/EmailOtpStores.js +0 -859
  35. package/dist/esm/core/IdentityStore.js +2 -339
  36. package/dist/esm/core/ThresholdService/config.js +1 -9
  37. package/dist/esm/core/ThresholdService/index.js +0 -4
  38. package/dist/esm/core/ThresholdService/kv.js +1 -66
  39. package/dist/esm/core/ThresholdService/routerAb/ecdsaDerivationPoolFillHandlers.js +3 -13
  40. package/dist/esm/core/ThresholdService/routerAb/ecdsaDerivationPresignBridge.js +10 -0
  41. package/dist/esm/core/ThresholdService/routerAb/internalServiceHttp.js +1 -0
  42. package/dist/esm/core/ThresholdService/routerAbNormalSigningPolicy.js +1 -11
  43. package/dist/esm/core/ThresholdService/stores/WalletSessionStore.js +0 -541
  44. package/dist/esm/core/ThresholdService/validation.js +3 -347
  45. package/dist/esm/core/WalletAuthMethodStore.js +2 -123
  46. package/dist/esm/core/WalletStore.js +3 -209
  47. package/dist/esm/core/WebAuthnAuthenticatorStore.js +0 -202
  48. package/dist/esm/core/WebAuthnCredentialBindingStore.js +2 -182
  49. package/dist/esm/core/WebAuthnLoginChallengeStore.js +0 -52
  50. package/dist/esm/core/WebAuthnSyncChallengeStore.js +0 -54
  51. package/dist/esm/core/authService/emailOtpConfig.js +1 -195
  52. package/dist/esm/core/authService/emailOtpEnrollment.js +0 -110
  53. package/dist/esm/core/authService/emailOtpSeal.js +0 -63
  54. package/dist/esm/core/authService/nearPrivateKeySigning.js +1 -1
  55. package/dist/esm/core/authService/nearTransactions.js +3 -98
  56. package/dist/esm/core/authService/rateLimits.js +0 -84
  57. package/dist/esm/core/authService/webauthn.js +3 -299
  58. package/dist/esm/core/authService/webauthnOidcHelpers.js +1 -24
  59. package/dist/esm/core/authService/webauthnWalletBinding.js +0 -37
  60. package/dist/esm/core/config.js +1 -95
  61. package/dist/esm/core/d1EcdsaSignerRead.js +1 -1
  62. package/dist/esm/core/d1Ed25519SignerRead.js +55 -0
  63. package/dist/esm/core/d1IdentityStore.js +1 -2
  64. package/dist/esm/core/d1TenantStore.js +1 -24
  65. package/dist/esm/core/d1WalletAuthMethodStore.js +2 -5
  66. package/dist/esm/core/d1WalletStore.js +16 -13
  67. package/dist/esm/core/deviceLinking/linkedDeviceBootstrap.js +13 -0
  68. package/dist/esm/core/deviceLinking/linkedDeviceEmailOtpGrant.js +2 -2
  69. package/dist/esm/core/deviceLinking/linkedDeviceManagement.js +1 -1
  70. package/dist/esm/core/deviceLinking/linkedDeviceSession.js +20 -14
  71. package/dist/esm/core/deviceLinking/linkedDeviceSessionRecord.js +2 -2
  72. package/dist/esm/core/deviceLinking/requestProof.js +9 -6
  73. package/dist/esm/core/emailOtpD1Statements.js +108 -94
  74. package/dist/esm/core/keyMaterialBrands.js +2 -12
  75. package/dist/esm/core/nearKeys.js +0 -1
  76. package/dist/esm/core/nearRelayerAccountProvisioning.js +7 -10
  77. package/dist/esm/core/passkeyCredentialClaims.js +8 -0
  78. package/dist/esm/core/routerAbSigning/RouterAbEcdsaPresignRuntime.js +6 -6
  79. package/dist/esm/core/routerAbSigning/RouterAbNormalSigningRuntime.js +2 -30
  80. package/dist/esm/core/signingLanes/WalletExecutionLaneProjection.js +1 -1
  81. package/dist/esm/core/signingMaterial/ordinaryInactiveSignerMaterialReservation.js +1 -0
  82. package/dist/esm/core/thresholdEcdsaChainTarget.js +1 -4
  83. package/dist/esm/hosted-wallet-gateway.js +158 -52
  84. package/dist/esm/index.js +6 -19
  85. package/dist/esm/localHostedWalletGatewayHandler.js +18 -3
  86. package/dist/esm/localIntendedYaoSigningFault.js +2 -30
  87. package/dist/esm/localRegistrationSetupAuthority.js +96 -0
  88. package/dist/esm/router/auth/authRequestValidation.js +8 -16
  89. package/dist/esm/router/auth/commonRouterUtils.js +17 -10
  90. package/dist/esm/router/auth/routerApiCredentialAuth.js +26 -7
  91. package/dist/esm/router/auth/walletRegistrationContext.js +49 -0
  92. package/dist/esm/router/auth/webAuthnCredentialCodecs.js +1 -2
  93. package/dist/esm/router/cloudflare/d1/auth/d1AuthorizationAssembly.js +88 -0
  94. package/dist/esm/router/cloudflare/d1/auth/d1AuthorizedOperationRouteService.js +2 -0
  95. package/dist/esm/router/cloudflare/d1/auth/d1EmailOtpRouteService.js +25 -0
  96. package/dist/esm/router/cloudflare/d1/auth/d1RouterApiAuthConfig.js +24 -6
  97. package/dist/esm/router/cloudflare/d1/auth/d1RouterApiAuthService.js +75 -320
  98. package/dist/esm/router/cloudflare/d1/auth/walletSessionCredentialReaders.js +17 -1
  99. package/dist/esm/router/cloudflare/d1/authorization/authorizedOperationStatements.js +57 -25
  100. package/dist/esm/router/cloudflare/d1/authorization/d1AuthorizationStore.js +265 -104
  101. package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceAuthorityInstallService.js +43 -17
  102. package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceEd25519ExportRootStore.js +6 -1
  103. package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceEmailOtpGrantStore.js +12 -2
  104. package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceEmailOtpTargetFactor.js +4 -4
  105. package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceOwnerAuthorizationProvider.js +2 -2
  106. package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceRequestProofNonceStore.js +3 -9
  107. package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceRouteService.js +2 -1
  108. package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceSessionRecords.js +1 -1
  109. package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceSessionStore.js +89 -7
  110. package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceTargetCredentialProvider.js +24 -15
  111. package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceTargetPlanner.js +1 -1
  112. package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceVerifiedLinkBuilder.js +1 -1
  113. package/dist/esm/router/cloudflare/d1/ed25519Yao/d1Ed25519YaoCapabilityPersistence.js +9 -6
  114. package/dist/esm/router/cloudflare/d1/ed25519Yao/d1Ed25519YaoLifecycleDecisionStore.js +11 -2
  115. package/dist/esm/router/cloudflare/d1/ed25519Yao/d1Ed25519YaoProductRegistrationPartitionedStateStore.js +100 -10
  116. package/dist/esm/router/cloudflare/d1/ed25519Yao/d1Ed25519YaoStateWriteFence.js +92 -0
  117. package/dist/esm/router/cloudflare/d1/ed25519Yao/d1WalletCeremonyActivity.js +77 -0
  118. package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpChallengeIssuer.js +14 -9
  119. package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpChallengeService.js +0 -1
  120. package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpChallengeStore.js +15 -9
  121. package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpChallengeVerifier.js +3 -2
  122. package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpEnrollmentStore.js +1 -1
  123. package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpGrantStore.js +1 -7
  124. package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpRateLimitStore.js +62 -36
  125. package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpRecords.js +27 -21
  126. package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpRecoveryService.js +1 -1
  127. package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpRegistrationEnrollmentFinalizer.js +2 -2
  128. package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpServerSealRuntime.js +0 -1
  129. package/dist/esm/router/cloudflare/d1/emailOtp/d1GoogleEmailOtpRegistrationAttemptStore.js +44 -12
  130. package/dist/esm/router/cloudflare/d1/emailOtp/d1GoogleEmailOtpRegistrationRecords.js +1 -49
  131. package/dist/esm/router/cloudflare/d1/emailOtp/d1GoogleEmailOtpSessionResolver.js +20 -31
  132. package/dist/esm/router/cloudflare/d1/emailOtp/d1GoogleRegistrationCompletion.js +85 -0
  133. package/dist/esm/router/cloudflare/d1/identity/d1IdentityRecords.js +0 -1
  134. package/dist/esm/router/cloudflare/d1/identity/d1IdentityService.js +0 -48
  135. package/dist/esm/router/cloudflare/d1/near/d1SponsoredNearAccount.js +242 -0
  136. package/dist/esm/router/cloudflare/d1/oidc/d1OidcBoundary.js +1 -2
  137. package/dist/esm/router/cloudflare/d1/oidc/d1OidcVerificationService.js +2 -29
  138. package/dist/esm/router/cloudflare/d1/oidc/googleOidcToken.js +41 -0
  139. package/dist/esm/router/cloudflare/d1/passkeyCustody/d1PasskeyCustodyRouteService.js +5 -0
  140. package/dist/esm/router/cloudflare/d1/passkeyCustody/d1WalletCustodyCommitStore.js +52 -7
  141. package/dist/esm/router/cloudflare/d1/registration/d1RegistrationCeremonyRecordStore.js +83 -16
  142. package/dist/esm/router/cloudflare/d1/registration/d1RegistrationCeremonyRecords.js +8 -14
  143. package/dist/esm/router/cloudflare/d1/registration/d1RegistrationCeremonyStore.js +60 -28
  144. package/dist/esm/router/cloudflare/d1/registration/d1RegistrationIntentService.js +0 -1
  145. package/dist/esm/router/cloudflare/d1/registration/d1RegistrationSessionTransaction.js +28 -0
  146. package/dist/esm/router/cloudflare/d1/registration/d1RegistrationSetupSupport.js +84 -0
  147. package/dist/esm/router/cloudflare/d1/registration/d1WalletExecutionAuthority.js +168 -0
  148. package/dist/esm/router/cloudflare/d1/registration/d1WalletOperationStore.js +53 -0
  149. package/dist/esm/router/cloudflare/d1/registration/d1WalletRegistrationCommitStore.js +85 -38
  150. package/dist/esm/router/cloudflare/d1/registration/d1WalletRegistrationInitialSession.js +33 -0
  151. package/dist/esm/router/cloudflare/d1/registration/d1WalletRegistrationPreparation.js +16 -0
  152. package/dist/esm/router/cloudflare/d1/registration/d1WalletRegistrationRead.js +58 -0
  153. package/dist/esm/router/cloudflare/d1/registration/d1WalletRegistrationService.js +478 -708
  154. package/dist/esm/router/cloudflare/d1/registration/d1WalletRegistrationSetup.js +13 -57
  155. package/dist/esm/router/cloudflare/d1/registration/d1WalletRegistrationSetupExecution.js +169 -0
  156. package/dist/esm/router/cloudflare/d1/registration/walletRegistrationEstablishedSessionIssuer.js +79 -47
  157. package/dist/esm/router/cloudflare/d1/registration/walletRegistrationSessionCommitReceipt.js +11 -35
  158. package/dist/esm/router/cloudflare/d1/signingAdmission/d1RouterAbNormalSigningAdmissionStore.js +110 -45
  159. package/dist/esm/router/cloudflare/d1/versionedJson/d1VersionedJsonRecordStore.js +12 -9
  160. package/dist/esm/router/cloudflare/d1/wallet/authorizationSnapshotLayout.js +168 -0
  161. package/dist/esm/router/cloudflare/d1/wallet/d1WalletAddSignerFinalizeRecord.js +68 -0
  162. package/dist/esm/router/cloudflare/d1/wallet/d1WalletAddSignerService.js +22 -60
  163. package/dist/esm/router/cloudflare/d1/wallet/d1WalletAuthMethodService.js +12 -48
  164. package/dist/esm/router/cloudflare/d1/wallet/d1WalletAuthorityStore.js +56 -143
  165. package/dist/esm/router/cloudflare/d1/wallet/d1WalletAuthorizationCleanup.js +157 -0
  166. package/dist/esm/router/cloudflare/d1/wallet/d1WalletAuthorizationFreeze.js +56 -0
  167. package/dist/esm/router/cloudflare/d1/wallet/d1WalletAuthorizationHistory.js +238 -0
  168. package/dist/esm/router/cloudflare/d1/wallet/d1WalletAuthorizationIntake.js +287 -0
  169. package/dist/esm/router/cloudflare/d1/wallet/d1WalletAuthorizationSnapshot.js +295 -0
  170. package/dist/esm/router/cloudflare/d1/wallet/d1WalletRelocationApprovals.js +140 -0
  171. package/dist/esm/router/cloudflare/d1/wallet/d1WalletRelocationChallenges.js +170 -0
  172. package/dist/esm/router/cloudflare/d1/wallet/d1WalletRelocationEmailOtp.js +60 -0
  173. package/dist/esm/router/cloudflare/d1/wallet/d1WalletRelocationOwner.js +33 -0
  174. package/dist/esm/router/cloudflare/d1/wallet/d1WalletRelocationOwnerRequest.js +74 -0
  175. package/dist/esm/router/cloudflare/d1/wallet/d1WalletRelocationPasskey.js +77 -0
  176. package/dist/esm/router/cloudflare/d1/wallet/d1WalletRelocationReadAccess.js +37 -0
  177. package/dist/esm/router/cloudflare/d1/wallet/d1WalletRelocationSessions.js +97 -0
  178. package/dist/esm/router/cloudflare/d1/wallet/d1WalletRelocationWriteBlock.js +133 -0
  179. package/dist/esm/router/cloudflare/d1/walletObjectAddresses.js +47 -0
  180. package/dist/esm/router/cloudflare/d1/webauthn/d1WebAuthnAuthService.js +26 -5
  181. package/dist/esm/router/cloudflare/d1/webauthn/d1WebAuthnRecords.js +4 -70
  182. package/dist/esm/router/cloudflare/d1/webauthn/d1WebAuthnStore.js +23 -7
  183. package/dist/esm/router/cloudflare/runtime/routerAbServiceBindings.js +32 -1
  184. package/dist/esm/router/cloudflare/runtime/staticWalletConsoleBinding.js +20 -7
  185. package/dist/esm/router/cloudflare/runtime/walletAuthorizationRelocationRoutes.js +488 -0
  186. package/dist/esm/router/cloudflare/runtime/walletConsoleOps.js +1 -0
  187. package/dist/esm/router/cloudflare/runtime/walletConsoleOpsClient.js +26 -1
  188. package/dist/esm/router/cloudflare/runtime/walletControlOps.js +3 -0
  189. package/dist/esm/router/cloudflare/runtime/walletGateway.js +1 -1
  190. package/dist/esm/router/cloudflare/runtime/walletObjectAddresses.js +105 -0
  191. package/dist/esm/router/cloudflare/runtime/walletPlacementRoutes.js +339 -0
  192. package/dist/esm/router/cloudflare/runtime/walletRelocationDeriver.js +244 -0
  193. package/dist/esm/router/cloudflare/runtime/walletRelocationEcdsa.js +212 -0
  194. package/dist/esm/router/cloudflare/runtime/walletRelocationEd25519.js +172 -0
  195. package/dist/esm/router/cloudflare/runtime/walletRelocationOps.js +183 -0
  196. package/dist/esm/router/cloudflare/runtime/walletRelocationPresign.js +185 -0
  197. package/dist/esm/router/cloudflare/runtime/walletRelocationSource.js +221 -0
  198. package/dist/esm/router/cloudflare/runtime/walletRuntimeOps.js +16 -4
  199. package/dist/esm/router/cloudflare/signingLanes/cloudflareOrdinaryInactiveSignerMaterialReservation.js +30 -8
  200. package/dist/esm/router/cloudflare-adaptor.js +8 -9
  201. package/dist/esm/router/cloudflare.js +33043 -31559
  202. package/dist/esm/router/domains/ecdsa/routerAbEcdsaStrictRegistration.js +35 -9
  203. package/dist/esm/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoCapabilityCommit.js +42 -0
  204. package/dist/esm/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistration.js +42 -13
  205. package/dist/esm/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistrationPartitionedStateStore.js +64 -3
  206. package/dist/esm/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistrationPartitioning.js +6 -6
  207. package/dist/esm/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistrationPersistence.js +70 -3
  208. package/dist/esm/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistrationRequestScopedRuntime.js +59 -87
  209. package/dist/esm/router/domains/ed25519Yao/export/routerAbEd25519YaoExport.js +58 -28
  210. package/dist/esm/router/domains/ed25519Yao/export/routerAbEd25519YaoExportRequestScopedCloudflare.js +13 -7
  211. package/dist/esm/router/domains/ed25519Yao/recovery/routerAbEd25519YaoRecovery.js +108 -78
  212. package/dist/esm/router/domains/ed25519Yao/recovery/routerAbEd25519YaoRecoveryRequestScopedCloudflare.js +27 -5
  213. package/dist/esm/router/domains/ed25519Yao/recovery/routerAbEd25519YaoRecoveryWalletSessionAuthorization.js +71 -22
  214. package/dist/esm/router/domains/ed25519Yao/registration/routerAbEd25519YaoHttpRegistrationBackend.js +37 -25
  215. package/dist/esm/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistration.js +3 -3
  216. package/dist/esm/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistrationExecutionRecord.js +2 -1
  217. package/dist/esm/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistrationIntentAuthorization.js +24 -3
  218. package/dist/esm/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistrationRequestScopedCloudflare.js +4 -3
  219. package/dist/esm/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistrationSideEffectBoundary.js +20 -7
  220. package/dist/esm/router/domains/ed25519Yao/routerAbEd25519YaoGatewayEnvelope.js +7 -1
  221. package/dist/esm/router/domains/emailOtp/emailOtpRequestValidation.js +0 -1
  222. package/dist/esm/router/domains/emailOtp/emailOtpRouteHandlers.js +2 -2
  223. package/dist/esm/router/domains/passkeyCustody/passkeyCustodyEnvelopeRetrieval.js +3 -9
  224. package/dist/esm/router/domains/passkeyCustody/registrationCustodyOutcome.js +34 -18
  225. package/dist/esm/router/domains/passkeyCustody/walletCustodyRegistrationAdmission.js +2 -2
  226. package/dist/esm/router/domains/passkeyCustody/walletCustodyRegistrationCommit.js +18 -14
  227. package/dist/esm/router/domains/signingOperations/authorizedOperationWire.js +73 -0
  228. package/dist/esm/router/domains/signingOperations/ecdsaSigningResponse.js +31 -0
  229. package/dist/esm/router/domains/signingOperations/ed25519AuthorizedOperationReceipt.js +1 -1
  230. package/dist/esm/router/domains/signingOperations/routerAbEcdsaDerivationNormalSigningRoute.js +2 -1
  231. package/dist/esm/router/domains/signingOperations/routerAbEd25519NormalSigningRoute.js +31 -121
  232. package/dist/esm/router/domains/signingOperations/routerAbNormalSigningAdmission.js +2 -93
  233. package/dist/esm/router/domains/signingOperations/routerAbPrivateSigningWorker.js +6 -20
  234. package/dist/esm/router/domains/signingOperations/signingPrepareSession.js +33 -0
  235. package/dist/esm/router/domains/signingOperations/walletExecutionAdmission.js +2 -3
  236. package/dist/esm/router/domains/walletRegistration/registrationSessionSeal.js +121 -0
  237. package/dist/esm/router/domains/walletRegistration/walletRegistrationReservation.js +70 -0
  238. package/dist/esm/router/domains/walletRegistration/walletRegistrationRoutes.js +56 -168
  239. package/dist/esm/router/domains/walletRegistration/walletRegistrationSetupPayload.js +3 -4
  240. package/dist/esm/router/domains/walletUnlock/walletUnlockRouteHandlers.js +14 -0
  241. package/dist/esm/router/express.js +1453 -1488
  242. package/dist/esm/router/framework/http.js +4 -1
  243. package/dist/esm/router/framework/registrationSetupDispatch.js +14 -0
  244. package/dist/esm/router/framework/ror/normalize.js +0 -1
  245. package/dist/esm/router/framework/ror/options.js +0 -1
  246. package/dist/esm/router/framework/ror/provider.js +0 -1
  247. package/dist/esm/router/framework/ror/staticProvider.js +0 -1
  248. package/dist/esm/router/framework/routeDefinitions.js +1 -2
  249. package/dist/esm/router/framework/routerApiWebhooks.js +0 -1
  250. package/dist/esm/router/ror.js +0 -1
  251. package/dist/esm/router/transport/fetch/createFetchRouter.js +2 -4
  252. package/dist/esm/router/transport/fetch/routes/auth.js +3 -1
  253. package/dist/esm/router/transport/fetch/routes/deviceLinking.js +38 -149
  254. package/dist/esm/router/transport/fetch/routes/deviceLinkingOwnerAuthorization.js +5 -4
  255. package/dist/esm/router/transport/fetch/routes/deviceLinkingResponses.js +130 -0
  256. package/dist/esm/router/transport/fetch/routes/ecdsaOperationStepUpFactor.js +171 -0
  257. package/dist/esm/router/transport/fetch/routes/ed25519AuthorizedOperationRevalidation.js +65 -0
  258. package/dist/esm/router/transport/fetch/routes/normalSigningRouterProxy.js +13 -3
  259. package/dist/esm/router/transport/fetch/routes/passkeyCustody.js +4 -3
  260. package/dist/esm/router/transport/fetch/routes/sessions.js +3 -2
  261. package/dist/esm/router/transport/fetch/routes/syncAccount.js +7 -2
  262. package/dist/esm/router/transport/fetch/routes/thresholdEcdsa.js +86 -245
  263. package/dist/esm/router/transport/fetch/routes/thresholdEd25519.js +76 -212
  264. package/dist/esm/router/transport/fetch/routes/walletExecutionLanePreflight.js +18 -41
  265. package/dist/esm/router/transport/fetch/routes/walletRegistration.js +6 -3
  266. package/dist/esm/router/transport/fetch/routes/webauthnAuthenticators.js +1 -1
  267. package/dist/esm/shared-ts/src/authorization/index.js +1 -1
  268. package/dist/esm/shared-ts/src/authorization/walletAuthority.js +2 -2
  269. package/dist/esm/shared-ts/src/authorization/walletSessionIssuance.js +0 -1
  270. package/dist/esm/shared-ts/src/device-linking/activeWalletSession.js +12 -2
  271. package/dist/esm/shared-ts/src/device-linking/authorityActivation.js +0 -2
  272. package/dist/esm/shared-ts/src/device-linking/contracts.js +16 -1
  273. package/dist/esm/shared-ts/src/device-linking/digests.js +2 -9
  274. package/dist/esm/shared-ts/src/device-linking/ed25519ExportRoot.js +1 -1
  275. package/dist/esm/shared-ts/src/device-linking/index.js +1 -1
  276. package/dist/esm/shared-ts/src/device-linking/parsers.js +1 -1
  277. package/dist/esm/shared-ts/src/device-linking/sourceContribution.js +1 -1
  278. package/dist/esm/shared-ts/src/device-linking/wireFields.js +1 -1
  279. package/dist/esm/shared-ts/src/near/actions.js +0 -1
  280. package/dist/esm/shared-ts/src/near/nearClient.js +1 -3
  281. package/dist/esm/shared-ts/src/signing-lanes/evmFamilySigningKeySlotId.js +1 -1
  282. package/dist/esm/shared-ts/src/signing-lanes/index.js +1 -6
  283. package/dist/esm/shared-ts/src/signing-lanes/ownerContinuity.js +3 -3
  284. package/dist/esm/shared-ts/src/signing-lanes/participantDigest.js +2 -81
  285. package/dist/esm/shared-ts/src/signing-lanes/participants.js +1 -219
  286. package/dist/esm/shared-ts/src/signing-lanes/recordParsers.js +0 -3
  287. package/dist/esm/shared-ts/src/tenant-root/tenantRootOperationRecord.js +1 -2
  288. package/dist/esm/shared-ts/src/threshold/ecdsaDerivationRoleLocalBootstrap.js +0 -1
  289. package/dist/esm/shared-ts/src/threshold/keyMaterialBrands.js +1 -22
  290. package/dist/esm/shared-ts/src/threshold/participants.js +0 -1
  291. package/dist/esm/shared-ts/src/threshold/signingRootScope.js +0 -1
  292. package/dist/esm/shared-ts/src/utils/addWalletAuthMethod.js +4 -13
  293. package/dist/esm/shared-ts/src/utils/canonicalPrimitives.js +1 -7
  294. package/dist/esm/shared-ts/src/utils/domainIds.js +1 -16
  295. package/dist/esm/shared-ts/src/utils/ecdsaCapabilityActivation.js +1 -11
  296. package/dist/esm/shared-ts/src/utils/ecdsaKeyFactsInventory.js +0 -1
  297. package/dist/esm/shared-ts/src/utils/ecdsaServerTiming.js +6 -1
  298. package/dist/esm/shared-ts/src/utils/emailOtpDomain.js +4 -2
  299. package/dist/esm/shared-ts/src/utils/errors.js +1 -19
  300. package/dist/esm/shared-ts/src/utils/near.js +1 -1
  301. package/dist/esm/shared-ts/src/utils/registrationEstablishedSession.js +1 -1
  302. package/dist/esm/shared-ts/src/utils/registrationIds.js +1 -5
  303. package/dist/esm/shared-ts/src/utils/registrationIntent.js +0 -1
  304. package/dist/esm/shared-ts/src/utils/registrationSetupOperation.js +8 -0
  305. package/dist/esm/shared-ts/src/utils/registrationSignerPlan.js +1 -1
  306. package/dist/esm/shared-ts/src/utils/routerAbEcdsaDerivation.js +1 -2
  307. package/dist/esm/shared-ts/src/utils/routerAbPublicKeyset.js +0 -27
  308. package/dist/esm/shared-ts/src/utils/validation.js +1 -5
  309. package/dist/esm/shared-ts/src/utils/walletAuthAuthority.js +0 -1
  310. package/dist/esm/shared-ts/src/utils/walletManagementProtocol.js +6 -0
  311. package/dist/esm/shared-ts/src/utils/wireSchema.js +2 -13
  312. package/dist/esm/shared-ts/src/wallet-recovery/backupAcknowledgement.js +6 -24
  313. package/dist/esm/shared-ts/src/wallet-recovery/recoveryCodeLocator.js +0 -1
  314. package/dist/esm/shared-ts/src/wallet-recovery/recoveryKeyId.js +5 -6
  315. package/dist/esm/shared-ts/src/wallet-recovery/walletRecoveryEcdsaPossession.js +1 -1
  316. package/dist/esm/storage/d1Sql.js +1 -7
  317. package/dist/esm/threshold/session/signingSessionSeal/crypto/cipher.js +0 -1
  318. package/dist/esm/threshold/session/signingSessionSeal/guards/backends.js +1 -2
  319. package/dist/esm/threshold/session/signingSessionSeal/idempotencyBackends.js +0 -1
  320. package/dist/esm/threshold/session/signingSessionSeal/idempotencyRecords.js +0 -1
  321. package/dist/esm/threshold/session/signingSessionSeal/options.js +1 -2
  322. package/dist/esm/wasm/evm_crypto/pkg/evm_crypto_bg.wasm +0 -0
  323. package/dist/esm/wasm/near_signer/pkg/wasm_signer_worker.js +0 -611
  324. package/dist/esm/wasm/near_signer/pkg/wasm_signer_worker_bg.wasm +0 -0
  325. package/dist/esm/wasm/shamir3pass_runtime/pkg/shamir3pass_runtime_bg.wasm +0 -0
  326. package/dist/types/shared-ts/src/authorization/capabilityKinds.d.ts +0 -4
  327. package/dist/types/shared-ts/src/device-linking/activeWalletSession.d.ts +2 -1
  328. package/dist/types/shared-ts/src/device-linking/contracts.d.ts +11 -0
  329. package/dist/types/shared-ts/src/signing-lanes/evmFamilySigningKeySlotId.d.ts +0 -2
  330. package/dist/types/shared-ts/src/signing-lanes/execution.d.ts +0 -11
  331. package/dist/types/shared-ts/src/signing-lanes/ids.d.ts +2 -7
  332. package/dist/types/shared-ts/src/signing-lanes/index.d.ts +0 -4
  333. package/dist/types/shared-ts/src/signing-lanes/ownerContinuity.d.ts +0 -1
  334. package/dist/types/shared-ts/src/signing-lanes/participantDigest.d.ts +0 -18
  335. package/dist/types/shared-ts/src/signing-lanes/participants.d.ts +6 -35
  336. package/dist/types/shared-ts/src/signing-lanes/rotation.d.ts +6 -843
  337. package/dist/types/shared-ts/src/threshold/ed25519OperationFingerprint.d.ts +2 -1
  338. package/dist/types/shared-ts/src/threshold/keyMaterialBrands.d.ts +0 -10
  339. package/dist/types/shared-ts/src/threshold/participants.d.ts +1 -1
  340. package/dist/types/shared-ts/src/utils/addWalletAuthMethod.d.ts +1 -133
  341. package/dist/types/shared-ts/src/utils/addWalletAuthMethod.typecheck.d.ts +4 -18
  342. package/dist/types/shared-ts/src/utils/domainIds.d.ts +0 -12
  343. package/dist/types/shared-ts/src/utils/emailOtpDomain.d.ts +3 -1
  344. package/dist/types/shared-ts/src/utils/errors.d.ts +0 -4
  345. package/dist/types/shared-ts/src/utils/near.d.ts +0 -20
  346. package/dist/types/shared-ts/src/utils/normalize.d.ts +0 -2
  347. package/dist/types/shared-ts/src/utils/registrationSetupOperation.d.ts +3 -0
  348. package/dist/types/shared-ts/src/utils/routerAbPublicKeyset.d.ts +0 -9
  349. package/dist/types/shared-ts/src/utils/validation.d.ts +1 -3
  350. package/dist/types/shared-ts/src/utils/walletCapabilityBindings.d.ts +0 -1
  351. package/dist/types/shared-ts/src/utils/walletManagementProtocol.d.ts +3 -0
  352. package/dist/types/shared-ts/src/utils/wireSchema.d.ts +0 -2
  353. package/dist/types/shared-ts/src/wallet-recovery/backupAcknowledgement.d.ts +0 -1
  354. package/dist/types/shared-ts/src/wallet-recovery/recoveryCodeReservation.d.ts +1 -10
  355. package/dist/types/shared-ts/src/wallet-recovery/recoveryCodes.d.ts +1 -3
  356. package/dist/types/shared-ts/src/wallet-recovery/recoveryKeyId.d.ts +5 -21
  357. package/dist/types/wallet-server/src/authorization/domain.d.ts +17 -1
  358. package/dist/types/wallet-server/src/authorization/ecdsaWalletSessionAdmission.d.ts +1 -0
  359. package/dist/types/wallet-server/src/authorization/ed25519WalletSessionAdmission.d.ts +35 -0
  360. package/dist/types/wallet-server/src/authorization/ed25519WalletSessionAdmission.typecheck.d.ts +2 -0
  361. package/dist/types/wallet-server/src/authorization/lifecycleRouting.d.ts +32 -0
  362. package/dist/types/wallet-server/src/authorization/lifecycleRouting.typecheck.d.ts +2 -0
  363. package/dist/types/wallet-server/src/authorization/recoveryRouting.d.ts +22 -0
  364. package/dist/types/wallet-server/src/authorization/recoveryRouting.typecheck.d.ts +2 -0
  365. package/dist/types/wallet-server/src/authorization/service.d.ts +50 -5
  366. package/dist/types/wallet-server/src/authorization/sessionRouting.d.ts +22 -0
  367. package/dist/types/wallet-server/src/authorization/sessionRouting.typecheck.d.ts +2 -0
  368. package/dist/types/wallet-server/src/cloud-host.d.ts +36 -10
  369. package/dist/types/wallet-server/src/core/EmailOtpRecords.d.ts +2 -22
  370. package/dist/types/wallet-server/src/core/EmailOtpStores.d.ts +20 -84
  371. package/dist/types/wallet-server/src/core/IdentityStore.d.ts +0 -10
  372. package/dist/types/wallet-server/src/core/RegistrationCeremonyStore.d.ts +0 -1
  373. package/dist/types/wallet-server/src/core/ThresholdService/config.d.ts +0 -2
  374. package/dist/types/wallet-server/src/core/ThresholdService/index.d.ts +1 -3
  375. package/dist/types/wallet-server/src/core/ThresholdService/kv.d.ts +0 -7
  376. package/dist/types/wallet-server/src/core/ThresholdService/routerAb/ecdsaDerivationPoolFillHandlers.d.ts +1 -3
  377. package/dist/types/wallet-server/src/core/ThresholdService/routerAb/ecdsaDerivationPresignBridge.d.ts +6 -0
  378. package/dist/types/wallet-server/src/core/ThresholdService/routerAb/internalServiceHttp.d.ts +1 -0
  379. package/dist/types/wallet-server/src/core/ThresholdService/routerAbNormalSigningPolicy.d.ts +0 -1
  380. package/dist/types/wallet-server/src/core/ThresholdService/stores/WalletSessionStore.d.ts +7 -19
  381. package/dist/types/wallet-server/src/core/ThresholdService/validation.d.ts +0 -34
  382. package/dist/types/wallet-server/src/core/WalletAuthMethodStore.d.ts +1 -5
  383. package/dist/types/wallet-server/src/core/WalletStore.d.ts +0 -3
  384. package/dist/types/wallet-server/src/core/WebAuthnAuthenticatorStore.d.ts +0 -20
  385. package/dist/types/wallet-server/src/core/WebAuthnCredentialBindingStore.d.ts +1 -27
  386. package/dist/types/wallet-server/src/core/WebAuthnLoginChallengeStore.d.ts +2 -16
  387. package/dist/types/wallet-server/src/core/WebAuthnSyncChallengeStore.d.ts +22 -14
  388. package/dist/types/wallet-server/src/core/authService/emailOtpConfig.d.ts +0 -24
  389. package/dist/types/wallet-server/src/core/authService/emailOtpEnrollment.d.ts +1 -70
  390. package/dist/types/wallet-server/src/core/authService/emailOtpSeal.d.ts +0 -13
  391. package/dist/types/wallet-server/src/core/authService/githubOAuth.d.ts +2 -1
  392. package/dist/types/wallet-server/src/core/authService/nearTransactions.d.ts +1 -39
  393. package/dist/types/wallet-server/src/core/authService/rateLimits.d.ts +0 -17
  394. package/dist/types/wallet-server/src/core/authService/webauthn.d.ts +0 -125
  395. package/dist/types/wallet-server/src/core/authService/webauthnOidcHelpers.d.ts +0 -3
  396. package/dist/types/wallet-server/src/core/authService/webauthnVerificationOutcomes.d.ts +1 -1
  397. package/dist/types/wallet-server/src/core/authService/webauthnWalletBinding.d.ts +0 -12
  398. package/dist/types/wallet-server/src/core/config.d.ts +0 -10
  399. package/dist/types/wallet-server/src/core/d1Ed25519SignerRead.d.ts +17 -0
  400. package/dist/types/wallet-server/src/core/d1IdentityStore.d.ts +0 -2
  401. package/dist/types/wallet-server/src/core/d1TenantStore.d.ts +0 -7
  402. package/dist/types/wallet-server/src/core/d1WalletAuthMethodStore.d.ts +0 -1
  403. package/dist/types/wallet-server/src/core/d1WalletStore.d.ts +6 -0
  404. package/dist/types/wallet-server/src/core/deviceLinking/linkedDeviceBootstrap.d.ts +19 -0
  405. package/dist/types/wallet-server/src/core/deviceLinking/linkedDeviceSession.d.ts +8 -6
  406. package/dist/types/wallet-server/src/core/deviceLinking/requestProof.d.ts +2 -5
  407. package/dist/types/wallet-server/src/core/emailOtpD1Statements.d.ts +11 -7
  408. package/dist/types/wallet-server/src/core/keyMaterialBrands.d.ts +1 -5
  409. package/dist/types/wallet-server/src/core/nearRelayerAccountProvisioning.d.ts +0 -1
  410. package/dist/types/wallet-server/src/core/passkeyCredentialClaims.d.ts +9 -0
  411. package/dist/types/wallet-server/src/core/routerAbSigning/RouterAbEcdsaPresignRuntime.d.ts +5 -3
  412. package/dist/types/wallet-server/src/core/routerAbSigning/RouterAbNormalSigningRuntime.d.ts +0 -2
  413. package/dist/types/wallet-server/src/core/signingMaterial/ordinaryInactiveSignerMaterialReservation.d.ts +1 -0
  414. package/dist/types/wallet-server/src/core/threeRouteRegistrationContracts.d.ts +15 -140
  415. package/dist/types/wallet-server/src/core/threeRouteRegistrationContracts.typecheck.d.ts +4 -52
  416. package/dist/types/wallet-server/src/core/thresholdEcdsaChainTarget.d.ts +0 -1
  417. package/dist/types/wallet-server/src/core/types.d.ts +0 -299
  418. package/dist/types/wallet-server/src/hosted-wallet-gateway.d.ts +18 -5
  419. package/dist/types/wallet-server/src/index.d.ts +8 -13
  420. package/dist/types/wallet-server/src/localIntendedYaoSigningFault.d.ts +1 -16
  421. package/dist/types/wallet-server/src/localRegistrationSetupAuthority.d.ts +13 -0
  422. package/dist/types/wallet-server/src/router/auth/commonRouterUtils.d.ts +7 -1
  423. package/dist/types/wallet-server/src/router/auth/routerApiCredentialAuth.d.ts +11 -3
  424. package/dist/types/wallet-server/src/router/auth/walletRegistrationContext.d.ts +8 -0
  425. package/dist/types/wallet-server/src/router/cloudflare/d1/auth/d1AuthorizationAssembly.d.ts +23 -0
  426. package/dist/types/wallet-server/src/router/cloudflare/d1/auth/d1EmailOtpRouteService.d.ts +16 -0
  427. package/dist/types/wallet-server/src/router/cloudflare/d1/auth/d1RouterApiAuthConfig.d.ts +28 -3
  428. package/dist/types/wallet-server/src/router/cloudflare/d1/auth/d1RouterApiAuthService.d.ts +4 -1
  429. package/dist/types/wallet-server/src/router/cloudflare/d1/auth/walletSessionCredentialReaders.d.ts +7 -1
  430. package/dist/types/wallet-server/src/router/cloudflare/d1/authorization/d1AuthorizationStore.d.ts +33 -2
  431. package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceAuthorityInstallService.d.ts +5 -1
  432. package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceEmailOtpGrantStore.d.ts +7 -1
  433. package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceRequestProofNonceStore.d.ts +1 -10
  434. package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceRouteService.d.ts +4 -0
  435. package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceSessionStore.d.ts +6 -0
  436. package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceTargetPlanner.d.ts +1 -13
  437. package/dist/types/wallet-server/src/router/cloudflare/d1/ed25519Yao/d1Ed25519YaoLifecycleDecisionStore.d.ts +3 -1
  438. package/dist/types/wallet-server/src/router/cloudflare/d1/ed25519Yao/d1Ed25519YaoProductRegistrationPartitionedStateStore.d.ts +1 -0
  439. package/dist/types/wallet-server/src/router/cloudflare/d1/ed25519Yao/d1Ed25519YaoStateWriteFence.d.ts +8 -0
  440. package/dist/types/wallet-server/src/router/cloudflare/d1/ed25519Yao/d1WalletCeremonyActivity.d.ts +15 -0
  441. package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpChallengeIssuer.d.ts +6 -1
  442. package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpChallengeService.d.ts +2 -2
  443. package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpChallengeStore.d.ts +2 -1
  444. package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpChallengeVerifier.d.ts +4 -1
  445. package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpCounters.typecheck.d.ts +2 -0
  446. package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpGrantStore.d.ts +0 -2
  447. package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpRateLimitStore.d.ts +6 -13
  448. package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpRecords.d.ts +21 -7
  449. package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1GoogleEmailOtpRegistrationAttemptStore.d.ts +29 -1
  450. package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1GoogleEmailOtpRegistrationRecords.d.ts +3 -16
  451. package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1GoogleEmailOtpSessionResolver.d.ts +7 -2
  452. package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1GoogleRegistrationCompletion.d.ts +23 -0
  453. package/dist/types/wallet-server/src/router/cloudflare/d1/identity/d1IdentityService.d.ts +0 -12
  454. package/dist/types/wallet-server/src/router/cloudflare/d1/near/d1SponsoredNearAccount.d.ts +24 -0
  455. package/dist/types/wallet-server/src/router/cloudflare/d1/near/d1SponsoredNearAccount.typecheck.d.ts +2 -0
  456. package/dist/types/wallet-server/src/router/cloudflare/d1/oidc/d1OidcVerificationService.d.ts +0 -1
  457. package/dist/types/wallet-server/src/router/cloudflare/d1/oidc/googleOidcToken.d.ts +4 -0
  458. package/dist/types/wallet-server/src/router/cloudflare/d1/passkeyCustody/d1PasskeyCustodyRouteService.d.ts +5 -0
  459. package/dist/types/wallet-server/src/router/cloudflare/d1/passkeyCustody/d1WalletCustodyCommitStore.d.ts +26 -1
  460. package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1RegistrationCeremonyRecordStore.d.ts +33 -8
  461. package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1RegistrationCeremonyRecords.d.ts +10 -11
  462. package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1RegistrationCeremonyStore.d.ts +17 -7
  463. package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1RegistrationSessionTransaction.d.ts +13 -0
  464. package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1RegistrationSetupSupport.d.ts +58 -0
  465. package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1WalletExecutionAuthority.d.ts +41 -0
  466. package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1WalletOperationStore.d.ts +28 -0
  467. package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1WalletRegistrationCommitStore.d.ts +9 -9
  468. package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1WalletRegistrationInitialSession.d.ts +17 -0
  469. package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1WalletRegistrationPreparation.d.ts +12 -0
  470. package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1WalletRegistrationRead.d.ts +43 -0
  471. package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1WalletRegistrationService.d.ts +52 -90
  472. package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1WalletRegistrationSetup.d.ts +3 -30
  473. package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1WalletRegistrationSetupExecution.d.ts +16 -0
  474. package/dist/types/wallet-server/src/router/cloudflare/d1/registration/walletRegistrationEstablishedSessionIssuer.d.ts +42 -14
  475. package/dist/types/wallet-server/src/router/cloudflare/d1/registration/walletRegistrationSessionCommitReceipt.d.ts +5 -4
  476. package/dist/types/wallet-server/src/router/cloudflare/d1/signingAdmission/d1RouterAbNormalSigningAdmissionStore.d.ts +24 -1
  477. package/dist/types/wallet-server/src/router/cloudflare/d1/versionedJson/d1VersionedJsonRecordStore.d.ts +10 -4
  478. package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/authorizationSnapshotLayout.d.ts +21 -0
  479. package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletAddSignerFinalizeRecord.d.ts +27 -0
  480. package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletAddSignerService.d.ts +4 -10
  481. package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletAuthMethodService.d.ts +5 -9
  482. package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletAuthorityStore.d.ts +8 -4
  483. package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletAuthorizationCleanup.d.ts +20 -0
  484. package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletAuthorizationFreeze.d.ts +12 -0
  485. package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletAuthorizationHistory.d.ts +20 -0
  486. package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletAuthorizationIntake.d.ts +29 -0
  487. package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletAuthorizationSnapshot.d.ts +31 -0
  488. package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletRelocationApprovals.d.ts +49 -0
  489. package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletRelocationChallenges.d.ts +47 -0
  490. package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletRelocationEmailOtp.d.ts +25 -0
  491. package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletRelocationOwner.d.ts +88 -0
  492. package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletRelocationOwnerRequest.d.ts +37 -0
  493. package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletRelocationPasskey.d.ts +12 -0
  494. package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletRelocationReadAccess.d.ts +18 -0
  495. package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletRelocationSessions.d.ts +23 -0
  496. package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletRelocationWriteBlock.d.ts +16 -0
  497. package/dist/types/wallet-server/src/router/cloudflare/d1/walletObjectAddresses.d.ts +14 -0
  498. package/dist/types/wallet-server/src/router/cloudflare/d1/webauthn/d1WebAuthnAuthService.d.ts +3 -0
  499. package/dist/types/wallet-server/src/router/cloudflare/d1/webauthn/d1WebAuthnRecords.d.ts +0 -13
  500. package/dist/types/wallet-server/src/router/cloudflare/d1/webauthn/d1WebAuthnStore.d.ts +23 -10
  501. package/dist/types/wallet-server/src/router/cloudflare/d1/webauthn/d1WebAuthnStore.typecheck.d.ts +2 -0
  502. package/dist/types/wallet-server/src/router/cloudflare/runtime/cloudflare.types.d.ts +0 -2
  503. package/dist/types/wallet-server/src/router/cloudflare/runtime/routerAbServiceBindings.d.ts +13 -0
  504. package/dist/types/wallet-server/src/router/cloudflare/runtime/walletAuthorizationRelocationRoutes.d.ts +21 -0
  505. package/dist/types/wallet-server/src/router/cloudflare/runtime/walletConsoleOps.d.ts +1 -0
  506. package/dist/types/wallet-server/src/router/cloudflare/runtime/walletConsoleOpsClient.d.ts +3 -1
  507. package/dist/types/wallet-server/src/router/cloudflare/runtime/walletControlOps.d.ts +2 -1
  508. package/dist/types/wallet-server/src/router/cloudflare/runtime/walletGateway.d.ts +3 -1
  509. package/dist/types/wallet-server/src/router/cloudflare/runtime/walletObjectAddresses.d.ts +45 -0
  510. package/dist/types/wallet-server/src/router/cloudflare/runtime/walletPlacementRoutes.d.ts +30 -0
  511. package/dist/types/wallet-server/src/router/cloudflare/runtime/walletRelocationDeriver.d.ts +11 -0
  512. package/dist/types/wallet-server/src/router/cloudflare/runtime/walletRelocationEcdsa.d.ts +7 -0
  513. package/dist/types/wallet-server/src/router/cloudflare/runtime/walletRelocationEd25519.d.ts +7 -0
  514. package/dist/types/wallet-server/src/router/cloudflare/runtime/walletRelocationOps.d.ts +11 -0
  515. package/dist/types/wallet-server/src/router/cloudflare/runtime/walletRelocationPresign.d.ts +7 -0
  516. package/dist/types/wallet-server/src/router/cloudflare/runtime/walletRelocationSource.d.ts +26 -0
  517. package/dist/types/wallet-server/src/router/cloudflare/runtime/walletRuntimeOps.d.ts +3 -0
  518. package/dist/types/wallet-server/src/router/cloudflare/signingLanes/cloudflareOrdinaryInactiveSignerMaterialReservation.d.ts +5 -0
  519. package/dist/types/wallet-server/src/router/cloudflare-adaptor.d.ts +0 -1
  520. package/dist/types/wallet-server/src/router/domains/ecdsa/routerAbEcdsaStrictRegistration.d.ts +3 -0
  521. package/dist/types/wallet-server/src/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoCapabilityCommit.d.ts +7 -0
  522. package/dist/types/wallet-server/src/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistration.d.ts +42 -8
  523. package/dist/types/wallet-server/src/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistrationPartitionedStateStore.d.ts +33 -2
  524. package/dist/types/wallet-server/src/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistrationPartitioning.d.ts +2 -2
  525. package/dist/types/wallet-server/src/router/domains/ed25519Yao/export/routerAbEd25519YaoExport.d.ts +14 -8
  526. package/dist/types/wallet-server/src/router/domains/ed25519Yao/export/routerAbEd25519YaoExport.typecheck.d.ts +2 -0
  527. package/dist/types/wallet-server/src/router/domains/ed25519Yao/export/routerAbEd25519YaoExportRequestScopedCloudflare.d.ts +2 -0
  528. package/dist/types/wallet-server/src/router/domains/ed25519Yao/recovery/routerAbEd25519YaoRecovery.d.ts +17 -9
  529. package/dist/types/wallet-server/src/router/domains/ed25519Yao/recovery/routerAbEd25519YaoRecoveryRequestScopedCloudflare.d.ts +2 -0
  530. package/dist/types/wallet-server/src/router/domains/ed25519Yao/recovery/routerAbEd25519YaoRecoveryWalletSessionAuthorization.d.ts +2 -0
  531. package/dist/types/wallet-server/src/router/domains/ed25519Yao/registration/routerAbEd25519YaoHttpRegistrationBackend.d.ts +13 -14
  532. package/dist/types/wallet-server/src/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistration.d.ts +7 -3
  533. package/dist/types/wallet-server/src/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistrationExecutionRecord.d.ts +1 -0
  534. package/dist/types/wallet-server/src/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistrationIntentAuthorization.d.ts +6 -1
  535. package/dist/types/wallet-server/src/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistrationSideEffectBoundary.d.ts +11 -0
  536. package/dist/types/wallet-server/src/router/domains/ed25519Yao/routerAbEd25519YaoGatewayEnvelope.d.ts +12 -3
  537. package/dist/types/wallet-server/src/router/domains/passkeyCustody/passkeyCustodyEnvelopeRetrieval.d.ts +0 -2
  538. package/dist/types/wallet-server/src/router/domains/passkeyCustody/registrationCustodyOutcome.d.ts +10 -6
  539. package/dist/types/wallet-server/src/router/domains/passkeyCustody/walletCustodyRegistrationAdmission.d.ts +10 -3
  540. package/dist/types/wallet-server/src/router/domains/passkeyCustody/walletCustodyRegistrationCommit.d.ts +12 -8
  541. package/dist/types/wallet-server/src/router/domains/signingOperations/authorizedOperationWire.d.ts +97 -0
  542. package/dist/types/wallet-server/src/router/domains/signingOperations/ecdsaSigningResponse.d.ts +13 -0
  543. package/dist/types/wallet-server/src/router/domains/signingOperations/routerAbNormalSigningAdmission.d.ts +9 -206
  544. package/dist/types/wallet-server/src/router/domains/signingOperations/routerAbPrivateSigningWorker.d.ts +0 -17
  545. package/dist/types/wallet-server/src/router/domains/signingOperations/signingPrepareSession.d.ts +23 -0
  546. package/dist/types/wallet-server/src/router/domains/signingOperations/walletExecutionAdmission.d.ts +1 -2
  547. package/dist/types/wallet-server/src/router/domains/walletRegistration/registrationSessionSeal.d.ts +36 -0
  548. package/dist/types/wallet-server/src/router/domains/walletRegistration/walletRegistrationInputs.d.ts +8 -7
  549. package/dist/types/wallet-server/src/router/domains/walletRegistration/walletRegistrationReservation.d.ts +125 -0
  550. package/dist/types/wallet-server/src/router/domains/walletRegistration/walletRegistrationRoutes.d.ts +17 -15
  551. package/dist/types/wallet-server/src/router/domains/walletRegistration/walletRegistrationSetupPayload.d.ts +2 -2
  552. package/dist/types/wallet-server/src/router/framework/apiCredentialPorts.d.ts +24 -0
  553. package/dist/types/wallet-server/src/router/framework/authServicePort.d.ts +35 -41
  554. package/dist/types/wallet-server/src/router/framework/googleLoginResolution.typecheck.d.ts +2 -0
  555. package/dist/types/wallet-server/src/router/framework/registrationSetupDispatch.d.ts +13 -0
  556. package/dist/types/wallet-server/src/router/framework/routerApi.d.ts +3 -12
  557. package/dist/types/wallet-server/src/router/transport/fetch/routes/deviceLinking.d.ts +1 -1
  558. package/dist/types/wallet-server/src/router/transport/fetch/routes/deviceLinkingResponses.d.ts +17 -0
  559. package/dist/types/wallet-server/src/router/transport/fetch/routes/ecdsaOperationStepUpFactor.d.ts +37 -0
  560. package/dist/types/wallet-server/src/router/transport/fetch/routes/ed25519AuthorizedOperationRevalidation.d.ts +37 -0
  561. package/dist/types/wallet-server/src/router/transport/fetch/routes/thresholdEcdsa.d.ts +1 -17
  562. package/dist/types/wallet-server/src/storage/d1Sql.d.ts +0 -1
  563. package/dist/types/wallet-server/src/storage/tenantRoute.d.ts +1 -1
  564. package/migrations/d1-signer/0040_namespace_home_challenges.sql +16 -0
  565. package/migrations/d1-signer/0041_step_up_admission_expiry.sql +28 -0
  566. package/migrations/d1-signer/0042_deployment_resource_challenges.sql +4 -0
  567. package/migrations/d1-signer/0043_google_registration_candidate_claim.sql +2 -0
  568. package/migrations/d1-signer/0044_linked_device_bootstrap_imports.sql +6 -0
  569. package/migrations/d1-signer/0045_wallet_owned_capability_receipts.sql +29 -0
  570. package/migrations/d1-signer/0046_wallet_owned_signing_abuse.sql +41 -0
  571. package/migrations/d1-signer/0047_remove_unused_near_public_keys.sql +2 -0
  572. package/migrations/d1-signer/0048_operation_owner_scope.sql +45 -0
  573. package/migrations/d1-signer/0049_wallet_relocation_challenges.sql +16 -0
  574. package/migrations/d1-signer/0050_wallet_relocation_approvals.sql +14 -0
  575. package/migrations/d1-signer/0051_wallet_relocation_email_otp.sql +92 -0
  576. package/migrations/d1-signer/0052_wallet_relocation_session_fences.sql +91 -0
  577. package/migrations/d1-signer/0053_wallet_hosted_history_import.sql +164 -0
  578. package/migrations/d1-signer/0054_wallet_authorization_freeze.sql +318 -0
  579. package/migrations/d1-signer/0055_wallet_authorization_snapshot.sql +120 -0
  580. package/migrations/d1-signer/0056_wallet_authorization_history_import.sql +424 -0
  581. package/migrations/d1-signer/0057_wallet_authorization_intake.sql +44 -0
  582. package/migrations/d1-signer/0058_wallet_ceremony_activity.sql +59 -0
  583. package/migrations/d1-signer/0059_wallet_authorization_activation.sql +45 -0
  584. package/migrations/d1-signer/0060_wallet_authorization_cleanup.sql +153 -0
  585. package/migrations/d1-signer/0061_wallet_session_operation_settlement.sql +28 -0
  586. package/migrations/d1-signer/0062_wallet_step_up_operation_settlement.sql +204 -0
  587. package/migrations/d1-signer/0063_wallet_operation_history_transfer.sql +466 -0
  588. package/migrations/d1-signer/0064_wallet_execution_generations.sql +93 -0
  589. package/migrations/d1-signer/0065_wallet_operation_execution_generation.sql +37 -0
  590. package/migrations/d1-signer/0066_regional_deployment_admission.sql +59 -0
  591. package/migrations/d1-signer/0067_registration_completion_decision.sql +12 -0
  592. package/migrations/d1-signer/0068_registration_cancellation_write_fence.sql +24 -0
  593. package/migrations/d1-signer/0069_cancelled_registration_session_fence.sql +11 -0
  594. package/migrations/d1-signer/0070_wallet_passkey_relocation.sql +369 -0
  595. package/migrations/d1-signer/0071_regional_wallet_otp_counters.sql +98 -0
  596. package/migrations/d1-signer/0072_linked_device_relocation_history.sql +899 -0
  597. package/migrations/d1-signer/0073_wallet_recovery_relocation.sql +86 -0
  598. package/migrations/d1-signer/0074_email_otp_relocation.sql +158 -0
  599. package/migrations/d1-signer/0075_wallet_authorization_return.sql +107 -0
  600. package/migrations/d1-signer/0076_wallet_relocation_write_block.sql +406 -0
  601. package/migrations/d1-signer/0077_wallet_object_addresses.sql +24 -0
  602. package/package.json +2 -3
  603. package/src/README.md +33 -3
  604. package/cloudflare-router-ab/scripts/local-key-material.mjs +0 -29
  605. package/dist/esm/core/AuthService.js +0 -2
  606. package/dist/esm/core/NearPublicKeyStore.js +0 -200
  607. package/dist/esm/core/ThresholdService/stores/CloudflareDurableObjectStore.js +0 -397
  608. package/dist/esm/core/ThresholdService/stores/KeyStore.js +0 -140
  609. package/dist/esm/core/ThresholdService/stores/SessionStore.js +0 -361
  610. package/dist/esm/core/ThresholdService/stores/StoreConfig.js +0 -13
  611. package/dist/esm/core/ThresholdService/stores/exportReplayGuard.js +0 -7
  612. package/dist/esm/core/authService/AuthService.js +0 -594
  613. package/dist/esm/core/authService/bytes.js +0 -19
  614. package/dist/esm/core/authService/configValues.js +0 -15
  615. package/dist/esm/core/authService/emailOtpChallengeOperations.js +0 -123
  616. package/dist/esm/core/authService/emailOtpChallengeProof.js +0 -183
  617. package/dist/esm/core/authService/emailOtpChallengeVerification.js +0 -264
  618. package/dist/esm/core/authService/emailOtpChallenges.js +0 -225
  619. package/dist/esm/core/authService/emailOtpDelivery.js +0 -134
  620. package/dist/esm/core/authService/emailOtpGrant.js +0 -43
  621. package/dist/esm/core/authService/emailOtpRegistrationEnrollment.js +0 -144
  622. package/dist/esm/core/authService/emailOtpUnlock.js +0 -174
  623. package/dist/esm/core/authService/googleEmailOtpOperations.js +0 -141
  624. package/dist/esm/core/authService/googleEmailOtpRegistration.js +0 -587
  625. package/dist/esm/core/authService/identity.js +0 -42
  626. package/dist/esm/core/authService/identityOperations.js +0 -32
  627. package/dist/esm/core/authService/nearAccountOperations.js +0 -229
  628. package/dist/esm/core/authService/nearPublicKeyMetadata.js +0 -108
  629. package/dist/esm/core/authService/oidcVerification.js +0 -249
  630. package/dist/esm/core/authService/registrationThresholdHelpers.js +0 -30
  631. package/dist/esm/core/authService/runtime.js +0 -45
  632. package/dist/esm/core/authService/storeRegistry.js +0 -102
  633. package/dist/esm/core/authService/thresholdStoreSummary.js +0 -32
  634. package/dist/esm/core/authService/webauthnAuthority.js +0 -17
  635. package/dist/esm/core/defaultConfigsServer.js +0 -9
  636. package/dist/esm/core/hostedAccountIds.js +0 -225
  637. package/dist/esm/core/routerAbSigning/createRouterAbSigningRuntimes.js +0 -84
  638. package/dist/esm/core/signingLanes/LaneAggregateRevocationApplicationService.js +0 -86
  639. package/dist/esm/core/signingLanes/LaneEnrollmentActivation.js +0 -324
  640. package/dist/esm/core/signingLanes/LaneEnrollmentRevocation.js +0 -173
  641. package/dist/esm/core/signingLanes/LaneLifecycleApplicationService.js +0 -198
  642. package/dist/esm/core/signingLanes/ecdsaServerRetirement.js +0 -73
  643. package/dist/esm/core/signingLanes/ed25519ServerRetirement.js +0 -68
  644. package/dist/esm/core/storeBackends.js +0 -208
  645. package/dist/esm/core/utils.js +0 -14
  646. package/dist/esm/core/webAuthnStoreBackends.js +0 -198
  647. package/dist/esm/router/cloudflare/d1/near/d1NearPublicKeyStore.js +0 -49
  648. package/dist/esm/router/cloudflare/d1/signingLanes/d1EcdsaLanePrivateBindingResolver.js +0 -10
  649. package/dist/esm/router/cloudflare/d1/signingLanes/d1LaneAggregateRevocationApplicationService.js +0 -22
  650. package/dist/esm/router/cloudflare/d1/signingLanes/d1LaneEffectJournalStore.js +0 -166
  651. package/dist/esm/router/cloudflare/d1/signingLanes/d1LaneEnrollmentGateway.js +0 -38
  652. package/dist/esm/router/cloudflare/d1/signingLanes/d1LaneLifecycleApplicationService.js +0 -20
  653. package/dist/esm/router/cloudflare/d1/signingLanes/d1LaneLifecycleStore.js +0 -1459
  654. package/dist/esm/router/cloudflare/d1/signingLanes/d1LaneLockStore.js +0 -114
  655. package/dist/esm/router/cloudflare/d1/signingLanes/d1LaneProtocolCommitter.js +0 -16
  656. package/dist/esm/router/cloudflare/d1/signingLanes/d1LaneRecords.js +0 -171
  657. package/dist/esm/router/cloudflare/d1/signingLanes/index.js +0 -10
  658. package/dist/esm/router/cloudflare/durableObjects/thresholdStore.js +0 -397
  659. package/dist/esm/router/cloudflare/signingLanes/cloudflareLaneCurveExecution.js +0 -597
  660. package/dist/esm/router/cloudflare/signingLanes/cloudflareLaneProtocolCommitter.js +0 -273
  661. package/dist/esm/router/cloudflare/signingLanes/index.js +0 -4
  662. package/dist/esm/router/cloudflare/signingLanes/linkedDeviceEd25519CeremonyBinding.js +0 -32
  663. package/dist/esm/router/transport/fetch/routes/nearPublicKeys.js +0 -27
  664. package/dist/esm/shared-ts/src/signing-lanes/rotation.js +0 -8
  665. package/dist/esm/shared-ts/src/signing-lanes/rotationDigests.js +0 -358
  666. package/dist/esm/shared-ts/src/signing-lanes/rotationLifecycle.js +0 -313
  667. package/dist/esm/shared-ts/src/signing-lanes/rotationParsers.js +0 -532
  668. package/dist/esm/shared-ts/src/signing-lanes/rotationProtocolParsers.js +0 -323
  669. package/dist/esm/shared-ts/src/signing-lanes/rotationWireFields.js +0 -59
  670. package/dist/types/shared-ts/src/signing-lanes/participantDigest.typecheck.d.ts +0 -2
  671. package/dist/types/shared-ts/src/signing-lanes/rotation.typecheck.d.ts +0 -2
  672. package/dist/types/shared-ts/src/signing-lanes/rotationDigests.d.ts +0 -13
  673. package/dist/types/shared-ts/src/signing-lanes/rotationLifecycle.d.ts +0 -78
  674. package/dist/types/shared-ts/src/signing-lanes/rotationParsers.d.ts +0 -27
  675. package/dist/types/shared-ts/src/signing-lanes/rotationProtocolParsers.d.ts +0 -6
  676. package/dist/types/shared-ts/src/signing-lanes/rotationWireFields.d.ts +0 -20
  677. package/dist/types/shared-ts/src/wallet-recovery/recoveryCodeAttempt.d.ts +0 -59
  678. package/dist/types/wallet-server/src/core/AuthService.d.ts +0 -3
  679. package/dist/types/wallet-server/src/core/NearPublicKeyStore.d.ts +0 -48
  680. package/dist/types/wallet-server/src/core/ThresholdService/stores/CloudflareDurableObjectStore.d.ts +0 -21
  681. package/dist/types/wallet-server/src/core/ThresholdService/stores/KeyStore.d.ts +0 -40
  682. package/dist/types/wallet-server/src/core/ThresholdService/stores/SessionStore.d.ts +0 -98
  683. package/dist/types/wallet-server/src/core/ThresholdService/stores/StoreConfig.d.ts +0 -4
  684. package/dist/types/wallet-server/src/core/ThresholdService/stores/ThresholdStoreConfig.typecheck.d.ts +0 -2
  685. package/dist/types/wallet-server/src/core/ThresholdService/stores/exportReplayGuard.d.ts +0 -3
  686. package/dist/types/wallet-server/src/core/authService/AuthService.d.ts +0 -490
  687. package/dist/types/wallet-server/src/core/authService/bytes.d.ts +0 -3
  688. package/dist/types/wallet-server/src/core/authService/configValues.d.ts +0 -7
  689. package/dist/types/wallet-server/src/core/authService/emailOtpChallengeOperations.d.ts +0 -109
  690. package/dist/types/wallet-server/src/core/authService/emailOtpChallengeProof.d.ts +0 -169
  691. package/dist/types/wallet-server/src/core/authService/emailOtpChallengeVerification.d.ts +0 -47
  692. package/dist/types/wallet-server/src/core/authService/emailOtpChallenges.d.ts +0 -86
  693. package/dist/types/wallet-server/src/core/authService/emailOtpDelivery.d.ts +0 -66
  694. package/dist/types/wallet-server/src/core/authService/emailOtpGrant.d.ts +0 -43
  695. package/dist/types/wallet-server/src/core/authService/emailOtpRegistrationEnrollment.d.ts +0 -49
  696. package/dist/types/wallet-server/src/core/authService/emailOtpUnlock.d.ts +0 -64
  697. package/dist/types/wallet-server/src/core/authService/googleEmailOtpOperations.d.ts +0 -126
  698. package/dist/types/wallet-server/src/core/authService/googleEmailOtpRegistration.d.ts +0 -169
  699. package/dist/types/wallet-server/src/core/authService/identity.d.ts +0 -25
  700. package/dist/types/wallet-server/src/core/authService/identityOperations.d.ts +0 -19
  701. package/dist/types/wallet-server/src/core/authService/nearAccountOperations.d.ts +0 -55
  702. package/dist/types/wallet-server/src/core/authService/nearPublicKeyMetadata.d.ts +0 -44
  703. package/dist/types/wallet-server/src/core/authService/oidcVerification.d.ts +0 -66
  704. package/dist/types/wallet-server/src/core/authService/registrationThresholdHelpers.d.ts +0 -11
  705. package/dist/types/wallet-server/src/core/authService/runtime.d.ts +0 -20
  706. package/dist/types/wallet-server/src/core/authService/storeRegistry.d.ts +0 -53
  707. package/dist/types/wallet-server/src/core/authService/thresholdStoreSummary.d.ts +0 -3
  708. package/dist/types/wallet-server/src/core/authService/webauthnAuthority.d.ts +0 -5
  709. package/dist/types/wallet-server/src/core/defaultConfigsServer.d.ts +0 -5
  710. package/dist/types/wallet-server/src/core/hostedAccountIds.d.ts +0 -16
  711. package/dist/types/wallet-server/src/core/routerAbSigning/createRouterAbSigningRuntimes.d.ts +0 -16
  712. package/dist/types/wallet-server/src/core/signingLanes/LaneAggregateRevocationApplicationService.d.ts +0 -36
  713. package/dist/types/wallet-server/src/core/signingLanes/LaneEffectJournalStore.d.ts +0 -62
  714. package/dist/types/wallet-server/src/core/signingLanes/LaneEnrollmentActivation.d.ts +0 -13
  715. package/dist/types/wallet-server/src/core/signingLanes/LaneEnrollmentRevocation.d.ts +0 -24
  716. package/dist/types/wallet-server/src/core/signingLanes/LaneLifecycleApplicationService.d.ts +0 -141
  717. package/dist/types/wallet-server/src/core/signingLanes/LaneLifecycleStore.d.ts +0 -228
  718. package/dist/types/wallet-server/src/core/signingLanes/ecdsaServerRetirement.d.ts +0 -58
  719. package/dist/types/wallet-server/src/core/signingLanes/ed25519ServerRetirement.d.ts +0 -30
  720. package/dist/types/wallet-server/src/core/signingLanes/signingWorkerLaneMaterialIdentity.d.ts +0 -4
  721. package/dist/types/wallet-server/src/core/storeBackends.d.ts +0 -83
  722. package/dist/types/wallet-server/src/core/utils.d.ts +0 -3
  723. package/dist/types/wallet-server/src/core/webAuthnStoreBackends.d.ts +0 -96
  724. package/dist/types/wallet-server/src/router/cloudflare/d1/near/d1NearPublicKeyStore.d.ts +0 -29
  725. package/dist/types/wallet-server/src/router/cloudflare/d1/signingLanes/d1EcdsaLanePrivateBindingResolver.d.ts +0 -4
  726. package/dist/types/wallet-server/src/router/cloudflare/d1/signingLanes/d1LaneAggregateRevocationApplicationService.d.ts +0 -4
  727. package/dist/types/wallet-server/src/router/cloudflare/d1/signingLanes/d1LaneEffectJournalStore.d.ts +0 -24
  728. package/dist/types/wallet-server/src/router/cloudflare/d1/signingLanes/d1LaneEnrollmentGateway.d.ts +0 -20
  729. package/dist/types/wallet-server/src/router/cloudflare/d1/signingLanes/d1LaneLifecycleApplicationService.d.ts +0 -13
  730. package/dist/types/wallet-server/src/router/cloudflare/d1/signingLanes/d1LaneLifecycleStore.d.ts +0 -51
  731. package/dist/types/wallet-server/src/router/cloudflare/d1/signingLanes/d1LaneLockStore.d.ts +0 -28
  732. package/dist/types/wallet-server/src/router/cloudflare/d1/signingLanes/d1LaneProtocolCommitter.d.ts +0 -5
  733. package/dist/types/wallet-server/src/router/cloudflare/d1/signingLanes/d1LaneRecords.d.ts +0 -107
  734. package/dist/types/wallet-server/src/router/cloudflare/d1/signingLanes/index.d.ts +0 -10
  735. package/dist/types/wallet-server/src/router/cloudflare/durableObjects/thresholdStore.d.ts +0 -18
  736. package/dist/types/wallet-server/src/router/cloudflare/signingLanes/cloudflareLaneCurveExecution.d.ts +0 -217
  737. package/dist/types/wallet-server/src/router/cloudflare/signingLanes/cloudflareLaneProtocolCommitter.d.ts +0 -73
  738. package/dist/types/wallet-server/src/router/cloudflare/signingLanes/index.d.ts +0 -4
  739. package/dist/types/wallet-server/src/router/cloudflare/signingLanes/linkedDeviceEd25519CeremonyBinding.d.ts +0 -6
  740. package/dist/types/wallet-server/src/router/transport/fetch/routes/nearPublicKeys.d.ts +0 -3
  741. /package/dist/esm/{core/signingLanes/LaneEffectJournalStore.js → authorization/ed25519WalletSessionAdmission.js} +0 -0
  742. /package/dist/esm/{core/signingLanes/LaneLifecycleStore.js → authorization/recoveryRouting.js} +0 -0
  743. /package/dist/esm/{core/signingLanes/signingWorkerLaneMaterialIdentity.js → authorization/sessionRouting.js} +0 -0
@@ -0,0 +1,466 @@
1
+ -- A sealed manifest cannot change its inventory during a schema upgrade.
2
+ CREATE TABLE wallet_operation_history_upgrade_guard (count INTEGER NOT NULL CHECK(count = 0));
3
+ INSERT INTO wallet_operation_history_upgrade_guard
4
+ SELECT (SELECT COUNT(*) FROM wallet_relocation_authorization_snapshots)
5
+ + (SELECT COUNT(*) FROM wallet_relocation_authorization_imports);
6
+ DROP TABLE wallet_operation_history_upgrade_guard;
7
+
8
+ CREATE VIEW wallet_operation_authorizations AS
9
+ SELECT namespace, org_id, project_id, env_id, wallet_id, tenant_id,
10
+ 'authorization_grant' AS source_kind, authorization_id AS source_id
11
+ FROM wallet_session_authorizations_v2
12
+ UNION ALL
13
+ SELECT namespace, org_id, project_id, env_id, wallet_id, tenant_id,
14
+ 'verified_step_up' AS source_kind, evidence_set_digest AS source_id
15
+ FROM verified_wallet_operation_evidence_sets;
16
+ CREATE VIEW wallet_operation_owners AS
17
+ SELECT owner.namespace, owner.org_id, owner.project_id, owner.env_id, owner.wallet_id,
18
+ operation.tenant_id, operation.authorized_operation_id
19
+ FROM wallet_operation_authorizations AS owner
20
+ JOIN authorized_operations AS operation
21
+ ON owner.namespace = operation.namespace AND owner.tenant_id = operation.tenant_id
22
+ AND owner.source_kind = operation.authorization_source_kind
23
+ AND owner.source_id = CASE operation.authorization_source_kind
24
+ WHEN 'authorization_grant' THEN operation.authorization_id ELSE operation.evidence_set_digest END
25
+ AND (operation.authorization_source_kind = 'verified_step_up' OR
26
+ (operation.authorization_grant_kind = 'wallet_session_authorization'
27
+ AND owner.org_id = operation.owner_scope_org_id AND owner.project_id = operation.owner_scope_project_id
28
+ AND owner.env_id = operation.owner_scope_env_id));
29
+ DROP VIEW wallet_pending_operations;
30
+ CREATE VIEW wallet_pending_operations AS
31
+ SELECT owner.* FROM wallet_operation_owners AS owner
32
+ JOIN authorized_operations AS operation USING(namespace, tenant_id, authorized_operation_id)
33
+ WHERE operation.lifecycle_kind = 'claimed';
34
+
35
+ CREATE TRIGGER wallet_operation_evidence_frozen_delete
36
+ BEFORE DELETE ON verified_wallet_operation_evidence_sets
37
+ WHEN EXISTS (
38
+ SELECT 1 FROM wallet_relocation_authorization_fences AS fence
39
+ JOIN (SELECT OLD.namespace, OLD.org_id, OLD.project_id, OLD.env_id, OLD.wallet_id) AS selected ON selected.namespace = fence.namespace
40
+ AND selected.org_id = fence.org_id AND selected.project_id = fence.project_id AND selected.env_id = fence.env_id
41
+ AND selected.wallet_id = fence.wallet_id AND NOT EXISTS (
42
+ SELECT 1 FROM wallet_relocation_authorization_cleanups AS cleanup
43
+ WHERE cleanup.namespace = fence.namespace AND cleanup.org_id = fence.org_id AND cleanup.project_id = fence.project_id
44
+ AND cleanup.env_id = fence.env_id AND cleanup.wallet_id = fence.wallet_id AND cleanup.move_id = fence.move_id
45
+ AND cleanup.request_digest_hex = fence.request_digest_hex AND cleanup.source_generation = fence.source_generation
46
+ AND cleanup.state = 'cleaning')
47
+ )
48
+ BEGIN SELECT RAISE(ABORT, 'wallet_authorization_history_frozen'); END;
49
+
50
+ CREATE TRIGGER wallet_operation_evidence_inactive_insert
51
+ BEFORE INSERT ON verified_wallet_operation_evidence_sets
52
+ WHEN EXISTS (
53
+ SELECT 1 FROM wallet_relocation_authorization_imports AS destination
54
+ JOIN (SELECT NEW.namespace, NEW.org_id, NEW.project_id, NEW.env_id, NEW.wallet_id) AS selected ON selected.namespace = destination.namespace
55
+ AND selected.org_id = destination.org_id AND selected.project_id = destination.project_id
56
+ AND selected.env_id = destination.env_id AND selected.wallet_id = destination.wallet_id
57
+ WHERE destination.state != 'activated'
58
+ ) AND NOT EXISTS (
59
+ SELECT 1 FROM wallet_relocation_authorization_import_context AS context
60
+ JOIN wallet_relocation_authorization_imports AS destination
61
+ ON destination.namespace = context.namespace AND destination.org_id = context.org_id
62
+ AND destination.project_id = context.project_id AND destination.env_id = context.env_id
63
+ AND destination.wallet_id = context.wallet_id AND destination.move_id = context.move_id
64
+ AND destination.request_digest_hex = context.request_digest_hex AND destination.source_generation = context.source_generation
65
+ JOIN (SELECT NEW.namespace, NEW.org_id, NEW.project_id, NEW.env_id, NEW.wallet_id) AS selected ON selected.namespace = context.namespace
66
+ AND selected.org_id = context.org_id AND selected.project_id = context.project_id AND selected.env_id = context.env_id
67
+ AND selected.wallet_id = context.wallet_id
68
+ WHERE destination.state = 'importing' AND context.table_name = 'verified_wallet_operation_evidence_sets'
69
+ AND context.record_key = json_array(NEW.evidence_set_id, NEW.namespace, NEW.tenant_id)
70
+ )
71
+ BEGIN SELECT RAISE(ABORT, 'wallet_authorization_destination_inactive'); END;
72
+
73
+ CREATE TRIGGER wallet_operations_frozen_insert
74
+ BEFORE INSERT ON authorized_operations
75
+ WHEN EXISTS (
76
+ SELECT 1 FROM wallet_relocation_authorization_fences AS fence
77
+ JOIN (SELECT owner.namespace, owner.org_id, owner.project_id, owner.env_id, owner.wallet_id
78
+ FROM wallet_operation_authorizations AS owner
79
+ WHERE owner.namespace = NEW.namespace AND owner.tenant_id = NEW.tenant_id
80
+ AND owner.source_kind = NEW.authorization_source_kind
81
+ AND owner.source_id = CASE NEW.authorization_source_kind
82
+ WHEN 'authorization_grant' THEN NEW.authorization_id ELSE NEW.evidence_set_digest END
83
+ AND (NEW.authorization_source_kind = 'verified_step_up' OR
84
+ (NEW.authorization_grant_kind = 'wallet_session_authorization'
85
+ AND owner.org_id = NEW.owner_scope_org_id AND owner.project_id = NEW.owner_scope_project_id
86
+ AND owner.env_id = NEW.owner_scope_env_id))) AS selected ON selected.namespace = fence.namespace
87
+ AND selected.org_id = fence.org_id AND selected.project_id = fence.project_id AND selected.env_id = fence.env_id
88
+ AND selected.wallet_id = fence.wallet_id
89
+ )
90
+ BEGIN
91
+ SELECT CASE WHEN NEW.authorization_source_kind = 'verified_step_up'
92
+ THEN RAISE(ABORT, 'authorization_evidence_claim_rejected')
93
+ ELSE RAISE(ABORT, 'authorization_wallet_session_rejected') END;
94
+ END;
95
+
96
+ CREATE TRIGGER wallet_operations_frozen_delete
97
+ BEFORE DELETE ON authorized_operations
98
+ WHEN EXISTS (
99
+ SELECT 1 FROM wallet_relocation_authorization_fences AS fence
100
+ JOIN (SELECT owner.namespace, owner.org_id, owner.project_id, owner.env_id, owner.wallet_id
101
+ FROM wallet_operation_authorizations AS owner
102
+ WHERE owner.namespace = OLD.namespace AND owner.tenant_id = OLD.tenant_id
103
+ AND owner.source_kind = OLD.authorization_source_kind
104
+ AND owner.source_id = CASE OLD.authorization_source_kind
105
+ WHEN 'authorization_grant' THEN OLD.authorization_id ELSE OLD.evidence_set_digest END
106
+ AND (OLD.authorization_source_kind = 'verified_step_up' OR
107
+ (OLD.authorization_grant_kind = 'wallet_session_authorization'
108
+ AND owner.org_id = OLD.owner_scope_org_id AND owner.project_id = OLD.owner_scope_project_id
109
+ AND owner.env_id = OLD.owner_scope_env_id))) AS selected ON selected.namespace = fence.namespace
110
+ AND selected.org_id = fence.org_id AND selected.project_id = fence.project_id AND selected.env_id = fence.env_id
111
+ AND selected.wallet_id = fence.wallet_id AND NOT EXISTS (
112
+ SELECT 1 FROM wallet_relocation_authorization_cleanups AS cleanup
113
+ WHERE cleanup.namespace = fence.namespace AND cleanup.org_id = fence.org_id AND cleanup.project_id = fence.project_id
114
+ AND cleanup.env_id = fence.env_id AND cleanup.wallet_id = fence.wallet_id AND cleanup.move_id = fence.move_id
115
+ AND cleanup.request_digest_hex = fence.request_digest_hex AND cleanup.source_generation = fence.source_generation
116
+ AND cleanup.state = 'cleaning')
117
+ )
118
+ BEGIN SELECT RAISE(ABORT, 'wallet_authorization_history_frozen'); END;
119
+
120
+ CREATE TRIGGER wallet_operations_inactive_insert
121
+ BEFORE INSERT ON authorized_operations
122
+ WHEN EXISTS (
123
+ SELECT 1 FROM wallet_relocation_authorization_imports AS destination
124
+ JOIN (SELECT owner.namespace, owner.org_id, owner.project_id, owner.env_id, owner.wallet_id
125
+ FROM wallet_operation_authorizations AS owner
126
+ WHERE owner.namespace = NEW.namespace AND owner.tenant_id = NEW.tenant_id
127
+ AND owner.source_kind = NEW.authorization_source_kind
128
+ AND owner.source_id = CASE NEW.authorization_source_kind
129
+ WHEN 'authorization_grant' THEN NEW.authorization_id ELSE NEW.evidence_set_digest END
130
+ AND (NEW.authorization_source_kind = 'verified_step_up' OR
131
+ (NEW.authorization_grant_kind = 'wallet_session_authorization'
132
+ AND owner.org_id = NEW.owner_scope_org_id AND owner.project_id = NEW.owner_scope_project_id
133
+ AND owner.env_id = NEW.owner_scope_env_id))) AS selected ON selected.namespace = destination.namespace
134
+ AND selected.org_id = destination.org_id AND selected.project_id = destination.project_id
135
+ AND selected.env_id = destination.env_id AND selected.wallet_id = destination.wallet_id
136
+ WHERE destination.state != 'activated'
137
+ ) AND NOT EXISTS (
138
+ SELECT 1 FROM wallet_relocation_authorization_import_context AS context
139
+ JOIN wallet_relocation_authorization_imports AS destination
140
+ ON destination.namespace = context.namespace AND destination.org_id = context.org_id
141
+ AND destination.project_id = context.project_id AND destination.env_id = context.env_id
142
+ AND destination.wallet_id = context.wallet_id AND destination.move_id = context.move_id
143
+ AND destination.request_digest_hex = context.request_digest_hex AND destination.source_generation = context.source_generation
144
+ JOIN (SELECT owner.namespace, owner.org_id, owner.project_id, owner.env_id, owner.wallet_id
145
+ FROM wallet_operation_authorizations AS owner
146
+ WHERE owner.namespace = NEW.namespace AND owner.tenant_id = NEW.tenant_id
147
+ AND owner.source_kind = NEW.authorization_source_kind
148
+ AND owner.source_id = CASE NEW.authorization_source_kind
149
+ WHEN 'authorization_grant' THEN NEW.authorization_id ELSE NEW.evidence_set_digest END
150
+ AND (NEW.authorization_source_kind = 'verified_step_up' OR
151
+ (NEW.authorization_grant_kind = 'wallet_session_authorization'
152
+ AND owner.org_id = NEW.owner_scope_org_id AND owner.project_id = NEW.owner_scope_project_id
153
+ AND owner.env_id = NEW.owner_scope_env_id))) AS selected ON selected.namespace = context.namespace
154
+ AND selected.org_id = context.org_id AND selected.project_id = context.project_id AND selected.env_id = context.env_id
155
+ AND selected.wallet_id = context.wallet_id
156
+ WHERE destination.state = 'importing' AND context.table_name = 'authorized_operations'
157
+ AND context.record_key = json_array(NEW.authorized_operation_id, NEW.namespace, NEW.tenant_id)
158
+ )
159
+ BEGIN
160
+ SELECT CASE WHEN NEW.lifecycle_kind != 'claimed'
161
+ THEN RAISE(ABORT, 'wallet_authorization_destination_inactive')
162
+ WHEN NEW.authorization_source_kind = 'verified_step_up'
163
+ THEN RAISE(ABORT, 'authorization_evidence_claim_rejected')
164
+ ELSE RAISE(ABORT, 'authorization_wallet_session_rejected') END;
165
+ END;
166
+
167
+ CREATE TRIGGER wallet_operations_historical_insert
168
+ BEFORE INSERT ON authorized_operations
169
+ WHEN NEW.lifecycle_kind = 'completed' AND NOT EXISTS (
170
+ SELECT 1 FROM wallet_relocation_authorization_import_context AS context
171
+ JOIN wallet_relocation_authorization_imports AS destination
172
+ ON destination.namespace = context.namespace AND destination.org_id = context.org_id
173
+ AND destination.project_id = context.project_id AND destination.env_id = context.env_id
174
+ AND destination.wallet_id = context.wallet_id AND destination.move_id = context.move_id
175
+ AND destination.request_digest_hex = context.request_digest_hex AND destination.source_generation = context.source_generation
176
+ JOIN (SELECT owner.namespace, owner.org_id, owner.project_id, owner.env_id, owner.wallet_id
177
+ FROM wallet_operation_authorizations AS owner
178
+ WHERE owner.namespace = NEW.namespace AND owner.tenant_id = NEW.tenant_id
179
+ AND owner.source_kind = NEW.authorization_source_kind
180
+ AND owner.source_id = CASE NEW.authorization_source_kind
181
+ WHEN 'authorization_grant' THEN NEW.authorization_id ELSE NEW.evidence_set_digest END
182
+ AND (NEW.authorization_source_kind = 'verified_step_up' OR
183
+ (NEW.authorization_grant_kind = 'wallet_session_authorization'
184
+ AND owner.org_id = NEW.owner_scope_org_id AND owner.project_id = NEW.owner_scope_project_id
185
+ AND owner.env_id = NEW.owner_scope_env_id))) AS selected ON selected.namespace = context.namespace
186
+ AND selected.org_id = context.org_id AND selected.project_id = context.project_id AND selected.env_id = context.env_id
187
+ AND selected.wallet_id = context.wallet_id
188
+ WHERE destination.state = 'importing' AND context.table_name = 'authorized_operations'
189
+ AND context.record_key = json_array(NEW.authorized_operation_id, NEW.namespace, NEW.tenant_id)
190
+ )
191
+ BEGIN SELECT RAISE(ABORT, 'wallet_operation_history_import_required'); END;
192
+
193
+ CREATE TRIGGER wallet_operation_audits_frozen_insert
194
+ BEFORE INSERT ON authorized_operation_audit_events
195
+ WHEN EXISTS (
196
+ SELECT 1 FROM wallet_relocation_authorization_fences AS fence
197
+ JOIN (SELECT owner.namespace, owner.org_id, owner.project_id, owner.env_id, owner.wallet_id
198
+ FROM wallet_operation_owners AS owner
199
+ WHERE owner.namespace = NEW.namespace AND owner.tenant_id = NEW.tenant_id
200
+ AND owner.authorized_operation_id = NEW.authorized_operation_id) AS selected ON selected.namespace = fence.namespace
201
+ AND selected.org_id = fence.org_id AND selected.project_id = fence.project_id AND selected.env_id = fence.env_id
202
+ AND selected.wallet_id = fence.wallet_id
203
+ )
204
+ BEGIN SELECT RAISE(ABORT, 'wallet_authorization_history_frozen'); END;
205
+
206
+ CREATE TRIGGER wallet_operation_audits_frozen_delete
207
+ BEFORE DELETE ON authorized_operation_audit_events
208
+ WHEN EXISTS (
209
+ SELECT 1 FROM wallet_relocation_authorization_fences AS fence
210
+ JOIN (SELECT owner.namespace, owner.org_id, owner.project_id, owner.env_id, owner.wallet_id
211
+ FROM wallet_operation_owners AS owner
212
+ WHERE owner.namespace = OLD.namespace AND owner.tenant_id = OLD.tenant_id
213
+ AND owner.authorized_operation_id = OLD.authorized_operation_id) AS selected ON selected.namespace = fence.namespace
214
+ AND selected.org_id = fence.org_id AND selected.project_id = fence.project_id AND selected.env_id = fence.env_id
215
+ AND selected.wallet_id = fence.wallet_id AND NOT EXISTS (
216
+ SELECT 1 FROM wallet_relocation_authorization_cleanups AS cleanup
217
+ WHERE cleanup.namespace = fence.namespace AND cleanup.org_id = fence.org_id AND cleanup.project_id = fence.project_id
218
+ AND cleanup.env_id = fence.env_id AND cleanup.wallet_id = fence.wallet_id AND cleanup.move_id = fence.move_id
219
+ AND cleanup.request_digest_hex = fence.request_digest_hex AND cleanup.source_generation = fence.source_generation
220
+ AND cleanup.state = 'cleaning')
221
+ )
222
+ BEGIN SELECT RAISE(ABORT, 'wallet_authorization_history_frozen'); END;
223
+
224
+ CREATE TRIGGER wallet_operation_audits_inactive_insert
225
+ BEFORE INSERT ON authorized_operation_audit_events
226
+ WHEN EXISTS (
227
+ SELECT 1 FROM wallet_relocation_authorization_imports AS destination
228
+ JOIN (SELECT owner.namespace, owner.org_id, owner.project_id, owner.env_id, owner.wallet_id
229
+ FROM wallet_operation_owners AS owner
230
+ WHERE owner.namespace = NEW.namespace AND owner.tenant_id = NEW.tenant_id
231
+
232
+ AND owner.authorized_operation_id = NEW.authorized_operation_id) AS selected ON selected.namespace = destination.namespace
233
+ AND selected.org_id = destination.org_id AND selected.project_id = destination.project_id
234
+ AND selected.env_id = destination.env_id AND selected.wallet_id = destination.wallet_id
235
+ WHERE destination.state != 'activated'
236
+ ) AND NOT EXISTS (
237
+ SELECT 1 FROM wallet_relocation_authorization_import_context AS context
238
+ JOIN wallet_relocation_authorization_imports AS destination
239
+ ON destination.namespace = context.namespace AND destination.org_id = context.org_id
240
+ AND destination.project_id = context.project_id AND destination.env_id = context.env_id
241
+ AND destination.wallet_id = context.wallet_id AND destination.move_id = context.move_id
242
+ AND destination.request_digest_hex = context.request_digest_hex AND destination.source_generation = context.source_generation
243
+ JOIN (SELECT owner.namespace, owner.org_id, owner.project_id, owner.env_id, owner.wallet_id
244
+ FROM wallet_operation_owners AS owner
245
+ WHERE owner.namespace = NEW.namespace AND owner.tenant_id = NEW.tenant_id
246
+ AND owner.authorized_operation_id = NEW.authorized_operation_id) AS selected ON selected.namespace = context.namespace
247
+ AND selected.org_id = context.org_id AND selected.project_id = context.project_id AND selected.env_id = context.env_id
248
+ AND selected.wallet_id = context.wallet_id
249
+ WHERE destination.state = 'importing' AND context.table_name = 'authorized_operation_audit_events'
250
+ AND context.record_key = json_array(NEW.audit_event_id, NEW.namespace, NEW.tenant_id)
251
+ )
252
+ BEGIN SELECT RAISE(ABORT, 'wallet_authorization_destination_inactive'); END;
253
+
254
+ CREATE TRIGGER wallet_operation_audits_historical_insert
255
+ BEFORE INSERT ON authorized_operation_audit_events
256
+ WHEN NEW.result_kind != 'pending' AND NOT EXISTS (
257
+ SELECT 1 FROM wallet_relocation_authorization_import_context AS context
258
+ JOIN wallet_relocation_authorization_imports AS destination
259
+ ON destination.namespace = context.namespace AND destination.org_id = context.org_id
260
+ AND destination.project_id = context.project_id AND destination.env_id = context.env_id
261
+ AND destination.wallet_id = context.wallet_id AND destination.move_id = context.move_id
262
+ AND destination.request_digest_hex = context.request_digest_hex AND destination.source_generation = context.source_generation
263
+ JOIN (SELECT owner.namespace, owner.org_id, owner.project_id, owner.env_id, owner.wallet_id
264
+ FROM wallet_operation_owners AS owner
265
+ WHERE owner.namespace = NEW.namespace AND owner.tenant_id = NEW.tenant_id
266
+ AND owner.authorized_operation_id = NEW.authorized_operation_id) AS selected ON selected.namespace = context.namespace
267
+ AND selected.org_id = context.org_id AND selected.project_id = context.project_id AND selected.env_id = context.env_id
268
+ AND selected.wallet_id = context.wallet_id
269
+ WHERE destination.state = 'importing' AND context.table_name = 'authorized_operation_audit_events'
270
+ AND context.record_key = json_array(NEW.audit_event_id, NEW.namespace, NEW.tenant_id)
271
+ )
272
+ BEGIN SELECT RAISE(ABORT, 'wallet_operation_history_import_required'); END;
273
+
274
+ CREATE TRIGGER wallet_operations_owner_required
275
+ BEFORE INSERT ON authorized_operations
276
+ WHEN NOT EXISTS (SELECT owner.namespace, owner.org_id, owner.project_id, owner.env_id, owner.wallet_id
277
+ FROM wallet_operation_authorizations AS owner
278
+ WHERE owner.namespace = NEW.namespace AND owner.tenant_id = NEW.tenant_id
279
+ AND owner.source_kind = NEW.authorization_source_kind
280
+ AND owner.source_id = CASE NEW.authorization_source_kind
281
+ WHEN 'authorization_grant' THEN NEW.authorization_id ELSE NEW.evidence_set_digest END
282
+ AND (NEW.authorization_source_kind = 'verified_step_up' OR
283
+ (NEW.authorization_grant_kind = 'wallet_session_authorization'
284
+ AND owner.org_id = NEW.owner_scope_org_id AND owner.project_id = NEW.owner_scope_project_id
285
+ AND owner.env_id = NEW.owner_scope_env_id)))
286
+ BEGIN SELECT RAISE(ABORT, 'wallet_operation_owner_missing'); END;
287
+
288
+ CREATE TRIGGER wallet_operation_audit_parent
289
+ BEFORE INSERT ON authorized_operation_audit_events
290
+ WHEN NOT EXISTS (SELECT 1 FROM authorized_operations AS operation
291
+ WHERE operation.namespace IS NEW.namespace
292
+ AND operation.tenant_id IS NEW.tenant_id
293
+ AND operation.audit_event_id IS NEW.audit_event_id
294
+ AND operation.authorized_operation_id IS NEW.authorized_operation_id
295
+ AND operation.operation_fingerprint_digest IS NEW.operation_fingerprint_digest
296
+ AND operation.authorization_source_kind IS NEW.authorization_source_kind
297
+ AND operation.authorization_id IS NEW.authorization_id
298
+ AND operation.authorization_grant_kind IS NEW.authorization_grant_kind
299
+ AND operation.evidence_set_digest IS NEW.evidence_set_digest
300
+ AND operation.quota_id IS NEW.quota_id
301
+ AND operation.material_activation_id IS NEW.material_activation_id
302
+ AND operation.material_activation_capability IS NEW.material_activation_capability
303
+ AND operation.material_activation_owner IS NEW.material_activation_owner
304
+ AND operation.material_activation_key_binding IS NEW.material_activation_key_binding
305
+ AND operation.material_activation_lifecycle_binding IS NEW.material_activation_lifecycle_binding
306
+ AND operation.material_activation_signing_worker IS NEW.material_activation_signing_worker
307
+ AND operation.owner_scope_org_id IS NEW.owner_scope_org_id
308
+ AND operation.owner_scope_project_id IS NEW.owner_scope_project_id
309
+ AND operation.owner_scope_env_id IS NEW.owner_scope_env_id
310
+ AND operation.result_kind IS NEW.result_kind
311
+ AND operation.claimed_at_ms IS NEW.claimed_at_ms
312
+ AND operation.completed_at_ms IS NEW.completed_at_ms)
313
+ BEGIN SELECT RAISE(ABORT, 'wallet_operation_audit_parent_conflicts'); END;
314
+
315
+ CREATE TRIGGER wallet_operation_terminal_immutable
316
+ BEFORE UPDATE ON authorized_operations
317
+ WHEN OLD.lifecycle_kind = 'completed'
318
+ BEGIN SELECT RAISE(ABORT, 'wallet_operation_terminal_immutable'); END;
319
+ CREATE TRIGGER wallet_operation_audit_terminal_immutable
320
+ BEFORE UPDATE ON authorized_operation_audit_events
321
+ WHEN OLD.result_kind != 'pending'
322
+ BEGIN SELECT RAISE(ABORT, 'wallet_operation_terminal_immutable'); END;
323
+
324
+ CREATE TRIGGER wallet_operation_identity_immutable
325
+ BEFORE UPDATE ON authorized_operations
326
+ WHEN NEW.namespace IS NOT OLD.namespace
327
+ OR NEW.tenant_id IS NOT OLD.tenant_id
328
+ OR NEW.authorized_operation_id IS NOT OLD.authorized_operation_id
329
+ OR NEW.audit_event_id IS NOT OLD.audit_event_id
330
+ OR NEW.principal_id IS NOT OLD.principal_id
331
+ OR NEW.capability_id IS NOT OLD.capability_id
332
+ OR NEW.capability_kind IS NOT OLD.capability_kind
333
+ OR NEW.operation_kind IS NOT OLD.operation_kind
334
+ OR NEW.operation_id IS NOT OLD.operation_id
335
+ OR NEW.operation_fingerprint_digest IS NOT OLD.operation_fingerprint_digest
336
+ OR NEW.lane_digest IS NOT OLD.lane_digest
337
+ OR NEW.intent_digest IS NOT OLD.intent_digest
338
+ OR NEW.display_digest IS NOT OLD.display_digest
339
+ OR NEW.authorization_source_kind IS NOT OLD.authorization_source_kind
340
+ OR NEW.authorization_id IS NOT OLD.authorization_id
341
+ OR NEW.authorization_grant_kind IS NOT OLD.authorization_grant_kind
342
+ OR NEW.evidence_set_digest IS NOT OLD.evidence_set_digest
343
+ OR NEW.quota_id IS NOT OLD.quota_id
344
+ OR NEW.quota_kind IS NOT OLD.quota_kind
345
+ OR NEW.claimed_at_ms IS NOT OLD.claimed_at_ms
346
+ OR NEW.material_activation_id IS NOT OLD.material_activation_id
347
+ OR NEW.material_activation_capability IS NOT OLD.material_activation_capability
348
+ OR NEW.material_activation_owner IS NOT OLD.material_activation_owner
349
+ OR NEW.material_activation_key_binding IS NOT OLD.material_activation_key_binding
350
+ OR NEW.material_activation_lifecycle_binding IS NOT OLD.material_activation_lifecycle_binding
351
+ OR NEW.material_activation_signing_worker IS NOT OLD.material_activation_signing_worker
352
+ OR NEW.owner_scope_org_id IS NOT OLD.owner_scope_org_id
353
+ OR NEW.owner_scope_project_id IS NOT OLD.owner_scope_project_id
354
+ OR NEW.owner_scope_env_id IS NOT OLD.owner_scope_env_id
355
+ BEGIN SELECT RAISE(ABORT, 'wallet_operation_identity_immutable'); END;
356
+
357
+ DROP TRIGGER authorized_operation_step_up_claim_atomic;
358
+ CREATE TRIGGER authorized_operation_step_up_claim_atomic
359
+ AFTER INSERT ON authorized_operations
360
+ WHEN NEW.lifecycle_kind = 'claimed'
361
+ AND NEW.authorization_source_kind = 'verified_step_up'
362
+ BEGIN
363
+ SELECT CASE
364
+ WHEN NOT EXISTS (
365
+ SELECT 1
366
+ FROM verified_wallet_operation_evidence_sets AS evidence
367
+ WHERE evidence.namespace = NEW.namespace
368
+ AND evidence.tenant_id = NEW.tenant_id
369
+ AND evidence.evidence_set_digest = NEW.evidence_set_digest
370
+ AND evidence.principal_id = NEW.principal_id
371
+ AND evidence.capability_kind = NEW.capability_kind
372
+ AND evidence.operation_kind = NEW.operation_kind
373
+ AND evidence.lane_digest = NEW.lane_digest
374
+ AND evidence.intent_digest = NEW.intent_digest
375
+ AND evidence.display_digest = NEW.display_digest
376
+ AND evidence.assurance = 'step_up'
377
+ AND NOT EXISTS (
378
+ SELECT 1 FROM wallet_relocation_authorization_import_receipts AS receipt
379
+ WHERE receipt.namespace = evidence.namespace AND receipt.org_id = evidence.org_id
380
+ AND receipt.project_id = evidence.project_id AND receipt.env_id = evidence.env_id
381
+ AND receipt.wallet_id = evidence.wallet_id AND receipt.table_name = 'verified_wallet_operation_evidence_sets'
382
+ AND receipt.record_key = json_array(evidence.evidence_set_id, evidence.namespace, evidence.tenant_id)
383
+ )
384
+ AND NOT EXISTS (
385
+ SELECT 1 FROM wallet_relocation_session_fences AS fence
386
+ WHERE fence.namespace = evidence.namespace AND fence.org_id = evidence.org_id
387
+ AND fence.project_id = evidence.project_id AND fence.env_id = evidence.env_id
388
+ AND fence.wallet_id = evidence.wallet_id
389
+ )
390
+ AND evidence.expires_at_ms > NEW.claimed_at_ms
391
+ -- The database clock closes delays between verification and this write.
392
+ AND evidence.expires_at_ms > CAST(round(unixepoch('subsec') * 1000) AS INTEGER)
393
+ )
394
+ THEN RAISE(ABORT, 'authorization_evidence_claim_rejected')
395
+ END;
396
+ END;
397
+
398
+ CREATE TRIGGER wallet_relocation_authorization_fences_operation_history_complete
399
+ BEFORE INSERT ON wallet_relocation_authorization_fences
400
+ WHEN 1 AND EXISTS (
401
+ SELECT 1 FROM wallet_operation_owners AS owner
402
+ JOIN authorized_operations AS operation USING(namespace, tenant_id, authorized_operation_id)
403
+ WHERE owner.namespace = NEW.namespace AND owner.org_id = NEW.org_id AND owner.project_id = NEW.project_id
404
+ AND owner.env_id = NEW.env_id AND owner.wallet_id = NEW.wallet_id
405
+ AND (operation.lifecycle_kind != 'completed' OR NOT EXISTS (
406
+ SELECT 1 FROM authorized_operation_audit_events AS audit
407
+ WHERE audit.namespace IS operation.namespace
408
+ AND audit.tenant_id IS operation.tenant_id
409
+ AND audit.audit_event_id IS operation.audit_event_id
410
+ AND audit.authorized_operation_id IS operation.authorized_operation_id
411
+ AND audit.operation_fingerprint_digest IS operation.operation_fingerprint_digest
412
+ AND audit.authorization_source_kind IS operation.authorization_source_kind
413
+ AND audit.authorization_id IS operation.authorization_id
414
+ AND audit.authorization_grant_kind IS operation.authorization_grant_kind
415
+ AND audit.evidence_set_digest IS operation.evidence_set_digest
416
+ AND audit.quota_id IS operation.quota_id
417
+ AND audit.material_activation_id IS operation.material_activation_id
418
+ AND audit.material_activation_capability IS operation.material_activation_capability
419
+ AND audit.material_activation_owner IS operation.material_activation_owner
420
+ AND audit.material_activation_key_binding IS operation.material_activation_key_binding
421
+ AND audit.material_activation_lifecycle_binding IS operation.material_activation_lifecycle_binding
422
+ AND audit.material_activation_signing_worker IS operation.material_activation_signing_worker
423
+ AND audit.owner_scope_org_id IS operation.owner_scope_org_id
424
+ AND audit.owner_scope_project_id IS operation.owner_scope_project_id
425
+ AND audit.owner_scope_env_id IS operation.owner_scope_env_id
426
+ AND audit.result_kind IS operation.result_kind
427
+ AND audit.claimed_at_ms IS operation.claimed_at_ms
428
+ AND audit.completed_at_ms IS operation.completed_at_ms
429
+ ))
430
+ )
431
+ BEGIN SELECT RAISE(ABORT, 'wallet_operation_history_incomplete'); END;
432
+
433
+ CREATE TRIGGER wallet_relocation_authorization_imports_operation_history_complete
434
+ BEFORE UPDATE ON wallet_relocation_authorization_imports
435
+ WHEN NEW.state = 'closed' AND OLD.state = 'importing' AND EXISTS (
436
+ SELECT 1 FROM wallet_operation_owners AS owner
437
+ JOIN authorized_operations AS operation USING(namespace, tenant_id, authorized_operation_id)
438
+ WHERE owner.namespace = NEW.namespace AND owner.org_id = NEW.org_id AND owner.project_id = NEW.project_id
439
+ AND owner.env_id = NEW.env_id AND owner.wallet_id = NEW.wallet_id
440
+ AND (operation.lifecycle_kind != 'completed' OR NOT EXISTS (
441
+ SELECT 1 FROM authorized_operation_audit_events AS audit
442
+ WHERE audit.namespace IS operation.namespace
443
+ AND audit.tenant_id IS operation.tenant_id
444
+ AND audit.audit_event_id IS operation.audit_event_id
445
+ AND audit.authorized_operation_id IS operation.authorized_operation_id
446
+ AND audit.operation_fingerprint_digest IS operation.operation_fingerprint_digest
447
+ AND audit.authorization_source_kind IS operation.authorization_source_kind
448
+ AND audit.authorization_id IS operation.authorization_id
449
+ AND audit.authorization_grant_kind IS operation.authorization_grant_kind
450
+ AND audit.evidence_set_digest IS operation.evidence_set_digest
451
+ AND audit.quota_id IS operation.quota_id
452
+ AND audit.material_activation_id IS operation.material_activation_id
453
+ AND audit.material_activation_capability IS operation.material_activation_capability
454
+ AND audit.material_activation_owner IS operation.material_activation_owner
455
+ AND audit.material_activation_key_binding IS operation.material_activation_key_binding
456
+ AND audit.material_activation_lifecycle_binding IS operation.material_activation_lifecycle_binding
457
+ AND audit.material_activation_signing_worker IS operation.material_activation_signing_worker
458
+ AND audit.owner_scope_org_id IS operation.owner_scope_org_id
459
+ AND audit.owner_scope_project_id IS operation.owner_scope_project_id
460
+ AND audit.owner_scope_env_id IS operation.owner_scope_env_id
461
+ AND audit.result_kind IS operation.result_kind
462
+ AND audit.claimed_at_ms IS operation.claimed_at_ms
463
+ AND audit.completed_at_ms IS operation.completed_at_ms
464
+ ))
465
+ )
466
+ BEGIN SELECT RAISE(ABORT, 'wallet_operation_history_incomplete'); END;
@@ -0,0 +1,93 @@
1
+ -- Execution location is metadata. It is not part of a wallet's cipher identity.
2
+ CREATE TABLE wallet_execution_upgrade_guard (count INTEGER NOT NULL CHECK(count = 0));
3
+ INSERT INTO wallet_execution_upgrade_guard
4
+ SELECT (SELECT COUNT(*) FROM wallet_relocation_authorization_snapshots)
5
+ + (SELECT COUNT(*) FROM wallet_relocation_authorization_imports);
6
+ DROP TABLE wallet_execution_upgrade_guard;
7
+
8
+ CREATE TABLE wallet_execution_generations (
9
+ namespace TEXT NOT NULL, org_id TEXT NOT NULL, project_id TEXT NOT NULL, env_id TEXT NOT NULL,
10
+ wallet_id TEXT NOT NULL,
11
+ generation INTEGER NOT NULL CHECK(generation > 0 AND generation <= 9007199254740991),
12
+ origin TEXT NOT NULL CHECK(origin IN ('registration', 'relocation')),
13
+ origin_id TEXT NOT NULL CHECK(length(origin_id) > 0),
14
+ state TEXT NOT NULL CHECK(state IN ('registering', 'inactive', 'active', 'retired')),
15
+ CHECK((origin = 'registration' AND state != 'inactive') OR
16
+ (origin = 'relocation' AND state != 'registering')),
17
+ PRIMARY KEY(namespace, org_id, project_id, env_id, wallet_id)
18
+ );
19
+
20
+ CREATE TRIGGER wallet_execution_identity_immutable
21
+ BEFORE UPDATE ON wallet_execution_generations
22
+ WHEN NEW.namespace IS NOT OLD.namespace OR NEW.org_id IS NOT OLD.org_id
23
+ OR NEW.project_id IS NOT OLD.project_id OR NEW.env_id IS NOT OLD.env_id
24
+ OR NEW.wallet_id IS NOT OLD.wallet_id OR NEW.generation IS NOT OLD.generation
25
+ OR NEW.origin IS NOT OLD.origin OR NEW.origin_id IS NOT OLD.origin_id
26
+ OR (NEW.state != OLD.state AND NOT (
27
+ (OLD.state = 'registering' AND NEW.state IN ('active', 'retired')) OR
28
+ (OLD.state = 'inactive' AND NEW.state = 'active') OR
29
+ (OLD.state = 'active' AND NEW.state = 'retired')))
30
+ BEGIN SELECT RAISE(ABORT, 'wallet_execution_identity_conflicts'); END;
31
+
32
+ CREATE TRIGGER wallet_execution_retained
33
+ BEFORE DELETE ON wallet_execution_generations
34
+ BEGIN SELECT RAISE(ABORT, 'wallet_execution_identity_retained'); END;
35
+
36
+ CREATE TRIGGER wallet_execution_activation_receipt
37
+ BEFORE UPDATE ON wallet_execution_generations
38
+ WHEN OLD.state = 'inactive' AND NEW.state = 'active' AND NOT EXISTS (
39
+ SELECT 1 FROM wallet_relocation_authorization_imports AS imported
40
+ JOIN wallet_relocation_authorization_activations AS receipt
41
+ USING(namespace, org_id, project_id, env_id, wallet_id, move_id, request_digest_hex, source_generation)
42
+ WHERE imported.namespace = NEW.namespace AND imported.org_id = NEW.org_id
43
+ AND imported.project_id = NEW.project_id AND imported.env_id = NEW.env_id
44
+ AND imported.wallet_id = NEW.wallet_id AND imported.move_id = NEW.origin_id
45
+ AND imported.source_generation + 1 = NEW.generation AND imported.state = 'activated'
46
+ )
47
+ BEGIN SELECT RAISE(ABORT, 'wallet_execution_activation_receipt_required'); END;
48
+
49
+ CREATE TRIGGER wallet_execution_source_closed
50
+ BEFORE INSERT ON wallet_execution_generations
51
+ WHEN EXISTS (
52
+ SELECT 1 FROM wallet_relocation_session_fences AS fence
53
+ WHERE fence.namespace = NEW.namespace AND fence.org_id = NEW.org_id
54
+ AND fence.project_id = NEW.project_id AND fence.env_id = NEW.env_id
55
+ AND fence.wallet_id = NEW.wallet_id
56
+ )
57
+ BEGIN SELECT RAISE(ABORT, 'wallet_execution_source_closed'); END;
58
+
59
+ CREATE TRIGGER wallet_execution_destination_prepare
60
+ AFTER INSERT ON wallet_relocation_authorization_imports
61
+ BEGIN
62
+ INSERT INTO wallet_execution_generations
63
+ (namespace, org_id, project_id, env_id, wallet_id, generation, origin, origin_id, state)
64
+ VALUES (NEW.namespace, NEW.org_id, NEW.project_id, NEW.env_id, NEW.wallet_id,
65
+ NEW.source_generation + 1, 'relocation', NEW.move_id, 'inactive');
66
+ END;
67
+
68
+ CREATE TRIGGER wallet_execution_destination_activate
69
+ AFTER UPDATE ON wallet_relocation_authorization_imports
70
+ WHEN NEW.state = 'activated' AND OLD.state != 'activated'
71
+ BEGIN
72
+ UPDATE wallet_execution_generations SET state = 'active'
73
+ WHERE namespace = NEW.namespace AND org_id = NEW.org_id AND project_id = NEW.project_id
74
+ AND env_id = NEW.env_id AND wallet_id = NEW.wallet_id
75
+ AND generation = NEW.source_generation + 1 AND origin = 'relocation'
76
+ AND origin_id = NEW.move_id AND state = 'inactive';
77
+ SELECT CASE WHEN changes() != 1
78
+ THEN RAISE(ABORT, 'wallet_execution_destination_conflicts') END;
79
+ END;
80
+
81
+ CREATE TRIGGER wallet_execution_source_retire
82
+ AFTER INSERT ON wallet_relocation_session_fences
83
+ BEGIN
84
+ SELECT CASE WHEN EXISTS (
85
+ SELECT 1 FROM wallet_execution_generations
86
+ WHERE namespace = NEW.namespace AND org_id = NEW.org_id AND project_id = NEW.project_id
87
+ AND env_id = NEW.env_id AND wallet_id = NEW.wallet_id
88
+ AND (generation != NEW.source_generation OR state != 'active')
89
+ ) THEN RAISE(ABORT, 'wallet_execution_source_conflicts') END;
90
+ UPDATE wallet_execution_generations SET state = 'retired'
91
+ WHERE namespace = NEW.namespace AND org_id = NEW.org_id AND project_id = NEW.project_id
92
+ AND env_id = NEW.env_id AND wallet_id = NEW.wallet_id;
93
+ END;
@@ -0,0 +1,37 @@
1
+ -- Existing history has no proven execution generation. Preserve it without
2
+ -- inventing one. Every new claim must pin the active local generation.
3
+ CREATE TABLE wallet_operation_generation_upgrade_guard (count INTEGER NOT NULL CHECK(count = 0));
4
+ INSERT INTO wallet_operation_generation_upgrade_guard
5
+ SELECT (SELECT COUNT(*) FROM wallet_relocation_authorization_snapshots)
6
+ + (SELECT COUNT(*) FROM wallet_relocation_authorization_imports);
7
+ DROP TABLE wallet_operation_generation_upgrade_guard;
8
+
9
+ ALTER TABLE authorized_operations ADD COLUMN ownership_generation INTEGER
10
+ CHECK(ownership_generation > 0 AND ownership_generation <= 9007199254740991);
11
+
12
+ CREATE TRIGGER wallet_operation_execution_generation_required
13
+ BEFORE INSERT ON authorized_operations
14
+ WHEN NEW.lifecycle_kind = 'claimed' AND NOT EXISTS (
15
+ SELECT 1 FROM wallet_operation_authorizations AS owner
16
+ JOIN wallet_execution_generations AS execution
17
+ USING(namespace, org_id, project_id, env_id, wallet_id)
18
+ WHERE owner.namespace = NEW.namespace AND owner.tenant_id = NEW.tenant_id
19
+ AND owner.source_kind = NEW.authorization_source_kind
20
+ AND owner.source_id = CASE NEW.authorization_source_kind
21
+ WHEN 'authorization_grant' THEN NEW.authorization_id ELSE NEW.evidence_set_digest END
22
+ AND (NEW.authorization_source_kind = 'verified_step_up' OR
23
+ (NEW.authorization_grant_kind = 'wallet_session_authorization'
24
+ AND owner.org_id = NEW.owner_scope_org_id AND owner.project_id = NEW.owner_scope_project_id
25
+ AND owner.env_id = NEW.owner_scope_env_id))
26
+ AND execution.state = 'active' AND execution.generation = NEW.ownership_generation
27
+ )
28
+ BEGIN
29
+ SELECT CASE WHEN NEW.authorization_source_kind = 'verified_step_up'
30
+ THEN RAISE(ABORT, 'authorization_evidence_claim_rejected')
31
+ ELSE RAISE(ABORT, 'authorization_wallet_session_rejected') END;
32
+ END;
33
+
34
+ CREATE TRIGGER wallet_operation_execution_generation_immutable
35
+ BEFORE UPDATE ON authorized_operations
36
+ WHEN NEW.ownership_generation IS NOT OLD.ownership_generation
37
+ BEGIN SELECT RAISE(ABORT, 'wallet_operation_execution_generation_immutable'); END;
@@ -0,0 +1,59 @@
1
+ -- Regional deployment admission is installed through the private control binding.
2
+ CREATE TABLE regional_deployment_admissions (
3
+ deployment_lane TEXT NOT NULL,
4
+ namespace TEXT NOT NULL,
5
+ account_id TEXT NOT NULL,
6
+ database_id TEXT NOT NULL,
7
+ activation_sequence INTEGER NOT NULL CHECK(activation_sequence > 0 AND activation_sequence <= 9007199254740991),
8
+ binding_revision TEXT NOT NULL,
9
+ binding_json TEXT NOT NULL CHECK(json_valid(binding_json)),
10
+ resource_verifications_json TEXT NOT NULL CHECK(json_valid(resource_verifications_json)),
11
+ state TEXT NOT NULL CHECK(state IN ('prepared', 'active')),
12
+ PRIMARY KEY(deployment_lane, namespace, account_id, database_id)
13
+ );
14
+
15
+ CREATE TRIGGER regional_deployment_admission_monotonic
16
+ BEFORE UPDATE ON regional_deployment_admissions
17
+ WHEN NEW.deployment_lane IS NOT OLD.deployment_lane OR NEW.namespace IS NOT OLD.namespace
18
+ OR NEW.account_id IS NOT OLD.account_id OR NEW.database_id IS NOT OLD.database_id
19
+ OR NEW.activation_sequence < OLD.activation_sequence
20
+ OR (NEW.activation_sequence = OLD.activation_sequence AND OLD.state = 'active' AND (
21
+ NEW.state != 'active' OR NEW.binding_revision IS NOT OLD.binding_revision
22
+ OR NEW.binding_json IS NOT OLD.binding_json
23
+ OR NEW.resource_verifications_json IS NOT OLD.resource_verifications_json))
24
+ OR (NEW.activation_sequence > OLD.activation_sequence AND NEW.state != 'prepared')
25
+ BEGIN SELECT RAISE(ABORT, 'regional_deployment_admission_conflict'); END;
26
+
27
+ CREATE TRIGGER regional_deployment_admission_retained
28
+ BEFORE DELETE ON regional_deployment_admissions
29
+ BEGIN SELECT RAISE(ABORT, 'regional_deployment_admission_retained'); END;
30
+
31
+ -- Each runtime batch checks its admitted writer in the same transaction as its effects.
32
+ -- Successful checks leave no rows behind.
33
+ CREATE TABLE regional_deployment_write_checks (
34
+ deployment_lane TEXT NOT NULL,
35
+ namespace TEXT NOT NULL,
36
+ account_id TEXT NOT NULL,
37
+ database_id TEXT NOT NULL,
38
+ binding_revision TEXT NOT NULL,
39
+ writer_role TEXT NOT NULL CHECK(writer_role IN ('gateway', 'walletRuntime')),
40
+ writer_version TEXT NOT NULL
41
+ );
42
+
43
+ CREATE TRIGGER regional_deployment_write_authorized
44
+ BEFORE INSERT ON regional_deployment_write_checks
45
+ BEGIN
46
+ SELECT CASE WHEN NOT EXISTS (
47
+ SELECT 1 FROM regional_deployment_admissions AS admission,
48
+ json_each(admission.resource_verifications_json) AS proof
49
+ WHERE admission.deployment_lane = NEW.deployment_lane
50
+ AND admission.namespace = NEW.namespace
51
+ AND admission.account_id = NEW.account_id AND admission.database_id = NEW.database_id
52
+ AND admission.binding_revision = NEW.binding_revision AND admission.state = 'active'
53
+ AND json_extract(proof.value, '$.resource.accountId') = NEW.account_id
54
+ AND json_extract(proof.value, '$.resource.databaseId') = NEW.database_id
55
+ AND json_extract(proof.value, '$.authority.kind') = 'cloudflare'
56
+ AND json_extract(proof.value, '$.authority.' || NEW.writer_role || '.versionId') = NEW.writer_version
57
+ ) THEN RAISE(ABORT, 'regional_deployment_writer_retired') END;
58
+ SELECT RAISE(IGNORE);
59
+ END;