@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,1321 @@
1
+ import { parseEmailOtpChallengeId, parseOrgId, parseProviderSubject, parseWalletId, parseWebAuthnCredentialIdB64u } from "../../../../shared-ts/src/utils/domainIds.js";
2
+ import { buildAuthorizationGrantRef, buildNearEd25519MpcOperationRef, parseAuthFactorId, parseAuthorizationAuditEventId, parseAuthorizationEvidenceId, parseAuthorizationEvidenceSetId, parseAuthorizedOperationId, parseCapabilityId, parseCapabilityOperationId, parsePrincipalId } from "../../../../shared-ts/src/authorization/capabilityKinds.js";
3
+ import { base64UrlEncode } from "../../../../shared-ts/src/utils/base64.js";
4
+ import { parseDigestB64u } from "../../../../shared-ts/src/utils/canonicalPrimitives.js";
5
+ import { alphabetizeStringify, sha256BytesUtf8 } from "../../../../shared-ts/src/utils/digests.js";
6
+ import { buildCapabilityOperationEnvelope, computeCapabilityOperationFingerprintDigest, parseCapabilityOperationFingerprintDigest, parseSigningOperationFingerprintDigest } from "../../../../shared-ts/src/authorization/operationFingerprint.js";
7
+ import "../../../../shared-ts/src/utils/encoders.js";
8
+ import { walletIdFromString } from "../../../../shared-ts/src/utils/registrationIntent.js";
9
+ import { sameRouterAbMpcMaterialActivationRef } from "../../../../shared-ts/src/utils/routerAbNormalSigningIdentity.js";
10
+ import { isPlainObject } from "../../../../shared-ts/src/utils/validation.js";
11
+ import { isPasskeyWalletAuthAuthority, walletAuthAuthorityRef } from "../../../../shared-ts/src/utils/walletAuthAuthority.js";
12
+ import { authorizedOperationReplayBodyInit, parseSessionOrigin, parseVerifiedOwnerProofId } from "../../../../authorization/domain.js";
13
+ import { buildVerifiedWalletOperationEmailOtpFactorResult, buildVerifiedWalletOperationPasskeyFactorResult, buildVerifiedWalletSessionPasskeyFactorResult } from "../../../../authorization/factorEvidence.js";
14
+ import { ROUTER_AB_ED25519_NORMAL_SIGNING_PATH, ROUTER_AB_ED25519_NORMAL_SIGNING_PREPARE_PATH, ROUTER_AB_ED25519_WALLET_SESSION_PATH } from "../../../../shared-ts/src/utils/signingSessionSeal.js";
15
+ import { normalizeCorsOrigin } from "../../../../core/SessionService.js";
16
+ import { json, readJson } from "../../../framework/http.js";
17
+ import { resolveThresholdRuntimePolicyScope } from "../../../auth/commonRouterUtils.js";
18
+ import { EMAIL_OTP_CHANNEL, WALLET_EMAIL_OTP_TRANSACTION_SIGN_OPERATION } from "../../../../shared-ts/src/utils/emailOtpDomain.js";
19
+ import { emailOtpStatusCode, hashEmailOtpOperationBinding } from "../../../domains/emailOtp/emailOtpSessionRouteHelpers.js";
20
+ import { thresholdEd25519StatusCode } from "../../../../threshold/statusCodes.js";
21
+ import { parseEd25519ReusableAuthorizedOperationReceipt, parseEd25519VerifiedStepUpAuthorizedOperationReceipt, requireEd25519OperationKind } from "../../../domains/signingOperations/ed25519AuthorizedOperationReceipt.js";
22
+ import { authenticateRouterAbWalletOperationStepUpIdentity, authorizeRouterAbEd25519NormalSigningRoute, buildRouterAbEd25519OwnerOperationStepUpPreparation, buildRouterAbEd25519PrivateSigningWorkerBody, decideRouterAbEd25519OwnerOperationAuthorization, parseRouterAbEd25519OperationStepUpScope, parseRouterAbOperationStepUpOperation, routerAbEd25519OwnerOperationFailureResult } from "../../../domains/signingOperations/routerAbPrivateSigningWorker.js";
23
+ import { proxyNormalSigningRequestToMpcRouter, proxyOwnerLaneAdmittedNormalSigningRequest } from "./normalSigningRouterProxy.js";
24
+ import { sealEmailOtpFactorSecretForWorker } from "../../../domains/emailOtp/emailOtpRouteHandlers.js";
25
+ import { parseThresholdEd25519OperationStepUpGrantRequest, parseThresholdEd25519SessionRouteRequest } from "../../../domains/ed25519Yao/session/thresholdEd25519RequestValidation.js";
26
+ //#region src/router/transport/fetch/routes/thresholdEd25519.ts
27
+ async function resolveActiveEd25519OperationStepUpAuthority(walletAuthMethods, proof) {
28
+ switch (proof.kind) {
29
+ case "passkey": {
30
+ const verified = await walletAuthMethods.verifyActivePasskeyAuthority(proof.authority);
31
+ return verified.ok ? {
32
+ ok: true,
33
+ authority: proof.authority
34
+ } : verified;
35
+ }
36
+ case "email_otp": return await walletAuthMethods.resolveActiveEmailOtpAuthorityForVerifiedMethod({
37
+ walletId: proof.authorityRef.walletId,
38
+ walletAuthMethodId: proof.authorityRef.walletAuthMethodId,
39
+ providerUserId: proof.providerSubjectId
40
+ });
41
+ default: throw new Error("Unsupported Ed25519 operation step-up proof");
42
+ }
43
+ }
44
+ function ed25519ReusableWalletSession(authorization) {
45
+ return authorization.kind === "wallet_session_operation_credential_v1" ? authorization.validated.admission.context.authorization.session : authorization.candidate.status.session;
46
+ }
47
+ function ed25519ReusableWalletSessionIdentity(authorization) {
48
+ const session = ed25519ReusableWalletSession(authorization);
49
+ return {
50
+ tenantId: session.tenantId,
51
+ principalId: session.principalId,
52
+ walletSessionId: session.walletSessionId,
53
+ authorizationId: session.authorizationId,
54
+ quotaId: session.quotaId
55
+ };
56
+ }
57
+ function buildEd25519GatewayOwnerWalletSessionBinding(authorization) {
58
+ const session = ed25519ReusableWalletSession(authorization);
59
+ const runtimePolicyScope = authorization.activeMaterial.runtimePolicyScope;
60
+ return {
61
+ kind: "gateway_owner_wallet_session",
62
+ subjectId: String(session.principalId),
63
+ accountId: String(session.walletId),
64
+ authorizationId: String(session.authorizationId),
65
+ walletSessionId: String(session.walletSessionId),
66
+ quotaId: String(session.quotaId),
67
+ thresholdSessionId: authorization.activeMaterial.exportIdentity.scope.threshold_session_id,
68
+ orgId: runtimePolicyScope.orgId,
69
+ projectId: runtimePolicyScope.projectId,
70
+ environment: runtimePolicyScope.envId,
71
+ signingWorkerId: authorization.activeMaterial.signingWorkerId,
72
+ expiresAtMs: session.expiresAtMs
73
+ };
74
+ }
75
+ function buildRouterAbEd25519AuthorizedOperationWire(input) {
76
+ const operation = input.operation;
77
+ const operationRef = operation.operation.operation;
78
+ if (operationRef.capabilityKind !== "near_ed25519_mpc_signing") throw new Error("Ed25519 authorized operation capability is invalid");
79
+ const operationKind = requireEd25519OperationKind(operationRef.operationKind);
80
+ const commonAuthorizedOperation = {
81
+ authorized_operation_id: operation.authorizedOperationId,
82
+ operation_id: operation.operation.operationId,
83
+ capability_kind: "near_ed25519_mpc_signing",
84
+ operation_kind: operationKind,
85
+ lane_digest_b64u: operation.operation.digests.laneDigest,
86
+ intent_digest_b64u: operation.operation.digests.intentDigest,
87
+ display_digest_b64u: operation.operation.digests.displayDigest,
88
+ operation_fingerprint_digest: operation.operationFingerprintDigest
89
+ };
90
+ switch (input.binding.kind) {
91
+ case "reusable_wallet_session":
92
+ if (operation.authorization.kind !== "authorization_grant" || operation.quota.kind !== "consume_reusable_wallet_session") throw new Error("Reusable Wallet Session authorized operation is invalid");
93
+ return {
94
+ binding: {
95
+ kind: "reusable_wallet_session",
96
+ authorization_id: operation.authorization.authorizationGrantRef.authorizationId,
97
+ wallet_session_id: input.binding.walletSessionId,
98
+ quota_id: input.binding.quotaId
99
+ },
100
+ authorized_operation: {
101
+ kind: "reusable_wallet_session_authorized_operation_v1",
102
+ ...commonAuthorizedOperation
103
+ }
104
+ };
105
+ case "gateway_owner_wallet_session":
106
+ if (operation.authorization.kind !== "authorization_grant" || operation.quota.kind !== "consume_reusable_wallet_session") throw new Error("Gateway owner Wallet Session authorized operation is invalid");
107
+ return {
108
+ binding: {
109
+ kind: "gateway_owner_wallet_session",
110
+ subject_id: input.binding.subjectId,
111
+ account_id: input.binding.accountId,
112
+ authorization_id: input.binding.authorizationId,
113
+ wallet_session_id: input.binding.walletSessionId,
114
+ quota_id: input.binding.quotaId,
115
+ threshold_session_id: input.binding.thresholdSessionId,
116
+ org_id: input.binding.orgId,
117
+ project_id: input.binding.projectId,
118
+ environment: input.binding.environment,
119
+ signing_worker_id: input.binding.signingWorkerId,
120
+ expires_at_ms: input.binding.expiresAtMs
121
+ },
122
+ authorized_operation: {
123
+ kind: "reusable_wallet_session_authorized_operation_v1",
124
+ ...commonAuthorizedOperation
125
+ }
126
+ };
127
+ case "operation_step_up":
128
+ if (operation.authorization.kind !== "verified_step_up" || operation.quota.kind !== "quota_neutral") throw new Error("Verified step-up authorized operation is invalid");
129
+ return {
130
+ binding: {
131
+ kind: "operation_step_up",
132
+ authorization_session_id: input.binding.authorizationSessionId,
133
+ org_id: input.binding.orgId,
134
+ project_id: input.binding.projectId,
135
+ environment: input.binding.environment,
136
+ subject_id: input.binding.subjectId
137
+ },
138
+ authorized_operation: {
139
+ kind: "verified_step_up_authorized_operation_v1",
140
+ authorization_session_id: input.binding.authorizationSessionId,
141
+ evidence_set_digest: operation.authorization.evidenceSetDigest,
142
+ ...commonAuthorizedOperation
143
+ }
144
+ };
145
+ }
146
+ }
147
+ async function releaseEmailOtpFactorForWorker(input) {
148
+ const unsealed = await input.emailOtp.removeEmailOtpServerSeal({ wrappedCiphertext: input.request.enrollment.serverSealedFactorCiphertextB64u });
149
+ if (!unsealed.ok) return unsealed;
150
+ if (unsealed.enrollmentSealKeyVersion !== input.request.enrollment.enrollmentSealKeyVersion) return {
151
+ ok: false,
152
+ code: "scope_mismatch",
153
+ message: "Email OTP factor release seal key version changed"
154
+ };
155
+ const sealed = await sealEmailOtpFactorSecretForWorker({
156
+ factorSecret32B64u: unsealed.ciphertext,
157
+ workerEphemeralPublicKey65B64u: input.request.workerEphemeralPublicKey65B64u,
158
+ walletId: input.walletId,
159
+ enrollmentId: input.request.enrollment.enrollmentId,
160
+ enrollmentSealKeyVersion: input.request.enrollment.enrollmentSealKeyVersion,
161
+ challengeId: input.challengeId
162
+ });
163
+ if (!sealed.ok) return sealed;
164
+ return {
165
+ ok: true,
166
+ recovery: {
167
+ kind: "email_otp_factor_release_v1",
168
+ challengeId: input.challengeId,
169
+ enrollmentId: input.request.enrollment.enrollmentId,
170
+ enrollmentSealKeyVersion: input.request.enrollment.enrollmentSealKeyVersion,
171
+ serverEphemeralPublicKey65B64u: sealed.serverEphemeralPublicKey65B64u,
172
+ nonce12B64u: sealed.nonce12B64u,
173
+ ciphertextB64u: sealed.ciphertextB64u
174
+ }
175
+ };
176
+ }
177
+ async function validatePasskeyEd25519SessionAuthorization(input) {
178
+ const credential = input.request.routeAuth;
179
+ if (credential.kind !== "passkey") throw new Error("validatePasskeyEd25519SessionAuthorization requires passkey route auth");
180
+ const credentialIdB64u = String(credential.webauthnAuthentication.rawId || credential.webauthnAuthentication.id || "").trim();
181
+ if (!credentialIdB64u || credentialIdB64u !== input.authority.factor.credentialIdB64u) return {
182
+ ok: false,
183
+ response: json({
184
+ ok: false,
185
+ code: "unauthorized",
186
+ message: "WebAuthn proof does not match the active Ed25519 Wallet Session authority"
187
+ }, { status: 401 })
188
+ };
189
+ const expectedOrigin = normalizeCorsOrigin(input.ctx.request.headers.get("origin") || void 0);
190
+ if (!expectedOrigin) return {
191
+ ok: false,
192
+ response: json({
193
+ ok: false,
194
+ code: "invalid_body",
195
+ message: "expected_origin is required for WebAuthn authentication verification"
196
+ }, { status: 400 })
197
+ };
198
+ const expectedChallenge = base64UrlEncode(await sha256BytesUtf8(alphabetizeStringify(input.request.sessionPolicy)));
199
+ const verified = await input.ctx.service.webAuthn.verifyWebAuthnAuthenticationLite({
200
+ userId: input.authority.walletId,
201
+ rpId: input.authority.verifier.rpId,
202
+ expectedChallenge,
203
+ expected_origin: expectedOrigin,
204
+ webauthn_authentication: credential.webauthnAuthentication
205
+ });
206
+ if (verified.success && verified.verified) {
207
+ const authorityRef = await walletAuthAuthorityRef({ authority: input.authority });
208
+ const verifiedAtMs = Date.now();
209
+ const proof = await input.ctx.service.authorizedOperations.buildVerifiedOwnerProof({
210
+ purpose: "wallet_session",
211
+ proofId: parseVerifiedOwnerProofId(`ed25519-refresh:${expectedChallenge}`),
212
+ factor: buildVerifiedWalletSessionPasskeyFactorResult({
213
+ tenantId: input.ctx.service.authorizationSessions.tenantId,
214
+ principalId: requireAuthorizationValue(parsePrincipalId(input.authority.walletId)),
215
+ walletId: requireAuthorizationValue(parseWalletId(input.authority.walletId)),
216
+ authorityRef,
217
+ requestOrigin: parseSessionOrigin(expectedOrigin),
218
+ audience: parseSessionOrigin(expectedOrigin),
219
+ factorId: requireAuthorizationValue(parseAuthFactorId(`passkey:${credentialIdB64u}`)),
220
+ credentialIdB64u: requireAuthorizationValue(parseWebAuthnCredentialIdB64u(credentialIdB64u)),
221
+ assertionDigest: parseDigestB64u(base64UrlEncode(await sha256BytesUtf8(alphabetizeStringify(credential.webauthnAuthentication)))),
222
+ verifiedAtMs,
223
+ expiresAtMs: verifiedAtMs + 6e4
224
+ })
225
+ });
226
+ if (proof.purpose !== "wallet_session") throw new Error("Owner proof purpose is invalid");
227
+ return {
228
+ ok: true,
229
+ authorization: {
230
+ kind: "verified_passkey_assertion_router_ab_ed25519_yao_budget_refresh_v1",
231
+ authority: input.authority,
232
+ proof,
233
+ verifiedChallengeId: expectedChallenge
234
+ }
235
+ };
236
+ }
237
+ return {
238
+ ok: false,
239
+ response: json({
240
+ ok: false,
241
+ code: verified.code || "not_verified",
242
+ message: verified.message || "WebAuthn authentication verification failed"
243
+ }, { status: 401 })
244
+ };
245
+ }
246
+ function requireAuthorizationValue(result) {
247
+ if (!result.ok) throw new Error(result.error.message);
248
+ return result.value;
249
+ }
250
+ function digestWireB64u(value, label) {
251
+ const record = isPlainObject(value) ? value : null;
252
+ const bytes = Array.isArray(record?.bytes) ? record.bytes.map(Number) : [];
253
+ if (bytes.length !== 32 || !bytes.every((entry) => Number.isInteger(entry) && entry >= 0 && entry <= 255)) throw new Error(`${label} must contain exactly 32 bytes`);
254
+ return base64UrlEncode(Uint8Array.from(bytes));
255
+ }
256
+ async function authorizeEd25519ReusableWalletSessionOperation(input) {
257
+ try {
258
+ const scope = parseRouterAbEd25519OperationStepUpScope(input.body.scope);
259
+ if (scope.authorization.kind !== "reusable_wallet_session") throw new Error("Reusable Wallet Session authority is required");
260
+ const operation = parseRouterAbOperationStepUpOperation(input.body.intent);
261
+ if (!operation.ok) throw new Error(operation.message);
262
+ const intent = isPlainObject(input.body.intent) ? input.body.intent : null;
263
+ if (!intent) throw new Error("Ed25519 normal-signing intent is required");
264
+ const session = ed25519ReusableWalletSession(input.authorization);
265
+ const privateBody = await buildRouterAbEd25519PrivateSigningWorkerBody({
266
+ phase: "prepare",
267
+ body: input.body,
268
+ authorization: {
269
+ kind: "wallet_session_operation_credential_v1",
270
+ walletSessionId: String(session.walletSessionId),
271
+ principalId: String(session.principalId),
272
+ runtimePolicyScope: input.authorization.activeMaterial.runtimePolicyScope
273
+ },
274
+ headers: Object.fromEntries(input.ctx.request.headers.entries())
275
+ });
276
+ if (!("admission_candidate" in privateBody)) throw new Error("Ed25519 normal-signing prepare admission is required");
277
+ const identity = ed25519ReusableWalletSessionIdentity(input.authorization);
278
+ const nowMs = Date.now();
279
+ if (identity.tenantId !== input.ctx.service.authorizedOperations.tenantId || identity.tenantId !== input.ctx.service.authorizationSessions.tenantId || scope.authorization.wallet_session_id !== identity.walletSessionId) return {
280
+ ok: false,
281
+ response: json({
282
+ ok: false,
283
+ code: "wallet_session_mismatch",
284
+ message: "Wallet Session changed"
285
+ }, { status: 403 })
286
+ };
287
+ const capabilityId = requireAuthorizationValue(parseCapabilityId(scope.material_activation.capability));
288
+ const laneDigest = parseSigningOperationFingerprintDigest(intent.operation_fingerprint);
289
+ const intentDigest = parseDigestB64u(base64UrlEncode(Uint8Array.from(privateBody.admission_candidate.intent_digest.bytes)));
290
+ const displayDigest = parseDigestB64u(digestWireB64u(input.body.display_digest, "display_digest"));
291
+ const envelope = buildCapabilityOperationEnvelope({
292
+ tenantId: identity.tenantId,
293
+ principalId: identity.principalId,
294
+ capabilityId,
295
+ operationId: operation.operationId,
296
+ operation: operation.operation,
297
+ digests: {
298
+ laneDigest,
299
+ intentDigest,
300
+ displayDigest
301
+ }
302
+ });
303
+ const authorizedOperationId = requireAuthorizationValue(parseAuthorizedOperationId(`ed25519-operation:${operation.operationId}:${scope.request_id}`));
304
+ const outcome = await input.ctx.service.authorizedOperations.admitAuthorizedOperation({ operation: {
305
+ tenantId: identity.tenantId,
306
+ authorizedOperationId,
307
+ auditEventId: requireAuthorizationValue(parseAuthorizationAuditEventId(`ed25519-operation-audit:${operation.operationId}`)),
308
+ operation: envelope,
309
+ authorization: {
310
+ kind: "authorization_grant",
311
+ authorizationGrantRef: buildAuthorizationGrantRef(identity.authorizationId)
312
+ },
313
+ quota: {
314
+ kind: "consume_reusable_wallet_session",
315
+ quotaId: identity.quotaId
316
+ },
317
+ claimedAtMs: nowMs
318
+ } });
319
+ if (outcome.kind !== "claimed" && outcome.kind !== "operation_in_progress" && outcome.kind !== "replayed") {
320
+ const stepUpMaterial = await input.ctx.service.walletRegistration.resolveEd25519MaterialActivation({
321
+ walletId: scope.account_id,
322
+ materialActivation: scope.material_activation
323
+ });
324
+ const stepUp = stepUpMaterial.ok ? buildRouterAbEd25519OwnerOperationStepUpPreparation({
325
+ scope,
326
+ body: input.body,
327
+ material: stepUpMaterial
328
+ }) ?? void 0 : void 0;
329
+ const failure = routerAbEd25519OwnerOperationFailureResult({
330
+ status: outcome.kind === "authorization_grant_rejected" ? 403 : 409,
331
+ code: outcome.kind,
332
+ message: "Ed25519 authorized operation rejected",
333
+ phase: "prepare",
334
+ stepUp
335
+ });
336
+ return {
337
+ ok: false,
338
+ response: json(failure.body, { status: failure.status })
339
+ };
340
+ }
341
+ if (outcome.kind === "operation_in_progress" || outcome.kind === "replayed") return {
342
+ ok: true,
343
+ admission: {
344
+ kind: outcome.kind,
345
+ operation: outcome.operation
346
+ }
347
+ };
348
+ return {
349
+ ok: true,
350
+ admission: {
351
+ kind: "claimed",
352
+ operation: outcome.operation,
353
+ receipt: {
354
+ kind: "reusable_wallet_session_authorized_operation_v1",
355
+ authorized_operation_id: outcome.operation.authorizedOperationId,
356
+ operation_id: outcome.operation.operation.operationId,
357
+ capability_kind: "near_ed25519_mpc_signing",
358
+ operation_kind: requireEd25519OperationKind(outcome.operation.operation.operation.operationKind),
359
+ lane_digest_b64u: laneDigest,
360
+ intent_digest_b64u: intentDigest,
361
+ display_digest_b64u: displayDigest,
362
+ operation_fingerprint_digest: outcome.operation.operationFingerprintDigest
363
+ }
364
+ }
365
+ };
366
+ } catch (error) {
367
+ return {
368
+ ok: false,
369
+ response: json({
370
+ ok: false,
371
+ code: "invalid_body",
372
+ message: error instanceof Error ? error.message : "Ed25519 authorized operation is invalid"
373
+ }, { status: 400 })
374
+ };
375
+ }
376
+ }
377
+ async function revalidateEd25519AuthorizedOperation(input) {
378
+ let admission;
379
+ if (input.operation.authorization.kind === "verified_step_up") {
380
+ if (input.operation.quota.kind !== "quota_neutral") return {
381
+ ok: false,
382
+ response: json({
383
+ ok: false,
384
+ code: "verified_step_up_rejected",
385
+ message: "Ed25519 operation step-up authorization has an invalid quota"
386
+ }, { status: 403 })
387
+ };
388
+ admission = {
389
+ tenantId: input.operation.tenantId,
390
+ authorizedOperationId: input.operation.authorizedOperationId,
391
+ auditEventId: input.operation.auditEventId,
392
+ operation: input.operation.operation,
393
+ authorization: input.operation.authorization,
394
+ quota: input.operation.quota,
395
+ claimedAtMs: Date.now()
396
+ };
397
+ } else {
398
+ if (input.operation.quota.kind !== "consume_reusable_wallet_session") return {
399
+ ok: false,
400
+ response: json({
401
+ ok: false,
402
+ code: "authorization_grant_rejected",
403
+ message: "Ed25519 reusable operation authorization has an invalid quota"
404
+ }, { status: 403 })
405
+ };
406
+ const operation = buildEd25519ReusableOperationEnvelope(input.operation);
407
+ if (!operation) return {
408
+ ok: false,
409
+ response: json({
410
+ ok: false,
411
+ code: "authorization_grant_rejected",
412
+ message: "Ed25519 reusable operation kind is invalid"
413
+ }, { status: 403 })
414
+ };
415
+ admission = {
416
+ tenantId: input.operation.tenantId,
417
+ authorizedOperationId: input.operation.authorizedOperationId,
418
+ auditEventId: input.operation.auditEventId,
419
+ operation,
420
+ authorization: input.operation.authorization,
421
+ quota: input.operation.quota,
422
+ claimedAtMs: Date.now()
423
+ };
424
+ }
425
+ const result = await input.ctx.service.authorizedOperations.admitAuthorizedOperation({ operation: admission });
426
+ switch (result.kind) {
427
+ case "claimed":
428
+ case "operation_in_progress":
429
+ case "replayed":
430
+ if (result.operation.authorizedOperationId !== input.operation.authorizedOperationId) throw new Error("Ed25519 authorized operation changed during revalidation");
431
+ return {
432
+ ok: true,
433
+ operation: result.operation
434
+ };
435
+ case "authorization_grant_rejected":
436
+ case "verified_step_up_rejected": return {
437
+ ok: false,
438
+ response: json({
439
+ ok: false,
440
+ code: result.kind,
441
+ message: "Ed25519 operation authorization is no longer active"
442
+ }, { status: 403 })
443
+ };
444
+ case "wallet_session_quota_exhausted":
445
+ case "material_mismatch": return {
446
+ ok: false,
447
+ response: json({
448
+ ok: false,
449
+ code: result.kind,
450
+ message: "Ed25519 operation admission failed"
451
+ }, { status: 409 })
452
+ };
453
+ }
454
+ }
455
+ function buildEd25519ReusableOperationEnvelope(operation) {
456
+ const operationRef = operation.operation.operation;
457
+ if (operationRef.capabilityKind !== "near_ed25519_mpc_signing") return null;
458
+ switch (operationRef.operationKind) {
459
+ case "near.sign_transaction":
460
+ case "near.sign_delegate_action":
461
+ case "near.sign_nep413_message": return buildCapabilityOperationEnvelope({
462
+ tenantId: operation.operation.tenantId,
463
+ principalId: operation.operation.principalId,
464
+ capabilityId: operation.operation.capabilityId,
465
+ operationId: operation.operation.operationId,
466
+ operation: buildNearEd25519MpcOperationRef(operationRef.operationKind),
467
+ digests: operation.operation.digests
468
+ });
469
+ case "near.export_key": return null;
470
+ }
471
+ }
472
+ async function validateEd25519ReusableAuthorizedOperation(input) {
473
+ try {
474
+ const receipt = parseEd25519ReusableAuthorizedOperationReceipt(input.body.authorized_operation);
475
+ const scope = parseRouterAbEd25519OperationStepUpScope(input.body.scope);
476
+ if (scope.authorization.kind !== "reusable_wallet_session") throw new Error("Reusable Wallet Session authority is required");
477
+ const identity = ed25519ReusableWalletSessionIdentity(input.authorization);
478
+ const capabilityId = requireAuthorizationValue(parseCapabilityId(scope.material_activation.capability));
479
+ const operationId = requireAuthorizationValue(parseCapabilityOperationId(receipt.operation_id));
480
+ const fingerprint = await computeCapabilityOperationFingerprintDigest(buildCapabilityOperationEnvelope({
481
+ tenantId: identity.tenantId,
482
+ principalId: identity.principalId,
483
+ capabilityId,
484
+ operationId,
485
+ operation: {
486
+ capabilityKind: "near_ed25519_mpc_signing",
487
+ operationKind: receipt.operation_kind
488
+ },
489
+ digests: {
490
+ laneDigest: parseDigestB64u(receipt.lane_digest_b64u),
491
+ intentDigest: parseDigestB64u(receipt.intent_digest_b64u),
492
+ displayDigest: parseDigestB64u(receipt.display_digest_b64u)
493
+ }
494
+ }));
495
+ if (fingerprint !== parseCapabilityOperationFingerprintDigest(receipt.operation_fingerprint_digest)) throw new Error("Ed25519 authorized operation fingerprint changed");
496
+ if (digestWireB64u((isPlainObject(input.body.prepare_binding) ? input.body.prepare_binding : null)?.intent_digest, "prepare_binding.intent_digest") !== receipt.intent_digest_b64u) throw new Error("Ed25519 authorized operation intent changed after prepare");
497
+ const operationResult = await input.ctx.service.authorizedOperations.readAuthorizedOperation({
498
+ tenantId: identity.tenantId,
499
+ operationFingerprintDigest: fingerprint
500
+ });
501
+ if (!operationResult) return {
502
+ ok: false,
503
+ response: json({
504
+ ok: false,
505
+ code: "authorized_operation_missing",
506
+ message: "Authorized operation is unavailable"
507
+ }, { status: 409 })
508
+ };
509
+ if (operationResult.authorizedOperationId !== requireAuthorizationValue(parseAuthorizedOperationId(receipt.authorized_operation_id)) || operationResult.operationFingerprintDigest !== fingerprint) throw new Error("Ed25519 authorized operation identity changed after prepare");
510
+ const revalidated = await revalidateEd25519AuthorizedOperation({
511
+ ctx: input.ctx,
512
+ operation: operationResult
513
+ });
514
+ return revalidated.ok ? {
515
+ ok: true,
516
+ receipt,
517
+ operation: revalidated.operation
518
+ } : revalidated;
519
+ } catch (error) {
520
+ return {
521
+ ok: false,
522
+ response: json({
523
+ ok: false,
524
+ code: "invalid_authorized_operation",
525
+ message: error instanceof Error ? error.message : "Authorized operation is invalid"
526
+ }, { status: 400 })
527
+ };
528
+ }
529
+ }
530
+ function buildEd25519VerifiedStepUpAuthorizedOperationReceipt(input) {
531
+ const { operation, operationDigests } = input.authorization;
532
+ if (operation.authorization.kind !== "verified_step_up") throw new Error("Verified step-up authorization is required");
533
+ return {
534
+ kind: "verified_step_up_authorized_operation_v1",
535
+ authorization_session_id: input.authorization.session.sessionId,
536
+ evidence_set_digest: operation.authorization.evidenceSetDigest,
537
+ authorized_operation_id: operation.authorizedOperationId,
538
+ operation_id: operation.operation.operationId,
539
+ capability_kind: "near_ed25519_mpc_signing",
540
+ operation_kind: requireEd25519OperationKind(operation.operation.operation.operationKind),
541
+ lane_digest_b64u: operationDigests.laneDigest,
542
+ intent_digest_b64u: operationDigests.intentDigest,
543
+ display_digest_b64u: operationDigests.displayDigest,
544
+ operation_fingerprint_digest: operation.operationFingerprintDigest
545
+ };
546
+ }
547
+ async function validateEd25519VerifiedStepUpAuthorizedOperation(input) {
548
+ try {
549
+ const receipt = parseEd25519VerifiedStepUpAuthorizedOperationReceipt(input.body.authorized_operation);
550
+ const scope = parseRouterAbEd25519OperationStepUpScope(input.body.scope);
551
+ if (scope.authorization.kind !== "operation_step_up") throw new Error("Operation step-up authority is required");
552
+ if (receipt.authorization_session_id !== input.authorization.session.sessionId) throw new Error("Operation step-up authorization changed after prepare");
553
+ const fingerprint = await computeCapabilityOperationFingerprintDigest(buildCapabilityOperationEnvelope({
554
+ tenantId: input.authorization.session.tenantId,
555
+ principalId: input.authorization.session.principalId,
556
+ capabilityId: requireAuthorizationValue(parseCapabilityId(scope.material_activation.capability)),
557
+ operationId: requireAuthorizationValue(parseCapabilityOperationId(receipt.operation_id)),
558
+ operation: {
559
+ capabilityKind: "near_ed25519_mpc_signing",
560
+ operationKind: receipt.operation_kind
561
+ },
562
+ digests: {
563
+ laneDigest: parseDigestB64u(receipt.lane_digest_b64u),
564
+ intentDigest: parseDigestB64u(receipt.intent_digest_b64u),
565
+ displayDigest: parseDigestB64u(receipt.display_digest_b64u)
566
+ }
567
+ }));
568
+ if (fingerprint !== parseCapabilityOperationFingerprintDigest(receipt.operation_fingerprint_digest)) throw new Error("Operation step-up authorized operation fingerprint changed");
569
+ if (digestWireB64u((isPlainObject(input.body.prepare_binding) ? input.body.prepare_binding : null)?.intent_digest, "prepare_binding.intent_digest") !== receipt.intent_digest_b64u) throw new Error("Operation step-up intent changed after prepare");
570
+ const operationResult = await input.ctx.service.authorizedOperations.readAuthorizedOperation({
571
+ tenantId: input.authorization.session.tenantId,
572
+ operationFingerprintDigest: fingerprint
573
+ });
574
+ if (!operationResult) return {
575
+ ok: false,
576
+ response: json({
577
+ ok: false,
578
+ code: "authorized_operation_missing",
579
+ message: "Authorized operation is unavailable"
580
+ }, { status: 409 })
581
+ };
582
+ if (operationResult.authorizedOperationId !== requireAuthorizationValue(parseAuthorizedOperationId(receipt.authorized_operation_id)) || operationResult.operationFingerprintDigest !== fingerprint) throw new Error("Operation step-up authorized operation identity changed after prepare");
583
+ if (operationResult.authorization.kind !== "verified_step_up" || operationResult.authorization.evidenceSetDigest !== parseDigestB64u(receipt.evidence_set_digest)) throw new Error("Operation step-up evidence changed after prepare");
584
+ const revalidated = await revalidateEd25519AuthorizedOperation({
585
+ ctx: input.ctx,
586
+ operation: operationResult
587
+ });
588
+ return revalidated.ok ? {
589
+ ok: true,
590
+ receipt,
591
+ operation: revalidated.operation
592
+ } : revalidated;
593
+ } catch (error) {
594
+ return {
595
+ ok: false,
596
+ response: json({
597
+ ok: false,
598
+ code: "invalid_authorized_operation",
599
+ message: error instanceof Error ? error.message : "Authorized operation is invalid"
600
+ }, { status: 400 })
601
+ };
602
+ }
603
+ }
604
+ async function completeEd25519Operation(input) {
605
+ return await input.ctx.service.authorizedOperations.completeAuthorizedOperation({
606
+ operation: input.operation,
607
+ result: input.result,
608
+ response: input.response,
609
+ completedAtMs: Date.now()
610
+ });
611
+ }
612
+ function replayCompletedEd25519Operation(operation) {
613
+ if (operation.lifecycle !== "completed") return null;
614
+ return new Response(authorizedOperationReplayBodyInit(operation.response), {
615
+ status: operation.response.status,
616
+ headers: { "content-type": operation.response.contentType }
617
+ });
618
+ }
619
+ /**
620
+ * Completion readback is the authority for a terminal response. A claimed
621
+ * operation must never fall back to the live upstream response after the
622
+ * completion write, since that would make retries non-idempotent.
623
+ */
624
+ function requireCompletedEd25519OperationResponse(operation) {
625
+ const replay = replayCompletedEd25519Operation(operation);
626
+ if (!replay) throw new Error("Ed25519 operation completion readback is not completed");
627
+ return replay;
628
+ }
629
+ function buildEd25519ReplayResponse(input) {
630
+ return {
631
+ status: input.response.status,
632
+ contentType: input.response.headers.get("content-type") || "application/json",
633
+ bodyText: input.bodyText
634
+ };
635
+ }
636
+ function decideEd25519NormalSigningExecution(input) {
637
+ if (input.phase === "finalize") {
638
+ const replay = replayCompletedEd25519Operation(input.operation);
639
+ return replay ? {
640
+ kind: "replayed",
641
+ response: replay
642
+ } : {
643
+ kind: "execute",
644
+ operation: input.operation
645
+ };
646
+ }
647
+ switch (input.admissionKind) {
648
+ case "claimed": return {
649
+ kind: "execute",
650
+ operation: input.operation
651
+ };
652
+ case "operation_in_progress": return {
653
+ kind: "operation_in_progress",
654
+ response: json({
655
+ ok: false,
656
+ code: "operation_in_progress",
657
+ message: "Ed25519 operation is already in progress"
658
+ }, { status: 409 })
659
+ };
660
+ case "replayed": {
661
+ const replay = replayCompletedEd25519Operation(input.operation);
662
+ if (!replay) throw new Error("Ed25519 replayed operation is not completed");
663
+ return {
664
+ kind: "replayed",
665
+ response: replay
666
+ };
667
+ }
668
+ }
669
+ }
670
+ function decideEd25519OperationStepUpExecution(input) {
671
+ if (input.admissionKind === "replayed") {
672
+ const replay = replayCompletedEd25519Operation(input.operation);
673
+ if (!replay) throw new Error("Ed25519 replayed operation is not completed");
674
+ return {
675
+ kind: "replay",
676
+ response: replay
677
+ };
678
+ }
679
+ return {
680
+ kind: "execute",
681
+ operation: input.operation
682
+ };
683
+ }
684
+ function isRouterAbEd25519OperationInProgressResponse(input) {
685
+ return input.status === 409 && input.bodyText.includes("ReplayedLocalRequest:") && input.bodyText.includes("SigningWorker normal-signing effect is already in progress");
686
+ }
687
+ async function issueEd25519OperationStepUpGrant(input) {
688
+ const scope = parseRouterAbEd25519OperationStepUpScope(input.request.normalSigningRequest.scope);
689
+ if (scope.authorization.kind !== "operation_step_up") return json({
690
+ ok: false,
691
+ code: "invalid_body",
692
+ message: "Operation step-up scope is required"
693
+ }, { status: 400 });
694
+ const proof = input.request.proof;
695
+ const activeAuthority = await resolveActiveEd25519OperationStepUpAuthority(input.ctx.service.walletAuthMethods, proof);
696
+ if (!activeAuthority.ok) return json({
697
+ ok: false,
698
+ code: "scope_mismatch",
699
+ message: "Operation step-up authority is not active"
700
+ }, { status: 403 });
701
+ const authority = proof.kind === "passkey" ? proof.authority : activeAuthority.authority;
702
+ const operation = parseRouterAbOperationStepUpOperation(input.request.normalSigningRequest.intent);
703
+ if (!operation.ok) return json({
704
+ ok: false,
705
+ code: "invalid_body",
706
+ message: operation.message
707
+ }, { status: 400 });
708
+ const activeMaterial = await input.ctx.service.walletRegistration.resolveEd25519MaterialActivation({
709
+ walletId: scope.account_id,
710
+ materialActivation: scope.material_activation
711
+ });
712
+ if (!activeMaterial.ok) return json({
713
+ ok: false,
714
+ code: activeMaterial.code === "internal" ? "internal" : "scope_mismatch",
715
+ message: activeMaterial.code === "internal" ? activeMaterial.message : "Operation step-up scope does not name the active material"
716
+ }, { status: activeMaterial.code === "internal" ? 500 : 403 });
717
+ if (!sameRouterAbMpcMaterialActivationRef(activeMaterial.materialActivation, scope.material_activation)) return json({
718
+ ok: false,
719
+ code: "scope_mismatch",
720
+ message: "Operation step-up scope does not name the active material"
721
+ }, { status: 403 });
722
+ const authenticated = await authenticateRouterAbWalletOperationStepUpIdentity({
723
+ kind: "verified_owner_proof",
724
+ headers: Object.fromEntries(input.ctx.request.headers.entries()),
725
+ walletId: scope.account_id,
726
+ materialOwner: scope.material_activation.material_owner,
727
+ operationId: String(operation.operationId),
728
+ authority,
729
+ runtimePolicyScope: activeMaterial.runtimePolicyScope,
730
+ expiresAtMs: Number(input.request.normalSigningRequest.expires_at_ms),
731
+ authorizedOperations: input.ctx.service.authorizedOperations
732
+ });
733
+ if (!authenticated.ok) return json(authenticated.error.body, { status: authenticated.error.status });
734
+ let privateBody;
735
+ try {
736
+ privateBody = await buildRouterAbEd25519PrivateSigningWorkerBody({
737
+ phase: "prepare",
738
+ body: input.request.normalSigningRequest,
739
+ authorization: {
740
+ kind: "operation_step_up",
741
+ session: authenticated.session
742
+ },
743
+ headers: Object.fromEntries(input.ctx.request.headers.entries())
744
+ });
745
+ } catch (error) {
746
+ return json({
747
+ ok: false,
748
+ code: "invalid_body",
749
+ message: error instanceof Error ? error.message : "Operation step-up request is invalid"
750
+ }, { status: 400 });
751
+ }
752
+ if (!("admission_candidate" in privateBody)) return json({
753
+ ok: false,
754
+ code: "invalid_body",
755
+ message: "Operation step-up prepare is required"
756
+ }, { status: 400 });
757
+ const intent = input.request.normalSigningRequest.intent;
758
+ if (!isPlainObject(intent)) return json({
759
+ ok: false,
760
+ code: "invalid_body",
761
+ message: "Operation step-up intent is invalid"
762
+ }, { status: 400 });
763
+ const capabilityId = requireAuthorizationValue(parseCapabilityId(scope.material_activation.capability));
764
+ const operationFingerprintDigest = parseSigningOperationFingerprintDigest(intent.operation_fingerprint);
765
+ const envelope = buildCapabilityOperationEnvelope({
766
+ tenantId: authenticated.session.tenantId,
767
+ principalId: authenticated.session.principalId,
768
+ capabilityId,
769
+ operationId: operation.operationId,
770
+ operation: operation.operation,
771
+ digests: {
772
+ laneDigest: operationFingerprintDigest,
773
+ intentDigest: parseDigestB64u(base64UrlEncode(Uint8Array.from(privateBody.admission_candidate.intent_digest.bytes))),
774
+ displayDigest: parseDigestB64u(input.request.displayDigest)
775
+ }
776
+ });
777
+ const challengeB64u = await computeCapabilityOperationFingerprintDigest(envelope);
778
+ const authorityRef = proof.kind === "passkey" ? await walletAuthAuthorityRef({ authority: proof.authority }) : proof.authorityRef;
779
+ if (authorityRef.walletId !== authenticated.authorityRef.walletId || authorityRef.authorityDigest !== authenticated.authorityRef.authorityDigest || authorityRef.walletId !== authenticated.session.walletId) return json({
780
+ ok: false,
781
+ code: "scope_mismatch",
782
+ message: "Operation step-up authority changed"
783
+ }, { status: 403 });
784
+ const nowMs = Date.now();
785
+ const expiresAtMs = Number(input.request.normalSigningRequest.expires_at_ms);
786
+ const requestOrigin = authenticated.requestOrigin;
787
+ const requestId = String(scope.request_id);
788
+ const evidenceId = requireAuthorizationValue(parseAuthorizationEvidenceId(`evidence:${requestId}`));
789
+ const evidenceSetId = requireAuthorizationValue(parseAuthorizationEvidenceSetId(`evidence-set:${requestId}`));
790
+ let factor;
791
+ let materialRecovery = { kind: "not_requested" };
792
+ let pendingFactorRelease = null;
793
+ let factorReleaseChallengeId = null;
794
+ switch (proof.kind) {
795
+ case "passkey": {
796
+ const credential = proof.webauthnAuthentication;
797
+ if (String(credential.rawId || credential.id || "").trim() !== proof.authority.factor.credentialIdB64u) return json({
798
+ ok: false,
799
+ code: "unauthorized",
800
+ message: "Passkey credential changed"
801
+ }, { status: 401 });
802
+ const verified = await input.ctx.service.webAuthn.verifyWebAuthnAuthenticationLite({
803
+ userId: authenticated.session.walletId,
804
+ rpId: proof.authority.verifier.rpId,
805
+ expectedChallenge: challengeB64u,
806
+ expected_origin: requestOrigin,
807
+ webauthn_authentication: credential
808
+ });
809
+ if (!verified.success || !verified.verified) return json({
810
+ ok: false,
811
+ code: verified.code || "not_verified",
812
+ message: verified.message || "WebAuthn authentication verification failed"
813
+ }, { status: 401 });
814
+ factor = buildVerifiedWalletOperationPasskeyFactorResult({
815
+ tenantId: authenticated.session.tenantId,
816
+ principalId: authenticated.session.principalId,
817
+ walletId: walletIdFromString(authenticated.session.walletId),
818
+ requestOrigin,
819
+ audience: requestOrigin,
820
+ factorId: requireAuthorizationValue(parseAuthFactorId(`passkey:${proof.authority.factor.credentialIdB64u}`)),
821
+ authorityRef: authenticated.authorityRef,
822
+ operation: envelope,
823
+ credentialIdB64u: proof.authority.factor.credentialIdB64u,
824
+ assertionDigest: parseDigestB64u(base64UrlEncode(await sha256BytesUtf8(alphabetizeStringify(credential)))),
825
+ verifiedAtMs: nowMs,
826
+ expiresAtMs
827
+ });
828
+ materialRecovery = { kind: "not_requested" };
829
+ break;
830
+ }
831
+ case "email_otp": {
832
+ const operationBinding = await hashEmailOtpOperationBinding({
833
+ walletId: authenticated.session.walletId,
834
+ providerUserId: proof.providerSubjectId,
835
+ orgId: authenticated.session.tenantId,
836
+ operation: WALLET_EMAIL_OTP_TRANSACTION_SIGN_OPERATION,
837
+ requestOrigin,
838
+ audience: requestOrigin,
839
+ authorityRef: authenticated.authorityRef,
840
+ operationFingerprintDigest
841
+ });
842
+ const verified = await input.ctx.service.emailOtp.verifyEmailOtpChallenge({
843
+ userId: proof.providerSubjectId,
844
+ walletId: authenticated.session.walletId,
845
+ orgId: authenticated.session.tenantId,
846
+ challengeId: proof.challengeId,
847
+ otpCode: proof.otpCode,
848
+ otpChannel: EMAIL_OTP_CHANNEL,
849
+ ownerProofBindingDigest: operationBinding,
850
+ operation: WALLET_EMAIL_OTP_TRANSACTION_SIGN_OPERATION
851
+ });
852
+ if (!verified.ok) return json(verified, { status: verified.code === "invalid_body" ? 400 : 401 });
853
+ if (input.request.materialRecovery.kind === "email_otp_factor_release_v1") {
854
+ const enrollment = await input.ctx.service.emailOtp.readActiveEmailOtpEnrollment({
855
+ walletId: authenticated.session.walletId,
856
+ orgId: authenticated.session.tenantId,
857
+ providerUserId: proof.providerSubjectId
858
+ });
859
+ if (!enrollment.ok) return json(enrollment, { status: emailOtpStatusCode(enrollment.code) });
860
+ pendingFactorRelease = {
861
+ enrollment: {
862
+ enrollmentId: enrollment.enrollment.enrollmentId,
863
+ enrollmentSealKeyVersion: enrollment.enrollment.enrollmentSealKeyVersion,
864
+ serverSealedFactorCiphertextB64u: enrollment.enrollment.serverSealedFactorCiphertextB64u
865
+ },
866
+ workerEphemeralPublicKey65B64u: input.request.materialRecovery.workerEphemeralPublicKey65B64u
867
+ };
868
+ }
869
+ const consumed = await input.ctx.service.emailOtp.consumeEmailOtpGrant({
870
+ subject: {
871
+ kind: "provider_identity",
872
+ orgId: requireAuthorizationValue(parseOrgId(authenticated.session.tenantId)),
873
+ providerSubject: requireAuthorizationValue(parseProviderSubject(proof.providerSubjectId)),
874
+ walletId: walletIdFromString(authenticated.session.walletId)
875
+ },
876
+ loginGrant: verified.loginGrant,
877
+ otpChannel: EMAIL_OTP_CHANNEL
878
+ });
879
+ if (!consumed.ok) return json(consumed, { status: consumed.code === "invalid_body" ? 400 : 401 });
880
+ factorReleaseChallengeId = consumed.challengeId;
881
+ factor = buildVerifiedWalletOperationEmailOtpFactorResult({
882
+ tenantId: authenticated.session.tenantId,
883
+ principalId: authenticated.session.principalId,
884
+ walletId: walletIdFromString(authenticated.session.walletId),
885
+ requestOrigin,
886
+ audience: requestOrigin,
887
+ factorId: requireAuthorizationValue(parseAuthFactorId(`email_otp:${authority.factor.provider}:${proof.providerSubjectId}`)),
888
+ authorityRef: authenticated.authorityRef,
889
+ operation: envelope,
890
+ challengeId: requireAuthorizationValue(parseEmailOtpChallengeId(consumed.challengeId)),
891
+ verificationReceiptDigest: parseDigestB64u(base64UrlEncode(await sha256BytesUtf8(alphabetizeStringify({
892
+ challengeId: consumed.challengeId,
893
+ operationFingerprint: challengeB64u
894
+ })))),
895
+ verifiedAtMs: nowMs,
896
+ expiresAtMs: Math.min(expiresAtMs, verified.grantExpiresAtMs)
897
+ });
898
+ break;
899
+ }
900
+ }
901
+ const evidenceSet = await input.ctx.service.authorizedOperations.recordVerifiedWalletOperationFactorEvidenceSet({
902
+ operation: envelope,
903
+ evidenceId,
904
+ evidenceSetId,
905
+ factor
906
+ });
907
+ const atomicOperation = await input.ctx.service.authorizedOperations.admitAuthorizedOperation({ operation: {
908
+ tenantId: authenticated.session.tenantId,
909
+ authorizedOperationId: requireAuthorizationValue(parseAuthorizedOperationId(`normal-signing-operation:${scope.request_id}`)),
910
+ auditEventId: requireAuthorizationValue(parseAuthorizationAuditEventId(`normal-signing-audit:${scope.request_id}`)),
911
+ operation: envelope,
912
+ authorization: {
913
+ kind: "verified_step_up",
914
+ evidenceSetDigest: evidenceSet.evidenceSetDigest
915
+ },
916
+ quota: { kind: "quota_neutral" },
917
+ claimedAtMs: nowMs
918
+ } });
919
+ switch (atomicOperation.kind) {
920
+ case "claimed":
921
+ case "operation_in_progress":
922
+ case "replayed": break;
923
+ case "authorization_grant_rejected":
924
+ case "verified_step_up_rejected": return json({
925
+ ok: false,
926
+ code: atomicOperation.kind,
927
+ message: "Ed25519 operation step-up authorization is invalid"
928
+ }, { status: 403 });
929
+ case "wallet_session_quota_exhausted":
930
+ case "material_mismatch": return json({
931
+ ok: false,
932
+ code: atomicOperation.kind,
933
+ message: "Ed25519 operation step-up authorization is unavailable"
934
+ }, { status: 409 });
935
+ }
936
+ if (pendingFactorRelease) {
937
+ if (!factorReleaseChallengeId) throw new Error("Email OTP factor release challenge is missing after grant consumption");
938
+ const currentEnrollment = await input.ctx.service.emailOtp.readActiveEmailOtpEnrollment({
939
+ walletId: authenticated.session.walletId,
940
+ orgId: authenticated.session.tenantId,
941
+ providerUserId: proof.kind === "email_otp" ? proof.providerSubjectId : void 0
942
+ });
943
+ if (!currentEnrollment.ok) return json(currentEnrollment, { status: emailOtpStatusCode(currentEnrollment.code) });
944
+ if (currentEnrollment.enrollment.enrollmentId !== pendingFactorRelease.enrollment.enrollmentId || currentEnrollment.enrollment.enrollmentSealKeyVersion !== pendingFactorRelease.enrollment.enrollmentSealKeyVersion || currentEnrollment.enrollment.serverSealedFactorCiphertextB64u !== pendingFactorRelease.enrollment.serverSealedFactorCiphertextB64u) return json({
945
+ ok: false,
946
+ code: "scope_mismatch",
947
+ message: "Email OTP enrollment changed before factor release"
948
+ }, { status: 409 });
949
+ const released = await releaseEmailOtpFactorForWorker({
950
+ emailOtp: input.ctx.service.emailOtp,
951
+ request: pendingFactorRelease,
952
+ walletId: authenticated.session.walletId,
953
+ challengeId: factorReleaseChallengeId
954
+ });
955
+ if (!released.ok) return json(released, { status: emailOtpStatusCode(released.code) });
956
+ materialRecovery = released.recovery;
957
+ }
958
+ return json({
959
+ ok: true,
960
+ kind: "verified_step_up",
961
+ authorization: {
962
+ kind: "operation_step_up",
963
+ evidence_set_digest: evidenceSet.evidenceSetDigest
964
+ },
965
+ expiresAtMs,
966
+ materialRecovery
967
+ }, { status: 200 });
968
+ }
969
+ async function proxyEd25519OwnerLaneExecution(input) {
970
+ if (input.authorization.kind === "wallet_session_operation_credential_v1" || input.authorization.kind === "wallet_session_operation_credential_exhausted_candidate_v1") return await proxyNormalSigningRequestToMpcRouter({
971
+ request: input.ctx.request,
972
+ proxy: input.ctx.opts.routerAbNormalSigningRouterProxy,
973
+ body: input.body
974
+ });
975
+ const scope = parseRouterAbEd25519OperationStepUpScope(input.body.scope);
976
+ const walletId = parseWalletId(scope.account_id);
977
+ if (!walletId.ok) return json({
978
+ ok: false,
979
+ code: "invalid_body",
980
+ message: "Ed25519 signing wallet is invalid"
981
+ }, { status: 400 });
982
+ const laneAuthorization = input.authorization.session.laneAuthorization;
983
+ return await proxyOwnerLaneAdmittedNormalSigningRequest({
984
+ request: input.ctx.request,
985
+ proxy: input.ctx.opts.routerAbNormalSigningRouterProxy,
986
+ body: input.body,
987
+ authorizedOperation: input.authorizedOperation,
988
+ walletId: walletId.value,
989
+ expectedMaterialActivation: scope.material_activation,
990
+ authorization: laneAuthorization,
991
+ walletRegistration: input.ctx.service.walletRegistration
992
+ });
993
+ }
994
+ async function handleRouterAbEd25519NormalSigningRoute(input) {
995
+ const authorization = await authorizeRouterAbEd25519NormalSigningRoute({
996
+ body: input.body,
997
+ rawBody: input.body,
998
+ headers: Object.fromEntries(input.ctx.request.headers.entries()),
999
+ session: input.ctx.opts.session,
1000
+ authorizedOperations: input.ctx.service.authorizedOperations,
1001
+ authorizationSessions: input.ctx.service.authorizationSessions,
1002
+ admissionAdapter: input.ctx.opts.routerAbNormalSigningAdmission,
1003
+ resolveEd25519MaterialActivation: input.ctx.service.walletRegistration.resolveEd25519MaterialActivation.bind(input.ctx.service.walletRegistration),
1004
+ phase: input.phase
1005
+ });
1006
+ if (!authorization.ok) return json(authorization.result.body, { status: authorization.result.status });
1007
+ if (authorization.kind === "operation_step_up") {
1008
+ if (input.phase === "prepare") {
1009
+ if (authorization.phase !== "prepare") throw new Error("Operation step-up prepare authorization phase changed");
1010
+ const execution = decideEd25519OperationStepUpExecution({
1011
+ admissionKind: authorization.admissionKind,
1012
+ operation: authorization.operation
1013
+ });
1014
+ if (execution.kind !== "execute") return execution.response;
1015
+ const upstream = await proxyEd25519OwnerLaneExecution({
1016
+ ctx: input.ctx,
1017
+ authorization,
1018
+ authorizedOperation: execution.operation,
1019
+ body: {
1020
+ ...input.body,
1021
+ authorized_operation: buildRouterAbEd25519AuthorizedOperationWire({
1022
+ operation: execution.operation,
1023
+ binding: {
1024
+ kind: "operation_step_up",
1025
+ authorizationSessionId: authorization.session.sessionId,
1026
+ orgId: authorization.session.runtimePolicyScope.orgId,
1027
+ projectId: authorization.session.runtimePolicyScope.projectId,
1028
+ environment: authorization.session.runtimePolicyScope.envId,
1029
+ subjectId: authorization.session.principalId
1030
+ }
1031
+ })
1032
+ }
1033
+ });
1034
+ const upstreamBodyText = await upstream.clone().text().catch(() => "");
1035
+ let upstreamBody = null;
1036
+ try {
1037
+ upstreamBody = upstreamBodyText ? JSON.parse(upstreamBodyText) : null;
1038
+ } catch {
1039
+ upstreamBody = null;
1040
+ }
1041
+ if (isRouterAbEd25519OperationInProgressResponse({
1042
+ status: upstream.status,
1043
+ bodyText: upstreamBodyText
1044
+ })) return upstream;
1045
+ if (!upstream.ok || !isPlainObject(upstreamBody)) return requireCompletedEd25519OperationResponse(await completeEd25519Operation({
1046
+ ctx: input.ctx,
1047
+ operation: execution.operation,
1048
+ result: upstream.status < 500 ? "failed_before_side_effect" : "failed_after_side_effect",
1049
+ response: buildEd25519ReplayResponse({
1050
+ response: upstream,
1051
+ bodyText: upstreamBodyText
1052
+ })
1053
+ }));
1054
+ return new Response(JSON.stringify({
1055
+ ...upstreamBody,
1056
+ authorized_operation: buildEd25519VerifiedStepUpAuthorizedOperationReceipt({ authorization })
1057
+ }), {
1058
+ status: upstream.status,
1059
+ statusText: upstream.statusText,
1060
+ headers: new Headers(upstream.headers)
1061
+ });
1062
+ }
1063
+ if (authorization.phase !== "finalize") throw new Error("Operation step-up finalize authorization phase changed");
1064
+ const validatedAuthorization = await validateEd25519VerifiedStepUpAuthorizedOperation({
1065
+ ctx: input.ctx,
1066
+ body: input.body,
1067
+ authorization
1068
+ });
1069
+ if (!validatedAuthorization.ok) return validatedAuthorization.response;
1070
+ const replay = replayCompletedEd25519Operation(validatedAuthorization.operation);
1071
+ if (replay) return replay;
1072
+ const upstream = await proxyEd25519OwnerLaneExecution({
1073
+ ctx: input.ctx,
1074
+ authorization,
1075
+ authorizedOperation: validatedAuthorization.operation,
1076
+ body: {
1077
+ ...input.body,
1078
+ authorized_operation: buildRouterAbEd25519AuthorizedOperationWire({
1079
+ operation: validatedAuthorization.operation,
1080
+ binding: {
1081
+ kind: "operation_step_up",
1082
+ authorizationSessionId: authorization.session.sessionId,
1083
+ orgId: authorization.session.runtimePolicyScope.orgId,
1084
+ projectId: authorization.session.runtimePolicyScope.projectId,
1085
+ environment: authorization.session.runtimePolicyScope.envId,
1086
+ subjectId: authorization.session.principalId
1087
+ }
1088
+ })
1089
+ }
1090
+ });
1091
+ const upstreamBodyText = await upstream.clone().text().catch(() => "");
1092
+ if (isRouterAbEd25519OperationInProgressResponse({
1093
+ status: upstream.status,
1094
+ bodyText: upstreamBodyText
1095
+ })) return upstream;
1096
+ return requireCompletedEd25519OperationResponse(await completeEd25519Operation({
1097
+ ctx: input.ctx,
1098
+ operation: validatedAuthorization.operation,
1099
+ result: upstream.ok ? "succeeded" : upstream.status < 500 ? "failed_before_side_effect" : "failed_after_side_effect",
1100
+ response: buildEd25519ReplayResponse({
1101
+ response: upstream,
1102
+ bodyText: upstreamBodyText
1103
+ })
1104
+ }));
1105
+ }
1106
+ if (input.phase === "prepare") {
1107
+ const authorized = await authorizeEd25519ReusableWalletSessionOperation({
1108
+ ctx: input.ctx,
1109
+ body: input.body,
1110
+ authorization
1111
+ });
1112
+ if (!authorized.ok) return authorized.response;
1113
+ const execution = decideEd25519NormalSigningExecution({
1114
+ phase: "prepare",
1115
+ admissionKind: authorized.admission.kind,
1116
+ operation: authorized.admission.operation
1117
+ });
1118
+ if (execution.kind !== "execute") return execution.response;
1119
+ if (authorized.admission.kind !== "claimed") throw new Error("Ed25519 prepare execution claim changed");
1120
+ const ownerDecision = decideRouterAbEd25519OwnerOperationAuthorization({ operation: execution.operation });
1121
+ if (ownerDecision.kind !== "authorized") return json({
1122
+ ok: false,
1123
+ code: ownerDecision.kind === "denied" ? ownerDecision.denial.code : "authorization_unavailable",
1124
+ message: ownerDecision.kind === "denied" ? ownerDecision.denial.message : "Ed25519 operation step-up was not admitted",
1125
+ authorization_decision: ownerDecision.kind === "denied" ? ownerDecision : {
1126
+ kind: "denied",
1127
+ denial: {
1128
+ code: "authorization_unavailable",
1129
+ message: "Ed25519 operation step-up was not admitted"
1130
+ }
1131
+ }
1132
+ }, { status: 403 });
1133
+ const upstream = await proxyEd25519OwnerLaneExecution({
1134
+ ctx: input.ctx,
1135
+ authorization,
1136
+ authorizedOperation: execution.operation,
1137
+ body: {
1138
+ ...input.body,
1139
+ authorized_operation: buildRouterAbEd25519AuthorizedOperationWire({
1140
+ operation: execution.operation,
1141
+ binding: { ...buildEd25519GatewayOwnerWalletSessionBinding(authorization) }
1142
+ })
1143
+ }
1144
+ });
1145
+ const upstreamBodyText = await upstream.clone().text().catch(() => "");
1146
+ let upstreamBody = null;
1147
+ try {
1148
+ upstreamBody = upstreamBodyText ? JSON.parse(upstreamBodyText) : null;
1149
+ } catch {
1150
+ upstreamBody = null;
1151
+ }
1152
+ if (isRouterAbEd25519OperationInProgressResponse({
1153
+ status: upstream.status,
1154
+ bodyText: upstreamBodyText
1155
+ })) return upstream;
1156
+ if (!upstream.ok || !isPlainObject(upstreamBody)) return requireCompletedEd25519OperationResponse(await completeEd25519Operation({
1157
+ ctx: input.ctx,
1158
+ operation: execution.operation,
1159
+ result: upstream.status < 500 ? "failed_before_side_effect" : "failed_after_side_effect",
1160
+ response: buildEd25519ReplayResponse({
1161
+ response: upstream,
1162
+ bodyText: upstreamBodyText
1163
+ })
1164
+ }));
1165
+ return new Response(JSON.stringify({
1166
+ ...upstreamBody,
1167
+ authorized_operation: authorized.admission.receipt
1168
+ }), {
1169
+ status: upstream.status,
1170
+ statusText: upstream.statusText,
1171
+ headers: new Headers(upstream.headers)
1172
+ });
1173
+ }
1174
+ const validatedAuthorization = await validateEd25519ReusableAuthorizedOperation({
1175
+ ctx: input.ctx,
1176
+ body: input.body,
1177
+ authorization
1178
+ });
1179
+ if (!validatedAuthorization.ok) return validatedAuthorization.response;
1180
+ const replay = replayCompletedEd25519Operation(validatedAuthorization.operation);
1181
+ if (replay) return replay;
1182
+ const upstream = await proxyEd25519OwnerLaneExecution({
1183
+ ctx: input.ctx,
1184
+ authorization,
1185
+ authorizedOperation: validatedAuthorization.operation,
1186
+ body: {
1187
+ ...input.body,
1188
+ authorized_operation: buildRouterAbEd25519AuthorizedOperationWire({
1189
+ operation: validatedAuthorization.operation,
1190
+ binding: { ...buildEd25519GatewayOwnerWalletSessionBinding(authorization) }
1191
+ })
1192
+ }
1193
+ });
1194
+ const upstreamBodyText = await upstream.clone().text().catch(() => "");
1195
+ if (isRouterAbEd25519OperationInProgressResponse({
1196
+ status: upstream.status,
1197
+ bodyText: upstreamBodyText
1198
+ })) return upstream;
1199
+ return requireCompletedEd25519OperationResponse(await completeEd25519Operation({
1200
+ ctx: input.ctx,
1201
+ operation: validatedAuthorization.operation,
1202
+ result: upstream.ok ? "succeeded" : upstream.status < 500 ? "failed_before_side_effect" : "failed_after_side_effect",
1203
+ response: buildEd25519ReplayResponse({
1204
+ response: upstream,
1205
+ bodyText: upstreamBodyText
1206
+ })
1207
+ }));
1208
+ }
1209
+ async function handleThresholdEd25519(ctx) {
1210
+ if (ctx.method === "GET" && ctx.pathname === "/router-ab/ed25519/healthz") {
1211
+ if (!ctx.opts.routerAbNormalSigningRouterProxy) {
1212
+ const body = {
1213
+ ok: false,
1214
+ code: "not_configured",
1215
+ message: "Router A/B Ed25519 signing runtime is not configured on this server",
1216
+ configured: false
1217
+ };
1218
+ return json(body, { status: thresholdEd25519StatusCode(body) });
1219
+ }
1220
+ return json({
1221
+ ok: true,
1222
+ configured: true
1223
+ }, { status: 200 });
1224
+ }
1225
+ if (ctx.method !== "POST") return null;
1226
+ const pathname = ctx.pathname;
1227
+ if (pathname !== "/router-ab/wallet-session/ed25519" && pathname !== "/router-ab/ed25519/sign/prepare" && pathname !== "/router-ab/ed25519/sign") return null;
1228
+ const bodyUnknown = await readJson(ctx.request.clone());
1229
+ const body = bodyUnknown && typeof bodyUnknown === "object" && !Array.isArray(bodyUnknown) ? bodyUnknown : {};
1230
+ switch (pathname) {
1231
+ case ROUTER_AB_ED25519_NORMAL_SIGNING_PREPARE_PATH: return handleRouterAbEd25519NormalSigningRoute({
1232
+ ctx,
1233
+ body,
1234
+ phase: "prepare"
1235
+ });
1236
+ case ROUTER_AB_ED25519_NORMAL_SIGNING_PATH: return handleRouterAbEd25519NormalSigningRoute({
1237
+ ctx,
1238
+ body,
1239
+ phase: "finalize"
1240
+ });
1241
+ }
1242
+ switch (pathname) {
1243
+ case ROUTER_AB_ED25519_WALLET_SESSION_PATH: {
1244
+ if (body.kind === "router_ab_ed25519_yao_operation_step_up_grant_v1") {
1245
+ const parsedGrant = parseThresholdEd25519OperationStepUpGrantRequest(body);
1246
+ if (!parsedGrant.ok) return json(parsedGrant.body, { status: thresholdEd25519StatusCode(parsedGrant.body) });
1247
+ return await issueEd25519OperationStepUpGrant({
1248
+ ctx,
1249
+ request: parsedGrant.request
1250
+ });
1251
+ }
1252
+ const parsedBody = parseThresholdEd25519SessionRouteRequest(body);
1253
+ if (!parsedBody.ok) return json(parsedBody.body, { status: thresholdEd25519StatusCode(parsedBody.body) });
1254
+ const b = parsedBody.request;
1255
+ ctx.logger.info("[threshold-ed25519] request", {
1256
+ route: pathname,
1257
+ method: ctx.method,
1258
+ relayerKeyId: typeof b.relayerKeyId === "string" ? b.relayerKeyId : void 0,
1259
+ sessionPolicy: b.sessionPolicy ? { version: b.sessionPolicy.version } : void 0
1260
+ });
1261
+ const authority = b.sessionPolicy.authority;
1262
+ if (!isPasskeyWalletAuthAuthority(authority)) return json({
1263
+ ok: false,
1264
+ code: "invalid_body",
1265
+ message: "Ed25519 Yao WebAuthn budget refresh requires passkey authority"
1266
+ }, { status: 400 });
1267
+ if (b.relayerKeyId !== b.sessionPolicy.relayerKeyId) return json({
1268
+ ok: false,
1269
+ code: "invalid_body",
1270
+ message: "relayerKeyId must match the Ed25519 Yao session policy"
1271
+ }, { status: 400 });
1272
+ const runtimePolicyScopeResolution = await resolveThresholdRuntimePolicyScope({
1273
+ explicitScopeRaw: b.sessionPolicy.runtimePolicyScope,
1274
+ projectEnvironmentIdRaw: b.projectEnvironmentId,
1275
+ headers: ctx.request.headers,
1276
+ origin: ctx.request.headers.get("origin"),
1277
+ publishableKeyAuth: ctx.opts.publishableKeyAuth || null,
1278
+ orgProjectEnv: ctx.opts.orgProjectEnv || null
1279
+ });
1280
+ if (!runtimePolicyScopeResolution.ok) return json({
1281
+ ok: false,
1282
+ code: runtimePolicyScopeResolution.code,
1283
+ message: runtimePolicyScopeResolution.message
1284
+ }, { status: runtimePolicyScopeResolution.status });
1285
+ const runtimePolicyScope = runtimePolicyScopeResolution.scope;
1286
+ if (!runtimePolicyScope || !sameThresholdEd25519RuntimePolicyScopeV1(runtimePolicyScope, b.sessionPolicy.runtimePolicyScope)) return json({
1287
+ ok: false,
1288
+ code: "scope_mismatch",
1289
+ message: "Ed25519 Yao runtime policy scope does not match the active environment"
1290
+ }, { status: 403 });
1291
+ const authorization = await validatePasskeyEd25519SessionAuthorization({
1292
+ ctx,
1293
+ request: b,
1294
+ authority
1295
+ });
1296
+ if (!authorization.ok) return authorization.response;
1297
+ const refreshRequest = {
1298
+ kind: "router_ab_ed25519_yao_budget_refresh_v1",
1299
+ sessionPolicy: b.sessionPolicy,
1300
+ authorization: authorization.authorization
1301
+ };
1302
+ const result = await ctx.service.walletRegistration.refreshEd25519YaoWalletSession(refreshRequest);
1303
+ const status = thresholdEd25519StatusCode(result);
1304
+ ctx.logger.info("[threshold-ed25519] response", {
1305
+ route: pathname,
1306
+ status,
1307
+ ok: result.ok,
1308
+ ..."code" in result && result.code ? { code: result.code } : {}
1309
+ });
1310
+ return json(result, { status });
1311
+ }
1312
+ default: return null;
1313
+ }
1314
+ }
1315
+ function sameThresholdEd25519RuntimePolicyScopeV1(left, right) {
1316
+ return left.orgId === right.orgId && left.projectId === right.projectId && left.envId === right.envId && left.signingRootVersion === right.signingRootVersion;
1317
+ }
1318
+ //#endregion
1319
+ export { buildEd25519ReplayResponse, decideEd25519NormalSigningExecution, decideEd25519OperationStepUpExecution, handleThresholdEd25519, isRouterAbEd25519OperationInProgressResponse, replayCompletedEd25519Operation, requireCompletedEd25519OperationResponse };
1320
+
1321
+ //# sourceMappingURL=thresholdEd25519.js.map