@seams/wallet-server 0.7.3 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/THIRD_PARTY_NOTICES.md +1 -9
- package/artifact-manifest.json +78 -33
- 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/scripts/prepare-local-runtime-config.mjs +0 -2
- package/cloudflare-router-ab/scripts/start-local-role-workers.mjs +77 -20
- package/dist/esm/authorization/lifecycleRouting.js +62 -0
- package/dist/esm/authorization/service.js +35 -12
- package/dist/esm/cloud-host.js +20 -22
- package/dist/esm/core/EmailOtpRecords.js +1 -217
- package/dist/esm/core/EmailOtpStores.js +0 -859
- package/dist/esm/core/IdentityStore.js +2 -339
- package/dist/esm/core/ThresholdService/config.js +1 -9
- package/dist/esm/core/ThresholdService/index.js +0 -4
- package/dist/esm/core/ThresholdService/kv.js +1 -66
- package/dist/esm/core/ThresholdService/routerAb/ecdsaDerivationPoolFillHandlers.js +1 -13
- package/dist/esm/core/ThresholdService/routerAbNormalSigningPolicy.js +1 -11
- package/dist/esm/core/ThresholdService/stores/WalletSessionStore.js +0 -541
- package/dist/esm/core/ThresholdService/validation.js +2 -346
- package/dist/esm/core/WalletAuthMethodStore.js +2 -123
- package/dist/esm/core/WalletStore.js +3 -209
- package/dist/esm/core/WebAuthnAuthenticatorStore.js +0 -202
- package/dist/esm/core/WebAuthnCredentialBindingStore.js +2 -182
- package/dist/esm/core/WebAuthnLoginChallengeStore.js +0 -52
- package/dist/esm/core/WebAuthnSyncChallengeStore.js +0 -54
- package/dist/esm/core/authService/emailOtpConfig.js +1 -195
- package/dist/esm/core/authService/emailOtpEnrollment.js +0 -110
- package/dist/esm/core/authService/emailOtpSeal.js +0 -63
- package/dist/esm/core/authService/nearTransactions.js +3 -98
- package/dist/esm/core/authService/rateLimits.js +0 -84
- package/dist/esm/core/authService/webauthn.js +2 -298
- package/dist/esm/core/authService/webauthnOidcHelpers.js +1 -24
- package/dist/esm/core/authService/webauthnWalletBinding.js +0 -37
- package/dist/esm/core/config.js +1 -95
- package/dist/esm/core/d1EcdsaSignerRead.js +1 -1
- package/dist/esm/core/d1IdentityStore.js +1 -2
- package/dist/esm/core/d1TenantStore.js +1 -24
- package/dist/esm/core/d1WalletAuthMethodStore.js +2 -5
- package/dist/esm/core/d1WalletStore.js +2 -2
- package/dist/esm/core/deviceLinking/linkedDeviceBootstrap.js +13 -0
- package/dist/esm/core/deviceLinking/linkedDeviceSession.js +20 -14
- package/dist/esm/core/deviceLinking/requestProof.js +9 -6
- package/dist/esm/core/emailOtpD1Statements.js +107 -94
- package/dist/esm/core/keyMaterialBrands.js +2 -12
- package/dist/esm/core/nearKeys.js +0 -1
- package/dist/esm/core/nearRelayerAccountProvisioning.js +6 -9
- package/dist/esm/core/passkeyCredentialClaims.js +8 -0
- package/dist/esm/core/routerAbSigning/RouterAbEcdsaPresignRuntime.js +2 -6
- package/dist/esm/core/routerAbSigning/RouterAbNormalSigningRuntime.js +2 -30
- package/dist/esm/core/thresholdEcdsaChainTarget.js +1 -4
- package/dist/esm/hosted-wallet-gateway.js +66 -43
- package/dist/esm/index.js +6 -19
- package/dist/esm/localHostedWalletGatewayHandler.js +12 -0
- package/dist/esm/localRegistrationSetupAuthority.js +89 -0
- package/dist/esm/router/auth/authRequestValidation.js +8 -16
- package/dist/esm/router/auth/webAuthnCredentialCodecs.js +0 -1
- package/dist/esm/router/cloudflare/d1/auth/d1AuthorizationAssembly.js +87 -0
- package/dist/esm/router/cloudflare/d1/auth/d1RouterApiAuthConfig.js +12 -2
- package/dist/esm/router/cloudflare/d1/auth/d1RouterApiAuthService.js +32 -281
- package/dist/esm/router/cloudflare/d1/authorization/authorizedOperationStatements.js +24 -22
- package/dist/esm/router/cloudflare/d1/authorization/d1AuthorizationStore.js +8 -6
- package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceAuthorityInstallService.js +12 -13
- package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceEd25519ExportRootStore.js +6 -1
- package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceEmailOtpGrantStore.js +12 -2
- package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceEmailOtpTargetFactor.js +4 -4
- package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceOwnerAuthorizationProvider.js +1 -1
- package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceRequestProofNonceStore.js +3 -9
- package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceRouteService.js +2 -1
- package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceSessionStore.js +89 -7
- package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceTargetCredentialProvider.js +23 -14
- package/dist/esm/router/cloudflare/d1/ed25519Yao/d1Ed25519YaoCapabilityPersistence.js +9 -6
- package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpChallengeIssuer.js +0 -1
- package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpChallengeService.js +0 -1
- package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpChallengeStore.js +1 -1
- package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpChallengeVerifier.js +0 -1
- package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpEnrollmentStore.js +1 -1
- package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpGrantStore.js +1 -7
- package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpRateLimitStore.js +19 -13
- package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpRecords.js +0 -1
- package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpRecoveryService.js +0 -1
- package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpRegistrationEnrollmentFinalizer.js +2 -2
- package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpServerSealRuntime.js +0 -1
- package/dist/esm/router/cloudflare/d1/emailOtp/d1GoogleEmailOtpRegistrationAttemptStore.js +44 -12
- package/dist/esm/router/cloudflare/d1/emailOtp/d1GoogleEmailOtpRegistrationRecords.js +1 -49
- package/dist/esm/router/cloudflare/d1/emailOtp/d1GoogleEmailOtpSessionResolver.js +19 -31
- package/dist/esm/router/cloudflare/d1/emailOtp/d1GoogleRegistrationCompletion.js +85 -0
- package/dist/esm/router/cloudflare/d1/identity/d1IdentityRecords.js +0 -1
- package/dist/esm/router/cloudflare/d1/identity/d1IdentityService.js +0 -48
- package/dist/esm/router/cloudflare/d1/near/d1SponsoredNearAccount.js +242 -0
- package/dist/esm/router/cloudflare/d1/oidc/d1OidcBoundary.js +0 -1
- package/dist/esm/router/cloudflare/d1/oidc/d1OidcVerificationService.js +2 -29
- package/dist/esm/router/cloudflare/d1/oidc/googleOidcToken.js +41 -0
- package/dist/esm/router/cloudflare/d1/passkeyCustody/d1PasskeyCustodyRouteService.js +5 -0
- package/dist/esm/router/cloudflare/d1/passkeyCustody/d1WalletCustodyCommitStore.js +34 -0
- package/dist/esm/router/cloudflare/d1/registration/d1RegistrationCeremonyRecordStore.js +9 -3
- package/dist/esm/router/cloudflare/d1/registration/d1RegistrationCeremonyRecords.js +7 -13
- package/dist/esm/router/cloudflare/d1/registration/d1RegistrationCeremonyStore.js +25 -13
- package/dist/esm/router/cloudflare/d1/registration/d1RegistrationIntentService.js +0 -1
- package/dist/esm/router/cloudflare/d1/registration/d1RegistrationSetupSupport.js +74 -0
- package/dist/esm/router/cloudflare/d1/registration/d1WalletRegistrationCommitStore.js +7 -1
- package/dist/esm/router/cloudflare/d1/registration/d1WalletRegistrationService.js +69 -238
- package/dist/esm/router/cloudflare/d1/registration/d1WalletRegistrationSetup.js +12 -56
- package/dist/esm/router/cloudflare/d1/registration/d1WalletRegistrationSetupExecution.js +155 -0
- package/dist/esm/router/cloudflare/d1/registration/walletRegistrationEstablishedSessionIssuer.js +1 -3
- package/dist/esm/router/cloudflare/d1/signingAdmission/d1RouterAbNormalSigningAdmissionStore.js +12 -6
- package/dist/esm/router/cloudflare/d1/wallet/d1WalletAddSignerFinalizeRecord.js +68 -0
- package/dist/esm/router/cloudflare/d1/wallet/d1WalletAddSignerService.js +7 -54
- package/dist/esm/router/cloudflare/d1/wallet/d1WalletAuthMethodService.js +9 -8
- package/dist/esm/router/cloudflare/d1/wallet/d1WalletAuthorityStore.js +2 -142
- package/dist/esm/router/cloudflare/d1/webauthn/d1WebAuthnAuthService.js +25 -4
- package/dist/esm/router/cloudflare/d1/webauthn/d1WebAuthnRecords.js +4 -70
- package/dist/esm/router/cloudflare/d1/webauthn/d1WebAuthnStore.js +23 -7
- package/dist/esm/router/cloudflare/runtime/staticWalletConsoleBinding.js +1 -0
- package/dist/esm/router/cloudflare/runtime/walletConsoleOps.js +1 -0
- package/dist/esm/router/cloudflare/runtime/walletConsoleOpsClient.js +5 -0
- package/dist/esm/router/cloudflare/runtime/walletGateway.js +1 -1
- package/dist/esm/router/cloudflare/runtime/walletRuntimeOps.js +16 -4
- package/dist/esm/router/cloudflare-adaptor.js +1 -2
- package/dist/esm/router/cloudflare.js +1342 -1733
- package/dist/esm/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistration.js +11 -8
- package/dist/esm/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistrationPartitionedStateStore.js +3 -2
- package/dist/esm/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistrationPartitioning.js +6 -6
- package/dist/esm/router/domains/ed25519Yao/export/routerAbEd25519YaoExport.js +6 -6
- package/dist/esm/router/domains/ed25519Yao/export/routerAbEd25519YaoExportRequestScopedCloudflare.js +3 -0
- package/dist/esm/router/domains/ed25519Yao/recovery/routerAbEd25519YaoRecoveryRequestScopedCloudflare.js +8 -0
- package/dist/esm/router/domains/emailOtp/emailOtpRequestValidation.js +0 -1
- package/dist/esm/router/domains/passkeyCustody/passkeyCustodyEnvelopeRetrieval.js +2 -8
- package/dist/esm/router/domains/passkeyCustody/walletCustodyRegistrationCommit.js +2 -8
- package/dist/esm/router/domains/signingOperations/routerAbPrivateSigningWorker.js +5 -19
- package/dist/esm/router/domains/signingOperations/walletExecutionAdmission.js +2 -3
- package/dist/esm/router/domains/walletRegistration/walletRegistrationReservation.js +70 -0
- package/dist/esm/router/domains/walletRegistration/walletRegistrationRoutes.js +10 -11
- package/dist/esm/router/domains/walletRegistration/walletRegistrationSetupPayload.js +2 -3
- package/dist/esm/router/domains/walletUnlock/walletUnlockRouteHandlers.js +14 -0
- package/dist/esm/router/express.js +574 -479
- package/dist/esm/router/framework/http.js +2 -0
- package/dist/esm/router/framework/registrationSetupDispatch.js +14 -0
- package/dist/esm/router/framework/ror/normalize.js +0 -1
- package/dist/esm/router/framework/ror/options.js +0 -1
- package/dist/esm/router/framework/ror/provider.js +0 -1
- package/dist/esm/router/framework/ror/staticProvider.js +0 -1
- package/dist/esm/router/framework/routeDefinitions.js +1 -2
- package/dist/esm/router/framework/routerApiWebhooks.js +0 -1
- package/dist/esm/router/ror.js +0 -1
- package/dist/esm/router/transport/fetch/createFetchRouter.js +0 -2
- package/dist/esm/router/transport/fetch/routes/auth.js +2 -0
- package/dist/esm/router/transport/fetch/routes/deviceLinking.js +36 -147
- package/dist/esm/router/transport/fetch/routes/deviceLinkingOwnerAuthorization.js +3 -2
- package/dist/esm/router/transport/fetch/routes/deviceLinkingResponses.js +130 -0
- package/dist/esm/router/transport/fetch/routes/ecdsaOperationStepUpFactor.js +171 -0
- package/dist/esm/router/transport/fetch/routes/passkeyCustody.js +1 -0
- package/dist/esm/router/transport/fetch/routes/syncAccount.js +7 -2
- package/dist/esm/router/transport/fetch/routes/thresholdEcdsa.js +19 -115
- package/dist/esm/router/transport/fetch/routes/walletRegistration.js +3 -1
- package/dist/esm/shared-ts/src/authorization/walletSessionIssuance.js +0 -1
- package/dist/esm/shared-ts/src/device-linking/authorityActivation.js +0 -2
- package/dist/esm/shared-ts/src/device-linking/contracts.js +16 -1
- package/dist/esm/shared-ts/src/device-linking/digests.js +1 -8
- package/dist/esm/shared-ts/src/near/actions.js +0 -1
- package/dist/esm/shared-ts/src/near/nearClient.js +0 -2
- package/dist/esm/shared-ts/src/signing-lanes/evmFamilySigningKeySlotId.js +1 -1
- package/dist/esm/shared-ts/src/signing-lanes/index.js +1 -6
- package/dist/esm/shared-ts/src/signing-lanes/ownerContinuity.js +1 -1
- package/dist/esm/shared-ts/src/signing-lanes/participantDigest.js +2 -81
- package/dist/esm/shared-ts/src/signing-lanes/participants.js +1 -219
- package/dist/esm/shared-ts/src/signing-lanes/recordParsers.js +0 -3
- package/dist/esm/shared-ts/src/tenant-root/tenantRootOperationRecord.js +1 -2
- package/dist/esm/shared-ts/src/threshold/ecdsaDerivationRoleLocalBootstrap.js +0 -1
- package/dist/esm/shared-ts/src/threshold/keyMaterialBrands.js +1 -22
- package/dist/esm/shared-ts/src/threshold/participants.js +0 -1
- package/dist/esm/shared-ts/src/threshold/signingRootScope.js +0 -1
- package/dist/esm/shared-ts/src/utils/addWalletAuthMethod.js +4 -13
- package/dist/esm/shared-ts/src/utils/canonicalPrimitives.js +1 -7
- package/dist/esm/shared-ts/src/utils/domainIds.js +1 -16
- package/dist/esm/shared-ts/src/utils/ecdsaCapabilityActivation.js +1 -11
- package/dist/esm/shared-ts/src/utils/ecdsaKeyFactsInventory.js +0 -1
- package/dist/esm/shared-ts/src/utils/errors.js +1 -19
- package/dist/esm/shared-ts/src/utils/near.js +1 -1
- package/dist/esm/shared-ts/src/utils/registrationEstablishedSession.js +1 -1
- package/dist/esm/shared-ts/src/utils/registrationIds.js +1 -5
- package/dist/esm/shared-ts/src/utils/registrationIntent.js +0 -1
- package/dist/esm/shared-ts/src/utils/registrationSetupOperation.js +8 -0
- package/dist/esm/shared-ts/src/utils/registrationSignerPlan.js +1 -1
- package/dist/esm/shared-ts/src/utils/routerAbEcdsaDerivation.js +0 -1
- package/dist/esm/shared-ts/src/utils/validation.js +1 -5
- package/dist/esm/shared-ts/src/utils/walletAuthAuthority.js +0 -1
- package/dist/esm/shared-ts/src/utils/walletManagementProtocol.js +6 -0
- package/dist/esm/shared-ts/src/utils/wireSchema.js +2 -13
- package/dist/esm/shared-ts/src/wallet-recovery/backupAcknowledgement.js +6 -24
- package/dist/esm/shared-ts/src/wallet-recovery/recoveryCodeLocator.js +0 -1
- package/dist/esm/shared-ts/src/wallet-recovery/recoveryKeyId.js +5 -6
- package/dist/esm/storage/d1Sql.js +1 -7
- package/dist/esm/threshold/session/signingSessionSeal/crypto/cipher.js +0 -1
- package/dist/esm/threshold/session/signingSessionSeal/guards/backends.js +1 -2
- package/dist/esm/threshold/session/signingSessionSeal/idempotencyBackends.js +0 -1
- package/dist/esm/threshold/session/signingSessionSeal/idempotencyRecords.js +0 -1
- package/dist/esm/threshold/session/signingSessionSeal/options.js +0 -1
- package/dist/esm/wasm/evm_crypto/pkg/evm_crypto_bg.wasm +0 -0
- package/dist/esm/wasm/near_signer/pkg/wasm_signer_worker.js +0 -611
- package/dist/esm/wasm/near_signer/pkg/wasm_signer_worker_bg.wasm +0 -0
- package/dist/esm/wasm/shamir3pass_runtime/pkg/shamir3pass_runtime_bg.wasm +0 -0
- package/dist/types/shared-ts/src/authorization/capabilityKinds.d.ts +0 -4
- package/dist/types/shared-ts/src/device-linking/contracts.d.ts +1 -0
- package/dist/types/shared-ts/src/signing-lanes/evmFamilySigningKeySlotId.d.ts +0 -2
- package/dist/types/shared-ts/src/signing-lanes/execution.d.ts +0 -11
- package/dist/types/shared-ts/src/signing-lanes/ids.d.ts +2 -7
- package/dist/types/shared-ts/src/signing-lanes/index.d.ts +0 -4
- package/dist/types/shared-ts/src/signing-lanes/ownerContinuity.d.ts +0 -1
- package/dist/types/shared-ts/src/signing-lanes/participantDigest.d.ts +0 -18
- package/dist/types/shared-ts/src/signing-lanes/participants.d.ts +6 -35
- package/dist/types/shared-ts/src/signing-lanes/rotation.d.ts +6 -843
- package/dist/types/shared-ts/src/threshold/keyMaterialBrands.d.ts +0 -10
- package/dist/types/shared-ts/src/threshold/participants.d.ts +1 -1
- package/dist/types/shared-ts/src/utils/addWalletAuthMethod.d.ts +1 -133
- package/dist/types/shared-ts/src/utils/addWalletAuthMethod.typecheck.d.ts +4 -18
- package/dist/types/shared-ts/src/utils/domainIds.d.ts +0 -12
- package/dist/types/shared-ts/src/utils/errors.d.ts +0 -4
- package/dist/types/shared-ts/src/utils/near.d.ts +0 -20
- package/dist/types/shared-ts/src/utils/normalize.d.ts +0 -2
- package/dist/types/shared-ts/src/utils/registrationSetupOperation.d.ts +3 -0
- package/dist/types/shared-ts/src/utils/validation.d.ts +1 -3
- package/dist/types/shared-ts/src/utils/walletCapabilityBindings.d.ts +0 -1
- package/dist/types/shared-ts/src/utils/walletManagementProtocol.d.ts +3 -0
- package/dist/types/shared-ts/src/utils/wireSchema.d.ts +0 -2
- package/dist/types/shared-ts/src/wallet-recovery/backupAcknowledgement.d.ts +0 -1
- package/dist/types/shared-ts/src/wallet-recovery/recoveryCodeReservation.d.ts +1 -10
- package/dist/types/shared-ts/src/wallet-recovery/recoveryCodes.d.ts +1 -3
- package/dist/types/shared-ts/src/wallet-recovery/recoveryKeyId.d.ts +5 -21
- package/dist/types/wallet-server/src/authorization/lifecycleRouting.d.ts +32 -0
- package/dist/types/wallet-server/src/authorization/lifecycleRouting.typecheck.d.ts +2 -0
- package/dist/types/wallet-server/src/authorization/recoveryRouting.d.ts +22 -0
- package/dist/types/wallet-server/src/authorization/recoveryRouting.typecheck.d.ts +2 -0
- package/dist/types/wallet-server/src/authorization/service.d.ts +8 -1
- package/dist/types/wallet-server/src/authorization/sessionRouting.d.ts +20 -0
- package/dist/types/wallet-server/src/authorization/sessionRouting.typecheck.d.ts +2 -0
- package/dist/types/wallet-server/src/cloud-host.d.ts +31 -9
- package/dist/types/wallet-server/src/core/EmailOtpRecords.d.ts +1 -22
- package/dist/types/wallet-server/src/core/EmailOtpStores.d.ts +1 -79
- package/dist/types/wallet-server/src/core/IdentityStore.d.ts +0 -10
- package/dist/types/wallet-server/src/core/RegistrationCeremonyStore.d.ts +0 -1
- package/dist/types/wallet-server/src/core/ThresholdService/config.d.ts +0 -2
- package/dist/types/wallet-server/src/core/ThresholdService/index.d.ts +1 -3
- package/dist/types/wallet-server/src/core/ThresholdService/kv.d.ts +0 -7
- package/dist/types/wallet-server/src/core/ThresholdService/routerAb/ecdsaDerivationPoolFillHandlers.d.ts +0 -3
- package/dist/types/wallet-server/src/core/ThresholdService/routerAbNormalSigningPolicy.d.ts +0 -1
- package/dist/types/wallet-server/src/core/ThresholdService/stores/WalletSessionStore.d.ts +7 -19
- package/dist/types/wallet-server/src/core/ThresholdService/validation.d.ts +0 -34
- package/dist/types/wallet-server/src/core/WalletAuthMethodStore.d.ts +1 -5
- package/dist/types/wallet-server/src/core/WalletStore.d.ts +0 -3
- package/dist/types/wallet-server/src/core/WebAuthnAuthenticatorStore.d.ts +0 -20
- package/dist/types/wallet-server/src/core/WebAuthnCredentialBindingStore.d.ts +1 -27
- package/dist/types/wallet-server/src/core/WebAuthnLoginChallengeStore.d.ts +2 -16
- package/dist/types/wallet-server/src/core/WebAuthnSyncChallengeStore.d.ts +22 -14
- package/dist/types/wallet-server/src/core/authService/emailOtpConfig.d.ts +0 -24
- package/dist/types/wallet-server/src/core/authService/emailOtpEnrollment.d.ts +1 -70
- package/dist/types/wallet-server/src/core/authService/emailOtpSeal.d.ts +0 -13
- package/dist/types/wallet-server/src/core/authService/githubOAuth.d.ts +2 -1
- package/dist/types/wallet-server/src/core/authService/nearTransactions.d.ts +1 -39
- package/dist/types/wallet-server/src/core/authService/rateLimits.d.ts +0 -17
- package/dist/types/wallet-server/src/core/authService/webauthn.d.ts +0 -125
- package/dist/types/wallet-server/src/core/authService/webauthnOidcHelpers.d.ts +0 -3
- package/dist/types/wallet-server/src/core/authService/webauthnVerificationOutcomes.d.ts +1 -1
- package/dist/types/wallet-server/src/core/authService/webauthnWalletBinding.d.ts +0 -12
- package/dist/types/wallet-server/src/core/config.d.ts +0 -10
- package/dist/types/wallet-server/src/core/d1IdentityStore.d.ts +0 -2
- package/dist/types/wallet-server/src/core/d1TenantStore.d.ts +0 -7
- package/dist/types/wallet-server/src/core/d1WalletAuthMethodStore.d.ts +0 -1
- package/dist/types/wallet-server/src/core/deviceLinking/linkedDeviceBootstrap.d.ts +19 -0
- package/dist/types/wallet-server/src/core/deviceLinking/linkedDeviceSession.d.ts +8 -6
- package/dist/types/wallet-server/src/core/deviceLinking/requestProof.d.ts +2 -5
- package/dist/types/wallet-server/src/core/emailOtpD1Statements.d.ts +10 -7
- package/dist/types/wallet-server/src/core/keyMaterialBrands.d.ts +1 -5
- package/dist/types/wallet-server/src/core/nearRelayerAccountProvisioning.d.ts +0 -1
- package/dist/types/wallet-server/src/core/passkeyCredentialClaims.d.ts +9 -0
- package/dist/types/wallet-server/src/core/routerAbSigning/RouterAbEcdsaPresignRuntime.d.ts +0 -2
- package/dist/types/wallet-server/src/core/routerAbSigning/RouterAbNormalSigningRuntime.d.ts +0 -2
- package/dist/types/wallet-server/src/core/threeRouteRegistrationContracts.d.ts +1 -92
- package/dist/types/wallet-server/src/core/threeRouteRegistrationContracts.typecheck.d.ts +4 -52
- package/dist/types/wallet-server/src/core/thresholdEcdsaChainTarget.d.ts +0 -1
- package/dist/types/wallet-server/src/core/types.d.ts +0 -299
- package/dist/types/wallet-server/src/hosted-wallet-gateway.d.ts +15 -3
- package/dist/types/wallet-server/src/index.d.ts +8 -13
- package/dist/types/wallet-server/src/localRegistrationSetupAuthority.d.ts +13 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/auth/d1AuthorizationAssembly.d.ts +23 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/auth/d1RouterApiAuthConfig.d.ts +25 -3
- package/dist/types/wallet-server/src/router/cloudflare/d1/authorization/d1AuthorizationStore.d.ts +1 -1
- package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceAuthorityInstallService.d.ts +3 -1
- package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceEmailOtpGrantStore.d.ts +7 -1
- package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceRequestProofNonceStore.d.ts +1 -10
- package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceRouteService.d.ts +4 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceSessionStore.d.ts +6 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceTargetPlanner.d.ts +1 -13
- package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpChallengeService.d.ts +2 -2
- package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpChallengeStore.d.ts +1 -1
- package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpGrantStore.d.ts +0 -2
- package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpRateLimitStore.d.ts +18 -2
- package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1GoogleEmailOtpRegistrationAttemptStore.d.ts +29 -1
- package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1GoogleEmailOtpRegistrationRecords.d.ts +3 -16
- package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1GoogleEmailOtpSessionResolver.d.ts +7 -2
- package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1GoogleRegistrationCompletion.d.ts +23 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/identity/d1IdentityService.d.ts +0 -12
- package/dist/types/wallet-server/src/router/cloudflare/d1/near/d1SponsoredNearAccount.d.ts +24 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/near/d1SponsoredNearAccount.typecheck.d.ts +2 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/oidc/d1OidcVerificationService.d.ts +0 -1
- package/dist/types/wallet-server/src/router/cloudflare/d1/oidc/googleOidcToken.d.ts +4 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/passkeyCustody/d1PasskeyCustodyRouteService.d.ts +5 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/passkeyCustody/d1WalletCustodyCommitStore.d.ts +9 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1RegistrationCeremonyRecordStore.d.ts +1 -1
- package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1RegistrationCeremonyRecords.d.ts +10 -11
- package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1RegistrationCeremonyStore.d.ts +3 -2
- package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1RegistrationSetupSupport.d.ts +51 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1WalletRegistrationCommitStore.d.ts +3 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1WalletRegistrationService.d.ts +30 -47
- package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1WalletRegistrationSetup.d.ts +3 -30
- package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1WalletRegistrationSetupExecution.d.ts +11 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletAddSignerFinalizeRecord.d.ts +27 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletAddSignerService.d.ts +1 -10
- package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletAuthMethodService.d.ts +2 -2
- package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletAuthorityStore.d.ts +0 -4
- package/dist/types/wallet-server/src/router/cloudflare/d1/webauthn/d1WebAuthnAuthService.d.ts +3 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/webauthn/d1WebAuthnRecords.d.ts +0 -13
- package/dist/types/wallet-server/src/router/cloudflare/d1/webauthn/d1WebAuthnStore.d.ts +23 -10
- package/dist/types/wallet-server/src/router/cloudflare/d1/webauthn/d1WebAuthnStore.typecheck.d.ts +2 -0
- package/dist/types/wallet-server/src/router/cloudflare/runtime/cloudflare.types.d.ts +0 -2
- package/dist/types/wallet-server/src/router/cloudflare/runtime/walletConsoleOps.d.ts +1 -0
- package/dist/types/wallet-server/src/router/cloudflare/runtime/walletConsoleOpsClient.d.ts +2 -0
- package/dist/types/wallet-server/src/router/cloudflare/runtime/walletGateway.d.ts +1 -1
- package/dist/types/wallet-server/src/router/cloudflare/runtime/walletRuntimeOps.d.ts +3 -0
- package/dist/types/wallet-server/src/router/cloudflare-adaptor.d.ts +0 -1
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistration.d.ts +1 -1
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistrationPartitioning.d.ts +2 -2
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/export/routerAbEd25519YaoExport.d.ts +2 -2
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/export/routerAbEd25519YaoExport.typecheck.d.ts +2 -0
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/export/routerAbEd25519YaoExportRequestScopedCloudflare.d.ts +2 -0
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/recovery/routerAbEd25519YaoRecoveryRequestScopedCloudflare.d.ts +2 -0
- package/dist/types/wallet-server/src/router/domains/passkeyCustody/passkeyCustodyEnvelopeRetrieval.d.ts +0 -2
- package/dist/types/wallet-server/src/router/domains/passkeyCustody/walletCustodyRegistrationCommit.d.ts +0 -3
- package/dist/types/wallet-server/src/router/domains/signingOperations/routerAbPrivateSigningWorker.d.ts +0 -17
- package/dist/types/wallet-server/src/router/domains/signingOperations/walletExecutionAdmission.d.ts +1 -2
- package/dist/types/wallet-server/src/router/domains/walletRegistration/walletRegistrationInputs.d.ts +1 -0
- package/dist/types/wallet-server/src/router/domains/walletRegistration/walletRegistrationReservation.d.ts +51 -0
- package/dist/types/wallet-server/src/router/domains/walletRegistration/walletRegistrationRoutes.d.ts +2 -10
- package/dist/types/wallet-server/src/router/domains/walletRegistration/walletRegistrationSetupPayload.d.ts +2 -2
- package/dist/types/wallet-server/src/router/framework/authServicePort.d.ts +14 -34
- package/dist/types/wallet-server/src/router/framework/googleLoginResolution.typecheck.d.ts +2 -0
- package/dist/types/wallet-server/src/router/framework/registrationSetupDispatch.d.ts +13 -0
- package/dist/types/wallet-server/src/router/transport/fetch/routes/deviceLinking.d.ts +1 -1
- package/dist/types/wallet-server/src/router/transport/fetch/routes/deviceLinkingResponses.d.ts +17 -0
- package/dist/types/wallet-server/src/router/transport/fetch/routes/ecdsaOperationStepUpFactor.d.ts +37 -0
- package/dist/types/wallet-server/src/storage/d1Sql.d.ts +0 -1
- package/migrations/d1-signer/0040_namespace_home_challenges.sql +16 -0
- package/migrations/d1-signer/0041_step_up_admission_expiry.sql +28 -0
- package/migrations/d1-signer/0042_deployment_resource_challenges.sql +4 -0
- package/migrations/d1-signer/0043_google_registration_candidate_claim.sql +2 -0
- package/migrations/d1-signer/0044_linked_device_bootstrap_imports.sql +6 -0
- package/migrations/d1-signer/0045_wallet_owned_capability_receipts.sql +29 -0
- package/migrations/d1-signer/0046_wallet_owned_signing_abuse.sql +41 -0
- package/migrations/d1-signer/0047_remove_unused_near_public_keys.sql +2 -0
- package/migrations/d1-signer/0048_operation_owner_scope.sql +45 -0
- package/package.json +2 -3
- package/src/README.md +11 -3
- package/dist/esm/core/AuthService.js +0 -2
- package/dist/esm/core/NearPublicKeyStore.js +0 -200
- package/dist/esm/core/ThresholdService/stores/CloudflareDurableObjectStore.js +0 -397
- package/dist/esm/core/ThresholdService/stores/KeyStore.js +0 -140
- package/dist/esm/core/ThresholdService/stores/SessionStore.js +0 -361
- package/dist/esm/core/ThresholdService/stores/StoreConfig.js +0 -13
- package/dist/esm/core/ThresholdService/stores/exportReplayGuard.js +0 -7
- package/dist/esm/core/authService/AuthService.js +0 -594
- package/dist/esm/core/authService/bytes.js +0 -19
- package/dist/esm/core/authService/configValues.js +0 -15
- package/dist/esm/core/authService/emailOtpChallengeOperations.js +0 -123
- package/dist/esm/core/authService/emailOtpChallengeProof.js +0 -183
- package/dist/esm/core/authService/emailOtpChallengeVerification.js +0 -264
- package/dist/esm/core/authService/emailOtpChallenges.js +0 -225
- package/dist/esm/core/authService/emailOtpDelivery.js +0 -134
- package/dist/esm/core/authService/emailOtpGrant.js +0 -43
- package/dist/esm/core/authService/emailOtpRegistrationEnrollment.js +0 -144
- package/dist/esm/core/authService/emailOtpUnlock.js +0 -174
- package/dist/esm/core/authService/googleEmailOtpOperations.js +0 -141
- package/dist/esm/core/authService/googleEmailOtpRegistration.js +0 -587
- package/dist/esm/core/authService/identity.js +0 -42
- package/dist/esm/core/authService/identityOperations.js +0 -32
- package/dist/esm/core/authService/nearAccountOperations.js +0 -229
- package/dist/esm/core/authService/nearPublicKeyMetadata.js +0 -108
- package/dist/esm/core/authService/oidcVerification.js +0 -249
- package/dist/esm/core/authService/registrationThresholdHelpers.js +0 -30
- package/dist/esm/core/authService/runtime.js +0 -45
- package/dist/esm/core/authService/storeRegistry.js +0 -102
- package/dist/esm/core/authService/thresholdStoreSummary.js +0 -32
- package/dist/esm/core/authService/webauthnAuthority.js +0 -17
- package/dist/esm/core/defaultConfigsServer.js +0 -9
- package/dist/esm/core/hostedAccountIds.js +0 -225
- package/dist/esm/core/routerAbSigning/createRouterAbSigningRuntimes.js +0 -84
- package/dist/esm/core/signingLanes/LaneAggregateRevocationApplicationService.js +0 -86
- package/dist/esm/core/signingLanes/LaneEnrollmentActivation.js +0 -324
- package/dist/esm/core/signingLanes/LaneEnrollmentRevocation.js +0 -173
- package/dist/esm/core/signingLanes/LaneLifecycleApplicationService.js +0 -198
- package/dist/esm/core/signingLanes/ecdsaServerRetirement.js +0 -73
- package/dist/esm/core/signingLanes/ed25519ServerRetirement.js +0 -68
- package/dist/esm/core/signingLanes/signingWorkerLaneMaterialIdentity.js +0 -0
- package/dist/esm/core/storeBackends.js +0 -208
- package/dist/esm/core/utils.js +0 -14
- package/dist/esm/core/webAuthnStoreBackends.js +0 -198
- package/dist/esm/router/cloudflare/d1/near/d1NearPublicKeyStore.js +0 -49
- package/dist/esm/router/cloudflare/d1/signingLanes/d1EcdsaLanePrivateBindingResolver.js +0 -10
- package/dist/esm/router/cloudflare/d1/signingLanes/d1LaneAggregateRevocationApplicationService.js +0 -22
- package/dist/esm/router/cloudflare/d1/signingLanes/d1LaneEffectJournalStore.js +0 -166
- package/dist/esm/router/cloudflare/d1/signingLanes/d1LaneEnrollmentGateway.js +0 -38
- package/dist/esm/router/cloudflare/d1/signingLanes/d1LaneLifecycleApplicationService.js +0 -20
- package/dist/esm/router/cloudflare/d1/signingLanes/d1LaneLifecycleStore.js +0 -1459
- package/dist/esm/router/cloudflare/d1/signingLanes/d1LaneLockStore.js +0 -114
- package/dist/esm/router/cloudflare/d1/signingLanes/d1LaneProtocolCommitter.js +0 -16
- package/dist/esm/router/cloudflare/d1/signingLanes/d1LaneRecords.js +0 -171
- package/dist/esm/router/cloudflare/d1/signingLanes/index.js +0 -10
- package/dist/esm/router/cloudflare/durableObjects/thresholdStore.js +0 -397
- package/dist/esm/router/cloudflare/signingLanes/cloudflareLaneCurveExecution.js +0 -597
- package/dist/esm/router/cloudflare/signingLanes/cloudflareLaneProtocolCommitter.js +0 -273
- package/dist/esm/router/cloudflare/signingLanes/index.js +0 -4
- package/dist/esm/router/cloudflare/signingLanes/linkedDeviceEd25519CeremonyBinding.js +0 -32
- package/dist/esm/router/transport/fetch/routes/nearPublicKeys.js +0 -27
- package/dist/esm/shared-ts/src/signing-lanes/rotation.js +0 -8
- package/dist/esm/shared-ts/src/signing-lanes/rotationDigests.js +0 -358
- package/dist/esm/shared-ts/src/signing-lanes/rotationLifecycle.js +0 -313
- package/dist/esm/shared-ts/src/signing-lanes/rotationParsers.js +0 -532
- package/dist/esm/shared-ts/src/signing-lanes/rotationProtocolParsers.js +0 -323
- package/dist/esm/shared-ts/src/signing-lanes/rotationWireFields.js +0 -59
- package/dist/types/shared-ts/src/signing-lanes/participantDigest.typecheck.d.ts +0 -2
- package/dist/types/shared-ts/src/signing-lanes/rotation.typecheck.d.ts +0 -2
- package/dist/types/shared-ts/src/signing-lanes/rotationDigests.d.ts +0 -13
- package/dist/types/shared-ts/src/signing-lanes/rotationLifecycle.d.ts +0 -78
- package/dist/types/shared-ts/src/signing-lanes/rotationParsers.d.ts +0 -27
- package/dist/types/shared-ts/src/signing-lanes/rotationProtocolParsers.d.ts +0 -6
- package/dist/types/shared-ts/src/signing-lanes/rotationWireFields.d.ts +0 -20
- package/dist/types/shared-ts/src/wallet-recovery/recoveryCodeAttempt.d.ts +0 -59
- package/dist/types/wallet-server/src/core/AuthService.d.ts +0 -3
- package/dist/types/wallet-server/src/core/NearPublicKeyStore.d.ts +0 -48
- package/dist/types/wallet-server/src/core/ThresholdService/stores/CloudflareDurableObjectStore.d.ts +0 -21
- package/dist/types/wallet-server/src/core/ThresholdService/stores/KeyStore.d.ts +0 -40
- package/dist/types/wallet-server/src/core/ThresholdService/stores/SessionStore.d.ts +0 -98
- package/dist/types/wallet-server/src/core/ThresholdService/stores/StoreConfig.d.ts +0 -4
- package/dist/types/wallet-server/src/core/ThresholdService/stores/ThresholdStoreConfig.typecheck.d.ts +0 -2
- package/dist/types/wallet-server/src/core/ThresholdService/stores/exportReplayGuard.d.ts +0 -3
- package/dist/types/wallet-server/src/core/authService/AuthService.d.ts +0 -490
- package/dist/types/wallet-server/src/core/authService/bytes.d.ts +0 -3
- package/dist/types/wallet-server/src/core/authService/configValues.d.ts +0 -7
- package/dist/types/wallet-server/src/core/authService/emailOtpChallengeOperations.d.ts +0 -109
- package/dist/types/wallet-server/src/core/authService/emailOtpChallengeProof.d.ts +0 -169
- package/dist/types/wallet-server/src/core/authService/emailOtpChallengeVerification.d.ts +0 -47
- package/dist/types/wallet-server/src/core/authService/emailOtpChallenges.d.ts +0 -86
- package/dist/types/wallet-server/src/core/authService/emailOtpDelivery.d.ts +0 -66
- package/dist/types/wallet-server/src/core/authService/emailOtpGrant.d.ts +0 -43
- package/dist/types/wallet-server/src/core/authService/emailOtpRegistrationEnrollment.d.ts +0 -49
- package/dist/types/wallet-server/src/core/authService/emailOtpUnlock.d.ts +0 -64
- package/dist/types/wallet-server/src/core/authService/googleEmailOtpOperations.d.ts +0 -126
- package/dist/types/wallet-server/src/core/authService/googleEmailOtpRegistration.d.ts +0 -169
- package/dist/types/wallet-server/src/core/authService/identity.d.ts +0 -25
- package/dist/types/wallet-server/src/core/authService/identityOperations.d.ts +0 -19
- package/dist/types/wallet-server/src/core/authService/nearAccountOperations.d.ts +0 -55
- package/dist/types/wallet-server/src/core/authService/nearPublicKeyMetadata.d.ts +0 -44
- package/dist/types/wallet-server/src/core/authService/oidcVerification.d.ts +0 -66
- package/dist/types/wallet-server/src/core/authService/registrationThresholdHelpers.d.ts +0 -11
- package/dist/types/wallet-server/src/core/authService/runtime.d.ts +0 -20
- package/dist/types/wallet-server/src/core/authService/storeRegistry.d.ts +0 -53
- package/dist/types/wallet-server/src/core/authService/thresholdStoreSummary.d.ts +0 -3
- package/dist/types/wallet-server/src/core/authService/webauthnAuthority.d.ts +0 -5
- package/dist/types/wallet-server/src/core/defaultConfigsServer.d.ts +0 -5
- package/dist/types/wallet-server/src/core/hostedAccountIds.d.ts +0 -16
- package/dist/types/wallet-server/src/core/routerAbSigning/createRouterAbSigningRuntimes.d.ts +0 -16
- package/dist/types/wallet-server/src/core/signingLanes/LaneAggregateRevocationApplicationService.d.ts +0 -36
- package/dist/types/wallet-server/src/core/signingLanes/LaneEffectJournalStore.d.ts +0 -62
- package/dist/types/wallet-server/src/core/signingLanes/LaneEnrollmentActivation.d.ts +0 -13
- package/dist/types/wallet-server/src/core/signingLanes/LaneEnrollmentRevocation.d.ts +0 -24
- package/dist/types/wallet-server/src/core/signingLanes/LaneLifecycleApplicationService.d.ts +0 -141
- package/dist/types/wallet-server/src/core/signingLanes/LaneLifecycleStore.d.ts +0 -228
- package/dist/types/wallet-server/src/core/signingLanes/ecdsaServerRetirement.d.ts +0 -58
- package/dist/types/wallet-server/src/core/signingLanes/ed25519ServerRetirement.d.ts +0 -30
- package/dist/types/wallet-server/src/core/signingLanes/signingWorkerLaneMaterialIdentity.d.ts +0 -4
- package/dist/types/wallet-server/src/core/storeBackends.d.ts +0 -83
- package/dist/types/wallet-server/src/core/utils.d.ts +0 -3
- package/dist/types/wallet-server/src/core/webAuthnStoreBackends.d.ts +0 -96
- package/dist/types/wallet-server/src/router/cloudflare/d1/near/d1NearPublicKeyStore.d.ts +0 -29
- package/dist/types/wallet-server/src/router/cloudflare/d1/signingLanes/d1EcdsaLanePrivateBindingResolver.d.ts +0 -4
- package/dist/types/wallet-server/src/router/cloudflare/d1/signingLanes/d1LaneAggregateRevocationApplicationService.d.ts +0 -4
- package/dist/types/wallet-server/src/router/cloudflare/d1/signingLanes/d1LaneEffectJournalStore.d.ts +0 -24
- package/dist/types/wallet-server/src/router/cloudflare/d1/signingLanes/d1LaneEnrollmentGateway.d.ts +0 -20
- package/dist/types/wallet-server/src/router/cloudflare/d1/signingLanes/d1LaneLifecycleApplicationService.d.ts +0 -13
- package/dist/types/wallet-server/src/router/cloudflare/d1/signingLanes/d1LaneLifecycleStore.d.ts +0 -51
- package/dist/types/wallet-server/src/router/cloudflare/d1/signingLanes/d1LaneLockStore.d.ts +0 -28
- package/dist/types/wallet-server/src/router/cloudflare/d1/signingLanes/d1LaneProtocolCommitter.d.ts +0 -5
- package/dist/types/wallet-server/src/router/cloudflare/d1/signingLanes/d1LaneRecords.d.ts +0 -107
- package/dist/types/wallet-server/src/router/cloudflare/d1/signingLanes/index.d.ts +0 -10
- package/dist/types/wallet-server/src/router/cloudflare/durableObjects/thresholdStore.d.ts +0 -18
- package/dist/types/wallet-server/src/router/cloudflare/signingLanes/cloudflareLaneCurveExecution.d.ts +0 -217
- package/dist/types/wallet-server/src/router/cloudflare/signingLanes/cloudflareLaneProtocolCommitter.d.ts +0 -73
- package/dist/types/wallet-server/src/router/cloudflare/signingLanes/index.d.ts +0 -4
- package/dist/types/wallet-server/src/router/cloudflare/signingLanes/linkedDeviceEd25519CeremonyBinding.d.ts +0 -6
- package/dist/types/wallet-server/src/router/transport/fetch/routes/nearPublicKeys.d.ts +0 -3
- /package/dist/esm/{core/signingLanes/LaneEffectJournalStore.js → authorization/recoveryRouting.js} +0 -0
- /package/dist/esm/{core/signingLanes/LaneLifecycleStore.js → authorization/sessionRouting.js} +0 -0
|
@@ -1,15 +1,12 @@
|
|
|
1
1
|
import { parseWalletId } from "../shared-ts/src/utils/domainIds.js";
|
|
2
2
|
import { normalizeOptionalTrimmedString } from "../shared-ts/src/utils/normalize.js";
|
|
3
3
|
import { isPlainObject } from "../shared-ts/src/utils/validation.js";
|
|
4
|
-
import { sameRouterAbMpcMaterialActivationRef } from "../shared-ts/src/utils/routerAbNormalSigningIdentity.js";
|
|
5
4
|
import { derivationClientSharePublicKey33B64uFromString, ecdsaClientRootPublicKey33B64uFromString, parseSdkEcdsaDerivationThresholdKeyId } from "../shared-ts/src/threshold/ecdsaDerivationRoleLocalBootstrap.js";
|
|
6
5
|
import { normalizeRuntimePolicyScope } from "../shared-ts/src/threshold/signingRootScope.js";
|
|
7
|
-
import { parseRouterAbEcdsaDerivationActivationRefreshRequestV1, parseRouterAbEcdsaDerivationActivationRefreshResponseV1, parseRouterAbEcdsaDerivationPublicCapabilityV1, parseRouterAbEcdsaRegistrationActivationReceiptV1, sameRegistrationSignerSet,
|
|
8
|
-
import { resolveStorePrefix } from "./d1TenantStore.js";
|
|
9
|
-
import { createDurableObjectStore, postDurableObjectRequest } from "./storeBackends.js";
|
|
6
|
+
import { parseRouterAbEcdsaDerivationActivationRefreshRequestV1, parseRouterAbEcdsaDerivationActivationRefreshResponseV1, parseRouterAbEcdsaDerivationPublicCapabilityV1, parseRouterAbEcdsaRegistrationActivationReceiptV1, sameRegistrationSignerSet, sameRouterAbEcdsaDerivationPublicIdentityV1 } from "../shared-ts/src/utils/routerAbEcdsaDerivation.js";
|
|
10
7
|
import { thresholdEcdsaChainTargetKey } from "../shared-ts/src/utils/thresholdEcdsaChainTarget.js";
|
|
11
8
|
import { thresholdEcdsaChainTargetFromValue } from "./thresholdEcdsaChainTarget.js";
|
|
12
|
-
import { D1WalletStore, WALLET_STORE_D1_SCHEMA_SQL, buildWalletEcdsaSignerRecord, ensureWalletStoreD1Schema
|
|
9
|
+
import { D1WalletStore, WALLET_STORE_D1_SCHEMA_SQL, buildWalletEcdsaSignerRecord, ensureWalletStoreD1Schema } from "./d1WalletStore.js";
|
|
13
10
|
//#region src/core/WalletStore.ts
|
|
14
11
|
function parseWalletEcdsaPendingSessionActivationRecord(raw) {
|
|
15
12
|
if (!isPlainObject(raw) || raw.version !== "wallet_ecdsa_pending_session_activation_v1") return null;
|
|
@@ -45,37 +42,14 @@ function parseForwardedEcdsaRefreshResponse(raw) {
|
|
|
45
42
|
if (response.result !== "forwarded") throw new Error("Persisted ECDSA refresh proof must be forwarded");
|
|
46
43
|
return response;
|
|
47
44
|
}
|
|
48
|
-
function ecdsaPublicCapabilitiesEqual(left, right) {
|
|
49
|
-
return sameRouterAbEcdsaDerivationPublicCapabilityV1(left, right);
|
|
50
|
-
}
|
|
51
45
|
function ecdsaPostRegistrationRequestMatchesCapability(input) {
|
|
52
46
|
return input.request.client_id === input.capability.client_id && input.request.router_id === input.capability.router_id && input.request.context.application_binding_digest_b64u === input.capability.context.application_binding_digest_b64u && sameRouterAbEcdsaDerivationPublicIdentityV1(input.request.public_identity, input.capability.public_identity) && sameRegistrationSignerSet(input.request.signer_set, input.capability.signer_set);
|
|
53
47
|
}
|
|
54
|
-
function resolveWalletStoreNamespace(config) {
|
|
55
|
-
return resolveStorePrefix(config, ["WALLET_PREFIX"], "wallet:");
|
|
56
|
-
}
|
|
57
|
-
function signerFamily(record) {
|
|
58
|
-
return record.version === "wallet_signer_ed25519_v1" ? "ed25519" : "ecdsa";
|
|
59
|
-
}
|
|
60
48
|
function normalizeTimestampMs(value) {
|
|
61
49
|
const numberValue = Number(value);
|
|
62
50
|
if (!Number.isFinite(numberValue) || numberValue < 0) return null;
|
|
63
51
|
return Math.floor(numberValue);
|
|
64
52
|
}
|
|
65
|
-
function parseWalletRecord(raw) {
|
|
66
|
-
if (!isPlainObject(raw)) return null;
|
|
67
|
-
if (raw.version !== "wallet_v1") return null;
|
|
68
|
-
const walletId = parseWalletId(raw.walletId);
|
|
69
|
-
const createdAtMs = normalizeTimestampMs(raw.createdAtMs);
|
|
70
|
-
const updatedAtMs = normalizeTimestampMs(raw.updatedAtMs);
|
|
71
|
-
if (!walletId.ok || createdAtMs == null || updatedAtMs == null) return null;
|
|
72
|
-
return {
|
|
73
|
-
version: "wallet_v1",
|
|
74
|
-
walletId: walletId.value,
|
|
75
|
-
createdAtMs,
|
|
76
|
-
updatedAtMs
|
|
77
|
-
};
|
|
78
|
-
}
|
|
79
53
|
function parseWalletEcdsaSignerRecord(raw) {
|
|
80
54
|
if (!isPlainObject(raw) || raw.version !== "wallet_signer_ecdsa_v1") return null;
|
|
81
55
|
if ("evmFamilySigningKeySlotId" in raw) return null;
|
|
@@ -180,187 +154,7 @@ function buildWalletEd25519SignerId(input) {
|
|
|
180
154
|
if (!Number.isSafeInteger(signerSlot) || signerSlot < 1) throw new Error("Ed25519 signer ID requires an exact signerSlot");
|
|
181
155
|
return `ed25519:${nearAccountId}:${signerSlot}`;
|
|
182
156
|
}
|
|
183
|
-
var InMemoryWalletStore = class {
|
|
184
|
-
constructor(prefix) {
|
|
185
|
-
this.prefix = prefix;
|
|
186
|
-
this.subjects = /* @__PURE__ */ new Map();
|
|
187
|
-
this.signers = /* @__PURE__ */ new Map();
|
|
188
|
-
this.pendingEcdsaActivations = /* @__PURE__ */ new Map();
|
|
189
|
-
}
|
|
190
|
-
async getWallet(input) {
|
|
191
|
-
const walletId = normalizeOptionalTrimmedString(input.walletId);
|
|
192
|
-
if (!walletId) return null;
|
|
193
|
-
return this.subjects.get(`${this.prefix}${walletId}`) ?? null;
|
|
194
|
-
}
|
|
195
|
-
async getEcdsaSignerByKeyHandle(input) {
|
|
196
|
-
const walletId = normalizeOptionalTrimmedString(input.walletId);
|
|
197
|
-
const keyHandle = normalizeOptionalTrimmedString(input.keyHandle);
|
|
198
|
-
if (!walletId || !keyHandle) return null;
|
|
199
|
-
const chainTargetKey = thresholdEcdsaChainTargetKey(input.chainTarget);
|
|
200
|
-
const matches = [...this.signers.values()].filter((record) => record.version === "wallet_signer_ecdsa_v1" && record.walletId === walletId && record.walletKey.keyHandle === keyHandle && record.chainTargetKey === chainTargetKey);
|
|
201
|
-
return matches.length === 1 ? matches[0] : null;
|
|
202
|
-
}
|
|
203
|
-
async getEd25519SignerBySlot(input) {
|
|
204
|
-
const matches = [...this.signers.values()].filter((record) => record.version === "wallet_signer_ed25519_v1" && record.walletId === input.walletId && record.signerSlot === input.signerSlot);
|
|
205
|
-
return matches.length === 1 ? matches[0] ?? null : null;
|
|
206
|
-
}
|
|
207
|
-
async getEcdsaSignerByPublicCapability(input) {
|
|
208
|
-
const matches = [...this.signers.values()].filter((record) => record.version === "wallet_signer_ecdsa_v1" && record.walletId === input.walletId && ecdsaPublicCapabilitiesEqual(record.walletKey.publicCapability, input.publicCapability));
|
|
209
|
-
if (matches.length === 0) return null;
|
|
210
|
-
const keyHandle = matches[0]?.walletKey.keyHandle;
|
|
211
|
-
if (!keyHandle || matches.some((record) => record.walletKey.keyHandle !== keyHandle)) throw new Error("Wallet has conflicting ECDSA public capabilities");
|
|
212
|
-
return matches[0] ?? null;
|
|
213
|
-
}
|
|
214
|
-
async getEcdsaSignerByMaterialActivation(input) {
|
|
215
|
-
const matches = [...this.signers.values()].filter((record) => record.version === "wallet_signer_ecdsa_v1" && record.walletId === input.walletId && sameRouterAbMpcMaterialActivationRef(record.walletKey.publicCapability.material_activation, input.materialActivation));
|
|
216
|
-
if (matches.length === 0) return null;
|
|
217
|
-
const keyHandle = matches[0]?.walletKey.keyHandle;
|
|
218
|
-
if (!keyHandle || matches.some((record) => record.walletKey.keyHandle !== keyHandle)) throw new Error("Wallet has conflicting ECDSA material activations");
|
|
219
|
-
return matches[0] ?? null;
|
|
220
|
-
}
|
|
221
|
-
async getEcdsaSignerByPostRegistrationRequest(input) {
|
|
222
|
-
const matches = [...this.signers.values()].filter((record) => record.version === "wallet_signer_ecdsa_v1" && record.walletId === input.walletId && ecdsaPostRegistrationRequestMatchesCapability({
|
|
223
|
-
request: input.request,
|
|
224
|
-
capability: record.walletKey.publicCapability
|
|
225
|
-
}));
|
|
226
|
-
if (matches.length === 0) return null;
|
|
227
|
-
const keyHandle = matches[0]?.walletKey.keyHandle;
|
|
228
|
-
if (!keyHandle || matches.some((record) => record.walletKey.keyHandle !== keyHandle)) throw new Error("Wallet has conflicting ECDSA post-registration identities");
|
|
229
|
-
return matches[0] ?? null;
|
|
230
|
-
}
|
|
231
|
-
async listEcdsaSignersForWallet(input) {
|
|
232
|
-
return [...this.signers.values()].filter((record) => record.version === "wallet_signer_ecdsa_v1" && record.walletId === input.walletId);
|
|
233
|
-
}
|
|
234
|
-
async putEcdsaPendingSessionActivation(record) {
|
|
235
|
-
this.pendingEcdsaActivations.set(`${record.walletId}:${record.lifecycleId}:${record.requestId}`, record);
|
|
236
|
-
}
|
|
237
|
-
async putSubject(record) {
|
|
238
|
-
this.subjects.set(`${this.prefix}${record.walletId}`, record);
|
|
239
|
-
}
|
|
240
|
-
async putSigner(record) {
|
|
241
|
-
this.signers.set(`${this.prefix}${record.walletId}:${signerFamily(record)}:${record.signerId}`, record);
|
|
242
|
-
}
|
|
243
|
-
async putSigners(records) {
|
|
244
|
-
for (const record of records) await this.putSigner(record);
|
|
245
|
-
}
|
|
246
|
-
};
|
|
247
|
-
var CloudflareDurableObjectWalletStore = class {
|
|
248
|
-
constructor(stub, prefix) {
|
|
249
|
-
this.stub = stub;
|
|
250
|
-
this.prefix = prefix;
|
|
251
|
-
}
|
|
252
|
-
key(scope, id) {
|
|
253
|
-
return `${this.prefix}${scope}:${id}`;
|
|
254
|
-
}
|
|
255
|
-
/** The object's reply to a `get`, or `undefined` when it answers with an HTTP error. */
|
|
256
|
-
async get(key) {
|
|
257
|
-
const response = await postDurableObjectRequest(this.stub, {
|
|
258
|
-
op: "get",
|
|
259
|
-
key
|
|
260
|
-
});
|
|
261
|
-
if (!response.ok) return void 0;
|
|
262
|
-
return await response.json().catch(() => null);
|
|
263
|
-
}
|
|
264
|
-
async put(key, value) {
|
|
265
|
-
const response = await postDurableObjectRequest(this.stub, {
|
|
266
|
-
op: "set",
|
|
267
|
-
key,
|
|
268
|
-
value
|
|
269
|
-
});
|
|
270
|
-
if (!response.ok) throw new Error(`Wallet DO store HTTP ${response.status}: ${await response.text()}`);
|
|
271
|
-
}
|
|
272
|
-
async putSubject(record) {
|
|
273
|
-
await this.put(this.key("subject", record.walletId), record);
|
|
274
|
-
}
|
|
275
|
-
async getWallet(input) {
|
|
276
|
-
const walletId = normalizeOptionalTrimmedString(input.walletId);
|
|
277
|
-
if (!walletId) return null;
|
|
278
|
-
const current = await this.get(this.key("subject", walletId));
|
|
279
|
-
if (current === void 0) return null;
|
|
280
|
-
return parseWalletRecord(current?.value);
|
|
281
|
-
}
|
|
282
|
-
async getEcdsaSignerByKeyHandle(input) {
|
|
283
|
-
const walletId = normalizeOptionalTrimmedString(input.walletId);
|
|
284
|
-
const keyHandle = normalizeOptionalTrimmedString(input.keyHandle);
|
|
285
|
-
if (!walletId || !keyHandle) return null;
|
|
286
|
-
const chainTargetKey = thresholdEcdsaChainTargetKey(input.chainTarget);
|
|
287
|
-
const current = await this.get(this.key("signer", `${walletId}:ecdsa-key-handle:${keyHandle}:${chainTargetKey}`));
|
|
288
|
-
if (current === void 0) return null;
|
|
289
|
-
return parseWalletEcdsaSignerRecord(current?.value);
|
|
290
|
-
}
|
|
291
|
-
async getEd25519SignerBySlot(input) {
|
|
292
|
-
const current = await this.get(this.key("signer", `${input.walletId}:ed25519-slot:${input.signerSlot}`));
|
|
293
|
-
if (current === void 0) return null;
|
|
294
|
-
return parseWalletEd25519SignerRecord(current?.value);
|
|
295
|
-
}
|
|
296
|
-
async getEcdsaSignerByPublicCapability(input) {
|
|
297
|
-
const current = await this.get(this.key("signer", `${input.walletId}:ecdsa-public-capability:${input.publicCapability.registration_request_digest_b64u}`));
|
|
298
|
-
if (current === void 0) return null;
|
|
299
|
-
const signer = parseWalletEcdsaSignerRecord(current?.value);
|
|
300
|
-
return signer && ecdsaPublicCapabilitiesEqual(signer.walletKey.publicCapability, input.publicCapability) ? signer : null;
|
|
301
|
-
}
|
|
302
|
-
async getEcdsaSignerByMaterialActivation(input) {
|
|
303
|
-
const current = await this.get(this.key("signer", `${input.walletId}:ecdsa-material-activation:${input.materialActivation.activation_id}`));
|
|
304
|
-
if (current === void 0) return null;
|
|
305
|
-
const signer = parseWalletEcdsaSignerRecord(current?.value);
|
|
306
|
-
return signer && signer.walletId === input.walletId && sameRouterAbMpcMaterialActivationRef(signer.walletKey.publicCapability.material_activation, input.materialActivation) ? signer : null;
|
|
307
|
-
}
|
|
308
|
-
async getEcdsaSignerByPostRegistrationRequest(input) {
|
|
309
|
-
const capabilityDigest = input.request.public_identity.context_binding_b64u;
|
|
310
|
-
const current = await this.get(this.key("signer", `${input.walletId}:ecdsa-context-binding:${capabilityDigest}`));
|
|
311
|
-
if (current === void 0) return null;
|
|
312
|
-
const signer = parseWalletEcdsaSignerRecord(current?.value);
|
|
313
|
-
return signer && ecdsaPostRegistrationRequestMatchesCapability({
|
|
314
|
-
request: input.request,
|
|
315
|
-
capability: signer.walletKey.publicCapability
|
|
316
|
-
}) ? signer : null;
|
|
317
|
-
}
|
|
318
|
-
async listEcdsaSignersForWallet(input) {
|
|
319
|
-
const current = await this.get(this.key("signer", `${input.walletId}:ecdsa-list`));
|
|
320
|
-
if (current?.value === void 0 || current.value === null) return [];
|
|
321
|
-
if (!Array.isArray(current.value)) throw new Error("Wallet ECDSA signer list is invalid");
|
|
322
|
-
const signers = [];
|
|
323
|
-
for (const raw of current.value) {
|
|
324
|
-
const signer = parseWalletEcdsaSignerRecord(raw);
|
|
325
|
-
if (!signer || signer.walletId !== input.walletId) throw new Error("Wallet ECDSA signer list contains an invalid record");
|
|
326
|
-
signers.push(signer);
|
|
327
|
-
}
|
|
328
|
-
return signers;
|
|
329
|
-
}
|
|
330
|
-
async putEcdsaPendingSessionActivation(record) {
|
|
331
|
-
await this.put(this.key("ecdsa-session-activation", `${record.walletId}:${record.lifecycleId}:${record.requestId}`), record);
|
|
332
|
-
}
|
|
333
|
-
async putSigner(record) {
|
|
334
|
-
await this.put(this.key("signer", `${record.walletId}:${signerFamily(record)}:${record.signerId}`), record);
|
|
335
|
-
if (record.version === "wallet_signer_ecdsa_v1") {
|
|
336
|
-
await this.put(this.key("signer", `${record.walletId}:ecdsa-key-handle:${record.walletKey.keyHandle}:${record.chainTargetKey}`), record);
|
|
337
|
-
await this.put(this.key("signer", `${record.walletId}:ecdsa-public-capability:${record.walletKey.publicCapability.registration_request_digest_b64u}`), record);
|
|
338
|
-
await this.put(this.key("signer", `${record.walletId}:ecdsa-material-activation:${record.walletKey.publicCapability.material_activation.activation_id}`), record);
|
|
339
|
-
await this.put(this.key("signer", `${record.walletId}:ecdsa-context-binding:${record.walletKey.publicCapability.public_identity.context_binding_b64u}`), record);
|
|
340
|
-
const next = (await this.listEcdsaSignersForWallet({ walletId: record.walletId })).filter((signer) => signer.chainTargetKey !== record.chainTargetKey);
|
|
341
|
-
await this.put(this.key("signer", `${record.walletId}:ecdsa-list`), [...next, record]);
|
|
342
|
-
}
|
|
343
|
-
if (record.version === "wallet_signer_ed25519_v1") await this.put(this.key("signer", `${record.walletId}:ed25519-slot:${record.signerSlot}`), record);
|
|
344
|
-
}
|
|
345
|
-
async putSigners(records) {
|
|
346
|
-
for (const record of records) await this.putSigner(record);
|
|
347
|
-
}
|
|
348
|
-
};
|
|
349
|
-
const WALLET_STORE = {
|
|
350
|
-
tag: "wallet",
|
|
351
|
-
name: "wallet",
|
|
352
|
-
inMemoryLog: "Using in-memory store (non-persistent)",
|
|
353
|
-
d1StoreName: "wallet store",
|
|
354
|
-
resolvePrefix: resolveWalletStoreNamespace
|
|
355
|
-
};
|
|
356
|
-
function createWalletStore(input) {
|
|
357
|
-
return createDurableObjectStore(input, WALLET_STORE, {
|
|
358
|
-
d1: (options) => new D1WalletStore(options),
|
|
359
|
-
durableObject: (stub, prefix) => new CloudflareDurableObjectWalletStore(stub, prefix),
|
|
360
|
-
inMemory: (prefix) => new InMemoryWalletStore(prefix)
|
|
361
|
-
});
|
|
362
|
-
}
|
|
363
157
|
//#endregion
|
|
364
|
-
export { D1WalletStore, WALLET_STORE_D1_SCHEMA_SQL, buildWalletEcdsaSignerRecord, buildWalletEd25519SignerId,
|
|
158
|
+
export { D1WalletStore, WALLET_STORE_D1_SCHEMA_SQL, buildWalletEcdsaSignerRecord, buildWalletEd25519SignerId, ecdsaPostRegistrationRequestMatchesCapability, ensureWalletStoreD1Schema, parseWalletEcdsaPendingSessionActivationRecord, parseWalletEcdsaSignerRecord };
|
|
365
159
|
|
|
366
160
|
//# sourceMappingURL=WalletStore.js.map
|
|
@@ -1,202 +0,0 @@
|
|
|
1
|
-
import { normalizeOptionalTrimmedString } from "../shared-ts/src/utils/normalize.js";
|
|
2
|
-
import { isObject } from "../shared-ts/src/utils/validation.js";
|
|
3
|
-
import { parseWebAuthnAuthenticatorDeviceInfo, parseWebAuthnAuthenticatorDeviceInfoJson, unknownWebAuthnAuthenticatorDeviceInfo } from "../shared-ts/src/utils/webauthnDeviceInfo.js";
|
|
4
|
-
import { D1TenantTable, ensureD1Schema } from "./d1TenantStore.js";
|
|
5
|
-
import { UPSERT_WEBAUTHN_AUTHENTICATOR_SQL, webAuthnAuthenticatorRows } from "./webAuthnD1Statements.js";
|
|
6
|
-
import { WebAuthnCredentialRecords, createWebAuthnStore, resolveWebAuthnStorePrefix, webAuthnD1Store } from "./webAuthnStoreBackends.js";
|
|
7
|
-
//#region src/core/WebAuthnAuthenticatorStore.ts
|
|
8
|
-
const WEBAUTHN_AUTHENTICATOR_STORE_D1_SCHEMA_SQL = Object.freeze([`
|
|
9
|
-
CREATE TABLE IF NOT EXISTS webauthn_authenticators (
|
|
10
|
-
namespace TEXT NOT NULL,
|
|
11
|
-
org_id TEXT NOT NULL,
|
|
12
|
-
project_id TEXT NOT NULL,
|
|
13
|
-
env_id TEXT NOT NULL,
|
|
14
|
-
user_id TEXT NOT NULL,
|
|
15
|
-
credential_id_b64u TEXT NOT NULL,
|
|
16
|
-
credential_public_key_b64u TEXT NOT NULL,
|
|
17
|
-
counter INTEGER NOT NULL,
|
|
18
|
-
created_at_ms INTEGER NOT NULL,
|
|
19
|
-
updated_at_ms INTEGER NOT NULL,
|
|
20
|
-
device_info_json TEXT NOT NULL DEFAULT '{}',
|
|
21
|
-
PRIMARY KEY (namespace, org_id, project_id, env_id, user_id, credential_id_b64u),
|
|
22
|
-
CHECK (length(user_id) > 0),
|
|
23
|
-
CHECK (length(credential_id_b64u) > 0),
|
|
24
|
-
CHECK (length(credential_public_key_b64u) > 0),
|
|
25
|
-
CHECK (counter >= 0),
|
|
26
|
-
CHECK (created_at_ms > 0),
|
|
27
|
-
CHECK (updated_at_ms > 0)
|
|
28
|
-
)
|
|
29
|
-
`, `
|
|
30
|
-
CREATE INDEX IF NOT EXISTS webauthn_authenticators_user_idx
|
|
31
|
-
ON webauthn_authenticators (
|
|
32
|
-
namespace,
|
|
33
|
-
org_id,
|
|
34
|
-
project_id,
|
|
35
|
-
env_id,
|
|
36
|
-
user_id,
|
|
37
|
-
created_at_ms
|
|
38
|
-
)
|
|
39
|
-
`]);
|
|
40
|
-
async function ensureWebAuthnAuthenticatorStoreD1Schema(options) {
|
|
41
|
-
await ensureD1Schema(options.database, WEBAUTHN_AUTHENTICATOR_STORE_D1_SCHEMA_SQL);
|
|
42
|
-
}
|
|
43
|
-
const AUTHENTICATOR_STORE = {
|
|
44
|
-
label: "authenticator",
|
|
45
|
-
prefixConfigKey: "WEBAUTHN_AUTHENTICATOR_PREFIX",
|
|
46
|
-
prefixName: "authenticator",
|
|
47
|
-
parse: parseWebAuthnAuthenticatorRecord,
|
|
48
|
-
durableObjectLogSubject: "authenticator persistence",
|
|
49
|
-
connectionErrorSubject: "webauthn store",
|
|
50
|
-
unconfiguredNote: "non-persistent",
|
|
51
|
-
d1ScopeLabel: "authenticator"
|
|
52
|
-
};
|
|
53
|
-
function resolveWebAuthnAuthenticatorStoreNamespace(config) {
|
|
54
|
-
return resolveWebAuthnStorePrefix(config, AUTHENTICATOR_STORE);
|
|
55
|
-
}
|
|
56
|
-
function parseWebAuthnAuthenticatorRecord(raw) {
|
|
57
|
-
if (!isObject(raw)) return null;
|
|
58
|
-
const version = normalizeOptionalTrimmedString(raw.version);
|
|
59
|
-
const credentialIdB64u = normalizeOptionalTrimmedString(raw.credentialIdB64u);
|
|
60
|
-
const credentialPublicKeyB64u = normalizeOptionalTrimmedString(raw.credentialPublicKeyB64u);
|
|
61
|
-
const counter = typeof raw.counter === "number" ? raw.counter : Number(raw.counter);
|
|
62
|
-
const createdAtMs = typeof raw.createdAtMs === "number" ? raw.createdAtMs : Number(raw.createdAtMs);
|
|
63
|
-
const updatedAtMs = typeof raw.updatedAtMs === "number" ? raw.updatedAtMs : Number(raw.updatedAtMs);
|
|
64
|
-
if (version !== "webauthn_authenticator_v1") return null;
|
|
65
|
-
if (!credentialIdB64u || !credentialPublicKeyB64u) return null;
|
|
66
|
-
if (!Number.isFinite(counter) || counter < 0) return null;
|
|
67
|
-
if (!Number.isFinite(createdAtMs) || createdAtMs <= 0) return null;
|
|
68
|
-
if (!Number.isFinite(updatedAtMs) || updatedAtMs <= 0) return null;
|
|
69
|
-
return {
|
|
70
|
-
version: "webauthn_authenticator_v1",
|
|
71
|
-
credentialIdB64u,
|
|
72
|
-
credentialPublicKeyB64u,
|
|
73
|
-
counter: Math.floor(counter),
|
|
74
|
-
createdAtMs: Math.floor(createdAtMs),
|
|
75
|
-
updatedAtMs: Math.floor(updatedAtMs),
|
|
76
|
-
deviceInfo: parseWebAuthnAuthenticatorDeviceInfo(raw.deviceInfo) ?? unknownWebAuthnAuthenticatorDeviceInfo()
|
|
77
|
-
};
|
|
78
|
-
}
|
|
79
|
-
function parseD1WebAuthnAuthenticatorRow(row) {
|
|
80
|
-
if (!row) return null;
|
|
81
|
-
return parseWebAuthnAuthenticatorRecord({
|
|
82
|
-
version: "webauthn_authenticator_v1",
|
|
83
|
-
credentialIdB64u: row.credential_id_b64u,
|
|
84
|
-
credentialPublicKeyB64u: row.credential_public_key_b64u,
|
|
85
|
-
counter: row.counter,
|
|
86
|
-
createdAtMs: row.created_at_ms,
|
|
87
|
-
updatedAtMs: row.updated_at_ms,
|
|
88
|
-
deviceInfo: parseWebAuthnAuthenticatorDeviceInfoJson(row.device_info_json)
|
|
89
|
-
});
|
|
90
|
-
}
|
|
91
|
-
var KeyValueWebAuthnAuthenticatorStore = class {
|
|
92
|
-
constructor(records, prefix) {
|
|
93
|
-
this.records = new WebAuthnCredentialRecords(records, prefix);
|
|
94
|
-
}
|
|
95
|
-
async get(userId, credentialIdB64u) {
|
|
96
|
-
return this.records.get(userId, credentialIdB64u);
|
|
97
|
-
}
|
|
98
|
-
async put(userId, record) {
|
|
99
|
-
const uid = normalizeOptionalTrimmedString(userId);
|
|
100
|
-
if (!uid) throw new Error("Missing userId");
|
|
101
|
-
const parsed = parseWebAuthnAuthenticatorRecord(record);
|
|
102
|
-
if (!parsed) throw new Error("Invalid authenticator record");
|
|
103
|
-
await this.records.set(uid, parsed.credentialIdB64u, parsed);
|
|
104
|
-
}
|
|
105
|
-
async del(userId, credentialIdB64u) {
|
|
106
|
-
await this.records.del(userId, credentialIdB64u);
|
|
107
|
-
}
|
|
108
|
-
};
|
|
109
|
-
/** Only the in-memory backend can enumerate a user's authenticators. */
|
|
110
|
-
var InMemoryWebAuthnAuthenticatorStore = class extends KeyValueWebAuthnAuthenticatorStore {
|
|
111
|
-
constructor(memory, prefix) {
|
|
112
|
-
super(memory, prefix);
|
|
113
|
-
this.memory = memory;
|
|
114
|
-
this.prefix = prefix;
|
|
115
|
-
}
|
|
116
|
-
async list(userId) {
|
|
117
|
-
const uid = normalizeOptionalTrimmedString(userId);
|
|
118
|
-
if (!uid) return [];
|
|
119
|
-
const keyPrefix = `${this.prefix}${uid}:`;
|
|
120
|
-
const out = [];
|
|
121
|
-
for (const [k, v] of this.memory.map.entries()) {
|
|
122
|
-
if (!k.startsWith(keyPrefix)) continue;
|
|
123
|
-
const parsed = parseWebAuthnAuthenticatorRecord(v);
|
|
124
|
-
if (parsed) out.push(parsed);
|
|
125
|
-
}
|
|
126
|
-
out.sort((a, b) => a.createdAtMs - b.createdAtMs);
|
|
127
|
-
return out;
|
|
128
|
-
}
|
|
129
|
-
};
|
|
130
|
-
var D1WebAuthnAuthenticatorStore = class {
|
|
131
|
-
constructor(input) {
|
|
132
|
-
this.adapterKind = "d1";
|
|
133
|
-
this.prepare = (sql, values) => this.table.prepare(sql, values);
|
|
134
|
-
this.table = new D1TenantTable(input, webAuthnD1Store(AUTHENTICATOR_STORE.d1ScopeLabel), WEBAUTHN_AUTHENTICATOR_STORE_D1_SCHEMA_SQL);
|
|
135
|
-
}
|
|
136
|
-
async get(userId, credentialIdB64u) {
|
|
137
|
-
await this.table.ensureSchema();
|
|
138
|
-
const uid = normalizeOptionalTrimmedString(userId);
|
|
139
|
-
const cid = normalizeOptionalTrimmedString(credentialIdB64u);
|
|
140
|
-
if (!uid || !cid) return null;
|
|
141
|
-
return parseD1WebAuthnAuthenticatorRow(await webAuthnAuthenticatorRows.select(this.prepare, uid, cid).first());
|
|
142
|
-
}
|
|
143
|
-
async put(userId, record) {
|
|
144
|
-
await this.table.ensureSchema();
|
|
145
|
-
const uid = normalizeOptionalTrimmedString(userId);
|
|
146
|
-
if (!uid) throw new Error("Missing userId");
|
|
147
|
-
const parsed = parseWebAuthnAuthenticatorRecord(record);
|
|
148
|
-
if (!parsed) throw new Error("Invalid authenticator record");
|
|
149
|
-
await this.table.prepare(UPSERT_WEBAUTHN_AUTHENTICATOR_SQL, [
|
|
150
|
-
uid,
|
|
151
|
-
parsed.credentialIdB64u,
|
|
152
|
-
parsed.credentialPublicKeyB64u,
|
|
153
|
-
parsed.counter,
|
|
154
|
-
parsed.createdAtMs,
|
|
155
|
-
parsed.updatedAtMs,
|
|
156
|
-
JSON.stringify(parsed.deviceInfo)
|
|
157
|
-
]).run();
|
|
158
|
-
}
|
|
159
|
-
async del(userId, credentialIdB64u) {
|
|
160
|
-
await this.table.ensureSchema();
|
|
161
|
-
const uid = normalizeOptionalTrimmedString(userId);
|
|
162
|
-
const cid = normalizeOptionalTrimmedString(credentialIdB64u);
|
|
163
|
-
if (!uid || !cid) return;
|
|
164
|
-
await this.table.prepare(`DELETE FROM webauthn_authenticators
|
|
165
|
-
WHERE namespace = ?
|
|
166
|
-
AND org_id = ?
|
|
167
|
-
AND project_id = ?
|
|
168
|
-
AND env_id = ?
|
|
169
|
-
AND user_id = ?
|
|
170
|
-
AND credential_id_b64u = ?`, [uid, cid]).run();
|
|
171
|
-
}
|
|
172
|
-
async list(userId) {
|
|
173
|
-
await this.table.ensureSchema();
|
|
174
|
-
const uid = normalizeOptionalTrimmedString(userId);
|
|
175
|
-
if (!uid) return [];
|
|
176
|
-
const result = await this.table.prepare(`SELECT credential_id_b64u, credential_public_key_b64u, counter, created_at_ms, updated_at_ms, device_info_json
|
|
177
|
-
FROM webauthn_authenticators
|
|
178
|
-
WHERE namespace = ?
|
|
179
|
-
AND org_id = ?
|
|
180
|
-
AND project_id = ?
|
|
181
|
-
AND env_id = ?
|
|
182
|
-
AND user_id = ?
|
|
183
|
-
ORDER BY created_at_ms ASC`, [uid]).all();
|
|
184
|
-
const records = [];
|
|
185
|
-
for (const row of result.results || []) {
|
|
186
|
-
const parsed = parseD1WebAuthnAuthenticatorRow(row);
|
|
187
|
-
if (parsed) records.push(parsed);
|
|
188
|
-
}
|
|
189
|
-
return records;
|
|
190
|
-
}
|
|
191
|
-
};
|
|
192
|
-
function createWebAuthnAuthenticatorStore(input) {
|
|
193
|
-
return createWebAuthnStore(input, AUTHENTICATOR_STORE, {
|
|
194
|
-
d1: (options) => new D1WebAuthnAuthenticatorStore(options),
|
|
195
|
-
keyValue: (records, prefix) => new KeyValueWebAuthnAuthenticatorStore(records, prefix),
|
|
196
|
-
inMemory: (records, prefix) => new InMemoryWebAuthnAuthenticatorStore(records, prefix)
|
|
197
|
-
});
|
|
198
|
-
}
|
|
199
|
-
//#endregion
|
|
200
|
-
export { D1WebAuthnAuthenticatorStore, WEBAUTHN_AUTHENTICATOR_STORE_D1_SCHEMA_SQL, createWebAuthnAuthenticatorStore, ensureWebAuthnAuthenticatorStoreD1Schema, resolveWebAuthnAuthenticatorStoreNamespace };
|
|
201
|
-
|
|
202
|
-
//# sourceMappingURL=WebAuthnAuthenticatorStore.js.map
|
|
@@ -1,10 +1,7 @@
|
|
|
1
1
|
import { normalizeOptionalTrimmedString } from "../shared-ts/src/utils/normalize.js";
|
|
2
2
|
import { isObject } from "../shared-ts/src/utils/validation.js";
|
|
3
3
|
import { normalizeRuntimePolicyScope } from "../shared-ts/src/threshold/signingRootScope.js";
|
|
4
|
-
import {
|
|
5
|
-
import { D1TenantTable, ensureD1Schema, prepareD1TenantStatement } from "./d1TenantStore.js";
|
|
6
|
-
import { webAuthnCredentialBindingRows } from "./webAuthnD1Statements.js";
|
|
7
|
-
import { WebAuthnCredentialRecords, createWebAuthnStore, resolveWebAuthnStorePrefix, webAuthnD1Store } from "./webAuthnStoreBackends.js";
|
|
4
|
+
import { prepareD1TenantStatement } from "./d1TenantStore.js";
|
|
8
5
|
//#region src/core/WebAuthnCredentialBindingStore.ts
|
|
9
6
|
const INSERT_CREDENTIAL_BINDING_SQL = `INSERT INTO webauthn_credential_bindings (
|
|
10
7
|
namespace,
|
|
@@ -64,57 +61,6 @@ function prepareD1WebAuthnCredentialBindingPutStatement(input) {
|
|
|
64
61
|
function prepareD1WebAuthnCredentialBindingInsertStatement(input) {
|
|
65
62
|
return prepareCredentialBindingWrite(input, INSERT_CREDENTIAL_BINDING_SQL);
|
|
66
63
|
}
|
|
67
|
-
const WEBAUTHN_CREDENTIAL_BINDING_STORE_D1_SCHEMA_SQL = Object.freeze([`
|
|
68
|
-
CREATE TABLE IF NOT EXISTS webauthn_credential_bindings (
|
|
69
|
-
namespace TEXT NOT NULL,
|
|
70
|
-
org_id TEXT NOT NULL,
|
|
71
|
-
project_id TEXT NOT NULL,
|
|
72
|
-
env_id TEXT NOT NULL,
|
|
73
|
-
rp_id TEXT NOT NULL,
|
|
74
|
-
credential_id_b64u TEXT NOT NULL,
|
|
75
|
-
user_id TEXT NOT NULL,
|
|
76
|
-
-- Nullable until the wallet's Ed25519 Yao ceremony settles.
|
|
77
|
-
signer_slot INTEGER,
|
|
78
|
-
record_json TEXT NOT NULL,
|
|
79
|
-
created_at_ms INTEGER NOT NULL,
|
|
80
|
-
updated_at_ms INTEGER NOT NULL,
|
|
81
|
-
PRIMARY KEY (namespace, org_id, project_id, env_id, rp_id, credential_id_b64u),
|
|
82
|
-
CHECK (length(rp_id) > 0),
|
|
83
|
-
CHECK (length(credential_id_b64u) > 0),
|
|
84
|
-
CHECK (length(user_id) > 0),
|
|
85
|
-
CHECK (signer_slot IS NULL OR signer_slot >= 1),
|
|
86
|
-
CHECK (json_valid(record_json)),
|
|
87
|
-
CHECK (created_at_ms > 0),
|
|
88
|
-
CHECK (updated_at_ms > 0)
|
|
89
|
-
)
|
|
90
|
-
`, `
|
|
91
|
-
CREATE INDEX IF NOT EXISTS webauthn_credential_bindings_user_idx
|
|
92
|
-
ON webauthn_credential_bindings (
|
|
93
|
-
namespace,
|
|
94
|
-
org_id,
|
|
95
|
-
project_id,
|
|
96
|
-
env_id,
|
|
97
|
-
user_id,
|
|
98
|
-
rp_id,
|
|
99
|
-
signer_slot
|
|
100
|
-
)
|
|
101
|
-
`]);
|
|
102
|
-
async function ensureWebAuthnCredentialBindingStoreD1Schema(options) {
|
|
103
|
-
await ensureD1Schema(options.database, WEBAUTHN_CREDENTIAL_BINDING_STORE_D1_SCHEMA_SQL);
|
|
104
|
-
}
|
|
105
|
-
const CREDENTIAL_BINDING_STORE = {
|
|
106
|
-
label: "credential binding",
|
|
107
|
-
prefixConfigKey: "WEBAUTHN_CREDENTIAL_BINDING_PREFIX",
|
|
108
|
-
prefixName: "credential_binding",
|
|
109
|
-
parse: parseWebAuthnCredentialBindingRecord,
|
|
110
|
-
durableObjectLogSubject: "credential bindings",
|
|
111
|
-
connectionErrorSubject: "webauthn store",
|
|
112
|
-
unconfiguredNote: "no persistence configured",
|
|
113
|
-
d1ScopeLabel: "credential"
|
|
114
|
-
};
|
|
115
|
-
function resolveWebAuthnCredentialBindingStoreNamespace(config) {
|
|
116
|
-
return resolveWebAuthnStorePrefix(config, CREDENTIAL_BINDING_STORE);
|
|
117
|
-
}
|
|
118
64
|
function parseWebAuthnCredentialBindingRecord(raw) {
|
|
119
65
|
if (!isObject(raw)) return null;
|
|
120
66
|
const version = normalizeOptionalTrimmedString(raw.version);
|
|
@@ -183,133 +129,7 @@ function parseWebAuthnCredentialBindingRecord(raw) {
|
|
|
183
129
|
...ed25519Facts
|
|
184
130
|
} : base;
|
|
185
131
|
}
|
|
186
|
-
/** One user's bindings, on one RP ID when given. The scope binds ahead of `values`. */
|
|
187
|
-
function userBindingsFilter(userId, rpId) {
|
|
188
|
-
const clauses = [
|
|
189
|
-
"namespace = ?",
|
|
190
|
-
"org_id = ?",
|
|
191
|
-
"project_id = ?",
|
|
192
|
-
"env_id = ?",
|
|
193
|
-
"user_id = ?"
|
|
194
|
-
];
|
|
195
|
-
const values = [userId];
|
|
196
|
-
if (rpId) {
|
|
197
|
-
clauses.push("rp_id = ?");
|
|
198
|
-
values.push(rpId);
|
|
199
|
-
}
|
|
200
|
-
return {
|
|
201
|
-
where: clauses.join(" AND "),
|
|
202
|
-
values
|
|
203
|
-
};
|
|
204
|
-
}
|
|
205
|
-
var KeyValueWebAuthnCredentialBindingStore = class {
|
|
206
|
-
constructor(records, prefix) {
|
|
207
|
-
this.records = new WebAuthnCredentialRecords(records, prefix);
|
|
208
|
-
}
|
|
209
|
-
async get(rpId, credentialIdB64u) {
|
|
210
|
-
return this.records.get(rpId, credentialIdB64u);
|
|
211
|
-
}
|
|
212
|
-
async put(record) {
|
|
213
|
-
const parsed = parseWebAuthnCredentialBindingRecord(record);
|
|
214
|
-
if (!parsed) throw new Error("Invalid credential binding record");
|
|
215
|
-
await this.records.set(parsed.rpId, parsed.credentialIdB64u, parsed);
|
|
216
|
-
}
|
|
217
|
-
async del(rpId, credentialIdB64u) {
|
|
218
|
-
await this.records.del(rpId, credentialIdB64u);
|
|
219
|
-
}
|
|
220
|
-
};
|
|
221
|
-
/** Only the in-memory backend can enumerate a user's bindings. */
|
|
222
|
-
var InMemoryWebAuthnCredentialBindingStore = class extends KeyValueWebAuthnCredentialBindingStore {
|
|
223
|
-
constructor(memory, prefix) {
|
|
224
|
-
super(memory, prefix);
|
|
225
|
-
this.memory = memory;
|
|
226
|
-
}
|
|
227
|
-
async listByUserId(input) {
|
|
228
|
-
const uid = normalizeOptionalTrimmedString(input.userId);
|
|
229
|
-
const rpId = normalizeOptionalTrimmedString(input.rpId);
|
|
230
|
-
if (!uid) return [];
|
|
231
|
-
const out = [];
|
|
232
|
-
for (const v of this.memory.map.values()) {
|
|
233
|
-
const parsed = parseWebAuthnCredentialBindingRecord(v);
|
|
234
|
-
if (!parsed) continue;
|
|
235
|
-
if (parsed.userId !== uid) continue;
|
|
236
|
-
if (rpId && parsed.rpId !== rpId) continue;
|
|
237
|
-
out.push(parsed);
|
|
238
|
-
}
|
|
239
|
-
out.sort((a, b) => (a.signerSlot ?? Number.MAX_SAFE_INTEGER) - (b.signerSlot ?? Number.MAX_SAFE_INTEGER));
|
|
240
|
-
return out;
|
|
241
|
-
}
|
|
242
|
-
};
|
|
243
|
-
var D1WebAuthnCredentialBindingStore = class {
|
|
244
|
-
constructor(input) {
|
|
245
|
-
this.adapterKind = "d1";
|
|
246
|
-
this.prepare = (sql, values) => this.table.prepare(sql, values);
|
|
247
|
-
this.table = new D1TenantTable(input, webAuthnD1Store(CREDENTIAL_BINDING_STORE.d1ScopeLabel), WEBAUTHN_CREDENTIAL_BINDING_STORE_D1_SCHEMA_SQL);
|
|
248
|
-
}
|
|
249
|
-
async get(rpId, credentialIdB64u) {
|
|
250
|
-
await this.table.ensureSchema();
|
|
251
|
-
const r = normalizeOptionalTrimmedString(rpId);
|
|
252
|
-
const c = normalizeOptionalTrimmedString(credentialIdB64u);
|
|
253
|
-
if (!r || !c) return null;
|
|
254
|
-
return parseWebAuthnCredentialBindingRecord(parseD1JsonColumn((await webAuthnCredentialBindingRows.select(this.prepare, r, c).first())?.record_json));
|
|
255
|
-
}
|
|
256
|
-
async put(record) {
|
|
257
|
-
await this.table.ensureSchema();
|
|
258
|
-
await prepareD1WebAuthnCredentialBindingPutStatement({
|
|
259
|
-
database: this.table.database,
|
|
260
|
-
scope: this.table.scope,
|
|
261
|
-
record
|
|
262
|
-
}).run();
|
|
263
|
-
}
|
|
264
|
-
async del(rpId, credentialIdB64u) {
|
|
265
|
-
await this.table.ensureSchema();
|
|
266
|
-
const r = normalizeOptionalTrimmedString(rpId);
|
|
267
|
-
const c = normalizeOptionalTrimmedString(credentialIdB64u);
|
|
268
|
-
if (!r || !c) return;
|
|
269
|
-
await this.table.prepare(`DELETE FROM webauthn_credential_bindings
|
|
270
|
-
WHERE namespace = ?
|
|
271
|
-
AND org_id = ?
|
|
272
|
-
AND project_id = ?
|
|
273
|
-
AND env_id = ?
|
|
274
|
-
AND rp_id = ?
|
|
275
|
-
AND credential_id_b64u = ?`, [r, c]).run();
|
|
276
|
-
}
|
|
277
|
-
async getMaxSignerSlot(input) {
|
|
278
|
-
await this.table.ensureSchema();
|
|
279
|
-
const userId = normalizeOptionalTrimmedString(input.userId);
|
|
280
|
-
if (!userId) return null;
|
|
281
|
-
const filter = userBindingsFilter(userId, normalizeOptionalTrimmedString(input.rpId));
|
|
282
|
-
const row = await this.table.prepare(`SELECT MAX(signer_slot) AS max_signer_slot
|
|
283
|
-
FROM webauthn_credential_bindings
|
|
284
|
-
WHERE ${filter.where}`, filter.values).first();
|
|
285
|
-
const maxSignerSlot = Number(row?.max_signer_slot);
|
|
286
|
-
return Number.isFinite(maxSignerSlot) && maxSignerSlot > 0 ? Math.floor(maxSignerSlot) : null;
|
|
287
|
-
}
|
|
288
|
-
async listByUserId(input) {
|
|
289
|
-
await this.table.ensureSchema();
|
|
290
|
-
const userId = normalizeOptionalTrimmedString(input.userId);
|
|
291
|
-
if (!userId) return [];
|
|
292
|
-
const filter = userBindingsFilter(userId, normalizeOptionalTrimmedString(input.rpId));
|
|
293
|
-
const result = await this.table.prepare(`SELECT record_json
|
|
294
|
-
FROM webauthn_credential_bindings
|
|
295
|
-
WHERE ${filter.where}
|
|
296
|
-
ORDER BY signer_slot ASC`, filter.values).all();
|
|
297
|
-
const records = [];
|
|
298
|
-
for (const row of result.results || []) {
|
|
299
|
-
const parsed = parseWebAuthnCredentialBindingRecord(parseD1JsonColumn(row.record_json));
|
|
300
|
-
if (parsed) records.push(parsed);
|
|
301
|
-
}
|
|
302
|
-
return records;
|
|
303
|
-
}
|
|
304
|
-
};
|
|
305
|
-
function createWebAuthnCredentialBindingStore(input) {
|
|
306
|
-
return createWebAuthnStore(input, CREDENTIAL_BINDING_STORE, {
|
|
307
|
-
d1: (options) => new D1WebAuthnCredentialBindingStore(options),
|
|
308
|
-
keyValue: (records, prefix) => new KeyValueWebAuthnCredentialBindingStore(records, prefix),
|
|
309
|
-
inMemory: (records, prefix) => new InMemoryWebAuthnCredentialBindingStore(records, prefix)
|
|
310
|
-
});
|
|
311
|
-
}
|
|
312
132
|
//#endregion
|
|
313
|
-
export {
|
|
133
|
+
export { prepareD1WebAuthnCredentialBindingInsertStatement, prepareD1WebAuthnCredentialBindingPutStatement };
|
|
314
134
|
|
|
315
135
|
//# sourceMappingURL=WebAuthnCredentialBindingStore.js.map
|