@seams/wallet-server 0.5.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 (1075) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +8 -0
  3. package/artifact-manifest.json +464 -0
  4. package/cloudflare-router-ab/build/deriver-a/index.js +2 -0
  5. package/cloudflare-router-ab/build/deriver-a/index_bg.wasm +0 -0
  6. package/cloudflare-router-ab/build/deriver-a/package.json +16 -0
  7. package/cloudflare-router-ab/build/deriver-a/worker/shim.mjs +4 -0
  8. package/cloudflare-router-ab/build/deriver-b/index.js +2 -0
  9. package/cloudflare-router-ab/build/deriver-b/index_bg.wasm +0 -0
  10. package/cloudflare-router-ab/build/deriver-b/package.json +16 -0
  11. package/cloudflare-router-ab/build/deriver-b/worker/shim.mjs +4 -0
  12. package/cloudflare-router-ab/build/local-tools/darwin-arm64/router_ab_local_init +0 -0
  13. package/cloudflare-router-ab/build/router/index.js +2 -0
  14. package/cloudflare-router-ab/build/router/index_bg.wasm +0 -0
  15. package/cloudflare-router-ab/build/router/package.json +16 -0
  16. package/cloudflare-router-ab/build/router/worker/shim.mjs +4 -0
  17. package/cloudflare-router-ab/build/signing-worker/index.js +2 -0
  18. package/cloudflare-router-ab/build/signing-worker/index_bg.wasm +0 -0
  19. package/cloudflare-router-ab/build/signing-worker/package.json +16 -0
  20. package/cloudflare-router-ab/build/signing-worker/worker/shim.mjs +4 -0
  21. package/cloudflare-router-ab/build/tenant-root-control-plane/index.js +2 -0
  22. package/cloudflare-router-ab/build/tenant-root-control-plane/index_bg.wasm +0 -0
  23. package/cloudflare-router-ab/build/tenant-root-control-plane/package.json +16 -0
  24. package/cloudflare-router-ab/build/tenant-root-control-plane/worker/shim.mjs +4 -0
  25. package/cloudflare-router-ab/env/tenant-root-control-plane.local.example +6 -0
  26. package/cloudflare-router-ab/migrations/deriver-a/0001_role_private_storage.sql +14 -0
  27. package/cloudflare-router-ab/migrations/deriver-a/0002_tenant_root_role_shares.sql +32 -0
  28. package/cloudflare-router-ab/migrations/deriver-a/0003_tenant_root_command_replays.sql +76 -0
  29. package/cloudflare-router-ab/migrations/deriver-a/0004_tenant_root_creation_admission.sql +7 -0
  30. package/cloudflare-router-ab/migrations/deriver-a/0005_tenant_root_refresh_state.sql +15 -0
  31. package/cloudflare-router-ab/migrations/deriver-a/0006_tenant_root_restore_import_keys.sql +119 -0
  32. package/cloudflare-router-ab/migrations/deriver-a/0007_tenant_root_restore_refresh_attempts.sql +103 -0
  33. package/cloudflare-router-ab/migrations/deriver-a/0008_tenant_root_restore_promotion.sql +40 -0
  34. package/cloudflare-router-ab/migrations/deriver-a/0009_tenant_root_restore_preactivation_cleanup.sql +8 -0
  35. package/cloudflare-router-ab/migrations/deriver-a/0010_tenant_root_recovery_attempts.sql +26 -0
  36. package/cloudflare-router-ab/migrations/deriver-a/0011_tenant_root_source_retirement.sql +100 -0
  37. package/cloudflare-router-ab/migrations/deriver-b/0001_role_private_storage.sql +14 -0
  38. package/cloudflare-router-ab/migrations/deriver-b/0002_tenant_root_role_shares.sql +32 -0
  39. package/cloudflare-router-ab/migrations/deriver-b/0003_tenant_root_command_replays.sql +76 -0
  40. package/cloudflare-router-ab/migrations/deriver-b/0004_tenant_root_creation_admission.sql +7 -0
  41. package/cloudflare-router-ab/migrations/deriver-b/0005_tenant_root_refresh_state.sql +15 -0
  42. package/cloudflare-router-ab/migrations/deriver-b/0006_tenant_root_restore_import_keys.sql +119 -0
  43. package/cloudflare-router-ab/migrations/deriver-b/0007_tenant_root_restore_refresh_attempts.sql +103 -0
  44. package/cloudflare-router-ab/migrations/deriver-b/0008_tenant_root_restore_promotion.sql +40 -0
  45. package/cloudflare-router-ab/migrations/deriver-b/0009_tenant_root_restore_preactivation_cleanup.sql +8 -0
  46. package/cloudflare-router-ab/migrations/deriver-b/0010_tenant_root_recovery_attempts.sql +26 -0
  47. package/cloudflare-router-ab/migrations/deriver-b/0011_tenant_root_source_retirement.sql +100 -0
  48. package/cloudflare-router-ab/migrations/signing-worker/0001_private_storage.sql +67 -0
  49. package/cloudflare-router-ab/migrations/signing-worker/0002_activation_revocation_fences.sql +3 -0
  50. package/cloudflare-router-ab/scripts/bootstrap-local-tenant-root.mjs +182 -0
  51. package/cloudflare-router-ab/scripts/initialize-local-wallet.mjs +17 -0
  52. package/cloudflare-router-ab/scripts/local-key-material.mjs +29 -0
  53. package/cloudflare-router-ab/scripts/prepare-local-runtime-config.mjs +1110 -0
  54. package/cloudflare-router-ab/scripts/start-local-role-workers.mjs +333 -0
  55. package/cloudflare-router-ab/scripts/start-local-wallet-system.mjs +427 -0
  56. package/cloudflare-router-ab/wrangler.deriver-a.toml +123 -0
  57. package/cloudflare-router-ab/wrangler.deriver-b.toml +123 -0
  58. package/cloudflare-router-ab/wrangler.router.toml +126 -0
  59. package/cloudflare-router-ab/wrangler.signing-worker.toml +86 -0
  60. package/cloudflare-router-ab/wrangler.tenant-root-control-plane.toml +56 -0
  61. package/dist/esm/authorization/capabilityPolicy.js +96 -0
  62. package/dist/esm/authorization/domain.js +434 -0
  63. package/dist/esm/authorization/factorEvidence.js +405 -0
  64. package/dist/esm/authorization/service.js +319 -0
  65. package/dist/esm/authorization/vaultProxyUse.js +295 -0
  66. package/dist/esm/cloud-host.js +126 -0
  67. package/dist/esm/core/AuthService.js +2 -0
  68. package/dist/esm/core/EmailOtpRecords.js +361 -0
  69. package/dist/esm/core/EmailOtpStores.js +1460 -0
  70. package/dist/esm/core/IdentityStore.js +617 -0
  71. package/dist/esm/core/NearPublicKeyStore.js +242 -0
  72. package/dist/esm/core/RegistrationCeremonyStore.js +2101 -0
  73. package/dist/esm/core/SessionService.js +255 -0
  74. package/dist/esm/core/ThresholdService/config.js +111 -0
  75. package/dist/esm/core/ThresholdService/ecdsaClientRootProof.js +27 -0
  76. package/dist/esm/core/ThresholdService/evmCryptoWasm.js +167 -0
  77. package/dist/esm/core/ThresholdService/index.js +4 -0
  78. package/dist/esm/core/ThresholdService/kv.js +368 -0
  79. package/dist/esm/core/ThresholdService/routerAb/ecdsaDerivationPoolFillHandlers.js +360 -0
  80. package/dist/esm/core/ThresholdService/routerAb/ecdsaDerivationPoolFillLiveSession.js +282 -0
  81. package/dist/esm/core/ThresholdService/routerAb/ecdsaDerivationPresignBridge.js +272 -0
  82. package/dist/esm/core/ThresholdService/routerAb/internalServiceHttp.js +57 -0
  83. package/dist/esm/core/ThresholdService/routerAbEcdsaSigningWorkerWasm.js +115 -0
  84. package/dist/esm/core/ThresholdService/routerAbNormalSigningPolicy.js +31 -0
  85. package/dist/esm/core/ThresholdService/secureRandomId.js +9 -0
  86. package/dist/esm/core/ThresholdService/stores/CloudflareDurableObjectStore.js +603 -0
  87. package/dist/esm/core/ThresholdService/stores/EcdsaSigningStore.js +422 -0
  88. package/dist/esm/core/ThresholdService/stores/KeyStore.js +140 -0
  89. package/dist/esm/core/ThresholdService/stores/SessionStore.js +437 -0
  90. package/dist/esm/core/ThresholdService/stores/StoreConfig.js +13 -0
  91. package/dist/esm/core/ThresholdService/stores/WalletSessionStore.js +722 -0
  92. package/dist/esm/core/ThresholdService/validation.js +718 -0
  93. package/dist/esm/core/WalletAuthMethodStore.js +180 -0
  94. package/dist/esm/core/WalletStore.js +495 -0
  95. package/dist/esm/core/WebAuthnAuthenticatorStore.js +485 -0
  96. package/dist/esm/core/WebAuthnCredentialBindingStore.js +594 -0
  97. package/dist/esm/core/WebAuthnLoginChallengeStore.js +432 -0
  98. package/dist/esm/core/WebAuthnSyncChallengeStore.js +434 -0
  99. package/dist/esm/core/authService/AuthService.js +611 -0
  100. package/dist/esm/core/authService/bytes.js +22 -0
  101. package/dist/esm/core/authService/configValues.js +15 -0
  102. package/dist/esm/core/authService/emailOtpChallengeOperations.js +126 -0
  103. package/dist/esm/core/authService/emailOtpChallengeProof.js +214 -0
  104. package/dist/esm/core/authService/emailOtpChallengeVerification.js +335 -0
  105. package/dist/esm/core/authService/emailOtpChallenges.js +260 -0
  106. package/dist/esm/core/authService/emailOtpConfig.js +231 -0
  107. package/dist/esm/core/authService/emailOtpDelivery.js +169 -0
  108. package/dist/esm/core/authService/emailOtpEnrollment.js +141 -0
  109. package/dist/esm/core/authService/emailOtpGrant.js +74 -0
  110. package/dist/esm/core/authService/emailOtpRegistrationEnrollment.js +322 -0
  111. package/dist/esm/core/authService/emailOtpSeal.js +78 -0
  112. package/dist/esm/core/authService/emailOtpUnlock.js +264 -0
  113. package/dist/esm/core/authService/githubOAuth.js +140 -0
  114. package/dist/esm/core/authService/googleEmailOtpErrors.js +6 -0
  115. package/dist/esm/core/authService/googleEmailOtpOperations.js +141 -0
  116. package/dist/esm/core/authService/googleEmailOtpRegistration.js +674 -0
  117. package/dist/esm/core/authService/identity.js +57 -0
  118. package/dist/esm/core/authService/identityOperations.js +32 -0
  119. package/dist/esm/core/authService/nearAccountOperations.js +229 -0
  120. package/dist/esm/core/authService/nearPrivateKeySigning.js +110 -0
  121. package/dist/esm/core/authService/nearPublicKeyMetadata.js +127 -0
  122. package/dist/esm/core/authService/nearTransactions.js +139 -0
  123. package/dist/esm/core/authService/oidcVerification.js +262 -0
  124. package/dist/esm/core/authService/portableCrypto.js +19 -0
  125. package/dist/esm/core/authService/rateLimits.js +117 -0
  126. package/dist/esm/core/authService/record.js +8 -0
  127. package/dist/esm/core/authService/registrationThresholdHelpers.js +131 -0
  128. package/dist/esm/core/authService/runtime.js +45 -0
  129. package/dist/esm/core/authService/signerWasmUrls.js +20 -0
  130. package/dist/esm/core/authService/storeRegistry.js +113 -0
  131. package/dist/esm/core/authService/thresholdEcdsaKeyInventory.js +146 -0
  132. package/dist/esm/core/authService/thresholdRuntimePolicy.js +19 -0
  133. package/dist/esm/core/authService/thresholdStoreSummary.js +32 -0
  134. package/dist/esm/core/authService/walletRegistrationPlanning.js +49 -0
  135. package/dist/esm/core/authService/wasm.js +78 -0
  136. package/dist/esm/core/authService/webauthn.js +746 -0
  137. package/dist/esm/core/authService/webauthnAuthority.js +17 -0
  138. package/dist/esm/core/authService/webauthnOidcHelpers.js +91 -0
  139. package/dist/esm/core/authService/webauthnWalletBinding.js +157 -0
  140. package/dist/esm/core/config.js +110 -0
  141. package/dist/esm/core/d1IdentityStore.js +340 -0
  142. package/dist/esm/core/d1WalletAuthMethodStore.js +768 -0
  143. package/dist/esm/core/d1WalletStore.js +724 -0
  144. package/dist/esm/core/defaultConfigsServer.js +9 -0
  145. package/dist/esm/core/deviceLinking/index.js +5 -0
  146. package/dist/esm/core/deviceLinking/linkedDeviceEd25519ExportRoot.js +0 -0
  147. package/dist/esm/core/deviceLinking/linkedDeviceEmailOtpGrant.js +211 -0
  148. package/dist/esm/core/deviceLinking/linkedDeviceManagement.js +279 -0
  149. package/dist/esm/core/deviceLinking/linkedDeviceSession.js +1419 -0
  150. package/dist/esm/core/deviceLinking/requestProof.js +172 -0
  151. package/dist/esm/core/errors.js +54 -0
  152. package/dist/esm/core/hostedAccountIds.js +225 -0
  153. package/dist/esm/core/keyMaterialBrands.js +58 -0
  154. package/dist/esm/core/logger.js +39 -0
  155. package/dist/esm/core/nearKeys.js +20 -0
  156. package/dist/esm/core/nearRelayerAccountProvisioning.js +713 -0
  157. package/dist/esm/core/nearSignerWasmRuntime.js +87 -0
  158. package/dist/esm/core/registrationContracts.js +2 -0
  159. package/dist/esm/core/routerAbSigning/RouterAbEcdsaPresignRuntime.js +88 -0
  160. package/dist/esm/core/routerAbSigning/RouterAbNormalSigningRuntime.js +101 -0
  161. package/dist/esm/core/routerAbSigning/createCloudflareDurableObjectRouterAbSigningRuntimes.js +39 -0
  162. package/dist/esm/core/routerAbSigning/createRouterAbSigningRuntimes.js +91 -0
  163. package/dist/esm/core/rpcClients/near/NearClient.js +389 -0
  164. package/dist/esm/core/sessionValidation.js +0 -0
  165. package/dist/esm/core/signingLanes/LaneAggregateRevocationApplicationService.js +86 -0
  166. package/dist/esm/core/signingLanes/LaneEffectJournalStore.js +0 -0
  167. package/dist/esm/core/signingLanes/LaneEnrollmentActivation.js +324 -0
  168. package/dist/esm/core/signingLanes/LaneEnrollmentRevocation.js +173 -0
  169. package/dist/esm/core/signingLanes/LaneLifecycleApplicationService.js +200 -0
  170. package/dist/esm/core/signingLanes/LaneLifecycleStore.js +24 -0
  171. package/dist/esm/core/signingLanes/SigningLaneStore.js +0 -0
  172. package/dist/esm/core/signingLanes/WalletExecutionLaneProjection.js +296 -0
  173. package/dist/esm/core/signingLanes/WalletKeyStore.js +0 -0
  174. package/dist/esm/core/signingLanes/ecdsaServerRetirement.js +78 -0
  175. package/dist/esm/core/signingLanes/ed25519ServerRetirement.js +71 -0
  176. package/dist/esm/core/signingLanes/index.js +8 -0
  177. package/dist/esm/core/signingLanes/signingWorkerLaneMaterialIdentity.js +0 -0
  178. package/dist/esm/core/signingMaterial/ordinaryInactiveSignerMaterialReservation.js +305 -0
  179. package/dist/esm/core/threeRouteRegistrationContracts.js +5 -0
  180. package/dist/esm/core/thresholdEcdsaChainTarget.js +49 -0
  181. package/dist/esm/core/types.js +8 -0
  182. package/dist/esm/core/utils.js +14 -0
  183. package/dist/esm/delegateAction/index.js +136 -0
  184. package/dist/esm/hosted-wallet-gateway-worker.js +18 -0
  185. package/dist/esm/hosted-wallet-gateway.js +701 -0
  186. package/dist/esm/index.js +53 -0
  187. package/dist/esm/local-hosted-wallet-gateway-worker.js +23 -0
  188. package/dist/esm/node_modules/@near-js/types/lib/esm/provider/response.js +17 -0
  189. package/dist/esm/router/auth/authRequestValidation.js +264 -0
  190. package/dist/esm/router/auth/commonRouterUtils.js +305 -0
  191. package/dist/esm/router/auth/routerApiCredentialAuth.js +91 -0
  192. package/dist/esm/router/auth/routerApiKeyAuth.js +63 -0
  193. package/dist/esm/router/auth/walletSessionFailure.js +49 -0
  194. package/dist/esm/router/auth/webAuthnCredentialCodecs.js +107 -0
  195. package/dist/esm/router/cloudflare/d1/auth/d1RouterApiAuthBoundary.js +84 -0
  196. package/dist/esm/router/cloudflare/d1/auth/d1RouterApiAuthConfig.js +321 -0
  197. package/dist/esm/router/cloudflare/d1/auth/d1RouterApiAuthService.js +1581 -0
  198. package/dist/esm/router/cloudflare/d1/authorization/d1AuthorizationStore.js +1820 -0
  199. package/dist/esm/router/cloudflare/d1/authorization/d1VaultProxyStore.js +122 -0
  200. package/dist/esm/router/cloudflare/d1/authorization/walletSessionAuthorityProjection.js +119 -0
  201. package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceAuthorityInstallService.js +1831 -0
  202. package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceEd25519ExportRootStore.js +118 -0
  203. package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceEmailOtpGrantStore.js +81 -0
  204. package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceEmailOtpTargetFactor.js +539 -0
  205. package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceManagementService.js +92 -0
  206. package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceOwnerAuthorizationProvider.js +560 -0
  207. package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceRequestProofNonceStore.js +136 -0
  208. package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceRouteService.js +95 -0
  209. package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceSessionRecords.js +91 -0
  210. package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceSessionService.js +15 -0
  211. package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceSessionStore.js +732 -0
  212. package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceSourceContributionPreparationPlanner.js +195 -0
  213. package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceTargetAuthenticatorStore.js +100 -0
  214. package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceTargetCredentialProvider.js +867 -0
  215. package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceTargetPlanner.js +169 -0
  216. package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceVerifiedLinkBuilder.js +255 -0
  217. package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceVerifiedLinkSourceReader.js +128 -0
  218. package/dist/esm/router/cloudflare/d1/deviceLinking/index.js +15 -0
  219. package/dist/esm/router/cloudflare/d1/ed25519Yao/d1Ed25519YaoCapabilityPersistence.js +311 -0
  220. package/dist/esm/router/cloudflare/d1/ed25519Yao/d1Ed25519YaoProductRegistrationPartitionedStateStore.js +21 -0
  221. package/dist/esm/router/cloudflare/d1/ed25519Yao/d1Ed25519YaoWalletSigner.js +65 -0
  222. package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpChallengeIssuer.js +216 -0
  223. package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpChallengeService.js +326 -0
  224. package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpChallengeStore.js +346 -0
  225. package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpChallengeVerifier.js +495 -0
  226. package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpDeliveryRuntime.js +157 -0
  227. package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpEnrollmentStore.js +248 -0
  228. package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpGrantStore.js +66 -0
  229. package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpRateLimitStore.js +76 -0
  230. package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpRecords.js +539 -0
  231. package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpRecoveryService.js +404 -0
  232. package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpRegistrationEnrollmentFinalizer.js +200 -0
  233. package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpServerSealRuntime.js +84 -0
  234. package/dist/esm/router/cloudflare/d1/emailOtp/d1GoogleEmailOtpRegistrationAttemptStore.js +217 -0
  235. package/dist/esm/router/cloudflare/d1/emailOtp/d1GoogleEmailOtpRegistrationRecords.js +485 -0
  236. package/dist/esm/router/cloudflare/d1/emailOtp/d1GoogleEmailOtpSessionResolver.js +509 -0
  237. package/dist/esm/router/cloudflare/d1/identity/d1IdentityRecords.js +51 -0
  238. package/dist/esm/router/cloudflare/d1/identity/d1IdentityService.js +135 -0
  239. package/dist/esm/router/cloudflare/d1/near/d1NearPublicKeyStore.js +62 -0
  240. package/dist/esm/router/cloudflare/d1/oidc/d1OidcBoundary.js +272 -0
  241. package/dist/esm/router/cloudflare/d1/oidc/d1OidcVerificationService.js +132 -0
  242. package/dist/esm/router/cloudflare/d1/passkeyCustody/d1PasskeyCustodyEnvelopeStore.js +628 -0
  243. package/dist/esm/router/cloudflare/d1/passkeyCustody/d1PasskeyCustodyRouteService.js +871 -0
  244. package/dist/esm/router/cloudflare/d1/passkeyCustody/d1WalletCustodyCommitStore.js +823 -0
  245. package/dist/esm/router/cloudflare/d1/passkeyCustody/d1WalletRecoveryGoogleEmailOtpAttemptStore.js +38 -0
  246. package/dist/esm/router/cloudflare/d1/passkeyCustody/d1WalletRecoveryGoogleEmailOtpRecords.js +304 -0
  247. package/dist/esm/router/cloudflare/d1/passkeyCustody/d1WalletRecoveryGoogleEmailOtpService.js +793 -0
  248. package/dist/esm/router/cloudflare/d1/registration/d1EvmFamilyEcdsaRegistrationBranch.js +120 -0
  249. package/dist/esm/router/cloudflare/d1/registration/d1RegistrationCeremonyRecordStore.js +317 -0
  250. package/dist/esm/router/cloudflare/d1/registration/d1RegistrationCeremonyRecords.js +2084 -0
  251. package/dist/esm/router/cloudflare/d1/registration/d1RegistrationCeremonyStore.js +309 -0
  252. package/dist/esm/router/cloudflare/d1/registration/d1RegistrationIntentService.js +120 -0
  253. package/dist/esm/router/cloudflare/d1/registration/d1WalletRegistrationCommitStore.js +263 -0
  254. package/dist/esm/router/cloudflare/d1/registration/d1WalletRegistrationService.js +3887 -0
  255. package/dist/esm/router/cloudflare/d1/registration/d1WalletRegistrationSetup.js +182 -0
  256. package/dist/esm/router/cloudflare/d1/registration/walletRegistrationEstablishedSessionIssuer.js +399 -0
  257. package/dist/esm/router/cloudflare/d1/registration/walletRegistrationSessionCommitReceipt.js +486 -0
  258. package/dist/esm/router/cloudflare/d1/signingAdmission/d1RouterAbNormalSigningAdmissionStore.js +146 -0
  259. package/dist/esm/router/cloudflare/d1/signingLanes/d1EcdsaLanePrivateBindingResolver.js +10 -0
  260. package/dist/esm/router/cloudflare/d1/signingLanes/d1LaneAggregateRevocationApplicationService.js +22 -0
  261. package/dist/esm/router/cloudflare/d1/signingLanes/d1LaneEffectJournalStore.js +167 -0
  262. package/dist/esm/router/cloudflare/d1/signingLanes/d1LaneEnrollmentGateway.js +38 -0
  263. package/dist/esm/router/cloudflare/d1/signingLanes/d1LaneLifecycleApplicationService.js +20 -0
  264. package/dist/esm/router/cloudflare/d1/signingLanes/d1LaneLifecycleStore.js +1459 -0
  265. package/dist/esm/router/cloudflare/d1/signingLanes/d1LaneLockStore.js +114 -0
  266. package/dist/esm/router/cloudflare/d1/signingLanes/d1LaneProtocolCommitter.js +16 -0
  267. package/dist/esm/router/cloudflare/d1/signingLanes/d1LaneRecords.js +170 -0
  268. package/dist/esm/router/cloudflare/d1/signingLanes/index.js +10 -0
  269. package/dist/esm/router/cloudflare/d1/versionedJson/d1VersionedJsonRecordStore.js +412 -0
  270. package/dist/esm/router/cloudflare/d1/wallet/d1WalletAddSignerService.js +1396 -0
  271. package/dist/esm/router/cloudflare/d1/wallet/d1WalletAuthMethodBoundary.js +285 -0
  272. package/dist/esm/router/cloudflare/d1/wallet/d1WalletAuthMethodService.js +2018 -0
  273. package/dist/esm/router/cloudflare/d1/wallet/d1WalletAuthorityStore.js +792 -0
  274. package/dist/esm/router/cloudflare/d1/webauthn/d1WebAuthnAuthService.js +635 -0
  275. package/dist/esm/router/cloudflare/d1/webauthn/d1WebAuthnRecords.js +538 -0
  276. package/dist/esm/router/cloudflare/d1/webauthn/d1WebAuthnStore.js +264 -0
  277. package/dist/esm/router/cloudflare/durableObjects/thresholdStore.js +514 -0
  278. package/dist/esm/router/cloudflare/durableObjects/versionedJsonRecordStore.js +192 -0
  279. package/dist/esm/router/cloudflare/runtime/cloudflare.types.js +0 -0
  280. package/dist/esm/router/cloudflare/runtime/cloudflareSignerWasm.js +8 -0
  281. package/dist/esm/router/cloudflare/runtime/createCloudflareRouter.js +19 -0
  282. package/dist/esm/router/cloudflare/runtime/createSelfHostedCloudflareSigningWorker.js +94 -0
  283. package/dist/esm/router/cloudflare/runtime/ed25519SessionAdapter.js +106 -0
  284. package/dist/esm/router/cloudflare/runtime/environment.js +25 -0
  285. package/dist/esm/router/cloudflare/runtime/routerAbPrewarm.js +34 -0
  286. package/dist/esm/router/cloudflare/runtime/routerAbServiceBindings.js +33 -0
  287. package/dist/esm/router/cloudflare/runtime/sessionAdapterRuntime.js +104 -0
  288. package/dist/esm/router/cloudflare/runtime/staticWalletConsoleBinding.js +168 -0
  289. package/dist/esm/router/cloudflare/runtime/tenantRootCreationGrant.js +147 -0
  290. package/dist/esm/router/cloudflare/runtime/walletConsoleOps.js +143 -0
  291. package/dist/esm/router/cloudflare/runtime/walletConsoleOpsClient.js +227 -0
  292. package/dist/esm/router/cloudflare/runtime/walletConsoleTenantRootLineage.js +30 -0
  293. package/dist/esm/router/cloudflare/runtime/walletControlOps.js +107 -0
  294. package/dist/esm/router/cloudflare/runtime/walletGateway.js +149 -0
  295. package/dist/esm/router/cloudflare/runtime/walletRuntimeOps.js +322 -0
  296. package/dist/esm/router/cloudflare/runtime/walletRuntimeOpsHandler.js +48 -0
  297. package/dist/esm/router/cloudflare/signingLanes/cloudflareLaneCurveExecution.js +597 -0
  298. package/dist/esm/router/cloudflare/signingLanes/cloudflareLaneProtocolCommitter.js +272 -0
  299. package/dist/esm/router/cloudflare/signingLanes/cloudflareOrdinaryInactiveSignerMaterialReservation.js +477 -0
  300. package/dist/esm/router/cloudflare/signingLanes/index.js +4 -0
  301. package/dist/esm/router/cloudflare/signingLanes/linkedDeviceEd25519CeremonyBinding.js +32 -0
  302. package/dist/esm/router/cloudflare-adaptor.js +45 -0
  303. package/dist/esm/router/cloudflare.js +42794 -0
  304. package/dist/esm/router/domains/ecdsa/routerAbEcdsaStrictRegistration.js +738 -0
  305. package/dist/esm/router/domains/ecdsa/thresholdEcdsaRequestValidation.js +134 -0
  306. package/dist/esm/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistration.js +368 -0
  307. package/dist/esm/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistrationPartitionedStateStore.js +624 -0
  308. package/dist/esm/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistrationPartitioning.js +143 -0
  309. package/dist/esm/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistrationPersistence.js +270 -0
  310. package/dist/esm/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistrationRequestScopedRunner.js +31 -0
  311. package/dist/esm/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistrationRequestScopedRuntime.js +162 -0
  312. package/dist/esm/router/domains/ed25519Yao/export/routerAbEd25519YaoExport.js +1366 -0
  313. package/dist/esm/router/domains/ed25519Yao/export/routerAbEd25519YaoExportRequestScopedCloudflare.js +465 -0
  314. package/dist/esm/router/domains/ed25519Yao/recovery/routerAbEd25519YaoRecovery.js +1609 -0
  315. package/dist/esm/router/domains/ed25519Yao/recovery/routerAbEd25519YaoRecoveryRequestScopedCloudflare.js +540 -0
  316. package/dist/esm/router/domains/ed25519Yao/recovery/routerAbEd25519YaoRecoveryWalletSessionAuthorization.js +394 -0
  317. package/dist/esm/router/domains/ed25519Yao/registration/routerAbEd25519YaoHttpRegistrationBackend.js +572 -0
  318. package/dist/esm/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistration.js +555 -0
  319. package/dist/esm/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistrationExecutionRecord.js +268 -0
  320. package/dist/esm/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistrationIntentAuthorization.js +329 -0
  321. package/dist/esm/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistrationRequestScopedCloudflare.js +423 -0
  322. package/dist/esm/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistrationSideEffectBoundary.js +432 -0
  323. package/dist/esm/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistrationTwoPhaseRunner.js +58 -0
  324. package/dist/esm/router/domains/ed25519Yao/routerAbEd25519YaoGatewayEnvelope.js +0 -0
  325. package/dist/esm/router/domains/ed25519Yao/session/routerAbEd25519YaoWalletSession.js +0 -0
  326. package/dist/esm/router/domains/ed25519Yao/session/thresholdEd25519RequestValidation.js +275 -0
  327. package/dist/esm/router/domains/emailOtp/emailOtpExportPolicy.js +70 -0
  328. package/dist/esm/router/domains/emailOtp/emailOtpRequestValidation.js +34 -0
  329. package/dist/esm/router/domains/emailOtp/emailOtpRouteHandlers.js +218 -0
  330. package/dist/esm/router/domains/emailOtp/emailOtpSessionRouteHelpers.js +210 -0
  331. package/dist/esm/router/domains/passkeyCustody/envelopeRevocationAdmission.js +26 -0
  332. package/dist/esm/router/domains/passkeyCustody/passkeyCustodyEnvelopeRetrieval.js +107 -0
  333. package/dist/esm/router/domains/passkeyCustody/passkeyCustodyEnvelopeRetrievalRoute.js +45 -0
  334. package/dist/esm/router/domains/passkeyCustody/registrationCustodyOutcome.js +47 -0
  335. package/dist/esm/router/domains/passkeyCustody/verifiedCustodyFactor.js +46 -0
  336. package/dist/esm/router/domains/passkeyCustody/walletCustodyRegistrationAdmission.js +32 -0
  337. package/dist/esm/router/domains/passkeyCustody/walletCustodyRegistrationCommit.js +170 -0
  338. package/dist/esm/router/domains/passkeyCustody/walletRecoveryAttempt.js +64 -0
  339. package/dist/esm/router/domains/passkeyCustody/walletRecoveryFinalization.js +652 -0
  340. package/dist/esm/router/domains/passkeyCustody/walletRecoveryKeyManifest.js +396 -0
  341. package/dist/esm/router/domains/passkeyCustody/walletRecoveryRotation.js +87 -0
  342. package/dist/esm/router/domains/signingOperations/ed25519AuthorizedOperationReceipt.js +89 -0
  343. package/dist/esm/router/domains/signingOperations/routerAbNormalSigningAdmissionCore.js +106 -0
  344. package/dist/esm/router/domains/signingOperations/routerAbPrivateSigningWorker.js +2669 -0
  345. package/dist/esm/router/domains/signingOperations/walletExecutionAdmission.js +228 -0
  346. package/dist/esm/router/domains/syncAccount/syncAccountRequestValidation.js +78 -0
  347. package/dist/esm/router/domains/tenantRoot/tenantRootCustodyLineage.js +0 -0
  348. package/dist/esm/router/domains/tenantRoot/tenantRootEcdsaWalletSessionComposition.js +55 -0
  349. package/dist/esm/router/domains/tenantRoot/tenantRootEd25519WalletSessionComposition.js +56 -0
  350. package/dist/esm/router/domains/tenantRoot/tenantRootIdentityResolution.js +111 -0
  351. package/dist/esm/router/domains/walletRegistration/walletRegistrationInputs.js +0 -0
  352. package/dist/esm/router/domains/walletRegistration/walletRegistrationRoutes.js +2199 -0
  353. package/dist/esm/router/domains/walletRegistration/walletRegistrationSetupPayload.js +155 -0
  354. package/dist/esm/router/domains/walletUnlock/walletUnlockRequestedCapabilitiesValidation.js +84 -0
  355. package/dist/esm/router/domains/walletUnlock/walletUnlockRouteHandlers.js +1142 -0
  356. package/dist/esm/router/express-adaptor.js +84 -0
  357. package/dist/esm/router/express.js +26616 -0
  358. package/dist/esm/router/framework/apiCredentialPorts.js +11 -0
  359. package/dist/esm/router/framework/applyRouteMetering.js +26 -0
  360. package/dist/esm/router/framework/authServicePort.js +30 -0
  361. package/dist/esm/router/framework/enforceRoutePolicy.js +92 -0
  362. package/dist/esm/router/framework/http.js +87 -0
  363. package/dist/esm/router/framework/logger.js +7 -0
  364. package/dist/esm/router/framework/modules.js +34 -0
  365. package/dist/esm/router/framework/ror/index.js +5 -0
  366. package/dist/esm/router/framework/ror/normalize.js +57 -0
  367. package/dist/esm/router/framework/ror/options.js +33 -0
  368. package/dist/esm/router/framework/ror/provider.js +33 -0
  369. package/dist/esm/router/framework/ror/staticProvider.js +24 -0
  370. package/dist/esm/router/framework/routeAuthPolicy.js +16 -0
  371. package/dist/esm/router/framework/routeDefinitions.js +446 -0
  372. package/dist/esm/router/framework/routeExecutionContext.js +24 -0
  373. package/dist/esm/router/framework/routeExtensions.js +50 -0
  374. package/dist/esm/router/framework/routeMeteringPolicy.js +0 -0
  375. package/dist/esm/router/framework/routeRequestValidation.js +32 -0
  376. package/dist/esm/router/framework/routeResponses.js +33 -0
  377. package/dist/esm/router/framework/routerApi.js +42 -0
  378. package/dist/esm/router/framework/routerApiRouteSurface.js +54 -0
  379. package/dist/esm/router/framework/routerApiWebhooks.js +60 -0
  380. package/dist/esm/router/framework/runtimeSnapshotConsumer.js +145 -0
  381. package/dist/esm/router/framework/versionedJsonRecordStore.js +0 -0
  382. package/dist/esm/router/ror-adaptor.js +5 -0
  383. package/dist/esm/router/ror.js +178 -0
  384. package/dist/esm/router/transport/fetch/createFetchRouter.js +309 -0
  385. package/dist/esm/router/transport/fetch/fetchRouter.types.js +0 -0
  386. package/dist/esm/router/transport/fetch/routes/auth.js +219 -0
  387. package/dist/esm/router/transport/fetch/routes/deviceLinking.js +1196 -0
  388. package/dist/esm/router/transport/fetch/routes/deviceLinkingOwnerAuthorization.js +264 -0
  389. package/dist/esm/router/transport/fetch/routes/deviceManagement.js +289 -0
  390. package/dist/esm/router/transport/fetch/routes/health.js +42 -0
  391. package/dist/esm/router/transport/fetch/routes/nearPublicKeys.js +39 -0
  392. package/dist/esm/router/transport/fetch/routes/normalSigningRouterProxy.js +118 -0
  393. package/dist/esm/router/transport/fetch/routes/passkeyCustody.js +1618 -0
  394. package/dist/esm/router/transport/fetch/routes/sessions.js +1033 -0
  395. package/dist/esm/router/transport/fetch/routes/syncAccount.js +187 -0
  396. package/dist/esm/router/transport/fetch/routes/syncAccountBootstrap.js +214 -0
  397. package/dist/esm/router/transport/fetch/routes/thresholdEcdsa.js +1729 -0
  398. package/dist/esm/router/transport/fetch/routes/thresholdEd25519.js +1321 -0
  399. package/dist/esm/router/transport/fetch/routes/walletExecutionLanePreflight.js +228 -0
  400. package/dist/esm/router/transport/fetch/routes/walletRegistration.js +73 -0
  401. package/dist/esm/router/transport/fetch/routes/webauthnAuthenticators.js +43 -0
  402. package/dist/esm/router/transport/fetch/routes/wellKnown.js +48 -0
  403. package/dist/esm/shared-ts/src/authorization/capabilityKinds.js +224 -0
  404. package/dist/esm/shared-ts/src/authorization/delegatedAuthority.js +134 -0
  405. package/dist/esm/shared-ts/src/authorization/index.js +6 -0
  406. package/dist/esm/shared-ts/src/authorization/operationFingerprint.js +58 -0
  407. package/dist/esm/shared-ts/src/authorization/walletAuthority.js +802 -0
  408. package/dist/esm/shared-ts/src/authorization/walletCustodyOperation.js +18 -0
  409. package/dist/esm/shared-ts/src/authorization/walletSessionIssuance.js +5 -0
  410. package/dist/esm/shared-ts/src/device-linking/committedSignerPackages.js +332 -0
  411. package/dist/esm/shared-ts/src/device-linking/contracts.js +8 -0
  412. package/dist/esm/shared-ts/src/device-linking/delegatedActivationPlan.js +132 -0
  413. package/dist/esm/shared-ts/src/device-linking/digests.js +273 -0
  414. package/dist/esm/shared-ts/src/device-linking/ed25519ExportRoot.js +158 -0
  415. package/dist/esm/shared-ts/src/device-linking/index.js +9 -0
  416. package/dist/esm/shared-ts/src/device-linking/parsers.js +1412 -0
  417. package/dist/esm/shared-ts/src/device-linking/requestProof.js +114 -0
  418. package/dist/esm/shared-ts/src/device-linking/sourceContribution.js +563 -0
  419. package/dist/esm/shared-ts/src/device-linking/walletSessionCredentialDelivery.js +207 -0
  420. package/dist/esm/shared-ts/src/near/actions.js +75 -0
  421. package/dist/esm/shared-ts/src/passkey-custody/ceremonyCommitPayload.js +69 -0
  422. package/dist/esm/shared-ts/src/passkey-custody/credentialActivity.js +81 -0
  423. package/dist/esm/shared-ts/src/passkey-custody/custodyEnvelope.js +272 -0
  424. package/dist/esm/shared-ts/src/passkey-custody/custodySecretBinding.js +175 -0
  425. package/dist/esm/shared-ts/src/passkey-custody/index.js +5 -0
  426. package/dist/esm/shared-ts/src/passkey-custody/primitives.js +92 -0
  427. package/dist/esm/shared-ts/src/signing-lanes/evmFamilySigningKeySlotId.js +53 -0
  428. package/dist/esm/shared-ts/src/signing-lanes/execution.js +14 -0
  429. package/dist/esm/shared-ts/src/signing-lanes/index.js +11 -0
  430. package/dist/esm/shared-ts/src/signing-lanes/linkedEcdsaScope.js +1 -0
  431. package/dist/esm/shared-ts/src/signing-lanes/ownerContinuity.js +91 -0
  432. package/dist/esm/shared-ts/src/signing-lanes/participantDigest.js +124 -0
  433. package/dist/esm/shared-ts/src/signing-lanes/participants.js +262 -0
  434. package/dist/esm/shared-ts/src/signing-lanes/recordParsers.js +143 -0
  435. package/dist/esm/shared-ts/src/signing-lanes/rotation.js +8 -0
  436. package/dist/esm/shared-ts/src/signing-lanes/rotationDigests.js +397 -0
  437. package/dist/esm/shared-ts/src/signing-lanes/rotationLifecycle.js +313 -0
  438. package/dist/esm/shared-ts/src/signing-lanes/rotationParsers.js +1620 -0
  439. package/dist/esm/shared-ts/src/tenant-root/index.js +2 -0
  440. package/dist/esm/shared-ts/src/tenant-root/tenantRootIdentity.js +198 -0
  441. package/dist/esm/shared-ts/src/tenant-root/tenantRootOperationRecord.js +440 -0
  442. package/dist/esm/shared-ts/src/threshold/ecdsaDerivationRoleLocalBootstrap.js +85 -0
  443. package/dist/esm/shared-ts/src/threshold/participants.js +26 -0
  444. package/dist/esm/shared-ts/src/threshold/sessionPolicy.js +9 -0
  445. package/dist/esm/shared-ts/src/threshold/signingRootScope.js +40 -0
  446. package/dist/esm/shared-ts/src/utils/addAuthMethodRegistration.js +104 -0
  447. package/dist/esm/shared-ts/src/utils/addWalletAuthMethod.js +36 -0
  448. package/dist/esm/shared-ts/src/utils/base58.js +28 -0
  449. package/dist/esm/shared-ts/src/utils/base64.js +70 -0
  450. package/dist/esm/shared-ts/src/utils/canonicalPrimitives.js +27 -0
  451. package/dist/esm/shared-ts/src/utils/digests.js +33 -0
  452. package/dist/esm/shared-ts/src/utils/domainIds.js +309 -0
  453. package/dist/esm/shared-ts/src/utils/ecdsaCapabilityActivation.js +34 -0
  454. package/dist/esm/shared-ts/src/utils/ecdsaKeyFactsInventory.js +46 -0
  455. package/dist/esm/shared-ts/src/utils/emailOtpDomain.js +38 -0
  456. package/dist/esm/shared-ts/src/utils/emailOtpRecoveryKey.js +10 -0
  457. package/dist/esm/shared-ts/src/utils/encoders.js +2 -0
  458. package/dist/esm/shared-ts/src/utils/errors.js +88 -0
  459. package/dist/esm/shared-ts/src/utils/evmRpcResults.js +97 -0
  460. package/dist/esm/shared-ts/src/utils/jsonRpc.js +64 -0
  461. package/dist/esm/shared-ts/src/utils/keccak.js +150 -0
  462. package/dist/esm/shared-ts/src/utils/near.js +99 -0
  463. package/dist/esm/shared-ts/src/utils/nearRpcResults.js +205 -0
  464. package/dist/esm/shared-ts/src/utils/normalize.js +87 -0
  465. package/dist/esm/shared-ts/src/utils/registrationEstablishedSession.js +201 -0
  466. package/dist/esm/shared-ts/src/utils/registrationIntent.js +1268 -0
  467. package/dist/esm/shared-ts/src/utils/routerAbEcdsaDerivation.js +1655 -0
  468. package/dist/esm/shared-ts/src/utils/routerAbEd25519Yao.js +984 -0
  469. package/dist/esm/shared-ts/src/utils/routerAbNormalSigningIdentity.js +118 -0
  470. package/dist/esm/shared-ts/src/utils/routerAbPublicKeyset.js +138 -0
  471. package/dist/esm/shared-ts/src/utils/routerAbTraceContext.js +36 -0
  472. package/dist/esm/shared-ts/src/utils/secureRandomId.js +35 -0
  473. package/dist/esm/shared-ts/src/utils/signingSessionSeal.js +118 -0
  474. package/dist/esm/shared-ts/src/utils/thresholdEcdsaKeyHandle.js +28 -0
  475. package/dist/esm/shared-ts/src/utils/validation.js +23 -0
  476. package/dist/esm/shared-ts/src/utils/walletAddSignerActivation.js +32 -0
  477. package/dist/esm/shared-ts/src/utils/walletAuthAuthority.js +207 -0
  478. package/dist/esm/shared-ts/src/utils/walletSessionFailure.js +15 -0
  479. package/dist/esm/shared-ts/src/utils/webauthnDeviceInfo.js +207 -0
  480. package/dist/esm/shared-ts/src/wallet-recovery/backupAcknowledgement.js +66 -0
  481. package/dist/esm/shared-ts/src/wallet-recovery/index.js +10 -0
  482. package/dist/esm/shared-ts/src/wallet-recovery/recoveryCodeIssuance.js +1 -0
  483. package/dist/esm/shared-ts/src/wallet-recovery/recoveryCodeLocator.js +34 -0
  484. package/dist/esm/shared-ts/src/wallet-recovery/recoveryCodeReservation.js +80 -0
  485. package/dist/esm/shared-ts/src/wallet-recovery/recoveryCodes.js +4 -0
  486. package/dist/esm/shared-ts/src/wallet-recovery/recoveryKeyId.js +53 -0
  487. package/dist/esm/shared-ts/src/wallet-recovery/walletRecoveryCommittedProjection.js +108 -0
  488. package/dist/esm/shared-ts/src/wallet-recovery/walletRecoveryEcdsaPossession.js +157 -0
  489. package/dist/esm/shared-ts/src/wallet-recovery/walletRecoveryEnvelopeSet.js +233 -0
  490. package/dist/esm/shared-ts/src/wallet-recovery/walletRecoveryRotation.js +3 -0
  491. package/dist/esm/shared-ts/src/wallet-recovery/walletRecoveryTarget.js +29 -0
  492. package/dist/esm/storage/d1Sql.js +85 -0
  493. package/dist/esm/storage/tenantRoute.js +89 -0
  494. package/dist/esm/tenant-root.js +5 -0
  495. package/dist/esm/threshold/session/signingSessionSeal/crypto/cipher.js +204 -0
  496. package/dist/esm/threshold/session/signingSessionSeal/crypto/shamir3PassWasm.js +87 -0
  497. package/dist/esm/threshold/session/signingSessionSeal/guards/backends.js +192 -0
  498. package/dist/esm/threshold/session/signingSessionSeal/guards/index.js +121 -0
  499. package/dist/esm/threshold/session/signingSessionSeal/idempotency.js +38 -0
  500. package/dist/esm/threshold/session/signingSessionSeal/idempotencyBackends.js +131 -0
  501. package/dist/esm/threshold/session/signingSessionSeal/idempotencyRecords.js +55 -0
  502. package/dist/esm/threshold/session/signingSessionSeal/index.js +13 -0
  503. package/dist/esm/threshold/session/signingSessionSeal/observability/audit.js +38 -0
  504. package/dist/esm/threshold/session/signingSessionSeal/options.js +54 -0
  505. package/dist/esm/threshold/session/signingSessionSeal/routesOptions.js +45 -0
  506. package/dist/esm/threshold/session/signingSessionSeal/service.js +316 -0
  507. package/dist/esm/threshold/session/signingSessionSeal/signingSessionSeal.types.js +0 -0
  508. package/dist/esm/threshold/session/signingSessionSeal/transport/express.js +151 -0
  509. package/dist/esm/threshold/session/signingSessionSeal/transport/fetch.js +106 -0
  510. package/dist/esm/threshold/session/signingSessionSeal/transport/shared.js +159 -0
  511. package/dist/esm/threshold/statusCodes.js +39 -0
  512. package/dist/esm/wasm/evm_crypto/pkg/evm_crypto.js +601 -0
  513. package/dist/esm/wasm/evm_crypto/pkg/evm_crypto_bg.wasm +0 -0
  514. package/dist/esm/wasm/near_signer/pkg/wasm_signer_worker.js +1078 -0
  515. package/dist/esm/wasm/near_signer/pkg/wasm_signer_worker_bg.wasm +0 -0
  516. package/dist/esm/wasm/router_ab_ecdsa_signing_worker/pkg/router_ab_ecdsa_signing_worker.js +503 -0
  517. package/dist/esm/wasm/router_ab_ecdsa_signing_worker/pkg/router_ab_ecdsa_signing_worker_bg.wasm +0 -0
  518. package/dist/esm/wasm/shamir3pass_runtime/pkg/shamir3pass_runtime.js +393 -0
  519. package/dist/esm/wasm/shamir3pass_runtime/pkg/shamir3pass_runtime_bg.wasm +0 -0
  520. package/dist/esm/wasm/signer.js +2 -0
  521. package/dist/types/shared-ts/src/authorization/capabilityKinds.d.ts +147 -0
  522. package/dist/types/shared-ts/src/authorization/capabilityKinds.typecheck.d.ts +2 -0
  523. package/dist/types/shared-ts/src/authorization/delegatedAuthority.d.ts +44 -0
  524. package/dist/types/shared-ts/src/authorization/index.d.ts +7 -0
  525. package/dist/types/shared-ts/src/authorization/operationFingerprint.d.ts +39 -0
  526. package/dist/types/shared-ts/src/authorization/operationFingerprint.typecheck.d.ts +2 -0
  527. package/dist/types/shared-ts/src/authorization/walletAuthority.d.ts +168 -0
  528. package/dist/types/shared-ts/src/authorization/walletAuthority.typecheck.d.ts +2 -0
  529. package/dist/types/shared-ts/src/authorization/walletCustodyOperation.d.ts +10 -0
  530. package/dist/types/shared-ts/src/authorization/walletSessionIssuance.d.ts +28 -0
  531. package/dist/types/shared-ts/src/device-linking/activeWalletSession.d.ts +3 -0
  532. package/dist/types/shared-ts/src/device-linking/activeWalletSession.typecheck.d.ts +2 -0
  533. package/dist/types/shared-ts/src/device-linking/committedSignerPackages.d.ts +71 -0
  534. package/dist/types/shared-ts/src/device-linking/contracts.d.ts +843 -0
  535. package/dist/types/shared-ts/src/device-linking/contracts.typecheck.d.ts +2 -0
  536. package/dist/types/shared-ts/src/device-linking/delegatedActivationPlan.d.ts +37 -0
  537. package/dist/types/shared-ts/src/device-linking/digests.d.ts +23 -0
  538. package/dist/types/shared-ts/src/device-linking/ed25519ExportRoot.d.ts +93 -0
  539. package/dist/types/shared-ts/src/device-linking/index.d.ts +11 -0
  540. package/dist/types/shared-ts/src/device-linking/parsers.d.ts +124 -0
  541. package/dist/types/shared-ts/src/device-linking/requestProof.d.ts +26 -0
  542. package/dist/types/shared-ts/src/device-linking/sourceContribution.d.ts +182 -0
  543. package/dist/types/shared-ts/src/device-linking/walletSessionCredentialDelivery.d.ts +84 -0
  544. package/dist/types/shared-ts/src/index.d.ts +10 -0
  545. package/dist/types/shared-ts/src/near/actions.d.ts +141 -0
  546. package/dist/types/shared-ts/src/near/delegate.d.ts +55 -0
  547. package/dist/types/shared-ts/src/near/index.d.ts +3 -0
  548. package/dist/types/shared-ts/src/passkey-custody/ceremonyCommitPayload.d.ts +211 -0
  549. package/dist/types/shared-ts/src/passkey-custody/credentialActivity.d.ts +49 -0
  550. package/dist/types/shared-ts/src/passkey-custody/credentialObservations.d.ts +74 -0
  551. package/dist/types/shared-ts/src/passkey-custody/custodyEnvelope.d.ts +191 -0
  552. package/dist/types/shared-ts/src/passkey-custody/custodySecretBinding.d.ts +140 -0
  553. package/dist/types/shared-ts/src/passkey-custody/envelopeIndex.d.ts +29 -0
  554. package/dist/types/shared-ts/src/passkey-custody/index.d.ts +9 -0
  555. package/dist/types/shared-ts/src/passkey-custody/kekContext.d.ts +34 -0
  556. package/dist/types/shared-ts/src/passkey-custody/passkeyCustody.typecheck.d.ts +2 -0
  557. package/dist/types/shared-ts/src/passkey-custody/primitives.d.ts +34 -0
  558. package/dist/types/shared-ts/src/signing-lanes/evmFamilySigningKeySlotId.d.ts +27 -0
  559. package/dist/types/shared-ts/src/signing-lanes/execution.d.ts +91 -0
  560. package/dist/types/shared-ts/src/signing-lanes/execution.typecheck.d.ts +2 -0
  561. package/dist/types/shared-ts/src/signing-lanes/ids.d.ts +18 -0
  562. package/dist/types/shared-ts/src/signing-lanes/index.d.ts +14 -0
  563. package/dist/types/shared-ts/src/signing-lanes/linkedEcdsaScope.d.ts +62 -0
  564. package/dist/types/shared-ts/src/signing-lanes/linkedEcdsaScope.typecheck.d.ts +2 -0
  565. package/dist/types/shared-ts/src/signing-lanes/ownerContinuity.d.ts +30 -0
  566. package/dist/types/shared-ts/src/signing-lanes/ownerContinuity.typecheck.d.ts +2 -0
  567. package/dist/types/shared-ts/src/signing-lanes/participantDigest.d.ts +48 -0
  568. package/dist/types/shared-ts/src/signing-lanes/participantDigest.typecheck.d.ts +2 -0
  569. package/dist/types/shared-ts/src/signing-lanes/participants.d.ts +89 -0
  570. package/dist/types/shared-ts/src/signing-lanes/recordParsers.d.ts +128 -0
  571. package/dist/types/shared-ts/src/signing-lanes/records.d.ts +160 -0
  572. package/dist/types/shared-ts/src/signing-lanes/records.typecheck.d.ts +2 -0
  573. package/dist/types/shared-ts/src/signing-lanes/rotation.d.ts +894 -0
  574. package/dist/types/shared-ts/src/signing-lanes/rotation.typecheck.d.ts +2 -0
  575. package/dist/types/shared-ts/src/signing-lanes/rotationDigests.d.ts +32 -0
  576. package/dist/types/shared-ts/src/signing-lanes/rotationLifecycle.d.ts +99 -0
  577. package/dist/types/shared-ts/src/signing-lanes/rotationParsers.d.ts +67 -0
  578. package/dist/types/shared-ts/src/signing-lanes/validation.d.ts +11 -0
  579. package/dist/types/shared-ts/src/tenant-root/index.d.ts +3 -0
  580. package/dist/types/shared-ts/src/tenant-root/tenantRootIdentity.d.ts +72 -0
  581. package/dist/types/shared-ts/src/tenant-root/tenantRootOperationRecord.d.ts +192 -0
  582. package/dist/types/shared-ts/src/threshold/ecdsaDerivationRoleLocalBootstrap.d.ts +77 -0
  583. package/dist/types/shared-ts/src/threshold/ed25519OperationFingerprint.d.ts +130 -0
  584. package/dist/types/shared-ts/src/threshold/index.d.ts +7 -0
  585. package/dist/types/shared-ts/src/threshold/participants.d.ts +38 -0
  586. package/dist/types/shared-ts/src/threshold/secp256k1.d.ts +39 -0
  587. package/dist/types/shared-ts/src/threshold/sessionPolicy.d.ts +5 -0
  588. package/dist/types/shared-ts/src/threshold/signingRootScope.d.ts +24 -0
  589. package/dist/types/shared-ts/src/utils/addAuthMethodRegistration.d.ts +63 -0
  590. package/dist/types/shared-ts/src/utils/addWalletAuthMethod.d.ts +295 -0
  591. package/dist/types/shared-ts/src/utils/addWalletAuthMethod.typecheck.d.ts +11 -0
  592. package/dist/types/shared-ts/src/utils/authenticatorOptions.d.ts +25 -0
  593. package/dist/types/shared-ts/src/utils/base58.d.ts +17 -0
  594. package/dist/types/shared-ts/src/utils/base64.d.ts +53 -0
  595. package/dist/types/shared-ts/src/utils/bigint.d.ts +3 -0
  596. package/dist/types/shared-ts/src/utils/canonicalPrimitives.d.ts +12 -0
  597. package/dist/types/shared-ts/src/utils/digests.d.ts +6 -0
  598. package/dist/types/shared-ts/src/utils/domainIds.d.ts +140 -0
  599. package/dist/types/shared-ts/src/utils/domainIds.typecheck.d.ts +2 -0
  600. package/dist/types/shared-ts/src/utils/ecdsaCapabilityActivation.d.ts +29 -0
  601. package/dist/types/shared-ts/src/utils/ecdsaKeyFactsInventory.d.ts +24 -0
  602. package/dist/types/shared-ts/src/utils/emailOtpDomain.d.ts +30 -0
  603. package/dist/types/shared-ts/src/utils/emailOtpRecoveryKey.d.ts +31 -0
  604. package/dist/types/shared-ts/src/utils/encoders.d.ts +3 -0
  605. package/dist/types/shared-ts/src/utils/errors.d.ts +44 -0
  606. package/dist/types/shared-ts/src/utils/evmRpcResults.d.ts +31 -0
  607. package/dist/types/shared-ts/src/utils/generated/routerAbEd25519YaoCore.d.ts +128 -0
  608. package/dist/types/shared-ts/src/utils/index.d.ts +34 -0
  609. package/dist/types/shared-ts/src/utils/jsonRpc.d.ts +30 -0
  610. package/dist/types/shared-ts/src/utils/keccak.d.ts +2 -0
  611. package/dist/types/shared-ts/src/utils/near.d.ts +81 -0
  612. package/dist/types/shared-ts/src/utils/nearRpcResults.d.ts +101 -0
  613. package/dist/types/shared-ts/src/utils/normalize.d.ts +57 -0
  614. package/dist/types/shared-ts/src/utils/paillier.d.ts +37 -0
  615. package/dist/types/shared-ts/src/utils/recoveryDomain.d.ts +12 -0
  616. package/dist/types/shared-ts/src/utils/registrationEstablishedSession.d.ts +85 -0
  617. package/dist/types/shared-ts/src/utils/registrationIntent.d.ts +621 -0
  618. package/dist/types/shared-ts/src/utils/registrationIntent.typecheck.d.ts +2 -0
  619. package/dist/types/shared-ts/src/utils/routerAbEcdsaDerivation.d.ts +715 -0
  620. package/dist/types/shared-ts/src/utils/routerAbEcdsaDerivation.typecheck.d.ts +2 -0
  621. package/dist/types/shared-ts/src/utils/routerAbEcdsaDerivationRefresh.typecheck.d.ts +2 -0
  622. package/dist/types/shared-ts/src/utils/routerAbEd25519Yao.d.ts +339 -0
  623. package/dist/types/shared-ts/src/utils/routerAbEd25519Yao.typecheck.d.ts +2 -0
  624. package/dist/types/shared-ts/src/utils/routerAbNormalSigningIdentity.d.ts +71 -0
  625. package/dist/types/shared-ts/src/utils/routerAbPublicKeyset.d.ts +51 -0
  626. package/dist/types/shared-ts/src/utils/routerAbTraceContext.d.ts +16 -0
  627. package/dist/types/shared-ts/src/utils/secureRandomId.d.ts +6 -0
  628. package/dist/types/shared-ts/src/utils/signerDomain.d.ts +75 -0
  629. package/dist/types/shared-ts/src/utils/signerDomain.typecheck.d.ts +2 -0
  630. package/dist/types/shared-ts/src/utils/signerSlot.d.ts +11 -0
  631. package/dist/types/shared-ts/src/utils/signingSessionSeal.d.ts +153 -0
  632. package/dist/types/shared-ts/src/utils/signingSessionSeal.typecheck.d.ts +2 -0
  633. package/dist/types/shared-ts/src/utils/theme.d.ts +2 -0
  634. package/dist/types/shared-ts/src/utils/thresholdEcdsaKeyHandle.d.ts +11 -0
  635. package/dist/types/shared-ts/src/utils/validation.d.ts +35 -0
  636. package/dist/types/shared-ts/src/utils/walletAddSignerActivation.d.ts +23 -0
  637. package/dist/types/shared-ts/src/utils/walletAuthAuthority.d.ts +150 -0
  638. package/dist/types/shared-ts/src/utils/walletAuthAuthority.typecheck.d.ts +2 -0
  639. package/dist/types/shared-ts/src/utils/walletCapabilityBindings.d.ts +106 -0
  640. package/dist/types/shared-ts/src/utils/walletCapabilityBindings.typecheck.d.ts +2 -0
  641. package/dist/types/shared-ts/src/utils/walletSessionFailure.d.ts +13 -0
  642. package/dist/types/shared-ts/src/utils/webauthnDeviceInfo.d.ts +48 -0
  643. package/dist/types/shared-ts/src/wallet-recovery/backupAcknowledgement.d.ts +56 -0
  644. package/dist/types/shared-ts/src/wallet-recovery/index.d.ts +10 -0
  645. package/dist/types/shared-ts/src/wallet-recovery/recoveryCodeAttempt.d.ts +59 -0
  646. package/dist/types/shared-ts/src/wallet-recovery/recoveryCodeIssuance.d.ts +37 -0
  647. package/dist/types/shared-ts/src/wallet-recovery/recoveryCodeLocator.d.ts +22 -0
  648. package/dist/types/shared-ts/src/wallet-recovery/recoveryCodeReservation.d.ts +79 -0
  649. package/dist/types/shared-ts/src/wallet-recovery/recoveryCodes.d.ts +11 -0
  650. package/dist/types/shared-ts/src/wallet-recovery/recoveryEnvelopes.d.ts +42 -0
  651. package/dist/types/shared-ts/src/wallet-recovery/recoveryKekContext.d.ts +37 -0
  652. package/dist/types/shared-ts/src/wallet-recovery/recoveryKeyId.d.ts +58 -0
  653. package/dist/types/shared-ts/src/wallet-recovery/walletRecovery.typecheck.d.ts +2 -0
  654. package/dist/types/shared-ts/src/wallet-recovery/walletRecoveryCommittedProjection.d.ts +110 -0
  655. package/dist/types/shared-ts/src/wallet-recovery/walletRecoveryEcdsaPossession.d.ts +29 -0
  656. package/dist/types/shared-ts/src/wallet-recovery/walletRecoveryEnvelopeSet.d.ts +115 -0
  657. package/dist/types/shared-ts/src/wallet-recovery/walletRecoveryRotation.d.ts +18 -0
  658. package/dist/types/shared-ts/src/wallet-recovery/walletRecoveryTarget.d.ts +12 -0
  659. package/dist/types/shared-ts/src/wallet-recovery/walletRecoveryTarget.typecheck.d.ts +2 -0
  660. package/dist/types/wallet-server/src/authorization/capabilityPolicy.d.ts +45 -0
  661. package/dist/types/wallet-server/src/authorization/capabilityPolicy.typecheck.d.ts +2 -0
  662. package/dist/types/wallet-server/src/authorization/domain.d.ts +454 -0
  663. package/dist/types/wallet-server/src/authorization/domain.typecheck.d.ts +2 -0
  664. package/dist/types/wallet-server/src/authorization/factorEvidence.d.ts +165 -0
  665. package/dist/types/wallet-server/src/authorization/factorEvidence.typecheck.d.ts +2 -0
  666. package/dist/types/wallet-server/src/authorization/service.d.ts +227 -0
  667. package/dist/types/wallet-server/src/authorization/vaultProxyUse.d.ts +75 -0
  668. package/dist/types/wallet-server/src/cloud-host.d.ts +94 -0
  669. package/dist/types/wallet-server/src/core/AuthService.d.ts +3 -0
  670. package/dist/types/wallet-server/src/core/EmailOtpRecords.d.ts +33 -0
  671. package/dist/types/wallet-server/src/core/EmailOtpStores.d.ts +336 -0
  672. package/dist/types/wallet-server/src/core/IdentityStore.d.ts +57 -0
  673. package/dist/types/wallet-server/src/core/NearPublicKeyStore.d.ts +58 -0
  674. package/dist/types/wallet-server/src/core/RegistrationCeremonyStore.d.ts +551 -0
  675. package/dist/types/wallet-server/src/core/SessionService.d.ts +70 -0
  676. package/dist/types/wallet-server/src/core/ThresholdService/config.d.ts +23 -0
  677. package/dist/types/wallet-server/src/core/ThresholdService/ecdsaClientRootProof.d.ts +12 -0
  678. package/dist/types/wallet-server/src/core/ThresholdService/evmCryptoWasm.d.ts +32 -0
  679. package/dist/types/wallet-server/src/core/ThresholdService/index.d.ts +4 -0
  680. package/dist/types/wallet-server/src/core/ThresholdService/kv.d.ts +52 -0
  681. package/dist/types/wallet-server/src/core/ThresholdService/routerAb/ecdsaDerivationPoolFillHandlers.d.ts +45 -0
  682. package/dist/types/wallet-server/src/core/ThresholdService/routerAb/ecdsaDerivationPoolFillLiveSession.d.ts +93 -0
  683. package/dist/types/wallet-server/src/core/ThresholdService/routerAb/ecdsaDerivationPresignBridge.d.ts +138 -0
  684. package/dist/types/wallet-server/src/core/ThresholdService/routerAb/internalServiceHttp.d.ts +30 -0
  685. package/dist/types/wallet-server/src/core/ThresholdService/routerAbEcdsaSigningWorkerWasm.d.ts +17 -0
  686. package/dist/types/wallet-server/src/core/ThresholdService/routerAbNormalSigningPolicy.d.ts +21 -0
  687. package/dist/types/wallet-server/src/core/ThresholdService/secureRandomId.d.ts +2 -0
  688. package/dist/types/wallet-server/src/core/ThresholdService/stores/CloudflareDurableObjectStore.d.ts +128 -0
  689. package/dist/types/wallet-server/src/core/ThresholdService/stores/EcdsaSigningStore.d.ts +76 -0
  690. package/dist/types/wallet-server/src/core/ThresholdService/stores/KeyStore.d.ts +39 -0
  691. package/dist/types/wallet-server/src/core/ThresholdService/stores/SessionStore.d.ts +102 -0
  692. package/dist/types/wallet-server/src/core/ThresholdService/stores/StoreConfig.d.ts +3 -0
  693. package/dist/types/wallet-server/src/core/ThresholdService/stores/ThresholdStoreConfig.typecheck.d.ts +2 -0
  694. package/dist/types/wallet-server/src/core/ThresholdService/stores/WalletSessionStore.d.ts +98 -0
  695. package/dist/types/wallet-server/src/core/ThresholdService/thresholdEd25519AuthorityScope.typecheck.d.ts +2 -0
  696. package/dist/types/wallet-server/src/core/ThresholdService/validation.d.ts +193 -0
  697. package/dist/types/wallet-server/src/core/WalletAuthMethodStore.d.ts +12 -0
  698. package/dist/types/wallet-server/src/core/WalletStore.d.ts +143 -0
  699. package/dist/types/wallet-server/src/core/WalletStore.typecheck.d.ts +2 -0
  700. package/dist/types/wallet-server/src/core/WebAuthnAuthenticatorStore.d.ts +62 -0
  701. package/dist/types/wallet-server/src/core/WebAuthnCredentialBindingStore.d.ts +116 -0
  702. package/dist/types/wallet-server/src/core/WebAuthnCredentialBindingStore.typecheck.d.ts +13 -0
  703. package/dist/types/wallet-server/src/core/WebAuthnLoginChallengeStore.d.ts +50 -0
  704. package/dist/types/wallet-server/src/core/WebAuthnSyncChallengeStore.d.ts +50 -0
  705. package/dist/types/wallet-server/src/core/authService/AuthService.d.ts +493 -0
  706. package/dist/types/wallet-server/src/core/authService/bytes.d.ts +4 -0
  707. package/dist/types/wallet-server/src/core/authService/configValues.d.ts +7 -0
  708. package/dist/types/wallet-server/src/core/authService/emailOtpChallengeOperations.d.ts +108 -0
  709. package/dist/types/wallet-server/src/core/authService/emailOtpChallengeProof.d.ts +177 -0
  710. package/dist/types/wallet-server/src/core/authService/emailOtpChallengeVerification.d.ts +46 -0
  711. package/dist/types/wallet-server/src/core/authService/emailOtpChallenges.d.ts +110 -0
  712. package/dist/types/wallet-server/src/core/authService/emailOtpConfig.d.ts +34 -0
  713. package/dist/types/wallet-server/src/core/authService/emailOtpDelivery.d.ts +65 -0
  714. package/dist/types/wallet-server/src/core/authService/emailOtpEnrollment.d.ts +79 -0
  715. package/dist/types/wallet-server/src/core/authService/emailOtpGrant.d.ts +42 -0
  716. package/dist/types/wallet-server/src/core/authService/emailOtpRegistrationEnrollment.d.ts +116 -0
  717. package/dist/types/wallet-server/src/core/authService/emailOtpSeal.d.ts +35 -0
  718. package/dist/types/wallet-server/src/core/authService/emailOtpUnlock.d.ts +70 -0
  719. package/dist/types/wallet-server/src/core/authService/githubOAuth.d.ts +35 -0
  720. package/dist/types/wallet-server/src/core/authService/googleEmailOtpErrors.d.ts +2 -0
  721. package/dist/types/wallet-server/src/core/authService/googleEmailOtpOperations.d.ts +126 -0
  722. package/dist/types/wallet-server/src/core/authService/googleEmailOtpRegistration.d.ts +172 -0
  723. package/dist/types/wallet-server/src/core/authService/identity.d.ts +25 -0
  724. package/dist/types/wallet-server/src/core/authService/identityOperations.d.ts +19 -0
  725. package/dist/types/wallet-server/src/core/authService/nearAccountOperations.d.ts +55 -0
  726. package/dist/types/wallet-server/src/core/authService/nearPrivateKeySigning.d.ts +16 -0
  727. package/dist/types/wallet-server/src/core/authService/nearPublicKeyMetadata.d.ts +43 -0
  728. package/dist/types/wallet-server/src/core/authService/nearTransactions.d.ts +49 -0
  729. package/dist/types/wallet-server/src/core/authService/oidcVerification.d.ts +65 -0
  730. package/dist/types/wallet-server/src/core/authService/portableCrypto.d.ts +3 -0
  731. package/dist/types/wallet-server/src/core/authService/rateLimits.d.ts +30 -0
  732. package/dist/types/wallet-server/src/core/authService/record.d.ts +2 -0
  733. package/dist/types/wallet-server/src/core/authService/registrationThresholdHelpers.d.ts +37 -0
  734. package/dist/types/wallet-server/src/core/authService/runtime.d.ts +20 -0
  735. package/dist/types/wallet-server/src/core/authService/signerWasmUrls.d.ts +3 -0
  736. package/dist/types/wallet-server/src/core/authService/storeRegistry.d.ts +58 -0
  737. package/dist/types/wallet-server/src/core/authService/thresholdEcdsaKeyInventory.d.ts +72 -0
  738. package/dist/types/wallet-server/src/core/authService/thresholdRuntimePolicy.d.ts +4 -0
  739. package/dist/types/wallet-server/src/core/authService/thresholdStoreSummary.d.ts +3 -0
  740. package/dist/types/wallet-server/src/core/authService/walletRegistrationPlanning.d.ts +19 -0
  741. package/dist/types/wallet-server/src/core/authService/wasm.d.ts +12 -0
  742. package/dist/types/wallet-server/src/core/authService/webauthn.d.ts +207 -0
  743. package/dist/types/wallet-server/src/core/authService/webauthnAuthority.d.ts +5 -0
  744. package/dist/types/wallet-server/src/core/authService/webauthnOidcHelpers.d.ts +52 -0
  745. package/dist/types/wallet-server/src/core/authService/webauthnWalletBinding.d.ts +48 -0
  746. package/dist/types/wallet-server/src/core/config.d.ts +13 -0
  747. package/dist/types/wallet-server/src/core/d1IdentityStore.d.ts +44 -0
  748. package/dist/types/wallet-server/src/core/d1WalletAuthMethodStore.d.ts +214 -0
  749. package/dist/types/wallet-server/src/core/d1WalletStore.d.ts +108 -0
  750. package/dist/types/wallet-server/src/core/defaultConfigsServer.d.ts +5 -0
  751. package/dist/types/wallet-server/src/core/deviceLinking/index.d.ts +5 -0
  752. package/dist/types/wallet-server/src/core/deviceLinking/linkedDeviceEd25519ExportRoot.d.ts +36 -0
  753. package/dist/types/wallet-server/src/core/deviceLinking/linkedDeviceEmailOtpGrant.d.ts +87 -0
  754. package/dist/types/wallet-server/src/core/deviceLinking/linkedDeviceManagement.d.ts +137 -0
  755. package/dist/types/wallet-server/src/core/deviceLinking/linkedDeviceSession.d.ts +462 -0
  756. package/dist/types/wallet-server/src/core/deviceLinking/requestProof.d.ts +55 -0
  757. package/dist/types/wallet-server/src/core/errors.d.ts +10 -0
  758. package/dist/types/wallet-server/src/core/hostedAccountIds.d.ts +31 -0
  759. package/dist/types/wallet-server/src/core/keyMaterialBrands.d.ts +28 -0
  760. package/dist/types/wallet-server/src/core/keyMaterialBrands.typecheck.d.ts +2 -0
  761. package/dist/types/wallet-server/src/core/logger.d.ts +21 -0
  762. package/dist/types/wallet-server/src/core/nearKeys.d.ts +3 -0
  763. package/dist/types/wallet-server/src/core/nearRelayerAccountProvisioning.d.ts +78 -0
  764. package/dist/types/wallet-server/src/core/nearSignerWasmRuntime.d.ts +3 -0
  765. package/dist/types/wallet-server/src/core/registrationContracts.d.ts +747 -0
  766. package/dist/types/wallet-server/src/core/registrationRequests.typecheck.d.ts +2 -0
  767. package/dist/types/wallet-server/src/core/routerAbSigning/RouterAbEcdsaPresignRuntime.d.ts +53 -0
  768. package/dist/types/wallet-server/src/core/routerAbSigning/RouterAbNormalSigningRuntime.d.ts +71 -0
  769. package/dist/types/wallet-server/src/core/routerAbSigning/createCloudflareDurableObjectRouterAbSigningRuntimes.d.ts +28 -0
  770. package/dist/types/wallet-server/src/core/routerAbSigning/createRouterAbSigningRuntimes.d.ts +16 -0
  771. package/dist/types/wallet-server/src/core/rpcClients/near/NearClient.d.ts +134 -0
  772. package/dist/types/wallet-server/src/core/sessionValidation.d.ts +9 -0
  773. package/dist/types/wallet-server/src/core/signingLanes/LaneAggregateRevocationApplicationService.d.ts +35 -0
  774. package/dist/types/wallet-server/src/core/signingLanes/LaneEffectJournalStore.d.ts +63 -0
  775. package/dist/types/wallet-server/src/core/signingLanes/LaneEnrollmentActivation.d.ts +13 -0
  776. package/dist/types/wallet-server/src/core/signingLanes/LaneEnrollmentRevocation.d.ts +24 -0
  777. package/dist/types/wallet-server/src/core/signingLanes/LaneLifecycleApplicationService.d.ts +141 -0
  778. package/dist/types/wallet-server/src/core/signingLanes/LaneLifecycleStore.d.ts +229 -0
  779. package/dist/types/wallet-server/src/core/signingLanes/SigningLaneStore.d.ts +15 -0
  780. package/dist/types/wallet-server/src/core/signingLanes/WalletExecutionLaneProjection.d.ts +59 -0
  781. package/dist/types/wallet-server/src/core/signingLanes/WalletKeyStore.d.ts +13 -0
  782. package/dist/types/wallet-server/src/core/signingLanes/ecdsaServerRetirement.d.ts +58 -0
  783. package/dist/types/wallet-server/src/core/signingLanes/ed25519ServerRetirement.d.ts +30 -0
  784. package/dist/types/wallet-server/src/core/signingLanes/index.d.ts +11 -0
  785. package/dist/types/wallet-server/src/core/signingLanes/signingWorkerLaneMaterialIdentity.d.ts +21 -0
  786. package/dist/types/wallet-server/src/core/signingMaterial/ordinaryInactiveSignerMaterialReservation.d.ts +155 -0
  787. package/dist/types/wallet-server/src/core/threeRouteRegistrationContracts.d.ts +442 -0
  788. package/dist/types/wallet-server/src/core/threeRouteRegistrationContracts.typecheck.d.ts +58 -0
  789. package/dist/types/wallet-server/src/core/thresholdEcdsaChainTarget.d.ts +15 -0
  790. package/dist/types/wallet-server/src/core/types.d.ts +757 -0
  791. package/dist/types/wallet-server/src/core/utils.d.ts +3 -0
  792. package/dist/types/wallet-server/src/delegateAction/index.d.ts +88 -0
  793. package/dist/types/wallet-server/src/hosted-wallet-gateway-worker.d.ts +10 -0
  794. package/dist/types/wallet-server/src/hosted-wallet-gateway.d.ts +126 -0
  795. package/dist/types/wallet-server/src/index.d.ts +34 -0
  796. package/dist/types/wallet-server/src/local-hosted-wallet-gateway-worker.d.ts +13 -0
  797. package/dist/types/wallet-server/src/router/auth/authRequestValidation.d.ts +97 -0
  798. package/dist/types/wallet-server/src/router/auth/commonRouterUtils.d.ts +142 -0
  799. package/dist/types/wallet-server/src/router/auth/routerApiCredentialAuth.d.ts +26 -0
  800. package/dist/types/wallet-server/src/router/auth/routerApiKeyAuth.d.ts +16 -0
  801. package/dist/types/wallet-server/src/router/auth/walletSessionFailure.d.ts +14 -0
  802. package/dist/types/wallet-server/src/router/auth/webAuthnCredentialCodecs.d.ts +20 -0
  803. package/dist/types/wallet-server/src/router/cloudflare/d1/auth/d1RouterApiAuthBoundary.d.ts +28 -0
  804. package/dist/types/wallet-server/src/router/cloudflare/d1/auth/d1RouterApiAuthConfig.d.ts +192 -0
  805. package/dist/types/wallet-server/src/router/cloudflare/d1/auth/d1RouterApiAuthService.d.ts +13 -0
  806. package/dist/types/wallet-server/src/router/cloudflare/d1/authorization/d1AuthorizationStore.d.ts +174 -0
  807. package/dist/types/wallet-server/src/router/cloudflare/d1/authorization/d1VaultProxyStore.d.ts +13 -0
  808. package/dist/types/wallet-server/src/router/cloudflare/d1/authorization/walletSessionAuthorityProjection.d.ts +24 -0
  809. package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceAuthorityInstallService.d.ts +241 -0
  810. package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceEd25519ExportRootStore.d.ts +23 -0
  811. package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceEmailOtpGrantStore.d.ts +32 -0
  812. package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceEmailOtpTargetFactor.d.ts +118 -0
  813. package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceManagementService.d.ts +22 -0
  814. package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceOwnerAuthorizationProvider.d.ts +80 -0
  815. package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceRequestProofNonceStore.d.ts +29 -0
  816. package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceRouteService.d.ts +17 -0
  817. package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceSessionRecords.d.ts +37 -0
  818. package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceSessionService.d.ts +12 -0
  819. package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceSessionStore.d.ts +149 -0
  820. package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceSourceContributionPreparationPlanner.d.ts +38 -0
  821. package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceTargetAuthenticatorStore.d.ts +19 -0
  822. package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceTargetCredentialProvider.d.ts +220 -0
  823. package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceTargetPlanner.d.ts +88 -0
  824. package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceVerifiedLinkBuilder.d.ts +54 -0
  825. package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceVerifiedLinkSourceReader.d.ts +23 -0
  826. package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/index.d.ts +15 -0
  827. package/dist/types/wallet-server/src/router/cloudflare/d1/ed25519Yao/d1Ed25519YaoCapabilityPersistence.d.ts +33 -0
  828. package/dist/types/wallet-server/src/router/cloudflare/d1/ed25519Yao/d1Ed25519YaoProductRegistrationPartitionedStateStore.d.ts +6 -0
  829. package/dist/types/wallet-server/src/router/cloudflare/d1/ed25519Yao/d1Ed25519YaoWalletSigner.d.ts +27 -0
  830. package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpChallengeIssuer.d.ts +80 -0
  831. package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpChallengeService.d.ts +48 -0
  832. package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpChallengeStore.d.ts +64 -0
  833. package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpChallengeVerifier.d.ts +126 -0
  834. package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpDeliveryRuntime.d.ts +22 -0
  835. package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpEnrollmentStore.d.ts +68 -0
  836. package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpGrantStore.d.ts +15 -0
  837. package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpRateLimitStore.d.ts +37 -0
  838. package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpRecords.d.ts +186 -0
  839. package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpRecoveryService.d.ts +45 -0
  840. package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpRegistrationEnrollmentFinalizer.d.ts +124 -0
  841. package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpServerSealRuntime.d.ts +24 -0
  842. package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1GoogleEmailOtpRegistrationAttemptStore.d.ts +51 -0
  843. package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1GoogleEmailOtpRegistrationRecords.d.ts +69 -0
  844. package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1GoogleEmailOtpSessionResolver.d.ts +57 -0
  845. package/dist/types/wallet-server/src/router/cloudflare/d1/identity/d1IdentityRecords.d.ts +38 -0
  846. package/dist/types/wallet-server/src/router/cloudflare/d1/identity/d1IdentityService.d.ts +31 -0
  847. package/dist/types/wallet-server/src/router/cloudflare/d1/near/d1NearPublicKeyStore.d.ts +30 -0
  848. package/dist/types/wallet-server/src/router/cloudflare/d1/oidc/d1OidcBoundary.d.ts +60 -0
  849. package/dist/types/wallet-server/src/router/cloudflare/d1/oidc/d1OidcVerificationService.d.ts +39 -0
  850. package/dist/types/wallet-server/src/router/cloudflare/d1/passkeyCustody/d1PasskeyCustodyEnvelopeStore.d.ts +335 -0
  851. package/dist/types/wallet-server/src/router/cloudflare/d1/passkeyCustody/d1PasskeyCustodyRouteService.d.ts +448 -0
  852. package/dist/types/wallet-server/src/router/cloudflare/d1/passkeyCustody/d1WalletCustodyCommitStore.d.ts +256 -0
  853. package/dist/types/wallet-server/src/router/cloudflare/d1/passkeyCustody/d1WalletRecoveryGoogleEmailOtpAttemptStore.d.ts +32 -0
  854. package/dist/types/wallet-server/src/router/cloudflare/d1/passkeyCustody/d1WalletRecoveryGoogleEmailOtpRecords.d.ts +116 -0
  855. package/dist/types/wallet-server/src/router/cloudflare/d1/passkeyCustody/d1WalletRecoveryGoogleEmailOtpService.d.ts +180 -0
  856. package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1EvmFamilyEcdsaRegistrationBranch.d.ts +24 -0
  857. package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1RegistrationCeremonyRecordStore.d.ts +86 -0
  858. package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1RegistrationCeremonyRecords.d.ts +121 -0
  859. package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1RegistrationCeremonyStore.d.ts +84 -0
  860. package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1RegistrationIntentService.d.ts +31 -0
  861. package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1WalletRegistrationCommitStore.d.ts +49 -0
  862. package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1WalletRegistrationService.d.ts +369 -0
  863. package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1WalletRegistrationSetup.d.ts +106 -0
  864. package/dist/types/wallet-server/src/router/cloudflare/d1/registration/walletRegistrationEstablishedSessionIssuer.d.ts +104 -0
  865. package/dist/types/wallet-server/src/router/cloudflare/d1/registration/walletRegistrationSessionCommitReceipt.d.ts +70 -0
  866. package/dist/types/wallet-server/src/router/cloudflare/d1/signingAdmission/d1RouterAbNormalSigningAdmissionStore.d.ts +26 -0
  867. package/dist/types/wallet-server/src/router/cloudflare/d1/signingLanes/d1EcdsaLanePrivateBindingResolver.d.ts +4 -0
  868. package/dist/types/wallet-server/src/router/cloudflare/d1/signingLanes/d1LaneAggregateRevocationApplicationService.d.ts +4 -0
  869. package/dist/types/wallet-server/src/router/cloudflare/d1/signingLanes/d1LaneEffectJournalStore.d.ts +25 -0
  870. package/dist/types/wallet-server/src/router/cloudflare/d1/signingLanes/d1LaneEnrollmentGateway.d.ts +20 -0
  871. package/dist/types/wallet-server/src/router/cloudflare/d1/signingLanes/d1LaneLifecycleApplicationService.d.ts +13 -0
  872. package/dist/types/wallet-server/src/router/cloudflare/d1/signingLanes/d1LaneLifecycleStore.d.ts +51 -0
  873. package/dist/types/wallet-server/src/router/cloudflare/d1/signingLanes/d1LaneLockStore.d.ts +28 -0
  874. package/dist/types/wallet-server/src/router/cloudflare/d1/signingLanes/d1LaneProtocolCommitter.d.ts +5 -0
  875. package/dist/types/wallet-server/src/router/cloudflare/d1/signingLanes/d1LaneRecords.d.ts +107 -0
  876. package/dist/types/wallet-server/src/router/cloudflare/d1/signingLanes/index.d.ts +10 -0
  877. package/dist/types/wallet-server/src/router/cloudflare/d1/versionedJson/d1VersionedJsonRecordStore.d.ts +118 -0
  878. package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletAddSignerService.d.ts +114 -0
  879. package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletAddSignerService.typecheck.d.ts +2 -0
  880. package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletAuthMethodBoundary.d.ts +90 -0
  881. package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletAuthMethodService.d.ts +359 -0
  882. package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletAuthorityStore.d.ts +143 -0
  883. package/dist/types/wallet-server/src/router/cloudflare/d1/webauthn/d1WebAuthnAuthService.d.ts +42 -0
  884. package/dist/types/wallet-server/src/router/cloudflare/d1/webauthn/d1WebAuthnRecords.d.ts +135 -0
  885. package/dist/types/wallet-server/src/router/cloudflare/d1/webauthn/d1WebAuthnStore.d.ts +89 -0
  886. package/dist/types/wallet-server/src/router/cloudflare/durableObjects/thresholdStore.d.ts +19 -0
  887. package/dist/types/wallet-server/src/router/cloudflare/durableObjects/versionedJsonRecordStore.d.ts +32 -0
  888. package/dist/types/wallet-server/src/router/cloudflare/runtime/cloudflare.types.d.ts +30 -0
  889. package/dist/types/wallet-server/src/router/cloudflare/runtime/cloudflareSignerWasm.d.ts +2 -0
  890. package/dist/types/wallet-server/src/router/cloudflare/runtime/createCloudflareRouter.d.ts +5 -0
  891. package/dist/types/wallet-server/src/router/cloudflare/runtime/createSelfHostedCloudflareSigningWorker.d.ts +23 -0
  892. package/dist/types/wallet-server/src/router/cloudflare/runtime/ed25519SessionAdapter.d.ts +16 -0
  893. package/dist/types/wallet-server/src/router/cloudflare/runtime/environment.d.ts +5 -0
  894. package/dist/types/wallet-server/src/router/cloudflare/runtime/routerAbPrewarm.d.ts +9 -0
  895. package/dist/types/wallet-server/src/router/cloudflare/runtime/routerAbServiceBindings.d.ts +11 -0
  896. package/dist/types/wallet-server/src/router/cloudflare/runtime/sessionAdapterRuntime.d.ts +28 -0
  897. package/dist/types/wallet-server/src/router/cloudflare/runtime/staticWalletConsoleBinding.d.ts +27 -0
  898. package/dist/types/wallet-server/src/router/cloudflare/runtime/tenantRootCreationGrant.d.ts +24 -0
  899. package/dist/types/wallet-server/src/router/cloudflare/runtime/walletConsoleOps.d.ts +143 -0
  900. package/dist/types/wallet-server/src/router/cloudflare/runtime/walletConsoleOpsClient.d.ts +20 -0
  901. package/dist/types/wallet-server/src/router/cloudflare/runtime/walletConsoleTenantRootLineage.d.ts +7 -0
  902. package/dist/types/wallet-server/src/router/cloudflare/runtime/walletControlOps.d.ts +21 -0
  903. package/dist/types/wallet-server/src/router/cloudflare/runtime/walletGateway.d.ts +30 -0
  904. package/dist/types/wallet-server/src/router/cloudflare/runtime/walletRuntimeOps.d.ts +64 -0
  905. package/dist/types/wallet-server/src/router/cloudflare/runtime/walletRuntimeOpsHandler.d.ts +3 -0
  906. package/dist/types/wallet-server/src/router/cloudflare/signingLanes/cloudflareLaneCurveExecution.d.ts +217 -0
  907. package/dist/types/wallet-server/src/router/cloudflare/signingLanes/cloudflareLaneProtocolCommitter.d.ts +73 -0
  908. package/dist/types/wallet-server/src/router/cloudflare/signingLanes/cloudflareOrdinaryInactiveSignerMaterialReservation.d.ts +100 -0
  909. package/dist/types/wallet-server/src/router/cloudflare/signingLanes/index.d.ts +4 -0
  910. package/dist/types/wallet-server/src/router/cloudflare/signingLanes/linkedDeviceEd25519CeremonyBinding.d.ts +6 -0
  911. package/dist/types/wallet-server/src/router/cloudflare-adaptor.d.ts +75 -0
  912. package/dist/types/wallet-server/src/router/domains/ecdsa/routerAbEcdsaStrictRegistration.d.ts +199 -0
  913. package/dist/types/wallet-server/src/router/domains/ecdsa/thresholdEcdsaRequestValidation.d.ts +32 -0
  914. package/dist/types/wallet-server/src/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistration.d.ts +172 -0
  915. package/dist/types/wallet-server/src/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistration.typecheck.d.ts +2 -0
  916. package/dist/types/wallet-server/src/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistrationPartitionedStateStore.d.ts +156 -0
  917. package/dist/types/wallet-server/src/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistrationPartitioning.d.ts +59 -0
  918. package/dist/types/wallet-server/src/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistrationPersistence.d.ts +47 -0
  919. package/dist/types/wallet-server/src/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistrationRequestScopedRunner.d.ts +29 -0
  920. package/dist/types/wallet-server/src/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistrationRequestScopedRuntime.d.ts +20 -0
  921. package/dist/types/wallet-server/src/router/domains/ed25519Yao/export/routerAbEd25519YaoExport.d.ts +271 -0
  922. package/dist/types/wallet-server/src/router/domains/ed25519Yao/export/routerAbEd25519YaoExportRequestScopedCloudflare.d.ts +12 -0
  923. package/dist/types/wallet-server/src/router/domains/ed25519Yao/recovery/routerAbEd25519YaoRecovery.d.ts +509 -0
  924. package/dist/types/wallet-server/src/router/domains/ed25519Yao/recovery/routerAbEd25519YaoRecoveryActivation.typecheck.d.ts +2 -0
  925. package/dist/types/wallet-server/src/router/domains/ed25519Yao/recovery/routerAbEd25519YaoRecoveryRequestScopedCloudflare.d.ts +14 -0
  926. package/dist/types/wallet-server/src/router/domains/ed25519Yao/recovery/routerAbEd25519YaoRecoveryWalletSessionAuthorization.d.ts +20 -0
  927. package/dist/types/wallet-server/src/router/domains/ed25519Yao/registration/routerAbEd25519YaoHttpRegistrationBackend.d.ts +56 -0
  928. package/dist/types/wallet-server/src/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistration.d.ts +200 -0
  929. package/dist/types/wallet-server/src/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistrationExecutionRecord.d.ts +70 -0
  930. package/dist/types/wallet-server/src/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistrationIntentAuthorization.d.ts +73 -0
  931. package/dist/types/wallet-server/src/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistrationRequestScopedCloudflare.d.ts +9 -0
  932. package/dist/types/wallet-server/src/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistrationSideEffectBoundary.d.ts +131 -0
  933. package/dist/types/wallet-server/src/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistrationSideEffectBoundary.typecheck.d.ts +2 -0
  934. package/dist/types/wallet-server/src/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistrationTwoPhaseRunner.d.ts +62 -0
  935. package/dist/types/wallet-server/src/router/domains/ed25519Yao/routerAbEd25519YaoGatewayEnvelope.d.ts +17 -0
  936. package/dist/types/wallet-server/src/router/domains/ed25519Yao/session/routerAbEd25519YaoWalletSession.d.ts +178 -0
  937. package/dist/types/wallet-server/src/router/domains/ed25519Yao/session/routerAbEd25519YaoWalletSession.typecheck.d.ts +2 -0
  938. package/dist/types/wallet-server/src/router/domains/ed25519Yao/session/thresholdEd25519RequestValidation.d.ts +19 -0
  939. package/dist/types/wallet-server/src/router/domains/emailOtp/emailOtpExportPolicy.d.ts +32 -0
  940. package/dist/types/wallet-server/src/router/domains/emailOtp/emailOtpRequestValidation.d.ts +13 -0
  941. package/dist/types/wallet-server/src/router/domains/emailOtp/emailOtpRouteHandlers.d.ts +35 -0
  942. package/dist/types/wallet-server/src/router/domains/emailOtp/emailOtpSessionRouteHelpers.d.ts +134 -0
  943. package/dist/types/wallet-server/src/router/domains/passkeyCustody/envelopeRevocationAdmission.d.ts +31 -0
  944. package/dist/types/wallet-server/src/router/domains/passkeyCustody/passkeyCustodyEnvelopeRetrieval.d.ts +85 -0
  945. package/dist/types/wallet-server/src/router/domains/passkeyCustody/passkeyCustodyEnvelopeRetrievalRoute.d.ts +42 -0
  946. package/dist/types/wallet-server/src/router/domains/passkeyCustody/registrationCustodyOutcome.d.ts +38 -0
  947. package/dist/types/wallet-server/src/router/domains/passkeyCustody/verifiedCustodyFactor.d.ts +35 -0
  948. package/dist/types/wallet-server/src/router/domains/passkeyCustody/walletCustodyRegistrationAdmission.d.ts +56 -0
  949. package/dist/types/wallet-server/src/router/domains/passkeyCustody/walletCustodyRegistrationCommit.d.ts +65 -0
  950. package/dist/types/wallet-server/src/router/domains/passkeyCustody/walletRecoveryAttempt.d.ts +59 -0
  951. package/dist/types/wallet-server/src/router/domains/passkeyCustody/walletRecoveryFinalization.d.ts +81 -0
  952. package/dist/types/wallet-server/src/router/domains/passkeyCustody/walletRecoveryKeyManifest.d.ts +184 -0
  953. package/dist/types/wallet-server/src/router/domains/passkeyCustody/walletRecoveryRotation.d.ts +31 -0
  954. package/dist/types/wallet-server/src/router/domains/signingOperations/ed25519AuthorizedOperationReceipt.d.ts +32 -0
  955. package/dist/types/wallet-server/src/router/domains/signingOperations/routerAbNormalSigningAdmissionCore.d.ts +48 -0
  956. package/dist/types/wallet-server/src/router/domains/signingOperations/routerAbPrivateSigningWorker.d.ts +909 -0
  957. package/dist/types/wallet-server/src/router/domains/signingOperations/walletExecutionAdmission.d.ts +104 -0
  958. package/dist/types/wallet-server/src/router/domains/syncAccount/syncAccountRequestValidation.d.ts +30 -0
  959. package/dist/types/wallet-server/src/router/domains/tenantRoot/tenantRootCustodyLineage.d.ts +14 -0
  960. package/dist/types/wallet-server/src/router/domains/tenantRoot/tenantRootEcdsaWalletSessionComposition.d.ts +35 -0
  961. package/dist/types/wallet-server/src/router/domains/tenantRoot/tenantRootEd25519WalletSessionComposition.d.ts +35 -0
  962. package/dist/types/wallet-server/src/router/domains/tenantRoot/tenantRootIdentityResolution.d.ts +56 -0
  963. package/dist/types/wallet-server/src/router/domains/walletRegistration/walletRegistrationInputs.d.ts +78 -0
  964. package/dist/types/wallet-server/src/router/domains/walletRegistration/walletRegistrationRoutes.d.ts +91 -0
  965. package/dist/types/wallet-server/src/router/domains/walletRegistration/walletRegistrationSetupPayload.d.ts +105 -0
  966. package/dist/types/wallet-server/src/router/domains/walletUnlock/walletUnlockRequestedCapabilitiesValidation.d.ts +39 -0
  967. package/dist/types/wallet-server/src/router/domains/walletUnlock/walletUnlockRouteHandlers.d.ts +172 -0
  968. package/dist/types/wallet-server/src/router/express-adaptor.d.ts +22 -0
  969. package/dist/types/wallet-server/src/router/framework/apiCredentialPorts.d.ts +82 -0
  970. package/dist/types/wallet-server/src/router/framework/applyRouteMetering.d.ts +23 -0
  971. package/dist/types/wallet-server/src/router/framework/authServicePort.d.ts +1392 -0
  972. package/dist/types/wallet-server/src/router/framework/enforceRoutePolicy.d.ts +48 -0
  973. package/dist/types/wallet-server/src/router/framework/http.d.ts +12 -0
  974. package/dist/types/wallet-server/src/router/framework/logger.d.ts +5 -0
  975. package/dist/types/wallet-server/src/router/framework/modules.d.ts +17 -0
  976. package/dist/types/wallet-server/src/router/framework/ror/index.d.ts +7 -0
  977. package/dist/types/wallet-server/src/router/framework/ror/normalize.d.ts +14 -0
  978. package/dist/types/wallet-server/src/router/framework/ror/options.d.ts +9 -0
  979. package/dist/types/wallet-server/src/router/framework/ror/provider.d.ts +17 -0
  980. package/dist/types/wallet-server/src/router/framework/ror/staticProvider.d.ts +11 -0
  981. package/dist/types/wallet-server/src/router/framework/routeAuthPolicy.d.ts +34 -0
  982. package/dist/types/wallet-server/src/router/framework/routeDefinitions.d.ts +27 -0
  983. package/dist/types/wallet-server/src/router/framework/routeDefinitions.typecheck.d.ts +2 -0
  984. package/dist/types/wallet-server/src/router/framework/routeExecutionContext.d.ts +29 -0
  985. package/dist/types/wallet-server/src/router/framework/routeExtensions.d.ts +27 -0
  986. package/dist/types/wallet-server/src/router/framework/routeMeteringPolicy.d.ts +17 -0
  987. package/dist/types/wallet-server/src/router/framework/routeRequestValidation.d.ts +5 -0
  988. package/dist/types/wallet-server/src/router/framework/routeResponses.d.ts +17 -0
  989. package/dist/types/wallet-server/src/router/framework/routerApi.d.ts +221 -0
  990. package/dist/types/wallet-server/src/router/framework/routerApiRouteSurface.d.ts +14 -0
  991. package/dist/types/wallet-server/src/router/framework/routerApiWebhooks.d.ts +12 -0
  992. package/dist/types/wallet-server/src/router/framework/runtimeSnapshotConsumer.d.ts +28 -0
  993. package/dist/types/wallet-server/src/router/framework/versionedJsonRecordStore.d.ts +20 -0
  994. package/dist/types/wallet-server/src/router/ror-adaptor.d.ts +3 -0
  995. package/dist/types/wallet-server/src/router/transport/fetch/createFetchRouter.d.ts +8 -0
  996. package/dist/types/wallet-server/src/router/transport/fetch/fetchRouter.types.d.ts +23 -0
  997. package/dist/types/wallet-server/src/router/transport/fetch/routes/auth.d.ts +3 -0
  998. package/dist/types/wallet-server/src/router/transport/fetch/routes/deviceLinking.d.ts +202 -0
  999. package/dist/types/wallet-server/src/router/transport/fetch/routes/deviceLinkingOwnerAuthorization.d.ts +92 -0
  1000. package/dist/types/wallet-server/src/router/transport/fetch/routes/deviceManagement.d.ts +29 -0
  1001. package/dist/types/wallet-server/src/router/transport/fetch/routes/health.d.ts +4 -0
  1002. package/dist/types/wallet-server/src/router/transport/fetch/routes/nearPublicKeys.d.ts +3 -0
  1003. package/dist/types/wallet-server/src/router/transport/fetch/routes/normalSigningRouterProxy.d.ts +33 -0
  1004. package/dist/types/wallet-server/src/router/transport/fetch/routes/passkeyCustody.d.ts +66 -0
  1005. package/dist/types/wallet-server/src/router/transport/fetch/routes/sessions.d.ts +31 -0
  1006. package/dist/types/wallet-server/src/router/transport/fetch/routes/syncAccount.d.ts +3 -0
  1007. package/dist/types/wallet-server/src/router/transport/fetch/routes/syncAccountBootstrap.d.ts +128 -0
  1008. package/dist/types/wallet-server/src/router/transport/fetch/routes/thresholdEcdsa.d.ts +87 -0
  1009. package/dist/types/wallet-server/src/router/transport/fetch/routes/thresholdEd25519.d.ts +47 -0
  1010. package/dist/types/wallet-server/src/router/transport/fetch/routes/walletExecutionLanePreflight.d.ts +4 -0
  1011. package/dist/types/wallet-server/src/router/transport/fetch/routes/walletRegistration.d.ts +3 -0
  1012. package/dist/types/wallet-server/src/router/transport/fetch/routes/webauthnAuthenticators.d.ts +3 -0
  1013. package/dist/types/wallet-server/src/router/transport/fetch/routes/wellKnown.d.ts +3 -0
  1014. package/dist/types/wallet-server/src/storage/d1Sql.d.ts +14 -0
  1015. package/dist/types/wallet-server/src/storage/tenantRoute.d.ts +136 -0
  1016. package/dist/types/wallet-server/src/storage/tenantRoute.typecheck.d.ts +2 -0
  1017. package/dist/types/wallet-server/src/tenant-root.d.ts +5 -0
  1018. package/dist/types/wallet-server/src/threshold/session/signingSessionSeal/crypto/cipher.d.ts +45 -0
  1019. package/dist/types/wallet-server/src/threshold/session/signingSessionSeal/crypto/shamir3PassWasm.d.ts +16 -0
  1020. package/dist/types/wallet-server/src/threshold/session/signingSessionSeal/guards/backends.d.ts +23 -0
  1021. package/dist/types/wallet-server/src/threshold/session/signingSessionSeal/guards/index.d.ts +46 -0
  1022. package/dist/types/wallet-server/src/threshold/session/signingSessionSeal/idempotency.d.ts +3 -0
  1023. package/dist/types/wallet-server/src/threshold/session/signingSessionSeal/idempotencyBackends.d.ts +24 -0
  1024. package/dist/types/wallet-server/src/threshold/session/signingSessionSeal/idempotencyRecords.d.ts +22 -0
  1025. package/dist/types/wallet-server/src/threshold/session/signingSessionSeal/index.d.ts +23 -0
  1026. package/dist/types/wallet-server/src/threshold/session/signingSessionSeal/observability/audit.d.ts +9 -0
  1027. package/dist/types/wallet-server/src/threshold/session/signingSessionSeal/options.d.ts +9 -0
  1028. package/dist/types/wallet-server/src/threshold/session/signingSessionSeal/routesOptions.d.ts +20 -0
  1029. package/dist/types/wallet-server/src/threshold/session/signingSessionSeal/service.d.ts +3 -0
  1030. package/dist/types/wallet-server/src/threshold/session/signingSessionSeal/signingSessionSeal.typecheck.d.ts +2 -0
  1031. package/dist/types/wallet-server/src/threshold/session/signingSessionSeal/signingSessionSeal.types.d.ts +148 -0
  1032. package/dist/types/wallet-server/src/threshold/session/signingSessionSeal/transport/express.d.ts +12 -0
  1033. package/dist/types/wallet-server/src/threshold/session/signingSessionSeal/transport/fetch.d.ts +13 -0
  1034. package/dist/types/wallet-server/src/threshold/session/signingSessionSeal/transport/shared.d.ts +24 -0
  1035. package/dist/types/wallet-server/src/threshold/statusCodes.d.ts +10 -0
  1036. package/dist/types/wallet-server/src/wasm/signer.d.ts +8 -0
  1037. package/migrations/d1-signer/0001_signer_d1_initial.sql +2486 -0
  1038. package/migrations/d1-signer/0002_signer_post_103_canonical_upgrade.sql +1576 -0
  1039. package/migrations/d1-signer/0003_r107_wallet_authorization.sql +299 -0
  1040. package/migrations/d1-signer/0004_remove_legacy_email_recovery.sql +14 -0
  1041. package/migrations/d1-signer/0005_r103p8_linked_owner_auth_bindings.sql +92 -0
  1042. package/migrations/d1-signer/0006_r103p8_linked_device_custody_transfers.sql +77 -0
  1043. package/migrations/d1-signer/0007_r103p8_wallet_session_auth_method_provenance.sql +18 -0
  1044. package/migrations/d1-signer/0008_r103p8_linked_device_session_cas_guard.sql +35 -0
  1045. package/migrations/d1-signer/0009_linked_device_email_otp.sql +405 -0
  1046. package/migrations/d1-signer/0010_linked_device_session_target_factor.sql +78 -0
  1047. package/migrations/d1-signer/0011_linked_device_ed25519_export_root.sql +9 -0
  1048. package/migrations/d1-signer/0012_versioned_json_cas_guard.sql +3 -0
  1049. package/migrations/d1-signer/0013_linked_device_export_authorization.sql +133 -0
  1050. package/migrations/d1-signer/0014_wallet_recovery_code_locators.sql +19 -0
  1051. package/migrations/d1-signer/0015_r103e_authority_baseline.sql +259 -0
  1052. package/migrations/d1-signer/0016_r103e_wallet_session_authorizations_v2.sql +133 -0
  1053. package/migrations/d1-signer/0017_r103e_link_session_state.sql +83 -0
  1054. package/migrations/d1-signer/0018_r103e_linked_device_authority_installations.sql +34 -0
  1055. package/migrations/d1-signer/0019_r103e_email_otp_device_methods.sql +3 -0
  1056. package/migrations/d1-signer/0020_r103e_wallet_session_operation_credentials.sql +12 -0
  1057. package/migrations/d1-signer/0021_linked_device_source_contribution_transcripts.sql +64 -0
  1058. package/migrations/d1-signer/0022_r109c_multi_auth_email_cardinality.sql +118 -0
  1059. package/migrations/d1-signer/0023_r109d_first_email_linked_device.sql +111 -0
  1060. package/migrations/d1-signer/0024_r103f_v2_authorized_operation_claim.sql +99 -0
  1061. package/migrations/d1-signer/0025_r109d_email_enrollment_wallet_cardinality.sql +57 -0
  1062. package/migrations/d1-signer/0026_r115_wallet_recovery_authority_provenance.sql +253 -0
  1063. package/migrations/d1-signer/0027_r115_email_otp_recovery_bootstrap.sql +90 -0
  1064. package/migrations/d1-signer/0028_r103f_phase1_additive_schema_bridge.sql +1119 -0
  1065. package/migrations/d1-signer/0029_r103f_phase0_registration_replay_tokens.sql +135 -0
  1066. package/migrations/d1-signer/0030_r103f_wallet_session_client_capability.sql +17 -0
  1067. package/migrations/d1-signer/0031_r103f_delete_registration_replay_tokens.sql +4 -0
  1068. package/migrations/d1-signer/0032_r103f_exact_authorized_operation_enforcement.sql +149 -0
  1069. package/migrations/d1-signer/0033_r103f_linked_delivery_recipient.sql +6 -0
  1070. package/migrations/d1-signer/0034_r103f_exact_wallet_session_cutover.sql +743 -0
  1071. package/migrations/d1-signer/0035_r103f_linked_delivery_acknowledgement_cleanup_window.sql +413 -0
  1072. package/package.json +132 -0
  1073. package/scripts/d1-local-migrate-signer.mjs +148 -0
  1074. package/src/README.md +75 -0
  1075. package/wrangler.local-hosted-wallet-gateway.toml +37 -0
