@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,52 +0,0 @@
1
- import { normalizeOptionalTrimmedString } from "../shared-ts/src/utils/normalize.js";
2
- import { isObject } from "../shared-ts/src/utils/validation.js";
3
- import { D1WebAuthnChallengeStore, WEBAUTHN_CHALLENGE_STORE_D1_SCHEMA_SQL, createWebAuthnChallengeStore, ensureWebAuthnChallengeStoreD1Schema } from "./webAuthnStoreBackends.js";
4
- //#region src/core/WebAuthnLoginChallengeStore.ts
5
- const WEBAUTHN_LOGIN_CHALLENGE_STORE_D1_SCHEMA_SQL = WEBAUTHN_CHALLENGE_STORE_D1_SCHEMA_SQL;
6
- const ensureWebAuthnLoginChallengeStoreD1Schema = ensureWebAuthnChallengeStoreD1Schema;
7
- function parseWebAuthnLoginChallengeRecord(raw) {
8
- if (!isObject(raw)) return null;
9
- const version = normalizeOptionalTrimmedString(raw.version);
10
- const challengeId = normalizeOptionalTrimmedString(raw.challengeId);
11
- const userId = normalizeOptionalTrimmedString(raw.userId);
12
- const rpId = normalizeOptionalTrimmedString(raw.rpId);
13
- const challengeB64u = normalizeOptionalTrimmedString(raw.challengeB64u);
14
- const createdAtMs = typeof raw.createdAtMs === "number" ? raw.createdAtMs : Number(raw.createdAtMs);
15
- const expiresAtMs = typeof raw.expiresAtMs === "number" ? raw.expiresAtMs : Number(raw.expiresAtMs);
16
- if (version !== "webauthn_login_challenge_v1") return null;
17
- if (!challengeId || !userId || !rpId || !challengeB64u) return null;
18
- if (!Number.isFinite(createdAtMs) || createdAtMs <= 0) return null;
19
- if (!Number.isFinite(expiresAtMs) || expiresAtMs <= 0) return null;
20
- return {
21
- version: "webauthn_login_challenge_v1",
22
- challengeId,
23
- userId,
24
- rpId,
25
- challengeB64u,
26
- createdAtMs: Math.floor(createdAtMs),
27
- expiresAtMs: Math.floor(expiresAtMs)
28
- };
29
- }
30
- const LOGIN_CHALLENGE_STORE = {
31
- label: "login challenge",
32
- prefixConfigKey: "WEBAUTHN_LOGIN_CHALLENGE_PREFIX",
33
- prefixName: "login_challenge",
34
- challengeKind: "login",
35
- parse: parseWebAuthnLoginChallengeRecord,
36
- durableObjectLogSubject: "login challenge persistence",
37
- connectionErrorSubject: "webauthn login challenge store",
38
- unconfiguredNote: "non-persistent",
39
- d1ScopeLabel: "login challenge"
40
- };
41
- var D1WebAuthnLoginChallengeStore = class extends D1WebAuthnChallengeStore {
42
- constructor(input) {
43
- super(input, LOGIN_CHALLENGE_STORE);
44
- }
45
- };
46
- function createWebAuthnLoginChallengeStore(input) {
47
- return createWebAuthnChallengeStore(input, LOGIN_CHALLENGE_STORE, (options) => new D1WebAuthnLoginChallengeStore(options));
48
- }
49
- //#endregion
50
- export { D1WebAuthnLoginChallengeStore, WEBAUTHN_LOGIN_CHALLENGE_STORE_D1_SCHEMA_SQL, createWebAuthnLoginChallengeStore, ensureWebAuthnLoginChallengeStoreD1Schema };
51
-
52
- //# sourceMappingURL=WebAuthnLoginChallengeStore.js.map
@@ -1,54 +0,0 @@
1
- import { normalizeOptionalTrimmedString } from "../shared-ts/src/utils/normalize.js";
2
- import { isObject } from "../shared-ts/src/utils/validation.js";
3
- import { D1WebAuthnChallengeStore, WEBAUTHN_CHALLENGE_STORE_D1_SCHEMA_SQL, createWebAuthnChallengeStore, ensureWebAuthnChallengeStoreD1Schema } from "./webAuthnStoreBackends.js";
4
- //#region src/core/WebAuthnSyncChallengeStore.ts
5
- const WEBAUTHN_SYNC_CHALLENGE_STORE_D1_SCHEMA_SQL = WEBAUTHN_CHALLENGE_STORE_D1_SCHEMA_SQL;
6
- const ensureWebAuthnSyncChallengeStoreD1Schema = ensureWebAuthnChallengeStoreD1Schema;
7
- function parseWebAuthnSyncChallengeRecord(raw) {
8
- if (!isObject(raw)) return null;
9
- const version = normalizeOptionalTrimmedString(raw.version);
10
- const challengeId = normalizeOptionalTrimmedString(raw.challengeId);
11
- const rpId = normalizeOptionalTrimmedString(raw.rpId);
12
- const expectedUserId = normalizeOptionalTrimmedString(raw.expectedUserId);
13
- const challengeB64u = normalizeOptionalTrimmedString(raw.challengeB64u);
14
- const createdAtMsRaw = raw.createdAtMs;
15
- const expiresAtMsRaw = raw.expiresAtMs;
16
- const createdAtMs = typeof createdAtMsRaw === "number" ? createdAtMsRaw : Number(createdAtMsRaw);
17
- const expiresAtMs = typeof expiresAtMsRaw === "number" ? expiresAtMsRaw : Number(expiresAtMsRaw);
18
- if (version !== "webauthn_sync_challenge_v1") return null;
19
- if (!challengeId || !rpId || !challengeB64u) return null;
20
- if (!Number.isFinite(createdAtMs) || createdAtMs <= 0) return null;
21
- if (!Number.isFinite(expiresAtMs) || expiresAtMs <= 0) return null;
22
- return {
23
- version: "webauthn_sync_challenge_v1",
24
- challengeId,
25
- rpId,
26
- ...expectedUserId ? { expectedUserId } : {},
27
- challengeB64u,
28
- createdAtMs: Math.floor(createdAtMs),
29
- expiresAtMs: Math.floor(expiresAtMs)
30
- };
31
- }
32
- const SYNC_CHALLENGE_STORE = {
33
- label: "sync challenge",
34
- prefixConfigKey: "WEBAUTHN_SYNC_CHALLENGE_PREFIX",
35
- prefixName: "sync_challenge",
36
- challengeKind: "sync",
37
- parse: parseWebAuthnSyncChallengeRecord,
38
- durableObjectLogSubject: "sync challenges",
39
- connectionErrorSubject: "webauthn store",
40
- unconfiguredNote: "no persistence configured",
41
- d1ScopeLabel: "sync challenge"
42
- };
43
- var D1WebAuthnSyncChallengeStore = class extends D1WebAuthnChallengeStore {
44
- constructor(input) {
45
- super(input, SYNC_CHALLENGE_STORE);
46
- }
47
- };
48
- function createWebAuthnSyncChallengeStore(input) {
49
- return createWebAuthnChallengeStore(input, SYNC_CHALLENGE_STORE, (options) => new D1WebAuthnSyncChallengeStore(options));
50
- }
51
- //#endregion
52
- export { D1WebAuthnSyncChallengeStore, WEBAUTHN_SYNC_CHALLENGE_STORE_D1_SCHEMA_SQL, createWebAuthnSyncChallengeStore, ensureWebAuthnSyncChallengeStoreD1Schema };
53
-
54
- //# sourceMappingURL=WebAuthnSyncChallengeStore.js.map
@@ -1,200 +1,6 @@
1
- import { readAuthServiceConfigValue } from "./configValues.js";
2
1
  //#region src/core/authService/emailOtpConfig.ts
