@seams/wallet-server 0.15.4 → 0.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (169) hide show
  1. package/README.md +51 -1
  2. package/THIRD_PARTY_NOTICES.md +102 -1
  3. package/artifact-manifest.json +27 -22
  4. package/cloudflare-router-ab/build/deriver-a/build-stamp.json +1 -1
  5. package/cloudflare-router-ab/build/deriver-a/index_bg.wasm +0 -0
  6. package/cloudflare-router-ab/build/deriver-b/build-stamp.json +1 -1
  7. package/cloudflare-router-ab/build/deriver-b/index_bg.wasm +0 -0
  8. package/cloudflare-router-ab/build/local-tools/linux-x64/router_ab_local_init +0 -0
  9. package/cloudflare-router-ab/build/router/build-stamp.json +1 -1
  10. package/cloudflare-router-ab/build/router/index_bg.wasm +0 -0
  11. package/cloudflare-router-ab/build/signing-worker/build-stamp.json +1 -1
  12. package/cloudflare-router-ab/build/signing-worker/index_bg.wasm +0 -0
  13. package/cloudflare-router-ab/build/tenant-root-control-plane/build-stamp.json +1 -1
  14. package/cloudflare-router-ab/build/tenant-root-control-plane/index_bg.wasm +0 -0
  15. package/cloudflare-router-ab/migrations/postgres/0001_role_store.sql +567 -0
  16. package/dist/esm/authorization/factorEvidence.js +49 -8
  17. package/dist/esm/authorization/vaultProxyUse.js +15 -15
  18. package/dist/esm/core/SessionService.js +1 -0
  19. package/dist/esm/core/ThresholdService/kv.js +2 -0
  20. package/dist/esm/core/ThresholdService/routerAb/ecdsaDerivationPoolFillHandlers.js +3 -0
  21. package/dist/esm/core/d1IdentityStore.js +3 -1
  22. package/dist/esm/core/d1TenantStore.js +4 -1
  23. package/dist/esm/core/d1WalletAuthMethodStore.js +3 -1
  24. package/dist/esm/core/d1WalletStore.js +5 -2
  25. package/dist/esm/core/deviceLinking/linkedDeviceManagement.js +1 -4
  26. package/dist/esm/core/deviceLinking/linkedDeviceSession.js +2 -0
  27. package/dist/esm/core/deviceLinking/requestProof.js +1 -0
  28. package/dist/esm/core/routerAbSigning/RouterAbEcdsaPresignRuntime.js +2 -0
  29. package/dist/esm/core/routerAbSigning/RouterAbNormalSigningRuntime.js +3 -0
  30. package/dist/esm/core/rpcClients/near/NearClient.js +8 -0
  31. package/dist/esm/core/signingMaterial/ordinaryInactiveSignerMaterialReservation.js +0 -1
  32. package/dist/esm/localHostedWalletGatewayHandler.js +2 -2
  33. package/dist/esm/localIntendedEcdsaFinalizeFault.js +1 -1
  34. package/dist/esm/localIntendedLinkExecuteFault.js +1 -1
  35. package/dist/esm/localIntendedMaterialAdmissionFault.js +2 -2
  36. package/dist/esm/localIntendedRevokeFault.js +1 -1
  37. package/dist/esm/localIntendedSessionAdmissionFault.js +1 -1
  38. package/dist/esm/localIntendedYaoExportFault.js +1 -1
  39. package/dist/esm/localIntendedYaoFault.js +1 -1
  40. package/dist/esm/localIntendedYaoFinalizeFault.js +1 -1
  41. package/dist/esm/localIntendedYaoRecoveryFault.js +3 -3
  42. package/dist/esm/localIntendedYaoSigningFault.js +1 -1
  43. package/dist/esm/localRegistrationSetupAuthority.js +1 -0
  44. package/dist/esm/router/cloudflare/d1/auth/d1RouterApiAuthService.js +2 -2
  45. package/dist/esm/router/cloudflare/d1/authorization/d1AuthorizationStore.js +5 -0
  46. package/dist/esm/router/cloudflare/d1/authorization/d1VaultProxyStore.js +1 -0
  47. package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceAuthorityInstallService.js +1 -0
  48. package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceEd25519ExportRootStore.js +2 -0
  49. package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceEmailOtpGrantStore.js +2 -0
  50. package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceEmailOtpTargetFactor.js +3 -0
  51. package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceOwnerAuthorizationProvider.js +2 -3
  52. package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceRequestProofNonceStore.js +2 -0
  53. package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceSessionStore.js +3 -0
  54. package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceSourceContributionPreparationPlanner.js +6 -2
  55. package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceTargetAuthenticatorStore.js +3 -0
  56. package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceTargetCredentialProvider.js +10 -2
  57. package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceTargetPlanner.js +3 -0
  58. package/dist/esm/router/cloudflare/d1/ed25519Yao/d1Ed25519YaoCapabilityPersistence.js +6 -1
  59. package/dist/esm/router/cloudflare/d1/ed25519Yao/d1Ed25519YaoLifecycleDecisionStore.js +2 -0
  60. package/dist/esm/router/cloudflare/d1/ed25519Yao/d1Ed25519YaoProductRegistrationPartitionedStateStore.js +1 -1
  61. package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpChallengeIssuer.js +5 -0
  62. package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpChallengeService.js +8 -0
  63. package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpChallengeStore.js +6 -1
  64. package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpChallengeVerifier.js +4 -0
  65. package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpEnrollmentStore.js +1 -0
  66. package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpGrantStore.js +1 -0
  67. package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpRecoveryService.js +4 -0
  68. package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpRegistrationEnrollmentFinalizer.js +2 -0
  69. package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpServerSealRuntime.js +1 -0
  70. package/dist/esm/router/cloudflare/d1/emailOtp/d1GoogleEmailOtpRegistrationAttemptStore.js +3 -0
  71. package/dist/esm/router/cloudflare/d1/emailOtp/d1GoogleEmailOtpSessionResolver.js +6 -0
  72. package/dist/esm/router/cloudflare/d1/identity/d1IdentityService.js +1 -0
  73. package/dist/esm/router/cloudflare/d1/oidc/d1OidcBoundary.js +2 -4
  74. package/dist/esm/router/cloudflare/d1/oidc/d1OidcVerificationService.js +4 -0
  75. package/dist/esm/router/cloudflare/d1/passkeyCustody/d1PasskeyCustodyEnvelopeStore.js +4 -0
  76. package/dist/esm/router/cloudflare/d1/passkeyCustody/d1WalletCustodyCommitStore.js +7 -0
  77. package/dist/esm/router/cloudflare/d1/passkeyCustody/d1WalletRecoveryGoogleEmailOtpAttemptStore.js +1 -0
  78. package/dist/esm/router/cloudflare/d1/passkeyCustody/d1WalletRecoveryGoogleEmailOtpService.js +8 -0
  79. package/dist/esm/router/cloudflare/d1/registration/d1RegistrationCeremonyRecordStore.js +3 -0
  80. package/dist/esm/router/cloudflare/d1/registration/d1RegistrationCeremonyStore.js +1 -0
  81. package/dist/esm/router/cloudflare/d1/registration/d1RegistrationIntentService.js +1 -0
  82. package/dist/esm/router/cloudflare/d1/registration/d1RegistrationSessionTransaction.js +1 -1
  83. package/dist/esm/router/cloudflare/d1/registration/d1WalletOperationStore.js +2 -0
  84. package/dist/esm/router/cloudflare/d1/registration/d1WalletRegistrationCommitStore.js +3 -0
  85. package/dist/esm/router/cloudflare/d1/registration/d1WalletRegistrationService.js +24 -0
  86. package/dist/esm/router/cloudflare/d1/signingAdmission/d1RouterAbNormalSigningAdmissionStore.js +3 -0
  87. package/dist/esm/router/cloudflare/d1/versionedJson/d1VersionedJsonRecordStore.js +6 -0
  88. package/dist/esm/router/cloudflare/d1/wallet/d1WalletAddSignerService.js +11 -0
  89. package/dist/esm/router/cloudflare/d1/wallet/d1WalletAuthMethodRevocationReplayStore.js +2 -0
  90. package/dist/esm/router/cloudflare/d1/wallet/d1WalletAuthMethodService.js +16 -0
  91. package/dist/esm/router/cloudflare/d1/wallet/d1WalletAuthorityStore.js +3 -1
  92. package/dist/esm/router/cloudflare/d1/webauthn/d1WebAuthnAuthService.js +4 -0
  93. package/dist/esm/router/cloudflare/d1/webauthn/d1WebAuthnStore.js +5 -1
  94. package/dist/esm/router/cloudflare/durableObjects/versionedJsonRecordStore.js +6 -0
  95. package/dist/esm/router/cloudflare/runtime/ed25519SessionAdapter.js +6 -0
  96. package/dist/esm/router/cloudflare/runtime/walletAuthorizationRelocationRoutes.js +117 -117
  97. package/dist/esm/router/cloudflare/runtime/walletPlacementRoutes.js +51 -51
  98. package/dist/esm/router/cloudflare/signingLanes/cloudflareOrdinaryInactiveSignerMaterialReservation.js +3 -3
  99. package/dist/esm/router/cloudflare.js +114 -61
  100. package/dist/esm/router/domains/ecdsa/routerAbEcdsaStrictRegistration.js +1 -1
  101. package/dist/esm/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistration.js +2 -1
  102. package/dist/esm/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistrationRequestScopedRuntime.js +2 -1
  103. package/dist/esm/router/domains/ed25519Yao/export/routerAbEd25519YaoExport.js +6 -8
  104. package/dist/esm/router/domains/ed25519Yao/recovery/routerAbEd25519YaoRecovery.js +11 -9
  105. package/dist/esm/router/domains/ed25519Yao/registration/routerAbEd25519YaoHttpRegistrationBackend.js +2 -1
  106. package/dist/esm/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistration.js +11 -9
  107. package/dist/esm/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistrationIntentAuthorization.js +2 -3
  108. package/dist/esm/router/domains/signingOperations/routerAbNormalSigningAdmissionCore.js +2 -4
  109. package/dist/esm/router/domains/walletRegistration/registrationSessionSeal.js +1 -1
  110. package/dist/esm/router/framework/http.js +1 -1
  111. package/dist/esm/router/framework/ror/staticProvider.js +1 -0
  112. package/dist/esm/router/ror.js +1 -0
  113. package/dist/esm/shared-ts/src/authorization/delegatedAuthority.js +1 -1
  114. package/dist/esm/shared-ts/src/authorization/operationFingerprint.js +6 -0
  115. package/dist/esm/shared-ts/src/device-linking/sourceContribution.js +5 -5
  116. package/dist/esm/shared-ts/src/near/nearClient.js +6 -0
  117. package/dist/esm/shared-ts/src/tenant-root/tenantRootIdentity.js +5 -0
  118. package/dist/esm/shared-ts/src/utils/domainIds.js +7 -0
  119. package/dist/esm/shared-ts/src/utils/routerAbEd25519Yao.js +7 -6
  120. package/dist/esm/storage/tenantRoute.js +4 -0
  121. package/dist/esm/threshold/session/signingSessionSeal/crypto/cipher.js +1 -1
  122. package/dist/esm/threshold/session/signingSessionSeal/crypto/shamir3PassWasm.js +1 -1
  123. package/dist/esm/threshold/session/signingSessionSeal/guards/backends.js +2 -0
  124. package/dist/esm/threshold/session/signingSessionSeal/guards/index.js +2 -1
  125. package/dist/esm/threshold/session/signingSessionSeal/idempotencyBackends.js +3 -0
  126. package/dist/types/shared-ts/src/authorization/capabilityKinds.d.ts +14 -14
  127. package/dist/types/shared-ts/src/authorization/delegatedAuthority.d.ts +1 -1
  128. package/dist/types/shared-ts/src/device-linking/ed25519ExportRoot.d.ts +1 -1
  129. package/dist/types/shared-ts/src/device-linking/requestProof.d.ts +1 -1
  130. package/dist/types/shared-ts/src/device-linking/sourceContribution.d.ts +5 -5
  131. package/dist/types/shared-ts/src/passkey-custody/custodyEnvelope.d.ts +3 -3
  132. package/dist/types/shared-ts/src/passkey-custody/custodySecretBinding.d.ts +1 -1
  133. package/dist/types/shared-ts/src/tenant-root/tenantRootIdentity.d.ts +1 -1
  134. package/dist/types/shared-ts/src/tenant-root/tenantRootOperationRecord.d.ts +2 -2
  135. package/dist/types/shared-ts/src/utils/base64.d.ts +2 -2
  136. package/dist/types/shared-ts/src/utils/digestEncoding.d.ts +1 -1
  137. package/dist/types/shared-ts/src/utils/digests.d.ts +2 -2
  138. package/dist/types/shared-ts/src/utils/emailOtpDomain.d.ts +16 -16
  139. package/dist/types/shared-ts/src/utils/emailOtpRecoveryKey.d.ts +1 -1
  140. package/dist/types/shared-ts/src/utils/routerAbEcdsaDerivation.d.ts +10 -10
  141. package/dist/types/shared-ts/src/utils/routerAbEd25519Yao.d.ts +12 -11
  142. package/dist/types/shared-ts/src/utils/routerAbPublicKeyset.d.ts +3 -3
  143. package/dist/types/shared-ts/src/utils/routerAbTraceContext.d.ts +1 -1
  144. package/dist/types/shared-ts/src/utils/signerDomain.d.ts +15 -15
  145. package/dist/types/shared-ts/src/utils/signingSessionSeal.d.ts +11 -11
  146. package/dist/types/shared-ts/src/utils/walletSessionFailure.d.ts +8 -8
  147. package/dist/types/shared-ts/src/utils/webauthnDeviceInfo.d.ts +2 -2
  148. package/dist/types/shared-ts/src/utils/wireSchema.d.ts +1 -1
  149. package/dist/types/shared-ts/src/wallet-recovery/recoveryKeyId.d.ts +1 -1
  150. package/dist/types/wallet-server/src/authorization/factorEvidence.d.ts +6 -6
  151. package/dist/types/wallet-server/src/core/ecdsaMaterialReadSnapshot.d.ts +1 -1
  152. package/dist/types/wallet-server/src/core/threeRouteRegistrationContracts.typecheck.d.ts +6 -6
  153. package/dist/types/wallet-server/src/router/auth/webAuthnCredentialCodecs.d.ts +1 -1
  154. package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceTargetCredentialProvider.d.ts +1 -1
  155. package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceTargetPlanner.d.ts +3 -3
  156. package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1WalletRegistrationRead.d.ts +2 -2
  157. package/dist/types/wallet-server/src/router/cloudflare/d1/registration/walletRegistrationEstablishedSessionIssuer.d.ts +2 -2
  158. package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/authorizationSnapshotLayout.d.ts +1 -1
  159. package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletRelocationOwner.d.ts +9 -9
  160. package/dist/types/wallet-server/src/router/cloudflare/signingLanes/cloudflareOrdinaryInactiveSignerMaterialReservation.d.ts +6 -6
  161. package/dist/types/wallet-server/src/router/domains/signingOperations/signingPrepareSession.d.ts +2 -2
  162. package/dist/types/wallet-server/src/router/domains/walletRegistration/walletRegistrationSetupPayload.d.ts +1 -1
  163. package/dist/types/wallet-server/src/router/domains/walletUnlock/walletUnlockRequestedCapabilitiesValidation.d.ts +3 -3
  164. package/dist/types/wallet-server/src/router/framework/apiCredentialPorts.d.ts +1 -1
  165. package/dist/types/wallet-server/src/router/framework/routeAuthPolicy.d.ts +2 -2
  166. package/dist/types/wallet-server/src/router/framework/routeExecutionContext.d.ts +1 -1
  167. package/dist/types/wallet-server/src/router/transport/fetch/routes/deviceLinkingOwnerAuthorization.d.ts +1 -1
  168. package/migrations/d1-signer/0082_wallet_signature_completions.sql +39 -0
  169. package/package.json +4 -5
