@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,229 +0,0 @@
1
- import { isValidAccountId } from "../../shared-ts/src/utils/near.js";
2
- import "../../shared-ts/src/utils/validation.js";
3
- import { ActionType, validateActionArgsWasm } from "../../shared-ts/src/near/actions.js";
4
- import { executeSignedDelegateWithRelayer } from "../../delegateAction/index.js";
5
- import { errorMessage } from "../../shared-ts/src/utils/errors.js";
6
- import { checkNearAccountExistsWithClient, dispatchNearSignedTransactionBorshWithClient, fetchNearTxContextWithClient, signGasRelayerNearTransactionWithDeps, verifyAccountAccessKeysPresentWithClient, viewAccessKeyListWithClient } from "./nearTransactions.js";
7
- import { fundImplicitNearAccountWithRelayer } from "../nearRelayerAccountProvisioning.js";
8
- import { buildFullAccessAddKeyAction, normalizeBootstrapPublicKeys } from "./registrationThresholdHelpers.js";
9
- //#region src/core/authService/nearAccountOperations.ts
10
- const ACCOUNT_CREATE_BROADCAST_WAIT_UNTIL = "EXECUTED_OPTIMISTIC";
11
- const ACCOUNT_CREATE_FAST_KEY_VISIBILITY_CHECK = {
12
- attempts: 2,
13
- delayMs: 100,
14
- finality: "optimistic"
15
- };
16
- const ACCOUNT_CREATE_BACKGROUND_KEY_VISIBILITY_AUDIT = {
17
- attempts: 8,
18
- delayMs: 250,
19
- finality: "final"
20
- };
21
- var NearAccountOperations = class {
22
- constructor(input) {
23
- this.input = input;
24
- this.transactionQueue = Promise.resolve();
25
- this.queueStats = {
26
- pending: 0,
27
- completed: 0,
28
- failed: 0
29
- };
30
- }
31
- async viewAccessKeyList(accountId) {
32
- await this.input.ensureSignerAndRelayerAccount();
33
- return await viewAccessKeyListWithClient({
34
- nearClient: this.input.nearClient,
35
- accountId
36
- });
37
- }
38
- async dispatchNearSignedTransactionBorsh(input) {
39
- await this.input.ensureSignerAndRelayerAccount();
40
- return await dispatchNearSignedTransactionBorshWithClient({
41
- nearClient: this.input.nearClient,
42
- signedTransactionBorshB64u: input.signedTransactionBorshB64u
43
- });
44
- }
45
- async txStatus(txHash, senderAccountId) {
46
- await this.input.ensureSignerAndRelayerAccount();
47
- return this.input.nearClient.txStatus(txHash, senderAccountId);
48
- }
49
- async createAccount(request) {
50
- await this.input.ensureSignerAndRelayerAccount();
51
- return this.queueTransaction(this.createAccountQueueTask(request), `create account ${request.accountId}`);
52
- }
53
- async fundImplicitNearAccount(request) {
54
- await this.input.ensureSignerAndRelayerAccount();
55
- return await this.queueTransaction(this.createFundImplicitNearAccountQueueTask(request), `fund implicit NEAR account ${request.nearAccountId}`);
56
- }
57
- async checkAccountExists(accountId) {
58
- await this.input.ensureSignerAndRelayerAccount();
59
- return await checkNearAccountExistsWithClient({
60
- nearClient: this.input.nearClient,
61
- logger: this.input.logger,
62
- accountId
63
- });
64
- }
65
- async executeSignedDelegate(input) {
66
- await this.input.ensureSignerAndRelayerAccount();
67
- if (!input?.hash || !input?.signedDelegate) return {
68
- ok: false,
69
- code: "invalid_delegate_request",
70
- error: "hash and signedDelegate are required"
71
- };
72
- const senderId = input.signedDelegate?.delegateAction?.senderId ?? "unknown-sender";
73
- return this.queueTransaction(() => executeSignedDelegateWithRelayer({
74
- nearClient: this.input.nearClient,
75
- relayerAccount: this.input.config.relayerAccount,
76
- relayerPublicKey: this.input.getRelayerPublicKey(),
77
- hash: input.hash,
78
- signedDelegate: input.signedDelegate,
79
- policy: input.policy,
80
- signGasRelayerNearTransaction: (args) => this.signGasRelayerNearTransaction(args)
81
- }), `execute signed delegate for ${senderId}`);
82
- }
83
- async fetchTxContext(accountId, publicKey) {
84
- return await fetchNearTxContextWithClient({
85
- nearClient: this.input.nearClient,
86
- accountId,
87
- publicKey
88
- });
89
- }
90
- async signGasRelayerNearTransaction(input) {
91
- return await signGasRelayerNearTransactionWithDeps({
92
- ensureSignerWasm: this.input.ensureSignerWasm,
93
- relayerAccount: this.input.config.relayerAccount,
94
- relayerPrivateKey: this.input.config.relayerPrivateKey,
95
- receiverId: input.receiverId,
96
- nonce: input.nonce,
97
- blockHash: input.blockHash,
98
- actions: input.actions
99
- });
100
- }
101
- async queueTransaction(operation, description) {
102
- this.queueStats.pending++;
103
- this.input.logger.debug(`[AuthService] Queueing: ${description} (pending: ${this.queueStats.pending})`);
104
- const next = this.transactionQueue.then(async () => {
105
- try {
106
- this.input.logger.debug(`[AuthService] Executing: ${description}`);
107
- const result = await operation();
108
- this.queueStats.completed++;
109
- this.queueStats.pending--;
110
- this.input.logger.debug(`[AuthService] Completed: ${description} (pending: ${this.queueStats.pending})`);
111
- return result;
112
- } catch (error) {
113
- this.queueStats.failed++;
114
- this.queueStats.pending--;
115
- this.input.logger.error(`[AuthService] Failed: ${description} (failed: ${this.queueStats.failed}):`, errorMessage(error) || "unknown error");
116
- throw error;
117
- }
118
- });
119
- this.transactionQueue = next.catch(() => void 0);
120
- return await next;
121
- }
122
- createAccountQueueTask(request) {
123
- return this.createAccountFromQueue.bind(this, request);
124
- }
125
- async createAccountFromQueue(request) {
126
- try {
127
- if (!isValidAccountId(request.accountId)) throw new Error(`Invalid account ID format: ${request.accountId}`);
128
- this.input.logger.info(`Checking if account ${request.accountId} already exists...`);
129
- if (await this.checkAccountExists(request.accountId)) throw new Error(`Account ${request.accountId} already exists. Cannot create duplicate account.`);
130
- this.input.logger.info(`Account ${request.accountId} is available for creation`);
131
- const initialBalance = this.input.config.accountInitialBalance;
132
- const { publicKey, recoveryPublicKey, expectedPublicKeys } = normalizeBootstrapPublicKeys({
133
- publicKey: request.publicKey,
134
- recoveryPublicKey: request.recoveryPublicKey
135
- });
136
- this.input.logger.info(`Creating account: ${request.accountId}`);
137
- this.input.logger.info(`Initial balance: ${initialBalance} yoctoNEAR`);
138
- const actions = [
139
- { action_type: ActionType.CreateAccount },
140
- {
141
- action_type: ActionType.Transfer,
142
- deposit: String(initialBalance)
143
- },
144
- buildFullAccessAddKeyAction(publicKey),
145
- ...recoveryPublicKey ? [buildFullAccessAddKeyAction(recoveryPublicKey)] : []
146
- ];
147
- actions.forEach(validateActionArgsWasm);
148
- const { nextNonce, blockHash } = await this.fetchTxContext(this.input.config.relayerAccount, this.input.getRelayerPublicKey());
149
- const signed = await this.signGasRelayerNearTransaction({
150
- receiverId: request.accountId,
151
- nonce: nextNonce,
152
- blockHash,
153
- actions
154
- });
155
- const createAccountBroadcastStartedAt = Date.now();
156
- const result = await this.input.nearClient.sendTransaction(signed, ACCOUNT_CREATE_BROADCAST_WAIT_UNTIL);
157
- this.input.logger.info(`Account creation for ${request.accountId} reached ${ACCOUNT_CREATE_BROADCAST_WAIT_UNTIL} in ${Date.now() - createAccountBroadcastStartedAt}ms`);
158
- const createAccountKeyCheckStartedAt = Date.now();
159
- const keysVerified = await this.verifyAccountAccessKeysPresent(request.accountId, expectedPublicKeys, ACCOUNT_CREATE_FAST_KEY_VISIBILITY_CHECK);
160
- this.input.logger.info(`Account creation for ${request.accountId} key visibility verified=${keysVerified} in ${Date.now() - createAccountKeyCheckStartedAt}ms`);
161
- if (!keysVerified) {
162
- this.input.logger.warn(recoveryPublicKey ? "Bootstrap committed before both access keys were visible on final state; scheduling background audit" : "Bootstrap committed before the operational access key was visible on final state; scheduling background audit");
163
- this.scheduleAccountAccessKeyVisibilityAudit({
164
- accountId: request.accountId,
165
- expectedPublicKeys,
166
- contextLabel: `Account creation for ${request.accountId}`
167
- });
168
- }
169
- this.input.logger.info(`Account creation completed: ${result.transaction.hash}`);
170
- const nearAmount = (Number(BigInt(initialBalance)) / 1e24).toFixed(6);
171
- return {
172
- success: true,
173
- transactionHash: result.transaction.hash,
174
- accountId: request.accountId,
175
- message: `Account ${request.accountId} created with ${nearAmount} NEAR initial balance`
176
- };
177
- } catch (error) {
178
- this.input.logger.error(`Account creation failed for ${request.accountId}:`, error);
179
- const msg = errorMessage(error) || "Unknown account creation error";
180
- return {
181
- success: false,
182
- error: msg,
183
- message: `Failed to create account ${request.accountId}: ${msg}`
184
- };
185
- }
186
- }
187
- createFundImplicitNearAccountQueueTask(request) {
188
- return this.fundImplicitNearAccountFromQueue.bind(this, request);
189
- }
190
- async fundImplicitNearAccountFromQueue(request) {
191
- return await fundImplicitNearAccountWithRelayer({
192
- ...request,
193
- relayerAccount: this.input.config.relayerAccount,
194
- relayerPrivateKey: this.input.config.relayerPrivateKey,
195
- relayerPublicKey: this.input.getRelayerPublicKey(),
196
- nearRpcUrl: this.input.config.nearRpcUrl,
197
- fundedAmountYocto: this.input.config.accountInitialBalance,
198
- nearClient: this.input.nearClient,
199
- ensureSignerWasm: this.input.ensureSignerWasm
200
- });
201
- }
202
- async verifyAccountAccessKeysPresent(accountId, expectedPublicKeys, opts) {
203
- return await verifyAccountAccessKeysPresentWithClient({
204
- nearClient: this.input.nearClient,
205
- accountId,
206
- expectedPublicKeys,
207
- options: opts
208
- });
209
- }
210
- scheduleAccountAccessKeyVisibilityAudit(input) {
211
- this.runAccountAccessKeyVisibilityAudit(input);
212
- }
213
- async runAccountAccessKeyVisibilityAudit(input) {
214
- try {
215
- const startedAt = Date.now();
216
- if (await this.verifyAccountAccessKeysPresent(input.accountId, input.expectedPublicKeys, ACCOUNT_CREATE_BACKGROUND_KEY_VISIBILITY_AUDIT)) {
217
- this.input.logger.info(`${input.contextLabel} final key visibility verified=true in ${Date.now() - startedAt}ms`);
218
- return;
219
- }
220
- this.input.logger.warn(`${input.contextLabel} final key visibility is still pending after ${Date.now() - startedAt}ms`);
221
- } catch (error) {
222
- this.input.logger.warn(`${input.contextLabel} final key visibility audit failed`, error);
223
- }
224
- }
225
- };
226
- //#endregion
227
- export { NearAccountOperations };
228
-
229
- //# sourceMappingURL=nearAccountOperations.js.map
@@ -1,108 +0,0 @@
1
- import { parseWebAuthnRpId } from "../../shared-ts/src/utils/domainIds.js";
2
- import { normalizeOptionalTrimmedString } from "../../shared-ts/src/utils/normalize.js";
3
- import "../../shared-ts/src/utils/validation.js";
4
- import { failure } from "../../shared-ts/src/utils/failure.js";
5
- import { errorMessage } from "../../shared-ts/src/utils/errors.js";
6
- //#region src/core/authService/nearPublicKeyMetadata.ts
7
- function optionalPositiveInteger(input) {
8
- const value = typeof input === "number" ? input : Number(input);
9
- return Number.isFinite(value) && value >= 1 ? Math.floor(value) : null;
10
- }
11
- function optionalPositiveTimestamp(input) {
12
- const value = typeof input === "number" ? input : Number(input);
13
- return Number.isFinite(value) && value > 0 ? Math.floor(value) : null;
14
- }
15
- function nearPublicKeyAuthBinding(input) {
16
- if (!input.credentialIdB64u && !input.rpIdRaw) return { ok: true };
17
- if (!input.credentialIdB64u || !input.rpIdRaw) return {
18
- ok: false,
19
- message: "passkey near public key binding requires rpId and credentialIdB64u"
20
- };
21
- const rpId = parseWebAuthnRpId(input.rpIdRaw);
22
- if (!rpId.ok) return {
23
- ok: false,
24
- message: rpId.error.message
25
- };
26
- return {
27
- ok: true,
28
- binding: {
29
- kind: "passkey",
30
- rpId: rpId.value,
31
- credentialIdB64u: input.credentialIdB64u
32
- }
33
- };
34
- }
35
- function nearPublicKeyRecord(input) {
36
- const record = {
37
- version: "near_public_key_v1",
38
- userId: input.userId,
39
- publicKey: input.publicKey,
40
- kind: input.kind,
41
- createdAtMs: input.nowMs,
42
- updatedAtMs: input.nowMs
43
- };
44
- if (input.signerSlot !== null) record.signerSlot = input.signerSlot;
45
- if (input.authBinding) record.authBinding = input.authBinding;
46
- if (input.addedTxHash) record.addedTxHash = input.addedTxHash;
47
- if (input.removedAtMs !== null) record.removedAtMs = input.removedAtMs;
48
- return record;
49
- }
50
- function nearPublicKeyListEntry(record) {
51
- const entry = {
52
- publicKey: record.publicKey,
53
- kind: record.kind,
54
- createdAtMs: record.createdAtMs,
55
- updatedAtMs: record.updatedAtMs
56
- };
57
- if (typeof record.signerSlot === "number") entry.signerSlot = record.signerSlot;
58
- if (record.authBinding) entry.authBinding = record.authBinding;
59
- return entry;
60
- }
61
- async function recordNearPublicKeyMetadataWithStore(input) {
62
- const userId = normalizeOptionalTrimmedString(input.userId);
63
- const publicKey = normalizeOptionalTrimmedString(input.publicKey);
64
- if (!userId || !publicKey) return failure("invalid_args", "userId and publicKey are required");
65
- const authBinding = nearPublicKeyAuthBinding({
66
- credentialIdB64u: normalizeOptionalTrimmedString(input.credentialIdB64u),
67
- rpIdRaw: normalizeOptionalTrimmedString(input.rpId)
68
- });
69
- if (!authBinding.ok) return failure("invalid_args", authBinding.message);
70
- const record = nearPublicKeyRecord({
71
- userId,
72
- publicKey,
73
- kind: input.kind,
74
- signerSlot: optionalPositiveInteger(input.signerSlot),
75
- authBinding: authBinding.binding,
76
- addedTxHash: normalizeOptionalTrimmedString(input.addedTxHash),
77
- removedAtMs: optionalPositiveTimestamp(input.removedAtMs),
78
- nowMs: Date.now()
79
- });
80
- try {
81
- await input.store.put(record);
82
- return { ok: true };
83
- } catch (error) {
84
- const source = normalizeOptionalTrimmedString(input.source) || "near-public-key-metadata";
85
- const message = errorMessage(error) || "Failed to persist NEAR public key metadata";
86
- input.logger.warn(`[AuthService] ${source} failed for ${userId}`, error);
87
- return failure("internal", message);
88
- }
89
- }
90
- async function listNearPublicKeysForUserWithStore(input) {
91
- try {
92
- const userId = String(input.userId || "").trim();
93
- if (!userId) return failure("invalid_args", "Missing userId");
94
- const records = await input.store.listByUserId(userId);
95
- const keys = [];
96
- for (const record of records || []) keys.push(nearPublicKeyListEntry(record));
97
- return {
98
- ok: true,
99
- keys
100
- };
101
- } catch (e) {
102
- return failure("internal", errorMessage(e) || "Failed to list keys");
103
- }
104
- }
105
- //#endregion
106
- export { listNearPublicKeysForUserWithStore, recordNearPublicKeyMetadataWithStore };
107
-
108
- //# sourceMappingURL=nearPublicKeyMetadata.js.map
@@ -1,249 +0,0 @@
1
- import { base64UrlDecode } from "../../shared-ts/src/utils/base64.js";
2
- import "../../shared-ts/src/utils/encoders.js";
3
- import { normalizeOptionalTrimmedString } from "../../shared-ts/src/utils/normalize.js";
4
- import { isPlainObject } from "../../shared-ts/src/utils/validation.js";
5
- import { failedVerification } from "../../shared-ts/src/utils/failure.js";
6
- import { errorMessage } from "../../shared-ts/src/utils/errors.js";
7
- import { parseCacheControlMaxAgeSec, parseJwtAud, parseJwtSegmentJson } from "./webauthnOidcHelpers.js";
8
- import { toArrayBufferCopy } from "./portableCrypto.js";
9
- //#region src/core/authService/oidcVerification.ts
10
- function createGoogleJwksState() {
11
- return {
12
- cache: null,
13
- fetchPromise: null
14
- };
15
- }
16
- function requireWebCrypto() {
17
- return typeof crypto !== "undefined" && Boolean(crypto.subtle);
18
- }
19
- function parseJwtParts(input) {
20
- const parts = input.token.split(".");
21
- if (parts.length !== 3) return failedVerification("invalid_body", `${input.tokenName} must be a JWT (3 segments)`);
22
- const [headerB64u, payloadB64u, signatureB64u] = parts;
23
- const header = parseJwtSegmentJson(headerB64u);
24
- if (!header) return failedVerification("invalid_body", `Invalid ${input.tokenName} header encoding`);
25
- const payload = parseJwtSegmentJson(payloadB64u);
26
- if (!payload) return failedVerification("invalid_body", `Invalid ${input.tokenName} payload encoding`);
27
- return {
28
- ok: true,
29
- value: {
30
- headerB64u,
31
- payloadB64u,
32
- signatureB64u,
33
- header,
34
- payload
35
- }
36
- };
37
- }
38
- function jwkFromRaw(rawKey) {
39
- if (!isPlainObject(rawKey)) return null;
40
- const kid = normalizeOptionalTrimmedString(rawKey.kid);
41
- const kty = normalizeOptionalTrimmedString(rawKey.kty);
42
- const use = normalizeOptionalTrimmedString(rawKey.use);
43
- const alg = normalizeOptionalTrimmedString(rawKey.alg);
44
- const n = normalizeOptionalTrimmedString(rawKey.n);
45
- const e = normalizeOptionalTrimmedString(rawKey.e);
46
- if (!kid || kty !== "RSA" || !n || !e) return null;
47
- if (use !== "sig" || alg !== "RS256") return null;
48
- return {
49
- kid,
50
- jwk: rawKey
51
- };
52
- }
53
- async function fetchJwks(input) {
54
- const now = Date.now();
55
- const resp = await fetch(input.url);
56
- const text = await resp.text();
57
- if (!resp.ok) throw new Error(`${input.failureLabel} (HTTP ${resp.status}): ${text.slice(0, 200)}`);
58
- let json;
59
- try {
60
- json = text ? JSON.parse(text) : null;
61
- } catch {
62
- throw new Error(input.invalidJsonLabel);
63
- }
64
- if (!isPlainObject(json)) throw new Error(input.invalidShapeLabel);
65
- const keysRaw = json.keys;
66
- if (!Array.isArray(keysRaw)) throw new Error(input.missingKeysLabel);
67
- const keysByKid = /* @__PURE__ */ new Map();
68
- for (const rawKey of keysRaw) {
69
- const key = jwkFromRaw(rawKey);
70
- if (key) keysByKid.set(key.kid, key.jwk);
71
- }
72
- if (!keysByKid.size) throw new Error(input.noUsableKeysLabel);
73
- return {
74
- keysByKid,
75
- expiresAtMs: now + (parseCacheControlMaxAgeSec(resp.headers.get("cache-control")) || 3600) * 1e3
76
- };
77
- }
78
- async function getGoogleJwks(state) {
79
- const now = Date.now();
80
- if (state.cache && now < state.cache.expiresAtMs) return state.cache;
81
- if (state.fetchPromise) return state.fetchPromise;
82
- state.fetchPromise = fetchJwks({
83
- url: "https://www.googleapis.com/oauth2/v3/certs",
84
- failureLabel: "Google OIDC certs fetch failed",
85
- missingKeysLabel: "Google OIDC certs missing \"keys\" array",
86
- invalidJsonLabel: "Google OIDC certs returned non-JSON response",
87
- invalidShapeLabel: "Google OIDC certs returned invalid JSON shape",
88
- noUsableKeysLabel: "Google OIDC certs returned no usable RSA keys"
89
- });
90
- try {
91
- state.cache = await state.fetchPromise;
92
- return state.cache;
93
- } finally {
94
- state.fetchPromise = null;
95
- }
96
- }
97
- async function verifyJwtSignature(input) {
98
- let signatureBytes;
99
- try {
100
- signatureBytes = base64UrlDecode(input.parts.signatureB64u);
101
- } catch {
102
- return failedVerification("invalid_body", `Invalid ${input.tokenName} signature encoding`);
103
- }
104
- const dataBytes = new TextEncoder().encode(`${input.parts.headerB64u}.${input.parts.payloadB64u}`);
105
- const key = await crypto.subtle.importKey("jwk", input.jwk, {
106
- name: "RSASSA-PKCS1-v1_5",
107
- hash: "SHA-256"
108
- }, false, ["verify"]);
109
- if (!await crypto.subtle.verify({ name: "RSASSA-PKCS1-v1_5" }, key, toArrayBufferCopy(signatureBytes), toArrayBufferCopy(dataBytes))) return failedVerification("invalid_signature", `Invalid ${input.tokenName} signature`);
110
- return { ok: true };
111
- }
112
- function verifyGoogleTimeClaims(payload) {
113
- const nowSec = Math.floor(Date.now() / 1e3);
114
- const exp = Number(payload.exp);
115
- if (!Number.isFinite(exp) || exp <= 0) return failedVerification("invalid_claims", "Invalid Google id_token exp");
116
- if (nowSec >= exp) return failedVerification("expired", "Google id_token is expired");
117
- const nbfRaw = payload.nbf;
118
- if (nbfRaw !== void 0) {
119
- const nbf = Number(nbfRaw);
120
- if (!Number.isFinite(nbf)) return failedVerification("invalid_claims", "Invalid Google id_token nbf");
121
- if (nowSec < nbf) return failedVerification("not_yet_valid", "Google id_token is not yet valid");
122
- }
123
- return { ok: true };
124
- }
125
- function parseGoogleEmailVerified(value) {
126
- if (typeof value === "boolean") return value;
127
- if (typeof value === "string") return value.trim().toLowerCase() === "true";
128
- return null;
129
- }
130
- function buildGoogleLoginVerificationSuccess(input) {
131
- const result = {
132
- ok: true,
133
- verified: true,
134
- providerSubject: input.providerSubject,
135
- sub: input.sub
136
- };
137
- if (input.email) result.email = input.email;
138
- if (input.name) result.name = input.name;
139
- if (input.givenName) result.given_name = input.givenName;
140
- if (input.familyName) result.family_name = input.familyName;
141
- if (input.emailVerified !== null) result.emailVerified = input.emailVerified;
142
- if (input.hostedDomain) result.hostedDomain = input.hostedDomain;
143
- return result;
144
- }
145
- async function resolveLinkedProviderUserId(input) {
146
- let userId = input.providerSubject;
147
- try {
148
- const linked = await input.identityStore.getUserIdBySubject(input.providerSubject);
149
- if (linked) userId = linked;
150
- await input.identityStore.linkSubjectToUserId({
151
- userId,
152
- subject: input.providerSubject,
153
- allowMoveIfSoleIdentity: false
154
- });
155
- } catch {}
156
- return userId;
157
- }
158
- function buildGoogleLoginFacadeSuccess(input) {
159
- const result = {
160
- ok: true,
161
- verified: true,
162
- userId: input.userId,
163
- providerSubject: input.verified.providerSubject,
164
- sub: input.verified.sub
165
- };
166
- if (input.verified.email) result.email = input.verified.email;
167
- if (input.verified.name) result.name = input.verified.name;
168
- if (input.verified.given_name) result.given_name = input.verified.given_name;
169
- if (input.verified.family_name) result.family_name = input.verified.family_name;
170
- if (typeof input.verified.emailVerified === "boolean") result.emailVerified = input.verified.emailVerified;
171
- if (input.verified.hostedDomain) result.hostedDomain = input.verified.hostedDomain;
172
- return result;
173
- }
174
- async function verifyGoogleIdToken(input) {
175
- if (!input.config?.clientIds?.length) return failedVerification("not_configured", "Google OIDC is not configured on this server");
176
- const idToken = normalizeOptionalTrimmedString(input.request.idToken ?? input.request.id_token);
177
- if (!idToken) return failedVerification("invalid_body", "id_token is required");
178
- if (!requireWebCrypto()) return failedVerification("unsupported", "WebCrypto (crypto.subtle) is unavailable in this runtime");
179
- const parts = parseJwtParts({
180
- token: idToken,
181
- tokenName: "id_token"
182
- });
183
- if (!parts.ok) return parts;
184
- const kid = normalizeOptionalTrimmedString(parts.value.header.kid);
185
- const alg = normalizeOptionalTrimmedString(parts.value.header.alg);
186
- if (!kid) return failedVerification("invalid_body", "id_token header.kid is required");
187
- if (alg !== "RS256") return failedVerification("invalid_body", "id_token header.alg must be RS256");
188
- const jwk = (await getGoogleJwks(input.jwksState)).keysByKid.get(kid);
189
- if (!jwk) return failedVerification("unknown_kid", "Unknown Google key id (kid)");
190
- const signature = await verifyJwtSignature({
191
- jwk,
192
- parts: parts.value,
193
- tokenName: "Google id_token"
194
- });
195
- if (!signature.ok) return signature;
196
- const iss = normalizeOptionalTrimmedString(parts.value.payload.iss);
197
- if (iss !== "https://accounts.google.com" && iss !== "accounts.google.com") return failedVerification("invalid_issuer", "Invalid Google id_token issuer");
198
- const time = verifyGoogleTimeClaims(parts.value.payload);
199
- if (!time.ok) return time;
200
- const aud = parseJwtAud(parts.value.payload.aud);
201
- if (!aud.length) return failedVerification("invalid_claims", "Missing Google id_token aud");
202
- const allowedAudSet = new Set(input.config.clientIds);
203
- if (!aud.some((value) => allowedAudSet.has(value))) return failedVerification("invalid_audience", "Google id_token audience mismatch");
204
- const sub = normalizeOptionalTrimmedString(parts.value.payload.sub);
205
- if (!sub) return failedVerification("invalid_claims", "Missing Google id_token sub");
206
- const hostedDomain = normalizeOptionalTrimmedString(parts.value.payload.hd);
207
- if (input.config.hostedDomains?.length) {
208
- const allowHd = new Set(input.config.hostedDomains.map((d) => d.toLowerCase()));
209
- if (!hostedDomain || !allowHd.has(hostedDomain.toLowerCase())) return failedVerification("invalid_hosted_domain", "Google hosted domain is not allowed");
210
- }
211
- const email = normalizeOptionalTrimmedString(parts.value.payload.email);
212
- const name = normalizeOptionalTrimmedString(parts.value.payload.name);
213
- const givenName = normalizeOptionalTrimmedString(parts.value.payload.given_name);
214
- const familyName = normalizeOptionalTrimmedString(parts.value.payload.family_name);
215
- const emailVerified = parseGoogleEmailVerified(parts.value.payload.email_verified);
216
- return buildGoogleLoginVerificationSuccess({
217
- providerSubject: `google:${sub}`,
218
- sub,
219
- email,
220
- name,
221
- givenName,
222
- familyName,
223
- emailVerified,
224
- hostedDomain
225
- });
226
- }
227
- async function verifyGoogleLoginWithIdentityStore(input) {
228
- try {
229
- const verified = await verifyGoogleIdToken({
230
- request: input.request,
231
- config: input.config,
232
- jwksState: input.jwksState
233
- });
234
- if (!verified.ok) return verified;
235
- return buildGoogleLoginFacadeSuccess({
236
- verified,
237
- userId: await resolveLinkedProviderUserId({
238
- identityStore: input.identityStore,
239
- providerSubject: verified.providerSubject
240
- })
241
- });
242
- } catch (e) {
243
- return failedVerification("internal", errorMessage(e) || "Google OIDC verification failed");
244
- }
245
- }
246
- //#endregion
247
- export { createGoogleJwksState, getGoogleJwks, verifyGoogleIdToken, verifyGoogleLoginWithIdentityStore };
248
-
249
- //# sourceMappingURL=oidcVerification.js.map
@@ -1,30 +0,0 @@
1
- import { normalizeOptionalTrimmedString } from "../../shared-ts/src/utils/normalize.js";
2
- import { ensureEd25519Prefix } from "../../shared-ts/src/utils/near.js";
3
- import "../../shared-ts/src/utils/validation.js";
4
- import { ActionType } from "../../shared-ts/src/near/actions.js";
5
- //#region src/core/authService/registrationThresholdHelpers.ts
6
- function buildFullAccessAddKeyAction(publicKey) {
7
- return {
8
- action_type: ActionType.AddKey,
9
- public_key: publicKey,
10
- access_key: JSON.stringify({
11
- nonce: 0,
12
- permission: { FullAccess: {} }
13
- })
14
- };
15
- }
16
- function normalizeBootstrapPublicKeys(args) {
17
- const publicKey = ensureEd25519Prefix(normalizeOptionalTrimmedString(args.publicKey) || "");
18
- if (!publicKey) throw new Error("Missing or invalid bootstrap operational public key");
19
- const recoveryPublicKey = ensureEd25519Prefix(normalizeOptionalTrimmedString(args.recoveryPublicKey) || "");
20
- if (recoveryPublicKey && recoveryPublicKey === publicKey) throw new Error("Bootstrap recovery public key must differ from the operational public key");
21
- return {
22
- publicKey,
23
- ...recoveryPublicKey ? { recoveryPublicKey } : {},
24
- expectedPublicKeys: recoveryPublicKey ? [publicKey, recoveryPublicKey] : [publicKey]
25
- };
26
- }
27
- //#endregion
28
- export { buildFullAccessAddKeyAction, normalizeBootstrapPublicKeys };
29
-
30
- //# sourceMappingURL=registrationThresholdHelpers.js.map
@@ -1,45 +0,0 @@
1
- import { toPublicKeyStringFromSecretKey } from "../nearKeys.js";
2
- import { ensureSignerWasmRuntime } from "./wasm.js";
3
- //#region src/core/authService/runtime.ts
4
- function createInitialAuthServiceRuntimeState() {
5
- return {
6
- isInitialized: false,
7
- relayerPublicKey: "",
8
- signerWasmReady: false
9
- };
10
- }
11
- async function ensureAuthServiceSignerWasmReady(input) {
12
- const signerState = await ensureSignerWasmRuntime({
13
- state: { signerWasmReady: input.state.signerWasmReady },
14
- override: input.signerWasmOverride,
15
- logger: input.logger
16
- });
17
- return {
18
- ...input.state,
19
- signerWasmReady: signerState.signerWasmReady
20
- };
21
- }
22
- async function ensureAuthServiceRuntimeReady(input) {
23
- if (input.state.isInitialized) return input.state;
24
- let relayerPublicKey = "";
25
- try {
26
- relayerPublicKey = toPublicKeyStringFromSecretKey(input.relayerPrivateKey);
27
- } catch {
28
- input.logger.warn("Failed to derive public key from relayerPrivateKey; ensure it is in ed25519:<base58> format");
29
- }
30
- return {
31
- ...await ensureAuthServiceSignerWasmReady({
32
- state: {
33
- ...input.state,
34
- relayerPublicKey
35
- },
36
- signerWasmOverride: input.signerWasmOverride,
37
- logger: input.logger
38
- }),
39
- isInitialized: true
40
- };
41
- }
42
- //#endregion
43
- export { createInitialAuthServiceRuntimeState, ensureAuthServiceRuntimeReady, ensureAuthServiceSignerWasmReady };
44
-
45
- //# sourceMappingURL=runtime.js.map