@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
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { D1DatabaseLike, D1PreparedStatementLike } from '../../../../storage/tenantRoute';
|
|
1
|
+
import type { D1DatabaseLike, D1PreparedStatementLike, D1ResultLike } from '../../../../storage/tenantRoute';
|
|
2
2
|
import type { RouterAbEd25519YaoLifecycleDecisionV1 } from '../../../domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoLifecycleDecision';
|
|
3
3
|
/**
|
|
4
4
|
* The Gateway's Ed25519 Yao lifecycle decisions, in the signer database. A
|
|
@@ -16,6 +16,8 @@ export declare class CloudflareD1Ed25519YaoLifecycleDecisionStoreV1 {
|
|
|
16
16
|
readonly envId: string;
|
|
17
17
|
});
|
|
18
18
|
read(lifecycleId: string): Promise<RouterAbEd25519YaoLifecycleDecisionV1 | null>;
|
|
19
|
+
prepareRead(lifecycleId: string): D1PreparedStatementLike;
|
|
20
|
+
parseRead(lifecycleId: string, result: D1ResultLike<Record<string, unknown>>): RouterAbEd25519YaoLifecycleDecisionV1 | null;
|
|
19
21
|
/**
|
|
20
22
|
* The statements that record `decision`, for a batch whose other statements
|
|
21
23
|
* make its finalization visible. The batch aborts unless they insert the
|
|
@@ -3,4 +3,5 @@ import type { VersionedJsonObject } from '../../../framework/versionedJsonRecord
|
|
|
3
3
|
import { type RouterAbEd25519YaoProductRegistrationPartitionedStateStoreV1 } from '../../../domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistrationPartitionedStateStore';
|
|
4
4
|
export type RouterAbEd25519YaoProductRegistrationPartitionedStateD1OptionsV1 = Omit<CloudflareD1VersionedJsonRecordStoreOptions<VersionedJsonObject>, 'encode' | 'parse'>;
|
|
5
5
|
export declare function createRouterAbEd25519YaoProductRegistrationPartitionedStateStoreFromD1V1(options: RouterAbEd25519YaoProductRegistrationPartitionedStateD1OptionsV1): RouterAbEd25519YaoProductRegistrationPartitionedStateStoreV1;
|
|
6
|
+
export declare function evictWalletEd25519CapabilityCache(options: RouterAbEd25519YaoProductRegistrationPartitionedStateD1OptionsV1, walletId: string): Promise<void>;
|
|
6
7
|
//# sourceMappingURL=d1Ed25519YaoProductRegistrationPartitionedStateStore.d.ts.map
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { type WalletId } from '../../../../../../shared-ts/src/utils/domainIds';
|
|
2
|
+
import type { D1PreparedStatementLike } from '../../../../storage/tenantRoute';
|
|
3
|
+
import type { VersionedJsonObject } from '../../../framework/versionedJsonRecordStore';
|
|
4
|
+
import type { CloudflareD1VersionedJsonRecordStoreOptions } from '../versionedJson/d1VersionedJsonRecordStore';
|
|
5
|
+
import { type RouterAbEd25519YaoProductRegistrationPartitionRecordV1 } from '../../../domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistrationPartitionedStateStore';
|
|
6
|
+
export declare function collectChangedStateWallets(before: RouterAbEd25519YaoProductRegistrationPartitionRecordV1 | null, after: RouterAbEd25519YaoProductRegistrationPartitionRecordV1, wallets: Set<WalletId>): void;
|
|
7
|
+
export declare function lifecycleWriteFenceStatements(options: Pick<CloudflareD1VersionedJsonRecordStoreOptions<VersionedJsonObject>, 'database' | 'scope'>, wallets: ReadonlySet<WalletId>): D1PreparedStatementLike[];
|
|
8
|
+
//# sourceMappingURL=d1Ed25519YaoStateWriteFence.d.ts.map
|
package/dist/types/wallet-server/src/router/cloudflare/d1/ed25519Yao/d1WalletCeremonyActivity.d.ts
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { WalletId } from '../../../../../../shared-ts/src/utils/domainIds';
|
|
2
|
+
import { type D1TenantScope } from '../../../../core/d1TenantStore';
|
|
3
|
+
import type { D1DatabaseLike, D1PreparedStatementLike } from '../../../../storage/tenantRoute';
|
|
4
|
+
import type { RouterAbEd25519YaoProductRegistrationCeremonyStateV1 } from '../../../domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistrationPartitioning';
|
|
5
|
+
type Ceremony = RouterAbEd25519YaoProductRegistrationCeremonyStateV1;
|
|
6
|
+
export declare class D1WalletCeremonyActivity {
|
|
7
|
+
private readonly database;
|
|
8
|
+
private readonly scope;
|
|
9
|
+
constructor(database: D1DatabaseLike, scope: D1TenantScope);
|
|
10
|
+
hasPending(walletId: WalletId): Promise<boolean>;
|
|
11
|
+
project(recordKey: string, walletId: WalletId, settled: boolean): D1PreparedStatementLike;
|
|
12
|
+
}
|
|
13
|
+
export declare function ceremonySettled(ceremony: Ceremony): boolean;
|
|
14
|
+
export {};
|
|
15
|
+
//# sourceMappingURL=d1WalletCeremonyActivity.d.ts.map
|
package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpChallengeIssuer.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { EMAIL_OTP_CHANNEL, WALLET_EMAIL_OTP_ACTIONS, WALLET_EMAIL_OTP_REGISTRATION_OPERATION, WALLET_EMAIL_OTP_DEVICE_LINK_OPERATION, WALLET_EMAIL_OTP_UNLOCK_OPERATION } from '../../../../../../shared-ts/src/utils/emailOtpDomain';
|
|
1
|
+
import { EMAIL_OTP_CHANNEL, WALLET_EMAIL_OTP_ACTIONS, WALLET_EMAIL_OTP_REGISTRATION_OPERATION, WALLET_EMAIL_OTP_DEVICE_LINK_OPERATION, WALLET_EMAIL_OTP_RELOCATION_OPERATION, WALLET_EMAIL_OTP_UNLOCK_OPERATION } from '../../../../../../shared-ts/src/utils/emailOtpDomain';
|
|
2
2
|
import type { EmailOtpChallengeOperation, EmailOtpLoginChallengeOperation } from '../../../../core/EmailOtpStores';
|
|
3
3
|
import { EMAIL_OTP_CODE_LENGTH } from '../../../../core/authService/emailOtpConfig';
|
|
4
4
|
import type { CloudflareD1EmailOtpChallengeStore } from './d1EmailOtpChallengeStore';
|
|
@@ -19,6 +19,10 @@ type EmailOtpChallengeIssueBaseInput = {
|
|
|
19
19
|
readonly requestOrigin?: unknown;
|
|
20
20
|
};
|
|
21
21
|
type EmailOtpChallengeIssueInput = (EmailOtpChallengeIssueBaseInput & {
|
|
22
|
+
readonly action: typeof WALLET_EMAIL_OTP_ACTIONS.relocation;
|
|
23
|
+
readonly operation: typeof WALLET_EMAIL_OTP_RELOCATION_OPERATION;
|
|
24
|
+
readonly expiresAtMs: number;
|
|
25
|
+
}) | (EmailOtpChallengeIssueBaseInput & {
|
|
22
26
|
readonly action: typeof WALLET_EMAIL_OTP_ACTIONS.login;
|
|
23
27
|
readonly operation: EmailOtpLoginChallengeOperation;
|
|
24
28
|
}) | (EmailOtpChallengeIssueBaseInput & {
|
|
@@ -73,6 +77,7 @@ export declare class CloudflareD1EmailOtpChallengeIssuer {
|
|
|
73
77
|
readonly emailOtpEnrollments: CloudflareD1EmailOtpEnrollmentStore;
|
|
74
78
|
readonly emailOtpRateLimits: CloudflareD1EmailOtpRateLimitStore;
|
|
75
79
|
});
|
|
80
|
+
challengeExpiresAt(nowMs: number): number;
|
|
76
81
|
create(input: EmailOtpChallengeIssueInput): Promise<EmailOtpChallengeIssueResult>;
|
|
77
82
|
private readActiveEnrollment;
|
|
78
83
|
}
|
package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpChallengeStore.d.ts
CHANGED
|
@@ -45,6 +45,7 @@ export declare class CloudflareD1EmailOtpChallengeStore {
|
|
|
45
45
|
deleteActiveOverflow(input: EmailOtpChallengeContextInput & {
|
|
46
46
|
readonly maxActiveChallenges: number;
|
|
47
47
|
}): Promise<EmailOtpChallengeRecord[]>;
|
|
48
|
+
putIfAbsent(record: EmailOtpChallengeRecord): Promise<EmailOtpChallengeRecord>;
|
|
48
49
|
put(record: EmailOtpChallengeRecord): Promise<void>;
|
|
49
50
|
updateAttemptCount(record: EmailOtpChallengeRecord, attemptCount: number): Promise<void>;
|
|
50
51
|
delete(challengeId: string): Promise<void>;
|
package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpChallengeVerifier.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { D1PreparedStatementLike } from '../../../../storage/tenantRoute';
|
|
2
|
-
import { EMAIL_OTP_CHANNEL, WALLET_EMAIL_OTP_ACTIONS, WALLET_EMAIL_OTP_DEVICE_LINK_OPERATION, WALLET_EMAIL_OTP_UNLOCK_OPERATION } from '../../../../../../shared-ts/src/utils/emailOtpDomain';
|
|
2
|
+
import { EMAIL_OTP_CHANNEL, WALLET_EMAIL_OTP_ACTIONS, WALLET_EMAIL_OTP_DEVICE_LINK_OPERATION, WALLET_EMAIL_OTP_RELOCATION_OPERATION, WALLET_EMAIL_OTP_UNLOCK_OPERATION } from '../../../../../../shared-ts/src/utils/emailOtpDomain';
|
|
3
3
|
import type { EmailOtpLoginChallengeOperation, EmailOtpWalletEnrollmentRecord } from '../../../../core/EmailOtpStores';
|
|
4
4
|
import type { CloudflareD1EmailOtpChallengeStore } from './d1EmailOtpChallengeStore';
|
|
5
5
|
import type { CloudflareD1EmailOtpEnrollmentStore } from './d1EmailOtpEnrollmentStore';
|
|
@@ -17,6 +17,9 @@ type EmailOtpExistingChallengeVerifyBaseInput = {
|
|
|
17
17
|
export type EmailOtpExistingChallengeVerifyInput = (EmailOtpExistingChallengeVerifyBaseInput & {
|
|
18
18
|
readonly action: typeof WALLET_EMAIL_OTP_ACTIONS.login;
|
|
19
19
|
readonly operation: EmailOtpLoginChallengeOperation;
|
|
20
|
+
}) | (EmailOtpExistingChallengeVerifyBaseInput & {
|
|
21
|
+
readonly action: typeof WALLET_EMAIL_OTP_ACTIONS.relocation;
|
|
22
|
+
readonly operation: typeof WALLET_EMAIL_OTP_RELOCATION_OPERATION;
|
|
20
23
|
}) | (EmailOtpExistingChallengeVerifyBaseInput & {
|
|
21
24
|
readonly action: typeof WALLET_EMAIL_OTP_ACTIONS.deviceLink;
|
|
22
25
|
readonly operation: typeof WALLET_EMAIL_OTP_DEVICE_LINK_OPERATION;
|
package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpRateLimitStore.d.ts
CHANGED
|
@@ -1,45 +1,22 @@
|
|
|
1
|
+
import type { D1DatabaseLike } from '../../../../storage/tenantRoute';
|
|
1
2
|
import type { ScopedD1Prepare } from '../../../../core/emailOtpD1Statements';
|
|
2
3
|
import type { RateLimitResult } from '../../../../core/authService/rateLimits';
|
|
3
4
|
import type { EmailOtpRateLimitPolicy } from '../auth/d1RouterApiAuthConfig';
|
|
4
|
-
import { type EmailOtpRateLimitScope } from './d1EmailOtpRecords';
|
|
5
|
+
import { type EmailOtpRateLimitScope, type EmailOtpRateLimitConsumeInput } from './d1EmailOtpRecords';
|
|
5
6
|
type EmailOtpRateLimitPolicies = {
|
|
6
7
|
readonly [K in EmailOtpRateLimitScope]: EmailOtpRateLimitPolicy;
|
|
7
8
|
};
|
|
8
|
-
type EmailOtpRateLimitConsumeInput = {
|
|
9
|
-
readonly scope: EmailOtpRateLimitScope;
|
|
10
|
-
readonly action?: string;
|
|
11
|
-
readonly userId?: string;
|
|
12
|
-
readonly walletId?: string;
|
|
13
|
-
readonly providerSubject?: string;
|
|
14
|
-
readonly orgId?: string;
|
|
15
|
-
readonly clientIp?: string;
|
|
16
|
-
};
|
|
17
9
|
type EmailOtpRateLimitConsumeResult = Readonly<RateLimitResult>;
|
|
18
10
|
export declare class CloudflareD1EmailOtpRateLimitStore {
|
|
19
|
-
private readonly
|
|
20
|
-
private readonly counter;
|
|
11
|
+
private readonly input;
|
|
21
12
|
constructor(input: {
|
|
22
13
|
readonly prepare: ScopedD1Prepare;
|
|
14
|
+
readonly batch: D1DatabaseLike['batch'];
|
|
23
15
|
readonly rateLimits: EmailOtpRateLimitPolicies;
|
|
24
|
-
readonly counter?: EmailOtpRateLimitCounter;
|
|
25
16
|
});
|
|
26
17
|
consume(input: EmailOtpRateLimitConsumeInput): Promise<EmailOtpRateLimitConsumeResult>;
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
consume(input: {
|
|
30
|
-
readonly key: string;
|
|
31
|
-
readonly limit: number;
|
|
32
|
-
readonly windowMs: number;
|
|
33
|
-
}): Promise<EmailOtpRateLimitConsumeResult>;
|
|
34
|
-
}
|
|
35
|
-
export declare class D1EmailOtpRateLimitCounter implements EmailOtpRateLimitCounter {
|
|
36
|
-
private readonly prepare;
|
|
37
|
-
constructor(prepare: ScopedD1Prepare);
|
|
38
|
-
consume(input: {
|
|
39
|
-
readonly key: string;
|
|
40
|
-
readonly limit: number;
|
|
41
|
-
readonly windowMs: number;
|
|
42
|
-
}): Promise<EmailOtpRateLimitConsumeResult>;
|
|
18
|
+
private prepareConsume;
|
|
19
|
+
private readCounter;
|
|
43
20
|
}
|
|
44
21
|
export {};
|
|
45
22
|
//# sourceMappingURL=d1EmailOtpRateLimitStore.d.ts.map
|
|
@@ -72,19 +72,33 @@ export declare function generateNumericOtp(length: number): string;
|
|
|
72
72
|
export declare function clampedEmailOtpUnlockTtlMs(input: unknown): number;
|
|
73
73
|
export declare function decodeFixedBase64Url(input: string, byteLength: number): Uint8Array | null;
|
|
74
74
|
export declare function bytesEqual(left: Uint8Array, right: Uint8Array): boolean;
|
|
75
|
-
export
|
|
75
|
+
export type EmailOtpCounterKey = {
|
|
76
|
+
readonly kind: 'wallet';
|
|
77
|
+
readonly walletId: string;
|
|
78
|
+
readonly key: string;
|
|
79
|
+
} | {
|
|
80
|
+
readonly kind: 'regional';
|
|
81
|
+
readonly walletId?: never;
|
|
82
|
+
readonly key: string;
|
|
83
|
+
};
|
|
84
|
+
export type EmailOtpRateLimitConsumeInput = {
|
|
76
85
|
readonly scope: EmailOtpRateLimitScope;
|
|
77
86
|
readonly action?: string;
|
|
78
|
-
readonly policy: {
|
|
79
|
-
readonly limit: number;
|
|
80
|
-
readonly windowMs: number;
|
|
81
|
-
};
|
|
82
87
|
readonly userId?: string;
|
|
83
|
-
readonly walletId?: string;
|
|
84
88
|
readonly providerSubject?: string;
|
|
85
89
|
readonly orgId?: string;
|
|
86
90
|
readonly clientIp?: string;
|
|
87
|
-
}
|
|
91
|
+
} & ({
|
|
92
|
+
readonly kind: 'wallet';
|
|
93
|
+
readonly walletId: string;
|
|
94
|
+
} | {
|
|
95
|
+
readonly kind: 'regional';
|
|
96
|
+
readonly walletId?: never;
|
|
97
|
+
});
|
|
98
|
+
export declare function emailOtpRateLimitKeys(input: EmailOtpRateLimitConsumeInput, policy: {
|
|
99
|
+
readonly limit: number;
|
|
100
|
+
readonly windowMs: number;
|
|
101
|
+
}): readonly EmailOtpCounterKey[];
|
|
88
102
|
export declare function emailOtpRateLimitExceeded(row: D1EmailOtpRateLimitRow | null): {
|
|
89
103
|
readonly ok: false;
|
|
90
104
|
readonly code: 'rate_limited';
|
|
@@ -37,6 +37,16 @@ export type WalletRecoveryCodeLocatorRecord = {
|
|
|
37
37
|
readonly walletId: WalletId;
|
|
38
38
|
readonly recoveryKeyId: DerivedWalletRecoveryKeyId;
|
|
39
39
|
};
|
|
40
|
+
/**
|
|
41
|
+
* A registration commit whose recovery-code routes are claimed. `commit`
|
|
42
|
+
* writes the records, and it needs the wallet that the registration commits.
|
|
43
|
+
*/
|
|
44
|
+
export type WalletCustodyRegistrationReservation = Extract<WalletCustodyRegistrationCommitResult, {
|
|
45
|
+
kind: 'inconsistent';
|
|
46
|
+
}> | {
|
|
47
|
+
readonly kind: 'reserved';
|
|
48
|
+
readonly commit: () => Promise<WalletCustodyRegistrationCommitResult>;
|
|
49
|
+
};
|
|
40
50
|
export type WalletCustodyRegistrationCommitResult = {
|
|
41
51
|
readonly kind: 'committed';
|
|
42
52
|
readonly envelopeStoreVersion: string;
|
|
@@ -137,6 +147,12 @@ export declare class CloudflareD1WalletCustodyCommitStore {
|
|
|
137
147
|
private readEmailOtpEnrollment;
|
|
138
148
|
private walletRecoveryGoogleEmailOtpFinalizedAttemptMatches;
|
|
139
149
|
private walletRecoveryGoogleEmailOtpChallengeExists;
|
|
150
|
+
/**
|
|
151
|
+
* Checks the commit and claims its recovery-code routes. The claim is an
|
|
152
|
+
* exact-retryable directory write that needs no local record, so a caller
|
|
153
|
+
* may run it beside its other remote effects and write afterwards.
|
|
154
|
+
*/
|
|
155
|
+
reserveRegistration(commit: WalletCustodyRegistrationCommit): Promise<WalletCustodyRegistrationReservation>;
|
|
140
156
|
/**
|
|
141
157
|
* Writes the envelope and the recovery set in one transaction.
|
|
142
158
|
*
|
|
@@ -144,7 +160,7 @@ export declare class CloudflareD1WalletCustodyCommitStore {
|
|
|
144
160
|
* key already holds a row, so a repeated registration cannot silently replace
|
|
145
161
|
* an established wallet's custody.
|
|
146
162
|
*/
|
|
147
|
-
|
|
163
|
+
private commitReservedRegistration;
|
|
148
164
|
/**
|
|
149
165
|
* Reads a wallet's recovery envelope set. Returns null when absent, and also
|
|
150
166
|
* when the stored row is not a recovery set — a row that fails its own parser
|
|
@@ -17,18 +17,41 @@ type D1RegistrationCeremonyRecordMutation = {
|
|
|
17
17
|
readonly value: Record<string, unknown>;
|
|
18
18
|
readonly expiresAtMs: number;
|
|
19
19
|
};
|
|
20
|
+
type D1RegistrationCeremonyVersionedUpdate = {
|
|
21
|
+
readonly scope: string;
|
|
22
|
+
readonly id: string;
|
|
23
|
+
readonly expectedVersion: number;
|
|
24
|
+
readonly next: Record<string, unknown>;
|
|
25
|
+
readonly expiresAtMs: number;
|
|
26
|
+
};
|
|
20
27
|
type D1RegistrationCeremonyAtomicBranchClaim = {
|
|
21
28
|
readonly value: Record<string, unknown>;
|
|
22
29
|
readonly version: number;
|
|
23
30
|
};
|
|
31
|
+
type StoredRow = {
|
|
32
|
+
readonly version?: unknown;
|
|
33
|
+
readonly record_json?: unknown;
|
|
34
|
+
readonly expires_at_ms?: unknown;
|
|
35
|
+
};
|
|
24
36
|
export declare class D1RegistrationCeremonyRecordStore {
|
|
25
37
|
private readonly database;
|
|
26
38
|
private readonly tenantScope;
|
|
27
39
|
private readonly keyPrefix;
|
|
28
40
|
constructor(options: D1RegistrationCeremonyRecordStoreOptions);
|
|
29
41
|
get(scope: string, id: string): Promise<D1RegistrationCeremonyStoredRecord | null>;
|
|
42
|
+
prepareGet(scope: string, id: string): D1PreparedStatementLike;
|
|
43
|
+
parseGet(scope: string, id: string, row: StoredRow | null): Promise<D1RegistrationCeremonyStoredRecord | null>;
|
|
30
44
|
putExact(mutation: D1RegistrationCeremonyRecordMutation): Promise<void>;
|
|
31
45
|
insertOrRead(mutation: D1RegistrationCeremonyRecordMutation): Promise<D1RegistrationCeremonyStoredRecord>;
|
|
46
|
+
/**
|
|
47
|
+
* Stores `mutation` and opens `copyScope` with the value that `mutation`'s
|
|
48
|
+
* key then holds, in one batch. A competing insert leaves its winner in both
|
|
49
|
+
* records, as two `insertOrRead` calls in series would.
|
|
50
|
+
*/
|
|
51
|
+
insertOrReadWithCopy(mutation: D1RegistrationCeremonyRecordMutation, copyScope: string, companion: readonly D1PreparedStatementLike[]): Promise<{
|
|
52
|
+
readonly record: D1RegistrationCeremonyStoredRecord;
|
|
53
|
+
readonly copy: D1RegistrationCeremonyStoredRecord;
|
|
54
|
+
}>;
|
|
32
55
|
updateExpected(input: {
|
|
33
56
|
readonly scope: string;
|
|
34
57
|
readonly id: string;
|
|
@@ -48,13 +71,14 @@ export declare class D1RegistrationCeremonyRecordStore {
|
|
|
48
71
|
};
|
|
49
72
|
readonly patch: Record<string, unknown>;
|
|
50
73
|
}): Promise<D1RegistrationCeremonyAtomicBranchClaim | null>;
|
|
51
|
-
updateExpectedVersion(input:
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
74
|
+
updateExpectedVersion(input: D1RegistrationCeremonyVersionedUpdate): Promise<number>;
|
|
75
|
+
/**
|
|
76
|
+
* The update of `updateExpectedVersion` with its guard, for a batch that
|
|
77
|
+
* another store owns on this database. The guard fails that batch when the
|
|
78
|
+
* record is no longer at the expected version.
|
|
79
|
+
*/
|
|
80
|
+
prepareExpectedVersionUpdate(input: D1RegistrationCeremonyVersionedUpdate): readonly D1PreparedStatementLike[];
|
|
81
|
+
private prepareVersionedUpdate;
|
|
58
82
|
take(scope: string, id: string): Promise<Record<string, unknown> | null>;
|
|
59
83
|
delete(scope: string, id: string): Promise<boolean>;
|
|
60
84
|
/**
|
|
@@ -68,6 +92,7 @@ export declare class D1RegistrationCeremonyRecordStore {
|
|
|
68
92
|
private prepareExactMutations;
|
|
69
93
|
putManyExact(mutations: readonly D1RegistrationCeremonyRecordMutation[]): Promise<void>;
|
|
70
94
|
private allRecordsMatch;
|
|
95
|
+
private prepareRead;
|
|
71
96
|
private insert;
|
|
72
97
|
private prepareInsert;
|
|
73
98
|
private deleteVersion;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { D1PreparedStatementLike } from '../../../../storage/tenantRoute';
|
|
1
|
+
import type { D1PreparedStatementLike, D1ResultLike } from '../../../../storage/tenantRoute';
|
|
2
2
|
import { StoredAddAuthMethodIntent, StoredAddSignerIntent, StoredWalletAddAuthMethodCeremony, StoredWalletAddSignerCeremony, StoredWalletAddSignerFinalizeReplay, StoredWalletAddAuthMethodFinalizeReplay, StoredWalletRegistrationCeremony, type StoredWalletRegistrationEvmFamilyEcdsaActivationClaimedBranch, type StoredWalletRegistrationEvmFamilyEcdsaResponseClaimedBranch, type TerminalRegistrationCeremonyCancellationResult } from '../../../../core/RegistrationCeremonyStore';
|
|
3
3
|
import type { WalletId } from '../../../../core/registrationContracts';
|
|
4
4
|
import type { D1DatabaseLike } from '../../../../storage/tenantRoute';
|
|
@@ -13,13 +13,21 @@ type D1WalletRegistrationEcdsaCeremonyClaimV1 = {
|
|
|
13
13
|
readonly ceremony: StoredWalletRegistrationCeremony;
|
|
14
14
|
readonly version: number;
|
|
15
15
|
};
|
|
16
|
+
type D1WalletRegistrationCeremonyCommitV1 = {
|
|
17
|
+
readonly expected: D1WalletRegistrationEcdsaCeremonyClaimV1;
|
|
18
|
+
readonly next: StoredWalletRegistrationCeremony;
|
|
19
|
+
};
|
|
16
20
|
export declare class CloudflareD1RegistrationCeremonyIntentStore {
|
|
21
|
+
private readonly input;
|
|
17
22
|
private readonly storage;
|
|
18
23
|
constructor(input: RegistrationCeremonyIntentStoreConfig);
|
|
19
24
|
getSetupCeremony(ceremonyId: string): Promise<StoredWalletRegistrationCeremony | null>;
|
|
20
|
-
|
|
21
|
-
|
|
25
|
+
/** One batch stores the setup snapshot, ceremony, and authenticated execution identity. */
|
|
26
|
+
reserveSetupCeremony(proposed: StoredWalletRegistrationCeremony, ownershipGeneration: number): Promise<StoredWalletRegistrationCeremony>;
|
|
22
27
|
getCeremony(registrationCeremonyId: string): Promise<StoredWalletRegistrationCeremony | null>;
|
|
28
|
+
prepareCeremonyRead(registrationCeremonyId: string): D1PreparedStatementLike;
|
|
29
|
+
parseCeremonyRead(registrationCeremonyId: string, result: D1ResultLike<Record<string, unknown>>): Promise<StoredWalletRegistrationCeremony | null>;
|
|
30
|
+
parseCeremonySnapshotRead(registrationCeremonyId: string, result: D1ResultLike<Record<string, unknown>>): Promise<D1WalletRegistrationEcdsaCeremonyClaimV1 | null>;
|
|
23
31
|
getCeremonySnapshot(registrationCeremonyId: string): Promise<D1WalletRegistrationEcdsaCeremonyClaimV1 | null>;
|
|
24
32
|
updateCeremony(input: {
|
|
25
33
|
readonly expected: StoredWalletRegistrationCeremony;
|
|
@@ -39,10 +47,11 @@ export declare class CloudflareD1RegistrationCeremonyIntentStore {
|
|
|
39
47
|
readonly activationRequestDigestB64u: string;
|
|
40
48
|
readonly activationOwner: string;
|
|
41
49
|
}): Promise<D1WalletRegistrationEcdsaCeremonyClaimV1 | null>;
|
|
42
|
-
commitEcdsaClaim(input:
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
50
|
+
commitEcdsaClaim(input: D1WalletRegistrationCeremonyCommitV1): Promise<void>;
|
|
51
|
+
/** `commitEcdsaClaim` as statements for a batch that another store owns on this database. */
|
|
52
|
+
prepareEcdsaClaimCommit(input: D1WalletRegistrationCeremonyCommitV1): {
|
|
53
|
+
readonly statements: readonly D1PreparedStatementLike[];
|
|
54
|
+
};
|
|
46
55
|
deleteCeremony(registrationCeremonyId: string): Promise<boolean>;
|
|
47
56
|
cancelTerminalCeremony(input: {
|
|
48
57
|
readonly registrationCeremonyId: string;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { D1Row } from '../../../../storage/d1Sql';
|
|
2
|
+
import type { D1DatabaseLike, D1PreparedStatementLike, D1ResultLike } from '../../../../storage/tenantRoute';
|
|
3
|
+
import type { D1RegistrationCommitBatch } from './d1WalletRegistrationCommitStore';
|
|
4
|
+
/** The wallet's version checks and the session's winner read share one batch. */
|
|
5
|
+
export declare class D1RegistrationSessionTransaction {
|
|
6
|
+
private readonly database;
|
|
7
|
+
private readonly commitWallet;
|
|
8
|
+
private sessionResults;
|
|
9
|
+
constructor(database: D1DatabaseLike, commitWallet: (executeBatch: D1RegistrationCommitBatch) => Promise<void>);
|
|
10
|
+
execute(sessionStatements: readonly D1PreparedStatementLike[]): Promise<readonly D1ResultLike<D1Row>[]>;
|
|
11
|
+
private commit;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=d1RegistrationSessionTransaction.d.ts.map
|
|
@@ -47,5 +47,12 @@ type RegistrationIntentSignerBranches = {
|
|
|
47
47
|
readonly nearEd25519: RegistrationNearEd25519SignerPlan | null;
|
|
48
48
|
readonly evmFamilyEcdsa: RegistrationEvmFamilyEcdsaSignerPlan | null;
|
|
49
49
|
};
|
|
50
|
+
export declare function recordRegistrationServerTiming(sink: Array<readonly [string, number]>, name: string, startedAtMs: number): void;
|
|
51
|
+
export declare function recordRegistrationPromiseTiming<T>(args: {
|
|
52
|
+
readonly sink: Array<readonly [string, number]>;
|
|
53
|
+
readonly name: string;
|
|
54
|
+
readonly startedAtMs: number;
|
|
55
|
+
readonly promise: T | Promise<T>;
|
|
56
|
+
}): Promise<T>;
|
|
50
57
|
export {};
|
|
51
58
|
//# sourceMappingURL=d1RegistrationSetupSupport.d.ts.map
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { type D1TenantScope } from '../../../../core/d1TenantStore';
|
|
2
|
+
import type { D1DatabaseLike, D1ResultLike } from '../../../../storage/tenantRoute';
|
|
3
|
+
import type { RegistrationEstablishedPublication, WalletExecutionAuthority, WalletRegistrationHomeAuthority, WalletRegistrationReservationAuthority } from '../../../domains/walletRegistration/walletRegistrationReservation';
|
|
4
|
+
type Authority = WalletRegistrationReservationAuthority;
|
|
5
|
+
type HomeAdmission = Awaited<ReturnType<Authority['admitHome']>>;
|
|
6
|
+
type OrdinaryAdmission = Awaited<ReturnType<WalletExecutionAuthority['admitEstablishedHome']>>;
|
|
7
|
+
type RegistrationHomeRow = {
|
|
8
|
+
readonly generation: number;
|
|
9
|
+
readonly state: string;
|
|
10
|
+
readonly registration_completion: string;
|
|
11
|
+
readonly relocation_blocked: number;
|
|
12
|
+
};
|
|
13
|
+
export declare class D1WalletExecutionAuthority implements WalletRegistrationHomeAuthority, WalletExecutionAuthority {
|
|
14
|
+
private readonly database;
|
|
15
|
+
private readonly scope;
|
|
16
|
+
private readonly registration;
|
|
17
|
+
constructor(database: D1DatabaseLike, scope: D1TenantScope, registration: Authority);
|
|
18
|
+
reserve(input: Parameters<Authority['reserve']>[0]): Promise<import("../../../domains/walletRegistration/walletRegistrationReservation").WalletRegistrationSetupReservationResult>;
|
|
19
|
+
admitHome(input: Parameters<Authority['admitHome']>[0]): Promise<HomeAdmission>;
|
|
20
|
+
prepareHomeRead(input: Parameters<Authority['admitHome']>[0]): import("../../../cloudflare-adaptor").D1PreparedStatementLike;
|
|
21
|
+
admitHomeRead(input: Parameters<Authority['admitHome']>[0], result: D1ResultLike<Partial<Record<keyof RegistrationHomeRow, unknown>>>): Promise<HomeAdmission>;
|
|
22
|
+
cancel(input: Parameters<WalletRegistrationHomeAuthority['cancel']>[0]): Promise<{
|
|
23
|
+
readonly ok: true;
|
|
24
|
+
} | {
|
|
25
|
+
readonly ok: false;
|
|
26
|
+
readonly code: string;
|
|
27
|
+
readonly message: string;
|
|
28
|
+
}>;
|
|
29
|
+
publishEstablished(input: Parameters<WalletRegistrationHomeAuthority['publishEstablished']>[0]): Promise<RegistrationEstablishedPublication>;
|
|
30
|
+
private fixCancellation;
|
|
31
|
+
/** The state update with its guard. The guard reads the row count of the update before it. */
|
|
32
|
+
private prepareState;
|
|
33
|
+
admitEstablishedHome(input: Parameters<WalletExecutionAuthority['admitEstablishedHome']>[0]): Promise<OrdinaryAdmission>;
|
|
34
|
+
}
|
|
35
|
+
/** Records the authenticated reservation beside setup without reopening a retired home. */
|
|
36
|
+
export declare function prepareD1RegistrationHomeReservation(database: D1DatabaseLike, scope: D1TenantScope, input: Parameters<Authority['admitHome']>[0] & {
|
|
37
|
+
readonly ownershipGeneration: number;
|
|
38
|
+
}): import("../../../cloudflare-adaptor").D1PreparedStatementLike[];
|
|
39
|
+
export declare function admitD1EstablishedWalletHome(database: D1DatabaseLike, scope: D1TenantScope, input: Parameters<WalletExecutionAuthority['admitEstablishedHome']>[0]): Promise<OrdinaryAdmission>;
|
|
40
|
+
export {};
|
|
41
|
+
//# sourceMappingURL=d1WalletExecutionAuthority.d.ts.map
|
package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1WalletOperationStore.d.ts
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { WalletId } from '../../../../../../shared-ts/src/utils/domainIds';
|
|
2
|
+
import type { VersionedJsonRecordPutResult } from '../../../framework/versionedJsonRecordStore';
|
|
3
|
+
import type { D1PreparedStatementLike, D1ResultLike } from '../../../../storage/tenantRoute';
|
|
4
|
+
import { type CloudflareD1VersionedJsonRecordStoreOptions } from '../versionedJson/d1VersionedJsonRecordStore';
|
|
5
|
+
type WalletOperation = {
|
|
6
|
+
readonly kind: 'router_ab_ed25519_yao_registration_side_effect_claim_v1' | 'router_ab_ed25519_yao_registration_side_effect_completion_v1' | 'router_ab_ed25519_yao_registration_side_effect_completion_v2';
|
|
7
|
+
};
|
|
8
|
+
export declare class D1WalletOperationStore<T extends WalletOperation> {
|
|
9
|
+
private readonly options;
|
|
10
|
+
private readonly walletId;
|
|
11
|
+
private readonly records;
|
|
12
|
+
private readonly activity;
|
|
13
|
+
constructor(options: CloudflareD1VersionedJsonRecordStoreOptions<T>, walletId: (record: T) => WalletId);
|
|
14
|
+
read(key: string): Promise<import("../../../cloudflare-adaptor").VersionedJsonRecordReadResult<T>>;
|
|
15
|
+
prepareRead(key: string): D1PreparedStatementLike;
|
|
16
|
+
parseReadResult(result: D1ResultLike<Record<string, unknown>>): import("../../../cloudflare-adaptor").VersionedJsonRecordReadResult<T>;
|
|
17
|
+
listByKeyPrefix(key: string, options?: {
|
|
18
|
+
readonly limit?: number;
|
|
19
|
+
}): Promise<readonly import("../versionedJson/d1VersionedJsonRecordStore").CloudflareD1VersionedJsonRecordReadManyEntryV1<T>[]>;
|
|
20
|
+
put(key: string, value: T, expectedVersion: string | null): Promise<VersionedJsonRecordPutResult>;
|
|
21
|
+
/** As `put`, with another store's write on this database in the same batch. */
|
|
22
|
+
putWithCompanion(key: string, value: T, expectedVersion: string | null, companionWrite: {
|
|
23
|
+
readonly statements: readonly D1PreparedStatementLike[];
|
|
24
|
+
}): Promise<VersionedJsonRecordPutResult>;
|
|
25
|
+
private commit;
|
|
26
|
+
}
|
|
27
|
+
export {};
|
|
28
|
+
//# sourceMappingURL=d1WalletOperationStore.d.ts.map
|
|
@@ -3,8 +3,10 @@ import type { ActiveWalletAuthorityV1 } from '../../../../../../shared-ts/src/au
|
|
|
3
3
|
import { type ActiveWalletAuthMethodRecordV2 } from '../../../../../../shared-ts/src/utils/walletAuthMethodRecord';
|
|
4
4
|
import { type RegistrationAuthority } from '../../../../../../shared-ts/src/utils/registrationAuthMethodInput';
|
|
5
5
|
import type { WalletRecord, WalletSignerRecord } from '../../../../core/WalletStore';
|
|
6
|
-
import type { D1DatabaseLike, D1PreparedStatementLike } from '../../../../storage/tenantRoute';
|
|
6
|
+
import type { D1DatabaseLike, D1PreparedStatementLike, D1ResultLike } from '../../../../storage/tenantRoute';
|
|
7
7
|
import type { D1EmailOtpRegistrationCommitPlan } from '../emailOtp/d1EmailOtpRegistrationEnrollmentFinalizer';
|
|
8
|
+
export type D1RegistrationCommitBatch = (statements: readonly D1PreparedStatementLike[]) => Promise<readonly D1ResultLike[]>;
|
|
9
|
+
type ReservedWalletRegistrationCommit = (input: D1WalletRegistrationCommitInput, executeBatch?: D1RegistrationCommitBatch) => Promise<void>;
|
|
8
10
|
type D1WalletRegistrationCommitBase = {
|
|
9
11
|
readonly wallet: WalletRecord;
|
|
10
12
|
readonly walletSigners: readonly WalletSignerRecord[];
|
|
@@ -24,19 +26,13 @@ type D1WalletRegistrationFoundingFields = {
|
|
|
24
26
|
};
|
|
25
27
|
type D1WalletRegistrationCommitInput = (D1WalletRegistrationCommitBase & D1WalletRegistrationFoundingFields & {
|
|
26
28
|
readonly kind: 'passkey_wallet_registration_commit_v1';
|
|
27
|
-
readonly authority: Extract<RegistrationAuthority, {
|
|
28
|
-
readonly kind: 'passkey';
|
|
29
|
-
}>;
|
|
30
29
|
readonly emailOtp?: never;
|
|
31
30
|
}) | (D1WalletRegistrationCommitBase & D1WalletRegistrationFoundingFields & {
|
|
32
31
|
readonly kind: 'email_otp_wallet_registration_commit_v1';
|
|
33
|
-
readonly authority: Extract<RegistrationAuthority, {
|
|
34
|
-
readonly kind: 'email_otp';
|
|
35
|
-
}>;
|
|
36
32
|
readonly emailOtp: D1EmailOtpRegistrationCommitPlan;
|
|
37
33
|
});
|
|
38
34
|
export interface D1WalletRegistrationCommitStore {
|
|
39
|
-
|
|
35
|
+
reserveAuthority(authority: RegistrationAuthority): Promise<ReservedWalletRegistrationCommit>;
|
|
40
36
|
}
|
|
41
37
|
export declare class CloudflareD1WalletRegistrationCommitStore implements D1WalletRegistrationCommitStore {
|
|
42
38
|
private readonly database;
|
|
@@ -50,7 +46,8 @@ export declare class CloudflareD1WalletRegistrationCommitStore implements D1Wall
|
|
|
50
46
|
readonly projectId: string;
|
|
51
47
|
readonly envId: string;
|
|
52
48
|
});
|
|
53
|
-
|
|
49
|
+
reserveAuthority(authority: RegistrationAuthority): Promise<ReservedWalletRegistrationCommit>;
|
|
50
|
+
private commit;
|
|
54
51
|
}
|
|
55
52
|
export {};
|
|
56
53
|
//# sourceMappingURL=d1WalletRegistrationCommitStore.d.ts.map
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { CloudflareD1AuthorizationStore } from '../authorization/d1AuthorizationStore';
|
|
2
|
+
import type { D1WalletRegistrationCommitStore } from './d1WalletRegistrationCommitStore';
|
|
3
|
+
import { commitInitialEd25519RegistrationSession, type RegistrationInitialSessionCommit } from './walletRegistrationEstablishedSessionIssuer';
|
|
4
|
+
export type RegistrationSessionTransactionStore = Pick<CloudflareD1AuthorizationStore, 'commitRegistrationWalletSessionAuthorizationV2'>;
|
|
5
|
+
export type RegistrationInitialSessionPlan = {
|
|
6
|
+
readonly kind: 'separate';
|
|
7
|
+
readonly store?: never;
|
|
8
|
+
readonly request?: never;
|
|
9
|
+
} | {
|
|
10
|
+
readonly kind: 'initial_near';
|
|
11
|
+
readonly store: RegistrationSessionTransactionStore;
|
|
12
|
+
readonly request: Omit<Parameters<typeof commitInitialEd25519RegistrationSession>[0], 'foundingAuthority'>;
|
|
13
|
+
};
|
|
14
|
+
type ReservedWalletCommit = Awaited<ReturnType<D1WalletRegistrationCommitStore['reserveAuthority']>>;
|
|
15
|
+
export declare function commitWalletRegistration(commitWallet: ReservedWalletCommit, input: Parameters<ReservedWalletCommit>[0], session: RegistrationInitialSessionPlan): Promise<RegistrationInitialSessionCommit>;
|
|
16
|
+
export {};
|
|
17
|
+
//# sourceMappingURL=d1WalletRegistrationInitialSession.d.ts.map
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { DeviceId } from '../../../../../../shared-ts/src/authorization/capabilityKinds';
|
|
2
|
+
import type { WalletAuthMethodId, WalletAuthorityId, WalletId } from '../../../../../../shared-ts/src/utils/domainIds';
|
|
3
|
+
import type { StoredWalletRegistrationCeremony } from '../../../../core/RegistrationCeremonyStore';
|
|
4
|
+
export type D1WalletRegistrationOperationPreparedV1 = {
|
|
5
|
+
readonly kind: 'd1_wallet_registration_operation_prepared_v1';
|
|
6
|
+
readonly walletId: WalletId;
|
|
7
|
+
readonly walletAuthorityId: WalletAuthorityId;
|
|
8
|
+
readonly deviceId: DeviceId;
|
|
9
|
+
readonly walletAuthMethodId: WalletAuthMethodId;
|
|
10
|
+
};
|
|
11
|
+
export declare function walletRegistrationOperationPreparedFromCeremony(ceremony: StoredWalletRegistrationCeremony, allocated: D1WalletRegistrationOperationPreparedV1 | null): D1WalletRegistrationOperationPreparedV1;
|
|
12
|
+
//# sourceMappingURL=d1WalletRegistrationPreparation.d.ts.map
|
package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1WalletRegistrationRead.d.ts
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import type { D1DatabaseLike } from '../../../../storage/tenantRoute';
|
|
2
|
+
import type { WalletRegistrationHomeAuthority } from '../../../domains/walletRegistration/walletRegistrationReservation';
|
|
3
|
+
import type { CloudflareD1RegistrationCeremonyIntentStore } from './d1RegistrationCeremonyStore';
|
|
4
|
+
import type { D1WalletExecutionAuthority } from './d1WalletExecutionAuthority';
|
|
5
|
+
import type { D1WalletOperationStore } from './d1WalletOperationStore';
|
|
6
|
+
import type { D1WalletRegistrationNearProvisioningSideEffectRecord } from './d1WalletRegistrationService';
|
|
7
|
+
import type { CloudflareD1Ed25519YaoLifecycleDecisionStoreV1 } from '../ed25519Yao/d1Ed25519YaoLifecycleDecisionStore';
|
|
8
|
+
/** Read admission and immutable finalization state from one D1 snapshot. */
|
|
9
|
+
export declare class D1WalletRegistrationRead {
|
|
10
|
+
private readonly database;
|
|
11
|
+
private readonly authority;
|
|
12
|
+
readonly operations: D1WalletOperationStore<D1WalletRegistrationNearProvisioningSideEffectRecord>;
|
|
13
|
+
private readonly getCeremonies;
|
|
14
|
+
private readonly decisions;
|
|
15
|
+
constructor(database: D1DatabaseLike, authority: D1WalletExecutionAuthority | null, operations: D1WalletOperationStore<D1WalletRegistrationNearProvisioningSideEffectRecord>, getCeremonies: () => CloudflareD1RegistrationCeremonyIntentStore, decisions: CloudflareD1Ed25519YaoLifecycleDecisionStoreV1);
|
|
16
|
+
readRespond(home: Parameters<WalletRegistrationHomeAuthority['admitHome']>[0]): Promise<{
|
|
17
|
+
readonly ok: false;
|
|
18
|
+
readonly code: string;
|
|
19
|
+
readonly message: string;
|
|
20
|
+
readonly ownershipGeneration?: never;
|
|
21
|
+
readonly purpose?: never;
|
|
22
|
+
} | {
|
|
23
|
+
ok: true;
|
|
24
|
+
ownershipGeneration: number;
|
|
25
|
+
snapshot: {
|
|
26
|
+
readonly ceremony: import("../../../../core/RegistrationCeremonyStore").StoredWalletRegistrationCeremony;
|
|
27
|
+
readonly version: number;
|
|
28
|
+
} | null;
|
|
29
|
+
}>;
|
|
30
|
+
readFinalization(home: Parameters<WalletRegistrationHomeAuthority['admitHome']>[0], operationKey: string): Promise<{
|
|
31
|
+
readonly ok: false;
|
|
32
|
+
readonly code: string;
|
|
33
|
+
readonly message: string;
|
|
34
|
+
readonly ownershipGeneration?: never;
|
|
35
|
+
readonly purpose?: never;
|
|
36
|
+
} | {
|
|
37
|
+
ok: true;
|
|
38
|
+
operation: import("../../../cloudflare-adaptor").VersionedJsonRecordReadResult<D1WalletRegistrationNearProvisioningSideEffectRecord>;
|
|
39
|
+
decision: import("../../../domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoLifecycleDecision").RouterAbEd25519YaoLifecycleDecisionV1 | null;
|
|
40
|
+
readCeremony: () => Promise<import("../../../../core/RegistrationCeremonyStore").StoredWalletRegistrationCeremony | null>;
|
|
41
|
+
}>;
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=d1WalletRegistrationRead.d.ts.map
|