@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,17 +1,9 @@
1
1
  import { base64UrlEncode } from "../../shared-ts/src/utils/base64.js";
2
- import { parseDigestB64u } from "../../shared-ts/src/utils/canonicalPrimitives.js";
3
2
  import "../../shared-ts/src/utils/encoders.js";
4
3
  import { normalizeOptionalTrimmedString } from "../../shared-ts/src/utils/normalize.js";
5
- import "../../shared-ts/src/utils/validation.js";
6
- import { unknownWebAuthnAuthenticatorDeviceInfo } from "../../shared-ts/src/utils/webauthnDeviceInfo.js";
7
- import { failedVerification, failure } from "../../shared-ts/src/utils/failure.js";
8
- import { walletIdFromString } from "../../shared-ts/src/utils/registrationIds.js";
4
+ import { failure } from "../../shared-ts/src/utils/failure.js";
9
5
  import { errorMessage } from "../../shared-ts/src/utils/errors.js";
10
6
  import { decodeBase64UrlOrBase64, isHostWithinRpId, loadSimpleWebAuthnServer, originHostnameOrEmpty, parseClientDataJsonBase64url } from "./webauthnOidcHelpers.js";
11
- import { parseWebAuthnAuthenticationCredential } from "../../router/auth/webAuthnCredentialCodecs.js";
12
- import { webAuthnAuthenticationFailure, webAuthnLoginEd25519, webAuthnSyncCredentialBinding } from "./webauthnVerificationOutcomes.js";
13
- import { parseBoundaryWalletId, resolvedEd25519WalletBindingFromCredentialBinding } from "./webauthnWalletBinding.js";
14
- import { passkeyThresholdEd25519AuthorityScope, requireWebAuthnRpId } from "./webauthnAuthority.js";
15
7
  //#region src/core/authService/webauthn.ts
