@seams/wallet-server 0.6.2 → 0.7.3
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 -105
- package/artifact-manifest.json +147 -32
- package/cloudflare-router-ab/build/deriver-a/build-stamp.json +1 -0
- 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 -0
- 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 -0
- 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 -0
- 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 -0
- 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/migrations/deriver-a/0012_tenant_root_creation_tombstones.sql +20 -0
- package/cloudflare-router-ab/migrations/deriver-a/0013_tenant_root_root_use_admissions.sql +32 -0
- package/cloudflare-router-ab/migrations/deriver-a/0014_tenant_root_refresh_supersessions.sql +24 -0
- package/cloudflare-router-ab/migrations/deriver-a/0015_tenant_root_root_use_attempts.sql +56 -0
- package/cloudflare-router-ab/migrations/deriver-a/0016_tenant_root_root_use_admission_settlement.sql +5 -0
- package/cloudflare-router-ab/migrations/deriver-a/0017_tenant_root_root_use_admission_claims.sql +64 -0
- package/cloudflare-router-ab/migrations/deriver-a/0018_tenant_root_recovery_retention_keys.sql +12 -0
- package/cloudflare-router-ab/migrations/deriver-b/0012_tenant_root_creation_tombstones.sql +20 -0
- package/cloudflare-router-ab/migrations/deriver-b/0013_tenant_root_root_use_admissions.sql +32 -0
- package/cloudflare-router-ab/migrations/deriver-b/0014_tenant_root_refresh_supersessions.sql +24 -0
- package/cloudflare-router-ab/migrations/deriver-b/0015_tenant_root_root_use_attempts.sql +56 -0
- package/cloudflare-router-ab/migrations/deriver-b/0016_tenant_root_root_use_admission_settlement.sql +5 -0
- package/cloudflare-router-ab/migrations/deriver-b/0017_tenant_root_root_use_admission_claims.sql +64 -0
- package/cloudflare-router-ab/migrations/deriver-b/0018_tenant_root_recovery_retention_keys.sql +12 -0
- package/cloudflare-router-ab/scripts/bootstrap-local-tenant-root.mjs +81 -16
- package/cloudflare-router-ab/scripts/prepare-local-runtime-config.mjs +102 -9
- package/cloudflare-router-ab/scripts/start-local-role-workers.mjs +4 -1
- package/cloudflare-router-ab/wrangler.deriver-a.toml +24 -0
- package/cloudflare-router-ab/wrangler.router.toml +13 -0
- package/dist/esm/authorization/capabilityPolicy.js +1 -1
- package/dist/esm/authorization/domain.js +2 -2
- package/dist/esm/authorization/factorEvidence.js +6 -100
- package/dist/esm/authorization/service.js +42 -2
- package/dist/esm/authorization/vaultProxyUse.js +5 -10
- package/dist/esm/cloud-host.js +17 -12
- package/dist/esm/core/EmailOtpRecords.js +19 -1
- package/dist/esm/core/EmailOtpStores.js +323 -924
- package/dist/esm/core/IdentityStore.js +67 -345
- package/dist/esm/core/NearPublicKeyStore.js +21 -63
- package/dist/esm/core/RegistrationCeremonyStore.js +3 -1793
- package/dist/esm/core/SessionService.js +7 -30
- package/dist/esm/core/ThresholdService/config.js +1 -82
- package/dist/esm/core/ThresholdService/kv.js +3 -3
- package/dist/esm/core/ThresholdService/routerAb/ecdsaDerivationPoolFillHandlers.js +37 -5
- package/dist/esm/core/ThresholdService/routerAb/ecdsaDerivationPresignBridge.js +4 -74
- package/dist/esm/core/ThresholdService/routerAbNormalSigningPolicy.js +3 -10
- package/dist/esm/core/ThresholdService/stores/CloudflareDurableObjectStore.js +15 -51
- package/dist/esm/core/ThresholdService/stores/KeyStore.js +3 -3
- package/dist/esm/core/ThresholdService/stores/SessionStore.js +5 -81
- package/dist/esm/core/ThresholdService/stores/WalletSessionStore.js +191 -372
- package/dist/esm/core/ThresholdService/stores/exportReplayGuard.js +7 -0
- package/dist/esm/core/ThresholdService/validation.js +18 -230
- package/dist/esm/core/WalletAuthMethodStore.js +22 -79
- package/dist/esm/core/WalletStore.js +62 -191
- package/dist/esm/core/WebAuthnAuthenticatorStore.js +57 -340
- package/dist/esm/core/WebAuthnCredentialBindingStore.js +90 -369
- package/dist/esm/core/WebAuthnLoginChallengeStore.js +17 -397
- package/dist/esm/core/WebAuthnSyncChallengeStore.js +17 -397
- package/dist/esm/core/authService/AuthService.js +2 -19
- package/dist/esm/core/authService/bytes.js +1 -4
- package/dist/esm/core/authService/emailOtpChallengeOperations.js +2 -5
- package/dist/esm/core/authService/emailOtpChallengeProof.js +10 -41
- package/dist/esm/core/authService/emailOtpChallengeVerification.js +19 -90
- package/dist/esm/core/authService/emailOtpChallenges.js +11 -46
- package/dist/esm/core/authService/emailOtpConfig.js +1 -32
- package/dist/esm/core/authService/emailOtpDelivery.js +10 -45
- package/dist/esm/core/authService/emailOtpEnrollment.js +9 -40
- package/dist/esm/core/authService/emailOtpGrant.js +9 -40
- package/dist/esm/core/authService/emailOtpRegistrationEnrollment.js +15 -193
- package/dist/esm/core/authService/emailOtpSeal.js +5 -20
- package/dist/esm/core/authService/emailOtpUnlock.js +20 -110
- package/dist/esm/core/authService/googleEmailOtpRegistration.js +29 -116
- package/dist/esm/core/authService/identity.js +5 -20
- package/dist/esm/core/authService/nearPrivateKeySigning.js +7 -15
- package/dist/esm/core/authService/nearPublicKeyMetadata.js +6 -25
- package/dist/esm/core/authService/nearTransactions.js +2 -1
- package/dist/esm/core/authService/oidcVerification.js +25 -38
- package/dist/esm/core/authService/rateLimits.js +3 -36
- package/dist/esm/core/authService/registrationThresholdHelpers.js +2 -103
- package/dist/esm/core/authService/storeRegistry.js +2 -13
- package/dist/esm/core/authService/thresholdEcdsaKeyInventory.js +6 -6
- package/dist/esm/core/authService/webauthn.js +52 -241
- package/dist/esm/core/authService/webauthnOidcHelpers.js +1 -6
- package/dist/esm/core/authService/webauthnVerificationOutcomes.js +41 -0
- package/dist/esm/core/authService/webauthnWalletBinding.js +2 -122
- package/dist/esm/core/d1EcdsaSignerRead.js +76 -0
- package/dist/esm/core/d1IdentityStore.js +46 -139
- package/dist/esm/core/d1TenantStore.js +82 -0
- package/dist/esm/core/d1WalletAuthMethodStore.js +92 -143
- package/dist/esm/core/d1WalletStore.js +28 -36
- package/dist/esm/core/deviceLinking/linkedDeviceEmailOtpGrant.js +10 -12
- package/dist/esm/core/deviceLinking/linkedDeviceManagement.js +25 -3
- package/dist/esm/core/deviceLinking/linkedDeviceSession.js +6 -895
- package/dist/esm/core/deviceLinking/linkedDeviceSessionApproval.js +100 -0
- package/dist/esm/core/deviceLinking/linkedDeviceSessionRecord.js +662 -0
- package/dist/esm/core/deviceLinking/requestProof.js +13 -4
- package/dist/esm/core/ecdsaMaterialReadSnapshot.js +85 -0
- package/dist/esm/core/emailOtpD1Statements.js +383 -0
- package/dist/esm/core/hostedAccountIds.js +2 -2
- package/dist/esm/core/keyMaterialBrands.js +2 -48
- package/dist/esm/core/nearRelayerAccountProvisioning.js +27 -155
- package/dist/esm/core/nearSignerWasmRuntime.js +1 -4
- package/dist/esm/core/rpcClients/near/NearClient.js +15 -218
- package/dist/esm/core/signingLanes/LaneEnrollmentActivation.js +1 -1
- package/dist/esm/core/signingLanes/LaneLifecycleApplicationService.js +2 -4
- package/dist/esm/core/signingLanes/LaneLifecycleStore.js +0 -24
- package/dist/esm/core/signingLanes/WalletExecutionLaneProjection.js +8 -11
- package/dist/esm/core/signingLanes/ecdsaServerRetirement.js +3 -8
- package/dist/esm/core/signingLanes/ed25519ServerRetirement.js +1 -4
- package/dist/esm/core/signingMaterial/ordinaryInactiveSignerMaterialReservation.js +2 -5
- package/dist/esm/core/storeBackends.js +208 -0
- package/dist/esm/core/thresholdEcdsaChainTarget.js +2 -10
- package/dist/esm/core/webAuthnD1Statements.js +92 -0
- package/dist/esm/core/webAuthnStoreBackends.js +198 -0
- package/dist/esm/hosted-wallet-gateway.js +34 -17
- package/dist/esm/index.js +2 -2
- package/dist/esm/local-hosted-wallet-gateway-worker.js +2 -23
- package/dist/esm/localHostedWalletGatewayHandler.js +312 -0
- package/dist/esm/localIntendedEcdsaFinalizeFault.js +85 -0
- package/dist/esm/localIntendedLinkExecuteFault.js +140 -0
- package/dist/esm/localIntendedMaterialAdmissionFault.js +176 -0
- package/dist/esm/localIntendedPresignCancellation.js +44 -0
- package/dist/esm/localIntendedRevokeFault.js +106 -0
- package/dist/esm/localIntendedSessionAdmissionFault.js +139 -0
- package/dist/esm/localIntendedYaoExportFault.js +117 -0
- package/dist/esm/localIntendedYaoFault.js +13 -16
- package/dist/esm/localIntendedYaoFinalizeFault.js +99 -0
- package/dist/esm/localIntendedYaoRecoveryFault.js +102 -0
- package/dist/esm/localIntendedYaoSigningFault.js +127 -0
- package/dist/esm/router/auth/authRequestValidation.js +1 -1
- package/dist/esm/router/auth/commonRouterUtils.js +34 -12
- package/dist/esm/router/auth/walletSessionFailure.js +3 -19
- package/dist/esm/router/auth/webAuthnCredentialCodecs.js +4 -15
- package/dist/esm/router/cloudflare/d1/auth/d1AuthorizedOperationRouteService.js +24 -0
- package/dist/esm/router/cloudflare/d1/auth/d1RouterApiAuthBoundary.js +2 -6
- package/dist/esm/router/cloudflare/d1/auth/d1RouterApiAuthService.js +87 -89
- package/dist/esm/router/cloudflare/d1/auth/walletSessionCredentialReaders.js +76 -0
- package/dist/esm/router/cloudflare/d1/authorization/authorizedOperationStatements.js +215 -0
- package/dist/esm/router/cloudflare/d1/authorization/d1AuthorizationStore.js +423 -308
- package/dist/esm/router/cloudflare/d1/authorization/d1VaultProxyStore.js +8 -12
- package/dist/esm/router/cloudflare/d1/authorization/persistedWalletSessionAuthorization.js +14 -0
- package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceAuthorityInstallService.js +107 -66
- package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceEmailOtpGrantStore.js +3 -6
- package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceEmailOtpTargetFactor.js +1 -19
- package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceManagementService.js +4 -3
- package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceOwnerAuthorizationProvider.js +52 -9
- package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceRequestProofNonceStore.js +3 -6
- package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceRevocation.js +100 -0
- package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceSessionRecords.js +7 -10
- package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceSessionStore.js +33 -124
- package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceSourceContributionPreparationPlanner.js +2 -2
- package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceTargetCredentialProvider.js +10 -18
- package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceVerifiedLinkBuilder.js +6 -6
- package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceVerifiedLinkSourceReader.js +3 -1
- package/dist/esm/router/cloudflare/d1/deviceLinking/index.js +4 -4
- package/dist/esm/router/cloudflare/d1/deviceLinking/installedEcdsaAuthority.js +69 -0
- package/dist/esm/router/cloudflare/d1/ed25519Yao/d1Ed25519YaoCapabilityPersistence.js +39 -68
- package/dist/esm/router/cloudflare/d1/ed25519Yao/d1Ed25519YaoLifecycleDecisionStore.js +69 -0
- package/dist/esm/router/cloudflare/d1/ed25519Yao/d1Ed25519YaoProductRegistrationPartitionedStateStore.js +2 -2
- package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpChallengeIssuer.js +12 -55
- package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpChallengeService.js +17 -80
- package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpChallengeStore.js +26 -71
- package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpChallengeVerifier.js +20 -3
- package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpDeliveryRuntime.js +6 -25
- package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpEnrollmentStore.js +7 -94
- package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpGrantStore.js +5 -47
- package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpRecords.js +38 -170
- package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpRecoveryService.js +24 -87
- package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpRegistrationEnrollmentFinalizer.js +9 -32
- package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpServerSealRuntime.js +5 -20
- package/dist/esm/router/cloudflare/d1/emailOtp/d1GoogleEmailOtpRegistrationAttemptStore.js +15 -134
- package/dist/esm/router/cloudflare/d1/emailOtp/d1GoogleEmailOtpRegistrationRecords.js +54 -260
- package/dist/esm/router/cloudflare/d1/emailOtp/d1GoogleEmailOtpSessionResolver.js +24 -111
- package/dist/esm/router/cloudflare/d1/identity/d1IdentityRecords.js +1 -28
- package/dist/esm/router/cloudflare/d1/identity/d1IdentityService.js +9 -40
- package/dist/esm/router/cloudflare/d1/near/d1NearPublicKeyStore.js +5 -18
- package/dist/esm/router/cloudflare/d1/oidc/d1OidcBoundary.js +18 -91
- package/dist/esm/router/cloudflare/d1/oidc/d1OidcVerificationService.js +6 -30
- package/dist/esm/router/cloudflare/d1/passkeyCustody/d1PasskeyCustodyEnvelopeStore.js +1 -1
- package/dist/esm/router/cloudflare/d1/passkeyCustody/d1PasskeyCustodyRouteService.js +7 -18
- package/dist/esm/router/cloudflare/d1/passkeyCustody/d1WalletCustodyCommitStore.js +25 -80
- package/dist/esm/router/cloudflare/d1/passkeyCustody/d1WalletRecoveryGoogleEmailOtpRecords.js +24 -15
- package/dist/esm/router/cloudflare/d1/passkeyCustody/d1WalletRecoveryGoogleEmailOtpService.js +23 -253
- package/dist/esm/router/cloudflare/d1/registration/d1EvmFamilyEcdsaRegistrationBranch.js +5 -20
- package/dist/esm/router/cloudflare/d1/registration/d1RegistrationCeremonyRecordStore.js +20 -39
- package/dist/esm/router/cloudflare/d1/registration/d1RegistrationCeremonyRecords.js +31 -73
- package/dist/esm/router/cloudflare/d1/registration/d1RegistrationCeremonyStore.js +4 -1
- package/dist/esm/router/cloudflare/d1/registration/d1RegistrationIntentService.js +10 -31
- package/dist/esm/router/cloudflare/d1/registration/d1WalletRegistrationCommitStore.js +6 -30
- package/dist/esm/router/cloudflare/d1/registration/d1WalletRegistrationService.js +286 -220
- package/dist/esm/router/cloudflare/d1/registration/d1WalletRegistrationSetup.js +5 -3
- package/dist/esm/router/cloudflare/d1/registration/walletRegistrationEstablishedSessionIssuer.js +2 -2
- package/dist/esm/router/cloudflare/d1/registration/walletRegistrationSessionCommitReceipt.js +4 -7
- package/dist/esm/router/cloudflare/d1/signingAdmission/d1RouterAbNormalSigningAdmissionStore.js +139 -27
- package/dist/esm/router/cloudflare/d1/signingLanes/d1LaneEffectJournalStore.js +0 -1
- package/dist/esm/router/cloudflare/d1/signingLanes/d1LaneLifecycleStore.js +1 -1
- package/dist/esm/router/cloudflare/d1/signingLanes/d1LaneRecords.js +2 -1
- package/dist/esm/router/cloudflare/d1/versionedJson/d1VersionedJsonRecordStore.js +2 -60
- package/dist/esm/router/cloudflare/d1/wallet/d1WalletAddSignerService.js +158 -19
- package/dist/esm/router/cloudflare/d1/wallet/d1WalletAuthMethodBoundary.js +19 -49
- package/dist/esm/router/cloudflare/d1/wallet/d1WalletAuthMethodRevocationReplayStore.js +100 -0
- package/dist/esm/router/cloudflare/d1/wallet/d1WalletAuthMethodService.js +132 -33
- package/dist/esm/router/cloudflare/d1/wallet/d1WalletAuthorityStore.js +83 -4
- package/dist/esm/router/cloudflare/d1/webauthn/d1WebAuthnAuthService.js +45 -217
- package/dist/esm/router/cloudflare/d1/webauthn/d1WebAuthnRecords.js +10 -13
- package/dist/esm/router/cloudflare/d1/webauthn/d1WebAuthnStore.js +22 -116
- package/dist/esm/router/cloudflare/durableObjects/thresholdStore.js +59 -66
- package/dist/esm/router/cloudflare/runtime/createSelfHostedCloudflareSigningWorker.js +1 -2
- package/dist/esm/router/cloudflare/runtime/routerAbPrewarm.js +2 -2
- package/dist/esm/router/cloudflare/runtime/staticWalletConsoleBinding.js +5 -20
- package/dist/esm/router/cloudflare/runtime/tenantRootCreationGrant.js +2 -9
- package/dist/esm/router/cloudflare/runtime/walletConsoleTenantRootLineage.js +11 -2
- package/dist/esm/router/cloudflare/runtime/walletControlOps.js +2 -1
- package/dist/esm/router/cloudflare/runtime/walletGateway.js +1 -1
- package/dist/esm/router/cloudflare/signingLanes/cloudflareLaneCurveExecution.js +7 -7
- package/dist/esm/router/cloudflare/signingLanes/cloudflareLaneProtocolCommitter.js +4 -3
- package/dist/esm/router/cloudflare/signingLanes/cloudflareOrdinaryInactiveSignerMaterialReservation.js +48 -21
- package/dist/esm/router/cloudflare.js +13343 -14372
- package/dist/esm/router/domains/ecdsa/routerAbEcdsaStrictRegistration.js +16 -5
- package/dist/esm/router/domains/ecdsa/thresholdEcdsaRequestValidation.js +2 -8
- package/dist/esm/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoLifecycleDecision.js +33 -0
- package/dist/esm/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistration.js +17 -9
- package/dist/esm/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistrationPartitionedStateStore.js +29 -431
- package/dist/esm/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistrationPartitioning.js +7 -2
- package/dist/esm/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistrationPersistence.js +5 -8
- package/dist/esm/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistrationRequestScopedRunner.js +2 -1
- package/dist/esm/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistrationRequestScopedRuntime.js +70 -2
- package/dist/esm/router/domains/ed25519Yao/export/routerAbEd25519YaoExport.js +134 -169
- package/dist/esm/router/domains/ed25519Yao/export/routerAbEd25519YaoExportRequestScopedCloudflare.js +77 -162
- package/dist/esm/router/domains/ed25519Yao/recovery/routerAbEd25519YaoRecovery.js +205 -51
- package/dist/esm/router/domains/ed25519Yao/recovery/routerAbEd25519YaoRecoveryRequestScopedCloudflare.js +29 -11
- package/dist/esm/router/domains/ed25519Yao/recovery/routerAbEd25519YaoRecoveryWalletSessionAuthorization.js +3 -6
- package/dist/esm/router/domains/ed25519Yao/registration/routerAbEd25519YaoHttpRegistrationBackend.js +182 -55
- package/dist/esm/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistration.js +2 -1
- package/dist/esm/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistrationExecutionRecord.js +63 -247
- package/dist/esm/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistrationIntentAuthorization.js +9 -27
- package/dist/esm/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistrationRequestScopedCloudflare.js +87 -132
- package/dist/esm/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistrationSideEffectBoundary.js +39 -55
- package/dist/esm/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistrationTwoPhaseRunner.js +5 -4
- package/dist/esm/router/domains/ed25519Yao/routerAbEd25519YaoGatewayEnvelope.js +45 -0
- package/dist/esm/router/domains/ed25519Yao/session/thresholdEd25519RequestValidation.js +1 -1
- package/dist/esm/router/domains/emailOtp/emailOtpExportPolicy.js +1 -42
- package/dist/esm/router/domains/emailOtp/emailOtpRequestValidation.js +1 -6
- package/dist/esm/router/domains/emailOtp/emailOtpRouteHandlers.js +15 -62
- package/dist/esm/router/domains/emailOtp/emailOtpSessionRouteHelpers.js +1 -142
- package/dist/esm/router/domains/passkeyCustody/passkeyCustodyEnvelopeRetrievalRoute.js +1 -1
- package/dist/esm/router/domains/passkeyCustody/walletCustodyRegistrationCommit.js +2 -2
- package/dist/esm/router/domains/passkeyCustody/walletRecoveryFinalization.js +23 -45
- package/dist/esm/router/domains/passkeyCustody/walletRecoveryKeyManifest.js +5 -5
- package/dist/esm/router/domains/signingOperations/ed25519AuthorizedOperationReceipt.js +1 -1
- package/dist/esm/router/domains/signingOperations/routerAbEcdsaDerivationNormalSigningRoute.js +836 -0
- package/dist/esm/router/domains/signingOperations/routerAbEd25519NormalSigningRoute.js +698 -0
- package/dist/esm/router/domains/signingOperations/routerAbNormalSigningAdmission.js +210 -0
- package/dist/esm/router/domains/signingOperations/routerAbNormalSigningAdmissionCore.js +16 -15
- package/dist/esm/router/domains/signingOperations/routerAbOperationStepUp.js +314 -0
- package/dist/esm/router/domains/signingOperations/routerAbPrivateSigningWorker.js +62 -2159
- package/dist/esm/router/domains/signingOperations/walletExecutionAdmission.js +1 -4
- package/dist/esm/router/domains/tenantRoot/tenantRootIdentityResolution.js +8 -14
- package/dist/esm/router/domains/walletRegistration/walletRegistrationRoutes.js +18 -22
- package/dist/esm/router/domains/walletRegistration/walletRegistrationSetupPayload.js +3 -4
- package/dist/esm/router/domains/walletUnlock/walletUnlockRequestedCapabilitiesValidation.js +2 -2
- package/dist/esm/router/domains/walletUnlock/walletUnlockRouteHandlers.js +127 -339
- package/dist/esm/router/express.js +7172 -7997
- package/dist/esm/router/framework/http.js +5 -4
- package/dist/esm/router/framework/ror/normalize.js +1 -1
- package/dist/esm/router/framework/routerApiRouteSurface.js +1 -1
- package/dist/esm/router/framework/runtimeSnapshotConsumer.js +8 -35
- package/dist/esm/router/node/nodeHostedWalletGateway.js +64 -0
- package/dist/esm/router/node/nodeHostedWalletGatewayCheck.js +163 -0
- package/dist/esm/router/node/nodeHostedWalletGatewayMain.js +120 -0
- package/dist/esm/router/node/nodeHttp.js +79 -0
- package/dist/esm/router/node/nodeSqlite.js +43 -0
- package/dist/esm/router/node/signerSqlMigrations.js +48 -0
- package/dist/esm/router/transport/fetch/createFetchRouter.js +4 -7
- package/dist/esm/router/transport/fetch/routes/auth.js +9 -41
- package/dist/esm/router/transport/fetch/routes/deviceLinking.js +16 -18
- package/dist/esm/router/transport/fetch/routes/deviceLinkingOwnerAuthorization.js +8 -27
- package/dist/esm/router/transport/fetch/routes/deviceManagement.js +15 -24
- package/dist/esm/router/transport/fetch/routes/nearPublicKeys.js +4 -16
- package/dist/esm/router/transport/fetch/routes/normalSigningRouterProxy.js +3 -16
- package/dist/esm/router/transport/fetch/routes/passkeyCustody.js +144 -461
- package/dist/esm/router/transport/fetch/routes/sessions.js +5 -4
- package/dist/esm/router/transport/fetch/routes/syncAccount.js +12 -42
- package/dist/esm/router/transport/fetch/routes/syncAccountBootstrap.js +2 -2
- package/dist/esm/router/transport/fetch/routes/thresholdEcdsa.js +96 -102
- package/dist/esm/router/transport/fetch/routes/thresholdEd25519.js +52 -27
- package/dist/esm/router/transport/fetch/routes/walletExecutionLanePreflight.js +4 -1
- package/dist/esm/router/transport/fetch/routes/webauthnAuthenticators.js +4 -16
- package/dist/esm/shared-ts/src/authorization/capabilityKinds.js +1 -1
- package/dist/esm/shared-ts/src/authorization/delegatedAuthority.js +1 -1
- package/dist/esm/shared-ts/src/authorization/operationFingerprint.js +1 -2
- package/dist/esm/shared-ts/src/authorization/walletAuthority.js +99 -227
- package/dist/esm/shared-ts/src/authorization/walletCustodyOperation.js +4 -6
- package/dist/esm/shared-ts/src/authorization/walletSignerActivationEquality.js +12 -0
- package/dist/esm/shared-ts/src/device-linking/activeWalletSession.js +74 -0
- package/dist/esm/shared-ts/src/device-linking/authorityActivation.js +50 -0
- package/dist/esm/shared-ts/src/device-linking/committedSignerPackages.js +10 -14
- package/dist/esm/shared-ts/src/device-linking/delegatedActivationPlan.js +3 -5
- package/dist/esm/shared-ts/src/device-linking/deviceManagement.js +55 -0
- package/dist/esm/shared-ts/src/device-linking/digests.js +10 -65
- package/dist/esm/shared-ts/src/device-linking/ed25519ExportRoot.js +14 -16
- package/dist/esm/shared-ts/src/device-linking/index.js +4 -1
- package/dist/esm/shared-ts/src/device-linking/parsers.js +510 -1063
- package/dist/esm/shared-ts/src/device-linking/requestProof.js +5 -14
- package/dist/esm/shared-ts/src/device-linking/sourceContribution.js +10 -16
- package/dist/esm/shared-ts/src/device-linking/walletSessionCredentialDelivery.js +9 -9
- package/dist/esm/shared-ts/src/device-linking/wireFields.js +59 -0
- package/dist/esm/shared-ts/src/near/nearClient.js +252 -0
- package/dist/esm/shared-ts/src/passkey-custody/credentialActivity.js +3 -1
- package/dist/esm/shared-ts/src/passkey-custody/custodyEnvelope.js +7 -5
- package/dist/esm/shared-ts/src/passkey-custody/custodySecretBinding.js +6 -4
- package/dist/esm/shared-ts/src/passkey-custody/primitives.js +9 -39
- package/dist/esm/shared-ts/src/signing-lanes/evmFamilySigningKeySlotId.js +1 -5
- package/dist/esm/shared-ts/src/signing-lanes/index.js +3 -3
- package/dist/esm/shared-ts/src/signing-lanes/ownerContinuity.js +8 -19
- package/dist/esm/shared-ts/src/signing-lanes/participantDigest.js +5 -14
- package/dist/esm/shared-ts/src/signing-lanes/participants.js +2 -5
- package/dist/esm/shared-ts/src/signing-lanes/recordParsers.js +7 -5
- package/dist/esm/shared-ts/src/signing-lanes/rotationDigests.js +6 -45
- package/dist/esm/shared-ts/src/signing-lanes/rotationParsers.js +423 -1511
- package/dist/esm/shared-ts/src/signing-lanes/rotationProtocolParsers.js +323 -0
- package/dist/esm/shared-ts/src/signing-lanes/rotationWireFields.js +59 -0
- package/dist/esm/shared-ts/src/tenant-root/tenantRootIdentifier.js +12 -0
- package/dist/esm/shared-ts/src/tenant-root/tenantRootIdentity.js +2 -9
- package/dist/esm/shared-ts/src/tenant-root/tenantRootOperationRecord.js +2 -5
- package/dist/esm/shared-ts/src/threshold/ecdsaDerivationRoleLocalBootstrap.js +1 -2
- package/dist/esm/shared-ts/src/threshold/keyMaterialBrands.js +49 -0
- package/dist/esm/shared-ts/src/utils/addAuthMethodRegistration.js +3 -4
- package/dist/esm/shared-ts/src/utils/canonicalPrimitives.js +8 -1
- package/dist/esm/shared-ts/src/utils/digestEncoding.js +63 -0
- package/dist/esm/shared-ts/src/utils/ecdsaKeyFactsInventory.js +2 -4
- package/dist/esm/shared-ts/src/utils/ecdsaServerTiming.js +0 -1
- package/dist/esm/shared-ts/src/utils/emailOtpDomain.js +5 -3
- package/dist/esm/shared-ts/src/utils/exactKeys.js +17 -0
- package/dist/esm/shared-ts/src/utils/exactRecord.js +44 -0
- package/dist/esm/shared-ts/src/utils/failure.js +20 -0
- package/dist/esm/shared-ts/src/utils/registrationAuthMethodInput.js +127 -0
- package/dist/esm/shared-ts/src/utils/registrationEstablishedSession.js +2 -2
- package/dist/esm/shared-ts/src/utils/registrationIds.js +280 -0
- package/dist/esm/shared-ts/src/utils/registrationIntent.js +7 -1182
- package/dist/esm/shared-ts/src/utils/registrationSignerPlan.js +426 -0
- package/dist/esm/shared-ts/src/utils/routerAbEcdsaDerivation.js +11 -136
- package/dist/esm/shared-ts/src/utils/routerAbEd25519Yao.js +3 -163
- package/dist/esm/shared-ts/src/utils/routerAbEd25519YaoDigests.js +160 -0
- package/dist/esm/shared-ts/src/utils/routerAbNormalSigningIdentity.js +1 -4
- package/dist/esm/shared-ts/src/utils/routerAbPublicKeyset.js +7 -15
- package/dist/esm/shared-ts/src/utils/thresholdEcdsaChainTarget.js +9 -0
- package/dist/esm/shared-ts/src/utils/validation.js +37 -6
- package/dist/esm/shared-ts/src/utils/walletAuthMethodRecord.js +362 -0
- package/dist/esm/shared-ts/src/utils/wireSchema.js +77 -0
- package/dist/esm/shared-ts/src/wallet-recovery/recoveryCodeLocator.js +1 -1
- package/dist/esm/shared-ts/src/wallet-recovery/recoveryCodeReservation.js +1 -1
- package/dist/esm/shared-ts/src/wallet-recovery/walletRecoveryCommittedProjection.js +8 -15
- package/dist/esm/shared-ts/src/wallet-recovery/walletRecoveryEcdsaPossession.js +4 -8
- package/dist/esm/shared-ts/src/wallet-recovery/walletRecoveryEnvelopeSet.js +3 -1
- package/dist/esm/storage/d1Sql.js +10 -1
- package/dist/esm/storage/syncSqlite.js +79 -0
- package/dist/esm/threshold/session/signingSessionSeal/crypto/cipher.js +11 -33
- package/dist/esm/threshold/session/signingSessionSeal/crypto/shamir3PassWasm.js +1 -1
- package/dist/esm/threshold/session/signingSessionSeal/idempotencyBackends.js +3 -3
- package/dist/esm/threshold/session/signingSessionSeal/idempotencyRecords.js +3 -10
- package/dist/esm/threshold/session/signingSessionSeal/options.js +1 -1
- package/dist/esm/threshold/session/signingSessionSeal/service.js +8 -35
- package/dist/esm/threshold/session/signingSessionSeal/transport/express.js +18 -94
- package/dist/esm/threshold/session/signingSessionSeal/transport/fetch.js +6 -30
- package/dist/esm/threshold/session/signingSessionSeal/transport/shared.js +23 -75
- package/dist/esm/threshold/statusCodes.js +1 -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 +3 -3
- package/dist/esm/wasm/near_signer/pkg/wasm_signer_worker_bg.wasm +0 -0
- package/dist/types/shared-ts/src/authorization/capabilityKinds.d.ts +8 -26
- package/dist/types/shared-ts/src/authorization/delegatedAuthority.d.ts +2 -9
- package/dist/types/shared-ts/src/authorization/operationFingerprint.d.ts +1 -3
- package/dist/types/shared-ts/src/authorization/walletAuthority.d.ts +25 -12
- package/dist/types/shared-ts/src/authorization/walletSessionIssuance.d.ts +8 -0
- package/dist/types/shared-ts/src/authorization/walletSignerActivationEquality.d.ts +4 -0
- package/dist/types/shared-ts/src/device-linking/activeWalletSession.d.ts +3 -2
- package/dist/types/shared-ts/src/device-linking/authorityActivation.d.ts +5 -0
- package/dist/types/shared-ts/src/device-linking/committedSignerPackages.d.ts +4 -8
- package/dist/types/shared-ts/src/device-linking/contracts.d.ts +13 -74
- package/dist/types/shared-ts/src/device-linking/contracts.typecheck.d.ts +2 -1
- package/dist/types/shared-ts/src/device-linking/deviceManagement.d.ts +7 -0
- package/dist/types/shared-ts/src/device-linking/digests.d.ts +0 -5
- package/dist/types/shared-ts/src/device-linking/ed25519ExportRoot.d.ts +3 -2
- package/dist/types/shared-ts/src/device-linking/index.d.ts +2 -0
- package/dist/types/shared-ts/src/device-linking/parsers.d.ts +4 -41
- package/dist/types/shared-ts/src/device-linking/requestProof.d.ts +0 -1
- package/dist/types/shared-ts/src/device-linking/sourceContribution.d.ts +5 -2
- package/dist/types/shared-ts/src/device-linking/walletSessionCredentialDelivery.d.ts +2 -1
- package/dist/types/shared-ts/src/device-linking/wireFields.d.ts +26 -0
- package/dist/types/shared-ts/src/near/actions.d.ts +4 -4
- package/dist/types/shared-ts/src/near/delegate.d.ts +3 -2
- package/dist/types/shared-ts/src/near/nearClient.d.ts +145 -0
- package/dist/types/shared-ts/src/passkey-custody/ceremonyCommitPayload.d.ts +0 -22
- package/dist/types/shared-ts/src/passkey-custody/credentialActivity.d.ts +2 -4
- package/dist/types/shared-ts/src/passkey-custody/custodyEnvelope.d.ts +14 -30
- package/dist/types/shared-ts/src/passkey-custody/custodySecretBinding.d.ts +8 -24
- package/dist/types/shared-ts/src/passkey-custody/index.d.ts +0 -2
- package/dist/types/shared-ts/src/passkey-custody/primitives.d.ts +9 -14
- package/dist/types/shared-ts/src/signing-lanes/evmFamilySigningKeySlotId.d.ts +0 -15
- package/dist/types/shared-ts/src/signing-lanes/execution.d.ts +11 -50
- package/dist/types/shared-ts/src/signing-lanes/ids.d.ts +1 -10
- package/dist/types/shared-ts/src/signing-lanes/index.d.ts +1 -2
- package/dist/types/shared-ts/src/signing-lanes/ownerContinuity.d.ts +1 -2
- package/dist/types/shared-ts/src/signing-lanes/participantDigest.d.ts +5 -27
- package/dist/types/shared-ts/src/signing-lanes/participants.d.ts +0 -11
- package/dist/types/shared-ts/src/signing-lanes/recordParsers.d.ts +6 -53
- package/dist/types/shared-ts/src/signing-lanes/records.d.ts +1 -2
- package/dist/types/shared-ts/src/signing-lanes/rotation.d.ts +18 -42
- package/dist/types/shared-ts/src/signing-lanes/rotationDigests.d.ts +1 -20
- package/dist/types/shared-ts/src/signing-lanes/rotationLifecycle.d.ts +4 -25
- package/dist/types/shared-ts/src/signing-lanes/rotationParsers.d.ts +1 -41
- package/dist/types/shared-ts/src/signing-lanes/rotationProtocolParsers.d.ts +6 -0
- package/dist/types/shared-ts/src/signing-lanes/rotationWireFields.d.ts +20 -0
- package/dist/types/shared-ts/src/tenant-root/tenantRootIdentifier.d.ts +3 -0
- package/dist/types/shared-ts/src/tenant-root/tenantRootOperationRecord.d.ts +2 -1
- package/dist/types/shared-ts/src/threshold/ecdsaDerivationRoleLocalBootstrap.d.ts +8 -35
- package/dist/types/shared-ts/src/threshold/ed25519OperationFingerprint.d.ts +8 -35
- package/dist/types/shared-ts/src/threshold/keyMaterialBrands.d.ts +25 -0
- package/dist/types/shared-ts/src/threshold/participants.d.ts +3 -9
- package/dist/types/shared-ts/src/threshold/secp256k1.d.ts +0 -37
- package/dist/types/shared-ts/src/threshold/sessionPolicy.d.ts +24 -0
- package/dist/types/shared-ts/src/threshold/signingRootScope.d.ts +3 -5
- package/dist/types/shared-ts/src/utils/addAuthMethodRegistration.d.ts +3 -4
- package/dist/types/shared-ts/src/utils/addWalletAuthMethod.d.ts +7 -108
- package/dist/types/shared-ts/src/utils/addWalletAuthMethod.typecheck.d.ts +16 -3
- package/dist/types/shared-ts/src/utils/canonicalPrimitives.d.ts +2 -0
- package/dist/types/shared-ts/src/utils/digestEncoding.d.ts +9 -0
- package/dist/types/shared-ts/src/utils/domainIds.d.ts +1 -2
- package/dist/types/shared-ts/src/utils/ecdsaKeyFactsInventory.d.ts +3 -13
- package/dist/types/shared-ts/src/utils/eip1559TxWasmJson.d.ts +16 -0
- package/dist/types/shared-ts/src/utils/emailOtpDomain.d.ts +7 -5
- package/dist/types/shared-ts/src/utils/emailOtpRecoveryKey.d.ts +0 -2
- package/dist/types/shared-ts/src/utils/errors.d.ts +0 -7
- package/dist/types/shared-ts/src/utils/exactKeys.d.ts +11 -0
- package/dist/types/shared-ts/src/utils/exactRecord.d.ts +12 -0
- package/dist/types/shared-ts/src/utils/failure.d.ts +12 -0
- package/dist/types/shared-ts/src/utils/index.d.ts +5 -2
- package/dist/types/shared-ts/src/utils/jsonRpc.d.ts +6 -6
- package/dist/types/shared-ts/src/utils/near.d.ts +2 -1
- package/dist/types/shared-ts/src/utils/nearRpcResults.d.ts +8 -7
- package/dist/types/shared-ts/src/utils/normalize.d.ts +0 -4
- package/dist/types/shared-ts/src/utils/registrationAuthMethodInput.d.ts +179 -0
- package/dist/types/shared-ts/src/utils/registrationContracts.d.ts +76 -0
- package/dist/types/shared-ts/src/utils/registrationEstablishedSession.d.ts +1 -2
- package/dist/types/shared-ts/src/utils/registrationIds.d.ts +56 -0
- package/dist/types/shared-ts/src/utils/registrationIntent.d.ts +9 -514
- package/dist/types/shared-ts/src/utils/registrationSignerPlan.d.ts +130 -0
- package/dist/types/shared-ts/src/utils/routerAbEcdsaDerivation.d.ts +24 -93
- package/dist/types/shared-ts/src/utils/routerAbEd25519Yao.d.ts +15 -99
- package/dist/types/shared-ts/src/utils/routerAbEd25519YaoDigests.d.ts +38 -0
- package/dist/types/shared-ts/src/utils/routerAbNormalSigningIdentity.d.ts +30 -8
- package/dist/types/shared-ts/src/utils/routerAbPublicKeyset.d.ts +10 -15
- package/dist/types/shared-ts/src/utils/routerAbTraceContext.d.ts +2 -1
- package/dist/types/shared-ts/src/utils/routerApiKeyAuth.d.ts +2 -0
- package/dist/types/shared-ts/src/utils/secureRandomId.d.ts +0 -2
- package/dist/types/shared-ts/src/utils/signerDomain.d.ts +3 -35
- package/dist/types/shared-ts/src/utils/signerSlot.d.ts +0 -4
- package/dist/types/shared-ts/src/utils/signingSessionSeal.d.ts +10 -17
- package/dist/types/shared-ts/src/utils/thresholdEcdsaChainTarget.d.ts +25 -0
- package/dist/types/shared-ts/src/utils/validation.d.ts +10 -10
- package/dist/types/shared-ts/src/utils/variant.d.ts +29 -0
- package/dist/types/shared-ts/src/utils/variant.typecheck.d.ts +22 -0
- package/dist/types/shared-ts/src/utils/walletAddSignerActivation.d.ts +2 -2
- package/dist/types/shared-ts/src/utils/walletAuthAuthority.d.ts +1 -58
- package/dist/types/shared-ts/src/utils/walletAuthMethodRecord.d.ts +101 -0
- package/dist/types/shared-ts/src/utils/walletCapabilityBindings.d.ts +3 -7
- package/dist/types/shared-ts/src/utils/webauthnDeviceInfo.d.ts +5 -4
- package/dist/types/shared-ts/src/utils/wireSchema.d.ts +60 -0
- package/dist/types/shared-ts/src/wallet-recovery/backupAcknowledgement.d.ts +2 -1
- package/dist/types/shared-ts/src/wallet-recovery/index.d.ts +0 -1
- package/dist/types/shared-ts/src/wallet-recovery/recoveryCodeLocator.d.ts +0 -16
- package/dist/types/shared-ts/src/wallet-recovery/recoveryCodeReservation.d.ts +2 -11
- package/dist/types/shared-ts/src/wallet-recovery/recoveryEnvelopes.d.ts +3 -16
- package/dist/types/shared-ts/src/wallet-recovery/walletRecoveryCommittedProjection.d.ts +6 -18
- package/dist/types/shared-ts/src/wallet-recovery/walletRecoveryEcdsaPossession.d.ts +0 -2
- package/dist/types/shared-ts/src/wallet-recovery/walletRecoveryEnvelopeSet.d.ts +1 -3
- package/dist/types/shared-ts/src/wallet-recovery/walletRecoveryPreparation.d.ts +15 -0
- package/dist/types/shared-ts/src/wallet-recovery/walletRecoveryTarget.d.ts +3 -4
- package/dist/types/wallet-server/src/authorization/capabilityPolicy.d.ts +0 -1
- package/dist/types/wallet-server/src/authorization/domain.d.ts +36 -5
- package/dist/types/wallet-server/src/authorization/ecdsaWalletSessionAdmission.d.ts +61 -0
- package/dist/types/wallet-server/src/authorization/ecdsaWalletSessionAdmission.typecheck.d.ts +2 -0
- package/dist/types/wallet-server/src/authorization/factorEvidence.d.ts +6 -7
- package/dist/types/wallet-server/src/authorization/service.d.ts +71 -3
- package/dist/types/wallet-server/src/cloud-host.d.ts +6 -2
- package/dist/types/wallet-server/src/core/EmailOtpRecords.d.ts +10 -1
- package/dist/types/wallet-server/src/core/EmailOtpStores.d.ts +16 -116
- package/dist/types/wallet-server/src/core/IdentityStore.d.ts +2 -7
- package/dist/types/wallet-server/src/core/NearPublicKeyStore.d.ts +6 -16
- package/dist/types/wallet-server/src/core/RegistrationCeremonyStore.d.ts +29 -90
- package/dist/types/wallet-server/src/core/ThresholdService/config.d.ts +0 -12
- package/dist/types/wallet-server/src/core/ThresholdService/routerAb/ecdsaDerivationPoolFillHandlers.d.ts +10 -3
- package/dist/types/wallet-server/src/core/ThresholdService/routerAb/ecdsaDerivationPresignBridge.d.ts +17 -48
- package/dist/types/wallet-server/src/core/ThresholdService/routerAb/internalServiceHttp.d.ts +2 -1
- package/dist/types/wallet-server/src/core/ThresholdService/stores/CloudflareDurableObjectStore.d.ts +4 -71
- package/dist/types/wallet-server/src/core/ThresholdService/stores/KeyStore.d.ts +2 -1
- package/dist/types/wallet-server/src/core/ThresholdService/stores/SessionStore.d.ts +2 -6
- package/dist/types/wallet-server/src/core/ThresholdService/stores/StoreConfig.d.ts +2 -1
- package/dist/types/wallet-server/src/core/ThresholdService/stores/WalletSessionStore.d.ts +2 -4
- package/dist/types/wallet-server/src/core/ThresholdService/stores/exportReplayGuard.d.ts +3 -0
- package/dist/types/wallet-server/src/core/ThresholdService/validation.d.ts +11 -137
- package/dist/types/wallet-server/src/core/WalletAuthMethodStore.d.ts +2 -7
- package/dist/types/wallet-server/src/core/WalletStore.d.ts +3 -8
- package/dist/types/wallet-server/src/core/WebAuthnAuthenticatorStore.d.ts +15 -22
- package/dist/types/wallet-server/src/core/WebAuthnCredentialBindingStore.d.ts +14 -36
- package/dist/types/wallet-server/src/core/WebAuthnLoginChallengeStore.d.ts +9 -34
- package/dist/types/wallet-server/src/core/WebAuthnSyncChallengeStore.d.ts +9 -34
- package/dist/types/wallet-server/src/core/authService/AuthService.d.ts +0 -3
- package/dist/types/wallet-server/src/core/authService/bytes.d.ts +0 -1
- package/dist/types/wallet-server/src/core/authService/emailOtpChallengeOperations.d.ts +6 -5
- package/dist/types/wallet-server/src/core/authService/emailOtpChallengeProof.d.ts +9 -17
- package/dist/types/wallet-server/src/core/authService/emailOtpChallengeVerification.d.ts +3 -2
- package/dist/types/wallet-server/src/core/authService/emailOtpChallenges.d.ts +8 -32
- package/dist/types/wallet-server/src/core/authService/emailOtpConfig.d.ts +3 -10
- package/dist/types/wallet-server/src/core/authService/emailOtpDelivery.d.ts +4 -3
- package/dist/types/wallet-server/src/core/authService/emailOtpGrant.d.ts +4 -3
- package/dist/types/wallet-server/src/core/authService/emailOtpRegistrationEnrollment.d.ts +3 -70
- package/dist/types/wallet-server/src/core/authService/emailOtpSeal.d.ts +2 -1
- package/dist/types/wallet-server/src/core/authService/emailOtpUnlock.d.ts +6 -12
- package/dist/types/wallet-server/src/core/authService/googleEmailOtpRegistration.d.ts +5 -8
- package/dist/types/wallet-server/src/core/authService/nearPrivateKeySigning.d.ts +3 -2
- package/dist/types/wallet-server/src/core/authService/nearPublicKeyMetadata.d.ts +2 -1
- package/dist/types/wallet-server/src/core/authService/nearTransactions.d.ts +2 -1
- package/dist/types/wallet-server/src/core/authService/oidcVerification.d.ts +4 -3
- package/dist/types/wallet-server/src/core/authService/rateLimits.d.ts +0 -3
- package/dist/types/wallet-server/src/core/authService/registrationThresholdHelpers.d.ts +0 -26
- package/dist/types/wallet-server/src/core/authService/storeRegistry.d.ts +0 -5
- package/dist/types/wallet-server/src/core/authService/thresholdEcdsaKeyInventory.d.ts +0 -23
- package/dist/types/wallet-server/src/core/authService/webauthn.d.ts +8 -16
- package/dist/types/wallet-server/src/core/authService/webauthnOidcHelpers.d.ts +7 -7
- package/dist/types/wallet-server/src/core/authService/webauthnVerificationOutcomes.d.ts +43 -0
- package/dist/types/wallet-server/src/core/authService/webauthnWalletBinding.d.ts +1 -28
- package/dist/types/wallet-server/src/core/d1EcdsaSignerRead.d.ts +39 -0
- package/dist/types/wallet-server/src/core/d1IdentityStore.d.ts +6 -16
- package/dist/types/wallet-server/src/core/d1TenantStore.d.ts +51 -0
- package/dist/types/wallet-server/src/core/d1WalletAuthMethodStore.d.ts +11 -29
- package/dist/types/wallet-server/src/core/d1WalletStore.d.ts +16 -1
- package/dist/types/wallet-server/src/core/deviceLinking/linkedDeviceEd25519ExportRoot.d.ts +2 -1
- package/dist/types/wallet-server/src/core/deviceLinking/linkedDeviceEmailOtpGrant.d.ts +2 -1
- package/dist/types/wallet-server/src/core/deviceLinking/linkedDeviceManagement.d.ts +44 -26
- package/dist/types/wallet-server/src/core/deviceLinking/linkedDeviceSession.d.ts +19 -217
- package/dist/types/wallet-server/src/core/deviceLinking/linkedDeviceSessionApproval.d.ts +8 -0
- package/dist/types/wallet-server/src/core/deviceLinking/linkedDeviceSessionRecord.d.ts +258 -0
- package/dist/types/wallet-server/src/core/deviceLinking/requestProof.d.ts +2 -2
- package/dist/types/wallet-server/src/core/ecdsaMaterialReadSnapshot.d.ts +19 -0
- package/dist/types/wallet-server/src/core/emailOtpD1Statements.d.ts +54 -0
- package/dist/types/wallet-server/src/core/hostedAccountIds.d.ts +0 -15
- package/dist/types/wallet-server/src/core/keyMaterialBrands.d.ts +4 -24
- package/dist/types/wallet-server/src/core/nearRelayerAccountProvisioning.d.ts +2 -3
- package/dist/types/wallet-server/src/core/nearSignerWasmRuntime.d.ts +0 -1
- package/dist/types/wallet-server/src/core/registrationContracts.d.ts +37 -108
- package/dist/types/wallet-server/src/core/routerAbSigning/RouterAbNormalSigningRuntime.d.ts +8 -9
- package/dist/types/wallet-server/src/core/rpcClients/near/NearClient.d.ts +10 -107
- package/dist/types/wallet-server/src/core/signingLanes/LaneAggregateRevocationApplicationService.d.ts +4 -3
- package/dist/types/wallet-server/src/core/signingLanes/LaneEffectJournalStore.d.ts +2 -3
- package/dist/types/wallet-server/src/core/signingLanes/LaneLifecycleStore.d.ts +2 -3
- package/dist/types/wallet-server/src/core/signingLanes/WalletExecutionLaneProjection.d.ts +5 -20
- package/dist/types/wallet-server/src/core/signingLanes/ecdsaServerRetirement.d.ts +4 -4
- package/dist/types/wallet-server/src/core/signingLanes/ed25519ServerRetirement.d.ts +3 -3
- package/dist/types/wallet-server/src/core/signingLanes/signingWorkerLaneMaterialIdentity.d.ts +2 -19
- package/dist/types/wallet-server/src/core/storeBackends.d.ts +83 -0
- package/dist/types/wallet-server/src/core/threeRouteRegistrationContracts.d.ts +13 -59
- package/dist/types/wallet-server/src/core/threeRouteRegistrationContracts.typecheck.d.ts +51 -3
- package/dist/types/wallet-server/src/core/thresholdEcdsaChainTarget.d.ts +3 -12
- package/dist/types/wallet-server/src/core/types.d.ts +5 -30
- package/dist/types/wallet-server/src/core/webAuthnD1Statements.d.ts +29 -0
- package/dist/types/wallet-server/src/core/webAuthnStoreBackends.d.ts +96 -0
- package/dist/types/wallet-server/src/hosted-wallet-gateway.d.ts +11 -7
- package/dist/types/wallet-server/src/index.d.ts +1 -1
- package/dist/types/wallet-server/src/local-hosted-wallet-gateway-worker.d.ts +1 -4
- package/dist/types/wallet-server/src/localHostedWalletGatewayHandler.d.ts +12 -0
- package/dist/types/wallet-server/src/localIntendedEcdsaFinalizeFault.d.ts +33 -0
- package/dist/types/wallet-server/src/localIntendedLinkExecuteFault.d.ts +47 -0
- package/dist/types/wallet-server/src/localIntendedMaterialAdmissionFault.d.ts +38 -0
- package/dist/types/wallet-server/src/localIntendedPresignCancellation.d.ts +4 -0
- package/dist/types/wallet-server/src/localIntendedRevokeFault.d.ts +40 -0
- package/dist/types/wallet-server/src/localIntendedSessionAdmissionFault.d.ts +41 -0
- package/dist/types/wallet-server/src/localIntendedYaoExportFault.d.ts +41 -0
- package/dist/types/wallet-server/src/localIntendedYaoFault.d.ts +7 -1
- package/dist/types/wallet-server/src/localIntendedYaoFinalizeFault.d.ts +37 -0
- package/dist/types/wallet-server/src/localIntendedYaoRecoveryFault.d.ts +45 -0
- package/dist/types/wallet-server/src/localIntendedYaoSigningFault.d.ts +51 -0
- package/dist/types/wallet-server/src/router/auth/authRequestValidation.d.ts +13 -29
- package/dist/types/wallet-server/src/router/auth/commonRouterUtils.d.ts +20 -11
- package/dist/types/wallet-server/src/router/auth/walletSessionFailure.d.ts +1 -4
- package/dist/types/wallet-server/src/router/auth/webAuthnCredentialCodecs.d.ts +3 -2
- package/dist/types/wallet-server/src/router/cloudflare/d1/auth/d1AuthorizedOperationRouteService.d.ts +12 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/auth/d1RouterApiAuthBoundary.d.ts +3 -3
- package/dist/types/wallet-server/src/router/cloudflare/d1/auth/d1RouterApiAuthConfig.d.ts +2 -2
- package/dist/types/wallet-server/src/router/cloudflare/d1/auth/d1RouterApiAuthService.d.ts +1 -1
- package/dist/types/wallet-server/src/router/cloudflare/d1/auth/walletSessionCredentialReaders.d.ts +9 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/authorization/authorizedOperationStatements.d.ts +34 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/authorization/d1AuthorizationStore.d.ts +54 -21
- package/dist/types/wallet-server/src/router/cloudflare/d1/authorization/persistedWalletSessionAuthorization.d.ts +3 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/authorization/walletSessionAuthorityProjection.d.ts +2 -1
- package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceAuthorityInstallService.d.ts +74 -6
- package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceEmailOtpGrantStore.d.ts +2 -3
- package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceEmailOtpTargetFactor.d.ts +8 -21
- package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceOwnerAuthorizationProvider.d.ts +14 -1
- package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceRevocation.d.ts +49 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceSessionRecords.d.ts +1 -1
- package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceSessionStore.d.ts +6 -8
- package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceSourceContributionPreparationPlanner.d.ts +1 -1
- package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceTargetCredentialProvider.d.ts +7 -10
- package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceTargetPlanner.d.ts +8 -4
- package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceVerifiedLinkBuilder.d.ts +3 -5
- package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/installedEcdsaAuthority.d.ts +7 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/ed25519Yao/d1Ed25519YaoCapabilityPersistence.d.ts +1 -2
- package/dist/types/wallet-server/src/router/cloudflare/d1/ed25519Yao/d1Ed25519YaoLifecycleDecisionStore.d.ts +33 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpChallengeIssuer.d.ts +1 -1
- package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpChallengeStore.d.ts +13 -3
- package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpChallengeVerifier.d.ts +24 -5
- package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpEnrollmentStore.d.ts +4 -11
- package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpGrantStore.d.ts +1 -3
- package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpRateLimitStore.d.ts +4 -12
- package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpRecords.d.ts +13 -12
- package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpRecoveryService.d.ts +0 -2
- package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpRegistrationEnrollmentFinalizer.d.ts +5 -4
- package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpServerSealRuntime.d.ts +4 -14
- package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1GoogleEmailOtpRegistrationAttemptStore.d.ts +1 -3
- package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1GoogleEmailOtpRegistrationRecords.d.ts +3 -21
- package/dist/types/wallet-server/src/router/cloudflare/d1/identity/d1IdentityRecords.d.ts +0 -23
- package/dist/types/wallet-server/src/router/cloudflare/d1/near/d1NearPublicKeyStore.d.ts +1 -2
- package/dist/types/wallet-server/src/router/cloudflare/d1/passkeyCustody/d1PasskeyCustodyEnvelopeStore.d.ts +11 -19
- package/dist/types/wallet-server/src/router/cloudflare/d1/passkeyCustody/d1PasskeyCustodyRouteService.d.ts +5 -54
- package/dist/types/wallet-server/src/router/cloudflare/d1/passkeyCustody/d1WalletCustodyCommitStore.d.ts +7 -19
- package/dist/types/wallet-server/src/router/cloudflare/d1/passkeyCustody/d1WalletRecoveryGoogleEmailOtpRecords.d.ts +4 -3
- package/dist/types/wallet-server/src/router/cloudflare/d1/passkeyCustody/d1WalletRecoveryGoogleEmailOtpService.d.ts +8 -12
- package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1RegistrationCeremonyRecordStore.d.ts +7 -14
- package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1RegistrationCeremonyRecords.d.ts +10 -22
- package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1RegistrationCeremonyStore.d.ts +6 -2
- package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1WalletRegistrationCommitStore.d.ts +10 -6
- package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1WalletRegistrationService.d.ts +21 -26
- package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1WalletRegistrationSetup.d.ts +5 -3
- package/dist/types/wallet-server/src/router/cloudflare/d1/registration/walletRegistrationEstablishedSessionIssuer.d.ts +4 -3
- package/dist/types/wallet-server/src/router/cloudflare/d1/registration/walletRegistrationSessionCommitReceipt.d.ts +5 -5
- package/dist/types/wallet-server/src/router/cloudflare/d1/signingAdmission/d1RouterAbNormalSigningAdmissionStore.d.ts +17 -6
- package/dist/types/wallet-server/src/router/cloudflare/d1/signingLanes/d1LaneEffectJournalStore.d.ts +0 -1
- package/dist/types/wallet-server/src/router/cloudflare/d1/versionedJson/d1VersionedJsonRecordStore.d.ts +0 -16
- package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletAddSignerService.d.ts +29 -14
- package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletAuthMethodBoundary.d.ts +15 -12
- package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletAuthMethodRevocationReplayStore.d.ts +71 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletAuthMethodService.d.ts +34 -24
- package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletAuthorityStore.d.ts +44 -26
- package/dist/types/wallet-server/src/router/cloudflare/d1/webauthn/d1WebAuthnRecords.d.ts +13 -46
- package/dist/types/wallet-server/src/router/cloudflare/d1/webauthn/d1WebAuthnStore.d.ts +8 -19
- package/dist/types/wallet-server/src/router/cloudflare/runtime/walletConsoleOps.d.ts +8 -34
- package/dist/types/wallet-server/src/router/cloudflare/runtime/walletConsoleTenantRootLineage.d.ts +2 -1
- package/dist/types/wallet-server/src/router/cloudflare/runtime/walletGateway.d.ts +1 -0
- package/dist/types/wallet-server/src/router/cloudflare/signingLanes/cloudflareOrdinaryInactiveSignerMaterialReservation.d.ts +15 -2
- package/dist/types/wallet-server/src/router/cloudflare-adaptor.d.ts +2 -2
- package/dist/types/wallet-server/src/router/domains/ecdsa/routerAbEcdsaStrictRegistration.d.ts +9 -7
- package/dist/types/wallet-server/src/router/domains/ecdsa/thresholdEcdsaRequestValidation.d.ts +6 -18
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoLifecycleDecision.d.ts +46 -0
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistration.d.ts +5 -3
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistrationPartitionedStateStore.d.ts +20 -79
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistrationPartitioning.d.ts +2 -0
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistrationRequestScopedRunner.d.ts +1 -1
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistrationRequestScopedRuntime.d.ts +4 -3
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/export/routerAbEd25519YaoExport.d.ts +62 -42
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/recovery/routerAbEd25519YaoRecovery.d.ts +108 -32
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/recovery/routerAbEd25519YaoRecoveryActivation.typecheck.d.ts +5 -0
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/registration/routerAbEd25519YaoHttpRegistrationBackend.d.ts +36 -5
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistration.d.ts +5 -4
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistrationExecutionRecord.d.ts +41 -50
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistrationIntentAuthorization.d.ts +2 -2
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistrationRequestScopedCloudflare.d.ts +3 -3
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistrationSideEffectBoundary.d.ts +6 -5
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistrationTwoPhaseRunner.d.ts +14 -4
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/routerAbEd25519YaoGatewayEnvelope.d.ts +12 -1
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/session/routerAbEd25519YaoWalletSession.d.ts +11 -52
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/session/thresholdEd25519RequestValidation.d.ts +3 -4
- package/dist/types/wallet-server/src/router/domains/emailOtp/emailOtpExportPolicy.d.ts +2 -27
- package/dist/types/wallet-server/src/router/domains/emailOtp/emailOtpRequestValidation.d.ts +1 -2
- package/dist/types/wallet-server/src/router/domains/emailOtp/emailOtpRouteHandlers.d.ts +2 -1
- package/dist/types/wallet-server/src/router/domains/emailOtp/emailOtpSessionRouteHelpers.d.ts +2 -102
- package/dist/types/wallet-server/src/router/domains/passkeyCustody/envelopeRevocationAdmission.d.ts +2 -1
- package/dist/types/wallet-server/src/router/domains/passkeyCustody/passkeyCustodyEnvelopeRetrieval.d.ts +3 -2
- package/dist/types/wallet-server/src/router/domains/passkeyCustody/passkeyCustodyEnvelopeRetrievalRoute.d.ts +1 -9
- package/dist/types/wallet-server/src/router/domains/passkeyCustody/registrationCustodyOutcome.d.ts +2 -1
- package/dist/types/wallet-server/src/router/domains/passkeyCustody/verifiedCustodyFactor.d.ts +2 -1
- package/dist/types/wallet-server/src/router/domains/passkeyCustody/walletCustodyRegistrationAdmission.d.ts +2 -1
- package/dist/types/wallet-server/src/router/domains/passkeyCustody/walletCustodyRegistrationCommit.d.ts +2 -28
- package/dist/types/wallet-server/src/router/domains/passkeyCustody/walletRecoveryFinalization.d.ts +43 -1
- package/dist/types/wallet-server/src/router/domains/passkeyCustody/walletRecoveryKeyManifest.d.ts +7 -19
- package/dist/types/wallet-server/src/router/domains/signingOperations/ed25519AuthorizedOperationReceipt.d.ts +0 -3
- package/dist/types/wallet-server/src/router/domains/signingOperations/routerAbEcdsaDerivationNormalSigningRoute.d.ts +164 -0
- package/dist/types/wallet-server/src/router/domains/signingOperations/routerAbEd25519NormalSigningRoute.d.ts +110 -0
- package/dist/types/wallet-server/src/router/domains/signingOperations/routerAbNormalSigningAdmission.d.ts +373 -0
- package/dist/types/wallet-server/src/router/domains/signingOperations/routerAbNormalSigningAdmissionCore.d.ts +11 -10
- package/dist/types/wallet-server/src/router/domains/signingOperations/routerAbNormalSigningAdmissionCore.typecheck.d.ts +2 -0
- package/dist/types/wallet-server/src/router/domains/signingOperations/routerAbOperationStepUp.d.ts +164 -0
- package/dist/types/wallet-server/src/router/domains/signingOperations/routerAbPrivateSigningWorker.d.ts +22 -717
- package/dist/types/wallet-server/src/router/domains/signingOperations/walletExecutionAdmission.d.ts +5 -12
- package/dist/types/wallet-server/src/router/domains/syncAccount/syncAccountRequestValidation.d.ts +6 -10
- package/dist/types/wallet-server/src/router/domains/tenantRoot/tenantRootCustodyLineage.d.ts +6 -1
- package/dist/types/wallet-server/src/router/domains/tenantRoot/tenantRootIdentityResolution.d.ts +4 -7
- package/dist/types/wallet-server/src/router/domains/walletRegistration/walletRegistrationInputs.d.ts +2 -1
- package/dist/types/wallet-server/src/router/domains/walletRegistration/walletRegistrationRoutes.d.ts +8 -8
- package/dist/types/wallet-server/src/router/domains/walletRegistration/walletRegistrationSetupPayload.d.ts +4 -4
- package/dist/types/wallet-server/src/router/domains/walletUnlock/walletUnlockRequestedCapabilitiesValidation.d.ts +4 -4
- package/dist/types/wallet-server/src/router/domains/walletUnlock/walletUnlockRouteHandlers.d.ts +4 -62
- package/dist/types/wallet-server/src/router/express-adaptor.d.ts +2 -2
- package/dist/types/wallet-server/src/router/framework/apiCredentialPorts.d.ts +3 -1
- package/dist/types/wallet-server/src/router/framework/authServicePort.d.ts +89 -65
- package/dist/types/wallet-server/src/router/framework/http.d.ts +1 -1
- package/dist/types/wallet-server/src/router/framework/ror/normalize.d.ts +1 -9
- package/dist/types/wallet-server/src/router/framework/routeMeteringPolicy.d.ts +3 -2
- package/dist/types/wallet-server/src/router/framework/routerApi.d.ts +1 -1
- package/dist/types/wallet-server/src/router/framework/routerApiRouteSurface.d.ts +3 -3
- package/dist/types/wallet-server/src/router/node/nodeHostedWalletGateway.d.ts +34 -0
- package/dist/types/wallet-server/src/router/node/nodeHostedWalletGatewayCheck.d.ts +21 -0
- package/dist/types/wallet-server/src/router/node/nodeHostedWalletGatewayMain.d.ts +2 -0
- package/dist/types/wallet-server/src/router/node/nodeHttp.d.ts +13 -0
- package/dist/types/wallet-server/src/router/node/nodeSqlite.d.ts +22 -0
- package/dist/types/wallet-server/src/router/node/signerSqlMigrations.d.ts +20 -0
- package/dist/types/wallet-server/src/router/transport/fetch/createFetchRouter.d.ts +1 -3
- package/dist/types/wallet-server/src/router/transport/fetch/routes/deviceLinking.d.ts +5 -6
- package/dist/types/wallet-server/src/router/transport/fetch/routes/deviceLinkingOwnerAuthorization.d.ts +5 -8
- package/dist/types/wallet-server/src/router/transport/fetch/routes/deviceManagement.d.ts +14 -16
- package/dist/types/wallet-server/src/router/transport/fetch/routes/normalSigningRouterProxy.d.ts +0 -12
- package/dist/types/wallet-server/src/router/transport/fetch/routes/passkeyCustody.d.ts +1 -1
- package/dist/types/wallet-server/src/router/transport/fetch/routes/sessions.d.ts +2 -1
- package/dist/types/wallet-server/src/router/transport/fetch/routes/syncAccountBootstrap.d.ts +9 -17
- package/dist/types/wallet-server/src/router/transport/fetch/routes/thresholdEcdsa.d.ts +3 -58
- package/dist/types/wallet-server/src/router/transport/fetch/routes/thresholdEd25519.d.ts +0 -44
- package/dist/types/wallet-server/src/storage/d1Sql.d.ts +7 -0
- package/dist/types/wallet-server/src/storage/syncSqlite.d.ts +28 -0
- package/dist/types/wallet-server/src/threshold/session/signingSessionSeal/crypto/shamir3PassWasm.d.ts +0 -1
- package/dist/types/wallet-server/src/threshold/session/signingSessionSeal/idempotencyRecords.d.ts +5 -7
- package/dist/types/wallet-server/src/threshold/session/signingSessionSeal/signingSessionSeal.types.d.ts +6 -8
- package/dist/types/wallet-server/src/threshold/session/signingSessionSeal/transport/shared.d.ts +1 -0
- package/dist/types/wallet-server/src/threshold/statusCodes.d.ts +4 -4
- package/migrations/d1-signer/0036_r150_yao_lifecycle_decisions.sql +22 -0
- package/migrations/d1-signer/0037_r150_wallet_auth_method_revocation_replays.sql +26 -0
- package/migrations/d1-signer/0038_r150_registration_ceremony_cas_guard_seed.sql +8 -0
- package/migrations/d1-signer/0039_r150_revocation_replay_answer_kind.sql +9 -0
- package/package.json +1 -1
- package/dist/esm/core/ThresholdService/ecdsaClientRootProof.js +0 -27
- package/dist/esm/core/ThresholdService/routerAbEcdsaSigningWorkerWasm.js +0 -115
- package/dist/esm/core/ThresholdService/secureRandomId.js +0 -9
- package/dist/esm/core/authService/record.js +0 -8
- package/dist/esm/core/authService/thresholdRuntimePolicy.js +0 -19
- package/dist/esm/core/authService/walletRegistrationPlanning.js +0 -49
- package/dist/esm/core/deviceLinking/index.js +0 -5
- package/dist/esm/core/errors.js +0 -54
- package/dist/esm/core/routerAbSigning/createCloudflareDurableObjectRouterAbSigningRuntimes.js +0 -39
- package/dist/esm/core/signingLanes/WalletKeyStore.js +0 -0
- package/dist/esm/core/signingLanes/index.js +0 -8
- package/dist/esm/router/domains/tenantRoot/tenantRootEcdsaWalletSessionComposition.js +0 -55
- package/dist/esm/router/domains/tenantRoot/tenantRootEd25519WalletSessionComposition.js +0 -56
- package/dist/esm/shared-ts/src/signing-lanes/linkedEcdsaScope.js +0 -1
- package/dist/esm/wasm/router_ab_ecdsa_signing_worker/pkg/router_ab_ecdsa_signing_worker.js +0 -414
- package/dist/esm/wasm/router_ab_ecdsa_signing_worker/pkg/router_ab_ecdsa_signing_worker_bg.wasm +0 -0
- package/dist/types/shared-ts/src/passkey-custody/credentialObservations.d.ts +0 -74
- package/dist/types/shared-ts/src/passkey-custody/kekContext.d.ts +0 -34
- package/dist/types/shared-ts/src/signing-lanes/linkedEcdsaScope.d.ts +0 -62
- package/dist/types/shared-ts/src/signing-lanes/linkedEcdsaScope.typecheck.d.ts +0 -2
- package/dist/types/shared-ts/src/signing-lanes/validation.d.ts +0 -11
- package/dist/types/shared-ts/src/utils/bigint.d.ts +0 -3
- package/dist/types/shared-ts/src/utils/paillier.d.ts +0 -37
- package/dist/types/shared-ts/src/utils/recoveryDomain.d.ts +0 -12
- package/dist/types/shared-ts/src/utils/signerDomain.typecheck.d.ts +0 -2
- package/dist/types/shared-ts/src/wallet-recovery/recoveryKekContext.d.ts +0 -37
- package/dist/types/wallet-server/src/core/ThresholdService/ecdsaClientRootProof.d.ts +0 -12
- package/dist/types/wallet-server/src/core/ThresholdService/routerAbEcdsaSigningWorkerWasm.d.ts +0 -17
- package/dist/types/wallet-server/src/core/ThresholdService/secureRandomId.d.ts +0 -2
- package/dist/types/wallet-server/src/core/authService/record.d.ts +0 -2
- package/dist/types/wallet-server/src/core/authService/thresholdRuntimePolicy.d.ts +0 -4
- package/dist/types/wallet-server/src/core/authService/walletRegistrationPlanning.d.ts +0 -19
- package/dist/types/wallet-server/src/core/deviceLinking/index.d.ts +0 -5
- package/dist/types/wallet-server/src/core/errors.d.ts +0 -10
- package/dist/types/wallet-server/src/core/routerAbSigning/createCloudflareDurableObjectRouterAbSigningRuntimes.d.ts +0 -28
- package/dist/types/wallet-server/src/core/signingLanes/SigningLaneStore.d.ts +0 -15
- package/dist/types/wallet-server/src/core/signingLanes/WalletKeyStore.d.ts +0 -13
- package/dist/types/wallet-server/src/core/signingLanes/index.d.ts +0 -11
- package/dist/types/wallet-server/src/router/domains/tenantRoot/tenantRootEcdsaWalletSessionComposition.d.ts +0 -35
- package/dist/types/wallet-server/src/router/domains/tenantRoot/tenantRootEd25519WalletSessionComposition.d.ts +0 -35
- /package/dist/esm/{core/signingLanes/SigningLaneStore.js → authorization/ecdsaWalletSessionAdmission.js} +0 -0
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
import { parseWebAuthnRpId } from "../shared-ts/src/utils/domainIds.js";
|
|
2
|
-
import { parseWalletAuthMethodRecordV2, walletAuthMethodRecordId, walletIdFromString } from "../shared-ts/src/utils/registrationIntent.js";
|
|
3
2
|
import { normalizeOptionalTrimmedString } from "../shared-ts/src/utils/normalize.js";
|
|
4
|
-
import "../shared-ts/src/utils/validation.js";
|
|
5
|
-
import {
|
|
3
|
+
import { isPlainObject } from "../shared-ts/src/utils/validation.js";
|
|
4
|
+
import { parseWalletAuthMethodRecordV2, walletAuthMethodRecordId } from "../shared-ts/src/utils/walletAuthMethodRecord.js";
|
|
5
|
+
import { D1_BATCH_CAS_GUARD_SQL, parseD1JsonColumn } from "../storage/d1Sql.js";
|
|
6
|
+
import { D1Schema, D1TenantTable, ensureD1Schema } from "./d1TenantStore.js";
|
|
7
|
+
import { walletIdFromString } from "../shared-ts/src/utils/registrationIds.js";
|
|
6
8
|
//#region src/core/d1WalletAuthMethodStore.ts
|
|
9
|
+
/** Names the wallet auth-method store in D1 scope errors. */
|
|
10
|
+
const WALLET_AUTH_METHOD_D1_STORE = "wallet auth-method store";
|
|
7
11
|
const WALLET_AUTH_METHOD_STORE_D1_SCHEMA_SQL = Object.freeze([
|
|
8
12
|
`
|
|
9
13
|
CREATE TABLE IF NOT EXISTS wallet_auth_methods (
|
|
@@ -237,13 +241,10 @@ const WALLET_AUTH_METHOD_STORE_D1_SCHEMA_V2_SQL = Object.freeze([
|
|
|
237
241
|
`
|
|
238
242
|
]);
|
|
239
243
|
async function ensureWalletAuthMethodStoreD1Schema(options) {
|
|
240
|
-
|
|
244
|
+
await ensureD1Schema(options.database, WALLET_AUTH_METHOD_STORE_D1_SCHEMA_SQL);
|
|
241
245
|
}
|
|
242
246
|
async function ensureWalletAuthMethodStoreD1SchemaV2(options) {
|
|
243
|
-
|
|
244
|
-
}
|
|
245
|
-
function isObject(value) {
|
|
246
|
-
return Boolean(value && typeof value === "object" && !Array.isArray(value));
|
|
247
|
+
await ensureD1Schema(options.database, WALLET_AUTH_METHOD_STORE_D1_SCHEMA_V2_SQL);
|
|
247
248
|
}
|
|
248
249
|
function trimString(value) {
|
|
249
250
|
return typeof value === "string" ? value.trim() : "";
|
|
@@ -252,7 +253,7 @@ function walletAuthMethodId(record) {
|
|
|
252
253
|
return walletAuthMethodRecordId(record);
|
|
253
254
|
}
|
|
254
255
|
function normalizeWalletAuthMethod(raw) {
|
|
255
|
-
if (!
|
|
256
|
+
if (!isPlainObject(raw)) return null;
|
|
256
257
|
const version = trimString(raw.version);
|
|
257
258
|
const kind = trimString(raw.kind);
|
|
258
259
|
const status = trimString(raw.status);
|
|
@@ -393,21 +394,6 @@ function prepareD1WalletAuthMethodV2PutStatement(input) {
|
|
|
393
394
|
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
394
395
|
${conflictClause}`).bind(input.scope.namespace, input.scope.orgId, input.scope.projectId, input.scope.envId, columns.walletId, columns.walletAuthorityId, columns.rpId, columns.kind, columns.status, columns.walletAuthMethodId, columns.authIdentifierKey, columns.credentialIdB64u, columns.credentialPublicKeyB64u, columns.emailHashHex, columns.registrationAuthorityId, columns.recordJson, columns.createdAtMs, columns.updatedAtMs, columns.activatedAtMs, columns.revokedAtMs);
|
|
395
396
|
}
|
|
396
|
-
function requireD1ScopeString(input, field) {
|
|
397
|
-
const normalized = normalizeOptionalTrimmedString(input);
|
|
398
|
-
if (!normalized) throw new Error(`${field} is required for D1 wallet auth-method store`);
|
|
399
|
-
return normalized;
|
|
400
|
-
}
|
|
401
|
-
function normalizeD1WalletAuthMethodStoreOptions(input) {
|
|
402
|
-
return {
|
|
403
|
-
database: input.database,
|
|
404
|
-
namespace: requireD1ScopeString(input.namespace, "namespace"),
|
|
405
|
-
orgId: requireD1ScopeString(input.orgId, "orgId"),
|
|
406
|
-
projectId: requireD1ScopeString(input.projectId, "projectId"),
|
|
407
|
-
envId: requireD1ScopeString(input.envId, "envId"),
|
|
408
|
-
ensureSchema: input.ensureSchema !== false
|
|
409
|
-
};
|
|
410
|
-
}
|
|
411
397
|
function bindWalletAuthMethodIdentity(record) {
|
|
412
398
|
switch (record.kind) {
|
|
413
399
|
case "passkey": return {
|
|
@@ -429,30 +415,11 @@ function bindWalletAuthMethodIdentity(record) {
|
|
|
429
415
|
default: return assertNeverWalletAuthMethod(record);
|
|
430
416
|
}
|
|
431
417
|
}
|
|
432
|
-
function
|
|
418
|
+
function prepareD1WalletAuthMethodWriteStatement(input, insertOnly) {
|
|
433
419
|
const parsed = normalizeWalletAuthMethod(input.record);
|
|
434
420
|
if (!parsed) throw new Error("Invalid wallet auth method record");
|
|
435
421
|
const identity = bindWalletAuthMethodIdentity(parsed);
|
|
436
|
-
|
|
437
|
-
namespace,
|
|
438
|
-
org_id,
|
|
439
|
-
project_id,
|
|
440
|
-
env_id,
|
|
441
|
-
wallet_id,
|
|
442
|
-
rp_id,
|
|
443
|
-
kind,
|
|
444
|
-
status,
|
|
445
|
-
wallet_auth_method_id,
|
|
446
|
-
auth_identifier_key,
|
|
447
|
-
credential_id_b64u,
|
|
448
|
-
credential_public_key_b64u,
|
|
449
|
-
email_hash_hex,
|
|
450
|
-
registration_authority_id,
|
|
451
|
-
record_json,
|
|
452
|
-
created_at_ms,
|
|
453
|
-
updated_at_ms
|
|
454
|
-
)
|
|
455
|
-
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
422
|
+
const conflictClause = insertOnly ? "" : `
|
|
456
423
|
ON CONFLICT (namespace, org_id, project_id, env_id, wallet_auth_method_id)
|
|
457
424
|
DO UPDATE SET
|
|
458
425
|
wallet_id = EXCLUDED.wallet_id,
|
|
@@ -472,15 +439,7 @@ function prepareD1WalletAuthMethodPutStatement(input) {
|
|
|
472
439
|
updated_at_ms = MAX(
|
|
473
440
|
wallet_auth_methods.updated_at_ms,
|
|
474
441
|
EXCLUDED.updated_at_ms
|
|
475
|
-
)
|
|
476
|
-
}
|
|
477
|
-
/** Insert-only auth-method write used when a new factor and its envelope are
|
|
478
|
-
* committed together. A credential collision must abort the enclosing D1
|
|
479
|
-
* batch instead of updating an existing factor's identity. */
|
|
480
|
-
function prepareD1WalletAuthMethodInsertStatement(input) {
|
|
481
|
-
const parsed = normalizeWalletAuthMethod(input.record);
|
|
482
|
-
if (!parsed) throw new Error("Invalid wallet auth method record");
|
|
483
|
-
const identity = bindWalletAuthMethodIdentity(parsed);
|
|
442
|
+
)`;
|
|
484
443
|
return input.database.prepare(`INSERT INTO wallet_auth_methods (
|
|
485
444
|
namespace,
|
|
486
445
|
org_id,
|
|
@@ -500,41 +459,46 @@ function prepareD1WalletAuthMethodInsertStatement(input) {
|
|
|
500
459
|
created_at_ms,
|
|
501
460
|
updated_at_ms
|
|
502
461
|
)
|
|
503
|
-
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`).bind(input.scope.namespace, input.scope.orgId, input.scope.projectId, input.scope.envId, parsed.walletId, identity.rpId, parsed.kind, parsed.status, walletAuthMethodId(parsed), identity.authIdentifierKey, identity.credentialIdB64u, identity.credentialPublicKeyB64u, identity.emailHashHex, identity.registrationAuthorityId, JSON.stringify(parsed), parsed.createdAtMs, parsed.updatedAtMs);
|
|
462
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)${conflictClause}`).bind(input.scope.namespace, input.scope.orgId, input.scope.projectId, input.scope.envId, parsed.walletId, identity.rpId, parsed.kind, parsed.status, walletAuthMethodId(parsed), identity.authIdentifierKey, identity.credentialIdB64u, identity.credentialPublicKeyB64u, identity.emailHashHex, identity.registrationAuthorityId, JSON.stringify(parsed), parsed.createdAtMs, parsed.updatedAtMs);
|
|
463
|
+
}
|
|
464
|
+
function prepareD1WalletAuthMethodPutStatement(input) {
|
|
465
|
+
return prepareD1WalletAuthMethodWriteStatement(input, false);
|
|
466
|
+
}
|
|
467
|
+
/** Insert-only auth-method write used when a new factor and its envelope are
|
|
468
|
+
* committed together. A credential collision must abort the enclosing D1
|
|
469
|
+
* batch instead of updating an existing factor's identity. */
|
|
470
|
+
function prepareD1WalletAuthMethodInsertStatement(input) {
|
|
471
|
+
return prepareD1WalletAuthMethodWriteStatement(input, true);
|
|
504
472
|
}
|
|
505
473
|
function assertNeverWalletAuthMethod(record) {
|
|
506
474
|
throw new Error(`Unexpected wallet auth method record: ${JSON.stringify(record)}`);
|
|
507
475
|
}
|
|
476
|
+
/** Reads one method's stored JSON by id; the caller picks the record version to parse. */
|
|
477
|
+
async function readD1WalletAuthMethodJsonById(database, scope, walletAuthMethodId) {
|
|
478
|
+
return parseD1JsonColumn((await database.prepare(`SELECT record_json
|
|
479
|
+
FROM wallet_auth_methods
|
|
480
|
+
WHERE namespace = ?
|
|
481
|
+
AND org_id = ?
|
|
482
|
+
AND project_id = ?
|
|
483
|
+
AND env_id = ?
|
|
484
|
+
AND wallet_auth_method_id = ?
|
|
485
|
+
LIMIT 1`).bind(scope.namespace, scope.orgId, scope.projectId, scope.envId, walletAuthMethodId).first())?.record_json);
|
|
486
|
+
}
|
|
487
|
+
/** Aborts the enclosing batch when the statement just before it changed no row. */
|
|
488
|
+
function prepareD1InsertCasGuardStatement(database) {
|
|
489
|
+
return database.prepare(D1_BATCH_CAS_GUARD_SQL);
|
|
490
|
+
}
|
|
508
491
|
var D1WalletAuthMethodStore = class {
|
|
509
492
|
constructor(input) {
|
|
510
493
|
this.adapterKind = "d1";
|
|
511
|
-
this.
|
|
512
|
-
this.
|
|
513
|
-
const normalized = normalizeD1WalletAuthMethodStoreOptions(input);
|
|
514
|
-
this.database = normalized.database;
|
|
515
|
-
this.scope = {
|
|
516
|
-
namespace: normalized.namespace,
|
|
517
|
-
orgId: normalized.orgId,
|
|
518
|
-
projectId: normalized.projectId,
|
|
519
|
-
envId: normalized.envId
|
|
520
|
-
};
|
|
521
|
-
this.ensureSchemaOnUse = normalized.ensureSchema;
|
|
522
|
-
}
|
|
523
|
-
async ensureSchema() {
|
|
524
|
-
if (!this.ensureSchemaOnUse || this.schemaReady) return;
|
|
525
|
-
await ensureWalletAuthMethodStoreD1Schema({ database: this.database });
|
|
526
|
-
this.schemaReady = true;
|
|
527
|
-
}
|
|
528
|
-
async ensureV2Schema() {
|
|
529
|
-
if (!this.ensureSchemaOnUse || this.v2SchemaReady) return;
|
|
530
|
-
await ensureWalletAuthMethodStoreD1SchemaV2({ database: this.database });
|
|
531
|
-
this.v2SchemaReady = true;
|
|
494
|
+
this.table = new D1TenantTable(input, WALLET_AUTH_METHOD_D1_STORE, WALLET_AUTH_METHOD_STORE_D1_SCHEMA_SQL);
|
|
495
|
+
this.v2Schema = new D1Schema(input.database, WALLET_AUTH_METHOD_STORE_D1_SCHEMA_V2_SQL, input.ensureSchema !== false);
|
|
532
496
|
}
|
|
533
497
|
async put(record) {
|
|
534
|
-
await this.ensureSchema();
|
|
498
|
+
await this.table.ensureSchema();
|
|
535
499
|
await prepareD1WalletAuthMethodPutStatement({
|
|
536
|
-
database: this.database,
|
|
537
|
-
scope: this.scope,
|
|
500
|
+
database: this.table.database,
|
|
501
|
+
scope: this.table.scope,
|
|
538
502
|
record
|
|
539
503
|
}).run();
|
|
540
504
|
}
|
|
@@ -546,49 +510,31 @@ var D1WalletAuthMethodStore = class {
|
|
|
546
510
|
preparePasskeyRegistrationStatements(record) {
|
|
547
511
|
if (record.kind !== "passkey" || record.status !== "active") throw new Error("Passkey registration statements require an active passkey record");
|
|
548
512
|
return [prepareD1WalletAuthMethodInsertStatement({
|
|
549
|
-
database: this.database,
|
|
550
|
-
scope: this.scope,
|
|
513
|
+
database: this.table.database,
|
|
514
|
+
scope: this.table.scope,
|
|
551
515
|
record
|
|
552
|
-
}), this.database
|
|
553
|
-
INSERT INTO router_ab_yao_versioned_json_cas_guard (guard_id)
|
|
554
|
-
SELECT 1
|
|
555
|
-
WHERE changes() = 0
|
|
556
|
-
`)];
|
|
516
|
+
}), prepareD1InsertCasGuardStatement(this.table.database)];
|
|
557
517
|
}
|
|
558
518
|
async getPasskey(input) {
|
|
559
|
-
await this.ensureSchema();
|
|
519
|
+
await this.table.ensureSchema();
|
|
560
520
|
const rpId = normalizeOptionalTrimmedString(input.rpId);
|
|
561
521
|
const credentialIdB64u = normalizeOptionalTrimmedString(input.credentialIdB64u);
|
|
562
522
|
if (!rpId || !credentialIdB64u) return null;
|
|
563
|
-
return normalizeWalletAuthMethod(
|
|
564
|
-
FROM wallet_auth_methods
|
|
565
|
-
WHERE namespace = ?
|
|
566
|
-
AND org_id = ?
|
|
567
|
-
AND project_id = ?
|
|
568
|
-
AND env_id = ?
|
|
569
|
-
AND wallet_auth_method_id = ?
|
|
570
|
-
LIMIT 1`).bind(this.scope.namespace, this.scope.orgId, this.scope.projectId, this.scope.envId, `passkey:${rpId}:${credentialIdB64u}`).first())?.record_json));
|
|
523
|
+
return normalizeWalletAuthMethod(await readD1WalletAuthMethodJsonById(this.table.database, this.table.scope, `passkey:${rpId}:${credentialIdB64u}`));
|
|
571
524
|
}
|
|
572
525
|
async getEmailOtp(input) {
|
|
573
|
-
await this.ensureSchema();
|
|
526
|
+
await this.table.ensureSchema();
|
|
574
527
|
const walletId = normalizeOptionalTrimmedString(input.walletId);
|
|
575
528
|
const emailHashHex = normalizeOptionalTrimmedString(input.emailHashHex);
|
|
576
529
|
if (!walletId || !emailHashHex) return null;
|
|
577
|
-
return normalizeWalletAuthMethod(
|
|
578
|
-
FROM wallet_auth_methods
|
|
579
|
-
WHERE namespace = ?
|
|
580
|
-
AND org_id = ?
|
|
581
|
-
AND project_id = ?
|
|
582
|
-
AND env_id = ?
|
|
583
|
-
AND wallet_auth_method_id = ?
|
|
584
|
-
LIMIT 1`).bind(this.scope.namespace, this.scope.orgId, this.scope.projectId, this.scope.envId, `email_otp:${walletId}:${emailHashHex}`).first())?.record_json));
|
|
530
|
+
return normalizeWalletAuthMethod(await readD1WalletAuthMethodJsonById(this.table.database, this.table.scope, `email_otp:${walletId}:${emailHashHex}`));
|
|
585
531
|
}
|
|
586
532
|
async listForWallet(input) {
|
|
587
|
-
await this.ensureSchema();
|
|
533
|
+
await this.table.ensureSchema();
|
|
588
534
|
const walletId = normalizeOptionalTrimmedString(input.walletId);
|
|
589
535
|
if (!walletId) return [];
|
|
590
536
|
const rpId = normalizeOptionalTrimmedString(input.rpId);
|
|
591
|
-
const result = await this.
|
|
537
|
+
const result = await this.table.prepare(`SELECT record_json
|
|
592
538
|
FROM wallet_auth_methods
|
|
593
539
|
WHERE namespace = ?
|
|
594
540
|
AND org_id = ?
|
|
@@ -596,7 +542,11 @@ var D1WalletAuthMethodStore = class {
|
|
|
596
542
|
AND env_id = ?
|
|
597
543
|
AND wallet_id = ?
|
|
598
544
|
AND (kind = 'email_otp' OR ? = '' OR rp_id = ?)
|
|
599
|
-
ORDER BY created_at_ms ASC
|
|
545
|
+
ORDER BY created_at_ms ASC`, [
|
|
546
|
+
walletId,
|
|
547
|
+
rpId,
|
|
548
|
+
rpId
|
|
549
|
+
]).all();
|
|
600
550
|
const records = [];
|
|
601
551
|
for (const row of result.results || []) {
|
|
602
552
|
const parsed = normalizeWalletAuthMethod(parseD1JsonColumn(row.record_json));
|
|
@@ -605,18 +555,18 @@ var D1WalletAuthMethodStore = class {
|
|
|
605
555
|
return records;
|
|
606
556
|
}
|
|
607
557
|
async putV2(record) {
|
|
608
|
-
await this.
|
|
558
|
+
await this.v2Schema.ensure();
|
|
609
559
|
await prepareD1WalletAuthMethodV2PutStatement({
|
|
610
|
-
database: this.database,
|
|
611
|
-
scope: this.scope,
|
|
560
|
+
database: this.table.database,
|
|
561
|
+
scope: this.table.scope,
|
|
612
562
|
record
|
|
613
563
|
}).run();
|
|
614
564
|
}
|
|
615
565
|
async insertActiveV2Atomically(input) {
|
|
616
|
-
await this.
|
|
566
|
+
await this.v2Schema.ensure();
|
|
617
567
|
try {
|
|
618
568
|
const statements = [...input.prerequisiteStatements, ...this.prepareV2InsertStatements(input.record)];
|
|
619
|
-
const results = await this.database.batch(statements);
|
|
569
|
+
const results = await this.table.database.batch(statements);
|
|
620
570
|
return results.length === statements.length && results.every((result) => result.success);
|
|
621
571
|
} catch {
|
|
622
572
|
return false;
|
|
@@ -624,7 +574,7 @@ var D1WalletAuthMethodStore = class {
|
|
|
624
574
|
}
|
|
625
575
|
prepareActiveV2SourceGuardStatements(input) {
|
|
626
576
|
if (!Number.isSafeInteger(input.authorityRevocationEpoch) || input.authorityRevocationEpoch < 0) throw new Error("Source authority revocation epoch is invalid");
|
|
627
|
-
return [this.database.prepare(`UPDATE wallet_auth_methods
|
|
577
|
+
return [this.table.database.prepare(`UPDATE wallet_auth_methods
|
|
628
578
|
SET updated_at_ms = updated_at_ms
|
|
629
579
|
WHERE namespace = ? AND org_id = ? AND project_id = ? AND env_id = ?
|
|
630
580
|
AND wallet_auth_method_id = ? AND wallet_id = ?
|
|
@@ -641,7 +591,7 @@ var D1WalletAuthMethodStore = class {
|
|
|
641
591
|
AND source_authority.lifecycle_state = 'active'
|
|
642
592
|
AND source_authority.authority_digest_b64u = ?
|
|
643
593
|
AND source_authority.revocation_epoch = ?
|
|
644
|
-
)`).bind(this.scope.namespace, this.scope.orgId, this.scope.projectId, this.scope.envId, String(input.walletAuthMethodId), String(input.walletId), String(input.walletAuthorityId), this.scope.namespace, this.scope.orgId, this.scope.projectId, this.scope.envId, String(input.walletAuthorityId), String(input.walletId), String(input.authorityDigestB64u), input.authorityRevocationEpoch), this.database.prepare(`
|
|
594
|
+
)`).bind(this.table.scope.namespace, this.table.scope.orgId, this.table.scope.projectId, this.table.scope.envId, String(input.walletAuthMethodId), String(input.walletId), String(input.walletAuthorityId), this.table.scope.namespace, this.table.scope.orgId, this.table.scope.projectId, this.table.scope.envId, String(input.walletAuthorityId), String(input.walletId), String(input.authorityDigestB64u), input.authorityRevocationEpoch), this.table.database.prepare(`
|
|
645
595
|
INSERT INTO wallet_authority_cas_guard (guard_id)
|
|
646
596
|
SELECT 1
|
|
647
597
|
WHERE changes() = 0
|
|
@@ -651,7 +601,7 @@ var D1WalletAuthMethodStore = class {
|
|
|
651
601
|
* Aborts the surrounding batch if the authority already holds an active
|
|
652
602
|
* method of this family.
|
|
653
603
|
*
|
|
654
|
-
*
|
|
604
|
+
* Add-auth-method admission answers `already_configured` before a ceremony
|
|
655
605
|
* starts, but an admission read cannot close a race: two ceremonies can pass
|
|
656
606
|
* it concurrently and both insert. The auth-method insert's own guard covers
|
|
657
607
|
* only the allocated method id, and migration `0011` deliberately dropped
|
|
@@ -664,7 +614,7 @@ var D1WalletAuthMethodStore = class {
|
|
|
664
614
|
* collides, which aborts the batch.
|
|
665
615
|
*/
|
|
666
616
|
prepareActiveV2TargetFamilyAbsentGuardStatements(input) {
|
|
667
|
-
return [this.
|
|
617
|
+
return [this.table.prepare(`INSERT INTO wallet_authority_cas_guard (guard_id)
|
|
668
618
|
SELECT 1
|
|
669
619
|
WHERE EXISTS (
|
|
670
620
|
SELECT 1
|
|
@@ -672,7 +622,11 @@ var D1WalletAuthMethodStore = class {
|
|
|
672
622
|
WHERE namespace = ? AND org_id = ? AND project_id = ? AND env_id = ?
|
|
673
623
|
AND wallet_id = ? AND wallet_authority_id = ?
|
|
674
624
|
AND kind = ? AND status = 'active'
|
|
675
|
-
)
|
|
625
|
+
)`, [
|
|
626
|
+
String(input.walletId),
|
|
627
|
+
String(input.walletAuthorityId),
|
|
628
|
+
input.kind
|
|
629
|
+
])];
|
|
676
630
|
}
|
|
677
631
|
/**
|
|
678
632
|
* Prepares an insert-only active V2 method mutation. A credential or opaque
|
|
@@ -683,33 +637,22 @@ var D1WalletAuthMethodStore = class {
|
|
|
683
637
|
if (!parsed || parsed.status !== "active") throw new Error("V2 insert requires an active V2 auth-method record");
|
|
684
638
|
if (!String(parsed.walletAuthMethodId).startsWith("wallet-auth-method:")) throw new Error("V2 insert requires an opaque auth-method id");
|
|
685
639
|
return [prepareD1WalletAuthMethodV2PutStatement({
|
|
686
|
-
database: this.database,
|
|
687
|
-
scope: this.scope,
|
|
640
|
+
database: this.table.database,
|
|
641
|
+
scope: this.table.scope,
|
|
688
642
|
record: parsed,
|
|
689
643
|
insertOnly: true
|
|
690
|
-
}), this.database
|
|
691
|
-
INSERT INTO router_ab_yao_versioned_json_cas_guard (guard_id)
|
|
692
|
-
SELECT 1
|
|
693
|
-
WHERE changes() = 0
|
|
694
|
-
`)];
|
|
644
|
+
}), prepareD1InsertCasGuardStatement(this.table.database)];
|
|
695
645
|
}
|
|
696
646
|
async readByIdV2(input) {
|
|
697
|
-
await this.
|
|
698
|
-
return normalizeWalletAuthMethodV2(
|
|
699
|
-
FROM wallet_auth_methods
|
|
700
|
-
WHERE namespace = ?
|
|
701
|
-
AND org_id = ?
|
|
702
|
-
AND project_id = ?
|
|
703
|
-
AND env_id = ?
|
|
704
|
-
AND wallet_auth_method_id = ?
|
|
705
|
-
LIMIT 1`).bind(this.scope.namespace, this.scope.orgId, this.scope.projectId, this.scope.envId, String(input.walletAuthMethodId)).first())?.record_json));
|
|
647
|
+
await this.v2Schema.ensure();
|
|
648
|
+
return normalizeWalletAuthMethodV2(await readD1WalletAuthMethodJsonById(this.table.database, this.table.scope, String(input.walletAuthMethodId)));
|
|
706
649
|
}
|
|
707
650
|
async getPasskeyV2(input) {
|
|
708
|
-
await this.
|
|
651
|
+
await this.v2Schema.ensure();
|
|
709
652
|
const rpId = normalizeOptionalTrimmedString(input.rpId);
|
|
710
653
|
const credentialIdB64u = normalizeOptionalTrimmedString(input.credentialIdB64u);
|
|
711
654
|
if (!rpId || !credentialIdB64u) return null;
|
|
712
|
-
return normalizeWalletAuthMethodV2(parseD1JsonColumn((await this.
|
|
655
|
+
return normalizeWalletAuthMethodV2(parseD1JsonColumn((await this.table.prepare(`SELECT record_json
|
|
713
656
|
FROM wallet_auth_methods
|
|
714
657
|
WHERE namespace = ?
|
|
715
658
|
AND org_id = ?
|
|
@@ -719,14 +662,14 @@ var D1WalletAuthMethodStore = class {
|
|
|
719
662
|
AND rp_id = ?
|
|
720
663
|
AND credential_id_b64u = ?
|
|
721
664
|
ORDER BY created_at_ms ASC
|
|
722
|
-
LIMIT 1
|
|
665
|
+
LIMIT 1`, [rpId, credentialIdB64u]).first())?.record_json));
|
|
723
666
|
}
|
|
724
667
|
async getEmailOtpV2(input) {
|
|
725
|
-
await this.
|
|
668
|
+
await this.v2Schema.ensure();
|
|
726
669
|
const walletId = normalizeOptionalTrimmedString(input.walletId);
|
|
727
670
|
const emailHashHex = normalizeOptionalTrimmedString(input.emailHashHex);
|
|
728
671
|
if (!walletId || !emailHashHex) return null;
|
|
729
|
-
return normalizeWalletAuthMethodV2(parseD1JsonColumn((await this.
|
|
672
|
+
return normalizeWalletAuthMethodV2(parseD1JsonColumn((await this.table.prepare(`SELECT record_json
|
|
730
673
|
FROM wallet_auth_methods
|
|
731
674
|
WHERE namespace = ?
|
|
732
675
|
AND org_id = ?
|
|
@@ -736,15 +679,15 @@ var D1WalletAuthMethodStore = class {
|
|
|
736
679
|
AND wallet_id = ?
|
|
737
680
|
AND email_hash_hex = ?
|
|
738
681
|
ORDER BY created_at_ms ASC
|
|
739
|
-
LIMIT 1
|
|
682
|
+
LIMIT 1`, [walletId, emailHashHex]).first())?.record_json));
|
|
740
683
|
}
|
|
741
684
|
async listForWalletV2(input) {
|
|
742
|
-
await this.
|
|
685
|
+
await this.v2Schema.ensure();
|
|
743
686
|
const walletId = normalizeOptionalTrimmedString(input.walletId);
|
|
744
687
|
if (!walletId) return [];
|
|
745
688
|
const authorityId = input.walletAuthorityId ? String(input.walletAuthorityId) : "";
|
|
746
689
|
const rpId = normalizeOptionalTrimmedString(input.rpId);
|
|
747
|
-
const result = await this.
|
|
690
|
+
const result = await this.table.prepare(`SELECT record_json
|
|
748
691
|
FROM wallet_auth_methods
|
|
749
692
|
WHERE namespace = ?
|
|
750
693
|
AND org_id = ?
|
|
@@ -753,7 +696,13 @@ var D1WalletAuthMethodStore = class {
|
|
|
753
696
|
AND wallet_id = ?
|
|
754
697
|
AND (? = '' OR wallet_authority_id = ?)
|
|
755
698
|
AND (kind = 'email_otp' OR ? = '' OR rp_id = ?)
|
|
756
|
-
ORDER BY created_at_ms ASC, wallet_auth_method_id ASC
|
|
699
|
+
ORDER BY created_at_ms ASC, wallet_auth_method_id ASC`, [
|
|
700
|
+
walletId,
|
|
701
|
+
authorityId,
|
|
702
|
+
authorityId,
|
|
703
|
+
rpId,
|
|
704
|
+
rpId
|
|
705
|
+
]).all();
|
|
757
706
|
const records = [];
|
|
758
707
|
for (const row of result.results || []) {
|
|
759
708
|
const parsed = normalizeWalletAuthMethodV2(parseD1JsonColumn(row.record_json));
|
|
@@ -763,6 +712,6 @@ var D1WalletAuthMethodStore = class {
|
|
|
763
712
|
}
|
|
764
713
|
};
|
|
765
714
|
//#endregion
|
|
766
|
-
export { D1WalletAuthMethodStore, WALLET_AUTH_METHOD_STORE_D1_SCHEMA_SQL, WALLET_AUTH_METHOD_STORE_D1_SCHEMA_V2_SQL, bindWalletAuthMethodIdentity, bindWalletAuthMethodIdentityV2, ensureWalletAuthMethodStoreD1Schema, ensureWalletAuthMethodStoreD1SchemaV2, normalizeWalletAuthMethod, normalizeWalletAuthMethodV2, prepareD1WalletAuthMethodInsertStatement, prepareD1WalletAuthMethodPutStatement, prepareD1WalletAuthMethodV2PutStatement, walletAuthMethodId, walletAuthMethodV2Id };
|
|
715
|
+
export { D1WalletAuthMethodStore, WALLET_AUTH_METHOD_D1_STORE, WALLET_AUTH_METHOD_STORE_D1_SCHEMA_SQL, WALLET_AUTH_METHOD_STORE_D1_SCHEMA_V2_SQL, bindWalletAuthMethodIdentity, bindWalletAuthMethodIdentityV2, ensureWalletAuthMethodStoreD1Schema, ensureWalletAuthMethodStoreD1SchemaV2, normalizeWalletAuthMethod, normalizeWalletAuthMethodV2, prepareD1WalletAuthMethodInsertStatement, prepareD1WalletAuthMethodPutStatement, prepareD1WalletAuthMethodV2PutStatement, walletAuthMethodId, walletAuthMethodV2Id };
|
|
767
716
|
|
|
768
717
|
//# sourceMappingURL=d1WalletAuthMethodStore.js.map
|
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
import { parseWalletId } from "../shared-ts/src/utils/domainIds.js";
|
|
2
|
+
import { normalizeOptionalTrimmedString } from "../shared-ts/src/utils/normalize.js";
|
|
3
|
+
import { isPlainObject } from "../shared-ts/src/utils/validation.js";
|
|
2
4
|
import { sameRouterAbMpcMaterialActivationRef } from "../shared-ts/src/utils/routerAbNormalSigningIdentity.js";
|
|
3
5
|
import { parseRouterAbEd25519YaoRecoveryActivationResultV1, parseRouterAbEd25519YaoRecoveryAdmissionRequestV1, parseRouterAbEd25519YaoRegistrationActivationAdmissionReceiptV1, parseRouterAbEd25519YaoRegistrationActivationResultV1, parseRouterAbEd25519YaoRegistrationAdmissionRequestV1 } from "../shared-ts/src/utils/routerAbEd25519Yao.js";
|
|
4
|
-
import { normalizeOptionalTrimmedString } from "../shared-ts/src/utils/normalize.js";
|
|
5
|
-
import "../shared-ts/src/utils/validation.js";
|
|
6
6
|
import { normalizeRuntimePolicyScope, signingRootScopeFromRuntimePolicyScope } from "../shared-ts/src/threshold/signingRootScope.js";
|
|
7
7
|
import { sameRouterAbEcdsaDerivationPublicCapabilityV1 } from "../shared-ts/src/utils/routerAbEcdsaDerivation.js";
|
|
8
|
-
import { d1ChangedRows, formatD1ExecStatement, parseD1JsonColumn } from "../storage/d1Sql.js";
|
|
9
|
-
import { thresholdEcdsaChainTargetKey } from "./thresholdEcdsaChainTarget.js";
|
|
10
8
|
import { normalizeThresholdEd25519ParticipantIds } from "../shared-ts/src/threshold/participants.js";
|
|
9
|
+
import { D1_BATCH_CAS_GUARD_SQL, formatD1ExecStatement, parseD1JsonColumn } from "../storage/d1Sql.js";
|
|
10
|
+
import { thresholdEcdsaChainTargetKey } from "../shared-ts/src/utils/thresholdEcdsaChainTarget.js";
|
|
11
11
|
import { ecdsaPostRegistrationRequestMatchesCapability, parseWalletEcdsaPendingSessionActivationRecord, parseWalletEcdsaSignerRecord } from "./WalletStore.js";
|
|
12
|
+
import { EcdsaMaterialRead, parseWalletEcdsaSignerRows, prepareWalletEcdsaSignersRead } from "./d1EcdsaSignerRead.js";
|
|
12
13
|
//#region src/core/d1WalletStore.ts
|
|
13
14
|
function sameD1WalletRuntimePolicyScopeV1(left, right) {
|
|
14
15
|
return left.orgId === right.orgId && left.projectId === right.projectId && left.envId === right.envId && left.signingRootVersion === right.signingRootVersion;
|
|
@@ -152,16 +153,13 @@ const WALLET_STORE_D1_SCHEMA_SQL = Object.freeze([
|
|
|
152
153
|
async function ensureWalletStoreD1Schema(options) {
|
|
153
154
|
for (const statement of WALLET_STORE_D1_SCHEMA_SQL) await options.database.exec(formatD1ExecStatement(statement));
|
|
154
155
|
}
|
|
155
|
-
function isObject(value) {
|
|
156
|
-
return Boolean(value && typeof value === "object" && !Array.isArray(value));
|
|
157
|
-
}
|
|
158
156
|
function normalizeTimestampMs(value) {
|
|
159
157
|
const numberValue = Number(value);
|
|
160
158
|
if (!Number.isFinite(numberValue) || numberValue < 0) return null;
|
|
161
159
|
return Math.floor(numberValue);
|
|
162
160
|
}
|
|
163
161
|
function parseWalletRecord(raw) {
|
|
164
|
-
if (!
|
|
162
|
+
if (!isPlainObject(raw)) return null;
|
|
165
163
|
if (raw.version !== "wallet_v1") return null;
|
|
166
164
|
const walletId = parseWalletId(raw.walletId);
|
|
167
165
|
const createdAtMs = normalizeTimestampMs(raw.createdAtMs);
|
|
@@ -180,7 +178,7 @@ function equalBytes(left, right) {
|
|
|
180
178
|
return true;
|
|
181
179
|
}
|
|
182
180
|
function parseWalletEd25519YaoActiveCapabilityRecord(raw) {
|
|
183
|
-
if (!
|
|
181
|
+
if (!isPlainObject(raw)) return null;
|
|
184
182
|
const nearAccountId = normalizeOptionalTrimmedString(raw.nearAccountId);
|
|
185
183
|
if (!nearAccountId) return null;
|
|
186
184
|
let runtimePolicyScope;
|
|
@@ -222,7 +220,7 @@ function parseWalletEd25519YaoActiveCapabilityRecord(raw) {
|
|
|
222
220
|
}
|
|
223
221
|
}
|
|
224
222
|
function parseWalletEd25519SignerRecord(raw) {
|
|
225
|
-
if (!
|
|
223
|
+
if (!isPlainObject(raw) || raw.version !== "wallet_signer_ed25519_v1") return null;
|
|
226
224
|
const walletId = parseWalletId(raw.walletId);
|
|
227
225
|
const signerId = normalizeOptionalTrimmedString(raw.signerId);
|
|
228
226
|
const nearAccountId = normalizeOptionalTrimmedString(raw.nearAccountId);
|
|
@@ -458,10 +456,18 @@ var D1WalletStore = class {
|
|
|
458
456
|
return matches[0] ?? null;
|
|
459
457
|
}
|
|
460
458
|
async getEcdsaSignerByMaterialActivation(input) {
|
|
459
|
+
return (await this.readEcdsaSignerMaterialSnapshot({
|
|
460
|
+
walletId: input.walletId,
|
|
461
|
+
materialActivation: input.materialActivation,
|
|
462
|
+
source: { kind: "database" }
|
|
463
|
+
}))?.signer ?? null;
|
|
464
|
+
}
|
|
465
|
+
async readEcdsaSignerMaterialSnapshot(input) {
|
|
466
|
+
if (input.source.kind === "credential_snapshot") return input.source.materialRead.resolve(this.scope, input.walletId, input.materialActivation);
|
|
461
467
|
await this.ensureSchema();
|
|
462
468
|
const walletId = normalizeOptionalTrimmedString(input.walletId);
|
|
463
469
|
if (!walletId) return null;
|
|
464
|
-
const
|
|
470
|
+
const result = await this.database.prepare(`SELECT record_json
|
|
465
471
|
FROM wallet_signers
|
|
466
472
|
WHERE namespace = ?
|
|
467
473
|
AND org_id = ?
|
|
@@ -472,12 +478,8 @@ var D1WalletStore = class {
|
|
|
472
478
|
AND json_extract(
|
|
473
479
|
record_json,
|
|
474
480
|
'$.walletKey.publicCapability.material_activation.activation_id'
|
|
475
|
-
) =
|
|
476
|
-
|
|
477
|
-
if (matches.length === 0) return null;
|
|
478
|
-
const keyHandle = matches[0]?.walletKey.keyHandle;
|
|
479
|
-
if (!keyHandle || matches.some((record) => record.walletKey.keyHandle !== keyHandle)) throw new Error("Wallet has conflicting ECDSA material activations");
|
|
480
|
-
return matches[0] ?? null;
|
|
481
|
+
) = ?`).bind(this.scope.namespace, this.scope.orgId, this.scope.projectId, this.scope.envId, walletId, input.materialActivation.activation_id).all();
|
|
482
|
+
return EcdsaMaterialRead.fromRows(this.scope, input.walletId, input.materialActivation, result.results ?? [], null).resolve(this.scope, input.walletId, input.materialActivation);
|
|
481
483
|
}
|
|
482
484
|
async getEcdsaSignerByPostRegistrationRequest(input) {
|
|
483
485
|
await this.ensureSchema();
|
|
@@ -506,22 +508,7 @@ var D1WalletStore = class {
|
|
|
506
508
|
}
|
|
507
509
|
async listEcdsaSignersForWallet(input) {
|
|
508
510
|
await this.ensureSchema();
|
|
509
|
-
|
|
510
|
-
FROM wallet_signers
|
|
511
|
-
WHERE namespace = ?
|
|
512
|
-
AND org_id = ?
|
|
513
|
-
AND project_id = ?
|
|
514
|
-
AND env_id = ?
|
|
515
|
-
AND wallet_id = ?
|
|
516
|
-
AND signer_family = 'ecdsa'
|
|
517
|
-
ORDER BY signer_id`).bind(this.scope.namespace, this.scope.orgId, this.scope.projectId, this.scope.envId, input.walletId).all();
|
|
518
|
-
const signers = [];
|
|
519
|
-
for (const row of result.results || []) {
|
|
520
|
-
const signer = parseWalletEcdsaSignerRecord(parseD1JsonColumn(row.record_json));
|
|
521
|
-
if (!signer || signer.walletId !== input.walletId) throw new Error("Wallet ECDSA signer record is invalid");
|
|
522
|
-
signers.push(signer);
|
|
523
|
-
}
|
|
524
|
-
return signers;
|
|
511
|
+
return parseWalletEcdsaSignerRows((await prepareWalletEcdsaSignersRead(this.database, this.scope, input.walletId).all()).results ?? [], input.walletId);
|
|
525
512
|
}
|
|
526
513
|
async listEcdsaPendingSessionActivationsForLifecycle(input) {
|
|
527
514
|
await this.ensureSchema();
|
|
@@ -684,11 +671,16 @@ var D1WalletStore = class {
|
|
|
684
671
|
record
|
|
685
672
|
}).run();
|
|
686
673
|
}
|
|
687
|
-
|
|
674
|
+
/**
|
|
675
|
+
* The statements that insert an Ed25519 signer into its slot, for a batch
|
|
676
|
+
* owned elsewhere. The batch aborts unless the slot was free: slot
|
|
677
|
+
* uniqueness rests on this check alone.
|
|
678
|
+
*/
|
|
679
|
+
async prepareEd25519SignerIfSlotAvailableStatements(record) {
|
|
688
680
|
await this.ensureSchema();
|
|
689
681
|
const parsed = parseWalletEd25519SignerRecord(record);
|
|
690
682
|
if (!parsed) throw new Error("Invalid Ed25519 wallet signer record");
|
|
691
|
-
return
|
|
683
|
+
return [this.database.prepare(`INSERT INTO wallet_signers (
|
|
692
684
|
namespace,
|
|
693
685
|
org_id,
|
|
694
686
|
project_id,
|
|
@@ -712,7 +704,7 @@ var D1WalletStore = class {
|
|
|
712
704
|
AND wallet_id = ?
|
|
713
705
|
AND signer_family = 'ed25519'
|
|
714
706
|
AND json_extract(record_json, '$.signerSlot') = ?
|
|
715
|
-
)`).bind(this.scope.namespace, this.scope.orgId, this.scope.projectId, this.scope.envId, parsed.walletId, parsed.signerId, JSON.stringify(parsed), parsed.createdAtMs, parsed.updatedAtMs, this.scope.namespace, this.scope.orgId, this.scope.projectId, this.scope.envId, parsed.walletId, parsed.signerSlot).
|
|
707
|
+
)`).bind(this.scope.namespace, this.scope.orgId, this.scope.projectId, this.scope.envId, parsed.walletId, parsed.signerId, JSON.stringify(parsed), parsed.createdAtMs, parsed.updatedAtMs, this.scope.namespace, this.scope.orgId, this.scope.projectId, this.scope.envId, parsed.walletId, parsed.signerSlot), this.database.prepare(D1_BATCH_CAS_GUARD_SQL)];
|
|
716
708
|
}
|
|
717
709
|
async putSigners(records) {
|
|
718
710
|
for (const record of records) await this.putSigner(record);
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import { parseLinkDeviceSessionId, parseLinkedDeviceEnrollmentId, parseLinkedDeviceId, parseVerifiedEmailAddress, parseWalletAuthMethodId, parseWalletId, parseWebAuthnCredentialIdB64u } from "../../shared-ts/src/utils/domainIds.js";
|
|
2
2
|
import { base64UrlEncode } from "../../shared-ts/src/utils/base64.js";
|
|
3
|
-
import { parseDigestB64u } from "../../shared-ts/src/utils/canonicalPrimitives.js";
|
|
4
3
|
import { sha256BytesUtf8 } from "../../shared-ts/src/utils/digests.js";
|
|
5
|
-
import {
|
|
4
|
+
import { parseDigestB64u, sha256Utf8DigestB64u } from "../../shared-ts/src/utils/canonicalPrimitives.js";
|
|
5
|
+
import { requireRecord } from "../../shared-ts/src/utils/validation.js";
|
|
6
|
+
import { rejectUnknownFields } from "../../shared-ts/src/utils/exactRecord.js";
|
|
7
|
+
import { parseUnixMs, requireParsed } from "../../shared-ts/src/passkey-custody/primitives.js";
|
|
6
8
|
//#region src/core/deviceLinking/linkedDeviceEmailOtpGrant.ts
|
|
7
9
|
/**
|
|
8
|
-
*
|
|
10
|
+
* The durable one-time Email OTP verification grant.
|
|
9
11
|
*
|
|
10
12
|
* Verifying the emailed code proves the person holding Device 2 controls the
|
|
11
13
|
* wallet's base Email OTP destination. That proof must authorize exactly one
|
|
@@ -32,7 +34,7 @@ const CHALLENGE_BINDING_DOMAIN = "seams:linked-device-email-otp-challenge-bindin
|
|
|
32
34
|
*/
|
|
33
35
|
async function computeLinkedDeviceEmailOtpChallengeBindingDigestV1(input) {
|
|
34
36
|
const baseWalletAuthMethodId = input.enrollment.kind === "existing_enrollment" ? requirePresentBaseMethod(input.baseWalletAuthMethodId) : "";
|
|
35
|
-
return
|
|
37
|
+
return sha256Utf8DigestB64u([
|
|
36
38
|
CHALLENGE_BINDING_DOMAIN,
|
|
37
39
|
String(input.walletId),
|
|
38
40
|
String(input.linkSessionId),
|
|
@@ -44,7 +46,7 @@ async function computeLinkedDeviceEmailOtpChallengeBindingDigestV1(input) {
|
|
|
44
46
|
input.enrollment.kind,
|
|
45
47
|
String(baseWalletAuthMethodId),
|
|
46
48
|
String(input.walletAuthMethodId)
|
|
47
|
-
].join("\\u0000"))
|
|
49
|
+
].join("\\u0000"));
|
|
48
50
|
}
|
|
49
51
|
const GRANT_RECORD_FIELDS = [
|
|
50
52
|
"kind",
|
|
@@ -141,7 +143,7 @@ function linkedDeviceEmailOtpGrantAdmitsUseV1(record, nowMs) {
|
|
|
141
143
|
*/
|
|
142
144
|
async function computeLinkedDeviceEmailOtpGrantTokenDigestV1(grantToken) {
|
|
143
145
|
if (!grantToken || grantToken.trim() !== grantToken) throw new Error("linked-device email OTP grant token is invalid");
|
|
144
|
-
return
|
|
146
|
+
return sha256Utf8DigestB64u(`${GRANT_TOKEN_DIGEST_DOMAIN}\u0000${grantToken}`);
|
|
145
147
|
}
|
|
146
148
|
/**
|
|
147
149
|
* The digest every Wallet Session and admission surface compares to name this
|
|
@@ -152,7 +154,7 @@ async function computeLinkedDeviceEmailOtpGrantTokenDigestV1(grantToken) {
|
|
|
152
154
|
*/
|
|
153
155
|
async function computeLinkedDeviceEmailOtpAuthorityDigestV1(input) {
|
|
154
156
|
const baseWalletAuthMethodId = input.enrollment.kind === "existing_enrollment" ? requirePresentBaseMethod(input.baseWalletAuthMethodId) : "";
|
|
155
|
-
return
|
|
157
|
+
return sha256Utf8DigestB64u([
|
|
156
158
|
AUTHORITY_DIGEST_DOMAIN,
|
|
157
159
|
String(input.walletId),
|
|
158
160
|
String(input.enrollmentId),
|
|
@@ -161,7 +163,7 @@ async function computeLinkedDeviceEmailOtpAuthorityDigestV1(input) {
|
|
|
161
163
|
input.targetEmail,
|
|
162
164
|
input.enrollment.kind,
|
|
163
165
|
String(baseWalletAuthMethodId)
|
|
164
|
-
].join("\0"))
|
|
166
|
+
].join("\0"));
|
|
165
167
|
}
|
|
166
168
|
/**
|
|
167
169
|
* The target-deployment descriptor binds each child to the target credential
|
|
@@ -201,10 +203,6 @@ function requireGrantDigest(raw, label) {
|
|
|
201
203
|
throw new Error(`${label} ${error instanceof Error ? error.message : "is invalid"}`);
|
|
202
204
|
}
|
|
203
205
|
}
|
|
204
|
-
function requireParsed(parsed, label) {
|
|
205
|
-
if (!parsed.ok) throw new Error(`${label} ${parsed.error.message}`);
|
|
206
|
-
return parsed.value;
|
|
207
|
-
}
|
|
208
206
|
//#endregion
|
|
209
207
|
export { computeLinkedDeviceEmailOtpAuthorityDigestV1, computeLinkedDeviceEmailOtpChallengeBindingDigestV1, computeLinkedDeviceEmailOtpGrantTokenDigestV1, linkedDeviceEmailOtpDescriptorCredentialIdV1, linkedDeviceEmailOtpGrantAdmitsUseV1, parseLinkedDeviceEmailOtpGrantRecordV1 };
|
|
210
208
|
|