3
2
  const EMAIL_OTP_CODE_LENGTH = 6;
4
- function readEmailOtpConfigValue(input, name) {
5
- return readAuthServiceConfigValue({
6
- thresholdStore: input.thresholdStore,
7
- name
8
- });
9
- }
10
- function parseConfiguredInteger(input) {
11
- const normalized = String(input.raw || "").trim();
12
- if (!normalized) return input.defaultValue;
13
- const n = Number(normalized);
14
- if (!Number.isFinite(n)) throw new Error(`${input.name} must be a finite number`);
15
- if (n < input.min || n > input.max) throw new Error(`${input.name} must be between ${input.min} and ${input.max}`);
16
- return Math.floor(n);
17
- }
18
- function parseEmailOtpDeliveryMode(raw) {
19
- const deliveryModeRaw = raw.toLowerCase();
20
- if (!deliveryModeRaw) return "memory";
21
- if (deliveryModeRaw === "email_provider" || deliveryModeRaw === "log" || deliveryModeRaw === "memory") return deliveryModeRaw;
22
- throw new Error("EMAIL_OTP_DELIVERY_MODE must be one of email_provider, log, or memory");
23
- }
24
- function readBooleanFlag(input, name) {
25
- const raw = readEmailOtpConfigValue(input, name);
26
- if (raw && ![
27
- "1",
28
- "true",
29
- "yes",
30
- "on",
31
- "0",
32
- "false",
33
- "no",
34
- "off"
35
- ].includes(raw.toLowerCase())) throw new Error(`${name} must be a boolean flag when provided`);
36
- return raw;
37
- }
38
- function isTruthyBooleanFlag(raw) {
39
- return [
40
- "1",
41
- "true",
42
- "yes",
43
- "on"
44
- ].includes(raw.toLowerCase());
45
- }
46
- function resolveEmailOtpRateLimitPolicies(input) {
47
- const challengeDefault = input.production ? {
48
- limit: 30,
49
- windowMs: 6e4
50
- } : {
51
- limit: 100,
52
- windowMs: 6e4
53
- };
54
- const verifyDefault = input.production ? {
55
- limit: 30,
56
- windowMs: 6e4
57
- } : {
58
- limit: 100,
59
- windowMs: 6e4
60
- };
61
- const grantDefault = input.production ? {
62
- limit: 30,
63
- windowMs: 6e4
64
- } : {
65
- limit: 100,
66
- windowMs: 6e4
67
- };
68
- const googleRegistrationAttemptDefault = input.production ? {
69
- limit: 12,
70
- windowMs: 10 * 6e4
71
- } : {
72
- limit: 200,
73
- windowMs: 6e4
74
- };
75
- return {
76
- challenge: {
77
- limit: parseConfiguredInteger({
78
- name: "EMAIL_OTP_CHALLENGE_RATE_LIMIT_MAX",
79
- raw: readEmailOtpConfigValue(input, "EMAIL_OTP_CHALLENGE_RATE_LIMIT_MAX"),
80
- defaultValue: challengeDefault.limit,
81
- min: 1,
82
- max: 500
83
- }),
84
- windowMs: parseConfiguredInteger({
85
- name: "EMAIL_OTP_CHALLENGE_RATE_LIMIT_WINDOW_MS",
86
- raw: readEmailOtpConfigValue(input, "EMAIL_OTP_CHALLENGE_RATE_LIMIT_WINDOW_MS"),
87
- defaultValue: challengeDefault.windowMs,
88
- min: 1e3,
89
- max: 1440 * 6e4
90
- })
91
- },
92
- verify: {
93
- limit: parseConfiguredInteger({
94
- name: "EMAIL_OTP_VERIFY_RATE_LIMIT_MAX",
95
- raw: readEmailOtpConfigValue(input, "EMAIL_OTP_VERIFY_RATE_LIMIT_MAX"),
96
- defaultValue: verifyDefault.limit,
97
- min: 1,
98
- max: 1e3
99
- }),
100
- windowMs: parseConfiguredInteger({
101
- name: "EMAIL_OTP_VERIFY_RATE_LIMIT_WINDOW_MS",
102
- raw: readEmailOtpConfigValue(input, "EMAIL_OTP_VERIFY_RATE_LIMIT_WINDOW_MS"),
103
- defaultValue: verifyDefault.windowMs,
104
- min: 1e3,
105
- max: 1440 * 6e4
106
- })
107
- },
108
- grant: {
109
- limit: parseConfiguredInteger({
110
- name: "EMAIL_OTP_GRANT_RATE_LIMIT_MAX",
111
- raw: readEmailOtpConfigValue(input, "EMAIL_OTP_GRANT_RATE_LIMIT_MAX"),
112
- defaultValue: grantDefault.limit,
113
- min: 1,
114
- max: 1e3
115
- }),
116
- windowMs: parseConfiguredInteger({
117
- name: "EMAIL_OTP_GRANT_RATE_LIMIT_WINDOW_MS",
118
- raw: readEmailOtpConfigValue(input, "EMAIL_OTP_GRANT_RATE_LIMIT_WINDOW_MS"),
119
- defaultValue: grantDefault.windowMs,
120
- min: 1e3,
121
- max: 1440 * 6e4
122
- })
123
- },
124
- googleRegistrationAttempt: {
125
- limit: parseConfiguredInteger({
126
- name: "EMAIL_OTP_GOOGLE_REGISTRATION_ATTEMPT_RATE_LIMIT_MAX",
127
- raw: readEmailOtpConfigValue(input, "EMAIL_OTP_GOOGLE_REGISTRATION_ATTEMPT_RATE_LIMIT_MAX"),
128
- defaultValue: googleRegistrationAttemptDefault.limit,
129
- min: 1,
130
- max: 1e3
131
- }),
132
- windowMs: parseConfiguredInteger({
133
- name: "EMAIL_OTP_GOOGLE_REGISTRATION_ATTEMPT_RATE_LIMIT_WINDOW_MS",
134
- raw: readEmailOtpConfigValue(input, "EMAIL_OTP_GOOGLE_REGISTRATION_ATTEMPT_RATE_LIMIT_WINDOW_MS"),
135
- defaultValue: googleRegistrationAttemptDefault.windowMs,
136
- min: 1e3,
137
- max: 1440 * 6e4
138
- })
139
- }
140
- };
141
- }
142
- function resolveEmailOtpConfig(input) {
143
- const deliveryMode = parseEmailOtpDeliveryMode(readEmailOtpConfigValue(input, "EMAIL_OTP_DELIVERY_MODE"));
144
- const devOutboxEnabledRaw = readBooleanFlag(input, "EMAIL_OTP_DEV_OUTBOX_ENABLED");
145
- const devOutboxEnabled = deliveryMode === "memory" && !input.production && (devOutboxEnabledRaw ? isTruthyBooleanFlag(devOutboxEnabledRaw) : true);
146
- return {
147
- deliveryMode,
148
- challengeTtlMs: parseConfiguredInteger({
149
- name: "EMAIL_OTP_CHALLENGE_TTL_MS",
150
- raw: readEmailOtpConfigValue(input, "EMAIL_OTP_CHALLENGE_TTL_MS"),
151
- defaultValue: 5 * 6e4,
152
- min: 3e4,
153
- max: 15 * 6e4
154
- }),
155
- grantTtlMs: parseConfiguredInteger({
156
- name: "EMAIL_OTP_GRANT_TTL_MS",
157
- raw: readEmailOtpConfigValue(input, "EMAIL_OTP_GRANT_TTL_MS"),
158
- defaultValue: 3e4,
159
- min: 1e4,
160
- max: 5 * 6e4
161
- }),
162
- maxAttempts: parseConfiguredInteger({
163
- name: "EMAIL_OTP_MAX_ATTEMPTS",
164
- raw: readEmailOtpConfigValue(input, "EMAIL_OTP_MAX_ATTEMPTS"),
165
- defaultValue: 5,
166
- min: 1,
167
- max: 10
168
- }),
169
- lockoutTtlMs: parseConfiguredInteger({
170
- name: "EMAIL_OTP_LOCKOUT_TTL_MS",
171
- raw: readEmailOtpConfigValue(input, "EMAIL_OTP_LOCKOUT_TTL_MS"),
172
- defaultValue: 5 * 6e4,
173
- min: 6e4,
174
- max: 1440 * 6e4
175
- }),
176
- codeLength: parseEmailOtpCodeLength(readEmailOtpConfigValue(input, "EMAIL_OTP_CODE_LENGTH")),
177
- devOutboxEnabled,
178
- maxActiveChallengesPerContext: parseConfiguredInteger({
179
- name: "EMAIL_OTP_MAX_ACTIVE_CHALLENGES_PER_CONTEXT",
180
- raw: readEmailOtpConfigValue(input, "EMAIL_OTP_MAX_ACTIVE_CHALLENGES_PER_CONTEXT"),
181
- defaultValue: 5,
182
- min: 1,
183
- max: 20
184
- })
185
- };
186
- }
187
- function parseEmailOtpCodeLength(raw) {
188
- if (parseConfiguredInteger({
189
- name: "EMAIL_OTP_CODE_LENGTH",
190
- raw,
191
- defaultValue: 6,
192
- min: 6,
193
- max: 8
194
- }) !== 6) throw new Error(`EMAIL_OTP_CODE_LENGTH must be 6`);
195
- return 6;
196
- }
197
3
  //#endregion
