@seams/wallet-server 0.6.1 → 0.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/artifact-manifest.json +147 -32
- package/cloudflare-router-ab/build/deriver-a/build-stamp.json +1 -0
- package/cloudflare-router-ab/build/deriver-a/index.js +2 -2
- package/cloudflare-router-ab/build/deriver-a/index_bg.wasm +0 -0
- package/cloudflare-router-ab/build/deriver-b/build-stamp.json +1 -0
- package/cloudflare-router-ab/build/deriver-b/index.js +2 -2
- package/cloudflare-router-ab/build/deriver-b/index_bg.wasm +0 -0
- package/cloudflare-router-ab/build/local-tools/darwin-arm64/router_ab_local_init +0 -0
- package/cloudflare-router-ab/build/local-tools/darwin-x64/router_ab_local_init +0 -0
- package/cloudflare-router-ab/build/local-tools/linux-x64/router_ab_local_init +0 -0
- package/cloudflare-router-ab/build/router/build-stamp.json +1 -0
- package/cloudflare-router-ab/build/router/index.js +2 -2
- package/cloudflare-router-ab/build/router/index_bg.wasm +0 -0
- package/cloudflare-router-ab/build/signing-worker/build-stamp.json +1 -0
- package/cloudflare-router-ab/build/signing-worker/index.js +2 -2
- package/cloudflare-router-ab/build/signing-worker/index_bg.wasm +0 -0
- package/cloudflare-router-ab/build/tenant-root-control-plane/build-stamp.json +1 -0
- package/cloudflare-router-ab/build/tenant-root-control-plane/index.js +2 -2
- package/cloudflare-router-ab/build/tenant-root-control-plane/index_bg.wasm +0 -0
- package/cloudflare-router-ab/migrations/deriver-a/0012_tenant_root_creation_tombstones.sql +20 -0
- package/cloudflare-router-ab/migrations/deriver-a/0013_tenant_root_root_use_admissions.sql +32 -0
- package/cloudflare-router-ab/migrations/deriver-a/0014_tenant_root_refresh_supersessions.sql +24 -0
- package/cloudflare-router-ab/migrations/deriver-a/0015_tenant_root_root_use_attempts.sql +56 -0
- package/cloudflare-router-ab/migrations/deriver-a/0016_tenant_root_root_use_admission_settlement.sql +5 -0
- package/cloudflare-router-ab/migrations/deriver-a/0017_tenant_root_root_use_admission_claims.sql +64 -0
- package/cloudflare-router-ab/migrations/deriver-a/0018_tenant_root_recovery_retention_keys.sql +12 -0
- package/cloudflare-router-ab/migrations/deriver-b/0012_tenant_root_creation_tombstones.sql +20 -0
- package/cloudflare-router-ab/migrations/deriver-b/0013_tenant_root_root_use_admissions.sql +32 -0
- package/cloudflare-router-ab/migrations/deriver-b/0014_tenant_root_refresh_supersessions.sql +24 -0
- package/cloudflare-router-ab/migrations/deriver-b/0015_tenant_root_root_use_attempts.sql +56 -0
- package/cloudflare-router-ab/migrations/deriver-b/0016_tenant_root_root_use_admission_settlement.sql +5 -0
- package/cloudflare-router-ab/migrations/deriver-b/0017_tenant_root_root_use_admission_claims.sql +64 -0
- package/cloudflare-router-ab/migrations/deriver-b/0018_tenant_root_recovery_retention_keys.sql +12 -0
- package/cloudflare-router-ab/scripts/bootstrap-local-tenant-root.mjs +81 -16
- package/cloudflare-router-ab/scripts/prepare-local-runtime-config.mjs +102 -9
- package/cloudflare-router-ab/scripts/start-local-role-workers.mjs +4 -1
- package/cloudflare-router-ab/wrangler.deriver-a.toml +24 -0
- package/cloudflare-router-ab/wrangler.router.toml +13 -0
- package/dist/esm/authorization/capabilityPolicy.js +1 -1
- package/dist/esm/authorization/domain.js +2 -2
- package/dist/esm/authorization/factorEvidence.js +6 -100
- package/dist/esm/authorization/service.js +34 -2
- package/dist/esm/authorization/vaultProxyUse.js +3 -4
- package/dist/esm/cloud-host.js +16 -11
- package/dist/esm/core/EmailOtpRecords.js +19 -1
- package/dist/esm/core/EmailOtpStores.js +323 -924
- package/dist/esm/core/IdentityStore.js +44 -235
- package/dist/esm/core/NearPublicKeyStore.js +21 -63
- package/dist/esm/core/RegistrationCeremonyStore.js +3 -1793
- package/dist/esm/core/ThresholdService/config.js +1 -82
- package/dist/esm/core/ThresholdService/kv.js +3 -3
- package/dist/esm/core/ThresholdService/routerAb/ecdsaDerivationPoolFillHandlers.js +37 -5
- package/dist/esm/core/ThresholdService/routerAb/ecdsaDerivationPresignBridge.js +4 -74
- package/dist/esm/core/ThresholdService/stores/CloudflareDurableObjectStore.js +15 -51
- package/dist/esm/core/ThresholdService/stores/KeyStore.js +3 -3
- package/dist/esm/core/ThresholdService/stores/SessionStore.js +5 -81
- package/dist/esm/core/ThresholdService/stores/WalletSessionStore.js +185 -290
- package/dist/esm/core/ThresholdService/validation.js +18 -230
- package/dist/esm/core/WalletAuthMethodStore.js +22 -79
- package/dist/esm/core/WalletStore.js +58 -185
- package/dist/esm/core/WebAuthnAuthenticatorStore.js +57 -340
- package/dist/esm/core/WebAuthnCredentialBindingStore.js +90 -369
- package/dist/esm/core/WebAuthnLoginChallengeStore.js +17 -397
- package/dist/esm/core/WebAuthnSyncChallengeStore.js +17 -397
- package/dist/esm/core/authService/AuthService.js +2 -19
- package/dist/esm/core/authService/emailOtpChallengeProof.js +1 -1
- package/dist/esm/core/authService/emailOtpChallenges.js +1 -1
- package/dist/esm/core/authService/emailOtpConfig.js +1 -32
- package/dist/esm/core/authService/emailOtpRegistrationEnrollment.js +6 -153
- package/dist/esm/core/authService/googleEmailOtpRegistration.js +1 -1
- package/dist/esm/core/authService/nearPrivateKeySigning.js +7 -15
- package/dist/esm/core/authService/nearTransactions.js +2 -1
- package/dist/esm/core/authService/oidcVerification.js +3 -4
- package/dist/esm/core/authService/rateLimits.js +1 -31
- package/dist/esm/core/authService/registrationThresholdHelpers.js +2 -103
- package/dist/esm/core/authService/storeRegistry.js +2 -13
- package/dist/esm/core/authService/thresholdEcdsaKeyInventory.js +4 -5
- package/dist/esm/core/authService/webauthn.js +15 -50
- package/dist/esm/core/authService/webauthnOidcHelpers.js +1 -6
- package/dist/esm/core/authService/webauthnVerificationOutcomes.js +60 -0
- package/dist/esm/core/authService/webauthnWalletBinding.js +2 -122
- package/dist/esm/core/d1IdentityStore.js +32 -66
- package/dist/esm/core/d1TenantStore.js +82 -0
- package/dist/esm/core/d1WalletAuthMethodStore.js +92 -143
- package/dist/esm/core/d1WalletStore.js +14 -12
- package/dist/esm/core/deviceLinking/linkedDeviceEmailOtpGrant.js +10 -8
- package/dist/esm/core/deviceLinking/linkedDeviceManagement.js +25 -3
- package/dist/esm/core/deviceLinking/linkedDeviceSession.js +6 -895
- package/dist/esm/core/deviceLinking/linkedDeviceSessionApproval.js +102 -0
- package/dist/esm/core/deviceLinking/linkedDeviceSessionRecord.js +668 -0
- package/dist/esm/core/emailOtpD1Statements.js +383 -0
- package/dist/esm/core/hostedAccountIds.js +2 -2
- package/dist/esm/core/keyMaterialBrands.js +2 -48
- package/dist/esm/core/nearRelayerAccountProvisioning.js +25 -150
- package/dist/esm/core/nearSignerWasmRuntime.js +1 -4
- package/dist/esm/core/rpcClients/near/NearClient.js +15 -218
- package/dist/esm/core/signingLanes/LaneEnrollmentActivation.js +1 -1
- package/dist/esm/core/signingLanes/LaneLifecycleApplicationService.js +2 -4
- package/dist/esm/core/signingLanes/LaneLifecycleStore.js +0 -24
- package/dist/esm/core/signingLanes/WalletExecutionLaneProjection.js +5 -5
- package/dist/esm/core/signingLanes/ecdsaServerRetirement.js +3 -8
- package/dist/esm/core/signingLanes/ed25519ServerRetirement.js +1 -4
- package/dist/esm/core/storeBackends.js +208 -0
- package/dist/esm/core/thresholdEcdsaChainTarget.js +1 -7
- package/dist/esm/core/webAuthnD1Statements.js +92 -0
- package/dist/esm/core/webAuthnStoreBackends.js +198 -0
- package/dist/esm/hosted-wallet-gateway.js +33 -16
- package/dist/esm/index.js +2 -2
- package/dist/esm/local-hosted-wallet-gateway-worker.js +2 -23
- package/dist/esm/localHostedWalletGatewayHandler.js +299 -0
- package/dist/esm/localIntendedEcdsaFinalizeFault.js +85 -0
- package/dist/esm/localIntendedLinkExecuteFault.js +140 -0
- package/dist/esm/localIntendedRevokeFault.js +106 -0
- package/dist/esm/localIntendedSessionAdmissionFault.js +139 -0
- package/dist/esm/localIntendedYaoExportFault.js +117 -0
- package/dist/esm/localIntendedYaoFault.js +13 -16
- package/dist/esm/localIntendedYaoFinalizeFault.js +99 -0
- package/dist/esm/localIntendedYaoRecoveryFault.js +102 -0
- package/dist/esm/localIntendedYaoSigningFault.js +127 -0
- package/dist/esm/router/auth/authRequestValidation.js +1 -1
- package/dist/esm/router/auth/commonRouterUtils.js +10 -2
- package/dist/esm/router/auth/walletSessionFailure.js +1 -14
- package/dist/esm/router/cloudflare/d1/auth/d1AuthorizedOperationRouteService.js +23 -0
- package/dist/esm/router/cloudflare/d1/auth/d1RouterApiAuthService.js +86 -66
- package/dist/esm/router/cloudflare/d1/authorization/authorizedOperationStatements.js +208 -0
- package/dist/esm/router/cloudflare/d1/authorization/d1AuthorizationStore.js +246 -296
- package/dist/esm/router/cloudflare/d1/authorization/persistedWalletSessionAuthorization.js +14 -0
- package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceAuthorityInstallService.js +62 -63
- package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceEmailOtpGrantStore.js +3 -6
- package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceEmailOtpTargetFactor.js +1 -19
- package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceManagementService.js +4 -3
- package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceOwnerAuthorizationProvider.js +52 -9
- package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceRequestProofNonceStore.js +3 -6
- package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceRevocation.js +100 -0
- package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceSessionRecords.js +7 -10
- package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceSessionStore.js +33 -124
- package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceSourceContributionPreparationPlanner.js +2 -2
- package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceTargetCredentialProvider.js +9 -17
- package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceVerifiedLinkBuilder.js +6 -6
- package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceVerifiedLinkSourceReader.js +3 -1
- package/dist/esm/router/cloudflare/d1/deviceLinking/index.js +3 -3
- package/dist/esm/router/cloudflare/d1/deviceLinking/installedEcdsaAuthority.js +69 -0
- package/dist/esm/router/cloudflare/d1/ed25519Yao/d1Ed25519YaoCapabilityPersistence.js +39 -68
- package/dist/esm/router/cloudflare/d1/ed25519Yao/d1Ed25519YaoLifecycleDecisionStore.js +69 -0
- package/dist/esm/router/cloudflare/d1/ed25519Yao/d1Ed25519YaoProductRegistrationPartitionedStateStore.js +2 -2
- package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpChallengeStore.js +26 -71
- package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpChallengeVerifier.js +20 -3
- package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpEnrollmentStore.js +7 -94
- package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpGrantStore.js +5 -47
- package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpRecords.js +26 -123
- package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpRecoveryService.js +0 -2
- package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpRegistrationEnrollmentFinalizer.js +2 -2
- package/dist/esm/router/cloudflare/d1/emailOtp/d1GoogleEmailOtpRegistrationAttemptStore.js +15 -134
- package/dist/esm/router/cloudflare/d1/emailOtp/d1GoogleEmailOtpRegistrationRecords.js +54 -260
- package/dist/esm/router/cloudflare/d1/emailOtp/d1GoogleEmailOtpSessionResolver.js +1 -1
- package/dist/esm/router/cloudflare/d1/identity/d1IdentityRecords.js +1 -28
- package/dist/esm/router/cloudflare/d1/near/d1NearPublicKeyStore.js +2 -8
- package/dist/esm/router/cloudflare/d1/passkeyCustody/d1PasskeyCustodyEnvelopeStore.js +1 -1
- package/dist/esm/router/cloudflare/d1/passkeyCustody/d1PasskeyCustodyRouteService.js +3 -3
- package/dist/esm/router/cloudflare/d1/passkeyCustody/d1WalletCustodyCommitStore.js +23 -73
- package/dist/esm/router/cloudflare/d1/passkeyCustody/d1WalletRecoveryGoogleEmailOtpRecords.js +15 -2
- package/dist/esm/router/cloudflare/d1/passkeyCustody/d1WalletRecoveryGoogleEmailOtpService.js +12 -203
- package/dist/esm/router/cloudflare/d1/registration/d1RegistrationCeremonyRecordStore.js +16 -32
- package/dist/esm/router/cloudflare/d1/registration/d1RegistrationCeremonyRecords.js +29 -72
- package/dist/esm/router/cloudflare/d1/registration/d1RegistrationCeremonyStore.js +4 -1
- package/dist/esm/router/cloudflare/d1/registration/d1RegistrationIntentService.js +3 -1
- package/dist/esm/router/cloudflare/d1/registration/d1WalletRegistrationCommitStore.js +6 -30
- package/dist/esm/router/cloudflare/d1/registration/d1WalletRegistrationService.js +261 -205
- package/dist/esm/router/cloudflare/d1/registration/d1WalletRegistrationSetup.js +5 -3
- package/dist/esm/router/cloudflare/d1/registration/walletRegistrationEstablishedSessionIssuer.js +2 -2
- package/dist/esm/router/cloudflare/d1/registration/walletRegistrationSessionCommitReceipt.js +3 -3
- package/dist/esm/router/cloudflare/d1/signingAdmission/d1RouterAbNormalSigningAdmissionStore.js +43 -25
- package/dist/esm/router/cloudflare/d1/signingLanes/d1LaneEffectJournalStore.js +0 -1
- package/dist/esm/router/cloudflare/d1/signingLanes/d1LaneLifecycleStore.js +1 -1
- package/dist/esm/router/cloudflare/d1/signingLanes/d1LaneRecords.js +2 -1
- package/dist/esm/router/cloudflare/d1/versionedJson/d1VersionedJsonRecordStore.js +2 -60
- package/dist/esm/router/cloudflare/d1/wallet/d1WalletAddSignerService.js +158 -19
- package/dist/esm/router/cloudflare/d1/wallet/d1WalletAuthMethodBoundary.js +19 -49
- package/dist/esm/router/cloudflare/d1/wallet/d1WalletAuthMethodRevocationReplayStore.js +100 -0
- package/dist/esm/router/cloudflare/d1/wallet/d1WalletAuthMethodService.js +132 -33
- package/dist/esm/router/cloudflare/d1/wallet/d1WalletAuthorityStore.js +83 -4
- package/dist/esm/router/cloudflare/d1/webauthn/d1WebAuthnAuthService.js +14 -49
- package/dist/esm/router/cloudflare/d1/webauthn/d1WebAuthnRecords.js +4 -4
- package/dist/esm/router/cloudflare/d1/webauthn/d1WebAuthnStore.js +22 -116
- package/dist/esm/router/cloudflare/runtime/createSelfHostedCloudflareSigningWorker.js +1 -2
- package/dist/esm/router/cloudflare/runtime/walletConsoleTenantRootLineage.js +11 -2
- package/dist/esm/router/cloudflare/runtime/walletGateway.js +1 -1
- package/dist/esm/router/cloudflare/signingLanes/cloudflareLaneCurveExecution.js +5 -6
- package/dist/esm/router/cloudflare/signingLanes/cloudflareLaneProtocolCommitter.js +2 -1
- package/dist/esm/router/cloudflare/signingLanes/cloudflareOrdinaryInactiveSignerMaterialReservation.js +48 -21
- package/dist/esm/router/cloudflare.js +11480 -12853
- package/dist/esm/router/domains/ecdsa/routerAbEcdsaStrictRegistration.js +16 -5
- package/dist/esm/router/domains/ecdsa/thresholdEcdsaRequestValidation.js +2 -8
- package/dist/esm/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoLifecycleDecision.js +33 -0
- package/dist/esm/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistration.js +17 -9
- package/dist/esm/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistrationPartitionedStateStore.js +29 -431
- package/dist/esm/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistrationPartitioning.js +7 -2
- package/dist/esm/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistrationRequestScopedRunner.js +2 -1
- package/dist/esm/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistrationRequestScopedRuntime.js +70 -2
- package/dist/esm/router/domains/ed25519Yao/export/routerAbEd25519YaoExport.js +134 -169
- package/dist/esm/router/domains/ed25519Yao/export/routerAbEd25519YaoExportRequestScopedCloudflare.js +77 -162
- package/dist/esm/router/domains/ed25519Yao/recovery/routerAbEd25519YaoRecovery.js +205 -51
- package/dist/esm/router/domains/ed25519Yao/recovery/routerAbEd25519YaoRecoveryRequestScopedCloudflare.js +29 -11
- package/dist/esm/router/domains/ed25519Yao/registration/routerAbEd25519YaoHttpRegistrationBackend.js +182 -55
- package/dist/esm/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistration.js +2 -1
- package/dist/esm/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistrationExecutionRecord.js +63 -247
- package/dist/esm/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistrationIntentAuthorization.js +3 -2
- package/dist/esm/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistrationRequestScopedCloudflare.js +87 -132
- package/dist/esm/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistrationTwoPhaseRunner.js +5 -4
- package/dist/esm/router/domains/ed25519Yao/routerAbEd25519YaoGatewayEnvelope.js +45 -0
- package/dist/esm/router/domains/ed25519Yao/session/thresholdEd25519RequestValidation.js +1 -1
- package/dist/esm/router/domains/emailOtp/emailOtpExportPolicy.js +1 -42
- package/dist/esm/router/domains/emailOtp/emailOtpRequestValidation.js +1 -6
- package/dist/esm/router/domains/emailOtp/emailOtpSessionRouteHelpers.js +1 -142
- package/dist/esm/router/domains/passkeyCustody/passkeyCustodyEnvelopeRetrievalRoute.js +1 -1
- package/dist/esm/router/domains/passkeyCustody/walletCustodyRegistrationCommit.js +2 -2
- package/dist/esm/router/domains/passkeyCustody/walletRecoveryFinalization.js +23 -45
- package/dist/esm/router/domains/passkeyCustody/walletRecoveryKeyManifest.js +5 -5
- package/dist/esm/router/domains/signingOperations/ed25519AuthorizedOperationReceipt.js +1 -1
- package/dist/esm/router/domains/signingOperations/routerAbEcdsaDerivationNormalSigningRoute.js +827 -0
- package/dist/esm/router/domains/signingOperations/routerAbEd25519NormalSigningRoute.js +698 -0
- package/dist/esm/router/domains/signingOperations/routerAbNormalSigningAdmission.js +209 -0
- package/dist/esm/router/domains/signingOperations/routerAbNormalSigningAdmissionCore.js +16 -15
- package/dist/esm/router/domains/signingOperations/routerAbOperationStepUp.js +313 -0
- package/dist/esm/router/domains/signingOperations/routerAbPrivateSigningWorker.js +62 -2159
- package/dist/esm/router/domains/tenantRoot/tenantRootIdentityResolution.js +1 -1
- package/dist/esm/router/domains/walletRegistration/walletRegistrationRoutes.js +18 -22
- package/dist/esm/router/domains/walletRegistration/walletRegistrationSetupPayload.js +3 -4
- package/dist/esm/router/domains/walletUnlock/walletUnlockRequestedCapabilitiesValidation.js +2 -2
- package/dist/esm/router/domains/walletUnlock/walletUnlockRouteHandlers.js +97 -150
- package/dist/esm/router/express.js +5967 -6410
- package/dist/esm/router/framework/http.js +1 -4
- package/dist/esm/router/framework/ror/normalize.js +1 -1
- package/dist/esm/router/framework/routerApiRouteSurface.js +1 -1
- package/dist/esm/router/node/nodeHostedWalletGateway.js +64 -0
- package/dist/esm/router/node/nodeHostedWalletGatewayCheck.js +163 -0
- package/dist/esm/router/node/nodeHostedWalletGatewayMain.js +120 -0
- package/dist/esm/router/node/nodeHttp.js +79 -0
- package/dist/esm/router/node/nodeSqlite.js +43 -0
- package/dist/esm/router/node/signerSqlMigrations.js +48 -0
- package/dist/esm/router/transport/fetch/createFetchRouter.js +1 -1
- package/dist/esm/router/transport/fetch/routes/deviceLinking.js +16 -18
- package/dist/esm/router/transport/fetch/routes/deviceLinkingOwnerAuthorization.js +3 -5
- package/dist/esm/router/transport/fetch/routes/deviceManagement.js +15 -24
- package/dist/esm/router/transport/fetch/routes/normalSigningRouterProxy.js +3 -16
- package/dist/esm/router/transport/fetch/routes/passkeyCustody.js +144 -461
- package/dist/esm/router/transport/fetch/routes/sessions.js +4 -4
- package/dist/esm/router/transport/fetch/routes/syncAccount.js +4 -6
- package/dist/esm/router/transport/fetch/routes/syncAccountBootstrap.js +2 -2
- package/dist/esm/router/transport/fetch/routes/thresholdEcdsa.js +69 -23
- package/dist/esm/router/transport/fetch/routes/thresholdEd25519.js +52 -27
- package/dist/esm/shared-ts/src/authorization/capabilityKinds.js +1 -1
- package/dist/esm/shared-ts/src/authorization/delegatedAuthority.js +1 -1
- package/dist/esm/shared-ts/src/authorization/operationFingerprint.js +1 -2
- package/dist/esm/shared-ts/src/authorization/walletAuthority.js +99 -227
- package/dist/esm/shared-ts/src/authorization/walletCustodyOperation.js +4 -6
- package/dist/esm/shared-ts/src/device-linking/activeWalletSession.js +74 -0
- package/dist/esm/shared-ts/src/device-linking/authorityActivation.js +50 -0
- package/dist/esm/shared-ts/src/device-linking/committedSignerPackages.js +8 -9
- package/dist/esm/shared-ts/src/device-linking/delegatedActivationPlan.js +3 -1
- package/dist/esm/shared-ts/src/device-linking/deviceManagement.js +55 -0
- package/dist/esm/shared-ts/src/device-linking/digests.js +10 -65
- package/dist/esm/shared-ts/src/device-linking/ed25519ExportRoot.js +3 -1
- package/dist/esm/shared-ts/src/device-linking/index.js +4 -1
- package/dist/esm/shared-ts/src/device-linking/parsers.js +510 -1063
- package/dist/esm/shared-ts/src/device-linking/requestProof.js +5 -14
- package/dist/esm/shared-ts/src/device-linking/sourceContribution.js +6 -9
- package/dist/esm/shared-ts/src/device-linking/walletSessionCredentialDelivery.js +9 -9
- package/dist/esm/shared-ts/src/device-linking/wireFields.js +59 -0
- package/dist/esm/shared-ts/src/near/nearClient.js +252 -0
- package/dist/esm/shared-ts/src/passkey-custody/credentialActivity.js +3 -1
- package/dist/esm/shared-ts/src/passkey-custody/custodyEnvelope.js +7 -5
- package/dist/esm/shared-ts/src/passkey-custody/custodySecretBinding.js +6 -4
- package/dist/esm/shared-ts/src/passkey-custody/primitives.js +5 -39
- package/dist/esm/shared-ts/src/signing-lanes/evmFamilySigningKeySlotId.js +1 -5
- package/dist/esm/shared-ts/src/signing-lanes/index.js +3 -3
- package/dist/esm/shared-ts/src/signing-lanes/ownerContinuity.js +5 -12
- package/dist/esm/shared-ts/src/signing-lanes/participantDigest.js +5 -14
- package/dist/esm/shared-ts/src/signing-lanes/participants.js +2 -5
- package/dist/esm/shared-ts/src/signing-lanes/recordParsers.js +7 -5
- package/dist/esm/shared-ts/src/signing-lanes/rotationDigests.js +6 -45
- package/dist/esm/shared-ts/src/signing-lanes/rotationParsers.js +423 -1511
- package/dist/esm/shared-ts/src/signing-lanes/rotationProtocolParsers.js +323 -0
- package/dist/esm/shared-ts/src/signing-lanes/rotationWireFields.js +59 -0
- package/dist/esm/shared-ts/src/tenant-root/tenantRootOperationRecord.js +1 -1
- package/dist/esm/shared-ts/src/threshold/ecdsaDerivationRoleLocalBootstrap.js +1 -2
- package/dist/esm/shared-ts/src/threshold/keyMaterialBrands.js +49 -0
- package/dist/esm/shared-ts/src/utils/addAuthMethodRegistration.js +3 -4
- package/dist/esm/shared-ts/src/utils/canonicalPrimitives.js +8 -1
- package/dist/esm/shared-ts/src/utils/digestEncoding.js +63 -0
- package/dist/esm/shared-ts/src/utils/emailOtpDomain.js +2 -2
- package/dist/esm/shared-ts/src/utils/exactRecord.js +44 -0
- package/dist/esm/shared-ts/src/utils/registrationAuthMethodInput.js +127 -0
- package/dist/esm/shared-ts/src/utils/registrationEstablishedSession.js +2 -2
- package/dist/esm/shared-ts/src/utils/registrationIds.js +280 -0
- package/dist/esm/shared-ts/src/utils/registrationIntent.js +4 -1170
- package/dist/esm/shared-ts/src/utils/registrationSignerPlan.js +429 -0
- package/dist/esm/shared-ts/src/utils/routerAbEcdsaDerivation.js +11 -136
- package/dist/esm/shared-ts/src/utils/routerAbEd25519Yao.js +3 -163
- package/dist/esm/shared-ts/src/utils/routerAbEd25519YaoDigests.js +160 -0
- package/dist/esm/shared-ts/src/utils/routerAbNormalSigningIdentity.js +1 -4
- package/dist/esm/shared-ts/src/utils/routerAbPublicKeyset.js +7 -15
- package/dist/esm/shared-ts/src/utils/validation.js +37 -6
- package/dist/esm/shared-ts/src/utils/walletAuthMethodRecord.js +362 -0
- package/dist/esm/shared-ts/src/utils/wireSchema.js +77 -0
- package/dist/esm/shared-ts/src/wallet-recovery/recoveryCodeLocator.js +1 -1
- package/dist/esm/shared-ts/src/wallet-recovery/recoveryCodeReservation.js +1 -1
- package/dist/esm/shared-ts/src/wallet-recovery/walletRecoveryCommittedProjection.js +7 -11
- package/dist/esm/shared-ts/src/wallet-recovery/walletRecoveryEcdsaPossession.js +4 -8
- package/dist/esm/shared-ts/src/wallet-recovery/walletRecoveryEnvelopeSet.js +3 -1
- package/dist/esm/storage/d1Sql.js +10 -1
- package/dist/esm/storage/syncSqlite.js +79 -0
- package/dist/esm/threshold/session/signingSessionSeal/crypto/cipher.js +1 -1
- package/dist/esm/threshold/session/signingSessionSeal/crypto/shamir3PassWasm.js +1 -1
- package/dist/esm/threshold/session/signingSessionSeal/idempotencyRecords.js +1 -2
- package/dist/esm/threshold/session/signingSessionSeal/options.js +1 -1
- package/dist/esm/threshold/session/signingSessionSeal/transport/shared.js +18 -55
- package/dist/esm/threshold/statusCodes.js +1 -1
- package/dist/esm/wasm/near_signer/pkg/wasm_signer_worker.js +3 -3
- package/dist/esm/wasm/near_signer/pkg/wasm_signer_worker_bg.wasm +0 -0
- package/dist/esm/wasm/router_ab_ecdsa_signing_worker/pkg/router_ab_ecdsa_signing_worker_bg.wasm +0 -0
- package/dist/types/shared-ts/src/authorization/capabilityKinds.d.ts +8 -26
- package/dist/types/shared-ts/src/authorization/delegatedAuthority.d.ts +0 -8
- package/dist/types/shared-ts/src/authorization/operationFingerprint.d.ts +1 -3
- package/dist/types/shared-ts/src/authorization/walletAuthority.d.ts +25 -12
- package/dist/types/shared-ts/src/authorization/walletSessionIssuance.d.ts +2 -1
- package/dist/types/shared-ts/src/device-linking/activeWalletSession.d.ts +3 -2
- package/dist/types/shared-ts/src/device-linking/authorityActivation.d.ts +5 -0
- package/dist/types/shared-ts/src/device-linking/committedSignerPackages.d.ts +2 -5
- package/dist/types/shared-ts/src/device-linking/contracts.d.ts +8 -11
- package/dist/types/shared-ts/src/device-linking/contracts.typecheck.d.ts +2 -1
- package/dist/types/shared-ts/src/device-linking/deviceManagement.d.ts +7 -0
- package/dist/types/shared-ts/src/device-linking/digests.d.ts +0 -5
- package/dist/types/shared-ts/src/device-linking/ed25519ExportRoot.d.ts +3 -2
- package/dist/types/shared-ts/src/device-linking/index.d.ts +2 -0
- package/dist/types/shared-ts/src/device-linking/parsers.d.ts +4 -41
- package/dist/types/shared-ts/src/device-linking/requestProof.d.ts +0 -1
- package/dist/types/shared-ts/src/device-linking/sourceContribution.d.ts +3 -2
- package/dist/types/shared-ts/src/device-linking/walletSessionCredentialDelivery.d.ts +2 -1
- package/dist/types/shared-ts/src/device-linking/wireFields.d.ts +26 -0
- package/dist/types/shared-ts/src/near/actions.d.ts +4 -4
- package/dist/types/shared-ts/src/near/delegate.d.ts +3 -2
- package/dist/types/shared-ts/src/near/nearClient.d.ts +145 -0
- package/dist/types/shared-ts/src/passkey-custody/ceremonyCommitPayload.d.ts +0 -22
- package/dist/types/shared-ts/src/passkey-custody/credentialActivity.d.ts +2 -4
- package/dist/types/shared-ts/src/passkey-custody/custodyEnvelope.d.ts +9 -18
- package/dist/types/shared-ts/src/passkey-custody/custodySecretBinding.d.ts +8 -24
- package/dist/types/shared-ts/src/passkey-custody/index.d.ts +0 -2
- package/dist/types/shared-ts/src/passkey-custody/primitives.d.ts +0 -14
- package/dist/types/shared-ts/src/signing-lanes/evmFamilySigningKeySlotId.d.ts +0 -15
- package/dist/types/shared-ts/src/signing-lanes/execution.d.ts +2 -51
- package/dist/types/shared-ts/src/signing-lanes/index.d.ts +1 -2
- package/dist/types/shared-ts/src/signing-lanes/ownerContinuity.d.ts +1 -2
- package/dist/types/shared-ts/src/signing-lanes/participantDigest.d.ts +5 -27
- package/dist/types/shared-ts/src/signing-lanes/participants.d.ts +0 -11
- package/dist/types/shared-ts/src/signing-lanes/recordParsers.d.ts +6 -53
- package/dist/types/shared-ts/src/signing-lanes/records.d.ts +1 -2
- package/dist/types/shared-ts/src/signing-lanes/rotation.d.ts +15 -37
- package/dist/types/shared-ts/src/signing-lanes/rotationDigests.d.ts +1 -20
- package/dist/types/shared-ts/src/signing-lanes/rotationLifecycle.d.ts +4 -25
- package/dist/types/shared-ts/src/signing-lanes/rotationParsers.d.ts +1 -41
- package/dist/types/shared-ts/src/signing-lanes/rotationProtocolParsers.d.ts +6 -0
- package/dist/types/shared-ts/src/signing-lanes/rotationWireFields.d.ts +20 -0
- package/dist/types/shared-ts/src/threshold/ecdsaDerivationRoleLocalBootstrap.d.ts +2 -35
- package/dist/types/shared-ts/src/threshold/ed25519OperationFingerprint.d.ts +8 -35
- package/dist/types/shared-ts/src/threshold/keyMaterialBrands.d.ts +25 -0
- package/dist/types/shared-ts/src/threshold/participants.d.ts +3 -9
- package/dist/types/shared-ts/src/threshold/secp256k1.d.ts +0 -37
- package/dist/types/shared-ts/src/threshold/sessionPolicy.d.ts +24 -0
- package/dist/types/shared-ts/src/threshold/signingRootScope.d.ts +2 -5
- package/dist/types/shared-ts/src/utils/addAuthMethodRegistration.d.ts +3 -4
- package/dist/types/shared-ts/src/utils/addWalletAuthMethod.d.ts +7 -108
- package/dist/types/shared-ts/src/utils/addWalletAuthMethod.typecheck.d.ts +16 -3
- package/dist/types/shared-ts/src/utils/canonicalPrimitives.d.ts +2 -0
- package/dist/types/shared-ts/src/utils/digestEncoding.d.ts +9 -0
- package/dist/types/shared-ts/src/utils/domainIds.d.ts +1 -2
- package/dist/types/shared-ts/src/utils/ecdsaKeyFactsInventory.d.ts +1 -2
- package/dist/types/shared-ts/src/utils/emailOtpDomain.d.ts +5 -5
- package/dist/types/shared-ts/src/utils/emailOtpRecoveryKey.d.ts +0 -2
- package/dist/types/shared-ts/src/utils/errors.d.ts +0 -7
- package/dist/types/shared-ts/src/utils/exactRecord.d.ts +12 -0
- package/dist/types/shared-ts/src/utils/index.d.ts +5 -2
- package/dist/types/shared-ts/src/utils/jsonRpc.d.ts +3 -2
- package/dist/types/shared-ts/src/utils/near.d.ts +2 -1
- package/dist/types/shared-ts/src/utils/nearRpcResults.d.ts +7 -7
- package/dist/types/shared-ts/src/utils/normalize.d.ts +0 -4
- package/dist/types/shared-ts/src/utils/registrationAuthMethodInput.d.ts +184 -0
- package/dist/types/shared-ts/src/utils/registrationContracts.d.ts +76 -0
- package/dist/types/shared-ts/src/utils/registrationEstablishedSession.d.ts +1 -2
- package/dist/types/shared-ts/src/utils/registrationIds.d.ts +56 -0
- package/dist/types/shared-ts/src/utils/registrationIntent.d.ts +9 -514
- package/dist/types/shared-ts/src/utils/registrationSignerPlan.d.ts +142 -0
- package/dist/types/shared-ts/src/utils/routerAbEcdsaDerivation.d.ts +21 -92
- package/dist/types/shared-ts/src/utils/routerAbEd25519Yao.d.ts +14 -99
- package/dist/types/shared-ts/src/utils/routerAbEd25519YaoDigests.d.ts +39 -0
- package/dist/types/shared-ts/src/utils/routerAbPublicKeyset.d.ts +10 -15
- package/dist/types/shared-ts/src/utils/routerAbTraceContext.d.ts +2 -1
- package/dist/types/shared-ts/src/utils/secureRandomId.d.ts +0 -2
- package/dist/types/shared-ts/src/utils/signerDomain.d.ts +3 -35
- package/dist/types/shared-ts/src/utils/signerSlot.d.ts +0 -4
- package/dist/types/shared-ts/src/utils/signingSessionSeal.d.ts +1 -7
- package/dist/types/shared-ts/src/utils/validation.d.ts +10 -10
- package/dist/types/shared-ts/src/utils/variant.d.ts +11 -0
- package/dist/types/shared-ts/src/utils/variant.typecheck.d.ts +22 -0
- package/dist/types/shared-ts/src/utils/walletAddSignerActivation.d.ts +2 -2
- package/dist/types/shared-ts/src/utils/walletAuthAuthority.d.ts +1 -58
- package/dist/types/shared-ts/src/utils/walletAuthMethodRecord.d.ts +104 -0
- package/dist/types/shared-ts/src/utils/walletCapabilityBindings.d.ts +3 -7
- package/dist/types/shared-ts/src/utils/webauthnDeviceInfo.d.ts +3 -4
- package/dist/types/shared-ts/src/utils/wireSchema.d.ts +60 -0
- package/dist/types/shared-ts/src/wallet-recovery/backupAcknowledgement.d.ts +2 -1
- package/dist/types/shared-ts/src/wallet-recovery/index.d.ts +0 -1
- package/dist/types/shared-ts/src/wallet-recovery/recoveryCodeLocator.d.ts +0 -16
- package/dist/types/shared-ts/src/wallet-recovery/recoveryCodeReservation.d.ts +2 -11
- package/dist/types/shared-ts/src/wallet-recovery/walletRecoveryCommittedProjection.d.ts +6 -18
- package/dist/types/shared-ts/src/wallet-recovery/walletRecoveryEcdsaPossession.d.ts +0 -2
- package/dist/types/shared-ts/src/wallet-recovery/walletRecoveryEnvelopeSet.d.ts +1 -3
- package/dist/types/wallet-server/src/authorization/capabilityPolicy.d.ts +0 -1
- package/dist/types/wallet-server/src/authorization/domain.d.ts +25 -5
- package/dist/types/wallet-server/src/authorization/ecdsaWalletSessionAdmission.d.ts +37 -0
- package/dist/types/wallet-server/src/authorization/ecdsaWalletSessionAdmission.typecheck.d.ts +2 -0
- package/dist/types/wallet-server/src/authorization/factorEvidence.d.ts +6 -7
- package/dist/types/wallet-server/src/authorization/service.d.ts +52 -3
- package/dist/types/wallet-server/src/cloud-host.d.ts +6 -2
- package/dist/types/wallet-server/src/core/EmailOtpRecords.d.ts +10 -1
- package/dist/types/wallet-server/src/core/EmailOtpStores.d.ts +16 -116
- package/dist/types/wallet-server/src/core/IdentityStore.d.ts +2 -7
- package/dist/types/wallet-server/src/core/NearPublicKeyStore.d.ts +6 -16
- package/dist/types/wallet-server/src/core/RegistrationCeremonyStore.d.ts +29 -90
- package/dist/types/wallet-server/src/core/ThresholdService/config.d.ts +0 -12
- package/dist/types/wallet-server/src/core/ThresholdService/routerAb/ecdsaDerivationPoolFillHandlers.d.ts +10 -3
- package/dist/types/wallet-server/src/core/ThresholdService/routerAb/ecdsaDerivationPresignBridge.d.ts +17 -48
- package/dist/types/wallet-server/src/core/ThresholdService/routerAb/internalServiceHttp.d.ts +2 -1
- package/dist/types/wallet-server/src/core/ThresholdService/stores/CloudflareDurableObjectStore.d.ts +4 -71
- package/dist/types/wallet-server/src/core/ThresholdService/stores/KeyStore.d.ts +2 -1
- package/dist/types/wallet-server/src/core/ThresholdService/stores/SessionStore.d.ts +4 -8
- package/dist/types/wallet-server/src/core/ThresholdService/stores/StoreConfig.d.ts +2 -1
- package/dist/types/wallet-server/src/core/ThresholdService/stores/WalletSessionStore.d.ts +1 -3
- package/dist/types/wallet-server/src/core/ThresholdService/validation.d.ts +14 -47
- package/dist/types/wallet-server/src/core/WalletAuthMethodStore.d.ts +2 -7
- package/dist/types/wallet-server/src/core/WalletStore.d.ts +3 -8
- package/dist/types/wallet-server/src/core/WebAuthnAuthenticatorStore.d.ts +7 -22
- package/dist/types/wallet-server/src/core/WebAuthnCredentialBindingStore.d.ts +14 -36
- package/dist/types/wallet-server/src/core/WebAuthnLoginChallengeStore.d.ts +9 -34
- package/dist/types/wallet-server/src/core/WebAuthnSyncChallengeStore.d.ts +9 -34
- package/dist/types/wallet-server/src/core/authService/AuthService.d.ts +0 -3
- package/dist/types/wallet-server/src/core/authService/emailOtpChallengeOperations.d.ts +6 -5
- package/dist/types/wallet-server/src/core/authService/emailOtpChallengeProof.d.ts +9 -17
- package/dist/types/wallet-server/src/core/authService/emailOtpChallengeVerification.d.ts +3 -2
- package/dist/types/wallet-server/src/core/authService/emailOtpChallenges.d.ts +7 -23
- package/dist/types/wallet-server/src/core/authService/emailOtpConfig.d.ts +3 -10
- package/dist/types/wallet-server/src/core/authService/emailOtpDelivery.d.ts +4 -3
- package/dist/types/wallet-server/src/core/authService/emailOtpGrant.d.ts +4 -3
- package/dist/types/wallet-server/src/core/authService/emailOtpRegistrationEnrollment.d.ts +3 -70
- package/dist/types/wallet-server/src/core/authService/emailOtpSeal.d.ts +3 -2
- package/dist/types/wallet-server/src/core/authService/emailOtpUnlock.d.ts +4 -3
- package/dist/types/wallet-server/src/core/authService/googleEmailOtpRegistration.d.ts +5 -8
- package/dist/types/wallet-server/src/core/authService/nearPrivateKeySigning.d.ts +3 -2
- package/dist/types/wallet-server/src/core/authService/nearPublicKeyMetadata.d.ts +2 -1
- package/dist/types/wallet-server/src/core/authService/nearTransactions.d.ts +2 -1
- package/dist/types/wallet-server/src/core/authService/oidcVerification.d.ts +4 -3
- package/dist/types/wallet-server/src/core/authService/rateLimits.d.ts +0 -3
- package/dist/types/wallet-server/src/core/authService/registrationThresholdHelpers.d.ts +0 -26
- package/dist/types/wallet-server/src/core/authService/storeRegistry.d.ts +0 -5
- package/dist/types/wallet-server/src/core/authService/thresholdEcdsaKeyInventory.d.ts +0 -23
- package/dist/types/wallet-server/src/core/authService/webauthn.d.ts +8 -16
- package/dist/types/wallet-server/src/core/authService/webauthnOidcHelpers.d.ts +7 -7
- package/dist/types/wallet-server/src/core/authService/webauthnVerificationOutcomes.d.ts +43 -0
- package/dist/types/wallet-server/src/core/authService/webauthnWalletBinding.d.ts +1 -28
- package/dist/types/wallet-server/src/core/d1IdentityStore.d.ts +6 -16
- package/dist/types/wallet-server/src/core/d1TenantStore.d.ts +51 -0
- package/dist/types/wallet-server/src/core/d1WalletAuthMethodStore.d.ts +11 -29
- package/dist/types/wallet-server/src/core/d1WalletStore.d.ts +6 -1
- package/dist/types/wallet-server/src/core/deviceLinking/linkedDeviceEd25519ExportRoot.d.ts +2 -1
- package/dist/types/wallet-server/src/core/deviceLinking/linkedDeviceEmailOtpGrant.d.ts +2 -1
- package/dist/types/wallet-server/src/core/deviceLinking/linkedDeviceManagement.d.ts +44 -26
- package/dist/types/wallet-server/src/core/deviceLinking/linkedDeviceSession.d.ts +19 -217
- package/dist/types/wallet-server/src/core/deviceLinking/linkedDeviceSessionApproval.d.ts +8 -0
- package/dist/types/wallet-server/src/core/deviceLinking/linkedDeviceSessionRecord.d.ts +259 -0
- package/dist/types/wallet-server/src/core/deviceLinking/requestProof.d.ts +2 -2
- package/dist/types/wallet-server/src/core/emailOtpD1Statements.d.ts +54 -0
- package/dist/types/wallet-server/src/core/hostedAccountIds.d.ts +0 -15
- package/dist/types/wallet-server/src/core/keyMaterialBrands.d.ts +4 -24
- package/dist/types/wallet-server/src/core/nearRelayerAccountProvisioning.d.ts +2 -3
- package/dist/types/wallet-server/src/core/nearSignerWasmRuntime.d.ts +0 -1
- package/dist/types/wallet-server/src/core/registrationContracts.d.ts +37 -108
- package/dist/types/wallet-server/src/core/routerAbSigning/RouterAbNormalSigningRuntime.d.ts +5 -4
- package/dist/types/wallet-server/src/core/rpcClients/near/NearClient.d.ts +10 -106
- package/dist/types/wallet-server/src/core/signingLanes/LaneAggregateRevocationApplicationService.d.ts +4 -3
- package/dist/types/wallet-server/src/core/signingLanes/LaneEffectJournalStore.d.ts +2 -3
- package/dist/types/wallet-server/src/core/signingLanes/LaneLifecycleStore.d.ts +2 -3
- package/dist/types/wallet-server/src/core/signingLanes/WalletExecutionLaneProjection.d.ts +3 -9
- package/dist/types/wallet-server/src/core/signingLanes/ecdsaServerRetirement.d.ts +4 -4
- package/dist/types/wallet-server/src/core/signingLanes/ed25519ServerRetirement.d.ts +3 -3
- package/dist/types/wallet-server/src/core/storeBackends.d.ts +83 -0
- package/dist/types/wallet-server/src/core/threeRouteRegistrationContracts.d.ts +13 -59
- package/dist/types/wallet-server/src/core/threeRouteRegistrationContracts.typecheck.d.ts +51 -3
- package/dist/types/wallet-server/src/core/thresholdEcdsaChainTarget.d.ts +0 -1
- package/dist/types/wallet-server/src/core/types.d.ts +3 -24
- package/dist/types/wallet-server/src/core/webAuthnD1Statements.d.ts +29 -0
- package/dist/types/wallet-server/src/core/webAuthnStoreBackends.d.ts +96 -0
- package/dist/types/wallet-server/src/hosted-wallet-gateway.d.ts +11 -7
- package/dist/types/wallet-server/src/index.d.ts +1 -1
- package/dist/types/wallet-server/src/local-hosted-wallet-gateway-worker.d.ts +1 -4
- package/dist/types/wallet-server/src/localHostedWalletGatewayHandler.d.ts +12 -0
- package/dist/types/wallet-server/src/localIntendedEcdsaFinalizeFault.d.ts +33 -0
- package/dist/types/wallet-server/src/localIntendedLinkExecuteFault.d.ts +47 -0
- package/dist/types/wallet-server/src/localIntendedRevokeFault.d.ts +40 -0
- package/dist/types/wallet-server/src/localIntendedSessionAdmissionFault.d.ts +41 -0
- package/dist/types/wallet-server/src/localIntendedYaoExportFault.d.ts +41 -0
- package/dist/types/wallet-server/src/localIntendedYaoFault.d.ts +7 -1
- package/dist/types/wallet-server/src/localIntendedYaoFinalizeFault.d.ts +37 -0
- package/dist/types/wallet-server/src/localIntendedYaoRecoveryFault.d.ts +45 -0
- package/dist/types/wallet-server/src/localIntendedYaoSigningFault.d.ts +51 -0
- package/dist/types/wallet-server/src/router/auth/authRequestValidation.d.ts +10 -21
- package/dist/types/wallet-server/src/router/auth/commonRouterUtils.d.ts +5 -10
- package/dist/types/wallet-server/src/router/auth/walletSessionFailure.d.ts +1 -4
- package/dist/types/wallet-server/src/router/auth/webAuthnCredentialCodecs.d.ts +3 -2
- package/dist/types/wallet-server/src/router/cloudflare/d1/auth/d1AuthorizedOperationRouteService.d.ts +12 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/auth/d1RouterApiAuthBoundary.d.ts +3 -2
- package/dist/types/wallet-server/src/router/cloudflare/d1/auth/d1RouterApiAuthConfig.d.ts +2 -2
- package/dist/types/wallet-server/src/router/cloudflare/d1/auth/d1RouterApiAuthService.d.ts +1 -1
- package/dist/types/wallet-server/src/router/cloudflare/d1/authorization/authorizedOperationStatements.d.ts +30 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/authorization/d1AuthorizationStore.d.ts +45 -21
- package/dist/types/wallet-server/src/router/cloudflare/d1/authorization/persistedWalletSessionAuthorization.d.ts +3 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/authorization/walletSessionAuthorityProjection.d.ts +2 -1
- package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceAuthorityInstallService.d.ts +57 -6
- package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceEmailOtpGrantStore.d.ts +2 -3
- package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceEmailOtpTargetFactor.d.ts +8 -21
- package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceOwnerAuthorizationProvider.d.ts +14 -1
- package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceRevocation.d.ts +49 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceSessionRecords.d.ts +1 -1
- package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceSessionStore.d.ts +4 -2
- package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceSourceContributionPreparationPlanner.d.ts +1 -1
- package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceTargetCredentialProvider.d.ts +2 -2
- package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceTargetPlanner.d.ts +8 -4
- package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceVerifiedLinkBuilder.d.ts +3 -5
- package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/installedEcdsaAuthority.d.ts +7 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/ed25519Yao/d1Ed25519YaoCapabilityPersistence.d.ts +1 -2
- package/dist/types/wallet-server/src/router/cloudflare/d1/ed25519Yao/d1Ed25519YaoLifecycleDecisionStore.d.ts +33 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpChallengeIssuer.d.ts +1 -1
- package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpChallengeStore.d.ts +13 -3
- package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpChallengeVerifier.d.ts +24 -5
- package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpEnrollmentStore.d.ts +2 -3
- package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpGrantStore.d.ts +1 -3
- package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpRateLimitStore.d.ts +3 -4
- package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpRecords.d.ts +9 -8
- package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpRecoveryService.d.ts +0 -2
- package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpRegistrationEnrollmentFinalizer.d.ts +5 -4
- package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1GoogleEmailOtpRegistrationAttemptStore.d.ts +1 -3
- package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1GoogleEmailOtpRegistrationRecords.d.ts +3 -21
- package/dist/types/wallet-server/src/router/cloudflare/d1/identity/d1IdentityRecords.d.ts +0 -23
- package/dist/types/wallet-server/src/router/cloudflare/d1/near/d1NearPublicKeyStore.d.ts +1 -2
- package/dist/types/wallet-server/src/router/cloudflare/d1/passkeyCustody/d1PasskeyCustodyEnvelopeStore.d.ts +11 -19
- package/dist/types/wallet-server/src/router/cloudflare/d1/passkeyCustody/d1PasskeyCustodyRouteService.d.ts +5 -54
- package/dist/types/wallet-server/src/router/cloudflare/d1/passkeyCustody/d1WalletCustodyCommitStore.d.ts +7 -19
- package/dist/types/wallet-server/src/router/cloudflare/d1/passkeyCustody/d1WalletRecoveryGoogleEmailOtpRecords.d.ts +4 -3
- package/dist/types/wallet-server/src/router/cloudflare/d1/passkeyCustody/d1WalletRecoveryGoogleEmailOtpService.d.ts +8 -12
- package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1RegistrationCeremonyRecordStore.d.ts +5 -8
- package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1RegistrationCeremonyRecords.d.ts +10 -22
- package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1RegistrationCeremonyStore.d.ts +6 -2
- package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1WalletRegistrationCommitStore.d.ts +10 -6
- package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1WalletRegistrationService.d.ts +15 -22
- package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1WalletRegistrationSetup.d.ts +5 -3
- package/dist/types/wallet-server/src/router/cloudflare/d1/registration/walletRegistrationEstablishedSessionIssuer.d.ts +4 -3
- package/dist/types/wallet-server/src/router/cloudflare/d1/registration/walletRegistrationSessionCommitReceipt.d.ts +5 -5
- package/dist/types/wallet-server/src/router/cloudflare/d1/signingAdmission/d1RouterAbNormalSigningAdmissionStore.d.ts +3 -5
- package/dist/types/wallet-server/src/router/cloudflare/d1/signingLanes/d1LaneEffectJournalStore.d.ts +0 -1
- package/dist/types/wallet-server/src/router/cloudflare/d1/versionedJson/d1VersionedJsonRecordStore.d.ts +0 -16
- package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletAddSignerService.d.ts +29 -14
- package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletAuthMethodBoundary.d.ts +15 -12
- package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletAuthMethodRevocationReplayStore.d.ts +71 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletAuthMethodService.d.ts +34 -24
- package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletAuthorityStore.d.ts +44 -26
- package/dist/types/wallet-server/src/router/cloudflare/d1/webauthn/d1WebAuthnRecords.d.ts +3 -7
- package/dist/types/wallet-server/src/router/cloudflare/d1/webauthn/d1WebAuthnStore.d.ts +8 -19
- package/dist/types/wallet-server/src/router/cloudflare/runtime/walletConsoleTenantRootLineage.d.ts +2 -1
- package/dist/types/wallet-server/src/router/cloudflare/runtime/walletGateway.d.ts +1 -0
- package/dist/types/wallet-server/src/router/cloudflare/signingLanes/cloudflareOrdinaryInactiveSignerMaterialReservation.d.ts +15 -2
- package/dist/types/wallet-server/src/router/cloudflare-adaptor.d.ts +2 -2
- package/dist/types/wallet-server/src/router/domains/ecdsa/routerAbEcdsaStrictRegistration.d.ts +9 -7
- package/dist/types/wallet-server/src/router/domains/ecdsa/thresholdEcdsaRequestValidation.d.ts +4 -4
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoLifecycleDecision.d.ts +46 -0
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistration.d.ts +5 -3
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistrationPartitionedStateStore.d.ts +20 -79
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistrationPartitioning.d.ts +2 -0
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistrationRequestScopedRunner.d.ts +1 -1
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistrationRequestScopedRuntime.d.ts +4 -3
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/export/routerAbEd25519YaoExport.d.ts +62 -42
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/recovery/routerAbEd25519YaoRecovery.d.ts +108 -32
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/recovery/routerAbEd25519YaoRecoveryActivation.typecheck.d.ts +5 -0
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/registration/routerAbEd25519YaoHttpRegistrationBackend.d.ts +36 -5
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistration.d.ts +5 -4
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistrationExecutionRecord.d.ts +41 -50
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistrationIntentAuthorization.d.ts +2 -2
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistrationRequestScopedCloudflare.d.ts +3 -3
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistrationSideEffectBoundary.d.ts +6 -5
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistrationTwoPhaseRunner.d.ts +14 -4
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/routerAbEd25519YaoGatewayEnvelope.d.ts +12 -1
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/session/routerAbEd25519YaoWalletSession.d.ts +5 -5
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/session/thresholdEd25519RequestValidation.d.ts +3 -4
- package/dist/types/wallet-server/src/router/domains/emailOtp/emailOtpExportPolicy.d.ts +2 -27
- package/dist/types/wallet-server/src/router/domains/emailOtp/emailOtpRequestValidation.d.ts +1 -2
- package/dist/types/wallet-server/src/router/domains/emailOtp/emailOtpRouteHandlers.d.ts +2 -1
- package/dist/types/wallet-server/src/router/domains/emailOtp/emailOtpSessionRouteHelpers.d.ts +2 -102
- package/dist/types/wallet-server/src/router/domains/passkeyCustody/envelopeRevocationAdmission.d.ts +2 -1
- package/dist/types/wallet-server/src/router/domains/passkeyCustody/passkeyCustodyEnvelopeRetrieval.d.ts +3 -2
- package/dist/types/wallet-server/src/router/domains/passkeyCustody/passkeyCustodyEnvelopeRetrievalRoute.d.ts +1 -9
- package/dist/types/wallet-server/src/router/domains/passkeyCustody/registrationCustodyOutcome.d.ts +2 -1
- package/dist/types/wallet-server/src/router/domains/passkeyCustody/verifiedCustodyFactor.d.ts +2 -1
- package/dist/types/wallet-server/src/router/domains/passkeyCustody/walletCustodyRegistrationAdmission.d.ts +2 -1
- package/dist/types/wallet-server/src/router/domains/passkeyCustody/walletCustodyRegistrationCommit.d.ts +2 -28
- package/dist/types/wallet-server/src/router/domains/passkeyCustody/walletRecoveryFinalization.d.ts +43 -1
- package/dist/types/wallet-server/src/router/domains/passkeyCustody/walletRecoveryKeyManifest.d.ts +7 -7
- package/dist/types/wallet-server/src/router/domains/signingOperations/ed25519AuthorizedOperationReceipt.d.ts +0 -3
- package/dist/types/wallet-server/src/router/domains/signingOperations/routerAbEcdsaDerivationNormalSigningRoute.d.ts +165 -0
- package/dist/types/wallet-server/src/router/domains/signingOperations/routerAbEd25519NormalSigningRoute.d.ts +110 -0
- package/dist/types/wallet-server/src/router/domains/signingOperations/routerAbNormalSigningAdmission.d.ts +360 -0
- package/dist/types/wallet-server/src/router/domains/signingOperations/routerAbNormalSigningAdmissionCore.d.ts +11 -10
- package/dist/types/wallet-server/src/router/domains/signingOperations/routerAbNormalSigningAdmissionCore.typecheck.d.ts +2 -0
- package/dist/types/wallet-server/src/router/domains/signingOperations/routerAbOperationStepUp.d.ts +165 -0
- package/dist/types/wallet-server/src/router/domains/signingOperations/routerAbPrivateSigningWorker.d.ts +16 -702
- package/dist/types/wallet-server/src/router/domains/signingOperations/walletExecutionAdmission.d.ts +5 -12
- package/dist/types/wallet-server/src/router/domains/syncAccount/syncAccountRequestValidation.d.ts +5 -4
- package/dist/types/wallet-server/src/router/domains/tenantRoot/tenantRootCustodyLineage.d.ts +6 -1
- package/dist/types/wallet-server/src/router/domains/tenantRoot/tenantRootIdentityResolution.d.ts +4 -7
- package/dist/types/wallet-server/src/router/domains/walletRegistration/walletRegistrationInputs.d.ts +2 -1
- package/dist/types/wallet-server/src/router/domains/walletRegistration/walletRegistrationRoutes.d.ts +8 -8
- package/dist/types/wallet-server/src/router/domains/walletRegistration/walletRegistrationSetupPayload.d.ts +4 -4
- package/dist/types/wallet-server/src/router/domains/walletUnlock/walletUnlockRequestedCapabilitiesValidation.d.ts +4 -4
- package/dist/types/wallet-server/src/router/domains/walletUnlock/walletUnlockRouteHandlers.d.ts +4 -62
- package/dist/types/wallet-server/src/router/express-adaptor.d.ts +2 -2
- package/dist/types/wallet-server/src/router/framework/authServicePort.d.ts +64 -61
- package/dist/types/wallet-server/src/router/framework/http.d.ts +0 -1
- package/dist/types/wallet-server/src/router/framework/ror/normalize.d.ts +2 -2
- package/dist/types/wallet-server/src/router/framework/routeMeteringPolicy.d.ts +3 -2
- package/dist/types/wallet-server/src/router/framework/routerApi.d.ts +1 -1
- package/dist/types/wallet-server/src/router/framework/routerApiRouteSurface.d.ts +3 -3
- package/dist/types/wallet-server/src/router/node/nodeHostedWalletGateway.d.ts +34 -0
- package/dist/types/wallet-server/src/router/node/nodeHostedWalletGatewayCheck.d.ts +21 -0
- package/dist/types/wallet-server/src/router/node/nodeHostedWalletGatewayMain.d.ts +2 -0
- package/dist/types/wallet-server/src/router/node/nodeHttp.d.ts +13 -0
- package/dist/types/wallet-server/src/router/node/nodeSqlite.d.ts +22 -0
- package/dist/types/wallet-server/src/router/node/signerSqlMigrations.d.ts +20 -0
- package/dist/types/wallet-server/src/router/transport/fetch/createFetchRouter.d.ts +1 -3
- package/dist/types/wallet-server/src/router/transport/fetch/routes/deviceLinking.d.ts +5 -6
- package/dist/types/wallet-server/src/router/transport/fetch/routes/deviceLinkingOwnerAuthorization.d.ts +2 -2
- package/dist/types/wallet-server/src/router/transport/fetch/routes/deviceManagement.d.ts +14 -16
- package/dist/types/wallet-server/src/router/transport/fetch/routes/normalSigningRouterProxy.d.ts +0 -12
- package/dist/types/wallet-server/src/router/transport/fetch/routes/passkeyCustody.d.ts +1 -1
- package/dist/types/wallet-server/src/router/transport/fetch/routes/sessions.d.ts +2 -1
- package/dist/types/wallet-server/src/router/transport/fetch/routes/syncAccountBootstrap.d.ts +7 -13
- package/dist/types/wallet-server/src/router/transport/fetch/routes/thresholdEcdsa.d.ts +3 -57
- package/dist/types/wallet-server/src/router/transport/fetch/routes/thresholdEd25519.d.ts +0 -44
- package/dist/types/wallet-server/src/storage/d1Sql.d.ts +7 -0
- package/dist/types/wallet-server/src/storage/syncSqlite.d.ts +28 -0
- package/dist/types/wallet-server/src/threshold/session/signingSessionSeal/crypto/shamir3PassWasm.d.ts +0 -1
- package/dist/types/wallet-server/src/threshold/session/signingSessionSeal/idempotencyRecords.d.ts +5 -6
- package/dist/types/wallet-server/src/threshold/session/signingSessionSeal/transport/shared.d.ts +1 -0
- package/dist/types/wallet-server/src/threshold/statusCodes.d.ts +4 -4
- package/migrations/d1-signer/0036_r150_yao_lifecycle_decisions.sql +22 -0
- package/migrations/d1-signer/0037_r150_wallet_auth_method_revocation_replays.sql +26 -0
- package/migrations/d1-signer/0038_r150_registration_ceremony_cas_guard_seed.sql +8 -0
- package/migrations/d1-signer/0039_r150_revocation_replay_answer_kind.sql +9 -0
- package/package.json +1 -1
- package/dist/esm/core/ThresholdService/ecdsaClientRootProof.js +0 -27
- package/dist/esm/core/ThresholdService/routerAbEcdsaSigningWorkerWasm.js +0 -115
- package/dist/esm/core/ThresholdService/secureRandomId.js +0 -9
- package/dist/esm/core/authService/record.js +0 -8
- package/dist/esm/core/authService/thresholdRuntimePolicy.js +0 -19
- package/dist/esm/core/authService/walletRegistrationPlanning.js +0 -49
- package/dist/esm/core/deviceLinking/index.js +0 -5
- package/dist/esm/core/errors.js +0 -54
- package/dist/esm/core/routerAbSigning/createCloudflareDurableObjectRouterAbSigningRuntimes.js +0 -39
- package/dist/esm/core/signingLanes/WalletKeyStore.js +0 -0
- package/dist/esm/core/signingLanes/index.js +0 -8
- package/dist/esm/router/domains/tenantRoot/tenantRootEcdsaWalletSessionComposition.js +0 -55
- package/dist/esm/router/domains/tenantRoot/tenantRootEd25519WalletSessionComposition.js +0 -56
- package/dist/esm/shared-ts/src/signing-lanes/linkedEcdsaScope.js +0 -1
- package/dist/esm/wasm/router_ab_ecdsa_signing_worker/pkg/router_ab_ecdsa_signing_worker.js +0 -414
- package/dist/types/shared-ts/src/passkey-custody/credentialObservations.d.ts +0 -74
- package/dist/types/shared-ts/src/passkey-custody/kekContext.d.ts +0 -34
- package/dist/types/shared-ts/src/signing-lanes/linkedEcdsaScope.d.ts +0 -62
- package/dist/types/shared-ts/src/signing-lanes/linkedEcdsaScope.typecheck.d.ts +0 -2
- package/dist/types/shared-ts/src/signing-lanes/validation.d.ts +0 -11
- package/dist/types/shared-ts/src/utils/bigint.d.ts +0 -3
- package/dist/types/shared-ts/src/utils/paillier.d.ts +0 -37
- package/dist/types/shared-ts/src/utils/recoveryDomain.d.ts +0 -12
- package/dist/types/shared-ts/src/utils/signerDomain.typecheck.d.ts +0 -2
- package/dist/types/shared-ts/src/wallet-recovery/recoveryKekContext.d.ts +0 -37
- package/dist/types/wallet-server/src/core/ThresholdService/ecdsaClientRootProof.d.ts +0 -12
- package/dist/types/wallet-server/src/core/ThresholdService/routerAbEcdsaSigningWorkerWasm.d.ts +0 -17
- package/dist/types/wallet-server/src/core/ThresholdService/secureRandomId.d.ts +0 -2
- package/dist/types/wallet-server/src/core/authService/record.d.ts +0 -2
- package/dist/types/wallet-server/src/core/authService/thresholdRuntimePolicy.d.ts +0 -4
- package/dist/types/wallet-server/src/core/authService/walletRegistrationPlanning.d.ts +0 -19
- package/dist/types/wallet-server/src/core/deviceLinking/index.d.ts +0 -5
- package/dist/types/wallet-server/src/core/errors.d.ts +0 -10
- package/dist/types/wallet-server/src/core/routerAbSigning/createCloudflareDurableObjectRouterAbSigningRuntimes.d.ts +0 -28
- package/dist/types/wallet-server/src/core/signingLanes/SigningLaneStore.d.ts +0 -15
- package/dist/types/wallet-server/src/core/signingLanes/WalletKeyStore.d.ts +0 -13
- package/dist/types/wallet-server/src/core/signingLanes/index.d.ts +0 -11
- package/dist/types/wallet-server/src/router/domains/tenantRoot/tenantRootEcdsaWalletSessionComposition.d.ts +0 -35
- package/dist/types/wallet-server/src/router/domains/tenantRoot/tenantRootEd25519WalletSessionComposition.d.ts +0 -35
- /package/dist/esm/{core/signingLanes/SigningLaneStore.js → authorization/ecdsaWalletSessionAdmission.js} +0 -0
|
@@ -67,9 +67,6 @@ function toResponse(out) {
|
|
|
67
67
|
headers: out.headers
|
|
68
68
|
});
|
|
69
69
|
}
|
|
70
|
-
function isObject(v) {
|
|
71
|
-
return typeof v === "object" && v !== null;
|
|
72
|
-
}
|
|
73
70
|
async function readJson(request) {
|
|
74
71
|
try {
|
|
75
72
|
return await request.json();
|
|
@@ -85,6 +82,6 @@ function headersToRecord(headers) {
|
|
|
85
82
|
return out;
|
|
86
83
|
}
|
|
87
84
|
//#endregion
|
|
88
|
-
export { headersToRecord,
|
|
85
|
+
export { headersToRecord, json, readJson, toResponse, withCors };
|
|
89
86
|
|
|
90
87
|
//# sourceMappingURL=http.js.map
|
|
@@ -52,6 +52,6 @@ function resolveWellKnownSigningSessionSealCapabilities(signingSessionSealOption
|
|
|
52
52
|
return normalizeWellKnownSigningSessionSealCapabilities(signingSessionSealOptionsRaw.capabilities) || { mode: "none" };
|
|
53
53
|
}
|
|
54
54
|
//#endregion
|
|
55
|
-
export { normalizeCsv, normalizeRorHost,
|
|
55
|
+
export { normalizeCsv, normalizeRorHost, resolveWellKnownSigningSessionSealCapabilities, sanitizeRorOrigins };
|
|
56
56
|
|
|
57
57
|
//# sourceMappingURL=normalize.js.map
|
|
@@ -49,6 +49,6 @@ function getRouterApiRouteSurface(target) {
|
|
|
49
49
|
};
|
|
50
50
|
}
|
|
51
51
|
//#endregion
|
|
52
|
-
export { attachRouterApiRouteSurface, getRouterApiRouteSurface,
|
|
52
|
+
export { attachRouterApiRouteSurface, getRouterApiRouteSurface, resolveRouterApiRouteSurface };
|
|
53
53
|
|
|
54
54
|
//# sourceMappingURL=routerApiRouteSurface.js.map
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { createStaticWalletConsoleBindingV1, parseStaticWalletConsoleBindingConfigV1 } from "../cloudflare/runtime/staticWalletConsoleBinding.js";
|
|
2
|
+
import { handleSplitGatewayRequest } from "../../hosted-wallet-gateway.js";
|
|
3
|
+
import { createSyncSqliteDatabase } from "../../storage/syncSqlite.js";
|
|
4
|
+
import { NODE_HOP_BY_HOP_HEADERS_V1 } from "./nodeHttp.js";
|
|
5
|
+
import { readFileSync } from "node:fs";
|
|
6
|
+
//#region src/router/node/nodeHostedWalletGateway.ts
|
|
7
|
+
function createNodeHostedWalletGatewayV1(options) {
|
|
8
|
+
const deploymentJson = options.vars.WALLET_LOCAL_DEPLOYMENT_JSON;
|
|
9
|
+
if (!deploymentJson) throw new Error("WALLET_LOCAL_DEPLOYMENT_JSON is required");
|
|
10
|
+
const env = {
|
|
11
|
+
...options.vars,
|
|
12
|
+
WALLET_LOCAL_DEPLOYMENT_JSON: deploymentJson,
|
|
13
|
+
ROUTER_AB_PREWARM_ENABLED: options.vars.ROUTER_AB_PREWARM_ENABLED ?? "false",
|
|
14
|
+
SIGNER_DB: createSyncSqliteDatabase(options.connection),
|
|
15
|
+
MPC_ROUTER: httpServiceBinding(options.routerUrl),
|
|
16
|
+
SIGNING_WORKER: httpServiceBinding(options.signingWorkerUrl),
|
|
17
|
+
WALLET_CONSOLE: createStaticWalletConsoleBindingV1(parseStaticWalletConsoleBindingConfigV1(JSON.parse(deploymentJson)))
|
|
18
|
+
};
|
|
19
|
+
const signerWasmBytes = readFileSync(options.signerWasmPath);
|
|
20
|
+
const dependencies = { signerWasm: async () => await WebAssembly.compile(signerWasmBytes) };
|
|
21
|
+
const handler = options.handler ?? handleSplitGatewayRequest;
|
|
22
|
+
const pending = /* @__PURE__ */ new Set();
|
|
23
|
+
const ctx = {
|
|
24
|
+
waitUntil(promise) {
|
|
25
|
+
const tracked = promise.catch((error) => options.onBackgroundError?.(error));
|
|
26
|
+
pending.add(tracked);
|
|
27
|
+
tracked.finally(() => pending.delete(tracked));
|
|
28
|
+
},
|
|
29
|
+
passThroughOnException() {}
|
|
30
|
+
};
|
|
31
|
+
return {
|
|
32
|
+
handle: async (request) => await handler(request, env, ctx, dependencies),
|
|
33
|
+
drain: async () => {
|
|
34
|
+
await Promise.all([...pending]);
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* A Cloudflare service binding delivers to one Worker whatever URL the
|
|
40
|
+
* caller used; the Gateway sends both its fixed internal origins and
|
|
41
|
+
* forwarded public requests through them. On a VM each binding forwards the
|
|
42
|
+
* path and query to its one configured base URL, and nowhere else.
|
|
43
|
+
*/
|
|
44
|
+
function httpServiceBinding(baseUrl) {
|
|
45
|
+
const base = new URL(baseUrl);
|
|
46
|
+
return { async fetch(input, init) {
|
|
47
|
+
const request = new Request(input, init);
|
|
48
|
+
const url = new URL(request.url);
|
|
49
|
+
const target = new URL(`${url.pathname}${url.search}`, base);
|
|
50
|
+
const body = request.method === "GET" || request.method === "HEAD" ? void 0 : await request.arrayBuffer();
|
|
51
|
+
const headers = new Headers(request.headers);
|
|
52
|
+
for (const name of NODE_HOP_BY_HOP_HEADERS_V1) headers.delete(name);
|
|
53
|
+
return await fetch(target, {
|
|
54
|
+
method: request.method,
|
|
55
|
+
headers,
|
|
56
|
+
body,
|
|
57
|
+
redirect: "manual"
|
|
58
|
+
});
|
|
59
|
+
} };
|
|
60
|
+
}
|
|
61
|
+
//#endregion
|
|
62
|
+
export { createNodeHostedWalletGatewayV1 };
|
|
63
|
+
|
|
64
|
+
//# sourceMappingURL=nodeHostedWalletGateway.js.map
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
import { parseStaticWalletConsoleBindingConfigV1 } from "../cloudflare/runtime/staticWalletConsoleBinding.js";
|
|
2
|
+
import { nodeSqliteConnection } from "./nodeSqlite.js";
|
|
3
|
+
import { inspectSignerSqlMigrationsV1 } from "./signerSqlMigrations.js";
|
|
4
|
+
import { existsSync } from "node:fs";
|
|
5
|
+
//#region src/router/node/nodeHostedWalletGatewayCheck.ts
|
|
6
|
+
async function checkNodeHostedWalletGatewayV1(input) {
|
|
7
|
+
return [
|
|
8
|
+
configurationCheck(input),
|
|
9
|
+
signerWasmCheck(input.signerWasmPath),
|
|
10
|
+
storageCheck(input),
|
|
11
|
+
await peerCheck("router", input.routerUrl),
|
|
12
|
+
await peerCheck("signing_worker", input.signingWorkerUrl),
|
|
13
|
+
{
|
|
14
|
+
check: "peer_authentication",
|
|
15
|
+
status: "unverified",
|
|
16
|
+
detail: { reason: "the check sends no credential; a peer that refuses the Gateway's service credentials is found only by an authenticated call, such as the explicit smoke test" }
|
|
17
|
+
}
|
|
18
|
+
];
|
|
19
|
+
}
|
|
20
|
+
function configurationCheck(input) {
|
|
21
|
+
const missing = [
|
|
22
|
+
["WALLET_GATEWAY_VARS_FILE", input.varsPath],
|
|
23
|
+
["WALLET_GATEWAY_ROUTER_URL", input.routerUrl],
|
|
24
|
+
["WALLET_GATEWAY_SIGNING_WORKER_URL", input.signingWorkerUrl],
|
|
25
|
+
["WALLET_GATEWAY_SIGNER_WASM_PATH", input.signerWasmPath]
|
|
26
|
+
].filter(([, value]) => !value).map(([name]) => name);
|
|
27
|
+
if (missing.length > 0 || !input.varsPath) return {
|
|
28
|
+
check: "configuration",
|
|
29
|
+
status: "failed",
|
|
30
|
+
detail: { missing }
|
|
31
|
+
};
|
|
32
|
+
let vars;
|
|
33
|
+
try {
|
|
34
|
+
vars = input.readVars(input.varsPath);
|
|
35
|
+
} catch (error) {
|
|
36
|
+
return {
|
|
37
|
+
check: "configuration",
|
|
38
|
+
status: "failed",
|
|
39
|
+
detail: { error: error instanceof Error ? error.message : "the vars file cannot be read" }
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
const deploymentJson = vars.WALLET_LOCAL_DEPLOYMENT_JSON;
|
|
43
|
+
if (!deploymentJson) return {
|
|
44
|
+
check: "configuration",
|
|
45
|
+
status: "failed",
|
|
46
|
+
detail: { missing: ["WALLET_LOCAL_DEPLOYMENT_JSON"] }
|
|
47
|
+
};
|
|
48
|
+
try {
|
|
49
|
+
parseStaticWalletConsoleBindingConfigV1(JSON.parse(deploymentJson));
|
|
50
|
+
} catch {
|
|
51
|
+
return {
|
|
52
|
+
check: "configuration",
|
|
53
|
+
status: "failed",
|
|
54
|
+
detail: { error: "WALLET_LOCAL_DEPLOYMENT_JSON is not a valid deployment" }
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
return {
|
|
58
|
+
check: "configuration",
|
|
59
|
+
status: "passed",
|
|
60
|
+
detail: { keys: Object.keys(vars).length }
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
function signerWasmCheck(path) {
|
|
64
|
+
if (!path) return {
|
|
65
|
+
check: "artifact:signer_wasm",
|
|
66
|
+
status: "failed",
|
|
67
|
+
detail: { missing: true }
|
|
68
|
+
};
|
|
69
|
+
return existsSync(path) ? {
|
|
70
|
+
check: "artifact:signer_wasm",
|
|
71
|
+
status: "passed",
|
|
72
|
+
detail: { path }
|
|
73
|
+
} : {
|
|
74
|
+
check: "artifact:signer_wasm",
|
|
75
|
+
status: "failed",
|
|
76
|
+
detail: {
|
|
77
|
+
path,
|
|
78
|
+
state: "missing"
|
|
79
|
+
}
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
function storageCheck(input) {
|
|
83
|
+
const path = input.databasePath;
|
|
84
|
+
if (!existsSync(path)) return {
|
|
85
|
+
check: "storage:gateway_store",
|
|
86
|
+
status: "failed",
|
|
87
|
+
detail: {
|
|
88
|
+
path,
|
|
89
|
+
state: "missing",
|
|
90
|
+
action: "apply the schema with `migrate`"
|
|
91
|
+
}
|
|
92
|
+
};
|
|
93
|
+
const database = new input.DatabaseSync(path, { readOnly: true });
|
|
94
|
+
try {
|
|
95
|
+
const status = inspectSignerSqlMigrationsV1(nodeSqliteConnection(database), input.migrationsDir);
|
|
96
|
+
const current = status.pending.length === 0 && status.unknown.length === 0;
|
|
97
|
+
return {
|
|
98
|
+
check: "storage:gateway_store",
|
|
99
|
+
status: current ? "passed" : "failed",
|
|
100
|
+
detail: current ? {
|
|
101
|
+
path,
|
|
102
|
+
applied: status.applied.length
|
|
103
|
+
} : {
|
|
104
|
+
path,
|
|
105
|
+
applied: status.applied.length,
|
|
106
|
+
pending: status.pending,
|
|
107
|
+
unknown: status.unknown
|
|
108
|
+
}
|
|
109
|
+
};
|
|
110
|
+
} finally {
|
|
111
|
+
database.close();
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
/** The role a peer's health endpoint answers as. Sends no credential. */
|
|
115
|
+
async function peerCheck(role, url) {
|
|
116
|
+
const check = `peer:${role}`;
|
|
117
|
+
if (!url) return {
|
|
118
|
+
check,
|
|
119
|
+
status: "failed",
|
|
120
|
+
detail: { missing: true }
|
|
121
|
+
};
|
|
122
|
+
let answered;
|
|
123
|
+
try {
|
|
124
|
+
const response = await fetch(new URL("/healthz", url), { signal: AbortSignal.timeout(5e3) });
|
|
125
|
+
if (response.status !== 200) return {
|
|
126
|
+
check,
|
|
127
|
+
status: "failed",
|
|
128
|
+
detail: {
|
|
129
|
+
url,
|
|
130
|
+
error: `answered HTTP ${response.status}`
|
|
131
|
+
}
|
|
132
|
+
};
|
|
133
|
+
const body = await response.json();
|
|
134
|
+
answered = body.role_label ?? body.role;
|
|
135
|
+
} catch (error) {
|
|
136
|
+
return {
|
|
137
|
+
check,
|
|
138
|
+
status: "failed",
|
|
139
|
+
detail: {
|
|
140
|
+
url,
|
|
141
|
+
state: "unreachable",
|
|
142
|
+
error: error instanceof Error ? error.message : "failed"
|
|
143
|
+
}
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
return answered === role ? {
|
|
147
|
+
check,
|
|
148
|
+
status: "passed",
|
|
149
|
+
detail: { url }
|
|
150
|
+
} : {
|
|
151
|
+
check,
|
|
152
|
+
status: "failed",
|
|
153
|
+
detail: {
|
|
154
|
+
url,
|
|
155
|
+
answered_as: answered ?? null,
|
|
156
|
+
action: "point this URL at the role it names"
|
|
157
|
+
}
|
|
158
|
+
};
|
|
159
|
+
}
|
|
160
|
+
//#endregion
|
|
161
|
+
export { checkNodeHostedWalletGatewayV1 };
|
|
162
|
+
|
|
163
|
+
//# sourceMappingURL=nodeHostedWalletGatewayCheck.js.map
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
import { handleLocalHostedWalletGatewayRequestV1 } from "../../localHostedWalletGatewayHandler.js";
|
|
2
|
+
import { listenNodeFetchHandler } from "./nodeHttp.js";
|
|
3
|
+
import { createNodeHostedWalletGatewayV1 } from "./nodeHostedWalletGateway.js";
|
|
4
|
+
import { loadNodeDatabaseSync, nodeSqliteConnection, openNodeSqliteFile } from "./nodeSqlite.js";
|
|
5
|
+
import { applySignerSqlMigrationsV1, inspectSignerSqlMigrationsV1 } from "./signerSqlMigrations.js";
|
|
6
|
+
import { checkNodeHostedWalletGatewayV1 } from "./nodeHostedWalletGatewayCheck.js";
|
|
7
|
+
import { readFileSync } from "node:fs";
|
|
8
|
+
//#region src/router/node/nodeHostedWalletGatewayMain.ts
|
|
9
|
+
async function main(argv) {
|
|
10
|
+
const command = argv[0];
|
|
11
|
+
const databasePath = requireEnv("WALLET_GATEWAY_DATABASE_PATH");
|
|
12
|
+
const migrationsDir = requireEnv("WALLET_GATEWAY_MIGRATIONS_DIR");
|
|
13
|
+
const DatabaseSync = await loadNodeDatabaseSync();
|
|
14
|
+
if (command === "check") {
|
|
15
|
+
const checks = await checkNodeHostedWalletGatewayV1({
|
|
16
|
+
DatabaseSync,
|
|
17
|
+
databasePath,
|
|
18
|
+
migrationsDir,
|
|
19
|
+
varsPath: optionalEnv("WALLET_GATEWAY_VARS_FILE"),
|
|
20
|
+
readVars: readVarsFile,
|
|
21
|
+
routerUrl: optionalEnv("WALLET_GATEWAY_ROUTER_URL"),
|
|
22
|
+
signingWorkerUrl: optionalEnv("WALLET_GATEWAY_SIGNING_WORKER_URL"),
|
|
23
|
+
signerWasmPath: optionalEnv("WALLET_GATEWAY_SIGNER_WASM_PATH")
|
|
24
|
+
});
|
|
25
|
+
const ok = checks.every((check) => check.status !== "failed");
|
|
26
|
+
report({
|
|
27
|
+
kind: "wallet_gateway_check_v1",
|
|
28
|
+
ok,
|
|
29
|
+
checks
|
|
30
|
+
});
|
|
31
|
+
return ok ? 0 : 1;
|
|
32
|
+
}
|
|
33
|
+
const database = openNodeSqliteFile(DatabaseSync, databasePath);
|
|
34
|
+
const connection = nodeSqliteConnection(database);
|
|
35
|
+
if (command === "migrate") {
|
|
36
|
+
report({
|
|
37
|
+
kind: "wallet_gateway_migrate_v1",
|
|
38
|
+
...applySignerSqlMigrationsV1(connection, migrationsDir, Date.now())
|
|
39
|
+
});
|
|
40
|
+
database.close();
|
|
41
|
+
return 0;
|
|
42
|
+
}
|
|
43
|
+
if (command === "serve" || command === "serve-local") {
|
|
44
|
+
const status = inspectSignerSqlMigrationsV1(connection, migrationsDir);
|
|
45
|
+
if (status.pending.length > 0 || status.unknown.length > 0) throw new Error("shared store schema is not current; run `migrate` first");
|
|
46
|
+
const [host, port] = splitListen(requireEnv("WALLET_GATEWAY_LISTEN"));
|
|
47
|
+
const gateway = createNodeHostedWalletGatewayV1({
|
|
48
|
+
vars: readVarsFile(requireEnv("WALLET_GATEWAY_VARS_FILE")),
|
|
49
|
+
connection,
|
|
50
|
+
routerUrl: requireEnv("WALLET_GATEWAY_ROUTER_URL"),
|
|
51
|
+
signingWorkerUrl: requireEnv("WALLET_GATEWAY_SIGNING_WORKER_URL"),
|
|
52
|
+
signerWasmPath: requireEnv("WALLET_GATEWAY_SIGNER_WASM_PATH"),
|
|
53
|
+
...command === "serve-local" ? { handler: handleLocalHostedWalletGatewayRequestV1 } : {},
|
|
54
|
+
onBackgroundError: (error) => process.stderr.write(`gateway background task failed: ${describe(error)}\n`)
|
|
55
|
+
});
|
|
56
|
+
const server = await listenNodeFetchHandler({
|
|
57
|
+
host,
|
|
58
|
+
port,
|
|
59
|
+
handle: gateway.handle
|
|
60
|
+
});
|
|
61
|
+
report({
|
|
62
|
+
kind: "wallet_gateway_listening_v1",
|
|
63
|
+
address: server.address()
|
|
64
|
+
});
|
|
65
|
+
const stop = () => server.close(() => {
|
|
66
|
+
gateway.drain().finally(() => {
|
|
67
|
+
database.close();
|
|
68
|
+
process.exit(0);
|
|
69
|
+
});
|
|
70
|
+
});
|
|
71
|
+
process.once("SIGTERM", stop);
|
|
72
|
+
process.once("SIGINT", stop);
|
|
73
|
+
return await new Promise(() => void 0);
|
|
74
|
+
}
|
|
75
|
+
process.stderr.write("usage: wallet-gateway <migrate|check|serve|serve-local>\n");
|
|
76
|
+
return 2;
|
|
77
|
+
}
|
|
78
|
+
/** Reads `KEY='value'` / `KEY=value` lines; values are never logged. */
|
|
79
|
+
function readVarsFile(path) {
|
|
80
|
+
const vars = {};
|
|
81
|
+
for (const rawLine of readFileSync(path, "utf8").split(/\r?\n/)) {
|
|
82
|
+
const line = rawLine.trim();
|
|
83
|
+
if (!line || line.startsWith("#")) continue;
|
|
84
|
+
const separator = line.indexOf("=");
|
|
85
|
+
if (separator <= 0) throw new Error(`invalid entry in ${path}`);
|
|
86
|
+
const key = line.slice(0, separator);
|
|
87
|
+
let value = line.slice(separator + 1);
|
|
88
|
+
if (value.length >= 2 && value.startsWith("'") && value.endsWith("'")) value = value.slice(1, -1);
|
|
89
|
+
if (key in vars) throw new Error(`duplicate ${key} in ${path}`);
|
|
90
|
+
vars[key] = value;
|
|
91
|
+
}
|
|
92
|
+
return vars;
|
|
93
|
+
}
|
|
94
|
+
function requireEnv(name) {
|
|
95
|
+
const value = process.env[name]?.trim();
|
|
96
|
+
if (!value) throw new Error(`${name} is required`);
|
|
97
|
+
return value;
|
|
98
|
+
}
|
|
99
|
+
function optionalEnv(name) {
|
|
100
|
+
return process.env[name]?.trim() || void 0;
|
|
101
|
+
}
|
|
102
|
+
function splitListen(value) {
|
|
103
|
+
const index = value.lastIndexOf(":");
|
|
104
|
+
const port = Number(value.slice(index + 1));
|
|
105
|
+
if (index <= 0 || !Number.isInteger(port)) throw new Error("WALLET_GATEWAY_LISTEN must be host:port");
|
|
106
|
+
return [value.slice(0, index), port];
|
|
107
|
+
}
|
|
108
|
+
function report(value) {
|
|
109
|
+
process.stdout.write(`${JSON.stringify(value)}\n`);
|
|
110
|
+
}
|
|
111
|
+
function describe(error) {
|
|
112
|
+
return error instanceof Error ? error.message : String(error);
|
|
113
|
+
}
|
|
114
|
+
main(process.argv.slice(2)).then((code) => process.exit(code), (error) => {
|
|
115
|
+
process.stderr.write(`${describe(error)}\n`);
|
|
116
|
+
process.exit(1);
|
|
117
|
+
});
|
|
118
|
+
//#endregion
|
|
119
|
+
|
|
120
|
+
//# sourceMappingURL=nodeHostedWalletGatewayMain.js.map
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { createServer } from "node:http";
|
|
2
|
+
//#region src/router/node/nodeHttp.ts
|
|
3
|
+
const MAX_REQUEST_BODY_BYTES = 1024 * 1024;
|
|
4
|
+
/**
|
|
5
|
+
* Headers that describe one connection or one message's framing. A Worker's
|
|
6
|
+
* runtime sets them for the bytes it actually sends; on Node they are never
|
|
7
|
+
* copied from a Request or Response that another hop produced.
|
|
8
|
+
*/
|
|
9
|
+
const NODE_HOP_BY_HOP_HEADERS_V1 = [
|
|
10
|
+
"connection",
|
|
11
|
+
"content-length",
|
|
12
|
+
"expect",
|
|
13
|
+
"host",
|
|
14
|
+
"keep-alive",
|
|
15
|
+
"proxy-connection",
|
|
16
|
+
"te",
|
|
17
|
+
"trailer",
|
|
18
|
+
"transfer-encoding",
|
|
19
|
+
"upgrade"
|
|
20
|
+
];
|
|
21
|
+
function listenNodeFetchHandler(input) {
|
|
22
|
+
const server = createServer((incoming, outgoing) => {
|
|
23
|
+
forward(incoming, outgoing, input.handle);
|
|
24
|
+
});
|
|
25
|
+
return new Promise((resolve, reject) => {
|
|
26
|
+
server.once("error", reject);
|
|
27
|
+
server.listen(input.port, input.host, () => resolve(server));
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
async function forward(incoming, outgoing, handle) {
|
|
31
|
+
try {
|
|
32
|
+
if (Number(incoming.headers["content-length"]) > MAX_REQUEST_BODY_BYTES) {
|
|
33
|
+
rejectOversizedBody(incoming, outgoing);
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
const chunks = [];
|
|
37
|
+
let bodyBytes = 0;
|
|
38
|
+
for await (const chunk of incoming.iterator({ destroyOnReturn: false })) {
|
|
39
|
+
bodyBytes += chunk.length;
|
|
40
|
+
if (bodyBytes > MAX_REQUEST_BODY_BYTES) {
|
|
41
|
+
rejectOversizedBody(incoming, outgoing);
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
chunks.push(chunk);
|
|
45
|
+
}
|
|
46
|
+
const headers = new Headers();
|
|
47
|
+
for (const [name, value] of Object.entries(incoming.headers)) if (typeof value === "string") headers.set(name, value);
|
|
48
|
+
else if (Array.isArray(value)) for (const item of value) headers.append(name, item);
|
|
49
|
+
const method = incoming.method ?? "GET";
|
|
50
|
+
const response = await handle(new Request(`http://${incoming.headers.host ?? "localhost"}${incoming.url ?? "/"}`, {
|
|
51
|
+
method,
|
|
52
|
+
headers,
|
|
53
|
+
body: method === "GET" || method === "HEAD" ? void 0 : Buffer.concat(chunks)
|
|
54
|
+
}));
|
|
55
|
+
outgoing.statusCode = response.status;
|
|
56
|
+
response.headers.forEach((value, name) => {
|
|
57
|
+
if (name === "set-cookie" || NODE_HOP_BY_HOP_HEADERS_V1.includes(name)) return;
|
|
58
|
+
outgoing.setHeader(name, value);
|
|
59
|
+
});
|
|
60
|
+
const cookies = response.headers.getSetCookie();
|
|
61
|
+
if (cookies.length > 0) outgoing.setHeader("set-cookie", cookies);
|
|
62
|
+
outgoing.end(Buffer.from(await response.arrayBuffer()));
|
|
63
|
+
} catch {
|
|
64
|
+
outgoing.statusCode = 500;
|
|
65
|
+
outgoing.end("internal error");
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
function rejectOversizedBody(incoming, outgoing) {
|
|
69
|
+
incoming.pause();
|
|
70
|
+
outgoing.writeHead(413, {
|
|
71
|
+
connection: "close",
|
|
72
|
+
"content-type": "text/plain; charset=utf-8"
|
|
73
|
+
});
|
|
74
|
+
outgoing.end("request body too large");
|
|
75
|
+
}
|
|
76
|
+
//#endregion
|
|
77
|
+
export { NODE_HOP_BY_HOP_HEADERS_V1, listenNodeFetchHandler };
|
|
78
|
+
|
|
79
|
+
//# sourceMappingURL=nodeHttp.js.map
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
//#region src/router/node/nodeSqlite.ts
|
|
2
|
+
const BUSY_TIMEOUT_MS = 5e3;
|
|
3
|
+
/** Loads `node:sqlite` at runtime so the package builds without its typings. */
|
|
4
|
+
async function loadNodeDatabaseSync() {
|
|
5
|
+
const module = await import("node:sqlite");
|
|
6
|
+
if (typeof module.DatabaseSync !== "function") throw new Error("node:sqlite DatabaseSync is unavailable; use Node.js 22.13 or newer");
|
|
7
|
+
return module.DatabaseSync;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Opens a SQLite file for one role-private store. Writers from separate
|
|
11
|
+
* processes serialize on `BEGIN IMMEDIATE`; WAL lets readers proceed.
|
|
12
|
+
*/
|
|
13
|
+
function openNodeSqliteFile(DatabaseSync, path) {
|
|
14
|
+
const database = new DatabaseSync(path);
|
|
15
|
+
database.exec(`PRAGMA busy_timeout = ${BUSY_TIMEOUT_MS}; PRAGMA journal_mode = WAL; PRAGMA foreign_keys = ON;`);
|
|
16
|
+
return database;
|
|
17
|
+
}
|
|
18
|
+
function nodeSqliteConnection(database) {
|
|
19
|
+
let inTransaction = false;
|
|
20
|
+
return {
|
|
21
|
+
execute: (sql, params) => database.prepare(sql).all(...params),
|
|
22
|
+
executeScript: (sql) => database.exec(sql),
|
|
23
|
+
transaction: (body) => {
|
|
24
|
+
if (inTransaction) throw new Error("nested SQLite transactions are not supported");
|
|
25
|
+
database.exec("BEGIN IMMEDIATE");
|
|
26
|
+
inTransaction = true;
|
|
27
|
+
try {
|
|
28
|
+
const result = body();
|
|
29
|
+
database.exec("COMMIT");
|
|
30
|
+
return result;
|
|
31
|
+
} catch (error) {
|
|
32
|
+
database.exec("ROLLBACK");
|
|
33
|
+
throw error;
|
|
34
|
+
} finally {
|
|
35
|
+
inTransaction = false;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
//#endregion
|
|
41
|
+
export { loadNodeDatabaseSync, nodeSqliteConnection, openNodeSqliteFile };
|
|
42
|
+
|
|
43
|
+
//# sourceMappingURL=nodeSqlite.js.map
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { readFileSync, readdirSync } from "node:fs";
|
|
2
|
+
import { join } from "node:path";
|
|
3
|
+
//#region src/router/node/signerSqlMigrations.ts
|
|
4
|
+
const LEDGER_TABLE = "seams_signer_sql_migrations";
|
|
5
|
+
function migrationNames(directory) {
|
|
6
|
+
return readdirSync(directory).filter((name) => name.endsWith(".sql")).sort();
|
|
7
|
+
}
|
|
8
|
+
function appliedNames(connection) {
|
|
9
|
+
if (connection.execute("SELECT name FROM sqlite_master WHERE type = 'table' AND name = ?1", [LEDGER_TABLE]).length === 0) return [];
|
|
10
|
+
return connection.execute(`SELECT name FROM ${LEDGER_TABLE} ORDER BY name`, []).map((row) => String(row.name));
|
|
11
|
+
}
|
|
12
|
+
/** Read-only: compares the database ledger with the shipped migration chain. */
|
|
13
|
+
function inspectSignerSqlMigrationsV1(connection, directory) {
|
|
14
|
+
const shipped = migrationNames(directory);
|
|
15
|
+
const applied = appliedNames(connection);
|
|
16
|
+
return {
|
|
17
|
+
applied,
|
|
18
|
+
pending: shipped.filter((name) => !applied.includes(name)),
|
|
19
|
+
unknown: applied.filter((name) => !shipped.includes(name))
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Applies pending migrations in order, each in one transaction together
|
|
24
|
+
* with its ledger row, so an interrupted run resumes at the first missing
|
|
25
|
+
* migration. Refuses a database that already carries migrations this
|
|
26
|
+
* package does not know, or whose applied set is not a prefix of the chain.
|
|
27
|
+
*/
|
|
28
|
+
function applySignerSqlMigrationsV1(connection, directory, nowMs) {
|
|
29
|
+
const status = inspectSignerSqlMigrationsV1(connection, directory);
|
|
30
|
+
if (status.unknown.length > 0) throw new Error(`database has migrations this package does not ship: ${status.unknown.join(", ")}`);
|
|
31
|
+
const shipped = migrationNames(directory);
|
|
32
|
+
if (status.applied.some((name, index) => shipped[index] !== name)) throw new Error("applied migrations are not a prefix of the shipped migration chain");
|
|
33
|
+
connection.executeScript(`CREATE TABLE IF NOT EXISTS ${LEDGER_TABLE} (name TEXT PRIMARY KEY, applied_at_ms INTEGER NOT NULL)`);
|
|
34
|
+
const applied = [];
|
|
35
|
+
for (const name of status.pending) {
|
|
36
|
+
const sql = readFileSync(join(directory, name), "utf8");
|
|
37
|
+
connection.transaction(() => {
|
|
38
|
+
connection.executeScript(sql);
|
|
39
|
+
connection.execute(`INSERT INTO ${LEDGER_TABLE} (name, applied_at_ms) VALUES (?1, ?2)`, [name, nowMs]);
|
|
40
|
+
});
|
|
41
|
+
applied.push(name);
|
|
42
|
+
}
|
|
43
|
+
return { applied };
|
|
44
|
+
}
|
|
45
|
+
//#endregion
|
|
46
|
+
export { applySignerSqlMigrationsV1, inspectSignerSqlMigrationsV1 };
|
|
47
|
+
|
|
48
|
+
//# sourceMappingURL=signerSqlMigrations.js.map
|
|
@@ -304,6 +304,6 @@ function createFetchRouter(service, opts, runtime) {
|
|
|
304
304
|
}, routeSurface);
|
|
305
305
|
}
|
|
306
306
|
//#endregion
|
|
307
|
-
export {
|
|
307
|
+
export { createFetchRouter };
|
|
308
308
|
|
|
309
309
|
//# sourceMappingURL=createFetchRouter.js.map
|
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
import { parseLinkDeviceSessionId } from "../../../../shared-ts/src/utils/domainIds.js";
|
|
2
2
|
import { base64UrlDecode, base64UrlEncode } from "../../../../shared-ts/src/utils/base64.js";
|
|
3
|
-
import { parseDigestB64u } from "../../../../shared-ts/src/utils/canonicalPrimitives.js";
|
|
4
3
|
import { sha256Bytes } from "../../../../shared-ts/src/utils/digests.js";
|
|
4
|
+
import { parseDigestB64u } from "../../../../shared-ts/src/utils/canonicalPrimitives.js";
|
|
5
5
|
import { assertNeverLinkSessionStateV1 } from "../../../../shared-ts/src/device-linking/contracts.js";
|
|
6
|
+
import { requireRecord } from "../../../../shared-ts/src/utils/validation.js";
|
|
7
|
+
import { parseActiveWalletSessionV1 } from "../../../../shared-ts/src/device-linking/activeWalletSession.js";
|
|
6
8
|
import { parseLinkedDeviceEd25519ExportRootRecipientV1, parseLinkedDeviceEd25519ExportRootSubmissionV1 } from "../../../../shared-ts/src/device-linking/ed25519ExportRoot.js";
|
|
7
9
|
import { parseRouterAbEd25519YaoRegistrationActivationExecuteRequestV1, sameRouterAbEd25519YaoActivationBindingV1 } from "../../../../shared-ts/src/utils/routerAbEd25519Yao.js";
|
|
8
10
|
import { parseLinkedDeviceEd25519SourcePreservingReservationV1, parseLinkedDeviceOrdinaryMaterialSourceContributionPreparationTupleV1 } from "../../../../shared-ts/src/device-linking/sourceContribution.js";
|
|
9
|
-
import {
|
|
11
|
+
import { parseLinkedDeviceApprovalDeliveryV1, parseLinkedDeviceApprovalV1, parseLinkedDeviceEmailOtpBaseFactorRequestV1, parseLinkedDeviceEmailOtpChallengeResendRequestV1, parseLinkedDeviceEmailOtpChallengeResultV1, parseLinkedDeviceEmailOtpChallengeStartRequestV1, parseLinkedDeviceEmailOtpChallengeVerifyRequestV1, parseLinkedDeviceEmailOtpVerificationResultV1, parseLinkedDeviceSessionClaimRequestV1, parseLinkedDeviceSessionTransportRequestV1, parseLinkedDeviceTargetCredentialRegistrationV1, parseLinkedDeviceTargetPreparationRequestV1, parseLinkedDeviceTargetPreparationV1, parseQrLinkedDeviceSessionPayloadV5 } from "../../../../shared-ts/src/device-linking/parsers.js";
|
|
12
|
+
import { parseLocalAuthorityActivationFinalAckV1, parseLocalAuthorityInstallationReceiptV1 } from "../../../../shared-ts/src/device-linking/authorityActivation.js";
|
|
10
13
|
import { LINKED_DEVICE_REQUEST_PROOF_HEADER_V1, computeLinkedDevicePublicKeyDigestV1 } from "../../../../shared-ts/src/device-linking/requestProof.js";
|
|
11
14
|
import { findRouteDefinitionById } from "../../../framework/routeDefinitions.js";
|
|
12
15
|
import { normalizeCorsOrigin } from "../../../../core/SessionService.js";
|
|
@@ -260,26 +263,25 @@ async function handleSourceContribution(ctx, service, rawLinkSessionId, nowMs) {
|
|
|
260
263
|
nowMs,
|
|
261
264
|
ed25519ExportRootPackage
|
|
262
265
|
});
|
|
263
|
-
if (committed.kind === "invalid_input") return sessionResultResponse(await service.sessionService.failBeforeCommitV1({
|
|
266
|
+
if (committed.kind === "invalid_input" || committed.kind === "conflict") return sessionResultResponse(await service.sessionService.failBeforeCommitV1({
|
|
264
267
|
linkSessionId,
|
|
265
268
|
expectedRevision: recorded.record.revision,
|
|
266
269
|
error: {
|
|
267
270
|
kind: "package_preparation_failed",
|
|
268
|
-
reason: committed.message
|
|
269
|
-
},
|
|
270
|
-
nowMs
|
|
271
|
-
}));
|
|
272
|
-
if (committed.kind === "conflict") return sessionResultResponse(await service.sessionService.failBeforeCommitV1({
|
|
273
|
-
linkSessionId,
|
|
274
|
-
expectedRevision: recorded.record.revision,
|
|
275
|
-
error: {
|
|
276
|
-
kind: "package_preparation_failed",
|
|
277
|
-
reason: committed.message
|
|
271
|
+
reason: precommitFailureReasonV1(committed.message)
|
|
278
272
|
},
|
|
279
273
|
nowMs
|
|
280
274
|
}));
|
|
281
275
|
return sessionProjectionResponse(committed.session, committed.kind === "replayed" ? "replayed" : recorded.outcome);
|
|
282
276
|
}
|
|
277
|
+
/**
|
|
278
|
+
* A precommit failure's reason is a single token. The installer's message
|
|
279
|
+
* keeps its words, joined, so the session still says what failed.
|
|
280
|
+
*/
|
|
281
|
+
function precommitFailureReasonV1(message) {
|
|
282
|
+
const token = message.trim().replace(/\s+/g, "_").replace(/[\u0000-\u001f\u007f]/g, "");
|
|
283
|
+
return token.length > 0 ? token : "authority_commit_failed";
|
|
284
|
+
}
|
|
283
285
|
async function handleSourceContributionExecute(ctx, service, rawLinkSessionId, nowMs) {
|
|
284
286
|
if (ctx.method !== "POST") return methodNotAllowedResponse();
|
|
285
287
|
const owner = await authenticateOwnerForSession(ctx, service, parseSessionId(rawLinkSessionId), nowMs);
|
|
@@ -1163,10 +1165,6 @@ function parseBoundary(parse) {
|
|
|
1163
1165
|
throw new DeviceLinkingInputError(errorMessage(error));
|
|
1164
1166
|
}
|
|
1165
1167
|
}
|
|
1166
|
-
function requireRecord(raw, field) {
|
|
1167
|
-
if (raw === null || typeof raw !== "object" || Array.isArray(raw)) throw new Error(`${field} must be an object`);
|
|
1168
|
-
return raw;
|
|
1169
|
-
}
|
|
1170
1168
|
function requireExactKeys(record, keys) {
|
|
1171
1169
|
const actual = Object.keys(record).sort();
|
|
1172
1170
|
const expected = [...keys].sort();
|
|
@@ -1191,6 +1189,6 @@ var DeviceLinkingInputError = class extends Error {
|
|
|
1191
1189
|
}
|
|
1192
1190
|
};
|
|
1193
1191
|
//#endregion
|
|
1194
|
-
export {
|
|
1192
|
+
export { handleDeviceLinking };
|
|
1195
1193
|
|
|
1196
1194
|
//# sourceMappingURL=deviceLinking.js.map
|
|
@@ -1,14 +1,12 @@
|
|
|
1
1
|
import { parseProviderSubject } from "../../../../shared-ts/src/utils/domainIds.js";
|
|
2
|
-
import {
|
|
3
|
-
import { parseDigestB64u } from "../../../../shared-ts/src/utils/canonicalPrimitives.js";
|
|
4
|
-
import { sha256Bytes } from "../../../../shared-ts/src/utils/digests.js";
|
|
2
|
+
import { sha256DigestB64u } from "../../../../shared-ts/src/utils/canonicalPrimitives.js";
|
|
5
3
|
import { buildDelegatedWalletAuthorityV1 } from "../../../../shared-ts/src/authorization/delegatedAuthority.js";
|
|
6
4
|
import { buildEmailOtpWalletAuthAuthority, buildPasskeyWalletAuthAuthority, walletAuthAuthorityRef } from "../../../../shared-ts/src/utils/walletAuthAuthority.js";
|
|
7
5
|
import { parseLinkedDeviceOwnerAuthorizationRequestV1 } from "../../../../shared-ts/src/device-linking/parsers.js";
|
|
8
6
|
import { buildWalletSessionCapabilitySubjectsV1, walletSessionCapabilitySubjectsV1Equal } from "../../../../authorization/domain.js";
|
|
7
|
+
import { thresholdEd25519AuthorityScopeFromWalletAuthAuthority } from "../../../../core/ThresholdService/validation.js";
|
|
9
8
|
import { json, readJson } from "../../../framework/http.js";
|
|
10
9
|
import { extractBearerCredential } from "../../../auth/routerApiKeyAuth.js";
|
|
11
|
-
import { thresholdEd25519AuthorityScopeFromWalletAuthAuthority } from "../../../../core/ThresholdService/validation.js";
|
|
12
10
|
//#region src/router/transport/fetch/routes/deviceLinkingOwnerAuthorization.ts
|
|
13
11
|
const LINKED_DEVICE_OWNER_AUTHORIZATION_PATH_V1 = "/wallet/device-linking/v1/owner-authorization";
|
|
14
12
|
/**
|
|
@@ -253,7 +251,7 @@ async function readClonedJson(request) {
|
|
|
253
251
|
}
|
|
254
252
|
}
|
|
255
253
|
async function requestBodyDigest(request) {
|
|
256
|
-
return
|
|
254
|
+
return sha256DigestB64u(new Uint8Array(await request.clone().arrayBuffer()));
|
|
257
255
|
}
|
|
258
256
|
function denied(code, message) {
|
|
259
257
|
return {
|