@seams/wallet-server 0.5.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 (1075) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +8 -0
  3. package/artifact-manifest.json +464 -0
  4. package/cloudflare-router-ab/build/deriver-a/index.js +2 -0
  5. package/cloudflare-router-ab/build/deriver-a/index_bg.wasm +0 -0
  6. package/cloudflare-router-ab/build/deriver-a/package.json +16 -0
  7. package/cloudflare-router-ab/build/deriver-a/worker/shim.mjs +4 -0
  8. package/cloudflare-router-ab/build/deriver-b/index.js +2 -0
  9. package/cloudflare-router-ab/build/deriver-b/index_bg.wasm +0 -0
  10. package/cloudflare-router-ab/build/deriver-b/package.json +16 -0
  11. package/cloudflare-router-ab/build/deriver-b/worker/shim.mjs +4 -0
  12. package/cloudflare-router-ab/build/local-tools/darwin-arm64/router_ab_local_init +0 -0
  13. package/cloudflare-router-ab/build/router/index.js +2 -0
  14. package/cloudflare-router-ab/build/router/index_bg.wasm +0 -0
  15. package/cloudflare-router-ab/build/router/package.json +16 -0
  16. package/cloudflare-router-ab/build/router/worker/shim.mjs +4 -0
  17. package/cloudflare-router-ab/build/signing-worker/index.js +2 -0
  18. package/cloudflare-router-ab/build/signing-worker/index_bg.wasm +0 -0
  19. package/cloudflare-router-ab/build/signing-worker/package.json +16 -0
  20. package/cloudflare-router-ab/build/signing-worker/worker/shim.mjs +4 -0
  21. package/cloudflare-router-ab/build/tenant-root-control-plane/index.js +2 -0
  22. package/cloudflare-router-ab/build/tenant-root-control-plane/index_bg.wasm +0 -0
  23. package/cloudflare-router-ab/build/tenant-root-control-plane/package.json +16 -0
  24. package/cloudflare-router-ab/build/tenant-root-control-plane/worker/shim.mjs +4 -0
  25. package/cloudflare-router-ab/env/tenant-root-control-plane.local.example +6 -0
  26. package/cloudflare-router-ab/migrations/deriver-a/0001_role_private_storage.sql +14 -0
  27. package/cloudflare-router-ab/migrations/deriver-a/0002_tenant_root_role_shares.sql +32 -0
  28. package/cloudflare-router-ab/migrations/deriver-a/0003_tenant_root_command_replays.sql +76 -0
  29. package/cloudflare-router-ab/migrations/deriver-a/0004_tenant_root_creation_admission.sql +7 -0
  30. package/cloudflare-router-ab/migrations/deriver-a/0005_tenant_root_refresh_state.sql +15 -0
  31. package/cloudflare-router-ab/migrations/deriver-a/0006_tenant_root_restore_import_keys.sql +119 -0
  32. package/cloudflare-router-ab/migrations/deriver-a/0007_tenant_root_restore_refresh_attempts.sql +103 -0
  33. package/cloudflare-router-ab/migrations/deriver-a/0008_tenant_root_restore_promotion.sql +40 -0
  34. package/cloudflare-router-ab/migrations/deriver-a/0009_tenant_root_restore_preactivation_cleanup.sql +8 -0
  35. package/cloudflare-router-ab/migrations/deriver-a/0010_tenant_root_recovery_attempts.sql +26 -0
  36. package/cloudflare-router-ab/migrations/deriver-a/0011_tenant_root_source_retirement.sql +100 -0
  37. package/cloudflare-router-ab/migrations/deriver-b/0001_role_private_storage.sql +14 -0
  38. package/cloudflare-router-ab/migrations/deriver-b/0002_tenant_root_role_shares.sql +32 -0
  39. package/cloudflare-router-ab/migrations/deriver-b/0003_tenant_root_command_replays.sql +76 -0
  40. package/cloudflare-router-ab/migrations/deriver-b/0004_tenant_root_creation_admission.sql +7 -0
  41. package/cloudflare-router-ab/migrations/deriver-b/0005_tenant_root_refresh_state.sql +15 -0
  42. package/cloudflare-router-ab/migrations/deriver-b/0006_tenant_root_restore_import_keys.sql +119 -0
  43. package/cloudflare-router-ab/migrations/deriver-b/0007_tenant_root_restore_refresh_attempts.sql +103 -0
  44. package/cloudflare-router-ab/migrations/deriver-b/0008_tenant_root_restore_promotion.sql +40 -0
  45. package/cloudflare-router-ab/migrations/deriver-b/0009_tenant_root_restore_preactivation_cleanup.sql +8 -0
  46. package/cloudflare-router-ab/migrations/deriver-b/0010_tenant_root_recovery_attempts.sql +26 -0
  47. package/cloudflare-router-ab/migrations/deriver-b/0011_tenant_root_source_retirement.sql +100 -0
  48. package/cloudflare-router-ab/migrations/signing-worker/0001_private_storage.sql +67 -0
  49. package/cloudflare-router-ab/migrations/signing-worker/0002_activation_revocation_fences.sql +3 -0
  50. package/cloudflare-router-ab/scripts/bootstrap-local-tenant-root.mjs +182 -0
  51. package/cloudflare-router-ab/scripts/initialize-local-wallet.mjs +17 -0
  52. package/cloudflare-router-ab/scripts/local-key-material.mjs +29 -0
  53. package/cloudflare-router-ab/scripts/prepare-local-runtime-config.mjs +1110 -0
  54. package/cloudflare-router-ab/scripts/start-local-role-workers.mjs +333 -0
  55. package/cloudflare-router-ab/scripts/start-local-wallet-system.mjs +427 -0
  56. package/cloudflare-router-ab/wrangler.deriver-a.toml +123 -0
  57. package/cloudflare-router-ab/wrangler.deriver-b.toml +123 -0
  58. package/cloudflare-router-ab/wrangler.router.toml +126 -0
  59. package/cloudflare-router-ab/wrangler.signing-worker.toml +86 -0
  60. package/cloudflare-router-ab/wrangler.tenant-root-control-plane.toml +56 -0
  61. package/dist/esm/authorization/capabilityPolicy.js +96 -0
  62. package/dist/esm/authorization/domain.js +434 -0
  63. package/dist/esm/authorization/factorEvidence.js +405 -0
  64. package/dist/esm/authorization/service.js +319 -0
  65. package/dist/esm/authorization/vaultProxyUse.js +295 -0
  66. package/dist/esm/cloud-host.js +126 -0
  67. package/dist/esm/core/AuthService.js +2 -0
  68. package/dist/esm/core/EmailOtpRecords.js +361 -0
  69. package/dist/esm/core/EmailOtpStores.js +1460 -0
  70. package/dist/esm/core/IdentityStore.js +617 -0
  71. package/dist/esm/core/NearPublicKeyStore.js +242 -0
  72. package/dist/esm/core/RegistrationCeremonyStore.js +2101 -0
  73. package/dist/esm/core/SessionService.js +255 -0
  74. package/dist/esm/core/ThresholdService/config.js +111 -0
  75. package/dist/esm/core/ThresholdService/ecdsaClientRootProof.js +27 -0
  76. package/dist/esm/core/ThresholdService/evmCryptoWasm.js +167 -0
  77. package/dist/esm/core/ThresholdService/index.js +4 -0
  78. package/dist/esm/core/ThresholdService/kv.js +368 -0
  79. package/dist/esm/core/ThresholdService/routerAb/ecdsaDerivationPoolFillHandlers.js +360 -0
  80. package/dist/esm/core/ThresholdService/routerAb/ecdsaDerivationPoolFillLiveSession.js +282 -0
  81. package/dist/esm/core/ThresholdService/routerAb/ecdsaDerivationPresignBridge.js +272 -0
  82. package/dist/esm/core/ThresholdService/routerAb/internalServiceHttp.js +57 -0
  83. package/dist/esm/core/ThresholdService/routerAbEcdsaSigningWorkerWasm.js +115 -0
  84. package/dist/esm/core/ThresholdService/routerAbNormalSigningPolicy.js +31 -0
  85. package/dist/esm/core/ThresholdService/secureRandomId.js +9 -0
  86. package/dist/esm/core/ThresholdService/stores/CloudflareDurableObjectStore.js +603 -0
  87. package/dist/esm/core/ThresholdService/stores/EcdsaSigningStore.js +422 -0
  88. package/dist/esm/core/ThresholdService/stores/KeyStore.js +140 -0
  89. package/dist/esm/core/ThresholdService/stores/SessionStore.js +437 -0
  90. package/dist/esm/core/ThresholdService/stores/StoreConfig.js +13 -0
  91. package/dist/esm/core/ThresholdService/stores/WalletSessionStore.js +722 -0
  92. package/dist/esm/core/ThresholdService/validation.js +718 -0
  93. package/dist/esm/core/WalletAuthMethodStore.js +180 -0
  94. package/dist/esm/core/WalletStore.js +495 -0
  95. package/dist/esm/core/WebAuthnAuthenticatorStore.js +485 -0
  96. package/dist/esm/core/WebAuthnCredentialBindingStore.js +594 -0
  97. package/dist/esm/core/WebAuthnLoginChallengeStore.js +432 -0
  98. package/dist/esm/core/WebAuthnSyncChallengeStore.js +434 -0
  99. package/dist/esm/core/authService/AuthService.js +611 -0
  100. package/dist/esm/core/authService/bytes.js +22 -0
  101. package/dist/esm/core/authService/configValues.js +15 -0
  102. package/dist/esm/core/authService/emailOtpChallengeOperations.js +126 -0
  103. package/dist/esm/core/authService/emailOtpChallengeProof.js +214 -0
  104. package/dist/esm/core/authService/emailOtpChallengeVerification.js +335 -0
  105. package/dist/esm/core/authService/emailOtpChallenges.js +260 -0
  106. package/dist/esm/core/authService/emailOtpConfig.js +231 -0
  107. package/dist/esm/core/authService/emailOtpDelivery.js +169 -0
  108. package/dist/esm/core/authService/emailOtpEnrollment.js +141 -0
  109. package/dist/esm/core/authService/emailOtpGrant.js +74 -0
  110. package/dist/esm/core/authService/emailOtpRegistrationEnrollment.js +322 -0
  111. package/dist/esm/core/authService/emailOtpSeal.js +78 -0
  112. package/dist/esm/core/authService/emailOtpUnlock.js +264 -0
  113. package/dist/esm/core/authService/githubOAuth.js +140 -0
  114. package/dist/esm/core/authService/googleEmailOtpErrors.js +6 -0
  115. package/dist/esm/core/authService/googleEmailOtpOperations.js +141 -0
  116. package/dist/esm/core/authService/googleEmailOtpRegistration.js +674 -0
  117. package/dist/esm/core/authService/identity.js +57 -0
  118. package/dist/esm/core/authService/identityOperations.js +32 -0
  119. package/dist/esm/core/authService/nearAccountOperations.js +229 -0
  120. package/dist/esm/core/authService/nearPrivateKeySigning.js +110 -0
  121. package/dist/esm/core/authService/nearPublicKeyMetadata.js +127 -0
  122. package/dist/esm/core/authService/nearTransactions.js +139 -0
  123. package/dist/esm/core/authService/oidcVerification.js +262 -0
  124. package/dist/esm/core/authService/portableCrypto.js +19 -0
  125. package/dist/esm/core/authService/rateLimits.js +117 -0
  126. package/dist/esm/core/authService/record.js +8 -0
  127. package/dist/esm/core/authService/registrationThresholdHelpers.js +131 -0
  128. package/dist/esm/core/authService/runtime.js +45 -0
  129. package/dist/esm/core/authService/signerWasmUrls.js +20 -0
  130. package/dist/esm/core/authService/storeRegistry.js +113 -0
  131. package/dist/esm/core/authService/thresholdEcdsaKeyInventory.js +146 -0
  132. package/dist/esm/core/authService/thresholdRuntimePolicy.js +19 -0
  133. package/dist/esm/core/authService/thresholdStoreSummary.js +32 -0
  134. package/dist/esm/core/authService/walletRegistrationPlanning.js +49 -0
  135. package/dist/esm/core/authService/wasm.js +78 -0
  136. package/dist/esm/core/authService/webauthn.js +746 -0
  137. package/dist/esm/core/authService/webauthnAuthority.js +17 -0
  138. package/dist/esm/core/authService/webauthnOidcHelpers.js +91 -0
  139. package/dist/esm/core/authService/webauthnWalletBinding.js +157 -0
  140. package/dist/esm/core/config.js +110 -0
  141. package/dist/esm/core/d1IdentityStore.js +340 -0
  142. package/dist/esm/core/d1WalletAuthMethodStore.js +768 -0
  143. package/dist/esm/core/d1WalletStore.js +724 -0
  144. package/dist/esm/core/defaultConfigsServer.js +9 -0
  145. package/dist/esm/core/deviceLinking/index.js +5 -0
  146. package/dist/esm/core/deviceLinking/linkedDeviceEd25519ExportRoot.js +0 -0
  147. package/dist/esm/core/deviceLinking/linkedDeviceEmailOtpGrant.js +211 -0
  148. package/dist/esm/core/deviceLinking/linkedDeviceManagement.js +279 -0
  149. package/dist/esm/core/deviceLinking/linkedDeviceSession.js +1419 -0
  150. package/dist/esm/core/deviceLinking/requestProof.js +172 -0
  151. package/dist/esm/core/errors.js +54 -0
  152. package/dist/esm/core/hostedAccountIds.js +225 -0
  153. package/dist/esm/core/keyMaterialBrands.js +58 -0
  154. package/dist/esm/core/logger.js +39 -0
  155. package/dist/esm/core/nearKeys.js +20 -0
  156. package/dist/esm/core/nearRelayerAccountProvisioning.js +713 -0
  157. package/dist/esm/core/nearSignerWasmRuntime.js +87 -0
  158. package/dist/esm/core/registrationContracts.js +2 -0
  159. package/dist/esm/core/routerAbSigning/RouterAbEcdsaPresignRuntime.js +88 -0
  160. package/dist/esm/core/routerAbSigning/RouterAbNormalSigningRuntime.js +101 -0
  161. package/dist/esm/core/routerAbSigning/createCloudflareDurableObjectRouterAbSigningRuntimes.js +39 -0
  162. package/dist/esm/core/routerAbSigning/createRouterAbSigningRuntimes.js +91 -0
  163. package/dist/esm/core/rpcClients/near/NearClient.js +389 -0
  164. package/dist/esm/core/sessionValidation.js +0 -0
  165. package/dist/esm/core/signingLanes/LaneAggregateRevocationApplicationService.js +86 -0
  166. package/dist/esm/core/signingLanes/LaneEffectJournalStore.js +0 -0
  167. package/dist/esm/core/signingLanes/LaneEnrollmentActivation.js +324 -0
  168. package/dist/esm/core/signingLanes/LaneEnrollmentRevocation.js +173 -0
  169. package/dist/esm/core/signingLanes/LaneLifecycleApplicationService.js +200 -0
  170. package/dist/esm/core/signingLanes/LaneLifecycleStore.js +24 -0
  171. package/dist/esm/core/signingLanes/SigningLaneStore.js +0 -0
  172. package/dist/esm/core/signingLanes/WalletExecutionLaneProjection.js +296 -0
  173. package/dist/esm/core/signingLanes/WalletKeyStore.js +0 -0
  174. package/dist/esm/core/signingLanes/ecdsaServerRetirement.js +78 -0
  175. package/dist/esm/core/signingLanes/ed25519ServerRetirement.js +71 -0
  176. package/dist/esm/core/signingLanes/index.js +8 -0
  177. package/dist/esm/core/signingLanes/signingWorkerLaneMaterialIdentity.js +0 -0
  178. package/dist/esm/core/signingMaterial/ordinaryInactiveSignerMaterialReservation.js +305 -0
  179. package/dist/esm/core/threeRouteRegistrationContracts.js +5 -0
  180. package/dist/esm/core/thresholdEcdsaChainTarget.js +49 -0
  181. package/dist/esm/core/types.js +8 -0
  182. package/dist/esm/core/utils.js +14 -0
  183. package/dist/esm/delegateAction/index.js +136 -0
  184. package/dist/esm/hosted-wallet-gateway-worker.js +18 -0
  185. package/dist/esm/hosted-wallet-gateway.js +701 -0
  186. package/dist/esm/index.js +53 -0
  187. package/dist/esm/local-hosted-wallet-gateway-worker.js +23 -0
  188. package/dist/esm/node_modules/@near-js/types/lib/esm/provider/response.js +17 -0
  189. package/dist/esm/router/auth/authRequestValidation.js +264 -0
  190. package/dist/esm/router/auth/commonRouterUtils.js +305 -0
  191. package/dist/esm/router/auth/routerApiCredentialAuth.js +91 -0
  192. package/dist/esm/router/auth/routerApiKeyAuth.js +63 -0
  193. package/dist/esm/router/auth/walletSessionFailure.js +49 -0
  194. package/dist/esm/router/auth/webAuthnCredentialCodecs.js +107 -0
  195. package/dist/esm/router/cloudflare/d1/auth/d1RouterApiAuthBoundary.js +84 -0
  196. package/dist/esm/router/cloudflare/d1/auth/d1RouterApiAuthConfig.js +321 -0
  197. package/dist/esm/router/cloudflare/d1/auth/d1RouterApiAuthService.js +1581 -0
  198. package/dist/esm/router/cloudflare/d1/authorization/d1AuthorizationStore.js +1820 -0
  199. package/dist/esm/router/cloudflare/d1/authorization/d1VaultProxyStore.js +122 -0
  200. package/dist/esm/router/cloudflare/d1/authorization/walletSessionAuthorityProjection.js +119 -0
  201. package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceAuthorityInstallService.js +1831 -0
  202. package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceEd25519ExportRootStore.js +118 -0
  203. package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceEmailOtpGrantStore.js +81 -0
  204. package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceEmailOtpTargetFactor.js +539 -0
  205. package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceManagementService.js +92 -0
  206. package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceOwnerAuthorizationProvider.js +560 -0
  207. package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceRequestProofNonceStore.js +136 -0
  208. package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceRouteService.js +95 -0
  209. package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceSessionRecords.js +91 -0
  210. package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceSessionService.js +15 -0
  211. package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceSessionStore.js +732 -0
  212. package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceSourceContributionPreparationPlanner.js +195 -0
  213. package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceTargetAuthenticatorStore.js +100 -0
  214. package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceTargetCredentialProvider.js +867 -0
  215. package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceTargetPlanner.js +169 -0
  216. package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceVerifiedLinkBuilder.js +255 -0
  217. package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceVerifiedLinkSourceReader.js +128 -0
  218. package/dist/esm/router/cloudflare/d1/deviceLinking/index.js +15 -0
  219. package/dist/esm/router/cloudflare/d1/ed25519Yao/d1Ed25519YaoCapabilityPersistence.js +311 -0
  220. package/dist/esm/router/cloudflare/d1/ed25519Yao/d1Ed25519YaoProductRegistrationPartitionedStateStore.js +21 -0
  221. package/dist/esm/router/cloudflare/d1/ed25519Yao/d1Ed25519YaoWalletSigner.js +65 -0
  222. package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpChallengeIssuer.js +216 -0
  223. package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpChallengeService.js +326 -0
  224. package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpChallengeStore.js +346 -0
  225. package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpChallengeVerifier.js +495 -0
  226. package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpDeliveryRuntime.js +157 -0
  227. package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpEnrollmentStore.js +248 -0
  228. package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpGrantStore.js +66 -0
  229. package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpRateLimitStore.js +76 -0
  230. package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpRecords.js +539 -0
  231. package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpRecoveryService.js +404 -0
  232. package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpRegistrationEnrollmentFinalizer.js +200 -0
  233. package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpServerSealRuntime.js +84 -0
  234. package/dist/esm/router/cloudflare/d1/emailOtp/d1GoogleEmailOtpRegistrationAttemptStore.js +217 -0
  235. package/dist/esm/router/cloudflare/d1/emailOtp/d1GoogleEmailOtpRegistrationRecords.js +485 -0
  236. package/dist/esm/router/cloudflare/d1/emailOtp/d1GoogleEmailOtpSessionResolver.js +509 -0
  237. package/dist/esm/router/cloudflare/d1/identity/d1IdentityRecords.js +51 -0
  238. package/dist/esm/router/cloudflare/d1/identity/d1IdentityService.js +135 -0
  239. package/dist/esm/router/cloudflare/d1/near/d1NearPublicKeyStore.js +62 -0
  240. package/dist/esm/router/cloudflare/d1/oidc/d1OidcBoundary.js +272 -0
  241. package/dist/esm/router/cloudflare/d1/oidc/d1OidcVerificationService.js +132 -0
  242. package/dist/esm/router/cloudflare/d1/passkeyCustody/d1PasskeyCustodyEnvelopeStore.js +628 -0
  243. package/dist/esm/router/cloudflare/d1/passkeyCustody/d1PasskeyCustodyRouteService.js +871 -0
  244. package/dist/esm/router/cloudflare/d1/passkeyCustody/d1WalletCustodyCommitStore.js +823 -0
  245. package/dist/esm/router/cloudflare/d1/passkeyCustody/d1WalletRecoveryGoogleEmailOtpAttemptStore.js +38 -0
  246. package/dist/esm/router/cloudflare/d1/passkeyCustody/d1WalletRecoveryGoogleEmailOtpRecords.js +304 -0
  247. package/dist/esm/router/cloudflare/d1/passkeyCustody/d1WalletRecoveryGoogleEmailOtpService.js +793 -0
  248. package/dist/esm/router/cloudflare/d1/registration/d1EvmFamilyEcdsaRegistrationBranch.js +120 -0
  249. package/dist/esm/router/cloudflare/d1/registration/d1RegistrationCeremonyRecordStore.js +317 -0
  250. package/dist/esm/router/cloudflare/d1/registration/d1RegistrationCeremonyRecords.js +2084 -0
  251. package/dist/esm/router/cloudflare/d1/registration/d1RegistrationCeremonyStore.js +309 -0
  252. package/dist/esm/router/cloudflare/d1/registration/d1RegistrationIntentService.js +120 -0
  253. package/dist/esm/router/cloudflare/d1/registration/d1WalletRegistrationCommitStore.js +263 -0
  254. package/dist/esm/router/cloudflare/d1/registration/d1WalletRegistrationService.js +3887 -0
  255. package/dist/esm/router/cloudflare/d1/registration/d1WalletRegistrationSetup.js +182 -0
  256. package/dist/esm/router/cloudflare/d1/registration/walletRegistrationEstablishedSessionIssuer.js +399 -0
  257. package/dist/esm/router/cloudflare/d1/registration/walletRegistrationSessionCommitReceipt.js +486 -0
  258. package/dist/esm/router/cloudflare/d1/signingAdmission/d1RouterAbNormalSigningAdmissionStore.js +146 -0
  259. package/dist/esm/router/cloudflare/d1/signingLanes/d1EcdsaLanePrivateBindingResolver.js +10 -0
  260. package/dist/esm/router/cloudflare/d1/signingLanes/d1LaneAggregateRevocationApplicationService.js +22 -0
  261. package/dist/esm/router/cloudflare/d1/signingLanes/d1LaneEffectJournalStore.js +167 -0
  262. package/dist/esm/router/cloudflare/d1/signingLanes/d1LaneEnrollmentGateway.js +38 -0
  263. package/dist/esm/router/cloudflare/d1/signingLanes/d1LaneLifecycleApplicationService.js +20 -0
  264. package/dist/esm/router/cloudflare/d1/signingLanes/d1LaneLifecycleStore.js +1459 -0
  265. package/dist/esm/router/cloudflare/d1/signingLanes/d1LaneLockStore.js +114 -0
  266. package/dist/esm/router/cloudflare/d1/signingLanes/d1LaneProtocolCommitter.js +16 -0
  267. package/dist/esm/router/cloudflare/d1/signingLanes/d1LaneRecords.js +170 -0
  268. package/dist/esm/router/cloudflare/d1/signingLanes/index.js +10 -0
  269. package/dist/esm/router/cloudflare/d1/versionedJson/d1VersionedJsonRecordStore.js +412 -0
  270. package/dist/esm/router/cloudflare/d1/wallet/d1WalletAddSignerService.js +1396 -0
  271. package/dist/esm/router/cloudflare/d1/wallet/d1WalletAuthMethodBoundary.js +285 -0
  272. package/dist/esm/router/cloudflare/d1/wallet/d1WalletAuthMethodService.js +2018 -0
  273. package/dist/esm/router/cloudflare/d1/wallet/d1WalletAuthorityStore.js +792 -0
  274. package/dist/esm/router/cloudflare/d1/webauthn/d1WebAuthnAuthService.js +635 -0
  275. package/dist/esm/router/cloudflare/d1/webauthn/d1WebAuthnRecords.js +538 -0
  276. package/dist/esm/router/cloudflare/d1/webauthn/d1WebAuthnStore.js +264 -0
  277. package/dist/esm/router/cloudflare/durableObjects/thresholdStore.js +514 -0
  278. package/dist/esm/router/cloudflare/durableObjects/versionedJsonRecordStore.js +192 -0
  279. package/dist/esm/router/cloudflare/runtime/cloudflare.types.js +0 -0
  280. package/dist/esm/router/cloudflare/runtime/cloudflareSignerWasm.js +8 -0
  281. package/dist/esm/router/cloudflare/runtime/createCloudflareRouter.js +19 -0
  282. package/dist/esm/router/cloudflare/runtime/createSelfHostedCloudflareSigningWorker.js +94 -0
  283. package/dist/esm/router/cloudflare/runtime/ed25519SessionAdapter.js +106 -0
  284. package/dist/esm/router/cloudflare/runtime/environment.js +25 -0
  285. package/dist/esm/router/cloudflare/runtime/routerAbPrewarm.js +34 -0
  286. package/dist/esm/router/cloudflare/runtime/routerAbServiceBindings.js +33 -0
  287. package/dist/esm/router/cloudflare/runtime/sessionAdapterRuntime.js +104 -0
  288. package/dist/esm/router/cloudflare/runtime/staticWalletConsoleBinding.js +168 -0
  289. package/dist/esm/router/cloudflare/runtime/tenantRootCreationGrant.js +147 -0
  290. package/dist/esm/router/cloudflare/runtime/walletConsoleOps.js +143 -0
  291. package/dist/esm/router/cloudflare/runtime/walletConsoleOpsClient.js +227 -0
  292. package/dist/esm/router/cloudflare/runtime/walletConsoleTenantRootLineage.js +30 -0
  293. package/dist/esm/router/cloudflare/runtime/walletControlOps.js +107 -0
  294. package/dist/esm/router/cloudflare/runtime/walletGateway.js +149 -0
  295. package/dist/esm/router/cloudflare/runtime/walletRuntimeOps.js +322 -0
  296. package/dist/esm/router/cloudflare/runtime/walletRuntimeOpsHandler.js +48 -0
  297. package/dist/esm/router/cloudflare/signingLanes/cloudflareLaneCurveExecution.js +597 -0
  298. package/dist/esm/router/cloudflare/signingLanes/cloudflareLaneProtocolCommitter.js +272 -0
  299. package/dist/esm/router/cloudflare/signingLanes/cloudflareOrdinaryInactiveSignerMaterialReservation.js +477 -0
  300. package/dist/esm/router/cloudflare/signingLanes/index.js +4 -0
  301. package/dist/esm/router/cloudflare/signingLanes/linkedDeviceEd25519CeremonyBinding.js +32 -0
  302. package/dist/esm/router/cloudflare-adaptor.js +45 -0
  303. package/dist/esm/router/cloudflare.js +42794 -0
  304. package/dist/esm/router/domains/ecdsa/routerAbEcdsaStrictRegistration.js +738 -0
  305. package/dist/esm/router/domains/ecdsa/thresholdEcdsaRequestValidation.js +134 -0
  306. package/dist/esm/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistration.js +368 -0
  307. package/dist/esm/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistrationPartitionedStateStore.js +624 -0
  308. package/dist/esm/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistrationPartitioning.js +143 -0
  309. package/dist/esm/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistrationPersistence.js +270 -0
  310. package/dist/esm/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistrationRequestScopedRunner.js +31 -0
  311. package/dist/esm/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistrationRequestScopedRuntime.js +162 -0
  312. package/dist/esm/router/domains/ed25519Yao/export/routerAbEd25519YaoExport.js +1366 -0
  313. package/dist/esm/router/domains/ed25519Yao/export/routerAbEd25519YaoExportRequestScopedCloudflare.js +465 -0
  314. package/dist/esm/router/domains/ed25519Yao/recovery/routerAbEd25519YaoRecovery.js +1609 -0
  315. package/dist/esm/router/domains/ed25519Yao/recovery/routerAbEd25519YaoRecoveryRequestScopedCloudflare.js +540 -0
  316. package/dist/esm/router/domains/ed25519Yao/recovery/routerAbEd25519YaoRecoveryWalletSessionAuthorization.js +394 -0
  317. package/dist/esm/router/domains/ed25519Yao/registration/routerAbEd25519YaoHttpRegistrationBackend.js +572 -0
  318. package/dist/esm/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistration.js +555 -0
  319. package/dist/esm/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistrationExecutionRecord.js +268 -0
  320. package/dist/esm/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistrationIntentAuthorization.js +329 -0
  321. package/dist/esm/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistrationRequestScopedCloudflare.js +423 -0
  322. package/dist/esm/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistrationSideEffectBoundary.js +432 -0
  323. package/dist/esm/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistrationTwoPhaseRunner.js +58 -0
  324. package/dist/esm/router/domains/ed25519Yao/routerAbEd25519YaoGatewayEnvelope.js +0 -0
  325. package/dist/esm/router/domains/ed25519Yao/session/routerAbEd25519YaoWalletSession.js +0 -0
  326. package/dist/esm/router/domains/ed25519Yao/session/thresholdEd25519RequestValidation.js +275 -0
  327. package/dist/esm/router/domains/emailOtp/emailOtpExportPolicy.js +70 -0
  328. package/dist/esm/router/domains/emailOtp/emailOtpRequestValidation.js +34 -0
  329. package/dist/esm/router/domains/emailOtp/emailOtpRouteHandlers.js +218 -0
  330. package/dist/esm/router/domains/emailOtp/emailOtpSessionRouteHelpers.js +210 -0
  331. package/dist/esm/router/domains/passkeyCustody/envelopeRevocationAdmission.js +26 -0
  332. package/dist/esm/router/domains/passkeyCustody/passkeyCustodyEnvelopeRetrieval.js +107 -0
  333. package/dist/esm/router/domains/passkeyCustody/passkeyCustodyEnvelopeRetrievalRoute.js +45 -0
  334. package/dist/esm/router/domains/passkeyCustody/registrationCustodyOutcome.js +47 -0
  335. package/dist/esm/router/domains/passkeyCustody/verifiedCustodyFactor.js +46 -0
  336. package/dist/esm/router/domains/passkeyCustody/walletCustodyRegistrationAdmission.js +32 -0
  337. package/dist/esm/router/domains/passkeyCustody/walletCustodyRegistrationCommit.js +170 -0
  338. package/dist/esm/router/domains/passkeyCustody/walletRecoveryAttempt.js +64 -0
  339. package/dist/esm/router/domains/passkeyCustody/walletRecoveryFinalization.js +652 -0
  340. package/dist/esm/router/domains/passkeyCustody/walletRecoveryKeyManifest.js +396 -0
  341. package/dist/esm/router/domains/passkeyCustody/walletRecoveryRotation.js +87 -0
  342. package/dist/esm/router/domains/signingOperations/ed25519AuthorizedOperationReceipt.js +89 -0
  343. package/dist/esm/router/domains/signingOperations/routerAbNormalSigningAdmissionCore.js +106 -0
  344. package/dist/esm/router/domains/signingOperations/routerAbPrivateSigningWorker.js +2669 -0
  345. package/dist/esm/router/domains/signingOperations/walletExecutionAdmission.js +228 -0
  346. package/dist/esm/router/domains/syncAccount/syncAccountRequestValidation.js +78 -0
  347. package/dist/esm/router/domains/tenantRoot/tenantRootCustodyLineage.js +0 -0
  348. package/dist/esm/router/domains/tenantRoot/tenantRootEcdsaWalletSessionComposition.js +55 -0
  349. package/dist/esm/router/domains/tenantRoot/tenantRootEd25519WalletSessionComposition.js +56 -0
  350. package/dist/esm/router/domains/tenantRoot/tenantRootIdentityResolution.js +111 -0
  351. package/dist/esm/router/domains/walletRegistration/walletRegistrationInputs.js +0 -0
  352. package/dist/esm/router/domains/walletRegistration/walletRegistrationRoutes.js +2199 -0
  353. package/dist/esm/router/domains/walletRegistration/walletRegistrationSetupPayload.js +155 -0
  354. package/dist/esm/router/domains/walletUnlock/walletUnlockRequestedCapabilitiesValidation.js +84 -0
  355. package/dist/esm/router/domains/walletUnlock/walletUnlockRouteHandlers.js +1142 -0
  356. package/dist/esm/router/express-adaptor.js +84 -0
  357. package/dist/esm/router/express.js +26616 -0
  358. package/dist/esm/router/framework/apiCredentialPorts.js +11 -0
  359. package/dist/esm/router/framework/applyRouteMetering.js +26 -0
  360. package/dist/esm/router/framework/authServicePort.js +30 -0
  361. package/dist/esm/router/framework/enforceRoutePolicy.js +92 -0
  362. package/dist/esm/router/framework/http.js +87 -0
  363. package/dist/esm/router/framework/logger.js +7 -0
  364. package/dist/esm/router/framework/modules.js +34 -0
  365. package/dist/esm/router/framework/ror/index.js +5 -0
  366. package/dist/esm/router/framework/ror/normalize.js +57 -0
  367. package/dist/esm/router/framework/ror/options.js +33 -0
  368. package/dist/esm/router/framework/ror/provider.js +33 -0
  369. package/dist/esm/router/framework/ror/staticProvider.js +24 -0
  370. package/dist/esm/router/framework/routeAuthPolicy.js +16 -0
  371. package/dist/esm/router/framework/routeDefinitions.js +446 -0
  372. package/dist/esm/router/framework/routeExecutionContext.js +24 -0
  373. package/dist/esm/router/framework/routeExtensions.js +50 -0
  374. package/dist/esm/router/framework/routeMeteringPolicy.js +0 -0
  375. package/dist/esm/router/framework/routeRequestValidation.js +32 -0
  376. package/dist/esm/router/framework/routeResponses.js +33 -0
  377. package/dist/esm/router/framework/routerApi.js +42 -0
  378. package/dist/esm/router/framework/routerApiRouteSurface.js +54 -0
  379. package/dist/esm/router/framework/routerApiWebhooks.js +60 -0
  380. package/dist/esm/router/framework/runtimeSnapshotConsumer.js +145 -0
  381. package/dist/esm/router/framework/versionedJsonRecordStore.js +0 -0
  382. package/dist/esm/router/ror-adaptor.js +5 -0
  383. package/dist/esm/router/ror.js +178 -0
  384. package/dist/esm/router/transport/fetch/createFetchRouter.js +309 -0
  385. package/dist/esm/router/transport/fetch/fetchRouter.types.js +0 -0
  386. package/dist/esm/router/transport/fetch/routes/auth.js +219 -0
  387. package/dist/esm/router/transport/fetch/routes/deviceLinking.js +1196 -0
  388. package/dist/esm/router/transport/fetch/routes/deviceLinkingOwnerAuthorization.js +264 -0
  389. package/dist/esm/router/transport/fetch/routes/deviceManagement.js +289 -0
  390. package/dist/esm/router/transport/fetch/routes/health.js +42 -0
  391. package/dist/esm/router/transport/fetch/routes/nearPublicKeys.js +39 -0
  392. package/dist/esm/router/transport/fetch/routes/normalSigningRouterProxy.js +118 -0
  393. package/dist/esm/router/transport/fetch/routes/passkeyCustody.js +1618 -0
  394. package/dist/esm/router/transport/fetch/routes/sessions.js +1033 -0
  395. package/dist/esm/router/transport/fetch/routes/syncAccount.js +187 -0
  396. package/dist/esm/router/transport/fetch/routes/syncAccountBootstrap.js +214 -0
  397. package/dist/esm/router/transport/fetch/routes/thresholdEcdsa.js +1729 -0
  398. package/dist/esm/router/transport/fetch/routes/thresholdEd25519.js +1321 -0
  399. package/dist/esm/router/transport/fetch/routes/walletExecutionLanePreflight.js +228 -0
  400. package/dist/esm/router/transport/fetch/routes/walletRegistration.js +73 -0
  401. package/dist/esm/router/transport/fetch/routes/webauthnAuthenticators.js +43 -0
  402. package/dist/esm/router/transport/fetch/routes/wellKnown.js +48 -0
  403. package/dist/esm/shared-ts/src/authorization/capabilityKinds.js +224 -0
  404. package/dist/esm/shared-ts/src/authorization/delegatedAuthority.js +134 -0
  405. package/dist/esm/shared-ts/src/authorization/index.js +6 -0
  406. package/dist/esm/shared-ts/src/authorization/operationFingerprint.js +58 -0
  407. package/dist/esm/shared-ts/src/authorization/walletAuthority.js +802 -0
  408. package/dist/esm/shared-ts/src/authorization/walletCustodyOperation.js +18 -0
  409. package/dist/esm/shared-ts/src/authorization/walletSessionIssuance.js +5 -0
  410. package/dist/esm/shared-ts/src/device-linking/committedSignerPackages.js +332 -0
  411. package/dist/esm/shared-ts/src/device-linking/contracts.js +8 -0
  412. package/dist/esm/shared-ts/src/device-linking/delegatedActivationPlan.js +132 -0
  413. package/dist/esm/shared-ts/src/device-linking/digests.js +273 -0
  414. package/dist/esm/shared-ts/src/device-linking/ed25519ExportRoot.js +158 -0
  415. package/dist/esm/shared-ts/src/device-linking/index.js +9 -0
  416. package/dist/esm/shared-ts/src/device-linking/parsers.js +1412 -0
  417. package/dist/esm/shared-ts/src/device-linking/requestProof.js +114 -0
  418. package/dist/esm/shared-ts/src/device-linking/sourceContribution.js +563 -0
  419. package/dist/esm/shared-ts/src/device-linking/walletSessionCredentialDelivery.js +207 -0
  420. package/dist/esm/shared-ts/src/near/actions.js +75 -0
  421. package/dist/esm/shared-ts/src/passkey-custody/ceremonyCommitPayload.js +69 -0
  422. package/dist/esm/shared-ts/src/passkey-custody/credentialActivity.js +81 -0
  423. package/dist/esm/shared-ts/src/passkey-custody/custodyEnvelope.js +272 -0
  424. package/dist/esm/shared-ts/src/passkey-custody/custodySecretBinding.js +175 -0
  425. package/dist/esm/shared-ts/src/passkey-custody/index.js +5 -0
  426. package/dist/esm/shared-ts/src/passkey-custody/primitives.js +92 -0
  427. package/dist/esm/shared-ts/src/signing-lanes/evmFamilySigningKeySlotId.js +53 -0
  428. package/dist/esm/shared-ts/src/signing-lanes/execution.js +14 -0
  429. package/dist/esm/shared-ts/src/signing-lanes/index.js +11 -0
  430. package/dist/esm/shared-ts/src/signing-lanes/linkedEcdsaScope.js +1 -0
  431. package/dist/esm/shared-ts/src/signing-lanes/ownerContinuity.js +91 -0
  432. package/dist/esm/shared-ts/src/signing-lanes/participantDigest.js +124 -0
  433. package/dist/esm/shared-ts/src/signing-lanes/participants.js +262 -0
  434. package/dist/esm/shared-ts/src/signing-lanes/recordParsers.js +143 -0
  435. package/dist/esm/shared-ts/src/signing-lanes/rotation.js +8 -0
  436. package/dist/esm/shared-ts/src/signing-lanes/rotationDigests.js +397 -0
  437. package/dist/esm/shared-ts/src/signing-lanes/rotationLifecycle.js +313 -0
  438. package/dist/esm/shared-ts/src/signing-lanes/rotationParsers.js +1620 -0
  439. package/dist/esm/shared-ts/src/tenant-root/index.js +2 -0
  440. package/dist/esm/shared-ts/src/tenant-root/tenantRootIdentity.js +198 -0
  441. package/dist/esm/shared-ts/src/tenant-root/tenantRootOperationRecord.js +440 -0
  442. package/dist/esm/shared-ts/src/threshold/ecdsaDerivationRoleLocalBootstrap.js +85 -0
  443. package/dist/esm/shared-ts/src/threshold/participants.js +26 -0
  444. package/dist/esm/shared-ts/src/threshold/sessionPolicy.js +9 -0
  445. package/dist/esm/shared-ts/src/threshold/signingRootScope.js +40 -0
  446. package/dist/esm/shared-ts/src/utils/addAuthMethodRegistration.js +104 -0
  447. package/dist/esm/shared-ts/src/utils/addWalletAuthMethod.js +36 -0
  448. package/dist/esm/shared-ts/src/utils/base58.js +28 -0
  449. package/dist/esm/shared-ts/src/utils/base64.js +70 -0
  450. package/dist/esm/shared-ts/src/utils/canonicalPrimitives.js +27 -0
  451. package/dist/esm/shared-ts/src/utils/digests.js +33 -0
  452. package/dist/esm/shared-ts/src/utils/domainIds.js +309 -0
  453. package/dist/esm/shared-ts/src/utils/ecdsaCapabilityActivation.js +34 -0
  454. package/dist/esm/shared-ts/src/utils/ecdsaKeyFactsInventory.js +46 -0
  455. package/dist/esm/shared-ts/src/utils/emailOtpDomain.js +38 -0
  456. package/dist/esm/shared-ts/src/utils/emailOtpRecoveryKey.js +10 -0
  457. package/dist/esm/shared-ts/src/utils/encoders.js +2 -0
  458. package/dist/esm/shared-ts/src/utils/errors.js +88 -0
  459. package/dist/esm/shared-ts/src/utils/evmRpcResults.js +97 -0
  460. package/dist/esm/shared-ts/src/utils/jsonRpc.js +64 -0
  461. package/dist/esm/shared-ts/src/utils/keccak.js +150 -0
  462. package/dist/esm/shared-ts/src/utils/near.js +99 -0
  463. package/dist/esm/shared-ts/src/utils/nearRpcResults.js +205 -0
  464. package/dist/esm/shared-ts/src/utils/normalize.js +87 -0
  465. package/dist/esm/shared-ts/src/utils/registrationEstablishedSession.js +201 -0
  466. package/dist/esm/shared-ts/src/utils/registrationIntent.js +1268 -0
  467. package/dist/esm/shared-ts/src/utils/routerAbEcdsaDerivation.js +1655 -0
  468. package/dist/esm/shared-ts/src/utils/routerAbEd25519Yao.js +984 -0
  469. package/dist/esm/shared-ts/src/utils/routerAbNormalSigningIdentity.js +118 -0
  470. package/dist/esm/shared-ts/src/utils/routerAbPublicKeyset.js +138 -0
  471. package/dist/esm/shared-ts/src/utils/routerAbTraceContext.js +36 -0
  472. package/dist/esm/shared-ts/src/utils/secureRandomId.js +35 -0
  473. package/dist/esm/shared-ts/src/utils/signingSessionSeal.js +118 -0
  474. package/dist/esm/shared-ts/src/utils/thresholdEcdsaKeyHandle.js +28 -0
  475. package/dist/esm/shared-ts/src/utils/validation.js +23 -0
  476. package/dist/esm/shared-ts/src/utils/walletAddSignerActivation.js +32 -0
  477. package/dist/esm/shared-ts/src/utils/walletAuthAuthority.js +207 -0
  478. package/dist/esm/shared-ts/src/utils/walletSessionFailure.js +15 -0
  479. package/dist/esm/shared-ts/src/utils/webauthnDeviceInfo.js +207 -0
  480. package/dist/esm/shared-ts/src/wallet-recovery/backupAcknowledgement.js +66 -0
  481. package/dist/esm/shared-ts/src/wallet-recovery/index.js +10 -0
  482. package/dist/esm/shared-ts/src/wallet-recovery/recoveryCodeIssuance.js +1 -0
  483. package/dist/esm/shared-ts/src/wallet-recovery/recoveryCodeLocator.js +34 -0
  484. package/dist/esm/shared-ts/src/wallet-recovery/recoveryCodeReservation.js +80 -0
  485. package/dist/esm/shared-ts/src/wallet-recovery/recoveryCodes.js +4 -0
  486. package/dist/esm/shared-ts/src/wallet-recovery/recoveryKeyId.js +53 -0
  487. package/dist/esm/shared-ts/src/wallet-recovery/walletRecoveryCommittedProjection.js +108 -0
  488. package/dist/esm/shared-ts/src/wallet-recovery/walletRecoveryEcdsaPossession.js +157 -0
  489. package/dist/esm/shared-ts/src/wallet-recovery/walletRecoveryEnvelopeSet.js +233 -0
  490. package/dist/esm/shared-ts/src/wallet-recovery/walletRecoveryRotation.js +3 -0
  491. package/dist/esm/shared-ts/src/wallet-recovery/walletRecoveryTarget.js +29 -0
  492. package/dist/esm/storage/d1Sql.js +85 -0
  493. package/dist/esm/storage/tenantRoute.js +89 -0
  494. package/dist/esm/tenant-root.js +5 -0
  495. package/dist/esm/threshold/session/signingSessionSeal/crypto/cipher.js +204 -0
  496. package/dist/esm/threshold/session/signingSessionSeal/crypto/shamir3PassWasm.js +87 -0
  497. package/dist/esm/threshold/session/signingSessionSeal/guards/backends.js +192 -0
  498. package/dist/esm/threshold/session/signingSessionSeal/guards/index.js +121 -0
  499. package/dist/esm/threshold/session/signingSessionSeal/idempotency.js +38 -0
  500. package/dist/esm/threshold/session/signingSessionSeal/idempotencyBackends.js +131 -0
  501. package/dist/esm/threshold/session/signingSessionSeal/idempotencyRecords.js +55 -0
  502. package/dist/esm/threshold/session/signingSessionSeal/index.js +13 -0
  503. package/dist/esm/threshold/session/signingSessionSeal/observability/audit.js +38 -0
  504. package/dist/esm/threshold/session/signingSessionSeal/options.js +54 -0
  505. package/dist/esm/threshold/session/signingSessionSeal/routesOptions.js +45 -0
  506. package/dist/esm/threshold/session/signingSessionSeal/service.js +316 -0
  507. package/dist/esm/threshold/session/signingSessionSeal/signingSessionSeal.types.js +0 -0
  508. package/dist/esm/threshold/session/signingSessionSeal/transport/express.js +151 -0
  509. package/dist/esm/threshold/session/signingSessionSeal/transport/fetch.js +106 -0
  510. package/dist/esm/threshold/session/signingSessionSeal/transport/shared.js +159 -0
  511. package/dist/esm/threshold/statusCodes.js +39 -0
  512. package/dist/esm/wasm/evm_crypto/pkg/evm_crypto.js +601 -0
  513. package/dist/esm/wasm/evm_crypto/pkg/evm_crypto_bg.wasm +0 -0
  514. package/dist/esm/wasm/near_signer/pkg/wasm_signer_worker.js +1078 -0
  515. package/dist/esm/wasm/near_signer/pkg/wasm_signer_worker_bg.wasm +0 -0
  516. package/dist/esm/wasm/router_ab_ecdsa_signing_worker/pkg/router_ab_ecdsa_signing_worker.js +503 -0
  517. package/dist/esm/wasm/router_ab_ecdsa_signing_worker/pkg/router_ab_ecdsa_signing_worker_bg.wasm +0 -0
  518. package/dist/esm/wasm/shamir3pass_runtime/pkg/shamir3pass_runtime.js +393 -0
  519. package/dist/esm/wasm/shamir3pass_runtime/pkg/shamir3pass_runtime_bg.wasm +0 -0
  520. package/dist/esm/wasm/signer.js +2 -0
  521. package/dist/types/shared-ts/src/authorization/capabilityKinds.d.ts +147 -0
  522. package/dist/types/shared-ts/src/authorization/capabilityKinds.typecheck.d.ts +2 -0
  523. package/dist/types/shared-ts/src/authorization/delegatedAuthority.d.ts +44 -0
  524. package/dist/types/shared-ts/src/authorization/index.d.ts +7 -0
  525. package/dist/types/shared-ts/src/authorization/operationFingerprint.d.ts +39 -0
  526. package/dist/types/shared-ts/src/authorization/operationFingerprint.typecheck.d.ts +2 -0
  527. package/dist/types/shared-ts/src/authorization/walletAuthority.d.ts +168 -0
  528. package/dist/types/shared-ts/src/authorization/walletAuthority.typecheck.d.ts +2 -0
  529. package/dist/types/shared-ts/src/authorization/walletCustodyOperation.d.ts +10 -0
  530. package/dist/types/shared-ts/src/authorization/walletSessionIssuance.d.ts +28 -0
  531. package/dist/types/shared-ts/src/device-linking/activeWalletSession.d.ts +3 -0
  532. package/dist/types/shared-ts/src/device-linking/activeWalletSession.typecheck.d.ts +2 -0
  533. package/dist/types/shared-ts/src/device-linking/committedSignerPackages.d.ts +71 -0
  534. package/dist/types/shared-ts/src/device-linking/contracts.d.ts +843 -0
  535. package/dist/types/shared-ts/src/device-linking/contracts.typecheck.d.ts +2 -0
  536. package/dist/types/shared-ts/src/device-linking/delegatedActivationPlan.d.ts +37 -0
  537. package/dist/types/shared-ts/src/device-linking/digests.d.ts +23 -0
  538. package/dist/types/shared-ts/src/device-linking/ed25519ExportRoot.d.ts +93 -0
  539. package/dist/types/shared-ts/src/device-linking/index.d.ts +11 -0
  540. package/dist/types/shared-ts/src/device-linking/parsers.d.ts +124 -0
  541. package/dist/types/shared-ts/src/device-linking/requestProof.d.ts +26 -0
  542. package/dist/types/shared-ts/src/device-linking/sourceContribution.d.ts +182 -0
  543. package/dist/types/shared-ts/src/device-linking/walletSessionCredentialDelivery.d.ts +84 -0
  544. package/dist/types/shared-ts/src/index.d.ts +10 -0
  545. package/dist/types/shared-ts/src/near/actions.d.ts +141 -0
  546. package/dist/types/shared-ts/src/near/delegate.d.ts +55 -0
  547. package/dist/types/shared-ts/src/near/index.d.ts +3 -0
  548. package/dist/types/shared-ts/src/passkey-custody/ceremonyCommitPayload.d.ts +211 -0
  549. package/dist/types/shared-ts/src/passkey-custody/credentialActivity.d.ts +49 -0
  550. package/dist/types/shared-ts/src/passkey-custody/credentialObservations.d.ts +74 -0
  551. package/dist/types/shared-ts/src/passkey-custody/custodyEnvelope.d.ts +191 -0
  552. package/dist/types/shared-ts/src/passkey-custody/custodySecretBinding.d.ts +140 -0
  553. package/dist/types/shared-ts/src/passkey-custody/envelopeIndex.d.ts +29 -0
  554. package/dist/types/shared-ts/src/passkey-custody/index.d.ts +9 -0
  555. package/dist/types/shared-ts/src/passkey-custody/kekContext.d.ts +34 -0
  556. package/dist/types/shared-ts/src/passkey-custody/passkeyCustody.typecheck.d.ts +2 -0
  557. package/dist/types/shared-ts/src/passkey-custody/primitives.d.ts +34 -0
  558. package/dist/types/shared-ts/src/signing-lanes/evmFamilySigningKeySlotId.d.ts +27 -0
  559. package/dist/types/shared-ts/src/signing-lanes/execution.d.ts +91 -0
  560. package/dist/types/shared-ts/src/signing-lanes/execution.typecheck.d.ts +2 -0
  561. package/dist/types/shared-ts/src/signing-lanes/ids.d.ts +18 -0
  562. package/dist/types/shared-ts/src/signing-lanes/index.d.ts +14 -0
  563. package/dist/types/shared-ts/src/signing-lanes/linkedEcdsaScope.d.ts +62 -0
  564. package/dist/types/shared-ts/src/signing-lanes/linkedEcdsaScope.typecheck.d.ts +2 -0
  565. package/dist/types/shared-ts/src/signing-lanes/ownerContinuity.d.ts +30 -0
  566. package/dist/types/shared-ts/src/signing-lanes/ownerContinuity.typecheck.d.ts +2 -0
  567. package/dist/types/shared-ts/src/signing-lanes/participantDigest.d.ts +48 -0
  568. package/dist/types/shared-ts/src/signing-lanes/participantDigest.typecheck.d.ts +2 -0
  569. package/dist/types/shared-ts/src/signing-lanes/participants.d.ts +89 -0
  570. package/dist/types/shared-ts/src/signing-lanes/recordParsers.d.ts +128 -0
  571. package/dist/types/shared-ts/src/signing-lanes/records.d.ts +160 -0
  572. package/dist/types/shared-ts/src/signing-lanes/records.typecheck.d.ts +2 -0
  573. package/dist/types/shared-ts/src/signing-lanes/rotation.d.ts +894 -0
  574. package/dist/types/shared-ts/src/signing-lanes/rotation.typecheck.d.ts +2 -0
  575. package/dist/types/shared-ts/src/signing-lanes/rotationDigests.d.ts +32 -0
  576. package/dist/types/shared-ts/src/signing-lanes/rotationLifecycle.d.ts +99 -0
  577. package/dist/types/shared-ts/src/signing-lanes/rotationParsers.d.ts +67 -0
  578. package/dist/types/shared-ts/src/signing-lanes/validation.d.ts +11 -0
  579. package/dist/types/shared-ts/src/tenant-root/index.d.ts +3 -0
  580. package/dist/types/shared-ts/src/tenant-root/tenantRootIdentity.d.ts +72 -0
  581. package/dist/types/shared-ts/src/tenant-root/tenantRootOperationRecord.d.ts +192 -0
  582. package/dist/types/shared-ts/src/threshold/ecdsaDerivationRoleLocalBootstrap.d.ts +77 -0
  583. package/dist/types/shared-ts/src/threshold/ed25519OperationFingerprint.d.ts +130 -0
  584. package/dist/types/shared-ts/src/threshold/index.d.ts +7 -0
  585. package/dist/types/shared-ts/src/threshold/participants.d.ts +38 -0
  586. package/dist/types/shared-ts/src/threshold/secp256k1.d.ts +39 -0
  587. package/dist/types/shared-ts/src/threshold/sessionPolicy.d.ts +5 -0
  588. package/dist/types/shared-ts/src/threshold/signingRootScope.d.ts +24 -0
  589. package/dist/types/shared-ts/src/utils/addAuthMethodRegistration.d.ts +63 -0
  590. package/dist/types/shared-ts/src/utils/addWalletAuthMethod.d.ts +295 -0
  591. package/dist/types/shared-ts/src/utils/addWalletAuthMethod.typecheck.d.ts +11 -0
  592. package/dist/types/shared-ts/src/utils/authenticatorOptions.d.ts +25 -0
  593. package/dist/types/shared-ts/src/utils/base58.d.ts +17 -0
  594. package/dist/types/shared-ts/src/utils/base64.d.ts +53 -0
  595. package/dist/types/shared-ts/src/utils/bigint.d.ts +3 -0
  596. package/dist/types/shared-ts/src/utils/canonicalPrimitives.d.ts +12 -0
  597. package/dist/types/shared-ts/src/utils/digests.d.ts +6 -0
  598. package/dist/types/shared-ts/src/utils/domainIds.d.ts +140 -0
  599. package/dist/types/shared-ts/src/utils/domainIds.typecheck.d.ts +2 -0
  600. package/dist/types/shared-ts/src/utils/ecdsaCapabilityActivation.d.ts +29 -0
  601. package/dist/types/shared-ts/src/utils/ecdsaKeyFactsInventory.d.ts +24 -0
  602. package/dist/types/shared-ts/src/utils/emailOtpDomain.d.ts +30 -0
  603. package/dist/types/shared-ts/src/utils/emailOtpRecoveryKey.d.ts +31 -0
  604. package/dist/types/shared-ts/src/utils/encoders.d.ts +3 -0
  605. package/dist/types/shared-ts/src/utils/errors.d.ts +44 -0
  606. package/dist/types/shared-ts/src/utils/evmRpcResults.d.ts +31 -0
  607. package/dist/types/shared-ts/src/utils/generated/routerAbEd25519YaoCore.d.ts +128 -0
  608. package/dist/types/shared-ts/src/utils/index.d.ts +34 -0
  609. package/dist/types/shared-ts/src/utils/jsonRpc.d.ts +30 -0
  610. package/dist/types/shared-ts/src/utils/keccak.d.ts +2 -0
  611. package/dist/types/shared-ts/src/utils/near.d.ts +81 -0
  612. package/dist/types/shared-ts/src/utils/nearRpcResults.d.ts +101 -0
  613. package/dist/types/shared-ts/src/utils/normalize.d.ts +57 -0
  614. package/dist/types/shared-ts/src/utils/paillier.d.ts +37 -0
  615. package/dist/types/shared-ts/src/utils/recoveryDomain.d.ts +12 -0
  616. package/dist/types/shared-ts/src/utils/registrationEstablishedSession.d.ts +85 -0
  617. package/dist/types/shared-ts/src/utils/registrationIntent.d.ts +621 -0
  618. package/dist/types/shared-ts/src/utils/registrationIntent.typecheck.d.ts +2 -0
  619. package/dist/types/shared-ts/src/utils/routerAbEcdsaDerivation.d.ts +715 -0
  620. package/dist/types/shared-ts/src/utils/routerAbEcdsaDerivation.typecheck.d.ts +2 -0
  621. package/dist/types/shared-ts/src/utils/routerAbEcdsaDerivationRefresh.typecheck.d.ts +2 -0
  622. package/dist/types/shared-ts/src/utils/routerAbEd25519Yao.d.ts +339 -0
  623. package/dist/types/shared-ts/src/utils/routerAbEd25519Yao.typecheck.d.ts +2 -0
  624. package/dist/types/shared-ts/src/utils/routerAbNormalSigningIdentity.d.ts +71 -0
  625. package/dist/types/shared-ts/src/utils/routerAbPublicKeyset.d.ts +51 -0
  626. package/dist/types/shared-ts/src/utils/routerAbTraceContext.d.ts +16 -0
  627. package/dist/types/shared-ts/src/utils/secureRandomId.d.ts +6 -0
  628. package/dist/types/shared-ts/src/utils/signerDomain.d.ts +75 -0
  629. package/dist/types/shared-ts/src/utils/signerDomain.typecheck.d.ts +2 -0
  630. package/dist/types/shared-ts/src/utils/signerSlot.d.ts +11 -0
  631. package/dist/types/shared-ts/src/utils/signingSessionSeal.d.ts +153 -0
  632. package/dist/types/shared-ts/src/utils/signingSessionSeal.typecheck.d.ts +2 -0
  633. package/dist/types/shared-ts/src/utils/theme.d.ts +2 -0
  634. package/dist/types/shared-ts/src/utils/thresholdEcdsaKeyHandle.d.ts +11 -0
  635. package/dist/types/shared-ts/src/utils/validation.d.ts +35 -0
  636. package/dist/types/shared-ts/src/utils/walletAddSignerActivation.d.ts +23 -0
  637. package/dist/types/shared-ts/src/utils/walletAuthAuthority.d.ts +150 -0
  638. package/dist/types/shared-ts/src/utils/walletAuthAuthority.typecheck.d.ts +2 -0
  639. package/dist/types/shared-ts/src/utils/walletCapabilityBindings.d.ts +106 -0
  640. package/dist/types/shared-ts/src/utils/walletCapabilityBindings.typecheck.d.ts +2 -0
  641. package/dist/types/shared-ts/src/utils/walletSessionFailure.d.ts +13 -0
  642. package/dist/types/shared-ts/src/utils/webauthnDeviceInfo.d.ts +48 -0
  643. package/dist/types/shared-ts/src/wallet-recovery/backupAcknowledgement.d.ts +56 -0
  644. package/dist/types/shared-ts/src/wallet-recovery/index.d.ts +10 -0
  645. package/dist/types/shared-ts/src/wallet-recovery/recoveryCodeAttempt.d.ts +59 -0
  646. package/dist/types/shared-ts/src/wallet-recovery/recoveryCodeIssuance.d.ts +37 -0
  647. package/dist/types/shared-ts/src/wallet-recovery/recoveryCodeLocator.d.ts +22 -0
  648. package/dist/types/shared-ts/src/wallet-recovery/recoveryCodeReservation.d.ts +79 -0
  649. package/dist/types/shared-ts/src/wallet-recovery/recoveryCodes.d.ts +11 -0
  650. package/dist/types/shared-ts/src/wallet-recovery/recoveryEnvelopes.d.ts +42 -0
  651. package/dist/types/shared-ts/src/wallet-recovery/recoveryKekContext.d.ts +37 -0
  652. package/dist/types/shared-ts/src/wallet-recovery/recoveryKeyId.d.ts +58 -0
  653. package/dist/types/shared-ts/src/wallet-recovery/walletRecovery.typecheck.d.ts +2 -0
  654. package/dist/types/shared-ts/src/wallet-recovery/walletRecoveryCommittedProjection.d.ts +110 -0
  655. package/dist/types/shared-ts/src/wallet-recovery/walletRecoveryEcdsaPossession.d.ts +29 -0
  656. package/dist/types/shared-ts/src/wallet-recovery/walletRecoveryEnvelopeSet.d.ts +115 -0
  657. package/dist/types/shared-ts/src/wallet-recovery/walletRecoveryRotation.d.ts +18 -0
  658. package/dist/types/shared-ts/src/wallet-recovery/walletRecoveryTarget.d.ts +12 -0
  659. package/dist/types/shared-ts/src/wallet-recovery/walletRecoveryTarget.typecheck.d.ts +2 -0
  660. package/dist/types/wallet-server/src/authorization/capabilityPolicy.d.ts +45 -0
  661. package/dist/types/wallet-server/src/authorization/capabilityPolicy.typecheck.d.ts +2 -0
  662. package/dist/types/wallet-server/src/authorization/domain.d.ts +454 -0
  663. package/dist/types/wallet-server/src/authorization/domain.typecheck.d.ts +2 -0
  664. package/dist/types/wallet-server/src/authorization/factorEvidence.d.ts +165 -0
  665. package/dist/types/wallet-server/src/authorization/factorEvidence.typecheck.d.ts +2 -0
  666. package/dist/types/wallet-server/src/authorization/service.d.ts +227 -0
  667. package/dist/types/wallet-server/src/authorization/vaultProxyUse.d.ts +75 -0
  668. package/dist/types/wallet-server/src/cloud-host.d.ts +94 -0
  669. package/dist/types/wallet-server/src/core/AuthService.d.ts +3 -0
  670. package/dist/types/wallet-server/src/core/EmailOtpRecords.d.ts +33 -0
  671. package/dist/types/wallet-server/src/core/EmailOtpStores.d.ts +336 -0
  672. package/dist/types/wallet-server/src/core/IdentityStore.d.ts +57 -0
  673. package/dist/types/wallet-server/src/core/NearPublicKeyStore.d.ts +58 -0
  674. package/dist/types/wallet-server/src/core/RegistrationCeremonyStore.d.ts +551 -0
  675. package/dist/types/wallet-server/src/core/SessionService.d.ts +70 -0
  676. package/dist/types/wallet-server/src/core/ThresholdService/config.d.ts +23 -0
  677. package/dist/types/wallet-server/src/core/ThresholdService/ecdsaClientRootProof.d.ts +12 -0
  678. package/dist/types/wallet-server/src/core/ThresholdService/evmCryptoWasm.d.ts +32 -0
  679. package/dist/types/wallet-server/src/core/ThresholdService/index.d.ts +4 -0
  680. package/dist/types/wallet-server/src/core/ThresholdService/kv.d.ts +52 -0
  681. package/dist/types/wallet-server/src/core/ThresholdService/routerAb/ecdsaDerivationPoolFillHandlers.d.ts +45 -0
  682. package/dist/types/wallet-server/src/core/ThresholdService/routerAb/ecdsaDerivationPoolFillLiveSession.d.ts +93 -0
  683. package/dist/types/wallet-server/src/core/ThresholdService/routerAb/ecdsaDerivationPresignBridge.d.ts +138 -0
  684. package/dist/types/wallet-server/src/core/ThresholdService/routerAb/internalServiceHttp.d.ts +30 -0
  685. package/dist/types/wallet-server/src/core/ThresholdService/routerAbEcdsaSigningWorkerWasm.d.ts +17 -0
  686. package/dist/types/wallet-server/src/core/ThresholdService/routerAbNormalSigningPolicy.d.ts +21 -0
  687. package/dist/types/wallet-server/src/core/ThresholdService/secureRandomId.d.ts +2 -0
  688. package/dist/types/wallet-server/src/core/ThresholdService/stores/CloudflareDurableObjectStore.d.ts +128 -0
  689. package/dist/types/wallet-server/src/core/ThresholdService/stores/EcdsaSigningStore.d.ts +76 -0
  690. package/dist/types/wallet-server/src/core/ThresholdService/stores/KeyStore.d.ts +39 -0
  691. package/dist/types/wallet-server/src/core/ThresholdService/stores/SessionStore.d.ts +102 -0
  692. package/dist/types/wallet-server/src/core/ThresholdService/stores/StoreConfig.d.ts +3 -0
  693. package/dist/types/wallet-server/src/core/ThresholdService/stores/ThresholdStoreConfig.typecheck.d.ts +2 -0
  694. package/dist/types/wallet-server/src/core/ThresholdService/stores/WalletSessionStore.d.ts +98 -0
  695. package/dist/types/wallet-server/src/core/ThresholdService/thresholdEd25519AuthorityScope.typecheck.d.ts +2 -0
  696. package/dist/types/wallet-server/src/core/ThresholdService/validation.d.ts +193 -0
  697. package/dist/types/wallet-server/src/core/WalletAuthMethodStore.d.ts +12 -0
  698. package/dist/types/wallet-server/src/core/WalletStore.d.ts +143 -0
  699. package/dist/types/wallet-server/src/core/WalletStore.typecheck.d.ts +2 -0
  700. package/dist/types/wallet-server/src/core/WebAuthnAuthenticatorStore.d.ts +62 -0
  701. package/dist/types/wallet-server/src/core/WebAuthnCredentialBindingStore.d.ts +116 -0
  702. package/dist/types/wallet-server/src/core/WebAuthnCredentialBindingStore.typecheck.d.ts +13 -0
  703. package/dist/types/wallet-server/src/core/WebAuthnLoginChallengeStore.d.ts +50 -0
  704. package/dist/types/wallet-server/src/core/WebAuthnSyncChallengeStore.d.ts +50 -0
  705. package/dist/types/wallet-server/src/core/authService/AuthService.d.ts +493 -0
  706. package/dist/types/wallet-server/src/core/authService/bytes.d.ts +4 -0
  707. package/dist/types/wallet-server/src/core/authService/configValues.d.ts +7 -0
  708. package/dist/types/wallet-server/src/core/authService/emailOtpChallengeOperations.d.ts +108 -0
  709. package/dist/types/wallet-server/src/core/authService/emailOtpChallengeProof.d.ts +177 -0
  710. package/dist/types/wallet-server/src/core/authService/emailOtpChallengeVerification.d.ts +46 -0
  711. package/dist/types/wallet-server/src/core/authService/emailOtpChallenges.d.ts +110 -0
  712. package/dist/types/wallet-server/src/core/authService/emailOtpConfig.d.ts +34 -0
  713. package/dist/types/wallet-server/src/core/authService/emailOtpDelivery.d.ts +65 -0
  714. package/dist/types/wallet-server/src/core/authService/emailOtpEnrollment.d.ts +79 -0
  715. package/dist/types/wallet-server/src/core/authService/emailOtpGrant.d.ts +42 -0
  716. package/dist/types/wallet-server/src/core/authService/emailOtpRegistrationEnrollment.d.ts +116 -0
  717. package/dist/types/wallet-server/src/core/authService/emailOtpSeal.d.ts +35 -0
  718. package/dist/types/wallet-server/src/core/authService/emailOtpUnlock.d.ts +70 -0
  719. package/dist/types/wallet-server/src/core/authService/githubOAuth.d.ts +35 -0
  720. package/dist/types/wallet-server/src/core/authService/googleEmailOtpErrors.d.ts +2 -0
  721. package/dist/types/wallet-server/src/core/authService/googleEmailOtpOperations.d.ts +126 -0
  722. package/dist/types/wallet-server/src/core/authService/googleEmailOtpRegistration.d.ts +172 -0
  723. package/dist/types/wallet-server/src/core/authService/identity.d.ts +25 -0
  724. package/dist/types/wallet-server/src/core/authService/identityOperations.d.ts +19 -0
  725. package/dist/types/wallet-server/src/core/authService/nearAccountOperations.d.ts +55 -0
  726. package/dist/types/wallet-server/src/core/authService/nearPrivateKeySigning.d.ts +16 -0
  727. package/dist/types/wallet-server/src/core/authService/nearPublicKeyMetadata.d.ts +43 -0
  728. package/dist/types/wallet-server/src/core/authService/nearTransactions.d.ts +49 -0
  729. package/dist/types/wallet-server/src/core/authService/oidcVerification.d.ts +65 -0
  730. package/dist/types/wallet-server/src/core/authService/portableCrypto.d.ts +3 -0
  731. package/dist/types/wallet-server/src/core/authService/rateLimits.d.ts +30 -0
  732. package/dist/types/wallet-server/src/core/authService/record.d.ts +2 -0
  733. package/dist/types/wallet-server/src/core/authService/registrationThresholdHelpers.d.ts +37 -0
  734. package/dist/types/wallet-server/src/core/authService/runtime.d.ts +20 -0
  735. package/dist/types/wallet-server/src/core/authService/signerWasmUrls.d.ts +3 -0
  736. package/dist/types/wallet-server/src/core/authService/storeRegistry.d.ts +58 -0
  737. package/dist/types/wallet-server/src/core/authService/thresholdEcdsaKeyInventory.d.ts +72 -0
  738. package/dist/types/wallet-server/src/core/authService/thresholdRuntimePolicy.d.ts +4 -0
  739. package/dist/types/wallet-server/src/core/authService/thresholdStoreSummary.d.ts +3 -0
  740. package/dist/types/wallet-server/src/core/authService/walletRegistrationPlanning.d.ts +19 -0
  741. package/dist/types/wallet-server/src/core/authService/wasm.d.ts +12 -0
  742. package/dist/types/wallet-server/src/core/authService/webauthn.d.ts +207 -0
  743. package/dist/types/wallet-server/src/core/authService/webauthnAuthority.d.ts +5 -0
  744. package/dist/types/wallet-server/src/core/authService/webauthnOidcHelpers.d.ts +52 -0
  745. package/dist/types/wallet-server/src/core/authService/webauthnWalletBinding.d.ts +48 -0
  746. package/dist/types/wallet-server/src/core/config.d.ts +13 -0
  747. package/dist/types/wallet-server/src/core/d1IdentityStore.d.ts +44 -0
  748. package/dist/types/wallet-server/src/core/d1WalletAuthMethodStore.d.ts +214 -0
  749. package/dist/types/wallet-server/src/core/d1WalletStore.d.ts +108 -0
  750. package/dist/types/wallet-server/src/core/defaultConfigsServer.d.ts +5 -0
  751. package/dist/types/wallet-server/src/core/deviceLinking/index.d.ts +5 -0
  752. package/dist/types/wallet-server/src/core/deviceLinking/linkedDeviceEd25519ExportRoot.d.ts +36 -0
  753. package/dist/types/wallet-server/src/core/deviceLinking/linkedDeviceEmailOtpGrant.d.ts +87 -0
  754. package/dist/types/wallet-server/src/core/deviceLinking/linkedDeviceManagement.d.ts +137 -0
  755. package/dist/types/wallet-server/src/core/deviceLinking/linkedDeviceSession.d.ts +462 -0
  756. package/dist/types/wallet-server/src/core/deviceLinking/requestProof.d.ts +55 -0
  757. package/dist/types/wallet-server/src/core/errors.d.ts +10 -0
  758. package/dist/types/wallet-server/src/core/hostedAccountIds.d.ts +31 -0
  759. package/dist/types/wallet-server/src/core/keyMaterialBrands.d.ts +28 -0
  760. package/dist/types/wallet-server/src/core/keyMaterialBrands.typecheck.d.ts +2 -0
  761. package/dist/types/wallet-server/src/core/logger.d.ts +21 -0
  762. package/dist/types/wallet-server/src/core/nearKeys.d.ts +3 -0
  763. package/dist/types/wallet-server/src/core/nearRelayerAccountProvisioning.d.ts +78 -0
  764. package/dist/types/wallet-server/src/core/nearSignerWasmRuntime.d.ts +3 -0
  765. package/dist/types/wallet-server/src/core/registrationContracts.d.ts +747 -0
  766. package/dist/types/wallet-server/src/core/registrationRequests.typecheck.d.ts +2 -0
  767. package/dist/types/wallet-server/src/core/routerAbSigning/RouterAbEcdsaPresignRuntime.d.ts +53 -0
  768. package/dist/types/wallet-server/src/core/routerAbSigning/RouterAbNormalSigningRuntime.d.ts +71 -0
  769. package/dist/types/wallet-server/src/core/routerAbSigning/createCloudflareDurableObjectRouterAbSigningRuntimes.d.ts +28 -0
  770. package/dist/types/wallet-server/src/core/routerAbSigning/createRouterAbSigningRuntimes.d.ts +16 -0
  771. package/dist/types/wallet-server/src/core/rpcClients/near/NearClient.d.ts +134 -0
  772. package/dist/types/wallet-server/src/core/sessionValidation.d.ts +9 -0
  773. package/dist/types/wallet-server/src/core/signingLanes/LaneAggregateRevocationApplicationService.d.ts +35 -0
  774. package/dist/types/wallet-server/src/core/signingLanes/LaneEffectJournalStore.d.ts +63 -0
  775. package/dist/types/wallet-server/src/core/signingLanes/LaneEnrollmentActivation.d.ts +13 -0
  776. package/dist/types/wallet-server/src/core/signingLanes/LaneEnrollmentRevocation.d.ts +24 -0
  777. package/dist/types/wallet-server/src/core/signingLanes/LaneLifecycleApplicationService.d.ts +141 -0
  778. package/dist/types/wallet-server/src/core/signingLanes/LaneLifecycleStore.d.ts +229 -0
  779. package/dist/types/wallet-server/src/core/signingLanes/SigningLaneStore.d.ts +15 -0
  780. package/dist/types/wallet-server/src/core/signingLanes/WalletExecutionLaneProjection.d.ts +59 -0
  781. package/dist/types/wallet-server/src/core/signingLanes/WalletKeyStore.d.ts +13 -0
  782. package/dist/types/wallet-server/src/core/signingLanes/ecdsaServerRetirement.d.ts +58 -0
  783. package/dist/types/wallet-server/src/core/signingLanes/ed25519ServerRetirement.d.ts +30 -0
  784. package/dist/types/wallet-server/src/core/signingLanes/index.d.ts +11 -0
  785. package/dist/types/wallet-server/src/core/signingLanes/signingWorkerLaneMaterialIdentity.d.ts +21 -0
  786. package/dist/types/wallet-server/src/core/signingMaterial/ordinaryInactiveSignerMaterialReservation.d.ts +155 -0
  787. package/dist/types/wallet-server/src/core/threeRouteRegistrationContracts.d.ts +442 -0
  788. package/dist/types/wallet-server/src/core/threeRouteRegistrationContracts.typecheck.d.ts +58 -0
  789. package/dist/types/wallet-server/src/core/thresholdEcdsaChainTarget.d.ts +15 -0
  790. package/dist/types/wallet-server/src/core/types.d.ts +757 -0
  791. package/dist/types/wallet-server/src/core/utils.d.ts +3 -0
  792. package/dist/types/wallet-server/src/delegateAction/index.d.ts +88 -0
  793. package/dist/types/wallet-server/src/hosted-wallet-gateway-worker.d.ts +10 -0
  794. package/dist/types/wallet-server/src/hosted-wallet-gateway.d.ts +126 -0
  795. package/dist/types/wallet-server/src/index.d.ts +34 -0
  796. package/dist/types/wallet-server/src/local-hosted-wallet-gateway-worker.d.ts +13 -0
  797. package/dist/types/wallet-server/src/router/auth/authRequestValidation.d.ts +97 -0
  798. package/dist/types/wallet-server/src/router/auth/commonRouterUtils.d.ts +142 -0
  799. package/dist/types/wallet-server/src/router/auth/routerApiCredentialAuth.d.ts +26 -0
  800. package/dist/types/wallet-server/src/router/auth/routerApiKeyAuth.d.ts +16 -0
  801. package/dist/types/wallet-server/src/router/auth/walletSessionFailure.d.ts +14 -0
  802. package/dist/types/wallet-server/src/router/auth/webAuthnCredentialCodecs.d.ts +20 -0
  803. package/dist/types/wallet-server/src/router/cloudflare/d1/auth/d1RouterApiAuthBoundary.d.ts +28 -0
  804. package/dist/types/wallet-server/src/router/cloudflare/d1/auth/d1RouterApiAuthConfig.d.ts +192 -0
  805. package/dist/types/wallet-server/src/router/cloudflare/d1/auth/d1RouterApiAuthService.d.ts +13 -0
  806. package/dist/types/wallet-server/src/router/cloudflare/d1/authorization/d1AuthorizationStore.d.ts +174 -0
  807. package/dist/types/wallet-server/src/router/cloudflare/d1/authorization/d1VaultProxyStore.d.ts +13 -0
  808. package/dist/types/wallet-server/src/router/cloudflare/d1/authorization/walletSessionAuthorityProjection.d.ts +24 -0
  809. package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceAuthorityInstallService.d.ts +241 -0
  810. package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceEd25519ExportRootStore.d.ts +23 -0
  811. package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceEmailOtpGrantStore.d.ts +32 -0
  812. package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceEmailOtpTargetFactor.d.ts +118 -0
  813. package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceManagementService.d.ts +22 -0
  814. package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceOwnerAuthorizationProvider.d.ts +80 -0
  815. package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceRequestProofNonceStore.d.ts +29 -0
  816. package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceRouteService.d.ts +17 -0
  817. package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceSessionRecords.d.ts +37 -0
  818. package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceSessionService.d.ts +12 -0
  819. package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceSessionStore.d.ts +149 -0
  820. package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceSourceContributionPreparationPlanner.d.ts +38 -0
  821. package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceTargetAuthenticatorStore.d.ts +19 -0
  822. package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceTargetCredentialProvider.d.ts +220 -0
  823. package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceTargetPlanner.d.ts +88 -0
  824. package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceVerifiedLinkBuilder.d.ts +54 -0
  825. package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceVerifiedLinkSourceReader.d.ts +23 -0
  826. package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/index.d.ts +15 -0
  827. package/dist/types/wallet-server/src/router/cloudflare/d1/ed25519Yao/d1Ed25519YaoCapabilityPersistence.d.ts +33 -0
  828. package/dist/types/wallet-server/src/router/cloudflare/d1/ed25519Yao/d1Ed25519YaoProductRegistrationPartitionedStateStore.d.ts +6 -0
  829. package/dist/types/wallet-server/src/router/cloudflare/d1/ed25519Yao/d1Ed25519YaoWalletSigner.d.ts +27 -0
  830. package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpChallengeIssuer.d.ts +80 -0
  831. package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpChallengeService.d.ts +48 -0
  832. package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpChallengeStore.d.ts +64 -0
  833. package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpChallengeVerifier.d.ts +126 -0
  834. package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpDeliveryRuntime.d.ts +22 -0
  835. package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpEnrollmentStore.d.ts +68 -0
  836. package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpGrantStore.d.ts +15 -0
  837. package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpRateLimitStore.d.ts +37 -0
  838. package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpRecords.d.ts +186 -0
  839. package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpRecoveryService.d.ts +45 -0
  840. package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpRegistrationEnrollmentFinalizer.d.ts +124 -0
  841. package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpServerSealRuntime.d.ts +24 -0
  842. package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1GoogleEmailOtpRegistrationAttemptStore.d.ts +51 -0
  843. package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1GoogleEmailOtpRegistrationRecords.d.ts +69 -0
  844. package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1GoogleEmailOtpSessionResolver.d.ts +57 -0
  845. package/dist/types/wallet-server/src/router/cloudflare/d1/identity/d1IdentityRecords.d.ts +38 -0
  846. package/dist/types/wallet-server/src/router/cloudflare/d1/identity/d1IdentityService.d.ts +31 -0
  847. package/dist/types/wallet-server/src/router/cloudflare/d1/near/d1NearPublicKeyStore.d.ts +30 -0
  848. package/dist/types/wallet-server/src/router/cloudflare/d1/oidc/d1OidcBoundary.d.ts +60 -0
  849. package/dist/types/wallet-server/src/router/cloudflare/d1/oidc/d1OidcVerificationService.d.ts +39 -0
  850. package/dist/types/wallet-server/src/router/cloudflare/d1/passkeyCustody/d1PasskeyCustodyEnvelopeStore.d.ts +335 -0
  851. package/dist/types/wallet-server/src/router/cloudflare/d1/passkeyCustody/d1PasskeyCustodyRouteService.d.ts +448 -0
  852. package/dist/types/wallet-server/src/router/cloudflare/d1/passkeyCustody/d1WalletCustodyCommitStore.d.ts +256 -0
  853. package/dist/types/wallet-server/src/router/cloudflare/d1/passkeyCustody/d1WalletRecoveryGoogleEmailOtpAttemptStore.d.ts +32 -0
  854. package/dist/types/wallet-server/src/router/cloudflare/d1/passkeyCustody/d1WalletRecoveryGoogleEmailOtpRecords.d.ts +116 -0
  855. package/dist/types/wallet-server/src/router/cloudflare/d1/passkeyCustody/d1WalletRecoveryGoogleEmailOtpService.d.ts +180 -0
  856. package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1EvmFamilyEcdsaRegistrationBranch.d.ts +24 -0
  857. package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1RegistrationCeremonyRecordStore.d.ts +86 -0
  858. package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1RegistrationCeremonyRecords.d.ts +121 -0
  859. package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1RegistrationCeremonyStore.d.ts +84 -0
  860. package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1RegistrationIntentService.d.ts +31 -0
  861. package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1WalletRegistrationCommitStore.d.ts +49 -0
  862. package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1WalletRegistrationService.d.ts +369 -0
  863. package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1WalletRegistrationSetup.d.ts +106 -0
  864. package/dist/types/wallet-server/src/router/cloudflare/d1/registration/walletRegistrationEstablishedSessionIssuer.d.ts +104 -0
  865. package/dist/types/wallet-server/src/router/cloudflare/d1/registration/walletRegistrationSessionCommitReceipt.d.ts +70 -0
  866. package/dist/types/wallet-server/src/router/cloudflare/d1/signingAdmission/d1RouterAbNormalSigningAdmissionStore.d.ts +26 -0
  867. package/dist/types/wallet-server/src/router/cloudflare/d1/signingLanes/d1EcdsaLanePrivateBindingResolver.d.ts +4 -0
  868. package/dist/types/wallet-server/src/router/cloudflare/d1/signingLanes/d1LaneAggregateRevocationApplicationService.d.ts +4 -0
  869. package/dist/types/wallet-server/src/router/cloudflare/d1/signingLanes/d1LaneEffectJournalStore.d.ts +25 -0
  870. package/dist/types/wallet-server/src/router/cloudflare/d1/signingLanes/d1LaneEnrollmentGateway.d.ts +20 -0
  871. package/dist/types/wallet-server/src/router/cloudflare/d1/signingLanes/d1LaneLifecycleApplicationService.d.ts +13 -0
  872. package/dist/types/wallet-server/src/router/cloudflare/d1/signingLanes/d1LaneLifecycleStore.d.ts +51 -0
  873. package/dist/types/wallet-server/src/router/cloudflare/d1/signingLanes/d1LaneLockStore.d.ts +28 -0
  874. package/dist/types/wallet-server/src/router/cloudflare/d1/signingLanes/d1LaneProtocolCommitter.d.ts +5 -0
  875. package/dist/types/wallet-server/src/router/cloudflare/d1/signingLanes/d1LaneRecords.d.ts +107 -0
  876. package/dist/types/wallet-server/src/router/cloudflare/d1/signingLanes/index.d.ts +10 -0
  877. package/dist/types/wallet-server/src/router/cloudflare/d1/versionedJson/d1VersionedJsonRecordStore.d.ts +118 -0
  878. package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletAddSignerService.d.ts +114 -0
  879. package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletAddSignerService.typecheck.d.ts +2 -0
  880. package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletAuthMethodBoundary.d.ts +90 -0
  881. package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletAuthMethodService.d.ts +359 -0
  882. package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletAuthorityStore.d.ts +143 -0
  883. package/dist/types/wallet-server/src/router/cloudflare/d1/webauthn/d1WebAuthnAuthService.d.ts +42 -0
  884. package/dist/types/wallet-server/src/router/cloudflare/d1/webauthn/d1WebAuthnRecords.d.ts +135 -0
  885. package/dist/types/wallet-server/src/router/cloudflare/d1/webauthn/d1WebAuthnStore.d.ts +89 -0
  886. package/dist/types/wallet-server/src/router/cloudflare/durableObjects/thresholdStore.d.ts +19 -0
  887. package/dist/types/wallet-server/src/router/cloudflare/durableObjects/versionedJsonRecordStore.d.ts +32 -0
  888. package/dist/types/wallet-server/src/router/cloudflare/runtime/cloudflare.types.d.ts +30 -0
  889. package/dist/types/wallet-server/src/router/cloudflare/runtime/cloudflareSignerWasm.d.ts +2 -0
  890. package/dist/types/wallet-server/src/router/cloudflare/runtime/createCloudflareRouter.d.ts +5 -0
  891. package/dist/types/wallet-server/src/router/cloudflare/runtime/createSelfHostedCloudflareSigningWorker.d.ts +23 -0
  892. package/dist/types/wallet-server/src/router/cloudflare/runtime/ed25519SessionAdapter.d.ts +16 -0
  893. package/dist/types/wallet-server/src/router/cloudflare/runtime/environment.d.ts +5 -0
  894. package/dist/types/wallet-server/src/router/cloudflare/runtime/routerAbPrewarm.d.ts +9 -0
  895. package/dist/types/wallet-server/src/router/cloudflare/runtime/routerAbServiceBindings.d.ts +11 -0
  896. package/dist/types/wallet-server/src/router/cloudflare/runtime/sessionAdapterRuntime.d.ts +28 -0
  897. package/dist/types/wallet-server/src/router/cloudflare/runtime/staticWalletConsoleBinding.d.ts +27 -0
  898. package/dist/types/wallet-server/src/router/cloudflare/runtime/tenantRootCreationGrant.d.ts +24 -0
  899. package/dist/types/wallet-server/src/router/cloudflare/runtime/walletConsoleOps.d.ts +143 -0
  900. package/dist/types/wallet-server/src/router/cloudflare/runtime/walletConsoleOpsClient.d.ts +20 -0
  901. package/dist/types/wallet-server/src/router/cloudflare/runtime/walletConsoleTenantRootLineage.d.ts +7 -0
  902. package/dist/types/wallet-server/src/router/cloudflare/runtime/walletControlOps.d.ts +21 -0
  903. package/dist/types/wallet-server/src/router/cloudflare/runtime/walletGateway.d.ts +30 -0
  904. package/dist/types/wallet-server/src/router/cloudflare/runtime/walletRuntimeOps.d.ts +64 -0
  905. package/dist/types/wallet-server/src/router/cloudflare/runtime/walletRuntimeOpsHandler.d.ts +3 -0
  906. package/dist/types/wallet-server/src/router/cloudflare/signingLanes/cloudflareLaneCurveExecution.d.ts +217 -0
  907. package/dist/types/wallet-server/src/router/cloudflare/signingLanes/cloudflareLaneProtocolCommitter.d.ts +73 -0
  908. package/dist/types/wallet-server/src/router/cloudflare/signingLanes/cloudflareOrdinaryInactiveSignerMaterialReservation.d.ts +100 -0
  909. package/dist/types/wallet-server/src/router/cloudflare/signingLanes/index.d.ts +4 -0
  910. package/dist/types/wallet-server/src/router/cloudflare/signingLanes/linkedDeviceEd25519CeremonyBinding.d.ts +6 -0
  911. package/dist/types/wallet-server/src/router/cloudflare-adaptor.d.ts +75 -0
  912. package/dist/types/wallet-server/src/router/domains/ecdsa/routerAbEcdsaStrictRegistration.d.ts +199 -0
  913. package/dist/types/wallet-server/src/router/domains/ecdsa/thresholdEcdsaRequestValidation.d.ts +32 -0
  914. package/dist/types/wallet-server/src/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistration.d.ts +172 -0
  915. package/dist/types/wallet-server/src/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistration.typecheck.d.ts +2 -0
  916. package/dist/types/wallet-server/src/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistrationPartitionedStateStore.d.ts +156 -0
  917. package/dist/types/wallet-server/src/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistrationPartitioning.d.ts +59 -0
  918. package/dist/types/wallet-server/src/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistrationPersistence.d.ts +47 -0
  919. package/dist/types/wallet-server/src/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistrationRequestScopedRunner.d.ts +29 -0
  920. package/dist/types/wallet-server/src/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistrationRequestScopedRuntime.d.ts +20 -0
  921. package/dist/types/wallet-server/src/router/domains/ed25519Yao/export/routerAbEd25519YaoExport.d.ts +271 -0
  922. package/dist/types/wallet-server/src/router/domains/ed25519Yao/export/routerAbEd25519YaoExportRequestScopedCloudflare.d.ts +12 -0
  923. package/dist/types/wallet-server/src/router/domains/ed25519Yao/recovery/routerAbEd25519YaoRecovery.d.ts +509 -0
  924. package/dist/types/wallet-server/src/router/domains/ed25519Yao/recovery/routerAbEd25519YaoRecoveryActivation.typecheck.d.ts +2 -0
  925. package/dist/types/wallet-server/src/router/domains/ed25519Yao/recovery/routerAbEd25519YaoRecoveryRequestScopedCloudflare.d.ts +14 -0
  926. package/dist/types/wallet-server/src/router/domains/ed25519Yao/recovery/routerAbEd25519YaoRecoveryWalletSessionAuthorization.d.ts +20 -0
  927. package/dist/types/wallet-server/src/router/domains/ed25519Yao/registration/routerAbEd25519YaoHttpRegistrationBackend.d.ts +56 -0
  928. package/dist/types/wallet-server/src/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistration.d.ts +200 -0
  929. package/dist/types/wallet-server/src/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistrationExecutionRecord.d.ts +70 -0
  930. package/dist/types/wallet-server/src/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistrationIntentAuthorization.d.ts +73 -0
  931. package/dist/types/wallet-server/src/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistrationRequestScopedCloudflare.d.ts +9 -0
  932. package/dist/types/wallet-server/src/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistrationSideEffectBoundary.d.ts +131 -0
  933. package/dist/types/wallet-server/src/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistrationSideEffectBoundary.typecheck.d.ts +2 -0
  934. package/dist/types/wallet-server/src/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistrationTwoPhaseRunner.d.ts +62 -0
  935. package/dist/types/wallet-server/src/router/domains/ed25519Yao/routerAbEd25519YaoGatewayEnvelope.d.ts +17 -0
  936. package/dist/types/wallet-server/src/router/domains/ed25519Yao/session/routerAbEd25519YaoWalletSession.d.ts +178 -0
  937. package/dist/types/wallet-server/src/router/domains/ed25519Yao/session/routerAbEd25519YaoWalletSession.typecheck.d.ts +2 -0
  938. package/dist/types/wallet-server/src/router/domains/ed25519Yao/session/thresholdEd25519RequestValidation.d.ts +19 -0
  939. package/dist/types/wallet-server/src/router/domains/emailOtp/emailOtpExportPolicy.d.ts +32 -0
  940. package/dist/types/wallet-server/src/router/domains/emailOtp/emailOtpRequestValidation.d.ts +13 -0
  941. package/dist/types/wallet-server/src/router/domains/emailOtp/emailOtpRouteHandlers.d.ts +35 -0
  942. package/dist/types/wallet-server/src/router/domains/emailOtp/emailOtpSessionRouteHelpers.d.ts +134 -0
  943. package/dist/types/wallet-server/src/router/domains/passkeyCustody/envelopeRevocationAdmission.d.ts +31 -0
  944. package/dist/types/wallet-server/src/router/domains/passkeyCustody/passkeyCustodyEnvelopeRetrieval.d.ts +85 -0
  945. package/dist/types/wallet-server/src/router/domains/passkeyCustody/passkeyCustodyEnvelopeRetrievalRoute.d.ts +42 -0
  946. package/dist/types/wallet-server/src/router/domains/passkeyCustody/registrationCustodyOutcome.d.ts +38 -0
  947. package/dist/types/wallet-server/src/router/domains/passkeyCustody/verifiedCustodyFactor.d.ts +35 -0
  948. package/dist/types/wallet-server/src/router/domains/passkeyCustody/walletCustodyRegistrationAdmission.d.ts +56 -0
  949. package/dist/types/wallet-server/src/router/domains/passkeyCustody/walletCustodyRegistrationCommit.d.ts +65 -0
  950. package/dist/types/wallet-server/src/router/domains/passkeyCustody/walletRecoveryAttempt.d.ts +59 -0
  951. package/dist/types/wallet-server/src/router/domains/passkeyCustody/walletRecoveryFinalization.d.ts +81 -0
  952. package/dist/types/wallet-server/src/router/domains/passkeyCustody/walletRecoveryKeyManifest.d.ts +184 -0
  953. package/dist/types/wallet-server/src/router/domains/passkeyCustody/walletRecoveryRotation.d.ts +31 -0
  954. package/dist/types/wallet-server/src/router/domains/signingOperations/ed25519AuthorizedOperationReceipt.d.ts +32 -0
  955. package/dist/types/wallet-server/src/router/domains/signingOperations/routerAbNormalSigningAdmissionCore.d.ts +48 -0
  956. package/dist/types/wallet-server/src/router/domains/signingOperations/routerAbPrivateSigningWorker.d.ts +909 -0
  957. package/dist/types/wallet-server/src/router/domains/signingOperations/walletExecutionAdmission.d.ts +104 -0
  958. package/dist/types/wallet-server/src/router/domains/syncAccount/syncAccountRequestValidation.d.ts +30 -0
  959. package/dist/types/wallet-server/src/router/domains/tenantRoot/tenantRootCustodyLineage.d.ts +14 -0
  960. package/dist/types/wallet-server/src/router/domains/tenantRoot/tenantRootEcdsaWalletSessionComposition.d.ts +35 -0
  961. package/dist/types/wallet-server/src/router/domains/tenantRoot/tenantRootEd25519WalletSessionComposition.d.ts +35 -0
  962. package/dist/types/wallet-server/src/router/domains/tenantRoot/tenantRootIdentityResolution.d.ts +56 -0
  963. package/dist/types/wallet-server/src/router/domains/walletRegistration/walletRegistrationInputs.d.ts +78 -0
  964. package/dist/types/wallet-server/src/router/domains/walletRegistration/walletRegistrationRoutes.d.ts +91 -0
  965. package/dist/types/wallet-server/src/router/domains/walletRegistration/walletRegistrationSetupPayload.d.ts +105 -0
  966. package/dist/types/wallet-server/src/router/domains/walletUnlock/walletUnlockRequestedCapabilitiesValidation.d.ts +39 -0
  967. package/dist/types/wallet-server/src/router/domains/walletUnlock/walletUnlockRouteHandlers.d.ts +172 -0
  968. package/dist/types/wallet-server/src/router/express-adaptor.d.ts +22 -0
  969. package/dist/types/wallet-server/src/router/framework/apiCredentialPorts.d.ts +82 -0
  970. package/dist/types/wallet-server/src/router/framework/applyRouteMetering.d.ts +23 -0
  971. package/dist/types/wallet-server/src/router/framework/authServicePort.d.ts +1392 -0
  972. package/dist/types/wallet-server/src/router/framework/enforceRoutePolicy.d.ts +48 -0
  973. package/dist/types/wallet-server/src/router/framework/http.d.ts +12 -0
  974. package/dist/types/wallet-server/src/router/framework/logger.d.ts +5 -0
  975. package/dist/types/wallet-server/src/router/framework/modules.d.ts +17 -0
  976. package/dist/types/wallet-server/src/router/framework/ror/index.d.ts +7 -0
  977. package/dist/types/wallet-server/src/router/framework/ror/normalize.d.ts +14 -0
  978. package/dist/types/wallet-server/src/router/framework/ror/options.d.ts +9 -0
  979. package/dist/types/wallet-server/src/router/framework/ror/provider.d.ts +17 -0
  980. package/dist/types/wallet-server/src/router/framework/ror/staticProvider.d.ts +11 -0
  981. package/dist/types/wallet-server/src/router/framework/routeAuthPolicy.d.ts +34 -0
  982. package/dist/types/wallet-server/src/router/framework/routeDefinitions.d.ts +27 -0
  983. package/dist/types/wallet-server/src/router/framework/routeDefinitions.typecheck.d.ts +2 -0
  984. package/dist/types/wallet-server/src/router/framework/routeExecutionContext.d.ts +29 -0
  985. package/dist/types/wallet-server/src/router/framework/routeExtensions.d.ts +27 -0
  986. package/dist/types/wallet-server/src/router/framework/routeMeteringPolicy.d.ts +17 -0
  987. package/dist/types/wallet-server/src/router/framework/routeRequestValidation.d.ts +5 -0
  988. package/dist/types/wallet-server/src/router/framework/routeResponses.d.ts +17 -0
  989. package/dist/types/wallet-server/src/router/framework/routerApi.d.ts +221 -0
  990. package/dist/types/wallet-server/src/router/framework/routerApiRouteSurface.d.ts +14 -0
  991. package/dist/types/wallet-server/src/router/framework/routerApiWebhooks.d.ts +12 -0
  992. package/dist/types/wallet-server/src/router/framework/runtimeSnapshotConsumer.d.ts +28 -0
  993. package/dist/types/wallet-server/src/router/framework/versionedJsonRecordStore.d.ts +20 -0
  994. package/dist/types/wallet-server/src/router/ror-adaptor.d.ts +3 -0
  995. package/dist/types/wallet-server/src/router/transport/fetch/createFetchRouter.d.ts +8 -0
  996. package/dist/types/wallet-server/src/router/transport/fetch/fetchRouter.types.d.ts +23 -0
  997. package/dist/types/wallet-server/src/router/transport/fetch/routes/auth.d.ts +3 -0
  998. package/dist/types/wallet-server/src/router/transport/fetch/routes/deviceLinking.d.ts +202 -0
  999. package/dist/types/wallet-server/src/router/transport/fetch/routes/deviceLinkingOwnerAuthorization.d.ts +92 -0
  1000. package/dist/types/wallet-server/src/router/transport/fetch/routes/deviceManagement.d.ts +29 -0
  1001. package/dist/types/wallet-server/src/router/transport/fetch/routes/health.d.ts +4 -0
  1002. package/dist/types/wallet-server/src/router/transport/fetch/routes/nearPublicKeys.d.ts +3 -0
  1003. package/dist/types/wallet-server/src/router/transport/fetch/routes/normalSigningRouterProxy.d.ts +33 -0
  1004. package/dist/types/wallet-server/src/router/transport/fetch/routes/passkeyCustody.d.ts +66 -0
  1005. package/dist/types/wallet-server/src/router/transport/fetch/routes/sessions.d.ts +31 -0
  1006. package/dist/types/wallet-server/src/router/transport/fetch/routes/syncAccount.d.ts +3 -0
  1007. package/dist/types/wallet-server/src/router/transport/fetch/routes/syncAccountBootstrap.d.ts +128 -0
  1008. package/dist/types/wallet-server/src/router/transport/fetch/routes/thresholdEcdsa.d.ts +87 -0
  1009. package/dist/types/wallet-server/src/router/transport/fetch/routes/thresholdEd25519.d.ts +47 -0
  1010. package/dist/types/wallet-server/src/router/transport/fetch/routes/walletExecutionLanePreflight.d.ts +4 -0
  1011. package/dist/types/wallet-server/src/router/transport/fetch/routes/walletRegistration.d.ts +3 -0
  1012. package/dist/types/wallet-server/src/router/transport/fetch/routes/webauthnAuthenticators.d.ts +3 -0
  1013. package/dist/types/wallet-server/src/router/transport/fetch/routes/wellKnown.d.ts +3 -0
  1014. package/dist/types/wallet-server/src/storage/d1Sql.d.ts +14 -0
  1015. package/dist/types/wallet-server/src/storage/tenantRoute.d.ts +136 -0
  1016. package/dist/types/wallet-server/src/storage/tenantRoute.typecheck.d.ts +2 -0
  1017. package/dist/types/wallet-server/src/tenant-root.d.ts +5 -0
  1018. package/dist/types/wallet-server/src/threshold/session/signingSessionSeal/crypto/cipher.d.ts +45 -0
  1019. package/dist/types/wallet-server/src/threshold/session/signingSessionSeal/crypto/shamir3PassWasm.d.ts +16 -0
  1020. package/dist/types/wallet-server/src/threshold/session/signingSessionSeal/guards/backends.d.ts +23 -0
  1021. package/dist/types/wallet-server/src/threshold/session/signingSessionSeal/guards/index.d.ts +46 -0
  1022. package/dist/types/wallet-server/src/threshold/session/signingSessionSeal/idempotency.d.ts +3 -0
  1023. package/dist/types/wallet-server/src/threshold/session/signingSessionSeal/idempotencyBackends.d.ts +24 -0
  1024. package/dist/types/wallet-server/src/threshold/session/signingSessionSeal/idempotencyRecords.d.ts +22 -0
  1025. package/dist/types/wallet-server/src/threshold/session/signingSessionSeal/index.d.ts +23 -0
  1026. package/dist/types/wallet-server/src/threshold/session/signingSessionSeal/observability/audit.d.ts +9 -0
  1027. package/dist/types/wallet-server/src/threshold/session/signingSessionSeal/options.d.ts +9 -0
  1028. package/dist/types/wallet-server/src/threshold/session/signingSessionSeal/routesOptions.d.ts +20 -0
  1029. package/dist/types/wallet-server/src/threshold/session/signingSessionSeal/service.d.ts +3 -0
  1030. package/dist/types/wallet-server/src/threshold/session/signingSessionSeal/signingSessionSeal.typecheck.d.ts +2 -0
  1031. package/dist/types/wallet-server/src/threshold/session/signingSessionSeal/signingSessionSeal.types.d.ts +148 -0
  1032. package/dist/types/wallet-server/src/threshold/session/signingSessionSeal/transport/express.d.ts +12 -0
  1033. package/dist/types/wallet-server/src/threshold/session/signingSessionSeal/transport/fetch.d.ts +13 -0
  1034. package/dist/types/wallet-server/src/threshold/session/signingSessionSeal/transport/shared.d.ts +24 -0
  1035. package/dist/types/wallet-server/src/threshold/statusCodes.d.ts +10 -0
  1036. package/dist/types/wallet-server/src/wasm/signer.d.ts +8 -0
  1037. package/migrations/d1-signer/0001_signer_d1_initial.sql +2486 -0
  1038. package/migrations/d1-signer/0002_signer_post_103_canonical_upgrade.sql +1576 -0
  1039. package/migrations/d1-signer/0003_r107_wallet_authorization.sql +299 -0
  1040. package/migrations/d1-signer/0004_remove_legacy_email_recovery.sql +14 -0
  1041. package/migrations/d1-signer/0005_r103p8_linked_owner_auth_bindings.sql +92 -0
  1042. package/migrations/d1-signer/0006_r103p8_linked_device_custody_transfers.sql +77 -0
  1043. package/migrations/d1-signer/0007_r103p8_wallet_session_auth_method_provenance.sql +18 -0
  1044. package/migrations/d1-signer/0008_r103p8_linked_device_session_cas_guard.sql +35 -0
  1045. package/migrations/d1-signer/0009_linked_device_email_otp.sql +405 -0
  1046. package/migrations/d1-signer/0010_linked_device_session_target_factor.sql +78 -0
  1047. package/migrations/d1-signer/0011_linked_device_ed25519_export_root.sql +9 -0
  1048. package/migrations/d1-signer/0012_versioned_json_cas_guard.sql +3 -0
  1049. package/migrations/d1-signer/0013_linked_device_export_authorization.sql +133 -0
  1050. package/migrations/d1-signer/0014_wallet_recovery_code_locators.sql +19 -0
  1051. package/migrations/d1-signer/0015_r103e_authority_baseline.sql +259 -0
  1052. package/migrations/d1-signer/0016_r103e_wallet_session_authorizations_v2.sql +133 -0
  1053. package/migrations/d1-signer/0017_r103e_link_session_state.sql +83 -0
  1054. package/migrations/d1-signer/0018_r103e_linked_device_authority_installations.sql +34 -0
  1055. package/migrations/d1-signer/0019_r103e_email_otp_device_methods.sql +3 -0
  1056. package/migrations/d1-signer/0020_r103e_wallet_session_operation_credentials.sql +12 -0
  1057. package/migrations/d1-signer/0021_linked_device_source_contribution_transcripts.sql +64 -0
  1058. package/migrations/d1-signer/0022_r109c_multi_auth_email_cardinality.sql +118 -0
  1059. package/migrations/d1-signer/0023_r109d_first_email_linked_device.sql +111 -0
  1060. package/migrations/d1-signer/0024_r103f_v2_authorized_operation_claim.sql +99 -0
  1061. package/migrations/d1-signer/0025_r109d_email_enrollment_wallet_cardinality.sql +57 -0
  1062. package/migrations/d1-signer/0026_r115_wallet_recovery_authority_provenance.sql +253 -0
  1063. package/migrations/d1-signer/0027_r115_email_otp_recovery_bootstrap.sql +90 -0
  1064. package/migrations/d1-signer/0028_r103f_phase1_additive_schema_bridge.sql +1119 -0
  1065. package/migrations/d1-signer/0029_r103f_phase0_registration_replay_tokens.sql +135 -0
  1066. package/migrations/d1-signer/0030_r103f_wallet_session_client_capability.sql +17 -0
  1067. package/migrations/d1-signer/0031_r103f_delete_registration_replay_tokens.sql +4 -0
  1068. package/migrations/d1-signer/0032_r103f_exact_authorized_operation_enforcement.sql +149 -0
  1069. package/migrations/d1-signer/0033_r103f_linked_delivery_recipient.sql +6 -0
  1070. package/migrations/d1-signer/0034_r103f_exact_wallet_session_cutover.sql +743 -0
  1071. package/migrations/d1-signer/0035_r103f_linked_delivery_acknowledgement_cleanup_window.sql +413 -0
  1072. package/package.json +132 -0
  1073. package/scripts/d1-local-migrate-signer.mjs +148 -0
  1074. package/src/README.md +75 -0
  1075. package/wrangler.local-hosted-wallet-gateway.toml +37 -0