198
- export { EMAIL_OTP_CODE_LENGTH, resolveEmailOtpConfig, resolveEmailOtpRateLimitPolicies };
4
+ export { EMAIL_OTP_CODE_LENGTH };
199
5
 
200
6
  //# sourceMappingURL=emailOtpConfig.js.map
@@ -1,110 +0,0 @@
1
- import { normalizeOptionalTrimmedString } from "../../shared-ts/src/utils/normalize.js";
2
- import "../../shared-ts/src/utils/validation.js";
3
- import { failure } from "../../shared-ts/src/utils/failure.js";
4
- //#region src/core/authService/emailOtpEnrollment.ts
5
- async function readEmailOtpEnrollmentWithStore(input) {
6
- const walletId = normalizeOptionalTrimmedString(input.request.walletId);
7
- const orgId = normalizeOptionalTrimmedString(input.request.orgId);
8
- if (!walletId) return failure("invalid_body", "Missing walletId");
9
- if (!orgId) return failure("invalid_body", "Missing orgId");
10
- const enrollment = await input.walletEnrollmentStore.get(walletId);
11
- if (!enrollment) return failure("not_found", "Email OTP enrollment not found");
12
- if (enrollment.orgId !== orgId) return failure("tenant_scope_mismatch", "Email OTP enrollment does not match the requested orgId");
13
- return {
14
- ok: true,
15
- enrollment
16
- };
17
- }
18
- async function readActiveEmailOtpEnrollmentWithStore(input) {
19
- const result = await readEmailOtpEnrollmentWithStore(input);
20
- if (!result.ok) return result;
21
- const providerUserId = normalizeOptionalTrimmedString(input.request.providerUserId);
22
- if (providerUserId && result.enrollment.providerUserId !== providerUserId) return failure("provider_identity_mismatch", "Email OTP enrollment does not match the requested provider user");
23
- return result;
24
- }
25
- async function readEmailOtpAuthStateForEnrollmentWithStore(input) {
26
- const state = await input.authStateStore.get(input.enrollment.walletId);
27
- if (!state) return {
28
- ok: true,
29
- state: null
30
- };
31
- if (state.orgId !== input.enrollment.orgId || state.providerUserId !== input.enrollment.providerUserId) return failure("auth_state_enrollment_mismatch", "Email OTP auth state does not match the active enrollment");
32
- return {
33
- ok: true,
34
- state
35
- };
36
- }
37
- async function putEmailOtpAuthStateForEnrollmentWithStore(input) {
38
- const existing = await input.authStateStore.get(input.enrollment.walletId);
39
- if (existing && (existing.orgId !== input.enrollment.orgId || existing.providerUserId !== input.enrollment.providerUserId)) throw new Error("Email OTP auth state does not match the active enrollment");
40
- const next = {
41
- version: "email_otp_auth_state_v1",
42
- walletId: input.enrollment.walletId,
43
- providerUserId: input.enrollment.providerUserId,
44
- orgId: input.enrollment.orgId,
45
- createdAtMs: existing?.createdAtMs ?? input.nowMs,
46
- updatedAtMs: input.nowMs,
47
- ...existing?.otpFailureCount != null ? { otpFailureCount: existing.otpFailureCount } : {},
48
- ...existing?.lastOtpFailureAtMs ? { lastOtpFailureAtMs: existing.lastOtpFailureAtMs } : {},
49
- ...existing?.otpLockedUntilMs ? { otpLockedUntilMs: existing.otpLockedUntilMs } : {},
50
- ...existing?.lastEmailOtpLoginAtMs ? { lastEmailOtpLoginAtMs: existing.lastEmailOtpLoginAtMs } : {},
51
- ...existing?.lastStrongAuthAtMs ? { lastStrongAuthAtMs: existing.lastStrongAuthAtMs } : {},
52
- ...input.patch
53
- };
54
- await input.authStateStore.put(next);
55
- return next;
56
- }
57
- async function isEmailOtpStrongAuthRequiredWithStores(input) {
58
- const walletId = normalizeOptionalTrimmedString(input.request.walletId);
59
- if (!walletId) return failure("invalid_body", "Missing walletId");
60
- const enrollment = await input.walletEnrollmentStore.get(walletId);
61
- if (!enrollment) return {
62
- ok: true,
63
- required: false,
64
- walletId
65
- };
66
- const authState = await readEmailOtpAuthStateForEnrollmentWithStore({
67
- authStateStore: input.authStateStore,
68
- enrollment
69
- });
70
- if (!authState.ok) return authState;
71
- const state = authState.state;
72
- if (!state) return {
73
- ok: true,
74
- required: false,
75
- walletId
76
- };
77
- const lastEmailOtpLoginAtMs = typeof state.lastEmailOtpLoginAtMs === "number" ? state.lastEmailOtpLoginAtMs : void 0;
78
- const lastStrongAuthAtMs = typeof state.lastStrongAuthAtMs === "number" ? state.lastStrongAuthAtMs : void 0;
79
- return {
80
- ok: true,
81
- required: Boolean(lastEmailOtpLoginAtMs && (!lastStrongAuthAtMs || lastEmailOtpLoginAtMs > lastStrongAuthAtMs)),
82
- walletId,
83
- ...lastEmailOtpLoginAtMs ? { lastEmailOtpLoginAtMs } : {},
84
- ...lastStrongAuthAtMs ? { lastStrongAuthAtMs } : {}
85
- };
86
- }
87
- async function markEmailOtpStrongAuthSatisfiedWithStores(input) {
88
- const walletId = normalizeOptionalTrimmedString(input.request.walletId);
89
- if (!walletId) return failure("invalid_body", "Missing walletId");
90
- const enrollment = await input.walletEnrollmentStore.get(walletId);
91
- if (!enrollment) return {
92
- ok: true,
93
- walletId
94
- };
95
- await putEmailOtpAuthStateForEnrollmentWithStore({
96
- authStateStore: input.authStateStore,
97
- enrollment,
98
- patch: { lastStrongAuthAtMs: input.nowMs },
99
- nowMs: input.nowMs
100
- });
101
- return {
102
- ok: true,
103
- walletId,
104
- lastStrongAuthAtMs: input.nowMs
105
- };
106
- }
107
- //#endregion
108
- export { isEmailOtpStrongAuthRequiredWithStores, markEmailOtpStrongAuthSatisfiedWithStores, putEmailOtpAuthStateForEnrollmentWithStore, readActiveEmailOtpEnrollmentWithStore, readEmailOtpAuthStateForEnrollmentWithStore, readEmailOtpEnrollmentWithStore };
109
-
110
- //# sourceMappingURL=emailOtpEnrollment.js.map
@@ -1,63 +0,0 @@
1
- import { normalizeOptionalTrimmedString } from "../../shared-ts/src/utils/normalize.js";
2
- import "../../shared-ts/src/utils/validation.js";
3
- import { failure } from "../../shared-ts/src/utils/failure.js";
4
- import { errorMessage } from "../../shared-ts/src/utils/errors.js";
5
- import { createSigningSessionSealShamir3PassCipherAdapter } from "../../threshold/session/signingSessionSeal/crypto/cipher.js";
6
- import { parseSigningSessionSealRootConfig } from "../../threshold/session/signingSessionSeal/options.js";
7
- import "../../threshold/session/signingSessionSeal/index.js";
8
- //#region src/core/authService/emailOtpSeal.ts
9
- function createEmailOtpShamirCipherFromConfig(input) {
10
- if (!input.rootSecretB64u || !input.currentKeyVersion) return failure("not_configured", "Email OTP unseal requires a signing-session seal root and current key version");
11
- try {
12
- const config = parseSigningSessionSealRootConfig({
13
- rootSecretB64u: input.rootSecretB64u,
14
- currentKeyVersion: input.currentKeyVersion,
15
- acceptedWarmKeyVersions: input.acceptedWarmKeyVersions
16
- });
17
- return {
18
- ok: true,
19
- keyVersion: config.currentKeyVersion,
20
- cipher: createSigningSessionSealShamir3PassCipherAdapter({ config })
21
- };
22
- } catch (error) {
23
- return failure("not_configured", errorMessage(error) || "Email OTP Shamir configuration is invalid");
24
- }
25
- }
26
- function emailOtpServerSealThresholdSessionId(operation) {
27
- switch (operation) {
28
- case "apply-server-seal": return "email-otp-enroll";
29
- case "remove-server-seal": return "email-otp-unseal";
30
- }
31
- }
32
- function emailOtpServerSealFailureMessage(operation) {
33
- switch (operation) {
34
- case "apply-server-seal": return "Failed to apply Email OTP server seal";
35
- case "remove-server-seal": return "Failed to remove Email OTP server seal";
36
- }
37
- }
38
- async function runEmailOtpServerSealOperation(input) {
39
- try {
40
- const wrappedCiphertext = normalizeOptionalTrimmedString(input.request.wrappedCiphertext);
41
- if (!wrappedCiphertext) return failure("invalid_body", "Missing wrappedCiphertext");
42
- if (!input.shamir.ok) return input.shamir;
43
- const result = await input.shamir.cipher.run({
44
- operation: input.operation,
45
- thresholdSessionId: emailOtpServerSealThresholdSessionId(input.operation),
46
- ciphertext: wrappedCiphertext,
47
- keyVersion: input.shamir.keyVersion,
48
- auth: { userId: "email_otp" }
49
- });
50
- if (!result.ok) return result;
51
- return {
52
- ok: true,
53
- ciphertext: result.ciphertext,
54
- enrollmentSealKeyVersion: result.keyVersion || input.shamir.keyVersion
55
- };
56
- } catch (error) {
57
- return failure("internal", errorMessage(error) || emailOtpServerSealFailureMessage(input.operation));
58
- }
59
- }
60
- //#endregion
61
- export { createEmailOtpShamirCipherFromConfig, runEmailOtpServerSealOperation };
62
-
63
- //# sourceMappingURL=emailOtpSeal.js.map
@@ -1,67 +1,11 @@
1
1
  import { base64UrlDecode } from "../../shared-ts/src/utils/base64.js";
