@seams/wallet-server 0.7.3 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (516) hide show
  1. package/THIRD_PARTY_NOTICES.md +1 -9
  2. package/artifact-manifest.json +78 -33
  3. package/cloudflare-router-ab/build/deriver-a/build-stamp.json +1 -1
  4. package/cloudflare-router-ab/build/deriver-a/index.js +2 -2
  5. package/cloudflare-router-ab/build/deriver-a/index_bg.wasm +0 -0
  6. package/cloudflare-router-ab/build/deriver-b/build-stamp.json +1 -1
  7. package/cloudflare-router-ab/build/deriver-b/index.js +2 -2
  8. package/cloudflare-router-ab/build/deriver-b/index_bg.wasm +0 -0
  9. package/cloudflare-router-ab/build/local-tools/darwin-arm64/router_ab_local_init +0 -0
  10. package/cloudflare-router-ab/build/local-tools/darwin-x64/router_ab_local_init +0 -0
  11. package/cloudflare-router-ab/build/local-tools/linux-x64/router_ab_local_init +0 -0
  12. package/cloudflare-router-ab/build/router/build-stamp.json +1 -1
  13. package/cloudflare-router-ab/build/router/index.js +2 -2
  14. package/cloudflare-router-ab/build/router/index_bg.wasm +0 -0
  15. package/cloudflare-router-ab/build/signing-worker/build-stamp.json +1 -1
  16. package/cloudflare-router-ab/build/signing-worker/index.js +2 -2
  17. package/cloudflare-router-ab/build/signing-worker/index_bg.wasm +0 -0
  18. package/cloudflare-router-ab/build/tenant-root-control-plane/build-stamp.json +1 -1
  19. package/cloudflare-router-ab/build/tenant-root-control-plane/index.js +2 -2
  20. package/cloudflare-router-ab/build/tenant-root-control-plane/index_bg.wasm +0 -0
  21. package/cloudflare-router-ab/scripts/prepare-local-runtime-config.mjs +0 -2
  22. package/cloudflare-router-ab/scripts/start-local-role-workers.mjs +77 -20
  23. package/dist/esm/authorization/lifecycleRouting.js +62 -0
  24. package/dist/esm/authorization/service.js +35 -12
  25. package/dist/esm/cloud-host.js +20 -22
  26. package/dist/esm/core/EmailOtpRecords.js +1 -217
  27. package/dist/esm/core/EmailOtpStores.js +0 -859
  28. package/dist/esm/core/IdentityStore.js +2 -339
  29. package/dist/esm/core/ThresholdService/config.js +1 -9
  30. package/dist/esm/core/ThresholdService/index.js +0 -4
  31. package/dist/esm/core/ThresholdService/kv.js +1 -66
  32. package/dist/esm/core/ThresholdService/routerAb/ecdsaDerivationPoolFillHandlers.js +1 -13
  33. package/dist/esm/core/ThresholdService/routerAbNormalSigningPolicy.js +1 -11
  34. package/dist/esm/core/ThresholdService/stores/WalletSessionStore.js +0 -541
  35. package/dist/esm/core/ThresholdService/validation.js +2 -346
  36. package/dist/esm/core/WalletAuthMethodStore.js +2 -123
  37. package/dist/esm/core/WalletStore.js +3 -209
  38. package/dist/esm/core/WebAuthnAuthenticatorStore.js +0 -202
  39. package/dist/esm/core/WebAuthnCredentialBindingStore.js +2 -182
  40. package/dist/esm/core/WebAuthnLoginChallengeStore.js +0 -52
  41. package/dist/esm/core/WebAuthnSyncChallengeStore.js +0 -54
  42. package/dist/esm/core/authService/emailOtpConfig.js +1 -195
  43. package/dist/esm/core/authService/emailOtpEnrollment.js +0 -110
  44. package/dist/esm/core/authService/emailOtpSeal.js +0 -63
  45. package/dist/esm/core/authService/nearTransactions.js +3 -98
  46. package/dist/esm/core/authService/rateLimits.js +0 -84
  47. package/dist/esm/core/authService/webauthn.js +2 -298
  48. package/dist/esm/core/authService/webauthnOidcHelpers.js +1 -24
  49. package/dist/esm/core/authService/webauthnWalletBinding.js +0 -37
  50. package/dist/esm/core/config.js +1 -95
  51. package/dist/esm/core/d1EcdsaSignerRead.js +1 -1
  52. package/dist/esm/core/d1IdentityStore.js +1 -2
  53. package/dist/esm/core/d1TenantStore.js +1 -24
  54. package/dist/esm/core/d1WalletAuthMethodStore.js +2 -5
  55. package/dist/esm/core/d1WalletStore.js +2 -2
  56. package/dist/esm/core/deviceLinking/linkedDeviceBootstrap.js +13 -0
  57. package/dist/esm/core/deviceLinking/linkedDeviceSession.js +20 -14
  58. package/dist/esm/core/deviceLinking/requestProof.js +9 -6
  59. package/dist/esm/core/emailOtpD1Statements.js +107 -94
  60. package/dist/esm/core/keyMaterialBrands.js +2 -12
  61. package/dist/esm/core/nearKeys.js +0 -1
  62. package/dist/esm/core/nearRelayerAccountProvisioning.js +6 -9
  63. package/dist/esm/core/passkeyCredentialClaims.js +8 -0
  64. package/dist/esm/core/routerAbSigning/RouterAbEcdsaPresignRuntime.js +2 -6
  65. package/dist/esm/core/routerAbSigning/RouterAbNormalSigningRuntime.js +2 -30
  66. package/dist/esm/core/thresholdEcdsaChainTarget.js +1 -4
  67. package/dist/esm/hosted-wallet-gateway.js +66 -43
  68. package/dist/esm/index.js +6 -19
  69. package/dist/esm/localHostedWalletGatewayHandler.js +12 -0
  70. package/dist/esm/localRegistrationSetupAuthority.js +89 -0
  71. package/dist/esm/router/auth/authRequestValidation.js +8 -16
  72. package/dist/esm/router/auth/webAuthnCredentialCodecs.js +0 -1
  73. package/dist/esm/router/cloudflare/d1/auth/d1AuthorizationAssembly.js +87 -0
  74. package/dist/esm/router/cloudflare/d1/auth/d1RouterApiAuthConfig.js +12 -2
  75. package/dist/esm/router/cloudflare/d1/auth/d1RouterApiAuthService.js +32 -281
  76. package/dist/esm/router/cloudflare/d1/authorization/authorizedOperationStatements.js +24 -22
  77. package/dist/esm/router/cloudflare/d1/authorization/d1AuthorizationStore.js +8 -6
  78. package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceAuthorityInstallService.js +12 -13
  79. package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceEd25519ExportRootStore.js +6 -1
  80. package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceEmailOtpGrantStore.js +12 -2
  81. package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceEmailOtpTargetFactor.js +4 -4
  82. package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceOwnerAuthorizationProvider.js +1 -1
  83. package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceRequestProofNonceStore.js +3 -9
  84. package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceRouteService.js +2 -1
  85. package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceSessionStore.js +89 -7
  86. package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceTargetCredentialProvider.js +23 -14
  87. package/dist/esm/router/cloudflare/d1/ed25519Yao/d1Ed25519YaoCapabilityPersistence.js +9 -6
  88. package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpChallengeIssuer.js +0 -1
  89. package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpChallengeService.js +0 -1
  90. package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpChallengeStore.js +1 -1
  91. package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpChallengeVerifier.js +0 -1
  92. package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpEnrollmentStore.js +1 -1
  93. package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpGrantStore.js +1 -7
  94. package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpRateLimitStore.js +19 -13
  95. package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpRecords.js +0 -1
  96. package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpRecoveryService.js +0 -1
  97. package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpRegistrationEnrollmentFinalizer.js +2 -2
  98. package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpServerSealRuntime.js +0 -1
  99. package/dist/esm/router/cloudflare/d1/emailOtp/d1GoogleEmailOtpRegistrationAttemptStore.js +44 -12
  100. package/dist/esm/router/cloudflare/d1/emailOtp/d1GoogleEmailOtpRegistrationRecords.js +1 -49
  101. package/dist/esm/router/cloudflare/d1/emailOtp/d1GoogleEmailOtpSessionResolver.js +19 -31
  102. package/dist/esm/router/cloudflare/d1/emailOtp/d1GoogleRegistrationCompletion.js +85 -0
  103. package/dist/esm/router/cloudflare/d1/identity/d1IdentityRecords.js +0 -1
  104. package/dist/esm/router/cloudflare/d1/identity/d1IdentityService.js +0 -48
  105. package/dist/esm/router/cloudflare/d1/near/d1SponsoredNearAccount.js +242 -0
  106. package/dist/esm/router/cloudflare/d1/oidc/d1OidcBoundary.js +0 -1
  107. package/dist/esm/router/cloudflare/d1/oidc/d1OidcVerificationService.js +2 -29
  108. package/dist/esm/router/cloudflare/d1/oidc/googleOidcToken.js +41 -0
  109. package/dist/esm/router/cloudflare/d1/passkeyCustody/d1PasskeyCustodyRouteService.js +5 -0
  110. package/dist/esm/router/cloudflare/d1/passkeyCustody/d1WalletCustodyCommitStore.js +34 -0
  111. package/dist/esm/router/cloudflare/d1/registration/d1RegistrationCeremonyRecordStore.js +9 -3
  112. package/dist/esm/router/cloudflare/d1/registration/d1RegistrationCeremonyRecords.js +7 -13
  113. package/dist/esm/router/cloudflare/d1/registration/d1RegistrationCeremonyStore.js +25 -13
  114. package/dist/esm/router/cloudflare/d1/registration/d1RegistrationIntentService.js +0 -1
  115. package/dist/esm/router/cloudflare/d1/registration/d1RegistrationSetupSupport.js +74 -0
  116. package/dist/esm/router/cloudflare/d1/registration/d1WalletRegistrationCommitStore.js +7 -1
  117. package/dist/esm/router/cloudflare/d1/registration/d1WalletRegistrationService.js +69 -238
  118. package/dist/esm/router/cloudflare/d1/registration/d1WalletRegistrationSetup.js +12 -56
  119. package/dist/esm/router/cloudflare/d1/registration/d1WalletRegistrationSetupExecution.js +155 -0
  120. package/dist/esm/router/cloudflare/d1/registration/walletRegistrationEstablishedSessionIssuer.js +1 -3
  121. package/dist/esm/router/cloudflare/d1/signingAdmission/d1RouterAbNormalSigningAdmissionStore.js +12 -6
  122. package/dist/esm/router/cloudflare/d1/wallet/d1WalletAddSignerFinalizeRecord.js +68 -0
  123. package/dist/esm/router/cloudflare/d1/wallet/d1WalletAddSignerService.js +7 -54
  124. package/dist/esm/router/cloudflare/d1/wallet/d1WalletAuthMethodService.js +9 -8
  125. package/dist/esm/router/cloudflare/d1/wallet/d1WalletAuthorityStore.js +2 -142
  126. package/dist/esm/router/cloudflare/d1/webauthn/d1WebAuthnAuthService.js +25 -4
  127. package/dist/esm/router/cloudflare/d1/webauthn/d1WebAuthnRecords.js +4 -70
  128. package/dist/esm/router/cloudflare/d1/webauthn/d1WebAuthnStore.js +23 -7
  129. package/dist/esm/router/cloudflare/runtime/staticWalletConsoleBinding.js +1 -0
  130. package/dist/esm/router/cloudflare/runtime/walletConsoleOps.js +1 -0
  131. package/dist/esm/router/cloudflare/runtime/walletConsoleOpsClient.js +5 -0
  132. package/dist/esm/router/cloudflare/runtime/walletGateway.js +1 -1
  133. package/dist/esm/router/cloudflare/runtime/walletRuntimeOps.js +16 -4
  134. package/dist/esm/router/cloudflare-adaptor.js +1 -2
  135. package/dist/esm/router/cloudflare.js +1342 -1733
  136. package/dist/esm/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistration.js +11 -8
  137. package/dist/esm/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistrationPartitionedStateStore.js +3 -2
  138. package/dist/esm/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistrationPartitioning.js +6 -6
  139. package/dist/esm/router/domains/ed25519Yao/export/routerAbEd25519YaoExport.js +6 -6
  140. package/dist/esm/router/domains/ed25519Yao/export/routerAbEd25519YaoExportRequestScopedCloudflare.js +3 -0
  141. package/dist/esm/router/domains/ed25519Yao/recovery/routerAbEd25519YaoRecoveryRequestScopedCloudflare.js +8 -0
  142. package/dist/esm/router/domains/emailOtp/emailOtpRequestValidation.js +0 -1
  143. package/dist/esm/router/domains/passkeyCustody/passkeyCustodyEnvelopeRetrieval.js +2 -8
  144. package/dist/esm/router/domains/passkeyCustody/walletCustodyRegistrationCommit.js +2 -8
  145. package/dist/esm/router/domains/signingOperations/routerAbPrivateSigningWorker.js +5 -19
  146. package/dist/esm/router/domains/signingOperations/walletExecutionAdmission.js +2 -3
  147. package/dist/esm/router/domains/walletRegistration/walletRegistrationReservation.js +70 -0
  148. package/dist/esm/router/domains/walletRegistration/walletRegistrationRoutes.js +10 -11
  149. package/dist/esm/router/domains/walletRegistration/walletRegistrationSetupPayload.js +2 -3
  150. package/dist/esm/router/domains/walletUnlock/walletUnlockRouteHandlers.js +14 -0
  151. package/dist/esm/router/express.js +574 -479
  152. package/dist/esm/router/framework/http.js +2 -0
  153. package/dist/esm/router/framework/registrationSetupDispatch.js +14 -0
  154. package/dist/esm/router/framework/ror/normalize.js +0 -1
  155. package/dist/esm/router/framework/ror/options.js +0 -1
  156. package/dist/esm/router/framework/ror/provider.js +0 -1
  157. package/dist/esm/router/framework/ror/staticProvider.js +0 -1
  158. package/dist/esm/router/framework/routeDefinitions.js +1 -2
  159. package/dist/esm/router/framework/routerApiWebhooks.js +0 -1
  160. package/dist/esm/router/ror.js +0 -1
  161. package/dist/esm/router/transport/fetch/createFetchRouter.js +0 -2
  162. package/dist/esm/router/transport/fetch/routes/auth.js +2 -0
  163. package/dist/esm/router/transport/fetch/routes/deviceLinking.js +36 -147
  164. package/dist/esm/router/transport/fetch/routes/deviceLinkingOwnerAuthorization.js +3 -2
  165. package/dist/esm/router/transport/fetch/routes/deviceLinkingResponses.js +130 -0
  166. package/dist/esm/router/transport/fetch/routes/ecdsaOperationStepUpFactor.js +171 -0
  167. package/dist/esm/router/transport/fetch/routes/passkeyCustody.js +1 -0
  168. package/dist/esm/router/transport/fetch/routes/syncAccount.js +7 -2
  169. package/dist/esm/router/transport/fetch/routes/thresholdEcdsa.js +19 -115
  170. package/dist/esm/router/transport/fetch/routes/walletRegistration.js +3 -1
  171. package/dist/esm/shared-ts/src/authorization/walletSessionIssuance.js +0 -1
  172. package/dist/esm/shared-ts/src/device-linking/authorityActivation.js +0 -2
  173. package/dist/esm/shared-ts/src/device-linking/contracts.js +16 -1
  174. package/dist/esm/shared-ts/src/device-linking/digests.js +1 -8
  175. package/dist/esm/shared-ts/src/near/actions.js +0 -1
  176. package/dist/esm/shared-ts/src/near/nearClient.js +0 -2
  177. package/dist/esm/shared-ts/src/signing-lanes/evmFamilySigningKeySlotId.js +1 -1
  178. package/dist/esm/shared-ts/src/signing-lanes/index.js +1 -6
  179. package/dist/esm/shared-ts/src/signing-lanes/ownerContinuity.js +1 -1
  180. package/dist/esm/shared-ts/src/signing-lanes/participantDigest.js +2 -81
  181. package/dist/esm/shared-ts/src/signing-lanes/participants.js +1 -219
  182. package/dist/esm/shared-ts/src/signing-lanes/recordParsers.js +0 -3
  183. package/dist/esm/shared-ts/src/tenant-root/tenantRootOperationRecord.js +1 -2
  184. package/dist/esm/shared-ts/src/threshold/ecdsaDerivationRoleLocalBootstrap.js +0 -1
  185. package/dist/esm/shared-ts/src/threshold/keyMaterialBrands.js +1 -22
  186. package/dist/esm/shared-ts/src/threshold/participants.js +0 -1
  187. package/dist/esm/shared-ts/src/threshold/signingRootScope.js +0 -1
  188. package/dist/esm/shared-ts/src/utils/addWalletAuthMethod.js +4 -13
  189. package/dist/esm/shared-ts/src/utils/canonicalPrimitives.js +1 -7
  190. package/dist/esm/shared-ts/src/utils/domainIds.js +1 -16
  191. package/dist/esm/shared-ts/src/utils/ecdsaCapabilityActivation.js +1 -11
  192. package/dist/esm/shared-ts/src/utils/ecdsaKeyFactsInventory.js +0 -1
  193. package/dist/esm/shared-ts/src/utils/errors.js +1 -19
  194. package/dist/esm/shared-ts/src/utils/near.js +1 -1
  195. package/dist/esm/shared-ts/src/utils/registrationEstablishedSession.js +1 -1
  196. package/dist/esm/shared-ts/src/utils/registrationIds.js +1 -5
  197. package/dist/esm/shared-ts/src/utils/registrationIntent.js +0 -1
  198. package/dist/esm/shared-ts/src/utils/registrationSetupOperation.js +8 -0
  199. package/dist/esm/shared-ts/src/utils/registrationSignerPlan.js +1 -1
  200. package/dist/esm/shared-ts/src/utils/routerAbEcdsaDerivation.js +0 -1
  201. package/dist/esm/shared-ts/src/utils/validation.js +1 -5
  202. package/dist/esm/shared-ts/src/utils/walletAuthAuthority.js +0 -1
  203. package/dist/esm/shared-ts/src/utils/walletManagementProtocol.js +6 -0
  204. package/dist/esm/shared-ts/src/utils/wireSchema.js +2 -13
  205. package/dist/esm/shared-ts/src/wallet-recovery/backupAcknowledgement.js +6 -24
  206. package/dist/esm/shared-ts/src/wallet-recovery/recoveryCodeLocator.js +0 -1
  207. package/dist/esm/shared-ts/src/wallet-recovery/recoveryKeyId.js +5 -6
  208. package/dist/esm/storage/d1Sql.js +1 -7
  209. package/dist/esm/threshold/session/signingSessionSeal/crypto/cipher.js +0 -1
  210. package/dist/esm/threshold/session/signingSessionSeal/guards/backends.js +1 -2
  211. package/dist/esm/threshold/session/signingSessionSeal/idempotencyBackends.js +0 -1
  212. package/dist/esm/threshold/session/signingSessionSeal/idempotencyRecords.js +0 -1
  213. package/dist/esm/threshold/session/signingSessionSeal/options.js +0 -1
  214. package/dist/esm/wasm/evm_crypto/pkg/evm_crypto_bg.wasm +0 -0
  215. package/dist/esm/wasm/near_signer/pkg/wasm_signer_worker.js +0 -611
  216. package/dist/esm/wasm/near_signer/pkg/wasm_signer_worker_bg.wasm +0 -0
  217. package/dist/esm/wasm/shamir3pass_runtime/pkg/shamir3pass_runtime_bg.wasm +0 -0
  218. package/dist/types/shared-ts/src/authorization/capabilityKinds.d.ts +0 -4
  219. package/dist/types/shared-ts/src/device-linking/contracts.d.ts +1 -0
  220. package/dist/types/shared-ts/src/signing-lanes/evmFamilySigningKeySlotId.d.ts +0 -2
  221. package/dist/types/shared-ts/src/signing-lanes/execution.d.ts +0 -11
  222. package/dist/types/shared-ts/src/signing-lanes/ids.d.ts +2 -7
  223. package/dist/types/shared-ts/src/signing-lanes/index.d.ts +0 -4
  224. package/dist/types/shared-ts/src/signing-lanes/ownerContinuity.d.ts +0 -1
  225. package/dist/types/shared-ts/src/signing-lanes/participantDigest.d.ts +0 -18
  226. package/dist/types/shared-ts/src/signing-lanes/participants.d.ts +6 -35
  227. package/dist/types/shared-ts/src/signing-lanes/rotation.d.ts +6 -843
  228. package/dist/types/shared-ts/src/threshold/keyMaterialBrands.d.ts +0 -10
  229. package/dist/types/shared-ts/src/threshold/participants.d.ts +1 -1
  230. package/dist/types/shared-ts/src/utils/addWalletAuthMethod.d.ts +1 -133
  231. package/dist/types/shared-ts/src/utils/addWalletAuthMethod.typecheck.d.ts +4 -18
  232. package/dist/types/shared-ts/src/utils/domainIds.d.ts +0 -12
  233. package/dist/types/shared-ts/src/utils/errors.d.ts +0 -4
  234. package/dist/types/shared-ts/src/utils/near.d.ts +0 -20
  235. package/dist/types/shared-ts/src/utils/normalize.d.ts +0 -2
  236. package/dist/types/shared-ts/src/utils/registrationSetupOperation.d.ts +3 -0
  237. package/dist/types/shared-ts/src/utils/validation.d.ts +1 -3
  238. package/dist/types/shared-ts/src/utils/walletCapabilityBindings.d.ts +0 -1
  239. package/dist/types/shared-ts/src/utils/walletManagementProtocol.d.ts +3 -0
  240. package/dist/types/shared-ts/src/utils/wireSchema.d.ts +0 -2
  241. package/dist/types/shared-ts/src/wallet-recovery/backupAcknowledgement.d.ts +0 -1
  242. package/dist/types/shared-ts/src/wallet-recovery/recoveryCodeReservation.d.ts +1 -10
  243. package/dist/types/shared-ts/src/wallet-recovery/recoveryCodes.d.ts +1 -3
  244. package/dist/types/shared-ts/src/wallet-recovery/recoveryKeyId.d.ts +5 -21
  245. package/dist/types/wallet-server/src/authorization/lifecycleRouting.d.ts +32 -0
  246. package/dist/types/wallet-server/src/authorization/lifecycleRouting.typecheck.d.ts +2 -0
  247. package/dist/types/wallet-server/src/authorization/recoveryRouting.d.ts +22 -0
  248. package/dist/types/wallet-server/src/authorization/recoveryRouting.typecheck.d.ts +2 -0
  249. package/dist/types/wallet-server/src/authorization/service.d.ts +8 -1
  250. package/dist/types/wallet-server/src/authorization/sessionRouting.d.ts +20 -0
  251. package/dist/types/wallet-server/src/authorization/sessionRouting.typecheck.d.ts +2 -0
  252. package/dist/types/wallet-server/src/cloud-host.d.ts +31 -9
  253. package/dist/types/wallet-server/src/core/EmailOtpRecords.d.ts +1 -22
  254. package/dist/types/wallet-server/src/core/EmailOtpStores.d.ts +1 -79
  255. package/dist/types/wallet-server/src/core/IdentityStore.d.ts +0 -10
  256. package/dist/types/wallet-server/src/core/RegistrationCeremonyStore.d.ts +0 -1
  257. package/dist/types/wallet-server/src/core/ThresholdService/config.d.ts +0 -2
  258. package/dist/types/wallet-server/src/core/ThresholdService/index.d.ts +1 -3
  259. package/dist/types/wallet-server/src/core/ThresholdService/kv.d.ts +0 -7
  260. package/dist/types/wallet-server/src/core/ThresholdService/routerAb/ecdsaDerivationPoolFillHandlers.d.ts +0 -3
  261. package/dist/types/wallet-server/src/core/ThresholdService/routerAbNormalSigningPolicy.d.ts +0 -1
  262. package/dist/types/wallet-server/src/core/ThresholdService/stores/WalletSessionStore.d.ts +7 -19
  263. package/dist/types/wallet-server/src/core/ThresholdService/validation.d.ts +0 -34
  264. package/dist/types/wallet-server/src/core/WalletAuthMethodStore.d.ts +1 -5
  265. package/dist/types/wallet-server/src/core/WalletStore.d.ts +0 -3
  266. package/dist/types/wallet-server/src/core/WebAuthnAuthenticatorStore.d.ts +0 -20
  267. package/dist/types/wallet-server/src/core/WebAuthnCredentialBindingStore.d.ts +1 -27
  268. package/dist/types/wallet-server/src/core/WebAuthnLoginChallengeStore.d.ts +2 -16
  269. package/dist/types/wallet-server/src/core/WebAuthnSyncChallengeStore.d.ts +22 -14
  270. package/dist/types/wallet-server/src/core/authService/emailOtpConfig.d.ts +0 -24
  271. package/dist/types/wallet-server/src/core/authService/emailOtpEnrollment.d.ts +1 -70
  272. package/dist/types/wallet-server/src/core/authService/emailOtpSeal.d.ts +0 -13
  273. package/dist/types/wallet-server/src/core/authService/githubOAuth.d.ts +2 -1
  274. package/dist/types/wallet-server/src/core/authService/nearTransactions.d.ts +1 -39
  275. package/dist/types/wallet-server/src/core/authService/rateLimits.d.ts +0 -17
  276. package/dist/types/wallet-server/src/core/authService/webauthn.d.ts +0 -125
  277. package/dist/types/wallet-server/src/core/authService/webauthnOidcHelpers.d.ts +0 -3
  278. package/dist/types/wallet-server/src/core/authService/webauthnVerificationOutcomes.d.ts +1 -1
  279. package/dist/types/wallet-server/src/core/authService/webauthnWalletBinding.d.ts +0 -12
  280. package/dist/types/wallet-server/src/core/config.d.ts +0 -10
  281. package/dist/types/wallet-server/src/core/d1IdentityStore.d.ts +0 -2
  282. package/dist/types/wallet-server/src/core/d1TenantStore.d.ts +0 -7
  283. package/dist/types/wallet-server/src/core/d1WalletAuthMethodStore.d.ts +0 -1
  284. package/dist/types/wallet-server/src/core/deviceLinking/linkedDeviceBootstrap.d.ts +19 -0
  285. package/dist/types/wallet-server/src/core/deviceLinking/linkedDeviceSession.d.ts +8 -6
  286. package/dist/types/wallet-server/src/core/deviceLinking/requestProof.d.ts +2 -5
  287. package/dist/types/wallet-server/src/core/emailOtpD1Statements.d.ts +10 -7
  288. package/dist/types/wallet-server/src/core/keyMaterialBrands.d.ts +1 -5
  289. package/dist/types/wallet-server/src/core/nearRelayerAccountProvisioning.d.ts +0 -1
  290. package/dist/types/wallet-server/src/core/passkeyCredentialClaims.d.ts +9 -0
  291. package/dist/types/wallet-server/src/core/routerAbSigning/RouterAbEcdsaPresignRuntime.d.ts +0 -2
  292. package/dist/types/wallet-server/src/core/routerAbSigning/RouterAbNormalSigningRuntime.d.ts +0 -2
  293. package/dist/types/wallet-server/src/core/threeRouteRegistrationContracts.d.ts +1 -92
  294. package/dist/types/wallet-server/src/core/threeRouteRegistrationContracts.typecheck.d.ts +4 -52
  295. package/dist/types/wallet-server/src/core/thresholdEcdsaChainTarget.d.ts +0 -1
  296. package/dist/types/wallet-server/src/core/types.d.ts +0 -299
  297. package/dist/types/wallet-server/src/hosted-wallet-gateway.d.ts +15 -3
  298. package/dist/types/wallet-server/src/index.d.ts +8 -13
  299. package/dist/types/wallet-server/src/localRegistrationSetupAuthority.d.ts +13 -0
  300. package/dist/types/wallet-server/src/router/cloudflare/d1/auth/d1AuthorizationAssembly.d.ts +23 -0
  301. package/dist/types/wallet-server/src/router/cloudflare/d1/auth/d1RouterApiAuthConfig.d.ts +25 -3
  302. package/dist/types/wallet-server/src/router/cloudflare/d1/authorization/d1AuthorizationStore.d.ts +1 -1
  303. package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceAuthorityInstallService.d.ts +3 -1
  304. package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceEmailOtpGrantStore.d.ts +7 -1
  305. package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceRequestProofNonceStore.d.ts +1 -10
  306. package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceRouteService.d.ts +4 -0
  307. package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceSessionStore.d.ts +6 -0
  308. package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceTargetPlanner.d.ts +1 -13
  309. package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpChallengeService.d.ts +2 -2
  310. package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpChallengeStore.d.ts +1 -1
  311. package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpGrantStore.d.ts +0 -2
  312. package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpRateLimitStore.d.ts +18 -2
  313. package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1GoogleEmailOtpRegistrationAttemptStore.d.ts +29 -1
  314. package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1GoogleEmailOtpRegistrationRecords.d.ts +3 -16
  315. package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1GoogleEmailOtpSessionResolver.d.ts +7 -2
  316. package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1GoogleRegistrationCompletion.d.ts +23 -0
  317. package/dist/types/wallet-server/src/router/cloudflare/d1/identity/d1IdentityService.d.ts +0 -12
  318. package/dist/types/wallet-server/src/router/cloudflare/d1/near/d1SponsoredNearAccount.d.ts +24 -0
  319. package/dist/types/wallet-server/src/router/cloudflare/d1/near/d1SponsoredNearAccount.typecheck.d.ts +2 -0
  320. package/dist/types/wallet-server/src/router/cloudflare/d1/oidc/d1OidcVerificationService.d.ts +0 -1
  321. package/dist/types/wallet-server/src/router/cloudflare/d1/oidc/googleOidcToken.d.ts +4 -0
  322. package/dist/types/wallet-server/src/router/cloudflare/d1/passkeyCustody/d1PasskeyCustodyRouteService.d.ts +5 -0
  323. package/dist/types/wallet-server/src/router/cloudflare/d1/passkeyCustody/d1WalletCustodyCommitStore.d.ts +9 -0
  324. package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1RegistrationCeremonyRecordStore.d.ts +1 -1
  325. package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1RegistrationCeremonyRecords.d.ts +10 -11
  326. package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1RegistrationCeremonyStore.d.ts +3 -2
  327. package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1RegistrationSetupSupport.d.ts +51 -0
  328. package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1WalletRegistrationCommitStore.d.ts +3 -0
  329. package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1WalletRegistrationService.d.ts +30 -47
  330. package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1WalletRegistrationSetup.d.ts +3 -30
  331. package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1WalletRegistrationSetupExecution.d.ts +11 -0
  332. package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletAddSignerFinalizeRecord.d.ts +27 -0
  333. package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletAddSignerService.d.ts +1 -10
  334. package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletAuthMethodService.d.ts +2 -2
  335. package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletAuthorityStore.d.ts +0 -4
  336. package/dist/types/wallet-server/src/router/cloudflare/d1/webauthn/d1WebAuthnAuthService.d.ts +3 -0
  337. package/dist/types/wallet-server/src/router/cloudflare/d1/webauthn/d1WebAuthnRecords.d.ts +0 -13
  338. package/dist/types/wallet-server/src/router/cloudflare/d1/webauthn/d1WebAuthnStore.d.ts +23 -10
  339. package/dist/types/wallet-server/src/router/cloudflare/d1/webauthn/d1WebAuthnStore.typecheck.d.ts +2 -0
  340. package/dist/types/wallet-server/src/router/cloudflare/runtime/cloudflare.types.d.ts +0 -2
  341. package/dist/types/wallet-server/src/router/cloudflare/runtime/walletConsoleOps.d.ts +1 -0
  342. package/dist/types/wallet-server/src/router/cloudflare/runtime/walletConsoleOpsClient.d.ts +2 -0
  343. package/dist/types/wallet-server/src/router/cloudflare/runtime/walletGateway.d.ts +1 -1
  344. package/dist/types/wallet-server/src/router/cloudflare/runtime/walletRuntimeOps.d.ts +3 -0
  345. package/dist/types/wallet-server/src/router/cloudflare-adaptor.d.ts +0 -1
  346. package/dist/types/wallet-server/src/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistration.d.ts +1 -1
  347. package/dist/types/wallet-server/src/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistrationPartitioning.d.ts +2 -2
  348. package/dist/types/wallet-server/src/router/domains/ed25519Yao/export/routerAbEd25519YaoExport.d.ts +2 -2
  349. package/dist/types/wallet-server/src/router/domains/ed25519Yao/export/routerAbEd25519YaoExport.typecheck.d.ts +2 -0
  350. package/dist/types/wallet-server/src/router/domains/ed25519Yao/export/routerAbEd25519YaoExportRequestScopedCloudflare.d.ts +2 -0
  351. package/dist/types/wallet-server/src/router/domains/ed25519Yao/recovery/routerAbEd25519YaoRecoveryRequestScopedCloudflare.d.ts +2 -0
  352. package/dist/types/wallet-server/src/router/domains/passkeyCustody/passkeyCustodyEnvelopeRetrieval.d.ts +0 -2
  353. package/dist/types/wallet-server/src/router/domains/passkeyCustody/walletCustodyRegistrationCommit.d.ts +0 -3
  354. package/dist/types/wallet-server/src/router/domains/signingOperations/routerAbPrivateSigningWorker.d.ts +0 -17
  355. package/dist/types/wallet-server/src/router/domains/signingOperations/walletExecutionAdmission.d.ts +1 -2
  356. package/dist/types/wallet-server/src/router/domains/walletRegistration/walletRegistrationInputs.d.ts +1 -0
  357. package/dist/types/wallet-server/src/router/domains/walletRegistration/walletRegistrationReservation.d.ts +51 -0
  358. package/dist/types/wallet-server/src/router/domains/walletRegistration/walletRegistrationRoutes.d.ts +2 -10
  359. package/dist/types/wallet-server/src/router/domains/walletRegistration/walletRegistrationSetupPayload.d.ts +2 -2
  360. package/dist/types/wallet-server/src/router/framework/authServicePort.d.ts +14 -34
  361. package/dist/types/wallet-server/src/router/framework/googleLoginResolution.typecheck.d.ts +2 -0
  362. package/dist/types/wallet-server/src/router/framework/registrationSetupDispatch.d.ts +13 -0
  363. package/dist/types/wallet-server/src/router/transport/fetch/routes/deviceLinking.d.ts +1 -1
  364. package/dist/types/wallet-server/src/router/transport/fetch/routes/deviceLinkingResponses.d.ts +17 -0
  365. package/dist/types/wallet-server/src/router/transport/fetch/routes/ecdsaOperationStepUpFactor.d.ts +37 -0
  366. package/dist/types/wallet-server/src/storage/d1Sql.d.ts +0 -1
  367. package/migrations/d1-signer/0040_namespace_home_challenges.sql +16 -0
  368. package/migrations/d1-signer/0041_step_up_admission_expiry.sql +28 -0
  369. package/migrations/d1-signer/0042_deployment_resource_challenges.sql +4 -0
  370. package/migrations/d1-signer/0043_google_registration_candidate_claim.sql +2 -0
  371. package/migrations/d1-signer/0044_linked_device_bootstrap_imports.sql +6 -0
  372. package/migrations/d1-signer/0045_wallet_owned_capability_receipts.sql +29 -0
  373. package/migrations/d1-signer/0046_wallet_owned_signing_abuse.sql +41 -0
  374. package/migrations/d1-signer/0047_remove_unused_near_public_keys.sql +2 -0
  375. package/migrations/d1-signer/0048_operation_owner_scope.sql +45 -0
  376. package/package.json +2 -3
  377. package/src/README.md +11 -3
  378. package/dist/esm/core/AuthService.js +0 -2
  379. package/dist/esm/core/NearPublicKeyStore.js +0 -200
  380. package/dist/esm/core/ThresholdService/stores/CloudflareDurableObjectStore.js +0 -397
  381. package/dist/esm/core/ThresholdService/stores/KeyStore.js +0 -140
  382. package/dist/esm/core/ThresholdService/stores/SessionStore.js +0 -361
  383. package/dist/esm/core/ThresholdService/stores/StoreConfig.js +0 -13
  384. package/dist/esm/core/ThresholdService/stores/exportReplayGuard.js +0 -7
  385. package/dist/esm/core/authService/AuthService.js +0 -594
  386. package/dist/esm/core/authService/bytes.js +0 -19
  387. package/dist/esm/core/authService/configValues.js +0 -15
  388. package/dist/esm/core/authService/emailOtpChallengeOperations.js +0 -123
  389. package/dist/esm/core/authService/emailOtpChallengeProof.js +0 -183
  390. package/dist/esm/core/authService/emailOtpChallengeVerification.js +0 -264
  391. package/dist/esm/core/authService/emailOtpChallenges.js +0 -225
  392. package/dist/esm/core/authService/emailOtpDelivery.js +0 -134
  393. package/dist/esm/core/authService/emailOtpGrant.js +0 -43
  394. package/dist/esm/core/authService/emailOtpRegistrationEnrollment.js +0 -144
  395. package/dist/esm/core/authService/emailOtpUnlock.js +0 -174
  396. package/dist/esm/core/authService/googleEmailOtpOperations.js +0 -141
  397. package/dist/esm/core/authService/googleEmailOtpRegistration.js +0 -587
  398. package/dist/esm/core/authService/identity.js +0 -42
  399. package/dist/esm/core/authService/identityOperations.js +0 -32
  400. package/dist/esm/core/authService/nearAccountOperations.js +0 -229
  401. package/dist/esm/core/authService/nearPublicKeyMetadata.js +0 -108
  402. package/dist/esm/core/authService/oidcVerification.js +0 -249
  403. package/dist/esm/core/authService/registrationThresholdHelpers.js +0 -30
  404. package/dist/esm/core/authService/runtime.js +0 -45
  405. package/dist/esm/core/authService/storeRegistry.js +0 -102
  406. package/dist/esm/core/authService/thresholdStoreSummary.js +0 -32
  407. package/dist/esm/core/authService/webauthnAuthority.js +0 -17
  408. package/dist/esm/core/defaultConfigsServer.js +0 -9
  409. package/dist/esm/core/hostedAccountIds.js +0 -225
  410. package/dist/esm/core/routerAbSigning/createRouterAbSigningRuntimes.js +0 -84
  411. package/dist/esm/core/signingLanes/LaneAggregateRevocationApplicationService.js +0 -86
  412. package/dist/esm/core/signingLanes/LaneEnrollmentActivation.js +0 -324
  413. package/dist/esm/core/signingLanes/LaneEnrollmentRevocation.js +0 -173
  414. package/dist/esm/core/signingLanes/LaneLifecycleApplicationService.js +0 -198
  415. package/dist/esm/core/signingLanes/ecdsaServerRetirement.js +0 -73
  416. package/dist/esm/core/signingLanes/ed25519ServerRetirement.js +0 -68
  417. package/dist/esm/core/signingLanes/signingWorkerLaneMaterialIdentity.js +0 -0
  418. package/dist/esm/core/storeBackends.js +0 -208
  419. package/dist/esm/core/utils.js +0 -14
  420. package/dist/esm/core/webAuthnStoreBackends.js +0 -198
  421. package/dist/esm/router/cloudflare/d1/near/d1NearPublicKeyStore.js +0 -49
  422. package/dist/esm/router/cloudflare/d1/signingLanes/d1EcdsaLanePrivateBindingResolver.js +0 -10
  423. package/dist/esm/router/cloudflare/d1/signingLanes/d1LaneAggregateRevocationApplicationService.js +0 -22
  424. package/dist/esm/router/cloudflare/d1/signingLanes/d1LaneEffectJournalStore.js +0 -166
  425. package/dist/esm/router/cloudflare/d1/signingLanes/d1LaneEnrollmentGateway.js +0 -38
  426. package/dist/esm/router/cloudflare/d1/signingLanes/d1LaneLifecycleApplicationService.js +0 -20
  427. package/dist/esm/router/cloudflare/d1/signingLanes/d1LaneLifecycleStore.js +0 -1459
  428. package/dist/esm/router/cloudflare/d1/signingLanes/d1LaneLockStore.js +0 -114
  429. package/dist/esm/router/cloudflare/d1/signingLanes/d1LaneProtocolCommitter.js +0 -16
  430. package/dist/esm/router/cloudflare/d1/signingLanes/d1LaneRecords.js +0 -171
  431. package/dist/esm/router/cloudflare/d1/signingLanes/index.js +0 -10
  432. package/dist/esm/router/cloudflare/durableObjects/thresholdStore.js +0 -397
  433. package/dist/esm/router/cloudflare/signingLanes/cloudflareLaneCurveExecution.js +0 -597
  434. package/dist/esm/router/cloudflare/signingLanes/cloudflareLaneProtocolCommitter.js +0 -273
  435. package/dist/esm/router/cloudflare/signingLanes/index.js +0 -4
  436. package/dist/esm/router/cloudflare/signingLanes/linkedDeviceEd25519CeremonyBinding.js +0 -32
  437. package/dist/esm/router/transport/fetch/routes/nearPublicKeys.js +0 -27
  438. package/dist/esm/shared-ts/src/signing-lanes/rotation.js +0 -8
  439. package/dist/esm/shared-ts/src/signing-lanes/rotationDigests.js +0 -358
  440. package/dist/esm/shared-ts/src/signing-lanes/rotationLifecycle.js +0 -313
  441. package/dist/esm/shared-ts/src/signing-lanes/rotationParsers.js +0 -532
  442. package/dist/esm/shared-ts/src/signing-lanes/rotationProtocolParsers.js +0 -323
  443. package/dist/esm/shared-ts/src/signing-lanes/rotationWireFields.js +0 -59
  444. package/dist/types/shared-ts/src/signing-lanes/participantDigest.typecheck.d.ts +0 -2
  445. package/dist/types/shared-ts/src/signing-lanes/rotation.typecheck.d.ts +0 -2
  446. package/dist/types/shared-ts/src/signing-lanes/rotationDigests.d.ts +0 -13
  447. package/dist/types/shared-ts/src/signing-lanes/rotationLifecycle.d.ts +0 -78
  448. package/dist/types/shared-ts/src/signing-lanes/rotationParsers.d.ts +0 -27
  449. package/dist/types/shared-ts/src/signing-lanes/rotationProtocolParsers.d.ts +0 -6
  450. package/dist/types/shared-ts/src/signing-lanes/rotationWireFields.d.ts +0 -20
  451. package/dist/types/shared-ts/src/wallet-recovery/recoveryCodeAttempt.d.ts +0 -59
  452. package/dist/types/wallet-server/src/core/AuthService.d.ts +0 -3
  453. package/dist/types/wallet-server/src/core/NearPublicKeyStore.d.ts +0 -48
  454. package/dist/types/wallet-server/src/core/ThresholdService/stores/CloudflareDurableObjectStore.d.ts +0 -21
  455. package/dist/types/wallet-server/src/core/ThresholdService/stores/KeyStore.d.ts +0 -40
  456. package/dist/types/wallet-server/src/core/ThresholdService/stores/SessionStore.d.ts +0 -98
  457. package/dist/types/wallet-server/src/core/ThresholdService/stores/StoreConfig.d.ts +0 -4
  458. package/dist/types/wallet-server/src/core/ThresholdService/stores/ThresholdStoreConfig.typecheck.d.ts +0 -2
  459. package/dist/types/wallet-server/src/core/ThresholdService/stores/exportReplayGuard.d.ts +0 -3
  460. package/dist/types/wallet-server/src/core/authService/AuthService.d.ts +0 -490
  461. package/dist/types/wallet-server/src/core/authService/bytes.d.ts +0 -3
  462. package/dist/types/wallet-server/src/core/authService/configValues.d.ts +0 -7
  463. package/dist/types/wallet-server/src/core/authService/emailOtpChallengeOperations.d.ts +0 -109
  464. package/dist/types/wallet-server/src/core/authService/emailOtpChallengeProof.d.ts +0 -169
  465. package/dist/types/wallet-server/src/core/authService/emailOtpChallengeVerification.d.ts +0 -47
  466. package/dist/types/wallet-server/src/core/authService/emailOtpChallenges.d.ts +0 -86
  467. package/dist/types/wallet-server/src/core/authService/emailOtpDelivery.d.ts +0 -66
  468. package/dist/types/wallet-server/src/core/authService/emailOtpGrant.d.ts +0 -43
  469. package/dist/types/wallet-server/src/core/authService/emailOtpRegistrationEnrollment.d.ts +0 -49
  470. package/dist/types/wallet-server/src/core/authService/emailOtpUnlock.d.ts +0 -64
  471. package/dist/types/wallet-server/src/core/authService/googleEmailOtpOperations.d.ts +0 -126
  472. package/dist/types/wallet-server/src/core/authService/googleEmailOtpRegistration.d.ts +0 -169
  473. package/dist/types/wallet-server/src/core/authService/identity.d.ts +0 -25
  474. package/dist/types/wallet-server/src/core/authService/identityOperations.d.ts +0 -19
  475. package/dist/types/wallet-server/src/core/authService/nearAccountOperations.d.ts +0 -55
  476. package/dist/types/wallet-server/src/core/authService/nearPublicKeyMetadata.d.ts +0 -44
  477. package/dist/types/wallet-server/src/core/authService/oidcVerification.d.ts +0 -66
  478. package/dist/types/wallet-server/src/core/authService/registrationThresholdHelpers.d.ts +0 -11
  479. package/dist/types/wallet-server/src/core/authService/runtime.d.ts +0 -20
  480. package/dist/types/wallet-server/src/core/authService/storeRegistry.d.ts +0 -53
  481. package/dist/types/wallet-server/src/core/authService/thresholdStoreSummary.d.ts +0 -3
  482. package/dist/types/wallet-server/src/core/authService/webauthnAuthority.d.ts +0 -5
  483. package/dist/types/wallet-server/src/core/defaultConfigsServer.d.ts +0 -5
  484. package/dist/types/wallet-server/src/core/hostedAccountIds.d.ts +0 -16
  485. package/dist/types/wallet-server/src/core/routerAbSigning/createRouterAbSigningRuntimes.d.ts +0 -16
  486. package/dist/types/wallet-server/src/core/signingLanes/LaneAggregateRevocationApplicationService.d.ts +0 -36
  487. package/dist/types/wallet-server/src/core/signingLanes/LaneEffectJournalStore.d.ts +0 -62
  488. package/dist/types/wallet-server/src/core/signingLanes/LaneEnrollmentActivation.d.ts +0 -13
  489. package/dist/types/wallet-server/src/core/signingLanes/LaneEnrollmentRevocation.d.ts +0 -24
  490. package/dist/types/wallet-server/src/core/signingLanes/LaneLifecycleApplicationService.d.ts +0 -141
  491. package/dist/types/wallet-server/src/core/signingLanes/LaneLifecycleStore.d.ts +0 -228
  492. package/dist/types/wallet-server/src/core/signingLanes/ecdsaServerRetirement.d.ts +0 -58
  493. package/dist/types/wallet-server/src/core/signingLanes/ed25519ServerRetirement.d.ts +0 -30
  494. package/dist/types/wallet-server/src/core/signingLanes/signingWorkerLaneMaterialIdentity.d.ts +0 -4
  495. package/dist/types/wallet-server/src/core/storeBackends.d.ts +0 -83
  496. package/dist/types/wallet-server/src/core/utils.d.ts +0 -3
  497. package/dist/types/wallet-server/src/core/webAuthnStoreBackends.d.ts +0 -96
  498. package/dist/types/wallet-server/src/router/cloudflare/d1/near/d1NearPublicKeyStore.d.ts +0 -29
  499. package/dist/types/wallet-server/src/router/cloudflare/d1/signingLanes/d1EcdsaLanePrivateBindingResolver.d.ts +0 -4
  500. package/dist/types/wallet-server/src/router/cloudflare/d1/signingLanes/d1LaneAggregateRevocationApplicationService.d.ts +0 -4
  501. package/dist/types/wallet-server/src/router/cloudflare/d1/signingLanes/d1LaneEffectJournalStore.d.ts +0 -24
  502. package/dist/types/wallet-server/src/router/cloudflare/d1/signingLanes/d1LaneEnrollmentGateway.d.ts +0 -20
  503. package/dist/types/wallet-server/src/router/cloudflare/d1/signingLanes/d1LaneLifecycleApplicationService.d.ts +0 -13
  504. package/dist/types/wallet-server/src/router/cloudflare/d1/signingLanes/d1LaneLifecycleStore.d.ts +0 -51
  505. package/dist/types/wallet-server/src/router/cloudflare/d1/signingLanes/d1LaneLockStore.d.ts +0 -28
  506. package/dist/types/wallet-server/src/router/cloudflare/d1/signingLanes/d1LaneProtocolCommitter.d.ts +0 -5
  507. package/dist/types/wallet-server/src/router/cloudflare/d1/signingLanes/d1LaneRecords.d.ts +0 -107
  508. package/dist/types/wallet-server/src/router/cloudflare/d1/signingLanes/index.d.ts +0 -10
  509. package/dist/types/wallet-server/src/router/cloudflare/durableObjects/thresholdStore.d.ts +0 -18
  510. package/dist/types/wallet-server/src/router/cloudflare/signingLanes/cloudflareLaneCurveExecution.d.ts +0 -217
  511. package/dist/types/wallet-server/src/router/cloudflare/signingLanes/cloudflareLaneProtocolCommitter.d.ts +0 -73
  512. package/dist/types/wallet-server/src/router/cloudflare/signingLanes/index.d.ts +0 -4
  513. package/dist/types/wallet-server/src/router/cloudflare/signingLanes/linkedDeviceEd25519CeremonyBinding.d.ts +0 -6
  514. package/dist/types/wallet-server/src/router/transport/fetch/routes/nearPublicKeys.d.ts +0 -3
  515. /package/dist/esm/{core/signingLanes/LaneEffectJournalStore.js → authorization/recoveryRouting.js} +0 -0
  516. /package/dist/esm/{core/signingLanes/LaneLifecycleStore.js → authorization/sessionRouting.js} +0 -0
