@tatchi-xyz/sdk 0.21.0 → 0.31.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 (2488) hide show
  1. package/README.md +2 -2
  2. package/dist/cjs/_virtual/rolldown_runtime.js +0 -13
  3. package/dist/cjs/base-styles.js +0 -1
  4. package/dist/cjs/base-styles.js.map +1 -1
  5. package/dist/cjs/build-paths.js +0 -1
  6. package/dist/cjs/build-paths.js.map +1 -1
  7. package/dist/cjs/config.js +0 -1
  8. package/dist/cjs/config.js.map +1 -1
  9. package/dist/cjs/core/ChainsigAddressManager/index.js +0 -3
  10. package/dist/cjs/core/ChainsigAddressManager/index.js.map +1 -1
  11. package/dist/cjs/core/EmailRecovery/emailRecoveryPendingStore.js +48 -60
  12. package/dist/cjs/core/EmailRecovery/emailRecoveryPendingStore.js.map +1 -1
  13. package/dist/cjs/core/EmailRecovery/index.js +19 -34
  14. package/dist/cjs/core/EmailRecovery/index.js.map +1 -1
  15. package/dist/cjs/core/ExtensionWallet/detect.js +0 -1
  16. package/dist/cjs/core/ExtensionWallet/detect.js.map +1 -1
  17. package/dist/cjs/core/IndexedDBManager/index.js +85 -92
  18. package/dist/cjs/core/IndexedDBManager/index.js.map +1 -1
  19. package/dist/cjs/core/IndexedDBManager/passkeyClientDB.js +648 -646
  20. package/dist/cjs/core/IndexedDBManager/passkeyClientDB.js.map +1 -1
  21. package/dist/cjs/core/IndexedDBManager/passkeyNearKeysDB.js +223 -154
  22. package/dist/cjs/core/IndexedDBManager/passkeyNearKeysDB.js.map +1 -1
  23. package/dist/cjs/core/NearClient.js +9 -8
  24. package/dist/cjs/core/NearClient.js.map +1 -1
  25. package/dist/cjs/core/NearRpcError.js +0 -1
  26. package/dist/cjs/core/NearRpcError.js.map +1 -1
  27. package/dist/cjs/core/OfflineExport/overlay.js +0 -1
  28. package/dist/cjs/core/OfflineExport/overlay.js.map +1 -1
  29. package/dist/cjs/core/TatchiPasskey/actions.js +86 -132
  30. package/dist/cjs/core/TatchiPasskey/actions.js.map +1 -1
  31. package/dist/cjs/core/TatchiPasskey/delegateAction.js +4 -4
  32. package/dist/cjs/core/TatchiPasskey/delegateAction.js.map +1 -1
  33. package/dist/cjs/core/TatchiPasskey/emailRecovery.js +866 -852
  34. package/dist/cjs/core/TatchiPasskey/emailRecovery.js.map +1 -1
  35. package/dist/cjs/core/TatchiPasskey/faucets/createAccountRelayServer.js +23 -12
  36. package/dist/cjs/core/TatchiPasskey/faucets/createAccountRelayServer.js.map +1 -1
  37. package/dist/cjs/core/TatchiPasskey/index.js +128 -91
  38. package/dist/cjs/core/TatchiPasskey/index.js.map +1 -1
  39. package/dist/cjs/core/TatchiPasskey/linkDevice.js +85 -30
  40. package/dist/cjs/core/TatchiPasskey/linkDevice.js.map +1 -1
  41. package/dist/cjs/core/TatchiPasskey/login.js +371 -192
  42. package/dist/cjs/core/TatchiPasskey/login.js.map +1 -1
  43. package/dist/cjs/core/TatchiPasskey/registration.js +131 -30
  44. package/dist/cjs/core/TatchiPasskey/registration.js.map +1 -1
  45. package/dist/cjs/core/TatchiPasskey/relay.js +0 -2
  46. package/dist/cjs/core/TatchiPasskey/relay.js.map +1 -1
  47. package/dist/cjs/core/TatchiPasskey/scanDevice.js +2 -9
  48. package/dist/cjs/core/TatchiPasskey/scanDevice.js.map +1 -1
  49. package/dist/cjs/core/TatchiPasskey/signNEP413.js +12 -5
  50. package/dist/cjs/core/TatchiPasskey/signNEP413.js.map +1 -1
  51. package/dist/cjs/core/TatchiPasskey/syncAccount.js +505 -0
  52. package/dist/cjs/core/TatchiPasskey/syncAccount.js.map +1 -0
  53. package/dist/cjs/core/WalletIframe/client/IframeTransport.js +166 -134
  54. package/dist/cjs/core/WalletIframe/client/IframeTransport.js.map +1 -1
  55. package/dist/cjs/core/WalletIframe/client/on-events-progress-bus.js +4 -6
  56. package/dist/cjs/core/WalletIframe/client/on-events-progress-bus.js.map +1 -1
  57. package/dist/cjs/core/WalletIframe/client/overlay-controller.js +0 -1
  58. package/dist/cjs/core/WalletIframe/client/overlay-controller.js.map +1 -1
  59. package/dist/cjs/core/WalletIframe/client/overlay-styles.js +0 -1
  60. package/dist/cjs/core/WalletIframe/client/overlay-styles.js.map +1 -1
  61. package/dist/cjs/core/WalletIframe/client/router.js +204 -170
  62. package/dist/cjs/core/WalletIframe/client/router.js.map +1 -1
  63. package/dist/cjs/core/WalletIframe/events.js +0 -1
  64. package/dist/cjs/core/WalletIframe/events.js.map +1 -1
  65. package/dist/cjs/core/WalletIframe/host-mode.js +4 -1
  66. package/dist/cjs/core/WalletIframe/host-mode.js.map +1 -1
  67. package/dist/cjs/core/WebAuthnManager/LitComponents/ExportPrivateKey/iframe-host.js +1 -2
  68. package/dist/cjs/core/WebAuthnManager/LitComponents/ExportPrivateKey/iframe-host.js.map +1 -1
  69. package/dist/cjs/core/WebAuthnManager/LitComponents/IframeTxConfirmer/tx-confirm-content.js +0 -1
  70. package/dist/cjs/core/WebAuthnManager/LitComponents/IframeTxConfirmer/tx-confirm-content.js.map +1 -1
  71. package/dist/cjs/core/WebAuthnManager/LitComponents/IframeTxConfirmer/tx-confirmer-wrapper.js +5 -15
  72. package/dist/cjs/core/WebAuthnManager/LitComponents/IframeTxConfirmer/tx-confirmer-wrapper.js.map +1 -1
  73. package/dist/cjs/core/WebAuthnManager/LitComponents/LitElementWithProps.js +22 -18
  74. package/dist/cjs/core/WebAuthnManager/LitComponents/LitElementWithProps.js.map +1 -1
  75. package/dist/cjs/core/WebAuthnManager/LitComponents/TxTree/index.js +1 -2
  76. package/dist/cjs/core/WebAuthnManager/LitComponents/TxTree/index.js.map +1 -1
  77. package/dist/cjs/core/WebAuthnManager/LitComponents/TxTree/tx-tree-themes.js +0 -1
  78. package/dist/cjs/core/WebAuthnManager/LitComponents/TxTree/tx-tree-themes.js.map +1 -1
  79. package/dist/cjs/core/WebAuthnManager/LitComponents/TxTree/tx-tree-utils.js +1 -3
  80. package/dist/cjs/core/WebAuthnManager/LitComponents/TxTree/tx-tree-utils.js.map +1 -1
  81. package/dist/cjs/core/WebAuthnManager/LitComponents/asset-base.js +0 -1
  82. package/dist/cjs/core/WebAuthnManager/LitComponents/asset-base.js.map +1 -1
  83. package/dist/cjs/core/WebAuthnManager/LitComponents/common/formatters.js +0 -1
  84. package/dist/cjs/core/WebAuthnManager/LitComponents/common/formatters.js.map +1 -1
  85. package/dist/cjs/core/WebAuthnManager/LitComponents/confirm-ui-types.js +0 -1
  86. package/dist/cjs/core/WebAuthnManager/LitComponents/confirm-ui-types.js.map +1 -1
  87. package/dist/cjs/core/WebAuthnManager/LitComponents/confirm-ui.js +3 -5
  88. package/dist/cjs/core/WebAuthnManager/LitComponents/confirm-ui.js.map +1 -1
  89. package/dist/cjs/core/WebAuthnManager/LitComponents/css/css-loader.js +0 -1
  90. package/dist/cjs/core/WebAuthnManager/LitComponents/css/css-loader.js.map +1 -1
  91. package/dist/cjs/core/WebAuthnManager/LitComponents/ensure-defined.js +1 -6
  92. package/dist/cjs/core/WebAuthnManager/LitComponents/ensure-defined.js.map +1 -1
  93. package/dist/cjs/core/WebAuthnManager/LitComponents/lit-events.js +0 -1
  94. package/dist/cjs/core/WebAuthnManager/LitComponents/lit-events.js.map +1 -1
  95. package/dist/cjs/core/WebAuthnManager/LitComponents/tags.js +0 -31
  96. package/dist/cjs/core/WebAuthnManager/LitComponents/tags.js.map +1 -1
  97. package/dist/cjs/core/WebAuthnManager/SignerWorkerManager/getDeviceNumber.js +0 -11
  98. package/dist/cjs/core/WebAuthnManager/SignerWorkerManager/getDeviceNumber.js.map +1 -1
  99. package/dist/cjs/core/WebAuthnManager/SignerWorkerManager/handlers/checkCanRegisterUser.js +10 -14
  100. package/dist/cjs/core/WebAuthnManager/SignerWorkerManager/handlers/checkCanRegisterUser.js.map +1 -1
  101. package/dist/cjs/core/WebAuthnManager/SignerWorkerManager/handlers/decryptPrivateKeyWithPrf.js +5 -9
  102. package/dist/cjs/core/WebAuthnManager/SignerWorkerManager/handlers/decryptPrivateKeyWithPrf.js.map +1 -1
  103. package/dist/cjs/core/WebAuthnManager/SignerWorkerManager/handlers/deriveNearKeypairAndEncryptFromSerialized.js +6 -8
  104. package/dist/cjs/core/WebAuthnManager/SignerWorkerManager/handlers/deriveNearKeypairAndEncryptFromSerialized.js.map +1 -1
  105. package/dist/cjs/core/WebAuthnManager/SignerWorkerManager/handlers/deriveThresholdEd25519ClientVerifyingShare.js +46 -0
  106. package/dist/cjs/core/WebAuthnManager/SignerWorkerManager/handlers/deriveThresholdEd25519ClientVerifyingShare.js.map +1 -0
  107. package/dist/cjs/core/WebAuthnManager/SignerWorkerManager/handlers/exportNearKeypairUi.js +3 -8
  108. package/dist/cjs/core/WebAuthnManager/SignerWorkerManager/handlers/exportNearKeypairUi.js.map +1 -1
  109. package/dist/cjs/core/WebAuthnManager/SignerWorkerManager/handlers/extractCosePublicKey.js +0 -1
  110. package/dist/cjs/core/WebAuthnManager/SignerWorkerManager/handlers/extractCosePublicKey.js.map +1 -1
  111. package/dist/cjs/core/WebAuthnManager/SignerWorkerManager/handlers/recoverKeypairFromPasskey.js +0 -1
  112. package/dist/cjs/core/WebAuthnManager/SignerWorkerManager/handlers/recoverKeypairFromPasskey.js.map +1 -1
  113. package/dist/cjs/core/WebAuthnManager/SignerWorkerManager/handlers/registerDevice2WithDerivedKey.js +13 -10
  114. package/dist/cjs/core/WebAuthnManager/SignerWorkerManager/handlers/registerDevice2WithDerivedKey.js.map +1 -1
  115. package/dist/cjs/core/WebAuthnManager/SignerWorkerManager/handlers/session.js +1 -1
  116. package/dist/cjs/core/WebAuthnManager/SignerWorkerManager/handlers/session.js.map +1 -1
  117. package/dist/cjs/core/WebAuthnManager/SignerWorkerManager/handlers/signDelegateAction.js +204 -48
  118. package/dist/cjs/core/WebAuthnManager/SignerWorkerManager/handlers/signDelegateAction.js.map +1 -1
  119. package/dist/cjs/core/WebAuthnManager/SignerWorkerManager/handlers/signNep413Message.js +170 -30
  120. package/dist/cjs/core/WebAuthnManager/SignerWorkerManager/handlers/signNep413Message.js.map +1 -1
  121. package/dist/cjs/core/WebAuthnManager/SignerWorkerManager/handlers/signTransactionWithKeyPair.js +3 -10
  122. package/dist/cjs/core/WebAuthnManager/SignerWorkerManager/handlers/signTransactionWithKeyPair.js.map +1 -1
  123. package/dist/cjs/core/WebAuthnManager/SignerWorkerManager/handlers/signTransactionsWithActions.js +274 -86
  124. package/dist/cjs/core/WebAuthnManager/SignerWorkerManager/handlers/signTransactionsWithActions.js.map +1 -1
  125. package/dist/cjs/core/WebAuthnManager/SignerWorkerManager/handlers/validation.js +5 -12
  126. package/dist/cjs/core/WebAuthnManager/SignerWorkerManager/handlers/validation.js.map +1 -1
  127. package/dist/cjs/core/WebAuthnManager/SignerWorkerManager/index.js +15 -10
  128. package/dist/cjs/core/WebAuthnManager/SignerWorkerManager/index.js.map +1 -1
  129. package/dist/cjs/core/WebAuthnManager/SignerWorkerManager/sessionHandshake.js +0 -1
  130. package/dist/cjs/core/WebAuthnManager/SignerWorkerManager/sessionHandshake.js.map +1 -1
  131. package/dist/cjs/core/WebAuthnManager/SignerWorkerManager/sessionMessages.js +15 -5
  132. package/dist/cjs/core/WebAuthnManager/SignerWorkerManager/sessionMessages.js.map +1 -1
  133. package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/common.js +1 -4
  134. package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/common.js.map +1 -1
  135. package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/createAdapters.js +0 -1
  136. package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/createAdapters.js.map +1 -1
  137. package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/near.js +1 -6
  138. package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/near.js.map +1 -1
  139. package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/requestAdapter.js +1 -4
  140. package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/requestAdapter.js.map +1 -1
  141. package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/requestHelpers.js +0 -1
  142. package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/requestHelpers.js.map +1 -1
  143. package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/session.js +0 -1
  144. package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/session.js.map +1 -1
  145. package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/ui.js +0 -1
  146. package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/ui.js.map +1 -1
  147. package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/vrf.js +30 -7
  148. package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/vrf.js.map +1 -1
  149. package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/webauthn.js +7 -30
  150. package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/webauthn.js.map +1 -1
  151. package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/determineConfirmationConfig.js +0 -3
  152. package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/determineConfirmationConfig.js.map +1 -1
  153. package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/localOnly.js +38 -4
  154. package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/localOnly.js.map +1 -1
  155. package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/registration.js +27 -6
  156. package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/registration.js.map +1 -1
  157. package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/requestRegistrationCredentialConfirmation.js +0 -3
  158. package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/requestRegistrationCredentialConfirmation.js.map +1 -1
  159. package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/transactions.js +19 -17
  160. package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/transactions.js.map +1 -1
  161. package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/handleSecureConfirmRequest.js +0 -2
  162. package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/handleSecureConfirmRequest.js.map +1 -1
  163. package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/types.js +0 -1
  164. package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/types.js.map +1 -1
  165. package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/handlers/checkSessionStatus.js +0 -1
  166. package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/handlers/checkSessionStatus.js.map +1 -1
  167. package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/handlers/checkVrfStatus.js +8 -6
  168. package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/handlers/checkVrfStatus.js.map +1 -1
  169. package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/handlers/clearSession.js +0 -1
  170. package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/handlers/clearSession.js.map +1 -1
  171. package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/handlers/clearVrf.js +0 -1
  172. package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/handlers/clearVrf.js.map +1 -1
  173. package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/handlers/confirmAndDeriveDevice2RegistrationSession.js +0 -1
  174. package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/handlers/confirmAndDeriveDevice2RegistrationSession.js.map +1 -1
  175. package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/handlers/confirmAndPrepareSigningSession.js +17 -15
  176. package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/handlers/confirmAndPrepareSigningSession.js.map +1 -1
  177. package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/handlers/deriveVrfKeypairFromPrf.js +6 -4
  178. package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/handlers/deriveVrfKeypairFromPrf.js.map +1 -1
  179. package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/handlers/dispenseSessionKey.js +0 -1
  180. package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/handlers/dispenseSessionKey.js.map +1 -1
  181. package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/handlers/generateVrfChallenge.js +36 -4
  182. package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/handlers/generateVrfChallenge.js.map +1 -1
  183. package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/handlers/generateVrfKeypairBootstrap.js +6 -4
  184. package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/handlers/generateVrfKeypairBootstrap.js.map +1 -1
  185. package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/handlers/mintSessionKeysAndSendToSigner.js +0 -1
  186. package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/handlers/mintSessionKeysAndSendToSigner.js.map +1 -1
  187. package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/handlers/prepareDecryptSession.js +0 -1
  188. package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/handlers/prepareDecryptSession.js.map +1 -1
  189. package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/handlers/requestRegistrationCredentialConfirmation.js +0 -1
  190. package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/handlers/requestRegistrationCredentialConfirmation.js.map +1 -1
  191. package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/handlers/shamir3PassDecryptVrfKeypair.js +0 -1
  192. package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/handlers/shamir3PassDecryptVrfKeypair.js.map +1 -1
  193. package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/handlers/shamir3PassEncryptCurrentVrfKeypair.js +0 -1
  194. package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/handlers/shamir3PassEncryptCurrentVrfKeypair.js.map +1 -1
  195. package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/handlers/unlockVrfKeypair.js +0 -1
  196. package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/handlers/unlockVrfKeypair.js.map +1 -1
  197. package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/index.js +37 -4
  198. package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/index.js.map +1 -1
  199. package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/secureConfirmBridge.js +0 -1
  200. package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/secureConfirmBridge.js.map +1 -1
  201. package/dist/cjs/core/WebAuthnManager/WebAuthnFallbacks/safari-fallbacks.js +54 -65
  202. package/dist/cjs/core/WebAuthnManager/WebAuthnFallbacks/safari-fallbacks.js.map +1 -1
  203. package/dist/cjs/core/WebAuthnManager/collectAuthenticationCredentialForVrfChallenge.js +34 -0
  204. package/dist/cjs/core/WebAuthnManager/collectAuthenticationCredentialForVrfChallenge.js.map +1 -0
  205. package/dist/cjs/core/WebAuthnManager/credentialsHelpers.js +18 -26
  206. package/dist/cjs/core/WebAuthnManager/credentialsHelpers.js.map +1 -1
  207. package/dist/cjs/core/WebAuthnManager/index.js +352 -50
  208. package/dist/cjs/core/WebAuthnManager/index.js.map +1 -1
  209. package/dist/cjs/core/WebAuthnManager/threshold/enrollThresholdEd25519Key.js +92 -0
  210. package/dist/cjs/core/WebAuthnManager/threshold/enrollThresholdEd25519Key.js.map +1 -0
  211. package/dist/cjs/core/WebAuthnManager/threshold/rotateThresholdEd25519KeyPostRegistration.js +144 -0
  212. package/dist/cjs/core/WebAuthnManager/threshold/rotateThresholdEd25519KeyPostRegistration.js.map +1 -0
  213. package/dist/cjs/core/WebAuthnManager/touchIdPrompt.js +200 -211
  214. package/dist/cjs/core/WebAuthnManager/touchIdPrompt.js.map +1 -1
  215. package/dist/cjs/core/WebAuthnManager/userHandle.js +0 -4
  216. package/dist/cjs/core/WebAuthnManager/userHandle.js.map +1 -1
  217. package/dist/cjs/core/WebAuthnManager/userPreferences.js +119 -37
  218. package/dist/cjs/core/WebAuthnManager/userPreferences.js.map +1 -1
  219. package/dist/cjs/core/defaultConfigs.js +55 -57
  220. package/dist/cjs/core/defaultConfigs.js.map +1 -1
  221. package/dist/cjs/core/digests/intentDigest.js +100 -0
  222. package/dist/cjs/core/digests/intentDigest.js.map +1 -0
  223. package/dist/cjs/core/nearCrypto.js +3 -30
  224. package/dist/cjs/core/nearCrypto.js.map +1 -1
  225. package/dist/cjs/core/nonceManager.js +6 -16
  226. package/dist/cjs/core/nonceManager.js.map +1 -1
  227. package/dist/cjs/core/rpcCalls.js +263 -24
  228. package/dist/cjs/core/rpcCalls.js.map +1 -1
  229. package/dist/cjs/core/sdkPaths/base.js +0 -1
  230. package/dist/cjs/core/sdkPaths/base.js.map +1 -1
  231. package/dist/cjs/core/sdkPaths/workers.js +7 -6
  232. package/dist/cjs/core/sdkPaths/workers.js.map +1 -1
  233. package/dist/cjs/core/threshold/thresholdEd25519AuthSession.js +145 -0
  234. package/dist/cjs/core/threshold/thresholdEd25519AuthSession.js.map +1 -0
  235. package/dist/cjs/core/threshold/thresholdEd25519RelayerHealth.js +117 -0
  236. package/dist/cjs/core/threshold/thresholdEd25519RelayerHealth.js.map +1 -0
  237. package/dist/cjs/core/threshold/thresholdSessionPolicy.js +67 -0
  238. package/dist/cjs/core/threshold/thresholdSessionPolicy.js.map +1 -0
  239. package/dist/cjs/core/types/accountIds.js +0 -11
  240. package/dist/cjs/core/types/accountIds.js.map +1 -1
  241. package/dist/cjs/core/types/actions.js +18 -27
  242. package/dist/cjs/core/types/actions.js.map +1 -1
  243. package/dist/cjs/core/types/emailRecovery.js +25 -26
  244. package/dist/cjs/core/types/emailRecovery.js.map +1 -1
  245. package/dist/cjs/core/types/linkDevice.js +0 -1
  246. package/dist/cjs/core/types/linkDevice.js.map +1 -1
  247. package/dist/cjs/core/types/rpc.js +9 -19
  248. package/dist/cjs/core/types/rpc.js.map +1 -1
  249. package/dist/cjs/core/types/sdkSentEvents.js +107 -118
  250. package/dist/cjs/core/types/sdkSentEvents.js.map +1 -1
  251. package/dist/cjs/core/types/signer-worker.js +94 -18
  252. package/dist/cjs/core/types/signer-worker.js.map +1 -1
  253. package/dist/cjs/core/types/vrf-worker.js +3 -13
  254. package/dist/cjs/core/types/vrf-worker.js.map +1 -1
  255. package/dist/cjs/core/workerControlMessages.js +0 -1
  256. package/dist/cjs/core/workerControlMessages.js.map +1 -1
  257. package/dist/cjs/index.js +9 -25
  258. package/dist/cjs/plugins/headers.js +3 -11
  259. package/dist/cjs/plugins/headers.js.map +1 -1
  260. package/dist/cjs/plugins/next.js +21 -11
  261. package/dist/cjs/plugins/next.js.map +1 -1
  262. package/dist/cjs/plugins/plugin-utils.js +1 -7
  263. package/dist/cjs/plugins/plugin-utils.js.map +1 -1
  264. package/dist/cjs/plugins/utils/validation.js +29 -0
  265. package/dist/cjs/plugins/utils/validation.js.map +1 -0
  266. package/dist/cjs/plugins/vite.js +18 -11
  267. package/dist/cjs/plugins/vite.js.map +1 -1
  268. package/dist/cjs/react/_virtual/rolldown_runtime.js +0 -13
  269. package/dist/cjs/react/build-paths.js +54 -0
  270. package/dist/cjs/react/build-paths.js.map +1 -0
  271. package/dist/cjs/react/components/AccountMenuButton/LinkedDevicesModal-C-RBcCPI.css +452 -0
  272. package/dist/cjs/react/components/AccountMenuButton/LinkedDevicesModal-C-RBcCPI.css.map +1 -0
  273. package/dist/cjs/react/components/AccountMenuButton/LinkedDevicesModal2.js +6 -5
  274. package/dist/cjs/react/components/AccountMenuButton/LinkedDevicesModal2.js.map +1 -1
  275. package/dist/cjs/react/components/AccountMenuButton/ProfileDropdown-BCW8a1XS.css +120 -0
  276. package/dist/cjs/react/components/AccountMenuButton/ProfileDropdown-BCW8a1XS.css.map +1 -0
  277. package/dist/cjs/react/components/AccountMenuButton/ProfileDropdown2.js +3 -1
  278. package/dist/cjs/react/components/AccountMenuButton/ProfileDropdown2.js.map +1 -1
  279. package/dist/cjs/react/components/AccountMenuButton/TransactionSettingsSection.js +35 -1
  280. package/dist/cjs/react/components/AccountMenuButton/TransactionSettingsSection.js.map +1 -1
  281. package/dist/cjs/react/components/AccountMenuButton/Web3AuthProfileButton-QsQWyQ9D.css +77 -0
  282. package/dist/cjs/react/components/AccountMenuButton/Web3AuthProfileButton-QsQWyQ9D.css.map +1 -0
  283. package/dist/cjs/react/components/AccountMenuButton/icons/TouchIcon-BRVcqcso.css +41 -0
  284. package/dist/cjs/react/components/AccountMenuButton/icons/TouchIcon-BRVcqcso.css.map +1 -0
  285. package/dist/cjs/react/components/AccountMenuButton/index.js +25 -4
  286. package/dist/cjs/react/components/AccountMenuButton/index.js.map +1 -1
  287. package/dist/cjs/react/components/AccountMenuButton/types.js +0 -1
  288. package/dist/cjs/react/components/AccountMenuButton/types.js.map +1 -1
  289. package/dist/cjs/react/components/PasskeyAuthMenu/PasskeyAuthMenu-CRlobBrN.css +1009 -0
  290. package/dist/cjs/react/components/PasskeyAuthMenu/PasskeyAuthMenu-CRlobBrN.css.map +1 -0
  291. package/dist/cjs/react/components/PasskeyAuthMenu/adapters/tatchi.js +0 -1
  292. package/dist/cjs/react/components/PasskeyAuthMenu/adapters/tatchi.js.map +1 -1
  293. package/dist/cjs/react/components/PasskeyAuthMenu/authMenuTypes.js +2 -3
  294. package/dist/cjs/react/components/PasskeyAuthMenu/authMenuTypes.js.map +1 -1
  295. package/dist/cjs/react/components/PasskeyAuthMenu/client.js +10 -10
  296. package/dist/cjs/react/components/PasskeyAuthMenu/client.js.map +1 -1
  297. package/dist/cjs/react/components/PasskeyAuthMenu/controller/mode.js +4 -4
  298. package/dist/cjs/react/components/PasskeyAuthMenu/controller/mode.js.map +1 -1
  299. package/dist/cjs/react/components/PasskeyAuthMenu/controller/proceedEligibility.js +0 -1
  300. package/dist/cjs/react/components/PasskeyAuthMenu/controller/proceedEligibility.js.map +1 -1
  301. package/dist/cjs/react/components/PasskeyAuthMenu/controller/usePasskeyAuthMenuController.js +3 -3
  302. package/dist/cjs/react/components/PasskeyAuthMenu/controller/usePasskeyAuthMenuController.js.map +1 -1
  303. package/dist/cjs/react/components/PasskeyAuthMenu/controller/useSDKEvents.js.map +1 -1
  304. package/dist/cjs/react/components/PasskeyAuthMenu/features/recentLoginPrefill.js +0 -1
  305. package/dist/cjs/react/components/PasskeyAuthMenu/features/recentLoginPrefill.js.map +1 -1
  306. package/dist/cjs/react/components/PasskeyAuthMenu/passkeyAuthMenuCompat.js +0 -1
  307. package/dist/cjs/react/components/PasskeyAuthMenu/passkeyAuthMenuCompat.js.map +1 -1
  308. package/dist/cjs/react/components/PasskeyAuthMenu/preload.js +0 -1
  309. package/dist/cjs/react/components/PasskeyAuthMenu/preload.js.map +1 -1
  310. package/dist/cjs/react/components/PasskeyAuthMenu/skeleton.js +1 -1
  311. package/dist/cjs/react/components/PasskeyAuthMenu/skeleton.js.map +1 -1
  312. package/dist/cjs/react/components/PasskeyAuthMenu/ui/AccountExistsBadge.js +1 -1
  313. package/dist/cjs/react/components/PasskeyAuthMenu/ui/AccountExistsBadge.js.map +1 -1
  314. package/dist/cjs/react/components/PasskeyAuthMenu/ui/EmailRecoverySlide.js +275 -366
  315. package/dist/cjs/react/components/PasskeyAuthMenu/ui/EmailRecoverySlide.js.map +1 -1
  316. package/dist/cjs/react/components/ShowQRCode-DGCJv1Cw.css +113 -0
  317. package/dist/cjs/react/components/ShowQRCode-DGCJv1Cw.css.map +1 -0
  318. package/dist/cjs/react/components/ShowQRCode2.js +1 -2
  319. package/dist/cjs/react/components/ShowQRCode2.js.map +1 -1
  320. package/dist/cjs/react/components/theme/ThemeProvider.js +18 -18
  321. package/dist/cjs/react/components/theme/ThemeProvider.js.map +1 -1
  322. package/dist/cjs/react/components/theme/design-tokens.js +1 -2
  323. package/dist/cjs/react/components/theme/design-tokens.js.map +1 -1
  324. package/dist/cjs/react/components/theme/utils.js +0 -1
  325. package/dist/cjs/react/components/theme/utils.js.map +1 -1
  326. package/dist/cjs/react/context/tatchiManagerSingleton.js +2 -4
  327. package/dist/cjs/react/context/tatchiManagerSingleton.js.map +1 -1
  328. package/dist/cjs/react/context/useLoginStateRefresher.js +1 -2
  329. package/dist/cjs/react/context/useLoginStateRefresher.js.map +1 -1
  330. package/dist/cjs/react/context/useTatchiContextValue.js +17 -9
  331. package/dist/cjs/react/context/useTatchiContextValue.js.map +1 -1
  332. package/dist/cjs/react/context/useTatchiWithSdkFlow.js +9 -10
  333. package/dist/cjs/react/context/useTatchiWithSdkFlow.js.map +1 -1
  334. package/dist/cjs/react/context/useWalletIframeLifecycle.js +1 -2
  335. package/dist/cjs/react/context/useWalletIframeLifecycle.js.map +1 -1
  336. package/dist/cjs/react/deviceDetection.js +92 -81
  337. package/dist/cjs/react/deviceDetection.js.map +1 -1
  338. package/dist/cjs/react/hooks/useAccountInput.js +1 -2
  339. package/dist/cjs/react/hooks/useAccountInput.js.map +1 -1
  340. package/dist/cjs/react/hooks/useDeviceLinking.js +1 -1
  341. package/dist/cjs/react/hooks/useNearClient.js +2 -3
  342. package/dist/cjs/react/hooks/useNearClient.js.map +1 -1
  343. package/dist/cjs/react/hooks/usePreconnectWalletAssets.js +1 -1
  344. package/dist/cjs/react/hooks/useQRCamera.js +1 -2
  345. package/dist/cjs/react/hooks/useQRCamera.js.map +1 -1
  346. package/dist/cjs/react/hooks/useQRFileUpload.js +1 -1
  347. package/dist/cjs/react/index.js +7 -20
  348. package/dist/cjs/react/src/base-styles.js +20 -0
  349. package/dist/cjs/react/src/base-styles.js.map +1 -0
  350. package/dist/cjs/react/src/config.js +34 -0
  351. package/dist/cjs/react/src/config.js.map +1 -0
  352. package/dist/cjs/react/src/core/ChainsigAddressManager/index.js +27 -0
  353. package/dist/cjs/react/src/core/ChainsigAddressManager/index.js.map +1 -0
  354. package/dist/cjs/react/src/core/EmailRecovery/emailRecoveryPendingStore.js +57 -0
  355. package/dist/cjs/react/src/core/EmailRecovery/emailRecoveryPendingStore.js.map +1 -0
  356. package/dist/cjs/react/src/core/EmailRecovery/index.js +99 -0
  357. package/dist/cjs/react/src/core/EmailRecovery/index.js.map +1 -0
  358. package/dist/cjs/react/src/core/IndexedDBManager/index.js +133 -0
  359. package/dist/cjs/react/src/core/IndexedDBManager/index.js.map +1 -0
  360. package/dist/cjs/react/src/core/IndexedDBManager/passkeyClientDB.js +687 -0
  361. package/dist/cjs/react/src/core/IndexedDBManager/passkeyClientDB.js.map +1 -0
  362. package/dist/cjs/react/src/core/IndexedDBManager/passkeyNearKeysDB.js +261 -0
  363. package/dist/cjs/react/src/core/IndexedDBManager/passkeyNearKeysDB.js.map +1 -0
  364. package/dist/cjs/react/src/core/NearClient.js +274 -0
  365. package/dist/cjs/react/src/core/NearClient.js.map +1 -0
  366. package/dist/cjs/react/src/core/NearRpcError.js +115 -0
  367. package/dist/cjs/react/src/core/NearRpcError.js.map +1 -0
  368. package/dist/cjs/react/src/core/OfflineExport/overlay.js +55 -0
  369. package/dist/cjs/react/src/core/OfflineExport/overlay.js.map +1 -0
  370. package/dist/cjs/react/src/core/TatchiPasskey/actions.js +406 -0
  371. package/dist/cjs/react/src/core/TatchiPasskey/actions.js.map +1 -0
  372. package/dist/cjs/react/src/core/TatchiPasskey/delegateAction.js +76 -0
  373. package/dist/cjs/react/src/core/TatchiPasskey/delegateAction.js.map +1 -0
  374. package/dist/cjs/react/src/core/TatchiPasskey/emailRecovery.js +933 -0
  375. package/dist/cjs/react/src/core/TatchiPasskey/emailRecovery.js.map +1 -0
  376. package/dist/cjs/react/src/core/TatchiPasskey/faucets/createAccountRelayServer.js +108 -0
  377. package/dist/cjs/react/src/core/TatchiPasskey/faucets/createAccountRelayServer.js.map +1 -0
  378. package/dist/cjs/react/src/core/TatchiPasskey/index.js +1335 -0
  379. package/dist/cjs/react/src/core/TatchiPasskey/index.js.map +1 -0
  380. package/dist/cjs/react/src/core/TatchiPasskey/linkDevice.js +766 -0
  381. package/dist/cjs/react/src/core/TatchiPasskey/linkDevice.js.map +1 -0
  382. package/dist/cjs/react/src/core/TatchiPasskey/login.js +757 -0
  383. package/dist/cjs/react/src/core/TatchiPasskey/login.js.map +1 -0
  384. package/dist/cjs/react/src/core/TatchiPasskey/registration.js +441 -0
  385. package/dist/cjs/react/src/core/TatchiPasskey/registration.js.map +1 -0
  386. package/dist/cjs/react/src/core/TatchiPasskey/relay.js +110 -0
  387. package/dist/cjs/react/src/core/TatchiPasskey/relay.js.map +1 -0
  388. package/dist/cjs/react/src/core/TatchiPasskey/scanDevice.js +99 -0
  389. package/dist/cjs/react/src/core/TatchiPasskey/scanDevice.js.map +1 -0
  390. package/dist/cjs/react/src/core/TatchiPasskey/signNEP413.js +96 -0
  391. package/dist/cjs/react/src/core/TatchiPasskey/signNEP413.js.map +1 -0
  392. package/dist/cjs/react/src/core/TatchiPasskey/syncAccount.js +505 -0
  393. package/dist/cjs/react/src/core/TatchiPasskey/syncAccount.js.map +1 -0
  394. package/dist/cjs/react/src/core/WalletIframe/client/IframeTransport.js +362 -0
  395. package/dist/cjs/react/src/core/WalletIframe/client/IframeTransport.js.map +1 -0
  396. package/dist/cjs/react/src/core/WalletIframe/client/on-events-progress-bus.js +208 -0
  397. package/dist/cjs/react/src/core/WalletIframe/client/on-events-progress-bus.js.map +1 -0
  398. package/dist/cjs/react/src/core/WalletIframe/client/overlay-controller.js +99 -0
  399. package/dist/cjs/react/src/core/WalletIframe/client/overlay-controller.js.map +1 -0
  400. package/dist/cjs/react/src/core/WalletIframe/client/overlay-styles.js +127 -0
  401. package/dist/cjs/react/src/core/WalletIframe/client/overlay-styles.js.map +1 -0
  402. package/dist/cjs/react/src/core/WalletIframe/client/router.js +1096 -0
  403. package/dist/cjs/react/src/core/WalletIframe/client/router.js.map +1 -0
  404. package/dist/cjs/react/src/core/WalletIframe/events.js +10 -0
  405. package/dist/cjs/react/src/core/WalletIframe/events.js.map +1 -0
  406. package/dist/cjs/react/src/core/WalletIframe/host-mode.js +14 -0
  407. package/dist/cjs/react/src/core/WalletIframe/host-mode.js.map +1 -0
  408. package/dist/cjs/react/src/core/WebAuthnManager/LitComponents/Drawer/index.js +660 -0
  409. package/dist/cjs/react/src/core/WebAuthnManager/LitComponents/Drawer/index.js.map +1 -0
  410. package/dist/cjs/react/src/core/WebAuthnManager/LitComponents/ExportPrivateKey/iframe-host.js +222 -0
  411. package/dist/cjs/react/src/core/WebAuthnManager/LitComponents/ExportPrivateKey/iframe-host.js.map +1 -0
  412. package/dist/cjs/react/src/core/WebAuthnManager/LitComponents/HaloBorder/index.js +135 -0
  413. package/dist/cjs/react/src/core/WebAuthnManager/LitComponents/HaloBorder/index.js.map +1 -0
  414. package/dist/cjs/react/src/core/WebAuthnManager/LitComponents/IframeTxConfirmer/tx-confirm-content.js +189 -0
  415. package/dist/cjs/react/src/core/WebAuthnManager/LitComponents/IframeTxConfirmer/tx-confirm-content.js.map +1 -0
  416. package/dist/cjs/react/src/core/WebAuthnManager/LitComponents/IframeTxConfirmer/tx-confirmer-wrapper.js +248 -0
  417. package/dist/cjs/react/src/core/WebAuthnManager/LitComponents/IframeTxConfirmer/tx-confirmer-wrapper.js.map +1 -0
  418. package/dist/cjs/react/src/core/WebAuthnManager/LitComponents/IframeTxConfirmer/viewer-drawer.js +261 -0
  419. package/dist/cjs/react/src/core/WebAuthnManager/LitComponents/IframeTxConfirmer/viewer-drawer.js.map +1 -0
  420. package/dist/cjs/react/src/core/WebAuthnManager/LitComponents/IframeTxConfirmer/viewer-modal.js +281 -0
  421. package/dist/cjs/react/src/core/WebAuthnManager/LitComponents/IframeTxConfirmer/viewer-modal.js.map +1 -0
  422. package/dist/cjs/react/src/core/WebAuthnManager/LitComponents/LitElementWithProps.js +260 -0
  423. package/dist/cjs/react/src/core/WebAuthnManager/LitComponents/LitElementWithProps.js.map +1 -0
  424. package/dist/cjs/react/src/core/WebAuthnManager/LitComponents/PasskeyHaloLoading/index.js +146 -0
  425. package/dist/cjs/react/src/core/WebAuthnManager/LitComponents/PasskeyHaloLoading/index.js.map +1 -0
  426. package/dist/cjs/react/src/core/WebAuthnManager/LitComponents/TxTree/index.js +502 -0
  427. package/dist/cjs/react/src/core/WebAuthnManager/LitComponents/TxTree/index.js.map +1 -0
  428. package/dist/cjs/react/src/core/WebAuthnManager/LitComponents/TxTree/tx-tree-themes.js +211 -0
  429. package/dist/cjs/react/src/core/WebAuthnManager/LitComponents/TxTree/tx-tree-themes.js.map +1 -0
  430. package/dist/cjs/react/src/core/WebAuthnManager/LitComponents/TxTree/tx-tree-utils.js +181 -0
  431. package/dist/cjs/react/src/core/WebAuthnManager/LitComponents/TxTree/tx-tree-utils.js.map +1 -0
  432. package/dist/cjs/react/src/core/WebAuthnManager/LitComponents/asset-base.js +45 -0
  433. package/dist/cjs/react/src/core/WebAuthnManager/LitComponents/asset-base.js.map +1 -0
  434. package/dist/cjs/react/src/core/WebAuthnManager/LitComponents/common/PadlockIcon.js +55 -0
  435. package/dist/cjs/react/src/core/WebAuthnManager/LitComponents/common/PadlockIcon.js.map +1 -0
  436. package/dist/cjs/react/src/core/WebAuthnManager/LitComponents/common/formatters.js +67 -0
  437. package/dist/cjs/react/src/core/WebAuthnManager/LitComponents/common/formatters.js.map +1 -0
  438. package/dist/cjs/react/src/core/WebAuthnManager/LitComponents/confirm-ui-types.js +9 -0
  439. package/dist/cjs/react/src/core/WebAuthnManager/LitComponents/confirm-ui-types.js.map +1 -0
  440. package/dist/cjs/react/src/core/WebAuthnManager/LitComponents/confirm-ui.js +219 -0
  441. package/dist/cjs/react/src/core/WebAuthnManager/LitComponents/confirm-ui.js.map +1 -0
  442. package/dist/cjs/react/src/core/WebAuthnManager/LitComponents/css/css-loader.js +109 -0
  443. package/dist/cjs/react/src/core/WebAuthnManager/LitComponents/css/css-loader.js.map +1 -0
  444. package/dist/cjs/react/src/core/WebAuthnManager/LitComponents/ensure-defined.js +19 -0
  445. package/dist/cjs/react/src/core/WebAuthnManager/LitComponents/ensure-defined.js.map +1 -0
  446. package/dist/cjs/react/src/core/WebAuthnManager/LitComponents/lit-events.js +34 -0
  447. package/dist/cjs/react/src/core/WebAuthnManager/LitComponents/lit-events.js.map +1 -0
  448. package/dist/cjs/react/src/core/WebAuthnManager/LitComponents/tags.js +35 -0
  449. package/dist/cjs/react/src/core/WebAuthnManager/LitComponents/tags.js.map +1 -0
  450. package/dist/cjs/react/src/core/WebAuthnManager/SignerWorkerManager/getDeviceNumber.js +28 -0
  451. package/dist/cjs/react/src/core/WebAuthnManager/SignerWorkerManager/getDeviceNumber.js.map +1 -0
  452. package/dist/cjs/react/src/core/WebAuthnManager/SignerWorkerManager/handlers/checkCanRegisterUser.js +67 -0
  453. package/dist/cjs/react/src/core/WebAuthnManager/SignerWorkerManager/handlers/checkCanRegisterUser.js.map +1 -0
  454. package/dist/cjs/react/src/core/WebAuthnManager/SignerWorkerManager/handlers/decryptPrivateKeyWithPrf.js +45 -0
  455. package/dist/cjs/react/src/core/WebAuthnManager/SignerWorkerManager/handlers/decryptPrivateKeyWithPrf.js.map +1 -0
  456. package/dist/cjs/react/src/core/WebAuthnManager/SignerWorkerManager/handlers/deriveNearKeypairAndEncryptFromSerialized.js +71 -0
  457. package/dist/cjs/react/src/core/WebAuthnManager/SignerWorkerManager/handlers/deriveNearKeypairAndEncryptFromSerialized.js.map +1 -0
  458. package/dist/cjs/react/src/core/WebAuthnManager/SignerWorkerManager/handlers/deriveThresholdEd25519ClientVerifyingShare.js +46 -0
  459. package/dist/cjs/react/src/core/WebAuthnManager/SignerWorkerManager/handlers/deriveThresholdEd25519ClientVerifyingShare.js.map +1 -0
  460. package/dist/cjs/react/src/core/WebAuthnManager/SignerWorkerManager/handlers/exportNearKeypairUi.js +64 -0
  461. package/dist/cjs/react/src/core/WebAuthnManager/SignerWorkerManager/handlers/exportNearKeypairUi.js.map +1 -0
  462. package/dist/cjs/react/src/core/WebAuthnManager/SignerWorkerManager/handlers/extractCosePublicKey.js +26 -0
  463. package/dist/cjs/react/src/core/WebAuthnManager/SignerWorkerManager/handlers/extractCosePublicKey.js.map +1 -0
  464. package/dist/cjs/react/src/core/WebAuthnManager/SignerWorkerManager/handlers/recoverKeypairFromPasskey.js +45 -0
  465. package/dist/cjs/react/src/core/WebAuthnManager/SignerWorkerManager/handlers/recoverKeypairFromPasskey.js.map +1 -0
  466. package/dist/cjs/react/src/core/WebAuthnManager/SignerWorkerManager/handlers/registerDevice2WithDerivedKey.js +121 -0
  467. package/dist/cjs/react/src/core/WebAuthnManager/SignerWorkerManager/handlers/registerDevice2WithDerivedKey.js.map +1 -0
  468. package/dist/cjs/react/src/core/WebAuthnManager/SignerWorkerManager/handlers/session.js +16 -0
  469. package/dist/cjs/react/src/core/WebAuthnManager/SignerWorkerManager/handlers/session.js.map +1 -0
  470. package/dist/cjs/react/src/core/WebAuthnManager/SignerWorkerManager/handlers/signDelegateAction.js +261 -0
  471. package/dist/cjs/react/src/core/WebAuthnManager/SignerWorkerManager/handlers/signDelegateAction.js.map +1 -0
  472. package/dist/cjs/react/src/core/WebAuthnManager/SignerWorkerManager/handlers/signNep413Message.js +220 -0
  473. package/dist/cjs/react/src/core/WebAuthnManager/SignerWorkerManager/handlers/signNep413Message.js.map +1 -0
  474. package/dist/cjs/react/src/core/WebAuthnManager/SignerWorkerManager/handlers/signTransactionWithKeyPair.js +57 -0
  475. package/dist/cjs/react/src/core/WebAuthnManager/SignerWorkerManager/handlers/signTransactionWithKeyPair.js.map +1 -0
  476. package/dist/cjs/react/src/core/WebAuthnManager/SignerWorkerManager/handlers/signTransactionsWithActions.js +302 -0
  477. package/dist/cjs/react/src/core/WebAuthnManager/SignerWorkerManager/handlers/signTransactionsWithActions.js.map +1 -0
  478. package/dist/cjs/react/src/core/WebAuthnManager/SignerWorkerManager/handlers/validation.js +75 -0
  479. package/dist/cjs/react/src/core/WebAuthnManager/SignerWorkerManager/handlers/validation.js.map +1 -0
  480. package/dist/cjs/react/src/core/WebAuthnManager/SignerWorkerManager/index.js +457 -0
  481. package/dist/cjs/react/src/core/WebAuthnManager/SignerWorkerManager/index.js.map +1 -0
  482. package/dist/cjs/react/src/core/WebAuthnManager/SignerWorkerManager/sessionHandshake.js +35 -0
  483. package/dist/cjs/react/src/core/WebAuthnManager/SignerWorkerManager/sessionHandshake.js.map +1 -0
  484. package/dist/cjs/react/src/core/WebAuthnManager/SignerWorkerManager/sessionMessages.js +93 -0
  485. package/dist/cjs/react/src/core/WebAuthnManager/SignerWorkerManager/sessionMessages.js.map +1 -0
  486. package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/common.js +58 -0
  487. package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/common.js.map +1 -0
  488. package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/createAdapters.js +49 -0
  489. package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/createAdapters.js.map +1 -0
  490. package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/near.js +51 -0
  491. package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/near.js.map +1 -0
  492. package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/requestAdapter.js +31 -0
  493. package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/requestAdapter.js.map +1 -0
  494. package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/requestHelpers.js +46 -0
  495. package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/requestHelpers.js.map +1 -0
  496. package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/session.js +53 -0
  497. package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/session.js.map +1 -0
  498. package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/ui.js +76 -0
  499. package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/ui.js.map +1 -0
  500. package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/vrf.js +87 -0
  501. package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/vrf.js.map +1 -0
  502. package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/webauthn.js +17 -0
  503. package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/webauthn.js.map +1 -0
  504. package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/determineConfirmationConfig.js +63 -0
  505. package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/determineConfirmationConfig.js.map +1 -0
  506. package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/localOnly.js +124 -0
  507. package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/localOnly.js.map +1 -0
  508. package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/registration.js +157 -0
  509. package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/registration.js.map +1 -0
  510. package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/requestRegistrationCredentialConfirmation.js +49 -0
  511. package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/requestRegistrationCredentialConfirmation.js.map +1 -0
  512. package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/transactions.js +175 -0
  513. package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/transactions.js.map +1 -0
  514. package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/handleSecureConfirmRequest.js +117 -0
  515. package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/handleSecureConfirmRequest.js.map +1 -0
  516. package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/types.js +21 -0
  517. package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/types.js.map +1 -0
  518. package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/handlers/checkSessionStatus.js +26 -0
  519. package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/handlers/checkSessionStatus.js.map +1 -0
  520. package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/handlers/checkVrfStatus.js +54 -0
  521. package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/handlers/checkVrfStatus.js.map +1 -0
  522. package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/handlers/clearSession.js +32 -0
  523. package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/handlers/clearSession.js.map +1 -0
  524. package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/handlers/clearVrf.js +30 -0
  525. package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/handlers/clearVrf.js.map +1 -0
  526. package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/handlers/confirmAndDeriveDevice2RegistrationSession.js +49 -0
  527. package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/handlers/confirmAndDeriveDevice2RegistrationSession.js.map +1 -0
  528. package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/handlers/confirmAndPrepareSigningSession.js +158 -0
  529. package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/handlers/confirmAndPrepareSigningSession.js.map +1 -0
  530. package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/handlers/deriveVrfKeypairFromPrf.js +61 -0
  531. package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/handlers/deriveVrfKeypairFromPrf.js.map +1 -0
  532. package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/handlers/dispenseSessionKey.js +26 -0
  533. package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/handlers/dispenseSessionKey.js.map +1 -0
  534. package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/handlers/generateVrfChallenge.js +80 -0
  535. package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/handlers/generateVrfChallenge.js.map +1 -0
  536. package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/handlers/generateVrfKeypairBootstrap.js +61 -0
  537. package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/handlers/generateVrfKeypairBootstrap.js.map +1 -0
  538. package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/handlers/mintSessionKeysAndSendToSigner.js +44 -0
  539. package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/handlers/mintSessionKeysAndSendToSigner.js.map +1 -0
  540. package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/handlers/prepareDecryptSession.js +53 -0
  541. package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/handlers/prepareDecryptSession.js.map +1 -0
  542. package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/handlers/requestRegistrationCredentialConfirmation.js +30 -0
  543. package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/handlers/requestRegistrationCredentialConfirmation.js.map +1 -0
  544. package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/handlers/shamir3PassDecryptVrfKeypair.js +27 -0
  545. package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/handlers/shamir3PassDecryptVrfKeypair.js.map +1 -0
  546. package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/handlers/shamir3PassEncryptCurrentVrfKeypair.js +29 -0
  547. package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/handlers/shamir3PassEncryptCurrentVrfKeypair.js.map +1 -0
  548. package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/handlers/unlockVrfKeypair.js +41 -0
  549. package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/handlers/unlockVrfKeypair.js.map +1 -0
  550. package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/index.js +408 -0
  551. package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/index.js.map +1 -0
  552. package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/secureConfirmBridge.js +25 -0
  553. package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/secureConfirmBridge.js.map +1 -0
  554. package/dist/cjs/react/src/core/WebAuthnManager/WebAuthnFallbacks/safari-fallbacks.js +199 -0
  555. package/dist/cjs/react/src/core/WebAuthnManager/WebAuthnFallbacks/safari-fallbacks.js.map +1 -0
  556. package/dist/cjs/react/src/core/WebAuthnManager/collectAuthenticationCredentialForVrfChallenge.js +34 -0
  557. package/dist/cjs/react/src/core/WebAuthnManager/collectAuthenticationCredentialForVrfChallenge.js.map +1 -0
  558. package/dist/cjs/react/src/core/WebAuthnManager/credentialsHelpers.js +293 -0
  559. package/dist/cjs/react/src/core/WebAuthnManager/credentialsHelpers.js.map +1 -0
  560. package/dist/cjs/react/src/core/WebAuthnManager/index.js +1192 -0
  561. package/dist/cjs/react/src/core/WebAuthnManager/index.js.map +1 -0
  562. package/dist/cjs/react/src/core/WebAuthnManager/threshold/enrollThresholdEd25519Key.js +92 -0
  563. package/dist/cjs/react/src/core/WebAuthnManager/threshold/enrollThresholdEd25519Key.js.map +1 -0
  564. package/dist/cjs/react/src/core/WebAuthnManager/threshold/rotateThresholdEd25519KeyPostRegistration.js +144 -0
  565. package/dist/cjs/react/src/core/WebAuthnManager/threshold/rotateThresholdEd25519KeyPostRegistration.js.map +1 -0
  566. package/dist/cjs/react/src/core/WebAuthnManager/touchIdPrompt.js +271 -0
  567. package/dist/cjs/react/src/core/WebAuthnManager/touchIdPrompt.js.map +1 -0
  568. package/dist/cjs/react/src/core/WebAuthnManager/userHandle.js +35 -0
  569. package/dist/cjs/react/src/core/WebAuthnManager/userHandle.js.map +1 -0
  570. package/dist/cjs/react/src/core/WebAuthnManager/userPreferences.js +390 -0
  571. package/dist/cjs/react/src/core/WebAuthnManager/userPreferences.js.map +1 -0
  572. package/dist/cjs/react/src/core/defaultConfigs.js +108 -0
  573. package/dist/cjs/react/src/core/defaultConfigs.js.map +1 -0
  574. package/dist/cjs/react/src/core/digests/intentDigest.js +100 -0
  575. package/dist/cjs/react/src/core/digests/intentDigest.js.map +1 -0
  576. package/dist/cjs/react/src/core/nearCrypto.js +30 -0
  577. package/dist/cjs/react/src/core/nearCrypto.js.map +1 -0
  578. package/dist/cjs/react/src/core/nonceManager.js +393 -0
  579. package/dist/cjs/react/src/core/nonceManager.js.map +1 -0
  580. package/dist/cjs/react/src/core/rpcCalls.js +685 -0
  581. package/dist/cjs/react/src/core/rpcCalls.js.map +1 -0
  582. package/dist/cjs/react/src/core/sdkPaths/base.js +48 -0
  583. package/dist/cjs/react/src/core/sdkPaths/base.js.map +1 -0
  584. package/dist/cjs/react/src/core/sdkPaths/workers.js +46 -0
  585. package/dist/cjs/react/src/core/sdkPaths/workers.js.map +1 -0
  586. package/dist/cjs/react/src/core/threshold/thresholdEd25519AuthSession.js +145 -0
  587. package/dist/cjs/react/src/core/threshold/thresholdEd25519AuthSession.js.map +1 -0
  588. package/dist/cjs/react/src/core/threshold/thresholdEd25519RelayerHealth.js +117 -0
  589. package/dist/cjs/react/src/core/threshold/thresholdEd25519RelayerHealth.js.map +1 -0
  590. package/dist/cjs/react/src/core/threshold/thresholdSessionPolicy.js +67 -0
  591. package/dist/cjs/react/src/core/threshold/thresholdSessionPolicy.js.map +1 -0
  592. package/dist/cjs/react/src/core/types/accountIds.js +24 -0
  593. package/dist/cjs/react/src/core/types/accountIds.js.map +1 -0
  594. package/dist/cjs/react/src/core/types/actions.js +265 -0
  595. package/dist/cjs/react/src/core/types/actions.js.map +1 -0
  596. package/dist/cjs/react/src/core/types/authenticatorOptions.js +51 -0
  597. package/dist/cjs/react/src/core/types/authenticatorOptions.js.map +1 -0
  598. package/dist/cjs/react/src/core/types/emailRecovery.js +32 -0
  599. package/dist/cjs/react/src/core/types/emailRecovery.js.map +1 -0
  600. package/dist/cjs/react/src/core/types/linkDevice.js +24 -0
  601. package/dist/cjs/react/src/core/types/linkDevice.js.map +1 -0
  602. package/dist/cjs/react/src/core/types/rpc.js +15 -0
  603. package/dist/cjs/react/src/core/types/rpc.js.map +1 -0
  604. package/dist/cjs/react/src/core/types/sdkSentEvents.js +122 -0
  605. package/dist/cjs/react/src/core/types/sdkSentEvents.js.map +1 -0
  606. package/dist/cjs/react/src/core/types/signer-worker.js +145 -0
  607. package/dist/cjs/react/src/core/types/signer-worker.js.map +1 -0
  608. package/dist/cjs/react/src/core/types/vrf-worker.js +64 -0
  609. package/dist/cjs/react/src/core/types/vrf-worker.js.map +1 -0
  610. package/dist/cjs/react/src/core/workerControlMessages.js +20 -0
  611. package/dist/cjs/react/src/core/workerControlMessages.js.map +1 -0
  612. package/dist/cjs/react/src/theme/base-styles.js +156 -0
  613. package/dist/cjs/react/src/theme/base-styles.js.map +1 -0
  614. package/dist/cjs/react/src/theme/palette.js +208 -0
  615. package/dist/cjs/react/src/theme/palette.js.map +1 -0
  616. package/dist/cjs/react/src/threshold/participants.js +78 -0
  617. package/dist/cjs/react/src/threshold/participants.js.map +1 -0
  618. package/dist/cjs/react/src/utils/base58.js +21 -0
  619. package/dist/cjs/react/src/utils/base58.js.map +1 -0
  620. package/dist/cjs/react/src/utils/base64.js +71 -0
  621. package/dist/cjs/react/src/utils/base64.js.map +1 -0
  622. package/dist/cjs/react/src/utils/digests.js +28 -0
  623. package/dist/cjs/react/src/utils/digests.js.map +1 -0
  624. package/dist/cjs/react/src/utils/errors.js +141 -0
  625. package/dist/cjs/react/src/utils/errors.js.map +1 -0
  626. package/dist/cjs/react/src/utils/qrScanner.js +319 -0
  627. package/dist/cjs/react/src/utils/qrScanner.js.map +1 -0
  628. package/dist/cjs/react/src/utils/validation.js +160 -0
  629. package/dist/cjs/react/src/utils/validation.js.map +1 -0
  630. package/dist/cjs/react/utils/walletIframe.js +0 -1
  631. package/dist/cjs/react/utils/walletIframe.js.map +1 -1
  632. package/dist/cjs/server/core/AuthService.js +138 -59
  633. package/dist/cjs/server/core/AuthService.js.map +1 -1
  634. package/dist/cjs/server/core/SessionService.js.map +1 -1
  635. package/dist/cjs/server/core/ShamirService.js +1 -1
  636. package/dist/cjs/server/core/ShamirService.js.map +1 -1
  637. package/dist/cjs/server/core/ThresholdService/ThresholdSigningService.js +978 -0
  638. package/dist/cjs/server/core/ThresholdService/ThresholdSigningService.js.map +1 -0
  639. package/dist/cjs/server/core/ThresholdService/config.js +102 -0
  640. package/dist/cjs/server/core/ThresholdService/config.js.map +1 -0
  641. package/dist/cjs/server/core/ThresholdService/coordinatorGrant.js +201 -0
  642. package/dist/cjs/server/core/ThresholdService/coordinatorGrant.js.map +1 -0
  643. package/dist/cjs/server/core/ThresholdService/cosigners.js +282 -0
  644. package/dist/cjs/server/core/ThresholdService/cosigners.js.map +1 -0
  645. package/dist/cjs/server/core/ThresholdService/createThresholdSigningService.js +98 -0
  646. package/dist/cjs/server/core/ThresholdService/createThresholdSigningService.js.map +1 -0
  647. package/dist/cjs/server/core/ThresholdService/keygenStrategy.js +116 -0
  648. package/dist/cjs/server/core/ThresholdService/keygenStrategy.js.map +1 -0
  649. package/dist/cjs/server/core/ThresholdService/kv.js +340 -0
  650. package/dist/cjs/server/core/ThresholdService/kv.js.map +1 -0
  651. package/dist/cjs/server/core/ThresholdService/relayerKeyMaterial.js +66 -0
  652. package/dist/cjs/server/core/ThresholdService/relayerKeyMaterial.js.map +1 -0
  653. package/dist/cjs/server/core/ThresholdService/signingHandlers.js +1179 -0
  654. package/dist/cjs/server/core/ThresholdService/signingHandlers.js.map +1 -0
  655. package/dist/cjs/server/core/ThresholdService/stores/AuthSessionStore.js +258 -0
  656. package/dist/cjs/server/core/ThresholdService/stores/AuthSessionStore.js.map +1 -0
  657. package/dist/cjs/server/core/ThresholdService/stores/KeyStore.js +136 -0
  658. package/dist/cjs/server/core/ThresholdService/stores/KeyStore.js.map +1 -0
  659. package/dist/cjs/server/core/ThresholdService/stores/SessionStore.js +228 -0
  660. package/dist/cjs/server/core/ThresholdService/stores/SessionStore.js.map +1 -0
  661. package/dist/cjs/server/core/ThresholdService/validation.js +558 -0
  662. package/dist/cjs/server/core/ThresholdService/validation.js.map +1 -0
  663. package/dist/cjs/server/core/config.js +25 -18
  664. package/dist/cjs/server/core/config.js.map +1 -1
  665. package/dist/cjs/server/core/errors.js +3 -1
  666. package/dist/cjs/server/core/errors.js.map +1 -1
  667. package/dist/cjs/server/core/logger.js +2 -1
  668. package/dist/cjs/server/core/logger.js.map +1 -1
  669. package/dist/cjs/server/core/nearKeys.js +15 -0
  670. package/dist/cjs/server/core/nearKeys.js.map +1 -0
  671. package/dist/cjs/server/core/shamirHandlers.js +1 -1
  672. package/dist/cjs/server/core/shamirHandlers.js.map +1 -1
  673. package/dist/cjs/server/core/shamirWorker.js +94 -0
  674. package/dist/cjs/server/core/shamirWorker.js.map +1 -1
  675. package/dist/cjs/server/core/utils.js +1 -1
  676. package/dist/cjs/server/core/utils.js.map +1 -1
  677. package/dist/cjs/server/delegateAction/index.js.map +1 -1
  678. package/dist/cjs/server/email-recovery/emailEncryptor.js +1 -1
  679. package/dist/cjs/server/email-recovery/emailParsers.js +5 -5
  680. package/dist/cjs/server/email-recovery/emailParsers.js.map +1 -1
  681. package/dist/cjs/server/email-recovery/index.js +10 -5
  682. package/dist/cjs/server/email-recovery/index.js.map +1 -1
  683. package/dist/cjs/server/email-recovery/rpcCalls.js +2 -4
  684. package/dist/cjs/server/email-recovery/rpcCalls.js.map +1 -1
  685. package/dist/cjs/server/email-recovery/zkEmail/proverClient.js +2 -4
  686. package/dist/cjs/server/email-recovery/zkEmail/proverClient.js.map +1 -1
  687. package/dist/cjs/server/index.js +8 -0
  688. package/dist/cjs/server/node_modules/.pnpm/@noble_curves@2.0.1/node_modules/@noble/curves/abstract/curve.js +244 -0
  689. package/dist/cjs/server/node_modules/.pnpm/@noble_curves@2.0.1/node_modules/@noble/curves/abstract/curve.js.map +1 -1
  690. package/dist/cjs/server/node_modules/.pnpm/@noble_curves@2.0.1/node_modules/@noble/curves/abstract/edwards.js +401 -0
  691. package/dist/cjs/server/node_modules/.pnpm/@noble_curves@2.0.1/node_modules/@noble/curves/abstract/edwards.js.map +1 -0
  692. package/dist/cjs/server/node_modules/.pnpm/@noble_curves@2.0.1/node_modules/@noble/curves/abstract/modular.js +369 -0
  693. package/dist/cjs/server/node_modules/.pnpm/@noble_curves@2.0.1/node_modules/@noble/curves/abstract/modular.js.map +1 -1
  694. package/dist/cjs/server/node_modules/.pnpm/@noble_curves@2.0.1/node_modules/@noble/curves/ed25519.js +52 -0
  695. package/dist/cjs/server/node_modules/.pnpm/@noble_curves@2.0.1/node_modules/@noble/curves/ed25519.js.map +1 -1
  696. package/dist/cjs/server/node_modules/.pnpm/@noble_curves@2.0.1/node_modules/@noble/curves/utils.js +35 -0
  697. package/dist/cjs/server/node_modules/.pnpm/@noble_curves@2.0.1/node_modules/@noble/curves/utils.js.map +1 -1
  698. package/dist/cjs/server/node_modules/.pnpm/@noble_hashes@2.0.1/node_modules/@noble/hashes/_md.js +20 -0
  699. package/dist/cjs/server/node_modules/.pnpm/@noble_hashes@2.0.1/node_modules/@noble/hashes/_md.js.map +1 -1
  700. package/dist/cjs/server/node_modules/.pnpm/@noble_hashes@2.0.1/node_modules/@noble/hashes/_u64.js +65 -0
  701. package/dist/cjs/server/node_modules/.pnpm/@noble_hashes@2.0.1/node_modules/@noble/hashes/_u64.js.map +1 -0
  702. package/dist/cjs/server/node_modules/.pnpm/@noble_hashes@2.0.1/node_modules/@noble/hashes/sha2.js +223 -0
  703. package/dist/cjs/server/node_modules/.pnpm/@noble_hashes@2.0.1/node_modules/@noble/hashes/sha2.js.map +1 -1
  704. package/dist/cjs/server/node_modules/.pnpm/@noble_hashes@2.0.1/node_modules/@noble/hashes/utils.js +17 -0
  705. package/dist/cjs/server/node_modules/.pnpm/@noble_hashes@2.0.1/node_modules/@noble/hashes/utils.js.map +1 -1
  706. package/dist/cjs/server/router/cloudflare.js +1117 -684
  707. package/dist/cjs/server/router/cloudflare.js.map +1 -1
  708. package/dist/cjs/server/router/express.js +812 -350
  709. package/dist/cjs/server/router/express.js.map +1 -1
  710. package/dist/cjs/server/sdk/src/core/NearClient.js +8 -1
  711. package/dist/cjs/server/sdk/src/core/NearClient.js.map +1 -1
  712. package/dist/cjs/server/sdk/src/core/defaultConfigs.js +7 -0
  713. package/dist/cjs/server/sdk/src/core/defaultConfigs.js.map +1 -1
  714. package/dist/cjs/server/sdk/src/core/nearCrypto.js +3 -36
  715. package/dist/cjs/server/sdk/src/core/nearCrypto.js.map +1 -1
  716. package/dist/cjs/server/sdk/src/core/types/actions.js.map +1 -1
  717. package/dist/cjs/server/sdk/src/core/types/rpc.js +1 -0
  718. package/dist/cjs/server/sdk/src/core/types/rpc.js.map +1 -1
  719. package/dist/cjs/server/sdk/src/threshold/participants.js +28 -0
  720. package/dist/cjs/server/sdk/src/threshold/participants.js.map +1 -0
  721. package/dist/cjs/server/sdk/src/utils/base64.js +34 -0
  722. package/dist/cjs/server/sdk/src/utils/base64.js.map +1 -1
  723. package/dist/cjs/server/sdk/src/utils/digests.js +28 -0
  724. package/dist/cjs/server/sdk/src/utils/digests.js.map +1 -0
  725. package/dist/cjs/server/sdk/src/utils/errors.js +18 -0
  726. package/dist/cjs/server/sdk/src/utils/errors.js.map +1 -1
  727. package/dist/cjs/server/sdk/src/utils/validation.js +95 -0
  728. package/dist/cjs/server/sdk/src/utils/validation.js.map +1 -0
  729. package/dist/cjs/theme/base-styles.js +0 -1
  730. package/dist/cjs/theme/base-styles.js.map +1 -1
  731. package/dist/cjs/theme/palette.js +0 -1
  732. package/dist/cjs/theme/palette.js.map +1 -1
  733. package/dist/cjs/threshold/participants.js +78 -0
  734. package/dist/cjs/threshold/participants.js.map +1 -0
  735. package/dist/cjs/utils/base58.js +12 -15
  736. package/dist/cjs/utils/base58.js.map +1 -1
  737. package/dist/cjs/utils/base64.js +32 -20
  738. package/dist/cjs/utils/base64.js.map +1 -1
  739. package/dist/cjs/utils/digests.js +28 -0
  740. package/dist/cjs/utils/digests.js.map +1 -0
  741. package/dist/cjs/utils/errors.js +0 -10
  742. package/dist/cjs/utils/errors.js.map +1 -1
  743. package/dist/cjs/utils/validation.js +102 -9
  744. package/dist/cjs/utils/validation.js.map +1 -1
  745. package/dist/esm/core/ChainsigAddressManager/index.js +2 -4
  746. package/dist/esm/core/ChainsigAddressManager/index.js.map +1 -1
  747. package/dist/esm/core/EmailRecovery/emailRecoveryPendingStore.js +50 -56
  748. package/dist/esm/core/EmailRecovery/emailRecoveryPendingStore.js.map +1 -1
  749. package/dist/esm/core/EmailRecovery/index.js +23 -32
  750. package/dist/esm/core/EmailRecovery/index.js.map +1 -1
  751. package/dist/esm/core/IndexedDBManager/index.js +88 -89
  752. package/dist/esm/core/IndexedDBManager/index.js.map +1 -1
  753. package/dist/esm/core/IndexedDBManager/passkeyClientDB.js +652 -645
  754. package/dist/esm/core/IndexedDBManager/passkeyClientDB.js.map +1 -1
  755. package/dist/esm/core/IndexedDBManager/passkeyNearKeysDB.js +224 -150
  756. package/dist/esm/core/IndexedDBManager/passkeyNearKeysDB.js.map +1 -1
  757. package/dist/esm/core/NearClient.js +10 -8
  758. package/dist/esm/core/NearClient.js.map +1 -1
  759. package/dist/esm/core/TatchiPasskey/actions.js +89 -134
  760. package/dist/esm/core/TatchiPasskey/actions.js.map +1 -1
  761. package/dist/esm/core/TatchiPasskey/delegateAction.js +7 -6
  762. package/dist/esm/core/TatchiPasskey/delegateAction.js.map +1 -1
  763. package/dist/esm/core/TatchiPasskey/emailRecovery.js +875 -850
  764. package/dist/esm/core/TatchiPasskey/emailRecovery.js.map +1 -1
  765. package/dist/esm/core/TatchiPasskey/faucets/createAccountRelayServer.js +26 -14
  766. package/dist/esm/core/TatchiPasskey/faucets/createAccountRelayServer.js.map +1 -1
  767. package/dist/esm/core/TatchiPasskey/index.js +124 -87
  768. package/dist/esm/core/TatchiPasskey/index.js.map +1 -1
  769. package/dist/esm/core/TatchiPasskey/linkDevice.js +91 -35
  770. package/dist/esm/core/TatchiPasskey/linkDevice.js.map +1 -1
  771. package/dist/esm/core/TatchiPasskey/login.js +377 -192
  772. package/dist/esm/core/TatchiPasskey/login.js.map +1 -1
  773. package/dist/esm/core/TatchiPasskey/registration.js +134 -32
  774. package/dist/esm/core/TatchiPasskey/registration.js.map +1 -1
  775. package/dist/esm/core/TatchiPasskey/relay.js +1 -2
  776. package/dist/esm/core/TatchiPasskey/relay.js.map +1 -1
  777. package/dist/esm/core/TatchiPasskey/scanDevice.js +4 -10
  778. package/dist/esm/core/TatchiPasskey/scanDevice.js.map +1 -1
  779. package/dist/esm/core/TatchiPasskey/signNEP413.js +13 -5
  780. package/dist/esm/core/TatchiPasskey/signNEP413.js.map +1 -1
  781. package/dist/esm/core/TatchiPasskey/syncAccount.js +505 -0
  782. package/dist/esm/core/TatchiPasskey/syncAccount.js.map +1 -0
  783. package/dist/esm/core/WalletIframe/client/IframeTransport.js +167 -134
  784. package/dist/esm/core/WalletIframe/client/IframeTransport.js.map +1 -1
  785. package/dist/esm/core/WalletIframe/client/on-events-progress-bus.js +5 -6
  786. package/dist/esm/core/WalletIframe/client/on-events-progress-bus.js.map +1 -1
  787. package/dist/esm/core/WalletIframe/client/router.js +205 -170
  788. package/dist/esm/core/WalletIframe/client/router.js.map +1 -1
  789. package/dist/esm/core/WalletIframe/host-mode.js +4 -0
  790. package/dist/esm/core/WalletIframe/host-mode.js.map +1 -1
  791. package/dist/esm/core/WebAuthnManager/LitComponents/ExportPrivateKey/iframe-host.js +1 -2
  792. package/dist/esm/core/WebAuthnManager/LitComponents/ExportPrivateKey/iframe-host.js.map +1 -1
  793. package/dist/esm/core/WebAuthnManager/LitComponents/IframeTxConfirmer/tx-confirm-content.js +1 -2
  794. package/dist/esm/core/WebAuthnManager/LitComponents/IframeTxConfirmer/tx-confirm-content.js.map +1 -1
  795. package/dist/esm/core/WebAuthnManager/LitComponents/IframeTxConfirmer/tx-confirmer-wrapper.js +4 -14
  796. package/dist/esm/core/WebAuthnManager/LitComponents/IframeTxConfirmer/tx-confirmer-wrapper.js.map +1 -1
  797. package/dist/esm/core/WebAuthnManager/LitComponents/LitElementWithProps.js +22 -18
  798. package/dist/esm/core/WebAuthnManager/LitComponents/LitElementWithProps.js.map +1 -1
  799. package/dist/esm/core/WebAuthnManager/LitComponents/TxTree/index.js +1 -2
  800. package/dist/esm/core/WebAuthnManager/LitComponents/TxTree/index.js.map +1 -1
  801. package/dist/esm/core/WebAuthnManager/LitComponents/TxTree/tx-tree-utils.js +1 -2
  802. package/dist/esm/core/WebAuthnManager/LitComponents/TxTree/tx-tree-utils.js.map +1 -1
  803. package/dist/esm/core/WebAuthnManager/LitComponents/confirm-ui.js +2 -3
  804. package/dist/esm/core/WebAuthnManager/LitComponents/confirm-ui.js.map +1 -1
  805. package/dist/esm/core/WebAuthnManager/LitComponents/ensure-defined.js +2 -6
  806. package/dist/esm/core/WebAuthnManager/LitComponents/ensure-defined.js.map +1 -1
  807. package/dist/esm/core/WebAuthnManager/LitComponents/tags.js +1 -26
  808. package/dist/esm/core/WebAuthnManager/LitComponents/tags.js.map +1 -1
  809. package/dist/esm/core/WebAuthnManager/SignerWorkerManager/getDeviceNumber.js +2 -7
  810. package/dist/esm/core/WebAuthnManager/SignerWorkerManager/getDeviceNumber.js.map +1 -1
  811. package/dist/esm/core/WebAuthnManager/SignerWorkerManager/handlers/checkCanRegisterUser.js +13 -16
  812. package/dist/esm/core/WebAuthnManager/SignerWorkerManager/handlers/checkCanRegisterUser.js.map +1 -1
  813. package/dist/esm/core/WebAuthnManager/SignerWorkerManager/handlers/decryptPrivateKeyWithPrf.js +8 -12
  814. package/dist/esm/core/WebAuthnManager/SignerWorkerManager/handlers/decryptPrivateKeyWithPrf.js.map +1 -1
  815. package/dist/esm/core/WebAuthnManager/SignerWorkerManager/handlers/deriveNearKeypairAndEncryptFromSerialized.js +9 -11
  816. package/dist/esm/core/WebAuthnManager/SignerWorkerManager/handlers/deriveNearKeypairAndEncryptFromSerialized.js.map +1 -1
  817. package/dist/esm/core/WebAuthnManager/SignerWorkerManager/handlers/deriveThresholdEd25519ClientVerifyingShare.js +44 -0
  818. package/dist/esm/core/WebAuthnManager/SignerWorkerManager/handlers/deriveThresholdEd25519ClientVerifyingShare.js.map +1 -0
  819. package/dist/esm/core/WebAuthnManager/SignerWorkerManager/handlers/exportNearKeypairUi.js +6 -11
  820. package/dist/esm/core/WebAuthnManager/SignerWorkerManager/handlers/exportNearKeypairUi.js.map +1 -1
  821. package/dist/esm/core/WebAuthnManager/SignerWorkerManager/handlers/extractCosePublicKey.js +1 -2
  822. package/dist/esm/core/WebAuthnManager/SignerWorkerManager/handlers/extractCosePublicKey.js.map +1 -1
  823. package/dist/esm/core/WebAuthnManager/SignerWorkerManager/handlers/recoverKeypairFromPasskey.js +1 -2
  824. package/dist/esm/core/WebAuthnManager/SignerWorkerManager/handlers/recoverKeypairFromPasskey.js.map +1 -1
  825. package/dist/esm/core/WebAuthnManager/SignerWorkerManager/handlers/registerDevice2WithDerivedKey.js +14 -11
  826. package/dist/esm/core/WebAuthnManager/SignerWorkerManager/handlers/registerDevice2WithDerivedKey.js.map +1 -1
  827. package/dist/esm/core/WebAuthnManager/SignerWorkerManager/handlers/session.js +1 -0
  828. package/dist/esm/core/WebAuthnManager/SignerWorkerManager/handlers/session.js.map +1 -1
  829. package/dist/esm/core/WebAuthnManager/SignerWorkerManager/handlers/signDelegateAction.js +208 -52
  830. package/dist/esm/core/WebAuthnManager/SignerWorkerManager/handlers/signDelegateAction.js.map +1 -1
  831. package/dist/esm/core/WebAuthnManager/SignerWorkerManager/handlers/signNep413Message.js +172 -32
  832. package/dist/esm/core/WebAuthnManager/SignerWorkerManager/handlers/signNep413Message.js.map +1 -1
  833. package/dist/esm/core/WebAuthnManager/SignerWorkerManager/handlers/signTransactionWithKeyPair.js +4 -10
  834. package/dist/esm/core/WebAuthnManager/SignerWorkerManager/handlers/signTransactionWithKeyPair.js.map +1 -1
  835. package/dist/esm/core/WebAuthnManager/SignerWorkerManager/handlers/signTransactionsWithActions.js +278 -90
  836. package/dist/esm/core/WebAuthnManager/SignerWorkerManager/handlers/signTransactionsWithActions.js.map +1 -1
  837. package/dist/esm/core/WebAuthnManager/SignerWorkerManager/handlers/validation.js +8 -14
  838. package/dist/esm/core/WebAuthnManager/SignerWorkerManager/handlers/validation.js.map +1 -1
  839. package/dist/esm/core/WebAuthnManager/SignerWorkerManager/index.js +18 -12
  840. package/dist/esm/core/WebAuthnManager/SignerWorkerManager/index.js.map +1 -1
  841. package/dist/esm/core/WebAuthnManager/SignerWorkerManager/sessionHandshake.js.map +1 -1
  842. package/dist/esm/core/WebAuthnManager/SignerWorkerManager/sessionMessages.js +15 -4
  843. package/dist/esm/core/WebAuthnManager/SignerWorkerManager/sessionMessages.js.map +1 -1
  844. package/dist/esm/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/common.js +2 -4
  845. package/dist/esm/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/common.js.map +1 -1
  846. package/dist/esm/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/near.js +2 -6
  847. package/dist/esm/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/near.js.map +1 -1
  848. package/dist/esm/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/requestAdapter.js +1 -3
  849. package/dist/esm/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/requestAdapter.js.map +1 -1
  850. package/dist/esm/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/session.js.map +1 -1
  851. package/dist/esm/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/vrf.js +31 -7
  852. package/dist/esm/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/vrf.js.map +1 -1
  853. package/dist/esm/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/webauthn.js +7 -29
  854. package/dist/esm/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/webauthn.js.map +1 -1
  855. package/dist/esm/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/determineConfirmationConfig.js +0 -2
  856. package/dist/esm/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/determineConfirmationConfig.js.map +1 -1
  857. package/dist/esm/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/localOnly.js +39 -4
  858. package/dist/esm/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/localOnly.js.map +1 -1
  859. package/dist/esm/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/registration.js +29 -7
  860. package/dist/esm/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/registration.js.map +1 -1
  861. package/dist/esm/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/requestRegistrationCredentialConfirmation.js +1 -3
  862. package/dist/esm/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/requestRegistrationCredentialConfirmation.js.map +1 -1
  863. package/dist/esm/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/transactions.js +23 -20
  864. package/dist/esm/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/transactions.js.map +1 -1
  865. package/dist/esm/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/handleSecureConfirmRequest.js +1 -2
  866. package/dist/esm/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/handleSecureConfirmRequest.js.map +1 -1
  867. package/dist/esm/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/types.js.map +1 -1
  868. package/dist/esm/core/WebAuthnManager/VrfWorkerManager/handlers/checkVrfStatus.js +9 -6
  869. package/dist/esm/core/WebAuthnManager/VrfWorkerManager/handlers/checkVrfStatus.js.map +1 -1
  870. package/dist/esm/core/WebAuthnManager/VrfWorkerManager/handlers/confirmAndPrepareSigningSession.js +14 -11
  871. package/dist/esm/core/WebAuthnManager/VrfWorkerManager/handlers/confirmAndPrepareSigningSession.js.map +1 -1
  872. package/dist/esm/core/WebAuthnManager/VrfWorkerManager/handlers/deriveVrfKeypairFromPrf.js +7 -4
  873. package/dist/esm/core/WebAuthnManager/VrfWorkerManager/handlers/deriveVrfKeypairFromPrf.js.map +1 -1
  874. package/dist/esm/core/WebAuthnManager/VrfWorkerManager/handlers/generateVrfChallenge.js +37 -4
  875. package/dist/esm/core/WebAuthnManager/VrfWorkerManager/handlers/generateVrfChallenge.js.map +1 -1
  876. package/dist/esm/core/WebAuthnManager/VrfWorkerManager/handlers/generateVrfKeypairBootstrap.js +7 -4
  877. package/dist/esm/core/WebAuthnManager/VrfWorkerManager/handlers/generateVrfKeypairBootstrap.js.map +1 -1
  878. package/dist/esm/core/WebAuthnManager/VrfWorkerManager/handlers/unlockVrfKeypair.js.map +1 -1
  879. package/dist/esm/core/WebAuthnManager/VrfWorkerManager/index.js +37 -3
  880. package/dist/esm/core/WebAuthnManager/VrfWorkerManager/index.js.map +1 -1
  881. package/dist/esm/core/WebAuthnManager/WebAuthnFallbacks/safari-fallbacks.js +55 -61
  882. package/dist/esm/core/WebAuthnManager/WebAuthnFallbacks/safari-fallbacks.js.map +1 -1
  883. package/dist/esm/core/WebAuthnManager/collectAuthenticationCredentialForVrfChallenge.js +34 -0
  884. package/dist/esm/core/WebAuthnManager/collectAuthenticationCredentialForVrfChallenge.js.map +1 -0
  885. package/dist/esm/core/WebAuthnManager/credentialsHelpers.js +19 -21
  886. package/dist/esm/core/WebAuthnManager/credentialsHelpers.js.map +1 -1
  887. package/dist/esm/core/WebAuthnManager/index.js +356 -53
  888. package/dist/esm/core/WebAuthnManager/index.js.map +1 -1
  889. package/dist/esm/core/WebAuthnManager/threshold/enrollThresholdEd25519Key.js +92 -0
  890. package/dist/esm/core/WebAuthnManager/threshold/enrollThresholdEd25519Key.js.map +1 -0
  891. package/dist/esm/core/WebAuthnManager/threshold/rotateThresholdEd25519KeyPostRegistration.js +144 -0
  892. package/dist/esm/core/WebAuthnManager/threshold/rotateThresholdEd25519KeyPostRegistration.js.map +1 -0
  893. package/dist/esm/core/WebAuthnManager/touchIdPrompt.js +203 -208
  894. package/dist/esm/core/WebAuthnManager/touchIdPrompt.js.map +1 -1
  895. package/dist/esm/core/WebAuthnManager/userHandle.js +1 -4
  896. package/dist/esm/core/WebAuthnManager/userHandle.js.map +1 -1
  897. package/dist/esm/core/WebAuthnManager/userPreferences.js +121 -38
  898. package/dist/esm/core/WebAuthnManager/userPreferences.js.map +1 -1
  899. package/dist/esm/core/defaultConfigs.js +54 -52
  900. package/dist/esm/core/defaultConfigs.js.map +1 -1
  901. package/dist/esm/core/digests/intentDigest.js +95 -0
  902. package/dist/esm/core/digests/intentDigest.js.map +1 -0
  903. package/dist/esm/core/nearCrypto.js +2 -23
  904. package/dist/esm/core/nearCrypto.js.map +1 -1
  905. package/dist/esm/core/nonceManager.js +7 -16
  906. package/dist/esm/core/nonceManager.js.map +1 -1
  907. package/dist/esm/core/rpcCalls.js +264 -23
  908. package/dist/esm/core/rpcCalls.js.map +1 -1
  909. package/dist/esm/core/sdkPaths/workers.js +7 -5
  910. package/dist/esm/core/sdkPaths/workers.js.map +1 -1
  911. package/dist/esm/core/threshold/thresholdEd25519AuthSession.js +140 -0
  912. package/dist/esm/core/threshold/thresholdEd25519AuthSession.js.map +1 -0
  913. package/dist/esm/core/threshold/thresholdEd25519RelayerHealth.js +117 -0
  914. package/dist/esm/core/threshold/thresholdEd25519RelayerHealth.js.map +1 -0
  915. package/dist/esm/core/threshold/thresholdSessionPolicy.js +65 -0
  916. package/dist/esm/core/threshold/thresholdSessionPolicy.js.map +1 -0
  917. package/dist/esm/core/types/accountIds.js +2 -7
  918. package/dist/esm/core/types/accountIds.js.map +1 -1
  919. package/dist/esm/core/types/actions.js +19 -22
  920. package/dist/esm/core/types/actions.js.map +1 -1
  921. package/dist/esm/core/types/emailRecovery.js +25 -22
  922. package/dist/esm/core/types/emailRecovery.js.map +1 -1
  923. package/dist/esm/core/types/rpc.js +10 -15
  924. package/dist/esm/core/types/rpc.js.map +1 -1
  925. package/dist/esm/core/types/sdkSentEvents.js +106 -112
  926. package/dist/esm/core/types/sdkSentEvents.js.map +1 -1
  927. package/dist/esm/core/types/signer-worker.js +88 -14
  928. package/dist/esm/core/types/signer-worker.js.map +1 -1
  929. package/dist/esm/core/types/vrf-worker.js +4 -8
  930. package/dist/esm/core/types/vrf-worker.js.map +1 -1
  931. package/dist/esm/index.js +11 -26
  932. package/dist/esm/plugins/headers.js +4 -11
  933. package/dist/esm/plugins/headers.js.map +1 -1
  934. package/dist/esm/plugins/next.js +21 -11
  935. package/dist/esm/plugins/next.js.map +1 -1
  936. package/dist/esm/plugins/plugin-utils.js +2 -7
  937. package/dist/esm/plugins/plugin-utils.js.map +1 -1
  938. package/dist/esm/plugins/utils/validation.js +27 -0
  939. package/dist/esm/plugins/utils/validation.js.map +1 -0
  940. package/dist/esm/plugins/vite.js +19 -12
  941. package/dist/esm/plugins/vite.js.map +1 -1
  942. package/dist/esm/react/build-paths.js.map +1 -0
  943. package/dist/esm/react/components/AccountMenuButton/LinkedDevicesModal-BCrFe5p3.css +452 -0
  944. package/dist/esm/react/components/AccountMenuButton/LinkedDevicesModal-BCrFe5p3.css.map +1 -0
  945. package/dist/esm/react/components/AccountMenuButton/LinkedDevicesModal2.js +6 -5
  946. package/dist/esm/react/components/AccountMenuButton/LinkedDevicesModal2.js.map +1 -1
  947. package/dist/esm/react/components/AccountMenuButton/ProfileDropdown-CRJrtxDb.css +120 -0
  948. package/dist/esm/react/components/AccountMenuButton/ProfileDropdown-CRJrtxDb.css.map +1 -0
  949. package/dist/esm/react/components/AccountMenuButton/ProfileDropdown2.js +3 -1
  950. package/dist/esm/react/components/AccountMenuButton/ProfileDropdown2.js.map +1 -1
  951. package/dist/esm/react/components/AccountMenuButton/TransactionSettingsSection.js +35 -1
  952. package/dist/esm/react/components/AccountMenuButton/TransactionSettingsSection.js.map +1 -1
  953. package/dist/esm/react/components/AccountMenuButton/Web3AuthProfileButton-DXFRw8ND.css +77 -0
  954. package/dist/esm/react/components/AccountMenuButton/Web3AuthProfileButton-DXFRw8ND.css.map +1 -0
  955. package/dist/esm/react/components/AccountMenuButton/icons/TouchIcon-DNgbAK_i.css +41 -0
  956. package/dist/esm/react/components/AccountMenuButton/icons/TouchIcon-DNgbAK_i.css.map +1 -0
  957. package/dist/esm/react/components/AccountMenuButton/index.js +26 -5
  958. package/dist/esm/react/components/AccountMenuButton/index.js.map +1 -1
  959. package/dist/esm/react/components/AccountMenuButton/types.js.map +1 -1
  960. package/dist/esm/react/components/PasskeyAuthMenu/PasskeyAuthMenu-D2VHZ04W.css +1009 -0
  961. package/dist/esm/react/components/PasskeyAuthMenu/PasskeyAuthMenu-D2VHZ04W.css.map +1 -0
  962. package/dist/esm/react/components/PasskeyAuthMenu/authMenuTypes.js +2 -2
  963. package/dist/esm/react/components/PasskeyAuthMenu/authMenuTypes.js.map +1 -1
  964. package/dist/esm/react/components/PasskeyAuthMenu/client.js +10 -10
  965. package/dist/esm/react/components/PasskeyAuthMenu/client.js.map +1 -1
  966. package/dist/esm/react/components/PasskeyAuthMenu/controller/mode.js +4 -4
  967. package/dist/esm/react/components/PasskeyAuthMenu/controller/mode.js.map +1 -1
  968. package/dist/esm/react/components/PasskeyAuthMenu/controller/usePasskeyAuthMenuController.js +3 -3
  969. package/dist/esm/react/components/PasskeyAuthMenu/controller/usePasskeyAuthMenuController.js.map +1 -1
  970. package/dist/esm/react/components/PasskeyAuthMenu/controller/useSDKEvents.js.map +1 -1
  971. package/dist/esm/react/components/PasskeyAuthMenu/skeleton.js +1 -1
  972. package/dist/esm/react/components/PasskeyAuthMenu/skeleton.js.map +1 -1
  973. package/dist/esm/react/components/PasskeyAuthMenu/ui/AccountExistsBadge.js +1 -1
  974. package/dist/esm/react/components/PasskeyAuthMenu/ui/AccountExistsBadge.js.map +1 -1
  975. package/dist/esm/react/components/PasskeyAuthMenu/ui/EmailRecoverySlide.js +275 -366
  976. package/dist/esm/react/components/PasskeyAuthMenu/ui/EmailRecoverySlide.js.map +1 -1
  977. package/dist/esm/react/components/ShowQRCode-CL4gsszN.css +113 -0
  978. package/dist/esm/react/components/ShowQRCode-CL4gsszN.css.map +1 -0
  979. package/dist/esm/react/components/ShowQRCode2.js +1 -2
  980. package/dist/esm/react/components/ShowQRCode2.js.map +1 -1
  981. package/dist/esm/react/components/theme/ThemeProvider.js +18 -18
  982. package/dist/esm/react/components/theme/ThemeProvider.js.map +1 -1
  983. package/dist/esm/react/components/theme/design-tokens.js +1 -1
  984. package/dist/esm/react/context/tatchiManagerSingleton.js +2 -3
  985. package/dist/esm/react/context/tatchiManagerSingleton.js.map +1 -1
  986. package/dist/esm/react/context/useLoginStateRefresher.js +1 -2
  987. package/dist/esm/react/context/useLoginStateRefresher.js.map +1 -1
  988. package/dist/esm/react/context/useTatchiContextValue.js +17 -9
  989. package/dist/esm/react/context/useTatchiContextValue.js.map +1 -1
  990. package/dist/esm/react/context/useTatchiWithSdkFlow.js +9 -10
  991. package/dist/esm/react/context/useTatchiWithSdkFlow.js.map +1 -1
  992. package/dist/esm/react/context/useWalletIframeLifecycle.js +1 -2
  993. package/dist/esm/react/context/useWalletIframeLifecycle.js.map +1 -1
  994. package/dist/esm/react/deviceDetection.js +93 -72
  995. package/dist/esm/react/deviceDetection.js.map +1 -1
  996. package/dist/esm/react/hooks/useAccountInput.js +1 -2
  997. package/dist/esm/react/hooks/useAccountInput.js.map +1 -1
  998. package/dist/esm/react/hooks/useDeviceLinking.js +1 -1
  999. package/dist/esm/react/hooks/useNearClient.js +2 -3
  1000. package/dist/esm/react/hooks/useNearClient.js.map +1 -1
  1001. package/dist/esm/react/hooks/usePreconnectWalletAssets.js +1 -1
  1002. package/dist/esm/react/hooks/useQRCamera.js +2 -3
  1003. package/dist/esm/react/hooks/useQRCamera.js.map +1 -1
  1004. package/dist/esm/react/hooks/useQRFileUpload.js +1 -1
  1005. package/dist/esm/react/index.js +5 -14
  1006. package/dist/esm/react/src/base-styles.js.map +1 -0
  1007. package/dist/esm/react/src/config.js.map +1 -0
  1008. package/dist/esm/react/src/core/ChainsigAddressManager/index.js +27 -0
  1009. package/dist/esm/react/src/core/ChainsigAddressManager/index.js.map +1 -0
  1010. package/dist/esm/react/src/core/EmailRecovery/emailRecoveryPendingStore.js +57 -0
  1011. package/dist/esm/react/src/core/EmailRecovery/emailRecoveryPendingStore.js.map +1 -0
  1012. package/dist/esm/react/src/core/EmailRecovery/index.js +96 -0
  1013. package/dist/esm/react/src/core/EmailRecovery/index.js.map +1 -0
  1014. package/dist/esm/react/src/core/IndexedDBManager/index.js +132 -0
  1015. package/dist/esm/react/src/core/IndexedDBManager/index.js.map +1 -0
  1016. package/dist/esm/react/src/core/IndexedDBManager/passkeyClientDB.js +685 -0
  1017. package/dist/esm/react/src/core/IndexedDBManager/passkeyClientDB.js.map +1 -0
  1018. package/dist/esm/react/src/core/IndexedDBManager/passkeyNearKeysDB.js +259 -0
  1019. package/dist/esm/react/src/core/IndexedDBManager/passkeyNearKeysDB.js.map +1 -0
  1020. package/dist/esm/react/src/core/NearClient.js +273 -0
  1021. package/dist/esm/react/src/core/NearClient.js.map +1 -0
  1022. package/dist/esm/react/src/core/NearRpcError.js.map +1 -0
  1023. package/dist/esm/react/src/core/OfflineExport/overlay.js.map +1 -0
  1024. package/dist/esm/react/src/core/TatchiPasskey/actions.js +403 -0
  1025. package/dist/esm/react/src/core/TatchiPasskey/actions.js.map +1 -0
  1026. package/dist/esm/react/src/core/TatchiPasskey/delegateAction.js +76 -0
  1027. package/dist/esm/react/src/core/TatchiPasskey/delegateAction.js.map +1 -0
  1028. package/dist/esm/react/src/core/TatchiPasskey/emailRecovery.js +933 -0
  1029. package/dist/esm/react/src/core/TatchiPasskey/emailRecovery.js.map +1 -0
  1030. package/dist/esm/react/src/core/TatchiPasskey/faucets/createAccountRelayServer.js +108 -0
  1031. package/dist/esm/react/src/core/TatchiPasskey/faucets/createAccountRelayServer.js.map +1 -0
  1032. package/dist/esm/react/src/core/TatchiPasskey/index.js +1335 -0
  1033. package/dist/esm/react/src/core/TatchiPasskey/index.js.map +1 -0
  1034. package/dist/esm/react/src/core/TatchiPasskey/linkDevice.js +766 -0
  1035. package/dist/esm/react/src/core/TatchiPasskey/linkDevice.js.map +1 -0
  1036. package/dist/esm/react/src/core/TatchiPasskey/login.js +754 -0
  1037. package/dist/esm/react/src/core/TatchiPasskey/login.js.map +1 -0
  1038. package/dist/esm/react/src/core/TatchiPasskey/registration.js +440 -0
  1039. package/dist/esm/react/src/core/TatchiPasskey/registration.js.map +1 -0
  1040. package/dist/esm/react/src/core/TatchiPasskey/relay.js +110 -0
  1041. package/dist/esm/react/src/core/TatchiPasskey/relay.js.map +1 -0
  1042. package/dist/esm/react/src/core/TatchiPasskey/scanDevice.js +98 -0
  1043. package/dist/esm/react/src/core/TatchiPasskey/scanDevice.js.map +1 -0
  1044. package/dist/esm/react/src/core/TatchiPasskey/signNEP413.js +96 -0
  1045. package/dist/esm/react/src/core/TatchiPasskey/signNEP413.js.map +1 -0
  1046. package/dist/esm/react/src/core/TatchiPasskey/syncAccount.js +505 -0
  1047. package/dist/esm/react/src/core/TatchiPasskey/syncAccount.js.map +1 -0
  1048. package/dist/esm/react/src/core/WalletIframe/client/IframeTransport.js +362 -0
  1049. package/dist/esm/react/src/core/WalletIframe/client/IframeTransport.js.map +1 -0
  1050. package/dist/esm/react/src/core/WalletIframe/client/on-events-progress-bus.js +207 -0
  1051. package/dist/esm/react/src/core/WalletIframe/client/on-events-progress-bus.js.map +1 -0
  1052. package/dist/esm/react/src/core/WalletIframe/client/overlay-controller.js.map +1 -0
  1053. package/dist/esm/react/src/core/WalletIframe/client/overlay-styles.js.map +1 -0
  1054. package/dist/esm/react/src/core/WalletIframe/client/router.js +1096 -0
  1055. package/dist/esm/react/src/core/WalletIframe/client/router.js.map +1 -0
  1056. package/dist/esm/react/src/core/WalletIframe/events.js.map +1 -0
  1057. package/dist/esm/react/src/core/WalletIframe/host-mode.js +13 -0
  1058. package/dist/esm/react/src/core/WalletIframe/host-mode.js.map +1 -0
  1059. package/dist/esm/react/src/core/WebAuthnManager/LitComponents/Drawer/index.js.map +1 -0
  1060. package/dist/esm/react/src/core/WebAuthnManager/LitComponents/ExportPrivateKey/iframe-host.js +218 -0
  1061. package/dist/esm/react/src/core/WebAuthnManager/LitComponents/ExportPrivateKey/iframe-host.js.map +1 -0
  1062. package/dist/esm/react/src/core/WebAuthnManager/LitComponents/HaloBorder/index.js.map +1 -0
  1063. package/dist/esm/react/src/core/WebAuthnManager/LitComponents/IframeTxConfirmer/tx-confirm-content.js +187 -0
  1064. package/dist/esm/react/src/core/WebAuthnManager/LitComponents/IframeTxConfirmer/tx-confirm-content.js.map +1 -0
  1065. package/dist/esm/react/src/core/WebAuthnManager/LitComponents/IframeTxConfirmer/tx-confirmer-wrapper.js +245 -0
  1066. package/dist/esm/react/src/core/WebAuthnManager/LitComponents/IframeTxConfirmer/tx-confirmer-wrapper.js.map +1 -0
  1067. package/dist/esm/react/src/core/WebAuthnManager/LitComponents/IframeTxConfirmer/viewer-drawer.js.map +1 -0
  1068. package/dist/esm/react/src/core/WebAuthnManager/LitComponents/IframeTxConfirmer/viewer-modal.js.map +1 -0
  1069. package/dist/esm/react/src/core/WebAuthnManager/LitComponents/LitElementWithProps.js +258 -0
  1070. package/dist/esm/react/src/core/WebAuthnManager/LitComponents/LitElementWithProps.js.map +1 -0
  1071. package/dist/esm/react/src/core/WebAuthnManager/LitComponents/PasskeyHaloLoading/index.js.map +1 -0
  1072. package/dist/esm/react/src/core/WebAuthnManager/LitComponents/TxTree/index.js +499 -0
  1073. package/dist/esm/react/src/core/WebAuthnManager/LitComponents/TxTree/index.js.map +1 -0
  1074. package/dist/esm/react/src/core/WebAuthnManager/LitComponents/TxTree/tx-tree-themes.js.map +1 -0
  1075. package/dist/esm/react/src/core/WebAuthnManager/LitComponents/TxTree/tx-tree-utils.js +181 -0
  1076. package/dist/esm/react/src/core/WebAuthnManager/LitComponents/TxTree/tx-tree-utils.js.map +1 -0
  1077. package/dist/esm/react/src/core/WebAuthnManager/LitComponents/asset-base.js.map +1 -0
  1078. package/dist/esm/react/src/core/WebAuthnManager/LitComponents/common/PadlockIcon.js.map +1 -0
  1079. package/dist/esm/react/src/core/WebAuthnManager/LitComponents/common/formatters.js.map +1 -0
  1080. package/dist/esm/react/src/core/WebAuthnManager/LitComponents/confirm-ui-types.js.map +1 -0
  1081. package/dist/esm/react/src/core/WebAuthnManager/LitComponents/confirm-ui.js +218 -0
  1082. package/dist/esm/react/src/core/WebAuthnManager/LitComponents/confirm-ui.js.map +1 -0
  1083. package/dist/esm/react/src/core/WebAuthnManager/LitComponents/css/css-loader.js.map +1 -0
  1084. package/dist/esm/react/src/core/WebAuthnManager/LitComponents/ensure-defined.js +19 -0
  1085. package/dist/esm/react/src/core/WebAuthnManager/LitComponents/ensure-defined.js.map +1 -0
  1086. package/dist/esm/react/src/core/WebAuthnManager/LitComponents/lit-events.js.map +1 -0
  1087. package/dist/esm/react/src/core/WebAuthnManager/LitComponents/tags.js +22 -0
  1088. package/dist/esm/react/src/core/WebAuthnManager/LitComponents/tags.js.map +1 -0
  1089. package/dist/esm/react/src/core/WebAuthnManager/SignerWorkerManager/getDeviceNumber.js +27 -0
  1090. package/dist/esm/react/src/core/WebAuthnManager/SignerWorkerManager/getDeviceNumber.js.map +1 -0
  1091. package/dist/esm/react/src/core/WebAuthnManager/SignerWorkerManager/handlers/checkCanRegisterUser.js +67 -0
  1092. package/dist/esm/react/src/core/WebAuthnManager/SignerWorkerManager/handlers/checkCanRegisterUser.js.map +1 -0
  1093. package/dist/esm/react/src/core/WebAuthnManager/SignerWorkerManager/handlers/decryptPrivateKeyWithPrf.js +42 -0
  1094. package/dist/esm/react/src/core/WebAuthnManager/SignerWorkerManager/handlers/decryptPrivateKeyWithPrf.js.map +1 -0
  1095. package/dist/esm/react/src/core/WebAuthnManager/SignerWorkerManager/handlers/deriveNearKeypairAndEncryptFromSerialized.js +68 -0
  1096. package/dist/esm/react/src/core/WebAuthnManager/SignerWorkerManager/handlers/deriveNearKeypairAndEncryptFromSerialized.js.map +1 -0
  1097. package/dist/esm/react/src/core/WebAuthnManager/SignerWorkerManager/handlers/deriveThresholdEd25519ClientVerifyingShare.js +44 -0
  1098. package/dist/esm/react/src/core/WebAuthnManager/SignerWorkerManager/handlers/deriveThresholdEd25519ClientVerifyingShare.js.map +1 -0
  1099. package/dist/esm/react/src/core/WebAuthnManager/SignerWorkerManager/handlers/exportNearKeypairUi.js +61 -0
  1100. package/dist/esm/react/src/core/WebAuthnManager/SignerWorkerManager/handlers/exportNearKeypairUi.js.map +1 -0
  1101. package/dist/esm/react/src/core/WebAuthnManager/SignerWorkerManager/handlers/extractCosePublicKey.js +23 -0
  1102. package/dist/esm/react/src/core/WebAuthnManager/SignerWorkerManager/handlers/extractCosePublicKey.js.map +1 -0
  1103. package/dist/esm/react/src/core/WebAuthnManager/SignerWorkerManager/handlers/recoverKeypairFromPasskey.js +42 -0
  1104. package/dist/esm/react/src/core/WebAuthnManager/SignerWorkerManager/handlers/recoverKeypairFromPasskey.js.map +1 -0
  1105. package/dist/esm/react/src/core/WebAuthnManager/SignerWorkerManager/handlers/registerDevice2WithDerivedKey.js +118 -0
  1106. package/dist/esm/react/src/core/WebAuthnManager/SignerWorkerManager/handlers/registerDevice2WithDerivedKey.js.map +1 -0
  1107. package/dist/esm/react/src/core/WebAuthnManager/SignerWorkerManager/handlers/session.js +15 -0
  1108. package/dist/esm/react/src/core/WebAuthnManager/SignerWorkerManager/handlers/session.js.map +1 -0
  1109. package/dist/esm/react/src/core/WebAuthnManager/SignerWorkerManager/handlers/signDelegateAction.js +258 -0
  1110. package/dist/esm/react/src/core/WebAuthnManager/SignerWorkerManager/handlers/signDelegateAction.js.map +1 -0
  1111. package/dist/esm/react/src/core/WebAuthnManager/SignerWorkerManager/handlers/signNep413Message.js +217 -0
  1112. package/dist/esm/react/src/core/WebAuthnManager/SignerWorkerManager/handlers/signNep413Message.js.map +1 -0
  1113. package/dist/esm/react/src/core/WebAuthnManager/SignerWorkerManager/handlers/signTransactionWithKeyPair.js +55 -0
  1114. package/dist/esm/react/src/core/WebAuthnManager/SignerWorkerManager/handlers/signTransactionWithKeyPair.js.map +1 -0
  1115. package/dist/esm/react/src/core/WebAuthnManager/SignerWorkerManager/handlers/signTransactionsWithActions.js +299 -0
  1116. package/dist/esm/react/src/core/WebAuthnManager/SignerWorkerManager/handlers/signTransactionsWithActions.js.map +1 -0
  1117. package/dist/esm/react/src/core/WebAuthnManager/SignerWorkerManager/handlers/validation.js +74 -0
  1118. package/dist/esm/react/src/core/WebAuthnManager/SignerWorkerManager/handlers/validation.js.map +1 -0
  1119. package/dist/esm/react/src/core/WebAuthnManager/SignerWorkerManager/index.js +457 -0
  1120. package/dist/esm/react/src/core/WebAuthnManager/SignerWorkerManager/index.js.map +1 -0
  1121. package/dist/esm/react/src/core/WebAuthnManager/SignerWorkerManager/sessionHandshake.js.map +1 -0
  1122. package/dist/esm/react/src/core/WebAuthnManager/SignerWorkerManager/sessionMessages.js +92 -0
  1123. package/dist/esm/react/src/core/WebAuthnManager/SignerWorkerManager/sessionMessages.js.map +1 -0
  1124. package/dist/esm/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/common.js +54 -0
  1125. package/dist/esm/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/common.js.map +1 -0
  1126. package/dist/esm/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/createAdapters.js.map +1 -0
  1127. package/dist/esm/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/near.js +50 -0
  1128. package/dist/esm/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/near.js.map +1 -0
  1129. package/dist/esm/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/requestAdapter.js +30 -0
  1130. package/dist/esm/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/requestAdapter.js.map +1 -0
  1131. package/dist/esm/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/requestHelpers.js.map +1 -0
  1132. package/dist/esm/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/session.js.map +1 -0
  1133. package/dist/esm/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/ui.js.map +1 -0
  1134. package/dist/esm/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/vrf.js +87 -0
  1135. package/dist/esm/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/vrf.js.map +1 -0
  1136. package/dist/esm/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/webauthn.js +17 -0
  1137. package/dist/esm/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/webauthn.js.map +1 -0
  1138. package/dist/esm/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/determineConfirmationConfig.js +63 -0
  1139. package/dist/esm/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/determineConfirmationConfig.js.map +1 -0
  1140. package/dist/esm/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/localOnly.js +124 -0
  1141. package/dist/esm/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/localOnly.js.map +1 -0
  1142. package/dist/esm/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/registration.js +157 -0
  1143. package/dist/esm/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/registration.js.map +1 -0
  1144. package/dist/esm/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/requestRegistrationCredentialConfirmation.js +49 -0
  1145. package/dist/esm/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/requestRegistrationCredentialConfirmation.js.map +1 -0
  1146. package/dist/esm/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/transactions.js +175 -0
  1147. package/dist/esm/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/transactions.js.map +1 -0
  1148. package/dist/esm/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/handleSecureConfirmRequest.js +117 -0
  1149. package/dist/esm/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/handleSecureConfirmRequest.js.map +1 -0
  1150. package/dist/esm/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/types.js.map +1 -0
  1151. package/dist/esm/react/src/core/WebAuthnManager/VrfWorkerManager/handlers/checkSessionStatus.js.map +1 -0
  1152. package/dist/esm/react/src/core/WebAuthnManager/VrfWorkerManager/handlers/checkVrfStatus.js +54 -0
  1153. package/dist/esm/react/src/core/WebAuthnManager/VrfWorkerManager/handlers/checkVrfStatus.js.map +1 -0
  1154. package/dist/esm/react/src/core/WebAuthnManager/VrfWorkerManager/handlers/clearSession.js.map +1 -0
  1155. package/dist/esm/react/src/core/WebAuthnManager/VrfWorkerManager/handlers/clearVrf.js.map +1 -0
  1156. package/dist/esm/react/src/core/WebAuthnManager/VrfWorkerManager/handlers/confirmAndDeriveDevice2RegistrationSession.js.map +1 -0
  1157. package/dist/esm/react/src/core/WebAuthnManager/VrfWorkerManager/handlers/confirmAndPrepareSigningSession.js +158 -0
  1158. package/dist/esm/react/src/core/WebAuthnManager/VrfWorkerManager/handlers/confirmAndPrepareSigningSession.js.map +1 -0
  1159. package/dist/esm/react/src/core/WebAuthnManager/VrfWorkerManager/handlers/deriveVrfKeypairFromPrf.js +61 -0
  1160. package/dist/esm/react/src/core/WebAuthnManager/VrfWorkerManager/handlers/deriveVrfKeypairFromPrf.js.map +1 -0
  1161. package/dist/esm/react/src/core/WebAuthnManager/VrfWorkerManager/handlers/dispenseSessionKey.js.map +1 -0
  1162. package/dist/esm/react/src/core/WebAuthnManager/VrfWorkerManager/handlers/generateVrfChallenge.js +79 -0
  1163. package/dist/esm/react/src/core/WebAuthnManager/VrfWorkerManager/handlers/generateVrfChallenge.js.map +1 -0
  1164. package/dist/esm/react/src/core/WebAuthnManager/VrfWorkerManager/handlers/generateVrfKeypairBootstrap.js +61 -0
  1165. package/dist/esm/react/src/core/WebAuthnManager/VrfWorkerManager/handlers/generateVrfKeypairBootstrap.js.map +1 -0
  1166. package/dist/esm/react/src/core/WebAuthnManager/VrfWorkerManager/handlers/mintSessionKeysAndSendToSigner.js.map +1 -0
  1167. package/dist/esm/react/src/core/WebAuthnManager/VrfWorkerManager/handlers/prepareDecryptSession.js.map +1 -0
  1168. package/dist/esm/react/src/core/WebAuthnManager/VrfWorkerManager/handlers/requestRegistrationCredentialConfirmation.js.map +1 -0
  1169. package/dist/esm/react/src/core/WebAuthnManager/VrfWorkerManager/handlers/shamir3PassDecryptVrfKeypair.js.map +1 -0
  1170. package/dist/esm/react/src/core/WebAuthnManager/VrfWorkerManager/handlers/shamir3PassEncryptCurrentVrfKeypair.js.map +1 -0
  1171. package/dist/esm/react/src/core/WebAuthnManager/VrfWorkerManager/handlers/unlockVrfKeypair.js.map +1 -0
  1172. package/dist/esm/react/src/core/WebAuthnManager/VrfWorkerManager/index.js +408 -0
  1173. package/dist/esm/react/src/core/WebAuthnManager/VrfWorkerManager/index.js.map +1 -0
  1174. package/dist/esm/react/src/core/WebAuthnManager/VrfWorkerManager/secureConfirmBridge.js.map +1 -0
  1175. package/dist/esm/react/src/core/WebAuthnManager/WebAuthnFallbacks/safari-fallbacks.js +197 -0
  1176. package/dist/esm/react/src/core/WebAuthnManager/WebAuthnFallbacks/safari-fallbacks.js.map +1 -0
  1177. package/dist/esm/react/src/core/WebAuthnManager/collectAuthenticationCredentialForVrfChallenge.js +34 -0
  1178. package/dist/esm/react/src/core/WebAuthnManager/collectAuthenticationCredentialForVrfChallenge.js.map +1 -0
  1179. package/dist/esm/react/src/core/WebAuthnManager/credentialsHelpers.js +286 -0
  1180. package/dist/esm/react/src/core/WebAuthnManager/credentialsHelpers.js.map +1 -0
  1181. package/dist/esm/react/src/core/WebAuthnManager/index.js +1192 -0
  1182. package/dist/esm/react/src/core/WebAuthnManager/index.js.map +1 -0
  1183. package/dist/esm/react/src/core/WebAuthnManager/threshold/enrollThresholdEd25519Key.js +92 -0
  1184. package/dist/esm/react/src/core/WebAuthnManager/threshold/enrollThresholdEd25519Key.js.map +1 -0
  1185. package/dist/esm/react/src/core/WebAuthnManager/threshold/rotateThresholdEd25519KeyPostRegistration.js +144 -0
  1186. package/dist/esm/react/src/core/WebAuthnManager/threshold/rotateThresholdEd25519KeyPostRegistration.js.map +1 -0
  1187. package/dist/esm/react/src/core/WebAuthnManager/touchIdPrompt.js +265 -0
  1188. package/dist/esm/react/src/core/WebAuthnManager/touchIdPrompt.js.map +1 -0
  1189. package/dist/esm/react/src/core/WebAuthnManager/userHandle.js +35 -0
  1190. package/dist/esm/react/src/core/WebAuthnManager/userHandle.js.map +1 -0
  1191. package/dist/esm/react/src/core/WebAuthnManager/userPreferences.js +390 -0
  1192. package/dist/esm/react/src/core/WebAuthnManager/userPreferences.js.map +1 -0
  1193. package/dist/esm/react/src/core/defaultConfigs.js +104 -0
  1194. package/dist/esm/react/src/core/defaultConfigs.js.map +1 -0
  1195. package/dist/esm/react/src/core/digests/intentDigest.js +95 -0
  1196. package/dist/esm/react/src/core/digests/intentDigest.js.map +1 -0
  1197. package/dist/esm/react/src/core/nearCrypto.js +27 -0
  1198. package/dist/esm/react/src/core/nearCrypto.js.map +1 -0
  1199. package/dist/esm/react/src/core/nonceManager.js +393 -0
  1200. package/dist/esm/react/src/core/nonceManager.js.map +1 -0
  1201. package/dist/esm/react/src/core/rpcCalls.js +672 -0
  1202. package/dist/esm/react/src/core/rpcCalls.js.map +1 -0
  1203. package/dist/esm/react/src/core/sdkPaths/base.js.map +1 -0
  1204. package/dist/esm/react/src/core/sdkPaths/workers.js +44 -0
  1205. package/dist/esm/react/src/core/sdkPaths/workers.js.map +1 -0
  1206. package/dist/esm/react/src/core/threshold/thresholdEd25519AuthSession.js +140 -0
  1207. package/dist/esm/react/src/core/threshold/thresholdEd25519AuthSession.js.map +1 -0
  1208. package/dist/esm/react/src/core/threshold/thresholdEd25519RelayerHealth.js +117 -0
  1209. package/dist/esm/react/src/core/threshold/thresholdEd25519RelayerHealth.js.map +1 -0
  1210. package/dist/esm/react/src/core/threshold/thresholdSessionPolicy.js +65 -0
  1211. package/dist/esm/react/src/core/threshold/thresholdSessionPolicy.js.map +1 -0
  1212. package/dist/esm/react/src/core/types/accountIds.js +23 -0
  1213. package/dist/esm/react/src/core/types/accountIds.js.map +1 -0
  1214. package/dist/esm/react/src/core/types/actions.js +260 -0
  1215. package/dist/esm/react/src/core/types/actions.js.map +1 -0
  1216. package/dist/esm/react/src/core/types/authenticatorOptions.js +47 -0
  1217. package/dist/esm/react/src/core/types/authenticatorOptions.js.map +1 -0
  1218. package/dist/esm/react/src/core/types/emailRecovery.js +29 -0
  1219. package/dist/esm/react/src/core/types/emailRecovery.js.map +1 -0
  1220. package/dist/esm/react/src/core/types/linkDevice.js.map +1 -0
  1221. package/dist/esm/react/src/core/types/rpc.js +14 -0
  1222. package/dist/esm/react/src/core/types/rpc.js.map +1 -0
  1223. package/dist/esm/react/src/core/types/sdkSentEvents.js +110 -0
  1224. package/dist/esm/react/src/core/types/sdkSentEvents.js.map +1 -0
  1225. package/dist/esm/react/src/core/types/signer-worker.js +125 -0
  1226. package/dist/esm/react/src/core/types/signer-worker.js.map +1 -0
  1227. package/dist/esm/react/src/core/types/vrf-worker.js +62 -0
  1228. package/dist/esm/react/src/core/types/vrf-worker.js.map +1 -0
  1229. package/dist/esm/react/src/core/workerControlMessages.js.map +1 -0
  1230. package/dist/esm/react/src/theme/base-styles.js.map +1 -0
  1231. package/dist/esm/react/src/theme/palette.js.map +1 -0
  1232. package/dist/esm/react/src/threshold/participants.js +76 -0
  1233. package/dist/esm/react/src/threshold/participants.js.map +1 -0
  1234. package/dist/esm/react/src/utils/base58.js +19 -0
  1235. package/dist/esm/react/src/utils/base58.js.map +1 -0
  1236. package/dist/esm/react/src/utils/base64.js +67 -0
  1237. package/dist/esm/react/src/utils/base64.js.map +1 -0
  1238. package/dist/esm/react/src/utils/digests.js +26 -0
  1239. package/dist/esm/react/src/utils/digests.js.map +1 -0
  1240. package/dist/esm/react/src/utils/errors.js +136 -0
  1241. package/dist/esm/react/src/utils/errors.js.map +1 -0
  1242. package/dist/esm/react/src/utils/qrScanner.js.map +1 -0
  1243. package/dist/esm/react/src/utils/validation.js +144 -0
  1244. package/dist/esm/react/src/utils/validation.js.map +1 -0
  1245. package/dist/esm/sdk/EmailRecovery-Dl8b4ONg.js +9 -0
  1246. package/dist/esm/sdk/EmailRecovery-v9oNO2Tc.js +147 -0
  1247. package/dist/esm/sdk/HaloBorder-DYOOQFjI.js +1116 -0
  1248. package/dist/esm/sdk/IndexedDBManager-B1cUvdyY.js +1351 -0
  1249. package/dist/esm/sdk/accountIds-DVDhXwVA.js +15 -0
  1250. package/dist/esm/sdk/actions-fHadejPs.js +250 -0
  1251. package/dist/esm/sdk/base64-dqpWgddX.js +66 -0
  1252. package/dist/esm/sdk/browser-CH0Ca-MX.js +2443 -0
  1253. package/dist/esm/sdk/chunk-DitdNFGZ.js +28 -0
  1254. package/dist/esm/sdk/collectAuthenticationCredentialForVrfChallenge-C9p90e5Z.js +1404 -0
  1255. package/dist/esm/sdk/collectAuthenticationCredentialForVrfChallenge-C9p90e5Z.js.map +1 -0
  1256. package/dist/esm/sdk/collectAuthenticationCredentialForVrfChallenge-DqzPzwvU.js +138 -0
  1257. package/dist/esm/sdk/config-BbNXtVtu.js +100 -0
  1258. package/dist/esm/sdk/createAdapters-1Hmc1vVC.js +524 -0
  1259. package/dist/esm/sdk/createAdapters-Dv7ZJPf1.js +3767 -0
  1260. package/dist/esm/sdk/createAdapters-Dv7ZJPf1.js.map +1 -0
  1261. package/dist/esm/sdk/css-loader-CAIkFQ3i.js +1143 -0
  1262. package/dist/esm/sdk/css-loader-DWW-_Vli.js +1191 -0
  1263. package/dist/esm/sdk/css-loader-DWW-_Vli.js.map +1 -0
  1264. package/dist/esm/sdk/defaultConfigs-BmCU1_qI.js +103 -0
  1265. package/dist/esm/sdk/delegateAction-DdkvFFKA.js +76 -0
  1266. package/dist/esm/sdk/emailRecovery-4J-g9tlY.js +963 -0
  1267. package/dist/esm/sdk/errors-DevlT39D.js +135 -0
  1268. package/dist/esm/sdk/events-D2g80q67.js +8 -0
  1269. package/dist/esm/sdk/export-private-key-viewer.js +22 -17
  1270. package/dist/esm/sdk/getDeviceNumber-f8bfPB9U.js +599 -0
  1271. package/dist/esm/sdk/getDeviceNumber-f8bfPB9U.js.map +1 -0
  1272. package/dist/esm/sdk/getDeviceNumber-y3mMtky6.js +26 -0
  1273. package/dist/esm/sdk/halo-border.js +1 -1
  1274. package/dist/esm/sdk/host-mode-BIUqo9hg.js +44 -0
  1275. package/dist/esm/sdk/host-mode-CgqmYAwZ.js +13 -0
  1276. package/dist/esm/sdk/host-mode-CgqmYAwZ.js.map +1 -0
  1277. package/dist/esm/sdk/iframe-export-bootstrap.js +3 -4
  1278. package/dist/esm/sdk/iframe-host-BVt1hvOt.js +213 -0
  1279. package/dist/esm/sdk/iframe-host-d_rrsoyL.js +212 -0
  1280. package/dist/esm/sdk/iframe-host-d_rrsoyL.js.map +1 -0
  1281. package/dist/esm/sdk/intentDigest-yivVENNK.js +117 -0
  1282. package/dist/esm/sdk/linkDevice-C98klpcE.js +772 -0
  1283. package/dist/esm/sdk/localOnly-40zxrBMm.js +133 -0
  1284. package/dist/esm/sdk/localOnly-40zxrBMm.js.map +1 -0
  1285. package/dist/esm/sdk/localOnly-BZPBj14l.js +129 -0
  1286. package/dist/esm/sdk/login-DnROv3eA.js +1540 -0
  1287. package/dist/esm/sdk/offline-export-app.js +2355 -1061
  1288. package/dist/esm/sdk/offline-export-app.js.map +1 -1
  1289. package/dist/esm/sdk/overlay-Ci2FOQKE.js +433 -0
  1290. package/dist/esm/sdk/passkey-halo-loading.js +1 -1
  1291. package/dist/esm/sdk/registration-BP9M3tE1.js +165 -0
  1292. package/dist/esm/sdk/registration-MrAOC8Ub.js +154 -0
  1293. package/dist/esm/sdk/registration-MrAOC8Ub.js.map +1 -0
  1294. package/dist/esm/sdk/relay-Dq9D7fhG.js +109 -0
  1295. package/dist/esm/sdk/router-BEGGuWaB.js +1868 -0
  1296. package/dist/esm/sdk/rpc-Dq3ioE9T.js +13 -0
  1297. package/dist/esm/sdk/rpcCalls-B44MZora.js +671 -0
  1298. package/dist/esm/sdk/rpcCalls-CMzj_Va_.js +12 -0
  1299. package/dist/esm/sdk/safari-fallbacks-BcMFntiP.js +480 -0
  1300. package/dist/esm/sdk/scanDevice-Cp-r-Z2T.js +109 -0
  1301. package/dist/esm/sdk/sdkSentEvents-CzAZBFjP.js +109 -0
  1302. package/dist/esm/sdk/signNEP413-DsyWH_Jo.js +95 -0
  1303. package/dist/esm/sdk/signer-worker-DK847sXj.js +473 -0
  1304. package/dist/esm/sdk/syncAccount-CqWCmBVb.js +16 -0
  1305. package/dist/esm/sdk/syncAccount-Dt5jJbEB.js +533 -0
  1306. package/dist/esm/sdk/tags-ByzxP7Cc.js +22 -0
  1307. package/dist/esm/sdk/touchIdPrompt-JPhrOx8o.js +263 -0
  1308. package/dist/esm/sdk/transactions-CrjP8yPD.js +170 -0
  1309. package/dist/esm/sdk/transactions-CrjP8yPD.js.map +1 -0
  1310. package/dist/esm/sdk/transactions-DAZrPW-6.js +183 -0
  1311. package/dist/esm/sdk/tx-confirm-ui.js +58 -45
  1312. package/dist/esm/sdk/tx-confirmer-wrapper-DWKpXTUW.js +3248 -0
  1313. package/dist/esm/sdk/validation-BTq6LGPp.js +143 -0
  1314. package/dist/esm/sdk/validation-hUZgySTx.js +108 -0
  1315. package/dist/esm/sdk/validation-hUZgySTx.js.map +1 -0
  1316. package/dist/esm/sdk/vrf-worker-BzQsJ5BW.js +61 -0
  1317. package/dist/esm/sdk/w3a-components.css +0 -3
  1318. package/dist/esm/sdk/w3a-tx-confirmer.js +9 -10
  1319. package/dist/esm/sdk/wallet-iframe-host.js +6537 -10194
  1320. package/dist/esm/server/core/AuthService.js +137 -58
  1321. package/dist/esm/server/core/AuthService.js.map +1 -1
  1322. package/dist/esm/server/core/SessionService.js.map +1 -1
  1323. package/dist/esm/server/core/ShamirService.js +1 -1
  1324. package/dist/esm/server/core/ShamirService.js.map +1 -1
  1325. package/dist/esm/server/core/ThresholdService/ThresholdSigningService.js +976 -0
  1326. package/dist/esm/server/core/ThresholdService/ThresholdSigningService.js.map +1 -0
  1327. package/dist/esm/server/core/ThresholdService/config.js +96 -0
  1328. package/dist/esm/server/core/ThresholdService/config.js.map +1 -0
  1329. package/dist/esm/server/core/ThresholdService/coordinatorGrant.js +200 -0
  1330. package/dist/esm/server/core/ThresholdService/coordinatorGrant.js.map +1 -0
  1331. package/dist/esm/server/core/ThresholdService/cosigners.js +278 -0
  1332. package/dist/esm/server/core/ThresholdService/cosigners.js.map +1 -0
  1333. package/dist/esm/server/core/ThresholdService/createThresholdSigningService.js +98 -0
  1334. package/dist/esm/server/core/ThresholdService/createThresholdSigningService.js.map +1 -0
  1335. package/dist/esm/server/core/ThresholdService/keygenStrategy.js +114 -0
  1336. package/dist/esm/server/core/ThresholdService/keygenStrategy.js.map +1 -0
  1337. package/dist/esm/server/core/ThresholdService/kv.js +335 -0
  1338. package/dist/esm/server/core/ThresholdService/kv.js.map +1 -0
  1339. package/dist/esm/server/core/ThresholdService/relayerKeyMaterial.js +65 -0
  1340. package/dist/esm/server/core/ThresholdService/relayerKeyMaterial.js.map +1 -0
  1341. package/dist/esm/server/core/ThresholdService/signingHandlers.js +1177 -0
  1342. package/dist/esm/server/core/ThresholdService/signingHandlers.js.map +1 -0
  1343. package/dist/esm/server/core/ThresholdService/stores/AuthSessionStore.js +258 -0
  1344. package/dist/esm/server/core/ThresholdService/stores/AuthSessionStore.js.map +1 -0
  1345. package/dist/esm/server/core/ThresholdService/stores/KeyStore.js +136 -0
  1346. package/dist/esm/server/core/ThresholdService/stores/KeyStore.js.map +1 -0
  1347. package/dist/esm/server/core/ThresholdService/stores/SessionStore.js +228 -0
  1348. package/dist/esm/server/core/ThresholdService/stores/SessionStore.js.map +1 -0
  1349. package/dist/esm/server/core/ThresholdService/validation.js +544 -0
  1350. package/dist/esm/server/core/ThresholdService/validation.js.map +1 -0
  1351. package/dist/esm/server/core/config.js +26 -18
  1352. package/dist/esm/server/core/config.js.map +1 -1
  1353. package/dist/esm/server/core/errors.js +3 -1
  1354. package/dist/esm/server/core/errors.js.map +1 -1
  1355. package/dist/esm/server/core/logger.js +2 -1
  1356. package/dist/esm/server/core/logger.js.map +1 -1
  1357. package/dist/esm/server/core/nearKeys.js +13 -0
  1358. package/dist/esm/server/core/nearKeys.js.map +1 -0
  1359. package/dist/esm/server/core/shamirHandlers.js +1 -1
  1360. package/dist/esm/server/core/shamirHandlers.js.map +1 -1
  1361. package/dist/esm/server/core/shamirWorker.js +94 -0
  1362. package/dist/esm/server/core/shamirWorker.js.map +1 -1
  1363. package/dist/esm/server/core/utils.js +1 -1
  1364. package/dist/esm/server/core/utils.js.map +1 -1
  1365. package/dist/esm/server/delegateAction/index.js.map +1 -1
  1366. package/dist/esm/server/email-recovery/emailEncryptor.js +1 -1
  1367. package/dist/esm/server/email-recovery/emailParsers.js +4 -4
  1368. package/dist/esm/server/email-recovery/emailParsers.js.map +1 -1
  1369. package/dist/esm/server/email-recovery/index.js +11 -6
  1370. package/dist/esm/server/email-recovery/index.js.map +1 -1
  1371. package/dist/esm/server/email-recovery/rpcCalls.js +2 -4
  1372. package/dist/esm/server/email-recovery/rpcCalls.js.map +1 -1
  1373. package/dist/esm/server/email-recovery/zkEmail/proverClient.js +3 -4
  1374. package/dist/esm/server/email-recovery/zkEmail/proverClient.js.map +1 -1
  1375. package/dist/esm/server/index.js +5 -1
  1376. package/dist/esm/server/node_modules/.pnpm/@noble_curves@2.0.1/node_modules/@noble/curves/abstract/curve.js +243 -1
  1377. package/dist/esm/server/node_modules/.pnpm/@noble_curves@2.0.1/node_modules/@noble/curves/abstract/curve.js.map +1 -1
  1378. package/dist/esm/server/node_modules/.pnpm/@noble_curves@2.0.1/node_modules/@noble/curves/abstract/edwards.js +400 -0
  1379. package/dist/esm/server/node_modules/.pnpm/@noble_curves@2.0.1/node_modules/@noble/curves/abstract/edwards.js.map +1 -0
  1380. package/dist/esm/server/node_modules/.pnpm/@noble_curves@2.0.1/node_modules/@noble/curves/abstract/modular.js +367 -1
  1381. package/dist/esm/server/node_modules/.pnpm/@noble_curves@2.0.1/node_modules/@noble/curves/abstract/modular.js.map +1 -1
  1382. package/dist/esm/server/node_modules/.pnpm/@noble_curves@2.0.1/node_modules/@noble/curves/ed25519.js +53 -2
  1383. package/dist/esm/server/node_modules/.pnpm/@noble_curves@2.0.1/node_modules/@noble/curves/ed25519.js.map +1 -1
  1384. package/dist/esm/server/node_modules/.pnpm/@noble_curves@2.0.1/node_modules/@noble/curves/utils.js +32 -2
  1385. package/dist/esm/server/node_modules/.pnpm/@noble_curves@2.0.1/node_modules/@noble/curves/utils.js.map +1 -1
  1386. package/dist/esm/server/node_modules/.pnpm/@noble_hashes@2.0.1/node_modules/@noble/hashes/_md.js +20 -1
  1387. package/dist/esm/server/node_modules/.pnpm/@noble_hashes@2.0.1/node_modules/@noble/hashes/_md.js.map +1 -1
  1388. package/dist/esm/server/node_modules/.pnpm/@noble_hashes@2.0.1/node_modules/@noble/hashes/_u64.js +51 -0
  1389. package/dist/esm/server/node_modules/.pnpm/@noble_hashes@2.0.1/node_modules/@noble/hashes/_u64.js.map +1 -0
  1390. package/dist/esm/server/node_modules/.pnpm/@noble_hashes@2.0.1/node_modules/@noble/hashes/sha2.js +224 -2
  1391. package/dist/esm/server/node_modules/.pnpm/@noble_hashes@2.0.1/node_modules/@noble/hashes/sha2.js.map +1 -1
  1392. package/dist/esm/server/node_modules/.pnpm/@noble_hashes@2.0.1/node_modules/@noble/hashes/utils.js +17 -1
  1393. package/dist/esm/server/node_modules/.pnpm/@noble_hashes@2.0.1/node_modules/@noble/hashes/utils.js.map +1 -1
  1394. package/dist/esm/server/router/cloudflare.js +1117 -684
  1395. package/dist/esm/server/router/cloudflare.js.map +1 -1
  1396. package/dist/esm/server/router/express.js +812 -350
  1397. package/dist/esm/server/router/express.js.map +1 -1
  1398. package/dist/esm/server/sdk/src/core/NearClient.js +8 -1
  1399. package/dist/esm/server/sdk/src/core/NearClient.js.map +1 -1
  1400. package/dist/esm/server/sdk/src/core/defaultConfigs.js +5 -1
  1401. package/dist/esm/server/sdk/src/core/defaultConfigs.js.map +1 -1
  1402. package/dist/esm/server/sdk/src/core/nearCrypto.js +2 -34
  1403. package/dist/esm/server/sdk/src/core/nearCrypto.js.map +1 -1
  1404. package/dist/esm/server/sdk/src/core/types/actions.js.map +1 -1
  1405. package/dist/esm/server/sdk/src/core/types/rpc.js +1 -0
  1406. package/dist/esm/server/sdk/src/core/types/rpc.js.map +1 -1
  1407. package/dist/esm/server/sdk/src/threshold/participants.js +27 -0
  1408. package/dist/esm/server/sdk/src/threshold/participants.js.map +1 -0
  1409. package/dist/esm/server/sdk/src/utils/base64.js +33 -1
  1410. package/dist/esm/server/sdk/src/utils/base64.js.map +1 -1
  1411. package/dist/esm/server/sdk/src/utils/digests.js +26 -0
  1412. package/dist/esm/server/sdk/src/utils/digests.js.map +1 -0
  1413. package/dist/esm/server/sdk/src/utils/errors.js +18 -1
  1414. package/dist/esm/server/sdk/src/utils/errors.js.map +1 -1
  1415. package/dist/esm/server/sdk/src/utils/validation.js +84 -0
  1416. package/dist/esm/server/sdk/src/utils/validation.js.map +1 -0
  1417. package/dist/esm/threshold/participants.js +76 -0
  1418. package/dist/esm/threshold/participants.js.map +1 -0
  1419. package/dist/esm/utils/base58.js +13 -11
  1420. package/dist/esm/utils/base58.js.map +1 -1
  1421. package/dist/esm/utils/base64.js +33 -16
  1422. package/dist/esm/utils/base64.js.map +1 -1
  1423. package/dist/esm/utils/digests.js +26 -0
  1424. package/dist/esm/utils/digests.js.map +1 -0
  1425. package/dist/esm/utils/errors.js +1 -5
  1426. package/dist/esm/utils/errors.js.map +1 -1
  1427. package/dist/esm/utils/validation.js +88 -5
  1428. package/dist/esm/utils/validation.js.map +1 -1
  1429. package/dist/esm/wasm_signer_worker/pkg/wasm_signer_worker.js +381 -225
  1430. package/dist/esm/wasm_signer_worker/pkg/wasm_signer_worker_bg.wasm +0 -0
  1431. package/dist/esm/wasm_vrf_worker/pkg/wasm_vrf_worker.js +103 -11
  1432. package/dist/esm/wasm_vrf_worker/pkg/wasm_vrf_worker_bg.wasm +0 -0
  1433. package/dist/types/src/__tests__/e2e/thresholdEd25519.testUtils.d.ts +25 -0
  1434. package/dist/types/src/__tests__/e2e/thresholdEd25519.testUtils.d.ts.map +1 -0
  1435. package/dist/types/src/__tests__/helpers/thresholdEd25519TestUtils.d.ts +23 -0
  1436. package/dist/types/src/__tests__/helpers/thresholdEd25519TestUtils.d.ts.map +1 -0
  1437. package/dist/types/src/__tests__/relayer/helpers.d.ts +1 -0
  1438. package/dist/types/src/__tests__/relayer/helpers.d.ts.map +1 -1
  1439. package/dist/types/src/__tests__/setup/bootstrap.d.ts.map +1 -1
  1440. package/dist/types/src/__tests__/setup/flows.d.ts +11 -3
  1441. package/dist/types/src/__tests__/setup/flows.d.ts.map +1 -1
  1442. package/dist/types/src/__tests__/setup/index.d.ts +1 -1
  1443. package/dist/types/src/__tests__/setup/index.d.ts.map +1 -1
  1444. package/dist/types/src/__tests__/setup/webauthn-mocks.d.ts.map +1 -1
  1445. package/dist/types/src/core/EmailRecovery/emailRecoveryPendingStore.d.ts +1 -1
  1446. package/dist/types/src/core/EmailRecovery/emailRecoveryPendingStore.d.ts.map +1 -1
  1447. package/dist/types/src/core/IndexedDBManager/index.d.ts +3 -3
  1448. package/dist/types/src/core/IndexedDBManager/index.d.ts.map +1 -1
  1449. package/dist/types/src/core/IndexedDBManager/passkeyClientDB.d.ts +10 -1
  1450. package/dist/types/src/core/IndexedDBManager/passkeyClientDB.d.ts.map +1 -1
  1451. package/dist/types/src/core/IndexedDBManager/passkeyNearKeysDB.d.ts +33 -16
  1452. package/dist/types/src/core/IndexedDBManager/passkeyNearKeysDB.d.ts.map +1 -1
  1453. package/dist/types/src/core/NearClient.d.ts +2 -0
  1454. package/dist/types/src/core/NearClient.d.ts.map +1 -1
  1455. package/dist/types/src/core/OfflineExport/offline-export-app.d.ts.map +1 -1
  1456. package/dist/types/src/core/TatchiPasskey/actions.d.ts +10 -7
  1457. package/dist/types/src/core/TatchiPasskey/actions.d.ts.map +1 -1
  1458. package/dist/types/src/core/TatchiPasskey/delegateAction.d.ts +1 -1
  1459. package/dist/types/src/core/TatchiPasskey/delegateAction.d.ts.map +1 -1
  1460. package/dist/types/src/core/TatchiPasskey/emailRecovery.d.ts +3 -35
  1461. package/dist/types/src/core/TatchiPasskey/emailRecovery.d.ts.map +1 -1
  1462. package/dist/types/src/core/TatchiPasskey/faucets/createAccountRelayServer.d.ts +17 -1
  1463. package/dist/types/src/core/TatchiPasskey/faucets/createAccountRelayServer.d.ts.map +1 -1
  1464. package/dist/types/src/core/TatchiPasskey/index.d.ts +66 -33
  1465. package/dist/types/src/core/TatchiPasskey/index.d.ts.map +1 -1
  1466. package/dist/types/src/core/TatchiPasskey/linkDevice.d.ts +1 -0
  1467. package/dist/types/src/core/TatchiPasskey/linkDevice.d.ts.map +1 -1
  1468. package/dist/types/src/core/TatchiPasskey/login.d.ts.map +1 -1
  1469. package/dist/types/src/core/TatchiPasskey/registration.d.ts +1 -1
  1470. package/dist/types/src/core/TatchiPasskey/registration.d.ts.map +1 -1
  1471. package/dist/types/src/core/TatchiPasskey/signNEP413.d.ts +3 -1
  1472. package/dist/types/src/core/TatchiPasskey/signNEP413.d.ts.map +1 -1
  1473. package/dist/types/src/core/TatchiPasskey/syncAccount.d.ts +112 -0
  1474. package/dist/types/src/core/TatchiPasskey/syncAccount.d.ts.map +1 -0
  1475. package/dist/types/src/core/WalletIframe/TatchiPasskeyIframe.d.ts +39 -15
  1476. package/dist/types/src/core/WalletIframe/TatchiPasskeyIframe.d.ts.map +1 -1
  1477. package/dist/types/src/core/WalletIframe/client/IframeTransport.d.ts +11 -0
  1478. package/dist/types/src/core/WalletIframe/client/IframeTransport.d.ts.map +1 -1
  1479. package/dist/types/src/core/WalletIframe/client/router.d.ts +66 -72
  1480. package/dist/types/src/core/WalletIframe/client/router.d.ts.map +1 -1
  1481. package/dist/types/src/core/WalletIframe/host/context.d.ts +2 -2
  1482. package/dist/types/src/core/WalletIframe/host/context.d.ts.map +1 -1
  1483. package/dist/types/src/core/WalletIframe/host/iframe-lit-elem-mounter.d.ts +41 -20
  1484. package/dist/types/src/core/WalletIframe/host/iframe-lit-elem-mounter.d.ts.map +1 -1
  1485. package/dist/types/src/core/WalletIframe/host/iframe-lit-element-registry.d.ts +0 -34
  1486. package/dist/types/src/core/WalletIframe/host/iframe-lit-element-registry.d.ts.map +1 -1
  1487. package/dist/types/src/core/WalletIframe/host/mounter-styles.d.ts +1 -1
  1488. package/dist/types/src/core/WalletIframe/host/mounter-styles.d.ts.map +1 -1
  1489. package/dist/types/src/core/WalletIframe/host/wallet-iframe-handlers.d.ts +1 -2
  1490. package/dist/types/src/core/WalletIframe/host/wallet-iframe-handlers.d.ts.map +1 -1
  1491. package/dist/types/src/core/WalletIframe/host/wallet-iframe-host.d.ts.map +1 -1
  1492. package/dist/types/src/core/WalletIframe/host-mode.d.ts.map +1 -1
  1493. package/dist/types/src/core/WalletIframe/shared/messages.d.ts +78 -10
  1494. package/dist/types/src/core/WalletIframe/shared/messages.d.ts.map +1 -1
  1495. package/dist/types/src/core/WebAuthnManager/LitComponents/IframeTxConfirmer/tx-confirmer-wrapper.d.ts.map +1 -1
  1496. package/dist/types/src/core/WebAuthnManager/LitComponents/LitElementWithProps.d.ts +5 -3
  1497. package/dist/types/src/core/WebAuthnManager/LitComponents/LitElementWithProps.d.ts.map +1 -1
  1498. package/dist/types/src/core/WebAuthnManager/LitComponents/ensure-defined.d.ts +1 -1
  1499. package/dist/types/src/core/WebAuthnManager/LitComponents/ensure-defined.d.ts.map +1 -1
  1500. package/dist/types/src/core/WebAuthnManager/LitComponents/tags.d.ts +0 -52
  1501. package/dist/types/src/core/WebAuthnManager/LitComponents/tags.d.ts.map +1 -1
  1502. package/dist/types/src/core/WebAuthnManager/SignerWorkerManager/handlers/checkCanRegisterUser.d.ts +2 -2
  1503. package/dist/types/src/core/WebAuthnManager/SignerWorkerManager/handlers/checkCanRegisterUser.d.ts.map +1 -1
  1504. package/dist/types/src/core/WebAuthnManager/SignerWorkerManager/handlers/deriveNearKeypairAndEncryptFromSerialized.d.ts.map +1 -1
  1505. package/dist/types/src/core/WebAuthnManager/SignerWorkerManager/handlers/deriveThresholdEd25519ClientVerifyingShare.d.ts +13 -0
  1506. package/dist/types/src/core/WebAuthnManager/SignerWorkerManager/handlers/deriveThresholdEd25519ClientVerifyingShare.d.ts.map +1 -0
  1507. package/dist/types/src/core/WebAuthnManager/SignerWorkerManager/handlers/exportNearKeypairUi.d.ts.map +1 -1
  1508. package/dist/types/src/core/WebAuthnManager/SignerWorkerManager/handlers/index.d.ts +1 -0
  1509. package/dist/types/src/core/WebAuthnManager/SignerWorkerManager/handlers/index.d.ts.map +1 -1
  1510. package/dist/types/src/core/WebAuthnManager/SignerWorkerManager/handlers/registerDevice2WithDerivedKey.d.ts +11 -5
  1511. package/dist/types/src/core/WebAuthnManager/SignerWorkerManager/handlers/registerDevice2WithDerivedKey.d.ts.map +1 -1
  1512. package/dist/types/src/core/WebAuthnManager/SignerWorkerManager/handlers/session.d.ts +1 -1
  1513. package/dist/types/src/core/WebAuthnManager/SignerWorkerManager/handlers/session.d.ts.map +1 -1
  1514. package/dist/types/src/core/WebAuthnManager/SignerWorkerManager/handlers/signDelegateAction.d.ts +3 -2
  1515. package/dist/types/src/core/WebAuthnManager/SignerWorkerManager/handlers/signDelegateAction.d.ts.map +1 -1
  1516. package/dist/types/src/core/WebAuthnManager/SignerWorkerManager/handlers/signNep413Message.d.ts +2 -1
  1517. package/dist/types/src/core/WebAuthnManager/SignerWorkerManager/handlers/signNep413Message.d.ts.map +1 -1
  1518. package/dist/types/src/core/WebAuthnManager/SignerWorkerManager/handlers/signTransactionWithKeyPair.d.ts.map +1 -1
  1519. package/dist/types/src/core/WebAuthnManager/SignerWorkerManager/handlers/signTransactionsWithActions.d.ts +5 -5
  1520. package/dist/types/src/core/WebAuthnManager/SignerWorkerManager/handlers/signTransactionsWithActions.d.ts.map +1 -1
  1521. package/dist/types/src/core/WebAuthnManager/SignerWorkerManager/handlers/validation.d.ts +2 -2
  1522. package/dist/types/src/core/WebAuthnManager/SignerWorkerManager/handlers/validation.d.ts.map +1 -1
  1523. package/dist/types/src/core/WebAuthnManager/SignerWorkerManager/index.d.ts +19 -4
  1524. package/dist/types/src/core/WebAuthnManager/SignerWorkerManager/index.d.ts.map +1 -1
  1525. package/dist/types/src/core/WebAuthnManager/SignerWorkerManager/sessionMessages.d.ts +6 -1
  1526. package/dist/types/src/core/WebAuthnManager/SignerWorkerManager/sessionMessages.d.ts.map +1 -1
  1527. package/dist/types/src/core/WebAuthnManager/SignerWorkerManager/thresholdSessionHelpers.d.ts +1 -0
  1528. package/dist/types/src/core/WebAuthnManager/SignerWorkerManager/thresholdSessionHelpers.d.ts.map +1 -0
  1529. package/dist/types/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/interfaces.d.ts +3 -3
  1530. package/dist/types/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/interfaces.d.ts.map +1 -1
  1531. package/dist/types/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/near.d.ts.map +1 -1
  1532. package/dist/types/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/requestAdapter.d.ts.map +1 -1
  1533. package/dist/types/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/session.d.ts +2 -2
  1534. package/dist/types/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/session.d.ts.map +1 -1
  1535. package/dist/types/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/vrf.d.ts +2 -2
  1536. package/dist/types/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/vrf.d.ts.map +1 -1
  1537. package/dist/types/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/webauthn.d.ts.map +1 -1
  1538. package/dist/types/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/localOnly.d.ts.map +1 -1
  1539. package/dist/types/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/registration.d.ts.map +1 -1
  1540. package/dist/types/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/requestRegistrationCredentialConfirmation.d.ts.map +1 -1
  1541. package/dist/types/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/transactions.d.ts.map +1 -1
  1542. package/dist/types/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/types.d.ts +9 -1
  1543. package/dist/types/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/types.d.ts.map +1 -1
  1544. package/dist/types/src/core/WebAuthnManager/VrfWorkerManager/handlers/checkVrfStatus.d.ts.map +1 -1
  1545. package/dist/types/src/core/WebAuthnManager/VrfWorkerManager/handlers/confirmAndPrepareSigningSession.d.ts +17 -2
  1546. package/dist/types/src/core/WebAuthnManager/VrfWorkerManager/handlers/confirmAndPrepareSigningSession.d.ts.map +1 -1
  1547. package/dist/types/src/core/WebAuthnManager/VrfWorkerManager/handlers/deriveVrfKeypairFromPrf.d.ts.map +1 -1
  1548. package/dist/types/src/core/WebAuthnManager/VrfWorkerManager/handlers/generateVrfChallenge.d.ts.map +1 -1
  1549. package/dist/types/src/core/WebAuthnManager/VrfWorkerManager/handlers/generateVrfKeypairBootstrap.d.ts.map +1 -1
  1550. package/dist/types/src/core/WebAuthnManager/VrfWorkerManager/handlers/unlockVrfKeypair.d.ts +2 -2
  1551. package/dist/types/src/core/WebAuthnManager/VrfWorkerManager/handlers/unlockVrfKeypair.d.ts.map +1 -1
  1552. package/dist/types/src/core/WebAuthnManager/VrfWorkerManager/index.d.ts +9 -2
  1553. package/dist/types/src/core/WebAuthnManager/VrfWorkerManager/index.d.ts.map +1 -1
  1554. package/dist/types/src/core/WebAuthnManager/collectAuthenticationCredentialForVrfChallenge.d.ts +22 -0
  1555. package/dist/types/src/core/WebAuthnManager/collectAuthenticationCredentialForVrfChallenge.d.ts.map +1 -0
  1556. package/dist/types/src/core/WebAuthnManager/credentialsHelpers.d.ts +8 -3
  1557. package/dist/types/src/core/WebAuthnManager/credentialsHelpers.d.ts.map +1 -1
  1558. package/dist/types/src/core/WebAuthnManager/index.d.ts +118 -14
  1559. package/dist/types/src/core/WebAuthnManager/index.d.ts.map +1 -1
  1560. package/dist/types/src/core/WebAuthnManager/threshold/enrollThresholdEd25519Key.d.ts +46 -0
  1561. package/dist/types/src/core/WebAuthnManager/threshold/enrollThresholdEd25519Key.d.ts.map +1 -0
  1562. package/dist/types/src/core/WebAuthnManager/threshold/rotateThresholdEd25519KeyPostRegistration.d.ts +48 -0
  1563. package/dist/types/src/core/WebAuthnManager/threshold/rotateThresholdEd25519KeyPostRegistration.d.ts.map +1 -0
  1564. package/dist/types/src/core/WebAuthnManager/userPreferences.d.ts +36 -1
  1565. package/dist/types/src/core/WebAuthnManager/userPreferences.d.ts.map +1 -1
  1566. package/dist/types/src/core/defaultConfigs.d.ts +5 -0
  1567. package/dist/types/src/core/defaultConfigs.d.ts.map +1 -1
  1568. package/dist/types/src/core/digests/intentDigest.d.ts +19 -0
  1569. package/dist/types/src/core/digests/intentDigest.d.ts.map +1 -0
  1570. package/dist/types/src/core/nearCrypto.d.ts +2 -16
  1571. package/dist/types/src/core/nearCrypto.d.ts.map +1 -1
  1572. package/dist/types/src/core/nonceManager.d.ts.map +1 -1
  1573. package/dist/types/src/core/rpcCalls.d.ts +64 -2
  1574. package/dist/types/src/core/rpcCalls.d.ts.map +1 -1
  1575. package/dist/types/src/core/sdkPaths/workers.d.ts +1 -1
  1576. package/dist/types/src/core/sdkPaths/workers.d.ts.map +1 -1
  1577. package/dist/types/src/core/threshold/index.d.ts +1 -0
  1578. package/dist/types/src/core/threshold/index.d.ts.map +1 -0
  1579. package/dist/types/src/core/threshold/thresholdEd25519AuthSession.d.ts +42 -0
  1580. package/dist/types/src/core/threshold/thresholdEd25519AuthSession.d.ts.map +1 -0
  1581. package/dist/types/src/core/threshold/thresholdEd25519RelayerHealth.d.ts +31 -0
  1582. package/dist/types/src/core/threshold/thresholdEd25519RelayerHealth.d.ts.map +1 -0
  1583. package/dist/types/src/core/threshold/thresholdSessionPolicy.d.ts +45 -0
  1584. package/dist/types/src/core/threshold/thresholdSessionPolicy.d.ts.map +1 -0
  1585. package/dist/types/src/core/types/delegate.d.ts +5 -2
  1586. package/dist/types/src/core/types/delegate.d.ts.map +1 -1
  1587. package/dist/types/src/core/types/emailRecovery.d.ts +82 -0
  1588. package/dist/types/src/core/types/emailRecovery.d.ts.map +1 -1
  1589. package/dist/types/src/core/types/rpc.d.ts +1 -0
  1590. package/dist/types/src/core/types/rpc.d.ts.map +1 -1
  1591. package/dist/types/src/core/types/sdkSentEvents.d.ts +82 -30
  1592. package/dist/types/src/core/types/sdkSentEvents.d.ts.map +1 -1
  1593. package/dist/types/src/core/types/signer-worker.d.ts +137 -20
  1594. package/dist/types/src/core/types/signer-worker.d.ts.map +1 -1
  1595. package/dist/types/src/core/types/tatchi.d.ts +10 -1
  1596. package/dist/types/src/core/types/tatchi.d.ts.map +1 -1
  1597. package/dist/types/src/core/types/vrf-worker.d.ts +27 -1
  1598. package/dist/types/src/core/types/vrf-worker.d.ts.map +1 -1
  1599. package/dist/types/src/index.d.ts +2 -2
  1600. package/dist/types/src/index.d.ts.map +1 -1
  1601. package/dist/types/src/plugins/headers.d.ts.map +1 -1
  1602. package/dist/types/src/plugins/plugin-utils.d.ts +1 -1
  1603. package/dist/types/src/plugins/plugin-utils.d.ts.map +1 -1
  1604. package/dist/types/src/plugins/vite.d.ts.map +1 -1
  1605. package/dist/types/src/react/components/AccountMenuButton/LinkedDevicesModal.d.ts.map +1 -1
  1606. package/dist/types/src/react/components/AccountMenuButton/ProfileDropdown.d.ts.map +1 -1
  1607. package/dist/types/src/react/components/AccountMenuButton/TransactionSettingsSection.d.ts.map +1 -1
  1608. package/dist/types/src/react/components/AccountMenuButton/index.d.ts.map +1 -1
  1609. package/dist/types/src/react/components/AccountMenuButton/types.d.ts +5 -0
  1610. package/dist/types/src/react/components/AccountMenuButton/types.d.ts.map +1 -1
  1611. package/dist/types/src/react/components/PasskeyAuthMenu/authMenuTypes.d.ts +4 -4
  1612. package/dist/types/src/react/components/PasskeyAuthMenu/authMenuTypes.d.ts.map +1 -1
  1613. package/dist/types/src/react/components/PasskeyAuthMenu/client.d.ts.map +1 -1
  1614. package/dist/types/src/react/components/PasskeyAuthMenu/controller/usePasskeyAuthMenuController.d.ts +1 -1
  1615. package/dist/types/src/react/components/PasskeyAuthMenu/controller/usePasskeyAuthMenuController.d.ts.map +1 -1
  1616. package/dist/types/src/react/components/PasskeyAuthMenu/controller/useSDKEvents.d.ts.map +1 -1
  1617. package/dist/types/src/react/components/PasskeyAuthMenu/types.d.ts +1 -1
  1618. package/dist/types/src/react/components/PasskeyAuthMenu/types.d.ts.map +1 -1
  1619. package/dist/types/src/react/components/PasskeyAuthMenu/ui/EmailRecoverySlide.d.ts.map +1 -1
  1620. package/dist/types/src/react/context/useTatchiWithSdkFlow.d.ts +2 -2
  1621. package/dist/types/src/react/context/useTatchiWithSdkFlow.d.ts.map +1 -1
  1622. package/dist/types/src/react/index.d.ts +2 -4
  1623. package/dist/types/src/react/index.d.ts.map +1 -1
  1624. package/dist/types/src/react/types.d.ts +8 -25
  1625. package/dist/types/src/react/types.d.ts.map +1 -1
  1626. package/dist/types/src/server/core/AuthService.d.ts +14 -2
  1627. package/dist/types/src/server/core/AuthService.d.ts.map +1 -1
  1628. package/dist/types/src/server/core/SessionService.d.ts +3 -3
  1629. package/dist/types/src/server/core/SessionService.d.ts.map +1 -1
  1630. package/dist/types/src/server/core/ThresholdService/ThresholdSigningService.d.ts +91 -0
  1631. package/dist/types/src/server/core/ThresholdService/ThresholdSigningService.d.ts.map +1 -0
  1632. package/dist/types/src/server/core/ThresholdService/config.d.ts +21 -0
  1633. package/dist/types/src/server/core/ThresholdService/config.d.ts.map +1 -0
  1634. package/dist/types/src/server/core/ThresholdService/coordinatorGrant.d.ts +35 -0
  1635. package/dist/types/src/server/core/ThresholdService/coordinatorGrant.d.ts.map +1 -0
  1636. package/dist/types/src/server/core/ThresholdService/cosigners.d.ts +47 -0
  1637. package/dist/types/src/server/core/ThresholdService/cosigners.d.ts.map +1 -0
  1638. package/dist/types/src/server/core/ThresholdService/createThresholdSigningService.d.ts +11 -0
  1639. package/dist/types/src/server/core/ThresholdService/createThresholdSigningService.d.ts.map +1 -0
  1640. package/dist/types/src/server/core/ThresholdService/index.d.ts +6 -0
  1641. package/dist/types/src/server/core/ThresholdService/index.d.ts.map +1 -0
  1642. package/dist/types/src/server/core/ThresholdService/keygenStrategy.d.ts +79 -0
  1643. package/dist/types/src/server/core/ThresholdService/keygenStrategy.d.ts.map +1 -0
  1644. package/dist/types/src/server/core/ThresholdService/kv.d.ts +47 -0
  1645. package/dist/types/src/server/core/ThresholdService/kv.d.ts.map +1 -0
  1646. package/dist/types/src/server/core/ThresholdService/relayerKeyMaterial.d.ts +27 -0
  1647. package/dist/types/src/server/core/ThresholdService/relayerKeyMaterial.d.ts.map +1 -0
  1648. package/dist/types/src/server/core/ThresholdService/signingHandlers.d.ts +66 -0
  1649. package/dist/types/src/server/core/ThresholdService/signingHandlers.d.ts.map +1 -0
  1650. package/dist/types/src/server/core/ThresholdService/stores/AuthSessionStore.d.ts +32 -0
  1651. package/dist/types/src/server/core/ThresholdService/stores/AuthSessionStore.d.ts.map +1 -0
  1652. package/dist/types/src/server/core/ThresholdService/stores/KeyStore.d.ts +18 -0
  1653. package/dist/types/src/server/core/ThresholdService/stores/KeyStore.d.ts.map +1 -0
  1654. package/dist/types/src/server/core/ThresholdService/stores/SessionStore.d.ts +66 -0
  1655. package/dist/types/src/server/core/ThresholdService/stores/SessionStore.d.ts.map +1 -0
  1656. package/dist/types/src/server/core/ThresholdService/validation.d.ts +129 -0
  1657. package/dist/types/src/server/core/ThresholdService/validation.d.ts.map +1 -0
  1658. package/dist/types/src/server/core/config.d.ts.map +1 -1
  1659. package/dist/types/src/server/core/errors.d.ts.map +1 -1
  1660. package/dist/types/src/server/core/logger.d.ts +1 -0
  1661. package/dist/types/src/server/core/logger.d.ts.map +1 -1
  1662. package/dist/types/src/server/core/nearKeys.d.ts +2 -0
  1663. package/dist/types/src/server/core/nearKeys.d.ts.map +1 -0
  1664. package/dist/types/src/server/core/shamirWorker.d.ts.map +1 -1
  1665. package/dist/types/src/server/core/types.d.ts +321 -1
  1666. package/dist/types/src/server/core/types.d.ts.map +1 -1
  1667. package/dist/types/src/server/email-recovery/emailParsers.d.ts +1 -1
  1668. package/dist/types/src/server/email-recovery/emailParsers.d.ts.map +1 -1
  1669. package/dist/types/src/server/email-recovery/index.d.ts +1 -1
  1670. package/dist/types/src/server/email-recovery/index.d.ts.map +1 -1
  1671. package/dist/types/src/server/email-recovery/rpcCalls.d.ts +1 -1
  1672. package/dist/types/src/server/email-recovery/rpcCalls.d.ts.map +1 -1
  1673. package/dist/types/src/server/email-recovery/zkEmail/proverClient.d.ts.map +1 -1
  1674. package/dist/types/src/server/index.d.ts +2 -0
  1675. package/dist/types/src/server/index.d.ts.map +1 -1
  1676. package/dist/types/src/server/router/cloudflare/createCloudflareRouter.d.ts +22 -0
  1677. package/dist/types/src/server/router/cloudflare/createCloudflareRouter.d.ts.map +1 -0
  1678. package/dist/types/src/server/router/cloudflare/cron.d.ts +18 -0
  1679. package/dist/types/src/server/router/cloudflare/cron.d.ts.map +1 -0
  1680. package/dist/types/src/server/router/cloudflare/email.d.ts +22 -0
  1681. package/dist/types/src/server/router/cloudflare/email.d.ts.map +1 -0
  1682. package/dist/types/src/server/router/cloudflare/http.d.ts +12 -0
  1683. package/dist/types/src/server/router/cloudflare/http.d.ts.map +1 -0
  1684. package/dist/types/src/server/router/cloudflare/routes/createAccountAndRegisterUser.d.ts +3 -0
  1685. package/dist/types/src/server/router/cloudflare/routes/createAccountAndRegisterUser.d.ts.map +1 -0
  1686. package/dist/types/src/server/router/cloudflare/routes/health.d.ts +4 -0
  1687. package/dist/types/src/server/router/cloudflare/routes/health.d.ts.map +1 -0
  1688. package/dist/types/src/server/router/cloudflare/routes/recoverEmail.d.ts +3 -0
  1689. package/dist/types/src/server/router/cloudflare/routes/recoverEmail.d.ts.map +1 -0
  1690. package/dist/types/src/server/router/cloudflare/routes/sessions.d.ts +5 -0
  1691. package/dist/types/src/server/router/cloudflare/routes/sessions.d.ts.map +1 -0
  1692. package/dist/types/src/server/router/cloudflare/routes/shamir.d.ts +3 -0
  1693. package/dist/types/src/server/router/cloudflare/routes/shamir.d.ts.map +1 -0
  1694. package/dist/types/src/server/router/cloudflare/routes/signedDelegate.d.ts +3 -0
  1695. package/dist/types/src/server/router/cloudflare/routes/signedDelegate.d.ts.map +1 -0
  1696. package/dist/types/src/server/router/cloudflare/routes/thresholdEd25519.d.ts +3 -0
  1697. package/dist/types/src/server/router/cloudflare/routes/thresholdEd25519.d.ts.map +1 -0
  1698. package/dist/types/src/server/router/cloudflare/routes/verifyAuthenticationResponse.d.ts +3 -0
  1699. package/dist/types/src/server/router/cloudflare/routes/verifyAuthenticationResponse.d.ts.map +1 -0
  1700. package/dist/types/src/server/router/cloudflare/routes/wellKnown.d.ts +3 -0
  1701. package/dist/types/src/server/router/cloudflare/routes/wellKnown.d.ts.map +1 -0
  1702. package/dist/types/src/server/router/cloudflare/types.d.ts +49 -0
  1703. package/dist/types/src/server/router/cloudflare/types.d.ts.map +1 -0
  1704. package/dist/types/src/server/router/cloudflare-adaptor.d.ts +7 -106
  1705. package/dist/types/src/server/router/cloudflare-adaptor.d.ts.map +1 -1
  1706. package/dist/types/src/server/router/commonRouterUtils.d.ts +26 -0
  1707. package/dist/types/src/server/router/commonRouterUtils.d.ts.map +1 -0
  1708. package/dist/types/src/server/router/express/cors.d.ts +4 -0
  1709. package/dist/types/src/server/router/express/cors.d.ts.map +1 -0
  1710. package/dist/types/src/server/router/express/createRelayRouter.d.ts +16 -0
  1711. package/dist/types/src/server/router/express/createRelayRouter.d.ts.map +1 -0
  1712. package/dist/types/src/server/router/express/cron.d.ts +12 -0
  1713. package/dist/types/src/server/router/express/cron.d.ts.map +1 -0
  1714. package/dist/types/src/server/router/express/routes/createAccountAndRegisterUser.d.ts +4 -0
  1715. package/dist/types/src/server/router/express/routes/createAccountAndRegisterUser.d.ts.map +1 -0
  1716. package/dist/types/src/server/router/express/routes/health.d.ts +4 -0
  1717. package/dist/types/src/server/router/express/routes/health.d.ts.map +1 -0
  1718. package/dist/types/src/server/router/express/routes/recoverEmail.d.ts +4 -0
  1719. package/dist/types/src/server/router/express/routes/recoverEmail.d.ts.map +1 -0
  1720. package/dist/types/src/server/router/express/routes/sessions.d.ts +4 -0
  1721. package/dist/types/src/server/router/express/routes/sessions.d.ts.map +1 -0
  1722. package/dist/types/src/server/router/express/routes/shamir.d.ts +4 -0
  1723. package/dist/types/src/server/router/express/routes/shamir.d.ts.map +1 -0
  1724. package/dist/types/src/server/router/express/routes/signedDelegate.d.ts +4 -0
  1725. package/dist/types/src/server/router/express/routes/signedDelegate.d.ts.map +1 -0
  1726. package/dist/types/src/server/router/express/routes/thresholdEd25519.d.ts +4 -0
  1727. package/dist/types/src/server/router/express/routes/thresholdEd25519.d.ts.map +1 -0
  1728. package/dist/types/src/server/router/express/routes/verifyAuthenticationResponse.d.ts +4 -0
  1729. package/dist/types/src/server/router/express/routes/verifyAuthenticationResponse.d.ts.map +1 -0
  1730. package/dist/types/src/server/router/express/routes/wellKnown.d.ts +4 -0
  1731. package/dist/types/src/server/router/express/routes/wellKnown.d.ts.map +1 -0
  1732. package/dist/types/src/server/router/express-adaptor.d.ts +4 -54
  1733. package/dist/types/src/server/router/express-adaptor.d.ts.map +1 -1
  1734. package/dist/types/src/server/router/logger.d.ts +3 -2
  1735. package/dist/types/src/server/router/logger.d.ts.map +1 -1
  1736. package/dist/types/src/server/router/relay.d.ts +93 -0
  1737. package/dist/types/src/server/router/relay.d.ts.map +1 -0
  1738. package/dist/types/src/server/router/routerOptions.d.ts +4 -0
  1739. package/dist/types/src/server/router/routerOptions.d.ts.map +1 -0
  1740. package/dist/types/src/server/threshold/statusCodes.d.ts +6 -0
  1741. package/dist/types/src/server/threshold/statusCodes.d.ts.map +1 -0
  1742. package/dist/types/src/threshold/participants.d.ts +41 -0
  1743. package/dist/types/src/threshold/participants.d.ts.map +1 -0
  1744. package/dist/types/src/utils/digests.d.ts +3 -0
  1745. package/dist/types/src/utils/digests.d.ts.map +1 -0
  1746. package/dist/types/src/utils/index.d.ts +1 -0
  1747. package/dist/types/src/utils/index.d.ts.map +1 -1
  1748. package/dist/types/src/utils/validation.d.ts +60 -0
  1749. package/dist/types/src/utils/validation.d.ts.map +1 -1
  1750. package/dist/types/src/wasm_signer_worker/pkg/wasm_signer_worker.d.ts +182 -79
  1751. package/dist/types/src/wasm_signer_worker/pkg/wasm_signer_worker.d.ts.map +1 -1
  1752. package/dist/types/src/wasm_vrf_worker/pkg/wasm_vrf_worker.d.ts +45 -1
  1753. package/dist/types/src/wasm_vrf_worker/pkg/wasm_vrf_worker.d.ts.map +1 -1
  1754. package/dist/workers/offline-export-sw.js +1 -156
  1755. package/dist/workers/wasm_signer_worker_bg.wasm +0 -0
  1756. package/dist/workers/wasm_vrf_worker_bg.wasm +0 -0
  1757. package/dist/workers/web3authn-signer.worker.js +2 -1324
  1758. package/dist/workers/web3authn-vrf.worker.js +2 -2788
  1759. package/package.json +3 -8
  1760. package/dist/cjs/core/TatchiPasskey/recoverAccount.js +0 -429
  1761. package/dist/cjs/core/TatchiPasskey/recoverAccount.js.map +0 -1
  1762. package/dist/cjs/core/WalletIframe/validation.js +0 -67
  1763. package/dist/cjs/core/WalletIframe/validation.js.map +0 -1
  1764. package/dist/cjs/core/WebAuthnManager/LitComponents/IframeButtonWithTooltipConfirmer/iframe-geometry.js +0 -363
  1765. package/dist/cjs/core/WebAuthnManager/LitComponents/IframeButtonWithTooltipConfirmer/iframe-geometry.js.map +0 -1
  1766. package/dist/cjs/core/WebAuthnManager/LitComponents/IframeButtonWithTooltipConfirmer/iframe-host.js +0 -707
  1767. package/dist/cjs/core/WebAuthnManager/LitComponents/IframeButtonWithTooltipConfirmer/iframe-host.js.map +0 -1
  1768. package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/handlers/createSigningSessionChannel.js +0 -30
  1769. package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/handlers/createSigningSessionChannel.js.map +0 -1
  1770. package/dist/cjs/core/WebAuthnManager/WebAuthnFallbacks/index.js +0 -17
  1771. package/dist/cjs/core/WebAuthnManager/WebAuthnFallbacks/index.js.map +0 -1
  1772. package/dist/cjs/core/WebAuthnManager/txDigest.js +0 -85
  1773. package/dist/cjs/core/WebAuthnManager/txDigest.js.map +0 -1
  1774. package/dist/cjs/index.js.map +0 -1
  1775. package/dist/cjs/react/components/AccountMenuButton/LinkedDevicesModal-BRtht0XI.css +0 -452
  1776. package/dist/cjs/react/components/AccountMenuButton/LinkedDevicesModal-BRtht0XI.css.map +0 -1
  1777. package/dist/cjs/react/components/AccountMenuButton/ProfileDropdown-BG_6hcim.css +0 -120
  1778. package/dist/cjs/react/components/AccountMenuButton/ProfileDropdown-BG_6hcim.css.map +0 -1
  1779. package/dist/cjs/react/components/AccountMenuButton/Web3AuthProfileButton-k8_FAYFq.css +0 -77
  1780. package/dist/cjs/react/components/AccountMenuButton/Web3AuthProfileButton-k8_FAYFq.css.map +0 -1
  1781. package/dist/cjs/react/components/AccountMenuButton/icons/TouchIcon-C-RcGfr5.css +0 -41
  1782. package/dist/cjs/react/components/AccountMenuButton/icons/TouchIcon-C-RcGfr5.css.map +0 -1
  1783. package/dist/cjs/react/components/PasskeyAuthMenu/PasskeyAuthMenu-DKMiLeT9.css +0 -1009
  1784. package/dist/cjs/react/components/PasskeyAuthMenu/PasskeyAuthMenu-DKMiLeT9.css.map +0 -1
  1785. package/dist/cjs/react/components/SendTxButtonWithTooltip.js +0 -218
  1786. package/dist/cjs/react/components/SendTxButtonWithTooltip.js.map +0 -1
  1787. package/dist/cjs/react/components/ShowQRCode-CB0UCQ_h.css +0 -113
  1788. package/dist/cjs/react/components/ShowQRCode-CB0UCQ_h.css.map +0 -1
  1789. package/dist/cjs/react/components/WalletIframeTxButtonHost.js +0 -177
  1790. package/dist/cjs/react/components/WalletIframeTxButtonHost.js.map +0 -1
  1791. package/dist/cjs/react/index.js.map +0 -1
  1792. package/dist/cjs/react/node_modules/.pnpm/@lit_react@1.0.8_@types_react@19.1.12/node_modules/@lit/react/node/create-component.js +0 -32
  1793. package/dist/cjs/react/node_modules/.pnpm/@lit_react@1.0.8_@types_react@19.1.12/node_modules/@lit/react/node/create-component.js.map +0 -1
  1794. package/dist/cjs/react/sdk/build-paths.js +0 -55
  1795. package/dist/cjs/react/sdk/build-paths.js.map +0 -1
  1796. package/dist/cjs/react/sdk/src/base-styles.js +0 -21
  1797. package/dist/cjs/react/sdk/src/base-styles.js.map +0 -1
  1798. package/dist/cjs/react/sdk/src/config.js +0 -35
  1799. package/dist/cjs/react/sdk/src/config.js.map +0 -1
  1800. package/dist/cjs/react/sdk/src/core/ChainsigAddressManager/index.js +0 -30
  1801. package/dist/cjs/react/sdk/src/core/ChainsigAddressManager/index.js.map +0 -1
  1802. package/dist/cjs/react/sdk/src/core/EmailRecovery/emailRecoveryPendingStore.js +0 -69
  1803. package/dist/cjs/react/sdk/src/core/EmailRecovery/emailRecoveryPendingStore.js.map +0 -1
  1804. package/dist/cjs/react/sdk/src/core/EmailRecovery/index.js +0 -115
  1805. package/dist/cjs/react/sdk/src/core/EmailRecovery/index.js.map +0 -1
  1806. package/dist/cjs/react/sdk/src/core/IndexedDBManager/index.js +0 -140
  1807. package/dist/cjs/react/sdk/src/core/IndexedDBManager/index.js.map +0 -1
  1808. package/dist/cjs/react/sdk/src/core/IndexedDBManager/passkeyClientDB.js +0 -685
  1809. package/dist/cjs/react/sdk/src/core/IndexedDBManager/passkeyClientDB.js.map +0 -1
  1810. package/dist/cjs/react/sdk/src/core/IndexedDBManager/passkeyNearKeysDB.js +0 -192
  1811. package/dist/cjs/react/sdk/src/core/IndexedDBManager/passkeyNearKeysDB.js.map +0 -1
  1812. package/dist/cjs/react/sdk/src/core/NearClient.js +0 -273
  1813. package/dist/cjs/react/sdk/src/core/NearClient.js.map +0 -1
  1814. package/dist/cjs/react/sdk/src/core/NearRpcError.js +0 -116
  1815. package/dist/cjs/react/sdk/src/core/NearRpcError.js.map +0 -1
  1816. package/dist/cjs/react/sdk/src/core/OfflineExport/overlay.js +0 -56
  1817. package/dist/cjs/react/sdk/src/core/OfflineExport/overlay.js.map +0 -1
  1818. package/dist/cjs/react/sdk/src/core/TatchiPasskey/actions.js +0 -452
  1819. package/dist/cjs/react/sdk/src/core/TatchiPasskey/actions.js.map +0 -1
  1820. package/dist/cjs/react/sdk/src/core/TatchiPasskey/delegateAction.js +0 -76
  1821. package/dist/cjs/react/sdk/src/core/TatchiPasskey/delegateAction.js.map +0 -1
  1822. package/dist/cjs/react/sdk/src/core/TatchiPasskey/emailRecovery.js +0 -919
  1823. package/dist/cjs/react/sdk/src/core/TatchiPasskey/emailRecovery.js.map +0 -1
  1824. package/dist/cjs/react/sdk/src/core/TatchiPasskey/faucets/createAccountRelayServer.js +0 -97
  1825. package/dist/cjs/react/sdk/src/core/TatchiPasskey/faucets/createAccountRelayServer.js.map +0 -1
  1826. package/dist/cjs/react/sdk/src/core/TatchiPasskey/index.js +0 -1298
  1827. package/dist/cjs/react/sdk/src/core/TatchiPasskey/index.js.map +0 -1
  1828. package/dist/cjs/react/sdk/src/core/TatchiPasskey/linkDevice.js +0 -711
  1829. package/dist/cjs/react/sdk/src/core/TatchiPasskey/linkDevice.js.map +0 -1
  1830. package/dist/cjs/react/sdk/src/core/TatchiPasskey/login.js +0 -578
  1831. package/dist/cjs/react/sdk/src/core/TatchiPasskey/login.js.map +0 -1
  1832. package/dist/cjs/react/sdk/src/core/TatchiPasskey/recoverAccount.js +0 -429
  1833. package/dist/cjs/react/sdk/src/core/TatchiPasskey/recoverAccount.js.map +0 -1
  1834. package/dist/cjs/react/sdk/src/core/TatchiPasskey/registration.js +0 -340
  1835. package/dist/cjs/react/sdk/src/core/TatchiPasskey/registration.js.map +0 -1
  1836. package/dist/cjs/react/sdk/src/core/TatchiPasskey/relay.js +0 -112
  1837. package/dist/cjs/react/sdk/src/core/TatchiPasskey/relay.js.map +0 -1
  1838. package/dist/cjs/react/sdk/src/core/TatchiPasskey/scanDevice.js +0 -106
  1839. package/dist/cjs/react/sdk/src/core/TatchiPasskey/scanDevice.js.map +0 -1
  1840. package/dist/cjs/react/sdk/src/core/TatchiPasskey/signNEP413.js +0 -89
  1841. package/dist/cjs/react/sdk/src/core/TatchiPasskey/signNEP413.js.map +0 -1
  1842. package/dist/cjs/react/sdk/src/core/WalletIframe/client/IframeTransport.js +0 -330
  1843. package/dist/cjs/react/sdk/src/core/WalletIframe/client/IframeTransport.js.map +0 -1
  1844. package/dist/cjs/react/sdk/src/core/WalletIframe/client/on-events-progress-bus.js +0 -210
  1845. package/dist/cjs/react/sdk/src/core/WalletIframe/client/on-events-progress-bus.js.map +0 -1
  1846. package/dist/cjs/react/sdk/src/core/WalletIframe/client/overlay-controller.js +0 -100
  1847. package/dist/cjs/react/sdk/src/core/WalletIframe/client/overlay-controller.js.map +0 -1
  1848. package/dist/cjs/react/sdk/src/core/WalletIframe/client/overlay-styles.js +0 -128
  1849. package/dist/cjs/react/sdk/src/core/WalletIframe/client/overlay-styles.js.map +0 -1
  1850. package/dist/cjs/react/sdk/src/core/WalletIframe/client/router.js +0 -1062
  1851. package/dist/cjs/react/sdk/src/core/WalletIframe/client/router.js.map +0 -1
  1852. package/dist/cjs/react/sdk/src/core/WalletIframe/events.js +0 -11
  1853. package/dist/cjs/react/sdk/src/core/WalletIframe/events.js.map +0 -1
  1854. package/dist/cjs/react/sdk/src/core/WalletIframe/host-mode.js +0 -11
  1855. package/dist/cjs/react/sdk/src/core/WalletIframe/host-mode.js.map +0 -1
  1856. package/dist/cjs/react/sdk/src/core/WalletIframe/validation.js +0 -71
  1857. package/dist/cjs/react/sdk/src/core/WalletIframe/validation.js.map +0 -1
  1858. package/dist/cjs/react/sdk/src/core/WebAuthnManager/LitComponents/Drawer/index.js +0 -660
  1859. package/dist/cjs/react/sdk/src/core/WebAuthnManager/LitComponents/Drawer/index.js.map +0 -1
  1860. package/dist/cjs/react/sdk/src/core/WebAuthnManager/LitComponents/ExportPrivateKey/iframe-host.js +0 -223
  1861. package/dist/cjs/react/sdk/src/core/WebAuthnManager/LitComponents/ExportPrivateKey/iframe-host.js.map +0 -1
  1862. package/dist/cjs/react/sdk/src/core/WebAuthnManager/LitComponents/HaloBorder/index.js +0 -135
  1863. package/dist/cjs/react/sdk/src/core/WebAuthnManager/LitComponents/HaloBorder/index.js.map +0 -1
  1864. package/dist/cjs/react/sdk/src/core/WebAuthnManager/LitComponents/IframeButtonWithTooltipConfirmer/iframe-geometry.js +0 -363
  1865. package/dist/cjs/react/sdk/src/core/WebAuthnManager/LitComponents/IframeButtonWithTooltipConfirmer/iframe-geometry.js.map +0 -1
  1866. package/dist/cjs/react/sdk/src/core/WebAuthnManager/LitComponents/IframeButtonWithTooltipConfirmer/iframe-host.js +0 -707
  1867. package/dist/cjs/react/sdk/src/core/WebAuthnManager/LitComponents/IframeButtonWithTooltipConfirmer/iframe-host.js.map +0 -1
  1868. package/dist/cjs/react/sdk/src/core/WebAuthnManager/LitComponents/IframeTxConfirmer/tx-confirm-content.js +0 -190
  1869. package/dist/cjs/react/sdk/src/core/WebAuthnManager/LitComponents/IframeTxConfirmer/tx-confirm-content.js.map +0 -1
  1870. package/dist/cjs/react/sdk/src/core/WebAuthnManager/LitComponents/IframeTxConfirmer/tx-confirmer-wrapper.js +0 -258
  1871. package/dist/cjs/react/sdk/src/core/WebAuthnManager/LitComponents/IframeTxConfirmer/tx-confirmer-wrapper.js.map +0 -1
  1872. package/dist/cjs/react/sdk/src/core/WebAuthnManager/LitComponents/IframeTxConfirmer/viewer-drawer.js +0 -261
  1873. package/dist/cjs/react/sdk/src/core/WebAuthnManager/LitComponents/IframeTxConfirmer/viewer-drawer.js.map +0 -1
  1874. package/dist/cjs/react/sdk/src/core/WebAuthnManager/LitComponents/IframeTxConfirmer/viewer-modal.js +0 -281
  1875. package/dist/cjs/react/sdk/src/core/WebAuthnManager/LitComponents/IframeTxConfirmer/viewer-modal.js.map +0 -1
  1876. package/dist/cjs/react/sdk/src/core/WebAuthnManager/LitComponents/LitElementWithProps.js +0 -256
  1877. package/dist/cjs/react/sdk/src/core/WebAuthnManager/LitComponents/LitElementWithProps.js.map +0 -1
  1878. package/dist/cjs/react/sdk/src/core/WebAuthnManager/LitComponents/PasskeyHaloLoading/index.js +0 -146
  1879. package/dist/cjs/react/sdk/src/core/WebAuthnManager/LitComponents/PasskeyHaloLoading/index.js.map +0 -1
  1880. package/dist/cjs/react/sdk/src/core/WebAuthnManager/LitComponents/TxTree/index.js +0 -503
  1881. package/dist/cjs/react/sdk/src/core/WebAuthnManager/LitComponents/TxTree/index.js.map +0 -1
  1882. package/dist/cjs/react/sdk/src/core/WebAuthnManager/LitComponents/TxTree/tx-tree-themes.js +0 -212
  1883. package/dist/cjs/react/sdk/src/core/WebAuthnManager/LitComponents/TxTree/tx-tree-themes.js.map +0 -1
  1884. package/dist/cjs/react/sdk/src/core/WebAuthnManager/LitComponents/TxTree/tx-tree-utils.js +0 -183
  1885. package/dist/cjs/react/sdk/src/core/WebAuthnManager/LitComponents/TxTree/tx-tree-utils.js.map +0 -1
  1886. package/dist/cjs/react/sdk/src/core/WebAuthnManager/LitComponents/asset-base.js +0 -46
  1887. package/dist/cjs/react/sdk/src/core/WebAuthnManager/LitComponents/asset-base.js.map +0 -1
  1888. package/dist/cjs/react/sdk/src/core/WebAuthnManager/LitComponents/common/PadlockIcon.js +0 -55
  1889. package/dist/cjs/react/sdk/src/core/WebAuthnManager/LitComponents/common/PadlockIcon.js.map +0 -1
  1890. package/dist/cjs/react/sdk/src/core/WebAuthnManager/LitComponents/common/formatters.js +0 -68
  1891. package/dist/cjs/react/sdk/src/core/WebAuthnManager/LitComponents/common/formatters.js.map +0 -1
  1892. package/dist/cjs/react/sdk/src/core/WebAuthnManager/LitComponents/confirm-ui-types.js +0 -10
  1893. package/dist/cjs/react/sdk/src/core/WebAuthnManager/LitComponents/confirm-ui-types.js.map +0 -1
  1894. package/dist/cjs/react/sdk/src/core/WebAuthnManager/LitComponents/confirm-ui.js +0 -221
  1895. package/dist/cjs/react/sdk/src/core/WebAuthnManager/LitComponents/confirm-ui.js.map +0 -1
  1896. package/dist/cjs/react/sdk/src/core/WebAuthnManager/LitComponents/css/css-loader.js +0 -110
  1897. package/dist/cjs/react/sdk/src/core/WebAuthnManager/LitComponents/css/css-loader.js.map +0 -1
  1898. package/dist/cjs/react/sdk/src/core/WebAuthnManager/LitComponents/ensure-defined.js +0 -24
  1899. package/dist/cjs/react/sdk/src/core/WebAuthnManager/LitComponents/ensure-defined.js.map +0 -1
  1900. package/dist/cjs/react/sdk/src/core/WebAuthnManager/LitComponents/lit-events.js +0 -35
  1901. package/dist/cjs/react/sdk/src/core/WebAuthnManager/LitComponents/lit-events.js.map +0 -1
  1902. package/dist/cjs/react/sdk/src/core/WebAuthnManager/LitComponents/tags.js +0 -66
  1903. package/dist/cjs/react/sdk/src/core/WebAuthnManager/LitComponents/tags.js.map +0 -1
  1904. package/dist/cjs/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/getDeviceNumber.js +0 -39
  1905. package/dist/cjs/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/getDeviceNumber.js.map +0 -1
  1906. package/dist/cjs/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/handlers/checkCanRegisterUser.js +0 -71
  1907. package/dist/cjs/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/handlers/checkCanRegisterUser.js.map +0 -1
  1908. package/dist/cjs/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/handlers/decryptPrivateKeyWithPrf.js +0 -49
  1909. package/dist/cjs/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/handlers/decryptPrivateKeyWithPrf.js.map +0 -1
  1910. package/dist/cjs/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/handlers/deriveNearKeypairAndEncryptFromSerialized.js +0 -73
  1911. package/dist/cjs/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/handlers/deriveNearKeypairAndEncryptFromSerialized.js.map +0 -1
  1912. package/dist/cjs/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/handlers/exportNearKeypairUi.js +0 -69
  1913. package/dist/cjs/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/handlers/exportNearKeypairUi.js.map +0 -1
  1914. package/dist/cjs/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/handlers/extractCosePublicKey.js +0 -27
  1915. package/dist/cjs/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/handlers/extractCosePublicKey.js.map +0 -1
  1916. package/dist/cjs/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/handlers/recoverKeypairFromPasskey.js +0 -46
  1917. package/dist/cjs/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/handlers/recoverKeypairFromPasskey.js.map +0 -1
  1918. package/dist/cjs/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/handlers/registerDevice2WithDerivedKey.js +0 -118
  1919. package/dist/cjs/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/handlers/registerDevice2WithDerivedKey.js.map +0 -1
  1920. package/dist/cjs/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/handlers/session.js +0 -16
  1921. package/dist/cjs/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/handlers/session.js.map +0 -1
  1922. package/dist/cjs/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/handlers/signDelegateAction.js +0 -105
  1923. package/dist/cjs/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/handlers/signDelegateAction.js.map +0 -1
  1924. package/dist/cjs/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/handlers/signNep413Message.js +0 -80
  1925. package/dist/cjs/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/handlers/signNep413Message.js.map +0 -1
  1926. package/dist/cjs/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/handlers/signTransactionWithKeyPair.js +0 -64
  1927. package/dist/cjs/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/handlers/signTransactionWithKeyPair.js.map +0 -1
  1928. package/dist/cjs/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/handlers/signTransactionsWithActions.js +0 -114
  1929. package/dist/cjs/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/handlers/signTransactionsWithActions.js.map +0 -1
  1930. package/dist/cjs/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/handlers/validation.js +0 -82
  1931. package/dist/cjs/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/handlers/validation.js.map +0 -1
  1932. package/dist/cjs/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/index.js +0 -452
  1933. package/dist/cjs/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/index.js.map +0 -1
  1934. package/dist/cjs/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/sessionHandshake.js +0 -36
  1935. package/dist/cjs/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/sessionHandshake.js.map +0 -1
  1936. package/dist/cjs/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/sessionMessages.js +0 -83
  1937. package/dist/cjs/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/sessionMessages.js.map +0 -1
  1938. package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/common.js +0 -61
  1939. package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/common.js.map +0 -1
  1940. package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/createAdapters.js +0 -50
  1941. package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/createAdapters.js.map +0 -1
  1942. package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/near.js +0 -56
  1943. package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/near.js.map +0 -1
  1944. package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/requestAdapter.js +0 -34
  1945. package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/requestAdapter.js.map +0 -1
  1946. package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/requestHelpers.js +0 -47
  1947. package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/requestHelpers.js.map +0 -1
  1948. package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/session.js +0 -54
  1949. package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/session.js.map +0 -1
  1950. package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/ui.js +0 -77
  1951. package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/ui.js.map +0 -1
  1952. package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/vrf.js +0 -64
  1953. package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/vrf.js.map +0 -1
  1954. package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/webauthn.js +0 -40
  1955. package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/webauthn.js.map +0 -1
  1956. package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/determineConfirmationConfig.js +0 -66
  1957. package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/determineConfirmationConfig.js.map +0 -1
  1958. package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/localOnly.js +0 -90
  1959. package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/localOnly.js.map +0 -1
  1960. package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/registration.js +0 -136
  1961. package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/registration.js.map +0 -1
  1962. package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/requestRegistrationCredentialConfirmation.js +0 -52
  1963. package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/requestRegistrationCredentialConfirmation.js.map +0 -1
  1964. package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/transactions.js +0 -173
  1965. package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/transactions.js.map +0 -1
  1966. package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/handleSecureConfirmRequest.js +0 -119
  1967. package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/handleSecureConfirmRequest.js.map +0 -1
  1968. package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/types.js +0 -22
  1969. package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/types.js.map +0 -1
  1970. package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/handlers/checkSessionStatus.js +0 -27
  1971. package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/handlers/checkSessionStatus.js.map +0 -1
  1972. package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/handlers/checkVrfStatus.js +0 -52
  1973. package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/handlers/checkVrfStatus.js.map +0 -1
  1974. package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/handlers/clearSession.js +0 -33
  1975. package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/handlers/clearSession.js.map +0 -1
  1976. package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/handlers/clearVrf.js +0 -31
  1977. package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/handlers/clearVrf.js.map +0 -1
  1978. package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/handlers/confirmAndDeriveDevice2RegistrationSession.js +0 -50
  1979. package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/handlers/confirmAndDeriveDevice2RegistrationSession.js.map +0 -1
  1980. package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/handlers/confirmAndPrepareSigningSession.js +0 -156
  1981. package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/handlers/confirmAndPrepareSigningSession.js.map +0 -1
  1982. package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/handlers/createSigningSessionChannel.js +0 -30
  1983. package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/handlers/createSigningSessionChannel.js.map +0 -1
  1984. package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/handlers/deriveVrfKeypairFromPrf.js +0 -59
  1985. package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/handlers/deriveVrfKeypairFromPrf.js.map +0 -1
  1986. package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/handlers/dispenseSessionKey.js +0 -27
  1987. package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/handlers/dispenseSessionKey.js.map +0 -1
  1988. package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/handlers/generateVrfChallenge.js +0 -48
  1989. package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/handlers/generateVrfChallenge.js.map +0 -1
  1990. package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/handlers/generateVrfKeypairBootstrap.js +0 -59
  1991. package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/handlers/generateVrfKeypairBootstrap.js.map +0 -1
  1992. package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/handlers/mintSessionKeysAndSendToSigner.js +0 -45
  1993. package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/handlers/mintSessionKeysAndSendToSigner.js.map +0 -1
  1994. package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/handlers/prepareDecryptSession.js +0 -54
  1995. package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/handlers/prepareDecryptSession.js.map +0 -1
  1996. package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/handlers/requestRegistrationCredentialConfirmation.js +0 -31
  1997. package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/handlers/requestRegistrationCredentialConfirmation.js.map +0 -1
  1998. package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/handlers/shamir3PassDecryptVrfKeypair.js +0 -28
  1999. package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/handlers/shamir3PassDecryptVrfKeypair.js.map +0 -1
  2000. package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/handlers/shamir3PassEncryptCurrentVrfKeypair.js +0 -30
  2001. package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/handlers/shamir3PassEncryptCurrentVrfKeypair.js.map +0 -1
  2002. package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/handlers/unlockVrfKeypair.js +0 -42
  2003. package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/handlers/unlockVrfKeypair.js.map +0 -1
  2004. package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/index.js +0 -375
  2005. package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/index.js.map +0 -1
  2006. package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/secureConfirmBridge.js +0 -26
  2007. package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/secureConfirmBridge.js.map +0 -1
  2008. package/dist/cjs/react/sdk/src/core/WebAuthnManager/WebAuthnFallbacks/index.js +0 -17
  2009. package/dist/cjs/react/sdk/src/core/WebAuthnManager/WebAuthnFallbacks/index.js.map +0 -1
  2010. package/dist/cjs/react/sdk/src/core/WebAuthnManager/WebAuthnFallbacks/safari-fallbacks.js +0 -210
  2011. package/dist/cjs/react/sdk/src/core/WebAuthnManager/WebAuthnFallbacks/safari-fallbacks.js.map +0 -1
  2012. package/dist/cjs/react/sdk/src/core/WebAuthnManager/credentialsHelpers.js +0 -301
  2013. package/dist/cjs/react/sdk/src/core/WebAuthnManager/credentialsHelpers.js.map +0 -1
  2014. package/dist/cjs/react/sdk/src/core/WebAuthnManager/index.js +0 -890
  2015. package/dist/cjs/react/sdk/src/core/WebAuthnManager/index.js.map +0 -1
  2016. package/dist/cjs/react/sdk/src/core/WebAuthnManager/touchIdPrompt.js +0 -282
  2017. package/dist/cjs/react/sdk/src/core/WebAuthnManager/touchIdPrompt.js.map +0 -1
  2018. package/dist/cjs/react/sdk/src/core/WebAuthnManager/txDigest.js +0 -85
  2019. package/dist/cjs/react/sdk/src/core/WebAuthnManager/txDigest.js.map +0 -1
  2020. package/dist/cjs/react/sdk/src/core/WebAuthnManager/userHandle.js +0 -39
  2021. package/dist/cjs/react/sdk/src/core/WebAuthnManager/userHandle.js.map +0 -1
  2022. package/dist/cjs/react/sdk/src/core/WebAuthnManager/userPreferences.js +0 -308
  2023. package/dist/cjs/react/sdk/src/core/WebAuthnManager/userPreferences.js.map +0 -1
  2024. package/dist/cjs/react/sdk/src/core/defaultConfigs.js +0 -110
  2025. package/dist/cjs/react/sdk/src/core/defaultConfigs.js.map +0 -1
  2026. package/dist/cjs/react/sdk/src/core/nearCrypto.js +0 -57
  2027. package/dist/cjs/react/sdk/src/core/nearCrypto.js.map +0 -1
  2028. package/dist/cjs/react/sdk/src/core/nonceManager.js +0 -403
  2029. package/dist/cjs/react/sdk/src/core/nonceManager.js.map +0 -1
  2030. package/dist/cjs/react/sdk/src/core/rpcCalls.js +0 -446
  2031. package/dist/cjs/react/sdk/src/core/rpcCalls.js.map +0 -1
  2032. package/dist/cjs/react/sdk/src/core/sdkPaths/base.js +0 -49
  2033. package/dist/cjs/react/sdk/src/core/sdkPaths/base.js.map +0 -1
  2034. package/dist/cjs/react/sdk/src/core/sdkPaths/workers.js +0 -45
  2035. package/dist/cjs/react/sdk/src/core/sdkPaths/workers.js.map +0 -1
  2036. package/dist/cjs/react/sdk/src/core/types/accountIds.js +0 -33
  2037. package/dist/cjs/react/sdk/src/core/types/accountIds.js.map +0 -1
  2038. package/dist/cjs/react/sdk/src/core/types/actions.js +0 -274
  2039. package/dist/cjs/react/sdk/src/core/types/actions.js.map +0 -1
  2040. package/dist/cjs/react/sdk/src/core/types/authenticatorOptions.js +0 -51
  2041. package/dist/cjs/react/sdk/src/core/types/authenticatorOptions.js.map +0 -1
  2042. package/dist/cjs/react/sdk/src/core/types/emailRecovery.js +0 -33
  2043. package/dist/cjs/react/sdk/src/core/types/emailRecovery.js.map +0 -1
  2044. package/dist/cjs/react/sdk/src/core/types/linkDevice.js +0 -25
  2045. package/dist/cjs/react/sdk/src/core/types/linkDevice.js.map +0 -1
  2046. package/dist/cjs/react/sdk/src/core/types/rpc.js +0 -25
  2047. package/dist/cjs/react/sdk/src/core/types/rpc.js.map +0 -1
  2048. package/dist/cjs/react/sdk/src/core/types/sdkSentEvents.js +0 -133
  2049. package/dist/cjs/react/sdk/src/core/types/sdkSentEvents.js.map +0 -1
  2050. package/dist/cjs/react/sdk/src/core/types/signer-worker.js +0 -69
  2051. package/dist/cjs/react/sdk/src/core/types/signer-worker.js.map +0 -1
  2052. package/dist/cjs/react/sdk/src/core/types/vrf-worker.js +0 -74
  2053. package/dist/cjs/react/sdk/src/core/types/vrf-worker.js.map +0 -1
  2054. package/dist/cjs/react/sdk/src/core/workerControlMessages.js +0 -21
  2055. package/dist/cjs/react/sdk/src/core/workerControlMessages.js.map +0 -1
  2056. package/dist/cjs/react/sdk/src/theme/base-styles.js +0 -157
  2057. package/dist/cjs/react/sdk/src/theme/base-styles.js.map +0 -1
  2058. package/dist/cjs/react/sdk/src/theme/palette.js +0 -209
  2059. package/dist/cjs/react/sdk/src/theme/palette.js.map +0 -1
  2060. package/dist/cjs/react/sdk/src/utils/base58.js +0 -24
  2061. package/dist/cjs/react/sdk/src/utils/base58.js.map +0 -1
  2062. package/dist/cjs/react/sdk/src/utils/base64.js +0 -59
  2063. package/dist/cjs/react/sdk/src/utils/base64.js.map +0 -1
  2064. package/dist/cjs/react/sdk/src/utils/encoders.js +0 -18
  2065. package/dist/cjs/react/sdk/src/utils/encoders.js.map +0 -1
  2066. package/dist/cjs/react/sdk/src/utils/errors.js +0 -151
  2067. package/dist/cjs/react/sdk/src/utils/errors.js.map +0 -1
  2068. package/dist/cjs/react/sdk/src/utils/index.js +0 -25
  2069. package/dist/cjs/react/sdk/src/utils/index.js.map +0 -1
  2070. package/dist/cjs/react/sdk/src/utils/qrScanner.js +0 -320
  2071. package/dist/cjs/react/sdk/src/utils/qrScanner.js.map +0 -1
  2072. package/dist/cjs/react/sdk/src/utils/validation.js +0 -67
  2073. package/dist/cjs/react/sdk/src/utils/validation.js.map +0 -1
  2074. package/dist/cjs/server/sdk/src/core/WalletIframe/validation.js +0 -17
  2075. package/dist/cjs/server/sdk/src/core/WalletIframe/validation.js.map +0 -1
  2076. package/dist/cjs/utils/encoders.js +0 -18
  2077. package/dist/cjs/utils/encoders.js.map +0 -1
  2078. package/dist/cjs/utils/index.js +0 -25
  2079. package/dist/cjs/utils/index.js.map +0 -1
  2080. package/dist/esm/_virtual/rolldown_runtime.js +0 -28
  2081. package/dist/esm/core/TatchiPasskey/recoverAccount.js +0 -428
  2082. package/dist/esm/core/TatchiPasskey/recoverAccount.js.map +0 -1
  2083. package/dist/esm/core/WalletIframe/validation.js +0 -52
  2084. package/dist/esm/core/WalletIframe/validation.js.map +0 -1
  2085. package/dist/esm/core/WebAuthnManager/LitComponents/IframeButtonWithTooltipConfirmer/iframe-geometry.js +0 -357
  2086. package/dist/esm/core/WebAuthnManager/LitComponents/IframeButtonWithTooltipConfirmer/iframe-geometry.js.map +0 -1
  2087. package/dist/esm/core/WebAuthnManager/LitComponents/IframeButtonWithTooltipConfirmer/iframe-host.js +0 -703
  2088. package/dist/esm/core/WebAuthnManager/LitComponents/IframeButtonWithTooltipConfirmer/iframe-host.js.map +0 -1
  2089. package/dist/esm/core/WebAuthnManager/VrfWorkerManager/handlers/createSigningSessionChannel.js +0 -29
  2090. package/dist/esm/core/WebAuthnManager/VrfWorkerManager/handlers/createSigningSessionChannel.js.map +0 -1
  2091. package/dist/esm/core/WebAuthnManager/WebAuthnFallbacks/index.js +0 -12
  2092. package/dist/esm/core/WebAuthnManager/WebAuthnFallbacks/index.js.map +0 -1
  2093. package/dist/esm/core/WebAuthnManager/txDigest.js +0 -83
  2094. package/dist/esm/core/WebAuthnManager/txDigest.js.map +0 -1
  2095. package/dist/esm/index.js.map +0 -1
  2096. package/dist/esm/react/_virtual/rolldown_runtime.js +0 -28
  2097. package/dist/esm/react/components/AccountMenuButton/LinkedDevicesModal-BRtht0XI.css +0 -452
  2098. package/dist/esm/react/components/AccountMenuButton/LinkedDevicesModal-BRtht0XI.css.map +0 -1
  2099. package/dist/esm/react/components/AccountMenuButton/ProfileDropdown-BG_6hcim.css +0 -120
  2100. package/dist/esm/react/components/AccountMenuButton/ProfileDropdown-BG_6hcim.css.map +0 -1
  2101. package/dist/esm/react/components/AccountMenuButton/Web3AuthProfileButton-k8_FAYFq.css +0 -77
  2102. package/dist/esm/react/components/AccountMenuButton/Web3AuthProfileButton-k8_FAYFq.css.map +0 -1
  2103. package/dist/esm/react/components/AccountMenuButton/icons/TouchIcon-C-RcGfr5.css +0 -41
  2104. package/dist/esm/react/components/AccountMenuButton/icons/TouchIcon-C-RcGfr5.css.map +0 -1
  2105. package/dist/esm/react/components/PasskeyAuthMenu/PasskeyAuthMenu-DKMiLeT9.css +0 -1009
  2106. package/dist/esm/react/components/PasskeyAuthMenu/PasskeyAuthMenu-DKMiLeT9.css.map +0 -1
  2107. package/dist/esm/react/components/SendTxButtonWithTooltip.js +0 -214
  2108. package/dist/esm/react/components/SendTxButtonWithTooltip.js.map +0 -1
  2109. package/dist/esm/react/components/ShowQRCode-CB0UCQ_h.css +0 -113
  2110. package/dist/esm/react/components/ShowQRCode-CB0UCQ_h.css.map +0 -1
  2111. package/dist/esm/react/components/WalletIframeTxButtonHost.js +0 -174
  2112. package/dist/esm/react/components/WalletIframeTxButtonHost.js.map +0 -1
  2113. package/dist/esm/react/index.js.map +0 -1
  2114. package/dist/esm/react/node_modules/.pnpm/@lit_react@1.0.8_@types_react@19.1.12/node_modules/@lit/react/create-component.js +0 -45
  2115. package/dist/esm/react/node_modules/.pnpm/@lit_react@1.0.8_@types_react@19.1.12/node_modules/@lit/react/create-component.js.map +0 -1
  2116. package/dist/esm/react/sdk/build-paths.js.map +0 -1
  2117. package/dist/esm/react/sdk/src/base-styles.js.map +0 -1
  2118. package/dist/esm/react/sdk/src/config.js.map +0 -1
  2119. package/dist/esm/react/sdk/src/core/ChainsigAddressManager/index.js +0 -29
  2120. package/dist/esm/react/sdk/src/core/ChainsigAddressManager/index.js.map +0 -1
  2121. package/dist/esm/react/sdk/src/core/EmailRecovery/emailRecoveryPendingStore.js +0 -63
  2122. package/dist/esm/react/sdk/src/core/EmailRecovery/emailRecoveryPendingStore.js.map +0 -1
  2123. package/dist/esm/react/sdk/src/core/EmailRecovery/index.js +0 -105
  2124. package/dist/esm/react/sdk/src/core/EmailRecovery/index.js.map +0 -1
  2125. package/dist/esm/react/sdk/src/core/IndexedDBManager/index.js +0 -133
  2126. package/dist/esm/react/sdk/src/core/IndexedDBManager/index.js.map +0 -1
  2127. package/dist/esm/react/sdk/src/core/IndexedDBManager/passkeyClientDB.js +0 -678
  2128. package/dist/esm/react/sdk/src/core/IndexedDBManager/passkeyClientDB.js.map +0 -1
  2129. package/dist/esm/react/sdk/src/core/IndexedDBManager/passkeyNearKeysDB.js +0 -185
  2130. package/dist/esm/react/sdk/src/core/IndexedDBManager/passkeyNearKeysDB.js.map +0 -1
  2131. package/dist/esm/react/sdk/src/core/NearClient.js +0 -271
  2132. package/dist/esm/react/sdk/src/core/NearClient.js.map +0 -1
  2133. package/dist/esm/react/sdk/src/core/NearRpcError.js.map +0 -1
  2134. package/dist/esm/react/sdk/src/core/OfflineExport/overlay.js.map +0 -1
  2135. package/dist/esm/react/sdk/src/core/TatchiPasskey/actions.js +0 -448
  2136. package/dist/esm/react/sdk/src/core/TatchiPasskey/actions.js.map +0 -1
  2137. package/dist/esm/react/sdk/src/core/TatchiPasskey/delegateAction.js +0 -75
  2138. package/dist/esm/react/sdk/src/core/TatchiPasskey/delegateAction.js.map +0 -1
  2139. package/dist/esm/react/sdk/src/core/TatchiPasskey/emailRecovery.js +0 -908
  2140. package/dist/esm/react/sdk/src/core/TatchiPasskey/emailRecovery.js.map +0 -1
  2141. package/dist/esm/react/sdk/src/core/TatchiPasskey/faucets/createAccountRelayServer.js +0 -96
  2142. package/dist/esm/react/sdk/src/core/TatchiPasskey/faucets/createAccountRelayServer.js.map +0 -1
  2143. package/dist/esm/react/sdk/src/core/TatchiPasskey/index.js +0 -1298
  2144. package/dist/esm/react/sdk/src/core/TatchiPasskey/index.js.map +0 -1
  2145. package/dist/esm/react/sdk/src/core/TatchiPasskey/linkDevice.js +0 -710
  2146. package/dist/esm/react/sdk/src/core/TatchiPasskey/linkDevice.js.map +0 -1
  2147. package/dist/esm/react/sdk/src/core/TatchiPasskey/login.js +0 -569
  2148. package/dist/esm/react/sdk/src/core/TatchiPasskey/login.js.map +0 -1
  2149. package/dist/esm/react/sdk/src/core/TatchiPasskey/recoverAccount.js +0 -428
  2150. package/dist/esm/react/sdk/src/core/TatchiPasskey/recoverAccount.js.map +0 -1
  2151. package/dist/esm/react/sdk/src/core/TatchiPasskey/registration.js +0 -338
  2152. package/dist/esm/react/sdk/src/core/TatchiPasskey/registration.js.map +0 -1
  2153. package/dist/esm/react/sdk/src/core/TatchiPasskey/relay.js +0 -111
  2154. package/dist/esm/react/sdk/src/core/TatchiPasskey/relay.js.map +0 -1
  2155. package/dist/esm/react/sdk/src/core/TatchiPasskey/scanDevice.js +0 -104
  2156. package/dist/esm/react/sdk/src/core/TatchiPasskey/scanDevice.js.map +0 -1
  2157. package/dist/esm/react/sdk/src/core/TatchiPasskey/signNEP413.js +0 -88
  2158. package/dist/esm/react/sdk/src/core/TatchiPasskey/signNEP413.js.map +0 -1
  2159. package/dist/esm/react/sdk/src/core/WalletIframe/client/IframeTransport.js +0 -329
  2160. package/dist/esm/react/sdk/src/core/WalletIframe/client/IframeTransport.js.map +0 -1
  2161. package/dist/esm/react/sdk/src/core/WalletIframe/client/on-events-progress-bus.js +0 -208
  2162. package/dist/esm/react/sdk/src/core/WalletIframe/client/on-events-progress-bus.js.map +0 -1
  2163. package/dist/esm/react/sdk/src/core/WalletIframe/client/overlay-controller.js.map +0 -1
  2164. package/dist/esm/react/sdk/src/core/WalletIframe/client/overlay-styles.js.map +0 -1
  2165. package/dist/esm/react/sdk/src/core/WalletIframe/client/router.js +0 -1061
  2166. package/dist/esm/react/sdk/src/core/WalletIframe/client/router.js.map +0 -1
  2167. package/dist/esm/react/sdk/src/core/WalletIframe/events.js.map +0 -1
  2168. package/dist/esm/react/sdk/src/core/WalletIframe/host-mode.js +0 -9
  2169. package/dist/esm/react/sdk/src/core/WalletIframe/host-mode.js.map +0 -1
  2170. package/dist/esm/react/sdk/src/core/WalletIframe/validation.js +0 -55
  2171. package/dist/esm/react/sdk/src/core/WalletIframe/validation.js.map +0 -1
  2172. package/dist/esm/react/sdk/src/core/WebAuthnManager/LitComponents/Drawer/index.js.map +0 -1
  2173. package/dist/esm/react/sdk/src/core/WebAuthnManager/LitComponents/ExportPrivateKey/iframe-host.js +0 -219
  2174. package/dist/esm/react/sdk/src/core/WebAuthnManager/LitComponents/ExportPrivateKey/iframe-host.js.map +0 -1
  2175. package/dist/esm/react/sdk/src/core/WebAuthnManager/LitComponents/HaloBorder/index.js.map +0 -1
  2176. package/dist/esm/react/sdk/src/core/WebAuthnManager/LitComponents/IframeButtonWithTooltipConfirmer/iframe-geometry.js +0 -357
  2177. package/dist/esm/react/sdk/src/core/WebAuthnManager/LitComponents/IframeButtonWithTooltipConfirmer/iframe-geometry.js.map +0 -1
  2178. package/dist/esm/react/sdk/src/core/WebAuthnManager/LitComponents/IframeButtonWithTooltipConfirmer/iframe-host.js +0 -703
  2179. package/dist/esm/react/sdk/src/core/WebAuthnManager/LitComponents/IframeButtonWithTooltipConfirmer/iframe-host.js.map +0 -1
  2180. package/dist/esm/react/sdk/src/core/WebAuthnManager/LitComponents/IframeTxConfirmer/tx-confirm-content.js +0 -188
  2181. package/dist/esm/react/sdk/src/core/WebAuthnManager/LitComponents/IframeTxConfirmer/tx-confirm-content.js.map +0 -1
  2182. package/dist/esm/react/sdk/src/core/WebAuthnManager/LitComponents/IframeTxConfirmer/tx-confirmer-wrapper.js +0 -255
  2183. package/dist/esm/react/sdk/src/core/WebAuthnManager/LitComponents/IframeTxConfirmer/tx-confirmer-wrapper.js.map +0 -1
  2184. package/dist/esm/react/sdk/src/core/WebAuthnManager/LitComponents/IframeTxConfirmer/viewer-drawer.js.map +0 -1
  2185. package/dist/esm/react/sdk/src/core/WebAuthnManager/LitComponents/IframeTxConfirmer/viewer-modal.js.map +0 -1
  2186. package/dist/esm/react/sdk/src/core/WebAuthnManager/LitComponents/LitElementWithProps.js +0 -254
  2187. package/dist/esm/react/sdk/src/core/WebAuthnManager/LitComponents/LitElementWithProps.js.map +0 -1
  2188. package/dist/esm/react/sdk/src/core/WebAuthnManager/LitComponents/PasskeyHaloLoading/index.js.map +0 -1
  2189. package/dist/esm/react/sdk/src/core/WebAuthnManager/LitComponents/TxTree/index.js +0 -500
  2190. package/dist/esm/react/sdk/src/core/WebAuthnManager/LitComponents/TxTree/index.js.map +0 -1
  2191. package/dist/esm/react/sdk/src/core/WebAuthnManager/LitComponents/TxTree/tx-tree-themes.js.map +0 -1
  2192. package/dist/esm/react/sdk/src/core/WebAuthnManager/LitComponents/TxTree/tx-tree-utils.js +0 -182
  2193. package/dist/esm/react/sdk/src/core/WebAuthnManager/LitComponents/TxTree/tx-tree-utils.js.map +0 -1
  2194. package/dist/esm/react/sdk/src/core/WebAuthnManager/LitComponents/asset-base.js.map +0 -1
  2195. package/dist/esm/react/sdk/src/core/WebAuthnManager/LitComponents/common/PadlockIcon.js.map +0 -1
  2196. package/dist/esm/react/sdk/src/core/WebAuthnManager/LitComponents/common/formatters.js.map +0 -1
  2197. package/dist/esm/react/sdk/src/core/WebAuthnManager/LitComponents/confirm-ui-types.js.map +0 -1
  2198. package/dist/esm/react/sdk/src/core/WebAuthnManager/LitComponents/confirm-ui.js +0 -219
  2199. package/dist/esm/react/sdk/src/core/WebAuthnManager/LitComponents/confirm-ui.js.map +0 -1
  2200. package/dist/esm/react/sdk/src/core/WebAuthnManager/LitComponents/css/css-loader.js.map +0 -1
  2201. package/dist/esm/react/sdk/src/core/WebAuthnManager/LitComponents/ensure-defined.js +0 -23
  2202. package/dist/esm/react/sdk/src/core/WebAuthnManager/LitComponents/ensure-defined.js.map +0 -1
  2203. package/dist/esm/react/sdk/src/core/WebAuthnManager/LitComponents/lit-events.js.map +0 -1
  2204. package/dist/esm/react/sdk/src/core/WebAuthnManager/LitComponents/tags.js +0 -47
  2205. package/dist/esm/react/sdk/src/core/WebAuthnManager/LitComponents/tags.js.map +0 -1
  2206. package/dist/esm/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/getDeviceNumber.js +0 -32
  2207. package/dist/esm/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/getDeviceNumber.js.map +0 -1
  2208. package/dist/esm/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/handlers/checkCanRegisterUser.js +0 -70
  2209. package/dist/esm/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/handlers/checkCanRegisterUser.js.map +0 -1
  2210. package/dist/esm/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/handlers/decryptPrivateKeyWithPrf.js +0 -46
  2211. package/dist/esm/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/handlers/decryptPrivateKeyWithPrf.js.map +0 -1
  2212. package/dist/esm/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/handlers/deriveNearKeypairAndEncryptFromSerialized.js +0 -70
  2213. package/dist/esm/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/handlers/deriveNearKeypairAndEncryptFromSerialized.js.map +0 -1
  2214. package/dist/esm/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/handlers/exportNearKeypairUi.js +0 -66
  2215. package/dist/esm/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/handlers/exportNearKeypairUi.js.map +0 -1
  2216. package/dist/esm/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/handlers/extractCosePublicKey.js +0 -24
  2217. package/dist/esm/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/handlers/extractCosePublicKey.js.map +0 -1
  2218. package/dist/esm/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/handlers/recoverKeypairFromPasskey.js +0 -43
  2219. package/dist/esm/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/handlers/recoverKeypairFromPasskey.js.map +0 -1
  2220. package/dist/esm/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/handlers/registerDevice2WithDerivedKey.js +0 -115
  2221. package/dist/esm/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/handlers/registerDevice2WithDerivedKey.js.map +0 -1
  2222. package/dist/esm/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/handlers/session.js +0 -14
  2223. package/dist/esm/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/handlers/session.js.map +0 -1
  2224. package/dist/esm/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/handlers/signDelegateAction.js +0 -102
  2225. package/dist/esm/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/handlers/signDelegateAction.js.map +0 -1
  2226. package/dist/esm/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/handlers/signNep413Message.js +0 -77
  2227. package/dist/esm/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/handlers/signNep413Message.js.map +0 -1
  2228. package/dist/esm/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/handlers/signTransactionWithKeyPair.js +0 -61
  2229. package/dist/esm/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/handlers/signTransactionWithKeyPair.js.map +0 -1
  2230. package/dist/esm/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/handlers/signTransactionsWithActions.js +0 -111
  2231. package/dist/esm/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/handlers/signTransactionsWithActions.js.map +0 -1
  2232. package/dist/esm/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/handlers/validation.js +0 -80
  2233. package/dist/esm/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/handlers/validation.js.map +0 -1
  2234. package/dist/esm/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/index.js +0 -451
  2235. package/dist/esm/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/index.js.map +0 -1
  2236. package/dist/esm/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/sessionHandshake.js.map +0 -1
  2237. package/dist/esm/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/sessionMessages.js +0 -81
  2238. package/dist/esm/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/sessionMessages.js.map +0 -1
  2239. package/dist/esm/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/common.js +0 -56
  2240. package/dist/esm/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/common.js.map +0 -1
  2241. package/dist/esm/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/createAdapters.js.map +0 -1
  2242. package/dist/esm/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/near.js +0 -54
  2243. package/dist/esm/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/near.js.map +0 -1
  2244. package/dist/esm/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/requestAdapter.js +0 -32
  2245. package/dist/esm/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/requestAdapter.js.map +0 -1
  2246. package/dist/esm/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/requestHelpers.js.map +0 -1
  2247. package/dist/esm/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/session.js.map +0 -1
  2248. package/dist/esm/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/ui.js.map +0 -1
  2249. package/dist/esm/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/vrf.js +0 -63
  2250. package/dist/esm/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/vrf.js.map +0 -1
  2251. package/dist/esm/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/webauthn.js +0 -39
  2252. package/dist/esm/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/webauthn.js.map +0 -1
  2253. package/dist/esm/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/determineConfirmationConfig.js +0 -65
  2254. package/dist/esm/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/determineConfirmationConfig.js.map +0 -1
  2255. package/dist/esm/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/localOnly.js +0 -89
  2256. package/dist/esm/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/localOnly.js.map +0 -1
  2257. package/dist/esm/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/registration.js +0 -135
  2258. package/dist/esm/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/registration.js.map +0 -1
  2259. package/dist/esm/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/requestRegistrationCredentialConfirmation.js +0 -51
  2260. package/dist/esm/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/requestRegistrationCredentialConfirmation.js.map +0 -1
  2261. package/dist/esm/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/transactions.js +0 -172
  2262. package/dist/esm/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/transactions.js.map +0 -1
  2263. package/dist/esm/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/handleSecureConfirmRequest.js +0 -118
  2264. package/dist/esm/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/handleSecureConfirmRequest.js.map +0 -1
  2265. package/dist/esm/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/types.js.map +0 -1
  2266. package/dist/esm/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/handlers/checkSessionStatus.js.map +0 -1
  2267. package/dist/esm/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/handlers/checkVrfStatus.js +0 -51
  2268. package/dist/esm/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/handlers/checkVrfStatus.js.map +0 -1
  2269. package/dist/esm/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/handlers/clearSession.js.map +0 -1
  2270. package/dist/esm/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/handlers/clearVrf.js.map +0 -1
  2271. package/dist/esm/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/handlers/confirmAndDeriveDevice2RegistrationSession.js.map +0 -1
  2272. package/dist/esm/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/handlers/confirmAndPrepareSigningSession.js +0 -155
  2273. package/dist/esm/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/handlers/confirmAndPrepareSigningSession.js.map +0 -1
  2274. package/dist/esm/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/handlers/createSigningSessionChannel.js +0 -29
  2275. package/dist/esm/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/handlers/createSigningSessionChannel.js.map +0 -1
  2276. package/dist/esm/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/handlers/deriveVrfKeypairFromPrf.js +0 -58
  2277. package/dist/esm/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/handlers/deriveVrfKeypairFromPrf.js.map +0 -1
  2278. package/dist/esm/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/handlers/dispenseSessionKey.js.map +0 -1
  2279. package/dist/esm/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/handlers/generateVrfChallenge.js +0 -46
  2280. package/dist/esm/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/handlers/generateVrfChallenge.js.map +0 -1
  2281. package/dist/esm/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/handlers/generateVrfKeypairBootstrap.js +0 -58
  2282. package/dist/esm/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/handlers/generateVrfKeypairBootstrap.js.map +0 -1
  2283. package/dist/esm/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/handlers/mintSessionKeysAndSendToSigner.js.map +0 -1
  2284. package/dist/esm/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/handlers/prepareDecryptSession.js.map +0 -1
  2285. package/dist/esm/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/handlers/requestRegistrationCredentialConfirmation.js.map +0 -1
  2286. package/dist/esm/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/handlers/shamir3PassDecryptVrfKeypair.js.map +0 -1
  2287. package/dist/esm/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/handlers/shamir3PassEncryptCurrentVrfKeypair.js.map +0 -1
  2288. package/dist/esm/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/handlers/unlockVrfKeypair.js.map +0 -1
  2289. package/dist/esm/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/index.js +0 -374
  2290. package/dist/esm/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/index.js.map +0 -1
  2291. package/dist/esm/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/secureConfirmBridge.js.map +0 -1
  2292. package/dist/esm/react/sdk/src/core/WebAuthnManager/WebAuthnFallbacks/index.js +0 -12
  2293. package/dist/esm/react/sdk/src/core/WebAuthnManager/WebAuthnFallbacks/index.js.map +0 -1
  2294. package/dist/esm/react/sdk/src/core/WebAuthnManager/WebAuthnFallbacks/safari-fallbacks.js +0 -203
  2295. package/dist/esm/react/sdk/src/core/WebAuthnManager/WebAuthnFallbacks/safari-fallbacks.js.map +0 -1
  2296. package/dist/esm/react/sdk/src/core/WebAuthnManager/credentialsHelpers.js +0 -288
  2297. package/dist/esm/react/sdk/src/core/WebAuthnManager/credentialsHelpers.js.map +0 -1
  2298. package/dist/esm/react/sdk/src/core/WebAuthnManager/index.js +0 -889
  2299. package/dist/esm/react/sdk/src/core/WebAuthnManager/index.js.map +0 -1
  2300. package/dist/esm/react/sdk/src/core/WebAuthnManager/touchIdPrompt.js +0 -270
  2301. package/dist/esm/react/sdk/src/core/WebAuthnManager/touchIdPrompt.js.map +0 -1
  2302. package/dist/esm/react/sdk/src/core/WebAuthnManager/txDigest.js +0 -83
  2303. package/dist/esm/react/sdk/src/core/WebAuthnManager/txDigest.js.map +0 -1
  2304. package/dist/esm/react/sdk/src/core/WebAuthnManager/userHandle.js +0 -38
  2305. package/dist/esm/react/sdk/src/core/WebAuthnManager/userHandle.js.map +0 -1
  2306. package/dist/esm/react/sdk/src/core/WebAuthnManager/userPreferences.js +0 -307
  2307. package/dist/esm/react/sdk/src/core/WebAuthnManager/userPreferences.js.map +0 -1
  2308. package/dist/esm/react/sdk/src/core/defaultConfigs.js +0 -102
  2309. package/dist/esm/react/sdk/src/core/defaultConfigs.js.map +0 -1
  2310. package/dist/esm/react/sdk/src/core/nearCrypto.js +0 -48
  2311. package/dist/esm/react/sdk/src/core/nearCrypto.js.map +0 -1
  2312. package/dist/esm/react/sdk/src/core/nonceManager.js +0 -402
  2313. package/dist/esm/react/sdk/src/core/nonceManager.js.map +0 -1
  2314. package/dist/esm/react/sdk/src/core/rpcCalls.js +0 -431
  2315. package/dist/esm/react/sdk/src/core/rpcCalls.js.map +0 -1
  2316. package/dist/esm/react/sdk/src/core/sdkPaths/base.js.map +0 -1
  2317. package/dist/esm/react/sdk/src/core/sdkPaths/workers.js +0 -42
  2318. package/dist/esm/react/sdk/src/core/sdkPaths/workers.js.map +0 -1
  2319. package/dist/esm/react/sdk/src/core/types/accountIds.js +0 -26
  2320. package/dist/esm/react/sdk/src/core/types/accountIds.js.map +0 -1
  2321. package/dist/esm/react/sdk/src/core/types/actions.js +0 -263
  2322. package/dist/esm/react/sdk/src/core/types/actions.js.map +0 -1
  2323. package/dist/esm/react/sdk/src/core/types/authenticatorOptions.js +0 -47
  2324. package/dist/esm/react/sdk/src/core/types/authenticatorOptions.js.map +0 -1
  2325. package/dist/esm/react/sdk/src/core/types/emailRecovery.js +0 -26
  2326. package/dist/esm/react/sdk/src/core/types/emailRecovery.js.map +0 -1
  2327. package/dist/esm/react/sdk/src/core/types/linkDevice.js.map +0 -1
  2328. package/dist/esm/react/sdk/src/core/types/rpc.js +0 -19
  2329. package/dist/esm/react/sdk/src/core/types/rpc.js.map +0 -1
  2330. package/dist/esm/react/sdk/src/core/types/sdkSentEvents.js +0 -116
  2331. package/dist/esm/react/sdk/src/core/types/sdkSentEvents.js.map +0 -1
  2332. package/dist/esm/react/sdk/src/core/types/signer-worker.js +0 -51
  2333. package/dist/esm/react/sdk/src/core/types/signer-worker.js.map +0 -1
  2334. package/dist/esm/react/sdk/src/core/types/vrf-worker.js +0 -66
  2335. package/dist/esm/react/sdk/src/core/types/vrf-worker.js.map +0 -1
  2336. package/dist/esm/react/sdk/src/core/workerControlMessages.js.map +0 -1
  2337. package/dist/esm/react/sdk/src/theme/base-styles.js.map +0 -1
  2338. package/dist/esm/react/sdk/src/theme/palette.js.map +0 -1
  2339. package/dist/esm/react/sdk/src/utils/base58.js +0 -17
  2340. package/dist/esm/react/sdk/src/utils/base58.js.map +0 -1
  2341. package/dist/esm/react/sdk/src/utils/base64.js +0 -50
  2342. package/dist/esm/react/sdk/src/utils/base64.js.map +0 -1
  2343. package/dist/esm/react/sdk/src/utils/encoders.js +0 -13
  2344. package/dist/esm/react/sdk/src/utils/encoders.js.map +0 -1
  2345. package/dist/esm/react/sdk/src/utils/errors.js +0 -140
  2346. package/dist/esm/react/sdk/src/utils/errors.js.map +0 -1
  2347. package/dist/esm/react/sdk/src/utils/index.js +0 -20
  2348. package/dist/esm/react/sdk/src/utils/index.js.map +0 -1
  2349. package/dist/esm/react/sdk/src/utils/qrScanner.js.map +0 -1
  2350. package/dist/esm/react/sdk/src/utils/validation.js +0 -61
  2351. package/dist/esm/react/sdk/src/utils/validation.js.map +0 -1
  2352. package/dist/esm/sdk/HaloBorder-D7vjXHnY.js +0 -1111
  2353. package/dist/esm/sdk/WebAuthnFallbacks-Bl4BTsNt.js +0 -615
  2354. package/dist/esm/sdk/actions-O1FD5Bq8.js +0 -252
  2355. package/dist/esm/sdk/asset-base-K63RlTrt.js +0 -43
  2356. package/dist/esm/sdk/base-Qt2P7SNn.js +0 -19
  2357. package/dist/esm/sdk/base-Qt2P7SNn.js.map +0 -1
  2358. package/dist/esm/sdk/base64-DBPGuXh4.js +0 -48
  2359. package/dist/esm/sdk/browser-B3uuzKL0.js +0 -2443
  2360. package/dist/esm/sdk/button-with-tooltip.css +0 -260
  2361. package/dist/esm/sdk/chunk-DIQ1yeMN.js +0 -38
  2362. package/dist/esm/sdk/createAdapters-DIRR8_Z9.js +0 -526
  2363. package/dist/esm/sdk/createAdapters-Yga6W0en.js +0 -3202
  2364. package/dist/esm/sdk/createAdapters-Yga6W0en.js.map +0 -1
  2365. package/dist/esm/sdk/css-loader-BHxJyE5o.js +0 -1098
  2366. package/dist/esm/sdk/css-loader-BrMMlG4X.js +0 -1184
  2367. package/dist/esm/sdk/css-loader-BrMMlG4X.js.map +0 -1
  2368. package/dist/esm/sdk/defaultConfigs-CfQDV-ya.js +0 -100
  2369. package/dist/esm/sdk/ensure-defined-CHInSx7l.js +0 -34
  2370. package/dist/esm/sdk/errors-D9ar28Dr.js +0 -265
  2371. package/dist/esm/sdk/getDeviceNumber-BpernPnM.js +0 -121
  2372. package/dist/esm/sdk/getDeviceNumber-BpernPnM.js.map +0 -1
  2373. package/dist/esm/sdk/getDeviceNumber-zsOHT_Um.js +0 -30
  2374. package/dist/esm/sdk/iframe-button-host.css +0 -84
  2375. package/dist/esm/sdk/iframe-host-BisiSSOa.js +0 -213
  2376. package/dist/esm/sdk/iframe-host-BisiSSOa.js.map +0 -1
  2377. package/dist/esm/sdk/iframe-host-BoarlHRm.js +0 -1053
  2378. package/dist/esm/sdk/iframe-host-BoarlHRm.js.map +0 -1
  2379. package/dist/esm/sdk/iframe-host-CefZOSX2.js +0 -1105
  2380. package/dist/esm/sdk/iframe-host-DQCSzj7r.js +0 -215
  2381. package/dist/esm/sdk/iframe-tx-button-bootstrap.js +0 -220
  2382. package/dist/esm/sdk/lit-events-BKobq01K.js +0 -29
  2383. package/dist/esm/sdk/lit-events-BKobq01K.js.map +0 -1
  2384. package/dist/esm/sdk/localOnly-BHScJasw.js +0 -93
  2385. package/dist/esm/sdk/localOnly-VevCI7H0.js +0 -102
  2386. package/dist/esm/sdk/localOnly-VevCI7H0.js.map +0 -1
  2387. package/dist/esm/sdk/overlay-ZGbucXIa.js +0 -431
  2388. package/dist/esm/sdk/registration-bKEg9Zr2.js +0 -133
  2389. package/dist/esm/sdk/registration-bKEg9Zr2.js.map +0 -1
  2390. package/dist/esm/sdk/registration-lDD60Ytt.js +0 -142
  2391. package/dist/esm/sdk/requestHelpers-Dh1hEYL9.js +0 -445
  2392. package/dist/esm/sdk/requestHelpers-aUKhXiEl.js +0 -1393
  2393. package/dist/esm/sdk/requestHelpers-aUKhXiEl.js.map +0 -1
  2394. package/dist/esm/sdk/router-BWtacLJg.js +0 -1799
  2395. package/dist/esm/sdk/rpcCalls-CYGJSCgm.js +0 -10
  2396. package/dist/esm/sdk/rpcCalls-DZZSa-sk.js +0 -427
  2397. package/dist/esm/sdk/sdkSentEvents-_jrJLIhw.js +0 -128
  2398. package/dist/esm/sdk/tags-C2Wlhqjd.js +0 -47
  2399. package/dist/esm/sdk/transactions-Cn9xTWlK.js +0 -166
  2400. package/dist/esm/sdk/transactions-Cn9xTWlK.js.map +0 -1
  2401. package/dist/esm/sdk/transactions-DfdwDQCn.js +0 -178
  2402. package/dist/esm/sdk/tx-confirmer-wrapper-lHNgz9i4.js +0 -2690
  2403. package/dist/esm/sdk/tx-tree-themes-BND0SU2h.js +0 -572
  2404. package/dist/esm/sdk/tx-tree-themes-i3It4IYY.js +0 -573
  2405. package/dist/esm/sdk/tx-tree-themes-i3It4IYY.js.map +0 -1
  2406. package/dist/esm/sdk/txDigest-CxjhSCgm.js +0 -89
  2407. package/dist/esm/sdk/validation-DhPPUba7.js +0 -24
  2408. package/dist/esm/sdk/validation-DhPPUba7.js.map +0 -1
  2409. package/dist/esm/sdk/validation-DtLVzHDY.js +0 -50
  2410. package/dist/esm/sdk/w3a-button-with-tooltip.js +0 -3316
  2411. package/dist/esm/sdk/w3a-tx-button.js +0 -8
  2412. package/dist/esm/server/sdk/src/core/WalletIframe/validation.js +0 -14
  2413. package/dist/esm/server/sdk/src/core/WalletIframe/validation.js.map +0 -1
  2414. package/dist/esm/utils/encoders.js +0 -13
  2415. package/dist/esm/utils/encoders.js.map +0 -1
  2416. package/dist/esm/utils/index.js +0 -20
  2417. package/dist/esm/utils/index.js.map +0 -1
  2418. package/dist/types/src/core/TatchiPasskey/recoverAccount.d.ts +0 -112
  2419. package/dist/types/src/core/TatchiPasskey/recoverAccount.d.ts.map +0 -1
  2420. package/dist/types/src/core/WalletIframe/host/WalletHostElements.d.ts +0 -55
  2421. package/dist/types/src/core/WalletIframe/host/WalletHostElements.d.ts.map +0 -1
  2422. package/dist/types/src/core/WalletIframe/validation.d.ts +0 -24
  2423. package/dist/types/src/core/WalletIframe/validation.d.ts.map +0 -1
  2424. package/dist/types/src/core/WebAuthnManager/LitComponents/IframeButtonWithTooltipConfirmer/ButtonWithTooltip.d.ts +0 -160
  2425. package/dist/types/src/core/WebAuthnManager/LitComponents/IframeButtonWithTooltipConfirmer/ButtonWithTooltip.d.ts.map +0 -1
  2426. package/dist/types/src/core/WebAuthnManager/LitComponents/IframeButtonWithTooltipConfirmer/iframe-geometry.d.ts +0 -107
  2427. package/dist/types/src/core/WebAuthnManager/LitComponents/IframeButtonWithTooltipConfirmer/iframe-geometry.d.ts.map +0 -1
  2428. package/dist/types/src/core/WebAuthnManager/LitComponents/IframeButtonWithTooltipConfirmer/iframe-host.d.ts +0 -179
  2429. package/dist/types/src/core/WebAuthnManager/LitComponents/IframeButtonWithTooltipConfirmer/iframe-host.d.ts.map +0 -1
  2430. package/dist/types/src/core/WebAuthnManager/LitComponents/IframeButtonWithTooltipConfirmer/iframe-tx-button-bootstrap-script.d.ts +0 -7
  2431. package/dist/types/src/core/WebAuthnManager/LitComponents/IframeButtonWithTooltipConfirmer/iframe-tx-button-bootstrap-script.d.ts.map +0 -1
  2432. package/dist/types/src/core/WebAuthnManager/LitComponents/IframeButtonWithTooltipConfirmer/index.d.ts +0 -6
  2433. package/dist/types/src/core/WebAuthnManager/LitComponents/IframeButtonWithTooltipConfirmer/index.d.ts.map +0 -1
  2434. package/dist/types/src/core/WebAuthnManager/LitComponents/common/iframe-messages.d.ts +0 -112
  2435. package/dist/types/src/core/WebAuthnManager/LitComponents/common/iframe-messages.d.ts.map +0 -1
  2436. package/dist/types/src/core/WebAuthnManager/txDigest.d.ts +0 -146
  2437. package/dist/types/src/core/WebAuthnManager/txDigest.d.ts.map +0 -1
  2438. package/dist/types/src/core/types/components.d.ts +0 -2
  2439. package/dist/types/src/core/types/components.d.ts.map +0 -1
  2440. package/dist/types/src/react/components/SendTxButtonWithTooltip.d.ts +0 -31
  2441. package/dist/types/src/react/components/SendTxButtonWithTooltip.d.ts.map +0 -1
  2442. package/dist/types/src/react/components/WalletIframeTxButtonHost.d.ts +0 -30
  2443. package/dist/types/src/react/components/WalletIframeTxButtonHost.d.ts.map +0 -1
  2444. /package/dist/esm/react/{sdk/build-paths.js → build-paths.js} +0 -0
  2445. /package/dist/esm/react/{sdk/src → src}/base-styles.js +0 -0
  2446. /package/dist/esm/react/{sdk/src → src}/config.js +0 -0
  2447. /package/dist/esm/react/{sdk/src → src}/core/NearRpcError.js +0 -0
  2448. /package/dist/esm/react/{sdk/src → src}/core/OfflineExport/overlay.js +0 -0
  2449. /package/dist/esm/react/{sdk/src → src}/core/WalletIframe/client/overlay-controller.js +0 -0
  2450. /package/dist/esm/react/{sdk/src → src}/core/WalletIframe/client/overlay-styles.js +0 -0
  2451. /package/dist/esm/react/{sdk/src → src}/core/WalletIframe/events.js +0 -0
  2452. /package/dist/esm/react/{sdk/src → src}/core/WebAuthnManager/LitComponents/Drawer/index.js +0 -0
  2453. /package/dist/esm/react/{sdk/src → src}/core/WebAuthnManager/LitComponents/HaloBorder/index.js +0 -0
  2454. /package/dist/esm/react/{sdk/src → src}/core/WebAuthnManager/LitComponents/IframeTxConfirmer/viewer-drawer.js +0 -0
  2455. /package/dist/esm/react/{sdk/src → src}/core/WebAuthnManager/LitComponents/IframeTxConfirmer/viewer-modal.js +0 -0
  2456. /package/dist/esm/react/{sdk/src → src}/core/WebAuthnManager/LitComponents/PasskeyHaloLoading/index.js +0 -0
  2457. /package/dist/esm/react/{sdk/src → src}/core/WebAuthnManager/LitComponents/TxTree/tx-tree-themes.js +0 -0
  2458. /package/dist/esm/react/{sdk/src → src}/core/WebAuthnManager/LitComponents/asset-base.js +0 -0
  2459. /package/dist/esm/react/{sdk/src → src}/core/WebAuthnManager/LitComponents/common/PadlockIcon.js +0 -0
  2460. /package/dist/esm/react/{sdk/src → src}/core/WebAuthnManager/LitComponents/common/formatters.js +0 -0
  2461. /package/dist/esm/react/{sdk/src → src}/core/WebAuthnManager/LitComponents/confirm-ui-types.js +0 -0
  2462. /package/dist/esm/react/{sdk/src → src}/core/WebAuthnManager/LitComponents/css/css-loader.js +0 -0
  2463. /package/dist/esm/react/{sdk/src → src}/core/WebAuthnManager/LitComponents/lit-events.js +0 -0
  2464. /package/dist/esm/react/{sdk/src → src}/core/WebAuthnManager/SignerWorkerManager/sessionHandshake.js +0 -0
  2465. /package/dist/esm/react/{sdk/src → src}/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/createAdapters.js +0 -0
  2466. /package/dist/esm/react/{sdk/src → src}/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/requestHelpers.js +0 -0
  2467. /package/dist/esm/react/{sdk/src → src}/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/session.js +0 -0
  2468. /package/dist/esm/react/{sdk/src → src}/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/ui.js +0 -0
  2469. /package/dist/esm/react/{sdk/src → src}/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/types.js +0 -0
  2470. /package/dist/esm/react/{sdk/src → src}/core/WebAuthnManager/VrfWorkerManager/handlers/checkSessionStatus.js +0 -0
  2471. /package/dist/esm/react/{sdk/src → src}/core/WebAuthnManager/VrfWorkerManager/handlers/clearSession.js +0 -0
  2472. /package/dist/esm/react/{sdk/src → src}/core/WebAuthnManager/VrfWorkerManager/handlers/clearVrf.js +0 -0
  2473. /package/dist/esm/react/{sdk/src → src}/core/WebAuthnManager/VrfWorkerManager/handlers/confirmAndDeriveDevice2RegistrationSession.js +0 -0
  2474. /package/dist/esm/react/{sdk/src → src}/core/WebAuthnManager/VrfWorkerManager/handlers/dispenseSessionKey.js +0 -0
  2475. /package/dist/esm/react/{sdk/src → src}/core/WebAuthnManager/VrfWorkerManager/handlers/mintSessionKeysAndSendToSigner.js +0 -0
  2476. /package/dist/esm/react/{sdk/src → src}/core/WebAuthnManager/VrfWorkerManager/handlers/prepareDecryptSession.js +0 -0
  2477. /package/dist/esm/react/{sdk/src → src}/core/WebAuthnManager/VrfWorkerManager/handlers/requestRegistrationCredentialConfirmation.js +0 -0
  2478. /package/dist/esm/react/{sdk/src → src}/core/WebAuthnManager/VrfWorkerManager/handlers/shamir3PassDecryptVrfKeypair.js +0 -0
  2479. /package/dist/esm/react/{sdk/src → src}/core/WebAuthnManager/VrfWorkerManager/handlers/shamir3PassEncryptCurrentVrfKeypair.js +0 -0
  2480. /package/dist/esm/react/{sdk/src → src}/core/WebAuthnManager/VrfWorkerManager/handlers/unlockVrfKeypair.js +0 -0
  2481. /package/dist/esm/react/{sdk/src → src}/core/WebAuthnManager/VrfWorkerManager/secureConfirmBridge.js +0 -0
  2482. /package/dist/esm/react/{sdk/src → src}/core/sdkPaths/base.js +0 -0
  2483. /package/dist/esm/react/{sdk/src → src}/core/types/linkDevice.js +0 -0
  2484. /package/dist/esm/react/{sdk/src → src}/core/workerControlMessages.js +0 -0
  2485. /package/dist/esm/react/{sdk/src → src}/theme/base-styles.js +0 -0
  2486. /package/dist/esm/react/{sdk/src → src}/theme/palette.js +0 -0
  2487. /package/dist/esm/react/{sdk/src → src}/utils/qrScanner.js +0 -0
  2488. /package/dist/esm/sdk/{lit-events-C-jpeT5r.js → lit-events-Bb4tAEO2.js} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"cloudflare.js","names":["out: ShamirApplyServerLockResponse","e: any","out: ShamirRemoveServerLockResponse","normalizedHeaders: Record<string, string>","v","base: Logger","allowedOrigin: string | '*' | undefined","out: Record<string, string>","e: any","body: unknown","res","headersObj: Record<string, string>","rawBody: unknown","result","currentKeyId: string | null","shamirReady: boolean | null","shamirCurrentKeyId: string | null","shamirError: string | undefined","e: unknown"],"sources":["../../../../src/core/WalletIframe/validation.ts","../../../../src/server/core/shamirHandlers.ts","../../../../src/server/core/SessionService.ts","../../../../src/server/email-recovery/zkEmail/index.ts","../../../../src/server/email-recovery/emailParsers.ts","../../../../src/server/core/logger.ts","../../../../src/server/router/logger.ts","../../../../src/server/router/cloudflare-adaptor.ts"],"sourcesContent":["// Shared runtime validation helpers for Wallet Iframe code.\n\nexport function isObject(x: unknown): x is Record<string, unknown> {\n return x !== null && typeof x === 'object';\n}\n\nexport function isString(x: unknown): x is string {\n return typeof x === 'string';\n}\n\nexport function isNonEmptyString(x: unknown): x is string {\n return typeof x === 'string' && x.length > 0;\n}\n\nexport function isNumber(x: unknown): x is number {\n return typeof x === 'number';\n}\n\nexport function isFiniteNumber(x: unknown): x is number {\n return typeof x === 'number' && Number.isFinite(x);\n}\n\nexport function isFunction(x: unknown): x is Function {\n return typeof x === 'function';\n}\n\nexport function isBoolean(x: unknown): x is boolean {\n return typeof x === 'boolean';\n}\n\nexport function isArray<T = unknown>(x: unknown): x is T[] {\n return Array.isArray(x);\n}\n\n// ========= Assertions (throw on mismatch) =========\n\nexport function assertString(val: unknown, name = 'value'): string {\n if (typeof val !== 'string') throw new Error(`Invalid ${name}: expected string`);\n return val;\n}\n\nexport function assertNumber(val: unknown, name = 'value'): number {\n if (typeof val !== 'number' || !Number.isFinite(val)) throw new Error(`Invalid ${name}: expected finite number`);\n return val;\n}\n\nexport function assertBoolean(val: unknown, name = 'value'): boolean {\n if (typeof val !== 'boolean') throw new Error(`Invalid ${name}: expected boolean`);\n return val;\n}\n\nexport function assertObject<T extends Record<string, unknown> = Record<string, unknown>>(val: unknown, name = 'value'): T {\n if (!isObject(val)) throw new Error(`Invalid ${name}: expected object`);\n return val as T;\n}\n\nexport function assertArray<T = unknown>(val: unknown, name = 'value'): T[] {\n if (!Array.isArray(val)) throw new Error(`Invalid ${name}: expected array`);\n return val as T[];\n}\n\n// Shallowly remove function-valued properties (postMessage/clone safety)\nexport function stripFunctionsShallow<T extends Record<string, unknown>>(obj?: T): Partial<T> | undefined {\n if (!obj || !isObject(obj)) return undefined;\n const out: Record<string, unknown> = {};\n for (const [k, v] of Object.entries(obj)) {\n if (!isFunction(v)) out[k] = v as unknown;\n }\n return out as Partial<T>;\n}\n\n// ===============================\n// SignedTransaction shape helpers\n// ===============================\n\nexport interface PlainSignedTransactionLike {\n transaction: unknown;\n signature: unknown;\n borsh_bytes?: unknown;\n borshBytes?: unknown;\n base64Encode?: unknown;\n}\n\nexport function isPlainSignedTransactionLike(x: unknown): x is PlainSignedTransactionLike {\n if (!isObject(x)) return false;\n const hasTx = 'transaction' in x;\n const hasSig = 'signature' in x;\n const bytes = x as { borsh_bytes?: unknown; borshBytes?: unknown };\n const hasBytes = Array.isArray(bytes.borsh_bytes) || bytes.borshBytes instanceof Uint8Array;\n const hasMethod = typeof (x as { base64Encode?: unknown }).base64Encode === 'function';\n return hasTx && hasSig && hasBytes && !hasMethod;\n}\n\nexport function extractBorshBytesFromPlainSignedTx(x: PlainSignedTransactionLike): number[] {\n const asArray = Array.isArray(x.borsh_bytes) ? (x.borsh_bytes as number[]) : undefined;\n if (asArray) return asArray;\n const asU8 = (x.borshBytes instanceof Uint8Array) ? x.borshBytes : undefined;\n return Array.from(asU8 || new Uint8Array());\n}\n","import type {\n ShamirApplyServerLockRequest,\n ShamirApplyServerLockResponse,\n ShamirRemoveServerLockRequest,\n ShamirRemoveServerLockResponse,\n} from './types';\nimport type { ShamirService } from './ShamirService';\nimport { isString } from '../../core/WalletIframe/validation';\n\nexport async function handleApplyServerLock(\n service: ShamirService,\n request: { body?: { kek_c_b64u?: string } },\n): Promise<{ status: number; headers: Record<string, string>; body: string }> {\n try {\n const kek_c_b64u = request.body?.kek_c_b64u;\n if (!isString(kek_c_b64u) || !kek_c_b64u) {\n return {\n status: 400,\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ error: 'kek_c_b64u required and must be a non-empty string' }),\n };\n }\n\n const out: ShamirApplyServerLockResponse = await service.applyServerLock(kek_c_b64u);\n const keyId = service.getCurrentShamirKeyId();\n\n return {\n status: 200,\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ ...out, keyId }),\n };\n } catch (e: any) {\n return {\n status: 500,\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ error: 'internal', details: e?.message }),\n };\n }\n}\n\nexport async function handleRemoveServerLock(\n service: ShamirService,\n request: { body?: { kek_cs_b64u?: string; keyId?: string } },\n): Promise<{ status: number; headers: Record<string, string>; body: string }> {\n try {\n const body = request.body;\n if (!body) {\n return {\n status: 400,\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ error: 'Missing body' }),\n };\n }\n const { kek_cs_b64u, keyId } = body;\n if (!isString(kek_cs_b64u) || !kek_cs_b64u) {\n return {\n status: 400,\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ error: 'kek_cs_b64u required and must be a non-empty string' }),\n };\n }\n if (!isString(keyId) || !keyId) {\n return {\n status: 400,\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ error: 'keyId required and must be a non-empty string' }),\n };\n }\n\n const providedKeyId = String(keyId);\n const currentKeyId = service.getCurrentShamirKeyId();\n let out: ShamirRemoveServerLockResponse;\n\n if (currentKeyId && providedKeyId === currentKeyId) {\n out = await service.removeServerLock(kek_cs_b64u);\n } else if (service.hasGraceKey(providedKeyId)) {\n out = await service.removeGraceServerLockWithKey(providedKeyId, { kek_cs_b64u } as ShamirRemoveServerLockRequest);\n } else {\n return {\n status: 400,\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ error: 'unknown keyId' }),\n };\n }\n\n return {\n status: 200,\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify(out),\n };\n } catch (e: any) {\n return {\n status: 500,\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ error: 'internal', details: e?.message }),\n };\n }\n}\n\nexport async function handleGetShamirKeyInfo(\n service: ShamirService,\n): Promise<{ status: number; headers: Record<string, string>; body: string }> {\n try {\n await service.ensureReady();\n const currentKeyId = service.getCurrentShamirKeyId();\n const graceKeyIds = service.getGraceKeyIds();\n\n return {\n status: 200,\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({\n currentKeyId,\n p_b64u: service.getShamirConfig()?.shamir_p_b64u ?? null,\n graceKeyIds,\n }),\n };\n } catch (e: any) {\n return {\n status: 500,\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ error: 'internal', details: e?.message }),\n };\n }\n}\n\nexport async function handleListGraceKeys(\n service: ShamirService,\n): Promise<{ status: number; headers: Record<string, string>; body: string }> {\n try {\n await service.ensureGraceKeysLoaded();\n return {\n status: 200,\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ graceKeyIds: service.getGraceKeyIds() }),\n };\n } catch (e: any) {\n return {\n status: 500,\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ error: 'internal', details: e?.message }),\n };\n }\n}\n\nexport async function handleAddGraceKey(\n service: ShamirService,\n request: { e_s_b64u?: string; d_s_b64u?: string },\n): Promise<{ status: number; headers: Record<string, string>; body: string }> {\n try {\n const { e_s_b64u, d_s_b64u } = request || ({} as any);\n if (!isString(e_s_b64u) || !e_s_b64u || !isString(d_s_b64u) || !d_s_b64u) {\n return {\n status: 400,\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ error: 'e_s_b64u and d_s_b64u required' }),\n };\n }\n\n await service.ensureGraceKeysLoaded();\n const added = await service.addGraceKeyInternal({ e_s_b64u, d_s_b64u }, { persist: true, skipIfExists: true });\n if (!added) {\n return {\n status: 400,\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ error: 'failed to add grace key' }),\n };\n }\n\n return {\n status: 200,\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ keyId: added.keyId }),\n };\n } catch (e: any) {\n return {\n status: 500,\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ error: 'internal', details: e?.message }),\n };\n }\n}\n\nexport async function handleRemoveGraceKey(\n service: ShamirService,\n request: { keyId?: string },\n): Promise<{ status: number; headers: Record<string, string>; body: string }> {\n try {\n const keyId = request?.keyId;\n if (!isString(keyId) || !keyId) {\n return {\n status: 400,\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ error: 'keyId required and must be a non-empty string' }),\n };\n }\n\n const removed = await service.removeGraceKeyInternal(keyId, { persist: true });\n return {\n status: 200,\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ removed }),\n };\n } catch (e: any) {\n return {\n status: 500,\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ error: 'internal', details: e?.message }),\n };\n }\n}\n","\nexport interface SessionConfig {\n jwt?: {\n /** Required: JWT signing hook; return a complete token */\n signToken?: (input: { header: Record<string, unknown>; payload: Record<string, unknown> }) => Promise<string> | string;\n /** Required: JWT verification hook */\n verifyToken?: (token: string) => Promise<{ valid: boolean; payload?: any }> | { valid: boolean; payload?: any };\n /** Optional: sliding refresh window (seconds) to allow /session/refresh before exp, default 900 (15 min) */\n refreshWindowSec?: number;\n /** Optional: build additional claims to include in the payload */\n buildClaims?: (input: { sub: string; context?: Record<string, unknown> }) => Promise<Record<string, unknown> | void> | Record<string, unknown> | void;\n };\n cookie?: {\n /** Cookie name. Default: 'w3a_session' */\n name?: string;\n /** Optional override: build Set-Cookie header for a new token */\n buildSetHeader?: (token: string) => string;\n /** Optional override: build Set-Cookie header that clears the cookie */\n buildClearHeader?: () => string;\n /** Optional override: extract token from headers (Authorization/Cookie) */\n extractToken?: (headers: Record<string, string | string[] | undefined>, cookieName: string) => string | null;\n };\n}\n\nexport class SessionService<TClaims = any> {\n private cfg: NonNullable<SessionConfig>;\n\n constructor(cfg: NonNullable<SessionConfig>) {\n this.cfg = cfg || ({} as any);\n }\n\n getCookieName(): string {\n return this.cfg?.cookie?.name || 'w3a_session';\n }\n\n buildSetCookie(token: string): string {\n if (this.cfg?.cookie?.buildSetHeader) return this.cfg.cookie.buildSetHeader(token);\n const name = this.getCookieName();\n const cookieParts = [`${name}=${token}`];\n const path = '/';\n const httpOnly = true;\n const secure = true; // default secure\n const sameSite = 'Lax';\n const maxAge = 24 * 3600; // 1 day default\n cookieParts.push(`Path=${path}`);\n if (httpOnly) cookieParts.push('HttpOnly');\n if (secure) cookieParts.push('Secure');\n if (sameSite) cookieParts.push(`SameSite=${sameSite}`);\n if (maxAge) {\n cookieParts.push(`Max-Age=${maxAge}`);\n const expires = new Date(Date.now() + (maxAge * 1000)).toUTCString();\n cookieParts.push(`Expires=${expires}`);\n }\n return cookieParts.join('; ');\n }\n\n buildClearCookie(): string {\n if (this.cfg?.cookie?.buildClearHeader) return this.cfg.cookie.buildClearHeader();\n const name = this.getCookieName();\n const path = '/';\n const secure = true;\n const httpOnly = true;\n const parts = [\n `${name}=`,\n `Path=${path}`,\n 'Max-Age=0',\n 'Expires=Thu, 01 Jan 1970 00:00:00 GMT'\n ];\n if (httpOnly) parts.push('HttpOnly');\n if (secure) parts.push('Secure');\n const sameSite = 'Lax';\n if (sameSite) parts.push(`SameSite=${sameSite}`);\n return parts.join('; ');\n }\n\n /** Sign a JWT with configured algorithm. Adds iat/exp and copies iss/aud. */\n async signJwt(sub: string, extraClaims?: Record<string, unknown>): Promise<string> {\n const jwt = this.cfg?.jwt || {};\n const built = await Promise.resolve(jwt.buildClaims?.({ sub, context: extraClaims })) || {};\n const payload = { sub, ...(extraClaims || {}), ...(built || {}) } as Record<string, unknown>;\n if (typeof jwt.signToken === 'function') {\n // Full override of signing: user supplies the complete token\n const token = await Promise.resolve(jwt.signToken({ header: { typ: 'JWT' }, payload } as any));\n return token;\n }\n throw new Error('SessionService: No JWT signing hook or provider configured');\n }\n\n /** Verify signature and expiration. Returns payload on success. */\n async verifyJwt(token: string): Promise<{ valid: boolean; payload?: any }> {\n const verify = this.cfg?.jwt?.verifyToken;\n if (typeof verify !== 'function') return { valid: false };\n return await Promise.resolve(verify(token));\n }\n\n parse(headers: Record<string, string | string[] | undefined>): Promise<{ ok: boolean; claims?: TClaims } | { ok: false }>{\n const authHeader = (headers['authorization'] || headers['Authorization']) as string | undefined;\n let token: string | null = null;\n if (authHeader && /^Bearer\\s+/.test(authHeader)) token = authHeader.replace(/^Bearer\\s+/i, '').trim();\n const cookieHeader = (headers['cookie'] || headers['Cookie']) as string | undefined;\n if (!token && cookieHeader) {\n const name = this.getCookieName();\n for (const part of cookieHeader.split(';')) {\n const [k, v] = part.split('=');\n if (k && k.trim() === name) { token = (v || '').trim(); break; }\n }\n }\n if (!token) return Promise.resolve({ ok: false });\n return this.verifyJwt(token).then(v => v.valid ? { ok: true, claims: v.payload as TClaims } : { ok: false });\n }\n\n // === token helpers ===\n extractTokenFromHeaders(headers: Record<string, string | string[] | undefined>): string | null {\n if (this.cfg?.cookie?.extractToken) return this.cfg.cookie.extractToken(headers, this.getCookieName());\n const authHeader = (headers['authorization'] || headers['Authorization']) as string | undefined;\n if (authHeader && /^Bearer\\s+/.test(authHeader)) return authHeader.replace(/^Bearer\\s+/i, '').trim();\n const cookieHeader = (headers['cookie'] || headers['Cookie']) as string | undefined;\n if (cookieHeader) {\n const name = this.getCookieName();\n for (const part of cookieHeader.split(';')) {\n const [k, v] = part.split('=');\n if (k && k.trim() === name) return (v || '').trim();\n }\n }\n return null;\n }\n\n async refresh(headers: Record<string, string | string[] | undefined>): Promise<{ ok: boolean; jwt?: string; code?: string; message?: string }>{\n try {\n const token = this.extractTokenFromHeaders(headers);\n if (!token) return { ok: false, code: 'unauthorized', message: 'No session token' };\n const v = await this.verifyJwt(token);\n if (!v.valid) return { ok: false, code: 'unauthorized', message: 'Invalid token' };\n const payload: any = v.payload || {};\n if (!this.isWithinRefreshWindow(payload)) return { ok: false, code: 'not_eligible', message: 'Not within refresh window' };\n const sub = String(payload.sub || '');\n if (!sub) return { ok: false, code: 'invalid_claims', message: 'Missing sub claim' };\n const next = await this.signJwt(sub);\n return { ok: true, jwt: next };\n } catch (e: any) {\n return { ok: false, code: 'internal', message: e?.message || 'Refresh failed' };\n }\n }\n\n nowSeconds(): number { return Math.floor(Date.now() / 1000); }\n\n private isWithinRefreshWindow(payload: any): boolean {\n try {\n const now = this.nowSeconds();\n const exp = Number(payload?.exp || 0);\n if (!exp || now >= exp) return false; // no refresh if already expired\n const windowSec = Number(this.cfg?.jwt?.refreshWindowSec || 15 * 60);\n return (exp - now) <= windowSec;\n } catch { return false; }\n }\n}\n\n/*\n * Utility: parse comma-separated list of origins into a normalized unique list\n * - canonicalizes to protocol + host + optional port\n * - lowercases host, strips path/query/hash, trims spaces/trailing slashes\n */\nexport function parseCsvList(input?: string): string[] {\n const out = new Set<string>();\n for (const raw of String(input || '').split(',')) {\n const s = raw.trim();\n if (!s) continue;\n try {\n const u = new URL(s);\n const host = u.hostname.toLowerCase();\n const port = u.port ? `:${u.port}` : '';\n const proto = u.protocol === 'http:' || u.protocol === 'https:' ? u.protocol : 'https:';\n out.add(`${proto}//${host}${port}`);\n } catch {\n const stripped = s.replace(/\\/$/, '');\n if (stripped) out.add(stripped);\n }\n }\n return Array.from(out);\n}\n\n/*\n * Utility: merge multiple CSV lists of origins and return normalized list or '*'\n */\nexport function buildCorsOrigins(...inputs: Array<string | undefined>): string[] | '*' {\n const merged = new Set<string>();\n for (const input of inputs) {\n for (const origin of parseCsvList(input)) merged.add(origin);\n }\n const list = Array.from(merged);\n return list.length > 0 ? list : '*';\n}\n","import { ZkEmailProverClient, type ZkEmailProverClientOptions, type ZkEmailProverError } from './proverClient';\n\nexport { ZkEmailProverClient } from './proverClient';\nexport type { ZkEmailProverClientOptions, ZkEmailProverError, ZkEmailProverResponse } from './proverClient';\n\nexport interface ForwardableEmailPayload {\n from: string;\n to: string;\n headers: Record<string, string>;\n raw?: string;\n rawSize?: number;\n}\n\nexport type NormalizedEmailResult =\n | { ok: true; payload: ForwardableEmailPayload }\n | { ok: false; code: string; message: string };\n\nexport interface GenerateZkEmailProofResult {\n proof: unknown;\n publicInputs: string[];\n}\n\nexport interface ParsedZkEmailBindings {\n accountId: string;\n newPublicKey: string;\n fromEmail: string;\n timestamp: string;\n requestId: string;\n}\n\n/**\n * Build a minimal ForwardableEmailPayload from a raw RFC822 email string.\n * This is primarily used by server-side helpers that receive only a raw\n * email blob (no pre-normalized headers).\n */\nexport function buildForwardablePayloadFromRawEmail(raw: string): ForwardableEmailPayload {\n const safeRaw = typeof raw === 'string' ? raw : '';\n const lines = safeRaw.split(/\\r?\\n/);\n\n const getHeader = (name: string): string | undefined => {\n const line = lines.find(l => new RegExp(`^${name}:`, 'i').test(l));\n if (!line) return undefined;\n const idx = line.indexOf(':');\n const rest = idx >= 0 ? line.slice(idx + 1) : '';\n const value = rest.trim();\n return value || undefined;\n };\n\n const fromHeader = getHeader('from') || 'unknown@zkemail.local';\n const toHeader = getHeader('to') || 'recover@zkemail.local';\n\n const headers: Record<string, string> = {};\n const subjectHeader = getHeader('subject');\n const dateHeader = getHeader('date');\n\n if (fromHeader) headers.from = fromHeader;\n if (toHeader) headers.to = toHeader;\n if (subjectHeader) headers.subject = subjectHeader;\n if (dateHeader) headers.date = dateHeader;\n\n return {\n from: fromHeader,\n to: toHeader,\n headers,\n raw: safeRaw,\n rawSize: safeRaw.length,\n };\n}\n\nexport function normalizeForwardableEmailPayload(input: unknown): NormalizedEmailResult {\n if (!input || typeof input !== 'object') {\n return { ok: false, code: 'invalid_email', message: 'JSON body required' };\n }\n\n const body = input as Partial<ForwardableEmailPayload>;\n const { from, to, headers, raw, rawSize } = body;\n\n if (!from || typeof from !== 'string' || !to || typeof to !== 'string') {\n return { ok: false, code: 'invalid_email', message: 'from and to are required' };\n }\n\n if (!headers || typeof headers !== 'object') {\n return { ok: false, code: 'invalid_email', message: 'headers object is required' };\n }\n\n const normalizedHeaders: Record<string, string> = {};\n for (const [k, v] of Object.entries(headers as Record<string, unknown>)) {\n normalizedHeaders[String(k).toLowerCase()] = String(v);\n }\n\n return {\n ok: true,\n payload: {\n from,\n to,\n headers: normalizedHeaders,\n raw: typeof raw === 'string' ? raw : undefined,\n rawSize: typeof rawSize === 'number' ? rawSize : undefined,\n },\n };\n}\n\n/**\n * Parse NEAR accountId from the Subject line inside a raw RFC822 email.\n *\n * Expected format (case-insensitive on \"Subject\" and \"recover\"):\n * Subject: recover-123ABC bob.testnet ed25519:<pk>\n *\n * Returns the parsed accountId (e.g. \"bob.testnet\") or null if not found.\n */\nexport function parseAccountIdFromSubject(raw: string | undefined | null): string | null {\n if (!raw || typeof raw !== 'string') return null;\n\n // Accept either a full RFC822 message (with \"Subject: ...\" header)\n // or a bare Subject value (\"recover-123ABC bob.testnet ed25519:<pk>\").\n let subjectText = '';\n const lines = raw.split(/\\r?\\n/);\n const subjectLine = lines.find(line => /^subject:/i.test(line));\n if (subjectLine) {\n const idx = subjectLine.indexOf(':');\n const restRaw = idx >= 0 ? subjectLine.slice(idx + 1) : '';\n subjectText = restRaw.trim();\n } else {\n subjectText = raw.trim();\n }\n\n if (!subjectText) return null;\n\n // Strip common reply/forward prefixes\n subjectText = subjectText.replace(/^(re|fwd):\\s*/i, '').trim();\n if (!subjectText) return null;\n\n // Strict format: \"recover-<request_id> <accountId> [ed25519:<pk>]\"\n const match = subjectText.match(\n /^recover-([A-Za-z0-9]{6})\\s+([^\\s]+)(?:\\s+ed25519:[^\\s]+)?\\s*$/i\n );\n if (match?.[2]) {\n return match[2];\n }\n\n return null;\n}\n\nfunction parseSubjectBindings(\n rawSubject: string | undefined | null\n): { accountId: string; newPublicKey: string; requestId: string } | null {\n if (!rawSubject || typeof rawSubject !== 'string') return null;\n\n const lines = rawSubject.split(/\\r?\\n/);\n let subjectText = '';\n const subjectLine = lines.find(line => /^subject:/i.test(line));\n if (subjectLine) {\n const idx = subjectLine.indexOf(':');\n const restRaw = idx >= 0 ? subjectLine.slice(idx + 1) : '';\n subjectText = restRaw.trim();\n } else {\n subjectText = rawSubject.trim();\n }\n if (!subjectText) return null;\n\n subjectText = subjectText.replace(/^(re|fwd):\\s*/i, '').trim();\n if (!subjectText) return null;\n\n // Strict format:\n // \"recover-<request_id> <accountId> ed25519:<pk>\"\n const match = subjectText.match(\n /^recover-([A-Za-z0-9]{6})\\s+([^\\s]+)\\s+ed25519:([^\\s]+)\\s*$/i\n );\n if (!match) return null;\n\n const [, requestId, accountId, newPublicKey] = match;\n\n return {\n accountId,\n newPublicKey,\n requestId,\n };\n}\n\nexport function extractZkEmailBindingsFromPayload(\n payload: ForwardableEmailPayload\n): ParsedZkEmailBindings | null {\n const raw = payload.raw || '';\n const lines = raw.split(/\\r?\\n/);\n\n const subjectLine = lines.find(line => /^subject:/i.test(line));\n const subjectBindings = parseSubjectBindings(subjectLine ?? '');\n if (!subjectBindings) {\n return null;\n }\n\n const headers = payload.headers || {};\n let fromEmailRaw: string | undefined =\n (headers['from'] as any) ||\n (headers['x-from-email'] as any);\n let dateRaw: string | undefined =\n (headers['date'] as any) ||\n (headers['x-original-date'] as any);\n\n // Fallback: if headers object does not contain from/date,\n // attempt to parse them from the raw RFC822 email lines.\n if (!fromEmailRaw || !dateRaw) {\n for (const line of lines) {\n if (!fromEmailRaw && /^from:/i.test(line)) {\n const idx = line.indexOf(':');\n fromEmailRaw = idx >= 0 ? line.slice(idx + 1).trim() : '';\n }\n if (!dateRaw && /^date:/i.test(line)) {\n const idx = line.indexOf(':');\n dateRaw = idx >= 0 ? line.slice(idx + 1).trim() : '';\n }\n if (fromEmailRaw && dateRaw) break;\n }\n }\n\n const fromEmail = String(fromEmailRaw || '').trim();\n const timestamp = String(dateRaw || '').trim();\n\n if (!fromEmail || !timestamp) {\n return null;\n }\n\n return {\n accountId: subjectBindings.accountId,\n newPublicKey: subjectBindings.newPublicKey,\n fromEmail,\n timestamp,\n requestId: subjectBindings.requestId,\n };\n}\n\nexport async function generateZkEmailProofFromPayload(\n payload: ForwardableEmailPayload,\n prover: ZkEmailProverClientOptions | ZkEmailProverClient\n): Promise<GenerateZkEmailProofResult> {\n if (!payload.raw || typeof payload.raw !== 'string') {\n const err: ZkEmailProverError = Object.assign(\n new Error('raw email contents are required to generate a zk-email proof'),\n { code: 'missing_raw_email' }\n );\n throw err;\n }\n\n const client =\n (prover && typeof (prover as any).proveEmail === 'function')\n ? (prover as ZkEmailProverClient)\n : new ZkEmailProverClient(prover as ZkEmailProverClientOptions);\n\n const res = await client.proveEmail(payload.raw);\n\n return {\n proof: res.proof,\n publicInputs: res.publicSignals,\n };\n}\n","import type { EmailRecoveryMode } from './types';\nimport { normalizeForwardableEmailPayload, parseAccountIdFromSubject } from './zkEmail';\nimport { ensureEd25519Prefix } from '../../core/nearCrypto';\n\nexport enum EmailRecoveryModeHint {\n ZkEmail = 'zk-email',\n TeeEncrypted = 'tee-encrypted',\n OnchainPublic = 'onchain-public',\n}\n\nexport function normalizeRecoveryMode(raw: string | undefined | null): EmailRecoveryMode | null {\n if (!raw) return null;\n const value = raw.trim().toLowerCase();\n if (value === EmailRecoveryModeHint.ZkEmail) return 'zk-email';\n if (value === EmailRecoveryModeHint.TeeEncrypted) return 'tee-encrypted';\n if (value === EmailRecoveryModeHint.OnchainPublic) return 'onchain-public';\n return null;\n}\n\nexport function extractRecoveryModeFromBody(emailBlob?: string): EmailRecoveryMode | null {\n if (!emailBlob) return null;\n\n const lines = emailBlob.split(/\\r?\\n/);\n const bodyStartIndex = lines.findIndex(line => line.trim() === '');\n if (bodyStartIndex === -1) return null;\n\n const bodyLines = lines.slice(bodyStartIndex + 1);\n const firstNonEmptyBodyLine = bodyLines.find(line => line.trim() !== '');\n if (!firstNonEmptyBodyLine) return null;\n\n const candidate = firstNonEmptyBodyLine.trim();\n const normalized = normalizeRecoveryMode(candidate);\n if (normalized) return normalized;\n\n const lower = candidate.toLowerCase();\n if (lower.includes(EmailRecoveryModeHint.ZkEmail)) return 'zk-email';\n if (lower.includes(EmailRecoveryModeHint.TeeEncrypted)) return 'tee-encrypted';\n if (lower.includes(EmailRecoveryModeHint.OnchainPublic)) return 'onchain-public';\n\n return null;\n}\n\ntype HeaderValue = string | string[] | undefined;\ntype HeadersLike = Headers | Record<string, HeaderValue> | undefined;\n\nexport type RecoverEmailParseResult =\n | { ok: true; accountId: string; emailBlob: string; explicitMode?: string }\n | { ok: false; status: number; code: string; message: string };\n\nfunction getHeader(headers: HeadersLike, name: string): string | undefined {\n if (!headers) return undefined;\n\n const maybeHeaders = headers as any;\n if (typeof maybeHeaders.get === 'function') {\n const v = maybeHeaders.get(name);\n return (typeof v === 'string') ? v : undefined;\n }\n\n const record = headers as Record<string, HeaderValue>;\n const v = record[name.toLowerCase()] ?? record[name];\n if (Array.isArray(v)) return (typeof v[0] === 'string') ? v[0] : undefined;\n return (typeof v === 'string') ? v : undefined;\n}\n\nfunction parseExplicitMode(body: unknown, headers?: HeadersLike): string | undefined {\n const modeFromBody =\n (typeof (body as any)?.explicitMode === 'string' ? String((body as any).explicitMode) : '') ||\n (typeof (body as any)?.explicit_mode === 'string' ? String((body as any).explicit_mode) : '');\n const modeFromHeader = getHeader(headers, 'x-email-recovery-mode') || getHeader(headers, 'x-recovery-mode') || '';\n const raw = (modeFromBody || modeFromHeader).trim();\n return raw ? raw : undefined;\n}\n\nexport function parseRecoverEmailRequest(body: unknown, opts: { headers?: HeadersLike } = {}): RecoverEmailParseResult {\n const explicitMode = parseExplicitMode(body, opts.headers);\n\n const normalized = normalizeForwardableEmailPayload(body);\n if (!normalized.ok) {\n return { ok: false, status: 400, code: normalized.code, message: normalized.message };\n }\n\n const payload = normalized.payload;\n const emailBlob = payload.raw || '';\n const emailHeaders = payload.headers || {};\n\n const subjectHeader = emailHeaders['subject'];\n const parsedAccountId = parseAccountIdFromSubject(subjectHeader || emailBlob);\n const headerAccountId = String(emailHeaders['x-near-account-id'] || emailHeaders['x-account-id'] || '').trim();\n const accountId = (parsedAccountId || headerAccountId || '').trim();\n\n if (!accountId) {\n return { ok: false, status: 400, code: 'missing_account', message: 'x-near-account-id header is required' };\n }\n if (!emailBlob) {\n return { ok: false, status: 400, code: 'missing_email', message: 'raw email blob is required' };\n }\n\n return { ok: true, accountId, emailBlob, explicitMode };\n}\n\nconst EMAIL_ADDRESS_REGEX =\n /([a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\\.[a-zA-Z0-9-]+)*)/;\n\nexport function canonicalizeEmail(input: string): string {\n const raw = String(input || '').trim();\n if (!raw) return '';\n\n // Handle cases where a full header line is passed in (e.g. \"From: ...\").\n const withoutHeaderName = raw.replace(/^[a-z0-9-]+\\s*:\\s*/i, '').trim();\n\n // Prefer the common \"Name <email@domain>\" format when present, but still\n // validate/extract the actual address via regex.\n const angleMatch = withoutHeaderName.match(/<([^>]+)>/);\n const candidates = [\n angleMatch?.[1],\n withoutHeaderName,\n ].filter((v): v is string => typeof v === 'string' && v.length > 0);\n\n for (const candidate of candidates) {\n const cleaned = candidate.replace(/^mailto:\\s*/i, '');\n const match = cleaned.match(EMAIL_ADDRESS_REGEX);\n if (match?.[1]) {\n return match[1].trim().toLowerCase();\n }\n }\n\n return withoutHeaderName.toLowerCase();\n}\n\nexport function parseHeaderValue(rawEmail: string, name: string): string | undefined {\n try {\n const raw = String(rawEmail || '');\n if (!raw) return undefined;\n\n const lines = raw.split(/\\r?\\n/);\n const headerLines: string[] = [];\n\n // Only consider the header section (until the first blank line).\n for (const line of lines) {\n if (line.trim() === '') break;\n\n // RFC822 header folding: lines starting with whitespace continue previous header.\n if (/^\\s/.test(line) && headerLines.length > 0) {\n headerLines[headerLines.length - 1] += ` ${line.trim()}`;\n continue;\n }\n\n headerLines.push(line);\n }\n\n const headerName = name.trim();\n if (!headerName) return undefined;\n\n const re = new RegExp(`^${headerName.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&')}\\\\s*:`, 'i');\n const found = headerLines.find((l) => re.test(l));\n if (!found) return undefined;\n\n const idx = found.indexOf(':');\n const value = idx >= 0 ? found.slice(idx + 1).trim() : '';\n return value || undefined;\n } catch {\n return undefined;\n }\n}\n\nexport function parseRecoverSubjectBindings(\n rawEmail: string\n): { requestId: string; accountId: string; newPublicKey: string } | null {\n // Accept either a full RFC822 email or a bare Subject value.\n let subjectText = (parseHeaderValue(rawEmail, 'subject') || String(rawEmail || '')).trim();\n if (!subjectText) return null;\n\n // Strip common reply/forward prefixes.\n subjectText = subjectText.replace(/^(re|fwd):\\s*/i, '').trim();\n if (!subjectText) return null;\n\n // Strict format:\n // \"recover-<request_id> <accountId> ed25519:<pk>\"\n const match = subjectText.match(\n /^recover-([A-Za-z0-9]{6})\\s+([^\\s]+)\\s+ed25519:([^\\s]+)\\s*$/i\n );\n if (!match) return null;\n\n const [, requestId, accountId, newPublicKey] = match;\n return { requestId, accountId, newPublicKey: ensureEd25519Prefix(newPublicKey) };\n}\n","export type Logger = {\n debug?: (...args: unknown[]) => void;\n info?: (...args: unknown[]) => void;\n warn?: (...args: unknown[]) => void;\n error?: (...args: unknown[]) => void;\n log?: (...args: unknown[]) => void;\n};\n\nexport type NormalizedLogger = {\n debug: (...args: unknown[]) => void;\n info: (...args: unknown[]) => void;\n warn: (...args: unknown[]) => void;\n error: (...args: unknown[]) => void;\n};\n\nfunction safe(fn?: (...args: unknown[]) => void): (...args: unknown[]) => void {\n if (!fn) return () => {};\n return (...args: unknown[]) => {\n try {\n fn(...args);\n } catch {\n // Never allow logging to break request handling.\n }\n };\n}\n\n/**\n * Library code should never call `console.*` directly; the host decides where logs go.\n * - Default: no logs\n * - To enable: pass `logger: console` (or a structured logger) to the host config.\n */\nexport function normalizeLogger(logger?: Logger | null): NormalizedLogger {\n if (!logger) {\n return { debug: () => {}, info: () => {}, warn: () => {}, error: () => {} };\n }\n\n const base: Logger = logger;\n const log = typeof base.log === 'function' ? base.log.bind(base) : undefined;\n\n const debug = (typeof base.debug === 'function' ? base.debug.bind(base) : log);\n const info = (typeof base.info === 'function' ? base.info.bind(base) : log);\n const warn = (typeof base.warn === 'function' ? base.warn.bind(base) : log);\n const error = (typeof base.error === 'function' ? base.error.bind(base) : log);\n\n return {\n debug: safe(debug),\n info: safe(info),\n warn: safe(warn),\n error: safe(error),\n };\n}\n\n","import type { Logger, NormalizedLogger } from '../core/logger';\nimport { normalizeLogger } from '../core/logger';\n\nexport type RouterLogger = Logger;\nexport type NormalizedRouterLogger = NormalizedLogger;\nexport const normalizeRouterLogger = normalizeLogger;\n","import type { AuthService } from '../core/AuthService';\nimport {\n handleApplyServerLock,\n handleRemoveServerLock,\n handleGetShamirKeyInfo,\n} from '../core/shamirHandlers';\nimport { buildCorsOrigins } from '../core/SessionService';\nimport type { SessionAdapter } from './express-adaptor';\nimport type { CreateAccountAndRegisterRequest } from '../core/types';\nimport { parseRecoverEmailRequest } from '../email-recovery/emailParsers';\nimport type { DelegateActionPolicy } from '../delegateAction';\nimport type { RouterLogger } from './logger';\nimport { normalizeRouterLogger } from './logger';\n\nexport interface RelayRouterOptions {\n healthz?: boolean;\n readyz?: boolean;\n // Optional list(s) of CORS origins (CSV strings or literal origins).\n // Pass raw strings; the router normalizes/merges internally.\n corsOrigins?: Array<string | undefined>;\n /**\n * Optional route for submitting NEP-461 SignedDelegate meta-transactions.\n *\n * - When omitted: disabled.\n * - When set: enabled at `route`.\n *\n * `policy` is server-controlled and is never read from the request body.\n */\n signedDelegate?: {\n route: string;\n policy?: DelegateActionPolicy;\n };\n // Optional: customize session route paths\n sessionRoutes?: { auth?: string; logout?: string };\n // Optional: pluggable session adapter\n session?: SessionAdapter | null;\n // Optional logger; defaults to silent.\n logger?: RouterLogger | null;\n}\n\n// Minimal Worker runtime types (avoid adding @cloudflare/workers-types dependency here)\nexport interface CfEnv {\n // Optional env overrides for `/.well-known/webauthn` (ROR origins list).\n //\n // Note: Do not add an index signature here. Cloudflare env bindings can include\n // KV namespaces, Durable Objects, etc., and requiring `[key: string]: string`\n // makes real-world `Env` types not assignable.\n ROR_CONTRACT_ID?: string;\n WEBAUTHN_CONTRACT_ID?: string;\n ROR_METHOD?: string;\n}\n\n/**\n * Convenience env shape matching the `examples/relay-cloudflare-worker` configuration.\n * This is optional — you can define your own `Env` type with different binding names.\n */\nexport interface RelayCloudflareWorkerEnv {\n RELAYER_ACCOUNT_ID: string;\n RELAYER_PRIVATE_KEY: string;\n // Optional overrides (SDK provides defaults when omitted)\n NEAR_RPC_URL?: string;\n NETWORK_ID?: string;\n WEBAUTHN_CONTRACT_ID: string;\n ACCOUNT_INITIAL_BALANCE?: string;\n CREATE_ACCOUNT_AND_REGISTER_GAS?: string;\n ZK_EMAIL_PROVER_BASE_URL?: string;\n ZK_EMAIL_PROVER_TIMEOUT_MS?: string;\n SHAMIR_P_B64U: string;\n SHAMIR_E_S_B64U: string;\n SHAMIR_D_S_B64U: string;\n EXPECTED_ORIGIN?: string;\n EXPECTED_WALLET_ORIGIN?: string;\n ENABLE_ROTATION?: string;\n RECOVER_EMAIL_RECIPIENT?: string;\n}\n\nexport interface CfExecutionContext {\n waitUntil(promise: Promise<unknown>): void;\n passThroughOnException(): void\n}\nexport interface CfScheduledEvent {\n scheduledTime?: number;\n cron?: string\n}\nexport interface CfEmailMessage {\n from: string;\n to: string;\n // Cloudflare uses `Headers`, but keep this flexible for userland tests.\n headers: Headers | Iterable<[string, string]> | Record<string, string>;\n raw: ReadableStream | ArrayBuffer | string;\n rawSize?: number;\n setReject(reason: string): void;\n}\n\nexport type FetchHandler = (request: Request, env?: CfEnv, ctx?: CfExecutionContext) => Promise<Response>;\nexport type ScheduledHandler = (event: CfScheduledEvent, env?: CfEnv, ctx?: CfExecutionContext) => Promise<void>;\nexport type EmailHandler = (message: CfEmailMessage, env?: CfEnv, ctx?: CfExecutionContext) => Promise<void>;\n\nfunction normalizePath(path: string): string {\n const trimmed = String(path || '').trim();\n if (!trimmed) return '';\n return trimmed.startsWith('/') ? trimmed : `/${trimmed}`;\n}\n\nfunction json(body: unknown, init?: ResponseInit, extraHeaders?: Record<string, string>): Response {\n const headers = new Headers({ 'Content-Type': 'application/json; charset=utf-8' });\n\n // Merge init.headers into our base headers (ResponseInit headers are otherwise overwritten).\n const initHeaders = (init as any)?.headers as HeadersInit | undefined;\n if (initHeaders) {\n try {\n new Headers(initHeaders).forEach((v, k) => headers.set(k, v));\n } catch { }\n }\n\n if (extraHeaders) {\n for (const [k, v] of Object.entries(extraHeaders)) headers.set(k, v);\n }\n\n const { headers: _omit, ...rest } = init || {};\n return new Response(JSON.stringify(body), { status: 200, ...rest, headers });\n}\n\nfunction withCors(headers: Headers, opts?: RelayRouterOptions, request?: Request): void {\n if (!opts?.corsOrigins) return;\n let allowedOrigin: string | '*' | undefined;\n const normalized = buildCorsOrigins(...(opts.corsOrigins || []));\n if (normalized === '*') {\n allowedOrigin = '*';\n headers.set('Access-Control-Allow-Origin', '*');\n } else if (Array.isArray(normalized)) {\n const origin = request?.headers.get('Origin') || '';\n if (origin && normalized.includes(origin)) {\n allowedOrigin = origin;\n headers.set('Access-Control-Allow-Origin', origin);\n headers.append('Vary', 'Origin');\n }\n }\n headers.set('Access-Control-Allow-Methods', 'GET,POST,OPTIONS');\n headers.set('Access-Control-Allow-Headers', 'Content-Type,Authorization');\n // Only advertise credentials when we echo back a specific origin (not '*')\n if (allowedOrigin && allowedOrigin !== '*') {\n headers.set('Access-Control-Allow-Credentials', 'true');\n }\n}\n\nfunction normalizeEmailAddress(input: string): string {\n const trimmed = String(input || '').trim();\n const angleStart = trimmed.indexOf('<');\n const angleEnd = trimmed.indexOf('>');\n if (angleStart !== -1 && angleEnd > angleStart) {\n return trimmed.slice(angleStart + 1, angleEnd).trim().toLowerCase();\n }\n return trimmed.toLowerCase();\n}\n\nfunction normalizeRejectReason(input: unknown): string {\n return String(input || '')\n .replace(/[\\r\\n]+/g, ' ')\n .replace(/\\s+/g, ' ')\n .trim();\n}\n\nfunction toLowercaseHeaderRecord(input: unknown): Record<string, string> {\n const out: Record<string, string> = {};\n if (!input) return out;\n\n const maybeHeaders = input as any;\n if (typeof maybeHeaders.forEach === 'function') {\n try {\n maybeHeaders.forEach((v: unknown, k: unknown) => {\n out[String(k).toLowerCase()] = String(v);\n });\n return out;\n } catch { }\n }\n\n if (typeof maybeHeaders[Symbol.iterator] === 'function') {\n try {\n for (const entry of maybeHeaders as Iterable<unknown>) {\n if (!Array.isArray(entry)) continue;\n const [k, v] = entry as any[];\n out[String(k).toLowerCase()] = String(v);\n }\n return out;\n } catch { }\n }\n\n if (typeof input === 'object') {\n for (const [k, v] of Object.entries(input as Record<string, unknown>)) {\n out[String(k).toLowerCase()] = String(v);\n }\n }\n\n return out;\n}\n\nasync function buildForwardableEmailPayloadFromCloudflareMessage(message: CfEmailMessage): Promise<{\n from: string;\n to: string;\n headers: Record<string, string>;\n raw: string;\n rawSize?: number;\n}> {\n const from = String(message?.from || '');\n const to = String(message?.to || '');\n const headers = toLowercaseHeaderRecord((message as any)?.headers);\n\n let raw = '';\n try {\n raw = await new Response((message as any)?.raw).text();\n } catch { }\n\n const rawSize = typeof (message as any)?.rawSize === 'number' ? (message as any).rawSize : undefined;\n\n return { from, to, headers, raw, rawSize };\n}\n\nexport interface CloudflareEmailHandlerOptions {\n /**\n * Optional recipient allowlist for emails processed by this handler (case-insensitive).\n * If unset, any `to` is accepted.\n */\n expectedRecipient?: string;\n /**\n * If true (default), unexpected recipients only log a warning (Cloudflare routing\n * is usually already scoped). If false, the handler rejects the email.\n */\n allowUnexpectedRecipient?: boolean;\n /**\n * When true, logs email metadata (from/to/subject). Defaults to false.\n */\n verbose?: boolean;\n // Optional logger; defaults to silent.\n logger?: RouterLogger | null;\n}\n\nexport function createCloudflareEmailHandler(service: AuthService, opts: CloudflareEmailHandlerOptions = {}): EmailHandler {\n const logger = normalizeRouterLogger(opts.logger);\n const expectedRecipient = normalizeEmailAddress(opts.expectedRecipient || '');\n const allowUnexpectedRecipient = opts.allowUnexpectedRecipient !== false;\n const verbose = Boolean(opts.verbose);\n\n return async (message: CfEmailMessage): Promise<void> => {\n try {\n const payload = await buildForwardableEmailPayloadFromCloudflareMessage(message);\n\n const to = normalizeEmailAddress(payload.to);\n if (expectedRecipient) {\n if (to !== expectedRecipient) {\n logger.warn('[email] unexpected recipient', { to, expectedRecipient });\n if (!allowUnexpectedRecipient) {\n message.setReject('Email recovery relayer rejected email: unexpected recipient');\n return;\n }\n }\n }\n\n if (verbose) {\n logger.info('[email] from/to', { from: payload.from, to: payload.to, subject: payload.headers['subject'] });\n }\n\n const parsed = parseRecoverEmailRequest(payload as any, { headers: payload.headers });\n if (!parsed.ok) {\n logger.warn('[email] rejecting', { code: parsed.code, message: parsed.message });\n message.setReject(`Email recovery relayer rejected email: ${parsed.message}`);\n return;\n }\n\n if (!service.emailRecovery) {\n logger.warn('[email] rejecting: EmailRecoveryService not configured');\n message.setReject('Email recovery relayer rejected email: email recovery service unavailable');\n return;\n }\n\n const result = await service.emailRecovery.requestEmailRecovery({\n accountId: parsed.accountId,\n emailBlob: parsed.emailBlob,\n explicitMode: parsed.explicitMode,\n });\n\n if (!result?.success) {\n logger.warn('[email] recovery failed', {\n accountId: parsed.accountId,\n error: result?.error || 'unknown',\n message: result?.message,\n });\n const reason = normalizeRejectReason(result?.message || result?.error || 'recovery failed');\n message.setReject(`Email recovery relayer rejected email: ${reason}`);\n return;\n }\n\n logger.info('[email] recovery submitted', { accountId: parsed.accountId });\n } catch (e: any) {\n logger.error('[email] internal error', { message: e?.message || String(e) });\n message.setReject('Email recovery relayer rejected email: internal error');\n }\n };\n}\n\nexport function createCloudflareRouter(service: AuthService, opts: RelayRouterOptions = {}): FetchHandler {\n const notFound = () => new Response('Not Found', { status: 404 });\n const mePath = opts.sessionRoutes?.auth || '/session/auth';\n const logoutPath = opts.sessionRoutes?.logout || '/session/logout';\n const logger = normalizeRouterLogger(opts.logger);\n const signedDelegatePath = (() => {\n if (!opts.signedDelegate) return '';\n const raw = String(opts.signedDelegate.route || '').trim();\n if (!raw) throw new Error('RelayRouterOptions.signedDelegate.route is required');\n return normalizePath(raw);\n })();\n const signedDelegatePolicy = opts.signedDelegate?.policy;\n\n return async function handler(request: Request, env?: CfEnv, ctx?: CfExecutionContext): Promise<Response> {\n const url = new URL(request.url);\n const { pathname } = url;\n const method = request.method.toUpperCase();\n\n // Preflight CORS\n if (method === 'OPTIONS') {\n const res = new Response(null, { status: 204 });\n withCors(res.headers, opts, request);\n return res;\n }\n\n // Helper to adapt AuthService HTTP-like handlers to Response\n const toResponse = (out: { status: number; headers: Record<string, string>; body: string }) => {\n const res = new Response(out.body, { status: out.status, headers: out.headers });\n withCors(res.headers, opts, request);\n return res;\n };\n\n const isObject = (v: unknown): v is Record<string, unknown> => typeof v === 'object' && v !== null;\n\n try {\n // ROR well-known manifest; allow override via env (optional)\n if (method === 'GET' && (pathname === '/.well-known/webauthn' || pathname === '/.well-known/webauthn/')) {\n const contractId = (env?.ROR_CONTRACT_ID || env?.WEBAUTHN_CONTRACT_ID || '').toString().trim() || undefined;\n const methodName = (env?.ROR_METHOD || '').toString().trim() || undefined;\n const origins = await service.getRorOrigins({ contractId, method: methodName });\n const res = json({ origins }, { status: 200, headers: { 'Cache-Control': 'max-age=60, stale-while-revalidate=600' } });\n withCors(res.headers, opts, request);\n return res;\n }\n\n if (method === 'POST' && pathname === '/create_account_and_register_user') {\n let body: unknown;\n try { body = await request.json(); } catch { body = null; }\n if (!isObject(body)) {\n const res = json({ code: 'invalid_body', message: 'JSON body required' }, { status: 400 });\n withCors(res.headers, opts, request);\n return res;\n }\n\n const new_account_id = typeof body.new_account_id === 'string' ? body.new_account_id : '';\n const new_public_key = typeof body.new_public_key === 'string' ? body.new_public_key : '';\n const vrf_data = isObject(body.vrf_data) ? body.vrf_data : null;\n const webauthn_registration = isObject(body.webauthn_registration) ? body.webauthn_registration : null;\n const deterministic_vrf_public_key = (body as Record<string, unknown>).deterministic_vrf_public_key;\n const authenticator_options = isObject((body as Record<string, unknown>).authenticator_options)\n ? (body as Record<string, unknown>).authenticator_options\n : undefined;\n\n if (!new_account_id) {\n const res = json({ code: 'invalid_body', message: 'Missing or invalid new_account_id' }, { status: 400 });\n withCors(res.headers, opts, request);\n return res;\n }\n if (!new_public_key) {\n const res = json({ code: 'invalid_body', message: 'Missing or invalid new_public_key' }, { status: 400 });\n withCors(res.headers, opts, request);\n return res;\n }\n if (!vrf_data) {\n const res = json({ code: 'invalid_body', message: 'Missing or invalid vrf_data' }, { status: 400 });\n withCors(res.headers, opts, request);\n return res;\n }\n if (!webauthn_registration) {\n const res = json({ code: 'invalid_body', message: 'Missing or invalid webauthn_registration' }, { status: 400 });\n withCors(res.headers, opts, request);\n return res;\n }\n\n const input = {\n new_account_id,\n new_public_key,\n vrf_data,\n webauthn_registration,\n deterministic_vrf_public_key,\n authenticator_options,\n } as unknown as CreateAccountAndRegisterRequest;\n\n const result = await service.createAccountAndRegisterUser(input);\n const res = json(result, { status: result.success ? 200 : 400 });\n withCors(res.headers, opts, request);\n return res;\n }\n\n // SignedDelegate meta-tx submission (optional)\n if (signedDelegatePath && pathname === signedDelegatePath) {\n if (method === 'OPTIONS') {\n const res = new Response(null, { status: 204 });\n withCors(res.headers, opts, request);\n return res;\n }\n if (method !== 'POST') return notFound();\n\n let body: unknown;\n try { body = await request.json(); } catch { body = null; }\n const valid = isObject(body) && typeof (body as any).hash === 'string' && Boolean((body as any).hash) && Boolean((body as any).signedDelegate);\n if (!valid) {\n const res = json({ ok: false, code: 'invalid_body', message: 'Expected { hash, signedDelegate }' }, { status: 400 });\n withCors(res.headers, opts, request);\n return res;\n }\n\n const result = await service.executeSignedDelegate({\n hash: String((body as any).hash),\n signedDelegate: (body as any).signedDelegate,\n policy: signedDelegatePolicy,\n });\n\n if (!result || !result.ok) {\n const res = json({\n ok: false,\n code: result?.code || 'delegate_execution_failed',\n message: result?.error || 'Failed to execute delegate action',\n }, { status: 400 });\n withCors(res.headers, opts, request);\n return res;\n }\n\n const res = json({\n ok: true,\n relayerTxHash: result.transactionHash || null,\n status: 'submitted',\n outcome: result.outcome ?? null,\n }, { status: 200 });\n withCors(res.headers, opts, request);\n return res;\n }\n\n if (method === 'POST' && pathname === '/vrf/apply-server-lock') {\n const shamir = service.shamirService;\n if (!shamir || !(await shamir.ensureReady())) {\n const res = json({ code: 'shamir_disabled', message: 'Shamir 3-pass is not configured on this server' }, { status: 503 });\n withCors(res.headers, opts, request);\n return res;\n }\n let body: unknown; try { body = await request.json(); } catch { body = null; }\n const valid = isObject(body) && typeof body.kek_c_b64u === 'string' && body.kek_c_b64u.length > 0;\n if (!valid) {\n const res = json({ code: 'invalid_body', message: 'kek_c_b64u is required' }, { status: 400 });\n withCors(res.headers, opts, request);\n return res;\n }\n const out = await handleApplyServerLock(shamir, {\n body: { kek_c_b64u: String((body as Record<string, unknown>).kek_c_b64u) },\n });\n return toResponse(out);\n }\n\n if (method === 'POST' && pathname === '/verify-authentication-response') {\n let body: unknown; try { body = await request.json(); } catch { body = null; }\n const valid = isObject(body)\n && isObject((body as any).vrf_data)\n && isObject((body as any).webauthn_authentication);\n if (!valid) {\n const res = json({ code: 'invalid_body', message: 'vrf_data and webauthn_authentication are required' }, { status: 400 });\n withCors(res.headers, opts, request);\n return res;\n }\n try {\n const sessionKind = ((body as any)?.sessionKind || (body as any)?.session_kind) === 'cookie' ? 'cookie' : 'jwt';\n const result = await service.verifyAuthenticationResponse(body as any);\n const status = result.success ? 200 : 400;\n if (status !== 200) {\n const res = json({ code: 'not_verified', message: result.message || 'Authentication verification failed' }, { status });\n withCors(res.headers, opts, request);\n return res;\n }\n const res = json(result, { status: 200 });\n const session = opts.session;\n if (session && result.verified) {\n try {\n const userId = String((body as any).vrf_data?.user_id || '');\n const token = await session.signJwt(userId, { rpId: (body as any).vrf_data?.rp_id, blockHeight: (body as any).vrf_data?.block_height });\n logger.info(`[relay] creating ${sessionKind === 'cookie' ? 'HttpOnly session' : 'JWT'} for`, userId);\n if (sessionKind === 'cookie') {\n res.headers.set('Set-Cookie', session.buildSetCookie(token));\n } else {\n const payload = await res.clone().json();\n return new Response(JSON.stringify({ ...payload, jwt: token }), { status: 200, headers: res.headers });\n }\n } catch {}\n }\n withCors(res.headers, opts, request);\n return res;\n } catch (e: any) {\n const res = json({ code: 'internal', message: e?.message || 'Internal error' }, { status: 500 });\n withCors(res.headers, opts, request);\n return res;\n }\n }\n\n if (method === 'GET' && pathname === mePath) {\n try {\n const headersObj: Record<string, string> = {};\n request.headers.forEach((v, k) => { headersObj[k] = v; });\n const session = opts.session;\n if (!session) {\n const res = json({ authenticated: false, code: 'sessions_disabled', message: 'Sessions are not configured' }, { status: 501 });\n withCors(res.headers, opts, request);\n return res;\n }\n const parsed = await session.parse(headersObj);\n const res = json(parsed.ok ? { authenticated: true, claims: (parsed as any).claims } : { authenticated: false }, { status: parsed.ok ? 200 : 401 });\n withCors(res.headers, opts, request);\n return res;\n } catch (e: any) {\n const res = json({ authenticated: false, code: 'internal', message: e?.message || 'Internal error' }, { status: 500 });\n withCors(res.headers, opts, request);\n return res;\n }\n }\n\n if (method === 'POST' && pathname === logoutPath) {\n const res = json({ success: true }, { status: 200 });\n const session = opts.session;\n if (session) {\n // Clear cookie with Max-Age=0\n res.headers.set('Set-Cookie', session.buildClearCookie());\n }\n withCors(res.headers, opts, request);\n return res;\n }\n\n if (method === 'POST' && pathname === '/session/refresh') {\n let body: unknown; try { body = await request.json(); } catch { body = null; }\n const sessionKind = ((body as any)?.sessionKind || (body as any)?.session_kind) === 'cookie' ? 'cookie' : 'jwt';\n const session = opts.session;\n if (!session) {\n const res = json({ code: 'sessions_disabled', message: 'Sessions are not configured' }, { status: 501 });\n withCors(res.headers, opts, request);\n return res;\n }\n const out = await session.refresh(Object.fromEntries(request.headers.entries()));\n if (!out.ok || !out.jwt) {\n const res = json({ code: out.code || 'not_eligible', message: out.message || 'Refresh not eligible' }, { status: (out.code === 'unauthorized') ? 401 : 400 });\n withCors(res.headers, opts, request);\n return res;\n }\n const res = json(sessionKind === 'cookie' ? { ok: true } : { ok: true, jwt: out.jwt }, { status: 200 });\n if (sessionKind === 'cookie' && out.jwt) {\n try {\n res.headers.set('Set-Cookie', session.buildSetCookie(out.jwt));\n } catch {}\n }\n withCors(res.headers, opts, request);\n return res;\n }\n\n if (method === 'POST' && pathname === '/recover-email') {\n const prefer = String(request.headers.get('prefer') || '').toLowerCase();\n const respondAsync =\n prefer.includes('respond-async') ||\n String(url.searchParams.get('async') || '').trim() === '1' ||\n String(url.searchParams.get('respond_async') || '').trim() === '1';\n\n let rawBody: unknown; try { rawBody = await request.json(); } catch { rawBody = null; }\n const parsed = parseRecoverEmailRequest(rawBody, { headers: request.headers });\n if (!parsed.ok) {\n const res = json({ code: parsed.code, message: parsed.message }, { status: parsed.status });\n withCors(res.headers, opts, request);\n return res;\n }\n const { accountId, emailBlob, explicitMode } = parsed;\n\n if (!service.emailRecovery) {\n const res = json(\n { code: 'email_recovery_unavailable', message: 'EmailRecoveryService is not configured on this server' },\n { status: 503 }\n );\n withCors(res.headers, opts, request);\n return res;\n }\n\n if (respondAsync && ctx && typeof ctx.waitUntil === 'function') {\n ctx.waitUntil(\n service.emailRecovery\n .requestEmailRecovery({ accountId, emailBlob, explicitMode })\n .then((result) => {\n logger.info('[recover-email] async complete', {\n success: result?.success === true,\n accountId,\n error: result?.success ? undefined : result?.error,\n });\n })\n .catch((err: any) => {\n logger.error('[recover-email] async error', {\n accountId,\n error: err?.message || String(err),\n });\n })\n );\n const res = json({ success: true, queued: true, accountId }, { status: 202 });\n withCors(res.headers, opts, request);\n return res;\n }\n\n const result = await service.emailRecovery.requestEmailRecovery({ accountId, emailBlob, explicitMode });\n const res = json(result, { status: result.success ? 202 : 400 });\n withCors(res.headers, opts, request);\n return res;\n }\n\n if (method === 'POST' && pathname === '/vrf/remove-server-lock') {\n const shamir = service.shamirService;\n if (!shamir || !(await shamir.ensureReady())) {\n const res = json({ code: 'shamir_disabled', message: 'Shamir 3-pass is not configured on this server' }, { status: 503 });\n withCors(res.headers, opts, request);\n return res;\n }\n let body: unknown; try { body = await request.json(); } catch { body = null; }\n const valid = isObject(body)\n && typeof body.kek_cs_b64u === 'string' && body.kek_cs_b64u.length > 0\n && typeof (body as Record<string, unknown>).keyId === 'string'\n && String((body as Record<string, unknown>).keyId).length > 0;\n if (!valid) {\n const res = json({ code: 'invalid_body', message: 'kek_cs_b64u and keyId are required' }, { status: 400 });\n withCors(res.headers, opts, request);\n return res;\n }\n const out = await handleRemoveServerLock(shamir, {\n body: {\n kek_cs_b64u: String((body as Record<string, unknown>).kek_cs_b64u),\n keyId: String((body as Record<string, unknown>).keyId),\n },\n });\n return toResponse(out);\n }\n\n if (method === 'GET' && pathname === '/shamir/key-info') {\n const shamir = service.shamirService;\n if (!shamir || !(await shamir.ensureReady())) {\n const res = json({ code: 'shamir_disabled', message: 'Shamir 3-pass is not configured on this server' }, { status: 503 });\n withCors(res.headers, opts, request);\n return res;\n }\n const out = await handleGetShamirKeyInfo(shamir);\n return toResponse(out);\n }\n\n if (opts.healthz && method === 'GET' && pathname === '/healthz') {\n // Surface simple CORS info for diagnostics (normalized)\n const allowed = buildCorsOrigins(...(opts.corsOrigins || []));\n const corsAllowed = allowed === '*' ? '*' : allowed;\n const shamir = service.shamirService;\n const shamirConfigured = Boolean(shamir && shamir.hasShamir());\n let currentKeyId: string | null = null;\n if (shamirConfigured && shamir) {\n try {\n const { currentKeyId: id } = JSON.parse((await handleGetShamirKeyInfo(shamir)).body) as { currentKeyId?: string };\n currentKeyId = id || null;\n } catch {}\n }\n\n const proverBaseUrl = service.emailRecovery?.getZkEmailProverBaseUrl?.() ?? null;\n const zkEmailConfigured = Boolean(proverBaseUrl);\n\n const res = json({\n ok: true,\n // Backwards-compatible field (was previously top-level).\n currentKeyId,\n shamir: { configured: shamirConfigured, currentKeyId },\n zkEmail: { configured: zkEmailConfigured, proverBaseUrl },\n cors: { allowedOrigins: corsAllowed },\n }, { status: 200 });\n withCors(res.headers, opts, request);\n return res;\n }\n\n if (opts.readyz && method === 'GET' && pathname === '/readyz') {\n const allowed = buildCorsOrigins(...(opts.corsOrigins || []));\n const corsAllowed = allowed === '*' ? '*' : allowed;\n\n const shamir = service.shamirService;\n const shamirConfigured = Boolean(shamir && shamir.hasShamir());\n\n let shamirReady: boolean | null = null;\n let shamirCurrentKeyId: string | null = null;\n let shamirError: string | undefined;\n if (shamirConfigured && shamir) {\n try {\n await shamir.ensureReady();\n shamirReady = true;\n const { currentKeyId } = JSON.parse((await handleGetShamirKeyInfo(shamir)).body) as { currentKeyId?: string };\n shamirCurrentKeyId = currentKeyId || null;\n } catch (e: any) {\n shamirReady = false;\n shamirError = e?.message || String(e);\n }\n }\n\n const zk = service.emailRecovery\n ? await service.emailRecovery.checkZkEmailProverHealth()\n : { configured: false, baseUrl: null, healthy: null as boolean | null };\n\n const ok =\n (shamirConfigured ? shamirReady === true : true) &&\n (zk.configured ? zk.healthy === true : true);\n\n const res = json({\n ok,\n shamir: {\n configured: shamirConfigured,\n ready: shamirConfigured ? shamirReady : null,\n currentKeyId: shamirCurrentKeyId,\n error: shamirError,\n },\n zkEmail: zk,\n cors: { allowedOrigins: corsAllowed },\n }, { status: ok ? 200 : 503 });\n withCors(res.headers, opts, request);\n return res;\n }\n\n return notFound();\n } catch (e: unknown) {\n const res = json({ code: 'internal', message: e instanceof Error ? e.message : String(e) }, { status: 500 });\n withCors(res.headers, opts, request);\n return res;\n }\n };\n}\n\n/**\n * Optional cron hook factory for Cloudflare Workers.\n * Default is inactive (no-op). Enable explicitly in your Worker entry.\n *\n * Example:\n * const cron = createCloudflareCron(service, { enabled: env.ENABLE_ROTATION === '1', rotate: false });\n * export default { fetch: router, scheduled: cron };\n */\nexport interface CloudflareCronOptions {\n enabled?: boolean; // default false\n rotate?: boolean; // if true, will attempt to rotate Shamir keypair (not persisted in Workers)\n // Optional logger; defaults to silent.\n logger?: RouterLogger | null;\n}\n\nexport function createCloudflareCron(service: AuthService, opts: CloudflareCronOptions = {}): ScheduledHandler {\n const logger = normalizeRouterLogger(opts.logger);\n const enabled = Boolean(opts.enabled);\n const doRotate = Boolean(opts.rotate);\n if (!enabled) {\n return async () => { /* no-op by default */ };\n }\n return async (_event: CfScheduledEvent) => {\n try {\n if (doRotate) {\n // Rotation in Workers is ephemeral unless you persist keys externally.\n // This call rotates in-memory only and logs the result.\n const shamir = service.shamirService;\n if (!shamir) {\n logger.warn('[cloudflare-cron] Shamir not configured; skipping rotation');\n } else {\n const rotation = await shamir.rotateShamirServerKeypair();\n logger.info('[cloudflare-cron] rotated key', rotation.newKeyId, 'graceIds:', rotation.graceKeyIds);\n }\n } else {\n logger.info('[cloudflare-cron] enabled but rotate=false (no action)');\n }\n } catch (e: unknown) {\n logger.error('[cloudflare-cron] failed', e instanceof Error ? e.message : String(e));\n }\n };\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"cloudflare.js","names":["normalizedHeaders: Record<string, string>","v","base: Logger","out: Record<string, string>","e: any","e: unknown","allowedOrigin: string | '*' | undefined","out: Record<string, string>","thresholdKeygen:\n | (Awaited<ReturnType<NonNullable<typeof threshold>['keygenFromClientVerifyingShareForRegistration']>> & { ok: true })\n | null","thresholdWarning: string | null","response: CreateAccountAndRegisterResult","e: unknown","out: ShamirApplyServerLockResponse","e: any","out: ShamirRemoveServerLockResponse","currentKeyId: string | null","shamirReady: boolean | null","shamirCurrentKeyId: string | null","shamirError: string | undefined","e: any","result","e: any","isObject","threshold","result","e: any","effectiveOpts: RelayRouterOptions","handlers: Array<(c: CloudflareRelayContext) => Promise<Response | null>>","baseCtx: Omit<CloudflareRelayContext, 'request' | 'url' | 'pathname' | 'method'>","ctx: CloudflareRelayContext","e: unknown"],"sources":["../../../../src/utils/validation.ts","../../../../src/server/email-recovery/zkEmail/index.ts","../../../../src/server/email-recovery/emailParsers.ts","../../../../src/server/core/logger.ts","../../../../src/server/router/logger.ts","../../../../src/server/router/cloudflare/email.ts","../../../../src/server/router/cloudflare/cron.ts","../../../../src/server/core/SessionService.ts","../../../../src/server/router/cloudflare/http.ts","../../../../src/server/router/cloudflare/routes/createAccountAndRegisterUser.ts","../../../../src/server/core/shamirHandlers.ts","../../../../src/server/router/cloudflare/routes/health.ts","../../../../src/server/router/cloudflare/routes/recoverEmail.ts","../../../../src/server/router/relay.ts","../../../../src/server/router/cloudflare/routes/sessions.ts","../../../../src/server/router/cloudflare/routes/shamir.ts","../../../../src/server/router/cloudflare/routes/signedDelegate.ts","../../../../src/server/threshold/statusCodes.ts","../../../../src/server/core/ThresholdService/validation.ts","../../../../src/server/router/commonRouterUtils.ts","../../../../src/server/router/cloudflare/routes/thresholdEd25519.ts","../../../../src/server/router/cloudflare/routes/verifyAuthenticationResponse.ts","../../../../src/server/router/cloudflare/routes/wellKnown.ts","../../../../src/server/router/routerOptions.ts","../../../../src/server/router/cloudflare/createCloudflareRouter.ts"],"sourcesContent":["\nexport interface ValidationResult {\n valid: boolean;\n error?: string;\n}\n\n// ==============================\n// Normalization helpers (shared)\n// ==============================\n\n/** Strict string coercion: returns the value only when it's already a string. */\nexport function toOptionalString(value: unknown): string {\n return typeof value === 'string' ? value : '';\n}\n\n/** Strict string coercion + trimming. */\nexport function toOptionalTrimmedString(value: unknown): string {\n return toOptionalString(value).trim();\n}\n\n/** String coercion + trimming (useful at IO boundaries). */\nexport function toTrimmedString(value: unknown): string {\n return String(value ?? '').trim();\n}\n\n/** Remove trailing `/` characters (e.g. base URL normalization). */\nexport function stripTrailingSlashes(value: string): string {\n return String(value ?? '').replace(/\\/+$/, '');\n}\n\n/** Ensure a non-empty string starts with `/` (path normalization). */\nexport function ensureLeadingSlash(value: string): string {\n const trimmed = String(value ?? '').trim();\n if (!trimmed) return '';\n return trimmed.startsWith('/') ? trimmed : `/${trimmed}`;\n}\n\n/** Normalize an app base path like `/sdk` (leading slash, no trailing slashes except `/`). */\nexport function toBasePath(value?: string, fallback = '/sdk'): string {\n const base = ensureLeadingSlash(typeof value === 'string' ? value : fallback) || ensureLeadingSlash(fallback) || '/';\n if (base === '/') return '/';\n return base.replace(/\\/+$/, '');\n}\n\n/** Best-effort origin normalization (used by CSP/Permissions-Policy helpers). */\nexport function toOriginOrUndefined(input?: string): string | undefined {\n try {\n const v = (input || '').trim();\n if (!v) return undefined;\n // Next/Caddy/etc. expect an origin, not a path\n return new URL(v, 'http://dummy').origin === 'http://dummy' ? new URL(v).origin : v;\n } catch {\n return input?.trim() || undefined;\n }\n}\n\n/**\n * Strict origin sanitizer for Related Origin Requests (ROR).\n * - Allows `https://<host>[:port]` and `http://localhost[:port]` only.\n * - Rejects paths (except `/`), queries, and hashes.\n * - Normalizes hostname casing.\n */\nexport function toRorOriginOrNull(value: unknown): string | null {\n if (typeof value !== 'string') return null;\n const raw = toTrimmedString(value);\n if (!raw) return null;\n try {\n const u = new URL(raw);\n const scheme = u.protocol;\n const host = u.hostname.toLowerCase();\n const port = u.port ? `:${u.port}` : '';\n const isHttps = scheme === 'https:';\n const isLocalhostHttp = scheme === 'http:' && host === 'localhost';\n if (!isHttps && !isLocalhostHttp) return null;\n if ((u.pathname && u.pathname !== '/') || u.search || u.hash) return null;\n return `${scheme}//${host}${port}`;\n } catch {\n return null;\n }\n}\n\n/** Collapse a string into a single line by normalizing whitespace. */\nexport function toSingleLine(value: unknown): string {\n return String(value ?? '')\n .replace(/[\\r\\n]+/g, ' ')\n .replace(/\\s+/g, ' ')\n .trim();\n}\n\n/**\n * Ensure a key string has the NEAR Ed25519 prefix (`ed25519:`).\n *\n * - Accepts either `ed25519:<base58>` or a bare `<base58>` string.\n * - Canonicalizes `ED25519:` → `ed25519:`.\n * - If a different prefix is present (e.g. `secp256k1:`), returns the input unchanged.\n */\nexport function ensureEd25519Prefix(value: string): string {\n const raw = String(value ?? '').trim();\n if (!raw) return '';\n\n if (/^[a-z0-9_]+:/i.test(raw)) {\n if (/^ed25519:/i.test(raw)) {\n return `ed25519:${raw.replace(/^ed25519:/i, '')}`;\n }\n return raw;\n }\n\n return `ed25519:${raw}`;\n}\n\nexport interface NearAccountValidationOptions {\n /** Restrict to specific suffixes (e.g., ['testnet', 'near']) */\n allowedSuffixes?: string[];\n /** Require Top-level domains with exactly 2 parts (username.suffix) instead of allowing subdomains */\n requireTopLevelDomain?: boolean;\n}\n\n/**\n * Validate NEAR account ID format with optional suffix restrictions\n * @param nearAccountId - The account ID to validate\n * @param options - Optional validation constraints\n */\nexport function validateNearAccountId(\n nearAccountId: string,\n options: NearAccountValidationOptions = {\n allowedSuffixes: ['testnet', 'near'],\n requireTopLevelDomain: false\n }\n): ValidationResult {\n if (!nearAccountId || typeof nearAccountId !== 'string') {\n return { valid: false, error: 'Account ID must be a non-empty string' };\n }\n\n const parts = nearAccountId.split('.');\n if (parts.length < 2) {\n return { valid: false, error: 'Account ID must contain at least one dot (e.g., username.testnet)' };\n }\n\n // Check for exact two parts requirement (e.g., server registration)\n if (options.requireTopLevelDomain && parts.length !== 2) {\n const suffixList = options.allowedSuffixes?.join(', ') || 'valid suffixes';\n return {\n valid: false,\n error: `Invalid NEAR account ID format. Expected format: <username>.<suffix> where suffix is one of: ${suffixList}`\n };\n }\n\n const username = parts[0];\n const suffix = parts[parts.length - 1]; // Last part for suffix checking\n const domain = parts.slice(1).join('.');\n\n // Validate username part\n if (!username || username.length === 0) {\n return { valid: false, error: 'Username part cannot be empty' };\n }\n\n if (!/^[a-z0-9_\\-]+$/.test(username)) {\n return { valid: false, error: 'Username can only contain lowercase letters, numbers, underscores, and hyphens' };\n }\n\n // Validate domain part\n if (!domain || domain.length === 0) {\n return { valid: false, error: 'Domain part cannot be empty' };\n }\n\n // Check allowed suffixes if specified\n if (options.allowedSuffixes && options.allowedSuffixes.length > 0) {\n // Check if the account ID ends with any of the allowed suffixes\n const matchesAnySuffix = options.allowedSuffixes.some(allowedSuffix => {\n // For single-part suffixes, check the last part\n if (!allowedSuffix.includes('.')) {\n return suffix === allowedSuffix;\n }\n // For multi-part suffixes, check if the account ID ends with the full suffix\n return nearAccountId.endsWith(`.${allowedSuffix}`);\n });\n\n if (!matchesAnySuffix) {\n return {\n valid: false,\n error: `Invalid NEAR account ID suffix. Expected account to end with one of: ${options.allowedSuffixes.join(', ')}`\n };\n }\n }\n\n return { valid: true };\n}\n\n/**\n * Lightweight NEAR account ID validation used by server-side helpers.\n * - length: 2..64\n * - chars: lowercase letters, digits, `_`, `.`, `-`\n */\nexport function isValidAccountId(accountId: unknown): accountId is string {\n if (typeof accountId !== 'string') return false;\n if (!accountId || accountId.length < 2 || accountId.length > 64) return false;\n return /^[a-z0-9_.-]+$/.test(accountId);\n}\n\n// ===========================\n// Runtime validation helpers\n// ===========================\n\nexport function isObject(x: unknown): x is Record<string, unknown> {\n return x !== null && typeof x === 'object';\n}\n\nexport function isString(x: unknown): x is string {\n return typeof x === 'string';\n}\n\nexport function isNonEmptyString(x: unknown): x is string {\n return typeof x === 'string' && x.length > 0;\n}\n\nexport function isNumber(x: unknown): x is number {\n return typeof x === 'number';\n}\n\nexport function isFiniteNumber(x: unknown): x is number {\n return typeof x === 'number' && Number.isFinite(x);\n}\n\nexport function isFunction(x: unknown): x is Function {\n return typeof x === 'function';\n}\n\nexport function isBoolean(x: unknown): x is boolean {\n return typeof x === 'boolean';\n}\n\nexport function isArray<T = unknown>(x: unknown): x is T[] {\n return Array.isArray(x);\n}\n\nexport function assertString(val: unknown, name = 'value'): string {\n if (typeof val !== 'string') throw new Error(`Invalid ${name}: expected string`);\n return val;\n}\n\nexport function assertNumber(val: unknown, name = 'value'): number {\n if (typeof val !== 'number' || !Number.isFinite(val)) throw new Error(`Invalid ${name}: expected finite number`);\n return val;\n}\n\nexport function assertBoolean(val: unknown, name = 'value'): boolean {\n if (typeof val !== 'boolean') throw new Error(`Invalid ${name}: expected boolean`);\n return val;\n}\n\nexport function assertObject<T extends Record<string, unknown> = Record<string, unknown>>(val: unknown, name = 'value'): T {\n if (!isObject(val)) throw new Error(`Invalid ${name}: expected object`);\n return val as T;\n}\n\nexport function assertArray<T = unknown>(val: unknown, name = 'value'): T[] {\n if (!Array.isArray(val)) throw new Error(`Invalid ${name}: expected array`);\n return val as T[];\n}\n\nexport function stripFunctionsShallow<T extends Record<string, unknown>>(obj?: T): Partial<T> | undefined {\n if (!obj || !isObject(obj)) return undefined;\n const out: Record<string, unknown> = {};\n for (const [k, v] of Object.entries(obj)) {\n if (!isFunction(v)) out[k] = v as unknown;\n }\n return out as Partial<T>;\n}\n\nexport interface PlainSignedTransactionLike {\n transaction: unknown;\n signature: unknown;\n borsh_bytes?: unknown;\n borshBytes?: unknown;\n base64Encode?: unknown;\n}\n\nexport function isPlainSignedTransactionLike(x: unknown): x is PlainSignedTransactionLike {\n if (!isObject(x)) return false;\n const hasTx = 'transaction' in x;\n const hasSig = 'signature' in x;\n const bytes = x as { borsh_bytes?: unknown; borshBytes?: unknown };\n const hasBytes = Array.isArray(bytes.borsh_bytes) || bytes.borshBytes instanceof Uint8Array;\n const hasMethod = typeof (x as { base64Encode?: unknown }).base64Encode === 'function';\n return hasTx && hasSig && hasBytes && !hasMethod;\n}\n\nexport function extractBorshBytesFromPlainSignedTx(x: PlainSignedTransactionLike): number[] {\n const asArray = Array.isArray(x.borsh_bytes) ? (x.borsh_bytes as number[]) : undefined;\n if (asArray) return asArray;\n const asU8 = (x.borshBytes instanceof Uint8Array) ? x.borshBytes : undefined;\n return Array.from(asU8 || new Uint8Array());\n}\n","import { ZkEmailProverClient, type ZkEmailProverClientOptions, type ZkEmailProverError } from './proverClient';\n\nexport { ZkEmailProverClient } from './proverClient';\nexport type { ZkEmailProverClientOptions, ZkEmailProverError, ZkEmailProverResponse } from './proverClient';\n\nexport interface ForwardableEmailPayload {\n from: string;\n to: string;\n headers: Record<string, string>;\n raw?: string;\n rawSize?: number;\n}\n\nexport type NormalizedEmailResult =\n | { ok: true; payload: ForwardableEmailPayload }\n | { ok: false; code: string; message: string };\n\nexport interface GenerateZkEmailProofResult {\n proof: unknown;\n publicInputs: string[];\n}\n\nexport interface ParsedZkEmailBindings {\n accountId: string;\n newPublicKey: string;\n fromEmail: string;\n timestamp: string;\n requestId: string;\n}\n\n/**\n * Build a minimal ForwardableEmailPayload from a raw RFC822 email string.\n * This is primarily used by server-side helpers that receive only a raw\n * email blob (no pre-normalized headers).\n */\nexport function buildForwardablePayloadFromRawEmail(raw: string): ForwardableEmailPayload {\n const safeRaw = typeof raw === 'string' ? raw : '';\n const lines = safeRaw.split(/\\r?\\n/);\n\n const getHeader = (name: string): string | undefined => {\n const line = lines.find(l => new RegExp(`^${name}:`, 'i').test(l));\n if (!line) return undefined;\n const idx = line.indexOf(':');\n const rest = idx >= 0 ? line.slice(idx + 1) : '';\n const value = rest.trim();\n return value || undefined;\n };\n\n const fromHeader = getHeader('from') || 'unknown@zkemail.local';\n const toHeader = getHeader('to') || 'recover@zkemail.local';\n\n const headers: Record<string, string> = {};\n const subjectHeader = getHeader('subject');\n const dateHeader = getHeader('date');\n\n if (fromHeader) headers.from = fromHeader;\n if (toHeader) headers.to = toHeader;\n if (subjectHeader) headers.subject = subjectHeader;\n if (dateHeader) headers.date = dateHeader;\n\n return {\n from: fromHeader,\n to: toHeader,\n headers,\n raw: safeRaw,\n rawSize: safeRaw.length,\n };\n}\n\nexport function normalizeForwardableEmailPayload(input: unknown): NormalizedEmailResult {\n if (!input || typeof input !== 'object') {\n return { ok: false, code: 'invalid_email', message: 'JSON body required' };\n }\n\n const body = input as Partial<ForwardableEmailPayload>;\n const { from, to, headers, raw, rawSize } = body;\n\n if (!from || typeof from !== 'string' || !to || typeof to !== 'string') {\n return { ok: false, code: 'invalid_email', message: 'from and to are required' };\n }\n\n if (!headers || typeof headers !== 'object') {\n return { ok: false, code: 'invalid_email', message: 'headers object is required' };\n }\n\n const normalizedHeaders: Record<string, string> = {};\n for (const [k, v] of Object.entries(headers as Record<string, unknown>)) {\n normalizedHeaders[String(k).toLowerCase()] = String(v);\n }\n\n return {\n ok: true,\n payload: {\n from,\n to,\n headers: normalizedHeaders,\n raw: typeof raw === 'string' ? raw : undefined,\n rawSize: typeof rawSize === 'number' ? rawSize : undefined,\n },\n };\n}\n\n/**\n * Parse NEAR accountId from the Subject line inside a raw RFC822 email.\n *\n * Expected format (case-insensitive on \"Subject\" and \"recover\"):\n * Subject: recover-123ABC bob.testnet ed25519:<pk>\n *\n * Returns the parsed accountId (e.g. \"bob.testnet\") or null if not found.\n */\nexport function parseAccountIdFromSubject(raw: string | undefined | null): string | null {\n if (!raw || typeof raw !== 'string') return null;\n\n // Accept either a full RFC822 message (with \"Subject: ...\" header)\n // or a bare Subject value (\"recover-123ABC bob.testnet ed25519:<pk>\").\n let subjectText = '';\n const lines = raw.split(/\\r?\\n/);\n const subjectLine = lines.find(line => /^subject:/i.test(line));\n if (subjectLine) {\n const idx = subjectLine.indexOf(':');\n const restRaw = idx >= 0 ? subjectLine.slice(idx + 1) : '';\n subjectText = restRaw.trim();\n } else {\n subjectText = raw.trim();\n }\n\n if (!subjectText) return null;\n\n // Strip common reply/forward prefixes\n subjectText = subjectText.replace(/^(re|fwd):\\s*/i, '').trim();\n if (!subjectText) return null;\n\n // Strict format: \"recover-<request_id> <accountId> [ed25519:<pk>]\"\n const match = subjectText.match(\n /^recover-([A-Za-z0-9]{6})\\s+([^\\s]+)(?:\\s+ed25519:[^\\s]+)?\\s*$/i\n );\n if (match?.[2]) {\n return match[2];\n }\n\n return null;\n}\n\nfunction parseSubjectBindings(\n rawSubject: string | undefined | null\n): { accountId: string; newPublicKey: string; requestId: string } | null {\n if (!rawSubject || typeof rawSubject !== 'string') return null;\n\n const lines = rawSubject.split(/\\r?\\n/);\n let subjectText = '';\n const subjectLine = lines.find(line => /^subject:/i.test(line));\n if (subjectLine) {\n const idx = subjectLine.indexOf(':');\n const restRaw = idx >= 0 ? subjectLine.slice(idx + 1) : '';\n subjectText = restRaw.trim();\n } else {\n subjectText = rawSubject.trim();\n }\n if (!subjectText) return null;\n\n subjectText = subjectText.replace(/^(re|fwd):\\s*/i, '').trim();\n if (!subjectText) return null;\n\n // Strict format:\n // \"recover-<request_id> <accountId> ed25519:<pk>\"\n const match = subjectText.match(\n /^recover-([A-Za-z0-9]{6})\\s+([^\\s]+)\\s+ed25519:([^\\s]+)\\s*$/i\n );\n if (!match) return null;\n\n const [, requestId, accountId, newPublicKey] = match;\n\n return {\n accountId,\n newPublicKey,\n requestId,\n };\n}\n\nexport function extractZkEmailBindingsFromPayload(\n payload: ForwardableEmailPayload\n): ParsedZkEmailBindings | null {\n const raw = payload.raw || '';\n const lines = raw.split(/\\r?\\n/);\n\n const subjectLine = lines.find(line => /^subject:/i.test(line));\n const subjectBindings = parseSubjectBindings(subjectLine ?? '');\n if (!subjectBindings) {\n return null;\n }\n\n const headers = payload.headers || {};\n let fromEmailRaw: string | undefined =\n (headers['from'] as any) ||\n (headers['x-from-email'] as any);\n let dateRaw: string | undefined =\n (headers['date'] as any) ||\n (headers['x-original-date'] as any);\n\n // Fallback: if headers object does not contain from/date,\n // attempt to parse them from the raw RFC822 email lines.\n if (!fromEmailRaw || !dateRaw) {\n for (const line of lines) {\n if (!fromEmailRaw && /^from:/i.test(line)) {\n const idx = line.indexOf(':');\n fromEmailRaw = idx >= 0 ? line.slice(idx + 1).trim() : '';\n }\n if (!dateRaw && /^date:/i.test(line)) {\n const idx = line.indexOf(':');\n dateRaw = idx >= 0 ? line.slice(idx + 1).trim() : '';\n }\n if (fromEmailRaw && dateRaw) break;\n }\n }\n\n const fromEmail = String(fromEmailRaw || '').trim();\n const timestamp = String(dateRaw || '').trim();\n\n if (!fromEmail || !timestamp) {\n return null;\n }\n\n return {\n accountId: subjectBindings.accountId,\n newPublicKey: subjectBindings.newPublicKey,\n fromEmail,\n timestamp,\n requestId: subjectBindings.requestId,\n };\n}\n\nexport async function generateZkEmailProofFromPayload(\n payload: ForwardableEmailPayload,\n prover: ZkEmailProverClientOptions | ZkEmailProverClient\n): Promise<GenerateZkEmailProofResult> {\n if (!payload.raw || typeof payload.raw !== 'string') {\n const err: ZkEmailProverError = Object.assign(\n new Error('raw email contents are required to generate a zk-email proof'),\n { code: 'missing_raw_email' }\n );\n throw err;\n }\n\n const client =\n (prover && typeof (prover as any).proveEmail === 'function')\n ? (prover as ZkEmailProverClient)\n : new ZkEmailProverClient(prover as ZkEmailProverClientOptions);\n\n const res = await client.proveEmail(payload.raw);\n\n return {\n proof: res.proof,\n publicInputs: res.publicSignals,\n };\n}\n","import type { EmailRecoveryMode } from './types';\nimport { normalizeForwardableEmailPayload, parseAccountIdFromSubject } from './zkEmail';\nimport { ensureEd25519Prefix } from '../../core/nearCrypto';\n\nexport enum EmailRecoveryModeHint {\n ZkEmail = 'zk-email',\n TeeEncrypted = 'tee-encrypted',\n OnchainPublic = 'onchain-public',\n}\n\nexport function parseRecoveryMode(raw: string | undefined | null): EmailRecoveryMode | null {\n if (!raw) return null;\n const value = raw.trim().toLowerCase();\n if (value === EmailRecoveryModeHint.ZkEmail) return 'zk-email';\n if (value === EmailRecoveryModeHint.TeeEncrypted) return 'tee-encrypted';\n if (value === EmailRecoveryModeHint.OnchainPublic) return 'onchain-public';\n return null;\n}\n\nexport function extractRecoveryModeFromBody(emailBlob?: string): EmailRecoveryMode | null {\n if (!emailBlob) return null;\n\n const lines = emailBlob.split(/\\r?\\n/);\n const bodyStartIndex = lines.findIndex(line => line.trim() === '');\n if (bodyStartIndex === -1) return null;\n\n const bodyLines = lines.slice(bodyStartIndex + 1);\n const firstNonEmptyBodyLine = bodyLines.find(line => line.trim() !== '');\n if (!firstNonEmptyBodyLine) return null;\n\n const candidate = firstNonEmptyBodyLine.trim();\n const normalized = parseRecoveryMode(candidate);\n if (normalized) return normalized;\n\n const lower = candidate.toLowerCase();\n if (lower.includes(EmailRecoveryModeHint.ZkEmail)) return 'zk-email';\n if (lower.includes(EmailRecoveryModeHint.TeeEncrypted)) return 'tee-encrypted';\n if (lower.includes(EmailRecoveryModeHint.OnchainPublic)) return 'onchain-public';\n\n return null;\n}\n\ntype HeaderValue = string | string[] | undefined;\ntype HeadersLike = Headers | Record<string, HeaderValue> | undefined;\n\nexport type RecoverEmailParseResult =\n | { ok: true; accountId: string; emailBlob: string; explicitMode?: string }\n | { ok: false; status: number; code: string; message: string };\n\nfunction getHeader(headers: HeadersLike, name: string): string | undefined {\n if (!headers) return undefined;\n\n const maybeHeaders = headers as any;\n if (typeof maybeHeaders.get === 'function') {\n const v = maybeHeaders.get(name);\n return (typeof v === 'string') ? v : undefined;\n }\n\n const record = headers as Record<string, HeaderValue>;\n const v = record[name.toLowerCase()] ?? record[name];\n if (Array.isArray(v)) return (typeof v[0] === 'string') ? v[0] : undefined;\n return (typeof v === 'string') ? v : undefined;\n}\n\nfunction parseExplicitMode(body: unknown, headers?: HeadersLike): string | undefined {\n const modeFromBody =\n (typeof (body as any)?.explicitMode === 'string' ? String((body as any).explicitMode) : '') ||\n (typeof (body as any)?.explicit_mode === 'string' ? String((body as any).explicit_mode) : '');\n const modeFromHeader = getHeader(headers, 'x-email-recovery-mode') || getHeader(headers, 'x-recovery-mode') || '';\n const raw = (modeFromBody || modeFromHeader).trim();\n return raw ? raw : undefined;\n}\n\nexport function parseRecoverEmailRequest(body: unknown, opts: { headers?: HeadersLike } = {}): RecoverEmailParseResult {\n const explicitMode = parseExplicitMode(body, opts.headers);\n\n const normalized = normalizeForwardableEmailPayload(body);\n if (!normalized.ok) {\n return { ok: false, status: 400, code: normalized.code, message: normalized.message };\n }\n\n const payload = normalized.payload;\n const emailBlob = payload.raw || '';\n const emailHeaders = payload.headers || {};\n\n const subjectHeader = emailHeaders['subject'];\n const parsedAccountId = parseAccountIdFromSubject(subjectHeader || emailBlob);\n const headerAccountId = String(emailHeaders['x-near-account-id'] || emailHeaders['x-account-id'] || '').trim();\n const accountId = (parsedAccountId || headerAccountId || '').trim();\n\n if (!accountId) {\n return { ok: false, status: 400, code: 'missing_account', message: 'x-near-account-id header is required' };\n }\n if (!emailBlob) {\n return { ok: false, status: 400, code: 'missing_email', message: 'raw email blob is required' };\n }\n\n return { ok: true, accountId, emailBlob, explicitMode };\n}\n\nconst EMAIL_ADDRESS_REGEX =\n /([a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\\.[a-zA-Z0-9-]+)*)/;\n\nexport function canonicalizeEmail(input: string): string {\n const raw = String(input || '').trim();\n if (!raw) return '';\n\n // Handle cases where a full header line is passed in (e.g. \"From: ...\").\n const withoutHeaderName = raw.replace(/^[a-z0-9-]+\\s*:\\s*/i, '').trim();\n\n // Prefer the common \"Name <email@domain>\" format when present, but still\n // validate/extract the actual address via regex.\n const angleMatch = withoutHeaderName.match(/<([^>]+)>/);\n const candidates = [\n angleMatch?.[1],\n withoutHeaderName,\n ].filter((v): v is string => typeof v === 'string' && v.length > 0);\n\n for (const candidate of candidates) {\n const cleaned = candidate.replace(/^mailto:\\s*/i, '');\n const match = cleaned.match(EMAIL_ADDRESS_REGEX);\n if (match?.[1]) {\n return match[1].trim().toLowerCase();\n }\n }\n\n return withoutHeaderName.toLowerCase();\n}\n\nexport function parseHeaderValue(rawEmail: string, name: string): string | undefined {\n try {\n const raw = String(rawEmail || '');\n if (!raw) return undefined;\n\n const lines = raw.split(/\\r?\\n/);\n const headerLines: string[] = [];\n\n // Only consider the header section (until the first blank line).\n for (const line of lines) {\n if (line.trim() === '') break;\n\n // RFC822 header folding: lines starting with whitespace continue previous header.\n if (/^\\s/.test(line) && headerLines.length > 0) {\n headerLines[headerLines.length - 1] += ` ${line.trim()}`;\n continue;\n }\n\n headerLines.push(line);\n }\n\n const headerName = name.trim();\n if (!headerName) return undefined;\n\n const re = new RegExp(`^${headerName.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&')}\\\\s*:`, 'i');\n const found = headerLines.find((l) => re.test(l));\n if (!found) return undefined;\n\n const idx = found.indexOf(':');\n const value = idx >= 0 ? found.slice(idx + 1).trim() : '';\n return value || undefined;\n } catch {\n return undefined;\n }\n}\n\nexport function parseRecoverSubjectBindings(\n rawEmail: string\n): { requestId: string; accountId: string; newPublicKey: string } | null {\n // Accept either a full RFC822 email or a bare Subject value.\n let subjectText = (parseHeaderValue(rawEmail, 'subject') || String(rawEmail || '')).trim();\n if (!subjectText) return null;\n\n // Strip common reply/forward prefixes.\n subjectText = subjectText.replace(/^(re|fwd):\\s*/i, '').trim();\n if (!subjectText) return null;\n\n // Strict format:\n // \"recover-<request_id> <accountId> ed25519:<pk>\"\n const match = subjectText.match(\n /^recover-([A-Za-z0-9]{6})\\s+([^\\s]+)\\s+ed25519:([^\\s]+)\\s*$/i\n );\n if (!match) return null;\n\n const [, requestId, accountId, newPublicKey] = match;\n return { requestId, accountId, newPublicKey: ensureEd25519Prefix(newPublicKey) };\n}\n","export type Logger = {\n debug?: (...args: unknown[]) => void;\n info?: (...args: unknown[]) => void;\n warn?: (...args: unknown[]) => void;\n error?: (...args: unknown[]) => void;\n log?: (...args: unknown[]) => void;\n};\n\nexport type NormalizedLogger = {\n debug: (...args: unknown[]) => void;\n info: (...args: unknown[]) => void;\n warn: (...args: unknown[]) => void;\n error: (...args: unknown[]) => void;\n};\n\nfunction safe(fn?: (...args: unknown[]) => void): (...args: unknown[]) => void {\n if (!fn) return () => {};\n return (...args: unknown[]) => {\n try {\n fn(...args);\n } catch {\n // Never allow logging to break request handling.\n }\n };\n}\n\n/**\n * Library code should never call `console.*` directly; the host decides where logs go.\n * - Default: no logs\n * - To enable: pass `logger: console` (or a structured logger) to the host config.\n */\nexport function normalizeLogger(logger?: Logger | null): NormalizedLogger {\n if (!logger) {\n return { debug: () => {}, info: () => {}, warn: () => {}, error: () => {} };\n }\n\n const base: Logger = logger;\n const log = typeof base.log === 'function' ? base.log.bind(base) : undefined;\n\n const debug = (typeof base.debug === 'function' ? base.debug.bind(base) : log);\n const info = (typeof base.info === 'function' ? base.info.bind(base) : log);\n const warn = (typeof base.warn === 'function' ? base.warn.bind(base) : log);\n const error = (typeof base.error === 'function' ? base.error.bind(base) : log);\n\n return {\n debug: safe(debug),\n info: safe(info),\n warn: safe(warn),\n error: safe(error),\n };\n}\n\nexport const coerceLogger = normalizeLogger;\n","import type { Logger, NormalizedLogger } from '../core/logger';\nimport { coerceLogger } from '../core/logger';\n\nexport type RouterLogger = Logger;\nexport type NormalizedRouterLogger = NormalizedLogger;\nexport const coerceRouterLogger = coerceLogger;\n/** @deprecated use `coerceRouterLogger` */\nexport const normalizeRouterLogger = coerceRouterLogger;\n","import type { AuthService } from '../../core/AuthService';\nimport { parseRecoverEmailRequest } from '../../email-recovery/emailParsers';\nimport type { RouterLogger } from '../logger';\nimport { coerceRouterLogger } from '../logger';\nimport type { EmailHandler, CfEmailMessage } from './types';\nimport { toSingleLine } from '../../../utils/validation';\n\nfunction toEmailAddress(input: string): string {\n const trimmed = String(input || '').trim();\n const angleStart = trimmed.indexOf('<');\n const angleEnd = trimmed.indexOf('>');\n if (angleStart !== -1 && angleEnd > angleStart) {\n return trimmed.slice(angleStart + 1, angleEnd).trim().toLowerCase();\n }\n return trimmed.toLowerCase();\n}\n\nfunction toLowercaseHeaderRecord(input: unknown): Record<string, string> {\n const out: Record<string, string> = {};\n if (!input) return out;\n\n const maybeHeaders = input as any;\n if (typeof maybeHeaders.forEach === 'function') {\n try {\n maybeHeaders.forEach((v: unknown, k: unknown) => {\n out[String(k).toLowerCase()] = String(v);\n });\n return out;\n } catch { }\n }\n\n if (typeof maybeHeaders[Symbol.iterator] === 'function') {\n try {\n for (const entry of maybeHeaders as Iterable<unknown>) {\n if (!Array.isArray(entry)) continue;\n const [k, v] = entry as any[];\n out[String(k).toLowerCase()] = String(v);\n }\n return out;\n } catch { }\n }\n\n if (typeof input === 'object') {\n for (const [k, v] of Object.entries(input as Record<string, unknown>)) {\n out[String(k).toLowerCase()] = String(v);\n }\n }\n\n return out;\n}\n\nasync function buildForwardableEmailPayloadFromCloudflareMessage(message: CfEmailMessage): Promise<{\n from: string;\n to: string;\n headers: Record<string, string>;\n raw: string;\n rawSize?: number;\n}> {\n const from = String(message?.from || '');\n const to = String(message?.to || '');\n const headers = toLowercaseHeaderRecord((message as any)?.headers);\n\n let raw = '';\n try {\n raw = await new Response((message as any)?.raw).text();\n } catch { }\n\n const rawSize = typeof (message as any)?.rawSize === 'number' ? (message as any).rawSize : undefined;\n\n return { from, to, headers, raw, rawSize };\n}\n\nexport interface CloudflareEmailHandlerOptions {\n /**\n * Optional recipient allowlist for emails processed by this handler (case-insensitive).\n * If unset, any `to` is accepted.\n */\n expectedRecipient?: string;\n /**\n * If true (default), unexpected recipients only log a warning (Cloudflare routing\n * is usually already scoped). If false, the handler rejects the email.\n */\n allowUnexpectedRecipient?: boolean;\n /**\n * When true, logs email metadata (from/to/subject). Defaults to false.\n */\n verbose?: boolean;\n // Optional logger; defaults to silent.\n logger?: RouterLogger | null;\n}\n\nexport function createCloudflareEmailHandler(service: AuthService, opts: CloudflareEmailHandlerOptions = {}): EmailHandler {\n const logger = coerceRouterLogger(opts.logger);\n const expectedRecipient = toEmailAddress(opts.expectedRecipient || '');\n const allowUnexpectedRecipient = opts.allowUnexpectedRecipient !== false;\n const verbose = Boolean(opts.verbose);\n\n return async (message: CfEmailMessage): Promise<void> => {\n try {\n const payload = await buildForwardableEmailPayloadFromCloudflareMessage(message);\n\n const to = toEmailAddress(payload.to);\n if (expectedRecipient) {\n if (to !== expectedRecipient) {\n logger.warn('[email] unexpected recipient', { to, expectedRecipient });\n if (!allowUnexpectedRecipient) {\n message.setReject('Email recovery relayer rejected email: unexpected recipient');\n return;\n }\n }\n }\n\n if (verbose) {\n logger.info('[email] from/to', { from: payload.from, to: payload.to, subject: payload.headers['subject'] });\n }\n\n const parsed = parseRecoverEmailRequest(payload as any, { headers: payload.headers });\n if (!parsed.ok) {\n logger.warn('[email] rejecting', { code: parsed.code, message: parsed.message });\n message.setReject(`Email recovery relayer rejected email: ${parsed.message}`);\n return;\n }\n\n if (!service.emailRecovery) {\n logger.warn('[email] rejecting: EmailRecoveryService not configured');\n message.setReject('Email recovery relayer rejected email: email recovery service unavailable');\n return;\n }\n\n const result = await service.emailRecovery.requestEmailRecovery({\n accountId: parsed.accountId,\n emailBlob: parsed.emailBlob,\n explicitMode: parsed.explicitMode,\n });\n\n if (!result?.success) {\n logger.warn('[email] recovery failed', {\n accountId: parsed.accountId,\n error: result?.error || 'unknown',\n message: result?.message,\n });\n const reason = toSingleLine(result?.message || result?.error || 'recovery failed');\n message.setReject(`Email recovery relayer rejected email: ${reason}`);\n return;\n }\n\n logger.info('[email] recovery submitted', { accountId: parsed.accountId });\n } catch (e: any) {\n logger.error('[email] internal error', { message: e?.message || String(e) });\n message.setReject('Email recovery relayer rejected email: internal error');\n }\n };\n}\n","import type { AuthService } from '../../core/AuthService';\nimport type { RouterLogger } from '../logger';\nimport { coerceRouterLogger } from '../logger';\nimport type { CfScheduledEvent, ScheduledHandler } from './types';\n\n/**\n * Optional cron hook factory for Cloudflare Workers.\n * Default is inactive (no-op). Enable explicitly in your Worker entry.\n *\n * Example:\n * const cron = createCloudflareCron(service, { enabled: env.ENABLE_ROTATION === '1', rotate: false });\n * export default { fetch: router, scheduled: cron };\n */\nexport interface CloudflareCronOptions {\n enabled?: boolean; // default false\n rotate?: boolean; // if true, will attempt to rotate Shamir keypair (not persisted in Workers)\n // Optional logger; defaults to silent.\n logger?: RouterLogger | null;\n}\n\nexport function createCloudflareCron(service: AuthService, opts: CloudflareCronOptions = {}): ScheduledHandler {\n const logger = coerceRouterLogger(opts.logger);\n const enabled = Boolean(opts.enabled);\n const doRotate = Boolean(opts.rotate);\n if (!enabled) {\n return async () => { /* no-op by default */ };\n }\n return async (_event: CfScheduledEvent) => {\n try {\n if (doRotate) {\n // Rotation in Workers is ephemeral unless you persist keys externally.\n // This call rotates in-memory only and logs the result.\n const shamir = service.shamirService;\n if (!shamir) {\n logger.warn('[cloudflare-cron] Shamir not configured; skipping rotation');\n } else {\n const rotation = await shamir.rotateShamirServerKeypair();\n logger.info('[cloudflare-cron] rotated key', rotation.newKeyId, 'graceIds:', rotation.graceKeyIds);\n }\n } else {\n logger.info('[cloudflare-cron] enabled but rotate=false (no action)');\n }\n } catch (e: unknown) {\n logger.error('[cloudflare-cron] failed', e instanceof Error ? e.message : String(e));\n }\n };\n}\n","\nexport interface SessionConfig {\n jwt?: {\n /** Required: JWT signing hook; return a complete token */\n signToken?: (input: { header: Record<string, unknown>; payload: Record<string, unknown> }) => Promise<string> | string;\n /** Required: JWT verification hook */\n verifyToken?: (token: string) => Promise<{ valid: boolean; payload?: any }> | { valid: boolean; payload?: any };\n /** Optional: sliding refresh window (seconds) to allow /session/refresh before exp, default 900 (15 min) */\n refreshWindowSec?: number;\n /** Optional: build additional claims to include in the payload */\n buildClaims?: (input: { sub: string; context?: Record<string, unknown> }) => Promise<Record<string, unknown> | void> | Record<string, unknown> | void;\n };\n cookie?: {\n /** Cookie name. Default: 'w3a_session' */\n name?: string;\n /** Optional override: build Set-Cookie header for a new token */\n buildSetHeader?: (token: string) => string;\n /** Optional override: build Set-Cookie header that clears the cookie */\n buildClearHeader?: () => string;\n /** Optional override: extract token from headers (Authorization/Cookie) */\n extractToken?: (headers: Record<string, string | string[] | undefined>, cookieName: string) => string | null;\n };\n}\n\nexport class SessionService<TClaims extends Record<string, unknown> = Record<string, unknown>> {\n private cfg: NonNullable<SessionConfig>;\n\n constructor(cfg: NonNullable<SessionConfig>) {\n this.cfg = cfg || ({} as any);\n }\n\n getCookieName(): string {\n return this.cfg?.cookie?.name || 'w3a_session';\n }\n\n buildSetCookie(token: string): string {\n if (this.cfg?.cookie?.buildSetHeader) return this.cfg.cookie.buildSetHeader(token);\n const name = this.getCookieName();\n const cookieParts = [`${name}=${token}`];\n const path = '/';\n const httpOnly = true;\n const secure = true; // default secure\n const sameSite = 'Lax';\n const maxAge = 24 * 3600; // 1 day default\n cookieParts.push(`Path=${path}`);\n if (httpOnly) cookieParts.push('HttpOnly');\n if (secure) cookieParts.push('Secure');\n if (sameSite) cookieParts.push(`SameSite=${sameSite}`);\n if (maxAge) {\n cookieParts.push(`Max-Age=${maxAge}`);\n const expires = new Date(Date.now() + (maxAge * 1000)).toUTCString();\n cookieParts.push(`Expires=${expires}`);\n }\n return cookieParts.join('; ');\n }\n\n buildClearCookie(): string {\n if (this.cfg?.cookie?.buildClearHeader) return this.cfg.cookie.buildClearHeader();\n const name = this.getCookieName();\n const path = '/';\n const secure = true;\n const httpOnly = true;\n const parts = [\n `${name}=`,\n `Path=${path}`,\n 'Max-Age=0',\n 'Expires=Thu, 01 Jan 1970 00:00:00 GMT'\n ];\n if (httpOnly) parts.push('HttpOnly');\n if (secure) parts.push('Secure');\n const sameSite = 'Lax';\n if (sameSite) parts.push(`SameSite=${sameSite}`);\n return parts.join('; ');\n }\n\n /** Sign a JWT with configured algorithm. Adds iat/exp and copies iss/aud. */\n async signJwt(sub: string, extraClaims?: Record<string, unknown>): Promise<string> {\n const jwt = this.cfg?.jwt || {};\n const built = await Promise.resolve(jwt.buildClaims?.({ sub, context: extraClaims })) || {};\n const payload = { sub, ...(extraClaims || {}), ...(built || {}) } as Record<string, unknown>;\n if (typeof jwt.signToken === 'function') {\n // Full override of signing: user supplies the complete token\n const token = await Promise.resolve(jwt.signToken({ header: { typ: 'JWT' }, payload } as any));\n return token;\n }\n throw new Error('SessionService: No JWT signing hook or provider configured');\n }\n\n /** Verify signature and expiration. Returns payload on success. */\n async verifyJwt(token: string): Promise<{ valid: boolean; payload?: any }> {\n const verify = this.cfg?.jwt?.verifyToken;\n if (typeof verify !== 'function') return { valid: false };\n return await Promise.resolve(verify(token));\n }\n\n parse(\n headers: Record<string, string | string[] | undefined>\n ): Promise<{ ok: true; claims: TClaims } | { ok: false }> {\n const authHeader = (headers['authorization'] || headers['Authorization']) as string | undefined;\n let token: string | null = null;\n if (authHeader && /^Bearer\\s+/.test(authHeader)) token = authHeader.replace(/^Bearer\\s+/i, '').trim();\n const cookieHeader = (headers['cookie'] || headers['Cookie']) as string | undefined;\n if (!token && cookieHeader) {\n const name = this.getCookieName();\n for (const part of cookieHeader.split(';')) {\n const [k, v] = part.split('=');\n if (k && k.trim() === name) { token = (v || '').trim(); break; }\n }\n }\n if (!token) return Promise.resolve({ ok: false });\n return this.verifyJwt(token).then(v =>\n v.valid\n ? { ok: true, claims: v.payload as TClaims }\n : { ok: false }\n );\n }\n\n // === token helpers ===\n extractTokenFromHeaders(headers: Record<string, string | string[] | undefined>): string | null {\n if (this.cfg?.cookie?.extractToken) return this.cfg.cookie.extractToken(headers, this.getCookieName());\n const authHeader = (headers['authorization'] || headers['Authorization']) as string | undefined;\n if (authHeader && /^Bearer\\s+/.test(authHeader)) return authHeader.replace(/^Bearer\\s+/i, '').trim();\n const cookieHeader = (headers['cookie'] || headers['Cookie']) as string | undefined;\n if (cookieHeader) {\n const name = this.getCookieName();\n for (const part of cookieHeader.split(';')) {\n const [k, v] = part.split('=');\n if (k && k.trim() === name) return (v || '').trim();\n }\n }\n return null;\n }\n\n async refresh(headers: Record<string, string | string[] | undefined>): Promise<{ ok: boolean; jwt?: string; code?: string; message?: string }>{\n try {\n const token = this.extractTokenFromHeaders(headers);\n if (!token) return { ok: false, code: 'unauthorized', message: 'No session token' };\n const v = await this.verifyJwt(token);\n if (!v.valid) return { ok: false, code: 'unauthorized', message: 'Invalid token' };\n const payload: any = v.payload || {};\n if (!this.isWithinRefreshWindow(payload)) return { ok: false, code: 'not_eligible', message: 'Not within refresh window' };\n const sub = String(payload.sub || '');\n if (!sub) return { ok: false, code: 'invalid_claims', message: 'Missing sub claim' };\n const next = await this.signJwt(sub);\n return { ok: true, jwt: next };\n } catch (e: any) {\n return { ok: false, code: 'internal', message: e?.message || 'Refresh failed' };\n }\n }\n\n nowSeconds(): number { return Math.floor(Date.now() / 1000); }\n\n private isWithinRefreshWindow(payload: any): boolean {\n try {\n const now = this.nowSeconds();\n const exp = Number(payload?.exp || 0);\n if (!exp || now >= exp) return false; // no refresh if already expired\n const windowSec = Number(this.cfg?.jwt?.refreshWindowSec || 15 * 60);\n return (exp - now) <= windowSec;\n } catch { return false; }\n }\n}\n\n/*\n * Utility: parse comma-separated list of origins into a normalized unique list\n * - canonicalizes to protocol + host + optional port\n * - lowercases host, strips path/query/hash, trims spaces/trailing slashes\n */\nexport function parseCsvList(input?: string): string[] {\n const out = new Set<string>();\n for (const raw of String(input || '').split(',')) {\n const s = raw.trim();\n if (!s) continue;\n try {\n const u = new URL(s);\n const host = u.hostname.toLowerCase();\n const port = u.port ? `:${u.port}` : '';\n const proto = u.protocol === 'http:' || u.protocol === 'https:' ? u.protocol : 'https:';\n out.add(`${proto}//${host}${port}`);\n } catch {\n const stripped = s.replace(/\\/$/, '');\n if (stripped) out.add(stripped);\n }\n }\n return Array.from(out);\n}\n\n/*\n * Utility: merge multiple CSV lists of origins and return normalized list or '*'\n */\nexport function buildCorsOrigins(...inputs: Array<string | undefined>): string[] | '*' {\n const merged = new Set<string>();\n for (const input of inputs) {\n for (const origin of parseCsvList(input)) merged.add(origin);\n }\n const list = Array.from(merged);\n return list.length > 0 ? list : '*';\n}\n","import { buildCorsOrigins } from '../../core/SessionService';\nimport type { RelayRouterOptions } from '../relay';\n\nexport function json(body: unknown, init?: ResponseInit, extraHeaders?: Record<string, string>): Response {\n const headers = new Headers({ 'Content-Type': 'application/json; charset=utf-8' });\n\n // Merge init.headers into our base headers (ResponseInit headers are otherwise overwritten).\n const initHeaders = init?.headers;\n if (initHeaders) {\n try {\n new Headers(initHeaders).forEach((v, k) => headers.set(k, v));\n } catch { }\n }\n\n if (extraHeaders) {\n for (const [k, v] of Object.entries(extraHeaders)) headers.set(k, v);\n }\n\n const { headers: _omit, ...rest } = init || {};\n return new Response(JSON.stringify(body), { status: 200, ...rest, headers });\n}\n\nexport function withCors(headers: Headers, opts?: RelayRouterOptions, request?: Request): void {\n if (!opts?.corsOrigins) return;\n let allowedOrigin: string | '*' | undefined;\n const normalized = buildCorsOrigins(...(opts.corsOrigins || []));\n if (normalized === '*') {\n allowedOrigin = '*';\n headers.set('Access-Control-Allow-Origin', '*');\n } else if (Array.isArray(normalized)) {\n const origin = request?.headers.get('Origin') || '';\n if (origin && normalized.includes(origin)) {\n allowedOrigin = origin;\n headers.set('Access-Control-Allow-Origin', origin);\n headers.append('Vary', 'Origin');\n }\n }\n headers.set('Access-Control-Allow-Methods', 'GET,POST,OPTIONS');\n headers.set('Access-Control-Allow-Headers', 'Content-Type,Authorization');\n // Only advertise credentials when we echo back a specific origin (not '*')\n if (allowedOrigin && allowedOrigin !== '*') {\n headers.set('Access-Control-Allow-Credentials', 'true');\n }\n}\n\nexport function toResponse(out: { status: number; headers: Record<string, string>; body: string }): Response {\n return new Response(out.body, { status: out.status, headers: out.headers });\n}\n\nexport function isObject(v: unknown): v is Record<string, unknown> {\n return typeof v === 'object' && v !== null;\n}\n\nexport async function readJson(request: Request): Promise<unknown> {\n try {\n return await request.json();\n } catch {\n return null;\n }\n}\n\nexport function headersToRecord(headers: Headers): Record<string, string> {\n const out: Record<string, string> = {};\n headers.forEach((v, k) => { out[k] = v; });\n return out;\n}\n","import type { CreateAccountAndRegisterRequest, CreateAccountAndRegisterResult } from '../../../core/types';\nimport type { CloudflareRelayContext } from '../createCloudflareRouter';\nimport { isObject, json, readJson } from '../http';\n\nexport async function handleCreateAccountAndRegisterUser(ctx: CloudflareRelayContext): Promise<Response | null> {\n if (ctx.method !== 'POST' || ctx.pathname !== '/create_account_and_register_user') return null;\n\n const body = await readJson(ctx.request);\n if (!isObject(body)) {\n return json({ code: 'invalid_body', message: 'JSON body required' }, { status: 400 });\n }\n\n const new_account_id = typeof body.new_account_id === 'string' ? body.new_account_id : '';\n const new_public_key = typeof body.new_public_key === 'string' ? body.new_public_key : '';\n const threshold_ed25519 = isObject((body as Record<string, unknown>).threshold_ed25519)\n ? (body as Record<string, unknown>).threshold_ed25519\n : undefined;\n const vrf_data = isObject(body.vrf_data) ? body.vrf_data : null;\n const webauthn_registration = isObject(body.webauthn_registration) ? body.webauthn_registration : null;\n const deterministic_vrf_public_key = (body as Record<string, unknown>).deterministic_vrf_public_key;\n const authenticator_options = isObject((body as Record<string, unknown>).authenticator_options)\n ? (body as Record<string, unknown>).authenticator_options\n : undefined;\n\n if (!new_account_id) {\n return json({ code: 'invalid_body', message: 'Missing or invalid new_account_id' }, { status: 400 });\n }\n if (!new_public_key) {\n return json({ code: 'invalid_body', message: 'Missing or invalid new_public_key' }, { status: 400 });\n }\n if (!vrf_data) {\n return json({ code: 'invalid_body', message: 'Missing or invalid vrf_data' }, { status: 400 });\n }\n if (!webauthn_registration) {\n return json({ code: 'invalid_body', message: 'Missing or invalid webauthn_registration' }, { status: 400 });\n }\n\n const threshold = ctx.opts.threshold;\n const thresholdClientVerifyingShareB64u = isObject(threshold_ed25519)\n && typeof (threshold_ed25519 as Record<string, unknown>).client_verifying_share_b64u === 'string'\n ? String((threshold_ed25519 as Record<string, unknown>).client_verifying_share_b64u || '').trim()\n : '';\n let thresholdKeygen:\n | (Awaited<ReturnType<NonNullable<typeof threshold>['keygenFromClientVerifyingShareForRegistration']>> & { ok: true })\n | null = null;\n let thresholdWarning: string | null = null;\n\n if (thresholdClientVerifyingShareB64u) {\n if (!threshold) {\n thresholdWarning = 'threshold signing is not configured on this server';\n } else {\n const rpId = typeof (vrf_data as { rp_id?: unknown; rpId?: unknown }).rp_id === 'string'\n ? String((vrf_data as { rp_id?: string }).rp_id || '')\n : (typeof (vrf_data as { rpId?: unknown }).rpId === 'string' ? String((vrf_data as { rpId?: string }).rpId || '') : '');\n if (!rpId.trim()) {\n thresholdWarning = 'missing vrf_data.rp_id';\n } else {\n const out = await threshold.keygenFromClientVerifyingShareForRegistration({\n nearAccountId: new_account_id,\n rpId,\n clientVerifyingShareB64u: thresholdClientVerifyingShareB64u,\n });\n if (!out.ok) {\n thresholdWarning = out.message || 'threshold-ed25519 registration keygen failed';\n } else {\n thresholdKeygen = out;\n }\n }\n }\n }\n\n const input = {\n new_account_id,\n new_public_key,\n vrf_data,\n webauthn_registration,\n deterministic_vrf_public_key,\n authenticator_options,\n } as unknown as CreateAccountAndRegisterRequest;\n\n const result = await ctx.service.createAccountAndRegisterUser(input);\n let response: CreateAccountAndRegisterResult = result;\n\n if (result.success && threshold && thresholdKeygen) {\n try {\n await threshold.putRelayerKeyMaterial({\n relayerKeyId: thresholdKeygen.relayerKeyId,\n publicKey: thresholdKeygen.publicKey,\n relayerSigningShareB64u: thresholdKeygen.relayerSigningShareB64u,\n relayerVerifyingShareB64u: thresholdKeygen.relayerVerifyingShareB64u,\n });\n response = {\n ...response,\n thresholdEd25519: {\n relayerKeyId: thresholdKeygen.relayerKeyId,\n publicKey: thresholdKeygen.publicKey,\n relayerVerifyingShareB64u: thresholdKeygen.relayerVerifyingShareB64u,\n clientParticipantId: thresholdKeygen.clientParticipantId,\n relayerParticipantId: thresholdKeygen.relayerParticipantId,\n participantIds: thresholdKeygen.participantIds,\n },\n };\n } catch (e: unknown) {\n thresholdWarning = thresholdWarning || ((e && typeof e === 'object' && 'message' in e)\n ? String((e as { message?: unknown }).message || 'threshold signing persistence failed')\n : String(e || 'threshold signing persistence failed'));\n }\n }\n\n if (result.success && thresholdWarning) {\n response = {\n ...response,\n message: `${response.message || 'Account created and registered successfully'} (threshold enrollment skipped: ${thresholdWarning})`,\n };\n }\n\n return json(response, { status: response.success ? 200 : 400 });\n}\n","import type {\n ShamirApplyServerLockRequest,\n ShamirApplyServerLockResponse,\n ShamirRemoveServerLockRequest,\n ShamirRemoveServerLockResponse,\n} from './types';\nimport type { ShamirService } from './ShamirService';\nimport { isString } from '@/utils/validation';\n\nexport async function handleApplyServerLock(\n service: ShamirService,\n request: { body?: { kek_c_b64u?: string } },\n): Promise<{ status: number; headers: Record<string, string>; body: string }> {\n try {\n const kek_c_b64u = request.body?.kek_c_b64u;\n if (!isString(kek_c_b64u) || !kek_c_b64u) {\n return {\n status: 400,\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ error: 'kek_c_b64u required and must be a non-empty string' }),\n };\n }\n\n const out: ShamirApplyServerLockResponse = await service.applyServerLock(kek_c_b64u);\n const keyId = service.getCurrentShamirKeyId();\n\n return {\n status: 200,\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ ...out, keyId }),\n };\n } catch (e: any) {\n return {\n status: 500,\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ error: 'internal', details: e?.message }),\n };\n }\n}\n\nexport async function handleRemoveServerLock(\n service: ShamirService,\n request: { body?: { kek_cs_b64u?: string; keyId?: string } },\n): Promise<{ status: number; headers: Record<string, string>; body: string }> {\n try {\n const body = request.body;\n if (!body) {\n return {\n status: 400,\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ error: 'Missing body' }),\n };\n }\n const { kek_cs_b64u, keyId } = body;\n if (!isString(kek_cs_b64u) || !kek_cs_b64u) {\n return {\n status: 400,\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ error: 'kek_cs_b64u required and must be a non-empty string' }),\n };\n }\n if (!isString(keyId) || !keyId) {\n return {\n status: 400,\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ error: 'keyId required and must be a non-empty string' }),\n };\n }\n\n const providedKeyId = String(keyId);\n const currentKeyId = service.getCurrentShamirKeyId();\n let out: ShamirRemoveServerLockResponse;\n\n if (currentKeyId && providedKeyId === currentKeyId) {\n out = await service.removeServerLock(kek_cs_b64u);\n } else if (service.hasGraceKey(providedKeyId)) {\n out = await service.removeGraceServerLockWithKey(providedKeyId, { kek_cs_b64u } as ShamirRemoveServerLockRequest);\n } else {\n return {\n status: 400,\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ error: 'unknown keyId' }),\n };\n }\n\n return {\n status: 200,\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify(out),\n };\n } catch (e: any) {\n return {\n status: 500,\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ error: 'internal', details: e?.message }),\n };\n }\n}\n\nexport async function handleGetShamirKeyInfo(\n service: ShamirService,\n): Promise<{ status: number; headers: Record<string, string>; body: string }> {\n try {\n await service.ensureReady();\n const currentKeyId = service.getCurrentShamirKeyId();\n const graceKeyIds = service.getGraceKeyIds();\n\n return {\n status: 200,\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({\n currentKeyId,\n p_b64u: service.getShamirConfig()?.shamir_p_b64u ?? null,\n graceKeyIds,\n }),\n };\n } catch (e: any) {\n return {\n status: 500,\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ error: 'internal', details: e?.message }),\n };\n }\n}\n\nexport async function handleListGraceKeys(\n service: ShamirService,\n): Promise<{ status: number; headers: Record<string, string>; body: string }> {\n try {\n await service.ensureGraceKeysLoaded();\n return {\n status: 200,\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ graceKeyIds: service.getGraceKeyIds() }),\n };\n } catch (e: any) {\n return {\n status: 500,\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ error: 'internal', details: e?.message }),\n };\n }\n}\n\nexport async function handleAddGraceKey(\n service: ShamirService,\n request: { e_s_b64u?: string; d_s_b64u?: string },\n): Promise<{ status: number; headers: Record<string, string>; body: string }> {\n try {\n const { e_s_b64u, d_s_b64u } = request || ({} as any);\n if (!isString(e_s_b64u) || !e_s_b64u || !isString(d_s_b64u) || !d_s_b64u) {\n return {\n status: 400,\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ error: 'e_s_b64u and d_s_b64u required' }),\n };\n }\n\n await service.ensureGraceKeysLoaded();\n const added = await service.addGraceKeyInternal({ e_s_b64u, d_s_b64u }, { persist: true, skipIfExists: true });\n if (!added) {\n return {\n status: 400,\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ error: 'failed to add grace key' }),\n };\n }\n\n return {\n status: 200,\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ keyId: added.keyId }),\n };\n } catch (e: any) {\n return {\n status: 500,\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ error: 'internal', details: e?.message }),\n };\n }\n}\n\nexport async function handleRemoveGraceKey(\n service: ShamirService,\n request: { keyId?: string },\n): Promise<{ status: number; headers: Record<string, string>; body: string }> {\n try {\n const keyId = request?.keyId;\n if (!isString(keyId) || !keyId) {\n return {\n status: 400,\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ error: 'keyId required and must be a non-empty string' }),\n };\n }\n\n const removed = await service.removeGraceKeyInternal(keyId, { persist: true });\n return {\n status: 200,\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ removed }),\n };\n } catch (e: any) {\n return {\n status: 500,\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ error: 'internal', details: e?.message }),\n };\n }\n}\n","import { buildCorsOrigins } from '../../../core/SessionService';\nimport { handleGetShamirKeyInfo } from '../../../core/shamirHandlers';\nimport type { CloudflareRelayContext } from '../createCloudflareRouter';\nimport { json } from '../http';\n\nexport async function handleHealth(ctx: CloudflareRelayContext): Promise<Response | null> {\n if (!ctx.opts.healthz || ctx.method !== 'GET' || ctx.pathname !== '/healthz') return null;\n\n // Surface simple CORS info for diagnostics (normalized)\n const allowed = buildCorsOrigins(...(ctx.opts.corsOrigins || []));\n const corsAllowed = allowed === '*' ? '*' : allowed;\n const shamir = ctx.service.shamirService;\n const shamirConfigured = Boolean(shamir && shamir.hasShamir());\n const thresholdConfigured = Boolean(ctx.opts.threshold);\n let currentKeyId: string | null = null;\n if (shamirConfigured && shamir) {\n try {\n const { currentKeyId: id } = JSON.parse((await handleGetShamirKeyInfo(shamir)).body) as { currentKeyId?: string };\n currentKeyId = id || null;\n } catch { }\n }\n\n const proverBaseUrl = ctx.service.emailRecovery?.getZkEmailProverBaseUrl?.() ?? null;\n const zkEmailConfigured = Boolean(proverBaseUrl);\n\n return json({\n ok: true,\n // Backwards-compatible field (was previously top-level).\n currentKeyId,\n shamir: { configured: shamirConfigured, currentKeyId },\n zkEmail: { configured: zkEmailConfigured, proverBaseUrl },\n thresholdEd25519: { configured: thresholdConfigured },\n cors: { allowedOrigins: corsAllowed },\n }, { status: 200 });\n}\n\nexport async function handleReady(ctx: CloudflareRelayContext): Promise<Response | null> {\n if (!ctx.opts.readyz || ctx.method !== 'GET' || ctx.pathname !== '/readyz') return null;\n\n const allowed = buildCorsOrigins(...(ctx.opts.corsOrigins || []));\n const corsAllowed = allowed === '*' ? '*' : allowed;\n\n const shamir = ctx.service.shamirService;\n const shamirConfigured = Boolean(shamir && shamir.hasShamir());\n const thresholdConfigured = Boolean(ctx.opts.threshold);\n\n let shamirReady: boolean | null = null;\n let shamirCurrentKeyId: string | null = null;\n let shamirError: string | undefined;\n if (shamirConfigured && shamir) {\n try {\n await shamir.ensureReady();\n shamirReady = true;\n const { currentKeyId } = JSON.parse((await handleGetShamirKeyInfo(shamir)).body) as { currentKeyId?: string };\n shamirCurrentKeyId = currentKeyId || null;\n } catch (e: any) {\n shamirReady = false;\n shamirError = e?.message || String(e);\n }\n }\n\n const zk = ctx.service.emailRecovery\n ? await ctx.service.emailRecovery.checkZkEmailProverHealth()\n : { configured: false, baseUrl: null, healthy: null as boolean | null };\n\n const ok =\n (shamirConfigured ? shamirReady === true : true) &&\n (zk.configured ? zk.healthy === true : true);\n\n return json({\n ok,\n shamir: {\n configured: shamirConfigured,\n ready: shamirConfigured ? shamirReady : null,\n currentKeyId: shamirCurrentKeyId,\n error: shamirError,\n },\n thresholdEd25519: { configured: thresholdConfigured },\n zkEmail: zk,\n cors: { allowedOrigins: corsAllowed },\n }, { status: ok ? 200 : 503 });\n}\n","import { parseRecoverEmailRequest } from '../../../email-recovery/emailParsers';\nimport type { CloudflareRelayContext } from '../createCloudflareRouter';\nimport { json, readJson } from '../http';\n\nexport async function handleRecoverEmail(ctx: CloudflareRelayContext): Promise<Response | null> {\n if (ctx.method !== 'POST' || ctx.pathname !== '/recover-email') return null;\n\n const prefer = String(ctx.request.headers.get('prefer') || '').toLowerCase();\n const respondAsync =\n prefer.includes('respond-async') ||\n String(ctx.url.searchParams.get('async') || '').trim() === '1' ||\n String(ctx.url.searchParams.get('respond_async') || '').trim() === '1';\n\n const rawBody = await readJson(ctx.request);\n const parsed = parseRecoverEmailRequest(rawBody, { headers: ctx.request.headers });\n if (!parsed.ok) {\n return json({ code: parsed.code, message: parsed.message }, { status: parsed.status });\n }\n const { accountId, emailBlob, explicitMode } = parsed;\n\n if (!ctx.service.emailRecovery) {\n return json(\n { code: 'email_recovery_unavailable', message: 'EmailRecoveryService is not configured on this server' },\n { status: 503 }\n );\n }\n\n if (respondAsync && ctx.cfCtx && typeof ctx.cfCtx.waitUntil === 'function') {\n ctx.cfCtx.waitUntil(\n ctx.service.emailRecovery\n .requestEmailRecovery({ accountId, emailBlob, explicitMode })\n .then((result) => {\n ctx.logger.info('[recover-email] async complete', {\n success: result?.success === true,\n accountId,\n error: result?.success ? undefined : result?.error,\n });\n })\n .catch((err: any) => {\n ctx.logger.error('[recover-email] async error', {\n accountId,\n error: err?.message || String(err),\n });\n })\n );\n return json({ success: true, queued: true, accountId }, { status: 202 });\n }\n\n const result = await ctx.service.emailRecovery.requestEmailRecovery({ accountId, emailBlob, explicitMode });\n return json(result, { status: result.success ? 202 : 400 });\n}\n","import type { DelegateActionPolicy } from '../delegateAction';\nimport type { RouterLogger } from './logger';\nimport type {\n ThresholdEd25519AuthorizeWithSessionRequest,\n ThresholdEd25519AuthorizeRequest,\n ThresholdEd25519AuthorizeResponse,\n ThresholdEd25519CosignFinalizeRequest,\n ThresholdEd25519CosignFinalizeResponse,\n ThresholdEd25519CosignInitRequest,\n ThresholdEd25519CosignInitResponse,\n ThresholdEd25519KeygenRequest,\n ThresholdEd25519KeygenResponse,\n ThresholdEd25519SessionRequest,\n ThresholdEd25519SessionResponse,\n ThresholdEd25519SignFinalizeRequest,\n ThresholdEd25519SignFinalizeResponse,\n ThresholdEd25519SignInitRequest,\n ThresholdEd25519SignInitResponse,\n} from '../core/types';\n\n// Minimal session adapter interface expected by the routers.\nexport type SessionClaims = Record<string, unknown>;\n\nexport type SessionKind = 'cookie' | 'jwt';\n\nexport function parseSessionKind(body: unknown): SessionKind {\n const v = (body && typeof body === 'object' && !Array.isArray(body))\n ? (body as Record<string, unknown>)\n : {};\n const raw = v.sessionKind ?? v.session_kind;\n return raw === 'cookie' ? 'cookie' : 'jwt';\n}\n\nexport interface SessionAdapter {\n signJwt(sub: string, extra?: Record<string, unknown>): Promise<string>;\n parse(headers: Record<string, string | string[] | undefined>): Promise<{ ok: true; claims: SessionClaims } | { ok: false }>;\n buildSetCookie(token: string): string;\n buildClearCookie(): string;\n refresh(headers: Record<string, string | string[] | undefined>): Promise<{ ok: boolean; jwt?: string; code?: string; message?: string }>;\n}\n\nexport type ThresholdEd25519RegistrationKeygenResult =\n | {\n ok: true;\n clientParticipantId: number;\n relayerParticipantId: number;\n participantIds: number[];\n relayerKeyId: string;\n publicKey: string;\n relayerSigningShareB64u: string;\n relayerVerifyingShareB64u: string;\n }\n | { ok: false; code: string; message: string };\n\nexport interface ThresholdSigningAdapter {\n keygenFromClientVerifyingShareForRegistration(input: {\n nearAccountId: string;\n rpId: string;\n clientVerifyingShareB64u: string;\n }): Promise<ThresholdEd25519RegistrationKeygenResult>;\n putRelayerKeyMaterial(input: {\n relayerKeyId: string;\n publicKey: string;\n relayerSigningShareB64u: string;\n relayerVerifyingShareB64u: string;\n }): Promise<void>;\n thresholdEd25519Keygen(request: ThresholdEd25519KeygenRequest): Promise<ThresholdEd25519KeygenResponse>;\n authorizeThresholdEd25519(request: ThresholdEd25519AuthorizeRequest): Promise<ThresholdEd25519AuthorizeResponse>;\n authorizeThresholdEd25519WithSession(input: {\n sessionId: string;\n userId: string;\n request: ThresholdEd25519AuthorizeWithSessionRequest;\n }): Promise<ThresholdEd25519AuthorizeResponse>;\n thresholdEd25519Session(request: ThresholdEd25519SessionRequest): Promise<ThresholdEd25519SessionResponse>;\n thresholdEd25519SignInit(request: ThresholdEd25519SignInitRequest): Promise<ThresholdEd25519SignInitResponse>;\n thresholdEd25519SignFinalize(request: ThresholdEd25519SignFinalizeRequest): Promise<ThresholdEd25519SignFinalizeResponse>;\n /**\n * Internal coordinator→cosigner cosigning API (optional).\n * When omitted, relayer-fleet cosigning mode is unsupported.\n */\n thresholdEd25519CosignInit?: (request: ThresholdEd25519CosignInitRequest) => Promise<ThresholdEd25519CosignInitResponse>;\n thresholdEd25519CosignFinalize?: (request: ThresholdEd25519CosignFinalizeRequest) => Promise<ThresholdEd25519CosignFinalizeResponse>;\n}\n\nexport interface RelayRouterOptions {\n healthz?: boolean;\n readyz?: boolean;\n /**\n * Optional list(s) of CORS origins (CSV strings or literal origins).\n * Pass raw strings; the router normalizes/merges internally.\n */\n corsOrigins?: Array<string | undefined>;\n /**\n * Optional route for submitting NEP-461 SignedDelegate meta-transactions.\n * - When omitted: disabled.\n * - When set: enabled at `route`.\n * `policy` is server-controlled and is never read from the request body.\n */\n signedDelegate?: {\n route: string;\n policy?: DelegateActionPolicy;\n };\n // Optional: customize session route paths\n sessionRoutes?: { auth?: string; logout?: string };\n // Optional: pluggable session adapter\n session?: SessionAdapter | null;\n // Optional: pluggable threshold signing service\n threshold?: ThresholdSigningAdapter | null;\n // Optional logger; defaults to silent.\n logger?: RouterLogger | null;\n}\n","import { parseSessionKind } from '../../relay';\nimport type { CloudflareRelayContext } from '../createCloudflareRouter';\nimport { headersToRecord, json, readJson } from '../http';\n\nexport async function handleSessionAuth(ctx: CloudflareRelayContext): Promise<Response | null> {\n if (ctx.method !== 'GET' || ctx.pathname !== ctx.mePath) return null;\n\n try {\n const session = ctx.opts.session;\n if (!session) {\n return json({ authenticated: false, code: 'sessions_disabled', message: 'Sessions are not configured' }, { status: 501 });\n }\n\n const parsed = await session.parse(headersToRecord(ctx.request.headers));\n return json(\n parsed.ok\n ? { authenticated: true, claims: parsed.claims }\n : { authenticated: false },\n { status: parsed.ok ? 200 : 401 }\n );\n } catch (e: any) {\n return json({ authenticated: false, code: 'internal', message: e?.message || 'Internal error' }, { status: 500 });\n }\n}\n\nexport async function handleSessionLogout(ctx: CloudflareRelayContext): Promise<Response | null> {\n if (ctx.method !== 'POST' || ctx.pathname !== ctx.logoutPath) return null;\n\n const res = json({ success: true }, { status: 200 });\n const session = ctx.opts.session;\n if (session) {\n // Clear cookie with Max-Age=0\n res.headers.set('Set-Cookie', session.buildClearCookie());\n }\n return res;\n}\n\nexport async function handleSessionRefresh(ctx: CloudflareRelayContext): Promise<Response | null> {\n if (ctx.method !== 'POST' || ctx.pathname !== '/session/refresh') return null;\n\n const body = await readJson(ctx.request);\n const sessionKind = parseSessionKind(body);\n const session = ctx.opts.session;\n if (!session) {\n return json({ code: 'sessions_disabled', message: 'Sessions are not configured' }, { status: 501 });\n }\n const out = await session.refresh(Object.fromEntries(ctx.request.headers.entries()));\n if (!out.ok || !out.jwt) {\n return json(\n { code: out.code || 'not_eligible', message: out.message || 'Refresh not eligible' },\n { status: (out.code === 'unauthorized') ? 401 : 400 }\n );\n }\n const res = json(sessionKind === 'cookie' ? { ok: true } : { ok: true, jwt: out.jwt }, { status: 200 });\n if (sessionKind === 'cookie' && out.jwt) {\n try {\n res.headers.set('Set-Cookie', session.buildSetCookie(out.jwt));\n } catch { }\n }\n return res;\n}\n","import {\n handleApplyServerLock,\n handleRemoveServerLock,\n handleGetShamirKeyInfo,\n} from '../../../core/shamirHandlers';\nimport type { CloudflareRelayContext } from '../createCloudflareRouter';\nimport { isObject, json, readJson, toResponse } from '../http';\n\nexport async function handleShamir(ctx: CloudflareRelayContext): Promise<Response | null> {\n if (ctx.method === 'POST' && ctx.pathname === '/vrf/apply-server-lock') {\n const shamir = ctx.service.shamirService;\n if (!shamir || !(await shamir.ensureReady())) {\n return json({ code: 'shamir_disabled', message: 'Shamir 3-pass is not configured on this server' }, { status: 503 });\n }\n\n const body = await readJson(ctx.request);\n const valid = isObject(body) && typeof body.kek_c_b64u === 'string' && body.kek_c_b64u.length > 0;\n if (!valid) {\n return json({ code: 'invalid_body', message: 'kek_c_b64u is required' }, { status: 400 });\n }\n\n const out = await handleApplyServerLock(shamir, {\n body: { kek_c_b64u: String((body as Record<string, unknown>).kek_c_b64u) },\n });\n return toResponse(out);\n }\n\n if (ctx.method === 'POST' && ctx.pathname === '/vrf/remove-server-lock') {\n const shamir = ctx.service.shamirService;\n if (!shamir || !(await shamir.ensureReady())) {\n return json({ code: 'shamir_disabled', message: 'Shamir 3-pass is not configured on this server' }, { status: 503 });\n }\n\n const body = await readJson(ctx.request);\n const valid = isObject(body)\n && typeof body.kek_cs_b64u === 'string' && body.kek_cs_b64u.length > 0\n && typeof (body as Record<string, unknown>).keyId === 'string'\n && String((body as Record<string, unknown>).keyId).length > 0;\n if (!valid) {\n return json({ code: 'invalid_body', message: 'kek_cs_b64u and keyId are required' }, { status: 400 });\n }\n\n const out = await handleRemoveServerLock(shamir, {\n body: {\n kek_cs_b64u: String((body as Record<string, unknown>).kek_cs_b64u),\n keyId: String((body as Record<string, unknown>).keyId),\n },\n });\n return toResponse(out);\n }\n\n if (ctx.method === 'GET' && ctx.pathname === '/shamir/key-info') {\n const shamir = ctx.service.shamirService;\n if (!shamir || !(await shamir.ensureReady())) {\n return json({ code: 'shamir_disabled', message: 'Shamir 3-pass is not configured on this server' }, { status: 503 });\n }\n const out = await handleGetShamirKeyInfo(shamir);\n return toResponse(out);\n }\n\n return null;\n}\n","import type { CloudflareRelayContext } from '../createCloudflareRouter';\nimport { isObject, json, readJson } from '../http';\n\nexport async function handleSignedDelegate(ctx: CloudflareRelayContext): Promise<Response | null> {\n if (!ctx.signedDelegatePath || ctx.pathname !== ctx.signedDelegatePath) return null;\n if (ctx.method !== 'POST') return null;\n\n const body = await readJson(ctx.request);\n const valid = isObject(body)\n && typeof (body as any).hash === 'string'\n && Boolean((body as any).hash)\n && Boolean((body as any).signedDelegate);\n if (!valid) {\n return json({ ok: false, code: 'invalid_body', message: 'Expected { hash, signedDelegate }' }, { status: 400 });\n }\n\n const result = await ctx.service.executeSignedDelegate({\n hash: String((body as any).hash),\n signedDelegate: (body as any).signedDelegate,\n policy: ctx.signedDelegatePolicy,\n });\n\n if (!result || !result.ok) {\n return json({\n ok: false,\n code: result?.code || 'delegate_execution_failed',\n message: result?.error || 'Failed to execute delegate action',\n }, { status: 400 });\n }\n\n return json({\n ok: true,\n relayerTxHash: result.transactionHash || null,\n status: 'submitted',\n outcome: result.outcome ?? null,\n }, { status: 200 });\n}\n","export type ThresholdEd25519RouteResult = { ok: boolean; code?: string };\n\nexport function thresholdEd25519StatusCode(result: ThresholdEd25519RouteResult): number {\n if (result.ok) return 200;\n switch (result.code) {\n case 'not_found':\n return 404;\n case 'not_implemented':\n return 501;\n case 'threshold_disabled':\n return 503;\n case 'internal':\n return 500;\n case 'unauthorized':\n return 401;\n default:\n return 400;\n }\n}\n","import type { AccessKeyList } from '../../../core/NearClient';\nimport { alphabetizeStringify, sha256BytesUtf8 } from '../../../utils/digests';\nimport { ensureEd25519Prefix, toOptionalString, toTrimmedString } from '../../../utils/validation';\nimport {\n THRESHOLD_ED25519_2P_PARTICIPANT_IDS,\n normalizeThresholdEd25519ParticipantIds,\n} from '../../../threshold/participants';\n\nexport type ThresholdValidationOk = { ok: true };\nexport type ThresholdValidationErr = { ok: false; code: string; message: string };\nexport type ThresholdValidationResult = ThresholdValidationOk | ThresholdValidationErr;\n\nexport function isObject(v: unknown): v is Record<string, unknown> {\n return !!v && typeof v === 'object' && !Array.isArray(v);\n}\n\nexport function isValidNumber(v: unknown): v is number {\n return typeof v === 'number' && Number.isFinite(v);\n}\n\nexport function toPrefixWithColon(prefix: unknown, defaultPrefix: string): string {\n const p = toOptionalString(prefix);\n if (!p) return defaultPrefix;\n return p.endsWith(':') ? p : `${p}:`;\n}\n\nexport function toThresholdEd25519KeyPrefix(prefix: unknown): string {\n return toPrefixWithColon(prefix, 'w3a:threshold-ed25519:key:');\n}\n\nexport function toThresholdEd25519SessionPrefix(prefix: unknown): string {\n return toPrefixWithColon(prefix, 'w3a:threshold-ed25519:sess:');\n}\n\nexport function toThresholdEd25519AuthPrefix(prefix: unknown): string {\n return toPrefixWithColon(prefix, 'w3a:threshold-ed25519:auth:');\n}\n\nexport type ParsedThresholdEd25519KeyRecord = {\n publicKey: string;\n relayerSigningShareB64u: string;\n relayerVerifyingShareB64u: string;\n};\n\nexport function parseThresholdEd25519KeyRecord(raw: unknown): ParsedThresholdEd25519KeyRecord | null {\n if (!isObject(raw)) return null;\n const publicKey = toOptionalString(raw.publicKey);\n const relayerSigningShareB64u = toOptionalString(raw.relayerSigningShareB64u);\n const relayerVerifyingShareB64u = toOptionalString(raw.relayerVerifyingShareB64u);\n if (!publicKey || !relayerSigningShareB64u || !relayerVerifyingShareB64u) return null;\n return { publicKey, relayerSigningShareB64u, relayerVerifyingShareB64u };\n}\n\nexport type ParsedThresholdEd25519Commitments = { hiding: string; binding: string };\n\nexport function parseThresholdEd25519Commitments(raw: unknown): ParsedThresholdEd25519Commitments | null {\n if (!isObject(raw)) return null;\n const hiding = toOptionalString(raw.hiding);\n const binding = toOptionalString(raw.binding);\n if (!hiding || !binding) return null;\n return { hiding, binding };\n}\n\nexport type ParsedThresholdEd25519CommitmentsById = Record<string, ParsedThresholdEd25519Commitments>;\n\nexport function parseThresholdEd25519CommitmentsById(raw: unknown): ParsedThresholdEd25519CommitmentsById | null {\n if (!isObject(raw)) return null;\n const out: ParsedThresholdEd25519CommitmentsById = {};\n for (const [k, v] of Object.entries(raw)) {\n const key = toTrimmedString(k);\n if (!key) return null;\n const commitments = parseThresholdEd25519Commitments(v);\n if (!commitments) return null;\n out[key] = commitments;\n }\n return Object.keys(out).length ? out : null;\n}\n\nexport type ParsedThresholdEd25519MpcSessionRecord = {\n expiresAtMs: number;\n relayerKeyId: string;\n purpose: string;\n intentDigestB64u: string;\n signingDigestB64u: string;\n userId: string;\n rpId: string;\n clientVerifyingShareB64u: string;\n participantIds: number[];\n};\n\nexport function parseThresholdEd25519MpcSessionRecord(raw: unknown): ParsedThresholdEd25519MpcSessionRecord | null {\n if (!isObject(raw)) return null;\n const expiresAtMs = raw.expiresAtMs;\n const relayerKeyId = toOptionalString(raw.relayerKeyId);\n const purpose = toOptionalString(raw.purpose);\n const intentDigestB64u = toOptionalString(raw.intentDigestB64u);\n const signingDigestB64u = toOptionalString(raw.signingDigestB64u);\n const userId = toOptionalString(raw.userId);\n const rpId = toOptionalString(raw.rpId);\n const clientVerifyingShareB64u = toOptionalString(raw.clientVerifyingShareB64u);\n const participantIds = normalizeThresholdEd25519ParticipantIds(raw.participantIds)\n || [...THRESHOLD_ED25519_2P_PARTICIPANT_IDS];\n if (!isValidNumber(expiresAtMs)) return null;\n if (\n !relayerKeyId ||\n !purpose ||\n !intentDigestB64u ||\n !signingDigestB64u ||\n !userId ||\n !rpId ||\n !clientVerifyingShareB64u\n ) return null;\n return {\n expiresAtMs,\n relayerKeyId,\n purpose,\n intentDigestB64u,\n signingDigestB64u,\n userId,\n rpId,\n clientVerifyingShareB64u,\n participantIds,\n };\n}\n\nexport type ParsedThresholdEd25519SigningSessionRecord = {\n expiresAtMs: number;\n mpcSessionId: string;\n relayerKeyId: string;\n signingDigestB64u: string;\n userId: string;\n rpId: string;\n clientVerifyingShareB64u: string;\n commitmentsById: ParsedThresholdEd25519CommitmentsById;\n relayerSigningShareB64u?: string;\n relayerNoncesB64u: string;\n participantIds: number[];\n};\n\nexport function parseThresholdEd25519SigningSessionRecord(raw: unknown): ParsedThresholdEd25519SigningSessionRecord | null {\n if (!isObject(raw)) return null;\n const expiresAtMs = raw.expiresAtMs;\n const mpcSessionId = toOptionalString(raw.mpcSessionId);\n const relayerKeyId = toOptionalString(raw.relayerKeyId);\n const signingDigestB64u = toOptionalString(raw.signingDigestB64u);\n const userId = toOptionalString(raw.userId);\n const rpId = toOptionalString(raw.rpId);\n const clientVerifyingShareB64u = toOptionalString(raw.clientVerifyingShareB64u);\n const commitmentsById = parseThresholdEd25519CommitmentsById(raw.commitmentsById);\n const relayerSigningShareB64u = toOptionalString(raw.relayerSigningShareB64u);\n const relayerNoncesB64u = toOptionalString(raw.relayerNoncesB64u);\n const participantIds =\n normalizeThresholdEd25519ParticipantIds(raw.participantIds)\n || [...THRESHOLD_ED25519_2P_PARTICIPANT_IDS];\n if (!isValidNumber(expiresAtMs)) return null;\n if (\n !mpcSessionId ||\n !relayerKeyId ||\n !signingDigestB64u ||\n !userId ||\n !rpId ||\n !clientVerifyingShareB64u ||\n !commitmentsById ||\n !relayerNoncesB64u\n ) {\n return null;\n }\n return {\n expiresAtMs,\n mpcSessionId,\n relayerKeyId,\n signingDigestB64u,\n userId,\n rpId,\n clientVerifyingShareB64u,\n commitmentsById,\n ...(relayerSigningShareB64u ? { relayerSigningShareB64u } : {}),\n relayerNoncesB64u,\n participantIds,\n };\n}\n\nexport type ParsedThresholdEd25519StringById = Record<string, string>;\n\nexport function parseThresholdEd25519StringById(raw: unknown): ParsedThresholdEd25519StringById | null {\n if (!isObject(raw)) return null;\n const out: ParsedThresholdEd25519StringById = {};\n for (const [k, v] of Object.entries(raw)) {\n const key = toTrimmedString(k);\n const value = toOptionalString(v);\n if (!key || !value) return null;\n out[key] = value;\n }\n return Object.keys(out).length ? out : null;\n}\n\nexport type ParsedThresholdEd25519CoordinatorSigningSessionRecord =\n {\n mode: 'cosigner';\n expiresAtMs: number;\n mpcSessionId: string;\n relayerKeyId: string;\n signingDigestB64u: string;\n userId: string;\n rpId: string;\n clientVerifyingShareB64u: string;\n commitmentsById: ParsedThresholdEd25519CommitmentsById;\n participantIds: number[];\n groupPublicKey: string;\n cosignerIds: number[];\n cosignerRelayerUrlsById: ParsedThresholdEd25519StringById;\n cosignerCoordinatorGrantsById: ParsedThresholdEd25519StringById;\n relayerVerifyingSharesById: ParsedThresholdEd25519StringById;\n };\n\nexport function parseThresholdEd25519CoordinatorSigningSessionRecord(raw: unknown): ParsedThresholdEd25519CoordinatorSigningSessionRecord | null {\n if (!isObject(raw)) return null;\n const expiresAtMs = raw.expiresAtMs;\n const mpcSessionId = toOptionalString(raw.mpcSessionId);\n const relayerKeyId = toOptionalString(raw.relayerKeyId);\n const signingDigestB64u = toOptionalString(raw.signingDigestB64u);\n const userId = toOptionalString(raw.userId);\n const rpId = toOptionalString(raw.rpId);\n const clientVerifyingShareB64u = toOptionalString(raw.clientVerifyingShareB64u);\n const commitmentsById = parseThresholdEd25519CommitmentsById(raw.commitmentsById);\n const participantIds =\n normalizeThresholdEd25519ParticipantIds(raw.participantIds)\n || [...THRESHOLD_ED25519_2P_PARTICIPANT_IDS];\n const relayerVerifyingSharesById = parseThresholdEd25519StringById(raw.relayerVerifyingSharesById);\n\n if (!isValidNumber(expiresAtMs)) return null;\n if (\n !mpcSessionId ||\n !relayerKeyId ||\n !signingDigestB64u ||\n !userId ||\n !rpId ||\n !clientVerifyingShareB64u ||\n !commitmentsById ||\n !relayerVerifyingSharesById\n ) {\n return null;\n }\n\n const mode = toOptionalString(raw.mode);\n if (mode !== 'cosigner') return null;\n\n const groupPublicKey = toOptionalString(raw.groupPublicKey);\n const cosignerIds = normalizeThresholdEd25519ParticipantIds(raw.cosignerIds);\n const cosignerRelayerUrlsById = parseThresholdEd25519StringById(raw.cosignerRelayerUrlsById);\n const cosignerCoordinatorGrantsById = parseThresholdEd25519StringById(raw.cosignerCoordinatorGrantsById);\n if (!groupPublicKey || !cosignerIds || !cosignerRelayerUrlsById || !cosignerCoordinatorGrantsById) return null;\n return {\n mode: 'cosigner',\n expiresAtMs,\n mpcSessionId,\n relayerKeyId,\n signingDigestB64u,\n userId,\n rpId,\n clientVerifyingShareB64u,\n commitmentsById,\n participantIds,\n groupPublicKey,\n cosignerIds,\n cosignerRelayerUrlsById,\n cosignerCoordinatorGrantsById,\n relayerVerifyingSharesById,\n };\n}\n\nexport type ParsedThresholdEd25519AuthSessionRecord = {\n expiresAtMs: number;\n relayerKeyId: string;\n userId: string;\n rpId: string;\n participantIds: number[];\n};\n\nexport function parseThresholdEd25519AuthSessionRecord(raw: unknown): ParsedThresholdEd25519AuthSessionRecord | null {\n if (!isObject(raw)) return null;\n const expiresAtMs = raw.expiresAtMs;\n const relayerKeyId = toOptionalString(raw.relayerKeyId);\n const userId = toOptionalString(raw.userId);\n const rpId = toOptionalString(raw.rpId);\n const participantIds =\n normalizeThresholdEd25519ParticipantIds(raw.participantIds)\n || [...THRESHOLD_ED25519_2P_PARTICIPANT_IDS];\n if (!isValidNumber(expiresAtMs)) return null;\n if (!relayerKeyId || !userId || !rpId) return null;\n return { expiresAtMs, relayerKeyId, userId, rpId, participantIds };\n}\n\nexport type ThresholdEd25519SessionClaims = {\n sub: string;\n kind: 'threshold_ed25519_session_v1';\n sessionId: string;\n relayerKeyId: string;\n rpId: string;\n};\n\nexport function parseThresholdEd25519SessionClaims(raw: unknown): ThresholdEd25519SessionClaims | null {\n if (!isObject(raw)) return null;\n const kind = toOptionalString(raw.kind);\n if (kind !== 'threshold_ed25519_session_v1') return null;\n const sub = toOptionalString(raw.sub);\n const sessionId = toOptionalString(raw.sessionId);\n const relayerKeyId = toOptionalString(raw.relayerKeyId);\n const rpId = toOptionalString(raw.rpId);\n if (!sub || !sessionId || !relayerKeyId || !rpId) return null;\n return { sub, kind, sessionId, relayerKeyId, rpId };\n}\n\nexport function normalizeByteArray32(input: unknown): Uint8Array | null {\n if (input instanceof Uint8Array) {\n return input.length === 32 ? input : null;\n }\n if (!Array.isArray(input) || input.length !== 32) return null;\n const out = new Uint8Array(32);\n for (let i = 0; i < 32; i++) {\n const v = Number(input[i]);\n if (!Number.isFinite(v) || v < 0 || v > 255) return null;\n out[i] = v;\n }\n return out;\n}\n\nexport function bytesEqual32(a: Uint8Array, b: Uint8Array): boolean {\n if (a.length !== 32 || b.length !== 32) return false;\n for (let i = 0; i < 32; i++) {\n if (a[i] !== b[i]) return false;\n }\n return true;\n}\n\nexport function toNearPublicKeyStr(v: unknown): string {\n return ensureEd25519Prefix(toOptionalString(v));\n}\n\nexport function normalizeActionForIntentDigest(a: unknown): Record<string, unknown> {\n if (!isObject(a)) return { action_type: '' };\n const actionType = toOptionalString(a.action_type);\n switch (actionType) {\n case 'FunctionCall':\n return {\n action_type: actionType,\n args: toOptionalString(a.args),\n deposit: toOptionalString(a.deposit),\n gas: toOptionalString(a.gas),\n method_name: toOptionalString(a.method_name),\n };\n case 'Transfer':\n return { action_type: actionType, deposit: toOptionalString(a.deposit) };\n case 'Stake':\n return { action_type: actionType, stake: toOptionalString(a.stake), public_key: toOptionalString(a.public_key) };\n case 'AddKey':\n return { action_type: actionType, public_key: toOptionalString(a.public_key), access_key: toOptionalString(a.access_key) };\n case 'DeleteKey':\n return { action_type: actionType, public_key: toOptionalString(a.public_key) };\n case 'DeleteAccount':\n return { action_type: actionType, beneficiary_id: toOptionalString(a.beneficiary_id) };\n case 'DeployContract':\n return { action_type: actionType, code: Array.isArray(a.code) ? a.code : [] };\n case 'DeployGlobalContract':\n return {\n action_type: actionType,\n code: Array.isArray(a.code) ? a.code : [],\n deploy_mode: toOptionalString(a.deploy_mode),\n };\n case 'UseGlobalContract':\n return {\n action_type: actionType,\n account_id: toOptionalString(a.account_id) || undefined,\n code_hash: toOptionalString(a.code_hash) || undefined,\n };\n case 'CreateAccount':\n case 'SignedDelegate':\n default:\n return { action_type: actionType };\n }\n}\n\nexport function extractAuthorizeSigningPublicKey(purpose: string, signingPayload: unknown): string {\n if (!isObject(signingPayload)) return '';\n if (purpose === 'near_tx') {\n const ctx = isObject(signingPayload.transactionContext) ? signingPayload.transactionContext : null;\n return toNearPublicKeyStr(ctx?.nearPublicKeyStr);\n }\n if (purpose === 'nep461_delegate') {\n const delegate = isObject(signingPayload.delegate) ? signingPayload.delegate : null;\n return toNearPublicKeyStr(delegate?.publicKey);\n }\n return '';\n}\n\nexport async function ensureRelayerKeyIsActiveAccessKey(input: {\n nearAccountId: unknown;\n relayerPublicKey: unknown;\n expectedSigningPublicKey?: unknown;\n viewAccessKeyList: (accountId: string) => Promise<AccessKeyList>;\n}): Promise<ThresholdValidationResult> {\n const nearAccountId = toOptionalString(input.nearAccountId);\n const relayerPublicKey = toNearPublicKeyStr(input.relayerPublicKey);\n const expectedSigningPublicKey = toNearPublicKeyStr(input.expectedSigningPublicKey);\n if (!nearAccountId) return { ok: false, code: 'invalid_body', message: 'nearAccountId is required' };\n if (!relayerPublicKey) return { ok: false, code: 'internal', message: 'Missing relayer public key for relayerKeyId' };\n\n if (expectedSigningPublicKey && expectedSigningPublicKey !== relayerPublicKey) {\n return { ok: false, code: 'unauthorized', message: 'relayerKeyId does not match signingPayload public key' };\n }\n\n try {\n const list = await input.viewAccessKeyList(nearAccountId);\n const keys = list.keys || [];\n const found = keys.some((k) => toNearPublicKeyStr(k.public_key) === relayerPublicKey);\n if (!found) {\n return { ok: false, code: 'unauthorized', message: 'relayerKeyId public key is not an active access key for nearAccountId' };\n }\n return { ok: true };\n } catch (e: unknown) {\n const msg = String((e && typeof e === 'object' && 'message' in e) ? (e as { message?: unknown }).message : e || 'Failed to query NEAR access keys');\n return { ok: false, code: 'internal', message: `Failed to verify access key scope: ${msg}` };\n }\n}\n\ntype NearTxAuthorizeSigningPayload = {\n kind?: string;\n txSigningRequests: Array<{\n nearAccountId: string;\n receiverId: string;\n actions: unknown[];\n }>;\n transactionContext: {\n nearPublicKeyStr: string;\n nextNonce: string;\n txBlockHash: string;\n txBlockHeight?: string;\n };\n};\n\ntype Nep461DelegateAuthorizeSigningPayload = {\n kind?: string;\n delegate: {\n senderId: string;\n receiverId: string;\n actions: unknown[];\n nonce: string;\n maxBlockHeight: string;\n publicKey: string;\n };\n};\n\ntype Nep413AuthorizeSigningPayload = {\n kind?: string;\n nearAccountId: string;\n message: string;\n recipient: string;\n nonce: string;\n state?: string;\n};\n\nexport async function verifyThresholdEd25519AuthorizeSigningPayload(input: {\n purpose: string;\n signingPayload: unknown;\n signingDigest32: Uint8Array;\n intentDigest32: Uint8Array;\n userId: string;\n ensureSignerWasm: () => Promise<void>;\n computeNearTxSigningDigests: (payload: unknown) => unknown;\n computeDelegateSigningDigest: (payload: unknown) => unknown;\n computeNep413SigningDigest: (payload: unknown) => unknown;\n}): Promise<ThresholdValidationResult> {\n const purpose = input.purpose;\n const signingPayload = input.signingPayload;\n if (!isObject(signingPayload)) {\n return { ok: false, code: 'invalid_body', message: 'signingPayload (object) is required for threshold authorization' };\n }\n\n const kind = toOptionalString(signingPayload.kind);\n const expectedKind = purpose;\n if (kind && kind !== expectedKind) {\n return { ok: false, code: 'invalid_body', message: `signingPayload.kind must match purpose (${expectedKind})` };\n }\n\n // 1) Recompute intent_digest_32 from signingPayload and compare to VRF-bound digest.\n let intentDigest32Computed: Uint8Array;\n try {\n if (purpose === 'near_tx') {\n const payload = signingPayload as Partial<NearTxAuthorizeSigningPayload>;\n const txs = payload.txSigningRequests;\n if (!Array.isArray(txs) || !txs.length) throw new Error('signingPayload.txSigningRequests is required');\n const nearAccountId = toOptionalString(txs[0]?.nearAccountId);\n if (!nearAccountId) throw new Error('txSigningRequests[0].nearAccountId is required');\n for (const tx of txs) {\n if (toOptionalString(tx?.nearAccountId) !== nearAccountId) {\n throw new Error('All txSigningRequests[].nearAccountId must match');\n }\n }\n if (nearAccountId !== input.userId) throw new Error('txSigningRequests[].nearAccountId must match vrf_data.user_id');\n const txInputs = txs.map((tx) => ({\n receiverId: toOptionalString(tx?.receiverId),\n actions: Array.isArray(tx?.actions) ? tx.actions.map((a) => normalizeActionForIntentDigest(a)) : [],\n }));\n const json = alphabetizeStringify(txInputs);\n intentDigest32Computed = await sha256BytesUtf8(json);\n } else if (purpose === 'nep461_delegate') {\n const payload = signingPayload as Partial<Nep461DelegateAuthorizeSigningPayload>;\n const d = payload.delegate;\n if (!isObject(d)) throw new Error('signingPayload.delegate is required');\n const senderId = toOptionalString(d.senderId);\n if (!senderId) throw new Error('delegate.senderId is required');\n if (senderId !== input.userId) throw new Error('delegate.senderId must match vrf_data.user_id');\n const txInputs = [{\n receiverId: toOptionalString(d.receiverId),\n actions: Array.isArray(d.actions) ? d.actions.map((a) => normalizeActionForIntentDigest(a)) : [],\n }];\n const json = alphabetizeStringify(txInputs);\n intentDigest32Computed = await sha256BytesUtf8(json);\n } else if (purpose === 'nep413') {\n const payload = signingPayload as Partial<Nep413AuthorizeSigningPayload>;\n const nearAccountId = toOptionalString(payload.nearAccountId);\n if (!nearAccountId) throw new Error('signingPayload.nearAccountId is required');\n if (nearAccountId !== input.userId) throw new Error('signingPayload.nearAccountId must match vrf_data.user_id');\n const recipient = toOptionalString(payload.recipient);\n const message = toOptionalString(payload.message);\n const json = alphabetizeStringify({ kind: 'nep413', nearAccountId, recipient, message });\n intentDigest32Computed = await sha256BytesUtf8(json);\n } else {\n throw new Error(`Unsupported purpose: ${purpose}`);\n }\n } catch (e: unknown) {\n const msg = String((e && typeof e === 'object' && 'message' in e) ? (e as { message?: unknown }).message : e || 'Failed to recompute intent digest');\n return { ok: false, code: 'invalid_body', message: msg };\n }\n\n if (intentDigest32Computed.length !== 32) {\n return { ok: false, code: 'internal', message: `Computed intent digest is not 32 bytes (got ${intentDigest32Computed.length})` };\n }\n if (!bytesEqual32(intentDigest32Computed, input.intentDigest32)) {\n return { ok: false, code: 'intent_digest_mismatch', message: 'signingPayload does not match vrf_data.intent_digest_32' };\n }\n\n // 2) Recompute signing_digest_32 from signingPayload and compare to requested signing digest.\n let signingDigest32Computed: Uint8Array[];\n try {\n await input.ensureSignerWasm();\n signingDigest32Computed = (() => {\n if (purpose === 'near_tx') {\n const digestsUnknown: unknown = input.computeNearTxSigningDigests(signingPayload);\n if (!Array.isArray(digestsUnknown)) throw new Error('near_tx digest recomputation failed');\n return digestsUnknown.map((d, i) => {\n const bytes = normalizeByteArray32(d);\n if (!bytes) throw new Error(`near_tx digest[${i}] is not 32 bytes`);\n return bytes;\n });\n }\n if (purpose === 'nep461_delegate') {\n const digestUnknown: unknown = input.computeDelegateSigningDigest(signingPayload);\n const bytes = normalizeByteArray32(digestUnknown);\n if (!bytes) throw new Error('nep461_delegate digest is not 32 bytes');\n return [bytes];\n }\n if (purpose === 'nep413') {\n const digestUnknown: unknown = input.computeNep413SigningDigest(signingPayload);\n const bytes = normalizeByteArray32(digestUnknown);\n if (!bytes) throw new Error('nep413 digest is not 32 bytes');\n return [bytes];\n }\n throw new Error(`Unsupported purpose: ${purpose}`);\n })();\n } catch (e: unknown) {\n const msg = String((e && typeof e === 'object' && 'message' in e) ? (e as { message?: unknown }).message : e || 'Failed to recompute signing digest');\n return { ok: false, code: 'invalid_body', message: msg };\n }\n\n const match = signingDigest32Computed.some((d) => bytesEqual32(d, input.signingDigest32));\n if (!match) {\n return { ok: false, code: 'signing_digest_mismatch', message: 'signingPayload does not match signing_digest_32' };\n }\n\n return { ok: true };\n}\n\nexport type ThresholdAuthorizeSigningDigestOnlyOk = { ok: true; intentDigest32: Uint8Array };\nexport type ThresholdAuthorizeSigningDigestOnlyResult = ThresholdAuthorizeSigningDigestOnlyOk | ThresholdValidationErr;\n\nexport async function verifyThresholdEd25519AuthorizeSigningPayloadSigningDigestOnly(input: {\n purpose: string;\n signingPayload: unknown;\n signingDigest32: Uint8Array;\n userId: string;\n ensureSignerWasm: () => Promise<void>;\n computeNearTxSigningDigests: (payload: unknown) => unknown;\n computeDelegateSigningDigest: (payload: unknown) => unknown;\n computeNep413SigningDigest: (payload: unknown) => unknown;\n}): Promise<ThresholdAuthorizeSigningDigestOnlyResult> {\n const purpose = input.purpose;\n const signingPayload = input.signingPayload;\n if (!isObject(signingPayload)) {\n return { ok: false, code: 'invalid_body', message: 'signingPayload (object) is required for threshold authorization' };\n }\n\n const kind = toOptionalString(signingPayload.kind);\n const expectedKind = purpose;\n if (kind && kind !== expectedKind) {\n return { ok: false, code: 'invalid_body', message: `signingPayload.kind must match purpose (${expectedKind})` };\n }\n\n // 1) Recompute intent_digest_32 from signingPayload (not VRF-bound in session mode).\n let intentDigest32Computed: Uint8Array;\n try {\n if (purpose === 'near_tx') {\n const payload = signingPayload as Partial<NearTxAuthorizeSigningPayload>;\n const txs = payload.txSigningRequests;\n if (!Array.isArray(txs) || !txs.length) throw new Error('signingPayload.txSigningRequests is required');\n const nearAccountId = toOptionalString(txs[0]?.nearAccountId);\n if (!nearAccountId) throw new Error('txSigningRequests[0].nearAccountId is required');\n for (const tx of txs) {\n if (toOptionalString(tx?.nearAccountId) !== nearAccountId) {\n throw new Error('All txSigningRequests[].nearAccountId must match');\n }\n }\n if (nearAccountId !== input.userId) throw new Error('txSigningRequests[].nearAccountId must match session user');\n const txInputs = txs.map((tx) => ({\n receiverId: toOptionalString(tx?.receiverId),\n actions: Array.isArray(tx?.actions) ? tx.actions.map((a) => normalizeActionForIntentDigest(a)) : [],\n }));\n const json = alphabetizeStringify(txInputs);\n intentDigest32Computed = await sha256BytesUtf8(json);\n } else if (purpose === 'nep461_delegate') {\n const payload = signingPayload as Partial<Nep461DelegateAuthorizeSigningPayload>;\n const d = payload.delegate;\n if (!isObject(d)) throw new Error('signingPayload.delegate is required');\n const senderId = toOptionalString(d.senderId);\n if (!senderId) throw new Error('delegate.senderId is required');\n if (senderId !== input.userId) throw new Error('delegate.senderId must match session user');\n const txInputs = [{\n receiverId: toOptionalString(d.receiverId),\n actions: Array.isArray(d.actions) ? d.actions.map((a) => normalizeActionForIntentDigest(a)) : [],\n }];\n const json = alphabetizeStringify(txInputs);\n intentDigest32Computed = await sha256BytesUtf8(json);\n } else if (purpose === 'nep413') {\n const payload = signingPayload as Partial<Nep413AuthorizeSigningPayload>;\n const nearAccountId = toOptionalString(payload.nearAccountId);\n if (!nearAccountId) throw new Error('signingPayload.nearAccountId is required');\n if (nearAccountId !== input.userId) throw new Error('signingPayload.nearAccountId must match session user');\n const recipient = toOptionalString(payload.recipient);\n const message = toOptionalString(payload.message);\n const json = alphabetizeStringify({ kind: 'nep413', nearAccountId, recipient, message });\n intentDigest32Computed = await sha256BytesUtf8(json);\n } else {\n throw new Error(`Unsupported purpose: ${purpose}`);\n }\n } catch (e: unknown) {\n const msg = String((e && typeof e === 'object' && 'message' in e) ? (e as { message?: unknown }).message : e || 'Failed to recompute intent digest');\n return { ok: false, code: 'invalid_body', message: msg };\n }\n\n if (intentDigest32Computed.length !== 32) {\n return { ok: false, code: 'internal', message: `Computed intent digest is not 32 bytes (got ${intentDigest32Computed.length})` };\n }\n\n // 2) Recompute signing_digest_32 from signingPayload and compare to requested signing digest.\n let signingDigest32Computed: Uint8Array[];\n try {\n await input.ensureSignerWasm();\n signingDigest32Computed = (() => {\n if (purpose === 'near_tx') {\n const digestsUnknown: unknown = input.computeNearTxSigningDigests(signingPayload);\n if (!Array.isArray(digestsUnknown)) throw new Error('near_tx digest recomputation failed');\n return digestsUnknown.map((d, i) => {\n const bytes = normalizeByteArray32(d);\n if (!bytes) throw new Error(`near_tx digest[${i}] is not 32 bytes`);\n return bytes;\n });\n }\n if (purpose === 'nep461_delegate') {\n const digestUnknown: unknown = input.computeDelegateSigningDigest(signingPayload);\n const bytes = normalizeByteArray32(digestUnknown);\n if (!bytes) throw new Error('nep461_delegate digest is not 32 bytes');\n return [bytes];\n }\n if (purpose === 'nep413') {\n const digestUnknown: unknown = input.computeNep413SigningDigest(signingPayload);\n const bytes = normalizeByteArray32(digestUnknown);\n if (!bytes) throw new Error('nep413 digest is not 32 bytes');\n return [bytes];\n }\n throw new Error(`Unsupported purpose: ${purpose}`);\n })();\n } catch (e: unknown) {\n const msg = String((e && typeof e === 'object' && 'message' in e) ? (e as { message?: unknown }).message : e || 'Failed to recompute signing digest');\n return { ok: false, code: 'invalid_body', message: msg };\n }\n\n const match = signingDigest32Computed.some((d) => bytesEqual32(d, input.signingDigest32));\n if (!match) {\n return { ok: false, code: 'signing_digest_mismatch', message: 'signingPayload does not match signing_digest_32' };\n }\n\n return { ok: true, intentDigest32: intentDigest32Computed };\n}\n","import type {\n ThresholdEd25519AuthorizeRequest,\n ThresholdEd25519AuthorizeWithSessionRequest,\n} from '../core/types';\nimport { parseThresholdEd25519SessionClaims } from '../core/ThresholdService/validation';\nimport type { SessionAdapter } from './relay';\n\ntype PlainObject = Record<string, unknown>;\ntype AuthorizeErr = { ok: false; code: 'sessions_disabled' | 'unauthorized'; message: string };\n\nfunction isPlainObject(input: unknown): input is PlainObject {\n return !!input && typeof input === 'object' && !Array.isArray(input);\n}\n\nexport function summarizeVrfData(input: unknown): Record<string, unknown> | undefined {\n if (!isPlainObject(input)) return undefined;\n const user_id = typeof input.user_id === 'string' ? input.user_id : undefined;\n const rp_id = typeof input.rp_id === 'string' ? input.rp_id : undefined;\n const block_height = typeof input.block_height === 'number' ? input.block_height : undefined;\n const has_intent_digest_32 = Array.isArray(input.intent_digest_32) ? true : undefined;\n const intent_digest_32_len = Array.isArray(input.intent_digest_32) ? input.intent_digest_32.length : undefined;\n const has_session_policy_digest_32 = Array.isArray(input.session_policy_digest_32) ? true : undefined;\n const session_policy_digest_32_len = Array.isArray(input.session_policy_digest_32) ? input.session_policy_digest_32.length : undefined;\n return {\n ...(user_id ? { user_id } : {}),\n ...(rp_id ? { rp_id } : {}),\n ...(block_height != null ? { block_height } : {}),\n ...(has_intent_digest_32 != null ? { has_intent_digest_32 } : {}),\n ...(intent_digest_32_len != null ? { intent_digest_32_len } : {}),\n ...(has_session_policy_digest_32 != null ? { has_session_policy_digest_32 } : {}),\n ...(session_policy_digest_32_len != null ? { session_policy_digest_32_len } : {}),\n };\n}\n\nfunction looksLikeWebauthnAuthorizeBody(input: unknown): boolean {\n if (!isPlainObject(input)) return false;\n return isPlainObject(input.vrf_data) && isPlainObject(input.webauthn_authentication);\n}\n\nexport type ThresholdEd25519AuthorizeInputs =\n | { ok: true; mode: 'webauthn'; request: ThresholdEd25519AuthorizeRequest }\n | {\n ok: true;\n mode: 'session';\n sessionId: string;\n userId: string;\n request: ThresholdEd25519AuthorizeWithSessionRequest;\n }\n | AuthorizeErr;\n\nexport async function validateThresholdEd25519AuthorizeInputs(input: {\n body: unknown;\n headers: Record<string, string | string[] | undefined>;\n session: SessionAdapter | null | undefined;\n}): Promise<ThresholdEd25519AuthorizeInputs> {\n if (looksLikeWebauthnAuthorizeBody(input.body)) {\n return { ok: true, mode: 'webauthn', request: input.body as ThresholdEd25519AuthorizeRequest };\n }\n\n const session = input.session;\n if (!session) {\n return { ok: false, code: 'sessions_disabled', message: 'Sessions are not configured on this server' };\n }\n\n const parsed = await session.parse(input.headers);\n if (!parsed.ok) {\n return { ok: false, code: 'unauthorized', message: 'Missing or invalid threshold session token' };\n }\n\n const claims = parseThresholdEd25519SessionClaims(parsed.claims);\n if (!claims) {\n return { ok: false, code: 'unauthorized', message: 'Invalid threshold session token claims' };\n }\n\n const requestBody = isPlainObject(input.body) ? input.body : {};\n return {\n ok: true,\n mode: 'session',\n sessionId: claims.sessionId,\n userId: claims.sub,\n request: requestBody as unknown as ThresholdEd25519AuthorizeWithSessionRequest,\n };\n}\n","import type { CloudflareRelayContext } from '../createCloudflareRouter';\nimport { json, readJson } from '../http';\nimport { thresholdEd25519StatusCode } from '../../../threshold/statusCodes';\nimport type {\n ThresholdEd25519AuthorizeResponse,\n ThresholdEd25519CosignFinalizeRequest,\n ThresholdEd25519CosignInitRequest,\n ThresholdEd25519KeygenRequest,\n ThresholdEd25519SignFinalizeRequest,\n ThresholdEd25519SignInitRequest,\n ThresholdEd25519SessionRequest,\n} from '../../../core/types';\nimport { parseSessionKind } from '../../relay';\nimport {\n summarizeVrfData,\n validateThresholdEd25519AuthorizeInputs,\n} from '../../commonRouterUtils';\n\nexport async function handleThresholdEd25519(ctx: CloudflareRelayContext): Promise<Response | null> {\n if (ctx.method === 'GET' && ctx.pathname === '/threshold-ed25519/healthz') {\n const threshold = ctx.opts.threshold;\n if (!threshold) {\n return json({\n ok: false,\n configured: false,\n code: 'threshold_disabled',\n message: 'Threshold signing is not configured on this server',\n }, { status: 503 });\n }\n return json({ ok: true, configured: true }, { status: 200 });\n }\n\n if (ctx.method !== 'POST') return null;\n\n const pathname = ctx.pathname;\n if (\n pathname !== '/threshold-ed25519/keygen'\n && pathname !== '/threshold-ed25519/session'\n && pathname !== '/threshold-ed25519/authorize'\n && pathname !== '/threshold-ed25519/sign/init'\n && pathname !== '/threshold-ed25519/sign/finalize'\n && pathname !== '/threshold-ed25519/internal/cosign/init'\n && pathname !== '/threshold-ed25519/internal/cosign/finalize'\n ) {\n return null;\n }\n\n const body = await readJson(ctx.request);\n const threshold = ctx.opts.threshold;\n\n switch (pathname) {\n case '/threshold-ed25519/keygen': {\n if (!threshold) {\n ctx.logger.warn('[threshold-ed25519] request', { route: pathname, method: ctx.method, configured: false });\n return json({ ok: false, code: 'threshold_disabled', message: 'Threshold signing is not configured on this server' }, { status: 503 });\n }\n const b = (body || {}) as ThresholdEd25519KeygenRequest;\n ctx.logger.info('[threshold-ed25519] request', {\n route: pathname,\n method: ctx.method,\n nearAccountId: typeof b.nearAccountId === 'string' ? b.nearAccountId : undefined,\n clientVerifyingShareB64u_len: typeof b.clientVerifyingShareB64u === 'string' ? b.clientVerifyingShareB64u.length : undefined,\n registrationTxHash: ('registrationTxHash' in b && typeof b.registrationTxHash === 'string') ? b.registrationTxHash : undefined,\n vrf_data: summarizeVrfData((b as unknown as { vrf_data?: unknown }).vrf_data),\n });\n const result = await threshold.thresholdEd25519Keygen(b);\n ctx.logger.info('[threshold-ed25519] response', {\n route: pathname,\n status: thresholdEd25519StatusCode(result),\n ok: result.ok,\n ...(result.code ? { code: result.code } : {}),\n });\n return json(result, { status: thresholdEd25519StatusCode(result) });\n }\n case '/threshold-ed25519/session': {\n if (!threshold) {\n ctx.logger.warn('[threshold-ed25519] request', { route: pathname, method: ctx.method, configured: false });\n return json({ ok: false, code: 'threshold_disabled', message: 'Threshold signing is not configured on this server' }, { status: 503 });\n }\n const session = ctx.opts.session;\n if (!session) {\n ctx.logger.warn('[threshold-ed25519] request', { route: pathname, method: ctx.method, sessions: false });\n return json({ ok: false, code: 'sessions_disabled', message: 'Sessions are not configured on this server' }, { status: 501 });\n }\n\n const b = (body || {}) as ThresholdEd25519SessionRequest;\n ctx.logger.info('[threshold-ed25519] request', {\n route: pathname,\n method: ctx.method,\n relayerKeyId: typeof b.relayerKeyId === 'string' ? b.relayerKeyId : undefined,\n clientVerifyingShareB64u_len: typeof b.clientVerifyingShareB64u === 'string' ? b.clientVerifyingShareB64u.length : undefined,\n sessionPolicy: b.sessionPolicy ? { version: b.sessionPolicy.version } : undefined,\n vrf_data: summarizeVrfData((b as unknown as { vrf_data?: unknown }).vrf_data),\n });\n\n const result = await threshold.thresholdEd25519Session(b);\n const status = thresholdEd25519StatusCode(result);\n ctx.logger.info('[threshold-ed25519] response', { route: pathname, status, ok: result.ok, ...(result.code ? { code: result.code } : {}) });\n if (!result.ok) return json(result, { status });\n\n const sessionId = String(result.sessionId || '').trim();\n const userId = b.vrf_data.user_id;\n const rpId = b.vrf_data.rp_id;\n const relayerKeyId = b.relayerKeyId;\n const token = await session.signJwt(userId, { kind: 'threshold_ed25519_session_v1', sessionId, relayerKeyId, rpId });\n const sessionKind = parseSessionKind(b);\n\n const res = json(sessionKind === 'cookie' ? { ...result, jwt: undefined } : { ...result, jwt: token }, { status: 200 });\n if (sessionKind === 'cookie') {\n res.headers.set('Set-Cookie', session.buildSetCookie(token));\n }\n return res;\n }\n case '/threshold-ed25519/authorize': {\n if (!threshold) {\n ctx.logger.warn('[threshold-ed25519] request', { route: pathname, method: ctx.method, configured: false });\n return json({ ok: false, code: 'threshold_disabled', message: 'Threshold signing is not configured on this server' }, { status: 503 });\n }\n const b = (body || {}) as Record<string, unknown>;\n ctx.logger.info('[threshold-ed25519] request', {\n route: pathname,\n method: ctx.method,\n relayerKeyId: typeof b.relayerKeyId === 'string' ? b.relayerKeyId : undefined,\n clientVerifyingShareB64u_len: typeof b.clientVerifyingShareB64u === 'string' ? b.clientVerifyingShareB64u.length : undefined,\n purpose: typeof b.purpose === 'string' ? b.purpose : undefined,\n signing_digest_32_len: Array.isArray(b.signing_digest_32) ? b.signing_digest_32.length : undefined,\n vrf_data: summarizeVrfData((b as unknown as { vrf_data?: unknown }).vrf_data),\n });\n\n const respond = (result: ThresholdEd25519AuthorizeResponse): Response => {\n ctx.logger.info('[threshold-ed25519] response', {\n route: pathname,\n status: thresholdEd25519StatusCode(result),\n ok: result.ok,\n ...(result.code ? { code: result.code } : {}),\n });\n return json(result, { status: thresholdEd25519StatusCode(result) });\n };\n\n const validated = await validateThresholdEd25519AuthorizeInputs({\n body,\n headers: Object.fromEntries(ctx.request.headers.entries()),\n session: ctx.opts.session,\n });\n if (!validated.ok) return respond(validated);\n\n const result = validated.mode === 'webauthn'\n ? await threshold.authorizeThresholdEd25519(validated.request)\n : await threshold.authorizeThresholdEd25519WithSession({\n sessionId: validated.sessionId,\n userId: validated.userId,\n request: validated.request,\n });\n return respond(result);\n\n }\n case '/threshold-ed25519/sign/init': {\n if (!threshold) {\n ctx.logger.warn('[threshold-ed25519] request', { route: pathname, method: ctx.method, configured: false });\n return json({ ok: false, code: 'threshold_disabled', message: 'Threshold signing is not configured on this server' }, { status: 503 });\n }\n const b = (body || {}) as ThresholdEd25519SignInitRequest;\n ctx.logger.info('[threshold-ed25519] request', {\n route: pathname,\n method: ctx.method,\n mpcSessionId: typeof b.mpcSessionId === 'string' ? b.mpcSessionId : undefined,\n relayerKeyId: typeof b.relayerKeyId === 'string' ? b.relayerKeyId : undefined,\n nearAccountId: typeof b.nearAccountId === 'string' ? b.nearAccountId : undefined,\n signingDigestB64u_len: typeof b.signingDigestB64u === 'string' ? b.signingDigestB64u.length : undefined,\n });\n const result = await threshold.thresholdEd25519SignInit(b);\n ctx.logger.info('[threshold-ed25519] response', {\n route: pathname,\n status: thresholdEd25519StatusCode(result),\n ok: result.ok,\n ...(result.code ? { code: result.code } : {}),\n });\n return json(result, { status: thresholdEd25519StatusCode(result) });\n }\n case '/threshold-ed25519/sign/finalize': {\n if (!threshold) {\n ctx.logger.warn('[threshold-ed25519] request', { route: pathname, method: ctx.method, configured: false });\n return json({ ok: false, code: 'threshold_disabled', message: 'Threshold signing is not configured on this server' }, { status: 503 });\n }\n const b = (body || {}) as ThresholdEd25519SignFinalizeRequest;\n ctx.logger.info('[threshold-ed25519] request', {\n route: pathname,\n method: ctx.method,\n signingSessionId: typeof b.signingSessionId === 'string' ? b.signingSessionId : undefined,\n clientSignatureShareB64u_len: typeof b.clientSignatureShareB64u === 'string' ? b.clientSignatureShareB64u.length : undefined,\n });\n const result = await threshold.thresholdEd25519SignFinalize(b);\n ctx.logger.info('[threshold-ed25519] response', {\n route: pathname,\n status: thresholdEd25519StatusCode(result),\n ok: result.ok,\n ...(result.code ? { code: result.code } : {}),\n });\n return json(result, { status: thresholdEd25519StatusCode(result) });\n }\n case '/threshold-ed25519/internal/cosign/init': {\n if (!threshold) {\n ctx.logger.warn('[threshold-ed25519] request', { route: pathname, method: ctx.method, configured: false });\n return json({ ok: false, code: 'threshold_disabled', message: 'Threshold signing is not configured on this server' }, { status: 503 });\n }\n if (!threshold.thresholdEd25519CosignInit) {\n const result = { ok: false, code: 'not_found', message: 'threshold-ed25519 cosigner endpoints are not enabled on this server' };\n return json(result, { status: thresholdEd25519StatusCode(result) });\n }\n const b = (body || {}) as ThresholdEd25519CosignInitRequest;\n ctx.logger.info('[threshold-ed25519] request', {\n route: pathname,\n method: ctx.method,\n coordinatorGrant_len: typeof b.coordinatorGrant === 'string' ? b.coordinatorGrant.length : undefined,\n signingSessionId: typeof b.signingSessionId === 'string' ? b.signingSessionId : undefined,\n cosignerShareB64u_len: typeof b.cosignerShareB64u === 'string' ? b.cosignerShareB64u.length : undefined,\n });\n const result = await threshold.thresholdEd25519CosignInit(b);\n ctx.logger.info('[threshold-ed25519] response', {\n route: pathname,\n status: thresholdEd25519StatusCode(result),\n ok: result.ok,\n ...(result.code ? { code: result.code } : {}),\n });\n return json(result, { status: thresholdEd25519StatusCode(result) });\n }\n case '/threshold-ed25519/internal/cosign/finalize': {\n if (!threshold) {\n ctx.logger.warn('[threshold-ed25519] request', { route: pathname, method: ctx.method, configured: false });\n return json({ ok: false, code: 'threshold_disabled', message: 'Threshold signing is not configured on this server' }, { status: 503 });\n }\n if (!threshold.thresholdEd25519CosignFinalize) {\n const result = { ok: false, code: 'not_found', message: 'threshold-ed25519 cosigner endpoints are not enabled on this server' };\n return json(result, { status: thresholdEd25519StatusCode(result) });\n }\n const b = (body || {}) as ThresholdEd25519CosignFinalizeRequest;\n ctx.logger.info('[threshold-ed25519] request', {\n route: pathname,\n method: ctx.method,\n coordinatorGrant_len: typeof b.coordinatorGrant === 'string' ? b.coordinatorGrant.length : undefined,\n signingSessionId: typeof b.signingSessionId === 'string' ? b.signingSessionId : undefined,\n cosignerIds_len: Array.isArray(b.cosignerIds) ? b.cosignerIds.length : undefined,\n });\n const result = await threshold.thresholdEd25519CosignFinalize(b);\n ctx.logger.info('[threshold-ed25519] response', {\n route: pathname,\n status: thresholdEd25519StatusCode(result),\n ok: result.ok,\n ...(result.code ? { code: result.code } : {}),\n });\n return json(result, { status: thresholdEd25519StatusCode(result) });\n }\n default:\n return null;\n }\n}\n","import { parseSessionKind } from '../../relay';\nimport type { CloudflareRelayContext } from '../createCloudflareRouter';\nimport { isObject, json, readJson } from '../http';\nimport type { VerifyAuthenticationRequest } from '../../../core/types';\n\nexport async function handleVerifyAuthenticationResponse(ctx: CloudflareRelayContext): Promise<Response | null> {\n if (ctx.method !== 'POST' || ctx.pathname !== '/verify-authentication-response') return null;\n\n const body = await readJson(ctx.request);\n const valid = isObject(body)\n && isObject((body as Record<string, unknown>).vrf_data)\n && isObject((body as Record<string, unknown>).webauthn_authentication);\n if (!valid) {\n return json({ code: 'invalid_body', message: 'vrf_data and webauthn_authentication are required' }, { status: 400 });\n }\n\n try {\n const sessionKind = parseSessionKind(body);\n const req = body as unknown as VerifyAuthenticationRequest;\n const result = await ctx.service.verifyAuthenticationResponse(req);\n const status = result.success ? 200 : 400;\n if (status !== 200) {\n return json({ code: 'not_verified', message: result.message || 'Authentication verification failed' }, { status });\n }\n\n const res = json(result, { status: 200 });\n const session = ctx.opts.session;\n if (session && result.verified) {\n try {\n const userId = String(req.vrf_data?.user_id || '');\n const token = await session.signJwt(userId, { rpId: req.vrf_data?.rp_id, blockHeight: req.vrf_data?.block_height });\n ctx.logger.info(`[relay] creating ${sessionKind === 'cookie' ? 'HttpOnly session' : 'JWT'} for`, userId);\n if (sessionKind === 'cookie') {\n res.headers.set('Set-Cookie', session.buildSetCookie(token));\n } else {\n const payload = await res.clone().json();\n return new Response(JSON.stringify({ ...payload, jwt: token }), { status: 200, headers: res.headers });\n }\n } catch { }\n }\n\n return res;\n } catch (e: any) {\n return json({ code: 'internal', message: e?.message || 'Internal error' }, { status: 500 });\n }\n}\n","import type { CloudflareRelayContext } from '../createCloudflareRouter';\nimport { json } from '../http';\n\nexport async function handleWellKnown(ctx: CloudflareRelayContext): Promise<Response | null> {\n if (ctx.method !== 'GET') return null;\n if (ctx.pathname !== '/.well-known/webauthn' && ctx.pathname !== '/.well-known/webauthn/') return null;\n\n // ROR well-known manifest; allow override via env (optional)\n const contractId = (ctx.env?.ROR_CONTRACT_ID || ctx.env?.WEBAUTHN_CONTRACT_ID || '').toString().trim() || undefined;\n const methodName = (ctx.env?.ROR_METHOD || '').toString().trim() || undefined;\n const origins = await ctx.service.getRorOrigins({ contractId, method: methodName });\n return json({ origins }, { status: 200, headers: { 'Cache-Control': 'max-age=60, stale-while-revalidate=600' } });\n}\n","import type { AuthService } from '../core/AuthService';\nimport type { RelayRouterOptions } from './relay';\n\nexport function resolveThresholdOption(service: AuthService, opts: RelayRouterOptions): RelayRouterOptions['threshold'] {\n // Preserve \"explicit null disables threshold\" semantics:\n // - `opts.threshold === null` => disabled\n // - `opts.threshold === undefined` => auto-wire from AuthService config\n return opts.threshold !== undefined ? opts.threshold : service.getThresholdSigningService();\n}\n\n","import type { AuthService } from '../../core/AuthService';\nimport type { DelegateActionPolicy } from '../../delegateAction';\nimport { ensureLeadingSlash } from '../../../utils/validation';\nimport type { RelayRouterOptions } from '../relay';\nimport type { NormalizedRouterLogger } from '../logger';\nimport { coerceRouterLogger } from '../logger';\nimport type { CfEnv, CfExecutionContext, FetchHandler } from './types';\nimport { json, withCors } from './http';\nimport { handleCreateAccountAndRegisterUser } from './routes/createAccountAndRegisterUser';\nimport { handleHealth, handleReady } from './routes/health';\nimport { handleRecoverEmail } from './routes/recoverEmail';\nimport { handleSessionAuth, handleSessionLogout, handleSessionRefresh } from './routes/sessions';\nimport { handleShamir } from './routes/shamir';\nimport { handleSignedDelegate } from './routes/signedDelegate';\nimport { handleThresholdEd25519 } from './routes/thresholdEd25519';\nimport { handleVerifyAuthenticationResponse } from './routes/verifyAuthenticationResponse';\nimport { handleWellKnown } from './routes/wellKnown';\nimport { resolveThresholdOption } from '../routerOptions';\n\nexport interface CloudflareRelayContext {\n request: Request;\n url: URL;\n pathname: string;\n method: string;\n env?: CfEnv;\n cfCtx?: CfExecutionContext;\n\n service: AuthService;\n opts: RelayRouterOptions;\n logger: NormalizedRouterLogger;\n\n mePath: string;\n logoutPath: string;\n signedDelegatePath: string;\n signedDelegatePolicy?: DelegateActionPolicy;\n}\n\nexport function createCloudflareRouter(service: AuthService, opts: RelayRouterOptions = {}): FetchHandler {\n const notFound = () => new Response('Not Found', { status: 404 });\n\n const threshold = resolveThresholdOption(service, opts);\n const effectiveOpts: RelayRouterOptions = { ...opts, threshold };\n\n const mePath = effectiveOpts.sessionRoutes?.auth || '/session/auth';\n const logoutPath = effectiveOpts.sessionRoutes?.logout || '/session/logout';\n const logger = coerceRouterLogger(effectiveOpts.logger);\n let signedDelegatePath = '';\n if (effectiveOpts.signedDelegate) {\n signedDelegatePath = ensureLeadingSlash(effectiveOpts.signedDelegate.route) || '/signed-delegate';\n }\n const signedDelegatePolicy = effectiveOpts.signedDelegate?.policy;\n\n const handlers: Array<(c: CloudflareRelayContext) => Promise<Response | null>> = [\n handleWellKnown,\n handleCreateAccountAndRegisterUser,\n handleSignedDelegate,\n handleShamir,\n handleVerifyAuthenticationResponse,\n handleThresholdEd25519,\n handleSessionAuth,\n handleSessionLogout,\n handleSessionRefresh,\n handleRecoverEmail,\n handleHealth,\n handleReady,\n ];\n\n return async function handler(request: Request, env?: CfEnv, cfCtx?: CfExecutionContext): Promise<Response> {\n const url = new URL(request.url);\n const { pathname } = url;\n const method = request.method.toUpperCase();\n\n // Preflight CORS\n if (method === 'OPTIONS') {\n const res = new Response(null, { status: 204 });\n withCors(res.headers, effectiveOpts, request);\n return res;\n }\n\n const baseCtx: Omit<CloudflareRelayContext, 'request' | 'url' | 'pathname' | 'method'> = {\n env,\n cfCtx,\n service,\n opts: effectiveOpts,\n logger,\n mePath,\n logoutPath,\n signedDelegatePath,\n signedDelegatePolicy,\n };\n\n const ctx: CloudflareRelayContext = {\n ...baseCtx,\n request,\n url,\n pathname,\n method,\n };\n\n try {\n for (const fn of handlers) {\n const res = await fn(ctx);\n if (res) {\n withCors(res.headers, effectiveOpts, request);\n return res;\n }\n }\n\n return notFound();\n } catch (e: unknown) {\n const res = json({ code: 'internal', message: e instanceof Error ? e.message : String(e) }, { status: 500 });\n withCors(res.headers, effectiveOpts, request);\n return res;\n }\n };\n}\n"],"mappings":"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"}