@seams/wallet-server 0.7.3 → 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/THIRD_PARTY_NOTICES.md +7 -9
- package/artifact-manifest.json +241 -41
- package/cloudflare-router-ab/build/deriver-a/build-stamp.json +1 -1
- package/cloudflare-router-ab/build/deriver-a/index.js +2 -2
- package/cloudflare-router-ab/build/deriver-a/index_bg.wasm +0 -0
- package/cloudflare-router-ab/build/deriver-b/build-stamp.json +1 -1
- package/cloudflare-router-ab/build/deriver-b/index.js +2 -2
- package/cloudflare-router-ab/build/deriver-b/index_bg.wasm +0 -0
- package/cloudflare-router-ab/build/local-tools/darwin-arm64/router_ab_local_init +0 -0
- package/cloudflare-router-ab/build/local-tools/darwin-x64/router_ab_local_init +0 -0
- package/cloudflare-router-ab/build/local-tools/linux-x64/router_ab_local_init +0 -0
- package/cloudflare-router-ab/build/router/build-stamp.json +1 -1
- package/cloudflare-router-ab/build/router/index.js +2 -2
- package/cloudflare-router-ab/build/router/index_bg.wasm +0 -0
- package/cloudflare-router-ab/build/signing-worker/build-stamp.json +1 -1
- package/cloudflare-router-ab/build/signing-worker/index.js +2 -2
- package/cloudflare-router-ab/build/signing-worker/index_bg.wasm +0 -0
- package/cloudflare-router-ab/build/tenant-root-control-plane/build-stamp.json +1 -1
- package/cloudflare-router-ab/build/tenant-root-control-plane/index.js +2 -2
- package/cloudflare-router-ab/build/tenant-root-control-plane/index_bg.wasm +0 -0
- package/cloudflare-router-ab/migrations/deriver-a/0019_wallet_object_addresses.sql +10 -0
- package/cloudflare-router-ab/migrations/deriver-b/0019_wallet_object_addresses.sql +10 -0
- package/cloudflare-router-ab/scripts/prepare-local-runtime-config.mjs +3 -119
- package/cloudflare-router-ab/scripts/start-local-role-workers.mjs +77 -20
- package/cloudflare-router-ab/wrangler.deriver-a.toml +0 -8
- package/cloudflare-router-ab/wrangler.deriver-b.toml +24 -8
- package/cloudflare-router-ab/wrangler.router.toml +0 -2
- package/cloudflare-router-ab/wrangler.signing-worker.toml +29 -0
- package/dist/esm/authorization/domain.js +3 -2
- package/dist/esm/authorization/lifecycleRouting.js +62 -0
- package/dist/esm/authorization/service.js +86 -35
- package/dist/esm/cloud-host.js +42 -39
- package/dist/esm/core/EmailOtpRecords.js +29 -222
- package/dist/esm/core/EmailOtpStores.js +0 -859
- package/dist/esm/core/IdentityStore.js +2 -339
- package/dist/esm/core/ThresholdService/config.js +1 -9
- package/dist/esm/core/ThresholdService/index.js +0 -4
- package/dist/esm/core/ThresholdService/kv.js +1 -66
- package/dist/esm/core/ThresholdService/routerAb/ecdsaDerivationPoolFillHandlers.js +3 -13
- package/dist/esm/core/ThresholdService/routerAb/ecdsaDerivationPresignBridge.js +10 -0
- package/dist/esm/core/ThresholdService/routerAb/internalServiceHttp.js +1 -0
- package/dist/esm/core/ThresholdService/routerAbNormalSigningPolicy.js +1 -11
- package/dist/esm/core/ThresholdService/stores/WalletSessionStore.js +0 -541
- package/dist/esm/core/ThresholdService/validation.js +3 -347
- package/dist/esm/core/WalletAuthMethodStore.js +2 -123
- package/dist/esm/core/WalletStore.js +3 -209
- package/dist/esm/core/WebAuthnAuthenticatorStore.js +0 -202
- package/dist/esm/core/WebAuthnCredentialBindingStore.js +2 -182
- package/dist/esm/core/WebAuthnLoginChallengeStore.js +0 -52
- package/dist/esm/core/WebAuthnSyncChallengeStore.js +0 -54
- package/dist/esm/core/authService/emailOtpConfig.js +1 -195
- package/dist/esm/core/authService/emailOtpEnrollment.js +0 -110
- package/dist/esm/core/authService/emailOtpSeal.js +0 -63
- package/dist/esm/core/authService/nearPrivateKeySigning.js +1 -1
- package/dist/esm/core/authService/nearTransactions.js +3 -98
- package/dist/esm/core/authService/rateLimits.js +0 -84
- package/dist/esm/core/authService/webauthn.js +3 -299
- package/dist/esm/core/authService/webauthnOidcHelpers.js +1 -24
- package/dist/esm/core/authService/webauthnWalletBinding.js +0 -37
- package/dist/esm/core/config.js +1 -95
- package/dist/esm/core/d1EcdsaSignerRead.js +1 -1
- package/dist/esm/core/d1Ed25519SignerRead.js +55 -0
- package/dist/esm/core/d1IdentityStore.js +1 -2
- package/dist/esm/core/d1TenantStore.js +1 -24
- package/dist/esm/core/d1WalletAuthMethodStore.js +2 -5
- package/dist/esm/core/d1WalletStore.js +16 -13
- package/dist/esm/core/deviceLinking/linkedDeviceBootstrap.js +13 -0
- package/dist/esm/core/deviceLinking/linkedDeviceEmailOtpGrant.js +2 -2
- package/dist/esm/core/deviceLinking/linkedDeviceManagement.js +1 -1
- package/dist/esm/core/deviceLinking/linkedDeviceSession.js +20 -14
- package/dist/esm/core/deviceLinking/linkedDeviceSessionRecord.js +2 -2
- package/dist/esm/core/deviceLinking/requestProof.js +9 -6
- package/dist/esm/core/emailOtpD1Statements.js +108 -94
- package/dist/esm/core/keyMaterialBrands.js +2 -12
- package/dist/esm/core/nearKeys.js +0 -1
- package/dist/esm/core/nearRelayerAccountProvisioning.js +7 -10
- package/dist/esm/core/passkeyCredentialClaims.js +8 -0
- package/dist/esm/core/routerAbSigning/RouterAbEcdsaPresignRuntime.js +6 -6
- package/dist/esm/core/routerAbSigning/RouterAbNormalSigningRuntime.js +2 -30
- package/dist/esm/core/signingLanes/WalletExecutionLaneProjection.js +1 -1
- package/dist/esm/core/signingMaterial/ordinaryInactiveSignerMaterialReservation.js +1 -0
- package/dist/esm/core/thresholdEcdsaChainTarget.js +1 -4
- package/dist/esm/hosted-wallet-gateway.js +158 -52
- package/dist/esm/index.js +6 -19
- package/dist/esm/localHostedWalletGatewayHandler.js +18 -3
- package/dist/esm/localIntendedYaoSigningFault.js +2 -30
- package/dist/esm/localRegistrationSetupAuthority.js +96 -0
- package/dist/esm/router/auth/authRequestValidation.js +8 -16
- package/dist/esm/router/auth/commonRouterUtils.js +17 -10
- package/dist/esm/router/auth/routerApiCredentialAuth.js +26 -7
- package/dist/esm/router/auth/walletRegistrationContext.js +49 -0
- package/dist/esm/router/auth/webAuthnCredentialCodecs.js +1 -2
- package/dist/esm/router/cloudflare/d1/auth/d1AuthorizationAssembly.js +88 -0
- package/dist/esm/router/cloudflare/d1/auth/d1AuthorizedOperationRouteService.js +2 -0
- package/dist/esm/router/cloudflare/d1/auth/d1EmailOtpRouteService.js +25 -0
- package/dist/esm/router/cloudflare/d1/auth/d1RouterApiAuthConfig.js +24 -6
- package/dist/esm/router/cloudflare/d1/auth/d1RouterApiAuthService.js +75 -320
- package/dist/esm/router/cloudflare/d1/auth/walletSessionCredentialReaders.js +17 -1
- package/dist/esm/router/cloudflare/d1/authorization/authorizedOperationStatements.js +57 -25
- package/dist/esm/router/cloudflare/d1/authorization/d1AuthorizationStore.js +265 -104
- package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceAuthorityInstallService.js +43 -17
- package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceEd25519ExportRootStore.js +6 -1
- package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceEmailOtpGrantStore.js +12 -2
- package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceEmailOtpTargetFactor.js +4 -4
- package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceOwnerAuthorizationProvider.js +2 -2
- package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceRequestProofNonceStore.js +3 -9
- package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceRouteService.js +2 -1
- package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceSessionRecords.js +1 -1
- package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceSessionStore.js +89 -7
- package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceTargetCredentialProvider.js +24 -15
- package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceTargetPlanner.js +1 -1
- package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceVerifiedLinkBuilder.js +1 -1
- package/dist/esm/router/cloudflare/d1/ed25519Yao/d1Ed25519YaoCapabilityPersistence.js +9 -6
- package/dist/esm/router/cloudflare/d1/ed25519Yao/d1Ed25519YaoLifecycleDecisionStore.js +11 -2
- package/dist/esm/router/cloudflare/d1/ed25519Yao/d1Ed25519YaoProductRegistrationPartitionedStateStore.js +100 -10
- package/dist/esm/router/cloudflare/d1/ed25519Yao/d1Ed25519YaoStateWriteFence.js +92 -0
- package/dist/esm/router/cloudflare/d1/ed25519Yao/d1WalletCeremonyActivity.js +77 -0
- package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpChallengeIssuer.js +14 -9
- package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpChallengeService.js +0 -1
- package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpChallengeStore.js +15 -9
- package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpChallengeVerifier.js +3 -2
- package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpEnrollmentStore.js +1 -1
- package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpGrantStore.js +1 -7
- package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpRateLimitStore.js +62 -36
- package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpRecords.js +27 -21
- package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpRecoveryService.js +1 -1
- package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpRegistrationEnrollmentFinalizer.js +2 -2
- package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpServerSealRuntime.js +0 -1
- package/dist/esm/router/cloudflare/d1/emailOtp/d1GoogleEmailOtpRegistrationAttemptStore.js +44 -12
- package/dist/esm/router/cloudflare/d1/emailOtp/d1GoogleEmailOtpRegistrationRecords.js +1 -49
- package/dist/esm/router/cloudflare/d1/emailOtp/d1GoogleEmailOtpSessionResolver.js +20 -31
- package/dist/esm/router/cloudflare/d1/emailOtp/d1GoogleRegistrationCompletion.js +85 -0
- package/dist/esm/router/cloudflare/d1/identity/d1IdentityRecords.js +0 -1
- package/dist/esm/router/cloudflare/d1/identity/d1IdentityService.js +0 -48
- package/dist/esm/router/cloudflare/d1/near/d1SponsoredNearAccount.js +242 -0
- package/dist/esm/router/cloudflare/d1/oidc/d1OidcBoundary.js +1 -2
- package/dist/esm/router/cloudflare/d1/oidc/d1OidcVerificationService.js +2 -29
- package/dist/esm/router/cloudflare/d1/oidc/googleOidcToken.js +41 -0
- package/dist/esm/router/cloudflare/d1/passkeyCustody/d1PasskeyCustodyRouteService.js +5 -0
- package/dist/esm/router/cloudflare/d1/passkeyCustody/d1WalletCustodyCommitStore.js +52 -7
- package/dist/esm/router/cloudflare/d1/registration/d1RegistrationCeremonyRecordStore.js +83 -16
- package/dist/esm/router/cloudflare/d1/registration/d1RegistrationCeremonyRecords.js +8 -14
- package/dist/esm/router/cloudflare/d1/registration/d1RegistrationCeremonyStore.js +60 -28
- package/dist/esm/router/cloudflare/d1/registration/d1RegistrationIntentService.js +0 -1
- package/dist/esm/router/cloudflare/d1/registration/d1RegistrationSessionTransaction.js +28 -0
- package/dist/esm/router/cloudflare/d1/registration/d1RegistrationSetupSupport.js +84 -0
- package/dist/esm/router/cloudflare/d1/registration/d1WalletExecutionAuthority.js +168 -0
- package/dist/esm/router/cloudflare/d1/registration/d1WalletOperationStore.js +53 -0
- package/dist/esm/router/cloudflare/d1/registration/d1WalletRegistrationCommitStore.js +85 -38
- package/dist/esm/router/cloudflare/d1/registration/d1WalletRegistrationInitialSession.js +33 -0
- package/dist/esm/router/cloudflare/d1/registration/d1WalletRegistrationPreparation.js +16 -0
- package/dist/esm/router/cloudflare/d1/registration/d1WalletRegistrationRead.js +58 -0
- package/dist/esm/router/cloudflare/d1/registration/d1WalletRegistrationService.js +478 -708
- package/dist/esm/router/cloudflare/d1/registration/d1WalletRegistrationSetup.js +13 -57
- package/dist/esm/router/cloudflare/d1/registration/d1WalletRegistrationSetupExecution.js +169 -0
- package/dist/esm/router/cloudflare/d1/registration/walletRegistrationEstablishedSessionIssuer.js +79 -47
- package/dist/esm/router/cloudflare/d1/registration/walletRegistrationSessionCommitReceipt.js +11 -35
- package/dist/esm/router/cloudflare/d1/signingAdmission/d1RouterAbNormalSigningAdmissionStore.js +110 -45
- package/dist/esm/router/cloudflare/d1/versionedJson/d1VersionedJsonRecordStore.js +12 -9
- package/dist/esm/router/cloudflare/d1/wallet/authorizationSnapshotLayout.js +168 -0
- package/dist/esm/router/cloudflare/d1/wallet/d1WalletAddSignerFinalizeRecord.js +68 -0
- package/dist/esm/router/cloudflare/d1/wallet/d1WalletAddSignerService.js +22 -60
- package/dist/esm/router/cloudflare/d1/wallet/d1WalletAuthMethodService.js +12 -48
- package/dist/esm/router/cloudflare/d1/wallet/d1WalletAuthorityStore.js +56 -143
- package/dist/esm/router/cloudflare/d1/wallet/d1WalletAuthorizationCleanup.js +157 -0
- package/dist/esm/router/cloudflare/d1/wallet/d1WalletAuthorizationFreeze.js +56 -0
- package/dist/esm/router/cloudflare/d1/wallet/d1WalletAuthorizationHistory.js +238 -0
- package/dist/esm/router/cloudflare/d1/wallet/d1WalletAuthorizationIntake.js +287 -0
- package/dist/esm/router/cloudflare/d1/wallet/d1WalletAuthorizationSnapshot.js +295 -0
- package/dist/esm/router/cloudflare/d1/wallet/d1WalletRelocationApprovals.js +140 -0
- package/dist/esm/router/cloudflare/d1/wallet/d1WalletRelocationChallenges.js +170 -0
- package/dist/esm/router/cloudflare/d1/wallet/d1WalletRelocationEmailOtp.js +60 -0
- package/dist/esm/router/cloudflare/d1/wallet/d1WalletRelocationOwner.js +33 -0
- package/dist/esm/router/cloudflare/d1/wallet/d1WalletRelocationOwnerRequest.js +74 -0
- package/dist/esm/router/cloudflare/d1/wallet/d1WalletRelocationPasskey.js +77 -0
- package/dist/esm/router/cloudflare/d1/wallet/d1WalletRelocationReadAccess.js +37 -0
- package/dist/esm/router/cloudflare/d1/wallet/d1WalletRelocationSessions.js +97 -0
- package/dist/esm/router/cloudflare/d1/wallet/d1WalletRelocationWriteBlock.js +133 -0
- package/dist/esm/router/cloudflare/d1/walletObjectAddresses.js +47 -0
- package/dist/esm/router/cloudflare/d1/webauthn/d1WebAuthnAuthService.js +26 -5
- package/dist/esm/router/cloudflare/d1/webauthn/d1WebAuthnRecords.js +4 -70
- package/dist/esm/router/cloudflare/d1/webauthn/d1WebAuthnStore.js +23 -7
- package/dist/esm/router/cloudflare/runtime/routerAbServiceBindings.js +32 -1
- package/dist/esm/router/cloudflare/runtime/staticWalletConsoleBinding.js +20 -7
- package/dist/esm/router/cloudflare/runtime/walletAuthorizationRelocationRoutes.js +488 -0
- package/dist/esm/router/cloudflare/runtime/walletConsoleOps.js +1 -0
- package/dist/esm/router/cloudflare/runtime/walletConsoleOpsClient.js +26 -1
- package/dist/esm/router/cloudflare/runtime/walletControlOps.js +3 -0
- package/dist/esm/router/cloudflare/runtime/walletGateway.js +1 -1
- package/dist/esm/router/cloudflare/runtime/walletObjectAddresses.js +105 -0
- package/dist/esm/router/cloudflare/runtime/walletPlacementRoutes.js +339 -0
- package/dist/esm/router/cloudflare/runtime/walletRelocationDeriver.js +244 -0
- package/dist/esm/router/cloudflare/runtime/walletRelocationEcdsa.js +212 -0
- package/dist/esm/router/cloudflare/runtime/walletRelocationEd25519.js +172 -0
- package/dist/esm/router/cloudflare/runtime/walletRelocationOps.js +183 -0
- package/dist/esm/router/cloudflare/runtime/walletRelocationPresign.js +185 -0
- package/dist/esm/router/cloudflare/runtime/walletRelocationSource.js +221 -0
- package/dist/esm/router/cloudflare/runtime/walletRuntimeOps.js +16 -4
- package/dist/esm/router/cloudflare/signingLanes/cloudflareOrdinaryInactiveSignerMaterialReservation.js +30 -8
- package/dist/esm/router/cloudflare-adaptor.js +8 -9
- package/dist/esm/router/cloudflare.js +33043 -31559
- package/dist/esm/router/domains/ecdsa/routerAbEcdsaStrictRegistration.js +35 -9
- package/dist/esm/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoCapabilityCommit.js +42 -0
- package/dist/esm/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistration.js +42 -13
- package/dist/esm/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistrationPartitionedStateStore.js +64 -3
- package/dist/esm/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistrationPartitioning.js +6 -6
- package/dist/esm/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistrationPersistence.js +70 -3
- package/dist/esm/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistrationRequestScopedRuntime.js +59 -87
- package/dist/esm/router/domains/ed25519Yao/export/routerAbEd25519YaoExport.js +58 -28
- package/dist/esm/router/domains/ed25519Yao/export/routerAbEd25519YaoExportRequestScopedCloudflare.js +13 -7
- package/dist/esm/router/domains/ed25519Yao/recovery/routerAbEd25519YaoRecovery.js +108 -78
- package/dist/esm/router/domains/ed25519Yao/recovery/routerAbEd25519YaoRecoveryRequestScopedCloudflare.js +27 -5
- package/dist/esm/router/domains/ed25519Yao/recovery/routerAbEd25519YaoRecoveryWalletSessionAuthorization.js +71 -22
- package/dist/esm/router/domains/ed25519Yao/registration/routerAbEd25519YaoHttpRegistrationBackend.js +37 -25
- package/dist/esm/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistration.js +3 -3
- package/dist/esm/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistrationExecutionRecord.js +2 -1
- package/dist/esm/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistrationIntentAuthorization.js +24 -3
- package/dist/esm/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistrationRequestScopedCloudflare.js +4 -3
- package/dist/esm/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistrationSideEffectBoundary.js +20 -7
- package/dist/esm/router/domains/ed25519Yao/routerAbEd25519YaoGatewayEnvelope.js +7 -1
- package/dist/esm/router/domains/emailOtp/emailOtpRequestValidation.js +0 -1
- package/dist/esm/router/domains/emailOtp/emailOtpRouteHandlers.js +2 -2
- package/dist/esm/router/domains/passkeyCustody/passkeyCustodyEnvelopeRetrieval.js +3 -9
- package/dist/esm/router/domains/passkeyCustody/registrationCustodyOutcome.js +34 -18
- package/dist/esm/router/domains/passkeyCustody/walletCustodyRegistrationAdmission.js +2 -2
- package/dist/esm/router/domains/passkeyCustody/walletCustodyRegistrationCommit.js +18 -14
- package/dist/esm/router/domains/signingOperations/authorizedOperationWire.js +73 -0
- package/dist/esm/router/domains/signingOperations/ecdsaSigningResponse.js +31 -0
- package/dist/esm/router/domains/signingOperations/ed25519AuthorizedOperationReceipt.js +1 -1
- package/dist/esm/router/domains/signingOperations/routerAbEcdsaDerivationNormalSigningRoute.js +2 -1
- package/dist/esm/router/domains/signingOperations/routerAbEd25519NormalSigningRoute.js +31 -121
- package/dist/esm/router/domains/signingOperations/routerAbNormalSigningAdmission.js +2 -93
- package/dist/esm/router/domains/signingOperations/routerAbPrivateSigningWorker.js +6 -20
- package/dist/esm/router/domains/signingOperations/signingPrepareSession.js +33 -0
- package/dist/esm/router/domains/signingOperations/walletExecutionAdmission.js +2 -3
- package/dist/esm/router/domains/walletRegistration/registrationSessionSeal.js +121 -0
- package/dist/esm/router/domains/walletRegistration/walletRegistrationReservation.js +70 -0
- package/dist/esm/router/domains/walletRegistration/walletRegistrationRoutes.js +56 -168
- package/dist/esm/router/domains/walletRegistration/walletRegistrationSetupPayload.js +3 -4
- package/dist/esm/router/domains/walletUnlock/walletUnlockRouteHandlers.js +14 -0
- package/dist/esm/router/express.js +1453 -1488
- package/dist/esm/router/framework/http.js +4 -1
- package/dist/esm/router/framework/registrationSetupDispatch.js +14 -0
- package/dist/esm/router/framework/ror/normalize.js +0 -1
- package/dist/esm/router/framework/ror/options.js +0 -1
- package/dist/esm/router/framework/ror/provider.js +0 -1
- package/dist/esm/router/framework/ror/staticProvider.js +0 -1
- package/dist/esm/router/framework/routeDefinitions.js +1 -2
- package/dist/esm/router/framework/routerApiWebhooks.js +0 -1
- package/dist/esm/router/ror.js +0 -1
- package/dist/esm/router/transport/fetch/createFetchRouter.js +2 -4
- package/dist/esm/router/transport/fetch/routes/auth.js +3 -1
- package/dist/esm/router/transport/fetch/routes/deviceLinking.js +38 -149
- package/dist/esm/router/transport/fetch/routes/deviceLinkingOwnerAuthorization.js +5 -4
- package/dist/esm/router/transport/fetch/routes/deviceLinkingResponses.js +130 -0
- package/dist/esm/router/transport/fetch/routes/ecdsaOperationStepUpFactor.js +171 -0
- package/dist/esm/router/transport/fetch/routes/ed25519AuthorizedOperationRevalidation.js +65 -0
- package/dist/esm/router/transport/fetch/routes/normalSigningRouterProxy.js +13 -3
- package/dist/esm/router/transport/fetch/routes/passkeyCustody.js +4 -3
- package/dist/esm/router/transport/fetch/routes/sessions.js +3 -2
- package/dist/esm/router/transport/fetch/routes/syncAccount.js +7 -2
- package/dist/esm/router/transport/fetch/routes/thresholdEcdsa.js +86 -245
- package/dist/esm/router/transport/fetch/routes/thresholdEd25519.js +76 -212
- package/dist/esm/router/transport/fetch/routes/walletExecutionLanePreflight.js +18 -41
- package/dist/esm/router/transport/fetch/routes/walletRegistration.js +6 -3
- package/dist/esm/router/transport/fetch/routes/webauthnAuthenticators.js +1 -1
- package/dist/esm/shared-ts/src/authorization/index.js +1 -1
- package/dist/esm/shared-ts/src/authorization/walletAuthority.js +2 -2
- package/dist/esm/shared-ts/src/authorization/walletSessionIssuance.js +0 -1
- package/dist/esm/shared-ts/src/device-linking/activeWalletSession.js +12 -2
- package/dist/esm/shared-ts/src/device-linking/authorityActivation.js +0 -2
- package/dist/esm/shared-ts/src/device-linking/contracts.js +16 -1
- package/dist/esm/shared-ts/src/device-linking/digests.js +2 -9
- package/dist/esm/shared-ts/src/device-linking/ed25519ExportRoot.js +1 -1
- package/dist/esm/shared-ts/src/device-linking/index.js +1 -1
- package/dist/esm/shared-ts/src/device-linking/parsers.js +1 -1
- package/dist/esm/shared-ts/src/device-linking/sourceContribution.js +1 -1
- package/dist/esm/shared-ts/src/device-linking/wireFields.js +1 -1
- package/dist/esm/shared-ts/src/near/actions.js +0 -1
- package/dist/esm/shared-ts/src/near/nearClient.js +1 -3
- package/dist/esm/shared-ts/src/signing-lanes/evmFamilySigningKeySlotId.js +1 -1
- package/dist/esm/shared-ts/src/signing-lanes/index.js +1 -6
- package/dist/esm/shared-ts/src/signing-lanes/ownerContinuity.js +3 -3
- package/dist/esm/shared-ts/src/signing-lanes/participantDigest.js +2 -81
- package/dist/esm/shared-ts/src/signing-lanes/participants.js +1 -219
- package/dist/esm/shared-ts/src/signing-lanes/recordParsers.js +0 -3
- package/dist/esm/shared-ts/src/tenant-root/tenantRootOperationRecord.js +1 -2
- package/dist/esm/shared-ts/src/threshold/ecdsaDerivationRoleLocalBootstrap.js +0 -1
- package/dist/esm/shared-ts/src/threshold/keyMaterialBrands.js +1 -22
- package/dist/esm/shared-ts/src/threshold/participants.js +0 -1
- package/dist/esm/shared-ts/src/threshold/signingRootScope.js +0 -1
- package/dist/esm/shared-ts/src/utils/addWalletAuthMethod.js +4 -13
- package/dist/esm/shared-ts/src/utils/canonicalPrimitives.js +1 -7
- package/dist/esm/shared-ts/src/utils/domainIds.js +1 -16
- package/dist/esm/shared-ts/src/utils/ecdsaCapabilityActivation.js +1 -11
- package/dist/esm/shared-ts/src/utils/ecdsaKeyFactsInventory.js +0 -1
- package/dist/esm/shared-ts/src/utils/ecdsaServerTiming.js +6 -1
- package/dist/esm/shared-ts/src/utils/emailOtpDomain.js +4 -2
- package/dist/esm/shared-ts/src/utils/errors.js +1 -19
- package/dist/esm/shared-ts/src/utils/near.js +1 -1
- package/dist/esm/shared-ts/src/utils/registrationEstablishedSession.js +1 -1
- package/dist/esm/shared-ts/src/utils/registrationIds.js +1 -5
- package/dist/esm/shared-ts/src/utils/registrationIntent.js +0 -1
- package/dist/esm/shared-ts/src/utils/registrationSetupOperation.js +8 -0
- package/dist/esm/shared-ts/src/utils/registrationSignerPlan.js +1 -1
- package/dist/esm/shared-ts/src/utils/routerAbEcdsaDerivation.js +1 -2
- package/dist/esm/shared-ts/src/utils/routerAbPublicKeyset.js +0 -27
- package/dist/esm/shared-ts/src/utils/validation.js +1 -5
- package/dist/esm/shared-ts/src/utils/walletAuthAuthority.js +0 -1
- package/dist/esm/shared-ts/src/utils/walletManagementProtocol.js +6 -0
- package/dist/esm/shared-ts/src/utils/wireSchema.js +2 -13
- package/dist/esm/shared-ts/src/wallet-recovery/backupAcknowledgement.js +6 -24
- package/dist/esm/shared-ts/src/wallet-recovery/recoveryCodeLocator.js +0 -1
- package/dist/esm/shared-ts/src/wallet-recovery/recoveryKeyId.js +5 -6
- package/dist/esm/shared-ts/src/wallet-recovery/walletRecoveryEcdsaPossession.js +1 -1
- package/dist/esm/storage/d1Sql.js +1 -7
- package/dist/esm/threshold/session/signingSessionSeal/crypto/cipher.js +0 -1
- package/dist/esm/threshold/session/signingSessionSeal/guards/backends.js +1 -2
- package/dist/esm/threshold/session/signingSessionSeal/idempotencyBackends.js +0 -1
- package/dist/esm/threshold/session/signingSessionSeal/idempotencyRecords.js +0 -1
- package/dist/esm/threshold/session/signingSessionSeal/options.js +1 -2
- package/dist/esm/wasm/evm_crypto/pkg/evm_crypto_bg.wasm +0 -0
- package/dist/esm/wasm/near_signer/pkg/wasm_signer_worker.js +0 -611
- package/dist/esm/wasm/near_signer/pkg/wasm_signer_worker_bg.wasm +0 -0
- package/dist/esm/wasm/shamir3pass_runtime/pkg/shamir3pass_runtime_bg.wasm +0 -0
- package/dist/types/shared-ts/src/authorization/capabilityKinds.d.ts +0 -4
- package/dist/types/shared-ts/src/device-linking/activeWalletSession.d.ts +2 -1
- package/dist/types/shared-ts/src/device-linking/contracts.d.ts +11 -0
- package/dist/types/shared-ts/src/signing-lanes/evmFamilySigningKeySlotId.d.ts +0 -2
- package/dist/types/shared-ts/src/signing-lanes/execution.d.ts +0 -11
- package/dist/types/shared-ts/src/signing-lanes/ids.d.ts +2 -7
- package/dist/types/shared-ts/src/signing-lanes/index.d.ts +0 -4
- package/dist/types/shared-ts/src/signing-lanes/ownerContinuity.d.ts +0 -1
- package/dist/types/shared-ts/src/signing-lanes/participantDigest.d.ts +0 -18
- package/dist/types/shared-ts/src/signing-lanes/participants.d.ts +6 -35
- package/dist/types/shared-ts/src/signing-lanes/rotation.d.ts +6 -843
- package/dist/types/shared-ts/src/threshold/ed25519OperationFingerprint.d.ts +2 -1
- package/dist/types/shared-ts/src/threshold/keyMaterialBrands.d.ts +0 -10
- package/dist/types/shared-ts/src/threshold/participants.d.ts +1 -1
- package/dist/types/shared-ts/src/utils/addWalletAuthMethod.d.ts +1 -133
- package/dist/types/shared-ts/src/utils/addWalletAuthMethod.typecheck.d.ts +4 -18
- package/dist/types/shared-ts/src/utils/domainIds.d.ts +0 -12
- package/dist/types/shared-ts/src/utils/emailOtpDomain.d.ts +3 -1
- package/dist/types/shared-ts/src/utils/errors.d.ts +0 -4
- package/dist/types/shared-ts/src/utils/near.d.ts +0 -20
- package/dist/types/shared-ts/src/utils/normalize.d.ts +0 -2
- package/dist/types/shared-ts/src/utils/registrationSetupOperation.d.ts +3 -0
- package/dist/types/shared-ts/src/utils/routerAbPublicKeyset.d.ts +0 -9
- package/dist/types/shared-ts/src/utils/validation.d.ts +1 -3
- package/dist/types/shared-ts/src/utils/walletCapabilityBindings.d.ts +0 -1
- package/dist/types/shared-ts/src/utils/walletManagementProtocol.d.ts +3 -0
- package/dist/types/shared-ts/src/utils/wireSchema.d.ts +0 -2
- package/dist/types/shared-ts/src/wallet-recovery/backupAcknowledgement.d.ts +0 -1
- package/dist/types/shared-ts/src/wallet-recovery/recoveryCodeReservation.d.ts +1 -10
- package/dist/types/shared-ts/src/wallet-recovery/recoveryCodes.d.ts +1 -3
- package/dist/types/shared-ts/src/wallet-recovery/recoveryKeyId.d.ts +5 -21
- package/dist/types/wallet-server/src/authorization/domain.d.ts +17 -1
- package/dist/types/wallet-server/src/authorization/ecdsaWalletSessionAdmission.d.ts +1 -0
- package/dist/types/wallet-server/src/authorization/ed25519WalletSessionAdmission.d.ts +35 -0
- package/dist/types/wallet-server/src/authorization/ed25519WalletSessionAdmission.typecheck.d.ts +2 -0
- package/dist/types/wallet-server/src/authorization/lifecycleRouting.d.ts +32 -0
- package/dist/types/wallet-server/src/authorization/lifecycleRouting.typecheck.d.ts +2 -0
- package/dist/types/wallet-server/src/authorization/recoveryRouting.d.ts +22 -0
- package/dist/types/wallet-server/src/authorization/recoveryRouting.typecheck.d.ts +2 -0
- package/dist/types/wallet-server/src/authorization/service.d.ts +50 -5
- package/dist/types/wallet-server/src/authorization/sessionRouting.d.ts +22 -0
- package/dist/types/wallet-server/src/authorization/sessionRouting.typecheck.d.ts +2 -0
- package/dist/types/wallet-server/src/cloud-host.d.ts +36 -10
- package/dist/types/wallet-server/src/core/EmailOtpRecords.d.ts +2 -22
- package/dist/types/wallet-server/src/core/EmailOtpStores.d.ts +20 -84
- package/dist/types/wallet-server/src/core/IdentityStore.d.ts +0 -10
- package/dist/types/wallet-server/src/core/RegistrationCeremonyStore.d.ts +0 -1
- package/dist/types/wallet-server/src/core/ThresholdService/config.d.ts +0 -2
- package/dist/types/wallet-server/src/core/ThresholdService/index.d.ts +1 -3
- package/dist/types/wallet-server/src/core/ThresholdService/kv.d.ts +0 -7
- package/dist/types/wallet-server/src/core/ThresholdService/routerAb/ecdsaDerivationPoolFillHandlers.d.ts +1 -3
- package/dist/types/wallet-server/src/core/ThresholdService/routerAb/ecdsaDerivationPresignBridge.d.ts +6 -0
- package/dist/types/wallet-server/src/core/ThresholdService/routerAb/internalServiceHttp.d.ts +1 -0
- package/dist/types/wallet-server/src/core/ThresholdService/routerAbNormalSigningPolicy.d.ts +0 -1
- package/dist/types/wallet-server/src/core/ThresholdService/stores/WalletSessionStore.d.ts +7 -19
- package/dist/types/wallet-server/src/core/ThresholdService/validation.d.ts +0 -34
- package/dist/types/wallet-server/src/core/WalletAuthMethodStore.d.ts +1 -5
- package/dist/types/wallet-server/src/core/WalletStore.d.ts +0 -3
- package/dist/types/wallet-server/src/core/WebAuthnAuthenticatorStore.d.ts +0 -20
- package/dist/types/wallet-server/src/core/WebAuthnCredentialBindingStore.d.ts +1 -27
- package/dist/types/wallet-server/src/core/WebAuthnLoginChallengeStore.d.ts +2 -16
- package/dist/types/wallet-server/src/core/WebAuthnSyncChallengeStore.d.ts +22 -14
- package/dist/types/wallet-server/src/core/authService/emailOtpConfig.d.ts +0 -24
- package/dist/types/wallet-server/src/core/authService/emailOtpEnrollment.d.ts +1 -70
- package/dist/types/wallet-server/src/core/authService/emailOtpSeal.d.ts +0 -13
- package/dist/types/wallet-server/src/core/authService/githubOAuth.d.ts +2 -1
- package/dist/types/wallet-server/src/core/authService/nearTransactions.d.ts +1 -39
- package/dist/types/wallet-server/src/core/authService/rateLimits.d.ts +0 -17
- package/dist/types/wallet-server/src/core/authService/webauthn.d.ts +0 -125
- package/dist/types/wallet-server/src/core/authService/webauthnOidcHelpers.d.ts +0 -3
- package/dist/types/wallet-server/src/core/authService/webauthnVerificationOutcomes.d.ts +1 -1
- package/dist/types/wallet-server/src/core/authService/webauthnWalletBinding.d.ts +0 -12
- package/dist/types/wallet-server/src/core/config.d.ts +0 -10
- package/dist/types/wallet-server/src/core/d1Ed25519SignerRead.d.ts +17 -0
- package/dist/types/wallet-server/src/core/d1IdentityStore.d.ts +0 -2
- package/dist/types/wallet-server/src/core/d1TenantStore.d.ts +0 -7
- package/dist/types/wallet-server/src/core/d1WalletAuthMethodStore.d.ts +0 -1
- package/dist/types/wallet-server/src/core/d1WalletStore.d.ts +6 -0
- package/dist/types/wallet-server/src/core/deviceLinking/linkedDeviceBootstrap.d.ts +19 -0
- package/dist/types/wallet-server/src/core/deviceLinking/linkedDeviceSession.d.ts +8 -6
- package/dist/types/wallet-server/src/core/deviceLinking/requestProof.d.ts +2 -5
- package/dist/types/wallet-server/src/core/emailOtpD1Statements.d.ts +11 -7
- package/dist/types/wallet-server/src/core/keyMaterialBrands.d.ts +1 -5
- package/dist/types/wallet-server/src/core/nearRelayerAccountProvisioning.d.ts +0 -1
- package/dist/types/wallet-server/src/core/passkeyCredentialClaims.d.ts +9 -0
- package/dist/types/wallet-server/src/core/routerAbSigning/RouterAbEcdsaPresignRuntime.d.ts +5 -3
- package/dist/types/wallet-server/src/core/routerAbSigning/RouterAbNormalSigningRuntime.d.ts +0 -2
- package/dist/types/wallet-server/src/core/signingMaterial/ordinaryInactiveSignerMaterialReservation.d.ts +1 -0
- package/dist/types/wallet-server/src/core/threeRouteRegistrationContracts.d.ts +15 -140
- package/dist/types/wallet-server/src/core/threeRouteRegistrationContracts.typecheck.d.ts +4 -52
- package/dist/types/wallet-server/src/core/thresholdEcdsaChainTarget.d.ts +0 -1
- package/dist/types/wallet-server/src/core/types.d.ts +0 -299
- package/dist/types/wallet-server/src/hosted-wallet-gateway.d.ts +18 -5
- package/dist/types/wallet-server/src/index.d.ts +8 -13
- package/dist/types/wallet-server/src/localIntendedYaoSigningFault.d.ts +1 -16
- package/dist/types/wallet-server/src/localRegistrationSetupAuthority.d.ts +13 -0
- package/dist/types/wallet-server/src/router/auth/commonRouterUtils.d.ts +7 -1
- package/dist/types/wallet-server/src/router/auth/routerApiCredentialAuth.d.ts +11 -3
- package/dist/types/wallet-server/src/router/auth/walletRegistrationContext.d.ts +8 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/auth/d1AuthorizationAssembly.d.ts +23 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/auth/d1EmailOtpRouteService.d.ts +16 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/auth/d1RouterApiAuthConfig.d.ts +28 -3
- package/dist/types/wallet-server/src/router/cloudflare/d1/auth/d1RouterApiAuthService.d.ts +4 -1
- package/dist/types/wallet-server/src/router/cloudflare/d1/auth/walletSessionCredentialReaders.d.ts +7 -1
- package/dist/types/wallet-server/src/router/cloudflare/d1/authorization/d1AuthorizationStore.d.ts +33 -2
- package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceAuthorityInstallService.d.ts +5 -1
- package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceEmailOtpGrantStore.d.ts +7 -1
- package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceRequestProofNonceStore.d.ts +1 -10
- package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceRouteService.d.ts +4 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceSessionStore.d.ts +6 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceTargetPlanner.d.ts +1 -13
- package/dist/types/wallet-server/src/router/cloudflare/d1/ed25519Yao/d1Ed25519YaoLifecycleDecisionStore.d.ts +3 -1
- package/dist/types/wallet-server/src/router/cloudflare/d1/ed25519Yao/d1Ed25519YaoProductRegistrationPartitionedStateStore.d.ts +1 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/ed25519Yao/d1Ed25519YaoStateWriteFence.d.ts +8 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/ed25519Yao/d1WalletCeremonyActivity.d.ts +15 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpChallengeIssuer.d.ts +6 -1
- package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpChallengeService.d.ts +2 -2
- package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpChallengeStore.d.ts +2 -1
- package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpChallengeVerifier.d.ts +4 -1
- package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpCounters.typecheck.d.ts +2 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpGrantStore.d.ts +0 -2
- package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpRateLimitStore.d.ts +6 -13
- package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpRecords.d.ts +21 -7
- package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1GoogleEmailOtpRegistrationAttemptStore.d.ts +29 -1
- package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1GoogleEmailOtpRegistrationRecords.d.ts +3 -16
- package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1GoogleEmailOtpSessionResolver.d.ts +7 -2
- package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1GoogleRegistrationCompletion.d.ts +23 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/identity/d1IdentityService.d.ts +0 -12
- package/dist/types/wallet-server/src/router/cloudflare/d1/near/d1SponsoredNearAccount.d.ts +24 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/near/d1SponsoredNearAccount.typecheck.d.ts +2 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/oidc/d1OidcVerificationService.d.ts +0 -1
- package/dist/types/wallet-server/src/router/cloudflare/d1/oidc/googleOidcToken.d.ts +4 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/passkeyCustody/d1PasskeyCustodyRouteService.d.ts +5 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/passkeyCustody/d1WalletCustodyCommitStore.d.ts +26 -1
- package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1RegistrationCeremonyRecordStore.d.ts +33 -8
- package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1RegistrationCeremonyRecords.d.ts +10 -11
- package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1RegistrationCeremonyStore.d.ts +17 -7
- package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1RegistrationSessionTransaction.d.ts +13 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1RegistrationSetupSupport.d.ts +58 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1WalletExecutionAuthority.d.ts +41 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1WalletOperationStore.d.ts +28 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1WalletRegistrationCommitStore.d.ts +9 -9
- package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1WalletRegistrationInitialSession.d.ts +17 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1WalletRegistrationPreparation.d.ts +12 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1WalletRegistrationRead.d.ts +43 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1WalletRegistrationService.d.ts +52 -90
- package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1WalletRegistrationSetup.d.ts +3 -30
- package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1WalletRegistrationSetupExecution.d.ts +16 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/registration/walletRegistrationEstablishedSessionIssuer.d.ts +42 -14
- package/dist/types/wallet-server/src/router/cloudflare/d1/registration/walletRegistrationSessionCommitReceipt.d.ts +5 -4
- package/dist/types/wallet-server/src/router/cloudflare/d1/signingAdmission/d1RouterAbNormalSigningAdmissionStore.d.ts +24 -1
- package/dist/types/wallet-server/src/router/cloudflare/d1/versionedJson/d1VersionedJsonRecordStore.d.ts +10 -4
- package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/authorizationSnapshotLayout.d.ts +21 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletAddSignerFinalizeRecord.d.ts +27 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletAddSignerService.d.ts +4 -10
- package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletAuthMethodService.d.ts +5 -9
- package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletAuthorityStore.d.ts +8 -4
- package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletAuthorizationCleanup.d.ts +20 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletAuthorizationFreeze.d.ts +12 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletAuthorizationHistory.d.ts +20 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletAuthorizationIntake.d.ts +29 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletAuthorizationSnapshot.d.ts +31 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletRelocationApprovals.d.ts +49 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletRelocationChallenges.d.ts +47 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletRelocationEmailOtp.d.ts +25 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletRelocationOwner.d.ts +88 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletRelocationOwnerRequest.d.ts +37 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletRelocationPasskey.d.ts +12 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletRelocationReadAccess.d.ts +18 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletRelocationSessions.d.ts +23 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletRelocationWriteBlock.d.ts +16 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/walletObjectAddresses.d.ts +14 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/webauthn/d1WebAuthnAuthService.d.ts +3 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/webauthn/d1WebAuthnRecords.d.ts +0 -13
- package/dist/types/wallet-server/src/router/cloudflare/d1/webauthn/d1WebAuthnStore.d.ts +23 -10
- package/dist/types/wallet-server/src/router/cloudflare/d1/webauthn/d1WebAuthnStore.typecheck.d.ts +2 -0
- package/dist/types/wallet-server/src/router/cloudflare/runtime/cloudflare.types.d.ts +0 -2
- package/dist/types/wallet-server/src/router/cloudflare/runtime/routerAbServiceBindings.d.ts +13 -0
- package/dist/types/wallet-server/src/router/cloudflare/runtime/walletAuthorizationRelocationRoutes.d.ts +21 -0
- package/dist/types/wallet-server/src/router/cloudflare/runtime/walletConsoleOps.d.ts +1 -0
- package/dist/types/wallet-server/src/router/cloudflare/runtime/walletConsoleOpsClient.d.ts +3 -1
- package/dist/types/wallet-server/src/router/cloudflare/runtime/walletControlOps.d.ts +2 -1
- package/dist/types/wallet-server/src/router/cloudflare/runtime/walletGateway.d.ts +3 -1
- package/dist/types/wallet-server/src/router/cloudflare/runtime/walletObjectAddresses.d.ts +45 -0
- package/dist/types/wallet-server/src/router/cloudflare/runtime/walletPlacementRoutes.d.ts +30 -0
- package/dist/types/wallet-server/src/router/cloudflare/runtime/walletRelocationDeriver.d.ts +11 -0
- package/dist/types/wallet-server/src/router/cloudflare/runtime/walletRelocationEcdsa.d.ts +7 -0
- package/dist/types/wallet-server/src/router/cloudflare/runtime/walletRelocationEd25519.d.ts +7 -0
- package/dist/types/wallet-server/src/router/cloudflare/runtime/walletRelocationOps.d.ts +11 -0
- package/dist/types/wallet-server/src/router/cloudflare/runtime/walletRelocationPresign.d.ts +7 -0
- package/dist/types/wallet-server/src/router/cloudflare/runtime/walletRelocationSource.d.ts +26 -0
- package/dist/types/wallet-server/src/router/cloudflare/runtime/walletRuntimeOps.d.ts +3 -0
- package/dist/types/wallet-server/src/router/cloudflare/signingLanes/cloudflareOrdinaryInactiveSignerMaterialReservation.d.ts +5 -0
- package/dist/types/wallet-server/src/router/cloudflare-adaptor.d.ts +0 -1
- package/dist/types/wallet-server/src/router/domains/ecdsa/routerAbEcdsaStrictRegistration.d.ts +3 -0
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoCapabilityCommit.d.ts +7 -0
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistration.d.ts +42 -8
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistrationPartitionedStateStore.d.ts +33 -2
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistrationPartitioning.d.ts +2 -2
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/export/routerAbEd25519YaoExport.d.ts +14 -8
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/export/routerAbEd25519YaoExport.typecheck.d.ts +2 -0
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/export/routerAbEd25519YaoExportRequestScopedCloudflare.d.ts +2 -0
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/recovery/routerAbEd25519YaoRecovery.d.ts +17 -9
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/recovery/routerAbEd25519YaoRecoveryRequestScopedCloudflare.d.ts +2 -0
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/recovery/routerAbEd25519YaoRecoveryWalletSessionAuthorization.d.ts +2 -0
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/registration/routerAbEd25519YaoHttpRegistrationBackend.d.ts +13 -14
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistration.d.ts +7 -3
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistrationExecutionRecord.d.ts +1 -0
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistrationIntentAuthorization.d.ts +6 -1
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistrationSideEffectBoundary.d.ts +11 -0
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/routerAbEd25519YaoGatewayEnvelope.d.ts +12 -3
- package/dist/types/wallet-server/src/router/domains/passkeyCustody/passkeyCustodyEnvelopeRetrieval.d.ts +0 -2
- package/dist/types/wallet-server/src/router/domains/passkeyCustody/registrationCustodyOutcome.d.ts +10 -6
- package/dist/types/wallet-server/src/router/domains/passkeyCustody/walletCustodyRegistrationAdmission.d.ts +10 -3
- package/dist/types/wallet-server/src/router/domains/passkeyCustody/walletCustodyRegistrationCommit.d.ts +12 -8
- package/dist/types/wallet-server/src/router/domains/signingOperations/authorizedOperationWire.d.ts +97 -0
- package/dist/types/wallet-server/src/router/domains/signingOperations/ecdsaSigningResponse.d.ts +13 -0
- package/dist/types/wallet-server/src/router/domains/signingOperations/routerAbNormalSigningAdmission.d.ts +9 -206
- package/dist/types/wallet-server/src/router/domains/signingOperations/routerAbPrivateSigningWorker.d.ts +0 -17
- package/dist/types/wallet-server/src/router/domains/signingOperations/signingPrepareSession.d.ts +23 -0
- package/dist/types/wallet-server/src/router/domains/signingOperations/walletExecutionAdmission.d.ts +1 -2
- package/dist/types/wallet-server/src/router/domains/walletRegistration/registrationSessionSeal.d.ts +36 -0
- package/dist/types/wallet-server/src/router/domains/walletRegistration/walletRegistrationInputs.d.ts +8 -7
- package/dist/types/wallet-server/src/router/domains/walletRegistration/walletRegistrationReservation.d.ts +125 -0
- package/dist/types/wallet-server/src/router/domains/walletRegistration/walletRegistrationRoutes.d.ts +17 -15
- package/dist/types/wallet-server/src/router/domains/walletRegistration/walletRegistrationSetupPayload.d.ts +2 -2
- package/dist/types/wallet-server/src/router/framework/apiCredentialPorts.d.ts +24 -0
- package/dist/types/wallet-server/src/router/framework/authServicePort.d.ts +35 -41
- package/dist/types/wallet-server/src/router/framework/googleLoginResolution.typecheck.d.ts +2 -0
- package/dist/types/wallet-server/src/router/framework/registrationSetupDispatch.d.ts +13 -0
- package/dist/types/wallet-server/src/router/framework/routerApi.d.ts +3 -12
- package/dist/types/wallet-server/src/router/transport/fetch/routes/deviceLinking.d.ts +1 -1
- package/dist/types/wallet-server/src/router/transport/fetch/routes/deviceLinkingResponses.d.ts +17 -0
- package/dist/types/wallet-server/src/router/transport/fetch/routes/ecdsaOperationStepUpFactor.d.ts +37 -0
- package/dist/types/wallet-server/src/router/transport/fetch/routes/ed25519AuthorizedOperationRevalidation.d.ts +37 -0
- package/dist/types/wallet-server/src/router/transport/fetch/routes/thresholdEcdsa.d.ts +1 -17
- package/dist/types/wallet-server/src/storage/d1Sql.d.ts +0 -1
- package/dist/types/wallet-server/src/storage/tenantRoute.d.ts +1 -1
- package/migrations/d1-signer/0040_namespace_home_challenges.sql +16 -0
- package/migrations/d1-signer/0041_step_up_admission_expiry.sql +28 -0
- package/migrations/d1-signer/0042_deployment_resource_challenges.sql +4 -0
- package/migrations/d1-signer/0043_google_registration_candidate_claim.sql +2 -0
- package/migrations/d1-signer/0044_linked_device_bootstrap_imports.sql +6 -0
- package/migrations/d1-signer/0045_wallet_owned_capability_receipts.sql +29 -0
- package/migrations/d1-signer/0046_wallet_owned_signing_abuse.sql +41 -0
- package/migrations/d1-signer/0047_remove_unused_near_public_keys.sql +2 -0
- package/migrations/d1-signer/0048_operation_owner_scope.sql +45 -0
- package/migrations/d1-signer/0049_wallet_relocation_challenges.sql +16 -0
- package/migrations/d1-signer/0050_wallet_relocation_approvals.sql +14 -0
- package/migrations/d1-signer/0051_wallet_relocation_email_otp.sql +92 -0
- package/migrations/d1-signer/0052_wallet_relocation_session_fences.sql +91 -0
- package/migrations/d1-signer/0053_wallet_hosted_history_import.sql +164 -0
- package/migrations/d1-signer/0054_wallet_authorization_freeze.sql +318 -0
- package/migrations/d1-signer/0055_wallet_authorization_snapshot.sql +120 -0
- package/migrations/d1-signer/0056_wallet_authorization_history_import.sql +424 -0
- package/migrations/d1-signer/0057_wallet_authorization_intake.sql +44 -0
- package/migrations/d1-signer/0058_wallet_ceremony_activity.sql +59 -0
- package/migrations/d1-signer/0059_wallet_authorization_activation.sql +45 -0
- package/migrations/d1-signer/0060_wallet_authorization_cleanup.sql +153 -0
- package/migrations/d1-signer/0061_wallet_session_operation_settlement.sql +28 -0
- package/migrations/d1-signer/0062_wallet_step_up_operation_settlement.sql +204 -0
- package/migrations/d1-signer/0063_wallet_operation_history_transfer.sql +466 -0
- package/migrations/d1-signer/0064_wallet_execution_generations.sql +93 -0
- package/migrations/d1-signer/0065_wallet_operation_execution_generation.sql +37 -0
- package/migrations/d1-signer/0066_regional_deployment_admission.sql +59 -0
- package/migrations/d1-signer/0067_registration_completion_decision.sql +12 -0
- package/migrations/d1-signer/0068_registration_cancellation_write_fence.sql +24 -0
- package/migrations/d1-signer/0069_cancelled_registration_session_fence.sql +11 -0
- package/migrations/d1-signer/0070_wallet_passkey_relocation.sql +369 -0
- package/migrations/d1-signer/0071_regional_wallet_otp_counters.sql +98 -0
- package/migrations/d1-signer/0072_linked_device_relocation_history.sql +899 -0
- package/migrations/d1-signer/0073_wallet_recovery_relocation.sql +86 -0
- package/migrations/d1-signer/0074_email_otp_relocation.sql +158 -0
- package/migrations/d1-signer/0075_wallet_authorization_return.sql +107 -0
- package/migrations/d1-signer/0076_wallet_relocation_write_block.sql +406 -0
- package/migrations/d1-signer/0077_wallet_object_addresses.sql +24 -0
- package/package.json +2 -3
- package/src/README.md +33 -3
- package/cloudflare-router-ab/scripts/local-key-material.mjs +0 -29
- package/dist/esm/core/AuthService.js +0 -2
- package/dist/esm/core/NearPublicKeyStore.js +0 -200
- package/dist/esm/core/ThresholdService/stores/CloudflareDurableObjectStore.js +0 -397
- package/dist/esm/core/ThresholdService/stores/KeyStore.js +0 -140
- package/dist/esm/core/ThresholdService/stores/SessionStore.js +0 -361
- package/dist/esm/core/ThresholdService/stores/StoreConfig.js +0 -13
- package/dist/esm/core/ThresholdService/stores/exportReplayGuard.js +0 -7
- package/dist/esm/core/authService/AuthService.js +0 -594
- package/dist/esm/core/authService/bytes.js +0 -19
- package/dist/esm/core/authService/configValues.js +0 -15
- package/dist/esm/core/authService/emailOtpChallengeOperations.js +0 -123
- package/dist/esm/core/authService/emailOtpChallengeProof.js +0 -183
- package/dist/esm/core/authService/emailOtpChallengeVerification.js +0 -264
- package/dist/esm/core/authService/emailOtpChallenges.js +0 -225
- package/dist/esm/core/authService/emailOtpDelivery.js +0 -134
- package/dist/esm/core/authService/emailOtpGrant.js +0 -43
- package/dist/esm/core/authService/emailOtpRegistrationEnrollment.js +0 -144
- package/dist/esm/core/authService/emailOtpUnlock.js +0 -174
- package/dist/esm/core/authService/googleEmailOtpOperations.js +0 -141
- package/dist/esm/core/authService/googleEmailOtpRegistration.js +0 -587
- package/dist/esm/core/authService/identity.js +0 -42
- package/dist/esm/core/authService/identityOperations.js +0 -32
- package/dist/esm/core/authService/nearAccountOperations.js +0 -229
- package/dist/esm/core/authService/nearPublicKeyMetadata.js +0 -108
- package/dist/esm/core/authService/oidcVerification.js +0 -249
- package/dist/esm/core/authService/registrationThresholdHelpers.js +0 -30
- package/dist/esm/core/authService/runtime.js +0 -45
- package/dist/esm/core/authService/storeRegistry.js +0 -102
- package/dist/esm/core/authService/thresholdStoreSummary.js +0 -32
- package/dist/esm/core/authService/webauthnAuthority.js +0 -17
- package/dist/esm/core/defaultConfigsServer.js +0 -9
- package/dist/esm/core/hostedAccountIds.js +0 -225
- package/dist/esm/core/routerAbSigning/createRouterAbSigningRuntimes.js +0 -84
- package/dist/esm/core/signingLanes/LaneAggregateRevocationApplicationService.js +0 -86
- package/dist/esm/core/signingLanes/LaneEnrollmentActivation.js +0 -324
- package/dist/esm/core/signingLanes/LaneEnrollmentRevocation.js +0 -173
- package/dist/esm/core/signingLanes/LaneLifecycleApplicationService.js +0 -198
- package/dist/esm/core/signingLanes/ecdsaServerRetirement.js +0 -73
- package/dist/esm/core/signingLanes/ed25519ServerRetirement.js +0 -68
- package/dist/esm/core/storeBackends.js +0 -208
- package/dist/esm/core/utils.js +0 -14
- package/dist/esm/core/webAuthnStoreBackends.js +0 -198
- package/dist/esm/router/cloudflare/d1/near/d1NearPublicKeyStore.js +0 -49
- package/dist/esm/router/cloudflare/d1/signingLanes/d1EcdsaLanePrivateBindingResolver.js +0 -10
- package/dist/esm/router/cloudflare/d1/signingLanes/d1LaneAggregateRevocationApplicationService.js +0 -22
- package/dist/esm/router/cloudflare/d1/signingLanes/d1LaneEffectJournalStore.js +0 -166
- package/dist/esm/router/cloudflare/d1/signingLanes/d1LaneEnrollmentGateway.js +0 -38
- package/dist/esm/router/cloudflare/d1/signingLanes/d1LaneLifecycleApplicationService.js +0 -20
- package/dist/esm/router/cloudflare/d1/signingLanes/d1LaneLifecycleStore.js +0 -1459
- package/dist/esm/router/cloudflare/d1/signingLanes/d1LaneLockStore.js +0 -114
- package/dist/esm/router/cloudflare/d1/signingLanes/d1LaneProtocolCommitter.js +0 -16
- package/dist/esm/router/cloudflare/d1/signingLanes/d1LaneRecords.js +0 -171
- package/dist/esm/router/cloudflare/d1/signingLanes/index.js +0 -10
- package/dist/esm/router/cloudflare/durableObjects/thresholdStore.js +0 -397
- package/dist/esm/router/cloudflare/signingLanes/cloudflareLaneCurveExecution.js +0 -597
- package/dist/esm/router/cloudflare/signingLanes/cloudflareLaneProtocolCommitter.js +0 -273
- package/dist/esm/router/cloudflare/signingLanes/index.js +0 -4
- package/dist/esm/router/cloudflare/signingLanes/linkedDeviceEd25519CeremonyBinding.js +0 -32
- package/dist/esm/router/transport/fetch/routes/nearPublicKeys.js +0 -27
- package/dist/esm/shared-ts/src/signing-lanes/rotation.js +0 -8
- package/dist/esm/shared-ts/src/signing-lanes/rotationDigests.js +0 -358
- package/dist/esm/shared-ts/src/signing-lanes/rotationLifecycle.js +0 -313
- package/dist/esm/shared-ts/src/signing-lanes/rotationParsers.js +0 -532
- package/dist/esm/shared-ts/src/signing-lanes/rotationProtocolParsers.js +0 -323
- package/dist/esm/shared-ts/src/signing-lanes/rotationWireFields.js +0 -59
- package/dist/types/shared-ts/src/signing-lanes/participantDigest.typecheck.d.ts +0 -2
- package/dist/types/shared-ts/src/signing-lanes/rotation.typecheck.d.ts +0 -2
- package/dist/types/shared-ts/src/signing-lanes/rotationDigests.d.ts +0 -13
- package/dist/types/shared-ts/src/signing-lanes/rotationLifecycle.d.ts +0 -78
- package/dist/types/shared-ts/src/signing-lanes/rotationParsers.d.ts +0 -27
- package/dist/types/shared-ts/src/signing-lanes/rotationProtocolParsers.d.ts +0 -6
- package/dist/types/shared-ts/src/signing-lanes/rotationWireFields.d.ts +0 -20
- package/dist/types/shared-ts/src/wallet-recovery/recoveryCodeAttempt.d.ts +0 -59
- package/dist/types/wallet-server/src/core/AuthService.d.ts +0 -3
- package/dist/types/wallet-server/src/core/NearPublicKeyStore.d.ts +0 -48
- package/dist/types/wallet-server/src/core/ThresholdService/stores/CloudflareDurableObjectStore.d.ts +0 -21
- package/dist/types/wallet-server/src/core/ThresholdService/stores/KeyStore.d.ts +0 -40
- package/dist/types/wallet-server/src/core/ThresholdService/stores/SessionStore.d.ts +0 -98
- package/dist/types/wallet-server/src/core/ThresholdService/stores/StoreConfig.d.ts +0 -4
- package/dist/types/wallet-server/src/core/ThresholdService/stores/ThresholdStoreConfig.typecheck.d.ts +0 -2
- package/dist/types/wallet-server/src/core/ThresholdService/stores/exportReplayGuard.d.ts +0 -3
- package/dist/types/wallet-server/src/core/authService/AuthService.d.ts +0 -490
- package/dist/types/wallet-server/src/core/authService/bytes.d.ts +0 -3
- package/dist/types/wallet-server/src/core/authService/configValues.d.ts +0 -7
- package/dist/types/wallet-server/src/core/authService/emailOtpChallengeOperations.d.ts +0 -109
- package/dist/types/wallet-server/src/core/authService/emailOtpChallengeProof.d.ts +0 -169
- package/dist/types/wallet-server/src/core/authService/emailOtpChallengeVerification.d.ts +0 -47
- package/dist/types/wallet-server/src/core/authService/emailOtpChallenges.d.ts +0 -86
- package/dist/types/wallet-server/src/core/authService/emailOtpDelivery.d.ts +0 -66
- package/dist/types/wallet-server/src/core/authService/emailOtpGrant.d.ts +0 -43
- package/dist/types/wallet-server/src/core/authService/emailOtpRegistrationEnrollment.d.ts +0 -49
- package/dist/types/wallet-server/src/core/authService/emailOtpUnlock.d.ts +0 -64
- package/dist/types/wallet-server/src/core/authService/googleEmailOtpOperations.d.ts +0 -126
- package/dist/types/wallet-server/src/core/authService/googleEmailOtpRegistration.d.ts +0 -169
- package/dist/types/wallet-server/src/core/authService/identity.d.ts +0 -25
- package/dist/types/wallet-server/src/core/authService/identityOperations.d.ts +0 -19
- package/dist/types/wallet-server/src/core/authService/nearAccountOperations.d.ts +0 -55
- package/dist/types/wallet-server/src/core/authService/nearPublicKeyMetadata.d.ts +0 -44
- package/dist/types/wallet-server/src/core/authService/oidcVerification.d.ts +0 -66
- package/dist/types/wallet-server/src/core/authService/registrationThresholdHelpers.d.ts +0 -11
- package/dist/types/wallet-server/src/core/authService/runtime.d.ts +0 -20
- package/dist/types/wallet-server/src/core/authService/storeRegistry.d.ts +0 -53
- package/dist/types/wallet-server/src/core/authService/thresholdStoreSummary.d.ts +0 -3
- package/dist/types/wallet-server/src/core/authService/webauthnAuthority.d.ts +0 -5
- package/dist/types/wallet-server/src/core/defaultConfigsServer.d.ts +0 -5
- package/dist/types/wallet-server/src/core/hostedAccountIds.d.ts +0 -16
- package/dist/types/wallet-server/src/core/routerAbSigning/createRouterAbSigningRuntimes.d.ts +0 -16
- package/dist/types/wallet-server/src/core/signingLanes/LaneAggregateRevocationApplicationService.d.ts +0 -36
- package/dist/types/wallet-server/src/core/signingLanes/LaneEffectJournalStore.d.ts +0 -62
- package/dist/types/wallet-server/src/core/signingLanes/LaneEnrollmentActivation.d.ts +0 -13
- package/dist/types/wallet-server/src/core/signingLanes/LaneEnrollmentRevocation.d.ts +0 -24
- package/dist/types/wallet-server/src/core/signingLanes/LaneLifecycleApplicationService.d.ts +0 -141
- package/dist/types/wallet-server/src/core/signingLanes/LaneLifecycleStore.d.ts +0 -228
- package/dist/types/wallet-server/src/core/signingLanes/ecdsaServerRetirement.d.ts +0 -58
- package/dist/types/wallet-server/src/core/signingLanes/ed25519ServerRetirement.d.ts +0 -30
- package/dist/types/wallet-server/src/core/signingLanes/signingWorkerLaneMaterialIdentity.d.ts +0 -4
- package/dist/types/wallet-server/src/core/storeBackends.d.ts +0 -83
- package/dist/types/wallet-server/src/core/utils.d.ts +0 -3
- package/dist/types/wallet-server/src/core/webAuthnStoreBackends.d.ts +0 -96
- package/dist/types/wallet-server/src/router/cloudflare/d1/near/d1NearPublicKeyStore.d.ts +0 -29
- package/dist/types/wallet-server/src/router/cloudflare/d1/signingLanes/d1EcdsaLanePrivateBindingResolver.d.ts +0 -4
- package/dist/types/wallet-server/src/router/cloudflare/d1/signingLanes/d1LaneAggregateRevocationApplicationService.d.ts +0 -4
- package/dist/types/wallet-server/src/router/cloudflare/d1/signingLanes/d1LaneEffectJournalStore.d.ts +0 -24
- package/dist/types/wallet-server/src/router/cloudflare/d1/signingLanes/d1LaneEnrollmentGateway.d.ts +0 -20
- package/dist/types/wallet-server/src/router/cloudflare/d1/signingLanes/d1LaneLifecycleApplicationService.d.ts +0 -13
- package/dist/types/wallet-server/src/router/cloudflare/d1/signingLanes/d1LaneLifecycleStore.d.ts +0 -51
- package/dist/types/wallet-server/src/router/cloudflare/d1/signingLanes/d1LaneLockStore.d.ts +0 -28
- package/dist/types/wallet-server/src/router/cloudflare/d1/signingLanes/d1LaneProtocolCommitter.d.ts +0 -5
- package/dist/types/wallet-server/src/router/cloudflare/d1/signingLanes/d1LaneRecords.d.ts +0 -107
- package/dist/types/wallet-server/src/router/cloudflare/d1/signingLanes/index.d.ts +0 -10
- package/dist/types/wallet-server/src/router/cloudflare/durableObjects/thresholdStore.d.ts +0 -18
- package/dist/types/wallet-server/src/router/cloudflare/signingLanes/cloudflareLaneCurveExecution.d.ts +0 -217
- package/dist/types/wallet-server/src/router/cloudflare/signingLanes/cloudflareLaneProtocolCommitter.d.ts +0 -73
- package/dist/types/wallet-server/src/router/cloudflare/signingLanes/index.d.ts +0 -4
- package/dist/types/wallet-server/src/router/cloudflare/signingLanes/linkedDeviceEd25519CeremonyBinding.d.ts +0 -6
- package/dist/types/wallet-server/src/router/transport/fetch/routes/nearPublicKeys.d.ts +0 -3
- /package/dist/esm/{core/signingLanes/LaneEffectJournalStore.js → authorization/ed25519WalletSessionAdmission.js} +0 -0
- /package/dist/esm/{core/signingLanes/LaneLifecycleStore.js → authorization/recoveryRouting.js} +0 -0
- /package/dist/esm/{core/signingLanes/signingWorkerLaneMaterialIdentity.js → authorization/sessionRouting.js} +0 -0
|
@@ -5,12 +5,15 @@ import { buildCapabilityOperationEnvelope, computeCapabilityOperationFingerprint
|
|
|
5
5
|
import { routerAbMpcMaterialActivationRefFromWire, routerAbMpcMaterialActivationRefToWire, sameRouterAbMpcMaterialActivationRef } from "../../../../shared-ts/src/utils/routerAbNormalSigningIdentity.js";
|
|
6
6
|
import { buildActiveWalletSessionQuota, buildAuthorizedOperation, buildExactWalletSessionQuotaProjectionV1, computeAuthorizedOperationResultDigest, exactWalletSessionCapabilitySubjectsResolveAuthority, parseAuthorizedOperationReplayResponse, parseHostedWalletSessionCredentialId, parseSessionOrigin, parseWalletSessionAuthorizationV2, walletSessionAuthorizationV2RecordsEqual } from "../../../../authorization/domain.js";
|
|
7
7
|
import { ECDSA_INSTALLATION_SNAPSHOT_COLUMNS } from "../../../../core/ecdsaMaterialReadSnapshot.js";
|
|
8
|
-
import { d1ChangedRows, parseD1JsonColumn } from "../../../../storage/d1Sql.js";
|
|
8
|
+
import { D1_BATCH_CAS_GUARD_SQL, d1ChangedRows, parseD1JsonColumn } from "../../../../storage/d1Sql.js";
|
|
9
9
|
import { EcdsaMaterialRead } from "../../../../core/d1EcdsaSignerRead.js";
|
|
10
|
-
import { D1WalletStore } from "../../../../core/d1WalletStore.js";
|
|
10
|
+
import { D1WalletStore, ED25519_SIGNER_ACTIVATION_ID_PATH } from "../../../../core/d1WalletStore.js";
|
|
11
11
|
import { normalizeWalletAuthMethodV2 } from "../../../../core/d1WalletAuthMethodStore.js";
|
|
12
|
-
import { D1EcdsaAdmissionPolicyRead, ECDSA_CREDENTIAL_POLICY_PROJECTION } from "../signingAdmission/d1RouterAbNormalSigningAdmissionStore.js";
|
|
12
|
+
import { D1EcdsaAdmissionPolicyRead, D1Ed25519AdmissionPolicyRead, ECDSA_CREDENTIAL_POLICY_PROJECTION, ED25519_CREDENTIAL_POLICY_PROJECTION } from "../signingAdmission/d1RouterAbNormalSigningAdmissionStore.js";
|
|
13
13
|
import { parseInstalledEcdsaCustodySnapshotV1 } from "../deviceLinking/d1LinkedDeviceAuthorityInstallService.js";
|
|
14
|
+
import { D1RegistrationSessionTransaction } from "../registration/d1RegistrationSessionTransaction.js";
|
|
15
|
+
import { ROUTER_AB_ED25519_YAO_SHARED_STATE_RECORD_KEY_V1 } from "../../../domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistrationPartitionedStateStore.js";
|
|
16
|
+
import { Ed25519SignerRead } from "../../../../core/d1Ed25519SignerRead.js";
|
|
14
17
|
import { prepareAuthorizedOperationAdmissionRead, prepareAuthorizedOperationCommittedRead, prepareAuthorizedOperationInsert, prepareAuthorizedOperationRead } from "./authorizedOperationStatements.js";
|
|
15
18
|
import { prepareD1WalletSessionAuthorityProjectionStatements } from "./walletSessionAuthorityProjection.js";
|
|
16
19
|
import { parseD1WalletAuthorityRow } from "../wallet/d1WalletAuthorityStore.js";
|
|
@@ -319,11 +322,12 @@ var CloudflareD1AuthorizationStore = class {
|
|
|
319
322
|
AND quota.expires_at_ms >= ?
|
|
320
323
|
AND ${ACTIVE_V2_HOSTED_PARENT_PROVENANCE_SQL}`).bind(this.namespace, this.walletSignerScope.orgId, this.walletSignerScope.projectId, this.walletSignerScope.envId, exchange.tenantId, exchange.exchangeCodeId, exchange.authorizationId, exchange.walletSessionId, exchange.quotaId, exchange.principalId, exchange.walletId, exchange.authorityId, exchange.walletAuthMethodId, exchange.codeHash, exchange.nonceDigest, exchange.appOrigin, exchange.walletOrigin, requirePositiveInteger(exchange.issuedAtMs, "exchange.issuedAtMs"), requirePositiveInteger(exchange.expiresAtMs, "exchange.expiresAtMs"), this.namespace, this.walletSignerScope.orgId, this.walletSignerScope.projectId, this.walletSignerScope.envId, exchange.tenantId, exchange.authorizationId, exchange.walletSessionId, exchange.quotaId, exchange.principalId, exchange.walletId, exchange.authorityId, exchange.walletAuthMethodId, exchange.expiresAtMs, exchange.expiresAtMs).run(), "hosted-wallet Seams session exchange code");
|
|
321
324
|
}
|
|
322
|
-
async redeemHostedWalletSeamsSessionExchange(input) {
|
|
325
|
+
async redeemHostedWalletSeamsSessionExchange(input, publishCredentialLocator) {
|
|
323
326
|
const current = await this.readHostedWalletExchangeV2(input.codeHash);
|
|
324
327
|
const rejected = classifyHostedWalletExchangeV2(current, input);
|
|
325
328
|
if (rejected) return rejected;
|
|
326
329
|
if (!current) throw new Error("hosted-wallet exchange disappeared");
|
|
330
|
+
await publishCredentialLocator?.();
|
|
327
331
|
try {
|
|
328
332
|
const insertCredential = this.database.prepare(`INSERT INTO wallet_session_hosted_credentials_v2 (
|
|
329
333
|
namespace,
|
|
@@ -603,6 +607,7 @@ var CloudflareD1AuthorizationStore = class {
|
|
|
603
607
|
}
|
|
604
608
|
async putVerifiedEvidenceSet(evidenceSet) {
|
|
605
609
|
if (d1ChangedRows(await this.database.prepare(`INSERT OR IGNORE INTO verified_wallet_operation_evidence_sets (
|
|
610
|
+
org_id, project_id, env_id,
|
|
606
611
|
namespace,
|
|
607
612
|
tenant_id,
|
|
608
613
|
evidence_set_id,
|
|
@@ -621,7 +626,7 @@ var CloudflareD1AuthorizationStore = class {
|
|
|
621
626
|
assurance,
|
|
622
627
|
verified_at_ms,
|
|
623
628
|
expires_at_ms
|
|
624
|
-
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`).bind(this.namespace, evidenceSet.tenantId, evidenceSet.evidenceSetId, evidenceSet.principalId, evidenceSet.walletId, evidenceSet.authorityRef.authorityDigest, evidenceSet.requestOrigin, evidenceSet.audience, evidenceSet.evidenceSetDigest, JSON.stringify(evidenceSet.evidence), evidenceSet.operation.capabilityKind, evidenceSet.operation.operationKind, evidenceSet.laneDigest, evidenceSet.intentDigest, evidenceSet.displayDigest, evidenceSet.assurance, requirePositiveInteger(evidenceSet.verifiedAtMs, "evidenceSet.verifiedAtMs"), requirePositiveInteger(evidenceSet.expiresAtMs, "evidenceSet.expiresAtMs")).run()) > 1) throw new Error("verified wallet operation evidence set changed more than one row");
|
|
629
|
+
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`).bind(this.walletSignerScope.orgId, this.walletSignerScope.projectId, this.walletSignerScope.envId, this.namespace, evidenceSet.tenantId, evidenceSet.evidenceSetId, evidenceSet.principalId, evidenceSet.walletId, evidenceSet.authorityRef.authorityDigest, evidenceSet.requestOrigin, evidenceSet.audience, evidenceSet.evidenceSetDigest, JSON.stringify(evidenceSet.evidence), evidenceSet.operation.capabilityKind, evidenceSet.operation.operationKind, evidenceSet.laneDigest, evidenceSet.intentDigest, evidenceSet.displayDigest, evidenceSet.assurance, requirePositiveInteger(evidenceSet.verifiedAtMs, "evidenceSet.verifiedAtMs"), requirePositiveInteger(evidenceSet.expiresAtMs, "evidenceSet.expiresAtMs")).run()) > 1) throw new Error("verified wallet operation evidence set changed more than one row");
|
|
625
630
|
}
|
|
626
631
|
async consumeVerifiedOwnerProof(proof, consumedAtMs, consumptionScopeId) {
|
|
627
632
|
const consumedAt = requirePositiveInteger(consumedAtMs, "owner proof consumedAtMs");
|
|
@@ -659,28 +664,40 @@ var CloudflareD1AuthorizationStore = class {
|
|
|
659
664
|
async commitDirectWalletSessionAuthorizationV2(input) {
|
|
660
665
|
return await this.commitDirectWalletSessionAuthorizationV2WithMode({
|
|
661
666
|
persisted: input.persisted,
|
|
662
|
-
mode: { kind: "strict" }
|
|
667
|
+
mode: { kind: "strict" },
|
|
668
|
+
purpose: { kind: "ordinary" }
|
|
663
669
|
});
|
|
664
670
|
}
|
|
671
|
+
async readWalletSessionIssuanceGeneration(walletId) {
|
|
672
|
+
const row = await this.prepareWalletSessionIssuanceGenerationRead(walletId).first();
|
|
673
|
+
if (!row) throw new Error("Wallet session issuance requires an open execution generation");
|
|
674
|
+
return requirePositiveInteger(row.generation, "Wallet Session ownership generation");
|
|
675
|
+
}
|
|
676
|
+
prepareWalletSessionIssuanceGenerationRead(walletId) {
|
|
677
|
+
return this.database.prepare(`SELECT generation, state FROM wallet_execution_generations
|
|
678
|
+
WHERE namespace = ? AND org_id = ? AND project_id = ? AND env_id = ?
|
|
679
|
+
AND wallet_id = ? AND state IN ('registering', 'active')`).bind(this.namespace, this.walletSignerScope.orgId, this.walletSignerScope.projectId, this.walletSignerScope.envId, walletId);
|
|
680
|
+
}
|
|
665
681
|
/** The service validates the committed winner against its caller-specific replay contract. */
|
|
666
682
|
async commitDirectReplayableWalletSessionAuthorizationV2(input) {
|
|
667
683
|
return await this.commitDirectWalletSessionAuthorizationV2WithMode({
|
|
668
684
|
persisted: input.persisted,
|
|
669
|
-
mode: { kind: "replayable" }
|
|
685
|
+
mode: { kind: "replayable" },
|
|
686
|
+
purpose: input.purpose
|
|
670
687
|
});
|
|
671
688
|
}
|
|
672
|
-
async
|
|
689
|
+
async commitRegistrationWalletSessionAuthorizationV2(commitWallet, input) {
|
|
690
|
+
if (input.purpose.kind !== "registration") throw new Error("A wallet registration transaction requires a registration session");
|
|
691
|
+
const transaction = new D1RegistrationSessionTransaction(this.database, commitWallet);
|
|
692
|
+
return this.commitDirectWalletSessionAuthorizationV2WithMode({
|
|
693
|
+
persisted: input.persisted,
|
|
694
|
+
purpose: input.purpose,
|
|
695
|
+
mode: { kind: "replayable" }
|
|
696
|
+
}, transaction.execute.bind(transaction));
|
|
697
|
+
}
|
|
698
|
+
async commitDirectWalletSessionAuthorizationV2WithMode(input, executeBatch) {
|
|
673
699
|
const { persisted, mode } = input;
|
|
674
700
|
requireExactPersistedActiveWalletSessionAuthorizationV2(persisted);
|
|
675
|
-
const statements = this.prepareDirectWalletSessionAuthorizationV2Statements(persisted);
|
|
676
|
-
const results = await this.database.batch(statements);
|
|
677
|
-
if (results.length !== 6) throw new Error("Direct V2 Wallet Session transaction returned incomplete results");
|
|
678
|
-
const quotaResult = results[4];
|
|
679
|
-
const sessionResult = results[5];
|
|
680
|
-
if (!quotaResult || !sessionResult) throw new Error("Direct V2 Wallet Session transaction returned incomplete results");
|
|
681
|
-
const quotaChanges = d1ChangedRows(quotaResult);
|
|
682
|
-
const sessionChanges = d1ChangedRows(sessionResult);
|
|
683
|
-
if (quotaChanges !== sessionChanges) throw new Error("Direct V2 Wallet Session transaction persisted an incomplete identity");
|
|
684
701
|
const lookup = {
|
|
685
702
|
tenantId: persisted.session.tenantId,
|
|
686
703
|
principalId: persisted.session.principalId,
|
|
@@ -689,13 +706,44 @@ var CloudflareD1AuthorizationStore = class {
|
|
|
689
706
|
walletAuthMethodId: persisted.session.walletAuthMethodId,
|
|
690
707
|
mintId: persisted.session.mintId
|
|
691
708
|
};
|
|
692
|
-
const
|
|
693
|
-
|
|
709
|
+
const completionStatements = this.prepareRegistrationSessionCompletion(input.purpose, lookup);
|
|
710
|
+
const statements = [
|
|
711
|
+
...this.prepareDirectWalletSessionAuthorizationV2Statements(persisted),
|
|
712
|
+
this.prepareWalletSessionAuthorizationV2ByMintRead(lookup),
|
|
713
|
+
this.prepareWalletSessionIssuanceGenerationRead(persisted.session.walletId),
|
|
714
|
+
...completionStatements
|
|
715
|
+
];
|
|
716
|
+
const results = executeBatch ? await executeBatch(statements) : await this.database.batch(statements);
|
|
717
|
+
if (results.length !== 8 + completionStatements.length) throw new Error("Direct V2 Wallet Session transaction returned incomplete results");
|
|
718
|
+
const quotaResult = results[4];
|
|
719
|
+
const sessionResult = results[5];
|
|
720
|
+
const committedResult = results[6];
|
|
721
|
+
if (!quotaResult || !sessionResult || !committedResult?.success) throw new Error("Direct V2 Wallet Session transaction returned incomplete results");
|
|
722
|
+
const quotaChanges = d1ChangedRows(quotaResult);
|
|
723
|
+
const sessionChanges = d1ChangedRows(sessionResult);
|
|
724
|
+
if (quotaChanges !== sessionChanges) throw new Error("Direct V2 Wallet Session transaction persisted an incomplete identity");
|
|
725
|
+
const committed = parseWalletSessionAuthorizationV2MintRow(committedResult.results?.[0] ?? null, lookup);
|
|
726
|
+
const generationResult = results[7];
|
|
727
|
+
const generation = generationResult?.results?.[0];
|
|
728
|
+
let registration = null;
|
|
729
|
+
if (input.purpose.kind === "registration") {
|
|
730
|
+
if (!generationResult?.success || generation?.state !== "registering" && generation?.state !== "active") throw new Error("Registration session commit requires an open execution generation");
|
|
731
|
+
registration = {
|
|
732
|
+
ceremonyId: input.purpose.ceremonyId,
|
|
733
|
+
walletId: lookup.walletId,
|
|
734
|
+
state: generation.state
|
|
735
|
+
};
|
|
736
|
+
}
|
|
737
|
+
if (!committed) {
|
|
738
|
+
if (!generationResult?.success || !generation) throw new Error("Wallet session issuance requires an open execution generation");
|
|
739
|
+
throw new Error("Direct V2 Wallet Session authorization commit was not readable");
|
|
740
|
+
}
|
|
694
741
|
if (sessionChanges === 0) switch (mode.kind) {
|
|
695
742
|
case "strict": break;
|
|
696
743
|
case "replayable": return {
|
|
697
744
|
kind: "already_committed",
|
|
698
|
-
committed
|
|
745
|
+
committed,
|
|
746
|
+
registration
|
|
699
747
|
};
|
|
700
748
|
default: return assertNeverDirectV2CommitMode(mode);
|
|
701
749
|
}
|
|
@@ -703,10 +751,33 @@ var CloudflareD1AuthorizationStore = class {
|
|
|
703
751
|
if (committed.primaryOperationCredentialDigestB64u !== persisted.primaryOperationCredentialDigestB64u) throw new Error("Direct V2 Wallet Session commit returned a different credential digest");
|
|
704
752
|
if (sessionChanges === 0) return {
|
|
705
753
|
kind: "already_committed",
|
|
706
|
-
committed
|
|
754
|
+
committed,
|
|
755
|
+
registration
|
|
707
756
|
};
|
|
708
757
|
if (sessionChanges !== 1) throw new Error("Direct V2 Wallet Session transaction changed more than one session");
|
|
709
|
-
|
|
758
|
+
if (!generationResult?.success || !generation) throw new Error("Wallet session issuance requires an open execution generation");
|
|
759
|
+
return {
|
|
760
|
+
kind: "inserted",
|
|
761
|
+
registration,
|
|
762
|
+
ownershipGeneration: requirePositiveInteger(generation.generation, "Wallet Session ownership generation")
|
|
763
|
+
};
|
|
764
|
+
}
|
|
765
|
+
prepareRegistrationSessionCompletion(purpose, session) {
|
|
766
|
+
switch (purpose.kind) {
|
|
767
|
+
case "ordinary": return [];
|
|
768
|
+
case "registration": return [this.database.prepare(`UPDATE wallet_execution_generations SET registration_completion = 'established'
|
|
769
|
+
WHERE namespace = ?1 AND org_id = ?2 AND project_id = ?3 AND env_id = ?4
|
|
770
|
+
AND wallet_id = ?5 AND origin = 'registration' AND origin_id = ?6
|
|
771
|
+
AND state IN ('registering', 'active')
|
|
772
|
+
AND registration_completion IN ('pending', 'established')
|
|
773
|
+
AND EXISTS (
|
|
774
|
+
SELECT 1 FROM wallet_session_authorizations_v2
|
|
775
|
+
WHERE namespace = ?1 AND org_id = ?2 AND project_id = ?3 AND env_id = ?4
|
|
776
|
+
AND wallet_id = ?5 AND tenant_id = ?7 AND principal_id = ?8
|
|
777
|
+
AND authority_id = ?9 AND wallet_auth_method_id = ?10 AND mint_id = ?11
|
|
778
|
+
)`).bind(this.namespace, this.walletSignerScope.orgId, this.walletSignerScope.projectId, this.walletSignerScope.envId, session.walletId, purpose.ceremonyId, session.tenantId, String(session.principalId), session.authorityId, session.walletAuthMethodId, session.mintId), this.database.prepare(D1_BATCH_CAS_GUARD_SQL)];
|
|
779
|
+
default: return assertNeverDirectWalletSessionCommitPurpose(purpose);
|
|
780
|
+
}
|
|
710
781
|
}
|
|
711
782
|
/**
|
|
712
783
|
* Builds the one batch used by direct issuance. Every predecessor mutation
|
|
@@ -767,8 +838,7 @@ var CloudflareD1AuthorizationStore = class {
|
|
|
767
838
|
expires_at_ms
|
|
768
839
|
)
|
|
769
840
|
SELECT ?, ?, ?, ?, ?, ?, 'active', ?
|
|
770
|
-
WHERE ${availabilitySql}
|
|
771
|
-
AND ${ACTIVE_V2_AUTHORITY_METHOD_EXISTS_SQL}`).bind(this.namespace, quota.tenantId, String(quota.quotaId), String(quota.walletSessionId), String(quota.principalId), requirePositiveInteger(quota.remainingUses, "Direct V2 quota.remainingUses"), requirePositiveInteger(quota.expiresAtMs, "Direct V2 quota.expiresAtMs"), ...availabilityBindings, ...activeV2AuthorityMethodBindings(this.walletSignerScope, session));
|
|
841
|
+
WHERE ${availabilitySql}`).bind(this.namespace, quota.tenantId, String(quota.quotaId), String(quota.walletSessionId), String(quota.principalId), requirePositiveInteger(quota.remainingUses, "Direct V2 quota.remainingUses"), requirePositiveInteger(quota.expiresAtMs, "Direct V2 quota.expiresAtMs"), ...availabilityBindings);
|
|
772
842
|
const sessionStatement = this.database.prepare(`INSERT OR IGNORE INTO wallet_session_authorizations_v2 (
|
|
773
843
|
namespace,
|
|
774
844
|
org_id,
|
|
@@ -794,7 +864,6 @@ var CloudflareD1AuthorizationStore = class {
|
|
|
794
864
|
)
|
|
795
865
|
SELECT ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, NULL, ?, ?
|
|
796
866
|
WHERE ${sessionIdentityAvailabilitySql}
|
|
797
|
-
AND ${ACTIVE_V2_AUTHORITY_METHOD_EXISTS_SQL}
|
|
798
867
|
AND EXISTS (
|
|
799
868
|
SELECT 1
|
|
800
869
|
FROM authorization_wallet_session_quotas AS quota
|
|
@@ -806,7 +875,7 @@ var CloudflareD1AuthorizationStore = class {
|
|
|
806
875
|
AND quota.remaining_uses = ?
|
|
807
876
|
AND quota.lifecycle_kind = 'active'
|
|
808
877
|
AND quota.expires_at_ms = ?
|
|
809
|
-
)`).bind(this.namespace, this.walletSignerScope.orgId, this.walletSignerScope.projectId, this.walletSignerScope.envId, session.tenantId, String(session.authorizationId), String(session.mintId), String(session.walletSessionId), String(session.quotaId), String(session.principalId), String(session.walletId), String(session.authorityId), String(session.walletAuthMethodId), String(session.authorityDigestB64u), session.authorityRevocationEpoch, capabilitySubjectsJson, requirePositiveInteger(session.createdAtMs, "Direct V2 session.createdAtMs"), requirePositiveInteger(session.expiresAtMs, "Direct V2 session.expiresAtMs"), recordJson, String(primaryOperationCredentialDigestB64u), ...sessionIdentityAvailabilityBindings,
|
|
878
|
+
)`).bind(this.namespace, this.walletSignerScope.orgId, this.walletSignerScope.projectId, this.walletSignerScope.envId, session.tenantId, String(session.authorizationId), String(session.mintId), String(session.walletSessionId), String(session.quotaId), String(session.principalId), String(session.walletId), String(session.authorityId), String(session.walletAuthMethodId), String(session.authorityDigestB64u), session.authorityRevocationEpoch, capabilitySubjectsJson, requirePositiveInteger(session.createdAtMs, "Direct V2 session.createdAtMs"), requirePositiveInteger(session.expiresAtMs, "Direct V2 session.expiresAtMs"), recordJson, String(primaryOperationCredentialDigestB64u), ...sessionIdentityAvailabilityBindings, this.namespace, quota.tenantId, String(quota.quotaId), String(quota.walletSessionId), String(quota.principalId), requirePositiveInteger(quota.remainingUses, "Direct V2 quota.remainingUses"), requirePositiveInteger(quota.expiresAtMs, "Direct V2 quota.expiresAtMs"));
|
|
810
879
|
const [deleteHostedExchanges, retireHostedCredentials] = this.prepareRetireHostedChildrenForParentSelection({
|
|
811
880
|
tenantId: session.tenantId,
|
|
812
881
|
nowMs: session.createdAtMs,
|
|
@@ -815,12 +884,14 @@ var CloudflareD1AuthorizationStore = class {
|
|
|
815
884
|
AND predecessor.authority_id = ?
|
|
816
885
|
AND predecessor.wallet_auth_method_id = ?
|
|
817
886
|
AND predecessor.mint_id != ?
|
|
818
|
-
AND predecessor.retired_at_ms IS NULL
|
|
887
|
+
AND predecessor.retired_at_ms IS NULL
|
|
888
|
+
AND ${availabilitySql}`,
|
|
819
889
|
parentSelectionBindings: [
|
|
820
890
|
session.walletId,
|
|
821
891
|
session.authorityId,
|
|
822
892
|
session.walletAuthMethodId,
|
|
823
|
-
session.mintId
|
|
893
|
+
session.mintId,
|
|
894
|
+
...availabilityBindings
|
|
824
895
|
]
|
|
825
896
|
});
|
|
826
897
|
return [
|
|
@@ -863,7 +934,10 @@ var CloudflareD1AuthorizationStore = class {
|
|
|
863
934
|
});
|
|
864
935
|
}
|
|
865
936
|
async readWalletSessionAuthorizationV2ByMint(input) {
|
|
866
|
-
|
|
937
|
+
return parseWalletSessionAuthorizationV2MintRow(await this.prepareWalletSessionAuthorizationV2ByMintRead(input).first(), input);
|
|
938
|
+
}
|
|
939
|
+
prepareWalletSessionAuthorizationV2ByMintRead(input) {
|
|
940
|
+
return this.database.prepare(`SELECT
|
|
867
941
|
record_json,
|
|
868
942
|
capability_subjects_json,
|
|
869
943
|
tenant_id,
|
|
@@ -892,46 +966,7 @@ var CloudflareD1AuthorizationStore = class {
|
|
|
892
966
|
AND authority_id = ?
|
|
893
967
|
AND wallet_auth_method_id = ?
|
|
894
968
|
AND mint_id = ?
|
|
895
|
-
LIMIT 1`).bind(this.namespace, this.walletSignerScope.orgId, this.walletSignerScope.projectId, this.walletSignerScope.envId, input.tenantId, String(input.principalId), String(input.walletId), String(input.authorityId), String(input.walletAuthMethodId), String(input.mintId))
|
|
896
|
-
if (!row) return null;
|
|
897
|
-
const session = parsePersistedWalletSessionAuthorizationV2(parseD1JsonColumn(row.record_json));
|
|
898
|
-
if (!walletSessionAuthorizationV2RowMatches({
|
|
899
|
-
session_tenant_id: row.tenant_id,
|
|
900
|
-
session_authorization_id: row.authorization_id,
|
|
901
|
-
session_mint_id: row.mint_id,
|
|
902
|
-
session_wallet_session_id: row.wallet_session_id,
|
|
903
|
-
session_quota_id: row.quota_id,
|
|
904
|
-
session_principal_id: row.principal_id,
|
|
905
|
-
session_wallet_id: row.wallet_id,
|
|
906
|
-
session_authority_id: row.authority_id,
|
|
907
|
-
session_wallet_auth_method_id: row.wallet_auth_method_id,
|
|
908
|
-
session_authority_digest_b64u: row.authority_digest_b64u,
|
|
909
|
-
session_authority_revocation_epoch: row.authority_revocation_epoch,
|
|
910
|
-
session_issued_at_ms: row.issued_at_ms,
|
|
911
|
-
session_expires_at_ms: row.expires_at_ms
|
|
912
|
-
}, session)) throw new Error("Stored V2 Wallet Session mint columns disagree with record");
|
|
913
|
-
if (!walletSessionAuthorizationV2RecordsEqual(parseWalletSessionAuthorizationV2WithSubjects({
|
|
914
|
-
session_tenant_id: row.tenant_id,
|
|
915
|
-
session_authorization_id: row.authorization_id,
|
|
916
|
-
session_mint_id: row.mint_id,
|
|
917
|
-
session_wallet_session_id: row.wallet_session_id,
|
|
918
|
-
session_quota_id: row.quota_id,
|
|
919
|
-
session_principal_id: row.principal_id,
|
|
920
|
-
session_wallet_id: row.wallet_id,
|
|
921
|
-
session_authority_id: row.authority_id,
|
|
922
|
-
session_wallet_auth_method_id: row.wallet_auth_method_id,
|
|
923
|
-
session_authority_digest_b64u: row.authority_digest_b64u,
|
|
924
|
-
session_authority_revocation_epoch: row.authority_revocation_epoch,
|
|
925
|
-
session_issued_at_ms: row.issued_at_ms,
|
|
926
|
-
session_expires_at_ms: row.expires_at_ms
|
|
927
|
-
}, parseD1JsonColumn(row.capability_subjects_json)), session)) throw new Error("Stored V2 Wallet Session mint subjects disagree with record");
|
|
928
|
-
if (session.tenantId !== input.tenantId || session.principalId !== input.principalId || session.walletId !== input.walletId || session.authorityId !== input.authorityId || session.walletAuthMethodId !== input.walletAuthMethodId || session.mintId !== input.mintId) throw new Error("Stored V2 Wallet Session mint identity does not match the request");
|
|
929
|
-
return {
|
|
930
|
-
kind: "committed",
|
|
931
|
-
session,
|
|
932
|
-
primaryOperationCredentialDigestB64u: parseDigestB64u(row.operation_credential_hash),
|
|
933
|
-
retiredAtMs: row.retired_at_ms === null || row.retired_at_ms === void 0 ? null : requirePositiveInteger(row.retired_at_ms, "V2 session.retiredAtMs")
|
|
934
|
-
};
|
|
969
|
+
LIMIT 1`).bind(this.namespace, this.walletSignerScope.orgId, this.walletSignerScope.projectId, this.walletSignerScope.envId, input.tenantId, String(input.principalId), String(input.walletId), String(input.authorityId), String(input.walletAuthMethodId), String(input.mintId));
|
|
935
970
|
}
|
|
936
971
|
async readLiveWalletSessionAuthorizationProjectionV2(input) {
|
|
937
972
|
const row = await this.readJoinedWalletSessionAuthorizationV2Row({
|
|
@@ -999,7 +1034,7 @@ var CloudflareD1AuthorizationStore = class {
|
|
|
999
1034
|
tenantId: input.tenantId,
|
|
1000
1035
|
lookupValue: input.tokenHash
|
|
1001
1036
|
});
|
|
1002
|
-
if (!row) return null;
|
|
1037
|
+
if (!row || row.session_retired_at_ms !== null) return null;
|
|
1003
1038
|
return parseWalletSessionAdmissionRow(row, input);
|
|
1004
1039
|
}
|
|
1005
1040
|
async readEcdsaWalletSessionAdmissionSnapshotByOperationCredential(input) {
|
|
@@ -1012,7 +1047,7 @@ var CloudflareD1AuthorizationStore = class {
|
|
|
1012
1047
|
tenantId: input.tenantId,
|
|
1013
1048
|
lookupValue: input.tokenHash
|
|
1014
1049
|
});
|
|
1015
|
-
if (!row) return null;
|
|
1050
|
+
if (!row || row.session_retired_at_ms !== null) return null;
|
|
1016
1051
|
const snapshot = await parseWalletSessionAdmissionRow(row, input);
|
|
1017
1052
|
const session = snapshot.kind === "active" ? snapshot.authorization.session : snapshot.session;
|
|
1018
1053
|
return {
|
|
@@ -1027,6 +1062,30 @@ var CloudflareD1AuthorizationStore = class {
|
|
|
1027
1062
|
policyRead: D1EcdsaAdmissionPolicyRead.fromRows(this.database, this.namespace, session.walletId, input.materialActivation.activation_id, parseD1JsonColumn(row.ecdsa_policy_records_json))
|
|
1028
1063
|
};
|
|
1029
1064
|
}
|
|
1065
|
+
/**
|
|
1066
|
+
* The session with the Ed25519 signer and the policy rows its admission
|
|
1067
|
+
* needs, in one statement. The signer and the policy are those of the
|
|
1068
|
+
* session's own wallet, whatever wallet the request names.
|
|
1069
|
+
*/
|
|
1070
|
+
async readEd25519WalletSessionAdmissionSnapshotByOperationCredential(input) {
|
|
1071
|
+
const row = await this.readJoinedWalletSessionAuthorizationV2Row({
|
|
1072
|
+
projection: {
|
|
1073
|
+
kind: "ed25519_material",
|
|
1074
|
+
materialActivation: input.materialActivation
|
|
1075
|
+
},
|
|
1076
|
+
lookupColumn: "operation_credential_hash",
|
|
1077
|
+
tenantId: input.tenantId,
|
|
1078
|
+
lookupValue: input.tokenHash
|
|
1079
|
+
});
|
|
1080
|
+
if (!row || row.session_retired_at_ms !== null) return null;
|
|
1081
|
+
const snapshot = await parseWalletSessionAdmissionRow(row, input);
|
|
1082
|
+
const session = snapshot.kind === "active" ? snapshot.authorization.session : snapshot.session;
|
|
1083
|
+
return {
|
|
1084
|
+
snapshot,
|
|
1085
|
+
signerRead: Ed25519SignerRead.fromRows(session.walletId, input.materialActivation, parseD1JsonColumn(row.ed25519_material_records_json), parseD1JsonColumn(row.ed25519_capability_partition_json)),
|
|
1086
|
+
policyRead: D1Ed25519AdmissionPolicyRead.fromRows(this.database, this.namespace, session.walletId, session.authorityId, parseD1JsonColumn(row.ed25519_policy_records_json))
|
|
1087
|
+
};
|
|
1088
|
+
}
|
|
1030
1089
|
async readWalletSessionExactOperationContextByCredential(input) {
|
|
1031
1090
|
const row = await this.readJoinedWalletSessionAuthorizationV2Row({
|
|
1032
1091
|
projection: { kind: "session" },
|
|
@@ -1035,6 +1094,7 @@ var CloudflareD1AuthorizationStore = class {
|
|
|
1035
1094
|
lookupValue: input.tokenHash
|
|
1036
1095
|
});
|
|
1037
1096
|
if (!row) return null;
|
|
1097
|
+
if (row.session_retired_at_ms !== null && row.session_retired_at_ms !== void 0 || integerColumn(row.session_expires_at_ms, "session.expiresAtMs") <= input.nowMs) return null;
|
|
1038
1098
|
const session = parseLiveWalletSessionAuthorizationV2Row(row, {
|
|
1039
1099
|
operationCredentialHash: input.tokenHash,
|
|
1040
1100
|
tenantId: input.tenantId,
|
|
@@ -1050,6 +1110,7 @@ var CloudflareD1AuthorizationStore = class {
|
|
|
1050
1110
|
authMethod,
|
|
1051
1111
|
retiredAtMs: null,
|
|
1052
1112
|
ownerWalletScope: {
|
|
1113
|
+
ownershipGeneration: requirePositiveInteger(row.execution_generation, "session.ownershipGeneration"),
|
|
1053
1114
|
orgId: requireString(row.session_org_id, "session.ownerWalletScope.orgId"),
|
|
1054
1115
|
projectId: requireString(row.session_project_id, "session.ownerWalletScope.projectId"),
|
|
1055
1116
|
projectEnvironmentId: requireString(row.session_env_id, "session.ownerWalletScope.projectEnvironmentId"),
|
|
@@ -1239,6 +1300,37 @@ var CloudflareD1AuthorizationStore = class {
|
|
|
1239
1300
|
END AS ecdsa_source_signers_json,
|
|
1240
1301
|
${ECDSA_CREDENTIAL_POLICY_PROJECTION}`;
|
|
1241
1302
|
materialBindings = [input.projection.materialActivation.activation_id, input.projection.materialActivation.activation_id];
|
|
1303
|
+
} else if (input.projection.kind === "ed25519_material") {
|
|
1304
|
+
const signerScope = [
|
|
1305
|
+
this.walletSignerScope.namespace,
|
|
1306
|
+
this.walletSignerScope.orgId,
|
|
1307
|
+
this.walletSignerScope.projectId,
|
|
1308
|
+
this.walletSignerScope.envId
|
|
1309
|
+
];
|
|
1310
|
+
materialProjection = `
|
|
1311
|
+
(SELECT json_group_array(json_object('record_json', signer.record_json))
|
|
1312
|
+
FROM wallet_signers AS signer
|
|
1313
|
+
WHERE signer.namespace = ? AND signer.org_id = ?
|
|
1314
|
+
AND signer.project_id = ? AND signer.env_id = ?
|
|
1315
|
+
AND signer.wallet_id = session.wallet_id
|
|
1316
|
+
AND signer.signer_family = 'ed25519'
|
|
1317
|
+
AND CASE WHEN json_valid(signer.record_json) THEN
|
|
1318
|
+
json_extract(signer.record_json, '${ED25519_SIGNER_ACTIVATION_ID_PATH}') = ?
|
|
1319
|
+
ELSE 0 END
|
|
1320
|
+
) AS ed25519_material_records_json,
|
|
1321
|
+
(SELECT record_json FROM router_ab_yao_versioned_json_records
|
|
1322
|
+
WHERE namespace = ? AND org_id = ? AND project_id = ? AND env_id = ?
|
|
1323
|
+
AND record_key = ?
|
|
1324
|
+
) AS ed25519_capability_partition_json,
|
|
1325
|
+
${ED25519_CREDENTIAL_POLICY_PROJECTION}`;
|
|
1326
|
+
materialBindings = [
|
|
1327
|
+
...signerScope,
|
|
1328
|
+
input.projection.materialActivation.activation_id,
|
|
1329
|
+
...signerScope,
|
|
1330
|
+
`router-ab-yao:${ROUTER_AB_ED25519_YAO_SHARED_STATE_RECORD_KEY_V1}`,
|
|
1331
|
+
...signerScope,
|
|
1332
|
+
input.projection.materialActivation.activation_id
|
|
1333
|
+
];
|
|
1242
1334
|
} else if (input.projection.kind === "session_status") {
|
|
1243
1335
|
materialProjection = `
|
|
1244
1336
|
(SELECT json_group_array(json_object('record_json', signer.record_json))
|
|
@@ -1257,6 +1349,13 @@ var CloudflareD1AuthorizationStore = class {
|
|
|
1257
1349
|
}
|
|
1258
1350
|
return await this.database.prepare(`SELECT ${materialProjection}
|
|
1259
1351
|
authority.*,
|
|
1352
|
+
(SELECT execution.generation FROM wallet_execution_generations AS execution
|
|
1353
|
+
WHERE execution.namespace = session.namespace
|
|
1354
|
+
AND execution.org_id = session.org_id
|
|
1355
|
+
AND execution.project_id = session.project_id
|
|
1356
|
+
AND execution.env_id = session.env_id
|
|
1357
|
+
AND execution.wallet_id = session.wallet_id
|
|
1358
|
+
AND execution.state = 'active') AS execution_generation,
|
|
1260
1359
|
session.namespace AS session_namespace,
|
|
1261
1360
|
session.record_json AS session_record_json,
|
|
1262
1361
|
session.capability_subjects_json AS session_capability_subjects_json,
|
|
@@ -1354,8 +1453,9 @@ var CloudflareD1AuthorizationStore = class {
|
|
|
1354
1453
|
const row = await prepareAuthorizedOperationCommittedRead(this.database, this.namespace, operation).first();
|
|
1355
1454
|
if (!row || row.authorized_operation_id !== operation.authorizedOperationId || row.authorization_source_kind !== operation.authorization.kind) throw new Error("Pinned owner operation is not claimed");
|
|
1356
1455
|
if (operation.authorization.kind === "verified_step_up") {
|
|
1357
|
-
if (row.evidence_set_digest !== operation.authorization.evidenceSetDigest) throw new Error("Verified step-up operation is not claimed");
|
|
1456
|
+
if (row.evidence_set_digest !== operation.authorization.evidenceSetDigest || row.pinned_owner_wallet_id !== walletId || row.step_up_org_id !== this.walletSignerScope.orgId || row.step_up_project_id !== this.walletSignerScope.projectId || row.step_up_env_id !== this.walletSignerScope.envId) throw new Error("Verified step-up operation is not claimed");
|
|
1358
1457
|
return {
|
|
1458
|
+
ownershipGeneration: requirePositiveInteger(row.ownership_generation, "operation.ownershipGeneration"),
|
|
1359
1459
|
orgId: this.walletSignerScope.orgId,
|
|
1360
1460
|
projectId: this.walletSignerScope.projectId,
|
|
1361
1461
|
projectEnvironmentId: this.walletSignerScope.envId
|
|
@@ -1367,9 +1467,10 @@ var CloudflareD1AuthorizationStore = class {
|
|
|
1367
1467
|
pinnedWalletSessionOwnerScope(row, walletId) {
|
|
1368
1468
|
if (row.pinned_owner_wallet_id !== walletId) throw new Error("Pinned owner Wallet Session scope is unavailable");
|
|
1369
1469
|
return {
|
|
1370
|
-
|
|
1371
|
-
|
|
1372
|
-
|
|
1470
|
+
ownershipGeneration: requirePositiveInteger(row.ownership_generation, "operation.ownershipGeneration"),
|
|
1471
|
+
orgId: requireString(row.owner_scope_org_id, "operation.ownerScope.orgId"),
|
|
1472
|
+
projectId: requireString(row.owner_scope_project_id, "operation.ownerScope.projectId"),
|
|
1473
|
+
projectEnvironmentId: requireString(row.owner_scope_env_id, "operation.ownerScope.projectEnvironmentId")
|
|
1373
1474
|
};
|
|
1374
1475
|
}
|
|
1375
1476
|
async readAuthorizedOperationForAdmission(input) {
|
|
@@ -1469,39 +1570,32 @@ var CloudflareD1AuthorizationStore = class {
|
|
|
1469
1570
|
materialSnapshot: input.material.readSnapshot
|
|
1470
1571
|
});
|
|
1471
1572
|
if (!existing) return { kind: "authorized_operation_missing" };
|
|
1472
|
-
|
|
1473
|
-
if (result.kind === "operation_in_progress") return {
|
|
1474
|
-
kind: result.kind,
|
|
1475
|
-
operation: result.operation,
|
|
1476
|
-
ownerScope: this.pinnedWalletSessionOwnerScope(result.row, input.material.walletId)
|
|
1477
|
-
};
|
|
1478
|
-
if (result.kind === "replayed") return {
|
|
1479
|
-
kind: result.kind,
|
|
1480
|
-
operation: result.operation
|
|
1481
|
-
};
|
|
1482
|
-
switch (result.kind) {
|
|
1483
|
-
case "authorization_grant_rejected":
|
|
1484
|
-
case "verified_step_up_rejected":
|
|
1485
|
-
case "wallet_session_quota_exhausted":
|
|
1486
|
-
case "material_mismatch": return result;
|
|
1487
|
-
default: throw new Error("Unexpected ECDSA operation resolution");
|
|
1488
|
-
}
|
|
1573
|
+
return this.pinExistingWalletSessionOperation(this.answerExistingAuthorizedOperation(existing, operation, input.material), input.material.walletId);
|
|
1489
1574
|
}
|
|
1490
|
-
|
|
1491
|
-
|
|
1492
|
-
|
|
1493
|
-
|
|
1494
|
-
|
|
1575
|
+
/**
|
|
1576
|
+
* The stored operation answers for itself: its own grant must still be
|
|
1577
|
+
* active, as when a finalize request admitted it again.
|
|
1578
|
+
*/
|
|
1579
|
+
async resolveEd25519WalletSessionOperation(input) {
|
|
1580
|
+
const existing = await this.readAuthorizedOperationForAdmission({
|
|
1581
|
+
tenantId: input.tenantId,
|
|
1582
|
+
operationFingerprintDigest: input.operationFingerprintDigest,
|
|
1583
|
+
nowMs: input.nowMs,
|
|
1584
|
+
materialSnapshot: null
|
|
1495
1585
|
});
|
|
1586
|
+
if (!existing) return { kind: "authorized_operation_missing" };
|
|
1587
|
+
if (existing.operation.authorization.kind !== "authorization_grant") return { kind: "authorization_grant_rejected" };
|
|
1588
|
+
return this.pinExistingWalletSessionOperation(this.answerExistingAuthorizedOperation(existing, existing.operation, void 0), input.walletId);
|
|
1589
|
+
}
|
|
1590
|
+
pinExistingWalletSessionOperation(result, walletId) {
|
|
1496
1591
|
switch (result.kind) {
|
|
1497
|
-
case "claimed":
|
|
1498
1592
|
case "operation_in_progress": return {
|
|
1499
1593
|
kind: result.kind,
|
|
1500
1594
|
operation: result.operation,
|
|
1501
|
-
ownerScope: this.pinnedWalletSessionOwnerScope(result.row,
|
|
1595
|
+
ownerScope: this.pinnedWalletSessionOwnerScope(result.row, walletId)
|
|
1502
1596
|
};
|
|
1503
1597
|
case "replayed": return {
|
|
1504
|
-
kind:
|
|
1598
|
+
kind: result.kind,
|
|
1505
1599
|
operation: result.operation
|
|
1506
1600
|
};
|
|
1507
1601
|
case "authorization_grant_rejected":
|
|
@@ -1510,10 +1604,33 @@ var CloudflareD1AuthorizationStore = class {
|
|
|
1510
1604
|
case "material_mismatch": return result;
|
|
1511
1605
|
default: {
|
|
1512
1606
|
const unexpected = result;
|
|
1513
|
-
throw new Error(`Unexpected
|
|
1607
|
+
throw new Error(`Unexpected Wallet Session resolution: ${unexpected}`);
|
|
1514
1608
|
}
|
|
1515
1609
|
}
|
|
1516
1610
|
}
|
|
1611
|
+
async admitEcdsaWalletSessionOperation(input) {
|
|
1612
|
+
return this.pinWalletSessionAdmission(await this.admitAuthorizedOperationRecord({
|
|
1613
|
+
operation: input.operation,
|
|
1614
|
+
material: input.material,
|
|
1615
|
+
materialSnapshot: input.material.readSnapshot
|
|
1616
|
+
}), input.material.walletId);
|
|
1617
|
+
}
|
|
1618
|
+
async admitEd25519WalletSessionOperation(input) {
|
|
1619
|
+
return this.pinWalletSessionAdmission(await this.admitAuthorizedOperationRecord({
|
|
1620
|
+
operation: input.operation,
|
|
1621
|
+
material: void 0,
|
|
1622
|
+
materialSnapshot: null
|
|
1623
|
+
}), input.walletId);
|
|
1624
|
+
}
|
|
1625
|
+
/** A live operation's owner scope comes from the row its own admission read back. */
|
|
1626
|
+
pinWalletSessionAdmission(result, walletId) {
|
|
1627
|
+
if (result.kind !== "claimed") return this.pinExistingWalletSessionOperation(result, walletId);
|
|
1628
|
+
return {
|
|
1629
|
+
kind: "claimed",
|
|
1630
|
+
operation: result.operation,
|
|
1631
|
+
ownerScope: this.pinnedWalletSessionOwnerScope(result.row, walletId)
|
|
1632
|
+
};
|
|
1633
|
+
}
|
|
1517
1634
|
async admitAuthorizedOperationRecord(input) {
|
|
1518
1635
|
const operation = await buildAuthorizedOperation(input.operation);
|
|
1519
1636
|
if (!authorizedOperationMaterialScopeMatches(operation, input.material, input.materialSnapshot)) return { kind: "material_mismatch" };
|
|
@@ -1555,6 +1672,7 @@ var CloudflareD1AuthorizationStore = class {
|
|
|
1555
1672
|
}
|
|
1556
1673
|
if (!committedRow) {
|
|
1557
1674
|
if (!claimed && input.material) return { kind: "material_mismatch" };
|
|
1675
|
+
if (!claimed && operation.authorization.kind === "verified_step_up") return { kind: "verified_step_up_rejected" };
|
|
1558
1676
|
throw new Error("authorized operation admission could not be read back");
|
|
1559
1677
|
}
|
|
1560
1678
|
const admitted = await parseAuthorizedOperationAdmissionRecord(committedRow);
|
|
@@ -1646,11 +1764,11 @@ function classifyAuthorizedOperationAdmissionError(error) {
|
|
|
1646
1764
|
function authorizedOperationReplayMismatch(input) {
|
|
1647
1765
|
if (requireString(input.existing.authorization_source_kind, "operation.authorization.kind") !== input.incoming.authorization.kind) return authorizationSourceRejected(input.incoming.authorization);
|
|
1648
1766
|
if (input.incoming.authorization.kind === "authorization_grant") {
|
|
1649
|
-
if (input.existing.
|
|
1767
|
+
if (input.existing.owner_scope_org_id !== input.scope.orgId || input.existing.owner_scope_project_id !== input.scope.projectId || input.existing.owner_scope_env_id !== input.scope.envId) return { kind: "authorization_grant_rejected" };
|
|
1650
1768
|
const expectedGrantKind = input.incoming.authorization.authorizationGrantRef.kind;
|
|
1651
1769
|
if (input.existing.authorization_grant_kind !== expectedGrantKind) return { kind: "authorization_grant_rejected" };
|
|
1652
1770
|
if (input.existing.authorization_id !== input.incoming.authorization.authorizationGrantRef.authorizationId) return { kind: "authorization_grant_rejected" };
|
|
1653
|
-
} else if (input.existing.evidence_set_digest !== input.incoming.authorization.evidenceSetDigest) return { kind: "verified_step_up_rejected" };
|
|
1771
|
+
} else if (input.existing.evidence_set_digest !== input.incoming.authorization.evidenceSetDigest || input.existing.step_up_org_id !== input.scope.orgId || input.existing.step_up_project_id !== input.scope.projectId || input.existing.step_up_env_id !== input.scope.envId) return { kind: "verified_step_up_rejected" };
|
|
1654
1772
|
const existingQuotaKind = requireString(input.existing.quota_kind, "operation.quota.kind");
|
|
1655
1773
|
if (existingQuotaKind !== input.incoming.quota.kind) return authorizationSourceRejected(input.incoming.authorization);
|
|
1656
1774
|
if (existingQuotaKind === "consume_reusable_wallet_session" && input.existing.quota_id !== input.incoming.quota.quotaId) return { kind: "authorization_grant_rejected" };
|
|
@@ -1827,7 +1945,13 @@ function directV2IdentityAvailabilityBindings(namespace, scope, session) {
|
|
|
1827
1945
|
}
|
|
1828
1946
|
function directV2SessionIdentityAvailabilitySql() {
|
|
1829
1947
|
return `
|
|
1830
|
-
|
|
1948
|
+
${ACTIVE_V2_AUTHORITY_METHOD_EXISTS_SQL}
|
|
1949
|
+
AND EXISTS (
|
|
1950
|
+
SELECT 1 FROM wallet_execution_generations
|
|
1951
|
+
WHERE namespace = ? AND org_id = ? AND project_id = ? AND env_id = ?
|
|
1952
|
+
AND wallet_id = ? AND state IN ('registering', 'active')
|
|
1953
|
+
)
|
|
1954
|
+
AND NOT EXISTS (
|
|
1831
1955
|
SELECT 1
|
|
1832
1956
|
FROM wallet_session_authorizations_v2 AS existing
|
|
1833
1957
|
WHERE existing.namespace = ?
|
|
@@ -1845,6 +1969,12 @@ function directV2SessionIdentityAvailabilitySql() {
|
|
|
1845
1969
|
}
|
|
1846
1970
|
function directV2SessionIdentityAvailabilityBindings(namespace, scope, session) {
|
|
1847
1971
|
return [
|
|
1972
|
+
...activeV2AuthorityMethodBindings(scope, session),
|
|
1973
|
+
namespace,
|
|
1974
|
+
scope.orgId,
|
|
1975
|
+
scope.projectId,
|
|
1976
|
+
scope.envId,
|
|
1977
|
+
String(session.walletId),
|
|
1848
1978
|
namespace,
|
|
1849
1979
|
scope.orgId,
|
|
1850
1980
|
scope.projectId,
|
|
@@ -1856,6 +1986,34 @@ function directV2SessionIdentityAvailabilityBindings(namespace, scope, session)
|
|
|
1856
1986
|
String(session.quotaId)
|
|
1857
1987
|
];
|
|
1858
1988
|
}
|
|
1989
|
+
function parseWalletSessionAuthorizationV2MintRow(row, input) {
|
|
1990
|
+
if (!row) return null;
|
|
1991
|
+
const session = parsePersistedWalletSessionAuthorizationV2(parseD1JsonColumn(row.record_json));
|
|
1992
|
+
const sessionColumns = {
|
|
1993
|
+
session_tenant_id: row.tenant_id,
|
|
1994
|
+
session_authorization_id: row.authorization_id,
|
|
1995
|
+
session_mint_id: row.mint_id,
|
|
1996
|
+
session_wallet_session_id: row.wallet_session_id,
|
|
1997
|
+
session_quota_id: row.quota_id,
|
|
1998
|
+
session_principal_id: row.principal_id,
|
|
1999
|
+
session_wallet_id: row.wallet_id,
|
|
2000
|
+
session_authority_id: row.authority_id,
|
|
2001
|
+
session_wallet_auth_method_id: row.wallet_auth_method_id,
|
|
2002
|
+
session_authority_digest_b64u: row.authority_digest_b64u,
|
|
2003
|
+
session_authority_revocation_epoch: row.authority_revocation_epoch,
|
|
2004
|
+
session_issued_at_ms: row.issued_at_ms,
|
|
2005
|
+
session_expires_at_ms: row.expires_at_ms
|
|
2006
|
+
};
|
|
2007
|
+
if (!walletSessionAuthorizationV2RowMatches(sessionColumns, session)) throw new Error("Stored V2 Wallet Session mint columns disagree with record");
|
|
2008
|
+
if (!walletSessionAuthorizationV2RecordsEqual(parseWalletSessionAuthorizationV2WithSubjects(sessionColumns, parseD1JsonColumn(row.capability_subjects_json)), session)) throw new Error("Stored V2 Wallet Session mint subjects disagree with record");
|
|
2009
|
+
if (session.tenantId !== input.tenantId || session.principalId !== input.principalId || session.walletId !== input.walletId || session.authorityId !== input.authorityId || session.walletAuthMethodId !== input.walletAuthMethodId || session.mintId !== input.mintId) throw new Error("Stored V2 Wallet Session mint identity does not match the request");
|
|
2010
|
+
return {
|
|
2011
|
+
kind: "committed",
|
|
2012
|
+
session,
|
|
2013
|
+
primaryOperationCredentialDigestB64u: parseDigestB64u(row.operation_credential_hash),
|
|
2014
|
+
retiredAtMs: row.retired_at_ms === null || row.retired_at_ms === void 0 ? null : requirePositiveInteger(row.retired_at_ms, "V2 session.retiredAtMs")
|
|
2015
|
+
};
|
|
2016
|
+
}
|
|
1859
2017
|
function walletSessionAuthorizationV2RowMatches(row, session) {
|
|
1860
2018
|
return row.session_tenant_id === String(session.tenantId) && row.session_authorization_id === String(session.authorizationId) && row.session_mint_id === String(session.mintId) && row.session_wallet_session_id === String(session.walletSessionId) && row.session_quota_id === String(session.quotaId) && row.session_principal_id === String(session.principalId) && row.session_wallet_id === String(session.walletId) && row.session_authority_id === String(session.authorityId) && row.session_wallet_auth_method_id === String(session.walletAuthMethodId) && row.session_authority_digest_b64u === String(session.authorityDigestB64u) && integerColumn(row.session_authority_revocation_epoch, "session.authorityRevocationEpoch") === session.authorityRevocationEpoch && integerColumn(row.session_issued_at_ms, "session.createdAtMs") === session.createdAtMs && integerColumn(row.session_expires_at_ms, "session.expiresAtMs") === session.expiresAtMs;
|
|
1861
2019
|
}
|
|
@@ -1943,6 +2101,9 @@ function parseExactWalletSessionQuotaProjectionRow(row, session) {
|
|
|
1943
2101
|
function assertNeverDirectV2CommitMode(value) {
|
|
1944
2102
|
throw new Error(`Unsupported direct V2 Wallet Session commit mode: ${String(value)}`);
|
|
1945
2103
|
}
|
|
2104
|
+
function assertNeverDirectWalletSessionCommitPurpose(value) {
|
|
2105
|
+
throw new Error(`Unsupported Wallet Session commit purpose: ${String(value)}`);
|
|
2106
|
+
}
|
|
1946
2107
|
async function parseWalletSessionAdmissionRow(row, input) {
|
|
1947
2108
|
const session = parseLiveWalletSessionAuthorizationV2Row(row, {
|
|
1948
2109
|
operationCredentialHash: input.tokenHash,
|