@@ -0,0 +1,1576 @@
1
+ -- Forward bridge from the last deployed signer schema to the post-103 canonical schema.
2
+ -- This migration is safe after the canonical 0001 baseline and preserves deployed rows.
3
+
4
+ DROP TRIGGER IF EXISTS "authorized_operation_audit_claim";
5
+ DROP TRIGGER IF EXISTS "authorized_operation_audit_complete";
6
+ DROP TRIGGER IF EXISTS "authorized_operation_claim_atomic";
7
+ DROP TRIGGER IF EXISTS "authorized_operation_complete_atomic";
8
+ DROP TRIGGER IF EXISTS "authorized_operation_grant_shape_guard";
9
+ DROP TRIGGER IF EXISTS "authorized_operation_linked_grant_claim_atomic";
10
+ DROP TRIGGER IF EXISTS "authorized_operation_owner_grant_claim_atomic";
11
+ DROP TRIGGER IF EXISTS "authorized_operation_step_up_claim_atomic";
12
+
13
+ DROP TABLE IF EXISTS "authorized_operation_audit_events_post_103_upgrade";
14
+ CREATE TABLE "authorized_operation_audit_events_post_103_upgrade" (
15
+ namespace TEXT NOT NULL,
16
+ tenant_id TEXT NOT NULL,
17
+ audit_event_id TEXT NOT NULL,
18
+ authorized_operation_id TEXT NOT NULL,
19
+ operation_fingerprint_digest TEXT NOT NULL,
20
+ authorization_source_kind TEXT NOT NULL,
21
+ authorization_id TEXT,
22
+ evidence_set_digest TEXT,
23
+ quota_id TEXT,
24
+ material_activation_id TEXT,
25
+ result_kind TEXT NOT NULL,
26
+ claimed_at_ms INTEGER NOT NULL,
27
+ completed_at_ms INTEGER, authorization_grant_kind TEXT, material_activation_capability TEXT, material_activation_owner TEXT, material_activation_key_binding TEXT, material_activation_lifecycle_binding TEXT, material_activation_signing_worker TEXT, linked_wallet_id TEXT, linked_enrollment_id TEXT, linked_device_id TEXT, linked_wallet_key_id TEXT, linked_lane_id TEXT, linked_lane_share_epoch TEXT, linked_revocation_epoch INTEGER, linked_scope_org_id TEXT, linked_scope_project_id TEXT, linked_scope_env_id TEXT,
28
+ PRIMARY KEY (namespace, tenant_id, audit_event_id),
29
+ UNIQUE (namespace, tenant_id, authorized_operation_id),
30
+ CHECK (authorization_source_kind IN ('authorization_grant', 'verified_step_up')),
31
+ CHECK (
32
+ (authorization_source_kind = 'authorization_grant'
33
+ AND authorization_id IS NOT NULL
34
+ AND evidence_set_digest IS NULL)
35
+ OR (authorization_source_kind = 'verified_step_up'
36
+ AND authorization_id IS NULL
37
+ AND evidence_set_digest IS NOT NULL)
38
+ ),
39
+ CHECK (result_kind IN ('pending', 'succeeded', 'failed_before_side_effect', 'failed_after_side_effect')),
40
+ CHECK (
41
+ (result_kind = 'pending' AND completed_at_ms IS NULL)
42
+ OR (result_kind != 'pending' AND completed_at_ms IS NOT NULL)
43
+ )
44
+ );
45
+ INSERT INTO "authorized_operation_audit_events_post_103_upgrade" (
46
+ "namespace",
47
+ "tenant_id",
48
+ "audit_event_id",
49
+ "authorized_operation_id",
50
+ "operation_fingerprint_digest",
51
+ "authorization_source_kind",
52
+ "authorization_id",
53
+ "evidence_set_digest",
54
+ "quota_id",
55
+ "material_activation_id",
56
+ "result_kind",
57
+ "claimed_at_ms",
58
+ "completed_at_ms",
59
+ "authorization_grant_kind",
60
+ "material_activation_capability",
61
+ "material_activation_owner",
62
+ "material_activation_key_binding",
63
+ "material_activation_lifecycle_binding",
64
+ "material_activation_signing_worker",
65
+ "linked_wallet_id",
66
+ "linked_enrollment_id",
67
+ "linked_device_id",
68
+ "linked_wallet_key_id",
69
+ "linked_lane_id",
70
+ "linked_lane_share_epoch",
71
+ "linked_revocation_epoch",
72
+ "linked_scope_org_id",
73
+ "linked_scope_project_id",
74
+ "linked_scope_env_id"
75
+ ) SELECT
76
+ "namespace",
77
+ "tenant_id",
78
+ "audit_event_id",
79
+ "authorized_operation_id",
80
+ "operation_fingerprint_digest",
81
+ "authorization_source_kind",
82
+ "authorization_id",
83
+ "evidence_set_digest",
84
+ "quota_id",
85
+ "material_activation_id",
86
+ "result_kind",
87
+ "claimed_at_ms",
88
+ "completed_at_ms",
89
+ CASE
90
+ WHEN authorization_source_kind = 'authorization_grant'
91
+ THEN 'wallet_session_authorization'
92
+ ELSE NULL
93
+ END,
94
+ NULL,
95
+ NULL,
96
+ NULL,
97
+ NULL,
98
+ NULL,
99
+ NULL,
100
+ NULL,
101
+ NULL,
102
+ NULL,
103
+ NULL,
104
+ NULL,
105
+ NULL,
106
+ NULL,
107
+ NULL,
108
+ NULL
109
+ FROM "authorized_operation_audit_events";
110
+ DROP TABLE "authorized_operation_audit_events";
111
+ ALTER TABLE "authorized_operation_audit_events_post_103_upgrade" RENAME TO "authorized_operation_audit_events";
112
+
113
+ DROP TABLE IF EXISTS "authorized_operations_post_103_upgrade";
114
+ CREATE TABLE "authorized_operations_post_103_upgrade" (
115
+ namespace TEXT NOT NULL,
116
+ tenant_id TEXT NOT NULL,
117
+ authorized_operation_id TEXT NOT NULL,
118
+ audit_event_id TEXT NOT NULL,
119
+ principal_id TEXT NOT NULL,
120
+ capability_id TEXT NOT NULL,
121
+ capability_kind TEXT NOT NULL,
122
+ operation_kind TEXT NOT NULL,
123
+ operation_id TEXT NOT NULL,
124
+ operation_fingerprint_digest TEXT NOT NULL,
125
+ lane_digest TEXT NOT NULL,
126
+ intent_digest TEXT NOT NULL,
127
+ display_digest TEXT NOT NULL,
128
+ authorization_source_kind TEXT NOT NULL,
129
+ authorization_id TEXT,
130
+ evidence_set_digest TEXT,
131
+ quota_id TEXT,
132
+ quota_kind TEXT NOT NULL,
133
+ lifecycle_kind TEXT NOT NULL,
134
+ result_kind TEXT NOT NULL,
135
+ result_digest TEXT,
136
+ result_status INTEGER,
137
+ result_content_type TEXT,
138
+ result_body_text TEXT,
139
+ claimed_at_ms INTEGER NOT NULL,
140
+ completed_at_ms INTEGER,
141
+ material_activation_id TEXT, authorization_grant_kind TEXT, material_activation_capability TEXT, material_activation_owner TEXT, material_activation_key_binding TEXT, material_activation_lifecycle_binding TEXT, material_activation_signing_worker TEXT, linked_wallet_id TEXT, linked_enrollment_id TEXT, linked_device_id TEXT, linked_wallet_key_id TEXT, linked_lane_id TEXT, linked_lane_share_epoch TEXT, linked_revocation_epoch INTEGER, linked_scope_org_id TEXT, linked_scope_project_id TEXT, linked_scope_env_id TEXT,
142
+ PRIMARY KEY (namespace, tenant_id, authorized_operation_id),
143
+ UNIQUE (namespace, tenant_id, operation_fingerprint_digest),
144
+ CHECK (authorization_source_kind IN ('authorization_grant', 'verified_step_up')),
145
+ CHECK (
146
+ (authorization_source_kind = 'authorization_grant'
147
+ AND authorization_id IS NOT NULL
148
+ AND evidence_set_digest IS NULL)
149
+ OR (authorization_source_kind = 'verified_step_up'
150
+ AND authorization_id IS NULL
151
+ AND evidence_set_digest IS NOT NULL)
152
+ ),
153
+ CHECK (quota_kind IN ('consume_reusable_wallet_session', 'quota_neutral')),
154
+ CHECK (
155
+ (quota_kind = 'consume_reusable_wallet_session'
156
+ AND authorization_source_kind = 'authorization_grant'
157
+ AND operation_kind NOT IN ('near.export_key', 'evm.export_key')
158
+ AND capability_kind != 'vault_access')
159
+ OR (quota_kind = 'quota_neutral'
160
+ AND (
161
+ operation_kind IN ('near.export_key', 'evm.export_key')
162
+ OR capability_kind = 'vault_access'
163
+ OR authorization_source_kind = 'verified_step_up'
164
+ ))
165
+ ),
166
+ CHECK (
167
+ (quota_kind = 'consume_reusable_wallet_session' AND quota_id IS NOT NULL)
168
+ OR (quota_kind = 'quota_neutral' AND quota_id IS NULL)
169
+ ),
170
+ CHECK (lifecycle_kind IN ('claimed', 'completed')),
171
+ CHECK (
172
+ (lifecycle_kind = 'claimed'
173
+ AND result_kind = 'pending'
174
+ AND result_digest IS NULL
175
+ AND result_status IS NULL
176
+ AND result_content_type IS NULL
177
+ AND result_body_text IS NULL
178
+ AND completed_at_ms IS NULL)
179
+ OR (lifecycle_kind = 'completed'
180
+ AND result_kind IN ('succeeded', 'failed_before_side_effect', 'failed_after_side_effect')
181
+ AND result_digest IS NOT NULL
182
+ AND result_status BETWEEN 100 AND 599
183
+ AND result_content_type IS NOT NULL
184
+ AND trim(result_content_type) = result_content_type
185
+ AND length(result_content_type) BETWEEN 1 AND 255
186
+ AND result_body_text IS NOT NULL
187
+ AND length(CAST(result_body_text AS BLOB)) <= 65536
188
+ AND completed_at_ms IS NOT NULL)
189
+ )
190
+ );
191
+ INSERT INTO "authorized_operations_post_103_upgrade" (
192
+ "namespace",
193
+ "tenant_id",
194
+ "authorized_operation_id",
195
+ "audit_event_id",
196
+ "principal_id",
197
+ "capability_id",
198
+ "capability_kind",
199
+ "operation_kind",
200
+ "operation_id",
201
+ "operation_fingerprint_digest",
202
+ "lane_digest",
203
+ "intent_digest",
204
+ "display_digest",
205
+ "authorization_source_kind",
206
+ "authorization_id",
207
+ "evidence_set_digest",
208
+ "quota_id",
209
+ "quota_kind",
210
+ "lifecycle_kind",
211
+ "result_kind",
212
+ "result_digest",
213
+ "result_status",
214
+ "result_content_type",
215
+ "result_body_text",
216
+ "claimed_at_ms",
217
+ "completed_at_ms",
218
+ "material_activation_id",
219
+ "authorization_grant_kind",
220
+ "material_activation_capability",
221
+ "material_activation_owner",
222
+ "material_activation_key_binding",
223
+ "material_activation_lifecycle_binding",
224
+ "material_activation_signing_worker",
225
+ "linked_wallet_id",
226
+ "linked_enrollment_id",
227
+ "linked_device_id",
228
+ "linked_wallet_key_id",
229
+ "linked_lane_id",
230
+ "linked_lane_share_epoch",
231
+ "linked_revocation_epoch",
232
+ "linked_scope_org_id",
233
+ "linked_scope_project_id",
234
+ "linked_scope_env_id"
235
+ ) SELECT
236
+ "namespace",
237
+ "tenant_id",
238
+ "authorized_operation_id",
239
+ "audit_event_id",
240
+ "principal_id",
241
+ "capability_id",
242
+ "capability_kind",
243
+ "operation_kind",
244
+ "operation_id",
245
+ "operation_fingerprint_digest",
246
+ "lane_digest",
247
+ "intent_digest",
248
+ "display_digest",
249
+ "authorization_source_kind",
250
+ "authorization_id",
251
+ "evidence_set_digest",
252
+ "quota_id",
253
+ "quota_kind",
254
+ "lifecycle_kind",
255
+ "result_kind",
256
+ "result_digest",
257
+ "result_status",
258
+ "result_content_type",
259
+ "result_body_text",
260
+ "claimed_at_ms",
261
+ "completed_at_ms",
262
+ "material_activation_id",
263
+ CASE
264
+ WHEN authorization_source_kind = 'authorization_grant'
265
+ THEN 'wallet_session_authorization'
266
+ ELSE NULL
267
+ END,
268
+ NULL,
269
+ NULL,
270
+ NULL,
271
+ NULL,
272
+ NULL,
273
+ NULL,
274
+ NULL,
275
+ NULL,
276
+ NULL,
277
+ NULL,
278
+ NULL,
279
+ NULL,
280
+ NULL,
281
+ NULL,
282
+ NULL
283
+ FROM "authorized_operations";
284
+ DROP TABLE "authorized_operations";
285
+ ALTER TABLE "authorized_operations_post_103_upgrade" RENAME TO "authorized_operations";
286
+
287
+ DROP TABLE IF EXISTS "webauthn_challenges_post_103_upgrade";
288
+ CREATE TABLE "webauthn_challenges_post_103_upgrade" (
289
+ namespace TEXT NOT NULL,
290
+ org_id TEXT NOT NULL,
291
+ project_id TEXT NOT NULL,
292
+ env_id TEXT NOT NULL,
293
+ challenge_id TEXT NOT NULL,
294
+ challenge_kind TEXT NOT NULL,
295
+ record_json TEXT NOT NULL,
296
+ created_at_ms INTEGER NOT NULL,
297
+ expires_at_ms INTEGER NOT NULL,
298
+ PRIMARY KEY (namespace, org_id, project_id, env_id, challenge_id),
299
+ CHECK (length(challenge_id) > 0),
300
+ CHECK (challenge_kind IN ('login', 'sync', 'recovery_registration')),
301
+ CHECK (json_valid(record_json)),
302
+ CHECK (created_at_ms > 0),
303
+ CHECK (expires_at_ms > created_at_ms)
304
+ );
305
+ INSERT INTO "webauthn_challenges_post_103_upgrade" (
306
+ "namespace",
307
+ "org_id",
308
+ "project_id",
309
+ "env_id",
310
+ "challenge_id",
311
+ "challenge_kind",
312
+ "record_json",
313
+ "created_at_ms",
314
+ "expires_at_ms"
315
+ ) SELECT
316
+ "namespace",
317
+ "org_id",
318
+ "project_id",
319
+ "env_id",
320
+ "challenge_id",
321
+ "challenge_kind",
322
+ "record_json",
323
+ "created_at_ms",
324
+ "expires_at_ms"
325
+ FROM "webauthn_challenges";
326
+ DROP TABLE "webauthn_challenges";
327
+ ALTER TABLE "webauthn_challenges_post_103_upgrade" RENAME TO "webauthn_challenges";
328
+
329
+ CREATE TABLE IF NOT EXISTS lane_cas_guard (
330
+ guard_id INTEGER PRIMARY KEY CHECK (guard_id = 1)
331
+ );
332
+
333
+ CREATE TABLE IF NOT EXISTS lane_effect_journal (
334
+ namespace TEXT NOT NULL,
335
+ org_id TEXT NOT NULL,
336
+ project_id TEXT NOT NULL,
337
+ env_id TEXT NOT NULL,
338
+ effect_id TEXT NOT NULL,
339
+ enrollment_id TEXT NOT NULL,
340
+ operation_id TEXT NOT NULL,
341
+ wallet_id TEXT NOT NULL,
342
+ wallet_key_id TEXT NOT NULL,
343
+ lane_id TEXT NOT NULL,
344
+ lane_share_epoch TEXT NOT NULL,
345
+ effect_kind TEXT NOT NULL,
346
+ request_digest_b64u TEXT NOT NULL,
347
+ status TEXT NOT NULL,
348
+ response_digest_b64u TEXT,
349
+ recorded_at_ms INTEGER NOT NULL,
350
+ confirmed_at_ms INTEGER,
351
+ version INTEGER NOT NULL,
352
+ command_digest_b64u TEXT NOT NULL,
353
+ PRIMARY KEY (namespace, org_id, project_id, env_id, effect_id),
354
+ UNIQUE (namespace, org_id, project_id, env_id, operation_id, effect_kind),
355
+ FOREIGN KEY (namespace, org_id, project_id, env_id, enrollment_id)
356
+ REFERENCES lane_enrollments(namespace, org_id, project_id, env_id, enrollment_id),
357
+ FOREIGN KEY (namespace, org_id, project_id, env_id, operation_id)
358
+ REFERENCES lane_protocol_operations(namespace, org_id, project_id, env_id, operation_id),
359
+ CHECK (effect_kind IN ('activate_server_material', 'retire_server_material', 'invalidate_holder_material')),
360
+ CHECK (status IN ('recorded', 'confirmed')),
361
+ CHECK (
362
+ (status = 'recorded' AND response_digest_b64u IS NULL AND confirmed_at_ms IS NULL)
363
+ OR (status = 'confirmed' AND response_digest_b64u IS NOT NULL AND confirmed_at_ms IS NOT NULL AND confirmed_at_ms >= recorded_at_ms)
364
+ ),
365
+ CHECK (version > 0),
366
+ CHECK (recorded_at_ms >= 0)
367
+ );
368
+
369
+ CREATE TABLE IF NOT EXISTS lane_enrollments (
370
+ namespace TEXT NOT NULL,
371
+ org_id TEXT NOT NULL,
372
+ project_id TEXT NOT NULL,
373
+ env_id TEXT NOT NULL,
374
+ enrollment_id TEXT NOT NULL,
375
+ wallet_id TEXT NOT NULL,
376
+ manifest_digest_b64u TEXT NOT NULL,
377
+ manifest_json TEXT NOT NULL,
378
+ lifecycle_json TEXT NOT NULL,
379
+ version INTEGER NOT NULL,
380
+ command_digest_b64u TEXT NOT NULL,
381
+ revocation_fence_command_digest_b64u TEXT,
382
+ created_at_ms INTEGER NOT NULL,
383
+ updated_at_ms INTEGER NOT NULL,
384
+ PRIMARY KEY (namespace, org_id, project_id, env_id, enrollment_id),
385
+ UNIQUE (namespace, org_id, project_id, env_id, manifest_digest_b64u),
386
+ CHECK (length(enrollment_id) > 0),
387
+ CHECK (length(wallet_id) > 0),
388
+ CHECK (length(manifest_digest_b64u) > 0),
389
+ CHECK (json_valid(manifest_json)),
390
+ CHECK (json_valid(lifecycle_json)),
391
+ CHECK (version > 0),
392
+ CHECK (created_at_ms >= 0 AND updated_at_ms >= created_at_ms)
393
+ );
394
+
395
+ CREATE TABLE IF NOT EXISTS lane_locks (
396
+ namespace TEXT NOT NULL,
397
+ org_id TEXT NOT NULL,
398
+ project_id TEXT NOT NULL,
399
+ env_id TEXT NOT NULL,
400
+ lock_key TEXT NOT NULL,
401
+ lock_kind TEXT NOT NULL,
402
+ enrollment_id TEXT,
403
+ wallet_key_id TEXT,
404
+ lane_id TEXT,
405
+ lock_id TEXT NOT NULL,
406
+ expires_at_ms INTEGER NOT NULL,
407
+ acquired_at_ms INTEGER NOT NULL,
408
+ PRIMARY KEY (namespace, org_id, project_id, env_id, lock_key),
409
+ CHECK (lock_kind IN ('wallet_key', 'enrollment')),
410
+ CHECK (length(lock_id) > 0),
411
+ CHECK (expires_at_ms > acquired_at_ms),
412
+ CHECK ((lock_kind = 'wallet_key' AND wallet_key_id IS NOT NULL AND enrollment_id IS NULL AND lane_id IS NULL) OR
413
+ (lock_kind = 'enrollment' AND enrollment_id IS NOT NULL AND wallet_key_id IS NULL AND lane_id IS NULL))
414
+ );
415
+
416
+ CREATE TABLE IF NOT EXISTS lane_product_epochs (
417
+ namespace TEXT NOT NULL,
418
+ org_id TEXT NOT NULL,
419
+ project_id TEXT NOT NULL,
420
+ env_id TEXT NOT NULL,
421
+ wallet_id TEXT NOT NULL,
422
+ wallet_key_id TEXT NOT NULL,
423
+ lane_id TEXT NOT NULL,
424
+ lane_share_epoch TEXT NOT NULL,
425
+ enrollment_id TEXT NOT NULL,
426
+ operation_id TEXT NOT NULL,
427
+ target_material_activation_id TEXT NOT NULL,
428
+ material_activation_json TEXT NOT NULL,
429
+ holder_participant_json TEXT NOT NULL,
430
+ signing_worker_participant_json TEXT NOT NULL,
431
+ participant_set_binding_digest_b64u TEXT NOT NULL,
432
+ revocation_epoch INTEGER NOT NULL,
433
+ lane_kind TEXT NOT NULL,
434
+ key_family TEXT NOT NULL,
435
+ public_identity_digest_b64u TEXT NOT NULL,
436
+ state TEXT NOT NULL,
437
+ product_json TEXT NOT NULL,
438
+ version INTEGER NOT NULL DEFAULT 1,
439
+ command_digest_b64u TEXT NOT NULL,
440
+ created_at_ms INTEGER NOT NULL,
441
+ updated_at_ms INTEGER NOT NULL,
442
+ PRIMARY KEY (namespace, org_id, project_id, env_id, wallet_key_id, lane_id, lane_share_epoch),
443
+ UNIQUE (namespace, org_id, project_id, env_id, target_material_activation_id),
444
+ FOREIGN KEY (namespace, org_id, project_id, env_id, enrollment_id)
445
+ REFERENCES lane_enrollments(namespace, org_id, project_id, env_id, enrollment_id),
446
+ FOREIGN KEY (namespace, org_id, project_id, env_id, operation_id)
447
+ REFERENCES lane_protocol_operations(namespace, org_id, project_id, env_id, operation_id),
448
+ CHECK (json_valid(material_activation_json)),
449
+ CHECK (json_valid(holder_participant_json)),
450
+ CHECK (json_valid(signing_worker_participant_json)),
451
+ CHECK (length(participant_set_binding_digest_b64u) > 0),
452
+ CHECK (revocation_epoch >= 0),
453
+ CHECK (json_valid(product_json)),
454
+ CHECK (state IN ('pending_visibility', 'active', 'retired', 'revocation_pending', 'revoked')),
455
+ CHECK (lane_kind IN ('owner_passkey', 'owner_email_otp', 'linked_device', 'delegated_execution', 'recovery', 'break_glass')),
456
+ CHECK (length(command_digest_b64u) > 0),
457
+ CHECK (version > 0),
458
+ CHECK (key_family IN ('ed25519', 'ecdsa_secp256k1')),
459
+ CHECK (created_at_ms >= 0 AND updated_at_ms >= created_at_ms)
460
+ );
461
+
462
+ CREATE TABLE IF NOT EXISTS lane_protocol_operations (
463
+ namespace TEXT NOT NULL,
464
+ org_id TEXT NOT NULL,
465
+ project_id TEXT NOT NULL,
466
+ env_id TEXT NOT NULL,
467
+ operation_id TEXT NOT NULL,
468
+ enrollment_id TEXT NOT NULL,
469
+ wallet_id TEXT NOT NULL,
470
+ wallet_key_id TEXT NOT NULL,
471
+ source_lane_id TEXT NOT NULL,
472
+ source_lane_share_epoch TEXT NOT NULL,
473
+ source_revocation_epoch INTEGER NOT NULL,
474
+ target_lane_id TEXT NOT NULL,
475
+ target_lane_share_epoch TEXT NOT NULL,
476
+ target_material_activation_id TEXT NOT NULL,
477
+ key_family TEXT NOT NULL,
478
+ job_json TEXT NOT NULL,
479
+ lifecycle_json TEXT NOT NULL,
480
+ version INTEGER NOT NULL,
481
+ command_digest_b64u TEXT NOT NULL,
482
+ created_at_ms INTEGER NOT NULL,
483
+ updated_at_ms INTEGER NOT NULL,
484
+ PRIMARY KEY (namespace, org_id, project_id, env_id, operation_id),
485
+ UNIQUE (namespace, org_id, project_id, env_id, target_material_activation_id),
486
+ FOREIGN KEY (namespace, org_id, project_id, env_id, enrollment_id)
487
+ REFERENCES lane_enrollments(namespace, org_id, project_id, env_id, enrollment_id),
488
+ CHECK (source_revocation_epoch >= 0),
489
+ CHECK (key_family IN ('ed25519', 'ecdsa_secp256k1')),
490
+ CHECK (json_valid(job_json)),
491
+ CHECK (json_valid(lifecycle_json)),
492
+ CHECK (version > 0),
493
+ CHECK (created_at_ms >= 0 AND updated_at_ms >= created_at_ms)
494
+ );
495
+
496
+ CREATE TABLE IF NOT EXISTS lane_receipts (
497
+ namespace TEXT NOT NULL,
498
+ org_id TEXT NOT NULL,
499
+ project_id TEXT NOT NULL,
500
+ env_id TEXT NOT NULL,
501
+ receipt_id TEXT NOT NULL,
502
+ enrollment_id TEXT NOT NULL,
503
+ operation_id TEXT,
504
+ receipt_kind TEXT NOT NULL,
505
+ receipt_digest_b64u TEXT NOT NULL,
506
+ receipt_json TEXT NOT NULL,
507
+ created_at_ms INTEGER NOT NULL,
508
+ PRIMARY KEY (namespace, org_id, project_id, env_id, receipt_id),
509
+ UNIQUE (namespace, org_id, project_id, env_id, operation_id, receipt_kind),
510
+ FOREIGN KEY (namespace, org_id, project_id, env_id, enrollment_id)
511
+ REFERENCES lane_enrollments(namespace, org_id, project_id, env_id, enrollment_id),
512
+ FOREIGN KEY (namespace, org_id, project_id, env_id, operation_id)
513
+ REFERENCES lane_protocol_operations(namespace, org_id, project_id, env_id, operation_id),
514
+ CHECK (json_valid(receipt_json)),
515
+ CHECK (created_at_ms >= 0)
516
+ );
517
+
518
+ CREATE TABLE IF NOT EXISTS linked_device_owner_planning_snapshots (
519
+ namespace TEXT NOT NULL,
520
+ org_id TEXT NOT NULL,
521
+ project_id TEXT NOT NULL,
522
+ env_id TEXT NOT NULL,
523
+ link_session_id TEXT NOT NULL,
524
+ wallet_id TEXT NOT NULL,
525
+ owner_context_json TEXT NOT NULL,
526
+ payload_json TEXT NOT NULL,
527
+ policy_digest_b64u TEXT NOT NULL,
528
+ operation_id TEXT NOT NULL,
529
+ idempotency_key TEXT NOT NULL,
530
+ ordered_key_bindings_json TEXT NOT NULL,
531
+ protocol_versions_json TEXT NOT NULL,
532
+ expires_at_ms INTEGER NOT NULL,
533
+ source_children_json TEXT NOT NULL,
534
+ ordered_owner_source_lane_hints_json TEXT NOT NULL,
535
+ snapshot_json TEXT NOT NULL,
536
+ snapshot_digest_b64u TEXT NOT NULL,
537
+ created_at_ms INTEGER NOT NULL,
538
+ updated_at_ms INTEGER NOT NULL,
539
+ PRIMARY KEY (namespace, org_id, project_id, env_id, link_session_id),
540
+ CHECK (length(link_session_id) > 0),
541
+ CHECK (length(wallet_id) > 0),
542
+ CHECK (length(policy_digest_b64u) > 0),
543
+ CHECK (length(operation_id) > 0),
544
+ CHECK (length(idempotency_key) > 0),
545
+ CHECK (json_valid(owner_context_json)),
546
+ CHECK (json_valid(payload_json)),
547
+ CHECK (json_valid(ordered_key_bindings_json)),
548
+ CHECK (json_valid(protocol_versions_json)),
549
+ CHECK (json_valid(source_children_json)),
550
+ CHECK (json_valid(ordered_owner_source_lane_hints_json)),
551
+ CHECK (json_valid(snapshot_json)),
552
+ CHECK (expires_at_ms > 0),
553
+ CHECK (created_at_ms > 0 AND updated_at_ms >= created_at_ms)
554
+ );
555
+
556
+ CREATE TABLE IF NOT EXISTS linked_device_provisioning_records (
557
+ namespace TEXT NOT NULL,
558
+ org_id TEXT NOT NULL,
559
+ project_id TEXT NOT NULL,
560
+ env_id TEXT NOT NULL,
561
+ link_session_id TEXT NOT NULL,
562
+ enrollment_id TEXT NOT NULL,
563
+ wallet_id TEXT NOT NULL,
564
+ device_id TEXT NOT NULL,
565
+ manifest_digest_b64u TEXT NOT NULL,
566
+ deliveries_json TEXT NOT NULL,
567
+ aggregate_receipt_json TEXT,
568
+ created_at_ms INTEGER NOT NULL,
569
+ updated_at_ms INTEGER NOT NULL,
570
+ PRIMARY KEY (namespace, org_id, project_id, env_id, link_session_id),
571
+ FOREIGN KEY (namespace, org_id, project_id, env_id, link_session_id)
572
+ REFERENCES linked_device_sessions(namespace, org_id, project_id, env_id, link_session_id),
573
+ CHECK (length(enrollment_id) > 0),
574
+ CHECK (length(wallet_id) > 0),
575
+ CHECK (length(device_id) > 0),
576
+ CHECK (length(manifest_digest_b64u) > 0),
577
+ CHECK (json_valid(deliveries_json)),
578
+ CHECK (aggregate_receipt_json IS NULL OR json_valid(aggregate_receipt_json))
579
+ );
580
+
581
+ CREATE TABLE IF NOT EXISTS linked_device_request_proof_nonces (
582
+ namespace TEXT NOT NULL,
583
+ org_id TEXT NOT NULL,
584
+ project_id TEXT NOT NULL,
585
+ env_id TEXT NOT NULL,
586
+ link_session_id TEXT NOT NULL,
587
+ request_nonce_b64u TEXT NOT NULL,
588
+ proof_digest_b64u TEXT NOT NULL,
589
+ issued_at_ms INTEGER NOT NULL,
590
+ expires_at_ms INTEGER NOT NULL,
591
+ consumed_at_ms INTEGER NOT NULL,
592
+ PRIMARY KEY (
593
+ namespace,
594
+ org_id,
595
+ project_id,
596
+ env_id,
597
+ link_session_id,
598
+ request_nonce_b64u
599
+ ),
600
+ CHECK (length(link_session_id) > 0),
601
+ CHECK (length(request_nonce_b64u) > 0),
602
+ CHECK (length(proof_digest_b64u) > 0),
603
+ CHECK (issued_at_ms > 0),
604
+ CHECK (expires_at_ms > issued_at_ms),
605
+ CHECK (consumed_at_ms >= issued_at_ms),
606
+ CHECK (consumed_at_ms < expires_at_ms)
607
+ );
608
+
609
+ CREATE TABLE IF NOT EXISTS linked_device_session_transcripts (
610
+ namespace TEXT NOT NULL,
611
+ org_id TEXT NOT NULL,
612
+ project_id TEXT NOT NULL,
613
+ env_id TEXT NOT NULL,
614
+ link_session_id TEXT NOT NULL,
615
+ transcript_kind TEXT NOT NULL,
616
+ digest_b64u TEXT NOT NULL,
617
+ transcript_json TEXT NOT NULL,
618
+ created_at_ms INTEGER NOT NULL,
619
+ PRIMARY KEY (
620
+ namespace,
621
+ org_id,
622
+ project_id,
623
+ env_id,
624
+ link_session_id,
625
+ transcript_kind
626
+ ),
627
+ FOREIGN KEY (namespace, org_id, project_id, env_id, link_session_id)
628
+ REFERENCES linked_device_sessions(namespace, org_id, project_id, env_id, link_session_id),
629
+ CHECK (transcript_kind IN ('claim', 'approval')),
630
+ CHECK (length(digest_b64u) > 0),
631
+ CHECK (json_valid(transcript_json)),
632
+ CHECK (created_at_ms > 0)
633
+ );
634
+
635
+ CREATE TABLE IF NOT EXISTS linked_device_sessions (
636
+ namespace TEXT NOT NULL,
637
+ org_id TEXT NOT NULL,
638
+ project_id TEXT NOT NULL,
639
+ env_id TEXT NOT NULL,
640
+ link_session_id TEXT NOT NULL,
641
+ link_public_key_b64u TEXT NOT NULL,
642
+ device_public_key_b64u TEXT NOT NULL,
643
+ state TEXT NOT NULL,
644
+ record_json TEXT NOT NULL,
645
+ revision INTEGER NOT NULL,
646
+ expires_at_ms INTEGER NOT NULL,
647
+ claim_expires_at_ms INTEGER,
648
+ claim_digest_b64u TEXT,
649
+ approval_digest_b64u TEXT,
650
+ created_at_ms INTEGER NOT NULL,
651
+ updated_at_ms INTEGER NOT NULL,
652
+ PRIMARY KEY (namespace, org_id, project_id, env_id, link_session_id),
653
+ CHECK (length(link_session_id) > 0),
654
+ CHECK (length(link_public_key_b64u) > 0),
655
+ CHECK (length(device_public_key_b64u) > 0),
656
+ CHECK (state IN (
657
+ 'displaying_qr',
658
+ 'claimed_by_owner',
659
+ 'awaiting_target_passkey',
660
+ 'provisioning',
661
+ 'active',
662
+ 'expired_unclaimed',
663
+ 'expired_claimed',
664
+ 'cancelled_unclaimed',
665
+ 'cancelled_claimed_precommit',
666
+ 'committed_completion_required'
667
+ )),
668
+ CHECK (json_valid(record_json)),
669
+ CHECK (revision > 0),
670
+ CHECK (expires_at_ms > 0),
671
+ CHECK (claim_expires_at_ms IS NULL OR claim_expires_at_ms > 0),
672
+ CHECK (claim_digest_b64u IS NULL OR length(claim_digest_b64u) > 0),
673
+ CHECK (approval_digest_b64u IS NULL OR length(approval_digest_b64u) > 0),
674
+ CHECK (created_at_ms > 0 AND updated_at_ms >= created_at_ms)
675
+ );
676
+
677
+ CREATE TABLE IF NOT EXISTS linked_device_source_handoffs (
678
+ namespace TEXT NOT NULL,
679
+ org_id TEXT NOT NULL,
680
+ project_id TEXT NOT NULL,
681
+ env_id TEXT NOT NULL,
682
+ link_session_id TEXT NOT NULL,
683
+ enrollment_id TEXT NOT NULL,
684
+ wallet_id TEXT NOT NULL,
685
+ device_id TEXT NOT NULL,
686
+ target_ready_json TEXT NOT NULL,
687
+ target_ready_digest_b64u TEXT NOT NULL,
688
+ manifest_digest_b64u TEXT NOT NULL,
689
+ deliveries_json TEXT,
690
+ deliveries_digest_b64u TEXT,
691
+ created_at_ms INTEGER NOT NULL,
692
+ updated_at_ms INTEGER NOT NULL,
693
+ PRIMARY KEY (namespace, org_id, project_id, env_id, link_session_id),
694
+ FOREIGN KEY (namespace, org_id, project_id, env_id, link_session_id)
695
+ REFERENCES linked_device_sessions(namespace, org_id, project_id, env_id, link_session_id),
696
+ CHECK (length(enrollment_id) > 0),
697
+ CHECK (length(wallet_id) > 0),
698
+ CHECK (length(device_id) > 0),
699
+ CHECK (length(target_ready_digest_b64u) > 0),
700
+ CHECK (length(manifest_digest_b64u) > 0),
701
+ CHECK (json_valid(target_ready_json)),
702
+ CHECK (
703
+ (deliveries_json IS NULL AND deliveries_digest_b64u IS NULL)
704
+ OR
705
+ (deliveries_json IS NOT NULL AND json_valid(deliveries_json) AND length(deliveries_digest_b64u) > 0)
706
+ )
707
+ );
708
+
709
+ CREATE TABLE IF NOT EXISTS linked_device_target_commit_reservations (
710
+ namespace TEXT NOT NULL,
711
+ org_id TEXT NOT NULL,
712
+ project_id TEXT NOT NULL,
713
+ env_id TEXT NOT NULL,
714
+ link_session_id TEXT NOT NULL,
715
+ registration_digest_b64u TEXT NOT NULL,
716
+ state TEXT NOT NULL,
717
+ reserved_at_ms INTEGER NOT NULL,
718
+ committed_at_ms INTEGER,
719
+ key_manifest_digest_b64u TEXT,
720
+ PRIMARY KEY (namespace, org_id, project_id, env_id, link_session_id),
721
+ FOREIGN KEY (namespace, org_id, project_id, env_id, link_session_id)
722
+ REFERENCES linked_device_sessions(namespace, org_id, project_id, env_id, link_session_id),
723
+ CHECK (length(registration_digest_b64u) > 0),
724
+ CHECK (state IN ('reserved', 'committed')),
725
+ CHECK (
726
+ (state = 'reserved' AND committed_at_ms IS NULL AND key_manifest_digest_b64u IS NULL)
727
+ OR
728
+ (state = 'committed' AND committed_at_ms IS NOT NULL AND length(key_manifest_digest_b64u) > 0)
729
+ )
730
+ );
731
+
732
+ CREATE TABLE IF NOT EXISTS linked_device_target_credentials (
733
+ namespace TEXT NOT NULL,
734
+ org_id TEXT NOT NULL,
735
+ project_id TEXT NOT NULL,
736
+ env_id TEXT NOT NULL,
737
+ link_session_id TEXT NOT NULL,
738
+ wallet_id TEXT NOT NULL,
739
+ enrollment_id TEXT NOT NULL,
740
+ device_id TEXT NOT NULL,
741
+ state TEXT NOT NULL,
742
+ preparation_digest_b64u TEXT NOT NULL,
743
+ preparation_json TEXT NOT NULL,
744
+ registration_json TEXT,
745
+ credential_id_b64u TEXT,
746
+ credential_public_key_b64u TEXT,
747
+ credential_counter INTEGER,
748
+ key_manifest_digest_b64u TEXT,
749
+ prepared_at_ms INTEGER NOT NULL,
750
+ expires_at_ms INTEGER NOT NULL,
751
+ registered_at_ms INTEGER,
752
+ PRIMARY KEY (namespace, org_id, project_id, env_id, link_session_id),
753
+ FOREIGN KEY (namespace, org_id, project_id, env_id, link_session_id)
754
+ REFERENCES linked_device_sessions(namespace, org_id, project_id, env_id, link_session_id),
755
+ CHECK (length(wallet_id) > 0),
756
+ CHECK (length(enrollment_id) > 0),
757
+ CHECK (length(device_id) > 0),
758
+ CHECK (state IN ('prepared', 'registered')),
759
+ CHECK (length(preparation_digest_b64u) > 0),
760
+ CHECK (json_valid(preparation_json)),
761
+ CHECK (expires_at_ms > prepared_at_ms),
762
+ CHECK (
763
+ (state = 'prepared'
764
+ AND registration_json IS NULL
765
+ AND credential_id_b64u IS NULL
766
+ AND credential_public_key_b64u IS NULL
767
+ AND credential_counter IS NULL
768
+ AND key_manifest_digest_b64u IS NULL
769
+ AND registered_at_ms IS NULL)
770
+ OR
771
+ (state = 'registered'
772
+ AND json_valid(registration_json)
773
+ AND length(credential_id_b64u) > 0
774
+ AND length(credential_public_key_b64u) > 0
775
+ AND credential_counter >= 0
776
+ AND length(key_manifest_digest_b64u) > 0
777
+ AND registered_at_ms > 0)
778
+ )
779
+ );
780
+
781
+ CREATE TABLE IF NOT EXISTS linked_device_target_deployment_descriptors (
782
+ namespace TEXT NOT NULL,
783
+ org_id TEXT NOT NULL,
784
+ project_id TEXT NOT NULL,
785
+ env_id TEXT NOT NULL,
786
+ link_session_id TEXT NOT NULL,
787
+ target_preparation_digest_b64u TEXT NOT NULL,
788
+ registration_digest_b64u TEXT NOT NULL,
789
+ child_index INTEGER NOT NULL,
790
+ request_digest_b64u TEXT NOT NULL,
791
+ descriptor_digest_b64u TEXT NOT NULL,
792
+ descriptor_json TEXT NOT NULL,
793
+ issued_at_ms INTEGER NOT NULL,
794
+ expires_at_ms INTEGER NOT NULL,
795
+ PRIMARY KEY (
796
+ namespace,
797
+ org_id,
798
+ project_id,
799
+ env_id,
800
+ link_session_id,
801
+ target_preparation_digest_b64u,
802
+ registration_digest_b64u,
803
+ child_index
804
+ ),
805
+ CHECK (length(target_preparation_digest_b64u) > 0),
806
+ CHECK (length(registration_digest_b64u) > 0),
807
+ CHECK (child_index >= 0),
808
+ CHECK (length(request_digest_b64u) > 0),
809
+ CHECK (length(descriptor_digest_b64u) > 0),
810
+ CHECK (json_valid(descriptor_json)),
811
+ CHECK (issued_at_ms > 0 AND expires_at_ms > issued_at_ms)
812
+ );
813
+
814
+ CREATE TABLE IF NOT EXISTS linked_device_wallet_session_authorizations (
815
+ namespace TEXT NOT NULL,
816
+ org_id TEXT NOT NULL,
817
+ project_id TEXT NOT NULL,
818
+ env_id TEXT NOT NULL,
819
+ tenant_id TEXT NOT NULL,
820
+ authorization_id TEXT NOT NULL,
821
+ principal_id TEXT NOT NULL,
822
+ wallet_id TEXT NOT NULL,
823
+ enrollment_id TEXT NOT NULL,
824
+ device_id TEXT NOT NULL,
825
+ wallet_session_id TEXT NOT NULL,
826
+ quota_id TEXT NOT NULL,
827
+ key_manifest_digest_b64u TEXT NOT NULL,
828
+ permission_json TEXT NOT NULL,
829
+ revocation_epoch INTEGER NOT NULL,
830
+ lifecycle_kind TEXT NOT NULL,
831
+ issued_at_ms INTEGER NOT NULL,
832
+ expires_at_ms INTEGER NOT NULL,
833
+ revoked_at_ms INTEGER,
834
+ PRIMARY KEY (namespace, org_id, project_id, env_id, tenant_id, authorization_id),
835
+ UNIQUE (namespace, org_id, project_id, env_id, tenant_id, wallet_session_id),
836
+ UNIQUE (namespace, org_id, project_id, env_id, tenant_id, quota_id),
837
+ CHECK (length(authorization_id) > 0),
838
+ CHECK (length(principal_id) > 0),
839
+ CHECK (length(wallet_id) > 0),
840
+ CHECK (length(enrollment_id) > 0),
841
+ CHECK (length(device_id) > 0),
842
+ CHECK (length(wallet_session_id) > 0),
843
+ CHECK (length(quota_id) > 0),
844
+ CHECK (length(key_manifest_digest_b64u) > 0),
845
+ CHECK (json_valid(permission_json)),
846
+ CHECK (revocation_epoch >= 0),
847
+ CHECK (lifecycle_kind IN ('active', 'revoked')),
848
+ CHECK (issued_at_ms > 0 AND expires_at_ms > issued_at_ms),
849
+ CHECK (
850
+ (lifecycle_kind = 'active' AND revoked_at_ms IS NULL)
851
+ OR (lifecycle_kind = 'revoked' AND revoked_at_ms IS NOT NULL AND revoked_at_ms >= issued_at_ms)
852
+ )
853
+ );
854
+
855
+ CREATE TABLE IF NOT EXISTS linked_device_wallet_session_quotas (
856
+ namespace TEXT NOT NULL,
857
+ org_id TEXT NOT NULL,
858
+ project_id TEXT NOT NULL,
859
+ env_id TEXT NOT NULL,
860
+ tenant_id TEXT NOT NULL,
861
+ quota_id TEXT NOT NULL,
862
+ authorization_id TEXT NOT NULL,
863
+ wallet_session_id TEXT NOT NULL,
864
+ principal_id TEXT NOT NULL,
865
+ remaining_uses INTEGER NOT NULL,
866
+ lifecycle_kind TEXT NOT NULL,
867
+ expires_at_ms INTEGER NOT NULL,
868
+ PRIMARY KEY (namespace, org_id, project_id, env_id, tenant_id, quota_id),
869
+ UNIQUE (namespace, org_id, project_id, env_id, tenant_id, wallet_session_id),
870
+ FOREIGN KEY (
871
+ namespace, org_id, project_id, env_id, tenant_id, authorization_id
872
+ ) REFERENCES linked_device_wallet_session_authorizations(
873
+ namespace, org_id, project_id, env_id, tenant_id, authorization_id
874
+ ),
875
+ CHECK (length(quota_id) > 0),
876
+ CHECK (length(authorization_id) > 0),
877
+ CHECK (length(wallet_session_id) > 0),
878
+ CHECK (length(principal_id) > 0),
879
+ CHECK (remaining_uses >= 0),
880
+ CHECK (lifecycle_kind IN ('active', 'exhausted', 'revoked')),
881
+ CHECK (
882
+ (remaining_uses > 0 AND lifecycle_kind = 'active')
883
+ OR (remaining_uses = 0 AND lifecycle_kind IN ('exhausted', 'revoked'))
884
+ ),
885
+ CHECK (expires_at_ms > 0)
886
+ );
887
+
888
+ INSERT OR IGNORE INTO lane_cas_guard (guard_id) VALUES (1);
889
+
890
+ CREATE INDEX IF NOT EXISTS authorized_operation_audit_fingerprint_idx
891
+ ON authorized_operation_audit_events(namespace, tenant_id, operation_fingerprint_digest);
892
+ CREATE INDEX IF NOT EXISTS authorized_operation_audit_linked_device_activity_idx
893
+ ON authorized_operation_audit_events(
894
+ namespace,
895
+ authorization_grant_kind,
896
+ linked_scope_org_id,
897
+ linked_scope_project_id,
898
+ linked_scope_env_id,
899
+ linked_wallet_id,
900
+ linked_enrollment_id,
901
+ linked_device_id
902
+ );
903
+ CREATE INDEX IF NOT EXISTS authorized_operation_audit_linked_device_activity_idx
904
+ ON authorized_operation_audit_events(
905
+ namespace,
906
+ authorization_grant_kind,
907
+ linked_scope_org_id,
908
+ linked_scope_project_id,
909
+ linked_scope_env_id,
910
+ linked_wallet_id,
911
+ linked_enrollment_id,
912
+ linked_device_id
913
+ );
914
+ CREATE INDEX IF NOT EXISTS authorized_operations_tenant_fingerprint_idx
915
+ ON authorized_operations(namespace, tenant_id, operation_fingerprint_digest);
916
+ CREATE INDEX IF NOT EXISTS authorized_operations_tenant_lifecycle_idx
917
+ ON authorized_operations(namespace, tenant_id, lifecycle_kind);
918
+ CREATE INDEX IF NOT EXISTS lane_enrollments_wallet_idx
919
+ ON lane_enrollments(namespace, org_id, project_id, env_id, wallet_id, updated_at_ms);
920
+ CREATE UNIQUE INDEX IF NOT EXISTS lane_product_epochs_one_active_idx
921
+ ON lane_product_epochs(namespace, org_id, project_id, env_id, wallet_key_id, lane_id)
922
+ WHERE state = 'active';
923
+ CREATE INDEX IF NOT EXISTS lane_product_epochs_wallet_active_idx
924
+ ON lane_product_epochs(namespace, org_id, project_id, env_id, wallet_id, state, updated_at_ms);
925
+ CREATE INDEX IF NOT EXISTS lane_protocol_operations_enrollment_idx
926
+ ON lane_protocol_operations(namespace, org_id, project_id, env_id, enrollment_id, operation_id);
927
+ CREATE UNIQUE INDEX IF NOT EXISTS linked_device_owner_planning_snapshots_operation_idx
928
+ ON linked_device_owner_planning_snapshots(
929
+ namespace, org_id, project_id, env_id, operation_id
930
+ );
931
+ CREATE INDEX IF NOT EXISTS linked_device_owner_planning_snapshots_wallet_idx
932
+ ON linked_device_owner_planning_snapshots(
933
+ namespace, org_id, project_id, env_id, wallet_id, expires_at_ms
934
+ );
935
+ CREATE INDEX IF NOT EXISTS linked_device_request_proof_nonces_expiry_idx
936
+ ON linked_device_request_proof_nonces(
937
+ namespace,
938
+ org_id,
939
+ project_id,
940
+ env_id,
941
+ expires_at_ms
942
+ );
943
+ CREATE INDEX IF NOT EXISTS linked_device_session_transcripts_digest_idx
944
+ ON linked_device_session_transcripts(
945
+ namespace,
946
+ org_id,
947
+ project_id,
948
+ env_id,
949
+ digest_b64u
950
+ );
951
+ CREATE INDEX IF NOT EXISTS linked_device_sessions_state_idx
952
+ ON linked_device_sessions(namespace, org_id, project_id, env_id, state, updated_at_ms);
953
+ CREATE UNIQUE INDEX IF NOT EXISTS linked_device_target_credentials_credential_idx
954
+ ON linked_device_target_credentials(
955
+ namespace,
956
+ org_id,
957
+ project_id,
958
+ env_id,
959
+ credential_id_b64u
960
+ )
961
+ WHERE credential_id_b64u IS NOT NULL;
962
+ CREATE INDEX IF NOT EXISTS linked_device_target_deployment_descriptors_wallet_idx
963
+ ON linked_device_target_deployment_descriptors(
964
+ namespace,
965
+ org_id,
966
+ project_id,
967
+ env_id,
968
+ expires_at_ms
969
+ );
970
+ CREATE INDEX IF NOT EXISTS linked_device_wallet_session_authorizations_identity_idx
971
+ ON linked_device_wallet_session_authorizations(
972
+ namespace, org_id, project_id, env_id, tenant_id, device_id, wallet_session_id
973
+ );
974
+ CREATE INDEX IF NOT EXISTS linked_device_wallet_session_quotas_identity_idx
975
+ ON linked_device_wallet_session_quotas(
976
+ namespace, org_id, project_id, env_id, tenant_id, authorization_id, wallet_session_id
977
+ );
978
+ CREATE INDEX IF NOT EXISTS webauthn_challenges_expiry_idx
979
+ ON webauthn_challenges (
980
+ namespace,
981
+ org_id,
982
+ project_id,
983
+ env_id,
984
+ challenge_kind,
985
+ expires_at_ms
986
+ );
987
+
988
+ CREATE TRIGGER IF NOT EXISTS authorized_operation_audit_claim
989
+ AFTER INSERT ON authorized_operations
990
+ WHEN NEW.lifecycle_kind = 'claimed'
991
+ BEGIN
992
+ INSERT INTO authorized_operation_audit_events (
993
+ namespace, tenant_id, audit_event_id, authorized_operation_id,
994
+ operation_fingerprint_digest, authorization_source_kind, authorization_id,
995
+ authorization_grant_kind, evidence_set_digest, quota_id, material_activation_id,
996
+ material_activation_capability, material_activation_owner,
997
+ material_activation_key_binding, material_activation_lifecycle_binding,
998
+ material_activation_signing_worker, linked_wallet_id, linked_enrollment_id,
999
+ linked_device_id, linked_wallet_key_id, linked_lane_id, linked_lane_share_epoch,
1000
+ linked_revocation_epoch, linked_scope_org_id, linked_scope_project_id,
1001
+ linked_scope_env_id, result_kind, claimed_at_ms, completed_at_ms
1002
+ ) VALUES (
1003
+ NEW.namespace, NEW.tenant_id, NEW.audit_event_id, NEW.authorized_operation_id,
1004
+ NEW.operation_fingerprint_digest, NEW.authorization_source_kind, NEW.authorization_id,
1005
+ NEW.authorization_grant_kind, NEW.evidence_set_digest, NEW.quota_id,
1006
+ NEW.material_activation_id, NEW.material_activation_capability,
1007
+ NEW.material_activation_owner, NEW.material_activation_key_binding,
1008
+ NEW.material_activation_lifecycle_binding, NEW.material_activation_signing_worker,
1009
+ NEW.linked_wallet_id, NEW.linked_enrollment_id, NEW.linked_device_id,
1010
+ NEW.linked_wallet_key_id, NEW.linked_lane_id, NEW.linked_lane_share_epoch,
1011
+ NEW.linked_revocation_epoch, NEW.linked_scope_org_id, NEW.linked_scope_project_id,
1012
+ NEW.linked_scope_env_id, NEW.result_kind, NEW.claimed_at_ms, NEW.completed_at_ms
1013
+ );
1014
+ END;
1015
+
1016
+ CREATE TRIGGER IF NOT EXISTS authorized_operation_audit_claim
1017
+ AFTER INSERT ON authorized_operations
1018
+ WHEN NEW.lifecycle_kind = 'claimed'
1019
+ BEGIN
1020
+ INSERT INTO authorized_operation_audit_events (
1021
+ namespace, tenant_id, audit_event_id, authorized_operation_id,
1022
+ operation_fingerprint_digest, authorization_source_kind, authorization_id,
1023
+ authorization_grant_kind, evidence_set_digest, quota_id, material_activation_id,
1024
+ material_activation_capability, material_activation_owner,
1025
+ material_activation_key_binding, material_activation_lifecycle_binding,
1026
+ material_activation_signing_worker, linked_wallet_id, linked_enrollment_id,
1027
+ linked_device_id, linked_wallet_key_id, linked_lane_id, linked_lane_share_epoch,
1028
+ linked_revocation_epoch, linked_scope_org_id, linked_scope_project_id,
1029
+ linked_scope_env_id, result_kind, claimed_at_ms, completed_at_ms
1030
+ ) VALUES (
1031
+ NEW.namespace, NEW.tenant_id, NEW.audit_event_id, NEW.authorized_operation_id,
1032
+ NEW.operation_fingerprint_digest, NEW.authorization_source_kind, NEW.authorization_id,
1033
+ NEW.authorization_grant_kind, NEW.evidence_set_digest, NEW.quota_id,
1034
+ NEW.material_activation_id, NEW.material_activation_capability,
1035
+ NEW.material_activation_owner, NEW.material_activation_key_binding,
1036
+ NEW.material_activation_lifecycle_binding, NEW.material_activation_signing_worker,
1037
+ NEW.linked_wallet_id, NEW.linked_enrollment_id, NEW.linked_device_id,
1038
+ NEW.linked_wallet_key_id, NEW.linked_lane_id, NEW.linked_lane_share_epoch,
1039
+ NEW.linked_revocation_epoch, NEW.linked_scope_org_id, NEW.linked_scope_project_id,
1040
+ NEW.linked_scope_env_id, NEW.result_kind, NEW.claimed_at_ms, NEW.completed_at_ms
1041
+ );
1042
+ END;
1043
+
1044
+ CREATE TRIGGER IF NOT EXISTS authorized_operation_audit_complete
1045
+ AFTER UPDATE OF lifecycle_kind ON authorized_operations
1046
+ WHEN OLD.lifecycle_kind = 'claimed' AND NEW.lifecycle_kind = 'completed'
1047
+ BEGIN
1048
+ UPDATE authorized_operation_audit_events
1049
+ SET result_kind = NEW.result_kind,
1050
+ completed_at_ms = NEW.completed_at_ms
1051
+ WHERE namespace = NEW.namespace
1052
+ AND tenant_id = NEW.tenant_id
1053
+ AND authorized_operation_id = NEW.authorized_operation_id;
1054
+
1055
+ SELECT CASE
1056
+ WHEN changes() != 1
1057
+ THEN RAISE(ABORT, 'authorized_operation_audit_completion_rejected')
1058
+ END;
1059
+ END;
1060
+
1061
+ CREATE TRIGGER IF NOT EXISTS authorized_operation_complete_atomic
1062
+ BEFORE UPDATE OF lifecycle_kind ON authorized_operations
1063
+ WHEN OLD.lifecycle_kind = 'completed' OR NEW.lifecycle_kind != 'completed'
1064
+ BEGIN
1065
+ SELECT RAISE(ABORT, 'authorized_operation_lifecycle_transition_rejected');
1066
+ END;
1067
+
1068
+ CREATE TRIGGER IF NOT EXISTS authorized_operation_grant_shape_guard
1069
+ BEFORE INSERT ON authorized_operations
1070
+ WHEN NEW.lifecycle_kind = 'claimed'
1071
+ AND (
1072
+ NEW.authorization_source_kind NOT IN ('authorization_grant', 'verified_step_up')
1073
+ OR (NEW.authorization_source_kind = 'authorization_grant'
1074
+ AND (NEW.authorization_grant_kind IS NULL OR NEW.authorization_grant_kind NOT IN (
1075
+ 'wallet_session_authorization',
1076
+ 'linked_device_wallet_session_authorization_v1'
1077
+ )))
1078
+ OR (NEW.authorization_source_kind = 'authorization_grant'
1079
+ AND NEW.authorization_grant_kind = 'linked_device_wallet_session_authorization_v1'
1080
+ AND (NEW.linked_scope_org_id IS NULL
1081
+ OR NEW.linked_scope_project_id IS NULL
1082
+ OR NEW.linked_scope_env_id IS NULL))
1083
+ OR (NEW.authorization_source_kind = 'verified_step_up'
1084
+ AND NEW.authorization_grant_kind IS NOT NULL)
1085
+ )
1086
+ BEGIN
1087
+ SELECT RAISE(ABORT, 'authorization_grant_kind_rejected');
1088
+ END;
1089
+
1090
+ CREATE TRIGGER IF NOT EXISTS authorized_operation_grant_shape_guard
1091
+ BEFORE INSERT ON authorized_operations
1092
+ WHEN NEW.lifecycle_kind = 'claimed'
1093
+ AND (
1094
+ NEW.authorization_source_kind NOT IN ('authorization_grant', 'verified_step_up')
1095
+ OR (NEW.authorization_source_kind = 'authorization_grant'
1096
+ AND (NEW.authorization_grant_kind IS NULL OR NEW.authorization_grant_kind NOT IN (
1097
+ 'wallet_session_authorization',
1098
+ 'linked_device_wallet_session_authorization_v1'
1099
+ )))
1100
+ OR (NEW.authorization_source_kind = 'authorization_grant'
1101
+ AND NEW.authorization_grant_kind = 'linked_device_wallet_session_authorization_v1'
1102
+ AND (NEW.linked_scope_org_id IS NULL
1103
+ OR NEW.linked_scope_project_id IS NULL
1104
+ OR NEW.linked_scope_env_id IS NULL))
1105
+ OR (NEW.authorization_source_kind = 'verified_step_up'
1106
+ AND NEW.authorization_grant_kind IS NOT NULL)
1107
+ )
1108
+ BEGIN
1109
+ SELECT RAISE(ABORT, 'authorization_grant_kind_rejected');
1110
+ END;
1111
+
1112
+ CREATE TRIGGER IF NOT EXISTS authorized_operation_linked_grant_claim_atomic
1113
+ AFTER INSERT ON authorized_operations
1114
+ WHEN NEW.lifecycle_kind = 'claimed'
1115
+ AND NEW.authorization_source_kind = 'authorization_grant'
1116
+ AND NEW.authorization_grant_kind = 'linked_device_wallet_session_authorization_v1'
1117
+ BEGIN
1118
+ SELECT CASE
1119
+ WHEN NEW.quota_kind != 'consume_reusable_wallet_session'
1120
+ OR NEW.capability_kind NOT IN ('near_ed25519_mpc_signing', 'evm_ecdsa_mpc_signing')
1121
+ OR NEW.operation_kind IN ('near.export_key', 'evm.export_key')
1122
+ OR NOT EXISTS (
1123
+ SELECT 1
1124
+ FROM linked_device_wallet_session_authorizations AS grant_record
1125
+ JOIN lane_enrollments AS enrollment
1126
+ ON enrollment.namespace = grant_record.namespace
1127
+ AND enrollment.org_id = grant_record.org_id
1128
+ AND enrollment.project_id = grant_record.project_id
1129
+ AND enrollment.env_id = grant_record.env_id
1130
+ AND enrollment.org_id = NEW.linked_scope_org_id
1131
+ AND enrollment.project_id = NEW.linked_scope_project_id
1132
+ AND enrollment.env_id = NEW.linked_scope_env_id
1133
+ AND enrollment.enrollment_id = grant_record.enrollment_id
1134
+ AND enrollment.wallet_id = grant_record.wallet_id
1135
+ AND json_extract(enrollment.lifecycle_json, '$.state') = 'active'
1136
+ AND json_extract(enrollment.lifecycle_json, '$.manifestDigestB64u') = grant_record.key_manifest_digest_b64u
1137
+ JOIN lane_product_epochs AS product
1138
+ ON product.namespace = grant_record.namespace
1139
+ AND product.org_id = grant_record.org_id
1140
+ AND product.project_id = grant_record.project_id
1141
+ AND product.env_id = grant_record.env_id
1142
+ AND product.org_id = NEW.linked_scope_org_id
1143
+ AND product.project_id = NEW.linked_scope_project_id
1144
+ AND product.env_id = NEW.linked_scope_env_id
1145
+ AND product.enrollment_id = grant_record.enrollment_id
1146
+ AND product.wallet_id = grant_record.wallet_id
1147
+ AND product.wallet_id = NEW.linked_wallet_id
1148
+ AND product.enrollment_id = NEW.linked_enrollment_id
1149
+ AND product.wallet_key_id = NEW.linked_wallet_key_id
1150
+ AND product.lane_id = NEW.linked_lane_id
1151
+ AND product.lane_share_epoch = NEW.linked_lane_share_epoch
1152
+ AND product.target_material_activation_id = NEW.material_activation_id
1153
+ AND product.revocation_epoch = NEW.linked_revocation_epoch
1154
+ AND product.state = 'active'
1155
+ AND product.lane_kind = 'linked_device'
1156
+ AND (
1157
+ (NEW.capability_kind = 'near_ed25519_mpc_signing' AND product.key_family = 'ed25519')
1158
+ OR (NEW.capability_kind = 'evm_ecdsa_mpc_signing' AND product.key_family = 'ecdsa_secp256k1')
1159
+ )
1160
+ AND json_extract(product.material_activation_json, '$.activationId') = NEW.material_activation_id
1161
+ AND json_extract(product.material_activation_json, '$.capability') = NEW.material_activation_capability
1162
+ AND json_extract(product.material_activation_json, '$.materialOwner') = NEW.material_activation_owner
1163
+ AND json_extract(product.material_activation_json, '$.keyBinding') = NEW.material_activation_key_binding
1164
+ AND json_extract(product.material_activation_json, '$.lifecycleBinding') = NEW.material_activation_lifecycle_binding
1165
+ AND json_extract(product.material_activation_json, '$.signingWorker') = NEW.material_activation_signing_worker
1166
+ JOIN lane_protocol_operations AS protocol
1167
+ ON protocol.namespace = product.namespace
1168
+ AND protocol.org_id = product.org_id
1169
+ AND protocol.project_id = product.project_id
1170
+ AND protocol.env_id = product.env_id
1171
+ AND protocol.org_id = NEW.linked_scope_org_id
1172
+ AND protocol.project_id = NEW.linked_scope_project_id
1173
+ AND protocol.env_id = NEW.linked_scope_env_id
1174
+ AND protocol.operation_id = product.operation_id
1175
+ AND protocol.enrollment_id = product.enrollment_id
1176
+ AND protocol.enrollment_id = NEW.linked_enrollment_id
1177
+ AND protocol.wallet_id = NEW.linked_wallet_id
1178
+ AND protocol.wallet_key_id = NEW.linked_wallet_key_id
1179
+ AND protocol.target_lane_id = NEW.linked_lane_id
1180
+ AND protocol.target_lane_share_epoch = NEW.linked_lane_share_epoch
1181
+ AND protocol.target_material_activation_id = product.target_material_activation_id
1182
+ AND protocol.target_material_activation_id = NEW.material_activation_id
1183
+ AND json_extract(protocol.lifecycle_json, '$.state') = 'active'
1184
+ WHERE grant_record.namespace = NEW.namespace
1185
+ AND grant_record.org_id = NEW.linked_scope_org_id
1186
+ AND grant_record.project_id = NEW.linked_scope_project_id
1187
+ AND grant_record.env_id = NEW.linked_scope_env_id
1188
+ AND grant_record.org_id = product.org_id
1189
+ AND grant_record.project_id = product.project_id
1190
+ AND grant_record.env_id = product.env_id
1191
+ AND grant_record.tenant_id = NEW.tenant_id
1192
+ AND grant_record.authorization_id = NEW.authorization_id
1193
+ AND grant_record.principal_id = NEW.principal_id
1194
+ AND grant_record.quota_id = NEW.quota_id
1195
+ AND grant_record.wallet_id = NEW.linked_wallet_id
1196
+ AND grant_record.enrollment_id = NEW.linked_enrollment_id
1197
+ AND grant_record.device_id = NEW.linked_device_id
1198
+ AND grant_record.lifecycle_kind = 'active'
1199
+ AND grant_record.expires_at_ms > NEW.claimed_at_ms
1200
+ AND json_extract(grant_record.permission_json, '$.kind') = 'owner_equivalent_signing'
1201
+ AND json_extract(grant_record.permission_json, '$.administrationScope') = 'signing_only'
1202
+ AND json_extract(grant_record.permission_json, '$.localUserPresence') = 'required'
1203
+ )
1204
+ THEN RAISE(ABORT, 'authorization_linked_device_rejected')
1205
+ END;
1206
+
1207
+ UPDATE linked_device_wallet_session_quotas
1208
+ SET remaining_uses = remaining_uses - 1,
1209
+ lifecycle_kind = CASE WHEN remaining_uses = 1 THEN 'exhausted' ELSE 'active' END
1210
+ WHERE NEW.quota_kind = 'consume_reusable_wallet_session'
1211
+ AND namespace = NEW.namespace
1212
+ AND org_id = NEW.linked_scope_org_id
1213
+ AND project_id = NEW.linked_scope_project_id
1214
+ AND env_id = NEW.linked_scope_env_id
1215
+ AND tenant_id = NEW.tenant_id
1216
+ AND quota_id = NEW.quota_id
1217
+ AND authorization_id = NEW.authorization_id
1218
+ AND principal_id = NEW.principal_id
1219
+ AND lifecycle_kind = 'active'
1220
+ AND remaining_uses > 0
1221
+ AND expires_at_ms > NEW.claimed_at_ms;
1222
+
1223
+ SELECT CASE
1224
+ WHEN NEW.quota_kind = 'consume_reusable_wallet_session' AND changes() != 1
1225
+ THEN RAISE(ABORT, 'authorization_wallet_session_quota_rejected')
1226
+ END;
1227
+ END;
1228
+
1229
+ CREATE TRIGGER IF NOT EXISTS authorized_operation_linked_grant_claim_atomic
1230
+ AFTER INSERT ON authorized_operations
1231
+ WHEN NEW.lifecycle_kind = 'claimed'
1232
+ AND NEW.authorization_source_kind = 'authorization_grant'
1233
+ AND NEW.authorization_grant_kind = 'linked_device_wallet_session_authorization_v1'
1234
+ BEGIN
1235
+ SELECT CASE
1236
+ WHEN NEW.quota_kind != 'consume_reusable_wallet_session'
1237
+ OR NEW.capability_kind NOT IN ('near_ed25519_mpc_signing', 'evm_ecdsa_mpc_signing')
1238
+ OR NEW.operation_kind IN ('near.export_key', 'evm.export_key')
1239
+ OR NOT EXISTS (
1240
+ SELECT 1
1241
+ FROM linked_device_wallet_session_authorizations AS grant_record
1242
+ JOIN lane_enrollments AS enrollment
1243
+ ON enrollment.namespace = grant_record.namespace
1244
+ AND enrollment.org_id = grant_record.org_id
1245
+ AND enrollment.project_id = grant_record.project_id
1246
+ AND enrollment.env_id = grant_record.env_id
1247
+ AND enrollment.org_id = NEW.linked_scope_org_id
1248
+ AND enrollment.project_id = NEW.linked_scope_project_id
1249
+ AND enrollment.env_id = NEW.linked_scope_env_id
1250
+ AND enrollment.enrollment_id = grant_record.enrollment_id
1251
+ AND enrollment.wallet_id = grant_record.wallet_id
1252
+ AND json_extract(enrollment.lifecycle_json, '$.state') = 'active'
1253
+ AND json_extract(enrollment.lifecycle_json, '$.manifestDigestB64u') = grant_record.key_manifest_digest_b64u
1254
+ JOIN lane_product_epochs AS product
1255
+ ON product.namespace = grant_record.namespace
1256
+ AND product.org_id = grant_record.org_id
1257
+ AND product.project_id = grant_record.project_id
1258
+ AND product.env_id = grant_record.env_id
1259
+ AND product.org_id = NEW.linked_scope_org_id
1260
+ AND product.project_id = NEW.linked_scope_project_id
1261
+ AND product.env_id = NEW.linked_scope_env_id
1262
+ AND product.enrollment_id = grant_record.enrollment_id
1263
+ AND product.wallet_id = grant_record.wallet_id
1264
+ AND product.wallet_id = NEW.linked_wallet_id
1265
+ AND product.enrollment_id = NEW.linked_enrollment_id
1266
+ AND product.wallet_key_id = NEW.linked_wallet_key_id
1267
+ AND product.lane_id = NEW.linked_lane_id
1268
+ AND product.lane_share_epoch = NEW.linked_lane_share_epoch
1269
+ AND product.target_material_activation_id = NEW.material_activation_id
1270
+ AND product.revocation_epoch = NEW.linked_revocation_epoch
1271
+ AND product.state = 'active'
1272
+ AND product.lane_kind = 'linked_device'
1273
+ AND (
1274
+ (NEW.capability_kind = 'near_ed25519_mpc_signing' AND product.key_family = 'ed25519')
1275
+ OR (NEW.capability_kind = 'evm_ecdsa_mpc_signing' AND product.key_family = 'ecdsa_secp256k1')
1276
+ )
1277
+ AND json_extract(product.material_activation_json, '$.activationId') = NEW.material_activation_id
1278
+ AND json_extract(product.material_activation_json, '$.capability') = NEW.material_activation_capability
1279
+ AND json_extract(product.material_activation_json, '$.materialOwner') = NEW.material_activation_owner
1280
+ AND json_extract(product.material_activation_json, '$.keyBinding') = NEW.material_activation_key_binding
1281
+ AND json_extract(product.material_activation_json, '$.lifecycleBinding') = NEW.material_activation_lifecycle_binding
1282
+ AND json_extract(product.material_activation_json, '$.signingWorker') = NEW.material_activation_signing_worker
1283
+ JOIN lane_protocol_operations AS protocol
1284
+ ON protocol.namespace = product.namespace
1285
+ AND protocol.org_id = product.org_id
1286
+ AND protocol.project_id = product.project_id
1287
+ AND protocol.env_id = product.env_id
1288
+ AND protocol.org_id = NEW.linked_scope_org_id
1289
+ AND protocol.project_id = NEW.linked_scope_project_id
1290
+ AND protocol.env_id = NEW.linked_scope_env_id
1291
+ AND protocol.operation_id = product.operation_id
1292
+ AND protocol.enrollment_id = product.enrollment_id
1293
+ AND protocol.enrollment_id = NEW.linked_enrollment_id
1294
+ AND protocol.wallet_id = NEW.linked_wallet_id
1295
+ AND protocol.wallet_key_id = NEW.linked_wallet_key_id
1296
+ AND protocol.target_lane_id = NEW.linked_lane_id
1297
+ AND protocol.target_lane_share_epoch = NEW.linked_lane_share_epoch
1298
+ AND protocol.target_material_activation_id = product.target_material_activation_id
1299
+ AND protocol.target_material_activation_id = NEW.material_activation_id
1300
+ AND json_extract(protocol.lifecycle_json, '$.state') = 'active'
1301
+ WHERE grant_record.namespace = NEW.namespace
1302
+ AND grant_record.org_id = NEW.linked_scope_org_id
1303
+ AND grant_record.project_id = NEW.linked_scope_project_id
1304
+ AND grant_record.env_id = NEW.linked_scope_env_id
1305
+ AND grant_record.org_id = product.org_id
1306
+ AND grant_record.project_id = product.project_id
1307
+ AND grant_record.env_id = product.env_id
1308
+ AND grant_record.tenant_id = NEW.tenant_id
1309
+ AND grant_record.authorization_id = NEW.authorization_id
1310
+ AND grant_record.principal_id = NEW.principal_id
1311
+ AND grant_record.quota_id = NEW.quota_id
1312
+ AND grant_record.wallet_id = NEW.linked_wallet_id
1313
+ AND grant_record.enrollment_id = NEW.linked_enrollment_id
1314
+ AND grant_record.device_id = NEW.linked_device_id
1315
+ AND grant_record.lifecycle_kind = 'active'
1316
+ AND grant_record.expires_at_ms > NEW.claimed_at_ms
1317
+ AND json_extract(grant_record.permission_json, '$.kind') = 'owner_equivalent_signing'
1318
+ AND json_extract(grant_record.permission_json, '$.administrationScope') = 'signing_only'
1319
+ AND json_extract(grant_record.permission_json, '$.localUserPresence') = 'required'
1320
+ )
1321
+ THEN RAISE(ABORT, 'authorization_linked_device_rejected')
1322
+ END;
1323
+
1324
+ UPDATE linked_device_wallet_session_quotas
1325
+ SET remaining_uses = remaining_uses - 1,
1326
+ lifecycle_kind = CASE WHEN remaining_uses = 1 THEN 'exhausted' ELSE 'active' END
1327
+ WHERE NEW.quota_kind = 'consume_reusable_wallet_session'
1328
+ AND namespace = NEW.namespace
1329
+ AND org_id = NEW.linked_scope_org_id
1330
+ AND project_id = NEW.linked_scope_project_id
1331
+ AND env_id = NEW.linked_scope_env_id
1332
+ AND tenant_id = NEW.tenant_id
1333
+ AND quota_id = NEW.quota_id
1334
+ AND authorization_id = NEW.authorization_id
1335
+ AND principal_id = NEW.principal_id
1336
+ AND lifecycle_kind = 'active'
1337
+ AND remaining_uses > 0
1338
+ AND expires_at_ms > NEW.claimed_at_ms;
1339
+
1340
+ SELECT CASE
1341
+ WHEN NEW.quota_kind = 'consume_reusable_wallet_session' AND changes() != 1
1342
+ THEN RAISE(ABORT, 'authorization_wallet_session_quota_rejected')
1343
+ END;
1344
+ END;
1345
+
1346
+ CREATE TRIGGER IF NOT EXISTS authorized_operation_owner_grant_claim_atomic
1347
+ AFTER INSERT ON authorized_operations
1348
+ WHEN NEW.lifecycle_kind = 'claimed'
1349
+ AND NEW.authorization_source_kind = 'authorization_grant'
1350
+ AND NEW.authorization_grant_kind = 'wallet_session_authorization'
1351
+ BEGIN
1352
+ SELECT CASE
1353
+ WHEN NOT EXISTS (
1354
+ SELECT 1
1355
+ FROM reusable_wallet_sessions AS session
1356
+ WHERE session.namespace = NEW.namespace
1357
+ AND session.tenant_id = NEW.tenant_id
1358
+ AND session.authorization_id = NEW.authorization_id
1359
+ AND session.principal_id = NEW.principal_id
1360
+ AND (NEW.quota_kind = 'quota_neutral' OR session.quota_id = NEW.quota_id)
1361
+ AND session.lifecycle_kind = 'active'
1362
+ AND session.expires_at_ms > NEW.claimed_at_ms
1363
+ )
1364
+ THEN RAISE(ABORT, 'authorization_wallet_session_rejected')
1365
+ END;
1366
+
1367
+ UPDATE authorization_wallet_session_quotas
1368
+ SET remaining_uses = remaining_uses - 1,
1369
+ lifecycle_kind = CASE WHEN remaining_uses = 1 THEN 'exhausted' ELSE 'active' END
1370
+ WHERE NEW.quota_kind = 'consume_reusable_wallet_session'
1371
+ AND namespace = NEW.namespace
1372
+ AND tenant_id = NEW.tenant_id
1373
+ AND quota_id = NEW.quota_id
1374
+ AND wallet_session_id = (
1375
+ SELECT session.wallet_session_id
1376
+ FROM reusable_wallet_sessions AS session
1377
+ WHERE session.namespace = NEW.namespace
1378
+ AND session.tenant_id = NEW.tenant_id
1379
+ AND session.authorization_id = NEW.authorization_id
1380
+ AND session.quota_id = NEW.quota_id
1381
+ )
1382
+ AND principal_id = NEW.principal_id
1383
+ AND lifecycle_kind = 'active'
1384
+ AND remaining_uses > 0
1385
+ AND expires_at_ms > NEW.claimed_at_ms;
1386
+
1387
+ SELECT CASE
1388
+ WHEN NEW.quota_kind = 'consume_reusable_wallet_session' AND changes() != 1
1389
+ THEN RAISE(ABORT, 'authorization_wallet_session_quota_rejected')
1390
+ END;
1391
+ END;
1392
+
1393
+ CREATE TRIGGER IF NOT EXISTS authorized_operation_owner_grant_claim_atomic
1394
+ AFTER INSERT ON authorized_operations
1395
+ WHEN NEW.lifecycle_kind = 'claimed'
1396
+ AND NEW.authorization_source_kind = 'authorization_grant'
1397
+ AND NEW.authorization_grant_kind = 'wallet_session_authorization'
1398
+ BEGIN
1399
+ SELECT CASE
1400
+ WHEN NOT EXISTS (
1401
+ SELECT 1
1402
+ FROM reusable_wallet_sessions AS session
1403
+ WHERE session.namespace = NEW.namespace
1404
+ AND session.tenant_id = NEW.tenant_id
1405
+ AND session.authorization_id = NEW.authorization_id
1406
+ AND session.principal_id = NEW.principal_id
1407
+ AND (NEW.quota_kind = 'quota_neutral' OR session.quota_id = NEW.quota_id)
1408
+ AND session.lifecycle_kind = 'active'
1409
+ AND session.expires_at_ms > NEW.claimed_at_ms
1410
+ )
1411
+ THEN RAISE(ABORT, 'authorization_wallet_session_rejected')
1412
+ END;
1413
+
1414
+ UPDATE authorization_wallet_session_quotas
1415
+ SET remaining_uses = remaining_uses - 1,
1416
+ lifecycle_kind = CASE WHEN remaining_uses = 1 THEN 'exhausted' ELSE 'active' END
1417
+ WHERE NEW.quota_kind = 'consume_reusable_wallet_session'
1418
+ AND namespace = NEW.namespace
1419
+ AND tenant_id = NEW.tenant_id
1420
+ AND quota_id = NEW.quota_id
1421
+ AND wallet_session_id = (
1422
+ SELECT session.wallet_session_id
1423
+ FROM reusable_wallet_sessions AS session
1424
+ WHERE session.namespace = NEW.namespace
1425
+ AND session.tenant_id = NEW.tenant_id
1426
+ AND session.authorization_id = NEW.authorization_id
1427
+ AND session.quota_id = NEW.quota_id
1428
+ )
1429
+ AND principal_id = NEW.principal_id
1430
+ AND lifecycle_kind = 'active'
1431
+ AND remaining_uses > 0
1432
+ AND expires_at_ms > NEW.claimed_at_ms;
1433
+
1434
+ SELECT CASE
1435
+ WHEN NEW.quota_kind = 'consume_reusable_wallet_session' AND changes() != 1
1436
+ THEN RAISE(ABORT, 'authorization_wallet_session_quota_rejected')
1437
+ END;
1438
+ END;
1439
+
1440
+ CREATE TRIGGER IF NOT EXISTS authorized_operation_step_up_claim_atomic
1441
+ AFTER INSERT ON authorized_operations
1442
+ WHEN NEW.lifecycle_kind = 'claimed'
1443
+ AND NEW.authorization_source_kind = 'verified_step_up'
1444
+ BEGIN
1445
+ SELECT CASE
1446
+ WHEN NOT EXISTS (
1447
+ SELECT 1
1448
+ FROM verified_grant_evidence_sets AS evidence
1449
+ JOIN authorization_sessions AS session
1450
+ ON session.namespace = evidence.namespace
1451
+ AND session.tenant_id = evidence.tenant_id
1452
+ AND session.session_id = evidence.session_id
1453
+ AND session.principal_id = evidence.principal_id
1454
+ WHERE evidence.namespace = NEW.namespace
1455
+ AND evidence.tenant_id = NEW.tenant_id
1456
+ AND evidence.evidence_set_digest = NEW.evidence_set_digest
1457
+ AND evidence.principal_id = NEW.principal_id
1458
+ AND evidence.capability_kind = NEW.capability_kind
1459
+ AND evidence.operation_kind = NEW.operation_kind
1460
+ AND evidence.lane_digest = NEW.lane_digest
1461
+ AND evidence.intent_digest = NEW.intent_digest
1462
+ AND evidence.display_digest = NEW.display_digest
1463
+ AND evidence.assurance = 'step_up'
1464
+ AND evidence.expires_at_ms > NEW.claimed_at_ms
1465
+ AND session.lifecycle_kind = 'active'
1466
+ AND session.expires_at_ms > NEW.claimed_at_ms
1467
+ )
1468
+ THEN RAISE(ABORT, 'authorization_evidence_claim_rejected')
1469
+ END;
1470
+ END;
1471
+
1472
+ CREATE TRIGGER IF NOT EXISTS authorized_operation_step_up_claim_atomic
1473
+ AFTER INSERT ON authorized_operations
1474
+ WHEN NEW.lifecycle_kind = 'claimed'
1475
+ AND NEW.authorization_source_kind = 'verified_step_up'
1476
+ BEGIN
1477
+ SELECT CASE
1478
+ WHEN NOT EXISTS (
1479
+ SELECT 1
1480
+ FROM verified_grant_evidence_sets AS evidence
1481
+ JOIN authorization_sessions AS session
1482
+ ON session.namespace = evidence.namespace
1483
+ AND session.tenant_id = evidence.tenant_id
1484
+ AND session.session_id = evidence.session_id
1485
+ AND session.principal_id = evidence.principal_id
1486
+ WHERE evidence.namespace = NEW.namespace
1487
+ AND evidence.tenant_id = NEW.tenant_id
1488
+ AND evidence.evidence_set_digest = NEW.evidence_set_digest
1489
+ AND evidence.principal_id = NEW.principal_id
1490
+ AND evidence.capability_kind = NEW.capability_kind
1491
+ AND evidence.operation_kind = NEW.operation_kind
1492
+ AND evidence.lane_digest = NEW.lane_digest
1493
+ AND evidence.intent_digest = NEW.intent_digest
1494
+ AND evidence.display_digest = NEW.display_digest
1495
+ AND evidence.assurance = 'step_up'
1496
+ AND evidence.expires_at_ms > NEW.claimed_at_ms
1497
+ AND session.lifecycle_kind = 'active'
1498
+ AND session.expires_at_ms > NEW.claimed_at_ms
1499
+ )
1500
+ THEN RAISE(ABORT, 'authorization_evidence_claim_rejected')
1501
+ END;
1502
+ END;
1503
+
1504
+ CREATE TRIGGER IF NOT EXISTS lane_cas_guard_no_delete
1505
+ BEFORE DELETE ON lane_cas_guard
1506
+ BEGIN
1507
+ SELECT RAISE(ABORT, 'lane_cas_guard is immutable');
1508
+ END;
1509
+
1510
+ CREATE TRIGGER IF NOT EXISTS linked_device_wallet_session_authorization_identity_insert
1511
+ BEFORE INSERT ON linked_device_wallet_session_authorizations
1512
+ WHEN NEW.principal_id != 'linked-device:' || NEW.device_id
1513
+ OR NEW.wallet_session_id = NEW.authorization_id
1514
+ OR NEW.wallet_session_id = NEW.quota_id
1515
+ OR NEW.authorization_id = NEW.quota_id
1516
+ OR json_extract(NEW.permission_json, '$.kind') IS NOT 'owner_equivalent_signing'
1517
+ OR json_extract(NEW.permission_json, '$.administrationScope') IS NOT 'signing_only'
1518
+ OR json_extract(NEW.permission_json, '$.localUserPresence') IS NOT 'required'
1519
+ BEGIN
1520
+ SELECT RAISE(ABORT, 'linked_device_wallet_session_authorization_identity_rejected');
1521
+ END;
1522
+
1523
+ CREATE TRIGGER IF NOT EXISTS linked_device_wallet_session_authorization_identity_update
1524
+ BEFORE UPDATE OF principal_id, device_id, authorization_id, wallet_session_id, quota_id, permission_json
1525
+ ON linked_device_wallet_session_authorizations
1526
+ WHEN NEW.principal_id != 'linked-device:' || NEW.device_id
1527
+ OR NEW.wallet_session_id = NEW.authorization_id
1528
+ OR NEW.wallet_session_id = NEW.quota_id
1529
+ OR NEW.authorization_id = NEW.quota_id
1530
+ OR json_extract(NEW.permission_json, '$.kind') IS NOT 'owner_equivalent_signing'
1531
+ OR json_extract(NEW.permission_json, '$.administrationScope') IS NOT 'signing_only'
1532
+ OR json_extract(NEW.permission_json, '$.localUserPresence') IS NOT 'required'
1533
+ BEGIN
1534
+ SELECT RAISE(ABORT, 'linked_device_wallet_session_authorization_identity_rejected');
1535
+ END;
1536
+
1537
+ CREATE TRIGGER IF NOT EXISTS linked_device_wallet_session_authorization_revoke_atomic
1538
+ AFTER UPDATE OF lifecycle_kind ON linked_device_wallet_session_authorizations
1539
+ WHEN OLD.lifecycle_kind = 'active' AND NEW.lifecycle_kind = 'revoked'
1540
+ BEGIN
1541
+ UPDATE linked_device_wallet_session_quotas
1542
+ SET remaining_uses = 0,
1543
+ lifecycle_kind = 'revoked'
1544
+ WHERE namespace = NEW.namespace
1545
+ AND org_id = NEW.org_id
1546
+ AND project_id = NEW.project_id
1547
+ AND env_id = NEW.env_id
1548
+ AND tenant_id = NEW.tenant_id
1549
+ AND authorization_id = NEW.authorization_id
1550
+ AND quota_id = NEW.quota_id
1551
+ AND lifecycle_kind != 'revoked';
1552
+
1553
+ SELECT CASE
1554
+ WHEN changes() != 1
1555
+ THEN RAISE(ABORT, 'linked_device_wallet_session_quota_revoke_rejected')
1556
+ END;
1557
+ END;
1558
+
1559
+ CREATE TRIGGER IF NOT EXISTS linked_device_wallet_session_quota_revoke_guard
1560
+ BEFORE UPDATE OF lifecycle_kind, remaining_uses ON linked_device_wallet_session_quotas
1561
+ WHEN NEW.lifecycle_kind = 'revoked'
1562
+ AND NOT EXISTS (
1563
+ SELECT 1
1564
+ FROM linked_device_wallet_session_authorizations AS authorization
1565
+ WHERE authorization.namespace = NEW.namespace
1566
+ AND authorization.org_id = NEW.org_id
1567
+ AND authorization.project_id = NEW.project_id
1568
+ AND authorization.env_id = NEW.env_id
1569
+ AND authorization.tenant_id = NEW.tenant_id
1570
+ AND authorization.authorization_id = NEW.authorization_id
1571
+ AND authorization.quota_id = NEW.quota_id
1572
+ AND authorization.lifecycle_kind = 'revoked'
1573
+ )
1574
+ BEGIN
1575
+ SELECT RAISE(ABORT, 'linked_device_wallet_session_quota_revoke_rejected');
1576
+ END;