@@ -2,6 +2,7 @@ import { emailOtpAuthStateRecord, parseEmailOtpAuthStateRow, parseEmailOtpWallet
2
2
  import { emailOtpAuthStateRows, emailOtpWalletEnrollmentRows } from "../../../../core/emailOtpD1Statements.js";
3
3
  //#region src/router/cloudflare/d1/emailOtp/d1EmailOtpEnrollmentStore.ts
4
4
  var CloudflareD1EmailOtpEnrollmentStore = class {
5
+ prepare;
5
6
  constructor(input) {
6
7
  this.prepare = input.prepare;
7
8
  }
@@ -2,6 +2,7 @@ import { parseEmailOtpGrantRow } from "./d1EmailOtpRecords.js";
2
2
  import { emailOtpGrantRows } from "../../../../core/emailOtpD1Statements.js";
3
3
  //#region src/router/cloudflare/d1/emailOtp/d1EmailOtpGrantStore.ts
4
4
  var CloudflareD1EmailOtpGrantStore = class {
5
+ prepare;
5
6
  constructor(input) {
6
7
  this.prepare = input.prepare;
7
8
  }
@@ -73,6 +73,10 @@ function emailOtpEnrollmentTenantMismatch() {
73
73
  return failure("tenant_scope_mismatch", "Email OTP enrollment does not match the requested orgId");
74
74
  }
75
75
  var CloudflareD1EmailOtpRecoveryService = class {
76
+ emailOtpChallenges;
77
+ emailOtpEnrollments;
78
+ emailOtpGrants;
79
+ emailOtpRateLimits;
76
80
  constructor(input) {
77
81
  this.emailOtpChallenges = input.emailOtpChallenges;
78
82
  this.emailOtpEnrollments = input.emailOtpEnrollments;
@@ -15,6 +15,8 @@ function parseEmailOtpEnrollmentMaterialBoundaryInput(value) {
15
15
  };
16
16
  }
17
17
  var CloudflareD1EmailOtpRegistrationEnrollmentFinalizer = class {
18
+ emailOtpEnrollments;
19
+ googleEmailOtpSessions;
18
20
  constructor(input) {
19
21
  this.emailOtpEnrollments = input.emailOtpEnrollments;
20
22
  this.googleEmailOtpSessions = input.googleEmailOtpSessions;
@@ -13,6 +13,7 @@ const removeEmailOtpServerSealOperation = {
13
13
  failureMessage: "Failed to remove Email OTP server seal"
14
14
  };
15
15
  var CloudflareD1EmailOtpServerSealRuntime = class {
16
+ cipherResult;
16
17
  constructor(config) {
17
18
  this.config = config;
18
19
  this.cipherResult = this.createCipher();
@@ -7,6 +7,9 @@ import { emailOtpRegistrationAttemptRows } from "../../../../core/emailOtpD1Stat
7
7
  import { abandonedGoogleEmailOtpRegistrationAttemptRecord, parseGoogleEmailOtpRegistrationAttemptRow } from "./d1GoogleEmailOtpRegistrationRecords.js";
8
8
  //#region src/router/cloudflare/d1/emailOtp/d1GoogleEmailOtpRegistrationAttemptStore.ts
9
9
  var CloudflareD1GoogleEmailOtpRegistrationAttemptStore = class {
10
+ prepare;
11
+ orgId;
12
+ batch;
10
13
  constructor(input) {
11
14
  this.prepare = input.prepare;
12
15
  this.orgId = input.orgId;
@@ -9,6 +9,12 @@ import { abandonedGoogleEmailOtpRegistrationAttemptRecord, expiredGoogleEmailOtp
9
9
  import { googleEmailOtpStaleIdentityMapping, hasDifferentWalletIdentitySubject } from "../identity/d1IdentityRecords.js";
10
10
  //#region src/router/cloudflare/d1/emailOtp/d1GoogleEmailOtpSessionResolver.ts
11
11
  var CloudflareD1GoogleEmailOtpSessionResolver = class {
12
+ emailOtpEnrollments;
13
+ emailOtpRateLimits;
14
+ identityStore;
15
+ linkIdentity;
16
+ production;
17
+ registrationAttempts;
12
18
  constructor(input) {
13
19
  this.emailOtpEnrollments = input.emailOtpEnrollments;
14
20
  this.emailOtpRateLimits = input.emailOtpRateLimits;
@@ -5,6 +5,7 @@ function errorMessage(error) {
5
5
  return error instanceof Error ? error.message : String(error || "");
6
6
  }
7
7
  var CloudflareD1IdentityService = class {
8
+ identityStore;
8
9
  constructor(input) {
9
10
  this.identityStore = input.identityStore;
10
11
  }
@@ -41,10 +41,8 @@ function parseGoogleJwks(input) {
41
41
  return keysByKid.size > 0 ? keysByKid : null;
42
42
  }
43
43
  var CloudflareD1OidcJwksCache = class {
44
- constructor() {
45
- this.googleJwksCache = null;
46
- this.googleJwksFetchPromise = null;
47
- }
44
+ googleJwksCache = null;
45
+ googleJwksFetchPromise = null;
48
46
  async getGoogleJwks() {
49
47
  const nowMs = Date.now();
50
48
  if (this.googleJwksCache && nowMs < this.googleJwksCache.expiresAtMs) return this.googleJwksCache;
@@ -7,6 +7,10 @@ function errorMessage(error) {
7
7
  return error instanceof Error ? error.message : String(error || "");
8
8
  }
9
9
  var CloudflareD1OidcVerificationService = class {
10
+ googleOidcClientId;
11
+ githubOAuth;
12
+ identityStore;
13
+ linkIdentity;
10
14
  constructor(input) {
11
15
  this.googleOidcClientId = input.googleOidcClientId;
12
16
  this.githubOAuth = input.githubOAuth;
@@ -134,6 +134,10 @@ function passkeyCustodyEnvelopeLocatorOf(envelope) {
134
134
  return envelopeLocator(envelope);
135
135
  }
136
136
  var CloudflareD1PasskeyCustodyEnvelopeStore = class {
137
+ records;
138
+ activityRecords;
139
+ database;
140
+ scope;
137
141
  constructor(options) {
138
142
  this.database = options.database;
139
143
  this.scope = options.scope;
@@ -125,6 +125,13 @@ function isRecoveryCodeLocatorCollision(error) {
125
125
  return message.includes("wallet_recovery_code_locators") && /unique|constraint/i.test(message);
126
126
  }
127
127
  var CloudflareD1WalletCustodyCommitStore = class {
128
+ recoveryRouting;
129
+ credentialClaims;
130
+ database;
131
+ scope;
132
+ records;
133
+ walletAuthMethodStore;
134
+ walletAuthorityStore;
128
135
  constructor(options) {
129
136
  this.credentialClaims = options.credentialClaims;
130
137
  this.recoveryRouting = options.recoveryRouting;
@@ -11,6 +11,7 @@ function encodeAttempt(record) {
11
11
  * challenge binding do.
12
12
  */
13
13
  var CloudflareD1WalletRecoveryGoogleEmailOtpAttemptStore = class {
14
+ records;
14
15
  constructor(input) {
15
16
  this.records = createCloudflareD1VersionedJsonRecordStore({
16
17
  database: input.database,
@@ -19,6 +19,14 @@ import { buildConsumedRecoverySet, buildRecoveredWalletAuthority, parseRecoveryA
19
19
  * and factor unsealing stay in their existing services.
20
20
  */
21
21
  var CloudflareD1WalletRecoveryGoogleEmailOtpService = class {
22
+ attempts;
23
+ google;
24
+ issuer;
25
+ verifier;
26
+ enrollments;
27
+ serverSeal;
28
+ orgId;
29
+ nowMs;
22
30
  constructor(input) {
23
31
  this.attempts = input.attempts;
24
32
  this.google = input.google;
@@ -27,6 +27,9 @@ var D1RegistrationCeremonyRecordConflictError = class extends Error {
27
27
  }
28
28
  };
29
29
  var D1RegistrationCeremonyRecordStore = class {
30
+ database;
31
+ tenantScope;
32
+ keyPrefix;
30
33
  constructor(options) {
31
34
  if (!isD1DatabaseLike(options.database)) throw new Error("Registration ceremony D1 database is required");
32
35
  this.database = options.database;
@@ -6,6 +6,7 @@ import { parseD1StoredAddAuthMethodIntent, parseD1StoredAddSignerIntent, parseD1
6
6
  import { retryTransientD1 } from "../../../../storage/d1Retry.js";
7
7
  //#region src/router/cloudflare/d1/registration/d1RegistrationCeremonyStore.ts
8
8
  var CloudflareD1RegistrationCeremonyIntentStore = class {
9
+ storage;
9
10
  constructor(input) {
10
11
  this.input = input;
11
12
  this.storage = new D1RegistrationCeremonyRecordStore(input);
@@ -12,6 +12,7 @@ function errorMessage(error) {
12
12
  return error instanceof Error ? error.message : String(error || "");
13
13
  }
14
14
  var CloudflareD1RegistrationIntentService = class {
15
+ getRegistrationCeremonyIntentStore;
15
16
  constructor(input) {
16
17
  this.getRegistrationCeremonyIntentStore = input.getRegistrationCeremonyIntentStore;
17
18
  }
@@ -1,10 +1,10 @@
1
1
  //#region src/router/cloudflare/d1/registration/d1RegistrationSessionTransaction.ts
2
2
  /** The wallet's version checks and the session's winner read share one batch. */
3
3
  var D1RegistrationSessionTransaction = class {
4
+ sessionResults = null;
4
5
  constructor(database, commitWallet) {
5
6
  this.database = database;
6
7
  this.commitWallet = commitWallet;
7
- this.sessionResults = null;
8
8
  }
9
9
  async execute(sessionStatements) {
10
10
  await this.commitWallet(this.commit.bind(this, sessionStatements));
@@ -3,6 +3,8 @@ import { D1WalletCeremonyActivity } from "../ed25519Yao/d1WalletCeremonyActivity
3
3
  import { lifecycleWriteFenceStatements } from "../ed25519Yao/d1Ed25519YaoStateWriteFence.js";
4
4
  //#region src/router/cloudflare/d1/registration/d1WalletOperationStore.ts
5
5
  var D1WalletOperationStore = class {
6
+ records;
7
+ activity;
6
8
  constructor(options, walletId) {
7
9
  this.options = options;
8
10
  this.walletId = walletId;
@@ -239,6 +239,9 @@ function heldClaimCovers(held, authority) {
239
239
  return held !== null && held.walletId === authority.walletId && held.rpId === authority.rpId && held.credentialIdB64u === authority.credentialIdB64u;
240
240
  }
241
241
  var CloudflareD1WalletRegistrationCommitStore = class {
242
+ database;
243
+ scope;
244
+ credentialClaims;
242
245
  constructor(input) {
243
246
  this.credentialClaims = input.credentialClaims;
244
247
  this.database = input.database;
@@ -856,6 +856,30 @@ function mergeRouterServerTiming(target, header) {
856
856
  }
857
857
  }
858
858
  var CloudflareD1WalletRegistrationService = class {
859
+ executionAuthority;
860
+ registrationAuthority;
861
+ authorizationService;
862
+ registrationSessionStore;
863
+ authorizationTenantId;
864
+ createSponsoredNamedNearAccount;
865
+ emailOtpRegistrationEnrollmentFinalizer;
866
+ getRegistrationCeremonyIntentStore;
867
+ getEd25519YaoProductRegistration;
868
+ ecdsaStrictRegistration;
869
+ tenantRootCustodyLineage;
870
+ getWalletStore;
871
+ /** The single Gateway operation row for activate-with-finalize. */
872
+ activateSideEffects;
873
+ /** Registration admission and state loaded in one database snapshot. */
874
+ registrationRead;
875
+ walletRegistrationCommitStore;
876
+ /** Where a ceremony's sealed custody seed and its recovery set land. */
877
+ walletCustodyCommitStore;
878
+ walletAuthMethods;
879
+ getLinkedDeviceEd25519AuthorityReader;
880
+ yaoLifecycleDecisions;
881
+ home;
882
+ startRegistrationWallets;
859
883
  constructor(input) {
860
884
  this.home = input.home;
861
885
  this.executionAuthority = input.executionAuthority;
@@ -6,6 +6,9 @@ import { abusePrincipalKey, runtimePolicyScopeKey } from "../../../domains/signi
6
6
  //#region src/router/cloudflare/d1/signingAdmission/d1RouterAbNormalSigningAdmissionStore.ts
7
7
  const ROUTER_AB_NORMAL_SIGNING_ADMISSION_TABLE = "router_ab_normal_signing_admission_records";
8
8
  var CloudflareD1RouterAbNormalSigningAdmissionStore = class {
9
+ database;
10
+ storageNamespace;
11
+ now;
9
12
  constructor(options) {
10
13
  if (!isD1DatabaseLike(options.database)) throw new Error("Router A/B normal-signing admission D1 database is required");
11
14
  this.database = options.database;
@@ -6,6 +6,7 @@ import { containsControlCharacter } from "../../durableObjects/versionedJsonReco
6
6
  const TABLE_NAME = "router_ab_yao_versioned_json_records";
7
7
  const CAS_GUARD_SQL = D1_BATCH_CAS_GUARD_SQL;
8
8
  var CloudflareD1VersionedJsonRecordStoreError = class extends Error {
9
+ code;
9
10
  constructor(code, message) {
10
11
  super(message);
11
12
  this.name = "CloudflareD1VersionedJsonRecordStoreError";
@@ -13,6 +14,11 @@ var CloudflareD1VersionedJsonRecordStoreError = class extends Error {
13
14
  }
14
15
  };
15
16
  var CloudflareD1VersionedJsonRecordStore = class {
17
+ database;
18
+ scope;
19
+ encode;
20
+ parse;
21
+ keyPrefix;
16
22
  constructor(options) {
17
23
  if (!isD1DatabaseLike(options.database)) throw new Error("Cloudflare D1 versioned JSON database is required");
18
24
  this.database = options.database;
@@ -372,6 +372,17 @@ function sameEcdsaSignerActivation(left, right) {
372
372
  return left.signer.walletId === right.signer.walletId && left.signer.walletKeyId === right.signer.walletKeyId && left.signer.thresholdPublicKey33B64u === right.signer.thresholdPublicKey33B64u && left.signer.evmAddress === right.signer.evmAddress && mpcMaterialActivationRefsEqual(left.materialActivation, right.materialActivation);
373
373
  }
374
374
  var CloudflareD1WalletAddSignerService = class {
375
+ executionAuthority;
376
+ getRegistrationCeremonyIntentStore;
377
+ getEd25519YaoProductRegistration;
378
+ ecdsaStrictRegistration;
379
+ tenantRootCustodyLineage;
380
+ getWalletStore;
381
+ walletAuthMethods;
382
+ passkeyCustodyEnvelopes;
383
+ startSideEffects;
384
+ finalizeSideEffects;
385
+ yaoLifecycleDecisions;
375
386
  constructor(input) {
376
387
  this.executionAuthority = input.executionAuthority;
377
388
  this.getRegistrationCeremonyIntentStore = input.getRegistrationCeremonyIntentStore;
@@ -17,6 +17,8 @@ async function computeWalletAuthMethodRevocationProofDigestV1(proof) {
17
17
  * row is inserted in the batch that revokes the method, and never changes.
18
18
  */
19
19
  var D1WalletAuthMethodRevocationReplayStoreV1 = class {
20
+ database;
21
+ scope;
20
22
  constructor(input) {
21
23
  this.database = input.database;
22
24
  this.scope = input.scope;
@@ -247,6 +247,22 @@ async function buildAddedPasskeyCredentialBinding(input) {
247
247
  return binding;
248
248
  }
249
249
  var CloudflareD1WalletAuthMethodService = class {
250
+ emailOtpChallengeVerifier;
251
+ emailOtpEnrollmentChallengeIssuer;
252
+ emailOtpSourceChallengeIssuer;
253
+ emailOtpEnrollmentFinalizer;
254
+ getRegistrationCeremonyIntentStore;
255
+ getWalletAuthMethodStore;
256
+ googleEmailOtpRegistrationAttempts;
257
+ passkeyCustodyEnvelopes;
258
+ sha256Bytes;
259
+ webAuthnStore;
260
+ listWalletEd25519Signers;
261
+ walletAuthorityStore;
262
+ orgId;
263
+ verifyWebAuthnAuthenticationLite;
264
+ prepareOwnerWalletSessionRevocation;
265
+ revocationReplays;
250
266
  constructor(input) {
251
267
  this.emailOtpChallengeVerifier = input.emailOtpChallengeVerifier;
252
268
  this.emailOtpEnrollmentChallengeIssuer = input.emailOtpEnrollmentChallengeIssuer;
@@ -275,13 +275,15 @@ function prepareD1WalletAuthorityExtensionCasGuard(database) {
275
275
  `);
276
276
  }
277
277
  var WalletAuthorityCommitConflictError = class extends Error {
278
+ kind = "wallet_authority_commit_conflict";
278
279
  constructor(authorityId) {
279
280
  super(`wallet authority ${String(authorityId)} commit conflicts with an existing record`);
280
- this.kind = "wallet_authority_commit_conflict";
281
281
  this.name = "WalletAuthorityCommitConflictError";
282
282
  }
283
283
  };
284
284
  var D1WalletAuthorityStore = class {
285
+ database;
286
+ scope;
285
287
  constructor(input) {
286
288
  this.database = input.database;
287
289
  this.scope = normalizeScope(input.scope ?? {
@@ -14,6 +14,10 @@ function errorMessage(error) {
14
14
  return error instanceof Error ? error.message : String(error || "");
15
15
  }
16
16
  var CloudflareD1WebAuthnAuthService = class {
17
+ lifecycleRouting;
18
+ webAuthnStore;
19
+ walletManifestSource;
20
+ walletAuthMethodStore;
17
21
  constructor(input) {
18
22
  this.lifecycleRouting = input.lifecycleRouting;
19
23
  this.webAuthnStore = input.webAuthnStore;
@@ -18,8 +18,11 @@ function prepareD1WebAuthnAuthenticatorInsertStatement(input) {
18
18
  return prepareAuthenticatorStatement(INSERT_WEBAUTHN_AUTHENTICATOR_SQL, input);
19
19
  }
20
20
  var CloudflareD1WebAuthnStore = class {
21
+ syncChallenges;
22
+ database;
23
+ scope;
24
+ credentialClaims;
21
25
  constructor(input) {
22
- this.prepare = (sql, values) => prepareD1TenantStatement(this.database, this.scope, sql, values);
23
26
  this.credentialClaims = input.credentialClaims;
24
27
  this.syncChallenges = input.syncChallenges;
25
28
  this.database = input.database;
@@ -179,6 +182,7 @@ var CloudflareD1WebAuthnStore = class {
179
182
  async consumeChallenge(input) {
180
183
  return await webAuthnChallengeRows.consume(this.prepare, input.challengeId, input.challengeKind, Date.now()).first();
181
184
  }
185
+ prepare = (sql, values) => prepareD1TenantStatement(this.database, this.scope, sql, values);
182
186
  };
183
187
  //#endregion
184
188
  export { CloudflareD1WebAuthnStore, prepareD1WebAuthnAuthenticatorInsertStatement, prepareD1WebAuthnAuthenticatorPutStatement };
@@ -2,6 +2,7 @@ import { normalizeOptionalTrimmedString } from "../../../shared-ts/src/utils/nor
2
2
  import { isPlainObject } from "../../../shared-ts/src/utils/validation.js";
3
3
  //#region src/router/cloudflare/durableObjects/versionedJsonRecordStore.ts
4
4
  var CloudflareVersionedJsonRecordStoreError = class extends Error {
5
+ code;
5
6
  constructor(code, message) {
6
7
  super(message);
7
8
  this.name = "CloudflareVersionedJsonRecordStoreError";
@@ -9,6 +10,11 @@ var CloudflareVersionedJsonRecordStoreError = class extends Error {
9
10
  }
10
11
  };
11
12
  var CloudflareDurableObjectVersionedJsonRecordStore = class {
13
+ namespace;
14
+ objectNameForKey;
15
+ encode;
16
+ parse;
17
+ keyPrefix;
12
18
  constructor(options) {
13
19
  if (!isDurableObjectNamespaceLike(options.namespace)) throw new Error("Cloudflare Durable Object namespace is required");
14
20
  if (typeof options.objectNameForKey !== "function") throw new Error("Cloudflare versioned JSON object-name resolver is required");
@@ -4,6 +4,12 @@ import { SessionService } from "../../../core/SessionService.js";
4
4
  import { CrossSiteSessionCookieAdapter, encodeSessionJsonSegment, normalizeSessionString, normalizeSessionTtlSeconds, parseSessionJwt, requireNormalizedSessionString, sessionJwtTimeClaims, toSessionArrayBufferCopy } from "./sessionAdapterRuntime.js";
5
5
  //#region src/router/cloudflare/runtime/ed25519SessionAdapter.ts
6
6
  var Ed25519SessionJwtAdapter = class {
7
+ issuer;
8
+ audience;
9
+ keyId;
10
+ ttlSeconds;
11
+ signingKey;
12
+ verifyingKey;
7
13
  constructor(options) {
8
14
  this.options = options;
9
15
  this.issuer = requireNormalizedSessionString(options.issuer, "Ed25519 session issuer");