2
2
  import "../../shared-ts/src/utils/encoders.js";
3
- import { ensureEd25519Prefix } from "../../shared-ts/src/utils/near.js";
4
- import "../../shared-ts/src/utils/validation.js";
5
- import { toError } from "../../shared-ts/src/utils/errors.js";
3
+ import { threshold_ed25519_build_near_tx_unsigned_borsh, threshold_ed25519_finalize_near_tx_from_signature } from "../../wasm/near_signer/pkg/wasm_signer_worker.js";
6
4
  import { toPublicKeyStringFromSecretKey } from "../nearKeys.js";
5
+ import { requireFinalizeNearTxFromSignatureOutput, requireSingleUnsignedNearTxBorshOutput, signNearDigestWithSecretKey } from "./nearPrivateKeySigning.js";
7
6
  import { SignedTransaction } from "../../shared-ts/src/near/nearClient.js";
8
7
  import "../rpcClients/near/NearClient.js";
9
- import { requireFinalizeNearTxFromSignatureOutput, requireSingleUnsignedNearTxBorshOutput, signNearDigestWithSecretKey } from "./nearPrivateKeySigning.js";
10
- import { threshold_ed25519_build_near_tx_unsigned_borsh, threshold_ed25519_finalize_near_tx_from_signature } from "../../wasm/near_signer/pkg/wasm_signer_worker.js";
11
8
  //#region src/core/authService/nearTransactions.ts