16
8
  function readRecord(value) {
17
9
  return value && typeof value === "object" && !Array.isArray(value) ? value : null;
@@ -22,18 +14,6 @@ function readNestedRecord(record, key) {
22
14
  function readStringField(record, key) {
23
15
  return typeof record[key] === "string" ? record[key].trim() : "";
24
16
  }
25
- function normalizeWebAuthnTtlMs(raw) {
26
- const numeric = typeof raw === "number" ? raw : Number(raw);
27
- if (!Number.isFinite(numeric) || numeric <= 0) return 5 * 6e4;
28
- return Math.min(Math.max(Math.floor(numeric), 1e4), 10 * 6e4);
29
- }
30
- function ensureCryptoRandomValues() {
31
- if (typeof crypto !== "undefined" && typeof crypto.getRandomValues === "function") return true;
32
- return failure("unsupported", "crypto.getRandomValues is unavailable in this runtime");
33
- }
34
- function randomWebAuthnB64u(byteLength) {
35
- return base64UrlEncode(crypto.getRandomValues(new Uint8Array(byteLength)));
36
- }
37
17
  function credentialRawIdB64u(credential) {
38
18
  const credentialId = credential.id.trim();
39
19
  const chosen = credential.rawId.trim() || credentialId;
@@ -109,40 +89,6 @@ function registrationCredentialCounter(counter) {
109
89
  const numeric = typeof counter === "number" ? counter : Number(counter);
110
90
  return Number.isFinite(numeric) && numeric >= 0 ? Math.floor(numeric) : 0;
111
91
  }
112
- function authenticatorListEntry(input) {
113
- return {
114
- credentialIdB64u: input.binding.credentialIdB64u,
115
- signerSlot: input.binding.signerSlot,
116
- publicKey: input.binding.publicKey,
117
- createdAtMs: input.authenticator?.createdAtMs ?? input.binding.createdAtMs,
118
- updatedAtMs: input.authenticator?.updatedAtMs ?? input.binding.updatedAtMs,
119
- device: input.authenticator?.deviceInfo ?? unknownWebAuthnAuthenticatorDeviceInfo()
120
- };
121
- }
122
- function compareAuthenticatorListEntries(left, right) {
123
- return (Number(left.signerSlot || 0) || 0) - (Number(right.signerSlot || 0) || 0);
124
- }
125
- async function listCredentialBindingsForUser(input) {
126
- if (!input.bindingStore.listByUserId) return {
127
- ok: false,
128
- code: "not_supported",
129
- message: "Credential binding listing is not supported by this store"
130
- };
131
- return {
132
- ok: true,
133
- bindings: input.rpId ? await input.bindingStore.listByUserId({
134
- userId: input.userId,
135
- rpId: input.rpId
136
- }) : await input.bindingStore.listByUserId({ userId: input.userId })
137
- };
138
- }
139
- function ignoreIdentityLinkFailure() {}
140
- async function linkNearSubjectForWebAuthnLogin(input) {
141
- await input.identityStore.linkSubjectToUserId({
142
- userId: input.userId,
143
- subject: `near:${input.userId}`
144
- }).catch(ignoreIdentityLinkFailure);
145
- }
146
92
  async function verifyWebAuthnRegistrationCredentialForIntent(input) {
147
93
  const credential = readRecord(input.webauthnRegistration);
148
94
  if (!credential) return failure("invalid_body", "Missing webauthn_registration");
@@ -309,249 +255,7 @@ async function verifyWebAuthnAuthenticationLiteWithStore(input) {
309
255
  };
310
256
  }
311
257
  }
312
- async function listWebAuthnAuthenticatorsForUserWithStores(input) {
313
- try {
314
- const userId = String(input.userId || "").trim();
315
- const rpId = String(input.rpId || "").trim();
316
- if (!userId) return failure("invalid_args", "Missing userId");
317
- if (!input.authenticatorStore.list) return failure("not_supported", "Authenticator listing is not supported by this store");
318
- const bindingList = await listCredentialBindingsForUser({
319
- bindingStore: input.credentialBindingStore,
320
- userId,
321
- rpId
322
- });
323
- if (!bindingList.ok) return bindingList;
324
- const [authenticators, bindings] = await Promise.all([input.authenticatorStore.list(userId), Promise.resolve(bindingList.bindings)]);
325
- const authByCredentialId = /* @__PURE__ */ new Map();
326
- for (const authenticator of authenticators) authByCredentialId.set(String(authenticator.credentialIdB64u || "").trim(), authenticator);
327
- const merged = [];
328
- for (const binding of bindings) merged.push(authenticatorListEntry({
329
- binding: {
330
- credentialIdB64u: String(binding.credentialIdB64u || "").trim(),
331
- signerSlot: binding.signerSlot,
332
- publicKey: binding.publicKey,
333
- createdAtMs: binding.createdAtMs,
334
- updatedAtMs: binding.updatedAtMs
335
- },
336
- authenticator: authByCredentialId.get(String(binding.credentialIdB64u || "").trim())
337
- }));
338
- merged.sort(compareAuthenticatorListEntries);
339
- return {
340
- ok: true,
341
- authenticators: merged
342
- };
343
- } catch (e) {
344
- return failure("internal", errorMessage(e) || "Failed to list authenticators");
345
- }
346
- }
347
- async function createWebAuthnLoginOptionsWithStore(input) {
348
- try {
349
- const userIdRaw = String(input.request.userId ?? input.request.user_id ?? "").trim();
350
- const rpId = String(input.request.rpId ?? input.request.rp_id ?? "").trim();
351
- if (!userIdRaw) return failure("invalid_body", "Missing userId");
352
- const userId = parseBoundaryWalletId(userIdRaw);
353
- if (!userId) return failure("invalid_body", "Invalid userId");
354
- if (!rpId) return failure("invalid_body", "Missing rpId");
355
- const randomAvailable = ensureCryptoRandomValues();
356
- if (randomAvailable !== true) return randomAvailable;
357
- const ttlMsClamped = normalizeWebAuthnTtlMs(input.request.ttlMs ?? input.request.ttl_ms);
358
- const createdAtMs = Date.now();
359
- const expiresAtMs = createdAtMs + ttlMsClamped;
360
- const challengeId = randomWebAuthnB64u(16);
361
- const challengeB64u = randomWebAuthnB64u(32);
362
- await input.loginChallengeStore.put({
363
- version: "webauthn_login_challenge_v1",
364
- challengeId,
365
- userId,
366
- rpId,
367
- challengeB64u,
368
- createdAtMs,
369
- expiresAtMs
370
- });
371
- return {
372
- ok: true,
373
- challengeId,
374
- challengeB64u,
375
- expiresAtMs
376
- };
377
- } catch (e) {
378
- return failure("internal", errorMessage(e) || "Failed to create login options");
379
- }
380
- }
381
- async function createWebAuthnSyncAccountOptionsWithStores(input) {
382
- try {
383
- const rpId = String(input.request.rp_id || "").trim();
384
- if (!rpId) return failure("invalid_body", "Missing rp_id");
385
- const expectedUserIdRaw = normalizeOptionalTrimmedString(input.request.account_id);
386
- const expectedUserId = expectedUserIdRaw ? parseBoundaryWalletId(expectedUserIdRaw) : null;
387
- if (expectedUserIdRaw && !expectedUserId) return failure("invalid_body", "Invalid wallet account_id");
388
- const randomAvailable = ensureCryptoRandomValues();
389
- if (randomAvailable !== true) return randomAvailable;
390
- const ttlMsClamped = normalizeWebAuthnTtlMs(input.request.ttlMs ?? input.request.ttl_ms);
391
- const createdAtMs = Date.now();
392
- const expiresAtMs = createdAtMs + ttlMsClamped;
393
- const challengeId = randomWebAuthnB64u(16);
394
- const challengeB64u = randomWebAuthnB64u(32);
395
- let credentialIds;
396
- let walletBinding;
397
- if (expectedUserId) {
398
- const bindingList = await listCredentialBindingsForUser({
399
- bindingStore: input.credentialBindingStore,
400
- userId: expectedUserId,
401
- rpId
402
- });
403
- if (!bindingList.ok) return bindingList;
404
- const resolvedBinding = bindingList.bindings.find((binding) => {
405
- return Boolean(binding.userId && binding.nearAccountId && binding.nearEd25519SigningKeyId);
406
- });
407
- if (resolvedBinding) walletBinding = resolvedEd25519WalletBindingFromCredentialBinding({ binding: resolvedBinding }) ?? void 0;
408
- const seen = /* @__PURE__ */ new Set();
409
- credentialIds = [];
410
- for (const binding of bindingList.bindings) {
411
- const credentialId = String(binding.credentialIdB64u || "").trim();
412
- if (!credentialId || seen.has(credentialId)) continue;
413
- seen.add(credentialId);
414
- credentialIds.push(credentialId);
415
- }
416
- }
417
- const record = expectedUserId ? {
418
- version: "webauthn_sync_challenge_v1",
419
- challengeId,
420
- rpId,
421
- expectedUserId,
422
- challengeB64u,
423
- createdAtMs,
424
- expiresAtMs
425
- } : {
426
- version: "webauthn_sync_challenge_v1",
427
- challengeId,
428
- rpId,
429
- challengeB64u,
430
- createdAtMs,
431
- expiresAtMs
432
- };
433
- await input.syncChallengeStore.put(record);
434
- const result = {
435
- ok: true,
436
- challengeId,
437
- challengeB64u,
438
- expiresAtMs
439
- };
440
- if (credentialIds) result.credentialIds = credentialIds;
441
- if (walletBinding) result.walletBinding = walletBinding;
442
- return result;
443
- } catch (e) {
444
- return failure("internal", errorMessage(e) || "Failed to create sync account options");
445
- }
446
- }
447
- async function verifyWebAuthnSyncAccountWithStores(input) {
448
- try {
449
- const request = input.request;
450
- const challengeId = String(request.challengeId ?? request.challenge_id ?? "").trim();
451
- if (!challengeId) return failure("invalid_body", "Missing challengeId");
452
- const challenge = await input.syncChallengeStore.consume(challengeId);
453
- if (!challenge) return failedVerification("challenge_expired_or_invalid", "Sync challenge expired or invalid");
454
- const credential = request.webauthn_authentication;
455
- const credentialId = credentialRawIdB64u(credential);
456
- if (!credentialId.ok) return failedVerification(credentialId.code, credentialId.message);
457
- const syncBinding = webAuthnSyncCredentialBinding(await input.credentialBindingStore.get(challenge.rpId, credentialId.credentialIdB64u), challenge);
458
- if (!syncBinding.ok) return syncBinding;
459
- const binding = syncBinding.binding;
460
- const expectedOrigin = normalizeOptionalTrimmedString(request.expected_origin);
461
- if (!expectedOrigin) return failedVerification("invalid_body", "expected_origin is required for WebAuthn authentication verification");
462
- const verificationFailure = webAuthnAuthenticationFailure(await verifyWebAuthnAuthenticationLiteWithStore({
463
- userId: binding.userId,
464
- rpId: requireWebAuthnRpId(binding.rpId, "sync credential binding rpId"),
465
- expectedChallenge: challenge.challengeB64u,
466
- webauthnAuthentication: credential,
467
- expectedOrigin,
468
- authenticatorStore: input.authenticatorStore,
469
- logger: input.logger
470
- }));
471
- if (verificationFailure) return verificationFailure;
472
- const auth = await input.authenticatorStore.get(binding.userId, credentialId.credentialIdB64u);
473
- if (!auth) return failedVerification("unknown_credential", "Credential is not registered for user");
474
- const walletBinding = resolvedEd25519WalletBindingFromCredentialBinding({ binding });
475
- const bindingPublicKey = binding.publicKey;
476
- if (!walletBinding || !bindingPublicKey) return failedVerification("ed25519_not_provisioned", "Wallet has no Ed25519 signer yet; NEAR provisioning has not completed");
477
- const ed25519Signer = await input.walletStore.getEd25519SignerBySlot({
478
- walletId: walletIdFromString(walletBinding.walletId),
479
- signerSlot: walletBinding.signerSlot
480
- });
481
- if (!ed25519Signer) return failedVerification("ed25519_not_provisioned", "Wallet has no Ed25519 signer yet; NEAR provisioning has not completed");
482
- const walletBindingAuthorityScope = passkeyThresholdEd25519AuthorityScope(requireWebAuthnRpId(walletBinding.rpId, "sync credential binding rpId"));
483
- const thresholdEd25519 = binding.relayerKeyId ? {
484
- relayerKeyId: binding.relayerKeyId,
485
- authorityScope: walletBindingAuthorityScope,
486
- publicKey: bindingPublicKey,
487
- ...binding.keyVersion ? { keyVersion: binding.keyVersion } : {},
488
- ...typeof binding.recoveryExportCapable === "boolean" ? { recoveryExportCapable: binding.recoveryExportCapable } : {},
489
- ...typeof binding.clientParticipantId === "number" ? { clientParticipantId: binding.clientParticipantId } : {},
490
- ...typeof binding.relayerParticipantId === "number" ? { relayerParticipantId: binding.relayerParticipantId } : {},
491
- ...Array.isArray(binding.participantIds) ? { participantIds: binding.participantIds } : {}
492
- } : void 0;
493
- return {
494
- ok: true,
495
- verified: true,
496
- accountId: walletBinding.walletId,
497
- walletId: walletBinding.walletId,
498
- nearAccountId: walletBinding.nearAccountId,
499
- nearEd25519SigningKeyId: walletBinding.nearEd25519SigningKeyId,
500
- custodyKeyManifestDigestB64u: parseDigestB64u(ed25519Signer.custodyKeyManifestDigestB64u),
501
- walletBinding,
502
- rpId: walletBinding.rpId,
503
- signerSlot: walletBinding.signerSlot,
504
- publicKey: bindingPublicKey,
505
- ...binding.relayerKeyId ? { relayerKeyId: binding.relayerKeyId } : {},
506
- credentialIdB64u: credentialId.credentialIdB64u,
507
- credentialPublicKeyB64u: auth.credentialPublicKeyB64u,
508
- ...thresholdEd25519 ? { thresholdEd25519 } : {}
509
- };
510
- } catch (e) {
511
- return failedVerification("internal", errorMessage(e) || "Sync verification failed");
512
- }
513
- }
514
- async function verifyWebAuthnLoginWithStores(input) {
515
- try {
516
- const challengeId = String(input.request.challengeId ?? input.request.challenge_id ?? "").trim();
517
- if (!challengeId) return failure("invalid_body", "Missing challengeId");
518
- const record = await input.loginChallengeStore.consume(challengeId);
519
- if (!record) return failedVerification("challenge_expired_or_invalid", "Login challenge expired or invalid");
520
- const expectedOrigin = normalizeOptionalTrimmedString(input.request.expected_origin);
521
- if (!expectedOrigin) return failedVerification("invalid_body", "expected_origin is required for WebAuthn authentication verification");
522
- const credential = parseWebAuthnAuthenticationCredential(input.request.webauthn_authentication);
523
- if (!credential) return failedVerification("invalid_body", "Missing webauthn_authentication");
524
- const verificationFailure = webAuthnAuthenticationFailure(await verifyWebAuthnAuthenticationLiteWithStore({
525
- userId: record.userId,
526
- rpId: requireWebAuthnRpId(record.rpId, "login challenge rpId"),
527
- expectedChallenge: record.challengeB64u,
528
- webauthnAuthentication: credential,
529
- expectedOrigin,
530
- authenticatorStore: input.authenticatorStore,
531
- logger: input.logger
532
- }));
533
- if (verificationFailure) return verificationFailure;
534
- const credentialIdB64u = String(credential.rawId || credential.id || "").trim();
535
- const binding = credentialIdB64u ? await input.credentialBindingStore.get(record.rpId, credentialIdB64u) : null;
536
- const loginSigner = webAuthnLoginEd25519(binding, binding ? resolvedEd25519WalletBindingFromCredentialBinding({ binding }) : null);
537
- if (!loginSigner.ok) return loginSigner;
538
- await linkNearSubjectForWebAuthnLogin({
539
- identityStore: input.identityStore,
540
- userId: record.userId
541
- });
542
- return {
543
- ok: true,
544
- verified: true,
545
- userId: record.userId,
546
- rpId: record.rpId,
547
- credentialIdB64u,
548
- ed25519: loginSigner.ed25519
549
- };
550
- } catch (e) {
551
- return failedVerification("internal", errorMessage(e) || "Login verification failed");
552
- }
553
- }
554
258
  //#endregion
555
- export { createWebAuthnLoginOptionsWithStore, createWebAuthnSyncAccountOptionsWithStores, listWebAuthnAuthenticatorsForUserWithStores, verifyWebAuthnAuthenticationLiteWithStore, verifyWebAuthnLoginWithStores, verifyWebAuthnRegistrationCredentialForIntent, verifyWebAuthnSyncAccountWithStores };
259
+ export { verifyWebAuthnAuthenticationLiteWithStore, verifyWebAuthnRegistrationCredentialForIntent };
556
260
 
557
261
  //# sourceMappingURL=webauthn.js.map
@@ -57,30 +57,7 @@ function isHostWithinRpId(host, rpId) {
57
57
  if ((process.env.NO_CADDY === "1" || process.env.VITE_NO_CADDY === "1") && (h === "localhost" || h === "127.0.0.1") && r.endsWith(".localhost")) return true;
58
58
  return h === r || h.endsWith(`.${r}`);
59
59
  }
60
- function parseCacheControlMaxAgeSec(cacheControl) {
61
- const s = String(cacheControl || "").trim();
62
- if (!s) return null;
63
- const m = s.match(/(?:^|,)\s*max-age=(\d+)\s*(?:,|$)/i);
64
- if (!m) return null;
65
- const n = Number(m[1]);
66
- if (!Number.isFinite(n) || n <= 0) return null;
67
- return Math.floor(n);
68
- }
69
- function parseJwtSegmentJson(input) {
70
- try {
71
- const raw = new TextDecoder().decode(base64UrlDecode(input));
72
- const parsed = raw ? JSON.parse(raw) : null;
73
- return parsed && typeof parsed === "object" && !Array.isArray(parsed) ? parsed : null;
74
- } catch {
75
- return null;
76
- }
77
- }
78
- function parseJwtAud(input) {
79
- if (Array.isArray(input)) return input.map((v) => typeof v === "string" ? v.trim() : "").filter(Boolean);
80
- const single = String(input || "").trim();
81
- return single ? [single] : [];
82
- }
83
60
  //#endregion
84
- export { decodeBase64UrlOrBase64, isHostWithinRpId, loadSimpleWebAuthnServer, originHostnameOrEmpty, parseCacheControlMaxAgeSec, parseClientDataJsonBase64url, parseJwtAud, parseJwtSegmentJson };
61
+ export { decodeBase64UrlOrBase64, isHostWithinRpId, loadSimpleWebAuthnServer, originHostnameOrEmpty, parseClientDataJsonBase64url };
85
62
 
86
63
  //# sourceMappingURL=webauthnOidcHelpers.js.map
@@ -1,37 +0,0 @@
1
- import { normalizeOptionalTrimmedString } from "../../shared-ts/src/utils/normalize.js";
2
- import "../../shared-ts/src/utils/validation.js";
3
- import { walletIdFromString } from "../../shared-ts/src/utils/registrationIds.js";
4
- //#region src/core/authService/webauthnWalletBinding.ts
5
- function parseBoundaryWalletId(raw) {
6
- const value = normalizeOptionalTrimmedString(raw);
7
- if (!value) return null;
8
- try {
9
- return String(walletIdFromString(value));
10
- } catch {
11
- return null;
12
- }
13
- }
14
- /**
15
- * Returns `null` when the binding carries no Ed25519 identity, which is the
16
- * valid state for a wallet whose Ed25519 Yao ceremony has not settled yet.
17
- * Callers must surface that as a typed "not provisioned" outcome rather than
18
- * treating it as a missing credential.
19
- */
20
- function resolvedEd25519WalletBindingFromCredentialBinding(args) {
21
- const { nearAccountId, nearEd25519SigningKeyId } = args.binding;
22
- if (!nearAccountId || !nearEd25519SigningKeyId) return null;
23
- const resolvedSignerSlot = Number.isSafeInteger(args.signerSlot) && Number(args.signerSlot) > 0 ? Math.floor(Number(args.signerSlot)) : args.binding.signerSlot;
24
- if (!Number.isSafeInteger(resolvedSignerSlot) || Number(resolvedSignerSlot) < 1) return null;
25
- return {
26
- walletId: args.binding.userId,
27
- nearAccountId,
28
- nearEd25519SigningKeyId,
29
- rpId: args.binding.rpId,
30
- credentialIdB64u: args.binding.credentialIdB64u,
31
- signerSlot: Number(resolvedSignerSlot)
32
- };
33
- }
34
- //#endregion
35
- export { parseBoundaryWalletId, resolvedEd25519WalletBindingFromCredentialBinding };
36
-
37
- //# sourceMappingURL=webauthnWalletBinding.js.map
@@ -1,98 +1,4 @@
1
- import { normalizeOptionalTrimmedString, normalizeTrimmedString } from "../shared-ts/src/utils/normalize.js";
2
- import "../shared-ts/src/utils/validation.js";
3
- import { THRESHOLD_DO_OBJECT_NAME_DEFAULT } from "./defaultConfigsServer.js";
4
1
  //#region src/core/config.ts
5
- const AUTH_SERVICE_CONFIG_DEFAULTS = {
6
- nearRpcUrlTestnet: "https://rpc.testnet.fastnear.com",
7
- nearRpcUrlMainnet: "https://rpc.mainnet.near.org",
8
- networkId: "testnet",
9
- accountInitialBalance: "30000000000000000000000",
10
- createAccountAndRegisterGas: "85000000000000"
11
- };
12
- function defaultNearRpcUrl(networkId) {
13
- if (String(networkId || "").trim().toLowerCase() === "mainnet") return AUTH_SERVICE_CONFIG_DEFAULTS.nearRpcUrlMainnet;
14
- return AUTH_SERVICE_CONFIG_DEFAULTS.nearRpcUrlTestnet;
15
- }
16
- function parseCsv(input) {
17
- return String(input || "").split(",").map((s) => s.trim()).filter(Boolean);
18
- }
19
- function normalizeGoogleOidcConfig(input) {
20
- if (!input) return void 0;
21
- if (typeof input === "object" && !Array.isArray(input) && Array.isArray(input.clientIds)) {
22
- const clientIds = Array.from(new Set(input.clientIds.map((v) => String(v || "").trim()).filter(Boolean)));
23
- if (!clientIds.length) return void 0;
24
- const hostedDomains = Array.isArray(input.hostedDomains) ? Array.from(new Set(input.hostedDomains.map((v) => String(v || "").trim().toLowerCase()).filter(Boolean))) : [];
25
- return {
26
- clientIds,
27
- ...hostedDomains.length ? { hostedDomains } : {}
28
- };
29
- }
30
- const envInput = input;
31
- const single = normalizeOptionalTrimmedString(envInput.GOOGLE_OIDC_CLIENT_ID);
32
- const csv = normalizeOptionalTrimmedString(envInput.GOOGLE_OIDC_CLIENT_IDS);
33
- const hostedRaw = normalizeOptionalTrimmedString(envInput.GOOGLE_OIDC_HOSTED_DOMAINS);
34
- if (!Boolean(single || csv || hostedRaw)) return void 0;
35
- const clientIds = Array.from(new Set([...single ? [single] : [], ...parseCsv(csv)]));
36
- if (!clientIds.length) throw new Error("googleOidc enabled but GOOGLE_OIDC_CLIENT_ID(S) is not set");
37
- const hostedDomains = hostedRaw ? Array.from(new Set(parseCsv(hostedRaw).map((d) => d.toLowerCase()))) : [];
38
- return {
39
- clientIds,
40
- ...hostedDomains.length ? { hostedDomains } : {}
41
- };
42
- }
43
- function normalizeGithubOAuthConfig(input) {
44
- if (!input) return void 0;
45
- const candidate = input;
46
- const clientId = normalizeOptionalTrimmedString(candidate.clientId ?? candidate.GITHUB_OAUTH_CLIENT_ID);
47
- const clientSecret = normalizeOptionalTrimmedString(candidate.clientSecret ?? candidate.GITHUB_OAUTH_CLIENT_SECRET);
48
- const callbackUrl = normalizeOptionalTrimmedString(candidate.callbackUrl ?? candidate.GITHUB_OAUTH_CALLBACK_URL);
49
- if (!clientId && !clientSecret && !callbackUrl) return void 0;
50
- if (!clientId || !clientSecret || !callbackUrl) throw new Error("githubOAuth requires clientId, clientSecret, and callbackUrl");
51
- const parsedCallbackUrl = new URL(callbackUrl);
52
- const localCallbackHost = parsedCallbackUrl.hostname === "localhost" || parsedCallbackUrl.hostname.endsWith(".localhost");
53
- if (parsedCallbackUrl.protocol !== "https:" && !localCallbackHost) throw new Error("githubOAuth.callbackUrl must use HTTPS outside localhost");
54
- return {
55
- clientId,
56
- clientSecret,
57
- callbackUrl: parsedCallbackUrl.toString()
58
- };
59
- }
60
- function normalizeThresholdStoreConfig(input) {
61
- if (!input) return void 0;
62
- if (typeof input !== "object" || Array.isArray(input)) return void 0;
63
- const c = input;
64
- if (!Boolean(normalizeOptionalTrimmedString(c.THRESHOLD_NODE_ROLE) || normalizeOptionalTrimmedString(c.THRESHOLD_COORDINATOR_SHARED_SECRET_B64U) || normalizeOptionalTrimmedString(c.THRESHOLD_ED25519_RELAYER_COSIGNERS) || normalizeOptionalTrimmedString(c.THRESHOLD_ED25519_RELAYER_COSIGNER_ID) || normalizeOptionalTrimmedString(c.THRESHOLD_ED25519_RELAYER_COSIGNER_T) || normalizeOptionalTrimmedString(c.THRESHOLD_ED25519_CLIENT_PARTICIPANT_ID) || normalizeOptionalTrimmedString(c.THRESHOLD_ED25519_RELAYER_PARTICIPANT_ID) || normalizeOptionalTrimmedString(c.THRESHOLD_ED25519_SHARE_MODE) || normalizeOptionalTrimmedString(c.THRESHOLD_PREFIX) || normalizeOptionalTrimmedString(c.THRESHOLD_ED25519_WALLET_SESSION_PREFIX) || normalizeOptionalTrimmedString(c.THRESHOLD_ED25519_SESSION_PREFIX) || normalizeOptionalTrimmedString(c.THRESHOLD_ED25519_KEYSTORE_PREFIX) || normalizeOptionalTrimmedString(c.THRESHOLD_ECDSA_WALLET_SESSION_PREFIX) || normalizeOptionalTrimmedString(c.THRESHOLD_ECDSA_SESSION_PREFIX) || normalizeOptionalTrimmedString(c.THRESHOLD_ECDSA_KEYSTORE_PREFIX) || normalizeOptionalTrimmedString(c.ROUTER_AB_NORMAL_SIGNING_WORKER_ID) || normalizeOptionalTrimmedString(c.ROUTER_AB_SIGNING_WORKER_URL) || normalizeOptionalTrimmedString(c.ROUTER_AB_INTERNAL_SERVICE_AUTH_SECRET) || typeof c.routerAbSigningWorkerFetch === "function" || normalizeOptionalTrimmedString(c.SIGNING_SESSION_SEAL_ROOT_SECRET_B64U) || normalizeOptionalTrimmedString(c.SIGNING_SESSION_SEAL_CURRENT_KEY_VERSION) || normalizeOptionalTrimmedString(c.SIGNING_SESSION_SEAL_ACCEPTED_WARM_KEY_VERSIONS) || normalizeOptionalTrimmedString(c.SIGNING_SESSION_SEAL_IDEMPOTENCY_KIND) || normalizeOptionalTrimmedString(c.SIGNING_SESSION_SEAL_IDEMPOTENCY_UPSTASH_URL) || normalizeOptionalTrimmedString(c.SIGNING_SESSION_SEAL_IDEMPOTENCY_UPSTASH_TOKEN) || normalizeOptionalTrimmedString(c.SIGNING_SESSION_SEAL_IDEMPOTENCY_REDIS_URL) || normalizeOptionalTrimmedString(c.SIGNING_SESSION_SEAL_IDEMPOTENCY_KEY_PREFIX) || normalizeOptionalTrimmedString(c.SIGNING_SESSION_SEAL_IDEMPOTENCY_TTL_MS) || normalizeOptionalTrimmedString(c.kind) || normalizeOptionalTrimmedString(c.url) || normalizeOptionalTrimmedString(c.token) || normalizeOptionalTrimmedString(c.redisUrl) || normalizeOptionalTrimmedString(c.UPSTASH_REDIS_REST_URL) || normalizeOptionalTrimmedString(c.UPSTASH_REDIS_REST_TOKEN) || normalizeOptionalTrimmedString(c.REDIS_URL))) return void 0;
65
- const normalized = { ...input };
66
- if (normalizeOptionalTrimmedString(normalized.kind) === "cloudflare-do") {
67
- if (!normalizeOptionalTrimmedString(normalized.name)) normalized.name = THRESHOLD_DO_OBJECT_NAME_DEFAULT;
68
- const thresholdPrefix = normalizeOptionalTrimmedString(normalized.THRESHOLD_PREFIX);
69
- const anySpecificPrefix = Boolean(normalizeOptionalTrimmedString(normalized.THRESHOLD_ED25519_WALLET_SESSION_PREFIX) || normalizeOptionalTrimmedString(normalized.THRESHOLD_ED25519_SESSION_PREFIX) || normalizeOptionalTrimmedString(normalized.THRESHOLD_ED25519_KEYSTORE_PREFIX));
70
- if (!thresholdPrefix && !anySpecificPrefix) normalized.THRESHOLD_PREFIX = "w3a";
71
- }
72
- return normalized;
73
- }
74
- function createAuthServiceConfig(input) {
75
- const networkId = normalizeTrimmedString(input.networkId) || AUTH_SERVICE_CONFIG_DEFAULTS.networkId;
76
- const config = {
77
- relayerAccount: normalizeTrimmedString(input.relayerAccount),
78
- relayerPrivateKey: normalizeTrimmedString(input.relayerPrivateKey),
79
- nearRpcUrl: normalizeTrimmedString(input.nearRpcUrl) || defaultNearRpcUrl(networkId),
80
- networkId,
81
- accountInitialBalance: normalizeTrimmedString(input.accountInitialBalance) || AUTH_SERVICE_CONFIG_DEFAULTS.accountInitialBalance,
82
- createAccountAndRegisterGas: normalizeTrimmedString(input.createAccountAndRegisterGas) || AUTH_SERVICE_CONFIG_DEFAULTS.createAccountAndRegisterGas,
83
- signerWasm: input.signerWasm,
84
- thresholdStore: normalizeThresholdStoreConfig(input.thresholdStore),
85
- logger: input.logger,
86
- googleOidc: normalizeGoogleOidcConfig(input.googleOidc),
87
- githubOAuth: normalizeGithubOAuthConfig(input.githubOAuth)
88
- };
89
- validateConfigs(config);
90
- return config;
91
- }
92
- function validateConfigs(config) {
93
- for (const key of ["relayerAccount", "relayerPrivateKey"]) if (!config[key]) throw new Error(`Missing required config variable: ${key}`);
94
- if (!config.relayerPrivateKey?.startsWith("ed25519:")) throw new Error("Relayer private key must be in format \"ed25519:base58privatekey\"");
95
- }
96
2
  function parseBool(v) {
97
3
  const s = String(v ?? "").trim().toLowerCase();
98
4
  return s === "1" || s === "true" || s === "yes" || s === "on";
@@ -105,6 +11,6 @@ function requireEnvVar(env, name) {
105
11
  return v;
106
12
  }
107
13
  //#endregion
108
- export { AUTH_SERVICE_CONFIG_DEFAULTS, createAuthServiceConfig, parseBool, requireEnvVar, validateConfigs };
14
+ export { parseBool, requireEnvVar };
109
15
 
110
16
  //# sourceMappingURL=config.js.map
@@ -1,8 +1,8 @@
1
1
  import { isPlainObject } from "../shared-ts/src/utils/validation.js";
2
2
  import { sameRouterAbMpcMaterialActivationRef } from "../shared-ts/src/utils/routerAbNormalSigningIdentity.js";
3
3
  import { EcdsaMaterialReadSnapshot } from "./ecdsaMaterialReadSnapshot.js";
4
- import { parseD1JsonColumn } from "../storage/d1Sql.js";
5
4
  import { parseWalletEcdsaSignerRecord } from "./WalletStore.js";
5
+ import { parseD1JsonColumn } from "../storage/d1Sql.js";
6
6
  //#region src/core/d1EcdsaSignerRead.ts
7
7
  function prepareWalletEcdsaSignersRead(database, scope, walletId) {
8
8
  return database.prepare(`SELECT record_json FROM wallet_signers
@@ -1,5 +1,4 @@
1
1
  import { normalizeOptionalTrimmedString } from "../shared-ts/src/utils/normalize.js";
2
- import "../shared-ts/src/utils/validation.js";
3
2
  import { failure } from "../shared-ts/src/utils/failure.js";
4
3
  import { d1ChangedRows } from "../storage/d1Sql.js";
5
4
  import { D1TenantTable, ensureD1Schema } from "./d1TenantStore.js";
@@ -242,6 +241,6 @@ var D1IdentityStore = class {
242
241
  }
243
242
  };
244
243
  //#endregion
245
- export { D1IdentityStore, IDENTITY_D1_STORE, IDENTITY_STORE_D1_SCHEMA_SQL, ensureIdentityStoreD1Schema };
244
+ export { D1IdentityStore, IDENTITY_STORE_D1_SCHEMA_SQL, ensureIdentityStoreD1Schema };
246
245
 
247
246
  //# sourceMappingURL=d1IdentityStore.js.map
@@ -1,20 +1,6 @@
1
1
  import { normalizeOptionalTrimmedString } from "../shared-ts/src/utils/normalize.js";
2
- import "../shared-ts/src/utils/validation.js";
3
- import "./defaultConfigsServer.js";
4
- import { toPrefixWithColon } from "./ThresholdService/validation.js";
5
2
  import { formatD1ExecStatement } from "../storage/d1Sql.js";
6
3
  //#region src/core/d1TenantStore.ts
7
- /**
8
- * A store's key prefix, which is also its D1 namespace: the first of `explicitKeys` set in
9
- * `config`, else `<THRESHOLD_PREFIX>:<segment>`. It always ends with a colon.
10
- */
11
- function resolveStorePrefix(config, explicitKeys, segment) {
12
- for (const key of explicitKeys) {
13
- const explicit = normalizeOptionalTrimmedString(config[key]);
14
- if (explicit) return toPrefixWithColon(explicit, "");
15
- }
16
- return `${toPrefixWithColon(normalizeOptionalTrimmedString(config.THRESHOLD_PREFIX) || "w3a", `w3a:`)}${segment}`;
17
- }
18
4
  /** Requires each part of the scope; `store` ends the error, e.g. `identity store`. */
19
5
  function requireD1TenantScope(input, store) {
20
6
  const field = (value, name) => {
@@ -29,15 +15,6 @@ function requireD1TenantScope(input, store) {
29
15
  envId: field(input.envId, "envId")
30
16
  };
31
17
  }
32
- /** The scope env-shaped store config names (`orgId` or `ORG_ID`, and so on) under `namespace`. */
33
- function d1TenantScopeFromConfig(config, namespace, store) {
34
- return requireD1TenantScope({
35
- namespace,
36
- orgId: config.orgId || config.ORG_ID,
37
- projectId: config.projectId || config.PROJECT_ID,
38
- envId: config.envId || config.ENV_ID
39
- }, store);
40
- }
41
18
  async function ensureD1Schema(database, statements) {
42
19
  for (const statement of statements) await database.exec(formatD1ExecStatement(statement));
43
20
  }
@@ -77,6 +54,6 @@ var D1TenantTable = class {
77
54
  }
78
55
  };
79
56
  //#endregion
80
- export { D1Schema, D1TenantTable, d1TenantScopeFromConfig, ensureD1Schema, prepareD1TenantStatement, resolveStorePrefix };
57
+ export { D1Schema, D1TenantTable, ensureD1Schema, prepareD1TenantStatement };
81
58
 
82
59
  //# sourceMappingURL=d1TenantStore.js.map
@@ -3,8 +3,8 @@ import { normalizeOptionalTrimmedString } from "../shared-ts/src/utils/normalize
3
3
  import { isPlainObject } from "../shared-ts/src/utils/validation.js";
4
4
  import { parseWalletAuthMethodRecordV2, walletAuthMethodRecordId } from "../shared-ts/src/utils/walletAuthMethodRecord.js";
5
5
  import { D1_BATCH_CAS_GUARD_SQL, parseD1JsonColumn } from "../storage/d1Sql.js";
6
- import { D1Schema, D1TenantTable, ensureD1Schema } from "./d1TenantStore.js";
7
6
  import { walletIdFromString } from "../shared-ts/src/utils/registrationIds.js";
7
+ import { D1Schema, D1TenantTable, ensureD1Schema } from "./d1TenantStore.js";
8
8
  //#region src/core/d1WalletAuthMethodStore.ts
9
9
  /** Names the wallet auth-method store in D1 scope errors. */
10
10
  const WALLET_AUTH_METHOD_D1_STORE = "wallet auth-method store";
@@ -243,9 +243,6 @@ const WALLET_AUTH_METHOD_STORE_D1_SCHEMA_V2_SQL = Object.freeze([
243
243
  async function ensureWalletAuthMethodStoreD1Schema(options) {
244
244
  await ensureD1Schema(options.database, WALLET_AUTH_METHOD_STORE_D1_SCHEMA_SQL);
245
245
  }
246
- async function ensureWalletAuthMethodStoreD1SchemaV2(options) {
247
- await ensureD1Schema(options.database, WALLET_AUTH_METHOD_STORE_D1_SCHEMA_V2_SQL);
248
- }
249
246
  function trimString(value) {
250
247
  return typeof value === "string" ? value.trim() : "";
251
248
  }
@@ -712,6 +709,6 @@ var D1WalletAuthMethodStore = class {
712
709
  }
713
710
  };
714
711
  //#endregion
715
- export { D1WalletAuthMethodStore, WALLET_AUTH_METHOD_D1_STORE, WALLET_AUTH_METHOD_STORE_D1_SCHEMA_SQL, WALLET_AUTH_METHOD_STORE_D1_SCHEMA_V2_SQL, bindWalletAuthMethodIdentity, bindWalletAuthMethodIdentityV2, ensureWalletAuthMethodStoreD1Schema, ensureWalletAuthMethodStoreD1SchemaV2, normalizeWalletAuthMethod, normalizeWalletAuthMethodV2, prepareD1WalletAuthMethodInsertStatement, prepareD1WalletAuthMethodPutStatement, prepareD1WalletAuthMethodV2PutStatement, walletAuthMethodId, walletAuthMethodV2Id };
712
+ export { D1WalletAuthMethodStore, WALLET_AUTH_METHOD_D1_STORE, WALLET_AUTH_METHOD_STORE_D1_SCHEMA_SQL, WALLET_AUTH_METHOD_STORE_D1_SCHEMA_V2_SQL, bindWalletAuthMethodIdentity, bindWalletAuthMethodIdentityV2, ensureWalletAuthMethodStoreD1Schema, normalizeWalletAuthMethod, normalizeWalletAuthMethodV2, prepareD1WalletAuthMethodInsertStatement, prepareD1WalletAuthMethodPutStatement, prepareD1WalletAuthMethodV2PutStatement, walletAuthMethodId, walletAuthMethodV2Id };
716
713
 
717
714
  //# sourceMappingURL=d1WalletAuthMethodStore.js.map
@@ -5,11 +5,11 @@ import { sameRouterAbMpcMaterialActivationRef } from "../shared-ts/src/utils/rou
5
5
  import { parseRouterAbEd25519YaoRecoveryActivationResultV1, parseRouterAbEd25519YaoRecoveryAdmissionRequestV1, parseRouterAbEd25519YaoRegistrationActivationAdmissionReceiptV1, parseRouterAbEd25519YaoRegistrationActivationResultV1, parseRouterAbEd25519YaoRegistrationAdmissionRequestV1 } from "../shared-ts/src/utils/routerAbEd25519Yao.js";
6
6
  import { normalizeRuntimePolicyScope, signingRootScopeFromRuntimePolicyScope } from "../shared-ts/src/threshold/signingRootScope.js";
7
7
  import { sameRouterAbEcdsaDerivationPublicCapabilityV1 } from "../shared-ts/src/utils/routerAbEcdsaDerivation.js";
8
- import { normalizeThresholdEd25519ParticipantIds } from "../shared-ts/src/threshold/participants.js";
9
- import { D1_BATCH_CAS_GUARD_SQL, formatD1ExecStatement, parseD1JsonColumn } from "../storage/d1Sql.js";
10
8
  import { thresholdEcdsaChainTargetKey } from "../shared-ts/src/utils/thresholdEcdsaChainTarget.js";
11
9
  import { ecdsaPostRegistrationRequestMatchesCapability, parseWalletEcdsaPendingSessionActivationRecord, parseWalletEcdsaSignerRecord } from "./WalletStore.js";
10
+ import { D1_BATCH_CAS_GUARD_SQL, formatD1ExecStatement, parseD1JsonColumn } from "../storage/d1Sql.js";
12
11
  import { EcdsaMaterialRead, parseWalletEcdsaSignerRows, prepareWalletEcdsaSignersRead } from "./d1EcdsaSignerRead.js";
12
+ import { normalizeThresholdEd25519ParticipantIds } from "../shared-ts/src/threshold/participants.js";
13
13
  //#region src/core/d1WalletStore.ts
14
14
  function sameD1WalletRuntimePolicyScopeV1(left, right) {
15
15
  return left.orgId === right.orgId && left.projectId === right.projectId && left.envId === right.envId && left.signingRootVersion === right.signingRootVersion;
@@ -0,0 +1,13 @@
1
+ //#region src/core/deviceLinking/linkedDeviceBootstrap.ts
2
+ function requireLinkedDeviceBootstrapRecord(result) {
3
+ if (result.ok) return result.record;
4
+ throw Object.assign(/* @__PURE__ */ new Error("Linked-device bootstrap authority rejected the request"), { code: result.code });
5
+ }
6
+ function linkedDeviceBootstrapFailure(error) {
7
+ if (error && typeof error === "object" && "code" in error && (error.code === "home_conflict" || error.code === "home_unavailable")) return error.code;
8
+ return null;
9
+ }
10
+ //#endregion
11
+ export { linkedDeviceBootstrapFailure, requireLinkedDeviceBootstrapRecord };
12
+
13
+ //# sourceMappingURL=linkedDeviceBootstrap.js.map