@seams/wallet-server 0.8.0 → 0.9.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/THIRD_PARTY_NOTICES.md +7 -1
- package/artifact-manifest.json +196 -41
- package/cloudflare-router-ab/build/deriver-a/build-stamp.json +1 -1
- package/cloudflare-router-ab/build/deriver-a/index.js +2 -2
- package/cloudflare-router-ab/build/deriver-a/index_bg.wasm +0 -0
- package/cloudflare-router-ab/build/deriver-b/build-stamp.json +1 -1
- package/cloudflare-router-ab/build/deriver-b/index.js +2 -2
- package/cloudflare-router-ab/build/deriver-b/index_bg.wasm +0 -0
- package/cloudflare-router-ab/build/local-tools/darwin-arm64/router_ab_local_init +0 -0
- package/cloudflare-router-ab/build/local-tools/darwin-x64/router_ab_local_init +0 -0
- package/cloudflare-router-ab/build/local-tools/linux-x64/router_ab_local_init +0 -0
- package/cloudflare-router-ab/build/router/build-stamp.json +1 -1
- package/cloudflare-router-ab/build/router/index.js +2 -2
- package/cloudflare-router-ab/build/router/index_bg.wasm +0 -0
- package/cloudflare-router-ab/build/signing-worker/build-stamp.json +1 -1
- package/cloudflare-router-ab/build/signing-worker/index.js +2 -2
- package/cloudflare-router-ab/build/signing-worker/index_bg.wasm +0 -0
- package/cloudflare-router-ab/build/tenant-root-control-plane/build-stamp.json +1 -1
- package/cloudflare-router-ab/build/tenant-root-control-plane/index.js +2 -2
- package/cloudflare-router-ab/build/tenant-root-control-plane/index_bg.wasm +0 -0
- package/cloudflare-router-ab/migrations/deriver-a/0019_wallet_object_addresses.sql +10 -0
- package/cloudflare-router-ab/migrations/deriver-b/0019_wallet_object_addresses.sql +10 -0
- package/cloudflare-router-ab/scripts/prepare-local-runtime-config.mjs +3 -117
- package/cloudflare-router-ab/wrangler.deriver-a.toml +0 -8
- package/cloudflare-router-ab/wrangler.deriver-b.toml +24 -8
- package/cloudflare-router-ab/wrangler.router.toml +0 -2
- package/cloudflare-router-ab/wrangler.signing-worker.toml +29 -0
- package/dist/esm/authorization/domain.js +3 -2
- package/dist/esm/authorization/ed25519WalletSessionAdmission.js +0 -0
- package/dist/esm/authorization/service.js +64 -36
- package/dist/esm/cloud-host.js +24 -19
- package/dist/esm/core/EmailOtpRecords.js +29 -6
- package/dist/esm/core/ThresholdService/routerAb/ecdsaDerivationPoolFillHandlers.js +2 -0
- package/dist/esm/core/ThresholdService/routerAb/ecdsaDerivationPresignBridge.js +10 -0
- package/dist/esm/core/ThresholdService/routerAb/internalServiceHttp.js +1 -0
- package/dist/esm/core/ThresholdService/validation.js +2 -2
- package/dist/esm/core/authService/nearPrivateKeySigning.js +1 -1
- package/dist/esm/core/authService/webauthn.js +1 -1
- package/dist/esm/core/d1Ed25519SignerRead.js +55 -0
- package/dist/esm/core/d1WalletStore.js +14 -11
- package/dist/esm/core/deviceLinking/linkedDeviceEmailOtpGrant.js +2 -2
- package/dist/esm/core/deviceLinking/linkedDeviceManagement.js +1 -1
- package/dist/esm/core/deviceLinking/linkedDeviceSessionRecord.js +2 -2
- package/dist/esm/core/emailOtpD1Statements.js +1 -0
- package/dist/esm/core/nearRelayerAccountProvisioning.js +1 -1
- package/dist/esm/core/routerAbSigning/RouterAbEcdsaPresignRuntime.js +4 -0
- package/dist/esm/core/signingLanes/WalletExecutionLaneProjection.js +1 -1
- package/dist/esm/core/signingMaterial/ordinaryInactiveSignerMaterialReservation.js +1 -0
- package/dist/esm/hosted-wallet-gateway.js +93 -10
- package/dist/esm/localHostedWalletGatewayHandler.js +12 -9
- package/dist/esm/localIntendedYaoSigningFault.js +2 -30
- package/dist/esm/localRegistrationSetupAuthority.js +8 -1
- package/dist/esm/router/auth/commonRouterUtils.js +17 -10
- package/dist/esm/router/auth/routerApiCredentialAuth.js +26 -7
- package/dist/esm/router/auth/walletRegistrationContext.js +49 -0
- package/dist/esm/router/auth/webAuthnCredentialCodecs.js +1 -1
- package/dist/esm/router/cloudflare/d1/auth/d1AuthorizationAssembly.js +4 -3
- package/dist/esm/router/cloudflare/d1/auth/d1AuthorizedOperationRouteService.js +2 -0
- package/dist/esm/router/cloudflare/d1/auth/d1EmailOtpRouteService.js +25 -0
- package/dist/esm/router/cloudflare/d1/auth/d1RouterApiAuthConfig.js +14 -6
- package/dist/esm/router/cloudflare/d1/auth/d1RouterApiAuthService.js +44 -40
- package/dist/esm/router/cloudflare/d1/auth/walletSessionCredentialReaders.js +17 -1
- package/dist/esm/router/cloudflare/d1/authorization/authorizedOperationStatements.js +35 -5
- package/dist/esm/router/cloudflare/d1/authorization/d1AuthorizationStore.js +258 -99
- package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceAuthorityInstallService.js +31 -4
- package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceOwnerAuthorizationProvider.js +1 -1
- package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceRequestProofNonceStore.js +1 -1
- package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceSessionRecords.js +1 -1
- package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceTargetCredentialProvider.js +1 -1
- package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceTargetPlanner.js +1 -1
- package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceVerifiedLinkBuilder.js +1 -1
- package/dist/esm/router/cloudflare/d1/ed25519Yao/d1Ed25519YaoLifecycleDecisionStore.js +11 -2
- package/dist/esm/router/cloudflare/d1/ed25519Yao/d1Ed25519YaoProductRegistrationPartitionedStateStore.js +100 -10
- package/dist/esm/router/cloudflare/d1/ed25519Yao/d1Ed25519YaoStateWriteFence.js +92 -0
- package/dist/esm/router/cloudflare/d1/ed25519Yao/d1WalletCeremonyActivity.js +77 -0
- package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpChallengeIssuer.js +14 -8
- package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpChallengeStore.js +14 -8
- package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpChallengeVerifier.js +3 -1
- package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpRateLimitStore.js +58 -38
- package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpRecords.js +27 -20
- package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpRecoveryService.js +1 -0
- package/dist/esm/router/cloudflare/d1/emailOtp/d1GoogleEmailOtpSessionResolver.js +1 -0
- package/dist/esm/router/cloudflare/d1/oidc/d1OidcBoundary.js +1 -1
- package/dist/esm/router/cloudflare/d1/passkeyCustody/d1WalletCustodyCommitStore.js +18 -7
- package/dist/esm/router/cloudflare/d1/registration/d1RegistrationCeremonyRecordStore.js +75 -14
- package/dist/esm/router/cloudflare/d1/registration/d1RegistrationCeremonyRecords.js +1 -1
- package/dist/esm/router/cloudflare/d1/registration/d1RegistrationCeremonyStore.js +49 -29
- package/dist/esm/router/cloudflare/d1/registration/d1RegistrationSessionTransaction.js +28 -0
- package/dist/esm/router/cloudflare/d1/registration/d1RegistrationSetupSupport.js +11 -1
- package/dist/esm/router/cloudflare/d1/registration/d1WalletExecutionAuthority.js +168 -0
- package/dist/esm/router/cloudflare/d1/registration/d1WalletOperationStore.js +53 -0
- package/dist/esm/router/cloudflare/d1/registration/d1WalletRegistrationCommitStore.js +83 -42
- package/dist/esm/router/cloudflare/d1/registration/d1WalletRegistrationInitialSession.js +33 -0
- package/dist/esm/router/cloudflare/d1/registration/d1WalletRegistrationPreparation.js +16 -0
- package/dist/esm/router/cloudflare/d1/registration/d1WalletRegistrationRead.js +58 -0
- package/dist/esm/router/cloudflare/d1/registration/d1WalletRegistrationService.js +439 -500
- package/dist/esm/router/cloudflare/d1/registration/d1WalletRegistrationSetup.js +1 -1
- package/dist/esm/router/cloudflare/d1/registration/d1WalletRegistrationSetupExecution.js +104 -90
- package/dist/esm/router/cloudflare/d1/registration/walletRegistrationEstablishedSessionIssuer.js +78 -44
- package/dist/esm/router/cloudflare/d1/registration/walletRegistrationSessionCommitReceipt.js +11 -35
- package/dist/esm/router/cloudflare/d1/signingAdmission/d1RouterAbNormalSigningAdmissionStore.js +98 -39
- package/dist/esm/router/cloudflare/d1/versionedJson/d1VersionedJsonRecordStore.js +12 -9
- package/dist/esm/router/cloudflare/d1/wallet/authorizationSnapshotLayout.js +168 -0
- package/dist/esm/router/cloudflare/d1/wallet/d1WalletAddSignerFinalizeRecord.js +1 -1
- package/dist/esm/router/cloudflare/d1/wallet/d1WalletAddSignerService.js +15 -6
- package/dist/esm/router/cloudflare/d1/wallet/d1WalletAuthMethodService.js +3 -40
- package/dist/esm/router/cloudflare/d1/wallet/d1WalletAuthorityStore.js +54 -1
- package/dist/esm/router/cloudflare/d1/wallet/d1WalletAuthorizationCleanup.js +157 -0
- package/dist/esm/router/cloudflare/d1/wallet/d1WalletAuthorizationFreeze.js +56 -0
- package/dist/esm/router/cloudflare/d1/wallet/d1WalletAuthorizationHistory.js +238 -0
- package/dist/esm/router/cloudflare/d1/wallet/d1WalletAuthorizationIntake.js +287 -0
- package/dist/esm/router/cloudflare/d1/wallet/d1WalletAuthorizationSnapshot.js +295 -0
- package/dist/esm/router/cloudflare/d1/wallet/d1WalletRelocationApprovals.js +140 -0
- package/dist/esm/router/cloudflare/d1/wallet/d1WalletRelocationChallenges.js +170 -0
- package/dist/esm/router/cloudflare/d1/wallet/d1WalletRelocationEmailOtp.js +60 -0
- package/dist/esm/router/cloudflare/d1/wallet/d1WalletRelocationOwner.js +33 -0
- package/dist/esm/router/cloudflare/d1/wallet/d1WalletRelocationOwnerRequest.js +74 -0
- package/dist/esm/router/cloudflare/d1/wallet/d1WalletRelocationPasskey.js +77 -0
- package/dist/esm/router/cloudflare/d1/wallet/d1WalletRelocationReadAccess.js +37 -0
- package/dist/esm/router/cloudflare/d1/wallet/d1WalletRelocationSessions.js +97 -0
- package/dist/esm/router/cloudflare/d1/wallet/d1WalletRelocationWriteBlock.js +133 -0
- package/dist/esm/router/cloudflare/d1/walletObjectAddresses.js +47 -0
- package/dist/esm/router/cloudflare/d1/webauthn/d1WebAuthnAuthService.js +1 -1
- package/dist/esm/router/cloudflare/runtime/routerAbServiceBindings.js +32 -1
- package/dist/esm/router/cloudflare/runtime/staticWalletConsoleBinding.js +20 -8
- package/dist/esm/router/cloudflare/runtime/walletAuthorizationRelocationRoutes.js +488 -0
- package/dist/esm/router/cloudflare/runtime/walletConsoleOps.js +1 -1
- package/dist/esm/router/cloudflare/runtime/walletConsoleOpsClient.js +26 -6
- package/dist/esm/router/cloudflare/runtime/walletControlOps.js +3 -0
- package/dist/esm/router/cloudflare/runtime/walletGateway.js +1 -1
- package/dist/esm/router/cloudflare/runtime/walletObjectAddresses.js +105 -0
- package/dist/esm/router/cloudflare/runtime/walletPlacementRoutes.js +339 -0
- package/dist/esm/router/cloudflare/runtime/walletRelocationDeriver.js +244 -0
- package/dist/esm/router/cloudflare/runtime/walletRelocationEcdsa.js +212 -0
- package/dist/esm/router/cloudflare/runtime/walletRelocationEd25519.js +172 -0
- package/dist/esm/router/cloudflare/runtime/walletRelocationOps.js +183 -0
- package/dist/esm/router/cloudflare/runtime/walletRelocationPresign.js +185 -0
- package/dist/esm/router/cloudflare/runtime/walletRelocationSource.js +221 -0
- package/dist/esm/router/cloudflare/signingLanes/cloudflareOrdinaryInactiveSignerMaterialReservation.js +30 -8
- package/dist/esm/router/cloudflare-adaptor.js +8 -8
- package/dist/esm/router/cloudflare.js +34115 -32240
- package/dist/esm/router/domains/ecdsa/routerAbEcdsaStrictRegistration.js +35 -9
- package/dist/esm/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoCapabilityCommit.js +42 -0
- package/dist/esm/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistration.js +32 -6
- package/dist/esm/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistrationPartitionedStateStore.js +61 -1
- package/dist/esm/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistrationPersistence.js +70 -3
- package/dist/esm/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistrationRequestScopedRuntime.js +59 -87
- package/dist/esm/router/domains/ed25519Yao/export/routerAbEd25519YaoExport.js +52 -22
- package/dist/esm/router/domains/ed25519Yao/export/routerAbEd25519YaoExportRequestScopedCloudflare.js +10 -7
- package/dist/esm/router/domains/ed25519Yao/recovery/routerAbEd25519YaoRecovery.js +108 -78
- package/dist/esm/router/domains/ed25519Yao/recovery/routerAbEd25519YaoRecoveryRequestScopedCloudflare.js +19 -5
- package/dist/esm/router/domains/ed25519Yao/recovery/routerAbEd25519YaoRecoveryWalletSessionAuthorization.js +71 -22
- package/dist/esm/router/domains/ed25519Yao/registration/routerAbEd25519YaoHttpRegistrationBackend.js +37 -25
- package/dist/esm/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistration.js +3 -3
- package/dist/esm/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistrationExecutionRecord.js +2 -1
- package/dist/esm/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistrationIntentAuthorization.js +24 -3
- package/dist/esm/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistrationRequestScopedCloudflare.js +4 -3
- package/dist/esm/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistrationSideEffectBoundary.js +20 -7
- package/dist/esm/router/domains/ed25519Yao/routerAbEd25519YaoGatewayEnvelope.js +7 -1
- package/dist/esm/router/domains/emailOtp/emailOtpRouteHandlers.js +2 -2
- package/dist/esm/router/domains/passkeyCustody/passkeyCustodyEnvelopeRetrieval.js +1 -1
- package/dist/esm/router/domains/passkeyCustody/registrationCustodyOutcome.js +34 -18
- package/dist/esm/router/domains/passkeyCustody/walletCustodyRegistrationAdmission.js +2 -2
- package/dist/esm/router/domains/passkeyCustody/walletCustodyRegistrationCommit.js +16 -6
- package/dist/esm/router/domains/signingOperations/authorizedOperationWire.js +73 -0
- package/dist/esm/router/domains/signingOperations/ecdsaSigningResponse.js +31 -0
- package/dist/esm/router/domains/signingOperations/ed25519AuthorizedOperationReceipt.js +1 -1
- package/dist/esm/router/domains/signingOperations/routerAbEcdsaDerivationNormalSigningRoute.js +2 -1
- package/dist/esm/router/domains/signingOperations/routerAbEd25519NormalSigningRoute.js +31 -121
- package/dist/esm/router/domains/signingOperations/routerAbNormalSigningAdmission.js +2 -93
- package/dist/esm/router/domains/signingOperations/routerAbPrivateSigningWorker.js +1 -1
- package/dist/esm/router/domains/signingOperations/signingPrepareSession.js +33 -0
- package/dist/esm/router/domains/walletRegistration/registrationSessionSeal.js +121 -0
- package/dist/esm/router/domains/walletRegistration/walletRegistrationReservation.js +4 -4
- package/dist/esm/router/domains/walletRegistration/walletRegistrationRoutes.js +46 -157
- package/dist/esm/router/domains/walletRegistration/walletRegistrationSetupPayload.js +1 -1
- package/dist/esm/router/express.js +764 -894
- package/dist/esm/router/framework/http.js +2 -1
- package/dist/esm/router/transport/fetch/createFetchRouter.js +2 -2
- package/dist/esm/router/transport/fetch/routes/auth.js +1 -1
- package/dist/esm/router/transport/fetch/routes/deviceLinking.js +3 -3
- package/dist/esm/router/transport/fetch/routes/deviceLinkingOwnerAuthorization.js +2 -2
- package/dist/esm/router/transport/fetch/routes/ed25519AuthorizedOperationRevalidation.js +65 -0
- package/dist/esm/router/transport/fetch/routes/normalSigningRouterProxy.js +13 -3
- package/dist/esm/router/transport/fetch/routes/passkeyCustody.js +3 -3
- package/dist/esm/router/transport/fetch/routes/sessions.js +3 -2
- package/dist/esm/router/transport/fetch/routes/thresholdEcdsa.js +67 -130
- package/dist/esm/router/transport/fetch/routes/thresholdEd25519.js +76 -212
- package/dist/esm/router/transport/fetch/routes/walletExecutionLanePreflight.js +18 -41
- package/dist/esm/router/transport/fetch/routes/walletRegistration.js +6 -5
- package/dist/esm/router/transport/fetch/routes/webauthnAuthenticators.js +1 -1
- package/dist/esm/shared-ts/src/authorization/index.js +1 -1
- package/dist/esm/shared-ts/src/authorization/walletAuthority.js +2 -2
- package/dist/esm/shared-ts/src/device-linking/activeWalletSession.js +12 -2
- package/dist/esm/shared-ts/src/device-linking/digests.js +1 -1
- package/dist/esm/shared-ts/src/device-linking/ed25519ExportRoot.js +1 -1
- package/dist/esm/shared-ts/src/device-linking/index.js +1 -1
- package/dist/esm/shared-ts/src/device-linking/parsers.js +1 -1
- package/dist/esm/shared-ts/src/device-linking/sourceContribution.js +1 -1
- package/dist/esm/shared-ts/src/device-linking/wireFields.js +1 -1
- package/dist/esm/shared-ts/src/near/nearClient.js +1 -1
- package/dist/esm/shared-ts/src/signing-lanes/ownerContinuity.js +2 -2
- package/dist/esm/shared-ts/src/utils/ecdsaServerTiming.js +6 -1
- package/dist/esm/shared-ts/src/utils/emailOtpDomain.js +4 -2
- package/dist/esm/shared-ts/src/utils/routerAbEcdsaDerivation.js +1 -1
- package/dist/esm/shared-ts/src/utils/routerAbPublicKeyset.js +0 -27
- package/dist/esm/shared-ts/src/wallet-recovery/walletRecoveryEcdsaPossession.js +1 -1
- package/dist/esm/threshold/session/signingSessionSeal/options.js +1 -1
- package/dist/esm/wasm/near_signer/pkg/wasm_signer_worker_bg.wasm +0 -0
- package/dist/types/shared-ts/src/device-linking/activeWalletSession.d.ts +2 -1
- package/dist/types/shared-ts/src/device-linking/contracts.d.ts +10 -0
- package/dist/types/shared-ts/src/threshold/ed25519OperationFingerprint.d.ts +2 -1
- package/dist/types/shared-ts/src/utils/emailOtpDomain.d.ts +3 -1
- package/dist/types/shared-ts/src/utils/routerAbPublicKeyset.d.ts +0 -9
- package/dist/types/shared-ts/src/utils/walletManagementProtocol.d.ts +1 -1
- package/dist/types/wallet-server/src/authorization/domain.d.ts +17 -1
- package/dist/types/wallet-server/src/authorization/ecdsaWalletSessionAdmission.d.ts +1 -0
- package/dist/types/wallet-server/src/authorization/ed25519WalletSessionAdmission.d.ts +35 -0
- package/dist/types/wallet-server/src/authorization/ed25519WalletSessionAdmission.typecheck.d.ts +2 -0
- package/dist/types/wallet-server/src/authorization/service.d.ts +43 -5
- package/dist/types/wallet-server/src/authorization/sessionRouting.d.ts +2 -0
- package/dist/types/wallet-server/src/cloud-host.d.ts +7 -3
- package/dist/types/wallet-server/src/core/EmailOtpRecords.d.ts +2 -1
- package/dist/types/wallet-server/src/core/EmailOtpStores.d.ts +19 -5
- package/dist/types/wallet-server/src/core/ThresholdService/routerAb/ecdsaDerivationPoolFillHandlers.d.ts +1 -0
- package/dist/types/wallet-server/src/core/ThresholdService/routerAb/ecdsaDerivationPresignBridge.d.ts +6 -0
- package/dist/types/wallet-server/src/core/ThresholdService/routerAb/internalServiceHttp.d.ts +1 -0
- package/dist/types/wallet-server/src/core/d1Ed25519SignerRead.d.ts +17 -0
- package/dist/types/wallet-server/src/core/d1WalletStore.d.ts +6 -0
- package/dist/types/wallet-server/src/core/emailOtpD1Statements.d.ts +1 -0
- package/dist/types/wallet-server/src/core/routerAbSigning/RouterAbEcdsaPresignRuntime.d.ts +5 -1
- package/dist/types/wallet-server/src/core/signingMaterial/ordinaryInactiveSignerMaterialReservation.d.ts +1 -0
- package/dist/types/wallet-server/src/core/threeRouteRegistrationContracts.d.ts +14 -48
- package/dist/types/wallet-server/src/hosted-wallet-gateway.d.ts +4 -3
- package/dist/types/wallet-server/src/localIntendedYaoSigningFault.d.ts +1 -16
- package/dist/types/wallet-server/src/localRegistrationSetupAuthority.d.ts +1 -1
- package/dist/types/wallet-server/src/router/auth/commonRouterUtils.d.ts +7 -1
- package/dist/types/wallet-server/src/router/auth/routerApiCredentialAuth.d.ts +11 -3
- package/dist/types/wallet-server/src/router/auth/walletRegistrationContext.d.ts +8 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/auth/d1AuthorizationAssembly.d.ts +1 -1
- package/dist/types/wallet-server/src/router/cloudflare/d1/auth/d1EmailOtpRouteService.d.ts +16 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/auth/d1RouterApiAuthConfig.d.ts +7 -4
- package/dist/types/wallet-server/src/router/cloudflare/d1/auth/d1RouterApiAuthService.d.ts +4 -1
- package/dist/types/wallet-server/src/router/cloudflare/d1/auth/walletSessionCredentialReaders.d.ts +7 -1
- package/dist/types/wallet-server/src/router/cloudflare/d1/authorization/d1AuthorizationStore.d.ts +32 -1
- package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceAuthorityInstallService.d.ts +2 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/ed25519Yao/d1Ed25519YaoLifecycleDecisionStore.d.ts +3 -1
- package/dist/types/wallet-server/src/router/cloudflare/d1/ed25519Yao/d1Ed25519YaoProductRegistrationPartitionedStateStore.d.ts +1 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/ed25519Yao/d1Ed25519YaoStateWriteFence.d.ts +8 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/ed25519Yao/d1WalletCeremonyActivity.d.ts +15 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpChallengeIssuer.d.ts +6 -1
- package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpChallengeStore.d.ts +1 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpChallengeVerifier.d.ts +4 -1
- package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpCounters.typecheck.d.ts +2 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpRateLimitStore.d.ts +6 -29
- package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpRecords.d.ts +21 -7
- package/dist/types/wallet-server/src/router/cloudflare/d1/passkeyCustody/d1WalletCustodyCommitStore.d.ts +17 -1
- package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1RegistrationCeremonyRecordStore.d.ts +32 -7
- package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1RegistrationCeremonyStore.d.ts +16 -7
- package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1RegistrationSessionTransaction.d.ts +13 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1RegistrationSetupSupport.d.ts +7 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1WalletExecutionAuthority.d.ts +41 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1WalletOperationStore.d.ts +28 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1WalletRegistrationCommitStore.d.ts +6 -9
- package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1WalletRegistrationInitialSession.d.ts +17 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1WalletRegistrationPreparation.d.ts +12 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1WalletRegistrationRead.d.ts +43 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1WalletRegistrationService.d.ts +24 -45
- package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1WalletRegistrationSetupExecution.d.ts +9 -4
- package/dist/types/wallet-server/src/router/cloudflare/d1/registration/walletRegistrationEstablishedSessionIssuer.d.ts +42 -14
- package/dist/types/wallet-server/src/router/cloudflare/d1/registration/walletRegistrationSessionCommitReceipt.d.ts +5 -4
- package/dist/types/wallet-server/src/router/cloudflare/d1/signingAdmission/d1RouterAbNormalSigningAdmissionStore.d.ts +24 -1
- package/dist/types/wallet-server/src/router/cloudflare/d1/versionedJson/d1VersionedJsonRecordStore.d.ts +10 -4
- package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/authorizationSnapshotLayout.d.ts +21 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletAddSignerService.d.ts +3 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletAuthMethodService.d.ts +3 -7
- package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletAuthorityStore.d.ts +8 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletAuthorizationCleanup.d.ts +20 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletAuthorizationFreeze.d.ts +12 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletAuthorizationHistory.d.ts +20 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletAuthorizationIntake.d.ts +29 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletAuthorizationSnapshot.d.ts +31 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletRelocationApprovals.d.ts +49 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletRelocationChallenges.d.ts +47 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletRelocationEmailOtp.d.ts +25 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletRelocationOwner.d.ts +88 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletRelocationOwnerRequest.d.ts +37 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletRelocationPasskey.d.ts +12 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletRelocationReadAccess.d.ts +18 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletRelocationSessions.d.ts +23 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletRelocationWriteBlock.d.ts +16 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/walletObjectAddresses.d.ts +14 -0
- package/dist/types/wallet-server/src/router/cloudflare/runtime/routerAbServiceBindings.d.ts +13 -0
- package/dist/types/wallet-server/src/router/cloudflare/runtime/walletAuthorizationRelocationRoutes.d.ts +21 -0
- package/dist/types/wallet-server/src/router/cloudflare/runtime/walletConsoleOps.d.ts +1 -1
- package/dist/types/wallet-server/src/router/cloudflare/runtime/walletConsoleOpsClient.d.ts +3 -3
- package/dist/types/wallet-server/src/router/cloudflare/runtime/walletControlOps.d.ts +2 -1
- package/dist/types/wallet-server/src/router/cloudflare/runtime/walletGateway.d.ts +3 -1
- package/dist/types/wallet-server/src/router/cloudflare/runtime/walletObjectAddresses.d.ts +45 -0
- package/dist/types/wallet-server/src/router/cloudflare/runtime/walletPlacementRoutes.d.ts +30 -0
- package/dist/types/wallet-server/src/router/cloudflare/runtime/walletRelocationDeriver.d.ts +11 -0
- package/dist/types/wallet-server/src/router/cloudflare/runtime/walletRelocationEcdsa.d.ts +7 -0
- package/dist/types/wallet-server/src/router/cloudflare/runtime/walletRelocationEd25519.d.ts +7 -0
- package/dist/types/wallet-server/src/router/cloudflare/runtime/walletRelocationOps.d.ts +11 -0
- package/dist/types/wallet-server/src/router/cloudflare/runtime/walletRelocationPresign.d.ts +7 -0
- package/dist/types/wallet-server/src/router/cloudflare/runtime/walletRelocationSource.d.ts +26 -0
- package/dist/types/wallet-server/src/router/cloudflare/signingLanes/cloudflareOrdinaryInactiveSignerMaterialReservation.d.ts +5 -0
- package/dist/types/wallet-server/src/router/domains/ecdsa/routerAbEcdsaStrictRegistration.d.ts +3 -0
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoCapabilityCommit.d.ts +7 -0
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistration.d.ts +41 -7
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistrationPartitionedStateStore.d.ts +33 -2
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/export/routerAbEd25519YaoExport.d.ts +12 -6
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/recovery/routerAbEd25519YaoRecovery.d.ts +17 -9
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/recovery/routerAbEd25519YaoRecoveryWalletSessionAuthorization.d.ts +2 -0
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/registration/routerAbEd25519YaoHttpRegistrationBackend.d.ts +13 -14
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistration.d.ts +7 -3
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistrationExecutionRecord.d.ts +1 -0
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistrationIntentAuthorization.d.ts +6 -1
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistrationSideEffectBoundary.d.ts +11 -0
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/routerAbEd25519YaoGatewayEnvelope.d.ts +12 -3
- package/dist/types/wallet-server/src/router/domains/passkeyCustody/registrationCustodyOutcome.d.ts +10 -6
- package/dist/types/wallet-server/src/router/domains/passkeyCustody/walletCustodyRegistrationAdmission.d.ts +10 -3
- package/dist/types/wallet-server/src/router/domains/passkeyCustody/walletCustodyRegistrationCommit.d.ts +12 -5
- package/dist/types/wallet-server/src/router/domains/signingOperations/authorizedOperationWire.d.ts +97 -0
- package/dist/types/wallet-server/src/router/domains/signingOperations/ecdsaSigningResponse.d.ts +13 -0
- package/dist/types/wallet-server/src/router/domains/signingOperations/routerAbNormalSigningAdmission.d.ts +9 -206
- package/dist/types/wallet-server/src/router/domains/signingOperations/signingPrepareSession.d.ts +23 -0
- package/dist/types/wallet-server/src/router/domains/walletRegistration/registrationSessionSeal.d.ts +36 -0
- package/dist/types/wallet-server/src/router/domains/walletRegistration/walletRegistrationInputs.d.ts +7 -7
- package/dist/types/wallet-server/src/router/domains/walletRegistration/walletRegistrationReservation.d.ts +80 -6
- package/dist/types/wallet-server/src/router/domains/walletRegistration/walletRegistrationRoutes.d.ts +15 -5
- package/dist/types/wallet-server/src/router/framework/apiCredentialPorts.d.ts +24 -0
- package/dist/types/wallet-server/src/router/framework/authServicePort.d.ts +21 -7
- package/dist/types/wallet-server/src/router/framework/routerApi.d.ts +3 -12
- package/dist/types/wallet-server/src/router/transport/fetch/routes/ed25519AuthorizedOperationRevalidation.d.ts +37 -0
- package/dist/types/wallet-server/src/router/transport/fetch/routes/thresholdEcdsa.d.ts +1 -17
- package/dist/types/wallet-server/src/storage/tenantRoute.d.ts +1 -1
- package/migrations/d1-signer/0049_wallet_relocation_challenges.sql +16 -0
- package/migrations/d1-signer/0050_wallet_relocation_approvals.sql +14 -0
- package/migrations/d1-signer/0051_wallet_relocation_email_otp.sql +92 -0
- package/migrations/d1-signer/0052_wallet_relocation_session_fences.sql +91 -0
- package/migrations/d1-signer/0053_wallet_hosted_history_import.sql +164 -0
- package/migrations/d1-signer/0054_wallet_authorization_freeze.sql +318 -0
- package/migrations/d1-signer/0055_wallet_authorization_snapshot.sql +120 -0
- package/migrations/d1-signer/0056_wallet_authorization_history_import.sql +424 -0
- package/migrations/d1-signer/0057_wallet_authorization_intake.sql +44 -0
- package/migrations/d1-signer/0058_wallet_ceremony_activity.sql +59 -0
- package/migrations/d1-signer/0059_wallet_authorization_activation.sql +45 -0
- package/migrations/d1-signer/0060_wallet_authorization_cleanup.sql +153 -0
- package/migrations/d1-signer/0061_wallet_session_operation_settlement.sql +28 -0
- package/migrations/d1-signer/0062_wallet_step_up_operation_settlement.sql +204 -0
- package/migrations/d1-signer/0063_wallet_operation_history_transfer.sql +466 -0
- package/migrations/d1-signer/0064_wallet_execution_generations.sql +93 -0
- package/migrations/d1-signer/0065_wallet_operation_execution_generation.sql +37 -0
- package/migrations/d1-signer/0066_regional_deployment_admission.sql +59 -0
- package/migrations/d1-signer/0067_registration_completion_decision.sql +12 -0
- package/migrations/d1-signer/0068_registration_cancellation_write_fence.sql +24 -0
- package/migrations/d1-signer/0069_cancelled_registration_session_fence.sql +11 -0
- package/migrations/d1-signer/0070_wallet_passkey_relocation.sql +369 -0
- package/migrations/d1-signer/0071_regional_wallet_otp_counters.sql +98 -0
- package/migrations/d1-signer/0072_linked_device_relocation_history.sql +899 -0
- package/migrations/d1-signer/0073_wallet_recovery_relocation.sql +86 -0
- package/migrations/d1-signer/0074_email_otp_relocation.sql +158 -0
- package/migrations/d1-signer/0075_wallet_authorization_return.sql +107 -0
- package/migrations/d1-signer/0076_wallet_relocation_write_block.sql +406 -0
- package/migrations/d1-signer/0077_wallet_object_addresses.sql +24 -0
- package/package.json +1 -1
- package/src/README.md +23 -1
- package/cloudflare-router-ab/scripts/local-key-material.mjs +0 -29
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { type WalletObjectIdentity } from './walletObjectAddresses';
|
|
2
|
+
import type { WalletConsoleServiceBinding } from './walletConsoleOpsClient';
|
|
3
|
+
export type RuntimeSourceOperation = 'ed25519-settle' | 'ed25519-capture' | 'ecdsa-freeze' | 'router-freeze' | 'router-export' | 'router-status' | 'router-verify' | 'router-import' | 'router-activate' | 'router-cleanup';
|
|
4
|
+
export type RuntimeSourceDirectory = {
|
|
5
|
+
readonly WALLET_CONSOLE: WalletConsoleServiceBinding;
|
|
6
|
+
readonly CF_VERSION_METADATA: {
|
|
7
|
+
readonly id: unknown;
|
|
8
|
+
};
|
|
9
|
+
readonly SEAMS_D1_HOME_ACCOUNT_ID: string;
|
|
10
|
+
readonly SEAMS_D1_HOME_DATABASE_ID: string;
|
|
11
|
+
};
|
|
12
|
+
type SourceAuthorization = {
|
|
13
|
+
readonly ok: true;
|
|
14
|
+
readonly body: string;
|
|
15
|
+
readonly identity: WalletObjectIdentity;
|
|
16
|
+
readonly code?: never;
|
|
17
|
+
} | {
|
|
18
|
+
readonly ok: false;
|
|
19
|
+
readonly code: 'invalid_input' | 'source_command_unavailable' | 'source_command_denied';
|
|
20
|
+
readonly body?: never;
|
|
21
|
+
readonly identity?: never;
|
|
22
|
+
};
|
|
23
|
+
export declare function authorizeRuntimeSource(input: unknown, operation: RuntimeSourceOperation, env: RuntimeSourceDirectory): Promise<SourceAuthorization>;
|
|
24
|
+
export declare function recordRuntimeRouterReceipt(operation: 'router-freeze' | 'router-activate', input: unknown, response: Response, env: RuntimeSourceDirectory): Promise<Response>;
|
|
25
|
+
export {};
|
|
26
|
+
//# sourceMappingURL=walletRelocationSource.d.ts.map
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { WalletExecutionAuthority } from '../../domains/walletRegistration/walletRegistrationReservation';
|
|
1
2
|
import { type OrdinaryEcdsaSignerMaterialReservationRequestV1, type OrdinaryEcdsaSignerMaterialDeactivationRequestV1, type OrdinaryEcdsaSignerMaterialWorkerReservationV1, type OrdinaryEd25519SignerMaterialReservationRequestV1, type OrdinaryEd25519SignerMaterialDeactivationRequestV1, type OrdinaryEd25519SignerMaterialWorkerReservationV1, type OrdinaryInactiveSignerMaterialDeactivationPortV1, type OrdinaryInactiveSignerMaterialDeactivationRequestV1, type OrdinaryInactiveSignerMaterialReservationServiceV1, type OrdinaryInactiveSignerMaterialReservationWorkerPortV1 } from '../../../core/signingMaterial/ordinaryInactiveSignerMaterialReservation';
|
|
2
3
|
import { type LinkedDeviceEd25519SourceContributionPreparationV1 } from '../../../../../shared-ts/src/device-linking/sourceContribution';
|
|
3
4
|
import type { DeviceLinkingEd25519SourcePreservingRouterPortV1 } from '../../transport/fetch/routes/deviceLinking';
|
|
@@ -34,16 +35,19 @@ export type CloudflareOrdinaryInactiveSignerMaterialReservationEndpointV1 = {
|
|
|
34
35
|
};
|
|
35
36
|
export type CloudflareLinkedDeviceEd25519SourcePreservingRouterEndpointV1 = DeviceLinkingEd25519SourcePreservingRouterPortV1;
|
|
36
37
|
export declare function createCloudflareLinkedDeviceEd25519SourcePreservingRouterEndpointV1(input: {
|
|
38
|
+
readonly admitEstablishedHome: WalletExecutionAuthority['admitEstablishedHome'];
|
|
37
39
|
readonly fetch: typeof fetch;
|
|
38
40
|
readonly internalServiceAuthSecret: string;
|
|
39
41
|
readonly resolveTenantRoot: (context: Pick<LinkedDeviceEd25519SourceContributionPreparationV1, 'applicationBinding' | 'targetAdmission' | 'participantIds'>) => Promise<RouterAbEd25519YaoResolvedTenantRootV1>;
|
|
40
42
|
}): CloudflareLinkedDeviceEd25519SourcePreservingRouterEndpointV1;
|
|
41
43
|
export type CloudflareOrdinaryInactiveSignerMaterialActivationEndpointV1 = {
|
|
42
44
|
activateInactiveEd25519SignerMaterialV1(input: {
|
|
45
|
+
readonly ownershipGeneration: number;
|
|
43
46
|
readonly sourceContribution: OrdinaryEd25519SignerMaterialReservationPreparationV1['sourceContribution'];
|
|
44
47
|
readonly reservationId: string;
|
|
45
48
|
}): Promise<unknown>;
|
|
46
49
|
activateInactiveEcdsaSignerMaterialV1(input: {
|
|
50
|
+
readonly ownershipGeneration: number;
|
|
47
51
|
readonly preparation: OrdinaryEcdsaSignerMaterialReservationPreparationV1;
|
|
48
52
|
readonly reservationId: string;
|
|
49
53
|
}): Promise<unknown>;
|
|
@@ -67,6 +71,7 @@ export declare function createCloudflareOrdinaryInactiveSignerMaterialActivation
|
|
|
67
71
|
readonly tenant: CloudflareSigningWorkerTenantV1;
|
|
68
72
|
}): CloudflareOrdinaryInactiveSignerMaterialActivationEndpointV1;
|
|
69
73
|
export declare function createCloudflareOrdinaryInactiveSignerMaterialDeactivationEndpointV1(input: {
|
|
74
|
+
readonly admitEstablishedHome: WalletExecutionAuthority['admitEstablishedHome'];
|
|
70
75
|
readonly fetch: typeof fetch;
|
|
71
76
|
readonly internalServiceAuthSecret: string;
|
|
72
77
|
readonly tenant: CloudflareSigningWorkerTenantV1;
|
package/dist/types/wallet-server/src/router/domains/ecdsa/routerAbEcdsaStrictRegistration.d.ts
CHANGED
|
@@ -64,6 +64,7 @@ export type RouterAbEcdsaRegistrationRequestPolicyV1 = {
|
|
|
64
64
|
readonly requestDigestB64u: string;
|
|
65
65
|
};
|
|
66
66
|
export type RouterAbEcdsaRegistrationTenantRootV1 = {
|
|
67
|
+
readonly ownershipGeneration: number;
|
|
67
68
|
readonly identityDigestB64u: string;
|
|
68
69
|
readonly custodyLineageB64u: string;
|
|
69
70
|
readonly projectEnvironmentId: string;
|
|
@@ -145,6 +146,7 @@ export interface RouterAbEcdsaStrictPostRegistrationPort {
|
|
|
145
146
|
}): Promise<RouterAbEcdsaStrictRefreshResult>;
|
|
146
147
|
}
|
|
147
148
|
export type RouterAbEcdsaCeremonyTokenClaims = {
|
|
149
|
+
readonly ownershipGeneration: number;
|
|
148
150
|
readonly subjectId: string;
|
|
149
151
|
readonly sessionId: string;
|
|
150
152
|
readonly orgId: string;
|
|
@@ -174,6 +176,7 @@ export interface RouterAbEcdsaCeremonyTokenIssuer {
|
|
|
174
176
|
};
|
|
175
177
|
}
|
|
176
178
|
type StrictRegistrationForwarderConfig = {
|
|
179
|
+
readonly internalServiceAuthSecret: string;
|
|
177
180
|
readonly router: {
|
|
178
181
|
fetch(input: RequestInfo | URL, init?: RequestInit): Promise<Response>;
|
|
179
182
|
};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { WalletEd25519YaoActiveCapabilityRecord } from '../../../../core/WalletStore';
|
|
2
|
+
import { type RouterAbEd25519YaoRegistrationFinalizeCapabilityInstallationV1, type RouterAbEd25519YaoRegistrationFinalizeCapabilityInstallResultV1 } from '../recovery/routerAbEd25519YaoRecovery';
|
|
3
|
+
import type { RouterAbEd25519YaoPreparedWriteV1, RouterAbEd25519YaoProductRegistrationPartitionedStateStoreV1 } from './routerAbEd25519YaoProductRegistrationPartitionedStateStore';
|
|
4
|
+
/** The wallet and its initial capability become visible in the same transaction. */
|
|
5
|
+
export declare function commitRouterAbEd25519YaoRegistrationCapability(store: RouterAbEd25519YaoProductRegistrationPartitionedStateStoreV1, installation: RouterAbEd25519YaoRegistrationFinalizeCapabilityInstallationV1, walletWrite: Promise<RouterAbEd25519YaoPreparedWriteV1>): Promise<RouterAbEd25519YaoRegistrationFinalizeCapabilityInstallResultV1>;
|
|
6
|
+
export declare function rehydrateRouterAbEd25519YaoCapability(store: RouterAbEd25519YaoProductRegistrationPartitionedStateStoreV1, capability: WalletEd25519YaoActiveCapabilityRecord): Promise<RouterAbEd25519YaoRegistrationFinalizeCapabilityInstallResultV1>;
|
|
7
|
+
//# sourceMappingURL=routerAbEd25519YaoCapabilityCommit.d.ts.map
|
|
@@ -4,7 +4,7 @@ import { type RegistrationNearEd25519SignerPlan } from '../../../../../../shared
|
|
|
4
4
|
import { type RouterAbEd25519YaoActivationAdmissionReceiptV1, type RouterAbEd25519YaoRegistrationAdmissionRequestV1 } from '../../../../../../shared-ts/src/utils/routerAbEd25519Yao';
|
|
5
5
|
import { type RouterAbMpcMaterialActivationRefWire } from '../../../../../../shared-ts/src/utils/routerAbNormalSigningIdentity';
|
|
6
6
|
import type { RouterAbEd25519YaoActivationConsumerV1, RouterAbEd25519YaoActivationConsumptionRequestV1, RouterAbEd25519YaoActivationConsumptionResultV1, RouterAbEd25519YaoRegistrationServiceResult } from '../registration/routerAbEd25519YaoRegistration';
|
|
7
|
-
import { InMemoryRouterAbEd25519YaoRegistrationStateV1, type RouterAbEd25519YaoRegistrationAuthorizationAdapter, type RouterAbEd25519YaoRegistrationService } from '../registration/routerAbEd25519YaoRegistration';
|
|
7
|
+
import { InMemoryRouterAbEd25519YaoRegistrationStateV1, type RouterAbEd25519YaoRegistrationAuthorizationAdapter, type RouterAbEd25519YaoRegistrationAuthorizationResult, type RouterAbEd25519YaoRegistrationAuthorizationFailure, type RouterAbEd25519YaoRegistrationService } from '../registration/routerAbEd25519YaoRegistration';
|
|
8
8
|
import { InMemoryRouterAbEd25519YaoRegistrationIntentAuthorizationStateV1, type RouterAbEd25519YaoVerifiedActivationIntentV1, type RouterAbEd25519YaoRegistrationIntentBindingResult } from '../registration/routerAbEd25519YaoRegistrationIntentAuthorization';
|
|
9
9
|
import { type RouterApiModule } from '../../../framework/modules';
|
|
10
10
|
import type { MpcWalletSigningQuotaId, WalletSessionAuthorizationId, WalletSessionId } from '../../../../../../shared-ts/src/authorization/capabilityKinds';
|
|
@@ -13,9 +13,11 @@ import { type RuntimePolicyScope } from '../../../../../../shared-ts/src/thresho
|
|
|
13
13
|
import type { WalletAuthAuthority } from '../../../../../../shared-ts/src/utils/walletAuthAuthority';
|
|
14
14
|
import type { WalletSessionOperationCredentialV1 } from '../../../../../../shared-ts/src/device-linking';
|
|
15
15
|
import type { WalletRegistrationEd25519YaoBootstrapSession } from '../../../../../../shared-ts/src/utils/registrationContracts';
|
|
16
|
-
import { InMemoryRouterAbEd25519YaoRecoveryStateV1, type RouterAbEd25519YaoActiveCapabilityLookupV1, type RouterAbEd25519YaoActiveCapabilityResolverV1, type RouterAbEd25519YaoPersistedActiveCapabilityInstallerV1, type RouterAbEd25519YaoRecoveryAuthorizationAdapter, type RouterAbEd25519YaoRecoveryService, type
|
|
16
|
+
import { InMemoryRouterAbEd25519YaoRecoveryStateV1, type RouterAbEd25519YaoActiveCapabilityLookupV1, type RouterAbEd25519YaoActiveCapabilityResolverV1, type RouterAbEd25519YaoPersistedActiveCapabilityInstallerV1, type RouterAbEd25519YaoRecoveryAuthorizationAdapter, type RouterAbEd25519YaoRecoveryService, type WarmBootstrapLinkedEd25519AuthorityReaderV1 } from '../recovery/routerAbEd25519YaoRecovery';
|
|
17
17
|
import type { WalletEd25519YaoActiveCapabilityRecord } from '../../../../core/WalletStore';
|
|
18
18
|
import { InMemoryRouterAbEd25519YaoExportStateV1, type RouterAbEd25519YaoExportAuthorizationAdapter, type RouterAbEd25519YaoExportService } from '../export/routerAbEd25519YaoExport';
|
|
19
|
+
import { type RouterAbEd25519YaoRegistrationSigningRootIdV1, type RouterAbEd25519YaoTenantRootWireV1 } from '../routerAbEd25519YaoGatewayEnvelope';
|
|
20
|
+
import type { RouterAbEd25519YaoPreparedWriteV1 } from './routerAbEd25519YaoProductRegistrationPartitionedStateStore';
|
|
19
21
|
import type { DigestB64u } from '../../../../../../shared-ts/src/utils/canonicalPrimitives';
|
|
20
22
|
/**
|
|
21
23
|
* How the Ed25519 Yao session response reaches its primary credential. A
|
|
@@ -54,16 +56,47 @@ export type RouterAbEd25519YaoWalletSessionMintInputV1 = (RouterAbEd25519YaoWall
|
|
|
54
56
|
readonly expiresAtMs: number;
|
|
55
57
|
readonly remainingUses: number;
|
|
56
58
|
});
|
|
57
|
-
export type RouterAbEd25519YaoProductRegistrationRuntimeV1 =
|
|
59
|
+
export type RouterAbEd25519YaoProductRegistrationRuntimeV1 = RouterAbEd25519YaoPersistedActiveCapabilityInstallerV1 & RouterAbEd25519YaoActiveCapabilityResolverV1 & {
|
|
58
60
|
readonly kind: 'router_ab_ed25519_yao_product_registration_runtime_v1';
|
|
59
61
|
readonly signingWorkerId: string;
|
|
60
|
-
|
|
62
|
+
/**
|
|
63
|
+
* Starts the tenant-root read of a registration admission. The read
|
|
64
|
+
* needs the signing root ID and epoch alone, so it can run before the
|
|
65
|
+
* proof is verified. A runtime that pins no tenant root at admission
|
|
66
|
+
* starts nothing.
|
|
67
|
+
*/
|
|
68
|
+
startRegistrationDispatchRoot(signingRootId: RouterAbEd25519YaoRegistrationSigningRootIdV1): RouterAbEd25519YaoStartedDispatchRootV1 | null;
|
|
69
|
+
bindAndAdmitVerifiedRegistration(input: RouterAbEd25519YaoVerifiedActivationIntentV1, companionWrite: RouterAbEd25519YaoAdmissionCompanionWriteV1 | null, startedDispatchRoot: RouterAbEd25519YaoStartedDispatchRootV1 | null): Promise<RouterAbEd25519YaoVerifiedRegistrationAdmissionResultV1>;
|
|
61
70
|
bindVerifiedIntent(input: RouterAbEd25519YaoVerifiedActivationIntentV1): Promise<RouterAbEd25519YaoRegistrationIntentBindingResult>;
|
|
62
71
|
consumeActivated(request: RouterAbEd25519YaoActivationConsumptionRequestV1): Promise<RouterAbEd25519YaoActivationConsumptionResultV1>;
|
|
63
72
|
};
|
|
73
|
+
/** A tenant-root read in flight, with the signing root ID that it was started for. */
|
|
74
|
+
export type RouterAbEd25519YaoStartedDispatchRootV1 = {
|
|
75
|
+
readonly signingRootId: RouterAbEd25519YaoRegistrationSigningRootIdV1;
|
|
76
|
+
readonly dispatchRoot: Promise<RouterAbEd25519YaoTenantRootWireV1>;
|
|
77
|
+
};
|
|
78
|
+
/**
|
|
79
|
+
* Prepares another store's write for the admission request that was bound.
|
|
80
|
+
* It commits in the batch of a new admission, or it does not run.
|
|
81
|
+
*/
|
|
82
|
+
export type RouterAbEd25519YaoAdmissionCompanionWriteV1 = (admissionRequest: RouterAbEd25519YaoRegistrationAdmissionRequestV1) => RouterAbEd25519YaoPreparedWriteV1;
|
|
64
83
|
export type RouterAbEd25519YaoVerifiedRegistrationAdmissionResultV1 = Extract<RouterAbEd25519YaoRegistrationIntentBindingResult, {
|
|
65
84
|
readonly ok: false;
|
|
66
|
-
}> |
|
|
85
|
+
}> | Extract<RouterAbEd25519YaoRegistrationAuthorizationResult, {
|
|
86
|
+
readonly ok: false;
|
|
87
|
+
}> | Extract<RouterAbEd25519YaoRegistrationServiceResult<never>, {
|
|
88
|
+
readonly ok: false;
|
|
89
|
+
}> | {
|
|
90
|
+
readonly ok: true;
|
|
91
|
+
readonly status: 200;
|
|
92
|
+
readonly admissionRequest: RouterAbEd25519YaoRegistrationAdmissionRequestV1;
|
|
93
|
+
readonly value: RouterAbEd25519YaoActivationAdmissionReceiptV1<'registration'>;
|
|
94
|
+
/**
|
|
95
|
+
* `not_committed` when the admission already existed, or when this
|
|
96
|
+
* runtime has no batch to share: the caller then writes for itself.
|
|
97
|
+
*/
|
|
98
|
+
readonly companionWrite: 'committed' | 'not_committed';
|
|
99
|
+
};
|
|
67
100
|
export type RouterAbEd25519YaoProductRegistrationCompositionV1 = {
|
|
68
101
|
readonly kind: 'router_ab_ed25519_yao_product_registration_composition_v1';
|
|
69
102
|
readonly registrationService: RouterAbEd25519YaoProductRegistrationServicePortV1;
|
|
@@ -78,9 +111,10 @@ export type RouterAbEd25519YaoProductRegistrationCompositionV1 = {
|
|
|
78
111
|
export interface RouterAbEd25519YaoProductRegistrationServicePortV1 extends RouterAbEd25519YaoRegistrationService, RouterAbEd25519YaoActivationConsumerV1 {
|
|
79
112
|
}
|
|
80
113
|
export interface RouterAbEd25519YaoProductRegistrationAuthorizationPortV1 extends RouterAbEd25519YaoRegistrationAuthorizationAdapter {
|
|
114
|
+
bindAndAuthorizeAdmission(input: RouterAbEd25519YaoVerifiedActivationIntentV1): Promise<RouterAbEd25519YaoRegistrationIntentBindingResult | RouterAbEd25519YaoRegistrationAuthorizationFailure>;
|
|
81
115
|
bindVerifiedIntent(input: RouterAbEd25519YaoVerifiedActivationIntentV1): Promise<RouterAbEd25519YaoRegistrationIntentBindingResult>;
|
|
82
116
|
}
|
|
83
|
-
export interface RouterAbEd25519YaoProductRecoveryServicePortV1 extends RouterAbEd25519YaoRecoveryService,
|
|
117
|
+
export interface RouterAbEd25519YaoProductRecoveryServicePortV1 extends RouterAbEd25519YaoRecoveryService, RouterAbEd25519YaoPersistedActiveCapabilityInstallerV1, RouterAbEd25519YaoActiveCapabilityResolverV1 {
|
|
84
118
|
}
|
|
85
119
|
export type RouterAbEd25519YaoProductRegistrationPortsV1 = {
|
|
86
120
|
readonly signingWorkerId: string;
|
|
@@ -130,7 +164,7 @@ export declare function createRouterAbEd25519YaoProductRegistrationRuntimeV1(inp
|
|
|
130
164
|
readonly signingWorkerId: string;
|
|
131
165
|
readonly registrationService: RouterAbEd25519YaoProductRegistrationServicePortV1;
|
|
132
166
|
readonly authorization: RouterAbEd25519YaoProductRegistrationAuthorizationPortV1;
|
|
133
|
-
readonly capabilityInstaller:
|
|
167
|
+
readonly capabilityInstaller: RouterAbEd25519YaoPersistedActiveCapabilityInstallerV1;
|
|
134
168
|
readonly capabilityResolver: RouterAbEd25519YaoActiveCapabilityResolverV1;
|
|
135
169
|
}): RouterAbEd25519YaoProductRegistrationRuntimeV1;
|
|
136
170
|
export declare function routerAbEd25519YaoPersistedCapabilityMatchesLookupV1(capability: WalletEd25519YaoActiveCapabilityRecord, lookup: RouterAbEd25519YaoActiveCapabilityLookupV1): boolean;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { VersionedJsonObject, VersionedJsonRecordReadResult } from '../../../framework/versionedJsonRecordStore';
|
|
2
|
-
import type { D1PreparedStatementLike } from '../../../../storage/tenantRoute';
|
|
2
|
+
import type { D1PreparedStatementLike, D1ResultLike } from '../../../../storage/tenantRoute';
|
|
3
|
+
import type { InMemoryRouterAbEd25519YaoRecoveryStateV1 } from '../recovery/routerAbEd25519YaoRecovery';
|
|
3
4
|
import { type RouterAbEd25519YaoRegistrationExecutionAuthorityV1 } from '../registration/routerAbEd25519YaoRegistrationExecutionRecord';
|
|
4
5
|
import type { RouterAbEd25519YaoProductRegistrationStateV1 } from './routerAbEd25519YaoProductRegistration';
|
|
5
6
|
import { type RouterAbEd25519YaoProductRegistrationCeremonyStateV1, type RouterAbEd25519YaoProductRegistrationSharedStateV1 } from './routerAbEd25519YaoProductRegistrationPartitioning';
|
|
@@ -35,6 +36,7 @@ export type RouterAbEd25519YaoProductRegistrationPartitionBatchResultV1 = {
|
|
|
35
36
|
*/
|
|
36
37
|
export type RouterAbEd25519YaoPreparedWriteV1 = {
|
|
37
38
|
readonly statements: readonly D1PreparedStatementLike[];
|
|
39
|
+
readonly executeBatch?: (statements: readonly D1PreparedStatementLike[]) => Promise<readonly D1ResultLike[]>;
|
|
38
40
|
};
|
|
39
41
|
export type RouterAbEd25519YaoProductRegistrationPartitionRecordStoreV1 = {
|
|
40
42
|
readonly readMany: (keys: readonly string[]) => Promise<readonly {
|
|
@@ -71,7 +73,36 @@ export type RouterAbEd25519YaoProductRegistrationPartitionedStateCommitResultV1
|
|
|
71
73
|
readonly kind: 'version_mismatch';
|
|
72
74
|
readonly key: 'shared' | 'ceremony';
|
|
73
75
|
};
|
|
76
|
+
/** Registration changes only its own ceremony. Shared capabilities are inaccessible here. */
|
|
77
|
+
export type RouterAbEd25519YaoRegistrationCeremonySnapshotV1 = {
|
|
78
|
+
readonly lifecycleId: string;
|
|
79
|
+
readonly state: {
|
|
80
|
+
readonly registration: RouterAbEd25519YaoProductRegistrationStateV1['registration'];
|
|
81
|
+
readonly authorization: RouterAbEd25519YaoProductRegistrationStateV1['authorization'];
|
|
82
|
+
readonly recovery?: never;
|
|
83
|
+
readonly export?: never;
|
|
84
|
+
};
|
|
85
|
+
readonly baseline: {
|
|
86
|
+
readonly version: string | null;
|
|
87
|
+
readonly recovery: RouterAbEd25519YaoProductRegistrationCeremonyStateV1['recovery'];
|
|
88
|
+
readonly export: RouterAbEd25519YaoProductRegistrationCeremonyStateV1['export'];
|
|
89
|
+
};
|
|
90
|
+
};
|
|
91
|
+
export type RouterAbEd25519YaoCapabilitySnapshotV1 = {
|
|
92
|
+
readonly value: RouterAbEd25519YaoProductRegistrationSharedStateV1;
|
|
93
|
+
readonly version: string | null;
|
|
94
|
+
};
|
|
95
|
+
export type RouterAbEd25519YaoCapabilityMutationV1 = {
|
|
96
|
+
readonly capabilities: InMemoryRouterAbEd25519YaoRecoveryStateV1['capabilities'];
|
|
97
|
+
readonly identityCapabilities: InMemoryRouterAbEd25519YaoRecoveryStateV1['identityCapabilities'];
|
|
98
|
+
readonly recoveries?: never;
|
|
99
|
+
readonly recoverySessions?: never;
|
|
100
|
+
};
|
|
74
101
|
export interface RouterAbEd25519YaoProductRegistrationPartitionedStateStoreV1 {
|
|
102
|
+
loadCapabilities(): Promise<RouterAbEd25519YaoCapabilitySnapshotV1>;
|
|
103
|
+
commitCapabilities(snapshot: RouterAbEd25519YaoCapabilitySnapshotV1, mutation: RouterAbEd25519YaoCapabilityMutationV1, companionWrite: RouterAbEd25519YaoPreparedWriteV1 | null): Promise<RouterAbEd25519YaoProductRegistrationPartitionBatchResultV1>;
|
|
104
|
+
loadRegistration(lifecycleId: string): Promise<RouterAbEd25519YaoRegistrationCeremonySnapshotV1>;
|
|
105
|
+
commitRegistration(snapshot: RouterAbEd25519YaoRegistrationCeremonySnapshotV1, companionWrite: RouterAbEd25519YaoPreparedWriteV1 | null): Promise<RouterAbEd25519YaoProductRegistrationPartitionBatchResultV1>;
|
|
75
106
|
load(lifecycleId: string): Promise<RouterAbEd25519YaoProductRegistrationPartitionedStateV1>;
|
|
76
107
|
commit(input: RouterAbEd25519YaoProductRegistrationPartitionedStateCommitInputV1): Promise<RouterAbEd25519YaoProductRegistrationPartitionedStateCommitResultV1>;
|
|
77
108
|
}
|
|
@@ -87,7 +118,7 @@ export declare function createRouterAbEd25519YaoProductRegistrationPartitionedSt
|
|
|
87
118
|
* The admitted authority a registration execute is checked against, from a
|
|
88
119
|
* loaded ceremony state, or `null` when the lifecycle is not admitted.
|
|
89
120
|
*/
|
|
90
|
-
export declare function routerAbEd25519YaoAdmittedRegistrationAuthorityV1(state:
|
|
121
|
+
export declare function routerAbEd25519YaoAdmittedRegistrationAuthorityV1(state: RouterAbEd25519YaoRegistrationCeremonySnapshotV1['state'], lifecycleId: string): RouterAbEd25519YaoRegistrationExecutionAuthorityV1 | null;
|
|
91
122
|
export declare function encodeRouterAbEd25519YaoProductRegistrationPartitionRecordV1(record: RouterAbEd25519YaoProductRegistrationPartitionRecordV1): VersionedJsonObject;
|
|
92
123
|
export declare function sameRouterAbEd25519YaoSharedStateCanonicalEncodingV1(left: RouterAbEd25519YaoSharedStateCanonicalEncodingV1, right: RouterAbEd25519YaoSharedStateCanonicalEncodingV1): boolean;
|
|
93
124
|
export declare function parseRouterAbEd25519YaoProductRegistrationPartitionRecordV1(input: unknown): RouterAbEd25519YaoProductRegistrationPartitionRecordV1 | null;
|
package/dist/types/wallet-server/src/router/domains/ed25519Yao/export/routerAbEd25519YaoExport.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { WalletExecutionAuthority } from '../../walletRegistration/walletRegistrationReservation';
|
|
1
2
|
import { type RouterAbEd25519YaoExportAdmissionReceiptV1, type RouterAbEd25519YaoExportAdmissionRequestV1, type RouterAbEd25519YaoExportExecuteRequestV1, type RouterAbEd25519YaoExportResultV1 } from '../../../../../../shared-ts/src/utils/routerAbEd25519Yao';
|
|
2
3
|
import { type RouterAbTraceContextV1 } from '../../../../../../shared-ts/src/utils/routerAbTraceContext';
|
|
3
4
|
import { type ThresholdEd25519SessionId } from '../../../../../../shared-ts/src/utils/domainIds';
|
|
@@ -29,10 +30,10 @@ export type RouterAbEd25519YaoExportBackendResult = {
|
|
|
29
30
|
};
|
|
30
31
|
export interface RouterAbEd25519YaoExportBackend {
|
|
31
32
|
admitExport(request: RouterAbEd25519YaoExportAdmissionRequestV1, traceContext?: RouterAbTraceContextV1): Promise<RouterAbEd25519YaoExportBackendResult> | RouterAbEd25519YaoExportBackendResult;
|
|
32
|
-
executeExport(request: RouterAbEd25519YaoExportExecuteRequestV1,
|
|
33
|
+
executeExport(request: RouterAbEd25519YaoExportExecuteRequestV1, claim: RouterAbEd25519YaoExportExecuteClaimV1, traceContext?: RouterAbTraceContextV1): Promise<RouterAbEd25519YaoExportBackendResult> | RouterAbEd25519YaoExportBackendResult;
|
|
33
34
|
}
|
|
34
35
|
export interface RouterAbEd25519YaoExportService {
|
|
35
|
-
admitExport(request: RouterAbEd25519YaoExportAdmissionRequestV1, authorizationIdentity: RouterAbEd25519YaoExportServerAuthorizationIdentityV1, admission: RouterAbEd25519YaoExportOperationAdmissionV1, factorRelease: RouterAbEd25519YaoExportEmailOtpFactorReleaseV1 | null, traceContext?: RouterAbTraceContextV1): Promise<RouterAbEd25519YaoExportServiceResult<RouterAbEd25519YaoExportAdmissionReceiptV1>>;
|
|
36
|
+
admitExport(request: RouterAbEd25519YaoExportAdmissionRequestV1, authorizationIdentity: RouterAbEd25519YaoExportServerAuthorizationIdentityV1, ownershipGeneration: number, admission: RouterAbEd25519YaoExportOperationAdmissionV1, factorRelease: RouterAbEd25519YaoExportEmailOtpFactorReleaseV1 | null, traceContext?: RouterAbTraceContextV1): Promise<RouterAbEd25519YaoExportServiceResult<RouterAbEd25519YaoExportAdmissionReceiptV1>>;
|
|
36
37
|
executeExport(request: RouterAbEd25519YaoExportExecuteRequestV1, authorizationIdentity: RouterAbEd25519YaoExportServerAuthorizationIdentityV1, traceContext?: RouterAbTraceContextV1): Promise<RouterAbEd25519YaoExportServiceResult<RouterAbEd25519YaoExportResultV1>>;
|
|
37
38
|
}
|
|
38
39
|
/**
|
|
@@ -77,6 +78,7 @@ export type RouterAbEd25519YaoExportExecuteClaimV1 = {
|
|
|
77
78
|
readonly sessionId: string;
|
|
78
79
|
readonly executeFingerprint: string;
|
|
79
80
|
readonly admissionRequest: RouterAbEd25519YaoExportExecuteAdmissionContextV1;
|
|
81
|
+
readonly ownershipGeneration: number;
|
|
80
82
|
};
|
|
81
83
|
export type RouterAbEd25519YaoExportExecutePreparationV1 = {
|
|
82
84
|
readonly kind: 'claimed';
|
|
@@ -131,6 +133,7 @@ export type RouterAbEd25519YaoExportAuthorizationResult = {
|
|
|
131
133
|
readonly factorRelease?: RouterAbEd25519YaoExportEmailOtpFactorReleaseV1;
|
|
132
134
|
} | {
|
|
133
135
|
readonly ok: false;
|
|
136
|
+
readonly ownershipGeneration?: never;
|
|
134
137
|
readonly status: 401 | 403 | 409 | 429 | 503;
|
|
135
138
|
readonly code: string;
|
|
136
139
|
readonly message: string;
|
|
@@ -167,6 +170,7 @@ export type RouterAbEd25519YaoExportAdmissionAuthorizationResultV1 = {
|
|
|
167
170
|
readonly ok: true;
|
|
168
171
|
readonly authorizationIdentity: RouterAbEd25519YaoExportServerAuthorizationIdentityV1;
|
|
169
172
|
readonly admission: RouterAbEd25519YaoExportOperationAdmissionV1;
|
|
173
|
+
readonly ownershipGeneration: number;
|
|
170
174
|
readonly factorRelease?: RouterAbEd25519YaoExportEmailOtpFactorReleaseV1;
|
|
171
175
|
} | RouterAbEd25519YaoExportAuthorizationFailure;
|
|
172
176
|
export type RouterAbEd25519YaoExportAuthorizationIdentityResolutionResult = {
|
|
@@ -182,6 +186,7 @@ export interface RouterAbEd25519YaoExportAuthorizationAdapter {
|
|
|
182
186
|
resolveAuthorizationIdentity(body: RouterAbEd25519YaoExportAdmissionRequestV1): Promise<RouterAbEd25519YaoExportAuthorizationIdentityResolutionResult> | RouterAbEd25519YaoExportAuthorizationIdentityResolutionResult;
|
|
183
187
|
}
|
|
184
188
|
type ExportAuthorizationContext = {
|
|
189
|
+
readonly ownershipGeneration: number;
|
|
185
190
|
readonly request: RouterAbEd25519YaoExportAdmissionRequestV1;
|
|
186
191
|
readonly authorizationFingerprint: string;
|
|
187
192
|
readonly authorizationIdentity: RouterAbEd25519YaoExportServerAuthorizationIdentityV1;
|
|
@@ -235,15 +240,15 @@ export declare class InMemoryRouterAbEd25519YaoExportService implements RouterAb
|
|
|
235
240
|
constructor(backend: RouterAbEd25519YaoExportBackend, capabilities: RouterAbEd25519YaoActiveCapabilityResolverV1, state?: InMemoryRouterAbEd25519YaoExportStateV1);
|
|
236
241
|
authorizationIsUncertain(request: RouterAbEd25519YaoExportAdmissionRequestV1): boolean;
|
|
237
242
|
recordAuthorizationUncertain(request: RouterAbEd25519YaoExportAdmissionRequestV1): void;
|
|
238
|
-
admitExport(request: RouterAbEd25519YaoExportAdmissionRequestV1, authorizationIdentity: RouterAbEd25519YaoExportServerAuthorizationIdentityV1, admission: RouterAbEd25519YaoExportOperationAdmissionV1, factorRelease: RouterAbEd25519YaoExportEmailOtpFactorReleaseV1 | null, traceContext?: RouterAbTraceContextV1): Promise<RouterAbEd25519YaoExportServiceResult<RouterAbEd25519YaoExportAdmissionReceiptV1>>;
|
|
243
|
+
admitExport(request: RouterAbEd25519YaoExportAdmissionRequestV1, authorizationIdentity: RouterAbEd25519YaoExportServerAuthorizationIdentityV1, ownershipGeneration: number, admission: RouterAbEd25519YaoExportOperationAdmissionV1, factorRelease: RouterAbEd25519YaoExportEmailOtpFactorReleaseV1 | null, traceContext?: RouterAbTraceContextV1): Promise<RouterAbEd25519YaoExportServiceResult<RouterAbEd25519YaoExportAdmissionReceiptV1>>;
|
|
239
244
|
/**
|
|
240
245
|
* Authorizes one export: its nonce claimed and its state `authorized`, in
|
|
241
246
|
* this state for the caller to commit with the export's operation
|
|
242
247
|
* admission. An export already here answers from its state instead, with
|
|
243
248
|
* the factor release it recorded.
|
|
244
249
|
*/
|
|
245
|
-
authorizeExport(request: RouterAbEd25519YaoExportAdmissionRequestV1, authorizationFingerprint: string, authorizationIdentity: RouterAbEd25519YaoExportServerAuthorizationIdentityV1, factorRelease: RouterAbEd25519YaoExportEmailOtpFactorReleaseV1 | null): RouterAbEd25519YaoExportAuthorizationDecisionV1;
|
|
246
|
-
|
|
250
|
+
authorizeExport(request: RouterAbEd25519YaoExportAdmissionRequestV1, authorizationFingerprint: string, authorizationIdentity: RouterAbEd25519YaoExportServerAuthorizationIdentityV1, ownershipGeneration: number, factorRelease: RouterAbEd25519YaoExportEmailOtpFactorReleaseV1 | null): RouterAbEd25519YaoExportAuthorizationDecisionV1;
|
|
251
|
+
readAdmissionAuthority(request: RouterAbEd25519YaoExportAdmissionRequestV1): Pick<ExportAuthorizationContext, 'authorizationIdentity' | 'ownershipGeneration'> | null;
|
|
247
252
|
prepareAdmitExport(request: RouterAbEd25519YaoExportAdmissionRequestV1, _authorizationIdentity: RouterAbEd25519YaoExportServerAuthorizationIdentityV1): Promise<RouterAbEd25519YaoExportAdmissionPreparationV1>;
|
|
248
253
|
commitAdmitExport(input: RouterAbEd25519YaoExportAdmissionCommitInputV1): RouterAbEd25519YaoExportServiceResult<RouterAbEd25519YaoExportAdmissionReceiptV1>;
|
|
249
254
|
executeExport(request: RouterAbEd25519YaoExportExecuteRequestV1, authorizationIdentity: RouterAbEd25519YaoExportServerAuthorizationIdentityV1, traceContext?: RouterAbTraceContextV1): Promise<RouterAbEd25519YaoExportServiceResult<RouterAbEd25519YaoExportResultV1>>;
|
|
@@ -261,7 +266,8 @@ export declare class RouterAbEd25519YaoExportOwnerProofAuthorizationAdapter impl
|
|
|
261
266
|
private readonly walletAuthMethods;
|
|
262
267
|
private readonly authorizedOperations;
|
|
263
268
|
private readonly resolveEd25519MaterialActivation;
|
|
264
|
-
|
|
269
|
+
private readonly admitEstablishedHome;
|
|
270
|
+
constructor(webAuthn: Pick<RouterApiWebAuthnService, 'verifyWebAuthnAuthenticationLite'>, emailOtp: Pick<RouterApiEmailOtpRouteService, 'verifyEmailOtpChallenge'>, walletAuthMethods: Pick<RouterApiWalletAuthMethodService, 'resolveActivePasskeyAuthorityForVerifiedCredential' | 'resolveActiveEmailOtpAuthorityForVerifiedMethod'>, authorizedOperations: RouterApiAuthorizedOperationService, resolveEd25519MaterialActivation: RouterApiWalletRegistrationService['resolveEd25519MaterialActivation'], admitEstablishedHome: WalletExecutionAuthority['admitEstablishedHome']);
|
|
265
271
|
authorizeAdmission(input: RouterAbEd25519YaoExportAdmissionAuthorizationInputV1): Promise<RouterAbEd25519YaoExportAdmissionAuthorizationResultV1>;
|
|
266
272
|
authorizeExecution(input: RouterAbEd25519YaoExportExecutionAuthorizationInputV1): RouterAbEd25519YaoExportAuthorizationIdentityResolutionResult;
|
|
267
273
|
resolveAuthorizationIdentity(body: RouterAbEd25519YaoExportAdmissionRequestV1): Promise<RouterAbEd25519YaoExportAuthorizationIdentityResolutionResult>;
|
|
@@ -41,6 +41,8 @@ type RouterAbEd25519YaoRecoveryAuthorityProjectionV1 = {
|
|
|
41
41
|
readonly kind: 'replace_active_authority_projection';
|
|
42
42
|
};
|
|
43
43
|
type RouterAbEd25519YaoRecoveryAuthorizationBindingV1 = {
|
|
44
|
+
readonly ownershipGeneration: number;
|
|
45
|
+
} & ({
|
|
44
46
|
readonly kind: 'wallet_recovery';
|
|
45
47
|
readonly walletId: string;
|
|
46
48
|
} | {
|
|
@@ -54,7 +56,7 @@ type RouterAbEd25519YaoRecoveryAuthorizationBindingV1 = {
|
|
|
54
56
|
readonly authorizationId: RouterApiWalletSessionAuthorizationV2AdmissionContext['authorization']['session']['authorizationId'];
|
|
55
57
|
readonly walletSessionId: RouterApiWalletSessionAuthorizationV2AdmissionContext['authorization']['session']['walletSessionId'];
|
|
56
58
|
readonly quotaId: RouterApiWalletSessionAuthorizationV2AdmissionContext['authorization']['session']['quotaId'];
|
|
57
|
-
};
|
|
59
|
+
});
|
|
58
60
|
export interface RouterAbEd25519YaoRecoveryBackend {
|
|
59
61
|
admitRecovery(request: RouterAbEd25519YaoRecoveryAdmissionRequestV1, traceContext?: RouterAbTraceContextV1): Promise<RouterAbEd25519YaoRecoveryBackendResult> | RouterAbEd25519YaoRecoveryBackendResult;
|
|
60
62
|
/**
|
|
@@ -68,11 +70,12 @@ export interface RouterAbEd25519YaoRecoveryBackend {
|
|
|
68
70
|
* the Router, which then reconciles the roles' records instead of starting
|
|
69
71
|
* fresh.
|
|
70
72
|
*/
|
|
71
|
-
executeRecovery(request: RecoveryExecuteRequest,
|
|
73
|
+
executeRecovery(request: RecoveryExecuteRequest, claim: RouterAbEd25519YaoRecoveryExecuteClaimV1, traceContext?: RouterAbTraceContextV1): Promise<RouterAbEd25519YaoRecoveryBackendResult> | RouterAbEd25519YaoRecoveryBackendResult;
|
|
72
74
|
/** Promotes the recovery at the SigningWorker of the attempt's tenant root. */
|
|
73
|
-
activateRecovery(request: RouterAbEd25519YaoRecoveryActivationRequestV1, dispatchRoot: RouterAbEd25519YaoTenantRootWireV1, traceContext?: RouterAbTraceContextV1): Promise<RouterAbEd25519YaoRecoveryBackendResult> | RouterAbEd25519YaoRecoveryBackendResult;
|
|
75
|
+
activateRecovery(request: RouterAbEd25519YaoRecoveryActivationRequestV1, dispatchRoot: RouterAbEd25519YaoTenantRootWireV1, ownershipGeneration: number, traceContext?: RouterAbTraceContextV1): Promise<RouterAbEd25519YaoRecoveryBackendResult> | RouterAbEd25519YaoRecoveryBackendResult;
|
|
74
76
|
}
|
|
75
77
|
export interface RouterAbEd25519YaoRecoveryService {
|
|
78
|
+
recoveryOwnershipGeneration(binding: RecoveryExecuteRequest['binding']): RouterAbEd25519YaoRecoveryServiceResult<number>;
|
|
76
79
|
admitRecovery(request: RouterAbEd25519YaoRecoveryAdmissionRequestV1, authorization: RouterAbEd25519YaoRecoveryAuthorizationBindingV1, traceContext?: RouterAbTraceContextV1): Promise<RouterAbEd25519YaoRecoveryServiceResult<RecoveryAdmissionReceipt>>;
|
|
77
80
|
executeRecovery(request: RecoveryExecuteRequest, authorization: RouterAbEd25519YaoRecoveryAuthorizationBindingV1, traceContext?: RouterAbTraceContextV1): Promise<RouterAbEd25519YaoRecoveryServiceResult<RecoveryExecutionResult>>;
|
|
78
81
|
activateRecovery(request: RouterAbEd25519YaoRecoveryActivationRequestV1, authorization: RouterAbEd25519YaoRecoveryAuthorizationBindingV1, traceContext?: RouterAbTraceContextV1): Promise<RouterAbEd25519YaoRecoveryServiceResult<RouterAbEd25519YaoRecoveryActivationReceiptV1>>;
|
|
@@ -106,6 +109,7 @@ interface RouterAbEd25519YaoRecoveryAdmissionBoundaryV1 {
|
|
|
106
109
|
}
|
|
107
110
|
export type RouterAbEd25519YaoRecoveryExecuteClaimV1 = {
|
|
108
111
|
readonly kind: 'router_ab_ed25519_yao_recovery_execute_claim_v1';
|
|
112
|
+
readonly ownershipGeneration: number;
|
|
109
113
|
readonly lifecycleId: string;
|
|
110
114
|
readonly recoveryKey: string;
|
|
111
115
|
readonly sessionId: string;
|
|
@@ -140,6 +144,7 @@ interface RouterAbEd25519YaoRecoveryExecuteBoundaryV1 {
|
|
|
140
144
|
commitExecuteRecovery(input: RouterAbEd25519YaoRecoveryExecuteCommitInputV1): RouterAbEd25519YaoRecoveryServiceResult<RecoveryExecutionResult>;
|
|
141
145
|
}
|
|
142
146
|
export type RouterAbEd25519YaoRecoveryActivationClaimV1 = {
|
|
147
|
+
readonly ownershipGeneration: number;
|
|
143
148
|
readonly kind: 'router_ab_ed25519_yao_recovery_activation_claim_v1';
|
|
144
149
|
readonly lifecycleId: string;
|
|
145
150
|
readonly recoveryKey: string;
|
|
@@ -201,15 +206,18 @@ export type RouterAbEd25519YaoRecoveryAuthorizationInput = {
|
|
|
201
206
|
readonly body: RouterAbEd25519YaoRecoveryAdmissionRequestV1;
|
|
202
207
|
} | {
|
|
203
208
|
readonly kind: 'execute';
|
|
209
|
+
readonly ownershipGeneration: number;
|
|
204
210
|
readonly request: Request;
|
|
205
211
|
readonly body: RecoveryExecuteRequest;
|
|
206
212
|
} | {
|
|
207
213
|
readonly kind: 'activate';
|
|
214
|
+
readonly ownershipGeneration: number;
|
|
208
215
|
readonly request: Request;
|
|
209
216
|
readonly body: RouterAbEd25519YaoRecoveryActivationRequestV1;
|
|
210
217
|
};
|
|
211
218
|
export type RouterAbEd25519YaoRecoveryAuthorizationResult = {
|
|
212
219
|
readonly ok: true;
|
|
220
|
+
readonly ownershipGeneration: number;
|
|
213
221
|
readonly authorization: {
|
|
214
222
|
readonly kind: 'wallet_session_v2';
|
|
215
223
|
readonly context: RouterApiWalletSessionAuthorizationV2AdmissionContext;
|
|
@@ -222,13 +230,14 @@ export type RouterAbEd25519YaoRecoveryAuthorizationResult = {
|
|
|
222
230
|
};
|
|
223
231
|
} | {
|
|
224
232
|
readonly ok: false;
|
|
233
|
+
readonly ownershipGeneration?: never;
|
|
225
234
|
readonly status: 401 | 403 | 409 | 429 | 503;
|
|
226
235
|
readonly code: string;
|
|
227
236
|
readonly message: string;
|
|
228
237
|
};
|
|
229
|
-
export declare function recoveryAuthorizationBinding(
|
|
238
|
+
export declare function recoveryAuthorizationBinding(admitted: Extract<RouterAbEd25519YaoRecoveryAuthorizationResult, {
|
|
230
239
|
readonly ok: true;
|
|
231
|
-
}>
|
|
240
|
+
}>): RouterAbEd25519YaoRecoveryAuthorizationBindingV1;
|
|
232
241
|
type WarmBootstrapWalletSessionContext = {
|
|
233
242
|
readonly session: RouterApiWalletSessionAuthorizationV2AdmissionContext['authorization']['session'];
|
|
234
243
|
readonly quota: RouterApiWalletSessionAuthorizationV2AdmissionContext['authorization']['quota'] | RouterApiWalletSessionAuthorizationV2ExhaustedCandidateContext['status']['quota'];
|
|
@@ -259,9 +268,6 @@ export type RouterAbEd25519YaoRegistrationFinalizeCapabilityInstallResultV1 = {
|
|
|
259
268
|
readonly code: 'invalid_installation' | 'capability_conflict' | 'capability_retired';
|
|
260
269
|
readonly message: string;
|
|
261
270
|
};
|
|
262
|
-
export interface RouterAbEd25519YaoRegistrationFinalizeCapabilityInstallerV1 {
|
|
263
|
-
installRegistrationFinalizeCapability(input: RouterAbEd25519YaoRegistrationFinalizeCapabilityInstallationV1): Promise<RouterAbEd25519YaoRegistrationFinalizeCapabilityInstallResultV1> | RouterAbEd25519YaoRegistrationFinalizeCapabilityInstallResultV1;
|
|
264
|
-
}
|
|
265
271
|
export interface RouterAbEd25519YaoPersistedActiveCapabilityInstallerV1 {
|
|
266
272
|
installPersistedActiveCapability(input: WalletEd25519YaoActiveCapabilityRecord): Promise<RouterAbEd25519YaoRegistrationFinalizeCapabilityInstallResultV1> | RouterAbEd25519YaoRegistrationFinalizeCapabilityInstallResultV1;
|
|
267
273
|
}
|
|
@@ -540,7 +546,8 @@ type RouterAbEd25519YaoActiveCapabilityRecordBuildResultV1 = {
|
|
|
540
546
|
readonly ok: false;
|
|
541
547
|
}>;
|
|
542
548
|
export declare function buildRouterAbEd25519YaoRegistrationCapabilityRecordV1(input: RouterAbEd25519YaoRegistrationFinalizeCapabilityInstallationV1): RouterAbEd25519YaoActiveCapabilityRecordBuildResultV1;
|
|
543
|
-
export declare
|
|
549
|
+
export declare function resolveRouterAbEd25519YaoActiveCapability(capabilities: ReadonlyMap<string, CapabilityState>, input: RouterAbEd25519YaoActiveCapabilityLookupV1): RouterAbEd25519YaoActiveCapabilityLookupResultV1;
|
|
550
|
+
export declare class InMemoryRouterAbEd25519YaoRecoveryService implements RouterAbEd25519YaoRecoveryService, RouterAbEd25519YaoRecoveryAdmissionBoundaryV1, RouterAbEd25519YaoRecoveryExecuteBoundaryV1, RouterAbEd25519YaoRecoveryActivationBoundaryV1, RouterAbEd25519YaoPersistedActiveCapabilityInstallerV1, RouterAbEd25519YaoActiveCapabilityResolverV1 {
|
|
544
551
|
private readonly backend;
|
|
545
552
|
private readonly capabilityPersistence;
|
|
546
553
|
private readonly capabilities;
|
|
@@ -557,6 +564,7 @@ export declare class InMemoryRouterAbEd25519YaoRecoveryService implements Router
|
|
|
557
564
|
prepareAdmitRecovery(request: RouterAbEd25519YaoRecoveryAdmissionRequestV1, authorization: RouterAbEd25519YaoRecoveryAuthorizationBindingV1, dispatchRoot: RouterAbEd25519YaoTenantRootWireV1, nowMs: number): RouterAbEd25519YaoRecoveryAdmissionPreparationV1;
|
|
558
565
|
commitAdmitRecovery(input: RouterAbEd25519YaoRecoveryAdmissionCommitInputV1): RouterAbEd25519YaoRecoveryServiceResult<RecoveryAdmissionReceipt>;
|
|
559
566
|
executeRecovery(request: RecoveryExecuteRequest, authorization: RouterAbEd25519YaoRecoveryAuthorizationBindingV1, traceContext?: RouterAbTraceContextV1): Promise<RouterAbEd25519YaoRecoveryServiceResult<RecoveryExecutionResult>>;
|
|
567
|
+
recoveryOwnershipGeneration(binding: RecoveryExecuteRequest['binding']): RouterAbEd25519YaoRecoveryServiceResult<number>;
|
|
560
568
|
prepareExecuteRecovery(request: RecoveryExecuteRequest, authorization: RouterAbEd25519YaoRecoveryAuthorizationBindingV1, nowMs: number): RouterAbEd25519YaoRecoveryExecutePreparationV1;
|
|
561
569
|
commitExecuteRecovery(input: RouterAbEd25519YaoRecoveryExecuteCommitInputV1): RouterAbEd25519YaoRecoveryServiceResult<RecoveryExecutionResult>;
|
|
562
570
|
activateRecovery(request: RouterAbEd25519YaoRecoveryActivationRequestV1, authorization: RouterAbEd25519YaoRecoveryAuthorizationBindingV1, traceContext?: RouterAbTraceContextV1): Promise<RouterAbEd25519YaoRecoveryServiceResult<RouterAbEd25519YaoRecoveryActivationReceiptV1>>;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { WalletExecutionAuthority } from '../../walletRegistration/walletRegistrationReservation';
|
|
1
2
|
import type { RouterApiAuthorizationSessionService, RouterApiWalletRegistrationService } from '../../../framework/authServicePort';
|
|
2
3
|
import type { PreparedEd25519RecoveryAdmissionV1 } from '../../passkeyCustody/walletRecoveryKeyManifest';
|
|
3
4
|
import type { RouterAbEd25519YaoRecoveryAuthorizationAdapter, RouterAbEd25519YaoRecoveryAuthorizationInput, RouterAbEd25519YaoRecoveryAuthorizationResult } from './routerAbEd25519YaoRecovery';
|
|
@@ -8,6 +9,7 @@ export interface PreparedEd25519RecoveryAdmissionReaderV1 {
|
|
|
8
9
|
}): Promise<PreparedEd25519RecoveryAdmissionV1 | null>;
|
|
9
10
|
}
|
|
10
11
|
export type RouterAbEd25519YaoRecoveryAuthorizationServicesV1 = {
|
|
12
|
+
readonly admitEstablishedHome: WalletExecutionAuthority['admitEstablishedHome'];
|
|
11
13
|
readonly authorizationSessions: RouterApiAuthorizationSessionService;
|
|
12
14
|
readonly preparedRecoveryAdmission: PreparedEd25519RecoveryAdmissionReaderV1;
|
|
13
15
|
readonly resolveEd25519MaterialActivation: RouterApiWalletRegistrationService['resolveEd25519MaterialActivation'];
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
+
import type { RouterAbEd25519YaoRegistrationExecutionAuthorityV1 } from './routerAbEd25519YaoRegistrationExecutionRecord';
|
|
1
2
|
import { type RouterAbEd25519YaoActivationExecuteRequestV1, type RouterAbEd25519YaoActivationKeysetV1, type RouterAbEd25519YaoRecoveryActivationRequestV1, type RouterAbEd25519YaoRecoveryAdmissionRequestV1, type RouterAbEd25519YaoRegistrationAdmissionRequestV1, type RouterAbEd25519YaoExportAdmissionRequestV1, type RouterAbEd25519YaoExportExecuteRequestV1 } from '../../../../../../shared-ts/src/utils/routerAbEd25519Yao';
|
|
2
3
|
import type { RouterAbEd25519YaoRegistrationBackend, RouterAbEd25519YaoRegistrationBackendResult } from './routerAbEd25519YaoRegistration';
|
|
3
|
-
import type { RouterAbEd25519YaoExportBackend } from '../export/routerAbEd25519YaoExport';
|
|
4
|
-
import type { RouterAbEd25519YaoRecoveryBackend } from '../recovery/routerAbEd25519YaoRecovery';
|
|
5
|
-
import { type RouterAbEd25519YaoTenantRootResolverV1, type RouterAbEd25519YaoTenantRootWireV1 } from '../routerAbEd25519YaoGatewayEnvelope';
|
|
4
|
+
import type { RouterAbEd25519YaoExportBackend, RouterAbEd25519YaoExportExecuteClaimV1 } from '../export/routerAbEd25519YaoExport';
|
|
5
|
+
import type { RouterAbEd25519YaoRecoveryBackend, RouterAbEd25519YaoRecoveryExecuteClaimV1 } from '../recovery/routerAbEd25519YaoRecovery';
|
|
6
|
+
import { type RouterAbEd25519YaoRegistrationSigningRootIdV1, type RouterAbEd25519YaoTenantRootResolverV1, type RouterAbEd25519YaoTenantRootWireV1 } from '../routerAbEd25519YaoGatewayEnvelope';
|
|
6
7
|
import { type RouterAbTraceContextV1 } from '../../../../../../shared-ts/src/utils/routerAbTraceContext';
|
|
7
8
|
type RouterAbEd25519YaoRegistrationExecuteRequestV1 = RouterAbEd25519YaoActivationExecuteRequestV1<'registration'>;
|
|
8
9
|
type RouterAbEd25519YaoRecoveryExecuteRequestV1 = RouterAbEd25519YaoActivationExecuteRequestV1<'recovery'>;
|
|
@@ -28,14 +29,12 @@ export type RouterAbEd25519YaoGatewaySpanV1 = {
|
|
|
28
29
|
export type RouterAbEd25519YaoHttpRegistrationBackendRawEnv = Readonly<Record<string, unknown>>;
|
|
29
30
|
export declare function parseRouterAbEd25519YaoActivationKeysetFromEnvV1(env: RouterAbEd25519YaoHttpRegistrationBackendRawEnv): RouterAbEd25519YaoActivationKeysetV1;
|
|
30
31
|
export interface RouterAbEd25519YaoPinnedRegistrationBackend extends RouterAbEd25519YaoRegistrationBackend {
|
|
31
|
-
resolveRegistrationDispatchRoot(
|
|
32
|
-
executePinnedRegistration(request: RouterAbEd25519YaoRegistrationExecuteRequestV1,
|
|
32
|
+
resolveRegistrationDispatchRoot(signingRootId: RouterAbEd25519YaoRegistrationSigningRootIdV1): Promise<RouterAbEd25519YaoTenantRootWireV1>;
|
|
33
|
+
executePinnedRegistration(request: RouterAbEd25519YaoRegistrationExecuteRequestV1, authority: RouterAbEd25519YaoRegistrationExecutionAuthorityV1, traceContext: RouterAbTraceContextV1): Promise<RouterAbEd25519YaoRegistrationBackendResult>;
|
|
33
34
|
consumeRegistration(input: RouterAbEd25519YaoRegistrationConsumeInputV1): Promise<RouterAbEd25519YaoRegistrationConsumeOutcomeV1>;
|
|
34
35
|
}
|
|
35
36
|
export type RouterAbEd25519YaoRegistrationConsumeInputV1 = {
|
|
36
|
-
readonly
|
|
37
|
-
readonly walletId: string;
|
|
38
|
-
readonly lifecycleId: string;
|
|
37
|
+
readonly authority: RouterAbEd25519YaoRegistrationExecutionAuthorityV1;
|
|
39
38
|
readonly sessionId: readonly number[];
|
|
40
39
|
readonly consumerBinding: string;
|
|
41
40
|
};
|
|
@@ -61,18 +60,18 @@ export declare class RouterAbEd25519YaoHttpRegistrationBackend implements Router
|
|
|
61
60
|
admit(request: RouterAbEd25519YaoRegistrationAdmissionRequestV1, _traceContext?: RouterAbTraceContextV1): Promise<RouterAbEd25519YaoRegistrationBackendResult>;
|
|
62
61
|
admitRecovery(request: RouterAbEd25519YaoRecoveryAdmissionRequestV1, _traceContext?: RouterAbTraceContextV1): Promise<RouterAbEd25519YaoRegistrationBackendResult>;
|
|
63
62
|
admitExport(request: RouterAbEd25519YaoExportAdmissionRequestV1, _traceContext?: RouterAbTraceContextV1): Promise<RouterAbEd25519YaoRegistrationBackendResult>;
|
|
64
|
-
executeExport(request: RouterAbEd25519YaoExportExecuteRequestV1,
|
|
63
|
+
executeExport(request: RouterAbEd25519YaoExportExecuteRequestV1, claim: RouterAbEd25519YaoExportExecuteClaimV1, traceContext?: RouterAbTraceContextV1): Promise<RouterAbEd25519YaoRegistrationBackendResult>;
|
|
65
64
|
private keyset;
|
|
66
65
|
private admitActivation;
|
|
67
|
-
execute(request: RouterAbEd25519YaoRegistrationExecuteRequestV1, admissionRequest: RouterAbEd25519YaoRegistrationAdmissionRequestV1, traceContext?: RouterAbTraceContextV1): Promise<RouterAbEd25519YaoRegistrationBackendResult>;
|
|
68
|
-
resolveRegistrationDispatchRoot(
|
|
69
|
-
executePinnedRegistration(request: RouterAbEd25519YaoRegistrationExecuteRequestV1,
|
|
66
|
+
execute(request: RouterAbEd25519YaoRegistrationExecuteRequestV1, admissionRequest: RouterAbEd25519YaoRegistrationAdmissionRequestV1, ownershipGeneration: number, traceContext?: RouterAbTraceContextV1): Promise<RouterAbEd25519YaoRegistrationBackendResult>;
|
|
67
|
+
resolveRegistrationDispatchRoot(signingRootId: RouterAbEd25519YaoRegistrationSigningRootIdV1): Promise<RouterAbEd25519YaoTenantRootWireV1>;
|
|
68
|
+
executePinnedRegistration(request: RouterAbEd25519YaoRegistrationExecuteRequestV1, authority: RouterAbEd25519YaoRegistrationExecutionAuthorityV1, traceContext: RouterAbTraceContextV1): Promise<RouterAbEd25519YaoRegistrationBackendResult>;
|
|
70
69
|
consumeRegistration(input: RouterAbEd25519YaoRegistrationConsumeInputV1): Promise<RouterAbEd25519YaoRegistrationConsumeOutcomeV1>;
|
|
71
70
|
resolveRecoveryDispatchRoot(admissionRequest: RouterAbEd25519YaoRecoveryAdmissionRequestV1): Promise<RouterAbEd25519YaoTenantRootWireV1>;
|
|
72
|
-
executeRecovery(request: RouterAbEd25519YaoRecoveryExecuteRequestV1,
|
|
71
|
+
executeRecovery(request: RouterAbEd25519YaoRecoveryExecuteRequestV1, claim: RouterAbEd25519YaoRecoveryExecuteClaimV1, traceContext?: RouterAbTraceContextV1): Promise<RouterAbEd25519YaoRegistrationBackendResult>;
|
|
73
72
|
private executeRouterRequest;
|
|
74
73
|
private sendRouterRequest;
|
|
75
|
-
activateRecovery(request: RouterAbEd25519YaoRecoveryActivationRequestV1, dispatchRoot: RouterAbEd25519YaoTenantRootWireV1, traceContext?: RouterAbTraceContextV1): Promise<RouterAbEd25519YaoRegistrationBackendResult>;
|
|
74
|
+
activateRecovery(request: RouterAbEd25519YaoRecoveryActivationRequestV1, dispatchRoot: RouterAbEd25519YaoTenantRootWireV1, ownershipGeneration: number, traceContext?: RouterAbTraceContextV1): Promise<RouterAbEd25519YaoRegistrationBackendResult>;
|
|
76
75
|
private post;
|
|
77
76
|
private headers;
|
|
78
77
|
private request;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { type RouterAbEd25519YaoActivationAdmissionReceiptV1, type RouterAbEd25519YaoActivationExecuteRequestV1, type RouterAbEd25519YaoActivationResultV1, type RouterAbEd25519YaoRegistrationAdmissionRequestV1, type RouterAbEd25519YaoBytes32V1 } from '../../../../../../shared-ts/src/utils/routerAbEd25519Yao';
|
|
2
2
|
import { type RouterAbTraceContextV1 } from '../../../../../../shared-ts/src/utils/routerAbTraceContext';
|
|
3
|
+
import type { Variant } from '../../../../../../shared-ts/src/utils/variant';
|
|
3
4
|
import { type RouterApiModule } from '../../../framework/modules';
|
|
4
5
|
import type { RouterAbEd25519YaoRegistrationExecuteAdmissionContextV1, RouterAbEd25519YaoTenantRootWireV1 } from '../routerAbEd25519YaoGatewayEnvelope';
|
|
5
6
|
type RouterAbEd25519YaoRegistrationAdmissionReceiptV1 = RouterAbEd25519YaoActivationAdmissionReceiptV1<'registration'>;
|
|
@@ -30,11 +31,11 @@ export type RouterAbEd25519YaoRegistrationBackendResult = {
|
|
|
30
31
|
export interface RouterAbEd25519YaoRegistrationBackend {
|
|
31
32
|
takeLastRouterServerTiming?(): string | null;
|
|
32
33
|
admit(request: RouterAbEd25519YaoRegistrationAdmissionRequestV1, traceContext?: RouterAbTraceContextV1): Promise<RouterAbEd25519YaoRegistrationBackendResult> | RouterAbEd25519YaoRegistrationBackendResult;
|
|
33
|
-
execute(request: RouterAbEd25519YaoRegistrationExecuteRequestV1, admissionRequest: RouterAbEd25519YaoRegistrationExecuteAdmissionContextV1, traceContext?: RouterAbTraceContextV1): Promise<RouterAbEd25519YaoRegistrationBackendResult> | RouterAbEd25519YaoRegistrationBackendResult;
|
|
34
|
+
execute(request: RouterAbEd25519YaoRegistrationExecuteRequestV1, admissionRequest: RouterAbEd25519YaoRegistrationExecuteAdmissionContextV1, ownershipGeneration: number, traceContext?: RouterAbTraceContextV1): Promise<RouterAbEd25519YaoRegistrationBackendResult> | RouterAbEd25519YaoRegistrationBackendResult;
|
|
34
35
|
}
|
|
35
36
|
export interface RouterAbEd25519YaoRegistrationService {
|
|
36
37
|
admit(request: RouterAbEd25519YaoRegistrationAdmissionRequestV1, traceContext?: RouterAbTraceContextV1): Promise<RouterAbEd25519YaoRegistrationServiceResult<RouterAbEd25519YaoRegistrationAdmissionReceiptV1>>;
|
|
37
|
-
execute(request: RouterAbEd25519YaoRegistrationExecuteRequestV1, traceContext?: RouterAbTraceContextV1): Promise<RouterAbEd25519YaoRegistrationServiceResult<RouterAbEd25519YaoRegistrationResultV1>>;
|
|
38
|
+
execute(request: RouterAbEd25519YaoRegistrationExecuteRequestV1, ownershipGeneration: number, traceContext?: RouterAbTraceContextV1): Promise<RouterAbEd25519YaoRegistrationServiceResult<RouterAbEd25519YaoRegistrationResultV1>>;
|
|
38
39
|
}
|
|
39
40
|
export type RouterAbEd25519YaoRegistrationAdmissionClaimV1 = {
|
|
40
41
|
readonly kind: 'router_ab_ed25519_yao_registration_admission_claim_v1';
|
|
@@ -109,12 +110,15 @@ export type RouterAbEd25519YaoRegistrationAuthorizationInput = {
|
|
|
109
110
|
};
|
|
110
111
|
export type RouterAbEd25519YaoRegistrationAuthorizationResult = {
|
|
111
112
|
ok: true;
|
|
113
|
+
ownershipGeneration: number;
|
|
112
114
|
} | {
|
|
113
115
|
ok: false;
|
|
116
|
+
ownershipGeneration?: never;
|
|
114
117
|
status: 401 | 403 | 409 | 429 | 503;
|
|
115
118
|
code: string;
|
|
116
119
|
message: string;
|
|
117
120
|
};
|
|
121
|
+
export type RouterAbEd25519YaoRegistrationAuthorizationFailure = Variant<RouterAbEd25519YaoRegistrationAuthorizationResult, 'ok', false>;
|
|
118
122
|
export interface RouterAbEd25519YaoRegistrationAuthorizationAdapter {
|
|
119
123
|
authorize(input: RouterAbEd25519YaoRegistrationAuthorizationInput): Promise<RouterAbEd25519YaoRegistrationAuthorizationResult> | RouterAbEd25519YaoRegistrationAuthorizationResult;
|
|
120
124
|
}
|
|
@@ -191,7 +195,7 @@ export declare class InMemoryRouterAbEd25519YaoRegistrationService implements Ro
|
|
|
191
195
|
admit(request: RouterAbEd25519YaoRegistrationAdmissionRequestV1, traceContext?: RouterAbTraceContextV1): Promise<RouterAbEd25519YaoRegistrationServiceResult<RouterAbEd25519YaoRegistrationAdmissionReceiptV1>>;
|
|
192
196
|
prepareAdmit(request: RouterAbEd25519YaoRegistrationAdmissionRequestV1): RouterAbEd25519YaoRegistrationAdmissionPreparationV1;
|
|
193
197
|
commitAdmit(input: RouterAbEd25519YaoRegistrationAdmissionCommitInputV1): RouterAbEd25519YaoRegistrationServiceResult<RouterAbEd25519YaoRegistrationAdmissionReceiptV1>;
|
|
194
|
-
execute(request: RouterAbEd25519YaoRegistrationExecuteRequestV1, traceContext?: RouterAbTraceContextV1): Promise<RouterAbEd25519YaoRegistrationServiceResult<RouterAbEd25519YaoRegistrationResultV1>>;
|
|
198
|
+
execute(request: RouterAbEd25519YaoRegistrationExecuteRequestV1, ownershipGeneration: number, traceContext?: RouterAbTraceContextV1): Promise<RouterAbEd25519YaoRegistrationServiceResult<RouterAbEd25519YaoRegistrationResultV1>>;
|
|
195
199
|
prepareExecute(request: RouterAbEd25519YaoRegistrationExecuteRequestV1): RouterAbEd25519YaoRegistrationExecutePreparationV1;
|
|
196
200
|
commitExecute(input: RouterAbEd25519YaoRegistrationExecuteCommitInputV1): RouterAbEd25519YaoRegistrationServiceResult<RouterAbEd25519YaoRegistrationResultV1>;
|
|
197
201
|
consumeActivated(request: RouterAbEd25519YaoActivationConsumptionRequestV1): RouterAbEd25519YaoActivationConsumptionResultV1;
|
|
@@ -11,6 +11,7 @@ type AdmissionReceipt = RouterAbEd25519YaoActivationAdmissionReceiptV1<'registra
|
|
|
11
11
|
* that consumes it) belongs to the Router's wallet object.
|
|
12
12
|
*/
|
|
13
13
|
export type RouterAbEd25519YaoRegistrationExecutionAuthorityV1 = {
|
|
14
|
+
readonly ownershipGeneration: number;
|
|
14
15
|
readonly lifecycleId: string;
|
|
15
16
|
readonly admissionRequest: RouterAbEd25519YaoRegistrationAdmissionRequestV1;
|
|
16
17
|
readonly admissionReceipt: AdmissionReceipt;
|