12
- function nearAccountNotFound(message) {
13
- return /does not exist|UNKNOWN_ACCOUNT|unknown\s+account/i.test(message);
14
- }
15
- function retryableNearAccountLookupError(message) {
16
- return /server error|internal|temporar|timeout|too many requests|429|empty response|rpc request failed/i.test(message);
17
- }
18
- function errorDetailsBlob(error) {
19
- const details = error.details;
20
- if (!details) return "";
21
- try {
22
- return typeof details === "string" ? details : JSON.stringify(details);
23
- } catch {
24
- return "";
25
- }
26
- }
27
- function accountLookupRetryDelayMs(attemptNumber) {
28
- return 150 * Math.pow(2, attemptNumber - 1);
29
- }
30
- function delay(ms) {
31
- return new Promise((resolve) => setTimeout(resolve, ms));
32
- }
33
- function normalizedExpectedEd25519PublicKeys(expectedPublicKeys) {
34
- return Array.from(new Set(expectedPublicKeys.map((key) => ensureEd25519Prefix(key)).filter(Boolean)));
35
- }
36
- function accessKeyPublicKeys(accessKeyList) {
37
- return accessKeyList.keys.map((key) => ensureEd25519Prefix(String(key?.public_key || "").trim())).filter(Boolean);
38
- }
39
- async function viewAccessKeyListWithClient(input) {
40
- return await input.nearClient.viewAccessKeyList(input.accountId);
41
- }
42
- async function dispatchNearSignedTransactionBorshWithClient(input) {
43
- const signedTransactionBorsh = base64UrlDecode(input.signedTransactionBorshB64u);
44
- const signedTransaction = SignedTransaction.fromPlain({
45
- transaction: {},
46
- signature: {},
47
- borsh_bytes: Array.from(signedTransactionBorsh)
48
- });
49
- return { rpcResult: await input.nearClient.sendTransaction(signedTransaction) };
50
- }
51
- async function fetchNearTxContextWithClient(input) {
52
- let nonce = 0n;
53
- try {
54
- const accessKey = await input.nearClient.viewAccessKey(input.accountId, input.publicKey);
55
- nonce = BigInt(accessKey?.nonce ?? 0);
56
- } catch {
57
- nonce = 0n;
58
- }
59
- const block = await input.nearClient.viewBlock({ finality: "final" });
60
- return {
61
- nextNonce: (nonce + 1n).toString(),
62
- blockHash: block.header.hash
63
- };
64
- }
65
9
  async function signGasRelayerNearTransactionWithDeps(input) {
66
10
  await input.ensureSignerWasm();
67
11
  const signerPublicKey = toPublicKeyStringFromSecretKey(input.relayerPrivateKey);
@@ -95,46 +39,7 @@ async function signGasRelayerNearTransactionWithDeps(input) {
95
39
  borsh_bytes: Array.from(base64UrlDecode(finalized.signedTransactionBorshB64u))
96
40
  });
