@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,2084 @@
1
+ import { parseChallengeSubjectId, parseEmailOtpChallengeId, parseOrgId, parseProviderSubject, parseRootShareEpoch, parseWalletAuthMethodId, parseWalletAuthorityId, parseWebAuthnRpId } from "../../../../shared-ts/src/utils/domainIds.js";
2
+ import { parseDeviceId } from "../../../../shared-ts/src/authorization/capabilityKinds.js";
3
+ import { parseDigestB64u } from "../../../../shared-ts/src/utils/canonicalPrimitives.js";
4
+ import { parseWalletAddAuthMethodRegistrationOptions } from "../../../../shared-ts/src/utils/addAuthMethodRegistration.js";
5
+ import { parseWalletAuthorityV1 } from "../../../../shared-ts/src/authorization/walletAuthority.js";
6
+ import { parseImplicitNearAccountId, parseNamedNearAccountId } from "../../../../shared-ts/src/utils/near.js";
7
+ import { addAuthMethodIntentGrantFromString, addSignerIntentGrantFromString, createServerAllocatedWalletId, nearEd25519SigningKeyIdFromString, normalizeAddAuthMethodInput, normalizeAddAuthMethodIntentCaller, normalizeAddSignerSelection, normalizeRegistrationAuthMethodInput, normalizeRegistrationSignerPlan, parseWalletAuthMethodRecordV2, registrationSignerBranchKeyFromString, registrationSignerSetSelectionFromPlan, walletIdFromString } from "../../../../shared-ts/src/utils/registrationIntent.js";
8
+ import { parseWebAuthnAuthenticatorDeviceInfo, unknownWebAuthnAuthenticatorDeviceInfo } from "../../../../shared-ts/src/utils/webauthnDeviceInfo.js";
9
+ import { parseRouterAbEd25519YaoRegistrationActivationAdmissionReceiptV1, parseRouterAbEd25519YaoRegistrationActivationResultV1, parseRouterAbEd25519YaoRegistrationAdmissionRequestV1 } from "../../../../shared-ts/src/utils/routerAbEd25519Yao.js";
10
+ import { deriveEvmFamilySigningKeySlotId, parseEvmFamilySigningKeySlotId } from "../../../../shared-ts/src/signing-lanes/evmFamilySigningKeySlotId.js";
11
+ import { derivationClientSharePublicKey33B64uFromString, ecdsaClientRootPublicKey33B64uFromString } from "../../../../shared-ts/src/threshold/ecdsaDerivationRoleLocalBootstrap.js";
12
+ import { normalizeOptionalTrimmedString } from "../../../../shared-ts/src/utils/normalize.js";
13
+ import "../../../../shared-ts/src/utils/validation.js";
14
+ import { parseWalletAuthAuthority, parseWalletAuthAuthorityRef } from "../../../../shared-ts/src/utils/walletAuthAuthority.js";
15
+ import { parseRouterAbEcdsaDerivationNormalSigningStateV1, parseRouterAbEcdsaDerivationPublicCapabilityV1, parseRouterAbEcdsaRegistrationActivationReceiptV1, parseRouterAbEcdsaRegistrationRequestFactsV1, parseRouterAbEcdsaRegistrationRequestV1, parseRouterAbEcdsaStrictForwardedRegistrationResponseV1, parseRouterAbEcdsaVerifiedClientActivationFactsV1 } from "../../../../shared-ts/src/utils/routerAbEcdsaDerivation.js";
16
+ import { secureRandomBase64Url } from "../../../../shared-ts/src/utils/secureRandomId.js";
17
+ import { parseRouterAbEd25519NormalSigningState } from "../../../../shared-ts/src/utils/signingSessionSeal.js";
18
+ import { thresholdEcdsaChainTargetFromValue, thresholdEcdsaChainTargetKey } from "../../../../core/thresholdEcdsaChainTarget.js";
19
+ import { buildWalletEcdsaSignerRecord, parseWalletEd25519SignerRecord } from "../../../../core/d1WalletStore.js";
20
+ import { registrationPreparationIdFromString } from "../../../../core/types.js";
21
+ import "../../../../shared-ts/src/signing-lanes/index.js";
22
+ import { parsePasskeyCustodyEnvelopeRecord } from "../../../../shared-ts/src/passkey-custody/custodyEnvelope.js";
23
+ import "../../../../shared-ts/src/passkey-custody/index.js";
24
+ import { parseEcdsaDerivationPublicIdentity, parseThresholdEd25519AuthorityScope, thresholdEd25519AuthorityScopeFromWalletAuthAuthority, thresholdEd25519AuthorityScopesMatch } from "../../../../core/ThresholdService/validation.js";
25
+ import { toRecordValue } from "../auth/d1RouterApiAuthBoundary.js";
26
+ import { parseStoredRouterAbEcdsaPendingActivationV1 } from "../../../domains/ecdsa/routerAbEcdsaStrictRegistration.js";
27
+ import { parseStoredRegistrationSignerPlan, parseStoredWalletRegistrationPreparedContext, storedRegistrationSignerPlansMatch } from "../../../../core/RegistrationCeremonyStore.js";
28
+ //#region src/router/cloudflare/d1/registration/d1RegistrationCeremonyRecords.ts
29
+ function requireEvmFamilySigningKeySlotId(value) {
30
+ const parsed = parseEvmFamilySigningKeySlotId(value);
31
+ if (!parsed.ok) throw new Error(parsed.error.message);
32
+ return parsed.value;
33
+ }
34
+ function createD1ServerAllocatedWalletId() {
35
+ return createServerAllocatedWalletId();
36
+ }
37
+ function inferRuntimePolicyScopeFromSigningRoot(input) {
38
+ const signingRootId = normalizeOptionalTrimmedString(input.signingRootId);
39
+ const signingRootVersion = normalizeOptionalTrimmedString(input.signingRootVersion);
40
+ if (!signingRootId || !signingRootVersion) return void 0;
41
+ const [projectId, envId] = signingRootId.split(":");
42
+ if (!projectId || !envId) return void 0;
43
+ return {
44
+ orgId: normalizeOptionalTrimmedString(input.orgId) || "",
45
+ projectId,
46
+ envId,
47
+ signingRootVersion
48
+ };
49
+ }
50
+ function buildRegistrationIntent(input) {
51
+ const nonceB64u = secureRandomBase64Url(32);
52
+ const foundingWalletAuthMethodId = input.foundingWalletAuthMethodId;
53
+ if (input.runtimePolicyScope) return {
54
+ version: "registration_intent_v1",
55
+ walletId: input.walletId,
56
+ authMethod: input.authMethod,
57
+ signerSelection: input.signerSelection,
58
+ foundingWalletAuthMethodId,
59
+ runtimePolicyScope: input.runtimePolicyScope,
60
+ nonceB64u
61
+ };
62
+ return {
63
+ version: "registration_intent_v1",
64
+ walletId: input.walletId,
65
+ authMethod: input.authMethod,
66
+ signerSelection: input.signerSelection,
67
+ foundingWalletAuthMethodId,
68
+ nonceB64u
69
+ };
70
+ }
71
+ function buildAddSignerIntent(input) {
72
+ const nonceB64u = secureRandomBase64Url(32);
73
+ if (input.runtimePolicyScope) return {
74
+ version: "add_signer_intent_v1",
75
+ walletId: input.walletId,
76
+ signerSelection: input.signerSelection,
77
+ runtimePolicyScope: input.runtimePolicyScope,
78
+ nonceB64u
79
+ };
80
+ return {
81
+ version: "add_signer_intent_v1",
82
+ walletId: input.walletId,
83
+ signerSelection: input.signerSelection,
84
+ nonceB64u
85
+ };
86
+ }
87
+ /**
88
+ * Mints the intent, including the target method id the source proof will sign.
89
+ *
90
+ * The id is allocated here rather than in `start` so a fresh proof can name the
91
+ * method it authorizes creating. The caller branch is carried through
92
+ * unchanged: it decides what the source has to present, and it is part of the
93
+ * digest so a proof taken over one branch cannot start the other.
94
+ */
95
+ function buildAddAuthMethodIntent(input) {
96
+ const nonceB64u = secureRandomBase64Url(32);
97
+ const common = {
98
+ version: "add_auth_method_intent_v1",
99
+ walletId: input.walletId,
100
+ authMethod: input.authMethod,
101
+ targetWalletAuthMethodId: input.targetWalletAuthMethodId,
102
+ ...input.runtimePolicyScope ? { runtimePolicyScope: input.runtimePolicyScope } : {},
103
+ nonceB64u
104
+ };
105
+ switch (input.caller.caller) {
106
+ case "same_device_addition": return {
107
+ ...common,
108
+ caller: "same_device_addition",
109
+ source: input.caller.source
110
+ };
111
+ case "linked_device_ceremony": return {
112
+ ...common,
113
+ caller: "linked_device_ceremony"
114
+ };
115
+ default: return unreachableAddAuthMethodIntentCaller(input.caller);
116
+ }
117
+ }
118
+ function unreachableAddAuthMethodIntentCaller(value) {
119
+ throw new Error(`Unhandled add-auth-method intent caller: ${String(value)}`);
120
+ }
121
+ function addAuthMethodInputMatches(left, right) {
122
+ if (left.kind !== right.kind) return false;
123
+ switch (left.kind) {
124
+ case "passkey": return right.kind === "passkey" && left.rpId === right.rpId;
125
+ case "email_otp": return right.kind === "email_otp" && left.email.toLowerCase() === right.email.toLowerCase();
126
+ }
127
+ return unreachableAddAuthMethodInput(left);
128
+ }
129
+ function addSignerSelectionMatches(left, right) {
130
+ if (left.mode !== right.mode) return false;
131
+ switch (left.mode) {
132
+ case "ecdsa": return right.mode === "ecdsa" && positiveIntegerArraysEqual(left.ecdsa.participantIds, right.ecdsa.participantIds) && thresholdEcdsaChainTargetsEqual(left.ecdsa.chainTargets, right.ecdsa.chainTargets);
133
+ case "ed25519": return right.mode === "ed25519" && addSignerEd25519SelectionsMatch(left, right);
134
+ }
135
+ return unreachableAddSignerSelection(left);
136
+ }
137
+ function parseWalletIdForIntent(raw) {
138
+ const value = normalizeOptionalTrimmedString(raw);
139
+ if (!value) return null;
140
+ try {
141
+ return walletIdFromString(value);
142
+ } catch {
143
+ return null;
144
+ }
145
+ }
146
+ function parseD1RegistrationIntent(raw) {
147
+ const record = toRecordValue(raw);
148
+ if (!record || record.version !== "registration_intent_v1") return null;
149
+ const walletId = parseWalletIdForIntent(record.walletId);
150
+ const authMethod = normalizeRegistrationAuthMethodInput(record.authMethod);
151
+ const signerPlan = normalizeRegistrationSignerPlan(record.signerSelection);
152
+ const signerSelection = signerPlan.ok ? registrationSignerSetSelectionFromPlan(signerPlan.value, { normalizeEcdsaChainTarget: thresholdEcdsaChainTargetFromValue }) : signerPlan;
153
+ const nonceB64u = normalizeOptionalTrimmedString(record.nonceB64u);
154
+ const runtimePolicyScope = parseD1RuntimePolicyScope(record.runtimePolicyScope);
155
+ const foundingWalletAuthMethodId = parseWalletAuthMethodId(record.foundingWalletAuthMethodId);
156
+ if (!walletId || !authMethod || !signerSelection.ok || !nonceB64u) return null;
157
+ if (!foundingWalletAuthMethodId.ok) return null;
158
+ if (record.runtimePolicyScope !== void 0 && !runtimePolicyScope) return null;
159
+ if (runtimePolicyScope) return {
160
+ version: "registration_intent_v1",
161
+ walletId,
162
+ authMethod,
163
+ signerSelection: signerSelection.value,
164
+ foundingWalletAuthMethodId: foundingWalletAuthMethodId.value,
165
+ runtimePolicyScope,
166
+ nonceB64u
167
+ };
168
+ return {
169
+ version: "registration_intent_v1",
170
+ walletId,
171
+ authMethod,
172
+ signerSelection: signerSelection.value,
173
+ foundingWalletAuthMethodId: foundingWalletAuthMethodId.value,
174
+ nonceB64u
175
+ };
176
+ }
177
+ function parseD1StoredWalletRegistrationCeremony(raw) {
178
+ const record = toRecordValue(raw);
179
+ if (!record) return null;
180
+ const registrationCeremonyId = normalizeOptionalTrimmedString(record.registrationCeremonyId);
181
+ const intent = parseD1RegistrationIntent(record.intent);
182
+ const digestB64u = normalizeOptionalTrimmedString(record.digestB64u);
183
+ const orgId = normalizeOptionalTrimmedString(record.orgId);
184
+ const expiresAtMs = safeInteger(record.expiresAtMs);
185
+ const foundingWalletAuthorityId = parseWalletAuthorityId(record.foundingWalletAuthorityId);
186
+ const foundingDeviceId = parseDeviceId(record.foundingDeviceId);
187
+ const foundingWalletAuthMethodId = parseWalletAuthMethodId(record.foundingWalletAuthMethodId);
188
+ const authorityState = parseD1WalletRegistrationCeremonyAuthorityState(record.authorityState);
189
+ const signerPlan = parseStoredRegistrationSignerPlan(record.signerPlan);
190
+ const preparedContext = parseStoredWalletRegistrationPreparedContext(record.preparedContext);
191
+ const intentSignerPlan = intent ? parseStoredRegistrationSignerPlan(intent.signerSelection) : null;
192
+ const signerState = parseD1StoredWalletRegistrationSignerState(record.signerState);
193
+ const signingRootId = normalizeOptionalTrimmedString(record.signingRootId);
194
+ const signingRootVersion = normalizeOptionalTrimmedString(record.signingRootVersion);
195
+ if (!registrationCeremonyId || !intent || !digestB64u || !orgId || !signingRootId || !signingRootVersion || !foundingWalletAuthorityId.ok || !foundingDeviceId.ok || !foundingWalletAuthMethodId.ok || expiresAtMs === null || !authorityState || !signerPlan || !preparedContext || !intentSignerPlan || !storedRegistrationSignerPlansMatch(signerPlan, intentSignerPlan) || signingRootId && preparedContext.signingRootId !== signingRootId || signingRootVersion && preparedContext.signingRootVersion !== signingRootVersion || !signerState) return null;
196
+ const ceremony = {
197
+ registrationCeremonyId,
198
+ foundingWalletAuthorityId: foundingWalletAuthorityId.value,
199
+ foundingDeviceId: foundingDeviceId.value,
200
+ foundingWalletAuthMethodId: foundingWalletAuthMethodId.value,
201
+ intent,
202
+ digestB64u,
203
+ signerPlan,
204
+ preparedContext,
205
+ orgId,
206
+ expiresAtMs,
207
+ authorityState,
208
+ signerState
209
+ };
210
+ const expectedOrigin = normalizeOptionalTrimmedString(record.expectedOrigin);
211
+ if (signingRootId) ceremony.signingRootId = signingRootId;
212
+ if (signingRootVersion) ceremony.signingRootVersion = signingRootVersion;
213
+ if (expectedOrigin) ceremony.expectedOrigin = expectedOrigin;
214
+ return ceremony;
215
+ }
216
+ /**
217
+ * Refactor 94C. Setup creates the ceremony before the WebAuthn proof exists,
218
+ * so the stored authority is a two-arm state rather than a required record.
219
+ */
220
+ function parseD1WalletRegistrationCeremonyAuthorityState(raw) {
221
+ const record = toRecordValue(raw);
222
+ if (!record) return null;
223
+ switch (record.kind) {
224
+ case "awaiting_proof": {
225
+ const authMethod = normalizeRegistrationAuthMethodInput(record.authMethod);
226
+ return authMethod ? {
227
+ kind: "awaiting_proof",
228
+ authMethod
229
+ } : null;
230
+ }
231
+ case "verified": {
232
+ const authority = parseD1RegistrationAuthority(record.authority);
233
+ return authority ? {
234
+ kind: "verified",
235
+ authority
236
+ } : null;
237
+ }
238
+ default: return null;
239
+ }
240
+ }
241
+ function parseD1StoredWalletAddAuthMethodFinalizeReplay(raw) {
242
+ const record = toRecordValue(raw);
243
+ if (!record || record.kind !== "wallet_add_auth_method_finalize_replay_v1") return null;
244
+ const addAuthMethodCeremonyId = normalizeOptionalTrimmedString(record.addAuthMethodCeremonyId);
245
+ const requestDigestB64u = normalizeOptionalTrimmedString(record.requestDigestB64u);
246
+ const createdAtMs = safeInteger(record.createdAtMs);
247
+ const expiresAtMs = safeInteger(record.expiresAtMs);
248
+ const response = parseD1WalletAddAuthMethodFinalizeReplayResponse(record.response);
249
+ if (!addAuthMethodCeremonyId || !requestDigestB64u || createdAtMs == null || expiresAtMs == null || expiresAtMs <= createdAtMs || !response) return null;
250
+ return {
251
+ kind: "wallet_add_auth_method_finalize_replay_v1",
252
+ addAuthMethodCeremonyId,
253
+ requestDigestB64u,
254
+ response,
255
+ createdAtMs,
256
+ expiresAtMs
257
+ };
258
+ }
259
+ function parseD1WalletAddAuthMethodFinalizeReplayResponse(raw) {
260
+ const record = toRecordValue(raw);
261
+ if (!record || record.ok !== true) return null;
262
+ const walletId = parseWalletIdForIntent(record.walletId);
263
+ const authority = parseWalletAuthAuthority(record.authority);
264
+ if (!walletId || !authority || authority.walletId !== walletId) return null;
265
+ const authMethod = toRecordValue(record.authMethod);
266
+ if (!authMethod || authMethod.status !== "active") return null;
267
+ if (authMethod.kind === "email_otp") return {
268
+ ok: true,
269
+ walletId,
270
+ authority,
271
+ authMethod: {
272
+ kind: "email_otp",
273
+ status: "active"
274
+ }
275
+ };
276
+ const parsedRpId = parseWebAuthnRpId(record.rpId);
277
+ const rpId = parsedRpId.ok ? parsedRpId.value : null;
278
+ const credentialIdB64u = normalizeOptionalTrimmedString(authMethod.credentialIdB64u);
279
+ const credentialPublicKeyB64u = normalizeOptionalTrimmedString(authMethod.credentialPublicKeyB64u);
280
+ const counter = Number(authMethod.counter);
281
+ if (authMethod.kind !== "passkey" || !rpId || !credentialIdB64u || !credentialPublicKeyB64u || !Number.isSafeInteger(counter) || counter < 0) return null;
282
+ return {
283
+ ok: true,
284
+ walletId,
285
+ authority,
286
+ rpId,
287
+ authMethod: {
288
+ kind: "passkey",
289
+ status: "active",
290
+ credentialIdB64u,
291
+ credentialPublicKeyB64u,
292
+ counter,
293
+ device: parseWebAuthnAuthenticatorDeviceInfo(authMethod.device) ?? unknownWebAuthnAuthenticatorDeviceInfo()
294
+ }
295
+ };
296
+ }
297
+ function parseD1StoredWalletAddSignerFinalizeReplay(raw) {
298
+ const record = toRecordValue(raw);
299
+ if (!record || record.kind !== "wallet_add_signer_finalize_replay_v1") return null;
300
+ const addSignerCeremonyId = normalizeOptionalTrimmedString(record.addSignerCeremonyId);
301
+ const idempotencyKey = normalizeOptionalTrimmedString(record.idempotencyKey);
302
+ const response = parseD1WalletAddSignerFinalizeSuccessResponse(record.response);
303
+ const request = parseD1WalletAddSignerFinalizeRequest(record.request);
304
+ const createdAtMs = safeInteger(record.createdAtMs);
305
+ const expiresAtMs = safeInteger(record.expiresAtMs);
306
+ if (!addSignerCeremonyId || !idempotencyKey || !response || !request || request.addSignerCeremonyId !== addSignerCeremonyId || request.idempotencyKey !== idempotencyKey || request.kind !== response.kind || createdAtMs === null || createdAtMs <= 0 || expiresAtMs === null || expiresAtMs <= 0) return null;
307
+ return {
308
+ kind: "wallet_add_signer_finalize_replay_v1",
309
+ addSignerCeremonyId,
310
+ idempotencyKey,
311
+ request,
312
+ response,
313
+ createdAtMs,
314
+ expiresAtMs
315
+ };
316
+ }
317
+ function parseD1WalletAddSignerFinalizeSuccessResponse(raw) {
318
+ const record = toRecordValue(raw);
319
+ if (!record || record.ok !== true) return null;
320
+ const walletId = parseWalletIdForIntent(record.walletId);
321
+ if (!walletId) return null;
322
+ if (record.kind === "near_ed25519") {
323
+ const rpId = normalizeOptionalTrimmedString(record.rpId);
324
+ const credentialIdB64u = normalizeOptionalTrimmedString(record.credentialIdB64u);
325
+ const ed25519 = parseD1WalletEd25519YaoSignerPublicResult(record.ed25519);
326
+ if (!rpId || !credentialIdB64u || !ed25519) return null;
327
+ return {
328
+ ok: true,
329
+ kind: "near_ed25519",
330
+ walletId,
331
+ rpId,
332
+ credentialIdB64u,
333
+ ed25519
334
+ };
335
+ }
336
+ if (record.kind !== "evm_family_ecdsa") return null;
337
+ const ecdsa = parseD1WalletRegistrationFinalizeEcdsa(record.ecdsa);
338
+ if (!ecdsa) return null;
339
+ const rpId = normalizeOptionalTrimmedString(record.rpId);
340
+ return rpId ? {
341
+ ok: true,
342
+ kind: "evm_family_ecdsa",
343
+ walletId,
344
+ rpId,
345
+ ecdsa
346
+ } : {
347
+ ok: true,
348
+ kind: "evm_family_ecdsa",
349
+ walletId,
350
+ ecdsa
351
+ };
352
+ }
353
+ function parseD1WalletAddSignerFinalizeTerminalResponse(raw) {
354
+ const record = toRecordValue(raw);
355
+ if (!record) return null;
356
+ if (record.ok === true) return parseD1WalletAddSignerFinalizeSuccessResponse(record);
357
+ const code = normalizeOptionalTrimmedString(record.code);
358
+ const message = normalizeOptionalTrimmedString(record.message);
359
+ return record.ok === false && code && message ? {
360
+ ok: false,
361
+ code,
362
+ message
363
+ } : null;
364
+ }
365
+ function parseD1WalletRegistrationFinalizeReplayResponse(raw) {
366
+ const record = toRecordValue(raw);
367
+ if (!record || record.ok !== true) return null;
368
+ const walletId = parseWalletIdForIntent(record.walletId);
369
+ const authMethod = parseD1WalletRegistrationFinalizeAuthMethod(record.authMethod);
370
+ const authority = parseWalletAuthAuthority(record.authority);
371
+ const foundingAuthority = parseWalletAuthorityV1(record.foundingAuthority);
372
+ const foundingAuthMethod = parseWalletAuthMethodRecordV2(record.foundingAuthMethod);
373
+ if (!walletId || !authMethod || !authority || authority.walletId !== walletId || !foundingAuthority.ok || foundingAuthority.value.state !== "active" || foundingAuthority.value.walletId !== walletId || !foundingAuthMethod || foundingAuthMethod.status !== "active" || foundingAuthMethod.walletId !== walletId || foundingAuthMethod.walletAuthorityId !== foundingAuthority.value.authorityId || foundingAuthMethod.walletAuthMethodId !== authority.bindingId) return null;
374
+ const rpId = normalizeOptionalTrimmedString(record.rpId);
375
+ if (authMethod.kind === "passkey" && !rpId) return null;
376
+ if (authMethod.kind === "email_otp" && rpId) return null;
377
+ let custodyKeyManifestDigestB64u;
378
+ try {
379
+ custodyKeyManifestDigestB64u = parseDigestB64u(record.custodyKeyManifestDigestB64u);
380
+ } catch {
381
+ return null;
382
+ }
383
+ const ecdsa = parseD1WalletRegistrationFinalizeEcdsa(record.ecdsa);
384
+ if (record.kind === "evm_family_ecdsa") {
385
+ if (!ecdsa) return null;
386
+ if (authMethod.kind === "passkey") {
387
+ if (!rpId) return null;
388
+ return {
389
+ ok: true,
390
+ kind: "evm_family_ecdsa",
391
+ walletId,
392
+ rpId,
393
+ authority,
394
+ foundingAuthority: foundingAuthority.value,
395
+ foundingAuthMethod,
396
+ authMethod,
397
+ custodyKeyManifestDigestB64u,
398
+ ecdsa
399
+ };
400
+ }
401
+ return {
402
+ ok: true,
403
+ kind: "evm_family_ecdsa",
404
+ walletId,
405
+ authority,
406
+ foundingAuthority: foundingAuthority.value,
407
+ foundingAuthMethod,
408
+ authMethod,
409
+ custodyKeyManifestDigestB64u,
410
+ ecdsa
411
+ };
412
+ }
413
+ if (record.kind !== "near_ed25519") return null;
414
+ if (record.ecdsa !== void 0) return null;
415
+ const ed25519 = parseD1WalletRegistrationFinalizeEd25519(record.ed25519);
416
+ const authorityScope = parseThresholdEd25519AuthorityScope(record.authorityScope);
417
+ const accountProvisioning = parseD1RegistrationNearAccountProvisioning(record.accountProvisioning);
418
+ const resolvedAccount = parseD1ResolvedRegistrationNearAccount(record.resolvedAccount);
419
+ if (!ed25519 || !authorityScope || !thresholdEd25519AuthorityScopesMatch(authorityScope, thresholdEd25519AuthorityScopeFromWalletAuthAuthority(authority)) || !accountProvisioning || !resolvedAccount || ed25519.nearAccountId !== resolvedAccount.nearAccountId || ed25519.nearEd25519SigningKeyId !== resolvedAccount.nearEd25519SigningKeyId || !registrationNearProvisioningMatchesResolution(accountProvisioning, resolvedAccount)) return null;
420
+ if (ecdsa) return null;
421
+ if (authMethod.kind === "passkey") {
422
+ if (!rpId) return null;
423
+ return {
424
+ ok: true,
425
+ kind: "near_ed25519",
426
+ walletId,
427
+ rpId,
428
+ authority,
429
+ foundingAuthority: foundingAuthority.value,
430
+ foundingAuthMethod,
431
+ authMethod,
432
+ authorityScope,
433
+ accountProvisioning,
434
+ resolvedAccount,
435
+ custodyKeyManifestDigestB64u,
436
+ ed25519
437
+ };
438
+ }
439
+ return {
440
+ ok: true,
441
+ kind: "near_ed25519",
442
+ walletId,
443
+ authority,
444
+ foundingAuthority: foundingAuthority.value,
445
+ foundingAuthMethod,
446
+ authMethod,
447
+ authorityScope,
448
+ accountProvisioning,
449
+ resolvedAccount,
450
+ custodyKeyManifestDigestB64u,
451
+ ed25519
452
+ };
453
+ }
454
+ function hasExactKeys(record, expected) {
455
+ const actual = Object.keys(record);
456
+ return actual.length === expected.length && expected.every((key) => actual.includes(key));
457
+ }
458
+ function hasStrictRegistrationAuthorityRecord(raw) {
459
+ const record = toRecordValue(raw);
460
+ if (!record) return false;
461
+ if (record.kind === "passkey") {
462
+ const device = toRecordValue(record.device);
463
+ return hasExactKeys(record, [
464
+ "kind",
465
+ "walletId",
466
+ "rpId",
467
+ "credentialIdB64u",
468
+ "credentialPublicKeyB64u",
469
+ "counter",
470
+ "device",
471
+ "registrationIntentDigestB64u"
472
+ ]) && device !== null && hasStrictWebAuthnDeviceInfo(device);
473
+ }
474
+ if (record.kind !== "email_otp") return false;
475
+ if (record.proofKind === "otp_challenge") return hasExactKeys(record, [
476
+ "kind",
477
+ "proofKind",
478
+ "walletId",
479
+ "providerSubject",
480
+ "challengeSubjectId",
481
+ "email",
482
+ "emailHashHex",
483
+ "challengeId",
484
+ "registrationAuthorityId",
485
+ "originalWalletId",
486
+ "finalWalletId",
487
+ "orgId",
488
+ "ownerProofBindingDigest",
489
+ "challengePurpose",
490
+ "registrationIntentDigestB64u"
491
+ ]);
492
+ if (record.proofKind === "google_sso_registration") return hasExactKeys(record, [
493
+ "kind",
494
+ "proofKind",
495
+ "walletId",
496
+ "providerSubject",
497
+ "email",
498
+ "emailHashHex",
499
+ "googleEmailOtpRegistrationAttemptId",
500
+ "googleEmailOtpRegistrationOfferId",
501
+ "googleEmailOtpRegistrationCandidateId",
502
+ "registrationAuthorityId",
503
+ "finalWalletId",
504
+ "orgId",
505
+ "ownerProofBindingDigest",
506
+ "registrationIntentDigestB64u"
507
+ ]);
508
+ return false;
509
+ }
510
+ function hasStrictWebAuthnDeviceInfo(record) {
511
+ const keys = Object.keys(record);
512
+ const allowed = [
513
+ "label",
514
+ "browser",
515
+ "os",
516
+ "synced",
517
+ "transports",
518
+ "provider",
519
+ "providerLabel"
520
+ ];
521
+ if (!keys.every((key) => allowed.includes(key))) return false;
522
+ if (!keys.includes("label") || !keys.includes("browser") || !keys.includes("os") || !keys.includes("synced") || !keys.includes("transports")) return false;
523
+ return parseWebAuthnAuthenticatorDeviceInfo(record) !== null;
524
+ }
525
+ function hasStrictStoredRegistrationSignerPlan(raw) {
526
+ const record = toRecordValue(raw);
527
+ if (!record || !hasExactKeys(record, ["kind", "branches"]) || record.kind !== "signer_set") return false;
528
+ if (!Array.isArray(record.branches) || record.branches.length === 0) return false;
529
+ for (const rawBranch of record.branches) {
530
+ const branch = toRecordValue(rawBranch);
531
+ if (!branch) return false;
532
+ if (branch.kind === "near_ed25519" && !hasExactKeys(branch, [
533
+ "kind",
534
+ "branchKey",
535
+ "accountProvisioning",
536
+ "signerSlot",
537
+ "participantIds",
538
+ "keyPurpose",
539
+ "keyVersion",
540
+ "derivationVersion"
541
+ ])) return false;
542
+ if (branch.kind === "evm_family_ecdsa" && !hasExactKeys(branch, [
543
+ "kind",
544
+ "branchKey",
545
+ "participantIds",
546
+ "chainTargets"
547
+ ])) return false;
548
+ if (branch.kind !== "near_ed25519" && branch.kind !== "evm_family_ecdsa") return false;
549
+ }
550
+ return true;
551
+ }
552
+ function hasStrictThresholdEcdsaChainTarget(raw) {
553
+ const record = toRecordValue(raw);
554
+ if (!record) return false;
555
+ if (record.kind === "evm") return (hasExactKeys(record, [
556
+ "kind",
557
+ "namespace",
558
+ "chainId"
559
+ ]) || hasExactKeys(record, [
560
+ "kind",
561
+ "namespace",
562
+ "chainId",
563
+ "networkSlug"
564
+ ])) && record.namespace === "eip155";
565
+ if (record.kind === "tempo") return hasExactKeys(record, ["kind", "chainId"]) || hasExactKeys(record, [
566
+ "kind",
567
+ "chainId",
568
+ "networkSlug"
569
+ ]);
570
+ return false;
571
+ }
572
+ function hasStrictStoredWalletRegistrationPreparedContext(raw) {
573
+ const record = toRecordValue(raw);
574
+ if (!record || !hasExactKeys(record, [
575
+ "kind",
576
+ "signingRootId",
577
+ "signingRootVersion",
578
+ "runtimePolicy",
579
+ "ecdsa"
580
+ ]) || record.kind !== "wallet_registration_prepared_context_v1") return false;
581
+ const runtimePolicy = toRecordValue(record.runtimePolicy);
582
+ const ecdsa = toRecordValue(record.ecdsa);
583
+ if (!runtimePolicy || !ecdsa) return false;
584
+ if (runtimePolicy.kind === "runtime_policy_scope") {
585
+ const scope = toRecordValue(runtimePolicy.scope);
586
+ if (!hasExactKeys(runtimePolicy, ["kind", "scope"]) || !scope || !hasExactKeys(scope, [
587
+ "orgId",
588
+ "projectId",
589
+ "envId",
590
+ "signingRootVersion"
591
+ ])) return false;
592
+ } else if (runtimePolicy.kind === "signing_root_only") {
593
+ if (!hasExactKeys(runtimePolicy, ["kind"])) return false;
594
+ } else return false;
595
+ if (ecdsa.kind === "evm_family_ecdsa_requested") return hasExactKeys(ecdsa, ["kind", "chainTargets"]) && Array.isArray(ecdsa.chainTargets) && ecdsa.chainTargets.length > 0 && ecdsa.chainTargets.every(hasStrictThresholdEcdsaChainTarget);
596
+ return ecdsa.kind === "evm_family_ecdsa_absent" && hasExactKeys(ecdsa, ["kind"]);
597
+ }
598
+ function registrationNearProvisioningMatchesResolution(provisioning, resolved) {
599
+ switch (provisioning.kind) {
600
+ case "implicit_account": return resolved.kind === "implicit_account";
601
+ case "sponsored_named_account": return resolved.kind === "sponsored_named_account" && resolved.nearAccountId === provisioning.requestedAccountId;
602
+ }
603
+ }
604
+ function parseD1WalletRegistrationFinalizeAuthMethod(raw) {
605
+ const record = toRecordValue(raw);
606
+ const kind = normalizeOptionalTrimmedString(record?.kind);
607
+ if (kind === "passkey") {
608
+ const credentialIdB64u = normalizeOptionalTrimmedString(record?.credentialIdB64u);
609
+ const credentialPublicKeyB64u = normalizeOptionalTrimmedString(record?.credentialPublicKeyB64u);
610
+ if (!credentialIdB64u || !credentialPublicKeyB64u) return null;
611
+ return {
612
+ kind: "passkey",
613
+ credentialIdB64u,
614
+ credentialPublicKeyB64u
615
+ };
616
+ }
617
+ if (kind === "email_otp") {
618
+ const registrationAuthorityId = normalizeOptionalTrimmedString(record?.registrationAuthorityId);
619
+ return registrationAuthorityId ? {
620
+ kind: "email_otp",
621
+ registrationAuthorityId
622
+ } : null;
623
+ }
624
+ return null;
625
+ }
626
+ function parseD1WalletRegistrationFinalizeEd25519(raw) {
627
+ const publicResult = parseD1WalletEd25519YaoSignerPublicResult(raw);
628
+ const record = toRecordValue(raw);
629
+ if (!record || !publicResult) return null;
630
+ const runtimePolicyScope = parseD1RuntimePolicyScope(record.runtimePolicyScope);
631
+ const thresholdSessionId = normalizeOptionalTrimmedString(record.thresholdSessionId);
632
+ const routerAbNormalSigning = parseRouterAbEd25519NormalSigningState(record.routerAbNormalSigning);
633
+ if (!runtimePolicyScope || !thresholdSessionId || !routerAbNormalSigning || routerAbNormalSigning.signingWorkerId !== publicResult.relayerKeyId) return null;
634
+ return {
635
+ ...publicResult,
636
+ thresholdSessionId,
637
+ runtimePolicyScope,
638
+ routerAbNormalSigning
639
+ };
640
+ }
641
+ function parseD1WalletEd25519YaoSignerPublicResult(raw) {
642
+ const record = toRecordValue(raw);
643
+ if (!record || record.recoveryExportCapable !== true) return null;
644
+ const signerSlot = safeInteger(record.signerSlot);
645
+ const nearAccountId = normalizeOptionalTrimmedString(record.nearAccountId);
646
+ const nearEd25519SigningKeyId = normalizeOptionalTrimmedString(record.nearEd25519SigningKeyId);
647
+ const publicKey = normalizeOptionalTrimmedString(record.publicKey);
648
+ const relayerKeyId = normalizeOptionalTrimmedString(record.relayerKeyId);
649
+ const keyVersion = normalizeOptionalTrimmedString(record.keyVersion);
650
+ const participantIds = parseD1PositiveIntegerArray(record.participantIds);
651
+ if (signerSlot === null || signerSlot <= 0 || !nearAccountId || !nearEd25519SigningKeyId || !publicKey?.startsWith("ed25519:") || !relayerKeyId || !keyVersion || !participantIds || participantIds.length !== 2) return null;
652
+ const firstParticipantId = participantIds[0];
653
+ const secondParticipantId = participantIds[1];
654
+ if (firstParticipantId === void 0 || secondParticipantId === void 0) return null;
655
+ return {
656
+ signerSlot,
657
+ nearAccountId,
658
+ nearEd25519SigningKeyId,
659
+ publicKey,
660
+ relayerKeyId,
661
+ keyVersion,
662
+ recoveryExportCapable: true,
663
+ participantIds: [firstParticipantId, secondParticipantId]
664
+ };
665
+ }
666
+ function parseD1RegistrationNearAccountProvisioning(raw) {
667
+ const record = toRecordValue(raw);
668
+ if (!record) return null;
669
+ if (record.kind === "implicit_account" && record.accountIdSource === "ed25519_public_key") return {
670
+ kind: "implicit_account",
671
+ accountIdSource: "ed25519_public_key"
672
+ };
673
+ if (record.kind === "sponsored_named_account" && record.sponsor === "relayer") {
674
+ const requestedAccountId = parseNamedNearAccountId(record.requestedAccountId);
675
+ if (!requestedAccountId.ok) return null;
676
+ return {
677
+ kind: "sponsored_named_account",
678
+ requestedAccountId: requestedAccountId.value,
679
+ sponsor: "relayer"
680
+ };
681
+ }
682
+ return null;
683
+ }
684
+ function parseD1ResolvedRegistrationNearAccount(raw) {
685
+ const record = toRecordValue(raw);
686
+ if (!record) return null;
687
+ const nearEd25519SigningKeyId = normalizeOptionalTrimmedString(record.nearEd25519SigningKeyId);
688
+ if (!nearEd25519SigningKeyId) return null;
689
+ const signingKeyId = nearEd25519SigningKeyIdFromString(nearEd25519SigningKeyId);
690
+ if (record.kind === "implicit_account") {
691
+ const nearAccountId = parseImplicitNearAccountId(record.nearAccountId);
692
+ return nearAccountId.ok ? {
693
+ kind: "implicit_account",
694
+ nearAccountId: nearAccountId.value,
695
+ nearEd25519SigningKeyId: signingKeyId
696
+ } : null;
697
+ }
698
+ if (record.kind === "sponsored_named_account") {
699
+ const nearAccountId = parseNamedNearAccountId(record.nearAccountId);
700
+ const transactionHash = normalizeOptionalTrimmedString(record.transactionHash);
701
+ return nearAccountId.ok && transactionHash ? {
702
+ kind: "sponsored_named_account",
703
+ nearAccountId: nearAccountId.value,
704
+ nearEd25519SigningKeyId: signingKeyId,
705
+ transactionHash
706
+ } : null;
707
+ }
708
+ return null;
709
+ }
710
+ function parseD1WalletRegistrationFinalizeEcdsa(raw) {
711
+ const record = toRecordValue(raw);
712
+ if (!record || !Array.isArray(record.walletKeys) || record.walletKeys.length === 0) return null;
713
+ const walletKeys = [];
714
+ for (const walletKey of record.walletKeys) {
715
+ const parsed = parseD1WalletRegistrationEcdsaWalletKey(walletKey);
716
+ if (!parsed) return null;
717
+ walletKeys.push(parsed);
718
+ }
719
+ return { walletKeys };
720
+ }
721
+ function parseD1WalletRegistrationEcdsaWalletKey(raw) {
722
+ const record = toRecordValue(raw);
723
+ if (!record || record.keyScope !== "evm-family") return null;
724
+ const chainTarget = thresholdEcdsaChainTargetFromValue(record.chainTarget);
725
+ const walletId = normalizeOptionalTrimmedString(record.walletId);
726
+ const evmFamilySigningKeySlotId = normalizeOptionalTrimmedString(record.evmFamilySigningKeySlotId);
727
+ const keyHandle = normalizeOptionalTrimmedString(record.keyHandle);
728
+ const ecdsaThresholdKeyId = normalizeOptionalTrimmedString(record.ecdsaThresholdKeyId);
729
+ const signingRootId = normalizeOptionalTrimmedString(record.signingRootId);
730
+ const signingRootVersion = normalizeOptionalTrimmedString(record.signingRootVersion);
731
+ const thresholdEcdsaPublicKeyB64u = normalizeOptionalTrimmedString(record.thresholdEcdsaPublicKeyB64u);
732
+ const thresholdOwnerAddress = normalizeOptionalTrimmedString(record.thresholdOwnerAddress);
733
+ const relayerKeyId = normalizeOptionalTrimmedString(record.relayerKeyId);
734
+ const relayerVerifyingShareB64u = normalizeOptionalTrimmedString(record.relayerVerifyingShareB64u);
735
+ const contextBinding32B64u = normalizeOptionalTrimmedString(record.contextBinding32B64u);
736
+ const rawDerivationClientSharePublicKey33B64u = normalizeOptionalTrimmedString(record.derivationClientSharePublicKey33B64u);
737
+ const clientShareRetryCounter = safeInteger(record.clientShareRetryCounter);
738
+ const relayerShareRetryCounter = safeInteger(record.relayerShareRetryCounter);
739
+ const participantIds = parseD1PositiveIntegerArray(record.participantIds);
740
+ let publicCapability;
741
+ try {
742
+ publicCapability = parseRouterAbEcdsaDerivationPublicCapabilityV1(record.publicCapability);
743
+ } catch {
744
+ return null;
745
+ }
746
+ if (!chainTarget || !walletId || !evmFamilySigningKeySlotId || !keyHandle || !ecdsaThresholdKeyId || !signingRootId || !signingRootVersion || !thresholdEcdsaPublicKeyB64u || !thresholdOwnerAddress || !relayerKeyId || !relayerVerifyingShareB64u || !contextBinding32B64u || !rawDerivationClientSharePublicKey33B64u || clientShareRetryCounter === null || clientShareRetryCounter < 0 || relayerShareRetryCounter === null || relayerShareRetryCounter < 0 || !participantIds || participantIds.length !== 2 || participantIds[0] !== 1 || participantIds[1] !== 2) return null;
747
+ let derivationClientSharePublicKey33B64u;
748
+ try {
749
+ derivationClientSharePublicKey33B64u = derivationClientSharePublicKey33B64uFromString(rawDerivationClientSharePublicKey33B64u);
750
+ } catch {
751
+ return null;
752
+ }
753
+ return {
754
+ keyScope: "evm-family",
755
+ chainTarget,
756
+ walletId,
757
+ evmFamilySigningKeySlotId,
758
+ keyHandle,
759
+ ecdsaThresholdKeyId,
760
+ signingRootId,
761
+ signingRootVersion,
762
+ thresholdEcdsaPublicKeyB64u,
763
+ thresholdOwnerAddress,
764
+ relayerKeyId,
765
+ relayerVerifyingShareB64u,
766
+ contextBinding32B64u,
767
+ derivationClientSharePublicKey33B64u,
768
+ clientShareRetryCounter,
769
+ relayerShareRetryCounter,
770
+ participantIds: [1, 2],
771
+ publicCapability
772
+ };
773
+ }
774
+ function parseD1StoredWalletRegistrationSignerState(raw) {
775
+ const record = toRecordValue(raw);
776
+ if (!record) return null;
777
+ if (normalizeOptionalTrimmedString(record.kind) === "signer_set_registration") return parseD1StoredSignerSetRegistrationState(record);
778
+ return null;
779
+ }
780
+ function parseD1StoredSignerSetRegistrationState(record) {
781
+ if (!Array.isArray(record.branches)) return null;
782
+ const branches = [];
783
+ for (const rawBranch of record.branches) {
784
+ const branch = parseD1StoredSignerSetRegistrationBranch(rawBranch);
785
+ if (!branch) return null;
786
+ branches.push(branch);
787
+ }
788
+ return {
789
+ kind: "signer_set_registration",
790
+ branches
791
+ };
792
+ }
793
+ function parseD1StoredSignerSetRegistrationBranch(raw) {
794
+ const record = toRecordValue(raw);
795
+ if (!record) return null;
796
+ switch (normalizeOptionalTrimmedString(record.kind)) {
797
+ case "near_ed25519_yao_authorized": return parseD1StoredNearEd25519YaoAuthorizedBranch(record);
798
+ case "evm_family_ecdsa_prepared": return parseD1StoredEvmFamilyEcdsaPreparedBranch(record);
799
+ case "evm_family_ecdsa_response_claimed": return parseD1StoredEvmFamilyEcdsaResponseClaimedBranch(record);
800
+ case "evm_family_ecdsa_pending_activation": return parseD1StoredEvmFamilyEcdsaPendingActivationBranch(record);
801
+ case "evm_family_ecdsa_activation_claimed": return parseD1StoredEvmFamilyEcdsaActivationClaimedBranch(record);
802
+ case "evm_family_ecdsa_activated": return parseD1StoredEvmFamilyEcdsaActivatedBranch(record);
803
+ case "evm_family_ecdsa_finalized": return parseD1StoredEvmFamilyEcdsaFinalizedBranch(record);
804
+ default: return null;
805
+ }
806
+ }
807
+ function parseD1StoredNearEd25519YaoAuthorizedBranch(record) {
808
+ if (!hasExactKeys(record, [
809
+ "kind",
810
+ "branchKey",
811
+ "admissionRequest",
812
+ "admissionReceipt"
813
+ ])) return null;
814
+ const branchKey = parseD1RegistrationSignerBranchKey(record.branchKey);
815
+ const admissionRequest = parseRouterAbEd25519YaoRegistrationAdmissionRequestV1(record.admissionRequest);
816
+ const admissionReceipt = parseRouterAbEd25519YaoRegistrationActivationAdmissionReceiptV1(record.admissionReceipt);
817
+ if (!branchKey || !admissionRequest.ok || !admissionReceipt.ok) return null;
818
+ return {
819
+ kind: "near_ed25519_yao_authorized",
820
+ branchKey,
821
+ admissionRequest: admissionRequest.value,
822
+ admissionReceipt: admissionReceipt.value
823
+ };
824
+ }
825
+ function parseD1WalletRegistrationCommittedInstallationProjection(raw) {
826
+ const record = toRecordValue(raw);
827
+ if (!record || !hasExactKeys(record, [
828
+ "kind",
829
+ "registrationCeremonyId",
830
+ "walletId",
831
+ "orgId",
832
+ "registrationAuthority",
833
+ "signerPlan",
834
+ "preparedContext",
835
+ "nearEd25519"
836
+ ]) || record.kind !== "wallet_registration_committed_installation_projection_v1") return null;
837
+ const registrationCeremonyId = normalizeOptionalTrimmedString(record.registrationCeremonyId);
838
+ const walletId = parseWalletIdForIntent(record.walletId);
839
+ const orgId = parseOrgId(record.orgId);
840
+ if (!hasStrictRegistrationAuthorityRecord(record.registrationAuthority) || !hasStrictStoredRegistrationSignerPlan(record.signerPlan) || !hasStrictStoredWalletRegistrationPreparedContext(record.preparedContext)) return null;
841
+ const registrationAuthority = parseD1RegistrationAuthority(record.registrationAuthority);
842
+ const signerPlan = parseStoredRegistrationSignerPlan(record.signerPlan);
843
+ const preparedContext = parseStoredWalletRegistrationPreparedContext(record.preparedContext);
844
+ const nearEd25519Record = toRecordValue(record.nearEd25519);
845
+ if (!nearEd25519Record || !hasExactKeys(nearEd25519Record, [
846
+ "kind",
847
+ "branchKey",
848
+ "admissionRequest",
849
+ "admissionReceipt"
850
+ ])) return null;
851
+ const nearEd25519 = nearEd25519Record ? parseD1StoredNearEd25519YaoAuthorizedBranch(nearEd25519Record) : null;
852
+ const planNearEd25519 = signerPlan ? signerPlan.branches.find((branch) => branch.kind === "near_ed25519") : void 0;
853
+ const planEvmFamilyEcdsa = signerPlan ? signerPlan.branches.find((branch) => branch.kind === "evm_family_ecdsa") : void 0;
854
+ if (!registrationCeremonyId || !walletId || !orgId.ok || !registrationAuthority || !signerPlan || !preparedContext || !nearEd25519 || !planNearEd25519 || !planEvmFamilyEcdsa || signerPlan.branches.length !== 2 || registrationAuthority.walletId !== walletId || nearEd25519.branchKey !== planNearEd25519.branchKey || nearEd25519.admissionRequest.application_binding.wallet_id !== walletId || nearEd25519.admissionRequest.application_binding.signing_root_id !== preparedContext.signingRootId || nearEd25519.admissionRequest.scope.lifecycle_id !== registrationCeremonyId || nearEd25519.admissionRequest.scope.root_share_epoch !== preparedContext.signingRootVersion || nearEd25519.admissionRequest.scope.account_id !== String(walletId) || nearEd25519.admissionRequest.scope.signer_set_id !== String(planNearEd25519.branchKey) || nearEd25519.admissionRequest.application_binding.key_creation_signer_slot !== planNearEd25519.signerSlot || nearEd25519.admissionRequest.participant_ids.length !== planNearEd25519.participantIds.length || nearEd25519.admissionRequest.participant_ids.some((participantId, index) => participantId !== planNearEd25519.participantIds[index]) || preparedContext.ecdsa.kind !== "evm_family_ecdsa_requested" || !thresholdEcdsaChainTargetsEqual(planEvmFamilyEcdsa.chainTargets, preparedContext.ecdsa.chainTargets) || preparedContext.runtimePolicy.kind === "runtime_policy_scope" && preparedContext.runtimePolicy.scope.signingRootVersion !== preparedContext.signingRootVersion || registrationAuthority.kind === "email_otp" && (registrationAuthority.finalWalletId !== walletId || registrationAuthority.orgId !== orgId.value) || preparedContext.runtimePolicy.kind !== "runtime_policy_scope" || preparedContext.runtimePolicy.scope.orgId !== orgId.value) return null;
855
+ return {
856
+ kind: "wallet_registration_committed_installation_projection_v1",
857
+ registrationCeremonyId,
858
+ walletId,
859
+ orgId: orgId.value,
860
+ registrationAuthority,
861
+ signerPlan,
862
+ preparedContext,
863
+ nearEd25519
864
+ };
865
+ }
866
+ function parseD1StoredEvmFamilyEcdsaPreparedBranch(record) {
867
+ const branchKey = parseD1RegistrationSignerBranchKey(record.branchKey);
868
+ const prepared = parseD1StoredEcdsaRegistrationBranchBase(record);
869
+ if (!branchKey || !prepared) return null;
870
+ return {
871
+ kind: "evm_family_ecdsa_prepared",
872
+ branchKey,
873
+ derivationKind: prepared.derivationKind,
874
+ chainTargets: prepared.chainTargets,
875
+ prepare: prepared.prepare,
876
+ strictRegistration: prepared.strictRegistration,
877
+ strictRegistrationBindingJson: prepared.strictRegistrationBindingJson
878
+ };
879
+ }
880
+ function parseD1StoredEvmFamilyEcdsaResponseClaimedBranch(record) {
881
+ const branchKey = parseD1RegistrationSignerBranchKey(record.branchKey);
882
+ const prepared = parseD1StoredEcdsaRegistrationBranchBase(record);
883
+ if (!branchKey || !prepared) return null;
884
+ try {
885
+ return {
886
+ kind: "evm_family_ecdsa_response_claimed",
887
+ branchKey,
888
+ derivationKind: prepared.derivationKind,
889
+ chainTargets: prepared.chainTargets,
890
+ prepare: prepared.prepare,
891
+ strictRegistration: prepared.strictRegistration,
892
+ strictRegistrationBindingJson: prepared.strictRegistrationBindingJson,
893
+ registrationRequest: parseRouterAbEcdsaRegistrationRequestV1(record.registrationRequest)
894
+ };
895
+ } catch {
896
+ return null;
897
+ }
898
+ }
899
+ function parseD1StoredEvmFamilyEcdsaPendingActivationBranch(record) {
900
+ const branchKey = parseD1RegistrationSignerBranchKey(record.branchKey);
901
+ const prepared = parseD1StoredEcdsaRegistrationBranchBase(record);
902
+ if (!branchKey || !prepared) return null;
903
+ try {
904
+ return {
905
+ kind: "evm_family_ecdsa_pending_activation",
906
+ branchKey,
907
+ derivationKind: prepared.derivationKind,
908
+ chainTargets: prepared.chainTargets,
909
+ prepare: prepared.prepare,
910
+ strictRegistration: prepared.strictRegistration,
911
+ strictRegistrationBindingJson: prepared.strictRegistrationBindingJson,
912
+ registrationRequest: parseRouterAbEcdsaRegistrationRequestV1(record.registrationRequest),
913
+ pendingActivation: parseStoredRouterAbEcdsaPendingActivationV1(record.pendingActivation),
914
+ publicResponse: parseRouterAbEcdsaStrictForwardedRegistrationResponseV1(record.publicResponse)
915
+ };
916
+ } catch {
917
+ return null;
918
+ }
919
+ }
920
+ function parseD1StoredEvmFamilyEcdsaActivationClaimedBranch(record) {
921
+ const branchKey = parseD1RegistrationSignerBranchKey(record.branchKey);
922
+ const prepared = parseD1StoredEcdsaRegistrationBranchBase(record);
923
+ if (!branchKey || !prepared) return null;
924
+ try {
925
+ return {
926
+ kind: "evm_family_ecdsa_activation_claimed",
927
+ branchKey,
928
+ derivationKind: prepared.derivationKind,
929
+ chainTargets: prepared.chainTargets,
930
+ prepare: prepared.prepare,
931
+ strictRegistration: prepared.strictRegistration,
932
+ strictRegistrationBindingJson: prepared.strictRegistrationBindingJson,
933
+ registrationRequest: parseRouterAbEcdsaRegistrationRequestV1(record.registrationRequest),
934
+ pendingActivation: parseStoredRouterAbEcdsaPendingActivationV1(record.pendingActivation),
935
+ publicResponse: parseRouterAbEcdsaStrictForwardedRegistrationResponseV1(record.publicResponse),
936
+ publicFacts: parseRouterAbEcdsaVerifiedClientActivationFactsV1(record.publicFacts),
937
+ activationRequestDigestB64u: parseDigestB64u(record.activationRequestDigestB64u),
938
+ activationOwner: typeof record.activationOwner === "string" ? record.activationOwner : ""
939
+ };
940
+ } catch {
941
+ return null;
942
+ }
943
+ }
944
+ function parseD1StoredEvmFamilyEcdsaActivatedBranch(record) {
945
+ const branchKey = parseD1RegistrationSignerBranchKey(record.branchKey);
946
+ const prepared = parseD1StoredEcdsaRegistrationBranchBase(record);
947
+ const bootstrap = parseD1EcdsaDerivationServerBootstrapResponse(record.bootstrap);
948
+ if (!branchKey || !prepared || !bootstrap) return null;
949
+ try {
950
+ return {
951
+ kind: "evm_family_ecdsa_activated",
952
+ branchKey,
953
+ derivationKind: prepared.derivationKind,
954
+ chainTargets: prepared.chainTargets,
955
+ prepare: prepared.prepare,
956
+ strictRegistration: prepared.strictRegistration,
957
+ strictRegistrationBindingJson: prepared.strictRegistrationBindingJson,
958
+ registrationRequest: parseRouterAbEcdsaRegistrationRequestV1(record.registrationRequest),
959
+ publicFacts: parseRouterAbEcdsaVerifiedClientActivationFactsV1(record.publicFacts),
960
+ activation: parseRouterAbEcdsaRegistrationActivationReceiptV1(record.activation),
961
+ publicCapability: parseRouterAbEcdsaDerivationPublicCapabilityV1(record.publicCapability),
962
+ bootstrap,
963
+ activationOwner: typeof record.activationOwner === "string" ? record.activationOwner : ""
964
+ };
965
+ } catch {
966
+ return null;
967
+ }
968
+ }
969
+ function parseD1StoredEvmFamilyEcdsaFinalizedBranch(record) {
970
+ const branchKey = parseD1RegistrationSignerBranchKey(record.branchKey);
971
+ const prepared = parseD1StoredEcdsaRegistrationBranchBase(record);
972
+ const bootstrap = parseD1EcdsaDerivationServerBootstrapResponse(record.bootstrap);
973
+ const finalizedAtMs = safeInteger(record.finalizedAtMs);
974
+ if (!branchKey || !prepared || !bootstrap || finalizedAtMs === null) return null;
975
+ try {
976
+ return {
977
+ kind: "evm_family_ecdsa_finalized",
978
+ branchKey,
979
+ derivationKind: prepared.derivationKind,
980
+ chainTargets: prepared.chainTargets,
981
+ prepare: prepared.prepare,
982
+ strictRegistration: prepared.strictRegistration,
983
+ strictRegistrationBindingJson: prepared.strictRegistrationBindingJson,
984
+ registrationRequest: parseRouterAbEcdsaRegistrationRequestV1(record.registrationRequest),
985
+ publicFacts: parseRouterAbEcdsaVerifiedClientActivationFactsV1(record.publicFacts),
986
+ activation: parseRouterAbEcdsaRegistrationActivationReceiptV1(record.activation),
987
+ publicCapability: parseRouterAbEcdsaDerivationPublicCapabilityV1(record.publicCapability),
988
+ bootstrap,
989
+ finalizedAtMs
990
+ };
991
+ } catch {
992
+ return null;
993
+ }
994
+ }
995
+ function parseD1RegistrationSignerBranchKey(raw) {
996
+ const value = normalizeOptionalTrimmedString(raw);
997
+ if (!value) return null;
998
+ try {
999
+ return registrationSignerBranchKeyFromString(value);
1000
+ } catch {
1001
+ return null;
1002
+ }
1003
+ }
1004
+ function parseD1StoredEcdsaRegistrationBase(record) {
1005
+ const derivationKind = normalizeOptionalTrimmedString(record.derivationKind);
1006
+ const chainTargets = parseD1ThresholdEcdsaChainTargets(record.chainTargets);
1007
+ const prepare = parseD1WalletRegistrationEcdsaPrepare(record.prepare);
1008
+ if (derivationKind !== "evm_family_ecdsa_keygen" || !chainTargets || !prepare) return null;
1009
+ try {
1010
+ return {
1011
+ derivationKind,
1012
+ chainTargets,
1013
+ prepare,
1014
+ strictRegistration: parseRouterAbEcdsaRegistrationRequestFactsV1(record.strictRegistration)
1015
+ };
1016
+ } catch {
1017
+ return null;
1018
+ }
1019
+ }
1020
+ /**
1021
+ * Registration branch rows additionally persist the strict-registration
1022
+ * binding JSON: branch convergence compares it byte-for-byte, so a branch row
1023
+ * without one is unusable. Add-signer rows never carry the field — their
1024
+ * replay check matches the request against the stored facts instead — so the
1025
+ * shared base above must not demand it: doing so made every stored ECDSA
1026
+ * add-signer ceremony unreadable, surfacing as `not_found` mid-ceremony.
1027
+ */
1028
+ function parseD1StoredEcdsaRegistrationBranchBase(record) {
1029
+ const prepared = parseD1StoredEcdsaRegistrationBase(record);
1030
+ const strictRegistrationBindingJson = normalizeOptionalTrimmedString(record.strictRegistrationBindingJson);
1031
+ if (!prepared || !strictRegistrationBindingJson) return null;
1032
+ return {
1033
+ ...prepared,
1034
+ strictRegistrationBindingJson
1035
+ };
1036
+ }
1037
+ function parseD1StoredAddSignerIntent(raw) {
1038
+ const record = toRecordValue(raw);
1039
+ if (!record || record.kind !== "add_signer_intent_allocated") return null;
1040
+ const grant = addSignerIntentGrantFromString(normalizeOptionalTrimmedString(record.grant) || "");
1041
+ const intent = parseD1AddSignerIntent(record.intent);
1042
+ const digestB64u = normalizeOptionalTrimmedString(record.digestB64u);
1043
+ const orgId = normalizeOptionalTrimmedString(record.orgId);
1044
+ const expiresAtMs = safeInteger(record.expiresAtMs);
1045
+ if (!grant || !intent || !digestB64u || !orgId || expiresAtMs === null) return null;
1046
+ return {
1047
+ kind: "add_signer_intent_allocated",
1048
+ grant,
1049
+ intent,
1050
+ digestB64u,
1051
+ orgId,
1052
+ expiresAtMs,
1053
+ ...intentScopeMetadata(record)
1054
+ };
1055
+ }
1056
+ function parseD1AddSignerIntent(raw) {
1057
+ const record = toRecordValue(raw);
1058
+ if (!record || record.version !== "add_signer_intent_v1") return null;
1059
+ const walletId = parseWalletIdForIntent(record.walletId);
1060
+ const signerSelection = normalizeAddSignerSelection(record.signerSelection, { normalizeEcdsaChainTarget: thresholdEcdsaChainTargetFromValue });
1061
+ const nonceB64u = normalizeOptionalTrimmedString(record.nonceB64u);
1062
+ const runtimePolicyScope = parseD1RuntimePolicyScope(record.runtimePolicyScope);
1063
+ if (!walletId || !signerSelection.ok || !nonceB64u) return null;
1064
+ if (record.runtimePolicyScope !== void 0 && !runtimePolicyScope) return null;
1065
+ if (runtimePolicyScope) return {
1066
+ version: "add_signer_intent_v1",
1067
+ walletId,
1068
+ signerSelection: signerSelection.value,
1069
+ runtimePolicyScope,
1070
+ nonceB64u
1071
+ };
1072
+ return {
1073
+ version: "add_signer_intent_v1",
1074
+ walletId,
1075
+ signerSelection: signerSelection.value,
1076
+ nonceB64u
1077
+ };
1078
+ }
1079
+ function parseD1StoredWalletAddSignerCeremony(raw) {
1080
+ const record = toRecordValue(raw);
1081
+ if (!record) return null;
1082
+ const addSignerCeremonyId = normalizeOptionalTrimmedString(record.addSignerCeremonyId);
1083
+ const intent = parseD1AddSignerIntent(record.intent);
1084
+ const digestB64u = normalizeOptionalTrimmedString(record.digestB64u);
1085
+ const orgId = normalizeOptionalTrimmedString(record.orgId);
1086
+ const signingRootId = normalizeOptionalTrimmedString(record.signingRootId);
1087
+ const signingRootVersion = normalizeOptionalTrimmedString(record.signingRootVersion);
1088
+ const expiresAtMs = safeInteger(record.expiresAtMs);
1089
+ const auth = parseD1StoredAddSignerAuth(record.auth);
1090
+ const signerState = parseD1StoredWalletAddSignerSignerState(record.signerState);
1091
+ if (!addSignerCeremonyId || !intent || !digestB64u || !orgId || !signingRootId || !signingRootVersion || expiresAtMs === null || !auth || !signerState) return null;
1092
+ if ((signerState.kind === "near_ed25519_yao_add_signer_activated" || signerState.kind === "near_ed25519_yao_add_signer_finalizing") && signerState.finalizeRequest.addSignerCeremonyId !== addSignerCeremonyId) return null;
1093
+ return {
1094
+ addSignerCeremonyId,
1095
+ intent,
1096
+ digestB64u,
1097
+ orgId,
1098
+ signingRootId,
1099
+ signingRootVersion,
1100
+ expiresAtMs,
1101
+ auth,
1102
+ signerState
1103
+ };
1104
+ }
1105
+ function parseD1StoredAddSignerAuth(raw) {
1106
+ const record = toRecordValue(raw);
1107
+ if (normalizeOptionalTrimmedString(record?.kind) === "webauthn_assertion") {
1108
+ const rpId = normalizeOptionalTrimmedString(record?.rpId);
1109
+ const credentialIdB64u = normalizeOptionalTrimmedString(record?.credentialIdB64u);
1110
+ return rpId && credentialIdB64u ? {
1111
+ kind: "webauthn_assertion",
1112
+ rpId,
1113
+ credentialIdB64u
1114
+ } : null;
1115
+ }
1116
+ return null;
1117
+ }
1118
+ function parseD1StoredWalletAddSignerSignerState(raw) {
1119
+ const record = toRecordValue(raw);
1120
+ if (!record) return null;
1121
+ const kind = normalizeOptionalTrimmedString(record.kind);
1122
+ if (kind === "near_ed25519_yao_add_signer_authorized") {
1123
+ const admissionRequest = parseRouterAbEd25519YaoRegistrationAdmissionRequestV1(record.admissionRequest);
1124
+ return admissionRequest.ok ? {
1125
+ kind: "near_ed25519_yao_add_signer_authorized",
1126
+ admissionRequest: admissionRequest.value
1127
+ } : null;
1128
+ }
1129
+ if (kind === "near_ed25519_yao_add_signer_activated" || kind === "near_ed25519_yao_add_signer_finalizing") {
1130
+ const activation = parseD1StoredEd25519YaoAddSignerActivation(record);
1131
+ if (!activation) return null;
1132
+ if (kind === "near_ed25519_yao_add_signer_activated") return {
1133
+ kind: "near_ed25519_yao_add_signer_activated",
1134
+ ...activation
1135
+ };
1136
+ const response = parseD1WalletAddSignerFinalizeSuccessResponse(record.response);
1137
+ const signer = parseWalletEd25519SignerRecord(record.signer);
1138
+ const finalizingAtMs = safeInteger(record.finalizingAtMs);
1139
+ if (!response || response.kind !== "near_ed25519" || !signer || finalizingAtMs === null || finalizingAtMs <= 0) return null;
1140
+ return {
1141
+ kind: "near_ed25519_yao_add_signer_finalizing",
1142
+ ...activation,
1143
+ response,
1144
+ signer,
1145
+ finalizingAtMs
1146
+ };
1147
+ }
1148
+ if (kind === "ecdsa_add_signer_prepared") return parseD1StoredEcdsaAddSignerPrepared(record);
1149
+ if (kind === "ecdsa_add_signer_pending_activation") return parseD1StoredEcdsaAddSignerPendingActivation(record);
1150
+ if (kind === "ecdsa_add_signer_activation_claimed") return parseD1StoredEcdsaAddSignerActivationClaimed(record);
1151
+ if (kind === "ecdsa_add_signer_activated") return parseD1StoredEcdsaAddSignerActivated(record);
1152
+ return null;
1153
+ }
1154
+ function parseD1StoredEd25519YaoAddSignerActivation(record) {
1155
+ const activation = toRecordValue(record.activation);
1156
+ const finalizeRequest = parseD1WalletAddSignerFinalizeRequest(record.finalizeRequest);
1157
+ const admissionRequest = parseRouterAbEd25519YaoRegistrationAdmissionRequestV1(activation?.admissionRequest);
1158
+ const admissionReceipt = parseRouterAbEd25519YaoRegistrationActivationAdmissionReceiptV1(activation?.admissionReceipt);
1159
+ const result = parseRouterAbEd25519YaoRegistrationActivationResultV1(activation?.result);
1160
+ if (!finalizeRequest || finalizeRequest.kind !== "near_ed25519" || !admissionRequest.ok || !admissionReceipt.ok || !result.ok) return null;
1161
+ const lifecycleId = finalizeRequest.activationReference.lifecycleId;
1162
+ const sessionId = finalizeRequest.activationReference.sessionId;
1163
+ if (!sessionId || lifecycleId !== admissionRequest.value.scope.lifecycle_id || !d1ByteArraysEqual(sessionId, admissionReceipt.value.binding.session_id) || !d1ByteArraysEqual(sessionId, result.value.binding.session_id)) return null;
1164
+ return {
1165
+ finalizeRequest,
1166
+ activation: {
1167
+ admissionRequest: admissionRequest.value,
1168
+ admissionReceipt: admissionReceipt.value,
1169
+ result: result.value
1170
+ }
1171
+ };
1172
+ }
1173
+ function parseD1WalletAddSignerFinalizeRequest(raw) {
1174
+ const record = toRecordValue(raw);
1175
+ const addSignerCeremonyId = normalizeOptionalTrimmedString(record?.addSignerCeremonyId);
1176
+ const idempotencyKey = normalizeOptionalTrimmedString(record?.idempotencyKey);
1177
+ if (!record || !addSignerCeremonyId || !idempotencyKey) return null;
1178
+ if (record.kind === "near_ed25519") {
1179
+ const custodyKeySet = toRecordValue(record.custodyKeySet);
1180
+ const activationReference = toRecordValue(record.activationReference);
1181
+ const lifecycleId = normalizeOptionalTrimmedString(activationReference?.lifecycleId);
1182
+ const sessionId = parseD1Bytes32(activationReference?.sessionId);
1183
+ if (custodyKeySet?.kind !== "near_ed25519_v1" || !lifecycleId || !sessionId) return null;
1184
+ let keyManifestDigestB64u;
1185
+ try {
1186
+ keyManifestDigestB64u = parseDigestB64u(custodyKeySet.keyManifestDigestB64u);
1187
+ } catch {
1188
+ return null;
1189
+ }
1190
+ const registeredPublicKeyB64u = normalizeOptionalTrimmedString(custodyKeySet.registeredPublicKeyB64u);
1191
+ if (!registeredPublicKeyB64u) return null;
1192
+ return {
1193
+ kind: "near_ed25519",
1194
+ addSignerCeremonyId,
1195
+ idempotencyKey,
1196
+ custodyKeySet: {
1197
+ kind: "near_ed25519_v1",
1198
+ keyManifestDigestB64u,
1199
+ registeredPublicKeyB64u
1200
+ },
1201
+ activationReference: {
1202
+ lifecycleId,
1203
+ sessionId
1204
+ }
1205
+ };
1206
+ }
1207
+ if (record.kind !== "evm_family_ecdsa" || !Array.isArray(record.expectedKeyHandles) || record.expectedKeyHandles.length !== 1) return null;
1208
+ const expectedKeyHandle = normalizeOptionalTrimmedString(record.expectedKeyHandles[0]);
1209
+ const custodyKeySet = toRecordValue(record.custodyKeySet);
1210
+ if (!expectedKeyHandle || custodyKeySet?.kind !== "evm_family_ecdsa_v1") return null;
1211
+ let keyManifestDigestB64u;
1212
+ let clientRootPublicKey33B64u;
1213
+ try {
1214
+ keyManifestDigestB64u = parseDigestB64u(custodyKeySet.keyManifestDigestB64u);
1215
+ clientRootPublicKey33B64u = ecdsaClientRootPublicKey33B64uFromString(String(custodyKeySet.clientRootPublicKey33B64u ?? ""));
1216
+ } catch {
1217
+ return null;
1218
+ }
1219
+ return {
1220
+ kind: "evm_family_ecdsa",
1221
+ addSignerCeremonyId,
1222
+ idempotencyKey,
1223
+ custodyKeySet: {
1224
+ kind: "evm_family_ecdsa_v1",
1225
+ keyManifestDigestB64u,
1226
+ clientRootPublicKey33B64u
1227
+ },
1228
+ expectedKeyHandles: [expectedKeyHandle]
1229
+ };
1230
+ }
1231
+ function parseD1Bytes32(raw) {
1232
+ if (!Array.isArray(raw) || raw.length !== 32) return null;
1233
+ const bytes = [];
1234
+ for (const byte of raw) {
1235
+ if (!Number.isInteger(byte) || Number(byte) < 0 || Number(byte) > 255) return null;
1236
+ bytes.push(Number(byte));
1237
+ }
1238
+ return bytes;
1239
+ }
1240
+ function d1ByteArraysEqual(left, right) {
1241
+ return left.length === right.length && left.every((byte, index) => byte === right[index]);
1242
+ }
1243
+ function parseD1StoredEcdsaAddSignerPrepared(record) {
1244
+ const prepared = parseD1StoredEcdsaRegistrationBase(record);
1245
+ if (!prepared) return null;
1246
+ return {
1247
+ kind: "ecdsa_add_signer_prepared",
1248
+ derivationKind: prepared.derivationKind,
1249
+ chainTargets: prepared.chainTargets,
1250
+ prepare: prepared.prepare,
1251
+ strictRegistration: prepared.strictRegistration
1252
+ };
1253
+ }
1254
+ function parseD1StoredEcdsaAddSignerPendingActivation(record) {
1255
+ const prepared = parseD1StoredEcdsaRegistrationBase(record);
1256
+ if (!prepared) return null;
1257
+ try {
1258
+ return {
1259
+ kind: "ecdsa_add_signer_pending_activation",
1260
+ derivationKind: prepared.derivationKind,
1261
+ chainTargets: prepared.chainTargets,
1262
+ prepare: prepared.prepare,
1263
+ strictRegistration: prepared.strictRegistration,
1264
+ registrationRequest: parseRouterAbEcdsaRegistrationRequestV1(record.registrationRequest),
1265
+ pendingActivation: parseStoredRouterAbEcdsaPendingActivationV1(record.pendingActivation),
1266
+ publicResponse: parseRouterAbEcdsaStrictForwardedRegistrationResponseV1(record.publicResponse)
1267
+ };
1268
+ } catch {
1269
+ return null;
1270
+ }
1271
+ }
1272
+ function parseD1StoredEcdsaAddSignerActivationClaimed(record) {
1273
+ const prepared = parseD1StoredEcdsaRegistrationBase(record);
1274
+ if (!prepared) return null;
1275
+ try {
1276
+ return {
1277
+ kind: "ecdsa_add_signer_activation_claimed",
1278
+ derivationKind: prepared.derivationKind,
1279
+ chainTargets: prepared.chainTargets,
1280
+ prepare: prepared.prepare,
1281
+ strictRegistration: prepared.strictRegistration,
1282
+ registrationRequest: parseRouterAbEcdsaRegistrationRequestV1(record.registrationRequest),
1283
+ pendingActivation: parseStoredRouterAbEcdsaPendingActivationV1(record.pendingActivation),
1284
+ publicResponse: parseRouterAbEcdsaStrictForwardedRegistrationResponseV1(record.publicResponse),
1285
+ publicFacts: parseRouterAbEcdsaVerifiedClientActivationFactsV1(record.publicFacts),
1286
+ activationRequestDigestB64u: parseDigestB64u(record.activationRequestDigestB64u)
1287
+ };
1288
+ } catch {
1289
+ return null;
1290
+ }
1291
+ }
1292
+ function parseD1StoredEcdsaAddSignerActivated(record) {
1293
+ const prepared = parseD1StoredEcdsaRegistrationBase(record);
1294
+ const bootstrap = parseD1EcdsaDerivationServerBootstrapResponse(record.bootstrap);
1295
+ if (!prepared || !bootstrap) return null;
1296
+ try {
1297
+ return {
1298
+ kind: "ecdsa_add_signer_activated",
1299
+ derivationKind: prepared.derivationKind,
1300
+ chainTargets: prepared.chainTargets,
1301
+ prepare: prepared.prepare,
1302
+ strictRegistration: prepared.strictRegistration,
1303
+ registrationRequest: parseRouterAbEcdsaRegistrationRequestV1(record.registrationRequest),
1304
+ publicFacts: parseRouterAbEcdsaVerifiedClientActivationFactsV1(record.publicFacts),
1305
+ activationRequestDigestB64u: parseDigestB64u(record.activationRequestDigestB64u),
1306
+ activation: parseRouterAbEcdsaRegistrationActivationReceiptV1(record.activation),
1307
+ publicCapability: parseRouterAbEcdsaDerivationPublicCapabilityV1(record.publicCapability),
1308
+ bootstrap
1309
+ };
1310
+ } catch {
1311
+ return null;
1312
+ }
1313
+ }
1314
+ function parseD1ThresholdEcdsaChainTargets(raw) {
1315
+ if (!Array.isArray(raw) || raw.length === 0) return null;
1316
+ const targets = [];
1317
+ const seen = /* @__PURE__ */ new Set();
1318
+ for (const rawTarget of raw) {
1319
+ const target = thresholdEcdsaChainTargetFromValue(rawTarget);
1320
+ if (!target) return null;
1321
+ const targetKey = thresholdEcdsaChainTargetKey(target);
1322
+ if (seen.has(targetKey)) return null;
1323
+ seen.add(targetKey);
1324
+ targets.push(target);
1325
+ }
1326
+ const firstTarget = targets[0];
1327
+ return firstTarget ? [firstTarget, ...targets.slice(1)] : null;
1328
+ }
1329
+ function parseD1EcdsaParticipantPair(raw) {
1330
+ if (!Array.isArray(raw) || raw.length !== 2 || raw[0] !== 1 || raw[1] !== 2) return null;
1331
+ return [1, 2];
1332
+ }
1333
+ function parseD1WalletRegistrationEcdsaPrepare(raw) {
1334
+ const record = toRecordValue(raw);
1335
+ if (!record || record.formatVersion !== "ecdsa-derivation-role-local") return null;
1336
+ if ("authorizationSessionId" in record || "walletSessionId" in record || "quotaId" in record || "jwt" in record) return null;
1337
+ if (record.keyScope !== "evm-family") return null;
1338
+ const registrationPreparationId = normalizeOptionalTrimmedString(record.registrationPreparationId);
1339
+ const walletId = normalizeOptionalTrimmedString(record.walletId);
1340
+ const evmFamilySigningKeySlotId = normalizeOptionalTrimmedString(record.evmFamilySigningKeySlotId);
1341
+ const ecdsaThresholdKeyId = normalizeOptionalTrimmedString(record.ecdsaThresholdKeyId);
1342
+ const signingRootId = normalizeOptionalTrimmedString(record.signingRootId);
1343
+ const signingRootVersion = normalizeOptionalTrimmedString(record.signingRootVersion);
1344
+ const relayerKeyId = normalizeOptionalTrimmedString(record.relayerKeyId);
1345
+ const requestId = normalizeOptionalTrimmedString(record.requestId);
1346
+ const thresholdSessionId = normalizeOptionalTrimmedString(record.thresholdSessionId);
1347
+ const ttlMs = safeInteger(record.ttlMs);
1348
+ const remainingUses = safeInteger(record.remainingUses);
1349
+ const participantIds = parseD1EcdsaParticipantPair(record.participantIds);
1350
+ const runtimePolicyScope = parseD1RuntimePolicyScope(record.runtimePolicyScope);
1351
+ if (!registrationPreparationId || !walletId || !evmFamilySigningKeySlotId || !ecdsaThresholdKeyId || !signingRootId || !signingRootVersion || !relayerKeyId || !requestId || !thresholdSessionId || ttlMs === null || remainingUses === null || !participantIds || !runtimePolicyScope) return null;
1352
+ return {
1353
+ formatVersion: "ecdsa-derivation-role-local",
1354
+ walletId,
1355
+ evmFamilySigningKeySlotId,
1356
+ ecdsaThresholdKeyId,
1357
+ signingRootId,
1358
+ signingRootVersion,
1359
+ keyScope: "evm-family",
1360
+ relayerKeyId,
1361
+ registrationPreparationId: registrationPreparationIdFromString(registrationPreparationId),
1362
+ requestId,
1363
+ thresholdSessionId,
1364
+ ttlMs,
1365
+ remainingUses,
1366
+ participantIds,
1367
+ runtimePolicyScope
1368
+ };
1369
+ }
1370
+ function parseD1EcdsaDerivationServerBootstrapResponse(raw) {
1371
+ const record = toRecordValue(raw);
1372
+ if (!record || record.formatVersion !== "ecdsa-derivation-role-local") return null;
1373
+ const walletId = normalizeOptionalTrimmedString(record.walletId);
1374
+ const evmFamilySigningKeySlotId = normalizeOptionalTrimmedString(record.evmFamilySigningKeySlotId);
1375
+ const ecdsaThresholdKeyId = normalizeOptionalTrimmedString(record.ecdsaThresholdKeyId);
1376
+ const relayerKeyId = normalizeOptionalTrimmedString(record.relayerKeyId);
1377
+ const applicationBindingDigestB64u = normalizeOptionalTrimmedString(record.applicationBindingDigestB64u);
1378
+ const contextBinding32B64u = normalizeOptionalTrimmedString(record.contextBinding32B64u);
1379
+ const publicIdentity = parseD1EcdsaDerivationPublicIdentity(record.publicIdentity);
1380
+ const clientShareRetryCounter = safeInteger(record.clientShareRetryCounter);
1381
+ const relayerShareRetryCounter = safeInteger(record.relayerShareRetryCounter);
1382
+ const publicTranscriptDigest32B64u = normalizeOptionalTrimmedString(record.publicTranscriptDigest32B64u);
1383
+ const keyHandle = normalizeOptionalTrimmedString(record.keyHandle);
1384
+ const signingRootId = normalizeOptionalTrimmedString(record.signingRootId);
1385
+ const signingRootVersion = normalizeOptionalTrimmedString(record.signingRootVersion);
1386
+ const thresholdEcdsaPublicKeyB64u = normalizeOptionalTrimmedString(record.thresholdEcdsaPublicKeyB64u);
1387
+ const ethereumAddress = normalizeOptionalTrimmedString(record.ethereumAddress);
1388
+ const relayerVerifyingShareB64u = normalizeOptionalTrimmedString(record.relayerVerifyingShareB64u);
1389
+ const participantIds = parseD1EcdsaParticipantPair(record.participantIds);
1390
+ const thresholdSessionId = normalizeOptionalTrimmedString(record.thresholdSessionId);
1391
+ const activationEpochResult = parseRootShareEpoch(record.activationEpoch);
1392
+ const activationEpoch = activationEpochResult.ok ? activationEpochResult.value : null;
1393
+ const expiresAtMs = safeInteger(record.expiresAtMs);
1394
+ const expiresAt = normalizeOptionalTrimmedString(record.expiresAt);
1395
+ const remainingUses = safeInteger(record.remainingUses);
1396
+ const routerAbEcdsaDerivationNormalSigning = parseRouterAbEcdsaDerivationNormalSigningStateV1(record.routerAbEcdsaDerivationNormalSigning);
1397
+ if (!walletId || !evmFamilySigningKeySlotId || !ecdsaThresholdKeyId || !relayerKeyId || !applicationBindingDigestB64u || !contextBinding32B64u || !publicIdentity || clientShareRetryCounter === null || relayerShareRetryCounter === null || !publicTranscriptDigest32B64u || !keyHandle || !signingRootId || !signingRootVersion || !thresholdEcdsaPublicKeyB64u || !ethereumAddress || !relayerVerifyingShareB64u || !participantIds || !thresholdSessionId || !activationEpoch || expiresAtMs === null || !expiresAt || remainingUses === null || !routerAbEcdsaDerivationNormalSigning) return null;
1398
+ return {
1399
+ formatVersion: "ecdsa-derivation-role-local",
1400
+ walletId,
1401
+ evmFamilySigningKeySlotId,
1402
+ ecdsaThresholdKeyId,
1403
+ relayerKeyId,
1404
+ applicationBindingDigestB64u,
1405
+ contextBinding32B64u,
1406
+ publicIdentity,
1407
+ clientShareRetryCounter,
1408
+ relayerShareRetryCounter,
1409
+ publicTranscriptDigest32B64u,
1410
+ keyHandle,
1411
+ signingRootId,
1412
+ signingRootVersion,
1413
+ thresholdEcdsaPublicKeyB64u,
1414
+ ethereumAddress,
1415
+ relayerVerifyingShareB64u,
1416
+ participantIds: [...participantIds],
1417
+ thresholdSessionId,
1418
+ activationEpoch,
1419
+ expiresAtMs,
1420
+ expiresAt,
1421
+ remainingUses,
1422
+ routerAbEcdsaDerivationNormalSigning
1423
+ };
1424
+ }
1425
+ function parseD1EcdsaDerivationPublicIdentity(raw) {
1426
+ const record = toRecordValue(raw);
1427
+ if (!record || !hasExactKeys(record, [
1428
+ "derivationClientSharePublicKey33B64u",
1429
+ "relayerPublicKey33B64u",
1430
+ "groupPublicKey33B64u",
1431
+ "ethereumAddress"
1432
+ ])) return null;
1433
+ return parseEcdsaDerivationPublicIdentity({
1434
+ derivationClientSharePublicKey33B64u: normalizeOptionalTrimmedString(record.derivationClientSharePublicKey33B64u),
1435
+ relayerPublicKey33B64u: normalizeOptionalTrimmedString(record.relayerPublicKey33B64u),
1436
+ groupPublicKey33B64u: normalizeOptionalTrimmedString(record.groupPublicKey33B64u),
1437
+ ethereumAddress: normalizeOptionalTrimmedString(record.ethereumAddress)
1438
+ });
1439
+ }
1440
+ function runtimePolicyScopeMatches(left, right) {
1441
+ if (!left && !right) return true;
1442
+ if (!left || !right) return false;
1443
+ return left.orgId === right.orgId && left.projectId === right.projectId && left.envId === right.envId && left.signingRootVersion === right.signingRootVersion;
1444
+ }
1445
+ function positiveIntegerArraysEqual(left, right) {
1446
+ if (left.length !== right.length) return false;
1447
+ for (let index = 0; index < left.length; index += 1) if (left[index] !== right[index]) return false;
1448
+ return true;
1449
+ }
1450
+ function thresholdEcdsaChainTargetsEqual(left, right) {
1451
+ const leftTargets = normalizeThresholdEcdsaChainTargets(left);
1452
+ const rightTargets = normalizeThresholdEcdsaChainTargets(right);
1453
+ if (!leftTargets || !rightTargets || leftTargets.length !== rightTargets.length) return false;
1454
+ for (let index = 0; index < leftTargets.length; index += 1) if (thresholdEcdsaChainTargetKey(leftTargets[index]) !== thresholdEcdsaChainTargetKey(rightTargets[index])) return false;
1455
+ return true;
1456
+ }
1457
+ function isMatchingD1EcdsaClientBootstrap(input) {
1458
+ const expected = input.expected;
1459
+ const actual = input.actual;
1460
+ return actual.formatVersion === expected.formatVersion && actual.walletId === expected.walletId && actual.evmFamilySigningKeySlotId === expected.evmFamilySigningKeySlotId && actual.ecdsaThresholdKeyId === expected.ecdsaThresholdKeyId && actual.signingRootId === expected.signingRootId && actual.signingRootVersion === expected.signingRootVersion && actual.keyScope === expected.keyScope && actual.relayerKeyId === expected.relayerKeyId && actual.registrationPreparationId === expected.registrationPreparationId && actual.requestId === expected.requestId && actual.thresholdSessionId === expected.thresholdSessionId && actual.ttlMs === expected.ttlMs && actual.remainingUses === expected.remainingUses && positiveIntegerArraysEqual(actual.participantIds, expected.participantIds) && runtimePolicyScopeMatches(actual.runtimePolicyScope, expected.runtimePolicyScope);
1461
+ }
1462
+ function toD1EcdsaDerivationClientBootstrapRequest(clientBootstrap) {
1463
+ return {
1464
+ formatVersion: clientBootstrap.formatVersion,
1465
+ walletId: clientBootstrap.walletId,
1466
+ evmFamilySigningKeySlotId: requireEvmFamilySigningKeySlotId(clientBootstrap.evmFamilySigningKeySlotId),
1467
+ ecdsaThresholdKeyId: clientBootstrap.ecdsaThresholdKeyId,
1468
+ signingRootId: clientBootstrap.signingRootId,
1469
+ signingRootVersion: clientBootstrap.signingRootVersion,
1470
+ keyScope: clientBootstrap.keyScope,
1471
+ relayerKeyId: clientBootstrap.relayerKeyId,
1472
+ registrationPreparationId: clientBootstrap.registrationPreparationId,
1473
+ derivationClientSharePublicKey33B64u: clientBootstrap.derivationClientSharePublicKey33B64u,
1474
+ clientShareRetryCounter: clientBootstrap.clientShareRetryCounter,
1475
+ contextBinding32B64u: clientBootstrap.contextBinding32B64u,
1476
+ requestId: clientBootstrap.requestId,
1477
+ sessionId: clientBootstrap.thresholdSessionId,
1478
+ ttlMs: clientBootstrap.ttlMs,
1479
+ remainingUses: clientBootstrap.remainingUses,
1480
+ participantIds: [...clientBootstrap.participantIds],
1481
+ runtimePolicyScope: clientBootstrap.runtimePolicyScope
1482
+ };
1483
+ }
1484
+ function buildD1EcdsaWalletKeysFromBootstrap(input) {
1485
+ if (input.bootstraps.length === 0) return {
1486
+ ok: false,
1487
+ code: "incomplete_ecdsa_wallet_key",
1488
+ message: `${input.errorContext} has no ECDSA chain targets`
1489
+ };
1490
+ const walletKeys = [];
1491
+ const seen = /* @__PURE__ */ new Set();
1492
+ for (const targetBootstrap of input.bootstraps) {
1493
+ const targetKey = thresholdEcdsaChainTargetKey(targetBootstrap.chainTarget);
1494
+ if (seen.has(targetKey)) return {
1495
+ ok: false,
1496
+ code: "incomplete_ecdsa_wallet_key",
1497
+ message: `${input.errorContext} returned duplicate ECDSA wallet key material for ${targetKey}`
1498
+ };
1499
+ seen.add(targetKey);
1500
+ const walletKey = buildD1EcdsaWalletKeyFromBootstrap({
1501
+ bootstrap: targetBootstrap.bootstrap,
1502
+ chainTarget: targetBootstrap.chainTarget,
1503
+ publicCapability: input.publicCapability,
1504
+ errorContext: input.errorContext
1505
+ });
1506
+ if (!walletKey.ok) return walletKey;
1507
+ walletKeys.push(walletKey.walletKey);
1508
+ }
1509
+ const sharedMaterial = requireSharedD1EvmFamilyWalletKeyMaterial({
1510
+ walletKeys,
1511
+ errorContext: input.errorContext
1512
+ });
1513
+ if (!sharedMaterial.ok) return sharedMaterial;
1514
+ return {
1515
+ ok: true,
1516
+ walletKeys
1517
+ };
1518
+ }
1519
+ function requireSharedD1EvmFamilyWalletKeyMaterial(input) {
1520
+ const first = input.walletKeys[0];
1521
+ if (!first) return { ok: true };
1522
+ for (const walletKey of input.walletKeys.slice(1)) {
1523
+ const mismatch = firstD1EvmFamilyWalletKeyMaterialMismatch(first, walletKey);
1524
+ if (!mismatch) continue;
1525
+ return {
1526
+ ok: false,
1527
+ code: "incomplete_ecdsa_wallet_key",
1528
+ message: `${input.errorContext} returned partitioned EVM-family wallet key material: ${mismatch}`
1529
+ };
1530
+ }
1531
+ return { ok: true };
1532
+ }
1533
+ function firstD1EvmFamilyWalletKeyMaterialMismatch(left, right) {
1534
+ if (left.keyScope !== "evm-family" || right.keyScope !== "evm-family") return "keyScope";
1535
+ if (left.walletId !== right.walletId) return "walletId";
1536
+ if (left.evmFamilySigningKeySlotId !== right.evmFamilySigningKeySlotId) return "evmFamilySigningKeySlotId";
1537
+ if (left.keyHandle !== right.keyHandle) return "keyHandle";
1538
+ if (left.ecdsaThresholdKeyId !== right.ecdsaThresholdKeyId) return "ecdsaThresholdKeyId";
1539
+ if (left.signingRootId !== right.signingRootId) return "signingRootId";
1540
+ if (left.signingRootVersion !== right.signingRootVersion) return "signingRootVersion";
1541
+ if (left.thresholdEcdsaPublicKeyB64u !== right.thresholdEcdsaPublicKeyB64u) return "thresholdEcdsaPublicKeyB64u";
1542
+ if (normalizeD1EvmFamilyOwnerAddress(left.thresholdOwnerAddress) !== normalizeD1EvmFamilyOwnerAddress(right.thresholdOwnerAddress)) return "thresholdOwnerAddress";
1543
+ if (left.relayerKeyId !== right.relayerKeyId) return "relayerKeyId";
1544
+ if (left.relayerVerifyingShareB64u !== right.relayerVerifyingShareB64u) return "relayerVerifyingShareB64u";
1545
+ if (left.contextBinding32B64u !== right.contextBinding32B64u) return "contextBinding32B64u";
1546
+ if (left.derivationClientSharePublicKey33B64u !== right.derivationClientSharePublicKey33B64u) return "derivationClientSharePublicKey33B64u";
1547
+ if (left.clientShareRetryCounter !== right.clientShareRetryCounter) return "clientShareRetryCounter";
1548
+ if (left.relayerShareRetryCounter !== right.relayerShareRetryCounter) return "relayerShareRetryCounter";
1549
+ if (d1EvmFamilyParticipantKey(left.participantIds) !== d1EvmFamilyParticipantKey(right.participantIds)) return "participantIds";
1550
+ return null;
1551
+ }
1552
+ function normalizeD1EvmFamilyOwnerAddress(value) {
1553
+ return value.trim().toLowerCase();
1554
+ }
1555
+ function d1EvmFamilyParticipantKey(participantIds) {
1556
+ return participantIds.join(",");
1557
+ }
1558
+ function buildD1EcdsaWalletKeyFromBootstrap(input) {
1559
+ const bootstrap = input.bootstrap;
1560
+ const complete = requireD1EcdsaWalletKeyBootstrapFields({
1561
+ walletId: normalizeOptionalTrimmedString(bootstrap.walletId),
1562
+ evmFamilySigningKeySlotId: normalizeOptionalTrimmedString(bootstrap.evmFamilySigningKeySlotId),
1563
+ keyHandle: normalizeOptionalTrimmedString(bootstrap.keyHandle),
1564
+ ecdsaThresholdKeyId: normalizeOptionalTrimmedString(bootstrap.ecdsaThresholdKeyId),
1565
+ signingRootId: normalizeOptionalTrimmedString(bootstrap.signingRootId),
1566
+ signingRootVersion: normalizeOptionalTrimmedString(bootstrap.signingRootVersion),
1567
+ thresholdEcdsaPublicKeyB64u: normalizeOptionalTrimmedString(bootstrap.thresholdEcdsaPublicKeyB64u),
1568
+ thresholdOwnerAddress: normalizeOptionalTrimmedString(bootstrap.ethereumAddress),
1569
+ relayerKeyId: normalizeOptionalTrimmedString(bootstrap.relayerKeyId),
1570
+ relayerVerifyingShareB64u: normalizeOptionalTrimmedString(bootstrap.relayerVerifyingShareB64u),
1571
+ contextBinding32B64u: normalizeOptionalTrimmedString(bootstrap.contextBinding32B64u),
1572
+ derivationClientSharePublicKey33B64u: normalizeOptionalTrimmedString(bootstrap.publicIdentity?.derivationClientSharePublicKey33B64u),
1573
+ clientShareRetryCounter: safeInteger(bootstrap.clientShareRetryCounter) ?? void 0,
1574
+ relayerShareRetryCounter: safeInteger(bootstrap.relayerShareRetryCounter) ?? void 0
1575
+ });
1576
+ if (!complete.ok) return {
1577
+ ok: false,
1578
+ code: "incomplete_ecdsa_wallet_key",
1579
+ message: `${input.errorContext} returned incomplete ECDSA wallet key material: ${complete.missingField}`
1580
+ };
1581
+ const participantIds = parseD1PositiveIntegerArray(bootstrap.participantIds);
1582
+ if (!participantIds || participantIds.length !== 2 || participantIds[0] !== 1 || participantIds[1] !== 2) return {
1583
+ ok: false,
1584
+ code: "incomplete_ecdsa_wallet_key",
1585
+ message: `${input.errorContext} returned incomplete ECDSA wallet key material: participantIds`
1586
+ };
1587
+ return {
1588
+ ok: true,
1589
+ walletKey: d1EcdsaWalletKeyForChainTarget({
1590
+ required: complete.value,
1591
+ participantIds,
1592
+ chainTarget: input.chainTarget,
1593
+ publicCapability: input.publicCapability
1594
+ })
1595
+ };
1596
+ }
1597
+ function requireD1EcdsaWalletKeyBootstrapFields(fields) {
1598
+ if (!fields.walletId) return {
1599
+ ok: false,
1600
+ missingField: "walletId"
1601
+ };
1602
+ if (!fields.evmFamilySigningKeySlotId) return {
1603
+ ok: false,
1604
+ missingField: "evmFamilySigningKeySlotId"
1605
+ };
1606
+ if (!fields.keyHandle) return {
1607
+ ok: false,
1608
+ missingField: "keyHandle"
1609
+ };
1610
+ if (!fields.ecdsaThresholdKeyId) return {
1611
+ ok: false,
1612
+ missingField: "ecdsaThresholdKeyId"
1613
+ };
1614
+ if (!fields.signingRootId) return {
1615
+ ok: false,
1616
+ missingField: "signingRootId"
1617
+ };
1618
+ if (!fields.signingRootVersion) return {
1619
+ ok: false,
1620
+ missingField: "signingRootVersion"
1621
+ };
1622
+ if (!fields.thresholdEcdsaPublicKeyB64u) return {
1623
+ ok: false,
1624
+ missingField: "thresholdEcdsaPublicKeyB64u"
1625
+ };
1626
+ if (!fields.thresholdOwnerAddress) return {
1627
+ ok: false,
1628
+ missingField: "thresholdOwnerAddress"
1629
+ };
1630
+ if (!fields.relayerKeyId) return {
1631
+ ok: false,
1632
+ missingField: "relayerKeyId"
1633
+ };
1634
+ if (!fields.relayerVerifyingShareB64u) return {
1635
+ ok: false,
1636
+ missingField: "relayerVerifyingShareB64u"
1637
+ };
1638
+ if (!fields.contextBinding32B64u) return {
1639
+ ok: false,
1640
+ missingField: "contextBinding32B64u"
1641
+ };
1642
+ if (!fields.derivationClientSharePublicKey33B64u) return {
1643
+ ok: false,
1644
+ missingField: "derivationClientSharePublicKey33B64u"
1645
+ };
1646
+ if (fields.clientShareRetryCounter === void 0 || fields.clientShareRetryCounter < 0) return {
1647
+ ok: false,
1648
+ missingField: "clientShareRetryCounter"
1649
+ };
1650
+ if (fields.relayerShareRetryCounter === void 0 || fields.relayerShareRetryCounter < 0) return {
1651
+ ok: false,
1652
+ missingField: "relayerShareRetryCounter"
1653
+ };
1654
+ let derivationClientSharePublicKey33B64u;
1655
+ try {
1656
+ derivationClientSharePublicKey33B64u = derivationClientSharePublicKey33B64uFromString(fields.derivationClientSharePublicKey33B64u);
1657
+ } catch {
1658
+ return {
1659
+ ok: false,
1660
+ missingField: "derivationClientSharePublicKey33B64u"
1661
+ };
1662
+ }
1663
+ return {
1664
+ ok: true,
1665
+ value: {
1666
+ walletId: fields.walletId,
1667
+ evmFamilySigningKeySlotId: fields.evmFamilySigningKeySlotId,
1668
+ keyHandle: fields.keyHandle,
1669
+ ecdsaThresholdKeyId: fields.ecdsaThresholdKeyId,
1670
+ signingRootId: fields.signingRootId,
1671
+ signingRootVersion: fields.signingRootVersion,
1672
+ thresholdEcdsaPublicKeyB64u: fields.thresholdEcdsaPublicKeyB64u,
1673
+ thresholdOwnerAddress: fields.thresholdOwnerAddress,
1674
+ relayerKeyId: fields.relayerKeyId,
1675
+ relayerVerifyingShareB64u: fields.relayerVerifyingShareB64u,
1676
+ contextBinding32B64u: fields.contextBinding32B64u,
1677
+ derivationClientSharePublicKey33B64u,
1678
+ clientShareRetryCounter: fields.clientShareRetryCounter,
1679
+ relayerShareRetryCounter: fields.relayerShareRetryCounter
1680
+ }
1681
+ };
1682
+ }
1683
+ function d1EcdsaWalletKeyForChainTarget(input) {
1684
+ return {
1685
+ keyScope: "evm-family",
1686
+ chainTarget: input.chainTarget,
1687
+ walletId: input.required.walletId,
1688
+ evmFamilySigningKeySlotId: input.required.evmFamilySigningKeySlotId,
1689
+ keyHandle: input.required.keyHandle,
1690
+ ecdsaThresholdKeyId: input.required.ecdsaThresholdKeyId,
1691
+ signingRootId: input.required.signingRootId,
1692
+ signingRootVersion: input.required.signingRootVersion,
1693
+ thresholdEcdsaPublicKeyB64u: input.required.thresholdEcdsaPublicKeyB64u,
1694
+ thresholdOwnerAddress: input.required.thresholdOwnerAddress,
1695
+ relayerKeyId: input.required.relayerKeyId,
1696
+ relayerVerifyingShareB64u: input.required.relayerVerifyingShareB64u,
1697
+ contextBinding32B64u: input.required.contextBinding32B64u,
1698
+ derivationClientSharePublicKey33B64u: input.required.derivationClientSharePublicKey33B64u,
1699
+ clientShareRetryCounter: input.required.clientShareRetryCounter,
1700
+ relayerShareRetryCounter: input.required.relayerShareRetryCounter,
1701
+ participantIds: [1, 2],
1702
+ publicCapability: input.publicCapability
1703
+ };
1704
+ }
1705
+ function buildD1WalletRecord(input) {
1706
+ return {
1707
+ version: "wallet_v1",
1708
+ walletId: input.walletId,
1709
+ createdAtMs: input.now,
1710
+ updatedAtMs: input.now
1711
+ };
1712
+ }
1713
+ function buildD1WalletEcdsaSignerRecords(input) {
1714
+ const records = [];
1715
+ for (const walletKey of input.walletKeys) records.push(buildWalletEcdsaSignerRecord({
1716
+ walletId: input.walletId,
1717
+ walletKey,
1718
+ activationReceipt: input.activationReceipt,
1719
+ runtimePolicyScope: input.runtimePolicyScope,
1720
+ custodyKeyManifestDigestB64u: input.custodyKeyManifestDigestB64u,
1721
+ custodyClientRootPublicKey33B64u: input.custodyClientRootPublicKey33B64u,
1722
+ createdAtMs: input.now,
1723
+ updatedAtMs: input.now
1724
+ }));
1725
+ return records;
1726
+ }
1727
+ function parseD1PositiveIntegerArray(raw) {
1728
+ if (!Array.isArray(raw) || raw.length === 0) return null;
1729
+ const values = [];
1730
+ for (const item of raw) {
1731
+ const value = safeInteger(item);
1732
+ if (value === null || value <= 0) return null;
1733
+ values.push(value);
1734
+ }
1735
+ return values;
1736
+ }
1737
+ function parseD1StoredAddAuthMethodIntent(raw) {
1738
+ const record = toRecordValue(raw);
1739
+ if (!record || record.kind !== "add_auth_method_intent_allocated") return null;
1740
+ const grant = addAuthMethodIntentGrantFromString(normalizeOptionalTrimmedString(record.grant) || "");
1741
+ const intent = parseD1AddAuthMethodIntent(record.intent);
1742
+ const digestB64u = normalizeOptionalTrimmedString(record.digestB64u);
1743
+ const orgId = normalizeOptionalTrimmedString(record.orgId);
1744
+ const expiresAtMs = safeInteger(record.expiresAtMs);
1745
+ if (!grant || !intent || !digestB64u || !orgId || expiresAtMs === null) return null;
1746
+ return {
1747
+ kind: "add_auth_method_intent_allocated",
1748
+ grant,
1749
+ intent,
1750
+ digestB64u,
1751
+ orgId,
1752
+ expiresAtMs,
1753
+ ...intentScopeMetadata(record)
1754
+ };
1755
+ }
1756
+ /**
1757
+ * Nullable wrapper over the canonical parser, so a row that was written by one
1758
+ * reading of these options cannot be read back by a looser one.
1759
+ */
1760
+ function parseD1WalletAddAuthMethodRegistrationOptions(raw) {
1761
+ try {
1762
+ return parseWalletAddAuthMethodRegistrationOptions(raw);
1763
+ } catch {
1764
+ return null;
1765
+ }
1766
+ }
1767
+ function d1AddAuthMethodCustodyFactorMatches(auth, custodyEnvelope) {
1768
+ switch (auth.kind) {
1769
+ case "webauthn_assertion":
1770
+ case "wallet_session": return custodyEnvelope.factor.kind === "passkey" && custodyEnvelope.factor.rpId === auth.rpId && custodyEnvelope.factor.credentialIdB64u === auth.credentialIdB64u;
1771
+ case "email_otp": return custodyEnvelope.factor.kind === "email_otp" && custodyEnvelope.factor.enrollmentId === auth.enrollmentId && custodyEnvelope.factor.enrollmentSealKeyVersion === auth.enrollmentSealKeyVersion;
1772
+ default: return unreachableAddAuthMethodInput(auth);
1773
+ }
1774
+ }
1775
+ function parseD1StoredWalletAddAuthMethodCeremony(raw) {
1776
+ const record = toRecordValue(raw);
1777
+ if (!record) return null;
1778
+ const addAuthMethodCeremonyId = normalizeOptionalTrimmedString(record.addAuthMethodCeremonyId);
1779
+ const intent = parseD1AddAuthMethodIntent(record.intent);
1780
+ const digestB64u = normalizeOptionalTrimmedString(record.digestB64u);
1781
+ const orgId = normalizeOptionalTrimmedString(record.orgId);
1782
+ const expiresAtMs = safeInteger(record.expiresAtMs);
1783
+ const auth = parseD1StoredAddAuthMethodAuth(record.auth);
1784
+ const sourceWalletAuthMethodId = parseWalletAuthMethodId(record.sourceWalletAuthMethodId);
1785
+ const sourceWalletAuthorityId = parseWalletAuthorityId(record.sourceWalletAuthorityId);
1786
+ const targetWalletAuthMethodId = parseWalletAuthMethodId(record.targetWalletAuthMethodId);
1787
+ let sourceAuthorityDigestB64u;
1788
+ try {
1789
+ sourceAuthorityDigestB64u = parseDigestB64u(record.sourceAuthorityDigestB64u);
1790
+ } catch {
1791
+ return null;
1792
+ }
1793
+ const sourceAuthorityRevocationEpoch = safeInteger(record.sourceAuthorityRevocationEpoch);
1794
+ if (!addAuthMethodCeremonyId || !intent || !digestB64u || !orgId || !sourceWalletAuthMethodId.ok || !sourceWalletAuthorityId.ok || sourceAuthorityRevocationEpoch === null || sourceAuthorityRevocationEpoch < 0 || !targetWalletAuthMethodId.ok || expiresAtMs === null || !auth) return null;
1795
+ let custodyEnvelope;
1796
+ try {
1797
+ custodyEnvelope = parsePasskeyCustodyEnvelopeRecord(record.custodyEnvelope);
1798
+ } catch {
1799
+ return null;
1800
+ }
1801
+ if (custodyEnvelope.walletId !== intent.walletId || !d1AddAuthMethodCustodyFactorMatches(auth, custodyEnvelope) || custodyEnvelope.lifecycle.state !== "active") return null;
1802
+ if (record.kind === "email_otp") {
1803
+ const authority = parseD1RegistrationAuthority(record.authority);
1804
+ if (!authority || authority.kind !== "email_otp") return null;
1805
+ return {
1806
+ kind: "email_otp",
1807
+ custodyEnvelope,
1808
+ addAuthMethodCeremonyId,
1809
+ intent,
1810
+ digestB64u,
1811
+ orgId,
1812
+ sourceWalletAuthMethodId: sourceWalletAuthMethodId.value,
1813
+ sourceWalletAuthorityId: sourceWalletAuthorityId.value,
1814
+ sourceAuthorityDigestB64u,
1815
+ sourceAuthorityRevocationEpoch,
1816
+ targetWalletAuthMethodId: targetWalletAuthMethodId.value,
1817
+ ...normalizeOptionalTrimmedString(record.expectedOrigin) ? { expectedOrigin: normalizeOptionalTrimmedString(record.expectedOrigin) } : {},
1818
+ expiresAtMs,
1819
+ auth,
1820
+ authority
1821
+ };
1822
+ }
1823
+ if (record.kind !== "passkey") return null;
1824
+ const passkeyRegistration = toRecordValue(record.passkeyRegistration);
1825
+ const rpId = parseWebAuthnRpId(passkeyRegistration?.rpId);
1826
+ const challengeB64u = normalizeOptionalTrimmedString(passkeyRegistration?.challengeB64u);
1827
+ const options = parseD1WalletAddAuthMethodRegistrationOptions(passkeyRegistration?.options);
1828
+ if (!rpId.ok || !challengeB64u || !options || options.rpId !== rpId.value || options.challengeB64u !== challengeB64u || intent.authMethod.kind !== "passkey" || intent.authMethod.rpId !== rpId.value) return null;
1829
+ return {
1830
+ kind: "passkey",
1831
+ addAuthMethodCeremonyId,
1832
+ intent,
1833
+ digestB64u,
1834
+ orgId,
1835
+ sourceWalletAuthMethodId: sourceWalletAuthMethodId.value,
1836
+ sourceWalletAuthorityId: sourceWalletAuthorityId.value,
1837
+ sourceAuthorityDigestB64u,
1838
+ sourceAuthorityRevocationEpoch,
1839
+ targetWalletAuthMethodId: targetWalletAuthMethodId.value,
1840
+ ...normalizeOptionalTrimmedString(record.expectedOrigin) ? { expectedOrigin: normalizeOptionalTrimmedString(record.expectedOrigin) } : {},
1841
+ expiresAtMs,
1842
+ auth,
1843
+ passkeyRegistration: {
1844
+ rpId: rpId.value,
1845
+ challengeB64u,
1846
+ options
1847
+ },
1848
+ custodyEnvelope
1849
+ };
1850
+ }
1851
+ function parseD1AddAuthMethodIntent(raw) {
1852
+ const record = toRecordValue(raw);
1853
+ if (!record || record.version !== "add_auth_method_intent_v1") return null;
1854
+ const walletId = parseWalletIdForIntent(record.walletId);
1855
+ const authMethod = normalizeAddAuthMethodInput(record.authMethod);
1856
+ const nonceB64u = normalizeOptionalTrimmedString(record.nonceB64u);
1857
+ const runtimePolicyScope = parseD1RuntimePolicyScope(record.runtimePolicyScope);
1858
+ const targetWalletAuthMethodId = parseWalletAuthMethodId(record.targetWalletAuthMethodId);
1859
+ const caller = normalizeAddAuthMethodIntentCaller(record);
1860
+ if (!walletId || !authMethod || !nonceB64u || !targetWalletAuthMethodId.ok || !caller) return null;
1861
+ if (record.runtimePolicyScope !== void 0 && !runtimePolicyScope) return null;
1862
+ return buildStoredAddAuthMethodIntentRecord({
1863
+ walletId,
1864
+ authMethod,
1865
+ targetWalletAuthMethodId: targetWalletAuthMethodId.value,
1866
+ caller,
1867
+ runtimePolicyScope,
1868
+ nonceB64u
1869
+ });
1870
+ }
1871
+ /**
1872
+ * Rebuilds a persisted intent without re-minting its nonce or target id.
1873
+ * `buildAddAuthMethodIntent` allocates both, so a parser cannot reuse it.
1874
+ */
1875
+ function buildStoredAddAuthMethodIntentRecord(input) {
1876
+ const common = {
1877
+ version: "add_auth_method_intent_v1",
1878
+ walletId: input.walletId,
1879
+ authMethod: input.authMethod,
1880
+ targetWalletAuthMethodId: input.targetWalletAuthMethodId,
1881
+ ...input.runtimePolicyScope ? { runtimePolicyScope: input.runtimePolicyScope } : {},
1882
+ nonceB64u: input.nonceB64u
1883
+ };
1884
+ switch (input.caller.caller) {
1885
+ case "same_device_addition": return {
1886
+ ...common,
1887
+ caller: "same_device_addition",
1888
+ source: input.caller.source
1889
+ };
1890
+ case "linked_device_ceremony": return {
1891
+ ...common,
1892
+ caller: "linked_device_ceremony"
1893
+ };
1894
+ default: return unreachableAddAuthMethodIntentCaller(input.caller);
1895
+ }
1896
+ }
1897
+ function parseD1RuntimePolicyScope(raw) {
1898
+ if (raw === void 0 || raw === null) return void 0;
1899
+ const record = toRecordValue(raw);
1900
+ if (!record) return void 0;
1901
+ const orgId = normalizeOptionalTrimmedString(record.orgId);
1902
+ const projectId = normalizeOptionalTrimmedString(record.projectId);
1903
+ const envId = normalizeOptionalTrimmedString(record.envId);
1904
+ const signingRootVersion = normalizeOptionalTrimmedString(record.signingRootVersion);
1905
+ if (!orgId || !projectId || !envId || !signingRootVersion) return void 0;
1906
+ return {
1907
+ orgId,
1908
+ projectId,
1909
+ envId,
1910
+ signingRootVersion
1911
+ };
1912
+ }
1913
+ function parseD1StoredAddAuthMethodAuth(raw) {
1914
+ const record = toRecordValue(raw);
1915
+ const kind = normalizeOptionalTrimmedString(record?.kind);
1916
+ if (kind === "email_otp") {
1917
+ const providerUserId = normalizeOptionalTrimmedString(record?.providerUserId);
1918
+ const enrollmentId = normalizeOptionalTrimmedString(record?.enrollmentId);
1919
+ const enrollmentSealKeyVersion = normalizeOptionalTrimmedString(record?.enrollmentSealKeyVersion);
1920
+ const authorityRef = parseWalletAuthAuthorityRef(record?.authorityRef);
1921
+ return providerUserId && enrollmentId && enrollmentSealKeyVersion && authorityRef ? {
1922
+ kind: "email_otp",
1923
+ providerUserId,
1924
+ enrollmentId,
1925
+ enrollmentSealKeyVersion,
1926
+ authorityRef
1927
+ } : null;
1928
+ }
1929
+ if (kind === "webauthn_assertion") {
1930
+ const rpId = normalizeOptionalTrimmedString(record?.rpId);
1931
+ const credentialIdB64u = normalizeOptionalTrimmedString(record?.credentialIdB64u);
1932
+ return rpId && credentialIdB64u ? {
1933
+ kind: "webauthn_assertion",
1934
+ rpId,
1935
+ credentialIdB64u
1936
+ } : null;
1937
+ }
1938
+ if (kind === "wallet_session") {
1939
+ const walletSessionId = normalizeOptionalTrimmedString(record?.walletSessionId);
1940
+ const authorizationId = normalizeOptionalTrimmedString(record?.authorizationId);
1941
+ const rpId = normalizeOptionalTrimmedString(record?.rpId);
1942
+ const credentialIdB64u = normalizeOptionalTrimmedString(record?.credentialIdB64u);
1943
+ return walletSessionId && authorizationId && rpId && credentialIdB64u ? {
1944
+ kind: "wallet_session",
1945
+ walletSessionId,
1946
+ authorizationId,
1947
+ rpId,
1948
+ credentialIdB64u
1949
+ } : null;
1950
+ }
1951
+ return null;
1952
+ }
1953
+ function parseD1RegistrationAuthority(raw) {
1954
+ const record = toRecordValue(raw);
1955
+ if (!record) return null;
1956
+ const kind = normalizeOptionalTrimmedString(record?.kind);
1957
+ if (kind === "passkey") return parseD1PasskeyRegistrationAuthority(record);
1958
+ if (kind === "email_otp") return parseD1EmailOtpRegistrationAuthority(record);
1959
+ return null;
1960
+ }
1961
+ function parseD1PasskeyRegistrationAuthority(record) {
1962
+ const walletId = parseWalletIdForIntent(record.walletId);
1963
+ const rpId = parseWebAuthnRpId(record.rpId);
1964
+ const credentialIdB64u = normalizeOptionalTrimmedString(record.credentialIdB64u);
1965
+ const credentialPublicKeyB64u = normalizeOptionalTrimmedString(record.credentialPublicKeyB64u);
1966
+ const counter = safeInteger(record.counter);
1967
+ const registrationIntentDigestB64u = normalizeOptionalTrimmedString(record.registrationIntentDigestB64u);
1968
+ if (!walletId || !rpId.ok || !credentialIdB64u || !credentialPublicKeyB64u || counter === null || !registrationIntentDigestB64u) return null;
1969
+ const device = parseWebAuthnAuthenticatorDeviceInfo(record.device) ?? unknownWebAuthnAuthenticatorDeviceInfo();
1970
+ return {
1971
+ kind: "passkey",
1972
+ walletId,
1973
+ rpId: rpId.value,
1974
+ credentialIdB64u,
1975
+ credentialPublicKeyB64u,
1976
+ counter,
1977
+ device,
1978
+ registrationIntentDigestB64u
1979
+ };
1980
+ }
1981
+ function parseD1EmailOtpRegistrationAuthority(record) {
1982
+ if (record.proofKind === "google_sso_registration") return parseD1GoogleSsoEmailOtpRegistrationAuthority(record);
1983
+ if (record.proofKind !== "otp_challenge") return null;
1984
+ const walletId = parseWalletIdForIntent(record.walletId);
1985
+ const providerSubject = parseProviderSubject(record.providerSubject);
1986
+ const challengeSubjectId = parseChallengeSubjectId(record.challengeSubjectId);
1987
+ const email = normalizeOptionalTrimmedString(record.email);
1988
+ const emailHashHex = normalizeOptionalTrimmedString(record.emailHashHex);
1989
+ const challengeId = parseEmailOtpChallengeId(record.challengeId);
1990
+ const registrationAuthorityId = parseEmailOtpChallengeId(record.registrationAuthorityId);
1991
+ const originalWalletId = parseWalletIdForIntent(record.originalWalletId);
1992
+ const finalWalletId = parseWalletIdForIntent(record.finalWalletId);
1993
+ const orgId = parseOrgId(record.orgId);
1994
+ const ownerProofBindingDigest = normalizeOptionalTrimmedString(record.ownerProofBindingDigest);
1995
+ const challengePurpose = normalizeOptionalTrimmedString(record.challengePurpose);
1996
+ const registrationIntentDigestB64u = normalizeOptionalTrimmedString(record.registrationIntentDigestB64u);
1997
+ if (!walletId || !providerSubject.ok || !challengeSubjectId.ok || !email || !emailHashHex || !challengeId.ok || !registrationAuthorityId.ok || !originalWalletId || !finalWalletId || !orgId.ok || !ownerProofBindingDigest || challengePurpose !== "registration" && challengePurpose !== "registration_reroll" || !registrationIntentDigestB64u) return null;
1998
+ return {
1999
+ kind: "email_otp",
2000
+ proofKind: "otp_challenge",
2001
+ walletId,
2002
+ providerSubject: providerSubject.value,
2003
+ challengeSubjectId: challengeSubjectId.value,
2004
+ email,
2005
+ emailHashHex,
2006
+ challengeId: challengeId.value,
2007
+ registrationAuthorityId: registrationAuthorityId.value,
2008
+ originalWalletId,
2009
+ finalWalletId,
2010
+ orgId: orgId.value,
2011
+ ownerProofBindingDigest,
2012
+ challengePurpose,
2013
+ registrationIntentDigestB64u
2014
+ };
2015
+ }
2016
+ function parseD1GoogleSsoEmailOtpRegistrationAuthority(record) {
2017
+ const walletId = parseWalletIdForIntent(record.walletId);
2018
+ const providerSubject = parseProviderSubject(record.providerSubject);
2019
+ const email = normalizeOptionalTrimmedString(record.email);
2020
+ const emailHashHex = normalizeOptionalTrimmedString(record.emailHashHex);
2021
+ const googleEmailOtpRegistrationAttemptId = normalizeOptionalTrimmedString(record.googleEmailOtpRegistrationAttemptId);
2022
+ const googleEmailOtpRegistrationOfferId = normalizeOptionalTrimmedString(record.googleEmailOtpRegistrationOfferId);
2023
+ const googleEmailOtpRegistrationCandidateId = normalizeOptionalTrimmedString(record.googleEmailOtpRegistrationCandidateId);
2024
+ const registrationAuthorityId = normalizeOptionalTrimmedString(record.registrationAuthorityId);
2025
+ const finalWalletId = parseWalletIdForIntent(record.finalWalletId);
2026
+ const orgId = parseOrgId(record.orgId);
2027
+ const ownerProofBindingDigest = normalizeOptionalTrimmedString(record.ownerProofBindingDigest);
2028
+ const registrationIntentDigestB64u = normalizeOptionalTrimmedString(record.registrationIntentDigestB64u);
2029
+ if (!walletId || !providerSubject.ok || !email || !emailHashHex || !googleEmailOtpRegistrationAttemptId || !googleEmailOtpRegistrationOfferId || !googleEmailOtpRegistrationCandidateId || !registrationAuthorityId || !finalWalletId || !orgId.ok || !ownerProofBindingDigest || !registrationIntentDigestB64u) return null;
2030
+ return {
2031
+ kind: "email_otp",
2032
+ proofKind: "google_sso_registration",
2033
+ walletId,
2034
+ providerSubject: providerSubject.value,
2035
+ email,
2036
+ emailHashHex,
2037
+ googleEmailOtpRegistrationAttemptId,
2038
+ googleEmailOtpRegistrationOfferId,
2039
+ googleEmailOtpRegistrationCandidateId,
2040
+ registrationAuthorityId,
2041
+ finalWalletId,
2042
+ orgId: orgId.value,
2043
+ ownerProofBindingDigest,
2044
+ registrationIntentDigestB64u
2045
+ };
2046
+ }
2047
+ function normalizeThresholdEcdsaChainTargets(input) {
2048
+ const targets = [];
2049
+ for (const raw of input) {
2050
+ const target = thresholdEcdsaChainTargetFromValue(raw);
2051
+ if (!target) return null;
2052
+ targets.push(target);
2053
+ }
2054
+ return targets;
2055
+ }
2056
+ function intentScopeMetadata(input) {
2057
+ const signingRootId = normalizeOptionalTrimmedString(input.signingRootId);
2058
+ const signingRootVersion = normalizeOptionalTrimmedString(input.signingRootVersion);
2059
+ const expectedOrigin = normalizeOptionalTrimmedString(input.expectedOrigin);
2060
+ return {
2061
+ ...signingRootId ? { signingRootId } : {},
2062
+ ...signingRootVersion ? { signingRootVersion } : {},
2063
+ ...expectedOrigin ? { expectedOrigin } : {}
2064
+ };
2065
+ }
2066
+ function safeInteger(raw) {
2067
+ const value = Number(raw);
2068
+ return Number.isSafeInteger(value) ? value : null;
2069
+ }
2070
+ function addSignerEd25519SelectionsMatch(left, right) {
2071
+ const leftEd25519 = left.ed25519;
2072
+ const rightEd25519 = right.ed25519;
2073
+ return leftEd25519.mode === rightEd25519.mode && leftEd25519.signerSlot === rightEd25519.signerSlot && leftEd25519.keyPurpose === rightEd25519.keyPurpose && leftEd25519.keyVersion === rightEd25519.keyVersion && leftEd25519.derivationVersion === rightEd25519.derivationVersion && positiveIntegerArraysEqual(leftEd25519.participantIds, rightEd25519.participantIds);
2074
+ }
2075
+ function unreachableAddAuthMethodInput(value) {
2076
+ throw new Error(`Unhandled add-auth-method input kind: ${String(value)}`);
2077
+ }
2078
+ function unreachableAddSignerSelection(value) {
2079
+ throw new Error(`Unhandled add-signer selection mode: ${String(value)}`);
2080
+ }
2081
+ //#endregion
2082
+ export { addAuthMethodInputMatches, addSignerSelectionMatches, buildAddAuthMethodIntent, buildAddSignerIntent, buildD1EcdsaWalletKeysFromBootstrap, buildD1WalletEcdsaSignerRecords, buildD1WalletRecord, buildRegistrationIntent, createD1ServerAllocatedWalletId, deriveEvmFamilySigningKeySlotId, inferRuntimePolicyScopeFromSigningRoot, intentScopeMetadata, isMatchingD1EcdsaClientBootstrap, normalizeThresholdEcdsaChainTargets, parseD1AddAuthMethodIntent, parseD1AddSignerIntent, parseD1EcdsaDerivationServerBootstrapResponse, parseD1PositiveIntegerArray, parseD1RegistrationAuthority, parseD1RegistrationIntent, parseD1RuntimePolicyScope, parseD1StoredAddAuthMethodIntent, parseD1StoredAddSignerAuth, parseD1StoredAddSignerIntent, parseD1StoredNearEd25519YaoAuthorizedBranch, parseD1StoredWalletAddAuthMethodCeremony, parseD1StoredWalletAddAuthMethodFinalizeReplay, parseD1StoredWalletAddSignerCeremony, parseD1StoredWalletAddSignerFinalizeReplay, parseD1StoredWalletRegistrationCeremony, parseD1WalletAddSignerFinalizeRequest, parseD1WalletAddSignerFinalizeTerminalResponse, parseD1WalletRegistrationCommittedInstallationProjection, parseD1WalletRegistrationFinalizeReplayResponse, parseWalletIdForIntent, positiveIntegerArraysEqual, runtimePolicyScopeMatches, thresholdEcdsaChainTargetsEqual, toD1EcdsaDerivationClientBootstrapRequest };
2083
+
2084
+ //# sourceMappingURL=d1RegistrationCeremonyRecords.js.map