@seams/wallet-server 0.6.1 → 0.7.1
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/artifact-manifest.json +147 -32
- package/cloudflare-router-ab/build/deriver-a/build-stamp.json +1 -0
- package/cloudflare-router-ab/build/deriver-a/index.js +2 -2
- package/cloudflare-router-ab/build/deriver-a/index_bg.wasm +0 -0
- package/cloudflare-router-ab/build/deriver-b/build-stamp.json +1 -0
- package/cloudflare-router-ab/build/deriver-b/index.js +2 -2
- package/cloudflare-router-ab/build/deriver-b/index_bg.wasm +0 -0
- package/cloudflare-router-ab/build/local-tools/darwin-arm64/router_ab_local_init +0 -0
- package/cloudflare-router-ab/build/local-tools/darwin-x64/router_ab_local_init +0 -0
- package/cloudflare-router-ab/build/local-tools/linux-x64/router_ab_local_init +0 -0
- package/cloudflare-router-ab/build/router/build-stamp.json +1 -0
- package/cloudflare-router-ab/build/router/index.js +2 -2
- package/cloudflare-router-ab/build/router/index_bg.wasm +0 -0
- package/cloudflare-router-ab/build/signing-worker/build-stamp.json +1 -0
- package/cloudflare-router-ab/build/signing-worker/index.js +2 -2
- package/cloudflare-router-ab/build/signing-worker/index_bg.wasm +0 -0
- package/cloudflare-router-ab/build/tenant-root-control-plane/build-stamp.json +1 -0
- package/cloudflare-router-ab/build/tenant-root-control-plane/index.js +2 -2
- package/cloudflare-router-ab/build/tenant-root-control-plane/index_bg.wasm +0 -0
- package/cloudflare-router-ab/migrations/deriver-a/0012_tenant_root_creation_tombstones.sql +20 -0
- package/cloudflare-router-ab/migrations/deriver-a/0013_tenant_root_root_use_admissions.sql +32 -0
- package/cloudflare-router-ab/migrations/deriver-a/0014_tenant_root_refresh_supersessions.sql +24 -0
- package/cloudflare-router-ab/migrations/deriver-a/0015_tenant_root_root_use_attempts.sql +56 -0
- package/cloudflare-router-ab/migrations/deriver-a/0016_tenant_root_root_use_admission_settlement.sql +5 -0
- package/cloudflare-router-ab/migrations/deriver-a/0017_tenant_root_root_use_admission_claims.sql +64 -0
- package/cloudflare-router-ab/migrations/deriver-a/0018_tenant_root_recovery_retention_keys.sql +12 -0
- package/cloudflare-router-ab/migrations/deriver-b/0012_tenant_root_creation_tombstones.sql +20 -0
- package/cloudflare-router-ab/migrations/deriver-b/0013_tenant_root_root_use_admissions.sql +32 -0
- package/cloudflare-router-ab/migrations/deriver-b/0014_tenant_root_refresh_supersessions.sql +24 -0
- package/cloudflare-router-ab/migrations/deriver-b/0015_tenant_root_root_use_attempts.sql +56 -0
- package/cloudflare-router-ab/migrations/deriver-b/0016_tenant_root_root_use_admission_settlement.sql +5 -0
- package/cloudflare-router-ab/migrations/deriver-b/0017_tenant_root_root_use_admission_claims.sql +64 -0
- package/cloudflare-router-ab/migrations/deriver-b/0018_tenant_root_recovery_retention_keys.sql +12 -0
- package/cloudflare-router-ab/scripts/bootstrap-local-tenant-root.mjs +81 -16
- package/cloudflare-router-ab/scripts/prepare-local-runtime-config.mjs +102 -9
- package/cloudflare-router-ab/scripts/start-local-role-workers.mjs +4 -1
- package/cloudflare-router-ab/wrangler.deriver-a.toml +24 -0
- package/cloudflare-router-ab/wrangler.router.toml +13 -0
- package/dist/esm/authorization/capabilityPolicy.js +1 -1
- package/dist/esm/authorization/domain.js +2 -2
- package/dist/esm/authorization/factorEvidence.js +6 -100
- package/dist/esm/authorization/service.js +34 -2
- package/dist/esm/authorization/vaultProxyUse.js +3 -4
- package/dist/esm/cloud-host.js +16 -11
- package/dist/esm/core/EmailOtpRecords.js +19 -1
- package/dist/esm/core/EmailOtpStores.js +323 -924
- package/dist/esm/core/IdentityStore.js +44 -235
- package/dist/esm/core/NearPublicKeyStore.js +21 -63
- package/dist/esm/core/RegistrationCeremonyStore.js +3 -1793
- package/dist/esm/core/ThresholdService/config.js +1 -82
- package/dist/esm/core/ThresholdService/kv.js +3 -3
- package/dist/esm/core/ThresholdService/routerAb/ecdsaDerivationPoolFillHandlers.js +37 -5
- package/dist/esm/core/ThresholdService/routerAb/ecdsaDerivationPresignBridge.js +4 -74
- package/dist/esm/core/ThresholdService/stores/CloudflareDurableObjectStore.js +15 -51
- package/dist/esm/core/ThresholdService/stores/KeyStore.js +3 -3
- package/dist/esm/core/ThresholdService/stores/SessionStore.js +5 -81
- package/dist/esm/core/ThresholdService/stores/WalletSessionStore.js +185 -290
- package/dist/esm/core/ThresholdService/validation.js +18 -230
- package/dist/esm/core/WalletAuthMethodStore.js +22 -79
- package/dist/esm/core/WalletStore.js +58 -185
- package/dist/esm/core/WebAuthnAuthenticatorStore.js +57 -340
- package/dist/esm/core/WebAuthnCredentialBindingStore.js +90 -369
- package/dist/esm/core/WebAuthnLoginChallengeStore.js +17 -397
- package/dist/esm/core/WebAuthnSyncChallengeStore.js +17 -397
- package/dist/esm/core/authService/AuthService.js +2 -19
- package/dist/esm/core/authService/emailOtpChallengeProof.js +1 -1
- package/dist/esm/core/authService/emailOtpChallenges.js +1 -1
- package/dist/esm/core/authService/emailOtpConfig.js +1 -32
- package/dist/esm/core/authService/emailOtpRegistrationEnrollment.js +6 -153
- package/dist/esm/core/authService/googleEmailOtpRegistration.js +1 -1
- package/dist/esm/core/authService/nearPrivateKeySigning.js +7 -15
- package/dist/esm/core/authService/nearTransactions.js +2 -1
- package/dist/esm/core/authService/oidcVerification.js +3 -4
- package/dist/esm/core/authService/rateLimits.js +1 -31
- package/dist/esm/core/authService/registrationThresholdHelpers.js +2 -103
- package/dist/esm/core/authService/storeRegistry.js +2 -13
- package/dist/esm/core/authService/thresholdEcdsaKeyInventory.js +4 -5
- package/dist/esm/core/authService/webauthn.js +15 -50
- package/dist/esm/core/authService/webauthnOidcHelpers.js +1 -6
- package/dist/esm/core/authService/webauthnVerificationOutcomes.js +60 -0
- package/dist/esm/core/authService/webauthnWalletBinding.js +2 -122
- package/dist/esm/core/d1IdentityStore.js +32 -66
- package/dist/esm/core/d1TenantStore.js +82 -0
- package/dist/esm/core/d1WalletAuthMethodStore.js +92 -143
- package/dist/esm/core/d1WalletStore.js +14 -12
- package/dist/esm/core/deviceLinking/linkedDeviceEmailOtpGrant.js +10 -8
- package/dist/esm/core/deviceLinking/linkedDeviceManagement.js +25 -3
- package/dist/esm/core/deviceLinking/linkedDeviceSession.js +6 -895
- package/dist/esm/core/deviceLinking/linkedDeviceSessionApproval.js +102 -0
- package/dist/esm/core/deviceLinking/linkedDeviceSessionRecord.js +668 -0
- package/dist/esm/core/emailOtpD1Statements.js +383 -0
- package/dist/esm/core/hostedAccountIds.js +2 -2
- package/dist/esm/core/keyMaterialBrands.js +2 -48
- package/dist/esm/core/nearRelayerAccountProvisioning.js +25 -150
- package/dist/esm/core/nearSignerWasmRuntime.js +1 -4
- package/dist/esm/core/rpcClients/near/NearClient.js +15 -218
- package/dist/esm/core/signingLanes/LaneEnrollmentActivation.js +1 -1
- package/dist/esm/core/signingLanes/LaneLifecycleApplicationService.js +2 -4
- package/dist/esm/core/signingLanes/LaneLifecycleStore.js +0 -24
- package/dist/esm/core/signingLanes/WalletExecutionLaneProjection.js +5 -5
- package/dist/esm/core/signingLanes/ecdsaServerRetirement.js +3 -8
- package/dist/esm/core/signingLanes/ed25519ServerRetirement.js +1 -4
- package/dist/esm/core/storeBackends.js +208 -0
- package/dist/esm/core/thresholdEcdsaChainTarget.js +1 -7
- package/dist/esm/core/webAuthnD1Statements.js +92 -0
- package/dist/esm/core/webAuthnStoreBackends.js +198 -0
- package/dist/esm/hosted-wallet-gateway.js +33 -16
- package/dist/esm/index.js +2 -2
- package/dist/esm/local-hosted-wallet-gateway-worker.js +2 -23
- package/dist/esm/localHostedWalletGatewayHandler.js +299 -0
- package/dist/esm/localIntendedEcdsaFinalizeFault.js +85 -0
- package/dist/esm/localIntendedLinkExecuteFault.js +140 -0
- package/dist/esm/localIntendedRevokeFault.js +106 -0
- package/dist/esm/localIntendedSessionAdmissionFault.js +139 -0
- package/dist/esm/localIntendedYaoExportFault.js +117 -0
- package/dist/esm/localIntendedYaoFault.js +13 -16
- package/dist/esm/localIntendedYaoFinalizeFault.js +99 -0
- package/dist/esm/localIntendedYaoRecoveryFault.js +102 -0
- package/dist/esm/localIntendedYaoSigningFault.js +127 -0
- package/dist/esm/router/auth/authRequestValidation.js +1 -1
- package/dist/esm/router/auth/commonRouterUtils.js +10 -2
- package/dist/esm/router/auth/walletSessionFailure.js +1 -14
- package/dist/esm/router/cloudflare/d1/auth/d1AuthorizedOperationRouteService.js +23 -0
- package/dist/esm/router/cloudflare/d1/auth/d1RouterApiAuthService.js +86 -66
- package/dist/esm/router/cloudflare/d1/authorization/authorizedOperationStatements.js +208 -0
- package/dist/esm/router/cloudflare/d1/authorization/d1AuthorizationStore.js +246 -296
- package/dist/esm/router/cloudflare/d1/authorization/persistedWalletSessionAuthorization.js +14 -0
- package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceAuthorityInstallService.js +62 -63
- package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceEmailOtpGrantStore.js +3 -6
- package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceEmailOtpTargetFactor.js +1 -19
- package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceManagementService.js +4 -3
- package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceOwnerAuthorizationProvider.js +52 -9
- package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceRequestProofNonceStore.js +3 -6
- package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceRevocation.js +100 -0
- package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceSessionRecords.js +7 -10
- package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceSessionStore.js +33 -124
- package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceSourceContributionPreparationPlanner.js +2 -2
- package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceTargetCredentialProvider.js +9 -17
- package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceVerifiedLinkBuilder.js +6 -6
- package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceVerifiedLinkSourceReader.js +3 -1
- package/dist/esm/router/cloudflare/d1/deviceLinking/index.js +3 -3
- package/dist/esm/router/cloudflare/d1/deviceLinking/installedEcdsaAuthority.js +69 -0
- package/dist/esm/router/cloudflare/d1/ed25519Yao/d1Ed25519YaoCapabilityPersistence.js +39 -68
- package/dist/esm/router/cloudflare/d1/ed25519Yao/d1Ed25519YaoLifecycleDecisionStore.js +69 -0
- package/dist/esm/router/cloudflare/d1/ed25519Yao/d1Ed25519YaoProductRegistrationPartitionedStateStore.js +2 -2
- package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpChallengeStore.js +26 -71
- package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpChallengeVerifier.js +20 -3
- package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpEnrollmentStore.js +7 -94
- package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpGrantStore.js +5 -47
- package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpRecords.js +26 -123
- package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpRecoveryService.js +0 -2
- package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpRegistrationEnrollmentFinalizer.js +2 -2
- package/dist/esm/router/cloudflare/d1/emailOtp/d1GoogleEmailOtpRegistrationAttemptStore.js +15 -134
- package/dist/esm/router/cloudflare/d1/emailOtp/d1GoogleEmailOtpRegistrationRecords.js +54 -260
- package/dist/esm/router/cloudflare/d1/emailOtp/d1GoogleEmailOtpSessionResolver.js +1 -1
- package/dist/esm/router/cloudflare/d1/identity/d1IdentityRecords.js +1 -28
- package/dist/esm/router/cloudflare/d1/near/d1NearPublicKeyStore.js +2 -8
- package/dist/esm/router/cloudflare/d1/passkeyCustody/d1PasskeyCustodyEnvelopeStore.js +1 -1
- package/dist/esm/router/cloudflare/d1/passkeyCustody/d1PasskeyCustodyRouteService.js +3 -3
- package/dist/esm/router/cloudflare/d1/passkeyCustody/d1WalletCustodyCommitStore.js +23 -73
- package/dist/esm/router/cloudflare/d1/passkeyCustody/d1WalletRecoveryGoogleEmailOtpRecords.js +15 -2
- package/dist/esm/router/cloudflare/d1/passkeyCustody/d1WalletRecoveryGoogleEmailOtpService.js +12 -203
- package/dist/esm/router/cloudflare/d1/registration/d1RegistrationCeremonyRecordStore.js +16 -32
- package/dist/esm/router/cloudflare/d1/registration/d1RegistrationCeremonyRecords.js +29 -72
- package/dist/esm/router/cloudflare/d1/registration/d1RegistrationCeremonyStore.js +4 -1
- package/dist/esm/router/cloudflare/d1/registration/d1RegistrationIntentService.js +3 -1
- package/dist/esm/router/cloudflare/d1/registration/d1WalletRegistrationCommitStore.js +6 -30
- package/dist/esm/router/cloudflare/d1/registration/d1WalletRegistrationService.js +261 -205
- package/dist/esm/router/cloudflare/d1/registration/d1WalletRegistrationSetup.js +5 -3
- package/dist/esm/router/cloudflare/d1/registration/walletRegistrationEstablishedSessionIssuer.js +2 -2
- package/dist/esm/router/cloudflare/d1/registration/walletRegistrationSessionCommitReceipt.js +3 -3
- package/dist/esm/router/cloudflare/d1/signingAdmission/d1RouterAbNormalSigningAdmissionStore.js +43 -25
- package/dist/esm/router/cloudflare/d1/signingLanes/d1LaneEffectJournalStore.js +0 -1
- package/dist/esm/router/cloudflare/d1/signingLanes/d1LaneLifecycleStore.js +1 -1
- package/dist/esm/router/cloudflare/d1/signingLanes/d1LaneRecords.js +2 -1
- package/dist/esm/router/cloudflare/d1/versionedJson/d1VersionedJsonRecordStore.js +2 -60
- package/dist/esm/router/cloudflare/d1/wallet/d1WalletAddSignerService.js +158 -19
- package/dist/esm/router/cloudflare/d1/wallet/d1WalletAuthMethodBoundary.js +19 -49
- package/dist/esm/router/cloudflare/d1/wallet/d1WalletAuthMethodRevocationReplayStore.js +100 -0
- package/dist/esm/router/cloudflare/d1/wallet/d1WalletAuthMethodService.js +132 -33
- package/dist/esm/router/cloudflare/d1/wallet/d1WalletAuthorityStore.js +83 -4
- package/dist/esm/router/cloudflare/d1/webauthn/d1WebAuthnAuthService.js +14 -49
- package/dist/esm/router/cloudflare/d1/webauthn/d1WebAuthnRecords.js +4 -4
- package/dist/esm/router/cloudflare/d1/webauthn/d1WebAuthnStore.js +22 -116
- package/dist/esm/router/cloudflare/runtime/createSelfHostedCloudflareSigningWorker.js +1 -2
- package/dist/esm/router/cloudflare/runtime/walletConsoleTenantRootLineage.js +11 -2
- package/dist/esm/router/cloudflare/runtime/walletGateway.js +1 -1
- package/dist/esm/router/cloudflare/signingLanes/cloudflareLaneCurveExecution.js +5 -6
- package/dist/esm/router/cloudflare/signingLanes/cloudflareLaneProtocolCommitter.js +2 -1
- package/dist/esm/router/cloudflare/signingLanes/cloudflareOrdinaryInactiveSignerMaterialReservation.js +48 -21
- package/dist/esm/router/cloudflare.js +11480 -12853
- package/dist/esm/router/domains/ecdsa/routerAbEcdsaStrictRegistration.js +16 -5
- package/dist/esm/router/domains/ecdsa/thresholdEcdsaRequestValidation.js +2 -8
- package/dist/esm/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoLifecycleDecision.js +33 -0
- package/dist/esm/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistration.js +17 -9
- package/dist/esm/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistrationPartitionedStateStore.js +29 -431
- package/dist/esm/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistrationPartitioning.js +7 -2
- package/dist/esm/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistrationRequestScopedRunner.js +2 -1
- package/dist/esm/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistrationRequestScopedRuntime.js +70 -2
- package/dist/esm/router/domains/ed25519Yao/export/routerAbEd25519YaoExport.js +134 -169
- package/dist/esm/router/domains/ed25519Yao/export/routerAbEd25519YaoExportRequestScopedCloudflare.js +77 -162
- package/dist/esm/router/domains/ed25519Yao/recovery/routerAbEd25519YaoRecovery.js +205 -51
- package/dist/esm/router/domains/ed25519Yao/recovery/routerAbEd25519YaoRecoveryRequestScopedCloudflare.js +29 -11
- package/dist/esm/router/domains/ed25519Yao/registration/routerAbEd25519YaoHttpRegistrationBackend.js +182 -55
- package/dist/esm/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistration.js +2 -1
- package/dist/esm/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistrationExecutionRecord.js +63 -247
- package/dist/esm/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistrationIntentAuthorization.js +3 -2
- package/dist/esm/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistrationRequestScopedCloudflare.js +87 -132
- package/dist/esm/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistrationTwoPhaseRunner.js +5 -4
- package/dist/esm/router/domains/ed25519Yao/routerAbEd25519YaoGatewayEnvelope.js +45 -0
- package/dist/esm/router/domains/ed25519Yao/session/thresholdEd25519RequestValidation.js +1 -1
- package/dist/esm/router/domains/emailOtp/emailOtpExportPolicy.js +1 -42
- package/dist/esm/router/domains/emailOtp/emailOtpRequestValidation.js +1 -6
- package/dist/esm/router/domains/emailOtp/emailOtpSessionRouteHelpers.js +1 -142
- package/dist/esm/router/domains/passkeyCustody/passkeyCustodyEnvelopeRetrievalRoute.js +1 -1
- package/dist/esm/router/domains/passkeyCustody/walletCustodyRegistrationCommit.js +2 -2
- package/dist/esm/router/domains/passkeyCustody/walletRecoveryFinalization.js +23 -45
- package/dist/esm/router/domains/passkeyCustody/walletRecoveryKeyManifest.js +5 -5
- package/dist/esm/router/domains/signingOperations/ed25519AuthorizedOperationReceipt.js +1 -1
- package/dist/esm/router/domains/signingOperations/routerAbEcdsaDerivationNormalSigningRoute.js +827 -0
- package/dist/esm/router/domains/signingOperations/routerAbEd25519NormalSigningRoute.js +698 -0
- package/dist/esm/router/domains/signingOperations/routerAbNormalSigningAdmission.js +209 -0
- package/dist/esm/router/domains/signingOperations/routerAbNormalSigningAdmissionCore.js +16 -15
- package/dist/esm/router/domains/signingOperations/routerAbOperationStepUp.js +313 -0
- package/dist/esm/router/domains/signingOperations/routerAbPrivateSigningWorker.js +62 -2159
- package/dist/esm/router/domains/tenantRoot/tenantRootIdentityResolution.js +1 -1
- package/dist/esm/router/domains/walletRegistration/walletRegistrationRoutes.js +18 -22
- package/dist/esm/router/domains/walletRegistration/walletRegistrationSetupPayload.js +3 -4
- package/dist/esm/router/domains/walletUnlock/walletUnlockRequestedCapabilitiesValidation.js +2 -2
- package/dist/esm/router/domains/walletUnlock/walletUnlockRouteHandlers.js +97 -150
- package/dist/esm/router/express.js +5967 -6410
- package/dist/esm/router/framework/http.js +1 -4
- package/dist/esm/router/framework/ror/normalize.js +1 -1
- package/dist/esm/router/framework/routerApiRouteSurface.js +1 -1
- package/dist/esm/router/node/nodeHostedWalletGateway.js +64 -0
- package/dist/esm/router/node/nodeHostedWalletGatewayCheck.js +163 -0
- package/dist/esm/router/node/nodeHostedWalletGatewayMain.js +120 -0
- package/dist/esm/router/node/nodeHttp.js +79 -0
- package/dist/esm/router/node/nodeSqlite.js +43 -0
- package/dist/esm/router/node/signerSqlMigrations.js +48 -0
- package/dist/esm/router/transport/fetch/createFetchRouter.js +1 -1
- package/dist/esm/router/transport/fetch/routes/deviceLinking.js +16 -18
- package/dist/esm/router/transport/fetch/routes/deviceLinkingOwnerAuthorization.js +3 -5
- package/dist/esm/router/transport/fetch/routes/deviceManagement.js +15 -24
- package/dist/esm/router/transport/fetch/routes/normalSigningRouterProxy.js +3 -16
- package/dist/esm/router/transport/fetch/routes/passkeyCustody.js +144 -461
- package/dist/esm/router/transport/fetch/routes/sessions.js +4 -4
- package/dist/esm/router/transport/fetch/routes/syncAccount.js +4 -6
- package/dist/esm/router/transport/fetch/routes/syncAccountBootstrap.js +2 -2
- package/dist/esm/router/transport/fetch/routes/thresholdEcdsa.js +69 -23
- package/dist/esm/router/transport/fetch/routes/thresholdEd25519.js +52 -27
- package/dist/esm/shared-ts/src/authorization/capabilityKinds.js +1 -1
- package/dist/esm/shared-ts/src/authorization/delegatedAuthority.js +1 -1
- package/dist/esm/shared-ts/src/authorization/operationFingerprint.js +1 -2
- package/dist/esm/shared-ts/src/authorization/walletAuthority.js +99 -227
- package/dist/esm/shared-ts/src/authorization/walletCustodyOperation.js +4 -6
- package/dist/esm/shared-ts/src/device-linking/activeWalletSession.js +74 -0
- package/dist/esm/shared-ts/src/device-linking/authorityActivation.js +50 -0
- package/dist/esm/shared-ts/src/device-linking/committedSignerPackages.js +8 -9
- package/dist/esm/shared-ts/src/device-linking/delegatedActivationPlan.js +3 -1
- package/dist/esm/shared-ts/src/device-linking/deviceManagement.js +55 -0
- package/dist/esm/shared-ts/src/device-linking/digests.js +10 -65
- package/dist/esm/shared-ts/src/device-linking/ed25519ExportRoot.js +3 -1
- package/dist/esm/shared-ts/src/device-linking/index.js +4 -1
- package/dist/esm/shared-ts/src/device-linking/parsers.js +510 -1063
- package/dist/esm/shared-ts/src/device-linking/requestProof.js +5 -14
- package/dist/esm/shared-ts/src/device-linking/sourceContribution.js +6 -9
- package/dist/esm/shared-ts/src/device-linking/walletSessionCredentialDelivery.js +9 -9
- package/dist/esm/shared-ts/src/device-linking/wireFields.js +59 -0
- package/dist/esm/shared-ts/src/near/nearClient.js +252 -0
- package/dist/esm/shared-ts/src/passkey-custody/credentialActivity.js +3 -1
- package/dist/esm/shared-ts/src/passkey-custody/custodyEnvelope.js +7 -5
- package/dist/esm/shared-ts/src/passkey-custody/custodySecretBinding.js +6 -4
- package/dist/esm/shared-ts/src/passkey-custody/primitives.js +5 -39
- package/dist/esm/shared-ts/src/signing-lanes/evmFamilySigningKeySlotId.js +1 -5
- package/dist/esm/shared-ts/src/signing-lanes/index.js +3 -3
- package/dist/esm/shared-ts/src/signing-lanes/ownerContinuity.js +5 -12
- package/dist/esm/shared-ts/src/signing-lanes/participantDigest.js +5 -14
- package/dist/esm/shared-ts/src/signing-lanes/participants.js +2 -5
- package/dist/esm/shared-ts/src/signing-lanes/recordParsers.js +7 -5
- package/dist/esm/shared-ts/src/signing-lanes/rotationDigests.js +6 -45
- package/dist/esm/shared-ts/src/signing-lanes/rotationParsers.js +423 -1511
- package/dist/esm/shared-ts/src/signing-lanes/rotationProtocolParsers.js +323 -0
- package/dist/esm/shared-ts/src/signing-lanes/rotationWireFields.js +59 -0
- package/dist/esm/shared-ts/src/tenant-root/tenantRootOperationRecord.js +1 -1
- package/dist/esm/shared-ts/src/threshold/ecdsaDerivationRoleLocalBootstrap.js +1 -2
- package/dist/esm/shared-ts/src/threshold/keyMaterialBrands.js +49 -0
- package/dist/esm/shared-ts/src/utils/addAuthMethodRegistration.js +3 -4
- package/dist/esm/shared-ts/src/utils/canonicalPrimitives.js +8 -1
- package/dist/esm/shared-ts/src/utils/digestEncoding.js +63 -0
- package/dist/esm/shared-ts/src/utils/emailOtpDomain.js +2 -2
- package/dist/esm/shared-ts/src/utils/exactRecord.js +44 -0
- package/dist/esm/shared-ts/src/utils/registrationAuthMethodInput.js +127 -0
- package/dist/esm/shared-ts/src/utils/registrationEstablishedSession.js +2 -2
- package/dist/esm/shared-ts/src/utils/registrationIds.js +280 -0
- package/dist/esm/shared-ts/src/utils/registrationIntent.js +4 -1170
- package/dist/esm/shared-ts/src/utils/registrationSignerPlan.js +429 -0
- package/dist/esm/shared-ts/src/utils/routerAbEcdsaDerivation.js +11 -136
- package/dist/esm/shared-ts/src/utils/routerAbEd25519Yao.js +3 -163
- package/dist/esm/shared-ts/src/utils/routerAbEd25519YaoDigests.js +160 -0
- package/dist/esm/shared-ts/src/utils/routerAbNormalSigningIdentity.js +1 -4
- package/dist/esm/shared-ts/src/utils/routerAbPublicKeyset.js +7 -15
- package/dist/esm/shared-ts/src/utils/validation.js +37 -6
- package/dist/esm/shared-ts/src/utils/walletAuthMethodRecord.js +362 -0
- package/dist/esm/shared-ts/src/utils/wireSchema.js +77 -0
- package/dist/esm/shared-ts/src/wallet-recovery/recoveryCodeLocator.js +1 -1
- package/dist/esm/shared-ts/src/wallet-recovery/recoveryCodeReservation.js +1 -1
- package/dist/esm/shared-ts/src/wallet-recovery/walletRecoveryCommittedProjection.js +7 -11
- package/dist/esm/shared-ts/src/wallet-recovery/walletRecoveryEcdsaPossession.js +4 -8
- package/dist/esm/shared-ts/src/wallet-recovery/walletRecoveryEnvelopeSet.js +3 -1
- package/dist/esm/storage/d1Sql.js +10 -1
- package/dist/esm/storage/syncSqlite.js +79 -0
- package/dist/esm/threshold/session/signingSessionSeal/crypto/cipher.js +1 -1
- package/dist/esm/threshold/session/signingSessionSeal/crypto/shamir3PassWasm.js +1 -1
- package/dist/esm/threshold/session/signingSessionSeal/idempotencyRecords.js +1 -2
- package/dist/esm/threshold/session/signingSessionSeal/options.js +1 -1
- package/dist/esm/threshold/session/signingSessionSeal/transport/shared.js +18 -55
- package/dist/esm/threshold/statusCodes.js +1 -1
- package/dist/esm/wasm/near_signer/pkg/wasm_signer_worker.js +3 -3
- package/dist/esm/wasm/near_signer/pkg/wasm_signer_worker_bg.wasm +0 -0
- package/dist/esm/wasm/router_ab_ecdsa_signing_worker/pkg/router_ab_ecdsa_signing_worker_bg.wasm +0 -0
- package/dist/types/shared-ts/src/authorization/capabilityKinds.d.ts +8 -26
- package/dist/types/shared-ts/src/authorization/delegatedAuthority.d.ts +0 -8
- package/dist/types/shared-ts/src/authorization/operationFingerprint.d.ts +1 -3
- package/dist/types/shared-ts/src/authorization/walletAuthority.d.ts +25 -12
- package/dist/types/shared-ts/src/authorization/walletSessionIssuance.d.ts +2 -1
- package/dist/types/shared-ts/src/device-linking/activeWalletSession.d.ts +3 -2
- package/dist/types/shared-ts/src/device-linking/authorityActivation.d.ts +5 -0
- package/dist/types/shared-ts/src/device-linking/committedSignerPackages.d.ts +2 -5
- package/dist/types/shared-ts/src/device-linking/contracts.d.ts +8 -11
- package/dist/types/shared-ts/src/device-linking/contracts.typecheck.d.ts +2 -1
- package/dist/types/shared-ts/src/device-linking/deviceManagement.d.ts +7 -0
- package/dist/types/shared-ts/src/device-linking/digests.d.ts +0 -5
- package/dist/types/shared-ts/src/device-linking/ed25519ExportRoot.d.ts +3 -2
- package/dist/types/shared-ts/src/device-linking/index.d.ts +2 -0
- package/dist/types/shared-ts/src/device-linking/parsers.d.ts +4 -41
- package/dist/types/shared-ts/src/device-linking/requestProof.d.ts +0 -1
- package/dist/types/shared-ts/src/device-linking/sourceContribution.d.ts +3 -2
- package/dist/types/shared-ts/src/device-linking/walletSessionCredentialDelivery.d.ts +2 -1
- package/dist/types/shared-ts/src/device-linking/wireFields.d.ts +26 -0
- package/dist/types/shared-ts/src/near/actions.d.ts +4 -4
- package/dist/types/shared-ts/src/near/delegate.d.ts +3 -2
- package/dist/types/shared-ts/src/near/nearClient.d.ts +145 -0
- package/dist/types/shared-ts/src/passkey-custody/ceremonyCommitPayload.d.ts +0 -22
- package/dist/types/shared-ts/src/passkey-custody/credentialActivity.d.ts +2 -4
- package/dist/types/shared-ts/src/passkey-custody/custodyEnvelope.d.ts +9 -18
- package/dist/types/shared-ts/src/passkey-custody/custodySecretBinding.d.ts +8 -24
- package/dist/types/shared-ts/src/passkey-custody/index.d.ts +0 -2
- package/dist/types/shared-ts/src/passkey-custody/primitives.d.ts +0 -14
- package/dist/types/shared-ts/src/signing-lanes/evmFamilySigningKeySlotId.d.ts +0 -15
- package/dist/types/shared-ts/src/signing-lanes/execution.d.ts +2 -51
- package/dist/types/shared-ts/src/signing-lanes/index.d.ts +1 -2
- package/dist/types/shared-ts/src/signing-lanes/ownerContinuity.d.ts +1 -2
- package/dist/types/shared-ts/src/signing-lanes/participantDigest.d.ts +5 -27
- package/dist/types/shared-ts/src/signing-lanes/participants.d.ts +0 -11
- package/dist/types/shared-ts/src/signing-lanes/recordParsers.d.ts +6 -53
- package/dist/types/shared-ts/src/signing-lanes/records.d.ts +1 -2
- package/dist/types/shared-ts/src/signing-lanes/rotation.d.ts +15 -37
- package/dist/types/shared-ts/src/signing-lanes/rotationDigests.d.ts +1 -20
- package/dist/types/shared-ts/src/signing-lanes/rotationLifecycle.d.ts +4 -25
- package/dist/types/shared-ts/src/signing-lanes/rotationParsers.d.ts +1 -41
- package/dist/types/shared-ts/src/signing-lanes/rotationProtocolParsers.d.ts +6 -0
- package/dist/types/shared-ts/src/signing-lanes/rotationWireFields.d.ts +20 -0
- package/dist/types/shared-ts/src/threshold/ecdsaDerivationRoleLocalBootstrap.d.ts +2 -35
- package/dist/types/shared-ts/src/threshold/ed25519OperationFingerprint.d.ts +8 -35
- package/dist/types/shared-ts/src/threshold/keyMaterialBrands.d.ts +25 -0
- package/dist/types/shared-ts/src/threshold/participants.d.ts +3 -9
- package/dist/types/shared-ts/src/threshold/secp256k1.d.ts +0 -37
- package/dist/types/shared-ts/src/threshold/sessionPolicy.d.ts +24 -0
- package/dist/types/shared-ts/src/threshold/signingRootScope.d.ts +2 -5
- package/dist/types/shared-ts/src/utils/addAuthMethodRegistration.d.ts +3 -4
- package/dist/types/shared-ts/src/utils/addWalletAuthMethod.d.ts +7 -108
- package/dist/types/shared-ts/src/utils/addWalletAuthMethod.typecheck.d.ts +16 -3
- package/dist/types/shared-ts/src/utils/canonicalPrimitives.d.ts +2 -0
- package/dist/types/shared-ts/src/utils/digestEncoding.d.ts +9 -0
- package/dist/types/shared-ts/src/utils/domainIds.d.ts +1 -2
- package/dist/types/shared-ts/src/utils/ecdsaKeyFactsInventory.d.ts +1 -2
- package/dist/types/shared-ts/src/utils/emailOtpDomain.d.ts +5 -5
- package/dist/types/shared-ts/src/utils/emailOtpRecoveryKey.d.ts +0 -2
- package/dist/types/shared-ts/src/utils/errors.d.ts +0 -7
- package/dist/types/shared-ts/src/utils/exactRecord.d.ts +12 -0
- package/dist/types/shared-ts/src/utils/index.d.ts +5 -2
- package/dist/types/shared-ts/src/utils/jsonRpc.d.ts +3 -2
- package/dist/types/shared-ts/src/utils/near.d.ts +2 -1
- package/dist/types/shared-ts/src/utils/nearRpcResults.d.ts +7 -7
- package/dist/types/shared-ts/src/utils/normalize.d.ts +0 -4
- package/dist/types/shared-ts/src/utils/registrationAuthMethodInput.d.ts +184 -0
- package/dist/types/shared-ts/src/utils/registrationContracts.d.ts +76 -0
- package/dist/types/shared-ts/src/utils/registrationEstablishedSession.d.ts +1 -2
- package/dist/types/shared-ts/src/utils/registrationIds.d.ts +56 -0
- package/dist/types/shared-ts/src/utils/registrationIntent.d.ts +9 -514
- package/dist/types/shared-ts/src/utils/registrationSignerPlan.d.ts +142 -0
- package/dist/types/shared-ts/src/utils/routerAbEcdsaDerivation.d.ts +21 -92
- package/dist/types/shared-ts/src/utils/routerAbEd25519Yao.d.ts +14 -99
- package/dist/types/shared-ts/src/utils/routerAbEd25519YaoDigests.d.ts +39 -0
- package/dist/types/shared-ts/src/utils/routerAbPublicKeyset.d.ts +10 -15
- package/dist/types/shared-ts/src/utils/routerAbTraceContext.d.ts +2 -1
- package/dist/types/shared-ts/src/utils/secureRandomId.d.ts +0 -2
- package/dist/types/shared-ts/src/utils/signerDomain.d.ts +3 -35
- package/dist/types/shared-ts/src/utils/signerSlot.d.ts +0 -4
- package/dist/types/shared-ts/src/utils/signingSessionSeal.d.ts +1 -7
- package/dist/types/shared-ts/src/utils/validation.d.ts +10 -10
- package/dist/types/shared-ts/src/utils/variant.d.ts +11 -0
- package/dist/types/shared-ts/src/utils/variant.typecheck.d.ts +22 -0
- package/dist/types/shared-ts/src/utils/walletAddSignerActivation.d.ts +2 -2
- package/dist/types/shared-ts/src/utils/walletAuthAuthority.d.ts +1 -58
- package/dist/types/shared-ts/src/utils/walletAuthMethodRecord.d.ts +104 -0
- package/dist/types/shared-ts/src/utils/walletCapabilityBindings.d.ts +3 -7
- package/dist/types/shared-ts/src/utils/webauthnDeviceInfo.d.ts +3 -4
- package/dist/types/shared-ts/src/utils/wireSchema.d.ts +60 -0
- package/dist/types/shared-ts/src/wallet-recovery/backupAcknowledgement.d.ts +2 -1
- package/dist/types/shared-ts/src/wallet-recovery/index.d.ts +0 -1
- package/dist/types/shared-ts/src/wallet-recovery/recoveryCodeLocator.d.ts +0 -16
- package/dist/types/shared-ts/src/wallet-recovery/recoveryCodeReservation.d.ts +2 -11
- package/dist/types/shared-ts/src/wallet-recovery/walletRecoveryCommittedProjection.d.ts +6 -18
- package/dist/types/shared-ts/src/wallet-recovery/walletRecoveryEcdsaPossession.d.ts +0 -2
- package/dist/types/shared-ts/src/wallet-recovery/walletRecoveryEnvelopeSet.d.ts +1 -3
- package/dist/types/wallet-server/src/authorization/capabilityPolicy.d.ts +0 -1
- package/dist/types/wallet-server/src/authorization/domain.d.ts +25 -5
- package/dist/types/wallet-server/src/authorization/ecdsaWalletSessionAdmission.d.ts +37 -0
- package/dist/types/wallet-server/src/authorization/ecdsaWalletSessionAdmission.typecheck.d.ts +2 -0
- package/dist/types/wallet-server/src/authorization/factorEvidence.d.ts +6 -7
- package/dist/types/wallet-server/src/authorization/service.d.ts +52 -3
- package/dist/types/wallet-server/src/cloud-host.d.ts +6 -2
- package/dist/types/wallet-server/src/core/EmailOtpRecords.d.ts +10 -1
- package/dist/types/wallet-server/src/core/EmailOtpStores.d.ts +16 -116
- package/dist/types/wallet-server/src/core/IdentityStore.d.ts +2 -7
- package/dist/types/wallet-server/src/core/NearPublicKeyStore.d.ts +6 -16
- package/dist/types/wallet-server/src/core/RegistrationCeremonyStore.d.ts +29 -90
- package/dist/types/wallet-server/src/core/ThresholdService/config.d.ts +0 -12
- package/dist/types/wallet-server/src/core/ThresholdService/routerAb/ecdsaDerivationPoolFillHandlers.d.ts +10 -3
- package/dist/types/wallet-server/src/core/ThresholdService/routerAb/ecdsaDerivationPresignBridge.d.ts +17 -48
- package/dist/types/wallet-server/src/core/ThresholdService/routerAb/internalServiceHttp.d.ts +2 -1
- package/dist/types/wallet-server/src/core/ThresholdService/stores/CloudflareDurableObjectStore.d.ts +4 -71
- package/dist/types/wallet-server/src/core/ThresholdService/stores/KeyStore.d.ts +2 -1
- package/dist/types/wallet-server/src/core/ThresholdService/stores/SessionStore.d.ts +4 -8
- package/dist/types/wallet-server/src/core/ThresholdService/stores/StoreConfig.d.ts +2 -1
- package/dist/types/wallet-server/src/core/ThresholdService/stores/WalletSessionStore.d.ts +1 -3
- package/dist/types/wallet-server/src/core/ThresholdService/validation.d.ts +14 -47
- package/dist/types/wallet-server/src/core/WalletAuthMethodStore.d.ts +2 -7
- package/dist/types/wallet-server/src/core/WalletStore.d.ts +3 -8
- package/dist/types/wallet-server/src/core/WebAuthnAuthenticatorStore.d.ts +7 -22
- package/dist/types/wallet-server/src/core/WebAuthnCredentialBindingStore.d.ts +14 -36
- package/dist/types/wallet-server/src/core/WebAuthnLoginChallengeStore.d.ts +9 -34
- package/dist/types/wallet-server/src/core/WebAuthnSyncChallengeStore.d.ts +9 -34
- package/dist/types/wallet-server/src/core/authService/AuthService.d.ts +0 -3
- package/dist/types/wallet-server/src/core/authService/emailOtpChallengeOperations.d.ts +6 -5
- package/dist/types/wallet-server/src/core/authService/emailOtpChallengeProof.d.ts +9 -17
- package/dist/types/wallet-server/src/core/authService/emailOtpChallengeVerification.d.ts +3 -2
- package/dist/types/wallet-server/src/core/authService/emailOtpChallenges.d.ts +7 -23
- package/dist/types/wallet-server/src/core/authService/emailOtpConfig.d.ts +3 -10
- package/dist/types/wallet-server/src/core/authService/emailOtpDelivery.d.ts +4 -3
- package/dist/types/wallet-server/src/core/authService/emailOtpGrant.d.ts +4 -3
- package/dist/types/wallet-server/src/core/authService/emailOtpRegistrationEnrollment.d.ts +3 -70
- package/dist/types/wallet-server/src/core/authService/emailOtpSeal.d.ts +3 -2
- package/dist/types/wallet-server/src/core/authService/emailOtpUnlock.d.ts +4 -3
- package/dist/types/wallet-server/src/core/authService/googleEmailOtpRegistration.d.ts +5 -8
- package/dist/types/wallet-server/src/core/authService/nearPrivateKeySigning.d.ts +3 -2
- package/dist/types/wallet-server/src/core/authService/nearPublicKeyMetadata.d.ts +2 -1
- package/dist/types/wallet-server/src/core/authService/nearTransactions.d.ts +2 -1
- package/dist/types/wallet-server/src/core/authService/oidcVerification.d.ts +4 -3
- package/dist/types/wallet-server/src/core/authService/rateLimits.d.ts +0 -3
- package/dist/types/wallet-server/src/core/authService/registrationThresholdHelpers.d.ts +0 -26
- package/dist/types/wallet-server/src/core/authService/storeRegistry.d.ts +0 -5
- package/dist/types/wallet-server/src/core/authService/thresholdEcdsaKeyInventory.d.ts +0 -23
- package/dist/types/wallet-server/src/core/authService/webauthn.d.ts +8 -16
- package/dist/types/wallet-server/src/core/authService/webauthnOidcHelpers.d.ts +7 -7
- package/dist/types/wallet-server/src/core/authService/webauthnVerificationOutcomes.d.ts +43 -0
- package/dist/types/wallet-server/src/core/authService/webauthnWalletBinding.d.ts +1 -28
- package/dist/types/wallet-server/src/core/d1IdentityStore.d.ts +6 -16
- package/dist/types/wallet-server/src/core/d1TenantStore.d.ts +51 -0
- package/dist/types/wallet-server/src/core/d1WalletAuthMethodStore.d.ts +11 -29
- package/dist/types/wallet-server/src/core/d1WalletStore.d.ts +6 -1
- package/dist/types/wallet-server/src/core/deviceLinking/linkedDeviceEd25519ExportRoot.d.ts +2 -1
- package/dist/types/wallet-server/src/core/deviceLinking/linkedDeviceEmailOtpGrant.d.ts +2 -1
- package/dist/types/wallet-server/src/core/deviceLinking/linkedDeviceManagement.d.ts +44 -26
- package/dist/types/wallet-server/src/core/deviceLinking/linkedDeviceSession.d.ts +19 -217
- package/dist/types/wallet-server/src/core/deviceLinking/linkedDeviceSessionApproval.d.ts +8 -0
- package/dist/types/wallet-server/src/core/deviceLinking/linkedDeviceSessionRecord.d.ts +259 -0
- package/dist/types/wallet-server/src/core/deviceLinking/requestProof.d.ts +2 -2
- package/dist/types/wallet-server/src/core/emailOtpD1Statements.d.ts +54 -0
- package/dist/types/wallet-server/src/core/hostedAccountIds.d.ts +0 -15
- package/dist/types/wallet-server/src/core/keyMaterialBrands.d.ts +4 -24
- package/dist/types/wallet-server/src/core/nearRelayerAccountProvisioning.d.ts +2 -3
- package/dist/types/wallet-server/src/core/nearSignerWasmRuntime.d.ts +0 -1
- package/dist/types/wallet-server/src/core/registrationContracts.d.ts +37 -108
- package/dist/types/wallet-server/src/core/routerAbSigning/RouterAbNormalSigningRuntime.d.ts +5 -4
- package/dist/types/wallet-server/src/core/rpcClients/near/NearClient.d.ts +10 -106
- package/dist/types/wallet-server/src/core/signingLanes/LaneAggregateRevocationApplicationService.d.ts +4 -3
- package/dist/types/wallet-server/src/core/signingLanes/LaneEffectJournalStore.d.ts +2 -3
- package/dist/types/wallet-server/src/core/signingLanes/LaneLifecycleStore.d.ts +2 -3
- package/dist/types/wallet-server/src/core/signingLanes/WalletExecutionLaneProjection.d.ts +3 -9
- package/dist/types/wallet-server/src/core/signingLanes/ecdsaServerRetirement.d.ts +4 -4
- package/dist/types/wallet-server/src/core/signingLanes/ed25519ServerRetirement.d.ts +3 -3
- package/dist/types/wallet-server/src/core/storeBackends.d.ts +83 -0
- package/dist/types/wallet-server/src/core/threeRouteRegistrationContracts.d.ts +13 -59
- package/dist/types/wallet-server/src/core/threeRouteRegistrationContracts.typecheck.d.ts +51 -3
- package/dist/types/wallet-server/src/core/thresholdEcdsaChainTarget.d.ts +0 -1
- package/dist/types/wallet-server/src/core/types.d.ts +3 -24
- package/dist/types/wallet-server/src/core/webAuthnD1Statements.d.ts +29 -0
- package/dist/types/wallet-server/src/core/webAuthnStoreBackends.d.ts +96 -0
- package/dist/types/wallet-server/src/hosted-wallet-gateway.d.ts +11 -7
- package/dist/types/wallet-server/src/index.d.ts +1 -1
- package/dist/types/wallet-server/src/local-hosted-wallet-gateway-worker.d.ts +1 -4
- package/dist/types/wallet-server/src/localHostedWalletGatewayHandler.d.ts +12 -0
- package/dist/types/wallet-server/src/localIntendedEcdsaFinalizeFault.d.ts +33 -0
- package/dist/types/wallet-server/src/localIntendedLinkExecuteFault.d.ts +47 -0
- package/dist/types/wallet-server/src/localIntendedRevokeFault.d.ts +40 -0
- package/dist/types/wallet-server/src/localIntendedSessionAdmissionFault.d.ts +41 -0
- package/dist/types/wallet-server/src/localIntendedYaoExportFault.d.ts +41 -0
- package/dist/types/wallet-server/src/localIntendedYaoFault.d.ts +7 -1
- package/dist/types/wallet-server/src/localIntendedYaoFinalizeFault.d.ts +37 -0
- package/dist/types/wallet-server/src/localIntendedYaoRecoveryFault.d.ts +45 -0
- package/dist/types/wallet-server/src/localIntendedYaoSigningFault.d.ts +51 -0
- package/dist/types/wallet-server/src/router/auth/authRequestValidation.d.ts +10 -21
- package/dist/types/wallet-server/src/router/auth/commonRouterUtils.d.ts +5 -10
- package/dist/types/wallet-server/src/router/auth/walletSessionFailure.d.ts +1 -4
- package/dist/types/wallet-server/src/router/auth/webAuthnCredentialCodecs.d.ts +3 -2
- package/dist/types/wallet-server/src/router/cloudflare/d1/auth/d1AuthorizedOperationRouteService.d.ts +12 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/auth/d1RouterApiAuthBoundary.d.ts +3 -2
- package/dist/types/wallet-server/src/router/cloudflare/d1/auth/d1RouterApiAuthConfig.d.ts +2 -2
- package/dist/types/wallet-server/src/router/cloudflare/d1/auth/d1RouterApiAuthService.d.ts +1 -1
- package/dist/types/wallet-server/src/router/cloudflare/d1/authorization/authorizedOperationStatements.d.ts +30 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/authorization/d1AuthorizationStore.d.ts +45 -21
- package/dist/types/wallet-server/src/router/cloudflare/d1/authorization/persistedWalletSessionAuthorization.d.ts +3 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/authorization/walletSessionAuthorityProjection.d.ts +2 -1
- package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceAuthorityInstallService.d.ts +57 -6
- package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceEmailOtpGrantStore.d.ts +2 -3
- package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceEmailOtpTargetFactor.d.ts +8 -21
- package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceOwnerAuthorizationProvider.d.ts +14 -1
- package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceRevocation.d.ts +49 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceSessionRecords.d.ts +1 -1
- package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceSessionStore.d.ts +4 -2
- package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceSourceContributionPreparationPlanner.d.ts +1 -1
- package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceTargetCredentialProvider.d.ts +2 -2
- package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceTargetPlanner.d.ts +8 -4
- package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceVerifiedLinkBuilder.d.ts +3 -5
- package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/installedEcdsaAuthority.d.ts +7 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/ed25519Yao/d1Ed25519YaoCapabilityPersistence.d.ts +1 -2
- package/dist/types/wallet-server/src/router/cloudflare/d1/ed25519Yao/d1Ed25519YaoLifecycleDecisionStore.d.ts +33 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpChallengeIssuer.d.ts +1 -1
- package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpChallengeStore.d.ts +13 -3
- package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpChallengeVerifier.d.ts +24 -5
- package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpEnrollmentStore.d.ts +2 -3
- package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpGrantStore.d.ts +1 -3
- package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpRateLimitStore.d.ts +3 -4
- package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpRecords.d.ts +9 -8
- package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpRecoveryService.d.ts +0 -2
- package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpRegistrationEnrollmentFinalizer.d.ts +5 -4
- package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1GoogleEmailOtpRegistrationAttemptStore.d.ts +1 -3
- package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1GoogleEmailOtpRegistrationRecords.d.ts +3 -21
- package/dist/types/wallet-server/src/router/cloudflare/d1/identity/d1IdentityRecords.d.ts +0 -23
- package/dist/types/wallet-server/src/router/cloudflare/d1/near/d1NearPublicKeyStore.d.ts +1 -2
- package/dist/types/wallet-server/src/router/cloudflare/d1/passkeyCustody/d1PasskeyCustodyEnvelopeStore.d.ts +11 -19
- package/dist/types/wallet-server/src/router/cloudflare/d1/passkeyCustody/d1PasskeyCustodyRouteService.d.ts +5 -54
- package/dist/types/wallet-server/src/router/cloudflare/d1/passkeyCustody/d1WalletCustodyCommitStore.d.ts +7 -19
- package/dist/types/wallet-server/src/router/cloudflare/d1/passkeyCustody/d1WalletRecoveryGoogleEmailOtpRecords.d.ts +4 -3
- package/dist/types/wallet-server/src/router/cloudflare/d1/passkeyCustody/d1WalletRecoveryGoogleEmailOtpService.d.ts +8 -12
- package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1RegistrationCeremonyRecordStore.d.ts +5 -8
- package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1RegistrationCeremonyRecords.d.ts +10 -22
- package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1RegistrationCeremonyStore.d.ts +6 -2
- package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1WalletRegistrationCommitStore.d.ts +10 -6
- package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1WalletRegistrationService.d.ts +15 -22
- package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1WalletRegistrationSetup.d.ts +5 -3
- package/dist/types/wallet-server/src/router/cloudflare/d1/registration/walletRegistrationEstablishedSessionIssuer.d.ts +4 -3
- package/dist/types/wallet-server/src/router/cloudflare/d1/registration/walletRegistrationSessionCommitReceipt.d.ts +5 -5
- package/dist/types/wallet-server/src/router/cloudflare/d1/signingAdmission/d1RouterAbNormalSigningAdmissionStore.d.ts +3 -5
- package/dist/types/wallet-server/src/router/cloudflare/d1/signingLanes/d1LaneEffectJournalStore.d.ts +0 -1
- package/dist/types/wallet-server/src/router/cloudflare/d1/versionedJson/d1VersionedJsonRecordStore.d.ts +0 -16
- package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletAddSignerService.d.ts +29 -14
- package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletAuthMethodBoundary.d.ts +15 -12
- package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletAuthMethodRevocationReplayStore.d.ts +71 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletAuthMethodService.d.ts +34 -24
- package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletAuthorityStore.d.ts +44 -26
- package/dist/types/wallet-server/src/router/cloudflare/d1/webauthn/d1WebAuthnRecords.d.ts +3 -7
- package/dist/types/wallet-server/src/router/cloudflare/d1/webauthn/d1WebAuthnStore.d.ts +8 -19
- package/dist/types/wallet-server/src/router/cloudflare/runtime/walletConsoleTenantRootLineage.d.ts +2 -1
- package/dist/types/wallet-server/src/router/cloudflare/runtime/walletGateway.d.ts +1 -0
- package/dist/types/wallet-server/src/router/cloudflare/signingLanes/cloudflareOrdinaryInactiveSignerMaterialReservation.d.ts +15 -2
- package/dist/types/wallet-server/src/router/cloudflare-adaptor.d.ts +2 -2
- package/dist/types/wallet-server/src/router/domains/ecdsa/routerAbEcdsaStrictRegistration.d.ts +9 -7
- package/dist/types/wallet-server/src/router/domains/ecdsa/thresholdEcdsaRequestValidation.d.ts +4 -4
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoLifecycleDecision.d.ts +46 -0
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistration.d.ts +5 -3
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistrationPartitionedStateStore.d.ts +20 -79
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistrationPartitioning.d.ts +2 -0
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistrationRequestScopedRunner.d.ts +1 -1
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistrationRequestScopedRuntime.d.ts +4 -3
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/export/routerAbEd25519YaoExport.d.ts +62 -42
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/recovery/routerAbEd25519YaoRecovery.d.ts +108 -32
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/recovery/routerAbEd25519YaoRecoveryActivation.typecheck.d.ts +5 -0
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/registration/routerAbEd25519YaoHttpRegistrationBackend.d.ts +36 -5
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistration.d.ts +5 -4
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistrationExecutionRecord.d.ts +41 -50
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistrationIntentAuthorization.d.ts +2 -2
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistrationRequestScopedCloudflare.d.ts +3 -3
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistrationSideEffectBoundary.d.ts +6 -5
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistrationTwoPhaseRunner.d.ts +14 -4
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/routerAbEd25519YaoGatewayEnvelope.d.ts +12 -1
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/session/routerAbEd25519YaoWalletSession.d.ts +5 -5
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/session/thresholdEd25519RequestValidation.d.ts +3 -4
- package/dist/types/wallet-server/src/router/domains/emailOtp/emailOtpExportPolicy.d.ts +2 -27
- package/dist/types/wallet-server/src/router/domains/emailOtp/emailOtpRequestValidation.d.ts +1 -2
- package/dist/types/wallet-server/src/router/domains/emailOtp/emailOtpRouteHandlers.d.ts +2 -1
- package/dist/types/wallet-server/src/router/domains/emailOtp/emailOtpSessionRouteHelpers.d.ts +2 -102
- package/dist/types/wallet-server/src/router/domains/passkeyCustody/envelopeRevocationAdmission.d.ts +2 -1
- package/dist/types/wallet-server/src/router/domains/passkeyCustody/passkeyCustodyEnvelopeRetrieval.d.ts +3 -2
- package/dist/types/wallet-server/src/router/domains/passkeyCustody/passkeyCustodyEnvelopeRetrievalRoute.d.ts +1 -9
- package/dist/types/wallet-server/src/router/domains/passkeyCustody/registrationCustodyOutcome.d.ts +2 -1
- package/dist/types/wallet-server/src/router/domains/passkeyCustody/verifiedCustodyFactor.d.ts +2 -1
- package/dist/types/wallet-server/src/router/domains/passkeyCustody/walletCustodyRegistrationAdmission.d.ts +2 -1
- package/dist/types/wallet-server/src/router/domains/passkeyCustody/walletCustodyRegistrationCommit.d.ts +2 -28
- package/dist/types/wallet-server/src/router/domains/passkeyCustody/walletRecoveryFinalization.d.ts +43 -1
- package/dist/types/wallet-server/src/router/domains/passkeyCustody/walletRecoveryKeyManifest.d.ts +7 -7
- package/dist/types/wallet-server/src/router/domains/signingOperations/ed25519AuthorizedOperationReceipt.d.ts +0 -3
- package/dist/types/wallet-server/src/router/domains/signingOperations/routerAbEcdsaDerivationNormalSigningRoute.d.ts +165 -0
- package/dist/types/wallet-server/src/router/domains/signingOperations/routerAbEd25519NormalSigningRoute.d.ts +110 -0
- package/dist/types/wallet-server/src/router/domains/signingOperations/routerAbNormalSigningAdmission.d.ts +360 -0
- package/dist/types/wallet-server/src/router/domains/signingOperations/routerAbNormalSigningAdmissionCore.d.ts +11 -10
- package/dist/types/wallet-server/src/router/domains/signingOperations/routerAbNormalSigningAdmissionCore.typecheck.d.ts +2 -0
- package/dist/types/wallet-server/src/router/domains/signingOperations/routerAbOperationStepUp.d.ts +165 -0
- package/dist/types/wallet-server/src/router/domains/signingOperations/routerAbPrivateSigningWorker.d.ts +16 -702
- package/dist/types/wallet-server/src/router/domains/signingOperations/walletExecutionAdmission.d.ts +5 -12
- package/dist/types/wallet-server/src/router/domains/syncAccount/syncAccountRequestValidation.d.ts +5 -4
- package/dist/types/wallet-server/src/router/domains/tenantRoot/tenantRootCustodyLineage.d.ts +6 -1
- package/dist/types/wallet-server/src/router/domains/tenantRoot/tenantRootIdentityResolution.d.ts +4 -7
- package/dist/types/wallet-server/src/router/domains/walletRegistration/walletRegistrationInputs.d.ts +2 -1
- package/dist/types/wallet-server/src/router/domains/walletRegistration/walletRegistrationRoutes.d.ts +8 -8
- package/dist/types/wallet-server/src/router/domains/walletRegistration/walletRegistrationSetupPayload.d.ts +4 -4
- package/dist/types/wallet-server/src/router/domains/walletUnlock/walletUnlockRequestedCapabilitiesValidation.d.ts +4 -4
- package/dist/types/wallet-server/src/router/domains/walletUnlock/walletUnlockRouteHandlers.d.ts +4 -62
- package/dist/types/wallet-server/src/router/express-adaptor.d.ts +2 -2
- package/dist/types/wallet-server/src/router/framework/authServicePort.d.ts +64 -61
- package/dist/types/wallet-server/src/router/framework/http.d.ts +0 -1
- package/dist/types/wallet-server/src/router/framework/ror/normalize.d.ts +2 -2
- package/dist/types/wallet-server/src/router/framework/routeMeteringPolicy.d.ts +3 -2
- package/dist/types/wallet-server/src/router/framework/routerApi.d.ts +1 -1
- package/dist/types/wallet-server/src/router/framework/routerApiRouteSurface.d.ts +3 -3
- package/dist/types/wallet-server/src/router/node/nodeHostedWalletGateway.d.ts +34 -0
- package/dist/types/wallet-server/src/router/node/nodeHostedWalletGatewayCheck.d.ts +21 -0
- package/dist/types/wallet-server/src/router/node/nodeHostedWalletGatewayMain.d.ts +2 -0
- package/dist/types/wallet-server/src/router/node/nodeHttp.d.ts +13 -0
- package/dist/types/wallet-server/src/router/node/nodeSqlite.d.ts +22 -0
- package/dist/types/wallet-server/src/router/node/signerSqlMigrations.d.ts +20 -0
- package/dist/types/wallet-server/src/router/transport/fetch/createFetchRouter.d.ts +1 -3
- package/dist/types/wallet-server/src/router/transport/fetch/routes/deviceLinking.d.ts +5 -6
- package/dist/types/wallet-server/src/router/transport/fetch/routes/deviceLinkingOwnerAuthorization.d.ts +2 -2
- package/dist/types/wallet-server/src/router/transport/fetch/routes/deviceManagement.d.ts +14 -16
- package/dist/types/wallet-server/src/router/transport/fetch/routes/normalSigningRouterProxy.d.ts +0 -12
- package/dist/types/wallet-server/src/router/transport/fetch/routes/passkeyCustody.d.ts +1 -1
- package/dist/types/wallet-server/src/router/transport/fetch/routes/sessions.d.ts +2 -1
- package/dist/types/wallet-server/src/router/transport/fetch/routes/syncAccountBootstrap.d.ts +7 -13
- package/dist/types/wallet-server/src/router/transport/fetch/routes/thresholdEcdsa.d.ts +3 -57
- package/dist/types/wallet-server/src/router/transport/fetch/routes/thresholdEd25519.d.ts +0 -44
- package/dist/types/wallet-server/src/storage/d1Sql.d.ts +7 -0
- package/dist/types/wallet-server/src/storage/syncSqlite.d.ts +28 -0
- package/dist/types/wallet-server/src/threshold/session/signingSessionSeal/crypto/shamir3PassWasm.d.ts +0 -1
- package/dist/types/wallet-server/src/threshold/session/signingSessionSeal/idempotencyRecords.d.ts +5 -6
- package/dist/types/wallet-server/src/threshold/session/signingSessionSeal/transport/shared.d.ts +1 -0
- package/dist/types/wallet-server/src/threshold/statusCodes.d.ts +4 -4
- package/migrations/d1-signer/0036_r150_yao_lifecycle_decisions.sql +22 -0
- package/migrations/d1-signer/0037_r150_wallet_auth_method_revocation_replays.sql +26 -0
- package/migrations/d1-signer/0038_r150_registration_ceremony_cas_guard_seed.sql +8 -0
- package/migrations/d1-signer/0039_r150_revocation_replay_answer_kind.sql +9 -0
- package/package.json +1 -1
- package/dist/esm/core/ThresholdService/ecdsaClientRootProof.js +0 -27
- package/dist/esm/core/ThresholdService/routerAbEcdsaSigningWorkerWasm.js +0 -115
- package/dist/esm/core/ThresholdService/secureRandomId.js +0 -9
- package/dist/esm/core/authService/record.js +0 -8
- package/dist/esm/core/authService/thresholdRuntimePolicy.js +0 -19
- package/dist/esm/core/authService/walletRegistrationPlanning.js +0 -49
- package/dist/esm/core/deviceLinking/index.js +0 -5
- package/dist/esm/core/errors.js +0 -54
- package/dist/esm/core/routerAbSigning/createCloudflareDurableObjectRouterAbSigningRuntimes.js +0 -39
- package/dist/esm/core/signingLanes/WalletKeyStore.js +0 -0
- package/dist/esm/core/signingLanes/index.js +0 -8
- package/dist/esm/router/domains/tenantRoot/tenantRootEcdsaWalletSessionComposition.js +0 -55
- package/dist/esm/router/domains/tenantRoot/tenantRootEd25519WalletSessionComposition.js +0 -56
- package/dist/esm/shared-ts/src/signing-lanes/linkedEcdsaScope.js +0 -1
- package/dist/esm/wasm/router_ab_ecdsa_signing_worker/pkg/router_ab_ecdsa_signing_worker.js +0 -414
- package/dist/types/shared-ts/src/passkey-custody/credentialObservations.d.ts +0 -74
- package/dist/types/shared-ts/src/passkey-custody/kekContext.d.ts +0 -34
- package/dist/types/shared-ts/src/signing-lanes/linkedEcdsaScope.d.ts +0 -62
- package/dist/types/shared-ts/src/signing-lanes/linkedEcdsaScope.typecheck.d.ts +0 -2
- package/dist/types/shared-ts/src/signing-lanes/validation.d.ts +0 -11
- package/dist/types/shared-ts/src/utils/bigint.d.ts +0 -3
- package/dist/types/shared-ts/src/utils/paillier.d.ts +0 -37
- package/dist/types/shared-ts/src/utils/recoveryDomain.d.ts +0 -12
- package/dist/types/shared-ts/src/utils/signerDomain.typecheck.d.ts +0 -2
- package/dist/types/shared-ts/src/wallet-recovery/recoveryKekContext.d.ts +0 -37
- package/dist/types/wallet-server/src/core/ThresholdService/ecdsaClientRootProof.d.ts +0 -12
- package/dist/types/wallet-server/src/core/ThresholdService/routerAbEcdsaSigningWorkerWasm.d.ts +0 -17
- package/dist/types/wallet-server/src/core/ThresholdService/secureRandomId.d.ts +0 -2
- package/dist/types/wallet-server/src/core/authService/record.d.ts +0 -2
- package/dist/types/wallet-server/src/core/authService/thresholdRuntimePolicy.d.ts +0 -4
- package/dist/types/wallet-server/src/core/authService/walletRegistrationPlanning.d.ts +0 -19
- package/dist/types/wallet-server/src/core/deviceLinking/index.d.ts +0 -5
- package/dist/types/wallet-server/src/core/errors.d.ts +0 -10
- package/dist/types/wallet-server/src/core/routerAbSigning/createCloudflareDurableObjectRouterAbSigningRuntimes.d.ts +0 -28
- package/dist/types/wallet-server/src/core/signingLanes/SigningLaneStore.d.ts +0 -15
- package/dist/types/wallet-server/src/core/signingLanes/WalletKeyStore.d.ts +0 -13
- package/dist/types/wallet-server/src/core/signingLanes/index.d.ts +0 -11
- package/dist/types/wallet-server/src/router/domains/tenantRoot/tenantRootEcdsaWalletSessionComposition.d.ts +0 -35
- package/dist/types/wallet-server/src/router/domains/tenantRoot/tenantRootEd25519WalletSessionComposition.d.ts +0 -35
- /package/dist/esm/{core/signingLanes/SigningLaneStore.js → authorization/ecdsaWalletSessionAdmission.js} +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { mpcMaterialActivationRefsEqual
|
|
1
|
+
import { mpcMaterialActivationRefsEqual } from "../../../../shared-ts/src/utils/domainIds.js";
|
|
2
2
|
import { CAPABILITY_KINDS, parseAuthorizationAuditEventId, parseAuthorizationGrantRef, parseAuthorizedOperationId, parseCapabilityId, parseCapabilityOperationId, parseCapabilityOperationRef, parseMpcWalletSigningQuotaId, parsePrincipalId, parseTenantId, parseWalletSessionAuthorizationId, parseWalletSessionId } from "../../../../shared-ts/src/authorization/capabilityKinds.js";
|
|
3
3
|
import { parseDigestB64u } from "../../../../shared-ts/src/utils/canonicalPrimitives.js";
|
|
4
4
|
import { buildCapabilityOperationEnvelope, computeCapabilityOperationFingerprintDigest, parseCapabilityOperationFingerprintDigest } from "../../../../shared-ts/src/authorization/operationFingerprint.js";
|
|
@@ -7,47 +7,11 @@ import { buildActiveWalletSessionQuota, buildAuthorizedOperation, buildExactWall
|
|
|
7
7
|
import { d1ChangedRows, parseD1JsonColumn } from "../../../../storage/d1Sql.js";
|
|
8
8
|
import { D1WalletStore } from "../../../../core/d1WalletStore.js";
|
|
9
9
|
import { normalizeWalletAuthMethodV2 } from "../../../../core/d1WalletAuthMethodStore.js";
|
|
10
|
-
import {
|
|
10
|
+
import { prepareAuthorizedOperationAdmissionRead, prepareAuthorizedOperationCommittedRead, prepareAuthorizedOperationInsert, prepareAuthorizedOperationRead } from "./authorizedOperationStatements.js";
|
|
11
11
|
import { prepareD1WalletSessionAuthorityProjectionStatements } from "./walletSessionAuthorityProjection.js";
|
|
12
|
+
import { parseD1WalletAuthorityRow } from "../wallet/d1WalletAuthorityStore.js";
|
|
13
|
+
import { parsePersistedWalletSessionAuthorizationV2 } from "./persistedWalletSessionAuthorization.js";
|
|
12
14
|
//#region src/router/cloudflare/d1/authorization/d1AuthorizationStore.ts
|
|
13
|
-
const ECDSA_SIGNER_MATCH = `
|
|
14
|
-
EXISTS (
|
|
15
|
-
SELECT 1
|
|
16
|
-
FROM wallet_signers AS signer
|
|
17
|
-
WHERE signer.namespace = ?
|
|
18
|
-
AND signer.org_id = ?
|
|
19
|
-
AND signer.project_id = ?
|
|
20
|
-
AND signer.env_id = ?
|
|
21
|
-
AND signer.wallet_id = ?
|
|
22
|
-
AND signer.signer_family = 'ecdsa'
|
|
23
|
-
AND json_extract(signer.record_json, '$.walletKey.publicCapability.material_activation.material_owner') = signer.wallet_id
|
|
24
|
-
AND json_extract(signer.record_json, '$.walletKey.keyHandle') = ?
|
|
25
|
-
AND json_extract(signer.record_json, '$.walletKey.publicCapability.material_activation.kind') = ?
|
|
26
|
-
AND json_extract(signer.record_json, '$.walletKey.publicCapability.material_activation.activation_id') = ?
|
|
27
|
-
AND json_extract(signer.record_json, '$.walletKey.publicCapability.material_activation.capability') = ?
|
|
28
|
-
AND json_extract(signer.record_json, '$.walletKey.publicCapability.material_activation.material_owner') = ?
|
|
29
|
-
AND json_extract(signer.record_json, '$.walletKey.publicCapability.material_activation.key_binding') = ?
|
|
30
|
-
AND json_extract(signer.record_json, '$.walletKey.publicCapability.material_activation.lifecycle_binding') = ?
|
|
31
|
-
AND json_extract(signer.record_json, '$.walletKey.publicCapability.material_activation.signing_worker') = ?
|
|
32
|
-
)`;
|
|
33
|
-
function ecdsaSignerMatchBindings(walletSignerScope, material) {
|
|
34
|
-
const activation = material.materialActivation;
|
|
35
|
-
return [
|
|
36
|
-
walletSignerScope.namespace,
|
|
37
|
-
walletSignerScope.orgId,
|
|
38
|
-
walletSignerScope.projectId,
|
|
39
|
-
walletSignerScope.envId,
|
|
40
|
-
material.walletId,
|
|
41
|
-
material.keyHandle,
|
|
42
|
-
activation.kind,
|
|
43
|
-
activation.activation_id,
|
|
44
|
-
activation.capability,
|
|
45
|
-
activation.material_owner,
|
|
46
|
-
activation.key_binding,
|
|
47
|
-
activation.lifecycle_binding,
|
|
48
|
-
activation.signing_worker
|
|
49
|
-
];
|
|
50
|
-
}
|
|
51
15
|
const ACTIVE_V2_AUTHORITY_METHOD_EXISTS_SQL = `
|
|
52
16
|
EXISTS (
|
|
53
17
|
SELECT 1
|
|
@@ -118,11 +82,6 @@ var CloudflareD1AuthorizationStore = class {
|
|
|
118
82
|
projectId: requireOpaqueString(options.walletSignerScope.projectId, "walletSignerScope.projectId"),
|
|
119
83
|
envId: requireOpaqueString(options.walletSignerScope.envId, "walletSignerScope.envId")
|
|
120
84
|
};
|
|
121
|
-
this.walletAuthorityStore = new D1WalletAuthorityStore({
|
|
122
|
-
database: this.database,
|
|
123
|
-
scope: this.walletSignerScope,
|
|
124
|
-
ensureSchema: false
|
|
125
|
-
});
|
|
126
85
|
this.walletStore = new D1WalletStore({
|
|
127
86
|
database: this.database,
|
|
128
87
|
namespace: this.walletSignerScope.namespace,
|
|
@@ -618,7 +577,7 @@ var CloudflareD1AuthorizationStore = class {
|
|
|
618
577
|
const walletOrigin = parseSessionOrigin(row.wallet_origin);
|
|
619
578
|
if (walletOrigin !== input.requestOrigin) return null;
|
|
620
579
|
if (row.session_record_json === null || row.session_record_json === void 0 || row.session_operation_credential_hash === null || row.session_operation_credential_hash === void 0 || row.session_retired_at_ms !== null && row.session_retired_at_ms !== void 0 || row.credential_retired_at_ms !== null && row.credential_retired_at_ms !== void 0 || row.quota_lifecycle_kind !== "active" || integerColumn(row.quota_remaining_uses, "hosted credential quota remaining uses") <= 0 || integerColumn(row.expires_at_ms, "hosted credential expiry") <= input.nowMs || integerColumn(row.session_expires_at_ms, "hosted parent expiry") <= input.nowMs || integerColumn(row.session_expires_at_ms, "hosted parent expiry") < integerColumn(row.expires_at_ms, "hosted credential expiry") || integerColumn(row.quota_expires_at_ms, "hosted quota expiry") <= input.nowMs || integerColumn(row.quota_expires_at_ms, "hosted quota expiry") < integerColumn(row.expires_at_ms, "hosted credential expiry")) return null;
|
|
621
|
-
const expected =
|
|
580
|
+
const expected = parsePersistedWalletSessionAuthorizationV2(parseD1JsonColumn(row.session_record_json));
|
|
622
581
|
let authorization;
|
|
623
582
|
try {
|
|
624
583
|
authorization = await this.readWalletSessionAuthorizationV2ByAuthorizationId({
|
|
@@ -899,22 +858,6 @@ var CloudflareD1AuthorizationStore = class {
|
|
|
899
858
|
}
|
|
900
859
|
});
|
|
901
860
|
}
|
|
902
|
-
async existingWalletSessionAuthorizationV2QuotaMatches(quota) {
|
|
903
|
-
const row = await this.database.prepare(`SELECT
|
|
904
|
-
tenant_id,
|
|
905
|
-
principal_id,
|
|
906
|
-
wallet_session_id,
|
|
907
|
-
quota_id,
|
|
908
|
-
remaining_uses,
|
|
909
|
-
lifecycle_kind,
|
|
910
|
-
expires_at_ms
|
|
911
|
-
FROM authorization_wallet_session_quotas
|
|
912
|
-
WHERE namespace = ?
|
|
913
|
-
AND tenant_id = ?
|
|
914
|
-
AND quota_id = ?
|
|
915
|
-
LIMIT 1`).bind(this.namespace, quota.tenantId, String(quota.quotaId)).first();
|
|
916
|
-
return row !== null && row.tenant_id === String(quota.tenantId) && row.principal_id === String(quota.principalId) && row.wallet_session_id === String(quota.walletSessionId) && row.quota_id === String(quota.quotaId) && row.lifecycle_kind === "active" && integerColumn(row.remaining_uses, "V2 quota.remainingUses") === quota.remainingUses && integerColumn(row.expires_at_ms, "V2 quota.expiresAtMs") === quota.expiresAtMs;
|
|
917
|
-
}
|
|
918
861
|
async readWalletSessionAuthorizationV2ByMint(input) {
|
|
919
862
|
const row = await this.database.prepare(`SELECT
|
|
920
863
|
record_json,
|
|
@@ -947,7 +890,7 @@ var CloudflareD1AuthorizationStore = class {
|
|
|
947
890
|
AND mint_id = ?
|
|
948
891
|
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)).first();
|
|
949
892
|
if (!row) return null;
|
|
950
|
-
const session =
|
|
893
|
+
const session = parsePersistedWalletSessionAuthorizationV2(parseD1JsonColumn(row.record_json));
|
|
951
894
|
if (!walletSessionAuthorizationV2RowMatches({
|
|
952
895
|
session_tenant_id: row.tenant_id,
|
|
953
896
|
session_authorization_id: row.authorization_id,
|
|
@@ -1027,7 +970,7 @@ var CloudflareD1AuthorizationStore = class {
|
|
|
1027
970
|
LIMIT 1`).bind(this.namespace, this.walletSignerScope.orgId, this.walletSignerScope.projectId, this.walletSignerScope.envId, input.tenantId, input.walletId, input.walletSessionId, input.authorizationId).first();
|
|
1028
971
|
if (!row) return null;
|
|
1029
972
|
if (row.retired_at_ms !== null && row.retired_at_ms !== void 0) return null;
|
|
1030
|
-
const session =
|
|
973
|
+
const session = parsePersistedWalletSessionAuthorizationV2(parseD1JsonColumn(row.record_json));
|
|
1031
974
|
if (session.tenantId !== input.tenantId || session.walletId !== input.walletId || session.walletSessionId !== input.walletSessionId || session.authorizationId !== input.authorizationId) throw new Error("Stored V2 Wallet Session identity does not match the request");
|
|
1032
975
|
const nowMs = requirePositiveInteger(input.nowMs, "V2 authorization read time");
|
|
1033
976
|
return session.expiresAtMs > nowMs ? session : null;
|
|
@@ -1039,6 +982,31 @@ var CloudflareD1AuthorizationStore = class {
|
|
|
1039
982
|
nowMs: input.nowMs
|
|
1040
983
|
}, "operation_credential_hash");
|
|
1041
984
|
}
|
|
985
|
+
/**
|
|
986
|
+
* The live session, its authority and its auth method from one joined read.
|
|
987
|
+
* A commit between separate reads could pair the session with an authority
|
|
988
|
+
* it was never bound to; one statement cannot.
|
|
989
|
+
*/
|
|
990
|
+
async readWalletSessionAdmissionSnapshotByOperationCredential(input) {
|
|
991
|
+
const row = await this.readJoinedWalletSessionAuthorizationV2Row({
|
|
992
|
+
lookupColumn: "operation_credential_hash",
|
|
993
|
+
tenantId: input.tenantId,
|
|
994
|
+
lookupValue: input.tokenHash
|
|
995
|
+
});
|
|
996
|
+
if (!row) return null;
|
|
997
|
+
const session = parseLiveWalletSessionAuthorizationV2Row(row, {
|
|
998
|
+
operationCredentialHash: input.tokenHash,
|
|
999
|
+
tenantId: input.tenantId,
|
|
1000
|
+
nowMs: input.nowMs
|
|
1001
|
+
});
|
|
1002
|
+
return {
|
|
1003
|
+
authorization: {
|
|
1004
|
+
session,
|
|
1005
|
+
quota: parseWalletSessionAuthorizationV2QuotaRow(row, session)
|
|
1006
|
+
},
|
|
1007
|
+
...await joinedAuthorityAndMethod(row)
|
|
1008
|
+
};
|
|
1009
|
+
}
|
|
1042
1010
|
async readWalletSessionExactOperationContextByCredential(input) {
|
|
1043
1011
|
const row = await this.readJoinedWalletSessionAuthorizationV2Row({
|
|
1044
1012
|
lookupColumn: "operation_credential_hash",
|
|
@@ -1059,7 +1027,13 @@ var CloudflareD1AuthorizationStore = class {
|
|
|
1059
1027
|
session,
|
|
1060
1028
|
authority,
|
|
1061
1029
|
authMethod,
|
|
1062
|
-
retiredAtMs: null
|
|
1030
|
+
retiredAtMs: null,
|
|
1031
|
+
ownerWalletScope: {
|
|
1032
|
+
orgId: requireString(row.session_org_id, "session.ownerWalletScope.orgId"),
|
|
1033
|
+
projectId: requireString(row.session_project_id, "session.ownerWalletScope.projectId"),
|
|
1034
|
+
projectEnvironmentId: requireString(row.session_env_id, "session.ownerWalletScope.projectEnvironmentId"),
|
|
1035
|
+
walletId: session.walletId
|
|
1036
|
+
}
|
|
1063
1037
|
};
|
|
1064
1038
|
}
|
|
1065
1039
|
/**
|
|
@@ -1070,85 +1044,92 @@ var CloudflareD1AuthorizationStore = class {
|
|
|
1070
1044
|
* their record, and broken foreign-key identity still throw.
|
|
1071
1045
|
*/
|
|
1072
1046
|
async readExactWalletSessionStatusByOperationCredential(input) {
|
|
1047
|
+
return (await this.readExactWalletSessionStatusSnapshotByOperationCredential(input)).status;
|
|
1048
|
+
}
|
|
1049
|
+
/**
|
|
1050
|
+
* The exact status with the authority and auth method it was judged
|
|
1051
|
+
* against, all from the one joined read.
|
|
1052
|
+
*/
|
|
1053
|
+
async readExactWalletSessionStatusSnapshotByOperationCredential(input) {
|
|
1054
|
+
const unjudged = (status) => ({
|
|
1055
|
+
status,
|
|
1056
|
+
authority: null,
|
|
1057
|
+
authMethod: null
|
|
1058
|
+
});
|
|
1073
1059
|
const nowMs = requirePositiveInteger(input.nowMs, "exact Wallet Session status time");
|
|
1074
1060
|
const row = await this.readJoinedWalletSessionAuthorizationV2Row({
|
|
1075
1061
|
lookupColumn: "operation_credential_hash",
|
|
1076
1062
|
tenantId: input.tenantId,
|
|
1077
1063
|
lookupValue: input.tokenHash
|
|
1078
1064
|
});
|
|
1079
|
-
if (!row) return { kind: "missing" };
|
|
1080
|
-
const session =
|
|
1065
|
+
if (!row) return unjudged({ kind: "missing" });
|
|
1066
|
+
const session = parsePersistedWalletSessionAuthorizationV2(parseD1JsonColumn(row.session_record_json));
|
|
1081
1067
|
if (!walletSessionAuthorizationV2RowMatches(row, session)) throw new Error("Stored V2 Wallet Session authorization columns disagree with record");
|
|
1082
1068
|
if (!walletSessionAuthorizationV2RecordsEqual(parseWalletSessionAuthorizationV2WithSubjects(row, parseD1JsonColumn(row.session_capability_subjects_json)), session)) throw new Error("Stored V2 Wallet Session capability subjects disagree with record");
|
|
1083
1069
|
if (session.tenantId !== input.tenantId) throw new Error("Stored V2 Wallet Session tenant does not match the request");
|
|
1084
1070
|
const quota = parseExactWalletSessionQuotaProjectionRow(row, session);
|
|
1085
|
-
if (session.expiresAtMs <= nowMs) return {
|
|
1071
|
+
if (session.expiresAtMs <= nowMs) return unjudged({
|
|
1086
1072
|
kind: "expired",
|
|
1087
1073
|
session,
|
|
1088
1074
|
quota
|
|
1089
|
-
};
|
|
1090
|
-
if (row.session_retired_at_ms !== null && row.session_retired_at_ms !== void 0) return {
|
|
1075
|
+
});
|
|
1076
|
+
if (row.session_retired_at_ms !== null && row.session_retired_at_ms !== void 0) return unjudged({
|
|
1091
1077
|
kind: "retired",
|
|
1092
1078
|
session,
|
|
1093
1079
|
quota,
|
|
1094
1080
|
retiredAtMs: requirePositiveInteger(row.session_retired_at_ms, "V2 session.retiredAtMs")
|
|
1095
|
-
};
|
|
1096
|
-
|
|
1081
|
+
});
|
|
1082
|
+
const joined = await joinedAuthorityAndMethod(row);
|
|
1083
|
+
const judged = (status) => ({
|
|
1084
|
+
status,
|
|
1085
|
+
...joined
|
|
1086
|
+
});
|
|
1087
|
+
if (quota.lifecycle === "exhausted") return judged({
|
|
1097
1088
|
kind: "exhausted",
|
|
1098
1089
|
session,
|
|
1099
1090
|
quota
|
|
1100
|
-
};
|
|
1101
|
-
|
|
1102
|
-
|
|
1103
|
-
session,
|
|
1104
|
-
quota
|
|
1105
|
-
};
|
|
1106
|
-
const authority = await this.readExactStatusAuthority(row);
|
|
1107
|
-
if (!authority) return {
|
|
1091
|
+
});
|
|
1092
|
+
const authority = joined.authority;
|
|
1093
|
+
if (!authority) return judged({
|
|
1108
1094
|
kind: "authority_unavailable",
|
|
1109
1095
|
session,
|
|
1110
1096
|
quota
|
|
1111
|
-
};
|
|
1097
|
+
});
|
|
1112
1098
|
if (authority.authorityId !== session.authorityId || authority.walletId !== session.walletId || authority.state !== row.authority_lifecycle_state || authority.authorityDigestB64u !== row.authority_digest_b64u || authority.revocationEpoch !== integerColumn(row.authority_revocation_epoch, "authority.revocationEpoch")) throw new Error("Stored V2 Wallet Session authority identity does not match the record");
|
|
1113
|
-
if (authority.authorityId !== session.authorityId || authority.walletId !== session.walletId || authority.authorityDigestB64u !== session.authorityDigestB64u || authority.revocationEpoch !== session.authorityRevocationEpoch || authority.state !== "active") return {
|
|
1099
|
+
if (authority.authorityId !== session.authorityId || authority.walletId !== session.walletId || authority.authorityDigestB64u !== session.authorityDigestB64u || authority.revocationEpoch !== session.authorityRevocationEpoch || authority.state !== "active") return judged({
|
|
1114
1100
|
kind: "authority_unavailable",
|
|
1115
1101
|
session,
|
|
1116
1102
|
quota
|
|
1117
|
-
};
|
|
1118
|
-
if (row.auth_method_id === null || row.auth_method_id === void 0) return {
|
|
1103
|
+
});
|
|
1104
|
+
if (row.auth_method_id === null || row.auth_method_id === void 0) return judged({
|
|
1119
1105
|
kind: "method_unavailable",
|
|
1120
1106
|
session,
|
|
1121
1107
|
quota
|
|
1122
|
-
};
|
|
1108
|
+
});
|
|
1123
1109
|
if (row.auth_method_id !== String(session.walletAuthMethodId) || row.auth_method_wallet_id !== String(session.walletId) || row.auth_method_authority_id !== String(session.authorityId)) throw new Error("Stored V2 Wallet Session auth method identity does not match the record");
|
|
1124
|
-
if (row.auth_method_status !== "active") return {
|
|
1110
|
+
if (row.auth_method_status !== "active") return judged({
|
|
1125
1111
|
kind: "method_unavailable",
|
|
1126
1112
|
session,
|
|
1127
1113
|
quota
|
|
1128
|
-
};
|
|
1114
|
+
});
|
|
1129
1115
|
if (!exactWalletSessionCapabilitySubjectsResolveAuthority({
|
|
1130
1116
|
session,
|
|
1131
1117
|
signerActivations: authority.signerActivations
|
|
1132
|
-
})) return {
|
|
1118
|
+
})) return judged({
|
|
1133
1119
|
kind: "capability_unavailable",
|
|
1134
1120
|
session,
|
|
1135
1121
|
quota
|
|
1136
|
-
};
|
|
1137
|
-
if (!await this.exactWalletSessionCapabilitySubjectsResolveMaterial(session)) return {
|
|
1122
|
+
});
|
|
1123
|
+
if (!await this.exactWalletSessionCapabilitySubjectsResolveMaterial(session)) return judged({
|
|
1138
1124
|
kind: "capability_unavailable",
|
|
1139
1125
|
session,
|
|
1140
1126
|
quota
|
|
1141
|
-
};
|
|
1142
|
-
return {
|
|
1127
|
+
});
|
|
1128
|
+
return judged({
|
|
1143
1129
|
kind: "active",
|
|
1144
1130
|
session,
|
|
1145
1131
|
quota
|
|
1146
|
-
};
|
|
1147
|
-
}
|
|
1148
|
-
async readExactStatusAuthority(row) {
|
|
1149
|
-
const authorityId = parseWalletAuthorityId(row.authority_id);
|
|
1150
|
-
if (!authorityId.ok) throw new Error("Stored V2 Wallet Session authority identity is invalid");
|
|
1151
|
-
return await this.walletAuthorityStore.readById(authorityId.value);
|
|
1132
|
+
});
|
|
1152
1133
|
}
|
|
1153
1134
|
async exactWalletSessionCapabilitySubjectsResolveMaterial(session) {
|
|
1154
1135
|
const materials = [];
|
|
@@ -1206,6 +1187,9 @@ var CloudflareD1AuthorizationStore = class {
|
|
|
1206
1187
|
session.quota_id AS session_quota_id,
|
|
1207
1188
|
session.principal_id AS session_principal_id,
|
|
1208
1189
|
session.wallet_id AS session_wallet_id,
|
|
1190
|
+
session.org_id AS session_org_id,
|
|
1191
|
+
session.project_id AS session_project_id,
|
|
1192
|
+
session.env_id AS session_env_id,
|
|
1209
1193
|
session.authority_id AS session_authority_id,
|
|
1210
1194
|
session.wallet_auth_method_id AS session_wallet_auth_method_id,
|
|
1211
1195
|
session.authority_digest_b64u AS session_authority_digest_b64u,
|
|
@@ -1274,7 +1258,8 @@ var CloudflareD1AuthorizationStore = class {
|
|
|
1274
1258
|
};
|
|
1275
1259
|
}
|
|
1276
1260
|
async readAuthorizedOperation(input) {
|
|
1277
|
-
|
|
1261
|
+
const row = await prepareAuthorizedOperationRead(this.database, this.namespace, input).first();
|
|
1262
|
+
return row ? await parseAuthorizedOperationRow(row) : null;
|
|
1278
1263
|
}
|
|
1279
1264
|
async readAuthorizedOperationById(input) {
|
|
1280
1265
|
const row = await this.database.prepare(`SELECT * FROM authorized_operations
|
|
@@ -1282,223 +1267,181 @@ var CloudflareD1AuthorizationStore = class {
|
|
|
1282
1267
|
LIMIT 1`).bind(this.namespace, input.tenantId, input.authorizedOperationId).first();
|
|
1283
1268
|
return row ? await parseAuthorizedOperationRow(row) : null;
|
|
1284
1269
|
}
|
|
1285
|
-
async
|
|
1286
|
-
const
|
|
1287
|
-
|
|
1288
|
-
|
|
1289
|
-
|
|
1270
|
+
async readPinnedOwnerWalletScope(input) {
|
|
1271
|
+
const { operation, walletId } = input;
|
|
1272
|
+
if (operation.operation.operation.capabilityKind !== CAPABILITY_KINDS.nearEd25519MpcSigning && operation.operation.operation.capabilityKind !== CAPABILITY_KINDS.evmEcdsaMpcSigning) throw new Error("Pinned owner wallet scope requires a signing operation");
|
|
1273
|
+
const row = await prepareAuthorizedOperationCommittedRead(this.database, this.namespace, operation).first();
|
|
1274
|
+
if (!row || row.authorized_operation_id !== operation.authorizedOperationId || row.authorization_source_kind !== operation.authorization.kind) throw new Error("Pinned owner operation is not claimed");
|
|
1275
|
+
if (operation.authorization.kind === "verified_step_up") {
|
|
1276
|
+
if (row.evidence_set_digest !== operation.authorization.evidenceSetDigest) throw new Error("Verified step-up operation is not claimed");
|
|
1277
|
+
return {
|
|
1278
|
+
orgId: this.walletSignerScope.orgId,
|
|
1279
|
+
projectId: this.walletSignerScope.projectId,
|
|
1280
|
+
projectEnvironmentId: this.walletSignerScope.envId
|
|
1281
|
+
};
|
|
1282
|
+
}
|
|
1283
|
+
if (row.authorization_id !== operation.authorization.authorizationGrantRef.authorizationId) throw new Error("Pinned owner Wallet Session scope is unavailable");
|
|
1284
|
+
return this.pinnedWalletSessionOwnerScope(row, walletId);
|
|
1285
|
+
}
|
|
1286
|
+
pinnedWalletSessionOwnerScope(row, walletId) {
|
|
1287
|
+
if (row.pinned_owner_wallet_id !== walletId) throw new Error("Pinned owner Wallet Session scope is unavailable");
|
|
1288
|
+
return {
|
|
1289
|
+
orgId: requireString(row.linked_scope_org_id, "operation.ownerScope.orgId"),
|
|
1290
|
+
projectId: requireString(row.linked_scope_project_id, "operation.ownerScope.projectId"),
|
|
1291
|
+
projectEnvironmentId: requireString(row.linked_scope_env_id, "operation.ownerScope.projectEnvironmentId")
|
|
1292
|
+
};
|
|
1293
|
+
}
|
|
1294
|
+
async readAuthorizedOperationForAdmission(input) {
|
|
1295
|
+
const row = await prepareAuthorizedOperationAdmissionRead({
|
|
1296
|
+
database: this.database,
|
|
1297
|
+
namespace: this.namespace,
|
|
1298
|
+
walletSignerScope: this.walletSignerScope,
|
|
1299
|
+
tenantId: input.tenantId,
|
|
1300
|
+
operationFingerprintDigest: input.operationFingerprintDigest,
|
|
1301
|
+
nowMs: requirePositiveInteger(input.nowMs, "operation replay time")
|
|
1302
|
+
}).first();
|
|
1303
|
+
if (!row) return null;
|
|
1304
|
+
if (row.authorization_source_active !== 0 && row.authorization_source_active !== 1) throw new Error("Authorized operation source status must be a SQL boolean");
|
|
1305
|
+
return {
|
|
1290
1306
|
row,
|
|
1291
|
-
operation: await parseAuthorizedOperationRow(row)
|
|
1292
|
-
|
|
1307
|
+
operation: await parseAuthorizedOperationRow(row),
|
|
1308
|
+
sourceActive: row.authorization_source_active === 1
|
|
1309
|
+
};
|
|
1293
1310
|
}
|
|
1294
|
-
|
|
1311
|
+
/** How an operation already admitted for this fingerprint answers another admission. */
|
|
1312
|
+
answerExistingAuthorizedOperation(existing, operation, material) {
|
|
1313
|
+
const replayMismatch = authorizedOperationReplayMismatch({
|
|
1314
|
+
existing: existing.row,
|
|
1315
|
+
incoming: operation,
|
|
1316
|
+
material,
|
|
1317
|
+
scope: this.walletSignerScope
|
|
1318
|
+
});
|
|
1319
|
+
if (replayMismatch) return replayMismatch;
|
|
1320
|
+
if (existing.operation.lifecycle === "completed") {
|
|
1321
|
+
if (existing.operation.authorization.kind === "authorization_grant" && !existing.sourceActive) return { kind: "authorization_grant_rejected" };
|
|
1322
|
+
return {
|
|
1323
|
+
kind: "replayed",
|
|
1324
|
+
operation: existing.operation,
|
|
1325
|
+
row: existing.row
|
|
1326
|
+
};
|
|
1327
|
+
}
|
|
1328
|
+
if (!existing.sourceActive) return authorizationSourceRejected(operation.authorization);
|
|
1329
|
+
return {
|
|
1330
|
+
kind: "operation_in_progress",
|
|
1331
|
+
operation: existing.operation,
|
|
1332
|
+
row: existing.row
|
|
1333
|
+
};
|
|
1334
|
+
}
|
|
1335
|
+
/**
|
|
1336
|
+
* The admission `admitAuthorizedOperation` would make, prepared for a batch
|
|
1337
|
+
* another store owns, after the same reads. It admits no ECDSA material:
|
|
1338
|
+
* that admission is conditional on the signer row, not a plain insert.
|
|
1339
|
+
*/
|
|
1340
|
+
async prepareAuthorizedOperationAdmission(input) {
|
|
1295
1341
|
const operation = await buildAuthorizedOperation(input.operation);
|
|
1296
|
-
if (operation.operation.operation.capabilityKind === CAPABILITY_KINDS.evmEcdsaMpcSigning
|
|
1297
|
-
|
|
1298
|
-
const existing = await this.readAuthorizedOperationRecord({
|
|
1342
|
+
if (operation.operation.operation.capabilityKind === CAPABILITY_KINDS.evmEcdsaMpcSigning) return { kind: "material_mismatch" };
|
|
1343
|
+
const existing = await this.readAuthorizedOperationForAdmission({
|
|
1299
1344
|
tenantId: operation.tenantId,
|
|
1300
|
-
operationFingerprintDigest: operation.operationFingerprintDigest
|
|
1345
|
+
operationFingerprintDigest: operation.operationFingerprintDigest,
|
|
1346
|
+
nowMs: operation.claimedAtMs
|
|
1301
1347
|
});
|
|
1302
1348
|
if (existing) {
|
|
1303
|
-
const
|
|
1304
|
-
|
|
1305
|
-
|
|
1306
|
-
|
|
1307
|
-
|
|
1308
|
-
|
|
1309
|
-
|
|
1310
|
-
|
|
1311
|
-
|
|
1312
|
-
|
|
1313
|
-
|
|
1314
|
-
|
|
1315
|
-
|
|
1316
|
-
|
|
1317
|
-
|
|
1318
|
-
|
|
1319
|
-
|
|
1320
|
-
|
|
1349
|
+
const result = this.answerExistingAuthorizedOperation(existing, operation, void 0);
|
|
1350
|
+
if (result.kind === "replayed" || result.kind === "operation_in_progress") return {
|
|
1351
|
+
kind: result.kind,
|
|
1352
|
+
operation: result.operation
|
|
1353
|
+
};
|
|
1354
|
+
return result;
|
|
1355
|
+
}
|
|
1356
|
+
return {
|
|
1357
|
+
kind: "prepared",
|
|
1358
|
+
statements: [prepareAuthorizedOperationInsert({
|
|
1359
|
+
database: this.database,
|
|
1360
|
+
namespace: this.namespace,
|
|
1361
|
+
walletSignerScope: this.walletSignerScope,
|
|
1362
|
+
operation,
|
|
1363
|
+
material: null
|
|
1364
|
+
})]
|
|
1365
|
+
};
|
|
1366
|
+
}
|
|
1367
|
+
classifyAuthorizedOperationAdmissionFailure(error) {
|
|
1368
|
+
return classifyAuthorizedOperationAdmissionError(error);
|
|
1369
|
+
}
|
|
1370
|
+
async admitAuthorizedOperation(input) {
|
|
1371
|
+
const result = await this.admitAuthorizedOperationRecord(input);
|
|
1372
|
+
if (result.kind === "claimed" || result.kind === "replayed" || result.kind === "operation_in_progress") return {
|
|
1373
|
+
kind: result.kind,
|
|
1374
|
+
operation: result.operation
|
|
1375
|
+
};
|
|
1376
|
+
return result;
|
|
1377
|
+
}
|
|
1378
|
+
async admitEcdsaWalletSessionOperation(input) {
|
|
1379
|
+
const result = await this.admitAuthorizedOperationRecord({
|
|
1380
|
+
operation: input.operation,
|
|
1381
|
+
material: input.material
|
|
1382
|
+
});
|
|
1383
|
+
switch (result.kind) {
|
|
1384
|
+
case "claimed":
|
|
1385
|
+
case "operation_in_progress": return {
|
|
1386
|
+
kind: result.kind,
|
|
1387
|
+
operation: result.operation,
|
|
1388
|
+
ownerScope: this.pinnedWalletSessionOwnerScope(result.row, input.material.walletId)
|
|
1321
1389
|
};
|
|
1390
|
+
case "replayed": return {
|
|
1391
|
+
kind: "replayed",
|
|
1392
|
+
operation: result.operation
|
|
1393
|
+
};
|
|
1394
|
+
case "authorization_grant_rejected":
|
|
1395
|
+
case "verified_step_up_rejected":
|
|
1396
|
+
case "wallet_session_quota_exhausted":
|
|
1397
|
+
case "material_mismatch": return result;
|
|
1398
|
+
default: {
|
|
1399
|
+
const unexpected = result;
|
|
1400
|
+
throw new Error(`Unexpected ECDSA admission: ${unexpected}`);
|
|
1401
|
+
}
|
|
1322
1402
|
}
|
|
1323
|
-
|
|
1324
|
-
|
|
1325
|
-
const
|
|
1403
|
+
}
|
|
1404
|
+
async admitAuthorizedOperationRecord(input) {
|
|
1405
|
+
const operation = await buildAuthorizedOperation(input.operation);
|
|
1406
|
+
if (operation.operation.operation.capabilityKind === CAPABILITY_KINDS.evmEcdsaMpcSigning && !input.material) return { kind: "material_mismatch" };
|
|
1407
|
+
if (input.material && input.material.kind === "ecdsa_material_activation" && (operation.operation.operation.capabilityKind !== CAPABILITY_KINDS.evmEcdsaMpcSigning || input.material.runtimePolicyScope.orgId !== operation.tenantId || input.material.materialActivation.capability !== operation.operation.capabilityId || input.material.materialActivation.material_owner !== input.material.walletId)) return { kind: "material_mismatch" };
|
|
1408
|
+
const existing = await this.readAuthorizedOperationForAdmission({
|
|
1409
|
+
tenantId: operation.tenantId,
|
|
1410
|
+
operationFingerprintDigest: operation.operationFingerprintDigest,
|
|
1411
|
+
nowMs: operation.claimedAtMs
|
|
1412
|
+
});
|
|
1413
|
+
if (existing) return this.answerExistingAuthorizedOperation(existing, operation, input.material);
|
|
1414
|
+
let committedRow;
|
|
1326
1415
|
try {
|
|
1327
|
-
const
|
|
1328
|
-
this.
|
|
1329
|
-
|
|
1330
|
-
|
|
1331
|
-
operation
|
|
1332
|
-
|
|
1333
|
-
|
|
1334
|
-
|
|
1335
|
-
|
|
1336
|
-
operation.operation.operationId,
|
|
1337
|
-
operation.operationFingerprintDigest,
|
|
1338
|
-
operation.operation.digests.laneDigest,
|
|
1339
|
-
operation.operation.digests.intentDigest,
|
|
1340
|
-
operation.operation.digests.displayDigest,
|
|
1341
|
-
source.kind,
|
|
1342
|
-
source.kind === "authorization_grant" ? source.authorizationGrantRef.authorizationId : null,
|
|
1343
|
-
source.kind === "verified_step_up" ? source.evidenceSetDigest : null,
|
|
1344
|
-
quota.kind === "consume_reusable_wallet_session" ? quota.quotaId : null,
|
|
1345
|
-
quota.kind,
|
|
1346
|
-
source.kind === "authorization_grant" ? source.authorizationGrantRef.kind : null,
|
|
1347
|
-
requirePositiveInteger(input.operation.claimedAtMs, "operation.claimedAtMs"),
|
|
1348
|
-
materialActivationId,
|
|
1349
|
-
input.material?.materialActivation.capability ?? null,
|
|
1350
|
-
input.material?.materialActivation.material_owner ?? null,
|
|
1351
|
-
input.material?.materialActivation.key_binding ?? null,
|
|
1352
|
-
input.material?.materialActivation.lifecycle_binding ?? null,
|
|
1353
|
-
input.material?.materialActivation.signing_worker ?? null,
|
|
1354
|
-
null,
|
|
1355
|
-
null,
|
|
1356
|
-
null,
|
|
1357
|
-
null,
|
|
1358
|
-
null,
|
|
1359
|
-
null,
|
|
1360
|
-
null,
|
|
1361
|
-
source.kind === "authorization_grant" ? this.walletSignerScope.orgId : null,
|
|
1362
|
-
source.kind === "authorization_grant" ? this.walletSignerScope.projectId : null,
|
|
1363
|
-
source.kind === "authorization_grant" ? this.walletSignerScope.envId : null
|
|
1364
|
-
];
|
|
1365
|
-
const result = await (input.material?.kind === "ecdsa_material_activation" ? this.database.prepare(`INSERT INTO authorized_operations (
|
|
1366
|
-
namespace, tenant_id, authorized_operation_id, audit_event_id,
|
|
1367
|
-
principal_id, capability_id, capability_kind, operation_kind, operation_id,
|
|
1368
|
-
operation_fingerprint_digest, lane_digest, intent_digest, display_digest,
|
|
1369
|
-
authorization_source_kind, authorization_id, evidence_set_digest,
|
|
1370
|
-
quota_id, quota_kind, authorization_grant_kind, lifecycle_kind, result_kind,
|
|
1371
|
-
result_digest, result_status, result_content_type, result_body_text,
|
|
1372
|
-
claimed_at_ms, completed_at_ms,
|
|
1373
|
-
material_activation_id, material_activation_capability,
|
|
1374
|
-
material_activation_owner, material_activation_key_binding,
|
|
1375
|
-
material_activation_lifecycle_binding, material_activation_signing_worker,
|
|
1376
|
-
linked_wallet_id, linked_enrollment_id, linked_device_id,
|
|
1377
|
-
linked_wallet_key_id, linked_lane_id, linked_lane_share_epoch,
|
|
1378
|
-
linked_revocation_epoch, linked_scope_org_id, linked_scope_project_id,
|
|
1379
|
-
linked_scope_env_id
|
|
1380
|
-
) SELECT ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?,
|
|
1381
|
-
'claimed', 'pending', NULL, NULL, NULL, NULL, ?, NULL, ?,
|
|
1382
|
-
?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?
|
|
1383
|
-
WHERE ${ECDSA_SIGNER_MATCH}`).bind(...values, ...ecdsaSignerMatchBindings(this.walletSignerScope, input.material)) : this.database.prepare(`INSERT INTO authorized_operations (
|
|
1384
|
-
namespace, tenant_id, authorized_operation_id, audit_event_id,
|
|
1385
|
-
principal_id, capability_id, capability_kind, operation_kind, operation_id,
|
|
1386
|
-
operation_fingerprint_digest, lane_digest, intent_digest, display_digest,
|
|
1387
|
-
authorization_source_kind, authorization_id, evidence_set_digest,
|
|
1388
|
-
quota_id, quota_kind, authorization_grant_kind, lifecycle_kind, result_kind,
|
|
1389
|
-
result_digest, result_status, result_content_type, result_body_text,
|
|
1390
|
-
claimed_at_ms, completed_at_ms,
|
|
1391
|
-
material_activation_id, material_activation_capability,
|
|
1392
|
-
material_activation_owner, material_activation_key_binding,
|
|
1393
|
-
material_activation_lifecycle_binding, material_activation_signing_worker,
|
|
1394
|
-
linked_wallet_id, linked_enrollment_id, linked_device_id,
|
|
1395
|
-
linked_wallet_key_id, linked_lane_id, linked_lane_share_epoch,
|
|
1396
|
-
linked_revocation_epoch, linked_scope_org_id, linked_scope_project_id,
|
|
1397
|
-
linked_scope_env_id
|
|
1398
|
-
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?,
|
|
1399
|
-
'claimed', 'pending', NULL, NULL, NULL, NULL, ?, NULL, ?,
|
|
1400
|
-
?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`).bind(...values)).run();
|
|
1416
|
+
const statement = prepareAuthorizedOperationInsert({
|
|
1417
|
+
database: this.database,
|
|
1418
|
+
namespace: this.namespace,
|
|
1419
|
+
walletSignerScope: this.walletSignerScope,
|
|
1420
|
+
operation,
|
|
1421
|
+
material: input.material ?? null
|
|
1422
|
+
});
|
|
1423
|
+
const [result, readback] = await this.database.batch([statement, prepareAuthorizedOperationCommittedRead(this.database, this.namespace, operation)]);
|
|
1424
|
+
if (!result?.success || !readback?.success) throw new Error("authorized operation admission batch returned incomplete results");
|
|
1401
1425
|
if (input.material && d1ChangedRows(result) === 0) return { kind: "material_mismatch" };
|
|
1426
|
+
committedRow = readback.results?.[0] ?? null;
|
|
1402
1427
|
} catch (error) {
|
|
1403
|
-
const raced = await this.
|
|
1428
|
+
const raced = await this.readAuthorizedOperationForAdmission({
|
|
1404
1429
|
tenantId: operation.tenantId,
|
|
1405
|
-
operationFingerprintDigest: operation.operationFingerprintDigest
|
|
1430
|
+
operationFingerprintDigest: operation.operationFingerprintDigest,
|
|
1431
|
+
nowMs: operation.claimedAtMs
|
|
1406
1432
|
});
|
|
1407
|
-
if (raced)
|
|
1408
|
-
const replayMismatch = authorizedOperationReplayMismatch({
|
|
1409
|
-
existing: raced.row,
|
|
1410
|
-
incoming: operation,
|
|
1411
|
-
material: input.material,
|
|
1412
|
-
scope: this.walletSignerScope
|
|
1413
|
-
});
|
|
1414
|
-
if (replayMismatch) return replayMismatch;
|
|
1415
|
-
if (raced.operation.lifecycle === "completed") {
|
|
1416
|
-
if (raced.operation.authorization.kind === "authorization_grant" && !await this.isAuthorizedOperationSourceActive(raced.row, operation.claimedAtMs)) return { kind: "authorization_grant_rejected" };
|
|
1417
|
-
return {
|
|
1418
|
-
kind: "replayed",
|
|
1419
|
-
operation: raced.operation
|
|
1420
|
-
};
|
|
1421
|
-
}
|
|
1422
|
-
if (!await this.isAuthorizedOperationSourceActive(raced.row, operation.claimedAtMs)) return authorizationSourceRejected(operation.authorization);
|
|
1423
|
-
return {
|
|
1424
|
-
kind: "operation_in_progress",
|
|
1425
|
-
operation: raced.operation
|
|
1426
|
-
};
|
|
1427
|
-
}
|
|
1433
|
+
if (raced) return this.answerExistingAuthorizedOperation(raced, operation, input.material);
|
|
1428
1434
|
const triggerFailure = classifyAuthorizedOperationAdmissionError(error);
|
|
1429
1435
|
if (triggerFailure) return triggerFailure;
|
|
1430
1436
|
throw error;
|
|
1431
1437
|
}
|
|
1432
|
-
|
|
1433
|
-
tenantId: operation.tenantId,
|
|
1434
|
-
operationFingerprintDigest: operation.operationFingerprintDigest
|
|
1435
|
-
});
|
|
1436
|
-
if (!committed) throw new Error("authorized operation admission could not be read back");
|
|
1438
|
+
if (!committedRow) throw new Error("authorized operation admission could not be read back");
|
|
1437
1439
|
return {
|
|
1438
1440
|
kind: "claimed",
|
|
1439
|
-
operation:
|
|
1441
|
+
operation: await parseAuthorizedOperationRow(committedRow),
|
|
1442
|
+
row: committedRow
|
|
1440
1443
|
};
|
|
1441
1444
|
}
|
|
1442
|
-
async isAuthorizedOperationSourceActive(row, nowMs) {
|
|
1443
|
-
const sourceKind = requireString(row.authorization_source_kind, "operation.authorization.kind");
|
|
1444
|
-
if (sourceKind === "authorization_grant") {
|
|
1445
|
-
const scope = [
|
|
1446
|
-
row.linked_scope_org_id,
|
|
1447
|
-
row.linked_scope_project_id,
|
|
1448
|
-
row.linked_scope_env_id
|
|
1449
|
-
];
|
|
1450
|
-
if (scope.some((value) => typeof value !== "string" || value.length === 0)) return false;
|
|
1451
|
-
if (scope[0] !== this.walletSignerScope.orgId || scope[1] !== this.walletSignerScope.projectId || scope[2] !== this.walletSignerScope.envId) return false;
|
|
1452
|
-
return await this.database.prepare(`SELECT 1 AS active
|
|
1453
|
-
FROM wallet_session_authorizations_v2 AS session
|
|
1454
|
-
JOIN wallet_authorities AS authority
|
|
1455
|
-
ON authority.namespace = session.namespace
|
|
1456
|
-
AND authority.org_id = session.org_id
|
|
1457
|
-
AND authority.project_id = session.project_id
|
|
1458
|
-
AND authority.env_id = session.env_id
|
|
1459
|
-
AND authority.authority_id = session.authority_id
|
|
1460
|
-
AND authority.wallet_id = session.wallet_id
|
|
1461
|
-
JOIN wallet_auth_methods AS auth_method
|
|
1462
|
-
ON auth_method.namespace = session.namespace
|
|
1463
|
-
AND auth_method.org_id = session.org_id
|
|
1464
|
-
AND auth_method.project_id = session.project_id
|
|
1465
|
-
AND auth_method.env_id = session.env_id
|
|
1466
|
-
AND auth_method.wallet_auth_method_id = session.wallet_auth_method_id
|
|
1467
|
-
AND auth_method.wallet_id = session.wallet_id
|
|
1468
|
-
AND auth_method.wallet_authority_id = session.authority_id
|
|
1469
|
-
WHERE session.namespace = ?
|
|
1470
|
-
AND session.org_id = ?
|
|
1471
|
-
AND session.project_id = ?
|
|
1472
|
-
AND session.env_id = ?
|
|
1473
|
-
AND session.tenant_id = ?
|
|
1474
|
-
AND session.authorization_id = ?
|
|
1475
|
-
AND session.principal_id = ?
|
|
1476
|
-
AND (? = 'quota_neutral' OR session.quota_id = ?)
|
|
1477
|
-
AND session.retired_at_ms IS NULL
|
|
1478
|
-
AND session.expires_at_ms > ?
|
|
1479
|
-
AND authority.lifecycle_state = 'active'
|
|
1480
|
-
AND authority.authority_digest_b64u = session.authority_digest_b64u
|
|
1481
|
-
AND authority.revocation_epoch = session.authority_revocation_epoch
|
|
1482
|
-
AND auth_method.status = 'active'
|
|
1483
|
-
LIMIT 1`).bind(this.namespace, ...scope, requireString(row.tenant_id, "operation.tenantId"), requireString(row.authorization_id, "operation.authorizationId"), requireString(row.principal_id, "operation.principalId"), requireString(row.quota_kind, "operation.quota.kind"), row.quota_id, requirePositiveInteger(nowMs, "operation replay time")).first() !== null;
|
|
1484
|
-
}
|
|
1485
|
-
if (sourceKind !== "verified_step_up") return false;
|
|
1486
|
-
const capabilityKind = requireString(row.capability_kind, "operation.capabilityKind");
|
|
1487
|
-
return await this.database.prepare(`SELECT 1 AS active
|
|
1488
|
-
FROM verified_wallet_operation_evidence_sets AS evidence
|
|
1489
|
-
WHERE evidence.namespace = ?
|
|
1490
|
-
AND evidence.tenant_id = ?
|
|
1491
|
-
AND evidence.evidence_set_digest = ?
|
|
1492
|
-
AND evidence.principal_id = ?
|
|
1493
|
-
AND evidence.capability_kind = ?
|
|
1494
|
-
AND evidence.operation_kind = ?
|
|
1495
|
-
AND evidence.lane_digest = ?
|
|
1496
|
-
AND evidence.intent_digest = ?
|
|
1497
|
-
AND evidence.display_digest = ?
|
|
1498
|
-
AND evidence.assurance = 'step_up'
|
|
1499
|
-
AND evidence.expires_at_ms > ?
|
|
1500
|
-
LIMIT 1`).bind(this.namespace, requireString(row.tenant_id, "operation.tenantId"), requireString(row.evidence_set_digest, "operation.evidenceSetDigest"), requireString(row.principal_id, "operation.principalId"), capabilityKind, requireString(row.operation_kind, "operation.operationKind"), requireString(row.lane_digest, "operation.laneDigest"), requireString(row.intent_digest, "operation.intentDigest"), requireString(row.display_digest, "operation.displayDigest"), requirePositiveInteger(nowMs, "operation replay time")).first() !== null;
|
|
1501
|
-
}
|
|
1502
1445
|
async completeAuthorizedOperation(input) {
|
|
1503
1446
|
const operation = input.operation;
|
|
1504
1447
|
const response = parseAuthorizedOperationReplayResponse(input.response);
|
|
@@ -1797,9 +1740,16 @@ function parseWalletSessionAuthorizationV2WithSubjects(row, capabilitySubjects)
|
|
|
1797
1740
|
expiresAtMs: row.session_expires_at_ms
|
|
1798
1741
|
});
|
|
1799
1742
|
}
|
|
1743
|
+
/** The authority and auth method a joined session row carries, as read with it. */
|
|
1744
|
+
async function joinedAuthorityAndMethod(row) {
|
|
1745
|
+
return {
|
|
1746
|
+
authority: row.authority_id === null || row.authority_id === void 0 ? null : await parseD1WalletAuthorityRow(row),
|
|
1747
|
+
authMethod: row.auth_method_record_json === null || row.auth_method_record_json === void 0 ? null : normalizeWalletAuthMethodV2(parseD1JsonColumn(row.auth_method_record_json))
|
|
1748
|
+
};
|
|
1749
|
+
}
|
|
1800
1750
|
function parseLiveWalletSessionAuthorizationV2Row(row, input) {
|
|
1801
1751
|
if (row.session_retired_at_ms !== null && row.session_retired_at_ms !== void 0) throw new Error("Stored V2 Wallet Session authorization is retired");
|
|
1802
|
-
const session =
|
|
1752
|
+
const session = parsePersistedWalletSessionAuthorizationV2(parseD1JsonColumn(row.session_record_json));
|
|
1803
1753
|
if (!walletSessionAuthorizationV2RowMatches(row, session)) throw new Error("Stored V2 Wallet Session authorization columns disagree with record");
|
|
1804
1754
|
if (!walletSessionAuthorizationV2RecordsEqual(parseWalletSessionAuthorizationV2WithSubjects(row, parseD1JsonColumn(row.session_capability_subjects_json)), session)) throw new Error("Stored V2 Wallet Session capability subjects disagree with record");
|
|
1805
1755
|
if (row.authority_id !== String(session.authorityId) || row.authority_wallet_id !== String(session.walletId) || row.authority_lifecycle_state !== "active" || row.authority_digest_b64u !== String(session.authorityDigestB64u) || integerColumn(row.authority_revocation_epoch, "authority.revocationEpoch") !== session.authorityRevocationEpoch || row.auth_method_id !== String(session.walletAuthMethodId) || row.auth_method_wallet_id !== String(session.walletId) || row.auth_method_authority_id !== String(session.authorityId) || row.auth_method_status !== "active") throw new Error("Stored V2 Wallet Session authority provenance is no longer active");
|