@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.
- package/THIRD_PARTY_NOTICES.md +1 -9
- package/artifact-manifest.json +78 -33
- package/cloudflare-router-ab/build/deriver-a/build-stamp.json +1 -1
- package/cloudflare-router-ab/build/deriver-a/index.js +2 -2
- package/cloudflare-router-ab/build/deriver-a/index_bg.wasm +0 -0
- package/cloudflare-router-ab/build/deriver-b/build-stamp.json +1 -1
- package/cloudflare-router-ab/build/deriver-b/index.js +2 -2
- package/cloudflare-router-ab/build/deriver-b/index_bg.wasm +0 -0
- package/cloudflare-router-ab/build/local-tools/darwin-arm64/router_ab_local_init +0 -0
- package/cloudflare-router-ab/build/local-tools/darwin-x64/router_ab_local_init +0 -0
- package/cloudflare-router-ab/build/local-tools/linux-x64/router_ab_local_init +0 -0
- package/cloudflare-router-ab/build/router/build-stamp.json +1 -1
- package/cloudflare-router-ab/build/router/index.js +2 -2
- package/cloudflare-router-ab/build/router/index_bg.wasm +0 -0
- package/cloudflare-router-ab/build/signing-worker/build-stamp.json +1 -1
- package/cloudflare-router-ab/build/signing-worker/index.js +2 -2
- package/cloudflare-router-ab/build/signing-worker/index_bg.wasm +0 -0
- package/cloudflare-router-ab/build/tenant-root-control-plane/build-stamp.json +1 -1
- package/cloudflare-router-ab/build/tenant-root-control-plane/index.js +2 -2
- package/cloudflare-router-ab/build/tenant-root-control-plane/index_bg.wasm +0 -0
- package/cloudflare-router-ab/scripts/prepare-local-runtime-config.mjs +0 -2
- package/cloudflare-router-ab/scripts/start-local-role-workers.mjs +77 -20
- package/dist/esm/authorization/lifecycleRouting.js +62 -0
- package/dist/esm/authorization/service.js +35 -12
- package/dist/esm/cloud-host.js +20 -22
- package/dist/esm/core/EmailOtpRecords.js +1 -217
- package/dist/esm/core/EmailOtpStores.js +0 -859
- package/dist/esm/core/IdentityStore.js +2 -339
- package/dist/esm/core/ThresholdService/config.js +1 -9
- package/dist/esm/core/ThresholdService/index.js +0 -4
- package/dist/esm/core/ThresholdService/kv.js +1 -66
- package/dist/esm/core/ThresholdService/routerAb/ecdsaDerivationPoolFillHandlers.js +1 -13
- package/dist/esm/core/ThresholdService/routerAbNormalSigningPolicy.js +1 -11
- package/dist/esm/core/ThresholdService/stores/WalletSessionStore.js +0 -541
- package/dist/esm/core/ThresholdService/validation.js +2 -346
- package/dist/esm/core/WalletAuthMethodStore.js +2 -123
- package/dist/esm/core/WalletStore.js +3 -209
- package/dist/esm/core/WebAuthnAuthenticatorStore.js +0 -202
- package/dist/esm/core/WebAuthnCredentialBindingStore.js +2 -182
- package/dist/esm/core/WebAuthnLoginChallengeStore.js +0 -52
- package/dist/esm/core/WebAuthnSyncChallengeStore.js +0 -54
- package/dist/esm/core/authService/emailOtpConfig.js +1 -195
- package/dist/esm/core/authService/emailOtpEnrollment.js +0 -110
- package/dist/esm/core/authService/emailOtpSeal.js +0 -63
- package/dist/esm/core/authService/nearTransactions.js +3 -98
- package/dist/esm/core/authService/rateLimits.js +0 -84
- package/dist/esm/core/authService/webauthn.js +2 -298
- package/dist/esm/core/authService/webauthnOidcHelpers.js +1 -24
- package/dist/esm/core/authService/webauthnWalletBinding.js +0 -37
- package/dist/esm/core/config.js +1 -95
- package/dist/esm/core/d1EcdsaSignerRead.js +1 -1
- package/dist/esm/core/d1IdentityStore.js +1 -2
- package/dist/esm/core/d1TenantStore.js +1 -24
- package/dist/esm/core/d1WalletAuthMethodStore.js +2 -5
- package/dist/esm/core/d1WalletStore.js +2 -2
- package/dist/esm/core/deviceLinking/linkedDeviceBootstrap.js +13 -0
- package/dist/esm/core/deviceLinking/linkedDeviceSession.js +20 -14
- package/dist/esm/core/deviceLinking/requestProof.js +9 -6
- package/dist/esm/core/emailOtpD1Statements.js +107 -94
- package/dist/esm/core/keyMaterialBrands.js +2 -12
- package/dist/esm/core/nearKeys.js +0 -1
- package/dist/esm/core/nearRelayerAccountProvisioning.js +6 -9
- package/dist/esm/core/passkeyCredentialClaims.js +8 -0
- package/dist/esm/core/routerAbSigning/RouterAbEcdsaPresignRuntime.js +2 -6
- package/dist/esm/core/routerAbSigning/RouterAbNormalSigningRuntime.js +2 -30
- package/dist/esm/core/thresholdEcdsaChainTarget.js +1 -4
- package/dist/esm/hosted-wallet-gateway.js +66 -43
- package/dist/esm/index.js +6 -19
- package/dist/esm/localHostedWalletGatewayHandler.js +12 -0
- package/dist/esm/localRegistrationSetupAuthority.js +89 -0
- package/dist/esm/router/auth/authRequestValidation.js +8 -16
- package/dist/esm/router/auth/webAuthnCredentialCodecs.js +0 -1
- package/dist/esm/router/cloudflare/d1/auth/d1AuthorizationAssembly.js +87 -0
- package/dist/esm/router/cloudflare/d1/auth/d1RouterApiAuthConfig.js +12 -2
- package/dist/esm/router/cloudflare/d1/auth/d1RouterApiAuthService.js +32 -281
- package/dist/esm/router/cloudflare/d1/authorization/authorizedOperationStatements.js +24 -22
- package/dist/esm/router/cloudflare/d1/authorization/d1AuthorizationStore.js +8 -6
- package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceAuthorityInstallService.js +12 -13
- package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceEd25519ExportRootStore.js +6 -1
- package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceEmailOtpGrantStore.js +12 -2
- package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceEmailOtpTargetFactor.js +4 -4
- package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceOwnerAuthorizationProvider.js +1 -1
- package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceRequestProofNonceStore.js +3 -9
- package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceRouteService.js +2 -1
- package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceSessionStore.js +89 -7
- package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceTargetCredentialProvider.js +23 -14
- package/dist/esm/router/cloudflare/d1/ed25519Yao/d1Ed25519YaoCapabilityPersistence.js +9 -6
- package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpChallengeIssuer.js +0 -1
- package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpChallengeService.js +0 -1
- package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpChallengeStore.js +1 -1
- package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpChallengeVerifier.js +0 -1
- package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpEnrollmentStore.js +1 -1
- package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpGrantStore.js +1 -7
- package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpRateLimitStore.js +19 -13
- package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpRecords.js +0 -1
- package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpRecoveryService.js +0 -1
- package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpRegistrationEnrollmentFinalizer.js +2 -2
- package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpServerSealRuntime.js +0 -1
- package/dist/esm/router/cloudflare/d1/emailOtp/d1GoogleEmailOtpRegistrationAttemptStore.js +44 -12
- package/dist/esm/router/cloudflare/d1/emailOtp/d1GoogleEmailOtpRegistrationRecords.js +1 -49
- package/dist/esm/router/cloudflare/d1/emailOtp/d1GoogleEmailOtpSessionResolver.js +19 -31
- package/dist/esm/router/cloudflare/d1/emailOtp/d1GoogleRegistrationCompletion.js +85 -0
- package/dist/esm/router/cloudflare/d1/identity/d1IdentityRecords.js +0 -1
- package/dist/esm/router/cloudflare/d1/identity/d1IdentityService.js +0 -48
- package/dist/esm/router/cloudflare/d1/near/d1SponsoredNearAccount.js +242 -0
- package/dist/esm/router/cloudflare/d1/oidc/d1OidcBoundary.js +0 -1
- package/dist/esm/router/cloudflare/d1/oidc/d1OidcVerificationService.js +2 -29
- package/dist/esm/router/cloudflare/d1/oidc/googleOidcToken.js +41 -0
- package/dist/esm/router/cloudflare/d1/passkeyCustody/d1PasskeyCustodyRouteService.js +5 -0
- package/dist/esm/router/cloudflare/d1/passkeyCustody/d1WalletCustodyCommitStore.js +34 -0
- package/dist/esm/router/cloudflare/d1/registration/d1RegistrationCeremonyRecordStore.js +9 -3
- package/dist/esm/router/cloudflare/d1/registration/d1RegistrationCeremonyRecords.js +7 -13
- package/dist/esm/router/cloudflare/d1/registration/d1RegistrationCeremonyStore.js +25 -13
- package/dist/esm/router/cloudflare/d1/registration/d1RegistrationIntentService.js +0 -1
- package/dist/esm/router/cloudflare/d1/registration/d1RegistrationSetupSupport.js +74 -0
- package/dist/esm/router/cloudflare/d1/registration/d1WalletRegistrationCommitStore.js +7 -1
- package/dist/esm/router/cloudflare/d1/registration/d1WalletRegistrationService.js +69 -238
- package/dist/esm/router/cloudflare/d1/registration/d1WalletRegistrationSetup.js +12 -56
- package/dist/esm/router/cloudflare/d1/registration/d1WalletRegistrationSetupExecution.js +155 -0
- package/dist/esm/router/cloudflare/d1/registration/walletRegistrationEstablishedSessionIssuer.js +1 -3
- package/dist/esm/router/cloudflare/d1/signingAdmission/d1RouterAbNormalSigningAdmissionStore.js +12 -6
- package/dist/esm/router/cloudflare/d1/wallet/d1WalletAddSignerFinalizeRecord.js +68 -0
- package/dist/esm/router/cloudflare/d1/wallet/d1WalletAddSignerService.js +7 -54
- package/dist/esm/router/cloudflare/d1/wallet/d1WalletAuthMethodService.js +9 -8
- package/dist/esm/router/cloudflare/d1/wallet/d1WalletAuthorityStore.js +2 -142
- package/dist/esm/router/cloudflare/d1/webauthn/d1WebAuthnAuthService.js +25 -4
- package/dist/esm/router/cloudflare/d1/webauthn/d1WebAuthnRecords.js +4 -70
- package/dist/esm/router/cloudflare/d1/webauthn/d1WebAuthnStore.js +23 -7
- package/dist/esm/router/cloudflare/runtime/staticWalletConsoleBinding.js +1 -0
- package/dist/esm/router/cloudflare/runtime/walletConsoleOps.js +1 -0
- package/dist/esm/router/cloudflare/runtime/walletConsoleOpsClient.js +5 -0
- package/dist/esm/router/cloudflare/runtime/walletGateway.js +1 -1
- package/dist/esm/router/cloudflare/runtime/walletRuntimeOps.js +16 -4
- package/dist/esm/router/cloudflare-adaptor.js +1 -2
- package/dist/esm/router/cloudflare.js +1342 -1733
- package/dist/esm/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistration.js +11 -8
- package/dist/esm/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistrationPartitionedStateStore.js +3 -2
- package/dist/esm/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistrationPartitioning.js +6 -6
- package/dist/esm/router/domains/ed25519Yao/export/routerAbEd25519YaoExport.js +6 -6
- package/dist/esm/router/domains/ed25519Yao/export/routerAbEd25519YaoExportRequestScopedCloudflare.js +3 -0
- package/dist/esm/router/domains/ed25519Yao/recovery/routerAbEd25519YaoRecoveryRequestScopedCloudflare.js +8 -0
- package/dist/esm/router/domains/emailOtp/emailOtpRequestValidation.js +0 -1
- package/dist/esm/router/domains/passkeyCustody/passkeyCustodyEnvelopeRetrieval.js +2 -8
- package/dist/esm/router/domains/passkeyCustody/walletCustodyRegistrationCommit.js +2 -8
- package/dist/esm/router/domains/signingOperations/routerAbPrivateSigningWorker.js +5 -19
- package/dist/esm/router/domains/signingOperations/walletExecutionAdmission.js +2 -3
- package/dist/esm/router/domains/walletRegistration/walletRegistrationReservation.js +70 -0
- package/dist/esm/router/domains/walletRegistration/walletRegistrationRoutes.js +10 -11
- package/dist/esm/router/domains/walletRegistration/walletRegistrationSetupPayload.js +2 -3
- package/dist/esm/router/domains/walletUnlock/walletUnlockRouteHandlers.js +14 -0
- package/dist/esm/router/express.js +574 -479
- package/dist/esm/router/framework/http.js +2 -0
- package/dist/esm/router/framework/registrationSetupDispatch.js +14 -0
- package/dist/esm/router/framework/ror/normalize.js +0 -1
- package/dist/esm/router/framework/ror/options.js +0 -1
- package/dist/esm/router/framework/ror/provider.js +0 -1
- package/dist/esm/router/framework/ror/staticProvider.js +0 -1
- package/dist/esm/router/framework/routeDefinitions.js +1 -2
- package/dist/esm/router/framework/routerApiWebhooks.js +0 -1
- package/dist/esm/router/ror.js +0 -1
- package/dist/esm/router/transport/fetch/createFetchRouter.js +0 -2
- package/dist/esm/router/transport/fetch/routes/auth.js +2 -0
- package/dist/esm/router/transport/fetch/routes/deviceLinking.js +36 -147
- package/dist/esm/router/transport/fetch/routes/deviceLinkingOwnerAuthorization.js +3 -2
- package/dist/esm/router/transport/fetch/routes/deviceLinkingResponses.js +130 -0
- package/dist/esm/router/transport/fetch/routes/ecdsaOperationStepUpFactor.js +171 -0
- package/dist/esm/router/transport/fetch/routes/passkeyCustody.js +1 -0
- package/dist/esm/router/transport/fetch/routes/syncAccount.js +7 -2
- package/dist/esm/router/transport/fetch/routes/thresholdEcdsa.js +19 -115
- package/dist/esm/router/transport/fetch/routes/walletRegistration.js +3 -1
- package/dist/esm/shared-ts/src/authorization/walletSessionIssuance.js +0 -1
- package/dist/esm/shared-ts/src/device-linking/authorityActivation.js +0 -2
- package/dist/esm/shared-ts/src/device-linking/contracts.js +16 -1
- package/dist/esm/shared-ts/src/device-linking/digests.js +1 -8
- package/dist/esm/shared-ts/src/near/actions.js +0 -1
- package/dist/esm/shared-ts/src/near/nearClient.js +0 -2
- package/dist/esm/shared-ts/src/signing-lanes/evmFamilySigningKeySlotId.js +1 -1
- package/dist/esm/shared-ts/src/signing-lanes/index.js +1 -6
- package/dist/esm/shared-ts/src/signing-lanes/ownerContinuity.js +1 -1
- package/dist/esm/shared-ts/src/signing-lanes/participantDigest.js +2 -81
- package/dist/esm/shared-ts/src/signing-lanes/participants.js +1 -219
- package/dist/esm/shared-ts/src/signing-lanes/recordParsers.js +0 -3
- package/dist/esm/shared-ts/src/tenant-root/tenantRootOperationRecord.js +1 -2
- package/dist/esm/shared-ts/src/threshold/ecdsaDerivationRoleLocalBootstrap.js +0 -1
- package/dist/esm/shared-ts/src/threshold/keyMaterialBrands.js +1 -22
- package/dist/esm/shared-ts/src/threshold/participants.js +0 -1
- package/dist/esm/shared-ts/src/threshold/signingRootScope.js +0 -1
- package/dist/esm/shared-ts/src/utils/addWalletAuthMethod.js +4 -13
- package/dist/esm/shared-ts/src/utils/canonicalPrimitives.js +1 -7
- package/dist/esm/shared-ts/src/utils/domainIds.js +1 -16
- package/dist/esm/shared-ts/src/utils/ecdsaCapabilityActivation.js +1 -11
- package/dist/esm/shared-ts/src/utils/ecdsaKeyFactsInventory.js +0 -1
- package/dist/esm/shared-ts/src/utils/errors.js +1 -19
- package/dist/esm/shared-ts/src/utils/near.js +1 -1
- package/dist/esm/shared-ts/src/utils/registrationEstablishedSession.js +1 -1
- package/dist/esm/shared-ts/src/utils/registrationIds.js +1 -5
- package/dist/esm/shared-ts/src/utils/registrationIntent.js +0 -1
- package/dist/esm/shared-ts/src/utils/registrationSetupOperation.js +8 -0
- package/dist/esm/shared-ts/src/utils/registrationSignerPlan.js +1 -1
- package/dist/esm/shared-ts/src/utils/routerAbEcdsaDerivation.js +0 -1
- package/dist/esm/shared-ts/src/utils/validation.js +1 -5
- package/dist/esm/shared-ts/src/utils/walletAuthAuthority.js +0 -1
- package/dist/esm/shared-ts/src/utils/walletManagementProtocol.js +6 -0
- package/dist/esm/shared-ts/src/utils/wireSchema.js +2 -13
- package/dist/esm/shared-ts/src/wallet-recovery/backupAcknowledgement.js +6 -24
- package/dist/esm/shared-ts/src/wallet-recovery/recoveryCodeLocator.js +0 -1
- package/dist/esm/shared-ts/src/wallet-recovery/recoveryKeyId.js +5 -6
- package/dist/esm/storage/d1Sql.js +1 -7
- package/dist/esm/threshold/session/signingSessionSeal/crypto/cipher.js +0 -1
- package/dist/esm/threshold/session/signingSessionSeal/guards/backends.js +1 -2
- package/dist/esm/threshold/session/signingSessionSeal/idempotencyBackends.js +0 -1
- package/dist/esm/threshold/session/signingSessionSeal/idempotencyRecords.js +0 -1
- package/dist/esm/threshold/session/signingSessionSeal/options.js +0 -1
- package/dist/esm/wasm/evm_crypto/pkg/evm_crypto_bg.wasm +0 -0
- package/dist/esm/wasm/near_signer/pkg/wasm_signer_worker.js +0 -611
- package/dist/esm/wasm/near_signer/pkg/wasm_signer_worker_bg.wasm +0 -0
- package/dist/esm/wasm/shamir3pass_runtime/pkg/shamir3pass_runtime_bg.wasm +0 -0
- package/dist/types/shared-ts/src/authorization/capabilityKinds.d.ts +0 -4
- package/dist/types/shared-ts/src/device-linking/contracts.d.ts +1 -0
- package/dist/types/shared-ts/src/signing-lanes/evmFamilySigningKeySlotId.d.ts +0 -2
- package/dist/types/shared-ts/src/signing-lanes/execution.d.ts +0 -11
- package/dist/types/shared-ts/src/signing-lanes/ids.d.ts +2 -7
- package/dist/types/shared-ts/src/signing-lanes/index.d.ts +0 -4
- package/dist/types/shared-ts/src/signing-lanes/ownerContinuity.d.ts +0 -1
- package/dist/types/shared-ts/src/signing-lanes/participantDigest.d.ts +0 -18
- package/dist/types/shared-ts/src/signing-lanes/participants.d.ts +6 -35
- package/dist/types/shared-ts/src/signing-lanes/rotation.d.ts +6 -843
- package/dist/types/shared-ts/src/threshold/keyMaterialBrands.d.ts +0 -10
- package/dist/types/shared-ts/src/threshold/participants.d.ts +1 -1
- package/dist/types/shared-ts/src/utils/addWalletAuthMethod.d.ts +1 -133
- package/dist/types/shared-ts/src/utils/addWalletAuthMethod.typecheck.d.ts +4 -18
- package/dist/types/shared-ts/src/utils/domainIds.d.ts +0 -12
- package/dist/types/shared-ts/src/utils/errors.d.ts +0 -4
- package/dist/types/shared-ts/src/utils/near.d.ts +0 -20
- package/dist/types/shared-ts/src/utils/normalize.d.ts +0 -2
- package/dist/types/shared-ts/src/utils/registrationSetupOperation.d.ts +3 -0
- package/dist/types/shared-ts/src/utils/validation.d.ts +1 -3
- package/dist/types/shared-ts/src/utils/walletCapabilityBindings.d.ts +0 -1
- package/dist/types/shared-ts/src/utils/walletManagementProtocol.d.ts +3 -0
- package/dist/types/shared-ts/src/utils/wireSchema.d.ts +0 -2
- package/dist/types/shared-ts/src/wallet-recovery/backupAcknowledgement.d.ts +0 -1
- package/dist/types/shared-ts/src/wallet-recovery/recoveryCodeReservation.d.ts +1 -10
- package/dist/types/shared-ts/src/wallet-recovery/recoveryCodes.d.ts +1 -3
- package/dist/types/shared-ts/src/wallet-recovery/recoveryKeyId.d.ts +5 -21
- package/dist/types/wallet-server/src/authorization/lifecycleRouting.d.ts +32 -0
- package/dist/types/wallet-server/src/authorization/lifecycleRouting.typecheck.d.ts +2 -0
- package/dist/types/wallet-server/src/authorization/recoveryRouting.d.ts +22 -0
- package/dist/types/wallet-server/src/authorization/recoveryRouting.typecheck.d.ts +2 -0
- package/dist/types/wallet-server/src/authorization/service.d.ts +8 -1
- package/dist/types/wallet-server/src/authorization/sessionRouting.d.ts +20 -0
- package/dist/types/wallet-server/src/authorization/sessionRouting.typecheck.d.ts +2 -0
- package/dist/types/wallet-server/src/cloud-host.d.ts +31 -9
- package/dist/types/wallet-server/src/core/EmailOtpRecords.d.ts +1 -22
- package/dist/types/wallet-server/src/core/EmailOtpStores.d.ts +1 -79
- package/dist/types/wallet-server/src/core/IdentityStore.d.ts +0 -10
- package/dist/types/wallet-server/src/core/RegistrationCeremonyStore.d.ts +0 -1
- package/dist/types/wallet-server/src/core/ThresholdService/config.d.ts +0 -2
- package/dist/types/wallet-server/src/core/ThresholdService/index.d.ts +1 -3
- package/dist/types/wallet-server/src/core/ThresholdService/kv.d.ts +0 -7
- package/dist/types/wallet-server/src/core/ThresholdService/routerAb/ecdsaDerivationPoolFillHandlers.d.ts +0 -3
- package/dist/types/wallet-server/src/core/ThresholdService/routerAbNormalSigningPolicy.d.ts +0 -1
- package/dist/types/wallet-server/src/core/ThresholdService/stores/WalletSessionStore.d.ts +7 -19
- package/dist/types/wallet-server/src/core/ThresholdService/validation.d.ts +0 -34
- package/dist/types/wallet-server/src/core/WalletAuthMethodStore.d.ts +1 -5
- package/dist/types/wallet-server/src/core/WalletStore.d.ts +0 -3
- package/dist/types/wallet-server/src/core/WebAuthnAuthenticatorStore.d.ts +0 -20
- package/dist/types/wallet-server/src/core/WebAuthnCredentialBindingStore.d.ts +1 -27
- package/dist/types/wallet-server/src/core/WebAuthnLoginChallengeStore.d.ts +2 -16
- package/dist/types/wallet-server/src/core/WebAuthnSyncChallengeStore.d.ts +22 -14
- package/dist/types/wallet-server/src/core/authService/emailOtpConfig.d.ts +0 -24
- package/dist/types/wallet-server/src/core/authService/emailOtpEnrollment.d.ts +1 -70
- package/dist/types/wallet-server/src/core/authService/emailOtpSeal.d.ts +0 -13
- package/dist/types/wallet-server/src/core/authService/githubOAuth.d.ts +2 -1
- package/dist/types/wallet-server/src/core/authService/nearTransactions.d.ts +1 -39
- package/dist/types/wallet-server/src/core/authService/rateLimits.d.ts +0 -17
- package/dist/types/wallet-server/src/core/authService/webauthn.d.ts +0 -125
- package/dist/types/wallet-server/src/core/authService/webauthnOidcHelpers.d.ts +0 -3
- package/dist/types/wallet-server/src/core/authService/webauthnVerificationOutcomes.d.ts +1 -1
- package/dist/types/wallet-server/src/core/authService/webauthnWalletBinding.d.ts +0 -12
- package/dist/types/wallet-server/src/core/config.d.ts +0 -10
- package/dist/types/wallet-server/src/core/d1IdentityStore.d.ts +0 -2
- package/dist/types/wallet-server/src/core/d1TenantStore.d.ts +0 -7
- package/dist/types/wallet-server/src/core/d1WalletAuthMethodStore.d.ts +0 -1
- package/dist/types/wallet-server/src/core/deviceLinking/linkedDeviceBootstrap.d.ts +19 -0
- package/dist/types/wallet-server/src/core/deviceLinking/linkedDeviceSession.d.ts +8 -6
- package/dist/types/wallet-server/src/core/deviceLinking/requestProof.d.ts +2 -5
- package/dist/types/wallet-server/src/core/emailOtpD1Statements.d.ts +10 -7
- package/dist/types/wallet-server/src/core/keyMaterialBrands.d.ts +1 -5
- package/dist/types/wallet-server/src/core/nearRelayerAccountProvisioning.d.ts +0 -1
- package/dist/types/wallet-server/src/core/passkeyCredentialClaims.d.ts +9 -0
- package/dist/types/wallet-server/src/core/routerAbSigning/RouterAbEcdsaPresignRuntime.d.ts +0 -2
- package/dist/types/wallet-server/src/core/routerAbSigning/RouterAbNormalSigningRuntime.d.ts +0 -2
- package/dist/types/wallet-server/src/core/threeRouteRegistrationContracts.d.ts +1 -92
- package/dist/types/wallet-server/src/core/threeRouteRegistrationContracts.typecheck.d.ts +4 -52
- package/dist/types/wallet-server/src/core/thresholdEcdsaChainTarget.d.ts +0 -1
- package/dist/types/wallet-server/src/core/types.d.ts +0 -299
- package/dist/types/wallet-server/src/hosted-wallet-gateway.d.ts +15 -3
- package/dist/types/wallet-server/src/index.d.ts +8 -13
- package/dist/types/wallet-server/src/localRegistrationSetupAuthority.d.ts +13 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/auth/d1AuthorizationAssembly.d.ts +23 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/auth/d1RouterApiAuthConfig.d.ts +25 -3
- package/dist/types/wallet-server/src/router/cloudflare/d1/authorization/d1AuthorizationStore.d.ts +1 -1
- package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceAuthorityInstallService.d.ts +3 -1
- package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceEmailOtpGrantStore.d.ts +7 -1
- package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceRequestProofNonceStore.d.ts +1 -10
- package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceRouteService.d.ts +4 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceSessionStore.d.ts +6 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceTargetPlanner.d.ts +1 -13
- package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpChallengeService.d.ts +2 -2
- package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpChallengeStore.d.ts +1 -1
- package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpGrantStore.d.ts +0 -2
- package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpRateLimitStore.d.ts +18 -2
- package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1GoogleEmailOtpRegistrationAttemptStore.d.ts +29 -1
- package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1GoogleEmailOtpRegistrationRecords.d.ts +3 -16
- package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1GoogleEmailOtpSessionResolver.d.ts +7 -2
- package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1GoogleRegistrationCompletion.d.ts +23 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/identity/d1IdentityService.d.ts +0 -12
- package/dist/types/wallet-server/src/router/cloudflare/d1/near/d1SponsoredNearAccount.d.ts +24 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/near/d1SponsoredNearAccount.typecheck.d.ts +2 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/oidc/d1OidcVerificationService.d.ts +0 -1
- package/dist/types/wallet-server/src/router/cloudflare/d1/oidc/googleOidcToken.d.ts +4 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/passkeyCustody/d1PasskeyCustodyRouteService.d.ts +5 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/passkeyCustody/d1WalletCustodyCommitStore.d.ts +9 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1RegistrationCeremonyRecordStore.d.ts +1 -1
- package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1RegistrationCeremonyRecords.d.ts +10 -11
- package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1RegistrationCeremonyStore.d.ts +3 -2
- package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1RegistrationSetupSupport.d.ts +51 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1WalletRegistrationCommitStore.d.ts +3 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1WalletRegistrationService.d.ts +30 -47
- package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1WalletRegistrationSetup.d.ts +3 -30
- package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1WalletRegistrationSetupExecution.d.ts +11 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletAddSignerFinalizeRecord.d.ts +27 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletAddSignerService.d.ts +1 -10
- package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletAuthMethodService.d.ts +2 -2
- package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletAuthorityStore.d.ts +0 -4
- package/dist/types/wallet-server/src/router/cloudflare/d1/webauthn/d1WebAuthnAuthService.d.ts +3 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/webauthn/d1WebAuthnRecords.d.ts +0 -13
- package/dist/types/wallet-server/src/router/cloudflare/d1/webauthn/d1WebAuthnStore.d.ts +23 -10
- package/dist/types/wallet-server/src/router/cloudflare/d1/webauthn/d1WebAuthnStore.typecheck.d.ts +2 -0
- package/dist/types/wallet-server/src/router/cloudflare/runtime/cloudflare.types.d.ts +0 -2
- package/dist/types/wallet-server/src/router/cloudflare/runtime/walletConsoleOps.d.ts +1 -0
- package/dist/types/wallet-server/src/router/cloudflare/runtime/walletConsoleOpsClient.d.ts +2 -0
- package/dist/types/wallet-server/src/router/cloudflare/runtime/walletGateway.d.ts +1 -1
- package/dist/types/wallet-server/src/router/cloudflare/runtime/walletRuntimeOps.d.ts +3 -0
- package/dist/types/wallet-server/src/router/cloudflare-adaptor.d.ts +0 -1
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistration.d.ts +1 -1
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistrationPartitioning.d.ts +2 -2
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/export/routerAbEd25519YaoExport.d.ts +2 -2
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/export/routerAbEd25519YaoExport.typecheck.d.ts +2 -0
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/export/routerAbEd25519YaoExportRequestScopedCloudflare.d.ts +2 -0
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/recovery/routerAbEd25519YaoRecoveryRequestScopedCloudflare.d.ts +2 -0
- package/dist/types/wallet-server/src/router/domains/passkeyCustody/passkeyCustodyEnvelopeRetrieval.d.ts +0 -2
- package/dist/types/wallet-server/src/router/domains/passkeyCustody/walletCustodyRegistrationCommit.d.ts +0 -3
- package/dist/types/wallet-server/src/router/domains/signingOperations/routerAbPrivateSigningWorker.d.ts +0 -17
- package/dist/types/wallet-server/src/router/domains/signingOperations/walletExecutionAdmission.d.ts +1 -2
- package/dist/types/wallet-server/src/router/domains/walletRegistration/walletRegistrationInputs.d.ts +1 -0
- package/dist/types/wallet-server/src/router/domains/walletRegistration/walletRegistrationReservation.d.ts +51 -0
- package/dist/types/wallet-server/src/router/domains/walletRegistration/walletRegistrationRoutes.d.ts +2 -10
- package/dist/types/wallet-server/src/router/domains/walletRegistration/walletRegistrationSetupPayload.d.ts +2 -2
- package/dist/types/wallet-server/src/router/framework/authServicePort.d.ts +14 -34
- package/dist/types/wallet-server/src/router/framework/googleLoginResolution.typecheck.d.ts +2 -0
- package/dist/types/wallet-server/src/router/framework/registrationSetupDispatch.d.ts +13 -0
- package/dist/types/wallet-server/src/router/transport/fetch/routes/deviceLinking.d.ts +1 -1
- package/dist/types/wallet-server/src/router/transport/fetch/routes/deviceLinkingResponses.d.ts +17 -0
- package/dist/types/wallet-server/src/router/transport/fetch/routes/ecdsaOperationStepUpFactor.d.ts +37 -0
- package/dist/types/wallet-server/src/storage/d1Sql.d.ts +0 -1
- package/migrations/d1-signer/0040_namespace_home_challenges.sql +16 -0
- package/migrations/d1-signer/0041_step_up_admission_expiry.sql +28 -0
- package/migrations/d1-signer/0042_deployment_resource_challenges.sql +4 -0
- package/migrations/d1-signer/0043_google_registration_candidate_claim.sql +2 -0
- package/migrations/d1-signer/0044_linked_device_bootstrap_imports.sql +6 -0
- package/migrations/d1-signer/0045_wallet_owned_capability_receipts.sql +29 -0
- package/migrations/d1-signer/0046_wallet_owned_signing_abuse.sql +41 -0
- package/migrations/d1-signer/0047_remove_unused_near_public_keys.sql +2 -0
- package/migrations/d1-signer/0048_operation_owner_scope.sql +45 -0
- package/package.json +2 -3
- package/src/README.md +11 -3
- package/dist/esm/core/AuthService.js +0 -2
- package/dist/esm/core/NearPublicKeyStore.js +0 -200
- package/dist/esm/core/ThresholdService/stores/CloudflareDurableObjectStore.js +0 -397
- package/dist/esm/core/ThresholdService/stores/KeyStore.js +0 -140
- package/dist/esm/core/ThresholdService/stores/SessionStore.js +0 -361
- package/dist/esm/core/ThresholdService/stores/StoreConfig.js +0 -13
- package/dist/esm/core/ThresholdService/stores/exportReplayGuard.js +0 -7
- package/dist/esm/core/authService/AuthService.js +0 -594
- package/dist/esm/core/authService/bytes.js +0 -19
- package/dist/esm/core/authService/configValues.js +0 -15
- package/dist/esm/core/authService/emailOtpChallengeOperations.js +0 -123
- package/dist/esm/core/authService/emailOtpChallengeProof.js +0 -183
- package/dist/esm/core/authService/emailOtpChallengeVerification.js +0 -264
- package/dist/esm/core/authService/emailOtpChallenges.js +0 -225
- package/dist/esm/core/authService/emailOtpDelivery.js +0 -134
- package/dist/esm/core/authService/emailOtpGrant.js +0 -43
- package/dist/esm/core/authService/emailOtpRegistrationEnrollment.js +0 -144
- package/dist/esm/core/authService/emailOtpUnlock.js +0 -174
- package/dist/esm/core/authService/googleEmailOtpOperations.js +0 -141
- package/dist/esm/core/authService/googleEmailOtpRegistration.js +0 -587
- package/dist/esm/core/authService/identity.js +0 -42
- package/dist/esm/core/authService/identityOperations.js +0 -32
- package/dist/esm/core/authService/nearAccountOperations.js +0 -229
- package/dist/esm/core/authService/nearPublicKeyMetadata.js +0 -108
- package/dist/esm/core/authService/oidcVerification.js +0 -249
- package/dist/esm/core/authService/registrationThresholdHelpers.js +0 -30
- package/dist/esm/core/authService/runtime.js +0 -45
- package/dist/esm/core/authService/storeRegistry.js +0 -102
- package/dist/esm/core/authService/thresholdStoreSummary.js +0 -32
- package/dist/esm/core/authService/webauthnAuthority.js +0 -17
- package/dist/esm/core/defaultConfigsServer.js +0 -9
- package/dist/esm/core/hostedAccountIds.js +0 -225
- package/dist/esm/core/routerAbSigning/createRouterAbSigningRuntimes.js +0 -84
- package/dist/esm/core/signingLanes/LaneAggregateRevocationApplicationService.js +0 -86
- package/dist/esm/core/signingLanes/LaneEnrollmentActivation.js +0 -324
- package/dist/esm/core/signingLanes/LaneEnrollmentRevocation.js +0 -173
- package/dist/esm/core/signingLanes/LaneLifecycleApplicationService.js +0 -198
- package/dist/esm/core/signingLanes/ecdsaServerRetirement.js +0 -73
- package/dist/esm/core/signingLanes/ed25519ServerRetirement.js +0 -68
- package/dist/esm/core/signingLanes/signingWorkerLaneMaterialIdentity.js +0 -0
- package/dist/esm/core/storeBackends.js +0 -208
- package/dist/esm/core/utils.js +0 -14
- package/dist/esm/core/webAuthnStoreBackends.js +0 -198
- package/dist/esm/router/cloudflare/d1/near/d1NearPublicKeyStore.js +0 -49
- package/dist/esm/router/cloudflare/d1/signingLanes/d1EcdsaLanePrivateBindingResolver.js +0 -10
- package/dist/esm/router/cloudflare/d1/signingLanes/d1LaneAggregateRevocationApplicationService.js +0 -22
- package/dist/esm/router/cloudflare/d1/signingLanes/d1LaneEffectJournalStore.js +0 -166
- package/dist/esm/router/cloudflare/d1/signingLanes/d1LaneEnrollmentGateway.js +0 -38
- package/dist/esm/router/cloudflare/d1/signingLanes/d1LaneLifecycleApplicationService.js +0 -20
- package/dist/esm/router/cloudflare/d1/signingLanes/d1LaneLifecycleStore.js +0 -1459
- package/dist/esm/router/cloudflare/d1/signingLanes/d1LaneLockStore.js +0 -114
- package/dist/esm/router/cloudflare/d1/signingLanes/d1LaneProtocolCommitter.js +0 -16
- package/dist/esm/router/cloudflare/d1/signingLanes/d1LaneRecords.js +0 -171
- package/dist/esm/router/cloudflare/d1/signingLanes/index.js +0 -10
- package/dist/esm/router/cloudflare/durableObjects/thresholdStore.js +0 -397
- package/dist/esm/router/cloudflare/signingLanes/cloudflareLaneCurveExecution.js +0 -597
- package/dist/esm/router/cloudflare/signingLanes/cloudflareLaneProtocolCommitter.js +0 -273
- package/dist/esm/router/cloudflare/signingLanes/index.js +0 -4
- package/dist/esm/router/cloudflare/signingLanes/linkedDeviceEd25519CeremonyBinding.js +0 -32
- package/dist/esm/router/transport/fetch/routes/nearPublicKeys.js +0 -27
- package/dist/esm/shared-ts/src/signing-lanes/rotation.js +0 -8
- package/dist/esm/shared-ts/src/signing-lanes/rotationDigests.js +0 -358
- package/dist/esm/shared-ts/src/signing-lanes/rotationLifecycle.js +0 -313
- package/dist/esm/shared-ts/src/signing-lanes/rotationParsers.js +0 -532
- package/dist/esm/shared-ts/src/signing-lanes/rotationProtocolParsers.js +0 -323
- package/dist/esm/shared-ts/src/signing-lanes/rotationWireFields.js +0 -59
- package/dist/types/shared-ts/src/signing-lanes/participantDigest.typecheck.d.ts +0 -2
- package/dist/types/shared-ts/src/signing-lanes/rotation.typecheck.d.ts +0 -2
- package/dist/types/shared-ts/src/signing-lanes/rotationDigests.d.ts +0 -13
- package/dist/types/shared-ts/src/signing-lanes/rotationLifecycle.d.ts +0 -78
- package/dist/types/shared-ts/src/signing-lanes/rotationParsers.d.ts +0 -27
- package/dist/types/shared-ts/src/signing-lanes/rotationProtocolParsers.d.ts +0 -6
- package/dist/types/shared-ts/src/signing-lanes/rotationWireFields.d.ts +0 -20
- package/dist/types/shared-ts/src/wallet-recovery/recoveryCodeAttempt.d.ts +0 -59
- package/dist/types/wallet-server/src/core/AuthService.d.ts +0 -3
- package/dist/types/wallet-server/src/core/NearPublicKeyStore.d.ts +0 -48
- package/dist/types/wallet-server/src/core/ThresholdService/stores/CloudflareDurableObjectStore.d.ts +0 -21
- package/dist/types/wallet-server/src/core/ThresholdService/stores/KeyStore.d.ts +0 -40
- package/dist/types/wallet-server/src/core/ThresholdService/stores/SessionStore.d.ts +0 -98
- package/dist/types/wallet-server/src/core/ThresholdService/stores/StoreConfig.d.ts +0 -4
- package/dist/types/wallet-server/src/core/ThresholdService/stores/ThresholdStoreConfig.typecheck.d.ts +0 -2
- package/dist/types/wallet-server/src/core/ThresholdService/stores/exportReplayGuard.d.ts +0 -3
- package/dist/types/wallet-server/src/core/authService/AuthService.d.ts +0 -490
- package/dist/types/wallet-server/src/core/authService/bytes.d.ts +0 -3
- package/dist/types/wallet-server/src/core/authService/configValues.d.ts +0 -7
- package/dist/types/wallet-server/src/core/authService/emailOtpChallengeOperations.d.ts +0 -109
- package/dist/types/wallet-server/src/core/authService/emailOtpChallengeProof.d.ts +0 -169
- package/dist/types/wallet-server/src/core/authService/emailOtpChallengeVerification.d.ts +0 -47
- package/dist/types/wallet-server/src/core/authService/emailOtpChallenges.d.ts +0 -86
- package/dist/types/wallet-server/src/core/authService/emailOtpDelivery.d.ts +0 -66
- package/dist/types/wallet-server/src/core/authService/emailOtpGrant.d.ts +0 -43
- package/dist/types/wallet-server/src/core/authService/emailOtpRegistrationEnrollment.d.ts +0 -49
- package/dist/types/wallet-server/src/core/authService/emailOtpUnlock.d.ts +0 -64
- package/dist/types/wallet-server/src/core/authService/googleEmailOtpOperations.d.ts +0 -126
- package/dist/types/wallet-server/src/core/authService/googleEmailOtpRegistration.d.ts +0 -169
- package/dist/types/wallet-server/src/core/authService/identity.d.ts +0 -25
- package/dist/types/wallet-server/src/core/authService/identityOperations.d.ts +0 -19
- package/dist/types/wallet-server/src/core/authService/nearAccountOperations.d.ts +0 -55
- package/dist/types/wallet-server/src/core/authService/nearPublicKeyMetadata.d.ts +0 -44
- package/dist/types/wallet-server/src/core/authService/oidcVerification.d.ts +0 -66
- package/dist/types/wallet-server/src/core/authService/registrationThresholdHelpers.d.ts +0 -11
- package/dist/types/wallet-server/src/core/authService/runtime.d.ts +0 -20
- package/dist/types/wallet-server/src/core/authService/storeRegistry.d.ts +0 -53
- package/dist/types/wallet-server/src/core/authService/thresholdStoreSummary.d.ts +0 -3
- package/dist/types/wallet-server/src/core/authService/webauthnAuthority.d.ts +0 -5
- package/dist/types/wallet-server/src/core/defaultConfigsServer.d.ts +0 -5
- package/dist/types/wallet-server/src/core/hostedAccountIds.d.ts +0 -16
- package/dist/types/wallet-server/src/core/routerAbSigning/createRouterAbSigningRuntimes.d.ts +0 -16
- package/dist/types/wallet-server/src/core/signingLanes/LaneAggregateRevocationApplicationService.d.ts +0 -36
- package/dist/types/wallet-server/src/core/signingLanes/LaneEffectJournalStore.d.ts +0 -62
- package/dist/types/wallet-server/src/core/signingLanes/LaneEnrollmentActivation.d.ts +0 -13
- package/dist/types/wallet-server/src/core/signingLanes/LaneEnrollmentRevocation.d.ts +0 -24
- package/dist/types/wallet-server/src/core/signingLanes/LaneLifecycleApplicationService.d.ts +0 -141
- package/dist/types/wallet-server/src/core/signingLanes/LaneLifecycleStore.d.ts +0 -228
- package/dist/types/wallet-server/src/core/signingLanes/ecdsaServerRetirement.d.ts +0 -58
- package/dist/types/wallet-server/src/core/signingLanes/ed25519ServerRetirement.d.ts +0 -30
- package/dist/types/wallet-server/src/core/signingLanes/signingWorkerLaneMaterialIdentity.d.ts +0 -4
- package/dist/types/wallet-server/src/core/storeBackends.d.ts +0 -83
- package/dist/types/wallet-server/src/core/utils.d.ts +0 -3
- package/dist/types/wallet-server/src/core/webAuthnStoreBackends.d.ts +0 -96
- package/dist/types/wallet-server/src/router/cloudflare/d1/near/d1NearPublicKeyStore.d.ts +0 -29
- package/dist/types/wallet-server/src/router/cloudflare/d1/signingLanes/d1EcdsaLanePrivateBindingResolver.d.ts +0 -4
- package/dist/types/wallet-server/src/router/cloudflare/d1/signingLanes/d1LaneAggregateRevocationApplicationService.d.ts +0 -4
- package/dist/types/wallet-server/src/router/cloudflare/d1/signingLanes/d1LaneEffectJournalStore.d.ts +0 -24
- package/dist/types/wallet-server/src/router/cloudflare/d1/signingLanes/d1LaneEnrollmentGateway.d.ts +0 -20
- package/dist/types/wallet-server/src/router/cloudflare/d1/signingLanes/d1LaneLifecycleApplicationService.d.ts +0 -13
- package/dist/types/wallet-server/src/router/cloudflare/d1/signingLanes/d1LaneLifecycleStore.d.ts +0 -51
- package/dist/types/wallet-server/src/router/cloudflare/d1/signingLanes/d1LaneLockStore.d.ts +0 -28
- package/dist/types/wallet-server/src/router/cloudflare/d1/signingLanes/d1LaneProtocolCommitter.d.ts +0 -5
- package/dist/types/wallet-server/src/router/cloudflare/d1/signingLanes/d1LaneRecords.d.ts +0 -107
- package/dist/types/wallet-server/src/router/cloudflare/d1/signingLanes/index.d.ts +0 -10
- package/dist/types/wallet-server/src/router/cloudflare/durableObjects/thresholdStore.d.ts +0 -18
- package/dist/types/wallet-server/src/router/cloudflare/signingLanes/cloudflareLaneCurveExecution.d.ts +0 -217
- package/dist/types/wallet-server/src/router/cloudflare/signingLanes/cloudflareLaneProtocolCommitter.d.ts +0 -73
- package/dist/types/wallet-server/src/router/cloudflare/signingLanes/index.d.ts +0 -4
- package/dist/types/wallet-server/src/router/cloudflare/signingLanes/linkedDeviceEd25519CeremonyBinding.d.ts +0 -6
- package/dist/types/wallet-server/src/router/transport/fetch/routes/nearPublicKeys.d.ts +0 -3
- /package/dist/esm/{core/signingLanes/LaneEffectJournalStore.js → authorization/recoveryRouting.js} +0 -0
- /package/dist/esm/{core/signingLanes/LaneLifecycleStore.js → authorization/sessionRouting.js} +0 -0
|
@@ -0,0 +1,242 @@
|
|
|
1
|
+
import { parseWalletId } from "../../../../shared-ts/src/utils/domainIds.js";
|
|
2
|
+
import { base64UrlEncode } from "../../../../shared-ts/src/utils/base64.js";
|
|
3
|
+
import { alphabetizeStringify, sha256BytesUtf8 } from "../../../../shared-ts/src/utils/digests.js";
|
|
4
|
+
import "../../../../shared-ts/src/utils/encoders.js";
|
|
5
|
+
import { createCloudflareD1VersionedJsonRecordStore } from "../versionedJson/d1VersionedJsonRecordStore.js";
|
|
6
|
+
import { runRouterAbEd25519YaoRegistrationSideEffectV1 } from "../../../domains/ed25519Yao/registration/routerAbEd25519YaoRegistrationSideEffectBoundary.js";
|
|
7
|
+
import { broadcastPreparedSponsoredNearAccountCreation, prepareSponsoredNearAccountCreationWithRelayer, preparedSponsoredNearAccountCreationArtifactFingerprint } from "../../../../core/nearRelayerAccountProvisioning.js";
|
|
8
|
+
//#region src/router/cloudflare/d1/near/d1SponsoredNearAccount.ts
|
|
9
|
+
/**
|
|
10
|
+
* Validates a persisted claim before it is trusted to skip a broadcast or to be
|
|
11
|
+
* replayed. An invalid record makes the D1 read fail, which leaves the effect
|
|
12
|
+
* uncertain and prevents any network action on unvalidated bytes.
|
|
13
|
+
*/
|
|
14
|
+
function parseSponsoredNearAccountSideEffectRecord(raw) {
|
|
15
|
+
if (raw === null || typeof raw !== "object" || Array.isArray(raw)) return null;
|
|
16
|
+
if (Reflect.get(raw, "operation") !== "finalize") return null;
|
|
17
|
+
const requestFingerprint = parseSideEffectFingerprint(Reflect.get(raw, "requestFingerprint"));
|
|
18
|
+
const preparedArtifactFingerprint = parseSideEffectFingerprint(Reflect.get(raw, "preparedArtifactFingerprint"));
|
|
19
|
+
if (requestFingerprint === null || preparedArtifactFingerprint === null) return null;
|
|
20
|
+
const claimedAtMs = Reflect.get(raw, "claimedAtMs");
|
|
21
|
+
if (!isNonNegativeSafeInteger(claimedAtMs)) return null;
|
|
22
|
+
const prepared = parseWalletSponsoredTransaction(Reflect.get(raw, "prepared"));
|
|
23
|
+
if (prepared === null) return null;
|
|
24
|
+
const kind = Reflect.get(raw, "kind");
|
|
25
|
+
if (kind === "router_ab_ed25519_yao_registration_side_effect_claim_v1") return {
|
|
26
|
+
kind: "router_ab_ed25519_yao_registration_side_effect_claim_v1",
|
|
27
|
+
operation: "finalize",
|
|
28
|
+
requestFingerprint,
|
|
29
|
+
preparedArtifactFingerprint,
|
|
30
|
+
claimedAtMs,
|
|
31
|
+
prepared
|
|
32
|
+
};
|
|
33
|
+
if (kind === "router_ab_ed25519_yao_registration_side_effect_completion_v1") {
|
|
34
|
+
const completedAtMs = Reflect.get(raw, "completedAtMs");
|
|
35
|
+
if (!isNonNegativeSafeInteger(completedAtMs)) return null;
|
|
36
|
+
const response = parseAccountCreationResult(Reflect.get(raw, "response"));
|
|
37
|
+
if (response === null) return null;
|
|
38
|
+
return {
|
|
39
|
+
kind: "router_ab_ed25519_yao_registration_side_effect_completion_v1",
|
|
40
|
+
operation: "finalize",
|
|
41
|
+
requestFingerprint,
|
|
42
|
+
preparedArtifactFingerprint,
|
|
43
|
+
claimedAtMs,
|
|
44
|
+
completedAtMs,
|
|
45
|
+
prepared,
|
|
46
|
+
response
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
return null;
|
|
50
|
+
}
|
|
51
|
+
function parsePreparedSponsoredNearAccountCreation(value) {
|
|
52
|
+
if (value === null || typeof value !== "object" || Array.isArray(value)) return null;
|
|
53
|
+
if (Reflect.get(value, "kind") !== "prepared_sponsored_near_account_creation_v1") return null;
|
|
54
|
+
const accountId = parseNonEmptyString(Reflect.get(value, "accountId"));
|
|
55
|
+
const publicKey = parseNonEmptyString(Reflect.get(value, "publicKey"));
|
|
56
|
+
const relayerAccountId = parseNonEmptyString(Reflect.get(value, "relayerAccountId"));
|
|
57
|
+
const relayerPublicKey = parseNonEmptyString(Reflect.get(value, "relayerPublicKey"));
|
|
58
|
+
const initialBalanceYocto = parseNonEmptyString(Reflect.get(value, "initialBalanceYocto"));
|
|
59
|
+
const transactionHash = parseNonEmptyString(Reflect.get(value, "transactionHash"));
|
|
60
|
+
const nextNonce = parseNonEmptyString(Reflect.get(value, "nextNonce"));
|
|
61
|
+
const blockHash = parseNonEmptyString(Reflect.get(value, "blockHash"));
|
|
62
|
+
const signedTransactionBorshB64u = parseBoundedBase64Url(Reflect.get(value, "signedTransactionBorshB64u"));
|
|
63
|
+
if (accountId === null || publicKey === null || relayerAccountId === null || relayerPublicKey === null || initialBalanceYocto === null || transactionHash === null || nextNonce === null || blockHash === null || signedTransactionBorshB64u === null) return null;
|
|
64
|
+
return {
|
|
65
|
+
kind: "prepared_sponsored_near_account_creation_v1",
|
|
66
|
+
accountId,
|
|
67
|
+
publicKey,
|
|
68
|
+
relayerAccountId,
|
|
69
|
+
relayerPublicKey,
|
|
70
|
+
initialBalanceYocto,
|
|
71
|
+
transactionHash,
|
|
72
|
+
nextNonce,
|
|
73
|
+
blockHash,
|
|
74
|
+
signedTransactionBorshB64u
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
function parseAccountCreationResult(value) {
|
|
78
|
+
if (value === null || typeof value !== "object" || Array.isArray(value)) return null;
|
|
79
|
+
const success = Reflect.get(value, "success");
|
|
80
|
+
if (typeof success !== "boolean") return null;
|
|
81
|
+
const accountId = parseOptionalString(Reflect.get(value, "accountId"));
|
|
82
|
+
const transactionHash = parseOptionalString(Reflect.get(value, "transactionHash"));
|
|
83
|
+
const error = parseOptionalString(Reflect.get(value, "error"));
|
|
84
|
+
const message = parseOptionalString(Reflect.get(value, "message"));
|
|
85
|
+
if ("accountId" in value && accountId === null || "transactionHash" in value && transactionHash === null || "error" in value && error === null || "message" in value && message === null) return null;
|
|
86
|
+
if (success && (accountId === void 0 || transactionHash === void 0)) return null;
|
|
87
|
+
const normalizedAccountId = accountId ?? void 0;
|
|
88
|
+
const normalizedTransactionHash = transactionHash ?? void 0;
|
|
89
|
+
const normalizedError = error ?? void 0;
|
|
90
|
+
const normalizedMessage = message ?? void 0;
|
|
91
|
+
return {
|
|
92
|
+
success,
|
|
93
|
+
...normalizedAccountId === void 0 ? {} : { accountId: normalizedAccountId },
|
|
94
|
+
...normalizedTransactionHash === void 0 ? {} : { transactionHash: normalizedTransactionHash },
|
|
95
|
+
...normalizedError === void 0 ? {} : { error: normalizedError },
|
|
96
|
+
...normalizedMessage === void 0 ? {} : { message: normalizedMessage }
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
function parseNonEmptyString(value) {
|
|
100
|
+
return typeof value === "string" && value.trim() ? value : null;
|
|
101
|
+
}
|
|
102
|
+
function parseSideEffectFingerprint(value) {
|
|
103
|
+
return typeof value === "string" && /^[a-zA-Z0-9:_-]{32,192}$/u.test(value) ? value : null;
|
|
104
|
+
}
|
|
105
|
+
function parseBoundedBase64Url(value) {
|
|
106
|
+
return typeof value === "string" && value.length > 0 && value.length <= 8192 && /^[\w-]+$/u.test(value) ? value : null;
|
|
107
|
+
}
|
|
108
|
+
function parseOptionalString(value) {
|
|
109
|
+
return value === void 0 ? void 0 : parseNonEmptyString(value);
|
|
110
|
+
}
|
|
111
|
+
function isNonNegativeSafeInteger(value) {
|
|
112
|
+
return typeof value === "number" && Number.isSafeInteger(value) && value >= 0;
|
|
113
|
+
}
|
|
114
|
+
function sponsoredNearAccountSideEffectStore(options) {
|
|
115
|
+
return createCloudflareD1VersionedJsonRecordStore({
|
|
116
|
+
database: options.database,
|
|
117
|
+
scope: {
|
|
118
|
+
namespace: options.namespace,
|
|
119
|
+
orgId: options.orgId,
|
|
120
|
+
projectId: options.projectId,
|
|
121
|
+
envId: options.envId
|
|
122
|
+
},
|
|
123
|
+
keyPrefix: "router-ab-yao-sponsored-account:",
|
|
124
|
+
encode: encodeSponsoredRecord,
|
|
125
|
+
parse: parseSponsoredNearAccountSideEffectRecord
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Creates the sponsored account through a durable claim. The signed transaction
|
|
130
|
+
* and its hash are persisted before the broadcast, so a lost response replays
|
|
131
|
+
* those exact bytes instead of building a second transaction under a fresh
|
|
132
|
+
* nonce. Rebroadcasting an identical signed transaction reuses its hash, so the
|
|
133
|
+
* network treats the retry as the same transaction.
|
|
134
|
+
*/
|
|
135
|
+
async function createSponsoredNamedNearAccountForOptions(options, input) {
|
|
136
|
+
const relayerAccount = options.relayerAccount;
|
|
137
|
+
const relayerPrivateKey = options.relayerPrivateKey;
|
|
138
|
+
const nearRpcUrl = options.nearRpcUrl;
|
|
139
|
+
const initialBalanceYocto = options.accountInitialBalance;
|
|
140
|
+
if (!relayerAccount || !relayerPrivateKey || !nearRpcUrl || !initialBalanceYocto) return {
|
|
141
|
+
kind: "rejected",
|
|
142
|
+
message: "Sponsored NEAR account creation is not configured on this server"
|
|
143
|
+
};
|
|
144
|
+
const relayerInput = {
|
|
145
|
+
accountId: input.accountId,
|
|
146
|
+
publicKey: input.publicKey,
|
|
147
|
+
relayerAccount,
|
|
148
|
+
relayerPrivateKey,
|
|
149
|
+
relayerPublicKey: options.relayerPublicKey,
|
|
150
|
+
nearRpcUrl,
|
|
151
|
+
initialBalanceYocto
|
|
152
|
+
};
|
|
153
|
+
const requestFingerprint = base64UrlEncode(await sha256BytesUtf8(alphabetizeStringify({
|
|
154
|
+
kind: "sponsored_near_account_creation_v1",
|
|
155
|
+
walletId: input.walletId,
|
|
156
|
+
accountId: input.accountId,
|
|
157
|
+
publicKey: input.publicKey,
|
|
158
|
+
relayerAccountId: relayerAccount,
|
|
159
|
+
initialBalanceYocto
|
|
160
|
+
})));
|
|
161
|
+
const outcome = await runRouterAbEd25519YaoRegistrationSideEffectV1(sponsoredNearAccountSideEffectStore(options), {
|
|
162
|
+
kind: "prepared_resumable",
|
|
163
|
+
resumeAfterMs: 3e4,
|
|
164
|
+
operation: "finalize",
|
|
165
|
+
key: `sponsored-account:${input.idempotencyKey}`,
|
|
166
|
+
requestFingerprint,
|
|
167
|
+
nowMs: () => Date.now(),
|
|
168
|
+
prepare: prepareWalletSponsoredTransaction.bind(null, input.walletId, relayerInput),
|
|
169
|
+
derivePreparedArtifactFingerprint: fingerprintWalletSponsoredTransaction,
|
|
170
|
+
execute: executeWalletSponsoredTransaction.bind(null, {
|
|
171
|
+
walletId: input.walletId,
|
|
172
|
+
nearRpcUrl,
|
|
173
|
+
relayerAccountId: relayerAccount
|
|
174
|
+
})
|
|
175
|
+
});
|
|
176
|
+
switch (outcome.kind) {
|
|
177
|
+
case "executed":
|
|
178
|
+
case "exact_replay":
|
|
179
|
+
if (outcome.value.success && outcome.value.accountId && outcome.value.transactionHash) return {
|
|
180
|
+
kind: "created",
|
|
181
|
+
accountId: outcome.value.accountId,
|
|
182
|
+
transactionHash: outcome.value.transactionHash
|
|
183
|
+
};
|
|
184
|
+
return {
|
|
185
|
+
kind: "rejected",
|
|
186
|
+
message: outcome.value.message || outcome.value.error || "Sponsored NEAR account creation was rejected"
|
|
187
|
+
};
|
|
188
|
+
case "in_progress":
|
|
189
|
+
case "uncertain": return {
|
|
190
|
+
kind: "retryable",
|
|
191
|
+
message: outcome.kind === "uncertain" ? outcome.message : "Sponsored NEAR account creation is already in progress for this registration",
|
|
192
|
+
retryAfterMs: 3e4
|
|
193
|
+
};
|
|
194
|
+
case "request_conflict": return {
|
|
195
|
+
kind: "rejected",
|
|
196
|
+
message: "Sponsored NEAR account creation idempotency key conflicts with another request"
|
|
197
|
+
};
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
function parseWalletSponsoredTransaction(raw) {
|
|
201
|
+
if (raw === null || typeof raw !== "object" || Array.isArray(raw)) return null;
|
|
202
|
+
const walletId = parseWalletId(Reflect.get(raw, "walletId"));
|
|
203
|
+
const transaction = parsePreparedSponsoredNearAccountCreation(Reflect.get(raw, "transaction"));
|
|
204
|
+
if (!walletId.ok || !transaction) return null;
|
|
205
|
+
return {
|
|
206
|
+
walletId: walletId.value,
|
|
207
|
+
transaction
|
|
208
|
+
};
|
|
209
|
+
}
|
|
210
|
+
async function fingerprintWalletSponsoredTransaction(prepared) {
|
|
211
|
+
const transactionFingerprint = await preparedSponsoredNearAccountCreationArtifactFingerprint(prepared.transaction);
|
|
212
|
+
return base64UrlEncode(await sha256BytesUtf8(alphabetizeStringify({
|
|
213
|
+
walletId: prepared.walletId,
|
|
214
|
+
transactionFingerprint
|
|
215
|
+
})));
|
|
216
|
+
}
|
|
217
|
+
function encodeSponsoredRecord(record) {
|
|
218
|
+
return record;
|
|
219
|
+
}
|
|
220
|
+
async function prepareWalletSponsoredTransaction(walletId, input) {
|
|
221
|
+
const prepared = await prepareSponsoredNearAccountCreationWithRelayer(input);
|
|
222
|
+
if (!prepared.ok) throw new Error(prepared.message);
|
|
223
|
+
return {
|
|
224
|
+
walletId,
|
|
225
|
+
transaction: prepared.prepared
|
|
226
|
+
};
|
|
227
|
+
}
|
|
228
|
+
async function executeWalletSponsoredTransaction(context, prepared, attempt) {
|
|
229
|
+
if (prepared.walletId !== context.walletId) throw new Error("Sponsored NEAR account claim belongs to another wallet");
|
|
230
|
+
const broadcast = await broadcastPreparedSponsoredNearAccountCreation({
|
|
231
|
+
prepared: prepared.transaction,
|
|
232
|
+
nearRpcUrl: context.nearRpcUrl,
|
|
233
|
+
relayerAccountId: context.relayerAccountId,
|
|
234
|
+
reconcileFirst: attempt === "resumed"
|
|
235
|
+
});
|
|
236
|
+
if (broadcast.kind === "uncertain") throw new Error(broadcast.message);
|
|
237
|
+
return broadcast.result;
|
|
238
|
+
}
|
|
239
|
+
//#endregion
|
|
240
|
+
export { createSponsoredNamedNearAccountForOptions };
|
|
241
|
+
|
|
242
|
+
//# sourceMappingURL=d1SponsoredNearAccount.js.map
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { base64UrlDecode } from "../../../../shared-ts/src/utils/base64.js";
|
|
2
2
|
import "../../../../shared-ts/src/utils/encoders.js";
|
|
3
3
|
import { normalizeOptionalTrimmedString } from "../../../../shared-ts/src/utils/normalize.js";
|
|
4
|
-
import "../../../../shared-ts/src/utils/validation.js";
|
|
5
4
|
import { failedVerification } from "../../../../shared-ts/src/utils/failure.js";
|
|
6
5
|
import { toArrayBufferCopy } from "../../../../core/authService/portableCrypto.js";
|
|
7
6
|
import { toRecordValue } from "../auth/d1RouterApiAuthBoundary.js";
|
|
@@ -1,15 +1,13 @@
|
|
|
1
1
|
import { normalizeOptionalTrimmedString } from "../../../../shared-ts/src/utils/normalize.js";
|
|
2
|
-
import "../../../../shared-ts/src/utils/validation.js";
|
|
3
2
|
import { failedVerification } from "../../../../shared-ts/src/utils/failure.js";
|
|
4
|
-
import { CloudflareD1OidcJwksCache, parseRs256JwtForVerification, validateGoogleIdTokenClaims, verifyRs256JwtSignature } from "./d1OidcBoundary.js";
|
|
5
3
|
import { githubOAuthPublicConfig, verifyGithubOAuthCodeWithIdentityStore } from "../../../../core/authService/githubOAuth.js";
|
|
4
|
+
import { verifyGoogleOidcToken } from "./googleOidcToken.js";
|
|
6
5
|
//#region src/router/cloudflare/d1/oidc/d1OidcVerificationService.ts
|
|
7
6
|
function errorMessage(error) {
|
|
8
7
|
return error instanceof Error ? error.message : String(error || "");
|
|
9
8
|
}
|
|
10
9
|
var CloudflareD1OidcVerificationService = class {
|
|
11
10
|
constructor(input) {
|
|
12
|
-
this.oidcJwksCache = new CloudflareD1OidcJwksCache();
|
|
13
11
|
this.googleOidcClientId = input.googleOidcClientId;
|
|
14
12
|
this.githubOAuth = input.githubOAuth;
|
|
15
13
|
this.identityStore = input.identityStore;
|
|
@@ -45,32 +43,7 @@ var CloudflareD1OidcVerificationService = class {
|
|
|
45
43
|
}
|
|
46
44
|
async verifyGoogleIdToken(input, linkIdentity) {
|
|
47
45
|
try {
|
|
48
|
-
const
|
|
49
|
-
if (!clientId) return failedVerification("not_configured", "Google OIDC is not configured on this Worker");
|
|
50
|
-
const idToken = normalizeOptionalTrimmedString(input.idToken ?? input.id_token);
|
|
51
|
-
if (!idToken) return failedVerification("invalid_body", "id_token is required");
|
|
52
|
-
const subtle = globalThis.crypto?.subtle;
|
|
53
|
-
if (!subtle) return failedVerification("unsupported", "WebCrypto (crypto.subtle) is unavailable in this runtime");
|
|
54
|
-
const parsed = parseRs256JwtForVerification({
|
|
55
|
-
token: idToken,
|
|
56
|
-
tokenLabel: "id_token"
|
|
57
|
-
});
|
|
58
|
-
if (!parsed.ok) return parsed;
|
|
59
|
-
const jwt = parsed.jwt;
|
|
60
|
-
const jwk = (await this.oidcJwksCache.getGoogleJwks()).keysByKid.get(jwt.kid);
|
|
61
|
-
if (!jwk) return failedVerification("unknown_kid", "Unknown Google key id (kid)");
|
|
62
|
-
const signature = await verifyRs256JwtSignature({
|
|
63
|
-
subtle,
|
|
64
|
-
jwt,
|
|
65
|
-
jwk,
|
|
66
|
-
tokenLabel: "id_token",
|
|
67
|
-
invalidSignatureMessage: "Invalid Google id_token signature"
|
|
68
|
-
});
|
|
69
|
-
if (!signature.ok) return signature;
|
|
70
|
-
const claims = validateGoogleIdTokenClaims({
|
|
71
|
-
payload: jwt.payload,
|
|
72
|
-
clientId
|
|
73
|
-
});
|
|
46
|
+
const claims = await verifyGoogleOidcToken(this.googleOidcClientId, input.idToken ?? input.id_token);
|
|
74
47
|
if (!claims.ok) return claims;
|
|
75
48
|
const providerSubject = `google:${claims.sub}`;
|
|
76
49
|
return {
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { normalizeOptionalTrimmedString } from "../../../../shared-ts/src/utils/normalize.js";
|
|
2
|
+
import { failedVerification } from "../../../../shared-ts/src/utils/failure.js";
|
|
3
|
+
import { CloudflareD1OidcJwksCache, parseRs256JwtForVerification, validateGoogleIdTokenClaims, verifyRs256JwtSignature } from "./d1OidcBoundary.js";
|
|
4
|
+
//#region src/router/cloudflare/d1/oidc/googleOidcToken.ts
|
|
5
|
+
const googleJwks = new CloudflareD1OidcJwksCache();
|
|
6
|
+
/** Verifies provider proof without reading or mutating wallet identity state. */
|
|
7
|
+
async function verifyGoogleOidcToken(configuredClientId, rawToken) {
|
|
8
|
+
const clientId = normalizeOptionalTrimmedString(configuredClientId);
|
|
9
|
+
if (!clientId) return failedVerification("not_configured", "Google OIDC is not configured on this Worker");
|
|
10
|
+
const token = normalizeOptionalTrimmedString(rawToken);
|
|
11
|
+
if (!token) return failedVerification("invalid_body", "id_token is required");
|
|
12
|
+
const subtle = globalThis.crypto?.subtle;
|
|
13
|
+
if (!subtle) return failedVerification("unsupported", "WebCrypto (crypto.subtle) is unavailable in this runtime");
|
|
14
|
+
const parsed = parseRs256JwtForVerification({
|
|
15
|
+
token,
|
|
16
|
+
tokenLabel: "id_token"
|
|
17
|
+
});
|
|
18
|
+
if (!parsed.ok) return parsed;
|
|
19
|
+
try {
|
|
20
|
+
const jwk = (await googleJwks.getGoogleJwks()).keysByKid.get(parsed.jwt.kid);
|
|
21
|
+
if (!jwk) return failedVerification("unknown_kid", "Unknown Google key id (kid)");
|
|
22
|
+
const signature = await verifyRs256JwtSignature({
|
|
23
|
+
subtle,
|
|
24
|
+
jwt: parsed.jwt,
|
|
25
|
+
jwk,
|
|
26
|
+
tokenLabel: "id_token",
|
|
27
|
+
invalidSignatureMessage: "Invalid Google id_token signature"
|
|
28
|
+
});
|
|
29
|
+
if (!signature.ok) return signature;
|
|
30
|
+
return validateGoogleIdTokenClaims({
|
|
31
|
+
payload: parsed.jwt.payload,
|
|
32
|
+
clientId
|
|
33
|
+
});
|
|
34
|
+
} catch {
|
|
35
|
+
return failedVerification("internal", "Google OIDC verification unavailable");
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
//#endregion
|
|
39
|
+
export { verifyGoogleOidcToken };
|
|
40
|
+
|
|
41
|
+
//# sourceMappingURL=googleOidcToken.js.map
|
|
@@ -451,6 +451,11 @@ async function prepareRecoveryForRoute(assembly, request) {
|
|
|
451
451
|
reservationTtlMs: RECOVERY_RESERVATION_TTL_MS
|
|
452
452
|
});
|
|
453
453
|
if (prepared.kind !== "prepared") return prepared;
|
|
454
|
+
try {
|
|
455
|
+
await assembly.walletCustodyCommits.publishRecoveryOperation(walletId, targetIdentity.recoveryOperationId);
|
|
456
|
+
} catch {
|
|
457
|
+
return { kind: "routing_unavailable" };
|
|
458
|
+
}
|
|
454
459
|
try {
|
|
455
460
|
const manifest = await resolveWalletRecoveryKeyManifestV1({
|
|
456
461
|
registry: assembly.walletStore,
|
|
@@ -13,6 +13,7 @@ import { parseWalletRecoveryBackupAcknowledgementV1 } from "../../../../shared-t
|
|
|
13
13
|
import "../../../../shared-ts/src/wallet-recovery/recoveryCodes.js";
|
|
14
14
|
import { parseWalletRecoveryEnvelopeSetRecord } from "../../../../shared-ts/src/wallet-recovery/walletRecoveryEnvelopeSet.js";
|
|
15
15
|
import { parseRecoveryCodeLocatorV1 } from "../../../../shared-ts/src/wallet-recovery/recoveryCodeLocator.js";
|
|
16
|
+
import { reservePasskeyCredential } from "../../../../core/passkeyCredentialClaims.js";
|
|
16
17
|
import { prepareD1WebAuthnCredentialBindingInsertStatement } from "../../../../core/WebAuthnCredentialBindingStore.js";
|
|
17
18
|
import { prepareD1WebAuthnAuthenticatorInsertStatement } from "../webauthn/d1WebAuthnStore.js";
|
|
18
19
|
import { D1WalletAuthorityStore, prepareD1WalletAuthorityPutStatement } from "../wallet/d1WalletAuthorityStore.js";
|
|
@@ -125,6 +126,8 @@ function isRecoveryCodeLocatorCollision(error) {
|
|
|
125
126
|
}
|
|
126
127
|
var CloudflareD1WalletCustodyCommitStore = class {
|
|
127
128
|
constructor(options) {
|
|
129
|
+
this.credentialClaims = options.credentialClaims;
|
|
130
|
+
this.recoveryRouting = options.recoveryRouting;
|
|
128
131
|
this.database = options.database;
|
|
129
132
|
this.scope = options.scope;
|
|
130
133
|
this.walletAuthMethodStore = options.walletAuthMethodStore ?? new D1WalletAuthMethodStore({
|
|
@@ -146,6 +149,27 @@ var CloudflareD1WalletCustodyCommitStore = class {
|
|
|
146
149
|
keyPrefix: PASSKEY_ENVELOPE_KEY_PREFIX
|
|
147
150
|
});
|
|
148
151
|
}
|
|
152
|
+
async publishRecoveryOperation(walletId, operationId) {
|
|
153
|
+
const result = await this.recoveryRouting?.publishRecovery({
|
|
154
|
+
kind: "operation",
|
|
155
|
+
walletId,
|
|
156
|
+
operationId
|
|
157
|
+
});
|
|
158
|
+
if (result && !result.ok) throw new Error("Recovery operation routing conflicts");
|
|
159
|
+
}
|
|
160
|
+
async claimRecoveryCodeRoutes(walletId, records) {
|
|
161
|
+
if (!this.recoveryRouting) return true;
|
|
162
|
+
const locators = [];
|
|
163
|
+
for (const record of records) {
|
|
164
|
+
if (record.walletId !== walletId) throw new Error("Recovery code routing wallet differs");
|
|
165
|
+
locators.push(record.locatorB64u);
|
|
166
|
+
}
|
|
167
|
+
return (await this.recoveryRouting.publishRecovery({
|
|
168
|
+
kind: "codes",
|
|
169
|
+
walletId,
|
|
170
|
+
locators
|
|
171
|
+
})).ok;
|
|
172
|
+
}
|
|
149
173
|
async readRecoveryCodeLocator(locatorB64u) {
|
|
150
174
|
const row = await this.database.prepare(`SELECT locator_b64u, wallet_id, recovery_key_id
|
|
151
175
|
FROM wallet_recovery_code_locators
|
|
@@ -334,6 +358,10 @@ var CloudflareD1WalletCustodyCommitStore = class {
|
|
|
334
358
|
kind: "inconsistent",
|
|
335
359
|
reason: inconsistency
|
|
336
360
|
};
|
|
361
|
+
if (!await this.claimRecoveryCodeRoutes(commit.recoverySet.walletId, commit.recoveryCodeLocators)) return {
|
|
362
|
+
kind: "inconsistent",
|
|
363
|
+
reason: "recovery code locator already exists"
|
|
364
|
+
};
|
|
337
365
|
const envelopeKey = passkeyCustodyEnvelopeRecordKey(passkeyCustodyEnvelopeLocatorOf(commit.envelope));
|
|
338
366
|
const recoverySetKey = walletRecoveryEnvelopeSetRecordKey(commit.recoverySet.walletId);
|
|
339
367
|
const recoveryBackupAcknowledgementKey = walletRecoveryBackupAcknowledgementRecordKey(commit.recoverySet.walletId);
|
|
@@ -465,6 +493,7 @@ var CloudflareD1WalletCustodyCommitStore = class {
|
|
|
465
493
|
* the explicit acknowledge route. Both rows are guarded against races.
|
|
466
494
|
*/
|
|
467
495
|
async replaceRecoveryEnvelopeSetAndPreserveBackupAcknowledgement(input) {
|
|
496
|
+
if (!await this.claimRecoveryCodeRoutes(input.record.walletId, input.recoveryCodeLocators)) return { kind: "collision" };
|
|
468
497
|
const acknowledgementKey = walletRecoveryBackupAcknowledgementRecordKey(input.record.walletId);
|
|
469
498
|
const existingAcknowledgement = await this.records.read(acknowledgementKey);
|
|
470
499
|
const mutations = [{
|
|
@@ -551,6 +580,11 @@ var CloudflareD1WalletCustodyCommitStore = class {
|
|
|
551
580
|
userId: input.authenticatorCommit.userId,
|
|
552
581
|
record: input.authenticatorCommit.authenticator
|
|
553
582
|
});
|
|
583
|
+
await reservePasskeyCredential(this.credentialClaims, {
|
|
584
|
+
walletId: targetMethod.walletId,
|
|
585
|
+
rpId: targetMethod.rpId,
|
|
586
|
+
credentialIdB64u: targetMethod.credentialIdB64u
|
|
587
|
+
});
|
|
554
588
|
const bindingStatement = prepareD1WebAuthnCredentialBindingInsertStatement({
|
|
555
589
|
database: this.database,
|
|
556
590
|
scope: this.tenantScope(),
|
|
@@ -61,6 +61,14 @@ var D1RegistrationCeremonyRecordStore = class {
|
|
|
61
61
|
if (recordsMatch(current, prepared)) return;
|
|
62
62
|
throw conflict("Registration ceremony record conflicts with the stored value");
|
|
63
63
|
}
|
|
64
|
+
async insertOrRead(mutation) {
|
|
65
|
+
const key = this.normalizeKey(mutation.scope, mutation.id);
|
|
66
|
+
const prepared = prepareValue(mutation.value, mutation.expiresAtMs);
|
|
67
|
+
await this.insert(key, prepared);
|
|
68
|
+
const stored = await this.get(mutation.scope, mutation.id);
|
|
69
|
+
if (!stored) throw conflict("Registration setup expired during persistence");
|
|
70
|
+
return stored;
|
|
71
|
+
}
|
|
64
72
|
async updateExpected(input) {
|
|
65
73
|
const key = this.normalizeKey(input.scope, input.id);
|
|
66
74
|
const current = await this.get(input.scope, input.id);
|
|
@@ -117,8 +125,7 @@ var D1RegistrationCeremonyRecordStore = class {
|
|
|
117
125
|
const parsed = parseStoredRow(row);
|
|
118
126
|
return {
|
|
119
127
|
value: parsed.value,
|
|
120
|
-
version: parsed.version
|
|
121
|
-
expiresAtMs: parsed.expiresAtMs
|
|
128
|
+
version: parsed.version
|
|
122
129
|
};
|
|
123
130
|
}
|
|
124
131
|
async updateExpectedVersion(input) {
|
|
@@ -235,7 +242,6 @@ function prepareValue(value, expiresAtMs) {
|
|
|
235
242
|
const normalizedExpiresAtMs = Math.floor(Number(expiresAtMs));
|
|
236
243
|
if (!Number.isSafeInteger(normalizedExpiresAtMs) || normalizedExpiresAtMs <= Date.now()) throw new Error("Registration ceremony record expiry must be in the future");
|
|
237
244
|
return {
|
|
238
|
-
value,
|
|
239
245
|
recordJson: alphabetizeStringify(value),
|
|
240
246
|
expiresAtMs: normalizedExpiresAtMs
|
|
241
247
|
};
|
|
@@ -2,8 +2,6 @@ import { parseChallengeSubjectId, parseEmailOtpChallengeId, parseOrgId, parsePro
|
|
|
2
2
|
import { parseDeviceId } from "../../../../shared-ts/src/authorization/capabilityKinds.js";
|
|
3
3
|
import { parseDigestB64u } from "../../../../shared-ts/src/utils/canonicalPrimitives.js";
|
|
4
4
|
import { normalizeOptionalTrimmedString } from "../../../../shared-ts/src/utils/normalize.js";
|
|
5
|
-
import { parseImplicitNearAccountId, parseNamedNearAccountId } from "../../../../shared-ts/src/utils/near.js";
|
|
6
|
-
import "../../../../shared-ts/src/utils/validation.js";
|
|
7
5
|
import { parseWalletAddAuthMethodRegistrationOptions } from "../../../../shared-ts/src/utils/addAuthMethodRegistration.js";
|
|
8
6
|
import { parseRouterAbEd25519YaoRegistrationActivationAdmissionReceiptV1, parseRouterAbEd25519YaoRegistrationActivationResultV1, parseRouterAbEd25519YaoRegistrationAdmissionRequestV1 } from "../../../../shared-ts/src/utils/routerAbEd25519Yao.js";
|
|
9
7
|
import { deriveEvmFamilySigningKeySlotId } from "../../../../shared-ts/src/signing-lanes/evmFamilySigningKeySlotId.js";
|
|
@@ -16,24 +14,22 @@ import { parseWalletAuthorityV1 } from "../../../../shared-ts/src/authorization/
|
|
|
16
14
|
import { parseWebAuthnAuthenticatorDeviceInfo, unknownWebAuthnAuthenticatorDeviceInfo } from "../../../../shared-ts/src/utils/webauthnDeviceInfo.js";
|
|
17
15
|
import { secureRandomBase64Url } from "../../../../shared-ts/src/utils/secureRandomId.js";
|
|
18
16
|
import { parseRouterAbEd25519NormalSigningState } from "../../../../shared-ts/src/utils/signingSessionSeal.js";
|
|
19
|
-
import { parseEcdsaDerivationPublicIdentity, parseThresholdEd25519AuthorityScope, thresholdEd25519AuthorityScopeFromWalletAuthAuthority, thresholdEd25519AuthorityScopesMatch } from "../../../../core/ThresholdService/validation.js";
|
|
20
17
|
import { thresholdEcdsaChainTargetKey } from "../../../../shared-ts/src/utils/thresholdEcdsaChainTarget.js";
|
|
21
18
|
import { thresholdEcdsaChainTargetFromValue } from "../../../../core/thresholdEcdsaChainTarget.js";
|
|
22
19
|
import { buildWalletEcdsaSignerRecord, parseWalletEd25519SignerRecord } from "../../../../core/d1WalletStore.js";
|
|
23
|
-
import {
|
|
20
|
+
import { nearEd25519SigningKeyIdFromString, walletIdFromString } from "../../../../shared-ts/src/utils/registrationIds.js";
|
|
24
21
|
import { registrationPreparationIdFromString } from "../../../../core/types.js";
|
|
25
22
|
import "../../../../shared-ts/src/signing-lanes/index.js";
|
|
26
23
|
import { parsePasskeyCustodyEnvelopeRecord } from "../../../../shared-ts/src/passkey-custody/custodyEnvelope.js";
|
|
27
24
|
import "../../../../shared-ts/src/passkey-custody/index.js";
|
|
25
|
+
import { parseImplicitNearAccountId, parseNamedNearAccountId } from "../../../../shared-ts/src/utils/near.js";
|
|
28
26
|
import { normalizeAddSignerSelection, normalizeRegistrationSignerPlan, registrationSignerBranchKeyFromString, registrationSignerSetSelectionFromPlan } from "../../../../shared-ts/src/utils/registrationSignerPlan.js";
|
|
29
27
|
import { addAuthMethodIntentGrantFromString, addSignerIntentGrantFromString, normalizeAddAuthMethodIntentCaller } from "../../../../shared-ts/src/utils/registrationIntent.js";
|
|
28
|
+
import { parseEcdsaDerivationPublicIdentity, parseThresholdEd25519AuthorityScope, thresholdEd25519AuthorityScopeFromWalletAuthAuthority, thresholdEd25519AuthorityScopesMatch } from "../../../../core/ThresholdService/validation.js";
|
|
30
29
|
import { toRecordValue } from "../auth/d1RouterApiAuthBoundary.js";
|
|
31
|
-
import { parseStoredRouterAbEcdsaPendingActivationV1 } from "../../../domains/ecdsa/routerAbEcdsaStrictRegistration.js";
|
|
32
30
|
import { parseStoredRegistrationSignerPlan, parseStoredWalletRegistrationPreparedContext, storedRegistrationSignerPlansMatch } from "../../../../core/RegistrationCeremonyStore.js";
|
|
31
|
+
import { parseStoredRouterAbEcdsaPendingActivationV1 } from "../../../domains/ecdsa/routerAbEcdsaStrictRegistration.js";
|
|
33
32
|
//#region src/router/cloudflare/d1/registration/d1RegistrationCeremonyRecords.ts
|
|
34
|
-
function createD1ServerAllocatedWalletId() {
|
|
35
|
-
return createServerAllocatedWalletId();
|
|
36
|
-
}
|
|
37
33
|
function inferRuntimePolicyScopeFromSigningRoot(input) {
|
|
38
34
|
const signingRootId = normalizeOptionalTrimmedString(input.signingRootId);
|
|
39
35
|
const signingRootVersion = normalizeOptionalTrimmedString(input.signingRootVersion);
|
|
@@ -48,7 +44,7 @@ function inferRuntimePolicyScopeFromSigningRoot(input) {
|
|
|
48
44
|
};
|
|
49
45
|
}
|
|
50
46
|
function buildRegistrationIntent(input) {
|
|
51
|
-
const nonceB64u =
|
|
47
|
+
const nonceB64u = input.nonceB64u;
|
|
52
48
|
const foundingWalletAuthMethodId = input.foundingWalletAuthMethodId;
|
|
53
49
|
if (input.runtimePolicyScope) return {
|
|
54
50
|
version: "registration_intent_v1",
|
|
@@ -1369,7 +1365,6 @@ function parseD1EcdsaDerivationServerBootstrapResponse(raw) {
|
|
|
1369
1365
|
const publicIdentity = parseD1EcdsaDerivationPublicIdentity(record.publicIdentity);
|
|
1370
1366
|
const clientShareRetryCounter = safeInteger(record.clientShareRetryCounter);
|
|
1371
1367
|
const relayerShareRetryCounter = safeInteger(record.relayerShareRetryCounter);
|
|
1372
|
-
const publicTranscriptDigest32B64u = normalizeOptionalTrimmedString(record.publicTranscriptDigest32B64u);
|
|
1373
1368
|
const keyHandle = normalizeOptionalTrimmedString(record.keyHandle);
|
|
1374
1369
|
const signingRootId = normalizeOptionalTrimmedString(record.signingRootId);
|
|
1375
1370
|
const signingRootVersion = normalizeOptionalTrimmedString(record.signingRootVersion);
|
|
@@ -1384,7 +1379,7 @@ function parseD1EcdsaDerivationServerBootstrapResponse(raw) {
|
|
|
1384
1379
|
const expiresAt = normalizeOptionalTrimmedString(record.expiresAt);
|
|
1385
1380
|
const remainingUses = safeInteger(record.remainingUses);
|
|
1386
1381
|
const routerAbEcdsaDerivationNormalSigning = parseRouterAbEcdsaDerivationNormalSigningStateV1(record.routerAbEcdsaDerivationNormalSigning);
|
|
1387
|
-
if (!walletId || !evmFamilySigningKeySlotId || !ecdsaThresholdKeyId || !relayerKeyId || !applicationBindingDigestB64u || !contextBinding32B64u || !publicIdentity || clientShareRetryCounter === null || relayerShareRetryCounter === null || !
|
|
1382
|
+
if (!walletId || !evmFamilySigningKeySlotId || !ecdsaThresholdKeyId || !relayerKeyId || !applicationBindingDigestB64u || !contextBinding32B64u || !publicIdentity || clientShareRetryCounter === null || relayerShareRetryCounter === null || !keyHandle || !signingRootId || !signingRootVersion || !thresholdEcdsaPublicKeyB64u || !ethereumAddress || !relayerVerifyingShareB64u || !participantIds || !thresholdSessionId || !activationEpoch || expiresAtMs === null || !expiresAt || remainingUses === null || !routerAbEcdsaDerivationNormalSigning) return null;
|
|
1388
1383
|
return {
|
|
1389
1384
|
formatVersion: "ecdsa-derivation-role-local",
|
|
1390
1385
|
walletId,
|
|
@@ -1396,7 +1391,6 @@ function parseD1EcdsaDerivationServerBootstrapResponse(raw) {
|
|
|
1396
1391
|
publicIdentity,
|
|
1397
1392
|
clientShareRetryCounter,
|
|
1398
1393
|
relayerShareRetryCounter,
|
|
1399
|
-
publicTranscriptDigest32B64u,
|
|
1400
1394
|
keyHandle,
|
|
1401
1395
|
signingRootId,
|
|
1402
1396
|
signingRootVersion,
|
|
@@ -2034,6 +2028,6 @@ function unreachableAddAuthMethodInput(value) {
|
|
|
2034
2028
|
throw new Error(`Unhandled add-auth-method input kind: ${String(value)}`);
|
|
2035
2029
|
}
|
|
2036
2030
|
//#endregion
|
|
2037
|
-
export { buildAddAuthMethodIntent, buildAddSignerIntent, buildD1EcdsaWalletKeysFromBootstrap, buildD1WalletEcdsaSignerRecords, buildD1WalletRecord, buildRegistrationIntent,
|
|
2031
|
+
export { buildAddAuthMethodIntent, buildAddSignerIntent, buildD1EcdsaWalletKeysFromBootstrap, buildD1WalletEcdsaSignerRecords, buildD1WalletRecord, buildRegistrationIntent, deriveEvmFamilySigningKeySlotId, inferRuntimePolicyScopeFromSigningRoot, intentScopeMetadata, normalizeThresholdEcdsaChainTargets, parseD1AddSignerIntent, parseD1EcdsaDerivationServerBootstrapResponse, parseD1RuntimePolicyScope, parseD1StoredAddAuthMethodIntent, parseD1StoredAddSignerAuth, parseD1StoredAddSignerIntent, parseD1StoredWalletAddAuthMethodCeremony, parseD1StoredWalletAddAuthMethodFinalizeReplay, parseD1StoredWalletAddSignerCeremony, parseD1StoredWalletAddSignerFinalizeReplay, parseD1StoredWalletRegistrationCeremony, parseD1WalletAddSignerFinalizeTerminalResponse, parseD1WalletRegistrationCommittedInstallationProjection, parseD1WalletRegistrationFinalizeReplayResponse, parseWalletIdForIntent, positiveIntegerArraysEqual, runtimePolicyScopeMatches, thresholdEcdsaChainTargetsEqual };
|
|
2038
2032
|
|
|
2039
2033
|
//# sourceMappingURL=d1RegistrationCeremonyRecords.js.map
|
|
@@ -7,13 +7,32 @@ var CloudflareD1RegistrationCeremonyIntentStore = class {
|
|
|
7
7
|
constructor(input) {
|
|
8
8
|
this.storage = new D1RegistrationCeremonyRecordStore(input);
|
|
9
9
|
}
|
|
10
|
-
async
|
|
11
|
-
await this.
|
|
10
|
+
async getSetupCeremony(ceremonyId) {
|
|
11
|
+
const stored = await this.storage.get("setup-ceremony", ceremonyId);
|
|
12
|
+
if (!stored) return null;
|
|
13
|
+
const ceremony = parseD1StoredWalletRegistrationCeremony(stored.value);
|
|
14
|
+
if (!ceremony) throw new Error("Registration setup snapshot is invalid");
|
|
15
|
+
return ceremony;
|
|
16
|
+
}
|
|
17
|
+
async reserveSetupCeremony(proposed) {
|
|
18
|
+
const ceremony = parseD1StoredWalletRegistrationCeremony((await this.storage.insertOrRead({
|
|
19
|
+
scope: "setup-ceremony",
|
|
20
|
+
id: proposed.registrationCeremonyId,
|
|
21
|
+
value: encodeRecord(proposed),
|
|
22
|
+
expiresAtMs: proposed.expiresAtMs
|
|
23
|
+
})).value);
|
|
24
|
+
if (!ceremony || ceremony.registrationCeremonyId !== proposed.registrationCeremonyId || ceremony.expiresAtMs !== proposed.expiresAtMs || ceremony.orgId !== proposed.orgId || ceremony.digestB64u !== proposed.digestB64u || ceremony.foundingWalletAuthorityId !== proposed.foundingWalletAuthorityId || ceremony.foundingDeviceId !== proposed.foundingDeviceId || ceremony.foundingWalletAuthMethodId !== proposed.foundingWalletAuthMethodId || ceremony.expectedOrigin !== proposed.expectedOrigin) throw new Error("Registration setup snapshot conflicts with its reservation");
|
|
25
|
+
await this.ensureSetupCeremony(ceremony);
|
|
26
|
+
return ceremony;
|
|
27
|
+
}
|
|
28
|
+
async ensureSetupCeremony(setup) {
|
|
29
|
+
const current = parseD1StoredWalletRegistrationCeremony((await this.storage.insertOrRead({
|
|
12
30
|
scope: "ceremony",
|
|
13
|
-
id:
|
|
14
|
-
|
|
15
|
-
expiresAtMs:
|
|
16
|
-
});
|
|
31
|
+
id: setup.registrationCeremonyId,
|
|
32
|
+
value: encodeRecord(setup),
|
|
33
|
+
expiresAtMs: setup.expiresAtMs
|
|
34
|
+
})).value);
|
|
35
|
+
if (!current || current.registrationCeremonyId !== setup.registrationCeremonyId || current.expiresAtMs !== setup.expiresAtMs || current.orgId !== setup.orgId || current.digestB64u !== setup.digestB64u || current.foundingWalletAuthorityId !== setup.foundingWalletAuthorityId || current.foundingDeviceId !== setup.foundingDeviceId || current.foundingWalletAuthMethodId !== setup.foundingWalletAuthMethodId || current.expectedOrigin !== setup.expectedOrigin) throw new Error("Registration ceremony conflicts with its setup snapshot");
|
|
17
36
|
}
|
|
18
37
|
async getCeremony(registrationCeremonyId) {
|
|
19
38
|
return (await this.getCeremonySnapshot(registrationCeremonyId))?.ceremony ?? null;
|
|
@@ -80,13 +99,6 @@ var CloudflareD1RegistrationCeremonyIntentStore = class {
|
|
|
80
99
|
expiresAtMs: input.next.expiresAtMs
|
|
81
100
|
});
|
|
82
101
|
}
|
|
83
|
-
async takeCeremony(registrationCeremonyId) {
|
|
84
|
-
const id = normalizeOptionalTrimmedString(registrationCeremonyId);
|
|
85
|
-
if (!id) return null;
|
|
86
|
-
const ceremony = parseD1StoredWalletRegistrationCeremony(await this.getDel("ceremony", id));
|
|
87
|
-
if (!ceremony || ceremony.expiresAtMs <= Date.now()) return null;
|
|
88
|
-
return ceremony;
|
|
89
|
-
}
|
|
90
102
|
async deleteCeremony(registrationCeremonyId) {
|
|
91
103
|
const id = normalizeOptionalTrimmedString(registrationCeremonyId);
|
|
92
104
|
if (!id) return false;
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { parseWalletAuthMethodId } from "../../../../shared-ts/src/utils/domainIds.js";
|
|
2
2
|
import { normalizeOptionalTrimmedString } from "../../../../shared-ts/src/utils/normalize.js";
|
|
3
|
-
import "../../../../shared-ts/src/utils/validation.js";
|
|
4
3
|
import { normalizeAddAuthMethodInput } from "../../../../shared-ts/src/utils/registrationAuthMethodInput.js";
|
|
5
4
|
import { secureRandomBase64Url } from "../../../../shared-ts/src/utils/secureRandomId.js";
|
|
6
5
|
import { failure } from "../../../../shared-ts/src/utils/failure.js";
|