97
41
  }
98
- async function checkNearAccountExistsWithClient(input) {
99
- const attempts = 3;
100
- let lastError = null;
101
- for (let attempt = 1; attempt <= attempts; attempt += 1) try {
102
- const view = await input.nearClient.viewAccount(input.accountId);
103
- return Boolean(view);
104
- } catch (error) {
105
- const parsedError = toError(error);
106
- lastError = parsedError;
107
- const message = parsedError.message;
108
- if (nearAccountNotFound(`${message}\n${errorDetailsBlob(parsedError)}`)) return false;
109
- if (retryableNearAccountLookupError(message) && attempt < attempts) {
110
- await delay(accountLookupRetryDelayMs(attempt));
111
- continue;
112
- }
113
- if (retryableNearAccountLookupError(message)) {
114
- input.logger.warn(`[AuthService] Assuming account '${input.accountId}' not found after retryable RPC errors:`, message);
115
- return false;
116
- }
117
- input.logger.error(`Error checking account existence for ${input.accountId}:`, parsedError);
118
- throw parsedError;
119
- }
120
- throw lastError || /* @__PURE__ */ new Error("Unknown error");
121
- }
122
- async function verifyAccountAccessKeysPresentWithClient(input) {
123
- const expectedPublicKeys = normalizedExpectedEd25519PublicKeys(input.expectedPublicKeys);
124
- if (!expectedPublicKeys.length) return false;
125
- const attempts = Math.max(1, Math.floor(input.options?.attempts ?? 4));
126
- const delayMs = Math.max(50, Math.floor(input.options?.delayMs ?? 250));
127
- const finality = input.options?.finality ?? "final";
128
- for (let attempt = 0; attempt < attempts; attempt += 1) {
129
- try {
130
- const actualPublicKeys = accessKeyPublicKeys(await input.nearClient.viewAccessKeyList(input.accountId, { finality }));
131
- if (expectedPublicKeys.every((expected) => actualPublicKeys.includes(expected))) return true;
132
- } catch {}
133
- if (attempt < attempts - 1) await delay(delayMs);
134
- }
135
- return false;
136
- }
137
42
  //#endregion