@@ -0,0 +1,1110 @@
1
+ import { createHash, createPrivateKey, createPublicKey, sign } from 'node:crypto';
2
+ import { chmodSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs';
3
+ import path from 'node:path';
4
+ import { createRequire } from 'node:module';
5
+ import { fileURLToPath } from 'node:url';
6
+
7
+ const require = createRequire(import.meta.url);
8
+ const runtimeRoot = fileURLToPath(new URL('../', import.meta.url));
9
+ const walletServerRoot = path.dirname(require.resolve('@seams/wallet-server/package.json'));
10
+ export { localPeerVerifyingKeyHex } from './local-key-material.mjs';
11
+
12
+ import { localPeerSigningKeyBase64Url, localPeerVerifyingKeyHex } from './local-key-material.mjs';
13
+
14
+ const STRICT_WORKER_ROLES = Object.freeze([
15
+ { role: 'router', port: 4102 },
16
+ {
17
+ role: 'deriver-a',
18
+ port: 4103,
19
+ privateD1: {
20
+ databaseName: 'router-ab-deriver-a-private',
21
+ migrationsDirectory: 'deriver-a',
22
+ localDatabaseId: '00000000-0000-0000-0000-0000000094a1',
23
+ },
24
+ },
25
+ {
26
+ role: 'deriver-b',
27
+ port: 4104,
28
+ privateD1: {
29
+ databaseName: 'router-ab-deriver-b-private',
30
+ migrationsDirectory: 'deriver-b',
31
+ localDatabaseId: '00000000-0000-0000-0000-0000000094b1',
32
+ },
33
+ },
34
+ {
35
+ role: 'signing-worker',
36
+ port: 4105,
37
+ privateD1: {
38
+ databaseName: 'router-ab-signing-worker-private',
39
+ migrationsDirectory: 'signing-worker',
40
+ localDatabaseId: '00000000-0000-0000-0000-0000000094c1',
41
+ },
42
+ },
43
+ { role: 'tenant-root-control-plane', port: 4106 },
44
+ ]);
45
+ const X25519_PKCS8_PREFIX = Buffer.from('302e020100300506032b656e04220420', 'hex');
46
+ const X25519_SPKI_PREFIX = Buffer.from('302a300506032b656e032100', 'hex');
47
+ const ED25519_PKCS8_PREFIX = Buffer.from('302e020100300506032b657004220420', 'hex');
48
+ const ED25519_SPKI_PREFIX = Buffer.from('302a300506032b6570032100', 'hex');
49
+ const LOCAL_CEREMONY_JWT_AUDIENCE = 'router-ab';
50
+ const LOCAL_CEREMONY_JWT_KEY_ID = 'local-router-ab-r1';
51
+ const LOCAL_KEY_EPOCH = 'epoch-1';
52
+
53
+ export function prepareLocalHostedWalletGatewayConfig(input) {
54
+ const repoRoot = path.resolve(input.repoRoot);
55
+ const localEnvRoot = path.resolve(input.localEnvRoot ?? repoRoot);
56
+ const outputRoot = path.resolve(
57
+ input.outputRoot ?? path.join(localEnvRoot, '.runtime', 'wallet-gateway'),
58
+ );
59
+ const outputConfigPath = path.join(outputRoot, 'wrangler.local-hosted-wallet-gateway.toml');
60
+ const secretPath = path.join(outputRoot, '.dev.vars.wallet-gateway');
61
+ const routerEnv = readEnvMap(path.join(localEnvRoot, '.env.router-ab.router.local'));
62
+ const deriverAEnv = readEnvMap(path.join(localEnvRoot, '.env.router-ab.deriver-a.local'));
63
+ const deriverBEnv = readEnvMap(path.join(localEnvRoot, '.env.router-ab.deriver-b.local'));
64
+ const signingWorkerEnv = readEnvMap(
65
+ path.join(localEnvRoot, '.env.router-ab.signing-worker.local'),
66
+ );
67
+ const gatewayUrl = requiredHttpUrl(input.gatewayUrl, 'gatewayUrl');
68
+ const ceremonyPrivateJwkJson = readCeremonyPrivateJwkJson(input.ceremonyPrivateJwkPath);
69
+ const deployment = requireLocalDeployment(input.deployment);
70
+ const appOrigins = requireHttpOrigins(input.appOrigins);
71
+
72
+ mkdirSync(outputRoot, { recursive: true });
73
+ const sourceConfigPath = path.join(
74
+ walletServerRoot,
75
+ 'wrangler.local-hosted-wallet-gateway.toml',
76
+ );
77
+ let config = readFileSync(sourceConfigPath, 'utf8');
78
+ config = replaceTomlAssignment(
79
+ config,
80
+ 'main',
81
+ relativePosixPath(
82
+ outputRoot,
83
+ require.resolve('@seams/wallet-server/local-hosted-wallet-gateway-worker'),
84
+ ),
85
+ );
86
+ config = replaceTomlAssignment(
87
+ config,
88
+ 'migrations_dir',
89
+ relativePosixPath(
90
+ outputRoot,
91
+ path.join(walletServerRoot, 'migrations', 'd1-signer'),
92
+ ),
93
+ );
94
+ writeFileSync(outputConfigPath, config);
95
+
96
+ const internalAuthSecret = requiredEnv(routerEnv, 'ROUTER_AB_INTERNAL_SERVICE_AUTH_SECRET');
97
+ const secretValues = {
98
+ ACCOUNT_ID_DERIVATION_SECRET: localSecret(internalAuthSecret, 'account-id-derivation'),
99
+ GOOGLE_OIDC_CLIENT_ID: optionalText(input.googleOidcClientId),
100
+ HOSTED_WALLET_ORIGINS: appOrigins.join(','),
101
+ LINKED_DEVICE_TARGET_DESCRIPTOR_HMAC_SECRET: localSecret(
102
+ internalAuthSecret,
103
+ 'linked-device-target',
104
+ ),
105
+ RELAY_CORS_ORIGINS: appOrigins.join(','),
106
+ RELAY_SESSION_HMAC_SECRET: localSecret(internalAuthSecret, 'relay-session'),
107
+ ROUTER_AB_CEREMONY_JWT_AUDIENCE: LOCAL_CEREMONY_JWT_AUDIENCE,
108
+ ROUTER_AB_CEREMONY_JWT_ISSUER: gatewayUrl,
109
+ ROUTER_AB_CEREMONY_JWT_KEY_ID: LOCAL_CEREMONY_JWT_KEY_ID,
110
+ ROUTER_AB_CEREMONY_JWT_PRIVATE_JWK: ceremonyPrivateJwkJson,
111
+ ROUTER_AB_ECDSA_REGISTRATION_TOPOLOGY_JSON: localRegistrationTopologyJson({
112
+ routerEnv,
113
+ signingWorkerEnv,
114
+ }),
115
+ ROUTER_AB_INTERNAL_SERVICE_AUTH_SECRET: internalAuthSecret,
116
+ ROUTER_AB_NORMAL_SIGNING_WORKER_ID: requiredEnv(routerEnv, 'SIGNING_WORKER_ID'),
117
+ ROUTER_AB_PUBLIC_KEYSET_JSON: localPublicKeysetJson({
118
+ routerEnv,
119
+ deriverAEnv,
120
+ deriverBEnv,
121
+ signingWorkerEnv,
122
+ }),
123
+ SEAMS_STAGING_ENV_ID: deployment.deployment.environmentId,
124
+ SEAMS_STAGING_ORG_ID: deployment.deployment.orgId,
125
+ SEAMS_STAGING_PROJECT_ID: deployment.deployment.projectId,
126
+ SIGNING_SESSION_SEAL_ACCEPTED_WARM_KEY_VERSIONS: 'signing-session-seal-local-r2',
127
+ SIGNING_SESSION_SEAL_CURRENT_KEY_VERSION: 'signing-session-seal-local-r2',
128
+ SIGNING_SESSION_SEAL_ROOT_SECRET_B64U: localSecret(internalAuthSecret, 'signing-session-seal'),
129
+ SIGNING_WORKER_ID: requiredEnv(routerEnv, 'SIGNING_WORKER_ID'),
130
+ WALLET_LOCAL_DEPLOYMENT_JSON: JSON.stringify(deployment),
131
+ };
132
+ writeFileSync(secretPath, renderDevVars(secretValues), { mode: 0o600 });
133
+ chmodSync(secretPath, 0o600);
134
+
135
+ return Object.freeze({
136
+ configPath: outputConfigPath,
137
+ secretPath,
138
+ gatewayUrl,
139
+ signerDatabaseName: 'seams-wallet-signer-local',
140
+ });
141
+ }
142
+
143
+ function requireLocalDeployment(value) {
144
+ if (!value || typeof value !== 'object' || Array.isArray(value)) {
145
+ throw new Error('deployment must be a local Wallet deployment object');
146
+ }
147
+ return value;
148
+ }
149
+
150
+ function requireHttpOrigins(values) {
151
+ if (!Array.isArray(values) || values.length === 0) {
152
+ throw new Error('appOrigins must contain at least one origin');
153
+ }
154
+ return Object.freeze(values.map((value) => requiredHttpUrl(value, 'appOrigins')));
155
+ }
156
+
157
+ function requiredHttpUrl(value, label) {
158
+ const url = new URL(requireNonEmptyInput(value, label));
159
+ if (url.protocol !== 'http:' && url.protocol !== 'https:') {
160
+ throw new Error(`${label} must use HTTP or HTTPS`);
161
+ }
162
+ return url.origin;
163
+ }
164
+
165
+ function readCeremonyPrivateJwkJson(filePath) {
166
+ const resolvedPath = path.resolve(requireNonEmptyInput(filePath, 'ceremonyPrivateJwkPath'));
167
+ const value = JSON.parse(readFileSync(resolvedPath, 'utf8'));
168
+ if (
169
+ !value ||
170
+ typeof value !== 'object' ||
171
+ Array.isArray(value) ||
172
+ value.kty !== 'OKP' ||
173
+ value.crv !== 'Ed25519' ||
174
+ typeof value.x !== 'string' ||
175
+ !value.x ||
176
+ typeof value.d !== 'string' ||
177
+ !value.d
178
+ ) {
179
+ throw new Error(`Invalid ceremony private JWK at ${resolvedPath}`);
180
+ }
181
+ return JSON.stringify(value);
182
+ }
183
+
184
+ function localPublicKeysetJson(input) {
185
+ return JSON.stringify({
186
+ keyset_version: 'router_ab_keyset_v2',
187
+ signer_envelope_hpke: {
188
+ current: {
189
+ deriver_a: {
190
+ role: 'signer_a',
191
+ key_epoch: LOCAL_KEY_EPOCH,
192
+ public_key: requiredEnv(input.routerEnv, 'DERIVER_A_ED25519_YAO_INPUT_PUBLIC_KEY'),
193
+ },
194
+ deriver_b: {
195
+ role: 'signer_b',
196
+ key_epoch: LOCAL_KEY_EPOCH,
197
+ public_key: requiredEnv(input.routerEnv, 'DERIVER_B_ED25519_YAO_INPUT_PUBLIC_KEY'),
198
+ },
199
+ },
200
+ },
201
+ signer_peer_verifying_keys: {
202
+ deriver_a: {
203
+ role: 'signer_a',
204
+ verifying_key_hex: localPeerVerifyingKeyHex(
205
+ requiredEnv(input.deriverAEnv, 'DERIVER_A_PEER_SIGNING_KEY'),
206
+ ),
207
+ },
208
+ deriver_b: {
209
+ role: 'signer_b',
210
+ verifying_key_hex: localPeerVerifyingKeyHex(
211
+ requiredEnv(input.deriverBEnv, 'DERIVER_B_PEER_SIGNING_KEY'),
212
+ ),
213
+ },
214
+ },
215
+ signing_worker_server_output_hpke: {
216
+ key_epoch: requiredEnv(input.signingWorkerEnv, 'SIGNING_WORKER_KEY_EPOCH'),
217
+ public_key: requiredEnv(
218
+ input.signingWorkerEnv,
219
+ 'SIGNING_WORKER_SERVER_OUTPUT_HPKE_PUBLIC_KEY',
220
+ ),
221
+ },
222
+ });
223
+ }
224
+
225
+ function localRegistrationTopologyJson(input) {
226
+ return JSON.stringify({
227
+ routerId: 'router-ab-mpc-router',
228
+ signerSet: {
229
+ signer_set_id: 'local-signer-set-v1',
230
+ policy: 'all_2',
231
+ signer_a: { role: 'signer_a', signer_id: 'signer-a', key_epoch: LOCAL_KEY_EPOCH },
232
+ signer_b: { role: 'signer_b', signer_id: 'signer-b', key_epoch: LOCAL_KEY_EPOCH },
233
+ selected_server: {
234
+ server_id: requiredEnv(input.signingWorkerEnv, 'SIGNING_WORKER_ID'),
235
+ key_epoch: requiredEnv(input.signingWorkerEnv, 'SIGNING_WORKER_KEY_EPOCH'),
236
+ recipient_encryption_key: requiredEnv(
237
+ input.signingWorkerEnv,
238
+ 'SIGNING_WORKER_SERVER_OUTPUT_HPKE_PUBLIC_KEY',
239
+ ),
240
+ },
241
+ },
242
+ deriverRecipientKeys: {
243
+ deriver_a: {
244
+ role: 'signer_a',
245
+ key_epoch: LOCAL_KEY_EPOCH,
246
+ public_key: requiredEnv(input.routerEnv, 'DERIVER_A_ED25519_YAO_INPUT_PUBLIC_KEY'),
247
+ },
248
+ deriver_b: {
249
+ role: 'signer_b',
250
+ key_epoch: LOCAL_KEY_EPOCH,
251
+ public_key: requiredEnv(input.routerEnv, 'DERIVER_B_ED25519_YAO_INPUT_PUBLIC_KEY'),
252
+ },
253
+ },
254
+ });
255
+ }
256
+
257
+ function localSecret(seed, purpose) {
258
+ return createHash('sha256')
259
+ .update(`seams/wallet/local-gateway/v1/${purpose}\0`, 'utf8')
260
+ .update(seed, 'utf8')
261
+ .digest('base64url');
262
+ }
263
+
264
+ function renderDevVars(values) {
265
+ return `${Object.entries(values)
266
+ .filter(([, value]) => value)
267
+ .map(([key, value]) => `${key}=${singleQuotedDevVar(value, key)}`)
268
+ .join('\n')}\n`;
269
+ }
270
+
271
+ function singleQuotedDevVar(value, key) {
272
+ if (value.includes("'") || value.includes('\n') || value.includes('\r')) {
273
+ throw new Error(`${key} cannot be represented in the local Wrangler env file`);
274
+ }
275
+ return `'${value}'`;
276
+ }
277
+
278
+ function optionalText(value) {
279
+ return typeof value === 'string' ? value.trim() : '';
280
+ }
281
+
282
+ function relativePosixPath(fromDirectory, targetPath) {
283
+ return path.relative(fromDirectory, targetPath).split(path.sep).join('/');
284
+ }
285
+
286
+ export function prepareRouterAbStrictLocalRuntimeConfigs(input) {
287
+ const repoRoot = path.resolve(input.repoRoot);
288
+ const localEnvRoot = path.resolve(input.localEnvRoot ?? repoRoot);
289
+ const outputRoot = path.resolve(
290
+ input.outputRoot ?? path.join(localEnvRoot, '.runtime', 'router-ab-strict'),
291
+ );
292
+ const routerEnv = readEnvMap(path.join(localEnvRoot, '.env.router-ab.router.local'));
293
+ const deriverAEnv = readEnvMap(path.join(localEnvRoot, '.env.router-ab.deriver-a.local'));
294
+ const deriverBEnv = readEnvMap(path.join(localEnvRoot, '.env.router-ab.deriver-b.local'));
295
+ const signingWorkerEnv = readEnvMap(
296
+ path.join(localEnvRoot, '.env.router-ab.signing-worker.local'),
297
+ );
298
+ const tenantRootKeys = resolveLocalTenantRootKeyMaterial({
299
+ repoRoot,
300
+ localEnvRoot,
301
+ });
302
+ const privateD1Keys = Object.freeze({
303
+ deriverA: deriveLocalPrivateD1KeyPair(
304
+ requiredEnv(deriverAEnv, 'DERIVER_A_ENVELOPE_HPKE_PRIVATE_KEY'),
305
+ 'deriver-a',
306
+ ),
307
+ deriverB: deriveLocalPrivateD1KeyPair(
308
+ requiredEnv(deriverBEnv, 'DERIVER_B_ENVELOPE_HPKE_PRIVATE_KEY'),
309
+ 'deriver-b',
310
+ ),
311
+ signingWorker: deriveLocalPrivateD1KeyPair(
312
+ requiredEnv(signingWorkerEnv, 'SIGNING_WORKER_SERVER_OUTPUT_HPKE_PRIVATE_KEY'),
313
+ 'signing-worker',
314
+ ),
315
+ });
316
+ const ceremonyJwksJson = requireNonEmptyInput(input.ceremonyJwksJson, 'ceremonyJwksJson');
317
+ const sdkRouterUrl = requiredEnv(routerEnv, 'GATEWAY_PUBLIC_URL');
318
+ const mpcRouterUrl = `http://127.0.0.1:${STRICT_WORKER_ROLES[0].port}`;
319
+
320
+ mkdirSync(outputRoot, { recursive: true });
321
+
322
+ const configs = [];
323
+ for (const { role, port, privateD1 = null } of STRICT_WORKER_ROLES) {
324
+ const sourcePath = path.join(
325
+ runtimeRoot,
326
+ `wrangler.${role}.toml`,
327
+ );
328
+ const outputPath = path.join(outputRoot, `wrangler.${role}.toml`);
329
+ const mainPath = path
330
+ .relative(
331
+ outputRoot,
332
+ path.join(runtimeRoot, 'build', role, 'worker', 'shim.mjs'),
333
+ )
334
+ .split(path.sep)
335
+ .join('/');
336
+ let config = stripBuildSection(readFileSync(sourcePath, 'utf8'));
337
+ config = replaceTomlAssignment(config, 'main', mainPath);
338
+ config = applyRoleVars(config, role, {
339
+ sdkRouterUrl,
340
+ routerEnv,
341
+ deriverAEnv,
342
+ deriverBEnv,
343
+ signingWorkerEnv,
344
+ ceremonyJwksJson,
345
+ privateD1Keys,
346
+ tenantRootKeys,
347
+ });
348
+ if (privateD1) {
349
+ config = setPrivateD1MigrationsDirectory(config, privateD1.migrationsDirectory);
350
+ config = setPrivateD1LocalDatabaseId(config, privateD1.localDatabaseId);
351
+ }
352
+ writeFileSync(outputPath, config);
353
+ const secretPath = path.join(outputRoot, `.dev.vars.${role}`);
354
+ writeFileSync(
355
+ secretPath,
356
+ strictRoleSecretFile(role, {
357
+ routerEnv,
358
+ deriverAEnv,
359
+ deriverBEnv,
360
+ signingWorkerEnv,
361
+ privateD1Keys,
362
+ tenantRootKeys,
363
+ }),
364
+ { mode: 0o600 },
365
+ );
366
+ chmodSync(secretPath, 0o600);
367
+ configs.push(
368
+ Object.freeze({
369
+ role,
370
+ port,
371
+ url: `http://127.0.0.1:${port}`,
372
+ configPath: outputPath,
373
+ secretPath,
374
+ privateD1,
375
+ }),
376
+ );
377
+ }
378
+
379
+ return Object.freeze({
380
+ outputRoot,
381
+ mpcRouterUrl,
382
+ workerUrls: Object.freeze({
383
+ mpcRouter: configs[0].url,
384
+ deriverA: configs[1].url,
385
+ deriverB: configs[2].url,
386
+ signingWorker: configs[3].url,
387
+ }),
388
+ configs: Object.freeze(configs),
389
+ });
390
+ }
391
+
392
+ function setPrivateD1MigrationsDirectory(source, migrationsDirectory) {
393
+ const expected = `migrations_dir = "migrations/${migrationsDirectory}"`;
394
+ const matches = source.split(/\r?\n/).filter((line) => line === expected).length;
395
+ if (matches === 0) {
396
+ throw new Error(`strict local Wrangler config must define ${expected}`);
397
+ }
398
+ const absoluteDirectory = path.join(
399
+ runtimeRoot,
400
+ 'migrations',
401
+ migrationsDirectory,
402
+ );
403
+ return source.replaceAll(expected, `migrations_dir = ${JSON.stringify(absoluteDirectory)}`);
404
+ }
405
+
406
+ /**
407
+ * Pin the top-level [[d1_databases]] id to a role-stable local value.
408
+ *
409
+ * Miniflare keys its on-disk D1 storage by database_id, so the id IS the local
410
+ * database's identity: if the rendered id tracked the base config's deploy
411
+ * placeholders, every placeholder rename would silently orphan all local
412
+ * signing/derivation state (wallet activations included) on the next stack
413
+ * start. The pinned ids predate the placeholder scheme, which also keeps
414
+ * existing local state files reachable. Only the first database_id line is
415
+ * rewritten — the [env.*] sections are never exercised by local dev.
416
+ */
417
+ function setPrivateD1LocalDatabaseId(source, localDatabaseId) {
418
+ if (!/^[0-9a-f-]{36}$/.test(localDatabaseId || '')) {
419
+ throw new Error('strict local private D1 requires a pinned localDatabaseId');
420
+ }
421
+ const assignment = /^database_id\s*=.*$/m;
422
+ if (!assignment.test(source)) {
423
+ throw new Error('strict local Wrangler config must define database_id');
424
+ }
425
+ return source.replace(assignment, `database_id = ${JSON.stringify(localDatabaseId)}`);
426
+ }
427
+
428
+ function applyRoleVars(source, role, env) {
429
+ const internalSecretBinding = 'ROUTER_AB_INTERNAL_SERVICE_AUTH_SECRET';
430
+ let config = setTomlSectionAssignment(
431
+ source,
432
+ 'vars',
433
+ 'ROUTER_AB_INTERNAL_SERVICE_AUTH_SECRET_BINDING',
434
+ internalSecretBinding,
435
+ );
436
+ switch (role) {
437
+ case 'router':
438
+ config = setTomlSectionAssignment(
439
+ config,
440
+ 'vars',
441
+ 'TENANT_ROOT_MANUAL_REFRESH_INTERVAL_MS',
442
+ '60000',
443
+ );
444
+ config = setTomlSectionAssignment(config, 'vars', 'ROUTER_JWT_ISSUER', env.sdkRouterUrl);
445
+ config = setTomlSectionAssignment(config, 'vars', 'ROUTER_JWT_AUDIENCE', 'router-ab');
446
+ config = setTomlSectionAssignment(
447
+ config,
448
+ 'vars',
449
+ 'ROUTER_JWT_JWKS_JSON',
450
+ env.ceremonyJwksJson,
451
+ );
452
+ return setTenantRootPublicKeys(replaceTopologyPublicVars(config, env), env);
453
+ case 'deriver-a':
454
+ config = setTomlSectionAssignment(
455
+ config,
456
+ 'vars',
457
+ 'DERIVER_A_ENVELOPE_HPKE_PUBLIC_KEY',
458
+ requiredEnv(env.routerEnv, 'DERIVER_A_ED25519_YAO_INPUT_PUBLIC_KEY'),
459
+ );
460
+ config = setTomlSectionAssignment(
461
+ config,
462
+ 'vars',
463
+ 'DERIVER_B_ENVELOPE_HPKE_PUBLIC_KEY',
464
+ requiredEnv(env.routerEnv, 'DERIVER_B_ED25519_YAO_INPUT_PUBLIC_KEY'),
465
+ );
466
+ config = setTomlSectionAssignment(
467
+ config,
468
+ 'vars',
469
+ 'DERIVER_A_PEER_VERIFYING_KEY_HEX',
470
+ localPeerVerifyingKeyHex(requiredEnv(env.deriverAEnv, 'DERIVER_A_PEER_SIGNING_KEY')),
471
+ );
472
+ config = setTomlSectionAssignment(
473
+ config,
474
+ 'vars',
475
+ 'DERIVER_B_PEER_VERIFYING_KEY_HEX',
476
+ localPeerVerifyingKeyHex(requiredEnv(env.deriverBEnv, 'DERIVER_B_PEER_SIGNING_KEY')),
477
+ );
478
+ return setTenantRootDeriverVars(
479
+ setPrivateD1Vars(config, 'DERIVER_ROLE_PRIVATE_D1', env.privateD1Keys.deriverA),
480
+ 'A',
481
+ env,
482
+ );
483
+ case 'deriver-b':
484
+ config = setTomlSectionAssignment(
485
+ config,
486
+ 'vars',
487
+ 'DERIVER_B_ENVELOPE_HPKE_PUBLIC_KEY',
488
+ requiredEnv(env.routerEnv, 'DERIVER_B_ED25519_YAO_INPUT_PUBLIC_KEY'),
489
+ );
490
+ config = setTomlSectionAssignment(
491
+ config,
492
+ 'vars',
493
+ 'DERIVER_A_ENVELOPE_HPKE_PUBLIC_KEY',
494
+ requiredEnv(env.routerEnv, 'DERIVER_A_ED25519_YAO_INPUT_PUBLIC_KEY'),
495
+ );
496
+ config = setTomlSectionAssignment(
497
+ config,
498
+ 'vars',
499
+ 'DERIVER_A_PEER_VERIFYING_KEY_HEX',
500
+ localPeerVerifyingKeyHex(requiredEnv(env.deriverAEnv, 'DERIVER_A_PEER_SIGNING_KEY')),
501
+ );
502
+ config = setTomlSectionAssignment(
503
+ config,
504
+ 'vars',
505
+ 'DERIVER_B_PEER_VERIFYING_KEY_HEX',
506
+ localPeerVerifyingKeyHex(requiredEnv(env.deriverBEnv, 'DERIVER_B_PEER_SIGNING_KEY')),
507
+ );
508
+ return setTenantRootDeriverVars(
509
+ setPrivateD1Vars(config, 'DERIVER_ROLE_PRIVATE_D1', env.privateD1Keys.deriverB),
510
+ 'B',
511
+ env,
512
+ );
513
+ case 'signing-worker':
514
+ config = setTomlSectionAssignment(
515
+ config,
516
+ 'vars',
517
+ 'SIGNING_WORKER_SERVER_OUTPUT_HPKE_PUBLIC_KEY',
518
+ requiredEnv(env.signingWorkerEnv, 'SIGNING_WORKER_SERVER_OUTPUT_HPKE_PUBLIC_KEY'),
519
+ );
520
+ return setPrivateD1Vars(config, 'SIGNING_WORKER_PRIVATE_D1', env.privateD1Keys.signingWorker);
521
+ case 'tenant-root-control-plane':
522
+ config = setTomlSectionAssignment(
523
+ config,
524
+ 'vars',
525
+ 'TENANT_ROOT_RECOVERY_TRUST_BUNDLE_JSON',
526
+ env.tenantRootKeys.recovery.trustBundleJson,
527
+ );
528
+ config = setTomlSectionAssignment(
529
+ config,
530
+ 'vars',
531
+ 'TENANT_ROOT_CONTROL_PLANE_ISSUER_SIGNING_KEY_ID',
532
+ env.tenantRootKeys.issuer.keyId,
533
+ );
534
+ config = setTomlSectionAssignment(
535
+ config,
536
+ 'vars',
537
+ 'TENANT_ROOT_CONTROL_PLANE_GRANT_AUTHORITY_VERIFYING_KEYS_JSON',
538
+ env.tenantRootKeys.grantAuthority.verifyingKeysJson,
539
+ );
540
+ config = setTomlSectionAssignment(
541
+ config,
542
+ 'vars',
543
+ 'OPERATIONS_INCIDENT_VERIFYING_KEY_HEX',
544
+ env.tenantRootKeys.operationsIncidentVerifyingKeyHex,
545
+ );
546
+ config = setTomlSectionAssignment(
547
+ config,
548
+ 'vars',
549
+ 'DERIVER_A_CUSTODY_AUTHORITY_VERIFYING_KEY_HEX',
550
+ env.tenantRootKeys.deriverACustodyAuthorityVerifyingKeyHex,
551
+ );
552
+ config = setTomlSectionAssignment(
553
+ config,
554
+ 'vars',
555
+ 'DERIVER_B_CUSTODY_AUTHORITY_VERIFYING_KEY_HEX',
556
+ env.tenantRootKeys.deriverBCustodyAuthorityVerifyingKeyHex,
557
+ );
558
+ config = setTomlSectionAssignment(
559
+ config,
560
+ 'vars',
561
+ 'DERIVER_A_PEER_VERIFYING_KEY_HEX',
562
+ localPeerVerifyingKeyHex(requiredEnv(env.deriverAEnv, 'DERIVER_A_PEER_SIGNING_KEY')),
563
+ );
564
+ config = setTomlSectionAssignment(
565
+ config,
566
+ 'vars',
567
+ 'DERIVER_B_PEER_VERIFYING_KEY_HEX',
568
+ localPeerVerifyingKeyHex(requiredEnv(env.deriverBEnv, 'DERIVER_B_PEER_SIGNING_KEY')),
569
+ );
570
+ return setTenantRootPublicKeys(config, env);
571
+ default:
572
+ throw new Error(`unsupported strict local worker role ${role}`);
573
+ }
574
+ }
575
+
576
+ function setTenantRootPublicKeys(source, env) {
577
+ let config = setTomlSectionAssignment(
578
+ source,
579
+ 'vars',
580
+ 'TENANT_ROOT_CONTROL_PLANE_ISSUER_VERIFYING_KEYS_JSON',
581
+ env.tenantRootKeys.issuer.verifyingKeysJson,
582
+ );
583
+ config = setTomlSectionAssignment(
584
+ config,
585
+ 'vars',
586
+ 'TENANT_ROOT_CONTROL_PLANE_GRANT_AUTHORITY_VERIFYING_KEYS_JSON',
587
+ env.tenantRootKeys.grantAuthority.verifyingKeysJson,
588
+ );
589
+ return setTomlSectionAssignment(
590
+ config,
591
+ 'vars',
592
+ 'ROUTER_TENANT_ROOT_CREATION_ROLE_VERIFYING_KEYS_JSON',
593
+ env.tenantRootKeys.roleVerifyingKeysJson,
594
+ );
595
+ }
596
+
597
+ function setTenantRootDeriverVars(source, suffix, env) {
598
+ const roleEnv = suffix === 'A' ? env.deriverAEnv : env.deriverBEnv;
599
+ const ringName = `DERIVER_${suffix}_TENANT_ROOT_RECOVERY_KMS_KEY_RING`;
600
+ if (roleEnv.get(ringName)) {
601
+ source = setTomlSectionAssignment(source, 'vars', ringName, roleEnv.get(ringName));
602
+ source = setTomlSectionAssignment(
603
+ source,
604
+ 'vars',
605
+ `DERIVER_${suffix}_TENANT_ROOT_MANAGED_BACKUP_GOOGLE_CREDENTIALS_JSON_BINDING`,
606
+ `DERIVER_${suffix}_TENANT_ROOT_MANAGED_BACKUP_GOOGLE_CREDENTIALS_JSON`,
607
+ );
608
+ }
609
+ const role = suffix === 'A' ? env.tenantRootKeys.deriverA : env.tenantRootKeys.deriverB;
610
+ let config = setTenantRootPublicKeys(source, env);
611
+ config = setTomlSectionAssignment(
612
+ config,
613
+ 'vars',
614
+ `DERIVER_${suffix}_TENANT_ROOT_CREATION_SIGNING_KEY_BINDING`,
615
+ `DERIVER_${suffix}_TENANT_ROOT_CREATION_SIGNING_KEY`,
616
+ );
617
+ config = setTomlSectionAssignment(
618
+ config,
619
+ 'vars',
620
+ `DERIVER_${suffix}_TENANT_ROOT_CREATION_SIGNING_KEY_ID`,
621
+ role.creationSigningKeyId,
622
+ );
623
+ config = setTomlSectionAssignment(
624
+ config,
625
+ 'vars',
626
+ `DERIVER_${suffix}_TENANT_ROOT_ONLINE_EPOCH_WRAPPING_KEY_REF`,
627
+ role.onlineEpochWrappingKeyRef,
628
+ );
629
+ config = setTomlSectionAssignment(
630
+ config,
631
+ 'vars',
632
+ `DERIVER_${suffix}_TENANT_ROOT_ONLINE_HPKE_PUBLIC_KEY`,
633
+ role.onlineKey.publicKey,
634
+ );
635
+ config = setTomlSectionAssignment(
636
+ config,
637
+ 'vars',
638
+ `DERIVER_${suffix}_TENANT_ROOT_ONLINE_HPKE_PRIVATE_KEY_BINDING`,
639
+ `DERIVER_${suffix}_TENANT_ROOT_ONLINE_HPKE_PRIVATE_KEY`,
640
+ );
641
+ config = setTomlSectionAssignment(
642
+ config,
643
+ 'vars',
644
+ `DERIVER_${suffix}_TENANT_ROOT_MANAGED_BACKUP_PROVIDER_ID`,
645
+ role.managedBackupProviderId,
646
+ );
647
+ config = setTomlSectionAssignment(
648
+ config,
649
+ 'vars',
650
+ `DERIVER_${suffix}_TENANT_ROOT_MANAGED_BACKUP_KEY_VERSION`,
651
+ role.managedBackupKeyVersion,
652
+ );
653
+ config = setTomlSectionAssignment(
654
+ config,
655
+ 'vars',
656
+ `DERIVER_${suffix}_TENANT_ROOT_MANAGED_BACKUP_HPKE_PUBLIC_KEY`,
657
+ role.managedBackupKey.publicKey,
658
+ );
659
+ return setTomlSectionAssignment(
660
+ config,
661
+ 'vars',
662
+ `DERIVER_${suffix}_TENANT_ROOT_MANAGED_BACKUP_HPKE_PRIVATE_KEY_BINDING`,
663
+ `DERIVER_${suffix}_TENANT_ROOT_MANAGED_BACKUP_HPKE_PRIVATE_KEY`,
664
+ );
665
+ }
666
+
667
+ function replaceTopologyPublicVars(source, env) {
668
+ let config = setTomlSectionAssignment(
669
+ source,
670
+ 'vars',
671
+ 'DERIVER_A_ENVELOPE_HPKE_PUBLIC_KEY',
672
+ requiredEnv(env.routerEnv, 'DERIVER_A_ED25519_YAO_INPUT_PUBLIC_KEY'),
673
+ );
674
+ config = setTomlSectionAssignment(
675
+ config,
676
+ 'vars',
677
+ 'DERIVER_B_ENVELOPE_HPKE_PUBLIC_KEY',
678
+ requiredEnv(env.routerEnv, 'DERIVER_B_ED25519_YAO_INPUT_PUBLIC_KEY'),
679
+ );
680
+ config = setTomlSectionAssignment(
681
+ config,
682
+ 'vars',
683
+ 'DERIVER_A_PEER_VERIFYING_KEY_HEX',
684
+ localPeerVerifyingKeyHex(requiredEnv(env.deriverAEnv, 'DERIVER_A_PEER_SIGNING_KEY')),
685
+ );
686
+ config = setTomlSectionAssignment(
687
+ config,
688
+ 'vars',
689
+ 'DERIVER_B_PEER_VERIFYING_KEY_HEX',
690
+ localPeerVerifyingKeyHex(requiredEnv(env.deriverBEnv, 'DERIVER_B_PEER_SIGNING_KEY')),
691
+ );
692
+ return setTomlSectionAssignment(
693
+ config,
694
+ 'vars',
695
+ 'SIGNING_WORKER_SERVER_OUTPUT_HPKE_PUBLIC_KEY',
696
+ requiredEnv(env.signingWorkerEnv, 'SIGNING_WORKER_SERVER_OUTPUT_HPKE_PUBLIC_KEY'),
697
+ );
698
+ }
699
+
700
+ function strictRoleSecretFile(role, env) {
701
+ const internalAuthSecret = `ROUTER_AB_INTERNAL_SERVICE_AUTH_SECRET=${requiredEnv(
702
+ env.routerEnv,
703
+ 'ROUTER_AB_INTERNAL_SERVICE_AUTH_SECRET',
704
+ )}`;
705
+ switch (role) {
706
+ case 'router':
707
+ return `${internalAuthSecret}\n`;
708
+ case 'deriver-a':
709
+ return [
710
+ internalAuthSecret,
711
+ `DERIVER_A_ENVELOPE_HPKE_PRIVATE_KEY=${versionedHexSecret(
712
+ requiredEnv(env.deriverAEnv, 'DERIVER_A_ENVELOPE_HPKE_PRIVATE_KEY'),
713
+ 'hpke-x25519-private-v1:',
714
+ 'Deriver A envelope HPKE private key',
715
+ )}`,
716
+ `DERIVER_A_PEER_SIGNING_KEY=${localPeerSigningKeyBase64Url(
717
+ requiredEnv(env.deriverAEnv, 'DERIVER_A_PEER_SIGNING_KEY'),
718
+ )}`,
719
+ `DERIVER_A_ROLE_PRIVATE_D1_KEK=hpke-x25519-role-private-d1-private-v1:${env.privateD1Keys.deriverA.privateKeyHex}`,
720
+ `DERIVER_A_TENANT_ROOT_CREATION_SIGNING_KEY=${env.tenantRootKeys.deriverA.creationSigningSeedB64u}`,
721
+ `DERIVER_A_TENANT_ROOT_ONLINE_HPKE_PRIVATE_KEY=hpke-x25519-private-v1:${env.tenantRootKeys.deriverA.onlineKey.privateKeyHex}`,
722
+ `DERIVER_A_TENANT_ROOT_MANAGED_BACKUP_HPKE_PRIVATE_KEY=hpke-x25519-private-v1:${env.tenantRootKeys.deriverA.managedBackupKey.privateKeyHex}`,
723
+ ...(env.deriverAEnv.has('DERIVER_A_TENANT_ROOT_RECOVERY_KMS_KEY_RING')
724
+ ? [
725
+ `DERIVER_A_TENANT_ROOT_MANAGED_BACKUP_GOOGLE_CREDENTIALS_JSON=${requiredEnv(env.deriverAEnv, 'DERIVER_A_TENANT_ROOT_MANAGED_BACKUP_GOOGLE_CREDENTIALS_JSON')}`,
726
+ ]
727
+ : []),
728
+ '',
729
+ ].join('\n');
730
+ case 'deriver-b':
731
+ return [
732
+ internalAuthSecret,
733
+ `DERIVER_B_ENVELOPE_HPKE_PRIVATE_KEY=${versionedHexSecret(
734
+ requiredEnv(env.deriverBEnv, 'DERIVER_B_ENVELOPE_HPKE_PRIVATE_KEY'),
735
+ 'hpke-x25519-private-v1:',
736
+ 'Deriver B envelope HPKE private key',
737
+ )}`,
738
+ `DERIVER_B_PEER_SIGNING_KEY=${localPeerSigningKeyBase64Url(
739
+ requiredEnv(env.deriverBEnv, 'DERIVER_B_PEER_SIGNING_KEY'),
740
+ )}`,
741
+ `DERIVER_B_ROLE_PRIVATE_D1_KEK=hpke-x25519-role-private-d1-private-v1:${env.privateD1Keys.deriverB.privateKeyHex}`,
742
+ `DERIVER_B_TENANT_ROOT_CREATION_SIGNING_KEY=${env.tenantRootKeys.deriverB.creationSigningSeedB64u}`,
743
+ `DERIVER_B_TENANT_ROOT_ONLINE_HPKE_PRIVATE_KEY=hpke-x25519-private-v1:${env.tenantRootKeys.deriverB.onlineKey.privateKeyHex}`,
744
+ `DERIVER_B_TENANT_ROOT_MANAGED_BACKUP_HPKE_PRIVATE_KEY=hpke-x25519-private-v1:${env.tenantRootKeys.deriverB.managedBackupKey.privateKeyHex}`,
745
+ ...(env.deriverBEnv.has('DERIVER_B_TENANT_ROOT_RECOVERY_KMS_KEY_RING')
746
+ ? [
747
+ `DERIVER_B_TENANT_ROOT_MANAGED_BACKUP_GOOGLE_CREDENTIALS_JSON=${requiredEnv(env.deriverBEnv, 'DERIVER_B_TENANT_ROOT_MANAGED_BACKUP_GOOGLE_CREDENTIALS_JSON')}`,
748
+ ]
749
+ : []),
750
+ '',
751
+ ].join('\n');
752
+ case 'signing-worker':
753
+ return [
754
+ internalAuthSecret,
755
+ `SIGNING_WORKER_SERVER_OUTPUT_HPKE_PRIVATE_KEY=${versionedHexSecret(
756
+ requiredEnv(env.signingWorkerEnv, 'SIGNING_WORKER_SERVER_OUTPUT_HPKE_PRIVATE_KEY'),
757
+ 'hpke-x25519-server-output-private-v1:',
758
+ 'SigningWorker server-output HPKE private key',
759
+ )}`,
760
+ `SIGNING_WORKER_PRIVATE_D1_KEK=hpke-x25519-server-output-private-v1:${env.privateD1Keys.signingWorker.privateKeyHex}`,
761
+ '',
762
+ ].join('\n');
763
+ case 'tenant-root-control-plane':
764
+ return [
765
+ internalAuthSecret,
766
+ `TENANT_ROOT_CONTROL_PLANE_ISSUER_SIGNING_KEY=${env.tenantRootKeys.issuer.signingSeedB64u}`,
767
+ '',
768
+ ].join('\n');
769
+ default:
770
+ throw new Error(`unsupported strict local worker role ${role}`);
771
+ }
772
+ }
773
+
774
+ function setPrivateD1Vars(source, prefix, keyPair) {
775
+ let config = setTomlSectionAssignment(
776
+ source,
777
+ 'vars',
778
+ `${prefix}_KEK_PUBLIC_KEY`,
779
+ keyPair.publicKey,
780
+ );
781
+ config = setTomlSectionAssignment(config, 'vars', `${prefix}_KEK_VERSION`, 'local-epoch-1');
782
+ return setTomlSectionAssignment(config, 'vars', `${prefix}_ENVIRONMENT`, 'local');
783
+ }
784
+
785
+ function deriveLocalPrivateD1KeyPair(seedHex, role) {
786
+ return deriveLocalX25519KeyPair(
787
+ seedHex,
788
+ `private-d1/${role}`,
789
+ `seams/router-ab/private-d1/local/v1/${role}\0`,
790
+ );
791
+ }
792
+
793
+ function deriveLocalX25519KeyPair(
794
+ seedHex,
795
+ purpose,
796
+ derivationDomain = `seams/router-ab/local/v1/${purpose}\0`,
797
+ ) {
798
+ if (!/^[0-9a-f]{64}$/.test(seedHex)) {
799
+ throw new Error(`${purpose} local key seed must be 32 lowercase hexadecimal bytes`);
800
+ }
801
+ const privateKey = createHash('sha256')
802
+ .update(derivationDomain, 'utf8')
803
+ .update(Buffer.from(seedHex, 'hex'))
804
+ .digest();
805
+ const privateKeyDer = Buffer.concat([X25519_PKCS8_PREFIX, privateKey]);
806
+ const publicKeyDer = createPublicKey(
807
+ createPrivateKey({ key: privateKeyDer, format: 'der', type: 'pkcs8' }),
808
+ ).export({ format: 'der', type: 'spki' });
809
+ if (!publicKeyDer.subarray(0, X25519_SPKI_PREFIX.length).equals(X25519_SPKI_PREFIX)) {
810
+ throw new Error(`${purpose} local X25519 public key encoding is invalid`);
811
+ }
812
+ return Object.freeze({
813
+ privateKeyHex: privateKey.toString('hex'),
814
+ publicKey: `x25519:${publicKeyDer.subarray(X25519_SPKI_PREFIX.length).toString('hex')}`,
815
+ });
816
+ }
817
+
818
+ function deriveLocalEd25519KeyPair(seedInput, purpose, derive = true) {
819
+ const sourceSeed = localSeedBytes(seedInput, purpose);
820
+ const seed = derive
821
+ ? createHash('sha256')
822
+ .update(`seams/router-ab/local/v1/${purpose}\0`, 'utf8')
823
+ .update(sourceSeed)
824
+ .digest()
825
+ : sourceSeed;
826
+ const privateKey = createPrivateKey({
827
+ key: Buffer.concat([ED25519_PKCS8_PREFIX, seed]),
828
+ format: 'der',
829
+ type: 'pkcs8',
830
+ });
831
+ const publicKeyDer = createPublicKey(privateKey).export({ format: 'der', type: 'spki' });
832
+ if (!publicKeyDer.subarray(0, ED25519_SPKI_PREFIX.length).equals(ED25519_SPKI_PREFIX)) {
833
+ throw new Error(`${purpose} local Ed25519 public key encoding is invalid`);
834
+ }
835
+ return Object.freeze({
836
+ signingSeedB64u: seed.toString('base64url'),
837
+ verifyingKeyHex: publicKeyDer.subarray(ED25519_SPKI_PREFIX.length).toString('hex'),
838
+ });
839
+ }
840
+
841
+ export function resolveLocalTenantRootKeyMaterial(input) {
842
+ const repoRoot = path.resolve(input.repoRoot);
843
+ const localEnvRoot = path.resolve(input.localEnvRoot ?? repoRoot);
844
+ const controlPlaneEnv = readEnvMap(
845
+ path.join(
846
+ runtimeRoot,
847
+ 'env',
848
+ 'tenant-root-control-plane.local.example',
849
+ ),
850
+ );
851
+ const deriverAEnv = readEnvMap(path.join(localEnvRoot, '.env.router-ab.deriver-a.local'));
852
+ const deriverBEnv = readEnvMap(path.join(localEnvRoot, '.env.router-ab.deriver-b.local'));
853
+ const issuerKeyId = requiredEnv(
854
+ controlPlaneEnv,
855
+ 'TENANT_ROOT_CONTROL_PLANE_ISSUER_SIGNING_KEY_ID',
856
+ );
857
+ const issuerSeedHex = requiredEnv(
858
+ controlPlaneEnv,
859
+ 'TENANT_ROOT_CONTROL_PLANE_ISSUER_SIGNING_KEY',
860
+ );
861
+ const issuer = deriveLocalEd25519KeyPair(issuerSeedHex, 'tenant-root/issuer', false);
862
+ const grantAuthority = deriveLocalEd25519KeyPair(issuerSeedHex, 'tenant-root/grant-authority');
863
+ const operationsIncident = deriveLocalEd25519KeyPair(
864
+ issuerSeedHex,
865
+ 'tenant-root/operations-incident',
866
+ );
867
+ const deriverACustodyAuthority = deriveLocalEd25519KeyPair(
868
+ issuerSeedHex,
869
+ 'tenant-root/deriver-a-custody-authority',
870
+ );
871
+ const deriverBCustodyAuthority = deriveLocalEd25519KeyPair(
872
+ issuerSeedHex,
873
+ 'tenant-root/deriver-b-custody-authority',
874
+ );
875
+ const deriverA = localTenantRootDeriverKeyMaterial(
876
+ 'A',
877
+ requiredEnv(deriverAEnv, 'DERIVER_A_PEER_SIGNING_KEY'),
878
+ requiredEnv(deriverAEnv, 'DERIVER_A_ENVELOPE_HPKE_PRIVATE_KEY'),
879
+ );
880
+ const deriverB = localTenantRootDeriverKeyMaterial(
881
+ 'B',
882
+ requiredEnv(deriverBEnv, 'DERIVER_B_PEER_SIGNING_KEY'),
883
+ requiredEnv(deriverBEnv, 'DERIVER_B_ENVELOPE_HPKE_PRIVATE_KEY'),
884
+ );
885
+ return Object.freeze({
886
+ issuer: Object.freeze({
887
+ keyId: issuerKeyId,
888
+ signingSeedB64u: issuer.signingSeedB64u,
889
+ verifyingKeysJson: issuerVerifyingKeysJson(issuerKeyId, issuer.verifyingKeyHex),
890
+ }),
891
+ grantAuthority: Object.freeze({
892
+ keyId: 'local-tenant-root-grant-authority-v1',
893
+ signingSeedB64u: grantAuthority.signingSeedB64u,
894
+ verifyingKeysJson: issuerVerifyingKeysJson(
895
+ 'local-tenant-root-grant-authority-v1',
896
+ grantAuthority.verifyingKeyHex,
897
+ ),
898
+ }),
899
+ deriverA,
900
+ deriverB,
901
+ recovery: localRecoveryTrust(issuerSeedHex, issuerKeyId, issuer, deriverA, deriverB),
902
+ roleVerifyingKeysJson: JSON.stringify({
903
+ active_deriver_a_signing_key_id: deriverA.creationSigningKeyId,
904
+ active_deriver_b_signing_key_id: deriverB.creationSigningKeyId,
905
+ keys: [
906
+ {
907
+ role: 'deriver_a',
908
+ signing_key_id: deriverA.creationSigningKeyId,
909
+ verifying_key_hex: deriverA.creationVerifyingKeyHex,
910
+ },
911
+ {
912
+ role: 'deriver_b',
913
+ signing_key_id: deriverB.creationSigningKeyId,
914
+ verifying_key_hex: deriverB.creationVerifyingKeyHex,
915
+ },
916
+ ],
917
+ }),
918
+ operationsIncidentVerifyingKeyHex: operationsIncident.verifyingKeyHex,
919
+ deriverACustodyAuthorityVerifyingKeyHex: deriverACustodyAuthority.verifyingKeyHex,
920
+ deriverBCustodyAuthorityVerifyingKeyHex: deriverBCustodyAuthority.verifyingKeyHex,
921
+ });
922
+ }
923
+
924
+ function localTenantRootDeriverKeyMaterial(suffix, signingSeed, hpkeSeedHex) {
925
+ const lower = suffix.toLowerCase();
926
+ const creation = deriveLocalEd25519KeyPair(signingSeed, `tenant-root/${lower}/creation-signing`);
927
+ return Object.freeze({
928
+ creationSigningKeyId: `local-deriver-${lower}-tenant-root-creation-v1`,
929
+ creationSigningSeedB64u: creation.signingSeedB64u,
930
+ creationVerifyingKeyHex: creation.verifyingKeyHex,
931
+ onlineEpochWrappingKeyRef: `local-deriver-${lower}-tenant-root-online-epoch-v1`,
932
+ onlineKey: deriveLocalX25519KeyPair(hpkeSeedHex, `tenant-root/${lower}/online`),
933
+ managedBackupProviderId: `local-deriver-${lower}-tenant-root-managed-backup`,
934
+ managedBackupKeyVersion: `local-deriver-${lower}-tenant-root-backup-v1`,
935
+ managedBackupKey: deriveLocalX25519KeyPair(hpkeSeedHex, `tenant-root/${lower}/managed-backup`),
936
+ });
937
+ }
938
+
939
+ function localSeedBytes(value, purpose) {
940
+ if (/^[0-9a-f]{64}$/.test(value)) return Buffer.from(value, 'hex');
941
+ if (/^[A-Za-z0-9_-]{43}$/.test(value)) {
942
+ const decoded = Buffer.from(value, 'base64url');
943
+ if (decoded.length === 32) return decoded;
944
+ }
945
+ throw new Error(`${purpose} local key seed must encode exactly 32 bytes`);
946
+ }
947
+
948
+ function issuerVerifyingKeysJson(keyId, verifyingKeyHex) {
949
+ return JSON.stringify({
950
+ keys: [{ issuer_key_id: keyId, verifying_key_hex: verifyingKeyHex }],
951
+ });
952
+ }
953
+
954
+ function stripBuildSection(source) {
955
+ return source.replace(/\n\[build\]\ncommand = [^\n]+\n/, '\n');
956
+ }
957
+
958
+ function replaceTomlAssignment(source, key, value) {
959
+ const assignment = new RegExp(`^${escapeRegExp(key)}\\s*=.*$`, 'gm');
960
+ const matches = source.match(assignment) ?? [];
961
+ if (matches.length === 0) throw new Error(`strict local Wrangler config must define ${key}`);
962
+ return source.replace(assignment, `${key} = ${JSON.stringify(value)}`);
963
+ }
964
+
965
+ function setTomlSectionAssignment(source, section, key, value) {
966
+ const lines = source.split('\n');
967
+ const header = `[${section}]`;
968
+ const sectionIndexes = lines
969
+ .map((line, index) => (line.trim() === header ? index : -1))
970
+ .filter((index) => index >= 0);
971
+ if (sectionIndexes.length !== 1) {
972
+ throw new Error(`strict local Wrangler config must define exactly one ${header} section`);
973
+ }
974
+
975
+ const sectionStart = sectionIndexes[0] + 1;
976
+ const nextSectionOffset = lines
977
+ .slice(sectionStart)
978
+ .findIndex((line) => line.trim().startsWith('['));
979
+ const sectionEnd = nextSectionOffset === -1 ? lines.length : sectionStart + nextSectionOffset;
980
+ const assignment = new RegExp(`^${escapeRegExp(key)}\\s*=`);
981
+ const assignmentIndexes = [];
982
+ for (let index = sectionStart; index < sectionEnd; index += 1) {
983
+ if (assignment.test(lines[index].trim())) assignmentIndexes.push(index);
984
+ }
985
+ if (assignmentIndexes.length > 1) {
986
+ throw new Error(`strict local Wrangler ${header} defines duplicate ${key} assignments`);
987
+ }
988
+
989
+ const rendered = `${key} = ${JSON.stringify(value)}`;
990
+ if (assignmentIndexes.length === 1) {
991
+ lines[assignmentIndexes[0]] = rendered;
992
+ } else {
993
+ lines.splice(sectionEnd, 0, rendered);
994
+ }
995
+ return lines.join('\n');
996
+ }
997
+
998
+ function requireNonEmptyInput(value, name) {
999
+ if (typeof value !== 'string' || !value.trim()) {
1000
+ throw new Error(`Router A/B strict local runtime is missing ${name}`);
1001
+ }
1002
+ return value.trim();
1003
+ }
1004
+
1005
+ function readEnvMap(filePath) {
1006
+ const env = new Map();
1007
+ for (const rawLine of readFileSync(filePath, 'utf8').split(/\r?\n/)) {
1008
+ const line = rawLine.trim();
1009
+ if (!line || line.startsWith('#')) continue;
1010
+ const separator = line.indexOf('=');
1011
+ if (separator <= 0) throw new Error(`invalid env entry in ${filePath}`);
1012
+ env.set(line.slice(0, separator), line.slice(separator + 1));
1013
+ }
1014
+ return env;
1015
+ }
1016
+
1017
+ function requiredEnv(env, key) {
1018
+ const value = env.get(key);
1019
+ if (typeof value !== 'string' || !value.trim()) {
1020
+ throw new Error(`strict local runtime env is missing ${key}`);
1021
+ }
1022
+ return value.trim();
1023
+ }
1024
+
1025
+ function versionedHexSecret(value, prefix, label) {
1026
+ if (!/^[0-9a-f]{64}$/.test(value)) {
1027
+ throw new Error(`${label} must be 32 lowercase hexadecimal bytes`);
1028
+ }
1029
+ return `${prefix}${value}`;
1030
+ }
1031
+
1032
+ function escapeRegExp(value) {
1033
+ return value.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
1034
+ }
1035
+
1036
+ // This development-only trust root follows the existing local key derivation scheme.
1037
+ function localRecoveryTrust(seed, issuerId, issuer, a, b) {
1038
+ const root = deriveLocalEd25519KeyPair(seed, 'tenant-root/recovery-trust');
1039
+ const keyId = 'local-recovery-trust-v1';
1040
+ const privateKey = createPrivateKey({
1041
+ key: Buffer.concat([ED25519_PKCS8_PREFIX, Buffer.from(root.signingSeedB64u, 'base64url')]),
1042
+ format: 'der',
1043
+ type: 'pkcs8',
1044
+ });
1045
+ return {
1046
+ trustBundleJson: JSON.stringify({
1047
+ bridges: [],
1048
+ bundleVersion: 1,
1049
+ currentRoot: {
1050
+ keyId,
1051
+ verifyingKey: Buffer.from(root.verifyingKeyHex, 'hex').toString('base64url'),
1052
+ },
1053
+ formatVersion: 'tenant_root_recovery_trust_bundle_v1',
1054
+ historicalRoots: [],
1055
+ }),
1056
+ certificatesJson: JSON.stringify({
1057
+ a: localRecoveryCertificate(
1058
+ privateKey,
1059
+ keyId,
1060
+ 'deriver_a',
1061
+ a.creationSigningKeyId,
1062
+ a.creationVerifyingKeyHex,
1063
+ ),
1064
+ b: localRecoveryCertificate(
1065
+ privateKey,
1066
+ keyId,
1067
+ 'deriver_b',
1068
+ b.creationSigningKeyId,
1069
+ b.creationVerifyingKeyHex,
1070
+ ),
1071
+ controlPlane: localRecoveryCertificate(
1072
+ privateKey,
1073
+ keyId,
1074
+ 'control_plane',
1075
+ issuerId,
1076
+ issuer.verifyingKeyHex,
1077
+ ),
1078
+ }),
1079
+ };
1080
+ }
1081
+
1082
+ function localRecoveryCertificate(
1083
+ privateKey,
1084
+ issuerKeyId,
1085
+ authorizedRole,
1086
+ subjectKeyId,
1087
+ publicHex,
1088
+ ) {
1089
+ const unsigned = {
1090
+ authorizedRole,
1091
+ formatVersion: 'tenant_root_recovery_signer_certificate_v1',
1092
+ issuerKeyId,
1093
+ notAfter: '2100-01-01T00:00:00.000Z',
1094
+ notBefore: '2020-01-01T00:00:00.000Z',
1095
+ subjectKeyId,
1096
+ subjectVerifyingKey: Buffer.from(publicHex, 'hex').toString('base64url'),
1097
+ };
1098
+ const signature = sign(
1099
+ null,
1100
+ Buffer.concat([
1101
+ Buffer.from('seams/tenant-root-recovery-signer-certificate/v1'),
1102
+ Buffer.from(JSON.stringify(unsigned, Object.keys(unsigned).sort())),
1103
+ ]),
1104
+ privateKey,
1105
+ ).toString('base64url');
1106
+ const certificate = { ...unsigned, signature };
1107
+ return [
1108
+ Buffer.from(JSON.stringify(certificate, Object.keys(certificate).sort())).toString('base64url'),
1109
+ ];
1110
+ }