@@ -1,198 +0,0 @@
1
- import { parseCorrelationId, sha256DigestB64u } from "../../shared-ts/src/utils/canonicalPrimitives.js";
2
- import { buildRevokeSigningLaneV1, parseLaneProtocolCommitReceiptV1, parseLaneRefreshPredecessorRetirementV1, parseLaneServerActivationReceiptV1, parseRevokeSigningLaneV1 } from "../../shared-ts/src/signing-lanes/rotationParsers.js";
3
- import { encodeLaneProtocolCommitReceiptV1 } from "../../shared-ts/src/signing-lanes/rotationDigests.js";
4
- //#region src/core/signingLanes/LaneLifecycleApplicationService.ts
5
- var LaneLifecycleApplicationService = class {
6
- constructor(input) {
7
- this.input = input;
8
- }
9
- async recordLaneProtocolCommitV1(request) {
10
- await authorizeProtocolCommit(this.input.authorization, request);
11
- const parsedReceipt = parseLaneProtocolCommitReceiptV1(request.curve === "ed25519_yao" ? await this.input.execution.ed25519.executeProtocolCommitV1({
12
- job: request.job,
13
- requestJson: requireJson(request.requestJson, "requestJson")
14
- }) : await this.input.execution.ecdsa.executeProtocolCommitV1({
15
- job: request.job,
16
- holderRound: request.holderRound,
17
- holderPackage: request.holderPackage,
18
- encryptedDeltaPackageJson: requireJson(request.encryptedDeltaPackageJson, "encryptedDeltaPackageJson")
19
- }));
20
- assertProtocolReceiptMatchesJob(parsedReceipt, request.job);
21
- return await this.input.gateway.recordLaneProtocolCommitV1({
22
- receipt: parsedReceipt,
23
- expectedVersion: request.expectedVersion
24
- });
25
- }
26
- async activateLaneServerMaterialV1(request) {
27
- assertProtocolReceiptMatchesJob(request.protocolCommitReceipt, request.job);
28
- assertHolderDeliveryReceiptMatchesJob(request.holderDeliveryReceipt, request.protocolCommitReceipt, request.job);
29
- await authorizeServerActivation(this.input.authorization, request);
30
- const parsedReceipt = parseLaneServerActivationReceiptV1(request.curve === "ed25519_yao" ? await this.input.execution.ed25519.executeServerActivationV1({
31
- job: request.job,
32
- protocolCommitReceipt: request.protocolCommitReceipt,
33
- holderDeliveryReceipt: request.holderDeliveryReceipt
34
- }) : await this.input.execution.ecdsa.executeServerActivationV1({
35
- job: request.job,
36
- protocolCommitReceipt: request.protocolCommitReceipt,
37
- holderDeliveryReceipt: request.holderDeliveryReceipt
38
- }));
39
- assertServerActivationReceiptMatchesJob(parsedReceipt, request.protocolCommitReceipt, request.holderDeliveryReceipt, request.job);
40
- return await this.input.gateway.activateLaneServerMaterialV1({
41
- receipt: parsedReceipt,
42
- expectedVersion: request.expectedVersion
43
- });
44
- }
45
- async revokeSigningLaneV1(request) {
46
- const command = parseRevokeSigningLaneV1(request.command);
47
- await this.input.authorization.authorizeLaneLifecycleV1({
48
- kind: "revoke_signing_lane_v1",
49
- curve: request.curve,
50
- command
51
- });
52
- const fenced = await this.input.gateway.fenceSigningLaneRevocationV1(command);
53
- if (fenced.outcome === "conflict") return revocationConflict(command, fenced);
54
- if (fenced.outcome === "already_completed") return completedRevocation(command, fenced);
55
- assertRevocationFenceMatchesCommand(fenced.productEpoch, command);
56
- const execution = request.curve === "ed25519_yao" ? await this.input.execution.ed25519.executeServerRetirementV1({ command }) : await this.input.execution.ecdsa.executeServerRetirementV1({ command });
57
- assertRetirementExecutionMatchesCommand(execution, command);
58
- return await this.input.gateway.completeSigningLaneRevocationV1({
59
- kind: "complete_signing_lane_revocation_v1",
60
- command,
61
- expectedVersion: fenced.version,
62
- commandDigestB64u: fenced.commandDigestB64u,
63
- retirementReceipt: execution.retirementReceipt,
64
- revokedAtMs: command.requestedAtMs
65
- });
66
- }
67
- async retireLaneRefreshPredecessorV1(request) {
68
- const protocolCommitReceipt = parseLaneProtocolCommitReceiptV1(request.protocolCommitReceipt);
69
- assertProtocolReceiptMatchesJob(protocolCommitReceipt, request.job);
70
- const retirementRequestDigestB64u = await sha256DigestB64u(encodeLaneProtocolCommitReceiptV1(protocolCommitReceipt));
71
- const command = buildRevokeSigningLaneV1({
72
- walletId: request.job.walletId,
73
- walletKeyId: request.job.walletKeyId,
74
- laneId: request.job.source.laneId,
75
- laneShareEpoch: request.job.source.laneShareEpoch,
76
- expectedRevocationEpoch: request.job.source.revocationEpoch,
77
- reason: "rotation",
78
- retirementCorrelationId: parseCorrelationId(request.job.operationId),
79
- retirementRequestDigestB64u,
80
- retirementEffectBindingDigestB64u: request.job.authorization.ownerLaneRefreshDigestB64u,
81
- requestedAtMs: request.requestedAtMs
82
- });
83
- await this.input.authorization.authorizeLaneLifecycleV1({
84
- kind: "revoke_signing_lane_v1",
85
- curve: request.curve,
86
- command
87
- });
88
- const fenced = await this.input.gateway.fenceSigningLaneRevocationV1(command);
89
- if (fenced.outcome === "conflict") throw new Error("lane refresh predecessor revocation fence conflicted");
90
- if (fenced.outcome === "already_completed") return parseLaneRefreshPredecessorRetirementV1({
91
- refreshOperationId: request.job.operationId,
92
- sourceLaneId: request.job.source.laneId,
93
- sourceLaneShareEpoch: request.job.source.laneShareEpoch,
94
- sourceMaterialActivation: request.job.source.materialActivation,
95
- retirementEffectBindingDigestB64u: request.job.authorization.ownerLaneRefreshDigestB64u,
96
- retirementReceipt: fenced.retirementReceipt
97
- });
98
- assertRevocationFenceMatchesCommand(fenced.productEpoch, command);
99
- const execution = request.curve === "ed25519_yao" ? await this.input.execution.ed25519.executeServerRetirementV1({ command }) : await this.input.execution.ecdsa.executeServerRetirementV1({ command });
100
- assertRetirementExecutionMatchesCommand(execution, command);
101
- return parseLaneRefreshPredecessorRetirementV1({
102
- refreshOperationId: request.job.operationId,
103
- sourceLaneId: request.job.source.laneId,
104
- sourceLaneShareEpoch: request.job.source.laneShareEpoch,
105
- sourceMaterialActivation: request.job.source.materialActivation,
106
- retirementEffectBindingDigestB64u: execution.retirementEffectBindingDigestB64u,
107
- retirementReceipt: execution.retirementReceipt
108
- });
109
- }
110
- };
111
- function assertRetirementExecutionMatchesCommand(execution, command) {
112
- if (execution.kind !== "lane_lifecycle_retirement_execution_v1") throw new Error("lane retirement execution result kind is invalid");
113
- if (execution.retirementEffectBindingDigestB64u !== command.retirementEffectBindingDigestB64u) throw new Error("lane retirement effect binding digest does not match the authorized effect binding");
114
- assertRevokeSigningLaneCommandEqual(command, parseRevokeSigningLaneV1(execution.command));
115
- }
116
- function revocationConflict(command, result) {
117
- return {
118
- kind: "lane_signing_lane_revocation_result_v1",
119
- outcome: "conflict",
120
- walletKeyId: command.walletKeyId,
121
- laneId: command.laneId,
122
- laneShareEpoch: command.laneShareEpoch,
123
- expectedVersion: result.expectedVersion,
124
- actualVersion: result.actualVersion,
125
- requestedCommandDigestB64u: result.requestedCommandDigestB64u,
126
- storedCommandDigestB64u: result.storedCommandDigestB64u
127
- };
128
- }
129
- function completedRevocation(command, result) {
130
- return {
131
- kind: "lane_signing_lane_revocation_result_v1",
132
- outcome: "replayed",
133
- walletKeyId: command.walletKeyId,
134
- laneId: command.laneId,
135
- laneShareEpoch: command.laneShareEpoch,
136
- version: result.version,
137
- commandDigestB64u: result.commandDigestB64u,
138
- productEpoch: result.productEpoch,
139
- retirementReceipt: result.retirementReceipt
140
- };
141
- }
142
- function assertRevocationFenceMatchesCommand(product, command) {
143
- if (String(product.walletId) !== String(command.walletId) || String(product.walletKeyId) !== String(command.walletKeyId) || String(product.laneId) !== String(command.laneId) || String(product.laneShareEpoch) !== String(command.laneShareEpoch) || product.revocationEpoch !== command.expectedRevocationEpoch + 1 || product.revocationReason !== command.reason || product.retirementEffectBindingDigestB64u !== command.retirementEffectBindingDigestB64u) throw new Error("lane revocation fence does not match the authorized command");
144
- }
145
- async function authorizeProtocolCommit(authorization, request) {
146
- if (request.curve === "ed25519_yao") {
147
- await authorization.authorizeLaneLifecycleV1({
148
- kind: "record_lane_protocol_commit_v1",
149
- curve: request.curve,
150
- job: request.job,
151
- expectedVersion: request.expectedVersion
152
- });
153
- return;
154
- }
155
- await authorization.authorizeLaneLifecycleV1({
156
- kind: "record_lane_protocol_commit_v1",
157
- curve: request.curve,
158
- job: request.job,
159
- expectedVersion: request.expectedVersion
160
- });
161
- }
162
- async function authorizeServerActivation(authorization, request) {
163
- if (request.curve === "ed25519_yao") {
164
- await authorization.authorizeLaneLifecycleV1({
165
- kind: "activate_lane_server_material_v1",
166
- curve: request.curve,
167
- job: request.job,
168
- expectedVersion: request.expectedVersion
169
- });
170
- return;
171
- }
172
- await authorization.authorizeLaneLifecycleV1({
173
- kind: "activate_lane_server_material_v1",
174
- curve: request.curve,
175
- job: request.job,
176
- expectedVersion: request.expectedVersion
177
- });
178
- }
179
- function requireJson(value, label) {
180
- if (typeof value !== "string" || value.trim().length === 0) throw new Error(`${label} is required`);
181
- return value;
182
- }
183
- function assertProtocolReceiptMatchesJob(receipt, job) {
184
- if (receipt.operationId !== job.operationId || receipt.enrollmentId !== job.enrollmentId || receipt.walletId !== job.walletId || receipt.walletKeyId !== job.walletKeyId || receipt.targetLaneId !== job.target.laneId || receipt.targetLaneShareEpoch !== job.target.laneShareEpoch || receipt.targetMaterialActivationId !== job.targetMaterialActivationId || receipt.keyFamily !== job.keyFamily || receipt.holderRecipientKeyDigestB64u !== job.targetHolder.hpkePublicKeyDigestB64u || receipt.serverRecipientKeyDigestB64u !== job.targetSigningWorker.hpkePublicKeyDigestB64u) throw new Error("lane protocol commit receipt does not match the admitted job");
185
- }
186
- function assertHolderDeliveryReceiptMatchesJob(receipt, protocolReceipt, job) {
187
- if (receipt.operationId !== job.operationId || receipt.enrollmentId !== job.enrollmentId || receipt.targetLaneId !== job.target.laneId || receipt.targetLaneShareEpoch !== job.target.laneShareEpoch || receipt.targetMaterialActivationId !== job.targetMaterialActivationId || receipt.holderCiphertextDigestSetB64u !== protocolReceipt.targetHolderCiphertextDigestSetB64u || receipt.acknowledgedAtMs < protocolReceipt.committedAtMs) throw new Error("lane holder delivery receipt does not match the admitted job");
188
- }
189
- function assertServerActivationReceiptMatchesJob(receipt, protocolReceipt, holderReceipt, job) {
190
- if (receipt.operationId !== job.operationId || receipt.enrollmentId !== job.enrollmentId || receipt.targetLaneId !== job.target.laneId || receipt.targetLaneShareEpoch !== job.target.laneShareEpoch || receipt.targetMaterialActivation.activationId !== job.targetMaterialActivationId || receipt.targetMaterialActivation.capability !== job.source.materialActivation.capability || receipt.targetMaterialActivation.materialOwner !== job.source.materialActivation.materialOwner || receipt.targetMaterialActivation.keyBinding !== job.source.materialActivation.keyBinding || receipt.targetMaterialActivation.lifecycleBinding !== job.source.materialActivation.lifecycleBinding || String(receipt.targetMaterialActivation.signingWorker) !== String(job.targetSigningWorker.participantId) || receipt.serverCiphertextDigestSetB64u !== protocolReceipt.targetServerCiphertextDigestSetB64u || receipt.activatedAtMs < holderReceipt.acknowledgedAtMs) throw new Error("lane server activation receipt does not match the admitted job");
191
- }
192
- function assertRevokeSigningLaneCommandEqual(expected, actual) {
193
- if (expected.kind !== actual.kind || expected.walletId !== actual.walletId || expected.walletKeyId !== actual.walletKeyId || expected.laneId !== actual.laneId || expected.laneShareEpoch !== actual.laneShareEpoch || expected.expectedRevocationEpoch !== actual.expectedRevocationEpoch || expected.reason !== actual.reason || expected.retirementCorrelationId !== actual.retirementCorrelationId || expected.retirementRequestDigestB64u !== actual.retirementRequestDigestB64u || expected.retirementEffectBindingDigestB64u !== actual.retirementEffectBindingDigestB64u || expected.requestedAtMs !== actual.requestedAtMs) throw new Error("lane retirement execution changed the authorized command");
194
- }
195
- //#endregion
196
- export { LaneLifecycleApplicationService };
197
-
198
- //# sourceMappingURL=LaneLifecycleApplicationService.js.map
@@ -1,73 +0,0 @@
1
- import { mpcMaterialActivationRefsEqual } from "../../shared-ts/src/utils/domainIds.js";
2
- import { parseDigestB64u } from "../../shared-ts/src/utils/canonicalPrimitives.js";
3
- import { isPlainObject } from "../../shared-ts/src/utils/validation.js";
4
- import { parseEcdsaServerRetirementReceiptV1 } from "../../shared-ts/src/signing-lanes/rotationParsers.js";
5
- import { computeEcdsaServerRetirementReceiptDigestV1 } from "../../shared-ts/src/signing-lanes/rotationDigests.js";
6
- import "../../shared-ts/src/signing-lanes/index.js";
7
- //#region src/core/signingLanes/ecdsaServerRetirement.ts
8
- function buildEcdsaServerRetirementRequestV1(input) {
9
- assertIdentityMatchesCommand(input.binding, input.command);
10
- const retirementReason = retirementReasonForCommand(input.command.reason);
11
- return {
12
- identity: input.binding.identity,
13
- manifest: input.binding.manifest,
14
- materialActivation: input.binding.materialActivation,
15
- revocationEpoch: input.command.expectedRevocationEpoch,
16
- retirementReason,
17
- retirementCorrelationId: input.command.retirementCorrelationId,
18
- retirementRequestDigestB64u: parseDigestB64u(input.command.retirementRequestDigestB64u),
19
- retirementEffectBindingDigestB64u: parseDigestB64u(input.command.retirementEffectBindingDigestB64u),
20
- serverGeneration: input.binding.serverGeneration,
21
- lifecycleId: input.binding.lifecycleId
22
- };
23
- }
24
- function assertIdentityMatchesCommand(binding, command) {
25
- const identity = binding.identity;
26
- if (identity.keyFamily !== "ecdsa_secp256k1" || identity.walletId !== command.walletId || identity.walletKeyId !== command.walletKeyId || identity.targetLaneId !== command.laneId || identity.targetLaneShareEpoch !== command.laneShareEpoch || identity.targetMaterialActivationId !== binding.materialActivation.activationId) throw new Error("ECDSA retirement binding identity does not match the authorized command");
27
- }
28
- async function parseAndVerifyEcdsaServerRetirementEffectV1(input) {
29
- const label = input.label ?? "ecdsaLaneRetireEffect";
30
- const effect = exactEffectEnvelope(input.raw, label);
31
- const outcome = parseOutcome(effect.outcome, `${label}.outcome`);
32
- const receipt = parseEcdsaServerRetirementReceiptV1(effect.receipt, `${label}.receipt`);
33
- assertReceiptMatchesExpectation(receipt, input.expectation);
34
- const canonicalDigest = await computeEcdsaServerRetirementReceiptDigestV1(receipt);
35
- if (receipt.receiptDigestB64u !== canonicalDigest) throw new Error(`${label}.receipt.receiptDigestB64u does not match its canonical digest`);
36
- return {
37
- outcome,
38
- receipt,
39
- retirementEffectBindingDigestB64u: input.expectation.retirementEffectBindingDigestB64u,
40
- retirementReceiptDigestB64u: parseDigestB64u(receipt.receiptDigestB64u)
41
- };
42
- }
43
- function assertReceiptMatchesExpectation(receipt, expectation) {
44
- if (receipt.manifest.manifestId !== expectation.manifest.manifestId || receipt.manifest.manifestRevision !== expectation.manifest.manifestRevision || !mpcMaterialActivationRefsEqual(receipt.materialActivation, expectation.materialActivation) || receipt.walletKeyId !== expectation.walletKeyId || receipt.laneId !== expectation.laneId || receipt.laneShareEpoch !== expectation.laneShareEpoch || receipt.revocationEpoch !== expectation.revocationEpoch || receipt.retirementReason !== expectation.retirementReason || receipt.retirementCorrelationId !== expectation.retirementCorrelationId || receipt.retirementRequestDigestB64u !== expectation.retirementRequestDigestB64u || receipt.serverGeneration !== expectation.serverGeneration || receipt.lifecycleId !== expectation.lifecycleId) throw new Error("ECDSA retirement receipt does not match the admitted lane binding");
45
- }
46
- function retirementReasonForCommand(reason) {
47
- switch (reason) {
48
- case "user_revoked":
49
- case "policy_revoked": return "lane_revoked";
50
- case "device_compromise": return "device_compromise";
51
- case "agent_compromise": return "agent_compromise";
52
- case "rotation": return "rotation";
53
- }
54
- }
55
- function exactEffectEnvelope(value, label) {
56
- if (!isPlainObject(value)) throw new Error(`${label} must be an object`);
57
- const fields = ["outcome", "receipt"];
58
- const allowed = new Set(fields);
59
- for (const key of Object.keys(value)) if (!allowed.has(key)) throw new Error(`${label}.${key} is unsupported`);
60
- for (const field of fields) if (!Object.hasOwn(value, field)) throw new Error(`${label}.${field} is required`);
61
- return {
62
- outcome: Reflect.get(value, "outcome"),
63
- receipt: Reflect.get(value, "receipt")
64
- };
65
- }
66
- function parseOutcome(value, label) {
67
- if (value === "applied" || value === "replayed") return value;
68
- throw new Error(`${label} is invalid`);
69
- }
70
- //#endregion
71
- export { buildEcdsaServerRetirementRequestV1, parseAndVerifyEcdsaServerRetirementEffectV1 };
72
-
73
- //# sourceMappingURL=ecdsaServerRetirement.js.map
@@ -1,68 +0,0 @@
1
- import { parseDigestB64u } from "../../shared-ts/src/utils/canonicalPrimitives.js";
2
- import { parseEd25519ServerRetirementReceiptV1 } from "../../shared-ts/src/signing-lanes/rotationParsers.js";
3
- import { computeEd25519ServerRetirementReceiptDigestV1 } from "../../shared-ts/src/signing-lanes/rotationDigests.js";
4
- import "../../shared-ts/src/signing-lanes/index.js";
5
- //#region src/core/signingLanes/ed25519ServerRetirement.ts
6
- function buildEd25519ServerRetirementRequestV1(input) {
7
- assertIdentityMatchesCommand(input.binding.identity, input.command);
8
- return {
9
- identity: input.binding.identity,
10
- revocationEpoch: input.command.expectedRevocationEpoch,
11
- retirementReason: retirementReasonForCommand(input.command.reason),
12
- retirementCorrelationId: input.command.retirementCorrelationId,
13
- retirementRequestDigestB64u: parseDigestB64u(input.command.retirementRequestDigestB64u),
14
- retirementEffectBindingDigestB64u: parseDigestB64u(input.command.retirementEffectBindingDigestB64u)
15
- };
16
- }
17
- async function parseAndVerifyEd25519ServerRetirementEffectV1(input) {
18
- const label = input.label ?? "ed25519LaneRetireEffect";
19
- const envelope = exactEffectEnvelope(input.raw, label);
20
- const outcome = parseOutcome(envelope.outcome, `${label}.outcome`);
21
- const receipt = parseEd25519ServerRetirementReceiptV1(envelope.receipt, `${label}.receipt`);
22
- assertReceiptMatchesRequest(receipt, input.request);
23
- const canonicalDigest = await computeEd25519ServerRetirementReceiptDigestV1(receipt);
24
- if (receipt.receiptDigestB64u !== canonicalDigest) throw new Error(`${label}.receipt.receiptDigestB64u does not match its canonical digest`);
25
- return {
26
- outcome,
27
- receipt,
28
- retirementEffectBindingDigestB64u: input.request.retirementEffectBindingDigestB64u,
29
- retirementReceiptDigestB64u: canonicalDigest
30
- };
31
- }
32
- function assertIdentityMatchesCommand(identity, command) {
33
- if (identity.keyFamily !== "ed25519" || identity.walletId !== command.walletId || identity.walletKeyId !== command.walletKeyId || identity.targetLaneId !== command.laneId || identity.targetLaneShareEpoch !== command.laneShareEpoch) throw new Error("Ed25519 retirement binding identity does not match the authorized command");
34
- }
35
- function assertReceiptMatchesRequest(receipt, request) {
36
- if (!identitiesEqual(receipt.identity, request.identity) || receipt.revocationEpoch !== request.revocationEpoch || receipt.retirementReason !== request.retirementReason || receipt.retirementCorrelationId !== request.retirementCorrelationId || receipt.retirementRequestDigestB64u !== request.retirementRequestDigestB64u) throw new Error("Ed25519 retirement receipt does not match the admitted lane binding");
37
- }
38
- function identitiesEqual(left, right) {
39
- return left.operationId === right.operationId && left.enrollmentId === right.enrollmentId && left.walletId === right.walletId && left.walletKeyId === right.walletKeyId && left.targetLaneId === right.targetLaneId && left.targetLaneShareEpoch === right.targetLaneShareEpoch && left.targetMaterialActivationId === right.targetMaterialActivationId && left.keyFamily === right.keyFamily && left.holderParticipantBindingDigestB64u === right.holderParticipantBindingDigestB64u && left.signingWorkerParticipantBindingDigestB64u === right.signingWorkerParticipantBindingDigestB64u && left.holderRecipientKeyDigestB64u === right.holderRecipientKeyDigestB64u && left.serverRecipientKeyDigestB64u === right.serverRecipientKeyDigestB64u && left.transcriptHashB64u === right.transcriptHashB64u && left.protocolCommitReceiptDigestB64u === right.protocolCommitReceiptDigestB64u;
40
- }
41
- function retirementReasonForCommand(reason) {
42
- switch (reason) {
43
- case "user_revoked":
44
- case "policy_revoked": return "lane_revoked";
45
- case "device_compromise": return "device_compromise";
46
- case "agent_compromise": return "agent_compromise";
47
- case "rotation": return "rotation";
48
- }
49
- }
50
- function exactEffectEnvelope(value, label) {
51
- if (typeof value !== "object" || value === null || Array.isArray(value)) throw new Error(`${label} must be an object`);
52
- const fields = ["outcome", "receipt"];
53
- const allowed = new Set(fields);
54
- for (const key of Object.keys(value)) if (!allowed.has(key)) throw new Error(`${label}.${key} is unsupported`);
55
- for (const field of fields) if (!Object.hasOwn(value, field)) throw new Error(`${label}.${field} is required`);
56
- return {
57
- outcome: Reflect.get(value, "outcome"),
58
- receipt: Reflect.get(value, "receipt")
59
- };
60
- }
61
- function parseOutcome(value, label) {
62
- if (value === "applied" || value === "replayed") return value;
63
- throw new Error(`${label} is invalid`);
64
- }
65
- //#endregion
66
- export { buildEd25519ServerRetirementRequestV1, parseAndVerifyEd25519ServerRetirementEffectV1 };
67
-
68
- //# sourceMappingURL=ed25519ServerRetirement.js.map
@@ -1,208 +0,0 @@
1
- import { normalizeOptionalTrimmedString } from "../shared-ts/src/utils/normalize.js";
2
- import { isObject, isPlainObject } from "../shared-ts/src/utils/validation.js";
3
- import "./defaultConfigsServer.js";
4
- import { resolveD1DatabaseFromConfig } from "../storage/d1Sql.js";
5
- import { d1TenantScopeFromConfig } from "./d1TenantStore.js";
6
- import { RedisTcpClient, UpstashRedisRestClient, redisDel, redisGetJson, redisGetdelJson, redisSetJson } from "./ThresholdService/kv.js";
7
- //#region src/core/storeBackends.ts
8
- function isDurableObjectNamespaceLike(value) {
9
- return isPlainObject(value) && typeof value.idFromName === "function" && typeof value.get === "function";
10
- }
11
- /** The first of `namespace`, `durableObjectNamespace` and `THRESHOLD_DO_NAMESPACE` that is one. */
12
- function resolveDurableObjectNamespace(config) {
13
- const direct = config.namespace;
14
- if (isDurableObjectNamespaceLike(direct)) return direct;
15
- const alt = config.durableObjectNamespace;
16
- if (isDurableObjectNamespaceLike(alt)) return alt;
17
- const envStyle = config.THRESHOLD_DO_NAMESPACE;
18
- if (isDurableObjectNamespaceLike(envStyle)) return envStyle;
19
- return null;
20
- }
21
- /** The object a store config names: `objectName`, else `name`, else the default. */
22
- function durableObjectName(config) {
23
- return normalizeOptionalTrimmedString(config.objectName) || normalizeOptionalTrimmedString(config.name) || "threshold-store";
24
- }
25
- function durableObjectStub(namespace, objectName) {
26
- return namespace.get(namespace.idFromName(objectName));
27
- }
28
- /** Posts one JSON request to a store's Durable Object. */
29
- function postDurableObjectRequest(stub, body) {
30
- return stub.fetch("https://threshold-store.invalid/", {
31
- method: "POST",
32
- headers: { "content-type": "application/json" },
33
- body: JSON.stringify(body)
34
- });
35
- }
36
- /**
37
- * Posts a request and parses the object's JSON reply; an empty reply reads as null. An HTTP error
38
- * or a reply that is not JSON throws, naming the store: `<storeName> DO store …`.
39
- */
40
- async function requestDurableObjectJson(stub, body, storeName) {
41
- const resp = await postDurableObjectRequest(stub, body);
42
- const text = await resp.text();
43
- if (!resp.ok) throw new Error(`${storeName} DO store HTTP ${resp.status}: ${text}`);
44
- try {
45
- return text ? JSON.parse(text) : null;
46
- } catch {
47
- throw new Error(`${storeName} DO store returned non-JSON response: ${text.slice(0, 200)}`);
48
- }
49
- }
50
- async function callDo(stub, req, storeName) {
51
- const json = await requestDurableObjectJson(stub, req, storeName);
52
- if (!isObject(json)) throw new Error(`${storeName} DO store returned invalid JSON shape`);
53
- if (json.ok === true) return json;
54
- const code = normalizeOptionalTrimmedString(json.code);
55
- const message = normalizeOptionalTrimmedString(json.message);
56
- return {
57
- ok: false,
58
- code: code || "internal",
59
- message: message || `${storeName} DO store error`
60
- };
61
- }
62
- function upstashRecords(client, parse) {
63
- return {
64
- get: async (key) => parse(await client.getJson(key)),
65
- take: async (key) => parse(await client.getdelJson(key)),
66
- set: (key, record, ttlMs) => client.setJson(key, record, ttlMs),
67
- del: (key) => client.del(key)
68
- };
69
- }
70
- function redisTcpRecords(client, parse) {
71
- return {
72
- get: async (key) => parse(await redisGetJson(client, key)),
73
- take: async (key) => parse(await redisGetdelJson(client, key)),
74
- set: (key, record, ttlMs) => redisSetJson(client, key, record, ttlMs),
75
- del: (key) => redisDel(client, key)
76
- };
77
- }
78
- function durableObjectRecords(stub, parse, storeName) {
79
- const read = async (op, key) => {
80
- const resp = await callDo(stub, {
81
- op,
82
- key
83
- }, storeName);
84
- return parse(resp.ok ? resp.value : null);
85
- };
86
- const write = async (req) => {
87
- const resp = await callDo(stub, req, storeName);
88
- if (!resp.ok) throw new Error(resp.message);
89
- };
90
- return {
91
- get: (key) => read("get", key),
92
- take: (key) => read("getdel", key),
93
- set: (key, record, ttlMs) => write({
94
- op: "set",
95
- key,
96
- value: record,
97
- ttlMs
98
- }),
99
- del: (key) => write({
100
- op: "del",
101
- key
102
- })
103
- };
104
- }
105
- /**
106
- * Selects a key-value store's backend: the config's explicit `kind`, else Upstash or Redis from
107
- * env-shaped config, else in memory. The store type `S` comes from the caller's return type.
108
- */
109
- function createKeyValueStore(input, spec, build) {
110
- const { tag, label, connectionErrorSubject, parse } = spec;
111
- const config = isObject(input.config) ? input.config : {};
112
- const prefix = spec.resolvePrefix(config);
113
- const inMemory = () => build.inMemory(prefix);
114
- const upstash = (url, token) => build.keyValue(upstashRecords(new UpstashRedisRestClient({
115
- url,
116
- token
117
- }), parse), prefix);
118
- const redisTcp = (redisUrl) => build.keyValue(redisTcpRecords(new RedisTcpClient(redisUrl), parse), prefix);
119
- const kind = normalizeOptionalTrimmedString(config.kind);
120
- if (kind === "d1") {
121
- const database = resolveD1DatabaseFromConfig(config);
122
- if (!database) throw new Error(`[${tag}] D1 ${label} store selected but no D1 database was provided`);
123
- input.logger.info(`[${tag}] Using D1 ${label} store`);
124
- const scope = d1TenantScopeFromConfig(config, prefix, spec.d1StoreName);
125
- return build.d1({
126
- database,
127
- ...scope
128
- });
129
- }
130
- if (kind === "cloudflare-do") {
131
- const namespace = resolveDurableObjectNamespace(config);
132
- if (!namespace) throw new Error(`cloudflare-do ${tag} store selected but no Durable Object namespace was provided (expected config.namespace)`);
133
- const objectName = durableObjectName(config);
134
- input.logger.info(`[${tag}] Using Cloudflare Durable Object ${spec.durableObjectLog}`);
135
- const stub = durableObjectStub(namespace, objectName);
136
- return build.keyValue(durableObjectRecords(stub, parse, spec.durableObjectErrorName), prefix);
137
- }
138
- if (kind === "in-memory") {
139
- input.logger.info(`[${tag}] Using in-memory ${label} store (non-persistent)`);
140
- return inMemory();
141
- }
142
- if (kind === "upstash-redis-rest") {
143
- const url = normalizeOptionalTrimmedString(config.url) || normalizeOptionalTrimmedString(config.UPSTASH_REDIS_REST_URL);
144
- const token = normalizeOptionalTrimmedString(config.token) || normalizeOptionalTrimmedString(config.UPSTASH_REDIS_REST_TOKEN);
145
- if (!url || !token) throw new Error(`Upstash ${connectionErrorSubject} enabled but url/token are not both set`);
146
- input.logger.info(`[${tag}] Using Upstash REST ${label} store`);
147
- return upstash(url, token);
148
- }
149
- if (kind === "redis-tcp") {
150
- if (!input.isNode) {
151
- input.logger.warn(`[${tag}] redis-tcp ${label} store is not supported in this runtime; falling back to in-memory`);
152
- return inMemory();
153
- }
154
- const redisUrl = normalizeOptionalTrimmedString(config.redisUrl) || normalizeOptionalTrimmedString(config.REDIS_URL);
155
- if (!redisUrl) throw new Error(`redis-tcp ${connectionErrorSubject} enabled but redisUrl is not set`);
156
- input.logger.info(`[${tag}] Using redis-tcp ${label} store`);
157
- return redisTcp(redisUrl);
158
- }
159
- if (kind) throw new Error(`[${tag}] Unknown ${label} store kind: ${kind}`);
160
- const upstashUrl = normalizeOptionalTrimmedString(config.UPSTASH_REDIS_REST_URL);
161
- const upstashToken = normalizeOptionalTrimmedString(config.UPSTASH_REDIS_REST_TOKEN);
162
- if (upstashUrl || upstashToken) {
163
- if (!upstashUrl || !upstashToken) throw new Error(`Upstash ${connectionErrorSubject} enabled but UPSTASH_REDIS_REST_URL / UPSTASH_REDIS_REST_TOKEN are not both set`);
164
- input.logger.info(`[${tag}] Using Upstash REST ${label} store`);
165
- return upstash(upstashUrl, upstashToken);
166
- }
167
- const redisUrl = normalizeOptionalTrimmedString(config.REDIS_URL);
168
- if (redisUrl) {
169
- if (!input.isNode) {
170
- input.logger.warn(`[${tag}] REDIS_URL is set but TCP Redis is not supported in this runtime; falling back to in-memory`);
171
- return inMemory();
172
- }
173
- input.logger.info(`[${tag}] Using redis-tcp ${label} store`);
174
- return redisTcp(redisUrl);
175
- }
176
- input.logger.info(`[${tag}] Using in-memory ${label} store (${spec.unconfiguredNote})`);
177
- return inMemory();
178
- }
179
- /** Selects the backend the config's `kind` names: D1, a Durable Object, or else memory. */
180
- function createDurableObjectStore(input, spec, build) {
181
- const { tag } = spec;
182
- const config = isPlainObject(input.config) ? input.config : {};
183
- const prefix = spec.resolvePrefix(config);
184
- const kind = normalizeOptionalTrimmedString(config.kind);
185
- if (kind === "d1") {
186
- const database = resolveD1DatabaseFromConfig(config);
187
- if (!database) throw new Error(`[${tag}] D1 store selected but no D1 database was provided`);
188
- input.logger.info(`[${tag}] Using D1 store`);
189
- return build.d1({
190
- database,
191
- ...d1TenantScopeFromConfig(config, prefix, spec.d1StoreName)
192
- });
193
- }
194
- if (kind === "cloudflare-do") {
195
- const namespace = resolveDurableObjectNamespace(config);
196
- if (!namespace) throw new Error(`cloudflare-do ${spec.name} store selected but no Durable Object namespace was provided`);
197
- const objectName = durableObjectName(config);
198
- input.logger.info(`[${tag}] Using Cloudflare Durable Object store`);
199
- return build.durableObject(durableObjectStub(namespace, objectName), prefix);
200
- }
201
- if (kind) throw new Error(`[${tag}] Unknown ${spec.name} store kind: ${kind}`);
202
- input.logger.info(`[${tag}] ${spec.inMemoryLog}`);
203
- return build.inMemory(prefix);
204
- }
205
- //#endregion
206
- export { createDurableObjectStore, createKeyValueStore, durableObjectName, durableObjectStub, postDurableObjectRequest, requestDurableObjectJson, resolveDurableObjectNamespace };
207
-
208
- //# sourceMappingURL=storeBackends.js.map
@@ -1,14 +0,0 @@
1
- import { isString } from "../shared-ts/src/utils/validation.js";
2
- //#region src/core/utils.ts
3
- function formatGasToTGas(gasString) {
4
- const gasAmount = BigInt(gasString);
5
- return `${(Number(gasAmount) / 0xe8d4a51000).toFixed(0)} TGas`;
6
- }
7
- function formatYoctoToNear(yoctoAmount) {
8
- const amount = isString(yoctoAmount) ? BigInt(yoctoAmount) : yoctoAmount;
9
- return (Number(amount) / 1e24).toFixed(3);
10
- }
11
- //#endregion
12
- export { formatGasToTGas, formatYoctoToNear };
13
-
14
- //# sourceMappingURL=utils.js.map