138
- export { checkNearAccountExistsWithClient, dispatchNearSignedTransactionBorshWithClient, fetchNearTxContextWithClient, signGasRelayerNearTransactionWithDeps, verifyAccountAccessKeysPresentWithClient, viewAccessKeyListWithClient };
43
+ export { signGasRelayerNearTransactionWithDeps };
139
44
 
140
45
  //# sourceMappingURL=nearTransactions.js.map
@@ -1,84 +0,0 @@
1
- import { normalizeOptionalTrimmedString } from "../../shared-ts/src/utils/normalize.js";
2
- import "../../shared-ts/src/utils/validation.js";
3
- import { failure } from "../../shared-ts/src/utils/failure.js";
4
- import { readAuthServiceConfigValue } from "./configValues.js";
5
- import { resolveSigningSessionSealRateLimitFromEnv } from "../../threshold/session/signingSessionSeal/guards/backends.js";
6
- import "../../threshold/session/signingSessionSeal/index.js";
7
- //#region src/core/authService/rateLimits.ts
8
- function readRateLimitConfigValue(input) {
9
- return readAuthServiceConfigValue({
10
- thresholdStore: input.thresholdStore,
11
- name: input.name
12
- });
13
- }
14
- function parseRateLimiterKind(input) {
15
- const value = normalizeOptionalTrimmedString(input.raw).toLowerCase();
16
- if (!value) return null;
17
- switch (value) {
18
- case "in-memory":
19
- case "upstash-redis-rest":
20
- case "redis-tcp": return value;
21
- }
22
- throw new Error(`${input.name} must be one of in-memory, upstash-redis-rest, or redis-tcp`);
23
- }
24
- function createEmailOtpRateLimiter(input) {
25
- const thresholdStore = input.thresholdStore;
26
- return resolveSigningSessionSealRateLimitFromEnv({
27
- limiterKind: parseRateLimiterKind({
28
- raw: readRateLimitConfigValue({
29
- thresholdStore,
30
- name: "EMAIL_OTP_RATE_LIMITER_KIND"
31
- }),
32
- name: "EMAIL_OTP_RATE_LIMITER_KIND"
33
- }),
34
- upstashUrl: readRateLimitConfigValue({
35
- thresholdStore,
36
- name: "EMAIL_OTP_RATE_LIMIT_UPSTASH_URL"
37
- }) || null,
38
- upstashToken: readRateLimitConfigValue({
39
- thresholdStore,
40
- name: "EMAIL_OTP_RATE_LIMIT_UPSTASH_TOKEN"
41
- }) || null,
42
- redisUrl: readRateLimitConfigValue({
43
- thresholdStore,
44
- name: "EMAIL_OTP_RATE_LIMIT_REDIS_URL"
45
- }) || null,
46
- keyPrefix: readRateLimitConfigValue({
47
- thresholdStore,
48
- name: "EMAIL_OTP_RATE_LIMIT_KEY_PREFIX"
49
- }) || "email-otp:v2:",
50
- limit: 1,
51
- windowMs: 1
52
- }).limiter;
53
- }
54
- function consumedRateLimitError(message, consumed) {
55
- const result = failure("rate_limited", message);
56
- if (typeof consumed.retryAfterMs === "number") result.retryAfterMs = consumed.retryAfterMs;
57
- if (typeof consumed.resetAtMs === "number") result.resetAtMs = consumed.resetAtMs;
58
- return result;
59
- }
60
- async function consumeEmailOtpRateLimit(input) {
61
- const policy = input.policies[input.scope];
62
- const keySuffix = `scope=${input.scope}:action=${input.action || "default"}:limit=${policy.limit}:windowMs=${policy.windowMs}`;
63
- const keys = [
64
- input.clientIp ? `${keySuffix}:ip:${input.clientIp}` : "",
65
- input.userId ? `${keySuffix}:user:${input.userId}` : "",
66
- input.walletId ? `${keySuffix}:wallet:${input.walletId}` : "",
67
- input.providerSubject ? `${keySuffix}:providerSubject:${input.providerSubject}` : "",
68
- input.orgId ? `${keySuffix}:org:${input.orgId}` : ""
69
- ].filter(Boolean);
70
- for (const key of keys) {
71
- const consumed = await input.limiter.consume({
72
- key,
73
- limit: policy.limit,
74
- windowMs: policy.windowMs,
75
- nowMs: Date.now()
76
- });
77
- if (!consumed.ok) return consumedRateLimitError("Email OTP rate limit exceeded", consumed);
78
- }
79
- return { ok: true };
80
- }
81
- //#endregion
82
- export { consumeEmailOtpRateLimit, createEmailOtpRateLimiter };
83
-
84
- //# sourceMappingURL=rateLimits.js.map